[pgrouting] 01/07: New upstream version 2.5.0

Bas Couwenberg sebastic at debian.org
Sat Sep 16 00:04:27 UTC 2017


This is an automated email from the git hooks/post-receive script.

sebastic pushed a commit to branch master
in repository pgrouting.

commit 2d47811f253a2740667a090e33f9b25971e70fde
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Fri Sep 15 22:01:42 2017 +0200

    New upstream version 2.5.0
---
 .gitignore                                         |     4 +-
 .travis.yml                                        |     6 +-
 .tx/config                                         |   438 +-
 CMakeLists.txt                                     |   303 +-
 NEWS                                               |    66 +-
 README.md                                          |    15 +-
 VERSION                                            |     2 +-
 appveyor.yml                                       |     2 +-
 configuration.conf                                 |    40 +
 doc/CMakeLists.txt                                 |   417 +-
 doc/_static/custom.css                             |    15 +
 doc/{static => _static}/favicon.ico                |   Bin
 doc/{static => _static}/images/ccbysa.png          |   Bin
 .../developers/disconnectEdgeDirected.graphmlz     |   Bin
 .../images/developers/disconnectEdgeDirected.png   |   Bin
 .../developers/disconnectEdgeUndirected.graphmlz   |   Bin
 .../images/developers/disconnectEdgeUndirected.png |   Bin
 .../developers/disconnectVertexDirected.graphmlz   |   Bin
 .../images/developers/disconnectVertexDirected.png |   Bin
 .../developers/disconnectVertexUndirected.graphmlz |   Bin
 .../developers/disconnectVertexUndirected.png      |   Bin
 doc/{static => _static}/images/favicon.ico         |   Bin
 doc/{static => _static}/images/pgrouting-logo.png  |   Bin
 doc/{static => _static}/images/pgrouting.png       |   Bin
 doc/_templates/layout.thml                         |     7 +
 doc/{themes => _themes}/null                       |     0
 doc/allpairs/CMakeLists.txt                        |    14 +
 .../doc => doc/allpairs}/allpairs-family.rst       |     0
 doc/allpairs/pgr_floydWarshall.rst                 |   162 +
 doc/allpairs/pgr_johnson.rst                       |   161 +
 doc/alpha_shape/CMakeLists.txt                     |    13 +
 doc/alpha_shape/pgr_alphaShape.rst                 |   101 +
 doc/alpha_shape/pgr_pointsAsPolygon.rst            |    81 +
 doc/astar/CMakeLists.txt                           |    14 +
 {src/astar/doc => doc/astar}/aStar-family.rst      |     0
 doc/astar/pgr_aStar.rst                            |   271 +
 doc/astar/pgr_aStarCost.rst                        |   234 +
 doc/bdAstar/CMakeLists.txt                         |    14 +
 doc/bdAstar/bdAstar-family.rst                     |   108 +
 doc/bdAstar/pgr_bdAstar.rst                        |   224 +
 doc/bdAstar/pgr_bdAstarCost.rst                    |   214 +
 doc/bdDijkstra/CMakeLists.txt                      |    14 +
 doc/bdDijkstra/bdDijkstra-family.rst               |    68 +
 doc/bdDijkstra/pgr_bdDijkstra.rst                  |   219 +
 doc/bdDijkstra/pgr_bdDijkstraCost.rst              |   206 +
 doc/common/CMakeLists.txt                          |    15 +
 doc/common/cost_result.rst                         |    92 +
 doc/common/geom_result.rst                         |    58 +
 doc/common/pgr_version.rst                         |    83 +
 doc/common/types_index.rst                         |    35 +
 doc/components/CMakeLists.txt                      |    18 +
 doc/components/components-family.rst               |   488 +
 doc/components/images/CMakeLists.txt               |    20 +
 doc/components/images/ap_sampledata.png            |   Bin 0 -> 57569 bytes
 doc/components/images/bcc_sampledata.png           |   Bin 0 -> 188271 bytes
 doc/components/images/biconnected_components.jpeg  |   Bin 0 -> 20320 bytes
 doc/components/images/bridge_sampledata.png        |   Bin 0 -> 63525 bytes
 doc/components/images/cc_sampledata.png            |   Bin 0 -> 191782 bytes
 doc/components/images/connected_components.jpeg    |   Bin 0 -> 18159 bytes
 doc/components/images/scc_sampledata.png           |   Bin 0 -> 197511 bytes
 doc/components/images/strong_components.jpeg       |   Bin 0 -> 20898 bytes
 doc/components/pgr_articulationPoints.rst          |   100 +
 doc/components/pgr_biconnectedComponents.rst       |   103 +
 doc/components/pgr_bridges.rst                     |    97 +
 doc/components/pgr_connectedComponents.rst         |   101 +
 doc/components/pgr_strongComponents.rst            |   100 +
 doc/conf.py.in                                     |   121 +-
 doc/contraction/CMakeLists.txt                     |    15 +
 doc/contraction/contraction-family.rst             |   527 +
 doc/contraction/images/CMakeLists.txt              |    21 +
 .../contraction}/images/threeNodestwoEdges_a.png   |   Bin
 .../contraction}/images/threeNodestwoEdges_b.png   |   Bin
 .../contraction}/images/threeNodestwoEdges_c.png   |   Bin
 .../contraction}/images/twoNodesoneEdge_a.png      |   Bin
 .../contraction}/images/twoNodesoneEdge_b.png      |   Bin
 .../images/undirected_sampledata_a.png             |   Bin
 .../images/undirected_sampledata_b.png             |   Bin
 .../images/undirected_sampledata_c.png             |   Bin
 doc/contraction/pgr_contractGraph.rst              |   171 +
 doc/costMatrix/CMakeLists.txt                      |    18 +
 doc/costMatrix/cost-category.rst                   |    75 +
 doc/costMatrix/costMatrix-category.rst             |   108 +
 doc/costMatrix/pgr_aStarCostMatrix.rst             |   161 +
 doc/costMatrix/pgr_bdAstarCostMatrix.rst           |   144 +
 doc/costMatrix/pgr_bdDijkstraCostMatrix.rst        |   143 +
 doc/costMatrix/pgr_dijkstraCostMatrix.rst          |   144 +
 .../costMatrix}/pgr_withPointsCostMatrix.rst       |     0
 doc/dijkstra/CMakeLists.txt                        |    15 +
 doc/dijkstra/dijkstra-family.rst                   |   151 +
 doc/dijkstra/pgr_dijkstra.rst                      |   333 +
 doc/dijkstra/pgr_dijkstraCost.rst                  |   255 +
 doc/dijkstra/pgr_dijkstraVia.rst                   |   188 +
 doc/dijkstraTRSP/CMakeLists.txt                    |    12 +
 doc/dijkstraTRSP/pgr_dijkstraTRSP.rst              |   141 +
 doc/driving_distance/CMakeLists.txt                |    13 +
 doc/driving_distance/drivingDistance-category.rst  |    41 +
 doc/driving_distance/pgr_drivingDistance.rst       |   185 +
 doc/forward.html                                   |     8 +-
 doc/i18n/de/LC_MESSAGES/doc/index.po               |   359 -
 doc/i18n/de/LC_MESSAGES/doc/index_man.po           |    57 -
 doc/i18n/de/LC_MESSAGES/doc/src/changelog/1_x.po   |   153 -
 doc/i18n/de/LC_MESSAGES/doc/src/changelog/2_0.po   |   171 -
 doc/i18n/de/LC_MESSAGES/doc/src/changelog/index.po |    33 -
 .../LC_MESSAGES/doc/src/developer/discontinued.po  |    55 -
 doc/i18n/de/LC_MESSAGES/doc/src/developer/index.po |   245 -
 .../de/LC_MESSAGES/doc/src/developer/sampledata.po |    41 -
 .../de/LC_MESSAGES/doc/src/installation/build.po   |   153 -
 .../de/LC_MESSAGES/doc/src/installation/index.po   |   202 -
 .../de/LC_MESSAGES/doc/src/introduction/index.po   |    33 -
 .../de/LC_MESSAGES/doc/src/introduction/support.po |   212 -
 .../de/LC_MESSAGES/doc/src/tutorial/analytics.po   |   214 -
 .../LC_MESSAGES/doc/src/tutorial/custom_query.po   |    23 -
 .../LC_MESSAGES/doc/src/tutorial/custom_wrapper.po |    23 -
 doc/i18n/de/LC_MESSAGES/doc/src/tutorial/index.po  |    98 -
 .../de/LC_MESSAGES/doc/src/tutorial/performance.po |    23 -
 .../de/LC_MESSAGES/doc/src/tutorial/recipes.po     |    23 -
 .../de/LC_MESSAGES/doc/src/tutorial/topology.po    |   123 -
 .../de/LC_MESSAGES/src/apsp_johnson/doc/index.po   |   140 -
 .../de/LC_MESSAGES/src/apsp_warshall/doc/index.po  |   160 -
 doc/i18n/de/LC_MESSAGES/src/astar/doc/index.po     |   202 -
 doc/i18n/de/LC_MESSAGES/src/bd_astar/doc/index.po  |   221 -
 .../de/LC_MESSAGES/src/bd_dijkstra/doc/index.po    |   194 -
 .../src/common/doc/functions/analyze_graph.po      |   410 -
 .../src/common/doc/functions/analyze_oneway.po     |   335 -
 .../src/common/doc/functions/create_topology.po    |   413 -
 .../src/common/doc/functions/create_vert_table.po  |   389 -
 .../LC_MESSAGES/src/common/doc/functions/index.po  |    64 -
 .../src/common/doc/functions/is_column_in_table.po |    88 -
 .../src/common/doc/functions/is_column_indexed.po  |    89 -
 .../src/common/doc/functions/node_network.po       |   416 -
 .../src/common/doc/functions/point_to_id.po        |   104 -
 .../src/common/doc/functions/quote_ident.po        |    89 -
 .../src/common/doc/functions/version.po            |   113 -
 .../src/common/doc/functions/versionless.po        |    85 -
 doc/i18n/de/LC_MESSAGES/src/common/doc/index.po    |    24 -
 doc/i18n/de/LC_MESSAGES/src/common/doc/legacy.po   |    67 -
 doc/i18n/de/LC_MESSAGES/src/common/doc/types.po    |    31 -
 .../src/common/doc/types/cost_result.po            |   114 -
 .../src/common/doc/types/geom_result.po            |    82 -
 .../de/LC_MESSAGES/src/common/doc/types/index.po   |    51 -
 .../src/common/doc/utilities/end_point.po          |    92 -
 .../src/common/doc/utilities/get_column_name.po    |   140 -
 .../src/common/doc/utilities/get_table_name.po     |   151 -
 .../LC_MESSAGES/src/common/doc/utilities/index.po  |    90 -
 .../src/common/doc/utilities/is_column_in_table.po |   137 -
 .../src/common/doc/utilities/is_column_indexed.po  |   144 -
 .../src/common/doc/utilities/point_to_id.po        |   144 -
 .../src/common/doc/utilities/quote_ident.po        |   135 -
 .../src/common/doc/utilities/start_point.po        |    92 -
 .../src/common/doc/utilities/version.po            |   113 -
 .../src/common/doc/utilities/versionless.po        |    95 -
 doc/i18n/de/LC_MESSAGES/src/dijkstra/doc/index.po  |   182 -
 .../src/driving_distance/doc/dd_alphashape.po      |   141 -
 .../driving_distance/doc/dd_driving_distance.po    |   199 -
 .../driving_distance/doc/dd_points_as_polygon.po   |   122 -
 .../LC_MESSAGES/src/driving_distance/doc/index.po  |   199 -
 doc/i18n/de/LC_MESSAGES/src/index.po               |    81 -
 doc/i18n/de/LC_MESSAGES/src/kdijkstra/doc/index.po |   230 -
 doc/i18n/de/LC_MESSAGES/src/ksp/doc/index.po       |   192 -
 doc/i18n/de/LC_MESSAGES/src/trsp/doc/index.po      |   259 -
 doc/i18n/de/LC_MESSAGES/src/tsp/doc/index.po       |   352 -
 doc/i18n/es/LC_MESSAGES/doc/index.po               |   359 -
 doc/i18n/es/LC_MESSAGES/doc/index_man.po           |    57 -
 doc/i18n/es/LC_MESSAGES/doc/src/changelog/1_x.po   |   153 -
 doc/i18n/es/LC_MESSAGES/doc/src/changelog/2_0.po   |   171 -
 doc/i18n/es/LC_MESSAGES/doc/src/changelog/index.po |    34 -
 .../LC_MESSAGES/doc/src/developer/discontinued.po  |    56 -
 doc/i18n/es/LC_MESSAGES/doc/src/developer/index.po |   246 -
 .../es/LC_MESSAGES/doc/src/developer/sampledata.po |    59 -
 .../es/LC_MESSAGES/doc/src/installation/build.po   |   153 -
 .../es/LC_MESSAGES/doc/src/installation/index.po   |   202 -
 .../es/LC_MESSAGES/doc/src/introduction/index.po   |    34 -
 .../doc/src/introduction/introduction.po           |   188 -
 .../es/LC_MESSAGES/doc/src/introduction/support.po |   220 -
 .../es/LC_MESSAGES/doc/src/tutorial/analytics.po   |   215 -
 .../LC_MESSAGES/doc/src/tutorial/custom_query.po   |   150 -
 .../LC_MESSAGES/doc/src/tutorial/custom_wrapper.po |    70 -
 doc/i18n/es/LC_MESSAGES/doc/src/tutorial/index.po  |    99 -
 .../es/LC_MESSAGES/doc/src/tutorial/performance.po |    59 -
 .../es/LC_MESSAGES/doc/src/tutorial/recipes.po     |    85 -
 .../es/LC_MESSAGES/doc/src/tutorial/topology.po    |   124 -
 .../es/LC_MESSAGES/doc/src/tutorial/tutorial.po    |   208 -
 .../es/LC_MESSAGES/src/apsp_johnson/doc/index.po   |   141 -
 .../es/LC_MESSAGES/src/apsp_warshall/doc/index.po  |   161 -
 doc/i18n/es/LC_MESSAGES/src/astar/doc/index.po     |   203 -
 doc/i18n/es/LC_MESSAGES/src/bd_astar/doc/index.po  |   222 -
 .../es/LC_MESSAGES/src/bd_dijkstra/doc/index.po    |   195 -
 .../src/common/doc/functions/analyze_graph.po      |   411 -
 .../src/common/doc/functions/analyze_oneway.po     |   336 -
 .../src/common/doc/functions/create_topology.po    |   414 -
 .../src/common/doc/functions/create_vert_table.po  |   389 -
 .../LC_MESSAGES/src/common/doc/functions/index.po  |    64 -
 .../src/common/doc/functions/is_column_in_table.po |    89 -
 .../src/common/doc/functions/is_column_indexed.po  |    90 -
 .../src/common/doc/functions/node_network.po       |   417 -
 .../src/common/doc/functions/point_to_id.po        |   105 -
 .../src/common/doc/functions/quote_ident.po        |    90 -
 .../src/common/doc/functions/version.po            |   114 -
 .../src/common/doc/functions/versionless.po        |    86 -
 doc/i18n/es/LC_MESSAGES/src/common/doc/index.po    |    24 -
 doc/i18n/es/LC_MESSAGES/src/common/doc/legacy.po   |    67 -
 doc/i18n/es/LC_MESSAGES/src/common/doc/types.po    |    31 -
 .../src/common/doc/types/cost_result.po            |   115 -
 .../src/common/doc/types/geom_result.po            |    83 -
 .../es/LC_MESSAGES/src/common/doc/types/index.po   |    52 -
 .../src/common/doc/utilities/end_point.po          |    93 -
 .../src/common/doc/utilities/get_column_name.po    |   141 -
 .../src/common/doc/utilities/get_table_name.po     |   152 -
 .../LC_MESSAGES/src/common/doc/utilities/index.po  |    90 -
 .../src/common/doc/utilities/is_column_in_table.po |   138 -
 .../src/common/doc/utilities/is_column_indexed.po  |   145 -
 .../src/common/doc/utilities/point_to_id.po        |   145 -
 .../src/common/doc/utilities/quote_ident.po        |   136 -
 .../src/common/doc/utilities/start_point.po        |    93 -
 .../src/common/doc/utilities/version.po            |   114 -
 .../src/common/doc/utilities/versionless.po        |    96 -
 doc/i18n/es/LC_MESSAGES/src/dijkstra/doc/index.po  |   183 -
 .../src/driving_distance/doc/dd_alphashape.po      |   142 -
 .../driving_distance/doc/dd_driving_distance.po    |   200 -
 .../driving_distance/doc/dd_points_as_polygon.po   |   123 -
 .../LC_MESSAGES/src/driving_distance/doc/index.po  |    44 -
 doc/i18n/es/LC_MESSAGES/src/index.po               |    81 -
 doc/i18n/es/LC_MESSAGES/src/kdijkstra/doc/index.po |   231 -
 doc/i18n/es/LC_MESSAGES/src/ksp/doc/index.po       |   192 -
 doc/i18n/es/LC_MESSAGES/src/trsp/doc/index.po      |   260 -
 doc/i18n/es/LC_MESSAGES/src/tsp/doc/index.po       |   353 -
 doc/i18n/fr/LC_MESSAGES/doc/index.po               |   359 -
 doc/i18n/fr/LC_MESSAGES/doc/index_man.po           |    57 -
 doc/i18n/fr/LC_MESSAGES/doc/src/changelog/1_x.po   |   153 -
 doc/i18n/fr/LC_MESSAGES/doc/src/changelog/2_0.po   |   171 -
 .../LC_MESSAGES/doc/src/developer/discontinued.po  |    56 -
 doc/i18n/fr/LC_MESSAGES/doc/src/developer/index.po |   246 -
 .../fr/LC_MESSAGES/doc/src/developer/sampledata.po |    59 -
 .../fr/LC_MESSAGES/doc/src/installation/build.po   |   153 -
 .../fr/LC_MESSAGES/doc/src/installation/index.po   |   203 -
 .../fr/LC_MESSAGES/doc/src/introduction/index.po   |    34 -
 .../doc/src/introduction/introduction.po           |   187 -
 .../fr/LC_MESSAGES/doc/src/introduction/support.po |   220 -
 .../fr/LC_MESSAGES/doc/src/tutorial/analytics.po   |   215 -
 .../LC_MESSAGES/doc/src/tutorial/custom_query.po   |   149 -
 .../LC_MESSAGES/doc/src/tutorial/custom_wrapper.po |    24 -
 doc/i18n/fr/LC_MESSAGES/doc/src/tutorial/index.po  |    99 -
 .../fr/LC_MESSAGES/doc/src/tutorial/performance.po |    59 -
 .../fr/LC_MESSAGES/doc/src/tutorial/recipes.po     |    24 -
 .../fr/LC_MESSAGES/doc/src/tutorial/topology.po    |   124 -
 .../fr/LC_MESSAGES/doc/src/tutorial/tutorial.po    |   207 -
 .../fr/LC_MESSAGES/src/apsp_johnson/doc/index.po   |   141 -
 .../fr/LC_MESSAGES/src/apsp_warshall/doc/index.po  |   161 -
 doc/i18n/fr/LC_MESSAGES/src/astar/doc/index.po     |   203 -
 doc/i18n/fr/LC_MESSAGES/src/bd_astar/doc/index.po  |   222 -
 .../fr/LC_MESSAGES/src/bd_dijkstra/doc/index.po    |   195 -
 .../src/common/doc/functions/analyze_graph.po      |   411 -
 .../src/common/doc/functions/analyze_oneway.po     |   336 -
 .../src/common/doc/functions/create_topology.po    |   415 -
 .../src/common/doc/functions/create_vert_table.po  |   388 -
 .../src/common/doc/functions/is_column_in_table.po |    89 -
 .../src/common/doc/functions/is_column_indexed.po  |    90 -
 .../src/common/doc/functions/node_network.po       |   417 -
 .../src/common/doc/functions/point_to_id.po        |   105 -
 .../src/common/doc/functions/quote_ident.po        |    90 -
 .../src/common/doc/functions/version.po            |   114 -
 .../src/common/doc/functions/versionless.po        |    86 -
 doc/i18n/fr/LC_MESSAGES/src/common/doc/index.po    |    24 -
 doc/i18n/fr/LC_MESSAGES/src/common/doc/legacy.po   |    67 -
 doc/i18n/fr/LC_MESSAGES/src/common/doc/types.po    |    31 -
 .../src/common/doc/types/cost_result.po            |   115 -
 .../src/common/doc/types/geom_result.po            |    83 -
 .../fr/LC_MESSAGES/src/common/doc/types/index.po   |    51 -
 .../src/common/doc/utilities/end_point.po          |    92 -
 .../src/common/doc/utilities/get_column_name.po    |   140 -
 .../src/common/doc/utilities/get_table_name.po     |   151 -
 .../src/common/doc/utilities/is_column_in_table.po |   137 -
 .../src/common/doc/utilities/is_column_indexed.po  |   144 -
 .../src/common/doc/utilities/point_to_id.po        |   144 -
 .../src/common/doc/utilities/quote_ident.po        |   135 -
 .../src/common/doc/utilities/start_point.po        |    92 -
 .../src/common/doc/utilities/version.po            |   113 -
 .../src/common/doc/utilities/versionless.po        |    95 -
 doc/i18n/fr/LC_MESSAGES/src/dijkstra/doc/index.po  |   183 -
 .../src/driving_distance/doc/dd_alphashape.po      |   142 -
 .../driving_distance/doc/dd_driving_distance.po    |   199 -
 .../driving_distance/doc/dd_points_as_polygon.po   |   123 -
 .../LC_MESSAGES/src/driving_distance/doc/index.po  |   200 -
 doc/i18n/fr/LC_MESSAGES/src/kdijkstra/doc/index.po |   231 -
 doc/i18n/fr/LC_MESSAGES/src/ksp/doc/index.po       |   192 -
 doc/i18n/fr/LC_MESSAGES/src/trsp/doc/index.po      |   260 -
 doc/i18n/fr/LC_MESSAGES/src/tsp/doc/index.po       |   353 -
 doc/i18n/ja/LC_MESSAGES/doc/index.po               |   360 -
 doc/i18n/ja/LC_MESSAGES/doc/index_man.po           |    57 -
 doc/i18n/ja/LC_MESSAGES/doc/src/changelog/1_x.po   |   152 -
 doc/i18n/ja/LC_MESSAGES/doc/src/changelog/2_0.po   |   164 -
 .../LC_MESSAGES/doc/src/developer/discontinued.po  |    55 -
 doc/i18n/ja/LC_MESSAGES/doc/src/developer/index.po |   245 -
 .../ja/LC_MESSAGES/doc/src/developer/sampledata.po |    59 -
 .../ja/LC_MESSAGES/doc/src/installation/build.po   |    91 -
 .../ja/LC_MESSAGES/doc/src/installation/index.po   |   202 -
 .../ja/LC_MESSAGES/doc/src/introduction/index.po   |    33 -
 .../ja/LC_MESSAGES/doc/src/introduction/support.po |   212 -
 .../ja/LC_MESSAGES/doc/src/tutorial/analytics.po   |   215 -
 .../LC_MESSAGES/doc/src/tutorial/custom_query.po   |    23 -
 .../LC_MESSAGES/doc/src/tutorial/custom_wrapper.po |    23 -
 doc/i18n/ja/LC_MESSAGES/doc/src/tutorial/index.po  |    98 -
 .../ja/LC_MESSAGES/doc/src/tutorial/performance.po |    23 -
 .../ja/LC_MESSAGES/doc/src/tutorial/recipes.po     |    23 -
 .../ja/LC_MESSAGES/doc/src/tutorial/topology.po    |   124 -
 .../ja/LC_MESSAGES/src/apsp_johnson/doc/index.po   |   140 -
 .../ja/LC_MESSAGES/src/apsp_warshall/doc/index.po  |   161 -
 doc/i18n/ja/LC_MESSAGES/src/astar/doc/index.po     |   203 -
 doc/i18n/ja/LC_MESSAGES/src/bd_astar/doc/index.po  |   222 -
 .../ja/LC_MESSAGES/src/bd_dijkstra/doc/index.po    |   195 -
 .../src/common/doc/functions/analyze_graph.po      |   411 -
 .../src/common/doc/functions/analyze_oneway.po     |   335 -
 .../src/common/doc/functions/create_topology.po    |   414 -
 .../src/common/doc/functions/create_vert_table.po  |   388 -
 .../src/common/doc/functions/is_column_in_table.po |    89 -
 .../src/common/doc/functions/is_column_indexed.po  |    89 -
 .../src/common/doc/functions/node_network.po       |   416 -
 .../src/common/doc/functions/point_to_id.po        |   104 -
 .../src/common/doc/functions/quote_ident.po        |    89 -
 .../src/common/doc/functions/version.po            |   113 -
 .../src/common/doc/functions/versionless.po        |    86 -
 doc/i18n/ja/LC_MESSAGES/src/common/doc/index.po    |    23 -
 doc/i18n/ja/LC_MESSAGES/src/common/doc/legacy.po   |    66 -
 doc/i18n/ja/LC_MESSAGES/src/common/doc/types.po    |    30 -
 .../src/common/doc/types/cost_result.po            |   115 -
 .../src/common/doc/types/geom_result.po            |    83 -
 .../src/common/doc/utilities/end_point.po          |    92 -
 .../src/common/doc/utilities/get_column_name.po    |   140 -
 .../src/common/doc/utilities/get_table_name.po     |   151 -
 .../src/common/doc/utilities/is_column_in_table.po |   137 -
 .../src/common/doc/utilities/is_column_indexed.po  |   144 -
 .../src/common/doc/utilities/point_to_id.po        |   144 -
 .../src/common/doc/utilities/quote_ident.po        |   135 -
 .../src/common/doc/utilities/start_point.po        |    92 -
 .../src/common/doc/utilities/version.po            |   113 -
 .../src/common/doc/utilities/versionless.po        |    95 -
 doc/i18n/ja/LC_MESSAGES/src/dijkstra/doc/index.po  |   183 -
 .../src/driving_distance/doc/dd_alphashape.po      |   141 -
 .../driving_distance/doc/dd_driving_distance.po    |   199 -
 .../driving_distance/doc/dd_points_as_polygon.po   |   122 -
 .../LC_MESSAGES/src/driving_distance/doc/index.po  |   201 -
 doc/i18n/ja/LC_MESSAGES/src/kdijkstra/doc/index.po |   231 -
 doc/i18n/ja/LC_MESSAGES/src/ksp/doc/index.po       |   192 -
 doc/i18n/ja/LC_MESSAGES/src/trsp/doc/index.po      |   259 -
 doc/i18n/ja/LC_MESSAGES/src/tsp/doc/index.po       |   354 -
 doc/i18n/pot/doc/index.pot                         |   318 -
 doc/i18n/pot/doc/index_man.pot                     |    53 -
 doc/i18n/pot/doc/src/changelog/1_x.pot             |   151 -
 doc/i18n/pot/doc/src/changelog/2_0.pot             |   148 -
 doc/i18n/pot/doc/src/changelog/index.pot           |    33 -
 doc/i18n/pot/doc/src/developer/discontinued.pot    |    48 -
 doc/i18n/pot/doc/src/developer/index.pot           |   183 -
 doc/i18n/pot/doc/src/developer/sampledata.pot      |    53 -
 doc/i18n/pot/doc/src/installation/build.pot        |   128 -
 doc/i18n/pot/doc/src/installation/index.pot        |   193 -
 doc/i18n/pot/doc/src/introduction/index.pot        |    33 -
 doc/i18n/pot/doc/src/introduction/introduction.pot |   153 -
 doc/i18n/pot/doc/src/introduction/support.pot      |   183 -
 doc/i18n/pot/doc/src/tutorial/analytics.pot        |   173 -
 doc/i18n/pot/doc/src/tutorial/custom_query.pot     |   134 -
 doc/i18n/pot/doc/src/tutorial/custom_wrapper.pot   |    63 -
 doc/i18n/pot/doc/src/tutorial/index.pot            |    98 -
 doc/i18n/pot/doc/src/tutorial/performance.pot      |    53 -
 doc/i18n/pot/doc/src/tutorial/recipes.pot          |    78 -
 doc/i18n/pot/doc/src/tutorial/topology.pot         |    88 -
 doc/i18n/pot/doc/src/tutorial/tutorial.pot         |   174 -
 doc/i18n/pot/src/apsp_johnson/doc/index.pot        |   133 -
 doc/i18n/pot/src/apsp_warshall/doc/index.pot       |   148 -
 doc/i18n/pot/src/astar/doc/index.pot               |   188 -
 doc/i18n/pot/src/bd_astar/doc/index.pot            |   203 -
 doc/i18n/pot/src/bd_dijkstra/doc/index.pot         |   178 -
 .../pot/src/common/doc/functions/analyze_graph.pot |   360 -
 .../src/common/doc/functions/analyze_oneway.pot    |   273 -
 .../src/common/doc/functions/create_topology.pot   |   367 -
 .../src/common/doc/functions/create_vert_table.pot |   342 -
 doc/i18n/pot/src/common/doc/functions/index.pot    |    53 -
 .../common/doc/functions/is_column_in_table.pot    |    88 -
 .../src/common/doc/functions/is_column_indexed.pot |    88 -
 .../pot/src/common/doc/functions/node_network.pot  |   358 -
 .../pot/src/common/doc/functions/point_to_id.pot   |    98 -
 .../pot/src/common/doc/functions/quote_ident.pot   |    83 -
 doc/i18n/pot/src/common/doc/functions/version.pot  |   113 -
 .../pot/src/common/doc/functions/versionless.pot   |    83 -
 doc/i18n/pot/src/common/doc/index.pot              |    23 -
 doc/i18n/pot/src/common/doc/legacy.pot             |    48 -
 doc/i18n/pot/src/common/doc/types.pot              |    28 -
 doc/i18n/pot/src/common/doc/types/cost_result.pot  |   110 -
 doc/i18n/pot/src/common/doc/types/geom_result.pot  |    80 -
 doc/i18n/pot/src/common/doc/types/index.pot        |    43 -
 .../pot/src/common/doc/utilities/end_point.pot     |    90 -
 .../src/common/doc/utilities/get_column_name.pot   |   133 -
 .../src/common/doc/utilities/get_table_name.pot    |   142 -
 doc/i18n/pot/src/common/doc/utilities/index.pot    |    78 -
 .../common/doc/utilities/is_column_in_table.pot    |   133 -
 .../src/common/doc/utilities/is_column_indexed.pot |   138 -
 .../pot/src/common/doc/utilities/point_to_id.pot   |   123 -
 .../pot/src/common/doc/utilities/quote_ident.pot   |   123 -
 .../pot/src/common/doc/utilities/start_point.pot   |    90 -
 doc/i18n/pot/src/common/doc/utilities/version.pot  |   113 -
 .../pot/src/common/doc/utilities/versionless.pot   |    93 -
 doc/i18n/pot/src/dijkstra/doc/index.pot            |   168 -
 .../pot/src/driving_distance/doc/dd_alphashape.pot |   128 -
 .../driving_distance/doc/dd_driving_distance.pot   |   178 -
 .../driving_distance/doc/dd_points_as_polygon.pot  |   113 -
 doc/i18n/pot/src/driving_distance/doc/index.pot    |    43 -
 doc/i18n/pot/src/index.pot                         |    73 -
 doc/i18n/pot/src/kdijkstra/doc/index.pot           |   200 -
 doc/i18n/pot/src/ksp/doc/index.pot                 |   178 -
 doc/i18n/pot/src/trsp/doc/index.pot                |   228 -
 doc/i18n/pot/src/tsp/doc/index.pot                 |   285 -
 doc/images/CMakeLists.txt                          |    19 +
 doc/{src => }/images/Fig1-originalData.png         |   Bin
 doc/{src => }/images/Fig2-cost.png                 |   Bin
 doc/{src => }/images/Fig4-costUndirected.png       |   Bin
 doc/{src => }/images/Fig6-undirected.png           |   Bin
 doc/{src => }/images/boost-inside.jpeg             |   Bin
 doc/{src => }/images/parallelImage.png             |   Bin
 doc/{src => }/images/test1.png                     |   Bin
 doc/{src => }/images/trsp-test-image.png           |   Bin
 doc/index.rst                                      |   143 -
 doc/ksp/CMakeLists.txt                             |    13 +
 doc/ksp/KSP-category.rst                           |    28 +
 doc/ksp/pgr_KSP.rst                                |   181 +
 doc/label_graph/CMakeLists.txt                     |    12 +
 doc/label_graph/pgr_labelGraph.rst                 |    92 +
 doc/lineGraph/CMakeLists.txt                       |    13 +
 doc/lineGraph/images/CMakeLists.txt                |    10 +
 doc/lineGraph/images/lineGraph.png                 |   Bin 0 -> 238407 bytes
 doc/lineGraph/pgr_lineGraph.rst                    |   162 +
 doc/max_flow/CMakeLists.txt                        |    18 +
 doc/max_flow/flow-family.rst                       |   142 +
 doc/max_flow/pgr_boykovKolmogorov.rst              |   168 +
 doc/max_flow/pgr_edgeDisjointPaths.rst             |   220 +
 doc/max_flow/pgr_edmondsKarp.rst                   |   170 +
 doc/max_flow/pgr_maxCardinalityMatch.rst           |   166 +
 doc/max_flow/pgr_maxFlow.rst                       |   185 +
 doc/max_flow/pgr_pushRelabel.rst                   |   168 +
 doc/pickDeliver/CMakeLists.txt                     |    14 +
 doc/pickDeliver/VRP-category.rst                   |   510 +
 doc/pickDeliver/pgr_pickDeliver.rst                |   223 +
 doc/pickDeliver/pgr_pickDeliverEuclidean.rst       |   204 +
 doc/queries/CMakeLists.txt                         |    59 +
 .../doc => doc/queries}/doc-aStarCost.queries      |     0
 doc/queries/doc-astar.queries                      |   104 +
 .../doc => doc/queries}/doc-contractGraph.queries  |     0
 doc/queries/doc-contraction.queries                |   339 +
 doc/queries/doc-dijkstraTRSP.queries               |    25 +
 .../doc => doc/queries}/doc-floydWarshall.queries  |     0
 doc/queries/doc-gsoc_vrppdtw.queries               |    79 +
 .../doc => doc/queries}/doc-johnson.queries        |     0
 doc/queries/doc-ksp.queries                        |   274 +
 {src/tsp/doc => doc/queries}/doc-pgr_TSP.queries   |     0
 .../doc => doc/queries}/doc-pgr_alphashape.queries |     0
 .../queries}/doc-pgr_analyzeGraph.queries          |     0
 doc/queries/doc-pgr_articulationPoints.queries     |    30 +
 doc/queries/doc-pgr_bdAstar.queries                |   112 +
 doc/queries/doc-pgr_bdAstarCost.queries            |    71 +
 doc/queries/doc-pgr_bdDijkstra.queries             |   119 +
 doc/queries/doc-pgr_bdDijkstraCost.queries         |    60 +
 doc/queries/doc-pgr_biconnectedComponents.queries  |    58 +
 doc/queries/doc-pgr_boykovKolmogorov.queries       |    90 +
 doc/queries/doc-pgr_bridges.queries                |    34 +
 doc/queries/doc-pgr_connectedComponents.queries    |    56 +
 doc/queries/doc-pgr_createTopology.queries         |   262 +
 doc/queries/doc-pgr_dijkstra.queries               |   590 +
 .../queries}/doc-pgr_dijkstraCost.queries          |     0
 .../queries}/doc-pgr_dijkstraVia.queries           |     0
 doc/queries/doc-pgr_drivingDistance.queries        |   312 +
 doc/queries/doc-pgr_edgeDisjointPaths.queries      |   128 +
 doc/queries/doc-pgr_edmondsKarp.queries            |    90 +
 .../queries}/doc-pgr_eucledianTSP.queries          |     0
 doc/queries/doc-pgr_fooDmatrix.queries             |   324 +
 doc/queries/doc-pgr_labelGraph.queries             |    24 +
 doc/queries/doc-pgr_lineGraph.queries              |   210 +
 doc/queries/doc-pgr_maxCardinalityMatch.queries    |    40 +
 doc/queries/doc-pgr_maxFlow.queries                |    67 +
 .../queries}/doc-pgr_pointsAsPolygon.queries       |     0
 doc/queries/doc-pgr_pushRelabel.queries            |    96 +
 doc/queries/doc-pgr_strongComponents.queries       |    56 +
 doc/queries/doc-pgr_version.queries                |    14 +
 doc/queries/doc-pgr_vrpOneDepot.queries            |   256 +
 .../doc => doc/queries}/doc-pgr_withPoints.queries |     0
 .../queries}/doc-pgr_withPointsCost.queries        |     0
 .../queries}/doc-pgr_withPointsDD.queries          |     0
 .../queries}/doc-pgr_withPointsKSP.queries         |     0
 doc/queries/doc-pgr_withPointsVia.queries          |    40 +
 doc/queries/doc-pickDeliver.queries                |    61 +
 doc/queries/doc-pickDeliverEuclidean.queries       |    27 +
 {src/trsp/doc => doc/queries}/doc-trsp.queries     |     0
 doc/queries/issue704.queries                       |    82 +
 doc/queries/oneDepotWrapper.queries                |   256 +
 doc/queries/proof_of_concept.queries               |   137 +
 doc/queries/trsp_notes_v2.5.0.queries              |  1112 ++
 doc/src/CMakeLists.txt                             |    20 +
 doc/src/index.rst                                  |   138 +
 doc/src/pgRouting-concepts.rst                     |   105 +-
 doc/src/pgRouting-installation.rst                 |     2 +-
 doc/src/pgRouting-introduction.rst                 |    30 +-
 doc/src/proposed.rst                               |    75 +-
 doc/src/release_notes.rst                          |    65 +
 doc/src/routingFunctions.rst                       |    10 +-
 doc/src/sampledata.rst                             |    38 +-
 doc/test/example_recipe.result                     |     5 -
 doc/test/example_recipe.test.sql                   |    30 -
 doc/test/parallel_handling.result                  |    24 -
 doc/test/parallel_handling.test.sql                |   125 -
 doc/test/test.conf                                 |    20 -
 doc/test/utilities-any.result                      |     1 -
 doc/test/utilities-any.test.sql                    |     6 -
 doc/topology/CMakeLists.txt                        |    20 +
 doc/topology/images/CMakeLists.txt                 |    15 +
 .../topology}/images/Fig3-reverseCost.png          |   Bin
 .../images/Fig5-reverseCostUndirected.png          |   Bin
 .../doc => doc/topology}/images/after_node_net.png |   Bin
 .../topology}/images/before_node_net.png           |   Bin
 doc/topology/pgr_analyzeGraph.rst                  |   404 +
 doc/topology/pgr_analyzeOneWay.rst                 |   143 +
 doc/topology/pgr_createTopology.rst                |   257 +
 doc/topology/pgr_createVerticesTable.rst           |   296 +
 doc/topology/pgr_nodeNetwork.rst                   |   399 +
 doc/topology/topology-functions.rst                |    40 +
 doc/trsp/CMakeLists.txt                            |    12 +
 doc/trsp/README.md                                 |  1112 ++
 doc/trsp/pgr_trsp.rst                              |   209 +
 doc/tsp/CMakeLists.txt                             |    14 +
 doc/tsp/TSP-family.rst                             |   259 +
 doc/tsp/pgr_TSP.rst                                |   172 +
 doc/tsp/pgr_eucledianTSP.rst                       |   154 +
 doc/vrp_basic/CMakeLists.txt                       |    12 +
 doc/vrp_basic/pgr_vrpOneDepot.rst                  |    48 +
 doc/vrppdtw/CMakeLists.txt                         |    12 +
 doc/vrppdtw/pgr_gsoc_vrppdtw.rst                   |   138 +
 doc/withPoints/CMakeLists.txt                      |    20 +
 doc/withPoints/images/CMakeLists.txt               |    14 +
 .../withPoints}/images/leftDrivingSide.png         |   Bin
 .../withPoints}/images/noMatterDrivingSide.png     |   Bin
 .../withPoints}/images/rightDrivingSide.png        |   Bin
 doc/withPoints/pgr_withPoints.rst                  |   298 +
 doc/withPoints/pgr_withPointsCost.rst              |   295 +
 doc/withPoints/pgr_withPointsDD.rst                |   219 +
 doc/withPoints/pgr_withPointsKSP.rst               |   194 +
 doc/withPoints/pgr_withPointsVia.rst               |   200 +
 doc/withPoints/withPoints-family.rst               |   195 +
 doxygen/CMakeLists.txt                             |     4 +-
 doxygen/Doxyfile.in                                |    26 +-
 include/allpairs/pgr_allpairs.hpp                  |   316 +
 include/astar/pgr_astar.hpp                        |   359 +
 include/bdAstar/pgr_bdAstar.hpp                    |   194 +
 include/bdDijkstra/pgr_bdDijkstra.hpp              |   149 +
 include/c_common/README.md                         |    19 +
 include/c_common/arrays_input.h                    |    52 +
 include/c_common/coordinates_input.h               |    40 +
 include/c_common/debug_macro.h                     |    40 +
 include/c_common/e_report.h                        |   138 +
 include/c_common/edges_input.h                     |   159 +
 include/c_common/get_check_data.h                  |    70 +
 include/c_common/matrixRows_input.h                |    41 +
 include/c_common/orders_input.h                    |    55 +
 include/c_common/points_input.h                    |    50 +
 include/c_common/postgres_connection.h             |    99 +
 include/c_common/restrict_input.h                  |    38 +
 include/c_common/restrictions_input.h              |    36 +
 include/c_common/time_msg.h                        |    35 +
 include/c_common/vehicles_input.h                  |    55 +
 include/c_types/column_info_t.h                    |    80 +
 include/c_types/contracted_rt.h                    |    71 +
 include/c_types/coordinate_t.h                     |    63 +
 include/c_types/general_path_element_t.h           |    68 +
 include/c_types/graph_enum.h                       |    33 +
 include/c_types/line_graph_rt.h                    |    71 +
 include/c_types/matrix_cell_t.h                    |    64 +
 include/c_types/pgr_basic_edge_t.h                 |    67 +
 include/c_types/pgr_components_rt.h                |    64 +
 include/c_types/pgr_edge_t.h                       |    66 +
 include/c_types/pgr_edge_xy_t.h                    |    69 +
 include/c_types/pgr_flow_t.h                       |    66 +
 .../c_types/pickDeliver/general_vehicle_orders_t.h |    87 +
 include/c_types/pickDeliver/pickDeliveryOrders_t.h |    85 +
 include/c_types/pickDeliver/vehicle_t.h            |    85 +
 include/c_types/point_on_edge_t.h                  |    64 +
 include/c_types/restrict_t.h                       |    69 +
 include/c_types/routes_t.h                         |    71 +
 include/components/pgr_components.hpp              |   249 +
 include/components/pgr_componentsGraph.hpp         |   117 +
 include/contraction/pgr_contract.hpp               |   183 +
 include/contraction/pgr_contractionGraph.hpp       |   302 +
 include/contraction/pgr_deadEndContraction.hpp     |   408 +
 include/contraction/pgr_linearContraction.hpp      |   282 +
 include/cpp_common/Dmatrix.h                       |   134 +
 include/cpp_common/basePath_SSEC.hpp               |   279 +
 include/cpp_common/basic_edge.h                    |    49 +
 include/cpp_common/basic_vertex.h                  |    84 +
 include/cpp_common/identifier.h                    |    59 +
 include/cpp_common/identifiers.hpp                 |   254 +
 include/cpp_common/line_vertex.h                   |    99 +
 include/cpp_common/path_t.h                        |    44 +
 include/cpp_common/pgr_alloc.hpp                   |    85 +
 include/cpp_common/pgr_assert.h                    |   136 +
 include/cpp_common/pgr_base_graph.hpp              |   953 +
 include/cpp_common/pgr_bidirectional.hpp           |   242 +
 include/cpp_common/pgr_messages.h                  |   126 +
 include/cpp_common/xy_vertex.h                     |   104 +
 include/dijkstra/pgr_dijkstra.hpp                  |   855 +
 include/dijkstraTRSP/pgr_dijkstraTRSP.hpp          |   208 +
 include/dijkstraTRSP/restriction.h                 |    65 +
 include/drivers/allpairs/floydWarshall_driver.h    |    57 +
 include/drivers/allpairs/johnson_driver.h          |    56 +
 include/drivers/astar/astar_driver.h               |    74 +
 include/drivers/bdAstar/bdAstar_driver.h           |    77 +
 include/drivers/bdDijkstra/bdDijkstra_driver.h     |    65 +
 .../drivers/components/articulationPoints_driver.h |    63 +
 .../components/biconnectedComponents_driver.h      |    63 +
 include/drivers/components/bridges_driver.h        |    63 +
 .../components/connectedComponents_driver.h        |    63 +
 .../drivers/components/strongComponents_driver.h   |    63 +
 include/drivers/contraction/contractGraph_driver.h |    68 +
 include/drivers/dijkstra/dijkstraVia_driver.h      |    62 +
 include/drivers/dijkstra/dijkstra_driver.h         |    69 +
 include/drivers/dijkstraTRSP/dijkstraTRSP_driver.h |    74 +
 .../drivers/driving_distance/drivedist_driver.h    |    51 +
 .../driving_distance/withPoints_dd_driver.h        |    66 +
 include/drivers/lineGraph/lineGraph_driver.h       |    63 +
 .../pickDeliver/pickDeliverEuclidean_driver.h      |    69 +
 include/drivers/pickDeliver/pickDeliver_driver.h   |    71 +
 include/drivers/tsp/eucledianTSP_driver.h          |    67 +
 include/drivers/tsp/newTSP_driver.h                |    67 +
 include/drivers/withPoints/get_new_queries.h       |    50 +
 include/drivers/withPoints/withPoints_driver.h     |    80 +
 include/drivers/yen/ksp_driver.h                   |    55 +
 include/drivers/yen/withPoints_ksp_driver.h        |    71 +
 include/lineGraph/pgr_lineGraph.hpp                |   592 +
 include/tsp/eucledianDmatrix.h                     |   124 +
 include/tsp/pgr_tsp.cpp                            |   572 +
 include/tsp/pgr_tsp.hpp                            |   674 +
 include/tsp/tour.h                                 |   160 +
 include/vrp/base_node.h                            |    78 +
 include/vrp/book_keeping.h                         |   134 +
 include/vrp/dnode.h                                |    66 +
 include/vrp/fleet.h                                |   141 +
 include/vrp/initial_solution.h                     |    71 +
 include/vrp/node.h                                 |    77 +
 include/vrp/optimize.h                             |    88 +
 include/vrp/order.h                                |   188 +
 include/vrp/pd_orders.h                            |   125 +
 include/vrp/pd_problem.h                           |    57 +
 include/vrp/pgr_pickDeliver.h                      |   122 +
 include/vrp/solution.h                             |   119 +
 include/vrp/tw_node.h                              |   284 +
 include/vrp/vehicle.h                              |   356 +
 include/vrp/vehicle_node.h                         |   190 +
 include/vrp/vehicle_pickDeliver.h                  |   183 +
 include/yen/pgr_ksp.hpp                            |   263 +
 locale/.gitignore                                  |     1 +
 locale/README.md                                   |   133 +
 locale/de/LC_MESSAGES/KSP-category.po              |    36 +
 locale/de/LC_MESSAGES/TSP-family.po                |   556 +
 locale/de/LC_MESSAGES/aStar-family.po              |   205 +
 locale/de/LC_MESSAGES/allpairs-family.po           |   996 ++
 locale/de/LC_MESSAGES/bdAstar-family.po            |   394 +
 locale/de/LC_MESSAGES/bdDijkstra-family.po         |   112 +
 locale/de/LC_MESSAGES/components-family.po         |   750 +
 locale/de/LC_MESSAGES/contraction-family.po        |   745 +
 locale/de/LC_MESSAGES/cost-category.po             |   178 +
 locale/de/LC_MESSAGES/costMatrix-category.po       |   237 +
 locale/de/LC_MESSAGES/cost_result.po               |    92 +
 locale/de/LC_MESSAGES/dijkstra-family.po           |   262 +
 locale/de/LC_MESSAGES/drivingDistance-category.po  |    52 +
 locale/de/LC_MESSAGES/flow-family.po               |   331 +
 locale/de/LC_MESSAGES/geom_result.po               |    74 +
 locale/de/LC_MESSAGES/index.po                     |   306 +
 locale/de/LC_MESSAGES/pgRouting-concepts.po        |  1071 ++
 locale/de/LC_MESSAGES/pgRouting-installation.po    |   418 +
 locale/de/LC_MESSAGES/pgRouting-introduction.po    |   222 +
 locale/de/LC_MESSAGES/pgr_KSP.po                   |   402 +
 locale/de/LC_MESSAGES/pgr_TSP.po                   |   224 +
 locale/de/LC_MESSAGES/pgr_aStar.po                 |   642 +
 locale/de/LC_MESSAGES/pgr_aStarCost.po             |   528 +
 locale/de/LC_MESSAGES/pgr_aStarCostMatrix.po       |   457 +
 locale/de/LC_MESSAGES/pgr_alphaShape.po            |   169 +
 locale/de/LC_MESSAGES/pgr_analyzeGraph.po          |   361 +
 locale/de/LC_MESSAGES/pgr_analyzeOneWay.po         |   290 +
 locale/de/LC_MESSAGES/pgr_articulationPoints.po    |   316 +
 locale/de/LC_MESSAGES/pgr_bdAstar.po               |   669 +
 locale/de/LC_MESSAGES/pgr_bdAstarCost.po           |   594 +
 locale/de/LC_MESSAGES/pgr_bdAstarCostMatrix.po     |   536 +
 locale/de/LC_MESSAGES/pgr_bdDijkstra.po            |   541 +
 locale/de/LC_MESSAGES/pgr_bdDijkstraCost.po        |   470 +
 locale/de/LC_MESSAGES/pgr_bdDijkstraCostMatrix.po  |   382 +
 locale/de/LC_MESSAGES/pgr_biconnectedComponents.po |   349 +
 locale/de/LC_MESSAGES/pgr_boykovKolmogorov.po      |   435 +
 locale/de/LC_MESSAGES/pgr_bridges.po               |   310 +
 locale/de/LC_MESSAGES/pgr_connectedComponents.po   |   346 +
 locale/de/LC_MESSAGES/pgr_contractGraph.po         |   488 +
 locale/de/LC_MESSAGES/pgr_createTopology.po        |   395 +
 locale/de/LC_MESSAGES/pgr_createVerticesTable.po   |   341 +
 locale/de/LC_MESSAGES/pgr_dijkstra.po              |   621 +
 locale/de/LC_MESSAGES/pgr_dijkstraCost.po          |   473 +
 locale/de/LC_MESSAGES/pgr_dijkstraCostMatrix.po    |   358 +
 locale/de/LC_MESSAGES/pgr_dijkstraVia.po           |   480 +
 locale/de/LC_MESSAGES/pgr_drivingDistance.po       |   391 +
 locale/de/LC_MESSAGES/pgr_edgeDisjointPaths.po     |   541 +
 locale/de/LC_MESSAGES/pgr_edmondsKarp.po           |   438 +
 locale/de/LC_MESSAGES/pgr_eucledianTSP.po          |   187 +
 locale/de/LC_MESSAGES/pgr_floydWarshall.po         |   348 +
 locale/de/LC_MESSAGES/pgr_gsoc_vrppdtw.po          |   358 +
 locale/de/LC_MESSAGES/pgr_johnson.po               |   341 +
 locale/de/LC_MESSAGES/pgr_labelGraph.po            |   233 +
 locale/de/LC_MESSAGES/pgr_lineGraph.po             |   387 +
 locale/de/LC_MESSAGES/pgr_maxCardinalityMatch.po   |   357 +
 locale/de/LC_MESSAGES/pgr_maxFlow.po               |   354 +
 locale/de/LC_MESSAGES/pgr_nodeNetwork.po           |   353 +
 locale/de/LC_MESSAGES/pgr_pointsAsPolygon.po       |   124 +
 locale/de/LC_MESSAGES/pgr_pushRelabel.po           |   439 +
 locale/de/LC_MESSAGES/pgr_strongComponents.po      |   346 +
 locale/de/LC_MESSAGES/pgr_trsp.po                  |   281 +
 locale/de/LC_MESSAGES/pgr_version.po               |   130 +
 locale/de/LC_MESSAGES/pgr_vrpOneDepot.po           |   112 +
 locale/de/LC_MESSAGES/pgr_withPoints.po            |   665 +
 locale/de/LC_MESSAGES/pgr_withPointsCost.po        |   603 +
 locale/de/LC_MESSAGES/pgr_withPointsCostMatrix.po  |   472 +
 locale/de/LC_MESSAGES/pgr_withPointsDD.po          |   552 +
 locale/de/LC_MESSAGES/pgr_withPointsKSP.po         |   571 +
 locale/de/LC_MESSAGES/proposed.po                  |   410 +
 locale/de/LC_MESSAGES/release_notes.po             |  1278 ++
 locale/de/LC_MESSAGES/routingFunctions.po          |   134 +
 locale/de/LC_MESSAGES/sampledata.po                |   152 +
 locale/de/LC_MESSAGES/support.po                   |   177 +
 locale/de/LC_MESSAGES/topology-functions.po        |    66 +
 locale/de/LC_MESSAGES/types_index.po               |    56 +
 locale/de/LC_MESSAGES/withPoints-family.po         |   395 +
 locale/en/LC_MESSAGES/KSP-category.po              |    36 +
 locale/en/LC_MESSAGES/TSP-family.po                |   556 +
 locale/en/LC_MESSAGES/aStar-family.po              |   205 +
 locale/en/LC_MESSAGES/allpairs-family.po           |   996 ++
 locale/en/LC_MESSAGES/bdAstar-family.po            |   394 +
 locale/en/LC_MESSAGES/bdDijkstra-family.po         |   112 +
 locale/en/LC_MESSAGES/components-family.po         |   750 +
 locale/en/LC_MESSAGES/contraction-family.po        |   745 +
 locale/en/LC_MESSAGES/cost-category.po             |   178 +
 locale/en/LC_MESSAGES/costMatrix-category.po       |   237 +
 locale/en/LC_MESSAGES/cost_result.po               |    92 +
 locale/en/LC_MESSAGES/dijkstra-family.po           |   262 +
 locale/en/LC_MESSAGES/drivingDistance-category.po  |    52 +
 locale/en/LC_MESSAGES/flow-family.po               |   331 +
 locale/en/LC_MESSAGES/geom_result.po               |    74 +
 locale/en/LC_MESSAGES/index.po                     |   306 +
 locale/en/LC_MESSAGES/pgRouting-concepts.po        |  1071 ++
 locale/en/LC_MESSAGES/pgRouting-installation.po    |   418 +
 locale/en/LC_MESSAGES/pgRouting-introduction.po    |   222 +
 locale/en/LC_MESSAGES/pgr_KSP.po                   |   402 +
 locale/en/LC_MESSAGES/pgr_TSP.po                   |   224 +
 locale/en/LC_MESSAGES/pgr_aStar.po                 |   642 +
 locale/en/LC_MESSAGES/pgr_aStarCost.po             |   528 +
 locale/en/LC_MESSAGES/pgr_aStarCostMatrix.po       |   457 +
 locale/en/LC_MESSAGES/pgr_alphaShape.po            |   169 +
 locale/en/LC_MESSAGES/pgr_analyzeGraph.po          |   361 +
 locale/en/LC_MESSAGES/pgr_analyzeOneWay.po         |   290 +
 locale/en/LC_MESSAGES/pgr_articulationPoints.po    |   316 +
 locale/en/LC_MESSAGES/pgr_bdAstar.po               |   669 +
 locale/en/LC_MESSAGES/pgr_bdAstarCost.po           |   594 +
 locale/en/LC_MESSAGES/pgr_bdAstarCostMatrix.po     |   536 +
 locale/en/LC_MESSAGES/pgr_bdDijkstra.po            |   541 +
 locale/en/LC_MESSAGES/pgr_bdDijkstraCost.po        |   470 +
 locale/en/LC_MESSAGES/pgr_bdDijkstraCostMatrix.po  |   382 +
 locale/en/LC_MESSAGES/pgr_biconnectedComponents.po |   349 +
 locale/en/LC_MESSAGES/pgr_boykovKolmogorov.po      |   435 +
 locale/en/LC_MESSAGES/pgr_bridges.po               |   310 +
 locale/en/LC_MESSAGES/pgr_connectedComponents.po   |   346 +
 locale/en/LC_MESSAGES/pgr_contractGraph.po         |   488 +
 locale/en/LC_MESSAGES/pgr_createTopology.po        |   395 +
 locale/en/LC_MESSAGES/pgr_createVerticesTable.po   |   341 +
 locale/en/LC_MESSAGES/pgr_dijkstra.po              |   621 +
 locale/en/LC_MESSAGES/pgr_dijkstraCost.po          |   473 +
 locale/en/LC_MESSAGES/pgr_dijkstraCostMatrix.po    |   358 +
 locale/en/LC_MESSAGES/pgr_dijkstraVia.po           |   480 +
 locale/en/LC_MESSAGES/pgr_drivingDistance.po       |   391 +
 locale/en/LC_MESSAGES/pgr_edgeDisjointPaths.po     |   541 +
 locale/en/LC_MESSAGES/pgr_edmondsKarp.po           |   438 +
 locale/en/LC_MESSAGES/pgr_eucledianTSP.po          |   187 +
 locale/en/LC_MESSAGES/pgr_floydWarshall.po         |   348 +
 locale/en/LC_MESSAGES/pgr_gsoc_vrppdtw.po          |   358 +
 locale/en/LC_MESSAGES/pgr_johnson.po               |   341 +
 locale/en/LC_MESSAGES/pgr_labelGraph.po            |   233 +
 locale/en/LC_MESSAGES/pgr_lineGraph.po             |   387 +
 locale/en/LC_MESSAGES/pgr_maxCardinalityMatch.po   |   357 +
 locale/en/LC_MESSAGES/pgr_maxFlow.po               |   354 +
 locale/en/LC_MESSAGES/pgr_nodeNetwork.po           |   353 +
 locale/en/LC_MESSAGES/pgr_pointsAsPolygon.po       |   124 +
 locale/en/LC_MESSAGES/pgr_pushRelabel.po           |   439 +
 locale/en/LC_MESSAGES/pgr_strongComponents.po      |   346 +
 locale/en/LC_MESSAGES/pgr_trsp.po                  |   281 +
 locale/en/LC_MESSAGES/pgr_version.po               |   130 +
 locale/en/LC_MESSAGES/pgr_vrpOneDepot.po           |   112 +
 locale/en/LC_MESSAGES/pgr_withPoints.po            |   665 +
 locale/en/LC_MESSAGES/pgr_withPointsCost.po        |   603 +
 locale/en/LC_MESSAGES/pgr_withPointsCostMatrix.po  |   472 +
 locale/en/LC_MESSAGES/pgr_withPointsDD.po          |   552 +
 locale/en/LC_MESSAGES/pgr_withPointsKSP.po         |   571 +
 locale/en/LC_MESSAGES/proposed.po                  |   410 +
 locale/en/LC_MESSAGES/release_notes.po             |  1278 ++
 locale/en/LC_MESSAGES/routingFunctions.po          |   134 +
 locale/en/LC_MESSAGES/sampledata.po                |   152 +
 locale/en/LC_MESSAGES/support.po                   |   177 +
 locale/en/LC_MESSAGES/topology-functions.po        |    66 +
 locale/en/LC_MESSAGES/types_index.po               |    56 +
 locale/en/LC_MESSAGES/withPoints-family.po         |   395 +
 locale/es/LC_MESSAGES/KSP-category.po              |    36 +
 locale/es/LC_MESSAGES/TSP-family.po                |   556 +
 locale/es/LC_MESSAGES/aStar-family.po              |   205 +
 locale/es/LC_MESSAGES/allpairs-family.po           |   996 ++
 locale/es/LC_MESSAGES/bdAstar-family.po            |   394 +
 locale/es/LC_MESSAGES/bdDijkstra-family.po         |   112 +
 locale/es/LC_MESSAGES/components-family.po         |   750 +
 locale/es/LC_MESSAGES/contraction-family.po        |   745 +
 locale/es/LC_MESSAGES/cost-category.po             |   178 +
 locale/es/LC_MESSAGES/costMatrix-category.po       |   237 +
 locale/es/LC_MESSAGES/cost_result.po               |    92 +
 locale/es/LC_MESSAGES/dijkstra-family.po           |   262 +
 locale/es/LC_MESSAGES/drivingDistance-category.po  |    52 +
 locale/es/LC_MESSAGES/flow-family.po               |   331 +
 locale/es/LC_MESSAGES/geom_result.po               |    74 +
 locale/es/LC_MESSAGES/index.po                     |   306 +
 locale/es/LC_MESSAGES/pgRouting-concepts.po        |  1071 ++
 locale/es/LC_MESSAGES/pgRouting-installation.po    |   418 +
 locale/es/LC_MESSAGES/pgRouting-introduction.po    |   222 +
 locale/es/LC_MESSAGES/pgr_KSP.po                   |   402 +
 locale/es/LC_MESSAGES/pgr_TSP.po                   |   224 +
 locale/es/LC_MESSAGES/pgr_aStar.po                 |   642 +
 locale/es/LC_MESSAGES/pgr_aStarCost.po             |   528 +
 locale/es/LC_MESSAGES/pgr_aStarCostMatrix.po       |   457 +
 locale/es/LC_MESSAGES/pgr_alphaShape.po            |   169 +
 locale/es/LC_MESSAGES/pgr_analyzeGraph.po          |   361 +
 locale/es/LC_MESSAGES/pgr_analyzeOneWay.po         |   290 +
 locale/es/LC_MESSAGES/pgr_articulationPoints.po    |   316 +
 locale/es/LC_MESSAGES/pgr_bdAstar.po               |   669 +
 locale/es/LC_MESSAGES/pgr_bdAstarCost.po           |   594 +
 locale/es/LC_MESSAGES/pgr_bdAstarCostMatrix.po     |   536 +
 locale/es/LC_MESSAGES/pgr_bdDijkstra.po            |   541 +
 locale/es/LC_MESSAGES/pgr_bdDijkstraCost.po        |   470 +
 locale/es/LC_MESSAGES/pgr_bdDijkstraCostMatrix.po  |   382 +
 locale/es/LC_MESSAGES/pgr_biconnectedComponents.po |   349 +
 locale/es/LC_MESSAGES/pgr_boykovKolmogorov.po      |   435 +
 locale/es/LC_MESSAGES/pgr_bridges.po               |   310 +
 locale/es/LC_MESSAGES/pgr_connectedComponents.po   |   346 +
 locale/es/LC_MESSAGES/pgr_contractGraph.po         |   488 +
 locale/es/LC_MESSAGES/pgr_createTopology.po        |   395 +
 locale/es/LC_MESSAGES/pgr_createVerticesTable.po   |   341 +
 locale/es/LC_MESSAGES/pgr_dijkstra.po              |   621 +
 locale/es/LC_MESSAGES/pgr_dijkstraCost.po          |   473 +
 locale/es/LC_MESSAGES/pgr_dijkstraCostMatrix.po    |   358 +
 locale/es/LC_MESSAGES/pgr_dijkstraVia.po           |   480 +
 locale/es/LC_MESSAGES/pgr_drivingDistance.po       |   391 +
 locale/es/LC_MESSAGES/pgr_edgeDisjointPaths.po     |   541 +
 locale/es/LC_MESSAGES/pgr_edmondsKarp.po           |   438 +
 locale/es/LC_MESSAGES/pgr_eucledianTSP.po          |   187 +
 locale/es/LC_MESSAGES/pgr_floydWarshall.po         |   348 +
 locale/es/LC_MESSAGES/pgr_gsoc_vrppdtw.po          |   358 +
 locale/es/LC_MESSAGES/pgr_johnson.po               |   341 +
 locale/es/LC_MESSAGES/pgr_labelGraph.po            |   233 +
 locale/es/LC_MESSAGES/pgr_lineGraph.po             |   387 +
 locale/es/LC_MESSAGES/pgr_maxCardinalityMatch.po   |   357 +
 locale/es/LC_MESSAGES/pgr_maxFlow.po               |   354 +
 locale/es/LC_MESSAGES/pgr_nodeNetwork.po           |   353 +
 locale/es/LC_MESSAGES/pgr_pointsAsPolygon.po       |   124 +
 locale/es/LC_MESSAGES/pgr_pushRelabel.po           |   439 +
 locale/es/LC_MESSAGES/pgr_strongComponents.po      |   346 +
 locale/es/LC_MESSAGES/pgr_trsp.po                  |   281 +
 locale/es/LC_MESSAGES/pgr_version.po               |   130 +
 locale/es/LC_MESSAGES/pgr_vrpOneDepot.po           |   112 +
 locale/es/LC_MESSAGES/pgr_withPoints.po            |   665 +
 locale/es/LC_MESSAGES/pgr_withPointsCost.po        |   603 +
 locale/es/LC_MESSAGES/pgr_withPointsCostMatrix.po  |   472 +
 locale/es/LC_MESSAGES/pgr_withPointsDD.po          |   552 +
 locale/es/LC_MESSAGES/pgr_withPointsKSP.po         |   571 +
 locale/es/LC_MESSAGES/proposed.po                  |   410 +
 locale/es/LC_MESSAGES/release_notes.po             |  1278 ++
 locale/es/LC_MESSAGES/routingFunctions.po          |   134 +
 locale/es/LC_MESSAGES/sampledata.po                |   152 +
 locale/es/LC_MESSAGES/support.po                   |   177 +
 locale/es/LC_MESSAGES/topology-functions.po        |    66 +
 locale/es/LC_MESSAGES/types_index.po               |    56 +
 locale/es/LC_MESSAGES/withPoints-family.po         |   395 +
 locale/fr/LC_MESSAGES/KSP-category.po              |    36 +
 locale/fr/LC_MESSAGES/TSP-family.po                |   556 +
 locale/fr/LC_MESSAGES/aStar-family.po              |   205 +
 locale/fr/LC_MESSAGES/allpairs-family.po           |   996 ++
 locale/fr/LC_MESSAGES/bdAstar-family.po            |   394 +
 locale/fr/LC_MESSAGES/bdDijkstra-family.po         |   112 +
 locale/fr/LC_MESSAGES/components-family.po         |   750 +
 locale/fr/LC_MESSAGES/contraction-family.po        |   745 +
 locale/fr/LC_MESSAGES/cost-category.po             |   178 +
 locale/fr/LC_MESSAGES/costMatrix-category.po       |   237 +
 locale/fr/LC_MESSAGES/cost_result.po               |    92 +
 locale/fr/LC_MESSAGES/dijkstra-family.po           |   262 +
 locale/fr/LC_MESSAGES/drivingDistance-category.po  |    52 +
 locale/fr/LC_MESSAGES/flow-family.po               |   331 +
 locale/fr/LC_MESSAGES/geom_result.po               |    74 +
 locale/fr/LC_MESSAGES/index.po                     |   306 +
 locale/fr/LC_MESSAGES/pgRouting-concepts.po        |  1071 ++
 locale/fr/LC_MESSAGES/pgRouting-installation.po    |   418 +
 locale/fr/LC_MESSAGES/pgRouting-introduction.po    |   222 +
 locale/fr/LC_MESSAGES/pgr_KSP.po                   |   402 +
 locale/fr/LC_MESSAGES/pgr_TSP.po                   |   224 +
 locale/fr/LC_MESSAGES/pgr_aStar.po                 |   642 +
 locale/fr/LC_MESSAGES/pgr_aStarCost.po             |   528 +
 locale/fr/LC_MESSAGES/pgr_aStarCostMatrix.po       |   457 +
 locale/fr/LC_MESSAGES/pgr_alphaShape.po            |   169 +
 locale/fr/LC_MESSAGES/pgr_analyzeGraph.po          |   361 +
 locale/fr/LC_MESSAGES/pgr_analyzeOneWay.po         |   290 +
 locale/fr/LC_MESSAGES/pgr_articulationPoints.po    |   316 +
 locale/fr/LC_MESSAGES/pgr_bdAstar.po               |   669 +
 locale/fr/LC_MESSAGES/pgr_bdAstarCost.po           |   594 +
 locale/fr/LC_MESSAGES/pgr_bdAstarCostMatrix.po     |   536 +
 locale/fr/LC_MESSAGES/pgr_bdDijkstra.po            |   541 +
 locale/fr/LC_MESSAGES/pgr_bdDijkstraCost.po        |   470 +
 locale/fr/LC_MESSAGES/pgr_bdDijkstraCostMatrix.po  |   382 +
 locale/fr/LC_MESSAGES/pgr_biconnectedComponents.po |   349 +
 locale/fr/LC_MESSAGES/pgr_boykovKolmogorov.po      |   435 +
 locale/fr/LC_MESSAGES/pgr_bridges.po               |   310 +
 locale/fr/LC_MESSAGES/pgr_connectedComponents.po   |   346 +
 locale/fr/LC_MESSAGES/pgr_contractGraph.po         |   488 +
 locale/fr/LC_MESSAGES/pgr_createTopology.po        |   395 +
 locale/fr/LC_MESSAGES/pgr_createVerticesTable.po   |   341 +
 locale/fr/LC_MESSAGES/pgr_dijkstra.po              |   621 +
 locale/fr/LC_MESSAGES/pgr_dijkstraCost.po          |   473 +
 locale/fr/LC_MESSAGES/pgr_dijkstraCostMatrix.po    |   358 +
 locale/fr/LC_MESSAGES/pgr_dijkstraVia.po           |   480 +
 locale/fr/LC_MESSAGES/pgr_drivingDistance.po       |   391 +
 locale/fr/LC_MESSAGES/pgr_edgeDisjointPaths.po     |   541 +
 locale/fr/LC_MESSAGES/pgr_edmondsKarp.po           |   438 +
 locale/fr/LC_MESSAGES/pgr_eucledianTSP.po          |   187 +
 locale/fr/LC_MESSAGES/pgr_floydWarshall.po         |   348 +
 locale/fr/LC_MESSAGES/pgr_gsoc_vrppdtw.po          |   358 +
 locale/fr/LC_MESSAGES/pgr_johnson.po               |   341 +
 locale/fr/LC_MESSAGES/pgr_labelGraph.po            |   233 +
 locale/fr/LC_MESSAGES/pgr_lineGraph.po             |   387 +
 locale/fr/LC_MESSAGES/pgr_maxCardinalityMatch.po   |   357 +
 locale/fr/LC_MESSAGES/pgr_maxFlow.po               |   354 +
 locale/fr/LC_MESSAGES/pgr_nodeNetwork.po           |   353 +
 locale/fr/LC_MESSAGES/pgr_pointsAsPolygon.po       |   124 +
 locale/fr/LC_MESSAGES/pgr_pushRelabel.po           |   439 +
 locale/fr/LC_MESSAGES/pgr_strongComponents.po      |   346 +
 locale/fr/LC_MESSAGES/pgr_trsp.po                  |   281 +
 locale/fr/LC_MESSAGES/pgr_version.po               |   130 +
 locale/fr/LC_MESSAGES/pgr_vrpOneDepot.po           |   112 +
 locale/fr/LC_MESSAGES/pgr_withPoints.po            |   665 +
 locale/fr/LC_MESSAGES/pgr_withPointsCost.po        |   603 +
 locale/fr/LC_MESSAGES/pgr_withPointsCostMatrix.po  |   472 +
 locale/fr/LC_MESSAGES/pgr_withPointsDD.po          |   552 +
 locale/fr/LC_MESSAGES/pgr_withPointsKSP.po         |   571 +
 locale/fr/LC_MESSAGES/proposed.po                  |   410 +
 locale/fr/LC_MESSAGES/release_notes.po             |  1278 ++
 locale/fr/LC_MESSAGES/routingFunctions.po          |   134 +
 locale/fr/LC_MESSAGES/sampledata.po                |   152 +
 locale/fr/LC_MESSAGES/support.po                   |   177 +
 locale/fr/LC_MESSAGES/topology-functions.po        |    66 +
 locale/fr/LC_MESSAGES/types_index.po               |    56 +
 locale/fr/LC_MESSAGES/withPoints-family.po         |   395 +
 locale/it/LC_MESSAGES/KSP-category.po              |    36 +
 locale/it/LC_MESSAGES/TSP-family.po                |   556 +
 locale/it/LC_MESSAGES/aStar-family.po              |   205 +
 locale/it/LC_MESSAGES/allpairs-family.po           |   996 ++
 locale/it/LC_MESSAGES/bdAstar-family.po            |   394 +
 locale/it/LC_MESSAGES/bdDijkstra-family.po         |   112 +
 locale/it/LC_MESSAGES/components-family.po         |   750 +
 locale/it/LC_MESSAGES/contraction-family.po        |   745 +
 locale/it/LC_MESSAGES/cost-category.po             |   178 +
 locale/it/LC_MESSAGES/costMatrix-category.po       |   237 +
 locale/it/LC_MESSAGES/cost_result.po               |    92 +
 locale/it/LC_MESSAGES/dijkstra-family.po           |   262 +
 locale/it/LC_MESSAGES/drivingDistance-category.po  |    52 +
 locale/it/LC_MESSAGES/flow-family.po               |   331 +
 locale/it/LC_MESSAGES/geom_result.po               |    74 +
 locale/it/LC_MESSAGES/index.po                     |   306 +
 locale/it/LC_MESSAGES/pgRouting-concepts.po        |  1071 ++
 locale/it/LC_MESSAGES/pgRouting-installation.po    |   418 +
 locale/it/LC_MESSAGES/pgRouting-introduction.po    |   222 +
 locale/it/LC_MESSAGES/pgr_KSP.po                   |   402 +
 locale/it/LC_MESSAGES/pgr_TSP.po                   |   224 +
 locale/it/LC_MESSAGES/pgr_aStar.po                 |   642 +
 locale/it/LC_MESSAGES/pgr_aStarCost.po             |   528 +
 locale/it/LC_MESSAGES/pgr_aStarCostMatrix.po       |   457 +
 locale/it/LC_MESSAGES/pgr_alphaShape.po            |   169 +
 locale/it/LC_MESSAGES/pgr_analyzeGraph.po          |   361 +
 locale/it/LC_MESSAGES/pgr_analyzeOneWay.po         |   290 +
 locale/it/LC_MESSAGES/pgr_articulationPoints.po    |   316 +
 locale/it/LC_MESSAGES/pgr_bdAstar.po               |   669 +
 locale/it/LC_MESSAGES/pgr_bdAstarCost.po           |   594 +
 locale/it/LC_MESSAGES/pgr_bdAstarCostMatrix.po     |   536 +
 locale/it/LC_MESSAGES/pgr_bdDijkstra.po            |   541 +
 locale/it/LC_MESSAGES/pgr_bdDijkstraCost.po        |   470 +
 locale/it/LC_MESSAGES/pgr_bdDijkstraCostMatrix.po  |   382 +
 locale/it/LC_MESSAGES/pgr_biconnectedComponents.po |   349 +
 locale/it/LC_MESSAGES/pgr_boykovKolmogorov.po      |   435 +
 locale/it/LC_MESSAGES/pgr_bridges.po               |   310 +
 locale/it/LC_MESSAGES/pgr_connectedComponents.po   |   346 +
 locale/it/LC_MESSAGES/pgr_contractGraph.po         |   488 +
 locale/it/LC_MESSAGES/pgr_createTopology.po        |   395 +
 locale/it/LC_MESSAGES/pgr_createVerticesTable.po   |   341 +
 locale/it/LC_MESSAGES/pgr_dijkstra.po              |   621 +
 locale/it/LC_MESSAGES/pgr_dijkstraCost.po          |   473 +
 locale/it/LC_MESSAGES/pgr_dijkstraCostMatrix.po    |   358 +
 locale/it/LC_MESSAGES/pgr_dijkstraVia.po           |   480 +
 locale/it/LC_MESSAGES/pgr_drivingDistance.po       |   391 +
 locale/it/LC_MESSAGES/pgr_edgeDisjointPaths.po     |   541 +
 locale/it/LC_MESSAGES/pgr_edmondsKarp.po           |   438 +
 locale/it/LC_MESSAGES/pgr_eucledianTSP.po          |   187 +
 locale/it/LC_MESSAGES/pgr_floydWarshall.po         |   348 +
 locale/it/LC_MESSAGES/pgr_gsoc_vrppdtw.po          |   358 +
 locale/it/LC_MESSAGES/pgr_johnson.po               |   341 +
 locale/it/LC_MESSAGES/pgr_labelGraph.po            |   233 +
 locale/it/LC_MESSAGES/pgr_lineGraph.po             |   387 +
 locale/it/LC_MESSAGES/pgr_maxCardinalityMatch.po   |   357 +
 locale/it/LC_MESSAGES/pgr_maxFlow.po               |   354 +
 locale/it/LC_MESSAGES/pgr_nodeNetwork.po           |   353 +
 locale/it/LC_MESSAGES/pgr_pointsAsPolygon.po       |   124 +
 locale/it/LC_MESSAGES/pgr_pushRelabel.po           |   439 +
 locale/it/LC_MESSAGES/pgr_strongComponents.po      |   346 +
 locale/it/LC_MESSAGES/pgr_trsp.po                  |   281 +
 locale/it/LC_MESSAGES/pgr_version.po               |   130 +
 locale/it/LC_MESSAGES/pgr_vrpOneDepot.po           |   112 +
 locale/it/LC_MESSAGES/pgr_withPoints.po            |   665 +
 locale/it/LC_MESSAGES/pgr_withPointsCost.po        |   603 +
 locale/it/LC_MESSAGES/pgr_withPointsCostMatrix.po  |   472 +
 locale/it/LC_MESSAGES/pgr_withPointsDD.po          |   552 +
 locale/it/LC_MESSAGES/pgr_withPointsKSP.po         |   571 +
 locale/it/LC_MESSAGES/proposed.po                  |   410 +
 locale/it/LC_MESSAGES/release_notes.po             |  1278 ++
 locale/it/LC_MESSAGES/routingFunctions.po          |   134 +
 locale/it/LC_MESSAGES/sampledata.po                |   152 +
 locale/it/LC_MESSAGES/support.po                   |   177 +
 locale/it/LC_MESSAGES/topology-functions.po        |    66 +
 locale/it/LC_MESSAGES/types_index.po               |    56 +
 locale/it/LC_MESSAGES/withPoints-family.po         |   395 +
 locale/ja/LC_MESSAGES/KSP-category.po              |    36 +
 locale/ja/LC_MESSAGES/TSP-family.po                |   556 +
 locale/ja/LC_MESSAGES/aStar-family.po              |   205 +
 locale/ja/LC_MESSAGES/allpairs-family.po           |   996 ++
 locale/ja/LC_MESSAGES/bdAstar-family.po            |   394 +
 locale/ja/LC_MESSAGES/bdDijkstra-family.po         |   112 +
 locale/ja/LC_MESSAGES/components-family.po         |   750 +
 locale/ja/LC_MESSAGES/contraction-family.po        |   745 +
 locale/ja/LC_MESSAGES/cost-category.po             |   178 +
 locale/ja/LC_MESSAGES/costMatrix-category.po       |   237 +
 locale/ja/LC_MESSAGES/cost_result.po               |    92 +
 locale/ja/LC_MESSAGES/dijkstra-family.po           |   262 +
 locale/ja/LC_MESSAGES/drivingDistance-category.po  |    52 +
 locale/ja/LC_MESSAGES/flow-family.po               |   331 +
 locale/ja/LC_MESSAGES/geom_result.po               |    74 +
 locale/ja/LC_MESSAGES/index.po                     |   306 +
 locale/ja/LC_MESSAGES/pgRouting-concepts.po        |  1071 ++
 locale/ja/LC_MESSAGES/pgRouting-installation.po    |   418 +
 locale/ja/LC_MESSAGES/pgRouting-introduction.po    |   222 +
 locale/ja/LC_MESSAGES/pgr_KSP.po                   |   402 +
 locale/ja/LC_MESSAGES/pgr_TSP.po                   |   224 +
 locale/ja/LC_MESSAGES/pgr_aStar.po                 |   642 +
 locale/ja/LC_MESSAGES/pgr_aStarCost.po             |   528 +
 locale/ja/LC_MESSAGES/pgr_aStarCostMatrix.po       |   457 +
 locale/ja/LC_MESSAGES/pgr_alphaShape.po            |   169 +
 locale/ja/LC_MESSAGES/pgr_analyzeGraph.po          |   361 +
 locale/ja/LC_MESSAGES/pgr_analyzeOneWay.po         |   290 +
 locale/ja/LC_MESSAGES/pgr_articulationPoints.po    |   316 +
 locale/ja/LC_MESSAGES/pgr_bdAstar.po               |   669 +
 locale/ja/LC_MESSAGES/pgr_bdAstarCost.po           |   594 +
 locale/ja/LC_MESSAGES/pgr_bdAstarCostMatrix.po     |   536 +
 locale/ja/LC_MESSAGES/pgr_bdDijkstra.po            |   541 +
 locale/ja/LC_MESSAGES/pgr_bdDijkstraCost.po        |   470 +
 locale/ja/LC_MESSAGES/pgr_bdDijkstraCostMatrix.po  |   382 +
 locale/ja/LC_MESSAGES/pgr_biconnectedComponents.po |   349 +
 locale/ja/LC_MESSAGES/pgr_boykovKolmogorov.po      |   435 +
 locale/ja/LC_MESSAGES/pgr_bridges.po               |   310 +
 locale/ja/LC_MESSAGES/pgr_connectedComponents.po   |   346 +
 locale/ja/LC_MESSAGES/pgr_contractGraph.po         |   488 +
 locale/ja/LC_MESSAGES/pgr_createTopology.po        |   395 +
 locale/ja/LC_MESSAGES/pgr_createVerticesTable.po   |   341 +
 locale/ja/LC_MESSAGES/pgr_dijkstra.po              |   621 +
 locale/ja/LC_MESSAGES/pgr_dijkstraCost.po          |   473 +
 locale/ja/LC_MESSAGES/pgr_dijkstraCostMatrix.po    |   358 +
 locale/ja/LC_MESSAGES/pgr_dijkstraVia.po           |   480 +
 locale/ja/LC_MESSAGES/pgr_drivingDistance.po       |   391 +
 locale/ja/LC_MESSAGES/pgr_edgeDisjointPaths.po     |   541 +
 locale/ja/LC_MESSAGES/pgr_edmondsKarp.po           |   438 +
 locale/ja/LC_MESSAGES/pgr_eucledianTSP.po          |   187 +
 locale/ja/LC_MESSAGES/pgr_floydWarshall.po         |   348 +
 locale/ja/LC_MESSAGES/pgr_gsoc_vrppdtw.po          |   358 +
 locale/ja/LC_MESSAGES/pgr_johnson.po               |   341 +
 locale/ja/LC_MESSAGES/pgr_labelGraph.po            |   233 +
 locale/ja/LC_MESSAGES/pgr_lineGraph.po             |   387 +
 locale/ja/LC_MESSAGES/pgr_maxCardinalityMatch.po   |   357 +
 locale/ja/LC_MESSAGES/pgr_maxFlow.po               |   354 +
 locale/ja/LC_MESSAGES/pgr_nodeNetwork.po           |   353 +
 locale/ja/LC_MESSAGES/pgr_pointsAsPolygon.po       |   124 +
 locale/ja/LC_MESSAGES/pgr_pushRelabel.po           |   439 +
 locale/ja/LC_MESSAGES/pgr_strongComponents.po      |   346 +
 locale/ja/LC_MESSAGES/pgr_trsp.po                  |   281 +
 locale/ja/LC_MESSAGES/pgr_version.po               |   130 +
 locale/ja/LC_MESSAGES/pgr_vrpOneDepot.po           |   112 +
 locale/ja/LC_MESSAGES/pgr_withPoints.po            |   665 +
 locale/ja/LC_MESSAGES/pgr_withPointsCost.po        |   603 +
 locale/ja/LC_MESSAGES/pgr_withPointsCostMatrix.po  |   472 +
 locale/ja/LC_MESSAGES/pgr_withPointsDD.po          |   552 +
 locale/ja/LC_MESSAGES/pgr_withPointsKSP.po         |   571 +
 locale/ja/LC_MESSAGES/proposed.po                  |   410 +
 locale/ja/LC_MESSAGES/release_notes.po             |  1278 ++
 locale/ja/LC_MESSAGES/routingFunctions.po          |   134 +
 locale/ja/LC_MESSAGES/sampledata.po                |   152 +
 locale/ja/LC_MESSAGES/support.po                   |   177 +
 locale/ja/LC_MESSAGES/topology-functions.po        |    66 +
 locale/ja/LC_MESSAGES/types_index.po               |    56 +
 locale/ja/LC_MESSAGES/withPoints-family.po         |   395 +
 locale/pot/.gitignore                              |     1 +
 locale/pot/KSP-category.pot                        |    42 +
 locale/pot/TSP-family.pot                          |   500 +
 locale/pot/aStar-family.pot                        |   200 +
 locale/pot/allpairs-family.pot                     |   993 ++
 locale/pot/bdAstar-family.pot                      |   379 +
 locale/pot/bdDijkstra-family.pot                   |   102 +
 locale/pot/components-family.pot                   |   696 +
 locale/pot/contraction-family.pot                  |   614 +
 locale/pot/cost-category.pot                       |   174 +
 locale/pot/costMatrix-category.pot                 |   226 +
 locale/pot/cost_result.pot                         |   100 +
 locale/pot/dijkstra-family.pot                     |   224 +
 locale/pot/drivingDistance-category.pot            |    58 +
 locale/pot/flow-family.pot                         |   286 +
 locale/pot/geom_result.pot                         |    79 +
 locale/pot/index.pot                               |   286 +
 locale/pot/pgRouting-concepts.pot                  |   916 +
 locale/pot/pgRouting-installation.pot              |   398 +
 locale/pot/pgRouting-introduction.pot              |   189 +
 locale/pot/pgr_KSP.pot                             |   389 +
 locale/pot/pgr_TSP.pot                             |   215 +
 locale/pot/pgr_aStar.pot                           |   608 +
 locale/pot/pgr_aStarCost.pot                       |   497 +
 locale/pot/pgr_aStarCostMatrix.pot                 |   449 +
 locale/pot/pgr_alphaShape.pot                      |   158 +
 locale/pot/pgr_analyzeGraph.pot                    |   308 +
 locale/pot/pgr_analyzeOneWay.pot                   |   234 +
 locale/pot/pgr_articulationPoints.pot              |   311 +
 locale/pot/pgr_bdAstar.pot                         |   646 +
 locale/pot/pgr_bdAstarCost.pot                     |   574 +
 locale/pot/pgr_bdAstarCostMatrix.pot               |   526 +
 locale/pot/pgr_bdDijkstra.pot                      |   504 +
 locale/pot/pgr_bdDijkstraCost.pot                  |   442 +
 locale/pot/pgr_bdDijkstraCostMatrix.pot            |   375 +
 locale/pot/pgr_biconnectedComponents.pot           |   338 +
 locale/pot/pgr_boykovKolmogorov.pot                |   422 +
 locale/pot/pgr_bridges.pot                         |   308 +
 locale/pot/pgr_connectedComponents.pot             |   337 +
 locale/pot/pgr_contractGraph.pot                   |   472 +
 locale/pot/pgr_createTopology.pot                  |   338 +
 locale/pot/pgr_createVerticesTable.pot             |   293 +
 locale/pot/pgr_dijkstra.pot                        |   565 +
 locale/pot/pgr_dijkstraCost.pot                    |   448 +
 locale/pot/pgr_dijkstraCostMatrix.pot              |   351 +
 locale/pot/pgr_dijkstraVia.pot                     |   451 +
 locale/pot/pgr_drivingDistance.pot                 |   376 +
 locale/pot/pgr_edgeDisjointPaths.pot               |   508 +
 locale/pot/pgr_edmondsKarp.pot                     |   426 +
 locale/pot/pgr_eucledianTSP.pot                    |   179 +
 locale/pot/pgr_floydWarshall.pot                   |   330 +
 locale/pot/pgr_gsoc_vrppdtw.pot                    |   355 +
 locale/pot/pgr_johnson.pot                         |   326 +
 locale/pot/pgr_labelGraph.pot                      |   202 +
 locale/pot/pgr_lineGraph.pot                       |   381 +
 locale/pot/pgr_maxCardinalityMatch.pot             |   351 +
 locale/pot/pgr_maxFlow.pot                         |   353 +
 locale/pot/pgr_nodeNetwork.pot                     |   306 +
 locale/pot/pgr_pointsAsPolygon.pot                 |   118 +
 locale/pot/pgr_pushRelabel.pot                     |   426 +
 locale/pot/pgr_strongComponents.pot                |   337 +
 locale/pot/pgr_trsp.pot                            |   262 +
 locale/pot/pgr_version.pot                         |   139 +
 locale/pot/pgr_vrpOneDepot.pot                     |   118 +
 locale/pot/pgr_withPoints.pot                      |   630 +
 locale/pot/pgr_withPointsCost.pot                  |   576 +
 locale/pot/pgr_withPointsCostMatrix.pot            |   455 +
 locale/pot/pgr_withPointsDD.pot                    |   527 +
 locale/pot/pgr_withPointsKSP.pot                   |   544 +
 locale/pot/proposed.pot                            |   382 +
 locale/pot/release_notes.pot                       |  1206 ++
 locale/pot/routingFunctions.pot                    |   134 +
 locale/pot/sampledata.pot                          |   142 +
 locale/pot/support.pot                             |   147 +
 locale/pot/topology-functions.pot                  |    62 +
 locale/pot/types_index.pot                         |    54 +
 locale/pot/withPoints-family.pot                   |   376 +
 locale/ru/LC_MESSAGES/KSP-category.po              |    36 +
 locale/ru/LC_MESSAGES/TSP-family.po                |   556 +
 locale/ru/LC_MESSAGES/aStar-family.po              |   205 +
 locale/ru/LC_MESSAGES/allpairs-family.po           |   996 ++
 locale/ru/LC_MESSAGES/bdAstar-family.po            |   394 +
 locale/ru/LC_MESSAGES/bdDijkstra-family.po         |   112 +
 locale/ru/LC_MESSAGES/components-family.po         |   750 +
 locale/ru/LC_MESSAGES/contraction-family.po        |   745 +
 locale/ru/LC_MESSAGES/cost-category.po             |   178 +
 locale/ru/LC_MESSAGES/costMatrix-category.po       |   237 +
 locale/ru/LC_MESSAGES/cost_result.po               |    92 +
 locale/ru/LC_MESSAGES/dijkstra-family.po           |   262 +
 locale/ru/LC_MESSAGES/drivingDistance-category.po  |    52 +
 locale/ru/LC_MESSAGES/flow-family.po               |   331 +
 locale/ru/LC_MESSAGES/geom_result.po               |    74 +
 locale/ru/LC_MESSAGES/index.po                     |   306 +
 locale/ru/LC_MESSAGES/pgRouting-concepts.po        |  1071 ++
 locale/ru/LC_MESSAGES/pgRouting-installation.po    |   418 +
 locale/ru/LC_MESSAGES/pgRouting-introduction.po    |   222 +
 locale/ru/LC_MESSAGES/pgr_KSP.po                   |   402 +
 locale/ru/LC_MESSAGES/pgr_TSP.po                   |   224 +
 locale/ru/LC_MESSAGES/pgr_aStar.po                 |   642 +
 locale/ru/LC_MESSAGES/pgr_aStarCost.po             |   528 +
 locale/ru/LC_MESSAGES/pgr_aStarCostMatrix.po       |   457 +
 locale/ru/LC_MESSAGES/pgr_alphaShape.po            |   169 +
 locale/ru/LC_MESSAGES/pgr_analyzeGraph.po          |   361 +
 locale/ru/LC_MESSAGES/pgr_analyzeOneWay.po         |   290 +
 locale/ru/LC_MESSAGES/pgr_articulationPoints.po    |   316 +
 locale/ru/LC_MESSAGES/pgr_bdAstar.po               |   669 +
 locale/ru/LC_MESSAGES/pgr_bdAstarCost.po           |   594 +
 locale/ru/LC_MESSAGES/pgr_bdAstarCostMatrix.po     |   536 +
 locale/ru/LC_MESSAGES/pgr_bdDijkstra.po            |   541 +
 locale/ru/LC_MESSAGES/pgr_bdDijkstraCost.po        |   470 +
 locale/ru/LC_MESSAGES/pgr_bdDijkstraCostMatrix.po  |   382 +
 locale/ru/LC_MESSAGES/pgr_biconnectedComponents.po |   349 +
 locale/ru/LC_MESSAGES/pgr_boykovKolmogorov.po      |   435 +
 locale/ru/LC_MESSAGES/pgr_bridges.po               |   310 +
 locale/ru/LC_MESSAGES/pgr_connectedComponents.po   |   346 +
 locale/ru/LC_MESSAGES/pgr_contractGraph.po         |   488 +
 locale/ru/LC_MESSAGES/pgr_createTopology.po        |   395 +
 locale/ru/LC_MESSAGES/pgr_createVerticesTable.po   |   341 +
 locale/ru/LC_MESSAGES/pgr_dijkstra.po              |   621 +
 locale/ru/LC_MESSAGES/pgr_dijkstraCost.po          |   473 +
 locale/ru/LC_MESSAGES/pgr_dijkstraCostMatrix.po    |   358 +
 locale/ru/LC_MESSAGES/pgr_dijkstraVia.po           |   480 +
 locale/ru/LC_MESSAGES/pgr_drivingDistance.po       |   391 +
 locale/ru/LC_MESSAGES/pgr_edgeDisjointPaths.po     |   541 +
 locale/ru/LC_MESSAGES/pgr_edmondsKarp.po           |   438 +
 locale/ru/LC_MESSAGES/pgr_eucledianTSP.po          |   187 +
 locale/ru/LC_MESSAGES/pgr_floydWarshall.po         |   348 +
 locale/ru/LC_MESSAGES/pgr_gsoc_vrppdtw.po          |   358 +
 locale/ru/LC_MESSAGES/pgr_johnson.po               |   341 +
 locale/ru/LC_MESSAGES/pgr_labelGraph.po            |   233 +
 locale/ru/LC_MESSAGES/pgr_lineGraph.po             |   387 +
 locale/ru/LC_MESSAGES/pgr_maxCardinalityMatch.po   |   357 +
 locale/ru/LC_MESSAGES/pgr_maxFlow.po               |   354 +
 locale/ru/LC_MESSAGES/pgr_nodeNetwork.po           |   353 +
 locale/ru/LC_MESSAGES/pgr_pointsAsPolygon.po       |   124 +
 locale/ru/LC_MESSAGES/pgr_pushRelabel.po           |   439 +
 locale/ru/LC_MESSAGES/pgr_strongComponents.po      |   346 +
 locale/ru/LC_MESSAGES/pgr_trsp.po                  |   281 +
 locale/ru/LC_MESSAGES/pgr_version.po               |   130 +
 locale/ru/LC_MESSAGES/pgr_vrpOneDepot.po           |   112 +
 locale/ru/LC_MESSAGES/pgr_withPoints.po            |   665 +
 locale/ru/LC_MESSAGES/pgr_withPointsCost.po        |   603 +
 locale/ru/LC_MESSAGES/pgr_withPointsCostMatrix.po  |   472 +
 locale/ru/LC_MESSAGES/pgr_withPointsDD.po          |   552 +
 locale/ru/LC_MESSAGES/pgr_withPointsKSP.po         |   571 +
 locale/ru/LC_MESSAGES/proposed.po                  |   410 +
 locale/ru/LC_MESSAGES/release_notes.po             |  1278 ++
 locale/ru/LC_MESSAGES/routingFunctions.po          |   134 +
 locale/ru/LC_MESSAGES/sampledata.po                |   152 +
 locale/ru/LC_MESSAGES/support.po                   |   177 +
 locale/ru/LC_MESSAGES/topology-functions.po        |    66 +
 locale/ru/LC_MESSAGES/types_index.po               |    56 +
 locale/ru/LC_MESSAGES/withPoints-family.po         |   395 +
 .../allpairs}/compare-directed.test.sql            |     0
 .../allpairs}/compare-undirected.test.sql          |     0
 pgtap/allpairs/floydWarshall-innerQuery.sql        |    18 +
 pgtap/allpairs/fw-types-check.sql                  |    52 +
 pgtap/allpairs/j-types-check.sql                   |    52 +
 pgtap/allpairs/johnson-innerQuery.sql              |    20 +
 .../test/pgtap => pgtap/alpha_shape}/issue-544.sql |     0
 pgtap/astar/aStar-group-innerQuery.sql             |    41 +
 pgtap/astar/aStarCost-group-innerQuery.sql         |    39 +
 .../astar_ManyToMany-compare-dijkstra.test.sql     |    94 +
 .../astar_ManyToOne-compare-dijkstra.test.sql      |     0
 .../astar_oneToMany-compare-dijkstra.test.sql      |     0
 .../astar/astar_oneToOne-compare-dijkstra.test.sql |    99 +
 .../astar_oneToOne-compare-dijkstra1.test.sql      |     0
 .../astar}/astar_oneToOne-types-check.sql          |     0
 pgtap/bdAstar/bdAstar-compare-dijkstra.sql         |    79 +
 pgtap/bdAstar/bdAstar-innerQuery.sql               |    26 +
 pgtap/bdAstar/bdAstar-parameter-types-check.sql    |    72 +
 pgtap/bdAstar/bdAstar-return-types-check.sql       |    54 +
 pgtap/bdAstar/bdAstarCost-innerQuery.sql           |    26 +
 pgtap/bdAstar/bdAstarCostMatrix-innerQuery.sql     |    15 +
 .../bdDijkstra}/bdDijkstra-compare-dijkstra.sql    |     0
 pgtap/bdDijkstra/bdDijkstra-innerQuery.sql         |    37 +
 .../bdDijkstra}/bdDijkstra-types-check.sql         |     0
 pgtap/bdDijkstra/bdDijkstraCost-innerQuery.sql     |    37 +
 .../pgtap => pgtap/common}/checkVertTab.test.sql   |     0
 .../pgtap => pgtap/common}/getColumnName.test.sql  |     0
 .../pgtap => pgtap/common}/getColumnType.test.sql  |     0
 .../pgtap => pgtap/common}/getTableName.test.sql   |     0
 pgtap/common/has_v3_signatures.sql                 |   141 +
 pgtap/common/hasnt_v2_signatures.sql               |    53 +
 .../common}/isColumnInTable.test.sql               |     0
 .../common}/isColumnIndexed.test.sql               |     0
 .../contraction}/contraction-types-check.sql       |     0
 .../contraction}/contraction_cycle_directed.sql    |     0
 .../contraction}/contraction_cycle_undirected.sql  |     0
 .../contraction}/directed_dead_end.sql             |     0
 .../contraction}/directed_linear.sql               |     0
 .../contraction}/undirected_dead_end.sql           |     0
 .../contraction}/undirected_linear.sql             |     0
 pgtap/costMatrix/aStarCostMatrix-innerQuery.sql    |    19 +
 pgtap/costMatrix/dijkstraCostMatrix-innerQuery.sql |    18 +
 .../costMatrix/withPointsCostMatrix-innerQuery.sql |    19 +
 .../deprecated/apspJohnson-any-00.test.sql         |     0
 pgtap/deprecated/apspJohnson-innerQuery.sql        |    21 +
 .../deprecated/apspJohnson-types-check.sql         |     0
 .../apspJohnson-v2-v3-equivalence.test.sql         |     0
 .../deprecated/apspWarshall-any-00.test.sql        |     0
 pgtap/deprecated/apspWarshall-innerQuery.sql       |    18 +
 .../deprecated/apspWarshall-types-check.sql        |     0
 ...pspWarshall-v2-v3-equivalence-directed.test.sql |     0
 ...pWarshall-v2-v3-equivalence-undirected.test.sql |     0
 .../astarV2.0-compare-dijkstra.test.sql            |     0
 pgtap/deprecated/astarV2.0-innerQuery.sql          |    22 +
 .../deprecated}/astarV2.0-types-check.sql          |     0
 .../deprecated}/astarV2.0-types-check2.sql         |     0
 pgtap/deprecated/bd_astar-innerQuery.sql           |    17 +
 pgtap/deprecated/bd_astar-types-check.sql          |   162 +
 pgtap/deprecated/bd_dijkstra-innerQuery.sql        |    22 +
 .../deprecated/bd_dijkstra-types-check.sql         |     0
 .../deprecated/bd_dijkstra-v2-compare-dijkstra.sql |     0
 .../convenience-flipEdges-types-check.sql          |     0
 .../convenience-pointToEdgeNode-types-check.sql    |     0
 .../convenience-pointsToDMatrix-types-check.sql    |     0
 .../convenience-pointsToVids-types-check.sql       |     0
 .../convenience-textToPoints-types-check.sql       |     0
 .../convenience-vidsToDMatrix-types-check.sql      |     0
 ...dijkstra-v2-equi-v3-directed-N-reverse.test.sql |     0
 ...dijkstra-v2-equi-v3-directed-W-reverse.test.sql |     0
 ...jkstra-v2-equi-v3-undirected-N-reverse.test.sql |     0
 ...jkstra-v2-equi-v3-undirected-W-reverse.test.sql |     0
 pgtap/deprecated/dijkstra-v2-innerQuery.sql        |    21 +
 .../deprecated}/dijkstraV2-types-check.sql         |     0
 pgtap/deprecated/drivingDistance-v2-innerQuery.sql |    21 +
 .../deprecated}/kdijkstra-any-01.test.sql          |     0
 .../deprecated/kdijkstra-issue229.test.sql         |     0
 .../deprecated/kdijkstra-issue333.test.sql         |     0
 .../kdijkstraCost-dijkstraCost-compare.test.sql    |     0
 .../kdijkstraCost-errors-exceptions-cost.test.sql  |     0
 pgtap/deprecated/kdijkstraCost-innerquery.sql      |    21 +
 .../kdijkstraPath-dijkstra-compare.test.sql        |     0
 .../kdijkstraPath-errors-exceptions-path.test.sql  |     0
 pgtap/deprecated/kdijkstraPath-innerquery.sql      |    21 +
 .../maxflowboykovkolmogorov-group-innerQuery.sql   |    36 +
 .../maxflowboykovkolmogorov-types-check.sql        |   139 +
 .../maxflowedmondskarp-group-innerQuery.sql        |    36 +
 .../deprecated/maxflowedmondskarp-types-check.sql  |   143 +
 .../maxflowpushrelabel-group-innerQuery.sql        |    36 +
 .../deprecated/maxflowpushrelabel-types-check.sql  |   143 +
 .../maximumcardinalitymatching-innerQuery.sql      |    19 +
 .../maximumcardinalitymatching-types-check.sql     |    52 +
 pgtap/deprecated/no_underscored-2x.test.sql        |    63 +
 pgtap/dijkstra/dijkstra-group-innerQuery.sql       |    39 +
 .../dijkstra/dijkstra-issue-353.test.sql           |     0
 .../dijkstra}/dijkstra-types-check.sql             |     0
 pgtap/dijkstra/dijkstraCost-group-innerQuery.sql   |    40 +
 .../dijkstra}/dijkstraCost-types-check.sql         |     0
 .../dijkstraVia-equivalenceDijkstra.test.sql       |     0
 pgtap/dijkstra/dijkstraVia-innerQuery.sql          |    17 +
 .../dijkstra}/dijkstraVia-types-check.sql          |     0
 .../dijkstra}/oneToOne_equiv_manyToMany.test.sql   |     0
 .../dijkstra}/oneToOne_equiv_manyToOne.test.sql    |     0
 .../dijkstra}/oneToOne_equiv_oneToMany.test.sql    |     0
 .../dijkstra}/zero_one_edge_-1_rev.test.sql        |     0
 .../dijkstra}/zero_one_edge_has_rev.test.sql       |     0
 .../dijkstra}/zero_one_edge_no_rev.test.sql        |     0
 pgtap/driving_distance/dijkstraDD-innerQuery.sql   |    28 +
 .../pgtap => pgtap/driving_distance}/issue-519.sql |     0
 .../withPointsDD-group-innerQuery.sql              |    29 +
 pgtap/ksp/ksp-innerQuery.sql                       |    19 +
 pgtap/ksp/ksp-old-innerQuery.sql                   |    20 +
 .../pgtap => pgtap/ksp}/ksp-v3-1route.test.sql     |     0
 .../test/pgtap => pgtap/ksp}/parallel-v2.test.sql  |     0
 .../ksp/test/pgtap => pgtap/ksp}/parallel.test.sql |     0
 pgtap/ksp/withPointsKSP-innerQuery.sql             |    21 +
 pgtap/max_flow/boykovKolmogorov-innerQuery.sql     |    36 +
 pgtap/max_flow/boykovKolmogorov-types-check.sql    |   139 +
 .../edgedisjointpaths-group-innerQuery.sql         |    45 +
 pgtap/max_flow/edgedisjointpaths-types-check.sql   |   155 +
 pgtap/max_flow/edmondsKarp-innerQuery.sql          |    36 +
 pgtap/max_flow/edmondsKarp-types-check.sql         |   143 +
 pgtap/max_flow/internet_example.sql                |   144 +
 pgtap/max_flow/maxCardinalityMatch-innerQuery.sql  |    19 +
 pgtap/max_flow/maxCardinalityMatch-types-check.sql |    52 +
 pgtap/max_flow/maxflow-group-innerQuery.sql        |    36 +
 pgtap/max_flow/maxflow-types-check.sql             |   118 +
 pgtap/max_flow/pushRelabel-innerQuery.sql          |    36 +
 pgtap/max_flow/pushRelabel-types-check.sql         |   143 +
 pgtap/pickDeliver/order_id_is_neg1.sql             |    30 +
 .../pickDeliver-VS-pickDeliverEuclidean.sql        |    37 +
 .../pickDeliverEuclidean-innerquery.sql            |   261 +
 .../pickDeliverEuclidean_types_check.sql           |    65 +
 .../wrong_data_pickDeliverEuclidean.sql            |   284 +
 .../pgtap => pgtap/topology}/analyzeGraph.test.sql |     0
 .../topology}/analyzeOneWay.test.sql               |     0
 .../topology}/createTopology.test.sql              |     0
 .../topology}/createVerticesTable.test.sql         |     0
 .../topology}/incrementalCreateTopology.test.sql   |     0
 .../pgtap => pgtap/topology}/nodeNetwork.test.sql  |     0
 .../blank-restrictions-compare-dijkstra.test.sql   |     0
 .../trsp}/emptyset-from-i-to-i.test.sql            |     0
 .../test/pgtap => pgtap/trsp}/from1to3.test.sql    |     0
 .../trsp}/from3to4-directed.test.sql               |     0
 ...restrictions-compare-dijkstra-directed.test.sql |     0
 ...strictions-compare-dijkstra-undirected.test.sql |     0
 .../test/pgtap => pgtap/trsp}/trsp-any-00.test.sql |     0
 .../test/pgtap => pgtap/trsp}/trsp-any-01.test.sql |     0
 .../pgtap => pgtap/trsp}/trsp-issue244.test.sql    |     0
 ...restrictions-compare-dijkstra-directed.test.sql |     0
 ...strictions-compare-dijkstra-undirected.test.sql |     0
 .../pgtap => pgtap/tsp}/pgr_TSP_types_check.sql    |     0
 .../tsp}/pgr_eucledianTSP_types_check.sql          |     0
 .../many_to_many_eq_one_to_one_withPoint.test.sql  |     0
 .../many_to_one_eq_one_to_one_withPoint.test.sql   |     0
 .../one_to_many_eq_one_to_one_withPoint.test.sql   |     0
 .../withPoints}/one_to_many_withPoint.test.sql     |     0
 .../withPoints}/one_to_one_withPoint.test.sql      |     0
 pgtap/withPoints/withPoints-group-innerQuery.sql   |    48 +
 .../withPoints/withPointsCost-group-innerQuery.sql |    47 +
 sql/CMakeLists.txt                                 |   102 +
 sql/allpairs/CMakeLists.txt                        |    12 +
 sql/allpairs/floydWarshall.sql                     |    36 +
 sql/allpairs/johnson.sql                           |    36 +
 sql/alpha_shape/CMakeLists.txt                     |    11 +
 sql/alpha_shape/alpha_shape.sql                    |   100 +
 sql/astar/CMakeLists.txt                           |    13 +
 sql/astar/_astar.sql                               |    51 +
 sql/astar/astar.sql                                |   137 +
 sql/astar/astarCost.sql                            |   126 +
 sql/bdAstar/CMakeLists.txt                         |    13 +
 sql/bdAstar/_bdAstar.sql                           |    49 +
 sql/bdAstar/bdAstar.sql                            |   156 +
 sql/bdAstar/bdAstarCost.sql                        |   118 +
 sql/bdDijkstra/CMakeLists.txt                      |    13 +
 sql/bdDijkstra/_bdDijkstra.sql                     |    45 +
 sql/bdDijkstra/bdDijkstra.sql                      |   136 +
 sql/bdDijkstra/bdDijkstraCost.sql                  |   100 +
 sql/common/CMakeLists.txt                          |    20 +
 sql/common/_point_toId.sql                         |    81 +
 sql/common/createIndex.sql                         |   115 +
 sql/common/findClosestEdge.sql                     |   100 +
 sql/common/pgRouting-header.sql                    |    37 +
 sql/common/pgr_parameter_check.sql                 |   164 +
 sql/common/pgrouting-types.sql                     |    49 +
 .../common/pgrouting.control                       |     0
 sql/common/pgrouting_utilities.sql                 |   471 +
 sql/common/pgrouting_version.sql                   |    34 +
 sql/common/utilities_pgr.sql                       |   288 +
 sql/components/CMakeLists.txt                      |    17 +
 sql/components/articulationPoints.sql              |    38 +
 sql/components/biconnectedComponents.sql           |    40 +
 sql/components/bridges.sql                         |    38 +
 sql/components/connectedComponents.sql             |    40 +
 sql/components/strongComponents.sql                |    40 +
 sql/contraction/CMakeLists.txt                     |    11 +
 sql/contraction/contractGraph.sql                  |    47 +
 sql/costMatrix/CMakeLists.txt                      |    15 +
 sql/costMatrix/astarCostMatrix.sql                 |    51 +
 sql/costMatrix/bdAstarCostMatrix.sql               |    53 +
 sql/costMatrix/bdDijkstraCostMatrix.sql            |    43 +
 .../sql => sql/costMatrix}/dijkstraCostMatrix.sql  |     0
 sql/costMatrix/withPointsCostMatrix.sql            |    53 +
 sql/deprecated/CMakeLists.txt                      |    25 +
 .../sql => sql/deprecated}/apsp_johnson_v2.2.sql   |     0
 .../sql => sql/deprecated}/apsp_warshall_v2.2.sql  |     0
 sql/deprecated/astarV2.0.sql                       |    50 +
 sql/deprecated/bdDijkstra-v2.sql                   |    53 +
 sql/deprecated/bd_astar_v2.sql                     |    59 +
 sql/deprecated/deprecated-comments.sql             |   145 +
 sql/deprecated/dijkstra_v2.sql                     |    59 +
 sql/deprecated/kdijkstra-V2.2.sql                  |   195 +
 sql/deprecated/legacy-developers.sql               |   446 +
 sql/deprecated/legacy.sql                          |   438 +
 sql/deprecated/max_flow-deprecated.sql             |   292 +
 sql/deprecated/maximum_cardinality_matching.sql    |    39 +
 sql/deprecated/noUnderUtilities.sql                |   111 +
 sql/deprecated/pgr_vidsToDMatrix.sql               |    92 +
 sql/deprecated/pgrouting_conversion_tools.sql      |   186 +
 sql/deprecated/pgrouting_dmatrix_tools.sql         |   144 +
 sql/deprecated/routing_dd.sql                      |    59 +
 sql/dijkstra/CMakeLists.txt                        |    14 +
 sql/dijkstra/_dijkstra.sql                         |    45 +
 sql/dijkstra/dijkstra.sql                          |   149 +
 sql/dijkstra/dijkstraCost.sql                      |   111 +
 sql/dijkstra/dijkstraVia.sql                       |    51 +
 sql/dijkstraTRSP/CMakeLists.txt                    |    13 +
 sql/dijkstraTRSP/dijkstraTRSP.sql                  |    47 +
 sql/driving_distance/CMakeLists.txt                |    12 +
 sql/driving_distance/dijkstraDD.sql                |    61 +
 sql/driving_distance/withPoints_dd.sql             |    71 +
 sql/ksp/CMakeLists.txt                             |    12 +
 sql/ksp/routing_ksp.sql                            |    78 +
 sql/ksp/withPoints_ksp.sql                         |    44 +
 sql/label_graph/CMakeLists.txt                     |    11 +
 sql/label_graph/label_graph.sql                    |   194 +
 sql/lineGraph/CMakeLists.txt                       |    13 +
 sql/lineGraph/lineGraph.sql                        |    41 +
 sql/max_flow/CMakeLists.txt                        |    17 +
 sql/max_flow/_max_flow.sql                         |    50 +
 sql/max_flow/boykovKolmogorov.sql                  |   108 +
 sql/max_flow/edge_disjoint_paths.sql               |   124 +
 sql/max_flow/edmondsKarp.sql                       |   108 +
 sql/max_flow/maxCardinalityMatch.sql               |    39 +
 sql/max_flow/maxFlow.sql                           |    87 +
 sql/max_flow/pushRelabel.sql                       |   108 +
 sql/pickDeliver/CMakeLists.txt                     |    12 +
 sql/pickDeliver/pickDeliver.sql                    |    57 +
 sql/pickDeliver/pickDeliverEuclidean.sql           |    54 +
 sql/scripts/CMakeLists.txt                         |     3 +
 sql/scripts/build-extension-file.pl                |    91 +
 sql/scripts/build-extension-update-files1.pl       |   712 +
 sql/sigs/CMakeLists.txt                            |    24 +
 {tools => sql}/sigs/pgrouting--2.0.0.sig           |     0
 {tools => sql}/sigs/pgrouting--2.0.1.sig           |     0
 {tools => sql}/sigs/pgrouting--2.1.0.sig           |     0
 {tools => sql}/sigs/pgrouting--2.2.0.sig           |     0
 {tools => sql}/sigs/pgrouting--2.2.1.sig           |     0
 {tools => sql}/sigs/pgrouting--2.2.2.sig           |     0
 {tools => sql}/sigs/pgrouting--2.2.3.sig           |     0
 {tools => sql}/sigs/pgrouting--2.2.4.sig           |     0
 {tools => sql}/sigs/pgrouting--2.3.0.sig           |     0
 {tools => sql}/sigs/pgrouting--2.3.1.sig           |     0
 {tools => sql}/sigs/pgrouting--2.3.2.sig           |     0
 {tools => sql}/sigs/pgrouting--2.4.0.sig           |     0
 {tools => sql}/sigs/pgrouting--2.4.1.sig           |     0
 {tools/curr-sig => sql/sigs}/pgrouting--2.4.2.sig  |     0
 sql/sigs/pgrouting--2.5.0.sig                      |   185 +
 sql/topology/CMakeLists.txt                        |    14 +
 sql/topology/create_vertices_table.sql             |   254 +
 sql/topology/nodeNetwork.sql                       |   289 +
 .../sql => sql/topology}/pgrouting_analytics.sql   |     0
 sql/topology/pgrouting_topology.sql                |   289 +
 sql/trsp/CMakeLists.txt                            |    12 +
 sql/trsp/routing_trsp_vias.sql                     |   165 +
 sql/trsp/trsp_V2.2.sql                             |   216 +
 sql/trsp/viaEdges_v2.2.sql                         |    87 +
 sql/trsp/viaVertices_v2.2.sql                      |    82 +
 sql/trsp/vias_trsp_V2.2.sql                        |   191 +
 sql/tsp/CMakeLists.txt                             |    15 +
 sql/tsp/TSP.sql                                    |    50 +
 sql/tsp/eucledianTSP.sql                           |    51 +
 sql/tsp/routing_tsp_wrappers.sql                   |    63 +
 {src/tsp/sql => sql/tsp}/tsp_v2.0_coordinates.sql  |     0
 sql/tsp/tsp_v2.0_matrix.sql                        |    95 +
 sql/vrp_basic/CMakeLists.txt                       |    13 +
 sql/vrp_basic/_pgr_vrpOneDepot.sql                 |   101 +
 sql/vrp_basic/pgr_vrpOneDepot.sql                  |    56 +
 sql/vrp_basic/routing_vrp.sql                      |    45 +
 sql/vrppdtw/CMakeLists.txt                         |    12 +
 sql/vrppdtw/_gsoc_vrppdtw.sql                      |    90 +
 sql/vrppdtw/gsoc_vrppdtw.sql                       |    19 +
 sql/withPoints/CMakeLists.txt                      |    14 +
 sql/withPoints/_withPoints.sql                     |    54 +
 sql/withPoints/withPoints.sql                      |   141 +
 sql/withPoints/withPointsCost.sql                  |   124 +
 sql/withPoints/withPointsVia.sql                   |   165 +
 src/allpairs/doc/pgr_floydWarshall.rst             |   162 -
 src/allpairs/doc/pgr_johnson.rst                   |   161 -
 src/allpairs/sql/CMakeLists.txt                    |     8 -
 src/allpairs/sql/floydWarshall.sql                 |    36 -
 src/allpairs/sql/johnson.sql                       |    36 -
 src/allpairs/src/floydWarshall.c                   |    11 +-
 src/allpairs/src/floydWarshall_driver.cpp          |     7 +-
 src/allpairs/src/floydWarshall_driver.h            |    56 -
 src/allpairs/src/johnson.c                         |    11 +-
 src/allpairs/src/johnson_driver.cpp                |     5 +-
 src/allpairs/src/johnson_driver.h                  |    55 -
 src/allpairs/src/pgr_allpairs.hpp                  |   317 -
 src/allpairs/test/doc-floydWarshall.result         |    39 +-
 src/allpairs/test/doc-johnson.result               |    41 +-
 src/allpairs/test/pgtap/fw-types-check.sql         |    85 -
 src/allpairs/test/pgtap/j-types-check.sql          |    85 -
 src/alpha_shape/doc/pgr_alphaShape.rst             |    96 -
 src/alpha_shape/doc/pgr_pointsAsPolygon.rst        |    76 -
 src/alpha_shape/sql/CMakeLists.txt                 |     7 -
 src/alpha_shape/sql/alpha_shape.sql                |    97 -
 src/alpha_shape/src/alpha.c                        |     6 +-
 src/alpha_shape/src/alpha_driver.cpp               |     2 +-
 src/alpha_shape/src/alpha_driver.h                 |     2 -
 src/alpha_shape/test/doc-pgr_alphashape.result     |    45 +-
 .../test/doc-pgr_pointsAsPolygon.result            |    14 +-
 src/apsp_johnson/doc/doc-apspJohnson.queries       |    19 -
 src/apsp_johnson/sql/CMakeLists.txt                |     7 -
 src/apsp_johnson/test/doc-apspJohnson.result       |     6 -
 src/apsp_johnson/test/doc-apspJohnson.test.sql     |    10 -
 src/apsp_johnson/test/test.conf                    |    21 -
 src/apsp_warshall/doc/doc-apspWarshall.queries     |    23 -
 src/apsp_warshall/sql/CMakeLists.txt               |     7 -
 src/apsp_warshall/test/doc-apspWarshall.result     |     9 -
 src/apsp_warshall/test/doc-apspWarshall.test.sql   |    12 -
 src/apsp_warshall/test/test.conf                   |    19 -
 src/astar/doc/doc-astar-v2.queries                 |    37 -
 src/astar/doc/doc-astar.queries                    |   118 -
 src/astar/doc/pgr_aStar.rst                        |   296 -
 src/astar/doc/pgr_aStarCost.rst                    |   239 -
 src/astar/sql/CMakeLists.txt                       |    12 -
 src/astar/sql/_astar.sql                           |   108 -
 src/astar/sql/astar.sql                            |   136 -
 src/astar/sql/astarCost.sql                        |   130 -
 src/astar/sql/astarOneToOne.sql                    |    75 -
 src/astar/sql/astarV2.0.sql                        |    50 -
 src/astar/src/CMakeLists.txt                       |     7 +-
 src/astar/src/astar.c                              |   246 +
 src/astar/src/astar_driver.cpp                     |   203 +
 src/astar/src/astar_many_to_many_driver.cpp        |   204 -
 src/astar/src/astar_many_to_many_driver.h          |    72 -
 src/astar/src/many_to_many_astar.c                 |   238 -
 src/astar/src/many_to_one_astar.c                  |   225 -
 src/astar/src/one_to_many_astar.c                  |   225 -
 src/astar/src/one_to_one_astar.c                   |   218 -
 src/astar/src/pgr_astar.hpp                        |   359 -
 src/astar/test/doc-aStarCost.result                |    62 +-
 src/astar/test/doc-astar-v2.result                 |    15 -
 src/astar/test/doc-astar-v2.test.sql               |    11 -
 src/astar/test/doc-astar.result                    |   161 +-
 src/astar/test/doc-astar.test.sql                  |     4 -
 .../astar_ManyToMany-compare-dijkstra.test.sql     |    97 -
 .../pgtap/astar_oneToOne-compare-dijkstra.test.sql |   112 -
 src/astar/test/test.conf                           |     2 -
 src/bdAstar/src/CMakeLists.txt                     |     4 +
 src/bdAstar/src/bdAstar.c                          |   238 +
 src/bdAstar/src/bdAstar_driver.cpp                 |   232 +
 src/bdAstar/test/doc-pgr_bdAstar.result            |   112 +
 src/bdAstar/test/doc-pgr_bdAstar.test.sql          |    38 +
 src/bdAstar/test/doc-pgr_bdAstarCost.result        |    71 +
 src/bdAstar/test/doc-pgr_bdAstarCost.test.sql      |    37 +
 src/bdAstar/test/test.conf                         |    18 +
 src/bdDijkstra/doc/doc-pgr_bdDijkstra.queries      |    52 -
 src/bdDijkstra/doc/pgr_bdDijkstra.rst              |   113 -
 src/bdDijkstra/sql/CMakeLists.txt                  |     7 -
 src/bdDijkstra/sql/bdDijkstra.sql                  |    93 -
 src/bdDijkstra/src/bdDijkstra.c                    |    75 +-
 src/bdDijkstra/src/bdDijkstra_driver.cpp           |   112 +-
 src/bdDijkstra/src/bdDijkstra_driver.h             |    68 -
 src/bdDijkstra/src/pgr_bdDijkstra.hpp              |   281 -
 src/bdDijkstra/test/bdDijkstra-large.result        |   716 +-
 src/bdDijkstra/test/doc-pgr_bdDijkstra.result      |   128 +-
 src/bdDijkstra/test/doc-pgr_bdDijkstra.test.sql    |    16 +-
 src/bdDijkstra/test/doc-pgr_bdDijkstraCost.result  |    60 +
 .../test/doc-pgr_bdDijkstraCost.test.sql           |    26 +
 .../test/pgtap/bdDijkstra-innerQuery.sql           |   116 -
 src/bdDijkstra/test/test.conf                      |     2 +
 src/bd_astar/doc/CMakeLists.txt                    |     0
 src/bd_astar/doc/doc-bdAstar.queries               |    35 -
 src/bd_astar/doc/pgr_bdAstar.rst                   |   102 -
 src/bd_astar/sql/CMakeLists.txt                    |     7 -
 src/bd_astar/sql/routing_bd_astar.sql              |    41 -
 src/bd_astar/src/BiDirAStar.cpp                    |   473 -
 src/bd_astar/src/BiDirAStar.h                      |   127 -
 src/bd_astar/src/CMakeLists.txt                    |     5 -
 src/bd_astar/src/MinHeap.cpp                       |   151 -
 src/bd_astar/src/MinHeap.h                         |    66 -
 src/bd_astar/src/bdastar.c                         |   442 -
 src/bd_astar/src/bdastar_driver.cpp                |    68 -
 src/bd_astar/src/bdastar_driver.h                  |    47 -
 src/bd_astar/test/bd_astar-any-00.data             | 17284 -------------------
 src/bd_astar/test/bd_astar-any-01.result           |   101 -
 src/bd_astar/test/bd_astar-any-01.test.sql         |    23 -
 src/bd_astar/test/bd_astar-any-02.result           |    60 -
 src/bd_astar/test/bd_astar-any-02.test.sql         |    23 -
 src/bd_astar/test/bd_astar-any-03.result           |     2 -
 src/bd_astar/test/bd_astar-any-03.test.sql         |    23 -
 src/bd_astar/test/bd_astar-any-04.result           |     2 -
 src/bd_astar/test/bd_astar-any-04.test.sql         |    23 -
 src/bd_astar/test/bd_astar-any-05.result           |   101 -
 src/bd_astar/test/bd_astar-any-05.test.sql         |    23 -
 src/bd_astar/test/bd_astar-any-06.result           |    60 -
 src/bd_astar/test/bd_astar-any-06.test.sql         |    23 -
 src/bd_astar/test/doc-bdAstar.result               |    13 -
 src/bd_astar/test/doc-bdAstar.test.sql             |    16 -
 src/bd_astar/test/pgtap/bdAstar-types-check.sql    |   198 -
 src/bd_astar/test/test.conf                        |    24 -
 src/bd_astar/tester/BDATester.cpp                  |   312 -
 src/bd_astar/tester/BiDirAStar.cpp                 |   511 -
 src/bd_astar/tester/BiDirAStar.h                   |   159 -
 src/bd_astar/tester/Makefile                       |     7 -
 src/bd_astar/tester/MinHeap.cpp                    |   173 -
 src/bd_astar/tester/MinHeap.h                      |    72 -
 src/bd_astar/tester/ans1.txt                       |   101 -
 src/bd_astar/tester/ans2.txt                       |    60 -
 src/bd_astar/tester/ans3.txt                       |     2 -
 src/bd_astar/tester/ans4.txt                       |     2 -
 src/bd_astar/tester/ans5.txt                       |   101 -
 src/bd_astar/tester/ans6.txt                       |    60 -
 src/bd_astar/tester/input.txt                      |     7 -
 src/bd_astar/tester/utils.h                        |   128 -
 src/bd_astar/tester/ways.txt                       | 17268 ------------------
 src/bd_astar/tester/ways2data                      |    37 -
 src/bd_dijkstra/doc/doc-bdDijkstra.queries         |    35 -
 src/bd_dijkstra/sql/CMakeLists.txt                 |     8 -
 src/bd_dijkstra/sql/bdDijkstra-v2.sql              |    53 -
 src/bd_dijkstra/test/bd_dijkstra-any-00.data       | 17280 ------------------
 src/bd_dijkstra/test/bd_dijkstra-any-01.result     |   102 -
 src/bd_dijkstra/test/bd_dijkstra-any-01.test.sql   |    23 -
 src/bd_dijkstra/test/bd_dijkstra-any-02.result     |    61 -
 src/bd_dijkstra/test/bd_dijkstra-any-02.test.sql   |    23 -
 src/bd_dijkstra/test/bd_dijkstra-any-03.result     |     3 -
 src/bd_dijkstra/test/bd_dijkstra-any-03.test.sql   |    23 -
 src/bd_dijkstra/test/bd_dijkstra-any-04.result     |     3 -
 src/bd_dijkstra/test/bd_dijkstra-any-04.test.sql   |    23 -
 src/bd_dijkstra/test/bd_dijkstra-any-05.result     |   102 -
 src/bd_dijkstra/test/bd_dijkstra-any-05.test.sql   |    23 -
 src/bd_dijkstra/test/bd_dijkstra-any-06.result     |    61 -
 src/bd_dijkstra/test/bd_dijkstra-any-06.test.sql   |    23 -
 src/bd_dijkstra/test/doc-bdDijkstra.result         |    15 -
 src/bd_dijkstra/test/doc-bdDijkstra.test.sql       |    15 -
 src/bd_dijkstra/test/test.conf                     |    24 -
 src/common/doc/CMakeLists.txt                      |     0
 src/common/doc/cost_result.rst                     |    87 -
 src/common/doc/geom_result.rst                     |    53 -
 src/common/doc/pgr_version.rst                     |    78 -
 src/common/doc/types_index.rst                     |    27 -
 src/common/sql/CMakeLists.txt                      |    17 -
 src/common/sql/_point_toId.sql                     |    81 -
 src/common/sql/createIndex.sql                     |   115 -
 src/common/sql/findClosestEdge.sql                 |   100 -
 src/common/sql/noUnderUtilities.sql                |   111 -
 src/common/sql/pgRouting-header.sql                |    37 -
 src/common/sql/pgr_parameter_check.sql             |   162 -
 src/common/sql/pgrouting-types.sql                 |    54 -
 src/common/sql/pgrouting_utilities.sql             |   471 -
 src/common/sql/pgrouting_version.sql               |    37 -
 src/common/sql/utilities_pgr.sql                   |   288 -
 src/common/src/CMakeLists.txt                      |    10 +-
 src/common/src/arrays_input.c                      |     9 +-
 src/common/src/arrays_input.h                      |    36 -
 src/common/src/basePath_SSEC.cpp                   |   116 +-
 src/common/src/basePath_SSEC.hpp                   |   331 -
 src/common/src/basic_edge.cpp                      |     2 +-
 src/common/src/basic_edge.h                        |    48 -
 src/common/src/basic_vertex.cpp                    |     5 +-
 src/common/src/basic_vertex.h                      |    81 -
 src/common/src/ch_vertex.h                         |     4 +-
 src/common/src/coordinates_input.c                 |    12 +-
 src/common/src/coordinates_input.h                 |    41 -
 src/common/src/debug_macro.h                       |    40 -
 src/common/src/e_report.c                          |     6 +-
 src/common/src/e_report.h                          |   136 -
 src/common/src/edges_input.c                       |    13 +-
 src/common/src/edges_input.h                       |   241 -
 src/common/src/get_check_data.c                    |    23 +-
 src/common/src/get_check_data.h                    |    66 -
 src/common/src/identifier.cpp                      |    56 +
 src/common/src/identifiers.hpp                     |   364 -
 src/common/src/matrixRows_input.c                  |    16 +-
 src/common/src/matrixRows_input.h                  |    41 -
 src/common/src/orders_input.c                      |   219 +
 src/common/src/pgr_alloc.cpp                       |     2 +-
 src/common/src/pgr_alloc.hpp                       |    83 -
 src/common/src/pgr_assert.cpp                      |     2 +-
 src/common/src/pgr_assert.h                        |   136 -
 src/common/src/pgr_base_graph.hpp                  |   870 -
 src/common/src/pgr_types.h                         |   265 -
 src/common/src/points_input.c                      |    11 +-
 src/common/src/points_input.h                      |    83 -
 src/common/src/postgres_connection.c               |     4 +-
 src/common/src/postgres_connection.h               |    77 -
 src/common/src/restrict_input.c                    |   173 +
 src/common/src/restrictions_input.c                |    12 +-
 src/common/src/restrictions_input.h                |    36 -
 src/common/src/time_msg.c                          |     4 +-
 src/common/src/time_msg.h                          |    35 -
 src/common/src/vehicles_input.c                    |   275 +
 src/common/src/xy_vertex.cpp                       |     5 +-
 src/common/src/xy_vertex.h                         |   102 -
 src/common/test/doc-pgr_version.result             |    14 +
 src/common/test/doc-pgr_version.test.sql           |     7 +
 src/common/test/pgtap/no_underscored-2x.test.sql   |    60 -
 src/common/test/test.conf                          |     2 +
 src/common/test/versionless-any-01.result          |   456 +-
 src/components/src/CMakeLists.txt                  |    12 +
 src/components/src/articulationPoints.c            |   251 +
 src/components/src/articulationPoints_driver.cpp   |   135 +
 src/components/src/biconnectedComponents.c         |   253 +
 .../src/biconnectedComponents_driver.cpp           |   135 +
 src/components/src/bridges.c                       |   251 +
 src/components/src/bridges_driver.cpp              |   135 +
 src/components/src/connectedComponents.c           |   253 +
 src/components/src/connectedComponents_driver.cpp  |   135 +
 src/components/src/strongComponents.c              |   253 +
 src/components/src/strongComponents_driver.cpp     |   135 +
 .../test/doc-pgr_articulationPoints.result         |    30 +
 .../test/doc-pgr_articulationPoints.test.sql       |    10 +
 .../test/doc-pgr_biconnectedComponents.result      |    58 +
 .../test/doc-pgr_biconnectedComponents.test.sql    |    10 +
 src/components/test/doc-pgr_bridges.result         |    34 +
 src/components/test/doc-pgr_bridges.test.sql       |    10 +
 .../test/doc-pgr_connectedComponents.result        |    56 +
 .../test/doc-pgr_connectedComponents.test.sql      |    10 +
 .../test/doc-pgr_strongComponents.result           |    56 +
 .../test/doc-pgr_strongComponents.test.sql         |    10 +
 .../connectedComponentsV-compare-dijkstra.sql      |    73 +
 .../test/pgtap/connectedComponentsV-innerQuery.sql |    21 +
 .../test/pgtap/connectedComponentsV-typesCheck.sql |    15 +
 src/components/test/test.conf                      |    25 +
 src/contraction/doc/contraction-family.rst         |   527 -
 src/contraction/doc/doc-contraction.queries        |   362 -
 src/contraction/doc/pgr_contractGraph.rst          |   172 -
 src/contraction/doc/proof_of_concept.queries       |   106 -
 src/contraction/sql/CMakeLists.txt                 |     6 -
 src/contraction/sql/contractGraph.sql              |    47 -
 src/contraction/src/contractGraph.c                |    24 +-
 src/contraction/src/contractGraph_driver.cpp       |    15 +-
 src/contraction/src/contractGraph_driver.h         |    67 -
 src/contraction/src/pgr_contract.hpp               |   183 -
 src/contraction/src/pgr_contractionGraph.hpp       |   300 -
 src/contraction/src/pgr_deadEndContraction.hpp     |   408 -
 src/contraction/src/pgr_linearContraction.hpp      |   274 -
 src/contraction/test/directed-deadend.result       |    64 +-
 src/contraction/test/directed-development.result   |   189 +-
 src/contraction/test/directed-linear.result        |    75 +-
 src/contraction/test/doc-contractGraph.result      |    82 +-
 src/contraction/test/doc-contraction.result        |   429 +-
 src/contraction/test/doc-contraction.test.sql      |     1 -
 src/contraction/test/expand_graph.result           |   304 +-
 .../test/expand_graph_without_function.result      |   230 +-
 src/contraction/test/proof_of_concept.result       |   144 +-
 src/contraction/test/proof_of_concept.test.sql     |    40 +-
 src/contraction/test/proof_of_concept_1.result     |   161 +-
 src/contraction/test/return_types.result           |   144 +-
 src/contraction/test/sampleData.result             |    23 +-
 src/contraction/test/test.conf                     |    13 +-
 src/convenience/doc/doc-conversion.queries         |    71 -
 src/convenience/doc/doc-matrix.queries             |   121 -
 src/convenience/doc/pgr_pointToEdgeNode.rst        |    86 -
 src/convenience/sql/CMakeLists.txt                 |     9 -
 src/convenience/sql/pgr_vidsToDMatrix.sql          |    92 -
 src/convenience/sql/pgrouting_conversion_tools.sql |   186 -
 src/convenience/sql/pgrouting_dmatrix_tools.sql    |   144 -
 src/convenience/test/doc-conversion.result         |    26 -
 src/convenience/test/doc-conversion.test.sql       |    26 -
 src/convenience/test/doc-matrix.result             |    44 -
 src/convenience/test/doc-matrix.test.sql           |    55 -
 src/convenience/test/test.conf                     |    29 -
 src/convenience/test/vidstodmatrix-any-01.result   |     4 -
 src/convenience/test/vidstodmatrix-any-01.test.sql |    33 -
 src/costMatrix/doc/cost-category.rst               |    73 -
 src/costMatrix/doc/costMatrix-category.rst         |   104 -
 src/costMatrix/doc/dmatrix_return_values.txt       |    23 -
 src/costMatrix/doc/doc-pgr_fooDmatrix.queries      |   196 -
 src/costMatrix/doc/pgr_aStarCostMatrix.rst         |   161 -
 src/costMatrix/doc/pgr_dijkstraCostMatrix.rst      |   144 -
 src/costMatrix/sql/CMakeLists.txt                  |    10 -
 src/costMatrix/sql/astarCostMatrix.sql             |    51 -
 src/costMatrix/sql/withPointsCostMatrix.sql        |    53 -
 .../test/doc-pgr_fooDmatrix-mac.test.sql           |     1 -
 .../test/doc-pgr_fooDmatrix-windows.result         |   374 +-
 .../test/doc-pgr_fooDmatrix-windows.test.sql       |    88 +-
 src/costMatrix/test/doc-pgr_fooDmatrix.result      |   399 +-
 src/costMatrix/test/doc-pgr_fooDmatrix.test.sql    |    53 +
 src/dijkstra/doc/dijkstra-family.rst               |   127 -
 src/dijkstra/doc/dijkstra-v2.queries               |    51 -
 src/dijkstra/doc/doc-pgr_dijkstra.queries          |   622 -
 src/dijkstra/doc/pgr_dijkstra.rst                  |   333 -
 src/dijkstra/doc/pgr_dijkstraCost.rst              |   255 -
 src/dijkstra/doc/pgr_dijkstraVia.rst               |   188 -
 src/dijkstra/sql/CMakeLists.txt                    |     9 -
 src/dijkstra/sql/dijkstra.sql                      |   219 -
 src/dijkstra/sql/dijkstraCost.sql                  |   103 -
 src/dijkstra/sql/dijkstraVia.sql                   |    76 -
 src/dijkstra/src/CMakeLists.txt                    |     7 +-
 src/dijkstra/src/dijkstra.c                        |   236 +
 src/dijkstra/src/dijkstraVia.c                     |    15 +-
 src/dijkstra/src/dijkstraVia_driver.cpp            |     9 +-
 src/dijkstra/src/dijkstraVia_driver.h              |    61 -
 src/dijkstra/src/dijkstra_driver.cpp               |   174 +
 src/dijkstra/src/many_to_many_dijkstra.c           |   225 -
 src/dijkstra/src/many_to_many_dijkstra_driver.cpp  |   175 -
 src/dijkstra/src/many_to_many_dijkstra_driver.h    |    67 -
 src/dijkstra/src/many_to_one_dijkstra.c            |   212 -
 src/dijkstra/src/one_to_many_dijkstra.c            |   216 -
 src/dijkstra/src/one_to_one_dijkstra.c             |   209 -
 src/dijkstra/src/pgr_dijkstra.hpp                  |   585 -
 src/dijkstra/test/dijkstra-v2.result               |    21 -
 src/dijkstra/test/dijkstra-v2.test.sql             |    26 -
 src/dijkstra/test/doc-pgr_dijkstra.result          |   780 +-
 src/dijkstra/test/doc-pgr_dijkstra.test.sql        |    19 +-
 src/dijkstra/test/doc-pgr_dijkstraCost.result      |    99 +-
 src/dijkstra/test/doc-pgr_dijkstraVia.result       |   173 +-
 src/dijkstra/test/issue-353.result                 |     4 -
 src/dijkstra/test/many_to_1.result                 |    35 -
 src/dijkstra/test/many_to_1.test.sql               |    52 -
 src/dijkstra/test/test.conf                        |     6 -
 src/dijkstraTRSP/src/CMakeLists.txt                |     5 +
 src/dijkstraTRSP/src/dijkstraTRSP.c                |   285 +
 src/dijkstraTRSP/src/dijkstraTRSP_driver.cpp       |   186 +
 src/dijkstraTRSP/src/restriction.cpp               |    52 +
 src/dijkstraTRSP/test/custom.result                |    25 +
 src/dijkstraTRSP/test/custom.test.sql              |    12 +
 src/dijkstraTRSP/test/doc-dijkstraTRSP.result      |    36 +
 src/dijkstraTRSP/test/doc-dijkstraTRSP.test.sql    |    16 +
 src/dijkstraTRSP/test/pgtap/custom.sql             |   163 +
 .../test/pgtap/dijkstraTRSP-compare-dijkstra.sql   |    75 +
 .../test/pgtap/dijkstraTRSP-innerQuery.sql         |    19 +
 .../test/pgtap/dijkstraTRSP-typesCheck.sql         |    16 +
 .../test/pgtap/empty_set_NO_default_strict.sql     |   258 +
 .../test/pgtap/empty_set_default_strict.sql        |   238 +
 src/dijkstraTRSP/test/pgtap_design.result          |   196 +
 src/dijkstraTRSP/test/pgtap_design.test.sql        |   129 +
 src/dijkstraTRSP/test/test.conf                    |    16 +
 .../doc/doc-pgr_drivingDistance.queries            |   339 -
 .../doc/doc-pgr_drivingdistance-v2.queries         |    32 -
 .../doc/drivingDistance-category.rst               |    33 -
 src/driving_distance/doc/pgr_drivingDistance.rst   |   186 -
 src/driving_distance/sql/CMakeLists.txt            |     7 -
 src/driving_distance/sql/routing_dd.sql            |    95 -
 src/driving_distance/sql/withPoints_dd.sql         |    71 -
 src/driving_distance/src/drivedist_driver.cpp      |   122 +-
 src/driving_distance/src/drivedist_driver.h        |    49 -
 .../src/many_to_dist_driving_distance.c            |    16 +-
 .../src/many_to_dist_withPointsDD.c                |    21 +-
 src/driving_distance/src/withPoints_dd_driver.cpp  |    11 +-
 src/driving_distance/src/withPoints_dd_driver.h    |    63 -
 .../test/dijksraDD-issue729.result                 |    71 +
 ...sue729.test.sql => dijksraDD-issue729.test.sql} |     0
 .../test/doc-pgr_drivingDistance.result            |   480 +-
 .../test/doc-pgr_drivingDistance.test.sql          |    27 -
 .../test/doc-pgr_drivingdistance-v2.result         |     8 -
 .../test/doc-pgr_drivingdistance-v2.test.sql       |    19 -
 .../test/drivingdistance-any-00.result             |   575 -
 .../test/drivingdistance-any-00.test.sql           |    65 -
 src/driving_distance/test/issue729.result          |     5 -
 src/driving_distance/test/test.conf                |     5 +-
 src/internalQueryTests/src/testXYedges.c           |    10 +-
 src/internalQueryTests/src/testXYedges_driver.cpp  |     1 -
 src/internalQueryTests/src/testXYedges_driver.h    |     2 +-
 src/internalQueryTests/src/test_c_edges.c          |     9 +-
 src/internalQueryTests/src/test_c_edges_driver.cpp |     1 -
 src/internalQueryTests/src/test_c_edges_driver.h   |     2 +-
 src/internalQueryTests/src/test_matrixRows.c       |     9 +-
 .../src/test_matrixRows_driver.h                   |     2 +-
 src/kdijkstra/doc/doc-kdijkstra.queries            |    52 -
 src/kdijkstra/sql/CMakeLists.txt                   |     7 -
 src/kdijkstra/sql/kdijkstra-V2.2.sql               |   195 -
 src/kdijkstra/test/doc-kdijkstra.result            |    19 -
 src/kdijkstra/test/doc-kdijkstra.test.sql          |    24 -
 src/kdijkstra/test/test.conf                       |    24 -
 src/ksp/doc/KSP-category.rst                       |    23 -
 src/ksp/doc/doc-ksp-v2.queries                     |    51 -
 src/ksp/doc/doc-ksp.queries                        |   294 -
 src/ksp/doc/pgr_KSP.rst                            |   181 -
 src/ksp/sql/CMakeLists.txt                         |     9 -
 src/ksp/sql/routing_ksp.sql                        |    78 -
 src/ksp/sql/withPoints_ksp.sql                     |    44 -
 src/ksp/src/ksp.c                                  |    15 +-
 src/ksp/src/ksp_driver.cpp                         |    11 +-
 src/ksp/src/ksp_driver.h                           |    54 -
 src/ksp/src/pgr_ksp.cpp                            |   165 -
 src/ksp/src/pgr_ksp.hpp                            |   122 -
 src/ksp/src/withPoints_ksp.c                       |    19 +-
 src/ksp/src/withPoints_ksp_driver.cpp              |     8 +-
 src/ksp/src/withPoints_ksp_driver.h                |    65 -
 src/ksp/test/doc-ksp-v2.result                     |    29 -
 src/ksp/test/doc-ksp-v2.test.sql                   |    15 -
 src/ksp/test/doc-ksp.result                        |   436 +-
 src/ksp/test/doc-ksp.test.sql                      |     7 -
 src/ksp/test/ksp-network.result                    |     2 -
 src/ksp/test/ksp-network.test.sql                  |   116 -
 src/ksp/test/test.conf                             |     3 -
 src/label_graph/doc/doc-pgr_labelGraph.queries     |    24 -
 src/label_graph/doc/pgr_labelGraph.rst             |    87 -
 src/label_graph/sql/CMakeLists.txt                 |     7 -
 src/label_graph/sql/label_graph.sql                |   194 -
 src/label_graph/test/doc-pgr_labelGraph.result     |    26 +-
 src/label_graph/test/doc-pgr_labelGraph.test.sql   |     2 +-
 src/lineGraph/src/CMakeLists.txt                   |     4 +
 src/lineGraph/src/lineGraph.c                      |   223 +
 src/lineGraph/src/lineGraph_driver.cpp             |   157 +
 src/lineGraph/test/doc-pgr_lineGraph.result        |   210 +
 src/lineGraph/test/doc-pgr_lineGraph.test.sql      |    12 +
 src/lineGraph/test/pgtap/lineGraph-innerQuery.sql  |    20 +
 src/lineGraph/test/pgtap/lineGraph-typesCheck.sql  |    14 +
 src/lineGraph/test/test.conf                       |    17 +
 src/max_flow/doc/CMakeLists.txt                    |     0
 src/max_flow/doc/doc-pgr_edgeDisjointPaths.queries |    91 -
 src/max_flow/doc/doc-pgr_maxFlow.queries           |    75 -
 .../doc/doc-pgr_maxFlowBoykovKolmogorov.queries    |   107 -
 .../doc/doc-pgr_maxFlowEdmondsKarp.queries         |   107 -
 .../doc/doc-pgr_maxFlowPushRelabel.queries         |   114 -
 .../doc/doc-pgr_maximumCardinalityMatching.queries |    40 -
 src/max_flow/doc/flow-family.rst                   |   101 -
 src/max_flow/doc/maxFlowApplications.rst           |    60 -
 src/max_flow/doc/pgr_edgeDisjointPaths.rst         |   225 -
 src/max_flow/doc/pgr_maxFlow.rst                   |   190 -
 src/max_flow/doc/pgr_maxFlowBoykovKolmogorov.rst   |   219 -
 src/max_flow/doc/pgr_maxFlowEdmondsKarp.rst        |   209 -
 src/max_flow/doc/pgr_maxFlowPushRelabel.rst        |   213 -
 .../doc/pgr_maximumCardinalityMatching.rst         |   171 -
 src/max_flow/sql/CMakeLists.txt                    |    10 -
 src/max_flow/sql/edge_disjoint_paths.sql           |   102 -
 src/max_flow/sql/max_flow.sql                      |   366 -
 src/max_flow/sql/maximum_cardinality_matching.sql  |    39 -
 src/max_flow/sql/only_flow.sql                     |    86 -
 src/max_flow/src/CMakeLists.txt                    |    23 +-
 src/max_flow/src/edge_disjoint_paths.c             |   201 +
 src/max_flow/src/edge_disjoint_paths_driver.cpp    |   127 +-
 src/max_flow/src/edge_disjoint_paths_driver.h      |     6 +-
 .../src/edge_disjoint_paths_many_to_many.c         |   199 -
 src/max_flow/src/edge_disjoint_paths_many_to_one.c |   192 -
 src/max_flow/src/edge_disjoint_paths_one_to_many.c |   200 -
 src/max_flow/src/edge_disjoint_paths_one_to_one.c  |   196 -
 src/max_flow/src/max_flow.c                        |   224 +
 src/max_flow/src/max_flow_driver.cpp               |    65 +-
 src/max_flow/src/max_flow_driver.h                 |     5 +-
 src/max_flow/src/max_flow_many_to_many.c           |   227 -
 src/max_flow/src/max_flow_many_to_one.c            |   216 -
 src/max_flow/src/max_flow_one_to_many.c            |   219 -
 src/max_flow/src/max_flow_one_to_one.c             |   216 -
 src/max_flow/src/maximum_cardinality_matching.c    |    11 +-
 .../src/maximum_cardinality_matching_driver.cpp    |     5 +-
 .../src/maximum_cardinality_matching_driver.h      |     2 +-
 src/max_flow/src/pgr_edgedisjointpaths.hpp         |   266 -
 src/max_flow/src/pgr_flowgraph.cpp                 |    27 +
 src/max_flow/src/pgr_flowgraph.hpp                 |    54 +
 src/max_flow/src/pgr_maxflow.cpp                   |   310 +
 src/max_flow/src/pgr_maxflow.hpp                   |   367 +-
 .../src/pgr_maximumcardinalitymatching.hpp         |     4 -
 src/max_flow/test/doc-pgr_boykovKolmogorov.result  |    90 +
 .../test/doc-pgr_boykovKolmogorov.test.sql         |    46 +
 src/max_flow/test/doc-pgr_edgeDisjointPaths.result |   160 +-
 .../test/doc-pgr_edgeDisjointPaths.test.sql        |    12 +-
 src/max_flow/test/doc-pgr_edmondsKarp.result       |    90 +
 src/max_flow/test/doc-pgr_edmondsKarp.test.sql     |    46 +
 .../test/doc-pgr_maxCardinalityMatch.result        |    40 +
 .../test/doc-pgr_maxCardinalityMatch.test.sql      |    13 +
 src/max_flow/test/doc-pgr_maxFlow.result           |    66 +-
 src/max_flow/test/doc-pgr_maxFlow.test.sql         |    32 +-
 .../test/doc-pgr_maxFlowBoykovKolmogorov.result    |    41 -
 .../test/doc-pgr_maxFlowBoykovKolmogorov.test.sql  |    54 -
 .../test/doc-pgr_maxFlowEdmondsKarp.result         |    41 -
 .../test/doc-pgr_maxFlowEdmondsKarp.test.sql       |    57 -
 .../test/doc-pgr_maxFlowPushRelabel.result         |    48 -
 .../test/doc-pgr_maxFlowPushRelabel.test.sql       |    59 -
 .../test/doc-pgr_maximumCardinalityMatching.result |    19 -
 .../doc-pgr_maximumCardinalityMatching.test.sql    |    15 -
 src/max_flow/test/doc-pgr_pushRelabel.result       |    96 +
 src/max_flow/test/doc-pgr_pushRelabel.test.sql     |    51 +
 src/max_flow/test/pgtap/flow-types-check.sql       |  1398 --
 .../test/pgtap/flowapplications-types-check.sql    |   740 -
 src/max_flow/test/pgtap/internet_example.sql       |   144 -
 src/max_flow/test/sample_data_categories.sql       |    33 -
 src/max_flow/test/test.conf                        |    16 +-
 src/pickDeliver/doc/doc-pickDeliver.queries        |   275 -
 src/pickDeliver/doc/pgr_pickDeliver.rst.backup     |   229 -
 src/pickDeliver/sql/CMakeLists.txt                 |     7 -
 src/pickDeliver/sql/pickDeliver.sql                |    51 -
 src/pickDeliver/src/CMakeLists.txt                 |    13 +-
 src/pickDeliver/src/base_node.cpp                  |    58 +
 src/pickDeliver/src/book_keeping.cpp               |    75 +
 src/pickDeliver/src/customers_input.c              |   159 -
 src/pickDeliver/src/customers_input.h              |    32 -
 src/pickDeliver/src/dnode.cpp                      |    56 +
 src/pickDeliver/src/fleet.cpp                      |   365 +
 src/pickDeliver/src/initial_solution.cpp           |   540 +-
 src/pickDeliver/src/initial_solution.h             |    77 -
 src/pickDeliver/src/node.cpp                       |    54 +-
 src/pickDeliver/src/node.h                         |    80 -
 src/pickDeliver/src/optimize.cpp                   |   563 +-
 src/pickDeliver/src/optimize.h                     |    76 -
 src/pickDeliver/src/order.cpp                      |   138 +-
 src/pickDeliver/src/order.h                        |   106 -
 src/pickDeliver/src/pd_orders.cpp                  |   203 +
 src/pickDeliver/src/pd_problem.cpp                 |    46 +
 src/pickDeliver/src/pgr_messages.cpp               |    83 +
 src/pickDeliver/src/pgr_pickDeliver.cpp            |   471 +-
 src/pickDeliver/src/pgr_pickDeliver.h              |   104 -
 src/pickDeliver/src/pickDeliver.c                  |   266 +-
 src/pickDeliver/src/pickDeliverEuclidean.c         |   307 +
 .../src/pickDeliverEuclidean_driver.cpp            |   162 +
 src/pickDeliver/src/pickDeliver_driver.cpp         |   168 +-
 src/pickDeliver/src/pickDeliver_driver.h           |    60 -
 src/pickDeliver/src/solution.cpp                   |    40 +-
 src/pickDeliver/src/solution.h                     |   125 -
 src/pickDeliver/src/tw_node.cpp                    |   186 +-
 src/pickDeliver/src/tw_node.h                      |   299 -
 src/pickDeliver/src/vehicle.cpp                    |   131 +-
 src/pickDeliver/src/vehicle.h                      |   325 -
 src/pickDeliver/src/vehicle_node.cpp               |    37 +-
 src/pickDeliver/src/vehicle_node.h                 |   183 -
 src/pickDeliver/src/vehicle_pickDeliver.cpp        |   209 +-
 src/pickDeliver/src/vehicle_pickDeliver.h          |   155 -
 src/pickDeliver/test/book_from_query.result        |   186 +
 src/pickDeliver/test/book_from_query.test.sql      |   115 +
 .../pickDeliver/test/book_vrp.result               |     0
 src/pickDeliver/test/book_vrp.test.sql             |   664 +
 src/pickDeliver/test/design_pgtap.result           |    20 +
 src/pickDeliver/test/design_pgtap.test.sql         |     9 +
 .../test/differentVechiles-cygwin.result           |     2 +
 .../test/differentVechiles-cygwin.test.sql         |    37 +
 src/pickDeliver/test/differentVechiles.result      |   230 +
 src/pickDeliver/test/differentVechiles.test.sql    |    34 +
 src/pickDeliver/test/doc-pickDeliver.result        |   312 +-
 src/pickDeliver/test/doc-pickDeliver.test.sql      |    26 +-
 .../test/doc-pickDeliverEuclidean.result           |    27 +
 .../test/doc-pickDeliverEuclidean.test.sql         |     6 +
 src/pickDeliver/test/jet_customers-cygwin.result   |    92 +
 src/pickDeliver/test/jet_customers-cygwin.test.sql |   104 +
 src/pickDeliver/test/jet_customers.result          |   153 +-
 src/pickDeliver/test/jet_customers.test.sql        |    30 +-
 src/pickDeliver/test/jet_customers1.result         |   291 +
 src/pickDeliver/test/jet_customers1.test.sql       |   120 +
 .../test/notTestingYet/pickDeliver-innerquery.sql  |   391 +
 .../test/notTestingYet/pickDeliver-types_check.sql |    55 +
 .../test/notTestingYet/pickDeliver_types_check.sql |    53 +
 src/pickDeliver/test/past_example.result           |   266 +
 src/pickDeliver/test/past_example.test.sql         |     9 +
 .../test/pgtap/pickDeliver_types_check.sql         |    39 -
 src/pickDeliver/test/pgtap/wrong_data.sql          |   130 -
 src/pickDeliver/test/pickDeliver.data              |   120 -
 src/pickDeliver/test/pickDeliver.result            |   257 +
 src/pickDeliver/test/pickDeliver.test.sql          |    10 +
 src/pickDeliver/test/test.conf                     |    23 +-
 src/topology/doc/doc-pgr_createTopology.queries    |   262 -
 src/topology/doc/pgr_analyzeGraph.rst              |   376 -
 src/topology/doc/pgr_analyzeOneWay.rst             |   139 -
 src/topology/doc/pgr_createTopology.rst            |   256 -
 src/topology/doc/pgr_createVerticesTable.rst       |   266 -
 src/topology/doc/pgr_nodeNetwork.rst               |   394 -
 src/topology/doc/topology-functions.rst            |    33 -
 src/topology/sql/CMakeLists.txt                    |    10 -
 src/topology/sql/create_vertices_table.sql         |   254 -
 src/topology/sql/nodeNetwork.sql                   |   289 -
 src/topology/sql/pgrouting_topology.sql            |   289 -
 src/topology/test/analyzeOneway-any.result         |    34 +-
 src/topology/test/createVertTab-any.result         |   504 +-
 src/topology/test/doc-pgr_analyzeGraph.result      |   914 +-
 src/topology/test/doc-pgr_createTopology.result    |   207 +-
 src/topology/test/doc-pgr_createTopology.test.sql  |     8 +-
 src/topology/test/issue900.result                  |    16 +
 src/topology/test/nodeNetwork-any.result           |   127 +-
 src/trsp/doc/README.md                             |  1112 --
 src/trsp/doc/pgr_trsp.rst                          |   204 -
 src/trsp/sql/CMakeLists.txt                        |    10 -
 src/trsp/sql/routing_trsp_vias.sql                 |   192 -
 src/trsp/sql/trsp_V2.2.sql                         |   214 -
 src/trsp/sql/viaEdges_v2.2.sql                     |    85 -
 src/trsp/sql/viaVertices_v2.2.sql                  |    82 -
 src/trsp/sql/vias_trsp_V2.2.sql                    |   220 -
 src/trsp/src/GraphDefinition.cpp                   |   869 +-
 src/trsp/src/GraphDefinition.h                     |    96 +-
 src/trsp/src/trsp.c                                |   653 +-
 src/trsp/src/trsp.h                                |    90 +-
 src/trsp/src/trsp_core.cpp                         |    83 +-
 src/trsp/src/trsp_driver.cpp                       |    32 +-
 src/trsp/src/trsp_driver.h                         |    58 +-
 src/trsp/src/utils.h                               |   171 +-
 src/trsp/test/doc-trsp.result                      |   159 +-
 src/trsp/test/issue693.result                      |    34 +-
 src/trsp/test/issue704.result                      |    81 +-
 src/trsp/test/issue717.result                      |   488 +-
 src/trsp/test/test.conf                            |     4 +-
 src/trsp/test/trsp-any-02.result                   |    52 +-
 src/trsp/test/trsp_notes_v2.4.0.result             |   552 -
 src/trsp/test/trsp_notes_v2.4.0.test.sql           |   814 -
 src/trsp/test/trsp_notes_v2.5.0.result             |  1112 ++
 src/trsp/test/trsp_notes_v2.5.0.test.sql           |   814 +
 src/trsp/test/trsp_vias-any-04.result              |   199 +-
 src/tsp/doc/TSP-family.rst                         |   218 -
 src/tsp/doc/doc-tsp.queries                        |   102 -
 src/tsp/doc/pgr_TSP.rst                            |   166 -
 src/tsp/doc/pgr_eucledianTSP.rst                   |   150 -
 src/tsp/doc/tsp_parameters.txt                     |    34 -
 src/tsp/doc/tsp_return_values.txt                  |    27 -
 src/tsp/sql/CMakeLists.txt                         |    17 -
 src/tsp/sql/TSP.sql                                |    50 -
 src/tsp/sql/eucledianTSP.sql                       |    51 -
 src/tsp/sql/routing_tsp_wrappers.sql               |    63 -
 src/tsp/sql/tsp_v2.0_matrix.sql                    |    95 -
 src/tsp/src/Dmatrix.cpp                            |    39 +-
 src/tsp/src/Dmatrix.h                              |   125 -
 src/tsp/src/eucledianDmatrix.cpp                   |     6 +-
 src/tsp/src/eucledianDmatrix.h                     |   124 -
 src/tsp/src/eucledianTSP.c                         |    14 +-
 src/tsp/src/eucledianTSP_driver.cpp                |    12 +-
 src/tsp/src/eucledianTSP_driver.h                  |    65 -
 src/tsp/src/newTSP.c                               |    16 +-
 src/tsp/src/newTSP_driver.cpp                      |    10 +-
 src/tsp/src/newTSP_driver.h                        |    65 -
 src/tsp/src/pgr_tsp.cpp                            |   573 -
 src/tsp/src/pgr_tsp.hpp                            |   149 -
 src/tsp/src/tour.cpp                               |     4 +-
 src/tsp/src/tour.h                                 |   160 -
 src/tsp/test/doc-pgr_TSP-windows.result            |    52 +
 src/tsp/test/doc-pgr_TSP.result                    |    94 +-
 src/tsp/test/doc-pgr_eucledianTSP.result           |   122 +-
 src/tsp/test/doc-pgr_eucledianTSP.test.sql         |     3 +
 src/tsp/test/doc-tsp-mac.result                    |    18 -
 src/tsp/test/doc-tsp-mac.test.sql                  |     2 -
 src/tsp/test/doc-tsp-windows.result                |    18 -
 src/tsp/test/doc-tsp-windows.test.sql              |    10 -
 src/tsp/test/doc-tsp.result                        |    52 -
 src/tsp/test/doc-tsp.test.sql                      |    36 -
 src/tsp/test/test.conf                             |     6 +-
 src/tsp/test/tsp-v2-0.result                       |   209 -
 src/tsp/test/tsp-v2-0.test.sql                     |   138 -
 src/vrp_basic/doc/CMakeLists.txt                   |     0
 src/vrp_basic/doc/pgr_vrpOneDepot.rst              |    24 -
 src/vrp_basic/sql/CMakeLists.txt                   |     8 -
 src/vrp_basic/sql/routing_vrp.sql                  |    45 -
 src/vrp_basic/src/CMakeLists.txt                   |     4 -
 src/vrp_basic/src/Tester.cpp                       |   250 -
 src/vrp_basic/src/Utils.h                          |   112 -
 src/vrp_basic/src/VRP.c                            |   862 -
 src/vrp_basic/src/VRP.h                            |    78 -
 src/vrp_basic/src/VRP_Solver.cpp                   |   887 -
 src/vrp_basic/src/VRP_Solver.h                     |   414 -
 src/vrp_basic/src/VRP_core.cpp                     |   227 -
 src/vrp_basic/test/Distance.txt                    | 10100 -----------
 src/vrp_basic/test/Orders.txt                      |   102 -
 src/vrp_basic/test/VRP-any-01.data                 |   114 -
 src/vrp_basic/test/VRP-any-01.result               |     0
 src/vrp_basic/test/VRP-any-01.test.sql             |    27 -
 src/vrp_basic/test/VRP-any-02.test.sql             |    26 -
 src/vrp_basic/test/Vehicles.txt                    |    21 -
 src/vrp_basic/test/doc-pgr_vrpOneDepot.result      |   256 +
 src/vrp_basic/test/doc-pgr_vrpOneDepot.test.sql    |     6 +
 src/vrp_basic/test/oneDepotWrapper.result          |   256 +
 src/vrp_basic/test/oneDepotWrapper.test.sql        |     6 +
 src/vrp_basic/test/test.conf                       |    14 +-
 src/vrppdtw/doc/doc-gsoc_vrppdtw.queries           |    83 -
 src/vrppdtw/doc/pgr_gsoc_vrppdtw.rst               |   133 -
 src/vrppdtw/sql/CMakeLists.txt                     |     7 -
 src/vrppdtw/sql/gsoc_vrppdtw.sql                   |    19 -
 src/vrppdtw/test/doc-gsoc_vrppdtw.result           |   128 +-
 src/vrppdtw/test/jet_customers.result              |    96 -
 src/vrppdtw/test/jet_customers.test.sql            |   128 -
 src/vrppdtw/test/pdp-any-02.result                 |   126 -
 src/vrppdtw/test/pdp-any-02.test.sql               |     3 -
 src/vrppdtw/test/test.conf                         |    17 +-
 src/withPoints/doc/doc-pgr_withPointsVia.queries   |    37 -
 src/withPoints/doc/doc-withPointsVia.queries       |   100 -
 src/withPoints/doc/pgr_withPoints.rst              |   302 -
 src/withPoints/doc/pgr_withPointsCost.rst          |   295 -
 src/withPoints/doc/pgr_withPointsDD.rst            |   219 -
 src/withPoints/doc/pgr_withPointsKSP.rst           |   194 -
 src/withPoints/doc/pgr_withPointsVia.rst           |   200 -
 src/withPoints/doc/withPoints-family.rst           |   188 -
 src/withPoints/sql/CMakeLists.txt                  |     9 -
 src/withPoints/sql/withPoints.sql                  |   264 -
 src/withPoints/sql/withPointsCost.sql              |   132 -
 src/withPoints/sql/withPointsVia.sql               |   165 -
 src/withPoints/src/CMakeLists.txt                  |     9 +-
 src/withPoints/src/get_new_queries.cpp             |     2 +-
 src/withPoints/src/get_new_queries.h               |    50 -
 src/withPoints/src/many_to_many_withPoints.c       |   258 -
 .../src/many_to_many_withPoints_driver.cpp         |   249 -
 .../src/many_to_many_withPoints_driver.h           |    79 -
 src/withPoints/src/many_to_one_withPoints.c        |   252 -
 src/withPoints/src/one_to_many_withPoints.c        |   266 -
 src/withPoints/src/one_to_one_withPoints.c         |   251 -
 src/withPoints/src/pgr_withPoints.cpp              |     3 +-
 src/withPoints/src/pgr_withPoints.hpp              |     4 +-
 src/withPoints/src/withPoints.c                    |   281 +
 src/withPoints/src/withPoints_driver.cpp           |   251 +
 src/withPoints/test/doc-pgr_withPoints.result      |   303 +-
 src/withPoints/test/doc-pgr_withPointsCost.result  |   118 +-
 src/withPoints/test/doc-pgr_withPointsDD.result    |   138 +-
 src/withPoints/test/doc-pgr_withPointsKSP.result   |   188 +-
 src/withPoints/test/test.conf                      |     1 +
 tools/build-extension-update-files.pl              |   277 -
 tools/developer/run.sh                             |   100 +
 tools/developer/translate.sh                       |    35 +
 tools/doit                                         |    23 -
 tools/git-tools/pre-commit                         |    29 +-
 tools/publish-doc.sh                               |     1 +
 tools/release-scripts/check-release.sh             |   332 +-
 tools/release-scripts/compile-release.sh           |    41 +-
 tools/release-scripts/get_signatures.sh            |    10 +-
 tools/scripts/code_checker.sh                      |    66 +-
 tools/scripts/fix_typos.sh                         |     7 +
 .../sql-update-scripts/pgrouting--2.0.0--2.5.0.sql |  6575 +++++++
 .../sql-update-scripts/pgrouting--2.0.1--2.5.0.sql |  6575 +++++++
 .../sql-update-scripts/pgrouting--2.1.0--2.5.0.sql |  6673 +++++++
 .../sql-update-scripts/pgrouting--2.2.0--2.5.0.sql |  6527 +++++++
 .../sql-update-scripts/pgrouting--2.2.1--2.5.0.sql |  6527 +++++++
 .../sql-update-scripts/pgrouting--2.2.2--2.5.0.sql |  6527 +++++++
 .../sql-update-scripts/pgrouting--2.2.3--2.5.0.sql |  6527 +++++++
 .../sql-update-scripts/pgrouting--2.2.4--2.5.0.sql |  6527 +++++++
 .../sql-update-scripts/pgrouting--2.3.0--2.5.0.sql |  6561 +++++++
 .../sql-update-scripts/pgrouting--2.3.1--2.5.0.sql |  6561 +++++++
 .../sql-update-scripts/pgrouting--2.3.2--2.5.0.sql |  6561 +++++++
 .../sql-update-scripts/pgrouting--2.4.0--2.5.0.sql |  6522 +++++++
 .../sql-update-scripts/pgrouting--2.4.1--2.5.0.sql |  6522 +++++++
 .../sql-update-scripts/pgrouting--2.4.2--2.5.0.sql |  6522 +++++++
 tools/sql-update-scripts/pgrouting--2.5.0.sql      |  6423 +++++++
 tools/template/create.sh                           |   229 +-
 tools/template/doc/pgr_function1.rst               |    27 +-
 .../pgtap/function1-compare-dijkstra.sql           |     0
 tools/template/pgtap/function1-innerQuery.sql      |    21 +
 tools/template/pgtap/function1-typesCheck.sql      |    15 +
 tools/template/sql/CMakeLists.txt                  |    18 +-
 tools/template/src/function1.c                     |    55 +-
 tools/template/src/function1_driver.cpp            |    40 +-
 tools/template/src/function1_driver.h              |     9 +-
 tools/template/test/doc-function1.result           |    39 +-
 tools/template/test/doc-function1.test.sql         |     2 -
 tools/template/test/pgtap/function1-innerQuery.sql |   116 -
 tools/template/test/pgtap/types-check.sql          |    54 -
 tools/testers/algorithm-tester.pl                  |   132 +-
 tools/testers/innerQuery.sql                       |   139 +
 tools/testers/innerQuery_old.sql                   |    76 +
 tools/testers/inner_styles.sql                     |   319 +
 tools/testers/old_inner_styles.sql                 |   176 +
 tools/testers/pg_prove_tests.sh                    |    41 +-
 tools/testers/pickDeliver_pgtap_data.sql           |   246 +-
 tools/testers/sampledata.sql                       |   122 +-
 tools/testers/setup_db.sql                         |     7 +-
 tools/testers/update-tester.sh                     |    71 +-
 .../testers/vrpOneDepot.data                       |     0
 tools/testers/vrppdtw_data.sql                     |   124 +
 tools/travis/pgrouting_build.sh                    |     3 +-
 tools/winnie/package_pgrouting.sh                  |     6 +-
 2315 files changed, 412236 insertions(+), 169721 deletions(-)

diff --git a/.gitignore b/.gitignore
index 7928713..ce3e265 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,9 +3,11 @@ build
 fix_typos
 code_linter
 
+tools/template/mycreate.sh
+*.sh
 .DS_Store
 .vagrant
 tools/vagrant/packaging.sh
-*.mo
+tools/testers/pg_prove_dijkstraTRSP_tests.sh
 .directory
 notUsed
diff --git a/.travis.yml b/.travis.yml
index 5b553ee..1898da6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,5 +1,5 @@
 # ------------------------------------------------------------------------------
-# Travis CI scripts 
+# Travis CI scripts
 # Copyright(c) pgRouting Contributors
 #
 # Main configuration
@@ -71,12 +71,12 @@ before_script:
   - ./tools/travis/check-extensions.sh $POSTGRESQL_VERSION ___pgr___test___
 
 
-script: 
+script:
   - ./tools/travis/pgrouting_build.sh $POSTGRESQL_VERSION $POSTGIS_VERSION
   # tests as part of script so if a test fails the build fails
   - ./tools/testers/pg_prove_tests.sh $PG_USER DEBUG
 
-after_script:
+#after_script:
   - ./tools/travis/pgrouting_test.sh $POSTGRESQL_VERSION $PG_USER -ignorenotice
 
 #after_success:
diff --git a/.tx/config b/.tx/config
index e2516c6..8509100 100644
--- a/.tx/config
+++ b/.tx/config
@@ -2,293 +2,383 @@
 host = https://www.transifex.com
 type = PO
 
-[pgrouting.doc--index]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/doc/index.po
-source_file = doc/i18n/pot/doc/index.pot
+[pgrouting.pgr_analyzeGraph]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_analyzeGraph.po
+source_file = locale/pot/pgr_analyzeGraph.pot
 source_lang = en
 
-[pgrouting.src--index]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/index.po
-source_file = doc/i18n/pot/src/index.pot
+[pgrouting.pgr_boykovKolmogorov]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_boykovKolmogorov.po
+source_file = locale/pot/pgr_boykovKolmogorov.pot
 source_lang = en
 
-[pgrouting.doc--index_man]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/doc/index_man.po
-source_file = doc/i18n/pot/doc/index_man.pot
+[pgrouting.withPoints-family]
+file_filter = locale/<lang>/LC_MESSAGES/withPoints-family.po
+source_file = locale/pot/withPoints-family.pot
 source_lang = en
 
-[pgrouting.doc--src--tutorial--index]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/doc/src/tutorial/index.po
-source_file = doc/i18n/pot/doc/src/tutorial/index.pot
+[pgrouting.cost-category]
+file_filter = locale/<lang>/LC_MESSAGES/cost-category.po
+source_file = locale/pot/cost-category.pot
 source_lang = en
 
-[pgrouting.doc--src--tutorial--tutorial]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/doc/src/tutorial/tutorial.po
-source_file = doc/i18n/pot/doc/src/tutorial/tutorial.pot
+[pgrouting.costMatrix-category]
+file_filter = locale/<lang>/LC_MESSAGES/costMatrix-category.po
+source_file = locale/pot/costMatrix-category.pot
 source_lang = en
 
+[pgrouting.types_index]
+file_filter = locale/<lang>/LC_MESSAGES/types_index.po
+source_file = locale/pot/types_index.pot
+source_lang = en
+
+[pgrouting.pgr_maxFlow]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_maxFlow.po
+source_file = locale/pot/pgr_maxFlow.pot
+source_lang = en
+
+[pgrouting.pgr_withPointsDD]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_withPointsDD.po
+source_file = locale/pot/pgr_withPointsDD.pot
+source_lang = en
+
+[pgrouting.geom_result]
+file_filter = locale/<lang>/LC_MESSAGES/geom_result.po
+source_file = locale/pot/geom_result.pot
+source_lang = en
+
+[pgrouting.pgRouting-concepts]
+file_filter = locale/<lang>/LC_MESSAGES/pgRouting-concepts.po
+source_file = locale/pot/pgRouting-concepts.pot
+source_lang = en
+
+[pgrouting.bdDijkstra-family]
+file_filter = locale/<lang>/LC_MESSAGES/bdDijkstra-family.po
+source_file = locale/pot/bdDijkstra-family.pot
+source_lang = en
+
+[pgrouting.pgr_withPointsKSP]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_withPointsKSP.po
+source_file = locale/pot/pgr_withPointsKSP.pot
+source_lang = en
+
+[pgrouting.pgr_dijkstraCostMatrix]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_dijkstraCostMatrix.po
+source_file = locale/pot/pgr_dijkstraCostMatrix.pot
+source_lang = en
+
+[pgrouting.pgr_eucledianTSP]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_eucledianTSP.po
+source_file = locale/pot/pgr_eucledianTSP.pot
+source_lang = en
+
+[pgrouting.pgr_dijkstraCost]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_dijkstraCost.po
+source_file = locale/pot/pgr_dijkstraCost.pot
+source_lang = en
+
+[pgrouting.pgr_aStar]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_aStar.po
+source_file = locale/pot/pgr_aStar.pot
+source_lang = en
+
+[pgrouting.pgr_drivingDistance]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_drivingDistance.po
+source_file = locale/pot/pgr_drivingDistance.pot
+source_lang = en
+
+[pgrouting.aStar-family]
+file_filter = locale/<lang>/LC_MESSAGES/aStar-family.po
+source_file = locale/pot/aStar-family.pot
+source_lang = en
+
+[pgrouting.cost_result]
+file_filter = locale/<lang>/LC_MESSAGES/cost_result.po
+source_file = locale/pot/cost_result.pot
+source_lang = en
 
-[pgrouting.doc--src--tutorial--custom_wrapper]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/doc/src/tutorial/custom_wrapper.po
-source_file = doc/i18n/pot/doc/src/tutorial/custom_wrapper.pot
+[pgrouting.pgr_withPointsCostMatrix]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_withPointsCostMatrix.po
+source_file = locale/pot/pgr_withPointsCostMatrix.pot
 source_lang = en
 
-[pgrouting.doc--src--tutorial--performance]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/doc/src/tutorial/performance.po
-source_file = doc/i18n/pot/doc/src/tutorial/performance.pot
+[pgrouting.pgr_gsoc_vrppdtw]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_gsoc_vrppdtw.po
+source_file = locale/pot/pgr_gsoc_vrppdtw.pot
 source_lang = en
 
-[pgrouting.doc--src--tutorial--topology]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/doc/src/tutorial/topology.po
-source_file = doc/i18n/pot/doc/src/tutorial/topology.pot
+[pgrouting.index]
+file_filter = locale/<lang>/LC_MESSAGES/index.po
+source_file = locale/pot/index.pot
 source_lang = en
 
-[pgrouting.doc--src--tutorial--recipes]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/doc/src/tutorial/recipes.po
-source_file = doc/i18n/pot/doc/src/tutorial/recipes.pot
+[pgrouting.pgr_trsp]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_trsp.po
+source_file = locale/pot/pgr_trsp.pot
 source_lang = en
 
-[pgrouting.doc--src--tutorial--custom_query]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/doc/src/tutorial/custom_query.po
-source_file = doc/i18n/pot/doc/src/tutorial/custom_query.pot
+[pgrouting.pgr_withPoints]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_withPoints.po
+source_file = locale/pot/pgr_withPoints.pot
 source_lang = en
 
-[pgrouting.doc--src--tutorial--analytics]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/doc/src/tutorial/analytics.po
-source_file = doc/i18n/pot/doc/src/tutorial/analytics.pot
+[pgrouting.pgr_bdDijkstra]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_bdDijkstra.po
+source_file = locale/pot/pgr_bdDijkstra.pot
 source_lang = en
 
-[pgrouting.doc--src--developer--discontinued]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/doc/src/developer/discontinued.po
-source_file = doc/i18n/pot/doc/src/developer/discontinued.pot
+[pgrouting.routingFunctions]
+file_filter = locale/<lang>/LC_MESSAGES/routingFunctions.po
+source_file = locale/pot/routingFunctions.pot
 source_lang = en
 
-[pgrouting.doc--src--developer--index]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/doc/src/developer/index.po
-source_file = doc/i18n/pot/doc/src/developer/index.pot
+[pgrouting.pgr_vrpOneDepot]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_vrpOneDepot.po
+source_file = locale/pot/pgr_vrpOneDepot.pot
 source_lang = en
 
-[pgrouting.doc--src--developer--sampledata]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/doc/src/developer/sampledata.po
-source_file = doc/i18n/pot/doc/src/developer/sampledata.pot
+[pgrouting.pgr_TSP]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_TSP.po
+source_file = locale/pot/pgr_TSP.pot
 source_lang = en
 
-[pgrouting.doc--src--introduction--index]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/doc/src/introduction/index.po
-source_file = doc/i18n/pot/doc/src/introduction/index.pot
+[pgrouting.drivingDistance-category]
+file_filter = locale/<lang>/LC_MESSAGES/drivingDistance-category.po
+source_file = locale/pot/drivingDistance-category.pot
 source_lang = en
 
-[pgrouting.doc--src--introduction--introduction]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/doc/src/introduction/introduction.po
-source_file = doc/i18n/pot/doc/src/introduction/introduction.pot
+[pgrouting.contraction-family]
+file_filter = locale/<lang>/LC_MESSAGES/contraction-family.po
+source_file = locale/pot/contraction-family.pot
 source_lang = en
 
-[pgrouting.doc--src--introduction--support]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/doc/src/introduction/support.po
-source_file = doc/i18n/pot/doc/src/introduction/support.pot
+[pgrouting.bdAstar-family]
+file_filter = locale/<lang>/LC_MESSAGES/bdAstar-family.po
+source_file = locale/pot/bdAstar-family.pot
 source_lang = en
 
-[pgrouting.doc--src--changelog--index]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/doc/src/changelog/index.po
-source_file = doc/i18n/pot/doc/src/changelog/index.pot
+[pgrouting.sampledata]
+file_filter = locale/<lang>/LC_MESSAGES/sampledata.po
+source_file = locale/pot/sampledata.pot
 source_lang = en
 
-[pgrouting.doc--src--changelog--1_x]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/doc/src/changelog/1_x.po
-source_file = doc/i18n/pot/doc/src/changelog/1_x.pot
+[pgrouting.pgr_pushRelabel]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_pushRelabel.po
+source_file = locale/pot/pgr_pushRelabel.pot
 source_lang = en
 
-[pgrouting.doc--src--changelog--2_0]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/doc/src/changelog/2_0.po
-source_file = doc/i18n/pot/doc/src/changelog/2_0.pot
+[pgrouting.pgr_labelGraph]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_labelGraph.po
+source_file = locale/pot/pgr_labelGraph.pot
 source_lang = en
 
-[pgrouting.doc--src--installation--index]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/doc/src/installation/index.po
-source_file = doc/i18n/pot/doc/src/installation/index.pot
+[pgrouting.pgr_pointsAsPolygon]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_pointsAsPolygon.po
+source_file = locale/pot/pgr_pointsAsPolygon.pot
 source_lang = en
 
-[pgrouting.doc--src--installation--build]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/doc/src/installation/build.po
-source_file = doc/i18n/pot/doc/src/installation/build.pot
+[pgrouting.pgr_nodeNetwork]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_nodeNetwork.po
+source_file = locale/pot/pgr_nodeNetwork.pot
 source_lang = en
 
-[pgrouting.src--common--doc--types--index]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/common/doc/types/index.po
-source_file = doc/i18n/pot/src/common/doc/types/index.pot
+[pgrouting.proposed]
+file_filter = locale/<lang>/LC_MESSAGES/proposed.po
+source_file = locale/pot/proposed.pot
 source_lang = en
 
-[pgrouting.src--common--doc--index]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/common/doc/index.po
-source_file = doc/i18n/pot/src/common/doc/index.pot
+[pgrouting.pgRouting-installation]
+file_filter = locale/<lang>/LC_MESSAGES/pgRouting-installation.po
+source_file = locale/pot/pgRouting-installation.pot
 source_lang = en
 
-[pgrouting.src--common--doc--legacy]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/common/doc/legacy.po
-source_file = doc/i18n/pot/src/common/doc/legacy.pot
+[pgrouting.pgr_alphaShape]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_alphaShape.po
+source_file = locale/pot/pgr_alphaShape.pot
 source_lang = en
 
-[pgrouting.src--common--doc--types--geom_result]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/common/doc/types/geom_result.po
-source_file = doc/i18n/pot/src/common/doc/types/geom_result.pot
+[pgrouting.pgr_aStarCost]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_aStarCost.po
+source_file = locale/pot/pgr_aStarCost.pot
 source_lang = en
 
-[pgrouting.src--common--doc--types--cost_result]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/common/doc/types/cost_result.po
-source_file = doc/i18n/pot/src/common/doc/types/cost_result.pot
+[pgrouting.dijkstra-family]
+file_filter = locale/<lang>/LC_MESSAGES/dijkstra-family.po
+source_file = locale/pot/dijkstra-family.pot
 source_lang = en
 
-[pgrouting.src--common--doc--utilities--index]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/common/doc/utilities/index.po
-source_file = doc/i18n/pot/src/common/doc/utilities/index.pot
+[pgrouting.pgr_dijkstra]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_dijkstra.po
+source_file = locale/pot/pgr_dijkstra.pot
 source_lang = en
 
-[pgrouting.src--common--doc--functions--index]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/common/doc/functions/index.po
-source_file = doc/i18n/pot/src/common/doc/functions/index.pot
+[pgrouting.pgr_withPointsCost]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_withPointsCost.po
+source_file = locale/pot/pgr_withPointsCost.pot
 source_lang = en
 
-[pgrouting.src--common--doc--utilities--versionless]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/common/doc/utilities/versionless.po
-source_file = doc/i18n/pot/src/common/doc/utilities/versionless.pot
+[pgrouting.pgr_bdDijkstraCostMatrix]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_bdDijkstraCostMatrix.po
+source_file = locale/pot/pgr_bdDijkstraCostMatrix.pot
 source_lang = en
 
-[pgrouting.src--common--doc--functions--analyze_graph]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/common/doc/functions/analyze_graph.po
-source_file = doc/i18n/pot/src/common/doc/functions/analyze_graph.pot
+[pgrouting.pgr_version]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_version.po
+source_file = locale/pot/pgr_version.pot
 source_lang = en
 
-[pgrouting.src--common--doc--functions--create_vert_table]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/common/doc/functions/create_vert_table.po
-source_file = doc/i18n/pot/src/common/doc/functions/create_vert_table.pot
+[pgrouting.pgRouting-introduction]
+file_filter = locale/<lang>/LC_MESSAGES/pgRouting-introduction.po
+source_file = locale/pot/pgRouting-introduction.pot
 source_lang = en
 
-[pgrouting.src--common--doc--functions--create_topology]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/common/doc/functions/create_topology.po
-source_file = doc/i18n/pot/src/common/doc/functions/create_topology.pot
+[pgrouting.pgr_floydWarshall]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_floydWarshall.po
+source_file = locale/pot/pgr_floydWarshall.pot
 source_lang = en
 
-[pgrouting.src--common--doc--utilities--is_column_in_table]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/common/doc/utilities/is_column_in_table.po
-source_file = doc/i18n/pot/src/common/doc/utilities/is_column_in_table.pot
+[pgrouting.pgr_aStarCostMatrix]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_aStarCostMatrix.po
+source_file = locale/pot/pgr_aStarCostMatrix.pot
 source_lang = en
 
-[pgrouting.src--common--doc--utilities--version]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/common/doc/utilities/version.po
-source_file = doc/i18n/pot/src/common/doc/utilities/version.pot
+[pgrouting.pgr_edmondsKarp]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_edmondsKarp.po
+source_file = locale/pot/pgr_edmondsKarp.pot
 source_lang = en
 
-[pgrouting.src--common--doc--utilities--get_table_name]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/common/doc/utilities/get_table_name.po
-source_file = doc/i18n/pot/src/common/doc/utilities/get_table_name.pot
+[pgrouting.release_notes]
+file_filter = locale/<lang>/LC_MESSAGES/release_notes.po
+source_file = locale/pot/release_notes.pot
 source_lang = en
 
-[pgrouting.src--common--doc--utilities--start_point]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/common/doc/utilities/start_point.po
-source_file = doc/i18n/pot/src/common/doc/utilities/start_point.pot
+[pgrouting.pgr_bdAstarCost]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_bdAstarCost.po
+source_file = locale/pot/pgr_bdAstarCost.pot
 source_lang = en
 
-[pgrouting.src--common--doc--utilities--end_point]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/common/doc/utilities/end_point.po
-source_file = doc/i18n/pot/src/common/doc/utilities/end_point.pot
+[pgrouting.support]
+file_filter = locale/<lang>/LC_MESSAGES/support.po
+source_file = locale/pot/support.pot
 source_lang = en
 
-[pgrouting.src--common--doc--utilities--get_column_name]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/common/doc/utilities/get_column_name.po
-source_file = doc/i18n/pot/src/common/doc/utilities/get_column_name.pot
+[pgrouting.pgr_dijkstraVia]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_dijkstraVia.po
+source_file = locale/pot/pgr_dijkstraVia.pot
 source_lang = en
 
-[pgrouting.src--common--doc--utilities--quote_ident]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/common/doc/utilities/quote_ident.po
-source_file = doc/i18n/pot/src/common/doc/utilities/quote_ident.pot
+[pgrouting.pgr_bdDijkstraCost]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_bdDijkstraCost.po
+source_file = locale/pot/pgr_bdDijkstraCost.pot
 source_lang = en
 
-[pgrouting.src--common--doc--functions--node_network]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/common/doc/functions/node_network.po
-source_file = doc/i18n/pot/src/common/doc/functions/node_network.pot
+[pgrouting.flow-family]
+file_filter = locale/<lang>/LC_MESSAGES/flow-family.po
+source_file = locale/pot/flow-family.pot
 source_lang = en
 
-[pgrouting.src--common--doc--utilities--point_to_id]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/common/doc/utilities/point_to_id.po
-source_file = doc/i18n/pot/src/common/doc/utilities/point_to_id.pot
+[pgrouting.pgr_edgeDisjointPaths]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_edgeDisjointPaths.po
+source_file = locale/pot/pgr_edgeDisjointPaths.pot
 source_lang = en
 
-[pgrouting.src--common--doc--utilities--is_column_indexed]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/common/doc/utilities/is_column_indexed.po
-source_file = doc/i18n/pot/src/common/doc/utilities/is_column_indexed.pot
+[pgrouting.allpairs-family]
+file_filter = locale/<lang>/LC_MESSAGES/allpairs-family.po
+source_file = locale/pot/allpairs-family.pot
 source_lang = en
 
-[pgrouting.src--common--doc--functions--analyze_oneway]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/common/doc/functions/analyze_oneway.po
-source_file = doc/i18n/pot/src/common/doc/functions/analyze_oneway.pot
+[pgrouting.pgr_KSP]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_KSP.po
+source_file = locale/pot/pgr_KSP.pot
 source_lang = en
 
-[pgrouting.src--driving_distance--doc--dd_driving_distance]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/driving_distance/doc/dd_driving_distance.po
-source_file = doc/i18n/pot/src/driving_distance/doc/dd_driving_distance.pot
+[pgrouting.pgr_analyzeOneWay]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_analyzeOneWay.po
+source_file = locale/pot/pgr_analyzeOneWay.pot
 source_lang = en
 
-[pgrouting.src--driving_distance--doc--dd_points_as_polygon]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/driving_distance/doc/dd_points_as_polygon.po
-source_file = doc/i18n/pot/src/driving_distance/doc/dd_points_as_polygon.pot
+[pgrouting.pgr_bdAstar]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_bdAstar.po
+source_file = locale/pot/pgr_bdAstar.pot
 source_lang = en
 
-[pgrouting.src--driving_distance--doc--dd_alphashape]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/driving_distance/doc/dd_alphashape.po
-source_file = doc/i18n/pot/src/driving_distance/doc/dd_alphashape.pot
+[pgrouting.pgr_bdAstarCostMatrix]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_bdAstarCostMatrix.po
+source_file = locale/pot/pgr_bdAstarCostMatrix.pot
 source_lang = en
 
-[pgrouting.src--driving_distance--doc--index]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/driving_distance/doc/index.po
-source_file = doc/i18n/pot/src/driving_distance/doc/index.pot
+[pgrouting.pgr_createVerticesTable]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_createVerticesTable.po
+source_file = locale/pot/pgr_createVerticesTable.pot
 source_lang = en
 
-[pgrouting.src--kdijkstra--doc--index]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/kdijkstra/doc/index.po
-source_file = doc/i18n/pot/src/kdijkstra/doc/index.pot
+[pgrouting.topology-functions]
+file_filter = locale/<lang>/LC_MESSAGES/topology-functions.po
+source_file = locale/pot/topology-functions.pot
 source_lang = en
 
-[pgrouting.src--tsp--doc--index]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/tsp/doc/index.po
-source_file = doc/i18n/pot/src/tsp/doc/index.pot
+[pgrouting.pgr_johnson]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_johnson.po
+source_file = locale/pot/pgr_johnson.pot
 source_lang = en
 
-[pgrouting.src--bd_astar--doc--index]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/bd_astar/doc/index.po
-source_file = doc/i18n/pot/src/bd_astar/doc/index.pot
+[pgrouting.pgr_contractGraph]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_contractGraph.po
+source_file = locale/pot/pgr_contractGraph.pot
 source_lang = en
 
-[pgrouting.src--apsp_johnson--doc--index]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/apsp_johnson/doc/index.po
-source_file = doc/i18n/pot/src/apsp_johnson/doc/index.pot
+[pgrouting.pgr_createTopology]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_createTopology.po
+source_file = locale/pot/pgr_createTopology.pot
 source_lang = en
 
-[pgrouting.src--dijkstra--doc--index]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/dijkstra/doc/index.po
-source_file = doc/i18n/pot/src/dijkstra/doc/index.pot
+[pgrouting.TSP-family]
+file_filter = locale/<lang>/LC_MESSAGES/TSP-family.po
+source_file = locale/pot/TSP-family.pot
 source_lang = en
 
-[pgrouting.src--bd_dijkstra--doc--index]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/bd_dijkstra/doc/index.po
-source_file = doc/i18n/pot/src/bd_dijkstra/doc/index.pot
+[pgrouting.pgr_maxCardinalityMatch]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_maxCardinalityMatch.po
+source_file = locale/pot/pgr_maxCardinalityMatch.pot
 source_lang = en
 
-[pgrouting.src--apsp_warshall--doc--index]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/apsp_warshall/doc/index.po
-source_file = doc/i18n/pot/src/apsp_warshall/doc/index.pot
+[pgrouting.KSP-category]
+file_filter = locale/<lang>/LC_MESSAGES/KSP-category.po
+source_file = locale/pot/KSP-category.pot
 source_lang = en
 
-[pgrouting.src--astar--doc--index]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/astar/doc/index.po
-source_file = doc/i18n/pot/src/astar/doc/index.pot
+[pgrouting.components-family]
+file_filter = locale/<lang>/LC_MESSAGES/components-family.po
+source_file = locale/pot/components-family.pot
 source_lang = en
 
-[pgrouting.src--trsp--doc--index]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/trsp/doc/index.po
-source_file = doc/i18n/pot/src/trsp/doc/index.pot
+[pgrouting.pgr_articulationPoints]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_articulationPoints.po
+source_file = locale/pot/pgr_articulationPoints.pot
 source_lang = en
 
-[pgrouting.src--ksp--doc--index]
-file_filter = doc/i18n/<lang>/LC_MESSAGES/src/ksp/doc/index.po
-source_file = doc/i18n/pot/src/ksp/doc/index.pot
+[pgrouting.pgr_biconnectedComponents]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_biconnectedComponents.po
+source_file = locale/pot/pgr_biconnectedComponents.pot
 source_lang = en
+
+[pgrouting.pgr_bridges]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_bridges.po
+source_file = locale/pot/pgr_bridges.pot
+source_lang = en
+
+[pgrouting.pgr_connectedComponents]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_connectedComponents.po
+source_file = locale/pot/pgr_connectedComponents.pot
+source_lang = en
+
+[pgrouting.pgr_lineGraph]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_lineGraph.po
+source_file = locale/pot/pgr_lineGraph.pot
+source_lang = en
+
+[pgrouting.pgr_strongComponents]
+file_filter = locale/<lang>/LC_MESSAGES/pgr_strongComponents.po
+source_file = locale/pot/pgr_strongComponents.pot
+source_lang = en
+
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8b14a3d..9399e77 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -46,8 +46,8 @@ project(PGROUTING)
 #---------------------------------------------
 #---------------------------------------------
 
-if(POLICY CMP0046)
-   cmake_policy(SET CMP0046 OLD)
+if(POLICY CMP0054)
+   cmake_policy(SET CMP0054 OLD)
 endif()
 
 if(MSVC)
@@ -66,79 +66,46 @@ endif()
 #  - <directory>/src/CMakelists.txt must exist
 #  - <directory>/sql/CMakeLists.txt  must exist
 #----------------------
+configure_file("configuration.conf" "configuration.conf")
+file(STRINGS configuration.conf PgRouting_CONFIGURATION_FILE)
+
+set(PgRouting_SOURCE_NAMES "")
+set(PgRouting_SQL_DIRECTORIES "") 
+set(PgRouting_DOC_DIRECTORIES "") 
+foreach(line ${PgRouting_CONFIGURATION_FILE})
+    string(REGEX REPLACE "^(#).*" "\\1" comment ${line}) 
+    if("${comment}" MATCHES "#")
+        continue()
+    endif()
+    string(REGEX REPLACE "^(.*)\\|(.*)\\|(.*)\\|(.*)" "\\1" directory ${line})
+    string(REGEX REPLACE "^(.*)\\|(.*)\\|(.*)\\|(.*)" "\\2" has_code ${line})
+    string(REGEX REPLACE "^(.*)\\|(.*)\\|(.*)\\|(.*)" "\\3" has_sql ${line})
+    string(REGEX REPLACE "^(.*)\\|(.*)\\|(.*)\\|(.*)" "\\4" has_doc ${line})
 
-set(PgRouting_SOURCE_NAMES
-
-    #----------------------
-    # "common" must be first can not be removed
-    #----------------------
-    "common"
-
-    #----------------------
-    # "dijkstra" can not be removed 
-    #   Has the command needed to link with prostgresl
-    #----------------------
-    "dijkstra" 
-
-    #----------------------
-    # Directories that have being rewritten
-    #----------------------
-    "allpairs"
-    "astar"
-    "driving_distance"
-    "ksp"
-    "tsp"
-
-    #----------------------
-    # Code needs to be rewritten
-    #----------------------
-    "alpha_shape"
-    "bd_astar"
-    "bdDijkstra" # 2.4
-    "trsp"
-
-    #----------------------
-    # Proposed
-    #  - Not officially on the release
-    #  - number indicates version when was propsosed with code
-    #----------------------
-    "max_flow"    # 2.3
-    "contraction" # 2.3
-    "pickDeliver" # 2.3
-    "vrp_basic"   # 2.0 
-    "withPoints"  # 2.2
-
-    # template generated name
-    #"funnyDijkstra"
+    string(STRIP ${directory} directory)
+    string(STRIP ${has_code} has_code)
+    string(STRIP ${has_sql} has_sql)
+    string(STRIP ${has_doc} has_doc)
+
+
+    if( ${has_code} MATCHES "Y")
+        list(APPEND PgRouting_SOURCE_NAMES "${directory}")
+    endif()
+    if( ${has_sql} MATCHES "Y")
+        list(APPEND PgRouting_SQL_DIRECTORIES "${directory}")
+    endif()
+    if( ${has_doc} MATCHES "Y")
+        list(APPEND PgRouting_DOC_DIRECTORIES "${directory}")
+    endif()
+endforeach()
+
+if (PGROUTING_DEBUG)
+    message(STATUS "${PgRouting_SOURCE_NAMES}")
+    message(STATUS "${PgRouting_SQL_DIRECTORIES}")
+    message(STATUS "${PgRouting_DOC_DIRECTORIES}")
+endif()
 
-    )
 
-#-----------------------------------------------------------------------------
-# Name of the directories containing only SQL files
-#
-#  - <directory>/sql/CMakeLists.txt  must exist
-#-----------------------------------------------------------------------------
-set(PgRouting_SQL_DIRECTORIES 
-
-    "topology"     # needs to be revised
-
-    #----------------------
-    # Proposed
-    #  Not officially on the release
-    #----------------------
-    "convenience"  # most are deprecated
-    "label_graph"  # needs to be rewritten using Boost
-    "costMatrix"   # proposed on 2.3
-
-    #----------------------
-    # Wrappers for backwards compatibility 
-    #----------------------
-    "bd_dijkstra"   # 2.0 wrap of pgr_bdDijkstra
-    "apsp_johnson"  # 2.0 wrap of pgr_johnson
-    "apsp_warshall" # 2.0 wrap of pgr_warshall
-    "kdijkstra"     # 2.0 wrap of pgr_dijkstra & pgr_dijkstraCost
-    "vrppdtw"       # 2.1 wraps of _pgr_pickDeliver
-    )
 
 #---------------------------------------------
 # minimum versions
@@ -183,7 +150,8 @@ CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
 CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
 if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
     if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS GNU_CXX_MINIMUM_VERSION)
-        message(FATAL_ERROR "GCC version must be at least ${GNU_CXX_MINIMUM_VERSION}!")
+        message(FATAL_ERROR "GCC version must be at least ${GNU_CXX_MINIMUM_VERSION}!
+        Found version ${CMAKE_CXX_COMPILER_VERSION}")
     endif()
 elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
     if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS MSVC_CXX_MINIMUM_VERSION)
@@ -195,8 +163,10 @@ endif()
 
 if(COMPILER_SUPPORTS_CXX11)
     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+    message(STATUS "Using  -std=c++11.")
 elseif(COMPILER_SUPPORTS_CXX0X)
     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
+    message(STATUS "Using  -std=c++0x.")
 else()
     message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++0x or C++11 flags support.")
 endif()
@@ -211,8 +181,8 @@ endif()
 #-----------------------------------------------------------------------------
 
 set(PGROUTING_VERSION_MAJOR "2")
-set(PGROUTING_VERSION_MINOR "4")
-set(PGROUTING_VERSION_PATCH "2")
+set(PGROUTING_VERSION_MINOR "5")
+set(PGROUTING_VERSION_PATCH "0")
 set(PGROUTING_VERSION_DEV "")
 
 set(PGROUTING_SHORT_VERSION "${PGROUTING_VERSION_MAJOR}.${PGROUTING_VERSION_MINOR}")
@@ -225,10 +195,15 @@ set(PGROUTING_FULL_VERSION "v${PGROUTING_VERSION}${PGROUTING_VERSION_DEV}")
 #---------------------------------------------
 file(STRINGS "${PGROUTING_SOURCE_DIR}/VERSION" PGROUTING_BUILD_STRING)
 
-#string(REGEX REPLACE "^(.+)-([^-]+)-[0-9]+-([0-9a-f]+) (.*)$" "\\2" PGROUTING_GIT_BUILD ${PGROUTING_BUILD_STRING})
+set(PGROUTING_GIT_HASH "")
 string(REGEX REPLACE "^([0-9]+)-([0-9a-f]+) (.*)$" "\\2" PGROUTING_GIT_HASH ${PGROUTING_BUILD_STRING})
 string(REGEX REPLACE "^([0-9]+)-([0-9a-f]+) (.*)$" "\\3" PGROUTING_GIT_BRANCH ${PGROUTING_BUILD_STRING})
 
+if ( NOT "${PGROUTING_GIT_BRANCH}" STREQUAL "master")
+    set (PGROUTING_GIT_HASH  "")
+    set (PGROUTING_GIT_BRANCH  "")
+endif()
+
 
 if (PGROUTING_DEBUG)
     message(STATUS "PGROUTING_VERSION: ${PGROUTING_FULL_VERSION}")
@@ -242,6 +217,12 @@ if (PGROUTING_DEBUG)
     message(STATUS "CMAKE_BINARY_DIR: ${CMAKE_BINARY_DIR}")
 endif()
 
+#----------------------
+# PGROUTING library name used in the pgr_functions
+#  '$libdir/${PGROUTING_LIBRARY_NAME}'
+#----------------------
+set(PGROUTING_LIBRARY_NAME "libpgrouting-${PGROUTING_SHORT_VERSION}")
+
 
 #-----------------------------------------------------------------------------
 #-----------------------------------------------------------------------------
@@ -310,19 +291,19 @@ endif(NOT PERL_EXECUTABLE)
 #---------------------------------------------
 find_package(PostgreSQL)
 if(NOT POSTGRESQL_FOUND)
-    message(FATAL_ERROR " Please check your PostgreSQL installation.") 
+    message(FATAL_ERROR " Please check your PostgreSQL installation.")
 endif(NOT POSTGRESQL_FOUND)
 
 if(NOT POSTGRESQL_VERSION_STRING)
     message(FATAL_ERROR "pg_config was not found. Please check your PostgreSQL installation!")
-endif(NOT POSTGRESQL_VERSION_STRING)
+endif()
 
 string(SUBSTRING "${POSTGRESQL_VERSION_STRING}" 11 -1 POSTGRESQL_VERSION)
 
 # for XbetaY XalphaY XrcY -> X.Y
 string(REGEX REPLACE "^([0-9]+)[beta|alpha|rc].*" "\\1.0" POSTGRESQL_VERSION ${POSTGRESQL_VERSION})
 
-#for X.Y.Z -> XY  Y<10 
+#for X.Y.Z -> XY  Y<10
 string(REGEX REPLACE "^([0-9]+)\\.([0-9]+).*" "\\1\\2" PGSQL_VERSION ${POSTGRESQL_VERSION})
 
 
@@ -340,9 +321,8 @@ if(WIN32)
 endif(WIN32)
 
 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPGSQL_VERSION=${PGSQL_VERSION}")
+set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DPGSQL_VERSION=${PGSQL_VERSION}")
 set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DPGSQL_VERSION=${PGSQL_VERSION}")
-message(STATUS "PGSQL_VERSION=${PGSQL_VERSION}")
-
 
 
 #---------------------------------------------
@@ -354,10 +334,9 @@ find_package(Boost ${BOOST_MINIMUM_VERSION})
 if(Boost_INCLUDE_DIRS)
     message(STATUS "Boost headers were found here: ${Boost_INCLUDE_DIRS}")
 else(Boost_INCLUDE_DIRS)
-    message(FATAL_ERROR " Please check your Boost installation ") 
+    message(FATAL_ERROR " Please check your Boost installation ")
 endif(Boost_INCLUDE_DIRS)
 
-#-------
 include_directories(${Boost_INCLUDE_DIRS})
 
 
@@ -383,6 +362,7 @@ include_directories(${CGAL_INCLUDE_DIR})
 set(PGROUTING_INCLUDE_DIRECTORIES
     ${PGROUTING_SOURCE_DIR}/src/common/src
     ${PGROUTING_SOURCE_DIR}/src/dijkstra/src
+    ${PGROUTING_SOURCE_DIR}/include
     )
 
 #-------
@@ -473,24 +453,28 @@ endif()
 #compiler directives
 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
+# for UNIX & JENKINS
 if(UNIX OR (WIN32 AND NOT MSVC))
     set(CMAKE_C_FLAGS   "${CMAKE_C_FLAGS}  -std=gnu99")
 endif()
 
-
-CHECK_C_COMPILER_FLAG("-frounding-math" C_COMPILER_SUPPORTS_ROUNDING_MATH)
-CHECK_CXX_COMPILER_FLAG("-frounding-math" CXX_COMPILER_SUPPORTS_ROUNDING_MATH)
-
-
 if(NOT WIN32)
-    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC ")
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC ")
+    CHECK_C_COMPILER_FLAG("-fPIC" C_COMPILER_SUPPORTS_FPIC)
+    CHECK_CXX_COMPILER_FLAG("-fPIC" CXX_COMPILER_SUPPORTS_FPIC)
+    if(C_COMPILER_SUPPORTS_FPIC)
+        set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC ")
+    endif()
+    if(CXX_COMPILER_SUPPORTS_FPIC)
+        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC ")
+    endif()
 endif()
 
 if(WIN32 AND MSVC)
     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_C_FLAGS}")
 endif()
 
+CHECK_C_COMPILER_FLAG("-frounding-math" C_COMPILER_SUPPORTS_ROUNDING_MATH)
+CHECK_CXX_COMPILER_FLAG("-frounding-math" CXX_COMPILER_SUPPORTS_ROUNDING_MATH)
 if(C_COMPILER_SUPPORTS_ROUNDING_MATH)
     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -frounding-math ")
 endif()
@@ -498,8 +482,11 @@ if(CXX_COMPILER_SUPPORTS_ROUNDING_MATH)
     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -frounding-math ")
 endif()
 
-set(CMAKE_C_FLAGS_DEBUG   "${CMAKE_C_FLAGS_DEBUG}   -Wall -Wconversion -pedantic -Wmissing-prototypes -Wunused -Wuninitialized -Wextra -Wdouble-promotion")
-set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall -fno-implicit-inline-templates -Wconversion -pedantic  -Wunused -Wuninitialized -Wextra -Wdouble-promotion")
+# TODO use -Werror when TRSP gets rewritten
+set(CMAKE_C_FLAGS_DEBUG   "${CMAKE_C_FLAGS_DEBUG}   -Wall -Wconversion -pedantic -Wmissing-prototypes -W -Wunused -Wuninitialized -Wextra -Wdouble-promotion")
+set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall -fno-implicit-inline-templates -Wconversion -pedantic -W -Wunused -Wuninitialized -Wextra -Wdouble-promotion")
+
+
 
 #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
@@ -530,7 +517,7 @@ if(WITH_INTERNAL_TESTS)
 endif()
 
 #-------------------
-# add the subdirectories that have the C/C++ code 
+# add the subdirectories that have the C/C++ code
 #-------------------
 
 foreach (subdir ${PgRouting_SOURCE_NAMES})
@@ -575,18 +562,10 @@ message("Building the library names")
 set(PGROUTING_LIB_NAME "pgrouting-${PGROUTING_SHORT_VERSION}")
 
 
-#----------------------
-# PGROUTING library name used in the pgr_functions
-#  '$libdir/${PGROUTING_LIBRARY_NAME}'
-#----------------------
-set(PGROUTING_LIBRARY_NAME "libpgrouting-${PGROUTING_SHORT_VERSION}")
-
 add_library(${PGROUTING_LIB_NAME}
     ${LIBRARY_MODE_TARGET}
     ${PGROUTING_OBJECTS})
 
-install(TARGETS ${PGROUTING_LIB_NAME} DESTINATION ${LIBRARY_INSTALL_PATH})
-
 
 
 if(APPLE)
@@ -598,59 +577,29 @@ if(WIN32 AND MSVC)
     set_target_properties(${PGROUTING_LIB_NAME} PROPERTIES PREFIX "lib")
 endif(WIN32 AND MSVC)
 
-#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-#
-# Handling SQL files
-#
-#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-#
-add_custom_target(build-time-sql-directory ALL
-    COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/sql_queries")
-
-set(TEMP_LIB_FILENAME "${CMAKE_BINARY_DIR}/sql_queries/lib-pgrouting--version.sql.in")
-file(WRITE ${TEMP_LIB_FILENAME} "")
-
-#-------------------
-# add the subdirectories that have the SQL files
-#-------------------
-
-set(PgRouting_SQL_DIRECTORIES
-    ${PgRouting_SOURCE_NAMES}
-    ${PgRouting_SQL_DIRECTORIES})
-
-set(PACKAGE_SQL_FILES "")
 
-foreach (subdir ${PgRouting_SQL_DIRECTORIES})
-    add_subdirectory("${PGROUTING_SOURCE_DIR}/src/${subdir}/sql")
-endforeach()
+#-----------------------------------------------------------------------------
+#-----------------------------------------------------------------------------
+# sql subdirectory creates the files:
+#  pgrouting--(version).sql
+#  pgrouting--(oldVersion)--(version).sql
+#-----------------------------------------------------------------------------
+#-----------------------------------------------------------------------------
 
+add_subdirectory(sql)
 
-if (CDEBUG)
-    foreach (files ${PACKAGE_SQL_FILES})
-        message("${files}")
-    endforeach()
-endif()
+#-----------------------------------------------------------------------------
+#-----------------------------------------------------------------------------
+# INSTALLATION
+#-----------------------------------------------------------------------------
+#-----------------------------------------------------------------------------
 
-ADD_CUSTOM_TARGET(ProcessSQLFiles ALL)
-foreach(file_in ${PACKAGE_SQL_FILES})
-    get_filename_component(file_name ${file_in} NAME)
-    set(file_out "${CMAKE_BINARY_DIR}/sql_queries/${file_name}")
-    configure_file(${file_in} ${file_out})
-
-    add_dependencies(ProcessSQLFiles ${file_in})
-    file(READ "${file_out}" CONTENTS)
-    string(REGEX REPLACE "/\\*PGR-(GNU|MIT).*PGR-(GNU|MIT)\\*/" "" STRIP_CONTENTS "${CONTENTS}")
-    string(REGEX REPLACE "/\\*FOR.*USER\\*/" "" CONTENTS "${STRIP_CONTENTS}")
-    file(APPEND ${TEMP_LIB_FILENAME} "${CONTENTS}")
-endforeach()
 
-configure_file("${TEMP_LIB_FILENAME}"
-    "${CMAKE_BINARY_DIR}/lib/pgrouting--${PGROUTING_VERSION}.sql"
+install(TARGETS ${PGROUTING_LIB_NAME} DESTINATION ${LIBRARY_INSTALL_PATH})
+install(FILES
+    ${PgRouting_SQL_FILES_TO_INSTALL}
+    DESTINATION "${SHARE_DIR}"
     )
-message(STATUS "Created ${CMAKE_BINARY_DIR}/lib/pgrouting--${PGROUTING_VERSION}.sql")
-#
-#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
 
 #-----------------------------------------------------------------------------
 #-----------------------------------------------------------------------------
@@ -661,58 +610,8 @@ add_subdirectory(doxygen)
 add_subdirectory(doc)
 
 
-#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-# Handling pgrouting.control.in files
-#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-#
-configure_file("${PGROUTING_SOURCE_DIR}/src/common/sql/pgrouting.control.in"
-    "${CMAKE_BINARY_DIR}/lib/pgrouting.control")
-
-message(STATUS "Created ${CMAKE_BINARY_DIR}/lib/pgrouting.control")
-#
-#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-
-
-
-# create the signature file for this release
-message(STATUS "Creating lib/pgrouting--${PGROUTING_VERSION}.sig")
-execute_process(
-    COMMAND cp ${PGROUTING_SOURCE_DIR}/tools/curr-sig/pgrouting--${PGROUTING_VERSION}.sig ${CMAKE_BINARY_DIR}/lib/pgrouting--${PGROUTING_VERSION}.sig
-    #COMMAND ${PERL_EXECUTABLE} ${PGROUTING_SOURCE_DIR}/tools/mk-signature-file.pl ${PGROUTING_VERSION}
-    WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
-    RESULT_VARIABLE SIG_RESULT
-    )
-if(SIG_RESULT)
-    message(FATAL_ERROR "SIG_RESULT: ${SIG_RESULT}")
-endif(SIG_RESULT)
-
-# create the extension update scripts
-execute_process(
-    COMMAND ${PERL_EXECUTABLE} ${PGROUTING_SOURCE_DIR}/tools/build-extension-update-files.pl ${PGROUTING_VERSION} ${PGROUTING_SOURCE_DIR}
-    WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
-    RESULT_VARIABLE UPDATE_RESULT
-    )
-if(UPDATE_RESULT)
-    message(FATAL_ERROR "UPDATE_RESULT: ${UPDATE_RESULT}")
-endif()
-
-# make a list of the files we need to install for version updates
-file(GLOB VERSION_UPDATE_FILES "${CMAKE_BINARY_DIR}/lib/pgrouting--*--*.sql")
-
-# this will create the commands in the makefile under the install target
-if(UNIX)
-    file(GLOB_RECURSE LIBS_TO_INSTALL "${CMAKE_BINARY_DIR}/lib/*.so")
-else()
-    file(GLOB_RECURSE LIBS_TO_INSTALL "${CMAKE_BINARY_DIR}/lib/*.dll")
+if (PGROUTING_DEBUG)
+    foreach (f ${PgRouting_SQL_FILES})
+        message(STATUS ${f})
+    endforeach()
 endif()
-
-message(STATUS "LIBS_TO_INSTALL=${LIBS_TO_INSTALL}")
-
-install(FILES ${LIBS_TO_INSTALL}  DESTINATION ${LIB_DIR})
-
-install(FILES
-    "${CMAKE_BINARY_DIR}/lib/pgrouting--${PGROUTING_VERSION}.sql"
-    "${CMAKE_BINARY_DIR}/lib/pgrouting.control"
-    ${VERSION_UPDATE_FILES}
-    DESTINATION "${SHARE_DIR}")
-
diff --git a/NEWS b/NEWS
index d4d5bf0..b6ef694 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,68 @@
 
+pgRouting 2.5.0 Release Notes
+-------------------------------------------------------------------------------
+
+To see the issues closed by this release see the [Git closed issues for 2.5.0 ](https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.5.0%22+is%3Aclosed) on Github.
+
+
+*enhancement:*
+
+* pgr_version is now on SQL language
+
+*Breaking change on:*
+
+* pgr_edgeDisjointPaths:
+
+  * Added path_id, cost and agg_cost columns on the result
+  * Parameter names changed
+  * The many version results are the union of the one to one version
+
+*New Signatures:*
+
+* pgr_bdAstar(one to one)
+
+*New Proposed functions*
+
+* pgr_bdAstar(one to many)
+* pgr_bdAstar(many to one)
+* pgr_bdAstar(many to many)
+* pgr_bdAstarCost(one to one)
+* pgr_bdAstarCost(one to many)
+* pgr_bdAstarCost(many to one)
+* pgr_bdAstarCost(many to many)
+* pgr_bdAstarCostMatrix
+* pgr_bdDijkstra(one to many)
+* pgr_bdDijkstra(many to one)
+* pgr_bdDijkstra(many to many)
+* pgr_bdDijkstraCost(one to one)
+* pgr_bdDijkstraCost(one to many)
+* pgr_bdDijkstraCost(many to one)
+* pgr_bdDijkstraCost(many to many)
+* pgr_bdDijkstraCostMatrix
+* pgr_lineGraph
+* pgr_connectedComponents
+* pgr_strongComponents
+* pgr_biconnectedComponents
+* pgr_articulationPoints
+* pgr_bridges
+
+*Deprecated Signatures*
+
+* pgr_bdastar - use pgr_bdAstar instead
+
+*Renamed Functions*
+
+* pgr_maxFlowPushRelabel - use pgr_pushRelabel instead
+* pgr_maxFlowEdmondsKarp -use pgr_edmondsKarp instead
+* pgr_maxFlowBoykovKolmogorov - use pgr_boykovKolmogorov instead
+* pgr_maximumCardinalityMatching - use pgr_maxCardinalityMatch instead
+
+*Deprecated function*
+
+* pgr_pointToEdgeNode
+
+
+
 pgRouting 2.4.2 Release Notes
 -------------------------------------------------------------------------------
 
@@ -19,7 +83,7 @@ To see the issues closed by this release see the [Git closed milestone for 2.4.2
 pgRouting 2.4.1 Release Notes
 -------------------------------------------------------------------------------
 
-To see the issues closed by this release see the [Git closed milestone for 2.4.2 ](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.4.1%22%20) on Github.
+To see the issues closed by this release see the [Git closed milestone for 2.4.1 ](https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.4.1%22%20) on Github.
 
 *Bug fixes*
 
diff --git a/README.md b/README.md
index 9fe108e..34f9e67 100644
--- a/README.md
+++ b/README.md
@@ -6,8 +6,9 @@
 
 ### Branches
 
-* The *master* branch has the latest minor release. (2.4.2)
-* The *develop* branch has the next minor release. (2.5.0-dev)
+* The *master* branch has the release  2.5.0
+* The *release/2.5* branch has the next micro-release 2.5.1 (if needed)
+* The *develop* branch has the development of the next minor-release 2.6.0-dev
 
 For the complete list of releases go to:
 https://github.com/pgRouting/pgrouting/releases
@@ -75,16 +76,18 @@ This library contains following features:
 * Shortest Path Dijkstra Cost Family of functions
 * Driving Distance
 * K-Shortest Path, Multiple Alternative Paths (Yen's algorithm)
-* Traveling Sales Person
+* Traveling Sales Person (TSP)
 * Turn Restriction Shortest Path (TRSP)
 
-Additionally, ready for testing and to be part of 2.3 official version:
+Additionally, ready for testing and to be part of 2.5 official version:
 
 * Shortest Path Dijkstra With Points Family of functions
 * Shortest Path Dijkstra Cost With Points Family of functions
 * Driving Distance With Points
 * K-Shortest Path With Points, Multiple Alternative Paths (Yen's algorithm)
-* Dijkstra Via vertices
+* Dijkstra Via (Vertices)
+
+and many more.
 
 Family of functions include:
 
@@ -149,7 +152,7 @@ Postgresql 9.2+
 
 ## USAGE
 
-See online documentation: http://docs.pgrouting.org/2.3/en/doc/index.html
+See online documentation: http://docs.pgrouting.org/dev/en/index.html
 
 ## LICENSE
 
diff --git a/VERSION b/VERSION
index dd83933..c4a4dcc 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-4746-fb7c27bfc master
+5535-54b9b7a6b release/2.5
diff --git a/appveyor.yml b/appveyor.yml
index 0abcbef..2ccaa69 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -5,7 +5,7 @@
 # Main configuration
 # ------------------------------------------------------------------------------
 
-version: 2.4.{build}
+version: 2.5.{build}
 
 image: Visual Studio 2013
 configuration: Release
diff --git a/configuration.conf b/configuration.conf
new file mode 100644
index 0000000..df07555
--- /dev/null
+++ b/configuration.conf
@@ -0,0 +1,40 @@
+#----------------------
+# Configuration file for compilation
+#
+#  Once in the file, do not change the order
+#
+# Directory | has C/C++ | has SQL | has DOC
+#----------------------
+#----------------------
+# common must be first can not be removed
+#----------------------
+common              | Y | Y | Y
+#----------------------
+# dijkstra can not be removed
+#   Has the command needed to link with prostgresl
+#----------------------
+dijkstra            | Y | Y | Y
+allpairs            | Y | Y | Y
+astar               | Y | Y | Y
+driving_distance    | Y | Y | Y
+ksp                 | Y | Y | Y
+tsp                 | Y | Y | Y
+alpha_shape         | Y | Y | Y
+bdAstar             | Y | Y | Y
+bdDijkstra          | Y | Y | Y
+trsp                | Y | Y | Y
+max_flow            | Y | Y | Y
+contraction         | Y | Y | Y
+pickDeliver         | Y | Y | N
+vrp_basic           | N | Y | Y
+vrppdtw             | N | Y | Y
+withPoints          | Y | Y | Y
+lineGraph           | Y | Y | Y
+components          | Y | Y | Y
+#----------------------
+# SQL only directories
+#----------------------
+topology            | N | Y | Y
+label_graph         | N | Y | Y
+costMatrix          | N | Y | Y
+deprecated          | N | Y | N
diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
index e429439..569dd0b 100644
--- a/doc/CMakeLists.txt
+++ b/doc/CMakeLists.txt
@@ -6,174 +6,291 @@
 # Daniel Kastl 03/2013
 #
 
+#---------------------------------------------
+# Kind of sphinx output
+#---------------------------------------------
+
 option(WITH_DOC
-     "Set ON|OFF (default=OFF) to build Documentation library tree" OFF)
+    "Set ON|OFF (default=OFF) to build Documentation library tree" OFF)
+
+option(LOCALE
+    "Set ON|OFF (default=OFF) to build ithe latest pot/po files" OFF)
+
+option(WITH_ALL_DOC
+    "Set ON|OFF (default=OFF) to build Documentation library tree" OFF)
+
+#option(PDF
+#    "Set ON|OFF (default=OFF) to build Documentation library tree as PDF" OFF)
 
 option(BUILD_LATEX
     "Set ON|OFF (default=OFF) to build Documentation library tree as PDF" OFF)
 
+option(SINGLEHTML
+    "Set ON|OFF (default=OFF) to build Documentation library tree as SINGLE HTML" OFF)
+
 option(BUILD_HTML
-    "Set ON|OFF (default=ON) to build Documentation library tree as HTML" ON)
+    "Set ON|OFF (default=OFF) to build Documentation library tree as HTML" ON)
 
 option(BUILD_MAN
-    "Set ON|OFF (default=ON) to build Documentation library tree as MAN page" OFF)
+    "Set ON|OFF (default=OFF) to build Documentation library tree as MAN page" OFF)
+
+option(EPUB
+    "Set ON|OFF (default=OFF) to build Documentation library tree as EPUB page" OFF)
+
+option(DUMMY
+    "Set ON|OFF (default=OFF) for debugging purposes" OFF)
+
+if (LOCALE) 
+    set(WITH_DOC ON)
+endif()
+
+if (NOT WITH_DOC)
+    return()
+endif()
+
+foreach(opt BUILD_HTML BUILD_LATEX BUILD_MAN SINGLEHTML EPUB DUMMY)
+    if (${${opt}} OR WITH_ALL_DOC)
+        string(TOLOWER ${opt} val)
+        string(REPLACE "build_" "" val ${val})
+        list(APPEND PgRouting_DOC_TARGETS ${val})
+        set(WITH_DOC ON)
+    endif()
+endforeach()
+
+
+
+message(STATUS "PgRouting_DOC_TARGETS = ${PgRouting_DOC_TARGETS}")
+
+#---------------------------------------------
+#---------------------------------------------
+#---------------------------------------------
+
+# LANGUAGES SETINGS
+
+#---------------------------------------------
+#---------------------------------------------
+#---------------------------------------------
+
+#---------------------------------------------
+# Available Languages
+# English is always built
+#---------------------------------------------
+set(PgRouting_SUPPORTED_LANGUAGES  "de"   "es"  "fr"  "it"  "ja"  "ru")
+set(PgRouting_ENGLISH "en")
+
+#---------------------------------------------
+# Language options
+#---------------------------------------------
+option(WITH_ALL_LANG
+    "Set ON|OFF (default=OFF) to build all the supported languages: 
+    Main Language will always be built:
+    ${PgRouting_ENGLISH}
+    Optional languages:
+    ${PgRouting_SUPPORTED_LANGUAGES} 
+
+    When OFF and want to build specific optional language, use the language code in capital letters:
+    -D ES=ON
+    "
+    OFF
+    )
+
+foreach(lang ${PgRouting_SUPPORTED_LANGUAGES})
+    string(TOUPPER ${lang} val)
+    option(${val}
+        "Set ON|OFF (default=OFF) build ${lang} Documentation" OFF)
+endforeach()
+
+#---------------------------------------------
+# Catching the language options to be build
+#---------------------------------------------
+foreach(lang ${PgRouting_SUPPORTED_LANGUAGES})
+    string(TOUPPER ${lang} opt)
+    if (${opt} OR WITH_ALL_LANG)
+        list(APPEND PgRouting_BUILD_LANGUAGES ${lang})
+    endif()
+endforeach()
+
+#---------------------------------------------
+# All languages po files are to be generated
+#---------------------------------------------
+
+set (SPHINXINTL_LANGUAGE  ${PgRouting_ENGLISH})
+foreach(lang ${PgRouting_BUILD_LANGUAGES})
+    set(SPHINXINTL_LANGUAGE "${SPHINXINTL_LANGUAGE},${lang}")
+endforeach()
+
+
+list(APPEND PgRouting_BUILD_LANGUAGES  ${PgRouting_ENGLISH})
+message(STATUS "PgRouting_BUILD_LANGUAGES = ${PgRouting_BUILD_LANGUAGES}")
+message(STATUS "SPHINXINTL_LANGUAGE = ${SPHINXINTL_LANGUAGE}")
+
+
+if(NOT WITH_DOC)
+    return()
+endif()
+
 
+#---------------------------------------------
+# Checking for prerequisites
+#---------------------------------------------
+find_package(Sphinx ${SPHINX_MINIMUM_VERSION} REQUIRED)
+
+if (NOT SPHINX_FOUND)
+    message(FATAL_ERROR "Sphinx not found.
+    Cannot generate documentation!
+    Install Sphinx or build without documentation")
+endif()
+
+if (SPHINX_VERSION VERSION_LESS 1.0)
+    message(WARNING "Your Sphinx version is too old!
+    This project requires Sphinx v${SPHINX_MINIMUM_VERSION} or above to produce
+    proper documentation (you have v${SPHINX_VERSION}).
+    You will get output but it will have errors.")
+endif()
+
+#pip install rst2pdf
+
+
+
+#---------------------------------------------
+# Kind of "looks"
+#---------------------------------------------
 option(DOC_USE_BOOTSTRAP
     "Set ON|OFF (default=ON) to build Documentation library tree as MAN page" OFF)
 
+if (DOC_USE_BOOTSTRAP)
+    set(SPHINX_INCLUDE "import sphinx_bootstrap_theme")
+    set(SPHINX_THEME "bootstrap")
+    set(SPHINX_THEME_DIR "sphinx_bootstrap_theme.get_html_theme_path()")
+    set(SPHINX_THEME_OPTIONS "'source_link_position': \"none\",")
+else()
+    set(SPHINX_INCLUDE "")
+    set(SPHINX_THEME "haiku")
+    set(SPHINX_THEME_DIR "['']")
+    set(SPHINX_THEME_OPTIONS "")
+endif()
 
-if(WITH_DOC)
-    #message("PROCESSING DOCUMENTATION------------")
 
-    find_package(Sphinx REQUIRED)
 
-    if (DOC_USE_BOOTSTRAP)
-        set(SPHINX_INCLUDE "import sphinx_bootstrap_theme")
-        set(SPHINX_THEME "bootstrap")
-        set(SPHINX_THEME_DIR "sphinx_bootstrap_theme.get_html_theme_path()")
-        set(SPHINX_THEME_OPTIONS "'source_link_position': \"none\",")
-    else()
-        set(SPHINX_INCLUDE "")
-        set(SPHINX_THEME "haiku")
-        set(SPHINX_THEME_DIR "['']")
-        set(SPHINX_THEME_OPTIONS "")
-    endif()
 
+# configured documentation tools and intermediate build results
+# TODO for 3.0 Use _build
+# set(PGR_DOCUMENTATION_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/_build")
+set(PGR_DOCUMENTATION_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}")
+set(PGR_DOCUMENTATION_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}")
+
+message(STATUS "PGR_DOCUMENTATION_BUILD_DIR = ${PGR_DOCUMENTATION_BUILD_DIR}")
+
+
+#---------------------------------------------
+# Adding documentation directories
+#---------------------------------------------
+foreach (subdir ${PgRouting_DOC_DIRECTORIES} "src" "queries")
+    add_subdirectory(${subdir})
+endforeach()
+
+add_subdirectory("images")
+
+
+configure_file("../tools/testers/sampledata.sql" "${PGR_DOCUMENTATION_SOURCE_DIR}/sampledata/sampledata.sql")
+
+
+#TODO ???
+#add_subdirectory("static")
+#add_subdirectory("themes")
+file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/_static" DESTINATION "${PGR_DOCUMENTATION_SOURCE_DIR}")
+file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/_themes" DESTINATION "${PGR_DOCUMENTATION_SOURCE_DIR}")
+
+
+configure_file(
+    "${CMAKE_CURRENT_SOURCE_DIR}/conf.py.in"
+    "${PGR_DOCUMENTATION_SOURCE_DIR}/conf.py"
+    @ONLY)
+
+# Add documentation to targets
 
 
-    if (NOT SPHINX_FOUND)
-        message(WARNING "Sphinx not found. Cannot generate documentation!")
+#if (LATEX)
+if (FALSE)
+    find_package(LATEX)
+    if (NOT LATEX_COMPILER)
+        message("Couldn't find Latex, can't build latex docs using Sphinx")
     else()
-        if (SPHINX_VERSION VERSION_LESS 1.0)
-            message(WARNING "Your Sphinx version is too old!
-            This project requires Sphinx v1.0 or above to produce
-            proper documentation (you have v${SPHINX_VERSION}).
-            You will get output but it will have errors.")
-        endif()
-
-        if(NOT DEFINED SPHINX_THEME)
-            set(SPHINX_THEME default)
-        endif()
-
-        if(NOT DEFINED SPHINX_THEME_DIR)
-            set(SPHINX_THEME_DIR)
-        endif()
-
-        # configured documentation tools and intermediate build results
-        set(PGR_DOCUMENTATION_BUILD_DIR "${PGROUTING_BINARY_DIR}/doc/_build")
-        set(PGR_DOCUMENTATION_SOURCE_DIR "${PGROUTING_BINARY_DIR}/doc")
-
-        message(STATUS "PGR_DOCUMENTATION_BUILD_DIR = ${PGR_DOCUMENTATION_BUILD_DIR}")
-
-        # ---------- TO FLATTEN THE DOCUMENTATION ---------
-
-        file(GLOB PGR_DOCUMENTATION_SOURCES "src/*")
-        foreach (file ${PGR_DOCUMENTATION_SOURCES})
-            #message("${file}")
-            file(COPY "${file}" DESTINATION "${PGR_DOCUMENTATION_SOURCE_DIR}")
-        endforeach()
-
-        file(GLOB  PGR_DOCUMENTATION_SOURCES "../src/*/doc/*")
-        foreach (file ${PGR_DOCUMENTATION_SOURCES})
-            #message("${file}")
-            file(COPY "${file}" DESTINATION "${PGR_DOCUMENTATION_SOURCE_DIR}")
-        endforeach()
-
-        file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/index.rst" DESTINATION "${PGR_DOCUMENTATION_SOURCE_DIR}")
-        file(COPY "../tools/testers/sampledata.sql" DESTINATION "${PGR_DOCUMENTATION_SOURCE_DIR}/sampledata/")
-
-
-        #message(STATUS "PGROUTING_BINARY_DIR = ${PGROUTING_BINARY_DIR}")
-
-        # Sphinx cache with pickled ReST documents
-        set(SPHINX_CACHE_DIR "${PGROUTING_BINARY_DIR}/doc/_doctrees")
-
-        file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/static" DESTINATION "${PGR_DOCUMENTATION_BUILD_DIR}")
-        file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/themes" DESTINATION "${PGR_DOCUMENTATION_BUILD_DIR}")
-        file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/CNAME" DESTINATION "${PGROUTING_BINARY_DIR}")
-
-        #configure_file(
-        #    "${CMAKE_CURRENT_SOURCE_DIR}/index.html.in"
-        #    "${PGROUTING_BINARY_DIR}/doc/html/index.html")
-
-        configure_file(
-            "${CMAKE_CURRENT_SOURCE_DIR}/forward.html"
-            "${PGROUTING_BINARY_DIR}/doc/html/en/index.html")
-
-        # Add documentation to targets
-        set(DOC_TARGETS html)
-
-        #option(BUILD_MAN "Create a target for building man pages." ON)
-
-        if (BUILD_MAN)
-            if (SPHINX_VERSION VERSION_LESS 1.0)
-                message(WARNING "Sphinx version 1.0 > is required to build man pages. You have v${SPHINX_VERSION}.")
-            else()
-                list(APPEND DOC_TARGETS man)
-            endif()
-        endif()
-
-        #option(BUILD_LATEX "Create a target for building latex docs (to create PDF)." ON)
-
-        if (BUILD_LATEX)
-            find_package(LATEX)
-
-            if (NOT LATEX_COMPILER)
-                message("Couldn't find Latex, can't build latex docs using Sphinx")
-            else()
-                message(STATUS "LATEX_COMPILER = ${LATEX_COMPILER}")
-                list(APPEND DOC_TARGETS latex)
-            endif()
-        endif()
-
-        # The doc target will build all documentation targets.
-        add_custom_target(doc #ALL
-            COMMENT "Building documentation with Sphinx")
-        # add_custom_target(doc)
-
-        # Localization output directory
-        #set(SPHINX_I18N_DIR "${CMAKE_CURRENT_SOURCE_DIR}/i18n/pot")
-
-        configure_file(
-            "${CMAKE_CURRENT_SOURCE_DIR}/conf.py.in"
-            "${PGR_DOCUMENTATION_BUILD_DIR}/conf.py"
-            @ONLY)
-
-        foreach (DOC_TARGET ${DOC_TARGETS})
-            add_custom_command(
-                TARGET doc POST_BUILD
-                COMMAND ${SPHINX_EXECUTABLE} 
-                # -q  # Enable for quiet mode 
-                # -Q  # Enable for even more quiet mode
-                # -v  # increase verbosity
-                -b ${DOC_TARGET}
-                -E  # don't use a saved environment, always read all file
-                -a  # write all files; default is to only write new and changed files
-                -d "${SPHINX_CACHE_DIR}" 
-                -c "${PGR_DOCUMENTATION_BUILD_DIR}" 
-                "${PGR_DOCUMENTATION_SOURCE_DIR}" 
-                "${PGROUTING_BINARY_DIR}/doc/${DOC_TARGET}/en"
-                COMMENT "Generating ${DOC_TARGET} documentation ...")
-        endforeach()
-
-        if(BUILD_LATEX)
-            if(LATEX_COMPILER)
-                add_custom_command(
-                    TARGET doc POST_BUILD
-                    #fixes: Underfull \hbox (badness 10000) in paragraph
-                    #perl -pi -e 's/warning/warning /' pgRoutingDocumentation.tex
-                    COMMAND pdflatex 
-                    -interaction=nonstopmode 
-                    "pgRoutingDocumentation.tex" > /dev/null 2>&1
-                    WORKING_DIRECTORY "${PGROUTING_BINARY_DIR}/doc/latex/en"
-                    COMMENT "Converting Latex to PDF format")
-
-                list(APPEND DOC_TARGETS pdf)
-            endif()
-        endif()
-
-        message("-- Building documentation enabled for: ${DOC_TARGETS}")
+        message(STATUS "LATEX_COMPILER = ${LATEX_COMPILER}")
     endif()
+endif()
+
+set(ENV{SPHINXINTL_LANGUAGE} ${SPHINXINTL_LANGUAGE})
+
+if (LOCALE)
+    add_custom_target(locale
+        COMMAND ${SPHINX_EXECUTABLE} 
+        -b gettext
+        -c "${PGR_DOCUMENTATION_SOURCE_DIR}" 
+        "${PGR_DOCUMENTATION_SOURCE_DIR}" 
+        "${CMAKE_SOURCE_DIR}/locale/pot" 
+
+    COMMAND sphinx-intl update -p ${CMAKE_SOURCE_DIR}/locale/pot -d ${CMAKE_SOURCE_DIR}/locale --language=${SPHINXINTL_LANGUAGE}
+
+    COMMENT "Generating POT & PO files ..."
+    SOURCES ${PgRouting_DOC_FILES}
+    )
+endif()
+
+
+# The doc target will build all documentation targets.
+add_custom_target(doc 
+    COMMENT "Building documentation with Sphinx")
+
+
+foreach (target ${PgRouting_DOC_TARGETS})
+    add_custom_target("${target}"
+        COMMENT "Building ${target} documentation with Sphinx")
+
+    configure_file(
+        "${CMAKE_CURRENT_SOURCE_DIR}/forward.html"
+        "${PGR_DOCUMENTATION_BUILD_DIR}/${target}/index.html")
+
+    foreach (lang ${PgRouting_BUILD_LANGUAGES})
+        add_custom_target(
+            "${target}-${lang}"
+            COMMAND ${SPHINX_EXECUTABLE} 
+            #-q  # Enable for quiet mode 
+            #-Q  # Enable for even more quiet mode
+            -v   # increase verbosity
+            #-E  # don't use a saved environment, always read all file
+            #-a  # write all files; default is to only write new and changed files
+            -b ${target}
+            -D language='${lang}'
+            -c "${PGR_DOCUMENTATION_SOURCE_DIR}" 
+            "${PGR_DOCUMENTATION_SOURCE_DIR}" 
+            "${PGR_DOCUMENTATION_BUILD_DIR}/${target}/${lang}"
+
+            COMMENT "Generating ${target}/${lang} documentation ..."
+            SOURCES ${PgRouting_DOC_FILES}  ${PgRouting_IMG_FILES} 
+            DEPENDS ${PgRouting_DOC_FILES}  ${PgRouting_IMG_FILES} 
+            )
+        add_dependencies(${target} "${target}-${lang}")
+
+    endforeach()
+    add_dependencies(doc "${target}")
+endforeach()
+
+
+
+if(FALSE)
+    # AND ${target} MATCHES "latex" AND LATEX_COMPILER)
+    add_custom_target(pdf-${lang}
+        COMMENT "Building documentation with Sphinx")
+
+    add_custom_command(
+        TARGET pdf-${lang} POST_BUILD
+        #fixes: Underfull \hbox (badness 10000) in paragraph
+        #perl -pi -e 's/warning/warning /' pgRoutingDocumentation.tex
+        COMMAND pdflatex -interaction=nonstopmode "pgRoutingDocumentation.tex" > /dev/null 2>&1
+        WORKING_DIRECTORY "${PGR_DOCUMENTATION_BUILD_DIR}/pdf/${lang}"
+        DEPENDS ${target}-${lang}
+        COMMENT "Converting Latex to PDF format")
+
+endif()
 
-    #message("END PROCESSING DOCUMENTATION------------")
-endif(WITH_DOC)
diff --git a/doc/_static/custom.css b/doc/_static/custom.css
new file mode 100644
index 0000000..389a4f2
--- /dev/null
+++ b/doc/_static/custom.css
@@ -0,0 +1,15 @@
+
+abbr {
+    font-size: 80%;
+}
+
+/* Content */
+div.content-wrapper {
+    background-color: blue;
+    padding-top: 20px;
+    padding-bottom: 20px;
+}
+
+div.topic {
+        border: none;
+}
diff --git a/doc/static/favicon.ico b/doc/_static/favicon.ico
similarity index 100%
rename from doc/static/favicon.ico
rename to doc/_static/favicon.ico
diff --git a/doc/static/images/ccbysa.png b/doc/_static/images/ccbysa.png
similarity index 100%
rename from doc/static/images/ccbysa.png
rename to doc/_static/images/ccbysa.png
diff --git a/doc/static/images/developers/disconnectEdgeDirected.graphmlz b/doc/_static/images/developers/disconnectEdgeDirected.graphmlz
similarity index 100%
rename from doc/static/images/developers/disconnectEdgeDirected.graphmlz
rename to doc/_static/images/developers/disconnectEdgeDirected.graphmlz
diff --git a/doc/static/images/developers/disconnectEdgeDirected.png b/doc/_static/images/developers/disconnectEdgeDirected.png
similarity index 100%
rename from doc/static/images/developers/disconnectEdgeDirected.png
rename to doc/_static/images/developers/disconnectEdgeDirected.png
diff --git a/doc/static/images/developers/disconnectEdgeUndirected.graphmlz b/doc/_static/images/developers/disconnectEdgeUndirected.graphmlz
similarity index 100%
rename from doc/static/images/developers/disconnectEdgeUndirected.graphmlz
rename to doc/_static/images/developers/disconnectEdgeUndirected.graphmlz
diff --git a/doc/static/images/developers/disconnectEdgeUndirected.png b/doc/_static/images/developers/disconnectEdgeUndirected.png
similarity index 100%
rename from doc/static/images/developers/disconnectEdgeUndirected.png
rename to doc/_static/images/developers/disconnectEdgeUndirected.png
diff --git a/doc/static/images/developers/disconnectVertexDirected.graphmlz b/doc/_static/images/developers/disconnectVertexDirected.graphmlz
similarity index 100%
rename from doc/static/images/developers/disconnectVertexDirected.graphmlz
rename to doc/_static/images/developers/disconnectVertexDirected.graphmlz
diff --git a/doc/static/images/developers/disconnectVertexDirected.png b/doc/_static/images/developers/disconnectVertexDirected.png
similarity index 100%
rename from doc/static/images/developers/disconnectVertexDirected.png
rename to doc/_static/images/developers/disconnectVertexDirected.png
diff --git a/doc/static/images/developers/disconnectVertexUndirected.graphmlz b/doc/_static/images/developers/disconnectVertexUndirected.graphmlz
similarity index 100%
rename from doc/static/images/developers/disconnectVertexUndirected.graphmlz
rename to doc/_static/images/developers/disconnectVertexUndirected.graphmlz
diff --git a/doc/static/images/developers/disconnectVertexUndirected.png b/doc/_static/images/developers/disconnectVertexUndirected.png
similarity index 100%
rename from doc/static/images/developers/disconnectVertexUndirected.png
rename to doc/_static/images/developers/disconnectVertexUndirected.png
diff --git a/doc/static/images/favicon.ico b/doc/_static/images/favicon.ico
similarity index 100%
rename from doc/static/images/favicon.ico
rename to doc/_static/images/favicon.ico
diff --git a/doc/static/images/pgrouting-logo.png b/doc/_static/images/pgrouting-logo.png
similarity index 100%
rename from doc/static/images/pgrouting-logo.png
rename to doc/_static/images/pgrouting-logo.png
diff --git a/doc/static/images/pgrouting.png b/doc/_static/images/pgrouting.png
similarity index 100%
rename from doc/static/images/pgrouting.png
rename to doc/_static/images/pgrouting.png
diff --git a/doc/_templates/layout.thml b/doc/_templates/layout.thml
new file mode 100644
index 0000000..9178708
--- /dev/null
+++ b/doc/_templates/layout.thml
@@ -0,0 +1,7 @@
+
+{# Import the theme's layout. #}
+{% extends "!layout.html" %}
+
+{# Custom CSS overrides #}
+{% set bootswatch_css_custom = ['_static/custom.css'] %}
+
diff --git a/doc/themes/null b/doc/_themes/null
similarity index 100%
rename from doc/themes/null
rename to doc/_themes/null
diff --git a/doc/allpairs/CMakeLists.txt b/doc/allpairs/CMakeLists.txt
new file mode 100644
index 0000000..3e2be88
--- /dev/null
+++ b/doc/allpairs/CMakeLists.txt
@@ -0,0 +1,14 @@
+
+SET(LOCAL_FILES
+    allpairs-family.rst
+    pgr_floydWarshall.rst
+    pgr_johnson.rst
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}")
+    list(APPEND LOCAL_DOC_FILES  ${PGR_DOCUMENTATION_SOURCE_DIR}/${f})
+endforeach()
+
+set(PgRouting_DOC_FILES ${PgRouting_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE)
+
diff --git a/src/allpairs/doc/allpairs-family.rst b/doc/allpairs/allpairs-family.rst
similarity index 100%
rename from src/allpairs/doc/allpairs-family.rst
rename to doc/allpairs/allpairs-family.rst
diff --git a/doc/allpairs/pgr_floydWarshall.rst b/doc/allpairs/pgr_floydWarshall.rst
new file mode 100644
index 0000000..77ea3cb
--- /dev/null
+++ b/doc/allpairs/pgr_floydWarshall.rst
@@ -0,0 +1,162 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_floydWarshall:
+
+pgr_floydWarshall
+===============================================================================
+
+Synopsis
+-------------------------------------------------------------------------------
+
+``pgr_floydWarshall`` - Returns the sum of the costs of the shortest path for each
+pair of nodes in the graph using Floyd-Warshall algorithm.
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph/doc/floyd_warshall_shortest.html
+
+   Boost Graph Inside
+
+.. rubric:: Availability: 2.0.0
+
+* Renamed on 2.2.0, previous name pgr_apspWarshall
+
+
+The Floyd-Warshall algorithm, also known as Floyd's algorithm,
+is a good choice to calculate the sum of the costs of the shortest path for each
+pair of nodes in the graph, for *dense graphs*. We make use of the  Boost's
+implementation which runs in :math:`\Theta(V^3)` time,
+
+
+Characteristics
+----------------
+
+The main Characteristics are:
+  - It does not return a path.
+  - Returns the sum of the costs of the shortest path for each pair of nodes in the graph.
+  - Process is done only on edges with positive costs.
+  - Boost returns a :math:`V \times V` matrix, where the infinity values.
+    Represent the distance between vertices for which there is no path.
+
+    - We return only the non infinity values in form of a set of `(start_vid, end_vid, agg_cost)`.
+
+  - Let be the case the values returned are stored in a table, so the unique index would be the pair:
+    `(start_vid, end_vid)`.
+
+  - For the undirected graph, the results are symmetric.
+
+    - The  `agg_cost` of `(u, v)` is the same as for `(v, u)`.
+
+  - When  `start_vid` = `end_vid`, the `agg_cost` = 0.
+
+  - **Recommended, use a bounding box of no more than 3500 edges.**
+
+Signature Summary
+--------------------------------------------
+
+.. code-block:: none
+
+    pgr_floydWarshall(edges_sql)
+    pgr floydWarshall(edges_sql, directed)
+    RETURNS SET OF (start_vid, end_vid,  agg_cost) or EMPTY SET
+
+Signatures
+--------------------------------------------
+
+
+.. index::
+    single: floydWarshall(Minimal Signature)
+
+Minimal Signature
+...................
+
+.. code-block:: none
+
+    pgr_floydWarshall(edges_sql)
+    RETURNS SET OF (start_vid, end_vid,  agg_cost) or EMPTY SET
+
+:Example 1: On a directed graph.
+
+.. literalinclude:: doc-floydWarshall.queries
+   :start-after: -- q1
+   :end-before: -- q2
+
+
+.. index::
+    single: floydWarshall(Complete Signature)
+
+Complete Signature
+...................
+
+.. code-block:: none
+
+    pgr_floydWarshall(edges_sql, directed)
+    RETURNS SET OF (start_vid, end_vid,  agg_cost) or EMPTY SET
+
+
+:Example 2: On an undirected graph.
+
+.. literalinclude:: doc-floydWarshall.queries
+   :start-after: -- q2
+   :end-before: -- q3
+
+Description of the Signatures
+------------------------------
+
+.. include:: pgRouting-concepts.rst
+    :start-after: no_id_edges_sql_start
+    :end-before: no_id_edges_sql_end
+
+
+Description of the parameters of the signatures
+................................................
+
+Receives  ``(edges_sql, directed)``
+
+============= ============= =================================================
+Parameter     Type          Description
+============= ============= =================================================
+**edges_sql** ``TEXT``      SQL query as described above.
+**directed**  ``BOOLEAN``   (optional) Default is true (is directed). When set to false the graph is considered as Undirected
+============= ============= =================================================
+
+
+Description of the return values
+..................................
+
+Returns set of ``(start_vid, end_vid, agg_cost)``
+
+============= ============= =================================================
+Column        Type          Description
+============= ============= =================================================
+**start_vid** ``BIGINT``    Identifier of the starting vertex.
+**end_vid**   ``BIGINT``    Identifier of the ending vertex.
+**agg_cost**  ``FLOAT``     Total cost from ``start_vid`` to ``end_vid``.
+============= ============= =================================================
+
+
+
+
+
+.. rubric:: History
+
+* Re-design of pgr_apspWarshall in Version 2.2.0
+
+See Also
+-------------------------------------------------------------------------------
+
+* :ref:`pgr_johnson`
+* `Boost floyd-Warshall <http://www.boost.org/libs/graph/doc/floyd_warshall_shortest.html>`_ algorithm
+* Queries uses the :doc:`sampledata` network.
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/allpairs/pgr_johnson.rst b/doc/allpairs/pgr_johnson.rst
new file mode 100644
index 0000000..b24e161
--- /dev/null
+++ b/doc/allpairs/pgr_johnson.rst
@@ -0,0 +1,161 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_johnson:
+
+pgr_johnson
+===============================================================================
+
+Synopsis
+-------------------------------------------------------------------------------
+
+``pgr_johnson`` - Returns the sum of the costs of the shortest path for each
+pair of nodes in the graph using Floyd-Warshall algorithm.
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph/doc/johnson_all_pairs_shortest.html
+
+   Boost Graph Inside
+
+.. rubric:: Availability: 2.0.0
+
+* Renamed on 2.2.0, previous name pgr_apspJohnson
+
+
+The Johnson algorithm, is a good choice to calculate the sum of the costs
+of the shortest path for each pair of nodes in the graph, for *sparse graphs*.
+It usees the Boost's implementation which runs in :math:`O(V E \log V)` time,
+
+
+Characteristics
+----------------
+
+The main Characteristics are:
+  - It does not return a path.
+  - Returns the sum of the costs of the shortest path for each pair of nodes in the graph.
+  - Process is done only on edges with positive costs.
+  - Boost returns a :math:`V \times V` matrix, where the infinity values.
+    Represent the distance between vertices for which there is no path.
+
+    - We return only the non infinity values in form of a set of `(start_vid, end_vid, agg_cost)`.
+
+  - Let be the case the values returned are stored in a table, so the unique index would be the pair:
+    `(start_vid, end_vid)`.
+
+  - For the undirected graph, the results are symmetric.
+
+    - The  `agg_cost` of `(u, v)` is the same as for `(v, u)`.
+
+  - When  `start_vid` = `end_vid`, the `agg_cost` = 0.
+
+
+
+Signature Summary
+--------------------------------------------
+
+.. code-block:: none
+
+    pgr_johnson(edges_sql)
+    pgr johnson(edges_sql, directed)
+    RETURNS SET OF (start_vid, end_vid,  agg_cost) or EMPTY SET
+
+Signatures
+--------------------------------------------
+
+
+.. index::
+    single: johnson(Minimal Signature)
+
+Minimal Signature
+...................
+
+.. code-block:: none
+
+    pgr_johnson(edges_sql)
+    RETURNS SET OF (start_vid, end_vid,  agg_cost) or EMPTY SET
+
+:Example 1: On a directed graph.
+
+.. literalinclude:: doc-johnson.queries
+   :start-after: -- q1
+   :end-before: -- q2
+
+
+.. index::
+    single: johnson(Complete Signature)
+
+Complete Signature
+...................
+
+.. code-block:: none
+
+    pgr_johnson(edges_sql, directed)
+    RETURNS SET OF (start_vid, end_vid,  agg_cost) or EMPTY SET
+
+
+:Example 2: On an undirected graph.
+
+.. literalinclude:: doc-johnson.queries
+   :start-after: -- q2
+   :end-before: -- q3
+
+Description of the Signatures
+------------------------------
+
+.. include:: pgRouting-concepts.rst
+    :start-after: no_id_edges_sql_start
+    :end-before: no_id_edges_sql_end
+
+
+Description of the parameters of the signatures
+................................................
+
+Receives  ``(edges_sql, directed)``
+
+============= ============= =================================================
+Parameter     Type          Description
+============= ============= =================================================
+**edges_sql** ``TEXT``      SQL query as described above.
+**directed**  ``BOOLEAN``   (optional) Default is true (is directed). When set to false the graph is considered as Undirected
+============= ============= =================================================
+
+
+Description of the return values
+..................................
+
+Returns set of ``(start_vid, end_vid, agg_cost)``
+
+============= ============= =================================================
+Column        Type          Description
+============= ============= =================================================
+**start_vid** ``BIGINT``    Identifier of the starting vertex.
+**end_vid**   ``BIGINT``    Identifier of the ending vertex.
+**agg_cost**  ``FLOAT``     Total cost from ``start_vid`` to ``end_vid``.
+============= ============= =================================================
+
+
+
+
+
+.. rubric:: History
+
+* Re-design of pgr_apspJohnson in Version 2.2.0
+
+See Also
+-------------------------------------------------------------------------------
+
+* :ref:`pgr_floydWarshall`
+* `Boost Johnson <http://www.boost.org/libs/graph/doc/johnson_all_pairs_shortest.html>`_ algorithm implementation.
+* Queries uses the :doc:`sampledata` network.
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/alpha_shape/CMakeLists.txt b/doc/alpha_shape/CMakeLists.txt
new file mode 100644
index 0000000..5fe3230
--- /dev/null
+++ b/doc/alpha_shape/CMakeLists.txt
@@ -0,0 +1,13 @@
+
+SET(LOCAL_FILES
+    pgr_alphaShape.rst
+    pgr_pointsAsPolygon.rst
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}")
+    list(APPEND LOCAL_DOC_FILES  ${PGR_DOCUMENTATION_SOURCE_DIR}/${f})
+endforeach()
+
+set(PgRouting_DOC_FILES ${PgRouting_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE)
+
diff --git a/doc/alpha_shape/pgr_alphaShape.rst b/doc/alpha_shape/pgr_alphaShape.rst
new file mode 100644
index 0000000..6c94643
--- /dev/null
+++ b/doc/alpha_shape/pgr_alphaShape.rst
@@ -0,0 +1,101 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_alphashape:
+
+pgr_alphaShape
+===============================================================================
+
+.. index::
+	single: pgr_alphashape(text,float8)
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_alphaShape`` — Core function for alpha shape computation.
+
+
+Synopsis
+-------------------------------------------------------------------------------
+
+Returns a table with (x, y) rows that describe the vertices of an alpha shape.
+
+.. code-block:: sql
+
+	table() pgr_alphaShape(text sql [, float8 alpha]);
+
+
+Description
+-------------------------------------------------------------------------------
+
+:sql: ``text`` a SQL query, which should return a set of rows with the following columns:
+
+    .. code-block:: sql
+
+        SELECT id, x, y FROM vertex_table
+
+    :id: ``int4`` identifier of the vertex
+    :x: ``float8`` x-coordinate
+    :y: ``float8`` y-coordinate
+
+:alpha: (optional) ``float8`` alpha value. If specified alpha value equals 0 (default), then optimal alpha value is used.
+    For more information, see `CGAL - 2D Alpha Shapes <http://doc.cgal.org/latest/Alpha_shapes_2/group__PkgAlphaShape2.html>`_.
+
+Returns a vertex record for each row:
+
+:x: x-coordinate
+:y: y-coordinate
+
+If a result includes multiple outer/inner rings, return those with separator row (x=NULL and y=NULL).
+
+.. rubric:: History
+
+* Renamed in version 2.0.0
+* Added alpha argument with default 0 (use optimal value) in version 2.1.0
+* Supported to return multiple outer/inner ring coordinates with separator row (x=NULL and y=NULL) in version 2.1.0
+
+Examples
+-------------------------------------------------------------------------------
+PgRouting's alpha shape implementation has no way to control the order of the output points, so the actual output might different for the same input data.
+The first query, has the output ordered, he second query shows an example usage:
+
+
+.. rubric:: Example: the (ordered) results
+
+.. literalinclude:: doc-pgr_alphashape.queries
+   :start-after: -- q1
+   :end-before: -- q2
+
+.. rubric:: Example: calculating the area
+
+Steps:
+
+- Calculates the alpha shape
+    - the :code:`ORDER BY` clause is not used.
+- constructs a polygon
+- and computes the area
+
+.. literalinclude:: doc-pgr_alphashape.queries
+   :start-after: -- q2
+   :end-before: -- q3
+
+
+
+The queries use the :doc:`sampledata` network.
+
+See Also
+-------------------------------------------------------------------------------
+
+* :ref:`pgr_drivingDistance` - Driving Distance
+* :ref:`pgr_points_as_polygon` - Polygon around set of points
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/alpha_shape/pgr_pointsAsPolygon.rst b/doc/alpha_shape/pgr_pointsAsPolygon.rst
new file mode 100644
index 0000000..c891996
--- /dev/null
+++ b/doc/alpha_shape/pgr_pointsAsPolygon.rst
@@ -0,0 +1,81 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_points_as_polygon:
+
+pgr_pointsAsPolygon
+===============================================================================
+
+.. index::
+    single: pgr_pointsAsPolygon(text,float8)
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_pointsAsPolygon`` — Draws an alpha shape around given set of points.
+
+
+Synopsis
+-------------------------------------------------------------------------------
+
+Returns the alpha shape as (multi)polygon geometry.
+
+.. code-block:: sql
+
+    geometry pgr_pointsAsPolygon(text sql [, float8 alpha]);
+
+
+Description
+-------------------------------------------------------------------------------
+
+:sql: ``text`` a SQL query, which should return a set of rows with the following columns:
+
+    .. code-block:: sql
+
+        SELECT id, x, y FROM vertex_result;
+
+    :id: ``int4`` identifier of the vertex
+    :x: ``float8`` x-coordinate
+    :y: ``float8`` y-coordinate
+
+:alpha: (optional) ``float8`` alpha value. If specified alpha value equals 0 (default), then optimal alpha value is used.
+    For more information, see `CGAL - 2D Alpha Shapes <http://doc.cgal.org/latest/Alpha_shapes_2/group__PkgAlphaShape2.html>`_.
+
+Returns a (multi)polygon geometry (with holes).
+
+
+.. rubric:: History
+
+* Renamed in version 2.0.0
+* Added alpha argument with default 0 (use optimal value) in version 2.1.0
+* Supported to return a (multi)polygon geometry (with holes) in version 2.1.0
+
+
+Examples
+-------------------------------------------------------------------------------
+In the following query there is no way to control which point in the polygon is the first in the list, so you may get similar but different results than the following which are also correct.
+
+.. literalinclude:: doc-pgr_pointsAsPolygon.queries
+   :start-after: --q1
+   :end-before: --q2
+
+
+The query use the :doc:`sampledata` network.
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* :ref:`pgr_drivingDistance` - Driving Distance
+* :ref:`pgr_alphashape` - Alpha shape computation
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/astar/CMakeLists.txt b/doc/astar/CMakeLists.txt
new file mode 100644
index 0000000..69595a9
--- /dev/null
+++ b/doc/astar/CMakeLists.txt
@@ -0,0 +1,14 @@
+
+SET(LOCAL_FILES
+    aStar-family.rst
+    pgr_aStarCost.rst
+    pgr_aStar.rst
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}")
+    list(APPEND LOCAL_DOC_FILES  ${PGR_DOCUMENTATION_SOURCE_DIR}/${f})
+endforeach()
+
+set(PgRouting_DOC_FILES ${PgRouting_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE)
+
diff --git a/src/astar/doc/aStar-family.rst b/doc/astar/aStar-family.rst
similarity index 100%
rename from src/astar/doc/aStar-family.rst
rename to doc/astar/aStar-family.rst
diff --git a/doc/astar/pgr_aStar.rst b/doc/astar/pgr_aStar.rst
new file mode 100644
index 0000000..600e179
--- /dev/null
+++ b/doc/astar/pgr_aStar.rst
@@ -0,0 +1,271 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_aStar:
+
+pgr_aStar
+===============================================================================
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_aStar`` — Returns the shortest path using A* algorithm.
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org//libs/graph/doc/astar_search.html
+
+   Boost Graph Inside
+
+.. rubric:: Availability:
+
+* pgr_astar(one to one) 2.0.0, Signature changed 2.3.0
+* pgr_astar(other signatures) 2.4.0
+
+
+
+Characteristics
+-------------------------------------------------------------------------------
+
+The main Characteristics are:
+
+- Process is done only on edges with positive costs.
+- Vertices of the graph are:
+
+  - **positive** when it belongs to the edges_sql
+
+- Values are returned when there is a path.
+
+  - When the starting vertex and ending vertex are the same, there is no path.
+
+    - The agg_cost the non included values (v, v) is 0
+
+  - When the starting vertex and ending vertex are the different and there is no path:
+
+    - The agg_cost the non included values (u, v) is ∞
+
+- When (x,y) coordinates for the same vertex identifier differ:
+
+  - A random selection of the vertex's (x,y) coordinates is used.
+
+- Running time: :math:`O((E + V) * \log V)`
+
+
+
+Signature Summary
+-----------------
+
+.. code-block:: none
+
+    pgr_aStar(edges_sql, start_vid, end_vid)
+    pgr_aStar(edges_sql, start_vid, end_vid, directed, heuristic, factor, epsilon)
+
+
+.. include:: proposed.rst
+   :start-after: begin-warning
+   :end-before: end-warning
+
+
+.. code-block:: none
+
+    pgr_aStar(edges_sql, start_vid, end_vids, directed, heuristic, factor, epsilon) -- proposed
+    pgr_aStar(edges_sql, starts_vid, end_vid, directed, heuristic, factor, epsilon) -- proposed
+    pgr_aStar(edges_sql, starts_vid, end_vids, directed, heuristic, factor, epsilon) -- proposed
+    RETURNS SET OF (seq, path_seq [, start_vid] [, end_vid], node, edge, cost, agg_cost)
+      OR EMPTY SET
+
+
+Signatures
+-----------------
+
+
+.. index::
+    single: aStar(Minimal Use) -- New Signature
+
+
+Minimal Signature
+...............................................................................
+
+.. code-block:: none
+
+    pgr_aStar(edges_sql, start_vid, end_vid)
+    RETURNS SET OF (seq, path_seq, node, edge, cost, agg_cost)
+
+:Example: Using the defaults
+
+.. literalinclude:: doc-astar.queries
+   :start-after: --q1
+   :end-before: --q2
+
+
+
+.. index::
+    single: aStar(One to One) -- New Signature
+
+
+One to One
+...............................................................................
+.. code-block:: none
+
+    pgr_aStar(edges_sql, start_vid, end_vid, directed, heuristic, factor, epsilon)
+    RETURNS SET OF (seq, path_seq, node, edge, cost, agg_cost)
+
+:Example: Undirected using  Heuristic 2
+
+.. literalinclude:: doc-astar.queries
+   :start-after: --q2
+   :end-before: --q3
+
+
+
+.. index::
+    single: astar(One to Many) -- Proposed
+
+One to many
+.......................................
+
+.. code-block:: none
+
+    pgr_aStar(edges_sql, start_vid, end_vids, directed, heuristic, factor, epsilon) -- Proposed
+    RETURNS SET OF (seq, path_seq, end_vid, node, edge, cost, agg_cost) or EMPTY SET
+
+This signature finds the shortest path from one ``start_vid`` to each ``end_vid`` in ``end_vids``:
+  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
+  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
+
+Using this signature, will load once the graph and perform a one to one `pgr_astar`
+where the starting vertex is fixed, and stop when all ``end_vids`` are reached.
+
+- The result is equivalent to the union of the results of the one to one `pgr_astar`.
+- The extra ``end_vid`` in the result is used to distinguish to which path it belongs.
+
+:Example:
+
+.. literalinclude:: doc-astar.queries
+   :start-after: --q3
+   :end-before: --q4
+
+.. index::
+    single: aStar(Many to One) -- Proposed
+
+Many to One
+.......................................
+
+.. code-block:: none
+
+    pgr_aStar(edges_sql, starts_vid, end_vid, directed, heuristic, factor, epsilon) -- Proposed
+    RETURNS SET OF (seq, path_seq, start_vid, node, edge, cost, agg_cost) or EMPTY SET
+
+This signature finds the shortest path from each ``start_vid`` in  ``start_vids`` to one ``end_vid``:
+  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
+  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
+
+Using this signature, will load once the graph and perform several one to one `pgr_aStar`
+where the ending vertex is fixed.
+
+- The result is the union of the results of the one to one `pgr_aStar`.
+- The extra ``start_vid`` in the result is used to distinguish to which path it belongs.
+
+:Example:
+
+.. literalinclude:: doc-astar.queries
+   :start-after: --q4
+   :end-before: --q5
+
+
+
+.. index::
+    single: aStar(Many to Many) -- Proposed
+
+Many to Many
+.......................................
+
+.. code-block:: none
+
+    pgr_aStar(edges_sql, starts_vid, end_vids, directed, heuristic, factor, epsilon) -- Proposed
+    RETURNS SET OF (seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost) or EMPTY SET
+
+This signature finds the shortest path from each ``start_vid`` in  ``start_vids`` to each ``end_vid`` in ``end_vids``:
+  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
+  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
+
+Using this signature, will load once the graph and perform several one to Many `pgr_dijkstra`
+for all ``start_vids``.
+
+- The result is the union of the results of the one to one `pgr_dijkstra`.
+- The extra ``start_vid`` in the result is used to distinguish to which path it belongs.
+
+The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish to which path it belongs.
+
+:Example:
+
+.. literalinclude:: doc-astar.queries
+   :start-after: --q5
+   :end-before: --q6
+
+
+
+
+
+
+Description of the Signatures
+--------------------------------
+
+..
+    description of the edges_sql queries
+
+.. include:: pgRouting-concepts.rst
+    :start-after: xy_edges_sql_start
+    :end-before: xy_edges_sql_end
+
+
+Description of the parameters of the signatures
+.................................................
+
+================ ====================== =================================================
+Parameter        Type                   Description
+================ ====================== =================================================
+**edges_sql**    ``TEXT``               Edges SQL query as described above.
+**start_vid**    ``ANY-INTEGER``        Starting vertex identifier.
+**end_vid**      ``ANY-INTEGER``        Ending vertex identifier.
+**directed**     ``BOOLEAN``            - Optional.
+
+                                          - When ``false`` the graph is considered as Undirected.
+                                          - Default is ``true`` which considers the graph as Directed.
+
+**heuristic**    ``INTEGER``            (optional). Heuristic number. Current valid values 0~5. Default ``5``
+
+                                          - 0: h(v) = 0 (Use this value to compare with pgr_dijkstra)
+                                          - 1: h(v) abs(max(dx, dy))
+                                          - 2: h(v) abs(min(dx, dy))
+                                          - 3: h(v) = dx * dx + dy * dy
+                                          - 4: h(v) = sqrt(dx * dx + dy * dy)
+                                          - 5: h(v) = abs(dx) + abs(dy)
+
+**factor**       ``FLOAT``              (optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see :ref:`astar_factor`
+**epsilon**      ``FLOAT``              (optional). For less restricted results. :math:`epsilon >= 1`.  Default ``1``.
+================ ====================== =================================================
+
+.. include:: pgRouting-concepts.rst
+    :start-after: return_path_start
+    :end-before: return_path_end
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* :ref:`astar`
+* :doc:`sampledata`
+* http://www.boost.org/libs/graph/doc/astar_search.html
+* http://en.wikipedia.org/wiki/A*_search_algorithm
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/astar/pgr_aStarCost.rst b/doc/astar/pgr_aStarCost.rst
new file mode 100644
index 0000000..bc56f78
--- /dev/null
+++ b/doc/astar/pgr_aStarCost.rst
@@ -0,0 +1,234 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_aStarCost:
+
+pgr_aStarCost -- proposed
+===============================================================================
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_aStarCost`` — Returns the aggregate cost shortest path using :ref:`astar` algorithm.
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org//libs/graph/doc/astar_search.html
+
+   Boost Graph Inside
+
+.. rubric:: Availability: 2.4.0
+
+Signature Summary
+-----------------
+
+.. include:: proposed.rst
+   :start-after: begin-warning
+   :end-before: end-warning
+
+.. code-block:: none
+
+    pgr_aStarCost(edges_sql, start_vid, end_vid) -- Proposed
+    pgr_aStarCost(edges_sql, start_vid, end_vid, directed, heuristic, factor, epsilon) -- Proposed
+    pgr_aStarCost(edges_sql, start_vid, end_vids, directed, heuristic, factor, epsilon) -- Proposed
+    pgr_aStarCost(edges_sql, starts_vid, end_vid, directed, heuristic, factor, epsilon) -- Proposed
+    pgr_aStarCost(edges_sql, starts_vid, end_vids, directed, heuristic, factor, epsilon) -- Proposed
+
+    RETURNS SET OF (start_vid, end_vid, agg_cost) OR EMPTY SET
+
+
+Signatures
+-----------------
+
+
+.. index::
+    single: aStarCost(Minimal Signature) -- Proposed
+
+Minimal Signature
+...............................................................................
+
+.. code-block:: none
+
+    pgr_aStarCost(edges_sql, start_vid, end_vid)
+    RETURNS SET OF (start_vid, end_vid, agg_cost) OR EMPTY SET
+
+:Example: Using the defaults
+
+.. literalinclude:: doc-aStarCost.queries
+   :start-after: --q1
+   :end-before: --q2
+
+
+
+.. index::
+    single: aStarCost(One to One) -- Proposed
+
+One to One
+...............................................................................
+.. code-block:: none
+
+    pgr_aStarCost(edges_sql, start_vid, end_vid, directed, heuristic, factor, epsilon)
+    RETURNS SET OF (start_vid, end_vid, agg_cost) OR EMPTY SET
+
+:Example: Setting a Heuristic
+
+.. literalinclude:: doc-aStarCost.queries
+   :start-after: --q2
+   :end-before: --q3
+
+
+
+.. index::
+    single: aStarCost(One to Many) -- Proposed
+
+One to many
+.......................................
+
+.. code-block:: none
+
+    pgr_aStarCost(edges_sql, start_vid, end_vids, directed, heuristic, factor, epsilon) -- Proposed
+    RETURNS SET OF (start_vid, end_vid, agg_cost) OR EMPTY SET
+
+This signature finds a path from one ``start_vid`` to each ``end_vid`` in ``end_vids``:
+  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
+  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
+
+Using this signature, will load once the graph and perform a one to one `pgr_astar`
+where the starting vertex is fixed, and stop when all ``end_vids`` are reached.
+
+- The result is equivalent to the union of the results of the one to one `pgr_astar`.
+- The extra ``end_vid`` column in the result is used to distinguish to which path it belongs.
+
+:Example:
+
+.. literalinclude:: doc-aStarCost.queries
+   :start-after: --q3
+   :end-before: --q4
+
+.. index::
+    single: aStarCost(Many to One) -- Proposed
+
+Many to One
+.......................................
+
+.. code-block:: none
+
+    pgr_aStarCost(edges_sql, starts_vid, end_vid, directed, heuristic, factor, epsilon) -- Proposed
+    RETURNS SET OF (start_vid, end_vid, agg_cost) OR EMPTY SET
+
+This signature finds the shortest path from each ``start_vid`` in  ``start_vids`` to one ``end_vid``:
+  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
+  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
+
+Using this signature, will load once the graph and perform several one to one `pgr_aStar`
+where the ending vertex is fixed.
+
+- The result is the union of the results of the one to one `pgr_aStar`.
+- The extra ``start_vid`` column  in the result is used to distinguish to which path it belongs.
+
+:Example:
+
+.. literalinclude:: doc-aStarCost.queries
+   :start-after: --q4
+   :end-before: --q5
+
+
+
+.. index::
+    single: aStarCost(Many to Many) -- Proposed
+
+Many to Many
+.......................................
+
+.. code-block:: none
+
+    pgr_aStarCost(edges_sql, starts_vid, end_vids, directed, heuristic, factor, epsilon) -- Proposed
+    RETURNS SET OF (start_vid, end_vid, agg_cost) OR EMPTY SET
+
+This signature finds the shortest path from each ``start_vid`` in  ``start_vids`` to each ``end_vid`` in ``end_vids``:
+  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
+  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
+
+Using this signature, will load once the graph and perform several one to Many `pgr_dijkstra`
+for all ``start_vids``.
+
+- The result is the union of the results of the one to one `pgr_dijkstra`.
+- The extra ``start_vid`` in the result is used to distinguish to which path it belongs.
+
+The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish to which path it belongs.
+
+:Example:
+
+.. literalinclude:: doc-aStarCost.queries
+   :start-after: --q5
+   :end-before: --q6
+
+
+
+
+
+
+Description of the Signatures
+--------------------------------
+
+..
+    description of the edges_sql queries
+
+.. include:: pgRouting-concepts.rst
+    :start-after: xy_edges_sql_start
+    :end-before: xy_edges_sql_end
+
+
+Description of the parameters of the signatures
+.................................................
+
+================ ====================== =================================================
+Parameter        Type                   Description
+================ ====================== =================================================
+**edges_sql**    ``TEXT``               Edges SQL query as described above.
+**start_vid**    ``ANY-INTEGER``        Starting vertex identifier.
+**end_vid**      ``ANY-INTEGER``        Ending vertex identifier.
+**directed**     ``BOOLEAN``            - Optional.
+
+                                          - When ``false`` the graph is considered as Undirected.
+                                          - Default is ``true`` which considers the graph as Directed.
+
+**heuristic**    ``INTEGER``            (optional). Heuristic number. Current valid values 0~5. Default ``5``
+
+                                          - 0: h(v) = 0 (Use this value to compare with pgr_dijkstra)
+                                          - 1: h(v) abs(max(dx, dy))
+                                          - 2: h(v) abs(min(dx, dy))
+                                          - 3: h(v) = dx * dx + dy * dy
+                                          - 4: h(v) = sqrt(dx * dx + dy * dy)
+                                          - 5: h(v) = abs(dx) + abs(dy)
+
+**factor**       ``FLOAT``              (optional). For units manipulation. :math:`factor > 0`.  Default ``1``. See :ref:`astar_factor`
+**epsilon**      ``FLOAT``              (optional). For less restricted results. :math:`epsilon >= 1`.  Default ``1``.
+================ ====================== =================================================
+
+
+
+.. include:: pgRouting-concepts.rst
+    :start-after: return_cost_start
+    :end-before: return_cost_end
+
+
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* :ref:`astar`.
+* :doc:`sampledata` network.
+* http://www.boost.org/libs/graph/doc/astar_search.html
+* http://en.wikipedia.org/wiki/A*_search_algorithm
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/bdAstar/CMakeLists.txt b/doc/bdAstar/CMakeLists.txt
new file mode 100644
index 0000000..6450aeb
--- /dev/null
+++ b/doc/bdAstar/CMakeLists.txt
@@ -0,0 +1,14 @@
+
+SET(LOCAL_FILES
+    bdAstar-family.rst
+    pgr_bdAstarCost.rst
+    pgr_bdAstar.rst
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}")
+    list(APPEND LOCAL_DOC_FILES  ${PGR_DOCUMENTATION_SOURCE_DIR}/${f})
+endforeach()
+
+set(PgRouting_DOC_FILES ${PgRouting_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE)
+
diff --git a/doc/bdAstar/bdAstar-family.rst b/doc/bdAstar/bdAstar-family.rst
new file mode 100644
index 0000000..feae1b6
--- /dev/null
+++ b/doc/bdAstar/bdAstar-family.rst
@@ -0,0 +1,108 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _bdastar:
+
+Bidirectional A* - Family of functions
+===============================================================================
+
+.. index from here
+
+* :ref:`pgr_bdAstar` - Bidirectional A* algorithm for obtaining paths.
+* :ref:`pgr_bdAstarCost` - Bidirectional A* algorithm to calculate the cost of the paths.
+* :ref:`pgr_bdAstarCostMatrix` - Bidirectional A* algorithm to calculate a cost matrix of paths.
+
+.. index to here
+
+.. toctree::
+    :hidden:
+
+    pgr_bdAstar
+    pgr_bdAstarCost
+    pgr_bdAstarCostMatrix
+
+
+
+Synopsis
+-------------------------------------------------------------------------------
+
+Based on A* algorithm, the bidirectional search finds a shortest path from
+a starting vertex (``start_vid``) to an ending vertex (``end_vid``).
+It runs two simultaneous searches: one forward from the ``start_vid``, and one backward from the ``end_vid``,
+stopping when the two meet in the middle.
+This implementation can be used with a directed graph and an undirected graph.
+
+Characteristics
+-------------------------------------------------------------------------------
+
+The main Characteristics are:
+
+- Process is done only on edges with positive costs.
+- Values are returned when there is a path.
+
+- When the starting vertex and ending vertex are the same, there is no path.
+
+  - The `agg_cost` the non included values `(v, v)` is `0`
+
+- When the starting vertex and ending vertex are the different and there is no path:
+
+  - The `agg_cost` the non included values `(u, v)` is :math:`\infty`
+
+- Running time (worse case scenario): :math:`O((E + V) * \log V)`
+- For large graphs where there is a path bewtween the starting vertex and ending vertex:
+
+  - It is expected to terminate faster than pgr_astar 
+
+Description of the Signatures
+--------------------------------
+
+.. include:: pgRouting-concepts.rst
+    :start-after: xy_edges_sql_start
+    :end-before: xy_edges_sql_end
+
+.. parameters_begin
+
+Description of the parameters of the signatures
+.................................................
+
+================ ====================== =================================================
+Parameter        Type                   Description
+================ ====================== =================================================
+**edges_sql**    ``TEXT``               Edges SQL query as described above.
+**start_vid**    ``ANY-INTEGER``        Starting vertex identifier.
+**start_vids**   ``ARRAY[ANY-INTEGER]`` Starting vertices identifierers.
+**end_vid**      ``ANY-INTEGER``        Ending vertex identifier.
+**end_vids**     ``ARRAY[ANY-INTEGER]`` Ending vertices identifiers.
+**directed**     ``BOOLEAN``            - Optional.
+
+                                          - When ``false`` the graph is considered as Undirected.
+                                          - Default is ``true`` which considers the graph as Directed.
+
+**heuristic**    ``INTEGER``            (optional). Heuristic number. Current valid values 0~5. Default ``5``
+
+                                          - 0: h(v) = 0 (Use this value to compare with pgr_dijkstra)
+                                          - 1: h(v) abs(max(dx, dy))
+                                          - 2: h(v) abs(min(dx, dy))
+                                          - 3: h(v) = dx * dx + dy * dy
+                                          - 4: h(v) = sqrt(dx * dx + dy * dy)
+                                          - 5: h(v) = abs(dx) + abs(dy)
+
+**factor**       ``FLOAT``              (optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see :ref:`astar_factor`
+**epsilon**      ``FLOAT``              (optional). For less restricted results. :math:`epsilon >= 1`.  Default ``1``.
+================ ====================== =================================================
+
+.. parameters_end
+
+See Also
+-------------------------------------------------------------------------------
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/bdAstar/pgr_bdAstar.rst b/doc/bdAstar/pgr_bdAstar.rst
new file mode 100644
index 0000000..6ba3121
--- /dev/null
+++ b/doc/bdAstar/pgr_bdAstar.rst
@@ -0,0 +1,224 @@
+.. 
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_bdAstar:
+
+pgr_bdAstar
+===============================================================================
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_bdAstar`` — Returns the shortest path using A* algorithm.
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org//libs/graph
+
+   Boost Graph Inside
+
+.. rubric:: Availability:
+
+* pgr_bdAstar(one to one) 2.0.0, Signature change on 2.5.0
+* pgr_bdAstar(other signatures) 2.5.0
+
+
+Signature Summary
+-----------------
+
+.. code-block:: none
+
+    pgr_bdAstar(edges_sql, start_vid, end_vid)
+    pgr_bdAstar(edges_sql, start_vid, end_vid, directed [, heuristic, factor, epsilon])
+    RETURNS SET OF (seq, path_seq , node, edge, cost, agg_cost)
+      OR EMPTY SET
+
+.. include:: proposed.rst
+   :start-after: begin-warn-expr
+   :end-before: end-warn-expr
+
+.. code-block:: none
+
+    pgr_bdAstar(edges_sql, start_vid, end_vids [, directed, heuristic, factor, epsilon])
+    pgr_bdAstar(edges_sql, start_vids, end_vid [, directed, heuristic, factor, epsilon])
+    pgr_bdAstar(edges_sql, start_vids, end_vids [, directed, heuristic, factor, epsilon])
+
+    RETURNS SET OF (seq, path_seq [, start_vid] [, end_vid], node, edge, cost, agg_cost)
+    OR EMPTY SET
+
+Using these signatures, will load once the graph and perform several one to one `pgr_bdAstar`
+
+- The result is the union of the results of the one to one `pgr_bdAStar`.
+- The extra ``start_vid`` and/or ``end_vid`` in the result is used to distinguish to which path it belongs.
+
+
+.. rubric:: Avaliability
+
+* pgr_bdAstar(one to one) 2.0, signature change on 2.5
+* pgr_bdAstar(other signatures) 2.5
+
+
+
+Signatures
+-----------------
+
+
+.. index::
+    single: bdAstar(Minimal Use) -- New Signature
+
+
+Minimal Signature
+...............................................................................
+
+.. code-block:: none
+
+    pgr_bdAstar(edges_sql, start_vid, end_vid)
+    RETURNS SET OF (seq, path_seq, node, edge, cost, agg_cost)
+
+This usage finds the shortest path from the ``start_vid`` to the ``end_vid``
+  -  on a **directed** graph
+  -  with **heuristic**'s value 5
+  -  with **factor**'s value 1
+  -  with **epsilon**'s value 1
+
+:Example: Using the defaults
+
+.. literalinclude:: doc-pgr_bdAstar.queries
+   :start-after: -- q1
+   :end-before: -- q2
+
+
+
+.. index::
+    single: bdAstar(One to One) -- New Signature
+
+
+pgr_bdAstar One to One
+...............................................................................
+.. code-block:: none
+
+    pgr_bdAstar(edges_sql, start_vid, end_vid, directed [, heuristic, factor, epsilon])
+    RETURNS SET OF (seq, path_seq, node, edge, cost, agg_cost)
+
+This usage finds the shortest path from the ``start_vid`` to the ``end_vid`` allowing the user to choose
+    * **heuristic**,
+    * and/or **factor**
+    * and/or **epsilon**.
+
+.. NOTE::
+    In the One to One signature, because of the deprecated signature existence, it is compulsory to indicate if the graph is **directed** or **undirected**.
+
+:Example: Directed using Heuristic 2
+
+.. literalinclude:: doc-pgr_bdAstar.queries
+   :start-after: -- q2
+   :end-before: -- q3
+
+
+.. index::
+    single: bdAstar(One to Many) - Proposed
+
+pgr_bdAstar One to many
+.......................................
+
+.. code-block:: none
+
+    pgr_bdAstar(edges_sql, start_vid, end_vids [, directed, heuristic, factor, epsilon])
+    RETURNS SET OF (seq, path_seq, end_vid, node, edge, cost, agg_cost) or EMPTY SET
+
+This usage finds the shortest path from the ``start_vid`` to each ``end_vid`` in ``end_vids`` allowing the user to choose 
+    * if the graph is **directed** or **undirected**
+    * and/or **heuristic**,
+    * and/or **factor**
+    * and/or **epsilon**.
+
+
+:Example: Directed using Heuristic 3 and a factor of 3.5
+
+.. literalinclude:: doc-pgr_bdAstar.queries
+   :start-after: -- q3
+   :end-before: -- q4
+
+.. index::
+    single: bdAstar(Many to One) - Proposed
+
+
+pgr_bdAstar Many to One
+.......................................
+
+.. code-block:: none
+
+    pgr_bdAstar(edges_sql, start_vids, end_vid [, directed, heuristic, factor, epsilon])
+    RETURNS SET OF (seq, path_seq, start_vid, node, edge, cost, agg_cost) or EMPTY SET
+
+This usage finds the shortest path from each ``start_vid`` in ``start_vids`` to the ``end_vid`` allowing the user to choose 
+    * if the graph is **directed** or **undirected**
+    * and/or **heuristic**,
+    * and/or **factor**
+    * and/or **epsilon**.
+
+:Example: Undirected graph with Heuristic 4
+
+.. literalinclude:: doc-pgr_bdAstar.queries
+   :start-after: -- q4
+   :end-before: -- q5
+
+
+.. index::
+    single: bdAstar(Many to Many) - Proposed
+
+pgr_bdAstar Many to Many
+.......................................
+
+.. code-block:: none
+
+    pgr_bdAstar(edges_sql, start_vids, end_vids [, directed, heuristic, factor, epsilon])
+    RETURNS SET OF (seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost) or EMPTY SET
+
+This usage finds the shortest path from each ``start_vid`` in ``start_vids`` to each ``end_vid`` in ``end_vids`` allowing the user to choose 
+    * if the graph is **directed** or **undirected**
+    * and/or **heuristic**,
+    * and/or **factor**
+    * and/or **epsilon**.
+
+:Example: Directed graph with a factor of 0.5
+
+.. literalinclude:: doc-pgr_bdAstar.queries
+   :start-after: -- q5
+   :end-before: -- q6
+
+Description of the Signatures
+--------------------------------
+
+.. include:: pgRouting-concepts.rst
+    :start-after: xy_edges_sql_start
+    :end-before: xy_edges_sql_end
+
+.. include:: bdAstar-family.rst
+    :start-after: parameters_begin
+    :end-before: parameters_end
+
+.. include:: pgRouting-concepts.rst
+    :start-after: return_path_start
+    :end-before: return_path_end
+
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* :ref:`bdAstar`
+* :doc:`sampledata` network.
+* http://www.boost.org/libs/graph/doc/astar_search.html
+* http://en.wikipedia.org/wiki/A*_search_algorithm
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/bdAstar/pgr_bdAstarCost.rst b/doc/bdAstar/pgr_bdAstarCost.rst
new file mode 100644
index 0000000..4011d5e
--- /dev/null
+++ b/doc/bdAstar/pgr_bdAstarCost.rst
@@ -0,0 +1,214 @@
+.. 
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_bdAstarCost:
+
+pgr_bdAstarCost - Proposed
+===============================================================================
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_bdAstarCost`` — Returns the shortest path using A* algorithm.
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org//libs/graph
+
+   Boost Graph Inside
+
+.. rubric:: Availability: 2.5.0
+
+.. include:: proposed.rst
+   :start-after: begin-warn-expr
+   :end-before: end-warn-expr
+
+Signature Summary
+-----------------
+
+.. code-block:: none
+
+    pgr_bdAstarCost(edges_sql, start_vid, end_vid)
+    pgr_bdAstarCost(edges_sql, start_vid, end_vid [, directed , heuristic, factor, epsilon])
+    pgr_bdAstarCost(edges_sql, start_vid, end_vids [, directed, heuristic, factor, epsilon])
+    pgr_bdAstarCost(edges_sql, start_vids, end_vid [, directed, heuristic, factor, epsilon])
+    pgr_bdAstarCost(edges_sql, start_vids, end_vids [, directed, heuristic, factor, epsilon])
+
+    RETURNS SET OF (start_vid, end_vid, agg_cost)
+    OR EMPTY SET
+
+
+Using these signatures, will load once the graph and perform several one to one `pgr_bdAstarCost`
+
+- The result is the union of the results of the one to one `pgr_bdAstarCost`.
+- The extra ``start_vid`` and/or ``end_vid`` in the result is used to distinguish to which path it belongs.
+
+
+
+
+
+Signatures
+-----------------
+
+
+.. index::
+    single: bdAstarCost(Minimal Use) -- New Signature
+
+
+Minimal Signature
+...............................................................................
+
+.. code-block:: none
+
+    pgr_bdAstarCost(edges_sql, start_vid, end_vid)
+    RETURNS SET OF (start_vid, end_vid, agg_cost)
+
+This usage finds the shortest path from the ``start_vid`` to the ``end_vid``
+  -  on a **directed** graph
+  -  with **heuristic**'s value 5
+  -  with **factor**'s value 1
+  -  with **epsilon**'s value 1
+
+:Example: Using the defaults
+
+.. literalinclude:: doc-pgr_bdAstarCost.queries
+   :start-after: -- q1
+   :end-before: -- q2
+
+
+
+.. index::
+    single: bdAstarCost(One to One) -- New Signature
+
+
+pgr_bdAstarCost One to One
+...............................................................................
+.. code-block:: none
+
+    pgr_bdAstarCost(edges_sql, start_vid, end_vid [, directed, heuristic, factor, epsilon])
+    RETURNS SET OF (start_vid, end_vid, agg_cost)
+
+This usage finds the shortest path from the ``start_vid`` to each ``end_vid`` in ``end_vids`` allowing the user to choose 
+    * if the graph is **directed** or **undirected**
+    * **heuristic**,
+    * and/or **factor**
+    * and/or **epsilon**.
+
+.. NOTE::
+    In the One to One signature, because of the deprecated signature existence, it is compulsory to indicate if the graph is **directed** or **undirected**.
+
+:Example: Directed using Heuristic 2
+
+.. literalinclude:: doc-pgr_bdAstarCost.queries
+   :start-after: -- q2
+   :end-before: -- q3
+
+
+.. index::
+    single: bdAstarCost(One to Many) - Proposed
+
+pgr_bdAstarCost One to many
+.......................................
+
+.. code-block:: none
+
+    pgr_bdAstarCost(edges_sql, start_vid, end_vids [, directed, heuristic, factor, epsilon])
+    RETURNS SET OF (start_vid, end_vid, agg_cost)
+
+This usage finds the shortest path from the ``start_vid`` to each ``end_vid`` in ``end_vids`` allowing the user to choose 
+    * if the graph is **directed** or **undirected**
+    * and/or **heuristic**,
+    * and/or **factor**
+    * and/or **epsilon**.
+
+
+:Example: Directed using Heuristic 3 and a factor of 3.5
+
+.. literalinclude:: doc-pgr_bdAstarCost.queries
+   :start-after: -- q3
+   :end-before: -- q4
+
+.. index::
+    single: bdAstarCost(Many to One) - Proposed
+
+
+pgr_bdAstarCost Many to One
+.......................................
+
+.. code-block:: none
+
+    pgr_bdAstarCost(edges_sql, start_vids, end_vid [, directed, heuristic, factor, epsilon])
+    RETURNS SET OF (start_vid, end_vid, agg_cost)
+
+This usage finds the shortest path from each ``start_vid`` in ``start_vids`` to the ``end_vid`` allowing the user to choose 
+    * if the graph is **directed** or **undirected**
+    * and/or **heuristic**,
+    * and/or **factor**
+    * and/or **epsilon**.
+
+:Example: Undirected graph with Heuristic 4
+
+.. literalinclude:: doc-pgr_bdAstarCost.queries
+   :start-after: -- q4
+   :end-before: -- q5
+
+
+.. index::
+    single: bdAstarCost(Many to Many) - Proposed
+
+pgr_bdAstarCost Many to Many
+.......................................
+
+.. code-block:: none
+
+    pgr_bdAstarCost(edges_sql, start_vids, end_vids [, directed, heuristic, factor, epsilon])
+    RETURNS SET OF (start_vid, end_vid, agg_cost)
+
+This usage finds the shortest path from each ``start_vid`` in ``start_vids`` to each ``end_vid`` in ``end_vids`` allowing the user to choose 
+    * if the graph is **directed** or **undirected**
+    * and/or **heuristic**,
+    * and/or **factor**
+    * and/or **epsilon**.
+
+:Example: Directed graph with a factor of 0.5
+
+.. literalinclude:: doc-pgr_bdAstarCost.queries
+   :start-after: -- q5
+   :end-before: -- q6
+
+Description of the Signatures
+--------------------------------
+
+.. include:: pgRouting-concepts.rst
+    :start-after: xy_edges_sql_start
+    :end-before: xy_edges_sql_end
+
+.. include:: bdAstar-family.rst
+    :start-after: parameters_begin
+    :end-before: parameters_end
+
+.. include:: pgRouting-concepts.rst
+    :start-after: return_cost_start
+    :end-before: return_cost_end
+
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* :ref:`bdAstar`
+* :doc:`sampledata` network.
+* `Migration Guide <https://github.com/cvvergara/pgrouting/wiki/Migration-Guide#pgr_bdastar>`_
+* http://www.boost.org/libs/graph/doc/astar_search.html
+* http://en.wikipedia.org/wiki/A*_search_algorithm
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/bdDijkstra/CMakeLists.txt b/doc/bdDijkstra/CMakeLists.txt
new file mode 100644
index 0000000..ebf4cea
--- /dev/null
+++ b/doc/bdDijkstra/CMakeLists.txt
@@ -0,0 +1,14 @@
+
+SET(LOCAL_FILES
+    bdDijkstra-family.rst
+    pgr_bdDijkstraCost.rst
+    pgr_bdDijkstra.rst
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}")
+    list(APPEND LOCAL_DOC_FILES  ${PGR_DOCUMENTATION_SOURCE_DIR}/${f})
+endforeach()
+
+set(PgRouting_DOC_FILES ${PgRouting_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE)
+
diff --git a/doc/bdDijkstra/bdDijkstra-family.rst b/doc/bdDijkstra/bdDijkstra-family.rst
new file mode 100644
index 0000000..0c83420
--- /dev/null
+++ b/doc/bdDijkstra/bdDijkstra-family.rst
@@ -0,0 +1,68 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _bddijkstra:
+
+Bidirectional Dijkstra - Family of functions
+===============================================================================
+
+.. index from here
+
+* :ref:`pgr_bdDijkstra` - Bidirectional Dijkstra algorithm for the shortest paths.
+* :ref:`pgr_bdDijkstraCost` - Bidirectional Dijkstra to calculate the cost of the shortest paths
+* :ref:`pgr_bdDijkstraCostMatrix` - Bidirectional Dijkstra algorithm  to create a matrix of costs of the shortest paths.
+
+.. index to here
+
+.. toctree::
+    :hidden:
+
+    pgr_bdDijkstra
+    pgr_bdDijkstraCost
+    pgr_bdDijkstraCostMatrix
+
+
+
+Synopsis
+-------------------------------------------------------------------------------
+
+Based on Dijkstra's algorithm, the bidirectional search finds a shortest path
+a starting vertex (``start_vid``) to an ending vertex (``end_vid``).
+It runs two simultaneous searches: one forward from the source, and one backward from the target,
+stopping when the two meet in the middle.
+This implementation can be used with a directed graph and an undirected graph.
+
+Characteristics
+-------------------------------------------------------------------------------
+
+The main Characteristics are:
+
+- Process is done only on edges with positive costs.
+- Values are returned when there is a path.
+
+- When the starting vertex and ending vertex are the same, there is no path.
+
+  - The `agg_cost` the non included values `(v, v)` is `0`
+
+- When the starting vertex and ending vertex are the different and there is no path:
+
+  - The `agg_cost` the non included values `(u, v)` is :math:`\infty`
+
+- Running time (worse case scenario): :math:`O((V \log V + E))`
+- For large graphs where there is a path bewtween the starting vertex and ending vertex:
+
+  - It is expected to terminate faster than pgr_dijkstra 
+
+See Also
+-------------------------------------------------------------------------------
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/bdDijkstra/pgr_bdDijkstra.rst b/doc/bdDijkstra/pgr_bdDijkstra.rst
new file mode 100644
index 0000000..6834a93
--- /dev/null
+++ b/doc/bdDijkstra/pgr_bdDijkstra.rst
@@ -0,0 +1,219 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_bdDijkstra:
+
+pgr_bdDijkstra
+===============================================================================
+
+``pgr_bdDijkstra`` — Returns the shortest path(s) using Bidirectional Dijkstra algorithm.
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph/doc
+
+   Boost Graph Inside
+
+.. rubric:: Availability:
+
+* pgr_bdDijkstra(one to one) 2.0.0, Signature changed 2.4.0
+* pgr_bdDijkstra(other signatures) 2.5.0
+
+Signature Summary
+-----------------
+
+.. code-block:: none
+
+    pgr_bdDijkstra(edges_sql, start_vid,  end_vid)
+    pgr_bdDijkstra(edges_sql, start_vid, end_vid, directed)
+    RETURNS SET OF (seq, path_seq, node, edge, cost, agg_cost)
+    OR EMPTY SET
+
+.. include:: proposed.rst
+   :start-after: begin-warn-expr
+   :end-before: end-warn-expr
+
+.. code-block:: none
+
+    pgr_bdDijkstra(edges_sql, start_vid, end_vids, directed)
+    pgr_bdDijkstra(edges_sql, start_vids, end_vid, directed)
+    pgr_bdDijkstra(edges_sql, start_vids, end_vids, directed)
+
+    RETURNS SET OF (seq, path_seq [, start_vid] [, end_vid], node, edge, cost, agg_cost)
+    OR EMPTY SET
+
+
+
+
+Signatures
+-------------------------------------------------------------------------------
+
+.. index::
+    single: bdDijkstra(Minimal Use)
+
+Minimal signature
+.......................................
+
+.. code-block:: none
+
+    pgr_bdDijkstra(edges_sql, start_vid, end_vid)
+    RETURNS SET OF (seq, path_seq, node, edge, cost, agg_cost) or EMPTY SET
+
+The minimal signature is for a **directed** graph from one ``start_vid`` to one ``end_vid``:
+
+:Example:
+
+.. literalinclude:: doc-pgr_bdDijkstra.queries
+   :start-after: -- q1
+   :end-before: -- q2
+
+
+.. index::
+    single: bdDijkstra(One to One)
+
+pgr_bdDijkstra One to One
+.......................................
+
+.. code-block:: none
+
+    pgr_bdDijkstra(edges_sql, start_vid, end_vid, directed)
+    RETURNS SET OF (seq, path_seq, node, edge, cost, agg_cost) or EMPTY SET
+
+This signature finds the shortest path from one ``start_vid`` to one ``end_vid``:
+
+-  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
+-  on an **undirected** graph when ``directed`` flag is set to ``false``.
+
+:Example:
+
+.. literalinclude:: doc-pgr_bdDijkstra.queries
+   :start-after: -- q2
+   :end-before: -- q3
+
+
+.. index::
+    single: bdDijkstra(One to Many) - Proposed
+
+pgr_bdDijkstra One to many
+.......................................
+
+.. code-block:: none
+
+    pgr_bdDijkstra(edges_sql, start_vid, end_vids, directed)
+    RETURNS SET OF (seq, path_seq, end_vid, node, edge, cost, agg_cost) or EMPTY SET
+
+This signature finds the shortest path from one ``start_vid`` to each ``end_vid`` in ``end_vids``:
+
+-  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
+-  on an **undirected** graph when ``directed`` flag is set to ``false``.
+
+Using this signature, will load once the graph and perform a one to one `pgr_dijkstra`
+where the starting vertex is fixed, and stop when all ``end_vids`` are reached.
+
+- The result is equivalent to the union of the results of the one to one `pgr_dijkstra`.
+- The extra ``end_vid`` in the result is used to distinguish to which path it belongs.
+
+:Example:
+
+.. literalinclude:: doc-pgr_bdDijkstra.queries
+   :start-after: -- q3
+   :end-before: -- q4
+
+.. index::
+    single: bdDijkstra(Many to One) - Proposed
+
+
+pgr_bdDijkstra Many to One
+.......................................
+
+.. code-block:: none
+
+    pgr_bdDijkstra(edges_sql, start_vids, end_vid, directed)
+    RETURNS SET OF (seq, path_seq, start_vid, node, edge, cost, agg_cost) or EMPTY SET
+
+This signature finds the shortest path from each ``start_vid`` in  ``start_vids`` to one ``end_vid``:
+
+-  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
+-  on an **undirected** graph when ``directed`` flag is set to ``false``.
+
+Using this signature, will load once the graph and perform several one to one `pgr_dijkstra`
+where the ending vertex is fixed.
+
+- The result is the union of the results of the one to one `pgr_dijkstra`.
+- The extra ``start_vid`` in the result is used to distinguish to which path it belongs.
+
+:Example:
+
+.. literalinclude:: doc-pgr_bdDijkstra.queries
+   :start-after: -- q4
+   :end-before: -- q5
+
+
+.. index::
+    single: bdDijkstra(Many to Many) - Proposed
+
+pgr_bdDijkstra Many to Many
+.......................................
+
+.. code-block:: none
+
+    pgr_bdDijkstra(edges_sql, start_vids, end_vids, directed)
+    RETURNS SET OF (seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost) or EMPTY SET
+
+This signature finds the shortest path from each ``start_vid`` in  ``start_vids`` to each ``end_vid`` in ``end_vids``:
+
+-  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
+-  on an **undirected** graph when ``directed`` flag is set to ``false``.
+
+Using this signature, will load once the graph and perform several one to Many `pgr_dijkstra`
+for all ``start_vids``.
+
+- The result is the union of the results of the one to one `pgr_dijkstra`.
+- The extra ``start_vid`` in the result is used to distinguish to which path it belongs.
+
+The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish to which path it belongs.
+
+:Example:
+
+.. literalinclude:: doc-pgr_bdDijkstra.queries
+   :start-after: -- q5
+   :end-before: -- q6
+
+
+
+Description of the Signatures
+-------------------------------------------------------------------------------
+
+.. include:: pgRouting-concepts.rst
+    :start-after: basic_edges_sql_start
+    :end-before: basic_edges_sql_end
+
+.. include:: pgr_dijkstra.rst
+    :start-after: pgr_dijkstra_parameters_start
+    :end-before: pgr_dijkstra_parameters_end
+
+.. include:: pgRouting-concepts.rst
+    :start-after: return_path_start
+    :end-before: return_path_end
+
+
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* The queries use the :doc:`sampledata` network.
+* :ref:`bdDijkstra`
+* http://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/EPP%20shortest%20path%20algorithms.pdf
+* https://en.wikipedia.org/wiki/Bidirectional_search
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/bdDijkstra/pgr_bdDijkstraCost.rst b/doc/bdDijkstra/pgr_bdDijkstraCost.rst
new file mode 100644
index 0000000..584442c
--- /dev/null
+++ b/doc/bdDijkstra/pgr_bdDijkstraCost.rst
@@ -0,0 +1,206 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_bdDijkstraCost:
+
+pgr_bdDijkstraCost - Proposed
+===============================================================================
+
+``pgr_bdDijkstraCost`` — Returns the shortest path(s)'s cost using Bidirectional Dijkstra algorithm.
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph/doc
+
+   Boost Graph Inside
+
+.. rubric:: Availability: 2.5.0
+
+.. include:: proposed.rst
+   :start-after: begin-warn-expr
+   :end-before: end-warn-expr
+
+
+Signature Summary
+-----------------
+
+
+.. code-block:: none
+
+    pgr_dijkstraCost(edges_sql, start_vid,  end_vid)
+    pgr_bdDijkstraCost(edges_sql, start_vid, end_vid, directed)
+    pgr_bdDijkstraCost(edges_sql, start_vid, end_vids, directed)
+    pgr_bdDijkstraCost(edges_sql, start_vids, end_vid, directed)
+    pgr_bdDijkstraCost(edges_sql, start_vids, end_vids, directed)
+
+    RETURNS SET OF (start_vid, end_vid, agg_cost)
+    OR EMPTY SET
+
+
+Signatures
+-------------------------------------------------------------------------------
+
+.. index::
+    single: bdDijkstraCost(Minimal Use) - Proposed
+
+Minimal signature
+.......................................
+
+.. code-block:: none
+
+    pgr_bdDijkstraCost(edges_sql, start_vid, end_vid)
+    RETURNS SET OF (seq, path_seq, node, edge, cost, agg_cost) or EMPTY SET
+
+The minimal signature is for a **directed** graph from one ``start_vid`` to one ``end_vid``:
+
+:Example:
+
+.. literalinclude:: doc-pgr_bdDijkstraCost.queries
+   :start-after: -- q1
+   :end-before: -- q2
+
+
+.. index::
+    single: bdDijkstraCost(One to One)
+
+pgr_bdDijkstraCost One to One
+.......................................
+
+.. code-block:: none
+
+    pgr_bdDijkstraCost(edges_sql, start_vid, end_vid, directed)
+    RETURNS SET OF (seq, path_seq, node, edge, cost, agg_cost) or EMPTY SET
+
+This signature finds the shortest path from one ``start_vid`` to one ``end_vid``:
+  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
+  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
+
+:Example:
+
+.. literalinclude:: doc-pgr_bdDijkstra.queries
+   :start-after: -- q2
+   :end-before: -- q3
+
+
+.. index::
+    single: bdDijkstraCost(One to Many) - Proposed
+
+pgr_bdDijkstraCost One to many
+.......................................
+
+.. code-block:: none
+
+    pgr_bdDijkstra(edges_sql, start_vid, end_vids, directed)
+    RETURNS SET OF (seq, path_seq, end_vid, node, edge, cost, agg_cost) or EMPTY SET
+
+This signature finds the shortest path from one ``start_vid`` to each ``end_vid`` in ``end_vids``:
+  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
+  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
+
+Using this signature, will load once the graph and perform a one to one `pgr_dijkstra`
+where the starting vertex is fixed, and stop when all ``end_vids`` are reached.
+
+  - The result is equivalent to the union of the results of the one to one `pgr_dijkstra`.
+  - The extra ``end_vid`` in the result is used to distinguish to which path it belongs.
+
+:Example:
+
+.. literalinclude:: doc-pgr_bdDijkstraCost.queries
+   :start-after: -- q3
+   :end-before: -- q4
+
+.. index::
+    single: bdDijkstraCost(Many to One) - Proposed
+
+
+pgr_bdDijkstraCost Many to One
+.......................................
+
+.. code-block:: none
+
+    pgr_bdDijkstra(edges_sql, start_vids, end_vid, directed)
+    RETURNS SET OF (seq, path_seq, start_vid, node, edge, cost, agg_cost) or EMPTY SET
+
+This signature finds the shortest path from each ``start_vid`` in  ``start_vids`` to one ``end_vid``:
+  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
+  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
+
+Using this signature, will load once the graph and perform several one to one `pgr_dijkstra`
+where the ending vertex is fixed.
+
+  - The result is the union of the results of the one to one `pgr_dijkstra`.
+  - The extra ``start_vid`` in the result is used to distinguish to which path it belongs.
+
+:Example:
+
+.. literalinclude:: doc-pgr_bdDijkstra.queries
+   :start-after: -- q4
+   :end-before: -- q5
+
+
+.. index::
+    single: bdDijkstraCost(Many to Many) - Proposed
+
+pgr_bdDijkstraCost Many to Many
+.......................................
+
+.. code-block:: none
+
+    pgr_bdDijkstra(edges_sql, start_vids, end_vids, directed)
+    RETURNS SET OF (seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost) or EMPTY SET
+
+This signature finds the shortest path from each ``start_vid`` in  ``start_vids`` to each ``end_vid`` in ``end_vids``:
+  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
+  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
+
+Using this signature, will load once the graph and perform several one to Many `pgr_dijkstra`
+for all ``start_vids``.
+
+  - The result is the union of the results of the one to one `pgr_dijkstra`.
+  - The extra ``start_vid`` in the result is used to distinguish to which path it belongs.
+
+The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish to which path it belongs.
+
+:Example:
+
+.. literalinclude:: doc-pgr_bdDijkstra.queries
+   :start-after: -- q5
+   :end-before: -- q6
+
+
+
+Description of the Signatures
+-------------------------------------------------------------------------------
+
+.. include::  pgRouting-concepts.rst
+    :start-after: basic_edges_sql_start
+    :end-before: basic_edges_sql_end
+
+.. include:: pgr_dijkstra.rst
+    :start-after: pgr_dijkstra_parameters_start
+    :end-before: pgr_dijkstra_parameters_end
+
+.. include::  pgRouting-concepts.rst
+    :start-after: return_cost_start
+    :end-before: return_cost_end
+
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* The queries use the :doc:`sampledata` network.
+* :ref:`pgr_bdDijkstra`
+* http://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/EPP%20shortest%20path%20algorithms.pdf
+* https://en.wikipedia.org/wiki/Bidirectional_search
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/common/CMakeLists.txt b/doc/common/CMakeLists.txt
new file mode 100644
index 0000000..d96ac26
--- /dev/null
+++ b/doc/common/CMakeLists.txt
@@ -0,0 +1,15 @@
+
+SET(LOCAL_FILES
+    cost_result.rst
+    geom_result.rst
+    pgr_version.rst
+    types_index.rst
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}")
+    list(APPEND LOCAL_DOC_FILES  ${PGR_DOCUMENTATION_SOURCE_DIR}/${f})
+endforeach()
+
+set(PgRouting_DOC_FILES ${PgRouting_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE)
+
diff --git a/doc/common/cost_result.rst b/doc/common/cost_result.rst
new file mode 100644
index 0000000..a241456
--- /dev/null
+++ b/doc/common/cost_result.rst
@@ -0,0 +1,92 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _type_cost_result:
+
+pgr_costResult[]
+===============================================================================
+
+.. index::
+    single: pgr_costResult[]
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_costResult[]`` — A set of records to describe a path result with cost attribute.
+
+
+Description
+-------------------------------------------------------------------------------
+
+.. code-block:: sql
+
+    CREATE TYPE pgr_costResult AS
+    (
+        seq integer,
+        id1 integer,
+        id2 integer,
+        cost float8
+    );
+
+:seq:   sequential ID indicating the path order
+:id1:   generic name, to be specified by the function, typically the node id
+:id2:   generic name, to be specified by the function, typically the edge id
+:cost:  cost attribute
+
+
+.. _type_cost_result3:
+
+pgr_costResult3[] - Multiple Path Results with Cost
+===============================================================================
+
+.. index::
+    single: pgr_costResult3[]
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_costResult3[]`` — A set of records to describe a path result with cost attribute.
+
+
+Description
+-------------------------------------------------------------------------------
+
+.. code-block:: sql
+
+    CREATE TYPE pgr_costResult3 AS
+    (
+        seq integer,
+        id1 integer,
+        id2 integer,
+        id3 integer,
+        cost float8
+    );
+
+:seq:   sequential ID indicating the path order
+:id1:   generic name, to be specified by the function, typically the path id
+:id2:   generic name, to be specified by the function, typically the node id
+:id3:   generic name, to be specified by the function, typically the edge id
+:cost:  cost attribute
+
+
+.. rubric:: History
+
+* New in version 2.0.0
+* Replaces ``path_result``
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* :ref:`introduction`
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/common/geom_result.rst b/doc/common/geom_result.rst
new file mode 100644
index 0000000..43f7efd
--- /dev/null
+++ b/doc/common/geom_result.rst
@@ -0,0 +1,58 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _type_geom_result:
+
+pgr_geomResult[]
+===============================================================================
+
+.. index::
+	single: pgr_geomResult[]
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_geomResult[]`` — A set of records to describe a path result with geometry attribute.
+
+
+Description
+-------------------------------------------------------------------------------
+
+.. code-block:: sql
+
+    CREATE TYPE pgr_geomResult AS
+    (
+        seq integer,
+        id1 integer,
+        id2 integer,
+        geom geometry
+    );
+
+:seq:   sequential ID indicating the path order
+:id1:   generic name, to be specified by the function
+:id2:   generic name, to be specified by the function
+:geom:  geometry attribute
+
+
+.. rubric:: History
+
+* New in version 2.0.0
+* Replaces ``geoms``
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* :ref:`introduction`
+
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/common/pgr_version.rst b/doc/common/pgr_version.rst
new file mode 100644
index 0000000..c0e9c7a
--- /dev/null
+++ b/doc/common/pgr_version.rst
@@ -0,0 +1,83 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_version:
+
+pgr_version
+===============================================================================
+
+.. index::
+	single: version()
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_version`` — Query for pgRouting version information.
+
+
+Synopsis
+-------------------------------------------------------------------------------
+
+Returns a table with pgRouting version information.
+
+.. code-block:: sql
+
+	table() pgr_version();
+
+
+Description
+-------------------------------------------------------------------------------
+
+Returns a table with:
+
+===========  =========== ===============================
+Column        Type       Description
+===========  =========== ===============================
+**version**  ``varchar`` pgRouting version
+**tag**      ``varchar`` Git tag of pgRouting build
+**hash**     ``varchar`` Git hash of pgRouting build
+**branch**   ``varchar`` Git branch of pgRouting build
+**boost**    ``varchar`` Boost version
+===========  =========== ===============================
+
+
+.. rubric:: History
+
+* New in version 2.0.0
+
+
+Examples
+-------------------------------------------------------------------------------
+
+* Query for full version string
+
+.. literalinclude:: doc-pgr_version.queries
+   :start-after: -- q1
+   :end-before: -- q2
+
+
+
+* Query for ``version`` and ``boost`` attribute
+
+.. code-block:: sql
+
+    SELECT version, boost FROM pgr_version();
+
+      version  | boost
+    -----------+--------
+     2.2.0-dev | 1.49.0
+    (1 row)
+
+See Also
+-------------------------------------------------------------------------------
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/common/types_index.rst b/doc/common/types_index.rst
new file mode 100644
index 0000000..788d545
--- /dev/null
+++ b/doc/common/types_index.rst
@@ -0,0 +1,35 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _data_types:
+
+pgRouting Data Types
+===============================================================================
+
+The following are commonly used data types for some of the pgRouting functions.
+
+  -  :ref:`type_cost_result` -  A set of records to describe a path result with cost attribute.
+  -  :ref:`pgr_costResult3[] <type_cost_result3>` - A set of records to describe a path result with cost attribute.
+  -  :ref:`pgr_geomResult <type_geom_result>` - A set of records to describe a path result with geometry attribute.
+
+
+
+.. toctree::
+   :hidden:
+
+	pgr_costResult[] - Path Result with Cost <cost_result>
+	pgr_geomResult[] - Path Result with Geometry  <geom_result>
+
+See Also
+-------------------------------------------------------------------------------
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/components/CMakeLists.txt b/doc/components/CMakeLists.txt
new file mode 100644
index 0000000..6e0453f
--- /dev/null
+++ b/doc/components/CMakeLists.txt
@@ -0,0 +1,18 @@
+
+SET(LOCAL_FILES
+    components-family.rst
+	pgr_connectedComponents.rst
+	pgr_strongComponents.rst
+	pgr_biconnectedComponents.rst
+	pgr_articulationPoints.rst
+	pgr_bridges.rst
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}")
+    list(APPEND LOCAL_DOC_FILES  ${PGR_DOCUMENTATION_SOURCE_DIR}/${f})
+endforeach()
+
+add_subdirectory("images")
+set(PgRouting_DOC_FILES ${PgRouting_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE)
+set(PgRouting_IMG_FILES ${PgRouting_IMG_FILES} PARENT_SCOPE)
diff --git a/doc/components/components-family.rst b/doc/components/components-family.rst
new file mode 100644
index 0000000..0e7b5c3
--- /dev/null
+++ b/doc/components/components-family.rst
@@ -0,0 +1,488 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _components:
+
+Components - Family of functions
+===============================================================================
+
+
+.. include:: proposed.rst
+   :start-after: begin-warn-expr
+   :end-before: end-warn-expr
+
+.. index from here
+
+* :ref:`pgr_connectedComponents` - Return the connected components of an undirected graph.
+* :ref:`pgr_strongComponents` - Return the strongly connected components of a directed graph.
+* :ref:`pgr_biconnectedComponents` - Return the biconnected components of an undirected graph.
+* :ref:`pgr_articulationPoints` - Return the articulation points of an undirected graph.
+* :ref:`pgr_bridges` - Return the bridges of an undirected graph.
+
+.. index to here
+
+
+.. toctree::
+    :hidden:
+
+    pgr_connectedComponents
+    pgr_strongComponents
+    pgr_biconnectedComponents
+    pgr_articulationPoints
+    pgr_bridges
+
+
+The problem definition
+-----------------------------------------------
+
+.. rubric:: Connected components
+
+A connected component of an undirected graph is a set of vertices that are all reachable
+from each other.
+
+**Notice**: This problem defines on an undirected graph.
+
+Given the following query:
+
+
+pgr_connectedComponentsV(:math:`sql`)
+
+where  :math:`sql = \{(id_i, source_i, target_i, cost_i, reverse\_cost_i)\}`
+
+and
+
+  - :math:`source = \bigcup source_i`,
+  - :math:`target = \bigcup target_i`,
+
+The graphs are defined as follows:
+
+The weighted undirected graph, :math:`G(V,E)`, is definied by:
+
+* the set of vertices  :math:`V`
+
+  - :math:`V = source \cup target`
+
+
+* the set of edges :math:`E`
+
+  - :math:`E = \begin{cases} &\{(source_i, target_i, cost_i) \text{ when } cost >=0 \} \\ \cup &\{(target_i, source_i, cost_i) \text{ when } cost >=0 \}  &\quad  \text{ if } reverse\_cost = \varnothing \\ \\ &\{(source_i, target_i, cost_i) \text{ when } cost >=0 \} \\ \cup &\{(target_i, source_i, cost_i) \text{ when } cost >=0 \} \\ \cup &\{(target_i, source_i, reverse\_cost_i) \text{ when } reverse\_cost_i >=0)\} \\ \cup &\{(source_i, target_i, reverse\_cost_i) \text{ when } reverse\_co [...]
+
+
+Given:
+
+  - :math:`G(V,E)`
+
+Then:
+
+.. math:: \text{pgr_connectedComponentsV}(sql) =
+  \begin{cases}
+  \text{all connected components } \boldsymbol{\pi} \text{ in } G(V,E) &\quad \text{if } \exists  \boldsymbol{\pi}  \\
+  \varnothing &\quad \text{otherwise} \\
+  \end{cases}
+
+:math:`\boldsymbol{\pi} = \{(component_i, n\_seq_i, node_i)\}`
+
+where:
+  - :math:`component_i = \min \{node_j | node_j \in component_i\}`
+  - :math:`n\_seq_i` is a sequential value starting from **1** in a component.
+  - :math:`node_i \in component_i`
+  - The returned values are ordered:
+
+    - `component` ascending
+    - `node` ascending
+
+Example:
+  - The first component is composed of nodes ``0``, ``1`` and ``4``.
+  - The second component is composed of node ``3``.
+  - The third component is composed of nodes ``2`` and ``5``.
+
+.. image:: images/connected_components.jpeg
+   :width: 280px
+   :height: 323px
+
+
+.. rubric:: Strongly connected components
+
+A strongly connected component of a directed graph is a set of vertices that are all reachable
+from each other.
+
+**Notice**: This problem defines on a directed graph.
+
+Given the following query:
+
+
+pgr_strongComponentsV(:math:`sql`)
+
+where  :math:`sql = \{(id_i, source_i, target_i, cost_i, reverse\_cost_i)\}`
+
+and
+
+  - :math:`source = \bigcup source_i`,
+  - :math:`target = \bigcup target_i`,
+
+The graphs are defined as follows:
+
+The weighted directed graph, :math:`G_d(V,E)`, is definied by:
+
+* the set of vertices  :math:`V`
+
+  - :math:`V = source \cup target \cup {start_{vid}} \cup  {end_{vid}}`
+
+* the set of edges :math:`E`
+
+  - :math:`E = \begin{cases} &\{(source_i, target_i, cost_i) \text{ when } cost >=0 \} &\quad  \text{ if } reverse\_cost = \varnothing \\ \\ &\{(source_i, target_i, cost_i) \text{ when } cost >=0 \} \\ \cup &\{(target_i, source_i, reverse\_cost_i) \text{ when } reverse\_cost_i >=0)\} &\quad \text{ if } reverse\_cost \neq \varnothing \\ \end{cases}`
+
+
+Given:
+
+  - :math:`G(V,E)`
+
+Then:
+
+.. math:: \text{pgr_strongComponentsV}(sql) =
+  \begin{cases}
+  \text{all strongly connected components } \boldsymbol{\pi} \text{ in } G(V,E) &\quad \text{if } \exists  \boldsymbol{\pi}  \\
+  \varnothing &\quad \text{otherwise} \\
+  \end{cases}
+
+:math:`\boldsymbol{\pi} = \{(component_i, n\_seq_i, node_i)\}`
+
+where:
+  - :math:`component_i = \min {node_j | node_j \in component_i}`
+  - :math:`n\_seq_i` is a sequential value starting from **1** in a component.
+  - :math:`node_i \in component_i`
+  - The returned values are ordered:
+
+    - `component` ascending
+    - `node` ascending
+
+Example:
+  - The first component is composed of nodes ``1``, ``2`` and ``4``.
+  - The second component is composed of node ``0``.
+  - The third component is composed of node ``3``.
+  - The fourth component is composed of node ``5``.
+  - The fifth component is composed of node ``6``.
+
+.. image:: images/strong_components.jpeg
+   :width: 270px
+   :height: 323px
+
+.. rubric:: Biconnected components
+
+The biconnected components of an undirected graph are the maximal subsets of vertices such that the removal of a vertex from 
+particular component will not disconnect the component. Unlike connected components, vertices may belong to multiple biconnected
+components. Vertices can be present in multiple biconnected components, but each edge can only be contained in a single biconnected
+component. So, the output only has edge version.
+
+**Notice**: This problem defines on an undirected graph.
+
+Given the following query:
+
+
+pgr_biconnectedComponents(:math:`sql`)
+
+where  :math:`sql = \{(id_i, source_i, target_i, cost_i, reverse\_cost_i)\}`
+
+and
+
+  - :math:`source = \bigcup source_i`,
+  - :math:`target = \bigcup target_i`,
+
+The graphs are defined as follows:
+
+The weighted undirected graph, :math:`G(V,E)`, is definied by:
+
+* the set of vertices  :math:`V`
+
+  - :math:`V = source \cup target`
+
+
+* the set of edges :math:`E`
+
+  - :math:`E = \begin{cases} &\{(source_i, target_i, cost_i) \text{ when } cost >=0 \} \\ \cup &\{(target_i, source_i, cost_i) \text{ when } cost >=0 \}  &\quad  \text{ if } reverse\_cost = \varnothing \\ \\ &\{(source_i, target_i, cost_i) \text{ when } cost >=0 \} \\ \cup &\{(target_i, source_i, cost_i) \text{ when } cost >=0 \} \\ \cup &\{(target_i, source_i, reverse\_cost_i) \text{ when } reverse\_cost_i >=0)\} \\ \cup &\{(source_i, target_i, reverse\_cost_i) \text{ when } reverse\_co [...]
+
+
+Given:
+
+  - :math:`G(V,E)`
+
+Then:
+
+.. math:: \text{pgr_biconnectedComponents}(sql) =
+  \begin{cases}
+  \text{all biconnected components } \boldsymbol{\pi} \text{ in } G(V,E) &\quad \text{if } \exists  \boldsymbol{\pi}  \\
+  \varnothing &\quad \text{otherwise} \\
+  \end{cases}
+
+:math:`\boldsymbol{\pi} = \{(component_i, n\_seq_i, node_i)\}`
+
+where:
+  - :math:`component_i = \min {node_j | node_j \in component_i}`
+  - :math:`n\_seq_i` is a sequential value starting from **1** in a component.
+  - :math:`edge_i \in component_i`
+  - The returned values are ordered:
+
+    - `component` ascending
+    - `edge` ascending
+
+Example:
+  - The first component is composed of edges ``1 - 2``, ``0 - 1`` and ``0 - 2``.
+  - The second component is composed of edges ``2 - 4``, ``2 - 3`` and ``3 - 4``.
+  - The third component is composed of edge ``5 - 6``.
+  - The fourth component is composed of edge ``6 - 7``.
+  - The fifth component is composed of edges ``8 - 9``, ``9 - 10`` and ``8 - 10``.
+
+.. image:: images/biconnected_components.jpeg
+   :width: 210px
+   :height: 325px
+
+.. rubric:: Articulation Points
+
+Those vertices that belong to more than one biconnected component are called 
+articulation points or, equivalently, cut vertices. Articulation points are 
+vertices whose removal would increase the number of connected components in 
+the graph.
+
+**Notice**: This problem defines on an undirected graph.
+
+Given the following query:
+
+
+pgr_articulationPoints(:math:`sql`)
+
+where  :math:`sql = \{(id_i, source_i, target_i, cost_i, reverse\_cost_i)\}`
+
+and
+
+  - :math:`source = \bigcup source_i`,
+  - :math:`target = \bigcup target_i`,
+
+The graphs are defined as follows:
+
+The weighted undirected graph, :math:`G(V,E)`, is definied by:
+
+* the set of vertices  :math:`V`
+
+  - :math:`V = source \cup target`
+
+
+* the set of edges :math:`E`
+
+  - :math:`E = \begin{cases} &\{(source_i, target_i, cost_i) \text{ when } cost >=0 \} \\ \cup &\{(target_i, source_i, cost_i) \text{ when } cost >=0 \}  &\quad  \text{ if } reverse\_cost = \varnothing \\ \\ &\{(source_i, target_i, cost_i) \text{ when } cost >=0 \} \\ \cup &\{(target_i, source_i, cost_i) \text{ when } cost >=0 \} \\ \cup &\{(target_i, source_i, reverse\_cost_i) \text{ when } reverse\_cost_i >=0)\} \\ \cup &\{(source_i, target_i, reverse\_cost_i) \text{ when } reverse\_co [...]
+
+
+Given:
+
+  - :math:`G(V,E)`
+
+Then:
+
+.. math:: \text{pgr_articulationPoints}(sql) =
+  \begin{cases}
+  \text{all articulation points } \boldsymbol{\pi} \text{ in } G(V,E) &\quad \text{if } \exists  \boldsymbol{\pi}  \\
+  \varnothing &\quad \text{otherwise} \\
+  \end{cases}
+
+:math:`\boldsymbol{\pi} = \{node_i\}`
+
+where:
+  - :math:`node_i` is an articulation point.
+  - The returned values are ordered:
+
+    - `node` ascending
+
+Example:
+  - Articulation points are nodes ``2`` and ``6``.
+
+.. image:: images/biconnected_components.jpeg
+   :width: 210px
+   :height: 325px
+
+.. rubric:: Bridges 
+
+A bridge is an edge of an undirected graph whose deletion increases its number
+of connected components.
+
+**Notice**: This problem defines on an undirected graph.
+
+Given the following query:
+
+
+pgr_bridges(:math:`sql`)
+
+where  :math:`sql = \{(id_i, source_i, target_i, cost_i, reverse\_cost_i)\}`
+
+and
+
+  - :math:`source = \bigcup source_i`,
+  - :math:`target = \bigcup target_i`,
+
+The graphs are defined as follows:
+
+The weighted undirected graph, :math:`G(V,E)`, is definied by:
+
+* the set of vertices  :math:`V`
+
+  - :math:`V = source \cup target`
+
+
+* the set of edges :math:`E`
+
+  - :math:`E = \begin{cases} &\{(source_i, target_i, cost_i) \text{ when } cost >=0 \} \\ \cup &\{(target_i, source_i, cost_i) \text{ when } cost >=0 \}  &\quad  \text{ if } reverse\_cost = \varnothing \\ \\ &\{(source_i, target_i, cost_i) \text{ when } cost >=0 \} \\ \cup &\{(target_i, source_i, cost_i) \text{ when } cost >=0 \} \\ \cup &\{(target_i, source_i, reverse\_cost_i) \text{ when } reverse\_cost_i >=0)\} \\ \cup &\{(source_i, target_i, reverse\_cost_i) \text{ when } reverse\_co [...]
+
+
+Given:
+
+  - :math:`G(V,E)`
+
+Then:
+
+.. math:: \text{pgr_bridges}(sql) =
+  \begin{cases}
+  \text{all bridges } \boldsymbol{\pi} \text{ in } G(V,E) &\quad \text{if } \exists  \boldsymbol{\pi}  \\
+  \varnothing &\quad \text{otherwise} \\
+  \end{cases}
+
+:math:`\boldsymbol{\pi} = \{edge_i\}`
+
+where:
+  - :math:`edge_i` is an edge.
+  - The returned values are ordered:
+
+    - `edge` ascending
+
+Example:
+  - Bridges are edges ``5 <--> 6`` and ``6 <--> 7``.
+
+.. image:: images/biconnected_components.jpeg
+   :width: 210px
+   :height: 325px
+
+.. components_edges_sql_start
+
+Description of the edges_sql query for components functions
+...............................................................................
+
+:edges_sql: an SQL query, which should return a set of rows with the following columns:
+
+================= =================== ======== =================================================
+Column            Type                 Default  Description
+================= =================== ======== =================================================
+**id**            ``ANY-INTEGER``                Identifier of the edge.
+**source**        ``ANY-INTEGER``                Identifier of the first end point vertex of the edge.
+**target**        ``ANY-INTEGER``                Identifier of the second end point vertex of the edge.
+**cost**          ``ANY-NUMERICAL``              Weight of the edge  `(source, target)`
+
+                                                 - When negative: edge `(source, target)` does not exist, therefore it's not part of the graph.
+
+**reverse_cost**  ``ANY-NUMERICAL``       -1     Weight of the edge `(target, source)`,
+
+                                                 - When negative: edge `(target, source)` does not exist, therefore it's not part of the graph.
+
+================= =================== ======== =================================================
+
+Where:
+
+:ANY-INTEGER: SMALLINT, INTEGER, BIGINT
+:ANY-NUMERICAL: SMALLINT, INTEGER, BIGINT, REAL, FLOAT
+
+
+.. components_edges_sql_end
+
+
+.. components_parameters_start
+
+Description of the parameters of the signatures
+...............................................................................
+
+=================== ====================== ========= =========================================
+Parameter           Type                   Default   Description
+=================== ====================== ========= =========================================
+**edges_sql**       ``TEXT``                         SQL query as described above.
+=================== ====================== ========= =========================================
+
+.. components_parameters_end
+
+
+.. return_componentsV_start
+
+Description of the return values for connected components and strongly connected components
+.............................................................................................................................
+
+Returns set of ``(seq, component, n_seq, node)``
+
+============== ========== =================================================
+Column         Type       Description
+============== ========== =================================================
+**seq**        ``INT``    Sequential value starting from **1**.
+**component**  ``BIGINT`` Component identifier. It is equal to the minimum node identifier in the component.
+**n_seq**      ``INT``    It is a sequential value starting from **1** in a component. 
+**node**       ``BIGINT`` Identifier of the vertex.
+============== ========== =================================================
+
+.. return_componentsV_end
+
+
+.. return_componentsE_start
+
+Description of the return values for biconnected components, connected components (edge version) and strongly connected components
+.................................................................................................................................................
+
+Returns set of ``(seq, component, n_seq, edge)``
+
+============== ========== =================================================
+Column         Type       Description
+============== ========== =================================================
+**seq**        ``INT``    Sequential value starting from **1**.
+**component**  ``BIGINT`` Component identifier. It is equal to the minimum edge identifier in the component.
+**n_seq**      ``INT``    It is a sequential value starting from **1** in a component. 
+**edge**       ``BIGINT`` Identifier of the edge.
+============== ========== =================================================
+
+.. return_componentsE_end
+
+.. return_cutvertices_start
+
+Description of the return values for articulation points
+..............................................................
+
+Returns set of ``(seq, node)``
+
+============== ========== =================================================
+Column         Type       Description
+============== ========== =================================================
+**seq**        ``INT``    Sequential value starting from **1**.
+**node**       ``BIGINT`` Identifier of the vertex.
+============== ========== =================================================
+
+.. return_cutvertices_end
+
+.. return_bridges_start
+
+Description of the return values for bridges
+..............................................................
+
+Returns set of ``(seq, node)``
+
+============== ========== =================================================
+Column         Type       Description
+============== ========== =================================================
+**seq**        ``INT``    Sequential value starting from **1**.
+**edge**       ``BIGINT`` Identifier of the edge.
+============== ========== =================================================
+
+.. return_bridges_end
+
+See Also
+-------------------------------------------------------------------------------
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/components/images/CMakeLists.txt b/doc/components/images/CMakeLists.txt
new file mode 100644
index 0000000..a5244b9
--- /dev/null
+++ b/doc/components/images/CMakeLists.txt
@@ -0,0 +1,20 @@
+
+SET(LOCAL_FILES
+    connected_components.jpeg
+    strong_components.jpeg
+    biconnected_components.jpeg
+
+    cc_sampledata.png
+    scc_sampledata.png
+    bcc_sampledata.png
+    ap_sampledata.png
+    bridge_sampledata.png
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/images/${f}" COPYONLY)
+    list(APPEND LOCAL_IMG_FILES  "${PGR_DOCUMENTATION_SOURCE_DIR}/images/${f}")
+endforeach()
+
+set(PgRouting_IMG_FILES ${PgRouting_IMG_FILES} ${LOCAL_IMG_FILES} PARENT_SCOPE)
+
diff --git a/doc/components/images/ap_sampledata.png b/doc/components/images/ap_sampledata.png
new file mode 100644
index 0000000..1f76478
Binary files /dev/null and b/doc/components/images/ap_sampledata.png differ
diff --git a/doc/components/images/bcc_sampledata.png b/doc/components/images/bcc_sampledata.png
new file mode 100644
index 0000000..d5ce7b8
Binary files /dev/null and b/doc/components/images/bcc_sampledata.png differ
diff --git a/doc/components/images/biconnected_components.jpeg b/doc/components/images/biconnected_components.jpeg
new file mode 100644
index 0000000..e1812b8
Binary files /dev/null and b/doc/components/images/biconnected_components.jpeg differ
diff --git a/doc/components/images/bridge_sampledata.png b/doc/components/images/bridge_sampledata.png
new file mode 100644
index 0000000..938f8e3
Binary files /dev/null and b/doc/components/images/bridge_sampledata.png differ
diff --git a/doc/components/images/cc_sampledata.png b/doc/components/images/cc_sampledata.png
new file mode 100644
index 0000000..005dec3
Binary files /dev/null and b/doc/components/images/cc_sampledata.png differ
diff --git a/doc/components/images/connected_components.jpeg b/doc/components/images/connected_components.jpeg
new file mode 100644
index 0000000..e0b9384
Binary files /dev/null and b/doc/components/images/connected_components.jpeg differ
diff --git a/doc/components/images/scc_sampledata.png b/doc/components/images/scc_sampledata.png
new file mode 100644
index 0000000..e0416a3
Binary files /dev/null and b/doc/components/images/scc_sampledata.png differ
diff --git a/doc/components/images/strong_components.jpeg b/doc/components/images/strong_components.jpeg
new file mode 100644
index 0000000..ca11bd4
Binary files /dev/null and b/doc/components/images/strong_components.jpeg differ
diff --git a/doc/components/pgr_articulationPoints.rst b/doc/components/pgr_articulationPoints.rst
new file mode 100644
index 0000000..599d943
--- /dev/null
+++ b/doc/components/pgr_articulationPoints.rst
@@ -0,0 +1,100 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_articulationPoints:
+
+pgr_articulationPoints - Experimental
+===============================================================================
+
+
+``pgr_articulationPoints`` - Return the articulation points of an undirected graph.
+In particular, the algorithm implemented by Boost.Graph.
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph/doc/connected_components.html
+
+   Boost Graph Inside
+
+.. include:: proposed.rst
+   :start-after: begin-warn-expr
+   :end-before: end-warn-expr
+
+
+Synopsis
+-------------------------------------------------------------------------------
+
+Those vertices that belong to more than one biconnected component are called 
+articulation points or, equivalently, cut vertices. Articulation points are 
+vertices whose removal would increase the number of connected components in 
+the graph.
+This implementation can only be used with an undirected graph.
+
+Characteristics
+-------------------------------------------------------------------------------
+
+The main Characteristics are:
+
+  - The returned values are ordered:
+
+    - `node` ascending
+
+  - Running time: :math:`O(V + E)`
+
+Signatures
+-------------------------------------------------------------------------------
+
+.. index::
+    single: articulationPoints
+
+.. code-block:: none
+
+    pgr_articulationPoints(edges_sql)
+
+    RETURNS SET OF (seq, node)
+        OR EMPTY SET
+
+The signature is for a **undirected** graph. 
+
+:Example:
+
+.. literalinclude:: doc-pgr_articulationPoints.queries
+   :start-after: -- q1
+   :end-before: -- q2
+
+.. image:: images/ap_sampledata.png
+   :width: 560px
+   :height: 362px
+
+Description of the Signatures
+-------------------------------------------------------------------------------
+
+.. include:: components-family.rst
+    :start-after: components_edges_sql_start
+    :end-before: components_edges_sql_end
+
+.. include:: components-family.rst
+    :start-after: components_parameters_start
+    :end-before: components_parameters_end
+
+.. include:: components-family.rst
+    :start-after: return_cutvertices_start
+    :end-before: return_cutvertices_end
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* http://en.wikipedia.org/wiki/Biconnected_component
+* The queries use the :doc:`sampledata` network.
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/components/pgr_biconnectedComponents.rst b/doc/components/pgr_biconnectedComponents.rst
new file mode 100644
index 0000000..fd765e8
--- /dev/null
+++ b/doc/components/pgr_biconnectedComponents.rst
@@ -0,0 +1,103 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_biconnectedComponents:
+
+pgr_biconnectedComponents - Experimental
+===============================================================================
+
+``pgr_biconnectedComponents`` — Return the biconnected components of an undirected graph.
+In particular, the algorithm implemented by Boost.Graph.
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph/doc/biconnected_components.html
+
+   Boost Graph Inside
+
+.. include:: proposed.rst
+   :start-after: begin-warn-expr
+   :end-before: end-warn-expr
+
+
+Synopsis
+-------------------------------------------------------------------------------
+
+The biconnected components of an undirected graph are the maximal subsets of vertices such that the removal of a vertex from 
+particular component will not disconnect the component. Unlike connected components, vertices may belong to multiple biconnected
+components. Vertices can be present in multiple biconnected components, but each edge can only be contained in a single biconnected
+component. So, the output only has edge version.
+
+This implementation can only be used with an undirected graph.
+
+Characteristics
+-------------------------------------------------------------------------------
+
+The main Characteristics are:
+
+  - Components are described by edges 
+
+  - The returned values are ordered:
+
+    - `component` ascending
+    - `edge` ascending
+
+  - Running time: :math:`O(V + E)`
+
+Signatures
+-------------------------------------------------------------------------------
+
+.. index::
+    single: biconnectedComponents
+
+.. code-block:: none
+
+    pgr_biconnectedComponents(edges_sql)
+
+    RETURNS SET OF (seq, component, n_seq, edge)
+        OR EMPTY SET
+
+The signature is for a **undirected** graph. 
+
+:Example:
+
+.. literalinclude:: doc-pgr_biconnectedComponents.queries
+   :start-after: -- q1
+   :end-before: -- q2
+
+.. image:: images/bcc_sampledata.png
+   :width: 705px
+   :height: 373px
+
+Description of the Signatures
+-------------------------------------------------------------------------------
+
+.. include:: components-family.rst
+    :start-after: components_edges_sql_start
+    :end-before: components_edges_sql_end
+
+.. include:: components-family.rst
+    :start-after: components_parameters_start
+    :end-before: components_parameters_end
+
+.. include:: components-family.rst
+    :start-after: return_componentsE_start
+    :end-before: return_componentsE_end
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* http://en.wikipedia.org/wiki/Biconnected_component
+* The queries use the :doc:`sampledata` network.
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/components/pgr_bridges.rst b/doc/components/pgr_bridges.rst
new file mode 100644
index 0000000..078e2ee
--- /dev/null
+++ b/doc/components/pgr_bridges.rst
@@ -0,0 +1,97 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_Bridges:
+
+pgr_bridges - Experimental
+===============================================================================
+
+
+``pgr_bridges`` - Return the bridges of an undirected graph.
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph/doc/connected_components.html
+
+   Boost Graph Inside
+
+.. include:: proposed.rst
+   :start-after: begin-warn-expr
+   :end-before: end-warn-expr
+
+
+Synopsis
+-------------------------------------------------------------------------------
+
+A bridge is an edge of an undirected graph whose deletion increases its number
+of connected components.
+This implementation can only be used with an undirected graph.
+
+Characteristics
+-------------------------------------------------------------------------------
+
+The main Characteristics are:
+
+  - The returned values are ordered:
+
+    - `edge` ascending
+
+  - Running time: :math:`O(E * (V + E))`
+
+Signatures
+-------------------------------------------------------------------------------
+
+.. index::
+    single: bridges
+
+.. code-block:: none
+
+    pgr_bridges(edges_sql)
+
+    RETURNS SET OF (seq, node)
+        OR EMPTY SET
+
+The signature is for a **undirected** graph. 
+
+:Example:
+
+.. literalinclude:: doc-pgr_bridges.queries
+   :start-after: -- q1
+   :end-before: -- q2
+
+.. image:: images/bridge_sampledata.png
+   :width: 560px
+   :height: 381px
+
+Description of the Signatures
+-------------------------------------------------------------------------------
+
+.. include:: components-family.rst
+    :start-after: components_edges_sql_start
+    :end-before: components_edges_sql_end
+
+.. include:: components-family.rst
+    :start-after: components_parameters_start
+    :end-before: components_parameters_end
+
+.. include:: components-family.rst
+    :start-after: return_bridges_start
+    :end-before: return_bridges_end
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* http://en.wikipedia.org/wiki/Bridge_%28graph_theory%29
+* The queries use the :doc:`sampledata` network.
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/components/pgr_connectedComponents.rst b/doc/components/pgr_connectedComponents.rst
new file mode 100644
index 0000000..30e892d
--- /dev/null
+++ b/doc/components/pgr_connectedComponents.rst
@@ -0,0 +1,101 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_connectedComponents:
+
+pgr_connectedComponents - Experimental
+===============================================================================
+
+
+``pgr_connectedComponents`` — Return the connected components of an undirected graph using a DFS-based approach.
+In particular, the algorithm implemented by Boost.Graph.
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph/doc/connected_components.html
+
+   Boost Graph Inside
+
+.. include:: proposed.rst
+   :start-after: begin-warn-expr
+   :end-before: end-warn-expr
+
+
+Synopsis
+-------------------------------------------------------------------------------
+
+A connected component of an undirected graph is a set of vertices that are all reachable
+from each other.
+This implementation can only be used with an undirected graph.
+
+Characteristics
+-------------------------------------------------------------------------------
+
+The main Characteristics are:
+
+  - Components are described by vertices
+
+  - The returned values are ordered:
+
+    - `component` ascending
+    - `node` ascending
+
+  - Running time: :math:`O(V + E)`
+
+Signatures
+-------------------------------------------------------------------------------
+
+.. index::
+    single: connectedComponents
+
+.. code-block:: none
+
+    pgr_connectedComponents(edges_sql)
+
+    RETURNS SET OF (seq, component, n_seq, node)
+        OR EMPTY SET
+
+The signature is for a **undirected** graph. 
+
+:Example:
+
+.. literalinclude:: doc-pgr_connectedComponents.queries
+   :start-after: -- q1
+   :end-before: -- q2
+
+.. image:: images/cc_sampledata.png
+   :width: 685px
+   :height: 387px
+
+Description of the Signatures
+-------------------------------------------------------------------------------
+
+.. include:: components-family.rst
+    :start-after: components_edges_sql_start
+    :end-before: components_edges_sql_end
+
+.. include:: components-family.rst
+    :start-after: components_parameters_start
+    :end-before: components_parameters_end
+
+.. include:: components-family.rst
+    :start-after: return_componentsV_start
+    :end-before: return_componentsV_end
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* http://en.wikipedia.org/wiki/Connected_component_%28graph_theory%29
+* The queries use the :doc:`sampledata` network.
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/components/pgr_strongComponents.rst b/doc/components/pgr_strongComponents.rst
new file mode 100644
index 0000000..2d272d8
--- /dev/null
+++ b/doc/components/pgr_strongComponents.rst
@@ -0,0 +1,100 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_strongComponents:
+
+pgr_strongComponents - Experimental
+===============================================================================
+
+``pgr_strongComponents`` — Return the strongly connected components of a directed graph using Tarjan's algorithm based on DFS.
+In particular, the algorithm implemented by Boost.Graph.
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph/doc/strong_components.html
+
+   Boost Graph Inside
+
+.. include:: proposed.rst
+   :start-after: begin-warn-expr
+   :end-before: end-warn-expr
+
+
+Synopsis
+-------------------------------------------------------------------------------
+
+A strongly connected component of a directed graph is a set of vertices that are all reachable
+from each other.
+This implementation can only be used with a directed graph.
+
+Characteristics
+-------------------------------------------------------------------------------
+
+The main Characteristics are:
+
+  - Components are described by vertices
+
+  - The returned values are ordered:
+
+    - `component` ascending
+    - `node` ascending
+
+  - Running time: :math:`O(V + E)`
+
+Signatures
+-------------------------------------------------------------------------------
+
+.. index::
+    single: strongComponents
+
+.. code-block:: none
+
+    pgr_strongComponents(edges_sql)
+
+    RETURNS SET OF (seq, component, n_seq, node)
+        OR EMPTY SET
+
+The signature is for a **directed** graph. 
+
+:Example:
+
+.. literalinclude:: doc-pgr_strongComponents.queries
+   :start-after: -- q1
+   :end-before: -- q2
+
+.. image:: images/scc_sampledata.png
+   :width: 707px
+   :height: 355px
+
+Description of the Signatures
+-------------------------------------------------------------------------------
+
+.. include:: components-family.rst
+    :start-after: components_edges_sql_start
+    :end-before: components_edges_sql_end
+
+.. include:: components-family.rst
+    :start-after: components_parameters_start
+    :end-before: components_parameters_end
+
+.. include:: components-family.rst
+    :start-after: return_componentsV_start
+    :end-before: return_componentsV_end
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* http://en.wikipedia.org/wiki/Strongly_connected_component
+* The queries use the :doc:`sampledata` network.
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/conf.py.in b/doc/conf.py.in
index b9c2bf8..f51e043 100644
--- a/doc/conf.py.in
+++ b/doc/conf.py.in
@@ -26,11 +26,15 @@ needs_sphinx = '1.1'
 
 # Add any Sphinx extension module names here, as strings. They can be extensions
 # coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-mathjax_path="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"
-extensions = ['sphinx.ext.todo', 'sphinx.ext.mathjax', 'sphinx.ext.graphviz']
+#mathjax_path="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"
+extensions = [
+        'sphinx.ext.todo',
+        'sphinx.ext.mathjax',
+        'sphinx.ext.graphviz',
+        ]
 
 # Add any paths that contain templates here, relative to this directory.
-templates_path = ['doc/templates']
+templates_path = ["_templates"]
 
 # The suffix of source filenames.
 source_suffix = '.rst'
@@ -57,8 +61,8 @@ release = '@PGROUTING_FULL_VERSION@'
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
 language = 'en'
-locale_dirs = ['doc/i18n/']
-gettext_compact = False
+locale_dirs = ['@CMAKE_SOURCE_DIR@/locale/']
+#gettext_compact = False
 
 # There are two options for replacing |today|: either, you set today to some
 # non-false value, then it is used:
@@ -76,6 +80,7 @@ exclude_patterns = [
     'tools/template'
     ]
 
+#    'src/pickDeliver/doc/pgr_withPointsVia.rst',
 # The reST default role (used for this markup: `text`) to use for all documents.
 #default_role = None
 
@@ -124,17 +129,20 @@ html_title = "pgRouting Manual (@PGROUTING_SHORT_VERSION@@PGROUTING_VERSION_DEV@
 
 # The name of an image file (relative to this directory) to place at the top
 # of the sidebar.
-html_logo = "static/images/pgrouting.png"
+html_logo = "_static/images/pgrouting.png"
 
 # The name of an image file (within the static path) to use as favicon of the
 # docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
 # pixels large.
-html_favicon = "static/images/favicon.ico"
+html_favicon = "_static/images/favicon.ico"
 
 # Add any paths that contain custom static files (such as style sheets) here,
 # relative to this directory. They are copied after the builtin static files,
 # so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['static']
+html_static_path = ["_static"]
+
+def setup(app):
+    app.add_stylesheet('custom.css')
 
 # If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
 # using the given strftime format.
@@ -164,7 +172,9 @@ html_use_index = True
 #html_split_index = False
 
 # If true, links to the reST sources are added to the pages.
-html_show_sourcelink = True
+html_show_sourcelink = False
+# Don't copy sources
+html_copy_source = False
 
 # If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
 html_show_sphinx = True
@@ -200,13 +210,13 @@ latex_elements = {
 # Grouping the document tree into LaTeX files. List of tuples
 # (source start file, target name, title, author, documentclass [howto/manual]).
 latex_documents = [
-  ('doc/index', 'pgRoutingDocumentation.tex', u'pgRouting Manual',
+  ('index', 'pgRoutingDocumentation.tex', u'pgRouting Manual',
    u'pgRouting Contributors', 'manual'),
 ]
 
 # The name of an image file (relative to this directory) to place at the top of
 # the title page.
-latex_logo = "static/images/pgrouting.png"
+latex_logo = "_static/images/pgrouting.png"
 
 # For "manual" documents, if this is true, then toplevel headings are parts,
 # not chapters.
@@ -230,7 +240,7 @@ latex_domain_indices = False
 # One entry per manual page. List of tuples
 # (source start file, name, description, authors, manual section).
 man_pages = [
-    ('doc/index_man', 'pgrouting', u'pgRouting Reference', u'pgRouting Contributors', 7)
+    ('index_man', 'pgrouting', u'pgRouting Reference', u'pgRouting Contributors', 7)
 ]
 
 # If true, show URL addresses after external links.
@@ -243,7 +253,7 @@ man_show_urls = False
 # (source start file, target name, title, author,
 #  dir menu entry, description, category)
 texinfo_documents = [
-  ('doc/index', 'pgrouting', u'pgRouting Manual',
+  ('index', 'pgrouting', u'pgRouting Manual',
    u'pgRouting Contributors', 'pgRoutingDocumentation', 'One line description of project.',
    'Miscellaneous'),
 ]
@@ -256,3 +266,88 @@ texinfo_documents = [
 
 # How to display URL addresses: 'footnote', 'no', or 'inline'.
 #texinfo_show_urls = 'footnote'
+
+# -- Options for PDF output --------------------------------------------------
+# Grouping the document tree into PDF files. List of tuples
+# (source start file, target name, title, author, options).
+#
+# If there is more than one author, separate them with \\.
+# For example: r'Guido van Rossum\\Fred L. Drake, Jr., editor'
+#
+# The options element is a dictionary that lets you override
+# this config per-document.
+# For example,
+# ('index', u'MyProject', u'My Project', u'Author Name',
+#  dict(pdf_compressed = True))
+# would mean that specific document would be compressed
+# regardless of the global pdf_compressed setting.
+pdf_documents = [(
+        'index', 
+        u'pgr_Documentation',
+        'pgRouting Manual',
+        u'pgRouting Contributors')]
+# A comma-separated list of custom stylesheets. Example:
+
+pdf_stylesheets = ['sphinx','kerning','a4']
+# A list of folders to search for stylesheets. Example:
+pdf_style_path = ['.', '_styles']
+
+
+rst_epilog="""
+.. |ANY-INTEGER| replace:: :abbr:`ANY-INTEGER(SMALLINT, INTEGER, BIGINT)`
+.. |ANY-NUMERICAL| replace:: :abbr:`ANY-NUMERICAL(SMALLINT, INTEGER, BIGINT, REAL, FLOAT)`
+"""
+
+# Create a compressed PDF
+# Use True/False or 1/0
+# Example: compressed=True
+#pdf_compressed = False
+# A colon-separated list of folders to search for fonts. Example:
+# pdf_font_path = ['/usr/share/fonts', '/usr/share/texmf-dist/fonts/']
+# Language to be used for hyphenation support
+#pdf_language = "en_US"
+
+# Mode for literal blocks wider than the frame. Can be
+# overflow, shrink or truncate
+#pdf_fit_mode = "shrink"
+
+# Section level that forces a break page.
+# For example: 1 means top-level sections start in a new page
+# 0 means disabled
+#pdf_break_level = 0
+# When a section starts in a new page, force it to be 'even', 'odd',
+# or just use 'any'
+#pdf_breakside = 'any'
+# Insert footnotes where they are defined instead of
+# at the end.
+#pdf_inline_footnotes = True
+# verbosity level. 0 1 or 2
+#pdf_verbosity = 0
+# If false, no index is generated.
+#pdf_use_index = True
+# If false, no modindex is generated.
+#pdf_use_modindex = True
+# If false, no coverpage is generated.
+#pdf_use_coverpage = True
+# Name of the cover page template to use
+#pdf_cover_template = 'sphinxcover.tmpl'
+# Documents to append as an appendix to all manuals.
+#pdf_appendices = []
+# Enable experimental feature to split table cells. Use it
+# if you get "DelayedTable too big" errors
+#pdf_splittables = False
+# Set the default DPI for images
+#pdf_default_dpi = 72
+# Enable rst2pdf extension modules (default is only vectorpdf)
+# you need vectorpdf if you want to use sphinx's graphviz support
+#pdf_extensions = ['vectorpdf']
+# Page template name for "regular" pages
+#pdf_page_template = 'cutePage'
+# Show Table Of Contents at the beginning?
+#pdf_use_toc = True
+# How many levels deep should the table of contents be?
+pdf_toc_depth = 9999
+# Add section number to section references
+pdf_use_numbered_links = False
+# Background images fitting mode
+pdf_fit_background_mode = 'scale'
diff --git a/doc/contraction/CMakeLists.txt b/doc/contraction/CMakeLists.txt
new file mode 100644
index 0000000..828f6dd
--- /dev/null
+++ b/doc/contraction/CMakeLists.txt
@@ -0,0 +1,15 @@
+
+SET(LOCAL_FILES
+    contraction-family.rst
+    pgr_contractGraph.rst
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}")
+    list(APPEND LOCAL_DOC_FILES  ${PGR_DOCUMENTATION_SOURCE_DIR}/${f})
+endforeach()
+
+add_subdirectory("images")
+set(PgRouting_DOC_FILES ${PgRouting_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE)
+set(PgRouting_IMG_FILES ${PgRouting_IMG_FILES} PARENT_SCOPE)
+
diff --git a/doc/contraction/contraction-family.rst b/doc/contraction/contraction-family.rst
new file mode 100644
index 0000000..f7828f8
--- /dev/null
+++ b/doc/contraction/contraction-family.rst
@@ -0,0 +1,527 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+
+.. _contraction:
+
+Contraction - Family of functions
+===============================================================================
+
+
+.. include:: proposed.rst
+   :start-after: begin-warn-expr
+   :end-before: end-warn-expr
+
+:ref:`pgr_contractGraph`
+
+.. toctree::
+    :hidden:
+
+    pgr_contractGraph
+
+Introduction
+-------------
+
+In big graphs, like the road graphs, or electric networks, graph contraction can be used to speed up some graph algorithms. Contraction reduces the size of the graph by removing some of the vertices and edges and, for example, might add edges that represent a sequence of original edges decreasing the total time and space used in graph algorithms.
+
+This implementation gives a flexible framework for adding contraction algorithms in the future, currently, it supports two algorithms:
+
+ 1. Dead end contraction
+ 2. Linear contraction
+
+Allowing the user to:
+
+  - Forbid contraction on a set of nodes.
+  - Decide the order of the contraction algorithms and set the maximum number of times they are to be executed.
+
+.. note:: UNDER DISCUSSION:  Forbid contraction on a set of edges
+
+Dead end contraction
+-------------------------------------------------------------------------------
+In the algorithm, dead end contraction is represented by 1.
+
+Dead end nodes
+......................
+
+The definition of a dead end node is different for a directed and an undirected graph.
+
+In case of a undirected graph, a node is considered a dead end node if
+
+ - The number of adjacent vertices is 1.
+
+In case of an directed graph, a node is considered a dead end node if
+
+ - There are no outgoing edges and has at least one incoming edge.
+ - There is one incoming and one outgoing edge with the same identifier.
+
+.. rubric:: Examples
+
+- The green node ``B`` represents a dead end node
+- The node ``A`` is the only node connecting to ``B``.
+- Node ``A`` is part of the rest of the graph and has an unlimited number of incoming and outgoing edges.
+- Directed graph
+
+.. graphviz::
+
+    digraph G {
+        A [style=filled;color=deepskyblue];
+        B [style=filled; color=green];
+        "G" [shape=tripleoctagon;
+        style=filled;color=deepskyblue;
+        label = "Rest of the Graph"];
+
+        rankdir=LR;
+        G -> A [dir=none, weight=1, penwidth=3];
+        A -> B;
+    }
+
+
+Operation: Dead End Contraction
+.....................................
+
+The dead end contraction will stop until there are no more dead end nodes.
+For example from the following graph:
+
+- Node ``A`` is connected to the rest of the graph by an unlimited number of edges.
+- Node ``B`` is connected to the rest of the graph with one incoming edge.
+- Node ``B`` is the only node connecting to ``C``.
+- The green node ``C`` represents a `Dead End` node
+
+.. graphviz::
+
+    digraph G {
+        A [style=filled;color=deepskyblue];
+        B [style=filled; color=deepskyblue];
+        C [style=filled; color=green];
+        "G" [shape=tripleoctagon;
+        style=filled;color=deepskyblue;
+        label = "Rest of the Graph"];
+
+        rankdir=LR;
+        G -> A [dir=none, weight=1, penwidth=3];
+        A -> B;
+        B -> C;
+    }
+
+
+After contracting ``C``, node ``B`` is now a `Dead End` node and is contracted:
+
+.. graphviz::
+
+    digraph G {
+        A [style=filled;color=deepskyblue];
+        B [style=filled; color=green;label="B {C}";];
+        "G" [shape=tripleoctagon;
+        style=filled;color=deepskyblue;
+        label = "Rest of the Graph"];
+
+        rankdir=LR;
+        G -> A [dir=none, weight=1, penwidth=3];
+        A -> B;
+    }
+
+Node ``B`` gets contracted
+
+.. graphviz::
+
+    digraph G {
+        A [style=filled;color=deepskyblue;label="A {B, C}";];
+        "G" [shape=tripleoctagon;
+        style=filled;color=deepskyblue;
+        label = "Rest of the Graph"];
+
+        rankdir=LR;
+        G -> A [dir=none, weight=1, penwidth=3];
+    }
+
+Nodes ``B`` and ``C`` belong to node ``A``.
+
+
+
+Not Dead End nodes
+......................
+
+In this graph ``B`` is not a `dead end` node.
+
+.. graphviz::
+
+    digraph G {
+        A [style=filled;color=deepskyblue];
+        B [style=filled; color=red];
+        "G" [shape=tripleoctagon;
+        style=filled;color=deepskyblue;
+        label = "Rest of the Graph"];
+
+        G -> A [dir=none, weight=1, penwidth=3];
+        B -> A;
+    }
+
+Linear contraction
+-------------------------------------------------------------------------------
+In the algorithm, linear contraction is represented by 2.
+
+Linear nodes
+......................
+
+A node is considered a linear node if satisfies the following:
+
+- The number of adjacent vertices are 2.
+- Should have at least one incoming edge and one outgoing edge.
+
+.. rubric:: Examples
+
+- The green node ``B`` represents a linear node
+- The nodes ``A`` and ``C`` are the only nodes connecting to ``B``.
+- Node ``A`` is part of the rest of the graph and has an unlimited number of incoming and outgoing edges.
+- Node ``C`` is part of the rest of the graph and has an unlimited number of incoming and outgoing edges.
+- Directed graph
+
+.. graphviz::
+
+    digraph G {
+        A [style=filled;color=deepskyblue];
+        B [style=filled; color=green];
+        C [style=filled;color=deepskyblue];
+        "G" [shape=tripleoctagon;
+        style=filled;color=deepskyblue;
+        label = "Rest of the Graph"];
+
+        rankdir=LR;
+        G -> A [dir=none, weight=1, penwidth=3];
+        G -> C [dir=none, weight=1, penwidth=3];
+        A -> B;
+        B -> C;
+    }
+
+Operation: Linear Contraction
+.....................................
+
+The linear contraction will stop until there are no more linear nodes.
+For example from the following graph:
+
+- Node ``A`` is connected to the rest of the graph by an unlimited number of edges.
+- Node ``B`` is connected to the rest of the graph with one incoming edge and one outgoing edge.
+- Node ``C`` is connected to the rest of the graph with one incoming edge and one outgoing edge.
+- Node ``D`` is connected to the rest of the graph by an unlimited number of edges.
+- The green nodes ``B`` and ``C`` represents `Linear` nodes.
+
+.. graphviz::
+
+    digraph G {
+        A [style=filled;color=deepskyblue];
+        B [style=filled; color=green];
+        C [style=filled; color=green];
+        D [style=filled; color=deepskyblue];
+        "G" [shape=tripleoctagon;
+        style=filled;color=deepskyblue;
+        label = "Rest of the Graph"];
+
+        rankdir=LR;
+        G -> A [dir=none, weight=1, penwidth=3];
+        G -> D [dir=none, weight=1, penwidth=3];
+        A -> B;
+        B -> C;
+        C -> D;
+
+    }
+
+After contracting ``B``, a new edge gets inserted between ``A`` and ``C`` which is represented by red color.
+
+.. graphviz::
+
+    digraph G {
+        A [style=filled;color=deepskyblue];
+        C [style=filled; color=green];
+        D [style=filled; color=deepskyblue];
+        "G" [shape=tripleoctagon;
+        style=filled;color=deepskyblue;
+        label = "Rest of the Graph"];
+
+        rankdir=LR;
+        G -> A [dir=none, weight=1, penwidth=3];
+        G -> D [dir=none, weight=1, penwidth=3];
+        A -> C [label="{B}";color=red]
+        C -> D;
+
+    }
+
+Node ``C`` is `linear node` and gets contracted.
+
+.. graphviz::
+
+    digraph G {
+        A [style=filled;color=deepskyblue];
+        D [style=filled; color=deepskyblue];
+        "G" [shape=tripleoctagon;
+        style=filled;color=deepskyblue;
+        label = "Rest of the Graph"];
+
+        rankdir=LR;
+        G -> A [dir=none, weight=1, penwidth=3];
+        G -> D [dir=none, weight=1, penwidth=3];
+        A -> D [label="{B, C}";color=red];
+
+    }
+
+Nodes ``B`` and ``C`` belong to edge connecting ``A`` and ``D`` which is represented by red color.
+
+Not Linear nodes
+......................
+
+In this graph ``B`` is not a `linear` node.
+
+.. graphviz::
+
+    digraph G {
+        A [style=filled;color=deepskyblue];
+        B [style=filled; color=red];
+        C [style=filled;color=deepskyblue];
+        "G" [shape=tripleoctagon;
+        style=filled;color=deepskyblue;
+        label = "Rest of the Graph"];
+
+        rankdir=LR;
+        G -> A [dir=none, weight=1, penwidth=3];
+        G -> C [dir=none, weight=1, penwidth=3];
+        A -> B;
+        C -> B;
+    }
+
+
+The cycle
+---------
+
+Contracting a graph, can be done with more than one operation. The order of the operations affect the resulting contracted graph, after applying one operation, the set of vertices that can be contracted by another operation changes.
+
+This implementation, cycles ``max_cycles`` times through ``operations_order`` .
+
+.. code-block:: none
+
+    <input>
+    do max_cycles times {
+        for (operation in operations_order)
+         { do operation }
+    }
+    <output>
+
+
+Contracting Sample Data
+-------------------------------------------------------------
+
+In this section, building and using a contracted graph will be shown by example.
+
+- The :doc:`sampledata` for an undirected graph is used
+- a dead end operation first followed by a linear operation.
+
+The original graph:
+
+.. image:: images/undirected_sampledata_a.png
+
+After doing a dead end contraction operation:
+
+.. image:: images/undirected_sampledata_b.png
+
+Doing a linear contraction operation to the graph above
+
+.. image:: images/undirected_sampledata_c.png
+
+
+There are five cases, in this documentation, which arise when calculating the shortest path between a given source and target.
+In this examples, ``pgr_dijkstra`` is used.
+
+- **Case 1**: Both source and target belong to the contracted graph.
+- **Case 2**: Source belongs to a contracted graph, while target belongs to a edge subgraph.
+- **Case 3**: Source belongs to a vertex subgraph, while target belongs to an edge subgraph.
+- **Case 4**: Source belongs to a contracted graph, while target belongs to an vertex subgraph.
+- **Case 5**: The path contains a new edge added by the contraction algorithm.
+
+Construction of the graph in the database
+..........................................
+
+.. rubric:: Original Data
+
+The following query shows the original data involved in the contraction operation.
+
+.. literalinclude:: doc-contraction.queries
+   :start-after: -- q00
+   :end-before: -- q01
+
+.. rubric:: Contraction Results
+
+.. literalinclude:: doc-contraction.queries
+   :start-after: -- q2
+   :end-before: -- q3
+
+The above results do not represent the contracted graph. They represent the changes done to the graph after applying the contraction algorithm. We can see that vertices like 6 and 11 do not appear in the contraction results because they were not affected by the contraction algorithm.
+
+.. rubric:: step 1
+
+Adding extra columns to the ``edge_table`` and ``edge_table_vertices_pgr`` tables:
+
+=======================  ==================================================
+Column                    Description
+=======================  ==================================================
+**contracted_vertices**    The vertices set belonging to the vertex/edge
+**is_contracted**          On a `vertex` table: when ``true`` the vertex is contracted, so is not part of the contracted graph.
+**is_contracted**          On an `edge` table: when ``true`` the edge was generated by the contraction algorithm.
+=======================  ==================================================
+
+Using the following queries:
+
+.. literalinclude:: doc-contraction.queries
+   :start-after: -- q1
+   :end-before: -- q2
+
+.. rubric:: step 2
+
+For simplicity, in this documentation, store the results of the call to pgr_contractGraph in a temporary table
+
+.. literalinclude:: doc-contraction.queries
+   :start-after: -- q3
+   :end-before: -- q4
+
+.. rubric:: step 3
+
+Update the `vertex` and `edge` tables using the results of the call to pgr_contraction
+
+- In `edge_table_vertices_pgr.is_contracted` indicate the vertices that are contracted.
+
+.. literalinclude:: doc-contraction.queries
+   :start-after: -- q4
+   :end-before: -- q5
+
+- Add to `edge_table_vertices_pgr.contracted_vertices`  the contracted vertices belonging to the vertices.
+
+.. literalinclude:: doc-contraction.queries
+   :start-after: -- q6
+   :end-before: -- q7
+
+- Insert the new edges generated by  pgr_contractGraph.
+
+.. literalinclude:: doc-contraction.queries
+   :start-after: -- q8
+   :end-before: -- q9
+
+.. rubric:: step 3.1
+
+Verify visually the updates.
+
+- On the `edge_table_vertices_pgr`
+
+.. literalinclude:: doc-contraction.queries
+   :start-after: -- q7
+   :end-before: -- q8
+
+- On the `edge_table`
+
+.. literalinclude:: doc-contraction.queries
+   :start-after: -- q9
+   :end-before: -- q10
+
+- vertices that belong to the contracted graph are the non contracted vertices
+
+.. literalinclude:: doc-contraction.queries
+   :start-after: -- q10
+   :end-before: -- case1
+
+.. rubric:: case 1: Both source and target belong to the contracted graph.
+
+Inspecting the contracted graph above, vertex 3 and vertex 11 are part of the contracted graph. In the following query:
+
+ - vertices_in_graph hold the vertices that belong to the contracted graph.
+ - when selecting the edges, only edges that have the source and the target in that set are the edges belonging to the contracted graph, that is done in the WHERE clause.
+
+Visually, looking at the original graph, going from 3 to 11: 3 -> 6 -> 11, and in the contracted graph, it is also 3 -> 6 -> 11.
+The results, on the contracted graph match the results as if it was done on the original graph.
+
+.. literalinclude:: doc-contraction.queries
+   :start-after: -- case1
+   :end-before: -- case2
+
+.. rubric:: case 2: Source belongs to the contracted graph, while target belongs to a edge subgraph.
+
+Inspecting the contracted graph above, vertex 3 is part of the contracted graph and vertex 1 belongs to the contracted subgraph of edge 19. In the following query:
+  - expand1 holds the contracted vertices of the edge where vertex 1 belongs. (belongs to edge 19).
+  - vertices_in_graph hold the vertices that belong to the contracted graph and also the contracted vertices of edge 19.
+  - when selecting the edges, only edges that have the source and the target in that set are the edges belonging to the contracted graph, that is done in the WHERE clause.
+
+Visually, looking at the original graph, going from 3 to 1: 3 -> 2 -> 1, and in the contracted graph, it is also 3 -> 2 -> 1.
+The results, on the contracted graph match the results as if it was done on the original graph.
+
+.. literalinclude:: doc-contraction.queries
+   :start-after: -- case2
+   :end-before: -- case3
+
+
+.. rubric:: case 3: Source belongs to a vertex subgraph, while target belongs to an edge subgraph.
+
+Inspecting the contracted graph above, vertex 7 belongs to the contracted subgraph of vertex 5 and vertex 13 belongs to the contracted subgraph of edge 21. In the following query:
+
+ - expand7 holds the contracted vertices of vertex where vertex 7 belongs. (belongs to vertex 5)
+ - expand13 holds the contracted vertices of edge where vertex 13 belongs. (belongs to edge 21)
+ - vertices_in_graph hold the vertices that belong to the contracted graph, contracted vertices of vertex 5 and contracted vertices of edge 21.
+ - when selecting the edges, only edges that have the source and the target in that set are the edges belonging to the contracted graph, that is done in the WHERE clause.
+
+Visually, looking at the original graph, going from 7 to 13: 7 -> 8 -> 5 -> 10 -> 13, and in the contracted graph, it is also 7 -> 8 -> 5 -> 10 -> 13.
+The results, on the contracted graph match the results as if it was done on the original graph.
+
+.. literalinclude:: doc-contraction.queries
+   :start-after: -- case3
+   :end-before: -- case4
+
+
+.. rubric:: case 4: Source belongs to the contracted graph, while target belongs to an vertex subgraph.
+
+Inspecting the contracted graph above, vertex 3 is part of the contracted graph and vertex 7 belongs to the contracted subgraph of vertex 5. In the following query:
+
+ - expand7 holds the contracted vertices of vertex where vertex 7 belongs. (belongs to vertex 5)
+ - vertices_in_graph hold the vertices that belong to the contracted graph and the contracted vertices of vertex 5.
+ - when selecting the edges, only edges that have the source and the target in that set are the edges belonging to the contracted graph, that is done in the WHERE clause.
+
+Visually, looking at the original graph, going from 3 to 7: 3 -> 2 -> 5 -> 8 -> 7, but in the contracted graph, it is 3 -> 5 -> 8 -> 7.
+The results, on the contracted graph do not match the results as if it was done on the original graph. This is because the path contains edge 19 which is added by the contraction algorithm.
+
+.. literalinclude:: doc-contraction.queries
+   :start-after: -- case4
+   :end-before: -- case5q1
+
+.. rubric:: case 5: The path contains an edge added by the contraction algorithm.
+
+In the previous example we can see that the path from vertex 3 to vertex 7 contains an edge which is added by the contraction algorithm.
+
+.. literalinclude:: doc-contraction.queries
+   :start-after: -- case5q1
+   :end-before: -- case5q2
+
+Inspecting the contracted graph above, edge 19 should be expanded. In the following query:
+
+ - first_dijkstra holds the results of the dijkstra query.
+ - edges_to_expand holds the edges added by the contraction algorithm and included in the path.
+ - vertices_in_graph hold the vertices that belong to the contracted graph, vertices of the contracted solution and the contracted vertices of the edges added by the contraction algorithm and included in the contracted solution.
+ - when selecting the edges, only edges that have the source and the target in that set are the edges belonging to the contracted graph, that is done in the WHERE clause.
+
+Visually, looking at the original graph, going from 3 to 7: 3 -> 2 -> 5 -> 8 -> 7, and in the contracted graph, it is also 3 -> 2 -> 5 -> 8 -> 7.
+The results, on the contracted graph match the results as if it was done on the original graph.
+
+.. literalinclude:: doc-contraction.queries
+   :start-after: -- case5q2
+   :end-before: -- end
+
+See Also
+-------------
+
+* http://www.cs.cmu.edu/afs/cs/academic/class/15210-f12/www/lectures/lecture16.pdf
+* http://algo2.iti.kit.edu/documents/routeplanning/geisberger_dipl.pdf
+* The queries use :ref:`pgr_contractGraph` function and the :doc:`sampledata` network.
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/contraction/images/CMakeLists.txt b/doc/contraction/images/CMakeLists.txt
new file mode 100644
index 0000000..91e0350
--- /dev/null
+++ b/doc/contraction/images/CMakeLists.txt
@@ -0,0 +1,21 @@
+
+SET(LOCAL_FILES
+    twoNodesoneEdge_a.png
+    twoNodesoneEdge_b.png
+
+    threeNodestwoEdges_a.png
+    threeNodestwoEdges_b.png
+    threeNodestwoEdges_c.png
+
+    undirected_sampledata_b.png
+    undirected_sampledata_a.png
+    undirected_sampledata_c.png
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/images/${f}" COPYONLY)
+    list(APPEND LOCAL_IMG_FILES  "${PGR_DOCUMENTATION_SOURCE_DIR}/images/${f}")
+endforeach()
+
+set(PgRouting_IMG_FILES ${PgRouting_IMG_FILES} ${LOCAL_IMG_FILES} PARENT_SCOPE)
+
diff --git a/src/contraction/doc/images/threeNodestwoEdges_a.png b/doc/contraction/images/threeNodestwoEdges_a.png
similarity index 100%
rename from src/contraction/doc/images/threeNodestwoEdges_a.png
rename to doc/contraction/images/threeNodestwoEdges_a.png
diff --git a/src/contraction/doc/images/threeNodestwoEdges_b.png b/doc/contraction/images/threeNodestwoEdges_b.png
similarity index 100%
rename from src/contraction/doc/images/threeNodestwoEdges_b.png
rename to doc/contraction/images/threeNodestwoEdges_b.png
diff --git a/src/contraction/doc/images/threeNodestwoEdges_c.png b/doc/contraction/images/threeNodestwoEdges_c.png
similarity index 100%
rename from src/contraction/doc/images/threeNodestwoEdges_c.png
rename to doc/contraction/images/threeNodestwoEdges_c.png
diff --git a/src/contraction/doc/images/twoNodesoneEdge_a.png b/doc/contraction/images/twoNodesoneEdge_a.png
similarity index 100%
rename from src/contraction/doc/images/twoNodesoneEdge_a.png
rename to doc/contraction/images/twoNodesoneEdge_a.png
diff --git a/src/contraction/doc/images/twoNodesoneEdge_b.png b/doc/contraction/images/twoNodesoneEdge_b.png
similarity index 100%
rename from src/contraction/doc/images/twoNodesoneEdge_b.png
rename to doc/contraction/images/twoNodesoneEdge_b.png
diff --git a/src/contraction/doc/images/undirected_sampledata_a.png b/doc/contraction/images/undirected_sampledata_a.png
similarity index 100%
rename from src/contraction/doc/images/undirected_sampledata_a.png
rename to doc/contraction/images/undirected_sampledata_a.png
diff --git a/src/contraction/doc/images/undirected_sampledata_b.png b/doc/contraction/images/undirected_sampledata_b.png
similarity index 100%
rename from src/contraction/doc/images/undirected_sampledata_b.png
rename to doc/contraction/images/undirected_sampledata_b.png
diff --git a/src/contraction/doc/images/undirected_sampledata_c.png b/doc/contraction/images/undirected_sampledata_c.png
similarity index 100%
rename from src/contraction/doc/images/undirected_sampledata_c.png
rename to doc/contraction/images/undirected_sampledata_c.png
diff --git a/doc/contraction/pgr_contractGraph.rst b/doc/contraction/pgr_contractGraph.rst
new file mode 100644
index 0000000..0c875d9
--- /dev/null
+++ b/doc/contraction/pgr_contractGraph.rst
@@ -0,0 +1,171 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_contractGraph:
+
+pgr_contractGraph - Experimental
+===============================================================================
+
+``pgr_contractGraph`` — Performs graph contraction and returns the contracted vertices and edges.
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph
+
+   Boost Graph Inside
+
+.. rubric:: Availability: 2.3.0
+
+.. include:: proposed.rst
+   :start-after: begin-warn-expr
+   :end-before: end-warn-expr
+
+
+Synopsis
+-------------
+
+Contraction reduces the size of the graph by removing some of the vertices and edges and, for example, might add edges that represent a sequence of original edges decreasing the total time and space used in graph algorithms.
+
+Characteristics
+-------------------------------------------------------------------------------
+
+The main Characteristics are:
+  - Process is done only on edges with positive costs.
+
+  - There are two types of contraction methods used namely,
+
+    - Dead End Contraction
+    - Linear Contraction
+
+  - The values returned include the added edges and contracted vertices.
+
+  - The returned values are ordered as follows:
+
+    - column `id` ascending when type = `v`
+    - column `id` descending when type = `e`
+
+
+
+Signature Summary:
+------------------
+
+The pgr_contractGraph function has the following signatures:
+
+.. code-block:: none
+
+    pgr_contractGraph(edges_sql, contraction_order)
+    pgr_contractGraph(edges_sql, contraction_order, max_cycles, forbidden_vertices, directed)
+
+    RETURNS SETOF (seq, type, id, contracted_vertices, source, target, cost)
+
+
+Signatures
+-------------------------------------------------------------------------------
+
+.. index::
+    single: contractGraph(Minimal Use)
+
+Minimal signature
+.......................................
+
+.. code-block:: none
+
+    pgr_contractGraph(edges_sql, contraction_order)
+
+:Example: Making a dead end contraction and a linear contraction.
+
+.. literalinclude:: doc-contractGraph.queries
+   :start-after: -- q1
+   :end-before: -- q2
+
+Complete signature
+.......................................
+
+.. code-block:: none
+
+    pgr_contractGraph(edges_sql, contraction_order, max_cycles, forbidden_vertices, directed)
+
+:Example: Making a dead end contraction and a linear contraction and vertex 2 is forbidden from contraction
+
+.. literalinclude:: doc-contractGraph.queries
+   :start-after: -- q2
+   :end-before: -- q3
+
+
+.. include:: pgRouting-concepts.rst
+    :start-after: basic_edges_sql_start
+    :end-before: basic_edges_sql_end
+
+
+Description of the parameters of the signatures
+-------------------------------------------------------------------------------
+
+======================= ====================== =================================================
+Column                  Type                   Description
+======================= ====================== =================================================
+**edges_sql**           ``TEXT``               SQL query as described above.
+**contraction_order**   ``ARRAY[ANY-INTEGER]`` Ordered contraction operations.
+                                                -  1 = Dead end contraction
+                                                -  2 = Linear contraction
+**forbidden_vertices**  ``ARRAY[ANY-INTEGER]`` (optional). Identifiers of vertices forbidden from contraction. Default is an empty array.
+**max_cycles**          ``INTEGER``            (optional). Number of times the contraction operations on `contraction_order` will be performed. Default is 1.
+**directed**            ``BOOLEAN``            * When ``true`` the graph is considered as `Directed`.
+                                               * When ``false`` the graph is considered as `Undirected`.
+======================= ====================== =================================================
+
+
+Description of the return values
+-------------------------------------------------------------------------------
+
+RETURNS SETOF  (seq, type, id, contracted_vertices, source, target, cost)
+
+The function returns a single row. The columns of the row are:
+
+============================ =================   ===================================================================
+Column                       Type                Description
+============================ =================   ===================================================================
+**seq**                      ``INTEGER``         Sequential value starting from **1**.
+**type**                     ``TEXT``            Type of the `id`.
+                                                  - 'v' when `id` is an identifier of a vertex.
+                                                  - 'e' when `id` is an identifier of an edge.
+**id**                       ``BIGINT``          Identifier of:
+                                                  * the  vertex when `type = 'v'`.
+
+                                                    - The vertex belongs to the edge_table passed as a parameter.
+                                                  * the edge when `type = 'e'`.
+
+                                                    - The `id` is a decreasing sequence starting from **-1**.
+
+                                                    - Representing a pseudo `id` as is not incorporated into the edge_table.
+**contracted_vertices**      ``ARRAY[BIGINT]``   Array of contracted vertex identifiers.
+**source**                   ``BIGINT``          Identifier of the source vertex of the current edge `id`. Valid values when `type = 'e'`.
+**target**                   ``BIGINT``          Identifier of the target vertex of the current edge `id`. Valid values when `type = 'e'`.
+**cost**                     ``FLOAT``           Weight of the edge (`source`, `target`). Valid values when `type = 'e'`.
+============================ =================   ===================================================================
+
+Examples
+========
+
+:Example: Only dead end contraction
+
+.. literalinclude:: doc-contractGraph.queries
+   :start-after: -- q3
+   :end-before: -- q4
+
+:Example: Only linear contraction
+
+.. literalinclude:: doc-contractGraph.queries
+   :start-after: -- q4
+   :end-before: -- q5
+
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/costMatrix/CMakeLists.txt b/doc/costMatrix/CMakeLists.txt
new file mode 100644
index 0000000..5af97eb
--- /dev/null
+++ b/doc/costMatrix/CMakeLists.txt
@@ -0,0 +1,18 @@
+
+SET(LOCAL_FILES
+    costMatrix-category.rst
+    pgr_aStarCostMatrix.rst
+    pgr_bdDijkstraCostMatrix.rst
+    pgr_withPointsCostMatrix.rst
+    cost-category.rst
+    pgr_bdAstarCostMatrix.rst
+    pgr_dijkstraCostMatrix.rst
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}")
+    list(APPEND LOCAL_DOC_FILES  ${PGR_DOCUMENTATION_SOURCE_DIR}/${f})
+endforeach()
+
+set(PgRouting_DOC_FILES ${PgRouting_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE)
+
diff --git a/doc/costMatrix/cost-category.rst b/doc/costMatrix/cost-category.rst
new file mode 100644
index 0000000..8627cd6
--- /dev/null
+++ b/doc/costMatrix/cost-category.rst
@@ -0,0 +1,75 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _Cost:
+
+Cost - Category
+===============================================================================
+
+.. index from here
+
+* :ref:`pgr_aStarCost`
+* :ref:`pgr_bdAstarCost`
+* :ref:`pgr_bdDijkstraCost`
+* :ref:`pgr_dijkstraCost`
+* :ref:`pgr_withPointsCost`
+
+.. index to here
+
+.. include:: proposed.rst
+    :start-after: begin-warning
+    :end-before: end-warning
+
+General Information
+-------------------------------------------------------------------------------
+
+
+Characteristics
+................
+
+The main Characteristics are:
+
+* Each function works as part of the family it belongs to.
+* It does not return a path.
+* Returns the sum of the costs of the resulting path(s) for pair combination of nodes in the graph.
+* Process is done only on edges with positive costs.
+* Values are returned when there is a path.
+
+  * The returned values are in the form of a set of `(start_vid, end_vid, agg_cost)`.
+
+  * When the starting vertex and ending vertex are the same, there is no path.
+
+    * The `agg_cost` int the non included values `(v, v)` is `0`.
+
+  * When the starting vertex and ending vertex are the different and there is no path.
+
+    * The `agg_cost` in the non included values `(u, v)` is :math:`\infty`.
+
+* Let be the case the values returned are stored in a table, so the unique index would be the pair: `(start_vid, end_vid)`.
+
+* Depending on the function and its parameters, the results can be symmetric.
+
+  * The  `agg_cost` of `(u, v)` is the same as for `(v, u)`.
+
+* Any duplicated value in the `start_vids` or in `end_vids` are ignored.
+
+* The returned values are ordered:
+
+  * `start_vid` ascending
+  * `end_vid` ascending
+
+
+
+See Also
+................
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/costMatrix/costMatrix-category.rst b/doc/costMatrix/costMatrix-category.rst
new file mode 100644
index 0000000..fa514ae
--- /dev/null
+++ b/doc/costMatrix/costMatrix-category.rst
@@ -0,0 +1,108 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _CostMatrix:
+
+Cost Matrix - Category
+===============================================================================
+
+.. index from here
+
+* :ref:`pgr_aStarCostMatrix`
+* :ref:`pgr_bdAstarCostMatrix`
+* :ref:`pgr_bdDijkstraCostMatrix`
+* :ref:`pgr_dijkstraCostMatrix`
+* :ref:`pgr_withPointsCostMatrix`
+
+.. index to here
+
+.. include:: proposed.rst
+    :start-after: begin-warning
+    :end-before: end-warning
+
+.. toctree::
+    :hidden:
+
+    pgr_aStarCostMatrix
+    pgr_bdAstarCostMatrix
+    pgr_bdDijkstraCostMatrix
+    pgr_dijkstraCostMatrix
+    pgr_withPointsCostMatrix
+
+
+General Information
+-------------------------------------------------------------------------------
+
+Synopsis
+...................
+
+:ref:`tsp` needs as input a symmetric cost matrix and no edge `(u, v)` must value :math:`\infty`.
+
+This collection of functions will return a cost matrix in form of a table.
+
+
+Characteristics
+................
+
+The main Characteristics are:
+
+* Can be used as input to :ref:`pgr_tsp`.
+
+  * :directly: when the resulting matrix is symmetric and there is no :math:`\infty` value.
+  * It will be the users responsibility to make the matrix symmetric.
+
+    * By using geometric or harmonic average of the non symmetric values.
+    * By using max or min the non symmetric values.
+    * By setting the upper triangle to be the mirror image of the lower triangle.
+    * By setting the lower triangle to be the mirror image of the upper triangle.
+
+  * It is also the users responsibility to fix an :math:`\infty` value.
+
+* Each function works as part of the family it belongs to.
+* It does not return a path.
+* Returns the sum of the costs of the shortest path for pair combination of nodes in the graph.
+* Process is done only on edges with positive costs.
+* Values are returned when there is a path.
+
+  * The returned values are in the form of a set of `(start_vid, end_vid, agg_cost)`.
+
+  * When the starting vertex and ending vertex are the same, there is no path.
+
+    * The `agg_cost` int the non included values `(v, v)` is `0`.
+
+  * When the starting vertex and ending vertex are the different and there is no path.
+
+    * The `agg_cost` in the non included values `(u, v)` is :math:`\infty`.
+
+* Let be the case the values returned are stored in a table, so the unique index would be the pair: `(start_vid, end_vid)`.
+
+* Depending on the function and its parameters, the results can be symmetric.
+
+  * The  `agg_cost` of `(u, v)` is the same as for `(v, u)`.
+
+* Any duplicated value in the `start_vids` are ignored.
+
+* The returned values are ordered:
+
+  * `start_vid` ascending
+  * `end_vid` ascending
+
+* Running time: approximately :math:`O(| start\_vids | * (V \log V + E))`
+
+
+
+See Also
+................
+
+* :ref:`pgr_tsp`
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/costMatrix/pgr_aStarCostMatrix.rst b/doc/costMatrix/pgr_aStarCostMatrix.rst
new file mode 100644
index 0000000..014fb95
--- /dev/null
+++ b/doc/costMatrix/pgr_aStarCostMatrix.rst
@@ -0,0 +1,161 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_aStarCostMatrix:
+
+pgr_aStarCostMatrix - proposed
+===============================================================================
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_aStarCostMatrix`` - Calculates the a cost matrix using :ref:`pgr_aStar`.
+
+
+.. include:: proposed.rst
+   :start-after: begin-warning
+   :end-before: end-warning
+
+
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph
+
+   Boost Graph Inside
+
+.. rubric:: Availability: 2.4.0
+
+Synopsis
+-------------------------------------------------------------------------------
+
+Using aStar algorithm, calculate and return a cost matrix.
+
+Signature Summary
+-----------------
+
+.. code-block:: none
+
+    pgr_aStarCostMatrix(edges_sql, vids)
+    pgr_aStarCostMatrix(edges_sql, vids, directed, heuristic, factor, epsilon)
+    RETURNS SET OF (start_vid, end_vid, agg_cost)
+
+
+
+Signatures
+-------------------------------------------------------------------------------
+
+.. index::
+    single: aStarCostMatrix(Minimal Use) - Proposed
+
+Minimal Signature
+...............................................................................
+
+The minimal signature:
+    - Is for a **directed** graph.
+
+.. code-block:: none
+
+    pgr_aStarCostMatrix(edges_sql, vids)
+    RETURNS SET OF (start_vid, end_vid, agg_cost)
+
+
+:Example: Cost matrix for vertices 1, 2, 3, and 4.
+
+
+.. literalinclude:: doc-pgr_fooDmatrix.queries
+   :start-after: -- astar q1
+   :end-before: -- astar q2
+
+
+.. index::
+    single: aStarCostMatrix(Complete Signature) - Proposed
+
+Complete Signature
+...............................................................................
+
+.. code-block:: none
+
+    pgr_aStarCostMatrix(edges_sql, vids, directed, heuristic, factor, epsilon)
+    RETURNS SET OF (start_vid, end_vid, agg_cost)
+
+
+:Example: Cost matrix for an undirected graph for vertices 1, 2, 3, and 4.
+
+This example returns a symmetric cost matrix.
+
+.. literalinclude:: doc-pgr_fooDmatrix.queries
+   :start-after: -- astar q2
+   :end-before: -- astar q3
+
+
+Description of the Signatures
+-------------------------------------------------------------------------------
+
+.. include:: pgRouting-concepts.rst
+    :start-after: xy_edges_sql_start
+    :end-before: xy_edges_sql_end
+
+
+Description of the parameters of the signatures
+...............................................................................
+
+================ ====================== =================================================
+Parameter        Type                   Description
+================ ====================== =================================================
+**edges_sql**    ``TEXT``               Edges SQL query as described above.
+**vids**         ``ARRAY[ANY-INTEGER]`` Array of vertices_identifiers.
+**directed**     ``BOOLEAN``            - Optional.
+
+                                          - When ``false`` the graph is considered as Undirected.
+                                          - Default is ``true`` which considers the graph as Directed.
+
+**heuristic**    ``INTEGER``            (optional). Heuristic number. Current valid values 0~5. Default ``5``
+
+                                          - 0: h(v) = 0 (Use this value to compare with pgr_dijkstra)
+                                          - 1: h(v) abs(max(dx, dy))
+                                          - 2: h(v) abs(min(dx, dy))
+                                          - 3: h(v) = dx * dx + dy * dy
+                                          - 4: h(v) = sqrt(dx * dx + dy * dy)
+                                          - 5: h(v) = abs(dx) + abs(dy)
+
+**factor**       ``FLOAT``              (optional). For units manipulation. :math:`factor > 0`.  Default ``1``.
+**epsilon**      ``FLOAT``              (optional). For less restricted results. :math:`epsilon >= 1`.  Default ``1``.
+================ ====================== =================================================
+
+
+
+.. include:: pgRouting-concepts.rst
+    :start-after: return_cost_start
+    :end-before: return_cost_end
+
+
+
+Examples
+-------------------------------------------------------------------------------
+
+:Example: Use with tsp
+
+.. literalinclude:: doc-pgr_fooDmatrix.queries
+   :start-after: -- astar q3
+   :end-before: -- astar q4
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* :ref:`astar`
+* :ref:`costMatrix`
+* :ref:`tsp`
+* The queries use the :doc:`sampledata` network.
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/costMatrix/pgr_bdAstarCostMatrix.rst b/doc/costMatrix/pgr_bdAstarCostMatrix.rst
new file mode 100644
index 0000000..eca35a9
--- /dev/null
+++ b/doc/costMatrix/pgr_bdAstarCostMatrix.rst
@@ -0,0 +1,144 @@
+.. 
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_bdAstarCostMatrix:
+
+pgr_bdAstarCostMatrix - proposed
+===============================================================================
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_bdAstarCostMatrix`` - Calculates the a cost matrix using :ref:`pgr_bdAstar`.
+
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph
+
+   Boost Graph Inside
+
+.. rubric:: Availability: 2.5.0
+   
+.. include:: proposed.rst
+   :start-after: begin-warn-expr
+   :end-before: end-warn-expr
+
+Synopsis
+-------------------------------------------------------------------------------
+
+Using Dijkstra algorithm, calculate and return a cost matrix.
+
+Signature Summary
+-----------------
+
+.. code-block:: none
+
+    pgr_bdAstarCostMatrix(edges_sql, start_vids)
+    pgr_bdAstarCostMatrix(edges_sql, start_vids, [, directed , heuristic, factor, epsilon])
+    RETURNS SET OF (start_vid, end_vid, agg_cost)
+    OR EMPTY SET
+
+
+Signatures
+-------------------------------------------------------------------------------
+
+.. index::
+    single: bdAstarCostMatrix(Minimal Use) - Proposed
+
+Minimal Signature
+...............................................................................
+
+.. code-block:: none
+
+    pgr_bdAstarCostMatrix(edges_sql, start_vids)
+    RETURNS SET OF (start_vid, end_vid, agg_cost)
+    OR EMPTY SET
+
+This usage calculates the cost from the each ``start_vid`` in ``start_vids`` to  each ``start_vid`` in ``start_vids``
+  -  on a **directed** graph
+  -  with **heuristic**'s value 5
+  -  with **factor**'s value 1
+  -  with **epsilon**'s value 1
+
+
+:Example: Cost matrix for vertices 1, 2, 3, and 4.
+
+
+.. literalinclude:: doc-pgr_fooDmatrix.queries
+   :start-after: -- bdAstar q1
+   :end-before: -- bdAstar q2
+
+
+.. index::
+    single: bdAstarCostMatrix(Complete Signature) - Proposed
+
+Complete Signature
+...............................................................................
+
+.. code-block:: none
+
+    pgr_bdAstarCostMatrix(edges_sql, start_vids, [, directed , heuristic, factor, epsilon])
+    RETURNS SET OF (start_vid, end_vid, agg_cost)
+    OR EMPTY SET
+
+This usage calculates the cost from the each ``start_vid`` in ``start_vids`` to  each ``start_vid`` in ``start_vids`` allowing the user to choose
+    * if the graph is **directed** or **undirected**
+    * **heuristic**,
+    * and/or **factor**
+    * and/or **epsilon**.
+
+
+:Example: Cost matrix for an undirected graph for vertices 1, 2, 3, and 4.
+
+This example returns a symmetric cost matrix.
+
+.. literalinclude:: doc-pgr_fooDmatrix.queries
+   :start-after: -- bdAstar q2
+   :end-before: -- bdAstar q3
+
+
+Description of the Signatures
+-------------------------------------------------------------------------------
+
+.. include:: pgRouting-concepts.rst
+    :start-after: xy_edges_sql_start
+    :end-before: xy_edges_sql_end
+
+.. include:: bdAstar-family.rst
+    :start-after: parameters_begin
+    :end-before: parameters_end
+
+.. include:: pgRouting-concepts.rst
+    :start-after: return_cost_start
+    :end-before: return_cost_end
+
+
+Examples
+-------------------------------------------------------------------------------
+
+:Example: Use with tsp
+
+.. literalinclude:: doc-pgr_fooDmatrix.queries
+   :start-after: -- bdAstar q3
+   :end-before: -- bdAstar q4
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* :ref:`bdAstar`
+* :ref:`costMatrix`
+* :ref:`tsp`
+* The queries use the :doc:`sampledata` network.
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/costMatrix/pgr_bdDijkstraCostMatrix.rst b/doc/costMatrix/pgr_bdDijkstraCostMatrix.rst
new file mode 100644
index 0000000..c1629cb
--- /dev/null
+++ b/doc/costMatrix/pgr_bdDijkstraCostMatrix.rst
@@ -0,0 +1,143 @@
+.. 
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_bdDijkstraCostMatrix:
+
+pgr_bdDijkstraCostMatrix - proposed
+===============================================================================
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_bdDijkstraCostMatrix`` - Calculates the a cost matrix using :ref:`pgr_bdDijkstra`.
+
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph
+
+   Boost Graph Inside
+
+.. rubric:: Availability: 2.5.0
+
+.. include:: proposed.rst
+   :start-after: begin-warn-expr
+   :end-before: end-warn-expr
+
+Synopsis
+-------------------------------------------------------------------------------
+
+Using Dijkstra algorithm, calculate and return a cost matrix.
+
+Signature Summary
+-----------------
+
+.. code-block:: none
+
+    pgr_bdDijkstraCostMatrix(edges_sql, start_vids)
+    pgr_bdDijkstraCostMatrix(edges_sql, start_vids, directed)
+    RETURNS SET OF (start_vid, end_vid, agg_cost)
+
+
+
+Signatures
+-------------------------------------------------------------------------------
+
+.. index::
+    single: bdDijkstraCostMatrix(Minimal Use) - Proposed
+
+Minimal Signature
+...............................................................................
+
+The minimal signature:
+    - Is for a **directed** graph.
+
+.. code-block:: none
+
+    pgr_bdDijkstraCostMatrix(edges_sql, start_vid)
+    RETURNS SET OF (start_vid, end_vid, agg_cost)
+
+
+:Example: Cost matrix for vertices 1, 2, 3, and 4.
+
+
+.. literalinclude:: doc-pgr_fooDmatrix.queries
+   :start-after: -- bdDijkstra q1
+   :end-before: -- bdDijkstra q2
+
+
+.. index::
+    single: bdDijkstraCostMatrix(Complete Signature) - Proposed
+
+Complete Signature
+...............................................................................
+
+.. code-block:: none
+
+    pgr_bdDijkstraCostMatrix(edges_sql, start_vids, directed:=true)
+    RETURNS SET OF (start_vid, end_vid, agg_cost)
+
+
+:Example: Cost matrix for an undirected graph for vertices 1, 2, 3, and 4.
+
+This example returns a symmetric cost matrix.
+
+.. literalinclude:: doc-pgr_fooDmatrix.queries
+   :start-after: -- bdDijkstra q2
+   :end-before: -- bdDijkstra q3
+
+
+Description of the Signatures
+-------------------------------------------------------------------------------
+
+.. include:: pgRouting-concepts.rst
+    :start-after: basic_edges_sql_start
+    :end-before: basic_edges_sql_end
+
+
+
+Description of the parameters of the signatures
+...............................................................................
+
+================ ====================== =================================================
+Parameter        Type                   Description
+================ ====================== =================================================
+**edges_sql**    ``TEXT``               Edges SQL query as described above.
+**start_vids**   ``ARRAY[ANY-INTEGER]`` Array of identifiers of the vertices.
+**directed**     ``BOOLEAN``            (optional). When ``false`` the graph is considered as Undirected. Default is ``true`` which considers the graph as Directed.
+================ ====================== =================================================
+
+
+
+.. include:: pgRouting-concepts.rst
+    :start-after: return_cost_start
+    :end-before: return_cost_end
+
+Examples
+-------------------------------------------------------------------------------
+
+:Example: Use with tsp
+
+.. literalinclude:: doc-pgr_fooDmatrix.queries
+   :start-after: -- bdDijkstra q3
+   :end-before: -- bdDijkstra q4
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* :ref:`bdDijkstra`
+* :ref:`costMatrix`
+* :ref:`tsp`
+* The queries use the :doc:`sampledata` network.
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/costMatrix/pgr_dijkstraCostMatrix.rst b/doc/costMatrix/pgr_dijkstraCostMatrix.rst
new file mode 100644
index 0000000..5d0150f
--- /dev/null
+++ b/doc/costMatrix/pgr_dijkstraCostMatrix.rst
@@ -0,0 +1,144 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_dijkstraCostMatrix:
+
+pgr_dijkstraCostMatrix - proposed
+===============================================================================
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_dijkstraCostMatrix`` - Calculates the a cost matrix using pgr_dijktras.
+
+
+.. include:: proposed.rst
+   :start-after: begin-warning
+   :end-before: end-warning
+
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph
+
+   Boost Graph Inside
+
+.. rubric:: Availability: 2.3.0
+
+Synopsis
+-------------------------------------------------------------------------------
+
+Using Dijkstra algorithm, calculate and return a cost matrix.
+
+Signature Summary
+-----------------
+
+.. code-block:: none
+
+    pgr_dijkstraCostMatrix(edges_sql, start_vids)
+    pgr_dijkstraCostMatrix(edges_sql, start_vids, directed)
+    RETURNS SET OF (start_vid, end_vid, agg_cost)
+
+
+
+Signatures
+-------------------------------------------------------------------------------
+
+.. index::
+    single: dijkstraCostMatrix(Minimal Use) - Proposed
+
+Minimal Signature
+...............................................................................
+
+The minimal signature:
+    - Is for a **directed** graph.
+
+.. code-block:: none
+
+    pgr_dijkstraCostMatrix(edges_sql, start_vid)
+    RETURNS SET OF (start_vid, end_vid, agg_cost)
+
+
+:Example: Cost matrix for vertices 1, 2, 3, and 4.
+
+
+.. literalinclude:: doc-pgr_fooDmatrix.queries
+   :start-after: -- dijkstra q1
+   :end-before: -- dijkstra q2
+
+
+.. index::
+    single: dijkstraCostMatrix(Complete Signature) - Proposed
+
+Complete Signature
+...............................................................................
+
+.. code-block:: none
+
+    pgr_dijkstraCostMatrix(edges_sql, start_vids, directed:=true)
+    RETURNS SET OF (start_vid, end_vid, agg_cost)
+
+
+:Example: Cost matrix for an undirected graph for vertices 1, 2, 3, and 4.
+
+This example returns a symmetric cost matrix.
+
+.. literalinclude:: doc-pgr_fooDmatrix.queries
+   :start-after: -- dijkstra q2
+   :end-before: -- dijkstra q3
+
+
+Description of the Signatures
+-------------------------------------------------------------------------------
+
+.. include:: pgRouting-concepts.rst
+    :start-after: basic_edges_sql_start
+    :end-before: basic_edges_sql_end
+
+
+
+Description of the parameters of the signatures
+...............................................................................
+
+================ ====================== =================================================
+Parameter        Type                   Description
+================ ====================== =================================================
+**edges_sql**    ``TEXT``               Edges SQL query as described above.
+**start_vids**   ``ARRAY[ANY-INTEGER]`` Array of identifiers of the vertices.
+**directed**     ``BOOLEAN``            (optional). When ``false`` the graph is considered as Undirected. Default is ``true`` which considers the graph as Directed.
+================ ====================== =================================================
+
+
+.. include:: pgRouting-concepts.rst
+    :start-after: return_cost_start
+    :end-before: return_cost_end
+
+
+Examples
+-------------------------------------------------------------------------------
+
+:Example: Use with tsp
+
+.. literalinclude:: doc-pgr_fooDmatrix.queries
+   :start-after: -- dijkstra q3
+   :end-before: -- dijkstra q4
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* :ref:`dijkstra`
+* :ref:`costMatrix`
+* :ref:`tsp`
+* The queries use the :doc:`sampledata` network.
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/src/costMatrix/doc/pgr_withPointsCostMatrix.rst b/doc/costMatrix/pgr_withPointsCostMatrix.rst
similarity index 100%
rename from src/costMatrix/doc/pgr_withPointsCostMatrix.rst
rename to doc/costMatrix/pgr_withPointsCostMatrix.rst
diff --git a/doc/dijkstra/CMakeLists.txt b/doc/dijkstra/CMakeLists.txt
new file mode 100644
index 0000000..d4393d5
--- /dev/null
+++ b/doc/dijkstra/CMakeLists.txt
@@ -0,0 +1,15 @@
+
+SET(LOCAL_FILES
+    dijkstra-family.rst
+    pgr_dijkstraCost.rst
+    pgr_dijkstra.rst
+    pgr_dijkstraVia.rst
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}")
+    list(APPEND LOCAL_DOC_FILES  ${PGR_DOCUMENTATION_SOURCE_DIR}/${f})
+endforeach()
+
+set(PgRouting_DOC_FILES ${PgRouting_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE)
+
diff --git a/doc/dijkstra/dijkstra-family.rst b/doc/dijkstra/dijkstra-family.rst
new file mode 100644
index 0000000..54f05e0
--- /dev/null
+++ b/doc/dijkstra/dijkstra-family.rst
@@ -0,0 +1,151 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _dijkstra:
+
+Dijkstra - Family of functions
+===============================================================================
+
+.. index from here
+
+* :ref:`pgr_dijkstra` - Dijkstra's algorithm for the shortest paths.
+* :ref:`pgr_dijkstraCost` - Get the aggregate cost of the shortest paths.
+* :ref:`pgr_dijkstraCostMatrix` - Use pgr_dijkstra to create a costs matrix.
+* :ref:`pgr_drivingDistance` - Use pgr_dijkstra to calculate catchament information.
+* :ref:`pgr_ksp` - Use Yen algorithm with pgr_dijkstra to get the K shortest paths.
+* :ref:`pgr_dijkstraVia` - Get a route of a seuence of vertices.
+
+.. index to here
+
+
+.. toctree::
+    :hidden:
+
+    pgr_dijkstra
+    pgr_dijkstraCost
+    pgr_dijkstraCostMatrix
+    pgr_drivingDistance
+    pgr_KSP
+    pgr_dijkstraVia
+
+
+The problem definition (Advanced documentation)
+-----------------------------------------------
+
+
+Given the following query:
+
+
+pgr_dijkstra(:math:`sql, start_{vid}, end_{vid}, directed`)
+
+where  :math:`sql = \{(id_i, source_i, target_i, cost_i, reverse\_cost_i)\}`
+
+and
+
+- :math:`source = \bigcup source_i`,
+- :math:`target = \bigcup target_i`,
+
+The graphs are defined as follows:
+
+.. rubric:: Directed graph
+
+The weighted directed graph, :math:`G_d(V,E)`, is definied by:
+
+* the set of vertices  :math:`V`
+
+  - :math:`V = source \cup target \cup {start_{vid}} \cup  {end_{vid}}`
+
+* the set of edges :math:`E`
+
+  - :math:`E = \begin{cases}
+    \text{ }  \{(source_i, target_i, cost_i) \text{ when } cost >=0 \} & \quad \text{if } reverse\_cost = \varnothing \\
+    \text{ }  \text{ }  & \quad \text{ } \\
+    \text{ }  \{(source_i, target_i, cost_i) \text{ when } cost >=0 \} &  \quad \text{ } \\
+    \cup      \{(target_i, source_i, reverse\_cost_i) \text{ when } reverse\_cost_i>=0 \} & \quad \text{if } reverse\_cost \neq \varnothing \\
+    \end{cases}`
+
+
+
+.. rubric:: Undirected graph
+
+The weighted undirected graph, :math:`G_u(V,E)`, is definied by:
+
+* the set of vertices  :math:`V`
+
+  - :math:`V = source \cup target \cup {start_v{vid}} \cup  {end_{vid}}`
+
+
+* the set of edges :math:`E`
+
+  - :math:`E = \begin{cases}
+    \text{ }  \{(source_i, target_i, cost_i) \text{ when } cost >=0 \}  & \quad \text{ } \\
+    \cup      \{(target_i, source_i, cost_i) \text{ when } cost >=0 \}  & \quad \text{ if } reverse\_cost = \varnothing \\
+    \text{ }  \text{ }  & \text{ } \\
+    \text{ }  \{(source_i, target_i, cost_i) \text{ when } cost >=0 \} & \text{ } \\
+    \cup  \{(target_i, source_i, cost_i) \text{ when } cost >=0 \} & \text{ } \\
+    \cup  \{(target_i, source_i, reverse\_cost_i) \text{ when } reverse\_cost_i >=0)\} & \text{ } \\
+    \cup  \{(source_i, target_i, reverse\_cost_i) \text{ when } reverse\_cost_i >=0)\} & \quad \text{ if } reverse\_cost \neq \varnothing \\
+    \end{cases}`
+
+
+
+.. rubric:: The problem
+
+Given:
+
+- :math:`start_{vid} \in V` a starting vertex
+- :math:`end_{vid} \in V` an ending vertex
+- :math:`G(V,E) = \begin{cases}
+  G_d(V,E) & \quad \text{ if6 } directed = true \\
+  G_u(V,E) & \quad \text{ if5 } directed = false \\
+  \end{cases}`
+
+Then:
+
+.. math::`pgr_dijkstra(sql, start_{vid}, end_{vid}, directed) =
+  \begin{cases}
+  \text{shortest path } \boldsymbol{\pi} \text{ between } start_{vid} \text{and } end_{vid} & \quad \text{if7 } \exists  \boldsymbol{\pi}  \\
+  \varnothing & \quad \text{otherwise} \\
+  \end{cases}`
+
+
+- :math:`\boldsymbol{\pi} = \{(path\_seq_i, node_i, edge_i, cost_i, agg\_cost_i)\}`
+
+where:
+  - :math:`path\_seq_i = i`
+  - :math:`path\_seq_{| \pi |} = | \pi |`
+  - :math:`node_i \in V`
+  - :math:`node_1 = start_{vid}`
+  - :math:`node_{| \pi |}  = end_{vid}`
+  - :math:`\forall i \neq | \pi |, \quad (node_i, node_{i+1}, cost_i) \in E`
+  - :math:`edge_i  = \begin{cases}  id_{(node_i, node_{i+1},cost_i)}  &\quad  \text{when } i \neq | \pi | \\ -1 &\quad  \text{when } i = | \pi | \\ \end{cases}`
+  - :math:`cost_i = cost_{(node_i, node_{i+1})}`
+  - :math:`agg\_cost_i  = \begin{cases}  0   &\quad  \text{when } i = 1  \\ \displaystyle\sum_{k=1}^{i}  cost_{(node_{k-1}, node_k)}  &\quad  \text{when } i \neq 1 \\ \end{cases}`
+
+
+
+In other words: The algorithm returns a the shortest path between :math:`start_{vid}` and :math:`end_{vid}` , if it exists, in terms of a sequence of nodes  and of edges,
+  - :math:`path\_seq` indicates the relative position in the path of the :math:`node` or :math:`edge`.
+  - :math:`cost` is the cost of the edge to be used to go to the next node.
+  - :math:`agg\_cost` is the cost from the :math:`start_{vid}` up to the node.
+
+
+If there is no path, the resulting set is empty.
+
+
+See Also
+-------------------------------------------------------------------------------
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
+
+
diff --git a/doc/dijkstra/pgr_dijkstra.rst b/doc/dijkstra/pgr_dijkstra.rst
new file mode 100644
index 0000000..0a20123
--- /dev/null
+++ b/doc/dijkstra/pgr_dijkstra.rst
@@ -0,0 +1,333 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_dijkstra:
+
+pgr_dijkstra
+===============================================================================
+
+``pgr_dijkstra`` — Returns the shortest path(s) using Dijkstra algorithm.
+In particular, the Dijkstra algorithm implemented by Boost.Graph.
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph/doc/dijkstra_shortest_paths.html
+
+   Boost Graph Inside
+
+.. rubric:: Availability
+
+* pgr_dijkstra(one to one) 2.0.0, signature change 2.1.0
+* pgr_dijkstra(other signatures) 2.1.0
+
+Synopsis
+-------------------------------------------------------------------------------
+
+Dijkstra's algorithm, conceived by Dutch computer scientist Edsger Dijkstra in 1956.
+It is a graph search algorithm that solves the shortest path problem for
+a graph with non-negative edge path costs, producing a shortest path from
+a starting vertex (``start_vid``) to an ending vertex (``end_vid``).
+This implementation can be used with a directed graph and an undirected graph.
+
+Characteristics
+-------------------------------------------------------------------------------
+
+The main Characteristics are:
+  - Process is done only on edges with positive costs.
+  - Values are returned when there is a path.
+
+    - When the starting vertex and ending vertex are the same, there is no path.
+
+      - The `agg_cost` the non included values `(v, v)` is `0`
+
+    - When the starting vertex and ending vertex are the different and there is no path:
+
+      - The `agg_cost` the non included values `(u, v)` is :math:`\infty`
+
+  - For optimization purposes, any duplicated value in the `start_vids` or `end_vids` are ignored.
+
+  - The returned values are ordered:
+
+    - `start_vid` ascending
+    - `end_vid` ascending
+
+  - Running time: :math:`O(| start\_vids | * (V \log V + E))`
+
+
+Signature Summary
+-----------------
+
+.. code-block:: none
+
+    pgr_dijkstra(edges_sql, start_vid,  end_vid)
+    pgr_dijkstra(edges_sql, start_vid,  end_vid,  directed:=true)
+    pgr_dijkstra(edges_sql, start_vid,  end_vids, directed:=true)
+    pgr_dijkstra(edges_sql, start_vids, end_vid,  directed:=true)
+    pgr_dijkstra(edges_sql, start_vids, end_vids, directed:=true)
+
+    RETURNS SET OF (seq, path_seq [, start_vid] [, end_vid], node, edge, cost, agg_cost)
+        OR EMPTY SET
+
+
+Signatures
+-------------------------------------------------------------------------------
+
+.. index::
+    single: dijkstra(Minimal Use)
+
+Minimal signature
+.......................................
+
+.. code-block:: none
+
+    pgr_dijkstra(TEXT edges_sql, BIGINT start_vid, BIGINT end_vid)
+    RETURNS SET OF (seq, path_seq, node, edge, cost, agg_cost) or EMPTY SET
+
+The minimal signature is for a **directed** graph from one ``start_vid`` to one ``end_vid``.
+
+:Example:
+
+.. literalinclude:: doc-pgr_dijkstra.queries
+   :start-after: -- q1
+   :end-before: -- q2
+
+
+.. index::
+    single: dijkstra(One to One)
+
+pgr_dijkstra One to One
+.......................................
+
+.. code-block:: none
+
+    pgr_dijkstra(TEXT edges_sql, BIGINT start_vid, BIGINT end_vid,
+        BOOLEAN directed:=true);
+    RETURNS SET OF (seq, path_seq, node, edge, cost, agg_cost) or EMPTY SET
+
+This signature finds the shortest path from one ``start_vid`` to one ``end_vid``:
+  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
+  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
+
+:Example:
+
+.. literalinclude:: doc-pgr_dijkstra.queries
+   :start-after: -- q2
+   :end-before: -- q3
+
+
+.. index::
+    single: dijkstra(One to Many)
+
+pgr_dijkstra One to many
+.......................................
+
+.. code-block:: none
+
+    pgr_dijkstra(TEXT edges_sql, BIGINT start_vid, ARRAY[ANY_INTEGER] end_vids,
+        BOOLEAN directed:=true);
+    RETURNS SET OF (seq, path_seq, end_vid, node, edge, cost, agg_cost) or EMPTY SET
+
+This signature finds the shortest path from one ``start_vid`` to each ``end_vid`` in ``end_vids``:
+  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
+  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
+
+Using this signature, will load once the graph and perform a one to one `pgr_dijkstra`
+where the starting vertex is fixed, and stop when all ``end_vids`` are reached.
+
+  - The result is equivalent to the union of the results of the one to one `pgr_dijkstra`.
+  - The extra ``end_vid`` in the result is used to distinguish to which path it belongs.
+
+:Example:
+
+.. literalinclude:: doc-pgr_dijkstra.queries
+   :start-after: -- q3
+   :end-before: -- q4
+
+
+
+
+.. index::
+    single: dijkstra(Many to One)
+
+pgr_dijkstra Many to One
+.......................................
+
+.. code-block:: none
+
+    pgr_dijkstra(TEXT edges_sql, ARRAY[ANY_INTEGER] start_vids, BIGINT end_vid,
+        BOOLEAN directed:=true);
+    RETURNS SET OF (seq, path_seq, start_vid, node, edge, cost, agg_cost) or EMPTY SET
+
+This signature finds the shortest path from each ``start_vid`` in  ``start_vids`` to one ``end_vid``:
+  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
+  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
+
+Using this signature, will load once the graph and perform several one to one `pgr_dijkstra`
+where the ending vertex is fixed.
+
+  - The result is the union of the results of the one to one `pgr_dijkstra`.
+  - The extra ``start_vid`` in the result is used to distinguish to which path it belongs.
+
+:Example:
+
+.. literalinclude:: doc-pgr_dijkstra.queries
+   :start-after: -- q4
+   :end-before: -- q5
+
+
+
+.. index::
+    single: dijkstra(Many to Many)
+
+pgr_dijkstra Many to Many
+.......................................
+
+.. code-block:: none
+
+    pgr_dijkstra(TEXT edges_sql, ARRAY[ANY_INTEGER] start_vids, ARRAY[ANY_INTEGER] end_vids,
+        BOOLEAN directed:=true);
+    RETURNS SET OF (seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost) or EMPTY SET
+
+This signature finds the shortest path from each ``start_vid`` in  ``start_vids`` to each ``end_vid`` in ``end_vids``:
+  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
+  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
+
+Using this signature, will load once the graph and perform several one to Many `pgr_dijkstra`
+for all ``start_vids``.
+
+  - The result is the union of the results of the one to one `pgr_dijkstra`.
+  - The extra ``start_vid`` in the result is used to distinguish to which path it belongs.
+
+The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish to which path it belongs.
+
+:Example:
+
+.. literalinclude:: doc-pgr_dijkstra.queries
+   :start-after: -- q5
+   :end-before: -- q6
+
+Description of the Signatures
+-------------------------------------------------------------------------------
+
+.. include:: pgRouting-concepts.rst
+    :start-after: basic_edges_sql_start
+    :end-before: basic_edges_sql_end
+
+
+.. pgr_dijkstra_parameters_start
+
+Description of the parameters of the signatures
+...............................................................................
+
+============== ================== ======== =================================================
+Column         Type               Default     Description
+============== ================== ======== =================================================
+**sql**        ``TEXT``                    SQL query as described above.
+**start_vid**  ``BIGINT``                  Identifier of the starting vertex of the path.
+**start_vids** ``ARRAY[BIGINT]``           Array of identifiers of starting vertices.
+**end_vid**    ``BIGINT``                  Identifier of the ending vertex of the path.
+**end_vids**   ``ARRAY[BIGINT]``           Array of identifiers of ending vertices.
+**directed**   ``BOOLEAN``        ``true`` - When ``true`` Graph is considered `Directed`
+                                           - When ``false`` the graph is considered as `Undirected`.
+============== ================== ======== =================================================
+
+.. pgr_dijkstra_parameters_end
+
+
+.. include:: pgRouting-concepts.rst
+    :start-after: return_path_start
+    :end-before: return_path_end
+
+
+Additional Examples
+--------------------------------------------------------------------------------------
+
+The examples of this section are based on the :doc:`sampledata` network.
+
+The examples include combinations from starting vertices 2 and 11 to ending vertices 3 and 5 in a directed and
+undirected graph with and with out reverse_cost.
+
+Examples for queries marked as ``directed`` with ``cost`` and ``reverse_cost`` columns
+.........................................................................................
+
+The examples in this section use the following :ref:`fig1`
+
+.. literalinclude:: doc-pgr_dijkstra.queries
+   :start-after: -- q7
+   :end-before: -- q8
+
+
+
+Examples for queries marked as ``undirected`` with ``cost`` and ``reverse_cost`` columns
+.........................................................................................
+
+The examples in this section use the following :ref:`fig2`
+
+.. literalinclude:: doc-pgr_dijkstra.queries
+   :start-after: -- q9
+   :end-before: -- q10
+
+
+Examples for queries marked as ``directed`` with ``cost`` column
+.........................................................................................
+
+The examples in this section use the following :ref:`fig3`
+
+.. literalinclude:: doc-pgr_dijkstra.queries
+   :start-after: -- q11
+   :end-before: -- q12
+
+
+Examples for queries marked as ``undirected`` with ``cost`` column
+.........................................................................................
+
+The examples in this section use the following :ref:`fig4`
+
+.. literalinclude:: doc-pgr_dijkstra.queries
+   :start-after: -- q13
+   :end-before: -- q14
+
+
+Equvalences between signatures
+.........................................................................................
+
+:Examples: For queries marked as ``directed`` with ``cost`` and ``reverse_cost`` columns
+
+The examples in this section use the following:
+
+* :ref:`fig1`
+
+.. literalinclude:: doc-pgr_dijkstra.queries
+   :start-after: -- q15
+   :end-before: -- q16
+
+
+
+:Examples: For queries marked as ``undirected`` with ``cost`` and ``reverse_cost`` columns
+
+The examples in this section use the following:
+
+* :ref:`fig2`
+
+.. literalinclude:: doc-pgr_dijkstra.queries
+   :start-after: -- q17
+   :end-before: -- q18
+
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm
+* The queries use the :doc:`sampledata` network.
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/dijkstra/pgr_dijkstraCost.rst b/doc/dijkstra/pgr_dijkstraCost.rst
new file mode 100644
index 0000000..c5b08c3
--- /dev/null
+++ b/doc/dijkstra/pgr_dijkstraCost.rst
@@ -0,0 +1,255 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_dijkstraCost:
+
+pgr_dijkstraCost
+===============================================================================
+
+
+Synopsis
+-------------------------------------------------------------------------------
+
+``pgr_dijkstraCost``
+
+Using Dijkstra algorithm implemented by Boost.Graph, and extract only the
+aggregate cost of the shortest path(s) found, for the combination of vertices given.
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph/doc/dijkstra_shortest_paths.html
+
+   Boost Graph Inside
+
+.. rubric:: Availability
+
+* pgr_dijkstraCost(all signatures) 2.2.0
+
+The ``pgr_dijkstraCost`` algorithm, is a good choice to calculate the sum of the costs
+of the shortest path for a subset of pairs of nodes of the graph.
+We make use of the Boost's implementation of dijkstra which runs in
+:math:`O(V \log V + E)` time.
+
+Characteristics
+-------------------------------------------------------------------------------
+
+The main Characteristics are:
+  - It does not return a path.
+  - Returns the sum of the costs of the shortest path for pair combination of nodes in the graph.
+  - Process is done only on edges with positive costs.
+  - Values are returned when there is a path.
+
+    - The returned values are in the form of a set of `(start_vid, end_vid, agg_cost)`.
+
+    - When the starting vertex and ending vertex are the same, there is no path.
+
+      - The `agg_cost` int the non included values `(v, v)` is `0`
+
+    - When the starting vertex and ending vertex are the different and there is no path.
+
+      - The `agg_cost` in the non included values `(u, v)` is :math:`\infty`
+
+  - Let be the case the values returned are stored in a table, so the unique index would be the pair:
+    `(start_vid, end_vid)`.
+
+  - For undirected graphs, the results are symmetric.
+
+    - The  `agg_cost` of `(u, v)` is the same as for `(v, u)`.
+
+  - Any duplicated value in the `start_vids` or `end_vids` is ignored.
+
+  - The returned values are ordered:
+
+    - `start_vid` ascending
+    - `end_vid` ascending
+
+  - Running time: :math:`O(| start\_vids | * (V \log V + E))`
+
+Signature Summary
+-------------------------------------------------------------------------------
+
+.. code-block:: none
+
+     pgr_dijkstraCost(edges_sql, start_vid, end_vid);
+     pgr_dijkstraCost(edges_sql, start_vid, end_vid, directed);
+     pgr_dijkstraCost(edges_sql, start_vids, end_vid, directed);
+     pgr_dijkstraCost(edges_sql, start_vid, end_vids, directed);
+     pgr_dijkstraCost(edges_sql, start_vids, end_vids, directed);
+
+	 RETURNS SET OF (start_vid, end_vid, agg_cost) or EMPTY SET
+
+
+
+Signatures
+-------------------------------------------------------------------------------
+
+.. index::
+	single: dijkstraCost(Minimal Use)
+
+Minimal signature
+...............................................................................
+
+The minimal signature is for a **directed** graph from one ``start_vid`` to one ``end_vid``:
+
+.. code-block:: none
+
+     pgr_dijkstraCost(TEXT edges_sql, BIGINT start_vid, BIGINT end_vid)
+	 RETURNS SET OF (start_vid, end_vid, agg_cost) or EMPTY SET
+
+
+.. rubric:: Example
+
+.. literalinclude:: doc-pgr_dijkstraCost.queries
+   :start-after: --q1
+   :end-before: --q2
+
+
+
+.. index::
+	single: dijkstraCost(One to One)
+
+pgr_dijkstraCost One to One
+...............................................................................
+
+
+This signature performs a Dijkstra from one ``start_vid`` to one ``end_vid``:
+  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
+  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
+
+.. code-block:: none
+
+    pgr_dijkstraCost(TEXT edges_sql, BIGINT start_vid, BIGINT end_vid,
+			 BOOLEAN directed:=true);
+	RETURNS SET OF (start_vid, end_vid, agg_cost) or EMPTY SET
+
+:Example:
+
+.. literalinclude:: doc-pgr_dijkstraCost.queries
+    :start-after: --q2
+    :end-before: --q3
+
+
+.. index::
+    single: dijkstraCost(One to Many)
+
+pgr_dijkstraCost One to Many
+...............................................................................
+
+.. code-block:: none
+
+    pgr_dijkstraCost(TEXT edges_sql, BIGINT start_vid, array[ANY_INTEGER] end_vids,
+	    BOOLEAN directed:=true);
+	RETURNS SET OF (start_vid, end_vid, agg_cost) or EMPTY SET
+
+This signature performs a Dijkstra from one ``start_vid`` to each ``end_vid`` in ``end_vids``:
+  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
+  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
+
+
+:Example:
+
+.. literalinclude:: doc-pgr_dijkstraCost.queries
+   :start-after: --q4
+   :end-before: --q5
+
+
+
+
+.. index::
+	single: dijkstraCost(Many to One)
+
+pgr_dijkstraCost Many to One
+...............................................................................
+
+.. code-block:: none
+
+    pgr_dijkstraCost(TEXT edges_sql, array[ANY_INTEGER] start_vids, BIGINT end_vid,
+			 BOOLEAN directed:=true);
+	RETURNS SET OF (start_vid, end_vid, agg_cost) or EMPTY SET
+
+This signature performs a Dijkstra from each ``start_vid`` in  ``start_vids`` to one ``end_vid``:
+  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
+  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
+
+
+:Example:
+
+.. literalinclude:: doc-pgr_dijkstraCost.queries
+    :start-after: --q3
+    :end-before: --q4
+
+
+
+.. index::
+	single: dijkstraCost(Many to Many)
+
+pgr_dijkstraCost Many to Many
+...............................................................................
+
+.. code-block:: none
+
+    pgr_dijkstraCost(TEXT edges_sql, array[ANY_INTEGER] start_vids, array[ANY_INTEGER] end_vids,
+	    BOOLEAN directed:=true);
+	RETURNS SET OF (start_vid, end_vid, agg_cost) or EMPTY SET
+
+This signature performs a Dijkstra from each ``start_vid`` in  ``start_vids`` to each ``end_vid`` in ``end_vids``:
+  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
+  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
+
+:Example:
+
+.. literalinclude:: doc-pgr_dijkstraCost.queries
+   :start-after: --q5
+   :end-before: --q6
+
+
+
+Description of the Signatures
+-------------------------------------------------------------------------------
+
+.. include:: pgRouting-concepts.rst
+    :start-after: basic_edges_sql_start
+    :end-before: basic_edges_sql_end
+
+.. include:: pgr_dijkstra.rst
+    :start-after: pgr_dijkstra_parameters_start
+    :end-before: pgr_dijkstra_parameters_end
+
+.. include:: pgRouting-concepts.rst
+    :start-after: return_cost_start
+    :end-before: return_cost_end
+
+
+Additional Examples
+-------------------------------------------------------------------------------
+
+:Example 1: Demonstration of repeated values are ignored, and result is sorted.
+
+.. literalinclude:: doc-pgr_dijkstraCost.queries
+    :start-after: --q6
+    :end-before: --q7
+
+:Example 2: Making `start_vids` the same as `end_vids`
+
+.. literalinclude:: doc-pgr_dijkstraCost.queries
+    :start-after: --q7
+    :end-before: --q8
+
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm
+* :doc:`sampledata` network.
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/dijkstra/pgr_dijkstraVia.rst b/doc/dijkstra/pgr_dijkstraVia.rst
new file mode 100644
index 0000000..2ea819d
--- /dev/null
+++ b/doc/dijkstra/pgr_dijkstraVia.rst
@@ -0,0 +1,188 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_dijkstraVia:
+
+pgr_dijkstraVia - Proposed
+===============================================================================
+
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_dijkstraVia`` — Using dijkstra algorithm, it finds the route that goes through
+a list of vertices.
+
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph
+
+   Boost Graph Inside
+
+.. rubric:: Availability: 2.2.0
+
+
+Synopsis
+-------------------------------------------------------------------------------
+
+Given a list of vertices and a graph, this function is equivalent to finding the
+shortest path between :math:`vertex_i` and :math:`vertex_{i+1}` for all :math:`i < size\_of(vertex_via)`.
+
+The paths represents the sections of the route.
+
+.. note:: This is a proposed function
+
+Signatrue Summary
+-------------------------------------------------------------------------------
+
+.. code-block:: none
+
+    pgr_dijkstraVia(edges_sql, via_vertices)
+    pgr_dijkstraVia(edges_sql, via_vertices, directed, strict, U_turn_on_edge)
+
+    RETURNS SET OF (seq, path_pid, path_seq, start_vid, end_vid,
+        node, edge, cost, agg_cost, route_agg_cost) or EMPTY SET
+
+Signatures
+-------------------------------------------------------------------------------
+
+.. index::
+    single: dijkstraVia(Minimal Use) - proposed
+
+Minimal Signature
+...............................................................................
+
+.. code-block:: none
+
+    pgr_dijkstraVia(edges_sql, via_vertices)
+    RETURNS SET OF (seq, path_pid, path_seq, start_vid, end_vid,
+        node, edge, cost, agg_cost, route_agg_cost) or EMPTY SET
+
+:Example: Find the route that visits the vertices 1 3 9  in that order
+
+.. literalinclude:: doc-pgr_dijkstraVia.queries
+    :start-after: --q00
+    :end-before: -- q0
+
+.. index::
+    single: dijkstraVia(Full signature) - proposed
+
+Complete Signature
+...............................................................................
+
+.. code-block:: none
+
+    pgr_dijkstraVia(edges_sql, via_vertices, directed, strict, U_turn_on_edge)
+    RETURNS SET OF (seq, path_pid, path_seq, start_vid, end_vid,
+        node, edge, cost, agg_cost, route_agg_cost) or EMPTY SET
+
+
+:Example: Find the route that visits the vertices 1 3 9  in that order on an undirected graph, avoiding U-turns when possible
+
+.. literalinclude:: doc-pgr_dijkstraVia.queries
+    :start-after: -- q0
+    :end-before: -- q1
+
+
+Description of the Signature
+-------------------------------------------------------------------------------
+
+.. include:: pgRouting-concepts.rst
+    :start-after: basic_edges_sql_start
+    :end-before: basic_edges_sql_end
+
+.. include:: pgRouting-concepts.rst
+    :start-after: pgr_dijkstra_via_parameters_start
+    :end-before: pgr_dijkstra_via_parameters_end
+
+Description of the parameters of the signatures
+...............................................................................
+
+=================== ====================== =================================================
+Parameter           Type                   Description
+=================== ====================== =================================================
+**edges_sql**       ``TEXT``               SQL query as described above.
+**via_vertices**    ``ARRAY[ANY-INTEGER]`` Array of vertices identifiers
+**directed**        ``BOOLEAN``            (optional) Default is true (is directed). When set to false the graph is considered as Undirected
+**strict**          ``BOOLEAN``            (optional) ignores if a subsection of the route is missing and returns everything it found Default is true (is directed). When set to false the graph is considered as Undirected
+**U_turn_on_edge**  ``BOOLEAN``            (optional) Default is true (is directed). When set to false the graph is considered as Undirected
+=================== ====================== =================================================
+
+
+Description of the return values
+...............................................................................
+
+Returns set of ``(start_vid, end_vid, agg_cost)``
+
+================== ============= =================================================
+Column             Type          Description
+================== ============= =================================================
+**seq**            ``BIGINT``    Sequential value starting from 1.
+**path_pid**       ``BIGINT``    Identifier of the path.
+**path_seq**       ``BIGINT``    Sequential value starting from 1 for the path.
+**start_vid**      ``BIGINT``    Identifier of the starting vertex of the path.
+**end_vid**        ``BIGINT``    Identifier of the ending vertex of the path.
+**node**           ``BIGINT``    Identifier of the node in the path from start_vid to end_vid.
+**edge**           ``BIGINT``    Identifier of the edge used to go from node to the next node in the path sequence. -1 for the last node of the path. -2 for the last node of the route.
+**cost**           ``FLOAT``     Cost to traverse from ``node`` using ``edge`` to the next node in the route sequence.
+**agg_cost**       ``FLOAT``     Total cost from ``start_vid`` to ``end_vid`` of the path.
+**route_agg_cost** ``FLOAT``     Total cost from ``start_vid`` of ``path_pid = 1`` to ``end_vid`` of the current ``path_pid`` .
+================== ============= =================================================
+
+
+Examples
+-------------------------------------------------------------------------------
+
+:Example 1: Find the route that visits the vertices 1 5 3 9 4 in that order
+
+.. literalinclude:: doc-pgr_dijkstraVia.queries
+    :start-after: -- q1
+    :end-before: -- q2
+
+:Example 2: What's the aggregate cost of the third path?
+
+.. literalinclude:: doc-pgr_dijkstraVia.queries
+    :start-after: -- q2
+    :end-before: -- q3
+
+:Example 3: What's the route's aggregate cost of the route at the end of the third path?
+
+.. literalinclude:: doc-pgr_dijkstraVia.queries
+    :start-after: -- q3
+    :end-before: -- q4
+
+:Example 4: How are the nodes visited in the route?
+
+.. literalinclude:: doc-pgr_dijkstraVia.queries
+    :start-after: -- q4
+    :end-before: -- q5
+
+:Example 5: What are the aggregate costs of the route when the visited vertices are reached?
+
+.. literalinclude:: doc-pgr_dijkstraVia.queries
+    :start-after: -- q5
+    :end-before: -- q6
+
+:Example 6: show the route's seq and aggregate cost and a status of "passes in front" or "visits" node 9
+
+.. literalinclude:: doc-pgr_dijkstraVia.queries
+    :start-after: -- q6
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm
+* :doc:`sampledata` network.
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/dijkstraTRSP/CMakeLists.txt b/doc/dijkstraTRSP/CMakeLists.txt
new file mode 100644
index 0000000..3a424e8
--- /dev/null
+++ b/doc/dijkstraTRSP/CMakeLists.txt
@@ -0,0 +1,12 @@
+
+SET(LOCAL_FILES
+    pgr_dijkstraTRSP.rst
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}")
+    list(APPEND LOCAL_DOC_FILES  ${PGR_DOCUMENTATION_SOURCE_DIR}/${f})
+endforeach()
+
+set(PgRouting_DOC_FILES ${PgRouting_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE)
+
diff --git a/doc/dijkstraTRSP/pgr_dijkstraTRSP.rst b/doc/dijkstraTRSP/pgr_dijkstraTRSP.rst
new file mode 100644
index 0000000..90b321f
--- /dev/null
+++ b/doc/dijkstraTRSP/pgr_dijkstraTRSP.rst
@@ -0,0 +1,141 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_dijkstraTRSP:
+
+pgr_dijkstraTRSP
+===============================================================================
+
+``pgr_dijkstraTRSP`` — Returns the shortest path(s) using Dijkstra algorithm.
+In particular, the Dijkstra algorithm implemented by Boost.Graph.
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph/doc/dijkstra_shortest_paths.html
+
+   Boost Graph Inside
+
+
+Synopsis
+-------------------------------------------------------------------------------
+
+Dijkstra's algorithm, conceived by Dutch computer scientist Edsger Dijkstra in 1956.
+It is a graph search algorithm that solves the shortest path problem for
+a graph with non-negative edge path costs, producing a shortest path from
+a starting vertex (``start_vid``) to an ending vertex (``end_vid``).
+This implementation can be used with a directed graph and an undirected graph.
+
+Characteristics
+-------------------------------------------------------------------------------
+
+The main Characteristics are:
+  - Process is done only on edges with positive costs.
+  - Values are returned when there is a path.
+
+    - When the starting vertex and ending vertex are the same, there is no path.
+
+      - The `agg_cost` the non included values `(v, v)` is `0`
+
+    - When the starting vertex and ending vertex are the different and there is no path:
+
+      - The `agg_cost` the non included values `(u, v)` is :math:`\infty`
+
+  - For optimization purposes, any duplicated value in the `start_vids` or `end_vids` are ignored.
+
+  - The returned values are ordered:
+
+    - `start_vid` ascending
+    - `end_vid` ascending
+
+  - Running time: :math:`O(| start\_vids | * (V \log V + E))`
+
+
+Signature Summary
+-----------------
+
+.. code-block:: none
+
+    pgr_dijkstra(edges_sql, start_vid,  end_vid)
+
+    RETURNS SET OF (seq, path_seq, node, edge, cost, agg_cost)
+        OR EMPTY SET
+
+
+Signatures
+-------------------------------------------------------------------------------
+
+.. index::
+    single: dijkstraTRSP(Minimal Use)
+
+Minimal signature
+.......................................
+
+.. code-block:: none
+
+    pgr_dijkstraTRSP(edges_sql, start_vid, end_vid)
+    RETURNS SET OF (seq, path_seq, node, edge, cost, agg_cost) or EMPTY SET
+
+The minimal signature is for a **directed** graph from one ``start_vid`` to one ``end_vid``:
+
+:Example:
+
+.. literalinclude:: doc-pgr_dijkstraTRSP.queries
+   :start-after: -- q1
+   :end-before: -- q2
+
+
+.. index::
+    single: dijkstraTRSP(Complete signature)
+
+Complete Signature
+.......................................
+
+.. code-block:: none
+
+    pgr_dijkstraTRSP(edges_sql, start_vid, end_vid, directed);
+    RETURNS SET OF (seq, path_seq, node, edge, cost, agg_cost) or EMPTY SET
+
+This signature finds the shortest path from one ``start_vid`` to one ``end_vid``:
+  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
+  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
+
+:Example:
+
+.. literalinclude:: doc-pgr_dijkstraTRSP.queries
+   :start-after: -- q2
+   :end-before: -- q3
+
+
+
+Description of the Signatures
+-------------------------------------------------------------------------------
+
+.. include:: pgRouting-concepts.rst
+    :start-after: basic_edges_sql_start
+    :end-before: basic_edges_sql_end
+
+.. include:: pgr_dijkstra.rst
+    :start-after: pgr_dijkstra_parameters_start
+    :end-before: pgr_dijkstra_parameters_end
+
+.. include:: pgRouting-concepts.rst
+    :start-after: return_path_start
+    :end-before: return_path_end
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm
+* The queries use the :ref:`sampledata` network.
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/driving_distance/CMakeLists.txt b/doc/driving_distance/CMakeLists.txt
new file mode 100644
index 0000000..d682773
--- /dev/null
+++ b/doc/driving_distance/CMakeLists.txt
@@ -0,0 +1,13 @@
+
+SET(LOCAL_FILES
+    drivingDistance-category.rst
+    pgr_drivingDistance.rst
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}")
+    list(APPEND LOCAL_DOC_FILES  ${PGR_DOCUMENTATION_SOURCE_DIR}/${f})
+endforeach()
+
+set(PgRouting_DOC_FILES ${PgRouting_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE)
+
diff --git a/doc/driving_distance/drivingDistance-category.rst b/doc/driving_distance/drivingDistance-category.rst
new file mode 100644
index 0000000..8e14061
--- /dev/null
+++ b/doc/driving_distance/drivingDistance-category.rst
@@ -0,0 +1,41 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+
+.. _drivingDistance:
+
+Driving Distance - Category
+===============================================================================
+
+.. index from here
+
+* :ref:`pgr_drivingDistance` - Driving Distance based on pgr_dijkstra
+* :ref:`pgr_withPointsDD` - Driving Distance based on pgr_withPoints
+* Post pocessing
+
+  * :ref:`pgr_alphaShape` - Alpha shape computation
+  * :ref:`pgr_points_as_polygon` - Polygon around a set of points
+
+.. index to here
+
+
+.. toctree::
+    :hidden:
+
+    pgr_alphaShape.rst
+    pgr_pointsAsPolygon.rst
+
+
+See Also
+-------------------------------------------------------------------------------
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/driving_distance/pgr_drivingDistance.rst b/doc/driving_distance/pgr_drivingDistance.rst
new file mode 100644
index 0000000..b3a394c
--- /dev/null
+++ b/doc/driving_distance/pgr_drivingDistance.rst
@@ -0,0 +1,185 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_drivingDistance:
+
+pgr_drivingDistance
+===============================================================================
+
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_drivingDistance`` - Returns the driving distance from a start node.
+
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph
+
+   Boost Graph Inside
+
+.. rubric:: Availability
+
+* pgr_drivingDistance(single vertex) 2.0.0, signature change 2.1.0
+* pgr_drivingDistance(multiple vertices) 2.1.0
+
+Synopsis
+-------------------------------------------------------------------------------
+
+Using the Dijkstra algorithm, extracts all the nodes that have costs less than or equal to the value ``distance``.
+The edges extracted will conform to the corresponding spanning tree.
+
+Signature Summary
+-------------------------------------------------------------------------------
+
+.. code-block:: sql
+
+    pgr_drivingDistance(edges_sql, start_vid, distance)
+    pgr_drivingDistance(edges_sql, start_vid, distance, directed)
+    pgr_drivingDistance(edges_sql, start_vids, distance, directed, equicost)
+
+    RETURNS SET OF (seq, [start_vid,] node, edge, cost, agg_cost)
+
+
+Signatures
+-------------------------------------------------------------------------------
+
+.. index::
+	single: drivingDistance(Minimal Use)
+
+Minimal Use
+...................
+
+.. code-block:: sql
+
+    pgr_drivingDistance(edges_sql, start_vid, distance)
+    RETURNS SET OF (seq, node, edge, cost, agg_cost)
+
+
+
+.. index::
+	single: drivingDistance(Single Start Vertex)
+
+Driving Distance From A Single Starting Vertex
+..............................................
+
+.. code-block:: sql
+
+    pgr_drivingDistance(edges_sql, start_vid, distance, directed)
+    RETURNS SET OF (seq, node, edge, cost, agg_cost)
+
+
+.. index::
+	single: drivingDistance(Multiple Starting Vertices)
+
+Driving Distance From Multiple Starting Vertices
+.................................................
+
+.. code-block:: sql
+
+    pgr_drivingDistance(edges_sql, start_vids, distance, directed, equicost)
+    RETURNS SET OF (seq, start_vid, node, edge, cost, agg_cost)
+
+Description of the Signatures
+-------------------------------------------------------------------------------
+
+.. include:: pgRouting-concepts.rst
+    :start-after: basic_edges_sql_start
+    :end-before: basic_edges_sql_end
+
+
+Description of the parameters of the signatures
+.................................................
+
+============== ====================== =================================================
+Column          Type                  Description
+============== ====================== =================================================
+**edges_sql**  ``TEXT``               SQL query as described above.
+**start_vid**  ``BIGINT``             Identifier of the starting vertex.
+**start_vids** ``ARRAY[ANY-INTEGER]`` Array of identifiers of the starting vertices.
+**distance**   ``FLOAT``              Upper limit for the inclusion of the node in the result.
+**directed**   ``BOOLEAN``            (optional). When ``false`` the graph is considered as Undirected. Default is ``true`` which considers the graph as Directed.
+**equicost**   ``BOOLEAN``            (optional). When ``true`` the node will only appear in the closest ``start_vid`` list.  Default is ``false`` which resembles several calls using the single starting point signatures. Tie brakes are arbitrary.
+============== ====================== =================================================
+
+
+
+Description of the return values
+.................................................
+
+Returns set of ``(seq [, start_v], node, edge, cost, agg_cost)``
+
+============== =========== =================================================
+Column         Type        Description
+============== =========== =================================================
+**seq**        ``INTEGER`` Sequential value starting from **1**.
+**start_vid**  ``INTEGER`` Identifier of the starting vertex.
+**node**       ``BIGINT``  Identifier of the node in the path within the limits from ``start_vid``.
+**edge**       ``BIGINT``  Identifier of the edge used to arrive to ``node``. ``0`` when the ``node`` is the ``start_vid``.
+**cost**       ``FLOAT``   Cost to traverse ``edge``.
+**agg_cost**   ``FLOAT``   Aggregate cost from ``start_vid`` to ``node``.
+============== =========== =================================================
+
+
+
+Additional Examples
+-------------------------------------------------------------------------------
+
+Examples for queries marked as ``directed`` with ``cost`` and ``reverse_cost`` columns
+................................................................................................
+
+The examples in this section use the following :ref:`fig1`
+
+.. literalinclude:: doc-pgr_drivingDistance.queries
+   :start-after: --q1
+   :end-before: --q2
+
+Examples for queries marked as ``undirected`` with ``cost`` and ``reverse_cost`` columns
+................................................................................................
+
+The examples in this section use the following :ref:`fig2`
+
+
+.. literalinclude:: doc-pgr_drivingDistance.queries
+   :start-after: --q2
+   :end-before: --q3
+
+Examples for queries marked as ``directed`` with ``cost`` column
+......................................................................................
+
+The examples in this section use the following :ref:`fig3`
+
+.. literalinclude:: doc-pgr_drivingDistance.queries
+   :start-after: --q3
+   :end-before: --q4
+
+
+
+Examples for queries marked as ``undirected`` with ``cost`` column
+......................................................................................
+
+The examples in this section use the following :ref:`fig4`
+
+.. literalinclude:: doc-pgr_drivingDistance.queries
+   :start-after: --q4
+   :end-before: --q5
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* :ref:`pgr_alphashape` - Alpha shape computation
+* :ref:`pgr_points_as_polygon` - Polygon around set of points
+* :doc:`sampledata` network.
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/forward.html b/doc/forward.html
index 7689cb7..0a5d78c 100644
--- a/doc/forward.html
+++ b/doc/forward.html
@@ -3,13 +3,13 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <meta http-equiv="refresh" content="0; url=doc/index.html">
+    <meta http-equiv="refresh" content="0; url=en/index.html">
     <script type="text/javascript">
-        window.location.href = "doc/index.html";
+        window.location.href = "en/index.html";
     </script>
     <title>Page Redirection</title>
   </head>
   <body>
-    If you are not redirected automatically, follow this <a href='doc/index.html'>link</a>.
+    If you are not redirected automatically, follow this <a href='en/index.html'>link</a>.
   </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/doc/i18n/de/LC_MESSAGES/doc/index.po b/doc/i18n/de/LC_MESSAGES/doc/index.po
deleted file mode 100644
index 456d3ba..0000000
--- a/doc/i18n/de/LC_MESSAGES/doc/index.po
+++ /dev/null
@@ -1,359 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (187a022 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# Daniel Kastl, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-23 21:48\n"
-"PO-Revision-Date: 2013-09-24 02:49+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# c86028e885c64c0987f44bbcc08fb02a
-#: ../../index.rst:13
-msgid "Table of Contents"
-msgstr "Inhaltsverzeichnis"
-
-# 32111013f9c94976b553857e93812724
-#: ../../index.rst:15
-msgid ""
-"pgRouting extends the `PostGIS <http://postgis.net>`_/`PostgreSQL "
-"<http://postgresql.org>`_ geospatial database to provide geospatial routing "
-"and other network analysis functionality."
-msgstr "pgRouting erweitert eine `PostGIS <http://postgis.net>`_/`PostgreSQL <http://postgresql.org>`_  Geo-Datenbank um Funktionen für “Kürzeste-Wege” Berechnung und andere netzorientierte Algorithmen."
-
-# cd5bc882f7f3412b8a937ba25e203de8
-#: ../../index.rst:17
-msgid "This is the manual for pgRouting |release|."
-msgstr "Dies ist das Handbuch für pgRouting |release|."
-
-# d928c97ad24c4daeae96bb02b87c5a6d
-#: ../../index.rst:23
-msgid ""
-"The pgRouting Manual is licensed under a `Creative Commons Attribution-Share"
-" Alike 3.0 License <http://creativecommons.org/licenses/by-sa/3.0/>`_. Feel "
-"free to use this material any way you like, but we ask that you attribute "
-"credit to the pgRouting Project and wherever possible, a link back to "
-"http://pgrouting.org. For other licenses used in pgRouting see the "
-":ref:`license` page."
-msgstr ""
-
-# 9024be66e4ef47b9b53de9a42af4550d
-#: ../../index.rst:27
-msgid "General"
-msgstr "Allgemein"
-
-# 268439cb0a4f4417b56ca21d51394850
-#: ../../index.rst:40
-msgid "Tutorial"
-msgstr "Anleitung"
-
-# bf01af3d0d3244f283f5b3fab105caad
-#: ../../index.rst:42
-msgid ":ref:`Tutorial <tutorial1>`"
-msgstr ""
-
-# 116777f411a248f9afe42b9b51679b78
-#: ../../index.rst:44
-msgid ":ref:`Getting started <tutorial>`"
-msgstr ""
-
-# 2066f7d15ec8444c833547cfb3b06a98
-#: ../../index.rst:45
-msgid ":ref:`topology` for an overview of a topology for routing algorithms."
-msgstr ""
-
-# 2753f71d0fc14b0bbabb14a5180b10d9
-#: ../../index.rst:46
-msgid ":ref:`analytics` for an overview of the analysis of a graph."
-msgstr ""
-
-# 042f858c16ca4c7ea9fb4baa62efdd44
-#: ../../index.rst:47
-msgid ":ref:`custom_query` that is used in the routing algorithms."
-msgstr ""
-
-# 13f4fade1d47458abf8ba3706110d874
-#: ../../index.rst:48
-msgid ":ref:`performance` to improve your performance."
-msgstr ""
-
-# c3ccc6e6651e47f9b9d271c60976b15c
-#: ../../index.rst:49
-msgid ":ref:`custom_wrapper` to colaborate with a wrapper."
-msgstr ""
-
-# 233aebcc461745c2b0811b7f4328ce3a
-#: ../../index.rst:50
-msgid ":ref:`recipes` to colaborate with a recipe."
-msgstr ""
-
-# 3ae724b7e3714db2942fb7c77124cfc4
-#: ../../index.rst:51
-msgid ":ref:`sampledata` that is used in the examples of this manual."
-msgstr ""
-
-# c92e843c52364963a35112272cb814fd
-#: ../../index.rst:61
-msgid ""
-"For a more complete introduction how to build a routing application read the"
-" `pgRouting Workshop <http://workshop.pgrouting.org>`_."
-msgstr ""
-
-# 524c7dc0d5654f319fc62f2ae08b86f7
-#: ../../index.rst:65
-msgid "Data Types"
-msgstr "Datentypen"
-
-# e49a23cdc901419e8a3d5f17ed6c6ea0
-#: ../../index.rst:67
-msgid ":ref:`data_types`"
-msgstr ""
-
-# ef6b2fcc629f48c7b88d3ac78527893a
-#: ../../index.rst:69
-msgid ""
-":ref:`type_cost_result` -  A set of records to describe a path result with "
-"cost attribute."
-msgstr ""
-
-# 84a33ec406d2412c9e681656b4cb9b43
-#: ../../index.rst:70
-msgid ""
-":ref:`pgr_costResult3[]<type_cost_result3>` - A set of records to describe a"
-" path result with cost attribute."
-msgstr ""
-
-# 6a2ba698d366498caa046c97178f05d5
-#: ../../index.rst:71
-msgid ""
-":ref:`pgr_geomResult<type_geom_result>` - A set of records to describe a "
-"path result with geometry attribute."
-msgstr ""
-
-# 9c4629c11bc143a184a6564177b0e7bd
-#: ../../index.rst:80
-msgid "Functions reference"
-msgstr "Referenz aller Funktionen"
-
-# 1f3545abdf7c42cdb73e76f5f149a31b
-#: ../../index.rst:82
-msgid ":ref:`topology_functions`"
-msgstr ""
-
-# 058f97425ccb4cb5870163ebbe948a72
-#: ../../index.rst:84
-msgid ""
-":ref:`pgr_create_topology` -  to create a topology based on the geometry."
-msgstr ""
-
-# e839b8e9c3664685a6dc346cac1ea039
-#: ../../index.rst:85
-msgid ""
-":ref:`pgr_create_vert_table` - to reconstruct the vertices table based on "
-"the source and target information."
-msgstr ""
-
-# 5d9cd0c5ac3043b99ae4fb495036d05f
-#: ../../index.rst:86
-msgid ""
-":ref:`pgr_analyze_graph`  - to analyze the edges and vertices of the edge "
-"table."
-msgstr ""
-
-# 714b5f8623914db981048d201845d040
-#: ../../index.rst:87
-msgid ":ref:`pgr_analyze_oneway` - to analyze directionality of the edges."
-msgstr ""
-
-# 5f3a1ebfa74d4463912b1c695028121d
-#: ../../index.rst:88
-msgid ":ref:`pgr_node_network`  -to create nodes to a not noded edge table."
-msgstr ""
-
-# 655d025751764d39b841997c13775783
-#: ../../index.rst:90
-msgid ":ref:`routing_functions`"
-msgstr ""
-
-# 6a94d292d24b45f7aafda5a754a6ba30
-#: ../../index.rst:92
-msgid ""
-":ref:`pgr_apspJohnson <pgr_apsp_johnson>`- All Pairs Shortest Path, "
-"Johnson’s Algorithm"
-msgstr ""
-
-# fbda3d31d88e4df891d2095dfbb8ab52
-#: ../../index.rst:93
-msgid ""
-":ref:`pgr_apspWarshall<pgr_apsp_warshall>` - All Pairs Shortest Path, Floyd-"
-"Warshall Algorithm"
-msgstr ""
-
-# 10cf6d194dcf4af2be81f0f8034cd5cb
-#: ../../index.rst:94
-msgid ":ref:`pgr_astar<pgr_astar>` - Shortest Path A*"
-msgstr ""
-
-# 72aa55b5147341e6be8b3ac29edc5056
-#: ../../index.rst:95
-msgid ":ref:`pgr_bdAstar<bd_astar>` - Bi-directional A* Shortest Path"
-msgstr ""
-
-# 659e5f56cae84ce598a95fe83608da28
-#: ../../index.rst:96
-msgid ""
-":ref:`pgr_bdDijkstra<bd_dijkstra>` - Bi-directional Dijkstra Shortest Path"
-msgstr ""
-
-# 2a0544bf5ac444cb9f814c98ddd9cac0
-#: ../../index.rst:97
-msgid ":ref:`pgr_dijkstra<pgr_dijkstra>` - Shortest Path Dijkstra"
-msgstr ""
-
-# 0d062718bba84332bc05094be53c7b0b
-#: ../../index.rst:98
-msgid ""
-":ref:`pgr_kDijkstra<pgr_kdijkstra>` - Mutliple destination Shortest Path "
-"Dijkstra"
-msgstr ""
-
-# 388e0ef15cac4c7a87ed5f5f7d164eab
-#: ../../index.rst:99
-msgid ":ref:`pgr_ksp<ksp>` - K-Shortest Path"
-msgstr ""
-
-# 488a2b3901c548b394c466b7580ea9a4
-#: ../../index.rst:100
-msgid ":ref:`pgr_tsp<pgr_tsp>` - Traveling Sales Person"
-msgstr ""
-
-# dc4452cb04fb47fb9d72b4a408ffabeb
-#: ../../index.rst:101
-msgid ":ref:`pgr_trsp<trsp>` - Turn Restriction Shortest Path (TRSP)"
-msgstr ""
-
-# e49a23cdc901419e8a3d5f17ed6c6ea0
-#: ../../index.rst:103
-msgid ":ref:`dd_index`"
-msgstr ""
-
-# 4f472ddb75b84b6abd644e500b7415f4
-#: ../../index.rst:105
-msgid ":ref:`pgr_driving_distance` - Driving Distance"
-msgstr ""
-
-# 607bcbfc39c649a4b54020f8d62ce9d0
-#: ../../index.rst:106
-msgid ":ref:`pgr_alphaShape` - Alpha shape computation"
-msgstr ""
-
-# f2e6773ccf394c739af44245aaaf5d02
-#: ../../index.rst:107
-msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
-msgstr ""
-
-# ef6b2fcc629f48c7b88d3ac78527893a
-#: ../../index.rst:110
-msgid ""
-":ref:`pgr_get_column_name` - to get the name of the column as is stored in "
-"the postgres administration tables."
-msgstr ""
-
-# b080d86d06dd4b248b6191f5c98ed0b7
-#: ../../index.rst:111
-msgid ""
-":ref:`pgr_get_table_name` - to retrieve the name of the table as is stored "
-"in the postgres administration tables."
-msgstr ""
-
-# 187f8a7ace1944dda76ab8ae8460d727
-#: ../../index.rst:112
-msgid ":ref:`pgr_is_column_indexed` - to check if the column is indexed."
-msgstr ""
-
-# 767ec7460a314ae0ae3ad47836c94182
-#: ../../index.rst:113
-msgid ""
-":ref:`pgr_is_column_in_table` - to check only for the existance of the "
-"column."
-msgstr ""
-
-# 6d632e8288614fc59c04dbdfa5fceb36
-#: ../../index.rst:114
-msgid ""
-":ref:`pgr_point_to_id` -to insert/get the id of the inserted point in a "
-"vertices table."
-msgstr ""
-
-# fd1def8169f543b9afc595abde9021ef
-#: ../../index.rst:115
-msgid ""
-":ref:`pgr_quote_ident` - to quotes the input text to be used as an "
-"identifier in an SQL statement string."
-msgstr ""
-
-# 79be0c2066f3417fb063d0f11b8858bb
-#: ../../index.rst:116
-msgid ":ref:`pgr_version` - to get pgRouting's version information."
-msgstr ""
-
-# e92514488cf348499952b55020516c0f
-#: ../../index.rst:117
-msgid ":ref:`pgr_versionless` - to compare two version numbers."
-msgstr ""
-
-# 52049dec1aa94a84b44977cf3645aeee
-#: ../../index.rst:118
-msgid ""
-":ref:`pgr_start_point` - to get the start point of a (multi)linestring."
-msgstr ""
-
-# b58261fb708141cfbd15342b18e83df7
-#: ../../index.rst:119
-msgid ":ref:`pgr_end_point` - to get the end point of a (multi)linestring."
-msgstr ""
-
-# ccf6b70d55024c8cb87cd02c497cd394
-#: ../../index.rst:138
-msgid "Developer"
-msgstr "Entwickler"
-
-# bc20d365d4514a6dbf644153d3323f8d
-#: ../../index.rst:145
-msgid ":ref:`change_log`"
-msgstr ""
-
-# a6c26cabff9f4df5bbaa3de0ed924b11
-#: ../../index.rst:147
-msgid ":ref:`changelog_2_0`"
-msgstr ""
-
-# 9d2d97e5ab6a4af08a3f5903f9a87114
-#: ../../index.rst:148
-msgid ":ref:`changelog_1_x`"
-msgstr ""
-
-# d1533298308344f6bfa8e1644e3aace0
-#: ../../index.rst:157
-msgid "Indices and tables"
-msgstr "Tabellen und Indizes"
-
-# e49a23cdc901419e8a3d5f17ed6c6ea0
-#: ../../index.rst:158
-msgid ":ref:`genindex`"
-msgstr ":ref:`genindex`"
-
-# 1572d01be82949ec8e487a5dc596b6a4
-#: ../../index.rst:159
-msgid ":ref:`search`"
-msgstr ":ref:`search`"
diff --git a/doc/i18n/de/LC_MESSAGES/doc/index_man.po b/doc/i18n/de/LC_MESSAGES/doc/index_man.po
deleted file mode 100644
index 7902521..0000000
--- a/doc/i18n/de/LC_MESSAGES/doc/index_man.po
+++ /dev/null
@@ -1,57 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# Daniel Kastl, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 06:08+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 3f6e76c37d304447af292931aa52e56f
-#: ../../index_man.rst:13
-msgid "pgRouting Reference"
-msgstr "pgRouting Referenz"
-
-# 8347fe2ff4be4f9fbcaafbad7adac911
-#: ../../index_man.rst:15
-msgid ""
-"pgRouting extends the `PostGIS <http://postgis.net>`_/`PostgreSQL "
-"<http://postgresql.org>`_ geospatial database to provide geospatial routing "
-"and other network analysis functionality."
-msgstr "pgRouting erweitert eine `PostGIS <http://postgis.net>`_/`PostgreSQL <http://postgresql.org>`_  Geo-Datenbank um Funktionen für “Kürzeste-Wege” Berechnung und andere netzorientierte Algorithmen."
-
-# 3f626ce82e7e467c8d0b401e6a88d9ca
-#: ../../index_man.rst:22
-msgid "pgRouting provides several :ref:`common functions <common>`:"
-msgstr "pgRouting stellt verschiedene :ref:`common functions <common>` zur Verfügung:"
-
-# 387e53a164e94fa1a2c34d515a8958d2
-#: ../../index_man.rst:36
-msgid "pgRouting defines a few :ref:`custom data types <data_types>`:"
-msgstr "PgRouting definiert ein paar :ref:`custom data types <data_types>`:"
-
-# af0d92429b274dda891066d0b07d530f
-#: ../../index_man.rst:50
-msgid "pgRouting functions in alphabetical order:"
-msgstr "pgRouting Funktionen in alphabetischer Reihenfolge:"
-
-# 9f2f876866c6467ba1b45223a42790c6
-#: ../../index_man.rst:66
-msgid "If pgRouting is compiled with \"Driving Distance\" enabled:"
-msgstr "Wenn pgRouting mit \"Driving Distance\" aktiviert kompiliert wird:"
-
-# 1e0ce2246f904afbaf6c882025206eaa
-#: ../../index_man.rst:75
-msgid "Some functions from previous releases may have been removed."
-msgstr "Einige Funktionen aus früheren Versionen wurden möglicherweise entfernt."
diff --git a/doc/i18n/de/LC_MESSAGES/doc/src/changelog/1_x.po b/doc/i18n/de/LC_MESSAGES/doc/src/changelog/1_x.po
deleted file mode 100644
index 2c54446..0000000
--- a/doc/i18n/de/LC_MESSAGES/doc/src/changelog/1_x.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# Daniel Kastl, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-08-02 17:00+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 6a8f15af6c6d4c709a455b1e6e7913a8
-#: ../../src/changelog/1_x.rst:13
-msgid "pgRouting 1.x Release Notes"
-msgstr "pgRouting 1.x Release Notes"
-
-# 35ec395b4f35487d95e18e46599976e4
-#: ../../src/changelog/1_x.rst:15
-msgid ""
-"The following release notes have been copied from the previous "
-"``RELEASE_NOTES`` file and are kept as a reference. Release notes starting "
-"with :ref:`version 2.0.0 <changelog_2_0>` will follow a different schema."
-msgstr ""
-
-# 703dd8a8fe4d45c1859069c1117ec4b3
-#: ../../src/changelog/1_x.rst:20
-msgid "Changes for release 1.05"
-msgstr "Änderungen in Version 1.05"
-
-# e3f8283c49024042ad77d6924336865c
-# b2d8993542324fb6b2107164df0ba258
-# 88cd476b4bc3446b89dd63ea7ad91e56
-# d1043630671546faabf110ae51109494
-#: ../../src/changelog/1_x.rst:22 ../../src/changelog/1_x.rst:29
-#: ../../src/changelog/1_x.rst:50 ../../src/changelog/1_x.rst:57
-msgid "Bugfixes"
-msgstr "Bugfixes"
-
-# faaf3c4aa64e4806b5b41ecb230f4466
-#: ../../src/changelog/1_x.rst:26
-msgid "Changes for release 1.03"
-msgstr "Änderungen in Version 1.03"
-
-# c258bbbcb3e2445f8f7eb9dde242b0e5
-#: ../../src/changelog/1_x.rst:28
-msgid "Much faster topology creation"
-msgstr ""
-
-# 059297cbe42d4af6b72b9e0d2b6ad06e
-#: ../../src/changelog/1_x.rst:33
-msgid "Changes for release 1.02"
-msgstr "Änderungen in Version 1.02"
-
-# cb2792b313ca4c3fa513b9eb95c5de18
-# 5a7078f4834449bba4a61211426d8ed9
-#: ../../src/changelog/1_x.rst:35 ../../src/changelog/1_x.rst:42
-msgid "Shooting* bugfixes"
-msgstr ""
-
-# 5feb24afeb55480690c6589309388866
-#: ../../src/changelog/1_x.rst:36
-msgid "Compilation problems solved"
-msgstr ""
-
-# 0e0f4a9f6a22461baa8bc5da60cfd41b
-#: ../../src/changelog/1_x.rst:40
-msgid "Changes for release 1.01"
-msgstr "Änderungen in Version 1.01"
-
-# 8ea96e385ab44490850a2a73aa013f9b
-#: ../../src/changelog/1_x.rst:46
-msgid "Changes for release 1.0"
-msgstr "Änderungen in Version 1.0"
-
-# efa896c6a92842fdabbf06c4f8c5b640
-#: ../../src/changelog/1_x.rst:48
-msgid "Core and extra functions are separated"
-msgstr ""
-
-# 51ced072bcbc470c87cc5fd90912467f
-#: ../../src/changelog/1_x.rst:49
-msgid "Cmake build process"
-msgstr ""
-
-# ee707024082d499a962851a420e20d5f
-#: ../../src/changelog/1_x.rst:54
-msgid "Changes for release 1.0.0b"
-msgstr "Änderungen in Version 1.0.0b"
-
-# d94242dc07a94aa5b9cb20cd4fd8f85d
-#: ../../src/changelog/1_x.rst:56
-msgid "Additional SQL file with more simple names for wrapper functions"
-msgstr ""
-
-# 178ec0ecd8a74084a59974d12e30f589
-#: ../../src/changelog/1_x.rst:61
-msgid "Changes for release 1.0.0a"
-msgstr "Änderungen in Version 1.0.0a"
-
-# 5591af5527fc4ff68fbcfb9268f20564
-#: ../../src/changelog/1_x.rst:63
-msgid "Shooting* shortest path algorithm for real road networks"
-msgstr ""
-
-# a0818010adb1442cbe7e345f95689509
-#: ../../src/changelog/1_x.rst:64
-msgid "Several SQL bugs were fixed"
-msgstr ""
-
-# 41324ae038c94f6ea5a7bd9cc30e54fb
-#: ../../src/changelog/1_x.rst:68
-msgid "Changes for release 0.9.9"
-msgstr "Änderungen in Version 0.9.9"
-
-# b89bdfd11c2f4cf29ca3dd3cfd42cb8e
-#: ../../src/changelog/1_x.rst:70
-msgid "PostgreSQL 8.2 support"
-msgstr "PostgreSQL 8.2 Unterstützung"
-
-# 302372f9f60f46d68b18a299cdfd55a6
-#: ../../src/changelog/1_x.rst:71
-msgid ""
-"Shortest path functions return empty result if they couldn’t find any path"
-msgstr ""
-
-# 62b481cbf4d14ffcb2f17ad4a86dc60e
-#: ../../src/changelog/1_x.rst:75
-msgid "Changes for release 0.9.8"
-msgstr "Änderungen in Version 0.9.8"
-
-# 1190ef59b8584d6d9c1fd248ca4fd970
-#: ../../src/changelog/1_x.rst:77
-msgid "Renumbering scheme was added to shortest path functions"
-msgstr ""
-
-# 33634f672fbb4bdbbfba7912efeca26d
-#: ../../src/changelog/1_x.rst:78
-msgid "Directed shortest path functions were added"
-msgstr ""
-
-# 13bb4413398f4f5d921257cdcab82564
-#: ../../src/changelog/1_x.rst:79
-msgid "routing_postgis.sql was modified to use dijkstra in TSP search"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/doc/src/changelog/2_0.po b/doc/i18n/de/LC_MESSAGES/doc/src/changelog/2_0.po
deleted file mode 100644
index bf628c4..0000000
--- a/doc/i18n/de/LC_MESSAGES/doc/src/changelog/2_0.po
+++ /dev/null
@@ -1,171 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# Daniel Kastl, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:12+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 74e7cac777254569ba4d691b13b71fb6
-#: ../../src/changelog/2_0.rst:13
-msgid "pgRouting 2.0 Release Notes"
-msgstr "pgRouting 2.0 Release Notes"
-
-# 4a488611749d4e66b0259dbca6bb3a1f
-#: ../../src/changelog/2_0.rst:15
-msgid ""
-"With the release of pgRouting 2.0 the library has abandoned backwards "
-"compatibility to :ref:`pgRouting 1.x <changelog_1_x>` releases. We did this "
-"so we could restructure pgRouting, standardize the function naming, and "
-"prepare the project for future development. As a result of this effort, we "
-"have been able to simplify pgRouting, add significant new functionality, "
-"integrate documentation and testing into the source tree and make it easier "
-"for multiple developers to make contribution."
-msgstr ""
-
-# 0124322daba943368892e1a062e5a232
-#: ../../src/changelog/2_0.rst:17
-msgid ""
-"For important changes see the following release notes. To see the full list "
-"of changes check the list of `Git commits "
-"<https://github.com/pgRouting/pgrouting/commits>`_ on Github."
-msgstr ""
-
-# 591de33525284db5b8eae7f12b38a366
-#: ../../src/changelog/2_0.rst:28
-msgid "Changes for 2.0.0"
-msgstr ""
-
-# 4d95000a614d4236a5cc53a2fc2f49ac
-#: ../../src/changelog/2_0.rst:30
-msgid ""
-"Graph Analytics - tools for detecting and fixing connection some problems in"
-" a graph"
-msgstr ""
-
-# 7b0e1ec73752479fabaaeb4964d2e802
-#: ../../src/changelog/2_0.rst:31
-msgid "A collection of useful utility functions"
-msgstr ""
-
-# 2f200415daa94b76803619813ac6721a
-#: ../../src/changelog/2_0.rst:32
-msgid ""
-"Two new All Pairs Short Path algorithms (pgr_apspJohnson, pgr_apspWarshall)"
-msgstr ""
-
-# f254175913274f7a835197ece43e779e
-#: ../../src/changelog/2_0.rst:33
-msgid ""
-"Bi-directional Dijkstra and A-star search algorithms (pgr_bdAstar, "
-"pgr_bdDijkstra)"
-msgstr ""
-
-# 3c6748f59dcf427da34f9feed68058f9
-#: ../../src/changelog/2_0.rst:34
-msgid "One to many nodes search (pgr_kDijkstra)"
-msgstr ""
-
-# f9d646b786144bd481006e74130f662e
-#: ../../src/changelog/2_0.rst:35
-msgid "K alternate paths shortest path (pgr_ksp)"
-msgstr ""
-
-# 11ef9fff94d246b48fafc85bc8dc3925
-#: ../../src/changelog/2_0.rst:36
-msgid ""
-"New TSP solver that simplifies the code and the build process (pgr_tsp), "
-"dropped \"Gaul Library\" dependency"
-msgstr ""
-
-# d1f317bb785d45fa861870a35ff12e7b
-#: ../../src/changelog/2_0.rst:37
-msgid "Turn Restricted shortest path (pgr_trsp) that replaces Shooting Star"
-msgstr ""
-
-# 21689470d861417487dd6888bf38ae8b
-#: ../../src/changelog/2_0.rst:38
-msgid "Dropped support for Shooting Star"
-msgstr ""
-
-# c293b041c6974506a333575050aca673
-#: ../../src/changelog/2_0.rst:39
-msgid ""
-"Built a test infrastructure that is run before major code changes are "
-"checked in"
-msgstr ""
-
-# 3c96b251f45b4603a3e474e14d3756a9
-#: ../../src/changelog/2_0.rst:40
-msgid ""
-"Tested and fixed most all of the outstanding bugs reported against 1.x that "
-"existing in the 2.0-dev code base."
-msgstr ""
-
-# ae370e64d8204092bca92f34ddc90a99
-#: ../../src/changelog/2_0.rst:41
-msgid "Improved build process for Windows"
-msgstr "Verbesserter Build-Prozess für Windows"
-
-# 03319867fd7d47ecade2299089b90c8a
-#: ../../src/changelog/2_0.rst:42
-msgid ""
-"Automated testing on Linux and Windows platforms trigger by every commit"
-msgstr ""
-
-# 8543438d8ac34db9816e97ca074dc4bc
-#: ../../src/changelog/2_0.rst:43
-msgid "Modular library design"
-msgstr ""
-
-# 903ec2fa9bb64f87a98c97f8951780d1
-#: ../../src/changelog/2_0.rst:44
-msgid "Compatibility with PostgreSQL 9.1 or newer"
-msgstr "Kompatibilität mit PostgreSQL 9.1 oder neuer"
-
-# 73a67ebe3dbd4dc3a3c437b2180fed37
-#: ../../src/changelog/2_0.rst:45
-msgid "Compatibility with PostGIS 2.0 or newer"
-msgstr "Kompatibilität mit PostGIS 2.0 oder neuer"
-
-# 16e7796b31a94c2781e0f38903b17c26
-#: ../../src/changelog/2_0.rst:46
-msgid "Installs as PostgreSQL EXTENSION"
-msgstr "Installiert als PostgreSQL EXTENSION"
-
-# d5d4a4a79da14ccea4bdbe1310cf5113
-#: ../../src/changelog/2_0.rst:47
-msgid "Return types refactored and unified"
-msgstr ""
-
-# aeff1e0f8f5144a38127aabb5e2dc2fa
-#: ../../src/changelog/2_0.rst:48
-msgid "Support for table SCHEMA in function parameters"
-msgstr ""
-
-# ae6e9cdcdc384571a1803e4b5e3e9718
-#: ../../src/changelog/2_0.rst:49
-msgid "Support for ``st_`` PostGIS function prefix"
-msgstr ""
-
-# b0f6572717ed4979a266117c537f9a5d
-#: ../../src/changelog/2_0.rst:50
-msgid "Added ``pgr_`` prefix to functions and types"
-msgstr ""
-
-# 6178fdcf0cd74f3898a7386ed99f36b4
-#: ../../src/changelog/2_0.rst:51
-msgid "Better documentation: http://docs.pgrouting.org"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/doc/src/changelog/index.po b/doc/i18n/de/LC_MESSAGES/doc/src/changelog/index.po
deleted file mode 100644
index 3bf8df2..0000000
--- a/doc/i18n/de/LC_MESSAGES/doc/src/changelog/index.po
+++ /dev/null
@@ -1,33 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (187a022 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-23 15:04\n"
-"PO-Revision-Date: 2013-09-23 20:06+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# f1e03235eb844796b93b887af790542d
-#: ../../src/changelog/index.rst:13
-msgid "Release Notes"
-msgstr "Release Notes"
-
-# e9847f5eef6049318a942e17e6da2f58
-#: ../../src/changelog/index.rst:15
-msgid ":ref:`changelog_2_0`"
-msgstr ""
-
-# 1b5ed5b08dee4c3fb08136bd010897ed
-#: ../../src/changelog/index.rst:16
-msgid ":ref:`changelog_1_x`"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/doc/src/developer/discontinued.po b/doc/i18n/de/LC_MESSAGES/doc/src/developer/discontinued.po
deleted file mode 100644
index fc088b9..0000000
--- a/doc/i18n/de/LC_MESSAGES/doc/src/developer/discontinued.po
+++ /dev/null
@@ -1,55 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-02 02:36+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 09366a0298d04b47be343c8bf8c6e12a
-#: ../../src/developer/discontinued.rst:13
-msgid "Discontinued Functions"
-msgstr ""
-
-# 8ab172e3591c493f94919b9391d65313
-#: ../../src/developer/discontinued.rst:15
-msgid ""
-"Especially with new major releases functionality may change and functions "
-"may be discontinued for various reasons. Functionality that has been "
-"discontinued will be listed here."
-msgstr ""
-
-# 6bb9bb9b649544eb9384e2c03fa6e60d
-#: ../../src/developer/discontinued.rst:22
-msgid "Shooting Star algorithm"
-msgstr ""
-
-# 6c87b9ac3f1b441a88d4bd7a32449eeb
-#: ../../src/developer/discontinued.rst:24
-msgid "Removed with 2.0.0"
-msgstr ""
-
-# 6afa2318319f4b5e93e9eb99d1dd1843
-#: ../../src/developer/discontinued.rst:25
-msgid "Unresolved bugs, no maintainer, replaced with :ref:`trsp`"
-msgstr ""
-
-# 7e711820b4534143a7fd0d1aa4c5cc58
-#: ../../src/developer/discontinued.rst:26
-msgid ""
-"Please :ref:`contact us <support>` if you're interested to sponsor or "
-"maintain this algorithm. The function signature is still available in "
-":ref:`common_legacy` but it is just a wrapper that throws an error. We have "
-"not included any of the old code for this in this release."
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/doc/src/developer/index.po b/doc/i18n/de/LC_MESSAGES/doc/src/developer/index.po
deleted file mode 100644
index d60a27d..0000000
--- a/doc/i18n/de/LC_MESSAGES/doc/src/developer/index.po
+++ /dev/null
@@ -1,245 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-04 04:17+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 1d69d70e3de44767ae858314df13b562
-#: ../../src/developer/index.rst:13
-msgid "Developer's Guide"
-msgstr ""
-
-# 82f29db373764b3e96cdb308263a9321
-#: ../../src/developer/index.rst:16
-msgid ""
-"All documentation should be in reStructuredText format. See: "
-"<http://docutils.sf.net/rst.html> for introductory docs."
-msgstr ""
-
-# 5641994c410248fbb2042daf032b4f2d
-#: ../../src/developer/index.rst:20
-msgid "Source Tree Layout"
-msgstr ""
-
-# 696f1ffe5fef47a68eb3f899e315ac24
-#: ../../src/developer/index.rst:23
-msgid "cmake scripts used as part of our build system."
-msgstr ""
-
-# 1f0669f1dce543df8ec72ab64c0a3435
-#: ../../src/developer/index.rst:26
-msgid ""
-"This is the algorithm source tree. Each alogorithm should be contained in "
-"its on sub-tree with doc, sql, src, and test sub-directories. This might get"
-" renamed to \"algorithms\" at some point."
-msgstr ""
-
-# d510542616954ff48b4208874a211b08
-#: ../../src/developer/index.rst:31
-msgid ""
-"This is an implementation of A* Search based on using Boost Graph libraries "
-"for its implementation. This is a Dijkstra shortest path implementation with"
-" a Euclidean Heuristic."
-msgstr ""
-
-# 82e5ed804fa34202903c4ca49117d16e
-#: ../../src/developer/index.rst:36
-msgid ""
-"At the moment this does not have an core in \"src\", but does have a lot of "
-"SQL wrapper code and topology code in the \"sql\" directory. *Algorithm "
-"specific wrappers should get move to the algorithm tree and appropriate "
-"tests should get added to validate the wrappers.*"
-msgstr ""
-
-# bfff36e01ca84eadbf8dd70bb1d2276b
-#: ../../src/developer/index.rst:42
-msgid ""
-"This is an implementation of Dikjstra's shortest path solution using Boost "
-"Graph libraries for the implementation."
-msgstr ""
-
-# 4b632593c518431abd06afc2badcf018
-#: ../../src/developer/index.rst:46
-msgid ""
-"This optional package creates driving distance polygons based on solving a "
-"Dijkstra shortest path solution, then creating polygons based on equal cost "
-"distances from the start point. This optional package requires CGAL "
-"libraries to be installed."
-msgstr ""
-
-# 936e4db4894447a899f6c0b8ca26f617
-#: ../../src/developer/index.rst:52
-msgid ""
-"*DEPRECATED and DOES NOT WORK and IS BEING REMOVED* This is an edge based "
-"shortest path algorithm that supports turn restrictions. It is based on "
-"Boost Graph. Do *NOT* use this algorithm as it is broken, instead use *trsp*"
-" which has the same functionality and is faster and give correct results."
-msgstr ""
-
-# c7f26387b9b24096ba96fb7a518e437a
-#: ../../src/developer/index.rst:59
-msgid ""
-"This is a turn restricted shortest path algorithm. It has some nice features"
-" like you can specify the start and end points as a percentage along an "
-"edge. Restrictions are stored in a separate table from the graph edges and "
-"this make it easier to manage the data."
-msgstr ""
-
-# 3141234121954acaa2dc52065d5d7dce
-#: ../../src/developer/index.rst:65
-msgid ""
-"This optional package provides the ability to compute traveling salesman "
-"problem solutions and compute the resulting route. This optional package "
-"requires GAUL libaries to be installed."
-msgstr ""
-
-# 5ace4e065d5c41c2808f78da0db17058
-#: ../../src/developer/index.rst:70
-msgid "Miscellaneous scripts and tools."
-msgstr ""
-
-# 498a3b11a76644cfa7088aa739876e51
-#: ../../src/developer/index.rst:73
-msgid ""
-"This is the output directory where compiled libraries and installation "
-"targets are staged before installation."
-msgstr ""
-
-# 52c0a49d07ec469bb08dae55c7b29f1d
-#: ../../src/developer/index.rst:78
-msgid "Documentation Layout"
-msgstr ""
-
-# 223870fbd494436ba478618c7f0655ab
-#: ../../src/developer/index.rst:80
-msgid ""
-"*As noted above all documentation should be done using reStructuredText "
-"formated files.*"
-msgstr ""
-
-# 056f8e732df8417c8d30876629544918
-#: ../../src/developer/index.rst:83
-msgid ""
-"Documentation is distributed into the source tree. This top level \"doc\" "
-"directory is intended for high level documentation cover subjects like:"
-msgstr ""
-
-# cb7d40e7fa8f4bf99586caad505ee056
-#: ../../src/developer/index.rst:86
-msgid "Compiling and testing"
-msgstr ""
-
-# f8297a944ea14512ac068fffbebb9704
-#: ../../src/developer/index.rst:87
-msgid "Installation"
-msgstr ""
-
-# 2623e7a6862948a88651b230afb04066
-#: ../../src/developer/index.rst:88
-msgid "Tutorials"
-msgstr ""
-
-# 48cc983d7eb14596bc213e04f2424ef5
-#: ../../src/developer/index.rst:89
-msgid "Users' Guide front materials"
-msgstr ""
-
-# 35d4289409ff4e20b9f3fc99e5ff3ebc
-#: ../../src/developer/index.rst:90
-msgid "Reference Manual front materials"
-msgstr ""
-
-# 0a39de23e4754aeaaf23bda932025e46
-#: ../../src/developer/index.rst:91
-msgid "etc"
-msgstr ""
-
-# 1d97d5eb207f4948a5d054cbc1f0d11d
-#: ../../src/developer/index.rst:93
-msgid ""
-"Since the algorithm specific documentation is contained in the source tree "
-"with the algorithm specific files, the process of building the documentation"
-" and publishing it will need to assemble the details with the front material"
-" as needed."
-msgstr ""
-
-# 4a479c8d44504c31bb0c966f29b59fca
-#: ../../src/developer/index.rst:98
-msgid ""
-"Also, to keep the \"doc\" directory from getting cluttered, each major book "
-"like those listed above, should be contained in a separate directory under "
-"\"doc\". Any images or other materials related to the book should also be "
-"kept in that directory."
-msgstr ""
-
-# c7f0aeb3bd8b446780356e0c8cda8810
-#: ../../src/developer/index.rst:105
-msgid "Testing Infrastructure"
-msgstr ""
-
-# c623e96a0a244704afbc0fd1bdc839eb
-#: ../../src/developer/index.rst:107
-msgid ""
-"There is a very basic testing infrastructure put in place. Here are the "
-"basics of how it works. We need more test cases. Longer term we should "
-"probably get someone to setup travis-ci or jenkins testing frameworks."
-msgstr ""
-
-# 795beec501574346bf79b70ec796327d
-#: ../../src/developer/index.rst:111
-msgid "Here is the graph for the TRSP tests."
-msgstr ""
-
-# c307557b6e9345bb80ecec65181e0e3b
-#: ../../src/developer/index.rst:115
-msgid ""
-"Tests are run via the script at the top level tools/test-runner.pl and it "
-"runs all the test configured tests and at the moment just dumps the results "
-"structure of the test. This can be prettied up later."
-msgstr ""
-
-# 0124c9e435cd45ed8add01948a01c8b4
-#: ../../src/developer/index.rst:119
-msgid ""
-"It also assumes that you have installed the libraries as it tests using the "
-"installed postgresql. This probably needs to be made smarter so we can test "
-"out of the build tree. I'll need to think about that."
-msgstr ""
-
-# ba9f62496a8043bfa546ff97514644ee
-#: ../../src/developer/index.rst:124
-msgid ""
-"Basically each .../test/ directory should include one *test.conf* file that "
-"is a perl script fragment that defines what data files to load and what "
-"tests to run. I have built in some mechanisms to allow test and data to be "
-"pg version and postgis version specific, but I'm not using that yet. So for "
-"example, *core/trsp/test/test-any-00.data* is a sql plain text dump that "
-"will load and needed data for a set of tests. This is also the graph in the "
-"image above. You can specify multiple files to load, but as a group they "
-"need to have unique names."
-msgstr ""
-
-# 43961b4cdd0949378b7a7fc420ef8db7
-#: ../../src/developer/index.rst:133
-msgid ""
-"core/trsp/test/test-any-00.test is a sql command to be run. It will get run "
-"as:"
-msgstr ""
-
-# bcfc5aa90d5f426eb6d757230beba796
-#: ../../src/developer/index.rst:141
-msgid "Then if there is a difference then an test failure is reported."
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/doc/src/developer/sampledata.po b/doc/i18n/de/LC_MESSAGES/doc/src/developer/sampledata.po
deleted file mode 100644
index 7da26b6..0000000
--- a/doc/i18n/de/LC_MESSAGES/doc/src/developer/sampledata.po
+++ /dev/null
@@ -1,41 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-02 02:37+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 57710d17ae7543e2b771629aff75600e
-#: ../../src/developer/sampledata.rst:13
-msgid "Sample Data"
-msgstr ""
-
-# 7f421eecf5044efd98b200b36124a83c
-#: ../../src/developer/sampledata.rst:15
-msgid ""
-"The documentation provides very simple example queries based on a small "
-"sample network. To be able to execute the sample queries, run the following "
-"SQL commands to create a table with a small network dataset."
-msgstr ""
-
-# 22d8afba7fd34fd6b7bf201ba4e1ba0c
-#: ../../src/developer/sampledata.rst:21
-msgid "Create table"
-msgstr ""
-
-# 39ea0437205c4eaca6eb612e61a74795
-#: ../../src/developer/sampledata.rst:50
-msgid "Insert network data"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/doc/src/installation/build.po b/doc/i18n/de/LC_MESSAGES/doc/src/installation/build.po
deleted file mode 100644
index 358e402..0000000
--- a/doc/i18n/de/LC_MESSAGES/doc/src/installation/build.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# Daniel Kastl, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:13+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 36951e7f140d4d5b980b0b6a97a04faf
-#: ../../src/installation/build.rst:13
-msgid "Build Guide"
-msgstr "Build-Anleitung"
-
-# 8c64736c7cb4454d8d602456cae13eb7
-#: ../../src/installation/build.rst:15
-msgid ""
-"To be able to compile pgRouting make sure that the following dependencies "
-"are met:"
-msgstr "Um pgRouting kompilieren zu können stellen Sie sicher, dass die folgenden Abhängigkeiten erfüllt sind:"
-
-# 803fb42d0ed746e7b1434fc0702fecc4
-#: ../../src/installation/build.rst:17
-msgid "C and C++ compilers"
-msgstr "C- und C++-Compiler"
-
-# c5384bc38f6745bd858daa8f2778464c
-#: ../../src/installation/build.rst:18
-msgid "Postgresql version >= 8.4 (>= 9.1 recommended)"
-msgstr "PostgreSQL-Version >= 8,4 (>= 9.1 empfohlen)"
-
-# 7822317678024503afbe9da83351626f
-#: ../../src/installation/build.rst:19
-msgid "PostGIS version >= 1.5 (>= 2.0 recommended)"
-msgstr "PostGIS Version >= 1,5 (>= 2.0 empfohlen)"
-
-# 2092361736a94597ae950089f6baeb7c
-#: ../../src/installation/build.rst:20
-msgid "The Boost Graph Library (BGL). Version >= [TBD]"
-msgstr ""
-
-# ad7f5e5325504267abb8922823e31b6c
-#: ../../src/installation/build.rst:21
-msgid "CMake >= 2.8.8"
-msgstr "CMake >= 2.8.8"
-
-# 9423854129e8411ca11bc2e79ed0a44e
-#: ../../src/installation/build.rst:22
-msgid "(optional, for Driving Distance) CGAL >= [TBD]"
-msgstr ""
-
-# fbff857abfa44607b05113423945439a
-#: ../../src/installation/build.rst:23
-msgid "(optional, for Documentation) Sphinx >= 1.1"
-msgstr ""
-
-# 48f6a3951914403f9e1b5ac7d64ada3f
-#: ../../src/installation/build.rst:24
-msgid "(optional, for Documentation as PDF) Latex >= [TBD]"
-msgstr ""
-
-# c6b958f8611849fe90a824cc62db1a74
-#: ../../src/installation/build.rst:26
-msgid ""
-"The cmake system has variables the can be configured via the command line "
-"options by setting them with -D<varable>=<value>. You can get a listing of "
-"these via:"
-msgstr ""
-
-# 62a69adeee3141d5a7de8e0510818440
-#: ../../src/installation/build.rst:34
-msgid "Currently these are:"
-msgstr ""
-
-# 35027a6663fc4210b027e5210150e681
-#: ../../src/installation/build.rst:36
-msgid ""
-"Boost_DIR:PATH=Boost_DIR-NOTFOUND CMAKE_BUILD_TYPE:STRING= "
-"CMAKE_INSTALL_PREFIX:PATH=/usr/local "
-"POSTGRESQL_EXECUTABLE:FILEPATH=/usr/lib/postgresql/9.2/bin/postgres "
-"POSTGRESQL_PG_CONFIG:FILEPATH=/usr/bin/pg_config WITH_DD:BOOL=ON "
-"WITH_DOC:BOOL=OFF BUILD_HTML:BOOL=ON BUILD_LATEX:BOOL=OFF BUILD_MAN:BOOL=ON"
-msgstr ""
-
-# 2a6ecc049d1a49e481516a497cb42cfd
-#: ../../src/installation/build.rst:47
-msgid ""
-"These also show the current or default values based on our development "
-"system. So your values my be different. In general the ones that are of most"
-" interest are:"
-msgstr ""
-
-# b07b4fda86d7472b823a2e8982cf6b05
-#: ../../src/installation/build.rst:49
-msgid ""
-"WITH_DD:BOOL=ON       -- Turn on/off building driving distance code. "
-"WITH_DOC:BOOL=OFF     -- Turn on/off building the documentation "
-"BUILD_HTML:BOOL=ON    -- If WITH_DOC=ON, turn on/off building HTML "
-"BUILD_LATEX:BOOL=OFF  -- If WITH_DOC=ON, turn on/off building PDF "
-"BUILD_MAN:BOOL=ON     -- If WITH_DOC=ON, turn on/off building MAN pages"
-msgstr ""
-
-# 1b3877776a474e2bbae2cdf632ab7898
-#: ../../src/installation/build.rst:55
-msgid ""
-"To change any of these add ``-D<variable>=<value>`` to the cmake lines "
-"below. For example to turn on documentation, your cmake command might look "
-"like:"
-msgstr ""
-
-# ce5663a99fe540e59ba79b8415f2e8cf
-#: ../../src/installation/build.rst:62
-msgid ""
-"If you turn on the documentation, you also need to add the ``doc`` target to"
-" the make command."
-msgstr ""
-
-# 3447ac18753a48cd8b36008a1c4c10c7
-#: ../../src/installation/build.rst:72
-msgid "For MinGW on Windows"
-msgstr "Für MinGW unter Windows"
-
-# 9e2e9bb5dfd54856a24b3e0f455b0c82
-#: ../../src/installation/build.rst:84
-msgid "For Linux"
-msgstr "Für Linux"
-
-# 4939346c6ad34ddc92927ceeb1b5a543
-#: ../../src/installation/build.rst:96
-msgid "With Documentation"
-msgstr "Mit Dokumentation"
-
-# a86f43c9a5b84d089caa0a06ac07f64c
-#: ../../src/installation/build.rst:98
-msgid ""
-"Build with documentation (requires `Sphinx <http://sphinx-doc.org/>`_):"
-msgstr ""
-
-# c9c92cc08d7440f98fe61e333ffc6fe6
-#: ../../src/installation/build.rst:106
-msgid "Rebuild modified documentation only:"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/doc/src/installation/index.po b/doc/i18n/de/LC_MESSAGES/doc/src/installation/index.po
deleted file mode 100644
index 3e7725b..0000000
--- a/doc/i18n/de/LC_MESSAGES/doc/src/installation/index.po
+++ /dev/null
@@ -1,202 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-02 02:38+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 163e330cdbbe4f1895d0b837c5e70863
-#: ../../src/installation/index.rst:13
-msgid "Installation"
-msgstr ""
-
-# 6ce6ab6a98ca40bcb2f8a9b323420347
-#: ../../src/installation/index.rst:15
-msgid ""
-"Binary packages are provided for the current version on the following "
-"platforms:"
-msgstr ""
-
-# 05f844edf06c4e02ad708863cbce2c0b
-#: ../../src/installation/index.rst:19
-msgid "Windows"
-msgstr ""
-
-# a160af2c58664a97bf2d2b70b86c1a77
-#: ../../src/installation/index.rst:21
-msgid "Winnie Bot Experimental Builds:"
-msgstr ""
-
-# d4ecd2a3db9b4e87bb57273b674f6d0f
-#: ../../src/installation/index.rst:23
-msgid ""
-"`PostgreSQL 9.2 32-bit, 64-bit "
-"<http://winnie.postgis.net/download/windows/pg92/buildbot/>`_"
-msgstr ""
-
-# d5014bf62620469b9712ec5f65bcf3eb
-#: ../../src/installation/index.rst:27
-msgid "Ubuntu/Debian"
-msgstr ""
-
-# b01ddbea3b8a41acb6fb1d0f4bc5b47a
-#: ../../src/installation/index.rst:29
-msgid "Ubuntu packages are available in Launchpad repositories:"
-msgstr ""
-
-# 7161d112f8b84fb99b4d331d0b5c50f0
-#: ../../src/installation/index.rst:31
-msgid "*stable* https://launchpad.net/~georepublic/+archive/pgrouting"
-msgstr ""
-
-# a8317be66d4447aea1946994220ce26b
-#: ../../src/installation/index.rst:32
-msgid ""
-"*unstable* https://launchpad.net/~georepublic/+archive/pgrouting-unstable"
-msgstr ""
-
-# b3e4f3a43bb74b368605395a9052413c
-#: ../../src/installation/index.rst:43
-msgid ""
-"Use `UbuntuGIS-unstable PPA <https://launchpad.net/~ubuntugis/+archive"
-"/ubuntugis-unstable>`_ to install PostGIS 2.0."
-msgstr ""
-
-# e936e220d939412a8cf6d96a001f1972
-#: ../../src/installation/index.rst:47
-msgid "RHEL/CentOS/Fedora"
-msgstr ""
-
-# 0ee2b5493d0d45cf8b576674352dc29f
-#: ../../src/installation/index.rst:49
-msgid ""
-"Fedora RPM's: https://admin.fedoraproject.org/pkgdb/acls/name/pgRouting"
-msgstr ""
-
-# 8f056c29f5c042d5b3e3a6fb26632448
-#: ../../src/installation/index.rst:53
-msgid "OSX"
-msgstr ""
-
-# ed8ef1be20f64f4582b6b5ade7f9dab8
-#: ../../src/installation/index.rst:55
-msgid ""
-"See `builds from KingChaos <http://www.kyngchaos.com/software/postgres>`_."
-msgstr ""
-
-# 1a87de6c454844e4be378f1df26c524e
-#: ../../src/installation/index.rst:59
-msgid "Build from Source"
-msgstr ""
-
-# 2d222bc491194fabab4b8e99c2692f59
-#: ../../src/installation/index.rst:62
-msgid "Source Package"
-msgstr ""
-
-# d1443c9ed92746328d680435d8d8818a
-#: ../../src/installation/index.rst:65
-msgid "Git 2.0.0-rc1 release"
-msgstr ""
-
-# 2b974ad9ee254e0aa0b29f2ca8387c9b
-#: ../../src/installation/index.rst:65
-msgid "`v2.0.0-rc1.tar.gz`_"
-msgstr ""
-
-# 6629edb488814621841fc5d654df4268
-#: ../../src/installation/index.rst:65
-msgid "`v2.0.0-rc1.zip`_"
-msgstr ""
-
-# a846a5dc3d9d4b34aa18e6226d2b0051
-#: ../../src/installation/index.rst:66
-msgid "Git 2.0.0-beta release"
-msgstr ""
-
-# 6cc5c0ed1f994c7e9af5c58f2eaf5a53
-#: ../../src/installation/index.rst:66
-msgid "`v2.0.0-beta.tar.gz`_"
-msgstr ""
-
-# faccd199fa2444b89de2e56aad585fff
-#: ../../src/installation/index.rst:66
-msgid "`v2.0.0-beta.zip`_"
-msgstr ""
-
-# 90006b2011c34a2dba6a4a9a331ad85d
-#: ../../src/installation/index.rst:67
-msgid "Git 2.0.0-alpha release"
-msgstr ""
-
-# e1cf3fc6b7a14c00a4cb8f0c9aa79326
-#: ../../src/installation/index.rst:67
-msgid "`v2.0.0-alpha.tar.gz`_"
-msgstr ""
-
-# 5983f427034b4116a8afb3fdf0381714
-#: ../../src/installation/index.rst:67
-msgid "`v2.0.0-alpha.zip`_"
-msgstr ""
-
-# 0df6abc6dedf471f8e19c1c19dfd6d4b
-#: ../../src/installation/index.rst:68
-msgid "Git master branch"
-msgstr ""
-
-# 8b34a03d3ab2472b9d52d9a0cf02f2f8
-#: ../../src/installation/index.rst:68
-msgid "`master.tar.gz`_"
-msgstr ""
-
-# 650cb6bea4c7421c809a7004eb659752
-#: ../../src/installation/index.rst:68
-msgid "`master.zip`_"
-msgstr ""
-
-# 8ef094f785bd4f5798cf97ee067fdc1f
-#: ../../src/installation/index.rst:69
-msgid "Git develop branch"
-msgstr ""
-
-# abe3478ebc7340d3a3b72e90a594893b
-#: ../../src/installation/index.rst:69
-msgid "`develop.tar.gz`_"
-msgstr ""
-
-# 4dfb2f54f804476e9ee2633269cee592
-#: ../../src/installation/index.rst:69
-msgid "`develop.zip`_"
-msgstr ""
-
-# 96bcd0300f4d4b82bac12c6bc618c447
-#: ../../src/installation/index.rst:89
-msgid "Using Git"
-msgstr ""
-
-# 18952685a3b14b359dc6ec26aa24fe9e
-#: ../../src/installation/index.rst:91
-msgid "Git protocol (read-only):"
-msgstr ""
-
-# e8ce5f46743846ed8a1702c07ff568a2
-#: ../../src/installation/index.rst:98
-msgid "HTTPS protocol (read-only):"
-msgstr ""
-
-# 2ea3553b44b045099b3407681b9c893f
-#: ../../src/installation/index.rst:105
-msgid "See :ref:`build` for notes on compiling from source."
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/doc/src/introduction/index.po b/doc/i18n/de/LC_MESSAGES/doc/src/introduction/index.po
deleted file mode 100644
index 8a1b0d9..0000000
--- a/doc/i18n/de/LC_MESSAGES/doc/src/introduction/index.po
+++ /dev/null
@@ -1,33 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:20+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 3cb0b7c03fa84c59a8bdb4f5efd33fec
-#: ../../src/introduction/index.rst:23
-msgid "Indices and tables"
-msgstr "Tabellen und Indizes"
-
-# 8cbfd2a6f6d44a1599cfff832b626535
-#: ../../src/introduction/index.rst:24
-msgid ":ref:`genindex`"
-msgstr ":ref:`genindex`"
-
-# df46715e85104bf48ebb9fb9005099e0
-#: ../../src/introduction/index.rst:25
-msgid ":ref:`search`"
-msgstr ":ref:`search`"
diff --git a/doc/i18n/de/LC_MESSAGES/doc/src/introduction/support.po b/doc/i18n/de/LC_MESSAGES/doc/src/introduction/support.po
deleted file mode 100644
index 3983feb..0000000
--- a/doc/i18n/de/LC_MESSAGES/doc/src/introduction/support.po
+++ /dev/null
@@ -1,212 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-02 02:37+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 3f3e673fb58a4facae23af5d85b92a3e
-#: ../../src/introduction/support.rst:13
-msgid "Support"
-msgstr ""
-
-# 054afbc73bff4758b3f1f2f23c57f16c
-#: ../../src/introduction/support.rst:15
-msgid ""
-"pgRouting community support is available through `website "
-"<http://www.pgrouting.org>`_, `documentation <http://docs.pgrouting.org>`_, "
-"tutorials, mailing lists and others. If you’re looking for :ref:`commercial "
-"support <support_commercial>`, find below a list of companies providing "
-"pgRouting development and consulting services."
-msgstr ""
-
-# 00eb6c3f6a9d4ffa879660f666f09fd2
-#: ../../src/introduction/support.rst:19
-msgid "Reporting Problems"
-msgstr ""
-
-# f852f553af29413fa977344ea5ebe860
-#: ../../src/introduction/support.rst:21
-msgid ""
-"Bugs are reported and managed in an `issue tracker "
-"<https://github.com/pgrouting/pgrouting/issues>`_. Please follow these "
-"steps:"
-msgstr ""
-
-# 6db36a1db3dd43e58fd38f9dbd64a222
-#: ../../src/introduction/support.rst:23
-msgid ""
-"Search the tickets to see if your problem has already been reported. If so, "
-"add any extra context you might have found, or at least indicate that you "
-"too are having the problem. This will help us prioritize common issues."
-msgstr ""
-
-# c1bf71ad2fbb411bb697d605d746d9a7
-#: ../../src/introduction/support.rst:24
-msgid ""
-"If your problem is unreported, create a `new issue "
-"<https://github.com/pgRouting/pgrouting/issues/new>`_ for it."
-msgstr ""
-
-# fe9adaa2deb041a29b790096a0172f6d
-#: ../../src/introduction/support.rst:25
-msgid ""
-"In your report include explicit instructions to replicate your issue. The "
-"best tickets include the exact SQL necessary to replicate a problem."
-msgstr ""
-
-# a1b37c7ea578450897528b3c37b048d1
-#: ../../src/introduction/support.rst:26
-msgid ""
-"If you can test older versions of PostGIS for your problem, please do. On "
-"your ticket, note the earliest version the problem appears."
-msgstr ""
-
-# 7c99e581b4624250aff7cdae6bdcd0c8
-#: ../../src/introduction/support.rst:27
-msgid ""
-"For the versions where you can replicate the problem, note the operating "
-"system and version of pgRouting, PostGIS and PostgreSQL."
-msgstr ""
-
-# b5fd7543c8b54f34b556a133fb638174
-#: ../../src/introduction/support.rst:31
-msgid "Mailing List and GIS StackExchange"
-msgstr ""
-
-# 2867bdf7c4d8450b86de7702b26e37ab
-#: ../../src/introduction/support.rst:33
-msgid ""
-"There are two mailing lists for pgRouting hosted on OSGeo mailing list "
-"server:"
-msgstr ""
-
-# 36b218682a5b495386d69caea89554a0
-#: ../../src/introduction/support.rst:35
-msgid ""
-"User mailing list: http://lists.osgeo.org/mailman/listinfo/pgrouting-users"
-msgstr ""
-
-# af2dbf4b5c35487cbbf47c409093d3c3
-#: ../../src/introduction/support.rst:36
-msgid ""
-"Developer mailing list: http://lists.osgeo.org/mailman/listinfo/pgrouting-"
-"dev"
-msgstr ""
-
-# 37947883c7b74e47bfa51cdac68b080a
-#: ../../src/introduction/support.rst:38
-msgid ""
-"For general questions and topics about how to use pgRouting, please write to"
-" the user mailing list."
-msgstr ""
-
-# 7e3dfcc3a31a4ba3bc41f6c7d5a3c19b
-#: ../../src/introduction/support.rst:40
-msgid ""
-"You can also ask at `GIS StackExchange <http://gis.stackexchange.com/>`_ and"
-" tag the question with ``pgrouting``. Find all questions tagged with "
-"``pgrouting`` under http://gis.stackexchange.com/questions/tagged/pgrouting "
-"or subscribe to the `pgRouting questions feed "
-"<http://gis.stackexchange.com/feeds/tag?tagnames=pgrouting&sort=newest>`_."
-msgstr ""
-
-# 18af2d65168042edac691be50d758d38
-#: ../../src/introduction/support.rst:46
-msgid "Commercial Support"
-msgstr ""
-
-# 01737e94c36042388ff00a08c37c5837
-#: ../../src/introduction/support.rst:48
-msgid ""
-"For users who require professional support, development and consulting "
-"services, consider contacting any of the following organizations, which have"
-" significantly contributed to the development of pgRouting:"
-msgstr ""
-
-# 698641cbd88f432f9273710e46df58c5
-#: ../../src/introduction/support.rst:53
-msgid "**Company**"
-msgstr ""
-
-# 0ab2194260424eb395df6be8d03f0611
-#: ../../src/introduction/support.rst:54
-msgid "**Offices in**"
-msgstr ""
-
-# e3c7d214f6aa4fc5bc8e54c16bd586b3
-#: ../../src/introduction/support.rst:55
-msgid "**Website**"
-msgstr ""
-
-# 6342d8daef894a66b042852b7aed0be3
-#: ../../src/introduction/support.rst:56
-msgid "Georepublic"
-msgstr ""
-
-# 4cff0cbdf09142fe96cedf784e527f88
-#: ../../src/introduction/support.rst:57
-msgid "Germany, Japan"
-msgstr ""
-
-# d21fbd0b66dd460782765e0899cda198
-#: ../../src/introduction/support.rst:58
-msgid "http://georepublic.info"
-msgstr ""
-
-# 4709209a400848fbb145d3e9bbd8289b
-#: ../../src/introduction/support.rst:59
-msgid "iMaptools"
-msgstr ""
-
-# 9c4e2cec8d6e49b9b1d395ef568e7bf4
-#: ../../src/introduction/support.rst:60
-msgid "United States"
-msgstr ""
-
-# f139763c29294bb79ebd32b4794edfcb
-#: ../../src/introduction/support.rst:61
-msgid "http://imaptools.com"
-msgstr ""
-
-# bc88272585b7418e87f8aa1e03fd54a5
-#: ../../src/introduction/support.rst:62
-msgid "Orkney Inc."
-msgstr ""
-
-# 84daebce6fc94b6e953b97d39cdf8c25
-#: ../../src/introduction/support.rst:63
-msgid "Japan"
-msgstr ""
-
-# 624d95640fbb41c3b1e2c8be2ac6643f
-#: ../../src/introduction/support.rst:64
-msgid "http://www.orkney.co.jp"
-msgstr ""
-
-# dfe08a11bfac41ccb2e0c58cb1e0147c
-#: ../../src/introduction/support.rst:65
-msgid "Camptocamp"
-msgstr ""
-
-# 6de446c9b4aa48b7bdf619923546c10d
-#: ../../src/introduction/support.rst:66
-msgid "Switzerland, France"
-msgstr ""
-
-# c15be03a07254055b4b18b07c808943c
-#: ../../src/introduction/support.rst:67
-msgid "http://www.camptocamp.com"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/doc/src/tutorial/analytics.po b/doc/i18n/de/LC_MESSAGES/doc/src/tutorial/analytics.po
deleted file mode 100644
index f60a882..0000000
--- a/doc/i18n/de/LC_MESSAGES/doc/src/tutorial/analytics.po
+++ /dev/null
@@ -1,214 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:12+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 980fad1a06484f7c8cef9a7fde4958ec
-#: ../../src/tutorial/analytics.rst:13
-msgid "Graph Analytics"
-msgstr ""
-
-# 92dfdaca18154d5fb972e4b0377224d1
-#: ../../src/tutorial/analytics.rst:15
-msgid "Stephen Woodbridge <woodbri at swoodbridge.com>"
-msgstr ""
-
-# 9d29818196394fe6bde3a64a6a4ecc11
-#: ../../src/tutorial/analytics.rst:16
-msgid ""
-"Stephen Woodbridge. The source code is released under the MIT-X license."
-msgstr ""
-
-# 310f125aa8204065bcc2b95d49db2196
-#: ../../src/tutorial/analytics.rst:20
-msgid "Overview"
-msgstr ""
-
-# a3236e530b504e8895bcee266c2f686b
-#: ../../src/tutorial/analytics.rst:22
-msgid ""
-"It is common to find problems with graphs that have not been constructed "
-"fully noded or in graphs with z-levels at intersection that have been "
-"entered incorrectly. An other problem is one way streets that have been "
-"entered in the wrong direction. We can not detect errors with respect to "
-"\"ground\" truth, but we can look for inconsistencies and some anomalies in "
-"a graph and report them for additional inspections."
-msgstr ""
-
-# be553e417c184b5eb0ad8ee4096ad7fa
-#: ../../src/tutorial/analytics.rst:24
-msgid ""
-"We do not current have any visualization tools for these problems, but I "
-"have used mapserver to render the graph and highlight potential problem "
-"areas. Someone familiar with graphviz might contribute tools for generating "
-"images with that."
-msgstr ""
-
-# d3e3bf311b944d1cb4f8ebfa1e3d1c35
-#: ../../src/tutorial/analytics.rst:28
-msgid "Analyze a Graph"
-msgstr ""
-
-# b7b34732b36b4c3386ebb82a99725c87
-#: ../../src/tutorial/analytics.rst:30
-msgid ""
-"With :ref:`pgr_analyze_graph` the graph can be checked for errors. For "
-"example for table \"mytab\" that has \"mytab_vertices_pgr\" as the vertices "
-"table:"
-msgstr ""
-
-# 883152de9fb3419fa261d8c6761b619f
-#: ../../src/tutorial/analytics.rst:53
-msgid "In the vertices table \"mytab_vertices_pgr\":"
-msgstr ""
-
-# dde249ef911949ab835d0b7d9350c416
-#: ../../src/tutorial/analytics.rst:55
-msgid "Deadends are indentified by ``cnt=1``"
-msgstr ""
-
-# 99f8cb76dde84268b23cafcadb364a32
-#: ../../src/tutorial/analytics.rst:56
-msgid "Potencial gap problems are identified with ``chk=1``."
-msgstr ""
-
-# fd199f728c124588a6fccf258e912e65
-#: ../../src/tutorial/analytics.rst:74
-msgid ""
-"For isolated road segments, for example, a segment where both ends are "
-"deadends. you can find these with the following query:"
-msgstr ""
-
-# 6986ddb18688499ca9065a00ac84b5fc
-#: ../../src/tutorial/analytics.rst:83
-msgid ""
-"If you want to visualize these on a graphic image, then you can use "
-"something like mapserver to render the edges and the vertices and style "
-"based on ``cnt`` or if they are isolated, etc. You can also do this with a "
-"tool like graphviz, or geoserver or other similar tools."
-msgstr ""
-
-# a9cdd802bf2d44b8ad116075edfa006d
-#: ../../src/tutorial/analytics.rst:87
-msgid "Analyze One Way Streets"
-msgstr ""
-
-# ceeba0ba5905459c92f8e38e90544cb4
-#: ../../src/tutorial/analytics.rst:89
-msgid ""
-":ref:`pgr_analyze_oneway` analyzes one way streets in a graph and identifies"
-" any flipped segments. Basically if you count the edges coming into a node "
-"and the edges exiting a node the number has to be greater than one."
-msgstr ""
-
-# 965b89e720674f77a4d6d97b26312235
-#: ../../src/tutorial/analytics.rst:91
-msgid ""
-"This query will add two columns to the vertices_tmp table ``ein int`` and "
-"``eout int`` and populate it with the appropriate counts. After running this"
-" on a graph you can identify nodes with potential problems with the "
-"following query."
-msgstr ""
-
-# 7a483848e9424b628eadf2560140d784
-#: ../../src/tutorial/analytics.rst:94
-msgid ""
-"The rules are defined as an array of text strings that if match the ``col`` "
-"value would be counted as true for the source or target in or out condition."
-msgstr ""
-
-# 07304f9bde2d4248af5616aa3ad7b998
-#: ../../src/tutorial/analytics.rst:98
-msgid "Example"
-msgstr ""
-
-# 3a0862cb802a42dd9a8eb1972e947d4a
-#: ../../src/tutorial/analytics.rst:100
-msgid ""
-"Lets assume we have a table \"st\" of edges and a column \"one_way\" that "
-"might have values like:"
-msgstr ""
-
-# 04d77c12d42a49098ac138d4cd8d1134
-#: ../../src/tutorial/analytics.rst:102
-msgid "'FT'    - oneway from the source to the target node."
-msgstr ""
-
-# 1e433297e48745b8a26d9bdc471bb079
-#: ../../src/tutorial/analytics.rst:103
-msgid "'TF'    - oneway from the target to the source node."
-msgstr ""
-
-# ec58ad375c304521a62c088b53b57cca
-#: ../../src/tutorial/analytics.rst:104
-msgid "'B'     - two way street."
-msgstr ""
-
-# de3d50611ab84de8abc0434aaf176361
-#: ../../src/tutorial/analytics.rst:105
-msgid "''      - empty field, assume twoway."
-msgstr ""
-
-# bec6afb7e7f0453b8d028b521ce38b1f
-#: ../../src/tutorial/analytics.rst:106
-msgid "<NULL>  - NULL field, use two_way_if_null flag."
-msgstr ""
-
-# 8b2a6e5d0f58459b9c0d857b8094b2b1
-#: ../../src/tutorial/analytics.rst:108
-msgid ""
-"Then we could form the following query to analyze the oneway streets for "
-"errors."
-msgstr ""
-
-# ca0da22fa34a4ab8abffbb33176f1196
-#: ../../src/tutorial/analytics.rst:127
-msgid ""
-"Typically these problems are generated by a break in the network, the one "
-"way direction set wrong, maybe an error related to z-levels or a network "
-"that is not properly noded."
-msgstr ""
-
-# e6995522d4b34322a49f7fc234ef5a92
-#: ../../src/tutorial/analytics.rst:129
-msgid ""
-"The above tools do not detect all network issues, but they will identify "
-"some common problems. There are other problems that are hard to detect "
-"because they are more global in nature like multiple disconnected networks. "
-"Think of an island with a road network that is not connected to the mainland"
-" network because the bridge or ferry routes are missing."
-msgstr ""
-
-# f35ee6b63cb84a21956ba58f495375b3
-#: ../../src/tutorial/analytics.rst:133
-msgid "See Also"
-msgstr "Siehe auch"
-
-# 46adfdf5d9b042109be5c667ad12afdc
-#: ../../src/tutorial/analytics.rst:135
-msgid ":ref:`pgr_analyze_graph`"
-msgstr ""
-
-# d6a1979339344f65beef1fb134c99ea0
-#: ../../src/tutorial/analytics.rst:136
-msgid ":ref:`pgr_analyze_oneway`"
-msgstr ""
-
-# b1e8747121eb4e61bc26581ab784c9ce
-#: ../../src/tutorial/analytics.rst:137
-msgid ":ref:`pgr_node_network`"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/doc/src/tutorial/custom_query.po b/doc/i18n/de/LC_MESSAGES/doc/src/tutorial/custom_query.po
deleted file mode 100644
index 45d19c0..0000000
--- a/doc/i18n/de/LC_MESSAGES/doc/src/tutorial/custom_query.po
+++ /dev/null
@@ -1,23 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-02 02:36+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# b91f0d6588cf4d91a064ad81536cb9a5
-#: ../../src/tutorial/custom_query.rst:13
-msgid "Custom Query"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/doc/src/tutorial/custom_wrapper.po b/doc/i18n/de/LC_MESSAGES/doc/src/tutorial/custom_wrapper.po
deleted file mode 100644
index cff289e..0000000
--- a/doc/i18n/de/LC_MESSAGES/doc/src/tutorial/custom_wrapper.po
+++ /dev/null
@@ -1,23 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-02 02:35+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# eabd47deb6034d1c95a09b9014e26c69
-#: ../../src/tutorial/custom_wrapper.rst:13
-msgid "Custom Wrapper"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/doc/src/tutorial/index.po b/doc/i18n/de/LC_MESSAGES/doc/src/tutorial/index.po
deleted file mode 100644
index c926302..0000000
--- a/doc/i18n/de/LC_MESSAGES/doc/src/tutorial/index.po
+++ /dev/null
@@ -1,98 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (187a022 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-23 15:04\n"
-"PO-Revision-Date: 2013-09-23 20:11+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 6a8f93140b244bb29541e366b9af91dd
-#: ../../src/tutorial/index.rst:13
-msgid "Tutorial"
-msgstr "Anleitung"
-
-# a64c244637f4455cbded0e09c15fb8e1
-#: ../../src/tutorial/index.rst:16
-msgid ":ref:`Getting started <tutorial>`"
-msgstr ""
-
-# acf4544cb0394b96859312fe489b6b5f
-#: ../../src/tutorial/index.rst:18
-msgid "How to create a database to use for our project"
-msgstr ""
-
-# 29bb03c78beb407cb3c7ef833144e908
-#: ../../src/tutorial/index.rst:19
-msgid "How to load some data"
-msgstr ""
-
-# 6522624c4787423098652645beaca70b
-#: ../../src/tutorial/index.rst:20
-msgid "How to build a topology"
-msgstr ""
-
-# 7e3a1701c1cb4f2399f80cab2f32fbfd
-#: ../../src/tutorial/index.rst:21
-msgid "How to check your graph for errors"
-msgstr ""
-
-# 7a4ac738b5a54446a3fb6a2a872ee973
-#: ../../src/tutorial/index.rst:22
-msgid "How to compute a route"
-msgstr ""
-
-# 267375c5b956437cab09d66694082436
-#: ../../src/tutorial/index.rst:23
-msgid "How to use other tools to view your graph and route"
-msgstr ""
-
-# 7eb6346c00174549a67aa3ba5b639061
-#: ../../src/tutorial/index.rst:24
-msgid "How to create a web app"
-msgstr ""
-
-# 9c88e3538b4443db8727c2ac29dfe064
-#: ../../src/tutorial/index.rst:26
-msgid "Advanced Topics"
-msgstr ""
-
-# 96bfb05f4c374de79f250704d4c8b3e7
-#: ../../src/tutorial/index.rst:28
-msgid ":ref:`topology` for an overview of a topology for routing algorithms."
-msgstr ""
-
-# 5bb8a81892314636b035fe0d8e56b426
-#: ../../src/tutorial/index.rst:29
-msgid ":ref:`analytics` for an overview of the analysis of a graph."
-msgstr ""
-
-# 6cfe3bc3d8b942b188c87a00b5e92cb8
-#: ../../src/tutorial/index.rst:30
-msgid ":ref:`custom_query` that is used in the routing algorithms."
-msgstr ""
-
-# 2fc8eb635e614b249d37a76fb7d66f68
-#: ../../src/tutorial/index.rst:31
-msgid ":ref:`performance` to improve your performance."
-msgstr ""
-
-# 1cf3220a11c4411b85339e05e3546f22
-#: ../../src/tutorial/index.rst:32
-msgid ":ref:`custom_wrapper` to colaborate with a wrapper."
-msgstr ""
-
-# 025472df762342bb955f96e2572111ed
-#: ../../src/tutorial/index.rst:33
-msgid ":ref:`recipes` to colaborate with a recipe."
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/doc/src/tutorial/performance.po b/doc/i18n/de/LC_MESSAGES/doc/src/tutorial/performance.po
deleted file mode 100644
index 1bf3e5f..0000000
--- a/doc/i18n/de/LC_MESSAGES/doc/src/tutorial/performance.po
+++ /dev/null
@@ -1,23 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-02 02:35+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 1cd2afc4adbb468398fef1d40d5c4336
-#: ../../src/tutorial/performance.rst:13
-msgid "Performance Tips"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/doc/src/tutorial/recipes.po b/doc/i18n/de/LC_MESSAGES/doc/src/tutorial/recipes.po
deleted file mode 100644
index 8009b22..0000000
--- a/doc/i18n/de/LC_MESSAGES/doc/src/tutorial/recipes.po
+++ /dev/null
@@ -1,23 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-02 02:36+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 227045a7e0474d4998d6a6d10503851b
-#: ../../src/tutorial/recipes.rst:13
-msgid "Useful Recipes"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/doc/src/tutorial/topology.po b/doc/i18n/de/LC_MESSAGES/doc/src/tutorial/topology.po
deleted file mode 100644
index e26941d..0000000
--- a/doc/i18n/de/LC_MESSAGES/doc/src/tutorial/topology.po
+++ /dev/null
@@ -1,123 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:12+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 95ba56beb837464cac49ef7880693c4c
-#: ../../src/tutorial/topology.rst:13
-msgid "Routing Topology"
-msgstr ""
-
-# a13e17875be047edb65c4dff0e77e3a3
-#: ../../src/tutorial/topology.rst:15
-msgid "Stephen Woodbridge <woodbri at swoodbridge.com>"
-msgstr ""
-
-# fae10235d477445e8c8ad3b8ddf138c5
-#: ../../src/tutorial/topology.rst:16
-msgid ""
-"Stephen Woodbridge. The source code is released under the MIT-X license."
-msgstr ""
-
-# bb8d84bed17047048664ea7fe078eb94
-#: ../../src/tutorial/topology.rst:20
-msgid "Overview"
-msgstr ""
-
-# 2a882bec3de94c1eb574a3eb222c98e4
-#: ../../src/tutorial/topology.rst:22
-msgid ""
-"Typically when GIS files are loaded into the data database for use with "
-"pgRouting they do not have topology information associated with them. To "
-"create a useful topology the data needs to be \"noded\". This means that "
-"where two or more roads form an intersection there it needs to be a node at "
-"the intersection and all the road segments need to be broken at the "
-"intersection, assuming that you can navigate from any of these segments to "
-"any other segment via that intersection."
-msgstr ""
-
-# 65c5e66127ab486492799e66af98970c
-#: ../../src/tutorial/topology.rst:24
-msgid ""
-"You can use the :ref:`graph analysis functions <analytics>` to help you see "
-"where you might have topology problems in your data. If you need to node "
-"your data, we also have a function :ref:`pgr_nodeNetwork() "
-"<pgr_node_network>` that might work for you. This function splits ALL "
-"crossing segments and nodes them. There are some cases where this might NOT "
-"be the right thing to do."
-msgstr ""
-
-# efc1fb5385064e7da087f3b0371faf57
-#: ../../src/tutorial/topology.rst:26
-msgid ""
-"For example, when you have an overpass and underpass intersection, you do "
-"not want these noded, but pgr_nodeNetwork does not know that is the case and"
-" will node them which is not good because then the router will be able to "
-"turn off the overpass onto the underpass like it was a flat 2D intersection."
-" To deal with this problem some data sets use z-levels at these types of "
-"intersections and other data might not node these intersection which would "
-"be ok."
-msgstr ""
-
-# 43c22da1f7b34db7999adbad7ac7a4e1
-#: ../../src/tutorial/topology.rst:28
-msgid ""
-"For those cases where topology needs to be added the following functions may"
-" be useful. One way to prep the data for pgRouting is to add the following "
-"columns to your table and then populate them as appropriate. This example "
-"makes a lot of assumption like that you original data tables already has "
-"certain columns in it like ``one_way``, ``fcc``, and possibly others and "
-"that they contain specific data values. This is only to give you an idea of "
-"what you can do with your data."
-msgstr ""
-
-# 30e52836594b46f1917dd9ffaa55fc0c
-#: ../../src/tutorial/topology.rst:49
-msgid ""
-"The function :ref:`pgr_createTopology() <pgr_create_topology>` will create "
-"the ``vertices_tmp`` table and populate the ``source`` and ``target`` "
-"columns. The following example populated the remaining columns. In this "
-"example, the ``fcc`` column contains feature class code and the ``CASE`` "
-"statements converts it to an average speed."
-msgstr ""
-
-# 6aa2b52ff1ac4c16a315c9ddfdf90b57
-#: ../../src/tutorial/topology.rst:112
-msgid ""
-"Now your database should be ready to use any (most?) of the pgRouting "
-"algorithms."
-msgstr ""
-
-# 6cc3d005cb454b77959bfbdc6fdd2105
-#: ../../src/tutorial/topology.rst:116
-msgid "See Also"
-msgstr "Siehe auch"
-
-# 40847af777814998afe63d824d73c507
-#: ../../src/tutorial/topology.rst:118
-msgid ":ref:`pgr_create_topology`"
-msgstr ""
-
-# 974b427fbcf64ec8ab76456dcd37bd7d
-#: ../../src/tutorial/topology.rst:119
-msgid ":ref:`pgr_node_network`"
-msgstr ""
-
-# adedad6329b0494988daee57bcf0cb98
-#: ../../src/tutorial/topology.rst:120
-msgid ":ref:`pgr_point_to_id`"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/apsp_johnson/doc/index.po b/doc/i18n/de/LC_MESSAGES/src/apsp_johnson/doc/index.po
deleted file mode 100644
index cab98fe..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/apsp_johnson/doc/index.po
+++ /dev/null
@@ -1,140 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-08-04 04:23+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# c9937b945f654be08e4180e57b2723de
-#: ../../../src/apsp_johnson/doc/index.rst:13
-msgid "pgr_apspJohnson - All Pairs Shortest Path, Johnson's Algorithm"
-msgstr ""
-
-# 79936f3a71384a8a9148a3886df7a858
-#: ../../../src/apsp_johnson/doc/index.rst:20
-msgid "Name"
-msgstr "Name"
-
-# 3145d47e956649628986400ffdab56a5
-#: ../../../src/apsp_johnson/doc/index.rst:22
-msgid ""
-"``pgr_apspJohnson`` - Returns all costs for each pair of nodes in the graph."
-msgstr ""
-
-# 24009fd27614418c9dee8d1d27eca209
-#: ../../../src/apsp_johnson/doc/index.rst:26
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# 6aa48442c73548e58b708ec465f0993a
-#: ../../../src/apsp_johnson/doc/index.rst:28
-msgid ""
-"Johnson's algorithm is a way to find the shortest paths between all pairs of"
-" vertices in a sparse, edge weighted, directed graph. Returns a set of "
-":ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows for "
-"every pair of nodes in the graph."
-msgstr ""
-
-# afa92fc38dee48288d509f6006247df1
-#: ../../../src/apsp_johnson/doc/index.rst:36
-msgid "Description"
-msgstr "Beschreibung"
-
-# 1256fc43f6ad440689b650619604651c
-#: ../../../src/apsp_johnson/doc/index.rst:38
-msgid ""
-"a SQL query that should return the edges for the graph that will be "
-"analyzed:"
-msgstr ""
-
-# 3f908a1bbdd04eaa9bf33225e67da2c7
-#: ../../../src/apsp_johnson/doc/index.rst:44
-msgid "``int4`` identifier of the source vertex for this edge"
-msgstr ""
-
-# 993049755c48440a9bc398ea9a13fe95
-#: ../../../src/apsp_johnson/doc/index.rst:45
-msgid "``int4`` identifier of the target vertex for this edge"
-msgstr ""
-
-# 28aa6b13c7d54bbdb49c76098a8e4d8e
-#: ../../../src/apsp_johnson/doc/index.rst:46
-msgid "``float8`` a positive value for the cost to traverse this edge"
-msgstr ""
-
-# 7514070dfcd1415e8414754509baee32
-#: ../../../src/apsp_johnson/doc/index.rst:48
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr ""
-
-# 25408ce6cf3d45bebebd52768b102fc0
-#: ../../../src/apsp_johnson/doc/index.rst:50
-msgid "row sequence"
-msgstr ""
-
-# e4b9d28e22be4a78a2edc7edbf4f1af3
-#: ../../../src/apsp_johnson/doc/index.rst:51
-msgid "source node ID"
-msgstr ""
-
-# f4ef2869f447410dbdb75bf3856bfa93
-#: ../../../src/apsp_johnson/doc/index.rst:52
-msgid "target node ID"
-msgstr ""
-
-# 74d7b05838ba4c978e0c33f94ab0868f
-#: ../../../src/apsp_johnson/doc/index.rst:53
-msgid "cost to traverse from ``id1`` to ``id2``"
-msgstr ""
-
-# 1767087139fa47218a9eef54ebf0b0f1
-#: ../../../src/apsp_johnson/doc/index.rst:56
-msgid "History"
-msgstr "Geschichte"
-
-# 5bc1dae5c7f041298849cae876983c32
-#: ../../../src/apsp_johnson/doc/index.rst:57
-msgid "New in version 2.0.0"
-msgstr "Neu in Version 2.0.0"
-
-# b679c9ef11b544a6a6502b461b4e3d96
-#: ../../../src/apsp_johnson/doc/index.rst:61
-msgid "Examples"
-msgstr "Beispiele"
-
-# 5d6ef1673c204a229ed05dae0c96d0f8
-#: ../../../src/apsp_johnson/doc/index.rst:78
-msgid "The query uses the :ref:`sampledata` network."
-msgstr ""
-
-# 8ba7f2721fe74966b8dfd4620ae10b9a
-#: ../../../src/apsp_johnson/doc/index.rst:82
-msgid "See Also"
-msgstr "Siehe auch"
-
-# 475eb50687e74051895523e791434bc1
-#: ../../../src/apsp_johnson/doc/index.rst:84
-msgid ":ref:`type_cost_result`"
-msgstr ""
-
-# 75e0dd6fa0ed4621acf49893e637237c
-#: ../../../src/apsp_johnson/doc/index.rst:85
-msgid ":ref:`pgr_apsp_warshall`"
-msgstr ""
-
-# 0e63d6ba27244302bfd848164331ea09
-#: ../../../src/apsp_johnson/doc/index.rst:86
-msgid "http://en.wikipedia.org/wiki/Johnson%27s_algorithm"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/apsp_warshall/doc/index.po b/doc/i18n/de/LC_MESSAGES/src/apsp_warshall/doc/index.po
deleted file mode 100644
index 27adc09..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/apsp_warshall/doc/index.po
+++ /dev/null
@@ -1,160 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:15+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 0f1284ff13c64db68306d3e8f9c97beb
-#: ../../../src/apsp_warshall/doc/index.rst:13
-msgid "pgr_apspWarshall - All Pairs Shortest Path, Floyd-Warshall Algorithm"
-msgstr ""
-
-# 42b576974e9a458e951dd429ba4ac9f7
-#: ../../../src/apsp_warshall/doc/index.rst:20
-msgid "Name"
-msgstr "Name"
-
-# 8610cfce602b4e43867a979e40348da5
-#: ../../../src/apsp_warshall/doc/index.rst:22
-msgid ""
-"``pgr_apspWarshall`` - Returns all costs for each pair of nodes in the "
-"graph."
-msgstr ""
-
-# 4c8c0af0a22f4783b5f40d7d68b431da
-#: ../../../src/apsp_warshall/doc/index.rst:26
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# 001f0668ce734f4b9419fd7b22d98b00
-#: ../../../src/apsp_warshall/doc/index.rst:28
-msgid ""
-"The Floyd-Warshall algorithm (also known as Floyd's algorithm and other "
-"names) is a graph analysis algorithm for finding the shortest paths between "
-"all pairs of nodes in a weighted graph. Returns a set of "
-":ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows for "
-"every pair of nodes in the graph."
-msgstr ""
-
-# e7c4a6dd259d46cd9fcf2631dbc22f2e
-#: ../../../src/apsp_warshall/doc/index.rst:36
-msgid "Description"
-msgstr "Beschreibung"
-
-# e0f6896524cc4a4d91c418144da5102b
-#: ../../../src/apsp_warshall/doc/index.rst:38
-msgid ""
-"a SQL query that should return the edges for the graph that will be "
-"analyzed:"
-msgstr ""
-
-# 97a32a6ff6e14816834d1eb5e229f2b4
-#: ../../../src/apsp_warshall/doc/index.rst:44
-msgid "``int4`` identifier of the edge"
-msgstr ""
-
-# b42ae19f11c44f618c034ae1ce6be00a
-#: ../../../src/apsp_warshall/doc/index.rst:45
-msgid "``int4`` identifier of the source vertex for this edge"
-msgstr ""
-
-# c0b57bb608d34affbce8c6bb5ec9302f
-#: ../../../src/apsp_warshall/doc/index.rst:46
-msgid "``int4`` identifier of the target vertex for this edge"
-msgstr ""
-
-# c5cb344693474da29d9a8ff57e96c0f7
-#: ../../../src/apsp_warshall/doc/index.rst:47
-msgid "``float8`` a positive value for the cost to traverse this edge"
-msgstr ""
-
-# 5dd37dfc4bff497d85337655170aa2fe
-#: ../../../src/apsp_warshall/doc/index.rst:49
-msgid "``true`` if the graph is directed"
-msgstr ""
-
-# 6996d55bc55245d39ea7b7fadce791a7
-#: ../../../src/apsp_warshall/doc/index.rst:50
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr ""
-
-# a26f91fad97b4c1fb810f9cbe42a7c55
-#: ../../../src/apsp_warshall/doc/index.rst:52
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr ""
-
-# d67cd203b9424e1faa0416ab268956c5
-#: ../../../src/apsp_warshall/doc/index.rst:54
-msgid "row sequence"
-msgstr ""
-
-# 13448c2239764d798d56189875475d19
-#: ../../../src/apsp_warshall/doc/index.rst:55
-msgid "source node ID"
-msgstr ""
-
-# 754d094ac6ae42d5a22b8855ce7a73e7
-#: ../../../src/apsp_warshall/doc/index.rst:56
-msgid "target node ID"
-msgstr ""
-
-# c9edf1f99746459c9ef79922766fc805
-#: ../../../src/apsp_warshall/doc/index.rst:57
-msgid "cost to traverse from ``id1`` to ``id2``"
-msgstr ""
-
-# e878f40e61334a669136534d82f3bc05
-#: ../../../src/apsp_warshall/doc/index.rst:61
-msgid "History"
-msgstr "Geschichte"
-
-# b506bf29ad7944d7bd0db6d48ffe9f4f
-#: ../../../src/apsp_warshall/doc/index.rst:62
-msgid "New in version 2.0.0"
-msgstr "Neu in Version 2.0.0"
-
-# 5c0117f6a40740aa8b02bc181e0e01dc
-#: ../../../src/apsp_warshall/doc/index.rst:66
-msgid "Examples"
-msgstr "Beispiele"
-
-# 38918d939ef74f6e86528d1060dc810c
-#: ../../../src/apsp_warshall/doc/index.rst:84
-msgid "The query uses the :ref:`sampledata` network."
-msgstr ""
-
-# 4feffc0c2a824f81bb35b10c6f13176d
-#: ../../../src/apsp_warshall/doc/index.rst:88
-msgid "See Also"
-msgstr "Siehe auch"
-
-# aa6ecd6c9d584db1adf49b7df81583e9
-#: ../../../src/apsp_warshall/doc/index.rst:90
-msgid ":ref:`type_cost_result`"
-msgstr ""
-
-# 0f05cbf530e0455daed36d6b50bbf30f
-#: ../../../src/apsp_warshall/doc/index.rst:91
-msgid ":ref:`pgr_apsp_johnson`"
-msgstr ""
-
-# b09888d0778445eb93cbdfb7075b4157
-#: ../../../src/apsp_warshall/doc/index.rst:92
-msgid "http://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall_algorithm"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/astar/doc/index.po b/doc/i18n/de/LC_MESSAGES/src/astar/doc/index.po
deleted file mode 100644
index 1bdf1ab..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/astar/doc/index.po
+++ /dev/null
@@ -1,202 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 06:20+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# b270045aa6e74d789897bb176f5c4a37
-#: ../../../src/astar/doc/index.rst:13
-msgid "pgr_astar - Shortest Path A*"
-msgstr ""
-
-# a4d6dd313b3f44bdbbecdf59c8e4e866
-#: ../../../src/astar/doc/index.rst:20
-msgid "Name"
-msgstr "Name"
-
-# 0c4c2fff9ea445dcbb1dfdca8374cd09
-#: ../../../src/astar/doc/index.rst:22
-msgid "``pgr_astar`` — Returns the shortest path using A* algorithm."
-msgstr ""
-
-# d3e3e83acd754acb9ac4c583d6dd0649
-#: ../../../src/astar/doc/index.rst:26
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# 87ae068cf08b4ddca7f5bb3722ce57f2
-#: ../../../src/astar/doc/index.rst:28
-msgid ""
-"The A* (pronounced \"A Star\") algorithm is based on Dijkstra's algorithm "
-"with a heuristic that allow it to solve most shortest path problems by "
-"evaluation only a sub-set of the overall graph. Returns a set of "
-":ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows, that "
-"make up a path."
-msgstr ""
-
-# cd2802c13d3d4798934f9f60cc9ebfb9
-#: ../../../src/astar/doc/index.rst:37
-msgid "Description"
-msgstr "Beschreibung"
-
-# 64ca501e984b45df9055511188eb65f4
-#: ../../../src/astar/doc/index.rst:39
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr ""
-
-# 739adee835f647ff94511acc6e126ee5
-#: ../../../src/astar/doc/index.rst:46
-msgid "``int4`` identifier of the edge"
-msgstr ""
-
-# 72186cf53aee4035bdbcc0495fb6bf42
-#: ../../../src/astar/doc/index.rst:47
-msgid "``int4`` identifier of the source vertex"
-msgstr ""
-
-# 0857159bb2c949bb892388c25f6fb4ec
-#: ../../../src/astar/doc/index.rst:48
-msgid "``int4`` identifier of the target vertex"
-msgstr ""
-
-# 4ddccc85290d4aba9b82668e90b2ba31
-#: ../../../src/astar/doc/index.rst:49
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr ""
-
-# d21510a5452e4a098e36f5ae7f7585b4
-#: ../../../src/astar/doc/index.rst:50
-msgid "``x`` coordinate of the start point of the edge"
-msgstr ""
-
-# 78d6feeb1c174e96ad209b97fb1cd538
-#: ../../../src/astar/doc/index.rst:51
-msgid "``y`` coordinate of the start point of the edge"
-msgstr ""
-
-# b7404cbf8c86414494f72f87b3702241
-#: ../../../src/astar/doc/index.rst:52
-msgid "``x`` coordinate of the end point of the edge"
-msgstr ""
-
-# d0f8d9e10994475dac4ad4e8ea1315f7
-#: ../../../src/astar/doc/index.rst:53
-msgid "``y`` coordinate of the end point of the edge"
-msgstr ""
-
-# 46b33f8b295043059fce210e43698191
-#: ../../../src/astar/doc/index.rst:54
-msgid ""
-"(optional) the cost for the reverse traversal of the edge. This is only used"
-" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
-"above remark about negative costs)."
-msgstr ""
-
-# bfd63fe9d374441babb8662a0874482b
-#: ../../../src/astar/doc/index.rst:56
-msgid "``int4`` id of the start point"
-msgstr ""
-
-# 85d35dcc4ced4efaac8d7b50f4ff9357
-#: ../../../src/astar/doc/index.rst:57
-msgid "``int4`` id of the end point"
-msgstr ""
-
-# f93b4ce091a6440d9a656b374fce6636
-#: ../../../src/astar/doc/index.rst:58
-msgid "``true`` if the graph is directed"
-msgstr ""
-
-# 1a783bf8f88146999659f222ef236d1b
-#: ../../../src/astar/doc/index.rst:59
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr ""
-
-# c0f6cf1f1daf40bc8d08fa3b85c3af6b
-#: ../../../src/astar/doc/index.rst:61
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr ""
-
-# 22b5e075f6e94c608af67a4c040f4e70
-#: ../../../src/astar/doc/index.rst:63
-msgid "row sequence"
-msgstr ""
-
-# 1f3ccd737354442fb4d87684690988a2
-#: ../../../src/astar/doc/index.rst:64
-msgid "node ID"
-msgstr ""
-
-# 8a4fe9f16a934ffa842ea049c36728bf
-#: ../../../src/astar/doc/index.rst:65
-msgid "edge ID (``-1`` for the last row)"
-msgstr ""
-
-# 7cff3509785e40adb8ff4ce4f4bf0774
-#: ../../../src/astar/doc/index.rst:66
-msgid "cost to traverse from ``id1`` using ``id2``"
-msgstr ""
-
-# 9cc8b235e4214d4c87b729d24031271e
-#: ../../../src/astar/doc/index.rst:70
-msgid "History"
-msgstr "Geschichte"
-
-# 623c2a84d062407d93855875a467dbe1
-#: ../../../src/astar/doc/index.rst:71
-msgid "Renamed in version 2.0.0"
-msgstr "Umbenannt in Version 2.0.0"
-
-# 7f75da722e6e4680a8d9e0a3d69678b9
-#: ../../../src/astar/doc/index.rst:75
-msgid "Examples"
-msgstr "Beispiele"
-
-# 533a7e7ccd3645c4a6e6d3e90875cccf
-#: ../../../src/astar/doc/index.rst:77
-msgid "Without ``reverse_cost``"
-msgstr ""
-
-# 0cf32ba2b9dd435191e182fa2e1219a3
-#: ../../../src/astar/doc/index.rst:99
-msgid "With ``reverse_cost``"
-msgstr ""
-
-# 266a522386364908870781287ffe7c77
-#: ../../../src/astar/doc/index.rst:117
-msgid "The queries use the :ref:`sampledata` network."
-msgstr ""
-
-# 3f0ab007b6c24393bda58a4c8f051a6b
-#: ../../../src/astar/doc/index.rst:121
-msgid "See Also"
-msgstr "Siehe auch"
-
-# c407743821a8437fa59503cbee2e31b7
-#: ../../../src/astar/doc/index.rst:123
-msgid ":ref:`type_cost_result`"
-msgstr ""
-
-# 994c0952621c47349ec4e5b209ee1129
-#: ../../../src/astar/doc/index.rst:124
-msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/bd_astar/doc/index.po b/doc/i18n/de/LC_MESSAGES/src/bd_astar/doc/index.po
deleted file mode 100644
index 0a0c153..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/bd_astar/doc/index.po
+++ /dev/null
@@ -1,221 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-08-04 04:22+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# d85c70ae393d476284068bf297195cc7
-#: ../../../src/bd_astar/doc/index.rst:13
-msgid "pgr_bdAstar - Bi-directional A* Shortest Path"
-msgstr ""
-
-# 59f0d447a4034729bbdc2dad7b88dcce
-#: ../../../src/bd_astar/doc/index.rst:20
-msgid "Name"
-msgstr "Name"
-
-# ff5b6b1bd362408c80bec7cfbc7108bf
-#: ../../../src/bd_astar/doc/index.rst:22
-msgid ""
-"``pgr_bdAstar`` - Returns the shortest path using Bidirectional A* "
-"algorithm."
-msgstr ""
-
-# 6e2dd97777d64f02afc4b396822f7c37
-#: ../../../src/bd_astar/doc/index.rst:26
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# d88a86d95c0447db93be2a1f185b91bd
-#: ../../../src/bd_astar/doc/index.rst:28
-msgid ""
-"This is a bi-directional A* search algorithm. It searchs from the source "
-"toward the distination and at the same time from the destination to the "
-"source and terminates whe these to searchs meet in the middle. Returns a set"
-" of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows, "
-"that make up a path."
-msgstr ""
-
-# c9f7d12fb2c9416390cbb64c61cdaaba
-#: ../../../src/bd_astar/doc/index.rst:37
-msgid "Description"
-msgstr "Beschreibung"
-
-# 2228656c57724bc18029fa054849a999
-#: ../../../src/bd_astar/doc/index.rst:39
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr ""
-
-# ba13914fdd78469389ae129eee02785f
-#: ../../../src/bd_astar/doc/index.rst:46
-msgid "``int4`` identifier of the edge"
-msgstr ""
-
-# 5e7f92a0ffa845a385efe72da0760ee5
-#: ../../../src/bd_astar/doc/index.rst:47
-msgid "``int4`` identifier of the source vertex"
-msgstr ""
-
-# 194b29afb7b3486eb5611222273bb323
-#: ../../../src/bd_astar/doc/index.rst:48
-msgid "``int4`` identifier of the target vertex"
-msgstr ""
-
-# 37f1ad354f13413fa6a47ec8ceaa3262
-#: ../../../src/bd_astar/doc/index.rst:49
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr ""
-
-# f7bf689e55584ee0b2e095b8f3147354
-#: ../../../src/bd_astar/doc/index.rst:50
-msgid "``x`` coordinate of the start point of the edge"
-msgstr ""
-
-# e7b2325c3e8f473fae345bff6b9f9af6
-#: ../../../src/bd_astar/doc/index.rst:51
-msgid "``y`` coordinate of the start point of the edge"
-msgstr ""
-
-# a554e40ce41e485d83bdcc425edab876
-#: ../../../src/bd_astar/doc/index.rst:52
-msgid "``x`` coordinate of the end point of the edge"
-msgstr ""
-
-# d0033effb66d4af891d51c0553106616
-#: ../../../src/bd_astar/doc/index.rst:53
-msgid "``y`` coordinate of the end point of the edge"
-msgstr ""
-
-# 52fd318293ff42458d93837f06a5dd78
-#: ../../../src/bd_astar/doc/index.rst:54
-msgid ""
-"(optional) the cost for the reverse traversal of the edge. This is only used"
-" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
-"above remark about negative costs)."
-msgstr ""
-
-# b2ec788128e44b59a8a9eaf588b3ef93
-#: ../../../src/bd_astar/doc/index.rst:56
-msgid "``int4`` id of the start point"
-msgstr ""
-
-# f5809c895ef3496fbaf43892301858ca
-#: ../../../src/bd_astar/doc/index.rst:57
-msgid "``int4`` id of the end point"
-msgstr ""
-
-# 29607e76254f42938d9c38a10e11c7b9
-#: ../../../src/bd_astar/doc/index.rst:58
-msgid "``true`` if the graph is directed"
-msgstr ""
-
-# f4b5e84674e749be9f6ba934004cd598
-#: ../../../src/bd_astar/doc/index.rst:59
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr ""
-
-# 9969bf0e6e5f40e3b44efbfd0e53d70b
-#: ../../../src/bd_astar/doc/index.rst:61
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr ""
-
-# 1634c060516d40388b007b17f2fee94c
-#: ../../../src/bd_astar/doc/index.rst:63
-msgid "row sequence"
-msgstr ""
-
-# 4a478cf05b72415ebfc7f95d8e0b8625
-#: ../../../src/bd_astar/doc/index.rst:64
-msgid "node ID"
-msgstr ""
-
-# b94cd2b23db94500b803d9c02b8ab358
-#: ../../../src/bd_astar/doc/index.rst:65
-msgid "edge ID (``-1`` for the last row)"
-msgstr ""
-
-# b8b6a3e185934bc4b7d44f66694523c5
-#: ../../../src/bd_astar/doc/index.rst:66
-msgid "cost to traverse from ``id1`` using ``id2``"
-msgstr ""
-
-# f9a6aa6c249c40968bc39a3db86a5ebe
-#: ../../../src/bd_astar/doc/index.rst:70
-msgid ""
-"You must reconnect to the database after ``CREATE EXTENSION pgrouting``. "
-"Otherwise the function will return ``Error computing path: std::bad_alloc``."
-msgstr ""
-
-# e574996346fe4d3d937be160d621e660
-#: ../../../src/bd_astar/doc/index.rst:74
-msgid "History"
-msgstr "Geschichte"
-
-# 98c01f9f86914541a78481fc80a804dd
-#: ../../../src/bd_astar/doc/index.rst:75
-msgid "New in version 2.0.0"
-msgstr "Neu in Version 2.0.0"
-
-# fd577945de174be79b0b53dc92d1fdae
-#: ../../../src/bd_astar/doc/index.rst:79
-msgid "Examples"
-msgstr "Beispiele"
-
-# 1e4a6776b9154f5da5abb5c6d64f3221
-#: ../../../src/bd_astar/doc/index.rst:81
-msgid "Without ``reverse_cost``"
-msgstr ""
-
-# 3f707fb48bdf4edfa0f1b3657cfcbb7a
-#: ../../../src/bd_astar/doc/index.rst:101
-msgid "With ``reverse_cost``"
-msgstr ""
-
-# 473f16db67964e14b8efb25a1cf057b9
-#: ../../../src/bd_astar/doc/index.rst:120
-msgid "The queries use the :ref:`sampledata` network."
-msgstr ""
-
-# 7289ec5f57844a379608577bd455d4b5
-#: ../../../src/bd_astar/doc/index.rst:124
-msgid "See Also"
-msgstr "Siehe auch"
-
-# 773014635f2c4e87a452416b391581e5
-#: ../../../src/bd_astar/doc/index.rst:126
-msgid ":ref:`type_cost_result`"
-msgstr ""
-
-# f4c3b61a97b94311a9f83508c040b614
-#: ../../../src/bd_astar/doc/index.rst:127
-msgid ":ref:`bd_dijkstra`"
-msgstr ""
-
-# 769c0e94fba24848bb36a7bb9ca90800
-#: ../../../src/bd_astar/doc/index.rst:128
-msgid "http://en.wikipedia.org/wiki/Bidirectional_search"
-msgstr ""
-
-# bc6e6a206f44475d91e857ec85d36106
-#: ../../../src/bd_astar/doc/index.rst:129
-msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/bd_dijkstra/doc/index.po b/doc/i18n/de/LC_MESSAGES/src/bd_dijkstra/doc/index.po
deleted file mode 100644
index 14db2bf..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/bd_dijkstra/doc/index.po
+++ /dev/null
@@ -1,194 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-08-04 04:23+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 3c0a9e188c614b0d8a83fad794d3b42f
-#: ../../../src/bd_dijkstra/doc/index.rst:13
-msgid "pgr_bdDijkstra - Bi-directional Dijkstra Shortest Path"
-msgstr ""
-
-# 2a8d7f88cd7c41549e90531d1d565848
-#: ../../../src/bd_dijkstra/doc/index.rst:21
-msgid "Name"
-msgstr "Name"
-
-# 9e326337967141dd8cb35c1a7eb5d7b2
-#: ../../../src/bd_dijkstra/doc/index.rst:23
-msgid ""
-"``pgr_bdDijkstra`` - Returns the shortest path using Bidirectional Dijkstra "
-"algorithm."
-msgstr ""
-
-# e2e0af558a7340a7a29f667b07037690
-#: ../../../src/bd_dijkstra/doc/index.rst:27
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# 23d2258a058a4b5fa6dcb6655362484a
-#: ../../../src/bd_dijkstra/doc/index.rst:29
-msgid ""
-"This is a bi-directional Dijkstra search algorithm. It searchs from the "
-"source toward the distination and at the same time from the destination to "
-"the source and terminates whe these to searchs meet in the middle. Returns a"
-" set of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows,"
-" that make up a path."
-msgstr ""
-
-# b37dbb1c097441d7afac9b1c3be4fa16
-#: ../../../src/bd_dijkstra/doc/index.rst:38
-msgid "Description"
-msgstr "Beschreibung"
-
-# 27182b928a294e22bbd7567e7ef6a1a6
-#: ../../../src/bd_dijkstra/doc/index.rst:40
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr ""
-
-# d5ecf6b2aa844b768783b31d91cc0d1c
-#: ../../../src/bd_dijkstra/doc/index.rst:47
-msgid "``int4`` identifier of the edge"
-msgstr ""
-
-# 282a69ee248b4dcfa591ec2aa3668cf4
-#: ../../../src/bd_dijkstra/doc/index.rst:48
-msgid "``int4`` identifier of the source vertex"
-msgstr ""
-
-# d8ca4a99797f4da89401ca4eae5de81b
-#: ../../../src/bd_dijkstra/doc/index.rst:49
-msgid "``int4`` identifier of the target vertex"
-msgstr ""
-
-# 16d3eacf8377421dbb3aa3f559f8c2fd
-#: ../../../src/bd_dijkstra/doc/index.rst:50
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr ""
-
-# 2a8cd5659ad849358862b656205877aa
-#: ../../../src/bd_dijkstra/doc/index.rst:51
-msgid ""
-"(optional) the cost for the reverse traversal of the edge. This is only used"
-" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
-"above remark about negative costs)."
-msgstr ""
-
-# 95f13721773f433891e1e8b50ac04509
-#: ../../../src/bd_dijkstra/doc/index.rst:53
-msgid "``int4`` id of the start point"
-msgstr ""
-
-# b9798483a7944c23b68242badf5ba991
-#: ../../../src/bd_dijkstra/doc/index.rst:54
-msgid "``int4`` id of the end point"
-msgstr ""
-
-# ff73a5d65d1e44728449829347874aa3
-#: ../../../src/bd_dijkstra/doc/index.rst:55
-msgid "``true`` if the graph is directed"
-msgstr ""
-
-# c177b69ec8f34e3e8347a48cd4fd0eec
-#: ../../../src/bd_dijkstra/doc/index.rst:56
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr ""
-
-# 94093f98581b414e8de69c5c03ed7ff9
-#: ../../../src/bd_dijkstra/doc/index.rst:58
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr ""
-
-# b6dcdf2882344c97b13a0a1b5dcfc76f
-#: ../../../src/bd_dijkstra/doc/index.rst:60
-msgid "row sequence"
-msgstr ""
-
-# 71a25f43edad4704b8f7bc386b951d6a
-#: ../../../src/bd_dijkstra/doc/index.rst:61
-msgid "node ID"
-msgstr ""
-
-# bb342316c7374f38ae60758a95fe5aa0
-#: ../../../src/bd_dijkstra/doc/index.rst:62
-msgid "edge ID (``-1`` for the last row)"
-msgstr ""
-
-# 903aaea6437d438094faa1255671261a
-#: ../../../src/bd_dijkstra/doc/index.rst:63
-msgid "cost to traverse from ``id1`` using ``id2``"
-msgstr ""
-
-# 9422981e26f04c7e9edb754944c47cea
-#: ../../../src/bd_dijkstra/doc/index.rst:66
-msgid "History"
-msgstr "Geschichte"
-
-# c1db7489de2b4ef8880d8d9f3abb66e3
-#: ../../../src/bd_dijkstra/doc/index.rst:67
-msgid "New in version 2.0.0"
-msgstr "Neu in Version 2.0.0"
-
-# e61d7de8bdb04972a567e5884e47773a
-#: ../../../src/bd_dijkstra/doc/index.rst:71
-msgid "Examples"
-msgstr "Beispiele"
-
-# e5bb5ec0cf844c229475d4e75c327eb3
-#: ../../../src/bd_dijkstra/doc/index.rst:73
-msgid "Without ``reverse_cost``"
-msgstr ""
-
-# 7b425886ca994a1e87e833443909b584
-#: ../../../src/bd_dijkstra/doc/index.rst:93
-msgid "With ``reverse_cost``"
-msgstr ""
-
-# f47bce06d90b47c0a3ba534e4af09213
-#: ../../../src/bd_dijkstra/doc/index.rst:113
-msgid "The queries use the :ref:`sampledata` network."
-msgstr ""
-
-# dce05fd947104f7fb53f334994b47db8
-#: ../../../src/bd_dijkstra/doc/index.rst:117
-msgid "See Also"
-msgstr "Siehe auch"
-
-# e9e1be5a32c8439083185caf29aaa09b
-#: ../../../src/bd_dijkstra/doc/index.rst:119
-msgid ":ref:`type_cost_result`"
-msgstr ""
-
-# 7e04714c590148078028bde3efbb5f57
-#: ../../../src/bd_dijkstra/doc/index.rst:120
-msgid ":ref:`bd_astar`"
-msgstr ""
-
-# 1e532cd9d5634fb0934e837b0db7ad8a
-#: ../../../src/bd_dijkstra/doc/index.rst:121
-msgid "http://en.wikipedia.org/wiki/Bidirectional_search"
-msgstr ""
-
-# e3826d9e6a084b349a9ed0d6fffdb1ad
-#: ../../../src/bd_dijkstra/doc/index.rst:122
-msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/analyze_graph.po b/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/analyze_graph.po
deleted file mode 100644
index 2a13116..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/analyze_graph.po
+++ /dev/null
@@ -1,410 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 06:20+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 4ec68d2c61f945ef81648e1b5c6415f1
-#: ../../../src/common/doc/functions/analyze_graph.rst:13
-msgid "pgr_analyzeGraph"
-msgstr ""
-
-# 4c3762e114fb4e67a2515bba541c8f36
-#: ../../../src/common/doc/functions/analyze_graph.rst:20
-msgid "Name"
-msgstr "Name"
-
-# ac455e0fb31e44308320f39bbd78adfc
-#: ../../../src/common/doc/functions/analyze_graph.rst:22
-msgid "``pgr_anlizeGraph`` — Analyzes the network topology."
-msgstr ""
-
-# 7d6b06e1d5354d94ac2855084e4e9e71
-#: ../../../src/common/doc/functions/analyze_graph.rst:26
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# 19f89e76f38342129988c1b3de66af9a
-# ebc7d96a54cb409a916a9e44ff8544f9
-#: ../../../src/common/doc/functions/analyze_graph.rst:28
-#: ../../../src/common/doc/functions/analyze_graph.rst:61
-msgid "The function returns:"
-msgstr ""
-
-# b996e0d0950741438419d72fc2aaa1a6
-# ac02a2dca7d24bb296b418e5019b5d52
-#: ../../../src/common/doc/functions/analyze_graph.rst:30
-#: ../../../src/common/doc/functions/analyze_graph.rst:63
-msgid "``OK`` after the analysis has finished."
-msgstr ""
-
-# 6494556e5a0240b6b89d6cc13588a959
-# 226def8709104fefbde358ee19f0dbdc
-#: ../../../src/common/doc/functions/analyze_graph.rst:31
-#: ../../../src/common/doc/functions/analyze_graph.rst:69
-msgid "``FAIL`` when the analysis was not completed due to an error."
-msgstr ""
-
-# 258df98c829a48e794073f4f67e64d37
-#: ../../../src/common/doc/functions/analyze_graph.rst:40
-msgid "Description"
-msgstr "Beschreibung"
-
-# 2ea823d9ac6a4b309542c1efdf685188
-#: ../../../src/common/doc/functions/analyze_graph.rst:43
-msgid "Prerequisites"
-msgstr ""
-
-# b6f61bceeb764c09a0519ef218788641
-#: ../../../src/common/doc/functions/analyze_graph.rst:44
-msgid ""
-"The  edge table to be analyzed must contain a source column and a target "
-"column filled with id's of the vertices of the segments and the "
-"corresponding vertices table <edge_table>_vertices_pgr that stores the "
-"vertices information."
-msgstr ""
-
-# bc5a5fd73e194a1eb18560c62b8726c5
-#: ../../../src/common/doc/functions/analyze_graph.rst:46
-msgid ""
-"Use :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create the "
-"vertices table."
-msgstr ""
-
-# dddd02de549c450da54ecc30da50bcac
-#: ../../../src/common/doc/functions/analyze_graph.rst:47
-msgid ""
-"Use :ref:`pgr_createTopology <pgr_create_topology>` to create the topology "
-"and the vertices table."
-msgstr ""
-
-# 2f1a64c5c7df47c08b9460c1c2ca9a0d
-#: ../../../src/common/doc/functions/analyze_graph.rst:50
-msgid "Parameters"
-msgstr "Parameter"
-
-# f7ef120ecd234df3bc9de0b69122a094
-#: ../../../src/common/doc/functions/analyze_graph.rst:51
-msgid "The analyze graph function accepts the following parameters:"
-msgstr ""
-
-# 93b5fa9bcdd84ccbae6d4945adb6b9b5
-#: ../../../src/common/doc/functions/analyze_graph.rst:53
-msgid "``text`` Network table name. (may contain the schema name as well)"
-msgstr ""
-
-# 0c3bf879395649e1aac68ae62880746b
-#: ../../../src/common/doc/functions/analyze_graph.rst:54
-msgid ""
-"``float8`` Snapping tolerance of disconnected edges. (in projection unit)"
-msgstr ""
-
-# cd2deb23e3394ad298d9787e069561e2
-#: ../../../src/common/doc/functions/analyze_graph.rst:55
-msgid ""
-"``text``  Geometry column name of the network table. Default value is "
-"``the_geom``."
-msgstr ""
-
-# 31330d72cbb748289eafa0fcb996153d
-#: ../../../src/common/doc/functions/analyze_graph.rst:56
-msgid ""
-"``text``  Primary key column name of the network table. Default value is "
-"``id``."
-msgstr ""
-
-# b9e5db8199ce47ccb092272e93020d7c
-#: ../../../src/common/doc/functions/analyze_graph.rst:57
-msgid ""
-"``text`` Source column name of the network table. Default value is "
-"``source``."
-msgstr ""
-
-# 245c992a7082431684659ae5845aced6
-#: ../../../src/common/doc/functions/analyze_graph.rst:58
-msgid ""
-"``text``  Target column name of the network table.  Default value is "
-"``target``."
-msgstr ""
-
-# 8e81329133844e65b7eef1f84cb73965
-#: ../../../src/common/doc/functions/analyze_graph.rst:59
-msgid ""
-"``text``   Condition to select  a subset or rows.  Default value is ``true``"
-" to indicate all rows."
-msgstr ""
-
-# c99a684aa3994cc4b60c334882d9ed78
-#: ../../../src/common/doc/functions/analyze_graph.rst:65
-msgid "Uses the vertices table: <edge_table>_vertices_pgr."
-msgstr ""
-
-# e32eb0de40d0487fbb1062ec88c5bbe9
-#: ../../../src/common/doc/functions/analyze_graph.rst:66
-msgid "Fills completly the ``cnt`` and ``chk`` columns of the vertices table."
-msgstr ""
-
-# a4a0f627086946459e80cc8ac16b31b8
-#: ../../../src/common/doc/functions/analyze_graph.rst:67
-msgid ""
-"Returns the analysis of the section of the network defined by  "
-"``rows_where``"
-msgstr ""
-
-# f2d3df84fbb14b48a0dba64650326883
-#: ../../../src/common/doc/functions/analyze_graph.rst:71
-msgid "The vertices table is not found."
-msgstr ""
-
-# 1c3dd89f91d94a32b0fa96e3c8544649
-#: ../../../src/common/doc/functions/analyze_graph.rst:72
-msgid ""
-"A required column of the Network table is not found or is not of the "
-"appropriate type."
-msgstr ""
-
-# 0e7728a66df8403b80c0e73cc496d665
-#: ../../../src/common/doc/functions/analyze_graph.rst:73
-msgid "The condition is not well formed."
-msgstr ""
-
-# 8a41f89e1b6c4622925078236419ba59
-#: ../../../src/common/doc/functions/analyze_graph.rst:74
-msgid "The names of source , target or id are the same."
-msgstr ""
-
-# 9a0c49ad17e7442291584a6d38ad24f0
-#: ../../../src/common/doc/functions/analyze_graph.rst:75
-msgid "The SRID of the geometry could not be determined."
-msgstr ""
-
-# a28d4cfc2fb145bd8b620cd99ae007ef
-#: ../../../src/common/doc/functions/analyze_graph.rst:79
-msgid "The Vertices Table"
-msgstr ""
-
-# 6726eb03c9e14ce487a84ef6bdb3d061
-#: ../../../src/common/doc/functions/analyze_graph.rst:80
-msgid ""
-"The vertices table can be created with :ref:`pgr_createVerticesTable "
-"<pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>`"
-msgstr ""
-
-# f69881355abd43b08fd4b112a15c823a
-#: ../../../src/common/doc/functions/analyze_graph.rst:82
-msgid "The structure of the vertices table is:"
-msgstr ""
-
-# e9b846b6c67a40a5a56ce827cbde2335
-#: ../../../src/common/doc/functions/analyze_graph.rst:84
-msgid "``bigint`` Identifier of the vertex."
-msgstr ""
-
-# c76d33c8d1d243e78adb977c995c1ed9
-#: ../../../src/common/doc/functions/analyze_graph.rst:85
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex."
-msgstr ""
-
-# 2a14dd7a08114891908953fe3f87a075
-#: ../../../src/common/doc/functions/analyze_graph.rst:86
-msgid "``integer``  Indicator that the vertex might have a problem."
-msgstr ""
-
-# 9731ccd0742c4573b05224539f373580
-#: ../../../src/common/doc/functions/analyze_graph.rst:87
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"as incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-msgstr ""
-
-# bf31d82856954293ac270255b046d010
-#: ../../../src/common/doc/functions/analyze_graph.rst:88
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"as outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-msgstr ""
-
-# fa51c4280ee2409daf5cee9fbc858ef4
-#: ../../../src/common/doc/functions/analyze_graph.rst:89
-msgid "``geometry`` Point geometry of the vertex."
-msgstr ""
-
-# 3a2bb12205fe4cd6ad67ba6a8f37afe4
-#: ../../../src/common/doc/functions/analyze_graph.rst:92
-msgid "History"
-msgstr "Geschichte"
-
-# 378f4d42f82e4d30a6ab016e5ecc621a
-#: ../../../src/common/doc/functions/analyze_graph.rst:93
-msgid "New in version 2.0.0"
-msgstr "Neu in Version 2.0.0"
-
-# f2b122f189224840ad820005cf04c3c1
-#: ../../../src/common/doc/functions/analyze_graph.rst:96
-msgid "Usage when the edge table's columns MATCH the default values:"
-msgstr ""
-
-# bbc188364d7a4ba9b73c901703f754a0
-#: ../../../src/common/doc/functions/analyze_graph.rst:99
-msgid "The simplest way to use pgr_analyzeGraph is:"
-msgstr ""
-
-# eef338680d2247e485489cda2088d085
-#: ../../../src/common/doc/functions/analyze_graph.rst:106
-msgid "When the arguments are given in the order described in the parameters:"
-msgstr ""
-
-# bd9ee1725f5f458e84d65ccbde7489d2
-#: ../../../src/common/doc/functions/analyze_graph.rst:111
-msgid "We get the same result as the simplest way to use the function."
-msgstr ""
-
-# e6bd1bc511a6475aaa6fcce1db0cc9fd
-# 667d346fce1340c89b86814855215f31
-#: ../../../src/common/doc/functions/analyze_graph.rst:118
-#: ../../../src/common/doc/functions/analyze_graph.rst:184
-msgid "When using the named notation"
-msgstr ""
-
-# a6f10ab57f0645b6b0307bcb5d6c7ef3
-# eae5acaa57ff4a459953c203612092fa
-#: ../../../src/common/doc/functions/analyze_graph.rst:119
-#: ../../../src/common/doc/functions/analyze_graph.rst:185
-msgid "The order of the parameters do not matter:"
-msgstr ""
-
-# 0b36ba3cb2c24c17b8740a45f3430b69
-#: ../../../src/common/doc/functions/analyze_graph.rst:129
-msgid ""
-"Parameters defined with a default value can be ommited, as long as the value"
-" matches the default:"
-msgstr ""
-
-# 5130840677694ba3a4c08ae3b787e4d5
-# 309f2f767a9c4f419bb1a4ad1c1bfacf
-#: ../../../src/common/doc/functions/analyze_graph.rst:136
-#: ../../../src/common/doc/functions/analyze_graph.rst:199
-msgid "Selecting rows using rows_where parameter"
-msgstr ""
-
-# e7093f0dacbf44af908a1259b2b8f45d
-#: ../../../src/common/doc/functions/analyze_graph.rst:137
-msgid ""
-"Selecting rows based on the id. Displays the analysis a the section of the "
-"network."
-msgstr ""
-
-# 2867ea63b6b14572adb1130a9d04e28a
-#: ../../../src/common/doc/functions/analyze_graph.rst:143
-msgid ""
-"Selecting the rows where the geometry is near the geometry of row with "
-"``id`` =5 ."
-msgstr ""
-
-# 3cf323ab63204d99ac7ca31677b9e667
-#: ../../../src/common/doc/functions/analyze_graph.rst:149
-msgid ""
-"Selecting the rows where the geometry is near the geometry of the row with "
-"``gid`` =100 of the table ``othertable``."
-msgstr ""
-
-# baf5ffc28192473483bc4a1a4a0315f3
-#: ../../../src/common/doc/functions/analyze_graph.rst:160
-msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
-msgstr ""
-
-# 57cb32f6495d4cb0b5f36be03adc7efa
-#: ../../../src/common/doc/functions/analyze_graph.rst:162
-msgid "For the following table"
-msgstr ""
-
-# 12fcad9f3b484280baa8b29867859861
-#: ../../../src/common/doc/functions/analyze_graph.rst:171
-msgid "Using positional notation:"
-msgstr ""
-
-# 07a02c55d3eb4f9eb1dfed2833efcbe8
-#: ../../../src/common/doc/functions/analyze_graph.rst:172
-msgid ""
-"The arguments need to be given in the order described in the parameters:"
-msgstr ""
-
-# 5dc716a92a81438c888764e8cb2b5b79
-#: ../../../src/common/doc/functions/analyze_graph.rst:195
-msgid ""
-"In this scenario omitting a parameter would create an error because the "
-"default values for the column names do not match the column names of the "
-"table."
-msgstr ""
-
-# 057829092b8a4504a3115036a73a489f
-#: ../../../src/common/doc/functions/analyze_graph.rst:200
-msgid "Selecting rows based on the id."
-msgstr ""
-
-# 5c1437170b9149c5bc4174edc58ee875
-#: ../../../src/common/doc/functions/analyze_graph.rst:210
-msgid ""
-"Selecting the rows WHERE the geometry is near the geometry of row with "
-"``id`` =5 ."
-msgstr ""
-
-# 3d622065f50846578692f7a1b2a136d9
-#: ../../../src/common/doc/functions/analyze_graph.rst:222
-msgid ""
-"Selecting the rows WHERE the geometry is near the place='myhouse' of the "
-"table ``othertable``. (note the use of quote_literal)"
-msgstr ""
-
-# 2cffbd13f5f54de1abd9c025df6a762a
-#: ../../../src/common/doc/functions/analyze_graph.rst:239
-msgid "Examples"
-msgstr "Beispiele"
-
-# eeedfddf23864b98a801913ef15f7cd9
-#: ../../../src/common/doc/functions/analyze_graph.rst:366
-msgid "The examples use the :ref:`sampledata` network."
-msgstr ""
-
-# d6f7c52a1a824867943d8adae7b2e245
-#: ../../../src/common/doc/functions/analyze_graph.rst:370
-msgid "See Also"
-msgstr "Siehe auch"
-
-# ba0f07ab7dca4083a5aef16d566cf506
-#: ../../../src/common/doc/functions/analyze_graph.rst:372
-msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
-msgstr ""
-
-# 90d9202a2da94489b4b43a71caa66956
-#: ../../../src/common/doc/functions/analyze_graph.rst:373
-msgid ":ref:`pgr_analyze_oneway` to analyze directionality of the edges."
-msgstr ""
-
-# 73d10e9d35dd4a269249fbc09274000b
-#: ../../../src/common/doc/functions/analyze_graph.rst:374
-msgid ""
-":ref:`pgr_createVerticesTable <pgr_create_vert_table>` to reconstruct the "
-"vertices table based on the source and target information."
-msgstr ""
-
-# 2f459b0453c141239d9564e2467fbdd5
-#: ../../../src/common/doc/functions/analyze_graph.rst:375
-msgid ""
-":ref:`pgr_nodeNetwork <pgr_node_network>` to create nodes to a not noded "
-"edge table."
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/analyze_oneway.po b/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/analyze_oneway.po
deleted file mode 100644
index 7e224cf..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/analyze_oneway.po
+++ /dev/null
@@ -1,335 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 06:20+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# f8ca74e3c9a54cd0b0e6cd3bcec8de7e
-#: ../../../src/common/doc/functions/analyze_oneway.rst:13
-msgid "pgr_analyzeOneway"
-msgstr ""
-
-# ee3b92d1a5184a92b6fa72a69ab2f1c9
-#: ../../../src/common/doc/functions/analyze_oneway.rst:20
-msgid "Name"
-msgstr "Name"
-
-# fd816817954b4f3d8d25927cebce353b
-#: ../../../src/common/doc/functions/analyze_oneway.rst:22
-msgid ""
-"``pgr_analyzeOneway`` — Analyzes oneway Sstreets and identifies flipped "
-"segments."
-msgstr ""
-
-# 4c9dfc86ed0042de97bf0107b0b2eccd
-#: ../../../src/common/doc/functions/analyze_oneway.rst:26
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# d31a1ab567db4873a46256e8ecbdedf4
-#: ../../../src/common/doc/functions/analyze_oneway.rst:28
-msgid ""
-"This function analyzes oneway streets in a graph and identifies any flipped "
-"segments."
-msgstr ""
-
-# 74bdfef086ae480bbe2affdece2c9efa
-#: ../../../src/common/doc/functions/analyze_oneway.rst:40
-msgid "Description"
-msgstr "Beschreibung"
-
-# 04f93117821f4eae962594c71a06a5a8
-#: ../../../src/common/doc/functions/analyze_oneway.rst:42
-msgid ""
-"The analyses of one way segments is pretty simple but can be a powerful "
-"tools to identifying some the potential problems created by setting the "
-"direction of a segment the wrong way. A node is a `source` if it has edges "
-"the exit from that node and no edges enter that node. Conversely, a node is "
-"a `sink` if all edges enter the node but none exit that node. For a `source`"
-" type node it is logically impossible to exist because no vehicle can exit "
-"the node if no vehicle and enter the node. Likewise, if you had a `sink` "
-"node you would have an infinite number of vehicle piling up on this node "
-"because you can enter it but not leave it."
-msgstr ""
-
-# 035956781a774bc3bb1214394ad77be8
-#: ../../../src/common/doc/functions/analyze_oneway.rst:44
-msgid ""
-"So why do we care if the are not feasible? Well if the direction of an edge "
-"was reversed by mistake we could generate exactly these conditions. Think "
-"about a divided highway and on the north bound lane one segment got entered "
-"wrong or maybe a sequence of multiple segments got entered wrong or maybe "
-"this happened on a round-about. The result would be potentially a `source` "
-"and/or a `sink` node."
-msgstr ""
-
-# 007bbd995cbf4e7c86ce8e9916675879
-#: ../../../src/common/doc/functions/analyze_oneway.rst:46
-msgid ""
-"So by counting the number of edges entering and exiting each node we can "
-"identify both `source` and `sink` nodes so that you can look at those areas "
-"of your network to make repairs and/or report the problem back to your data "
-"vendor."
-msgstr ""
-
-# f972114db5c841928b7f2ac705bb0687
-#: ../../../src/common/doc/functions/analyze_oneway.rst:49
-msgid "Prerequisites"
-msgstr ""
-
-# 54a0c52cee394d389a81fcd50b24ad97
-#: ../../../src/common/doc/functions/analyze_oneway.rst:50
-msgid ""
-"The  edge table to be analyzed must contain a source column and a target "
-"column filled with id's of the vertices of the segments and the "
-"corresponding vertices table <edge_table>_vertices_pgr that stores the "
-"vertices information."
-msgstr ""
-
-# 808b5b795d364182b543ab30a1ad1644
-#: ../../../src/common/doc/functions/analyze_oneway.rst:52
-msgid ""
-"Use :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create the "
-"vertices table."
-msgstr ""
-
-# f6248fc57e734ead94edd12cab567915
-#: ../../../src/common/doc/functions/analyze_oneway.rst:53
-msgid ""
-"Use :ref:`pgr_createTopology <pgr_create_topology>` to create the topology "
-"and the vertices table."
-msgstr ""
-
-# 4cacac934ba64cda907561e98847bf8b
-#: ../../../src/common/doc/functions/analyze_oneway.rst:56
-msgid "Parameters"
-msgstr "Parameter"
-
-# 669f0d5432dd4c0c8da55dba8c3502e7
-#: ../../../src/common/doc/functions/analyze_oneway.rst:57
-msgid "``text`` Network table name. (may contain the schema name as well)"
-msgstr ""
-
-# a16edb2699f1486c91c10ac7533fef7c
-#: ../../../src/common/doc/functions/analyze_oneway.rst:58
-msgid "``text[]`` source node **in** rules"
-msgstr ""
-
-# 28b4c2457d3b4aaba43dc42af4d2bd5e
-#: ../../../src/common/doc/functions/analyze_oneway.rst:59
-msgid "``text[]`` source node **out** rules"
-msgstr ""
-
-# 5180ad82f6e6434a99defa1823c0a2d8
-#: ../../../src/common/doc/functions/analyze_oneway.rst:60
-msgid "``text[]`` target node **in** rules"
-msgstr ""
-
-# 4866b796c7fb49d985a479c3a97eec38
-#: ../../../src/common/doc/functions/analyze_oneway.rst:61
-msgid "``text[]`` target node **out** rules"
-msgstr ""
-
-# 2744331fb9ac447ba0c40a6035ac0a95
-#: ../../../src/common/doc/functions/analyze_oneway.rst:62
-msgid ""
-"``text`` oneway column name name of the network table. Default value is "
-"``oneway``."
-msgstr ""
-
-# b116cd1fc10f4f5bbd8fe9800562b62f
-#: ../../../src/common/doc/functions/analyze_oneway.rst:63
-msgid ""
-"``text`` Source column name of the network table. Default value is "
-"``source``."
-msgstr ""
-
-# 8ca5a93ed45443c09202b1e5779dfa76
-#: ../../../src/common/doc/functions/analyze_oneway.rst:64
-msgid ""
-"``text``  Target column name of the network table.  Default value is "
-"``target``."
-msgstr ""
-
-# e41f4c872a3445dbbc0bd183a71971fa
-#: ../../../src/common/doc/functions/analyze_oneway.rst:65
-msgid ""
-"``boolean`` flag to treat oneway NULL values as bi-directional.  Default "
-"value is ``true``."
-msgstr ""
-
-# 9cd0459ca40940448e6c0d9c07c4a157
-#: ../../../src/common/doc/functions/analyze_oneway.rst:67
-msgid ""
-"It is strongly recommended to use the named notation. See "
-":ref:`pgr_createVerticesTable <pgr_create_vert_table>` or "
-":ref:`pgr_createTopology <pgr_create_topology>` for examples."
-msgstr ""
-
-# e217ab2060e447e9a7a3745f4d84390d
-#: ../../../src/common/doc/functions/analyze_oneway.rst:70
-msgid "The function returns:"
-msgstr ""
-
-# 95dedd1c39c9424a906e6f2ff882e84a
-#: ../../../src/common/doc/functions/analyze_oneway.rst:72
-msgid "``OK`` after the analysis has finished."
-msgstr ""
-
-# 573d5fab7bb247d5adc39d8460683357
-#: ../../../src/common/doc/functions/analyze_oneway.rst:74
-msgid "Uses the vertices table: <edge_table>_vertices_pgr."
-msgstr ""
-
-# 86597d037fe242378cc71e6e2ec88b19
-#: ../../../src/common/doc/functions/analyze_oneway.rst:75
-msgid ""
-"Fills completely the ``ein`` and ``eout`` columns of the vertices table."
-msgstr ""
-
-# dcae6d2cceea4b6bb47a700cc4338340
-#: ../../../src/common/doc/functions/analyze_oneway.rst:77
-msgid "``FAIL`` when the analysis was not completed due to an error."
-msgstr ""
-
-# 792572ffb7314163be7e4aabadd4429c
-#: ../../../src/common/doc/functions/analyze_oneway.rst:79
-msgid "The vertices table is not found."
-msgstr ""
-
-# affbb7122dd844f3b5c7962c97dec0d3
-#: ../../../src/common/doc/functions/analyze_oneway.rst:80
-msgid ""
-"A required column of the Network table is not found or is not of the "
-"appropriate type."
-msgstr ""
-
-# e50d016ee05048779dea2db4006500be
-#: ../../../src/common/doc/functions/analyze_oneway.rst:81
-msgid "The names of source , target or oneway are the same."
-msgstr ""
-
-# f14e2456527945e0a80e7888bb6dde7f
-#: ../../../src/common/doc/functions/analyze_oneway.rst:83
-msgid ""
-"The rules are defined as an array of text strings that if match the "
-"``oneway`` value would be counted as ``true`` for the source or target "
-"**in** or **out** condition."
-msgstr ""
-
-# 02623674186e4e0c961078942584c0ec
-#: ../../../src/common/doc/functions/analyze_oneway.rst:86
-msgid "The Vertices Table"
-msgstr ""
-
-# dd7fb8252bfe456aaa65515346941e74
-#: ../../../src/common/doc/functions/analyze_oneway.rst:87
-msgid ""
-"The vertices table can be created with :ref:`pgr_createVerticesTable "
-"<pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>`"
-msgstr ""
-
-# f838bf466e424966bd61af7b901279d2
-#: ../../../src/common/doc/functions/analyze_oneway.rst:89
-msgid "The structure of the vertices table is:"
-msgstr ""
-
-# 722239d3877b48d8bc5e63052fc7424f
-#: ../../../src/common/doc/functions/analyze_oneway.rst:91
-msgid "``bigint`` Identifier of the vertex."
-msgstr ""
-
-# 0d3b269abc8e45a1abf355e4bb7d51c0
-#: ../../../src/common/doc/functions/analyze_oneway.rst:92
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex."
-" See :ref:`pgr_analyzeGgraph <pgr_analyze_graph>`."
-msgstr ""
-
-# 50b3729c83964ef3ae1a1511c76b50f8
-#: ../../../src/common/doc/functions/analyze_oneway.rst:93
-msgid ""
-"``integer``  Indicator that the vertex might have a problem. See "
-":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
-msgstr ""
-
-# a5b1fe0206ea4c428c94f43a141b527b
-#: ../../../src/common/doc/functions/analyze_oneway.rst:94
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"as incoming."
-msgstr ""
-
-# 7c678b91ca8a408aafda94e5fa217fae
-#: ../../../src/common/doc/functions/analyze_oneway.rst:95
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"as outgoing."
-msgstr ""
-
-# 6d672d0be9cf41d69db69e46109d1624
-#: ../../../src/common/doc/functions/analyze_oneway.rst:96
-msgid "``geometry`` Point geometry of the vertex."
-msgstr ""
-
-# b7cf2a5bba544714b9b79373c889e6cc
-#: ../../../src/common/doc/functions/analyze_oneway.rst:100
-msgid "History"
-msgstr "Geschichte"
-
-# ee9866aeb2c94c7fb0aa1e6cda48e6cb
-#: ../../../src/common/doc/functions/analyze_oneway.rst:101
-msgid "New in version 2.0.0"
-msgstr "Neu in Version 2.0.0"
-
-# 3eed638ba1dd400186848b0928d632cf
-#: ../../../src/common/doc/functions/analyze_oneway.rst:105
-msgid "Examples"
-msgstr "Beispiele"
-
-# fb1f0f5537c0427a866814b367160245
-#: ../../../src/common/doc/functions/analyze_oneway.rst:129
-msgid "The queries use the :ref:`sampledata` network."
-msgstr ""
-
-# 34726fcf405940b780880e71c6a2dad3
-#: ../../../src/common/doc/functions/analyze_oneway.rst:133
-msgid "See Also"
-msgstr "Siehe auch"
-
-# 384816237f7b49d5911a48675467810d
-#: ../../../src/common/doc/functions/analyze_oneway.rst:135
-msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
-msgstr ""
-
-# f8a2c637ce834c5ab9fea42ec365f0d1
-#: ../../../src/common/doc/functions/analyze_oneway.rst:136
-msgid ":ref:`analytics` for an overview of the analysis of a graph."
-msgstr ""
-
-# 1688102891bc4abaaed229738ca05755
-#: ../../../src/common/doc/functions/analyze_oneway.rst:137
-msgid ""
-":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
-"table."
-msgstr ""
-
-# 5914f34793e24715acb0adbe7d9fe1e0
-#: ../../../src/common/doc/functions/analyze_oneway.rst:138
-msgid ""
-":ref:`pgr_create_vert_table` to reconstruct the vertices table based on the "
-"source and target information."
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/create_topology.po b/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/create_topology.po
deleted file mode 100644
index 95b1390..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/create_topology.po
+++ /dev/null
@@ -1,413 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 06:20+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 841ce4ae2ccd42aeb6708e0469affc85
-#: ../../../src/common/doc/functions/create_topology.rst:13
-msgid "pgr_createTopology"
-msgstr ""
-
-# bceb18f1c7484f2495890a181eb43749
-#: ../../../src/common/doc/functions/create_topology.rst:20
-msgid "Name"
-msgstr "Name"
-
-# efddc8da13ee412aa1fb75bf84ad023b
-#: ../../../src/common/doc/functions/create_topology.rst:22
-msgid ""
-"``pgr_createTopology`` — Builds a network topology based on the geometry "
-"information."
-msgstr ""
-
-# c01e1abb389b4e0096e2971378967ac9
-#: ../../../src/common/doc/functions/create_topology.rst:26
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# 0dcc6bb9100b4d89afa5b1404283d0c9
-# 2f90d445d42f4c839d6d2b2e4bdd588b
-#: ../../../src/common/doc/functions/create_topology.rst:28
-#: ../../../src/common/doc/functions/create_topology.rst:69
-msgid "The function returns:"
-msgstr ""
-
-# 88833f75e6d741b5bc91526488d66e4e
-#: ../../../src/common/doc/functions/create_topology.rst:30
-msgid ""
-"``OK`` after the network topology has been built and the vertices table "
-"created."
-msgstr ""
-
-# da6aad799955428fb1bef9ff2dbd70b5
-#: ../../../src/common/doc/functions/create_topology.rst:31
-msgid "``FAIL`` when the network topology was not built due to an error."
-msgstr ""
-
-# c4d463cfb61840f689831eeafe2844dc
-#: ../../../src/common/doc/functions/create_topology.rst:42
-msgid "Description"
-msgstr "Beschreibung"
-
-# fba8585de1c94f0ba612f64f8cd4f39d
-#: ../../../src/common/doc/functions/create_topology.rst:45
-msgid "Parameters"
-msgstr "Parameter"
-
-# 33e33f7ee98e4b9a9d333f8ab95cbc9b
-#: ../../../src/common/doc/functions/create_topology.rst:46
-msgid "The topology creation function accepts the following parameters:"
-msgstr ""
-
-# d19b1856e3d440749487a15a83c9d44c
-#: ../../../src/common/doc/functions/create_topology.rst:48
-msgid "``text`` Network table name. (may contain the schema name AS well)"
-msgstr ""
-
-# 6afd7b88cbaf4a58b2dcbd161b278356
-#: ../../../src/common/doc/functions/create_topology.rst:49
-msgid ""
-"``float8`` Snapping tolerance of disconnected edges. (in projection unit)"
-msgstr ""
-
-# 905510b263854f1eb05f10c8a64d9d20
-#: ../../../src/common/doc/functions/create_topology.rst:50
-msgid ""
-"``text``  Geometry column name of the network table. Default value is "
-"``the_geom``."
-msgstr ""
-
-# f9b621bcf0ab41c3b87693c812f3d710
-#: ../../../src/common/doc/functions/create_topology.rst:51
-msgid ""
-"``text``  Primary key column name of the network table. Default value is "
-"``id``."
-msgstr ""
-
-# 6bcaf9c3c7e1422ea8e1b4dc45e7c613
-#: ../../../src/common/doc/functions/create_topology.rst:52
-msgid ""
-"``text`` Source column name of the network table. Default value is "
-"``source``."
-msgstr ""
-
-# e2b13126a14a4ebeb8c3f453235560a1
-#: ../../../src/common/doc/functions/create_topology.rst:53
-msgid ""
-"``text``  Target column name of the network table.  Default value is "
-"``target``."
-msgstr ""
-
-# adbfdd92db3740e5b4e8a6259a0a064c
-#: ../../../src/common/doc/functions/create_topology.rst:54
-msgid ""
-"``text``   Condition to SELECT a subset or rows.  Default value is ``true`` "
-"to indicate all rows."
-msgstr ""
-
-# 65297b06273d46cc98c9a3be75886137
-#: ../../../src/common/doc/functions/create_topology.rst:58
-msgid "The ``edge_table`` will be affected"
-msgstr ""
-
-# 7f45565b3b8d40408b2da1bee3d1c354
-#: ../../../src/common/doc/functions/create_topology.rst:60
-msgid "The ``source`` column values will change."
-msgstr ""
-
-# e05fe9ce627848aa8aa72f032d303f04
-#: ../../../src/common/doc/functions/create_topology.rst:61
-msgid "The ``target`` column values will change."
-msgstr ""
-
-# 72c3682247aa4841a49790a78db8c3c3
-#: ../../../src/common/doc/functions/create_topology.rst:62
-msgid ""
-"An index will be created, if it doesn't exists, to speed up the process to "
-"the following columns:"
-msgstr ""
-
-# 993784afa3ce4ca68f11e8e02f2b4b27
-#: ../../../src/common/doc/functions/create_topology.rst:64
-msgid "``id``"
-msgstr ""
-
-# 3074ee818e8241bc93c5a3284d7c3af4
-#: ../../../src/common/doc/functions/create_topology.rst:65
-msgid "``the_geom``"
-msgstr "``the_geom``"
-
-# e40fef18592542b98d234ac6a8038def
-#: ../../../src/common/doc/functions/create_topology.rst:66
-msgid "``source``"
-msgstr "``source``"
-
-# 0360a33adc734d1eaf83f5e1e314cc73
-#: ../../../src/common/doc/functions/create_topology.rst:67
-msgid "``target``"
-msgstr "``target``"
-
-# a2aae07be90348b0b2190f647731fb26
-#: ../../../src/common/doc/functions/create_topology.rst:71
-msgid "``OK`` after the network topology has been built."
-msgstr ""
-
-# 33a4fd15e75a41a68105d2ea67b4aab1
-#: ../../../src/common/doc/functions/create_topology.rst:73
-msgid "Creates a vertices table: <edge_table>_vertices_pgr."
-msgstr ""
-
-# 589a7e90c6404cbe902baec0a884189b
-#: ../../../src/common/doc/functions/create_topology.rst:74
-msgid "Fills ``id`` and ``the_geom`` columns of the vertices table."
-msgstr ""
-
-# 92e7ab03c5ce43ed8c705a26aa4b801c
-#: ../../../src/common/doc/functions/create_topology.rst:75
-msgid ""
-"Fills the source and target columns of the edge table referencing the ``id``"
-" of the vertices table."
-msgstr ""
-
-# 0635e9d515184ccc80747864939f789c
-#: ../../../src/common/doc/functions/create_topology.rst:78
-msgid "``FAIL`` when the network topology was not built due to an error:"
-msgstr ""
-
-# 607fcb6f6ae3438789ecf9c95992bc3f
-#: ../../../src/common/doc/functions/create_topology.rst:80
-msgid ""
-"A required column of the Network table is not found or is not of the "
-"appropriate type."
-msgstr ""
-
-# 2bad2b565914457a90a990e718e857fd
-#: ../../../src/common/doc/functions/create_topology.rst:81
-msgid "The condition is not well formed."
-msgstr ""
-
-# c800f5e3462c44c1b786308aec4cfea4
-#: ../../../src/common/doc/functions/create_topology.rst:82
-msgid "The names of source , target or id are the same."
-msgstr ""
-
-# 51c96f82e8ea49bcbde8aaeb905a6c6c
-#: ../../../src/common/doc/functions/create_topology.rst:83
-msgid "The SRID of the geometry could not be determined."
-msgstr ""
-
-# f5f0d0a1c3814e1d9c14e4de52bd9899
-#: ../../../src/common/doc/functions/create_topology.rst:87
-msgid "The Vertices Table"
-msgstr ""
-
-# 54ef7e60b4d445cfa453323fbe80032d
-#: ../../../src/common/doc/functions/create_topology.rst:88
-msgid ""
-"The vertices table is a requirment of the :ref:`pgr_analyzeGraph "
-"<pgr_analyze_graph>` and the :ref:`pgr_analyzeOneway <pgr_analyze_oneway>` "
-"functions."
-msgstr ""
-
-# faaffddd86fd4680a80925c8c3877f07
-#: ../../../src/common/doc/functions/create_topology.rst:90
-msgid "The structure of the vertices table is:"
-msgstr ""
-
-# fc31880c8b034aae99d6d4caec420302
-#: ../../../src/common/doc/functions/create_topology.rst:92
-msgid "``bigint`` Identifier of the vertex."
-msgstr ""
-
-# 7684f52a607845ef802799c26c221bf3
-#: ../../../src/common/doc/functions/create_topology.rst:93
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex."
-" See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
-msgstr ""
-
-# 1dc63c1d7cbb417d916ed0561df67df9
-#: ../../../src/common/doc/functions/create_topology.rst:94
-msgid ""
-"``integer``  Indicator that the vertex might have a problem. See "
-":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
-msgstr ""
-
-# 546f74ccc20545de9c032cabcaac878f
-#: ../../../src/common/doc/functions/create_topology.rst:95
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"AS incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-msgstr ""
-
-# 9fe606ee590d4f009989e3cdcf09b5c5
-#: ../../../src/common/doc/functions/create_topology.rst:96
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"AS outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-msgstr ""
-
-# 2ee4f32c8546412bad1e109e6051e249
-#: ../../../src/common/doc/functions/create_topology.rst:97
-msgid "``geometry`` Point geometry of the vertex."
-msgstr ""
-
-# a63156aa23b54785aaf66150bfe98a52
-#: ../../../src/common/doc/functions/create_topology.rst:100
-msgid "History"
-msgstr "Geschichte"
-
-# da8726d6435e42f09d83f4a310d5c432
-#: ../../../src/common/doc/functions/create_topology.rst:101
-msgid "Renamed in version 2.0.0"
-msgstr "Umbenannt in Version 2.0.0"
-
-# 5b4b6a4bea1543ac98f444d9ec32d7eb
-#: ../../../src/common/doc/functions/create_topology.rst:104
-msgid "Usage when the edge table's columns MATCH the default values:"
-msgstr ""
-
-# 6db23da4afd448bab89802246bccb65a
-#: ../../../src/common/doc/functions/create_topology.rst:107
-msgid "The simplest way to use pgr_createtopology is:"
-msgstr ""
-
-# 6905f56f53bb4cdfb9ae49021265afe9
-#: ../../../src/common/doc/functions/create_topology.rst:115
-msgid "When the arguments are given in the order described in the parameters:"
-msgstr ""
-
-# f8c6c68c7d334f68bac36a818c4091ab
-#: ../../../src/common/doc/functions/create_topology.rst:120
-msgid "We get the same result AS the simplest way to use the function."
-msgstr ""
-
-# 8dcbdbf60c2e4522a87d80a7796a354b
-# b72940f0e2054c46a50358fc40af026e
-#: ../../../src/common/doc/functions/create_topology.rst:127
-#: ../../../src/common/doc/functions/create_topology.rst:192
-msgid "When using the named notation"
-msgstr ""
-
-# 460cbff5c7054542a80375a4f50072e0
-# 56d9daba24ff4ce9ac02e3326af007af
-#: ../../../src/common/doc/functions/create_topology.rst:128
-#: ../../../src/common/doc/functions/create_topology.rst:193
-msgid "The order of the parameters do not matter:"
-msgstr ""
-
-# 4b24ad3db4be4b60a6c8bfcc38fae359
-#: ../../../src/common/doc/functions/create_topology.rst:138
-msgid ""
-"Parameters defined with a default value can be omited, AS long AS the value "
-"matches the default:"
-msgstr ""
-
-# 8aab982078634384ab4dfced463b5c14
-# d9c7d4fa12394a5a915a9f6f664e7a8a
-#: ../../../src/common/doc/functions/create_topology.rst:145
-#: ../../../src/common/doc/functions/create_topology.rst:207
-msgid "Selecting rows using rows_where parameter"
-msgstr ""
-
-# 4be49c2f23734283895a40625620047b
-# 1734ac1429ad4691861fbfcc7954d800
-#: ../../../src/common/doc/functions/create_topology.rst:146
-#: ../../../src/common/doc/functions/create_topology.rst:208
-msgid "Selecting rows based on the id."
-msgstr ""
-
-# 499347aef3cb49f993c320d1fd353a29
-# a0cd57644bf443fbaa81efed8df8a30f
-#: ../../../src/common/doc/functions/create_topology.rst:152
-#: ../../../src/common/doc/functions/create_topology.rst:218
-msgid ""
-"Selecting the rows where the geometry is near the geometry of row with "
-"``id`` =5 ."
-msgstr ""
-
-# b8e12b4f62d24fb0a535290a0a480ff0
-# 42da9f122c7240bea10a78685a6b5b8d
-#: ../../../src/common/doc/functions/create_topology.rst:158
-#: ../../../src/common/doc/functions/create_topology.rst:230
-msgid ""
-"Selecting the rows where the geometry is near the geometry of the row with "
-"``gid`` =100 of the table ``othertable``."
-msgstr ""
-
-# 596d74ac25d34cbda9a05349a4a0af21
-#: ../../../src/common/doc/functions/create_topology.rst:169
-msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
-msgstr ""
-
-# ac1bf6e79288443486b7b105e25e07eb
-#: ../../../src/common/doc/functions/create_topology.rst:171
-msgid "For the following table"
-msgstr ""
-
-# a24fc2426b5c4b91bc53f875e37dddaa
-#: ../../../src/common/doc/functions/create_topology.rst:179
-msgid "Using positional notation:"
-msgstr ""
-
-# d1937a888b40477b8d696215b7b93425
-#: ../../../src/common/doc/functions/create_topology.rst:180
-msgid ""
-"The arguments need to be given in the order described in the parameters:"
-msgstr ""
-
-# 7e510379477f445a9432549c095c12bb
-#: ../../../src/common/doc/functions/create_topology.rst:203
-msgid ""
-"In this scenario omitting a parameter would create an error because the "
-"default values for the column names do not match the column names of the "
-"table."
-msgstr ""
-
-# de088e18a1634e6a96b99df9171c530a
-#: ../../../src/common/doc/functions/create_topology.rst:247
-msgid "Examples"
-msgstr "Beispiele"
-
-# 89b592f2e7f6474cbed2d9d5bca887e9
-#: ../../../src/common/doc/functions/create_topology.rst:279
-msgid "The example uses the :ref:`sampledata` network."
-msgstr ""
-
-# ae52cd8922264c939460bd2df2108508
-#: ../../../src/common/doc/functions/create_topology.rst:283
-msgid "See Also"
-msgstr "Siehe auch"
-
-# 664429e917764979b9255e4f9a72377f
-#: ../../../src/common/doc/functions/create_topology.rst:285
-msgid ":ref:`topology` for an overview of a topology for routing algorithms."
-msgstr ""
-
-# 9ded0191d7344e8baca758e97f34cf68
-#: ../../../src/common/doc/functions/create_topology.rst:286
-msgid ""
-":ref:`pgr_create_vert_table` to reconstruct the vertices table based on the "
-"source and target information."
-msgstr ""
-
-# ca4432eb1b4246268b1acee87b464b2f
-#: ../../../src/common/doc/functions/create_topology.rst:287
-msgid ""
-":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
-"table."
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/create_vert_table.po b/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/create_vert_table.po
deleted file mode 100644
index 5bd5f02..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/create_vert_table.po
+++ /dev/null
@@ -1,389 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# Daniel Kastl, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 06:16+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 1a8504651dd840e4a48344ead373a073
-#: ../../../src/common/doc/functions/create_vert_table.rst:13
-msgid "pgr_createVerticesTable"
-msgstr "pgr_createVerticesTable"
-
-# ad976846c3444135a397d1f47a0ffceb
-#: ../../../src/common/doc/functions/create_vert_table.rst:20
-msgid "Name"
-msgstr "Name"
-
-# c26ff674db0d4b65bff9b1483e524956
-#: ../../../src/common/doc/functions/create_vert_table.rst:22
-msgid ""
-"``pgr_createVerticesTable`` — Reconstructs the vertices table based on the "
-"source and target information."
-msgstr ""
-
-# b27c4239c9034d8fb5bbfc4b736af367
-#: ../../../src/common/doc/functions/create_vert_table.rst:26
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# bbfea2a13422443f8e1b9b863f56dea0
-# 139eabd1665d4dc8b6caac92f0764d50
-#: ../../../src/common/doc/functions/create_vert_table.rst:28
-#: ../../../src/common/doc/functions/create_vert_table.rst:63
-msgid "The function returns:"
-msgstr ""
-
-# bdf469a3c50c4176bcc89409cbe50136
-# 268e8b4480b24112a72e1d7da0dab1bd
-#: ../../../src/common/doc/functions/create_vert_table.rst:30
-#: ../../../src/common/doc/functions/create_vert_table.rst:65
-msgid "``OK`` after the vertices table has been reconstructed."
-msgstr ""
-
-# f542765a7c984a57b56f203df843634d
-# a536d714aa4240dca5d92dfeee6dd7bb
-#: ../../../src/common/doc/functions/create_vert_table.rst:31
-#: ../../../src/common/doc/functions/create_vert_table.rst:70
-msgid ""
-"``FAIL`` when the vertices table was not reconstructed due to an error."
-msgstr ""
-
-# c7c8bc00b10d45a897224d240c4f96bf
-#: ../../../src/common/doc/functions/create_vert_table.rst:41
-msgid "Description"
-msgstr "Beschreibung"
-
-# c53a2ef242f8484dac84581a80134594
-#: ../../../src/common/doc/functions/create_vert_table.rst:44
-msgid "Parameters"
-msgstr "Parameter"
-
-# 2dc2c3867d7a4367a958a6e1049f44c0
-#: ../../../src/common/doc/functions/create_vert_table.rst:45
-msgid ""
-"The reconstruction of the vertices table  function accepts the following "
-"parameters:"
-msgstr ""
-
-# e92b11f0f4ea47af9581936d11972ef6
-#: ../../../src/common/doc/functions/create_vert_table.rst:47
-msgid "``text`` Network table name. (may contain the schema name as well)"
-msgstr ""
-
-# 75d43bdeeb7843139aec9b4c7dc60097
-#: ../../../src/common/doc/functions/create_vert_table.rst:48
-msgid ""
-"``text``  Geometry column name of the network table. Default value is "
-"``the_geom``."
-msgstr ""
-
-# f0e2bb638cd841f2b61bc8398e3ea59b
-#: ../../../src/common/doc/functions/create_vert_table.rst:49
-msgid ""
-"``text`` Source column name of the network table. Default value is "
-"``source``."
-msgstr ""
-
-# ba67bced62994e7b98967cf09cbf3ca6
-#: ../../../src/common/doc/functions/create_vert_table.rst:50
-msgid ""
-"``text``  Target column name of the network table.  Default value is "
-"``target``."
-msgstr ""
-
-# d7d53a50bc9249518132241a2c83dc1b
-#: ../../../src/common/doc/functions/create_vert_table.rst:51
-msgid ""
-"``text``   Condition to SELECT a subset or rows.  Default value is ``true`` "
-"to indicate all rows."
-msgstr ""
-
-# a87c8e9949df409da09632babbb99748
-#: ../../../src/common/doc/functions/create_vert_table.rst:55
-msgid "The ``edge_table`` will be affected"
-msgstr ""
-
-# a0b202c14bf849e1a9506fc9c4010540
-#: ../../../src/common/doc/functions/create_vert_table.rst:57
-msgid ""
-"An index will be created, if it doesn't exists, to speed up the process to "
-"the following columns:"
-msgstr ""
-
-# 51ab4d2ba98b4affa7e5cec96e352cce
-#: ../../../src/common/doc/functions/create_vert_table.rst:59
-msgid "``the_geom``"
-msgstr "``the_geom``"
-
-# 134fb1a15f8742a49fe36e2683c4c324
-#: ../../../src/common/doc/functions/create_vert_table.rst:60
-msgid "``source``"
-msgstr "``source``"
-
-# 1c5f7bc5486b44999341e4f8f9b92c2e
-#: ../../../src/common/doc/functions/create_vert_table.rst:61
-msgid "``target``"
-msgstr "``target``"
-
-# 2c70ff2c521c48c799c898d61a01e119
-#: ../../../src/common/doc/functions/create_vert_table.rst:67
-msgid "Creates a vertices table: <edge_table>_vertices_pgr."
-msgstr ""
-
-# b0e0cf6163ea49f3b3a38e97576f301e
-#: ../../../src/common/doc/functions/create_vert_table.rst:68
-msgid ""
-"Fills ``id`` and ``the_geom`` columns of the vertices table based on the "
-"source and target columns of the edge table."
-msgstr ""
-
-# 28e32e20ebd74f88920b7c6fd45054e9
-#: ../../../src/common/doc/functions/create_vert_table.rst:72
-msgid ""
-"A required column of the Network table is not found or is not of the "
-"appropriate type."
-msgstr ""
-
-# 8501c3c5738f4907bf64b63007218466
-#: ../../../src/common/doc/functions/create_vert_table.rst:73
-msgid "The condition is not well formed."
-msgstr ""
-
-# 5252c79651354d40a6271efe4b78d226
-#: ../../../src/common/doc/functions/create_vert_table.rst:74
-msgid "The names of source, target are the same."
-msgstr ""
-
-# 41c42eeafd6b487ebc676126c0f92f0c
-#: ../../../src/common/doc/functions/create_vert_table.rst:75
-msgid "The SRID of the geometry could not be determined."
-msgstr ""
-
-# d61aba7cc54d49b9a670817e7dd52472
-#: ../../../src/common/doc/functions/create_vert_table.rst:78
-msgid "The Vertices Table"
-msgstr ""
-
-# 93a53c04ff294116acf94a067d17ff73
-#: ../../../src/common/doc/functions/create_vert_table.rst:79
-msgid ""
-"The vertices table is a requierment of the :ref:`pgr_analyzeGraph "
-"<pgr_analyze_graph>` and the :ref:`pgr_analyzeOneway <pgr_analyze_oneway>` "
-"functions."
-msgstr ""
-
-# 7e418508090c4667b4128b22f562b5db
-#: ../../../src/common/doc/functions/create_vert_table.rst:81
-msgid "The structure of the vertices table is:"
-msgstr ""
-
-# 114548eb64364741b99e10c86fe55fad
-#: ../../../src/common/doc/functions/create_vert_table.rst:83
-msgid "``bigint`` Identifier of the vertex."
-msgstr ""
-
-# 35f0fc22f2464997bce4d704a9f4ee88
-#: ../../../src/common/doc/functions/create_vert_table.rst:84
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex."
-" See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
-msgstr ""
-
-# d71ba1da8657438b86fe6ce3326cf94a
-#: ../../../src/common/doc/functions/create_vert_table.rst:85
-msgid ""
-"``integer``  Indicator that the vertex might have a problem. See "
-":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
-msgstr ""
-
-# 9ea4778e1ed64d3cb8c12ffedca5748b
-#: ../../../src/common/doc/functions/create_vert_table.rst:86
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"as incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-msgstr ""
-
-# cd631484ea62455cae3d37b03ca36624
-#: ../../../src/common/doc/functions/create_vert_table.rst:87
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"as outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-msgstr ""
-
-# 29652dcb521b4111813d63d570b62873
-#: ../../../src/common/doc/functions/create_vert_table.rst:88
-msgid "``geometry`` Point geometry of the vertex."
-msgstr ""
-
-# ca63675181414139865690332306235b
-#: ../../../src/common/doc/functions/create_vert_table.rst:91
-msgid "History"
-msgstr "Geschichte"
-
-# e383b8838b4b40618c66151c1f94fb48
-#: ../../../src/common/doc/functions/create_vert_table.rst:92
-msgid "Renamed in version 2.0.0"
-msgstr "Umbenannt in Version 2.0.0"
-
-# f4e14bd6d88d4f1e8d5ff2fbf9aea722
-#: ../../../src/common/doc/functions/create_vert_table.rst:95
-msgid "Usage when the edge table's columns MATCH the default values:"
-msgstr ""
-
-# 6fc1c7d9c4e04380ada776f609bf4505
-#: ../../../src/common/doc/functions/create_vert_table.rst:98
-msgid "The simplest way to use pgr_createVerticesTable is:"
-msgstr ""
-
-# 3373cb2347994f2fa122008bdff12190
-#: ../../../src/common/doc/functions/create_vert_table.rst:105
-msgid "When the arguments are given in the order described in the parameters:"
-msgstr ""
-
-# f75126b9da994fea920678a643a80e25
-#: ../../../src/common/doc/functions/create_vert_table.rst:110
-msgid "We get the same result as the simplest way to use the function."
-msgstr ""
-
-# 90ea5b12d9a64eb2bafd6d211e0ffeff
-# 34ff976ba1f24ec08a19a8d87673156d
-#: ../../../src/common/doc/functions/create_vert_table.rst:117
-#: ../../../src/common/doc/functions/create_vert_table.rst:181
-msgid "When using the named notation"
-msgstr ""
-
-# 213a5c21ddcb4745987210530901695f
-# fac4e4da33fb494981c36957cd000a29
-#: ../../../src/common/doc/functions/create_vert_table.rst:118
-#: ../../../src/common/doc/functions/create_vert_table.rst:182
-msgid "The order of the parameters do not matter:"
-msgstr ""
-
-# 529a856bf0404a10a837b07945c52175
-#: ../../../src/common/doc/functions/create_vert_table.rst:128
-msgid ""
-"Parameters defined with a default value can be omited, as long as the value "
-"matches the default:"
-msgstr ""
-
-# 55574bcb1be54b1b907c0524cbf1057d
-# af501046d7d84255bd3030520c3e2f15
-#: ../../../src/common/doc/functions/create_vert_table.rst:135
-#: ../../../src/common/doc/functions/create_vert_table.rst:196
-msgid "Selecting rows using rows_where parameter"
-msgstr ""
-
-# 7080aeec9c1e4a31bfb9be1ed4506ab7
-#: ../../../src/common/doc/functions/create_vert_table.rst:136
-msgid "Selecting rows based on the id."
-msgstr ""
-
-# 74ec654344604925875e20b1447a6a3e
-#: ../../../src/common/doc/functions/create_vert_table.rst:142
-msgid ""
-"Selecting the rows where the geometry is near the geometry of row with "
-"``id`` =5 ."
-msgstr ""
-
-# 89d554dba13d40be8ca51e74d18c7c6f
-# fbda0895e287413fb2455b07ba2ba7fb
-#: ../../../src/common/doc/functions/create_vert_table.rst:148
-#: ../../../src/common/doc/functions/create_vert_table.rst:219
-msgid ""
-"Selecting the rows where the geometry is near the geometry of the row with "
-"``gid`` =100 of the table ``othertable``."
-msgstr ""
-
-# 7f2e698d7f844861bd468923e95ef16a
-#: ../../../src/common/doc/functions/create_vert_table.rst:159
-msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
-msgstr ""
-
-# 381c72bdf71543d4853557e93d021602
-#: ../../../src/common/doc/functions/create_vert_table.rst:161
-msgid "For the following table"
-msgstr ""
-
-# 5d51a2b4e3e84516bab9cc22039007c8
-#: ../../../src/common/doc/functions/create_vert_table.rst:169
-msgid "Using positional notation:"
-msgstr ""
-
-# 3be19d9038134fe2907db9c97eaeca7d
-#: ../../../src/common/doc/functions/create_vert_table.rst:170
-msgid ""
-"The arguments need to be given in the order described in the parameters:"
-msgstr ""
-
-# 94d47a836ffa45268fc1f9662f902f2b
-#: ../../../src/common/doc/functions/create_vert_table.rst:192
-msgid ""
-"In this scenario omitting a parameter would create an error because the "
-"default values for the column names do not match the column names of the "
-"table."
-msgstr ""
-
-# 6d8d108291094933afdde4095193e506
-#: ../../../src/common/doc/functions/create_vert_table.rst:197
-msgid "Selecting rows based on the gid."
-msgstr ""
-
-# 5df5fd0f734e46c6bfb93444bd86905e
-#: ../../../src/common/doc/functions/create_vert_table.rst:207
-msgid ""
-"Selecting the rows where the geometry is near the geometry of row with "
-"``gid`` =5 ."
-msgstr ""
-
-# e2c54fc28df243609e8d003180886771
-#: ../../../src/common/doc/functions/create_vert_table.rst:236
-msgid "Examples"
-msgstr "Beispiele"
-
-# 0587b0909413456482f8b8725b101b7a
-#: ../../../src/common/doc/functions/create_vert_table.rst:258
-msgid "The example uses the :ref:`sampledata` network."
-msgstr ""
-
-# ad71788bef724cb1809d4b5d96ef1e5c
-#: ../../../src/common/doc/functions/create_vert_table.rst:262
-msgid "See Also"
-msgstr "Siehe auch"
-
-# 6baea98fd7b6493faabb8fcc69f975d8
-#: ../../../src/common/doc/functions/create_vert_table.rst:264
-msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
-msgstr ""
-
-# 7103284d91854b18939e44589085f3cf
-#: ../../../src/common/doc/functions/create_vert_table.rst:265
-msgid ""
-":ref:`pgr_createTopology <pgr_create_topology>` to create a topology based "
-"on the geometry."
-msgstr ""
-
-# 4c67e74087fe4035a8b54bb0d58d8a84
-#: ../../../src/common/doc/functions/create_vert_table.rst:266
-msgid ""
-":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
-"table."
-msgstr ""
-
-# a7eb449e6d594406ab3779c29d1937c8
-#: ../../../src/common/doc/functions/create_vert_table.rst:267
-msgid ":ref:`pgr_analyze_oneway` to analyze directionality of the edges."
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/index.po b/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/index.po
deleted file mode 100644
index 488f979..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/index.po
+++ /dev/null
@@ -1,64 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (187a022 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# Daniel Kastl, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-23 15:04\n"
-"PO-Revision-Date: 2013-09-23 20:13+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# deb0ed12ae874b7a8bb888e9e2be5881
-#: ../../../src/common/doc/functions/index.rst:13
-msgid "Topology Functions"
-msgstr "Topologie-Funktionen"
-
-# cbbdace0de7449b1a859558858d76f6e
-#: ../../../src/common/doc/functions/index.rst:15
-msgid ""
-"The pgRouting's topology of a network, represented with an edge table with "
-"source and target attributes and a vertices table associated with it. "
-"Depending on the algorithm, you can create a topology or just reconstruct "
-"the vertices table, You can analyze the topology, We also provide a function"
-" to node an unoded network."
-msgstr ""
-
-# f4e85c020cba4850a7e4da7b9456baa9
-#: ../../../src/common/doc/functions/index.rst:19
-msgid ""
-":ref:`pgr_create_topology` -  to create a topology based on the geometry."
-msgstr ""
-
-# 2d4de3856acc4c43a732847a834661e6
-#: ../../../src/common/doc/functions/index.rst:20
-msgid ""
-":ref:`pgr_create_vert_table` - to reconstruct the vertices table based on "
-"the source and target information."
-msgstr ""
-
-# 4cf0c54d4785484e9694aa275658e7a7
-#: ../../../src/common/doc/functions/index.rst:21
-msgid ""
-":ref:`pgr_analyze_graph`  - to analyze the edges and vertices of the edge "
-"table."
-msgstr ""
-
-# a7edff2f50444a3d985d747d5e6a609e
-#: ../../../src/common/doc/functions/index.rst:22
-msgid ":ref:`pgr_analyze_oneway` - to analyze directionality of the edges."
-msgstr ""
-
-# e04ee2a942c4495fa185f89d37b0c42b
-#: ../../../src/common/doc/functions/index.rst:23
-msgid ":ref:`pgr_node_network`  -to create nodes to a not noded edge table."
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/is_column_in_table.po b/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/is_column_in_table.po
deleted file mode 100644
index d42dd2a..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/is_column_in_table.po
+++ /dev/null
@@ -1,88 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-04 04:20+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 1451c59201944bfd9022c90ef89ebf8a
-#: ../../../src/common/doc/functions/is_column_in_table.rst:13
-msgid "pgr_isColumnInTable - Check if column exists"
-msgstr ""
-
-# cb570c2703fc45e9bba281cae42780d6
-#: ../../../src/common/doc/functions/is_column_in_table.rst:20
-msgid "Name"
-msgstr "Name"
-
-# b4cdca42128d4828961c3e7076774fc0
-#: ../../../src/common/doc/functions/is_column_in_table.rst:22
-msgid "``pgr_isColumnInTable`` — Check if a column exists in a table."
-msgstr ""
-
-# 33b135e2f8dd4f5e81aad53d1a016cfe
-#: ../../../src/common/doc/functions/is_column_in_table.rst:26
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# 96d06813601a419c9b44fe8298f74a51
-#: ../../../src/common/doc/functions/is_column_in_table.rst:28
-msgid "Returns ``true`` or ``false`` if column “col” exists in table “tab”."
-msgstr ""
-
-# 44f17585bbd843cb9fbcacb785ad3130
-#: ../../../src/common/doc/functions/is_column_in_table.rst:36
-msgid "Description"
-msgstr "Beschreibung"
-
-# b57ee4621bd04e6991a266235c5a592a
-#: ../../../src/common/doc/functions/is_column_in_table.rst:38
-msgid "``text`` table name with or without schema component"
-msgstr ""
-
-# ac6b45788cac4cc7a5dcf6e4c44bb9ad
-#: ../../../src/common/doc/functions/is_column_in_table.rst:39
-msgid "``text`` column name to be checked for"
-msgstr ""
-
-# 5f4ac9523c3b487884e6dd8e67b1e082
-#: ../../../src/common/doc/functions/is_column_in_table.rst:43
-msgid "History"
-msgstr "Geschichte"
-
-# 028851614bd7489991629d8c8f6f8bbf
-#: ../../../src/common/doc/functions/is_column_in_table.rst:44
-msgid "New in version 2.0.0"
-msgstr "Neu in Version 2.0.0"
-
-# 3c3db2df87634ae4b3c8713633f9214f
-#: ../../../src/common/doc/functions/is_column_in_table.rst:48
-msgid "Examples"
-msgstr "Beispiele"
-
-# 61e31f4885e444eea60640117f0f8264
-#: ../../../src/common/doc/functions/is_column_in_table.rst:59
-msgid "The queries use the :ref:`sampledata` network."
-msgstr ""
-
-# 179da1f0bf5342b49e83327d1e277ca9
-#: ../../../src/common/doc/functions/is_column_in_table.rst:63
-msgid "See Also"
-msgstr "Siehe auch"
-
-# 7e1d2140f94d40db8ce6f48c9a3b119f
-#: ../../../src/common/doc/functions/is_column_in_table.rst:65
-msgid ":ref:`pgr_is_column_indexed`"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/is_column_indexed.po b/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/is_column_indexed.po
deleted file mode 100644
index 983295d..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/is_column_indexed.po
+++ /dev/null
@@ -1,89 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-04 04:21+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# f85a66c48ca94cc9a5bba227e6479482
-#: ../../../src/common/doc/functions/is_column_indexed.rst:13
-msgid "pgr_isColumnIndexed - Check if column is indexed"
-msgstr ""
-
-# a4e361cfe30d494982b2755f507c2df4
-#: ../../../src/common/doc/functions/is_column_indexed.rst:20
-msgid "Name"
-msgstr "Name"
-
-# 2616614bd27b4f3aac95e5ee66f8771c
-#: ../../../src/common/doc/functions/is_column_indexed.rst:22
-msgid "``pgr_isColumnIndexed`` — Check if a column in a table is indexed."
-msgstr ""
-
-# 4aff78895aaf431bb254a1725ab1bab6
-#: ../../../src/common/doc/functions/is_column_indexed.rst:26
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# 62d98585fdfb49d287f711a97ba6f261
-#: ../../../src/common/doc/functions/is_column_indexed.rst:28
-msgid ""
-"Returns ``true`` or ``false`` if column “col” in table “tab” is indexed."
-msgstr ""
-
-# 016a3d2a60a745c39afdaa4ba6d24b5f
-#: ../../../src/common/doc/functions/is_column_indexed.rst:36
-msgid "Description"
-msgstr "Beschreibung"
-
-# 5efc6b2a366544cdadac135ab40dee54
-#: ../../../src/common/doc/functions/is_column_indexed.rst:38
-msgid "``text`` table name with or without schema component"
-msgstr ""
-
-# 76548c59562d4c4188ea7a5bbd5b769a
-#: ../../../src/common/doc/functions/is_column_indexed.rst:39
-msgid "``text`` column name to be checked for"
-msgstr ""
-
-# 20bbf0766ada4f7b81807c2e917be118
-#: ../../../src/common/doc/functions/is_column_indexed.rst:43
-msgid "History"
-msgstr "Geschichte"
-
-# 3ca6785c8cb24235a6b581e63c32bd03
-#: ../../../src/common/doc/functions/is_column_indexed.rst:44
-msgid "New in version 2.0.0"
-msgstr "Neu in Version 2.0.0"
-
-# 89feb49b01e94980935495257bf135a9
-#: ../../../src/common/doc/functions/is_column_indexed.rst:48
-msgid "Examples"
-msgstr "Beispiele"
-
-# c8b849f8431c42ef9ecdcde47c516f03
-#: ../../../src/common/doc/functions/is_column_indexed.rst:59
-msgid "The queries use the :ref:`sampledata` network."
-msgstr ""
-
-# 4d38c2d872d0425290c2371cbc5d27e8
-#: ../../../src/common/doc/functions/is_column_indexed.rst:63
-msgid "See Also"
-msgstr "Siehe auch"
-
-# ed5ed4b10dc74af48b9de1a8743ec37b
-#: ../../../src/common/doc/functions/is_column_indexed.rst:65
-msgid ":ref:`pgr_is_column_in_table`"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/node_network.po b/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/node_network.po
deleted file mode 100644
index fd0dc98..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/node_network.po
+++ /dev/null
@@ -1,416 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 06:20+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# e70efe892bc14a45b9e0a2483d5955c1
-#: ../../../src/common/doc/functions/node_network.rst:13
-msgid "pgr_nodeNetwork"
-msgstr ""
-
-# 928e918755da48d29b113ad9fcdac620
-#: ../../../src/common/doc/functions/node_network.rst:20
-msgid "Name"
-msgstr "Name"
-
-# 4c656aa4f4bf48c39d41d16b429a0f0f
-#: ../../../src/common/doc/functions/node_network.rst:22
-msgid "``pgr_nodeNetwork`` - Nodes an network edge table."
-msgstr ""
-
-# b5fd23c4e27446ce8ac33a3ee9bd1fe7
-#: ../../../src/common/doc/functions/node_network.rst:24
-msgid "Nicolas Ribot"
-msgstr ""
-
-# 16108dce80dd41e2a458f2f45f2864d0
-#: ../../../src/common/doc/functions/node_network.rst:25
-msgid "Nicolas Ribot, The source code is released under the MIT-X license."
-msgstr ""
-
-# 3977ae6b9cf044318ec203a8e5aa5692
-#: ../../../src/common/doc/functions/node_network.rst:29
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# 2f6a7ad6abe5481da1e313d912af14e9
-#: ../../../src/common/doc/functions/node_network.rst:31
-msgid ""
-"The function reads edges from a not \"noded\" network table and writes the "
-"\"noded\" edges into a new table."
-msgstr ""
-
-# 3461fdeb834f4294ae2b188234db4eff
-#: ../../../src/common/doc/functions/node_network.rst:40
-msgid "Description"
-msgstr "Beschreibung"
-
-# 422a0c6c90c04a46bec03a6510ec201f
-#: ../../../src/common/doc/functions/node_network.rst:42
-msgid ""
-"A common problem associated with bringing GIS data into pgRouting is the "
-"fact that the data is often not \"noded\" correctly. This will create "
-"invalid topologies, which will result in routes that are incorrect."
-msgstr ""
-
-# 69294245f1c44993a75f749e3721222a
-#: ../../../src/common/doc/functions/node_network.rst:44
-msgid ""
-"What we mean by \"noded\" is that at every intersection in the road network "
-"all the edges will be broken into separate road segments. There are cases "
-"like an over-pass and under-pass intersection where you can not traverse "
-"from the over-pass to the under-pass, but this function does not have the "
-"ability to detect and accommodate those situations."
-msgstr ""
-
-# 2817b2a1050f4b5da0c9aac6f306ea5e
-#: ../../../src/common/doc/functions/node_network.rst:46
-msgid ""
-"This function reads the ``edge_table`` table, that has a primary key column "
-"``id`` and geometry column named ``the_geom`` and intersect all the segments"
-" in it against all the other segments and then creates a table "
-"``edge_table_noded``. It uses the ``tolerance`` for deciding that multiple "
-"nodes within the tolerance are considered the same node."
-msgstr ""
-
-# b6408b0103e84de6acf993a22a25e533
-#: ../../../src/common/doc/functions/node_network.rst:48
-msgid "Parameters"
-msgstr "Parameter"
-
-# 40ed2f0c80b64683aa3f8d42d20a77a2
-#: ../../../src/common/doc/functions/node_network.rst:50
-msgid "``text`` Network table name. (may contain the schema name as well)"
-msgstr ""
-
-# 86c247b372114883b5f6d0949e51b3c8
-#: ../../../src/common/doc/functions/node_network.rst:51
-msgid "``float8`` tolerance for coincident points (in projection unit)dd"
-msgstr ""
-
-# 946d6ed96b2b4f7fac8bcc7ba4d8e68b
-#: ../../../src/common/doc/functions/node_network.rst:52
-msgid ""
-"``text`` Primary key column name of the network table. Default value is "
-"``id``."
-msgstr ""
-
-# ce2e7f47f3bb4b299dda0387123f0409
-#: ../../../src/common/doc/functions/node_network.rst:53
-msgid ""
-"``text`` Geometry column name of the network table. Default value is "
-"``the_geom``."
-msgstr ""
-
-# 74d00078e6354e09a4592cf7e3f9dbe8
-#: ../../../src/common/doc/functions/node_network.rst:54
-msgid "``text`` Suffix for the new table's. Default value is ``noded``."
-msgstr ""
-
-# bc28085240354b228628c4449f877afe
-#: ../../../src/common/doc/functions/node_network.rst:56
-msgid "The output table will have for  ``edge_table_noded``"
-msgstr ""
-
-# df15f6d14415411b85a167c31717fb4e
-#: ../../../src/common/doc/functions/node_network.rst:58
-msgid "``bigint`` Unique identifier for the table"
-msgstr ""
-
-# 4acc7cf0acea40ac852585983687ef11
-#: ../../../src/common/doc/functions/node_network.rst:59
-msgid "``bigint``  Identifier of the edge in original table"
-msgstr ""
-
-# 99bb3c953a7243e1b8232bf4a387c7d7
-#: ../../../src/common/doc/functions/node_network.rst:60
-msgid "``integer`` Segment number of the original edge"
-msgstr ""
-
-# 36a3bdb3e58840f78502c1f388619d52
-#: ../../../src/common/doc/functions/node_network.rst:61
-msgid ""
-"``integer`` Empty source column to be used with  :ref:`pgr_create_topology` "
-"function"
-msgstr ""
-
-# 05092b2ea62744f1910db90fe30ab152
-#: ../../../src/common/doc/functions/node_network.rst:62
-msgid ""
-"``integer`` Empty target column to be used with  :ref:`pgr_create_topology` "
-"function"
-msgstr ""
-
-# c2b0caed0dd643e1991dd4e7f0f08e4c
-#: ../../../src/common/doc/functions/node_network.rst:63
-msgid "``geometry`` Geometry column of the noded network"
-msgstr ""
-
-# a1f34fff1602404db7f2c2344f99cad1
-#: ../../../src/common/doc/functions/node_network.rst:66
-msgid "History"
-msgstr "Geschichte"
-
-# b92ecc8b6d9a4eaba9e0a30ce164fed0
-#: ../../../src/common/doc/functions/node_network.rst:67
-msgid "New in version 2.0.0"
-msgstr "Neu in Version 2.0.0"
-
-# cd2560788805450aa6ffb5ce84c8058e
-#: ../../../src/common/doc/functions/node_network.rst:71
-msgid "Example"
-msgstr ""
-
-# 7e9403e106bb4c0abdd7ed3d1b266079
-#: ../../../src/common/doc/functions/node_network.rst:73
-msgid "Let's create the topology for the data in :ref:`sampledata`"
-msgstr ""
-
-# 5c1a627f182d47efa30c1d4c830862ab
-#: ../../../src/common/doc/functions/node_network.rst:91
-msgid "Now we can analyze the network."
-msgstr ""
-
-# 3eb0c69215284a33ab1505fded4b5a1f
-#: ../../../src/common/doc/functions/node_network.rst:115
-msgid ""
-"The analysis tell us that the network has a gap and and an intersection. We "
-"try to fix the problem using:"
-msgstr ""
-
-# 8be31305870e491c92ad11d8f8d0a20a
-#: ../../../src/common/doc/functions/node_network.rst:137
-msgid ""
-"Inspecting the generated table, we can see that edges 13,14 and 18 has been "
-"segmented"
-msgstr ""
-
-# 8a086446ed8d4b30bf07015ab46ea12d
-#: ../../../src/common/doc/functions/node_network.rst:167
-msgid "We can create the topology of the new network"
-msgstr ""
-
-# 8944601cf6e343c09dce0bf706960a8c
-#: ../../../src/common/doc/functions/node_network.rst:185
-msgid "Now let's analyze the new topology"
-msgstr ""
-
-# 8a596982abe141b4a1925e35e1db79a3
-#: ../../../src/common/doc/functions/node_network.rst:211
-msgid "Images"
-msgstr ""
-
-# 960ada27fdd34c3dbfb61f10e5feba5f
-#: ../../../src/common/doc/functions/node_network.rst:244
-msgid "Comparing the results"
-msgstr ""
-
-# 8bbf24ce7c7e42f5a20e2a8d89e04c36
-#: ../../../src/common/doc/functions/node_network.rst:246
-msgid "Comparing with the Analysis in the original edge_table, we see that."
-msgstr ""
-
-# a3503fcd45dd4095b55e814ab842c829
-#: ../../../src/common/doc/functions/node_network.rst:249
-msgid "Before"
-msgstr ""
-
-# dfb592f8bd4e4572bbda7700558b3e93
-#: ../../../src/common/doc/functions/node_network.rst:249
-msgid "After"
-msgstr ""
-
-# dde3349cc54e4b94afb37800f2a163f5
-#: ../../../src/common/doc/functions/node_network.rst:251
-msgid "Table name"
-msgstr ""
-
-# f672bf7770e8488fbe5ea1fbd13d7ac9
-#: ../../../src/common/doc/functions/node_network.rst:251
-msgid "edge_table"
-msgstr ""
-
-# fbe3a7f491d4488085062b1fb783b357
-#: ../../../src/common/doc/functions/node_network.rst:251
-msgid "edge_table_noded"
-msgstr ""
-
-# adaa5d5eca664ecb9d20315adfd329b4
-#: ../../../src/common/doc/functions/node_network.rst:253
-msgid "Fields"
-msgstr ""
-
-# ebcf10a104ba4d7eaae546ec13365142
-#: ../../../src/common/doc/functions/node_network.rst:253
-msgid "All original fields"
-msgstr ""
-
-# be45b275890a4aa8a6d624b6f87774d0
-#: ../../../src/common/doc/functions/node_network.rst:253
-msgid "Has only basic fields to do a topology analysis"
-msgstr ""
-
-# 92f3a885bad349d6b5f9ef2345cb905f
-#: ../../../src/common/doc/functions/node_network.rst:255
-msgid "Dead ends"
-msgstr ""
-
-# 40a53c9b632b40a6a81f9277c11765b1
-#: ../../../src/common/doc/functions/node_network.rst:255
-msgid "Edges with 1 dead end: 1,6,24"
-msgstr ""
-
-# 709cbda3addd4b32b9b267d9ceafdb4f
-#: ../../../src/common/doc/functions/node_network.rst:256
-msgid "Edges with 2 dead ends  17,18"
-msgstr ""
-
-# d0de891ebf004a148c2bcd4510d81064
-#: ../../../src/common/doc/functions/node_network.rst:258
-msgid ""
-"Edge 17's right node is a dead end because there is no other edge sharing "
-"that same node. (cnt=1)"
-msgstr ""
-
-# 57918afd2f0445cea564eba267fa8c37
-#: ../../../src/common/doc/functions/node_network.rst:255
-msgid "Edges with 1 dead end: 1-1 ,6-1,14-2, 18-1 17-1 18-2"
-msgstr ""
-
-# ff6cb3034ea345c89df6d718108fd2bc
-#: ../../../src/common/doc/functions/node_network.rst:262
-msgid "Isolated segments"
-msgstr ""
-
-# b958862fe349475ca7c2b38bbb40663b
-#: ../../../src/common/doc/functions/node_network.rst:262
-msgid "two isolated segments:  17 and 18 both they have 2 dead ends"
-msgstr ""
-
-# 8d0bda0399694c6d8677fa928bdab03c
-#: ../../../src/common/doc/functions/node_network.rst:263
-msgid "No Isolated segments"
-msgstr ""
-
-# ac2cf90e5b2a4e75bb94688d6e4ec553
-#: ../../../src/common/doc/functions/node_network.rst:263
-msgid "Edge 17 now shares a node with edges 14-1 and 14-2"
-msgstr ""
-
-# 287c00afc68a4e869f912d7b2ddabefb
-#: ../../../src/common/doc/functions/node_network.rst:264
-msgid "Edges 18-1 and 18-2 share a node with edges 13-1 and 13-2"
-msgstr ""
-
-# bab6a1bf5c10447caa298e9247f3bf2a
-#: ../../../src/common/doc/functions/node_network.rst:266
-msgid "Gaps"
-msgstr ""
-
-# c23ab3c2eff44ddf9ddb0bee4f90197a
-#: ../../../src/common/doc/functions/node_network.rst:266
-msgid ""
-"There is a gap between edge 17 and 14 because edge 14 is near to the right "
-"node of edge 17"
-msgstr ""
-
-# 89fabbc2722649c9adf098ea0f9dde1c
-#: ../../../src/common/doc/functions/node_network.rst:266
-msgid ""
-"Edge 14 was segmented Now edges: 14-1 14-2 17 share the same node The "
-"tolerance value was taken in account"
-msgstr ""
-
-# c04f1c8028d846aeb593cd2389ee45da
-#: ../../../src/common/doc/functions/node_network.rst:270
-msgid "Intersections"
-msgstr ""
-
-# db3e94db58d0422bbfbdb83ba509d29e
-#: ../../../src/common/doc/functions/node_network.rst:270
-msgid "Edges 13 and 18 were intersecting"
-msgstr ""
-
-# 50736f49b59e4f7fa0c66f0e979d80bd
-#: ../../../src/common/doc/functions/node_network.rst:270
-msgid ""
-"Edges were segmented, So, now in the interection's point there is a node and"
-" the following edges share it: 13-1 13-2 18-1 18-2"
-msgstr ""
-
-# f39fa18acedb410fb827e37f226da00b
-#: ../../../src/common/doc/functions/node_network.rst:275
-msgid ""
-"Now, we are going to include the segments 13-1, 13-2 14-1, 14-2 ,18-1 and "
-"18-2 into our edge-table, copying the data for dir,cost,and reverse cost "
-"with tho following steps:"
-msgstr ""
-
-# 40eb8df52b5649ddb2401cc0c9fe4e7c
-#: ../../../src/common/doc/functions/node_network.rst:277
-msgid ""
-"Add a column old_id into edge_table, this column is going to keep track the "
-"id of the original edge"
-msgstr ""
-
-# 91eb1db3098b4353be78c9aef064421e
-#: ../../../src/common/doc/functions/node_network.rst:278
-msgid ""
-"Insert only the segmented edges, that is, the ones whose max(sub_id) >1"
-msgstr ""
-
-# 2158163aaac748eca84fcd78a42e9b3a
-#: ../../../src/common/doc/functions/node_network.rst:291
-msgid "We recreate the topology:"
-msgstr ""
-
-# 03050935f9bb42a69dfe42e303e8f164
-#: ../../../src/common/doc/functions/node_network.rst:311
-msgid ""
-"To get the same analysis results as the topology of edge_table_noded, we do "
-"the following query:"
-msgstr ""
-
-# bcefb46820504921aa7a3260a988c26d
-#: ../../../src/common/doc/functions/node_network.rst:338
-msgid ""
-"To get the same analysis results as the original edge_table, we do the "
-"following query:"
-msgstr ""
-
-# 376c4a5e033d42b3ba4e3c3ec018f8e8
-#: ../../../src/common/doc/functions/node_network.rst:363
-msgid ""
-"Or we can analyze everything because, maybe edge 18 is an overpass, edge 14 "
-"is an under pass and there is also a street level juction, and the same "
-"happens with edges 17 and 13."
-msgstr ""
-
-# 26fbd57b79324bd08ef2c5ee3579831e
-#: ../../../src/common/doc/functions/node_network.rst:390
-msgid "See Also"
-msgstr "Siehe auch"
-
-# 9df40faa94c64db5b2256f265be6e4d4
-#: ../../../src/common/doc/functions/node_network.rst:392
-msgid ""
-":ref:`topology` for an overview of a topology for routing algorithms. "
-":ref:`pgr_analyze_oneway` to analyze directionality of the edges. "
-":ref:`pgr_create_topology` to create a topology based on the geometry. "
-":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
-"table."
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/point_to_id.po b/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/point_to_id.po
deleted file mode 100644
index 4291181..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/point_to_id.po
+++ /dev/null
@@ -1,104 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-04 04:21+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 81e0b58a4b464395b3661da85edfaa90
-#: ../../../src/common/doc/functions/point_to_id.rst:13
-msgid "pgr_pointToId - Inserts point into a vertices table"
-msgstr ""
-
-# 9bebf9f4ff2b43a39470ee284698fa33
-#: ../../../src/common/doc/functions/point_to_id.rst:20
-msgid "Name"
-msgstr "Name"
-
-# 8fcf7e9e33b448b982f7111389a7e412
-#: ../../../src/common/doc/functions/point_to_id.rst:22
-msgid "``pgr_pointToId`` — Inserts a point into a temporary vertices table."
-msgstr ""
-
-# 1ebe04b75e4444e2970f12bf667f07fa
-#: ../../../src/common/doc/functions/point_to_id.rst:26
-msgid ""
-"This function should not be used directly. Use :ref:`pgr_createTopology "
-"<pgr_create_topology>` instead."
-msgstr ""
-
-# 8c3303cb3d73446795471f411d835691
-#: ../../../src/common/doc/functions/point_to_id.rst:30
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# e17d53fea1674ad692e9d65129c04e5d
-#: ../../../src/common/doc/functions/point_to_id.rst:32
-msgid ""
-"Inserts a point into a temporary vertices table, and returns an id of a new "
-"point or an existing point. Tolerance is the minimal distance between "
-"existing points and the new point to create a new point."
-msgstr ""
-
-# 4b067a809bbd4210baf154f274aab5f0
-#: ../../../src/common/doc/functions/point_to_id.rst:40
-msgid "Description"
-msgstr "Beschreibung"
-
-# de6b0b7b7ae44691a60a709a1245e12c
-#: ../../../src/common/doc/functions/point_to_id.rst:42
-msgid "``geometry`` of the existing point"
-msgstr ""
-
-# e05906cd2cd545eead6a6a277d441ea4
-#: ../../../src/common/doc/functions/point_to_id.rst:43
-msgid ""
-"``float8`` snapping tolerance of disconnected edges (in projection unit)"
-msgstr ""
-
-# 7eb52d95126d47efbf485a1397785c34
-#: ../../../src/common/doc/functions/point_to_id.rst:45
-msgid "Returns point id (``bigint``) of a new or existing point."
-msgstr ""
-
-# 78ed162b771d42c1bdadb75ea1806c17
-#: ../../../src/common/doc/functions/point_to_id.rst:49
-msgid "History"
-msgstr "Geschichte"
-
-# 932b962d76c14946b54db15e77b3c90d
-#: ../../../src/common/doc/functions/point_to_id.rst:50
-msgid "Renamed in version 2.0.0"
-msgstr ""
-
-# c1b2ccd7df20427c88dcf1ebf4b06d82
-#: ../../../src/common/doc/functions/point_to_id.rst:54
-msgid "See Also"
-msgstr "Siehe auch"
-
-# 4dafa239ff7648c2952a2d3ee70671bf
-#: ../../../src/common/doc/functions/point_to_id.rst:56
-msgid ":ref:`pgr_create_topology`"
-msgstr ""
-
-# 8100a50d0b5f4b0cab8d62645becc674
-#: ../../../src/common/doc/functions/point_to_id.rst:57
-msgid ":ref:`topology`"
-msgstr ""
-
-# 86ad35d9d3ce44a696b6dc61c466e04e
-#: ../../../src/common/doc/functions/point_to_id.rst:58
-msgid ":ref:`pgr_node_network`"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/quote_ident.po b/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/quote_ident.po
deleted file mode 100644
index d6ac66e..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/quote_ident.po
+++ /dev/null
@@ -1,89 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-04 04:21+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 59a19788e4ba478cb0d046fc07c08179
-#: ../../../src/common/doc/functions/quote_ident.rst:13
-msgid "pgr_quote_ident - Quote table name with Schema Component"
-msgstr ""
-
-# 61a86f593d04476692b89157939b8a1e
-#: ../../../src/common/doc/functions/quote_ident.rst:20
-msgid "Name"
-msgstr "Name"
-
-# 7ae4a51cc62143058b829f9317d4b282
-#: ../../../src/common/doc/functions/quote_ident.rst:22
-msgid ""
-"``pgr_quote_ident`` — Quote table name with or without schema component."
-msgstr ""
-
-# d09400822917498ab08038e0453f93a2
-#: ../../../src/common/doc/functions/quote_ident.rst:26
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# 02e534c6d94e4d7fa366eb30dfd82602
-#: ../../../src/common/doc/functions/quote_ident.rst:28
-msgid ""
-"Function to split a string on ``.`` characters and then quote the components"
-" as postgres identifiers and then join them back together with ``.`` "
-"characters. Multile ``.`` will get collapsed into a single ``.``, so "
-"``schema...table`` till get returned as ``schema.\"table\"`` and "
-"``Schema.table`` becomes ``\"Schema\".\"table\"``."
-msgstr ""
-
-# 70b63ad008b14b5cbd540f478c596e97
-#: ../../../src/common/doc/functions/quote_ident.rst:37
-msgid "Description"
-msgstr "Beschreibung"
-
-# 76375d16726e4e8a8c4e02b54bd4b33a
-#: ../../../src/common/doc/functions/quote_ident.rst:39
-msgid "``text`` table name with or without schema component"
-msgstr ""
-
-# d8548a7bfe3542b28f614894ba6f4b84
-#: ../../../src/common/doc/functions/quote_ident.rst:41
-msgid "Returns table name with or without schema as ``text``."
-msgstr ""
-
-# ebc95d6ee53c42f29aa6a18a134d4d20
-#: ../../../src/common/doc/functions/quote_ident.rst:45
-msgid "History"
-msgstr "Geschichte"
-
-# 6bea52def68e4f05ae56873b8d4f9d1c
-#: ../../../src/common/doc/functions/quote_ident.rst:46
-msgid "New in version 2.0.0"
-msgstr "Neu in Version 2.0.0"
-
-# 21e9cb20b57e4b4681d4e04d5f083d2a
-#: ../../../src/common/doc/functions/quote_ident.rst:50
-msgid "Examples"
-msgstr "Beispiele"
-
-# 5e3a344a21eb45bfba3e880ae3981a30
-#: ../../../src/common/doc/functions/quote_ident.rst:77
-msgid "See Also"
-msgstr "Siehe auch"
-
-# b4ee52cbb2b74bb59b22b1802748f96d
-#: ../../../src/common/doc/functions/quote_ident.rst:79
-msgid "[TBD]"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/version.po b/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/version.po
deleted file mode 100644
index bf38a21..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/version.po
+++ /dev/null
@@ -1,113 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-04 04:20+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# dbab41817c8a46459e8f33cf684a7afb
-#: ../../../src/common/doc/functions/version.rst:13
-msgid "pgr_version - Get version information"
-msgstr ""
-
-# 19cd8fb76f754d898f75659f97628007
-#: ../../../src/common/doc/functions/version.rst:20
-msgid "Name"
-msgstr "Name"
-
-# 5531935ef2384b709c4f1d81ddcdf15c
-#: ../../../src/common/doc/functions/version.rst:22
-msgid "``pgr_version`` — Query for pgRouting version information."
-msgstr ""
-
-# 52175fb13b944970989d3ef4a23a7b66
-#: ../../../src/common/doc/functions/version.rst:26
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# 14783f07374f4ccdaa53515b95c17943
-#: ../../../src/common/doc/functions/version.rst:28
-msgid "Returns a table with pgRouting version information."
-msgstr ""
-
-# 6d5995ab278d476d80f54ab15b8af686
-#: ../../../src/common/doc/functions/version.rst:36
-msgid "Description"
-msgstr "Beschreibung"
-
-# b4baa0103a55431abaa586f16230af8c
-#: ../../../src/common/doc/functions/version.rst:38
-msgid "Returns a table with:"
-msgstr ""
-
-# 7d8a75cf72b840b39e0eea6140a5839d
-#: ../../../src/common/doc/functions/version.rst:40
-msgid "``varchar`` pgRouting version"
-msgstr ""
-
-# 2af5168bce0a4b03bf2b097d3099c850
-#: ../../../src/common/doc/functions/version.rst:41
-msgid "``varchar`` Git tag of pgRouting build"
-msgstr ""
-
-# b4444b51e41549b399751bcba194a8a8
-#: ../../../src/common/doc/functions/version.rst:42
-msgid "``varchar`` Git hash of pgRouting build"
-msgstr ""
-
-# 6737b5df55e94bb185f64d0de3389f3e
-#: ../../../src/common/doc/functions/version.rst:43
-msgid "``varchar`` Git branch of pgRouting build"
-msgstr ""
-
-# e5b735559b2949b09899e982d6f2ecf3
-#: ../../../src/common/doc/functions/version.rst:44
-msgid "``varchar`` Boost version"
-msgstr ""
-
-# 9042ea468aba4c4490b7124bbf14aacb
-#: ../../../src/common/doc/functions/version.rst:48
-msgid "History"
-msgstr "Geschichte"
-
-# 3829660b5485491083028df2cb267d03
-#: ../../../src/common/doc/functions/version.rst:49
-msgid "New in version 2.0.0"
-msgstr "Neu in Version 2.0.0"
-
-# 8638cdf8594940cbad096c9ac3d261ad
-#: ../../../src/common/doc/functions/version.rst:53
-msgid "Examples"
-msgstr "Beispiele"
-
-# d80877f2810741ada5737305d484de11
-#: ../../../src/common/doc/functions/version.rst:55
-msgid "Query for full version string"
-msgstr ""
-
-# 2ff90cee91e644fab554650cc24bd3bf
-#: ../../../src/common/doc/functions/version.rst:67
-msgid "Query for ``version`` and ``boost`` attribute"
-msgstr ""
-
-# 6c3a1c332dc54ea2a01d81c5f5f9dcc1
-#: ../../../src/common/doc/functions/version.rst:80
-msgid "See Also"
-msgstr "Siehe auch"
-
-# 1eeb4f68d3c342dbbadade6c52b87baf
-#: ../../../src/common/doc/functions/version.rst:82
-msgid ":ref:`pgr_versionless`"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/versionless.po b/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/versionless.po
deleted file mode 100644
index a994def..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/common/doc/functions/versionless.po
+++ /dev/null
@@ -1,85 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-04 04:20+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# f15b37fde8e64b508893630a0291dc6a
-#: ../../../src/common/doc/functions/versionless.rst:13
-msgid "pgr_versionless - Compare version numbers"
-msgstr ""
-
-# cd0dcc3f3489468ab55c89598715d895
-#: ../../../src/common/doc/functions/versionless.rst:20
-msgid "Name"
-msgstr "Name"
-
-# e2f0eb00eca142c8bc7d71b317604c7e
-#: ../../../src/common/doc/functions/versionless.rst:22
-msgid "``pgr_version`` — Compare two version numbers and return if smaller."
-msgstr ""
-
-# d85cf15bf8894e158945855624a422f5
-#: ../../../src/common/doc/functions/versionless.rst:26
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# ed2cb6f5c03645b3ab2a296d062c1eb9
-#: ../../../src/common/doc/functions/versionless.rst:28
-msgid ""
-"Returns ``true`` if the first version number is smaller than the second "
-"version number. Otherwise returns ``false``."
-msgstr ""
-
-# a11f675500e140ae997cdb4f167d2da4
-#: ../../../src/common/doc/functions/versionless.rst:36
-msgid "Description"
-msgstr "Beschreibung"
-
-# 7d1ac8fa4fce4362965d8587a3cd7099
-#: ../../../src/common/doc/functions/versionless.rst:38
-msgid "``text`` first version number"
-msgstr ""
-
-# 1d8a5a36a0fa4da19892193a11578a08
-#: ../../../src/common/doc/functions/versionless.rst:39
-msgid "``text`` second version number"
-msgstr ""
-
-# a32770a22cf849cb96bd78825f332825
-#: ../../../src/common/doc/functions/versionless.rst:43
-msgid "History"
-msgstr "Geschichte"
-
-# 14ef379da17a48389cb627817c173253
-#: ../../../src/common/doc/functions/versionless.rst:44
-msgid "New in version 2.0.0"
-msgstr "Neu in Version 2.0.0"
-
-# 7a3d2290bca342b79b4105e7aee330b0
-#: ../../../src/common/doc/functions/versionless.rst:48
-msgid "Examples"
-msgstr "Beispiele"
-
-# ca2f13a6ce4444258be7f46d40c8bd2a
-#: ../../../src/common/doc/functions/versionless.rst:61
-msgid "See Also"
-msgstr "Siehe auch"
-
-# a621baf581ff4ba8b4b03d3481d5a660
-#: ../../../src/common/doc/functions/versionless.rst:63
-msgid ":ref:`pgr_version`"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/common/doc/index.po b/doc/i18n/de/LC_MESSAGES/src/common/doc/index.po
deleted file mode 100644
index 8937a94..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/common/doc/index.po
+++ /dev/null
@@ -1,24 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# Daniel Kastl, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-08-02 14:40+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 78df021b36a0428cab8a950fb0bda859
-#: ../../../src/common/doc/index.rst:13
-msgid "Common Functions"
-msgstr "Häufig verwendete Funktionen"
diff --git a/doc/i18n/de/LC_MESSAGES/src/common/doc/legacy.po b/doc/i18n/de/LC_MESSAGES/src/common/doc/legacy.po
deleted file mode 100644
index ec4be6e..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/common/doc/legacy.po
+++ /dev/null
@@ -1,67 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# Daniel Kastl, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-08-02 17:00+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 7e98fba52c6f402c811f8c50dd811f39
-#: ../../../src/common/doc/legacy.rst:13
-msgid "Legacy Functions"
-msgstr "Ältere Funktionen"
-
-# 18b051582e6742be8a3737391d4676ad
-#: ../../../src/common/doc/legacy.rst:15
-msgid ""
-"pgRouting 2.0 release has total restructured the function naming and "
-"obsoleted many of the functions that were available in the 1.x releases. "
-"While we realize that this may inconvenience our existing users, we felt "
-"this was needed for the long term viability of the project to be more "
-"response to our users and to be able to add new functionality and test "
-"existing functionality."
-msgstr ""
-
-# cf6d9479ec0b4eb6b0607f3302df5dca
-#: ../../../src/common/doc/legacy.rst:17
-msgid ""
-"We have made a minimal effort to save most of these function and distribute "
-"with the release in a file ``pgrouting_legacy.sql`` that is not part of the "
-"pgrouting extension and is not supported. If you can use these functions "
-"that is great. We have not tested any of these functions so if you find "
-"issues and want to post a pull request or a patch to help other users that "
-"is fine, but it is likely this file will be removed in a future release and "
-"we strongly recommend that you convert your existing code to use the new "
-"documented and supported functions."
-msgstr ""
-
-# 82da52e7fec44c24956e90636a8a9355
-#: ../../../src/common/doc/legacy.rst:19
-msgid ""
-"The follow is a list of TYPEs, CASTs and FUNCTION included in the "
-"``pgrouting_legacy.sql`` file. The list is provide as a convenience but "
-"these functions are deprecated, not supported, and probably will need some "
-"changes to get them to work."
-msgstr ""
-
-# 7ae0da52fff04aaaaec8fd9b91d3b7b0
-#: ../../../src/common/doc/legacy.rst:23
-msgid "TYPEs & CASTs"
-msgstr "TYPEs & CASTs"
-
-# 8e73926e03514dff813a00fbf7d202e0
-#: ../../../src/common/doc/legacy.rst:34
-msgid "FUNCTIONs"
-msgstr "FUNCTIONs"
diff --git a/doc/i18n/de/LC_MESSAGES/src/common/doc/types.po b/doc/i18n/de/LC_MESSAGES/src/common/doc/types.po
deleted file mode 100644
index 3a38202..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/common/doc/types.po
+++ /dev/null
@@ -1,31 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# Daniel Kastl, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-02 14:40+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# a647839f49f94a9997479367dc35d13f
-#: ../../../src/common/doc/types.rst:13
-msgid "Custom Types"
-msgstr "Benutzerdefinierte Typen"
-
-# f00f6611879f4afd961586e955284a41
-#: ../../../src/common/doc/types.rst:15
-msgid ""
-"The following are commonly used data types for some of the pgRouting "
-"functions."
-msgstr "Im folgenden sind häufig verwendete Datentypen für einige pgRouting Funktionen gelistet."
diff --git a/doc/i18n/de/LC_MESSAGES/src/common/doc/types/cost_result.po b/doc/i18n/de/LC_MESSAGES/src/common/doc/types/cost_result.po
deleted file mode 100644
index 0f16831..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/common/doc/types/cost_result.po
+++ /dev/null
@@ -1,114 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:13+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 575fa6fd8a1842c68aba9825683b178d
-#: ../../../src/common/doc/types/cost_result.rst:13
-msgid "pgr_costResult[]"
-msgstr ""
-
-# 3b55f2f3cdc24995bd590e235062c389
-# 1d4bd884218342d6a7ca7ae79998c3a0
-#: ../../../src/common/doc/types/cost_result.rst:20
-#: ../../../src/common/doc/types/cost_result.rst:54
-msgid "Name"
-msgstr "Name"
-
-# 691ba9180a9f4854922720a03e1db3e0
-#: ../../../src/common/doc/types/cost_result.rst:22
-msgid ""
-"``pgr_costResult[]`` — A set of records to describe a path result with cost "
-"attribute."
-msgstr ""
-
-# 4bc0f98e83fc482daf119d02f3ab4386
-# b80ec90ac4244e82a1aa8f7e58b78921
-#: ../../../src/common/doc/types/cost_result.rst:26
-#: ../../../src/common/doc/types/cost_result.rst:60
-msgid "Description"
-msgstr "Beschreibung"
-
-# 023a9b6d62474dbdbb4d587b192099c4
-# 8e1c61381d6f47909ea0830da8a4740c
-#: ../../../src/common/doc/types/cost_result.rst:38
-#: ../../../src/common/doc/types/cost_result.rst:73
-msgid "sequential ID indicating the path order"
-msgstr ""
-
-# 98a23fe6530d43418558cdd8be417a26
-# 8c3701ae807d4738b8bbe72260f4c476
-#: ../../../src/common/doc/types/cost_result.rst:39
-#: ../../../src/common/doc/types/cost_result.rst:75
-msgid "generic name, to be specified by the function, typically the node id"
-msgstr ""
-
-# f4abd64c5dea4cda97490766f42a395c
-# 1be5c24bdc684ed1a182e9e2b0ab2343
-#: ../../../src/common/doc/types/cost_result.rst:40
-#: ../../../src/common/doc/types/cost_result.rst:76
-msgid "generic name, to be specified by the function, typically the edge id"
-msgstr ""
-
-# 0b4a362ff97d481cafd2c0328ad1f715
-# 8e11a66126844a1682d4e4c84166794d
-#: ../../../src/common/doc/types/cost_result.rst:41
-#: ../../../src/common/doc/types/cost_result.rst:77
-msgid "cost attribute"
-msgstr ""
-
-# 7e74e200db1b40e1a5231037b2e9b993
-#: ../../../src/common/doc/types/cost_result.rst:47
-msgid "pgr_costResult3[] - Multiple Path Results with Cost"
-msgstr ""
-
-# 307f0248b6c54a71bfc205bb2270b5ce
-#: ../../../src/common/doc/types/cost_result.rst:56
-msgid ""
-"``pgr_costResult3[]`` — A set of records to describe a path result with cost"
-" attribute."
-msgstr ""
-
-# 13465c99a9fb49ebab1d1852e6c61aab
-#: ../../../src/common/doc/types/cost_result.rst:74
-msgid "generic name, to be specified by the function, typically the path id"
-msgstr ""
-
-# ac46c731c85d4d358a763bc1268ef510
-#: ../../../src/common/doc/types/cost_result.rst:81
-msgid "History"
-msgstr "Geschichte"
-
-# 6bc9329d908f474bbcd380272dae671d
-#: ../../../src/common/doc/types/cost_result.rst:82
-msgid "New in version 2.0.0"
-msgstr "Neu in Version 2.0.0"
-
-# 7e5f0c1b76c349ce940c19b2312cc2ec
-#: ../../../src/common/doc/types/cost_result.rst:83
-msgid "Replaces ``path_result``"
-msgstr ""
-
-# 28df9e1fa19b49f9bb57710715c52fcb
-#: ../../../src/common/doc/types/cost_result.rst:87
-msgid "See Also"
-msgstr "Siehe auch"
-
-# 21432e8842c1490ba3a7825f4b4e57bb
-#: ../../../src/common/doc/types/cost_result.rst:89
-msgid ":ref:`introduction`"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/common/doc/types/geom_result.po b/doc/i18n/de/LC_MESSAGES/src/common/doc/types/geom_result.po
deleted file mode 100644
index 615f0dc..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/common/doc/types/geom_result.po
+++ /dev/null
@@ -1,82 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:13+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# baeae55a13de4766b42a9f43c6f8caaf
-#: ../../../src/common/doc/types/geom_result.rst:13
-msgid "pgr_geomResult[]"
-msgstr ""
-
-# 4fc9eadff47c4a24baa096c8c667c469
-#: ../../../src/common/doc/types/geom_result.rst:20
-msgid "Name"
-msgstr "Name"
-
-# 03beb686e4ec49e08cd6f1f0f5e03339
-#: ../../../src/common/doc/types/geom_result.rst:22
-msgid ""
-"``pgr_geomResult[]`` — A set of records to describe a path result with "
-"geometry attribute."
-msgstr ""
-
-# fd9c91caacdf4a2fb1c186c45e1d5525
-#: ../../../src/common/doc/types/geom_result.rst:26
-msgid "Description"
-msgstr "Beschreibung"
-
-# c00f6b668c744c7d822d2d2155e76b7a
-#: ../../../src/common/doc/types/geom_result.rst:38
-msgid "sequential ID indicating the path order"
-msgstr ""
-
-# 5782feff61f84fd4b3130a80b1abd7a9
-# 69c0e9623b4d41669a2601517d1563d2
-#: ../../../src/common/doc/types/geom_result.rst:39
-#: ../../../src/common/doc/types/geom_result.rst:40
-msgid "generic name, to be specified by the function"
-msgstr ""
-
-# c837b15d4460475996b2f7bac8b14076
-#: ../../../src/common/doc/types/geom_result.rst:41
-msgid "geometry attribute"
-msgstr ""
-
-# cf5503504b26427b800efddbc1098b64
-#: ../../../src/common/doc/types/geom_result.rst:45
-msgid "History"
-msgstr "Geschichte"
-
-# 4e474c2cf69748c680853e0505ce4773
-#: ../../../src/common/doc/types/geom_result.rst:46
-msgid "New in version 2.0.0"
-msgstr "Neu in Version 2.0.0"
-
-# f4d42016a50f43438838421dfb361835
-#: ../../../src/common/doc/types/geom_result.rst:47
-msgid "Replaces ``geoms``"
-msgstr ""
-
-# 0075486d62f84298b41797b5789d377a
-#: ../../../src/common/doc/types/geom_result.rst:51
-msgid "See Also"
-msgstr "Siehe auch"
-
-# 5a190ec8601a4a919a058395614d7db5
-#: ../../../src/common/doc/types/geom_result.rst:53
-msgid ":ref:`introduction`"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/common/doc/types/index.po b/doc/i18n/de/LC_MESSAGES/src/common/doc/types/index.po
deleted file mode 100644
index c3302c7..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/common/doc/types/index.po
+++ /dev/null
@@ -1,51 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (187a022 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-23 22:34\n"
-"PO-Revision-Date: 2013-09-24 03:35+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 31af4730c6e74131952f077a8cec876f
-#: ../../../src/common/doc/types/index.rst:13
-msgid "pgRouting Data Types"
-msgstr ""
-
-# da2f6a8846b5476ea16852a5dc229cc4
-#: ../../../src/common/doc/types/index.rst:15
-msgid ""
-"The following are commonly used data types for some of the pgRouting "
-"functions."
-msgstr "Im folgenden sind häufig verwendete Datentypen für einige pgRouting Funktionen gelistet."
-
-# a9b85e2084f8478fa35c1379a650108b
-#: ../../../src/common/doc/types/index.rst:17
-msgid ""
-":ref:`type_cost_result` -  A set of records to describe a path result with "
-"cost attribute."
-msgstr ""
-
-# b982ceede0fd48afa63a086c6978fd2e
-#: ../../../src/common/doc/types/index.rst:18
-msgid ""
-":ref:`pgr_costResult3[] <type_cost_result3>` - A set of records to describe "
-"a path result with cost attribute."
-msgstr ""
-
-# 913c41ce7bb44b80869c181df3560f3d
-#: ../../../src/common/doc/types/index.rst:19
-msgid ""
-":ref:`pgr_geomResult <type_geom_result>` - A set of records to describe a "
-"path result with geometry attribute."
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/end_point.po b/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/end_point.po
deleted file mode 100644
index f48a6d1..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/end_point.po
+++ /dev/null
@@ -1,92 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 06:20+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 608ee0c4d0644bdba6e3dc233e2143a7
-#: ../../../src/common/doc/utilities/end_point.rst:13
-msgid "pgr_endPoint"
-msgstr ""
-
-# 8518d0c13dcc4cb9b4a6eb5bd83e8d6e
-#: ../../../src/common/doc/utilities/end_point.rst:20
-msgid "Name"
-msgstr "Name"
-
-# 3660b4422cfa4aaea41cf4b4e91164ee
-#: ../../../src/common/doc/utilities/end_point.rst:22
-msgid ""
-"``pgr_endPoint`` — Returns an end point of a (multi)linestring geometry."
-msgstr ""
-
-# 549e2d553af74e0bba5a2833eafa7983
-#: ../../../src/common/doc/utilities/end_point.rst:24
-msgid "This function is intended for the developer's aid."
-msgstr ""
-
-# d2cdf35b795f4fcfbfc9c84a2c36387b
-#: ../../../src/common/doc/utilities/end_point.rst:28
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# 180a778d767b496986ed060d48f0de04
-# 14f173f6f91f488b940887c452049824
-#: ../../../src/common/doc/utilities/end_point.rst:30
-#: ../../../src/common/doc/utilities/end_point.rst:44
-msgid ""
-"Returns the geometry of the end point of the first LINESTRING of ``geom``."
-msgstr ""
-
-# c8cfaed54e00467bba188637f3d25e04
-#: ../../../src/common/doc/utilities/end_point.rst:38
-msgid "Description"
-msgstr "Beschreibung"
-
-# b7a5d14354644a79aaa532e44543b0f1
-#: ../../../src/common/doc/utilities/end_point.rst:41
-msgid "Parameters"
-msgstr "Parameter"
-
-# 01b0d917d9534f74885248e0be35ca6d
-#: ../../../src/common/doc/utilities/end_point.rst:42
-msgid "``geometry`` Geometry of a MULTILINESTRING or LINESTRING."
-msgstr ""
-
-# a1951e42b2164de2b73d7ecde1bc5252
-#: ../../../src/common/doc/utilities/end_point.rst:49
-msgid "History"
-msgstr "Geschichte"
-
-# fd2421f2ca2945c4ad59395a0fa9cb90
-#: ../../../src/common/doc/utilities/end_point.rst:50
-msgid "New in version 2.0.0"
-msgstr "Neu in Version 2.0.0"
-
-# 031cd30124a9491e80778dce1c6d77ab
-#: ../../../src/common/doc/utilities/end_point.rst:55
-msgid "See Also"
-msgstr "Siehe auch"
-
-# f17f7b08a35d44098381d1c280756f49
-#: ../../../src/common/doc/utilities/end_point.rst:57
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-# 68b294268f37462fb09eb605267d0686
-#: ../../../src/common/doc/utilities/end_point.rst:58
-msgid ":ref:`pgr_start_point` to get the start point of a (multi)linestring."
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/get_column_name.po b/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/get_column_name.po
deleted file mode 100644
index eeb0a3b..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/get_column_name.po
+++ /dev/null
@@ -1,140 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 06:20+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# f62e871185dd40c2a9e8b7cec3ea97b9
-#: ../../../src/common/doc/utilities/get_column_name.rst:13
-msgid "pgr_getColumnName"
-msgstr ""
-
-# 0d4e05a54bf944d2a712bcee9d7897c4
-#: ../../../src/common/doc/utilities/get_column_name.rst:20
-msgid "Name"
-msgstr "Name"
-
-# c1e5f5dde2804946bee1804968cb4efc
-#: ../../../src/common/doc/utilities/get_column_name.rst:22
-msgid ""
-"``pgr_getColumnName`` — Retrieves the name of the column as is stored in the"
-" postgres administration tables."
-msgstr ""
-
-# 89a0f81382ca4dd4807320cd56be21bb
-#: ../../../src/common/doc/utilities/get_column_name.rst:24
-msgid "This function is intended for the developer’s aid."
-msgstr ""
-
-# a6025211521149deb893b8e059385c6b
-#: ../../../src/common/doc/utilities/get_column_name.rst:27
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# e6dc3534289949caa3eebca95dbe364e
-#: ../../../src/common/doc/utilities/get_column_name.rst:29
-msgid "Returns a ``text`` contining the registered name of the column."
-msgstr ""
-
-# ef6704e3345e4be4a51fd144fbfc5d82
-#: ../../../src/common/doc/utilities/get_column_name.rst:37
-msgid "Description"
-msgstr "Beschreibung"
-
-# de7acd82e1244d8ba20da3bae0d95f22
-#: ../../../src/common/doc/utilities/get_column_name.rst:39
-msgid "Parameters"
-msgstr "Parameter"
-
-# 0b9f663d5b0e4f18a4bda0b996e55470
-#: ../../../src/common/doc/utilities/get_column_name.rst:41
-msgid "``text`` table name with or without schema component."
-msgstr ""
-
-# 34e350e22e5a495aa831ca55d080899a
-#: ../../../src/common/doc/utilities/get_column_name.rst:42
-msgid "``text`` column name to be retrived."
-msgstr ""
-
-# e495d55a75424870ba29867eb248cf4d
-#: ../../../src/common/doc/utilities/get_column_name.rst:44
-msgid "Returns"
-msgstr ""
-
-# c1394725601143b081216fe27794fbe6
-#: ../../../src/common/doc/utilities/get_column_name.rst:46
-msgid "``text`` containing the registered name of the column."
-msgstr ""
-
-# ec0c3eb922f44a818f1724026f43c7da
-#: ../../../src/common/doc/utilities/get_column_name.rst:47
-msgid "``NULL`` when :"
-msgstr ""
-
-# d3cb598bdcdf4349837225c6e9efa756
-#: ../../../src/common/doc/utilities/get_column_name.rst:49
-msgid "The table “tab” is not found or"
-msgstr ""
-
-# 6d27bb1e405343a893db971fe1cee8b7
-#: ../../../src/common/doc/utilities/get_column_name.rst:50
-msgid ""
-"Column “col” is not found in table “tab” in the postgres administration "
-"tables."
-msgstr ""
-
-# f56b94dfc7574beba7ee2b42199e9c27
-#: ../../../src/common/doc/utilities/get_column_name.rst:53
-msgid "History"
-msgstr "Geschichte"
-
-# 57eede78e2024b059d7e09968747a720
-#: ../../../src/common/doc/utilities/get_column_name.rst:54
-msgid "New in version 2.0.0"
-msgstr "Neu in Version 2.0.0"
-
-# efbc409d37be4e30a8edf913a4d89664
-#: ../../../src/common/doc/utilities/get_column_name.rst:58
-msgid "Examples"
-msgstr "Beispiele"
-
-# 741d466c28fb47feb64d7ef7593275e7
-#: ../../../src/common/doc/utilities/get_column_name.rst:76
-msgid "The queries use the :ref:`sampledata` network."
-msgstr ""
-
-# acb3053630ab458d93853aa31aad9ade
-#: ../../../src/common/doc/utilities/get_column_name.rst:80
-msgid "See Also"
-msgstr "Siehe auch"
-
-# e54ecee9b6744650b79cb07b0c0274dd
-#: ../../../src/common/doc/utilities/get_column_name.rst:82
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-# 9143b02cdd264a818a9edda19a0e7ce7
-#: ../../../src/common/doc/utilities/get_column_name.rst:83
-msgid ""
-":ref:`pgr_is_column_in_table` to check only for the existance of the column."
-msgstr ""
-
-# 11630fb324eb4a80bdfffb972707478d
-#: ../../../src/common/doc/utilities/get_column_name.rst:84
-msgid ""
-":ref:`pgr_get_table_name` to retrieve the name of the table as is stored in "
-"the postgres administration tables."
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/get_table_name.po b/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/get_table_name.po
deleted file mode 100644
index aced45c..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/get_table_name.po
+++ /dev/null
@@ -1,151 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 06:20+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 95f0c2d0bb88448c8b72400e83c9f6f4
-#: ../../../src/common/doc/utilities/get_table_name.rst:13
-msgid "pgr_getTableName"
-msgstr ""
-
-# 68a49ae29d0e4036bda025f169e4f3f7
-#: ../../../src/common/doc/utilities/get_table_name.rst:20
-msgid "Name"
-msgstr "Name"
-
-# 8f9480f595c9426f945620d8b5977b86
-#: ../../../src/common/doc/utilities/get_table_name.rst:22
-msgid ""
-"``pgr_getTableName`` — Retrieves the name of the column as is stored in the "
-"postgres administration tables."
-msgstr ""
-
-# c06c3bd3649a4e27af6f710e189ea071
-#: ../../../src/common/doc/utilities/get_table_name.rst:24
-msgid "This function is intended for the developer’s aid."
-msgstr ""
-
-# 3285b01b587a4aac94ab9ee03a474ef7
-#: ../../../src/common/doc/utilities/get_table_name.rst:27
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# ecd7065df5e047ef8415f13acf653201
-#: ../../../src/common/doc/utilities/get_table_name.rst:29
-msgid ""
-"Returns a record containing the registered names of the table and of the "
-"schema it belongs to."
-msgstr ""
-
-# 9912cc30113340efa3e5e3ac408d3a3c
-#: ../../../src/common/doc/utilities/get_table_name.rst:37
-msgid "Description"
-msgstr "Beschreibung"
-
-# 787a57d13f8a48a289b545e5c5fc50d5
-#: ../../../src/common/doc/utilities/get_table_name.rst:39
-msgid "Parameters"
-msgstr "Parameter"
-
-# 3c523e72ddd74a10b3defc135e0a1fa1
-#: ../../../src/common/doc/utilities/get_table_name.rst:41
-msgid "``text`` table name with or without schema component."
-msgstr ""
-
-# bc51a86638e44b1b8d435a7fcec971e1
-#: ../../../src/common/doc/utilities/get_table_name.rst:43
-msgid "Returns"
-msgstr ""
-
-# a3da192f153341e484e7a1c973e77570
-#: ../../../src/common/doc/utilities/get_table_name.rst:47
-msgid "``text`` containing the registered name of the schema of table \"tab\"."
-msgstr ""
-
-# 77471087a83049e4924411216422cd8f
-#: ../../../src/common/doc/utilities/get_table_name.rst:49
-msgid "when the schema was not provided in \"tab\" the current schema is used."
-msgstr ""
-
-# f253b42e28a3413abcbeebd5a25fbb53
-# a25f490ebce344728e53d37057ded897
-#: ../../../src/common/doc/utilities/get_table_name.rst:51
-#: ../../../src/common/doc/utilities/get_table_name.rst:58
-msgid "``NULL`` when :"
-msgstr ""
-
-# ab062cff517a43b6b5a40e1090073265
-# 49a4ab8abced47adaf11ea7b321f06b9
-#: ../../../src/common/doc/utilities/get_table_name.rst:53
-#: ../../../src/common/doc/utilities/get_table_name.rst:60
-msgid "The schema is not found in the postgres administration tables."
-msgstr ""
-
-# 19d2a93e6d45419d89974c286d1347f3
-#: ../../../src/common/doc/utilities/get_table_name.rst:57
-msgid "``text`` containing the registered name of the table \"tab\"."
-msgstr ""
-
-# 7c7d80132bbc4693a79fbb1bb32a804d
-#: ../../../src/common/doc/utilities/get_table_name.rst:61
-msgid ""
-"The table \"tab\" is not registered under the schema ``sname`` in the "
-"postgres administration tables"
-msgstr ""
-
-# fe048e6d68984dfb9e8d91f72f99f65a
-#: ../../../src/common/doc/utilities/get_table_name.rst:65
-msgid "History"
-msgstr "Geschichte"
-
-# 0ac3887a0f0642ca8bf6c6fa12f497bb
-#: ../../../src/common/doc/utilities/get_table_name.rst:66
-msgid "New in version 2.0.0"
-msgstr "Neu in Version 2.0.0"
-
-# fbd75b0146ff4f9595156794c4ebd6fd
-#: ../../../src/common/doc/utilities/get_table_name.rst:70
-msgid "Examples"
-msgstr "Beispiele"
-
-# 3792394a3a344c4493db40c2d04b5e2d
-#: ../../../src/common/doc/utilities/get_table_name.rst:95
-msgid "The examples use the :ref:`sampledata` network."
-msgstr ""
-
-# 10229dc5fd6545bdb875c9885f090618
-#: ../../../src/common/doc/utilities/get_table_name.rst:99
-msgid "See Also"
-msgstr "Siehe auch"
-
-# c24e1b3593b44343b2e4c86e06b4cbb2
-#: ../../../src/common/doc/utilities/get_table_name.rst:101
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-# 830f93a843b145ebb35db5cf5de99e00
-#: ../../../src/common/doc/utilities/get_table_name.rst:102
-msgid ""
-":ref:`pgr_is_column_in_table` to check only for the existance of the column."
-msgstr ""
-
-# e731438ed94a48a0b26ea5223b564393
-#: ../../../src/common/doc/utilities/get_table_name.rst:103
-msgid ""
-":ref:`pgr_get_table_name` to retrieve the name of the table as is stored in "
-"the postgres administration tables."
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/index.po b/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/index.po
deleted file mode 100644
index 01a91b9..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/index.po
+++ /dev/null
@@ -1,90 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (187a022 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# Daniel Kastl, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-23 15:04\n"
-"PO-Revision-Date: 2013-09-23 20:14+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# e262455eaf304db884c939d3a27905d7
-#: ../../../src/common/doc/utilities/index.rst:13
-msgid "Developers's Functions"
-msgstr "Funktionen für Entwickler"
-
-# 6ebf2b3b104d4fababace44710277924
-#: ../../../src/common/doc/utilities/index.rst:15
-msgid "Functions to help you develop a wrapper or a recipe"
-msgstr ""
-
-# 0be37c4f2fa144fbb3b4a976a946317a
-#: ../../../src/common/doc/utilities/index.rst:17
-msgid ""
-":ref:`pgr_get_column_name` - to get the name of the column as is stored in "
-"the postgres administration tables."
-msgstr ""
-
-# 9f513d4551d54509ac679e98aff1a731
-#: ../../../src/common/doc/utilities/index.rst:18
-msgid ""
-":ref:`pgr_get_table_name` - to retrieve the name of the table as is stored "
-"in the postgres administration tables."
-msgstr ""
-
-# 20e81f559b1f4f56af56463e06b47d70
-#: ../../../src/common/doc/utilities/index.rst:19
-msgid ":ref:`pgr_is_column_indexed` - to check if the column is indexed."
-msgstr ""
-
-# d82d4278e4b14798898589b62a07a6fd
-#: ../../../src/common/doc/utilities/index.rst:20
-msgid ""
-":ref:`pgr_is_column_in_table` - to check only for the existance of the "
-"column."
-msgstr ""
-
-# 166c0d8f61a54958932722413c5c1a96
-#: ../../../src/common/doc/utilities/index.rst:21
-msgid ""
-":ref:`pgr_point_to_id` -to insert/get the id of the inserted point in a "
-"vertices table."
-msgstr ""
-
-# 81426148e40b4e9fa21b940bb818b523
-#: ../../../src/common/doc/utilities/index.rst:22
-msgid ""
-":ref:`pgr_quote_ident` - to quotes the input text to be used as an "
-"identifier in an SQL statement string."
-msgstr ""
-
-# d41e3a55240246999890d539bc866a4f
-#: ../../../src/common/doc/utilities/index.rst:23
-msgid ":ref:`pgr_version` - to get pgRouting's version information."
-msgstr ""
-
-# 3d10df2242a348afb70157ab2869b42e
-#: ../../../src/common/doc/utilities/index.rst:24
-msgid ":ref:`pgr_versionless` - to compare two version numbers."
-msgstr ""
-
-# 86e6bdd38ba14caeaee7bfeb51f3f7a5
-#: ../../../src/common/doc/utilities/index.rst:25
-msgid ""
-":ref:`pgr_start_point` - to get the start point of a (multi)linestring."
-msgstr ""
-
-# 46480bc0b18a481e99a6913018d07218
-#: ../../../src/common/doc/utilities/index.rst:26
-msgid ":ref:`pgr_end_point` - to get the end point of a (multi)linestring."
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/is_column_in_table.po b/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/is_column_in_table.po
deleted file mode 100644
index fd1d7a1..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/is_column_in_table.po
+++ /dev/null
@@ -1,137 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 05:50+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# f6500f30614b461f90b682890f3c3192
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:13
-msgid "pgr_isColumnInTable"
-msgstr ""
-
-# 7a4ec9b1b3514801a079916c0000371b
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:20
-msgid "Name"
-msgstr "Name"
-
-# 90dd01a206e24dbf9f73f90924c0615b
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:22
-msgid "``pgr_isColumnInTable`` — Check if a column is in the table."
-msgstr ""
-
-# 0d927909521c4f638c543baff8ebd318
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:24
-msgid "This function is intended for the developer’s aid."
-msgstr ""
-
-# b52fa51d192444e0a61674ede982a3e5
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:27
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# ea409e6a176b489aa7f326229d178d13
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:29
-msgid "Returns ``true`` when the column “col” is in table “tab”."
-msgstr ""
-
-# f5b2b429515a474892b7bddaebd7fa87
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:37
-msgid "Description"
-msgstr "Beschreibung"
-
-# a513395f631244f18df21c3b85ea7820
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:39
-msgid "``text`` Table name with or without schema component."
-msgstr ""
-
-# df577648959b4e0daab9d343543d3501
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:40
-msgid "``text`` Column name to be checked for."
-msgstr ""
-
-# faa09fc52bc54a0f9fe811ff099aa562
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:42
-msgid "Returns:"
-msgstr ""
-
-# 67ed5e9b40764fa1be45f8936680f526
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:44
-msgid "``true`` when the column “col” is in table “tab”."
-msgstr ""
-
-# fc38c243b9154c03833b5c9acd63804e
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:45
-msgid "``false`` when:"
-msgstr ""
-
-# fb6952dd480644c78db65cfbc109f967
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:47
-msgid "The table \"tab\" is not found or"
-msgstr ""
-
-# e701055cfb574ccd800767d4d4555d02
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:48
-msgid "Column “col” is not found in table “tab”"
-msgstr ""
-
-# be793f469b524522a2331a60fb6d7bac
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:51
-msgid "History"
-msgstr "Geschichte"
-
-# 03a9d21bed654a438312a5a6d45fcf17
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:52
-msgid "New in version 2.0.0"
-msgstr "Neu in Version 2.0.0"
-
-# 1691f75cb0674d2d83b0bebe24105a6d
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:56
-msgid "Examples"
-msgstr "Beispiele"
-
-# c8d317a25f554ec6b9af54b1f7ae6c26
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:76
-msgid "The example use the :ref:`sampledata` network."
-msgstr ""
-
-# 24c87607bf1b4b23bb01e403b16e856f
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:80
-msgid "See Also"
-msgstr "Siehe auch"
-
-# b3efbf8b34fd415bbfc31810cc19b9dc
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:82
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-# 53d890d3132e4c7d94e0675093e6c146
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:83
-msgid ":ref:`pgr_is_column_indexed` to check if the column is indexed."
-msgstr ""
-
-# 5324fa01310a4c509d7ce91c088865e9
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:84
-msgid ""
-":ref:`pgr_get_column_name` to get the name of the column as is stored in the"
-" postgres administration tables."
-msgstr ""
-
-# d97c057248844396aaa96cacbfcbc034
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:85
-msgid ""
-":ref:`pgr_get_table_name` to get the name of the table as is stored in the "
-"postgres administration tables."
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/is_column_indexed.po b/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/is_column_indexed.po
deleted file mode 100644
index 8b75736..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/is_column_indexed.po
+++ /dev/null
@@ -1,144 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 05:50+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# d13f67c428de40999845a53a259a0896
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:13
-msgid "pgr_isColumnIndexed"
-msgstr ""
-
-# 8c9da63e8a0e4da4aa092b82eced03c0
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:20
-msgid "Name"
-msgstr "Name"
-
-# cdfe958887b74d69a5d69a8c3b76f35d
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:22
-msgid "``pgr_isColumnIndexed`` — Check if a column in a table is indexed."
-msgstr ""
-
-# 16efc5cad4b0458aa30f27dcc834fb0b
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:24
-msgid "This function is intended for the developer’s aid."
-msgstr ""
-
-# 1611a88987e54ab8a15606f82d4c6098
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:27
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# 004725222faa47fd971e321be44816e6
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:29
-msgid "Returns ``true`` when the column “col” in table “tab” is indexed."
-msgstr ""
-
-# 3389fb7dd377428cbf442296f0032a6a
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:37
-msgid "Description"
-msgstr "Beschreibung"
-
-# cfb294e6535c4b0d91975ec3cb1c8985
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:39
-msgid "``text`` Table name with or without schema component."
-msgstr ""
-
-# 4cb8e78e50fb4ecbb15f141bb496040d
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:40
-msgid "``text`` Column name to be checked for."
-msgstr ""
-
-# a0f63aba19d0494b9cdcc5c7a61aebdb
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:42
-msgid "Returns:"
-msgstr ""
-
-# 66eed092853a47f9a7f69aa1fedbc666
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:44
-msgid "``true`` when the column “col” in table “tab” is indexed."
-msgstr ""
-
-# dbb567f94e994beaac90ea65cc8a324e
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:45
-msgid "``false`` when:"
-msgstr ""
-
-# f45a928140f24c299053e944f5550b7e
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:47
-msgid "The table \"tab\" is not found or"
-msgstr ""
-
-# c949dec2746e48459f93287f24a1334a
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:48
-msgid "Column “col” is not found in table “tab” or"
-msgstr ""
-
-# b2fd725d67df46b98d8ca3eddde9d1b5
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:49
-msgid "Column \"col\" in table \"tab\" is not indexed"
-msgstr ""
-
-# fe7b50380e1246599dd0b8abbac9a394
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:52
-msgid "History"
-msgstr "Geschichte"
-
-# 2949ff82708f44db903c9e175d8fd484
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:53
-msgid "New in version 2.0.0"
-msgstr "Neu in Version 2.0.0"
-
-# c19a7c36df38472bb330eafac37c34d3
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:57
-msgid "Examples"
-msgstr "Beispiele"
-
-# 9484e0bc1f1942da88f6261afd689f40
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:77
-msgid "The example use the :ref:`sampledata` network."
-msgstr ""
-
-# ba4b525f9ced43898aab4410c804208b
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:81
-msgid "See Also"
-msgstr "Siehe auch"
-
-# 76c91def69da43539042f05a15240e67
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:83
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-# 10267ea719b141b7a9e7712543121d34
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:84
-msgid ""
-":ref:`pgr_is_column_in_table` to check only for the existance of the column "
-"in the table."
-msgstr ""
-
-# 4e5e6df51cf149cd9e79ef3459273a4b
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:85
-msgid ""
-":ref:`pgr_get_column_name` to get the name of the column as is stored in the"
-" postgres administration tables."
-msgstr ""
-
-# 2cda9c32c4ec4117914b3e51f125c1df
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:86
-msgid ""
-":ref:`pgr_get_table_name` to get the name of the table as is stored in the "
-"postgres administration tables."
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/point_to_id.po b/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/point_to_id.po
deleted file mode 100644
index be69689..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/point_to_id.po
+++ /dev/null
@@ -1,144 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 06:20+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 94641dca24af4c0dba2fbeed97300d22
-#: ../../../src/common/doc/utilities/point_to_id.rst:13
-msgid "pgr_pointToId"
-msgstr ""
-
-# 56e635560a6d4492ae86100badf0e086
-#: ../../../src/common/doc/utilities/point_to_id.rst:20
-msgid "Name"
-msgstr "Name"
-
-# 81cc9d306cd54f46b4d517216a806eb7
-#: ../../../src/common/doc/utilities/point_to_id.rst:22
-msgid ""
-"``pgr_pointToId`` — Inserts a point into a vertices table and returns the "
-"corresponig id."
-msgstr ""
-
-# f6b714528cf7426dbeb9245b9719427c
-#: ../../../src/common/doc/utilities/point_to_id.rst:26
-msgid ""
-"This function is intended for the developer's aid. Use "
-":ref:`pgr_createTopology <pgr_create_topology>` or "
-":ref:`pgr_createVerticesTable <pgr_create_vert_table>` instead."
-msgstr ""
-
-# ba51b8bd879447188b15521bc44768c2
-#: ../../../src/common/doc/utilities/point_to_id.rst:30
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# 426a196654d64ba99aa86b9e3eb47996
-#: ../../../src/common/doc/utilities/point_to_id.rst:32
-msgid ""
-"This function returns the ``id`` of the row in the vertices table that "
-"corresponds to the ``point`` geometry"
-msgstr ""
-
-# ad82864ab2bc436bb940d9dbb4bb7e28
-#: ../../../src/common/doc/utilities/point_to_id.rst:40
-msgid "Description"
-msgstr "Beschreibung"
-
-# 6f0b7969c38c4b60a652b8c56e860cb5
-#: ../../../src/common/doc/utilities/point_to_id.rst:42
-msgid "``geometry`` \"POINT\" geometry to be inserted."
-msgstr ""
-
-# 972b42f5a56a456584ffe992d2c9f597
-#: ../../../src/common/doc/utilities/point_to_id.rst:43
-msgid ""
-"``float8`` Snapping tolerance of disconnected edges. (in projection unit)"
-msgstr ""
-
-# 8026350c7b7b4ab9bb8a4d01a5398e92
-#: ../../../src/common/doc/utilities/point_to_id.rst:44
-msgid "``text`` Vertices table name WITH schema included."
-msgstr ""
-
-# fdb31c3aac0442fd9a79fd2e3cec8567
-#: ../../../src/common/doc/utilities/point_to_id.rst:45
-msgid "``integer`` SRID of the geometry point."
-msgstr ""
-
-# 1cb7d86e4eb54c46b998f27b7d883269
-#: ../../../src/common/doc/utilities/point_to_id.rst:47
-msgid ""
-"This function returns the id of the row that corresponds to the ``point`` "
-"geometry"
-msgstr ""
-
-# 6444a2e3a1eb4ec1b9e456bd7d566ec3
-#: ../../../src/common/doc/utilities/point_to_id.rst:49
-msgid ""
-"When the ``point`` geometry already exists in the vertices table "
-"``vertname``, it returns the corresponing ``id``."
-msgstr ""
-
-# f348861666b446b8b94833b19fc43b3a
-#: ../../../src/common/doc/utilities/point_to_id.rst:50
-msgid ""
-"When the ``point`` geometry is not found in the vertices table ``vertname``,"
-" the funcion inserts the ``point`` and returns the corresponing ``id`` of "
-"the newly created vertex."
-msgstr ""
-
-# bbc93993a9494838bb777feb3c966b2b
-#: ../../../src/common/doc/utilities/point_to_id.rst:52
-msgid ""
-"The function do not perform any checking of the parameters. Any validation "
-"has to be done before calling this function."
-msgstr ""
-
-# feb893694fe44a30b39b6671d6603125
-#: ../../../src/common/doc/utilities/point_to_id.rst:55
-msgid "History"
-msgstr "Geschichte"
-
-# ac4bb20cbeeb49e8a95d92ca52981979
-#: ../../../src/common/doc/utilities/point_to_id.rst:56
-msgid "Renamed in version 2.0.0"
-msgstr "Umbenannt in Version 2.0.0"
-
-# f159557b0fd44238a8114795dbd499e6
-#: ../../../src/common/doc/utilities/point_to_id.rst:60
-msgid "See Also"
-msgstr "Siehe auch"
-
-# 44d7d6a102634aaab89b81a21117e3b4
-#: ../../../src/common/doc/utilities/point_to_id.rst:62
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-# 34d3f5b67bd04eef9a27bb0f9058f7a0
-#: ../../../src/common/doc/utilities/point_to_id.rst:63
-msgid ""
-":ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create a topology "
-"based on the geometry."
-msgstr ""
-
-# 6efeb93fdd6f461b95ba6fa218148c75
-#: ../../../src/common/doc/utilities/point_to_id.rst:64
-msgid ""
-":ref:`pgr_createTopology <pgr_create_topology>` to create a topology based "
-"on the geometry."
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/quote_ident.po b/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/quote_ident.po
deleted file mode 100644
index 743821e..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/quote_ident.po
+++ /dev/null
@@ -1,135 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 06:20+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# ad4f702fd7ab40f587534a31a99d703a
-#: ../../../src/common/doc/utilities/quote_ident.rst:13
-msgid "pgr_quote_ident"
-msgstr ""
-
-# a05a481e84424fde848925bc9df67822
-#: ../../../src/common/doc/utilities/quote_ident.rst:20
-msgid "Name"
-msgstr "Name"
-
-# 2c0d5a39de7d48a894991413895eeb1d
-#: ../../../src/common/doc/utilities/quote_ident.rst:22
-msgid ""
-"``pgr_quote_ident`` — Quotes the input text to be used as an identifier in "
-"an SQL statement string."
-msgstr ""
-
-# 81be5b43d83b4f259a8627fdbd918321
-#: ../../../src/common/doc/utilities/quote_ident.rst:24
-msgid "This function is intended for the developer's aid."
-msgstr ""
-
-# 9a208d9638b343d49e208a250552bf58
-#: ../../../src/common/doc/utilities/quote_ident.rst:28
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# 20357172c5b74450a1dd908f249e1c22
-#: ../../../src/common/doc/utilities/quote_ident.rst:30
-msgid ""
-"Returns the given identifier ``idname`` suitably quoted to be used as an "
-"identifier in an SQL statement string."
-msgstr ""
-
-# ec0d7e517b52424e83e0a39e700f6ded
-#: ../../../src/common/doc/utilities/quote_ident.rst:38
-msgid "Description"
-msgstr "Beschreibung"
-
-# 0333bd56b4d146478a759f9bec187900
-#: ../../../src/common/doc/utilities/quote_ident.rst:41
-msgid "Parameters"
-msgstr "Parameter"
-
-# 24fafacf2e084c8ebd35cc820529ddf1
-#: ../../../src/common/doc/utilities/quote_ident.rst:42
-msgid ""
-"``text`` Name of an SQL identifier. Can include ``.`` dot notation for "
-"schemas.table identifiers"
-msgstr ""
-
-# 43a32f6d513f42dda64a31f538a7cb0b
-#: ../../../src/common/doc/utilities/quote_ident.rst:44
-msgid ""
-"Returns the given string suitably quoted to be used as an identifier in an "
-"SQL statement string."
-msgstr ""
-
-# d4e0873a14da42f5b4ca3f89505e8335
-#: ../../../src/common/doc/utilities/quote_ident.rst:46
-msgid ""
-"When the identifier ``idname`` contains on or more ``.`` separators, each "
-"component is suitably quoted to be used in an SQL string."
-msgstr ""
-
-# 1842d74622194549bf87e0e37e8220c8
-#: ../../../src/common/doc/utilities/quote_ident.rst:50
-msgid "History"
-msgstr "Geschichte"
-
-# 3e97c734ccfc46efaedb156bfd028772
-#: ../../../src/common/doc/utilities/quote_ident.rst:51
-msgid "New in version 2.0.0"
-msgstr "Neu in Version 2.0.0"
-
-# 4c8ad273e78c414ca99c84a290acff83
-#: ../../../src/common/doc/utilities/quote_ident.rst:55
-msgid "Examples"
-msgstr "Beispiele"
-
-# c27e93edd7144c1986103e042e5b991c
-#: ../../../src/common/doc/utilities/quote_ident.rst:57
-msgid "Everything is lower case so nothing needs to be quoted."
-msgstr ""
-
-# 275c25d761794895a7a9474bd1622943
-#: ../../../src/common/doc/utilities/quote_ident.rst:76
-msgid "The column is upper case so its double quoted."
-msgstr ""
-
-# 7fc7d47e83624683a58343f8b5935b6f
-#: ../../../src/common/doc/utilities/quote_ident.rst:95
-msgid "The schema name has a capital letter so its double quoted."
-msgstr ""
-
-# 68aa84ac853546419c541739eee038e6
-#: ../../../src/common/doc/utilities/quote_ident.rst:106
-msgid "Ignores extra ``.`` separators."
-msgstr ""
-
-# 13976da7e76249c1bbbc10fb34130c59
-#: ../../../src/common/doc/utilities/quote_ident.rst:118
-msgid "See Also"
-msgstr "Siehe auch"
-
-# 9ca53a95db55462780e7fb68bba70aca
-#: ../../../src/common/doc/utilities/quote_ident.rst:120
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-# fb4b95d8a6d8403497a36238ed980b58
-#: ../../../src/common/doc/utilities/quote_ident.rst:121
-msgid ""
-":ref:`pgr_get_table_name` to get the name of the table as is stored in the "
-"postgres administration tables."
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/start_point.po b/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/start_point.po
deleted file mode 100644
index 8eb018f..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/start_point.po
+++ /dev/null
@@ -1,92 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 06:20+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# a24de4d0526742168dd2c7673d357cfe
-#: ../../../src/common/doc/utilities/start_point.rst:13
-msgid "pgr_startPoint"
-msgstr ""
-
-# 2878d80121d3453794e0871f34873592
-#: ../../../src/common/doc/utilities/start_point.rst:20
-msgid "Name"
-msgstr "Name"
-
-# ef267d5bd4dc444b9db70d9f4079f505
-#: ../../../src/common/doc/utilities/start_point.rst:22
-msgid ""
-"``pgr_startPoint`` — Returns a start point of a (multi)linestring geometry."
-msgstr ""
-
-# 57c55f6c23fd4dc59ad7f25a4a4e6f90
-#: ../../../src/common/doc/utilities/start_point.rst:24
-msgid "This function is intended for the developer's aid."
-msgstr ""
-
-# 7fb8df5ab251417bba38529aaefd457b
-#: ../../../src/common/doc/utilities/start_point.rst:28
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# 7becd53f47734fbe99a71ba8adef0d07
-# 9345f683e56b40dcb259f1ef2ea5e240
-#: ../../../src/common/doc/utilities/start_point.rst:30
-#: ../../../src/common/doc/utilities/start_point.rst:44
-msgid ""
-"Returns the geometry of the start point of the first LINESTRING of ``geom``."
-msgstr ""
-
-# f2295bc1e9ef4b08884c65ec18de9744
-#: ../../../src/common/doc/utilities/start_point.rst:38
-msgid "Description"
-msgstr "Beschreibung"
-
-# fef77a15910b4557bb253c868468c67a
-#: ../../../src/common/doc/utilities/start_point.rst:41
-msgid "Parameters"
-msgstr "Parameter"
-
-# c938ded08b8743bf9eac1b5d064e0ed0
-#: ../../../src/common/doc/utilities/start_point.rst:42
-msgid "``geometry`` Geometry of a MULTILINESTRING or LINESTRING."
-msgstr ""
-
-# 364eba92da1046889b073b64c9827bdf
-#: ../../../src/common/doc/utilities/start_point.rst:49
-msgid "History"
-msgstr "Geschichte"
-
-# 62c8d013ab68473c8adda6fbfaf564e9
-#: ../../../src/common/doc/utilities/start_point.rst:50
-msgid "New in version 2.0.0"
-msgstr "Neu in Version 2.0.0"
-
-# 8e8a05a8da734bb5961b296230e53bcb
-#: ../../../src/common/doc/utilities/start_point.rst:55
-msgid "See Also"
-msgstr "Siehe auch"
-
-# 6026c7e6914a49cab16a616dd0fb6bac
-#: ../../../src/common/doc/utilities/start_point.rst:57
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-# 5b0650667c4b470691f4647d5b73f783
-#: ../../../src/common/doc/utilities/start_point.rst:58
-msgid ":ref:`pgr_end_Point` to get the end point of a (multi)linestring."
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/version.po b/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/version.po
deleted file mode 100644
index 742c0b8..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/version.po
+++ /dev/null
@@ -1,113 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 05:50+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# cb10fa2694924ce19d909a3e1df513f1
-#: ../../../src/common/doc/utilities/version.rst:13
-msgid "pgr_version"
-msgstr ""
-
-# 135f514b10854445bd0cfa9f89f21f86
-#: ../../../src/common/doc/utilities/version.rst:20
-msgid "Name"
-msgstr "Name"
-
-# ee914323b4b6411ea5c157325bdfac90
-#: ../../../src/common/doc/utilities/version.rst:22
-msgid "``pgr_version`` — Query for pgRouting version information."
-msgstr ""
-
-# 301b5989ecef437b858e054c95827d83
-#: ../../../src/common/doc/utilities/version.rst:26
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# 607aa236b6134901a0871ed5bf518253
-#: ../../../src/common/doc/utilities/version.rst:28
-msgid "Returns a table with pgRouting version information."
-msgstr ""
-
-# 6190754a1b934ee586562b0995c07bc0
-#: ../../../src/common/doc/utilities/version.rst:36
-msgid "Description"
-msgstr "Beschreibung"
-
-# b85aeaeb021647e59321f2b6c9953333
-#: ../../../src/common/doc/utilities/version.rst:38
-msgid "Returns a table with:"
-msgstr ""
-
-# e5a458cace474e8babaaaff2837c160f
-#: ../../../src/common/doc/utilities/version.rst:40
-msgid "``varchar`` pgRouting version"
-msgstr ""
-
-# 7f02654b7c3641b5a35c56c47ea63022
-#: ../../../src/common/doc/utilities/version.rst:41
-msgid "``varchar`` Git tag of pgRouting build"
-msgstr ""
-
-# c50e77a54d3d4828a5ea0e89182d5f03
-#: ../../../src/common/doc/utilities/version.rst:42
-msgid "``varchar`` Git hash of pgRouting build"
-msgstr ""
-
-# ba32c01940164cfab6dec3df2cb565ed
-#: ../../../src/common/doc/utilities/version.rst:43
-msgid "``varchar`` Git branch of pgRouting build"
-msgstr ""
-
-# 135e588dcbe144db9a806d3c5b75b88c
-#: ../../../src/common/doc/utilities/version.rst:44
-msgid "``varchar`` Boost version"
-msgstr ""
-
-# 7e0b5fe0384f43648b6ca7dcdd703fd6
-#: ../../../src/common/doc/utilities/version.rst:48
-msgid "History"
-msgstr "Geschichte"
-
-# 3f8e572f137d472592f2abb0483e3153
-#: ../../../src/common/doc/utilities/version.rst:49
-msgid "New in version 2.0.0"
-msgstr "Neu in Version 2.0.0"
-
-# abdab1e6a00347269b027b2fedd31c15
-#: ../../../src/common/doc/utilities/version.rst:53
-msgid "Examples"
-msgstr "Beispiele"
-
-# 86be3ecef9da4b22b39cfe8fc3848b92
-#: ../../../src/common/doc/utilities/version.rst:55
-msgid "Query for full version string"
-msgstr ""
-
-# 85c014398a004db5bb9cf5afa9515f32
-#: ../../../src/common/doc/utilities/version.rst:67
-msgid "Query for ``version`` and ``boost`` attribute"
-msgstr ""
-
-# e3b6b7e66a8e4b8698f253e26126b8af
-#: ../../../src/common/doc/utilities/version.rst:80
-msgid "See Also"
-msgstr "Siehe auch"
-
-# 73744f59f3494c4e827095b7f6ca9503
-#: ../../../src/common/doc/utilities/version.rst:82
-msgid ":ref:`pgr_versionless` to compare two version numbers"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/versionless.po b/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/versionless.po
deleted file mode 100644
index e38cd7c..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/common/doc/utilities/versionless.po
+++ /dev/null
@@ -1,95 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 05:50+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 5209a60f43eb4ca889765b2f2855917f
-#: ../../../src/common/doc/utilities/versionless.rst:13
-msgid "pgr_versionless"
-msgstr ""
-
-# cf214511459c4e01a98c636ee93edf10
-#: ../../../src/common/doc/utilities/versionless.rst:20
-msgid "Name"
-msgstr "Name"
-
-# af9f449a91a94497a1a06310c12763cc
-#: ../../../src/common/doc/utilities/versionless.rst:22
-msgid "``pgr_versionless`` — Compare two version numbers."
-msgstr ""
-
-# cfa4ec4da8d143e9bb4f33521dc1f6b2
-#: ../../../src/common/doc/utilities/versionless.rst:24
-msgid "This function is intended for the developer’s aid."
-msgstr ""
-
-# 7a40ac52554840c48edaf4e3bc893f86
-#: ../../../src/common/doc/utilities/versionless.rst:27
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# 99a72026827e4e44b1b7e0b9defa52f8
-#: ../../../src/common/doc/utilities/versionless.rst:29
-msgid ""
-"Returns ``true`` if the first version number is smaller than the second "
-"version number. Otherwise returns ``false``."
-msgstr ""
-
-# b541ba956f94407fbbfa4f325152d137
-#: ../../../src/common/doc/utilities/versionless.rst:37
-msgid "Description"
-msgstr "Beschreibung"
-
-# f2b9c579402a4d529bdcf44885b7999e
-#: ../../../src/common/doc/utilities/versionless.rst:39
-msgid "``text`` first version number"
-msgstr ""
-
-# ff2f3530055d46b39b083a6e013b18f1
-#: ../../../src/common/doc/utilities/versionless.rst:40
-msgid "``text`` second version number"
-msgstr ""
-
-# aa0e1cf348454207aba6b1bd4d82ddcd
-#: ../../../src/common/doc/utilities/versionless.rst:44
-msgid "History"
-msgstr "Geschichte"
-
-# 84d6600a81814c3b87c5e309a80eef62
-#: ../../../src/common/doc/utilities/versionless.rst:45
-msgid "New in version 2.0.0"
-msgstr "Neu in Version 2.0.0"
-
-# 0dbed91f114f41a2a1ccbffbb4886a47
-#: ../../../src/common/doc/utilities/versionless.rst:49
-msgid "Examples"
-msgstr "Beispiele"
-
-# cd2ca34fb88c4024ac73c6c7076b3de2
-#: ../../../src/common/doc/utilities/versionless.rst:62
-msgid "See Also"
-msgstr "Siehe auch"
-
-# ac8a4a1b5fd0499e910d1f9c088d0d25
-#: ../../../src/common/doc/utilities/versionless.rst:64
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-# f733092d16de4d7b9bdf31b6bdae27d3
-#: ../../../src/common/doc/utilities/versionless.rst:65
-msgid ":ref:`pgr_version` to get the current version of pgRouting."
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/dijkstra/doc/index.po b/doc/i18n/de/LC_MESSAGES/src/dijkstra/doc/index.po
deleted file mode 100644
index 9e3b136..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/dijkstra/doc/index.po
+++ /dev/null
@@ -1,182 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 06:20+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# a6876a00bcae42fdb134f789dabd19d7
-#: ../../../src/dijkstra/doc/index.rst:13
-msgid "pgr_dijkstra - Shortest Path Dijkstra"
-msgstr ""
-
-# 5ba32c2871ea4858b8bfd351b4a01f34
-#: ../../../src/dijkstra/doc/index.rst:20
-msgid "Name"
-msgstr "Name"
-
-# eb4931f6253f4daea164710031c062f7
-#: ../../../src/dijkstra/doc/index.rst:22
-msgid "``pgr_dijkstra`` — Returns the shortest path using Dijkstra algorithm."
-msgstr ""
-
-# aad22c43d6da4f658543ad79e2b4789c
-#: ../../../src/dijkstra/doc/index.rst:26
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# d23c857c49554c10a6c99810575627e1
-#: ../../../src/dijkstra/doc/index.rst:28
-msgid ""
-"Dijkstra's algorithm, conceived by Dutch computer scientist Edsger Dijkstra "
-"in 1956. It is a graph search algorithm that solves the single-source "
-"shortest path problem for a graph with non-negative edge path costs, "
-"producing a shortest path tree. Returns a set of :ref:`pgr_costResult "
-"<type_cost_result>` (seq, id1, id2, cost) rows, that make up a path."
-msgstr ""
-
-# 9b3ef7764a8a4aec8be3fd97d0f78855
-#: ../../../src/dijkstra/doc/index.rst:37
-msgid "Description"
-msgstr "Beschreibung"
-
-# 8f12864ae55a48e6a49e9a5c7f232731
-#: ../../../src/dijkstra/doc/index.rst:39
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr ""
-
-# 883dbba5f5b94668af12a1c3d280804f
-#: ../../../src/dijkstra/doc/index.rst:46
-msgid "``int4`` identifier of the edge"
-msgstr ""
-
-# 64eaa5363cc64362829f60de0f81517d
-#: ../../../src/dijkstra/doc/index.rst:47
-msgid "``int4`` identifier of the source vertex"
-msgstr ""
-
-# 849ed774dfa442cf86f3d184c820a717
-#: ../../../src/dijkstra/doc/index.rst:48
-msgid "``int4`` identifier of the target vertex"
-msgstr ""
-
-# 2c000dd6564240d09f3533f4b2411029
-#: ../../../src/dijkstra/doc/index.rst:49
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr ""
-
-# 13bbd212a94840bbbdd82ba008836790
-#: ../../../src/dijkstra/doc/index.rst:50
-msgid ""
-"``float8`` (optional) the cost for the reverse traversal of the edge. This "
-"is only used when the ``directed`` and ``has_rcost`` parameters are ``true``"
-" (see the above remark about negative costs)."
-msgstr ""
-
-# 42be1660a80b461ba4e56f070cde4c04
-#: ../../../src/dijkstra/doc/index.rst:52
-msgid "``int4`` id of the start point"
-msgstr ""
-
-# 95547c9e5de74556a208d7c0a9e58772
-#: ../../../src/dijkstra/doc/index.rst:53
-msgid "``int4`` id of the end point"
-msgstr ""
-
-# 89e9934bdbfd42aabf98993066529f92
-#: ../../../src/dijkstra/doc/index.rst:54
-msgid "``true`` if the graph is directed"
-msgstr ""
-
-# 03f039cd5de34a3f99a5871456ed269f
-#: ../../../src/dijkstra/doc/index.rst:55
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr ""
-
-# 2c03ff621dfb4e11a0f215844b6cd41c
-#: ../../../src/dijkstra/doc/index.rst:57
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr ""
-
-# f43f68991432480385556098be3f32ab
-#: ../../../src/dijkstra/doc/index.rst:59
-msgid "row sequence"
-msgstr ""
-
-# b5cd0a7c7e1943e2934f2d315fd0d58d
-#: ../../../src/dijkstra/doc/index.rst:60
-msgid "node ID"
-msgstr ""
-
-# ae466d86ce304295afc5b1f956c97732
-#: ../../../src/dijkstra/doc/index.rst:61
-msgid "edge ID (``-1`` for the last row)"
-msgstr ""
-
-# d74ec405ac62479a93ddd9070e1cfead
-#: ../../../src/dijkstra/doc/index.rst:62
-msgid "cost to traverse from ``id1`` using ``id2``"
-msgstr ""
-
-# d45859a53252493eaea97bdbe6c8936f
-#: ../../../src/dijkstra/doc/index.rst:66
-msgid "History"
-msgstr "Geschichte"
-
-# 41349c9ad4574d009aa7375219beab0c
-#: ../../../src/dijkstra/doc/index.rst:67
-msgid "Renamed in version 2.0.0"
-msgstr "Umbenannt in Version 2.0.0"
-
-# d1ebc8bc726844eab5795b5dedc18fe0
-#: ../../../src/dijkstra/doc/index.rst:71
-msgid "Examples"
-msgstr "Beispiele"
-
-# 5ea59cfbc4b240c29bc8268d4a36cdb4
-#: ../../../src/dijkstra/doc/index.rst:73
-msgid "Without ``reverse_cost``"
-msgstr ""
-
-# a37bcf6c164b442ca94ded3b2df83f61
-#: ../../../src/dijkstra/doc/index.rst:92
-msgid "With ``reverse_cost``"
-msgstr ""
-
-# 1013877e3d214e6f8d87c5747e261b20
-#: ../../../src/dijkstra/doc/index.rst:110
-msgid "The queries use the :ref:`sampledata` network."
-msgstr ""
-
-# 7097292ec353427d90c60607583c42c2
-#: ../../../src/dijkstra/doc/index.rst:114
-msgid "See Also"
-msgstr "Siehe auch"
-
-# d98cbcb325484a81bcb0e6b0afd3928c
-#: ../../../src/dijkstra/doc/index.rst:116
-msgid ":ref:`type_cost_result`"
-msgstr ""
-
-# cc938bae0828409fb0efae9ad098fa4d
-#: ../../../src/dijkstra/doc/index.rst:117
-msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/driving_distance/doc/dd_alphashape.po b/doc/i18n/de/LC_MESSAGES/src/driving_distance/doc/dd_alphashape.po
deleted file mode 100644
index 18caede..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/driving_distance/doc/dd_alphashape.po
+++ /dev/null
@@ -1,141 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 06:20+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# cb2e05bbf556427191f8dd5d87c670db
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:13
-msgid "pgr_alphaShape"
-msgstr ""
-
-# cd5cca6682b34a85b72fd0b7c90d739b
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:20
-msgid "Name"
-msgstr "Name"
-
-# 9a0ca65720774711aefd2d017e4487e9
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:22
-msgid "``pgr_alphashape`` — Core function for alpha shape computation."
-msgstr ""
-
-# 525edb2bc28a4e77804ac30781cc3dc5
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:26
-msgid ""
-"This function should not be used directly. Use :ref:`pgr_drivingDistance "
-"<pgr_driving_distance>` instead."
-msgstr ""
-
-# 96d2ea88d3bf44a793219826f7fddda3
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:30
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# 4b5074bd7bc64d1c89dcc1e5b250c5f0
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:32
-msgid ""
-"Returns a table with (x, y) rows that describe the vertices of an alpha "
-"shape."
-msgstr ""
-
-# eed5f82ec9924367b7a2c7ce8ce7704a
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:40
-msgid "Description"
-msgstr "Beschreibung"
-
-# 3607e16f8fe24de6a2226bb43a73dadd
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:42
-msgid ""
-"``text`` a SQL query, which should return a set of rows with the following "
-"columns:"
-msgstr ""
-
-# afd24b1ef69d439691025ff955e63f25
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:48
-msgid "``int4`` identifier of the vertex"
-msgstr ""
-
-# c4ec83f59d634b458e6e04dc6822cc62
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:49
-msgid "``float8`` x-coordinate"
-msgstr ""
-
-# c78115c69ec645ceb3a8de6f3a97ebdc
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:50
-msgid "``float8`` y-coordinate"
-msgstr ""
-
-# 63cffe47a71d462cae8c09a10473bdaf
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:53
-msgid "Returns a vertex record for each row :"
-msgstr ""
-
-# 385ec313cc69493989a17eecd282d5b4
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:55
-msgid "x-coordinate"
-msgstr ""
-
-# 2eb9452ee2864540b535c7be538a73f0
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:56
-msgid "y-coordinate"
-msgstr ""
-
-# bf1e04aab9ed4558aeb274dbc93fc476
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:60
-msgid "History"
-msgstr "Geschichte"
-
-# 6301d43186dc47ca9c0925f563c2b4ee
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:61
-msgid "Renamed in version 2.0.0"
-msgstr "Umbenannt in Version 2.0.0"
-
-# 2dcc599a683743b09eb440895c823584
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:65
-msgid "Examples"
-msgstr "Beispiele"
-
-# 28059fce0d66461c88851c2efa8995b4
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:66
-msgid ""
-"In the alpha shape code we have no way to control the order of the points so"
-" the actual output you might get could be similar but different. The simple "
-"query is followed by a more complex one that constructs a polygon and "
-"computes the areas of it. This should be the same as the result on your "
-"system. We leave the details of the complex query to the reader as an "
-"exercise if they wish to decompose it into understandable pieces or to just "
-"copy and paste it into a SQL window to run."
-msgstr ""
-
-# cea925c912c14e2bae7b67a9493f67d0
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:119
-msgid "The queries use the :ref:`sampledata` network."
-msgstr ""
-
-# b737b880282d447b840b23e77501d03b
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:123
-msgid "See Also"
-msgstr "Siehe auch"
-
-# 79772e0e113745068a7c48d32ae903ee
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:125
-msgid ":ref:`pgr_driving_distance` - Driving Distance"
-msgstr ""
-
-# 98ad4c5291f04893a9e5a6f616ce2d11
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:126
-msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/driving_distance/doc/dd_driving_distance.po b/doc/i18n/de/LC_MESSAGES/src/driving_distance/doc/dd_driving_distance.po
deleted file mode 100644
index a4cba84..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/driving_distance/doc/dd_driving_distance.po
+++ /dev/null
@@ -1,199 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 06:20+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 49d83b442baa4f9981fa13ff4abc3c6b
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:13
-msgid "pgr_drivingDistance"
-msgstr ""
-
-# ce7edabbdab546a3a318f86316d0abc6
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:20
-msgid "Name"
-msgstr "Name"
-
-# 7a89c6c2c0ca404eb82afe9d6de38db2
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:22
-msgid ""
-"``pgr_drivingDistance`` - Returns the driving distance from a start node."
-msgstr ""
-
-# 5afa2748d4964e35b9cfcf71ba431015
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:26
-msgid ""
-"Requires :ref:`to build pgRouting <build>` with support for Driving "
-"Distance."
-msgstr ""
-
-# 91fbeb2cd46146c4bb9f86b8600faa87
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:30
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# cffb1438aa5d43d8b1792ec1d53769ae
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:32
-msgid ""
-"This function computes a Dijkstra shortest path solution them extracts the "
-"cost to get to each node in the network from the starting node. Using these "
-"nodes and costs it is possible to compute constant drive time polygons. "
-"Returns a set of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, "
-"cost) rows, that make up a list of accessible points."
-msgstr ""
-
-# b2253b753da44597b1d449509c96ca75
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:41
-msgid "Description"
-msgstr "Beschreibung"
-
-# f187f52a62034b2cae8bb00b570bea15
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:43
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr ""
-
-# 85949c2cc0334abbbb500996221eeba0
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:50
-msgid "``int4`` identifier of the edge"
-msgstr ""
-
-# 35a904f5f23643b7a6e7e457b8f05846
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:51
-msgid "``int4`` identifier of the source vertex"
-msgstr ""
-
-# 815615381d8d43989567cc15d154736a
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:52
-msgid "``int4`` identifier of the target vertex"
-msgstr ""
-
-# 5c9e142543534a0bbc7668603ad465b4
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:53
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr ""
-
-# fa3ca524dbe24d47891420e71caa324c
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:54
-msgid ""
-"(optional) the cost for the reverse traversal of the edge. This is only used"
-" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
-"above remark about negative costs)."
-msgstr ""
-
-# c9e1f4debc904118ab177e2b4427d364
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:56
-msgid "``int4`` id of the start point"
-msgstr ""
-
-# 2da59a7b4e0b4b6fbac510bfe0adbd1e
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:57
-msgid ""
-"``float8`` value in edge cost units (not in projection units - they might be"
-" different)."
-msgstr ""
-
-# b09a53cf12bd49a09659eb105e2e7d2a
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:58
-msgid "``true`` if the graph is directed"
-msgstr ""
-
-# e771178ac5514ae6bc7cf3dcccfe5408
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:59
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr ""
-
-# 5770f80a74ec49cf8f9e11b9fd082533
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:61
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr ""
-
-# ed0dbd0e73234b70827a7663d390886d
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:63
-msgid "row sequence"
-msgstr ""
-
-# dc9caee8fdc84c45bb1ebf3c046a436d
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:64
-msgid "node ID"
-msgstr ""
-
-# ae36b60db435425b8a4bfa4ada217dd7
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:65
-msgid "edge ID (this is probably not a useful item)"
-msgstr ""
-
-# ee9063c6bb49444e94e08af7eedbb401
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:66
-msgid "cost to get to this node ID"
-msgstr ""
-
-# 3bb717c83f2d4993a4b1704a88749ee9
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:70
-msgid ""
-"You must reconnect to the database after ``CREATE EXTENSION pgrouting``. "
-"Otherwise the function will return ``Error computing path: std::bad_alloc``."
-msgstr ""
-
-# 306f0588bb5148dab4d4a97e5bb35889
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:74
-msgid "History"
-msgstr "Geschichte"
-
-# cc8f5e8248314554bd506fc27f7208ed
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:75
-msgid "Renamed in version 2.0.0"
-msgstr "Umbenannt in Version 2.0.0"
-
-# 9db1973c0a0b4420afe780fa3d4b3d0f
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:79
-msgid "Examples"
-msgstr "Beispiele"
-
-# 3f34e359dbd242b6a82b49b0beb2acd5
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:81
-msgid "Without ``reverse_cost``"
-msgstr ""
-
-# f58a8bec8b9447f59bf31eb2d52c7782
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:101
-msgid "With ``reverse_cost``"
-msgstr ""
-
-# f6d9ddd77a7c48dcaafa2cd1225d8e27
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:121
-msgid "The queries use the :ref:`sampledata` network."
-msgstr ""
-
-# 15ad7ce30a424139b00e9874b4461215
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:125
-msgid "See Also"
-msgstr "Siehe auch"
-
-# 04113586118441f6b13f5bf83f5fa224
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:127
-msgid ":ref:`pgr_alphashape` - Alpha shape computation"
-msgstr ""
-
-# b474eeeca7284f5f983f498713f1640f
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:128
-msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/driving_distance/doc/dd_points_as_polygon.po b/doc/i18n/de/LC_MESSAGES/src/driving_distance/doc/dd_points_as_polygon.po
deleted file mode 100644
index 14dda01..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/driving_distance/doc/dd_points_as_polygon.po
+++ /dev/null
@@ -1,122 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 06:20+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# a2329478f830474e9819c418ae391538
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:13
-msgid "pgr_pointsAsPolygon"
-msgstr ""
-
-# df6c5bd4620d47ae9f8682195aca1e18
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:20
-msgid "Name"
-msgstr "Name"
-
-# 968dbf3147554bcc994e903e5917a0bd
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:22
-msgid ""
-"``pgr_pointsAsPolygon`` — Draws an alpha shape around given set of points."
-msgstr ""
-
-# 0b81c4a0e03d47938cd256882a6facac
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:26
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# 568b6a3cf23a4a7980b7796df73d334b
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:28
-msgid "Returns the alpha shape as polygon geometry."
-msgstr ""
-
-# 240f6c0c9ac848a2b1815408c264a3d7
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:36
-msgid "Description"
-msgstr "Beschreibung"
-
-# bfa10edae1114295852086c42f84d811
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:38
-msgid ""
-"``text`` a SQL query, which should return a set of rows with the following "
-"columns:"
-msgstr ""
-
-# d3ca4ae81d3e4a709a2fda2d60f23946
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:44
-msgid "``int4`` identifier of the vertex"
-msgstr ""
-
-# 10e342dfa5274ea89ea284bd657b2469
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:45
-msgid "``float8`` x-coordinate"
-msgstr ""
-
-# d36090e578224b30b065a3c28f26d565
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:46
-msgid "``float8`` y-coordinate"
-msgstr ""
-
-# 1029622f3ac34a30abc0f3babfe7118f
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:49
-msgid "Returns a polygon geometry."
-msgstr ""
-
-# 49392543fb984b5f922e683b9ba560c5
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:53
-msgid "History"
-msgstr "Geschichte"
-
-# b00e0e03870244cca7aa9e1c81bad9c1
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:54
-msgid "Renamed in version 2.0.0"
-msgstr "Umbenannt in Version 2.0.0"
-
-# f8001d60b6d54b67afc641f38b8e5b4a
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:58
-msgid "Examples"
-msgstr "Beispiele"
-
-# 7e01fc6f880549e7b7bde01255cc2811
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:59
-msgid ""
-"In the following query there is not way to control which point in the "
-"polygon is the first in the list, so you may get similar but different "
-"results than the following which are also correct. Each of the "
-"pgr_pointsAsPolygon queries below is followed by one the compute the area of"
-" the polygon. This area should remain constant regardles of the order of the"
-" points making up the polygon."
-msgstr ""
-
-# 1deae2c2bb624110980cf832e66993d9
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:93
-msgid "The queries use the :ref:`sampledata` network."
-msgstr ""
-
-# 801871cf3dd94fd292387e49941223e3
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:97
-msgid "See Also"
-msgstr "Siehe auch"
-
-# abc4c217086645fe88ff21568ab13c50
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:99
-msgid ":ref:`pgr_driving_distance` - Driving Distance"
-msgstr ""
-
-# 51bae94aaf75403a81353100c953d805
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:100
-msgid ":ref:`pgr_alphashape` - Alpha shape computation"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/driving_distance/doc/index.po b/doc/i18n/de/LC_MESSAGES/src/driving_distance/doc/index.po
deleted file mode 100644
index 35239f5..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/driving_distance/doc/index.po
+++ /dev/null
@@ -1,199 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-04 04:22+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 0979e1fbbc9641b5ade79d4c28a2473a
-#: ../../../src/driving_distance/doc/index.rst:13
-msgid "pgr_drivingDistance - Driving Distance"
-msgstr ""
-
-# 7b3011e2af744bfdb31fc2960aaa4664
-#: ../../../src/driving_distance/doc/index.rst:20
-msgid "Name"
-msgstr "Name"
-
-# 3c08eb6932d34c2ca49bd0889566e8e3
-#: ../../../src/driving_distance/doc/index.rst:22
-msgid ""
-"``pgr_drivingDistance`` - Returns the driving distance from a start node."
-msgstr ""
-
-# 726c1fdc95044e52b22d50c0f0b766fb
-#: ../../../src/driving_distance/doc/index.rst:26
-msgid ""
-"Requires :ref:`to build pgRouting <build>` with support for Driving "
-"Distance."
-msgstr ""
-
-# ce1ce7f3f6c9425ab9c4a1aae81baeb3
-#: ../../../src/driving_distance/doc/index.rst:30
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# 12a9eb19a15e4f42acd14d76a3847c02
-#: ../../../src/driving_distance/doc/index.rst:32
-msgid ""
-"This function computes a Dijkstra shortest path solution them extracts the "
-"cost to get to each node in the network from the starting node. Using these "
-"nodes and costs it is possible to compute constant drive time polygons. "
-"Returns a set of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, "
-"cost) rows, that make up a list of accessible points."
-msgstr ""
-
-# df9cee3f069447debee18ff47cce02f8
-#: ../../../src/driving_distance/doc/index.rst:41
-msgid "Description"
-msgstr "Beschreibung"
-
-# fda5e314fd1b46c6a96ad0b8a241ae12
-#: ../../../src/driving_distance/doc/index.rst:43
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr ""
-
-# 9621e3c82e434709bfcb9df2a0febdee
-#: ../../../src/driving_distance/doc/index.rst:50
-msgid "``int4`` identifier of the edge"
-msgstr ""
-
-# b0b6976ee3d3495ca2e27a1359c6b07c
-#: ../../../src/driving_distance/doc/index.rst:51
-msgid "``int4`` identifier of the source vertex"
-msgstr ""
-
-# fec5e9d5cb5e438ea2c5f0feecd1aa03
-#: ../../../src/driving_distance/doc/index.rst:52
-msgid "``int4`` identifier of the target vertex"
-msgstr ""
-
-# ec8176b8c36e447ebd1f0995dadd973d
-#: ../../../src/driving_distance/doc/index.rst:53
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr ""
-
-# 9c3f6ea025a84d0a8ac13358a10ed166
-#: ../../../src/driving_distance/doc/index.rst:54
-msgid ""
-"(optional) the cost for the reverse traversal of the edge. This is only used"
-" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
-"above remark about negative costs)."
-msgstr ""
-
-# 32fef696ffaf450fb041bf2ebc1fc270
-#: ../../../src/driving_distance/doc/index.rst:56
-msgid "``int4`` id of the start point"
-msgstr ""
-
-# 420175e68aac485f86544b6aa6cae550
-#: ../../../src/driving_distance/doc/index.rst:57
-msgid ""
-"``float8`` value in edge cost units (not in projection units - they might be"
-" different)."
-msgstr ""
-
-# a7f57fdcfe0544e69a4cde06a7344fb6
-#: ../../../src/driving_distance/doc/index.rst:58
-msgid "``true`` if the graph is directed"
-msgstr ""
-
-# d72d8b646a964dea88cd97d711c69e94
-#: ../../../src/driving_distance/doc/index.rst:59
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr ""
-
-# ef1631b756b54c3aa2b66ae0abfad917
-#: ../../../src/driving_distance/doc/index.rst:61
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr ""
-
-# e440be6d227945fa904c13d07855a863
-#: ../../../src/driving_distance/doc/index.rst:63
-msgid "row sequence"
-msgstr ""
-
-# bfe1245d3dde49048c4e9bf715508e92
-#: ../../../src/driving_distance/doc/index.rst:64
-msgid "node ID"
-msgstr ""
-
-# 401535e148ae4023aefb138c6f8ff762
-#: ../../../src/driving_distance/doc/index.rst:65
-msgid "edge ID (this is probably not a useful item)"
-msgstr ""
-
-# 3a2b1d8c38434024b2edd02add5bb1fc
-#: ../../../src/driving_distance/doc/index.rst:66
-msgid "cost to get to this node ID"
-msgstr ""
-
-# 1d8dc027684e453f9a61e3e3f12ee255
-#: ../../../src/driving_distance/doc/index.rst:70
-msgid ""
-"You must reconnect to the database after ``CREATE EXTENSION pgrouting``. "
-"Otherwise the function will return ``Error computing path: std::bad_alloc``."
-msgstr ""
-
-# a61d60a110d54bc0a6930cab19c3ce24
-#: ../../../src/driving_distance/doc/index.rst:74
-msgid "History"
-msgstr "Geschichte"
-
-# f2e8e48820a54015ab1b6a85136df5f0
-#: ../../../src/driving_distance/doc/index.rst:75
-msgid "Renamed in version 2.0.0"
-msgstr ""
-
-# 817cc13bb697434e9f0803ed3f365934
-#: ../../../src/driving_distance/doc/index.rst:79
-msgid "Examples"
-msgstr "Beispiele"
-
-# 82aec7db1ea043b28641f4963d13763b
-#: ../../../src/driving_distance/doc/index.rst:81
-msgid "Without ``reverse_cost``"
-msgstr ""
-
-# ac2a8b6a32a24b6095a9fb31fce4ebe0
-#: ../../../src/driving_distance/doc/index.rst:101
-msgid "With ``reverse_cost``"
-msgstr ""
-
-# 0d7631d9310b438c91153c3dd1b24a5b
-#: ../../../src/driving_distance/doc/index.rst:121
-msgid "The queries use the :ref:`sampledata` network."
-msgstr ""
-
-# eed359d1899540fab05b3a4dc12fcaa1
-#: ../../../src/driving_distance/doc/index.rst:125
-msgid "See Also"
-msgstr "Siehe auch"
-
-# affd024607f942fb927cdf15975a7d4d
-#: ../../../src/driving_distance/doc/index.rst:127
-msgid ":ref:`pgr_points_as_polygon`"
-msgstr ""
-
-# 5809d5028efc4d909ba300c75482cb61
-#: ../../../src/driving_distance/doc/index.rst:128
-msgid ":ref:`pgr_alphashape`"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/index.po b/doc/i18n/de/LC_MESSAGES/src/index.po
deleted file mode 100644
index e6d326f..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/index.po
+++ /dev/null
@@ -1,81 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (187a022 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# Daniel Kastl, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-23 15:04\n"
-"PO-Revision-Date: 2013-09-23 20:17+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# a7c0f1373b4a433684d0580309cec634
-#: ../../../src/index.rst:13
-msgid "Routing Functions"
-msgstr "Routing-Funktionen"
-
-# 4e64e043a06f42cabd4c08c71b866662
-#: ../../../src/index.rst:15
-msgid ""
-":ref:`pgr_apspJohnson <pgr_apsp_johnson>`- All Pairs Shortest Path, "
-"Johnson’s Algorithm"
-msgstr ""
-
-# 19f78548228b4618bcec3c9f7603b2d0
-#: ../../../src/index.rst:16
-msgid ""
-":ref:`pgr_apspWarshall<pgr_apsp_warshall>` - All Pairs Shortest Path, Floyd-"
-"Warshall Algorithm"
-msgstr ""
-
-# cf861ca040624d81961f9ca0520b92ad
-#: ../../../src/index.rst:17
-msgid ":ref:`pgr_astar<pgr_astar>` - Shortest Path A*"
-msgstr ""
-
-# c5b280cd3cef4722abbfa6362d721aed
-#: ../../../src/index.rst:18
-msgid ":ref:`pgr_bdAstar<bd_astar>` - Bi-directional A* Shortest Path"
-msgstr ""
-
-# 0e20115c70e4487d9eb50b8ca6dd4c2b
-#: ../../../src/index.rst:19
-msgid ""
-":ref:`pgr_bdDijkstra<bd_dijkstra>` - Bi-directional Dijkstra Shortest Path"
-msgstr ""
-
-# cdb0bd03676b4bfca36fd4dc10b0473a
-#: ../../../src/index.rst:20
-msgid ":ref:`pgr_dijkstra<pgr_dijkstra>` - Shortest Path Dijkstra"
-msgstr ""
-
-# 7f1f5596a0d54dbd9672956b7463e7b4
-#: ../../../src/index.rst:21
-msgid ""
-":ref:`pgr_kDijkstra<pgr_kdijkstra>` - Mutliple destination Shortest Path "
-"Dijkstra"
-msgstr ""
-
-# 4ff10fab541f4f7686ef8163d75aa200
-#: ../../../src/index.rst:22
-msgid ":ref:`pgr_ksp<ksp>` - K-Shortest Path"
-msgstr ""
-
-# 6cec1b719ac34893b665a4b16b2f7f58
-#: ../../../src/index.rst:23
-msgid ":ref:`pgr_tsp<pgr_tsp>` - Traveling Sales Person"
-msgstr ""
-
-# 525e92b52a974d73b4bac048a34bd9c9
-#: ../../../src/index.rst:24
-msgid ":ref:`pgr_trsp<trsp>` - Turn Restriction Shortest Path (TRSP)"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/kdijkstra/doc/index.po b/doc/i18n/de/LC_MESSAGES/src/kdijkstra/doc/index.po
deleted file mode 100644
index c633cfd..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/kdijkstra/doc/index.po
+++ /dev/null
@@ -1,230 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:14+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 36e2253743a8455dbfbf75b26155205f
-#: ../../../src/kdijkstra/doc/index.rst:13
-msgid "pgr_kDijkstra - Mutliple destination Shortest Path Dijkstra"
-msgstr ""
-
-# 9f432bf1623d4a299d50ff492edbd66b
-#: ../../../src/kdijkstra/doc/index.rst:21
-msgid "Name"
-msgstr "Name"
-
-# 57c34a235f7a4cea8458d98a50a54e77
-#: ../../../src/kdijkstra/doc/index.rst:23
-msgid ""
-"``pgr_kdijkstraCost`` - Returns the costs for K shortest paths using "
-"Dijkstra algorithm."
-msgstr ""
-
-# ce7c4be9a502473591591e4d330d46e7
-#: ../../../src/kdijkstra/doc/index.rst:24
-msgid ""
-"``pgr_kdijkstraPath`` - Returns the paths for K shortest paths using "
-"Dijkstra algorithm."
-msgstr ""
-
-# 130c100b24ac47d4afd3b8ae17ea1335
-#: ../../../src/kdijkstra/doc/index.rst:28
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# 1b2f7dd687d84d76bbc57fc3ad8ed5ec
-#: ../../../src/kdijkstra/doc/index.rst:30
-msgid ""
-"These functions allow you to have a single start node and multiple "
-"destination nodes and will compute the routes to all the destinations from "
-"the source node. Returns a set of :ref:`pgr_costResult3 <type_cost_result3>`"
-" or :ref:`pgr_costResult3 <type_cost_result3>`. ``pgr_kdijkstraCost`` "
-"returns one record for each destination node and the cost is the total code "
-"of the route to that node. ``pgr_kdijkstraPath`` returns one record for "
-"every edge in that path from source to destination and the cost is to "
-"traverse that edge."
-msgstr ""
-
-# 06379d79c78b4c9bb92226bc66c58c3f
-#: ../../../src/kdijkstra/doc/index.rst:42
-msgid "Description"
-msgstr "Beschreibung"
-
-# 84671f541e384cf79360df9e260a5f52
-#: ../../../src/kdijkstra/doc/index.rst:44
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr ""
-
-# adccb52524354a6c92d9d45edb967dc0
-#: ../../../src/kdijkstra/doc/index.rst:51
-msgid "``int4`` identifier of the edge"
-msgstr ""
-
-# 5b2a072be67f471a8ab0c6b3daddcc48
-#: ../../../src/kdijkstra/doc/index.rst:52
-msgid "``int4`` identifier of the source vertex"
-msgstr ""
-
-# d00470fb22ae4294a3cf56db3d064839
-#: ../../../src/kdijkstra/doc/index.rst:53
-msgid "``int4`` identifier of the target vertex"
-msgstr ""
-
-# 4bdbc59e5d2d46ba94031caa56975d17
-#: ../../../src/kdijkstra/doc/index.rst:54
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr ""
-
-# 569cecbec8e34fa9942c4bcf4ce0c6a4
-#: ../../../src/kdijkstra/doc/index.rst:55
-msgid ""
-"(optional) the cost for the reverse traversal of the edge. This is only used"
-" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
-"above remark about negative costs)."
-msgstr ""
-
-# b3c8762d18e14a65b4d45ca5b654dabd
-#: ../../../src/kdijkstra/doc/index.rst:57
-msgid "``int4`` id of the start point"
-msgstr ""
-
-# 552184e10f0940f09327b71d0a2a5293
-#: ../../../src/kdijkstra/doc/index.rst:58
-msgid "``int4[]`` an array of ids of the end points"
-msgstr ""
-
-# 6bee551c7fae494d9429ddf6404f457a
-#: ../../../src/kdijkstra/doc/index.rst:59
-msgid "``true`` if the graph is directed"
-msgstr ""
-
-# c79e8fecdbb94d6f836a2fb692d24fea
-#: ../../../src/kdijkstra/doc/index.rst:60
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr ""
-
-# fe741d49c0f94473971ebcad7951456b
-#: ../../../src/kdijkstra/doc/index.rst:63
-msgid "``pgr_kdijkstraCost`` returns set of :ref:`type_cost_result`:"
-msgstr ""
-
-# 2325329e3ec24e3cbe4c347369b857a4
-# 2ac53854f37a48a89b705310628c4d3e
-#: ../../../src/kdijkstra/doc/index.rst:65
-#: ../../../src/kdijkstra/doc/index.rst:73
-msgid "row sequence"
-msgstr ""
-
-# 73cb6093021a456aace98c1f58641bef
-#: ../../../src/kdijkstra/doc/index.rst:66
-msgid ""
-"path vertex source id (this will always be source start point in the query)."
-msgstr ""
-
-# 9afd4e01323945118421ebb27f420068
-#: ../../../src/kdijkstra/doc/index.rst:67
-msgid "path vertex target id"
-msgstr ""
-
-# 8b3c8fe211a147f4b031db8a8d899ddd
-#: ../../../src/kdijkstra/doc/index.rst:68
-msgid ""
-"cost to traverse the path from ``id1`` to ``id2``. Cost will be -1.0 if "
-"there is no path to that target vertex id."
-msgstr ""
-
-# 703a5ecca86b4ef4ba2c275d9ba8a20f
-#: ../../../src/kdijkstra/doc/index.rst:71
-msgid "``pgr_kdijkstraPath`` returns set of :ref:`type_cost_result3`:"
-msgstr ""
-
-# 7fc792793b7c4e65ba68cea3f25384aa
-#: ../../../src/kdijkstra/doc/index.rst:74
-msgid "path target id (identifies the target path)."
-msgstr ""
-
-# c43bcd54fee6435fbe6afd2ec4bb6d65
-#: ../../../src/kdijkstra/doc/index.rst:75
-msgid "path edge source node id"
-msgstr ""
-
-# a567112ee5584a46ac397cb9783627a8
-#: ../../../src/kdijkstra/doc/index.rst:76
-msgid "path edge id (``-1`` for the last row)"
-msgstr ""
-
-# 47af04f2ce09412f8475df30be9581ae
-#: ../../../src/kdijkstra/doc/index.rst:77
-msgid "cost to traverse this edge or -1.0 if there is no path to this target"
-msgstr ""
-
-# e7349c2020bc491aaa02b3eb1ebca791
-#: ../../../src/kdijkstra/doc/index.rst:81
-msgid "History"
-msgstr "Geschichte"
-
-# f7b3cf1f2e494a4c8697b712adcbd1fc
-#: ../../../src/kdijkstra/doc/index.rst:82
-msgid "New in version 2.0.0"
-msgstr "Neu in Version 2.0.0"
-
-# adf5de36019d4982b76cd696909168b0
-#: ../../../src/kdijkstra/doc/index.rst:86
-msgid "Examples"
-msgstr "Beispiele"
-
-# f332ab5afb39404284be98f0e9a2c8dc
-#: ../../../src/kdijkstra/doc/index.rst:88
-msgid "Returning a ``cost`` result"
-msgstr ""
-
-# cb5abec6a55e41a4a61c22fd3f461110
-#: ../../../src/kdijkstra/doc/index.rst:123
-msgid "Returning a ``path`` result"
-msgstr ""
-
-# d2e7b4076702425a9c6928a0cc4b997e
-#: ../../../src/kdijkstra/doc/index.rst:144
-msgid ""
-"There is no assurance that the result above will be ordered in the direction"
-" of flow of the route, ie: it might be reversed. You will need to check if "
-"``st_startPoint()`` of the route is the same as the start node location and "
-"if it is not then call ``st_reverse()`` to reverse the direction of the "
-"route. This behavior is a function of PostGIS functions ``st_linemerge()`` "
-"and ``st_union()`` and not pgRouting."
-msgstr ""
-
-# d6928031c7d047a5999f03c79c5bcfea
-#: ../../../src/kdijkstra/doc/index.rst:153
-msgid "See Also"
-msgstr "Siehe auch"
-
-# cd86a4612fe944acbe5a39daaf52dafd
-#: ../../../src/kdijkstra/doc/index.rst:155
-msgid ":ref:`type_cost_result`"
-msgstr ""
-
-# c2386bf8c6314521abe162d0bf548225
-#: ../../../src/kdijkstra/doc/index.rst:156
-msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/ksp/doc/index.po b/doc/i18n/de/LC_MESSAGES/src/ksp/doc/index.po
deleted file mode 100644
index 7627fa4..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/ksp/doc/index.po
+++ /dev/null
@@ -1,192 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# Daniel Kastl, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:15+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# dc72571c7ce5498b92c659e3e482c885
-#: ../../../src/ksp/doc/index.rst:13
-msgid "pgr_ksp - K-Shortest Path"
-msgstr ""
-
-# 57b24beea69846f58a8cb9b1a7a892b5
-#: ../../../src/ksp/doc/index.rst:20
-msgid "Name"
-msgstr "Name"
-
-# b3d0fc92b23443c8b718233c1e16f052
-#: ../../../src/ksp/doc/index.rst:22
-msgid "``pgr_ksp`` — Returns the \"K\" shortest paths."
-msgstr ""
-
-# 0e60ee2dfa944557a1e9c76106489a7f
-#: ../../../src/ksp/doc/index.rst:26
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# bcf915dc485c4e3b90c9a8ea251b55d1
-#: ../../../src/ksp/doc/index.rst:28
-msgid ""
-"The K shortest path routing algorithm based on Yen's algorithm. \"K\" is the"
-" number of shortest paths desired. Returns a set of :ref:`pgr_costResult3 "
-"<type_cost_result3>` (seq, id1, id2, id3, cost) rows, that make up a path."
-msgstr ""
-
-# 46b5ce0d54a64718819888b77b007080
-#: ../../../src/ksp/doc/index.rst:37
-msgid "Description"
-msgstr "Beschreibung"
-
-# dddbbca8781f41eab4aac1d4e2ecdf32
-#: ../../../src/ksp/doc/index.rst:39
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr ""
-
-# 575d21e3bc994dc3a92a7c6cbb0ed6a2
-#: ../../../src/ksp/doc/index.rst:46
-msgid "``int4`` identifier of the edge"
-msgstr ""
-
-# 589751b9c7d34dac9b4eeb12894fd648
-#: ../../../src/ksp/doc/index.rst:47
-msgid "``int4`` identifier of the source vertex"
-msgstr ""
-
-# 6567c097438040d9b678e88df7521b35
-#: ../../../src/ksp/doc/index.rst:48
-msgid "``int4`` identifier of the target vertex"
-msgstr ""
-
-# a1e24bd423dd445889b72928d964a5ec
-#: ../../../src/ksp/doc/index.rst:49
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr ""
-
-# ed76ed5e3a504c7aa3a35ea3fa5b4c16
-#: ../../../src/ksp/doc/index.rst:50
-msgid ""
-"(optional) the cost for the reverse traversal of the edge. This is only used"
-" when ``has_rcost`` the parameter is ``true`` (see the above remark about "
-"negative costs)."
-msgstr ""
-
-# 588bdec4303b49869b6d1eedd541c198
-#: ../../../src/ksp/doc/index.rst:52
-msgid "``int4`` id of the start point"
-msgstr ""
-
-# 96b44480fac34f6286b863e6c75d4d8a
-#: ../../../src/ksp/doc/index.rst:53
-msgid "``int4`` id of the end point"
-msgstr ""
-
-# 0ffd51df58754f0b89f1b3ad6f75b632
-#: ../../../src/ksp/doc/index.rst:54
-msgid "``int4`` number of alternative routes"
-msgstr ""
-
-# 0fc58370aa30454ea32a2c8b9f3b14a3
-#: ../../../src/ksp/doc/index.rst:55
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr ""
-
-# dc8dfcffbd604441a95743930181b042
-#: ../../../src/ksp/doc/index.rst:57
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr ""
-
-# 611d6bbb82ca4987ae39fd45bb107c2b
-#: ../../../src/ksp/doc/index.rst:59
-msgid "sequence for ording the results"
-msgstr ""
-
-# b79966a030e04ee3b5e992b5a6858947
-#: ../../../src/ksp/doc/index.rst:60
-msgid "route ID"
-msgstr ""
-
-# a324539cdc2e4202b416aa19693d1c3f
-#: ../../../src/ksp/doc/index.rst:61
-msgid "node ID"
-msgstr ""
-
-# 4d87667a7b744eec999819b399fee50c
-#: ../../../src/ksp/doc/index.rst:62
-msgid "edge ID (``0`` for the last row)"
-msgstr ""
-
-# baaba3dc621142bd8fc6b8ba32eb2b2e
-#: ../../../src/ksp/doc/index.rst:63
-msgid "cost to traverse from ``id2`` using ``id3``"
-msgstr ""
-
-# b585e07096f74b0389f8b7dffc969faa
-#: ../../../src/ksp/doc/index.rst:65
-msgid ""
-"KSP code base taken from http://code.google.com/p/k-shortest-paths/source."
-msgstr ""
-
-# 2d033ec25b09426c82d7bc27450b0e13
-#: ../../../src/ksp/doc/index.rst:69
-msgid "History"
-msgstr "Geschichte"
-
-# 2910d7995ec342b995c857c1e8ea0ac3
-#: ../../../src/ksp/doc/index.rst:70
-msgid "New in version 2.0.0"
-msgstr "Neu in Version 2.0.0"
-
-# 0fb494088fa241d6a4aa5482217c2851
-#: ../../../src/ksp/doc/index.rst:74
-msgid "Examples"
-msgstr "Beispiele"
-
-# d3ea07b1c58a42ea9f68558e55eb90a0
-#: ../../../src/ksp/doc/index.rst:76
-msgid "Without ``reverse_cost``"
-msgstr ""
-
-# 7c55b739634c4401b46c4014669d2896
-#: ../../../src/ksp/doc/index.rst:104
-msgid "With ``reverse_cost``"
-msgstr ""
-
-# 2412b0b4ec044973a1c2304488a73b1a
-#: ../../../src/ksp/doc/index.rst:131
-msgid "The queries use the :ref:`sampledata` network."
-msgstr ""
-
-# 14d58e1d3a8f4723bb11ed549594cb26
-#: ../../../src/ksp/doc/index.rst:135
-msgid "See Also"
-msgstr "Siehe auch"
-
-# 73cf1bb94518468996cdd3ff6bf897be
-#: ../../../src/ksp/doc/index.rst:137
-msgid ":ref:`type_cost_result3`"
-msgstr ":ref:`type_cost_result3`"
-
-# 3dde120556744d3f9ce7d6e9b9f0c1ee
-#: ../../../src/ksp/doc/index.rst:138
-msgid "http://en.wikipedia.org/wiki/K_shortest_path_routing"
-msgstr "http://en.wikipedia.org/wiki/K_shortest_path_routing"
diff --git a/doc/i18n/de/LC_MESSAGES/src/trsp/doc/index.po b/doc/i18n/de/LC_MESSAGES/src/trsp/doc/index.po
deleted file mode 100644
index 605a287..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/trsp/doc/index.po
+++ /dev/null
@@ -1,259 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-08-04 04:24+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 15b2085c08994c0bafb02ec924886b36
-#: ../../../src/trsp/doc/index.rst:13
-msgid "pgr_trsp - Turn Restriction Shortest Path (TRSP)"
-msgstr ""
-
-# 001ce231c65b42a19a62809e63a0b153
-#: ../../../src/trsp/doc/index.rst:23
-msgid "Name"
-msgstr "Name"
-
-# e7d332e28a5540d2af454386b4bf39e5
-#: ../../../src/trsp/doc/index.rst:25
-msgid ""
-"``pgr_trsp`` — Returns the shortest path with support for turn restrictions."
-msgstr ""
-
-# 9f0ad26664fc4d2aa44b49daf329cbcf
-#: ../../../src/trsp/doc/index.rst:29
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# 2d74de00ff7144f1a68f40ec98315004
-#: ../../../src/trsp/doc/index.rst:31
-msgid ""
-"The turn restricted shorthest path (TRSP) is a shortest path algorithm that "
-"can optionally take into account complicated turn restrictions like those "
-"found in real work navigable road networks. Performamnce wise it is nearly "
-"as fast as the A* search but has many additional features like it works with"
-" edges rather than the nodes of the network. Returns a set of "
-":ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows, that "
-"make up a path."
-msgstr ""
-
-# 258764bba06c4ef58ac4b5f8fc99fa51
-#: ../../../src/trsp/doc/index.rst:47
-msgid "Description"
-msgstr "Beschreibung"
-
-# db4ead8b9b724ada9fcd352b21c13c47
-#: ../../../src/trsp/doc/index.rst:49
-msgid ""
-"The Turn Restricted Shortest Path algorithm (TRSP) is similar to the "
-":ref:`shooting_star` in that you can specify turn restrictions."
-msgstr ""
-
-# f8c43b665915464c9bfc35604fd91aee
-#: ../../../src/trsp/doc/index.rst:51
-msgid ""
-"The TRSP setup is mostly the same as :ref:`Dijkstra shortest path "
-"<pgr_dijkstra>` with the addition of an optional turn restriction table. "
-"This makes adding turn restrictions to a road network much easier than "
-"trying to add them to Shooting Star where you had to ad the same edges "
-"multiple times if it was involved in a restriction."
-msgstr ""
-
-# b95a0195c5bd43caa2d6cfb1f998a956
-#: ../../../src/trsp/doc/index.rst:54
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr ""
-
-# 580e965db4a1466da14357ff969e2429
-#: ../../../src/trsp/doc/index.rst:61
-msgid "``int4`` identifier of the edge"
-msgstr ""
-
-# 1240ecd9b29e479ca8b980c6282c5182
-#: ../../../src/trsp/doc/index.rst:62
-msgid "``int4`` identifier of the source vertex"
-msgstr ""
-
-# f155b6dee53749049cc6a9eac4126083
-#: ../../../src/trsp/doc/index.rst:63
-msgid "``int4`` identifier of the target vertex"
-msgstr ""
-
-# 882a25b98f4f4c7cb2f288cf7c327c4a
-#: ../../../src/trsp/doc/index.rst:64
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr ""
-
-# 0a3a626251a840ab96796ef2ab9b91c5
-#: ../../../src/trsp/doc/index.rst:65
-msgid ""
-"(optional) the cost for the reverse traversal of the edge. This is only used"
-" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
-"above remark about negative costs)."
-msgstr ""
-
-# 510dbeaa32914dc18ed3e6799281fbef
-#: ../../../src/trsp/doc/index.rst:67
-msgid "``int4`` **NODE id** of the start point"
-msgstr ""
-
-# ece6f31366044417b07933b2c817c5df
-#: ../../../src/trsp/doc/index.rst:68
-msgid "``int4`` **NODE id** of the end point"
-msgstr ""
-
-# 31ad6aa2c51741de8dbafceaf67d397a
-#: ../../../src/trsp/doc/index.rst:69
-msgid "``true`` if the graph is directed"
-msgstr ""
-
-# 6605eca503604a6daa20167fcbdd05fa
-#: ../../../src/trsp/doc/index.rst:70
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr ""
-
-# 332748df482046d7b70e9012364915e3
-#: ../../../src/trsp/doc/index.rst:72
-msgid ""
-"(optional) a SQL query, which should return a set of rows with the following"
-" columns:"
-msgstr ""
-
-# 936b80e377bd457081e14e36770ab130
-#: ../../../src/trsp/doc/index.rst:78
-msgid "``float8`` turn restriction cost"
-msgstr ""
-
-# d1715703f624412385536b88c78a32df
-#: ../../../src/trsp/doc/index.rst:79
-msgid "``int4`` target id"
-msgstr ""
-
-# 83a22871a9f6419190e4bf313f49c672
-#: ../../../src/trsp/doc/index.rst:80
-msgid ""
-"``text`` commar seperated list of edges in the reverse order of ``rule``"
-msgstr ""
-
-# d0f078a9c92348a9bc1e880a0835b24c
-#: ../../../src/trsp/doc/index.rst:82
-msgid ""
-"Another variant of TRSP allows to specify **EDGE id** of source and target "
-"together with a fraction to interpolate the position:"
-msgstr ""
-
-# 021daf08280643738cfc9e67f4fa6fce
-#: ../../../src/trsp/doc/index.rst:84
-msgid "``int4`` **EDGE id** of the start edge"
-msgstr ""
-
-# 6c0b782e2a2d4ee7aac26b031327b48d
-#: ../../../src/trsp/doc/index.rst:85
-msgid "``float8`` fraction of 1 defines the position on the start edge"
-msgstr ""
-
-# 4f60cd31727245739cba5b4be8840191
-#: ../../../src/trsp/doc/index.rst:86
-msgid "``int4`` **EDGE id** of the end edge"
-msgstr ""
-
-# 8a114786a737431f9d36f79718505b0c
-#: ../../../src/trsp/doc/index.rst:87
-msgid "``float8`` fraction of 1 defines the position on the end edge"
-msgstr ""
-
-# 164eff72cc834e76afafdb24fae73b05
-#: ../../../src/trsp/doc/index.rst:89
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr ""
-
-# f1e7b63cce7e45dca113b9c63b80531a
-#: ../../../src/trsp/doc/index.rst:91
-msgid "row sequence"
-msgstr ""
-
-# 9224c385fbc84c6fb16a5752bb0dcf0f
-#: ../../../src/trsp/doc/index.rst:92
-msgid "node ID"
-msgstr ""
-
-# 838eabec61db4ac1a64b9bb7b12a5bec
-#: ../../../src/trsp/doc/index.rst:93
-msgid "edge ID (``-1`` for the last row)"
-msgstr ""
-
-# dd4d4036ca89412ca65bb9dc36a98ff5
-#: ../../../src/trsp/doc/index.rst:94
-msgid "cost to traverse from ``id1`` using ``id2``"
-msgstr ""
-
-# 3e879e6cbece4a27afe4738bdef1080b
-#: ../../../src/trsp/doc/index.rst:98
-msgid "History"
-msgstr "Geschichte"
-
-# 16b0789da1954e179858d593d9973be6
-#: ../../../src/trsp/doc/index.rst:99
-msgid "New in version 2.0.0"
-msgstr "Neu in Version 2.0.0"
-
-# 36dc0630c4e04859ba0a41aa3da19ed6
-#: ../../../src/trsp/doc/index.rst:103
-msgid "Examples"
-msgstr "Beispiele"
-
-# 0c40d66ced8b4b48914b3bb328c5f10e
-#: ../../../src/trsp/doc/index.rst:105
-msgid "Without turn restrictions"
-msgstr ""
-
-# 456ae3d3abc547978bd147c884275ac6
-#: ../../../src/trsp/doc/index.rst:126
-msgid "With turn restrictions"
-msgstr ""
-
-# 2541f0dba78f4dfe93fcda086ddeba34
-#: ../../../src/trsp/doc/index.rst:128
-msgid ""
-"Turn restrictions require additional information, which can be stored in a "
-"separate table:"
-msgstr ""
-
-# 4d9e1ab740a44fe990829e06dcc32f65
-#: ../../../src/trsp/doc/index.rst:144
-msgid "Then a query with turn restrictions is created as:"
-msgstr ""
-
-# 61dd0262b80b4db58f637fe5d2dd1ae8
-#: ../../../src/trsp/doc/index.rst:167
-msgid "The queries use the :ref:`sampledata` network."
-msgstr ""
-
-# 48bf89e209cc4518904b1b99e1a89f99
-#: ../../../src/trsp/doc/index.rst:171
-msgid "See Also"
-msgstr "Siehe auch"
-
-# 7988e08198b04952bc5a1cb22cce310f
-#: ../../../src/trsp/doc/index.rst:173
-msgid ":ref:`type_cost_result`"
-msgstr ""
diff --git a/doc/i18n/de/LC_MESSAGES/src/tsp/doc/index.po b/doc/i18n/de/LC_MESSAGES/src/tsp/doc/index.po
deleted file mode 100644
index f13980b..0000000
--- a/doc/i18n/de/LC_MESSAGES/src/tsp/doc/index.po
+++ /dev/null
@@ -1,352 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 06:20+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: German (http://www.transifex.com/projects/p/pgrouting/language/de/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: de\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 588bb56f073f49f89c741579fbc2c17c
-#: ../../../src/tsp/doc/index.rst:13
-msgid "pgr_tsp - Traveling Sales Person"
-msgstr ""
-
-# f69daf53ba3c47ca846fbcbbcf6aa25d
-#: ../../../src/tsp/doc/index.rst:23
-msgid "Name"
-msgstr "Name"
-
-# 5ccbfce91c604bac96d73fdbc656f675
-#: ../../../src/tsp/doc/index.rst:25
-msgid ""
-"``pgr_tsp`` - Returns the best route from a start node via a list of nodes."
-msgstr ""
-
-# cd69b4b6495b448fa23e10806d8cd704
-#: ../../../src/tsp/doc/index.rst:26
-msgid ""
-"``pgr_tsp`` - Returns the best route order when passed a disance matrix."
-msgstr ""
-
-# eee8057e1f874582a8d82dbf95c33b83
-#: ../../../src/tsp/doc/index.rst:27
-msgid ""
-"``pgr_makeDistanceMatrix`` - Returns a Eucleadian distance Matrix from the "
-"points provided in the sql result."
-msgstr ""
-
-# c0ecbed749044ceea6ac67da6a92e851
-#: ../../../src/tsp/doc/index.rst:31
-msgid "Synopsis"
-msgstr "Übersicht"
-
-# bccf8e0d00d545fbb53db8de741e3629
-#: ../../../src/tsp/doc/index.rst:33
-msgid ""
-"The travelling salesman problem (TSP) or travelling salesperson problem asks"
-" the following question: Given a list of cities and the distances between "
-"each pair of cities, what is the shortest possible route that visits each "
-"city exactly once and returns to the origin city? This algoritm uses "
-"simulated annealing to return a high quality approximate solution. Returns a"
-" set of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows,"
-" that make up a path."
-msgstr ""
-
-# 4817fee0103a41c4816125ab5b8e50c9
-#: ../../../src/tsp/doc/index.rst:41
-msgid ""
-"Returns a set of (seq integer, id1 integer, id2 integer, cost float8) that "
-"is the best order to visit the nodes in the matrix. ``id1`` is the index "
-"into the distance matrix. ``id2`` is the point id from the sql."
-msgstr ""
-
-# d81ab41209864a73a7ffa72604da479d
-#: ../../../src/tsp/doc/index.rst:43
-msgid ""
-"If no ``end_id`` is supplied or it is -1 or equal to the start_id then the "
-"TSP result is assumed to be a circluar loop returning back to the start. If "
-"``end_id`` is supplied then the route is assumed to start and end the the "
-"designated ids."
-msgstr ""
-
-# 50853fe7ce3a4230ba1ad32e1820ff86
-#: ../../../src/tsp/doc/index.rst:52
-msgid "Description"
-msgstr "Beschreibung"
-
-# 5c75019d15bb43c39560772bc3ee4607
-#: ../../../src/tsp/doc/index.rst:55
-msgid "With Euclidean distances"
-msgstr ""
-
-# 66a3e0216d3948b082421f130af849fc
-#: ../../../src/tsp/doc/index.rst:56
-msgid ""
-"The TSP solver is based on ordering the points using straight line "
-"(euclidean) distance [#f0]_ between nodes. The implementation is using an "
-"approximation algorithm that is very fast. It is not an exact solution, but "
-"it is guaranteed that a solution is returned after certain number of "
-"iterations."
-msgstr ""
-
-# 7b0c0aa5e05b441ea75bea14ed4902cd
-#: ../../../src/tsp/doc/index.rst:58
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr ""
-
-# 370960d08a674040ba2f83ed085dbb48
-#: ../../../src/tsp/doc/index.rst:64
-msgid "``int4`` identifier of the vertex"
-msgstr ""
-
-# 041d921890f847d1bcb77251f630f8d5
-#: ../../../src/tsp/doc/index.rst:65
-msgid "``float8`` x-coordinate"
-msgstr ""
-
-# 8662fbcf22f74a82900515c839683881
-#: ../../../src/tsp/doc/index.rst:66
-msgid "``float8`` y-coordinate"
-msgstr ""
-
-# c71cd39ce3cf4e3e9301579f9a596cdb
-#: ../../../src/tsp/doc/index.rst:68
-msgid "``int4`` id of the start point"
-msgstr ""
-
-# 5165a6a173194137bb498d88e0957b35
-#: ../../../src/tsp/doc/index.rst:69
-msgid ""
-"``int4`` id of the end point, This is *OPTIONAL*, if include the route is "
-"optimized from start to end, otherwise it is assumed that the start and the "
-"end are the same point."
-msgstr ""
-
-# d73e6887338e4da3a107b753d970eb83
-#: ../../../src/tsp/doc/index.rst:72
-msgid "The function returns set of :ref:`type_cost_result`:"
-msgstr ""
-
-# 6a00ce9fe1e84a708606d26b563355af
-# c113028794ef4a08a59271625c0ae721
-#: ../../../src/tsp/doc/index.rst:74 ../../../src/tsp/doc/index.rst:107
-msgid "row sequence"
-msgstr ""
-
-# 486fb735dda64593ba3d2773c140d01f
-#: ../../../src/tsp/doc/index.rst:75
-msgid "internal index to the distance matric"
-msgstr ""
-
-# 47f9555a7ecb4013a9b7b1744788a432
-#: ../../../src/tsp/doc/index.rst:76
-msgid "``id`` of the node"
-msgstr ""
-
-# 879b651101634a9fa1850e585291b13d
-#: ../../../src/tsp/doc/index.rst:77
-msgid "cost to traverse from the current node to the next node."
-msgstr ""
-
-# 1219dbad1dbc483e8c66e492b2ddbb85
-#: ../../../src/tsp/doc/index.rst:80
-msgid "Create a distance matrix"
-msgstr ""
-
-# 0c6c6e0816e1404798c896777ad941f2
-#: ../../../src/tsp/doc/index.rst:81
-msgid ""
-"For users that need a distance matrix we have a simple function that takes "
-"SQL in ``sql`` as described above and returns a record with ``dmatrix`` and "
-"``ids``."
-msgstr ""
-
-# a9ebba1a8cbb4af9a325f5ebcf4c9c50
-#: ../../../src/tsp/doc/index.rst:87
-msgid "The function returns a record of ``dmatrix``, ``ids``:"
-msgstr ""
-
-# 79831990a066442dbf3d4f24cebf6aef
-#: ../../../src/tsp/doc/index.rst:89
-msgid "``float8[][]`` a symeteric Euclidean distance matrix based on ``sql``."
-msgstr ""
-
-# afbd6f830d5c4ab2847548f86f90dca1
-#: ../../../src/tsp/doc/index.rst:90
-msgid ""
-"``integer[]`` an array of ids as they are ordered in the distance matrix."
-msgstr ""
-
-# f0b8169b552646f980bd6b7e0e4b580c
-#: ../../../src/tsp/doc/index.rst:94
-msgid "With distance matrix"
-msgstr ""
-
-# e50bb0a665844d7682d3a1b216adb70e
-#: ../../../src/tsp/doc/index.rst:95
-msgid ""
-"For users, that do not want to use Euclidean distances, we also provode the "
-"ability to pass a distance matrix that we will solve and return an ordered "
-"list of nodes for the best order to visit each. It is up to the user to "
-"fully populate the distance matrix."
-msgstr ""
-
-# 900d7d9a9cfe4f48a183120d63a6b5fb
-#: ../../../src/tsp/doc/index.rst:97
-msgid "``float[][]`` distance matrix of points"
-msgstr ""
-
-# ffe889182e9b49e48573a830538e2f76
-#: ../../../src/tsp/doc/index.rst:98
-msgid "``int4`` index of the start point"
-msgstr ""
-
-# 7ff184ff9d034484941644d3528f9b11
-#: ../../../src/tsp/doc/index.rst:99
-msgid "``int4`` (optional) index of the end node"
-msgstr ""
-
-# a7886e5620ad48308a92c602d785b979
-#: ../../../src/tsp/doc/index.rst:101
-msgid ""
-"The ``end`` node is an optional parameter, you can just leave it out if you "
-"want a loop where the ``start`` is the depot and the route returns back to "
-"the depot. If you include the ``end`` parameter, we optimize the path from "
-"``start`` to ``end`` and minimize the distance of the route while include "
-"the remaining points."
-msgstr ""
-
-# 3328187fb6f24c06bd2ade2fb9daff6c
-#: ../../../src/tsp/doc/index.rst:103
-msgid ""
-"The distance matrix is a multidimensional `PostgreSQL array type "
-"<http://www.postgresql.org/docs/9.1/static/arrays.html>`_ that must be ``N x"
-" N`` in size."
-msgstr ""
-
-# 1768ea2352234c129198dbacd1452e65
-#: ../../../src/tsp/doc/index.rst:105
-msgid "The result will be N records of ``[ seq, id ]``:"
-msgstr ""
-
-# f8e56b07da754f4396ccb1daa52b8213
-#: ../../../src/tsp/doc/index.rst:108
-msgid "index into the matrix"
-msgstr ""
-
-# 700ed687dfd24327b5866cb91007c0ed
-#: ../../../src/tsp/doc/index.rst:112
-msgid "Footnotes"
-msgstr ""
-
-# bae6c65f712c4ff9b0fd388153cf42f7
-#: ../../../src/tsp/doc/index.rst:113
-msgid ""
-"There was some thought given to pre-calculating the driving distances "
-"between the nodes using Dijkstra, but then I read a paper (unfortunately I "
-"don't remember who wrote it), where it was proved that the quality of TSP "
-"with euclidean distance is only slightly worse than one with real distance "
-"in case of normal city layout. In case of very sparse network or rivers and "
-"bridges it becomes more inaccurate, but still wholly satisfactory. Of course"
-" it is nice to have exact solution, but this is a compromise between quality"
-" and speed (and development time also). If you need a more accurate "
-"solution, you can generate a distance matrix and use that form of the "
-"function to get your results."
-msgstr ""
-
-# aeabcb34ceb245ac8c9c4dd783bae696
-#: ../../../src/tsp/doc/index.rst:117
-msgid "History"
-msgstr "Geschichte"
-
-# 83259e3ddfad4bc8a503e3daa04b99d5
-#: ../../../src/tsp/doc/index.rst:118
-msgid "Renamed in version 2.0.0"
-msgstr "Umbenannt in Version 2.0.0"
-
-# 537d6a4a4cc64451857537f64823ac72
-#: ../../../src/tsp/doc/index.rst:119
-msgid "GAUL dependency removed in version 2.0.0"
-msgstr ""
-
-# 51493667159c4c6395a48ada45bc3ddb
-#: ../../../src/tsp/doc/index.rst:123
-msgid "Examples"
-msgstr "Beispiele"
-
-# 7c2ef386cc424fe5a5781147e3ea4cc2
-#: ../../../src/tsp/doc/index.rst:125
-msgid ""
-"Using SQL parameter (all points from the table, atarting from 6 and ending "
-"at 5). We have listed two queries in this example, the first might vary from"
-" system to system because there are multiple equivalent answers. The second "
-"query should be stable in that the length optimal route should be the same "
-"regardless of order."
-msgstr ""
-
-# 41662adbab25461784b154100646e929
-#: ../../../src/tsp/doc/index.rst:159
-msgid "Using distance matrix (A loop starting from 1)"
-msgstr ""
-
-# 936788f1e0c2469ba7d71161a6320815
-#: ../../../src/tsp/doc/index.rst:161
-msgid ""
-"When using just the start node you are getting a loop that starts with 1, in"
-" this case, and travels through the other nodes and is implied to return to "
-"the start node from the last one in the list. Since this is a circle there "
-"are at least two possible paths, one clockwise and one counter-clockwise "
-"that will have the same length and be equall valid. So in the following "
-"example it is also possible to get back a sequence of ids = {1,0,3,2} "
-"instead of the {1,2,3,0} sequence listed below."
-msgstr ""
-
-# 95907dec9016432f8b75f45be9e231c3
-#: ../../../src/tsp/doc/index.rst:175
-msgid "Using distance matrix (Starting from 1, ending at 2)"
-msgstr ""
-
-# c376ad2787cd4f4abf9764fbe86699b2
-#: ../../../src/tsp/doc/index.rst:189
-msgid ""
-"Using the vertices table edge_table_vertices_pgr generated by "
-":ref:`pgr_create_topology`. Again we have two queries where the first might "
-"vary and the second is based on the overal path length."
-msgstr ""
-
-# c3d22bacc29d477ca8c5a118ddedb8f4
-#: ../../../src/tsp/doc/index.rst:226
-msgid "The queries use the :ref:`sampledata` network."
-msgstr ""
-
-# 4f5c93447689413e86e9ed2751abff8f
-#: ../../../src/tsp/doc/index.rst:230
-msgid "See Also"
-msgstr "Siehe auch"
-
-# 5f49eba1079b40d297bf0872ae69fe06
-#: ../../../src/tsp/doc/index.rst:232
-msgid ":ref:`type_cost_result`"
-msgstr ""
-
-# 81d591e953334f24b72e9680e2ae42f9
-#: ../../../src/tsp/doc/index.rst:233
-msgid "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
-msgstr ""
-
-# 2c62ab4de73248479f416573176f0c4a
-#: ../../../src/tsp/doc/index.rst:234
-msgid "http://en.wikipedia.org/wiki/Simulated_annealing"
-msgstr ""
diff --git a/doc/i18n/es/LC_MESSAGES/doc/index.po b/doc/i18n/es/LC_MESSAGES/doc/index.po
deleted file mode 100644
index a9cb4c7..0000000
--- a/doc/i18n/es/LC_MESSAGES/doc/index.po
+++ /dev/null
@@ -1,359 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (187a022 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-23 21:48\n"
-"PO-Revision-Date: 2013-09-24 04:27+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# c86028e885c64c0987f44bbcc08fb02a
-#: ../../index.rst:13
-msgid "Table of Contents"
-msgstr "Contenido"
-
-# 32111013f9c94976b553857e93812724
-#: ../../index.rst:15
-msgid ""
-"pgRouting extends the `PostGIS <http://postgis.net>`_/`PostgreSQL "
-"<http://postgresql.org>`_ geospatial database to provide geospatial routing "
-"and other network analysis functionality."
-msgstr "pgRouting extiende a las bases de datos geoespaciales `PostGIS <http://postgis.net>`_ /`PostgreSQL <http://postgresql.org>`_ para proveer ruteo geoespacial y funcionalidad de análisis de redes."
-
-# cd5bc882f7f3412b8a937ba25e203de8
-#: ../../index.rst:17
-msgid "This is the manual for pgRouting |release|."
-msgstr "Este es el manual para pgRouting |release|."
-
-# d928c97ad24c4daeae96bb02b87c5a6d
-#: ../../index.rst:23
-msgid ""
-"The pgRouting Manual is licensed under a `Creative Commons Attribution-Share"
-" Alike 3.0 License <http://creativecommons.org/licenses/by-sa/3.0/>`_. Feel "
-"free to use this material any way you like, but we ask that you attribute "
-"credit to the pgRouting Project and wherever possible, a link back to "
-"http://pgrouting.org. For other licenses used in pgRouting see the "
-":ref:`license` page."
-msgstr "El Manual de pgRouting  está bajo la licencia `Licencia Creative Commons Attribution-Share Alike 3.0  <http://creativecommons.org/licenses/by-sa/3.0/>`_. Eres libre para  usar este material de la manera que desees, pero pedimos que le otorges el crédito al proyecto pgRouting y cuando sea posible le pongas una liga hacia http://pgrouting.org. Para otras licencias usadas en pgRouting ver :ref:`Licencias <license>`."
-
-# 9024be66e4ef47b9b53de9a42af4550d
-#: ../../index.rst:27
-msgid "General"
-msgstr "Generalidades"
-
-# 268439cb0a4f4417b56ca21d51394850
-#: ../../index.rst:40
-msgid "Tutorial"
-msgstr "Tutoriales"
-
-# bf01af3d0d3244f283f5b3fab105caad
-#: ../../index.rst:42
-msgid ":ref:`Tutorial <tutorial1>`"
-msgstr ":ref:`Tutorial <tutorial1>`"
-
-# 116777f411a248f9afe42b9b51679b78
-#: ../../index.rst:44
-msgid ":ref:`Getting started <tutorial>`"
-msgstr ":ref:`Comenzando a trabajar <tutorial>`"
-
-# 2066f7d15ec8444c833547cfb3b06a98
-#: ../../index.rst:45
-msgid ":ref:`topology` for an overview of a topology for routing algorithms."
-msgstr ":ref:`topology` para tener una visión general de una topología de algoritmos de encaminamiento."
-
-# 2753f71d0fc14b0bbabb14a5180b10d9
-#: ../../index.rst:46
-msgid ":ref:`analytics` for an overview of the analysis of a graph."
-msgstr ":ref:`analytics` para tener una visión general del análisis de un gráfico."
-
-# 042f858c16ca4c7ea9fb4baa62efdd44
-#: ../../index.rst:47
-msgid ":ref:`custom_query` that is used in the routing algorithms."
-msgstr ":ref:`custom_query` que se utiliza en los algoritmos de ruteo."
-
-# 13f4fade1d47458abf8ba3706110d874
-#: ../../index.rst:48
-msgid ":ref:`performance` to improve your performance."
-msgstr ":ref:`performance` para mejorar su rendimiento."
-
-# c3ccc6e6651e47f9b9d271c60976b15c
-#: ../../index.rst:49
-msgid ":ref:`custom_wrapper` to colaborate with a wrapper."
-msgstr ":ref:`custom_wrapper` para colaborar con un envoltorio."
-
-# 233aebcc461745c2b0811b7f4328ce3a
-#: ../../index.rst:50
-msgid ":ref:`recipes` to colaborate with a recipe."
-msgstr ":ref:`recipes` para colaborar con una receta."
-
-# 3ae724b7e3714db2942fb7c77124cfc4
-#: ../../index.rst:51
-msgid ":ref:`sampledata` that is used in the examples of this manual."
-msgstr ":ref:`sampledata` que se utiliza en los ejemplos de este manual."
-
-# c92e843c52364963a35112272cb814fd
-#: ../../index.rst:61
-msgid ""
-"For a more complete introduction how to build a routing application read the"
-" `pgRouting Workshop <http://workshop.pgrouting.org>`_."
-msgstr "Para una introducción más completa de como construir una aplicación de ruteo, leer el `Taller de pgRouting <http://workshop.pgrouting.org>`_."
-
-# 524c7dc0d5654f319fc62f2ae08b86f7
-#: ../../index.rst:65
-msgid "Data Types"
-msgstr "Tipos de Datos"
-
-# e49a23cdc901419e8a3d5f17ed6c6ea0
-#: ../../index.rst:67
-msgid ":ref:`data_types`"
-msgstr ":ref:`data_types`"
-
-# ef6b2fcc629f48c7b88d3ac78527893a
-#: ../../index.rst:69
-msgid ""
-":ref:`type_cost_result` -  A set of records to describe a path result with "
-"cost attribute."
-msgstr ":ref:`type_cost_result` — un conjunto de registros para describir un resultado de camino con el atributo de costo."
-
-# 84a33ec406d2412c9e681656b4cb9b43
-#: ../../index.rst:70
-msgid ""
-":ref:`pgr_costResult3[]<type_cost_result3>` - A set of records to describe a"
-" path result with cost attribute."
-msgstr ":ref:`pgr_costResult3[]<type_cost_result3>` — un conjunto de registros para describir un resultado de ruta con el atributo de costo."
-
-# 6a2ba698d366498caa046c97178f05d5
-#: ../../index.rst:71
-msgid ""
-":ref:`pgr_geomResult<type_geom_result>` - A set of records to describe a "
-"path result with geometry attribute."
-msgstr ":ref:`pgr_geomResult <type_geom_result>` — un conjunto de registros para describir el resultado de un camino que incluye el atributo de la geometría."
-
-# 9c4629c11bc143a184a6564177b0e7bd
-#: ../../index.rst:80
-msgid "Functions reference"
-msgstr "Referencia de Funciones"
-
-# 1f3545abdf7c42cdb73e76f5f149a31b
-#: ../../index.rst:82
-msgid ":ref:`topology_functions`"
-msgstr ":ref:`topology_functions`"
-
-# 058f97425ccb4cb5870163ebbe948a72
-#: ../../index.rst:84
-msgid ""
-":ref:`pgr_create_topology` -  to create a topology based on the geometry."
-msgstr ":ref:`pgr_create_topology` para crear la topología basado en la geometría."
-
-# e839b8e9c3664685a6dc346cac1ea039
-#: ../../index.rst:85
-msgid ""
-":ref:`pgr_create_vert_table` - to reconstruct the vertices table based on "
-"the source and target information."
-msgstr ":ref:`pgr_create_vert_table` - para reconstruir la tabla vértices basándose en la información de origen y de destino."
-
-# 5d9cd0c5ac3043b99ae4fb495036d05f
-#: ../../index.rst:86
-msgid ""
-":ref:`pgr_analyze_graph`  - to analyze the edges and vertices of the edge "
-"table."
-msgstr ":ref:`pgr_analyze_graph` Para analizar los bordes y vértices de la tabla de bordes."
-
-# 714b5f8623914db981048d201845d040
-#: ../../index.rst:87
-msgid ":ref:`pgr_analyze_oneway` - to analyze directionality of the edges."
-msgstr ":ref:`pgr_analyze_oneway` para analizar la direccionalidad de los bordes."
-
-# 5f3a1ebfa74d4463912b1c695028121d
-#: ../../index.rst:88
-msgid ":ref:`pgr_node_network`  -to create nodes to a not noded edge table."
-msgstr ":ref:`pgr_node_network` - para crear nodos a una tabla de borde sin nodos."
-
-# 655d025751764d39b841997c13775783
-#: ../../index.rst:90
-msgid ":ref:`routing_functions`"
-msgstr ":ref:`routing_functions`"
-
-# 6a94d292d24b45f7aafda5a754a6ba30
-#: ../../index.rst:92
-msgid ""
-":ref:`pgr_apspJohnson <pgr_apsp_johnson>`- All Pairs Shortest Path, "
-"Johnson’s Algorithm"
-msgstr ":ref:`pgr_apspJohnson <pgr_apsp_johnson>` -  Algoritmo de la ruta más corta de todos los pares de la ruta más corta de Johnson"
-
-# fbda3d31d88e4df891d2095dfbb8ab52
-#: ../../index.rst:93
-msgid ""
-":ref:`pgr_apspWarshall<pgr_apsp_warshall>` - All Pairs Shortest Path, Floyd-"
-"Warshall Algorithm"
-msgstr ":ref:`pgr_apspWarshall<pgr_apsp_warshall>` - camino más corto de todos los pares, Algoritmo de Floyd-Warshall"
-
-# 10cf6d194dcf4af2be81f0f8034cd5cb
-#: ../../index.rst:94
-msgid ":ref:`pgr_astar<pgr_astar>` - Shortest Path A*"
-msgstr ":ref:`pgr_astar<pgr_astar>` - Camino más corto A*"
-
-# 72aa55b5147341e6be8b3ac29edc5056
-#: ../../index.rst:95
-msgid ":ref:`pgr_bdAstar<bd_astar>` - Bi-directional A* Shortest Path"
-msgstr ":ref:`pgr_bdAstar<bd_astar>` - Camino más corto bidireccional A*"
-
-# 659e5f56cae84ce598a95fe83608da28
-#: ../../index.rst:96
-msgid ""
-":ref:`pgr_bdDijkstra<bd_dijkstra>` - Bi-directional Dijkstra Shortest Path"
-msgstr ":ref:`pgr_bdDijkstra<bd_dijkstra>` - Camino más corto bidireccional de Dijkstra"
-
-# 2a0544bf5ac444cb9f814c98ddd9cac0
-#: ../../index.rst:97
-msgid ":ref:`pgr_dijkstra<pgr_dijkstra>` - Shortest Path Dijkstra"
-msgstr ":ref:`pgr_dijkstra<pgr_dijkstra>` - Camino más corto de Dijkstra"
-
-# 0d062718bba84332bc05094be53c7b0b
-#: ../../index.rst:98
-msgid ""
-":ref:`pgr_kDijkstra<pgr_kdijkstra>` - Mutliple destination Shortest Path "
-"Dijkstra"
-msgstr ":ref:`pgr_kDijkstra<pgr_kdijkstra>` -  Camino más corto camino con múltiples  destinos de Dijkstra"
-
-# 388e0ef15cac4c7a87ed5f5f7d164eab
-#: ../../index.rst:99
-msgid ":ref:`pgr_ksp<ksp>` - K-Shortest Path"
-msgstr ":ref:`pgr_ksp<ksp>` - K caminos más cortos"
-
-# 488a2b3901c548b394c466b7580ea9a4
-#: ../../index.rst:100
-msgid ":ref:`pgr_tsp<pgr_tsp>` - Traveling Sales Person"
-msgstr ":ref:`pgr_tsp<pgr_tsp>` - Vendeor Viajante"
-
-# dc4452cb04fb47fb9d72b4a408ffabeb
-#: ../../index.rst:101
-msgid ":ref:`pgr_trsp<trsp>` - Turn Restriction Shortest Path (TRSP)"
-msgstr ":ref:`pgr_trsp<trsp>` - Camino más corto con giros restringidos (TRSP)"
-
-# e49a23cdc901419e8a3d5f17ed6c6ea0
-#: ../../index.rst:103
-msgid ":ref:`dd_index`"
-msgstr ":ref:`dd_index`"
-
-# 4f472ddb75b84b6abd644e500b7415f4
-#: ../../index.rst:105
-msgid ":ref:`pgr_driving_distance` - Driving Distance"
-msgstr ":ref:`pgr_driving_distance`  - Distancia de Manejo"
-
-# 607bcbfc39c649a4b54020f8d62ce9d0
-#: ../../index.rst:106
-msgid ":ref:`pgr_alphaShape` - Alpha shape computation"
-msgstr ":ref:`pgr_alphashape` - Cómputo de forma alfa"
-
-# f2e6773ccf394c739af44245aaaf5d02
-#: ../../index.rst:107
-msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
-msgstr ":ref:`pgr_points_as_polygon` - Polígono alrededor del conjunto de puntos"
-
-# ef6b2fcc629f48c7b88d3ac78527893a
-#: ../../index.rst:110
-msgid ""
-":ref:`pgr_get_column_name` - to get the name of the column as is stored in "
-"the postgres administration tables."
-msgstr ":ref:`pgr_get_column_name`  para obtener el nombre de la columna como se almacena en las tablas de la administración de postgres."
-
-# b080d86d06dd4b248b6191f5c98ed0b7
-#: ../../index.rst:111
-msgid ""
-":ref:`pgr_get_table_name` - to retrieve the name of the table as is stored "
-"in the postgres administration tables."
-msgstr ":ref:`pgr_get_table_name` para obtener el nombre de la tabla tal cual se almacena en las tablas de la administración de postgres."
-
-# 187f8a7ace1944dda76ab8ae8460d727
-#: ../../index.rst:112
-msgid ":ref:`pgr_is_column_indexed` - to check if the column is indexed."
-msgstr ":ref:`pgr_is_column_indexed` para comprobar si la columna está indexada."
-
-# 767ec7460a314ae0ae3ad47836c94182
-#: ../../index.rst:113
-msgid ""
-":ref:`pgr_is_column_in_table` - to check only for the existance of the "
-"column."
-msgstr ":ref:`pgr_is_column_in_table` para revisar sólo la existencia de la columna."
-
-# 6d632e8288614fc59c04dbdfa5fceb36
-#: ../../index.rst:114
-msgid ""
-":ref:`pgr_point_to_id` -to insert/get the id of the inserted point in a "
-"vertices table."
-msgstr ":ref:`pgr_point_to_id` - para insertar o conseguir la identificación del punto insertado en una tabla de vértices."
-
-# fd1def8169f543b9afc595abde9021ef
-#: ../../index.rst:115
-msgid ""
-":ref:`pgr_quote_ident` - to quotes the input text to be used as an "
-"identifier in an SQL statement string."
-msgstr ":ref:`pgr_quote_ident` - pone entre comillas el texto de entrada para ser utilizado como un identificador en una cadena de instrucción SQL."
-
-# 79be0c2066f3417fb063d0f11b8858bb
-#: ../../index.rst:116
-msgid ":ref:`pgr_version` - to get pgRouting's version information."
-msgstr ":ref:`pgr_version` para obtener la versión actual de pgRouting."
-
-# e92514488cf348499952b55020516c0f
-#: ../../index.rst:117
-msgid ":ref:`pgr_versionless` - to compare two version numbers."
-msgstr ":ref:`pgr_versionless` - para comparar dos números de versión."
-
-# 52049dec1aa94a84b44977cf3645aeee
-#: ../../index.rst:118
-msgid ""
-":ref:`pgr_start_point` - to get the start point of a (multi)linestring."
-msgstr ":ref:`pgr_start_Point` para obtener el punto inicial de un (multi)linestring."
-
-# b58261fb708141cfbd15342b18e83df7
-#: ../../index.rst:119
-msgid ":ref:`pgr_end_point` - to get the end point of a (multi)linestring."
-msgstr ":ref:`pgr_end_Point` para obtener el punto final de un (multi)linestring."
-
-# ccf6b70d55024c8cb87cd02c497cd394
-#: ../../index.rst:138
-msgid "Developer"
-msgstr "Desarrolladores"
-
-# bc20d365d4514a6dbf644153d3323f8d
-#: ../../index.rst:145
-msgid ":ref:`change_log`"
-msgstr ":ref:`change_log`"
-
-# a6c26cabff9f4df5bbaa3de0ed924b11
-#: ../../index.rst:147
-msgid ":ref:`changelog_2_0`"
-msgstr ":ref:`changelog_2_0`"
-
-# 9d2d97e5ab6a4af08a3f5903f9a87114
-#: ../../index.rst:148
-msgid ":ref:`changelog_1_x`"
-msgstr ":ref:`changelog_1_x`"
-
-# d1533298308344f6bfa8e1644e3aace0
-#: ../../index.rst:157
-msgid "Indices and tables"
-msgstr "Índices y tablas"
-
-# e49a23cdc901419e8a3d5f17ed6c6ea0
-#: ../../index.rst:158
-msgid ":ref:`genindex`"
-msgstr ":ref:`genindex`"
-
-# 1572d01be82949ec8e487a5dc596b6a4
-#: ../../index.rst:159
-msgid ":ref:`search`"
-msgstr ":ref:`search`"
diff --git a/doc/i18n/es/LC_MESSAGES/doc/index_man.po b/doc/i18n/es/LC_MESSAGES/doc/index_man.po
deleted file mode 100644
index 56d58d8..0000000
--- a/doc/i18n/es/LC_MESSAGES/doc/index_man.po
+++ /dev/null
@@ -1,57 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-21 18:18+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 3f6e76c37d304447af292931aa52e56f
-#: ../../index_man.rst:13
-msgid "pgRouting Reference"
-msgstr "Referencias para pgRouting"
-
-# 8347fe2ff4be4f9fbcaafbad7adac911
-#: ../../index_man.rst:15
-msgid ""
-"pgRouting extends the `PostGIS <http://postgis.net>`_/`PostgreSQL "
-"<http://postgresql.org>`_ geospatial database to provide geospatial routing "
-"and other network analysis functionality."
-msgstr "pgRouting extiende a las bases de datos geoespaciales `PostGIS <http://postgis.net>`_ /`PostgreSQL <http://postgresql.org>`_ para proveer ruteo geoespacial y otras funcionalidades de análisis de redes."
-
-# 3f626ce82e7e467c8d0b401e6a88d9ca
-#: ../../index_man.rst:22
-msgid "pgRouting provides several :ref:`common functions <common>`:"
-msgstr "pgRouting provee varias :ref:`funciones comunes <common>`:"
-
-# 387e53a164e94fa1a2c34d515a8958d2
-#: ../../index_man.rst:36
-msgid "pgRouting defines a few :ref:`custom data types <data_types>`:"
-msgstr "pgRouting define algunos :ref:`tipos de datos personalizados <data_types>`:"
-
-# af0d92429b274dda891066d0b07d530f
-#: ../../index_man.rst:50
-msgid "pgRouting functions in alphabetical order:"
-msgstr "Funciones de pgRouting en orden alfabético:"
-
-# 9f2f876866c6467ba1b45223a42790c6
-#: ../../index_man.rst:66
-msgid "If pgRouting is compiled with \"Driving Distance\" enabled:"
-msgstr "Si  pgRouting es compilado con \"Distancia de Manejo\" habilitado:"
-
-# 1e0ce2246f904afbaf6c882025206eaa
-#: ../../index_man.rst:75
-msgid "Some functions from previous releases may have been removed."
-msgstr "Algunas funciones de versiones anteriores han sido eliminadas."
diff --git a/doc/i18n/es/LC_MESSAGES/doc/src/changelog/1_x.po b/doc/i18n/es/LC_MESSAGES/doc/src/changelog/1_x.po
deleted file mode 100644
index 5ce1f05..0000000
--- a/doc/i18n/es/LC_MESSAGES/doc/src/changelog/1_x.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-08-13 13:40+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 6a8f15af6c6d4c709a455b1e6e7913a8
-#: ../../src/changelog/1_x.rst:13
-msgid "pgRouting 1.x Release Notes"
-msgstr "Notas de versión de pgRouting 1.x "
-
-# 35ec395b4f35487d95e18e46599976e4
-#: ../../src/changelog/1_x.rst:15
-msgid ""
-"The following release notes have been copied from the previous "
-"``RELEASE_NOTES`` file and are kept as a reference. Release notes starting "
-"with :ref:`version 2.0.0 <changelog_2_0>` will follow a different schema."
-msgstr "Las siguientes notas han sido copiadas desde el archivo anterior de  ``RELEASE_NOTES`` y se mantienen como referencia. A partir de la versión :ref:`version 2.0.0 <changelog_2_0>` , las notas seguirán un esquema diferente."
-
-# 703dd8a8fe4d45c1859069c1117ec4b3
-#: ../../src/changelog/1_x.rst:20
-msgid "Changes for release 1.05"
-msgstr "Cambios para la versión 1.05"
-
-# e3f8283c49024042ad77d6924336865c
-# b2d8993542324fb6b2107164df0ba258
-# 88cd476b4bc3446b89dd63ea7ad91e56
-# d1043630671546faabf110ae51109494
-#: ../../src/changelog/1_x.rst:22 ../../src/changelog/1_x.rst:29
-#: ../../src/changelog/1_x.rst:50 ../../src/changelog/1_x.rst:57
-msgid "Bugfixes"
-msgstr "Corrección de errores"
-
-# faaf3c4aa64e4806b5b41ecb230f4466
-#: ../../src/changelog/1_x.rst:26
-msgid "Changes for release 1.03"
-msgstr "Cambios para la versión 1.03"
-
-# c258bbbcb3e2445f8f7eb9dde242b0e5
-#: ../../src/changelog/1_x.rst:28
-msgid "Much faster topology creation"
-msgstr "Creación de topología mucho más rápida"
-
-# 059297cbe42d4af6b72b9e0d2b6ad06e
-#: ../../src/changelog/1_x.rst:33
-msgid "Changes for release 1.02"
-msgstr "Cambios para la versión 1.02"
-
-# cb2792b313ca4c3fa513b9eb95c5de18
-# 5a7078f4834449bba4a61211426d8ed9
-#: ../../src/changelog/1_x.rst:35 ../../src/changelog/1_x.rst:42
-msgid "Shooting* bugfixes"
-msgstr "Corrección de errores de  Shooting* "
-
-# 5feb24afeb55480690c6589309388866
-#: ../../src/changelog/1_x.rst:36
-msgid "Compilation problems solved"
-msgstr "Se resolvieron problemas de compilación"
-
-# 0e0f4a9f6a22461baa8bc5da60cfd41b
-#: ../../src/changelog/1_x.rst:40
-msgid "Changes for release 1.01"
-msgstr "Cambios para la  versión 1.01"
-
-# 8ea96e385ab44490850a2a73aa013f9b
-#: ../../src/changelog/1_x.rst:46
-msgid "Changes for release 1.0"
-msgstr "Cambios para la versión 1.0"
-
-# efa896c6a92842fdabbf06c4f8c5b640
-#: ../../src/changelog/1_x.rst:48
-msgid "Core and extra functions are separated"
-msgstr "Núcleo y funciones adicionales están separadas"
-
-# 51ced072bcbc470c87cc5fd90912467f
-#: ../../src/changelog/1_x.rst:49
-msgid "Cmake build process"
-msgstr "Proceso de compilación con CMake "
-
-# ee707024082d499a962851a420e20d5f
-#: ../../src/changelog/1_x.rst:54
-msgid "Changes for release 1.0.0b"
-msgstr "Cambios para la versión 1.0.0b"
-
-# d94242dc07a94aa5b9cb20cd4fd8f85d
-#: ../../src/changelog/1_x.rst:56
-msgid "Additional SQL file with more simple names for wrapper functions"
-msgstr "Archivos SQL adicionales con nombres más simples para las funciones de la envolturas"
-
-# 178ec0ecd8a74084a59974d12e30f589
-#: ../../src/changelog/1_x.rst:61
-msgid "Changes for release 1.0.0a"
-msgstr "Cambios para la versión 1.0.0a"
-
-# 5591af5527fc4ff68fbcfb9268f20564
-#: ../../src/changelog/1_x.rst:63
-msgid "Shooting* shortest path algorithm for real road networks"
-msgstr "Algoritmo de ruta más corta Shooting\\* para redes de camino reales"
-
-# a0818010adb1442cbe7e345f95689509
-#: ../../src/changelog/1_x.rst:64
-msgid "Several SQL bugs were fixed"
-msgstr "Se arreglaron varios errores de SQL"
-
-# 41324ae038c94f6ea5a7bd9cc30e54fb
-#: ../../src/changelog/1_x.rst:68
-msgid "Changes for release 0.9.9"
-msgstr "Cambios para la versión 0.9.9"
-
-# b89bdfd11c2f4cf29ca3dd3cfd42cb8e
-#: ../../src/changelog/1_x.rst:70
-msgid "PostgreSQL 8.2 support"
-msgstr "Soporte PostgreSQL 8.2"
-
-# 302372f9f60f46d68b18a299cdfd55a6
-#: ../../src/changelog/1_x.rst:71
-msgid ""
-"Shortest path functions return empty result if they couldn’t find any path"
-msgstr "Funciones de ruta más cortos regresan nulo si no pudieron encontrar ningún camino"
-
-# 62b481cbf4d14ffcb2f17ad4a86dc60e
-#: ../../src/changelog/1_x.rst:75
-msgid "Changes for release 0.9.8"
-msgstr "Cambios para versión 0.9.8"
-
-# 1190ef59b8584d6d9c1fd248ca4fd970
-#: ../../src/changelog/1_x.rst:77
-msgid "Renumbering scheme was added to shortest path functions"
-msgstr "Esquema de numeración ha sido añadido a las funciones de ruta más cortos"
-
-# 33634f672fbb4bdbbfba7912efeca26d
-#: ../../src/changelog/1_x.rst:78
-msgid "Directed shortest path functions were added"
-msgstr "Se agregaron funciones de ruta más cortos dirigidas"
-
-# 13bb4413398f4f5d921257cdcab82564
-#: ../../src/changelog/1_x.rst:79
-msgid "routing_postgis.sql was modified to use dijkstra in TSP search"
-msgstr "routing_postgis.SQL fue modificado para utilizar dijkstra en la búsqueda TSP"
diff --git a/doc/i18n/es/LC_MESSAGES/doc/src/changelog/2_0.po b/doc/i18n/es/LC_MESSAGES/doc/src/changelog/2_0.po
deleted file mode 100644
index 1d7ada3..0000000
--- a/doc/i18n/es/LC_MESSAGES/doc/src/changelog/2_0.po
+++ /dev/null
@@ -1,171 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-23 15:40+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 74e7cac777254569ba4d691b13b71fb6
-#: ../../src/changelog/2_0.rst:13
-msgid "pgRouting 2.0 Release Notes"
-msgstr "Notas de la versión 2.0 de pgRouting "
-
-# 4a488611749d4e66b0259dbca6bb3a1f
-#: ../../src/changelog/2_0.rst:15
-msgid ""
-"With the release of pgRouting 2.0 the library has abandoned backwards "
-"compatibility to :ref:`pgRouting 1.x <changelog_1_x>` releases. We did this "
-"so we could restructure pgRouting, standardize the function naming, and "
-"prepare the project for future development. As a result of this effort, we "
-"have been able to simplify pgRouting, add significant new functionality, "
-"integrate documentation and testing into the source tree and make it easier "
-"for multiple developers to make contribution."
-msgstr "Con el lanzamiento de la versión 2.0 de pgRouting,   las bibliotecas dejan de tener compatibilidad con las versiones :ref:`pgRouting 1.x <changelog_1_x>` .  Se hizo esto para poder reestructurar pgRouting, estandarizando los nombres de las funciones y preparando el proyecto para el futuros desarrollos. Como resultado de este esfuerzo, hemos sido capaces de simplificar pgRouting, añadiendo funcionalidades importantes, integrando la documentación y probando el árbol del código fuen [...]
-
-# 0124322daba943368892e1a062e5a232
-#: ../../src/changelog/2_0.rst:17
-msgid ""
-"For important changes see the following release notes. To see the full list "
-"of changes check the list of `Git commits "
-"<https://github.com/pgRouting/pgrouting/commits>`_ on Github."
-msgstr "Para los cambios importantes, consulte las siguientes notas de la versión. Para ver la lista completa de cambios revise la lista de `Git commits <https://github.com/pgRouting/pgrouting/commits>`_ en Github."
-
-# 591de33525284db5b8eae7f12b38a366
-#: ../../src/changelog/2_0.rst:28
-msgid "Changes for 2.0.0"
-msgstr "Cambios en la versión 2.0.0"
-
-# 4d95000a614d4236a5cc53a2fc2f49ac
-#: ../../src/changelog/2_0.rst:30
-msgid ""
-"Graph Analytics - tools for detecting and fixing connection some problems in"
-" a graph"
-msgstr "Análisis gráfico - herramientas para detectar y arreglar algunos problemas de conexión en un gráfico de red"
-
-# 7b0e1ec73752479fabaaeb4964d2e802
-#: ../../src/changelog/2_0.rst:31
-msgid "A collection of useful utility functions"
-msgstr "Una colección de funciones útiles"
-
-# 2f200415daa94b76803619813ac6721a
-#: ../../src/changelog/2_0.rst:32
-msgid ""
-"Two new All Pairs Short Path algorithms (pgr_apspJohnson, pgr_apspWarshall)"
-msgstr "Dos nuevos algoritmos para el camino más corto de todos pares  (pgr_apspJohnson, pgr_apspWarshall)"
-
-# f254175913274f7a835197ece43e779e
-#: ../../src/changelog/2_0.rst:33
-msgid ""
-"Bi-directional Dijkstra and A-star search algorithms (pgr_bdAstar, "
-"pgr_bdDijkstra)"
-msgstr "Algoritmos para el Dijkstra bidireccional y la  búsqueda A*(pgr_bdAstar, pgr_bdDijkstra)"
-
-# 3c6748f59dcf427da34f9feed68058f9
-#: ../../src/changelog/2_0.rst:34
-msgid "One to many nodes search (pgr_kDijkstra)"
-msgstr "Búsqueda de uno a varios nodos (pgr_kDijkstra)"
-
-# f9d646b786144bd481006e74130f662e
-#: ../../src/changelog/2_0.rst:35
-msgid "K alternate paths shortest path (pgr_ksp)"
-msgstr " K rutas más cortas alternas de (pgr_ksp)"
-
-# 11ef9fff94d246b48fafc85bc8dc3925
-#: ../../src/changelog/2_0.rst:36
-msgid ""
-"New TSP solver that simplifies the code and the build process (pgr_tsp), "
-"dropped \"Gaul Library\" dependency"
-msgstr "Nuevo solucionador TSP  que simplifica el código donde  el proceso de compilación (pgr_tsp), ya no dependene de la biblioteca \"Gaul Library\" "
-
-# d1f317bb785d45fa861870a35ff12e7b
-#: ../../src/changelog/2_0.rst:37
-msgid "Turn Restricted shortest path (pgr_trsp) that replaces Shooting Star"
-msgstr "Ruta más corta con giros restringidos (pgr_trsp) que reemplaza a la estrella fugaz \"Shooting Star\""
-
-# 21689470d861417487dd6888bf38ae8b
-#: ../../src/changelog/2_0.rst:38
-msgid "Dropped support for Shooting Star"
-msgstr "Se deja de soportar a la Estrella fugaz \"Shooting Star\""
-
-# c293b041c6974506a333575050aca673
-#: ../../src/changelog/2_0.rst:39
-msgid ""
-"Built a test infrastructure that is run before major code changes are "
-"checked in"
-msgstr "Se construye una  infraestructura de pruebas que se ejecuta antes de que se incorporen grandes cambios al código principal."
-
-# 3c96b251f45b4603a3e474e14d3756a9
-#: ../../src/changelog/2_0.rst:40
-msgid ""
-"Tested and fixed most all of the outstanding bugs reported against 1.x that "
-"existing in the 2.0-dev code base."
-msgstr "Se probó y se arreglaron todos los errores excepcionales registrados en la versión 1.x existente en la base del código 2.0-dev."
-
-# ae370e64d8204092bca92f34ddc90a99
-#: ../../src/changelog/2_0.rst:41
-msgid "Improved build process for Windows"
-msgstr "Proceso de compilación mejorados para Windows"
-
-# 03319867fd7d47ecade2299089b90c8a
-#: ../../src/changelog/2_0.rst:42
-msgid ""
-"Automated testing on Linux and Windows platforms trigger by every commit"
-msgstr "Automatizado de pruebas en plataformas Linux y Windows por cada cambio permanente"
-
-# 8543438d8ac34db9816e97ca074dc4bc
-#: ../../src/changelog/2_0.rst:43
-msgid "Modular library design"
-msgstr "Diseño modular de bibliotecas"
-
-# 903ec2fa9bb64f87a98c97f8951780d1
-#: ../../src/changelog/2_0.rst:44
-msgid "Compatibility with PostgreSQL 9.1 or newer"
-msgstr "Compatibilidad con PostgreSQL 9.1 o posterior"
-
-# 73a67ebe3dbd4dc3a3c437b2180fed37
-#: ../../src/changelog/2_0.rst:45
-msgid "Compatibility with PostGIS 2.0 or newer"
-msgstr "Compatibilidad con PostGIS 2.0 o posterior"
-
-# 16e7796b31a94c2781e0f38903b17c26
-#: ../../src/changelog/2_0.rst:46
-msgid "Installs as PostgreSQL EXTENSION"
-msgstr "Se instala como EXTENSION de PostgreSQL"
-
-# d5d4a4a79da14ccea4bdbe1310cf5113
-#: ../../src/changelog/2_0.rst:47
-msgid "Return types refactored and unified"
-msgstr "Los Tipos de datos son unificados"
-
-# aeff1e0f8f5144a38127aabb5e2dc2fa
-#: ../../src/changelog/2_0.rst:48
-msgid "Support for table SCHEMA in function parameters"
-msgstr "Soporte para esquema en los parámetros de las funciones"
-
-# ae6e9cdcdc384571a1803e4b5e3e9718
-#: ../../src/changelog/2_0.rst:49
-msgid "Support for ``st_`` PostGIS function prefix"
-msgstr "Soporte para el prefijo ``st_`` de las funciones de PostGIS "
-
-# b0f6572717ed4979a266117c537f9a5d
-#: ../../src/changelog/2_0.rst:50
-msgid "Added ``pgr_`` prefix to functions and types"
-msgstr "Prefijo ``pgr_``  agregado a las funciones y tipos"
-
-# 6178fdcf0cd74f3898a7386ed99f36b4
-#: ../../src/changelog/2_0.rst:51
-msgid "Better documentation: http://docs.pgrouting.org"
-msgstr "Mejor documentación: http://docs.pgrouting.org"
diff --git a/doc/i18n/es/LC_MESSAGES/doc/src/changelog/index.po b/doc/i18n/es/LC_MESSAGES/doc/src/changelog/index.po
deleted file mode 100644
index c12b8af..0000000
--- a/doc/i18n/es/LC_MESSAGES/doc/src/changelog/index.po
+++ /dev/null
@@ -1,34 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (187a022 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-23 15:04\n"
-"PO-Revision-Date: 2013-09-23 20:40+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# f1e03235eb844796b93b887af790542d
-#: ../../src/changelog/index.rst:13
-msgid "Release Notes"
-msgstr "Notas de versión"
-
-# e9847f5eef6049318a942e17e6da2f58
-#: ../../src/changelog/index.rst:15
-msgid ":ref:`changelog_2_0`"
-msgstr ":ref:`changelog_2_0`"
-
-# 1b5ed5b08dee4c3fb08136bd010897ed
-#: ../../src/changelog/index.rst:16
-msgid ":ref:`changelog_1_x`"
-msgstr ":ref:`changelog_1_x`"
diff --git a/doc/i18n/es/LC_MESSAGES/doc/src/developer/discontinued.po b/doc/i18n/es/LC_MESSAGES/doc/src/developer/discontinued.po
deleted file mode 100644
index a8709e6..0000000
--- a/doc/i18n/es/LC_MESSAGES/doc/src/developer/discontinued.po
+++ /dev/null
@@ -1,56 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-08-12 01:30+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# ecfce536b0aa4abcb4b588ec5c569d01
-#: ../../src/developer/discontinued.rst:13
-msgid "Discontinued Functions"
-msgstr "Funciones Descontinuadas"
-
-# a62da7ecbf3e4e56817c5acd4b283ad1
-#: ../../src/developer/discontinued.rst:15
-msgid ""
-"Especially with new major releases functionality may change and functions "
-"may be discontinued for various reasons. Functionality that has been "
-"discontinued will be listed here."
-msgstr "La nueva funcionalidad de las versiones principales pueden ser cambiadas y, por ende, las funciones pueden ser descontinuadas por varias razones. La funcionalidad que ha sido descontinuada aparecerá aquí."
-
-# 778ac5fe0c47470883e33983eee7b86e
-#: ../../src/developer/discontinued.rst:22
-msgid "Shooting Star algorithm"
-msgstr "Algoritmo Shooting Star"
-
-# b6e21b5fe8ff45d3b6ae4cd3e21ff661
-#: ../../src/developer/discontinued.rst:24
-msgid "Removed with 2.0.0"
-msgstr "Descontinuada en 2.0.0"
-
-# 681aaa34e63344de87e7765476be87f2
-#: ../../src/developer/discontinued.rst:25
-msgid "Unresolved bugs, no maintainer, replaced with :ref:`trsp`"
-msgstr "Errores sin resolver, sin mantenimiento, sustituido con :ref:`trsp`"
-
-# c11387652cc84dd7ad0e964baff5182e
-#: ../../src/developer/discontinued.rst:26
-msgid ""
-"Please :ref:`contact us <support>` if you're interested to sponsor or "
-"maintain this algorithm. The function signature is still available in "
-":ref:`common_legacy` but it is just a wrapper that throws an error. We have "
-"not included any of the old code for this in this release."
-msgstr "Por favor :ref:`contáctenos <support>` si usted está interesado en patrocinar o mantener este algoritmo. La firma de la función sigue disponible en :ref:`common_legacy` pero es simplemente un contenedor que genera un error.  No hemos incluido ningún código anterior en esta versión."
diff --git a/doc/i18n/es/LC_MESSAGES/doc/src/developer/index.po b/doc/i18n/es/LC_MESSAGES/doc/src/developer/index.po
deleted file mode 100644
index cd3601d..0000000
--- a/doc/i18n/es/LC_MESSAGES/doc/src/developer/index.po
+++ /dev/null
@@ -1,246 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (187a022 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-23 15:04\n"
-"PO-Revision-Date: 2013-09-23 17:37+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# f28868894edd415ca79913b6f0e244b7
-#: ../../src/developer/index.rst:13
-msgid "Developer's Guide"
-msgstr "Guía del desarrollador"
-
-# 5c7d284d803042c0aa297ca41b59aac3
-#: ../../src/developer/index.rst:16
-msgid ""
-"All documentation should be in reStructuredText format. See: "
-"<http://docutils.sf.net/rst.html> for introductory docs."
-msgstr "Toda la documentación debe estar en formato reStructuredText. Ver http://docutils.sf.net/rst.html para documentaciones introductorias."
-
-# fd3435c9f90f438280eb94e20db8c6fd
-#: ../../src/developer/index.rst:20
-msgid "Source Tree Layout"
-msgstr "Diseño del árbol de la fuente"
-
-# 08c39ee5a8574bfb93d3a5203a6c206b
-#: ../../src/developer/index.rst:23
-msgid "cmake scripts used as part of our build system."
-msgstr "CMake scripts usados como parte de nuestro sistema de construcción."
-
-# 268498e509b04dd09f0678cf538a8be0
-#: ../../src/developer/index.rst:26
-msgid ""
-"This is the algorithm source tree. Each algorithm should be contained in its"
-" on sub-tree with doc, sql, src, and test sub-directories. This might get "
-"renamed to \"algorithms\" at some point."
-msgstr "Este es el árbol de código fuente de los algoritmos. Cada algoritmo debe estar contenido en su subárbol en con subdirectorios doc, sql, src y test. Esto puede ser renombrado a \"algorithms\" en algún momento."
-
-# d3989e3985544061a6084f85961bdbc6
-#: ../../src/developer/index.rst:31
-msgid ""
-"This is an implementation of A* Search based on using Boost Graph libraries "
-"for its implementation. This is a Dijkstra shortest path implementation with"
-" a Euclidean Heuristic."
-msgstr "Esto es una implementación de la búsqueda A\\*  basada en el uso de las bibliotecas de gráficas Boost  para su implementación. Esto es una implementación de ruta más corta de Dijkstra con una heurística euclidiana."
-
-# 8ff46e3f515e4df3b61b2e37998be2de
-#: ../../src/developer/index.rst:36
-msgid ""
-"At the moment this does not have an core in \"src\", but does have a lot of "
-"SQL wrapper code and topology code in the \"sql\" directory. *Algorithm "
-"specific wrappers should get move to the algorithm tree and appropriate "
-"tests should get added to validate the wrappers.*"
-msgstr "Por el momento esto no tiene un núcleo en \"src\", pero tiene varios códigos de contenedores de SQL y código de topología en el directorio \"sql\". *Algoritmos de Contenedores específicos serán movidos al árbol de algoritmos y se deben conseguir las pruebas adecuadas para validar los Contenedores.*"
-
-# 8c544813a7ed4b4ca7df0ae3f01909c5
-#: ../../src/developer/index.rst:42
-msgid ""
-"This is an implementation of Dikjstra's shortest path solution using Boost "
-"Graph libraries for the implementation."
-msgstr "Esto es una implementación de la solución de ruta más corta de Dikjstra usando las bibliotecas de gráficas Boost  para la aplicación."
-
-# dfe2e1dfa3d0464d87fac14b128155cc
-#: ../../src/developer/index.rst:46
-msgid ""
-"This optional package creates driving distance polygons based on solving a "
-"Dijkstra shortest path solution, then creating polygons based on equal cost "
-"distances from the start point. This optional package requires CGAL "
-"libraries to be installed."
-msgstr "Este paquete opcional crea polígonos de distancia de manejo basados en la solución de la ruta más corta de Dijkstra, luego crea polígonos basados en las distancias de igual costo desde el punto de inicial. Este paquete opcional requiere que las bibliotecas CGAL estén instaladas."
-
-# 4f4e1c860f13452b9aa2fad3fe00b756
-#: ../../src/developer/index.rst:52
-msgid ""
-"*DEPRECATED and DOES NOT WORK and IS BEING REMOVED* This is an edge based "
-"shortest path algorithm that supports turn restrictions. It is based on "
-"Boost Graph. Do *NOT* use this algorithm as it is broken, instead use *trsp*"
-" which has the same functionality and is faster and give correct results."
-msgstr "*OBSOLETO y NO FUNCIONA y está SIENDO ELIMINADO* este es un algoritmo basado algoritmo del camino más corto que soporta restricciones de giro. Se basa en las bibliotecas de gráficas Boost. *NO* usar este algoritmo ya que está roto, en su lugar usar *trsp* que tiene la misma funcionalidad, es más rápido y da resultados correctos."
-
-# a8264d72d19a45e183b7ef38fed374c4
-#: ../../src/developer/index.rst:59
-msgid ""
-"This is a turn restricted shortest path algorithm. It has some nice features"
-" like you can specify the start and end points as a percentage along an "
-"edge. Restrictions are stored in a separate table from the graph edges and "
-"this make it easier to manage the data."
-msgstr "Este es un algoritmo de ruta más corto giro restringido. Tiene algunas características como: poder especificar los puntos iniciales y finales en forma de porcentaje a lo largo de un borde. Las restricciones se almacenan en una tabla separada de los bordes del gráfico, haciendo mas sencilla la administración de los datos."
-
-# 92992e85c1984abeacc10828b636b37b
-#: ../../src/developer/index.rst:65
-msgid ""
-"This optional package provides the ability to compute traveling salesman "
-"problem solutions and compute the resulting route. This optional package "
-"requires GAUL libaries to be installed."
-msgstr "Este paquete opcional proporciona la capacidad de calcular soluciones de problema del vendedor viajante y calcular la ruta resultante. Este paquete opcional requiere las que las bibliotecas GAUL se encuentren instaladas."
-
-# afc268a384184a35a2ccf3b3faf2507e
-#: ../../src/developer/index.rst:70
-msgid "Miscellaneous scripts and tools."
-msgstr "Varios scripts y herramientas."
-
-# c7bdf010f55a48d788396bf4b9357c12
-#: ../../src/developer/index.rst:73
-msgid ""
-"This is the output directory where compiled libraries and installation "
-"targets are staged before installation."
-msgstr "Este es el directorio de salida donde se almacenan las bibliotecas compiladas y objetivos de la instalación antes de la instalación."
-
-# 31864fdbc2584791b41a9db64d200fe6
-#: ../../src/developer/index.rst:78
-msgid "Documentation Layout"
-msgstr "Diseño de documentación"
-
-# da1837b55e014ead8cdaa106a149fe5b
-#: ../../src/developer/index.rst:80
-msgid ""
-"*As noted above all documentation should be done using reStructuredText "
-"formated files.*"
-msgstr "*Como se señaló anteriormente, la documentación debe hacerse usando archivos con formato reStructuredText.*"
-
-# a4b7ec8d4b8745909277273aa141905a
-#: ../../src/developer/index.rst:83
-msgid ""
-"Documentation is distributed into the source tree. This top level \"doc\" "
-"directory is intended for high level documentation cover subjects like:"
-msgstr "La documentación se distribuye en el árbol de las fuentes. Este directorio \"doc\" de nivel superior está destinado a las portada de los temas de documentación de nivel alto como:"
-
-# 1374b2ec0aa74533a5df9290d750951f
-#: ../../src/developer/index.rst:86
-msgid "Compiling and testing"
-msgstr "Compilación y pruebas"
-
-# 084a68deab9b4285bc1fc7011f578d13
-#: ../../src/developer/index.rst:87
-msgid "Installation"
-msgstr "Instalación"
-
-# 42d9b895e2544dbbb89e0b050eb5ea54
-#: ../../src/developer/index.rst:88
-msgid "Tutorials"
-msgstr "Tutoriales"
-
-# 8f3cd82581d34b4ca447273e89877f88
-#: ../../src/developer/index.rst:89
-msgid "Users' Guide front materials"
-msgstr "Materiales para guía de los usuarios"
-
-# e984baa72b6844039419e00491240778
-#: ../../src/developer/index.rst:90
-msgid "Reference Manual front materials"
-msgstr "Materiales de manuales de referencia"
-
-# 4e38c58bd8e14226a20bfcbfd29b0cb8
-#: ../../src/developer/index.rst:91
-msgid "etc"
-msgstr "etc."
-
-# 1bb99d883cc7418482d545cdb0848334
-#: ../../src/developer/index.rst:93
-msgid ""
-"Since the algorithm specific documentation is contained in the source tree "
-"with the algorithm specific files, the process of building the documentation"
-" and publishing it will need to assemble the details with the front material"
-" as needed."
-msgstr "Puesto que la documentación específica del algoritmo se contiene en el árbol de código fuente con los archivos específicos de algoritmo, el proceso de construcción de la documentación y publicación tendrá que ensamblar los detalles con el material según se necesite."
-
-# 1711ca7d96774e1db5a0924e4d181cdd
-#: ../../src/developer/index.rst:98
-msgid ""
-"Also, to keep the \"doc\" directory from getting cluttered, each major book "
-"like those listed above, should be contained in a separate directory under "
-"\"doc\". Any images or other materials related to the book should also be "
-"kept in that directory."
-msgstr "También, para evitar que el directorio de \"doc\" se desordene, cada libro mayor, como los mencionados anteriormente, deberán estar incluidos en un directorio separado bajo el directorio \"doc\". Cualquier imágen u otros materiales relacionados con el libro,  deberán mantenerse en ese directorio."
-
-# 9a712178ea274d2582cfc6b8a9a3eec1
-#: ../../src/developer/index.rst:105
-msgid "Testing Infrastructure"
-msgstr "Pruebas de infraestructura"
-
-# 34eba7e1e4ce408489010fc1945222c1
-#: ../../src/developer/index.rst:107
-msgid ""
-"There is a very basic testing infrastructure put in place. Here are the "
-"basics of how it works. We need more test cases. Longer term we should "
-"probably get someone to setup travis-ci or jenkins testing frameworks."
-msgstr "Se proporciona una infraestructura de prueba muy básica. Aquí están los fundamentos del cómo funciona. Necesitamos más casos de prueba. A más largo plazo que probablemente se tendrá un encargado de configurar marcos de pruebas  travis-ci o jenkins ."
-
-# b879a887c3a644328d9fc9d27d3dfe26
-#: ../../src/developer/index.rst:111
-msgid "Here is the graph for the TRSP tests."
-msgstr "Aquí está el gráfico para las pruebas TRSP."
-
-# 60b9e076421a4b1da33afd40f94bd300
-#: ../../src/developer/index.rst:115
-msgid ""
-"Tests are run via the script at the top level tools/test-runner.pl and it "
-"runs all the test configured tests and at the moment just dumps the results "
-"structure of the test. This can be prettied up later."
-msgstr "Las pruebas se ejecutan mediante el script en el nivel superior tools/test-runner.pl y ejecuta todas la pruebas configuradas arrojando la estructura de resultados de la prueba. Esto puede ser mejorado en un futuro."
-
-# b06def8f37514c328b21791eb57e2d01
-#: ../../src/developer/index.rst:119
-msgid ""
-"It also assumes that you have installed the libraries as it tests using the "
-"installed postgresql. This probably needs to be made smarter so we can test "
-"out of the build tree. I'll need to think about that."
-msgstr "También supone que se tienen instaladas las bibliotecas ya que hace uso del postgresql instalado. Probablemente esto necesita mejorarse para poner probar el árbol de la construcción. Pensar en eso."
-
-# be3b92cedcec4b4fbf479d174a42eef6
-#: ../../src/developer/index.rst:124
-msgid ""
-"Basically each .../test/ directory should include one *test.conf* file that "
-"is a perl script fragment that defines what data files to load and what "
-"tests to run. I have built in some mechanisms to allow test and data to be "
-"pg version and postgis version specific, but I'm not using that yet. So for "
-"example, *core/trsp/test/test-any-00.data* is a sql plain text dump that "
-"will load and needed data for a set of tests. This is also the graph in the "
-"image above. You can specify multiple files to load, but as a group they "
-"need to have unique names."
-msgstr "Básicamente, cada directorio .../test/ debe incluir un *test.conf* Archivo que es un fragmento de script de perl que define  que  archivos de datos  cargar y las pruebas a ejecutar. Se ha desarrollado mecanismos para permitir que la prueba y los datos sean específicos para las versiones pg y PostGIS, pero no está habilitado todavía. Así que por ejemplo, *src/trsp/test/test-any-00.data* es un volcado dump de texto sin formato de sql que carga los datos necesarios para una serie de [...]
-
-# 63f7cc81e4084f5bb247374d7a084f89
-#: ../../src/developer/index.rst:133
-msgid ""
-"core/trsp/test/test-any-00.test is a sql command to be run. It will get run "
-"as:"
-msgstr "src/TRSP/test/test-any-00.test es un comando sql a ser  ejecutado. Se ejecutará como:"
-
-# 517a594dd4684e57bbf75d62fa3d4068
-#: ../../src/developer/index.rst:141
-msgid "Then if there is a difference then an test failure is reported."
-msgstr "Entonces si hay una diferencia se reporta el fracaso de la prueba."
diff --git a/doc/i18n/es/LC_MESSAGES/doc/src/developer/sampledata.po b/doc/i18n/es/LC_MESSAGES/doc/src/developer/sampledata.po
deleted file mode 100644
index c8d9618..0000000
--- a/doc/i18n/es/LC_MESSAGES/doc/src/developer/sampledata.po
+++ /dev/null
@@ -1,59 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-21 18:20+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 8292d60ebfc34fb492ea6193998bab3e
-#: ../../src/developer/sampledata.rst:13
-msgid "Sample Data"
-msgstr "Datos Muestra"
-
-# 4b0d58dd2dff4d9c97134f99fe6b536f
-#: ../../src/developer/sampledata.rst:15
-msgid ""
-"The documentation provides very simple example queries based on a small "
-"sample network. To be able to execute the sample queries, run the following "
-"SQL commands to create a table with a small network data set."
-msgstr "La documentación proporciona consultas de ejemplo muy simples basadas en una red muestra pequeña. Para ser capaz de ejecutar las consultas de la muestra, ejecute los siguientes comandos SQL para crear una tabla con el conjunto de datos de la red."
-
-# e01baf347c854525b5c3bdc1af8d1523
-#: ../../src/developer/sampledata.rst:20
-msgid "Create table"
-msgstr "Crear tabla"
-
-# f6ec8db09c164800a1e2d817a06e2a20
-#: ../../src/developer/sampledata.rst:40
-msgid "Insert network data"
-msgstr "Insertar los datos de la red"
-
-# 41d209ca693c4739986152fcdfcb3d25
-#: ../../src/developer/sampledata.rst:70
-msgid ""
-"Before you test a routing function use this query to fill the source and "
-"target columns."
-msgstr "Antes de probar la función de  enrrutamiento utilice esta consulta para llenar las columnas de origen ``source`` y de destino ``target``."
-
-# 449efcf19ef14ade9797f5818e87ab24
-#: ../../src/developer/sampledata.rst:77
-msgid "This table is used in some of our examples"
-msgstr "Esta tabla se utiliza en algunos de nuestros ejemplos"
-
-# eb2ac2aa18da494185f02f4a2fe0427d
-#: ../../src/developer/sampledata.rst:94
-msgid "The network created in *edge_table*"
-msgstr "La red creada en *edge_table*"
diff --git a/doc/i18n/es/LC_MESSAGES/doc/src/installation/build.po b/doc/i18n/es/LC_MESSAGES/doc/src/installation/build.po
deleted file mode 100644
index ef61e69..0000000
--- a/doc/i18n/es/LC_MESSAGES/doc/src/installation/build.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-21 19:10+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 36951e7f140d4d5b980b0b6a97a04faf
-#: ../../src/installation/build.rst:13
-msgid "Build Guide"
-msgstr "Guía de Compilación"
-
-# 8c64736c7cb4454d8d602456cae13eb7
-#: ../../src/installation/build.rst:15
-msgid ""
-"To be able to compile pgRouting make sure that the following dependencies "
-"are met:"
-msgstr "Para poder compilar pgRouting asegúrese de que se cumplan las siguientes dependencias:"
-
-# 803fb42d0ed746e7b1434fc0702fecc4
-#: ../../src/installation/build.rst:17
-msgid "C and C++ compilers"
-msgstr "Compiladores de C y C++"
-
-# c5384bc38f6745bd858daa8f2778464c
-#: ../../src/installation/build.rst:18
-msgid "Postgresql version >= 8.4 (>= 9.1 recommended)"
-msgstr "Postgresql versiones >= 8.4 (>= 9.1 recomendado)"
-
-# 7822317678024503afbe9da83351626f
-#: ../../src/installation/build.rst:19
-msgid "PostGIS version >= 1.5 (>= 2.0 recommended)"
-msgstr " PostGIS Versión> = 1.5 (> = 2.0 recomendado)"
-
-# 2092361736a94597ae950089f6baeb7c
-#: ../../src/installation/build.rst:20
-msgid "The Boost Graph Library (BGL). Version >= [TBD]"
-msgstr "La biblioteca de gráficos de Boost (BGL).  Versión > = [por determinarse]"
-
-# ad7f5e5325504267abb8922823e31b6c
-#: ../../src/installation/build.rst:21
-msgid "CMake >= 2.8.8"
-msgstr "CMake >= 2.8.8"
-
-# 9423854129e8411ca11bc2e79ed0a44e
-#: ../../src/installation/build.rst:22
-msgid "(optional, for Driving Distance) CGAL >= [TBD]"
-msgstr "(opcional, para la distancia de manejo) CGAL > = [por determinarse]"
-
-# fbff857abfa44607b05113423945439a
-#: ../../src/installation/build.rst:23
-msgid "(optional, for Documentation) Sphinx >= 1.1"
-msgstr "(opcional, para la documentación) Sphinx > = 1.1"
-
-# 48f6a3951914403f9e1b5ac7d64ada3f
-#: ../../src/installation/build.rst:24
-msgid "(optional, for Documentation as PDF) Latex >= [TBD]"
-msgstr "(opcional, para la documentación en formato PDF) Látex > = [TBD]"
-
-# c6b958f8611849fe90a824cc62db1a74
-#: ../../src/installation/build.rst:26
-msgid ""
-"The cmake system has variables the can be configured via the command line "
-"options by setting them with -D<varable>=<value>. You can get a listing of "
-"these via:"
-msgstr "El sistema cmake tiene variables la pueden configurarse mediante las opciones de línea de comandos con -D <varable>=<value>. Usted puede obtener un listado de estos mediante:"
-
-# 62a69adeee3141d5a7de8e0510818440
-#: ../../src/installation/build.rst:34
-msgid "Currently these are:"
-msgstr "Actualmente son:"
-
-# 35027a6663fc4210b027e5210150e681
-#: ../../src/installation/build.rst:36
-msgid ""
-"Boost_DIR:PATH=Boost_DIR-NOTFOUND CMAKE_BUILD_TYPE:STRING= "
-"CMAKE_INSTALL_PREFIX:PATH=/usr/local "
-"POSTGRESQL_EXECUTABLE:FILEPATH=/usr/lib/postgresql/9.2/bin/postgres "
-"POSTGRESQL_PG_CONFIG:FILEPATH=/usr/bin/pg_config WITH_DD:BOOL=ON "
-"WITH_DOC:BOOL=OFF BUILD_HTML:BOOL=ON BUILD_LATEX:BOOL=OFF BUILD_MAN:BOOL=ON"
-msgstr "Boost_DIR:Path = CMAKE_BUILD_TYPE:STRING Boost_DIR-NOTFOUND = CMAKE_INSTALL_PREFIX:PATH = / usr/local POSTGRESQL_EXECUTABLE:FILEPATH=/usr/lib/postgresql/9.2/bin/postgres POSTGRESQL_PG_CONFIG:FILEPATH = / usr/bin/pg_config WITH_DD:BOOL = ON WITH_DOC:BOOL = OFF BUILD_HTML:BOOL = ON BUILD_LATEX:BOOL = OFF BUILD_MAN:BOOL = ON"
-
-# 2a6ecc049d1a49e481516a497cb42cfd
-#: ../../src/installation/build.rst:47
-msgid ""
-"These also show the current or default values based on our development "
-"system. So your values my be different. In general the ones that are of most"
-" interest are:"
-msgstr "Estos también muestran los valores por defecto basados en nuestro sistema de desarrollo. Así que algunos de sus valores pueden ser diferentes en su sistema. En general los que son de mayor interés son:"
-
-# b07b4fda86d7472b823a2e8982cf6b05
-#: ../../src/installation/build.rst:49
-msgid ""
-"WITH_DD:BOOL=ON       -- Turn on/off building driving distance code. "
-"WITH_DOC:BOOL=OFF     -- Turn on/off building the documentation "
-"BUILD_HTML:BOOL=ON    -- If WITH_DOC=ON, turn on/off building HTML "
-"BUILD_LATEX:BOOL=OFF  -- If WITH_DOC=ON, turn on/off building PDF "
-"BUILD_MAN:BOOL=ON     -- If WITH_DOC=ON, turn on/off building MAN pages"
-msgstr "WITH_DD:bool = ON -- encender/apagar Distancia de Manejo.\nWITH_DOC:bool = OFF -- encender/apagar la documentación BUILD_HTML:BOOL  = ON -- con WITH_DOC = ON, encender/apagar HTML BUILD_LATEX:BOOL = OFF -- con WITH_DOC = ON, encender/apagar PDF BUILD_MAN:BOOL = ON -- si WITH_DOC = ON, encender/apagar MAN"
-
-# 1b3877776a474e2bbae2cdf632ab7898
-#: ../../src/installation/build.rst:55
-msgid ""
-"To change any of these add ``-D<variable>=<value>`` to the cmake lines "
-"below. For example to turn on documentation, your cmake command might look "
-"like:"
-msgstr "Para cambiar cualquiera de estos añadir ``-D<variable>=<value>`` a las líneas de cmake. Por ejemplo activar la documentación, el comando cmake:"
-
-# ce5663a99fe540e59ba79b8415f2e8cf
-#: ../../src/installation/build.rst:62
-msgid ""
-"If you turn on the documentation, you also need to add the ``doc`` target to"
-" the make command."
-msgstr "Si enciende la documentación, también tienes que añadir el objetivo ``doc`` al comando \"make\""
-
-# 3447ac18753a48cd8b36008a1c4c10c7
-#: ../../src/installation/build.rst:72
-msgid "For MinGW on Windows"
-msgstr "Para MinGW en Windows"
-
-# 9e2e9bb5dfd54856a24b3e0f455b0c82
-#: ../../src/installation/build.rst:84
-msgid "For Linux"
-msgstr "Para Linux"
-
-# 4939346c6ad34ddc92927ceeb1b5a543
-#: ../../src/installation/build.rst:96
-msgid "With Documentation"
-msgstr "Con la documentación"
-
-# a86f43c9a5b84d089caa0a06ac07f64c
-#: ../../src/installation/build.rst:98
-msgid ""
-"Build with documentation (requires `Sphinx <http://sphinx-doc.org/>`_):"
-msgstr "Construir con documentación (requiere `Sphinx <http://sphinx-doc.org/>`_):"
-
-# c9c92cc08d7440f98fe61e333ffc6fe6
-#: ../../src/installation/build.rst:106
-msgid "Rebuild modified documentation only:"
-msgstr "Reconstrucción de la documentación modificada solamente:"
diff --git a/doc/i18n/es/LC_MESSAGES/doc/src/installation/index.po b/doc/i18n/es/LC_MESSAGES/doc/src/installation/index.po
deleted file mode 100644
index 01b18a5..0000000
--- a/doc/i18n/es/LC_MESSAGES/doc/src/installation/index.po
+++ /dev/null
@@ -1,202 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-21 18:08+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# b41e3e6e82bc4cc1ae494ad03a5e3db0
-#: ../../src/installation/index.rst:13
-msgid "Installation"
-msgstr "Instalación"
-
-# c8a69d5d6c9242ad82bf2995a2d43c40
-#: ../../src/installation/index.rst:15
-msgid ""
-"Binary packages are provided for the current version on the following "
-"platforms:"
-msgstr "Paquetes binarios se proporcionan para la versión actual en las siguientes plataformas:"
-
-# 724bcb2a14ac419f99c2f7d5cfe22b6d
-#: ../../src/installation/index.rst:19
-msgid "Windows"
-msgstr "Windows"
-
-# b683dadc50114de7a4bd0073be4510cf
-#: ../../src/installation/index.rst:21
-msgid "Winnie Bot Experimental Builds:"
-msgstr "Construcciones experimentales Winnie Bot:"
-
-# 006e74f1eaf042779773f59248230fcb
-#: ../../src/installation/index.rst:23
-msgid ""
-"`PostgreSQL 9.2 32-bit, 64-bit "
-"<http://winnie.postgis.net/download/windows/pg92/buildbot/>`_"
-msgstr "`PostgreSQL 9.2 32-bit, 64-bit <http://winnie.postgis.net/download/windows/pg92/buildbot/>`_"
-
-# 7825f3f82e3e426188a552cac3d76d0c
-#: ../../src/installation/index.rst:27
-msgid "Ubuntu/Debian"
-msgstr "Ubuntu/Debian"
-
-# 5d5652a1d3a04382800239684a4d26cc
-#: ../../src/installation/index.rst:29
-msgid "Ubuntu packages are available in Launchpad repositories:"
-msgstr "Paquetes de Ubuntu están disponibles en los repositorios de Launchpad:"
-
-# 761afc4473ab4a35aff506637c8e80aa
-#: ../../src/installation/index.rst:31
-msgid "*stable* https://launchpad.net/~georepublic/+archive/pgrouting"
-msgstr "*estable* https://launchpad.net/~georepublic/+archive/pgrouting"
-
-# 6500186f8e3d42c88983fa564fc4facf
-#: ../../src/installation/index.rst:32
-msgid ""
-"*unstable* https://launchpad.net/~georepublic/+archive/pgrouting-unstable"
-msgstr "*inestable* https://launchpad.net/~georepublic/+archive/pgrouting-unstable"
-
-# 7050e2f75f7b42fea67597e63cf2f111
-#: ../../src/installation/index.rst:43
-msgid ""
-"Use `UbuntuGIS-unstable PPA <https://launchpad.net/~ubuntugis/+archive"
-"/ubuntugis-unstable>`_ to install PostGIS 2.0."
-msgstr "Usar el `PPA de UbuntuGIS-unstable <https://launchpad.net/~ubuntugis/+archive/ubuntugis-unstable>`_  para instalar PostGIS 2.0."
-
-# ce72f9b5cb814c5fb4a4ec48c0f7a294
-#: ../../src/installation/index.rst:47
-msgid "RHEL/CentOS/Fedora"
-msgstr "RHEL/CentOS/Fedora"
-
-# 06c08177883146369e10318b54f2662a
-#: ../../src/installation/index.rst:49
-msgid ""
-"Fedora RPM's: https://admin.fedoraproject.org/pkgdb/acls/name/pgRouting"
-msgstr "RPM de Fedora: https://admin.fedoraproject.org/pkgdb/acls/name/pgRouting"
-
-# b6146b0917b441268525a1fe54b0f17e
-#: ../../src/installation/index.rst:53
-msgid "OS X"
-msgstr "OS X"
-
-# cdc507aa586e4ac8b00a7d5818bde423
-#: ../../src/installation/index.rst:57
-msgid "Homebrew"
-msgstr "Homebrew"
-
-# e949ab234590487ca8c4cfa47be11908
-#: ../../src/installation/index.rst:65
-msgid "Source Package"
-msgstr "Paquete fuente"
-
-# ec1db5ae27a4451fae0ee5b486baa0db
-#: ../../src/installation/index.rst:68
-msgid "Git 2.0.0-rc1 release"
-msgstr "Git 2.0.0-rc1 release"
-
-# 8f33d62c1dda4436a3c0a75489dec129
-#: ../../src/installation/index.rst:68
-msgid "`v2.0.0-rc1.tar.gz`_"
-msgstr "`v2.0.0-rc1.tar.gz`_"
-
-# 4eb23002a0464e94a6e62cdef2c72234
-#: ../../src/installation/index.rst:68
-msgid "`v2.0.0-rc1.zip`_"
-msgstr "`v2.0.0-rc1.zip`_"
-
-# b5a17e917a89472c955c6f2cfdfff517
-#: ../../src/installation/index.rst:69
-msgid "Git 2.0.0-beta release"
-msgstr "Versión Git 2.0.0-beta"
-
-# 3db241a58e4c4d6f868116a6770030b5
-#: ../../src/installation/index.rst:69
-msgid "`v2.0.0-beta.tar.gz`_"
-msgstr "`v2.0.0-beta.tar.gz`_"
-
-# 1e21c08cc7c84816b3ca5cc813d1470d
-#: ../../src/installation/index.rst:69
-msgid "`v2.0.0-beta.zip`_"
-msgstr "`v2.0.0-beta.zip`_"
-
-# 2286b25add114b9e82622ff02d730a8e
-#: ../../src/installation/index.rst:70
-msgid "Git 2.0.0-alpha release"
-msgstr "Versión Git 2.0.0-alpha"
-
-# 3db12a14f5b94a0eae1772d2f84c9058
-#: ../../src/installation/index.rst:70
-msgid "`v2.0.0-alpha.tar.gz`_"
-msgstr "`v2.0.0-alpha.tar.gz`_"
-
-# 9ecc4cba22564943855591c0079db428
-#: ../../src/installation/index.rst:70
-msgid "`v2.0.0-alpha.zip`_"
-msgstr "`v2.0.0-alpha.zip`_"
-
-# 708d8ebb02c2479c86755b38333b9e3d
-#: ../../src/installation/index.rst:71
-msgid "Git master branch"
-msgstr "Rama principal de Git"
-
-# 07931d9e017b4fc7aabc4ca1affa9ec4
-#: ../../src/installation/index.rst:71
-msgid "`master.tar.gz`_"
-msgstr "`master.tar.gz`_"
-
-# 8ed2f03dcd4b4be1bfee86da4d9bcdc9
-#: ../../src/installation/index.rst:71
-msgid "`master.zip`_"
-msgstr "`master.zip`_"
-
-# bded77386d4a4124b17d0ee2903d5877
-#: ../../src/installation/index.rst:72
-msgid "Git develop branch"
-msgstr "Rama de desarrollo en Git"
-
-# 9da6c796cd3045c28c04775b7c49e27c
-#: ../../src/installation/index.rst:72
-msgid "`develop.tar.gz`_"
-msgstr "`develop.tar.gz`_"
-
-# 1671db28e6df4d6094c2fb0a5afe4106
-#: ../../src/installation/index.rst:72
-msgid "`develop.zip`_"
-msgstr "`develop.zip`_"
-
-# 5a32f08a903c487092dbfb1eae278d84
-#: ../../src/installation/index.rst:92
-msgid "Using Git"
-msgstr "Usando Git"
-
-# f1630712900a49db825c618380b4a713
-#: ../../src/installation/index.rst:94
-msgid "Git protocol (read-only):"
-msgstr "Protocolo de Git (solo lectura):"
-
-# 9c36f0b296a343ea9c7103d514b6af07
-#: ../../src/installation/index.rst:101
-msgid "HTTPS protocol (read-only): .. code-block:: bash"
-msgstr "Usando HTTPS protocol de git (solo lectura)"
-
-# 79827ebd49da4add88e7275c6abc8a5d
-#: ../../src/installation/index.rst:104
-msgid "git clone https://github.com/pgRouting/pgrouting.git"
-msgstr "git clone https://github.com/pgRouting/pgrouting.git"
-
-# 00af13df90844038a100e3ed84ea8572
-#: ../../src/installation/index.rst:107
-msgid "See :ref:`build` for notes on compiling from source."
-msgstr "Ver :ref:`build` para notas sobre la compilación desde la fuente."
diff --git a/doc/i18n/es/LC_MESSAGES/doc/src/introduction/index.po b/doc/i18n/es/LC_MESSAGES/doc/src/introduction/index.po
deleted file mode 100644
index e012d5c..0000000
--- a/doc/i18n/es/LC_MESSAGES/doc/src/introduction/index.po
+++ /dev/null
@@ -1,34 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-21 18:07+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 3cb0b7c03fa84c59a8bdb4f5efd33fec
-#: ../../src/introduction/index.rst:23
-msgid "Indices and tables"
-msgstr "Índices y tablas"
-
-# 8cbfd2a6f6d44a1599cfff832b626535
-#: ../../src/introduction/index.rst:24
-msgid ":ref:`genindex`"
-msgstr ":ref:`índice <genindex>`"
-
-# df46715e85104bf48ebb9fb9005099e0
-#: ../../src/introduction/index.rst:25
-msgid ":ref:`search`"
-msgstr ":ref:`Búsqueda <search>`"
diff --git a/doc/i18n/es/LC_MESSAGES/doc/src/introduction/introduction.po b/doc/i18n/es/LC_MESSAGES/doc/src/introduction/introduction.po
deleted file mode 100644
index 815fa95..0000000
--- a/doc/i18n/es/LC_MESSAGES/doc/src/introduction/introduction.po
+++ /dev/null
@@ -1,188 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-23 15:12+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# d7ca13e272ea4f9a9007e75f83ccda07
-#: ../../src/introduction/introduction.rst:13
-msgid "Introduction"
-msgstr "Introducción"
-
-# da484b645bf24737937b91b50cb8db89
-#: ../../src/introduction/introduction.rst:15
-msgid ""
-"pgRouting is an extension of `PostGIS <http://postgis.net>`_ and `PostgreSQL"
-" <http://postgresql.org>`_ geospatial database and adds routing and other "
-"network analysis functionality. A predecessor of pgRouting – pgDijkstra, "
-"written by Sylvain Pasche from `Camptocamp <http://camptocamp.com>`_, was "
-"later extended by `Orkney <http://www.orkney.co.jp>`_ and renamed to "
-"pgRouting. The project is now supported and maintained by `Georepublic "
-"<http://georepublic.info>`_, `iMaptools <http://imaptools.com/>`_ and a "
-"broad user community."
-msgstr "pgRouting extiende a la base de datos geoespacial `PostGIS <http://postgis.net>`_/`PostgreSQL <http://postgresql.org>`_ para proveer ruteo geoespacial y funcionalidad de análisis de redes. Un predecesor de pgRouting – pgDijkstra, escrito por Sylvain Pasche de `Camptocamp <http://camptocamp.com>`_, fue extendido más tarde por `Orkney <http://www.orkney.co.jp>`_ y renombrado como pgRouting. Este proyecto es apoyado y mantenido por `Georepublic <http://georepublic.info>`_, `iMaptool [...]
-
-# 809f2467c4ee44b093b8ad8386624187
-#: ../../src/introduction/introduction.rst:17
-msgid ""
-"pgRouting is an `OSGeo Labs <http://wiki.osgeo.org/wiki/OSGeo_Labs>`_ "
-"project of the `OSGeo Foundation <http://osgeo.org>`_ and included on `OSGeo"
-" Live <http://live.osgeo.org/>`_."
-msgstr "pgRouting es un proyecto de `OSGeo Labs <http://wiki.osgeo.org/wiki/OSGeo_Labs>`_ de la  `Fundación OSGeo  <http://osgeo.org>`_ y es incluido en `OSGeo Live <http://live.osgeo.org/>`_."
-
-# 16be225589d54868a6e1b06785c71bec
-#: ../../src/introduction/introduction.rst:23
-msgid "License"
-msgstr "Licencias"
-
-# c408c4a83f184155aa9880e36ca889d0
-#: ../../src/introduction/introduction.rst:25
-msgid "The following licenses can be found in pgRouting:"
-msgstr "Las siguientes licencias pueden ser encontradas en pgRouting:"
-
-# 31c7be72dc384ef29713eaf2fd580192
-#: ../../src/introduction/introduction.rst:30
-msgid "**License**"
-msgstr "**Licencia**"
-
-# 74c1c3a9531243488b0c52134c79e04a
-#: ../../src/introduction/introduction.rst:32
-msgid "GNU General Public License, version 2"
-msgstr "Licencia pública general GNU , versión 2"
-
-# 68b6976ef3b147ebba541311f30c1a4d
-#: ../../src/introduction/introduction.rst:33
-msgid ""
-"Most features of pgRouting are available under `GNU General Public License, "
-"version 2 <http://www.gnu.org/licenses/gpl-2.0.html>`_."
-msgstr "La mayoría de las características de pgRouting están disponibles bajo la `Licencia pública general GNU, version 2 <http://www.gnu.org/licenses/gpl-2.0.html>`_."
-
-# 3a0945a2b9214644850ca56e273bc01e
-#: ../../src/introduction/introduction.rst:34
-msgid "Boost Software License - Version 1.0"
-msgstr "Licencia de Software Boost - Version 1.0"
-
-# e7bd7b9a9dda4730905a2cc4a3e16112
-#: ../../src/introduction/introduction.rst:35
-msgid ""
-"Some Boost extensions are available under `Boost Software License - Version "
-"1.0 <http://www.boost.org/LICENSE_1_0.txt>`_."
-msgstr "Algunas extensiones de Boost están disponibles bajo la `Licencia de Software de Boost - versión 1.0 <http://www.boost.org/LICENSE_1_0.txt>`_."
-
-# 16c42cd30ff24da4bbded95fbf9e66b0
-#: ../../src/introduction/introduction.rst:36
-msgid "MIT-X License"
-msgstr "Licencia MIT-X"
-
-# d5e17519bd0d4f59bf932309fab800c8
-#: ../../src/introduction/introduction.rst:37
-msgid ""
-"Some code contributed by iMaptools.com is available under MIT-X license."
-msgstr "Parte del código es contribución de iMaptools.com y está disponibe bajo la licencia MIT-X."
-
-# 88d424e5e3f24713be7c34ccce6d1e57
-#: ../../src/introduction/introduction.rst:38
-msgid "Creative Commons Attribution-Share Alike 3.0 License"
-msgstr "Licencia de Creative Commons Attribution-Share Alike 3.0 "
-
-# 54ef0939d7e94434a2552d2bb3d79fba
-#: ../../src/introduction/introduction.rst:39
-msgid ""
-"The pgRouting Manual is licensed under a `Creative Commons Attribution-Share"
-" Alike 3.0 License <http://creativecommons.org/licenses/by-sa/3.0/>`_."
-msgstr "El manual de pgRouting Manual está bajo la  `Licencia Creative Commons Attribution-Share Alike 3.0  <http://creativecommons.org/licenses/by-sa/3.0/>`_."
-
-# 5e7f1f01c52346069889d0578d72e8da
-#: ../../src/introduction/introduction.rst:41
-msgid ""
-"In general license information should be included in the header of each "
-"source file."
-msgstr "En general, la información de las licencias debe estar incluida en la cabecera de cada archivo de origen."
-
-# 9224c9bd3c5249ea9feb85e27d6161aa
-#: ../../src/introduction/introduction.rst:45
-msgid "Contributors"
-msgstr "Colaboradores"
-
-# a90f02bef3f64bc4994f0afbbb67b8ca
-#: ../../src/introduction/introduction.rst:48
-msgid "Individuals (in alphabetical order)"
-msgstr "Personas (en orden alfabético)"
-
-# 1d2ac5417c2b484db8aec0192b7843fd
-#: ../../src/introduction/introduction.rst:50
-msgid ""
-"Akio Takubo, Anton Patrushev, Ashraf Hossain, Christian Gonzalez, Daniel "
-"Kastl, Dave Potts, David Techer, Ema Miyawaki, Florian Thurkow, Frederic "
-"Junod, Gerald Fenoy, Jay Mahadeokar, Jinfu Leng, Kai Behncke, Kishore Kumar,"
-" Ko Nagase, Mario Basa, Martin Wiesenhaan, Razequl Islam, Stephen "
-"Woodbridge, Sylvain Housseman, Sylvain Pasche, Virginia Vergara"
-msgstr "Akio Takubo, Anton Patrushev, Ashraf Hossain, Christian Gonzalez, Daniel Kastl, Dave Potts, David Techer, Ema Miyawaki, Florian Thurkow, Frederic Junod, Gerald Fenoy, Jay Mahadeokar, Jinfu Leng, Kai Behncke, Kishore Kumar, Ko Nagase, Mario Basa, Martin Wiesenhaan, Razequl Islam, Stephen Woodbridge, Sylvain Housseman, Sylvain Pasche, Virginia Vergara"
-
-# 573e14f52e5948dba921408454b6d775
-#: ../../src/introduction/introduction.rst:54
-msgid "Corporate Sponsors (in alphabetical order)"
-msgstr "Patrocinadores corporativos (en orden alfabético)"
-
-# ad2024213fb347d781158d36b80dfa17
-#: ../../src/introduction/introduction.rst:56
-msgid ""
-"These are corporate entities that have contributed developer time, hosting, "
-"or direct monetary funding to the pgRouting project:"
-msgstr "Estas son las entidades corporativas que han contribuido con tiempo de desarrollo, alojamiento,  o financiamiento monetario directo al proyecto de pgRouting:"
-
-# 09f8287921f74248909e1cf3831f2b96
-#: ../../src/introduction/introduction.rst:58
-msgid ""
-"Camptocamp, CSIS (University of Tokyo), Georepublic, Google Summer of Code, "
-"iMaptools, Orkney, Paragon Corporation"
-msgstr "Camptocamp, CSIS (Universidad de Tokyo), Georepublic, Google Summer of Code, iMaptools, Orkney, Paragon Corporation"
-
-# 4cdcc401254446eb9d46bda960475fc9
-#: ../../src/introduction/introduction.rst:62
-msgid "More Information"
-msgstr "Más Información"
-
-# 4bf76e2626a34595ab551ac18bd46a72
-#: ../../src/introduction/introduction.rst:64
-msgid ""
-"The latest software, documentation and news items are available at the "
-"pgRouting web site http://pgrouting.org."
-msgstr "Los últimos productos de software, documentación y las noticias están disponibles en el sitio web pgRouting  http://pgrouting.org."
-
-# 7344febf35dc4a0ebc352f5786f756b0
-#: ../../src/introduction/introduction.rst:65
-msgid ""
-"PostgreSQL database server at the PostgreSQL main site "
-"http://www.postgresql.org."
-msgstr "El servidor de base de datos PostgreSQL está en el sitio principal de PostgreSQL http://www.postgresql.org."
-
-# cc976f5cf90846e6b5e9dac7197bed3d
-#: ../../src/introduction/introduction.rst:66
-msgid "PostGIS extension at the PostGIS project web site http://postgis.net."
-msgstr "La extensión PostGIS están en el sitio web del proyecto PostGIS http://postgis.net."
-
-# b8f01943a50a46e8add511936f5a97c4
-#: ../../src/introduction/introduction.rst:67
-msgid "Boost C++ source libraries at http://www.boost.org."
-msgstr "Las bibliotecas fuentes de Boost C++ están en http://www.boost.org."
-
-# 65e6bb0c75f54944a362439ff74f327d
-#: ../../src/introduction/introduction.rst:68
-msgid ""
-"Computational Geometry Algorithms Library (CGAL) at http://www.cgal.org."
-msgstr "La biblioteca de algoritmos geométricos computacionales (CGAL) están en http://www.cgal.org."
diff --git a/doc/i18n/es/LC_MESSAGES/doc/src/introduction/support.po b/doc/i18n/es/LC_MESSAGES/doc/src/introduction/support.po
deleted file mode 100644
index 3df5048..0000000
--- a/doc/i18n/es/LC_MESSAGES/doc/src/introduction/support.po
+++ /dev/null
@@ -1,220 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-21 16:10+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# c7c0c737d2bc483ca92c96d3625c5985
-#: ../../src/introduction/support.rst:13
-msgid "Support"
-msgstr "Soporte"
-
-# 32ad6c32431b44539592025892c46046
-#: ../../src/introduction/support.rst:15
-msgid ""
-"pgRouting community support is available through `website "
-"<http://www.pgrouting.org>`_, `documentation <http://docs.pgrouting.org>`_, "
-"tutorials, mailing lists and others. If you’re looking for :ref:`commercial "
-"support <support_commercial>`, find below a list of companies providing "
-"pgRouting development and consulting services."
-msgstr "Ayudas comunitarias de pgRouting son a través del sitio `pgrouting <http://www.pgrouting.org>`_, `documentación <http://docs.pgrouting.org>`_,  tutoriales, listas de correo y otros. Si usted está buscando :ref:`apoyo comercial  <support_commercial>`, a continuación encontrará una lista de las empresas que prestan servicios de consultoría y de desarrollo para pgRouting."
-
-# 4bff50a608f740b89877515e393b43a3
-#: ../../src/introduction/support.rst:19
-msgid "Reporting Problems"
-msgstr "Reporte de problemas"
-
-# a0003d2bba284084b83f648947e1d28a
-#: ../../src/introduction/support.rst:21
-msgid ""
-"Bugs are reported and managed in an `issue tracker "
-"<https://github.com/pgrouting/pgrouting/issues>`_. Please follow these "
-"steps:"
-msgstr "Errores son registrados y manejados en un `issue tracker <https://github.com/pgrouting/pgrouting/issues>`_. Por favor siga los siguientes pasos:"
-
-# 456e34fdd1a64ac2bf279b123f8c60ec
-#: ../../src/introduction/support.rst:23
-msgid ""
-"Search the tickets to see if your problem has already been reported. If so, "
-"add any extra context you might have found, or at least indicate that you "
-"too are having the problem. This will help us prioritize common issues."
-msgstr "Buscar en las entradas para ver si ya se ha informado de su problema. Si es así, añadir cualquier contexto extra que usted haya encontrado, o al menos indicar que también está teniendo el problema. Esto nos ayudará a priorizar los problemas más comunes."
-
-# c7868bf251024c2284115bdc5ff6a56a
-#: ../../src/introduction/support.rst:24
-msgid ""
-"If your problem is unreported, create a `new issue "
-"<https://github.com/pgRouting/pgrouting/issues/new>`_ for it."
-msgstr "Si el problema no está reportado , crear una `nueva entrada <https://github.com/pgRouting/pgrouting/issues/new>`_ para el problema."
-
-# 8780a71171ad4ee891831e77e352e463
-#: ../../src/introduction/support.rst:25
-msgid ""
-"In your report include explicit instructions to replicate your issue. The "
-"best tickets include the exact SQL necessary to replicate a problem."
-msgstr "En su informe incluya instrucciones explícitas para reproducir el problema. Las mejores entradas incluyen consultas SQL exactas que se necesitan para reproducir el problema."
-
-# e37493a4d9354b66abcd37cee8516738
-#: ../../src/introduction/support.rst:26
-msgid ""
-"If you can test older versions of PostGIS for your problem, please do. On "
-"your ticket, note the earliest version the problem appears."
-msgstr "Si usted puede probar las versiones anteriores de PostGIS para su problema, por favor hágalo. En su reporte, tenga en cuenta la versión más antigua en la que aparezca el problema."
-
-# 2fb24e96127c45d08bb73c55f52a7153
-#: ../../src/introduction/support.rst:27
-msgid ""
-"For the versions where you can replicate the problem, note the operating "
-"system and version of pgRouting, PostGIS and PostgreSQL."
-msgstr "Para las versiones donde se puede reproducir el problema, anote el sistema operativo y la versión de pgRouting, PostGIS y PostgreSQL."
-
-# a663e12c88ed4c958554c604f0b6d4d0
-#: ../../src/introduction/support.rst:28
-msgid ""
-"It is recommended to use the following wrapper on the problem to pin point "
-"the step that is causing the problem."
-msgstr "Se recomienda que utilice el siguiente envoltorio en su problema para determinar el paso que está causando el problema"
-
-# 47052f7fae7249d6ae1cf64282ceb59c
-#: ../../src/introduction/support.rst:39
-msgid "Mailing List and GIS StackExchange"
-msgstr "Listas de correo y GIS StackExchange"
-
-# 27b8ce0f71384ba693efcb0dfb73ae3a
-#: ../../src/introduction/support.rst:41
-msgid ""
-"There are two mailing lists for pgRouting hosted on OSGeo mailing list "
-"server:"
-msgstr "Hay dos listas de correo para pgRouting alojados en las listas de correo del Servidor de OSGeo:"
-
-# 80462e7382f24471ba09d7fd3a545a9e
-#: ../../src/introduction/support.rst:43
-msgid ""
-"User mailing list: http://lists.osgeo.org/mailman/listinfo/pgrouting-users"
-msgstr "Lista de correos para usuarios: http://lists.osgeo.org/mailman/listinfo/pgrouting-users"
-
-# 13e85084f4834b80bc71de82070cd045
-#: ../../src/introduction/support.rst:44
-msgid ""
-"Developer mailing list: http://lists.osgeo.org/mailman/listinfo/pgrouting-"
-"dev"
-msgstr "Lista de correo para desarrolladores: http://lists.osgeo.org/mailman/listinfo/pgrouting-dev"
-
-# 1c9e5bb5962e4e0eb6def2fb057836f0
-#: ../../src/introduction/support.rst:46
-msgid ""
-"For general questions and topics about how to use pgRouting, please write to"
-" the user mailing list."
-msgstr "Para preguntas generales y tópicos sobre el uso pgRouting, escriba a la lista de correo para usuario."
-
-# 6ee669e36133404c80e8b4970948411f
-#: ../../src/introduction/support.rst:48
-msgid ""
-"You can also ask at `GIS StackExchange <http://gis.stackexchange.com/>`_ and"
-" tag the question with ``pgrouting``. Find all questions tagged with "
-"``pgrouting`` under http://gis.stackexchange.com/questions/tagged/pgrouting "
-"or subscribe to the `pgRouting questions feed "
-"<http://gis.stackexchange.com/feeds/tag?tagnames=pgrouting&sort=newest>`_."
-msgstr "También se puede preguntar en `StackExchange GIS <http://gis.stackexchange.com/>`_ y etiquetar la pregunta con ``pgRouting``. Buscar todas las preguntas con la etiqueta ``pgRouting`` bajo http://gis.stackexchange.com/questions/tagged/pgrouting o suscribirse al `Alimentador de preguntas de pgRouting <http://gis.stackexchange.com/feeds/tag?tagnames=pgrouting&sort=newest>`_."
-
-# 6a373e258f034db7a828d6136b10d6f2
-#: ../../src/introduction/support.rst:54
-msgid "Commercial Support"
-msgstr "Soporte Comercial"
-
-# cc0ba72823c14231862a66b9ae93346a
-#: ../../src/introduction/support.rst:56
-msgid ""
-"For users who require professional support, development and consulting "
-"services, consider contacting any of the following organizations, which have"
-" significantly contributed to the development of pgRouting:"
-msgstr "Para usuarios que requieren apoyo profesional, desarrollo y servicios de consultoría, considere ponerse en contacto con cualquiera de las siguientes organizaciones, que han contribuido significativamente al desarrollo de pgRouting:"
-
-# 67e18fa7bf2148078cd7d3f651ee5127
-#: ../../src/introduction/support.rst:61
-msgid "**Company**"
-msgstr "**Empresa**"
-
-# 19beaf22bba14bad81ecc361e70f065f
-#: ../../src/introduction/support.rst:62
-msgid "**Offices in**"
-msgstr "**Oficinas en**"
-
-# 0fab02b12f7a41429938b4d160ad4255
-#: ../../src/introduction/support.rst:63
-msgid "**Website**"
-msgstr "**Sitio web**"
-
-# 350e6cd672124438a6fa234a5c635414
-#: ../../src/introduction/support.rst:64
-msgid "Georepublic"
-msgstr "Georepublic"
-
-# dd5cf051ee424f30aebcd1f07cb73b6e
-#: ../../src/introduction/support.rst:65
-msgid "Germany, Japan"
-msgstr "Alemania, Japón"
-
-# 466fe62593f94b62a69ead6e8a03565b
-#: ../../src/introduction/support.rst:66
-msgid "http://georepublic.info"
-msgstr "http://georepublic.info"
-
-# addd13f2e8ba4a588f031b6f49ee8928
-#: ../../src/introduction/support.rst:67
-msgid "iMaptools"
-msgstr "iMaptools"
-
-# a8daac2def214afc8d8ceb9a27d25589
-#: ../../src/introduction/support.rst:68
-msgid "United States"
-msgstr "Estados Unidos"
-
-# 08a0ae9e94434d9bb44c3c8403243f3f
-#: ../../src/introduction/support.rst:69
-msgid "http://imaptools.com"
-msgstr "http://imaptools.com"
-
-# de65746683f949569928286d2b94e0c9
-#: ../../src/introduction/support.rst:70
-msgid "Orkney Inc."
-msgstr "Orkney Inc."
-
-# f9673096ad4b4c9fb435f7e806e95b68
-#: ../../src/introduction/support.rst:71
-msgid "Japan"
-msgstr "Japón"
-
-# d23116ef9a0f4feba31c83b54b3e823f
-#: ../../src/introduction/support.rst:72
-msgid "http://www.orkney.co.jp"
-msgstr "http://www.orkney.co.jp"
-
-# dceb3f34abe74bfbad46c5a5e37c852b
-#: ../../src/introduction/support.rst:73
-msgid "Camptocamp"
-msgstr "Camptocamp"
-
-# 6bb5afc92f294b7e8322302390f56fec
-#: ../../src/introduction/support.rst:74
-msgid "Switzerland, France"
-msgstr "Suiza, Francia"
-
-# bd2983c88d074017be19551e6cf11fff
-#: ../../src/introduction/support.rst:75
-msgid "http://www.camptocamp.com"
-msgstr "http://www.camptocamp.com"
diff --git a/doc/i18n/es/LC_MESSAGES/doc/src/tutorial/analytics.po b/doc/i18n/es/LC_MESSAGES/doc/src/tutorial/analytics.po
deleted file mode 100644
index 68f8a3b..0000000
--- a/doc/i18n/es/LC_MESSAGES/doc/src/tutorial/analytics.po
+++ /dev/null
@@ -1,215 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-21 18:44+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 980fad1a06484f7c8cef9a7fde4958ec
-#: ../../src/tutorial/analytics.rst:13
-msgid "Graph Analytics"
-msgstr "Análisis de gráficas"
-
-# 92dfdaca18154d5fb972e4b0377224d1
-#: ../../src/tutorial/analytics.rst:15
-msgid "Stephen Woodbridge <woodbri at swoodbridge.com>"
-msgstr "Stephen Woodbridge <woodbri at swoodbridge.com>"
-
-# 9d29818196394fe6bde3a64a6a4ecc11
-#: ../../src/tutorial/analytics.rst:16
-msgid ""
-"Stephen Woodbridge. The source code is released under the MIT-X license."
-msgstr "Stephen Woodbridge. El código fuente está liberado bajo la licencia MIT-X."
-
-# 310f125aa8204065bcc2b95d49db2196
-#: ../../src/tutorial/analytics.rst:20
-msgid "Overview"
-msgstr "Resumen"
-
-# a3236e530b504e8895bcee266c2f686b
-#: ../../src/tutorial/analytics.rst:22
-msgid ""
-"It is common to find problems with graphs that have not been constructed "
-"fully noded or in graphs with z-levels at intersection that have been "
-"entered incorrectly. An other problem is one way streets that have been "
-"entered in the wrong direction. We can not detect errors with respect to "
-"\"ground\" truth, but we can look for inconsistencies and some anomalies in "
-"a graph and report them for additional inspections."
-msgstr "Es común encontrar problemas con los gráficos que no se han construido completamente ligados con nodos o con gráficos con niveles z en intersecciónes que se han introducido incorrectamente. Otro problema es que las calles han sido introducidas en la dirección equivocada. No podemos detectar errores con respecto a la verdad respecto a la \"tierra\", pero podemos buscar inconsistencias y algunas anomalías en un gráfico y les reportarlas para inspecciones adicionales."
-
-# be553e417c184b5eb0ad8ee4096ad7fa
-#: ../../src/tutorial/analytics.rst:24
-msgid ""
-"We do not current have any visualization tools for these problems, but I "
-"have used mapserver to render the graph and highlight potential problem "
-"areas. Someone familiar with graphviz might contribute tools for generating "
-"images with that."
-msgstr "Nosotros no tenemos herramientas de visualización para estos problemas, pero se ha utilizado MapServer para reproducir la gráfica y poner en relieve las áreas con problemas potenciales. Alguien familiarizado con graphviz podría contribuir con herramientas para generar imágenes para este propósito."
-
-# d3e3bf311b944d1cb4f8ebfa1e3d1c35
-#: ../../src/tutorial/analytics.rst:28
-msgid "Analyze a Graph"
-msgstr "Analizar un gráfico"
-
-# b7b34732b36b4c3386ebb82a99725c87
-#: ../../src/tutorial/analytics.rst:30
-msgid ""
-"With :ref:`pgr_analyze_graph` the graph can be checked for errors. For "
-"example for table \"mytab\" that has \"mytab_vertices_pgr\" as the vertices "
-"table:"
-msgstr "Con :ref:`pgr_analyze_graph` el gráfico puede comprobarse errores. Por ejemplo para la tabla \"mytab\" que tiene \"mytab_vertices_pgr\" como la tabla de vértices:"
-
-# 883152de9fb3419fa261d8c6761b619f
-#: ../../src/tutorial/analytics.rst:53
-msgid "In the vertices table \"mytab_vertices_pgr\":"
-msgstr "En la tabla de vértices \"mytab_vertices_pgr\":"
-
-# dde249ef911949ab835d0b7d9350c416
-#: ../../src/tutorial/analytics.rst:55
-msgid "Deadends are indentified by ``cnt=1``"
-msgstr "Incorrectos son identificados por ``cnt=1``"
-
-# 99f8cb76dde84268b23cafcadb364a32
-#: ../../src/tutorial/analytics.rst:56
-msgid "Potencial gap problems are identified with ``chk=1``."
-msgstr "Se identifican problemas potenciales brecha con``chk=1``."
-
-# fd199f728c124588a6fccf258e912e65
-#: ../../src/tutorial/analytics.rst:74
-msgid ""
-"For isolated road segments, for example, a segment where both ends are "
-"deadends. you can find these with the following query:"
-msgstr "Si se tienen segmentos aislados de caminos, por ejemplo, un segmento en el cual los dos extremos son callejones sin salida, se pueden encontrar con la siguiente consulta:"
-
-# 6986ddb18688499ca9065a00ac84b5fc
-#: ../../src/tutorial/analytics.rst:83
-msgid ""
-"If you want to visualize these on a graphic image, then you can use "
-"something like mapserver to render the edges and the vertices and style "
-"based on ``cnt`` or if they are isolated, etc. You can also do this with a "
-"tool like graphviz, or geoserver or other similar tools."
-msgstr "Si quieren visualizar en una imagen gráfica, entonces usted puede utilizar algo como MapServer para representar los bordes y los vértices y el estilizar en base a ``cnt`` o si están aislados, etc. También se puede hacer esto con una herramienta como graphviz o geoserver u otras herramientas similares."
-
-# a9cdd802bf2d44b8ad116075edfa006d
-#: ../../src/tutorial/analytics.rst:87
-msgid "Analyze One Way Streets"
-msgstr "Analizar las calles unidireccionales"
-
-# ceeba0ba5905459c92f8e38e90544cb4
-#: ../../src/tutorial/analytics.rst:89
-msgid ""
-":ref:`pgr_analyze_oneway` analyzes one way streets in a graph and identifies"
-" any flipped segments. Basically if you count the edges coming into a node "
-"and the edges exiting a node the number has to be greater than one."
-msgstr ":ref:`pgr_analyze_oneway` analiza calles de sentido único en un grafo e identifica segmentos invertidos. Básicamente, si se cuentan los bordes entrada en un nodo y los bordes de salida de un nodo el número tiene que ser mayor que uno."
-
-# 965b89e720674f77a4d6d97b26312235
-#: ../../src/tutorial/analytics.rst:91
-msgid ""
-"This query will add two columns to the vertices_tmp table ``ein int`` and "
-"``eout int`` and populate it with the appropriate counts. After running this"
-" on a graph you can identify nodes with potential problems with the "
-"following query."
-msgstr "Esta consulta agrega dos columnas a la tabla vertices_tmp ``ein int``  y ``eout int`` (ein = borde de entrada, eout=borde de salida) y las rellena con los conteos  correspondientes. Después de su ejecución, en un grafo se pueden identificar los nodos con  problemas potenciales utilizando la siguiente consulta.  "
-
-# 7a483848e9424b628eadf2560140d784
-#: ../../src/tutorial/analytics.rst:94
-msgid ""
-"The rules are defined as an array of text strings that if match the ``col`` "
-"value would be counted as true for the source or target in or out condition."
-msgstr "Las reglas se definen como un conjunto de cadenas de texto que si coinciden con el valor de ``col`` se considera como válido para el origen o destino dentro o fuera de la condición."
-
-# 07304f9bde2d4248af5616aa3ad7b998
-#: ../../src/tutorial/analytics.rst:98
-msgid "Example"
-msgstr "Ejemplo"
-
-# 3a0862cb802a42dd9a8eb1972e947d4a
-#: ../../src/tutorial/analytics.rst:100
-msgid ""
-"Lets assume we have a table \"st\" of edges and a column \"one_way\" that "
-"might have values like:"
-msgstr "Supongamos que tenemos una tabla \"st\" de bordes y una columna \"one_way\" que podría tener valores como:"
-
-# 04d77c12d42a49098ac138d4cd8d1134
-#: ../../src/tutorial/analytics.rst:102
-msgid "'FT'    - oneway from the source to the target node."
-msgstr "'FT' - dirección unidireccional de la fuente para el nodo de destino."
-
-# 1e433297e48745b8a26d9bdc471bb079
-#: ../../src/tutorial/analytics.rst:103
-msgid "'TF'    - oneway from the target to the source node."
-msgstr "'TF' - dirección unidireccional  desde el nodo destino hasta el nodo fuente."
-
-# ec58ad375c304521a62c088b53b57cca
-#: ../../src/tutorial/analytics.rst:104
-msgid "'B'     - two way street."
-msgstr "'B' - calle de doble sentido."
-
-# de3d50611ab84de8abc0434aaf176361
-#: ../../src/tutorial/analytics.rst:105
-msgid "''      - empty field, assume twoway."
-msgstr "''- campo vacío, suponer doble sentido."
-
-# bec6afb7e7f0453b8d028b521ce38b1f
-#: ../../src/tutorial/analytics.rst:106
-msgid "<NULL>  - NULL field, use two_way_if_null flag."
-msgstr "<NULL> - Campo NULL, usar bandera de two_way_if_null, es decir, doble sentido cuando nulo."
-
-# 8b2a6e5d0f58459b9c0d857b8094b2b1
-#: ../../src/tutorial/analytics.rst:108
-msgid ""
-"Then we could form the following query to analyze the oneway streets for "
-"errors."
-msgstr "Entonces se puede  formar la siguiente consulta para analizar las calles unidireccionales para errores."
-
-# ca0da22fa34a4ab8abffbb33176f1196
-#: ../../src/tutorial/analytics.rst:127
-msgid ""
-"Typically these problems are generated by a break in the network, the one "
-"way direction set wrong, maybe an error related to z-levels or a network "
-"that is not properly noded."
-msgstr "Normalmente estos problemas son generados por una rotura en la red, la dirección un camino equivocado, quizás un error relacionado con niveles z o una red que no esté debidamente indicada con nodos."
-
-# e6995522d4b34322a49f7fc234ef5a92
-#: ../../src/tutorial/analytics.rst:129
-msgid ""
-"The above tools do not detect all network issues, but they will identify "
-"some common problems. There are other problems that are hard to detect "
-"because they are more global in nature like multiple disconnected networks. "
-"Think of an island with a road network that is not connected to the mainland"
-" network because the bridge or ferry routes are missing."
-msgstr "Las herramientas anteriores no detectan todos los problemas de la red, pero identifican algunos problemas comunes. Hay otros problemas que son difíciles de detectar porque son más globales en su naturaleza como múltiples redes desconectadas. Piense usted en una isla con una red de carreteras que no está conectada a la red del continente porque faltan las rutas del puente o del ferry."
-
-# f35ee6b63cb84a21956ba58f495375b3
-#: ../../src/tutorial/analytics.rst:133
-msgid "See Also"
-msgstr "Véase también"
-
-# 46adfdf5d9b042109be5c667ad12afdc
-#: ../../src/tutorial/analytics.rst:135
-msgid ":ref:`pgr_analyze_graph`"
-msgstr ":ref:`pgr_analyze_graph`"
-
-# d6a1979339344f65beef1fb134c99ea0
-#: ../../src/tutorial/analytics.rst:136
-msgid ":ref:`pgr_analyze_oneway`"
-msgstr ":ref:`pgr_analyze_oneway`"
-
-# b1e8747121eb4e61bc26581ab784c9ce
-#: ../../src/tutorial/analytics.rst:137
-msgid ":ref:`pgr_node_network`"
-msgstr ":ref:`pgr_node_network`"
diff --git a/doc/i18n/es/LC_MESSAGES/doc/src/tutorial/custom_query.po b/doc/i18n/es/LC_MESSAGES/doc/src/tutorial/custom_query.po
deleted file mode 100644
index 1d658b1..0000000
--- a/doc/i18n/es/LC_MESSAGES/doc/src/tutorial/custom_query.po
+++ /dev/null
@@ -1,150 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-# Daniel Kastl, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-23 15:11+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 6f7957030f094b6d9cbc9409e43365cc
-#: ../../src/tutorial/custom_query.rst:13
-msgid "Custom Query"
-msgstr "Consultas Personalizadas"
-
-# d51566c70ba441bd97b5f05d3319f75b
-#: ../../src/tutorial/custom_query.rst:17
-msgid ""
-"In general, the routing algorithms need an SQL query that contain one or "
-"more of the following required columns with the preferred type:"
-msgstr "En general, los algoritmos de enrutamiento necesitan una consulta SQL que contienen uno o más de las siguientes columnas necesarias con el tipo preferido:"
-
-# 3635e11429294bfb8119843ed85e9357
-# 3e7594678daf45f18a5e66bd639a5eff
-# 1cbb2351bab547248a9e9c603cd7a566
-#: ../../src/tutorial/custom_query.rst:19
-#: ../../src/tutorial/custom_query.rst:20
-#: ../../src/tutorial/custom_query.rst:21
-msgid "int4"
-msgstr "int4"
-
-# 4215130eed644b249425772c5e56bd0f
-# 56540a30c9bd4368b8cabf5c501404f4
-# cd08d7d274414ff8ab7201e379a68284
-# bcb0372ecaf94af1b1ddac5411662b4c
-# 0e6362bbf64c4705b5b1f75692ec42ef
-# 8d70966ee0614b2c887aaab9e45c0dd5
-# 4326b5bb0231435698e3b6d52f933827
-# 3181c241469e4670bcae933939634002
-# cb8241385b0c44c4839d156649851190
-#: ../../src/tutorial/custom_query.rst:22
-#: ../../src/tutorial/custom_query.rst:23
-#: ../../src/tutorial/custom_query.rst:24
-#: ../../src/tutorial/custom_query.rst:25
-#: ../../src/tutorial/custom_query.rst:26
-#: ../../src/tutorial/custom_query.rst:27
-#: ../../src/tutorial/custom_query.rst:28
-#: ../../src/tutorial/custom_query.rst:29
-#: ../../src/tutorial/custom_query.rst:63
-msgid "float8"
-msgstr "float8"
-
-# 18ef546ea54244b9a998d5db49cd6b44
-#: ../../src/tutorial/custom_query.rst:31
-msgid ""
-"When the edge table has the mentioned columns, the following SQL queries can"
-" be used."
-msgstr "Cuando el la tabla de bordes tiene las columnas mencionadas, pueden utilizarse las siguientes consultas SQL."
-
-# d6c69e08f2e942548a8da4a67c6be175
-#: ../../src/tutorial/custom_query.rst:39
-msgid ""
-"When the edge table has a different name to represent the required columns:"
-msgstr "Cuandola tabla de bordes tiene un nombre diferente para representar las columnas necesarias:"
-
-# d121b6e40b2549b68baeebb6ac20ebfe
-#: ../../src/tutorial/custom_query.rst:51
-msgid ""
-"The topology functions use the same names for ``id``, ``source`` and "
-"``target`` columns of the edge table, The fowllowing parameters have as "
-"default value:"
-msgstr "Las funciones de topología utilizan los mismos nombres de columnas ``id``, ``source`` y ``target`` de la tabla del bordes, los siguientes parámetros  tienen como valor predeterminado:"
-
-# 0cffe4e3fec240748ea92fc80198a879
-#: ../../src/tutorial/custom_query.rst:53
-msgid "int4 Default ``id``"
-msgstr "int4 Por defecto ``id``"
-
-# 317d18ac6e654e2699ab3c5386987100
-#: ../../src/tutorial/custom_query.rst:54
-msgid "int4 Default ``source``"
-msgstr "int4 Por defecto ``source``"
-
-# dc30cae70610482b9da90a59e92699b1
-#: ../../src/tutorial/custom_query.rst:55
-msgid "int4 Default ``target``"
-msgstr "int4 Por defecto  ``target``"
-
-# 5ea6410c1e7948d8a0de99e9348a3617
-#: ../../src/tutorial/custom_query.rst:56
-msgid "text Default ``the_geom``"
-msgstr "text  Por defecto  ``the_geom``"
-
-# 234a816e3ec248f6938cf67c6d91e5e1
-#: ../../src/tutorial/custom_query.rst:57
-msgid "text Default ``oneway``"
-msgstr "text Por defecto  ``oneway``"
-
-# a4dbcf322242431e86e21cf0dd2d0323
-#: ../../src/tutorial/custom_query.rst:58
-msgid "text Default ``true`` to indicate all rows (this is not a column)"
-msgstr "text Por defecto  ``true``  para indicar todos los registros (esto no es una columna)"
-
-# 0a9261da3a204fe8973f128ef6a960e6
-#: ../../src/tutorial/custom_query.rst:60
-msgid ""
-"The following parameters do not have a default value and when used they have"
-" to be inserted in strict order:"
-msgstr "Los siguientes parámetros no tienen un valor por defecto y cuando se usan tienen que insertarse en estricto orden:"
-
-# 24f06f6b1d4e4d4ba7fb3d078899cbeb
-#: ../../src/tutorial/custom_query.rst:62
-msgid "text"
-msgstr "text"
-
-# 25b4027b78f7437bb8ce6a6142881103
-# a08810d55bc040ce8de287b6455d6007
-# 9e98508be5844523a5de60001d5ca3ee
-# c5bc2ea08c5d4e188935bd817a23e363
-#: ../../src/tutorial/custom_query.rst:64
-#: ../../src/tutorial/custom_query.rst:65
-#: ../../src/tutorial/custom_query.rst:66
-#: ../../src/tutorial/custom_query.rst:67
-msgid "text[]"
-msgstr "text[]"
-
-# 324f6836a74d4eb9a61de9ec13f4efd8
-#: ../../src/tutorial/custom_query.rst:69
-msgid ""
-"When the columns required have the default names this can be used (pgr_func "
-"is to represent a topology function)"
-msgstr "Cuando las columnas necesarias tienen los nombres por defecto se puede usar lo siguiente: (pgr_func es representar una función de topología)"
-
-# 250d7353f04c4625a0a939e34b72cbf8
-#: ../../src/tutorial/custom_query.rst:79
-msgid ""
-"When the columns required do not have the default names its strongly "
-"recomended to use the *named notation*."
-msgstr "Cuando las columnas necesarias no tienen los nombres por defecto se recomienda enormemente usar la *notación con nombre*."
diff --git a/doc/i18n/es/LC_MESSAGES/doc/src/tutorial/custom_wrapper.po b/doc/i18n/es/LC_MESSAGES/doc/src/tutorial/custom_wrapper.po
deleted file mode 100644
index 6c1bb3b..0000000
--- a/doc/i18n/es/LC_MESSAGES/doc/src/tutorial/custom_wrapper.po
+++ /dev/null
@@ -1,70 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-23 15:21+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# fdfd82e4029f405cb20f6983ac0e8400
-#: ../../src/tutorial/custom_wrapper.rst:13
-msgid "User's wrapper contributions"
-msgstr "Contribuciones de envolturas de los usuarios"
-
-# 0ed94d5c958e49ac91f580458dd8e7df
-#: ../../src/tutorial/custom_wrapper.rst:16
-msgid "How to contribute."
-msgstr "Cómo contribuir."
-
-# 154fe7498e824fdc94e99047566e13f7
-#: ../../src/tutorial/custom_wrapper.rst:17
-msgid ""
-"Use an issue tracker (see :ref:`support`) with a title containing: "
-"*Proposing a wrapper: Mywrappername*. The body will contain:"
-msgstr "Utilice un issue tracker en git (ver :ref:`Soporte <support>`) con un título que contiene: *Proposing a wrapper: MiNombreDeENVOLTORIO*. El cuerpo debe contener:"
-
-# 86e24004f41e4adeb44c60b00aef5593
-#: ../../src/tutorial/custom_wrapper.rst:19
-msgid "author:  Required"
-msgstr "Autor: requerido"
-
-# 9cdb6c13a10f4f00a75f49426e9ec6dd
-#: ../../src/tutorial/custom_wrapper.rst:20
-msgid ""
-"mail: if you are subscribed to the developers list this is not necessary"
-msgstr "Correo: Si usted está suscrito a la lista de los desarrolladores no es necesario"
-
-# 3d74aead3077430888a131fa4a1475a8
-#: ../../src/tutorial/custom_wrapper.rst:21
-msgid "date: Date posted"
-msgstr "Fecha: fecha"
-
-# 8f0604e44c504b148c98d72c4e3f83d7
-#: ../../src/tutorial/custom_wrapper.rst:22
-msgid "comments and code:  using reStructuredText format"
-msgstr "Comentarios y código: formato reStructuredText"
-
-# 945341c151ec49658c5f8209a7d42a31
-#: ../../src/tutorial/custom_wrapper.rst:24
-msgid ""
-"Any contact with the author will be done using the developers mailing list. "
-"The pgRouting team will evaluate the wrapper and will be included it in this"
-" section when approved."
-msgstr "Cualquier contacto con el autor se hará utilizando la lista de correo de desarrolladores. El equipo pgRouting evaluará el envoltorio y será incluido en esta sección cuando sea aprobado."
-
-# d00b0921e7c74745b04071de66cf10ad
-#: ../../src/tutorial/custom_wrapper.rst:27
-msgid "*No contributions at this time*"
-msgstr "*No hay contribuciones*"
diff --git a/doc/i18n/es/LC_MESSAGES/doc/src/tutorial/index.po b/doc/i18n/es/LC_MESSAGES/doc/src/tutorial/index.po
deleted file mode 100644
index 96bd79e..0000000
--- a/doc/i18n/es/LC_MESSAGES/doc/src/tutorial/index.po
+++ /dev/null
@@ -1,99 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (187a022 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-23 15:04\n"
-"PO-Revision-Date: 2013-09-24 00:21+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 6a8f93140b244bb29541e366b9af91dd
-#: ../../src/tutorial/index.rst:13
-msgid "Tutorial"
-msgstr "Tutoriales"
-
-# a64c244637f4455cbded0e09c15fb8e1
-#: ../../src/tutorial/index.rst:16
-msgid ":ref:`Getting started <tutorial>`"
-msgstr ":ref:`Comenzando a trabajar <tutorial>`"
-
-# acf4544cb0394b96859312fe489b6b5f
-#: ../../src/tutorial/index.rst:18
-msgid "How to create a database to use for our project"
-msgstr "Cómo crear una base de datos para ser utilizada por nuestro proyecto"
-
-# 29bb03c78beb407cb3c7ef833144e908
-#: ../../src/tutorial/index.rst:19
-msgid "How to load some data"
-msgstr "Cómo cargar algunos datos"
-
-# 6522624c4787423098652645beaca70b
-#: ../../src/tutorial/index.rst:20
-msgid "How to build a topology"
-msgstr "Cómo construir una topología"
-
-# 7e3a1701c1cb4f2399f80cab2f32fbfd
-#: ../../src/tutorial/index.rst:21
-msgid "How to check your graph for errors"
-msgstr "Cómo comprobar la gráfica para errores"
-
-# 7a4ac738b5a54446a3fb6a2a872ee973
-#: ../../src/tutorial/index.rst:22
-msgid "How to compute a route"
-msgstr "Cómo calcular una ruta"
-
-# 267375c5b956437cab09d66694082436
-#: ../../src/tutorial/index.rst:23
-msgid "How to use other tools to view your graph and route"
-msgstr "Cómo utilizar otras herramientas para ver la gráfica y la ruta"
-
-# 7eb6346c00174549a67aa3ba5b639061
-#: ../../src/tutorial/index.rst:24
-msgid "How to create a web app"
-msgstr "Cómo crear una aplicación web"
-
-# 9c88e3538b4443db8727c2ac29dfe064
-#: ../../src/tutorial/index.rst:26
-msgid "Advanced Topics"
-msgstr "Tópicos avanzados"
-
-# 96bfb05f4c374de79f250704d4c8b3e7
-#: ../../src/tutorial/index.rst:28
-msgid ":ref:`topology` for an overview of a topology for routing algorithms."
-msgstr ":ref:`topology` para tener una visión general de una topología de algoritmos de encaminamiento."
-
-# 5bb8a81892314636b035fe0d8e56b426
-#: ../../src/tutorial/index.rst:29
-msgid ":ref:`analytics` for an overview of the analysis of a graph."
-msgstr ":ref:`analytics` para tener una visión general del análisis de un gráfico."
-
-# 6cfe3bc3d8b942b188c87a00b5e92cb8
-#: ../../src/tutorial/index.rst:30
-msgid ":ref:`custom_query` that is used in the routing algorithms."
-msgstr ":ref:`custom_query` que se utiliza en los algoritmos de encaminamiento."
-
-# 2fc8eb635e614b249d37a76fb7d66f68
-#: ../../src/tutorial/index.rst:31
-msgid ":ref:`performance` to improve your performance."
-msgstr ":ref:`performance` para mejorar su rendimiento."
-
-# 1cf3220a11c4411b85339e05e3546f22
-#: ../../src/tutorial/index.rst:32
-msgid ":ref:`custom_wrapper` to colaborate with a wrapper."
-msgstr ":ref:`custom_wrapper` para colaborar con un envoltorio."
-
-# 025472df762342bb955f96e2572111ed
-#: ../../src/tutorial/index.rst:33
-msgid ":ref:`recipes` to colaborate with a recipe."
-msgstr ":ref:`recipes` para colaborar con una receta."
diff --git a/doc/i18n/es/LC_MESSAGES/doc/src/tutorial/performance.po b/doc/i18n/es/LC_MESSAGES/doc/src/tutorial/performance.po
deleted file mode 100644
index d06d084..0000000
--- a/doc/i18n/es/LC_MESSAGES/doc/src/tutorial/performance.po
+++ /dev/null
@@ -1,59 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-21 19:20+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 02750fc506e541eaa5e3a34280aabce6
-#: ../../src/tutorial/performance.rst:13
-msgid "Performance Tips"
-msgstr "Consejos de Rendimiento"
-
-# c6cdc3cc67d54b349406611e4f2fba51
-#: ../../src/tutorial/performance.rst:16
-msgid ""
-"When \"you know\" that you are going to remove a set of edges from the edges"
-" table, and without those edges you are going to use a routing function you "
-"can do the following:"
-msgstr "Cuando \"sabe\" que va a eliminar un conjunto de bordes de la tabla de  bordes, y sin esos bordes va a utilizar una función de enrrutamiento puede hacer el siguiente:"
-
-# 09daa462ecb3460fb93b4a3a05fccb4f
-#: ../../src/tutorial/performance.rst:18
-msgid "Analize the new topology based on the actual topology:"
-msgstr "Analizar la topología nueva basada en la topología actual:"
-
-# 6481ccc4d94a4513893f4b1ec5fd615f
-#: ../../src/tutorial/performance.rst:24
-msgid "Or create a new topology if the change is permanent:"
-msgstr "O crear una nueva topología si el cambio es permanente:"
-
-# f83a8c75a53848f4b2b2ce62be14b3b1
-#: ../../src/tutorial/performance.rst:31
-msgid "Use an SQL that \"removes\" the edges in the routing function"
-msgstr "Utilice un SQL que \"elimina\" los bordes en la función de enrrutamiento"
-
-# d598fe2adbc346ce8aa4ea167d2cc77d
-#: ../../src/tutorial/performance.rst:37
-msgid ""
-"When \"you know\" that the route will not go out of a particular area, to "
-"speed up the process you can use a more complex SQL query like"
-msgstr "Cuando \"sabe\" que la ruta no saldrá de un área en particular, para acelerar el proceso puede utilizar una consulta SQL más compleja como"
-
-# c7e739bf9e1e42cfaedf49458bedb00c
-#: ../../src/tutorial/performance.rst:46
-msgid "Note that the  same condition ``id < 17`` is used in all cases."
-msgstr "Tenga en cuenta que la misma condición ``id < 17`` se utiliza en todos los casos."
diff --git a/doc/i18n/es/LC_MESSAGES/doc/src/tutorial/recipes.po b/doc/i18n/es/LC_MESSAGES/doc/src/tutorial/recipes.po
deleted file mode 100644
index 2c65195..0000000
--- a/doc/i18n/es/LC_MESSAGES/doc/src/tutorial/recipes.po
+++ /dev/null
@@ -1,85 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (187a022 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-23 15:04\n"
-"PO-Revision-Date: 2013-09-23 20:20+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 2d164be73a6143b9850a47118af6fac0
-#: ../../src/tutorial/recipes.rst:13
-msgid "User's Recipes contributions"
-msgstr "Contribuciones de recetas de los usuarios"
-
-# 8f4e11e136e347c49071a20b75e3f7db
-#: ../../src/tutorial/recipes.rst:16
-msgid "How to contribute."
-msgstr "Cómo contribuir."
-
-# c28848a4efb9438e9753f9724a0b1bba
-#: ../../src/tutorial/recipes.rst:17
-msgid ""
-"Use an issue tracker (see :ref:`support`) with a title containing: "
-"*Proposing a Recipe: Myrecipename*. The body will contain:"
-msgstr "Utilice un issue tracker en git (ver :ref:`Soporte <support>`) con un título que contiene: *Proposing a Recipe: MiNombreDeReceta*. El cuerpo debe contiener:"
-
-# 304b12401b0a4ae6995e2e6f43ab60ed
-#: ../../src/tutorial/recipes.rst:19
-msgid "author:  Required"
-msgstr "Autor: requerido"
-
-# 0de50268810243a9a9eae4fbe089d207
-#: ../../src/tutorial/recipes.rst:20
-msgid ""
-"mail: if you are subscribed to the developers list this is not necessary"
-msgstr "Correo: Si usted está suscrito a la lista de los desarrolladores no es necesario"
-
-# d84afc673d2a47e5a939a1905c7ac458
-#: ../../src/tutorial/recipes.rst:21
-msgid "date: Date posted"
-msgstr "Fecha: fecha"
-
-# a77ebe21f0d644da8c0573551db24a3e
-#: ../../src/tutorial/recipes.rst:22
-msgid "comments and code:  using reStructuredText format"
-msgstr "Comentarios y código: formato reStructuredText"
-
-# 586b6b7d313849ccb0eff13b59bcde27
-#: ../../src/tutorial/recipes.rst:24
-msgid ""
-"Any contact with the author will be done using the developers mailing list. "
-"The pgRouting team will evaluate the recipe and will be included it in this "
-"section when approved."
-msgstr "Cualquier contacto con el autor se hará utilizando la lista de correo de desarrolladores. El equipo pgRouting evaluará la receta y será incluido en esta sección cuando sea aprobada."
-
-# c0fb6175b7b640e18821f49b08810c30
-#: ../../src/tutorial/recipes.rst:27
-msgid "Comparing topology of a unnoded network with a noded network"
-msgstr "Comparando la topología de una red de que no tiene nodos en las intersecciones con una red con nodos en las intersecciones"
-
-# 4f1d4919585f4bc2bb4d02067ccaa841
-#: ../../src/tutorial/recipes.rst:30
-msgid "pgRouting team."
-msgstr "Equipo pgRouting."
-
-# 413f44066e2e4af0952d3a31b7bbaeff
-#: ../../src/tutorial/recipes.rst:32
-msgid "This recipe uses the :ref:`sampledata` network."
-msgstr "Esta receta se utiliza la :ref:`red de ejemplo <sampledata>`."
-
-# 1e7ee7f6cb5b421d85ca530f636a264b
-#: ../../src/tutorial/recipes.rst:42
-msgid "*No more contributions*"
-msgstr "*No hay más contribuciones*"
diff --git a/doc/i18n/es/LC_MESSAGES/doc/src/tutorial/topology.po b/doc/i18n/es/LC_MESSAGES/doc/src/tutorial/topology.po
deleted file mode 100644
index 8f65792..0000000
--- a/doc/i18n/es/LC_MESSAGES/doc/src/tutorial/topology.po
+++ /dev/null
@@ -1,124 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-21 18:16+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 95ba56beb837464cac49ef7880693c4c
-#: ../../src/tutorial/topology.rst:13
-msgid "Routing Topology"
-msgstr "Topología para Ruteo"
-
-# a13e17875be047edb65c4dff0e77e3a3
-#: ../../src/tutorial/topology.rst:15
-msgid "Stephen Woodbridge <woodbri at swoodbridge.com>"
-msgstr "Stephen Woodbridge <woodbri at swoodbridge.com>"
-
-# fae10235d477445e8c8ad3b8ddf138c5
-#: ../../src/tutorial/topology.rst:16
-msgid ""
-"Stephen Woodbridge. The source code is released under the MIT-X license."
-msgstr "Stephen Woodbridge. El código fuente está liberado bajo la licencia MIT-X."
-
-# bb8d84bed17047048664ea7fe078eb94
-#: ../../src/tutorial/topology.rst:20
-msgid "Overview"
-msgstr "Resumen"
-
-# 2a882bec3de94c1eb574a3eb222c98e4
-#: ../../src/tutorial/topology.rst:22
-msgid ""
-"Typically when GIS files are loaded into the data database for use with "
-"pgRouting they do not have topology information associated with them. To "
-"create a useful topology the data needs to be \"noded\". This means that "
-"where two or more roads form an intersection there it needs to be a node at "
-"the intersection and all the road segments need to be broken at the "
-"intersection, assuming that you can navigate from any of these segments to "
-"any other segment via that intersection."
-msgstr "Normalmente cuando se cargan archivos GIS en la base de datos para su uso con pgRouting no tienen información de la topología asociada a ellos. Para crear una topología útil, los datos debe ser \"noded\". Esto significa que donde dos o más caminos forman una intersección allí debe existir y todos los segmentos de carretera necesitan estar partidos en la intersección, eso suponiendo que puede navegar a cualquier otro segmento mediante la intersección de cualquiera de estos segmentos."
-
-# 65c5e66127ab486492799e66af98970c
-#: ../../src/tutorial/topology.rst:24
-msgid ""
-"You can use the :ref:`graph analysis functions <analytics>` to help you see "
-"where you might have topology problems in your data. If you need to node "
-"your data, we also have a function :ref:`pgr_nodeNetwork() "
-"<pgr_node_network>` that might work for you. This function splits ALL "
-"crossing segments and nodes them. There are some cases where this might NOT "
-"be the right thing to do."
-msgstr "Puede utilizar las :ref:`funciones de análisis de gráficas <analytics>` para apoyarse en la búsqueda de problemas topológicos en los datos. Si se necesitan nodos en los datos, también se cuenta con la función :ref:`pgr_nodeNetwork() <pgr_node_network>` que le puede ser útil. Esta función divide todos los segmentos de los caminos y les asigna nodos entre ellos. Existen algunos casos donde no es lo apropiado."
-
-# efc1fb5385064e7da087f3b0371faf57
-#: ../../src/tutorial/topology.rst:26
-msgid ""
-"For example, when you have an overpass and underpass intersection, you do "
-"not want these noded, but pgr_nodeNetwork does not know that is the case and"
-" will node them which is not good because then the router will be able to "
-"turn off the overpass onto the underpass like it was a flat 2D intersection."
-" To deal with this problem some data sets use z-levels at these types of "
-"intersections and other data might not node these intersection which would "
-"be ok."
-msgstr "Por ejemplo, cuando se tiene un cruce de puente o de un túnel, no quieres estos contengan un nodo, pero pgr_nodeNetwork no sabe que ese es el caso y va a crear un nodo,  entonces el enrutador interpretará el puente o  el paso a desnivel como si fuera una intersección plana en 2D. Para lidiar con este problema, se debe utilizar niveles z ya se para estos tipos de intersecciones o para otros casos en donde crear el nodo de la intersección no sea lo correcto."
-
-# 43c22da1f7b34db7999adbad7ac7a4e1
-#: ../../src/tutorial/topology.rst:28
-msgid ""
-"For those cases where topology needs to be added the following functions may"
-" be useful. One way to prep the data for pgRouting is to add the following "
-"columns to your table and then populate them as appropriate. This example "
-"makes a lot of assumption like that you original data tables already has "
-"certain columns in it like ``one_way``, ``fcc``, and possibly others and "
-"that they contain specific data values. This is only to give you an idea of "
-"what you can do with your data."
-msgstr "Para los casos donde la topología debe construirse,  las siguientes funciones pueden ser de utilidad. Una forma de preparar los datos para pgRouting es agregar los siguientes campos a la tabla y luego poblarlas según corresponda. Este ejemplo tiene como supuestos: que la tabla original ya tiene columnas como  ``one_way``, ``fcc`` y posiblemente otras y que contienen valores de datos específicos. Esto es sólo para darle una idea de lo que se puede hacer con los datos."
-
-# 30e52836594b46f1917dd9ffaa55fc0c
-#: ../../src/tutorial/topology.rst:49
-msgid ""
-"The function :ref:`pgr_createTopology() <pgr_create_topology>` will create "
-"the ``vertices_tmp`` table and populate the ``source`` and ``target`` "
-"columns. The following example populated the remaining columns. In this "
-"example, the ``fcc`` column contains feature class code and the ``CASE`` "
-"statements converts it to an average speed."
-msgstr "La función :ref:`pgr_createTopology() <pgr_create_topology>` creará la tabla ``vertices_tmp``  y rellenará las columnas ``source`` y ``target``. El ejemplo siguiente termina de llenar las columnas restantes. En este ejemplo, la columna ``fcc`` contiene códigos de las características de la calle y las declaraciones del ``CASE`` las convierte a una velocidad media."
-
-# 6aa2b52ff1ac4c16a315c9ddfdf90b57
-#: ../../src/tutorial/topology.rst:112
-msgid ""
-"Now your database should be ready to use any (most?) of the pgRouting "
-"algorithms."
-msgstr "Ahora su base de datos debe estar lista para usarse en cualquiera (mayoría?) de los algoritmos de pgRouting."
-
-# 6cc3d005cb454b77959bfbdc6fdd2105
-#: ../../src/tutorial/topology.rst:116
-msgid "See Also"
-msgstr "Véase también"
-
-# 40847af777814998afe63d824d73c507
-#: ../../src/tutorial/topology.rst:118
-msgid ":ref:`pgr_create_topology`"
-msgstr ":ref:`pgr_create_topology`"
-
-# 974b427fbcf64ec8ab76456dcd37bd7d
-#: ../../src/tutorial/topology.rst:119
-msgid ":ref:`pgr_node_network`"
-msgstr ":ref:`pgr_node_network`"
-
-# adedad6329b0494988daee57bcf0cb98
-#: ../../src/tutorial/topology.rst:120
-msgid ":ref:`pgr_point_to_id`"
-msgstr ":ref:`pgr_point_to_id`"
diff --git a/doc/i18n/es/LC_MESSAGES/doc/src/tutorial/tutorial.po b/doc/i18n/es/LC_MESSAGES/doc/src/tutorial/tutorial.po
deleted file mode 100644
index 2700c9a..0000000
--- a/doc/i18n/es/LC_MESSAGES/doc/src/tutorial/tutorial.po
+++ /dev/null
@@ -1,208 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-23 20:30+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# cc286a8aa26b414ba5c056e7e967f754
-#: ../../src/tutorial/tutorial.rst:13
-msgid "Getting Started"
-msgstr "Comenzando a trabajar"
-
-# 203987e9bc9545e386abb61978fa7973
-#: ../../src/tutorial/tutorial.rst:15
-msgid ""
-"This is a simple guide to walk you through the steps of getting started with"
-" pgRouting. In this guide we will cover:"
-msgstr "Esta es una guía simple para llevarte a través de los pasos básicos para trabajar con pgRouting. Esta guía cubre:"
-
-# cf084ff2892b4ce09042343d046fd022
-# 09f0c2436ee0452ca34f4ea785294ca0
-#: ../../src/tutorial/tutorial.rst:18 ../../src/tutorial/tutorial.rst:27
-msgid "How to create a database to use for our project"
-msgstr "Cómo crear una base de datos para ser utilizada por nuestro proyecto"
-
-# c3031c03516e400eb51fd389eab9d370
-# 8e16b537fced4fd98de6654b3d25882d
-#: ../../src/tutorial/tutorial.rst:19 ../../src/tutorial/tutorial.rst:61
-msgid "How to load some data"
-msgstr "Cómo cargar algunos datos"
-
-# 28162361c9ef451a8269bdc8c569c9c5
-# be1e900598c64c579d8a2306852c3c77
-#: ../../src/tutorial/tutorial.rst:20 ../../src/tutorial/tutorial.rst:77
-msgid "How to build a topology"
-msgstr "Cómo construir una topología"
-
-# 422d77e9576145f6b3e41ee3e9d8019c
-# e02a5f0e2c4c4c108a97d142e7719614
-#: ../../src/tutorial/tutorial.rst:21 ../../src/tutorial/tutorial.rst:93
-msgid "How to check your graph for errors"
-msgstr "Cómo comprobar la gráfica para errores"
-
-# 48af8de98aa440599ef7c5e08a987c73
-# 00b0784fc2ba469ca4d4987d90a07e2a
-#: ../../src/tutorial/tutorial.rst:22 ../../src/tutorial/tutorial.rst:121
-msgid "How to compute a route"
-msgstr "Cómo calcular una ruta"
-
-# a6c42f436e6240b0bd853d2459a82af5
-# 8f60e469188446368b6e9dd27fa4362c
-#: ../../src/tutorial/tutorial.rst:23 ../../src/tutorial/tutorial.rst:142
-msgid "How to use other tools to view your graph and route"
-msgstr "Cómo utilizar otras herramientas para ver la gráfica y la ruta"
-
-# e8d64e7e71f94995b63b80ec6c489433
-# 20eafe14706e4660b2f9886ce1f6b357
-#: ../../src/tutorial/tutorial.rst:24 ../../src/tutorial/tutorial.rst:147
-msgid "How to create a web app"
-msgstr "Cómo crear una aplicación web"
-
-# b1db71933e1241eeae8298bba077f388
-#: ../../src/tutorial/tutorial.rst:29
-msgid ""
-"The first thing we need to do is create a database and load pgrouting in the"
-" database. Typically you will create a database for each project. Once you "
-"have a database to work in, your can load your data and build your "
-"application in that database. This makes it easy to move your project later "
-"if you want to to say a production server."
-msgstr "Lo primero que hay que hacer es crear una base de datos y cargar pgRouting a la base de datos. Típicamente se creará una base de datos para cada proyecto. Una vez que se tiene una base de datos donde trabajar, se pueden cargar los datos y construir la aplicación en la base de datos. Esto hace que sea sencillo de mover el proyecto en el futuro, como por ejemplo, a un servidor de producción."
-
-# e9ea8391635c4aeea6230a1dc512ca40
-#: ../../src/tutorial/tutorial.rst:35
-msgid "For Postgresql 9.1 and later versions"
-msgstr "Para Postgresql 9.1 y versiones posteriores"
-
-# b5416a83185a4b968116495c15a2dbb9
-#: ../../src/tutorial/tutorial.rst:44
-msgid "For older versions of postgresql"
-msgstr "Para versiones anteriores de postgresql"
-
-# 4d3bdf2c0daf49e19b0cc8ec9a54ce6d
-#: ../../src/tutorial/tutorial.rst:63
-msgid ""
-"How you load your data will depend in what form it comes it. There are "
-"various OpenSource tools that can help you, like:"
-msgstr "El cómo cargar los datos dependerá de el formato que tienen. Existen varias herramientas de Código Abierto  que le pueden ayudar, como:"
-
-# 443c825aa19945f694b869caa419068a
-#: ../../src/tutorial/tutorial.rst:66
-msgid "this is the postgresql shapefile loader"
-msgstr "Este es un cargador de archivo shape a postgresql"
-
-# 4d91dcd01dac46f59ceb42aeeac5dc8d
-#: ../../src/tutorial/tutorial.rst:67
-msgid "this is a vector data conversion utility"
-msgstr "Esta es una utilidad de conversión de datos vectoriales"
-
-# 99f1dae37c3742db82e18bf14675f806
-#: ../../src/tutorial/tutorial.rst:68
-msgid "this is a tool for loading OSM data into postgresql"
-msgstr "Esta es una herramienta para cargar los datos de OSM a postgresql"
-
-# 0fc4acb74524472e89a9867f716c6941
-#: ../../src/tutorial/tutorial.rst:70
-msgid ""
-"So these tools and probably others will allow you to read vector data and "
-"and can load that data into your database as a table of some kind. At this "
-"point you need to know a little about your data structure and content. One "
-"easy way to browse you data table is with pgAdmin3 or phpPgAdmin."
-msgstr "Así que estas herramientas, y probablemente otras más, le permitan leer datos vectoriales y se pueden cargar esos datos a una tabla de la base de datos. En este momento, se necesita  saber un poco sobre el contenido y estructura de los datos. Una forma fácil de navegar en tu bases de datos es con pgAdmin3 o phpPgAdmin."
-
-# 3eb60b0320c94c54b413905edad6aeda
-#: ../../src/tutorial/tutorial.rst:79
-msgid ""
-"Next we need to build a topology for our street data. What this means is "
-"that for any given edge in your street data the ends of that edge will be "
-"connected to a unique node and to other edges that are also connected to "
-"that same unique node. Once all the edges are connected to nodes we have a "
-"graph that can be used for routing with pgrouting. We provide a tools the "
-"will help with this:"
-msgstr "Lo siguiente que se necesita hacer es construir la topología de nuestros datos de las calles. Lo que esto significa es que para cualquier borde que se encuentra en los datos de las calles, los extremos del borde se conectan a un nodo único y a otros bordes que también se conectan a ese mismo nodo único. Una vez que todos los bordes están conectados a los nodos tenemos una gráfica que se puede ser utilizada para el ruteo con pgRouting. Proporcionamos herramientas que ayudarán con esto:"
-
-# 69e88d4dcd4b4de68a07f7e1bbe05c2f
-#: ../../src/tutorial/tutorial.rst:89
-msgid "See :ref:`pgr_create_topology` for more information."
-msgstr "Ver :ref:`pgr_create_topology` para más información."
-
-# a1b054cc1a1a4d12a2a11405bbdec85b
-#: ../../src/tutorial/tutorial.rst:95
-msgid ""
-"There are lots of possible sources for errors in a graph. The data that you "
-"started with may not have been designed with routing in mind. A graph as "
-"some very specific requirments. One it that it is *NODED*, this means that "
-"except for some very specific use cases, each road segments starts and ends "
-"at a node and that in general is does not cross another road segment that it"
-" should be connected to."
-msgstr "Hay varias posibles fuentes de errores en un gráfico. Los datos con los que usted comenzó pudieron no haber sido diseñados con ruteo en mente. Un gráfico tiene algunos requerimientos muy específicos. Uno es que sea *NODED*, esto significa que, a excepción de algunos casos de uso muy especial, cada uno de los segmentos del camino comienza y termina en un nodo y que en general no cruzan un segmento de camino al que deba conectarse."
-
-# 6c5337ea36644d71841a60e4a9bb5ba5
-#: ../../src/tutorial/tutorial.rst:102
-msgid ""
-"There can be other errors like the direction of a one-way street being "
-"entered in the wrong direction. We do not have tools to search for all "
-"possible errors but we have some basic tools that might help."
-msgstr "Puede haber otros errores como en una calle de un solo sentido tener el sentido equivocado. No contamos con herramientas para buscar todos los errores posibles, pero tenemos algunas herramientas básicas que pueden ayudar."
-
-# 3fece9ebff854721b5715cc977ce6d6e
-#: ../../src/tutorial/tutorial.rst:113
-msgid "See :ref:`analytics` for more information."
-msgstr "Ver :ref:`analytics` para más información."
-
-# 7a98ae8da3ae48e1a7c5d54e44a48c26
-#: ../../src/tutorial/tutorial.rst:115
-msgid ""
-"If your data needs to be *NODED*, we have a tool that can help for that "
-"also."
-msgstr "Si necesita crearle a sus datos los *los nodos*, tenemos una herramienta que puede ayudar."
-
-# 08121e9261964dd58ac553d088c2ed4d
-#: ../../src/tutorial/tutorial.rst:117
-msgid "See :ref:`pgr_node_network` for more information."
-msgstr "Ver :ref:`pgr_node_network` para más información."
-
-# 719d8eadd02e428f9c88ee09711fd78e
-#: ../../src/tutorial/tutorial.rst:123
-msgid ""
-"Once you have all the prep work done above, computing a route is fairly "
-"easy. We have a lot of different algorithms but they can work with your "
-"prepared road network. The general form of a route query is:"
-msgstr "Una vez realizado el trabajo de preparación descrito anteriormente, el cálculo de una ruta es bastante fácil. Contamos con varios algoritmos, pero pueden trabajar con su red vial preparada. La forma general de una consulta de ruta es:"
-
-# 9b06e28539b841019a313bfef4d6706a
-#: ../../src/tutorial/tutorial.rst:131
-msgid ""
-"As you can see this is fairly straight forward and you can look and the "
-"specific algorithms for the details on how to use them. What you get as a "
-"result from these queries will be a set of record of type "
-":ref:`type_cost_result` or :ref:`type_geom_result`. These results have "
-"information like edge id and/or the node id along with the cost or geometry "
-"for the step in the path from *start* to *end*. Using the ids you can join "
-"these result back to your edge table to get more information about each step"
-" in the path."
-msgstr "Como se puede ver, es bastante sencillo. Puede revisar los algoritmos específicos para ver los detalles de cómo usarlos. Lo que usted recibe como el resultado de estas consultas será un conjunto de registros del tipo l:ref:`type_cost_result` or :ref:`type_geom_result`.  Estos resultados tienen información como Identificación del borde y/o el identificaror id del nodo junto con el costo o la geometría para el camino desde el *Inicio* hasta el *final*. Usando los identificadores pu [...]
-
-# d3652f3967364e05a51d770bf6c22ed7
-#: ../../src/tutorial/tutorial.rst:139
-msgid "See also :ref:`type_cost_result` and :ref:`type_geom_result`."
-msgstr "Véase también :ref:`type_cost_result` y :ref:`type_geom_result`."
-
-# ebd4b3f1e2e64e668cbd59b14d10059c
-# 631194a2c36c43fa84fca3ad63545a1c
-#: ../../src/tutorial/tutorial.rst:144 ../../src/tutorial/tutorial.rst:149
-msgid "TBD"
-msgstr "Por Definirse"
diff --git a/doc/i18n/es/LC_MESSAGES/src/apsp_johnson/doc/index.po b/doc/i18n/es/LC_MESSAGES/src/apsp_johnson/doc/index.po
deleted file mode 100644
index dc99f82..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/apsp_johnson/doc/index.po
+++ /dev/null
@@ -1,141 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-08-12 15:40+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# c9937b945f654be08e4180e57b2723de
-#: ../../../src/apsp_johnson/doc/index.rst:13
-msgid "pgr_apspJohnson - All Pairs Shortest Path, Johnson's Algorithm"
-msgstr "pgr_apspJohnson -   Ruta más corta de todos los pares, algoritmo de Johnson"
-
-# 79936f3a71384a8a9148a3886df7a858
-#: ../../../src/apsp_johnson/doc/index.rst:20
-msgid "Name"
-msgstr "Nombre"
-
-# 3145d47e956649628986400ffdab56a5
-#: ../../../src/apsp_johnson/doc/index.rst:22
-msgid ""
-"``pgr_apspJohnson`` - Returns all costs for each pair of nodes in the graph."
-msgstr "``pgr_apspJohnson`` - Devuelve todos los costos para cada par de nodos en el gráfico."
-
-# 24009fd27614418c9dee8d1d27eca209
-#: ../../../src/apsp_johnson/doc/index.rst:26
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# 6aa48442c73548e58b708ec465f0993a
-#: ../../../src/apsp_johnson/doc/index.rst:28
-msgid ""
-"Johnson's algorithm is a way to find the shortest paths between all pairs of"
-" vertices in a sparse, edge weighted, directed graph. Returns a set of "
-":ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows for "
-"every pair of nodes in the graph."
-msgstr "El algoritmo de Johnson, es una manera de encontrar los caminos más cortos entre todos los pares de vértices en una gráfica ponderada, dirigida y esparcida. Devuelve un conjunto de registros :ref:`pgr_costResult<type_cost_result>` (seq, id1, id2, cost)  para cada par de nodos en el gráfico."
-
-# afa92fc38dee48288d509f6006247df1
-#: ../../../src/apsp_johnson/doc/index.rst:36
-msgid "Description"
-msgstr "Descripción"
-
-# 1256fc43f6ad440689b650619604651c
-#: ../../../src/apsp_johnson/doc/index.rst:38
-msgid ""
-"a SQL query that should return the edges for the graph that will be "
-"analyzed:"
-msgstr "una consulta SQL que  debe porporcionar los bordes de la gráfica que se analizará:"
-
-# 3f908a1bbdd04eaa9bf33225e67da2c7
-#: ../../../src/apsp_johnson/doc/index.rst:44
-msgid "``int4`` identifier of the source vertex for this edge"
-msgstr "``int4`` Identificador del vértice fuente"
-
-# 993049755c48440a9bc398ea9a13fe95
-#: ../../../src/apsp_johnson/doc/index.rst:45
-msgid "``int4`` identifier of the target vertex for this edge"
-msgstr "``int4`` Identificador del vértice objetivo"
-
-# 28aa6b13c7d54bbdb49c76098a8e4d8e
-#: ../../../src/apsp_johnson/doc/index.rst:46
-msgid "``float8`` a positive value for the cost to traverse this edge"
-msgstr "``float8`` un valor positivo para el costo del recorrido del borde"
-
-# 7514070dfcd1415e8414754509baee32
-#: ../../../src/apsp_johnson/doc/index.rst:48
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr "Regresa un conjunto del tipo de datos :ref:`type_cost_result`:"
-
-# 25408ce6cf3d45bebebd52768b102fc0
-#: ../../../src/apsp_johnson/doc/index.rst:50
-msgid "row sequence"
-msgstr "secuencia de registros"
-
-# e4b9d28e22be4a78a2edc7edbf4f1af3
-#: ../../../src/apsp_johnson/doc/index.rst:51
-msgid "source node ID"
-msgstr "Identificador del nodo de procedencia"
-
-# f4ef2869f447410dbdb75bf3856bfa93
-#: ../../../src/apsp_johnson/doc/index.rst:52
-msgid "target node ID"
-msgstr "Identificador del nodo de llegada"
-
-# 74d7b05838ba4c978e0c33f94ab0868f
-#: ../../../src/apsp_johnson/doc/index.rst:53
-msgid "cost to traverse from ``id1`` to ``id2``"
-msgstr "costo para atravesar desde ``id1``  hasta ``id2`` "
-
-# 1767087139fa47218a9eef54ebf0b0f1
-#: ../../../src/apsp_johnson/doc/index.rst:56
-msgid "History"
-msgstr "Historia"
-
-# 5bc1dae5c7f041298849cae876983c32
-#: ../../../src/apsp_johnson/doc/index.rst:57
-msgid "New in version 2.0.0"
-msgstr "Nuevo en la versión 2.0.0"
-
-# b679c9ef11b544a6a6502b461b4e3d96
-#: ../../../src/apsp_johnson/doc/index.rst:61
-msgid "Examples"
-msgstr "Ejemplos"
-
-# 5d6ef1673c204a229ed05dae0c96d0f8
-#: ../../../src/apsp_johnson/doc/index.rst:78
-msgid "The query uses the :ref:`sampledata` network."
-msgstr "La consulta usa la red de ejemplo  :ref:`sampledata`"
-
-# 8ba7f2721fe74966b8dfd4620ae10b9a
-#: ../../../src/apsp_johnson/doc/index.rst:82
-msgid "See Also"
-msgstr "Véase también"
-
-# 475eb50687e74051895523e791434bc1
-#: ../../../src/apsp_johnson/doc/index.rst:84
-msgid ":ref:`type_cost_result`"
-msgstr ":ref:`type_cost_result`"
-
-# 75e0dd6fa0ed4621acf49893e637237c
-#: ../../../src/apsp_johnson/doc/index.rst:85
-msgid ":ref:`pgr_apsp_warshall`"
-msgstr ":ref:`pgr_apsp_warshall`"
-
-# 0e63d6ba27244302bfd848164331ea09
-#: ../../../src/apsp_johnson/doc/index.rst:86
-msgid "http://en.wikipedia.org/wiki/Johnson%27s_algorithm"
-msgstr "http://en.wikipedia.org/wiki/Johnson%27s_algorithm"
diff --git a/doc/i18n/es/LC_MESSAGES/src/apsp_warshall/doc/index.po b/doc/i18n/es/LC_MESSAGES/src/apsp_warshall/doc/index.po
deleted file mode 100644
index 70d4a26..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/apsp_warshall/doc/index.po
+++ /dev/null
@@ -1,161 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-21 17:07+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 0f1284ff13c64db68306d3e8f9c97beb
-#: ../../../src/apsp_warshall/doc/index.rst:13
-msgid "pgr_apspWarshall - All Pairs Shortest Path, Floyd-Warshall Algorithm"
-msgstr "pgr_apspWarshall - Camino más corto de todos los pares, Algoritmo de Floyd-Warshall"
-
-# 42b576974e9a458e951dd429ba4ac9f7
-#: ../../../src/apsp_warshall/doc/index.rst:20
-msgid "Name"
-msgstr "Nombre"
-
-# 8610cfce602b4e43867a979e40348da5
-#: ../../../src/apsp_warshall/doc/index.rst:22
-msgid ""
-"``pgr_apspWarshall`` - Returns all costs for each pair of nodes in the "
-"graph."
-msgstr "``pgr_apspWarshall`` - Devuelve todos los costos de cada par de nodos en la gráfica."
-
-# 4c8c0af0a22f4783b5f40d7d68b431da
-#: ../../../src/apsp_warshall/doc/index.rst:26
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# 001f0668ce734f4b9419fd7b22d98b00
-#: ../../../src/apsp_warshall/doc/index.rst:28
-msgid ""
-"The Floyd-Warshall algorithm (also known as Floyd's algorithm and other "
-"names) is a graph analysis algorithm for finding the shortest paths between "
-"all pairs of nodes in a weighted graph. Returns a set of "
-":ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows for "
-"every pair of nodes in the graph."
-msgstr "El algoritmo de Floyd-Warshall (también conocido como algoritmo de Floyd y otros nombres) es un algoritmo de análisis gráfico para encontrar los caminos más cortos entre todos los pares de nodos en un gráfico ponderado. Devuelve un conjunto de registros (seq, id1, id2, cost)   :ref:`pgr_costResult <type_cost_result>` para cada par de nodos en el gráfico."
-
-# e7c4a6dd259d46cd9fcf2631dbc22f2e
-#: ../../../src/apsp_warshall/doc/index.rst:36
-msgid "Description"
-msgstr "Descripción"
-
-# e0f6896524cc4a4d91c418144da5102b
-#: ../../../src/apsp_warshall/doc/index.rst:38
-msgid ""
-"a SQL query that should return the edges for the graph that will be "
-"analyzed:"
-msgstr "una consulta SQL quedebe proporcionar los bordes de la gráfica que va a ser analizada:"
-
-# 97a32a6ff6e14816834d1eb5e229f2b4
-#: ../../../src/apsp_warshall/doc/index.rst:44
-msgid "``int4`` identifier of the edge"
-msgstr "``int4`` identificador del borde"
-
-# b42ae19f11c44f618c034ae1ce6be00a
-#: ../../../src/apsp_warshall/doc/index.rst:45
-msgid "``int4`` identifier of the source vertex for this edge"
-msgstr "``int4`` Identificador del vértice inicial de este borde"
-
-# c0b57bb608d34affbce8c6bb5ec9302f
-#: ../../../src/apsp_warshall/doc/index.rst:46
-msgid "``int4`` identifier of the target vertex for this edge"
-msgstr "``int4`` Identificador del vértice final de este borde"
-
-# c5cb344693474da29d9a8ff57e96c0f7
-#: ../../../src/apsp_warshall/doc/index.rst:47
-msgid "``float8`` a positive value for the cost to traverse this edge"
-msgstr "``float8`` un valor positivo para el costo de atravesar este borde"
-
-# 5dd37dfc4bff497d85337655170aa2fe
-#: ../../../src/apsp_warshall/doc/index.rst:49
-msgid "``true`` if the graph is directed"
-msgstr "``true`` Si la gráfica es direccionada"
-
-# 6996d55bc55245d39ea7b7fadce791a7
-#: ../../../src/apsp_warshall/doc/index.rst:50
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr "Si  es ``True``, el campo ``reverse_cost``  del conjunto de registros generados se utiliza para el calcular el costo de la travesía del borde en la dirección opuesta."
-
-# a26f91fad97b4c1fb810f9cbe42a7c55
-#: ../../../src/apsp_warshall/doc/index.rst:52
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr "Devuelve un conjunto del tipo de datos :ref:`type_cost_result`:"
-
-# d67cd203b9424e1faa0416ab268956c5
-#: ../../../src/apsp_warshall/doc/index.rst:54
-msgid "row sequence"
-msgstr "Secuencia de registros"
-
-# 13448c2239764d798d56189875475d19
-#: ../../../src/apsp_warshall/doc/index.rst:55
-msgid "source node ID"
-msgstr "Identificador del nodo de partida"
-
-# 754d094ac6ae42d5a22b8855ce7a73e7
-#: ../../../src/apsp_warshall/doc/index.rst:56
-msgid "target node ID"
-msgstr "Identificador del nodo de llegada"
-
-# c9edf1f99746459c9ef79922766fc805
-#: ../../../src/apsp_warshall/doc/index.rst:57
-msgid "cost to traverse from ``id1`` to ``id2``"
-msgstr "costo para viajar desde el nodo ``id1``  hasta el nodo ``id2`` "
-
-# e878f40e61334a669136534d82f3bc05
-#: ../../../src/apsp_warshall/doc/index.rst:61
-msgid "History"
-msgstr "Historia"
-
-# b506bf29ad7944d7bd0db6d48ffe9f4f
-#: ../../../src/apsp_warshall/doc/index.rst:62
-msgid "New in version 2.0.0"
-msgstr "Nuevo en la versión 2.0.0"
-
-# 5c0117f6a40740aa8b02bc181e0e01dc
-#: ../../../src/apsp_warshall/doc/index.rst:66
-msgid "Examples"
-msgstr "Ejemplos"
-
-# 38918d939ef74f6e86528d1060dc810c
-#: ../../../src/apsp_warshall/doc/index.rst:84
-msgid "The query uses the :ref:`sampledata` network."
-msgstr "La consulta usa la red del ejemplo  :ref:`sampledata`"
-
-# 4feffc0c2a824f81bb35b10c6f13176d
-#: ../../../src/apsp_warshall/doc/index.rst:88
-msgid "See Also"
-msgstr "Véase también"
-
-# aa6ecd6c9d584db1adf49b7df81583e9
-#: ../../../src/apsp_warshall/doc/index.rst:90
-msgid ":ref:`type_cost_result`"
-msgstr ":ref:`type_cost_result`"
-
-# 0f05cbf530e0455daed36d6b50bbf30f
-#: ../../../src/apsp_warshall/doc/index.rst:91
-msgid ":ref:`pgr_apsp_johnson`"
-msgstr ":ref:`pgr_apsp_johnson`"
-
-# b09888d0778445eb93cbdfb7075b4157
-#: ../../../src/apsp_warshall/doc/index.rst:92
-msgid "http://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall_algorithm"
-msgstr "http://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall_algorithm"
diff --git a/doc/i18n/es/LC_MESSAGES/src/astar/doc/index.po b/doc/i18n/es/LC_MESSAGES/src/astar/doc/index.po
deleted file mode 100644
index 09b09d3..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/astar/doc/index.po
+++ /dev/null
@@ -1,203 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-08-12 15:40+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# b270045aa6e74d789897bb176f5c4a37
-#: ../../../src/astar/doc/index.rst:13
-msgid "pgr_astar - Shortest Path A*"
-msgstr "pgr_astar - Camino más corto A\\*"
-
-# a4d6dd313b3f44bdbbecdf59c8e4e866
-#: ../../../src/astar/doc/index.rst:20
-msgid "Name"
-msgstr "Nombre"
-
-# 0c4c2fff9ea445dcbb1dfdca8374cd09
-#: ../../../src/astar/doc/index.rst:22
-msgid "``pgr_astar`` — Returns the shortest path using A* algorithm."
-msgstr "``pgr_astar`` — Regresa el camino más corto usando el algoritmo A\\*."
-
-# d3e3e83acd754acb9ac4c583d6dd0649
-#: ../../../src/astar/doc/index.rst:26
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# 87ae068cf08b4ddca7f5bb3722ce57f2
-#: ../../../src/astar/doc/index.rst:28
-msgid ""
-"The A* (pronounced \"A Star\") algorithm is based on Dijkstra's algorithm "
-"with a heuristic that allow it to solve most shortest path problems by "
-"evaluation only a sub-set of the overall graph. Returns a set of "
-":ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows, that "
-"make up a path."
-msgstr "El algoritmo A\\* (pronunciado \"A Star\") se basa en el algoritmo de Dijkstra con una heurística que evalua sólo un subconjunto de la gráfica general, permiténdole resolver la mayoría de los problemas del camino más corto. Devuelve un conjunto de registros :ref:`pgr_costResult<type_cost_result>` (seq, id1, id2, cost)  que conforman un camino."
-
-# cd2802c13d3d4798934f9f60cc9ebfb9
-#: ../../../src/astar/doc/index.rst:37
-msgid "Description"
-msgstr "Descripción"
-
-# 64ca501e984b45df9055511188eb65f4
-#: ../../../src/astar/doc/index.rst:39
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr "Consulta SQL, que debe proporcionar un conjunto de registros con los siguientes campos:"
-
-# 739adee835f647ff94511acc6e126ee5
-#: ../../../src/astar/doc/index.rst:46
-msgid "``int4`` identifier of the edge"
-msgstr "``int4`` identificador del borde"
-
-# 72186cf53aee4035bdbcc0495fb6bf42
-#: ../../../src/astar/doc/index.rst:47
-msgid "``int4`` identifier of the source vertex"
-msgstr "``int4`` Identificador del vértice de procedencia del borde"
-
-# 0857159bb2c949bb892388c25f6fb4ec
-#: ../../../src/astar/doc/index.rst:48
-msgid "``int4`` identifier of the target vertex"
-msgstr "``int4`` Identificador del vértice de llegada del borde"
-
-# 4ddccc85290d4aba9b82668e90b2ba31
-#: ../../../src/astar/doc/index.rst:49
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr "``float8``  valor del costo del recorrido sobre el borde. Un costo negativo evitará que el borde sea insertado en el gráfico."
-
-# d21510a5452e4a098e36f5ae7f7585b4
-#: ../../../src/astar/doc/index.rst:50
-msgid "``x`` coordinate of the start point of the edge"
-msgstr "Coordenada ``x``  del punto inicial del borde"
-
-# 78d6feeb1c174e96ad209b97fb1cd538
-#: ../../../src/astar/doc/index.rst:51
-msgid "``y`` coordinate of the start point of the edge"
-msgstr "Coordenada ``y``  del punto inicial del borde"
-
-# b7404cbf8c86414494f72f87b3702241
-#: ../../../src/astar/doc/index.rst:52
-msgid "``x`` coordinate of the end point of the edge"
-msgstr "Coordenada ``x``  del punto final del borde"
-
-# d0f8d9e10994475dac4ad4e8ea1315f7
-#: ../../../src/astar/doc/index.rst:53
-msgid "``y`` coordinate of the end point of the edge"
-msgstr "Coordenada ``y``  del punto final del borde"
-
-# 46b33f8b295043059fce210e43698191
-#: ../../../src/astar/doc/index.rst:54
-msgid ""
-"(optional) the cost for the reverse traversal of the edge. This is only used"
-" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
-"above remark about negative costs)."
-msgstr "(opcional) el costo para el recorrido inverso del borde. Esto sólo se utiliza cuando los parámetros ``directed``  y ``has_rcost`` son ``True`` (ver el comentario anterior sobre los costos negativos)."
-
-# bfd63fe9d374441babb8662a0874482b
-#: ../../../src/astar/doc/index.rst:56
-msgid "``int4`` id of the start point"
-msgstr "``int4`` identificador del punto de partida del recorrido"
-
-# 85d35dcc4ced4efaac8d7b50f4ff9357
-#: ../../../src/astar/doc/index.rst:57
-msgid "``int4`` id of the end point"
-msgstr "``int4`` identificador del punto de llegada del recorrido"
-
-# f93b4ce091a6440d9a656b374fce6636
-#: ../../../src/astar/doc/index.rst:58
-msgid "``true`` if the graph is directed"
-msgstr "``true`` Si la gráfica es direccionada"
-
-# 1a783bf8f88146999659f222ef236d1b
-#: ../../../src/astar/doc/index.rst:59
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr "Si  es ``True``, el campo ``reverse_cost``  del conjunto de registros generados se utilizan para el calcular el costo de la travesía del borde en la dirección opuesta."
-
-# c0f6cf1f1daf40bc8d08fa3b85c3af6b
-#: ../../../src/astar/doc/index.rst:61
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr "Arroja un conjunto del tipo de datos :ref:`type_cost_result`:"
-
-# 22b5e075f6e94c608af67a4c040f4e70
-#: ../../../src/astar/doc/index.rst:63
-msgid "row sequence"
-msgstr "Secuencia de registros"
-
-# 1f3ccd737354442fb4d87684690988a2
-#: ../../../src/astar/doc/index.rst:64
-msgid "node ID"
-msgstr "Identificador del nodo visitado"
-
-# 8a4fe9f16a934ffa842ea049c36728bf
-#: ../../../src/astar/doc/index.rst:65
-msgid "edge ID (``-1`` for the last row)"
-msgstr "Identificador del borde usado (``-1`` para el último)"
-
-# 7cff3509785e40adb8ff4ce4f4bf0774
-#: ../../../src/astar/doc/index.rst:66
-msgid "cost to traverse from ``id1`` using ``id2``"
-msgstr "Costo del recorrido desde el nodo ``id1`` usando el borde ``id2`` hasta su otro extremo"
-
-# 9cc8b235e4214d4c87b729d24031271e
-#: ../../../src/astar/doc/index.rst:70
-msgid "History"
-msgstr "Historia"
-
-# 623c2a84d062407d93855875a467dbe1
-#: ../../../src/astar/doc/index.rst:71
-msgid "Renamed in version 2.0.0"
-msgstr "Renombrado en la versión 2.0.0"
-
-# 7f75da722e6e4680a8d9e0a3d69678b9
-#: ../../../src/astar/doc/index.rst:75
-msgid "Examples"
-msgstr "Ejemplos"
-
-# 533a7e7ccd3645c4a6e6d3e90875cccf
-#: ../../../src/astar/doc/index.rst:77
-msgid "Without ``reverse_cost``"
-msgstr "Sin ``reverse_cost``"
-
-# 0cf32ba2b9dd435191e182fa2e1219a3
-#: ../../../src/astar/doc/index.rst:99
-msgid "With ``reverse_cost``"
-msgstr "Con ``reverse_cost``"
-
-# 266a522386364908870781287ffe7c77
-#: ../../../src/astar/doc/index.rst:117
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "Las consultas usan la red de ejemplo  :ref:`sampledata`"
-
-# 3f0ab007b6c24393bda58a4c8f051a6b
-#: ../../../src/astar/doc/index.rst:121
-msgid "See Also"
-msgstr "Véase también"
-
-# c407743821a8437fa59503cbee2e31b7
-#: ../../../src/astar/doc/index.rst:123
-msgid ":ref:`type_cost_result`"
-msgstr ":ref:`type_cost_result`"
-
-# 994c0952621c47349ec4e5b209ee1129
-#: ../../../src/astar/doc/index.rst:124
-msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
-msgstr "http://en.wikipedia.org/wiki/A*_search_algorithm"
diff --git a/doc/i18n/es/LC_MESSAGES/src/bd_astar/doc/index.po b/doc/i18n/es/LC_MESSAGES/src/bd_astar/doc/index.po
deleted file mode 100644
index 2b2421b..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/bd_astar/doc/index.po
+++ /dev/null
@@ -1,222 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-21 17:09+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# d85c70ae393d476284068bf297195cc7
-#: ../../../src/bd_astar/doc/index.rst:13
-msgid "pgr_bdAstar - Bi-directional A* Shortest Path"
-msgstr "pgr_bdAstar - Camino más corto bidireccional A\\*"
-
-# 59f0d447a4034729bbdc2dad7b88dcce
-#: ../../../src/bd_astar/doc/index.rst:20
-msgid "Name"
-msgstr "Nombre"
-
-# ff5b6b1bd362408c80bec7cfbc7108bf
-#: ../../../src/bd_astar/doc/index.rst:22
-msgid ""
-"``pgr_bdAstar`` - Returns the shortest path using Bidirectional A* "
-"algorithm."
-msgstr "``pgr_bdAstar`` - Regresa el camino más corto usando el algoritmo A\\* bidireccional."
-
-# 6e2dd97777d64f02afc4b396822f7c37
-#: ../../../src/bd_astar/doc/index.rst:26
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# d88a86d95c0447db93be2a1f185b91bd
-#: ../../../src/bd_astar/doc/index.rst:28
-msgid ""
-"This is a bi-directional A* search algorithm. It searchs from the source "
-"toward the distination and at the same time from the destination to the "
-"source and terminates whe these to searchs meet in the middle. Returns a set"
-" of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows, "
-"that make up a path."
-msgstr "Este es un algoritmo de búsqueda bidireccional A\\*.  Busca desde la fuente hasta el destino  y al mismo tiempo desde el destino al origen y termina cuando estos las búsquedas se reúnen en el centro. Devuelve un conjunto de registros :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, costo)  que conforman un camino."
-
-# c9f7d12fb2c9416390cbb64c61cdaaba
-#: ../../../src/bd_astar/doc/index.rst:37
-msgid "Description"
-msgstr "Descripción"
-
-# 2228656c57724bc18029fa054849a999
-#: ../../../src/bd_astar/doc/index.rst:39
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr "Consulta SQL que debe proporcionar un conjunto de registros con los siguientes campos:"
-
-# ba13914fdd78469389ae129eee02785f
-#: ../../../src/bd_astar/doc/index.rst:46
-msgid "``int4`` identifier of the edge"
-msgstr "``int4`` identificador del borde"
-
-# 5e7f92a0ffa845a385efe72da0760ee5
-#: ../../../src/bd_astar/doc/index.rst:47
-msgid "``int4`` identifier of the source vertex"
-msgstr "``int4`` Identificador del vértice inicial del borde"
-
-# 194b29afb7b3486eb5611222273bb323
-#: ../../../src/bd_astar/doc/index.rst:48
-msgid "``int4`` identifier of the target vertex"
-msgstr "``int4`` Identificador del vértice final del borde"
-
-# 37f1ad354f13413fa6a47ec8ceaa3262
-#: ../../../src/bd_astar/doc/index.rst:49
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr "``float8``  valor del costo del recorrido sobre el borde. Un costo negativo evitará que el borde sea insertado en el gráfico."
-
-# f7bf689e55584ee0b2e095b8f3147354
-#: ../../../src/bd_astar/doc/index.rst:50
-msgid "``x`` coordinate of the start point of the edge"
-msgstr "Coordenada ``x`` del punto del inicio del borde"
-
-# e7b2325c3e8f473fae345bff6b9f9af6
-#: ../../../src/bd_astar/doc/index.rst:51
-msgid "``y`` coordinate of the start point of the edge"
-msgstr "Coordenada ``y`` del punto del inicio del borde"
-
-# a554e40ce41e485d83bdcc425edab876
-#: ../../../src/bd_astar/doc/index.rst:52
-msgid "``x`` coordinate of the end point of the edge"
-msgstr "Coordenada ``x`` del punto del final del borde"
-
-# d0033effb66d4af891d51c0553106616
-#: ../../../src/bd_astar/doc/index.rst:53
-msgid "``y`` coordinate of the end point of the edge"
-msgstr "Coordenada ``y`` del punto del final del borde"
-
-# 52fd318293ff42458d93837f06a5dd78
-#: ../../../src/bd_astar/doc/index.rst:54
-msgid ""
-"(optional) the cost for the reverse traversal of the edge. This is only used"
-" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
-"above remark about negative costs)."
-msgstr "(opcional) el costo para el recorrido inverso del borde. Se utiliza sólo cuando los parámetros ``directed``  y ``has_rcost`` son ``True`` (ver el comentario anterior acerca de los costos negativos)."
-
-# b2ec788128e44b59a8a9eaf588b3ef93
-#: ../../../src/bd_astar/doc/index.rst:56
-msgid "``int4`` id of the start point"
-msgstr "``int4`` identificador del punto de partida"
-
-# f5809c895ef3496fbaf43892301858ca
-#: ../../../src/bd_astar/doc/index.rst:57
-msgid "``int4`` id of the end point"
-msgstr "``int4`` Identificador del punto de llegada"
-
-# 29607e76254f42938d9c38a10e11c7b9
-#: ../../../src/bd_astar/doc/index.rst:58
-msgid "``true`` if the graph is directed"
-msgstr "``true`` Si la gráfica es direccionada"
-
-# f4b5e84674e749be9f6ba934004cd598
-#: ../../../src/bd_astar/doc/index.rst:59
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr "Si  es ``True``, el campo ``reverse_cost``  del conjunto de registros generados se utilizan para el calcular el costo de la travesía del borde en la dirección opuesta."
-
-# 9969bf0e6e5f40e3b44efbfd0e53d70b
-#: ../../../src/bd_astar/doc/index.rst:61
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr "Arroja un conjunto del tipo de datos :ref:`type_cost_result`:"
-
-# 1634c060516d40388b007b17f2fee94c
-#: ../../../src/bd_astar/doc/index.rst:63
-msgid "row sequence"
-msgstr "Secuencia de registros"
-
-# 4a478cf05b72415ebfc7f95d8e0b8625
-#: ../../../src/bd_astar/doc/index.rst:64
-msgid "node ID"
-msgstr "Identificador del nodo visitado"
-
-# b94cd2b23db94500b803d9c02b8ab358
-#: ../../../src/bd_astar/doc/index.rst:65
-msgid "edge ID (``-1`` for the last row)"
-msgstr "Identificador del borde (``-1`` para el ultimo registro)"
-
-# b8b6a3e185934bc4b7d44f66694523c5
-#: ../../../src/bd_astar/doc/index.rst:66
-msgid "cost to traverse from ``id1`` using ``id2``"
-msgstr "costo para atravesar desde el nodo ``id1``  usando el borde``id2`` hasta su otro extremo"
-
-# f9a6aa6c249c40968bc39a3db86a5ebe
-#: ../../../src/bd_astar/doc/index.rst:70
-msgid ""
-"You must reconnect to the database after ``CREATE EXTENSION pgrouting``. "
-"Otherwise the function will return ``Error computing path: std::bad_alloc``."
-msgstr "Usted debe reconectarse a la base de datos después de ``CREATE EXTENSION pgRouting`` . De lo contrario la función arrojará el error ``Error computing path: std::bad_alloc``."
-
-# e574996346fe4d3d937be160d621e660
-#: ../../../src/bd_astar/doc/index.rst:74
-msgid "History"
-msgstr "Historia"
-
-# 98c01f9f86914541a78481fc80a804dd
-#: ../../../src/bd_astar/doc/index.rst:75
-msgid "New in version 2.0.0"
-msgstr "Nuevo en la versión 2.0.0"
-
-# fd577945de174be79b0b53dc92d1fdae
-#: ../../../src/bd_astar/doc/index.rst:79
-msgid "Examples"
-msgstr "Ejemplos"
-
-# 1e4a6776b9154f5da5abb5c6d64f3221
-#: ../../../src/bd_astar/doc/index.rst:81
-msgid "Without ``reverse_cost``"
-msgstr "Sin ``reverse_cost``"
-
-# 3f707fb48bdf4edfa0f1b3657cfcbb7a
-#: ../../../src/bd_astar/doc/index.rst:101
-msgid "With ``reverse_cost``"
-msgstr "Con ``reverse_cost``"
-
-# 473f16db67964e14b8efb25a1cf057b9
-#: ../../../src/bd_astar/doc/index.rst:120
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "Las consultas usan la red de ejemplo  :ref:`sampledata`"
-
-# 7289ec5f57844a379608577bd455d4b5
-#: ../../../src/bd_astar/doc/index.rst:124
-msgid "See Also"
-msgstr "Véase también"
-
-# 773014635f2c4e87a452416b391581e5
-#: ../../../src/bd_astar/doc/index.rst:126
-msgid ":ref:`type_cost_result`"
-msgstr ":ref:`type_cost_result`"
-
-# f4c3b61a97b94311a9f83508c040b614
-#: ../../../src/bd_astar/doc/index.rst:127
-msgid ":ref:`bd_dijkstra`"
-msgstr ":ref:`bd_dijkstra`"
-
-# 769c0e94fba24848bb36a7bb9ca90800
-#: ../../../src/bd_astar/doc/index.rst:128
-msgid "http://en.wikipedia.org/wiki/Bidirectional_search"
-msgstr "http://en.wikipedia.org/wiki/Bidirectional_search"
-
-# bc6e6a206f44475d91e857ec85d36106
-#: ../../../src/bd_astar/doc/index.rst:129
-msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
-msgstr "http://en.wikipedia.org/wiki/A*_search_algorithm"
diff --git a/doc/i18n/es/LC_MESSAGES/src/bd_dijkstra/doc/index.po b/doc/i18n/es/LC_MESSAGES/src/bd_dijkstra/doc/index.po
deleted file mode 100644
index 7e13b91..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/bd_dijkstra/doc/index.po
+++ /dev/null
@@ -1,195 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-21 17:07+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 3c0a9e188c614b0d8a83fad794d3b42f
-#: ../../../src/bd_dijkstra/doc/index.rst:13
-msgid "pgr_bdDijkstra - Bi-directional Dijkstra Shortest Path"
-msgstr "pgr_bdDijkstra - Camino más corto bidireccional de Dijkstra"
-
-# 2a8d7f88cd7c41549e90531d1d565848
-#: ../../../src/bd_dijkstra/doc/index.rst:21
-msgid "Name"
-msgstr "Nombre"
-
-# 9e326337967141dd8cb35c1a7eb5d7b2
-#: ../../../src/bd_dijkstra/doc/index.rst:23
-msgid ""
-"``pgr_bdDijkstra`` - Returns the shortest path using Bidirectional Dijkstra "
-"algorithm."
-msgstr "``pgr_bdDijkstra`` - Devuelve el recorrido más corto bidireccional usando el algoritmo de Dijkstra"
-
-# e2e0af558a7340a7a29f667b07037690
-#: ../../../src/bd_dijkstra/doc/index.rst:27
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# 23d2258a058a4b5fa6dcb6655362484a
-#: ../../../src/bd_dijkstra/doc/index.rst:29
-msgid ""
-"This is a bi-directional Dijkstra search algorithm. It searchs from the "
-"source toward the distination and at the same time from the destination to "
-"the source and terminates whe these to searchs meet in the middle. Returns a"
-" set of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows,"
-" that make up a path."
-msgstr "Este es un algoritmo de búsqueda bidireccional de Dijkstra. Realiza una búsqueda desde la fuente hacia el destino y, al mismo tiempo, desde el destino hacia el origen, terminando donde estas búsquedas se reúnen en el centro. Devuelve un conjunto de registros :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) que conforman un camino."
-
-# b37dbb1c097441d7afac9b1c3be4fa16
-#: ../../../src/bd_dijkstra/doc/index.rst:38
-msgid "Description"
-msgstr "Descripción"
-
-# 27182b928a294e22bbd7567e7ef6a1a6
-#: ../../../src/bd_dijkstra/doc/index.rst:40
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr "Consulta SQL, que debe proporcionar un conjunto de registros con los siguientes campos:"
-
-# d5ecf6b2aa844b768783b31d91cc0d1c
-#: ../../../src/bd_dijkstra/doc/index.rst:47
-msgid "``int4`` identifier of the edge"
-msgstr "``int4`` identificador del borde"
-
-# 282a69ee248b4dcfa591ec2aa3668cf4
-#: ../../../src/bd_dijkstra/doc/index.rst:48
-msgid "``int4`` identifier of the source vertex"
-msgstr "``int4`` Identificador del vértice inicial de este borde"
-
-# d8ca4a99797f4da89401ca4eae5de81b
-#: ../../../src/bd_dijkstra/doc/index.rst:49
-msgid "``int4`` identifier of the target vertex"
-msgstr "``int4`` Identificador del vértice final de este borde"
-
-# 16d3eacf8377421dbb3aa3f559f8c2fd
-#: ../../../src/bd_dijkstra/doc/index.rst:50
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr "``float8``  valor del costo del recorrido sobre el borde. Un costo negativo evitará que el borde sea insertado en el gráfico."
-
-# 2a8cd5659ad849358862b656205877aa
-#: ../../../src/bd_dijkstra/doc/index.rst:51
-msgid ""
-"(optional) the cost for the reverse traversal of the edge. This is only used"
-" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
-"above remark about negative costs)."
-msgstr "(opcional) El costo para el recorrido inverso del borde. Esto sólo se utiliza cuando los parámetros ``directed`` y ``has_rcost``  son ``True`` (ver el comentario anterior sobre los costos negativos)."
-
-# 95f13721773f433891e1e8b50ac04509
-#: ../../../src/bd_dijkstra/doc/index.rst:53
-msgid "``int4`` id of the start point"
-msgstr "``int4`` identificador del punto de partida"
-
-# b9798483a7944c23b68242badf5ba991
-#: ../../../src/bd_dijkstra/doc/index.rst:54
-msgid "``int4`` id of the end point"
-msgstr "``int4`` Identificador del punto de llegada"
-
-# ff73a5d65d1e44728449829347874aa3
-#: ../../../src/bd_dijkstra/doc/index.rst:55
-msgid "``true`` if the graph is directed"
-msgstr "``true`` Si la gráfica es direccionada"
-
-# c177b69ec8f34e3e8347a48cd4fd0eec
-#: ../../../src/bd_dijkstra/doc/index.rst:56
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr "Si  es ``True``, el campo ``reverse_cost``  del conjunto de registros generados se utiliza para el calcular el costo de la travesía del borde en la dirección opuesta."
-
-# 94093f98581b414e8de69c5c03ed7ff9
-#: ../../../src/bd_dijkstra/doc/index.rst:58
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr "Devuelve un conjunto del tipo de datos :ref:`type_cost_result`:"
-
-# b6dcdf2882344c97b13a0a1b5dcfc76f
-#: ../../../src/bd_dijkstra/doc/index.rst:60
-msgid "row sequence"
-msgstr "Secuencia de registros"
-
-# 71a25f43edad4704b8f7bc386b951d6a
-#: ../../../src/bd_dijkstra/doc/index.rst:61
-msgid "node ID"
-msgstr "Identificador del nodo visitado"
-
-# bb342316c7374f38ae60758a95fe5aa0
-#: ../../../src/bd_dijkstra/doc/index.rst:62
-msgid "edge ID (``-1`` for the last row)"
-msgstr "identificador del borde (``-1`` para el último)"
-
-# 903aaea6437d438094faa1255671261a
-#: ../../../src/bd_dijkstra/doc/index.rst:63
-msgid "cost to traverse from ``id1`` using ``id2``"
-msgstr "costo del recorrido desde  el nodo ``id1`` usando el borde ``id2`` hasta el otro extremo del borde"
-
-# 9422981e26f04c7e9edb754944c47cea
-#: ../../../src/bd_dijkstra/doc/index.rst:66
-msgid "History"
-msgstr "Historia"
-
-# c1db7489de2b4ef8880d8d9f3abb66e3
-#: ../../../src/bd_dijkstra/doc/index.rst:67
-msgid "New in version 2.0.0"
-msgstr "Nuevo en la versión 2.0.0"
-
-# e61d7de8bdb04972a567e5884e47773a
-#: ../../../src/bd_dijkstra/doc/index.rst:71
-msgid "Examples"
-msgstr "Ejemplos"
-
-# e5bb5ec0cf844c229475d4e75c327eb3
-#: ../../../src/bd_dijkstra/doc/index.rst:73
-msgid "Without ``reverse_cost``"
-msgstr "Sin ``reverse_cost``"
-
-# 7b425886ca994a1e87e833443909b584
-#: ../../../src/bd_dijkstra/doc/index.rst:93
-msgid "With ``reverse_cost``"
-msgstr "Con ``reverse_cost``"
-
-# f47bce06d90b47c0a3ba534e4af09213
-#: ../../../src/bd_dijkstra/doc/index.rst:113
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "Las consultas usan la red de ejemplo  :ref:`sampledata`"
-
-# dce05fd947104f7fb53f334994b47db8
-#: ../../../src/bd_dijkstra/doc/index.rst:117
-msgid "See Also"
-msgstr "Véase también"
-
-# e9e1be5a32c8439083185caf29aaa09b
-#: ../../../src/bd_dijkstra/doc/index.rst:119
-msgid ":ref:`type_cost_result`"
-msgstr ":ref:`type_cost_result`"
-
-# 7e04714c590148078028bde3efbb5f57
-#: ../../../src/bd_dijkstra/doc/index.rst:120
-msgid ":ref:`bd_astar`"
-msgstr ":ref:`bd_astar`"
-
-# 1e532cd9d5634fb0934e837b0db7ad8a
-#: ../../../src/bd_dijkstra/doc/index.rst:121
-msgid "http://en.wikipedia.org/wiki/Bidirectional_search"
-msgstr "http://en.wikipedia.org/wiki/Bidirectional_search"
-
-# e3826d9e6a084b349a9ed0d6fffdb1ad
-#: ../../../src/bd_dijkstra/doc/index.rst:122
-msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
-msgstr "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
diff --git a/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/analyze_graph.po b/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/analyze_graph.po
deleted file mode 100644
index e1edc50..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/analyze_graph.po
+++ /dev/null
@@ -1,411 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-23 15:19+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 4ec68d2c61f945ef81648e1b5c6415f1
-#: ../../../src/common/doc/functions/analyze_graph.rst:13
-msgid "pgr_analyzeGraph"
-msgstr "pgr_analyzeGraph"
-
-# 4c3762e114fb4e67a2515bba541c8f36
-#: ../../../src/common/doc/functions/analyze_graph.rst:20
-msgid "Name"
-msgstr "Nombre"
-
-# ac455e0fb31e44308320f39bbd78adfc
-#: ../../../src/common/doc/functions/analyze_graph.rst:22
-msgid "``pgr_anlizeGraph`` — Analyzes the network topology."
-msgstr "``pgr_anlizeGraph`` — analiza la topología de red."
-
-# 7d6b06e1d5354d94ac2855084e4e9e71
-#: ../../../src/common/doc/functions/analyze_graph.rst:26
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# 19f89e76f38342129988c1b3de66af9a
-# ebc7d96a54cb409a916a9e44ff8544f9
-#: ../../../src/common/doc/functions/analyze_graph.rst:28
-#: ../../../src/common/doc/functions/analyze_graph.rst:61
-msgid "The function returns:"
-msgstr "La función devuelve:"
-
-# b996e0d0950741438419d72fc2aaa1a6
-# ac02a2dca7d24bb296b418e5019b5d52
-#: ../../../src/common/doc/functions/analyze_graph.rst:30
-#: ../../../src/common/doc/functions/analyze_graph.rst:63
-msgid "``OK`` after the analysis has finished."
-msgstr "``OK`` Cuando el análisis ha terminado."
-
-# 6494556e5a0240b6b89d6cc13588a959
-# 226def8709104fefbde358ee19f0dbdc
-#: ../../../src/common/doc/functions/analyze_graph.rst:31
-#: ../../../src/common/doc/functions/analyze_graph.rst:69
-msgid "``FAIL`` when the analysis was not completed due to an error."
-msgstr "``FAIL`` cuando el análisis no se completó debido a un error."
-
-# 258df98c829a48e794073f4f67e64d37
-#: ../../../src/common/doc/functions/analyze_graph.rst:40
-msgid "Description"
-msgstr "Descripción"
-
-# 2ea823d9ac6a4b309542c1efdf685188
-#: ../../../src/common/doc/functions/analyze_graph.rst:43
-msgid "Prerequisites"
-msgstr "Requisitos previos"
-
-# b6f61bceeb764c09a0519ef218788641
-#: ../../../src/common/doc/functions/analyze_graph.rst:44
-msgid ""
-"The  edge table to be analyzed must contain a source column and a target "
-"column filled with id's of the vertices of the segments and the "
-"corresponding vertices table <edge_table>_vertices_pgr that stores the "
-"vertices information."
-msgstr "La tabla de bordes debe ser analizada debe contener una columna de origen y una columna de destino llena con los identificadores de los vértices de los segmentos y los vértices correspondientes de la tabla <edge_table>_vertices_pgr que almacena la información de los vértices."
-
-# bc5a5fd73e194a1eb18560c62b8726c5
-#: ../../../src/common/doc/functions/analyze_graph.rst:46
-msgid ""
-"Use :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create the "
-"vertices table."
-msgstr "usar :ref:`pgr_createVerticesTable <pgr_create_vert_table>` para crear la tabla de vértices."
-
-# dddd02de549c450da54ecc30da50bcac
-#: ../../../src/common/doc/functions/analyze_graph.rst:47
-msgid ""
-"Use :ref:`pgr_createTopology <pgr_create_topology>` to create the topology "
-"and the vertices table."
-msgstr "Usar :ref:`pgr_createTopology <pgr_create_topology>` para crear la topología y la tabla de vértices."
-
-# 2f1a64c5c7df47c08b9460c1c2ca9a0d
-#: ../../../src/common/doc/functions/analyze_graph.rst:50
-msgid "Parameters"
-msgstr "Parámetros"
-
-# f7ef120ecd234df3bc9de0b69122a094
-#: ../../../src/common/doc/functions/analyze_graph.rst:51
-msgid "The analyze graph function accepts the following parameters:"
-msgstr "La función de análisis gráfico acepta los siguientes parámetros:"
-
-# 93b5fa9bcdd84ccbae6d4945adb6b9b5
-#: ../../../src/common/doc/functions/analyze_graph.rst:53
-msgid "``text`` Network table name. (may contain the schema name as well)"
-msgstr "``text`` La tabla de la red. (puede contener el nombre del esquema)"
-
-# 0c3bf879395649e1aac68ae62880746b
-#: ../../../src/common/doc/functions/analyze_graph.rst:54
-msgid ""
-"``float8`` Snapping tolerance of disconnected edges. (in projection unit)"
-msgstr "``float8`` ajuste tolerancia de bordes desconectados. (en la unidad de proyección)"
-
-# cd2deb23e3394ad298d9787e069561e2
-#: ../../../src/common/doc/functions/analyze_graph.rst:55
-msgid ""
-"``text``  Geometry column name of the network table. Default value is "
-"``the_geom``."
-msgstr "``text``  nombre de la columna de la geometría en la tabla de la red. El valor por defecto es ``the_geom``"
-
-# 31330d72cbb748289eafa0fcb996153d
-#: ../../../src/common/doc/functions/analyze_graph.rst:56
-msgid ""
-"``text``  Primary key column name of the network table. Default value is "
-"``id``."
-msgstr "``text``Nombre de la columna de la clave principal de la tabla de red. Valor por defecto es ``id``."
-
-# b9e5db8199ce47ccb092272e93020d7c
-#: ../../../src/common/doc/functions/analyze_graph.rst:57
-msgid ""
-"``text`` Source column name of the network table. Default value is "
-"``source``."
-msgstr "``id``Nombre de columna de origen de la tabla de red. El valor predeterminado es``source``."
-
-# 245c992a7082431684659ae5845aced6
-#: ../../../src/common/doc/functions/analyze_graph.rst:58
-msgid ""
-"``text``  Target column name of the network table.  Default value is "
-"``target``."
-msgstr "``text``  El nombre de la columna del nodo de llegada del segmento.  El valor por defecto es ``target``."
-
-# 8e81329133844e65b7eef1f84cb73965
-#: ../../../src/common/doc/functions/analyze_graph.rst:59
-msgid ""
-"``text``   Condition to select  a subset or rows.  Default value is ``true``"
-" to indicate all rows."
-msgstr "``text`` condición para seleccionar un subconjunto o filas.  Valor predeterminado es ``true`` para indicar todas las filas."
-
-# c99a684aa3994cc4b60c334882d9ed78
-#: ../../../src/common/doc/functions/analyze_graph.rst:65
-msgid "Uses the vertices table: <edge_table>_vertices_pgr."
-msgstr "Utiliza la tabla de los vértices: <edge_table>_vertices_pgr."
-
-# e32eb0de40d0487fbb1062ec88c5bbe9
-#: ../../../src/common/doc/functions/analyze_graph.rst:66
-msgid "Fills completly the ``cnt`` and ``chk`` columns of the vertices table."
-msgstr "Llena completamente los  columnas ``cnt`` y ``chk`` de la tabla de los vértices."
-
-# a4a0f627086946459e80cc8ac16b31b8
-#: ../../../src/common/doc/functions/analyze_graph.rst:67
-msgid ""
-"Returns the analysis of the section of the network defined by  "
-"``rows_where``"
-msgstr "Devuelve el análisis de la sección de la red definida por ``rows_where``"
-
-# f2d3df84fbb14b48a0dba64650326883
-#: ../../../src/common/doc/functions/analyze_graph.rst:71
-msgid "The vertices table is not found."
-msgstr "No se encuentra en la tabla de los vértices."
-
-# 1c3dd89f91d94a32b0fa96e3c8544649
-#: ../../../src/common/doc/functions/analyze_graph.rst:72
-msgid ""
-"A required column of the Network table is not found or is not of the "
-"appropriate type."
-msgstr "Una columna de la tabla de red requerida no se encuentra o no es del tipo apropiado."
-
-# 0e7728a66df8403b80c0e73cc496d665
-#: ../../../src/common/doc/functions/analyze_graph.rst:73
-msgid "The condition is not well formed."
-msgstr "La condición no está bien formada."
-
-# 8a41f89e1b6c4622925078236419ba59
-#: ../../../src/common/doc/functions/analyze_graph.rst:74
-msgid "The names of source , target or id are the same."
-msgstr "Los nombres de origen, destino o id son las mismos."
-
-# 9a0c49ad17e7442291584a6d38ad24f0
-#: ../../../src/common/doc/functions/analyze_graph.rst:75
-msgid "The SRID of the geometry could not be determined."
-msgstr "No pudo determinarse el SRID de la geometría."
-
-# a28d4cfc2fb145bd8b620cd99ae007ef
-#: ../../../src/common/doc/functions/analyze_graph.rst:79
-msgid "The Vertices Table"
-msgstr "La tabla de vértices"
-
-# 6726eb03c9e14ce487a84ef6bdb3d061
-#: ../../../src/common/doc/functions/analyze_graph.rst:80
-msgid ""
-"The vertices table can be created with :ref:`pgr_createVerticesTable "
-"<pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>`"
-msgstr "La tabla de los vértices puede crearse con  :ref:`pgr_createVerticesTable <pgr_create_vert_table>` o :ref:`pgr_createTopology <pgr_create_topology>`"
-
-# f69881355abd43b08fd4b112a15c823a
-#: ../../../src/common/doc/functions/analyze_graph.rst:82
-msgid "The structure of the vertices table is:"
-msgstr "La estructura de la tabla de los vértices es:"
-
-# e9b846b6c67a40a5a56ce827cbde2335
-#: ../../../src/common/doc/functions/analyze_graph.rst:84
-msgid "``bigint`` Identifier of the vertex."
-msgstr "``bigint`` identificador del vértice."
-
-# c76d33c8d1d243e78adb977c995c1ed9
-#: ../../../src/common/doc/functions/analyze_graph.rst:85
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex."
-msgstr "``integer`` número de vértices en la edge_table que hacen referencia a este vértice. "
-
-# 2a14dd7a08114891908953fe3f87a075
-#: ../../../src/common/doc/functions/analyze_graph.rst:86
-msgid "``integer``  Indicator that the vertex might have a problem."
-msgstr "``integer`` indicador que el vértice podría tener un problema."
-
-# 9731ccd0742c4573b05224539f373580
-#: ../../../src/common/doc/functions/analyze_graph.rst:87
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"as incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-msgstr "``integer`` número de vértices en la edge_table que hacen referencia a este vértice como entrante. Ver :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-
-# bf31d82856954293ac270255b046d010
-#: ../../../src/common/doc/functions/analyze_graph.rst:88
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"as outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-msgstr "``integer`` número de vértices en la edge_table que hacen referencia a este vértice como saliente.  Ver :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-
-# fa51c4280ee2409daf5cee9fbc858ef4
-#: ../../../src/common/doc/functions/analyze_graph.rst:89
-msgid "``geometry`` Point geometry of the vertex."
-msgstr "``geometry`` Valor de la geometría POINT del vértice."
-
-# 3a2bb12205fe4cd6ad67ba6a8f37afe4
-#: ../../../src/common/doc/functions/analyze_graph.rst:92
-msgid "History"
-msgstr "Historia"
-
-# 378f4d42f82e4d30a6ab016e5ecc621a
-#: ../../../src/common/doc/functions/analyze_graph.rst:93
-msgid "New in version 2.0.0"
-msgstr "Nuevo en la versión 2.0.0"
-
-# f2b122f189224840ad820005cf04c3c1
-#: ../../../src/common/doc/functions/analyze_graph.rst:96
-msgid "Usage when the edge table's columns MATCH the default values:"
-msgstr "Uso cuando las columnas de la tabla de borde coinciden con los valores por defecto:"
-
-# bbc188364d7a4ba9b73c901703f754a0
-#: ../../../src/common/doc/functions/analyze_graph.rst:99
-msgid "The simplest way to use pgr_analyzeGraph is:"
-msgstr "La forma más sencilla de usar pgr_analyzeGraph es:"
-
-# eef338680d2247e485489cda2088d085
-#: ../../../src/common/doc/functions/analyze_graph.rst:106
-msgid "When the arguments are given in the order described in the parameters:"
-msgstr "Cuando los argumentos se escriben en el orden descrito en los parámetros:"
-
-# bd9ee1725f5f458e84d65ccbde7489d2
-#: ../../../src/common/doc/functions/analyze_graph.rst:111
-msgid "We get the same result as the simplest way to use the function."
-msgstr "Obtenemos el mismo resultado que la forma más sencilla de utilizar la función."
-
-# e6bd1bc511a6475aaa6fcce1db0cc9fd
-# 667d346fce1340c89b86814855215f31
-#: ../../../src/common/doc/functions/analyze_graph.rst:118
-#: ../../../src/common/doc/functions/analyze_graph.rst:184
-msgid "When using the named notation"
-msgstr "Cuando se utiliza la notación por nombre"
-
-# a6f10ab57f0645b6b0307bcb5d6c7ef3
-# eae5acaa57ff4a459953c203612092fa
-#: ../../../src/common/doc/functions/analyze_graph.rst:119
-#: ../../../src/common/doc/functions/analyze_graph.rst:185
-msgid "The order of the parameters do not matter:"
-msgstr "No importa el orden de los parámetros:"
-
-# 0b36ba3cb2c24c17b8740a45f3430b69
-#: ../../../src/common/doc/functions/analyze_graph.rst:129
-msgid ""
-"Parameters defined with a default value can be ommited, as long as the value"
-" matches the default:"
-msgstr "Parámetros definidos con un valor por defecto pueden ser omitidos, mientras el valor coincida con el valor por defecto:"
-
-# 5130840677694ba3a4c08ae3b787e4d5
-# 309f2f767a9c4f419bb1a4ad1c1bfacf
-#: ../../../src/common/doc/functions/analyze_graph.rst:136
-#: ../../../src/common/doc/functions/analyze_graph.rst:199
-msgid "Selecting rows using rows_where parameter"
-msgstr "Seleccionar filas utilizando el parámetro rows_where"
-
-# e7093f0dacbf44af908a1259b2b8f45d
-#: ../../../src/common/doc/functions/analyze_graph.rst:137
-msgid ""
-"Selecting rows based on the id. Displays the analysis a the section of the "
-"network."
-msgstr "La selección de filas basadas en el id. El análisis muestra una parte de la red."
-
-# 2867ea63b6b14572adb1130a9d04e28a
-#: ../../../src/common/doc/functions/analyze_graph.rst:143
-msgid ""
-"Selecting the rows where the geometry is near the geometry of row with "
-"``id`` =5 ."
-msgstr "Seleccionar las filas donde la geometría está cerca de la geometría de la fila con ``id`` =5."
-
-# 3cf323ab63204d99ac7ca31677b9e667
-#: ../../../src/common/doc/functions/analyze_graph.rst:149
-msgid ""
-"Selecting the rows where the geometry is near the geometry of the row with "
-"``gid`` =100 of the table ``othertable``."
-msgstr "Seleccionar las filas donde la geometría está cerca de la geometría de la fila con``gid`` =100  de la tabla ``othertable``."
-
-# baf5ffc28192473483bc4a1a4a0315f3
-#: ../../../src/common/doc/functions/analyze_graph.rst:160
-msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
-msgstr "Uso cuando las columnas de la tabla de borde NO COINCIDEN con los valores por defecto:"
-
-# 57cb32f6495d4cb0b5f36be03adc7efa
-#: ../../../src/common/doc/functions/analyze_graph.rst:162
-msgid "For the following table"
-msgstr "Para la siguiente tabla"
-
-# 12fcad9f3b484280baa8b29867859861
-#: ../../../src/common/doc/functions/analyze_graph.rst:171
-msgid "Using positional notation:"
-msgstr "Usando notación posicional:"
-
-# 07a02c55d3eb4f9eb1dfed2833efcbe8
-#: ../../../src/common/doc/functions/analyze_graph.rst:172
-msgid ""
-"The arguments need to be given in the order described in the parameters:"
-msgstr "Las discusiones deben recibir en el orden descrito en los parámetros:"
-
-# 5dc716a92a81438c888764e8cb2b5b79
-#: ../../../src/common/doc/functions/analyze_graph.rst:195
-msgid ""
-"In this scenario omitting a parameter would create an error because the "
-"default values for the column names do not match the column names of the "
-"table."
-msgstr "En este escenario omitir un parámetro crearía un error porque los valores predeterminados de los nombres de columna no coinciden con los nombres de columna de la tabla."
-
-# 057829092b8a4504a3115036a73a489f
-#: ../../../src/common/doc/functions/analyze_graph.rst:200
-msgid "Selecting rows based on the id."
-msgstr "La selección de filas basadas en el id."
-
-# 5c1437170b9149c5bc4174edc58ee875
-#: ../../../src/common/doc/functions/analyze_graph.rst:210
-msgid ""
-"Selecting the rows WHERE the geometry is near the geometry of row with "
-"``id`` =5 ."
-msgstr "Seleccionar las filas donde la geometría está cerca de la geometría de la fila con ``id`` =5 ."
-
-# 3d622065f50846578692f7a1b2a136d9
-#: ../../../src/common/doc/functions/analyze_graph.rst:222
-msgid ""
-"Selecting the rows WHERE the geometry is near the place='myhouse' of the "
-"table ``othertable``. (note the use of quote_literal)"
-msgstr "Seleccionar las filas donde la geometría está cerca de la place='myhouse'  de la tabla ``othertable``. (Nótese el uso de quote_literal)"
-
-# 2cffbd13f5f54de1abd9c025df6a762a
-#: ../../../src/common/doc/functions/analyze_graph.rst:239
-msgid "Examples"
-msgstr "Ejemplos"
-
-# eeedfddf23864b98a801913ef15f7cd9
-#: ../../../src/common/doc/functions/analyze_graph.rst:366
-msgid "The examples use the :ref:`sampledata` network."
-msgstr "Los ejemplos usan la red de ejemplo  :ref:`sampledata`"
-
-# d6f7c52a1a824867943d8adae7b2e245
-#: ../../../src/common/doc/functions/analyze_graph.rst:370
-msgid "See Also"
-msgstr "Véase también"
-
-# ba0f07ab7dca4083a5aef16d566cf506
-#: ../../../src/common/doc/functions/analyze_graph.rst:372
-msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
-msgstr ":ref:`topology` para tener una visión general de una topología de algoritmos de enrrutamiento."
-
-# 90d9202a2da94489b4b43a71caa66956
-#: ../../../src/common/doc/functions/analyze_graph.rst:373
-msgid ":ref:`pgr_analyze_oneway` to analyze directionality of the edges."
-msgstr ":ref:`pgr_analyze_oneway` para analizar la direccionalidad de los bordes."
-
-# 73d10e9d35dd4a269249fbc09274000b
-#: ../../../src/common/doc/functions/analyze_graph.rst:374
-msgid ""
-":ref:`pgr_createVerticesTable <pgr_create_vert_table>` to reconstruct the "
-"vertices table based on the source and target information."
-msgstr ":ref:`pgr_createVerticesTable <pgr_create_vert_table>` para reconstruir la tabla de vértices basándose en la información de origen y de destino."
-
-# 2f459b0453c141239d9564e2467fbdd5
-#: ../../../src/common/doc/functions/analyze_graph.rst:375
-msgid ""
-":ref:`pgr_nodeNetwork <pgr_node_network>` to create nodes to a not noded "
-"edge table."
-msgstr ":ref:`pgr_nodeNetwork <pgr_node_network>` crear nodos a una tabla de borde sin nodos."
diff --git a/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/analyze_oneway.po b/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/analyze_oneway.po
deleted file mode 100644
index 6816b50..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/analyze_oneway.po
+++ /dev/null
@@ -1,336 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-23 15:21+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# f8ca74e3c9a54cd0b0e6cd3bcec8de7e
-#: ../../../src/common/doc/functions/analyze_oneway.rst:13
-msgid "pgr_analyzeOneway"
-msgstr "pgr_analyzeOneway"
-
-# ee3b92d1a5184a92b6fa72a69ab2f1c9
-#: ../../../src/common/doc/functions/analyze_oneway.rst:20
-msgid "Name"
-msgstr "Nombre"
-
-# fd816817954b4f3d8d25927cebce353b
-#: ../../../src/common/doc/functions/analyze_oneway.rst:22
-msgid ""
-"``pgr_analyzeOneway`` — Analyzes oneway Sstreets and identifies flipped "
-"segments."
-msgstr "``pgr_analyzeOneway`` — Analizar calles unidireccionales e identifica segmentos invertidos"
-
-# 4c9dfc86ed0042de97bf0107b0b2eccd
-#: ../../../src/common/doc/functions/analyze_oneway.rst:26
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# d31a1ab567db4873a46256e8ecbdedf4
-#: ../../../src/common/doc/functions/analyze_oneway.rst:28
-msgid ""
-"This function analyzes oneway streets in a graph and identifies any flipped "
-"segments."
-msgstr "Esta función analiza las calles unidireccionales en un gráfico e identifica cualquier segmentos invertido."
-
-# 74bdfef086ae480bbe2affdece2c9efa
-#: ../../../src/common/doc/functions/analyze_oneway.rst:40
-msgid "Description"
-msgstr "Descripción"
-
-# 04f93117821f4eae962594c71a06a5a8
-#: ../../../src/common/doc/functions/analyze_oneway.rst:42
-msgid ""
-"The analyses of one way segments is pretty simple but can be a powerful "
-"tools to identifying some the potential problems created by setting the "
-"direction of a segment the wrong way. A node is a `source` if it has edges "
-"the exit from that node and no edges enter that node. Conversely, a node is "
-"a `sink` if all edges enter the node but none exit that node. For a `source`"
-" type node it is logically impossible to exist because no vehicle can exit "
-"the node if no vehicle and enter the node. Likewise, if you had a `sink` "
-"node you would have an infinite number of vehicle piling up on this node "
-"because you can enter it but not leave it."
-msgstr "El análisis de segmentos que tienen un solo sentido es bastante simple, pero a la vez  ser una herramienta poderosa para identificar algunos problemas potenciales que son creados al establecer la dirección de un segmento de la manera equivocada. Un nodo es un `source` si tiene bordes que salen de ese nodo y no hay bordes que entren a  ese nodo. Por el contrario, un nodo es un`sink` si todos los bordes entran al nodo pero ninguno sale de ese nodo. Para un nodo `source` es lógicame [...]
-
-# 035956781a774bc3bb1214394ad77be8
-#: ../../../src/common/doc/functions/analyze_oneway.rst:44
-msgid ""
-"So why do we care if the are not feasible? Well if the direction of an edge "
-"was reversed by mistake we could generate exactly these conditions. Think "
-"about a divided highway and on the north bound lane one segment got entered "
-"wrong or maybe a sequence of multiple segments got entered wrong or maybe "
-"this happened on a round-about. The result would be potentially a `source` "
-"and/or a `sink` node."
-msgstr "Así que ¿por qué nos importa si no es factibles? Si la dirección de un borde se revirtió por error podríamos generar exactamente en estas condiciones. Pensar en una carretera dividida y en el carril que va al norte un segmento o varios segmentos fueron introducidos al revés, o tal vez esto sucedió en una glorieta. El resultado sería potencialmente un nodo `source` y/o a `sink` node."
-
-# 007bbd995cbf4e7c86ce8e9916675879
-#: ../../../src/common/doc/functions/analyze_oneway.rst:46
-msgid ""
-"So by counting the number of edges entering and exiting each node we can "
-"identify both `source` and `sink` nodes so that you can look at those areas "
-"of your network to make repairs and/or report the problem back to your data "
-"vendor."
-msgstr "Así contando el número de aristas entrantes y salientes de cada nodo podemos identificar los nodos `source` y `sink`, así que usted puede mirar esas áreas de su red para hacer reparaciones o informar del problema a su proveedor de datos."
-
-# f972114db5c841928b7f2ac705bb0687
-#: ../../../src/common/doc/functions/analyze_oneway.rst:49
-msgid "Prerequisites"
-msgstr "Requisitos previos"
-
-# 54a0c52cee394d389a81fcd50b24ad97
-#: ../../../src/common/doc/functions/analyze_oneway.rst:50
-msgid ""
-"The  edge table to be analyzed must contain a source column and a target "
-"column filled with id's of the vertices of the segments and the "
-"corresponding vertices table <edge_table>_vertices_pgr that stores the "
-"vertices information."
-msgstr "La tabla de bordes debe ser analizada debe contener una columna de origen y una columna de destino llena con los identificadores de los vértices de los segmentos y los vértices correspondientes de la tabla <edge_table>_vertices_pgr que almacena la información de los vértices."
-
-# 808b5b795d364182b543ab30a1ad1644
-#: ../../../src/common/doc/functions/analyze_oneway.rst:52
-msgid ""
-"Use :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create the "
-"vertices table."
-msgstr "usar :ref:`pgr_createVerticesTable <pgr_create_vert_table>` para crear la tabla de vértices."
-
-# f6248fc57e734ead94edd12cab567915
-#: ../../../src/common/doc/functions/analyze_oneway.rst:53
-msgid ""
-"Use :ref:`pgr_createTopology <pgr_create_topology>` to create the topology "
-"and the vertices table."
-msgstr "Usar :ref:`pgr_createTopology <pgr_create_topology>` para crear la topología y la tabla de vértices."
-
-# 4cacac934ba64cda907561e98847bf8b
-#: ../../../src/common/doc/functions/analyze_oneway.rst:56
-msgid "Parameters"
-msgstr "Parámetros"
-
-# 669f0d5432dd4c0c8da55dba8c3502e7
-#: ../../../src/common/doc/functions/analyze_oneway.rst:57
-msgid "``text`` Network table name. (may contain the schema name as well)"
-msgstr "``text`` La tabla de la red. (puede contener el nombre del esquema)"
-
-# a16edb2699f1486c91c10ac7533fef7c
-#: ../../../src/common/doc/functions/analyze_oneway.rst:58
-msgid "``text[]`` source node **in** rules"
-msgstr "``text[]`` reglas de **entrada** del nodo inicial"
-
-# 28b4c2457d3b4aaba43dc42af4d2bd5e
-#: ../../../src/common/doc/functions/analyze_oneway.rst:59
-msgid "``text[]`` source node **out** rules"
-msgstr "``text[]`` reglas de **salida** del nodo inicial"
-
-# 5180ad82f6e6434a99defa1823c0a2d8
-#: ../../../src/common/doc/functions/analyze_oneway.rst:60
-msgid "``text[]`` target node **in** rules"
-msgstr "``text[]`` reglas de **entrada** del nodo final"
-
-# 4866b796c7fb49d985a479c3a97eec38
-#: ../../../src/common/doc/functions/analyze_oneway.rst:61
-msgid "``text[]`` target node **out** rules"
-msgstr "``text[]`` reglas de **salida** del nodo final"
-
-# 2744331fb9ac447ba0c40a6035ac0a95
-#: ../../../src/common/doc/functions/analyze_oneway.rst:62
-msgid ""
-"``text`` oneway column name name of the network table. Default value is "
-"``oneway``."
-msgstr "``text`` El nombre de la columna del sentido. El valor por defecto es ``oneway``."
-
-# b116cd1fc10f4f5bbd8fe9800562b62f
-#: ../../../src/common/doc/functions/analyze_oneway.rst:63
-msgid ""
-"``text`` Source column name of the network table. Default value is "
-"``source``."
-msgstr "``text`` El nombre de la columna del nodo de salida del segmento. El valor por defecto es``source``."
-
-# 8ca5a93ed45443c09202b1e5779dfa76
-#: ../../../src/common/doc/functions/analyze_oneway.rst:64
-msgid ""
-"``text``  Target column name of the network table.  Default value is "
-"``target``."
-msgstr "``text``  El nombre de la columna del nodo de llegada del segmneto.  El valor por defecto es ``target``."
-
-# e41f4c872a3445dbbc0bd183a71971fa
-#: ../../../src/common/doc/functions/analyze_oneway.rst:65
-msgid ""
-"``boolean`` flag to treat oneway NULL values as bi-directional.  Default "
-"value is ``true``."
-msgstr "``boolean``  bandera para tratar los valores NULL de oneway como bidireccional.  Valor predeterminado es``true``."
-
-# 9cd0459ca40940448e6c0d9c07c4a157
-#: ../../../src/common/doc/functions/analyze_oneway.rst:67
-msgid ""
-"It is strongly recommended to use the named notation. See "
-":ref:`pgr_createVerticesTable <pgr_create_vert_table>` or "
-":ref:`pgr_createTopology <pgr_create_topology>` for examples."
-msgstr "Se recomienda enormemente que se utilice la notación con nombre. Ver :ref:`pgr_createVerticesTable <pgr_create_vert_table>` o :ref:`pgr_createTopology <pgr_create_topology>` para ejemlos."
-
-# e217ab2060e447e9a7a3745f4d84390d
-#: ../../../src/common/doc/functions/analyze_oneway.rst:70
-msgid "The function returns:"
-msgstr "La función devuelve:"
-
-# 95dedd1c39c9424a906e6f2ff882e84a
-#: ../../../src/common/doc/functions/analyze_oneway.rst:72
-msgid "``OK`` after the analysis has finished."
-msgstr "``OK`` Cuando el análisis ha terminado."
-
-# 573d5fab7bb247d5adc39d8460683357
-#: ../../../src/common/doc/functions/analyze_oneway.rst:74
-msgid "Uses the vertices table: <edge_table>_vertices_pgr."
-msgstr "Utiliza la tabla de los vértices: <edge_table>_vertices_pgr."
-
-# 86597d037fe242378cc71e6e2ec88b19
-#: ../../../src/common/doc/functions/analyze_oneway.rst:75
-msgid ""
-"Fills completely the ``ein`` and ``eout`` columns of the vertices table."
-msgstr "Se llena completamente las columnas de la tabla de vértices ``ein`` y ``eout``."
-
-# dcae6d2cceea4b6bb47a700cc4338340
-#: ../../../src/common/doc/functions/analyze_oneway.rst:77
-msgid "``FAIL`` when the analysis was not completed due to an error."
-msgstr "``FAIL`` cuando el análisis no se completó debido a un error."
-
-# 792572ffb7314163be7e4aabadd4429c
-#: ../../../src/common/doc/functions/analyze_oneway.rst:79
-msgid "The vertices table is not found."
-msgstr "No se encuentra en la tabla de los vértices."
-
-# affbb7122dd844f3b5c7962c97dec0d3
-#: ../../../src/common/doc/functions/analyze_oneway.rst:80
-msgid ""
-"A required column of the Network table is not found or is not of the "
-"appropriate type."
-msgstr "Una columna de la tabla de red requerida no se encuentra o no es del tipo apropiado."
-
-# e50d016ee05048779dea2db4006500be
-#: ../../../src/common/doc/functions/analyze_oneway.rst:81
-msgid "The names of source , target or oneway are the same."
-msgstr "Los nombres de origen, destino o oneway son las mismos."
-
-# f14e2456527945e0a80e7888bb6dde7f
-#: ../../../src/common/doc/functions/analyze_oneway.rst:83
-msgid ""
-"The rules are defined as an array of text strings that if match the "
-"``oneway`` value would be counted as ``true`` for the source or target "
-"**in** or **out** condition."
-msgstr "Las reglas se definen como un conjunto de textos que si encajan con el valor de ``oneway`` se contara como ``true`` para las condiciones de el origen o destino **in** o **out** ."
-
-# 02623674186e4e0c961078942584c0ec
-#: ../../../src/common/doc/functions/analyze_oneway.rst:86
-msgid "The Vertices Table"
-msgstr "La tabla de vértices"
-
-# dd7fb8252bfe456aaa65515346941e74
-#: ../../../src/common/doc/functions/analyze_oneway.rst:87
-msgid ""
-"The vertices table can be created with :ref:`pgr_createVerticesTable "
-"<pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>`"
-msgstr "La tabla de los vértices puede crearse con  :ref:`pgr_createVerticesTable <pgr_create_vert_table>` o :ref:`pgr_createTopology <pgr_create_topology>`"
-
-# f838bf466e424966bd61af7b901279d2
-#: ../../../src/common/doc/functions/analyze_oneway.rst:89
-msgid "The structure of the vertices table is:"
-msgstr "La estructura de la tabla de los vértices es:"
-
-# 722239d3877b48d8bc5e63052fc7424f
-#: ../../../src/common/doc/functions/analyze_oneway.rst:91
-msgid "``bigint`` Identifier of the vertex."
-msgstr "``bigint`` identificador del vértice."
-
-# 0d3b269abc8e45a1abf355e4bb7d51c0
-#: ../../../src/common/doc/functions/analyze_oneway.rst:92
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex."
-" See :ref:`pgr_analyzeGgraph <pgr_analyze_graph>`."
-msgstr "``integer`` número de vértices en la edge_table que hacen referencia a este vértice. Ver :ref:`pgr_analyzeGgraph <pgr_analyze_graph>`."
-
-# 50b3729c83964ef3ae1a1511c76b50f8
-#: ../../../src/common/doc/functions/analyze_oneway.rst:93
-msgid ""
-"``integer``  Indicator that the vertex might have a problem. See "
-":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
-msgstr "``integer`` indicador que el vértice podría tener un problema. Ver :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
-
-# a5b1fe0206ea4c428c94f43a141b527b
-#: ../../../src/common/doc/functions/analyze_oneway.rst:94
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"as incoming."
-msgstr "``integer`` número de vértices en la edge_table que hacen referencia a este vértice como entrante."
-
-# 7c678b91ca8a408aafda94e5fa217fae
-#: ../../../src/common/doc/functions/analyze_oneway.rst:95
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"as outgoing."
-msgstr "``integer`` número de vértices en la edge_table que hacen referencia a este vértice como saliente."
-
-# 6d672d0be9cf41d69db69e46109d1624
-#: ../../../src/common/doc/functions/analyze_oneway.rst:96
-msgid "``geometry`` Point geometry of the vertex."
-msgstr "``geometry`` Valor de la geometría POINT del vértice."
-
-# b7cf2a5bba544714b9b79373c889e6cc
-#: ../../../src/common/doc/functions/analyze_oneway.rst:100
-msgid "History"
-msgstr "Historia"
-
-# ee9866aeb2c94c7fb0aa1e6cda48e6cb
-#: ../../../src/common/doc/functions/analyze_oneway.rst:101
-msgid "New in version 2.0.0"
-msgstr "Nuevo en la versión 2.0.0"
-
-# 3eed638ba1dd400186848b0928d632cf
-#: ../../../src/common/doc/functions/analyze_oneway.rst:105
-msgid "Examples"
-msgstr "Ejemplos"
-
-# fb1f0f5537c0427a866814b367160245
-#: ../../../src/common/doc/functions/analyze_oneway.rst:129
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "La consulta usa la red de ejemplo  :ref:`sampledata`"
-
-# 34726fcf405940b780880e71c6a2dad3
-#: ../../../src/common/doc/functions/analyze_oneway.rst:133
-msgid "See Also"
-msgstr "Véase también"
-
-# 384816237f7b49d5911a48675467810d
-#: ../../../src/common/doc/functions/analyze_oneway.rst:135
-msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
-msgstr ":ref:`topology` para tener una visión general de una topología de algoritmos de encaminamiento."
-
-# f8a2c637ce834c5ab9fea42ec365f0d1
-#: ../../../src/common/doc/functions/analyze_oneway.rst:136
-msgid ":ref:`analytics` for an overview of the analysis of a graph."
-msgstr ":ref:`analytics` para tener una visión general del análisis de un gráfico."
-
-# 1688102891bc4abaaed229738ca05755
-#: ../../../src/common/doc/functions/analyze_oneway.rst:137
-msgid ""
-":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
-"table."
-msgstr ":ref:`pgr_analyze_graph` Para analizar los bordes y vértices de la tabla de bordes."
-
-# 5914f34793e24715acb0adbe7d9fe1e0
-#: ../../../src/common/doc/functions/analyze_oneway.rst:138
-msgid ""
-":ref:`pgr_create_vert_table` to reconstruct the vertices table based on the "
-"source and target information."
-msgstr ":ref:`pgr_create_vert_table` para reconstruir la tabla vértices basándose en la información de origen y de destino."
diff --git a/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/create_topology.po b/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/create_topology.po
deleted file mode 100644
index fca9948..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/create_topology.po
+++ /dev/null
@@ -1,414 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-21 20:01+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 841ce4ae2ccd42aeb6708e0469affc85
-#: ../../../src/common/doc/functions/create_topology.rst:13
-msgid "pgr_createTopology"
-msgstr "pgr_createTopology"
-
-# bceb18f1c7484f2495890a181eb43749
-#: ../../../src/common/doc/functions/create_topology.rst:20
-msgid "Name"
-msgstr "Nombre"
-
-# efddc8da13ee412aa1fb75bf84ad023b
-#: ../../../src/common/doc/functions/create_topology.rst:22
-msgid ""
-"``pgr_createTopology`` — Builds a network topology based on the geometry "
-"information."
-msgstr "``pgr_createTopology`` — Construye una topología de red basada en la información de geometría."
-
-# c01e1abb389b4e0096e2971378967ac9
-#: ../../../src/common/doc/functions/create_topology.rst:26
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# 0dcc6bb9100b4d89afa5b1404283d0c9
-# 2f90d445d42f4c839d6d2b2e4bdd588b
-#: ../../../src/common/doc/functions/create_topology.rst:28
-#: ../../../src/common/doc/functions/create_topology.rst:69
-msgid "The function returns:"
-msgstr "La función devuelve:"
-
-# 88833f75e6d741b5bc91526488d66e4e
-#: ../../../src/common/doc/functions/create_topology.rst:30
-msgid ""
-"``OK`` after the network topology has been built and the vertices table "
-"created."
-msgstr "``OK``  después de que se ha construido la topología de red y la tabla de vértices."
-
-# da6aad799955428fb1bef9ff2dbd70b5
-#: ../../../src/common/doc/functions/create_topology.rst:31
-msgid "``FAIL`` when the network topology was not built due to an error."
-msgstr "``FAIL`` cuando el la red topológica no se no se completó debido a un error."
-
-# c4d463cfb61840f689831eeafe2844dc
-#: ../../../src/common/doc/functions/create_topology.rst:42
-msgid "Description"
-msgstr "Descripción"
-
-# fba8585de1c94f0ba612f64f8cd4f39d
-#: ../../../src/common/doc/functions/create_topology.rst:45
-msgid "Parameters"
-msgstr "Parámetros"
-
-# 33e33f7ee98e4b9a9d333f8ab95cbc9b
-#: ../../../src/common/doc/functions/create_topology.rst:46
-msgid "The topology creation function accepts the following parameters:"
-msgstr "La función de creación de topología requiere los siguientes parámetros:"
-
-# d19b1856e3d440749487a15a83c9d44c
-#: ../../../src/common/doc/functions/create_topology.rst:48
-msgid "``text`` Network table name. (may contain the schema name AS well)"
-msgstr "``text`` La tabla de la red. (puede contener el nombre del esquema)"
-
-# 6afd7b88cbaf4a58b2dcbd161b278356
-#: ../../../src/common/doc/functions/create_topology.rst:49
-msgid ""
-"``float8`` Snapping tolerance of disconnected edges. (in projection unit)"
-msgstr "``float8`` ajuste tolerancia de bordes desconectados. (en la unidad de proyección)"
-
-# 905510b263854f1eb05f10c8a64d9d20
-#: ../../../src/common/doc/functions/create_topology.rst:50
-msgid ""
-"``text``  Geometry column name of the network table. Default value is "
-"``the_geom``."
-msgstr "``text``  nombre de la columna de la geometría en la tabla de la red. El valor por defecto es `the_geom``"
-
-# f9b621bcf0ab41c3b87693c812f3d710
-#: ../../../src/common/doc/functions/create_topology.rst:51
-msgid ""
-"``text``  Primary key column name of the network table. Default value is "
-"``id``."
-msgstr "``text``Nombre de la columna de la clave principal de la tabla de red. Valor por defecto es ``id``'."
-
-# 6bcaf9c3c7e1422ea8e1b4dc45e7c613
-#: ../../../src/common/doc/functions/create_topology.rst:52
-msgid ""
-"``text`` Source column name of the network table. Default value is "
-"``source``."
-msgstr "``text`` El nombre de la columna del nodo de salida del segmento. El valor por defecto es``source``."
-
-# e2b13126a14a4ebeb8c3f453235560a1
-#: ../../../src/common/doc/functions/create_topology.rst:53
-msgid ""
-"``text``  Target column name of the network table.  Default value is "
-"``target``."
-msgstr "``text``  El nombre de la columna del nodo de llegada del segmneto.  El valor por defecto es ``target``."
-
-# adbfdd92db3740e5b4e8a6259a0a064c
-#: ../../../src/common/doc/functions/create_topology.rst:54
-msgid ""
-"``text``   Condition to SELECT a subset or rows.  Default value is ``true`` "
-"to indicate all rows."
-msgstr "``text`` condición para seleccionar un subconjunto o filas.  Valor predeterminado es ``true`` para indicar todas las filas."
-
-# 65297b06273d46cc98c9a3be75886137
-#: ../../../src/common/doc/functions/create_topology.rst:58
-msgid "The ``edge_table`` will be affected"
-msgstr "La ``edge_table`` se verán afectados"
-
-# 7f45565b3b8d40408b2da1bee3d1c354
-#: ../../../src/common/doc/functions/create_topology.rst:60
-msgid "The ``source`` column values will change."
-msgstr "Los valores de la columna``source`` va a cambiar."
-
-# e05fe9ce627848aa8aa72f032d303f04
-#: ../../../src/common/doc/functions/create_topology.rst:61
-msgid "The ``target`` column values will change."
-msgstr "Cambian los valores de la columna``target``."
-
-# 72c3682247aa4841a49790a78db8c3c3
-#: ../../../src/common/doc/functions/create_topology.rst:62
-msgid ""
-"An index will be created, if it doesn't exists, to speed up the process to "
-"the following columns:"
-msgstr "Un índice será creado, si no existe, para acelerar el proceso para las columnas siguientes:"
-
-# 993784afa3ce4ca68f11e8e02f2b4b27
-#: ../../../src/common/doc/functions/create_topology.rst:64
-msgid "``id``"
-msgstr "``id``"
-
-# 3074ee818e8241bc93c5a3284d7c3af4
-#: ../../../src/common/doc/functions/create_topology.rst:65
-msgid "``the_geom``"
-msgstr "``the_geom``"
-
-# e40fef18592542b98d234ac6a8038def
-#: ../../../src/common/doc/functions/create_topology.rst:66
-msgid "``source``"
-msgstr "``source``"
-
-# 0360a33adc734d1eaf83f5e1e314cc73
-#: ../../../src/common/doc/functions/create_topology.rst:67
-msgid "``target``"
-msgstr "``target``"
-
-# a2aae07be90348b0b2190f647731fb26
-#: ../../../src/common/doc/functions/create_topology.rst:71
-msgid "``OK`` after the network topology has been built."
-msgstr "'' OK'' después de que se ha construido la topología de red."
-
-# 33a4fd15e75a41a68105d2ea67b4aab1
-#: ../../../src/common/doc/functions/create_topology.rst:73
-msgid "Creates a vertices table: <edge_table>_vertices_pgr."
-msgstr "Crea una tabla de vértices: <edge_table>_vertices_pgr."
-
-# 589a7e90c6404cbe902baec0a884189b
-#: ../../../src/common/doc/functions/create_topology.rst:74
-msgid "Fills ``id`` and ``the_geom`` columns of the vertices table."
-msgstr "Llena las columnas ``id`` y ``the_geom`` de la tabla de vértices."
-
-# 92e7ab03c5ce43ed8c705a26aa4b801c
-#: ../../../src/common/doc/functions/create_topology.rst:75
-msgid ""
-"Fills the source and target columns of the edge table referencing the ``id``"
-" of the vertices table."
-msgstr "Llena las columnas los origen y destino  de la tabla de borde haciendo referencia al ``id``  de la tabla de los vértices."
-
-# 0635e9d515184ccc80747864939f789c
-#: ../../../src/common/doc/functions/create_topology.rst:78
-msgid "``FAIL`` when the network topology was not built due to an error:"
-msgstr "``FAIL`` cuando la topología de red no se construyó debido a un error:"
-
-# 607fcb6f6ae3438789ecf9c95992bc3f
-#: ../../../src/common/doc/functions/create_topology.rst:80
-msgid ""
-"A required column of the Network table is not found or is not of the "
-"appropriate type."
-msgstr "Una columna de la tabla de red requerida no se encuentra o no es del tipo apropiado."
-
-# 2bad2b565914457a90a990e718e857fd
-#: ../../../src/common/doc/functions/create_topology.rst:81
-msgid "The condition is not well formed."
-msgstr "La condición no está bien formada."
-
-# c800f5e3462c44c1b786308aec4cfea4
-#: ../../../src/common/doc/functions/create_topology.rst:82
-msgid "The names of source , target or id are the same."
-msgstr "Los nombres de origen, destino o id son las mismos."
-
-# 51c96f82e8ea49bcbde8aaeb905a6c6c
-#: ../../../src/common/doc/functions/create_topology.rst:83
-msgid "The SRID of the geometry could not be determined."
-msgstr "No pudo determinarse el SRID de la geometría."
-
-# f5f0d0a1c3814e1d9c14e4de52bd9899
-#: ../../../src/common/doc/functions/create_topology.rst:87
-msgid "The Vertices Table"
-msgstr "La tabla de vértices"
-
-# 54ef7e60b4d445cfa453323fbe80032d
-#: ../../../src/common/doc/functions/create_topology.rst:88
-msgid ""
-"The vertices table is a requirment of the :ref:`pgr_analyzeGraph "
-"<pgr_analyze_graph>` and the :ref:`pgr_analyzeOneway <pgr_analyze_oneway>` "
-"functions."
-msgstr "La tabla de los vértices es un requerimiento de las funciones  :ref:`pgr_analyzeGraph <pgr_analyze_graph>` y :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-
-# faaffddd86fd4680a80925c8c3877f07
-#: ../../../src/common/doc/functions/create_topology.rst:90
-msgid "The structure of the vertices table is:"
-msgstr "La estructura de la tabla de los vértices es:"
-
-# fc31880c8b034aae99d6d4caec420302
-#: ../../../src/common/doc/functions/create_topology.rst:92
-msgid "``bigint`` Identifier of the vertex."
-msgstr "``bigint`` identificador del vértice."
-
-# 7684f52a607845ef802799c26c221bf3
-#: ../../../src/common/doc/functions/create_topology.rst:93
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex."
-" See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
-msgstr "``integer`` número de vértices en la edge_table que hacen referencia a este vértice. Ver :ref:`pgr_analyzeGgraph <pgr_analyze_graph>`."
-
-# 1dc63c1d7cbb417d916ed0561df67df9
-#: ../../../src/common/doc/functions/create_topology.rst:94
-msgid ""
-"``integer``  Indicator that the vertex might have a problem. See "
-":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
-msgstr "``integer`` indicador que el vértice podría tener un problema. Ver :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
-
-# 546f74ccc20545de9c032cabcaac878f
-#: ../../../src/common/doc/functions/create_topology.rst:95
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"AS incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-msgstr "``integer`` número de vértices en la edge_table que hacen referencia a este vértice como entrante. Ver :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-
-# 9fe606ee590d4f009989e3cdcf09b5c5
-#: ../../../src/common/doc/functions/create_topology.rst:96
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"AS outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-msgstr "``integer`` número de vértices en la edge_table que hacen referencia a este vértice como saliente.  Ver :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-
-# 2ee4f32c8546412bad1e109e6051e249
-#: ../../../src/common/doc/functions/create_topology.rst:97
-msgid "``geometry`` Point geometry of the vertex."
-msgstr "``geometry`` Valor de la geometría POINT del vértice."
-
-# a63156aa23b54785aaf66150bfe98a52
-#: ../../../src/common/doc/functions/create_topology.rst:100
-msgid "History"
-msgstr "Historia"
-
-# da8726d6435e42f09d83f4a310d5c432
-#: ../../../src/common/doc/functions/create_topology.rst:101
-msgid "Renamed in version 2.0.0"
-msgstr "Renombrado en la versión 2.0.0"
-
-# 5b4b6a4bea1543ac98f444d9ec32d7eb
-#: ../../../src/common/doc/functions/create_topology.rst:104
-msgid "Usage when the edge table's columns MATCH the default values:"
-msgstr "Uso cuando las columnas de la tabla de borde coinciden con los valores por defecto:"
-
-# 6db23da4afd448bab89802246bccb65a
-#: ../../../src/common/doc/functions/create_topology.rst:107
-msgid "The simplest way to use pgr_createtopology is:"
-msgstr "La forma más sencilla de usar pgr_createtopology es:"
-
-# 6905f56f53bb4cdfb9ae49021265afe9
-#: ../../../src/common/doc/functions/create_topology.rst:115
-msgid "When the arguments are given in the order described in the parameters:"
-msgstr "Cuando los argumentos se escriben en el orden descrito en los parámetros:"
-
-# f8c6c68c7d334f68bac36a818c4091ab
-#: ../../../src/common/doc/functions/create_topology.rst:120
-msgid "We get the same result AS the simplest way to use the function."
-msgstr "Obtenemos el mismo resultado que la forma más sencilla de utilizar la función."
-
-# 8dcbdbf60c2e4522a87d80a7796a354b
-# b72940f0e2054c46a50358fc40af026e
-#: ../../../src/common/doc/functions/create_topology.rst:127
-#: ../../../src/common/doc/functions/create_topology.rst:192
-msgid "When using the named notation"
-msgstr "Cuando se utiliza la notación por nombre"
-
-# 460cbff5c7054542a80375a4f50072e0
-# 56d9daba24ff4ce9ac02e3326af007af
-#: ../../../src/common/doc/functions/create_topology.rst:128
-#: ../../../src/common/doc/functions/create_topology.rst:193
-msgid "The order of the parameters do not matter:"
-msgstr "No importa el orden de los parámetros:"
-
-# 4b24ad3db4be4b60a6c8bfcc38fae359
-#: ../../../src/common/doc/functions/create_topology.rst:138
-msgid ""
-"Parameters defined with a default value can be omited, AS long AS the value "
-"matches the default:"
-msgstr "Parámetros definidos con un valor por defecto pueden ser omitidos, mientras el valor coincida con el valor por defecto:"
-
-# 8aab982078634384ab4dfced463b5c14
-# d9c7d4fa12394a5a915a9f6f664e7a8a
-#: ../../../src/common/doc/functions/create_topology.rst:145
-#: ../../../src/common/doc/functions/create_topology.rst:207
-msgid "Selecting rows using rows_where parameter"
-msgstr "Seleccionar filas utilizando el parámetro rows_where"
-
-# 4be49c2f23734283895a40625620047b
-# 1734ac1429ad4691861fbfcc7954d800
-#: ../../../src/common/doc/functions/create_topology.rst:146
-#: ../../../src/common/doc/functions/create_topology.rst:208
-msgid "Selecting rows based on the id."
-msgstr "La selección de filas basadas en el id."
-
-# 499347aef3cb49f993c320d1fd353a29
-# a0cd57644bf443fbaa81efed8df8a30f
-#: ../../../src/common/doc/functions/create_topology.rst:152
-#: ../../../src/common/doc/functions/create_topology.rst:218
-msgid ""
-"Selecting the rows where the geometry is near the geometry of row with "
-"``id`` =5 ."
-msgstr "Seleccionar las filas donde la geometría está cerca de la geometría de la fila con ``id`` =5."
-
-# b8e12b4f62d24fb0a535290a0a480ff0
-# 42da9f122c7240bea10a78685a6b5b8d
-#: ../../../src/common/doc/functions/create_topology.rst:158
-#: ../../../src/common/doc/functions/create_topology.rst:230
-msgid ""
-"Selecting the rows where the geometry is near the geometry of the row with "
-"``gid`` =100 of the table ``othertable``."
-msgstr "Seleccionar las filas donde la geometría está cerca de la geometría de la fila con``gid`` =100  de la tabla ``othertable``."
-
-# 596d74ac25d34cbda9a05349a4a0af21
-#: ../../../src/common/doc/functions/create_topology.rst:169
-msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
-msgstr "Uso cuando las columnas de la tabla de borde NO COINCIDEN con los valores por defecto:"
-
-# ac1bf6e79288443486b7b105e25e07eb
-#: ../../../src/common/doc/functions/create_topology.rst:171
-msgid "For the following table"
-msgstr "Para la siguiente tabla"
-
-# a24fc2426b5c4b91bc53f875e37dddaa
-#: ../../../src/common/doc/functions/create_topology.rst:179
-msgid "Using positional notation:"
-msgstr "Usando notación posicional:"
-
-# d1937a888b40477b8d696215b7b93425
-#: ../../../src/common/doc/functions/create_topology.rst:180
-msgid ""
-"The arguments need to be given in the order described in the parameters:"
-msgstr "Las discusiones deben recibir en el orden descrito en los parámetros:"
-
-# 7e510379477f445a9432549c095c12bb
-#: ../../../src/common/doc/functions/create_topology.rst:203
-msgid ""
-"In this scenario omitting a parameter would create an error because the "
-"default values for the column names do not match the column names of the "
-"table."
-msgstr "En este escenario omitir un parámetro crearía un error porque los valores predeterminados de los nombres de columna no coinciden con los nombres de columna de la tabla."
-
-# de088e18a1634e6a96b99df9171c530a
-#: ../../../src/common/doc/functions/create_topology.rst:247
-msgid "Examples"
-msgstr "Ejemplos"
-
-# 89b592f2e7f6474cbed2d9d5bca887e9
-#: ../../../src/common/doc/functions/create_topology.rst:279
-msgid "The example uses the :ref:`sampledata` network."
-msgstr "Las consultas usan la red de ejemplo  :ref:`sampledata`"
-
-# ae52cd8922264c939460bd2df2108508
-#: ../../../src/common/doc/functions/create_topology.rst:283
-msgid "See Also"
-msgstr "Véase también"
-
-# 664429e917764979b9255e4f9a72377f
-#: ../../../src/common/doc/functions/create_topology.rst:285
-msgid ":ref:`topology` for an overview of a topology for routing algorithms."
-msgstr ":ref:`topology` para tener una visión general de una topología de algoritmos de encaminamiento."
-
-# 9ded0191d7344e8baca758e97f34cf68
-#: ../../../src/common/doc/functions/create_topology.rst:286
-msgid ""
-":ref:`pgr_create_vert_table` to reconstruct the vertices table based on the "
-"source and target information."
-msgstr ":ref:`pgr_create_vert_table` para reconstruir la tabla vértices basándose en la información de origen y de destino."
-
-# ca4432eb1b4246268b1acee87b464b2f
-#: ../../../src/common/doc/functions/create_topology.rst:287
-msgid ""
-":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
-"table."
-msgstr ":ref:`pgr_analyze_graph` Para analizar los bordes y vértices de la tabla de bordes."
diff --git a/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/create_vert_table.po b/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/create_vert_table.po
deleted file mode 100644
index 242271f..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/create_vert_table.po
+++ /dev/null
@@ -1,389 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-23 15:17+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 1a8504651dd840e4a48344ead373a073
-#: ../../../src/common/doc/functions/create_vert_table.rst:13
-msgid "pgr_createVerticesTable"
-msgstr "pgr_createVerticesTable"
-
-# ad976846c3444135a397d1f47a0ffceb
-#: ../../../src/common/doc/functions/create_vert_table.rst:20
-msgid "Name"
-msgstr "Nombre"
-
-# c26ff674db0d4b65bff9b1483e524956
-#: ../../../src/common/doc/functions/create_vert_table.rst:22
-msgid ""
-"``pgr_createVerticesTable`` — Reconstructs the vertices table based on the "
-"source and target information."
-msgstr ":ref:`pgr_createVerticesTable <pgr_create_vert_table>` para reconstruir la tabla de vértices basándose en la información de origen y de destino."
-
-# b27c4239c9034d8fb5bbfc4b736af367
-#: ../../../src/common/doc/functions/create_vert_table.rst:26
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# bbfea2a13422443f8e1b9b863f56dea0
-# 139eabd1665d4dc8b6caac92f0764d50
-#: ../../../src/common/doc/functions/create_vert_table.rst:28
-#: ../../../src/common/doc/functions/create_vert_table.rst:63
-msgid "The function returns:"
-msgstr "La función devuelve:"
-
-# bdf469a3c50c4176bcc89409cbe50136
-# 268e8b4480b24112a72e1d7da0dab1bd
-#: ../../../src/common/doc/functions/create_vert_table.rst:30
-#: ../../../src/common/doc/functions/create_vert_table.rst:65
-msgid "``OK`` after the vertices table has been reconstructed."
-msgstr "``OK``  después de que se ha construido la tabla de vértices."
-
-# f542765a7c984a57b56f203df843634d
-# a536d714aa4240dca5d92dfeee6dd7bb
-#: ../../../src/common/doc/functions/create_vert_table.rst:31
-#: ../../../src/common/doc/functions/create_vert_table.rst:70
-msgid ""
-"``FAIL`` when the vertices table was not reconstructed due to an error."
-msgstr "``FAIL`` cuando la tabla de vértices no se construyó debido a un error:"
-
-# c7c8bc00b10d45a897224d240c4f96bf
-#: ../../../src/common/doc/functions/create_vert_table.rst:41
-msgid "Description"
-msgstr "Descripción"
-
-# c53a2ef242f8484dac84581a80134594
-#: ../../../src/common/doc/functions/create_vert_table.rst:44
-msgid "Parameters"
-msgstr "Parámetros"
-
-# 2dc2c3867d7a4367a958a6e1049f44c0
-#: ../../../src/common/doc/functions/create_vert_table.rst:45
-msgid ""
-"The reconstruction of the vertices table  function accepts the following "
-"parameters:"
-msgstr "La función para la reconstrucción de la tabla mesa vértices acepta los siguientes parámetros:"
-
-# e92b11f0f4ea47af9581936d11972ef6
-#: ../../../src/common/doc/functions/create_vert_table.rst:47
-msgid "``text`` Network table name. (may contain the schema name as well)"
-msgstr "``text`` La tabla de la red. (puede contener el nombre del esquema)"
-
-# 75d43bdeeb7843139aec9b4c7dc60097
-#: ../../../src/common/doc/functions/create_vert_table.rst:48
-msgid ""
-"``text``  Geometry column name of the network table. Default value is "
-"``the_geom``."
-msgstr "``text``  nombre de la columna de la geometría en la tabla de la red. El valor por defecto es ``the_geom``"
-
-# f0e2bb638cd841f2b61bc8398e3ea59b
-#: ../../../src/common/doc/functions/create_vert_table.rst:49
-msgid ""
-"``text`` Source column name of the network table. Default value is "
-"``source``."
-msgstr "``id``Nombre de columna de origen de la tabla de red. El valor predeterminado es``source``."
-
-# ba67bced62994e7b98967cf09cbf3ca6
-#: ../../../src/common/doc/functions/create_vert_table.rst:50
-msgid ""
-"``text``  Target column name of the network table.  Default value is "
-"``target``."
-msgstr "``text``  El nombre de la columna del nodo de llegada del segmento.  El valor por defecto es ``target``."
-
-# d7d53a50bc9249518132241a2c83dc1b
-#: ../../../src/common/doc/functions/create_vert_table.rst:51
-msgid ""
-"``text``   Condition to SELECT a subset or rows.  Default value is ``true`` "
-"to indicate all rows."
-msgstr "``text`` condición para seleccionar un subconjunto o filas.  Valor predeterminado es ``true`` para indicar todas las filas."
-
-# a87c8e9949df409da09632babbb99748
-#: ../../../src/common/doc/functions/create_vert_table.rst:55
-msgid "The ``edge_table`` will be affected"
-msgstr "La ``edge_table`` se verán afectados"
-
-# a0b202c14bf849e1a9506fc9c4010540
-#: ../../../src/common/doc/functions/create_vert_table.rst:57
-msgid ""
-"An index will be created, if it doesn't exists, to speed up the process to "
-"the following columns:"
-msgstr "Un índice será creado, si no existe, para acelerar el proceso para las columnas siguientes:"
-
-# 51ab4d2ba98b4affa7e5cec96e352cce
-#: ../../../src/common/doc/functions/create_vert_table.rst:59
-msgid "``the_geom``"
-msgstr "``the_geom``"
-
-# 134fb1a15f8742a49fe36e2683c4c324
-#: ../../../src/common/doc/functions/create_vert_table.rst:60
-msgid "``source``"
-msgstr "``source``"
-
-# 1c5f7bc5486b44999341e4f8f9b92c2e
-#: ../../../src/common/doc/functions/create_vert_table.rst:61
-msgid "``target``"
-msgstr "``target``"
-
-# 2c70ff2c521c48c799c898d61a01e119
-#: ../../../src/common/doc/functions/create_vert_table.rst:67
-msgid "Creates a vertices table: <edge_table>_vertices_pgr."
-msgstr "Crea una tabla de vértices: <edge_table>_vertices_pgr."
-
-# b0e0cf6163ea49f3b3a38e97576f301e
-#: ../../../src/common/doc/functions/create_vert_table.rst:68
-msgid ""
-"Fills ``id`` and ``the_geom`` columns of the vertices table based on the "
-"source and target columns of the edge table."
-msgstr "Llena las columnas ``id`` y ``the_geom`` de la tabla de vértices basado en la información de la fuente y el destino."
-
-# 28e32e20ebd74f88920b7c6fd45054e9
-#: ../../../src/common/doc/functions/create_vert_table.rst:72
-msgid ""
-"A required column of the Network table is not found or is not of the "
-"appropriate type."
-msgstr "Una columna de la tabla de red requerida no se encuentra o no es del tipo apropiado."
-
-# 8501c3c5738f4907bf64b63007218466
-#: ../../../src/common/doc/functions/create_vert_table.rst:73
-msgid "The condition is not well formed."
-msgstr "La condición no está bien formada."
-
-# 5252c79651354d40a6271efe4b78d226
-#: ../../../src/common/doc/functions/create_vert_table.rst:74
-msgid "The names of source, target are the same."
-msgstr "Los nombres de los campos de origen y destino son las mismos."
-
-# 41c42eeafd6b487ebc676126c0f92f0c
-#: ../../../src/common/doc/functions/create_vert_table.rst:75
-msgid "The SRID of the geometry could not be determined."
-msgstr "No pudo determinarse el SRID de la geometría."
-
-# d61aba7cc54d49b9a670817e7dd52472
-#: ../../../src/common/doc/functions/create_vert_table.rst:78
-msgid "The Vertices Table"
-msgstr "La tabla de vértices"
-
-# 93a53c04ff294116acf94a067d17ff73
-#: ../../../src/common/doc/functions/create_vert_table.rst:79
-msgid ""
-"The vertices table is a requierment of the :ref:`pgr_analyzeGraph "
-"<pgr_analyze_graph>` and the :ref:`pgr_analyzeOneway <pgr_analyze_oneway>` "
-"functions."
-msgstr "La tabla de los vértices es un requerimiento de las funciones  :ref:`pgr_analyzeGraph <pgr_analyze_graph>` y :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-
-# 7e418508090c4667b4128b22f562b5db
-#: ../../../src/common/doc/functions/create_vert_table.rst:81
-msgid "The structure of the vertices table is:"
-msgstr "La estructura de la tabla de los vértices es:"
-
-# 114548eb64364741b99e10c86fe55fad
-#: ../../../src/common/doc/functions/create_vert_table.rst:83
-msgid "``bigint`` Identifier of the vertex."
-msgstr "``bigint`` identificador del vértice."
-
-# 35f0fc22f2464997bce4d704a9f4ee88
-#: ../../../src/common/doc/functions/create_vert_table.rst:84
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex."
-" See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
-msgstr "``integer`` número de vértices en la edge_table que hacen referencia a este vértice. Ver :ref:`pgr_analyzeGgraph <pgr_analyze_graph>`."
-
-# d71ba1da8657438b86fe6ce3326cf94a
-#: ../../../src/common/doc/functions/create_vert_table.rst:85
-msgid ""
-"``integer``  Indicator that the vertex might have a problem. See "
-":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
-msgstr "``integer`` indicador que el vértice podría tener un problema. Ver :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
-
-# 9ea4778e1ed64d3cb8c12ffedca5748b
-#: ../../../src/common/doc/functions/create_vert_table.rst:86
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"as incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-msgstr "``integer`` número de vértices en la edge_table que hacen referencia a este vértice como entrante. Ver :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-
-# cd631484ea62455cae3d37b03ca36624
-#: ../../../src/common/doc/functions/create_vert_table.rst:87
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"as outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-msgstr "``integer`` número de vértices en la edge_table que hacen referencia a este vértice como saliente.  Ver :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-
-# 29652dcb521b4111813d63d570b62873
-#: ../../../src/common/doc/functions/create_vert_table.rst:88
-msgid "``geometry`` Point geometry of the vertex."
-msgstr "``geometry`` Valor de la geometría POINT del vértice."
-
-# ca63675181414139865690332306235b
-#: ../../../src/common/doc/functions/create_vert_table.rst:91
-msgid "History"
-msgstr "Historia"
-
-# e383b8838b4b40618c66151c1f94fb48
-#: ../../../src/common/doc/functions/create_vert_table.rst:92
-msgid "Renamed in version 2.0.0"
-msgstr "Renombrado en la versión 2.0.0"
-
-# f4e14bd6d88d4f1e8d5ff2fbf9aea722
-#: ../../../src/common/doc/functions/create_vert_table.rst:95
-msgid "Usage when the edge table's columns MATCH the default values:"
-msgstr "Uso cuando las columnas de la tabla de borde coinciden con los valores por defecto:"
-
-# 6fc1c7d9c4e04380ada776f609bf4505
-#: ../../../src/common/doc/functions/create_vert_table.rst:98
-msgid "The simplest way to use pgr_createVerticesTable is:"
-msgstr "La forma más sencilla de usar pgr_createVerticesTable es:"
-
-# 3373cb2347994f2fa122008bdff12190
-#: ../../../src/common/doc/functions/create_vert_table.rst:105
-msgid "When the arguments are given in the order described in the parameters:"
-msgstr "Cuando los argumentos se escriben en el orden descrito en los parámetros:"
-
-# f75126b9da994fea920678a643a80e25
-#: ../../../src/common/doc/functions/create_vert_table.rst:110
-msgid "We get the same result as the simplest way to use the function."
-msgstr "Obtenemos el mismo resultado que la forma más sencilla de utilizar la función."
-
-# 90ea5b12d9a64eb2bafd6d211e0ffeff
-# 34ff976ba1f24ec08a19a8d87673156d
-#: ../../../src/common/doc/functions/create_vert_table.rst:117
-#: ../../../src/common/doc/functions/create_vert_table.rst:181
-msgid "When using the named notation"
-msgstr "Cuando se utiliza la notación por nombre"
-
-# 213a5c21ddcb4745987210530901695f
-# fac4e4da33fb494981c36957cd000a29
-#: ../../../src/common/doc/functions/create_vert_table.rst:118
-#: ../../../src/common/doc/functions/create_vert_table.rst:182
-msgid "The order of the parameters do not matter:"
-msgstr "No importa el orden de los parámetros:"
-
-# 529a856bf0404a10a837b07945c52175
-#: ../../../src/common/doc/functions/create_vert_table.rst:128
-msgid ""
-"Parameters defined with a default value can be omited, as long as the value "
-"matches the default:"
-msgstr "Parámetros definidos con un valor por defecto pueden ser omitidos, mientras el valor coincida con el valor por defecto:"
-
-# 55574bcb1be54b1b907c0524cbf1057d
-# af501046d7d84255bd3030520c3e2f15
-#: ../../../src/common/doc/functions/create_vert_table.rst:135
-#: ../../../src/common/doc/functions/create_vert_table.rst:196
-msgid "Selecting rows using rows_where parameter"
-msgstr "Seleccionar filas utilizando el parámetro rows_where"
-
-# 7080aeec9c1e4a31bfb9be1ed4506ab7
-#: ../../../src/common/doc/functions/create_vert_table.rst:136
-msgid "Selecting rows based on the id."
-msgstr "La selección de filas basadas en el id."
-
-# 74ec654344604925875e20b1447a6a3e
-#: ../../../src/common/doc/functions/create_vert_table.rst:142
-msgid ""
-"Selecting the rows where the geometry is near the geometry of row with "
-"``id`` =5 ."
-msgstr "Seleccionar las filas donde la geometría está cerca de la geometría de la fila con ``id`` =5."
-
-# 89d554dba13d40be8ca51e74d18c7c6f
-# fbda0895e287413fb2455b07ba2ba7fb
-#: ../../../src/common/doc/functions/create_vert_table.rst:148
-#: ../../../src/common/doc/functions/create_vert_table.rst:219
-msgid ""
-"Selecting the rows where the geometry is near the geometry of the row with "
-"``gid`` =100 of the table ``othertable``."
-msgstr "Seleccionar las filas donde la geometría está cerca de la geometría de la fila con``gid`` =100  de la tabla ``othertable``."
-
-# 7f2e698d7f844861bd468923e95ef16a
-#: ../../../src/common/doc/functions/create_vert_table.rst:159
-msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
-msgstr "Uso cuando las columnas de la tabla de borde NO COINCIDEN con los valores por defecto:"
-
-# 381c72bdf71543d4853557e93d021602
-#: ../../../src/common/doc/functions/create_vert_table.rst:161
-msgid "For the following table"
-msgstr "Para la siguiente tabla"
-
-# 5d51a2b4e3e84516bab9cc22039007c8
-#: ../../../src/common/doc/functions/create_vert_table.rst:169
-msgid "Using positional notation:"
-msgstr "Usando notación posicional:"
-
-# 3be19d9038134fe2907db9c97eaeca7d
-#: ../../../src/common/doc/functions/create_vert_table.rst:170
-msgid ""
-"The arguments need to be given in the order described in the parameters:"
-msgstr "Las discusiones deben recibir en el orden descrito en los parámetros:"
-
-# 94d47a836ffa45268fc1f9662f902f2b
-#: ../../../src/common/doc/functions/create_vert_table.rst:192
-msgid ""
-"In this scenario omitting a parameter would create an error because the "
-"default values for the column names do not match the column names of the "
-"table."
-msgstr "En este escenario omitir un parámetro crearía un error porque los valores predeterminados de los nombres de columna no coinciden con los nombres de columna de la tabla."
-
-# 6d8d108291094933afdde4095193e506
-#: ../../../src/common/doc/functions/create_vert_table.rst:197
-msgid "Selecting rows based on the gid."
-msgstr "La selección de filas basadas en el gid."
-
-# 5df5fd0f734e46c6bfb93444bd86905e
-#: ../../../src/common/doc/functions/create_vert_table.rst:207
-msgid ""
-"Selecting the rows where the geometry is near the geometry of row with "
-"``gid`` =5 ."
-msgstr "Seleccionar las filas donde la geometría está cerca de la geometría de la fila con ``gid`` =5."
-
-# e2c54fc28df243609e8d003180886771
-#: ../../../src/common/doc/functions/create_vert_table.rst:236
-msgid "Examples"
-msgstr "Ejemplos"
-
-# 0587b0909413456482f8b8725b101b7a
-#: ../../../src/common/doc/functions/create_vert_table.rst:258
-msgid "The example uses the :ref:`sampledata` network."
-msgstr "Las consultas usan la red de ejemplo  :ref:`sampledata`"
-
-# ad71788bef724cb1809d4b5d96ef1e5c
-#: ../../../src/common/doc/functions/create_vert_table.rst:262
-msgid "See Also"
-msgstr "Véase también"
-
-# 6baea98fd7b6493faabb8fcc69f975d8
-#: ../../../src/common/doc/functions/create_vert_table.rst:264
-msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
-msgstr ":ref:`topology` para tener una visión general de una topología de algoritmos de enrrutamiento."
-
-# 7103284d91854b18939e44589085f3cf
-#: ../../../src/common/doc/functions/create_vert_table.rst:265
-msgid ""
-":ref:`pgr_createTopology <pgr_create_topology>` to create a topology based "
-"on the geometry."
-msgstr ":ref:`pgr_createTopology <pgr_create_topology>` — Construye una topología de red basada en la información de geometría."
-
-# 4c67e74087fe4035a8b54bb0d58d8a84
-#: ../../../src/common/doc/functions/create_vert_table.rst:266
-msgid ""
-":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
-"table."
-msgstr ":ref:`pgr_analyze_graph` Para analizar los bordes y vértices de la tabla de bordes."
-
-# a7eb449e6d594406ab3779c29d1937c8
-#: ../../../src/common/doc/functions/create_vert_table.rst:267
-msgid ":ref:`pgr_analyze_oneway` to analyze directionality of the edges."
-msgstr ":ref:`pgr_analyze_oneway` para analizar la direccionalidad de los bordes."
diff --git a/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/index.po b/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/index.po
deleted file mode 100644
index 3bb3d25..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/index.po
+++ /dev/null
@@ -1,64 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (187a022 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-23 15:04\n"
-"PO-Revision-Date: 2013-09-23 20:40+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# deb0ed12ae874b7a8bb888e9e2be5881
-#: ../../../src/common/doc/functions/index.rst:13
-msgid "Topology Functions"
-msgstr "Funciones Topológicas"
-
-# cbbdace0de7449b1a859558858d76f6e
-#: ../../../src/common/doc/functions/index.rst:15
-msgid ""
-"The pgRouting's topology of a network, represented with an edge table with "
-"source and target attributes and a vertices table associated with it. "
-"Depending on the algorithm, you can create a topology or just reconstruct "
-"the vertices table, You can analyze the topology, We also provide a function"
-" to node an unoded network."
-msgstr "La topología de una red de pgRouting,  es representada con una tabla de bordes con atributos de origen y destino  y una tabla de vértices asociada. Dependiendo del algoritmo, puede crear una topología o simplemente reconstruir la tabla vértices, puede analizar la topología, también ofrecemos una función para generar nodos de un red con nodos faltantes."
-
-# f4e85c020cba4850a7e4da7b9456baa9
-#: ../../../src/common/doc/functions/index.rst:19
-msgid ""
-":ref:`pgr_create_topology` -  to create a topology based on the geometry."
-msgstr ":ref:`pgr_create_topology` para crear la topología basado en la geometría."
-
-# 2d4de3856acc4c43a732847a834661e6
-#: ../../../src/common/doc/functions/index.rst:20
-msgid ""
-":ref:`pgr_create_vert_table` - to reconstruct the vertices table based on "
-"the source and target information."
-msgstr ":ref:`pgr_create_vert_table` para reconstruir la tabla vértices basándose en la información de origen y de destino."
-
-# 4cf0c54d4785484e9694aa275658e7a7
-#: ../../../src/common/doc/functions/index.rst:21
-msgid ""
-":ref:`pgr_analyze_graph`  - to analyze the edges and vertices of the edge "
-"table."
-msgstr ":ref:`pgr_analyze_graph` Para analizar los bordes y vértices de la tabla de bordes."
-
-# a7edff2f50444a3d985d747d5e6a609e
-#: ../../../src/common/doc/functions/index.rst:22
-msgid ":ref:`pgr_analyze_oneway` - to analyze directionality of the edges."
-msgstr ":ref:`pgr_analyze_oneway` para analizar la direccionalidad de los bordes."
-
-# e04ee2a942c4495fa185f89d37b0c42b
-#: ../../../src/common/doc/functions/index.rst:23
-msgid ":ref:`pgr_node_network`  -to create nodes to a not noded edge table."
-msgstr ":ref:`pgr_nodeNetwork <pgr_node_network>` - para crear nodos a una tabla de borde sin nodos."
diff --git a/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/is_column_in_table.po b/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/is_column_in_table.po
deleted file mode 100644
index 2768aa2..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/is_column_in_table.po
+++ /dev/null
@@ -1,89 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-12 15:40+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 1451c59201944bfd9022c90ef89ebf8a
-#: ../../../src/common/doc/functions/is_column_in_table.rst:13
-msgid "pgr_isColumnInTable - Check if column exists"
-msgstr "pgr_isColumnInTable - verifica si existe la columna"
-
-# cb570c2703fc45e9bba281cae42780d6
-#: ../../../src/common/doc/functions/is_column_in_table.rst:20
-msgid "Name"
-msgstr "Nombre"
-
-# b4cdca42128d4828961c3e7076774fc0
-#: ../../../src/common/doc/functions/is_column_in_table.rst:22
-msgid "``pgr_isColumnInTable`` — Check if a column exists in a table."
-msgstr "``pgr_isColumnInTable`` — Verifica si existe un campo de una tabla."
-
-# 33b135e2f8dd4f5e81aad53d1a016cfe
-#: ../../../src/common/doc/functions/is_column_in_table.rst:26
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# 96d06813601a419c9b44fe8298f74a51
-#: ../../../src/common/doc/functions/is_column_in_table.rst:28
-msgid "Returns ``true`` or ``false`` if column “col” exists in table “tab”."
-msgstr "Devuelve ``true`` o ``false``  dependiendo si existe la columna \"col\" en la tabla “tab”."
-
-# 44f17585bbd843cb9fbcacb785ad3130
-#: ../../../src/common/doc/functions/is_column_in_table.rst:36
-msgid "Description"
-msgstr "Descripción"
-
-# b57ee4621bd04e6991a266235c5a592a
-#: ../../../src/common/doc/functions/is_column_in_table.rst:38
-msgid "``text`` table name with or without schema component"
-msgstr "``text`` nombre de la tabla con o sin componente de esquema"
-
-# ac6b45788cac4cc7a5dcf6e4c44bb9ad
-#: ../../../src/common/doc/functions/is_column_in_table.rst:39
-msgid "``text`` column name to be checked for"
-msgstr "``text`` nombre de la columna que va a comprobarse"
-
-# 5f4ac9523c3b487884e6dd8e67b1e082
-#: ../../../src/common/doc/functions/is_column_in_table.rst:43
-msgid "History"
-msgstr "Historia"
-
-# 028851614bd7489991629d8c8f6f8bbf
-#: ../../../src/common/doc/functions/is_column_in_table.rst:44
-msgid "New in version 2.0.0"
-msgstr "Nuevo en la versión 2.0.0"
-
-# 3c3db2df87634ae4b3c8713633f9214f
-#: ../../../src/common/doc/functions/is_column_in_table.rst:48
-msgid "Examples"
-msgstr "Ejemplos"
-
-# 61e31f4885e444eea60640117f0f8264
-#: ../../../src/common/doc/functions/is_column_in_table.rst:59
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "Las consultas usa la red de ejemplo  :ref:`sampledata`"
-
-# 179da1f0bf5342b49e83327d1e277ca9
-#: ../../../src/common/doc/functions/is_column_in_table.rst:63
-msgid "See Also"
-msgstr "Véase también"
-
-# 7e1d2140f94d40db8ce6f48c9a3b119f
-#: ../../../src/common/doc/functions/is_column_in_table.rst:65
-msgid ":ref:`pgr_is_column_indexed`"
-msgstr ":ref:`pgr_is_column_indexed`"
diff --git a/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/is_column_indexed.po b/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/is_column_indexed.po
deleted file mode 100644
index 200c92a..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/is_column_indexed.po
+++ /dev/null
@@ -1,90 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-12 15:40+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# f85a66c48ca94cc9a5bba227e6479482
-#: ../../../src/common/doc/functions/is_column_indexed.rst:13
-msgid "pgr_isColumnIndexed - Check if column is indexed"
-msgstr "pgr_isColumnIndexed - Comprobar si la columna está indexada"
-
-# a4e361cfe30d494982b2755f507c2df4
-#: ../../../src/common/doc/functions/is_column_indexed.rst:20
-msgid "Name"
-msgstr "Nombre"
-
-# 2616614bd27b4f3aac95e5ee66f8771c
-#: ../../../src/common/doc/functions/is_column_indexed.rst:22
-msgid "``pgr_isColumnIndexed`` — Check if a column in a table is indexed."
-msgstr "``pgr_isColumnIndexed`` — Comprobar si una columna de una tabla es indexada."
-
-# 4aff78895aaf431bb254a1725ab1bab6
-#: ../../../src/common/doc/functions/is_column_indexed.rst:26
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# 62d98585fdfb49d287f711a97ba6f261
-#: ../../../src/common/doc/functions/is_column_indexed.rst:28
-msgid ""
-"Returns ``true`` or ``false`` if column “col” in table “tab” is indexed."
-msgstr "Devuelve ``true`` o ``false`` dependiendo si está indexada la columna \"col\" en tabla \"tab\"."
-
-# 016a3d2a60a745c39afdaa4ba6d24b5f
-#: ../../../src/common/doc/functions/is_column_indexed.rst:36
-msgid "Description"
-msgstr "Descripción"
-
-# 5efc6b2a366544cdadac135ab40dee54
-#: ../../../src/common/doc/functions/is_column_indexed.rst:38
-msgid "``text`` table name with or without schema component"
-msgstr "``text`` nombre de la tabla con o sin componente de esquema"
-
-# 76548c59562d4c4188ea7a5bbd5b769a
-#: ../../../src/common/doc/functions/is_column_indexed.rst:39
-msgid "``text`` column name to be checked for"
-msgstr "``text`` nombre de la columna que va a comprobarse"
-
-# 20bbf0766ada4f7b81807c2e917be118
-#: ../../../src/common/doc/functions/is_column_indexed.rst:43
-msgid "History"
-msgstr "Historia"
-
-# 3ca6785c8cb24235a6b581e63c32bd03
-#: ../../../src/common/doc/functions/is_column_indexed.rst:44
-msgid "New in version 2.0.0"
-msgstr "Nuevo en la versión 2.0.0"
-
-# 89feb49b01e94980935495257bf135a9
-#: ../../../src/common/doc/functions/is_column_indexed.rst:48
-msgid "Examples"
-msgstr "Ejemplos"
-
-# c8b849f8431c42ef9ecdcde47c516f03
-#: ../../../src/common/doc/functions/is_column_indexed.rst:59
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "La consulta usando la red de ejemplo  :ref:`sampledata`"
-
-# 4d38c2d872d0425290c2371cbc5d27e8
-#: ../../../src/common/doc/functions/is_column_indexed.rst:63
-msgid "See Also"
-msgstr "Véase también"
-
-# ed5ed4b10dc74af48b9de1a8743ec37b
-#: ../../../src/common/doc/functions/is_column_indexed.rst:65
-msgid ":ref:`pgr_is_column_in_table`"
-msgstr ":ref:`pgr_is_column_in_table`"
diff --git a/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/node_network.po b/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/node_network.po
deleted file mode 100644
index 2ad4026..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/node_network.po
+++ /dev/null
@@ -1,417 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-23 15:24+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# e70efe892bc14a45b9e0a2483d5955c1
-#: ../../../src/common/doc/functions/node_network.rst:13
-msgid "pgr_nodeNetwork"
-msgstr "pgr_nodeNetwork"
-
-# 928e918755da48d29b113ad9fcdac620
-#: ../../../src/common/doc/functions/node_network.rst:20
-msgid "Name"
-msgstr "Nombre"
-
-# 4c656aa4f4bf48c39d41d16b429a0f0f
-#: ../../../src/common/doc/functions/node_network.rst:22
-msgid "``pgr_nodeNetwork`` - Nodes an network edge table."
-msgstr "``pgr_nodeNetwork`` -  Crea los nodos de una tabla de bordes de la red."
-
-# b5fd23c4e27446ce8ac33a3ee9bd1fe7
-#: ../../../src/common/doc/functions/node_network.rst:24
-msgid "Nicolas Ribot"
-msgstr "Nicolas Ribot"
-
-# 16108dce80dd41e2a458f2f45f2864d0
-#: ../../../src/common/doc/functions/node_network.rst:25
-msgid "Nicolas Ribot, The source code is released under the MIT-X license."
-msgstr "Nicolas Ribot, el código fuente está liberado bajo la licencia MIT-X."
-
-# 3977ae6b9cf044318ec203a8e5aa5692
-#: ../../../src/common/doc/functions/node_network.rst:29
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# 2f6a7ad6abe5481da1e313d912af14e9
-#: ../../../src/common/doc/functions/node_network.rst:31
-msgid ""
-"The function reads edges from a not \"noded\" network table and writes the "
-"\"noded\" edges into a new table."
-msgstr "La función carga los bordes de una tabla que no tiene los nodos en las intersecciones y reescribe los bordes con los nodos en una nueva tabla."
-
-# 3461fdeb834f4294ae2b188234db4eff
-#: ../../../src/common/doc/functions/node_network.rst:40
-msgid "Description"
-msgstr "Descripción"
-
-# 422a0c6c90c04a46bec03a6510ec201f
-#: ../../../src/common/doc/functions/node_network.rst:42
-msgid ""
-"A common problem associated with bringing GIS data into pgRouting is the "
-"fact that the data is often not \"noded\" correctly. This will create "
-"invalid topologies, which will result in routes that are incorrect."
-msgstr "Un problema común asociado con la incorporación de datos SIG en pgRouting es el hecho de que los datos a menudo no están correctamente referenciados con nodos. Esto provoca topologías no válidas, que resultan en rutas que son incorrectas."
-
-# 69294245f1c44993a75f749e3721222a
-#: ../../../src/common/doc/functions/node_network.rst:44
-msgid ""
-"What we mean by \"noded\" is that at every intersection in the road network "
-"all the edges will be broken into separate road segments. There are cases "
-"like an over-pass and under-pass intersection where you can not traverse "
-"from the over-pass to the under-pass, but this function does not have the "
-"ability to detect and accommodate those situations."
-msgstr "Que los bordes estén indicados con nodos significa que, en en cada intersección de la red de caminos, los bordes se descompondrán en segmentos separados del camino. Los casos como una intersección de puente o túnel donde no existe conexión vial no son detectados por esta función."
-
-# 2817b2a1050f4b5da0c9aac6f306ea5e
-#: ../../../src/common/doc/functions/node_network.rst:46
-msgid ""
-"This function reads the ``edge_table`` table, that has a primary key column "
-"``id`` and geometry column named ``the_geom`` and intersect all the segments"
-" in it against all the other segments and then creates a table "
-"``edge_table_noded``. It uses the ``tolerance`` for deciding that multiple "
-"nodes within the tolerance are considered the same node."
-msgstr "Esta función lee la tabla  ``table_in``, que tiene una columna de clave principal ``gid_cname`` y columna de la geometría llamada ``geo_cname``,  y verifica la intersección de todos los segmentos contra todos los demás segmentos creando una tabla de salida ``table_out``. Usa la tolerancia ``tolerance`` para decidir cuáles nodos son considerados como mismo nodo."
-
-# b6408b0103e84de6acf993a22a25e533
-#: ../../../src/common/doc/functions/node_network.rst:48
-msgid "Parameters"
-msgstr "Parámetros"
-
-# 40ed2f0c80b64683aa3f8d42d20a77a2
-#: ../../../src/common/doc/functions/node_network.rst:50
-msgid "``text`` Network table name. (may contain the schema name as well)"
-msgstr "``text`` La tabla de la red. (puede contener el nombre del esquema)"
-
-# 86c247b372114883b5f6d0949e51b3c8
-#: ../../../src/common/doc/functions/node_network.rst:51
-msgid "``float8`` tolerance for coincident points (in projection unit)dd"
-msgstr "``float8`` tolerancia para puntos de coincidencia (en la unidad de proyección)"
-
-# 946d6ed96b2b4f7fac8bcc7ba4d8e68b
-#: ../../../src/common/doc/functions/node_network.rst:52
-msgid ""
-"``text`` Primary key column name of the network table. Default value is "
-"``id``."
-msgstr "``text``Nombre de la columna de la clave principal de la tabla de red. Valor por defecto es ``id``'."
-
-# ce2e7f47f3bb4b299dda0387123f0409
-#: ../../../src/common/doc/functions/node_network.rst:53
-msgid ""
-"``text`` Geometry column name of the network table. Default value is "
-"``the_geom``."
-msgstr "``text``  nombre de la columna de la geometría en la tabla de la red. El valor por defecto es `the_geom``"
-
-# 74d00078e6354e09a4592cf7e3f9dbe8
-#: ../../../src/common/doc/functions/node_network.rst:54
-msgid "``text`` Suffix for the new table's. Default value is ``noded``."
-msgstr "``text`` sufijo para la nueva tabla. El valor predeterminado es ``noded``."
-
-# bc28085240354b228628c4449f877afe
-#: ../../../src/common/doc/functions/node_network.rst:56
-msgid "The output table will have for  ``edge_table_noded``"
-msgstr "La tabla de salida tendrá para  ``edge_table_noded``"
-
-# df15f6d14415411b85a167c31717fb4e
-#: ../../../src/common/doc/functions/node_network.rst:58
-msgid "``bigint`` Unique identifier for the table"
-msgstr "``bigint`` identificador del vértice."
-
-# 4acc7cf0acea40ac852585983687ef11
-#: ../../../src/common/doc/functions/node_network.rst:59
-msgid "``bigint``  Identifier of the edge in original table"
-msgstr "``bigint`` identificador del borde en la tabla original"
-
-# 99bb3c953a7243e1b8232bf4a387c7d7
-#: ../../../src/common/doc/functions/node_network.rst:60
-msgid "``integer`` Segment number of the original edge"
-msgstr "``integer`` número del segmento del borde original"
-
-# 36a3bdb3e58840f78502c1f388619d52
-#: ../../../src/common/doc/functions/node_network.rst:61
-msgid ""
-"``integer`` Empty source column to be used with  :ref:`pgr_create_topology` "
-"function"
-msgstr "``integer`` columna vacía para utilizarse con la función :ref:`pgr_create_topology` "
-
-# 05092b2ea62744f1910db90fe30ab152
-#: ../../../src/common/doc/functions/node_network.rst:62
-msgid ""
-"``integer`` Empty target column to be used with  :ref:`pgr_create_topology` "
-"function"
-msgstr "``integer`` Columna vacía para el destino. Para utilizarse con la función :ref:`pgr_create_topology` "
-
-# c2b0caed0dd643e1991dd4e7f0f08e4c
-#: ../../../src/common/doc/functions/node_network.rst:63
-msgid "``geometry`` Geometry column of the noded network"
-msgstr "``geometry`` Columna de geometría de la red discontínua"
-
-# a1f34fff1602404db7f2c2344f99cad1
-#: ../../../src/common/doc/functions/node_network.rst:66
-msgid "History"
-msgstr "Historia"
-
-# b92ecc8b6d9a4eaba9e0a30ce164fed0
-#: ../../../src/common/doc/functions/node_network.rst:67
-msgid "New in version 2.0.0"
-msgstr "Nuevo en la versión 2.0.0"
-
-# cd2560788805450aa6ffb5ce84c8058e
-#: ../../../src/common/doc/functions/node_network.rst:71
-msgid "Example"
-msgstr "Ejemplo"
-
-# 7e9403e106bb4c0abdd7ed3d1b266079
-#: ../../../src/common/doc/functions/node_network.rst:73
-msgid "Let's create the topology for the data in :ref:`sampledata`"
-msgstr "Vamos a crear la topología de los datos :ref:`sampledata`"
-
-# 5c1a627f182d47efa30c1d4c830862ab
-#: ../../../src/common/doc/functions/node_network.rst:91
-msgid "Now we can analyze the network."
-msgstr "Ahora podemos analizar la red."
-
-# 3eb0c69215284a33ab1505fded4b5a1f
-#: ../../../src/common/doc/functions/node_network.rst:115
-msgid ""
-"The analysis tell us that the network has a gap and and an intersection. We "
-"try to fix the problem using:"
-msgstr "El análisis nos dice que la red tiene un espacio y una intersección. Tratamos de arreglar el problema usando:"
-
-# 8be31305870e491c92ad11d8f8d0a20a
-#: ../../../src/common/doc/functions/node_network.rst:137
-msgid ""
-"Inspecting the generated table, we can see that edges 13,14 and 18 has been "
-"segmented"
-msgstr "Inspeccionar la tabla generada, podemos ver que los bordes 13,14 y 18 ha sido segmentado"
-
-# 8a086446ed8d4b30bf07015ab46ea12d
-#: ../../../src/common/doc/functions/node_network.rst:167
-msgid "We can create the topology of the new network"
-msgstr "Podemos crear la topología de la nueva red  "
-
-# 8944601cf6e343c09dce0bf706960a8c
-#: ../../../src/common/doc/functions/node_network.rst:185
-msgid "Now let's analyze the new topology"
-msgstr "Ahora analicemos la nueva topología"
-
-# 8a596982abe141b4a1925e35e1db79a3
-#: ../../../src/common/doc/functions/node_network.rst:211
-msgid "Images"
-msgstr "Imágenes"
-
-# 960ada27fdd34c3dbfb61f10e5feba5f
-#: ../../../src/common/doc/functions/node_network.rst:244
-msgid "Comparing the results"
-msgstr "Comparando los resultados"
-
-# 8bbf24ce7c7e42f5a20e2a8d89e04c36
-#: ../../../src/common/doc/functions/node_network.rst:246
-msgid "Comparing with the Analysis in the original edge_table, we see that."
-msgstr "Comparando con el análisis del edge_table original,  vemos que:"
-
-# a3503fcd45dd4095b55e814ab842c829
-#: ../../../src/common/doc/functions/node_network.rst:249
-msgid "Before"
-msgstr "Antes de"
-
-# dfb592f8bd4e4572bbda7700558b3e93
-#: ../../../src/common/doc/functions/node_network.rst:249
-msgid "After"
-msgstr "Después de"
-
-# dde3349cc54e4b94afb37800f2a163f5
-#: ../../../src/common/doc/functions/node_network.rst:251
-msgid "Table name"
-msgstr "Nombre de la tabla"
-
-# f672bf7770e8488fbe5ea1fbd13d7ac9
-#: ../../../src/common/doc/functions/node_network.rst:251
-msgid "edge_table"
-msgstr "edge_table"
-
-# fbe3a7f491d4488085062b1fb783b357
-#: ../../../src/common/doc/functions/node_network.rst:251
-msgid "edge_table_noded"
-msgstr "edge_table_noded"
-
-# adaa5d5eca664ecb9d20315adfd329b4
-#: ../../../src/common/doc/functions/node_network.rst:253
-msgid "Fields"
-msgstr "Campos"
-
-# ebcf10a104ba4d7eaae546ec13365142
-#: ../../../src/common/doc/functions/node_network.rst:253
-msgid "All original fields"
-msgstr "Todos los campos originales"
-
-# be45b275890a4aa8a6d624b6f87774d0
-#: ../../../src/common/doc/functions/node_network.rst:253
-msgid "Has only basic fields to do a topology analysis"
-msgstr "Tiene solamente campos básicos para hacer un análisis de topología"
-
-# 92f3a885bad349d6b5f9ef2345cb905f
-#: ../../../src/common/doc/functions/node_network.rst:255
-msgid "Dead ends"
-msgstr "Callejones sin salida"
-
-# 40a53c9b632b40a6a81f9277c11765b1
-#: ../../../src/common/doc/functions/node_network.rst:255
-msgid "Edges with 1 dead end: 1,6,24"
-msgstr "Los bordes con 1 callejón sin salida: 1,6,24"
-
-# 709cbda3addd4b32b9b267d9ceafdb4f
-#: ../../../src/common/doc/functions/node_network.rst:256
-msgid "Edges with 2 dead ends  17,18"
-msgstr "Bordes con 2 callejones sin salida 17,18"
-
-# d0de891ebf004a148c2bcd4510d81064
-#: ../../../src/common/doc/functions/node_network.rst:258
-msgid ""
-"Edge 17's right node is a dead end because there is no other edge sharing "
-"that same node. (cnt=1)"
-msgstr "Nodo derecho borde de 17 es un callejón sin salida porque no hay ningún otro borde que comparta ese mismo nodo. (cnt = 1)"
-
-# 57918afd2f0445cea564eba267fa8c37
-#: ../../../src/common/doc/functions/node_network.rst:255
-msgid "Edges with 1 dead end: 1-1 ,6-1,14-2, 18-1 17-1 18-2"
-msgstr "Los bordes con 1 callejón sin salida: 1-1, 6-1,14-2, 18-1-17-1 18-2"
-
-# ff6cb3034ea345c89df6d718108fd2bc
-#: ../../../src/common/doc/functions/node_network.rst:262
-msgid "Isolated segments"
-msgstr "Segmentos aislados"
-
-# b958862fe349475ca7c2b38bbb40663b
-#: ../../../src/common/doc/functions/node_network.rst:262
-msgid "two isolated segments:  17 and 18 both they have 2 dead ends"
-msgstr "dos aislados segmentos: 17 y 18 ambos tienen 2 callejones sin salida"
-
-# 8d0bda0399694c6d8677fa928bdab03c
-#: ../../../src/common/doc/functions/node_network.rst:263
-msgid "No Isolated segments"
-msgstr "Segmentos no aislados"
-
-# ac2cf90e5b2a4e75bb94688d6e4ec553
-#: ../../../src/common/doc/functions/node_network.rst:263
-msgid "Edge 17 now shares a node with edges 14-1 and 14-2"
-msgstr "Borde 17 ahora comparte un nodo con bordes 14-1 y 14-2"
-
-# 287c00afc68a4e869f912d7b2ddabefb
-#: ../../../src/common/doc/functions/node_network.rst:264
-msgid "Edges 18-1 and 18-2 share a node with edges 13-1 and 13-2"
-msgstr "Bordes 18-1 y 18-2 compartir un nodo con bordes 13-1 y 13-2"
-
-# bab6a1bf5c10447caa298e9247f3bf2a
-#: ../../../src/common/doc/functions/node_network.rst:266
-msgid "Gaps"
-msgstr "Espacios"
-
-# c23ab3c2eff44ddf9ddb0bee4f90197a
-#: ../../../src/common/doc/functions/node_network.rst:266
-msgid ""
-"There is a gap between edge 17 and 14 because edge 14 is near to the right "
-"node of edge 17"
-msgstr "Existe un espacio entre 17 y 14 borde borde 14 es cerca del nodo derecho del borde 17"
-
-# 89fabbc2722649c9adf098ea0f9dde1c
-#: ../../../src/common/doc/functions/node_network.rst:266
-msgid ""
-"Edge 14 was segmented Now edges: 14-1 14-2 17 share the same node The "
-"tolerance value was taken in account"
-msgstr "Borde 14 fue segmentado ahora bordes: 14-1 14-2 17 comparten el mismo nodo, el valor de tolerancia fue tomado en cuenta"
-
-# c04f1c8028d846aeb593cd2389ee45da
-#: ../../../src/common/doc/functions/node_network.rst:270
-msgid "Intersections"
-msgstr "Intersecciones"
-
-# db3e94db58d0422bbfbdb83ba509d29e
-#: ../../../src/common/doc/functions/node_network.rst:270
-msgid "Edges 13 and 18 were intersecting"
-msgstr "Bordes 13 y 18 años se intersectan"
-
-# 50736f49b59e4f7fa0c66f0e979d80bd
-#: ../../../src/common/doc/functions/node_network.rst:270
-msgid ""
-"Edges were segmented, So, now in the interection's point there is a node and"
-" the following edges share it: 13-1 13-2 18-1 18-2"
-msgstr "Bordes fueron segmentados, ahora en el punto de la interesección hay un nodo y los bordes siguientes lo comparten: 13-1 13-2-18-1 18-2"
-
-# f39fa18acedb410fb827e37f226da00b
-#: ../../../src/common/doc/functions/node_network.rst:275
-msgid ""
-"Now, we are going to include the segments 13-1, 13-2 14-1, 14-2 ,18-1 and "
-"18-2 into our edge-table, copying the data for dir,cost,and reverse cost "
-"with tho following steps:"
-msgstr "Ahora, vamos a incluir los segmentos 13-1, 13-2-14-1, 14-2, 18-1 y 18-2 en nuestra tabla de bordes, copiando además los datos para dir, costo y costo inverso con los siguientes los pasos:"
-
-# 40eb8df52b5649ddb2401cc0c9fe4e7c
-#: ../../../src/common/doc/functions/node_network.rst:277
-msgid ""
-"Add a column old_id into edge_table, this column is going to keep track the "
-"id of the original edge"
-msgstr "Agregar una columna old_id en edge_table, esta columna va a seguir la pista el id del borde original"
-
-# 91eb1db3098b4353be78c9aef064421e
-#: ../../../src/common/doc/functions/node_network.rst:278
-msgid ""
-"Insert only the segmented edges, that is, the ones whose max(sub_id) >1"
-msgstr "Introduzca sólo los bordes segmentados, es decir, aquellos cuyo max(sub_id) > 1"
-
-# 2158163aaac748eca84fcd78a42e9b3a
-#: ../../../src/common/doc/functions/node_network.rst:291
-msgid "We recreate the topology:"
-msgstr "Recreamos la topología:"
-
-# 03050935f9bb42a69dfe42e303e8f164
-#: ../../../src/common/doc/functions/node_network.rst:311
-msgid ""
-"To get the same analysis results as the topology of edge_table_noded, we do "
-"the following query:"
-msgstr "Para obtener los mismos resultados de análisis que la topología de edge_table_noded, hacemos la siguiente consulta:"
-
-# bcefb46820504921aa7a3260a988c26d
-#: ../../../src/common/doc/functions/node_network.rst:338
-msgid ""
-"To get the same analysis results as the original edge_table, we do the "
-"following query:"
-msgstr "Para obtener los mismos resultados de análisis como el edge_table original, hacemos la siguiente consulta:"
-
-# 376c4a5e033d42b3ba4e3c3ec018f8e8
-#: ../../../src/common/doc/functions/node_network.rst:363
-msgid ""
-"Or we can analyze everything because, maybe edge 18 is an overpass, edge 14 "
-"is an under pass and there is also a street level juction, and the same "
-"happens with edges 17 and 13."
-msgstr "O podemos analizar todo porque, tal vez edge 18 es un puente, borde 14 es un bajo paso y también hay una juntura nivel calle, y lo mismo ocurre con los bordes 17 y 13."
-
-# 26fbd57b79324bd08ef2c5ee3579831e
-#: ../../../src/common/doc/functions/node_network.rst:390
-msgid "See Also"
-msgstr "Véase también"
-
-# 9df40faa94c64db5b2256f265be6e4d4
-#: ../../../src/common/doc/functions/node_network.rst:392
-msgid ""
-":ref:`topology` for an overview of a topology for routing algorithms. "
-":ref:`pgr_analyze_oneway` to analyze directionality of the edges. "
-":ref:`pgr_create_topology` to create a topology based on the geometry. "
-":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
-"table."
-msgstr ":ref:`topology` para tener una visión general de una topología de algoritmos de encaminamiento. \n:ref:`pgr_analyze_oneway` para analizar la direccionalidad de los bordes. \n:ref:`pgr_create_topology` para crear una topología basado en la geometría.\n:ref:`pgr_analyze_graph` para analizar los bordes y los nodos de la tabla del borde."
diff --git a/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/point_to_id.po b/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/point_to_id.po
deleted file mode 100644
index 80d13de..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/point_to_id.po
+++ /dev/null
@@ -1,105 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-12 15:40+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 81e0b58a4b464395b3661da85edfaa90
-#: ../../../src/common/doc/functions/point_to_id.rst:13
-msgid "pgr_pointToId - Inserts point into a vertices table"
-msgstr "pgr_pointToId - Inserta puntos una tabla de vértices"
-
-# 9bebf9f4ff2b43a39470ee284698fa33
-#: ../../../src/common/doc/functions/point_to_id.rst:20
-msgid "Name"
-msgstr "Nombre"
-
-# 8fcf7e9e33b448b982f7111389a7e412
-#: ../../../src/common/doc/functions/point_to_id.rst:22
-msgid "``pgr_pointToId`` — Inserts a point into a temporary vertices table."
-msgstr "``pgr_pointToId`` — Inserta puntos a una tabla de vértices temporal"
-
-# 1ebe04b75e4444e2970f12bf667f07fa
-#: ../../../src/common/doc/functions/point_to_id.rst:26
-msgid ""
-"This function should not be used directly. Use :ref:`pgr_createTopology "
-"<pgr_create_topology>` instead."
-msgstr "Esta función no debe utilizarse directamente. Usar :ref:`pgr_createTopology <pgr_create_topology>` en su lugar."
-
-# 8c3303cb3d73446795471f411d835691
-#: ../../../src/common/doc/functions/point_to_id.rst:30
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# e17d53fea1674ad692e9d65129c04e5d
-#: ../../../src/common/doc/functions/point_to_id.rst:32
-msgid ""
-"Inserts a point into a temporary vertices table, and returns an id of a new "
-"point or an existing point. Tolerance is the minimal distance between "
-"existing points and the new point to create a new point."
-msgstr "Inserta un punto en una tabla temporal de vértices y devuelve el identificador del nuevo punto o del punto existente. La tolerancia es la distancia mínima entre los puntos existentes y el nuevo punto para la creación de ese un nuevo punto."
-
-# 4b067a809bbd4210baf154f274aab5f0
-#: ../../../src/common/doc/functions/point_to_id.rst:40
-msgid "Description"
-msgstr "Descripción"
-
-# de6b0b7b7ae44691a60a709a1245e12c
-#: ../../../src/common/doc/functions/point_to_id.rst:42
-msgid "``geometry`` of the existing point"
-msgstr "``geometry`` del punto existente"
-
-# e05906cd2cd545eead6a6a277d441ea4
-#: ../../../src/common/doc/functions/point_to_id.rst:43
-msgid ""
-"``float8`` snapping tolerance of disconnected edges (in projection unit)"
-msgstr "``float8`` tolerancia ruptura de los bordes desconectados (en la unidad de proyección)"
-
-# 7eb52d95126d47efbf485a1397785c34
-#: ../../../src/common/doc/functions/point_to_id.rst:45
-msgid "Returns point id (``bigint``) of a new or existing point."
-msgstr "Devuelve el identificador del (``bigint``)  punto nuevo o existente."
-
-# 78ed162b771d42c1bdadb75ea1806c17
-#: ../../../src/common/doc/functions/point_to_id.rst:49
-msgid "History"
-msgstr "Historia"
-
-# 932b962d76c14946b54db15e77b3c90d
-#: ../../../src/common/doc/functions/point_to_id.rst:50
-msgid "Renamed in version 2.0.0"
-msgstr "Renombrado en la versión 2.0.0"
-
-# c1b2ccd7df20427c88dcf1ebf4b06d82
-#: ../../../src/common/doc/functions/point_to_id.rst:54
-msgid "See Also"
-msgstr "Véase también"
-
-# 4dafa239ff7648c2952a2d3ee70671bf
-#: ../../../src/common/doc/functions/point_to_id.rst:56
-msgid ":ref:`pgr_create_topology`"
-msgstr ":ref:`pgr_create_topology`"
-
-# 8100a50d0b5f4b0cab8d62645becc674
-#: ../../../src/common/doc/functions/point_to_id.rst:57
-msgid ":ref:`topology`"
-msgstr ":ref:`topology`"
-
-# 86ad35d9d3ce44a696b6dc61c466e04e
-#: ../../../src/common/doc/functions/point_to_id.rst:58
-msgid ":ref:`pgr_node_network`"
-msgstr ":ref:`pgr_node_network`"
diff --git a/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/quote_ident.po b/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/quote_ident.po
deleted file mode 100644
index d6ca553..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/quote_ident.po
+++ /dev/null
@@ -1,90 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-12 15:40+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 59a19788e4ba478cb0d046fc07c08179
-#: ../../../src/common/doc/functions/quote_ident.rst:13
-msgid "pgr_quote_ident - Quote table name with Schema Component"
-msgstr "pgr_quote_ident - Agrega comillas al nombre de tabla con componente de esquema"
-
-# 61a86f593d04476692b89157939b8a1e
-#: ../../../src/common/doc/functions/quote_ident.rst:20
-msgid "Name"
-msgstr "Nombre"
-
-# 7ae4a51cc62143058b829f9317d4b282
-#: ../../../src/common/doc/functions/quote_ident.rst:22
-msgid ""
-"``pgr_quote_ident`` — Quote table name with or without schema component."
-msgstr "``pgr_quote_ident`` — Agrega comillas al nombre de tabla con o sin el componente de esquema"
-
-# d09400822917498ab08038e0453f93a2
-#: ../../../src/common/doc/functions/quote_ident.rst:26
-msgid "Synopsis"
-msgstr "sinopsis"
-
-# 02e534c6d94e4d7fa366eb30dfd82602
-#: ../../../src/common/doc/functions/quote_ident.rst:28
-msgid ""
-"Function to split a string on ``.`` characters and then quote the components"
-" as postgres identifiers and then join them back together with ``.`` "
-"characters. Multile ``.`` will get collapsed into a single ``.``, so "
-"``schema...table`` till get returned as ``schema.\"table\"`` and "
-"``Schema.table`` becomes ``\"Schema\".\"table\"``."
-msgstr "Función que divide una cadena basándose en el caracter ``.`` y luego pone comillas a los componentes como identificadores de postgres, juntándolos con el caracter ``.``. Varios ``.`` serán colapsados a un solo ``.``, por ejemplo ``schema...table``  regresará como ``schema.\"table\"``  y ``Schema.table`` se convierte en ``\"Schema\".\"table\"``."
-
-# 70b63ad008b14b5cbd540f478c596e97
-#: ../../../src/common/doc/functions/quote_ident.rst:37
-msgid "Description"
-msgstr "Descripción"
-
-# 76375d16726e4e8a8c4e02b54bd4b33a
-#: ../../../src/common/doc/functions/quote_ident.rst:39
-msgid "``text`` table name with or without schema component"
-msgstr "``text`` nombre de la tabla con o sin componente de esquema"
-
-# d8548a7bfe3542b28f614894ba6f4b84
-#: ../../../src/common/doc/functions/quote_ident.rst:41
-msgid "Returns table name with or without schema as ``text``."
-msgstr "Devuelve el nombre de la tabla con o sin esquema como ``text``."
-
-# ebc95d6ee53c42f29aa6a18a134d4d20
-#: ../../../src/common/doc/functions/quote_ident.rst:45
-msgid "History"
-msgstr "Historia"
-
-# 6bea52def68e4f05ae56873b8d4f9d1c
-#: ../../../src/common/doc/functions/quote_ident.rst:46
-msgid "New in version 2.0.0"
-msgstr "Nuevo en la versión 2.0.0"
-
-# 21e9cb20b57e4b4681d4e04d5f083d2a
-#: ../../../src/common/doc/functions/quote_ident.rst:50
-msgid "Examples"
-msgstr "Ejemplos"
-
-# 5e3a344a21eb45bfba3e880ae3981a30
-#: ../../../src/common/doc/functions/quote_ident.rst:77
-msgid "See Also"
-msgstr "Véase también"
-
-# b4ee52cbb2b74bb59b22b1802748f96d
-#: ../../../src/common/doc/functions/quote_ident.rst:79
-msgid "[TBD]"
-msgstr "[Por Definirse]"
diff --git a/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/version.po b/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/version.po
deleted file mode 100644
index 5e460b8..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/version.po
+++ /dev/null
@@ -1,114 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-12 15:40+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# dbab41817c8a46459e8f33cf684a7afb
-#: ../../../src/common/doc/functions/version.rst:13
-msgid "pgr_version - Get version information"
-msgstr "pgr_version - Obtener información sobre la versión"
-
-# 19cd8fb76f754d898f75659f97628007
-#: ../../../src/common/doc/functions/version.rst:20
-msgid "Name"
-msgstr "Nombre"
-
-# 5531935ef2384b709c4f1d81ddcdf15c
-#: ../../../src/common/doc/functions/version.rst:22
-msgid "``pgr_version`` — Query for pgRouting version information."
-msgstr "``pgr_version`` — consulta de información sobre la versión de pgRouting."
-
-# 52175fb13b944970989d3ef4a23a7b66
-#: ../../../src/common/doc/functions/version.rst:26
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# 14783f07374f4ccdaa53515b95c17943
-#: ../../../src/common/doc/functions/version.rst:28
-msgid "Returns a table with pgRouting version information."
-msgstr "Devuelve una tabla con la información sobre la versión de pgRouting."
-
-# 6d5995ab278d476d80f54ab15b8af686
-#: ../../../src/common/doc/functions/version.rst:36
-msgid "Description"
-msgstr "Descripción"
-
-# b4baa0103a55431abaa586f16230af8c
-#: ../../../src/common/doc/functions/version.rst:38
-msgid "Returns a table with:"
-msgstr "Devuelve una tabla con:"
-
-# 7d8a75cf72b840b39e0eea6140a5839d
-#: ../../../src/common/doc/functions/version.rst:40
-msgid "``varchar`` pgRouting version"
-msgstr "``varchar`` versión de pgRouting "
-
-# 2af5168bce0a4b03bf2b097d3099c850
-#: ../../../src/common/doc/functions/version.rst:41
-msgid "``varchar`` Git tag of pgRouting build"
-msgstr "``varchar`` La etiqueta de la construcción en Git de pgRouting"
-
-# b4444b51e41549b399751bcba194a8a8
-#: ../../../src/common/doc/functions/version.rst:42
-msgid "``varchar`` Git hash of pgRouting build"
-msgstr "``varchar`` El Hash de la construcción en Git de pgRouting"
-
-# 6737b5df55e94bb185f64d0de3389f3e
-#: ../../../src/common/doc/functions/version.rst:43
-msgid "``varchar`` Git branch of pgRouting build"
-msgstr "``varchar`` La ramificación de la construcción en Git de pgRouting"
-
-# e5b735559b2949b09899e982d6f2ecf3
-#: ../../../src/common/doc/functions/version.rst:44
-msgid "``varchar`` Boost version"
-msgstr "``varchar``  versión de Boost"
-
-# 9042ea468aba4c4490b7124bbf14aacb
-#: ../../../src/common/doc/functions/version.rst:48
-msgid "History"
-msgstr "Historia"
-
-# 3829660b5485491083028df2cb267d03
-#: ../../../src/common/doc/functions/version.rst:49
-msgid "New in version 2.0.0"
-msgstr "Nuevo en la versión 2.0.0"
-
-# 8638cdf8594940cbad096c9ac3d261ad
-#: ../../../src/common/doc/functions/version.rst:53
-msgid "Examples"
-msgstr "Ejemplos"
-
-# d80877f2810741ada5737305d484de11
-#: ../../../src/common/doc/functions/version.rst:55
-msgid "Query for full version string"
-msgstr "Consulta para la cadena con la información completa de la versión."
-
-# 2ff90cee91e644fab554650cc24bd3bf
-#: ../../../src/common/doc/functions/version.rst:67
-msgid "Query for ``version`` and ``boost`` attribute"
-msgstr "Consulta para los atributos ``version`` y ``boost``"
-
-# 6c3a1c332dc54ea2a01d81c5f5f9dcc1
-#: ../../../src/common/doc/functions/version.rst:80
-msgid "See Also"
-msgstr "Véase también"
-
-# 1eeb4f68d3c342dbbadade6c52b87baf
-#: ../../../src/common/doc/functions/version.rst:82
-msgid ":ref:`pgr_versionless`"
-msgstr ":ref:`pgr_versionless`"
diff --git a/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/versionless.po b/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/versionless.po
deleted file mode 100644
index 0ad2907..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/common/doc/functions/versionless.po
+++ /dev/null
@@ -1,86 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-12 15:40+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# f15b37fde8e64b508893630a0291dc6a
-#: ../../../src/common/doc/functions/versionless.rst:13
-msgid "pgr_versionless - Compare version numbers"
-msgstr "pgr_versionless - Comparar números de versión"
-
-# cd0dcc3f3489468ab55c89598715d895
-#: ../../../src/common/doc/functions/versionless.rst:20
-msgid "Name"
-msgstr "Nombre"
-
-# e2f0eb00eca142c8bc7d71b317604c7e
-#: ../../../src/common/doc/functions/versionless.rst:22
-msgid "``pgr_version`` — Compare two version numbers and return if smaller."
-msgstr "``pgr_versionless`` — compara dos números de versión."
-
-# d85cf15bf8894e158945855624a422f5
-#: ../../../src/common/doc/functions/versionless.rst:26
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# ed2cb6f5c03645b3ab2a296d062c1eb9
-#: ../../../src/common/doc/functions/versionless.rst:28
-msgid ""
-"Returns ``true`` if the first version number is smaller than the second "
-"version number. Otherwise returns ``false``."
-msgstr "Devuelve ``true``  si el primer número de versión es más pequeño que el segundo número de la versión. De lo contrario, devuelve ``false``."
-
-# a11f675500e140ae997cdb4f167d2da4
-#: ../../../src/common/doc/functions/versionless.rst:36
-msgid "Description"
-msgstr "Descripción"
-
-# 7d1ac8fa4fce4362965d8587a3cd7099
-#: ../../../src/common/doc/functions/versionless.rst:38
-msgid "``text`` first version number"
-msgstr "``text`` primer número de versión"
-
-# 1d8a5a36a0fa4da19892193a11578a08
-#: ../../../src/common/doc/functions/versionless.rst:39
-msgid "``text`` second version number"
-msgstr "``text`` segundo número de versión"
-
-# a32770a22cf849cb96bd78825f332825
-#: ../../../src/common/doc/functions/versionless.rst:43
-msgid "History"
-msgstr "Historia"
-
-# 14ef379da17a48389cb627817c173253
-#: ../../../src/common/doc/functions/versionless.rst:44
-msgid "New in version 2.0.0"
-msgstr "Nuevo en la versión 2.0.0"
-
-# 7a3d2290bca342b79b4105e7aee330b0
-#: ../../../src/common/doc/functions/versionless.rst:48
-msgid "Examples"
-msgstr "Ejemplos"
-
-# ca2f13a6ce4444258be7f46d40c8bd2a
-#: ../../../src/common/doc/functions/versionless.rst:61
-msgid "See Also"
-msgstr "Véase también"
-
-# a621baf581ff4ba8b4b03d3481d5a660
-#: ../../../src/common/doc/functions/versionless.rst:63
-msgid ":ref:`pgr_version`"
-msgstr ":ref:`pgr_version`"
diff --git a/doc/i18n/es/LC_MESSAGES/src/common/doc/index.po b/doc/i18n/es/LC_MESSAGES/src/common/doc/index.po
deleted file mode 100644
index ebd7cbf..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/common/doc/index.po
+++ /dev/null
@@ -1,24 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-08-11 16:35+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 78df021b36a0428cab8a950fb0bda859
-#: ../../../src/common/doc/index.rst:13
-msgid "Common Functions"
-msgstr "Funciones comunes"
diff --git a/doc/i18n/es/LC_MESSAGES/src/common/doc/legacy.po b/doc/i18n/es/LC_MESSAGES/src/common/doc/legacy.po
deleted file mode 100644
index 1270c34..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/common/doc/legacy.po
+++ /dev/null
@@ -1,67 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-08-10 15:50+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 7e98fba52c6f402c811f8c50dd811f39
-#: ../../../src/common/doc/legacy.rst:13
-msgid "Legacy Functions"
-msgstr "Funciones heredadas"
-
-# 18b051582e6742be8a3737391d4676ad
-#: ../../../src/common/doc/legacy.rst:15
-msgid ""
-"pgRouting 2.0 release has total restructured the function naming and "
-"obsoleted many of the functions that were available in the 1.x releases. "
-"While we realize that this may inconvenience our existing users, we felt "
-"this was needed for the long term viability of the project to be more "
-"response to our users and to be able to add new functionality and test "
-"existing functionality."
-msgstr "En la versión 2.0 de pgRouting se hizo una reestructuración total en la nomenclatura de las funciones y se han sustituido muchas funciones que estaban disponibles en las versiones 1.x. Mientras esto puede ser un inconveniente para nuestros usuarios existentes, pensamos que esto era necesario para la viabilidad a largo plazo del proyecto, mejorar la respuesta a más de nuestros usuarios, poder añadir nuevas funcionalidades y probar la funcionalidad existente."
-
-# cf6d9479ec0b4eb6b0607f3302df5dca
-#: ../../../src/common/doc/legacy.rst:17
-msgid ""
-"We have made a minimal effort to save most of these function and distribute "
-"with the release in a file ``pgrouting_legacy.sql`` that is not part of the "
-"pgrouting extension and is not supported. If you can use these functions "
-"that is great. We have not tested any of these functions so if you find "
-"issues and want to post a pull request or a patch to help other users that "
-"is fine, but it is likely this file will be removed in a future release and "
-"we strongly recommend that you convert your existing code to use the new "
-"documented and supported functions."
-msgstr "Se hizo mínimo esfuerzo para salvar a la mayoría de estas funciones y distribuir con la versión  un archivo ``pgrouting_legacy.sql``  que no es parte de la extensión pgRouting y no están siendo apoyadas. Si puede utilizar estas funciones, que bueno. No hemos probado ninguna de estas funciones,  entonces si encuentra problemas y publicar  un parche para ayudar a otros usuarios, es correcto pero lo más probable es que ese archivo sea eliminado en versiones futuras, por lo que le re [...]
-
-# 82da52e7fec44c24956e90636a8a9355
-#: ../../../src/common/doc/legacy.rst:19
-msgid ""
-"The follow is a list of TYPEs, CASTs and FUNCTION included in the "
-"``pgrouting_legacy.sql`` file. The list is provide as a convenience but "
-"these functions are deprecated, not supported, and probably will need some "
-"changes to get them to work."
-msgstr "La siguiente es una lista de: tipos, modelos y funciones incluidas en el archivo ``pgrouting_legacy.sql``.  La lista es para proporcionarle comodidad, pero estas funciones son obsoletas, no apoyadas y probablemente tendrá que hacer cambios para hacerlas trabajar."
-
-# 7ae0da52fff04aaaaec8fd9b91d3b7b0
-#: ../../../src/common/doc/legacy.rst:23
-msgid "TYPEs & CASTs"
-msgstr "TYPEs & CASTs"
-
-# 8e73926e03514dff813a00fbf7d202e0
-#: ../../../src/common/doc/legacy.rst:34
-msgid "FUNCTIONs"
-msgstr "FUNCTIONs"
diff --git a/doc/i18n/es/LC_MESSAGES/src/common/doc/types.po b/doc/i18n/es/LC_MESSAGES/src/common/doc/types.po
deleted file mode 100644
index cff67b9..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/common/doc/types.po
+++ /dev/null
@@ -1,31 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-10 18:28+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# a647839f49f94a9997479367dc35d13f
-#: ../../../src/common/doc/types.rst:13
-msgid "Custom Types"
-msgstr "Tipos Personalizados"
-
-# f00f6611879f4afd961586e955284a41
-#: ../../../src/common/doc/types.rst:15
-msgid ""
-"The following are commonly used data types for some of the pgRouting "
-"functions."
-msgstr "Los siguientes tipos de datos se utilizan comúnmente en algunas de las funciones pgRouting."
diff --git a/doc/i18n/es/LC_MESSAGES/src/common/doc/types/cost_result.po b/doc/i18n/es/LC_MESSAGES/src/common/doc/types/cost_result.po
deleted file mode 100644
index 52a0cb1..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/common/doc/types/cost_result.po
+++ /dev/null
@@ -1,115 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-21 16:54+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 575fa6fd8a1842c68aba9825683b178d
-#: ../../../src/common/doc/types/cost_result.rst:13
-msgid "pgr_costResult[]"
-msgstr "pgr_costResult[]"
-
-# 3b55f2f3cdc24995bd590e235062c389
-# 1d4bd884218342d6a7ca7ae79998c3a0
-#: ../../../src/common/doc/types/cost_result.rst:20
-#: ../../../src/common/doc/types/cost_result.rst:54
-msgid "Name"
-msgstr "Nombre"
-
-# 691ba9180a9f4854922720a03e1db3e0
-#: ../../../src/common/doc/types/cost_result.rst:22
-msgid ""
-"``pgr_costResult[]`` — A set of records to describe a path result with cost "
-"attribute."
-msgstr "``pgr_costResult[]`` — un conjunto de registros para describir un recorrido con el atributo de costo."
-
-# 4bc0f98e83fc482daf119d02f3ab4386
-# b80ec90ac4244e82a1aa8f7e58b78921
-#: ../../../src/common/doc/types/cost_result.rst:26
-#: ../../../src/common/doc/types/cost_result.rst:60
-msgid "Description"
-msgstr "Descripción"
-
-# 023a9b6d62474dbdbb4d587b192099c4
-# 8e1c61381d6f47909ea0830da8a4740c
-#: ../../../src/common/doc/types/cost_result.rst:38
-#: ../../../src/common/doc/types/cost_result.rst:73
-msgid "sequential ID indicating the path order"
-msgstr "identificador secuencial, indicando el orden del recorrido"
-
-# 98a23fe6530d43418558cdd8be417a26
-# 8c3701ae807d4738b8bbe72260f4c476
-#: ../../../src/common/doc/types/cost_result.rst:39
-#: ../../../src/common/doc/types/cost_result.rst:75
-msgid "generic name, to be specified by the function, typically the node id"
-msgstr "nombre genérico, a ser especificado por la función, típicamente el identificador del nodo"
-
-# f4abd64c5dea4cda97490766f42a395c
-# 1be5c24bdc684ed1a182e9e2b0ab2343
-#: ../../../src/common/doc/types/cost_result.rst:40
-#: ../../../src/common/doc/types/cost_result.rst:76
-msgid "generic name, to be specified by the function, typically the edge id"
-msgstr "nombre genérico, a ser especificado por la función, típicamente el identificador del borde"
-
-# 0b4a362ff97d481cafd2c0328ad1f715
-# 8e11a66126844a1682d4e4c84166794d
-#: ../../../src/common/doc/types/cost_result.rst:41
-#: ../../../src/common/doc/types/cost_result.rst:77
-msgid "cost attribute"
-msgstr "atributo de costo"
-
-# 7e74e200db1b40e1a5231037b2e9b993
-#: ../../../src/common/doc/types/cost_result.rst:47
-msgid "pgr_costResult3[] - Multiple Path Results with Cost"
-msgstr "pgr_costResult3[]  -  resultados múltiples de recorridos con costo"
-
-# 307f0248b6c54a71bfc205bb2270b5ce
-#: ../../../src/common/doc/types/cost_result.rst:56
-msgid ""
-"``pgr_costResult3[]`` — A set of records to describe a path result with cost"
-" attribute."
-msgstr "``pgr_costResult3[]`` — un conjunto de registros para describir varios resultados de recorridos con el atributo de costo."
-
-# 13465c99a9fb49ebab1d1852e6c61aab
-#: ../../../src/common/doc/types/cost_result.rst:74
-msgid "generic name, to be specified by the function, typically the path id"
-msgstr "nombre genérico, a ser especificado por la función, típicamente el identificador del recorrido"
-
-# ac46c731c85d4d358a763bc1268ef510
-#: ../../../src/common/doc/types/cost_result.rst:81
-msgid "History"
-msgstr "Historia"
-
-# 6bc9329d908f474bbcd380272dae671d
-#: ../../../src/common/doc/types/cost_result.rst:82
-msgid "New in version 2.0.0"
-msgstr "Nuevo en la versión 2.0.0"
-
-# 7e5f0c1b76c349ce940c19b2312cc2ec
-#: ../../../src/common/doc/types/cost_result.rst:83
-msgid "Replaces ``path_result``"
-msgstr "Sustituye a ``path_result``"
-
-# 28df9e1fa19b49f9bb57710715c52fcb
-#: ../../../src/common/doc/types/cost_result.rst:87
-msgid "See Also"
-msgstr "Véase también"
-
-# 21432e8842c1490ba3a7825f4b4e57bb
-#: ../../../src/common/doc/types/cost_result.rst:89
-msgid ":ref:`introduction`"
-msgstr ":ref:`Introducción <introduction>`"
diff --git a/doc/i18n/es/LC_MESSAGES/src/common/doc/types/geom_result.po b/doc/i18n/es/LC_MESSAGES/src/common/doc/types/geom_result.po
deleted file mode 100644
index 9998402..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/common/doc/types/geom_result.po
+++ /dev/null
@@ -1,83 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-21 16:53+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# baeae55a13de4766b42a9f43c6f8caaf
-#: ../../../src/common/doc/types/geom_result.rst:13
-msgid "pgr_geomResult[]"
-msgstr "pgr_geomResult[]"
-
-# 4fc9eadff47c4a24baa096c8c667c469
-#: ../../../src/common/doc/types/geom_result.rst:20
-msgid "Name"
-msgstr "Nombre"
-
-# 03beb686e4ec49e08cd6f1f0f5e03339
-#: ../../../src/common/doc/types/geom_result.rst:22
-msgid ""
-"``pgr_geomResult[]`` — A set of records to describe a path result with "
-"geometry attribute."
-msgstr "``pgr_geomResult[]`` — un conjunto de registros para describir un recorrido que incluye el atributo de la geometría."
-
-# fd9c91caacdf4a2fb1c186c45e1d5525
-#: ../../../src/common/doc/types/geom_result.rst:26
-msgid "Description"
-msgstr "Descripción"
-
-# c00f6b668c744c7d822d2d2155e76b7a
-#: ../../../src/common/doc/types/geom_result.rst:38
-msgid "sequential ID indicating the path order"
-msgstr "identificador secuencial, indicando el orden del recorrido"
-
-# 5782feff61f84fd4b3130a80b1abd7a9
-# 69c0e9623b4d41669a2601517d1563d2
-#: ../../../src/common/doc/types/geom_result.rst:39
-#: ../../../src/common/doc/types/geom_result.rst:40
-msgid "generic name, to be specified by the function"
-msgstr "nombre genérico, a ser especificado por la función"
-
-# c837b15d4460475996b2f7bac8b14076
-#: ../../../src/common/doc/types/geom_result.rst:41
-msgid "geometry attribute"
-msgstr "atributo de geometría"
-
-# cf5503504b26427b800efddbc1098b64
-#: ../../../src/common/doc/types/geom_result.rst:45
-msgid "History"
-msgstr "Historia"
-
-# 4e474c2cf69748c680853e0505ce4773
-#: ../../../src/common/doc/types/geom_result.rst:46
-msgid "New in version 2.0.0"
-msgstr "Nuevo en la versión 2.0.0"
-
-# f4d42016a50f43438838421dfb361835
-#: ../../../src/common/doc/types/geom_result.rst:47
-msgid "Replaces ``geoms``"
-msgstr "Sustituye a ``geoms``"
-
-# 0075486d62f84298b41797b5789d377a
-#: ../../../src/common/doc/types/geom_result.rst:51
-msgid "See Also"
-msgstr "Véase también"
-
-# 5a190ec8601a4a919a058395614d7db5
-#: ../../../src/common/doc/types/geom_result.rst:53
-msgid ":ref:`introduction`"
-msgstr ":ref:`Introducción <introduction>`"
diff --git a/doc/i18n/es/LC_MESSAGES/src/common/doc/types/index.po b/doc/i18n/es/LC_MESSAGES/src/common/doc/types/index.po
deleted file mode 100644
index 23799cf..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/common/doc/types/index.po
+++ /dev/null
@@ -1,52 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (187a022 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-23 22:34\n"
-"PO-Revision-Date: 2013-09-24 03:50+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 31af4730c6e74131952f077a8cec876f
-#: ../../../src/common/doc/types/index.rst:13
-msgid "pgRouting Data Types"
-msgstr "Tipos de datos de pgRouting "
-
-# da2f6a8846b5476ea16852a5dc229cc4
-#: ../../../src/common/doc/types/index.rst:15
-msgid ""
-"The following are commonly used data types for some of the pgRouting "
-"functions."
-msgstr "Los siguientes tipos de datos se utilizan comúnmente en algunas de las funciones pgRouting."
-
-# a9b85e2084f8478fa35c1379a650108b
-#: ../../../src/common/doc/types/index.rst:17
-msgid ""
-":ref:`type_cost_result` -  A set of records to describe a path result with "
-"cost attribute."
-msgstr ":ref:`type_cost_result` — un conjunto de registros para describir un resultado de camino con el atributo de costo."
-
-# b982ceede0fd48afa63a086c6978fd2e
-#: ../../../src/common/doc/types/index.rst:18
-msgid ""
-":ref:`pgr_costResult3[] <type_cost_result3>` - A set of records to describe "
-"a path result with cost attribute."
-msgstr ":ref:`pgr_costResult3[] <type_cost_result3>` —  Un conjunto de registros para describir un resultado de ruta con el atributo de costo."
-
-# 913c41ce7bb44b80869c181df3560f3d
-#: ../../../src/common/doc/types/index.rst:19
-msgid ""
-":ref:`pgr_geomResult <type_geom_result>` - A set of records to describe a "
-"path result with geometry attribute."
-msgstr ":ref:`pgr_geomResult <type_geom_result>` — un conjunto de registros para describir el resultado de un camino que incluye el atributo de la geometría."
diff --git a/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/end_point.po b/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/end_point.po
deleted file mode 100644
index 98d5b61..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/end_point.po
+++ /dev/null
@@ -1,93 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 16:13+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 608ee0c4d0644bdba6e3dc233e2143a7
-#: ../../../src/common/doc/utilities/end_point.rst:13
-msgid "pgr_endPoint"
-msgstr "pgr_endPoint"
-
-# 8518d0c13dcc4cb9b4a6eb5bd83e8d6e
-#: ../../../src/common/doc/utilities/end_point.rst:20
-msgid "Name"
-msgstr "Nombre"
-
-# 3660b4422cfa4aaea41cf4b4e91164ee
-#: ../../../src/common/doc/utilities/end_point.rst:22
-msgid ""
-"``pgr_endPoint`` — Returns an end point of a (multi)linestring geometry."
-msgstr "``pgr_endPoint`` — devuelve un punto final de una geometría (multi)linestring."
-
-# 549e2d553af74e0bba5a2833eafa7983
-#: ../../../src/common/doc/utilities/end_point.rst:24
-msgid "This function is intended for the developer's aid."
-msgstr "Esta función es para ayudar a los desarrolladores"
-
-# d2cdf35b795f4fcfbfc9c84a2c36387b
-#: ../../../src/common/doc/utilities/end_point.rst:28
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# 180a778d767b496986ed060d48f0de04
-# 14f173f6f91f488b940887c452049824
-#: ../../../src/common/doc/utilities/end_point.rst:30
-#: ../../../src/common/doc/utilities/end_point.rst:44
-msgid ""
-"Returns the geometry of the end point of the first LINESTRING of ``geom``."
-msgstr "Devuelve la geometría del punto final del primer LINESTRING de ``geom``."
-
-# c8cfaed54e00467bba188637f3d25e04
-#: ../../../src/common/doc/utilities/end_point.rst:38
-msgid "Description"
-msgstr "Descripción"
-
-# b7a5d14354644a79aaa532e44543b0f1
-#: ../../../src/common/doc/utilities/end_point.rst:41
-msgid "Parameters"
-msgstr "Parámetros"
-
-# 01b0d917d9534f74885248e0be35ca6d
-#: ../../../src/common/doc/utilities/end_point.rst:42
-msgid "``geometry`` Geometry of a MULTILINESTRING or LINESTRING."
-msgstr "``geometry`` geometría de una MULTILINESTRING o LINESTRING."
-
-# a1951e42b2164de2b73d7ecde1bc5252
-#: ../../../src/common/doc/utilities/end_point.rst:49
-msgid "History"
-msgstr "Historia"
-
-# fd2421f2ca2945c4ad59395a0fa9cb90
-#: ../../../src/common/doc/utilities/end_point.rst:50
-msgid "New in version 2.0.0"
-msgstr "Nuevo en la versión 2.0.0"
-
-# 031cd30124a9491e80778dce1c6d77ab
-#: ../../../src/common/doc/utilities/end_point.rst:55
-msgid "See Also"
-msgstr "Véase también"
-
-# f17f7b08a35d44098381d1c280756f49
-#: ../../../src/common/doc/utilities/end_point.rst:57
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ":ref:`developer` para el diseño del árbol del proyecto."
-
-# 68b294268f37462fb09eb605267d0686
-#: ../../../src/common/doc/utilities/end_point.rst:58
-msgid ":ref:`pgr_start_point` to get the start point of a (multi)linestring."
-msgstr ":ref:`pgr_start_Point` para obtener el punto inicial de un (multi)linestring."
diff --git a/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/get_column_name.po b/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/get_column_name.po
deleted file mode 100644
index cb484b6..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/get_column_name.po
+++ /dev/null
@@ -1,141 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 15:57+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# f62e871185dd40c2a9e8b7cec3ea97b9
-#: ../../../src/common/doc/utilities/get_column_name.rst:13
-msgid "pgr_getColumnName"
-msgstr "pgr_getColumnName"
-
-# 0d4e05a54bf944d2a712bcee9d7897c4
-#: ../../../src/common/doc/utilities/get_column_name.rst:20
-msgid "Name"
-msgstr "Nombre"
-
-# c1e5f5dde2804946bee1804968cb4efc
-#: ../../../src/common/doc/utilities/get_column_name.rst:22
-msgid ""
-"``pgr_getColumnName`` — Retrieves the name of the column as is stored in the"
-" postgres administration tables."
-msgstr "``pgr_getColumnName`` — recupera el nombre de la columna tal como se almacena en las tablas de la administración de postgres."
-
-# 89a0f81382ca4dd4807320cd56be21bb
-#: ../../../src/common/doc/utilities/get_column_name.rst:24
-msgid "This function is intended for the developer’s aid."
-msgstr "Esta función es para ayudar a los desarrolladores"
-
-# a6025211521149deb893b8e059385c6b
-#: ../../../src/common/doc/utilities/get_column_name.rst:27
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# e6dc3534289949caa3eebca95dbe364e
-#: ../../../src/common/doc/utilities/get_column_name.rst:29
-msgid "Returns a ``text`` contining the registered name of the column."
-msgstr "Devuelve un '`text`` que contiene el nombre registrado de la columna."
-
-# ef6704e3345e4be4a51fd144fbfc5d82
-#: ../../../src/common/doc/utilities/get_column_name.rst:37
-msgid "Description"
-msgstr "Descripción"
-
-# de7acd82e1244d8ba20da3bae0d95f22
-#: ../../../src/common/doc/utilities/get_column_name.rst:39
-msgid "Parameters"
-msgstr "Parámetros"
-
-# 0b9f663d5b0e4f18a4bda0b996e55470
-#: ../../../src/common/doc/utilities/get_column_name.rst:41
-msgid "``text`` table name with or without schema component."
-msgstr "``text`` nombre de la tabla con o sin componente de esquema"
-
-# 34e350e22e5a495aa831ca55d080899a
-#: ../../../src/common/doc/utilities/get_column_name.rst:42
-msgid "``text`` column name to be retrived."
-msgstr "``text`` nombre de la columna que va a extraerse"
-
-# e495d55a75424870ba29867eb248cf4d
-#: ../../../src/common/doc/utilities/get_column_name.rst:44
-msgid "Returns"
-msgstr "Regresa"
-
-# c1394725601143b081216fe27794fbe6
-#: ../../../src/common/doc/utilities/get_column_name.rst:46
-msgid "``text`` containing the registered name of the column."
-msgstr "``text`` que contiene el nombre registrado de la columna."
-
-# ec0c3eb922f44a818f1724026f43c7da
-#: ../../../src/common/doc/utilities/get_column_name.rst:47
-msgid "``NULL`` when :"
-msgstr "``NULL`` cuando:"
-
-# d3cb598bdcdf4349837225c6e9efa756
-#: ../../../src/common/doc/utilities/get_column_name.rst:49
-msgid "The table “tab” is not found or"
-msgstr "No se encuentra en la tabla \"tab\" "
-
-# 6d27bb1e405343a893db971fe1cee8b7
-#: ../../../src/common/doc/utilities/get_column_name.rst:50
-msgid ""
-"Column “col” is not found in table “tab” in the postgres administration "
-"tables."
-msgstr "La  columna \"Col\" no se encuentra en la tabla \"tab\" en las tablas de la administración de postgres."
-
-# f56b94dfc7574beba7ee2b42199e9c27
-#: ../../../src/common/doc/utilities/get_column_name.rst:53
-msgid "History"
-msgstr "Historia"
-
-# 57eede78e2024b059d7e09968747a720
-#: ../../../src/common/doc/utilities/get_column_name.rst:54
-msgid "New in version 2.0.0"
-msgstr "Nuevo en la versión 2.0.0"
-
-# efbc409d37be4e30a8edf913a4d89664
-#: ../../../src/common/doc/utilities/get_column_name.rst:58
-msgid "Examples"
-msgstr "Ejemplos"
-
-# 741d466c28fb47feb64d7ef7593275e7
-#: ../../../src/common/doc/utilities/get_column_name.rst:76
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "La consulta usa la red de ejemplo  :ref:`sampledata`"
-
-# acb3053630ab458d93853aa31aad9ade
-#: ../../../src/common/doc/utilities/get_column_name.rst:80
-msgid "See Also"
-msgstr "Véase también"
-
-# e54ecee9b6744650b79cb07b0c0274dd
-#: ../../../src/common/doc/utilities/get_column_name.rst:82
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ":ref:`developer` para el diseño del árbol del proyecto."
-
-# 9143b02cdd264a818a9edda19a0e7ce7
-#: ../../../src/common/doc/utilities/get_column_name.rst:83
-msgid ""
-":ref:`pgr_is_column_in_table` to check only for the existance of the column."
-msgstr ":ref:`pgr_is_column_in_table` para revisar sólo la existencia de la columna."
-
-# 11630fb324eb4a80bdfffb972707478d
-#: ../../../src/common/doc/utilities/get_column_name.rst:84
-msgid ""
-":ref:`pgr_get_table_name` to retrieve the name of the table as is stored in "
-"the postgres administration tables."
-msgstr ":ref:`pgr_get_table_name` para recuperar el nombre de la tabla que se almacena en las tablas de la administración de postgres."
diff --git a/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/get_table_name.po b/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/get_table_name.po
deleted file mode 100644
index 4c67970..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/get_table_name.po
+++ /dev/null
@@ -1,152 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 16:06+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 95f0c2d0bb88448c8b72400e83c9f6f4
-#: ../../../src/common/doc/utilities/get_table_name.rst:13
-msgid "pgr_getTableName"
-msgstr "pgr_getTableName"
-
-# 68a49ae29d0e4036bda025f169e4f3f7
-#: ../../../src/common/doc/utilities/get_table_name.rst:20
-msgid "Name"
-msgstr "Nombre"
-
-# 8f9480f595c9426f945620d8b5977b86
-#: ../../../src/common/doc/utilities/get_table_name.rst:22
-msgid ""
-"``pgr_getTableName`` — Retrieves the name of the column as is stored in the "
-"postgres administration tables."
-msgstr "``pgr_getTableName`` — recupera el nombre de la columna tal cual se almacena en las tablas de la administración de postgres."
-
-# c06c3bd3649a4e27af6f710e189ea071
-#: ../../../src/common/doc/utilities/get_table_name.rst:24
-msgid "This function is intended for the developer’s aid."
-msgstr "Esta función es para ayudar a los desarrolladores"
-
-# 3285b01b587a4aac94ab9ee03a474ef7
-#: ../../../src/common/doc/utilities/get_table_name.rst:27
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# ecd7065df5e047ef8415f13acf653201
-#: ../../../src/common/doc/utilities/get_table_name.rst:29
-msgid ""
-"Returns a record containing the registered names of the table and of the "
-"schema it belongs to."
-msgstr "Devuelve un registro que contiene los nombres registrados de la tabla y del esquema al que pertenece."
-
-# 9912cc30113340efa3e5e3ac408d3a3c
-#: ../../../src/common/doc/utilities/get_table_name.rst:37
-msgid "Description"
-msgstr "Descripción"
-
-# 787a57d13f8a48a289b545e5c5fc50d5
-#: ../../../src/common/doc/utilities/get_table_name.rst:39
-msgid "Parameters"
-msgstr "Parámetros"
-
-# 3c523e72ddd74a10b3defc135e0a1fa1
-#: ../../../src/common/doc/utilities/get_table_name.rst:41
-msgid "``text`` table name with or without schema component."
-msgstr "``text`` nombre de la tabla con o sin componente de esquema"
-
-# bc51a86638e44b1b8d435a7fcec971e1
-#: ../../../src/common/doc/utilities/get_table_name.rst:43
-msgid "Returns"
-msgstr "Regresa"
-
-# a3da192f153341e484e7a1c973e77570
-#: ../../../src/common/doc/utilities/get_table_name.rst:47
-msgid "``text`` containing the registered name of the schema of table \"tab\"."
-msgstr "``text`` que contiene el nombre registrado del esquema de la tabla \"tab\"."
-
-# 77471087a83049e4924411216422cd8f
-#: ../../../src/common/doc/utilities/get_table_name.rst:49
-msgid "when the schema was not provided in \"tab\" the current schema is used."
-msgstr "cuando el esquema no proporciono en \"tab\", se usa el esquema actual."
-
-# f253b42e28a3413abcbeebd5a25fbb53
-# a25f490ebce344728e53d37057ded897
-#: ../../../src/common/doc/utilities/get_table_name.rst:51
-#: ../../../src/common/doc/utilities/get_table_name.rst:58
-msgid "``NULL`` when :"
-msgstr "``NULL`` cuando:"
-
-# ab062cff517a43b6b5a40e1090073265
-# 49a4ab8abced47adaf11ea7b321f06b9
-#: ../../../src/common/doc/utilities/get_table_name.rst:53
-#: ../../../src/common/doc/utilities/get_table_name.rst:60
-msgid "The schema is not found in the postgres administration tables."
-msgstr "El esquema no se encuentróen las tablas de la administración de postgres."
-
-# 19d2a93e6d45419d89974c286d1347f3
-#: ../../../src/common/doc/utilities/get_table_name.rst:57
-msgid "``text`` containing the registered name of the table \"tab\"."
-msgstr "``text`` que contiene el nombre registrado de la tabla \"tab\"."
-
-# 7c7d80132bbc4693a79fbb1bb32a804d
-#: ../../../src/common/doc/utilities/get_table_name.rst:61
-msgid ""
-"The table \"tab\" is not registered under the schema ``sname`` in the "
-"postgres administration tables"
-msgstr "La tabla \"tab\" no está registrada bajo el esquema de ``sname``  en las tablas de la administración de postgres"
-
-# fe048e6d68984dfb9e8d91f72f99f65a
-#: ../../../src/common/doc/utilities/get_table_name.rst:65
-msgid "History"
-msgstr "Historia"
-
-# 0ac3887a0f0642ca8bf6c6fa12f497bb
-#: ../../../src/common/doc/utilities/get_table_name.rst:66
-msgid "New in version 2.0.0"
-msgstr "Nuevo en la versión 2.0.0"
-
-# fbd75b0146ff4f9595156794c4ebd6fd
-#: ../../../src/common/doc/utilities/get_table_name.rst:70
-msgid "Examples"
-msgstr "Ejemplos"
-
-# 3792394a3a344c4493db40c2d04b5e2d
-#: ../../../src/common/doc/utilities/get_table_name.rst:95
-msgid "The examples use the :ref:`sampledata` network."
-msgstr "Los ejemplos utilizan el: ref: 'sampledata'."
-
-# 10229dc5fd6545bdb875c9885f090618
-#: ../../../src/common/doc/utilities/get_table_name.rst:99
-msgid "See Also"
-msgstr "Véase también"
-
-# c24e1b3593b44343b2e4c86e06b4cbb2
-#: ../../../src/common/doc/utilities/get_table_name.rst:101
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ":ref:`developer` para el diseño del árbol del proyecto."
-
-# 830f93a843b145ebb35db5cf5de99e00
-#: ../../../src/common/doc/utilities/get_table_name.rst:102
-msgid ""
-":ref:`pgr_is_column_in_table` to check only for the existance of the column."
-msgstr ":ref:`pgr_is_column_in_table` para revisar sólo la existencia de la columna."
-
-# e731438ed94a48a0b26ea5223b564393
-#: ../../../src/common/doc/utilities/get_table_name.rst:103
-msgid ""
-":ref:`pgr_get_table_name` to retrieve the name of the table as is stored in "
-"the postgres administration tables."
-msgstr ":ref:`pgr_get_table_name` para recuperar el nombre de la tabla que se almacena en las tablas de la administración de postgres."
diff --git a/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/index.po b/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/index.po
deleted file mode 100644
index a8ac0a6..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/index.po
+++ /dev/null
@@ -1,90 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (187a022 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-23 15:04\n"
-"PO-Revision-Date: 2013-09-23 20:40+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# e262455eaf304db884c939d3a27905d7
-#: ../../../src/common/doc/utilities/index.rst:13
-msgid "Developers's Functions"
-msgstr "Funciones para Desarrolladores"
-
-# 6ebf2b3b104d4fababace44710277924
-#: ../../../src/common/doc/utilities/index.rst:15
-msgid "Functions to help you develop a wrapper or a recipe"
-msgstr "Funciones para ayudarle a desarrollar un contenedor o una receta"
-
-# 0be37c4f2fa144fbb3b4a976a946317a
-#: ../../../src/common/doc/utilities/index.rst:17
-msgid ""
-":ref:`pgr_get_column_name` - to get the name of the column as is stored in "
-"the postgres administration tables."
-msgstr ":ref:`pgr_get_column_name`  para obtener el nombre de la columna como se almacena en las tablas de la administración de postgres."
-
-# 9f513d4551d54509ac679e98aff1a731
-#: ../../../src/common/doc/utilities/index.rst:18
-msgid ""
-":ref:`pgr_get_table_name` - to retrieve the name of the table as is stored "
-"in the postgres administration tables."
-msgstr ":ref:`pgr_get_table_name` para obtener el nombre de la tabla tal cual se almacena en las tablas de la administración de postgres."
-
-# 20e81f559b1f4f56af56463e06b47d70
-#: ../../../src/common/doc/utilities/index.rst:19
-msgid ":ref:`pgr_is_column_indexed` - to check if the column is indexed."
-msgstr ":ref:`pgr_is_column_indexed` para comprobar si la columna está indexada."
-
-# d82d4278e4b14798898589b62a07a6fd
-#: ../../../src/common/doc/utilities/index.rst:20
-msgid ""
-":ref:`pgr_is_column_in_table` - to check only for the existance of the "
-"column."
-msgstr ":ref:`pgr_is_column_in_table` para revisar sólo la existencia de la columna."
-
-# 166c0d8f61a54958932722413c5c1a96
-#: ../../../src/common/doc/utilities/index.rst:21
-msgid ""
-":ref:`pgr_point_to_id` -to insert/get the id of the inserted point in a "
-"vertices table."
-msgstr ":ref:`pgr_point_to_id` - para insertar o conseguir la identificación del punto insertado en una tabla de vértices."
-
-# 81426148e40b4e9fa21b940bb818b523
-#: ../../../src/common/doc/utilities/index.rst:22
-msgid ""
-":ref:`pgr_quote_ident` - to quotes the input text to be used as an "
-"identifier in an SQL statement string."
-msgstr ":ref:`pgr_quote_ident` - pone entre comillas el texto de entrada para ser utilizado como un identificador en una cadena de instrucción SQL."
-
-# d41e3a55240246999890d539bc866a4f
-#: ../../../src/common/doc/utilities/index.rst:23
-msgid ":ref:`pgr_version` - to get pgRouting's version information."
-msgstr ":ref:`pgr_version` para obtener la versión actual de pgRouting."
-
-# 3d10df2242a348afb70157ab2869b42e
-#: ../../../src/common/doc/utilities/index.rst:24
-msgid ":ref:`pgr_versionless` - to compare two version numbers."
-msgstr ":ref:`pgr_versionless` - para comparar dos números de versión."
-
-# 86e6bdd38ba14caeaee7bfeb51f3f7a5
-#: ../../../src/common/doc/utilities/index.rst:25
-msgid ""
-":ref:`pgr_start_point` - to get the start point of a (multi)linestring."
-msgstr ":ref:`pgr_start_Point` para obtener el punto inicial de un (multi)linestring."
-
-# 46480bc0b18a481e99a6913018d07218
-#: ../../../src/common/doc/utilities/index.rst:26
-msgid ":ref:`pgr_end_point` - to get the end point of a (multi)linestring."
-msgstr ":ref:`pgr_end_Point` para obtener el punto final de un (multi)linestring."
diff --git a/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/is_column_in_table.po b/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/is_column_in_table.po
deleted file mode 100644
index d95d4e7..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/is_column_in_table.po
+++ /dev/null
@@ -1,138 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 16:02+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# f6500f30614b461f90b682890f3c3192
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:13
-msgid "pgr_isColumnInTable"
-msgstr "pgr_isColumnInTable"
-
-# 7a4ec9b1b3514801a079916c0000371b
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:20
-msgid "Name"
-msgstr "Nombre"
-
-# 90dd01a206e24dbf9f73f90924c0615b
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:22
-msgid "``pgr_isColumnInTable`` — Check if a column is in the table."
-msgstr "``pgr_isColumnInTable`` — Verifica si existe un campo de una tabla."
-
-# 0d927909521c4f638c543baff8ebd318
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:24
-msgid "This function is intended for the developer’s aid."
-msgstr "Esta función es para ayudar a los desarrolladores"
-
-# b52fa51d192444e0a61674ede982a3e5
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:27
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# ea409e6a176b489aa7f326229d178d13
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:29
-msgid "Returns ``true`` when the column “col” is in table “tab”."
-msgstr "Devuelve ``true`` cuando la columna \"col\" en tabla \"tab\"."
-
-# f5b2b429515a474892b7bddaebd7fa87
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:37
-msgid "Description"
-msgstr "Descripción"
-
-# a513395f631244f18df21c3b85ea7820
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:39
-msgid "``text`` Table name with or without schema component."
-msgstr "``text`` nombre de la tabla con o sin componente de esquema"
-
-# df577648959b4e0daab9d343543d3501
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:40
-msgid "``text`` Column name to be checked for."
-msgstr "``text`` nombre de la columna que va a comprobarse"
-
-# faa09fc52bc54a0f9fe811ff099aa562
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:42
-msgid "Returns:"
-msgstr "Regresa:"
-
-# 67ed5e9b40764fa1be45f8936680f526
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:44
-msgid "``true`` when the column “col” is in table “tab”."
-msgstr "``true`` cuando la columna \"col\" está en la tabla \"tab\"."
-
-# fc38c243b9154c03833b5c9acd63804e
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:45
-msgid "``false`` when:"
-msgstr "``false`` cuando:"
-
-# fb6952dd480644c78db65cfbc109f967
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:47
-msgid "The table \"tab\" is not found or"
-msgstr "La tabla \"tab\" no es encontrada"
-
-# e701055cfb574ccd800767d4d4555d02
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:48
-msgid "Column “col” is not found in table “tab”"
-msgstr "La  columna \"Col\" no se encuentra en la tabla \"tab\"."
-
-# be793f469b524522a2331a60fb6d7bac
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:51
-msgid "History"
-msgstr "Historia"
-
-# 03a9d21bed654a438312a5a6d45fcf17
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:52
-msgid "New in version 2.0.0"
-msgstr "Nuevo en la versión 2.0.0"
-
-# 1691f75cb0674d2d83b0bebe24105a6d
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:56
-msgid "Examples"
-msgstr "Ejemplos"
-
-# c8d317a25f554ec6b9af54b1f7ae6c26
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:76
-msgid "The example use the :ref:`sampledata` network."
-msgstr "Las consultas usan la red de ejemplo  :ref:`sampledata`"
-
-# 24c87607bf1b4b23bb01e403b16e856f
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:80
-msgid "See Also"
-msgstr "Véase también"
-
-# b3efbf8b34fd415bbfc31810cc19b9dc
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:82
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ":ref:`developer` para el diseño del árbol del proyecto."
-
-# 53d890d3132e4c7d94e0675093e6c146
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:83
-msgid ":ref:`pgr_is_column_indexed` to check if the column is indexed."
-msgstr ":ref:`pgr_is_column_indexed` para comprobar si la columna está indexada."
-
-# 5324fa01310a4c509d7ce91c088865e9
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:84
-msgid ""
-":ref:`pgr_get_column_name` to get the name of the column as is stored in the"
-" postgres administration tables."
-msgstr ":ref:`pgr_get_column_name`  para obtener el nombre de la columna como se almacena en las tablas de la administración de postgres."
-
-# d97c057248844396aaa96cacbfcbc034
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:85
-msgid ""
-":ref:`pgr_get_table_name` to get the name of the table as is stored in the "
-"postgres administration tables."
-msgstr ":ref:`pgr_get_table_name` para obtener el nombre de la tabla tal cual se almacena en las tablas de la administración de postgres."
diff --git a/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/is_column_indexed.po b/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/is_column_indexed.po
deleted file mode 100644
index 69386ca..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/is_column_indexed.po
+++ /dev/null
@@ -1,145 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 16:12+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# d13f67c428de40999845a53a259a0896
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:13
-msgid "pgr_isColumnIndexed"
-msgstr "pgr_isColumnIndexed"
-
-# 8c9da63e8a0e4da4aa092b82eced03c0
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:20
-msgid "Name"
-msgstr "Nombre"
-
-# cdfe958887b74d69a5d69a8c3b76f35d
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:22
-msgid "``pgr_isColumnIndexed`` — Check if a column in a table is indexed."
-msgstr "``pgr_isColumnIndexed`` — Comprobar si una columna de una tabla es indexada."
-
-# 16efc5cad4b0458aa30f27dcc834fb0b
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:24
-msgid "This function is intended for the developer’s aid."
-msgstr "Esta función es para ayudar a los desarrolladores"
-
-# 1611a88987e54ab8a15606f82d4c6098
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:27
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# 004725222faa47fd971e321be44816e6
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:29
-msgid "Returns ``true`` when the column “col” in table “tab” is indexed."
-msgstr "Devuelve ``true`` cuando la columna \"col\" en tabla \"tab\" está indexada."
-
-# 3389fb7dd377428cbf442296f0032a6a
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:37
-msgid "Description"
-msgstr "Descripción"
-
-# cfb294e6535c4b0d91975ec3cb1c8985
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:39
-msgid "``text`` Table name with or without schema component."
-msgstr "``text`` nombre de la tabla con o sin componente de esquema"
-
-# 4cb8e78e50fb4ecbb15f141bb496040d
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:40
-msgid "``text`` Column name to be checked for."
-msgstr "``text`` nombre de la columna que va a comprobarse"
-
-# a0f63aba19d0494b9cdcc5c7a61aebdb
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:42
-msgid "Returns:"
-msgstr "Regresa:"
-
-# 66eed092853a47f9a7f69aa1fedbc666
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:44
-msgid "``true`` when the column “col” in table “tab” is indexed."
-msgstr "``true`` cuando la columna \"col\" en la tabla \"tab\" está indexada."
-
-# dbb567f94e994beaac90ea65cc8a324e
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:45
-msgid "``false`` when:"
-msgstr "``false`` cuando:"
-
-# f45a928140f24c299053e944f5550b7e
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:47
-msgid "The table \"tab\" is not found or"
-msgstr "La tabla \"tab\" no es encontrada"
-
-# c949dec2746e48459f93287f24a1334a
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:48
-msgid "Column “col” is not found in table “tab” or"
-msgstr "La  columna \"Col\" no se encuentra en la tabla \"tab\"."
-
-# b2fd725d67df46b98d8ca3eddde9d1b5
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:49
-msgid "Column \"col\" in table \"tab\" is not indexed"
-msgstr "Columna \"col\" en tabla \"tan\" no está indexada"
-
-# fe7b50380e1246599dd0b8abbac9a394
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:52
-msgid "History"
-msgstr "Historia"
-
-# 2949ff82708f44db903c9e175d8fd484
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:53
-msgid "New in version 2.0.0"
-msgstr "Nuevo en la versión 2.0.0"
-
-# c19a7c36df38472bb330eafac37c34d3
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:57
-msgid "Examples"
-msgstr "Ejemplos"
-
-# 9484e0bc1f1942da88f6261afd689f40
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:77
-msgid "The example use the :ref:`sampledata` network."
-msgstr "Las consultas usan la red de ejemplo  :ref:`sampledata`"
-
-# ba4b525f9ced43898aab4410c804208b
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:81
-msgid "See Also"
-msgstr "Véase también"
-
-# 76c91def69da43539042f05a15240e67
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:83
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ":ref:`developer` para el diseño del árbol del proyecto."
-
-# 10267ea719b141b7a9e7712543121d34
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:84
-msgid ""
-":ref:`pgr_is_column_in_table` to check only for the existance of the column "
-"in the table."
-msgstr ":ref:`pgr_is_column_in_table` para revisar sólo la existencia de la columna."
-
-# 4e5e6df51cf149cd9e79ef3459273a4b
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:85
-msgid ""
-":ref:`pgr_get_column_name` to get the name of the column as is stored in the"
-" postgres administration tables."
-msgstr ":ref:`pgr_get_column_name`  para obtener el nombre de la columna como se almacena en las tablas de la administración de postgres."
-
-# 2cda9c32c4ec4117914b3e51f125c1df
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:86
-msgid ""
-":ref:`pgr_get_table_name` to get the name of the table as is stored in the "
-"postgres administration tables."
-msgstr ":ref:`pgr_get_table_name` para obtener el nombre de la tabla tal cual se almacena en las tablas de la administración de postgres."
diff --git a/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/point_to_id.po b/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/point_to_id.po
deleted file mode 100644
index 3dc4539..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/point_to_id.po
+++ /dev/null
@@ -1,145 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-23 15:32+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 94641dca24af4c0dba2fbeed97300d22
-#: ../../../src/common/doc/utilities/point_to_id.rst:13
-msgid "pgr_pointToId"
-msgstr "pgr_pointToId"
-
-# 56e635560a6d4492ae86100badf0e086
-#: ../../../src/common/doc/utilities/point_to_id.rst:20
-msgid "Name"
-msgstr "Nombre"
-
-# 81cc9d306cd54f46b4d517216a806eb7
-#: ../../../src/common/doc/utilities/point_to_id.rst:22
-msgid ""
-"``pgr_pointToId`` — Inserts a point into a vertices table and returns the "
-"corresponig id."
-msgstr "``pgr_pointToId`` — inserta un punto en una tabla de vértices y devuelve el id de correspondiente."
-
-# f6b714528cf7426dbeb9245b9719427c
-#: ../../../src/common/doc/utilities/point_to_id.rst:26
-msgid ""
-"This function is intended for the developer's aid. Use "
-":ref:`pgr_createTopology <pgr_create_topology>` or "
-":ref:`pgr_createVerticesTable <pgr_create_vert_table>` instead."
-msgstr "Esta función está diseñada para la ayuda de los desarrolladores. Usar `pgr_createTopology <pgr_create_topology>` o :ref:`pgr_createVerticesTable <pgr_create_vert_table>` en su lugar."
-
-# ba51b8bd879447188b15521bc44768c2
-#: ../../../src/common/doc/utilities/point_to_id.rst:30
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# 426a196654d64ba99aa86b9e3eb47996
-#: ../../../src/common/doc/utilities/point_to_id.rst:32
-msgid ""
-"This function returns the ``id`` of the row in the vertices table that "
-"corresponds to the ``point`` geometry"
-msgstr "Esta función devuelve el``id`` de la fila de la tabla de vértices que corresponde a la geometría  ``point``"
-
-# ad82864ab2bc436bb940d9dbb4bb7e28
-#: ../../../src/common/doc/utilities/point_to_id.rst:40
-msgid "Description"
-msgstr "Descripción"
-
-# 6f0b7969c38c4b60a652b8c56e860cb5
-#: ../../../src/common/doc/utilities/point_to_id.rst:42
-msgid "``geometry`` \"POINT\" geometry to be inserted."
-msgstr "``geometry`` geometría \"POINT\" que se insertará."
-
-# 972b42f5a56a456584ffe992d2c9f597
-#: ../../../src/common/doc/utilities/point_to_id.rst:43
-msgid ""
-"``float8`` Snapping tolerance of disconnected edges. (in projection unit)"
-msgstr "``float8`` ajuste tolerancia de bordes desconectados. (en la unidad de proyección)"
-
-# 8026350c7b7b4ab9bb8a4d01a5398e92
-#: ../../../src/common/doc/utilities/point_to_id.rst:44
-msgid "``text`` Vertices table name WITH schema included."
-msgstr "``text`` nombre de la tabla CON componente de esquema"
-
-# fdb31c3aac0442fd9a79fd2e3cec8567
-#: ../../../src/common/doc/utilities/point_to_id.rst:45
-msgid "``integer`` SRID of the geometry point."
-msgstr "``integer`` SRID del punto de la geometría."
-
-# 1cb7d86e4eb54c46b998f27b7d883269
-#: ../../../src/common/doc/utilities/point_to_id.rst:47
-msgid ""
-"This function returns the id of the row that corresponds to the ``point`` "
-"geometry"
-msgstr "Esta función devuelve el id de la fila que corresponde a la geometría ``point`` "
-
-# 6444a2e3a1eb4ec1b9e456bd7d566ec3
-#: ../../../src/common/doc/utilities/point_to_id.rst:49
-msgid ""
-"When the ``point`` geometry already exists in the vertices table "
-"``vertname``, it returns the corresponing ``id``."
-msgstr "Cuando la geometría ``point`` ya existe en la tabla de vértices ``vertname``, devuelve el ``id`` corredpondiente."
-
-# f348861666b446b8b94833b19fc43b3a
-#: ../../../src/common/doc/utilities/point_to_id.rst:50
-msgid ""
-"When the ``point`` geometry is not found in the vertices table ``vertname``,"
-" the funcion inserts the ``point`` and returns the corresponing ``id`` of "
-"the newly created vertex."
-msgstr "Cuando la geometría ``point`` no se encuentra en la tabla de vértices ``vertname``, la función inserta el ``point`` y devuelve el correspondiente ``id`` del vértice recién creado."
-
-# bbc93993a9494838bb777feb3c966b2b
-#: ../../../src/common/doc/utilities/point_to_id.rst:52
-msgid ""
-"The function do not perform any checking of the parameters. Any validation "
-"has to be done before calling this function."
-msgstr "La función no realiza ninguna comprobación de los parámetros. Cualquier validación debe hacerse antes de llamar a esta función."
-
-# feb893694fe44a30b39b6671d6603125
-#: ../../../src/common/doc/utilities/point_to_id.rst:55
-msgid "History"
-msgstr "Historia"
-
-# ac4bb20cbeeb49e8a95d92ca52981979
-#: ../../../src/common/doc/utilities/point_to_id.rst:56
-msgid "Renamed in version 2.0.0"
-msgstr "Renombrado en la versión 2.0.0"
-
-# f159557b0fd44238a8114795dbd499e6
-#: ../../../src/common/doc/utilities/point_to_id.rst:60
-msgid "See Also"
-msgstr "Véase también"
-
-# 44d7d6a102634aaab89b81a21117e3b4
-#: ../../../src/common/doc/utilities/point_to_id.rst:62
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ":ref:`developer` para el diseño del árbol del proyecto."
-
-# 34d3f5b67bd04eef9a27bb0f9058f7a0
-#: ../../../src/common/doc/utilities/point_to_id.rst:63
-msgid ""
-":ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create a topology "
-"based on the geometry."
-msgstr ":ref:`pgr_createVerticesTable <pgr_create_vert_table>` para reconstruir la tabla de vértices basándose en la información de origen y de destino."
-
-# 6efeb93fdd6f461b95ba6fa218148c75
-#: ../../../src/common/doc/utilities/point_to_id.rst:64
-msgid ""
-":ref:`pgr_createTopology <pgr_create_topology>` to create a topology based "
-"on the geometry."
-msgstr ":ref:`pgr_createTopology <pgr_create_topology>` — Construye una topología de red basada en la información de geometría."
diff --git a/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/quote_ident.po b/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/quote_ident.po
deleted file mode 100644
index 098654f..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/quote_ident.po
+++ /dev/null
@@ -1,136 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 16:27+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# ad4f702fd7ab40f587534a31a99d703a
-#: ../../../src/common/doc/utilities/quote_ident.rst:13
-msgid "pgr_quote_ident"
-msgstr "pgr_quote_ident"
-
-# a05a481e84424fde848925bc9df67822
-#: ../../../src/common/doc/utilities/quote_ident.rst:20
-msgid "Name"
-msgstr "Nombre"
-
-# 2c0d5a39de7d48a894991413895eeb1d
-#: ../../../src/common/doc/utilities/quote_ident.rst:22
-msgid ""
-"``pgr_quote_ident`` — Quotes the input text to be used as an identifier in "
-"an SQL statement string."
-msgstr "``pgr_quote_ident`` — Pone entre comillas el texto de entrada para ser utilizado como un identificador en una instrucción SQL."
-
-# 81be5b43d83b4f259a8627fdbd918321
-#: ../../../src/common/doc/utilities/quote_ident.rst:24
-msgid "This function is intended for the developer's aid."
-msgstr "Esta función es para ayudar a los desarrolladores"
-
-# 9a208d9638b343d49e208a250552bf58
-#: ../../../src/common/doc/utilities/quote_ident.rst:28
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# 20357172c5b74450a1dd908f249e1c22
-#: ../../../src/common/doc/utilities/quote_ident.rst:30
-msgid ""
-"Returns the given identifier ``idname`` suitably quoted to be used as an "
-"identifier in an SQL statement string."
-msgstr "Devuelve el identificador ``idname`` dado con las comillas adeciadas para ser utilizado como un identificador en una cadena de instrucción SQL."
-
-# ec0d7e517b52424e83e0a39e700f6ded
-#: ../../../src/common/doc/utilities/quote_ident.rst:38
-msgid "Description"
-msgstr "Descripción"
-
-# 0333bd56b4d146478a759f9bec187900
-#: ../../../src/common/doc/utilities/quote_ident.rst:41
-msgid "Parameters"
-msgstr "Parámetros"
-
-# 24fafacf2e084c8ebd35cc820529ddf1
-#: ../../../src/common/doc/utilities/quote_ident.rst:42
-msgid ""
-"``text`` Name of an SQL identifier. Can include ``.`` dot notation for "
-"schemas.table identifiers"
-msgstr "``text`` Nombre de un identificador SQL. Puede incluir  notación de puntos para ``.`` para identificadores de esquema.tabla"
-
-# 43a32f6d513f42dda64a31f538a7cb0b
-#: ../../../src/common/doc/utilities/quote_ident.rst:44
-msgid ""
-"Returns the given string suitably quoted to be used as an identifier in an "
-"SQL statement string."
-msgstr "Devuelve la cadena con las comillas adecuadas para ser utilizada como un identificador en una de instrucción SQL."
-
-# d4e0873a14da42f5b4ca3f89505e8335
-#: ../../../src/common/doc/utilities/quote_ident.rst:46
-msgid ""
-"When the identifier ``idname`` contains on or more ``.`` separators, each "
-"component is suitably quoted to be used in an SQL string."
-msgstr "Cuando el identificador``idname`` contiene en o más separadores ``.``, cada componente se le pone las comillas necesarias para ser utilizado en una cadena SQL."
-
-# 1842d74622194549bf87e0e37e8220c8
-#: ../../../src/common/doc/utilities/quote_ident.rst:50
-msgid "History"
-msgstr "Historia"
-
-# 3e97c734ccfc46efaedb156bfd028772
-#: ../../../src/common/doc/utilities/quote_ident.rst:51
-msgid "New in version 2.0.0"
-msgstr "Nuevo en la versión 2.0.0"
-
-# 4c8ad273e78c414ca99c84a290acff83
-#: ../../../src/common/doc/utilities/quote_ident.rst:55
-msgid "Examples"
-msgstr "Ejemplos"
-
-# c27e93edd7144c1986103e042e5b991c
-#: ../../../src/common/doc/utilities/quote_ident.rst:57
-msgid "Everything is lower case so nothing needs to be quoted."
-msgstr "Todo está en minúscula así nada necesita estar entre comillas."
-
-# 275c25d761794895a7a9474bd1622943
-#: ../../../src/common/doc/utilities/quote_ident.rst:76
-msgid "The column is upper case so its double quoted."
-msgstr "La columna está con mayúsculas así que se le ponen las comillas."
-
-# 7fc7d47e83624683a58343f8b5935b6f
-#: ../../../src/common/doc/utilities/quote_ident.rst:95
-msgid "The schema name has a capital letter so its double quoted."
-msgstr "El nombre del esquema tiene una letra mayúscula así se le ponen las comillas."
-
-# 68aa84ac853546419c541739eee038e6
-#: ../../../src/common/doc/utilities/quote_ident.rst:106
-msgid "Ignores extra ``.`` separators."
-msgstr "Ignora separadores ``.`` extras."
-
-# 13976da7e76249c1bbbc10fb34130c59
-#: ../../../src/common/doc/utilities/quote_ident.rst:118
-msgid "See Also"
-msgstr "Véase también"
-
-# 9ca53a95db55462780e7fb68bba70aca
-#: ../../../src/common/doc/utilities/quote_ident.rst:120
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ":ref:`developer` para el diseño del árbol del proyecto."
-
-# fb4b95d8a6d8403497a36238ed980b58
-#: ../../../src/common/doc/utilities/quote_ident.rst:121
-msgid ""
-":ref:`pgr_get_table_name` to get the name of the table as is stored in the "
-"postgres administration tables."
-msgstr ":ref:`pgr_get_table_name` para obtener el nombre de la tabla tal cual se almacena en las tablas de la administración de postgres."
diff --git a/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/start_point.po b/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/start_point.po
deleted file mode 100644
index 9f6014d..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/start_point.po
+++ /dev/null
@@ -1,93 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 16:09+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# a24de4d0526742168dd2c7673d357cfe
-#: ../../../src/common/doc/utilities/start_point.rst:13
-msgid "pgr_startPoint"
-msgstr "pgr_startPoint"
-
-# 2878d80121d3453794e0871f34873592
-#: ../../../src/common/doc/utilities/start_point.rst:20
-msgid "Name"
-msgstr "Nombre"
-
-# ef267d5bd4dc444b9db70d9f4079f505
-#: ../../../src/common/doc/utilities/start_point.rst:22
-msgid ""
-"``pgr_startPoint`` — Returns a start point of a (multi)linestring geometry."
-msgstr "``pgr_startPoint`` — Devuelve un punto de inicio de una geometría (multi)linestring."
-
-# 57c55f6c23fd4dc59ad7f25a4a4e6f90
-#: ../../../src/common/doc/utilities/start_point.rst:24
-msgid "This function is intended for the developer's aid."
-msgstr "Esta función es para ayudar a los desarrolladores"
-
-# 7fb8df5ab251417bba38529aaefd457b
-#: ../../../src/common/doc/utilities/start_point.rst:28
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# 7becd53f47734fbe99a71ba8adef0d07
-# 9345f683e56b40dcb259f1ef2ea5e240
-#: ../../../src/common/doc/utilities/start_point.rst:30
-#: ../../../src/common/doc/utilities/start_point.rst:44
-msgid ""
-"Returns the geometry of the start point of the first LINESTRING of ``geom``."
-msgstr "Devuelve la geometría del punto de inicio del primer LINESTRING de ``geom``."
-
-# f2295bc1e9ef4b08884c65ec18de9744
-#: ../../../src/common/doc/utilities/start_point.rst:38
-msgid "Description"
-msgstr "Descripción"
-
-# fef77a15910b4557bb253c868468c67a
-#: ../../../src/common/doc/utilities/start_point.rst:41
-msgid "Parameters"
-msgstr "Parámetros"
-
-# c938ded08b8743bf9eac1b5d064e0ed0
-#: ../../../src/common/doc/utilities/start_point.rst:42
-msgid "``geometry`` Geometry of a MULTILINESTRING or LINESTRING."
-msgstr "``geometry`` geometría de una MULTILINESTRING o LINESTRING."
-
-# 364eba92da1046889b073b64c9827bdf
-#: ../../../src/common/doc/utilities/start_point.rst:49
-msgid "History"
-msgstr "Historia"
-
-# 62c8d013ab68473c8adda6fbfaf564e9
-#: ../../../src/common/doc/utilities/start_point.rst:50
-msgid "New in version 2.0.0"
-msgstr "Nuevo en la versión 2.0.0"
-
-# 8e8a05a8da734bb5961b296230e53bcb
-#: ../../../src/common/doc/utilities/start_point.rst:55
-msgid "See Also"
-msgstr "Véase también"
-
-# 6026c7e6914a49cab16a616dd0fb6bac
-#: ../../../src/common/doc/utilities/start_point.rst:57
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ":ref:`developer` para el diseño del árbol del proyecto."
-
-# 5b0650667c4b470691f4647d5b73f783
-#: ../../../src/common/doc/utilities/start_point.rst:58
-msgid ":ref:`pgr_end_Point` to get the end point of a (multi)linestring."
-msgstr ":ref:`pgr_end_Point` para obtener el punto final de un (multi)linestring."
diff --git a/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/version.po b/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/version.po
deleted file mode 100644
index 3191cca..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/version.po
+++ /dev/null
@@ -1,114 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-23 15:33+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# cb10fa2694924ce19d909a3e1df513f1
-#: ../../../src/common/doc/utilities/version.rst:13
-msgid "pgr_version"
-msgstr "pgr_version"
-
-# 135f514b10854445bd0cfa9f89f21f86
-#: ../../../src/common/doc/utilities/version.rst:20
-msgid "Name"
-msgstr "Nombre"
-
-# ee914323b4b6411ea5c157325bdfac90
-#: ../../../src/common/doc/utilities/version.rst:22
-msgid "``pgr_version`` — Query for pgRouting version information."
-msgstr "``pgr_version`` — consulta de información sobre la versión de pgRouting."
-
-# 301b5989ecef437b858e054c95827d83
-#: ../../../src/common/doc/utilities/version.rst:26
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# 607aa236b6134901a0871ed5bf518253
-#: ../../../src/common/doc/utilities/version.rst:28
-msgid "Returns a table with pgRouting version information."
-msgstr "Devuelve una tabla con la información sobre la versión de pgRouting."
-
-# 6190754a1b934ee586562b0995c07bc0
-#: ../../../src/common/doc/utilities/version.rst:36
-msgid "Description"
-msgstr "Descripción"
-
-# b85aeaeb021647e59321f2b6c9953333
-#: ../../../src/common/doc/utilities/version.rst:38
-msgid "Returns a table with:"
-msgstr "Devuelve una tabla con:"
-
-# e5a458cace474e8babaaaff2837c160f
-#: ../../../src/common/doc/utilities/version.rst:40
-msgid "``varchar`` pgRouting version"
-msgstr "``varchar`` versión de pgRouting "
-
-# 7f02654b7c3641b5a35c56c47ea63022
-#: ../../../src/common/doc/utilities/version.rst:41
-msgid "``varchar`` Git tag of pgRouting build"
-msgstr "``varchar`` La etiqueta de la construcción en Git de pgRouting"
-
-# c50e77a54d3d4828a5ea0e89182d5f03
-#: ../../../src/common/doc/utilities/version.rst:42
-msgid "``varchar`` Git hash of pgRouting build"
-msgstr "``varchar`` El Hash de la construcción en Git de pgRouting"
-
-# ba32c01940164cfab6dec3df2cb565ed
-#: ../../../src/common/doc/utilities/version.rst:43
-msgid "``varchar`` Git branch of pgRouting build"
-msgstr "``varchar`` La ramificación de la construcción en Git de pgRouting"
-
-# 135e588dcbe144db9a806d3c5b75b88c
-#: ../../../src/common/doc/utilities/version.rst:44
-msgid "``varchar`` Boost version"
-msgstr "``varchar``  versión de Boost"
-
-# 7e0b5fe0384f43648b6ca7dcdd703fd6
-#: ../../../src/common/doc/utilities/version.rst:48
-msgid "History"
-msgstr "Historia"
-
-# 3f8e572f137d472592f2abb0483e3153
-#: ../../../src/common/doc/utilities/version.rst:49
-msgid "New in version 2.0.0"
-msgstr "Nuevo en la versión 2.0.0"
-
-# abdab1e6a00347269b027b2fedd31c15
-#: ../../../src/common/doc/utilities/version.rst:53
-msgid "Examples"
-msgstr "Ejemplos"
-
-# 86be3ecef9da4b22b39cfe8fc3848b92
-#: ../../../src/common/doc/utilities/version.rst:55
-msgid "Query for full version string"
-msgstr "Consulta para la cadena con la información completa de la versión."
-
-# 85c014398a004db5bb9cf5afa9515f32
-#: ../../../src/common/doc/utilities/version.rst:67
-msgid "Query for ``version`` and ``boost`` attribute"
-msgstr "Consulta para los atributos ``version`` y ``boost``"
-
-# e3b6b7e66a8e4b8698f253e26126b8af
-#: ../../../src/common/doc/utilities/version.rst:80
-msgid "See Also"
-msgstr "Véase también"
-
-# 73744f59f3494c4e827095b7f6ca9503
-#: ../../../src/common/doc/utilities/version.rst:82
-msgid ":ref:`pgr_versionless` to compare two version numbers"
-msgstr ":ref:`pgr_versionless` - Comparar dos números de versión"
diff --git a/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/versionless.po b/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/versionless.po
deleted file mode 100644
index d921031..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/common/doc/utilities/versionless.po
+++ /dev/null
@@ -1,96 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 15:42+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 5209a60f43eb4ca889765b2f2855917f
-#: ../../../src/common/doc/utilities/versionless.rst:13
-msgid "pgr_versionless"
-msgstr "pgr_versionless"
-
-# cf214511459c4e01a98c636ee93edf10
-#: ../../../src/common/doc/utilities/versionless.rst:20
-msgid "Name"
-msgstr "Nombre"
-
-# af9f449a91a94497a1a06310c12763cc
-#: ../../../src/common/doc/utilities/versionless.rst:22
-msgid "``pgr_versionless`` — Compare two version numbers."
-msgstr "pgr_versionless - Comparar los números de versión"
-
-# cfa4ec4da8d143e9bb4f33521dc1f6b2
-#: ../../../src/common/doc/utilities/versionless.rst:24
-msgid "This function is intended for the developer’s aid."
-msgstr "Esta función es para ayudar a los desarrolladores"
-
-# 7a40ac52554840c48edaf4e3bc893f86
-#: ../../../src/common/doc/utilities/versionless.rst:27
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# 99a72026827e4e44b1b7e0b9defa52f8
-#: ../../../src/common/doc/utilities/versionless.rst:29
-msgid ""
-"Returns ``true`` if the first version number is smaller than the second "
-"version number. Otherwise returns ``false``."
-msgstr "Devuelve ``true``  si el primer número de versión es más pequeño que el segundo número de la versión. De lo contrario, devuelve ``false``."
-
-# b541ba956f94407fbbfa4f325152d137
-#: ../../../src/common/doc/utilities/versionless.rst:37
-msgid "Description"
-msgstr "Descripción"
-
-# f2b9c579402a4d529bdcf44885b7999e
-#: ../../../src/common/doc/utilities/versionless.rst:39
-msgid "``text`` first version number"
-msgstr "``text`` primer número de versión"
-
-# ff2f3530055d46b39b083a6e013b18f1
-#: ../../../src/common/doc/utilities/versionless.rst:40
-msgid "``text`` second version number"
-msgstr "``text`` segundo número de versión"
-
-# aa0e1cf348454207aba6b1bd4d82ddcd
-#: ../../../src/common/doc/utilities/versionless.rst:44
-msgid "History"
-msgstr "Historia"
-
-# 84d6600a81814c3b87c5e309a80eef62
-#: ../../../src/common/doc/utilities/versionless.rst:45
-msgid "New in version 2.0.0"
-msgstr "Nuevo en la versión 2.0.0"
-
-# 0dbed91f114f41a2a1ccbffbb4886a47
-#: ../../../src/common/doc/utilities/versionless.rst:49
-msgid "Examples"
-msgstr "Ejemplos"
-
-# cd2ca34fb88c4024ac73c6c7076b3de2
-#: ../../../src/common/doc/utilities/versionless.rst:62
-msgid "See Also"
-msgstr "Véase también"
-
-# ac8a4a1b5fd0499e910d1f9c088d0d25
-#: ../../../src/common/doc/utilities/versionless.rst:64
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ":ref:`developer` para el diseño del árbol del proyecto."
-
-# f733092d16de4d7b9bdf31b6bdae27d3
-#: ../../../src/common/doc/utilities/versionless.rst:65
-msgid ":ref:`pgr_version` to get the current version of pgRouting."
-msgstr ":ref:`pgr_version` para obtener la versión actual de pgRouting."
diff --git a/doc/i18n/es/LC_MESSAGES/src/dijkstra/doc/index.po b/doc/i18n/es/LC_MESSAGES/src/dijkstra/doc/index.po
deleted file mode 100644
index bf606aa..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/dijkstra/doc/index.po
+++ /dev/null
@@ -1,183 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-21 17:09+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# a6876a00bcae42fdb134f789dabd19d7
-#: ../../../src/dijkstra/doc/index.rst:13
-msgid "pgr_dijkstra - Shortest Path Dijkstra"
-msgstr "pgr_dijkstra - Camino más corto de Dijkstra"
-
-# 5ba32c2871ea4858b8bfd351b4a01f34
-#: ../../../src/dijkstra/doc/index.rst:20
-msgid "Name"
-msgstr "Nombre"
-
-# eb4931f6253f4daea164710031c062f7
-#: ../../../src/dijkstra/doc/index.rst:22
-msgid "``pgr_dijkstra`` — Returns the shortest path using Dijkstra algorithm."
-msgstr "``pgr_dijkstra`` — Devuelve el Camino más corto usando el algoritmo de Dijkstra"
-
-# aad22c43d6da4f658543ad79e2b4789c
-#: ../../../src/dijkstra/doc/index.rst:26
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# d23c857c49554c10a6c99810575627e1
-#: ../../../src/dijkstra/doc/index.rst:28
-msgid ""
-"Dijkstra's algorithm, conceived by Dutch computer scientist Edsger Dijkstra "
-"in 1956. It is a graph search algorithm that solves the single-source "
-"shortest path problem for a graph with non-negative edge path costs, "
-"producing a shortest path tree. Returns a set of :ref:`pgr_costResult "
-"<type_cost_result>` (seq, id1, id2, cost) rows, that make up a path."
-msgstr "El algoritmo de Dijkstra, fue concebido por el científico computacional holandés, Edsger Dijkstra en 1956. Se trata de un algoritmo de búsqueda gráfica que resuelve el problema del camino más corto de una sola fuente  con  costos no negativos, generando un árbol de ruta más corta. Devuelve un conjunto de   registros  :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost)  que conforman un recorrido."
-
-# 9b3ef7764a8a4aec8be3fd97d0f78855
-#: ../../../src/dijkstra/doc/index.rst:37
-msgid "Description"
-msgstr "Descripción"
-
-# 8f12864ae55a48e6a49e9a5c7f232731
-#: ../../../src/dijkstra/doc/index.rst:39
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr "Consulta SQL, que debe proporcionar un conjunto de registros con los siguientes campos:"
-
-# 883dbba5f5b94668af12a1c3d280804f
-#: ../../../src/dijkstra/doc/index.rst:46
-msgid "``int4`` identifier of the edge"
-msgstr "``int4`` identificador del borde"
-
-# 64eaa5363cc64362829f60de0f81517d
-#: ../../../src/dijkstra/doc/index.rst:47
-msgid "``int4`` identifier of the source vertex"
-msgstr "``int4`` Identificador del vértice inicial del borde"
-
-# 849ed774dfa442cf86f3d184c820a717
-#: ../../../src/dijkstra/doc/index.rst:48
-msgid "``int4`` identifier of the target vertex"
-msgstr "``int4`` Identificador del vértice final del borde"
-
-# 2c000dd6564240d09f3533f4b2411029
-#: ../../../src/dijkstra/doc/index.rst:49
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr "``float8``  valor del costo del recorrido sobre el borde. Un costo negativo evitará que el borde sea insertado en el gráfico."
-
-# 13bbd212a94840bbbdd82ba008836790
-#: ../../../src/dijkstra/doc/index.rst:50
-msgid ""
-"``float8`` (optional) the cost for the reverse traversal of the edge. This "
-"is only used when the ``directed`` and ``has_rcost`` parameters are ``true``"
-" (see the above remark about negative costs)."
-msgstr "``float8`` (opcional) el costo para el recorrido inverso del borde. Sólo se usa cuando los parámetros de ``directed`` y ``has_rcost`` son ``true`` (véase el comentario anterior sobre costos negativos)."
-
-# 42be1660a80b461ba4e56f070cde4c04
-#: ../../../src/dijkstra/doc/index.rst:52
-msgid "``int4`` id of the start point"
-msgstr "``int4`` identificador del punto de partida"
-
-# 95547c9e5de74556a208d7c0a9e58772
-#: ../../../src/dijkstra/doc/index.rst:53
-msgid "``int4`` id of the end point"
-msgstr "``int4`` Identificador del punto de llegada"
-
-# 89e9934bdbfd42aabf98993066529f92
-#: ../../../src/dijkstra/doc/index.rst:54
-msgid "``true`` if the graph is directed"
-msgstr "``true`` Si la gráfica es direccional"
-
-# 03f039cd5de34a3f99a5871456ed269f
-#: ../../../src/dijkstra/doc/index.rst:55
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr "Si  es ``True``, el campo ``reverse_cost``  del conjunto de registros generados se utilizan para el calcular el costo de la travesía del borde en la dirección opuesta."
-
-# 2c03ff621dfb4e11a0f215844b6cd41c
-#: ../../../src/dijkstra/doc/index.rst:57
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr "Devuelve un conjunto del tipo de datos :ref:`type_cost_result`:"
-
-# f43f68991432480385556098be3f32ab
-#: ../../../src/dijkstra/doc/index.rst:59
-msgid "row sequence"
-msgstr "Secuencia de registros"
-
-# b5cd0a7c7e1943e2934f2d315fd0d58d
-#: ../../../src/dijkstra/doc/index.rst:60
-msgid "node ID"
-msgstr "Identificador del nodo visitado"
-
-# ae466d86ce304295afc5b1f956c97732
-#: ../../../src/dijkstra/doc/index.rst:61
-msgid "edge ID (``-1`` for the last row)"
-msgstr "Identificador del borde (``-1`` para el último borde)"
-
-# d74ec405ac62479a93ddd9070e1cfead
-#: ../../../src/dijkstra/doc/index.rst:62
-msgid "cost to traverse from ``id1`` using ``id2``"
-msgstr "costo para atravesar desde el nodo ``id1``  usando el borde ``id2`` hasta el otro extremo del borde"
-
-# d45859a53252493eaea97bdbe6c8936f
-#: ../../../src/dijkstra/doc/index.rst:66
-msgid "History"
-msgstr "Historia"
-
-# 41349c9ad4574d009aa7375219beab0c
-#: ../../../src/dijkstra/doc/index.rst:67
-msgid "Renamed in version 2.0.0"
-msgstr "Renombrado en la versión 2.0.0"
-
-# d1ebc8bc726844eab5795b5dedc18fe0
-#: ../../../src/dijkstra/doc/index.rst:71
-msgid "Examples"
-msgstr "Ejemplos"
-
-# 5ea59cfbc4b240c29bc8268d4a36cdb4
-#: ../../../src/dijkstra/doc/index.rst:73
-msgid "Without ``reverse_cost``"
-msgstr "Sin ``reverse_cost``"
-
-# a37bcf6c164b442ca94ded3b2df83f61
-#: ../../../src/dijkstra/doc/index.rst:92
-msgid "With ``reverse_cost``"
-msgstr "Con ``reverse_cost``"
-
-# 1013877e3d214e6f8d87c5747e261b20
-#: ../../../src/dijkstra/doc/index.rst:110
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "Las consultas usan la red de ejemplo  :ref:`sampledata`"
-
-# 7097292ec353427d90c60607583c42c2
-#: ../../../src/dijkstra/doc/index.rst:114
-msgid "See Also"
-msgstr "Véase también"
-
-# d98cbcb325484a81bcb0e6b0afd3928c
-#: ../../../src/dijkstra/doc/index.rst:116
-msgid ":ref:`type_cost_result`"
-msgstr ":ref:`type_cost_result`"
-
-# cc938bae0828409fb0efae9ad098fa4d
-#: ../../../src/dijkstra/doc/index.rst:117
-msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
-msgstr "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
diff --git a/doc/i18n/es/LC_MESSAGES/src/driving_distance/doc/dd_alphashape.po b/doc/i18n/es/LC_MESSAGES/src/driving_distance/doc/dd_alphashape.po
deleted file mode 100644
index 48b087f..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/driving_distance/doc/dd_alphashape.po
+++ /dev/null
@@ -1,142 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-21 18:27+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# cb2e05bbf556427191f8dd5d87c670db
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:13
-msgid "pgr_alphaShape"
-msgstr "pgr_alphaShape"
-
-# cd5cca6682b34a85b72fd0b7c90d739b
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:20
-msgid "Name"
-msgstr "Nombre"
-
-# 9a0ca65720774711aefd2d017e4487e9
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:22
-msgid "``pgr_alphashape`` — Core function for alpha shape computation."
-msgstr "``pgr_alphashape`` — Función central para el cálculo de la forma alfa."
-
-# 525edb2bc28a4e77804ac30781cc3dc5
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:26
-msgid ""
-"This function should not be used directly. Use :ref:`pgr_drivingDistance "
-"<pgr_driving_distance>` instead."
-msgstr "Esta función no debe utilizarse directamente. Usar :ref:`pgr_drivingDistance <pgr_driving_distance>` en su lugar."
-
-# 96d2ea88d3bf44a793219826f7fddda3
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:30
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# 4b5074bd7bc64d1c89dcc1e5b250c5f0
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:32
-msgid ""
-"Returns a table with (x, y) rows that describe the vertices of an alpha "
-"shape."
-msgstr "Devuelve una tabla con registros (x, y)  que describen los vértices de una figura de alfa."
-
-# eed5f82ec9924367b7a2c7ce8ce7704a
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:40
-msgid "Description"
-msgstr "Descripción"
-
-# 3607e16f8fe24de6a2226bb43a73dadd
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:42
-msgid ""
-"``text`` a SQL query, which should return a set of rows with the following "
-"columns:"
-msgstr "``text`` una consulta SQL la cual debe proporcionar un conjunto de registros con los siguientes campos:"
-
-# afd24b1ef69d439691025ff955e63f25
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:48
-msgid "``int4`` identifier of the vertex"
-msgstr "``int4`` Identificador del vértice"
-
-# c4ec83f59d634b458e6e04dc6822cc62
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:49
-msgid "``float8`` x-coordinate"
-msgstr "``float8`` Coordenada x"
-
-# c78115c69ec645ceb3a8de6f3a97ebdc
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:50
-msgid "``float8`` y-coordinate"
-msgstr "``float8`` Coordenada y"
-
-# 63cffe47a71d462cae8c09a10473bdaf
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:53
-msgid "Returns a vertex record for each row :"
-msgstr "Devuelve un registro de vértices para cada fila:"
-
-# 385ec313cc69493989a17eecd282d5b4
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:55
-msgid "x-coordinate"
-msgstr "Coordenada x"
-
-# 2eb9452ee2864540b535c7be538a73f0
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:56
-msgid "y-coordinate"
-msgstr "Coordenada y"
-
-# bf1e04aab9ed4558aeb274dbc93fc476
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:60
-msgid "History"
-msgstr "Historia"
-
-# 6301d43186dc47ca9c0925f563c2b4ee
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:61
-msgid "Renamed in version 2.0.0"
-msgstr "Renombrado en la versión 2.0.0"
-
-# 2dcc599a683743b09eb440895c823584
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:65
-msgid "Examples"
-msgstr "Ejemplos"
-
-# 28059fce0d66461c88851c2efa8995b4
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:66
-msgid ""
-"In the alpha shape code we have no way to control the order of the points so"
-" the actual output you might get could be similar but different. The simple "
-"query is followed by a more complex one that constructs a polygon and "
-"computes the areas of it. This should be the same as the result on your "
-"system. We leave the details of the complex query to the reader as an "
-"exercise if they wish to decompose it into understandable pieces or to just "
-"copy and paste it into a SQL window to run."
-msgstr "En la código para la forma alfa, no hay forma de controlar el orden de los puntos, por lo que el resultado que obtenga puede variar en el orden del lost vertices. En el ejemplo,  la consulta simple es seguida por una más complejoa que construye un polígono y calcula las áreas de él. Este ultimo resultado debe ser el mismo en su sistema. Le dejamos los detalles de la consulta compleja al lector como un ejercicio, si desean descomponerla en pedazos comprensibles o que simplemente c [...]
-
-# cea925c912c14e2bae7b67a9493f67d0
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:119
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "Las consulta usa la red de ejemplo  :ref:`sampledata`"
-
-# b737b880282d447b840b23e77501d03b
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:123
-msgid "See Also"
-msgstr "Véase también"
-
-# 79772e0e113745068a7c48d32ae903ee
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:125
-msgid ":ref:`pgr_driving_distance` - Driving Distance"
-msgstr ":ref:`pgr_driving_distance` - Distancia de conducción"
-
-# 98ad4c5291f04893a9e5a6f616ce2d11
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:126
-msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
-msgstr ":ref:`pgr_points_as_polygon` - Polígono alrededor del conjunto de puntos"
diff --git a/doc/i18n/es/LC_MESSAGES/src/driving_distance/doc/dd_driving_distance.po b/doc/i18n/es/LC_MESSAGES/src/driving_distance/doc/dd_driving_distance.po
deleted file mode 100644
index e44f693..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/driving_distance/doc/dd_driving_distance.po
+++ /dev/null
@@ -1,200 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 15:35+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 49d83b442baa4f9981fa13ff4abc3c6b
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:13
-msgid "pgr_drivingDistance"
-msgstr "pgr_drivingDistance"
-
-# ce7edabbdab546a3a318f86316d0abc6
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:20
-msgid "Name"
-msgstr "Nombre"
-
-# 7a89c6c2c0ca404eb82afe9d6de38db2
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:22
-msgid ""
-"``pgr_drivingDistance`` - Returns the driving distance from a start node."
-msgstr "``pgr_drivingDistance`` - Devuelve la distancia de manejo desde un nodo de inicio."
-
-# 5afa2748d4964e35b9cfcf71ba431015
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:26
-msgid ""
-"Requires :ref:`to build pgRouting <build>` with support for Driving "
-"Distance."
-msgstr "Requiere :ref:`to build pgRouting <build>` con apoyo para Distancia de manejo."
-
-# 91fbeb2cd46146c4bb9f86b8600faa87
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:30
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# cffb1438aa5d43d8b1792ec1d53769ae
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:32
-msgid ""
-"This function computes a Dijkstra shortest path solution them extracts the "
-"cost to get to each node in the network from the starting node. Using these "
-"nodes and costs it is possible to compute constant drive time polygons. "
-"Returns a set of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, "
-"cost) rows, that make up a list of accessible points."
-msgstr "Esta función calcula una solución de ruta más corta de Dijkstra,  extrae el costo para llegar a cada nodo en la red desde el nodo de inicio. Mediante estos nodos y costos es posible calcular polígonos de tiempo constante  de manejo . Devuelve un conjunto de registros :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, coste)  que integran una lista de puntos de acceso."
-
-# b2253b753da44597b1d449509c96ca75
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:41
-msgid "Description"
-msgstr "Descripción"
-
-# f187f52a62034b2cae8bb00b570bea15
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:43
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr "Consulta SQL que debe proporcionar un conjunto de registros con los siguientes campos:"
-
-# 85949c2cc0334abbbb500996221eeba0
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:50
-msgid "``int4`` identifier of the edge"
-msgstr "``int4`` Identificador del borde"
-
-# 35a904f5f23643b7a6e7e457b8f05846
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:51
-msgid "``int4`` identifier of the source vertex"
-msgstr "``int4`` Identificador del vértice inicial del borde"
-
-# 815615381d8d43989567cc15d154736a
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:52
-msgid "``int4`` identifier of the target vertex"
-msgstr "``int4`` Identificador del vértice final del borde"
-
-# 5c9e142543534a0bbc7668603ad465b4
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:53
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr "``float8``  Costo del recorrido sobre el borde. Un costo negativo evitará que el borde sea insertado en el gráfico."
-
-# fa3ca524dbe24d47891420e71caa324c
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:54
-msgid ""
-"(optional) the cost for the reverse traversal of the edge. This is only used"
-" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
-"above remark about negative costs)."
-msgstr "(opcional) El costo para el recorrido inverso del borde. Esto sólo se utiliza cuando los parámetros ``directed`` y ``has_rcost``  son ``True`` (ver el comentario anterior sobre los costos negativos)."
-
-# c9e1f4debc904118ab177e2b4427d364
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:56
-msgid "``int4`` id of the start point"
-msgstr "``int4`` Identificador del punto de partida"
-
-# 2da59a7b4e0b4b6fbac510bfe0adbd1e
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:57
-msgid ""
-"``float8`` value in edge cost units (not in projection units - they might be"
-" different)."
-msgstr "``float8`` valor en unidades del costo del borde  (no en unidades de proyección -  pueden ser diferentes)."
-
-# b09a53cf12bd49a09659eb105e2e7d2a
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:58
-msgid "``true`` if the graph is directed"
-msgstr "``true`` Si la gráfica es direccionada"
-
-# e771178ac5514ae6bc7cf3dcccfe5408
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:59
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr "Si  es ``True``, el campo ``reverse_cost``  del conjunto de registros generados se utilizan para el calcular el costo de la travesía del borde en la dirección opuesta."
-
-# 5770f80a74ec49cf8f9e11b9fd082533
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:61
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr "Devuelve un conjunto del tipo de datos :ref:`type_cost_result`:"
-
-# ed0dbd0e73234b70827a7663d390886d
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:63
-msgid "row sequence"
-msgstr "Secuencia de registros"
-
-# dc9caee8fdc84c45bb1ebf3c046a436d
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:64
-msgid "node ID"
-msgstr "Identificador del nodo visitado"
-
-# ae36b60db435425b8a4bfa4ada217dd7
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:65
-msgid "edge ID (this is probably not a useful item)"
-msgstr "Identificador del borde (esto probablemente no es un elemento útil)"
-
-# ee9063c6bb49444e94e08af7eedbb401
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:66
-msgid "cost to get to this node ID"
-msgstr "Costo para llegar al identificador de nodo"
-
-# 3bb717c83f2d4993a4b1704a88749ee9
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:70
-msgid ""
-"You must reconnect to the database after ``CREATE EXTENSION pgrouting``. "
-"Otherwise the function will return ``Error computing path: std::bad_alloc``."
-msgstr "Usted debe reconectarse a la base de datos después de ``CREATE EXTENSION pgRouting`` . De lo contrario la función arrojara el error ``Error computing path: std::bad_alloc``."
-
-# 306f0588bb5148dab4d4a97e5bb35889
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:74
-msgid "History"
-msgstr "Historia"
-
-# cc8f5e8248314554bd506fc27f7208ed
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:75
-msgid "Renamed in version 2.0.0"
-msgstr "Renombrado en la versión 2.0.0"
-
-# 9db1973c0a0b4420afe780fa3d4b3d0f
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:79
-msgid "Examples"
-msgstr "Ejemplos"
-
-# 3f34e359dbd242b6a82b49b0beb2acd5
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:81
-msgid "Without ``reverse_cost``"
-msgstr "Sin ``reverse_cost``"
-
-# f58a8bec8b9447f59bf31eb2d52c7782
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:101
-msgid "With ``reverse_cost``"
-msgstr "Con ``reverse_cost``"
-
-# f6d9ddd77a7c48dcaafa2cd1225d8e27
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:121
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "La consulta usa la red de ejemplo  :ref:`sampledata`"
-
-# 15ad7ce30a424139b00e9874b4461215
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:125
-msgid "See Also"
-msgstr "Véase también"
-
-# 04113586118441f6b13f5bf83f5fa224
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:127
-msgid ":ref:`pgr_alphashape` - Alpha shape computation"
-msgstr ":ref:`pgr_alphashape` - cómputo de forma alfa"
-
-# b474eeeca7284f5f983f498713f1640f
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:128
-msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
-msgstr ":ref:`pgr_points_as_polygon` - Polígono alrededor del conjunto de puntos"
diff --git a/doc/i18n/es/LC_MESSAGES/src/driving_distance/doc/dd_points_as_polygon.po b/doc/i18n/es/LC_MESSAGES/src/driving_distance/doc/dd_points_as_polygon.po
deleted file mode 100644
index ec3d583..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/driving_distance/doc/dd_points_as_polygon.po
+++ /dev/null
@@ -1,123 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-23 15:30+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# a2329478f830474e9819c418ae391538
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:13
-msgid "pgr_pointsAsPolygon"
-msgstr "pgr_pointsAsPolygon"
-
-# df6c5bd4620d47ae9f8682195aca1e18
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:20
-msgid "Name"
-msgstr "Nombre"
-
-# 968dbf3147554bcc994e903e5917a0bd
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:22
-msgid ""
-"``pgr_pointsAsPolygon`` — Draws an alpha shape around given set of points."
-msgstr "``pgr_pointsAsPolygon`` — Dibuja un figura Alfa  alrededor de un conjunto de puntos dado."
-
-# 0b81c4a0e03d47938cd256882a6facac
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:26
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# 568b6a3cf23a4a7980b7796df73d334b
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:28
-msgid "Returns the alpha shape as polygon geometry."
-msgstr "Devuelve la forma alfa con geometría de polígono."
-
-# 240f6c0c9ac848a2b1815408c264a3d7
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:36
-msgid "Description"
-msgstr "Descripción"
-
-# bfa10edae1114295852086c42f84d811
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:38
-msgid ""
-"``text`` a SQL query, which should return a set of rows with the following "
-"columns:"
-msgstr "``text`` una consulta SQL la cual debe proporcionar un conjunto de registros con los siguientes campos:"
-
-# d3ca4ae81d3e4a709a2fda2d60f23946
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:44
-msgid "``int4`` identifier of the vertex"
-msgstr "``int4`` Identificador del vértice"
-
-# 10e342dfa5274ea89ea284bd657b2469
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:45
-msgid "``float8`` x-coordinate"
-msgstr "``float8``  coordenada x "
-
-# d36090e578224b30b065a3c28f26d565
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:46
-msgid "``float8`` y-coordinate"
-msgstr "``float8``  coordenada y "
-
-# 1029622f3ac34a30abc0f3babfe7118f
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:49
-msgid "Returns a polygon geometry."
-msgstr "Devuelve una geometría polígonal."
-
-# 49392543fb984b5f922e683b9ba560c5
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:53
-msgid "History"
-msgstr "Historia"
-
-# b00e0e03870244cca7aa9e1c81bad9c1
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:54
-msgid "Renamed in version 2.0.0"
-msgstr "Renombrado en la versión 2.0.0"
-
-# f8001d60b6d54b67afc641f38b8e5b4a
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:58
-msgid "Examples"
-msgstr "Ejemplos"
-
-# 7e01fc6f880549e7b7bde01255cc2811
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:59
-msgid ""
-"In the following query there is not way to control which point in the "
-"polygon is the first in the list, so you may get similar but different "
-"results than the following which are also correct. Each of the "
-"pgr_pointsAsPolygon queries below is followed by one the compute the area of"
-" the polygon. This area should remain constant regardles of the order of the"
-" points making up the polygon."
-msgstr "En la siguiente consulta no hay manera de controlar cúal punto del polígono es el primero en la lista, así obtendrá resultados similares pero diferentes en orden,  pero que  también es correctos. Cada una de las consultas de pgr_pointsAsPolygon en los ejemplos es seguida por una consulta para calcular el área del polígono. Esta área debe permanecer constante independientemente del orden de los puntos que componen el polígono."
-
-# 1deae2c2bb624110980cf832e66993d9
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:93
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "Las consulta usa la red de ejemplo  :ref:`sampledata`"
-
-# 801871cf3dd94fd292387e49941223e3
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:97
-msgid "See Also"
-msgstr "Véase también"
-
-# abc4c217086645fe88ff21568ab13c50
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:99
-msgid ":ref:`pgr_driving_distance` - Driving Distance"
-msgstr ":ref:`pgr_driving_distance`  - Distancia de Manejo"
-
-# 51bae94aaf75403a81353100c953d805
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:100
-msgid ":ref:`pgr_alphashape` - Alpha shape computation"
-msgstr ":ref:`pgr_alphashape` - cómputo de forma alfa"
diff --git a/doc/i18n/es/LC_MESSAGES/src/driving_distance/doc/index.po b/doc/i18n/es/LC_MESSAGES/src/driving_distance/doc/index.po
deleted file mode 100644
index 855303c..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/driving_distance/doc/index.po
+++ /dev/null
@@ -1,44 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (187a022 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-23 15:04\n"
-"PO-Revision-Date: 2013-09-23 20:30+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# e9aef9785bf0499da38e2e756f2700fb
-#: ../../../src/driving_distance/doc/index.rst:13
-msgid "With Driving Distance Enabled"
-msgstr "Con la Distancia de Manejo habilitado"
-
-# 967085e625794af29ef0172018c5c769
-#: ../../../src/driving_distance/doc/index.rst:15
-msgid "Driving distance related Functions"
-msgstr "Funciones relacionadas con Distancia de Manejo"
-
-# 76dcc44d160d4f0685643212eaf200ce
-#: ../../../src/driving_distance/doc/index.rst:17
-msgid ":ref:`pgr_driving_distance` - Driving Distance"
-msgstr ":ref:`pgr_driving_distance` - distancia de conducción"
-
-# 4c32169269334f48bd2156c654b2d731
-#: ../../../src/driving_distance/doc/index.rst:18
-msgid ":ref:`pgr_alphaShape` - Alpha shape computation"
-msgstr ":ref:`pgr_alphashape` - Cómputo de forma alfa"
-
-# 30e3ee3c37034338ade626c18f4fdd15
-#: ../../../src/driving_distance/doc/index.rst:19
-msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
-msgstr ":ref:`pgr_points_as_polygon` - Polígono alrededor del conjunto de puntos"
diff --git a/doc/i18n/es/LC_MESSAGES/src/index.po b/doc/i18n/es/LC_MESSAGES/src/index.po
deleted file mode 100644
index a7e2492..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/index.po
+++ /dev/null
@@ -1,81 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (187a022 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-23 15:04\n"
-"PO-Revision-Date: 2013-09-23 20:40+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# a7c0f1373b4a433684d0580309cec634
-#: ../../../src/index.rst:13
-msgid "Routing Functions"
-msgstr "Funciones para Enrrutamiento"
-
-# 4e64e043a06f42cabd4c08c71b866662
-#: ../../../src/index.rst:15
-msgid ""
-":ref:`pgr_apspJohnson <pgr_apsp_johnson>`- All Pairs Shortest Path, "
-"Johnson’s Algorithm"
-msgstr ":ref:`pgr_apspJohnson <pgr_apsp_johnson>` -  algoritmo de la ruta más corta de todos los pares de Johnson"
-
-# 19f78548228b4618bcec3c9f7603b2d0
-#: ../../../src/index.rst:16
-msgid ""
-":ref:`pgr_apspWarshall<pgr_apsp_warshall>` - All Pairs Shortest Path, Floyd-"
-"Warshall Algorithm"
-msgstr ":ref:`pgr_apspWarshall<pgr_apsp_warshall>` - camino más corto de todos los pares, Algoritmo de Floyd-Warshall"
-
-# cf861ca040624d81961f9ca0520b92ad
-#: ../../../src/index.rst:17
-msgid ":ref:`pgr_astar<pgr_astar>` - Shortest Path A*"
-msgstr ":ref:`pgr_astar<pgr_astar>` - Camino más corto A*"
-
-# c5b280cd3cef4722abbfa6362d721aed
-#: ../../../src/index.rst:18
-msgid ":ref:`pgr_bdAstar<bd_astar>` - Bi-directional A* Shortest Path"
-msgstr ":ref:`pgr_bdAstar<bd_astar>` - Camino más corto bidireccional A*"
-
-# 0e20115c70e4487d9eb50b8ca6dd4c2b
-#: ../../../src/index.rst:19
-msgid ""
-":ref:`pgr_bdDijkstra<bd_dijkstra>` - Bi-directional Dijkstra Shortest Path"
-msgstr ":ref:`pgr_bdDijkstra<bd_dijkstra>` - Camino más corto bidireccional de Dijkstra"
-
-# cdb0bd03676b4bfca36fd4dc10b0473a
-#: ../../../src/index.rst:20
-msgid ":ref:`pgr_dijkstra<pgr_dijkstra>` - Shortest Path Dijkstra"
-msgstr ":ref:`pgr_dijkstra<pgr_dijkstra>` - Camino más corto de Dijkstra"
-
-# 7f1f5596a0d54dbd9672956b7463e7b4
-#: ../../../src/index.rst:21
-msgid ""
-":ref:`pgr_kDijkstra<pgr_kdijkstra>` - Mutliple destination Shortest Path "
-"Dijkstra"
-msgstr ":ref:`pgr_kDijkstra<pgr_kdijkstra>` -  Camino más corto camino con múltiples  destinos de Dijkstra"
-
-# 4ff10fab541f4f7686ef8163d75aa200
-#: ../../../src/index.rst:22
-msgid ":ref:`pgr_ksp<ksp>` - K-Shortest Path"
-msgstr ":ref:`pgr_ksp<ksp>` - Camino más corto K"
-
-# 6cec1b719ac34893b665a4b16b2f7f58
-#: ../../../src/index.rst:23
-msgid ":ref:`pgr_tsp<pgr_tsp>` - Traveling Sales Person"
-msgstr ":ref:`pgr_tsp<pgr_tsp>` - Vendedor Viajante"
-
-# 525e92b52a974d73b4bac048a34bd9c9
-#: ../../../src/index.rst:24
-msgid ":ref:`pgr_trsp<trsp>` - Turn Restriction Shortest Path (TRSP)"
-msgstr ":ref:`pgr_trsp<trsp>` - Camino más corto con giros restringidos (TRSP)"
diff --git a/doc/i18n/es/LC_MESSAGES/src/kdijkstra/doc/index.po b/doc/i18n/es/LC_MESSAGES/src/kdijkstra/doc/index.po
deleted file mode 100644
index 6e7bbfe..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/kdijkstra/doc/index.po
+++ /dev/null
@@ -1,231 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-21 18:01+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 36e2253743a8455dbfbf75b26155205f
-#: ../../../src/kdijkstra/doc/index.rst:13
-msgid "pgr_kDijkstra - Mutliple destination Shortest Path Dijkstra"
-msgstr "pgr_kDijkstra -  Camino más corto camino con múltiples  destinos de Dijkstra"
-
-# 9f432bf1623d4a299d50ff492edbd66b
-#: ../../../src/kdijkstra/doc/index.rst:21
-msgid "Name"
-msgstr "Nombre"
-
-# 57c34a235f7a4cea8458d98a50a54e77
-#: ../../../src/kdijkstra/doc/index.rst:23
-msgid ""
-"``pgr_kdijkstraCost`` - Returns the costs for K shortest paths using "
-"Dijkstra algorithm."
-msgstr "``pgr_kdijkstraCost`` - Devuelve los costos de K caminos más cortos usando el algoritmo de Dijkstra."
-
-# ce7c4be9a502473591591e4d330d46e7
-#: ../../../src/kdijkstra/doc/index.rst:24
-msgid ""
-"``pgr_kdijkstraPath`` - Returns the paths for K shortest paths using "
-"Dijkstra algorithm."
-msgstr "``pgr_kdijkstraPath`` - Devuelve los K caminos más cortos  usando el algoritmo de Dijkstra."
-
-# 130c100b24ac47d4afd3b8ae17ea1335
-#: ../../../src/kdijkstra/doc/index.rst:28
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# 1b2f7dd687d84d76bbc57fc3ad8ed5ec
-#: ../../../src/kdijkstra/doc/index.rst:30
-msgid ""
-"These functions allow you to have a single start node and multiple "
-"destination nodes and will compute the routes to all the destinations from "
-"the source node. Returns a set of :ref:`pgr_costResult3 <type_cost_result3>`"
-" or :ref:`pgr_costResult3 <type_cost_result3>`. ``pgr_kdijkstraCost`` "
-"returns one record for each destination node and the cost is the total code "
-"of the route to that node. ``pgr_kdijkstraPath`` returns one record for "
-"every edge in that path from source to destination and the cost is to "
-"traverse that edge."
-msgstr "Estas funciones permiten  calcular las rutas a todos los destinos desde un nodo de partida único hasta múltiples nodos de destino. Devuelve un conjunto de :ref:`pgr_costResult <type_cost_result>` o de :ref:`pgr_costResult3 <type_cost_result3>`. ``pgr_kdijkstraCost``  devuelve un registro para cada nodo destino y el costo total de la ruta hasta ese nodo. ``pgr_kdijkstraPath`` devuelve un registro por cada borde en la ruta desde la fuente hasta el destino junto con el costo para at [...]
-
-# 06379d79c78b4c9bb92226bc66c58c3f
-#: ../../../src/kdijkstra/doc/index.rst:42
-msgid "Description"
-msgstr "Descripción"
-
-# 84671f541e384cf79360df9e260a5f52
-#: ../../../src/kdijkstra/doc/index.rst:44
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr "Consulta SQL que debe proporcionar un conjunto de registros con los siguientes campos:"
-
-# adccb52524354a6c92d9d45edb967dc0
-#: ../../../src/kdijkstra/doc/index.rst:51
-msgid "``int4`` identifier of the edge"
-msgstr "``int4`` Identificador del borde"
-
-# 5b2a072be67f471a8ab0c6b3daddcc48
-#: ../../../src/kdijkstra/doc/index.rst:52
-msgid "``int4`` identifier of the source vertex"
-msgstr "``int4`` Identificador del vértice inicial del borde"
-
-# d00470fb22ae4294a3cf56db3d064839
-#: ../../../src/kdijkstra/doc/index.rst:53
-msgid "``int4`` identifier of the target vertex"
-msgstr "``int4`` Identificador del vértice final del borde"
-
-# 4bdbc59e5d2d46ba94031caa56975d17
-#: ../../../src/kdijkstra/doc/index.rst:54
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr "``float8``  valor del costo del recorrido sobre el borde. Un costo negativo evitará que el borde sea insertado en el gráfico."
-
-# 569cecbec8e34fa9942c4bcf4ce0c6a4
-#: ../../../src/kdijkstra/doc/index.rst:55
-msgid ""
-"(optional) the cost for the reverse traversal of the edge. This is only used"
-" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
-"above remark about negative costs)."
-msgstr "(opcional) El costo para el recorrido inverso del borde. Esto sólo se utiliza cuando los parámetros ``directed`` y ``has_rcost``  son ``True`` (ver el comentario anterior sobre los costos negativos)."
-
-# b3c8762d18e14a65b4d45ca5b654dabd
-#: ../../../src/kdijkstra/doc/index.rst:57
-msgid "``int4`` id of the start point"
-msgstr "``int4`` Identificador del punto de partida"
-
-# 552184e10f0940f09327b71d0a2a5293
-#: ../../../src/kdijkstra/doc/index.rst:58
-msgid "``int4[]`` an array of ids of the end points"
-msgstr "``int4[]`` Una matriz  de identificadores de los puntos de llegada"
-
-# 6bee551c7fae494d9429ddf6404f457a
-#: ../../../src/kdijkstra/doc/index.rst:59
-msgid "``true`` if the graph is directed"
-msgstr "``true`` Si la gráfica es direccionada"
-
-# c79e8fecdbb94d6f836a2fb692d24fea
-#: ../../../src/kdijkstra/doc/index.rst:60
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr "Si  es ``True``, el campo ``reverse_cost``  del conjunto de registros generados se utilizan para el calcular el costo de la travesía del borde en la dirección opuesta."
-
-# fe741d49c0f94473971ebcad7951456b
-#: ../../../src/kdijkstra/doc/index.rst:63
-msgid "``pgr_kdijkstraCost`` returns set of :ref:`type_cost_result`:"
-msgstr "``pgr_kdijkstraCost`` devuelve el conjunto de :ref:`type_cost_result`:"
-
-# 2325329e3ec24e3cbe4c347369b857a4
-# 2ac53854f37a48a89b705310628c4d3e
-#: ../../../src/kdijkstra/doc/index.rst:65
-#: ../../../src/kdijkstra/doc/index.rst:73
-msgid "row sequence"
-msgstr "Secuencia de registros"
-
-# 73cb6093021a456aace98c1f58641bef
-#: ../../../src/kdijkstra/doc/index.rst:66
-msgid ""
-"path vertex source id (this will always be source start point in the query)."
-msgstr "Identificador del vértice de llegada (esto siempre será punto de partida en la consulta)."
-
-# 9afd4e01323945118421ebb27f420068
-#: ../../../src/kdijkstra/doc/index.rst:67
-msgid "path vertex target id"
-msgstr "Identificador del vértice de llegada. "
-
-# 8b3c8fe211a147f4b031db8a8d899ddd
-#: ../../../src/kdijkstra/doc/index.rst:68
-msgid ""
-"cost to traverse the path from ``id1`` to ``id2``. Cost will be -1.0 if "
-"there is no path to that target vertex id."
-msgstr "Costo para recorrer el camino desde ``id1`` hasta ``id2``. Costo será -1.0 si no hay  camino al identificador de vértice de destino."
-
-# 703a5ecca86b4ef4ba2c275d9ba8a20f
-#: ../../../src/kdijkstra/doc/index.rst:71
-msgid "``pgr_kdijkstraPath`` returns set of :ref:`type_cost_result3`:"
-msgstr "``pgr_kdijkstraPath`` devuelve el conjunto de  :ref:`type_cost_result3`:"
-
-# 7fc792793b7c4e65ba68cea3f25384aa
-#: ../../../src/kdijkstra/doc/index.rst:74
-msgid "path target id (identifies the target path)."
-msgstr "Identificador de \"este borde\" de la ruta (hacia el destino)."
-
-# c43bcd54fee6435fbe6afd2ec4bb6d65
-#: ../../../src/kdijkstra/doc/index.rst:75
-msgid "path edge source node id"
-msgstr "id del nodo de partida en \"este borde\""
-
-# a567112ee5584a46ac397cb9783627a8
-#: ../../../src/kdijkstra/doc/index.rst:76
-msgid "path edge id (``-1`` for the last row)"
-msgstr "id de \"este borde\"  (``-1`` para la última fila)"
-
-# 47af04f2ce09412f8475df30be9581ae
-#: ../../../src/kdijkstra/doc/index.rst:77
-msgid "cost to traverse this edge or -1.0 if there is no path to this target"
-msgstr "Costo para atravesar este borde o -1.0 si no hay ningún camino"
-
-# e7349c2020bc491aaa02b3eb1ebca791
-#: ../../../src/kdijkstra/doc/index.rst:81
-msgid "History"
-msgstr "Historia"
-
-# f7b3cf1f2e494a4c8697b712adcbd1fc
-#: ../../../src/kdijkstra/doc/index.rst:82
-msgid "New in version 2.0.0"
-msgstr "Nuevo en la versión 2.0.0"
-
-# adf5de36019d4982b76cd696909168b0
-#: ../../../src/kdijkstra/doc/index.rst:86
-msgid "Examples"
-msgstr "Ejemplos"
-
-# f332ab5afb39404284be98f0e9a2c8dc
-#: ../../../src/kdijkstra/doc/index.rst:88
-msgid "Returning a ``cost`` result"
-msgstr "Devolviendo un resultado de costos ``cost``"
-
-# cb5abec6a55e41a4a61c22fd3f461110
-#: ../../../src/kdijkstra/doc/index.rst:123
-msgid "Returning a ``path`` result"
-msgstr "Devolviendo resultado de un trayecto ``path`` "
-
-# d2e7b4076702425a9c6928a0cc4b997e
-#: ../../../src/kdijkstra/doc/index.rst:144
-msgid ""
-"There is no assurance that the result above will be ordered in the direction"
-" of flow of the route, ie: it might be reversed. You will need to check if "
-"``st_startPoint()`` of the route is the same as the start node location and "
-"if it is not then call ``st_reverse()`` to reverse the direction of the "
-"route. This behavior is a function of PostGIS functions ``st_linemerge()`` "
-"and ``st_union()`` and not pgRouting."
-msgstr "No hay ninguna garantía de que el resultado anterior esté ordenado en la dirección del flujo de la ruta, es decir, puede estar invertido. Usted necesitará comprobar si ``st_startPoint()`` de la ruta es la misma que la ubicación del nodo de inicio y si no, entonces utilizar ``st_reverse()``  para invertir la dirección de la ruta. Este comportamiento es de funciones pertenecientes a PostGIS ``st_linemerge()`` y ``st_union()`` y no pertenecen a pgRouting."
-
-# d6928031c7d047a5999f03c79c5bcfea
-#: ../../../src/kdijkstra/doc/index.rst:153
-msgid "See Also"
-msgstr "Véase también"
-
-# cd86a4612fe944acbe5a39daaf52dafd
-#: ../../../src/kdijkstra/doc/index.rst:155
-msgid ":ref:`type_cost_result`"
-msgstr ":ref:`type_cost_result`"
-
-# c2386bf8c6314521abe162d0bf548225
-#: ../../../src/kdijkstra/doc/index.rst:156
-msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
-msgstr "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
diff --git a/doc/i18n/es/LC_MESSAGES/src/ksp/doc/index.po b/doc/i18n/es/LC_MESSAGES/src/ksp/doc/index.po
deleted file mode 100644
index e0f9430..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/ksp/doc/index.po
+++ /dev/null
@@ -1,192 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-21 17:03+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# dc72571c7ce5498b92c659e3e482c885
-#: ../../../src/ksp/doc/index.rst:13
-msgid "pgr_ksp - K-Shortest Path"
-msgstr "pgr_ksp - K caminos más cortos"
-
-# 57b24beea69846f58a8cb9b1a7a892b5
-#: ../../../src/ksp/doc/index.rst:20
-msgid "Name"
-msgstr "Nombre"
-
-# b3d0fc92b23443c8b718233c1e16f052
-#: ../../../src/ksp/doc/index.rst:22
-msgid "``pgr_ksp`` — Returns the \"K\" shortest paths."
-msgstr "``pgr_ksp`` — Devuelve K caminos más cortos. "
-
-# 0e60ee2dfa944557a1e9c76106489a7f
-#: ../../../src/ksp/doc/index.rst:26
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# bcf915dc485c4e3b90c9a8ea251b55d1
-#: ../../../src/ksp/doc/index.rst:28
-msgid ""
-"The K shortest path routing algorithm based on Yen's algorithm. \"K\" is the"
-" number of shortest paths desired. Returns a set of :ref:`pgr_costResult3 "
-"<type_cost_result3>` (seq, id1, id2, id3, cost) rows, that make up a path."
-msgstr "El algoritmo del camino más corto K,  está basado en el algoritmo de Yen. \"K\" es el número de caminos más cortos deseados. Regresa un conjunto de registros :ref:`pgr_costResult3 <type_cost_result3>` (seq, id1, id2, id3, cost)  que conforman K caminos."
-
-# 46b5ce0d54a64718819888b77b007080
-#: ../../../src/ksp/doc/index.rst:37
-msgid "Description"
-msgstr "Descripción"
-
-# dddbbca8781f41eab4aac1d4e2ecdf32
-#: ../../../src/ksp/doc/index.rst:39
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr "Consulta SQL, que debe proporcionar un conjunto de registros con los siguientes campos:"
-
-# 575d21e3bc994dc3a92a7c6cbb0ed6a2
-#: ../../../src/ksp/doc/index.rst:46
-msgid "``int4`` identifier of the edge"
-msgstr "``int4`` identificador del borde"
-
-# 589751b9c7d34dac9b4eeb12894fd648
-#: ../../../src/ksp/doc/index.rst:47
-msgid "``int4`` identifier of the source vertex"
-msgstr "``int4`` Identificador del vértice inicial de este borde"
-
-# 6567c097438040d9b678e88df7521b35
-#: ../../../src/ksp/doc/index.rst:48
-msgid "``int4`` identifier of the target vertex"
-msgstr "``int4`` Identificador del vértice final del  borde"
-
-# a1e24bd423dd445889b72928d964a5ec
-#: ../../../src/ksp/doc/index.rst:49
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr "``float8``  valor del costo del recorrido sobre el borde. Un costo negativo evitará que el borde sea insertado en el gráfico."
-
-# ed76ed5e3a504c7aa3a35ea3fa5b4c16
-#: ../../../src/ksp/doc/index.rst:50
-msgid ""
-"(optional) the cost for the reverse traversal of the edge. This is only used"
-" when ``has_rcost`` the parameter is ``true`` (see the above remark about "
-"negative costs)."
-msgstr "(opcional) el costo para el recorrido inverso del borde. Se utiliza sólo cuando el parámetro ``has_rcost`` es ``True`` (ver el comentario anterior acerca de los costos negativos)."
-
-# 588bdec4303b49869b6d1eedd541c198
-#: ../../../src/ksp/doc/index.rst:52
-msgid "``int4`` id of the start point"
-msgstr "``int4`` Identificador del punto de partida"
-
-# 96b44480fac34f6286b863e6c75d4d8a
-#: ../../../src/ksp/doc/index.rst:53
-msgid "``int4`` id of the end point"
-msgstr "``int4`` Identificador del punto de llegada"
-
-# 0ffd51df58754f0b89f1b3ad6f75b632
-#: ../../../src/ksp/doc/index.rst:54
-msgid "``int4`` number of alternative routes"
-msgstr "``int4`` Cantidad de rutas alternativas"
-
-# 0fc58370aa30454ea32a2c8b9f3b14a3
-#: ../../../src/ksp/doc/index.rst:55
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr "Si  es ``True``, el campo ``reverse_cost``  del conjunto de registros generados se utilizan para el calcular el costo de la travesía del borde en la dirección opuesta."
-
-# dc8dfcffbd604441a95743930181b042
-#: ../../../src/ksp/doc/index.rst:57
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr "Arroja un conjunto del tipo de datos :ref:`type_cost_result`:"
-
-# 611d6bbb82ca4987ae39fd45bb107c2b
-#: ../../../src/ksp/doc/index.rst:59
-msgid "sequence for ording the results"
-msgstr "secuencia para ordenar los resultados"
-
-# b79966a030e04ee3b5e992b5a6858947
-#: ../../../src/ksp/doc/index.rst:60
-msgid "route ID"
-msgstr "Identificador de la ruta"
-
-# a324539cdc2e4202b416aa19693d1c3f
-#: ../../../src/ksp/doc/index.rst:61
-msgid "node ID"
-msgstr "Identificador del nodo visitado"
-
-# 4d87667a7b744eec999819b399fee50c
-#: ../../../src/ksp/doc/index.rst:62
-msgid "edge ID (``0`` for the last row)"
-msgstr "Identificador del borde ( ``0`` para el ultimo registro)"
-
-# baaba3dc621142bd8fc6b8ba32eb2b2e
-#: ../../../src/ksp/doc/index.rst:63
-msgid "cost to traverse from ``id2`` using ``id3``"
-msgstr "costo para atravesar desde el nodo ``id2``  usando el borde ``id3`` hasta su otro extremo"
-
-# b585e07096f74b0389f8b7dffc969faa
-#: ../../../src/ksp/doc/index.rst:65
-msgid ""
-"KSP code base taken from http://code.google.com/p/k-shortest-paths/source."
-msgstr "El código base de KSP fue adquirido de  http://code.google.com/p/k-shortest-paths/source."
-
-# 2d033ec25b09426c82d7bc27450b0e13
-#: ../../../src/ksp/doc/index.rst:69
-msgid "History"
-msgstr "Historia"
-
-# 2910d7995ec342b995c857c1e8ea0ac3
-#: ../../../src/ksp/doc/index.rst:70
-msgid "New in version 2.0.0"
-msgstr "Nuevo en la versión 2.0.0"
-
-# 0fb494088fa241d6a4aa5482217c2851
-#: ../../../src/ksp/doc/index.rst:74
-msgid "Examples"
-msgstr "Ejemplos"
-
-# d3ea07b1c58a42ea9f68558e55eb90a0
-#: ../../../src/ksp/doc/index.rst:76
-msgid "Without ``reverse_cost``"
-msgstr "Sin ``reverse_cost``"
-
-# 7c55b739634c4401b46c4014669d2896
-#: ../../../src/ksp/doc/index.rst:104
-msgid "With ``reverse_cost``"
-msgstr "Con ``reverse_cost``"
-
-# 2412b0b4ec044973a1c2304488a73b1a
-#: ../../../src/ksp/doc/index.rst:131
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "Las consultas usan la red de ejemplo  :ref:`sampledata`"
-
-# 14d58e1d3a8f4723bb11ed549594cb26
-#: ../../../src/ksp/doc/index.rst:135
-msgid "See Also"
-msgstr "Véase también"
-
-# 73cf1bb94518468996cdd3ff6bf897be
-#: ../../../src/ksp/doc/index.rst:137
-msgid ":ref:`type_cost_result3`"
-msgstr ":ref:`type_cost_result3`"
-
-# 3dde120556744d3f9ce7d6e9b9f0c1ee
-#: ../../../src/ksp/doc/index.rst:138
-msgid "http://en.wikipedia.org/wiki/K_shortest_path_routing"
-msgstr "http://en.wikipedia.org/wiki/K_shortest_path_routing"
diff --git a/doc/i18n/es/LC_MESSAGES/src/trsp/doc/index.po b/doc/i18n/es/LC_MESSAGES/src/trsp/doc/index.po
deleted file mode 100644
index 464e422..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/trsp/doc/index.po
+++ /dev/null
@@ -1,260 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-21 17:05+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 15b2085c08994c0bafb02ec924886b36
-#: ../../../src/trsp/doc/index.rst:13
-msgid "pgr_trsp - Turn Restriction Shortest Path (TRSP)"
-msgstr "pgr_trsp - Camino más corto con giros restringidos (TRSP)"
-
-# 001ce231c65b42a19a62809e63a0b153
-#: ../../../src/trsp/doc/index.rst:23
-msgid "Name"
-msgstr "Nombre"
-
-# e7d332e28a5540d2af454386b4bf39e5
-#: ../../../src/trsp/doc/index.rst:25
-msgid ""
-"``pgr_trsp`` — Returns the shortest path with support for turn restrictions."
-msgstr "``pgr_trsp`` — Devuelve el camino más corto con soporte para restricciones de giros"
-
-# 9f0ad26664fc4d2aa44b49daf329cbcf
-#: ../../../src/trsp/doc/index.rst:29
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# 2d74de00ff7144f1a68f40ec98315004
-#: ../../../src/trsp/doc/index.rst:31
-msgid ""
-"The turn restricted shorthest path (TRSP) is a shortest path algorithm that "
-"can optionally take into account complicated turn restrictions like those "
-"found in real work navigable road networks. Performamnce wise it is nearly "
-"as fast as the A* search but has many additional features like it works with"
-" edges rather than the nodes of the network. Returns a set of "
-":ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows, that "
-"make up a path."
-msgstr "El Camino más corto con giros restringido (TRSP), es un algoritmo de camino más corto que puede tomar en cuenta complicadas restricciones de giro, como las encontrados en las redes de carreteras navegables reales. El rendimiento es casi tan rápido como la búsqueda A\\*, pero tiene muchas características adicionales como funcionalidad en base a los bordes en vez de basarse en los nodos de la red. Devuelve un conjunto de registros :ref:`pgr_costResult <type_cost_result>` (seq, id1, [...]
-
-# 258764bba06c4ef58ac4b5f8fc99fa51
-#: ../../../src/trsp/doc/index.rst:47
-msgid "Description"
-msgstr "Descripción"
-
-# db4ead8b9b724ada9fcd352b21c13c47
-#: ../../../src/trsp/doc/index.rst:49
-msgid ""
-"The Turn Restricted Shortest Path algorithm (TRSP) is similar to the "
-":ref:`shooting_star` in that you can specify turn restrictions."
-msgstr "El algoritmo del Camino más corto con giros restringidos (TRSP)  es similar al de :ref:`shooting_star` en cuanto a que puede uno especificar restricciones de giros."
-
-# f8c43b665915464c9bfc35604fd91aee
-#: ../../../src/trsp/doc/index.rst:51
-msgid ""
-"The TRSP setup is mostly the same as :ref:`Dijkstra shortest path "
-"<pgr_dijkstra>` with the addition of an optional turn restriction table. "
-"This makes adding turn restrictions to a road network much easier than "
-"trying to add them to Shooting Star where you had to ad the same edges "
-"multiple times if it was involved in a restriction."
-msgstr "La configuración del TRSP es parecido al del :ref:`camino más corto de Dijkstra<pgr_dijkstra>` con el añadido de una tabla de restricciones de giros que es opcional. Esto hace que añadir restricciones de giro a una red de carreteras sea más fácil en comparación con del algoritmo de estrella fugaz en la que había que agregar los bordes varias veces cuando estaba involucrado en una restricción."
-
-# b95a0195c5bd43caa2d6cfb1f998a956
-#: ../../../src/trsp/doc/index.rst:54
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr "Consulta SQL que debe proporcionar un conjunto de registros con los siguientes campos:"
-
-# 580e965db4a1466da14357ff969e2429
-#: ../../../src/trsp/doc/index.rst:61
-msgid "``int4`` identifier of the edge"
-msgstr "``int4`` Identificador del borde"
-
-# 1240ecd9b29e479ca8b980c6282c5182
-#: ../../../src/trsp/doc/index.rst:62
-msgid "``int4`` identifier of the source vertex"
-msgstr "``int4`` Identificador del vértice inicial del borde"
-
-# f155b6dee53749049cc6a9eac4126083
-#: ../../../src/trsp/doc/index.rst:63
-msgid "``int4`` identifier of the target vertex"
-msgstr "``int4`` Identificador del vértice final del borde"
-
-# 882a25b98f4f4c7cb2f288cf7c327c4a
-#: ../../../src/trsp/doc/index.rst:64
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr "``float8``  valor del costo del recorrido sobre el borde. Un costo negativo evitará que el borde sea insertado en el gráfico."
-
-# 0a3a626251a840ab96796ef2ab9b91c5
-#: ../../../src/trsp/doc/index.rst:65
-msgid ""
-"(optional) the cost for the reverse traversal of the edge. This is only used"
-" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
-"above remark about negative costs)."
-msgstr "(opcional) El costo para el recorrido inverso del borde. Esto sólo se utiliza cuando los parámetros ``directed`` y ``has_rcost``  son ``True`` (ver el comentario anterior sobre los costos negativos)."
-
-# 510dbeaa32914dc18ed3e6799281fbef
-#: ../../../src/trsp/doc/index.rst:67
-msgid "``int4`` **NODE id** of the start point"
-msgstr "``int4`` **identificador** del nodo de partida"
-
-# ece6f31366044417b07933b2c817c5df
-#: ../../../src/trsp/doc/index.rst:68
-msgid "``int4`` **NODE id** of the end point"
-msgstr "``int4`` **identificador** del nodo de llegada"
-
-# 31ad6aa2c51741de8dbafceaf67d397a
-#: ../../../src/trsp/doc/index.rst:69
-msgid "``true`` if the graph is directed"
-msgstr "``true`` Si la gráfica es direccionada"
-
-# 6605eca503604a6daa20167fcbdd05fa
-#: ../../../src/trsp/doc/index.rst:70
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr "Si  es ``True``, el campo ``reverse_cost``  del conjunto de registros generados se utilizan para el calcular el costo de la travesía del borde en la dirección opuesta."
-
-# 332748df482046d7b70e9012364915e3
-#: ../../../src/trsp/doc/index.rst:72
-msgid ""
-"(optional) a SQL query, which should return a set of rows with the following"
-" columns:"
-msgstr "(opcional) una consulta SQL, que debe proporcionar un conjunto de registros con los siguientes campos:"
-
-# 936b80e377bd457081e14e36770ab130
-#: ../../../src/trsp/doc/index.rst:78
-msgid "``float8`` turn restriction cost"
-msgstr "``float8`` restricción del costo de giro"
-
-# d1715703f624412385536b88c78a32df
-#: ../../../src/trsp/doc/index.rst:79
-msgid "``int4`` target id"
-msgstr "``int4`` identificador del borde donde se aplica la restricción"
-
-# 83a22871a9f6419190e4bf313f49c672
-#: ../../../src/trsp/doc/index.rst:80
-msgid ""
-"``text`` commar seperated list of edges in the reverse order of ``rule``"
-msgstr "`text`` lista de bordes separados por comas que llegan al borde ``target_id`` que conforman esta restricción "
-
-# d0f078a9c92348a9bc1e880a0835b24c
-#: ../../../src/trsp/doc/index.rst:82
-msgid ""
-"Another variant of TRSP allows to specify **EDGE id** of source and target "
-"together with a fraction to interpolate the position:"
-msgstr "Otra variante de TRSP que permite especificar el **Identificador del borde** de partida y de llegada junto con una fracción para interpolar la posición:"
-
-# 021daf08280643738cfc9e67f4fa6fce
-#: ../../../src/trsp/doc/index.rst:84
-msgid "``int4`` **EDGE id** of the start edge"
-msgstr "``int4`` **identificador del borde** de partida"
-
-# 6c0b782e2a2d4ee7aac26b031327b48d
-#: ../../../src/trsp/doc/index.rst:85
-msgid "``float8`` fraction of 1 defines the position on the start edge"
-msgstr "``float8`` fracción de 1 que define la posición del sobre el borde de partida."
-
-# 4f60cd31727245739cba5b4be8840191
-#: ../../../src/trsp/doc/index.rst:86
-msgid "``int4`` **EDGE id** of the end edge"
-msgstr "``int4`` **Identificador del borde** de llegada"
-
-# 8a114786a737431f9d36f79718505b0c
-#: ../../../src/trsp/doc/index.rst:87
-msgid "``float8`` fraction of 1 defines the position on the end edge"
-msgstr "``float8`` fracción de 1 que define la posición del sobre el borde de llegada."
-
-# 164eff72cc834e76afafdb24fae73b05
-#: ../../../src/trsp/doc/index.rst:89
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr "Devuelve un conjunto del tipo de datos :ref:`type_cost_result`:"
-
-# f1e7b63cce7e45dca113b9c63b80531a
-#: ../../../src/trsp/doc/index.rst:91
-msgid "row sequence"
-msgstr "Secuencia de registros"
-
-# 9224c385fbc84c6fb16a5752bb0dcf0f
-#: ../../../src/trsp/doc/index.rst:92
-msgid "node ID"
-msgstr "Identificador del nodo visitado"
-
-# 838eabec61db4ac1a64b9bb7b12a5bec
-#: ../../../src/trsp/doc/index.rst:93
-msgid "edge ID (``-1`` for the last row)"
-msgstr "identificador del borde (``-1`` para el último borde)"
-
-# dd4d4036ca89412ca65bb9dc36a98ff5
-#: ../../../src/trsp/doc/index.rst:94
-msgid "cost to traverse from ``id1`` using ``id2``"
-msgstr "Costo para el recorrido desde el nodo ``id1`` usando el borde ``id2`` hasta su otro extremo"
-
-# 3e879e6cbece4a27afe4738bdef1080b
-#: ../../../src/trsp/doc/index.rst:98
-msgid "History"
-msgstr "Historia"
-
-# 16b0789da1954e179858d593d9973be6
-#: ../../../src/trsp/doc/index.rst:99
-msgid "New in version 2.0.0"
-msgstr "Nuevo en la versión 2.0.0"
-
-# 36dc0630c4e04859ba0a41aa3da19ed6
-#: ../../../src/trsp/doc/index.rst:103
-msgid "Examples"
-msgstr "Ejemplos"
-
-# 0c40d66ced8b4b48914b3bb328c5f10e
-#: ../../../src/trsp/doc/index.rst:105
-msgid "Without turn restrictions"
-msgstr "Sin restricción de giros"
-
-# 456ae3d3abc547978bd147c884275ac6
-#: ../../../src/trsp/doc/index.rst:126
-msgid "With turn restrictions"
-msgstr "Con restricción de giros"
-
-# 2541f0dba78f4dfe93fcda086ddeba34
-#: ../../../src/trsp/doc/index.rst:128
-msgid ""
-"Turn restrictions require additional information, which can be stored in a "
-"separate table:"
-msgstr "Las restricciones de giro requieren de información adicional, que puede ser almacenado en una tabla por separado:"
-
-# 4d9e1ab740a44fe990829e06dcc32f65
-#: ../../../src/trsp/doc/index.rst:144
-msgid "Then a query with turn restrictions is created as:"
-msgstr "Entonces una consulta con restricciones de giro es creada de la siguiente forma:"
-
-# 61dd0262b80b4db58f637fe5d2dd1ae8
-#: ../../../src/trsp/doc/index.rst:167
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "Las consultas usan la red de ejemplo  :ref:`sampledata`"
-
-# 48bf89e209cc4518904b1b99e1a89f99
-#: ../../../src/trsp/doc/index.rst:171
-msgid "See Also"
-msgstr "Véase también"
-
-# 7988e08198b04952bc5a1cb22cce310f
-#: ../../../src/trsp/doc/index.rst:173
-msgid ":ref:`type_cost_result`"
-msgstr ":ref:`type_cost_result`"
diff --git a/doc/i18n/es/LC_MESSAGES/src/tsp/doc/index.po b/doc/i18n/es/LC_MESSAGES/src/tsp/doc/index.po
deleted file mode 100644
index 5591fe8..0000000
--- a/doc/i18n/es/LC_MESSAGES/src/tsp/doc/index.po
+++ /dev/null
@@ -1,353 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-21 17:40+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Spanish (http://www.transifex.com/projects/p/pgrouting/language/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-# 588bb56f073f49f89c741579fbc2c17c
-#: ../../../src/tsp/doc/index.rst:13
-msgid "pgr_tsp - Traveling Sales Person"
-msgstr "pgr_tsp - Vendedor Viajante"
-
-# f69daf53ba3c47ca846fbcbbcf6aa25d
-#: ../../../src/tsp/doc/index.rst:23
-msgid "Name"
-msgstr "Nombre"
-
-# 5ccbfce91c604bac96d73fdbc656f675
-#: ../../../src/tsp/doc/index.rst:25
-msgid ""
-"``pgr_tsp`` - Returns the best route from a start node via a list of nodes."
-msgstr "``pgr_tsp`` - Devuelve la mejor ruta desde un nodo inicial vía un lista de nodos."
-
-# cd69b4b6495b448fa23e10806d8cd704
-#: ../../../src/tsp/doc/index.rst:26
-msgid ""
-"``pgr_tsp`` - Returns the best route order when passed a disance matrix."
-msgstr "``pgr_tsp`` - Devuelve el mejor orden de la ruta cuando se le introduce una matriz de distancias"
-
-# eee8057e1f874582a8d82dbf95c33b83
-#: ../../../src/tsp/doc/index.rst:27
-msgid ""
-"``pgr_makeDistanceMatrix`` - Returns a Eucleadian distance Matrix from the "
-"points provided in the sql result."
-msgstr "``pgr_makeDistanceMatrix`` - Devuelve una matriz de distancias Euclidiana desde los puntos que le provee la consulta sql."
-
-# c0ecbed749044ceea6ac67da6a92e851
-#: ../../../src/tsp/doc/index.rst:31
-msgid "Synopsis"
-msgstr "Sinopsis"
-
-# bccf8e0d00d545fbb53db8de741e3629
-#: ../../../src/tsp/doc/index.rst:33
-msgid ""
-"The travelling salesman problem (TSP) or travelling salesperson problem asks"
-" the following question: Given a list of cities and the distances between "
-"each pair of cities, what is the shortest possible route that visits each "
-"city exactly once and returns to the origin city? This algoritm uses "
-"simulated annealing to return a high quality approximate solution. Returns a"
-" set of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows,"
-" that make up a path."
-msgstr "En el problema del vendedor viajante (TSP) o problema del vendedor se hace la siguiente pregunta: dada una lista de las ciudades y las distancias entre cada par de ciudades, ¿cuál es la ruta más corta posible que visita cada ciudad exactamente una vez y vuelve a la ciudad de origen. Este algoritmo hace simulaciones para devolver una solución aproximada de alta calidad. Devuelve un conjunto de registros :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost)   que conforman [...]
-
-# 4817fee0103a41c4816125ab5b8e50c9
-#: ../../../src/tsp/doc/index.rst:41
-msgid ""
-"Returns a set of (seq integer, id1 integer, id2 integer, cost float8) that "
-"is the best order to visit the nodes in the matrix. ``id1`` is the index "
-"into the distance matrix. ``id2`` is the point id from the sql."
-msgstr "Devuelve un conjunto de (seq integer, integer id1, id2 integer, cost float8) que representa el mejor orden para visitar los nodos en la matriz. ``id1`` es el índice en la matriz de distancia. ``id2`` es el identificador del punto de la consulta sql."
-
-# d81ab41209864a73a7ffa72604da479d
-#: ../../../src/tsp/doc/index.rst:43
-msgid ""
-"If no ``end_id`` is supplied or it is -1 or equal to the start_id then the "
-"TSP result is assumed to be a circluar loop returning back to the start. If "
-"``end_id`` is supplied then the route is assumed to start and end the the "
-"designated ids."
-msgstr "Si no se suministra el identificador de un punto de llegada ``end_id`` o si es -1 o si es el mismo que al identificador del punto de partida ``start_id``, TSP supone que se regresa al punto de partida. Si se suministra un punto de llegada ``end_id`` entonces  se supone que la ruta inicia y termina en los identificadores designados."
-
-# 50853fe7ce3a4230ba1ad32e1820ff86
-#: ../../../src/tsp/doc/index.rst:52
-msgid "Description"
-msgstr "Descripción"
-
-# 5c75019d15bb43c39560772bc3ee4607
-#: ../../../src/tsp/doc/index.rst:55
-msgid "With Euclidean distances"
-msgstr "Con distancias Euclidianas"
-
-# 66a3e0216d3948b082421f130af849fc
-#: ../../../src/tsp/doc/index.rst:56
-msgid ""
-"The TSP solver is based on ordering the points using straight line "
-"(euclidean) distance [#f0]_ between nodes. The implementation is using an "
-"approximation algorithm that is very fast. It is not an exact solution, but "
-"it is guaranteed that a solution is returned after certain number of "
-"iterations."
-msgstr "El evaluador TSP se basa en los puntos ordenados utilizando la línea recta (euclidiana) de distancias [#f0]_ entre nodos. La aplicación utiliza un algoritmo de aproximación que es muy rápido. No es una solución exacta, pero se garantiza que una solución se devuelve después de cierta cantidad de iteraciones."
-
-# 7b0c0aa5e05b441ea75bea14ed4902cd
-#: ../../../src/tsp/doc/index.rst:58
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr "Consulta SQL que debe proporcionar un conjunto de registros con los siguientes campos:"
-
-# 370960d08a674040ba2f83ed085dbb48
-#: ../../../src/tsp/doc/index.rst:64
-msgid "``int4`` identifier of the vertex"
-msgstr "``int4`` Identificador del vértice"
-
-# 041d921890f847d1bcb77251f630f8d5
-#: ../../../src/tsp/doc/index.rst:65
-msgid "``float8`` x-coordinate"
-msgstr "``float8`` coordenada x"
-
-# 8662fbcf22f74a82900515c839683881
-#: ../../../src/tsp/doc/index.rst:66
-msgid "``float8`` y-coordinate"
-msgstr "``float8`` coordenada y"
-
-# c71cd39ce3cf4e3e9301579f9a596cdb
-#: ../../../src/tsp/doc/index.rst:68
-msgid "``int4`` id of the start point"
-msgstr "``int4`` Identificador del punto de partida"
-
-# 5165a6a173194137bb498d88e0957b35
-#: ../../../src/tsp/doc/index.rst:69
-msgid ""
-"``int4`` id of the end point, This is *OPTIONAL*, if include the route is "
-"optimized from start to end, otherwise it is assumed that the start and the "
-"end are the same point."
-msgstr "``int4`` identificador del punto de llegada, esto es *opcional*, si se incluye la ruta será optimizada desde la partida hasta la llegada, de lo contrario se supone que la partida y la llegada son el mismo punto."
-
-# d73e6887338e4da3a107b753d970eb83
-#: ../../../src/tsp/doc/index.rst:72
-msgid "The function returns set of :ref:`type_cost_result`:"
-msgstr "La función devuelve el conjunto de :ref:`type_cost_result`:"
-
-# 6a00ce9fe1e84a708606d26b563355af
-# c113028794ef4a08a59271625c0ae721
-#: ../../../src/tsp/doc/index.rst:74 ../../../src/tsp/doc/index.rst:107
-msgid "row sequence"
-msgstr "Secuencia de registros"
-
-# 486fb735dda64593ba3d2773c140d01f
-#: ../../../src/tsp/doc/index.rst:75
-msgid "internal index to the distance matric"
-msgstr "índice interno de la matriz de distancias"
-
-# 47f9555a7ecb4013a9b7b1744788a432
-#: ../../../src/tsp/doc/index.rst:76
-msgid "``id`` of the node"
-msgstr "``int4`` identificador del nodo"
-
-# 879b651101634a9fa1850e585291b13d
-#: ../../../src/tsp/doc/index.rst:77
-msgid "cost to traverse from the current node to the next node."
-msgstr "costo para atravesar desde el nodo actual hasta el siguiente nodo."
-
-# 1219dbad1dbc483e8c66e492b2ddbb85
-#: ../../../src/tsp/doc/index.rst:80
-msgid "Create a distance matrix"
-msgstr "Crear una matriz de distancias"
-
-# 0c6c6e0816e1404798c896777ad941f2
-#: ../../../src/tsp/doc/index.rst:81
-msgid ""
-"For users that need a distance matrix we have a simple function that takes "
-"SQL in ``sql`` as described above and returns a record with ``dmatrix`` and "
-"``ids``."
-msgstr "Para usuarios necesitan una matriz de distancias tenemos una función simple que toma consultas SQL en ``sql`` como se describe anteriormente y devuelve un registro con  ``dmatrix`` e ``ids``."
-
-# a9ebba1a8cbb4af9a325f5ebcf4c9c50
-#: ../../../src/tsp/doc/index.rst:87
-msgid "The function returns a record of ``dmatrix``, ``ids``:"
-msgstr "La función devuelve un registro de ``dmatrix``, `` ids``:"
-
-# 79831990a066442dbf3d4f24cebf6aef
-#: ../../../src/tsp/doc/index.rst:89
-msgid "``float8[][]`` a symeteric Euclidean distance matrix based on ``sql``."
-msgstr "``float8[][]`` una matriz de distancia euclidiana simétrica basado en la consulta ``sql``."
-
-# afbd6f830d5c4ab2847548f86f90dca1
-#: ../../../src/tsp/doc/index.rst:90
-msgid ""
-"``integer[]`` an array of ids as they are ordered in the distance matrix."
-msgstr "``integer[]`` una matriz de identificadores basados en el orden de la matriz de distancias."
-
-# f0b8169b552646f980bd6b7e0e4b580c
-#: ../../../src/tsp/doc/index.rst:94
-msgid "With distance matrix"
-msgstr "Con la matriz de distancia"
-
-# e50bb0a665844d7682d3a1b216adb70e
-#: ../../../src/tsp/doc/index.rst:95
-msgid ""
-"For users, that do not want to use Euclidean distances, we also provode the "
-"ability to pass a distance matrix that we will solve and return an ordered "
-"list of nodes for the best order to visit each. It is up to the user to "
-"fully populate the distance matrix."
-msgstr "Para los usuarios, que no requieren utilizar distancias euclidianas, tenemos también la posibilidad de pasar una matriz de distancia que resuelve y devuelve una lista ordenada de nodos con el mejor orden visita de cada nodo. Es el usuario debe llenar completamente la matriz de distancia."
-
-# 900d7d9a9cfe4f48a183120d63a6b5fb
-#: ../../../src/tsp/doc/index.rst:97
-msgid "``float[][]`` distance matrix of points"
-msgstr "``float[][]`` matriz de distancia de puntos"
-
-# ffe889182e9b49e48573a830538e2f76
-#: ../../../src/tsp/doc/index.rst:98
-msgid "``int4`` index of the start point"
-msgstr "``int4`` índice del punto de inicio"
-
-# 7ff184ff9d034484941644d3528f9b11
-#: ../../../src/tsp/doc/index.rst:99
-msgid "``int4`` (optional) index of the end node"
-msgstr "``int4`` (opcional) índice del nodo final"
-
-# a7886e5620ad48308a92c602d785b979
-#: ../../../src/tsp/doc/index.rst:101
-msgid ""
-"The ``end`` node is an optional parameter, you can just leave it out if you "
-"want a loop where the ``start`` is the depot and the route returns back to "
-"the depot. If you include the ``end`` parameter, we optimize the path from "
-"``start`` to ``end`` and minimize the distance of the route while include "
-"the remaining points."
-msgstr "El nodo final  ``end`` es un parámetro opcional, se puede omitir cuando se requiere un bucle donde el principio ``start`` es un depósito  y la ruta debe regresar de vuelta al depósito. Al incluir el parámetro  final ``end``, se optimiza el camino de principio ``start``  al final ``end`` y se reduce al mínimo la distancia de la ruta al ir incluyendo los puntos restantes."
-
-# 3328187fb6f24c06bd2ade2fb9daff6c
-#: ../../../src/tsp/doc/index.rst:103
-msgid ""
-"The distance matrix is a multidimensional `PostgreSQL array type "
-"<http://www.postgresql.org/docs/9.1/static/arrays.html>`_ that must be ``N x"
-" N`` in size."
-msgstr "La matriz de distancias es un `array de PostgreSQL <http://www.postgresql.org/docs/9.1/static/arrays.html>`_  multidimensional que debe ser de tamaño ``N x N``."
-
-# 1768ea2352234c129198dbacd1452e65
-#: ../../../src/tsp/doc/index.rst:105
-msgid "The result will be N records of ``[ seq, id ]``:"
-msgstr "El resultado será de N registros de ``[ seq, id ]``:"
-
-# f8e56b07da754f4396ccb1daa52b8213
-#: ../../../src/tsp/doc/index.rst:108
-msgid "index into the matrix"
-msgstr "índice dentro de la matriz"
-
-# 700ed687dfd24327b5866cb91007c0ed
-#: ../../../src/tsp/doc/index.rst:112
-msgid "Footnotes"
-msgstr "Notas al pie"
-
-# bae6c65f712c4ff9b0fd388153cf42f7
-#: ../../../src/tsp/doc/index.rst:113
-msgid ""
-"There was some thought given to pre-calculating the driving distances "
-"between the nodes using Dijkstra, but then I read a paper (unfortunately I "
-"don't remember who wrote it), where it was proved that the quality of TSP "
-"with euclidean distance is only slightly worse than one with real distance "
-"in case of normal city layout. In case of very sparse network or rivers and "
-"bridges it becomes more inaccurate, but still wholly satisfactory. Of course"
-" it is nice to have exact solution, but this is a compromise between quality"
-" and speed (and development time also). If you need a more accurate "
-"solution, you can generate a distance matrix and use that form of the "
-"function to get your results."
-msgstr "Se ha pensado sobre  precalcular las distancias de manejo entre los nodos usando Dijkstra, pero después de leer un artículo (por desgracia no recuerdo quién lo escribió), en el cuál se comprobó que la calidad del TSP con distancia euclidiana es sólo ligeramente peor que uno con las distancias reales en el caso de la distribución normal de una ciudad. En caso de una escasa red o ríos y puentes se vuelve todavía más inexacta, pero es una solución enteramente satisfactoria. Claro qu [...]
-
-# aeabcb34ceb245ac8c9c4dd783bae696
-#: ../../../src/tsp/doc/index.rst:117
-msgid "History"
-msgstr "Historia"
-
-# 83259e3ddfad4bc8a503e3daa04b99d5
-#: ../../../src/tsp/doc/index.rst:118
-msgid "Renamed in version 2.0.0"
-msgstr "Renombrado en la versión 2.0.0"
-
-# 537d6a4a4cc64451857537f64823ac72
-#: ../../../src/tsp/doc/index.rst:119
-msgid "GAUL dependency removed in version 2.0.0"
-msgstr "Dependencia de la GAUL eliminada en la versión 2.0.0"
-
-# 51493667159c4c6395a48ada45bc3ddb
-#: ../../../src/tsp/doc/index.rst:123
-msgid "Examples"
-msgstr "Ejemplos"
-
-# 7c2ef386cc424fe5a5781147e3ea4cc2
-#: ../../../src/tsp/doc/index.rst:125
-msgid ""
-"Using SQL parameter (all points from the table, atarting from 6 and ending "
-"at 5). We have listed two queries in this example, the first might vary from"
-" system to system because there are multiple equivalent answers. The second "
-"query should be stable in that the length optimal route should be the same "
-"regardless of order."
-msgstr "Usando el parámetro SQL (todos los puntos de la tabla,  comenzando en 6 y terminando en 5).  En este ejemplo, hemos enumerado dos consultas, la primera puede variar de sistema a sistema porque hay varias respuestas equivalentes. La segunda consulta debe ser estable en que la ruta óptima ya que la longitud debe ser la misma independientemente del orden."
-
-# 41662adbab25461784b154100646e929
-#: ../../../src/tsp/doc/index.rst:159
-msgid "Using distance matrix (A loop starting from 1)"
-msgstr "Utilizando la matriz de distancia (un circuito a partir de 1)"
-
-# 936788f1e0c2469ba7d71161a6320815
-#: ../../../src/tsp/doc/index.rst:161
-msgid ""
-"When using just the start node you are getting a loop that starts with 1, in"
-" this case, and travels through the other nodes and is implied to return to "
-"the start node from the last one in the list. Since this is a circle there "
-"are at least two possible paths, one clockwise and one counter-clockwise "
-"that will have the same length and be equall valid. So in the following "
-"example it is also possible to get back a sequence of ids = {1,0,3,2} "
-"instead of the {1,2,3,0} sequence listed below."
-msgstr "Cuando se utiliza sólo el nodo de inicio, entoces se tiene un bucle que comienza, en este caso, con 1 y viaja a través de los otros nodos y se sobreentiende que regresa al nodo inicial desde el último nodo de la lista. Puesto que esto es un bucle, hay al menos dos posibles caminos, uno hacia la derecha y otro en sentido opuesto que tienen la misma longitud y ambos son igualmente válidos. Así que en el ejemplo siguiente también es posible recuperar una secuencia de identificadores [...]
-
-# 95907dec9016432f8b75f45be9e231c3
-#: ../../../src/tsp/doc/index.rst:175
-msgid "Using distance matrix (Starting from 1, ending at 2)"
-msgstr "Utilizando la matriz de distancia (a partir de 1, terminando en 2)"
-
-# c376ad2787cd4f4abf9764fbe86699b2
-#: ../../../src/tsp/doc/index.rst:189
-msgid ""
-"Using the vertices table edge_table_vertices_pgr generated by "
-":ref:`pgr_create_topology`. Again we have two queries where the first might "
-"vary and the second is based on the overal path length."
-msgstr "Usando la tabla de vértices edge_table_vertices_pgr generada por :ref:`pgr_create_topology`. De nuevo tenemos dos consultas donde la primera puede variar y la segunda se basa en la longitud total del camino."
-
-# c3d22bacc29d477ca8c5a118ddedb8f4
-#: ../../../src/tsp/doc/index.rst:226
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "Las consultas usan la red de ejemplo  :ref:`sampledata`"
-
-# 4f5c93447689413e86e9ed2751abff8f
-#: ../../../src/tsp/doc/index.rst:230
-msgid "See Also"
-msgstr "Véase también"
-
-# 5f49eba1079b40d297bf0872ae69fe06
-#: ../../../src/tsp/doc/index.rst:232
-msgid ":ref:`type_cost_result`"
-msgstr ":ref:`type_cost_result`"
-
-# 81d591e953334f24b72e9680e2ae42f9
-#: ../../../src/tsp/doc/index.rst:233
-msgid "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
-msgstr "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
-
-# 2c62ab4de73248479f416573176f0c4a
-#: ../../../src/tsp/doc/index.rst:234
-msgid "http://en.wikipedia.org/wiki/Simulated_annealing"
-msgstr "http://en.wikipedia.org/wiki/Simulated_annealing"
diff --git a/doc/i18n/fr/LC_MESSAGES/doc/index.po b/doc/i18n/fr/LC_MESSAGES/doc/index.po
deleted file mode 100644
index ac28437..0000000
--- a/doc/i18n/fr/LC_MESSAGES/doc/index.po
+++ /dev/null
@@ -1,359 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (187a022 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-23 21:48\n"
-"PO-Revision-Date: 2013-09-24 02:49+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# c86028e885c64c0987f44bbcc08fb02a
-#: ../../index.rst:13
-msgid "Table of Contents"
-msgstr "Table des matières"
-
-# 32111013f9c94976b553857e93812724
-#: ../../index.rst:15
-msgid ""
-"pgRouting extends the `PostGIS <http://postgis.net>`_/`PostgreSQL "
-"<http://postgresql.org>`_ geospatial database to provide geospatial routing "
-"and other network analysis functionality."
-msgstr "pgRouting est une extension de la base de données géospatiale `PostGIS <http://postgis.net>`_/`PostgreSQL <http://postgresql.org>`_ afin de proposer des fonctionnalités de routage géospatial et d'autres analyses de réseaux."
-
-# cd5bc882f7f3412b8a937ba25e203de8
-#: ../../index.rst:17
-msgid "This is the manual for pgRouting |release|."
-msgstr "Ceci est le manuel de pgRouting |release|."
-
-# d928c97ad24c4daeae96bb02b87c5a6d
-#: ../../index.rst:23
-msgid ""
-"The pgRouting Manual is licensed under a `Creative Commons Attribution-Share"
-" Alike 3.0 License <http://creativecommons.org/licenses/by-sa/3.0/>`_. Feel "
-"free to use this material any way you like, but we ask that you attribute "
-"credit to the pgRouting Project and wherever possible, a link back to "
-"http://pgrouting.org. For other licenses used in pgRouting see the "
-":ref:`license` page."
-msgstr "Le Manuel pgRouting est distribué sous `Creative Commons Attribution-Share Alike 3.0 License <http://creativecommons.org/licenses/by-sa/3.0/>`_. N'hésitez pas à utiliser ce manuel comme vous le souhaitez, mais nous demandons que vous mentionnez le crédit au Projet pgRouting et à chaque fois que cela est possible un lien vers http://pgrouting.org. Pour les autres licences utilisées dans pgRouting, voir la page :ref:`license`."
-
-# 9024be66e4ef47b9b53de9a42af4550d
-#: ../../index.rst:27
-msgid "General"
-msgstr "Général"
-
-# 268439cb0a4f4417b56ca21d51394850
-#: ../../index.rst:40
-msgid "Tutorial"
-msgstr "Tutoriel"
-
-# bf01af3d0d3244f283f5b3fab105caad
-#: ../../index.rst:42
-msgid ":ref:`Tutorial <tutorial1>`"
-msgstr ""
-
-# 116777f411a248f9afe42b9b51679b78
-#: ../../index.rst:44
-msgid ":ref:`Getting started <tutorial>`"
-msgstr ""
-
-# 2066f7d15ec8444c833547cfb3b06a98
-#: ../../index.rst:45
-msgid ":ref:`topology` for an overview of a topology for routing algorithms."
-msgstr ""
-
-# 2753f71d0fc14b0bbabb14a5180b10d9
-#: ../../index.rst:46
-msgid ":ref:`analytics` for an overview of the analysis of a graph."
-msgstr ""
-
-# 042f858c16ca4c7ea9fb4baa62efdd44
-#: ../../index.rst:47
-msgid ":ref:`custom_query` that is used in the routing algorithms."
-msgstr ""
-
-# 13f4fade1d47458abf8ba3706110d874
-#: ../../index.rst:48
-msgid ":ref:`performance` to improve your performance."
-msgstr ""
-
-# c3ccc6e6651e47f9b9d271c60976b15c
-#: ../../index.rst:49
-msgid ":ref:`custom_wrapper` to colaborate with a wrapper."
-msgstr ""
-
-# 233aebcc461745c2b0811b7f4328ce3a
-#: ../../index.rst:50
-msgid ":ref:`recipes` to colaborate with a recipe."
-msgstr ""
-
-# 3ae724b7e3714db2942fb7c77124cfc4
-#: ../../index.rst:51
-msgid ":ref:`sampledata` that is used in the examples of this manual."
-msgstr ""
-
-# c92e843c52364963a35112272cb814fd
-#: ../../index.rst:61
-msgid ""
-"For a more complete introduction how to build a routing application read the"
-" `pgRouting Workshop <http://workshop.pgrouting.org>`_."
-msgstr "Pour une introduction plus complète sur comment construire une application de routage, lire l'`Atelier pgRouting <http://workshop.pgrouting.org>`_."
-
-# 524c7dc0d5654f319fc62f2ae08b86f7
-#: ../../index.rst:65
-msgid "Data Types"
-msgstr ""
-
-# e49a23cdc901419e8a3d5f17ed6c6ea0
-#: ../../index.rst:67
-msgid ":ref:`data_types`"
-msgstr ""
-
-# ef6b2fcc629f48c7b88d3ac78527893a
-#: ../../index.rst:69
-msgid ""
-":ref:`type_cost_result` -  A set of records to describe a path result with "
-"cost attribute."
-msgstr ""
-
-# 84a33ec406d2412c9e681656b4cb9b43
-#: ../../index.rst:70
-msgid ""
-":ref:`pgr_costResult3[]<type_cost_result3>` - A set of records to describe a"
-" path result with cost attribute."
-msgstr ""
-
-# 6a2ba698d366498caa046c97178f05d5
-#: ../../index.rst:71
-msgid ""
-":ref:`pgr_geomResult<type_geom_result>` - A set of records to describe a "
-"path result with geometry attribute."
-msgstr ""
-
-# 9c4629c11bc143a184a6564177b0e7bd
-#: ../../index.rst:80
-msgid "Functions reference"
-msgstr ""
-
-# 1f3545abdf7c42cdb73e76f5f149a31b
-#: ../../index.rst:82
-msgid ":ref:`topology_functions`"
-msgstr ""
-
-# 058f97425ccb4cb5870163ebbe948a72
-#: ../../index.rst:84
-msgid ""
-":ref:`pgr_create_topology` -  to create a topology based on the geometry."
-msgstr ""
-
-# e839b8e9c3664685a6dc346cac1ea039
-#: ../../index.rst:85
-msgid ""
-":ref:`pgr_create_vert_table` - to reconstruct the vertices table based on "
-"the source and target information."
-msgstr ""
-
-# 5d9cd0c5ac3043b99ae4fb495036d05f
-#: ../../index.rst:86
-msgid ""
-":ref:`pgr_analyze_graph`  - to analyze the edges and vertices of the edge "
-"table."
-msgstr ""
-
-# 714b5f8623914db981048d201845d040
-#: ../../index.rst:87
-msgid ":ref:`pgr_analyze_oneway` - to analyze directionality of the edges."
-msgstr ""
-
-# 5f3a1ebfa74d4463912b1c695028121d
-#: ../../index.rst:88
-msgid ":ref:`pgr_node_network`  -to create nodes to a not noded edge table."
-msgstr ""
-
-# 655d025751764d39b841997c13775783
-#: ../../index.rst:90
-msgid ":ref:`routing_functions`"
-msgstr ""
-
-# 6a94d292d24b45f7aafda5a754a6ba30
-#: ../../index.rst:92
-msgid ""
-":ref:`pgr_apspJohnson <pgr_apsp_johnson>`- All Pairs Shortest Path, "
-"Johnson’s Algorithm"
-msgstr ""
-
-# fbda3d31d88e4df891d2095dfbb8ab52
-#: ../../index.rst:93
-msgid ""
-":ref:`pgr_apspWarshall<pgr_apsp_warshall>` - All Pairs Shortest Path, Floyd-"
-"Warshall Algorithm"
-msgstr ""
-
-# 10cf6d194dcf4af2be81f0f8034cd5cb
-#: ../../index.rst:94
-msgid ":ref:`pgr_astar<pgr_astar>` - Shortest Path A*"
-msgstr ""
-
-# 72aa55b5147341e6be8b3ac29edc5056
-#: ../../index.rst:95
-msgid ":ref:`pgr_bdAstar<bd_astar>` - Bi-directional A* Shortest Path"
-msgstr ""
-
-# 659e5f56cae84ce598a95fe83608da28
-#: ../../index.rst:96
-msgid ""
-":ref:`pgr_bdDijkstra<bd_dijkstra>` - Bi-directional Dijkstra Shortest Path"
-msgstr ""
-
-# 2a0544bf5ac444cb9f814c98ddd9cac0
-#: ../../index.rst:97
-msgid ":ref:`pgr_dijkstra<pgr_dijkstra>` - Shortest Path Dijkstra"
-msgstr ""
-
-# 0d062718bba84332bc05094be53c7b0b
-#: ../../index.rst:98
-msgid ""
-":ref:`pgr_kDijkstra<pgr_kdijkstra>` - Mutliple destination Shortest Path "
-"Dijkstra"
-msgstr ""
-
-# 388e0ef15cac4c7a87ed5f5f7d164eab
-#: ../../index.rst:99
-msgid ":ref:`pgr_ksp<ksp>` - K-Shortest Path"
-msgstr ""
-
-# 488a2b3901c548b394c466b7580ea9a4
-#: ../../index.rst:100
-msgid ":ref:`pgr_tsp<pgr_tsp>` - Traveling Sales Person"
-msgstr ""
-
-# dc4452cb04fb47fb9d72b4a408ffabeb
-#: ../../index.rst:101
-msgid ":ref:`pgr_trsp<trsp>` - Turn Restriction Shortest Path (TRSP)"
-msgstr ""
-
-# e49a23cdc901419e8a3d5f17ed6c6ea0
-#: ../../index.rst:103
-msgid ":ref:`dd_index`"
-msgstr ""
-
-# 4f472ddb75b84b6abd644e500b7415f4
-#: ../../index.rst:105
-msgid ":ref:`pgr_driving_distance` - Driving Distance"
-msgstr ""
-
-# 607bcbfc39c649a4b54020f8d62ce9d0
-#: ../../index.rst:106
-msgid ":ref:`pgr_alphaShape` - Alpha shape computation"
-msgstr ""
-
-# f2e6773ccf394c739af44245aaaf5d02
-#: ../../index.rst:107
-msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
-msgstr ""
-
-# ef6b2fcc629f48c7b88d3ac78527893a
-#: ../../index.rst:110
-msgid ""
-":ref:`pgr_get_column_name` - to get the name of the column as is stored in "
-"the postgres administration tables."
-msgstr ""
-
-# b080d86d06dd4b248b6191f5c98ed0b7
-#: ../../index.rst:111
-msgid ""
-":ref:`pgr_get_table_name` - to retrieve the name of the table as is stored "
-"in the postgres administration tables."
-msgstr ""
-
-# 187f8a7ace1944dda76ab8ae8460d727
-#: ../../index.rst:112
-msgid ":ref:`pgr_is_column_indexed` - to check if the column is indexed."
-msgstr ""
-
-# 767ec7460a314ae0ae3ad47836c94182
-#: ../../index.rst:113
-msgid ""
-":ref:`pgr_is_column_in_table` - to check only for the existance of the "
-"column."
-msgstr ""
-
-# 6d632e8288614fc59c04dbdfa5fceb36
-#: ../../index.rst:114
-msgid ""
-":ref:`pgr_point_to_id` -to insert/get the id of the inserted point in a "
-"vertices table."
-msgstr ""
-
-# fd1def8169f543b9afc595abde9021ef
-#: ../../index.rst:115
-msgid ""
-":ref:`pgr_quote_ident` - to quotes the input text to be used as an "
-"identifier in an SQL statement string."
-msgstr ""
-
-# 79be0c2066f3417fb063d0f11b8858bb
-#: ../../index.rst:116
-msgid ":ref:`pgr_version` - to get pgRouting's version information."
-msgstr ""
-
-# e92514488cf348499952b55020516c0f
-#: ../../index.rst:117
-msgid ":ref:`pgr_versionless` - to compare two version numbers."
-msgstr ""
-
-# 52049dec1aa94a84b44977cf3645aeee
-#: ../../index.rst:118
-msgid ""
-":ref:`pgr_start_point` - to get the start point of a (multi)linestring."
-msgstr ""
-
-# b58261fb708141cfbd15342b18e83df7
-#: ../../index.rst:119
-msgid ":ref:`pgr_end_point` - to get the end point of a (multi)linestring."
-msgstr ""
-
-# ccf6b70d55024c8cb87cd02c497cd394
-#: ../../index.rst:138
-msgid "Developer"
-msgstr "Développeur"
-
-# bc20d365d4514a6dbf644153d3323f8d
-#: ../../index.rst:145
-msgid ":ref:`change_log`"
-msgstr ""
-
-# a6c26cabff9f4df5bbaa3de0ed924b11
-#: ../../index.rst:147
-msgid ":ref:`changelog_2_0`"
-msgstr ""
-
-# 9d2d97e5ab6a4af08a3f5903f9a87114
-#: ../../index.rst:148
-msgid ":ref:`changelog_1_x`"
-msgstr ""
-
-# d1533298308344f6bfa8e1644e3aace0
-#: ../../index.rst:157
-msgid "Indices and tables"
-msgstr "Index et tableaux"
-
-# e49a23cdc901419e8a3d5f17ed6c6ea0
-#: ../../index.rst:158
-msgid ":ref:`genindex`"
-msgstr ":ref:`genindex`"
-
-# 1572d01be82949ec8e487a5dc596b6a4
-#: ../../index.rst:159
-msgid ":ref:`search`"
-msgstr ":ref:`search`"
diff --git a/doc/i18n/fr/LC_MESSAGES/doc/index_man.po b/doc/i18n/fr/LC_MESSAGES/doc/index_man.po
deleted file mode 100644
index b8e179e..0000000
--- a/doc/i18n/fr/LC_MESSAGES/doc/index_man.po
+++ /dev/null
@@ -1,57 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:11+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 3f6e76c37d304447af292931aa52e56f
-#: ../../index_man.rst:13
-msgid "pgRouting Reference"
-msgstr "Référence de pgRouting"
-
-# 8347fe2ff4be4f9fbcaafbad7adac911
-#: ../../index_man.rst:15
-msgid ""
-"pgRouting extends the `PostGIS <http://postgis.net>`_/`PostgreSQL "
-"<http://postgresql.org>`_ geospatial database to provide geospatial routing "
-"and other network analysis functionality."
-msgstr "pgRouting est une extension de la base de données géospatiale `PostGIS <http://postgis.net>`_/`PostgreSQL <http://postgresql.org>`_ afin de proposer des fonctionnalités de routage géospatial et d'autres analyses de réseaux."
-
-# 3f626ce82e7e467c8d0b401e6a88d9ca
-#: ../../index_man.rst:22
-msgid "pgRouting provides several :ref:`common functions <common>`:"
-msgstr "pgRouting fournit plusieurs :ref:`fonctions communes <common>`:"
-
-# 387e53a164e94fa1a2c34d515a8958d2
-#: ../../index_man.rst:36
-msgid "pgRouting defines a few :ref:`custom data types <data_types>`:"
-msgstr ""
-
-# af0d92429b274dda891066d0b07d530f
-#: ../../index_man.rst:50
-msgid "pgRouting functions in alphabetical order:"
-msgstr "les fonctions pgRouting dans l'ordre alphabétique :"
-
-# 9f2f876866c6467ba1b45223a42790c6
-#: ../../index_man.rst:66
-msgid "If pgRouting is compiled with \"Driving Distance\" enabled:"
-msgstr "Si pgRouting est exécuté avec \"Driving Distance\" activé :"
-
-# 1e0ce2246f904afbaf6c882025206eaa
-#: ../../index_man.rst:75
-msgid "Some functions from previous releases may have been removed."
-msgstr "Certaines fonctions des precédentes distributions peuvent avoir été supprimées."
diff --git a/doc/i18n/fr/LC_MESSAGES/doc/src/changelog/1_x.po b/doc/i18n/fr/LC_MESSAGES/doc/src/changelog/1_x.po
deleted file mode 100644
index f95630e..0000000
--- a/doc/i18n/fr/LC_MESSAGES/doc/src/changelog/1_x.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-08-28 03:50+0000\n"
-"Last-Translator: erikap\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 6a8f15af6c6d4c709a455b1e6e7913a8
-#: ../../src/changelog/1_x.rst:13
-msgid "pgRouting 1.x Release Notes"
-msgstr "Notes de version pgRouting 1.0"
-
-# 35ec395b4f35487d95e18e46599976e4
-#: ../../src/changelog/1_x.rst:15
-msgid ""
-"The following release notes have been copied from the previous "
-"``RELEASE_NOTES`` file and are kept as a reference. Release notes starting "
-"with :ref:`version 2.0.0 <changelog_2_0>` will follow a different schema."
-msgstr "Les notes de version suivantes ont été copiées depuis le fichier précédent ``RELEASE_NOTES`` et sont gardées comme une référence. Les notes de version à partir de  :ref:`version 2.0.0 <changelog_2_0>` vont suivre un schéma différent."
-
-# 703dd8a8fe4d45c1859069c1117ec4b3
-#: ../../src/changelog/1_x.rst:20
-msgid "Changes for release 1.05"
-msgstr "Changements pour la version 1.05"
-
-# e3f8283c49024042ad77d6924336865c
-# b2d8993542324fb6b2107164df0ba258
-# 88cd476b4bc3446b89dd63ea7ad91e56
-# d1043630671546faabf110ae51109494
-#: ../../src/changelog/1_x.rst:22 ../../src/changelog/1_x.rst:29
-#: ../../src/changelog/1_x.rst:50 ../../src/changelog/1_x.rst:57
-msgid "Bugfixes"
-msgstr "Résolutions de bug"
-
-# faaf3c4aa64e4806b5b41ecb230f4466
-#: ../../src/changelog/1_x.rst:26
-msgid "Changes for release 1.03"
-msgstr "Changements pour la version 1.03"
-
-# c258bbbcb3e2445f8f7eb9dde242b0e5
-#: ../../src/changelog/1_x.rst:28
-msgid "Much faster topology creation"
-msgstr "Création de topologie beaucoup plus rapide"
-
-# 059297cbe42d4af6b72b9e0d2b6ad06e
-#: ../../src/changelog/1_x.rst:33
-msgid "Changes for release 1.02"
-msgstr "Changements pour la version 1.02"
-
-# cb2792b313ca4c3fa513b9eb95c5de18
-# 5a7078f4834449bba4a61211426d8ed9
-#: ../../src/changelog/1_x.rst:35 ../../src/changelog/1_x.rst:42
-msgid "Shooting* bugfixes"
-msgstr "Résolutions de bug "
-
-# 5feb24afeb55480690c6589309388866
-#: ../../src/changelog/1_x.rst:36
-msgid "Compilation problems solved"
-msgstr "Problèmes de compilation résolus"
-
-# 0e0f4a9f6a22461baa8bc5da60cfd41b
-#: ../../src/changelog/1_x.rst:40
-msgid "Changes for release 1.01"
-msgstr "Changements pour la version 1.01"
-
-# 8ea96e385ab44490850a2a73aa013f9b
-#: ../../src/changelog/1_x.rst:46
-msgid "Changes for release 1.0"
-msgstr "Changements pour la version 1.0"
-
-# efa896c6a92842fdabbf06c4f8c5b640
-#: ../../src/changelog/1_x.rst:48
-msgid "Core and extra functions are separated"
-msgstr "Fonctions principales et extra sont séparées"
-
-# 51ced072bcbc470c87cc5fd90912467f
-#: ../../src/changelog/1_x.rst:49
-msgid "Cmake build process"
-msgstr "Processus build Cmake"
-
-# ee707024082d499a962851a420e20d5f
-#: ../../src/changelog/1_x.rst:54
-msgid "Changes for release 1.0.0b"
-msgstr "Changements pour la version 1.0.0b"
-
-# d94242dc07a94aa5b9cb20cd4fd8f85d
-#: ../../src/changelog/1_x.rst:56
-msgid "Additional SQL file with more simple names for wrapper functions"
-msgstr "Fichier SQL additionnel avec des noms plus simples pour les fonctions de wrapper"
-
-# 178ec0ecd8a74084a59974d12e30f589
-#: ../../src/changelog/1_x.rst:61
-msgid "Changes for release 1.0.0a"
-msgstr "Changements pour la version 1.0.0a"
-
-# 5591af5527fc4ff68fbcfb9268f20564
-#: ../../src/changelog/1_x.rst:63
-msgid "Shooting* shortest path algorithm for real road networks"
-msgstr "Algorithme de plus court chemin Shooting* pour les réseaux routiers réels"
-
-# a0818010adb1442cbe7e345f95689509
-#: ../../src/changelog/1_x.rst:64
-msgid "Several SQL bugs were fixed"
-msgstr "Plusieurs bugs SQL ont été résolus"
-
-# 41324ae038c94f6ea5a7bd9cc30e54fb
-#: ../../src/changelog/1_x.rst:68
-msgid "Changes for release 0.9.9"
-msgstr "Changements pour la version 0.9.9"
-
-# b89bdfd11c2f4cf29ca3dd3cfd42cb8e
-#: ../../src/changelog/1_x.rst:70
-msgid "PostgreSQL 8.2 support"
-msgstr "Support PostgreSQL 8.2"
-
-# 302372f9f60f46d68b18a299cdfd55a6
-#: ../../src/changelog/1_x.rst:71
-msgid ""
-"Shortest path functions return empty result if they couldn’t find any path"
-msgstr "Les fonctions de plus court chemin retournent un résultat vide s'ils ne pouvaient pas trouver un chemin"
-
-# 62b481cbf4d14ffcb2f17ad4a86dc60e
-#: ../../src/changelog/1_x.rst:75
-msgid "Changes for release 0.9.8"
-msgstr "Changements pour la version 0.9.8"
-
-# 1190ef59b8584d6d9c1fd248ca4fd970
-#: ../../src/changelog/1_x.rst:77
-msgid "Renumbering scheme was added to shortest path functions"
-msgstr "Schéma de renumérotation a été ajouté aux fonctions de plus court chemin"
-
-# 33634f672fbb4bdbbfba7912efeca26d
-#: ../../src/changelog/1_x.rst:78
-msgid "Directed shortest path functions were added"
-msgstr "Les fonctions de plus court chemin ont été ajoutées"
-
-# 13bb4413398f4f5d921257cdcab82564
-#: ../../src/changelog/1_x.rst:79
-msgid "routing_postgis.sql was modified to use dijkstra in TSP search"
-msgstr "routing_postgis.sql a été modifié pour utiliser Dijkstra dans la recherche TSP"
diff --git a/doc/i18n/fr/LC_MESSAGES/doc/src/changelog/2_0.po b/doc/i18n/fr/LC_MESSAGES/doc/src/changelog/2_0.po
deleted file mode 100644
index e6948df..0000000
--- a/doc/i18n/fr/LC_MESSAGES/doc/src/changelog/2_0.po
+++ /dev/null
@@ -1,171 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:12+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 74e7cac777254569ba4d691b13b71fb6
-#: ../../src/changelog/2_0.rst:13
-msgid "pgRouting 2.0 Release Notes"
-msgstr "Notes de version pgRouting 2.0"
-
-# 4a488611749d4e66b0259dbca6bb3a1f
-#: ../../src/changelog/2_0.rst:15
-msgid ""
-"With the release of pgRouting 2.0 the library has abandoned backwards "
-"compatibility to :ref:`pgRouting 1.x <changelog_1_x>` releases. We did this "
-"so we could restructure pgRouting, standardize the function naming, and "
-"prepare the project for future development. As a result of this effort, we "
-"have been able to simplify pgRouting, add significant new functionality, "
-"integrate documentation and testing into the source tree and make it easier "
-"for multiple developers to make contribution."
-msgstr "Avec la version de pgRouting 2.0 la librairie a abandonné la compatibilité restrospective aux versions :ref:`pgRouting 1.x <changelog_1_x>`. Nous avons fait ça pour que nous puissions restructurer pgRouting, standardiser le nommage de fonction, et préparer le projet pour un développement future. Comme un résultat de cet effort, nous avons été capable de simplifier pgRouting, ajouter de façon significative de nouvelles fonctionnalités, intégrer de la documentation et tester dans l [...]
-
-# 0124322daba943368892e1a062e5a232
-#: ../../src/changelog/2_0.rst:17
-msgid ""
-"For important changes see the following release notes. To see the full list "
-"of changes check the list of `Git commits "
-"<https://github.com/pgRouting/pgrouting/commits>`_ on Github."
-msgstr "Pour les changements importants voir les notes de versions suivantes. Pour voir la liste complète des changements, vérifiez la liste de `Git commits <https://github.com/pgRouting/pgrouting/commits>` sur Github."
-
-# 591de33525284db5b8eae7f12b38a366
-#: ../../src/changelog/2_0.rst:28
-msgid "Changes for 2.0.0"
-msgstr "Changements pour la version 2.0.0"
-
-# 4d95000a614d4236a5cc53a2fc2f49ac
-#: ../../src/changelog/2_0.rst:30
-msgid ""
-"Graph Analytics - tools for detecting and fixing connection some problems in"
-" a graph"
-msgstr "Graph Analytics - outils pour la détection et la résolution certains problèmes de connexion dans un graphe."
-
-# 7b0e1ec73752479fabaaeb4964d2e802
-#: ../../src/changelog/2_0.rst:31
-msgid "A collection of useful utility functions"
-msgstr "Une collection de fonctions utiles."
-
-# 2f200415daa94b76803619813ac6721a
-#: ../../src/changelog/2_0.rst:32
-msgid ""
-"Two new All Pairs Short Path algorithms (pgr_apspJohnson, pgr_apspWarshall)"
-msgstr "Deux nouveaux algorithmes de plus court chemin toutes paires (pgr_apspJohnson, pgr_apspWarshall)"
-
-# f254175913274f7a835197ece43e779e
-#: ../../src/changelog/2_0.rst:33
-msgid ""
-"Bi-directional Dijkstra and A-star search algorithms (pgr_bdAstar, "
-"pgr_bdDijkstra)"
-msgstr "Algorithmes de recherches bidirectionnels Dijkstra et A-star (pgr_bdAstar, pgr_bdDijkstra)"
-
-# 3c6748f59dcf427da34f9feed68058f9
-#: ../../src/changelog/2_0.rst:34
-msgid "One to many nodes search (pgr_kDijkstra)"
-msgstr "Recherche à nœuds un à plusieurs (pgr_kDijkstra)"
-
-# f9d646b786144bd481006e74130f662e
-#: ../../src/changelog/2_0.rst:35
-msgid "K alternate paths shortest path (pgr_ksp)"
-msgstr "Plus court chemin K chemins alternatifs (pgr_ksp)"
-
-# 11ef9fff94d246b48fafc85bc8dc3925
-#: ../../src/changelog/2_0.rst:36
-msgid ""
-"New TSP solver that simplifies the code and the build process (pgr_tsp), "
-"dropped \"Gaul Library\" dependency"
-msgstr "Nouveau solveur TSP qui simplifie le code et le processus de build (pgr_tsp), supprimé la dépendance \"Gaul Library\" "
-
-# d1f317bb785d45fa861870a35ff12e7b
-#: ../../src/changelog/2_0.rst:37
-msgid "Turn Restricted shortest path (pgr_trsp) that replaces Shooting Star"
-msgstr "Le plus court chemin à virage restreint (pgr_trsp) qui remplace Shooting Star"
-
-# 21689470d861417487dd6888bf38ae8b
-#: ../../src/changelog/2_0.rst:38
-msgid "Dropped support for Shooting Star"
-msgstr "Support supprimé pour Shooting Star"
-
-# c293b041c6974506a333575050aca673
-#: ../../src/changelog/2_0.rst:39
-msgid ""
-"Built a test infrastructure that is run before major code changes are "
-"checked in"
-msgstr "Construit une infrastructure de test qui est exécutée avant que des changements de code majeurs soient enregistrés."
-
-# 3c96b251f45b4603a3e474e14d3756a9
-#: ../../src/changelog/2_0.rst:40
-msgid ""
-"Tested and fixed most all of the outstanding bugs reported against 1.x that "
-"existing in the 2.0-dev code base."
-msgstr "Testé et résolu la plupart des bugs non résolus rapportés sur la 1.x et existant dans la base de code 2.0-dev."
-
-# ae370e64d8204092bca92f34ddc90a99
-#: ../../src/changelog/2_0.rst:41
-msgid "Improved build process for Windows"
-msgstr "Processus de build amélioré pour Windows"
-
-# 03319867fd7d47ecade2299089b90c8a
-#: ../../src/changelog/2_0.rst:42
-msgid ""
-"Automated testing on Linux and Windows platforms trigger by every commit"
-msgstr ""
-
-# 8543438d8ac34db9816e97ca074dc4bc
-#: ../../src/changelog/2_0.rst:43
-msgid "Modular library design"
-msgstr "Conception en librairie modulaire"
-
-# 903ec2fa9bb64f87a98c97f8951780d1
-#: ../../src/changelog/2_0.rst:44
-msgid "Compatibility with PostgreSQL 9.1 or newer"
-msgstr "Compatibilité avec PostgreSQL 9.1 ou plus récent"
-
-# 73a67ebe3dbd4dc3a3c437b2180fed37
-#: ../../src/changelog/2_0.rst:45
-msgid "Compatibility with PostGIS 2.0 or newer"
-msgstr "Compatibilité avec PostGIS 2.0 ou plus récent"
-
-# 16e7796b31a94c2781e0f38903b17c26
-#: ../../src/changelog/2_0.rst:46
-msgid "Installs as PostgreSQL EXTENSION"
-msgstr "Installe comme une EXTENSION PostgreSQL"
-
-# d5d4a4a79da14ccea4bdbe1310cf5113
-#: ../../src/changelog/2_0.rst:47
-msgid "Return types refactored and unified"
-msgstr "Retourne les types remaniés et unifiés "
-
-# aeff1e0f8f5144a38127aabb5e2dc2fa
-#: ../../src/changelog/2_0.rst:48
-msgid "Support for table SCHEMA in function parameters"
-msgstr "Support pour la table SCHEMA dans les paramètres de fonction"
-
-# ae6e9cdcdc384571a1803e4b5e3e9718
-#: ../../src/changelog/2_0.rst:49
-msgid "Support for ``st_`` PostGIS function prefix"
-msgstr "Support pour préfixe de fonction ``st_`` PostGIS"
-
-# b0f6572717ed4979a266117c537f9a5d
-#: ../../src/changelog/2_0.rst:50
-msgid "Added ``pgr_`` prefix to functions and types"
-msgstr "Ajouté préfixe ``pgr_`` aux fonctions et types"
-
-# 6178fdcf0cd74f3898a7386ed99f36b4
-#: ../../src/changelog/2_0.rst:51
-msgid "Better documentation: http://docs.pgrouting.org"
-msgstr "Meilleure documentation: http://docs.pgrouting.org"
diff --git a/doc/i18n/fr/LC_MESSAGES/doc/src/developer/discontinued.po b/doc/i18n/fr/LC_MESSAGES/doc/src/developer/discontinued.po
deleted file mode 100644
index 3e4cb59..0000000
--- a/doc/i18n/fr/LC_MESSAGES/doc/src/developer/discontinued.po
+++ /dev/null
@@ -1,56 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-08-21 18:10+0000\n"
-"Last-Translator: erikap\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# ecfce536b0aa4abcb4b588ec5c569d01
-#: ../../src/developer/discontinued.rst:13
-msgid "Discontinued Functions"
-msgstr "Fonctions discontinues"
-
-# a62da7ecbf3e4e56817c5acd4b283ad1
-#: ../../src/developer/discontinued.rst:15
-msgid ""
-"Especially with new major releases functionality may change and functions "
-"may be discontinued for various reasons. Functionality that has been "
-"discontinued will be listed here."
-msgstr "Particulièrement avec les nouvelles versions majeures, des fonctionnalités peuvent changer et des fonctions peuvent être retirées pour diverses raisons. Toute fonctionnalité qui a été retirée est listée ici."
-
-# 778ac5fe0c47470883e33983eee7b86e
-#: ../../src/developer/discontinued.rst:22
-msgid "Shooting Star algorithm"
-msgstr "Algorithme Shooting Star"
-
-# b6e21b5fe8ff45d3b6ae4cd3e21ff661
-#: ../../src/developer/discontinued.rst:24
-msgid "Removed with 2.0.0"
-msgstr "Supprimé depuis 2.0.0"
-
-# 681aaa34e63344de87e7765476be87f2
-#: ../../src/developer/discontinued.rst:25
-msgid "Unresolved bugs, no maintainer, replaced with :ref:`trsp`"
-msgstr "Bugs non résolus,  maintenance non assurée, remplacé par :ref:`trsp`"
-
-# c11387652cc84dd7ad0e964baff5182e
-#: ../../src/developer/discontinued.rst:26
-msgid ""
-"Please :ref:`contact us <support>` if you're interested to sponsor or "
-"maintain this algorithm. The function signature is still available in "
-":ref:`common_legacy` but it is just a wrapper that throws an error. We have "
-"not included any of the old code for this in this release."
-msgstr "Merci de :ref:`nous contacter <support>` si vous êtes intéressés pour sponsoriser ou maintenir cet algorithme. La signature de fonction est toujours disponible dans :ref:`common_legacy` mais c'est juste une enveloppe qui lance une erreur. Nous avons inclus tout le code d'origine dans cette version."
diff --git a/doc/i18n/fr/LC_MESSAGES/doc/src/developer/index.po b/doc/i18n/fr/LC_MESSAGES/doc/src/developer/index.po
deleted file mode 100644
index e55fbeb..0000000
--- a/doc/i18n/fr/LC_MESSAGES/doc/src/developer/index.po
+++ /dev/null
@@ -1,246 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (187a022 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-23 15:04\n"
-"PO-Revision-Date: 2013-09-23 17:37+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# f28868894edd415ca79913b6f0e244b7
-#: ../../src/developer/index.rst:13
-msgid "Developer's Guide"
-msgstr "Guide du développeur"
-
-# 5c7d284d803042c0aa297ca41b59aac3
-#: ../../src/developer/index.rst:16
-msgid ""
-"All documentation should be in reStructuredText format. See: "
-"<http://docutils.sf.net/rst.html> for introductory docs."
-msgstr "Toute la documentation devrait être dans le format reStructuredText. Voir : <http://docutils.sf.net/rst.html> pour les docs d'introduction."
-
-# fd3435c9f90f438280eb94e20db8c6fd
-#: ../../src/developer/index.rst:20
-msgid "Source Tree Layout"
-msgstr "Disposition de l'Arbre des sources"
-
-# 08c39ee5a8574bfb93d3a5203a6c206b
-#: ../../src/developer/index.rst:23
-msgid "cmake scripts used as part of our build system."
-msgstr "Scripts cmake utilisés en partie pour notre système de build."
-
-# 268498e509b04dd09f0678cf538a8be0
-#: ../../src/developer/index.rst:26
-msgid ""
-"This is the algorithm source tree. Each algorithm should be contained in its"
-" on sub-tree with doc, sql, src, and test sub-directories. This might get "
-"renamed to \"algorithms\" at some point."
-msgstr ""
-
-# d3989e3985544061a6084f85961bdbc6
-#: ../../src/developer/index.rst:31
-msgid ""
-"This is an implementation of A* Search based on using Boost Graph libraries "
-"for its implementation. This is a Dijkstra shortest path implementation with"
-" a Euclidean Heuristic."
-msgstr "Ceci est une implémentation de la Recherche A* basée sur l'utilisation de la bibliothèque Boost Graph. Ceci est une implémentation du plus court chemin Dijkstra avec une Heuristique Euclidienne."
-
-# 8ff46e3f515e4df3b61b2e37998be2de
-#: ../../src/developer/index.rst:36
-msgid ""
-"At the moment this does not have an core in \"src\", but does have a lot of "
-"SQL wrapper code and topology code in the \"sql\" directory. *Algorithm "
-"specific wrappers should get move to the algorithm tree and appropriate "
-"tests should get added to validate the wrappers.*"
-msgstr "Pour le moment ceci n'a pas de core in \"src\", mais a un certain nombre de codes de wrappers SQL et de codes de topologie dans le répertoire \"sql\". *Les wrappers spécifiques d'algorithmes devraient être déplacées à l'arbre d'algorithme et les tests appropriés devraient être ajoutés pour valider les wrappers.*"
-
-# 8c544813a7ed4b4ca7df0ae3f01909c5
-#: ../../src/developer/index.rst:42
-msgid ""
-"This is an implementation of Dikjstra's shortest path solution using Boost "
-"Graph libraries for the implementation."
-msgstr "Ceci est une implémentation de la solution du plus court chemin Dikjstra utilisant les bibliothèques Boost Graph pour l'implémentation."
-
-# dfe2e1dfa3d0464d87fac14b128155cc
-#: ../../src/developer/index.rst:46
-msgid ""
-"This optional package creates driving distance polygons based on solving a "
-"Dijkstra shortest path solution, then creating polygons based on equal cost "
-"distances from the start point. This optional package requires CGAL "
-"libraries to be installed."
-msgstr "Ce paquet optionnel créée des polygones de driving distance basées sur la résolution de la solution du plus court chemin Dijkstra, ensuite en créant des polygones basés sur les distances de coût égal depuis le point de départ. Ce paquet optionnel requiert d'avoir installé les librairies CGAL."
-
-# 4f4e1c860f13452b9aa2fad3fe00b756
-#: ../../src/developer/index.rst:52
-msgid ""
-"*DEPRECATED and DOES NOT WORK and IS BEING REMOVED* This is an edge based "
-"shortest path algorithm that supports turn restrictions. It is based on "
-"Boost Graph. Do *NOT* use this algorithm as it is broken, instead use *trsp*"
-" which has the same functionality and is faster and give correct results."
-msgstr "*DESAPPROUVE et NE FONCTIONNE PAS et SUR LE POINT D'ETRE SUPPRIME* Ceci est une arête basée sur l'algorithme du plus court chemin qui supporte les restrictions de virage. It is based on Boost Graph. Ne *PAS* utiliser cet algorithme comme il est cassé, utiliser *trsp* à la place, qui a la même fonctionnalité et est plus rapide et donne des résultats corrects. "
-
-# a8264d72d19a45e183b7ef38fed374c4
-#: ../../src/developer/index.rst:59
-msgid ""
-"This is a turn restricted shortest path algorithm. It has some nice features"
-" like you can specify the start and end points as a percentage along an "
-"edge. Restrictions are stored in a separate table from the graph edges and "
-"this make it easier to manage the data."
-msgstr "Ceci est un algorithme du plus court chemin avec restrictions de virage. Il a des caractéristiques sympathiques comme vous pouvez spécifiez les points de début et la fin comme un pourcentage d'une arête. Les restrictions sont sauvegardées dans une table séparée des arêtes du graphe et cela rend plus facile de gérer les données."
-
-# 92992e85c1984abeacc10828b636b37b
-#: ../../src/developer/index.rst:65
-msgid ""
-"This optional package provides the ability to compute traveling salesman "
-"problem solutions and compute the resulting route. This optional package "
-"requires GAUL libaries to be installed."
-msgstr "Ce paquet optionnel fournit la capacité de calculer les solutions du problème du voyageur de commerce et calcule la route résultante. Ce paquet optionnel requiert l'installation des librairies GAUL."
-
-# afc268a384184a35a2ccf3b3faf2507e
-#: ../../src/developer/index.rst:70
-msgid "Miscellaneous scripts and tools."
-msgstr "Scripts divers et outils."
-
-# c7bdf010f55a48d788396bf4b9357c12
-#: ../../src/developer/index.rst:73
-msgid ""
-"This is the output directory where compiled libraries and installation "
-"targets are staged before installation."
-msgstr "Ceci est le répertoire de sortie où les cibles des bibliothèques compilées et des installations sont présentées avant l'installation."
-
-# 31864fdbc2584791b41a9db64d200fe6
-#: ../../src/developer/index.rst:78
-msgid "Documentation Layout"
-msgstr "Mise en page de la documentation"
-
-# da1837b55e014ead8cdaa106a149fe5b
-#: ../../src/developer/index.rst:80
-msgid ""
-"*As noted above all documentation should be done using reStructuredText "
-"formated files.*"
-msgstr "*Comme mentionné ci-dessus toute la documentation devrait être construite en utilisant les fichiers formattés  reStructuredText.*"
-
-# a4b7ec8d4b8745909277273aa141905a
-#: ../../src/developer/index.rst:83
-msgid ""
-"Documentation is distributed into the source tree. This top level \"doc\" "
-"directory is intended for high level documentation cover subjects like:"
-msgstr "La documentation est distribuée dans l'arbre des sources. Ce répertoire \"doc\" de haut niveau est prévu pour la documentation de haut niveau couvrant les sujets comme :"
-
-# 1374b2ec0aa74533a5df9290d750951f
-#: ../../src/developer/index.rst:86
-msgid "Compiling and testing"
-msgstr "Compilation et tests"
-
-# 084a68deab9b4285bc1fc7011f578d13
-#: ../../src/developer/index.rst:87
-msgid "Installation"
-msgstr "Installation"
-
-# 42d9b895e2544dbbb89e0b050eb5ea54
-#: ../../src/developer/index.rst:88
-msgid "Tutorials"
-msgstr "Tutoriels"
-
-# 8f3cd82581d34b4ca447273e89877f88
-#: ../../src/developer/index.rst:89
-msgid "Users' Guide front materials"
-msgstr "Documentation liminaire du Guide Utilisateur"
-
-# e984baa72b6844039419e00491240778
-#: ../../src/developer/index.rst:90
-msgid "Reference Manual front materials"
-msgstr "Documentation liminaire du Manuel de référence"
-
-# 4e38c58bd8e14226a20bfcbfd29b0cb8
-#: ../../src/developer/index.rst:91
-msgid "etc"
-msgstr "etc"
-
-# 1bb99d883cc7418482d545cdb0848334
-#: ../../src/developer/index.rst:93
-msgid ""
-"Since the algorithm specific documentation is contained in the source tree "
-"with the algorithm specific files, the process of building the documentation"
-" and publishing it will need to assemble the details with the front material"
-" as needed."
-msgstr "Puisque la documentation spécifique de l'algorithme est contenue dans l'arbre de sources avec les fichiers spécifiques de l'algorithme, le processus de la construction de la documentation et la publication va avoir besoin d'assembler les détails avec la documentation de premier rang si besoin."
-
-# 1711ca7d96774e1db5a0924e4d181cdd
-#: ../../src/developer/index.rst:98
-msgid ""
-"Also, to keep the \"doc\" directory from getting cluttered, each major book "
-"like those listed above, should be contained in a separate directory under "
-"\"doc\". Any images or other materials related to the book should also be "
-"kept in that directory."
-msgstr "Aussi, pour empêcher le répertoire \"doc\" d'être encombré, chaque libre majeur comme ceux listés ci-dessus, doivent être contenu dans un répertoire séparé dans \"doc\". Toutes les images ou autres documents liés au livre doivent être aussi mis dans ce répertoire."
-
-# 9a712178ea274d2582cfc6b8a9a3eec1
-#: ../../src/developer/index.rst:105
-msgid "Testing Infrastructure"
-msgstr "Infrastructure de test"
-
-# 34eba7e1e4ce408489010fc1945222c1
-#: ../../src/developer/index.rst:107
-msgid ""
-"There is a very basic testing infrastructure put in place. Here are the "
-"basics of how it works. We need more test cases. Longer term we should "
-"probably get someone to setup travis-ci or jenkins testing frameworks."
-msgstr "L'infrastructure de test mise en place est très basique. Voici les bases de comment ça marche. Nous avons besoin de plus de cas de tests. A long terme nous devrons probablement avoir une personne pour installer les frameworks travis-ci ou jenkins."
-
-# b879a887c3a644328d9fc9d27d3dfe26
-#: ../../src/developer/index.rst:111
-msgid "Here is the graph for the TRSP tests."
-msgstr "Voici le graphe des tests TRSP."
-
-# 60b9e076421a4b1da33afd40f94bd300
-#: ../../src/developer/index.rst:115
-msgid ""
-"Tests are run via the script at the top level tools/test-runner.pl and it "
-"runs all the test configured tests and at the moment just dumps the results "
-"structure of the test. This can be prettied up later."
-msgstr "Les tests sont lancés via le script au haut niveau tools/test-runner.pl qui exécute tous les tests configurés et pour le moment produit en résultats la structure de test. Cela peut être amélioré par la suite."
-
-# b06def8f37514c328b21791eb57e2d01
-#: ../../src/developer/index.rst:119
-msgid ""
-"It also assumes that you have installed the libraries as it tests using the "
-"installed postgresql. This probably needs to be made smarter so we can test "
-"out of the build tree. I'll need to think about that."
-msgstr "Cela suppose aussi que vous avez installé les librairies car les tests requièrent postgresql installé. Il est probablement nécessaire de rendre cela mieux conçu pour que nous puissions essayer l'arbre de build. Je vais essayer de réfléchir à ça."
-
-# be3b92cedcec4b4fbf479d174a42eef6
-#: ../../src/developer/index.rst:124
-msgid ""
-"Basically each .../test/ directory should include one *test.conf* file that "
-"is a perl script fragment that defines what data files to load and what "
-"tests to run. I have built in some mechanisms to allow test and data to be "
-"pg version and postgis version specific, but I'm not using that yet. So for "
-"example, *core/trsp/test/test-any-00.data* is a sql plain text dump that "
-"will load and needed data for a set of tests. This is also the graph in the "
-"image above. You can specify multiple files to load, but as a group they "
-"need to have unique names."
-msgstr "Simplement chaque répertoire .../test/ doit inclure un fichier *test.conf* qui est un fragment de script perl qui définit quels fichiers de données charger et quels tests lancer. J'ai intégré certains mécanismes pour autoriser tests et données d'être spécifiques aux version pg et postgis, mais je ne l'utilise pas encore. Ainsi par exemple, *core/trsp/test/test-any-00.data* est un texte plein généré qui va charger les données nécessaires pour un jeu de tests. C'est aussi le graphe [...]
-
-# 63f7cc81e4084f5bb247374d7a084f89
-#: ../../src/developer/index.rst:133
-msgid ""
-"core/trsp/test/test-any-00.test is a sql command to be run. It will get run "
-"as:"
-msgstr "core/trsp/test/test-any-00.test est une commande sql qui peut être exécutée. Elle s'exécute ainsi : "
-
-# 517a594dd4684e57bbf75d62fa3d4068
-#: ../../src/developer/index.rst:141
-msgid "Then if there is a difference then an test failure is reported."
-msgstr "Ensuite si il y a une différence, alors un échec de test est reporté."
diff --git a/doc/i18n/fr/LC_MESSAGES/doc/src/developer/sampledata.po b/doc/i18n/fr/LC_MESSAGES/doc/src/developer/sampledata.po
deleted file mode 100644
index 4189cc4..0000000
--- a/doc/i18n/fr/LC_MESSAGES/doc/src/developer/sampledata.po
+++ /dev/null
@@ -1,59 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:12+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 8292d60ebfc34fb492ea6193998bab3e
-#: ../../src/developer/sampledata.rst:13
-msgid "Sample Data"
-msgstr "Données d'échantillon"
-
-# 4b0d58dd2dff4d9c97134f99fe6b536f
-#: ../../src/developer/sampledata.rst:15
-msgid ""
-"The documentation provides very simple example queries based on a small "
-"sample network. To be able to execute the sample queries, run the following "
-"SQL commands to create a table with a small network data set."
-msgstr ""
-
-# e01baf347c854525b5c3bdc1af8d1523
-#: ../../src/developer/sampledata.rst:20
-msgid "Create table"
-msgstr "Créer une table"
-
-# f6ec8db09c164800a1e2d817a06e2a20
-#: ../../src/developer/sampledata.rst:40
-msgid "Insert network data"
-msgstr "Insérer les données du réseau"
-
-# 41d209ca693c4739986152fcdfcb3d25
-#: ../../src/developer/sampledata.rst:70
-msgid ""
-"Before you test a routing function use this query to fill the source and "
-"target columns."
-msgstr ""
-
-# 449efcf19ef14ade9797f5818e87ab24
-#: ../../src/developer/sampledata.rst:77
-msgid "This table is used in some of our examples"
-msgstr ""
-
-# eb2ac2aa18da494185f02f4a2fe0427d
-#: ../../src/developer/sampledata.rst:94
-msgid "The network created in *edge_table*"
-msgstr ""
diff --git a/doc/i18n/fr/LC_MESSAGES/doc/src/installation/build.po b/doc/i18n/fr/LC_MESSAGES/doc/src/installation/build.po
deleted file mode 100644
index 465f39b..0000000
--- a/doc/i18n/fr/LC_MESSAGES/doc/src/installation/build.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:13+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 36951e7f140d4d5b980b0b6a97a04faf
-#: ../../src/installation/build.rst:13
-msgid "Build Guide"
-msgstr "Guide pour le Build"
-
-# 8c64736c7cb4454d8d602456cae13eb7
-#: ../../src/installation/build.rst:15
-msgid ""
-"To be able to compile pgRouting make sure that the following dependencies "
-"are met:"
-msgstr "Pour être capable de compiler pgRouting, vérifiez que les dépendances suivantes sont présentes :"
-
-# 803fb42d0ed746e7b1434fc0702fecc4
-#: ../../src/installation/build.rst:17
-msgid "C and C++ compilers"
-msgstr "Compilateurs C et C++ "
-
-# c5384bc38f6745bd858daa8f2778464c
-#: ../../src/installation/build.rst:18
-msgid "Postgresql version >= 8.4 (>= 9.1 recommended)"
-msgstr "Version Postgresql >= 8.4 (>= 9.1 recommandée)"
-
-# 7822317678024503afbe9da83351626f
-#: ../../src/installation/build.rst:19
-msgid "PostGIS version >= 1.5 (>= 2.0 recommended)"
-msgstr "Version PostGIS >= 1.5 (>= 2.0 recommandée)"
-
-# 2092361736a94597ae950089f6baeb7c
-#: ../../src/installation/build.rst:20
-msgid "The Boost Graph Library (BGL). Version >= [TBD]"
-msgstr "La Boost Graph Library (BGL). Version >= [à déterminer]"
-
-# ad7f5e5325504267abb8922823e31b6c
-#: ../../src/installation/build.rst:21
-msgid "CMake >= 2.8.8"
-msgstr "CMake >= 2.8.8"
-
-# 9423854129e8411ca11bc2e79ed0a44e
-#: ../../src/installation/build.rst:22
-msgid "(optional, for Driving Distance) CGAL >= [TBD]"
-msgstr "(optionnel, pour Driving Distance) CGAL >= [à déterminer]"
-
-# fbff857abfa44607b05113423945439a
-#: ../../src/installation/build.rst:23
-msgid "(optional, for Documentation) Sphinx >= 1.1"
-msgstr "(optionnel, pour la Documentation) Sphinx >= 1.1"
-
-# 48f6a3951914403f9e1b5ac7d64ada3f
-#: ../../src/installation/build.rst:24
-msgid "(optional, for Documentation as PDF) Latex >= [TBD]"
-msgstr ""
-
-# c6b958f8611849fe90a824cc62db1a74
-#: ../../src/installation/build.rst:26
-msgid ""
-"The cmake system has variables the can be configured via the command line "
-"options by setting them with -D<varable>=<value>. You can get a listing of "
-"these via:"
-msgstr ""
-
-# 62a69adeee3141d5a7de8e0510818440
-#: ../../src/installation/build.rst:34
-msgid "Currently these are:"
-msgstr ""
-
-# 35027a6663fc4210b027e5210150e681
-#: ../../src/installation/build.rst:36
-msgid ""
-"Boost_DIR:PATH=Boost_DIR-NOTFOUND CMAKE_BUILD_TYPE:STRING= "
-"CMAKE_INSTALL_PREFIX:PATH=/usr/local "
-"POSTGRESQL_EXECUTABLE:FILEPATH=/usr/lib/postgresql/9.2/bin/postgres "
-"POSTGRESQL_PG_CONFIG:FILEPATH=/usr/bin/pg_config WITH_DD:BOOL=ON "
-"WITH_DOC:BOOL=OFF BUILD_HTML:BOOL=ON BUILD_LATEX:BOOL=OFF BUILD_MAN:BOOL=ON"
-msgstr ""
-
-# 2a6ecc049d1a49e481516a497cb42cfd
-#: ../../src/installation/build.rst:47
-msgid ""
-"These also show the current or default values based on our development "
-"system. So your values my be different. In general the ones that are of most"
-" interest are:"
-msgstr ""
-
-# b07b4fda86d7472b823a2e8982cf6b05
-#: ../../src/installation/build.rst:49
-msgid ""
-"WITH_DD:BOOL=ON       -- Turn on/off building driving distance code. "
-"WITH_DOC:BOOL=OFF     -- Turn on/off building the documentation "
-"BUILD_HTML:BOOL=ON    -- If WITH_DOC=ON, turn on/off building HTML "
-"BUILD_LATEX:BOOL=OFF  -- If WITH_DOC=ON, turn on/off building PDF "
-"BUILD_MAN:BOOL=ON     -- If WITH_DOC=ON, turn on/off building MAN pages"
-msgstr ""
-
-# 1b3877776a474e2bbae2cdf632ab7898
-#: ../../src/installation/build.rst:55
-msgid ""
-"To change any of these add ``-D<variable>=<value>`` to the cmake lines "
-"below. For example to turn on documentation, your cmake command might look "
-"like:"
-msgstr ""
-
-# ce5663a99fe540e59ba79b8415f2e8cf
-#: ../../src/installation/build.rst:62
-msgid ""
-"If you turn on the documentation, you also need to add the ``doc`` target to"
-" the make command."
-msgstr ""
-
-# 3447ac18753a48cd8b36008a1c4c10c7
-#: ../../src/installation/build.rst:72
-msgid "For MinGW on Windows"
-msgstr "Pour MinGW sur Windows"
-
-# 9e2e9bb5dfd54856a24b3e0f455b0c82
-#: ../../src/installation/build.rst:84
-msgid "For Linux"
-msgstr "Pour Linux"
-
-# 4939346c6ad34ddc92927ceeb1b5a543
-#: ../../src/installation/build.rst:96
-msgid "With Documentation"
-msgstr "Avec la Documentation"
-
-# a86f43c9a5b84d089caa0a06ac07f64c
-#: ../../src/installation/build.rst:98
-msgid ""
-"Build with documentation (requires `Sphinx <http://sphinx-doc.org/>`_):"
-msgstr "Build avec la documentation (recquiert `Sphinx <http://sphinx-doc.org/>`_) :"
-
-# c9c92cc08d7440f98fe61e333ffc6fe6
-#: ../../src/installation/build.rst:106
-msgid "Rebuild modified documentation only:"
-msgstr "Rebuild seulement la documentation modifiée :"
diff --git a/doc/i18n/fr/LC_MESSAGES/doc/src/installation/index.po b/doc/i18n/fr/LC_MESSAGES/doc/src/installation/index.po
deleted file mode 100644
index 156a46b..0000000
--- a/doc/i18n/fr/LC_MESSAGES/doc/src/installation/index.po
+++ /dev/null
@@ -1,203 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# Daniel Kastl, 2013
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:30+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# b41e3e6e82bc4cc1ae494ad03a5e3db0
-#: ../../src/installation/index.rst:13
-msgid "Installation"
-msgstr "Installation"
-
-# c8a69d5d6c9242ad82bf2995a2d43c40
-#: ../../src/installation/index.rst:15
-msgid ""
-"Binary packages are provided for the current version on the following "
-"platforms:"
-msgstr "Les paquets binaires sont fournis pour la version courante sur les plateformes suivantes :"
-
-# 724bcb2a14ac419f99c2f7d5cfe22b6d
-#: ../../src/installation/index.rst:19
-msgid "Windows"
-msgstr "Windows"
-
-# b683dadc50114de7a4bd0073be4510cf
-#: ../../src/installation/index.rst:21
-msgid "Winnie Bot Experimental Builds:"
-msgstr "Winnie Bot Experimental Builds:"
-
-# 006e74f1eaf042779773f59248230fcb
-#: ../../src/installation/index.rst:23
-msgid ""
-"`PostgreSQL 9.2 32-bit, 64-bit "
-"<http://winnie.postgis.net/download/windows/pg92/buildbot/>`_"
-msgstr "`PostgreSQL 9.2 32-bit, 64-bit <http://winnie.postgis.net/download/windows/pg92/buildbot/>`_"
-
-# 7825f3f82e3e426188a552cac3d76d0c
-#: ../../src/installation/index.rst:27
-msgid "Ubuntu/Debian"
-msgstr "Ubuntu/Debian"
-
-# 5d5652a1d3a04382800239684a4d26cc
-#: ../../src/installation/index.rst:29
-msgid "Ubuntu packages are available in Launchpad repositories:"
-msgstr "Les paquets Ubuntu sont disponibles dans les dépôts Launchpad :"
-
-# 761afc4473ab4a35aff506637c8e80aa
-#: ../../src/installation/index.rst:31
-msgid "*stable* https://launchpad.net/~georepublic/+archive/pgrouting"
-msgstr "*stable* https://launchpad.net/~georepublic/+archive/pgrouting"
-
-# 6500186f8e3d42c88983fa564fc4facf
-#: ../../src/installation/index.rst:32
-msgid ""
-"*unstable* https://launchpad.net/~georepublic/+archive/pgrouting-unstable"
-msgstr "*unstable* https://launchpad.net/~georepublic/+archive/pgrouting-unstable"
-
-# 7050e2f75f7b42fea67597e63cf2f111
-#: ../../src/installation/index.rst:43
-msgid ""
-"Use `UbuntuGIS-unstable PPA <https://launchpad.net/~ubuntugis/+archive"
-"/ubuntugis-unstable>`_ to install PostGIS 2.0."
-msgstr "Utiliser `UbuntuGIS-unstable PPA <https://launchpad.net/~ubuntugis/+archive/ubuntugis-unstable>`_ pour installer  PostGIS 2.0."
-
-# ce72f9b5cb814c5fb4a4ec48c0f7a294
-#: ../../src/installation/index.rst:47
-msgid "RHEL/CentOS/Fedora"
-msgstr "RHEL/CentOS/Fedora"
-
-# 06c08177883146369e10318b54f2662a
-#: ../../src/installation/index.rst:49
-msgid ""
-"Fedora RPM's: https://admin.fedoraproject.org/pkgdb/acls/name/pgRouting"
-msgstr "Fedora RPM's: https://admin.fedoraproject.org/pkgdb/acls/name/pgRouting"
-
-# b6146b0917b441268525a1fe54b0f17e
-#: ../../src/installation/index.rst:53
-msgid "OS X"
-msgstr "OS X"
-
-# cdc507aa586e4ac8b00a7d5818bde423
-#: ../../src/installation/index.rst:57
-msgid "Homebrew"
-msgstr "Homebrew"
-
-# e949ab234590487ca8c4cfa47be11908
-#: ../../src/installation/index.rst:65
-msgid "Source Package"
-msgstr "Paquets Sources"
-
-# ec1db5ae27a4451fae0ee5b486baa0db
-#: ../../src/installation/index.rst:68
-msgid "Git 2.0.0-rc1 release"
-msgstr "Git 2.0.0-rc1 release"
-
-# 8f33d62c1dda4436a3c0a75489dec129
-#: ../../src/installation/index.rst:68
-msgid "`v2.0.0-rc1.tar.gz`_"
-msgstr "`v2.0.0-rc1.tar.gz`_"
-
-# 4eb23002a0464e94a6e62cdef2c72234
-#: ../../src/installation/index.rst:68
-msgid "`v2.0.0-rc1.zip`_"
-msgstr "`v2.0.0-rc1.zip`_"
-
-# b5a17e917a89472c955c6f2cfdfff517
-#: ../../src/installation/index.rst:69
-msgid "Git 2.0.0-beta release"
-msgstr "Git 2.0.0-beta release"
-
-# 3db241a58e4c4d6f868116a6770030b5
-#: ../../src/installation/index.rst:69
-msgid "`v2.0.0-beta.tar.gz`_"
-msgstr "`v2.0.0-beta.tar.gz`_"
-
-# 1e21c08cc7c84816b3ca5cc813d1470d
-#: ../../src/installation/index.rst:69
-msgid "`v2.0.0-beta.zip`_"
-msgstr "`v2.0.0-beta.zip`_"
-
-# 2286b25add114b9e82622ff02d730a8e
-#: ../../src/installation/index.rst:70
-msgid "Git 2.0.0-alpha release"
-msgstr "Git 2.0.0-alpha release"
-
-# 3db12a14f5b94a0eae1772d2f84c9058
-#: ../../src/installation/index.rst:70
-msgid "`v2.0.0-alpha.tar.gz`_"
-msgstr "`v2.0.0-alpha.tar.gz`_"
-
-# 9ecc4cba22564943855591c0079db428
-#: ../../src/installation/index.rst:70
-msgid "`v2.0.0-alpha.zip`_"
-msgstr "`v2.0.0-alpha.zip`_"
-
-# 708d8ebb02c2479c86755b38333b9e3d
-#: ../../src/installation/index.rst:71
-msgid "Git master branch"
-msgstr "Git master branch"
-
-# 07931d9e017b4fc7aabc4ca1affa9ec4
-#: ../../src/installation/index.rst:71
-msgid "`master.tar.gz`_"
-msgstr "`master.tar.gz`_"
-
-# 8ed2f03dcd4b4be1bfee86da4d9bcdc9
-#: ../../src/installation/index.rst:71
-msgid "`master.zip`_"
-msgstr "`master.zip`_"
-
-# bded77386d4a4124b17d0ee2903d5877
-#: ../../src/installation/index.rst:72
-msgid "Git develop branch"
-msgstr "Git develop branch"
-
-# 9da6c796cd3045c28c04775b7c49e27c
-#: ../../src/installation/index.rst:72
-msgid "`develop.tar.gz`_"
-msgstr "`develop.tar.gz`_"
-
-# 1671db28e6df4d6094c2fb0a5afe4106
-#: ../../src/installation/index.rst:72
-msgid "`develop.zip`_"
-msgstr "`develop.zip`_"
-
-# 5a32f08a903c487092dbfb1eae278d84
-#: ../../src/installation/index.rst:92
-msgid "Using Git"
-msgstr "Utiliser Git"
-
-# f1630712900a49db825c618380b4a713
-#: ../../src/installation/index.rst:94
-msgid "Git protocol (read-only):"
-msgstr "Protocole Git (en lecture seule) :"
-
-# 9c36f0b296a343ea9c7103d514b6af07
-#: ../../src/installation/index.rst:101
-msgid "HTTPS protocol (read-only): .. code-block:: bash"
-msgstr ""
-
-# 79827ebd49da4add88e7275c6abc8a5d
-#: ../../src/installation/index.rst:104
-msgid "git clone https://github.com/pgRouting/pgrouting.git"
-msgstr "git clone https://github.com/pgRouting/pgrouting.git"
-
-# 00af13df90844038a100e3ed84ea8572
-#: ../../src/installation/index.rst:107
-msgid "See :ref:`build` for notes on compiling from source."
-msgstr "Voir :ref:`build` les notes sur comment compiler depuis les sources."
diff --git a/doc/i18n/fr/LC_MESSAGES/doc/src/introduction/index.po b/doc/i18n/fr/LC_MESSAGES/doc/src/introduction/index.po
deleted file mode 100644
index 976dbe3..0000000
--- a/doc/i18n/fr/LC_MESSAGES/doc/src/introduction/index.po
+++ /dev/null
@@ -1,34 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:20+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 3cb0b7c03fa84c59a8bdb4f5efd33fec
-#: ../../src/introduction/index.rst:23
-msgid "Indices and tables"
-msgstr "Index et tableaux"
-
-# 8cbfd2a6f6d44a1599cfff832b626535
-#: ../../src/introduction/index.rst:24
-msgid ":ref:`genindex`"
-msgstr ":ref:`genindex`"
-
-# df46715e85104bf48ebb9fb9005099e0
-#: ../../src/introduction/index.rst:25
-msgid ":ref:`search`"
-msgstr ":ref:`search`"
diff --git a/doc/i18n/fr/LC_MESSAGES/doc/src/introduction/introduction.po b/doc/i18n/fr/LC_MESSAGES/doc/src/introduction/introduction.po
deleted file mode 100644
index e590908..0000000
--- a/doc/i18n/fr/LC_MESSAGES/doc/src/introduction/introduction.po
+++ /dev/null
@@ -1,187 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 06:00+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# d7ca13e272ea4f9a9007e75f83ccda07
-#: ../../src/introduction/introduction.rst:13
-msgid "Introduction"
-msgstr "Introduction"
-
-# da484b645bf24737937b91b50cb8db89
-#: ../../src/introduction/introduction.rst:15
-msgid ""
-"pgRouting is an extension of `PostGIS <http://postgis.net>`_ and `PostgreSQL"
-" <http://postgresql.org>`_ geospatial database and adds routing and other "
-"network analysis functionality. A predecessor of pgRouting – pgDijkstra, "
-"written by Sylvain Pasche from `Camptocamp <http://camptocamp.com>`_, was "
-"later extended by `Orkney <http://www.orkney.co.jp>`_ and renamed to "
-"pgRouting. The project is now supported and maintained by `Georepublic "
-"<http://georepublic.info>`_, `iMaptools <http://imaptools.com/>`_ and a "
-"broad user community."
-msgstr "pgRouting est une extension des bases de données géospatiales `PostGIS <http://postgis.net>`_ et `PostgreSQL <http://postgresql.org>`_ et ajoute des fonctionnalités de routing et autres analyses de réseaux. Un prédecesseur de pgRouting – pgDijkstra, écrit par Sylvain Pasche de `Camptocamp <http://camptocamp.com>`_, a été étendue ultérieurement par`Orkney <http://www.orkney.co.jp>`_ et renommé pgRouting. Le projet est maintenant maintenu et supporté par `Georepublic <http://georep [...]
-
-# 809f2467c4ee44b093b8ad8386624187
-#: ../../src/introduction/introduction.rst:17
-msgid ""
-"pgRouting is an `OSGeo Labs <http://wiki.osgeo.org/wiki/OSGeo_Labs>`_ "
-"project of the `OSGeo Foundation <http://osgeo.org>`_ and included on `OSGeo"
-" Live <http://live.osgeo.org/>`_."
-msgstr "pgRouting est un projet `OSGeo Labs <http://wiki.osgeo.org/wiki/OSGeo_Labs>`_ de `OSGeo Foundation <http://osgeo.org>`_ et inclut un `OSGeo Live <http://live.osgeo.org/>`_."
-
-# 16be225589d54868a6e1b06785c71bec
-#: ../../src/introduction/introduction.rst:23
-msgid "License"
-msgstr "Licence"
-
-# c408c4a83f184155aa9880e36ca889d0
-#: ../../src/introduction/introduction.rst:25
-msgid "The following licenses can be found in pgRouting:"
-msgstr "Les licences suivantes peuvent être trouvées dans in pgRouting :"
-
-# 31c7be72dc384ef29713eaf2fd580192
-#: ../../src/introduction/introduction.rst:30
-msgid "**License**"
-msgstr "**Licence**"
-
-# 74c1c3a9531243488b0c52134c79e04a
-#: ../../src/introduction/introduction.rst:32
-msgid "GNU General Public License, version 2"
-msgstr "GNU General Public License, version 2"
-
-# 68b6976ef3b147ebba541311f30c1a4d
-#: ../../src/introduction/introduction.rst:33
-msgid ""
-"Most features of pgRouting are available under `GNU General Public License, "
-"version 2 <http://www.gnu.org/licenses/gpl-2.0.html>`_."
-msgstr "La plupart des caractéristiques de pgRouting sont disponibles sous `GNU General Public License, version 2 <http://www.gnu.org/licenses/gpl-2.0.html>`_."
-
-# 3a0945a2b9214644850ca56e273bc01e
-#: ../../src/introduction/introduction.rst:34
-msgid "Boost Software License - Version 1.0"
-msgstr "Boost Software License - Version 1.0"
-
-# e7bd7b9a9dda4730905a2cc4a3e16112
-#: ../../src/introduction/introduction.rst:35
-msgid ""
-"Some Boost extensions are available under `Boost Software License - Version "
-"1.0 <http://www.boost.org/LICENSE_1_0.txt>`_."
-msgstr "Certaines extensions Boost sont disponibles sous `Boost Software License - Version 1.0 <http://www.boost.org/LICENSE_1_0.txt>`_."
-
-# 16c42cd30ff24da4bbded95fbf9e66b0
-#: ../../src/introduction/introduction.rst:36
-msgid "MIT-X License"
-msgstr "MIT-X License"
-
-# d5e17519bd0d4f59bf932309fab800c8
-#: ../../src/introduction/introduction.rst:37
-msgid ""
-"Some code contributed by iMaptools.com is available under MIT-X license."
-msgstr "Une partie du code à laquelle a contribué iMaptools.com est disponible sous la licence MIT-X."
-
-# 88d424e5e3f24713be7c34ccce6d1e57
-#: ../../src/introduction/introduction.rst:38
-msgid "Creative Commons Attribution-Share Alike 3.0 License"
-msgstr "Creative Commons Attribution-Share Alike 3.0 License"
-
-# 54ef0939d7e94434a2552d2bb3d79fba
-#: ../../src/introduction/introduction.rst:39
-msgid ""
-"The pgRouting Manual is licensed under a `Creative Commons Attribution-Share"
-" Alike 3.0 License <http://creativecommons.org/licenses/by-sa/3.0/>`_."
-msgstr "Le Manuel pgRouting est distribué sous la licence `Creative Commons Attribution-Share Alike 3.0 License <http://creativecommons.org/licenses/by-sa/3.0/>`_."
-
-# 5e7f1f01c52346069889d0578d72e8da
-#: ../../src/introduction/introduction.rst:41
-msgid ""
-"In general license information should be included in the header of each "
-"source file."
-msgstr "En général les informations de licence devraient être inclues dans l'entête de chaque fichier source."
-
-# 9224c9bd3c5249ea9feb85e27d6161aa
-#: ../../src/introduction/introduction.rst:45
-msgid "Contributors"
-msgstr "Contributeurs"
-
-# a90f02bef3f64bc4994f0afbbb67b8ca
-#: ../../src/introduction/introduction.rst:48
-msgid "Individuals (in alphabetical order)"
-msgstr "Particuliers (dans l'ordre alphabétique)"
-
-# 1d2ac5417c2b484db8aec0192b7843fd
-#: ../../src/introduction/introduction.rst:50
-msgid ""
-"Akio Takubo, Anton Patrushev, Ashraf Hossain, Christian Gonzalez, Daniel "
-"Kastl, Dave Potts, David Techer, Ema Miyawaki, Florian Thurkow, Frederic "
-"Junod, Gerald Fenoy, Jay Mahadeokar, Jinfu Leng, Kai Behncke, Kishore Kumar,"
-" Ko Nagase, Mario Basa, Martin Wiesenhaan, Razequl Islam, Stephen "
-"Woodbridge, Sylvain Housseman, Sylvain Pasche, Virginia Vergara"
-msgstr ""
-
-# 573e14f52e5948dba921408454b6d775
-#: ../../src/introduction/introduction.rst:54
-msgid "Corporate Sponsors (in alphabetical order)"
-msgstr "Sponsors entreprises (dans l'ordre alphabétique)"
-
-# ad2024213fb347d781158d36b80dfa17
-#: ../../src/introduction/introduction.rst:56
-msgid ""
-"These are corporate entities that have contributed developer time, hosting, "
-"or direct monetary funding to the pgRouting project:"
-msgstr "Il y a des entités d'entreprise qui ont contribué au temps de développement, à l'hébergement, ou directement par financement monétaire au projet pgRouting."
-
-# 09f8287921f74248909e1cf3831f2b96
-#: ../../src/introduction/introduction.rst:58
-msgid ""
-"Camptocamp, CSIS (University of Tokyo), Georepublic, Google Summer of Code, "
-"iMaptools, Orkney, Paragon Corporation"
-msgstr "Camptocamp, CSIS (Université de Tokyo), Georepublic, Google Summer of Code, iMaptools, Orkney, Paragon Corporation"
-
-# 4cdcc401254446eb9d46bda960475fc9
-#: ../../src/introduction/introduction.rst:62
-msgid "More Information"
-msgstr "Plus d'informations"
-
-# 4bf76e2626a34595ab551ac18bd46a72
-#: ../../src/introduction/introduction.rst:64
-msgid ""
-"The latest software, documentation and news items are available at the "
-"pgRouting web site http://pgrouting.org."
-msgstr "Les derniers éléments de l'application, documentation et actualité sont disponibles sur le site web pgRouting  http://pgrouting.org."
-
-# 7344febf35dc4a0ebc352f5786f756b0
-#: ../../src/introduction/introduction.rst:65
-msgid ""
-"PostgreSQL database server at the PostgreSQL main site "
-"http://www.postgresql.org."
-msgstr "Le serveur de la base de données PostgreSQL sur le site principal de PostgreSQL http://www.postgresql.org."
-
-# cc976f5cf90846e6b5e9dac7197bed3d
-#: ../../src/introduction/introduction.rst:66
-msgid "PostGIS extension at the PostGIS project web site http://postgis.net."
-msgstr "Extension PostGIS sur le site web de PostGIS http://postgis.net."
-
-# b8f01943a50a46e8add511936f5a97c4
-#: ../../src/introduction/introduction.rst:67
-msgid "Boost C++ source libraries at http://www.boost.org."
-msgstr "Sources des bibliothèques Boost C++ ici http://www.boost.org."
-
-# 65e6bb0c75f54944a362439ff74f327d
-#: ../../src/introduction/introduction.rst:68
-msgid ""
-"Computational Geometry Algorithms Library (CGAL) at http://www.cgal.org."
-msgstr "Computational Geometry Algorithms Library (CGAL) at http://www.cgal.org."
diff --git a/doc/i18n/fr/LC_MESSAGES/doc/src/introduction/support.po b/doc/i18n/fr/LC_MESSAGES/doc/src/introduction/support.po
deleted file mode 100644
index 038d955..0000000
--- a/doc/i18n/fr/LC_MESSAGES/doc/src/introduction/support.po
+++ /dev/null
@@ -1,220 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:12+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# c7c0c737d2bc483ca92c96d3625c5985
-#: ../../src/introduction/support.rst:13
-msgid "Support"
-msgstr "Support"
-
-# 32ad6c32431b44539592025892c46046
-#: ../../src/introduction/support.rst:15
-msgid ""
-"pgRouting community support is available through `website "
-"<http://www.pgrouting.org>`_, `documentation <http://docs.pgrouting.org>`_, "
-"tutorials, mailing lists and others. If you’re looking for :ref:`commercial "
-"support <support_commercial>`, find below a list of companies providing "
-"pgRouting development and consulting services."
-msgstr "Le support de la communauté pgRouting est disponible depuis le `site web <http://www.pgrouting.org>`_, `documentation <http://docs.pgrouting.org>`_, tutoriels, listes emails et autres. Si vous cherchez un :ref:`support commercial <support_commercial>`, vous trouverez ci-dessous une liste des sociétés fournissant des services de développement et de conseil."
-
-# 4bff50a608f740b89877515e393b43a3
-#: ../../src/introduction/support.rst:19
-msgid "Reporting Problems"
-msgstr "Reporter un problème"
-
-# a0003d2bba284084b83f648947e1d28a
-#: ../../src/introduction/support.rst:21
-msgid ""
-"Bugs are reported and managed in an `issue tracker "
-"<https://github.com/pgrouting/pgrouting/issues>`_. Please follow these "
-"steps:"
-msgstr "Les bugs sont reportés et gérés dans un `système de gestion d'incidents <https://github.com/pgrouting/pgrouting/issues>`_. Merci de suivre ces étapes :"
-
-# 456e34fdd1a64ac2bf279b123f8c60ec
-#: ../../src/introduction/support.rst:23
-msgid ""
-"Search the tickets to see if your problem has already been reported. If so, "
-"add any extra context you might have found, or at least indicate that you "
-"too are having the problem. This will help us prioritize common issues."
-msgstr "Cherchez les tickets pour voir si votre problème a déjà été reporté. Si oui, ajoutez tout contexte supplémentaire que vous pourriez avoir trouvé, ou vous pouvez simplement ajouter que vous avez également le même problème. Cela nous aidera à établir la priorité des incidents en commun. "
-
-# c7868bf251024c2284115bdc5ff6a56a
-#: ../../src/introduction/support.rst:24
-msgid ""
-"If your problem is unreported, create a `new issue "
-"<https://github.com/pgRouting/pgrouting/issues/new>`_ for it."
-msgstr "Si votre problème n'est pas reporté, créer un `nouvel incident <https://github.com/pgRouting/pgrouting/issues/new>`_ pour ça."
-
-# 8780a71171ad4ee891831e77e352e463
-#: ../../src/introduction/support.rst:25
-msgid ""
-"In your report include explicit instructions to replicate your issue. The "
-"best tickets include the exact SQL necessary to replicate a problem."
-msgstr "Dans votre rapport, incluez explicitement les instructions pour reproduire votre problème. Les meilleurs tickets incluent le SQL exact nécessaire pour reproduire un problème."
-
-# e37493a4d9354b66abcd37cee8516738
-#: ../../src/introduction/support.rst:26
-msgid ""
-"If you can test older versions of PostGIS for your problem, please do. On "
-"your ticket, note the earliest version the problem appears."
-msgstr "Si vous pouvez tester les versions anciennes de PostGIS pour votre problème, merci de le faire. Dans votre ticket, mentionnez la plus récente version où le problème apparaît."
-
-# 2fb24e96127c45d08bb73c55f52a7153
-#: ../../src/introduction/support.rst:27
-msgid ""
-"For the versions where you can replicate the problem, note the operating "
-"system and version of pgRouting, PostGIS and PostgreSQL."
-msgstr "Pour les versions où vous pouvez reproduire le problème, notez le système d'exploitation et la version de  pgRouting, PostGIS et PostgreSQL."
-
-# a663e12c88ed4c958554c604f0b6d4d0
-#: ../../src/introduction/support.rst:28
-msgid ""
-"It is recommended to use the following wrapper on the problem to pin point "
-"the step that is causing the problem."
-msgstr ""
-
-# 47052f7fae7249d6ae1cf64282ceb59c
-#: ../../src/introduction/support.rst:39
-msgid "Mailing List and GIS StackExchange"
-msgstr "Liste d'emails et StackExchange SIG"
-
-# 27b8ce0f71384ba693efcb0dfb73ae3a
-#: ../../src/introduction/support.rst:41
-msgid ""
-"There are two mailing lists for pgRouting hosted on OSGeo mailing list "
-"server:"
-msgstr "Il y a deux listes emails pour pgRouting hébergé sur le serveur de mailing list OSGeo."
-
-# 80462e7382f24471ba09d7fd3a545a9e
-#: ../../src/introduction/support.rst:43
-msgid ""
-"User mailing list: http://lists.osgeo.org/mailman/listinfo/pgrouting-users"
-msgstr "Listes d'emails utilisateurs : http://lists.osgeo.org/mailman/listinfo/pgrouting-users"
-
-# 13e85084f4834b80bc71de82070cd045
-#: ../../src/introduction/support.rst:44
-msgid ""
-"Developer mailing list: http://lists.osgeo.org/mailman/listinfo/pgrouting-"
-"dev"
-msgstr "Liste des emails développeurs : http://lists.osgeo.org/mailman/listinfo/pgrouting-dev"
-
-# 1c9e5bb5962e4e0eb6def2fb057836f0
-#: ../../src/introduction/support.rst:46
-msgid ""
-"For general questions and topics about how to use pgRouting, please write to"
-" the user mailing list."
-msgstr "Pour les questions générales et les sujets sur comment utiliser pgRouting, veuillez écrire à la liste des emails utilisateurs."
-
-# 6ee669e36133404c80e8b4970948411f
-#: ../../src/introduction/support.rst:48
-msgid ""
-"You can also ask at `GIS StackExchange <http://gis.stackexchange.com/>`_ and"
-" tag the question with ``pgrouting``. Find all questions tagged with "
-"``pgrouting`` under http://gis.stackexchange.com/questions/tagged/pgrouting "
-"or subscribe to the `pgRouting questions feed "
-"<http://gis.stackexchange.com/feeds/tag?tagnames=pgrouting&sort=newest>`_."
-msgstr "Vous pouvez aussi demander à `GIS StackExchange <http://gis.stackexchange.com/>`_ et étiquetter la question avec ``pgrouting``. Trouvez toutes les questions étiquetées avec ``pgrouting`` ici http://gis.stackexchange.com/questions/tagged/pgrouting ou abonnez-vous  à `pgRouting questions feed <http://gis.stackexchange.com/feeds/tag?tagnames=pgrouting&sort=newest>`_."
-
-# 6a373e258f034db7a828d6136b10d6f2
-#: ../../src/introduction/support.rst:54
-msgid "Commercial Support"
-msgstr "Support Commercial"
-
-# cc0ba72823c14231862a66b9ae93346a
-#: ../../src/introduction/support.rst:56
-msgid ""
-"For users who require professional support, development and consulting "
-"services, consider contacting any of the following organizations, which have"
-" significantly contributed to the development of pgRouting:"
-msgstr "Pour les utilisateurs qui demandent un support professionnel et des services de conseil, veuillez contacter l'une des organisations suivantes, qui ont contribué de façon significative au développement de pgRouting :"
-
-# 67e18fa7bf2148078cd7d3f651ee5127
-#: ../../src/introduction/support.rst:61
-msgid "**Company**"
-msgstr "**Société**"
-
-# 19beaf22bba14bad81ecc361e70f065f
-#: ../../src/introduction/support.rst:62
-msgid "**Offices in**"
-msgstr "**Bureaux à**"
-
-# 0fab02b12f7a41429938b4d160ad4255
-#: ../../src/introduction/support.rst:63
-msgid "**Website**"
-msgstr "**Site web**"
-
-# 350e6cd672124438a6fa234a5c635414
-#: ../../src/introduction/support.rst:64
-msgid "Georepublic"
-msgstr "Georepublic"
-
-# dd5cf051ee424f30aebcd1f07cb73b6e
-#: ../../src/introduction/support.rst:65
-msgid "Germany, Japan"
-msgstr "Allemagne, Japon"
-
-# 466fe62593f94b62a69ead6e8a03565b
-#: ../../src/introduction/support.rst:66
-msgid "http://georepublic.info"
-msgstr "http://georepublic.info"
-
-# addd13f2e8ba4a588f031b6f49ee8928
-#: ../../src/introduction/support.rst:67
-msgid "iMaptools"
-msgstr "iMaptools"
-
-# a8daac2def214afc8d8ceb9a27d25589
-#: ../../src/introduction/support.rst:68
-msgid "United States"
-msgstr "États-Unis"
-
-# 08a0ae9e94434d9bb44c3c8403243f3f
-#: ../../src/introduction/support.rst:69
-msgid "http://imaptools.com"
-msgstr "http://imaptools.com"
-
-# de65746683f949569928286d2b94e0c9
-#: ../../src/introduction/support.rst:70
-msgid "Orkney Inc."
-msgstr "Orkney Inc."
-
-# f9673096ad4b4c9fb435f7e806e95b68
-#: ../../src/introduction/support.rst:71
-msgid "Japan"
-msgstr "Japon"
-
-# d23116ef9a0f4feba31c83b54b3e823f
-#: ../../src/introduction/support.rst:72
-msgid "http://www.orkney.co.jp"
-msgstr "http://www.orkney.co.jp"
-
-# dceb3f34abe74bfbad46c5a5e37c852b
-#: ../../src/introduction/support.rst:73
-msgid "Camptocamp"
-msgstr "Camptocamp"
-
-# 6bb5afc92f294b7e8322302390f56fec
-#: ../../src/introduction/support.rst:74
-msgid "Switzerland, France"
-msgstr "Suisse, France"
-
-# bd2983c88d074017be19551e6cf11fff
-#: ../../src/introduction/support.rst:75
-msgid "http://www.camptocamp.com"
-msgstr "http://www.camptocamp.com"
diff --git a/doc/i18n/fr/LC_MESSAGES/doc/src/tutorial/analytics.po b/doc/i18n/fr/LC_MESSAGES/doc/src/tutorial/analytics.po
deleted file mode 100644
index 0ec0a48..0000000
--- a/doc/i18n/fr/LC_MESSAGES/doc/src/tutorial/analytics.po
+++ /dev/null
@@ -1,215 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:12+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 980fad1a06484f7c8cef9a7fde4958ec
-#: ../../src/tutorial/analytics.rst:13
-msgid "Graph Analytics"
-msgstr "Analytiques de graphe"
-
-# 92dfdaca18154d5fb972e4b0377224d1
-#: ../../src/tutorial/analytics.rst:15
-msgid "Stephen Woodbridge <woodbri at swoodbridge.com>"
-msgstr "Stephen Woodbridge <woodbri at swoodbridge.com>"
-
-# 9d29818196394fe6bde3a64a6a4ecc11
-#: ../../src/tutorial/analytics.rst:16
-msgid ""
-"Stephen Woodbridge. The source code is released under the MIT-X license."
-msgstr "Stephen Woodbridge. The code source est distribué sous la licence MIT-X."
-
-# 310f125aa8204065bcc2b95d49db2196
-#: ../../src/tutorial/analytics.rst:20
-msgid "Overview"
-msgstr "Présentation"
-
-# a3236e530b504e8895bcee266c2f686b
-#: ../../src/tutorial/analytics.rst:22
-msgid ""
-"It is common to find problems with graphs that have not been constructed "
-"fully noded or in graphs with z-levels at intersection that have been "
-"entered incorrectly. An other problem is one way streets that have been "
-"entered in the wrong direction. We can not detect errors with respect to "
-"\"ground\" truth, but we can look for inconsistencies and some anomalies in "
-"a graph and report them for additional inspections."
-msgstr ""
-
-# be553e417c184b5eb0ad8ee4096ad7fa
-#: ../../src/tutorial/analytics.rst:24
-msgid ""
-"We do not current have any visualization tools for these problems, but I "
-"have used mapserver to render the graph and highlight potential problem "
-"areas. Someone familiar with graphviz might contribute tools for generating "
-"images with that."
-msgstr ""
-
-# d3e3bf311b944d1cb4f8ebfa1e3d1c35
-#: ../../src/tutorial/analytics.rst:28
-msgid "Analyze a Graph"
-msgstr "Analyser un graphe"
-
-# b7b34732b36b4c3386ebb82a99725c87
-#: ../../src/tutorial/analytics.rst:30
-msgid ""
-"With :ref:`pgr_analyze_graph` the graph can be checked for errors. For "
-"example for table \"mytab\" that has \"mytab_vertices_pgr\" as the vertices "
-"table:"
-msgstr ""
-
-# 883152de9fb3419fa261d8c6761b619f
-#: ../../src/tutorial/analytics.rst:53
-msgid "In the vertices table \"mytab_vertices_pgr\":"
-msgstr ""
-
-# dde249ef911949ab835d0b7d9350c416
-#: ../../src/tutorial/analytics.rst:55
-msgid "Deadends are indentified by ``cnt=1``"
-msgstr ""
-
-# 99f8cb76dde84268b23cafcadb364a32
-#: ../../src/tutorial/analytics.rst:56
-msgid "Potencial gap problems are identified with ``chk=1``."
-msgstr ""
-
-# fd199f728c124588a6fccf258e912e65
-#: ../../src/tutorial/analytics.rst:74
-msgid ""
-"For isolated road segments, for example, a segment where both ends are "
-"deadends. you can find these with the following query:"
-msgstr ""
-
-# 6986ddb18688499ca9065a00ac84b5fc
-#: ../../src/tutorial/analytics.rst:83
-msgid ""
-"If you want to visualize these on a graphic image, then you can use "
-"something like mapserver to render the edges and the vertices and style "
-"based on ``cnt`` or if they are isolated, etc. You can also do this with a "
-"tool like graphviz, or geoserver or other similar tools."
-msgstr "Si vous voulez visualiser ceux-ci sur une image graphique, alors vous pouvez utiliser quelque chose comme mapserver pour rendre les arêtes et les sommets et le style basé sur ``cnt`` ou ils sont isolés, etc. Vous pouvez aussi faire cela avec un outil comme graphviz, ou geoserver ou autres outils similaires."
-
-# a9cdd802bf2d44b8ad116075edfa006d
-#: ../../src/tutorial/analytics.rst:87
-msgid "Analyze One Way Streets"
-msgstr "Analyser les routes à sens unique"
-
-# ceeba0ba5905459c92f8e38e90544cb4
-#: ../../src/tutorial/analytics.rst:89
-msgid ""
-":ref:`pgr_analyze_oneway` analyzes one way streets in a graph and identifies"
-" any flipped segments. Basically if you count the edges coming into a node "
-"and the edges exiting a node the number has to be greater than one."
-msgstr ""
-
-# 965b89e720674f77a4d6d97b26312235
-#: ../../src/tutorial/analytics.rst:91
-msgid ""
-"This query will add two columns to the vertices_tmp table ``ein int`` and "
-"``eout int`` and populate it with the appropriate counts. After running this"
-" on a graph you can identify nodes with potential problems with the "
-"following query."
-msgstr "Cette requête va ajouter deux colonnes à la table vertices_tmp ``ein int`` et ``eout int`` et la remplir avec les comptes appropriés. Après avoir exécuté ceci sur un graphe vous pouvez identifier les noeuds avec des problèmes potentiels avec la requête suivante."
-
-# 7a483848e9424b628eadf2560140d784
-#: ../../src/tutorial/analytics.rst:94
-msgid ""
-"The rules are defined as an array of text strings that if match the ``col`` "
-"value would be counted as true for the source or target in or out condition."
-msgstr "Les règles sont définies comme un tableau de chaînes de caractères qui s'ils correspondent à la valeur ``col`` serait être comptée comme vraie pour la source ou cible sous ou en dehors de la condition."
-
-# 07304f9bde2d4248af5616aa3ad7b998
-#: ../../src/tutorial/analytics.rst:98
-msgid "Example"
-msgstr "Exemple"
-
-# 3a0862cb802a42dd9a8eb1972e947d4a
-#: ../../src/tutorial/analytics.rst:100
-msgid ""
-"Lets assume we have a table \"st\" of edges and a column \"one_way\" that "
-"might have values like:"
-msgstr "Supposons que nous avons un tableau \"st\" des arêtes et une colonne à \"sens unique\" qui pourrait avoir des valeurs comme :"
-
-# 04d77c12d42a49098ac138d4cd8d1134
-#: ../../src/tutorial/analytics.rst:102
-msgid "'FT'    - oneway from the source to the target node."
-msgstr "'FT'    - sens unique de la source au noeud cible."
-
-# 1e433297e48745b8a26d9bdc471bb079
-#: ../../src/tutorial/analytics.rst:103
-msgid "'TF'    - oneway from the target to the source node."
-msgstr "'TF'    - sens unique de la cible au noeud source."
-
-# ec58ad375c304521a62c088b53b57cca
-#: ../../src/tutorial/analytics.rst:104
-msgid "'B'     - two way street."
-msgstr "'B'     - route à deux voies."
-
-# de3d50611ab84de8abc0434aaf176361
-#: ../../src/tutorial/analytics.rst:105
-msgid "''      - empty field, assume twoway."
-msgstr "''      - champ vide, supposé à deux voies."
-
-# bec6afb7e7f0453b8d028b521ce38b1f
-#: ../../src/tutorial/analytics.rst:106
-msgid "<NULL>  - NULL field, use two_way_if_null flag."
-msgstr "<NULL>  - champ NULL, utiliser le flag two_way_if_null."
-
-# 8b2a6e5d0f58459b9c0d857b8094b2b1
-#: ../../src/tutorial/analytics.rst:108
-msgid ""
-"Then we could form the following query to analyze the oneway streets for "
-"errors."
-msgstr "Ensuite nous pourrions former la requête suivante pour analyser les routes à sens unique pour les erreurs."
-
-# ca0da22fa34a4ab8abffbb33176f1196
-#: ../../src/tutorial/analytics.rst:127
-msgid ""
-"Typically these problems are generated by a break in the network, the one "
-"way direction set wrong, maybe an error related to z-levels or a network "
-"that is not properly noded."
-msgstr ""
-
-# e6995522d4b34322a49f7fc234ef5a92
-#: ../../src/tutorial/analytics.rst:129
-msgid ""
-"The above tools do not detect all network issues, but they will identify "
-"some common problems. There are other problems that are hard to detect "
-"because they are more global in nature like multiple disconnected networks. "
-"Think of an island with a road network that is not connected to the mainland"
-" network because the bridge or ferry routes are missing."
-msgstr ""
-
-# f35ee6b63cb84a21956ba58f495375b3
-#: ../../src/tutorial/analytics.rst:133
-msgid "See Also"
-msgstr "Voir aussi"
-
-# 46adfdf5d9b042109be5c667ad12afdc
-#: ../../src/tutorial/analytics.rst:135
-msgid ":ref:`pgr_analyze_graph`"
-msgstr ":ref:`pgr_analyze_graph`"
-
-# d6a1979339344f65beef1fb134c99ea0
-#: ../../src/tutorial/analytics.rst:136
-msgid ":ref:`pgr_analyze_oneway`"
-msgstr ":ref:`pgr_analyze_oneway`"
-
-# b1e8747121eb4e61bc26581ab784c9ce
-#: ../../src/tutorial/analytics.rst:137
-msgid ":ref:`pgr_node_network`"
-msgstr ":ref:`pgr_node_network`"
diff --git a/doc/i18n/fr/LC_MESSAGES/doc/src/tutorial/custom_query.po b/doc/i18n/fr/LC_MESSAGES/doc/src/tutorial/custom_query.po
deleted file mode 100644
index 6138c51..0000000
--- a/doc/i18n/fr/LC_MESSAGES/doc/src/tutorial/custom_query.po
+++ /dev/null
@@ -1,149 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:12+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 6f7957030f094b6d9cbc9409e43365cc
-#: ../../src/tutorial/custom_query.rst:13
-msgid "Custom Query"
-msgstr "Requête personnalisée"
-
-# d51566c70ba441bd97b5f05d3319f75b
-#: ../../src/tutorial/custom_query.rst:17
-msgid ""
-"In general, the routing algorithms need an SQL query that contain one or "
-"more of the following required columns with the preferred type:"
-msgstr ""
-
-# 3635e11429294bfb8119843ed85e9357
-# 3e7594678daf45f18a5e66bd639a5eff
-# 1cbb2351bab547248a9e9c603cd7a566
-#: ../../src/tutorial/custom_query.rst:19
-#: ../../src/tutorial/custom_query.rst:20
-#: ../../src/tutorial/custom_query.rst:21
-msgid "int4"
-msgstr ""
-
-# 4215130eed644b249425772c5e56bd0f
-# 56540a30c9bd4368b8cabf5c501404f4
-# cd08d7d274414ff8ab7201e379a68284
-# bcb0372ecaf94af1b1ddac5411662b4c
-# 0e6362bbf64c4705b5b1f75692ec42ef
-# 8d70966ee0614b2c887aaab9e45c0dd5
-# 4326b5bb0231435698e3b6d52f933827
-# 3181c241469e4670bcae933939634002
-# cb8241385b0c44c4839d156649851190
-#: ../../src/tutorial/custom_query.rst:22
-#: ../../src/tutorial/custom_query.rst:23
-#: ../../src/tutorial/custom_query.rst:24
-#: ../../src/tutorial/custom_query.rst:25
-#: ../../src/tutorial/custom_query.rst:26
-#: ../../src/tutorial/custom_query.rst:27
-#: ../../src/tutorial/custom_query.rst:28
-#: ../../src/tutorial/custom_query.rst:29
-#: ../../src/tutorial/custom_query.rst:63
-msgid "float8"
-msgstr ""
-
-# 18ef546ea54244b9a998d5db49cd6b44
-#: ../../src/tutorial/custom_query.rst:31
-msgid ""
-"When the edge table has the mentioned columns, the following SQL queries can"
-" be used."
-msgstr ""
-
-# d6c69e08f2e942548a8da4a67c6be175
-#: ../../src/tutorial/custom_query.rst:39
-msgid ""
-"When the edge table has a different name to represent the required columns:"
-msgstr ""
-
-# d121b6e40b2549b68baeebb6ac20ebfe
-#: ../../src/tutorial/custom_query.rst:51
-msgid ""
-"The topology functions use the same names for ``id``, ``source`` and "
-"``target`` columns of the edge table, The fowllowing parameters have as "
-"default value:"
-msgstr ""
-
-# 0cffe4e3fec240748ea92fc80198a879
-#: ../../src/tutorial/custom_query.rst:53
-msgid "int4 Default ``id``"
-msgstr ""
-
-# 317d18ac6e654e2699ab3c5386987100
-#: ../../src/tutorial/custom_query.rst:54
-msgid "int4 Default ``source``"
-msgstr ""
-
-# dc30cae70610482b9da90a59e92699b1
-#: ../../src/tutorial/custom_query.rst:55
-msgid "int4 Default ``target``"
-msgstr ""
-
-# 5ea6410c1e7948d8a0de99e9348a3617
-#: ../../src/tutorial/custom_query.rst:56
-msgid "text Default ``the_geom``"
-msgstr ""
-
-# 234a816e3ec248f6938cf67c6d91e5e1
-#: ../../src/tutorial/custom_query.rst:57
-msgid "text Default ``oneway``"
-msgstr ""
-
-# a4dbcf322242431e86e21cf0dd2d0323
-#: ../../src/tutorial/custom_query.rst:58
-msgid "text Default ``true`` to indicate all rows (this is not a column)"
-msgstr ""
-
-# 0a9261da3a204fe8973f128ef6a960e6
-#: ../../src/tutorial/custom_query.rst:60
-msgid ""
-"The following parameters do not have a default value and when used they have"
-" to be inserted in strict order:"
-msgstr ""
-
-# 24f06f6b1d4e4d4ba7fb3d078899cbeb
-#: ../../src/tutorial/custom_query.rst:62
-msgid "text"
-msgstr ""
-
-# 25b4027b78f7437bb8ce6a6142881103
-# a08810d55bc040ce8de287b6455d6007
-# 9e98508be5844523a5de60001d5ca3ee
-# c5bc2ea08c5d4e188935bd817a23e363
-#: ../../src/tutorial/custom_query.rst:64
-#: ../../src/tutorial/custom_query.rst:65
-#: ../../src/tutorial/custom_query.rst:66
-#: ../../src/tutorial/custom_query.rst:67
-msgid "text[]"
-msgstr ""
-
-# 324f6836a74d4eb9a61de9ec13f4efd8
-#: ../../src/tutorial/custom_query.rst:69
-msgid ""
-"When the columns required have the default names this can be used (pgr_func "
-"is to represent a topology function)"
-msgstr ""
-
-# 250d7353f04c4625a0a939e34b72cbf8
-#: ../../src/tutorial/custom_query.rst:79
-msgid ""
-"When the columns required do not have the default names its strongly "
-"recomended to use the *named notation*."
-msgstr ""
diff --git a/doc/i18n/fr/LC_MESSAGES/doc/src/tutorial/custom_wrapper.po b/doc/i18n/fr/LC_MESSAGES/doc/src/tutorial/custom_wrapper.po
deleted file mode 100644
index 03ca764..0000000
--- a/doc/i18n/fr/LC_MESSAGES/doc/src/tutorial/custom_wrapper.po
+++ /dev/null
@@ -1,24 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-22 17:30+0000\n"
-"Last-Translator: erikap\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# eabd47deb6034d1c95a09b9014e26c69
-#: ../../src/tutorial/custom_wrapper.rst:13
-msgid "Custom Wrapper"
-msgstr "Wrapper personnalisé"
diff --git a/doc/i18n/fr/LC_MESSAGES/doc/src/tutorial/index.po b/doc/i18n/fr/LC_MESSAGES/doc/src/tutorial/index.po
deleted file mode 100644
index 3051e84..0000000
--- a/doc/i18n/fr/LC_MESSAGES/doc/src/tutorial/index.po
+++ /dev/null
@@ -1,99 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (187a022 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-23 15:04\n"
-"PO-Revision-Date: 2013-09-23 20:20+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 6a8f93140b244bb29541e366b9af91dd
-#: ../../src/tutorial/index.rst:13
-msgid "Tutorial"
-msgstr "Tutoriel"
-
-# a64c244637f4455cbded0e09c15fb8e1
-#: ../../src/tutorial/index.rst:16
-msgid ":ref:`Getting started <tutorial>`"
-msgstr ""
-
-# acf4544cb0394b96859312fe489b6b5f
-#: ../../src/tutorial/index.rst:18
-msgid "How to create a database to use for our project"
-msgstr "Comment créer une base de données pour notre projet"
-
-# 29bb03c78beb407cb3c7ef833144e908
-#: ../../src/tutorial/index.rst:19
-msgid "How to load some data"
-msgstr "Comment charger des données"
-
-# 6522624c4787423098652645beaca70b
-#: ../../src/tutorial/index.rst:20
-msgid "How to build a topology"
-msgstr "Comment construire une topologie"
-
-# 7e3a1701c1cb4f2399f80cab2f32fbfd
-#: ../../src/tutorial/index.rst:21
-msgid "How to check your graph for errors"
-msgstr "Comment vérifier les erreurs de votre graphe"
-
-# 7a4ac738b5a54446a3fb6a2a872ee973
-#: ../../src/tutorial/index.rst:22
-msgid "How to compute a route"
-msgstr "Comment calculer une route"
-
-# 267375c5b956437cab09d66694082436
-#: ../../src/tutorial/index.rst:23
-msgid "How to use other tools to view your graph and route"
-msgstr "Comment utiliser d'autres outils pour votre graphe et votre route"
-
-# 7eb6346c00174549a67aa3ba5b639061
-#: ../../src/tutorial/index.rst:24
-msgid "How to create a web app"
-msgstr "Comment créer une application web"
-
-# 9c88e3538b4443db8727c2ac29dfe064
-#: ../../src/tutorial/index.rst:26
-msgid "Advanced Topics"
-msgstr ""
-
-# 96bfb05f4c374de79f250704d4c8b3e7
-#: ../../src/tutorial/index.rst:28
-msgid ":ref:`topology` for an overview of a topology for routing algorithms."
-msgstr ""
-
-# 5bb8a81892314636b035fe0d8e56b426
-#: ../../src/tutorial/index.rst:29
-msgid ":ref:`analytics` for an overview of the analysis of a graph."
-msgstr ""
-
-# 6cfe3bc3d8b942b188c87a00b5e92cb8
-#: ../../src/tutorial/index.rst:30
-msgid ":ref:`custom_query` that is used in the routing algorithms."
-msgstr ""
-
-# 2fc8eb635e614b249d37a76fb7d66f68
-#: ../../src/tutorial/index.rst:31
-msgid ":ref:`performance` to improve your performance."
-msgstr ""
-
-# 1cf3220a11c4411b85339e05e3546f22
-#: ../../src/tutorial/index.rst:32
-msgid ":ref:`custom_wrapper` to colaborate with a wrapper."
-msgstr ""
-
-# 025472df762342bb955f96e2572111ed
-#: ../../src/tutorial/index.rst:33
-msgid ":ref:`recipes` to colaborate with a recipe."
-msgstr ""
diff --git a/doc/i18n/fr/LC_MESSAGES/doc/src/tutorial/performance.po b/doc/i18n/fr/LC_MESSAGES/doc/src/tutorial/performance.po
deleted file mode 100644
index 5a21002..0000000
--- a/doc/i18n/fr/LC_MESSAGES/doc/src/tutorial/performance.po
+++ /dev/null
@@ -1,59 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:12+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 02750fc506e541eaa5e3a34280aabce6
-#: ../../src/tutorial/performance.rst:13
-msgid "Performance Tips"
-msgstr "Conseils pour la performance"
-
-# c6cdc3cc67d54b349406611e4f2fba51
-#: ../../src/tutorial/performance.rst:16
-msgid ""
-"When \"you know\" that you are going to remove a set of edges from the edges"
-" table, and without those edges you are going to use a routing function you "
-"can do the following:"
-msgstr ""
-
-# 09daa462ecb3460fb93b4a3a05fccb4f
-#: ../../src/tutorial/performance.rst:18
-msgid "Analize the new topology based on the actual topology:"
-msgstr ""
-
-# 6481ccc4d94a4513893f4b1ec5fd615f
-#: ../../src/tutorial/performance.rst:24
-msgid "Or create a new topology if the change is permanent:"
-msgstr ""
-
-# f83a8c75a53848f4b2b2ce62be14b3b1
-#: ../../src/tutorial/performance.rst:31
-msgid "Use an SQL that \"removes\" the edges in the routing function"
-msgstr ""
-
-# d598fe2adbc346ce8aa4ea167d2cc77d
-#: ../../src/tutorial/performance.rst:37
-msgid ""
-"When \"you know\" that the route will not go out of a particular area, to "
-"speed up the process you can use a more complex SQL query like"
-msgstr ""
-
-# c7e739bf9e1e42cfaedf49458bedb00c
-#: ../../src/tutorial/performance.rst:46
-msgid "Note that the  same condition ``id < 17`` is used in all cases."
-msgstr ""
diff --git a/doc/i18n/fr/LC_MESSAGES/doc/src/tutorial/recipes.po b/doc/i18n/fr/LC_MESSAGES/doc/src/tutorial/recipes.po
deleted file mode 100644
index 1c7a1e9..0000000
--- a/doc/i18n/fr/LC_MESSAGES/doc/src/tutorial/recipes.po
+++ /dev/null
@@ -1,24 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-22 17:30+0000\n"
-"Last-Translator: erikap\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 227045a7e0474d4998d6a6d10503851b
-#: ../../src/tutorial/recipes.rst:13
-msgid "Useful Recipes"
-msgstr "Recettes utiles"
diff --git a/doc/i18n/fr/LC_MESSAGES/doc/src/tutorial/topology.po b/doc/i18n/fr/LC_MESSAGES/doc/src/tutorial/topology.po
deleted file mode 100644
index 8ee2190..0000000
--- a/doc/i18n/fr/LC_MESSAGES/doc/src/tutorial/topology.po
+++ /dev/null
@@ -1,124 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:12+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 95ba56beb837464cac49ef7880693c4c
-#: ../../src/tutorial/topology.rst:13
-msgid "Routing Topology"
-msgstr "Topologie de routage"
-
-# a13e17875be047edb65c4dff0e77e3a3
-#: ../../src/tutorial/topology.rst:15
-msgid "Stephen Woodbridge <woodbri at swoodbridge.com>"
-msgstr "Stephen Woodbridge <woodbri at swoodbridge.com>"
-
-# fae10235d477445e8c8ad3b8ddf138c5
-#: ../../src/tutorial/topology.rst:16
-msgid ""
-"Stephen Woodbridge. The source code is released under the MIT-X license."
-msgstr "Stephen Woodbridge. The code source est distribué sous la licence MIT-X."
-
-# bb8d84bed17047048664ea7fe078eb94
-#: ../../src/tutorial/topology.rst:20
-msgid "Overview"
-msgstr "Présentation"
-
-# 2a882bec3de94c1eb574a3eb222c98e4
-#: ../../src/tutorial/topology.rst:22
-msgid ""
-"Typically when GIS files are loaded into the data database for use with "
-"pgRouting they do not have topology information associated with them. To "
-"create a useful topology the data needs to be \"noded\". This means that "
-"where two or more roads form an intersection there it needs to be a node at "
-"the intersection and all the road segments need to be broken at the "
-"intersection, assuming that you can navigate from any of these segments to "
-"any other segment via that intersection."
-msgstr ""
-
-# 65c5e66127ab486492799e66af98970c
-#: ../../src/tutorial/topology.rst:24
-msgid ""
-"You can use the :ref:`graph analysis functions <analytics>` to help you see "
-"where you might have topology problems in your data. If you need to node "
-"your data, we also have a function :ref:`pgr_nodeNetwork() "
-"<pgr_node_network>` that might work for you. This function splits ALL "
-"crossing segments and nodes them. There are some cases where this might NOT "
-"be the right thing to do."
-msgstr "Vous pouvez utiliser les :ref:`graph analysis functions <analytics>` pour vous aider à voir où vous pourrie avoir des problèmes de topologie dans vos données. Si vous avez besoin de nouer vos données, nous avons aussi une fonction  :ref:`pgr_nodeNetwork() <pgr_node_network>` qui pourrait fonctionner pour vous. La fonction sépare TOUS les segments et les noue. Il y a certaines cas où cela pourrait ne pas être la bonne chose à faire."
-
-# efc1fb5385064e7da087f3b0371faf57
-#: ../../src/tutorial/topology.rst:26
-msgid ""
-"For example, when you have an overpass and underpass intersection, you do "
-"not want these noded, but pgr_nodeNetwork does not know that is the case and"
-" will node them which is not good because then the router will be able to "
-"turn off the overpass onto the underpass like it was a flat 2D intersection."
-" To deal with this problem some data sets use z-levels at these types of "
-"intersections and other data might not node these intersection which would "
-"be ok."
-msgstr "Par exemple, quand vous avez une intersection entre une route supérieure et inférieure, vous ne voulez pas qu'elle soit nouée, mais pgr_nodeNetwork ne sait pas que c'est le cas et va les nouer avec eux ce qui n'est pas bien parce qu'ensuite le conducteur sera capable d'éteindre la route supérieure sur la route inférieure comme cela était une intersection plate 2D. Pour faire face à ce problème certains jeux de données à ces types utilisent les z-levels à ces types d'intersections [...]
-
-# 43c22da1f7b34db7999adbad7ac7a4e1
-#: ../../src/tutorial/topology.rst:28
-msgid ""
-"For those cases where topology needs to be added the following functions may"
-" be useful. One way to prep the data for pgRouting is to add the following "
-"columns to your table and then populate them as appropriate. This example "
-"makes a lot of assumption like that you original data tables already has "
-"certain columns in it like ``one_way``, ``fcc``, and possibly others and "
-"that they contain specific data values. This is only to give you an idea of "
-"what you can do with your data."
-msgstr "Pour ces cas où la topologie a besoin d'être ajoutée les fonctions suivantes peuvent être utiles. Une façon de préparer les données pour pgRouting est d'ajouter les colonnes suivantes à votre table et ensuite les remplir comme approprié. Cet exemple fait un tas d'hypothèses comme que vos tables de données originales ont certaines colonnes comme ``one_way``, ``fcc``, et possiblement autres et qu'ils contiennent des valeurs de données spécifiques. Ceci est seulement pour vous donne [...]
-
-# 30e52836594b46f1917dd9ffaa55fc0c
-#: ../../src/tutorial/topology.rst:49
-msgid ""
-"The function :ref:`pgr_createTopology() <pgr_create_topology>` will create "
-"the ``vertices_tmp`` table and populate the ``source`` and ``target`` "
-"columns. The following example populated the remaining columns. In this "
-"example, the ``fcc`` column contains feature class code and the ``CASE`` "
-"statements converts it to an average speed."
-msgstr "La fonction :ref:`pgr_createTopology() <pgr_create_topology>` va créer la table ``vertices_tmp`` et remplir la ``source`` et les colonnes ``target``. L'exemple suivant remplit les colonnes suivantes. Dans cet exemple, la colonne ``fcc`` contient le code de la classe fonctionnalité et les instructions ``CASE`` le convertissent en une vitesse moyenne."
-
-# 6aa2b52ff1ac4c16a315c9ddfdf90b57
-#: ../../src/tutorial/topology.rst:112
-msgid ""
-"Now your database should be ready to use any (most?) of the pgRouting "
-"algorithms."
-msgstr "Maintenant votre base de données devrait être prête pour utiliser n'importe (la plupart ?) des algorithmes de pgRouting."
-
-# 6cc3d005cb454b77959bfbdc6fdd2105
-#: ../../src/tutorial/topology.rst:116
-msgid "See Also"
-msgstr "Voir aussi"
-
-# 40847af777814998afe63d824d73c507
-#: ../../src/tutorial/topology.rst:118
-msgid ":ref:`pgr_create_topology`"
-msgstr ":ref:`pgr_create_topology`"
-
-# 974b427fbcf64ec8ab76456dcd37bd7d
-#: ../../src/tutorial/topology.rst:119
-msgid ":ref:`pgr_node_network`"
-msgstr ":ref:`pgr_node_network`"
-
-# adedad6329b0494988daee57bcf0cb98
-#: ../../src/tutorial/topology.rst:120
-msgid ":ref:`pgr_point_to_id`"
-msgstr ":ref:`pgr_point_to_id`"
diff --git a/doc/i18n/fr/LC_MESSAGES/doc/src/tutorial/tutorial.po b/doc/i18n/fr/LC_MESSAGES/doc/src/tutorial/tutorial.po
deleted file mode 100644
index f81d1b4..0000000
--- a/doc/i18n/fr/LC_MESSAGES/doc/src/tutorial/tutorial.po
+++ /dev/null
@@ -1,207 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-23 20:30+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# cc286a8aa26b414ba5c056e7e967f754
-#: ../../src/tutorial/tutorial.rst:13
-msgid "Getting Started"
-msgstr "Prise en main"
-
-# 203987e9bc9545e386abb61978fa7973
-#: ../../src/tutorial/tutorial.rst:15
-msgid ""
-"This is a simple guide to walk you through the steps of getting started with"
-" pgRouting. In this guide we will cover:"
-msgstr "Ceci est un guide simplifié pour vous guider pas à pas à démarrer avec pgRouting. Dans ce guide nous détaillerons :"
-
-# cf084ff2892b4ce09042343d046fd022
-# 09f0c2436ee0452ca34f4ea785294ca0
-#: ../../src/tutorial/tutorial.rst:18 ../../src/tutorial/tutorial.rst:27
-msgid "How to create a database to use for our project"
-msgstr "Comment créer une base de données pour notre projet"
-
-# c3031c03516e400eb51fd389eab9d370
-# 8e16b537fced4fd98de6654b3d25882d
-#: ../../src/tutorial/tutorial.rst:19 ../../src/tutorial/tutorial.rst:61
-msgid "How to load some data"
-msgstr "Comment charger des données"
-
-# 28162361c9ef451a8269bdc8c569c9c5
-# be1e900598c64c579d8a2306852c3c77
-#: ../../src/tutorial/tutorial.rst:20 ../../src/tutorial/tutorial.rst:77
-msgid "How to build a topology"
-msgstr "Comment construire une topologie"
-
-# 422d77e9576145f6b3e41ee3e9d8019c
-# e02a5f0e2c4c4c108a97d142e7719614
-#: ../../src/tutorial/tutorial.rst:21 ../../src/tutorial/tutorial.rst:93
-msgid "How to check your graph for errors"
-msgstr "Comment vérifier les erreurs de votre graphe"
-
-# 48af8de98aa440599ef7c5e08a987c73
-# 00b0784fc2ba469ca4d4987d90a07e2a
-#: ../../src/tutorial/tutorial.rst:22 ../../src/tutorial/tutorial.rst:121
-msgid "How to compute a route"
-msgstr "Comment calculer une route"
-
-# a6c42f436e6240b0bd853d2459a82af5
-# 8f60e469188446368b6e9dd27fa4362c
-#: ../../src/tutorial/tutorial.rst:23 ../../src/tutorial/tutorial.rst:142
-msgid "How to use other tools to view your graph and route"
-msgstr "Comment utiliser d'autres outils pour votre graphe et votre route"
-
-# e8d64e7e71f94995b63b80ec6c489433
-# 20eafe14706e4660b2f9886ce1f6b357
-#: ../../src/tutorial/tutorial.rst:24 ../../src/tutorial/tutorial.rst:147
-msgid "How to create a web app"
-msgstr "Comment créer une application web"
-
-# b1db71933e1241eeae8298bba077f388
-#: ../../src/tutorial/tutorial.rst:29
-msgid ""
-"The first thing we need to do is create a database and load pgrouting in the"
-" database. Typically you will create a database for each project. Once you "
-"have a database to work in, your can load your data and build your "
-"application in that database. This makes it easy to move your project later "
-"if you want to to say a production server."
-msgstr "La première chose que nous avons besoin de faire est de créer une base de données et charger pgrouting dans la base de données. Typiquement vous allez créer une base de données pour chaque projet. Une fois que vous avez une base de données sur laquelle travailler, vous pouvez charger vos données et construire votre application à partir de cette base de données. Cela facilite les choses si vous voulez plus tard migrer le projet sur un serveur de production."
-
-# e9ea8391635c4aeea6230a1dc512ca40
-#: ../../src/tutorial/tutorial.rst:35
-msgid "For Postgresql 9.1 and later versions"
-msgstr "Pour Postgresql 9.1 et les versions ultérieures"
-
-# b5416a83185a4b968116495c15a2dbb9
-#: ../../src/tutorial/tutorial.rst:44
-msgid "For older versions of postgresql"
-msgstr "Pour les versions précédentes de postgresql"
-
-# 4d3bdf2c0daf49e19b0cc8ec9a54ce6d
-#: ../../src/tutorial/tutorial.rst:63
-msgid ""
-"How you load your data will depend in what form it comes it. There are "
-"various OpenSource tools that can help you, like:"
-msgstr "La façon dont vous chargez vos données dépend du format des données. Il existe des outils OpenSource variés qui peuvent vous aider, comme :"
-
-# 443c825aa19945f694b869caa419068a
-#: ../../src/tutorial/tutorial.rst:66
-msgid "this is the postgresql shapefile loader"
-msgstr "c'est le chargeur de fichier au format postgresql"
-
-# 4d91dcd01dac46f59ceb42aeeac5dc8d
-#: ../../src/tutorial/tutorial.rst:67
-msgid "this is a vector data conversion utility"
-msgstr "c'est un utilitaire de conversion de données vectorielles"
-
-# 99f1dae37c3742db82e18bf14675f806
-#: ../../src/tutorial/tutorial.rst:68
-msgid "this is a tool for loading OSM data into postgresql"
-msgstr "c'est un outil de chargement des données OSM dans postgresql"
-
-# 0fc4acb74524472e89a9867f716c6941
-#: ../../src/tutorial/tutorial.rst:70
-msgid ""
-"So these tools and probably others will allow you to read vector data and "
-"and can load that data into your database as a table of some kind. At this "
-"point you need to know a little about your data structure and content. One "
-"easy way to browse you data table is with pgAdmin3 or phpPgAdmin."
-msgstr "Ces outils et probablement d'autres vont donc vous permettre de lire des données vectorielles et peuvent charger ces données dans votre base de données comme une table d'un certain type. A ce point vous avez besoin de connaître un peu votre structure de données et son contenu. Un moyen facile d'explorer vos tables de données est d'utiliser pgAdmin3 ou phpPgAdmin."
-
-# 3eb60b0320c94c54b413905edad6aeda
-#: ../../src/tutorial/tutorial.rst:79
-msgid ""
-"Next we need to build a topology for our street data. What this means is "
-"that for any given edge in your street data the ends of that edge will be "
-"connected to a unique node and to other edges that are also connected to "
-"that same unique node. Once all the edges are connected to nodes we have a "
-"graph that can be used for routing with pgrouting. We provide a tools the "
-"will help with this:"
-msgstr "Ensuite nous avons besoin de construire une topologie de nos données routières. Cela signifie que pour toute arête dans vos données routieres, les terminaisons de cette arête vont être connectées en un unique noeud et aux autres arêtes qui sont aussi connectées à ce meme noeud. Une fois que les arêtes sont connectées aux noeuds nous avons un graphe qui peut etre utilisé pour le routage avec pgrouting. Nous proposons un outil qui aide pour cela :"
-
-# 69e88d4dcd4b4de68a07f7e1bbe05c2f
-#: ../../src/tutorial/tutorial.rst:89
-msgid "See :ref:`pgr_create_topology` for more information."
-msgstr "Voir :ref:`pgr_create_topology` pour plus d'informations."
-
-# a1b054cc1a1a4d12a2a11405bbdec85b
-#: ../../src/tutorial/tutorial.rst:95
-msgid ""
-"There are lots of possible sources for errors in a graph. The data that you "
-"started with may not have been designed with routing in mind. A graph as "
-"some very specific requirments. One it that it is *NODED*, this means that "
-"except for some very specific use cases, each road segments starts and ends "
-"at a node and that in general is does not cross another road segment that it"
-" should be connected to."
-msgstr "Il y a beaucoup de sources d’erreurs possibles dans un graphe. Les données avec lesquelles vous avez commencé peuvent ne pas avoir été conçues avec l’idée de routage. Un graphe a des conditions très spécifiques. L’une est qu’il est *NODED*, cela signifie que mis à part des cas d’utilisation très spécifiques, chaque segment de route commence et finit comme un nœud et en général ne croise pas d’autre segment de route avec lequel il devrait être connecté."
-
-# 6c5337ea36644d71841a60e4a9bb5ba5
-#: ../../src/tutorial/tutorial.rst:102
-msgid ""
-"There can be other errors like the direction of a one-way street being "
-"entered in the wrong direction. We do not have tools to search for all "
-"possible errors but we have some basic tools that might help."
-msgstr "Il peut y avoir d'autres erreurs comme la direction d'une route à sens unique étant entrée dans la mauvaise direction. Nous n'avons pas les outils pour chercher toutes les erreurs possibles mais nous avons les outils qui peuvent aider."
-
-# 3fece9ebff854721b5715cc977ce6d6e
-#: ../../src/tutorial/tutorial.rst:113
-msgid "See :ref:`analytics` for more information."
-msgstr "Voir :ref:`analytics` pour plus d'informations."
-
-# 7a98ae8da3ae48e1a7c5d54e44a48c26
-#: ../../src/tutorial/tutorial.rst:115
-msgid ""
-"If your data needs to be *NODED*, we have a tool that can help for that "
-"also."
-msgstr "Si vos données ont besoin d'être *NODED*, nous avons un outil qui peut aider pour cela aussi."
-
-# 08121e9261964dd58ac553d088c2ed4d
-#: ../../src/tutorial/tutorial.rst:117
-msgid "See :ref:`pgr_node_network` for more information."
-msgstr "Voir :ref:`pgr_node_network` pour plus d'informations."
-
-# 719d8eadd02e428f9c88ee09711fd78e
-#: ../../src/tutorial/tutorial.rst:123
-msgid ""
-"Once you have all the prep work done above, computing a route is fairly "
-"easy. We have a lot of different algorithms but they can work with your "
-"prepared road network. The general form of a route query is:"
-msgstr "Une fois que vous avez tout le travail préparatoire de-dessus fini, calculer une route est assez facile. Nous avons beaucoup d'algorithmes différents mais ils peuvent fonctionner avec votre réseau de routes préparé. La forme générale d'une route est : "
-
-# 9b06e28539b841019a313bfef4d6706a
-#: ../../src/tutorial/tutorial.rst:131
-msgid ""
-"As you can see this is fairly straight forward and you can look and the "
-"specific algorithms for the details on how to use them. What you get as a "
-"result from these queries will be a set of record of type "
-":ref:`type_cost_result` or :ref:`type_geom_result`. These results have "
-"information like edge id and/or the node id along with the cost or geometry "
-"for the step in the path from *start* to *end*. Using the ids you can join "
-"these result back to your edge table to get more information about each step"
-" in the path."
-msgstr ""
-
-# d3652f3967364e05a51d770bf6c22ed7
-#: ../../src/tutorial/tutorial.rst:139
-msgid "See also :ref:`type_cost_result` and :ref:`type_geom_result`."
-msgstr "Voir aussi :ref:`type_cost_result` et :ref:`type_geom_result`."
-
-# ebd4b3f1e2e64e668cbd59b14d10059c
-# 631194a2c36c43fa84fca3ad63545a1c
-#: ../../src/tutorial/tutorial.rst:144 ../../src/tutorial/tutorial.rst:149
-msgid "TBD"
-msgstr "À déterminer"
diff --git a/doc/i18n/fr/LC_MESSAGES/src/apsp_johnson/doc/index.po b/doc/i18n/fr/LC_MESSAGES/src/apsp_johnson/doc/index.po
deleted file mode 100644
index f3f7535..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/apsp_johnson/doc/index.po
+++ /dev/null
@@ -1,141 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-08-25 19:11+0000\n"
-"Last-Translator: erikap\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# c9937b945f654be08e4180e57b2723de
-#: ../../../src/apsp_johnson/doc/index.rst:13
-msgid "pgr_apspJohnson - All Pairs Shortest Path, Johnson's Algorithm"
-msgstr "pgr_apspJohnson - Plus court chemin toutes paires, algorithme de Johnson"
-
-# 79936f3a71384a8a9148a3886df7a858
-#: ../../../src/apsp_johnson/doc/index.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# 3145d47e956649628986400ffdab56a5
-#: ../../../src/apsp_johnson/doc/index.rst:22
-msgid ""
-"``pgr_apspJohnson`` - Returns all costs for each pair of nodes in the graph."
-msgstr "``pgr_apspJohnson`` - Retourne tous les coûts pour chaque paire de noeuds dans le graphe."
-
-# 24009fd27614418c9dee8d1d27eca209
-#: ../../../src/apsp_johnson/doc/index.rst:26
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# 6aa48442c73548e58b708ec465f0993a
-#: ../../../src/apsp_johnson/doc/index.rst:28
-msgid ""
-"Johnson's algorithm is a way to find the shortest paths between all pairs of"
-" vertices in a sparse, edge weighted, directed graph. Returns a set of "
-":ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows for "
-"every pair of nodes in the graph."
-msgstr "L'algorithme de Johnson est un moyen de trouver les plus courts chemins entre toutes les paires de sommets dans un graphe épars, pondéré arête, dirigé. Retourne un ensemble de lignes :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) pour chaque paire de nœuds dans le graphe."
-
-# afa92fc38dee48288d509f6006247df1
-#: ../../../src/apsp_johnson/doc/index.rst:36
-msgid "Description"
-msgstr "Description"
-
-# 1256fc43f6ad440689b650619604651c
-#: ../../../src/apsp_johnson/doc/index.rst:38
-msgid ""
-"a SQL query that should return the edges for the graph that will be "
-"analyzed:"
-msgstr "une requête SQL qui maintient les arêtes pour le graphe qui sera analysé :"
-
-# 3f908a1bbdd04eaa9bf33225e67da2c7
-#: ../../../src/apsp_johnson/doc/index.rst:44
-msgid "``int4`` identifier of the source vertex for this edge"
-msgstr "``int4`` identifiant du sommet source pour cette arête"
-
-# 993049755c48440a9bc398ea9a13fe95
-#: ../../../src/apsp_johnson/doc/index.rst:45
-msgid "``int4`` identifier of the target vertex for this edge"
-msgstr "``int4`` identifiant du sommet cible pour cette arête"
-
-# 28aa6b13c7d54bbdb49c76098a8e4d8e
-#: ../../../src/apsp_johnson/doc/index.rst:46
-msgid "``float8`` a positive value for the cost to traverse this edge"
-msgstr "``float8`` une valeur positive pour le coût pour traverser cette arête"
-
-# 7514070dfcd1415e8414754509baee32
-#: ../../../src/apsp_johnson/doc/index.rst:48
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr "Retourne un ensemble de :ref:`type_cost_result`:"
-
-# 25408ce6cf3d45bebebd52768b102fc0
-#: ../../../src/apsp_johnson/doc/index.rst:50
-msgid "row sequence"
-msgstr "séquence de ligne"
-
-# e4b9d28e22be4a78a2edc7edbf4f1af3
-#: ../../../src/apsp_johnson/doc/index.rst:51
-msgid "source node ID"
-msgstr "ID noeud source"
-
-# f4ef2869f447410dbdb75bf3856bfa93
-#: ../../../src/apsp_johnson/doc/index.rst:52
-msgid "target node ID"
-msgstr "ID nœud cible"
-
-# 74d7b05838ba4c978e0c33f94ab0868f
-#: ../../../src/apsp_johnson/doc/index.rst:53
-msgid "cost to traverse from ``id1`` to ``id2``"
-msgstr "coût pour traverser de ``id1`` en utilisant ``id2``"
-
-# 1767087139fa47218a9eef54ebf0b0f1
-#: ../../../src/apsp_johnson/doc/index.rst:56
-msgid "History"
-msgstr "Histoire"
-
-# 5bc1dae5c7f041298849cae876983c32
-#: ../../../src/apsp_johnson/doc/index.rst:57
-msgid "New in version 2.0.0"
-msgstr "Nouveau depuis la version 2.0.0"
-
-# b679c9ef11b544a6a6502b461b4e3d96
-#: ../../../src/apsp_johnson/doc/index.rst:61
-msgid "Examples"
-msgstr "Exemples"
-
-# 5d6ef1673c204a229ed05dae0c96d0f8
-#: ../../../src/apsp_johnson/doc/index.rst:78
-msgid "The query uses the :ref:`sampledata` network."
-msgstr "La requête utilise le réseau :ref:`sampledata`."
-
-# 8ba7f2721fe74966b8dfd4620ae10b9a
-#: ../../../src/apsp_johnson/doc/index.rst:82
-msgid "See Also"
-msgstr "Voir aussi"
-
-# 475eb50687e74051895523e791434bc1
-#: ../../../src/apsp_johnson/doc/index.rst:84
-msgid ":ref:`type_cost_result`"
-msgstr ":ref:`type_cost_result`"
-
-# 75e0dd6fa0ed4621acf49893e637237c
-#: ../../../src/apsp_johnson/doc/index.rst:85
-msgid ":ref:`pgr_apsp_warshall`"
-msgstr ":ref:`pgr_apsp_warshall`"
-
-# 0e63d6ba27244302bfd848164331ea09
-#: ../../../src/apsp_johnson/doc/index.rst:86
-msgid "http://en.wikipedia.org/wiki/Johnson%27s_algorithm"
-msgstr "http://en.wikipedia.org/wiki/Johnson%27s_algorithm"
diff --git a/doc/i18n/fr/LC_MESSAGES/src/apsp_warshall/doc/index.po b/doc/i18n/fr/LC_MESSAGES/src/apsp_warshall/doc/index.po
deleted file mode 100644
index 287c669..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/apsp_warshall/doc/index.po
+++ /dev/null
@@ -1,161 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:15+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 0f1284ff13c64db68306d3e8f9c97beb
-#: ../../../src/apsp_warshall/doc/index.rst:13
-msgid "pgr_apspWarshall - All Pairs Shortest Path, Floyd-Warshall Algorithm"
-msgstr "pgr_apspWarshall - Plus court chemin toutes paires, Algorithme Floyd-Warshall "
-
-# 42b576974e9a458e951dd429ba4ac9f7
-#: ../../../src/apsp_warshall/doc/index.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# 8610cfce602b4e43867a979e40348da5
-#: ../../../src/apsp_warshall/doc/index.rst:22
-msgid ""
-"``pgr_apspWarshall`` - Returns all costs for each pair of nodes in the "
-"graph."
-msgstr "``pgr_apspWarshall`` - Retourne tous les coûts pour chaque paire de noeuds dans le graphe."
-
-# 4c8c0af0a22f4783b5f40d7d68b431da
-#: ../../../src/apsp_warshall/doc/index.rst:26
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# 001f0668ce734f4b9419fd7b22d98b00
-#: ../../../src/apsp_warshall/doc/index.rst:28
-msgid ""
-"The Floyd-Warshall algorithm (also known as Floyd's algorithm and other "
-"names) is a graph analysis algorithm for finding the shortest paths between "
-"all pairs of nodes in a weighted graph. Returns a set of "
-":ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows for "
-"every pair of nodes in the graph."
-msgstr ""
-
-# e7c4a6dd259d46cd9fcf2631dbc22f2e
-#: ../../../src/apsp_warshall/doc/index.rst:36
-msgid "Description"
-msgstr "Description"
-
-# e0f6896524cc4a4d91c418144da5102b
-#: ../../../src/apsp_warshall/doc/index.rst:38
-msgid ""
-"a SQL query that should return the edges for the graph that will be "
-"analyzed:"
-msgstr "une requête SQL qui maintient les arêtes pour le graphe qui sera analysé :"
-
-# 97a32a6ff6e14816834d1eb5e229f2b4
-#: ../../../src/apsp_warshall/doc/index.rst:44
-msgid "``int4`` identifier of the edge"
-msgstr "``int4`` identifiant de l'arête"
-
-# b42ae19f11c44f618c034ae1ce6be00a
-#: ../../../src/apsp_warshall/doc/index.rst:45
-msgid "``int4`` identifier of the source vertex for this edge"
-msgstr "``int4`` identifiant du sommet source pour cette arête"
-
-# c0b57bb608d34affbce8c6bb5ec9302f
-#: ../../../src/apsp_warshall/doc/index.rst:46
-msgid "``int4`` identifier of the target vertex for this edge"
-msgstr "``int4`` identifiant du sommet cible pour cette arête"
-
-# c5cb344693474da29d9a8ff57e96c0f7
-#: ../../../src/apsp_warshall/doc/index.rst:47
-msgid "``float8`` a positive value for the cost to traverse this edge"
-msgstr "``float8`` une valeur positive pour le coût pour traverser cette arête"
-
-# 5dd37dfc4bff497d85337655170aa2fe
-#: ../../../src/apsp_warshall/doc/index.rst:49
-msgid "``true`` if the graph is directed"
-msgstr "``true`` si le graphe est dirigé"
-
-# 6996d55bc55245d39ea7b7fadce791a7
-#: ../../../src/apsp_warshall/doc/index.rst:50
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr "si ``true``,  la colonne ``reverse_cost`` du SQL générant l'ensemble des lignes va être utilisé pour le coût de la traversée de l'arête dans la direction opposée."
-
-# a26f91fad97b4c1fb810f9cbe42a7c55
-#: ../../../src/apsp_warshall/doc/index.rst:52
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr "Retourne un ensemble de :ref:`type_cost_result`:"
-
-# d67cd203b9424e1faa0416ab268956c5
-#: ../../../src/apsp_warshall/doc/index.rst:54
-msgid "row sequence"
-msgstr "séquence de ligne"
-
-# 13448c2239764d798d56189875475d19
-#: ../../../src/apsp_warshall/doc/index.rst:55
-msgid "source node ID"
-msgstr "ID noeud source"
-
-# 754d094ac6ae42d5a22b8855ce7a73e7
-#: ../../../src/apsp_warshall/doc/index.rst:56
-msgid "target node ID"
-msgstr "ID nœud cible"
-
-# c9edf1f99746459c9ef79922766fc805
-#: ../../../src/apsp_warshall/doc/index.rst:57
-msgid "cost to traverse from ``id1`` to ``id2``"
-msgstr "coût pour traverser de ``id1`` en utilisant ``id2``"
-
-# e878f40e61334a669136534d82f3bc05
-#: ../../../src/apsp_warshall/doc/index.rst:61
-msgid "History"
-msgstr "Histoire"
-
-# b506bf29ad7944d7bd0db6d48ffe9f4f
-#: ../../../src/apsp_warshall/doc/index.rst:62
-msgid "New in version 2.0.0"
-msgstr "Nouveau depuis la version 2.0.0"
-
-# 5c0117f6a40740aa8b02bc181e0e01dc
-#: ../../../src/apsp_warshall/doc/index.rst:66
-msgid "Examples"
-msgstr "Exemples"
-
-# 38918d939ef74f6e86528d1060dc810c
-#: ../../../src/apsp_warshall/doc/index.rst:84
-msgid "The query uses the :ref:`sampledata` network."
-msgstr "La requête utilise le réseau :ref:`sampledata`."
-
-# 4feffc0c2a824f81bb35b10c6f13176d
-#: ../../../src/apsp_warshall/doc/index.rst:88
-msgid "See Also"
-msgstr "Voir aussi"
-
-# aa6ecd6c9d584db1adf49b7df81583e9
-#: ../../../src/apsp_warshall/doc/index.rst:90
-msgid ":ref:`type_cost_result`"
-msgstr ":ref:`type_cost_result`"
-
-# 0f05cbf530e0455daed36d6b50bbf30f
-#: ../../../src/apsp_warshall/doc/index.rst:91
-msgid ":ref:`pgr_apsp_johnson`"
-msgstr ":ref:`pgr_apsp_johnson`"
-
-# b09888d0778445eb93cbdfb7075b4157
-#: ../../../src/apsp_warshall/doc/index.rst:92
-msgid "http://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall_algorithm"
-msgstr "http://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall_algorithm"
diff --git a/doc/i18n/fr/LC_MESSAGES/src/astar/doc/index.po b/doc/i18n/fr/LC_MESSAGES/src/astar/doc/index.po
deleted file mode 100644
index a48a8a8..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/astar/doc/index.po
+++ /dev/null
@@ -1,203 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-08-25 07:18+0000\n"
-"Last-Translator: erikap\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# b270045aa6e74d789897bb176f5c4a37
-#: ../../../src/astar/doc/index.rst:13
-msgid "pgr_astar - Shortest Path A*"
-msgstr "pgr_astar - Plus court chemin A*"
-
-# a4d6dd313b3f44bdbbecdf59c8e4e866
-#: ../../../src/astar/doc/index.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# 0c4c2fff9ea445dcbb1dfdca8374cd09
-#: ../../../src/astar/doc/index.rst:22
-msgid "``pgr_astar`` — Returns the shortest path using A* algorithm."
-msgstr "``pgr_astar`` — Retourne le plus court chemin en utilisant l'algorithme A*."
-
-# d3e3e83acd754acb9ac4c583d6dd0649
-#: ../../../src/astar/doc/index.rst:26
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# 87ae068cf08b4ddca7f5bb3722ce57f2
-#: ../../../src/astar/doc/index.rst:28
-msgid ""
-"The A* (pronounced \"A Star\") algorithm is based on Dijkstra's algorithm "
-"with a heuristic that allow it to solve most shortest path problems by "
-"evaluation only a sub-set of the overall graph. Returns a set of "
-":ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows, that "
-"make up a path."
-msgstr "L'algorithme A* (prononcé \"A Etoile\") est basé sur l'algorithme de Dijkstra avec une heuristique qui autorise de résoudre la plupart des problèmes de plus court chemin par l'évaluation de seulement d'un sous-ensemble du graphe général. Retourne un ensemble de lignes :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost), qui fabriquent un chemin."
-
-# cd2802c13d3d4798934f9f60cc9ebfb9
-#: ../../../src/astar/doc/index.rst:37
-msgid "Description"
-msgstr "Description"
-
-# 64ca501e984b45df9055511188eb65f4
-#: ../../../src/astar/doc/index.rst:39
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr "une requête SQL, qui devrait retourner un ensemble de lignes avec les colonnes suivantes :"
-
-# 739adee835f647ff94511acc6e126ee5
-#: ../../../src/astar/doc/index.rst:46
-msgid "``int4`` identifier of the edge"
-msgstr "``int4`` identifiant de l'arête"
-
-# 72186cf53aee4035bdbcc0495fb6bf42
-#: ../../../src/astar/doc/index.rst:47
-msgid "``int4`` identifier of the source vertex"
-msgstr "``int4`` identifiant du sommet source"
-
-# 0857159bb2c949bb892388c25f6fb4ec
-#: ../../../src/astar/doc/index.rst:48
-msgid "``int4`` identifier of the target vertex"
-msgstr "``int4`` identifiant du sommet cible"
-
-# 4ddccc85290d4aba9b82668e90b2ba31
-#: ../../../src/astar/doc/index.rst:49
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr "``float8`` valeur, du coût de l'arête traversée. Un coût négatif va prévenir l'arête d'être insérée dans le graphe."
-
-# d21510a5452e4a098e36f5ae7f7585b4
-#: ../../../src/astar/doc/index.rst:50
-msgid "``x`` coordinate of the start point of the edge"
-msgstr "``x`` coordonnée du point de départ de l'arête"
-
-# 78d6feeb1c174e96ad209b97fb1cd538
-#: ../../../src/astar/doc/index.rst:51
-msgid "``y`` coordinate of the start point of the edge"
-msgstr "``y`` coordonnée du point de départ de l'arête"
-
-# b7404cbf8c86414494f72f87b3702241
-#: ../../../src/astar/doc/index.rst:52
-msgid "``x`` coordinate of the end point of the edge"
-msgstr "``x`` coordonnée du point final de l'arête"
-
-# d0f8d9e10994475dac4ad4e8ea1315f7
-#: ../../../src/astar/doc/index.rst:53
-msgid "``y`` coordinate of the end point of the edge"
-msgstr "``y`` coordonnée du point final de l'arête"
-
-# 46b33f8b295043059fce210e43698191
-#: ../../../src/astar/doc/index.rst:54
-msgid ""
-"(optional) the cost for the reverse traversal of the edge. This is only used"
-" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
-"above remark about negative costs)."
-msgstr "(optionnel) le coût pour la traversée inverse de l'arête. Ceci est seulement utilisé quand les paramètres ``directed`` et ``has_rcost`` sont ``true`` (voir la remarque ci-dessus sur les coûts négatifs)."
-
-# bfd63fe9d374441babb8662a0874482b
-#: ../../../src/astar/doc/index.rst:56
-msgid "``int4`` id of the start point"
-msgstr "``int4`` id du point de départ"
-
-# 85d35dcc4ced4efaac8d7b50f4ff9357
-#: ../../../src/astar/doc/index.rst:57
-msgid "``int4`` id of the end point"
-msgstr "``int4`` id du point final"
-
-# f93b4ce091a6440d9a656b374fce6636
-#: ../../../src/astar/doc/index.rst:58
-msgid "``true`` if the graph is directed"
-msgstr "``true`` si le graphe est dirigé"
-
-# 1a783bf8f88146999659f222ef236d1b
-#: ../../../src/astar/doc/index.rst:59
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr "si ``true``,  la colonne ``reverse_cost`` du SQL générant l'ensemble des lignes va être utilisé pour le coût de la traversée de l'arête dans la direction opposée."
-
-# c0f6cf1f1daf40bc8d08fa3b85c3af6b
-#: ../../../src/astar/doc/index.rst:61
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr "Retourne un ensemble de :ref:`type_cost_result`:"
-
-# 22b5e075f6e94c608af67a4c040f4e70
-#: ../../../src/astar/doc/index.rst:63
-msgid "row sequence"
-msgstr "séquence de ligne"
-
-# 1f3ccd737354442fb4d87684690988a2
-#: ../../../src/astar/doc/index.rst:64
-msgid "node ID"
-msgstr "ID noeud"
-
-# 8a4fe9f16a934ffa842ea049c36728bf
-#: ../../../src/astar/doc/index.rst:65
-msgid "edge ID (``-1`` for the last row)"
-msgstr "ID arête (``-1`` pour la dernière ligne)"
-
-# 7cff3509785e40adb8ff4ce4f4bf0774
-#: ../../../src/astar/doc/index.rst:66
-msgid "cost to traverse from ``id1`` using ``id2``"
-msgstr "coût pour traverser à partir de ``id1`` en utilisant ``id2``"
-
-# 9cc8b235e4214d4c87b729d24031271e
-#: ../../../src/astar/doc/index.rst:70
-msgid "History"
-msgstr "Histoire"
-
-# 623c2a84d062407d93855875a467dbe1
-#: ../../../src/astar/doc/index.rst:71
-msgid "Renamed in version 2.0.0"
-msgstr "Renommé depuis la version 2.0.0"
-
-# 7f75da722e6e4680a8d9e0a3d69678b9
-#: ../../../src/astar/doc/index.rst:75
-msgid "Examples"
-msgstr "Exemples"
-
-# 533a7e7ccd3645c4a6e6d3e90875cccf
-#: ../../../src/astar/doc/index.rst:77
-msgid "Without ``reverse_cost``"
-msgstr "Sans ``reverse_cost``"
-
-# 0cf32ba2b9dd435191e182fa2e1219a3
-#: ../../../src/astar/doc/index.rst:99
-msgid "With ``reverse_cost``"
-msgstr "Avec ``reverse_cost``"
-
-# 266a522386364908870781287ffe7c77
-#: ../../../src/astar/doc/index.rst:117
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "Les requêtes utilisent le réseau :ref:`sampledata`."
-
-# 3f0ab007b6c24393bda58a4c8f051a6b
-#: ../../../src/astar/doc/index.rst:121
-msgid "See Also"
-msgstr "Voir aussi"
-
-# c407743821a8437fa59503cbee2e31b7
-#: ../../../src/astar/doc/index.rst:123
-msgid ":ref:`type_cost_result`"
-msgstr ":ref:`type_cost_result`"
-
-# 994c0952621c47349ec4e5b209ee1129
-#: ../../../src/astar/doc/index.rst:124
-msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
-msgstr "http://en.wikipedia.org/wiki/A*_search_algorithm"
diff --git a/doc/i18n/fr/LC_MESSAGES/src/bd_astar/doc/index.po b/doc/i18n/fr/LC_MESSAGES/src/bd_astar/doc/index.po
deleted file mode 100644
index 658a36a..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/bd_astar/doc/index.po
+++ /dev/null
@@ -1,222 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-08-25 07:22+0000\n"
-"Last-Translator: erikap\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# d85c70ae393d476284068bf297195cc7
-#: ../../../src/bd_astar/doc/index.rst:13
-msgid "pgr_bdAstar - Bi-directional A* Shortest Path"
-msgstr "pgr_bdAstar - plus court chemin bidirectionnel A*"
-
-# 59f0d447a4034729bbdc2dad7b88dcce
-#: ../../../src/bd_astar/doc/index.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# ff5b6b1bd362408c80bec7cfbc7108bf
-#: ../../../src/bd_astar/doc/index.rst:22
-msgid ""
-"``pgr_bdAstar`` - Returns the shortest path using Bidirectional A* "
-"algorithm."
-msgstr "``pgr_bdAstar`` - Retourne le plus court chemin en utilisant l'algorithme bidirectionnel A*."
-
-# 6e2dd97777d64f02afc4b396822f7c37
-#: ../../../src/bd_astar/doc/index.rst:26
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# d88a86d95c0447db93be2a1f185b91bd
-#: ../../../src/bd_astar/doc/index.rst:28
-msgid ""
-"This is a bi-directional A* search algorithm. It searchs from the source "
-"toward the distination and at the same time from the destination to the "
-"source and terminates whe these to searchs meet in the middle. Returns a set"
-" of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows, "
-"that make up a path."
-msgstr "Ceci est un algorithme de recherche bidirectionnel A*. Il recherche d'une source vers une destination et en même temps depuis la destination vers la source et se finit quand ces deux recherches se rencontrent au milieur. Retourne un ensemble de lignes :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost), qui fabriquent un chemin."
-
-# c9f7d12fb2c9416390cbb64c61cdaaba
-#: ../../../src/bd_astar/doc/index.rst:37
-msgid "Description"
-msgstr "Description"
-
-# 2228656c57724bc18029fa054849a999
-#: ../../../src/bd_astar/doc/index.rst:39
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr "une requête SQL, qui devrait retourner un ensemble de lignes avec les colonnes suivantes :"
-
-# ba13914fdd78469389ae129eee02785f
-#: ../../../src/bd_astar/doc/index.rst:46
-msgid "``int4`` identifier of the edge"
-msgstr "``int4`` identifiant de l'arête"
-
-# 5e7f92a0ffa845a385efe72da0760ee5
-#: ../../../src/bd_astar/doc/index.rst:47
-msgid "``int4`` identifier of the source vertex"
-msgstr "``int4`` identifiant du sommet source"
-
-# 194b29afb7b3486eb5611222273bb323
-#: ../../../src/bd_astar/doc/index.rst:48
-msgid "``int4`` identifier of the target vertex"
-msgstr "``int4`` identifiant du sommet cible"
-
-# 37f1ad354f13413fa6a47ec8ceaa3262
-#: ../../../src/bd_astar/doc/index.rst:49
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr "``float8`` valeur, du coût de l'arête traversée. Un coût négatif va prévenir l'arête d'être insérée dans le graphe."
-
-# f7bf689e55584ee0b2e095b8f3147354
-#: ../../../src/bd_astar/doc/index.rst:50
-msgid "``x`` coordinate of the start point of the edge"
-msgstr "``x`` coordonnée du point de départ de l'arête"
-
-# e7b2325c3e8f473fae345bff6b9f9af6
-#: ../../../src/bd_astar/doc/index.rst:51
-msgid "``y`` coordinate of the start point of the edge"
-msgstr "``y`` coordonnée du point de départ de l'arête"
-
-# a554e40ce41e485d83bdcc425edab876
-#: ../../../src/bd_astar/doc/index.rst:52
-msgid "``x`` coordinate of the end point of the edge"
-msgstr "``x`` coordonnée du point final de l'arête"
-
-# d0033effb66d4af891d51c0553106616
-#: ../../../src/bd_astar/doc/index.rst:53
-msgid "``y`` coordinate of the end point of the edge"
-msgstr "``y`` coordonnée du point final de l'arête"
-
-# 52fd318293ff42458d93837f06a5dd78
-#: ../../../src/bd_astar/doc/index.rst:54
-msgid ""
-"(optional) the cost for the reverse traversal of the edge. This is only used"
-" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
-"above remark about negative costs)."
-msgstr "(optionnel) le coût pour la traversée inverse de l'arête. Ceci est seulement utilisé quand les paramètres ``directed`` et ``has_rcost`` sont ``true`` (voir la remarque ci-dessus sur les coûts négatifs)."
-
-# b2ec788128e44b59a8a9eaf588b3ef93
-#: ../../../src/bd_astar/doc/index.rst:56
-msgid "``int4`` id of the start point"
-msgstr "``int4`` id du point de départ"
-
-# f5809c895ef3496fbaf43892301858ca
-#: ../../../src/bd_astar/doc/index.rst:57
-msgid "``int4`` id of the end point"
-msgstr "``int4`` id du point final"
-
-# 29607e76254f42938d9c38a10e11c7b9
-#: ../../../src/bd_astar/doc/index.rst:58
-msgid "``true`` if the graph is directed"
-msgstr "``true`` si le graphe est dirigé"
-
-# f4b5e84674e749be9f6ba934004cd598
-#: ../../../src/bd_astar/doc/index.rst:59
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr "si ``true``,  la colonne ``reverse_cost`` du SQL générant l'ensemble des lignes va être utilisé pour le coût de la traversée de l'arête dans la direction opposée."
-
-# 9969bf0e6e5f40e3b44efbfd0e53d70b
-#: ../../../src/bd_astar/doc/index.rst:61
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr "Retourne un ensemble de :ref:`type_cost_result`:"
-
-# 1634c060516d40388b007b17f2fee94c
-#: ../../../src/bd_astar/doc/index.rst:63
-msgid "row sequence"
-msgstr "séquence de ligne"
-
-# 4a478cf05b72415ebfc7f95d8e0b8625
-#: ../../../src/bd_astar/doc/index.rst:64
-msgid "node ID"
-msgstr "ID noeud"
-
-# b94cd2b23db94500b803d9c02b8ab358
-#: ../../../src/bd_astar/doc/index.rst:65
-msgid "edge ID (``-1`` for the last row)"
-msgstr "ID arête (``-1`` pour la dernière ligne)"
-
-# b8b6a3e185934bc4b7d44f66694523c5
-#: ../../../src/bd_astar/doc/index.rst:66
-msgid "cost to traverse from ``id1`` using ``id2``"
-msgstr "coût pour traverser à partir de ``id1`` en utilisant ``id2``"
-
-# f9a6aa6c249c40968bc39a3db86a5ebe
-#: ../../../src/bd_astar/doc/index.rst:70
-msgid ""
-"You must reconnect to the database after ``CREATE EXTENSION pgrouting``. "
-"Otherwise the function will return ``Error computing path: std::bad_alloc``."
-msgstr "Vous devez vous reconnecter à la base de données après ``CREATE EXTENSION pgrouting``. Sinon la fonction va retourner ``Error computing path: std::bad_alloc``."
-
-# e574996346fe4d3d937be160d621e660
-#: ../../../src/bd_astar/doc/index.rst:74
-msgid "History"
-msgstr "Histoire"
-
-# 98c01f9f86914541a78481fc80a804dd
-#: ../../../src/bd_astar/doc/index.rst:75
-msgid "New in version 2.0.0"
-msgstr "Nouveau depuis la version 2.0.0"
-
-# fd577945de174be79b0b53dc92d1fdae
-#: ../../../src/bd_astar/doc/index.rst:79
-msgid "Examples"
-msgstr "Exemples"
-
-# 1e4a6776b9154f5da5abb5c6d64f3221
-#: ../../../src/bd_astar/doc/index.rst:81
-msgid "Without ``reverse_cost``"
-msgstr "Sans ``reverse_cost``"
-
-# 3f707fb48bdf4edfa0f1b3657cfcbb7a
-#: ../../../src/bd_astar/doc/index.rst:101
-msgid "With ``reverse_cost``"
-msgstr "Avec ``reverse_cost``"
-
-# 473f16db67964e14b8efb25a1cf057b9
-#: ../../../src/bd_astar/doc/index.rst:120
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "Les requêtes utilisent le réseau :ref:`sampledata`."
-
-# 7289ec5f57844a379608577bd455d4b5
-#: ../../../src/bd_astar/doc/index.rst:124
-msgid "See Also"
-msgstr "Voir aussi"
-
-# 773014635f2c4e87a452416b391581e5
-#: ../../../src/bd_astar/doc/index.rst:126
-msgid ":ref:`type_cost_result`"
-msgstr ":ref:`type_cost_result`"
-
-# f4c3b61a97b94311a9f83508c040b614
-#: ../../../src/bd_astar/doc/index.rst:127
-msgid ":ref:`bd_dijkstra`"
-msgstr ":ref:`bd_dijkstra`"
-
-# 769c0e94fba24848bb36a7bb9ca90800
-#: ../../../src/bd_astar/doc/index.rst:128
-msgid "http://en.wikipedia.org/wiki/Bidirectional_search"
-msgstr "http://en.wikipedia.org/wiki/Bidirectional_search"
-
-# bc6e6a206f44475d91e857ec85d36106
-#: ../../../src/bd_astar/doc/index.rst:129
-msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
-msgstr "http://en.wikipedia.org/wiki/A*_search_algorithm"
diff --git a/doc/i18n/fr/LC_MESSAGES/src/bd_dijkstra/doc/index.po b/doc/i18n/fr/LC_MESSAGES/src/bd_dijkstra/doc/index.po
deleted file mode 100644
index 2bc6517..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/bd_dijkstra/doc/index.po
+++ /dev/null
@@ -1,195 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-08-25 07:10+0000\n"
-"Last-Translator: erikap\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 3c0a9e188c614b0d8a83fad794d3b42f
-#: ../../../src/bd_dijkstra/doc/index.rst:13
-msgid "pgr_bdDijkstra - Bi-directional Dijkstra Shortest Path"
-msgstr "pgr_bdDijkstra - Plus court chemin bidirectionnel Dijkstra"
-
-# 2a8d7f88cd7c41549e90531d1d565848
-#: ../../../src/bd_dijkstra/doc/index.rst:21
-msgid "Name"
-msgstr "Nom"
-
-# 9e326337967141dd8cb35c1a7eb5d7b2
-#: ../../../src/bd_dijkstra/doc/index.rst:23
-msgid ""
-"``pgr_bdDijkstra`` - Returns the shortest path using Bidirectional Dijkstra "
-"algorithm."
-msgstr "``pgr_bdDijkstra`` - Retourne le plus court chemin en utilisant l'algorithme bidirectionnel Dijkstra."
-
-# e2e0af558a7340a7a29f667b07037690
-#: ../../../src/bd_dijkstra/doc/index.rst:27
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# 23d2258a058a4b5fa6dcb6655362484a
-#: ../../../src/bd_dijkstra/doc/index.rst:29
-msgid ""
-"This is a bi-directional Dijkstra search algorithm. It searchs from the "
-"source toward the distination and at the same time from the destination to "
-"the source and terminates whe these to searchs meet in the middle. Returns a"
-" set of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows,"
-" that make up a path."
-msgstr "C'est un algorithme de recherche bidirectionnel Dijkstra. Cela recherche depuis la source vers la destination et en même temps depuis la destination vers la source et se termine quand ces deux recherches se rencontrent au milieu. Retourne un ensemble de lignes :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost), qui fabriquent un chemin."
-
-# b37dbb1c097441d7afac9b1c3be4fa16
-#: ../../../src/bd_dijkstra/doc/index.rst:38
-msgid "Description"
-msgstr "Description"
-
-# 27182b928a294e22bbd7567e7ef6a1a6
-#: ../../../src/bd_dijkstra/doc/index.rst:40
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr "une requête SQL, qui devrait retourner un ensemble de lignes avec les colonnes suivantes :"
-
-# d5ecf6b2aa844b768783b31d91cc0d1c
-#: ../../../src/bd_dijkstra/doc/index.rst:47
-msgid "``int4`` identifier of the edge"
-msgstr "``int4`` identifiant de l'arête"
-
-# 282a69ee248b4dcfa591ec2aa3668cf4
-#: ../../../src/bd_dijkstra/doc/index.rst:48
-msgid "``int4`` identifier of the source vertex"
-msgstr "``int4`` identifiant du sommet source"
-
-# d8ca4a99797f4da89401ca4eae5de81b
-#: ../../../src/bd_dijkstra/doc/index.rst:49
-msgid "``int4`` identifier of the target vertex"
-msgstr "``int4`` identifiant du sommet cible"
-
-# 16d3eacf8377421dbb3aa3f559f8c2fd
-#: ../../../src/bd_dijkstra/doc/index.rst:50
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr "``float8`` valeur, du coût de l'arête traversée. Un coût négatif va prévenir l'arête d'être insérée dans le graphe."
-
-# 2a8cd5659ad849358862b656205877aa
-#: ../../../src/bd_dijkstra/doc/index.rst:51
-msgid ""
-"(optional) the cost for the reverse traversal of the edge. This is only used"
-" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
-"above remark about negative costs)."
-msgstr "(optionnel) le coût pour la traversée inverse de l'arête. Ceci est seulement utilisé quand les paramètres ``directed`` et ``has_rcost`` sont ``true`` (voir la remarque ci-dessus sur les coûts négatifs)."
-
-# 95f13721773f433891e1e8b50ac04509
-#: ../../../src/bd_dijkstra/doc/index.rst:53
-msgid "``int4`` id of the start point"
-msgstr "``int4`` id du point de départ"
-
-# b9798483a7944c23b68242badf5ba991
-#: ../../../src/bd_dijkstra/doc/index.rst:54
-msgid "``int4`` id of the end point"
-msgstr "``int4`` id du point final"
-
-# ff73a5d65d1e44728449829347874aa3
-#: ../../../src/bd_dijkstra/doc/index.rst:55
-msgid "``true`` if the graph is directed"
-msgstr "``true`` si le graphe est dirigé"
-
-# c177b69ec8f34e3e8347a48cd4fd0eec
-#: ../../../src/bd_dijkstra/doc/index.rst:56
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr "si ``true``,  la colonne ``reverse_cost`` du SQL générant l'ensemble des lignes va être utilisé pour le coût de la traversée de l'arête dans la direction opposée."
-
-# 94093f98581b414e8de69c5c03ed7ff9
-#: ../../../src/bd_dijkstra/doc/index.rst:58
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr "Retourne un ensemble de :ref:`type_cost_result`:"
-
-# b6dcdf2882344c97b13a0a1b5dcfc76f
-#: ../../../src/bd_dijkstra/doc/index.rst:60
-msgid "row sequence"
-msgstr "séquence de ligne"
-
-# 71a25f43edad4704b8f7bc386b951d6a
-#: ../../../src/bd_dijkstra/doc/index.rst:61
-msgid "node ID"
-msgstr "ID noeud"
-
-# bb342316c7374f38ae60758a95fe5aa0
-#: ../../../src/bd_dijkstra/doc/index.rst:62
-msgid "edge ID (``-1`` for the last row)"
-msgstr "ID arête (``-1`` pour la dernière ligne)"
-
-# 903aaea6437d438094faa1255671261a
-#: ../../../src/bd_dijkstra/doc/index.rst:63
-msgid "cost to traverse from ``id1`` using ``id2``"
-msgstr "coût pour traverser depuis ``id1`` en utilisant ``id2``"
-
-# 9422981e26f04c7e9edb754944c47cea
-#: ../../../src/bd_dijkstra/doc/index.rst:66
-msgid "History"
-msgstr "Histoire"
-
-# c1db7489de2b4ef8880d8d9f3abb66e3
-#: ../../../src/bd_dijkstra/doc/index.rst:67
-msgid "New in version 2.0.0"
-msgstr "Nouveau depuis la version 2.0.0"
-
-# e61d7de8bdb04972a567e5884e47773a
-#: ../../../src/bd_dijkstra/doc/index.rst:71
-msgid "Examples"
-msgstr "Exemples"
-
-# e5bb5ec0cf844c229475d4e75c327eb3
-#: ../../../src/bd_dijkstra/doc/index.rst:73
-msgid "Without ``reverse_cost``"
-msgstr "Sans ``reverse_cost``"
-
-# 7b425886ca994a1e87e833443909b584
-#: ../../../src/bd_dijkstra/doc/index.rst:93
-msgid "With ``reverse_cost``"
-msgstr "Avec ``reverse_cost``"
-
-# f47bce06d90b47c0a3ba534e4af09213
-#: ../../../src/bd_dijkstra/doc/index.rst:113
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "Les requêtes utilisent le réseau :ref:`sampledata`."
-
-# dce05fd947104f7fb53f334994b47db8
-#: ../../../src/bd_dijkstra/doc/index.rst:117
-msgid "See Also"
-msgstr "Voir aussi"
-
-# e9e1be5a32c8439083185caf29aaa09b
-#: ../../../src/bd_dijkstra/doc/index.rst:119
-msgid ":ref:`type_cost_result`"
-msgstr ":ref:`type_cost_result`"
-
-# 7e04714c590148078028bde3efbb5f57
-#: ../../../src/bd_dijkstra/doc/index.rst:120
-msgid ":ref:`bd_astar`"
-msgstr ":ref:`bd_astar`"
-
-# 1e532cd9d5634fb0934e837b0db7ad8a
-#: ../../../src/bd_dijkstra/doc/index.rst:121
-msgid "http://en.wikipedia.org/wiki/Bidirectional_search"
-msgstr "http://en.wikipedia.org/wiki/Bidirectional_search"
-
-# e3826d9e6a084b349a9ed0d6fffdb1ad
-#: ../../../src/bd_dijkstra/doc/index.rst:122
-msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
-msgstr "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
diff --git a/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/analyze_graph.po b/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/analyze_graph.po
deleted file mode 100644
index 00ee813..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/analyze_graph.po
+++ /dev/null
@@ -1,411 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:13+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 4ec68d2c61f945ef81648e1b5c6415f1
-#: ../../../src/common/doc/functions/analyze_graph.rst:13
-msgid "pgr_analyzeGraph"
-msgstr ""
-
-# 4c3762e114fb4e67a2515bba541c8f36
-#: ../../../src/common/doc/functions/analyze_graph.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# ac455e0fb31e44308320f39bbd78adfc
-#: ../../../src/common/doc/functions/analyze_graph.rst:22
-msgid "``pgr_anlizeGraph`` — Analyzes the network topology."
-msgstr ""
-
-# 7d6b06e1d5354d94ac2855084e4e9e71
-#: ../../../src/common/doc/functions/analyze_graph.rst:26
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# 19f89e76f38342129988c1b3de66af9a
-# ebc7d96a54cb409a916a9e44ff8544f9
-#: ../../../src/common/doc/functions/analyze_graph.rst:28
-#: ../../../src/common/doc/functions/analyze_graph.rst:61
-msgid "The function returns:"
-msgstr ""
-
-# b996e0d0950741438419d72fc2aaa1a6
-# ac02a2dca7d24bb296b418e5019b5d52
-#: ../../../src/common/doc/functions/analyze_graph.rst:30
-#: ../../../src/common/doc/functions/analyze_graph.rst:63
-msgid "``OK`` after the analysis has finished."
-msgstr ""
-
-# 6494556e5a0240b6b89d6cc13588a959
-# 226def8709104fefbde358ee19f0dbdc
-#: ../../../src/common/doc/functions/analyze_graph.rst:31
-#: ../../../src/common/doc/functions/analyze_graph.rst:69
-msgid "``FAIL`` when the analysis was not completed due to an error."
-msgstr ""
-
-# 258df98c829a48e794073f4f67e64d37
-#: ../../../src/common/doc/functions/analyze_graph.rst:40
-msgid "Description"
-msgstr "Description"
-
-# 2ea823d9ac6a4b309542c1efdf685188
-#: ../../../src/common/doc/functions/analyze_graph.rst:43
-msgid "Prerequisites"
-msgstr ""
-
-# b6f61bceeb764c09a0519ef218788641
-#: ../../../src/common/doc/functions/analyze_graph.rst:44
-msgid ""
-"The  edge table to be analyzed must contain a source column and a target "
-"column filled with id's of the vertices of the segments and the "
-"corresponding vertices table <edge_table>_vertices_pgr that stores the "
-"vertices information."
-msgstr ""
-
-# bc5a5fd73e194a1eb18560c62b8726c5
-#: ../../../src/common/doc/functions/analyze_graph.rst:46
-msgid ""
-"Use :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create the "
-"vertices table."
-msgstr ""
-
-# dddd02de549c450da54ecc30da50bcac
-#: ../../../src/common/doc/functions/analyze_graph.rst:47
-msgid ""
-"Use :ref:`pgr_createTopology <pgr_create_topology>` to create the topology "
-"and the vertices table."
-msgstr ""
-
-# 2f1a64c5c7df47c08b9460c1c2ca9a0d
-#: ../../../src/common/doc/functions/analyze_graph.rst:50
-msgid "Parameters"
-msgstr ""
-
-# f7ef120ecd234df3bc9de0b69122a094
-#: ../../../src/common/doc/functions/analyze_graph.rst:51
-msgid "The analyze graph function accepts the following parameters:"
-msgstr ""
-
-# 93b5fa9bcdd84ccbae6d4945adb6b9b5
-#: ../../../src/common/doc/functions/analyze_graph.rst:53
-msgid "``text`` Network table name. (may contain the schema name as well)"
-msgstr ""
-
-# 0c3bf879395649e1aac68ae62880746b
-#: ../../../src/common/doc/functions/analyze_graph.rst:54
-msgid ""
-"``float8`` Snapping tolerance of disconnected edges. (in projection unit)"
-msgstr ""
-
-# cd2deb23e3394ad298d9787e069561e2
-#: ../../../src/common/doc/functions/analyze_graph.rst:55
-msgid ""
-"``text``  Geometry column name of the network table. Default value is "
-"``the_geom``."
-msgstr ""
-
-# 31330d72cbb748289eafa0fcb996153d
-#: ../../../src/common/doc/functions/analyze_graph.rst:56
-msgid ""
-"``text``  Primary key column name of the network table. Default value is "
-"``id``."
-msgstr ""
-
-# b9e5db8199ce47ccb092272e93020d7c
-#: ../../../src/common/doc/functions/analyze_graph.rst:57
-msgid ""
-"``text`` Source column name of the network table. Default value is "
-"``source``."
-msgstr ""
-
-# 245c992a7082431684659ae5845aced6
-#: ../../../src/common/doc/functions/analyze_graph.rst:58
-msgid ""
-"``text``  Target column name of the network table.  Default value is "
-"``target``."
-msgstr ""
-
-# 8e81329133844e65b7eef1f84cb73965
-#: ../../../src/common/doc/functions/analyze_graph.rst:59
-msgid ""
-"``text``   Condition to select  a subset or rows.  Default value is ``true``"
-" to indicate all rows."
-msgstr ""
-
-# c99a684aa3994cc4b60c334882d9ed78
-#: ../../../src/common/doc/functions/analyze_graph.rst:65
-msgid "Uses the vertices table: <edge_table>_vertices_pgr."
-msgstr ""
-
-# e32eb0de40d0487fbb1062ec88c5bbe9
-#: ../../../src/common/doc/functions/analyze_graph.rst:66
-msgid "Fills completly the ``cnt`` and ``chk`` columns of the vertices table."
-msgstr ""
-
-# a4a0f627086946459e80cc8ac16b31b8
-#: ../../../src/common/doc/functions/analyze_graph.rst:67
-msgid ""
-"Returns the analysis of the section of the network defined by  "
-"``rows_where``"
-msgstr ""
-
-# f2d3df84fbb14b48a0dba64650326883
-#: ../../../src/common/doc/functions/analyze_graph.rst:71
-msgid "The vertices table is not found."
-msgstr ""
-
-# 1c3dd89f91d94a32b0fa96e3c8544649
-#: ../../../src/common/doc/functions/analyze_graph.rst:72
-msgid ""
-"A required column of the Network table is not found or is not of the "
-"appropriate type."
-msgstr ""
-
-# 0e7728a66df8403b80c0e73cc496d665
-#: ../../../src/common/doc/functions/analyze_graph.rst:73
-msgid "The condition is not well formed."
-msgstr ""
-
-# 8a41f89e1b6c4622925078236419ba59
-#: ../../../src/common/doc/functions/analyze_graph.rst:74
-msgid "The names of source , target or id are the same."
-msgstr ""
-
-# 9a0c49ad17e7442291584a6d38ad24f0
-#: ../../../src/common/doc/functions/analyze_graph.rst:75
-msgid "The SRID of the geometry could not be determined."
-msgstr ""
-
-# a28d4cfc2fb145bd8b620cd99ae007ef
-#: ../../../src/common/doc/functions/analyze_graph.rst:79
-msgid "The Vertices Table"
-msgstr ""
-
-# 6726eb03c9e14ce487a84ef6bdb3d061
-#: ../../../src/common/doc/functions/analyze_graph.rst:80
-msgid ""
-"The vertices table can be created with :ref:`pgr_createVerticesTable "
-"<pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>`"
-msgstr ""
-
-# f69881355abd43b08fd4b112a15c823a
-#: ../../../src/common/doc/functions/analyze_graph.rst:82
-msgid "The structure of the vertices table is:"
-msgstr ""
-
-# e9b846b6c67a40a5a56ce827cbde2335
-#: ../../../src/common/doc/functions/analyze_graph.rst:84
-msgid "``bigint`` Identifier of the vertex."
-msgstr ""
-
-# c76d33c8d1d243e78adb977c995c1ed9
-#: ../../../src/common/doc/functions/analyze_graph.rst:85
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex."
-msgstr ""
-
-# 2a14dd7a08114891908953fe3f87a075
-#: ../../../src/common/doc/functions/analyze_graph.rst:86
-msgid "``integer``  Indicator that the vertex might have a problem."
-msgstr ""
-
-# 9731ccd0742c4573b05224539f373580
-#: ../../../src/common/doc/functions/analyze_graph.rst:87
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"as incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-msgstr ""
-
-# bf31d82856954293ac270255b046d010
-#: ../../../src/common/doc/functions/analyze_graph.rst:88
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"as outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-msgstr ""
-
-# fa51c4280ee2409daf5cee9fbc858ef4
-#: ../../../src/common/doc/functions/analyze_graph.rst:89
-msgid "``geometry`` Point geometry of the vertex."
-msgstr ""
-
-# 3a2bb12205fe4cd6ad67ba6a8f37afe4
-#: ../../../src/common/doc/functions/analyze_graph.rst:92
-msgid "History"
-msgstr "Histoire"
-
-# 378f4d42f82e4d30a6ab016e5ecc621a
-#: ../../../src/common/doc/functions/analyze_graph.rst:93
-msgid "New in version 2.0.0"
-msgstr "Nouveau depuis la version 2.0.0"
-
-# f2b122f189224840ad820005cf04c3c1
-#: ../../../src/common/doc/functions/analyze_graph.rst:96
-msgid "Usage when the edge table's columns MATCH the default values:"
-msgstr ""
-
-# bbc188364d7a4ba9b73c901703f754a0
-#: ../../../src/common/doc/functions/analyze_graph.rst:99
-msgid "The simplest way to use pgr_analyzeGraph is:"
-msgstr ""
-
-# eef338680d2247e485489cda2088d085
-#: ../../../src/common/doc/functions/analyze_graph.rst:106
-msgid "When the arguments are given in the order described in the parameters:"
-msgstr ""
-
-# bd9ee1725f5f458e84d65ccbde7489d2
-#: ../../../src/common/doc/functions/analyze_graph.rst:111
-msgid "We get the same result as the simplest way to use the function."
-msgstr ""
-
-# e6bd1bc511a6475aaa6fcce1db0cc9fd
-# 667d346fce1340c89b86814855215f31
-#: ../../../src/common/doc/functions/analyze_graph.rst:118
-#: ../../../src/common/doc/functions/analyze_graph.rst:184
-msgid "When using the named notation"
-msgstr ""
-
-# a6f10ab57f0645b6b0307bcb5d6c7ef3
-# eae5acaa57ff4a459953c203612092fa
-#: ../../../src/common/doc/functions/analyze_graph.rst:119
-#: ../../../src/common/doc/functions/analyze_graph.rst:185
-msgid "The order of the parameters do not matter:"
-msgstr ""
-
-# 0b36ba3cb2c24c17b8740a45f3430b69
-#: ../../../src/common/doc/functions/analyze_graph.rst:129
-msgid ""
-"Parameters defined with a default value can be ommited, as long as the value"
-" matches the default:"
-msgstr ""
-
-# 5130840677694ba3a4c08ae3b787e4d5
-# 309f2f767a9c4f419bb1a4ad1c1bfacf
-#: ../../../src/common/doc/functions/analyze_graph.rst:136
-#: ../../../src/common/doc/functions/analyze_graph.rst:199
-msgid "Selecting rows using rows_where parameter"
-msgstr ""
-
-# e7093f0dacbf44af908a1259b2b8f45d
-#: ../../../src/common/doc/functions/analyze_graph.rst:137
-msgid ""
-"Selecting rows based on the id. Displays the analysis a the section of the "
-"network."
-msgstr ""
-
-# 2867ea63b6b14572adb1130a9d04e28a
-#: ../../../src/common/doc/functions/analyze_graph.rst:143
-msgid ""
-"Selecting the rows where the geometry is near the geometry of row with "
-"``id`` =5 ."
-msgstr ""
-
-# 3cf323ab63204d99ac7ca31677b9e667
-#: ../../../src/common/doc/functions/analyze_graph.rst:149
-msgid ""
-"Selecting the rows where the geometry is near the geometry of the row with "
-"``gid`` =100 of the table ``othertable``."
-msgstr ""
-
-# baf5ffc28192473483bc4a1a4a0315f3
-#: ../../../src/common/doc/functions/analyze_graph.rst:160
-msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
-msgstr ""
-
-# 57cb32f6495d4cb0b5f36be03adc7efa
-#: ../../../src/common/doc/functions/analyze_graph.rst:162
-msgid "For the following table"
-msgstr ""
-
-# 12fcad9f3b484280baa8b29867859861
-#: ../../../src/common/doc/functions/analyze_graph.rst:171
-msgid "Using positional notation:"
-msgstr ""
-
-# 07a02c55d3eb4f9eb1dfed2833efcbe8
-#: ../../../src/common/doc/functions/analyze_graph.rst:172
-msgid ""
-"The arguments need to be given in the order described in the parameters:"
-msgstr ""
-
-# 5dc716a92a81438c888764e8cb2b5b79
-#: ../../../src/common/doc/functions/analyze_graph.rst:195
-msgid ""
-"In this scenario omitting a parameter would create an error because the "
-"default values for the column names do not match the column names of the "
-"table."
-msgstr ""
-
-# 057829092b8a4504a3115036a73a489f
-#: ../../../src/common/doc/functions/analyze_graph.rst:200
-msgid "Selecting rows based on the id."
-msgstr ""
-
-# 5c1437170b9149c5bc4174edc58ee875
-#: ../../../src/common/doc/functions/analyze_graph.rst:210
-msgid ""
-"Selecting the rows WHERE the geometry is near the geometry of row with "
-"``id`` =5 ."
-msgstr ""
-
-# 3d622065f50846578692f7a1b2a136d9
-#: ../../../src/common/doc/functions/analyze_graph.rst:222
-msgid ""
-"Selecting the rows WHERE the geometry is near the place='myhouse' of the "
-"table ``othertable``. (note the use of quote_literal)"
-msgstr ""
-
-# 2cffbd13f5f54de1abd9c025df6a762a
-#: ../../../src/common/doc/functions/analyze_graph.rst:239
-msgid "Examples"
-msgstr "Exemples"
-
-# eeedfddf23864b98a801913ef15f7cd9
-#: ../../../src/common/doc/functions/analyze_graph.rst:366
-msgid "The examples use the :ref:`sampledata` network."
-msgstr ""
-
-# d6f7c52a1a824867943d8adae7b2e245
-#: ../../../src/common/doc/functions/analyze_graph.rst:370
-msgid "See Also"
-msgstr "Voir aussi"
-
-# ba0f07ab7dca4083a5aef16d566cf506
-#: ../../../src/common/doc/functions/analyze_graph.rst:372
-msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
-msgstr ""
-
-# 90d9202a2da94489b4b43a71caa66956
-#: ../../../src/common/doc/functions/analyze_graph.rst:373
-msgid ":ref:`pgr_analyze_oneway` to analyze directionality of the edges."
-msgstr ""
-
-# 73d10e9d35dd4a269249fbc09274000b
-#: ../../../src/common/doc/functions/analyze_graph.rst:374
-msgid ""
-":ref:`pgr_createVerticesTable <pgr_create_vert_table>` to reconstruct the "
-"vertices table based on the source and target information."
-msgstr ""
-
-# 2f459b0453c141239d9564e2467fbdd5
-#: ../../../src/common/doc/functions/analyze_graph.rst:375
-msgid ""
-":ref:`pgr_nodeNetwork <pgr_node_network>` to create nodes to a not noded "
-"edge table."
-msgstr ""
diff --git a/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/analyze_oneway.po b/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/analyze_oneway.po
deleted file mode 100644
index c9cac47..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/analyze_oneway.po
+++ /dev/null
@@ -1,336 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:14+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# f8ca74e3c9a54cd0b0e6cd3bcec8de7e
-#: ../../../src/common/doc/functions/analyze_oneway.rst:13
-msgid "pgr_analyzeOneway"
-msgstr ""
-
-# ee3b92d1a5184a92b6fa72a69ab2f1c9
-#: ../../../src/common/doc/functions/analyze_oneway.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# fd816817954b4f3d8d25927cebce353b
-#: ../../../src/common/doc/functions/analyze_oneway.rst:22
-msgid ""
-"``pgr_analyzeOneway`` — Analyzes oneway Sstreets and identifies flipped "
-"segments."
-msgstr "``pgr_analyzeOneway`` — Analyser les routes à sens unique et identifier les segments marginaux."
-
-# 4c9dfc86ed0042de97bf0107b0b2eccd
-#: ../../../src/common/doc/functions/analyze_oneway.rst:26
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# d31a1ab567db4873a46256e8ecbdedf4
-#: ../../../src/common/doc/functions/analyze_oneway.rst:28
-msgid ""
-"This function analyzes oneway streets in a graph and identifies any flipped "
-"segments."
-msgstr "Cette fonction analyse les routes à sens unique dans un graphe et identifie tout segment marginaux."
-
-# 74bdfef086ae480bbe2affdece2c9efa
-#: ../../../src/common/doc/functions/analyze_oneway.rst:40
-msgid "Description"
-msgstr "Description"
-
-# 04f93117821f4eae962594c71a06a5a8
-#: ../../../src/common/doc/functions/analyze_oneway.rst:42
-msgid ""
-"The analyses of one way segments is pretty simple but can be a powerful "
-"tools to identifying some the potential problems created by setting the "
-"direction of a segment the wrong way. A node is a `source` if it has edges "
-"the exit from that node and no edges enter that node. Conversely, a node is "
-"a `sink` if all edges enter the node but none exit that node. For a `source`"
-" type node it is logically impossible to exist because no vehicle can exit "
-"the node if no vehicle and enter the node. Likewise, if you had a `sink` "
-"node you would have an infinite number of vehicle piling up on this node "
-"because you can enter it but not leave it."
-msgstr ""
-
-# 035956781a774bc3bb1214394ad77be8
-#: ../../../src/common/doc/functions/analyze_oneway.rst:44
-msgid ""
-"So why do we care if the are not feasible? Well if the direction of an edge "
-"was reversed by mistake we could generate exactly these conditions. Think "
-"about a divided highway and on the north bound lane one segment got entered "
-"wrong or maybe a sequence of multiple segments got entered wrong or maybe "
-"this happened on a round-about. The result would be potentially a `source` "
-"and/or a `sink` node."
-msgstr ""
-
-# 007bbd995cbf4e7c86ce8e9916675879
-#: ../../../src/common/doc/functions/analyze_oneway.rst:46
-msgid ""
-"So by counting the number of edges entering and exiting each node we can "
-"identify both `source` and `sink` nodes so that you can look at those areas "
-"of your network to make repairs and/or report the problem back to your data "
-"vendor."
-msgstr ""
-
-# f972114db5c841928b7f2ac705bb0687
-#: ../../../src/common/doc/functions/analyze_oneway.rst:49
-msgid "Prerequisites"
-msgstr ""
-
-# 54a0c52cee394d389a81fcd50b24ad97
-#: ../../../src/common/doc/functions/analyze_oneway.rst:50
-msgid ""
-"The  edge table to be analyzed must contain a source column and a target "
-"column filled with id's of the vertices of the segments and the "
-"corresponding vertices table <edge_table>_vertices_pgr that stores the "
-"vertices information."
-msgstr ""
-
-# 808b5b795d364182b543ab30a1ad1644
-#: ../../../src/common/doc/functions/analyze_oneway.rst:52
-msgid ""
-"Use :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create the "
-"vertices table."
-msgstr ""
-
-# f6248fc57e734ead94edd12cab567915
-#: ../../../src/common/doc/functions/analyze_oneway.rst:53
-msgid ""
-"Use :ref:`pgr_createTopology <pgr_create_topology>` to create the topology "
-"and the vertices table."
-msgstr ""
-
-# 4cacac934ba64cda907561e98847bf8b
-#: ../../../src/common/doc/functions/analyze_oneway.rst:56
-msgid "Parameters"
-msgstr ""
-
-# 669f0d5432dd4c0c8da55dba8c3502e7
-#: ../../../src/common/doc/functions/analyze_oneway.rst:57
-msgid "``text`` Network table name. (may contain the schema name as well)"
-msgstr ""
-
-# a16edb2699f1486c91c10ac7533fef7c
-#: ../../../src/common/doc/functions/analyze_oneway.rst:58
-msgid "``text[]`` source node **in** rules"
-msgstr "Noeud source ``text[]`` **dans** rules"
-
-# 28b4c2457d3b4aaba43dc42af4d2bd5e
-#: ../../../src/common/doc/functions/analyze_oneway.rst:59
-msgid "``text[]`` source node **out** rules"
-msgstr "Noeud source ``text[]`` **hors de** rules"
-
-# 5180ad82f6e6434a99defa1823c0a2d8
-#: ../../../src/common/doc/functions/analyze_oneway.rst:60
-msgid "``text[]`` target node **in** rules"
-msgstr "Noeud cible ``text[]`` **dans** rules"
-
-# 4866b796c7fb49d985a479c3a97eec38
-#: ../../../src/common/doc/functions/analyze_oneway.rst:61
-msgid "``text[]`` target node **out** rules"
-msgstr "Noeud cible ``text[]`` **hors de** rules"
-
-# 2744331fb9ac447ba0c40a6035ac0a95
-#: ../../../src/common/doc/functions/analyze_oneway.rst:62
-msgid ""
-"``text`` oneway column name name of the network table. Default value is "
-"``oneway``."
-msgstr ""
-
-# b116cd1fc10f4f5bbd8fe9800562b62f
-#: ../../../src/common/doc/functions/analyze_oneway.rst:63
-msgid ""
-"``text`` Source column name of the network table. Default value is "
-"``source``."
-msgstr ""
-
-# 8ca5a93ed45443c09202b1e5779dfa76
-#: ../../../src/common/doc/functions/analyze_oneway.rst:64
-msgid ""
-"``text``  Target column name of the network table.  Default value is "
-"``target``."
-msgstr ""
-
-# e41f4c872a3445dbbc0bd183a71971fa
-#: ../../../src/common/doc/functions/analyze_oneway.rst:65
-msgid ""
-"``boolean`` flag to treat oneway NULL values as bi-directional.  Default "
-"value is ``true``."
-msgstr ""
-
-# 9cd0459ca40940448e6c0d9c07c4a157
-#: ../../../src/common/doc/functions/analyze_oneway.rst:67
-msgid ""
-"It is strongly recommended to use the named notation. See "
-":ref:`pgr_createVerticesTable <pgr_create_vert_table>` or "
-":ref:`pgr_createTopology <pgr_create_topology>` for examples."
-msgstr ""
-
-# e217ab2060e447e9a7a3745f4d84390d
-#: ../../../src/common/doc/functions/analyze_oneway.rst:70
-msgid "The function returns:"
-msgstr ""
-
-# 95dedd1c39c9424a906e6f2ff882e84a
-#: ../../../src/common/doc/functions/analyze_oneway.rst:72
-msgid "``OK`` after the analysis has finished."
-msgstr ""
-
-# 573d5fab7bb247d5adc39d8460683357
-#: ../../../src/common/doc/functions/analyze_oneway.rst:74
-msgid "Uses the vertices table: <edge_table>_vertices_pgr."
-msgstr ""
-
-# 86597d037fe242378cc71e6e2ec88b19
-#: ../../../src/common/doc/functions/analyze_oneway.rst:75
-msgid ""
-"Fills completely the ``ein`` and ``eout`` columns of the vertices table."
-msgstr ""
-
-# dcae6d2cceea4b6bb47a700cc4338340
-#: ../../../src/common/doc/functions/analyze_oneway.rst:77
-msgid "``FAIL`` when the analysis was not completed due to an error."
-msgstr ""
-
-# 792572ffb7314163be7e4aabadd4429c
-#: ../../../src/common/doc/functions/analyze_oneway.rst:79
-msgid "The vertices table is not found."
-msgstr ""
-
-# affbb7122dd844f3b5c7962c97dec0d3
-#: ../../../src/common/doc/functions/analyze_oneway.rst:80
-msgid ""
-"A required column of the Network table is not found or is not of the "
-"appropriate type."
-msgstr ""
-
-# e50d016ee05048779dea2db4006500be
-#: ../../../src/common/doc/functions/analyze_oneway.rst:81
-msgid "The names of source , target or oneway are the same."
-msgstr ""
-
-# f14e2456527945e0a80e7888bb6dde7f
-#: ../../../src/common/doc/functions/analyze_oneway.rst:83
-msgid ""
-"The rules are defined as an array of text strings that if match the "
-"``oneway`` value would be counted as ``true`` for the source or target "
-"**in** or **out** condition."
-msgstr ""
-
-# 02623674186e4e0c961078942584c0ec
-#: ../../../src/common/doc/functions/analyze_oneway.rst:86
-msgid "The Vertices Table"
-msgstr ""
-
-# dd7fb8252bfe456aaa65515346941e74
-#: ../../../src/common/doc/functions/analyze_oneway.rst:87
-msgid ""
-"The vertices table can be created with :ref:`pgr_createVerticesTable "
-"<pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>`"
-msgstr ""
-
-# f838bf466e424966bd61af7b901279d2
-#: ../../../src/common/doc/functions/analyze_oneway.rst:89
-msgid "The structure of the vertices table is:"
-msgstr ""
-
-# 722239d3877b48d8bc5e63052fc7424f
-#: ../../../src/common/doc/functions/analyze_oneway.rst:91
-msgid "``bigint`` Identifier of the vertex."
-msgstr ""
-
-# 0d3b269abc8e45a1abf355e4bb7d51c0
-#: ../../../src/common/doc/functions/analyze_oneway.rst:92
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex."
-" See :ref:`pgr_analyzeGgraph <pgr_analyze_graph>`."
-msgstr ""
-
-# 50b3729c83964ef3ae1a1511c76b50f8
-#: ../../../src/common/doc/functions/analyze_oneway.rst:93
-msgid ""
-"``integer``  Indicator that the vertex might have a problem. See "
-":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
-msgstr ""
-
-# a5b1fe0206ea4c428c94f43a141b527b
-#: ../../../src/common/doc/functions/analyze_oneway.rst:94
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"as incoming."
-msgstr ""
-
-# 7c678b91ca8a408aafda94e5fa217fae
-#: ../../../src/common/doc/functions/analyze_oneway.rst:95
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"as outgoing."
-msgstr ""
-
-# 6d672d0be9cf41d69db69e46109d1624
-#: ../../../src/common/doc/functions/analyze_oneway.rst:96
-msgid "``geometry`` Point geometry of the vertex."
-msgstr ""
-
-# b7cf2a5bba544714b9b79373c889e6cc
-#: ../../../src/common/doc/functions/analyze_oneway.rst:100
-msgid "History"
-msgstr "Histoire"
-
-# ee9866aeb2c94c7fb0aa1e6cda48e6cb
-#: ../../../src/common/doc/functions/analyze_oneway.rst:101
-msgid "New in version 2.0.0"
-msgstr "Nouveau depuis la version 2.0.0"
-
-# 3eed638ba1dd400186848b0928d632cf
-#: ../../../src/common/doc/functions/analyze_oneway.rst:105
-msgid "Examples"
-msgstr "Exemples"
-
-# fb1f0f5537c0427a866814b367160245
-#: ../../../src/common/doc/functions/analyze_oneway.rst:129
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "Les requêtes utilisent le réseau :ref:`sampledata`."
-
-# 34726fcf405940b780880e71c6a2dad3
-#: ../../../src/common/doc/functions/analyze_oneway.rst:133
-msgid "See Also"
-msgstr "Voir aussi"
-
-# 384816237f7b49d5911a48675467810d
-#: ../../../src/common/doc/functions/analyze_oneway.rst:135
-msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
-msgstr ""
-
-# f8a2c637ce834c5ab9fea42ec365f0d1
-#: ../../../src/common/doc/functions/analyze_oneway.rst:136
-msgid ":ref:`analytics` for an overview of the analysis of a graph."
-msgstr ""
-
-# 1688102891bc4abaaed229738ca05755
-#: ../../../src/common/doc/functions/analyze_oneway.rst:137
-msgid ""
-":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
-"table."
-msgstr ""
-
-# 5914f34793e24715acb0adbe7d9fe1e0
-#: ../../../src/common/doc/functions/analyze_oneway.rst:138
-msgid ""
-":ref:`pgr_create_vert_table` to reconstruct the vertices table based on the "
-"source and target information."
-msgstr ""
diff --git a/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/create_topology.po b/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/create_topology.po
deleted file mode 100644
index d2ad51d..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/create_topology.po
+++ /dev/null
@@ -1,415 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# Daniel Kastl, 2013
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:28+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 841ce4ae2ccd42aeb6708e0469affc85
-#: ../../../src/common/doc/functions/create_topology.rst:13
-msgid "pgr_createTopology"
-msgstr ""
-
-# bceb18f1c7484f2495890a181eb43749
-#: ../../../src/common/doc/functions/create_topology.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# efddc8da13ee412aa1fb75bf84ad023b
-#: ../../../src/common/doc/functions/create_topology.rst:22
-msgid ""
-"``pgr_createTopology`` — Builds a network topology based on the geometry "
-"information."
-msgstr ""
-
-# c01e1abb389b4e0096e2971378967ac9
-#: ../../../src/common/doc/functions/create_topology.rst:26
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# 0dcc6bb9100b4d89afa5b1404283d0c9
-# 2f90d445d42f4c839d6d2b2e4bdd588b
-#: ../../../src/common/doc/functions/create_topology.rst:28
-#: ../../../src/common/doc/functions/create_topology.rst:69
-msgid "The function returns:"
-msgstr ""
-
-# 88833f75e6d741b5bc91526488d66e4e
-#: ../../../src/common/doc/functions/create_topology.rst:30
-msgid ""
-"``OK`` after the network topology has been built and the vertices table "
-"created."
-msgstr ""
-
-# da6aad799955428fb1bef9ff2dbd70b5
-#: ../../../src/common/doc/functions/create_topology.rst:31
-msgid "``FAIL`` when the network topology was not built due to an error."
-msgstr ""
-
-# c4d463cfb61840f689831eeafe2844dc
-#: ../../../src/common/doc/functions/create_topology.rst:42
-msgid "Description"
-msgstr "Description"
-
-# fba8585de1c94f0ba612f64f8cd4f39d
-#: ../../../src/common/doc/functions/create_topology.rst:45
-msgid "Parameters"
-msgstr ""
-
-# 33e33f7ee98e4b9a9d333f8ab95cbc9b
-#: ../../../src/common/doc/functions/create_topology.rst:46
-msgid "The topology creation function accepts the following parameters:"
-msgstr "La fonction de création de topologie accepte les paramètres suivants :"
-
-# d19b1856e3d440749487a15a83c9d44c
-#: ../../../src/common/doc/functions/create_topology.rst:48
-msgid "``text`` Network table name. (may contain the schema name AS well)"
-msgstr ""
-
-# 6afd7b88cbaf4a58b2dcbd161b278356
-#: ../../../src/common/doc/functions/create_topology.rst:49
-msgid ""
-"``float8`` Snapping tolerance of disconnected edges. (in projection unit)"
-msgstr ""
-
-# 905510b263854f1eb05f10c8a64d9d20
-#: ../../../src/common/doc/functions/create_topology.rst:50
-msgid ""
-"``text``  Geometry column name of the network table. Default value is "
-"``the_geom``."
-msgstr ""
-
-# f9b621bcf0ab41c3b87693c812f3d710
-#: ../../../src/common/doc/functions/create_topology.rst:51
-msgid ""
-"``text``  Primary key column name of the network table. Default value is "
-"``id``."
-msgstr ""
-
-# 6bcaf9c3c7e1422ea8e1b4dc45e7c613
-#: ../../../src/common/doc/functions/create_topology.rst:52
-msgid ""
-"``text`` Source column name of the network table. Default value is "
-"``source``."
-msgstr ""
-
-# e2b13126a14a4ebeb8c3f453235560a1
-#: ../../../src/common/doc/functions/create_topology.rst:53
-msgid ""
-"``text``  Target column name of the network table.  Default value is "
-"``target``."
-msgstr ""
-
-# adbfdd92db3740e5b4e8a6259a0a064c
-#: ../../../src/common/doc/functions/create_topology.rst:54
-msgid ""
-"``text``   Condition to SELECT a subset or rows.  Default value is ``true`` "
-"to indicate all rows."
-msgstr ""
-
-# 65297b06273d46cc98c9a3be75886137
-#: ../../../src/common/doc/functions/create_topology.rst:58
-msgid "The ``edge_table`` will be affected"
-msgstr ""
-
-# 7f45565b3b8d40408b2da1bee3d1c354
-#: ../../../src/common/doc/functions/create_topology.rst:60
-msgid "The ``source`` column values will change."
-msgstr ""
-
-# e05fe9ce627848aa8aa72f032d303f04
-#: ../../../src/common/doc/functions/create_topology.rst:61
-msgid "The ``target`` column values will change."
-msgstr ""
-
-# 72c3682247aa4841a49790a78db8c3c3
-#: ../../../src/common/doc/functions/create_topology.rst:62
-msgid ""
-"An index will be created, if it doesn't exists, to speed up the process to "
-"the following columns:"
-msgstr ""
-
-# 993784afa3ce4ca68f11e8e02f2b4b27
-#: ../../../src/common/doc/functions/create_topology.rst:64
-msgid "``id``"
-msgstr "``id``"
-
-# 3074ee818e8241bc93c5a3284d7c3af4
-#: ../../../src/common/doc/functions/create_topology.rst:65
-msgid "``the_geom``"
-msgstr "``the_geom``"
-
-# e40fef18592542b98d234ac6a8038def
-#: ../../../src/common/doc/functions/create_topology.rst:66
-msgid "``source``"
-msgstr "``source``"
-
-# 0360a33adc734d1eaf83f5e1e314cc73
-#: ../../../src/common/doc/functions/create_topology.rst:67
-msgid "``target``"
-msgstr "``target``"
-
-# a2aae07be90348b0b2190f647731fb26
-#: ../../../src/common/doc/functions/create_topology.rst:71
-msgid "``OK`` after the network topology has been built."
-msgstr ""
-
-# 33a4fd15e75a41a68105d2ea67b4aab1
-#: ../../../src/common/doc/functions/create_topology.rst:73
-msgid "Creates a vertices table: <edge_table>_vertices_pgr."
-msgstr ""
-
-# 589a7e90c6404cbe902baec0a884189b
-#: ../../../src/common/doc/functions/create_topology.rst:74
-msgid "Fills ``id`` and ``the_geom`` columns of the vertices table."
-msgstr ""
-
-# 92e7ab03c5ce43ed8c705a26aa4b801c
-#: ../../../src/common/doc/functions/create_topology.rst:75
-msgid ""
-"Fills the source and target columns of the edge table referencing the ``id``"
-" of the vertices table."
-msgstr ""
-
-# 0635e9d515184ccc80747864939f789c
-#: ../../../src/common/doc/functions/create_topology.rst:78
-msgid "``FAIL`` when the network topology was not built due to an error:"
-msgstr ""
-
-# 607fcb6f6ae3438789ecf9c95992bc3f
-#: ../../../src/common/doc/functions/create_topology.rst:80
-msgid ""
-"A required column of the Network table is not found or is not of the "
-"appropriate type."
-msgstr ""
-
-# 2bad2b565914457a90a990e718e857fd
-#: ../../../src/common/doc/functions/create_topology.rst:81
-msgid "The condition is not well formed."
-msgstr ""
-
-# c800f5e3462c44c1b786308aec4cfea4
-#: ../../../src/common/doc/functions/create_topology.rst:82
-msgid "The names of source , target or id are the same."
-msgstr ""
-
-# 51c96f82e8ea49bcbde8aaeb905a6c6c
-#: ../../../src/common/doc/functions/create_topology.rst:83
-msgid "The SRID of the geometry could not be determined."
-msgstr ""
-
-# f5f0d0a1c3814e1d9c14e4de52bd9899
-#: ../../../src/common/doc/functions/create_topology.rst:87
-msgid "The Vertices Table"
-msgstr ""
-
-# 54ef7e60b4d445cfa453323fbe80032d
-#: ../../../src/common/doc/functions/create_topology.rst:88
-msgid ""
-"The vertices table is a requirment of the :ref:`pgr_analyzeGraph "
-"<pgr_analyze_graph>` and the :ref:`pgr_analyzeOneway <pgr_analyze_oneway>` "
-"functions."
-msgstr ""
-
-# faaffddd86fd4680a80925c8c3877f07
-#: ../../../src/common/doc/functions/create_topology.rst:90
-msgid "The structure of the vertices table is:"
-msgstr ""
-
-# fc31880c8b034aae99d6d4caec420302
-#: ../../../src/common/doc/functions/create_topology.rst:92
-msgid "``bigint`` Identifier of the vertex."
-msgstr ""
-
-# 7684f52a607845ef802799c26c221bf3
-#: ../../../src/common/doc/functions/create_topology.rst:93
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex."
-" See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
-msgstr ""
-
-# 1dc63c1d7cbb417d916ed0561df67df9
-#: ../../../src/common/doc/functions/create_topology.rst:94
-msgid ""
-"``integer``  Indicator that the vertex might have a problem. See "
-":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
-msgstr ""
-
-# 546f74ccc20545de9c032cabcaac878f
-#: ../../../src/common/doc/functions/create_topology.rst:95
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"AS incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-msgstr ""
-
-# 9fe606ee590d4f009989e3cdcf09b5c5
-#: ../../../src/common/doc/functions/create_topology.rst:96
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"AS outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-msgstr ""
-
-# 2ee4f32c8546412bad1e109e6051e249
-#: ../../../src/common/doc/functions/create_topology.rst:97
-msgid "``geometry`` Point geometry of the vertex."
-msgstr ""
-
-# a63156aa23b54785aaf66150bfe98a52
-#: ../../../src/common/doc/functions/create_topology.rst:100
-msgid "History"
-msgstr "Histoire"
-
-# da8726d6435e42f09d83f4a310d5c432
-#: ../../../src/common/doc/functions/create_topology.rst:101
-msgid "Renamed in version 2.0.0"
-msgstr "Renommé depuis la version 2.0.0"
-
-# 5b4b6a4bea1543ac98f444d9ec32d7eb
-#: ../../../src/common/doc/functions/create_topology.rst:104
-msgid "Usage when the edge table's columns MATCH the default values:"
-msgstr ""
-
-# 6db23da4afd448bab89802246bccb65a
-#: ../../../src/common/doc/functions/create_topology.rst:107
-msgid "The simplest way to use pgr_createtopology is:"
-msgstr ""
-
-# 6905f56f53bb4cdfb9ae49021265afe9
-#: ../../../src/common/doc/functions/create_topology.rst:115
-msgid "When the arguments are given in the order described in the parameters:"
-msgstr ""
-
-# f8c6c68c7d334f68bac36a818c4091ab
-#: ../../../src/common/doc/functions/create_topology.rst:120
-msgid "We get the same result AS the simplest way to use the function."
-msgstr ""
-
-# 8dcbdbf60c2e4522a87d80a7796a354b
-# b72940f0e2054c46a50358fc40af026e
-#: ../../../src/common/doc/functions/create_topology.rst:127
-#: ../../../src/common/doc/functions/create_topology.rst:192
-msgid "When using the named notation"
-msgstr ""
-
-# 460cbff5c7054542a80375a4f50072e0
-# 56d9daba24ff4ce9ac02e3326af007af
-#: ../../../src/common/doc/functions/create_topology.rst:128
-#: ../../../src/common/doc/functions/create_topology.rst:193
-msgid "The order of the parameters do not matter:"
-msgstr ""
-
-# 4b24ad3db4be4b60a6c8bfcc38fae359
-#: ../../../src/common/doc/functions/create_topology.rst:138
-msgid ""
-"Parameters defined with a default value can be omited, AS long AS the value "
-"matches the default:"
-msgstr ""
-
-# 8aab982078634384ab4dfced463b5c14
-# d9c7d4fa12394a5a915a9f6f664e7a8a
-#: ../../../src/common/doc/functions/create_topology.rst:145
-#: ../../../src/common/doc/functions/create_topology.rst:207
-msgid "Selecting rows using rows_where parameter"
-msgstr ""
-
-# 4be49c2f23734283895a40625620047b
-# 1734ac1429ad4691861fbfcc7954d800
-#: ../../../src/common/doc/functions/create_topology.rst:146
-#: ../../../src/common/doc/functions/create_topology.rst:208
-msgid "Selecting rows based on the id."
-msgstr ""
-
-# 499347aef3cb49f993c320d1fd353a29
-# a0cd57644bf443fbaa81efed8df8a30f
-#: ../../../src/common/doc/functions/create_topology.rst:152
-#: ../../../src/common/doc/functions/create_topology.rst:218
-msgid ""
-"Selecting the rows where the geometry is near the geometry of row with "
-"``id`` =5 ."
-msgstr ""
-
-# b8e12b4f62d24fb0a535290a0a480ff0
-# 42da9f122c7240bea10a78685a6b5b8d
-#: ../../../src/common/doc/functions/create_topology.rst:158
-#: ../../../src/common/doc/functions/create_topology.rst:230
-msgid ""
-"Selecting the rows where the geometry is near the geometry of the row with "
-"``gid`` =100 of the table ``othertable``."
-msgstr ""
-
-# 596d74ac25d34cbda9a05349a4a0af21
-#: ../../../src/common/doc/functions/create_topology.rst:169
-msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
-msgstr ""
-
-# ac1bf6e79288443486b7b105e25e07eb
-#: ../../../src/common/doc/functions/create_topology.rst:171
-msgid "For the following table"
-msgstr ""
-
-# a24fc2426b5c4b91bc53f875e37dddaa
-#: ../../../src/common/doc/functions/create_topology.rst:179
-msgid "Using positional notation:"
-msgstr ""
-
-# d1937a888b40477b8d696215b7b93425
-#: ../../../src/common/doc/functions/create_topology.rst:180
-msgid ""
-"The arguments need to be given in the order described in the parameters:"
-msgstr ""
-
-# 7e510379477f445a9432549c095c12bb
-#: ../../../src/common/doc/functions/create_topology.rst:203
-msgid ""
-"In this scenario omitting a parameter would create an error because the "
-"default values for the column names do not match the column names of the "
-"table."
-msgstr ""
-
-# de088e18a1634e6a96b99df9171c530a
-#: ../../../src/common/doc/functions/create_topology.rst:247
-msgid "Examples"
-msgstr "Exemples"
-
-# 89b592f2e7f6474cbed2d9d5bca887e9
-#: ../../../src/common/doc/functions/create_topology.rst:279
-msgid "The example uses the :ref:`sampledata` network."
-msgstr ""
-
-# ae52cd8922264c939460bd2df2108508
-#: ../../../src/common/doc/functions/create_topology.rst:283
-msgid "See Also"
-msgstr "Voir aussi"
-
-# 664429e917764979b9255e4f9a72377f
-#: ../../../src/common/doc/functions/create_topology.rst:285
-msgid ":ref:`topology` for an overview of a topology for routing algorithms."
-msgstr ""
-
-# 9ded0191d7344e8baca758e97f34cf68
-#: ../../../src/common/doc/functions/create_topology.rst:286
-msgid ""
-":ref:`pgr_create_vert_table` to reconstruct the vertices table based on the "
-"source and target information."
-msgstr ""
-
-# ca4432eb1b4246268b1acee87b464b2f
-#: ../../../src/common/doc/functions/create_topology.rst:287
-msgid ""
-":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
-"table."
-msgstr ""
diff --git a/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/create_vert_table.po b/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/create_vert_table.po
deleted file mode 100644
index 1849b5c..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/create_vert_table.po
+++ /dev/null
@@ -1,388 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 05:50+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 1a8504651dd840e4a48344ead373a073
-#: ../../../src/common/doc/functions/create_vert_table.rst:13
-msgid "pgr_createVerticesTable"
-msgstr ""
-
-# ad976846c3444135a397d1f47a0ffceb
-#: ../../../src/common/doc/functions/create_vert_table.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# c26ff674db0d4b65bff9b1483e524956
-#: ../../../src/common/doc/functions/create_vert_table.rst:22
-msgid ""
-"``pgr_createVerticesTable`` — Reconstructs the vertices table based on the "
-"source and target information."
-msgstr ""
-
-# b27c4239c9034d8fb5bbfc4b736af367
-#: ../../../src/common/doc/functions/create_vert_table.rst:26
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# bbfea2a13422443f8e1b9b863f56dea0
-# 139eabd1665d4dc8b6caac92f0764d50
-#: ../../../src/common/doc/functions/create_vert_table.rst:28
-#: ../../../src/common/doc/functions/create_vert_table.rst:63
-msgid "The function returns:"
-msgstr ""
-
-# bdf469a3c50c4176bcc89409cbe50136
-# 268e8b4480b24112a72e1d7da0dab1bd
-#: ../../../src/common/doc/functions/create_vert_table.rst:30
-#: ../../../src/common/doc/functions/create_vert_table.rst:65
-msgid "``OK`` after the vertices table has been reconstructed."
-msgstr ""
-
-# f542765a7c984a57b56f203df843634d
-# a536d714aa4240dca5d92dfeee6dd7bb
-#: ../../../src/common/doc/functions/create_vert_table.rst:31
-#: ../../../src/common/doc/functions/create_vert_table.rst:70
-msgid ""
-"``FAIL`` when the vertices table was not reconstructed due to an error."
-msgstr ""
-
-# c7c8bc00b10d45a897224d240c4f96bf
-#: ../../../src/common/doc/functions/create_vert_table.rst:41
-msgid "Description"
-msgstr "Description"
-
-# c53a2ef242f8484dac84581a80134594
-#: ../../../src/common/doc/functions/create_vert_table.rst:44
-msgid "Parameters"
-msgstr ""
-
-# 2dc2c3867d7a4367a958a6e1049f44c0
-#: ../../../src/common/doc/functions/create_vert_table.rst:45
-msgid ""
-"The reconstruction of the vertices table  function accepts the following "
-"parameters:"
-msgstr ""
-
-# e92b11f0f4ea47af9581936d11972ef6
-#: ../../../src/common/doc/functions/create_vert_table.rst:47
-msgid "``text`` Network table name. (may contain the schema name as well)"
-msgstr ""
-
-# 75d43bdeeb7843139aec9b4c7dc60097
-#: ../../../src/common/doc/functions/create_vert_table.rst:48
-msgid ""
-"``text``  Geometry column name of the network table. Default value is "
-"``the_geom``."
-msgstr ""
-
-# f0e2bb638cd841f2b61bc8398e3ea59b
-#: ../../../src/common/doc/functions/create_vert_table.rst:49
-msgid ""
-"``text`` Source column name of the network table. Default value is "
-"``source``."
-msgstr ""
-
-# ba67bced62994e7b98967cf09cbf3ca6
-#: ../../../src/common/doc/functions/create_vert_table.rst:50
-msgid ""
-"``text``  Target column name of the network table.  Default value is "
-"``target``."
-msgstr ""
-
-# d7d53a50bc9249518132241a2c83dc1b
-#: ../../../src/common/doc/functions/create_vert_table.rst:51
-msgid ""
-"``text``   Condition to SELECT a subset or rows.  Default value is ``true`` "
-"to indicate all rows."
-msgstr ""
-
-# a87c8e9949df409da09632babbb99748
-#: ../../../src/common/doc/functions/create_vert_table.rst:55
-msgid "The ``edge_table`` will be affected"
-msgstr ""
-
-# a0b202c14bf849e1a9506fc9c4010540
-#: ../../../src/common/doc/functions/create_vert_table.rst:57
-msgid ""
-"An index will be created, if it doesn't exists, to speed up the process to "
-"the following columns:"
-msgstr ""
-
-# 51ab4d2ba98b4affa7e5cec96e352cce
-#: ../../../src/common/doc/functions/create_vert_table.rst:59
-msgid "``the_geom``"
-msgstr "``the_geom``"
-
-# 134fb1a15f8742a49fe36e2683c4c324
-#: ../../../src/common/doc/functions/create_vert_table.rst:60
-msgid "``source``"
-msgstr "``source``"
-
-# 1c5f7bc5486b44999341e4f8f9b92c2e
-#: ../../../src/common/doc/functions/create_vert_table.rst:61
-msgid "``target``"
-msgstr "``target``"
-
-# 2c70ff2c521c48c799c898d61a01e119
-#: ../../../src/common/doc/functions/create_vert_table.rst:67
-msgid "Creates a vertices table: <edge_table>_vertices_pgr."
-msgstr ""
-
-# b0e0cf6163ea49f3b3a38e97576f301e
-#: ../../../src/common/doc/functions/create_vert_table.rst:68
-msgid ""
-"Fills ``id`` and ``the_geom`` columns of the vertices table based on the "
-"source and target columns of the edge table."
-msgstr ""
-
-# 28e32e20ebd74f88920b7c6fd45054e9
-#: ../../../src/common/doc/functions/create_vert_table.rst:72
-msgid ""
-"A required column of the Network table is not found or is not of the "
-"appropriate type."
-msgstr ""
-
-# 8501c3c5738f4907bf64b63007218466
-#: ../../../src/common/doc/functions/create_vert_table.rst:73
-msgid "The condition is not well formed."
-msgstr ""
-
-# 5252c79651354d40a6271efe4b78d226
-#: ../../../src/common/doc/functions/create_vert_table.rst:74
-msgid "The names of source, target are the same."
-msgstr ""
-
-# 41c42eeafd6b487ebc676126c0f92f0c
-#: ../../../src/common/doc/functions/create_vert_table.rst:75
-msgid "The SRID of the geometry could not be determined."
-msgstr ""
-
-# d61aba7cc54d49b9a670817e7dd52472
-#: ../../../src/common/doc/functions/create_vert_table.rst:78
-msgid "The Vertices Table"
-msgstr ""
-
-# 93a53c04ff294116acf94a067d17ff73
-#: ../../../src/common/doc/functions/create_vert_table.rst:79
-msgid ""
-"The vertices table is a requierment of the :ref:`pgr_analyzeGraph "
-"<pgr_analyze_graph>` and the :ref:`pgr_analyzeOneway <pgr_analyze_oneway>` "
-"functions."
-msgstr ""
-
-# 7e418508090c4667b4128b22f562b5db
-#: ../../../src/common/doc/functions/create_vert_table.rst:81
-msgid "The structure of the vertices table is:"
-msgstr ""
-
-# 114548eb64364741b99e10c86fe55fad
-#: ../../../src/common/doc/functions/create_vert_table.rst:83
-msgid "``bigint`` Identifier of the vertex."
-msgstr ""
-
-# 35f0fc22f2464997bce4d704a9f4ee88
-#: ../../../src/common/doc/functions/create_vert_table.rst:84
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex."
-" See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
-msgstr ""
-
-# d71ba1da8657438b86fe6ce3326cf94a
-#: ../../../src/common/doc/functions/create_vert_table.rst:85
-msgid ""
-"``integer``  Indicator that the vertex might have a problem. See "
-":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
-msgstr ""
-
-# 9ea4778e1ed64d3cb8c12ffedca5748b
-#: ../../../src/common/doc/functions/create_vert_table.rst:86
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"as incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-msgstr ""
-
-# cd631484ea62455cae3d37b03ca36624
-#: ../../../src/common/doc/functions/create_vert_table.rst:87
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"as outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-msgstr ""
-
-# 29652dcb521b4111813d63d570b62873
-#: ../../../src/common/doc/functions/create_vert_table.rst:88
-msgid "``geometry`` Point geometry of the vertex."
-msgstr ""
-
-# ca63675181414139865690332306235b
-#: ../../../src/common/doc/functions/create_vert_table.rst:91
-msgid "History"
-msgstr "Histoire"
-
-# e383b8838b4b40618c66151c1f94fb48
-#: ../../../src/common/doc/functions/create_vert_table.rst:92
-msgid "Renamed in version 2.0.0"
-msgstr "Renommé depuis la version 2.0.0"
-
-# f4e14bd6d88d4f1e8d5ff2fbf9aea722
-#: ../../../src/common/doc/functions/create_vert_table.rst:95
-msgid "Usage when the edge table's columns MATCH the default values:"
-msgstr ""
-
-# 6fc1c7d9c4e04380ada776f609bf4505
-#: ../../../src/common/doc/functions/create_vert_table.rst:98
-msgid "The simplest way to use pgr_createVerticesTable is:"
-msgstr ""
-
-# 3373cb2347994f2fa122008bdff12190
-#: ../../../src/common/doc/functions/create_vert_table.rst:105
-msgid "When the arguments are given in the order described in the parameters:"
-msgstr ""
-
-# f75126b9da994fea920678a643a80e25
-#: ../../../src/common/doc/functions/create_vert_table.rst:110
-msgid "We get the same result as the simplest way to use the function."
-msgstr ""
-
-# 90ea5b12d9a64eb2bafd6d211e0ffeff
-# 34ff976ba1f24ec08a19a8d87673156d
-#: ../../../src/common/doc/functions/create_vert_table.rst:117
-#: ../../../src/common/doc/functions/create_vert_table.rst:181
-msgid "When using the named notation"
-msgstr ""
-
-# 213a5c21ddcb4745987210530901695f
-# fac4e4da33fb494981c36957cd000a29
-#: ../../../src/common/doc/functions/create_vert_table.rst:118
-#: ../../../src/common/doc/functions/create_vert_table.rst:182
-msgid "The order of the parameters do not matter:"
-msgstr ""
-
-# 529a856bf0404a10a837b07945c52175
-#: ../../../src/common/doc/functions/create_vert_table.rst:128
-msgid ""
-"Parameters defined with a default value can be omited, as long as the value "
-"matches the default:"
-msgstr ""
-
-# 55574bcb1be54b1b907c0524cbf1057d
-# af501046d7d84255bd3030520c3e2f15
-#: ../../../src/common/doc/functions/create_vert_table.rst:135
-#: ../../../src/common/doc/functions/create_vert_table.rst:196
-msgid "Selecting rows using rows_where parameter"
-msgstr ""
-
-# 7080aeec9c1e4a31bfb9be1ed4506ab7
-#: ../../../src/common/doc/functions/create_vert_table.rst:136
-msgid "Selecting rows based on the id."
-msgstr ""
-
-# 74ec654344604925875e20b1447a6a3e
-#: ../../../src/common/doc/functions/create_vert_table.rst:142
-msgid ""
-"Selecting the rows where the geometry is near the geometry of row with "
-"``id`` =5 ."
-msgstr ""
-
-# 89d554dba13d40be8ca51e74d18c7c6f
-# fbda0895e287413fb2455b07ba2ba7fb
-#: ../../../src/common/doc/functions/create_vert_table.rst:148
-#: ../../../src/common/doc/functions/create_vert_table.rst:219
-msgid ""
-"Selecting the rows where the geometry is near the geometry of the row with "
-"``gid`` =100 of the table ``othertable``."
-msgstr ""
-
-# 7f2e698d7f844861bd468923e95ef16a
-#: ../../../src/common/doc/functions/create_vert_table.rst:159
-msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
-msgstr ""
-
-# 381c72bdf71543d4853557e93d021602
-#: ../../../src/common/doc/functions/create_vert_table.rst:161
-msgid "For the following table"
-msgstr ""
-
-# 5d51a2b4e3e84516bab9cc22039007c8
-#: ../../../src/common/doc/functions/create_vert_table.rst:169
-msgid "Using positional notation:"
-msgstr ""
-
-# 3be19d9038134fe2907db9c97eaeca7d
-#: ../../../src/common/doc/functions/create_vert_table.rst:170
-msgid ""
-"The arguments need to be given in the order described in the parameters:"
-msgstr ""
-
-# 94d47a836ffa45268fc1f9662f902f2b
-#: ../../../src/common/doc/functions/create_vert_table.rst:192
-msgid ""
-"In this scenario omitting a parameter would create an error because the "
-"default values for the column names do not match the column names of the "
-"table."
-msgstr ""
-
-# 6d8d108291094933afdde4095193e506
-#: ../../../src/common/doc/functions/create_vert_table.rst:197
-msgid "Selecting rows based on the gid."
-msgstr ""
-
-# 5df5fd0f734e46c6bfb93444bd86905e
-#: ../../../src/common/doc/functions/create_vert_table.rst:207
-msgid ""
-"Selecting the rows where the geometry is near the geometry of row with "
-"``gid`` =5 ."
-msgstr ""
-
-# e2c54fc28df243609e8d003180886771
-#: ../../../src/common/doc/functions/create_vert_table.rst:236
-msgid "Examples"
-msgstr "Exemples"
-
-# 0587b0909413456482f8b8725b101b7a
-#: ../../../src/common/doc/functions/create_vert_table.rst:258
-msgid "The example uses the :ref:`sampledata` network."
-msgstr ""
-
-# ad71788bef724cb1809d4b5d96ef1e5c
-#: ../../../src/common/doc/functions/create_vert_table.rst:262
-msgid "See Also"
-msgstr "Voir aussi"
-
-# 6baea98fd7b6493faabb8fcc69f975d8
-#: ../../../src/common/doc/functions/create_vert_table.rst:264
-msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
-msgstr ""
-
-# 7103284d91854b18939e44589085f3cf
-#: ../../../src/common/doc/functions/create_vert_table.rst:265
-msgid ""
-":ref:`pgr_createTopology <pgr_create_topology>` to create a topology based "
-"on the geometry."
-msgstr ""
-
-# 4c67e74087fe4035a8b54bb0d58d8a84
-#: ../../../src/common/doc/functions/create_vert_table.rst:266
-msgid ""
-":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
-"table."
-msgstr ""
-
-# a7eb449e6d594406ab3779c29d1937c8
-#: ../../../src/common/doc/functions/create_vert_table.rst:267
-msgid ":ref:`pgr_analyze_oneway` to analyze directionality of the edges."
-msgstr ""
diff --git a/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/is_column_in_table.po b/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/is_column_in_table.po
deleted file mode 100644
index 3931f66..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/is_column_in_table.po
+++ /dev/null
@@ -1,89 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-22 18:12+0000\n"
-"Last-Translator: erikap\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 1451c59201944bfd9022c90ef89ebf8a
-#: ../../../src/common/doc/functions/is_column_in_table.rst:13
-msgid "pgr_isColumnInTable - Check if column exists"
-msgstr "pgr_isColumnInTable - Vérifier si la colonne existe"
-
-# cb570c2703fc45e9bba281cae42780d6
-#: ../../../src/common/doc/functions/is_column_in_table.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# b4cdca42128d4828961c3e7076774fc0
-#: ../../../src/common/doc/functions/is_column_in_table.rst:22
-msgid "``pgr_isColumnInTable`` — Check if a column exists in a table."
-msgstr "``pgr_isColumnInTable`` — Vérifier si une colonne existe dans une table."
-
-# 33b135e2f8dd4f5e81aad53d1a016cfe
-#: ../../../src/common/doc/functions/is_column_in_table.rst:26
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# 96d06813601a419c9b44fe8298f74a51
-#: ../../../src/common/doc/functions/is_column_in_table.rst:28
-msgid "Returns ``true`` or ``false`` if column “col” exists in table “tab”."
-msgstr "Retourne ``true`` ou ``false`` si la colonne “col” existe dans la table “tab”."
-
-# 44f17585bbd843cb9fbcacb785ad3130
-#: ../../../src/common/doc/functions/is_column_in_table.rst:36
-msgid "Description"
-msgstr "Description"
-
-# b57ee4621bd04e6991a266235c5a592a
-#: ../../../src/common/doc/functions/is_column_in_table.rst:38
-msgid "``text`` table name with or without schema component"
-msgstr "Le nom de la table ``text`` avec ou sans composant de schéma"
-
-# ac6b45788cac4cc7a5dcf6e4c44bb9ad
-#: ../../../src/common/doc/functions/is_column_in_table.rst:39
-msgid "``text`` column name to be checked for"
-msgstr "``text`` nom de colonne à être vérifié pour"
-
-# 5f4ac9523c3b487884e6dd8e67b1e082
-#: ../../../src/common/doc/functions/is_column_in_table.rst:43
-msgid "History"
-msgstr "Histoire"
-
-# 028851614bd7489991629d8c8f6f8bbf
-#: ../../../src/common/doc/functions/is_column_in_table.rst:44
-msgid "New in version 2.0.0"
-msgstr "Nouveau depuis la version 2.0.0"
-
-# 3c3db2df87634ae4b3c8713633f9214f
-#: ../../../src/common/doc/functions/is_column_in_table.rst:48
-msgid "Examples"
-msgstr "Exemples"
-
-# 61e31f4885e444eea60640117f0f8264
-#: ../../../src/common/doc/functions/is_column_in_table.rst:59
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "Les requêtes utilisent le réseau :ref:`sampledata`."
-
-# 179da1f0bf5342b49e83327d1e277ca9
-#: ../../../src/common/doc/functions/is_column_in_table.rst:63
-msgid "See Also"
-msgstr "Voir aussi"
-
-# 7e1d2140f94d40db8ce6f48c9a3b119f
-#: ../../../src/common/doc/functions/is_column_in_table.rst:65
-msgid ":ref:`pgr_is_column_indexed`"
-msgstr ":ref:`pgr_is_column_indexed`"
diff --git a/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/is_column_indexed.po b/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/is_column_indexed.po
deleted file mode 100644
index eb508f0..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/is_column_indexed.po
+++ /dev/null
@@ -1,90 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-22 18:15+0000\n"
-"Last-Translator: erikap\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# f85a66c48ca94cc9a5bba227e6479482
-#: ../../../src/common/doc/functions/is_column_indexed.rst:13
-msgid "pgr_isColumnIndexed - Check if column is indexed"
-msgstr "pgr_isColumnIndexed - Vérifier si la colonne est indexée"
-
-# a4e361cfe30d494982b2755f507c2df4
-#: ../../../src/common/doc/functions/is_column_indexed.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# 2616614bd27b4f3aac95e5ee66f8771c
-#: ../../../src/common/doc/functions/is_column_indexed.rst:22
-msgid "``pgr_isColumnIndexed`` — Check if a column in a table is indexed."
-msgstr "``pgr_isColumnIndexed`` — Vérifier si une colonne dans une table est indexée."
-
-# 4aff78895aaf431bb254a1725ab1bab6
-#: ../../../src/common/doc/functions/is_column_indexed.rst:26
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# 62d98585fdfb49d287f711a97ba6f261
-#: ../../../src/common/doc/functions/is_column_indexed.rst:28
-msgid ""
-"Returns ``true`` or ``false`` if column “col” in table “tab” is indexed."
-msgstr "Retourne ``true`` ou ``false`` si la colonne “col” dans la table “tab” est indexée."
-
-# 016a3d2a60a745c39afdaa4ba6d24b5f
-#: ../../../src/common/doc/functions/is_column_indexed.rst:36
-msgid "Description"
-msgstr "Description"
-
-# 5efc6b2a366544cdadac135ab40dee54
-#: ../../../src/common/doc/functions/is_column_indexed.rst:38
-msgid "``text`` table name with or without schema component"
-msgstr "Le nom de la table ``text`` avec ou sans composant de schéma"
-
-# 76548c59562d4c4188ea7a5bbd5b769a
-#: ../../../src/common/doc/functions/is_column_indexed.rst:39
-msgid "``text`` column name to be checked for"
-msgstr "``text`` nom de colonne à être vérifié pour"
-
-# 20bbf0766ada4f7b81807c2e917be118
-#: ../../../src/common/doc/functions/is_column_indexed.rst:43
-msgid "History"
-msgstr "Histoire"
-
-# 3ca6785c8cb24235a6b581e63c32bd03
-#: ../../../src/common/doc/functions/is_column_indexed.rst:44
-msgid "New in version 2.0.0"
-msgstr "Nouveau depuis la version 2.0.0"
-
-# 89feb49b01e94980935495257bf135a9
-#: ../../../src/common/doc/functions/is_column_indexed.rst:48
-msgid "Examples"
-msgstr "Exemples"
-
-# c8b849f8431c42ef9ecdcde47c516f03
-#: ../../../src/common/doc/functions/is_column_indexed.rst:59
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "Les requêtes utilisent le réseau :ref:`sampledata`."
-
-# 4d38c2d872d0425290c2371cbc5d27e8
-#: ../../../src/common/doc/functions/is_column_indexed.rst:63
-msgid "See Also"
-msgstr "Voir aussi"
-
-# ed5ed4b10dc74af48b9de1a8743ec37b
-#: ../../../src/common/doc/functions/is_column_indexed.rst:65
-msgid ":ref:`pgr_is_column_in_table`"
-msgstr ":ref:`pgr_is_column_in_table`"
diff --git a/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/node_network.po b/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/node_network.po
deleted file mode 100644
index cbac4b1..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/node_network.po
+++ /dev/null
@@ -1,417 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:20+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# e70efe892bc14a45b9e0a2483d5955c1
-#: ../../../src/common/doc/functions/node_network.rst:13
-msgid "pgr_nodeNetwork"
-msgstr ""
-
-# 928e918755da48d29b113ad9fcdac620
-#: ../../../src/common/doc/functions/node_network.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# 4c656aa4f4bf48c39d41d16b429a0f0f
-#: ../../../src/common/doc/functions/node_network.rst:22
-msgid "``pgr_nodeNetwork`` - Nodes an network edge table."
-msgstr "``pgr_nodeNetwork`` - Noue une table réseau d'arêtes."
-
-# b5fd23c4e27446ce8ac33a3ee9bd1fe7
-#: ../../../src/common/doc/functions/node_network.rst:24
-msgid "Nicolas Ribot"
-msgstr "Nicolas Ribot"
-
-# 16108dce80dd41e2a458f2f45f2864d0
-#: ../../../src/common/doc/functions/node_network.rst:25
-msgid "Nicolas Ribot, The source code is released under the MIT-X license."
-msgstr "Nicolas Ribot, Le code source est distribué sous la licence MIT-X."
-
-# 3977ae6b9cf044318ec203a8e5aa5692
-#: ../../../src/common/doc/functions/node_network.rst:29
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# 2f6a7ad6abe5481da1e313d912af14e9
-#: ../../../src/common/doc/functions/node_network.rst:31
-msgid ""
-"The function reads edges from a not \"noded\" network table and writes the "
-"\"noded\" edges into a new table."
-msgstr "La fonction lit les arêtes d'une table réseau de nœuds non \"noded\" et écrit les arêtes \"noded\" dans une nouvelle table."
-
-# 3461fdeb834f4294ae2b188234db4eff
-#: ../../../src/common/doc/functions/node_network.rst:40
-msgid "Description"
-msgstr "Description"
-
-# 422a0c6c90c04a46bec03a6510ec201f
-#: ../../../src/common/doc/functions/node_network.rst:42
-msgid ""
-"A common problem associated with bringing GIS data into pgRouting is the "
-"fact that the data is often not \"noded\" correctly. This will create "
-"invalid topologies, which will result in routes that are incorrect."
-msgstr "Un problème commun associé avec des données SIG dans pgRouting est le fait que les données sont souvent non \"noded\" correctement. Cela créée des topologies invalides, qui résultent dans des routes incorrectes. "
-
-# 69294245f1c44993a75f749e3721222a
-#: ../../../src/common/doc/functions/node_network.rst:44
-msgid ""
-"What we mean by \"noded\" is that at every intersection in the road network "
-"all the edges will be broken into separate road segments. There are cases "
-"like an over-pass and under-pass intersection where you can not traverse "
-"from the over-pass to the under-pass, but this function does not have the "
-"ability to detect and accommodate those situations."
-msgstr ""
-
-# 2817b2a1050f4b5da0c9aac6f306ea5e
-#: ../../../src/common/doc/functions/node_network.rst:46
-msgid ""
-"This function reads the ``edge_table`` table, that has a primary key column "
-"``id`` and geometry column named ``the_geom`` and intersect all the segments"
-" in it against all the other segments and then creates a table "
-"``edge_table_noded``. It uses the ``tolerance`` for deciding that multiple "
-"nodes within the tolerance are considered the same node."
-msgstr ""
-
-# b6408b0103e84de6acf993a22a25e533
-#: ../../../src/common/doc/functions/node_network.rst:48
-msgid "Parameters"
-msgstr ""
-
-# 40ed2f0c80b64683aa3f8d42d20a77a2
-#: ../../../src/common/doc/functions/node_network.rst:50
-msgid "``text`` Network table name. (may contain the schema name as well)"
-msgstr ""
-
-# 86c247b372114883b5f6d0949e51b3c8
-#: ../../../src/common/doc/functions/node_network.rst:51
-msgid "``float8`` tolerance for coincident points (in projection unit)dd"
-msgstr ""
-
-# 946d6ed96b2b4f7fac8bcc7ba4d8e68b
-#: ../../../src/common/doc/functions/node_network.rst:52
-msgid ""
-"``text`` Primary key column name of the network table. Default value is "
-"``id``."
-msgstr ""
-
-# ce2e7f47f3bb4b299dda0387123f0409
-#: ../../../src/common/doc/functions/node_network.rst:53
-msgid ""
-"``text`` Geometry column name of the network table. Default value is "
-"``the_geom``."
-msgstr ""
-
-# 74d00078e6354e09a4592cf7e3f9dbe8
-#: ../../../src/common/doc/functions/node_network.rst:54
-msgid "``text`` Suffix for the new table's. Default value is ``noded``."
-msgstr ""
-
-# bc28085240354b228628c4449f877afe
-#: ../../../src/common/doc/functions/node_network.rst:56
-msgid "The output table will have for  ``edge_table_noded``"
-msgstr ""
-
-# df15f6d14415411b85a167c31717fb4e
-#: ../../../src/common/doc/functions/node_network.rst:58
-msgid "``bigint`` Unique identifier for the table"
-msgstr ""
-
-# 4acc7cf0acea40ac852585983687ef11
-#: ../../../src/common/doc/functions/node_network.rst:59
-msgid "``bigint``  Identifier of the edge in original table"
-msgstr ""
-
-# 99bb3c953a7243e1b8232bf4a387c7d7
-#: ../../../src/common/doc/functions/node_network.rst:60
-msgid "``integer`` Segment number of the original edge"
-msgstr ""
-
-# 36a3bdb3e58840f78502c1f388619d52
-#: ../../../src/common/doc/functions/node_network.rst:61
-msgid ""
-"``integer`` Empty source column to be used with  :ref:`pgr_create_topology` "
-"function"
-msgstr ""
-
-# 05092b2ea62744f1910db90fe30ab152
-#: ../../../src/common/doc/functions/node_network.rst:62
-msgid ""
-"``integer`` Empty target column to be used with  :ref:`pgr_create_topology` "
-"function"
-msgstr ""
-
-# c2b0caed0dd643e1991dd4e7f0f08e4c
-#: ../../../src/common/doc/functions/node_network.rst:63
-msgid "``geometry`` Geometry column of the noded network"
-msgstr ""
-
-# a1f34fff1602404db7f2c2344f99cad1
-#: ../../../src/common/doc/functions/node_network.rst:66
-msgid "History"
-msgstr "Histoire"
-
-# b92ecc8b6d9a4eaba9e0a30ce164fed0
-#: ../../../src/common/doc/functions/node_network.rst:67
-msgid "New in version 2.0.0"
-msgstr "Nouveau depuis la version 2.0.0"
-
-# cd2560788805450aa6ffb5ce84c8058e
-#: ../../../src/common/doc/functions/node_network.rst:71
-msgid "Example"
-msgstr "Exemple"
-
-# 7e9403e106bb4c0abdd7ed3d1b266079
-#: ../../../src/common/doc/functions/node_network.rst:73
-msgid "Let's create the topology for the data in :ref:`sampledata`"
-msgstr ""
-
-# 5c1a627f182d47efa30c1d4c830862ab
-#: ../../../src/common/doc/functions/node_network.rst:91
-msgid "Now we can analyze the network."
-msgstr ""
-
-# 3eb0c69215284a33ab1505fded4b5a1f
-#: ../../../src/common/doc/functions/node_network.rst:115
-msgid ""
-"The analysis tell us that the network has a gap and and an intersection. We "
-"try to fix the problem using:"
-msgstr ""
-
-# 8be31305870e491c92ad11d8f8d0a20a
-#: ../../../src/common/doc/functions/node_network.rst:137
-msgid ""
-"Inspecting the generated table, we can see that edges 13,14 and 18 has been "
-"segmented"
-msgstr ""
-
-# 8a086446ed8d4b30bf07015ab46ea12d
-#: ../../../src/common/doc/functions/node_network.rst:167
-msgid "We can create the topology of the new network"
-msgstr ""
-
-# 8944601cf6e343c09dce0bf706960a8c
-#: ../../../src/common/doc/functions/node_network.rst:185
-msgid "Now let's analyze the new topology"
-msgstr ""
-
-# 8a596982abe141b4a1925e35e1db79a3
-#: ../../../src/common/doc/functions/node_network.rst:211
-msgid "Images"
-msgstr ""
-
-# 960ada27fdd34c3dbfb61f10e5feba5f
-#: ../../../src/common/doc/functions/node_network.rst:244
-msgid "Comparing the results"
-msgstr ""
-
-# 8bbf24ce7c7e42f5a20e2a8d89e04c36
-#: ../../../src/common/doc/functions/node_network.rst:246
-msgid "Comparing with the Analysis in the original edge_table, we see that."
-msgstr ""
-
-# a3503fcd45dd4095b55e814ab842c829
-#: ../../../src/common/doc/functions/node_network.rst:249
-msgid "Before"
-msgstr ""
-
-# dfb592f8bd4e4572bbda7700558b3e93
-#: ../../../src/common/doc/functions/node_network.rst:249
-msgid "After"
-msgstr ""
-
-# dde3349cc54e4b94afb37800f2a163f5
-#: ../../../src/common/doc/functions/node_network.rst:251
-msgid "Table name"
-msgstr ""
-
-# f672bf7770e8488fbe5ea1fbd13d7ac9
-#: ../../../src/common/doc/functions/node_network.rst:251
-msgid "edge_table"
-msgstr ""
-
-# fbe3a7f491d4488085062b1fb783b357
-#: ../../../src/common/doc/functions/node_network.rst:251
-msgid "edge_table_noded"
-msgstr ""
-
-# adaa5d5eca664ecb9d20315adfd329b4
-#: ../../../src/common/doc/functions/node_network.rst:253
-msgid "Fields"
-msgstr ""
-
-# ebcf10a104ba4d7eaae546ec13365142
-#: ../../../src/common/doc/functions/node_network.rst:253
-msgid "All original fields"
-msgstr ""
-
-# be45b275890a4aa8a6d624b6f87774d0
-#: ../../../src/common/doc/functions/node_network.rst:253
-msgid "Has only basic fields to do a topology analysis"
-msgstr ""
-
-# 92f3a885bad349d6b5f9ef2345cb905f
-#: ../../../src/common/doc/functions/node_network.rst:255
-msgid "Dead ends"
-msgstr ""
-
-# 40a53c9b632b40a6a81f9277c11765b1
-#: ../../../src/common/doc/functions/node_network.rst:255
-msgid "Edges with 1 dead end: 1,6,24"
-msgstr ""
-
-# 709cbda3addd4b32b9b267d9ceafdb4f
-#: ../../../src/common/doc/functions/node_network.rst:256
-msgid "Edges with 2 dead ends  17,18"
-msgstr ""
-
-# d0de891ebf004a148c2bcd4510d81064
-#: ../../../src/common/doc/functions/node_network.rst:258
-msgid ""
-"Edge 17's right node is a dead end because there is no other edge sharing "
-"that same node. (cnt=1)"
-msgstr ""
-
-# 57918afd2f0445cea564eba267fa8c37
-#: ../../../src/common/doc/functions/node_network.rst:255
-msgid "Edges with 1 dead end: 1-1 ,6-1,14-2, 18-1 17-1 18-2"
-msgstr ""
-
-# ff6cb3034ea345c89df6d718108fd2bc
-#: ../../../src/common/doc/functions/node_network.rst:262
-msgid "Isolated segments"
-msgstr ""
-
-# b958862fe349475ca7c2b38bbb40663b
-#: ../../../src/common/doc/functions/node_network.rst:262
-msgid "two isolated segments:  17 and 18 both they have 2 dead ends"
-msgstr ""
-
-# 8d0bda0399694c6d8677fa928bdab03c
-#: ../../../src/common/doc/functions/node_network.rst:263
-msgid "No Isolated segments"
-msgstr ""
-
-# ac2cf90e5b2a4e75bb94688d6e4ec553
-#: ../../../src/common/doc/functions/node_network.rst:263
-msgid "Edge 17 now shares a node with edges 14-1 and 14-2"
-msgstr ""
-
-# 287c00afc68a4e869f912d7b2ddabefb
-#: ../../../src/common/doc/functions/node_network.rst:264
-msgid "Edges 18-1 and 18-2 share a node with edges 13-1 and 13-2"
-msgstr ""
-
-# bab6a1bf5c10447caa298e9247f3bf2a
-#: ../../../src/common/doc/functions/node_network.rst:266
-msgid "Gaps"
-msgstr ""
-
-# c23ab3c2eff44ddf9ddb0bee4f90197a
-#: ../../../src/common/doc/functions/node_network.rst:266
-msgid ""
-"There is a gap between edge 17 and 14 because edge 14 is near to the right "
-"node of edge 17"
-msgstr ""
-
-# 89fabbc2722649c9adf098ea0f9dde1c
-#: ../../../src/common/doc/functions/node_network.rst:266
-msgid ""
-"Edge 14 was segmented Now edges: 14-1 14-2 17 share the same node The "
-"tolerance value was taken in account"
-msgstr ""
-
-# c04f1c8028d846aeb593cd2389ee45da
-#: ../../../src/common/doc/functions/node_network.rst:270
-msgid "Intersections"
-msgstr ""
-
-# db3e94db58d0422bbfbdb83ba509d29e
-#: ../../../src/common/doc/functions/node_network.rst:270
-msgid "Edges 13 and 18 were intersecting"
-msgstr ""
-
-# 50736f49b59e4f7fa0c66f0e979d80bd
-#: ../../../src/common/doc/functions/node_network.rst:270
-msgid ""
-"Edges were segmented, So, now in the interection's point there is a node and"
-" the following edges share it: 13-1 13-2 18-1 18-2"
-msgstr ""
-
-# f39fa18acedb410fb827e37f226da00b
-#: ../../../src/common/doc/functions/node_network.rst:275
-msgid ""
-"Now, we are going to include the segments 13-1, 13-2 14-1, 14-2 ,18-1 and "
-"18-2 into our edge-table, copying the data for dir,cost,and reverse cost "
-"with tho following steps:"
-msgstr ""
-
-# 40eb8df52b5649ddb2401cc0c9fe4e7c
-#: ../../../src/common/doc/functions/node_network.rst:277
-msgid ""
-"Add a column old_id into edge_table, this column is going to keep track the "
-"id of the original edge"
-msgstr ""
-
-# 91eb1db3098b4353be78c9aef064421e
-#: ../../../src/common/doc/functions/node_network.rst:278
-msgid ""
-"Insert only the segmented edges, that is, the ones whose max(sub_id) >1"
-msgstr ""
-
-# 2158163aaac748eca84fcd78a42e9b3a
-#: ../../../src/common/doc/functions/node_network.rst:291
-msgid "We recreate the topology:"
-msgstr ""
-
-# 03050935f9bb42a69dfe42e303e8f164
-#: ../../../src/common/doc/functions/node_network.rst:311
-msgid ""
-"To get the same analysis results as the topology of edge_table_noded, we do "
-"the following query:"
-msgstr ""
-
-# bcefb46820504921aa7a3260a988c26d
-#: ../../../src/common/doc/functions/node_network.rst:338
-msgid ""
-"To get the same analysis results as the original edge_table, we do the "
-"following query:"
-msgstr ""
-
-# 376c4a5e033d42b3ba4e3c3ec018f8e8
-#: ../../../src/common/doc/functions/node_network.rst:363
-msgid ""
-"Or we can analyze everything because, maybe edge 18 is an overpass, edge 14 "
-"is an under pass and there is also a street level juction, and the same "
-"happens with edges 17 and 13."
-msgstr ""
-
-# 26fbd57b79324bd08ef2c5ee3579831e
-#: ../../../src/common/doc/functions/node_network.rst:390
-msgid "See Also"
-msgstr "Voir aussi"
-
-# 9df40faa94c64db5b2256f265be6e4d4
-#: ../../../src/common/doc/functions/node_network.rst:392
-msgid ""
-":ref:`topology` for an overview of a topology for routing algorithms. "
-":ref:`pgr_analyze_oneway` to analyze directionality of the edges. "
-":ref:`pgr_create_topology` to create a topology based on the geometry. "
-":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
-"table."
-msgstr ""
diff --git a/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/point_to_id.po b/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/point_to_id.po
deleted file mode 100644
index 94f0741..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/point_to_id.po
+++ /dev/null
@@ -1,105 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-24 11:12+0000\n"
-"Last-Translator: erikap\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 81e0b58a4b464395b3661da85edfaa90
-#: ../../../src/common/doc/functions/point_to_id.rst:13
-msgid "pgr_pointToId - Inserts point into a vertices table"
-msgstr "pgr_pointToId - Insère un point dans un tableau de sommets"
-
-# 9bebf9f4ff2b43a39470ee284698fa33
-#: ../../../src/common/doc/functions/point_to_id.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# 8fcf7e9e33b448b982f7111389a7e412
-#: ../../../src/common/doc/functions/point_to_id.rst:22
-msgid "``pgr_pointToId`` — Inserts a point into a temporary vertices table."
-msgstr "``pgr_pointToId`` — Insère un point dans un tableau temporaire de sommets a point"
-
-# 1ebe04b75e4444e2970f12bf667f07fa
-#: ../../../src/common/doc/functions/point_to_id.rst:26
-msgid ""
-"This function should not be used directly. Use :ref:`pgr_createTopology "
-"<pgr_create_topology>` instead."
-msgstr "Cette fonction ne devrait pas être utilisée directement. Utiliser :ref:`pgr_createTopology <pgr_create_topology>` à la place."
-
-# 8c3303cb3d73446795471f411d835691
-#: ../../../src/common/doc/functions/point_to_id.rst:30
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# e17d53fea1674ad692e9d65129c04e5d
-#: ../../../src/common/doc/functions/point_to_id.rst:32
-msgid ""
-"Inserts a point into a temporary vertices table, and returns an id of a new "
-"point or an existing point. Tolerance is the minimal distance between "
-"existing points and the new point to create a new point."
-msgstr "Insère un point dans un tableau temporaire de sommets, et retourne un id d'un nouveau point ou d'un point existant. La tolérance est la distance minimale entre les points existants et le nouveau point pour créer un nouveau point."
-
-# 4b067a809bbd4210baf154f274aab5f0
-#: ../../../src/common/doc/functions/point_to_id.rst:40
-msgid "Description"
-msgstr "Description"
-
-# de6b0b7b7ae44691a60a709a1245e12c
-#: ../../../src/common/doc/functions/point_to_id.rst:42
-msgid "``geometry`` of the existing point"
-msgstr "``geometry`` du point existant"
-
-# e05906cd2cd545eead6a6a277d441ea4
-#: ../../../src/common/doc/functions/point_to_id.rst:43
-msgid ""
-"``float8`` snapping tolerance of disconnected edges (in projection unit)"
-msgstr "Tolérance de fermeture ``float8`` des arêtes déconnectées (en unité de projection)"
-
-# 7eb52d95126d47efbf485a1397785c34
-#: ../../../src/common/doc/functions/point_to_id.rst:45
-msgid "Returns point id (``bigint``) of a new or existing point."
-msgstr "Retourne un id de point (``bigint``) d'un point nouveau ou existant."
-
-# 78ed162b771d42c1bdadb75ea1806c17
-#: ../../../src/common/doc/functions/point_to_id.rst:49
-msgid "History"
-msgstr "Histoire"
-
-# 932b962d76c14946b54db15e77b3c90d
-#: ../../../src/common/doc/functions/point_to_id.rst:50
-msgid "Renamed in version 2.0.0"
-msgstr "Renommé depuis la version 2.0.0"
-
-# c1b2ccd7df20427c88dcf1ebf4b06d82
-#: ../../../src/common/doc/functions/point_to_id.rst:54
-msgid "See Also"
-msgstr "Voir aussi"
-
-# 4dafa239ff7648c2952a2d3ee70671bf
-#: ../../../src/common/doc/functions/point_to_id.rst:56
-msgid ":ref:`pgr_create_topology`"
-msgstr ":ref:`pgr_create_topology`"
-
-# 8100a50d0b5f4b0cab8d62645becc674
-#: ../../../src/common/doc/functions/point_to_id.rst:57
-msgid ":ref:`topology`"
-msgstr ":ref:`topology`"
-
-# 86ad35d9d3ce44a696b6dc61c466e04e
-#: ../../../src/common/doc/functions/point_to_id.rst:58
-msgid ":ref:`pgr_node_network`"
-msgstr ":ref:`pgr_node_network`"
diff --git a/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/quote_ident.po b/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/quote_ident.po
deleted file mode 100644
index 2a9b073..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/quote_ident.po
+++ /dev/null
@@ -1,90 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-22 18:09+0000\n"
-"Last-Translator: erikap\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 59a19788e4ba478cb0d046fc07c08179
-#: ../../../src/common/doc/functions/quote_ident.rst:13
-msgid "pgr_quote_ident - Quote table name with Schema Component"
-msgstr "pgr_quote_ident - Nom de table entre guillemets avec composant de schéma"
-
-# 61a86f593d04476692b89157939b8a1e
-#: ../../../src/common/doc/functions/quote_ident.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# 7ae4a51cc62143058b829f9317d4b282
-#: ../../../src/common/doc/functions/quote_ident.rst:22
-msgid ""
-"``pgr_quote_ident`` — Quote table name with or without schema component."
-msgstr "``pgr_quote_ident`` — Nom de table entre guillemets avec ou sans composant de schéma."
-
-# d09400822917498ab08038e0453f93a2
-#: ../../../src/common/doc/functions/quote_ident.rst:26
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# 02e534c6d94e4d7fa366eb30dfd82602
-#: ../../../src/common/doc/functions/quote_ident.rst:28
-msgid ""
-"Function to split a string on ``.`` characters and then quote the components"
-" as postgres identifiers and then join them back together with ``.`` "
-"characters. Multile ``.`` will get collapsed into a single ``.``, so "
-"``schema...table`` till get returned as ``schema.\"table\"`` and "
-"``Schema.table`` becomes ``\"Schema\".\"table\"``."
-msgstr "Fonction pour partager une chaîne de caractères sur les caractères ``.`` et ensuite mettre entre guillemets les composants comme les identifiants postgres et ensuite les joindre ensemble avec les caractères ``.``. Les multiples ``.`` seront fusionnés en un unique ``.``, ainsi ``schema...table`` sera retourné en ``schema.\"table\"`` et ``Schema.table`` devient ``\"Schema\".\"table\"``."
-
-# 70b63ad008b14b5cbd540f478c596e97
-#: ../../../src/common/doc/functions/quote_ident.rst:37
-msgid "Description"
-msgstr "Description"
-
-# 76375d16726e4e8a8c4e02b54bd4b33a
-#: ../../../src/common/doc/functions/quote_ident.rst:39
-msgid "``text`` table name with or without schema component"
-msgstr "Le nom de la table ``text`` avec ou sans composant de schéma"
-
-# d8548a7bfe3542b28f614894ba6f4b84
-#: ../../../src/common/doc/functions/quote_ident.rst:41
-msgid "Returns table name with or without schema as ``text``."
-msgstr "Retourne le nom de la table avec ou sans schéma comme "
-
-# ebc95d6ee53c42f29aa6a18a134d4d20
-#: ../../../src/common/doc/functions/quote_ident.rst:45
-msgid "History"
-msgstr "Histoire"
-
-# 6bea52def68e4f05ae56873b8d4f9d1c
-#: ../../../src/common/doc/functions/quote_ident.rst:46
-msgid "New in version 2.0.0"
-msgstr "Nouveau depuis la version 2.0.0"
-
-# 21e9cb20b57e4b4681d4e04d5f083d2a
-#: ../../../src/common/doc/functions/quote_ident.rst:50
-msgid "Examples"
-msgstr "Exemples"
-
-# 5e3a344a21eb45bfba3e880ae3981a30
-#: ../../../src/common/doc/functions/quote_ident.rst:77
-msgid "See Also"
-msgstr "Voir aussi"
-
-# b4ee52cbb2b74bb59b22b1802748f96d
-#: ../../../src/common/doc/functions/quote_ident.rst:79
-msgid "[TBD]"
-msgstr "[À déterminer]"
diff --git a/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/version.po b/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/version.po
deleted file mode 100644
index b15cea6..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/version.po
+++ /dev/null
@@ -1,114 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-24 11:20+0000\n"
-"Last-Translator: erikap\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# dbab41817c8a46459e8f33cf684a7afb
-#: ../../../src/common/doc/functions/version.rst:13
-msgid "pgr_version - Get version information"
-msgstr "pgr_version - Obtenir l'information de version"
-
-# 19cd8fb76f754d898f75659f97628007
-#: ../../../src/common/doc/functions/version.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# 5531935ef2384b709c4f1d81ddcdf15c
-#: ../../../src/common/doc/functions/version.rst:22
-msgid "``pgr_version`` — Query for pgRouting version information."
-msgstr "``pgr_version`` — Requête pour l'information de version de pgRouting."
-
-# 52175fb13b944970989d3ef4a23a7b66
-#: ../../../src/common/doc/functions/version.rst:26
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# 14783f07374f4ccdaa53515b95c17943
-#: ../../../src/common/doc/functions/version.rst:28
-msgid "Returns a table with pgRouting version information."
-msgstr "Retourne un tableau avec l'information de version pgRouting."
-
-# 6d5995ab278d476d80f54ab15b8af686
-#: ../../../src/common/doc/functions/version.rst:36
-msgid "Description"
-msgstr "Description"
-
-# b4baa0103a55431abaa586f16230af8c
-#: ../../../src/common/doc/functions/version.rst:38
-msgid "Returns a table with:"
-msgstr "Retourne un tableau avec :"
-
-# 7d8a75cf72b840b39e0eea6140a5839d
-#: ../../../src/common/doc/functions/version.rst:40
-msgid "``varchar`` pgRouting version"
-msgstr "``varchar`` version de pgRouting"
-
-# 2af5168bce0a4b03bf2b097d3099c850
-#: ../../../src/common/doc/functions/version.rst:41
-msgid "``varchar`` Git tag of pgRouting build"
-msgstr "``varchar`` étiquette Git du build pgRouting"
-
-# b4444b51e41549b399751bcba194a8a8
-#: ../../../src/common/doc/functions/version.rst:42
-msgid "``varchar`` Git hash of pgRouting build"
-msgstr "``varchar`` hash Git du build "
-
-# 6737b5df55e94bb185f64d0de3389f3e
-#: ../../../src/common/doc/functions/version.rst:43
-msgid "``varchar`` Git branch of pgRouting build"
-msgstr "``varchar`` branche Git du build pgRouting"
-
-# e5b735559b2949b09899e982d6f2ecf3
-#: ../../../src/common/doc/functions/version.rst:44
-msgid "``varchar`` Boost version"
-msgstr "``varchar`` version Boost"
-
-# 9042ea468aba4c4490b7124bbf14aacb
-#: ../../../src/common/doc/functions/version.rst:48
-msgid "History"
-msgstr "Histoire"
-
-# 3829660b5485491083028df2cb267d03
-#: ../../../src/common/doc/functions/version.rst:49
-msgid "New in version 2.0.0"
-msgstr "Nouveau depuis la version 2.0.0"
-
-# 8638cdf8594940cbad096c9ac3d261ad
-#: ../../../src/common/doc/functions/version.rst:53
-msgid "Examples"
-msgstr "Exemples"
-
-# d80877f2810741ada5737305d484de11
-#: ../../../src/common/doc/functions/version.rst:55
-msgid "Query for full version string"
-msgstr "Requête pour la version string complète "
-
-# 2ff90cee91e644fab554650cc24bd3bf
-#: ../../../src/common/doc/functions/version.rst:67
-msgid "Query for ``version`` and ``boost`` attribute"
-msgstr "Requête pour les attributs ``version`` et ``boost``"
-
-# 6c3a1c332dc54ea2a01d81c5f5f9dcc1
-#: ../../../src/common/doc/functions/version.rst:80
-msgid "See Also"
-msgstr "Voir aussi"
-
-# 1eeb4f68d3c342dbbadade6c52b87baf
-#: ../../../src/common/doc/functions/version.rst:82
-msgid ":ref:`pgr_versionless`"
-msgstr ":ref:`pgr_versionless`"
diff --git a/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/versionless.po b/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/versionless.po
deleted file mode 100644
index 2ee0a0f..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/common/doc/functions/versionless.po
+++ /dev/null
@@ -1,86 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-22 18:02+0000\n"
-"Last-Translator: erikap\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# f15b37fde8e64b508893630a0291dc6a
-#: ../../../src/common/doc/functions/versionless.rst:13
-msgid "pgr_versionless - Compare version numbers"
-msgstr "pgr_versionless - Comparer les numéros de version"
-
-# cd0dcc3f3489468ab55c89598715d895
-#: ../../../src/common/doc/functions/versionless.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# e2f0eb00eca142c8bc7d71b317604c7e
-#: ../../../src/common/doc/functions/versionless.rst:22
-msgid "``pgr_version`` — Compare two version numbers and return if smaller."
-msgstr "``pgr_version`` — Comparer deux numéros de version et retourner si plus petit."
-
-# d85cf15bf8894e158945855624a422f5
-#: ../../../src/common/doc/functions/versionless.rst:26
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# ed2cb6f5c03645b3ab2a296d062c1eb9
-#: ../../../src/common/doc/functions/versionless.rst:28
-msgid ""
-"Returns ``true`` if the first version number is smaller than the second "
-"version number. Otherwise returns ``false``."
-msgstr "Retourne ``true`` si le premier numéro de version est plus petit que le second numéro de version. Sinon retourne  ``false``."
-
-# a11f675500e140ae997cdb4f167d2da4
-#: ../../../src/common/doc/functions/versionless.rst:36
-msgid "Description"
-msgstr "Description"
-
-# 7d1ac8fa4fce4362965d8587a3cd7099
-#: ../../../src/common/doc/functions/versionless.rst:38
-msgid "``text`` first version number"
-msgstr "``text`` premier numéro de version"
-
-# 1d8a5a36a0fa4da19892193a11578a08
-#: ../../../src/common/doc/functions/versionless.rst:39
-msgid "``text`` second version number"
-msgstr "``text`` deuxième numéro de version"
-
-# a32770a22cf849cb96bd78825f332825
-#: ../../../src/common/doc/functions/versionless.rst:43
-msgid "History"
-msgstr "Histoire"
-
-# 14ef379da17a48389cb627817c173253
-#: ../../../src/common/doc/functions/versionless.rst:44
-msgid "New in version 2.0.0"
-msgstr "Nouveau depuis la version 2.0.0"
-
-# 7a3d2290bca342b79b4105e7aee330b0
-#: ../../../src/common/doc/functions/versionless.rst:48
-msgid "Examples"
-msgstr "Exemples"
-
-# ca2f13a6ce4444258be7f46d40c8bd2a
-#: ../../../src/common/doc/functions/versionless.rst:61
-msgid "See Also"
-msgstr "Voir aussi"
-
-# a621baf581ff4ba8b4b03d3481d5a660
-#: ../../../src/common/doc/functions/versionless.rst:63
-msgid ":ref:`pgr_version`"
-msgstr ":ref:`pgr_version`"
diff --git a/doc/i18n/fr/LC_MESSAGES/src/common/doc/index.po b/doc/i18n/fr/LC_MESSAGES/src/common/doc/index.po
deleted file mode 100644
index 86f6479..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/common/doc/index.po
+++ /dev/null
@@ -1,24 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-08-22 17:40+0000\n"
-"Last-Translator: erikap\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 78df021b36a0428cab8a950fb0bda859
-#: ../../../src/common/doc/index.rst:13
-msgid "Common Functions"
-msgstr "Fonctions communes"
diff --git a/doc/i18n/fr/LC_MESSAGES/src/common/doc/legacy.po b/doc/i18n/fr/LC_MESSAGES/src/common/doc/legacy.po
deleted file mode 100644
index 7029674..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/common/doc/legacy.po
+++ /dev/null
@@ -1,67 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-08-22 18:00+0000\n"
-"Last-Translator: erikap\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 7e98fba52c6f402c811f8c50dd811f39
-#: ../../../src/common/doc/legacy.rst:13
-msgid "Legacy Functions"
-msgstr "Fonctions antérieures"
-
-# 18b051582e6742be8a3737391d4676ad
-#: ../../../src/common/doc/legacy.rst:15
-msgid ""
-"pgRouting 2.0 release has total restructured the function naming and "
-"obsoleted many of the functions that were available in the 1.x releases. "
-"While we realize that this may inconvenience our existing users, we felt "
-"this was needed for the long term viability of the project to be more "
-"response to our users and to be able to add new functionality and test "
-"existing functionality."
-msgstr "La sortie de pgRouting 2.0 a complètement restructuré le nommage des fonctions et rendu obsolète nombre de fonctions qui étaient disponibles dans les versions 1.x. Même si nous réalisons que cela peut être gênant pour nos utilisateurs actuels, nous considérons que cela est nécessaire pour la viabilité du projet sur le long terme pour être plus une solution à nos utilisateurs et d'être en mesure d'ajouter de nouvelles fonctionnalités et tester les fonctionnalités existantes."
-
-# cf6d9479ec0b4eb6b0607f3302df5dca
-#: ../../../src/common/doc/legacy.rst:17
-msgid ""
-"We have made a minimal effort to save most of these function and distribute "
-"with the release in a file ``pgrouting_legacy.sql`` that is not part of the "
-"pgrouting extension and is not supported. If you can use these functions "
-"that is great. We have not tested any of these functions so if you find "
-"issues and want to post a pull request or a patch to help other users that "
-"is fine, but it is likely this file will be removed in a future release and "
-"we strongly recommend that you convert your existing code to use the new "
-"documented and supported functions."
-msgstr "Nous avons fait un effort minimum pour sauver la plupart de ces fonctions et les distribuer avec la version dans un fichier ``pgrouting_legacy.sql`` qui n'est pas une partie de l'extension pgrouting et n'est pas supportée. Si vous pouvez utiliser ces fonctions, c'est bien. Nous n'avons pas testé toutes ces fonctions donc si vous trouvez des problèmes et voulez poster une requête ou un patch pour aider les autres utilisateurs c'est très bien, mais il est probable que ce fichier so [...]
-
-# 82da52e7fec44c24956e90636a8a9355
-#: ../../../src/common/doc/legacy.rst:19
-msgid ""
-"The follow is a list of TYPEs, CASTs and FUNCTION included in the "
-"``pgrouting_legacy.sql`` file. The list is provide as a convenience but "
-"these functions are deprecated, not supported, and probably will need some "
-"changes to get them to work."
-msgstr "La liste suivant est une liste des TYPEs, CASTs et FUNCTION inclus dans le fichier ``pgrouting_legacy.sql``. La liste est fournie pour commodité mais ces fonctions sont déconseillées, non supportées, et probablement ont besoin de certaines modifications pour fonctionner."
-
-# 7ae0da52fff04aaaaec8fd9b91d3b7b0
-#: ../../../src/common/doc/legacy.rst:23
-msgid "TYPEs & CASTs"
-msgstr "TYPEs & CASTs"
-
-# 8e73926e03514dff813a00fbf7d202e0
-#: ../../../src/common/doc/legacy.rst:34
-msgid "FUNCTIONs"
-msgstr "FUNCTIONs"
diff --git a/doc/i18n/fr/LC_MESSAGES/src/common/doc/types.po b/doc/i18n/fr/LC_MESSAGES/src/common/doc/types.po
deleted file mode 100644
index ee8ab59..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/common/doc/types.po
+++ /dev/null
@@ -1,31 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-22 17:40+0000\n"
-"Last-Translator: erikap\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# a647839f49f94a9997479367dc35d13f
-#: ../../../src/common/doc/types.rst:13
-msgid "Custom Types"
-msgstr "Types personnalisés"
-
-# f00f6611879f4afd961586e955284a41
-#: ../../../src/common/doc/types.rst:15
-msgid ""
-"The following are commonly used data types for some of the pgRouting "
-"functions."
-msgstr "Les types de données qui suivent sont communément utilisés dans certaines fonctions pgRouting."
diff --git a/doc/i18n/fr/LC_MESSAGES/src/common/doc/types/cost_result.po b/doc/i18n/fr/LC_MESSAGES/src/common/doc/types/cost_result.po
deleted file mode 100644
index 05b03aa..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/common/doc/types/cost_result.po
+++ /dev/null
@@ -1,115 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:13+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 575fa6fd8a1842c68aba9825683b178d
-#: ../../../src/common/doc/types/cost_result.rst:13
-msgid "pgr_costResult[]"
-msgstr ""
-
-# 3b55f2f3cdc24995bd590e235062c389
-# 1d4bd884218342d6a7ca7ae79998c3a0
-#: ../../../src/common/doc/types/cost_result.rst:20
-#: ../../../src/common/doc/types/cost_result.rst:54
-msgid "Name"
-msgstr "Nom"
-
-# 691ba9180a9f4854922720a03e1db3e0
-#: ../../../src/common/doc/types/cost_result.rst:22
-msgid ""
-"``pgr_costResult[]`` — A set of records to describe a path result with cost "
-"attribute."
-msgstr "``pgr_costResult[]`` — Un ensemble objets pour décrire un résultat de chemin avec un attribut coût."
-
-# 4bc0f98e83fc482daf119d02f3ab4386
-# b80ec90ac4244e82a1aa8f7e58b78921
-#: ../../../src/common/doc/types/cost_result.rst:26
-#: ../../../src/common/doc/types/cost_result.rst:60
-msgid "Description"
-msgstr "Description"
-
-# 023a9b6d62474dbdbb4d587b192099c4
-# 8e1c61381d6f47909ea0830da8a4740c
-#: ../../../src/common/doc/types/cost_result.rst:38
-#: ../../../src/common/doc/types/cost_result.rst:73
-msgid "sequential ID indicating the path order"
-msgstr "séquence ID indiquant l'ordre du chemin"
-
-# 98a23fe6530d43418558cdd8be417a26
-# 8c3701ae807d4738b8bbe72260f4c476
-#: ../../../src/common/doc/types/cost_result.rst:39
-#: ../../../src/common/doc/types/cost_result.rst:75
-msgid "generic name, to be specified by the function, typically the node id"
-msgstr "nom générique, à être spécifié par la fonction, typiquement l'id du noeud"
-
-# f4abd64c5dea4cda97490766f42a395c
-# 1be5c24bdc684ed1a182e9e2b0ab2343
-#: ../../../src/common/doc/types/cost_result.rst:40
-#: ../../../src/common/doc/types/cost_result.rst:76
-msgid "generic name, to be specified by the function, typically the edge id"
-msgstr "nom générique, à être spécifié par la fonction, typiquement l'id de l'arête"
-
-# 0b4a362ff97d481cafd2c0328ad1f715
-# 8e11a66126844a1682d4e4c84166794d
-#: ../../../src/common/doc/types/cost_result.rst:41
-#: ../../../src/common/doc/types/cost_result.rst:77
-msgid "cost attribute"
-msgstr "attribut coût"
-
-# 7e74e200db1b40e1a5231037b2e9b993
-#: ../../../src/common/doc/types/cost_result.rst:47
-msgid "pgr_costResult3[] - Multiple Path Results with Cost"
-msgstr "pgr_costResult3[] - Résultats du chemin multiple avec coût"
-
-# 307f0248b6c54a71bfc205bb2270b5ce
-#: ../../../src/common/doc/types/cost_result.rst:56
-msgid ""
-"``pgr_costResult3[]`` — A set of records to describe a path result with cost"
-" attribute."
-msgstr "``pgr_costResult3[]`` — Un ensemble d'objets pour décrire un résultat de chemin avec un attribut coût."
-
-# 13465c99a9fb49ebab1d1852e6c61aab
-#: ../../../src/common/doc/types/cost_result.rst:74
-msgid "generic name, to be specified by the function, typically the path id"
-msgstr "nom générique, à être spécifié par la fonction, typiquement l'id du chemin"
-
-# ac46c731c85d4d358a763bc1268ef510
-#: ../../../src/common/doc/types/cost_result.rst:81
-msgid "History"
-msgstr "Histoire"
-
-# 6bc9329d908f474bbcd380272dae671d
-#: ../../../src/common/doc/types/cost_result.rst:82
-msgid "New in version 2.0.0"
-msgstr "Nouveau depuis la version 2.0.0"
-
-# 7e5f0c1b76c349ce940c19b2312cc2ec
-#: ../../../src/common/doc/types/cost_result.rst:83
-msgid "Replaces ``path_result``"
-msgstr "Remplace ``path_result``"
-
-# 28df9e1fa19b49f9bb57710715c52fcb
-#: ../../../src/common/doc/types/cost_result.rst:87
-msgid "See Also"
-msgstr "Voir aussi"
-
-# 21432e8842c1490ba3a7825f4b4e57bb
-#: ../../../src/common/doc/types/cost_result.rst:89
-msgid ":ref:`introduction`"
-msgstr ""
diff --git a/doc/i18n/fr/LC_MESSAGES/src/common/doc/types/geom_result.po b/doc/i18n/fr/LC_MESSAGES/src/common/doc/types/geom_result.po
deleted file mode 100644
index 80ecb42..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/common/doc/types/geom_result.po
+++ /dev/null
@@ -1,83 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:13+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# baeae55a13de4766b42a9f43c6f8caaf
-#: ../../../src/common/doc/types/geom_result.rst:13
-msgid "pgr_geomResult[]"
-msgstr ""
-
-# 4fc9eadff47c4a24baa096c8c667c469
-#: ../../../src/common/doc/types/geom_result.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# 03beb686e4ec49e08cd6f1f0f5e03339
-#: ../../../src/common/doc/types/geom_result.rst:22
-msgid ""
-"``pgr_geomResult[]`` — A set of records to describe a path result with "
-"geometry attribute."
-msgstr "``pgr_geomResult[]`` — Un ensemble d'enregistrements pour décrire un résultat de chemin avec un attribut géométrie."
-
-# fd9c91caacdf4a2fb1c186c45e1d5525
-#: ../../../src/common/doc/types/geom_result.rst:26
-msgid "Description"
-msgstr "Description"
-
-# c00f6b668c744c7d822d2d2155e76b7a
-#: ../../../src/common/doc/types/geom_result.rst:38
-msgid "sequential ID indicating the path order"
-msgstr "séquence ID indiquant l'ordre du chemin"
-
-# 5782feff61f84fd4b3130a80b1abd7a9
-# 69c0e9623b4d41669a2601517d1563d2
-#: ../../../src/common/doc/types/geom_result.rst:39
-#: ../../../src/common/doc/types/geom_result.rst:40
-msgid "generic name, to be specified by the function"
-msgstr "nom générique, à être spécifié par la fonction"
-
-# c837b15d4460475996b2f7bac8b14076
-#: ../../../src/common/doc/types/geom_result.rst:41
-msgid "geometry attribute"
-msgstr "attribut de géométrie"
-
-# cf5503504b26427b800efddbc1098b64
-#: ../../../src/common/doc/types/geom_result.rst:45
-msgid "History"
-msgstr "Histoire"
-
-# 4e474c2cf69748c680853e0505ce4773
-#: ../../../src/common/doc/types/geom_result.rst:46
-msgid "New in version 2.0.0"
-msgstr "Nouveau depuis la version 2.0.0"
-
-# f4d42016a50f43438838421dfb361835
-#: ../../../src/common/doc/types/geom_result.rst:47
-msgid "Replaces ``geoms``"
-msgstr "Remplace ``geoms``"
-
-# 0075486d62f84298b41797b5789d377a
-#: ../../../src/common/doc/types/geom_result.rst:51
-msgid "See Also"
-msgstr "Voir aussi"
-
-# 5a190ec8601a4a919a058395614d7db5
-#: ../../../src/common/doc/types/geom_result.rst:53
-msgid ":ref:`introduction`"
-msgstr ""
diff --git a/doc/i18n/fr/LC_MESSAGES/src/common/doc/types/index.po b/doc/i18n/fr/LC_MESSAGES/src/common/doc/types/index.po
deleted file mode 100644
index 18816ef..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/common/doc/types/index.po
+++ /dev/null
@@ -1,51 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (187a022 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-23 22:34\n"
-"PO-Revision-Date: 2013-09-24 03:35+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 31af4730c6e74131952f077a8cec876f
-#: ../../../src/common/doc/types/index.rst:13
-msgid "pgRouting Data Types"
-msgstr ""
-
-# da2f6a8846b5476ea16852a5dc229cc4
-#: ../../../src/common/doc/types/index.rst:15
-msgid ""
-"The following are commonly used data types for some of the pgRouting "
-"functions."
-msgstr "Les types de données qui suivent sont communément utilisés dans certaines fonctions pgRouting."
-
-# a9b85e2084f8478fa35c1379a650108b
-#: ../../../src/common/doc/types/index.rst:17
-msgid ""
-":ref:`type_cost_result` -  A set of records to describe a path result with "
-"cost attribute."
-msgstr ""
-
-# b982ceede0fd48afa63a086c6978fd2e
-#: ../../../src/common/doc/types/index.rst:18
-msgid ""
-":ref:`pgr_costResult3[] <type_cost_result3>` - A set of records to describe "
-"a path result with cost attribute."
-msgstr ""
-
-# 913c41ce7bb44b80869c181df3560f3d
-#: ../../../src/common/doc/types/index.rst:19
-msgid ""
-":ref:`pgr_geomResult <type_geom_result>` - A set of records to describe a "
-"path result with geometry attribute."
-msgstr ""
diff --git a/doc/i18n/fr/LC_MESSAGES/src/common/doc/utilities/end_point.po b/doc/i18n/fr/LC_MESSAGES/src/common/doc/utilities/end_point.po
deleted file mode 100644
index aa496e8..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/common/doc/utilities/end_point.po
+++ /dev/null
@@ -1,92 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 05:50+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 608ee0c4d0644bdba6e3dc233e2143a7
-#: ../../../src/common/doc/utilities/end_point.rst:13
-msgid "pgr_endPoint"
-msgstr ""
-
-# 8518d0c13dcc4cb9b4a6eb5bd83e8d6e
-#: ../../../src/common/doc/utilities/end_point.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# 3660b4422cfa4aaea41cf4b4e91164ee
-#: ../../../src/common/doc/utilities/end_point.rst:22
-msgid ""
-"``pgr_endPoint`` — Returns an end point of a (multi)linestring geometry."
-msgstr ""
-
-# 549e2d553af74e0bba5a2833eafa7983
-#: ../../../src/common/doc/utilities/end_point.rst:24
-msgid "This function is intended for the developer's aid."
-msgstr ""
-
-# d2cdf35b795f4fcfbfc9c84a2c36387b
-#: ../../../src/common/doc/utilities/end_point.rst:28
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# 180a778d767b496986ed060d48f0de04
-# 14f173f6f91f488b940887c452049824
-#: ../../../src/common/doc/utilities/end_point.rst:30
-#: ../../../src/common/doc/utilities/end_point.rst:44
-msgid ""
-"Returns the geometry of the end point of the first LINESTRING of ``geom``."
-msgstr ""
-
-# c8cfaed54e00467bba188637f3d25e04
-#: ../../../src/common/doc/utilities/end_point.rst:38
-msgid "Description"
-msgstr "Description"
-
-# b7a5d14354644a79aaa532e44543b0f1
-#: ../../../src/common/doc/utilities/end_point.rst:41
-msgid "Parameters"
-msgstr ""
-
-# 01b0d917d9534f74885248e0be35ca6d
-#: ../../../src/common/doc/utilities/end_point.rst:42
-msgid "``geometry`` Geometry of a MULTILINESTRING or LINESTRING."
-msgstr ""
-
-# a1951e42b2164de2b73d7ecde1bc5252
-#: ../../../src/common/doc/utilities/end_point.rst:49
-msgid "History"
-msgstr "Histoire"
-
-# fd2421f2ca2945c4ad59395a0fa9cb90
-#: ../../../src/common/doc/utilities/end_point.rst:50
-msgid "New in version 2.0.0"
-msgstr "Nouveau depuis la version 2.0.0"
-
-# 031cd30124a9491e80778dce1c6d77ab
-#: ../../../src/common/doc/utilities/end_point.rst:55
-msgid "See Also"
-msgstr "Voir aussi"
-
-# f17f7b08a35d44098381d1c280756f49
-#: ../../../src/common/doc/utilities/end_point.rst:57
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-# 68b294268f37462fb09eb605267d0686
-#: ../../../src/common/doc/utilities/end_point.rst:58
-msgid ":ref:`pgr_start_point` to get the start point of a (multi)linestring."
-msgstr ""
diff --git a/doc/i18n/fr/LC_MESSAGES/src/common/doc/utilities/get_column_name.po b/doc/i18n/fr/LC_MESSAGES/src/common/doc/utilities/get_column_name.po
deleted file mode 100644
index 1981a7d..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/common/doc/utilities/get_column_name.po
+++ /dev/null
@@ -1,140 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 05:50+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# f62e871185dd40c2a9e8b7cec3ea97b9
-#: ../../../src/common/doc/utilities/get_column_name.rst:13
-msgid "pgr_getColumnName"
-msgstr ""
-
-# 0d4e05a54bf944d2a712bcee9d7897c4
-#: ../../../src/common/doc/utilities/get_column_name.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# c1e5f5dde2804946bee1804968cb4efc
-#: ../../../src/common/doc/utilities/get_column_name.rst:22
-msgid ""
-"``pgr_getColumnName`` — Retrieves the name of the column as is stored in the"
-" postgres administration tables."
-msgstr ""
-
-# 89a0f81382ca4dd4807320cd56be21bb
-#: ../../../src/common/doc/utilities/get_column_name.rst:24
-msgid "This function is intended for the developer’s aid."
-msgstr ""
-
-# a6025211521149deb893b8e059385c6b
-#: ../../../src/common/doc/utilities/get_column_name.rst:27
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# e6dc3534289949caa3eebca95dbe364e
-#: ../../../src/common/doc/utilities/get_column_name.rst:29
-msgid "Returns a ``text`` contining the registered name of the column."
-msgstr ""
-
-# ef6704e3345e4be4a51fd144fbfc5d82
-#: ../../../src/common/doc/utilities/get_column_name.rst:37
-msgid "Description"
-msgstr "Description"
-
-# de7acd82e1244d8ba20da3bae0d95f22
-#: ../../../src/common/doc/utilities/get_column_name.rst:39
-msgid "Parameters"
-msgstr ""
-
-# 0b9f663d5b0e4f18a4bda0b996e55470
-#: ../../../src/common/doc/utilities/get_column_name.rst:41
-msgid "``text`` table name with or without schema component."
-msgstr ""
-
-# 34e350e22e5a495aa831ca55d080899a
-#: ../../../src/common/doc/utilities/get_column_name.rst:42
-msgid "``text`` column name to be retrived."
-msgstr ""
-
-# e495d55a75424870ba29867eb248cf4d
-#: ../../../src/common/doc/utilities/get_column_name.rst:44
-msgid "Returns"
-msgstr ""
-
-# c1394725601143b081216fe27794fbe6
-#: ../../../src/common/doc/utilities/get_column_name.rst:46
-msgid "``text`` containing the registered name of the column."
-msgstr ""
-
-# ec0c3eb922f44a818f1724026f43c7da
-#: ../../../src/common/doc/utilities/get_column_name.rst:47
-msgid "``NULL`` when :"
-msgstr ""
-
-# d3cb598bdcdf4349837225c6e9efa756
-#: ../../../src/common/doc/utilities/get_column_name.rst:49
-msgid "The table “tab” is not found or"
-msgstr ""
-
-# 6d27bb1e405343a893db971fe1cee8b7
-#: ../../../src/common/doc/utilities/get_column_name.rst:50
-msgid ""
-"Column “col” is not found in table “tab” in the postgres administration "
-"tables."
-msgstr ""
-
-# f56b94dfc7574beba7ee2b42199e9c27
-#: ../../../src/common/doc/utilities/get_column_name.rst:53
-msgid "History"
-msgstr "Histoire"
-
-# 57eede78e2024b059d7e09968747a720
-#: ../../../src/common/doc/utilities/get_column_name.rst:54
-msgid "New in version 2.0.0"
-msgstr "Nouveau depuis la version 2.0.0"
-
-# efbc409d37be4e30a8edf913a4d89664
-#: ../../../src/common/doc/utilities/get_column_name.rst:58
-msgid "Examples"
-msgstr "Exemples"
-
-# 741d466c28fb47feb64d7ef7593275e7
-#: ../../../src/common/doc/utilities/get_column_name.rst:76
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "Les requêtes utilisent le réseau :ref:`sampledata`."
-
-# acb3053630ab458d93853aa31aad9ade
-#: ../../../src/common/doc/utilities/get_column_name.rst:80
-msgid "See Also"
-msgstr "Voir aussi"
-
-# e54ecee9b6744650b79cb07b0c0274dd
-#: ../../../src/common/doc/utilities/get_column_name.rst:82
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-# 9143b02cdd264a818a9edda19a0e7ce7
-#: ../../../src/common/doc/utilities/get_column_name.rst:83
-msgid ""
-":ref:`pgr_is_column_in_table` to check only for the existance of the column."
-msgstr ""
-
-# 11630fb324eb4a80bdfffb972707478d
-#: ../../../src/common/doc/utilities/get_column_name.rst:84
-msgid ""
-":ref:`pgr_get_table_name` to retrieve the name of the table as is stored in "
-"the postgres administration tables."
-msgstr ""
diff --git a/doc/i18n/fr/LC_MESSAGES/src/common/doc/utilities/get_table_name.po b/doc/i18n/fr/LC_MESSAGES/src/common/doc/utilities/get_table_name.po
deleted file mode 100644
index 302ca87..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/common/doc/utilities/get_table_name.po
+++ /dev/null
@@ -1,151 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 05:50+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 95f0c2d0bb88448c8b72400e83c9f6f4
-#: ../../../src/common/doc/utilities/get_table_name.rst:13
-msgid "pgr_getTableName"
-msgstr ""
-
-# 68a49ae29d0e4036bda025f169e4f3f7
-#: ../../../src/common/doc/utilities/get_table_name.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# 8f9480f595c9426f945620d8b5977b86
-#: ../../../src/common/doc/utilities/get_table_name.rst:22
-msgid ""
-"``pgr_getTableName`` — Retrieves the name of the column as is stored in the "
-"postgres administration tables."
-msgstr ""
-
-# c06c3bd3649a4e27af6f710e189ea071
-#: ../../../src/common/doc/utilities/get_table_name.rst:24
-msgid "This function is intended for the developer’s aid."
-msgstr ""
-
-# 3285b01b587a4aac94ab9ee03a474ef7
-#: ../../../src/common/doc/utilities/get_table_name.rst:27
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# ecd7065df5e047ef8415f13acf653201
-#: ../../../src/common/doc/utilities/get_table_name.rst:29
-msgid ""
-"Returns a record containing the registered names of the table and of the "
-"schema it belongs to."
-msgstr ""
-
-# 9912cc30113340efa3e5e3ac408d3a3c
-#: ../../../src/common/doc/utilities/get_table_name.rst:37
-msgid "Description"
-msgstr "Description"
-
-# 787a57d13f8a48a289b545e5c5fc50d5
-#: ../../../src/common/doc/utilities/get_table_name.rst:39
-msgid "Parameters"
-msgstr ""
-
-# 3c523e72ddd74a10b3defc135e0a1fa1
-#: ../../../src/common/doc/utilities/get_table_name.rst:41
-msgid "``text`` table name with or without schema component."
-msgstr ""
-
-# bc51a86638e44b1b8d435a7fcec971e1
-#: ../../../src/common/doc/utilities/get_table_name.rst:43
-msgid "Returns"
-msgstr ""
-
-# a3da192f153341e484e7a1c973e77570
-#: ../../../src/common/doc/utilities/get_table_name.rst:47
-msgid "``text`` containing the registered name of the schema of table \"tab\"."
-msgstr ""
-
-# 77471087a83049e4924411216422cd8f
-#: ../../../src/common/doc/utilities/get_table_name.rst:49
-msgid "when the schema was not provided in \"tab\" the current schema is used."
-msgstr ""
-
-# f253b42e28a3413abcbeebd5a25fbb53
-# a25f490ebce344728e53d37057ded897
-#: ../../../src/common/doc/utilities/get_table_name.rst:51
-#: ../../../src/common/doc/utilities/get_table_name.rst:58
-msgid "``NULL`` when :"
-msgstr ""
-
-# ab062cff517a43b6b5a40e1090073265
-# 49a4ab8abced47adaf11ea7b321f06b9
-#: ../../../src/common/doc/utilities/get_table_name.rst:53
-#: ../../../src/common/doc/utilities/get_table_name.rst:60
-msgid "The schema is not found in the postgres administration tables."
-msgstr ""
-
-# 19d2a93e6d45419d89974c286d1347f3
-#: ../../../src/common/doc/utilities/get_table_name.rst:57
-msgid "``text`` containing the registered name of the table \"tab\"."
-msgstr ""
-
-# 7c7d80132bbc4693a79fbb1bb32a804d
-#: ../../../src/common/doc/utilities/get_table_name.rst:61
-msgid ""
-"The table \"tab\" is not registered under the schema ``sname`` in the "
-"postgres administration tables"
-msgstr ""
-
-# fe048e6d68984dfb9e8d91f72f99f65a
-#: ../../../src/common/doc/utilities/get_table_name.rst:65
-msgid "History"
-msgstr "Histoire"
-
-# 0ac3887a0f0642ca8bf6c6fa12f497bb
-#: ../../../src/common/doc/utilities/get_table_name.rst:66
-msgid "New in version 2.0.0"
-msgstr "Nouveau depuis la version 2.0.0"
-
-# fbd75b0146ff4f9595156794c4ebd6fd
-#: ../../../src/common/doc/utilities/get_table_name.rst:70
-msgid "Examples"
-msgstr "Exemples"
-
-# 3792394a3a344c4493db40c2d04b5e2d
-#: ../../../src/common/doc/utilities/get_table_name.rst:95
-msgid "The examples use the :ref:`sampledata` network."
-msgstr ""
-
-# 10229dc5fd6545bdb875c9885f090618
-#: ../../../src/common/doc/utilities/get_table_name.rst:99
-msgid "See Also"
-msgstr "Voir aussi"
-
-# c24e1b3593b44343b2e4c86e06b4cbb2
-#: ../../../src/common/doc/utilities/get_table_name.rst:101
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-# 830f93a843b145ebb35db5cf5de99e00
-#: ../../../src/common/doc/utilities/get_table_name.rst:102
-msgid ""
-":ref:`pgr_is_column_in_table` to check only for the existance of the column."
-msgstr ""
-
-# e731438ed94a48a0b26ea5223b564393
-#: ../../../src/common/doc/utilities/get_table_name.rst:103
-msgid ""
-":ref:`pgr_get_table_name` to retrieve the name of the table as is stored in "
-"the postgres administration tables."
-msgstr ""
diff --git a/doc/i18n/fr/LC_MESSAGES/src/common/doc/utilities/is_column_in_table.po b/doc/i18n/fr/LC_MESSAGES/src/common/doc/utilities/is_column_in_table.po
deleted file mode 100644
index bd9b927..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/common/doc/utilities/is_column_in_table.po
+++ /dev/null
@@ -1,137 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 05:50+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# f6500f30614b461f90b682890f3c3192
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:13
-msgid "pgr_isColumnInTable"
-msgstr ""
-
-# 7a4ec9b1b3514801a079916c0000371b
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# 90dd01a206e24dbf9f73f90924c0615b
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:22
-msgid "``pgr_isColumnInTable`` — Check if a column is in the table."
-msgstr ""
-
-# 0d927909521c4f638c543baff8ebd318
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:24
-msgid "This function is intended for the developer’s aid."
-msgstr ""
-
-# b52fa51d192444e0a61674ede982a3e5
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:27
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# ea409e6a176b489aa7f326229d178d13
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:29
-msgid "Returns ``true`` when the column “col” is in table “tab”."
-msgstr ""
-
-# f5b2b429515a474892b7bddaebd7fa87
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:37
-msgid "Description"
-msgstr "Description"
-
-# a513395f631244f18df21c3b85ea7820
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:39
-msgid "``text`` Table name with or without schema component."
-msgstr ""
-
-# df577648959b4e0daab9d343543d3501
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:40
-msgid "``text`` Column name to be checked for."
-msgstr ""
-
-# faa09fc52bc54a0f9fe811ff099aa562
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:42
-msgid "Returns:"
-msgstr ""
-
-# 67ed5e9b40764fa1be45f8936680f526
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:44
-msgid "``true`` when the column “col” is in table “tab”."
-msgstr ""
-
-# fc38c243b9154c03833b5c9acd63804e
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:45
-msgid "``false`` when:"
-msgstr ""
-
-# fb6952dd480644c78db65cfbc109f967
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:47
-msgid "The table \"tab\" is not found or"
-msgstr ""
-
-# e701055cfb574ccd800767d4d4555d02
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:48
-msgid "Column “col” is not found in table “tab”"
-msgstr ""
-
-# be793f469b524522a2331a60fb6d7bac
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:51
-msgid "History"
-msgstr "Histoire"
-
-# 03a9d21bed654a438312a5a6d45fcf17
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:52
-msgid "New in version 2.0.0"
-msgstr "Nouveau depuis la version 2.0.0"
-
-# 1691f75cb0674d2d83b0bebe24105a6d
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:56
-msgid "Examples"
-msgstr "Exemples"
-
-# c8d317a25f554ec6b9af54b1f7ae6c26
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:76
-msgid "The example use the :ref:`sampledata` network."
-msgstr ""
-
-# 24c87607bf1b4b23bb01e403b16e856f
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:80
-msgid "See Also"
-msgstr "Voir aussi"
-
-# b3efbf8b34fd415bbfc31810cc19b9dc
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:82
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-# 53d890d3132e4c7d94e0675093e6c146
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:83
-msgid ":ref:`pgr_is_column_indexed` to check if the column is indexed."
-msgstr ""
-
-# 5324fa01310a4c509d7ce91c088865e9
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:84
-msgid ""
-":ref:`pgr_get_column_name` to get the name of the column as is stored in the"
-" postgres administration tables."
-msgstr ""
-
-# d97c057248844396aaa96cacbfcbc034
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:85
-msgid ""
-":ref:`pgr_get_table_name` to get the name of the table as is stored in the "
-"postgres administration tables."
-msgstr ""
diff --git a/doc/i18n/fr/LC_MESSAGES/src/common/doc/utilities/is_column_indexed.po b/doc/i18n/fr/LC_MESSAGES/src/common/doc/utilities/is_column_indexed.po
deleted file mode 100644
index f6c8149..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/common/doc/utilities/is_column_indexed.po
+++ /dev/null
@@ -1,144 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 05:50+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# d13f67c428de40999845a53a259a0896
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:13
-msgid "pgr_isColumnIndexed"
-msgstr ""
-
-# 8c9da63e8a0e4da4aa092b82eced03c0
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# cdfe958887b74d69a5d69a8c3b76f35d
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:22
-msgid "``pgr_isColumnIndexed`` — Check if a column in a table is indexed."
-msgstr "``pgr_isColumnIndexed`` — Vérifier si une colonne dans une table est indexée."
-
-# 16efc5cad4b0458aa30f27dcc834fb0b
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:24
-msgid "This function is intended for the developer’s aid."
-msgstr ""
-
-# 1611a88987e54ab8a15606f82d4c6098
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:27
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# 004725222faa47fd971e321be44816e6
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:29
-msgid "Returns ``true`` when the column “col” in table “tab” is indexed."
-msgstr ""
-
-# 3389fb7dd377428cbf442296f0032a6a
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:37
-msgid "Description"
-msgstr "Description"
-
-# cfb294e6535c4b0d91975ec3cb1c8985
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:39
-msgid "``text`` Table name with or without schema component."
-msgstr ""
-
-# 4cb8e78e50fb4ecbb15f141bb496040d
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:40
-msgid "``text`` Column name to be checked for."
-msgstr ""
-
-# a0f63aba19d0494b9cdcc5c7a61aebdb
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:42
-msgid "Returns:"
-msgstr ""
-
-# 66eed092853a47f9a7f69aa1fedbc666
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:44
-msgid "``true`` when the column “col” in table “tab” is indexed."
-msgstr ""
-
-# dbb567f94e994beaac90ea65cc8a324e
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:45
-msgid "``false`` when:"
-msgstr ""
-
-# f45a928140f24c299053e944f5550b7e
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:47
-msgid "The table \"tab\" is not found or"
-msgstr ""
-
-# c949dec2746e48459f93287f24a1334a
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:48
-msgid "Column “col” is not found in table “tab” or"
-msgstr ""
-
-# b2fd725d67df46b98d8ca3eddde9d1b5
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:49
-msgid "Column \"col\" in table \"tab\" is not indexed"
-msgstr ""
-
-# fe7b50380e1246599dd0b8abbac9a394
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:52
-msgid "History"
-msgstr "Histoire"
-
-# 2949ff82708f44db903c9e175d8fd484
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:53
-msgid "New in version 2.0.0"
-msgstr "Nouveau depuis la version 2.0.0"
-
-# c19a7c36df38472bb330eafac37c34d3
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:57
-msgid "Examples"
-msgstr "Exemples"
-
-# 9484e0bc1f1942da88f6261afd689f40
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:77
-msgid "The example use the :ref:`sampledata` network."
-msgstr ""
-
-# ba4b525f9ced43898aab4410c804208b
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:81
-msgid "See Also"
-msgstr "Voir aussi"
-
-# 76c91def69da43539042f05a15240e67
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:83
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-# 10267ea719b141b7a9e7712543121d34
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:84
-msgid ""
-":ref:`pgr_is_column_in_table` to check only for the existance of the column "
-"in the table."
-msgstr ""
-
-# 4e5e6df51cf149cd9e79ef3459273a4b
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:85
-msgid ""
-":ref:`pgr_get_column_name` to get the name of the column as is stored in the"
-" postgres administration tables."
-msgstr ""
-
-# 2cda9c32c4ec4117914b3e51f125c1df
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:86
-msgid ""
-":ref:`pgr_get_table_name` to get the name of the table as is stored in the "
-"postgres administration tables."
-msgstr ""
diff --git a/doc/i18n/fr/LC_MESSAGES/src/common/doc/utilities/point_to_id.po b/doc/i18n/fr/LC_MESSAGES/src/common/doc/utilities/point_to_id.po
deleted file mode 100644
index beca42c..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/common/doc/utilities/point_to_id.po
+++ /dev/null
@@ -1,144 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 05:50+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 94641dca24af4c0dba2fbeed97300d22
-#: ../../../src/common/doc/utilities/point_to_id.rst:13
-msgid "pgr_pointToId"
-msgstr ""
-
-# 56e635560a6d4492ae86100badf0e086
-#: ../../../src/common/doc/utilities/point_to_id.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# 81cc9d306cd54f46b4d517216a806eb7
-#: ../../../src/common/doc/utilities/point_to_id.rst:22
-msgid ""
-"``pgr_pointToId`` — Inserts a point into a vertices table and returns the "
-"corresponig id."
-msgstr ""
-
-# f6b714528cf7426dbeb9245b9719427c
-#: ../../../src/common/doc/utilities/point_to_id.rst:26
-msgid ""
-"This function is intended for the developer's aid. Use "
-":ref:`pgr_createTopology <pgr_create_topology>` or "
-":ref:`pgr_createVerticesTable <pgr_create_vert_table>` instead."
-msgstr ""
-
-# ba51b8bd879447188b15521bc44768c2
-#: ../../../src/common/doc/utilities/point_to_id.rst:30
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# 426a196654d64ba99aa86b9e3eb47996
-#: ../../../src/common/doc/utilities/point_to_id.rst:32
-msgid ""
-"This function returns the ``id`` of the row in the vertices table that "
-"corresponds to the ``point`` geometry"
-msgstr ""
-
-# ad82864ab2bc436bb940d9dbb4bb7e28
-#: ../../../src/common/doc/utilities/point_to_id.rst:40
-msgid "Description"
-msgstr "Description"
-
-# 6f0b7969c38c4b60a652b8c56e860cb5
-#: ../../../src/common/doc/utilities/point_to_id.rst:42
-msgid "``geometry`` \"POINT\" geometry to be inserted."
-msgstr ""
-
-# 972b42f5a56a456584ffe992d2c9f597
-#: ../../../src/common/doc/utilities/point_to_id.rst:43
-msgid ""
-"``float8`` Snapping tolerance of disconnected edges. (in projection unit)"
-msgstr ""
-
-# 8026350c7b7b4ab9bb8a4d01a5398e92
-#: ../../../src/common/doc/utilities/point_to_id.rst:44
-msgid "``text`` Vertices table name WITH schema included."
-msgstr ""
-
-# fdb31c3aac0442fd9a79fd2e3cec8567
-#: ../../../src/common/doc/utilities/point_to_id.rst:45
-msgid "``integer`` SRID of the geometry point."
-msgstr ""
-
-# 1cb7d86e4eb54c46b998f27b7d883269
-#: ../../../src/common/doc/utilities/point_to_id.rst:47
-msgid ""
-"This function returns the id of the row that corresponds to the ``point`` "
-"geometry"
-msgstr ""
-
-# 6444a2e3a1eb4ec1b9e456bd7d566ec3
-#: ../../../src/common/doc/utilities/point_to_id.rst:49
-msgid ""
-"When the ``point`` geometry already exists in the vertices table "
-"``vertname``, it returns the corresponing ``id``."
-msgstr ""
-
-# f348861666b446b8b94833b19fc43b3a
-#: ../../../src/common/doc/utilities/point_to_id.rst:50
-msgid ""
-"When the ``point`` geometry is not found in the vertices table ``vertname``,"
-" the funcion inserts the ``point`` and returns the corresponing ``id`` of "
-"the newly created vertex."
-msgstr ""
-
-# bbc93993a9494838bb777feb3c966b2b
-#: ../../../src/common/doc/utilities/point_to_id.rst:52
-msgid ""
-"The function do not perform any checking of the parameters. Any validation "
-"has to be done before calling this function."
-msgstr ""
-
-# feb893694fe44a30b39b6671d6603125
-#: ../../../src/common/doc/utilities/point_to_id.rst:55
-msgid "History"
-msgstr "Histoire"
-
-# ac4bb20cbeeb49e8a95d92ca52981979
-#: ../../../src/common/doc/utilities/point_to_id.rst:56
-msgid "Renamed in version 2.0.0"
-msgstr "Renommé depuis la version 2.0.0"
-
-# f159557b0fd44238a8114795dbd499e6
-#: ../../../src/common/doc/utilities/point_to_id.rst:60
-msgid "See Also"
-msgstr "Voir aussi"
-
-# 44d7d6a102634aaab89b81a21117e3b4
-#: ../../../src/common/doc/utilities/point_to_id.rst:62
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-# 34d3f5b67bd04eef9a27bb0f9058f7a0
-#: ../../../src/common/doc/utilities/point_to_id.rst:63
-msgid ""
-":ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create a topology "
-"based on the geometry."
-msgstr ""
-
-# 6efeb93fdd6f461b95ba6fa218148c75
-#: ../../../src/common/doc/utilities/point_to_id.rst:64
-msgid ""
-":ref:`pgr_createTopology <pgr_create_topology>` to create a topology based "
-"on the geometry."
-msgstr ""
diff --git a/doc/i18n/fr/LC_MESSAGES/src/common/doc/utilities/quote_ident.po b/doc/i18n/fr/LC_MESSAGES/src/common/doc/utilities/quote_ident.po
deleted file mode 100644
index ac74e31..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/common/doc/utilities/quote_ident.po
+++ /dev/null
@@ -1,135 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 05:50+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# ad4f702fd7ab40f587534a31a99d703a
-#: ../../../src/common/doc/utilities/quote_ident.rst:13
-msgid "pgr_quote_ident"
-msgstr ""
-
-# a05a481e84424fde848925bc9df67822
-#: ../../../src/common/doc/utilities/quote_ident.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# 2c0d5a39de7d48a894991413895eeb1d
-#: ../../../src/common/doc/utilities/quote_ident.rst:22
-msgid ""
-"``pgr_quote_ident`` — Quotes the input text to be used as an identifier in "
-"an SQL statement string."
-msgstr ""
-
-# 81be5b43d83b4f259a8627fdbd918321
-#: ../../../src/common/doc/utilities/quote_ident.rst:24
-msgid "This function is intended for the developer's aid."
-msgstr ""
-
-# 9a208d9638b343d49e208a250552bf58
-#: ../../../src/common/doc/utilities/quote_ident.rst:28
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# 20357172c5b74450a1dd908f249e1c22
-#: ../../../src/common/doc/utilities/quote_ident.rst:30
-msgid ""
-"Returns the given identifier ``idname`` suitably quoted to be used as an "
-"identifier in an SQL statement string."
-msgstr ""
-
-# ec0d7e517b52424e83e0a39e700f6ded
-#: ../../../src/common/doc/utilities/quote_ident.rst:38
-msgid "Description"
-msgstr "Description"
-
-# 0333bd56b4d146478a759f9bec187900
-#: ../../../src/common/doc/utilities/quote_ident.rst:41
-msgid "Parameters"
-msgstr ""
-
-# 24fafacf2e084c8ebd35cc820529ddf1
-#: ../../../src/common/doc/utilities/quote_ident.rst:42
-msgid ""
-"``text`` Name of an SQL identifier. Can include ``.`` dot notation for "
-"schemas.table identifiers"
-msgstr ""
-
-# 43a32f6d513f42dda64a31f538a7cb0b
-#: ../../../src/common/doc/utilities/quote_ident.rst:44
-msgid ""
-"Returns the given string suitably quoted to be used as an identifier in an "
-"SQL statement string."
-msgstr ""
-
-# d4e0873a14da42f5b4ca3f89505e8335
-#: ../../../src/common/doc/utilities/quote_ident.rst:46
-msgid ""
-"When the identifier ``idname`` contains on or more ``.`` separators, each "
-"component is suitably quoted to be used in an SQL string."
-msgstr ""
-
-# 1842d74622194549bf87e0e37e8220c8
-#: ../../../src/common/doc/utilities/quote_ident.rst:50
-msgid "History"
-msgstr "Histoire"
-
-# 3e97c734ccfc46efaedb156bfd028772
-#: ../../../src/common/doc/utilities/quote_ident.rst:51
-msgid "New in version 2.0.0"
-msgstr "Nouveau depuis la version 2.0.0"
-
-# 4c8ad273e78c414ca99c84a290acff83
-#: ../../../src/common/doc/utilities/quote_ident.rst:55
-msgid "Examples"
-msgstr "Exemples"
-
-# c27e93edd7144c1986103e042e5b991c
-#: ../../../src/common/doc/utilities/quote_ident.rst:57
-msgid "Everything is lower case so nothing needs to be quoted."
-msgstr ""
-
-# 275c25d761794895a7a9474bd1622943
-#: ../../../src/common/doc/utilities/quote_ident.rst:76
-msgid "The column is upper case so its double quoted."
-msgstr ""
-
-# 7fc7d47e83624683a58343f8b5935b6f
-#: ../../../src/common/doc/utilities/quote_ident.rst:95
-msgid "The schema name has a capital letter so its double quoted."
-msgstr ""
-
-# 68aa84ac853546419c541739eee038e6
-#: ../../../src/common/doc/utilities/quote_ident.rst:106
-msgid "Ignores extra ``.`` separators."
-msgstr ""
-
-# 13976da7e76249c1bbbc10fb34130c59
-#: ../../../src/common/doc/utilities/quote_ident.rst:118
-msgid "See Also"
-msgstr "Voir aussi"
-
-# 9ca53a95db55462780e7fb68bba70aca
-#: ../../../src/common/doc/utilities/quote_ident.rst:120
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-# fb4b95d8a6d8403497a36238ed980b58
-#: ../../../src/common/doc/utilities/quote_ident.rst:121
-msgid ""
-":ref:`pgr_get_table_name` to get the name of the table as is stored in the "
-"postgres administration tables."
-msgstr ""
diff --git a/doc/i18n/fr/LC_MESSAGES/src/common/doc/utilities/start_point.po b/doc/i18n/fr/LC_MESSAGES/src/common/doc/utilities/start_point.po
deleted file mode 100644
index 64e3ce5..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/common/doc/utilities/start_point.po
+++ /dev/null
@@ -1,92 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 05:50+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# a24de4d0526742168dd2c7673d357cfe
-#: ../../../src/common/doc/utilities/start_point.rst:13
-msgid "pgr_startPoint"
-msgstr ""
-
-# 2878d80121d3453794e0871f34873592
-#: ../../../src/common/doc/utilities/start_point.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# ef267d5bd4dc444b9db70d9f4079f505
-#: ../../../src/common/doc/utilities/start_point.rst:22
-msgid ""
-"``pgr_startPoint`` — Returns a start point of a (multi)linestring geometry."
-msgstr ""
-
-# 57c55f6c23fd4dc59ad7f25a4a4e6f90
-#: ../../../src/common/doc/utilities/start_point.rst:24
-msgid "This function is intended for the developer's aid."
-msgstr ""
-
-# 7fb8df5ab251417bba38529aaefd457b
-#: ../../../src/common/doc/utilities/start_point.rst:28
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# 7becd53f47734fbe99a71ba8adef0d07
-# 9345f683e56b40dcb259f1ef2ea5e240
-#: ../../../src/common/doc/utilities/start_point.rst:30
-#: ../../../src/common/doc/utilities/start_point.rst:44
-msgid ""
-"Returns the geometry of the start point of the first LINESTRING of ``geom``."
-msgstr ""
-
-# f2295bc1e9ef4b08884c65ec18de9744
-#: ../../../src/common/doc/utilities/start_point.rst:38
-msgid "Description"
-msgstr "Description"
-
-# fef77a15910b4557bb253c868468c67a
-#: ../../../src/common/doc/utilities/start_point.rst:41
-msgid "Parameters"
-msgstr ""
-
-# c938ded08b8743bf9eac1b5d064e0ed0
-#: ../../../src/common/doc/utilities/start_point.rst:42
-msgid "``geometry`` Geometry of a MULTILINESTRING or LINESTRING."
-msgstr ""
-
-# 364eba92da1046889b073b64c9827bdf
-#: ../../../src/common/doc/utilities/start_point.rst:49
-msgid "History"
-msgstr "Histoire"
-
-# 62c8d013ab68473c8adda6fbfaf564e9
-#: ../../../src/common/doc/utilities/start_point.rst:50
-msgid "New in version 2.0.0"
-msgstr "Nouveau depuis la version 2.0.0"
-
-# 8e8a05a8da734bb5961b296230e53bcb
-#: ../../../src/common/doc/utilities/start_point.rst:55
-msgid "See Also"
-msgstr "Voir aussi"
-
-# 6026c7e6914a49cab16a616dd0fb6bac
-#: ../../../src/common/doc/utilities/start_point.rst:57
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-# 5b0650667c4b470691f4647d5b73f783
-#: ../../../src/common/doc/utilities/start_point.rst:58
-msgid ":ref:`pgr_end_Point` to get the end point of a (multi)linestring."
-msgstr ""
diff --git a/doc/i18n/fr/LC_MESSAGES/src/common/doc/utilities/version.po b/doc/i18n/fr/LC_MESSAGES/src/common/doc/utilities/version.po
deleted file mode 100644
index 1f585a7..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/common/doc/utilities/version.po
+++ /dev/null
@@ -1,113 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 05:50+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# cb10fa2694924ce19d909a3e1df513f1
-#: ../../../src/common/doc/utilities/version.rst:13
-msgid "pgr_version"
-msgstr ""
-
-# 135f514b10854445bd0cfa9f89f21f86
-#: ../../../src/common/doc/utilities/version.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# ee914323b4b6411ea5c157325bdfac90
-#: ../../../src/common/doc/utilities/version.rst:22
-msgid "``pgr_version`` — Query for pgRouting version information."
-msgstr "``pgr_version`` — Requête pour l'information de version de pgRouting."
-
-# 301b5989ecef437b858e054c95827d83
-#: ../../../src/common/doc/utilities/version.rst:26
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# 607aa236b6134901a0871ed5bf518253
-#: ../../../src/common/doc/utilities/version.rst:28
-msgid "Returns a table with pgRouting version information."
-msgstr "Retourne un tableau avec l'information de version pgRouting."
-
-# 6190754a1b934ee586562b0995c07bc0
-#: ../../../src/common/doc/utilities/version.rst:36
-msgid "Description"
-msgstr "Description"
-
-# b85aeaeb021647e59321f2b6c9953333
-#: ../../../src/common/doc/utilities/version.rst:38
-msgid "Returns a table with:"
-msgstr "Retourne un tableau avec :"
-
-# e5a458cace474e8babaaaff2837c160f
-#: ../../../src/common/doc/utilities/version.rst:40
-msgid "``varchar`` pgRouting version"
-msgstr "``varchar`` version de pgRouting"
-
-# 7f02654b7c3641b5a35c56c47ea63022
-#: ../../../src/common/doc/utilities/version.rst:41
-msgid "``varchar`` Git tag of pgRouting build"
-msgstr "``varchar`` étiquette Git du build pgRouting"
-
-# c50e77a54d3d4828a5ea0e89182d5f03
-#: ../../../src/common/doc/utilities/version.rst:42
-msgid "``varchar`` Git hash of pgRouting build"
-msgstr "``varchar`` hash Git du build "
-
-# ba32c01940164cfab6dec3df2cb565ed
-#: ../../../src/common/doc/utilities/version.rst:43
-msgid "``varchar`` Git branch of pgRouting build"
-msgstr "``varchar`` branche Git du build pgRouting"
-
-# 135e588dcbe144db9a806d3c5b75b88c
-#: ../../../src/common/doc/utilities/version.rst:44
-msgid "``varchar`` Boost version"
-msgstr "``varchar`` version Boost"
-
-# 7e0b5fe0384f43648b6ca7dcdd703fd6
-#: ../../../src/common/doc/utilities/version.rst:48
-msgid "History"
-msgstr "Histoire"
-
-# 3f8e572f137d472592f2abb0483e3153
-#: ../../../src/common/doc/utilities/version.rst:49
-msgid "New in version 2.0.0"
-msgstr "Nouveau depuis la version 2.0.0"
-
-# abdab1e6a00347269b027b2fedd31c15
-#: ../../../src/common/doc/utilities/version.rst:53
-msgid "Examples"
-msgstr "Exemples"
-
-# 86be3ecef9da4b22b39cfe8fc3848b92
-#: ../../../src/common/doc/utilities/version.rst:55
-msgid "Query for full version string"
-msgstr "Requête pour la version string complète "
-
-# 85c014398a004db5bb9cf5afa9515f32
-#: ../../../src/common/doc/utilities/version.rst:67
-msgid "Query for ``version`` and ``boost`` attribute"
-msgstr "Requête pour les attributs ``version`` et ``boost``"
-
-# e3b6b7e66a8e4b8698f253e26126b8af
-#: ../../../src/common/doc/utilities/version.rst:80
-msgid "See Also"
-msgstr "Voir aussi"
-
-# 73744f59f3494c4e827095b7f6ca9503
-#: ../../../src/common/doc/utilities/version.rst:82
-msgid ":ref:`pgr_versionless` to compare two version numbers"
-msgstr ""
diff --git a/doc/i18n/fr/LC_MESSAGES/src/common/doc/utilities/versionless.po b/doc/i18n/fr/LC_MESSAGES/src/common/doc/utilities/versionless.po
deleted file mode 100644
index c9a7f13..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/common/doc/utilities/versionless.po
+++ /dev/null
@@ -1,95 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 05:50+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 5209a60f43eb4ca889765b2f2855917f
-#: ../../../src/common/doc/utilities/versionless.rst:13
-msgid "pgr_versionless"
-msgstr ""
-
-# cf214511459c4e01a98c636ee93edf10
-#: ../../../src/common/doc/utilities/versionless.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# af9f449a91a94497a1a06310c12763cc
-#: ../../../src/common/doc/utilities/versionless.rst:22
-msgid "``pgr_versionless`` — Compare two version numbers."
-msgstr ""
-
-# cfa4ec4da8d143e9bb4f33521dc1f6b2
-#: ../../../src/common/doc/utilities/versionless.rst:24
-msgid "This function is intended for the developer’s aid."
-msgstr ""
-
-# 7a40ac52554840c48edaf4e3bc893f86
-#: ../../../src/common/doc/utilities/versionless.rst:27
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# 99a72026827e4e44b1b7e0b9defa52f8
-#: ../../../src/common/doc/utilities/versionless.rst:29
-msgid ""
-"Returns ``true`` if the first version number is smaller than the second "
-"version number. Otherwise returns ``false``."
-msgstr "Retourne ``true`` si le premier numéro de version est plus petit que le second numéro de version. Sinon retourne  ``false``."
-
-# b541ba956f94407fbbfa4f325152d137
-#: ../../../src/common/doc/utilities/versionless.rst:37
-msgid "Description"
-msgstr "Description"
-
-# f2b9c579402a4d529bdcf44885b7999e
-#: ../../../src/common/doc/utilities/versionless.rst:39
-msgid "``text`` first version number"
-msgstr "``text`` premier numéro de version"
-
-# ff2f3530055d46b39b083a6e013b18f1
-#: ../../../src/common/doc/utilities/versionless.rst:40
-msgid "``text`` second version number"
-msgstr "``text`` deuxième numéro de version"
-
-# aa0e1cf348454207aba6b1bd4d82ddcd
-#: ../../../src/common/doc/utilities/versionless.rst:44
-msgid "History"
-msgstr "Histoire"
-
-# 84d6600a81814c3b87c5e309a80eef62
-#: ../../../src/common/doc/utilities/versionless.rst:45
-msgid "New in version 2.0.0"
-msgstr "Nouveau depuis la version 2.0.0"
-
-# 0dbed91f114f41a2a1ccbffbb4886a47
-#: ../../../src/common/doc/utilities/versionless.rst:49
-msgid "Examples"
-msgstr "Exemples"
-
-# cd2ca34fb88c4024ac73c6c7076b3de2
-#: ../../../src/common/doc/utilities/versionless.rst:62
-msgid "See Also"
-msgstr "Voir aussi"
-
-# ac8a4a1b5fd0499e910d1f9c088d0d25
-#: ../../../src/common/doc/utilities/versionless.rst:64
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-# f733092d16de4d7b9bdf31b6bdae27d3
-#: ../../../src/common/doc/utilities/versionless.rst:65
-msgid ":ref:`pgr_version` to get the current version of pgRouting."
-msgstr ""
diff --git a/doc/i18n/fr/LC_MESSAGES/src/dijkstra/doc/index.po b/doc/i18n/fr/LC_MESSAGES/src/dijkstra/doc/index.po
deleted file mode 100644
index 95a79f6..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/dijkstra/doc/index.po
+++ /dev/null
@@ -1,183 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:15+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# a6876a00bcae42fdb134f789dabd19d7
-#: ../../../src/dijkstra/doc/index.rst:13
-msgid "pgr_dijkstra - Shortest Path Dijkstra"
-msgstr "pgr_dijkstra - Plus court chemin Dijkstra"
-
-# 5ba32c2871ea4858b8bfd351b4a01f34
-#: ../../../src/dijkstra/doc/index.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# eb4931f6253f4daea164710031c062f7
-#: ../../../src/dijkstra/doc/index.rst:22
-msgid "``pgr_dijkstra`` — Returns the shortest path using Dijkstra algorithm."
-msgstr "``pgr_dijkstra`` — Retourne le plus court chemin en utilisant l'algorithme Dijkstra."
-
-# aad22c43d6da4f658543ad79e2b4789c
-#: ../../../src/dijkstra/doc/index.rst:26
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# d23c857c49554c10a6c99810575627e1
-#: ../../../src/dijkstra/doc/index.rst:28
-msgid ""
-"Dijkstra's algorithm, conceived by Dutch computer scientist Edsger Dijkstra "
-"in 1956. It is a graph search algorithm that solves the single-source "
-"shortest path problem for a graph with non-negative edge path costs, "
-"producing a shortest path tree. Returns a set of :ref:`pgr_costResult "
-"<type_cost_result>` (seq, id1, id2, cost) rows, that make up a path."
-msgstr "L'algorithme Dijkstra, conçu par l'informaticien Néerlandais Edsger Dijkstra en 1956. C'est un algorithme de recherche de graphe qui résout le problème de plus court chemin à source unique pour un graphe à coûts de chemin non négatifs, produisant un arbre de plus court chemin. Retourne un ensemble de lignes :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows,  qui fabriquent un chemin."
-
-# 9b3ef7764a8a4aec8be3fd97d0f78855
-#: ../../../src/dijkstra/doc/index.rst:37
-msgid "Description"
-msgstr "Description"
-
-# 8f12864ae55a48e6a49e9a5c7f232731
-#: ../../../src/dijkstra/doc/index.rst:39
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr "une requête SQL, qui devrait retourner un ensemble de lignes avec les colonnes suivantes :"
-
-# 883dbba5f5b94668af12a1c3d280804f
-#: ../../../src/dijkstra/doc/index.rst:46
-msgid "``int4`` identifier of the edge"
-msgstr "``int4`` identifiant de l'arête"
-
-# 64eaa5363cc64362829f60de0f81517d
-#: ../../../src/dijkstra/doc/index.rst:47
-msgid "``int4`` identifier of the source vertex"
-msgstr "``int4`` identifiant du sommet source"
-
-# 849ed774dfa442cf86f3d184c820a717
-#: ../../../src/dijkstra/doc/index.rst:48
-msgid "``int4`` identifier of the target vertex"
-msgstr "``int4`` identifiant du sommet cible"
-
-# 2c000dd6564240d09f3533f4b2411029
-#: ../../../src/dijkstra/doc/index.rst:49
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr "``float8`` valeur, du coût de l'arête traversée. Un coût négatif va prévenir l'arête d'être insérée dans le graphe."
-
-# 13bbd212a94840bbbdd82ba008836790
-#: ../../../src/dijkstra/doc/index.rst:50
-msgid ""
-"``float8`` (optional) the cost for the reverse traversal of the edge. This "
-"is only used when the ``directed`` and ``has_rcost`` parameters are ``true``"
-" (see the above remark about negative costs)."
-msgstr ""
-
-# 42be1660a80b461ba4e56f070cde4c04
-#: ../../../src/dijkstra/doc/index.rst:52
-msgid "``int4`` id of the start point"
-msgstr "``int4`` id du point de départ"
-
-# 95547c9e5de74556a208d7c0a9e58772
-#: ../../../src/dijkstra/doc/index.rst:53
-msgid "``int4`` id of the end point"
-msgstr "``int4`` id du point final"
-
-# 89e9934bdbfd42aabf98993066529f92
-#: ../../../src/dijkstra/doc/index.rst:54
-msgid "``true`` if the graph is directed"
-msgstr "``true`` si le graphe est dirigé"
-
-# 03f039cd5de34a3f99a5871456ed269f
-#: ../../../src/dijkstra/doc/index.rst:55
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr "si ``true``,  la colonne ``reverse_cost`` du SQL générant l'ensemble des lignes va être utilisé pour le coût de la traversée de l'arête dans la direction opposée."
-
-# 2c03ff621dfb4e11a0f215844b6cd41c
-#: ../../../src/dijkstra/doc/index.rst:57
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr "Retourne un ensemble de :ref:`type_cost_result`:"
-
-# f43f68991432480385556098be3f32ab
-#: ../../../src/dijkstra/doc/index.rst:59
-msgid "row sequence"
-msgstr "séquence de ligne"
-
-# b5cd0a7c7e1943e2934f2d315fd0d58d
-#: ../../../src/dijkstra/doc/index.rst:60
-msgid "node ID"
-msgstr "ID noeud"
-
-# ae466d86ce304295afc5b1f956c97732
-#: ../../../src/dijkstra/doc/index.rst:61
-msgid "edge ID (``-1`` for the last row)"
-msgstr "ID arête (``-1`` pour la dernière ligne)"
-
-# d74ec405ac62479a93ddd9070e1cfead
-#: ../../../src/dijkstra/doc/index.rst:62
-msgid "cost to traverse from ``id1`` using ``id2``"
-msgstr "coût pour traverser à partir de ``id1`` en utilisant ``id2``"
-
-# d45859a53252493eaea97bdbe6c8936f
-#: ../../../src/dijkstra/doc/index.rst:66
-msgid "History"
-msgstr "Histoire"
-
-# 41349c9ad4574d009aa7375219beab0c
-#: ../../../src/dijkstra/doc/index.rst:67
-msgid "Renamed in version 2.0.0"
-msgstr "Renommé depuis la version 2.0.0"
-
-# d1ebc8bc726844eab5795b5dedc18fe0
-#: ../../../src/dijkstra/doc/index.rst:71
-msgid "Examples"
-msgstr "Exemples"
-
-# 5ea59cfbc4b240c29bc8268d4a36cdb4
-#: ../../../src/dijkstra/doc/index.rst:73
-msgid "Without ``reverse_cost``"
-msgstr "Sans ``reverse_cost``"
-
-# a37bcf6c164b442ca94ded3b2df83f61
-#: ../../../src/dijkstra/doc/index.rst:92
-msgid "With ``reverse_cost``"
-msgstr "Avec ``reverse_cost``"
-
-# 1013877e3d214e6f8d87c5747e261b20
-#: ../../../src/dijkstra/doc/index.rst:110
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "Les requêtes utilisent le réseau :ref:`sampledata`."
-
-# 7097292ec353427d90c60607583c42c2
-#: ../../../src/dijkstra/doc/index.rst:114
-msgid "See Also"
-msgstr "Voir aussi"
-
-# d98cbcb325484a81bcb0e6b0afd3928c
-#: ../../../src/dijkstra/doc/index.rst:116
-msgid ":ref:`type_cost_result`"
-msgstr ":ref:`type_cost_result`"
-
-# cc938bae0828409fb0efae9ad098fa4d
-#: ../../../src/dijkstra/doc/index.rst:117
-msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
-msgstr "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
diff --git a/doc/i18n/fr/LC_MESSAGES/src/driving_distance/doc/dd_alphashape.po b/doc/i18n/fr/LC_MESSAGES/src/driving_distance/doc/dd_alphashape.po
deleted file mode 100644
index 0ccc992..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/driving_distance/doc/dd_alphashape.po
+++ /dev/null
@@ -1,142 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:14+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# cb2e05bbf556427191f8dd5d87c670db
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:13
-msgid "pgr_alphaShape"
-msgstr ""
-
-# cd5cca6682b34a85b72fd0b7c90d739b
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# 9a0ca65720774711aefd2d017e4487e9
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:22
-msgid "``pgr_alphashape`` — Core function for alpha shape computation."
-msgstr "``pgr_alphashape`` — Fonction Core pour le calcul de la forme alpha"
-
-# 525edb2bc28a4e77804ac30781cc3dc5
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:26
-msgid ""
-"This function should not be used directly. Use :ref:`pgr_drivingDistance "
-"<pgr_driving_distance>` instead."
-msgstr "Cette fonction ne devrait pas être utilisée directement. Utilisez :ref:`pgr_drivingDistance <pgr_driving_distance>` à la place."
-
-# 96d2ea88d3bf44a793219826f7fddda3
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:30
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# 4b5074bd7bc64d1c89dcc1e5b250c5f0
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:32
-msgid ""
-"Returns a table with (x, y) rows that describe the vertices of an alpha "
-"shape."
-msgstr "Retourne un tableau avec des lignes (x, y) qui décrivent les sommets d'une forme alpha."
-
-# eed5f82ec9924367b7a2c7ce8ce7704a
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:40
-msgid "Description"
-msgstr "Description"
-
-# 3607e16f8fe24de6a2226bb43a73dadd
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:42
-msgid ""
-"``text`` a SQL query, which should return a set of rows with the following "
-"columns:"
-msgstr "``text`` une requête SQL, qui doit retourner un ensemble de lignes avec les colonnes suivantes :"
-
-# afd24b1ef69d439691025ff955e63f25
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:48
-msgid "``int4`` identifier of the vertex"
-msgstr "``int4`` identifiant du sommet"
-
-# c4ec83f59d634b458e6e04dc6822cc62
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:49
-msgid "``float8`` x-coordinate"
-msgstr "coordonnée x ``float8``"
-
-# c78115c69ec645ceb3a8de6f3a97ebdc
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:50
-msgid "``float8`` y-coordinate"
-msgstr "coordonnée y ``float8``"
-
-# 63cffe47a71d462cae8c09a10473bdaf
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:53
-msgid "Returns a vertex record for each row :"
-msgstr "Retourne un enregistrement sommet  pour chaque ligne :"
-
-# 385ec313cc69493989a17eecd282d5b4
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:55
-msgid "x-coordinate"
-msgstr "coordonnée x"
-
-# 2eb9452ee2864540b535c7be538a73f0
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:56
-msgid "y-coordinate"
-msgstr "coordonnée y"
-
-# bf1e04aab9ed4558aeb274dbc93fc476
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:60
-msgid "History"
-msgstr "Histoire"
-
-# 6301d43186dc47ca9c0925f563c2b4ee
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:61
-msgid "Renamed in version 2.0.0"
-msgstr "Renommé depuis la version 2.0.0"
-
-# 2dcc599a683743b09eb440895c823584
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:65
-msgid "Examples"
-msgstr "Exemples"
-
-# 28059fce0d66461c88851c2efa8995b4
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:66
-msgid ""
-"In the alpha shape code we have no way to control the order of the points so"
-" the actual output you might get could be similar but different. The simple "
-"query is followed by a more complex one that constructs a polygon and "
-"computes the areas of it. This should be the same as the result on your "
-"system. We leave the details of the complex query to the reader as an "
-"exercise if they wish to decompose it into understandable pieces or to just "
-"copy and paste it into a SQL window to run."
-msgstr ""
-
-# cea925c912c14e2bae7b67a9493f67d0
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:119
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "Les requêtes utilisent le réseau :ref:`sampledata`."
-
-# b737b880282d447b840b23e77501d03b
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:123
-msgid "See Also"
-msgstr "Voir aussi"
-
-# 79772e0e113745068a7c48d32ae903ee
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:125
-msgid ":ref:`pgr_driving_distance` - Driving Distance"
-msgstr ""
-
-# 98ad4c5291f04893a9e5a6f616ce2d11
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:126
-msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
-msgstr ""
diff --git a/doc/i18n/fr/LC_MESSAGES/src/driving_distance/doc/dd_driving_distance.po b/doc/i18n/fr/LC_MESSAGES/src/driving_distance/doc/dd_driving_distance.po
deleted file mode 100644
index 6ff0724..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/driving_distance/doc/dd_driving_distance.po
+++ /dev/null
@@ -1,199 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 05:50+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 49d83b442baa4f9981fa13ff4abc3c6b
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:13
-msgid "pgr_drivingDistance"
-msgstr ""
-
-# ce7edabbdab546a3a318f86316d0abc6
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# 7a89c6c2c0ca404eb82afe9d6de38db2
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:22
-msgid ""
-"``pgr_drivingDistance`` - Returns the driving distance from a start node."
-msgstr "``pgr_drivingDistance`` - Retourne la distance de conduite à partir d'un point de départ."
-
-# 5afa2748d4964e35b9cfcf71ba431015
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:26
-msgid ""
-"Requires :ref:`to build pgRouting <build>` with support for Driving "
-"Distance."
-msgstr "Requiert :ref:`to build pgRouting <build>` avec support de la Distance de conduite."
-
-# 91fbeb2cd46146c4bb9f86b8600faa87
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:30
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# cffb1438aa5d43d8b1792ec1d53769ae
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:32
-msgid ""
-"This function computes a Dijkstra shortest path solution them extracts the "
-"cost to get to each node in the network from the starting node. Using these "
-"nodes and costs it is possible to compute constant drive time polygons. "
-"Returns a set of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, "
-"cost) rows, that make up a list of accessible points."
-msgstr "Cette fonction calcule une solution de plus court chemin Dijkstra qui extracte le coût pour atteindre chaque noeud dans le réseau à partir du nœud de départ. En utilisand ces noeuds et coûts, il est possible de calculer des polygones de temps de conduite. Retourne un ensemble de lignes :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost), qui génèrent une liste de points accessibles."
-
-# b2253b753da44597b1d449509c96ca75
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:41
-msgid "Description"
-msgstr "Description"
-
-# f187f52a62034b2cae8bb00b570bea15
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:43
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr "une requête SQL, qui devrait retourner un ensemble de lignes avec les colonnes suivantes :"
-
-# 85949c2cc0334abbbb500996221eeba0
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:50
-msgid "``int4`` identifier of the edge"
-msgstr "``int4`` identifiant de l'arête"
-
-# 35a904f5f23643b7a6e7e457b8f05846
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:51
-msgid "``int4`` identifier of the source vertex"
-msgstr "``int4`` identifiant du sommet source"
-
-# 815615381d8d43989567cc15d154736a
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:52
-msgid "``int4`` identifier of the target vertex"
-msgstr "``int4`` identifiant du sommet cible"
-
-# 5c9e142543534a0bbc7668603ad465b4
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:53
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr "``float8`` valeur, du coût de l'arête traversée. Un coût négatif va prévenir l'arête d'être insérée dans le graphe."
-
-# fa3ca524dbe24d47891420e71caa324c
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:54
-msgid ""
-"(optional) the cost for the reverse traversal of the edge. This is only used"
-" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
-"above remark about negative costs)."
-msgstr "(optionnel) le coût pour la traversée inverse de l'arête. Ceci est seulement utilisé quand les paramètres ``directed`` et ``has_rcost`` sont ``true`` (voir la remarque ci-dessus sur les coûts négatifs)."
-
-# c9e1f4debc904118ab177e2b4427d364
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:56
-msgid "``int4`` id of the start point"
-msgstr "``int4`` id du point de départ"
-
-# 2da59a7b4e0b4b6fbac510bfe0adbd1e
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:57
-msgid ""
-"``float8`` value in edge cost units (not in projection units - they might be"
-" different)."
-msgstr "``float8`` valeur dans les unités de coûts de l'arête (pas forcément dans les unités de projection - ils peuvent être différents)."
-
-# b09a53cf12bd49a09659eb105e2e7d2a
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:58
-msgid "``true`` if the graph is directed"
-msgstr "``true`` si le graphe est dirigé"
-
-# e771178ac5514ae6bc7cf3dcccfe5408
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:59
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr "si ``true``,  la colonne ``reverse_cost`` du SQL générant l'ensemble des lignes va être utilisé pour le coût de la traversée de l'arête dans la direction opposée."
-
-# 5770f80a74ec49cf8f9e11b9fd082533
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:61
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr "Retourne un ensemble de :ref:`type_cost_result`:"
-
-# ed0dbd0e73234b70827a7663d390886d
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:63
-msgid "row sequence"
-msgstr "séquence de ligne"
-
-# dc9caee8fdc84c45bb1ebf3c046a436d
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:64
-msgid "node ID"
-msgstr "ID noeud"
-
-# ae36b60db435425b8a4bfa4ada217dd7
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:65
-msgid "edge ID (this is probably not a useful item)"
-msgstr "ID arête (probablement pas un élément utile)"
-
-# ee9063c6bb49444e94e08af7eedbb401
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:66
-msgid "cost to get to this node ID"
-msgstr "coût pour aller à cet ID noeud"
-
-# 3bb717c83f2d4993a4b1704a88749ee9
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:70
-msgid ""
-"You must reconnect to the database after ``CREATE EXTENSION pgrouting``. "
-"Otherwise the function will return ``Error computing path: std::bad_alloc``."
-msgstr "Vous devez vous reconnecter à la base de données après ``CREATE EXTENSION pgrouting``. Sinon la fonction va retourner ``Error computing path: std::bad_alloc``."
-
-# 306f0588bb5148dab4d4a97e5bb35889
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:74
-msgid "History"
-msgstr "Histoire"
-
-# cc8f5e8248314554bd506fc27f7208ed
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:75
-msgid "Renamed in version 2.0.0"
-msgstr "Renommé depuis la version 2.0.0"
-
-# 9db1973c0a0b4420afe780fa3d4b3d0f
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:79
-msgid "Examples"
-msgstr "Exemples"
-
-# 3f34e359dbd242b6a82b49b0beb2acd5
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:81
-msgid "Without ``reverse_cost``"
-msgstr "Sans ``reverse_cost``"
-
-# f58a8bec8b9447f59bf31eb2d52c7782
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:101
-msgid "With ``reverse_cost``"
-msgstr "Avec ``reverse_cost``"
-
-# f6d9ddd77a7c48dcaafa2cd1225d8e27
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:121
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "Les requêtes utilisent le réseau :ref:`sampledata`."
-
-# 15ad7ce30a424139b00e9874b4461215
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:125
-msgid "See Also"
-msgstr "Voir aussi"
-
-# 04113586118441f6b13f5bf83f5fa224
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:127
-msgid ":ref:`pgr_alphashape` - Alpha shape computation"
-msgstr ""
-
-# b474eeeca7284f5f983f498713f1640f
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:128
-msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
-msgstr ""
diff --git a/doc/i18n/fr/LC_MESSAGES/src/driving_distance/doc/dd_points_as_polygon.po b/doc/i18n/fr/LC_MESSAGES/src/driving_distance/doc/dd_points_as_polygon.po
deleted file mode 100644
index 13c8a6b..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/driving_distance/doc/dd_points_as_polygon.po
+++ /dev/null
@@ -1,123 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:14+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# a2329478f830474e9819c418ae391538
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:13
-msgid "pgr_pointsAsPolygon"
-msgstr ""
-
-# df6c5bd4620d47ae9f8682195aca1e18
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# 968dbf3147554bcc994e903e5917a0bd
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:22
-msgid ""
-"``pgr_pointsAsPolygon`` — Draws an alpha shape around given set of points."
-msgstr "``pgr_pointsAsPolygon`` — Dessine une forme alpha à partir d'un ensemble de points."
-
-# 0b81c4a0e03d47938cd256882a6facac
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:26
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# 568b6a3cf23a4a7980b7796df73d334b
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:28
-msgid "Returns the alpha shape as polygon geometry."
-msgstr "Retourner la forme alpha comme polygone geometry."
-
-# 240f6c0c9ac848a2b1815408c264a3d7
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:36
-msgid "Description"
-msgstr "Description"
-
-# bfa10edae1114295852086c42f84d811
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:38
-msgid ""
-"``text`` a SQL query, which should return a set of rows with the following "
-"columns:"
-msgstr "``text`` une requête SQL, qui doit retourner un ensemble de lignes avec les colonnes suivantes :"
-
-# d3ca4ae81d3e4a709a2fda2d60f23946
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:44
-msgid "``int4`` identifier of the vertex"
-msgstr "``int4`` identifiant du sommet"
-
-# 10e342dfa5274ea89ea284bd657b2469
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:45
-msgid "``float8`` x-coordinate"
-msgstr "coordonnée x ``float8``"
-
-# d36090e578224b30b065a3c28f26d565
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:46
-msgid "``float8`` y-coordinate"
-msgstr "coordonnée y ``float8``"
-
-# 1029622f3ac34a30abc0f3babfe7118f
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:49
-msgid "Returns a polygon geometry."
-msgstr "Retourne une géométrie polygone."
-
-# 49392543fb984b5f922e683b9ba560c5
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:53
-msgid "History"
-msgstr "Histoire"
-
-# b00e0e03870244cca7aa9e1c81bad9c1
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:54
-msgid "Renamed in version 2.0.0"
-msgstr "Renommé depuis la version 2.0.0"
-
-# f8001d60b6d54b67afc641f38b8e5b4a
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:58
-msgid "Examples"
-msgstr "Exemples"
-
-# 7e01fc6f880549e7b7bde01255cc2811
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:59
-msgid ""
-"In the following query there is not way to control which point in the "
-"polygon is the first in the list, so you may get similar but different "
-"results than the following which are also correct. Each of the "
-"pgr_pointsAsPolygon queries below is followed by one the compute the area of"
-" the polygon. This area should remain constant regardles of the order of the"
-" points making up the polygon."
-msgstr ""
-
-# 1deae2c2bb624110980cf832e66993d9
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:93
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "Les requêtes utilisent le réseau :ref:`sampledata`."
-
-# 801871cf3dd94fd292387e49941223e3
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:97
-msgid "See Also"
-msgstr "Voir aussi"
-
-# abc4c217086645fe88ff21568ab13c50
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:99
-msgid ":ref:`pgr_driving_distance` - Driving Distance"
-msgstr ""
-
-# 51bae94aaf75403a81353100c953d805
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:100
-msgid ":ref:`pgr_alphashape` - Alpha shape computation"
-msgstr ""
diff --git a/doc/i18n/fr/LC_MESSAGES/src/driving_distance/doc/index.po b/doc/i18n/fr/LC_MESSAGES/src/driving_distance/doc/index.po
deleted file mode 100644
index 77bee4d..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/driving_distance/doc/index.po
+++ /dev/null
@@ -1,200 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-25 07:03+0000\n"
-"Last-Translator: erikap\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 0979e1fbbc9641b5ade79d4c28a2473a
-#: ../../../src/driving_distance/doc/index.rst:13
-msgid "pgr_drivingDistance - Driving Distance"
-msgstr "pgr_drivingDistance - Distance de conduite"
-
-# 7b3011e2af744bfdb31fc2960aaa4664
-#: ../../../src/driving_distance/doc/index.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# 3c08eb6932d34c2ca49bd0889566e8e3
-#: ../../../src/driving_distance/doc/index.rst:22
-msgid ""
-"``pgr_drivingDistance`` - Returns the driving distance from a start node."
-msgstr "``pgr_drivingDistance`` - Retourne la distance de conduite à partir d'un point de départ."
-
-# 726c1fdc95044e52b22d50c0f0b766fb
-#: ../../../src/driving_distance/doc/index.rst:26
-msgid ""
-"Requires :ref:`to build pgRouting <build>` with support for Driving "
-"Distance."
-msgstr "Requiert :ref:`to build pgRouting <build>` avec support de la Distance de conduite."
-
-# ce1ce7f3f6c9425ab9c4a1aae81baeb3
-#: ../../../src/driving_distance/doc/index.rst:30
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# 12a9eb19a15e4f42acd14d76a3847c02
-#: ../../../src/driving_distance/doc/index.rst:32
-msgid ""
-"This function computes a Dijkstra shortest path solution them extracts the "
-"cost to get to each node in the network from the starting node. Using these "
-"nodes and costs it is possible to compute constant drive time polygons. "
-"Returns a set of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, "
-"cost) rows, that make up a list of accessible points."
-msgstr "Cette fonction calcule une solution de plus court chemin Dijkstra qui extracte le coût pour atteindre chaque noeud dans le réseau à partir du nœud de départ. En utilisand ces noeuds et coûts, il est possible de calculer des polygones de temps de conduite. Retourne un ensemble de lignes :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost), qui génèrent une liste de points accessibles."
-
-# df9cee3f069447debee18ff47cce02f8
-#: ../../../src/driving_distance/doc/index.rst:41
-msgid "Description"
-msgstr "Description"
-
-# fda5e314fd1b46c6a96ad0b8a241ae12
-#: ../../../src/driving_distance/doc/index.rst:43
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr "une requête SQL, qui devrait retourner un ensemble de lignes avec les colonnes suivantes :"
-
-# 9621e3c82e434709bfcb9df2a0febdee
-#: ../../../src/driving_distance/doc/index.rst:50
-msgid "``int4`` identifier of the edge"
-msgstr "``int4`` identifiant de l'arête"
-
-# b0b6976ee3d3495ca2e27a1359c6b07c
-#: ../../../src/driving_distance/doc/index.rst:51
-msgid "``int4`` identifier of the source vertex"
-msgstr "``int4`` identifiant du sommet source"
-
-# fec5e9d5cb5e438ea2c5f0feecd1aa03
-#: ../../../src/driving_distance/doc/index.rst:52
-msgid "``int4`` identifier of the target vertex"
-msgstr "``int4`` identifiant du sommet cible"
-
-# ec8176b8c36e447ebd1f0995dadd973d
-#: ../../../src/driving_distance/doc/index.rst:53
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr "``float8`` valeur, du coût de l'arête traversée. Un coût négatif va prévenir l'arête d'être insérée dans le graphe."
-
-# 9c3f6ea025a84d0a8ac13358a10ed166
-#: ../../../src/driving_distance/doc/index.rst:54
-msgid ""
-"(optional) the cost for the reverse traversal of the edge. This is only used"
-" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
-"above remark about negative costs)."
-msgstr "(optionnel) le coût pour la traversée inverse de l'arête. Ceci est seulement utilisé quand les paramètres ``directed`` et ``has_rcost`` sont ``true`` (voir la remarque ci-dessus sur les coûts négatifs)."
-
-# 32fef696ffaf450fb041bf2ebc1fc270
-#: ../../../src/driving_distance/doc/index.rst:56
-msgid "``int4`` id of the start point"
-msgstr "``int4`` id du point de départ"
-
-# 420175e68aac485f86544b6aa6cae550
-#: ../../../src/driving_distance/doc/index.rst:57
-msgid ""
-"``float8`` value in edge cost units (not in projection units - they might be"
-" different)."
-msgstr "``float8`` valeur dans les unités de coûts de l'arête (pas forcément dans les unités de projection - ils peuvent être différents)."
-
-# a7f57fdcfe0544e69a4cde06a7344fb6
-#: ../../../src/driving_distance/doc/index.rst:58
-msgid "``true`` if the graph is directed"
-msgstr "``true`` si le graphe est dirigé"
-
-# d72d8b646a964dea88cd97d711c69e94
-#: ../../../src/driving_distance/doc/index.rst:59
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr "si ``true``,  la colonne ``reverse_cost`` du SQL générant l'ensemble des lignes va être utilisé pour le coût de la traversée de l'arête dans la direction opposée."
-
-# ef1631b756b54c3aa2b66ae0abfad917
-#: ../../../src/driving_distance/doc/index.rst:61
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr "Retourne un ensemble de :ref:`type_cost_result`:"
-
-# e440be6d227945fa904c13d07855a863
-#: ../../../src/driving_distance/doc/index.rst:63
-msgid "row sequence"
-msgstr "séquence de ligne"
-
-# bfe1245d3dde49048c4e9bf715508e92
-#: ../../../src/driving_distance/doc/index.rst:64
-msgid "node ID"
-msgstr "ID noeud"
-
-# 401535e148ae4023aefb138c6f8ff762
-#: ../../../src/driving_distance/doc/index.rst:65
-msgid "edge ID (this is probably not a useful item)"
-msgstr "ID arête (probablement pas un élément utile)"
-
-# 3a2b1d8c38434024b2edd02add5bb1fc
-#: ../../../src/driving_distance/doc/index.rst:66
-msgid "cost to get to this node ID"
-msgstr "coût pour aller à cet ID noeud"
-
-# 1d8dc027684e453f9a61e3e3f12ee255
-#: ../../../src/driving_distance/doc/index.rst:70
-msgid ""
-"You must reconnect to the database after ``CREATE EXTENSION pgrouting``. "
-"Otherwise the function will return ``Error computing path: std::bad_alloc``."
-msgstr "Vous devez vous reconnecter à la base de données après ``CREATE EXTENSION pgrouting``. Sinon la fonction va retourner ``Error computing path: std::bad_alloc``."
-
-# a61d60a110d54bc0a6930cab19c3ce24
-#: ../../../src/driving_distance/doc/index.rst:74
-msgid "History"
-msgstr "Histoire"
-
-# f2e8e48820a54015ab1b6a85136df5f0
-#: ../../../src/driving_distance/doc/index.rst:75
-msgid "Renamed in version 2.0.0"
-msgstr "Renommé depuis la version 2.0.0"
-
-# 817cc13bb697434e9f0803ed3f365934
-#: ../../../src/driving_distance/doc/index.rst:79
-msgid "Examples"
-msgstr "Exemples"
-
-# 82aec7db1ea043b28641f4963d13763b
-#: ../../../src/driving_distance/doc/index.rst:81
-msgid "Without ``reverse_cost``"
-msgstr "Sans ``reverse_cost``"
-
-# ac2a8b6a32a24b6095a9fb31fce4ebe0
-#: ../../../src/driving_distance/doc/index.rst:101
-msgid "With ``reverse_cost``"
-msgstr "Avec ``reverse_cost``"
-
-# 0d7631d9310b438c91153c3dd1b24a5b
-#: ../../../src/driving_distance/doc/index.rst:121
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "Les requêtes utilisent le réseau :ref:`sampledata`."
-
-# eed359d1899540fab05b3a4dc12fcaa1
-#: ../../../src/driving_distance/doc/index.rst:125
-msgid "See Also"
-msgstr "Voir aussi"
-
-# affd024607f942fb927cdf15975a7d4d
-#: ../../../src/driving_distance/doc/index.rst:127
-msgid ":ref:`pgr_points_as_polygon`"
-msgstr ":ref:`pgr_points_as_polygon`"
-
-# 5809d5028efc4d909ba300c75482cb61
-#: ../../../src/driving_distance/doc/index.rst:128
-msgid ":ref:`pgr_alphashape`"
-msgstr ":ref:`pgr_alphashape`"
diff --git a/doc/i18n/fr/LC_MESSAGES/src/kdijkstra/doc/index.po b/doc/i18n/fr/LC_MESSAGES/src/kdijkstra/doc/index.po
deleted file mode 100644
index e5e82a5..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/kdijkstra/doc/index.po
+++ /dev/null
@@ -1,231 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:14+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 36e2253743a8455dbfbf75b26155205f
-#: ../../../src/kdijkstra/doc/index.rst:13
-msgid "pgr_kDijkstra - Mutliple destination Shortest Path Dijkstra"
-msgstr "pgr_kDijkstra - Plus court chemin Dijkstra à multiples destinations"
-
-# 9f432bf1623d4a299d50ff492edbd66b
-#: ../../../src/kdijkstra/doc/index.rst:21
-msgid "Name"
-msgstr "Nom"
-
-# 57c34a235f7a4cea8458d98a50a54e77
-#: ../../../src/kdijkstra/doc/index.rst:23
-msgid ""
-"``pgr_kdijkstraCost`` - Returns the costs for K shortest paths using "
-"Dijkstra algorithm."
-msgstr "``pgr_kdijkstraCost`` - Retourne les coûts pour les K plus courts chemins utilisant l'algoithme Dijkstra."
-
-# ce7c4be9a502473591591e4d330d46e7
-#: ../../../src/kdijkstra/doc/index.rst:24
-msgid ""
-"``pgr_kdijkstraPath`` - Returns the paths for K shortest paths using "
-"Dijkstra algorithm."
-msgstr "``pgr_kdijkstraPath`` - Retourne les chemins pour les K plus courts chemins en utilisant l'algorithme Dijkstra."
-
-# 130c100b24ac47d4afd3b8ae17ea1335
-#: ../../../src/kdijkstra/doc/index.rst:28
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# 1b2f7dd687d84d76bbc57fc3ad8ed5ec
-#: ../../../src/kdijkstra/doc/index.rst:30
-msgid ""
-"These functions allow you to have a single start node and multiple "
-"destination nodes and will compute the routes to all the destinations from "
-"the source node. Returns a set of :ref:`pgr_costResult3 <type_cost_result3>`"
-" or :ref:`pgr_costResult3 <type_cost_result3>`. ``pgr_kdijkstraCost`` "
-"returns one record for each destination node and the cost is the total code "
-"of the route to that node. ``pgr_kdijkstraPath`` returns one record for "
-"every edge in that path from source to destination and the cost is to "
-"traverse that edge."
-msgstr "Ces fonctions vous autorisent à avoir un unique nœud de départ et des nœuds de destination multiple et va calculer les routes pour toutes les destinations depuis le noeud source. Retourne un ensemble de :ref:`pgr_costResult3 <type_cost_result3>` ou :ref:`pgr_costResult3 <type_cost_result3>`. ``pgr_kdijkstraCost`` Retourne un enregistrement pour chaque nœud et le coût est le coût total de la route vers ce noeud.  ``pgr_kdijkstraPath`` retourne un enregistrement pour chaque nœud da [...]
-
-# 06379d79c78b4c9bb92226bc66c58c3f
-#: ../../../src/kdijkstra/doc/index.rst:42
-msgid "Description"
-msgstr "Description"
-
-# 84671f541e384cf79360df9e260a5f52
-#: ../../../src/kdijkstra/doc/index.rst:44
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr "une requête SQL, qui devrait retourner un ensemble de lignes avec les colonnes suivantes :"
-
-# adccb52524354a6c92d9d45edb967dc0
-#: ../../../src/kdijkstra/doc/index.rst:51
-msgid "``int4`` identifier of the edge"
-msgstr "``int4`` identifiant de l'arête"
-
-# 5b2a072be67f471a8ab0c6b3daddcc48
-#: ../../../src/kdijkstra/doc/index.rst:52
-msgid "``int4`` identifier of the source vertex"
-msgstr "``int4`` identifiant du sommet source"
-
-# d00470fb22ae4294a3cf56db3d064839
-#: ../../../src/kdijkstra/doc/index.rst:53
-msgid "``int4`` identifier of the target vertex"
-msgstr "``int4`` identifiant du sommet cible"
-
-# 4bdbc59e5d2d46ba94031caa56975d17
-#: ../../../src/kdijkstra/doc/index.rst:54
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr "``float8`` valeur, du coût de l'arête traversée. Un coût négatif va prévenir l'arête d'être insérée dans le graphe."
-
-# 569cecbec8e34fa9942c4bcf4ce0c6a4
-#: ../../../src/kdijkstra/doc/index.rst:55
-msgid ""
-"(optional) the cost for the reverse traversal of the edge. This is only used"
-" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
-"above remark about negative costs)."
-msgstr "(optionnel) le coût pour la traversée inverse de l'arête. Ceci est seulement utilisé quand les paramètres ``directed`` et ``has_rcost`` sont ``true`` (voir la remarque ci-dessus sur les coûts négatifs)."
-
-# b3c8762d18e14a65b4d45ca5b654dabd
-#: ../../../src/kdijkstra/doc/index.rst:57
-msgid "``int4`` id of the start point"
-msgstr "``int4`` id du point de départ"
-
-# 552184e10f0940f09327b71d0a2a5293
-#: ../../../src/kdijkstra/doc/index.rst:58
-msgid "``int4[]`` an array of ids of the end points"
-msgstr "``int4[]`` un tableau d'ids des points finaux"
-
-# 6bee551c7fae494d9429ddf6404f457a
-#: ../../../src/kdijkstra/doc/index.rst:59
-msgid "``true`` if the graph is directed"
-msgstr "``true`` si le graphe est dirigé"
-
-# c79e8fecdbb94d6f836a2fb692d24fea
-#: ../../../src/kdijkstra/doc/index.rst:60
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr "si ``true``,  la colonne ``reverse_cost`` du SQL générant l'ensemble des lignes va être utilisé pour le coût de la traversée de l'arête dans la direction opposée."
-
-# fe741d49c0f94473971ebcad7951456b
-#: ../../../src/kdijkstra/doc/index.rst:63
-msgid "``pgr_kdijkstraCost`` returns set of :ref:`type_cost_result`:"
-msgstr "``pgr_kdijkstraCost`` retourne un ensemble de :ref:`type_cost_result`:"
-
-# 2325329e3ec24e3cbe4c347369b857a4
-# 2ac53854f37a48a89b705310628c4d3e
-#: ../../../src/kdijkstra/doc/index.rst:65
-#: ../../../src/kdijkstra/doc/index.rst:73
-msgid "row sequence"
-msgstr "séquence de ligne"
-
-# 73cb6093021a456aace98c1f58641bef
-#: ../../../src/kdijkstra/doc/index.rst:66
-msgid ""
-"path vertex source id (this will always be source start point in the query)."
-msgstr "id source du chemin de sommets (cela va toujours être la source du point final dans la requête)."
-
-# 9afd4e01323945118421ebb27f420068
-#: ../../../src/kdijkstra/doc/index.rst:67
-msgid "path vertex target id"
-msgstr "id cible du sommet du chemin"
-
-# 8b3c8fe211a147f4b031db8a8d899ddd
-#: ../../../src/kdijkstra/doc/index.rst:68
-msgid ""
-"cost to traverse the path from ``id1`` to ``id2``. Cost will be -1.0 if "
-"there is no path to that target vertex id."
-msgstr "coût pour traverser le chemin de ``id1`` à ``id2``. Le coût sera de -1.0 si il n'y a pas de chemin pour cet id de sommet cible."
-
-# 703a5ecca86b4ef4ba2c275d9ba8a20f
-#: ../../../src/kdijkstra/doc/index.rst:71
-msgid "``pgr_kdijkstraPath`` returns set of :ref:`type_cost_result3`:"
-msgstr "``pgr_kdijkstraPath`` retourne un ensemble de :ref:`type_cost_result3`:"
-
-# 7fc792793b7c4e65ba68cea3f25384aa
-#: ../../../src/kdijkstra/doc/index.rst:74
-msgid "path target id (identifies the target path)."
-msgstr "id chemin cible (identifie le chemin cible)."
-
-# c43bcd54fee6435fbe6afd2ec4bb6d65
-#: ../../../src/kdijkstra/doc/index.rst:75
-msgid "path edge source node id"
-msgstr ""
-
-# a567112ee5584a46ac397cb9783627a8
-#: ../../../src/kdijkstra/doc/index.rst:76
-msgid "path edge id (``-1`` for the last row)"
-msgstr ""
-
-# 47af04f2ce09412f8475df30be9581ae
-#: ../../../src/kdijkstra/doc/index.rst:77
-msgid "cost to traverse this edge or -1.0 if there is no path to this target"
-msgstr "coût pour traverser l'arête ou -1.0 si il n'y a pas de chemin pour cette cible"
-
-# e7349c2020bc491aaa02b3eb1ebca791
-#: ../../../src/kdijkstra/doc/index.rst:81
-msgid "History"
-msgstr "Histoire"
-
-# f7b3cf1f2e494a4c8697b712adcbd1fc
-#: ../../../src/kdijkstra/doc/index.rst:82
-msgid "New in version 2.0.0"
-msgstr "Nouveau depuis la version 2.0.0"
-
-# adf5de36019d4982b76cd696909168b0
-#: ../../../src/kdijkstra/doc/index.rst:86
-msgid "Examples"
-msgstr "Exemples"
-
-# f332ab5afb39404284be98f0e9a2c8dc
-#: ../../../src/kdijkstra/doc/index.rst:88
-msgid "Returning a ``cost`` result"
-msgstr "Retourne un résultat ``cost``"
-
-# cb5abec6a55e41a4a61c22fd3f461110
-#: ../../../src/kdijkstra/doc/index.rst:123
-msgid "Returning a ``path`` result"
-msgstr "Retourne un résultat "
-
-# d2e7b4076702425a9c6928a0cc4b997e
-#: ../../../src/kdijkstra/doc/index.rst:144
-msgid ""
-"There is no assurance that the result above will be ordered in the direction"
-" of flow of the route, ie: it might be reversed. You will need to check if "
-"``st_startPoint()`` of the route is the same as the start node location and "
-"if it is not then call ``st_reverse()`` to reverse the direction of the "
-"route. This behavior is a function of PostGIS functions ``st_linemerge()`` "
-"and ``st_union()`` and not pgRouting."
-msgstr "Il n'y a pas d'assurance que le résultat au-dessus sera ordonné dans la direction du flot de la route, càd : il peut être inversé. Vous aurez besoin de vérifier si ``st_startPoint()`` de la route est la même que la localisation du point de départ et si ça ne l'est pas, alors appelez ``st_reverse()`` pour inverser la direction de la route. Ce comportement est l'une des fonctions PostGIS ``st_linemerge()`` et ``st_union()`` et non pgRouting."
-
-# d6928031c7d047a5999f03c79c5bcfea
-#: ../../../src/kdijkstra/doc/index.rst:153
-msgid "See Also"
-msgstr "Voir aussi"
-
-# cd86a4612fe944acbe5a39daaf52dafd
-#: ../../../src/kdijkstra/doc/index.rst:155
-msgid ":ref:`type_cost_result`"
-msgstr ":ref:`type_cost_result`"
-
-# c2386bf8c6314521abe162d0bf548225
-#: ../../../src/kdijkstra/doc/index.rst:156
-msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
-msgstr "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
diff --git a/doc/i18n/fr/LC_MESSAGES/src/ksp/doc/index.po b/doc/i18n/fr/LC_MESSAGES/src/ksp/doc/index.po
deleted file mode 100644
index 486a6a4..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/ksp/doc/index.po
+++ /dev/null
@@ -1,192 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:15+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# dc72571c7ce5498b92c659e3e482c885
-#: ../../../src/ksp/doc/index.rst:13
-msgid "pgr_ksp - K-Shortest Path"
-msgstr "pgr_ksp - K-plus court chemin"
-
-# 57b24beea69846f58a8cb9b1a7a892b5
-#: ../../../src/ksp/doc/index.rst:20
-msgid "Name"
-msgstr "Nom"
-
-# b3d0fc92b23443c8b718233c1e16f052
-#: ../../../src/ksp/doc/index.rst:22
-msgid "``pgr_ksp`` — Returns the \"K\" shortest paths."
-msgstr "``pgr_ksp`` — Retourne les \"K\" plus courts chemins."
-
-# 0e60ee2dfa944557a1e9c76106489a7f
-#: ../../../src/ksp/doc/index.rst:26
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# bcf915dc485c4e3b90c9a8ea251b55d1
-#: ../../../src/ksp/doc/index.rst:28
-msgid ""
-"The K shortest path routing algorithm based on Yen's algorithm. \"K\" is the"
-" number of shortest paths desired. Returns a set of :ref:`pgr_costResult3 "
-"<type_cost_result3>` (seq, id1, id2, id3, cost) rows, that make up a path."
-msgstr "L'algorithme de routage de K plus court chemin basé sur l'algorithme de Yen. \"K\" est le nombre de plus courts chemins souhaités. Retourne un ensemble de lignes :ref:`pgr_costResult3 <type_cost_result3>` (seq, id1, id2, id3, cost), qui fabriquent un chemin."
-
-# 46b5ce0d54a64718819888b77b007080
-#: ../../../src/ksp/doc/index.rst:37
-msgid "Description"
-msgstr "Description"
-
-# dddbbca8781f41eab4aac1d4e2ecdf32
-#: ../../../src/ksp/doc/index.rst:39
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr "une requête SQL, qui devrait retourner un ensemble de lignes avec les colonnes suivantes :"
-
-# 575d21e3bc994dc3a92a7c6cbb0ed6a2
-#: ../../../src/ksp/doc/index.rst:46
-msgid "``int4`` identifier of the edge"
-msgstr "``int4`` identifiant de l'arête"
-
-# 589751b9c7d34dac9b4eeb12894fd648
-#: ../../../src/ksp/doc/index.rst:47
-msgid "``int4`` identifier of the source vertex"
-msgstr "``int4`` identifiant du sommet source"
-
-# 6567c097438040d9b678e88df7521b35
-#: ../../../src/ksp/doc/index.rst:48
-msgid "``int4`` identifier of the target vertex"
-msgstr "``int4`` identifiant du sommet cible"
-
-# a1e24bd423dd445889b72928d964a5ec
-#: ../../../src/ksp/doc/index.rst:49
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr "``float8`` valeur, du coût de l'arête traversée. Un coût négatif va prévenir l'arête d'être insérée dans le graphe."
-
-# ed76ed5e3a504c7aa3a35ea3fa5b4c16
-#: ../../../src/ksp/doc/index.rst:50
-msgid ""
-"(optional) the cost for the reverse traversal of the edge. This is only used"
-" when ``has_rcost`` the parameter is ``true`` (see the above remark about "
-"negative costs)."
-msgstr "(optionnel) le coût pour la traversée inverse de l'arête. Ceci est utilisé seulement quand le paramètre ``has_rcost`` est ``true`` (voir la remarque au-dessus sur les coûts négatifs)."
-
-# 588bdec4303b49869b6d1eedd541c198
-#: ../../../src/ksp/doc/index.rst:52
-msgid "``int4`` id of the start point"
-msgstr "``int4`` id du point de départ"
-
-# 96b44480fac34f6286b863e6c75d4d8a
-#: ../../../src/ksp/doc/index.rst:53
-msgid "``int4`` id of the end point"
-msgstr "``int4`` id du point final"
-
-# 0ffd51df58754f0b89f1b3ad6f75b632
-#: ../../../src/ksp/doc/index.rst:54
-msgid "``int4`` number of alternative routes"
-msgstr "``int4`` bombre de routes alternatives"
-
-# 0fc58370aa30454ea32a2c8b9f3b14a3
-#: ../../../src/ksp/doc/index.rst:55
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr "si ``true``,  la colonne ``reverse_cost`` du SQL générant l'ensemble des lignes va être utilisé pour le coût de la traversée de l'arête dans la direction opposée."
-
-# dc8dfcffbd604441a95743930181b042
-#: ../../../src/ksp/doc/index.rst:57
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr "Retourne un ensemble de :ref:`type_cost_result`:"
-
-# 611d6bbb82ca4987ae39fd45bb107c2b
-#: ../../../src/ksp/doc/index.rst:59
-msgid "sequence for ording the results"
-msgstr ""
-
-# b79966a030e04ee3b5e992b5a6858947
-#: ../../../src/ksp/doc/index.rst:60
-msgid "route ID"
-msgstr "ID route"
-
-# a324539cdc2e4202b416aa19693d1c3f
-#: ../../../src/ksp/doc/index.rst:61
-msgid "node ID"
-msgstr "ID noeud"
-
-# 4d87667a7b744eec999819b399fee50c
-#: ../../../src/ksp/doc/index.rst:62
-msgid "edge ID (``0`` for the last row)"
-msgstr "ID arête (``0`` pour la dernière ligne)"
-
-# baaba3dc621142bd8fc6b8ba32eb2b2e
-#: ../../../src/ksp/doc/index.rst:63
-msgid "cost to traverse from ``id2`` using ``id3``"
-msgstr "coût pour traverser de ``id2`` en utilisant ``id3``"
-
-# b585e07096f74b0389f8b7dffc969faa
-#: ../../../src/ksp/doc/index.rst:65
-msgid ""
-"KSP code base taken from http://code.google.com/p/k-shortest-paths/source."
-msgstr "Code de base KSP ici : http://code.google.com/p/k-shortest-paths/source."
-
-# 2d033ec25b09426c82d7bc27450b0e13
-#: ../../../src/ksp/doc/index.rst:69
-msgid "History"
-msgstr "Histoire"
-
-# 2910d7995ec342b995c857c1e8ea0ac3
-#: ../../../src/ksp/doc/index.rst:70
-msgid "New in version 2.0.0"
-msgstr "Nouveau depuis la version 2.0.0"
-
-# 0fb494088fa241d6a4aa5482217c2851
-#: ../../../src/ksp/doc/index.rst:74
-msgid "Examples"
-msgstr "Exemples"
-
-# d3ea07b1c58a42ea9f68558e55eb90a0
-#: ../../../src/ksp/doc/index.rst:76
-msgid "Without ``reverse_cost``"
-msgstr "Sans ``reverse_cost``"
-
-# 7c55b739634c4401b46c4014669d2896
-#: ../../../src/ksp/doc/index.rst:104
-msgid "With ``reverse_cost``"
-msgstr "Avec ``reverse_cost``"
-
-# 2412b0b4ec044973a1c2304488a73b1a
-#: ../../../src/ksp/doc/index.rst:131
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "Les requêtes utilisent le réseau :ref:`sampledata`."
-
-# 14d58e1d3a8f4723bb11ed549594cb26
-#: ../../../src/ksp/doc/index.rst:135
-msgid "See Also"
-msgstr "Voir aussi"
-
-# 73cf1bb94518468996cdd3ff6bf897be
-#: ../../../src/ksp/doc/index.rst:137
-msgid ":ref:`type_cost_result3`"
-msgstr ":ref:`type_cost_result3`"
-
-# 3dde120556744d3f9ce7d6e9b9f0c1ee
-#: ../../../src/ksp/doc/index.rst:138
-msgid "http://en.wikipedia.org/wiki/K_shortest_path_routing"
-msgstr "http://en.wikipedia.org/wiki/K_shortest_path_routing"
diff --git a/doc/i18n/fr/LC_MESSAGES/src/trsp/doc/index.po b/doc/i18n/fr/LC_MESSAGES/src/trsp/doc/index.po
deleted file mode 100644
index 556459a..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/trsp/doc/index.po
+++ /dev/null
@@ -1,260 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-08-25 12:52+0000\n"
-"Last-Translator: erikap\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 15b2085c08994c0bafb02ec924886b36
-#: ../../../src/trsp/doc/index.rst:13
-msgid "pgr_trsp - Turn Restriction Shortest Path (TRSP)"
-msgstr "pgr_trsp - Plus court chemin avec restriction de virage (TRSP)"
-
-# 001ce231c65b42a19a62809e63a0b153
-#: ../../../src/trsp/doc/index.rst:23
-msgid "Name"
-msgstr "Nom"
-
-# e7d332e28a5540d2af454386b4bf39e5
-#: ../../../src/trsp/doc/index.rst:25
-msgid ""
-"``pgr_trsp`` — Returns the shortest path with support for turn restrictions."
-msgstr "``pgr_trsp`` — Retourne le plus court chemin avec support pour les restrictions de virage."
-
-# 9f0ad26664fc4d2aa44b49daf329cbcf
-#: ../../../src/trsp/doc/index.rst:29
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# 2d74de00ff7144f1a68f40ec98315004
-#: ../../../src/trsp/doc/index.rst:31
-msgid ""
-"The turn restricted shorthest path (TRSP) is a shortest path algorithm that "
-"can optionally take into account complicated turn restrictions like those "
-"found in real work navigable road networks. Performamnce wise it is nearly "
-"as fast as the A* search but has many additional features like it works with"
-" edges rather than the nodes of the network. Returns a set of "
-":ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows, that "
-"make up a path."
-msgstr "Le plus court chemin avec restriction de virage (TRSP) est un algorithme de plus court chemin qui peut optionnellement prendre en compte les restrictions comme celles trouvées dans les réseaux routiers navigables réels. La performance est pratiquement aussi rapide que la recherche A* mais a beaucoup de fonctionnalités additionnelles puisque fonctionnant avec des arêtes plus qu'avec des nœuds du réseau. Retourne un ensemble de lignes :ref:`pgr_costResult <type_cost_result>` (seq,  [...]
-
-# 258764bba06c4ef58ac4b5f8fc99fa51
-#: ../../../src/trsp/doc/index.rst:47
-msgid "Description"
-msgstr "Description"
-
-# db4ead8b9b724ada9fcd352b21c13c47
-#: ../../../src/trsp/doc/index.rst:49
-msgid ""
-"The Turn Restricted Shortest Path algorithm (TRSP) is similar to the "
-":ref:`shooting_star` in that you can specify turn restrictions."
-msgstr "L'algorithme de plus court chemin avec restriction de virage (TRSP) est similaire au :ref:`shooting_star` dans lequel vous pouvez spécifier les restrictions de virage."
-
-# f8c43b665915464c9bfc35604fd91aee
-#: ../../../src/trsp/doc/index.rst:51
-msgid ""
-"The TRSP setup is mostly the same as :ref:`Dijkstra shortest path "
-"<pgr_dijkstra>` with the addition of an optional turn restriction table. "
-"This makes adding turn restrictions to a road network much easier than "
-"trying to add them to Shooting Star where you had to ad the same edges "
-"multiple times if it was involved in a restriction."
-msgstr "La configuration TRSP est essentiellement la même que :ref:`Dijkstra shortest path <pgr_dijkstra>` avec l'addition d'une table optionnelle de restrictions de virage. Cela rend plus facile l'ajout des restrictions de virage à un réseau routier, que d'essayer de les ajouter au Shooting Star où vous aviez à ajouter les mêmes arêtes plusieurs fois si vous étiez impliqués dans une restriction."
-
-# b95a0195c5bd43caa2d6cfb1f998a956
-#: ../../../src/trsp/doc/index.rst:54
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr "une requête SQL, qui devrait retourner un ensemble de lignes avec les colonnes suivantes :"
-
-# 580e965db4a1466da14357ff969e2429
-#: ../../../src/trsp/doc/index.rst:61
-msgid "``int4`` identifier of the edge"
-msgstr "``int4`` identifiant de l'arête"
-
-# 1240ecd9b29e479ca8b980c6282c5182
-#: ../../../src/trsp/doc/index.rst:62
-msgid "``int4`` identifier of the source vertex"
-msgstr "``int4`` identifiant du sommet source"
-
-# f155b6dee53749049cc6a9eac4126083
-#: ../../../src/trsp/doc/index.rst:63
-msgid "``int4`` identifier of the target vertex"
-msgstr "``int4`` identifiant du sommet cible"
-
-# 882a25b98f4f4c7cb2f288cf7c327c4a
-#: ../../../src/trsp/doc/index.rst:64
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr "``float8`` valeur, du coût de l'arête traversée. Un coût négatif va prévenir l'arête d'être insérée dans le graphe."
-
-# 0a3a626251a840ab96796ef2ab9b91c5
-#: ../../../src/trsp/doc/index.rst:65
-msgid ""
-"(optional) the cost for the reverse traversal of the edge. This is only used"
-" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
-"above remark about negative costs)."
-msgstr "(optionnel) le coût pour la traversée inverse de l'arête. Ceci est seulement utilisé quand les paramètres ``directed`` et ``has_rcost`` sont ``true`` (voir la remarque ci-dessus sur les coûts négatifs)."
-
-# 510dbeaa32914dc18ed3e6799281fbef
-#: ../../../src/trsp/doc/index.rst:67
-msgid "``int4`` **NODE id** of the start point"
-msgstr "``int4`` **NODE id** du point de départ"
-
-# ece6f31366044417b07933b2c817c5df
-#: ../../../src/trsp/doc/index.rst:68
-msgid "``int4`` **NODE id** of the end point"
-msgstr "``int4`` **NODE id** du point final"
-
-# 31ad6aa2c51741de8dbafceaf67d397a
-#: ../../../src/trsp/doc/index.rst:69
-msgid "``true`` if the graph is directed"
-msgstr "``true`` si le graphe est dirigé"
-
-# 6605eca503604a6daa20167fcbdd05fa
-#: ../../../src/trsp/doc/index.rst:70
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr "si ``true``,  la colonne ``reverse_cost`` du SQL générant l'ensemble des lignes va être utilisé pour le coût de la traversée de l'arête dans la direction opposée."
-
-# 332748df482046d7b70e9012364915e3
-#: ../../../src/trsp/doc/index.rst:72
-msgid ""
-"(optional) a SQL query, which should return a set of rows with the following"
-" columns:"
-msgstr "(optionnel) une requête SQL, qui devrait retourner un ensemble de lignes avec les colonnes suivantes :"
-
-# 936b80e377bd457081e14e36770ab130
-#: ../../../src/trsp/doc/index.rst:78
-msgid "``float8`` turn restriction cost"
-msgstr "``float8`` coût de restriction de virage"
-
-# d1715703f624412385536b88c78a32df
-#: ../../../src/trsp/doc/index.rst:79
-msgid "``int4`` target id"
-msgstr "``int4`` id cible"
-
-# 83a22871a9f6419190e4bf313f49c672
-#: ../../../src/trsp/doc/index.rst:80
-msgid ""
-"``text`` commar seperated list of edges in the reverse order of ``rule``"
-msgstr "``text`` liste séparée par virgule d'arêtes dans l'ordre inverse de ``rule``"
-
-# d0f078a9c92348a9bc1e880a0835b24c
-#: ../../../src/trsp/doc/index.rst:82
-msgid ""
-"Another variant of TRSP allows to specify **EDGE id** of source and target "
-"together with a fraction to interpolate the position:"
-msgstr "Un autre variante de TRSP autorise de spécifier **EDGE id** de source et cible ensemble avec une fraction pour interpoler la position :"
-
-# 021daf08280643738cfc9e67f4fa6fce
-#: ../../../src/trsp/doc/index.rst:84
-msgid "``int4`` **EDGE id** of the start edge"
-msgstr "``int4`` **EDGE id** d'une arête de départ"
-
-# 6c0b782e2a2d4ee7aac26b031327b48d
-#: ../../../src/trsp/doc/index.rst:85
-msgid "``float8`` fraction of 1 defines the position on the start edge"
-msgstr "``float8`` fraction de 1 définit la position de l'arête de départ"
-
-# 4f60cd31727245739cba5b4be8840191
-#: ../../../src/trsp/doc/index.rst:86
-msgid "``int4`` **EDGE id** of the end edge"
-msgstr "``int4`` **EDGE id** de l'arête finale"
-
-# 8a114786a737431f9d36f79718505b0c
-#: ../../../src/trsp/doc/index.rst:87
-msgid "``float8`` fraction of 1 defines the position on the end edge"
-msgstr "``float8`` fraction de 1 définit la position de l'arête finale"
-
-# 164eff72cc834e76afafdb24fae73b05
-#: ../../../src/trsp/doc/index.rst:89
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr "Retourne un ensemble de :ref:`type_cost_result`:"
-
-# f1e7b63cce7e45dca113b9c63b80531a
-#: ../../../src/trsp/doc/index.rst:91
-msgid "row sequence"
-msgstr "séquence de ligne"
-
-# 9224c385fbc84c6fb16a5752bb0dcf0f
-#: ../../../src/trsp/doc/index.rst:92
-msgid "node ID"
-msgstr "ID noeud"
-
-# 838eabec61db4ac1a64b9bb7b12a5bec
-#: ../../../src/trsp/doc/index.rst:93
-msgid "edge ID (``-1`` for the last row)"
-msgstr "ID arête (``-1`` pour la dernière ligne)"
-
-# dd4d4036ca89412ca65bb9dc36a98ff5
-#: ../../../src/trsp/doc/index.rst:94
-msgid "cost to traverse from ``id1`` using ``id2``"
-msgstr "coût pour traverser à partir de ``id1`` en utilisant ``id2``"
-
-# 3e879e6cbece4a27afe4738bdef1080b
-#: ../../../src/trsp/doc/index.rst:98
-msgid "History"
-msgstr "Histoire"
-
-# 16b0789da1954e179858d593d9973be6
-#: ../../../src/trsp/doc/index.rst:99
-msgid "New in version 2.0.0"
-msgstr "Nouveau depuis la version 2.0.0"
-
-# 36dc0630c4e04859ba0a41aa3da19ed6
-#: ../../../src/trsp/doc/index.rst:103
-msgid "Examples"
-msgstr "Exemples"
-
-# 0c40d66ced8b4b48914b3bb328c5f10e
-#: ../../../src/trsp/doc/index.rst:105
-msgid "Without turn restrictions"
-msgstr "Sans restrictions de virage"
-
-# 456ae3d3abc547978bd147c884275ac6
-#: ../../../src/trsp/doc/index.rst:126
-msgid "With turn restrictions"
-msgstr "Avec restrictions de virage"
-
-# 2541f0dba78f4dfe93fcda086ddeba34
-#: ../../../src/trsp/doc/index.rst:128
-msgid ""
-"Turn restrictions require additional information, which can be stored in a "
-"separate table:"
-msgstr "Les restrictions de virage requièrent des informations additionnelles, qui peuvent être stockées dans une table séparée :"
-
-# 4d9e1ab740a44fe990829e06dcc32f65
-#: ../../../src/trsp/doc/index.rst:144
-msgid "Then a query with turn restrictions is created as:"
-msgstr "Ensuite une requête avec des restrictions de virage est créée comme :"
-
-# 61dd0262b80b4db58f637fe5d2dd1ae8
-#: ../../../src/trsp/doc/index.rst:167
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "Les requêtes utilisent le réseau :ref:`sampledata`."
-
-# 48bf89e209cc4518904b1b99e1a89f99
-#: ../../../src/trsp/doc/index.rst:171
-msgid "See Also"
-msgstr "Voir aussi"
-
-# 7988e08198b04952bc5a1cb22cce310f
-#: ../../../src/trsp/doc/index.rst:173
-msgid ":ref:`type_cost_result`"
-msgstr ":ref:`type_cost_result`"
diff --git a/doc/i18n/fr/LC_MESSAGES/src/tsp/doc/index.po b/doc/i18n/fr/LC_MESSAGES/src/tsp/doc/index.po
deleted file mode 100644
index 5778432..0000000
--- a/doc/i18n/fr/LC_MESSAGES/src/tsp/doc/index.po
+++ /dev/null
@@ -1,353 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# erikap, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:14+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: French (http://www.transifex.com/projects/p/pgrouting/language/fr/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: fr\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-
-# 588bb56f073f49f89c741579fbc2c17c
-#: ../../../src/tsp/doc/index.rst:13
-msgid "pgr_tsp - Traveling Sales Person"
-msgstr "pgr_tsp - Voyageur du commerce"
-
-# f69daf53ba3c47ca846fbcbbcf6aa25d
-#: ../../../src/tsp/doc/index.rst:23
-msgid "Name"
-msgstr "Nom"
-
-# 5ccbfce91c604bac96d73fdbc656f675
-#: ../../../src/tsp/doc/index.rst:25
-msgid ""
-"``pgr_tsp`` - Returns the best route from a start node via a list of nodes."
-msgstr "``pgr_tsp`` - Retourne la meilleure route à partir d'un point de départ via une liste de nœuds."
-
-# cd69b4b6495b448fa23e10806d8cd704
-#: ../../../src/tsp/doc/index.rst:26
-msgid ""
-"``pgr_tsp`` - Returns the best route order when passed a disance matrix."
-msgstr "``pgr_tsp`` - Retourne le meilleur ordre de route quand passée une matrice de distance."
-
-# eee8057e1f874582a8d82dbf95c33b83
-#: ../../../src/tsp/doc/index.rst:27
-msgid ""
-"``pgr_makeDistanceMatrix`` - Returns a Eucleadian distance Matrix from the "
-"points provided in the sql result."
-msgstr "``pgr_makeDistanceMatrix`` - Retourne une matrice de distance Euclidienne à partir de points fournis par le résultat sql."
-
-# c0ecbed749044ceea6ac67da6a92e851
-#: ../../../src/tsp/doc/index.rst:31
-msgid "Synopsis"
-msgstr "Synopsis"
-
-# bccf8e0d00d545fbb53db8de741e3629
-#: ../../../src/tsp/doc/index.rst:33
-msgid ""
-"The travelling salesman problem (TSP) or travelling salesperson problem asks"
-" the following question: Given a list of cities and the distances between "
-"each pair of cities, what is the shortest possible route that visits each "
-"city exactly once and returns to the origin city? This algoritm uses "
-"simulated annealing to return a high quality approximate solution. Returns a"
-" set of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows,"
-" that make up a path."
-msgstr "Le problème du voyageur du commerce (TSP) demande la question suivante : étant donnée une liste de villes et les distances entre chaque paire de villes, quelle est la route la plus courte possible qui visite chaque ville exactement une fois et retourne à la ville originale ? Cet algorithme utilise un recuit simulé pour retourner une solution approximative de haute qualité. Retourne un ensemble de lignes :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost), qui constitue [...]
-
-# 4817fee0103a41c4816125ab5b8e50c9
-#: ../../../src/tsp/doc/index.rst:41
-msgid ""
-"Returns a set of (seq integer, id1 integer, id2 integer, cost float8) that "
-"is the best order to visit the nodes in the matrix. ``id1`` is the index "
-"into the distance matrix. ``id2`` is the point id from the sql."
-msgstr "Retourne un ensemble de (seq integer, id1 integer, id2 integer, cost float8) qui est le meilleur ordre pour visiter les noeuds dans la matrice. ``id1`` est l'index dans la matrice de distance. ``id2`` est l'id du point à partir du sql."
-
-# d81ab41209864a73a7ffa72604da479d
-#: ../../../src/tsp/doc/index.rst:43
-msgid ""
-"If no ``end_id`` is supplied or it is -1 or equal to the start_id then the "
-"TSP result is assumed to be a circluar loop returning back to the start. If "
-"``end_id`` is supplied then the route is assumed to start and end the the "
-"designated ids."
-msgstr "Si aucun ``end_id`` est donné ou est -1 ou égal au start_id alors le résultat TSP est supposé être une boucle circulaire retournant au départ. Si ``end_id`` est fourni alors la route est supposée commencer et finir aux ids désignés."
-
-# 50853fe7ce3a4230ba1ad32e1820ff86
-#: ../../../src/tsp/doc/index.rst:52
-msgid "Description"
-msgstr "Description"
-
-# 5c75019d15bb43c39560772bc3ee4607
-#: ../../../src/tsp/doc/index.rst:55
-msgid "With Euclidean distances"
-msgstr "Avec distances euclidiennes"
-
-# 66a3e0216d3948b082421f130af849fc
-#: ../../../src/tsp/doc/index.rst:56
-msgid ""
-"The TSP solver is based on ordering the points using straight line "
-"(euclidean) distance [#f0]_ between nodes. The implementation is using an "
-"approximation algorithm that is very fast. It is not an exact solution, but "
-"it is guaranteed that a solution is returned after certain number of "
-"iterations."
-msgstr "Le solveur TSP est basé sur l'ordonnancement des points en utilisant la distance (euclidienne) de ligne droite [#f0]_ entre les noeuds. L'implémentation est utilisé un algorithme d'approximation qui est très rapide. Ce n'est pas une solution exacte, mais il est garanti qu'une solution est retournée après un certain nombre d'itérations."
-
-# 7b0c0aa5e05b441ea75bea14ed4902cd
-#: ../../../src/tsp/doc/index.rst:58
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr "une requête SQL, qui devrait retourner un ensemble de lignes avec les colonnes suivantes :"
-
-# 370960d08a674040ba2f83ed085dbb48
-#: ../../../src/tsp/doc/index.rst:64
-msgid "``int4`` identifier of the vertex"
-msgstr "``int4`` identifiant du sommet"
-
-# 041d921890f847d1bcb77251f630f8d5
-#: ../../../src/tsp/doc/index.rst:65
-msgid "``float8`` x-coordinate"
-msgstr "coordonnée x ``float8``"
-
-# 8662fbcf22f74a82900515c839683881
-#: ../../../src/tsp/doc/index.rst:66
-msgid "``float8`` y-coordinate"
-msgstr "coordonnée y ``float8``"
-
-# c71cd39ce3cf4e3e9301579f9a596cdb
-#: ../../../src/tsp/doc/index.rst:68
-msgid "``int4`` id of the start point"
-msgstr "``int4`` id du point de départ"
-
-# 5165a6a173194137bb498d88e0957b35
-#: ../../../src/tsp/doc/index.rst:69
-msgid ""
-"``int4`` id of the end point, This is *OPTIONAL*, if include the route is "
-"optimized from start to end, otherwise it is assumed that the start and the "
-"end are the same point."
-msgstr "``int4`` id du point final, c'est *OPTIONNEL*, si inclure la route est optimisée d'un point de départ à la fin, sinon c'est supposé que le départ et la fin sont le même point."
-
-# d73e6887338e4da3a107b753d970eb83
-#: ../../../src/tsp/doc/index.rst:72
-msgid "The function returns set of :ref:`type_cost_result`:"
-msgstr "La fonction retourne un ensemble de :ref:`type_cost_result`:"
-
-# 6a00ce9fe1e84a708606d26b563355af
-# c113028794ef4a08a59271625c0ae721
-#: ../../../src/tsp/doc/index.rst:74 ../../../src/tsp/doc/index.rst:107
-msgid "row sequence"
-msgstr "séquence de ligne"
-
-# 486fb735dda64593ba3d2773c140d01f
-#: ../../../src/tsp/doc/index.rst:75
-msgid "internal index to the distance matric"
-msgstr "index interne de la matrice de distance"
-
-# 47f9555a7ecb4013a9b7b1744788a432
-#: ../../../src/tsp/doc/index.rst:76
-msgid "``id`` of the node"
-msgstr "``id`` du noeud"
-
-# 879b651101634a9fa1850e585291b13d
-#: ../../../src/tsp/doc/index.rst:77
-msgid "cost to traverse from the current node to the next node."
-msgstr "coût pour traverser du nœud courant au prochain nœud"
-
-# 1219dbad1dbc483e8c66e492b2ddbb85
-#: ../../../src/tsp/doc/index.rst:80
-msgid "Create a distance matrix"
-msgstr "Créer une matrice de distance"
-
-# 0c6c6e0816e1404798c896777ad941f2
-#: ../../../src/tsp/doc/index.rst:81
-msgid ""
-"For users that need a distance matrix we have a simple function that takes "
-"SQL in ``sql`` as described above and returns a record with ``dmatrix`` and "
-"``ids``."
-msgstr "Pour les utilisateurs qui ont besoin d'une matrice de distance, nous avons une fonction simple qui prend le SQL dans ``sql`` comme décrit au-dessus et retourne avec ``dmatrix`` et ``ids``."
-
-# a9ebba1a8cbb4af9a325f5ebcf4c9c50
-#: ../../../src/tsp/doc/index.rst:87
-msgid "The function returns a record of ``dmatrix``, ``ids``:"
-msgstr "La fonction retourne un enregistrement de ``dmatrix``, ``ids``:"
-
-# 79831990a066442dbf3d4f24cebf6aef
-#: ../../../src/tsp/doc/index.rst:89
-msgid "``float8[][]`` a symeteric Euclidean distance matrix based on ``sql``."
-msgstr "``float8[][]`` une distance symétrique euclidienne basée sur ``sql``."
-
-# afbd6f830d5c4ab2847548f86f90dca1
-#: ../../../src/tsp/doc/index.rst:90
-msgid ""
-"``integer[]`` an array of ids as they are ordered in the distance matrix."
-msgstr "``integer[]`` un tableau d'ids comme ils sont ordonnés dans la matrice de distances."
-
-# f0b8169b552646f980bd6b7e0e4b580c
-#: ../../../src/tsp/doc/index.rst:94
-msgid "With distance matrix"
-msgstr "Avec matrice de distance"
-
-# e50bb0a665844d7682d3a1b216adb70e
-#: ../../../src/tsp/doc/index.rst:95
-msgid ""
-"For users, that do not want to use Euclidean distances, we also provode the "
-"ability to pass a distance matrix that we will solve and return an ordered "
-"list of nodes for the best order to visit each. It is up to the user to "
-"fully populate the distance matrix."
-msgstr "Pour les utilisateurs, qui ne veulent pas utiliser les distances euclidiennes, nous fournissons aussi la capacité de passer une matrice de distances et retourne une liste ordonnée de nœuds pour le meilleur ordre pour visiter chacun. C'est à l'utilisateur de remplir complètement la matrice de distances."
-
-# 900d7d9a9cfe4f48a183120d63a6b5fb
-#: ../../../src/tsp/doc/index.rst:97
-msgid "``float[][]`` distance matrix of points"
-msgstr "``float[][]`` matrice de distances de points"
-
-# ffe889182e9b49e48573a830538e2f76
-#: ../../../src/tsp/doc/index.rst:98
-msgid "``int4`` index of the start point"
-msgstr "``int4`` index du point de départ"
-
-# 7ff184ff9d034484941644d3528f9b11
-#: ../../../src/tsp/doc/index.rst:99
-msgid "``int4`` (optional) index of the end node"
-msgstr "``int4`` (optionnel) index du point final"
-
-# a7886e5620ad48308a92c602d785b979
-#: ../../../src/tsp/doc/index.rst:101
-msgid ""
-"The ``end`` node is an optional parameter, you can just leave it out if you "
-"want a loop where the ``start`` is the depot and the route returns back to "
-"the depot. If you include the ``end`` parameter, we optimize the path from "
-"``start`` to ``end`` and minimize the distance of the route while include "
-"the remaining points."
-msgstr "Le noeud ``end`` est un paramètre optionnel, vous pouvez juste le laisser ainsi si vous voulez une boucle où ``start``est le dépôt et la route retourne au dépôt. Si vous incluez le paramètre ``end``, nous optimisons le chemin de ``start`` à ``end`` et minimisons la distance de la route en incluant les points restants."
-
-# 3328187fb6f24c06bd2ade2fb9daff6c
-#: ../../../src/tsp/doc/index.rst:103
-msgid ""
-"The distance matrix is a multidimensional `PostgreSQL array type "
-"<http://www.postgresql.org/docs/9.1/static/arrays.html>`_ that must be ``N x"
-" N`` in size."
-msgstr "La matrice de distances est un tableau multidimensionnel `PostgreSQL array type <http://www.postgresql.org/docs/9.1/static/arrays.html>`_ qui doit être de taille ``N x N``."
-
-# 1768ea2352234c129198dbacd1452e65
-#: ../../../src/tsp/doc/index.rst:105
-msgid "The result will be N records of ``[ seq, id ]``:"
-msgstr "Le résultat sera de N enregistrements de ``[ seq, id ]``:"
-
-# f8e56b07da754f4396ccb1daa52b8213
-#: ../../../src/tsp/doc/index.rst:108
-msgid "index into the matrix"
-msgstr "index dans la matrice"
-
-# 700ed687dfd24327b5866cb91007c0ed
-#: ../../../src/tsp/doc/index.rst:112
-msgid "Footnotes"
-msgstr "Notes de bas de page"
-
-# bae6c65f712c4ff9b0fd388153cf42f7
-#: ../../../src/tsp/doc/index.rst:113
-msgid ""
-"There was some thought given to pre-calculating the driving distances "
-"between the nodes using Dijkstra, but then I read a paper (unfortunately I "
-"don't remember who wrote it), where it was proved that the quality of TSP "
-"with euclidean distance is only slightly worse than one with real distance "
-"in case of normal city layout. In case of very sparse network or rivers and "
-"bridges it becomes more inaccurate, but still wholly satisfactory. Of course"
-" it is nice to have exact solution, but this is a compromise between quality"
-" and speed (and development time also). If you need a more accurate "
-"solution, you can generate a distance matrix and use that form of the "
-"function to get your results."
-msgstr "Il a été pensé que pré-calculer les distances de conduites entre les noeuds en utilisant Dijkstra, mais ensuite j'ai lu un papier (malheureusement je ne me rappelle plus qu'il l'a écrit), où il a été prouvé que la qualité de TSP avec la distance euclidienne est seulement légèrement moindre que celle avec la distance réelle dans le cas d'une couche de ville normale. Dans le cas d'un réseau très épars ou rivières et ponts ça devient plus imprécis, mais toujours pleinement satisfais [...]
-
-# aeabcb34ceb245ac8c9c4dd783bae696
-#: ../../../src/tsp/doc/index.rst:117
-msgid "History"
-msgstr "Histoire"
-
-# 83259e3ddfad4bc8a503e3daa04b99d5
-#: ../../../src/tsp/doc/index.rst:118
-msgid "Renamed in version 2.0.0"
-msgstr "Renommé depuis la version 2.0.0"
-
-# 537d6a4a4cc64451857537f64823ac72
-#: ../../../src/tsp/doc/index.rst:119
-msgid "GAUL dependency removed in version 2.0.0"
-msgstr "dépendance GAUL supprimée depuis la version 2.0.0"
-
-# 51493667159c4c6395a48ada45bc3ddb
-#: ../../../src/tsp/doc/index.rst:123
-msgid "Examples"
-msgstr "Exemples"
-
-# 7c2ef386cc424fe5a5781147e3ea4cc2
-#: ../../../src/tsp/doc/index.rst:125
-msgid ""
-"Using SQL parameter (all points from the table, atarting from 6 and ending "
-"at 5). We have listed two queries in this example, the first might vary from"
-" system to system because there are multiple equivalent answers. The second "
-"query should be stable in that the length optimal route should be the same "
-"regardless of order."
-msgstr ""
-
-# 41662adbab25461784b154100646e929
-#: ../../../src/tsp/doc/index.rst:159
-msgid "Using distance matrix (A loop starting from 1)"
-msgstr "Utiliser la matrice de distances (boucle A en partant de 1)"
-
-# 936788f1e0c2469ba7d71161a6320815
-#: ../../../src/tsp/doc/index.rst:161
-msgid ""
-"When using just the start node you are getting a loop that starts with 1, in"
-" this case, and travels through the other nodes and is implied to return to "
-"the start node from the last one in the list. Since this is a circle there "
-"are at least two possible paths, one clockwise and one counter-clockwise "
-"that will have the same length and be equall valid. So in the following "
-"example it is also possible to get back a sequence of ids = {1,0,3,2} "
-"instead of the {1,2,3,0} sequence listed below."
-msgstr ""
-
-# 95907dec9016432f8b75f45be9e231c3
-#: ../../../src/tsp/doc/index.rst:175
-msgid "Using distance matrix (Starting from 1, ending at 2)"
-msgstr "Utiliser la matrice de distance (en partant de 1, jusqu'à 2)"
-
-# c376ad2787cd4f4abf9764fbe86699b2
-#: ../../../src/tsp/doc/index.rst:189
-msgid ""
-"Using the vertices table edge_table_vertices_pgr generated by "
-":ref:`pgr_create_topology`. Again we have two queries where the first might "
-"vary and the second is based on the overal path length."
-msgstr ""
-
-# c3d22bacc29d477ca8c5a118ddedb8f4
-#: ../../../src/tsp/doc/index.rst:226
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "Les requêtes utilisent le réseau :ref:`sampledata`."
-
-# 4f5c93447689413e86e9ed2751abff8f
-#: ../../../src/tsp/doc/index.rst:230
-msgid "See Also"
-msgstr "Voir aussi"
-
-# 5f49eba1079b40d297bf0872ae69fe06
-#: ../../../src/tsp/doc/index.rst:232
-msgid ":ref:`type_cost_result`"
-msgstr ":ref:`type_cost_result`"
-
-# 81d591e953334f24b72e9680e2ae42f9
-#: ../../../src/tsp/doc/index.rst:233
-msgid "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
-msgstr "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
-
-# 2c62ab4de73248479f416573176f0c4a
-#: ../../../src/tsp/doc/index.rst:234
-msgid "http://en.wikipedia.org/wiki/Simulated_annealing"
-msgstr "http://en.wikipedia.org/wiki/Simulated_annealing"
diff --git a/doc/i18n/ja/LC_MESSAGES/doc/index.po b/doc/i18n/ja/LC_MESSAGES/doc/index.po
deleted file mode 100644
index e273fa4..0000000
--- a/doc/i18n/ja/LC_MESSAGES/doc/index.po
+++ /dev/null
@@ -1,360 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (187a022 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-# sanak <geosanak at gmail.com>, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-23 21:48\n"
-"PO-Revision-Date: 2013-09-24 02:49+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# c86028e885c64c0987f44bbcc08fb02a
-#: ../../index.rst:13
-msgid "Table of Contents"
-msgstr "目次"
-
-# 32111013f9c94976b553857e93812724
-#: ../../index.rst:15
-msgid ""
-"pgRouting extends the `PostGIS <http://postgis.net>`_/`PostgreSQL "
-"<http://postgresql.org>`_ geospatial database to provide geospatial routing "
-"and other network analysis functionality."
-msgstr "pgRouting は地理空間における経路探索や他のネットワーク解析機能を提供するために `PostGIS <http://postgis.net>`_/`PostgreSQL <http://postgresql.org>`_ 地理空間データベースを拡張します。"
-
-# cd5bc882f7f3412b8a937ba25e203de8
-#: ../../index.rst:17
-msgid "This is the manual for pgRouting |release|."
-msgstr "このマニュアルは pgRouting |release| のマニュアルです。"
-
-# d928c97ad24c4daeae96bb02b87c5a6d
-#: ../../index.rst:23
-msgid ""
-"The pgRouting Manual is licensed under a `Creative Commons Attribution-Share"
-" Alike 3.0 License <http://creativecommons.org/licenses/by-sa/3.0/>`_. Feel "
-"free to use this material any way you like, but we ask that you attribute "
-"credit to the pgRouting Project and wherever possible, a link back to "
-"http://pgrouting.org. For other licenses used in pgRouting see the "
-":ref:`license` page."
-msgstr "pgRouting マニュアルは `クリエイティブ・コモンズ 表示 - 継承 3.0 Unported <http://creativecommons.org/licenses/by-sa/3.0/>`_ ライセンスで提供されています。 自由にこのコンテンツを使用することが可能ですが、クレジットが pgRouting プロジェクトに帰すること、また、どこでも構いませんので、 http://pgrouting.org へのリンクを表示することを求めます。 pgRouting で使用されているその他のライセンスについては、  :ref:`ライセンス <license>` ページを参照して下さい。"
-
-# 9024be66e4ef47b9b53de9a42af4550d
-#: ../../index.rst:27
-msgid "General"
-msgstr "概要"
-
-# 268439cb0a4f4417b56ca21d51394850
-#: ../../index.rst:40
-msgid "Tutorial"
-msgstr "チュートリアル"
-
-# bf01af3d0d3244f283f5b3fab105caad
-#: ../../index.rst:42
-msgid ":ref:`Tutorial <tutorial1>`"
-msgstr ""
-
-# 116777f411a248f9afe42b9b51679b78
-#: ../../index.rst:44
-msgid ":ref:`Getting started <tutorial>`"
-msgstr ""
-
-# 2066f7d15ec8444c833547cfb3b06a98
-#: ../../index.rst:45
-msgid ":ref:`topology` for an overview of a topology for routing algorithms."
-msgstr ""
-
-# 2753f71d0fc14b0bbabb14a5180b10d9
-#: ../../index.rst:46
-msgid ":ref:`analytics` for an overview of the analysis of a graph."
-msgstr ""
-
-# 042f858c16ca4c7ea9fb4baa62efdd44
-#: ../../index.rst:47
-msgid ":ref:`custom_query` that is used in the routing algorithms."
-msgstr ""
-
-# 13f4fade1d47458abf8ba3706110d874
-#: ../../index.rst:48
-msgid ":ref:`performance` to improve your performance."
-msgstr ""
-
-# c3ccc6e6651e47f9b9d271c60976b15c
-#: ../../index.rst:49
-msgid ":ref:`custom_wrapper` to colaborate with a wrapper."
-msgstr ""
-
-# 233aebcc461745c2b0811b7f4328ce3a
-#: ../../index.rst:50
-msgid ":ref:`recipes` to colaborate with a recipe."
-msgstr ""
-
-# 3ae724b7e3714db2942fb7c77124cfc4
-#: ../../index.rst:51
-msgid ":ref:`sampledata` that is used in the examples of this manual."
-msgstr ""
-
-# c92e843c52364963a35112272cb814fd
-#: ../../index.rst:61
-msgid ""
-"For a more complete introduction how to build a routing application read the"
-" `pgRouting Workshop <http://workshop.pgrouting.org>`_."
-msgstr "経路探索アプリケーションを構築するための、より完全なイントロダクションについては、 `pgRouting ワークショップ <http://workshop.pgrouting.org>`_ を読んで下さい。"
-
-# 524c7dc0d5654f319fc62f2ae08b86f7
-#: ../../index.rst:65
-msgid "Data Types"
-msgstr ""
-
-# e49a23cdc901419e8a3d5f17ed6c6ea0
-#: ../../index.rst:67
-msgid ":ref:`data_types`"
-msgstr ""
-
-# ef6b2fcc629f48c7b88d3ac78527893a
-#: ../../index.rst:69
-msgid ""
-":ref:`type_cost_result` -  A set of records to describe a path result with "
-"cost attribute."
-msgstr ""
-
-# 84a33ec406d2412c9e681656b4cb9b43
-#: ../../index.rst:70
-msgid ""
-":ref:`pgr_costResult3[]<type_cost_result3>` - A set of records to describe a"
-" path result with cost attribute."
-msgstr ""
-
-# 6a2ba698d366498caa046c97178f05d5
-#: ../../index.rst:71
-msgid ""
-":ref:`pgr_geomResult<type_geom_result>` - A set of records to describe a "
-"path result with geometry attribute."
-msgstr ""
-
-# 9c4629c11bc143a184a6564177b0e7bd
-#: ../../index.rst:80
-msgid "Functions reference"
-msgstr ""
-
-# 1f3545abdf7c42cdb73e76f5f149a31b
-#: ../../index.rst:82
-msgid ":ref:`topology_functions`"
-msgstr ""
-
-# 058f97425ccb4cb5870163ebbe948a72
-#: ../../index.rst:84
-msgid ""
-":ref:`pgr_create_topology` -  to create a topology based on the geometry."
-msgstr ""
-
-# e839b8e9c3664685a6dc346cac1ea039
-#: ../../index.rst:85
-msgid ""
-":ref:`pgr_create_vert_table` - to reconstruct the vertices table based on "
-"the source and target information."
-msgstr ""
-
-# 5d9cd0c5ac3043b99ae4fb495036d05f
-#: ../../index.rst:86
-msgid ""
-":ref:`pgr_analyze_graph`  - to analyze the edges and vertices of the edge "
-"table."
-msgstr ""
-
-# 714b5f8623914db981048d201845d040
-#: ../../index.rst:87
-msgid ":ref:`pgr_analyze_oneway` - to analyze directionality of the edges."
-msgstr ""
-
-# 5f3a1ebfa74d4463912b1c695028121d
-#: ../../index.rst:88
-msgid ":ref:`pgr_node_network`  -to create nodes to a not noded edge table."
-msgstr ""
-
-# 655d025751764d39b841997c13775783
-#: ../../index.rst:90
-msgid ":ref:`routing_functions`"
-msgstr ""
-
-# 6a94d292d24b45f7aafda5a754a6ba30
-#: ../../index.rst:92
-msgid ""
-":ref:`pgr_apspJohnson <pgr_apsp_johnson>`- All Pairs Shortest Path, "
-"Johnson’s Algorithm"
-msgstr ""
-
-# fbda3d31d88e4df891d2095dfbb8ab52
-#: ../../index.rst:93
-msgid ""
-":ref:`pgr_apspWarshall<pgr_apsp_warshall>` - All Pairs Shortest Path, Floyd-"
-"Warshall Algorithm"
-msgstr ""
-
-# 10cf6d194dcf4af2be81f0f8034cd5cb
-#: ../../index.rst:94
-msgid ":ref:`pgr_astar<pgr_astar>` - Shortest Path A*"
-msgstr ""
-
-# 72aa55b5147341e6be8b3ac29edc5056
-#: ../../index.rst:95
-msgid ":ref:`pgr_bdAstar<bd_astar>` - Bi-directional A* Shortest Path"
-msgstr ""
-
-# 659e5f56cae84ce598a95fe83608da28
-#: ../../index.rst:96
-msgid ""
-":ref:`pgr_bdDijkstra<bd_dijkstra>` - Bi-directional Dijkstra Shortest Path"
-msgstr ""
-
-# 2a0544bf5ac444cb9f814c98ddd9cac0
-#: ../../index.rst:97
-msgid ":ref:`pgr_dijkstra<pgr_dijkstra>` - Shortest Path Dijkstra"
-msgstr ""
-
-# 0d062718bba84332bc05094be53c7b0b
-#: ../../index.rst:98
-msgid ""
-":ref:`pgr_kDijkstra<pgr_kdijkstra>` - Mutliple destination Shortest Path "
-"Dijkstra"
-msgstr ""
-
-# 388e0ef15cac4c7a87ed5f5f7d164eab
-#: ../../index.rst:99
-msgid ":ref:`pgr_ksp<ksp>` - K-Shortest Path"
-msgstr ""
-
-# 488a2b3901c548b394c466b7580ea9a4
-#: ../../index.rst:100
-msgid ":ref:`pgr_tsp<pgr_tsp>` - Traveling Sales Person"
-msgstr ""
-
-# dc4452cb04fb47fb9d72b4a408ffabeb
-#: ../../index.rst:101
-msgid ":ref:`pgr_trsp<trsp>` - Turn Restriction Shortest Path (TRSP)"
-msgstr ""
-
-# e49a23cdc901419e8a3d5f17ed6c6ea0
-#: ../../index.rst:103
-msgid ":ref:`dd_index`"
-msgstr ""
-
-# 4f472ddb75b84b6abd644e500b7415f4
-#: ../../index.rst:105
-msgid ":ref:`pgr_driving_distance` - Driving Distance"
-msgstr ""
-
-# 607bcbfc39c649a4b54020f8d62ce9d0
-#: ../../index.rst:106
-msgid ":ref:`pgr_alphaShape` - Alpha shape computation"
-msgstr ""
-
-# f2e6773ccf394c739af44245aaaf5d02
-#: ../../index.rst:107
-msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
-msgstr ""
-
-# ef6b2fcc629f48c7b88d3ac78527893a
-#: ../../index.rst:110
-msgid ""
-":ref:`pgr_get_column_name` - to get the name of the column as is stored in "
-"the postgres administration tables."
-msgstr ""
-
-# b080d86d06dd4b248b6191f5c98ed0b7
-#: ../../index.rst:111
-msgid ""
-":ref:`pgr_get_table_name` - to retrieve the name of the table as is stored "
-"in the postgres administration tables."
-msgstr ""
-
-# 187f8a7ace1944dda76ab8ae8460d727
-#: ../../index.rst:112
-msgid ":ref:`pgr_is_column_indexed` - to check if the column is indexed."
-msgstr ""
-
-# 767ec7460a314ae0ae3ad47836c94182
-#: ../../index.rst:113
-msgid ""
-":ref:`pgr_is_column_in_table` - to check only for the existance of the "
-"column."
-msgstr ""
-
-# 6d632e8288614fc59c04dbdfa5fceb36
-#: ../../index.rst:114
-msgid ""
-":ref:`pgr_point_to_id` -to insert/get the id of the inserted point in a "
-"vertices table."
-msgstr ""
-
-# fd1def8169f543b9afc595abde9021ef
-#: ../../index.rst:115
-msgid ""
-":ref:`pgr_quote_ident` - to quotes the input text to be used as an "
-"identifier in an SQL statement string."
-msgstr ""
-
-# 79be0c2066f3417fb063d0f11b8858bb
-#: ../../index.rst:116
-msgid ":ref:`pgr_version` - to get pgRouting's version information."
-msgstr ""
-
-# e92514488cf348499952b55020516c0f
-#: ../../index.rst:117
-msgid ":ref:`pgr_versionless` - to compare two version numbers."
-msgstr ""
-
-# 52049dec1aa94a84b44977cf3645aeee
-#: ../../index.rst:118
-msgid ""
-":ref:`pgr_start_point` - to get the start point of a (multi)linestring."
-msgstr ""
-
-# b58261fb708141cfbd15342b18e83df7
-#: ../../index.rst:119
-msgid ":ref:`pgr_end_point` - to get the end point of a (multi)linestring."
-msgstr ""
-
-# ccf6b70d55024c8cb87cd02c497cd394
-#: ../../index.rst:138
-msgid "Developer"
-msgstr "開発者"
-
-# bc20d365d4514a6dbf644153d3323f8d
-#: ../../index.rst:145
-msgid ":ref:`change_log`"
-msgstr ""
-
-# a6c26cabff9f4df5bbaa3de0ed924b11
-#: ../../index.rst:147
-msgid ":ref:`changelog_2_0`"
-msgstr ""
-
-# 9d2d97e5ab6a4af08a3f5903f9a87114
-#: ../../index.rst:148
-msgid ":ref:`changelog_1_x`"
-msgstr ""
-
-# d1533298308344f6bfa8e1644e3aace0
-#: ../../index.rst:157
-msgid "Indices and tables"
-msgstr "索引とテーブル"
-
-# e49a23cdc901419e8a3d5f17ed6c6ea0
-#: ../../index.rst:158
-msgid ":ref:`genindex`"
-msgstr ":ref:`genindex`"
-
-# 1572d01be82949ec8e487a5dc596b6a4
-#: ../../index.rst:159
-msgid ":ref:`search`"
-msgstr ":ref:`search`"
diff --git a/doc/i18n/ja/LC_MESSAGES/doc/index_man.po b/doc/i18n/ja/LC_MESSAGES/doc/index_man.po
deleted file mode 100644
index f9552ff..0000000
--- a/doc/i18n/ja/LC_MESSAGES/doc/index_man.po
+++ /dev/null
@@ -1,57 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# sanak <geosanak at gmail.com>, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:11+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# 3f6e76c37d304447af292931aa52e56f
-#: ../../index_man.rst:13
-msgid "pgRouting Reference"
-msgstr "pgRouting リファレンス"
-
-# 8347fe2ff4be4f9fbcaafbad7adac911
-#: ../../index_man.rst:15
-msgid ""
-"pgRouting extends the `PostGIS <http://postgis.net>`_/`PostgreSQL "
-"<http://postgresql.org>`_ geospatial database to provide geospatial routing "
-"and other network analysis functionality."
-msgstr "pgRouting は地理空間における経路探索や他のネットワーク解析機能を提供するために、 `PostGIS <http://postgis.net>`_/`PostgreSQL <http://postgresql.org>`_ 地理空間データベースを拡張します。"
-
-# 3f626ce82e7e467c8d0b401e6a88d9ca
-#: ../../index_man.rst:22
-msgid "pgRouting provides several :ref:`common functions <common>`:"
-msgstr "pgRouting が提供する :ref:`共通関数 <common>`:"
-
-# 387e53a164e94fa1a2c34d515a8958d2
-#: ../../index_man.rst:36
-msgid "pgRouting defines a few :ref:`custom data types <data_types>`:"
-msgstr ""
-
-# af0d92429b274dda891066d0b07d530f
-#: ../../index_man.rst:50
-msgid "pgRouting functions in alphabetical order:"
-msgstr "pgRouting のアルファベット順関数:"
-
-# 9f2f876866c6467ba1b45223a42790c6
-#: ../../index_man.rst:66
-msgid "If pgRouting is compiled with \"Driving Distance\" enabled:"
-msgstr "pgRouting が \"Driving Distance\" 有効でコンパイルされている場合:"
-
-# 1e0ce2246f904afbaf6c882025206eaa
-#: ../../index_man.rst:75
-msgid "Some functions from previous releases may have been removed."
-msgstr "以前のリリースから、いくつかの関数が削除されているかもしれません。"
diff --git a/doc/i18n/ja/LC_MESSAGES/doc/src/changelog/1_x.po b/doc/i18n/ja/LC_MESSAGES/doc/src/changelog/1_x.po
deleted file mode 100644
index a9b68bf..0000000
--- a/doc/i18n/ja/LC_MESSAGES/doc/src/changelog/1_x.po
+++ /dev/null
@@ -1,152 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-02 02:37+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# 80139f0bb8004897a03df48a5421cd3e
-#: ../../src/changelog/1_x.rst:13
-msgid "pgRouting 1.x Release Notes"
-msgstr ""
-
-# 5a7212eff9be4a0d95a236c540a97f10
-#: ../../src/changelog/1_x.rst:15
-msgid ""
-"The following release notes have been copied from the previous "
-"``RELEASE_NOTES`` file and are kept as a reference. Release notes starting "
-"with :ref:`version 2.0.0 <changelog_2_0>` will follow a different schema."
-msgstr ""
-
-# b5ad5e6d0b78449890dda7fa6d30ac8e
-#: ../../src/changelog/1_x.rst:20
-msgid "Changes for release 1.05"
-msgstr ""
-
-# b37e8bfbe2794101a72e1fbb116f22cd
-# 2f1abbe57331424397cb03d0a5fafee2
-# 2da690cfaaea4d369a7bdb9f9d241bf2
-# e3524add2c604532a66d1bf9a62c5487
-#: ../../src/changelog/1_x.rst:22 ../../src/changelog/1_x.rst:29
-#: ../../src/changelog/1_x.rst:50 ../../src/changelog/1_x.rst:57
-msgid "Bugfixes"
-msgstr ""
-
-# a623678fab0744a3a38546523303795f
-#: ../../src/changelog/1_x.rst:26
-msgid "Changes for release 1.03"
-msgstr ""
-
-# e48813b4d3814054819ed027aa138f70
-#: ../../src/changelog/1_x.rst:28
-msgid "Much faster topology creation"
-msgstr ""
-
-# bdcfed86022a4309a80715bf768350ee
-#: ../../src/changelog/1_x.rst:33
-msgid "Changes for release 1.02"
-msgstr ""
-
-# 3803dd4ae425474caf39f6e7a2f28d9a
-# 0c92f6ddb54741f590c61761ee27cfbe
-#: ../../src/changelog/1_x.rst:35 ../../src/changelog/1_x.rst:42
-msgid "Shooting* bugfixes"
-msgstr ""
-
-# b304d596bae846d98c278686a2c64275
-#: ../../src/changelog/1_x.rst:36
-msgid "Compilation problems solved"
-msgstr ""
-
-# 741de983a5cf41eb98a113e54b847ec1
-#: ../../src/changelog/1_x.rst:40
-msgid "Changes for release 1.01"
-msgstr ""
-
-# 5f23e892e7ad4db6877db1f07f53a7ab
-#: ../../src/changelog/1_x.rst:46
-msgid "Changes for release 1.0"
-msgstr ""
-
-# 3cb70fa7d3064130a540fc0d347e55e7
-#: ../../src/changelog/1_x.rst:48
-msgid "Core and extra functions are separated"
-msgstr ""
-
-# 28375001527c4b8b80781351f8205d8a
-#: ../../src/changelog/1_x.rst:49
-msgid "Cmake build process"
-msgstr ""
-
-# 4c1b7575c8df44fab1668818780b0b4a
-#: ../../src/changelog/1_x.rst:54
-msgid "Changes for release 1.0.0b"
-msgstr ""
-
-# d7a94776f1854770a57103008fe4e7c9
-#: ../../src/changelog/1_x.rst:56
-msgid "Additional SQL file with more simple names for wrapper functions"
-msgstr ""
-
-# faf0ddf9d574472fabced8dc174aa067
-#: ../../src/changelog/1_x.rst:61
-msgid "Changes for release 1.0.0a"
-msgstr ""
-
-# db33894da05b41928897b7e5f71c58b9
-#: ../../src/changelog/1_x.rst:63
-msgid "Shooting* shortest path algorithm for real road networks"
-msgstr ""
-
-# f2c0f4381c3e47b6bde5b359c1e2bbcc
-#: ../../src/changelog/1_x.rst:64
-msgid "Several SQL bugs were fixed"
-msgstr ""
-
-# 6df06ca83d7d4d628cd6dec8fc31a678
-#: ../../src/changelog/1_x.rst:68
-msgid "Changes for release 0.9.9"
-msgstr ""
-
-# e5dce1be773a447db6c9c01820775913
-#: ../../src/changelog/1_x.rst:70
-msgid "PostgreSQL 8.2 support"
-msgstr ""
-
-# 0e71a0116ff04ba2bfb985d5cebf4210
-#: ../../src/changelog/1_x.rst:71
-msgid ""
-"Shortest path functions return empty result if they couldn’t find any path"
-msgstr ""
-
-# 5eecb0b7cf404ff383192dc71ba233a9
-#: ../../src/changelog/1_x.rst:75
-msgid "Changes for release 0.9.8"
-msgstr ""
-
-# ef658c0aaf2f482a99d1dd9691b0762d
-#: ../../src/changelog/1_x.rst:77
-msgid "Renumbering scheme was added to shortest path functions"
-msgstr ""
-
-# e47ae703842949b280bd34e4f45a1c76
-#: ../../src/changelog/1_x.rst:78
-msgid "Directed shortest path functions were added"
-msgstr ""
-
-# 46ab0c039fee4edcb20db32c73c62757
-#: ../../src/changelog/1_x.rst:79
-msgid "routing_postgis.sql was modified to use dijkstra in TSP search"
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/doc/src/changelog/2_0.po b/doc/i18n/ja/LC_MESSAGES/doc/src/changelog/2_0.po
deleted file mode 100644
index 671e7ce..0000000
--- a/doc/i18n/ja/LC_MESSAGES/doc/src/changelog/2_0.po
+++ /dev/null
@@ -1,164 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-02 02:37+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# c1b1516c8da846a195824e5281582281
-#: ../../src/changelog/2_0.rst:13
-msgid "pgRouting 2.0 Release Notes"
-msgstr ""
-
-# 3e67d45a281c48bd9d6eea1ce58d38c3
-#: ../../src/changelog/2_0.rst:15
-msgid ""
-"With the release of pgRouting 2.0 the library has abandoned backwards "
-"compatibility to :ref:`pgRouting 1.x <changelog_1_x>` releases. We did this "
-"so we could restructure pgRouting, standardize the function naming, and "
-"prepare the project for future development. As a result of this effort, we "
-"have been able to simplify pgRouting, add significant new functionality, "
-"integrate documentation and testing into the source tree and make it easier "
-"for multiple developers to make contribution."
-msgstr ""
-
-# b7dbd742ac1c45cea48afc0b61bf3a35
-#: ../../src/changelog/2_0.rst:17
-msgid ""
-"For important changes see the following release notes. To see the full list "
-"of changes check the list of `Git commits "
-"<https://github.com/pgRouting/pgrouting/commits>`_ on Github."
-msgstr ""
-
-# f0cd146d674e46449ba99a8100934ec0
-#: ../../src/changelog/2_0.rst:28
-msgid "Changes for 2.0.0"
-msgstr ""
-
-# ef9ef27b926145108086d936b6ca0b28
-#: ../../src/changelog/2_0.rst:30
-msgid ""
-"Graph Analytics - tools for detecting and fixing connection some problems in"
-" a graph"
-msgstr ""
-
-# 42f88056af7e4432b32f065a7a24a919
-#: ../../src/changelog/2_0.rst:31
-msgid "A collection of useful utility functions"
-msgstr ""
-
-# 2f534c34e0974efe890889f3b21a0b4d
-#: ../../src/changelog/2_0.rst:32
-msgid ""
-"Two new All Pairs Short Path algorithms (pgr_apspJohnson, pgr_apspWarshall)"
-msgstr ""
-
-# 8ce3dd738c2d4dc4b31299c1a0914faf
-#: ../../src/changelog/2_0.rst:33
-msgid ""
-"Bi-directional Dijkstra and A-star search algorithms (pgr_bdAstar, "
-"pgr_bdDijkstra)"
-msgstr ""
-
-# 8f43c2d6075f49e79bbaa6f8aabab4da
-#: ../../src/changelog/2_0.rst:34
-msgid "One to many nodes search (pgr_kDijkstra)"
-msgstr ""
-
-# c4b5876cdfd748b0b212c0934c824f64
-#: ../../src/changelog/2_0.rst:35
-msgid "K alternate paths shortest path (pgr_ksp)"
-msgstr ""
-
-# acd1a044738b4276a2e8e94a0dd76534
-#: ../../src/changelog/2_0.rst:36
-msgid ""
-"New TSP solver that simplifies the code and the build process (pgr_tsp), "
-"dropped \"Gaul Library\" dependency"
-msgstr ""
-
-# 8f926050f9324e25900b05fed56a589e
-#: ../../src/changelog/2_0.rst:37
-msgid "Turn Restricted shortest path (pgr_trsp) that replaces Shooting Star"
-msgstr ""
-
-# d1e83f5c735b4bfcba1d268ea2935a7f
-#: ../../src/changelog/2_0.rst:38
-msgid "Dropped support for Shooting Star"
-msgstr ""
-
-# ca6f7155ffb1427ba1c145efd90b72e3
-#: ../../src/changelog/2_0.rst:39
-msgid ""
-"Built a test infrastructure that is run before major code changes are "
-"checked in"
-msgstr ""
-
-# 3d47be6570aa47e3b48a446cfd55c3f8
-#: ../../src/changelog/2_0.rst:40
-msgid ""
-"Tested and fixed most all of the outstanding bugs reported against 1.x that "
-"existing in the 2.0-dev code base."
-msgstr ""
-
-# f99da159237841a583466e7bdaa5a964
-#: ../../src/changelog/2_0.rst:41
-msgid "Improved build process for Windows"
-msgstr ""
-
-# eaef81c47c28441d9c6d9c55785f6664
-#: ../../src/changelog/2_0.rst:42
-msgid "Modular library design"
-msgstr ""
-
-# 5b1f3d44b55d4502b2761acd0aed5b08
-#: ../../src/changelog/2_0.rst:43
-msgid "Compatibility with PostgreSQL 9.1 or newer"
-msgstr ""
-
-# 592cb52588884e7e88488112e5001c71
-#: ../../src/changelog/2_0.rst:44
-msgid "Compatibility with PostGIS 2.0 or newer"
-msgstr ""
-
-# 6f72789ca5ae4828bbe00dd0b44ed049
-#: ../../src/changelog/2_0.rst:45
-msgid "Installs as PostgreSQL EXTENSION"
-msgstr ""
-
-# 7f85fdaaa5374934b83c0baef45e2074
-#: ../../src/changelog/2_0.rst:46
-msgid "Return types refactored and unified"
-msgstr ""
-
-# 60c67a38e1594c7cb774d5b29c284a17
-#: ../../src/changelog/2_0.rst:47
-msgid "Support for table SCHEMA in function parameters"
-msgstr ""
-
-# da8aea5a0d034dce84e5a2bfd3e2b342
-#: ../../src/changelog/2_0.rst:48
-msgid "Support for ``st_`` PostGIS function prefix"
-msgstr ""
-
-# c204bde79a394b93a1a3c46bbedab1a0
-#: ../../src/changelog/2_0.rst:49
-msgid "Added ``pgr_`` prefix to functions and types"
-msgstr ""
-
-# d7df479e712e4c3689e121a22f45f909
-#: ../../src/changelog/2_0.rst:50
-msgid "Better documentation: http://docs.pgrouting.org"
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/doc/src/developer/discontinued.po b/doc/i18n/ja/LC_MESSAGES/doc/src/developer/discontinued.po
deleted file mode 100644
index 32b7ea1..0000000
--- a/doc/i18n/ja/LC_MESSAGES/doc/src/developer/discontinued.po
+++ /dev/null
@@ -1,55 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-02 02:36+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# 09366a0298d04b47be343c8bf8c6e12a
-#: ../../src/developer/discontinued.rst:13
-msgid "Discontinued Functions"
-msgstr ""
-
-# 8ab172e3591c493f94919b9391d65313
-#: ../../src/developer/discontinued.rst:15
-msgid ""
-"Especially with new major releases functionality may change and functions "
-"may be discontinued for various reasons. Functionality that has been "
-"discontinued will be listed here."
-msgstr ""
-
-# 6bb9bb9b649544eb9384e2c03fa6e60d
-#: ../../src/developer/discontinued.rst:22
-msgid "Shooting Star algorithm"
-msgstr ""
-
-# 6c87b9ac3f1b441a88d4bd7a32449eeb
-#: ../../src/developer/discontinued.rst:24
-msgid "Removed with 2.0.0"
-msgstr ""
-
-# 6afa2318319f4b5e93e9eb99d1dd1843
-#: ../../src/developer/discontinued.rst:25
-msgid "Unresolved bugs, no maintainer, replaced with :ref:`trsp`"
-msgstr ""
-
-# 7e711820b4534143a7fd0d1aa4c5cc58
-#: ../../src/developer/discontinued.rst:26
-msgid ""
-"Please :ref:`contact us <support>` if you're interested to sponsor or "
-"maintain this algorithm. The function signature is still available in "
-":ref:`common_legacy` but it is just a wrapper that throws an error. We have "
-"not included any of the old code for this in this release."
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/doc/src/developer/index.po b/doc/i18n/ja/LC_MESSAGES/doc/src/developer/index.po
deleted file mode 100644
index d576218..0000000
--- a/doc/i18n/ja/LC_MESSAGES/doc/src/developer/index.po
+++ /dev/null
@@ -1,245 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-04 04:17+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# 1d69d70e3de44767ae858314df13b562
-#: ../../src/developer/index.rst:13
-msgid "Developer's Guide"
-msgstr ""
-
-# 82f29db373764b3e96cdb308263a9321
-#: ../../src/developer/index.rst:16
-msgid ""
-"All documentation should be in reStructuredText format. See: "
-"<http://docutils.sf.net/rst.html> for introductory docs."
-msgstr ""
-
-# 5641994c410248fbb2042daf032b4f2d
-#: ../../src/developer/index.rst:20
-msgid "Source Tree Layout"
-msgstr ""
-
-# 696f1ffe5fef47a68eb3f899e315ac24
-#: ../../src/developer/index.rst:23
-msgid "cmake scripts used as part of our build system."
-msgstr ""
-
-# 1f0669f1dce543df8ec72ab64c0a3435
-#: ../../src/developer/index.rst:26
-msgid ""
-"This is the algorithm source tree. Each alogorithm should be contained in "
-"its on sub-tree with doc, sql, src, and test sub-directories. This might get"
-" renamed to \"algorithms\" at some point."
-msgstr ""
-
-# d510542616954ff48b4208874a211b08
-#: ../../src/developer/index.rst:31
-msgid ""
-"This is an implementation of A* Search based on using Boost Graph libraries "
-"for its implementation. This is a Dijkstra shortest path implementation with"
-" a Euclidean Heuristic."
-msgstr ""
-
-# 82e5ed804fa34202903c4ca49117d16e
-#: ../../src/developer/index.rst:36
-msgid ""
-"At the moment this does not have an core in \"src\", but does have a lot of "
-"SQL wrapper code and topology code in the \"sql\" directory. *Algorithm "
-"specific wrappers should get move to the algorithm tree and appropriate "
-"tests should get added to validate the wrappers.*"
-msgstr ""
-
-# bfff36e01ca84eadbf8dd70bb1d2276b
-#: ../../src/developer/index.rst:42
-msgid ""
-"This is an implementation of Dikjstra's shortest path solution using Boost "
-"Graph libraries for the implementation."
-msgstr ""
-
-# 4b632593c518431abd06afc2badcf018
-#: ../../src/developer/index.rst:46
-msgid ""
-"This optional package creates driving distance polygons based on solving a "
-"Dijkstra shortest path solution, then creating polygons based on equal cost "
-"distances from the start point. This optional package requires CGAL "
-"libraries to be installed."
-msgstr ""
-
-# 936e4db4894447a899f6c0b8ca26f617
-#: ../../src/developer/index.rst:52
-msgid ""
-"*DEPRECATED and DOES NOT WORK and IS BEING REMOVED* This is an edge based "
-"shortest path algorithm that supports turn restrictions. It is based on "
-"Boost Graph. Do *NOT* use this algorithm as it is broken, instead use *trsp*"
-" which has the same functionality and is faster and give correct results."
-msgstr ""
-
-# c7f26387b9b24096ba96fb7a518e437a
-#: ../../src/developer/index.rst:59
-msgid ""
-"This is a turn restricted shortest path algorithm. It has some nice features"
-" like you can specify the start and end points as a percentage along an "
-"edge. Restrictions are stored in a separate table from the graph edges and "
-"this make it easier to manage the data."
-msgstr ""
-
-# 3141234121954acaa2dc52065d5d7dce
-#: ../../src/developer/index.rst:65
-msgid ""
-"This optional package provides the ability to compute traveling salesman "
-"problem solutions and compute the resulting route. This optional package "
-"requires GAUL libaries to be installed."
-msgstr ""
-
-# 5ace4e065d5c41c2808f78da0db17058
-#: ../../src/developer/index.rst:70
-msgid "Miscellaneous scripts and tools."
-msgstr ""
-
-# 498a3b11a76644cfa7088aa739876e51
-#: ../../src/developer/index.rst:73
-msgid ""
-"This is the output directory where compiled libraries and installation "
-"targets are staged before installation."
-msgstr ""
-
-# 52c0a49d07ec469bb08dae55c7b29f1d
-#: ../../src/developer/index.rst:78
-msgid "Documentation Layout"
-msgstr ""
-
-# 223870fbd494436ba478618c7f0655ab
-#: ../../src/developer/index.rst:80
-msgid ""
-"*As noted above all documentation should be done using reStructuredText "
-"formated files.*"
-msgstr ""
-
-# 056f8e732df8417c8d30876629544918
-#: ../../src/developer/index.rst:83
-msgid ""
-"Documentation is distributed into the source tree. This top level \"doc\" "
-"directory is intended for high level documentation cover subjects like:"
-msgstr ""
-
-# cb7d40e7fa8f4bf99586caad505ee056
-#: ../../src/developer/index.rst:86
-msgid "Compiling and testing"
-msgstr ""
-
-# f8297a944ea14512ac068fffbebb9704
-#: ../../src/developer/index.rst:87
-msgid "Installation"
-msgstr ""
-
-# 2623e7a6862948a88651b230afb04066
-#: ../../src/developer/index.rst:88
-msgid "Tutorials"
-msgstr ""
-
-# 48cc983d7eb14596bc213e04f2424ef5
-#: ../../src/developer/index.rst:89
-msgid "Users' Guide front materials"
-msgstr ""
-
-# 35d4289409ff4e20b9f3fc99e5ff3ebc
-#: ../../src/developer/index.rst:90
-msgid "Reference Manual front materials"
-msgstr ""
-
-# 0a39de23e4754aeaaf23bda932025e46
-#: ../../src/developer/index.rst:91
-msgid "etc"
-msgstr ""
-
-# 1d97d5eb207f4948a5d054cbc1f0d11d
-#: ../../src/developer/index.rst:93
-msgid ""
-"Since the algorithm specific documentation is contained in the source tree "
-"with the algorithm specific files, the process of building the documentation"
-" and publishing it will need to assemble the details with the front material"
-" as needed."
-msgstr ""
-
-# 4a479c8d44504c31bb0c966f29b59fca
-#: ../../src/developer/index.rst:98
-msgid ""
-"Also, to keep the \"doc\" directory from getting cluttered, each major book "
-"like those listed above, should be contained in a separate directory under "
-"\"doc\". Any images or other materials related to the book should also be "
-"kept in that directory."
-msgstr ""
-
-# c7f0aeb3bd8b446780356e0c8cda8810
-#: ../../src/developer/index.rst:105
-msgid "Testing Infrastructure"
-msgstr ""
-
-# c623e96a0a244704afbc0fd1bdc839eb
-#: ../../src/developer/index.rst:107
-msgid ""
-"There is a very basic testing infrastructure put in place. Here are the "
-"basics of how it works. We need more test cases. Longer term we should "
-"probably get someone to setup travis-ci or jenkins testing frameworks."
-msgstr ""
-
-# 795beec501574346bf79b70ec796327d
-#: ../../src/developer/index.rst:111
-msgid "Here is the graph for the TRSP tests."
-msgstr ""
-
-# c307557b6e9345bb80ecec65181e0e3b
-#: ../../src/developer/index.rst:115
-msgid ""
-"Tests are run via the script at the top level tools/test-runner.pl and it "
-"runs all the test configured tests and at the moment just dumps the results "
-"structure of the test. This can be prettied up later."
-msgstr ""
-
-# 0124c9e435cd45ed8add01948a01c8b4
-#: ../../src/developer/index.rst:119
-msgid ""
-"It also assumes that you have installed the libraries as it tests using the "
-"installed postgresql. This probably needs to be made smarter so we can test "
-"out of the build tree. I'll need to think about that."
-msgstr ""
-
-# ba9f62496a8043bfa546ff97514644ee
-#: ../../src/developer/index.rst:124
-msgid ""
-"Basically each .../test/ directory should include one *test.conf* file that "
-"is a perl script fragment that defines what data files to load and what "
-"tests to run. I have built in some mechanisms to allow test and data to be "
-"pg version and postgis version specific, but I'm not using that yet. So for "
-"example, *core/trsp/test/test-any-00.data* is a sql plain text dump that "
-"will load and needed data for a set of tests. This is also the graph in the "
-"image above. You can specify multiple files to load, but as a group they "
-"need to have unique names."
-msgstr ""
-
-# 43961b4cdd0949378b7a7fc420ef8db7
-#: ../../src/developer/index.rst:133
-msgid ""
-"core/trsp/test/test-any-00.test is a sql command to be run. It will get run "
-"as:"
-msgstr ""
-
-# bcfc5aa90d5f426eb6d757230beba796
-#: ../../src/developer/index.rst:141
-msgid "Then if there is a difference then an test failure is reported."
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/doc/src/developer/sampledata.po b/doc/i18n/ja/LC_MESSAGES/doc/src/developer/sampledata.po
deleted file mode 100644
index 97fd8f3..0000000
--- a/doc/i18n/ja/LC_MESSAGES/doc/src/developer/sampledata.po
+++ /dev/null
@@ -1,59 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# sanak <geosanak at gmail.com>, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:12+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# 8292d60ebfc34fb492ea6193998bab3e
-#: ../../src/developer/sampledata.rst:13
-msgid "Sample Data"
-msgstr "サンプルデータ"
-
-# 4b0d58dd2dff4d9c97134f99fe6b536f
-#: ../../src/developer/sampledata.rst:15
-msgid ""
-"The documentation provides very simple example queries based on a small "
-"sample network. To be able to execute the sample queries, run the following "
-"SQL commands to create a table with a small network data set."
-msgstr ""
-
-# e01baf347c854525b5c3bdc1af8d1523
-#: ../../src/developer/sampledata.rst:20
-msgid "Create table"
-msgstr "テーブル作成"
-
-# f6ec8db09c164800a1e2d817a06e2a20
-#: ../../src/developer/sampledata.rst:40
-msgid "Insert network data"
-msgstr "ネットワークデータの挿入"
-
-# 41d209ca693c4739986152fcdfcb3d25
-#: ../../src/developer/sampledata.rst:70
-msgid ""
-"Before you test a routing function use this query to fill the source and "
-"target columns."
-msgstr ""
-
-# 449efcf19ef14ade9797f5818e87ab24
-#: ../../src/developer/sampledata.rst:77
-msgid "This table is used in some of our examples"
-msgstr ""
-
-# eb2ac2aa18da494185f02f4a2fe0427d
-#: ../../src/developer/sampledata.rst:94
-msgid "The network created in *edge_table*"
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/doc/src/installation/build.po b/doc/i18n/ja/LC_MESSAGES/doc/src/installation/build.po
deleted file mode 100644
index bbb412b..0000000
--- a/doc/i18n/ja/LC_MESSAGES/doc/src/installation/build.po
+++ /dev/null
@@ -1,91 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-02 02:38+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# c5cf6a87972b42e690264e99c7e7f795
-#: ../../src/installation/build.rst:13
-msgid "Build Guide"
-msgstr ""
-
-# 5527da7dad584795b7924d50c9a79bc5
-#: ../../src/installation/build.rst:15
-msgid ""
-"To be able to compile pgRouting make sure that the following dependencies "
-"are met:"
-msgstr ""
-
-# c618619f835444dd967f78370b841d92
-#: ../../src/installation/build.rst:17
-msgid "C and C++ compilers"
-msgstr ""
-
-# c6f85509591d47b1bdd395919b761319
-#: ../../src/installation/build.rst:18
-msgid "Postgresql version >= 8.4 (>= 9.1 recommended)"
-msgstr ""
-
-# 61951def91f1402395e57355188cec62
-#: ../../src/installation/build.rst:19
-msgid "PostGIS version >= 1.5 (>= 2.0 recommended)"
-msgstr ""
-
-# 6a0e008243f44ec2bb618be4f76a271c
-#: ../../src/installation/build.rst:20
-msgid "The Boost Graph Library (BGL). Version >= [TBD]"
-msgstr ""
-
-# 2179e1be36474631a70ac3b85e801064
-#: ../../src/installation/build.rst:21
-msgid "CMake >= 2.8.8"
-msgstr ""
-
-# a2d266c73ac3427a99d9bf46c26d448c
-#: ../../src/installation/build.rst:22
-msgid "(optional, for Driving Distance) CGAL >= [TBD]"
-msgstr ""
-
-# ae32d61c4d0e4d94ab13d2c5f5a63605
-#: ../../src/installation/build.rst:23
-msgid "(optional, for Documentation) Sphinx >= 1.1"
-msgstr ""
-
-# e4af919f484c44b5abe44e0b1687d39d
-#: ../../src/installation/build.rst:27
-msgid "For MinGW on Windows"
-msgstr ""
-
-# b52927567d764a66bf438f60b059cec7
-#: ../../src/installation/build.rst:39
-msgid "For Linux"
-msgstr ""
-
-# 0cca23f827f646d08e5a07057f388eb0
-#: ../../src/installation/build.rst:51
-msgid "With Documentation"
-msgstr ""
-
-# 2addc81e2db341c797d8531756937c4e
-#: ../../src/installation/build.rst:53
-msgid ""
-"Build with documentation (requires `Sphinx <http://sphinx-doc.org/>`_):"
-msgstr ""
-
-# 27e2e61f20fe4b048aa384365b49ced1
-#: ../../src/installation/build.rst:60
-msgid "Rebuild modified documentation only:"
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/doc/src/installation/index.po b/doc/i18n/ja/LC_MESSAGES/doc/src/installation/index.po
deleted file mode 100644
index f4bc127..0000000
--- a/doc/i18n/ja/LC_MESSAGES/doc/src/installation/index.po
+++ /dev/null
@@ -1,202 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:13+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# b41e3e6e82bc4cc1ae494ad03a5e3db0
-#: ../../src/installation/index.rst:13
-msgid "Installation"
-msgstr ""
-
-# c8a69d5d6c9242ad82bf2995a2d43c40
-#: ../../src/installation/index.rst:15
-msgid ""
-"Binary packages are provided for the current version on the following "
-"platforms:"
-msgstr ""
-
-# 724bcb2a14ac419f99c2f7d5cfe22b6d
-#: ../../src/installation/index.rst:19
-msgid "Windows"
-msgstr ""
-
-# b683dadc50114de7a4bd0073be4510cf
-#: ../../src/installation/index.rst:21
-msgid "Winnie Bot Experimental Builds:"
-msgstr ""
-
-# 006e74f1eaf042779773f59248230fcb
-#: ../../src/installation/index.rst:23
-msgid ""
-"`PostgreSQL 9.2 32-bit, 64-bit "
-"<http://winnie.postgis.net/download/windows/pg92/buildbot/>`_"
-msgstr ""
-
-# 7825f3f82e3e426188a552cac3d76d0c
-#: ../../src/installation/index.rst:27
-msgid "Ubuntu/Debian"
-msgstr ""
-
-# 5d5652a1d3a04382800239684a4d26cc
-#: ../../src/installation/index.rst:29
-msgid "Ubuntu packages are available in Launchpad repositories:"
-msgstr ""
-
-# 761afc4473ab4a35aff506637c8e80aa
-#: ../../src/installation/index.rst:31
-msgid "*stable* https://launchpad.net/~georepublic/+archive/pgrouting"
-msgstr ""
-
-# 6500186f8e3d42c88983fa564fc4facf
-#: ../../src/installation/index.rst:32
-msgid ""
-"*unstable* https://launchpad.net/~georepublic/+archive/pgrouting-unstable"
-msgstr ""
-
-# 7050e2f75f7b42fea67597e63cf2f111
-#: ../../src/installation/index.rst:43
-msgid ""
-"Use `UbuntuGIS-unstable PPA <https://launchpad.net/~ubuntugis/+archive"
-"/ubuntugis-unstable>`_ to install PostGIS 2.0."
-msgstr ""
-
-# ce72f9b5cb814c5fb4a4ec48c0f7a294
-#: ../../src/installation/index.rst:47
-msgid "RHEL/CentOS/Fedora"
-msgstr ""
-
-# 06c08177883146369e10318b54f2662a
-#: ../../src/installation/index.rst:49
-msgid ""
-"Fedora RPM's: https://admin.fedoraproject.org/pkgdb/acls/name/pgRouting"
-msgstr ""
-
-# b6146b0917b441268525a1fe54b0f17e
-#: ../../src/installation/index.rst:53
-msgid "OS X"
-msgstr ""
-
-# cdc507aa586e4ac8b00a7d5818bde423
-#: ../../src/installation/index.rst:57
-msgid "Homebrew"
-msgstr ""
-
-# e949ab234590487ca8c4cfa47be11908
-#: ../../src/installation/index.rst:65
-msgid "Source Package"
-msgstr ""
-
-# ec1db5ae27a4451fae0ee5b486baa0db
-#: ../../src/installation/index.rst:68
-msgid "Git 2.0.0-rc1 release"
-msgstr ""
-
-# 8f33d62c1dda4436a3c0a75489dec129
-#: ../../src/installation/index.rst:68
-msgid "`v2.0.0-rc1.tar.gz`_"
-msgstr "`v2.0.0-rc1.tar.gz`_"
-
-# 4eb23002a0464e94a6e62cdef2c72234
-#: ../../src/installation/index.rst:68
-msgid "`v2.0.0-rc1.zip`_"
-msgstr "`v2.0.0-rc1.zip`_"
-
-# b5a17e917a89472c955c6f2cfdfff517
-#: ../../src/installation/index.rst:69
-msgid "Git 2.0.0-beta release"
-msgstr ""
-
-# 3db241a58e4c4d6f868116a6770030b5
-#: ../../src/installation/index.rst:69
-msgid "`v2.0.0-beta.tar.gz`_"
-msgstr "`v2.0.0-beta.tar.gz`_"
-
-# 1e21c08cc7c84816b3ca5cc813d1470d
-#: ../../src/installation/index.rst:69
-msgid "`v2.0.0-beta.zip`_"
-msgstr "`v2.0.0-beta.zip`_"
-
-# 2286b25add114b9e82622ff02d730a8e
-#: ../../src/installation/index.rst:70
-msgid "Git 2.0.0-alpha release"
-msgstr ""
-
-# 3db12a14f5b94a0eae1772d2f84c9058
-#: ../../src/installation/index.rst:70
-msgid "`v2.0.0-alpha.tar.gz`_"
-msgstr "`v2.0.0-alpha.tar.gz`_"
-
-# 9ecc4cba22564943855591c0079db428
-#: ../../src/installation/index.rst:70
-msgid "`v2.0.0-alpha.zip`_"
-msgstr "`v2.0.0-alpha.zip`_"
-
-# 708d8ebb02c2479c86755b38333b9e3d
-#: ../../src/installation/index.rst:71
-msgid "Git master branch"
-msgstr ""
-
-# 07931d9e017b4fc7aabc4ca1affa9ec4
-#: ../../src/installation/index.rst:71
-msgid "`master.tar.gz`_"
-msgstr "`master.tar.gz`_"
-
-# 8ed2f03dcd4b4be1bfee86da4d9bcdc9
-#: ../../src/installation/index.rst:71
-msgid "`master.zip`_"
-msgstr "`master.zip`_"
-
-# bded77386d4a4124b17d0ee2903d5877
-#: ../../src/installation/index.rst:72
-msgid "Git develop branch"
-msgstr ""
-
-# 9da6c796cd3045c28c04775b7c49e27c
-#: ../../src/installation/index.rst:72
-msgid "`develop.tar.gz`_"
-msgstr "`develop.tar.gz`_"
-
-# 1671db28e6df4d6094c2fb0a5afe4106
-#: ../../src/installation/index.rst:72
-msgid "`develop.zip`_"
-msgstr "`develop.zip`_"
-
-# 5a32f08a903c487092dbfb1eae278d84
-#: ../../src/installation/index.rst:92
-msgid "Using Git"
-msgstr ""
-
-# f1630712900a49db825c618380b4a713
-#: ../../src/installation/index.rst:94
-msgid "Git protocol (read-only):"
-msgstr ""
-
-# 9c36f0b296a343ea9c7103d514b6af07
-#: ../../src/installation/index.rst:101
-msgid "HTTPS protocol (read-only): .. code-block:: bash"
-msgstr ""
-
-# 79827ebd49da4add88e7275c6abc8a5d
-#: ../../src/installation/index.rst:104
-msgid "git clone https://github.com/pgRouting/pgrouting.git"
-msgstr ""
-
-# 00af13df90844038a100e3ed84ea8572
-#: ../../src/installation/index.rst:107
-msgid "See :ref:`build` for notes on compiling from source."
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/doc/src/introduction/index.po b/doc/i18n/ja/LC_MESSAGES/doc/src/introduction/index.po
deleted file mode 100644
index 22baeb7..0000000
--- a/doc/i18n/ja/LC_MESSAGES/doc/src/introduction/index.po
+++ /dev/null
@@ -1,33 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:20+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# 3cb0b7c03fa84c59a8bdb4f5efd33fec
-#: ../../src/introduction/index.rst:23
-msgid "Indices and tables"
-msgstr "索引とテーブル"
-
-# 8cbfd2a6f6d44a1599cfff832b626535
-#: ../../src/introduction/index.rst:24
-msgid ":ref:`genindex`"
-msgstr ":ref:`genindex`"
-
-# df46715e85104bf48ebb9fb9005099e0
-#: ../../src/introduction/index.rst:25
-msgid ":ref:`search`"
-msgstr ":ref:`search`"
diff --git a/doc/i18n/ja/LC_MESSAGES/doc/src/introduction/support.po b/doc/i18n/ja/LC_MESSAGES/doc/src/introduction/support.po
deleted file mode 100644
index f994bf9..0000000
--- a/doc/i18n/ja/LC_MESSAGES/doc/src/introduction/support.po
+++ /dev/null
@@ -1,212 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-02 02:37+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# 3f3e673fb58a4facae23af5d85b92a3e
-#: ../../src/introduction/support.rst:13
-msgid "Support"
-msgstr ""
-
-# 054afbc73bff4758b3f1f2f23c57f16c
-#: ../../src/introduction/support.rst:15
-msgid ""
-"pgRouting community support is available through `website "
-"<http://www.pgrouting.org>`_, `documentation <http://docs.pgrouting.org>`_, "
-"tutorials, mailing lists and others. If you’re looking for :ref:`commercial "
-"support <support_commercial>`, find below a list of companies providing "
-"pgRouting development and consulting services."
-msgstr ""
-
-# 00eb6c3f6a9d4ffa879660f666f09fd2
-#: ../../src/introduction/support.rst:19
-msgid "Reporting Problems"
-msgstr ""
-
-# f852f553af29413fa977344ea5ebe860
-#: ../../src/introduction/support.rst:21
-msgid ""
-"Bugs are reported and managed in an `issue tracker "
-"<https://github.com/pgrouting/pgrouting/issues>`_. Please follow these "
-"steps:"
-msgstr ""
-
-# 6db36a1db3dd43e58fd38f9dbd64a222
-#: ../../src/introduction/support.rst:23
-msgid ""
-"Search the tickets to see if your problem has already been reported. If so, "
-"add any extra context you might have found, or at least indicate that you "
-"too are having the problem. This will help us prioritize common issues."
-msgstr ""
-
-# c1bf71ad2fbb411bb697d605d746d9a7
-#: ../../src/introduction/support.rst:24
-msgid ""
-"If your problem is unreported, create a `new issue "
-"<https://github.com/pgRouting/pgrouting/issues/new>`_ for it."
-msgstr ""
-
-# fe9adaa2deb041a29b790096a0172f6d
-#: ../../src/introduction/support.rst:25
-msgid ""
-"In your report include explicit instructions to replicate your issue. The "
-"best tickets include the exact SQL necessary to replicate a problem."
-msgstr ""
-
-# a1b37c7ea578450897528b3c37b048d1
-#: ../../src/introduction/support.rst:26
-msgid ""
-"If you can test older versions of PostGIS for your problem, please do. On "
-"your ticket, note the earliest version the problem appears."
-msgstr ""
-
-# 7c99e581b4624250aff7cdae6bdcd0c8
-#: ../../src/introduction/support.rst:27
-msgid ""
-"For the versions where you can replicate the problem, note the operating "
-"system and version of pgRouting, PostGIS and PostgreSQL."
-msgstr ""
-
-# b5fd7543c8b54f34b556a133fb638174
-#: ../../src/introduction/support.rst:31
-msgid "Mailing List and GIS StackExchange"
-msgstr ""
-
-# 2867bdf7c4d8450b86de7702b26e37ab
-#: ../../src/introduction/support.rst:33
-msgid ""
-"There are two mailing lists for pgRouting hosted on OSGeo mailing list "
-"server:"
-msgstr ""
-
-# 36b218682a5b495386d69caea89554a0
-#: ../../src/introduction/support.rst:35
-msgid ""
-"User mailing list: http://lists.osgeo.org/mailman/listinfo/pgrouting-users"
-msgstr ""
-
-# af2dbf4b5c35487cbbf47c409093d3c3
-#: ../../src/introduction/support.rst:36
-msgid ""
-"Developer mailing list: http://lists.osgeo.org/mailman/listinfo/pgrouting-"
-"dev"
-msgstr ""
-
-# 37947883c7b74e47bfa51cdac68b080a
-#: ../../src/introduction/support.rst:38
-msgid ""
-"For general questions and topics about how to use pgRouting, please write to"
-" the user mailing list."
-msgstr ""
-
-# 7e3dfcc3a31a4ba3bc41f6c7d5a3c19b
-#: ../../src/introduction/support.rst:40
-msgid ""
-"You can also ask at `GIS StackExchange <http://gis.stackexchange.com/>`_ and"
-" tag the question with ``pgrouting``. Find all questions tagged with "
-"``pgrouting`` under http://gis.stackexchange.com/questions/tagged/pgrouting "
-"or subscribe to the `pgRouting questions feed "
-"<http://gis.stackexchange.com/feeds/tag?tagnames=pgrouting&sort=newest>`_."
-msgstr ""
-
-# 18af2d65168042edac691be50d758d38
-#: ../../src/introduction/support.rst:46
-msgid "Commercial Support"
-msgstr ""
-
-# 01737e94c36042388ff00a08c37c5837
-#: ../../src/introduction/support.rst:48
-msgid ""
-"For users who require professional support, development and consulting "
-"services, consider contacting any of the following organizations, which have"
-" significantly contributed to the development of pgRouting:"
-msgstr ""
-
-# 698641cbd88f432f9273710e46df58c5
-#: ../../src/introduction/support.rst:53
-msgid "**Company**"
-msgstr ""
-
-# 0ab2194260424eb395df6be8d03f0611
-#: ../../src/introduction/support.rst:54
-msgid "**Offices in**"
-msgstr ""
-
-# e3c7d214f6aa4fc5bc8e54c16bd586b3
-#: ../../src/introduction/support.rst:55
-msgid "**Website**"
-msgstr ""
-
-# 6342d8daef894a66b042852b7aed0be3
-#: ../../src/introduction/support.rst:56
-msgid "Georepublic"
-msgstr ""
-
-# 4cff0cbdf09142fe96cedf784e527f88
-#: ../../src/introduction/support.rst:57
-msgid "Germany, Japan"
-msgstr ""
-
-# d21fbd0b66dd460782765e0899cda198
-#: ../../src/introduction/support.rst:58
-msgid "http://georepublic.info"
-msgstr ""
-
-# 4709209a400848fbb145d3e9bbd8289b
-#: ../../src/introduction/support.rst:59
-msgid "iMaptools"
-msgstr ""
-
-# 9c4e2cec8d6e49b9b1d395ef568e7bf4
-#: ../../src/introduction/support.rst:60
-msgid "United States"
-msgstr ""
-
-# f139763c29294bb79ebd32b4794edfcb
-#: ../../src/introduction/support.rst:61
-msgid "http://imaptools.com"
-msgstr ""
-
-# bc88272585b7418e87f8aa1e03fd54a5
-#: ../../src/introduction/support.rst:62
-msgid "Orkney Inc."
-msgstr ""
-
-# 84daebce6fc94b6e953b97d39cdf8c25
-#: ../../src/introduction/support.rst:63
-msgid "Japan"
-msgstr ""
-
-# 624d95640fbb41c3b1e2c8be2ac6643f
-#: ../../src/introduction/support.rst:64
-msgid "http://www.orkney.co.jp"
-msgstr ""
-
-# dfe08a11bfac41ccb2e0c58cb1e0147c
-#: ../../src/introduction/support.rst:65
-msgid "Camptocamp"
-msgstr ""
-
-# 6de446c9b4aa48b7bdf619923546c10d
-#: ../../src/introduction/support.rst:66
-msgid "Switzerland, France"
-msgstr ""
-
-# c15be03a07254055b4b18b07c808943c
-#: ../../src/introduction/support.rst:67
-msgid "http://www.camptocamp.com"
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/doc/src/tutorial/analytics.po b/doc/i18n/ja/LC_MESSAGES/doc/src/tutorial/analytics.po
deleted file mode 100644
index ec48ae5..0000000
--- a/doc/i18n/ja/LC_MESSAGES/doc/src/tutorial/analytics.po
+++ /dev/null
@@ -1,215 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:12+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# 980fad1a06484f7c8cef9a7fde4958ec
-#: ../../src/tutorial/analytics.rst:13
-msgid "Graph Analytics"
-msgstr ""
-
-# 92dfdaca18154d5fb972e4b0377224d1
-#: ../../src/tutorial/analytics.rst:15
-msgid "Stephen Woodbridge <woodbri at swoodbridge.com>"
-msgstr ""
-
-# 9d29818196394fe6bde3a64a6a4ecc11
-#: ../../src/tutorial/analytics.rst:16
-msgid ""
-"Stephen Woodbridge. The source code is released under the MIT-X license."
-msgstr ""
-
-# 310f125aa8204065bcc2b95d49db2196
-#: ../../src/tutorial/analytics.rst:20
-msgid "Overview"
-msgstr ""
-
-# a3236e530b504e8895bcee266c2f686b
-#: ../../src/tutorial/analytics.rst:22
-msgid ""
-"It is common to find problems with graphs that have not been constructed "
-"fully noded or in graphs with z-levels at intersection that have been "
-"entered incorrectly. An other problem is one way streets that have been "
-"entered in the wrong direction. We can not detect errors with respect to "
-"\"ground\" truth, but we can look for inconsistencies and some anomalies in "
-"a graph and report them for additional inspections."
-msgstr ""
-
-# be553e417c184b5eb0ad8ee4096ad7fa
-#: ../../src/tutorial/analytics.rst:24
-msgid ""
-"We do not current have any visualization tools for these problems, but I "
-"have used mapserver to render the graph and highlight potential problem "
-"areas. Someone familiar with graphviz might contribute tools for generating "
-"images with that."
-msgstr ""
-
-# d3e3bf311b944d1cb4f8ebfa1e3d1c35
-#: ../../src/tutorial/analytics.rst:28
-msgid "Analyze a Graph"
-msgstr ""
-
-# b7b34732b36b4c3386ebb82a99725c87
-#: ../../src/tutorial/analytics.rst:30
-msgid ""
-"With :ref:`pgr_analyze_graph` the graph can be checked for errors. For "
-"example for table \"mytab\" that has \"mytab_vertices_pgr\" as the vertices "
-"table:"
-msgstr ""
-
-# 883152de9fb3419fa261d8c6761b619f
-#: ../../src/tutorial/analytics.rst:53
-msgid "In the vertices table \"mytab_vertices_pgr\":"
-msgstr ""
-
-# dde249ef911949ab835d0b7d9350c416
-#: ../../src/tutorial/analytics.rst:55
-msgid "Deadends are indentified by ``cnt=1``"
-msgstr ""
-
-# 99f8cb76dde84268b23cafcadb364a32
-#: ../../src/tutorial/analytics.rst:56
-msgid "Potencial gap problems are identified with ``chk=1``."
-msgstr ""
-
-# fd199f728c124588a6fccf258e912e65
-#: ../../src/tutorial/analytics.rst:74
-msgid ""
-"For isolated road segments, for example, a segment where both ends are "
-"deadends. you can find these with the following query:"
-msgstr ""
-
-# 6986ddb18688499ca9065a00ac84b5fc
-#: ../../src/tutorial/analytics.rst:83
-msgid ""
-"If you want to visualize these on a graphic image, then you can use "
-"something like mapserver to render the edges and the vertices and style "
-"based on ``cnt`` or if they are isolated, etc. You can also do this with a "
-"tool like graphviz, or geoserver or other similar tools."
-msgstr ""
-
-# a9cdd802bf2d44b8ad116075edfa006d
-#: ../../src/tutorial/analytics.rst:87
-msgid "Analyze One Way Streets"
-msgstr ""
-
-# ceeba0ba5905459c92f8e38e90544cb4
-#: ../../src/tutorial/analytics.rst:89
-msgid ""
-":ref:`pgr_analyze_oneway` analyzes one way streets in a graph and identifies"
-" any flipped segments. Basically if you count the edges coming into a node "
-"and the edges exiting a node the number has to be greater than one."
-msgstr ""
-
-# 965b89e720674f77a4d6d97b26312235
-#: ../../src/tutorial/analytics.rst:91
-msgid ""
-"This query will add two columns to the vertices_tmp table ``ein int`` and "
-"``eout int`` and populate it with the appropriate counts. After running this"
-" on a graph you can identify nodes with potential problems with the "
-"following query."
-msgstr ""
-
-# 7a483848e9424b628eadf2560140d784
-#: ../../src/tutorial/analytics.rst:94
-msgid ""
-"The rules are defined as an array of text strings that if match the ``col`` "
-"value would be counted as true for the source or target in or out condition."
-msgstr ""
-
-# 07304f9bde2d4248af5616aa3ad7b998
-#: ../../src/tutorial/analytics.rst:98
-msgid "Example"
-msgstr ""
-
-# 3a0862cb802a42dd9a8eb1972e947d4a
-#: ../../src/tutorial/analytics.rst:100
-msgid ""
-"Lets assume we have a table \"st\" of edges and a column \"one_way\" that "
-"might have values like:"
-msgstr ""
-
-# 04d77c12d42a49098ac138d4cd8d1134
-#: ../../src/tutorial/analytics.rst:102
-msgid "'FT'    - oneway from the source to the target node."
-msgstr ""
-
-# 1e433297e48745b8a26d9bdc471bb079
-#: ../../src/tutorial/analytics.rst:103
-msgid "'TF'    - oneway from the target to the source node."
-msgstr ""
-
-# ec58ad375c304521a62c088b53b57cca
-#: ../../src/tutorial/analytics.rst:104
-msgid "'B'     - two way street."
-msgstr ""
-
-# de3d50611ab84de8abc0434aaf176361
-#: ../../src/tutorial/analytics.rst:105
-msgid "''      - empty field, assume twoway."
-msgstr ""
-
-# bec6afb7e7f0453b8d028b521ce38b1f
-#: ../../src/tutorial/analytics.rst:106
-msgid "<NULL>  - NULL field, use two_way_if_null flag."
-msgstr ""
-
-# 8b2a6e5d0f58459b9c0d857b8094b2b1
-#: ../../src/tutorial/analytics.rst:108
-msgid ""
-"Then we could form the following query to analyze the oneway streets for "
-"errors."
-msgstr ""
-
-# ca0da22fa34a4ab8abffbb33176f1196
-#: ../../src/tutorial/analytics.rst:127
-msgid ""
-"Typically these problems are generated by a break in the network, the one "
-"way direction set wrong, maybe an error related to z-levels or a network "
-"that is not properly noded."
-msgstr ""
-
-# e6995522d4b34322a49f7fc234ef5a92
-#: ../../src/tutorial/analytics.rst:129
-msgid ""
-"The above tools do not detect all network issues, but they will identify "
-"some common problems. There are other problems that are hard to detect "
-"because they are more global in nature like multiple disconnected networks. "
-"Think of an island with a road network that is not connected to the mainland"
-" network because the bridge or ferry routes are missing."
-msgstr ""
-
-# f35ee6b63cb84a21956ba58f495375b3
-#: ../../src/tutorial/analytics.rst:133
-msgid "See Also"
-msgstr "参照"
-
-# 46adfdf5d9b042109be5c667ad12afdc
-#: ../../src/tutorial/analytics.rst:135
-msgid ":ref:`pgr_analyze_graph`"
-msgstr ":ref:`pgr_analyze_graph`"
-
-# d6a1979339344f65beef1fb134c99ea0
-#: ../../src/tutorial/analytics.rst:136
-msgid ":ref:`pgr_analyze_oneway`"
-msgstr ":ref:`pgr_analyze_oneway`"
-
-# b1e8747121eb4e61bc26581ab784c9ce
-#: ../../src/tutorial/analytics.rst:137
-msgid ":ref:`pgr_node_network`"
-msgstr ":ref:`pgr_node_network`"
diff --git a/doc/i18n/ja/LC_MESSAGES/doc/src/tutorial/custom_query.po b/doc/i18n/ja/LC_MESSAGES/doc/src/tutorial/custom_query.po
deleted file mode 100644
index c1f55e7..0000000
--- a/doc/i18n/ja/LC_MESSAGES/doc/src/tutorial/custom_query.po
+++ /dev/null
@@ -1,23 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-02 02:36+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# b91f0d6588cf4d91a064ad81536cb9a5
-#: ../../src/tutorial/custom_query.rst:13
-msgid "Custom Query"
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/doc/src/tutorial/custom_wrapper.po b/doc/i18n/ja/LC_MESSAGES/doc/src/tutorial/custom_wrapper.po
deleted file mode 100644
index 15d7cec..0000000
--- a/doc/i18n/ja/LC_MESSAGES/doc/src/tutorial/custom_wrapper.po
+++ /dev/null
@@ -1,23 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-02 02:35+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# eabd47deb6034d1c95a09b9014e26c69
-#: ../../src/tutorial/custom_wrapper.rst:13
-msgid "Custom Wrapper"
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/doc/src/tutorial/index.po b/doc/i18n/ja/LC_MESSAGES/doc/src/tutorial/index.po
deleted file mode 100644
index 0446cde..0000000
--- a/doc/i18n/ja/LC_MESSAGES/doc/src/tutorial/index.po
+++ /dev/null
@@ -1,98 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (187a022 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-23 15:04\n"
-"PO-Revision-Date: 2013-09-23 20:11+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# 6a8f93140b244bb29541e366b9af91dd
-#: ../../src/tutorial/index.rst:13
-msgid "Tutorial"
-msgstr "チュートリアル"
-
-# a64c244637f4455cbded0e09c15fb8e1
-#: ../../src/tutorial/index.rst:16
-msgid ":ref:`Getting started <tutorial>`"
-msgstr ""
-
-# acf4544cb0394b96859312fe489b6b5f
-#: ../../src/tutorial/index.rst:18
-msgid "How to create a database to use for our project"
-msgstr ""
-
-# 29bb03c78beb407cb3c7ef833144e908
-#: ../../src/tutorial/index.rst:19
-msgid "How to load some data"
-msgstr ""
-
-# 6522624c4787423098652645beaca70b
-#: ../../src/tutorial/index.rst:20
-msgid "How to build a topology"
-msgstr ""
-
-# 7e3a1701c1cb4f2399f80cab2f32fbfd
-#: ../../src/tutorial/index.rst:21
-msgid "How to check your graph for errors"
-msgstr ""
-
-# 7a4ac738b5a54446a3fb6a2a872ee973
-#: ../../src/tutorial/index.rst:22
-msgid "How to compute a route"
-msgstr ""
-
-# 267375c5b956437cab09d66694082436
-#: ../../src/tutorial/index.rst:23
-msgid "How to use other tools to view your graph and route"
-msgstr ""
-
-# 7eb6346c00174549a67aa3ba5b639061
-#: ../../src/tutorial/index.rst:24
-msgid "How to create a web app"
-msgstr ""
-
-# 9c88e3538b4443db8727c2ac29dfe064
-#: ../../src/tutorial/index.rst:26
-msgid "Advanced Topics"
-msgstr ""
-
-# 96bfb05f4c374de79f250704d4c8b3e7
-#: ../../src/tutorial/index.rst:28
-msgid ":ref:`topology` for an overview of a topology for routing algorithms."
-msgstr ""
-
-# 5bb8a81892314636b035fe0d8e56b426
-#: ../../src/tutorial/index.rst:29
-msgid ":ref:`analytics` for an overview of the analysis of a graph."
-msgstr ""
-
-# 6cfe3bc3d8b942b188c87a00b5e92cb8
-#: ../../src/tutorial/index.rst:30
-msgid ":ref:`custom_query` that is used in the routing algorithms."
-msgstr ""
-
-# 2fc8eb635e614b249d37a76fb7d66f68
-#: ../../src/tutorial/index.rst:31
-msgid ":ref:`performance` to improve your performance."
-msgstr ""
-
-# 1cf3220a11c4411b85339e05e3546f22
-#: ../../src/tutorial/index.rst:32
-msgid ":ref:`custom_wrapper` to colaborate with a wrapper."
-msgstr ""
-
-# 025472df762342bb955f96e2572111ed
-#: ../../src/tutorial/index.rst:33
-msgid ":ref:`recipes` to colaborate with a recipe."
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/doc/src/tutorial/performance.po b/doc/i18n/ja/LC_MESSAGES/doc/src/tutorial/performance.po
deleted file mode 100644
index 32a34b6..0000000
--- a/doc/i18n/ja/LC_MESSAGES/doc/src/tutorial/performance.po
+++ /dev/null
@@ -1,23 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-02 02:35+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# 1cd2afc4adbb468398fef1d40d5c4336
-#: ../../src/tutorial/performance.rst:13
-msgid "Performance Tips"
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/doc/src/tutorial/recipes.po b/doc/i18n/ja/LC_MESSAGES/doc/src/tutorial/recipes.po
deleted file mode 100644
index c9dc73c..0000000
--- a/doc/i18n/ja/LC_MESSAGES/doc/src/tutorial/recipes.po
+++ /dev/null
@@ -1,23 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-02 02:36+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# 227045a7e0474d4998d6a6d10503851b
-#: ../../src/tutorial/recipes.rst:13
-msgid "Useful Recipes"
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/doc/src/tutorial/topology.po b/doc/i18n/ja/LC_MESSAGES/doc/src/tutorial/topology.po
deleted file mode 100644
index 5e4adb2..0000000
--- a/doc/i18n/ja/LC_MESSAGES/doc/src/tutorial/topology.po
+++ /dev/null
@@ -1,124 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:12+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# 95ba56beb837464cac49ef7880693c4c
-#: ../../src/tutorial/topology.rst:13
-msgid "Routing Topology"
-msgstr ""
-
-# a13e17875be047edb65c4dff0e77e3a3
-#: ../../src/tutorial/topology.rst:15
-msgid "Stephen Woodbridge <woodbri at swoodbridge.com>"
-msgstr ""
-
-# fae10235d477445e8c8ad3b8ddf138c5
-#: ../../src/tutorial/topology.rst:16
-msgid ""
-"Stephen Woodbridge. The source code is released under the MIT-X license."
-msgstr ""
-
-# bb8d84bed17047048664ea7fe078eb94
-#: ../../src/tutorial/topology.rst:20
-msgid "Overview"
-msgstr ""
-
-# 2a882bec3de94c1eb574a3eb222c98e4
-#: ../../src/tutorial/topology.rst:22
-msgid ""
-"Typically when GIS files are loaded into the data database for use with "
-"pgRouting they do not have topology information associated with them. To "
-"create a useful topology the data needs to be \"noded\". This means that "
-"where two or more roads form an intersection there it needs to be a node at "
-"the intersection and all the road segments need to be broken at the "
-"intersection, assuming that you can navigate from any of these segments to "
-"any other segment via that intersection."
-msgstr ""
-
-# 65c5e66127ab486492799e66af98970c
-#: ../../src/tutorial/topology.rst:24
-msgid ""
-"You can use the :ref:`graph analysis functions <analytics>` to help you see "
-"where you might have topology problems in your data. If you need to node "
-"your data, we also have a function :ref:`pgr_nodeNetwork() "
-"<pgr_node_network>` that might work for you. This function splits ALL "
-"crossing segments and nodes them. There are some cases where this might NOT "
-"be the right thing to do."
-msgstr ""
-
-# efc1fb5385064e7da087f3b0371faf57
-#: ../../src/tutorial/topology.rst:26
-msgid ""
-"For example, when you have an overpass and underpass intersection, you do "
-"not want these noded, but pgr_nodeNetwork does not know that is the case and"
-" will node them which is not good because then the router will be able to "
-"turn off the overpass onto the underpass like it was a flat 2D intersection."
-" To deal with this problem some data sets use z-levels at these types of "
-"intersections and other data might not node these intersection which would "
-"be ok."
-msgstr ""
-
-# 43c22da1f7b34db7999adbad7ac7a4e1
-#: ../../src/tutorial/topology.rst:28
-msgid ""
-"For those cases where topology needs to be added the following functions may"
-" be useful. One way to prep the data for pgRouting is to add the following "
-"columns to your table and then populate them as appropriate. This example "
-"makes a lot of assumption like that you original data tables already has "
-"certain columns in it like ``one_way``, ``fcc``, and possibly others and "
-"that they contain specific data values. This is only to give you an idea of "
-"what you can do with your data."
-msgstr ""
-
-# 30e52836594b46f1917dd9ffaa55fc0c
-#: ../../src/tutorial/topology.rst:49
-msgid ""
-"The function :ref:`pgr_createTopology() <pgr_create_topology>` will create "
-"the ``vertices_tmp`` table and populate the ``source`` and ``target`` "
-"columns. The following example populated the remaining columns. In this "
-"example, the ``fcc`` column contains feature class code and the ``CASE`` "
-"statements converts it to an average speed."
-msgstr ""
-
-# 6aa2b52ff1ac4c16a315c9ddfdf90b57
-#: ../../src/tutorial/topology.rst:112
-msgid ""
-"Now your database should be ready to use any (most?) of the pgRouting "
-"algorithms."
-msgstr ""
-
-# 6cc3d005cb454b77959bfbdc6fdd2105
-#: ../../src/tutorial/topology.rst:116
-msgid "See Also"
-msgstr "参照"
-
-# 40847af777814998afe63d824d73c507
-#: ../../src/tutorial/topology.rst:118
-msgid ":ref:`pgr_create_topology`"
-msgstr ":ref:`pgr_create_topology`"
-
-# 974b427fbcf64ec8ab76456dcd37bd7d
-#: ../../src/tutorial/topology.rst:119
-msgid ":ref:`pgr_node_network`"
-msgstr ":ref:`pgr_node_network`"
-
-# adedad6329b0494988daee57bcf0cb98
-#: ../../src/tutorial/topology.rst:120
-msgid ":ref:`pgr_point_to_id`"
-msgstr ":ref:`pgr_point_to_id`"
diff --git a/doc/i18n/ja/LC_MESSAGES/src/apsp_johnson/doc/index.po b/doc/i18n/ja/LC_MESSAGES/src/apsp_johnson/doc/index.po
deleted file mode 100644
index f8c340d..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/apsp_johnson/doc/index.po
+++ /dev/null
@@ -1,140 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-08-06 16:30+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# c9937b945f654be08e4180e57b2723de
-#: ../../../src/apsp_johnson/doc/index.rst:13
-msgid "pgr_apspJohnson - All Pairs Shortest Path, Johnson's Algorithm"
-msgstr ""
-
-# 79936f3a71384a8a9148a3886df7a858
-#: ../../../src/apsp_johnson/doc/index.rst:20
-msgid "Name"
-msgstr "名前"
-
-# 3145d47e956649628986400ffdab56a5
-#: ../../../src/apsp_johnson/doc/index.rst:22
-msgid ""
-"``pgr_apspJohnson`` - Returns all costs for each pair of nodes in the graph."
-msgstr ""
-
-# 24009fd27614418c9dee8d1d27eca209
-#: ../../../src/apsp_johnson/doc/index.rst:26
-msgid "Synopsis"
-msgstr "概要"
-
-# 6aa48442c73548e58b708ec465f0993a
-#: ../../../src/apsp_johnson/doc/index.rst:28
-msgid ""
-"Johnson's algorithm is a way to find the shortest paths between all pairs of"
-" vertices in a sparse, edge weighted, directed graph. Returns a set of "
-":ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows for "
-"every pair of nodes in the graph."
-msgstr ""
-
-# afa92fc38dee48288d509f6006247df1
-#: ../../../src/apsp_johnson/doc/index.rst:36
-msgid "Description"
-msgstr "説明"
-
-# 1256fc43f6ad440689b650619604651c
-#: ../../../src/apsp_johnson/doc/index.rst:38
-msgid ""
-"a SQL query that should return the edges for the graph that will be "
-"analyzed:"
-msgstr ""
-
-# 3f908a1bbdd04eaa9bf33225e67da2c7
-#: ../../../src/apsp_johnson/doc/index.rst:44
-msgid "``int4`` identifier of the source vertex for this edge"
-msgstr ""
-
-# 993049755c48440a9bc398ea9a13fe95
-#: ../../../src/apsp_johnson/doc/index.rst:45
-msgid "``int4`` identifier of the target vertex for this edge"
-msgstr ""
-
-# 28aa6b13c7d54bbdb49c76098a8e4d8e
-#: ../../../src/apsp_johnson/doc/index.rst:46
-msgid "``float8`` a positive value for the cost to traverse this edge"
-msgstr ""
-
-# 7514070dfcd1415e8414754509baee32
-#: ../../../src/apsp_johnson/doc/index.rst:48
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr ":ref:`type_cost_result` のセットを返します:"
-
-# 25408ce6cf3d45bebebd52768b102fc0
-#: ../../../src/apsp_johnson/doc/index.rst:50
-msgid "row sequence"
-msgstr "行の連番"
-
-# e4b9d28e22be4a78a2edc7edbf4f1af3
-#: ../../../src/apsp_johnson/doc/index.rst:51
-msgid "source node ID"
-msgstr ""
-
-# f4ef2869f447410dbdb75bf3856bfa93
-#: ../../../src/apsp_johnson/doc/index.rst:52
-msgid "target node ID"
-msgstr ""
-
-# 74d7b05838ba4c978e0c33f94ab0868f
-#: ../../../src/apsp_johnson/doc/index.rst:53
-msgid "cost to traverse from ``id1`` to ``id2``"
-msgstr ""
-
-# 1767087139fa47218a9eef54ebf0b0f1
-#: ../../../src/apsp_johnson/doc/index.rst:56
-msgid "History"
-msgstr "歴史"
-
-# 5bc1dae5c7f041298849cae876983c32
-#: ../../../src/apsp_johnson/doc/index.rst:57
-msgid "New in version 2.0.0"
-msgstr ""
-
-# b679c9ef11b544a6a6502b461b4e3d96
-#: ../../../src/apsp_johnson/doc/index.rst:61
-msgid "Examples"
-msgstr "例"
-
-# 5d6ef1673c204a229ed05dae0c96d0f8
-#: ../../../src/apsp_johnson/doc/index.rst:78
-msgid "The query uses the :ref:`sampledata` network."
-msgstr ""
-
-# 8ba7f2721fe74966b8dfd4620ae10b9a
-#: ../../../src/apsp_johnson/doc/index.rst:82
-msgid "See Also"
-msgstr "参照"
-
-# 475eb50687e74051895523e791434bc1
-#: ../../../src/apsp_johnson/doc/index.rst:84
-msgid ":ref:`type_cost_result`"
-msgstr ":ref:`type_cost_result`"
-
-# 75e0dd6fa0ed4621acf49893e637237c
-#: ../../../src/apsp_johnson/doc/index.rst:85
-msgid ":ref:`pgr_apsp_warshall`"
-msgstr ""
-
-# 0e63d6ba27244302bfd848164331ea09
-#: ../../../src/apsp_johnson/doc/index.rst:86
-msgid "http://en.wikipedia.org/wiki/Johnson%27s_algorithm"
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/src/apsp_warshall/doc/index.po b/doc/i18n/ja/LC_MESSAGES/src/apsp_warshall/doc/index.po
deleted file mode 100644
index bce6aa8..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/apsp_warshall/doc/index.po
+++ /dev/null
@@ -1,161 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# sanak <geosanak at gmail.com>, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:15+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# 0f1284ff13c64db68306d3e8f9c97beb
-#: ../../../src/apsp_warshall/doc/index.rst:13
-msgid "pgr_apspWarshall - All Pairs Shortest Path, Floyd-Warshall Algorithm"
-msgstr ""
-
-# 42b576974e9a458e951dd429ba4ac9f7
-#: ../../../src/apsp_warshall/doc/index.rst:20
-msgid "Name"
-msgstr "名前"
-
-# 8610cfce602b4e43867a979e40348da5
-#: ../../../src/apsp_warshall/doc/index.rst:22
-msgid ""
-"``pgr_apspWarshall`` - Returns all costs for each pair of nodes in the "
-"graph."
-msgstr ""
-
-# 4c8c0af0a22f4783b5f40d7d68b431da
-#: ../../../src/apsp_warshall/doc/index.rst:26
-msgid "Synopsis"
-msgstr "概要"
-
-# 001f0668ce734f4b9419fd7b22d98b00
-#: ../../../src/apsp_warshall/doc/index.rst:28
-msgid ""
-"The Floyd-Warshall algorithm (also known as Floyd's algorithm and other "
-"names) is a graph analysis algorithm for finding the shortest paths between "
-"all pairs of nodes in a weighted graph. Returns a set of "
-":ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows for "
-"every pair of nodes in the graph."
-msgstr ""
-
-# e7c4a6dd259d46cd9fcf2631dbc22f2e
-#: ../../../src/apsp_warshall/doc/index.rst:36
-msgid "Description"
-msgstr "説明"
-
-# e0f6896524cc4a4d91c418144da5102b
-#: ../../../src/apsp_warshall/doc/index.rst:38
-msgid ""
-"a SQL query that should return the edges for the graph that will be "
-"analyzed:"
-msgstr ""
-
-# 97a32a6ff6e14816834d1eb5e229f2b4
-#: ../../../src/apsp_warshall/doc/index.rst:44
-msgid "``int4`` identifier of the edge"
-msgstr "エッジの識別子[``int4``]"
-
-# b42ae19f11c44f618c034ae1ce6be00a
-#: ../../../src/apsp_warshall/doc/index.rst:45
-msgid "``int4`` identifier of the source vertex for this edge"
-msgstr ""
-
-# c0b57bb608d34affbce8c6bb5ec9302f
-#: ../../../src/apsp_warshall/doc/index.rst:46
-msgid "``int4`` identifier of the target vertex for this edge"
-msgstr ""
-
-# c5cb344693474da29d9a8ff57e96c0f7
-#: ../../../src/apsp_warshall/doc/index.rst:47
-msgid "``float8`` a positive value for the cost to traverse this edge"
-msgstr ""
-
-# 5dd37dfc4bff497d85337655170aa2fe
-#: ../../../src/apsp_warshall/doc/index.rst:49
-msgid "``true`` if the graph is directed"
-msgstr "有向グラフの場合は``true``を指定"
-
-# 6996d55bc55245d39ea7b7fadce791a7
-#: ../../../src/apsp_warshall/doc/index.rst:50
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr "``true``の場合、SQLで生成される行セットの``reverse_cost``カラムは、エッジの逆方向にかかる重みとして使用されます。"
-
-# a26f91fad97b4c1fb810f9cbe42a7c55
-#: ../../../src/apsp_warshall/doc/index.rst:52
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr ":ref:`type_cost_result` のセットを返します:"
-
-# d67cd203b9424e1faa0416ab268956c5
-#: ../../../src/apsp_warshall/doc/index.rst:54
-msgid "row sequence"
-msgstr "行の連番"
-
-# 13448c2239764d798d56189875475d19
-#: ../../../src/apsp_warshall/doc/index.rst:55
-msgid "source node ID"
-msgstr ""
-
-# 754d094ac6ae42d5a22b8855ce7a73e7
-#: ../../../src/apsp_warshall/doc/index.rst:56
-msgid "target node ID"
-msgstr ""
-
-# c9edf1f99746459c9ef79922766fc805
-#: ../../../src/apsp_warshall/doc/index.rst:57
-msgid "cost to traverse from ``id1`` to ``id2``"
-msgstr ""
-
-# e878f40e61334a669136534d82f3bc05
-#: ../../../src/apsp_warshall/doc/index.rst:61
-msgid "History"
-msgstr "歴史"
-
-# b506bf29ad7944d7bd0db6d48ffe9f4f
-#: ../../../src/apsp_warshall/doc/index.rst:62
-msgid "New in version 2.0.0"
-msgstr ""
-
-# 5c0117f6a40740aa8b02bc181e0e01dc
-#: ../../../src/apsp_warshall/doc/index.rst:66
-msgid "Examples"
-msgstr "例"
-
-# 38918d939ef74f6e86528d1060dc810c
-#: ../../../src/apsp_warshall/doc/index.rst:84
-msgid "The query uses the :ref:`sampledata` network."
-msgstr ""
-
-# 4feffc0c2a824f81bb35b10c6f13176d
-#: ../../../src/apsp_warshall/doc/index.rst:88
-msgid "See Also"
-msgstr "参照"
-
-# aa6ecd6c9d584db1adf49b7df81583e9
-#: ../../../src/apsp_warshall/doc/index.rst:90
-msgid ":ref:`type_cost_result`"
-msgstr ":ref:`type_cost_result`"
-
-# 0f05cbf530e0455daed36d6b50bbf30f
-#: ../../../src/apsp_warshall/doc/index.rst:91
-msgid ":ref:`pgr_apsp_johnson`"
-msgstr ""
-
-# b09888d0778445eb93cbdfb7075b4157
-#: ../../../src/apsp_warshall/doc/index.rst:92
-msgid "http://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall_algorithm"
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/src/astar/doc/index.po b/doc/i18n/ja/LC_MESSAGES/src/astar/doc/index.po
deleted file mode 100644
index 3c4525c..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/astar/doc/index.po
+++ /dev/null
@@ -1,203 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# sanak <geosanak at gmail.com>, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-08-07 13:30+0000\n"
-"Last-Translator: sanak <geosanak at gmail.com>\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# b270045aa6e74d789897bb176f5c4a37
-#: ../../../src/astar/doc/index.rst:13
-msgid "pgr_astar - Shortest Path A*"
-msgstr "pgr_astar - A*アルゴリズムによる最短経路探索"
-
-# a4d6dd313b3f44bdbbecdf59c8e4e866
-#: ../../../src/astar/doc/index.rst:20
-msgid "Name"
-msgstr "名前"
-
-# 0c4c2fff9ea445dcbb1dfdca8374cd09
-#: ../../../src/astar/doc/index.rst:22
-msgid "``pgr_astar`` — Returns the shortest path using A* algorithm."
-msgstr "``pgr_astar`` — A*アルゴリズムを用いた最短経路を返します。"
-
-# d3e3e83acd754acb9ac4c583d6dd0649
-#: ../../../src/astar/doc/index.rst:26
-msgid "Synopsis"
-msgstr "概要"
-
-# 87ae068cf08b4ddca7f5bb3722ce57f2
-#: ../../../src/astar/doc/index.rst:28
-msgid ""
-"The A* (pronounced \"A Star\") algorithm is based on Dijkstra's algorithm "
-"with a heuristic that allow it to solve most shortest path problems by "
-"evaluation only a sub-set of the overall graph. Returns a set of "
-":ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows, that "
-"make up a path."
-msgstr "A* (\"A スター\"と発音します) アルゴリズムは経験則ありのダイクストラのアルゴリズムに基づき、全てのグラフの部分集合のみの評価により、最短経路問題を解きます。経路を構成する :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) の行のセットを返します。"
-
-# cd2802c13d3d4798934f9f60cc9ebfb9
-#: ../../../src/astar/doc/index.rst:37
-msgid "Description"
-msgstr "説明"
-
-# 64ca501e984b45df9055511188eb65f4
-#: ../../../src/astar/doc/index.rst:39
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr "SQLのクエリーです。以下に続くカラムからなる行セットを返します:"
-
-# 739adee835f647ff94511acc6e126ee5
-#: ../../../src/astar/doc/index.rst:46
-msgid "``int4`` identifier of the edge"
-msgstr "``int4`` 型のエッジの識別子"
-
-# 72186cf53aee4035bdbcc0495fb6bf42
-#: ../../../src/astar/doc/index.rst:47
-msgid "``int4`` identifier of the source vertex"
-msgstr "``int4`` 型の始点ノードの識別子"
-
-# 0857159bb2c949bb892388c25f6fb4ec
-#: ../../../src/astar/doc/index.rst:48
-msgid "``int4`` identifier of the target vertex"
-msgstr "``int4`` 型の終点ノードの識別子"
-
-# 4ddccc85290d4aba9b82668e90b2ba31
-#: ../../../src/astar/doc/index.rst:49
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr "``float8`` 型のエッジの横断コストの値。負のコストはエッジがグラフに挿入されることを防ぎます。"
-
-# d21510a5452e4a098e36f5ae7f7585b4
-#: ../../../src/astar/doc/index.rst:50
-msgid "``x`` coordinate of the start point of the edge"
-msgstr "エッジの始点の ``x`` 座標"
-
-# 78d6feeb1c174e96ad209b97fb1cd538
-#: ../../../src/astar/doc/index.rst:51
-msgid "``y`` coordinate of the start point of the edge"
-msgstr "エッジの始点の ``y`` 座標"
-
-# b7404cbf8c86414494f72f87b3702241
-#: ../../../src/astar/doc/index.rst:52
-msgid "``x`` coordinate of the end point of the edge"
-msgstr "エッジの終点の ``x`` 座標"
-
-# d0f8d9e10994475dac4ad4e8ea1315f7
-#: ../../../src/astar/doc/index.rst:53
-msgid "``y`` coordinate of the end point of the edge"
-msgstr "エッジの終点の ``y`` 座標"
-
-# 46b33f8b295043059fce210e43698191
-#: ../../../src/astar/doc/index.rst:54
-msgid ""
-"(optional) the cost for the reverse traversal of the edge. This is only used"
-" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
-"above remark about negative costs)."
-msgstr "(オプション) エッジの反対方向のコスト。この値は ``directed`` および ``has_rcost`` パラメータが ``true`` の場合のみ使用されます。(負のコストについては前述の通りです)"
-
-# bfd63fe9d374441babb8662a0874482b
-#: ../../../src/astar/doc/index.rst:56
-msgid "``int4`` id of the start point"
-msgstr "``int4`` 型の始点ノードのID"
-
-# 85d35dcc4ced4efaac8d7b50f4ff9357
-#: ../../../src/astar/doc/index.rst:57
-msgid "``int4`` id of the end point"
-msgstr "``int4`` 型の始点ノードのID"
-
-# f93b4ce091a6440d9a656b374fce6636
-#: ../../../src/astar/doc/index.rst:58
-msgid "``true`` if the graph is directed"
-msgstr "有向グラフの場合は ``true`` を指定"
-
-# 1a783bf8f88146999659f222ef236d1b
-#: ../../../src/astar/doc/index.rst:59
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr "``true`` の場合、SQLで生成される行セットの ``reverse_cost`` カラムは、エッジの逆方向の横断コストとして使用されます。"
-
-# c0f6cf1f1daf40bc8d08fa3b85c3af6b
-#: ../../../src/astar/doc/index.rst:61
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr ":ref:`type_cost_result` のセットを返します:"
-
-# 22b5e075f6e94c608af67a4c040f4e70
-#: ../../../src/astar/doc/index.rst:63
-msgid "row sequence"
-msgstr "行の連番"
-
-# 1f3ccd737354442fb4d87684690988a2
-#: ../../../src/astar/doc/index.rst:64
-msgid "node ID"
-msgstr "ノードID"
-
-# 8a4fe9f16a934ffa842ea049c36728bf
-#: ../../../src/astar/doc/index.rst:65
-msgid "edge ID (``-1`` for the last row)"
-msgstr "エッジID (最終行は ``-1``)"
-
-# 7cff3509785e40adb8ff4ce4f4bf0774
-#: ../../../src/astar/doc/index.rst:66
-msgid "cost to traverse from ``id1`` using ``id2``"
-msgstr "``id1`` から ``id2`` を横断するコスト"
-
-# 9cc8b235e4214d4c87b729d24031271e
-#: ../../../src/astar/doc/index.rst:70
-msgid "History"
-msgstr "履歴"
-
-# 623c2a84d062407d93855875a467dbe1
-#: ../../../src/astar/doc/index.rst:71
-msgid "Renamed in version 2.0.0"
-msgstr "バージョン 2.0.0 でリネームされました"
-
-# 7f75da722e6e4680a8d9e0a3d69678b9
-#: ../../../src/astar/doc/index.rst:75
-msgid "Examples"
-msgstr "例"
-
-# 533a7e7ccd3645c4a6e6d3e90875cccf
-#: ../../../src/astar/doc/index.rst:77
-msgid "Without ``reverse_cost``"
-msgstr "``reverse_cost`` なしの場合"
-
-# 0cf32ba2b9dd435191e182fa2e1219a3
-#: ../../../src/astar/doc/index.rst:99
-msgid "With ``reverse_cost``"
-msgstr "``reverse_cost`` ありの場合"
-
-# 266a522386364908870781287ffe7c77
-#: ../../../src/astar/doc/index.rst:117
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "上記クエリは :ref:`sampledata` のネットワークを使用しています。"
-
-# 3f0ab007b6c24393bda58a4c8f051a6b
-#: ../../../src/astar/doc/index.rst:121
-msgid "See Also"
-msgstr "参照"
-
-# c407743821a8437fa59503cbee2e31b7
-#: ../../../src/astar/doc/index.rst:123
-msgid ":ref:`type_cost_result`"
-msgstr ":ref:`type_cost_result`"
-
-# 994c0952621c47349ec4e5b209ee1129
-#: ../../../src/astar/doc/index.rst:124
-msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
-msgstr "http://en.wikipedia.org/wiki/A*_search_algorithm"
diff --git a/doc/i18n/ja/LC_MESSAGES/src/bd_astar/doc/index.po b/doc/i18n/ja/LC_MESSAGES/src/bd_astar/doc/index.po
deleted file mode 100644
index 463d4b5..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/bd_astar/doc/index.po
+++ /dev/null
@@ -1,222 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-08-07 12:30+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# d85c70ae393d476284068bf297195cc7
-#: ../../../src/bd_astar/doc/index.rst:13
-msgid "pgr_bdAstar - Bi-directional A* Shortest Path"
-msgstr ""
-
-# 59f0d447a4034729bbdc2dad7b88dcce
-#: ../../../src/bd_astar/doc/index.rst:20
-msgid "Name"
-msgstr "名前"
-
-# ff5b6b1bd362408c80bec7cfbc7108bf
-#: ../../../src/bd_astar/doc/index.rst:22
-msgid ""
-"``pgr_bdAstar`` - Returns the shortest path using Bidirectional A* "
-"algorithm."
-msgstr ""
-
-# 6e2dd97777d64f02afc4b396822f7c37
-#: ../../../src/bd_astar/doc/index.rst:26
-msgid "Synopsis"
-msgstr "概要"
-
-# d88a86d95c0447db93be2a1f185b91bd
-#: ../../../src/bd_astar/doc/index.rst:28
-msgid ""
-"This is a bi-directional A* search algorithm. It searchs from the source "
-"toward the distination and at the same time from the destination to the "
-"source and terminates whe these to searchs meet in the middle. Returns a set"
-" of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows, "
-"that make up a path."
-msgstr ""
-
-# c9f7d12fb2c9416390cbb64c61cdaaba
-#: ../../../src/bd_astar/doc/index.rst:37
-msgid "Description"
-msgstr "説明"
-
-# 2228656c57724bc18029fa054849a999
-#: ../../../src/bd_astar/doc/index.rst:39
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr "SQLのクエリーです。以下に続くカラムからなる行セットを返します:"
-
-# ba13914fdd78469389ae129eee02785f
-#: ../../../src/bd_astar/doc/index.rst:46
-msgid "``int4`` identifier of the edge"
-msgstr "エッジの識別子[``int4``]"
-
-# 5e7f92a0ffa845a385efe72da0760ee5
-#: ../../../src/bd_astar/doc/index.rst:47
-msgid "``int4`` identifier of the source vertex"
-msgstr "``int4``型の始点ノードの識別子"
-
-# 194b29afb7b3486eb5611222273bb323
-#: ../../../src/bd_astar/doc/index.rst:48
-msgid "``int4`` identifier of the target vertex"
-msgstr "``int4``型の終点ノードの識別子"
-
-# 37f1ad354f13413fa6a47ec8ceaa3262
-#: ../../../src/bd_astar/doc/index.rst:49
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr "``float8``型のエッジにかかる重み。負の重みはエッジがグラフに挿入されることを防ぎます。"
-
-# f7bf689e55584ee0b2e095b8f3147354
-#: ../../../src/bd_astar/doc/index.rst:50
-msgid "``x`` coordinate of the start point of the edge"
-msgstr "エッジの始点の``x``座標"
-
-# e7b2325c3e8f473fae345bff6b9f9af6
-#: ../../../src/bd_astar/doc/index.rst:51
-msgid "``y`` coordinate of the start point of the edge"
-msgstr "エッジの始点の``y``座標"
-
-# a554e40ce41e485d83bdcc425edab876
-#: ../../../src/bd_astar/doc/index.rst:52
-msgid "``x`` coordinate of the end point of the edge"
-msgstr "エッジの終点の``x``座標"
-
-# d0033effb66d4af891d51c0553106616
-#: ../../../src/bd_astar/doc/index.rst:53
-msgid "``y`` coordinate of the end point of the edge"
-msgstr "エッジの終点の``y``座標"
-
-# 52fd318293ff42458d93837f06a5dd78
-#: ../../../src/bd_astar/doc/index.rst:54
-msgid ""
-"(optional) the cost for the reverse traversal of the edge. This is only used"
-" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
-"above remark about negative costs)."
-msgstr "(オプション) エッジの反対方向のコスト。この値は``directed``および``has_rcost``パラメータが``true``の場合のみ使用されます。(負のコストについては前述の通りです)"
-
-# b2ec788128e44b59a8a9eaf588b3ef93
-#: ../../../src/bd_astar/doc/index.rst:56
-msgid "``int4`` id of the start point"
-msgstr "``int4``型の始点ノードのID"
-
-# f5809c895ef3496fbaf43892301858ca
-#: ../../../src/bd_astar/doc/index.rst:57
-msgid "``int4`` id of the end point"
-msgstr "``int4``型の始点ノードのID"
-
-# 29607e76254f42938d9c38a10e11c7b9
-#: ../../../src/bd_astar/doc/index.rst:58
-msgid "``true`` if the graph is directed"
-msgstr "有向グラフの場合は``true``を指定"
-
-# f4b5e84674e749be9f6ba934004cd598
-#: ../../../src/bd_astar/doc/index.rst:59
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr "``true``の場合、SQLで生成される行セットの``reverse_cost``カラムは、エッジの逆方向にかかる重みとして使用されます。"
-
-# 9969bf0e6e5f40e3b44efbfd0e53d70b
-#: ../../../src/bd_astar/doc/index.rst:61
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr ":ref:`type_cost_result` のセットを返します:"
-
-# 1634c060516d40388b007b17f2fee94c
-#: ../../../src/bd_astar/doc/index.rst:63
-msgid "row sequence"
-msgstr "行の連番"
-
-# 4a478cf05b72415ebfc7f95d8e0b8625
-#: ../../../src/bd_astar/doc/index.rst:64
-msgid "node ID"
-msgstr "ノードID"
-
-# b94cd2b23db94500b803d9c02b8ab358
-#: ../../../src/bd_astar/doc/index.rst:65
-msgid "edge ID (``-1`` for the last row)"
-msgstr "エッジID (最終行は``-1``)"
-
-# b8b6a3e185934bc4b7d44f66694523c5
-#: ../../../src/bd_astar/doc/index.rst:66
-msgid "cost to traverse from ``id1`` using ``id2``"
-msgstr "``id1``から``id2``を横断するコスト"
-
-# f9a6aa6c249c40968bc39a3db86a5ebe
-#: ../../../src/bd_astar/doc/index.rst:70
-msgid ""
-"You must reconnect to the database after ``CREATE EXTENSION pgrouting``. "
-"Otherwise the function will return ``Error computing path: std::bad_alloc``."
-msgstr ""
-
-# e574996346fe4d3d937be160d621e660
-#: ../../../src/bd_astar/doc/index.rst:74
-msgid "History"
-msgstr "歴史"
-
-# 98c01f9f86914541a78481fc80a804dd
-#: ../../../src/bd_astar/doc/index.rst:75
-msgid "New in version 2.0.0"
-msgstr ""
-
-# fd577945de174be79b0b53dc92d1fdae
-#: ../../../src/bd_astar/doc/index.rst:79
-msgid "Examples"
-msgstr "例"
-
-# 1e4a6776b9154f5da5abb5c6d64f3221
-#: ../../../src/bd_astar/doc/index.rst:81
-msgid "Without ``reverse_cost``"
-msgstr "``reverse_cost``なしの場合"
-
-# 3f707fb48bdf4edfa0f1b3657cfcbb7a
-#: ../../../src/bd_astar/doc/index.rst:101
-msgid "With ``reverse_cost``"
-msgstr "``reverse_cost``ありの場合"
-
-# 473f16db67964e14b8efb25a1cf057b9
-#: ../../../src/bd_astar/doc/index.rst:120
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "上記クエリは :ref:`sampledata` のネットワークを使用しています。"
-
-# 7289ec5f57844a379608577bd455d4b5
-#: ../../../src/bd_astar/doc/index.rst:124
-msgid "See Also"
-msgstr "参照"
-
-# 773014635f2c4e87a452416b391581e5
-#: ../../../src/bd_astar/doc/index.rst:126
-msgid ":ref:`type_cost_result`"
-msgstr ":ref:`type_cost_result`"
-
-# f4c3b61a97b94311a9f83508c040b614
-#: ../../../src/bd_astar/doc/index.rst:127
-msgid ":ref:`bd_dijkstra`"
-msgstr ":ref:`bd_dijkstra`"
-
-# 769c0e94fba24848bb36a7bb9ca90800
-#: ../../../src/bd_astar/doc/index.rst:128
-msgid "http://en.wikipedia.org/wiki/Bidirectional_search"
-msgstr "http://en.wikipedia.org/wiki/Bidirectional_search"
-
-# bc6e6a206f44475d91e857ec85d36106
-#: ../../../src/bd_astar/doc/index.rst:129
-msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
-msgstr "http://en.wikipedia.org/wiki/A*_search_algorithm"
diff --git a/doc/i18n/ja/LC_MESSAGES/src/bd_dijkstra/doc/index.po b/doc/i18n/ja/LC_MESSAGES/src/bd_dijkstra/doc/index.po
deleted file mode 100644
index c9a75f1..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/bd_dijkstra/doc/index.po
+++ /dev/null
@@ -1,195 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-08-07 12:30+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# 3c0a9e188c614b0d8a83fad794d3b42f
-#: ../../../src/bd_dijkstra/doc/index.rst:13
-msgid "pgr_bdDijkstra - Bi-directional Dijkstra Shortest Path"
-msgstr ""
-
-# 2a8d7f88cd7c41549e90531d1d565848
-#: ../../../src/bd_dijkstra/doc/index.rst:21
-msgid "Name"
-msgstr "名前"
-
-# 9e326337967141dd8cb35c1a7eb5d7b2
-#: ../../../src/bd_dijkstra/doc/index.rst:23
-msgid ""
-"``pgr_bdDijkstra`` - Returns the shortest path using Bidirectional Dijkstra "
-"algorithm."
-msgstr ""
-
-# e2e0af558a7340a7a29f667b07037690
-#: ../../../src/bd_dijkstra/doc/index.rst:27
-msgid "Synopsis"
-msgstr "概要"
-
-# 23d2258a058a4b5fa6dcb6655362484a
-#: ../../../src/bd_dijkstra/doc/index.rst:29
-msgid ""
-"This is a bi-directional Dijkstra search algorithm. It searchs from the "
-"source toward the distination and at the same time from the destination to "
-"the source and terminates whe these to searchs meet in the middle. Returns a"
-" set of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows,"
-" that make up a path."
-msgstr ""
-
-# b37dbb1c097441d7afac9b1c3be4fa16
-#: ../../../src/bd_dijkstra/doc/index.rst:38
-msgid "Description"
-msgstr "説明"
-
-# 27182b928a294e22bbd7567e7ef6a1a6
-#: ../../../src/bd_dijkstra/doc/index.rst:40
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr "SQLのクエリーです。以下に続くカラムからなる行セットを返します:"
-
-# d5ecf6b2aa844b768783b31d91cc0d1c
-#: ../../../src/bd_dijkstra/doc/index.rst:47
-msgid "``int4`` identifier of the edge"
-msgstr "エッジの識別子[``int4``]"
-
-# 282a69ee248b4dcfa591ec2aa3668cf4
-#: ../../../src/bd_dijkstra/doc/index.rst:48
-msgid "``int4`` identifier of the source vertex"
-msgstr "``int4``型の始点ノードの識別子"
-
-# d8ca4a99797f4da89401ca4eae5de81b
-#: ../../../src/bd_dijkstra/doc/index.rst:49
-msgid "``int4`` identifier of the target vertex"
-msgstr "``int4``型の終点ノードの識別子"
-
-# 16d3eacf8377421dbb3aa3f559f8c2fd
-#: ../../../src/bd_dijkstra/doc/index.rst:50
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr "``float8``型のエッジにかかる重み。負の重みはエッジがグラフに挿入されることを防ぎます。"
-
-# 2a8cd5659ad849358862b656205877aa
-#: ../../../src/bd_dijkstra/doc/index.rst:51
-msgid ""
-"(optional) the cost for the reverse traversal of the edge. This is only used"
-" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
-"above remark about negative costs)."
-msgstr "(オプション) エッジの反対方向のコスト。この値は``directed``および``has_rcost``パラメータが``true``の場合のみ使用されます。(負のコストについては前述の通りです)"
-
-# 95f13721773f433891e1e8b50ac04509
-#: ../../../src/bd_dijkstra/doc/index.rst:53
-msgid "``int4`` id of the start point"
-msgstr "``int4``型の始点ノードのID"
-
-# b9798483a7944c23b68242badf5ba991
-#: ../../../src/bd_dijkstra/doc/index.rst:54
-msgid "``int4`` id of the end point"
-msgstr "``int4``型の始点ノードのID"
-
-# ff73a5d65d1e44728449829347874aa3
-#: ../../../src/bd_dijkstra/doc/index.rst:55
-msgid "``true`` if the graph is directed"
-msgstr "有向グラフの場合は``true``を指定"
-
-# c177b69ec8f34e3e8347a48cd4fd0eec
-#: ../../../src/bd_dijkstra/doc/index.rst:56
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr "``true``の場合、SQLで生成される行セットの``reverse_cost``カラムは、エッジの逆方向にかかる重みとして使用されます。"
-
-# 94093f98581b414e8de69c5c03ed7ff9
-#: ../../../src/bd_dijkstra/doc/index.rst:58
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr ":ref:`type_cost_result` のセットを返します:"
-
-# b6dcdf2882344c97b13a0a1b5dcfc76f
-#: ../../../src/bd_dijkstra/doc/index.rst:60
-msgid "row sequence"
-msgstr "行の連番"
-
-# 71a25f43edad4704b8f7bc386b951d6a
-#: ../../../src/bd_dijkstra/doc/index.rst:61
-msgid "node ID"
-msgstr "ノードID"
-
-# bb342316c7374f38ae60758a95fe5aa0
-#: ../../../src/bd_dijkstra/doc/index.rst:62
-msgid "edge ID (``-1`` for the last row)"
-msgstr "エッジID (最終行は``-1``)"
-
-# 903aaea6437d438094faa1255671261a
-#: ../../../src/bd_dijkstra/doc/index.rst:63
-msgid "cost to traverse from ``id1`` using ``id2``"
-msgstr "``id1``から``id2``を横断するコスト"
-
-# 9422981e26f04c7e9edb754944c47cea
-#: ../../../src/bd_dijkstra/doc/index.rst:66
-msgid "History"
-msgstr "歴史"
-
-# c1db7489de2b4ef8880d8d9f3abb66e3
-#: ../../../src/bd_dijkstra/doc/index.rst:67
-msgid "New in version 2.0.0"
-msgstr ""
-
-# e61d7de8bdb04972a567e5884e47773a
-#: ../../../src/bd_dijkstra/doc/index.rst:71
-msgid "Examples"
-msgstr "例"
-
-# e5bb5ec0cf844c229475d4e75c327eb3
-#: ../../../src/bd_dijkstra/doc/index.rst:73
-msgid "Without ``reverse_cost``"
-msgstr "``reverse_cost``なしの場合"
-
-# 7b425886ca994a1e87e833443909b584
-#: ../../../src/bd_dijkstra/doc/index.rst:93
-msgid "With ``reverse_cost``"
-msgstr "``reverse_cost``ありの場合"
-
-# f47bce06d90b47c0a3ba534e4af09213
-#: ../../../src/bd_dijkstra/doc/index.rst:113
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "上記クエリは :ref:`sampledata` のネットワークを使用しています。"
-
-# dce05fd947104f7fb53f334994b47db8
-#: ../../../src/bd_dijkstra/doc/index.rst:117
-msgid "See Also"
-msgstr "参照"
-
-# e9e1be5a32c8439083185caf29aaa09b
-#: ../../../src/bd_dijkstra/doc/index.rst:119
-msgid ":ref:`type_cost_result`"
-msgstr ":ref:`type_cost_result`"
-
-# 7e04714c590148078028bde3efbb5f57
-#: ../../../src/bd_dijkstra/doc/index.rst:120
-msgid ":ref:`bd_astar`"
-msgstr ":ref:`bd_astar`"
-
-# 1e532cd9d5634fb0934e837b0db7ad8a
-#: ../../../src/bd_dijkstra/doc/index.rst:121
-msgid "http://en.wikipedia.org/wiki/Bidirectional_search"
-msgstr "http://en.wikipedia.org/wiki/Bidirectional_search"
-
-# e3826d9e6a084b349a9ed0d6fffdb1ad
-#: ../../../src/bd_dijkstra/doc/index.rst:122
-msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
-msgstr "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
diff --git a/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/analyze_graph.po b/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/analyze_graph.po
deleted file mode 100644
index e663f84..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/analyze_graph.po
+++ /dev/null
@@ -1,411 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:13+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# 4ec68d2c61f945ef81648e1b5c6415f1
-#: ../../../src/common/doc/functions/analyze_graph.rst:13
-msgid "pgr_analyzeGraph"
-msgstr ""
-
-# 4c3762e114fb4e67a2515bba541c8f36
-#: ../../../src/common/doc/functions/analyze_graph.rst:20
-msgid "Name"
-msgstr "名前"
-
-# ac455e0fb31e44308320f39bbd78adfc
-#: ../../../src/common/doc/functions/analyze_graph.rst:22
-msgid "``pgr_anlizeGraph`` — Analyzes the network topology."
-msgstr ""
-
-# 7d6b06e1d5354d94ac2855084e4e9e71
-#: ../../../src/common/doc/functions/analyze_graph.rst:26
-msgid "Synopsis"
-msgstr "概要"
-
-# 19f89e76f38342129988c1b3de66af9a
-# ebc7d96a54cb409a916a9e44ff8544f9
-#: ../../../src/common/doc/functions/analyze_graph.rst:28
-#: ../../../src/common/doc/functions/analyze_graph.rst:61
-msgid "The function returns:"
-msgstr ""
-
-# b996e0d0950741438419d72fc2aaa1a6
-# ac02a2dca7d24bb296b418e5019b5d52
-#: ../../../src/common/doc/functions/analyze_graph.rst:30
-#: ../../../src/common/doc/functions/analyze_graph.rst:63
-msgid "``OK`` after the analysis has finished."
-msgstr ""
-
-# 6494556e5a0240b6b89d6cc13588a959
-# 226def8709104fefbde358ee19f0dbdc
-#: ../../../src/common/doc/functions/analyze_graph.rst:31
-#: ../../../src/common/doc/functions/analyze_graph.rst:69
-msgid "``FAIL`` when the analysis was not completed due to an error."
-msgstr ""
-
-# 258df98c829a48e794073f4f67e64d37
-#: ../../../src/common/doc/functions/analyze_graph.rst:40
-msgid "Description"
-msgstr "説明"
-
-# 2ea823d9ac6a4b309542c1efdf685188
-#: ../../../src/common/doc/functions/analyze_graph.rst:43
-msgid "Prerequisites"
-msgstr ""
-
-# b6f61bceeb764c09a0519ef218788641
-#: ../../../src/common/doc/functions/analyze_graph.rst:44
-msgid ""
-"The  edge table to be analyzed must contain a source column and a target "
-"column filled with id's of the vertices of the segments and the "
-"corresponding vertices table <edge_table>_vertices_pgr that stores the "
-"vertices information."
-msgstr ""
-
-# bc5a5fd73e194a1eb18560c62b8726c5
-#: ../../../src/common/doc/functions/analyze_graph.rst:46
-msgid ""
-"Use :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create the "
-"vertices table."
-msgstr ""
-
-# dddd02de549c450da54ecc30da50bcac
-#: ../../../src/common/doc/functions/analyze_graph.rst:47
-msgid ""
-"Use :ref:`pgr_createTopology <pgr_create_topology>` to create the topology "
-"and the vertices table."
-msgstr ""
-
-# 2f1a64c5c7df47c08b9460c1c2ca9a0d
-#: ../../../src/common/doc/functions/analyze_graph.rst:50
-msgid "Parameters"
-msgstr ""
-
-# f7ef120ecd234df3bc9de0b69122a094
-#: ../../../src/common/doc/functions/analyze_graph.rst:51
-msgid "The analyze graph function accepts the following parameters:"
-msgstr ""
-
-# 93b5fa9bcdd84ccbae6d4945adb6b9b5
-#: ../../../src/common/doc/functions/analyze_graph.rst:53
-msgid "``text`` Network table name. (may contain the schema name as well)"
-msgstr ""
-
-# 0c3bf879395649e1aac68ae62880746b
-#: ../../../src/common/doc/functions/analyze_graph.rst:54
-msgid ""
-"``float8`` Snapping tolerance of disconnected edges. (in projection unit)"
-msgstr ""
-
-# cd2deb23e3394ad298d9787e069561e2
-#: ../../../src/common/doc/functions/analyze_graph.rst:55
-msgid ""
-"``text``  Geometry column name of the network table. Default value is "
-"``the_geom``."
-msgstr ""
-
-# 31330d72cbb748289eafa0fcb996153d
-#: ../../../src/common/doc/functions/analyze_graph.rst:56
-msgid ""
-"``text``  Primary key column name of the network table. Default value is "
-"``id``."
-msgstr ""
-
-# b9e5db8199ce47ccb092272e93020d7c
-#: ../../../src/common/doc/functions/analyze_graph.rst:57
-msgid ""
-"``text`` Source column name of the network table. Default value is "
-"``source``."
-msgstr ""
-
-# 245c992a7082431684659ae5845aced6
-#: ../../../src/common/doc/functions/analyze_graph.rst:58
-msgid ""
-"``text``  Target column name of the network table.  Default value is "
-"``target``."
-msgstr ""
-
-# 8e81329133844e65b7eef1f84cb73965
-#: ../../../src/common/doc/functions/analyze_graph.rst:59
-msgid ""
-"``text``   Condition to select  a subset or rows.  Default value is ``true``"
-" to indicate all rows."
-msgstr ""
-
-# c99a684aa3994cc4b60c334882d9ed78
-#: ../../../src/common/doc/functions/analyze_graph.rst:65
-msgid "Uses the vertices table: <edge_table>_vertices_pgr."
-msgstr ""
-
-# e32eb0de40d0487fbb1062ec88c5bbe9
-#: ../../../src/common/doc/functions/analyze_graph.rst:66
-msgid "Fills completly the ``cnt`` and ``chk`` columns of the vertices table."
-msgstr ""
-
-# a4a0f627086946459e80cc8ac16b31b8
-#: ../../../src/common/doc/functions/analyze_graph.rst:67
-msgid ""
-"Returns the analysis of the section of the network defined by  "
-"``rows_where``"
-msgstr ""
-
-# f2d3df84fbb14b48a0dba64650326883
-#: ../../../src/common/doc/functions/analyze_graph.rst:71
-msgid "The vertices table is not found."
-msgstr ""
-
-# 1c3dd89f91d94a32b0fa96e3c8544649
-#: ../../../src/common/doc/functions/analyze_graph.rst:72
-msgid ""
-"A required column of the Network table is not found or is not of the "
-"appropriate type."
-msgstr ""
-
-# 0e7728a66df8403b80c0e73cc496d665
-#: ../../../src/common/doc/functions/analyze_graph.rst:73
-msgid "The condition is not well formed."
-msgstr ""
-
-# 8a41f89e1b6c4622925078236419ba59
-#: ../../../src/common/doc/functions/analyze_graph.rst:74
-msgid "The names of source , target or id are the same."
-msgstr ""
-
-# 9a0c49ad17e7442291584a6d38ad24f0
-#: ../../../src/common/doc/functions/analyze_graph.rst:75
-msgid "The SRID of the geometry could not be determined."
-msgstr ""
-
-# a28d4cfc2fb145bd8b620cd99ae007ef
-#: ../../../src/common/doc/functions/analyze_graph.rst:79
-msgid "The Vertices Table"
-msgstr ""
-
-# 6726eb03c9e14ce487a84ef6bdb3d061
-#: ../../../src/common/doc/functions/analyze_graph.rst:80
-msgid ""
-"The vertices table can be created with :ref:`pgr_createVerticesTable "
-"<pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>`"
-msgstr ""
-
-# f69881355abd43b08fd4b112a15c823a
-#: ../../../src/common/doc/functions/analyze_graph.rst:82
-msgid "The structure of the vertices table is:"
-msgstr ""
-
-# e9b846b6c67a40a5a56ce827cbde2335
-#: ../../../src/common/doc/functions/analyze_graph.rst:84
-msgid "``bigint`` Identifier of the vertex."
-msgstr ""
-
-# c76d33c8d1d243e78adb977c995c1ed9
-#: ../../../src/common/doc/functions/analyze_graph.rst:85
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex."
-msgstr ""
-
-# 2a14dd7a08114891908953fe3f87a075
-#: ../../../src/common/doc/functions/analyze_graph.rst:86
-msgid "``integer``  Indicator that the vertex might have a problem."
-msgstr ""
-
-# 9731ccd0742c4573b05224539f373580
-#: ../../../src/common/doc/functions/analyze_graph.rst:87
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"as incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-msgstr ""
-
-# bf31d82856954293ac270255b046d010
-#: ../../../src/common/doc/functions/analyze_graph.rst:88
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"as outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-msgstr ""
-
-# fa51c4280ee2409daf5cee9fbc858ef4
-#: ../../../src/common/doc/functions/analyze_graph.rst:89
-msgid "``geometry`` Point geometry of the vertex."
-msgstr ""
-
-# 3a2bb12205fe4cd6ad67ba6a8f37afe4
-#: ../../../src/common/doc/functions/analyze_graph.rst:92
-msgid "History"
-msgstr "歴史"
-
-# 378f4d42f82e4d30a6ab016e5ecc621a
-#: ../../../src/common/doc/functions/analyze_graph.rst:93
-msgid "New in version 2.0.0"
-msgstr ""
-
-# f2b122f189224840ad820005cf04c3c1
-#: ../../../src/common/doc/functions/analyze_graph.rst:96
-msgid "Usage when the edge table's columns MATCH the default values:"
-msgstr ""
-
-# bbc188364d7a4ba9b73c901703f754a0
-#: ../../../src/common/doc/functions/analyze_graph.rst:99
-msgid "The simplest way to use pgr_analyzeGraph is:"
-msgstr ""
-
-# eef338680d2247e485489cda2088d085
-#: ../../../src/common/doc/functions/analyze_graph.rst:106
-msgid "When the arguments are given in the order described in the parameters:"
-msgstr ""
-
-# bd9ee1725f5f458e84d65ccbde7489d2
-#: ../../../src/common/doc/functions/analyze_graph.rst:111
-msgid "We get the same result as the simplest way to use the function."
-msgstr ""
-
-# e6bd1bc511a6475aaa6fcce1db0cc9fd
-# 667d346fce1340c89b86814855215f31
-#: ../../../src/common/doc/functions/analyze_graph.rst:118
-#: ../../../src/common/doc/functions/analyze_graph.rst:184
-msgid "When using the named notation"
-msgstr ""
-
-# a6f10ab57f0645b6b0307bcb5d6c7ef3
-# eae5acaa57ff4a459953c203612092fa
-#: ../../../src/common/doc/functions/analyze_graph.rst:119
-#: ../../../src/common/doc/functions/analyze_graph.rst:185
-msgid "The order of the parameters do not matter:"
-msgstr ""
-
-# 0b36ba3cb2c24c17b8740a45f3430b69
-#: ../../../src/common/doc/functions/analyze_graph.rst:129
-msgid ""
-"Parameters defined with a default value can be ommited, as long as the value"
-" matches the default:"
-msgstr ""
-
-# 5130840677694ba3a4c08ae3b787e4d5
-# 309f2f767a9c4f419bb1a4ad1c1bfacf
-#: ../../../src/common/doc/functions/analyze_graph.rst:136
-#: ../../../src/common/doc/functions/analyze_graph.rst:199
-msgid "Selecting rows using rows_where parameter"
-msgstr ""
-
-# e7093f0dacbf44af908a1259b2b8f45d
-#: ../../../src/common/doc/functions/analyze_graph.rst:137
-msgid ""
-"Selecting rows based on the id. Displays the analysis a the section of the "
-"network."
-msgstr ""
-
-# 2867ea63b6b14572adb1130a9d04e28a
-#: ../../../src/common/doc/functions/analyze_graph.rst:143
-msgid ""
-"Selecting the rows where the geometry is near the geometry of row with "
-"``id`` =5 ."
-msgstr ""
-
-# 3cf323ab63204d99ac7ca31677b9e667
-#: ../../../src/common/doc/functions/analyze_graph.rst:149
-msgid ""
-"Selecting the rows where the geometry is near the geometry of the row with "
-"``gid`` =100 of the table ``othertable``."
-msgstr ""
-
-# baf5ffc28192473483bc4a1a4a0315f3
-#: ../../../src/common/doc/functions/analyze_graph.rst:160
-msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
-msgstr ""
-
-# 57cb32f6495d4cb0b5f36be03adc7efa
-#: ../../../src/common/doc/functions/analyze_graph.rst:162
-msgid "For the following table"
-msgstr ""
-
-# 12fcad9f3b484280baa8b29867859861
-#: ../../../src/common/doc/functions/analyze_graph.rst:171
-msgid "Using positional notation:"
-msgstr ""
-
-# 07a02c55d3eb4f9eb1dfed2833efcbe8
-#: ../../../src/common/doc/functions/analyze_graph.rst:172
-msgid ""
-"The arguments need to be given in the order described in the parameters:"
-msgstr ""
-
-# 5dc716a92a81438c888764e8cb2b5b79
-#: ../../../src/common/doc/functions/analyze_graph.rst:195
-msgid ""
-"In this scenario omitting a parameter would create an error because the "
-"default values for the column names do not match the column names of the "
-"table."
-msgstr ""
-
-# 057829092b8a4504a3115036a73a489f
-#: ../../../src/common/doc/functions/analyze_graph.rst:200
-msgid "Selecting rows based on the id."
-msgstr ""
-
-# 5c1437170b9149c5bc4174edc58ee875
-#: ../../../src/common/doc/functions/analyze_graph.rst:210
-msgid ""
-"Selecting the rows WHERE the geometry is near the geometry of row with "
-"``id`` =5 ."
-msgstr ""
-
-# 3d622065f50846578692f7a1b2a136d9
-#: ../../../src/common/doc/functions/analyze_graph.rst:222
-msgid ""
-"Selecting the rows WHERE the geometry is near the place='myhouse' of the "
-"table ``othertable``. (note the use of quote_literal)"
-msgstr ""
-
-# 2cffbd13f5f54de1abd9c025df6a762a
-#: ../../../src/common/doc/functions/analyze_graph.rst:239
-msgid "Examples"
-msgstr "例"
-
-# eeedfddf23864b98a801913ef15f7cd9
-#: ../../../src/common/doc/functions/analyze_graph.rst:366
-msgid "The examples use the :ref:`sampledata` network."
-msgstr ""
-
-# d6f7c52a1a824867943d8adae7b2e245
-#: ../../../src/common/doc/functions/analyze_graph.rst:370
-msgid "See Also"
-msgstr "参照"
-
-# ba0f07ab7dca4083a5aef16d566cf506
-#: ../../../src/common/doc/functions/analyze_graph.rst:372
-msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
-msgstr ""
-
-# 90d9202a2da94489b4b43a71caa66956
-#: ../../../src/common/doc/functions/analyze_graph.rst:373
-msgid ":ref:`pgr_analyze_oneway` to analyze directionality of the edges."
-msgstr ""
-
-# 73d10e9d35dd4a269249fbc09274000b
-#: ../../../src/common/doc/functions/analyze_graph.rst:374
-msgid ""
-":ref:`pgr_createVerticesTable <pgr_create_vert_table>` to reconstruct the "
-"vertices table based on the source and target information."
-msgstr ""
-
-# 2f459b0453c141239d9564e2467fbdd5
-#: ../../../src/common/doc/functions/analyze_graph.rst:375
-msgid ""
-":ref:`pgr_nodeNetwork <pgr_node_network>` to create nodes to a not noded "
-"edge table."
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/analyze_oneway.po b/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/analyze_oneway.po
deleted file mode 100644
index 979d32d..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/analyze_oneway.po
+++ /dev/null
@@ -1,335 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:14+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# f8ca74e3c9a54cd0b0e6cd3bcec8de7e
-#: ../../../src/common/doc/functions/analyze_oneway.rst:13
-msgid "pgr_analyzeOneway"
-msgstr ""
-
-# ee3b92d1a5184a92b6fa72a69ab2f1c9
-#: ../../../src/common/doc/functions/analyze_oneway.rst:20
-msgid "Name"
-msgstr "名前"
-
-# fd816817954b4f3d8d25927cebce353b
-#: ../../../src/common/doc/functions/analyze_oneway.rst:22
-msgid ""
-"``pgr_analyzeOneway`` — Analyzes oneway Sstreets and identifies flipped "
-"segments."
-msgstr ""
-
-# 4c9dfc86ed0042de97bf0107b0b2eccd
-#: ../../../src/common/doc/functions/analyze_oneway.rst:26
-msgid "Synopsis"
-msgstr "概要"
-
-# d31a1ab567db4873a46256e8ecbdedf4
-#: ../../../src/common/doc/functions/analyze_oneway.rst:28
-msgid ""
-"This function analyzes oneway streets in a graph and identifies any flipped "
-"segments."
-msgstr ""
-
-# 74bdfef086ae480bbe2affdece2c9efa
-#: ../../../src/common/doc/functions/analyze_oneway.rst:40
-msgid "Description"
-msgstr "説明"
-
-# 04f93117821f4eae962594c71a06a5a8
-#: ../../../src/common/doc/functions/analyze_oneway.rst:42
-msgid ""
-"The analyses of one way segments is pretty simple but can be a powerful "
-"tools to identifying some the potential problems created by setting the "
-"direction of a segment the wrong way. A node is a `source` if it has edges "
-"the exit from that node and no edges enter that node. Conversely, a node is "
-"a `sink` if all edges enter the node but none exit that node. For a `source`"
-" type node it is logically impossible to exist because no vehicle can exit "
-"the node if no vehicle and enter the node. Likewise, if you had a `sink` "
-"node you would have an infinite number of vehicle piling up on this node "
-"because you can enter it but not leave it."
-msgstr ""
-
-# 035956781a774bc3bb1214394ad77be8
-#: ../../../src/common/doc/functions/analyze_oneway.rst:44
-msgid ""
-"So why do we care if the are not feasible? Well if the direction of an edge "
-"was reversed by mistake we could generate exactly these conditions. Think "
-"about a divided highway and on the north bound lane one segment got entered "
-"wrong or maybe a sequence of multiple segments got entered wrong or maybe "
-"this happened on a round-about. The result would be potentially a `source` "
-"and/or a `sink` node."
-msgstr ""
-
-# 007bbd995cbf4e7c86ce8e9916675879
-#: ../../../src/common/doc/functions/analyze_oneway.rst:46
-msgid ""
-"So by counting the number of edges entering and exiting each node we can "
-"identify both `source` and `sink` nodes so that you can look at those areas "
-"of your network to make repairs and/or report the problem back to your data "
-"vendor."
-msgstr ""
-
-# f972114db5c841928b7f2ac705bb0687
-#: ../../../src/common/doc/functions/analyze_oneway.rst:49
-msgid "Prerequisites"
-msgstr ""
-
-# 54a0c52cee394d389a81fcd50b24ad97
-#: ../../../src/common/doc/functions/analyze_oneway.rst:50
-msgid ""
-"The  edge table to be analyzed must contain a source column and a target "
-"column filled with id's of the vertices of the segments and the "
-"corresponding vertices table <edge_table>_vertices_pgr that stores the "
-"vertices information."
-msgstr ""
-
-# 808b5b795d364182b543ab30a1ad1644
-#: ../../../src/common/doc/functions/analyze_oneway.rst:52
-msgid ""
-"Use :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create the "
-"vertices table."
-msgstr ""
-
-# f6248fc57e734ead94edd12cab567915
-#: ../../../src/common/doc/functions/analyze_oneway.rst:53
-msgid ""
-"Use :ref:`pgr_createTopology <pgr_create_topology>` to create the topology "
-"and the vertices table."
-msgstr ""
-
-# 4cacac934ba64cda907561e98847bf8b
-#: ../../../src/common/doc/functions/analyze_oneway.rst:56
-msgid "Parameters"
-msgstr ""
-
-# 669f0d5432dd4c0c8da55dba8c3502e7
-#: ../../../src/common/doc/functions/analyze_oneway.rst:57
-msgid "``text`` Network table name. (may contain the schema name as well)"
-msgstr ""
-
-# a16edb2699f1486c91c10ac7533fef7c
-#: ../../../src/common/doc/functions/analyze_oneway.rst:58
-msgid "``text[]`` source node **in** rules"
-msgstr ""
-
-# 28b4c2457d3b4aaba43dc42af4d2bd5e
-#: ../../../src/common/doc/functions/analyze_oneway.rst:59
-msgid "``text[]`` source node **out** rules"
-msgstr ""
-
-# 5180ad82f6e6434a99defa1823c0a2d8
-#: ../../../src/common/doc/functions/analyze_oneway.rst:60
-msgid "``text[]`` target node **in** rules"
-msgstr ""
-
-# 4866b796c7fb49d985a479c3a97eec38
-#: ../../../src/common/doc/functions/analyze_oneway.rst:61
-msgid "``text[]`` target node **out** rules"
-msgstr ""
-
-# 2744331fb9ac447ba0c40a6035ac0a95
-#: ../../../src/common/doc/functions/analyze_oneway.rst:62
-msgid ""
-"``text`` oneway column name name of the network table. Default value is "
-"``oneway``."
-msgstr ""
-
-# b116cd1fc10f4f5bbd8fe9800562b62f
-#: ../../../src/common/doc/functions/analyze_oneway.rst:63
-msgid ""
-"``text`` Source column name of the network table. Default value is "
-"``source``."
-msgstr ""
-
-# 8ca5a93ed45443c09202b1e5779dfa76
-#: ../../../src/common/doc/functions/analyze_oneway.rst:64
-msgid ""
-"``text``  Target column name of the network table.  Default value is "
-"``target``."
-msgstr ""
-
-# e41f4c872a3445dbbc0bd183a71971fa
-#: ../../../src/common/doc/functions/analyze_oneway.rst:65
-msgid ""
-"``boolean`` flag to treat oneway NULL values as bi-directional.  Default "
-"value is ``true``."
-msgstr ""
-
-# 9cd0459ca40940448e6c0d9c07c4a157
-#: ../../../src/common/doc/functions/analyze_oneway.rst:67
-msgid ""
-"It is strongly recommended to use the named notation. See "
-":ref:`pgr_createVerticesTable <pgr_create_vert_table>` or "
-":ref:`pgr_createTopology <pgr_create_topology>` for examples."
-msgstr ""
-
-# e217ab2060e447e9a7a3745f4d84390d
-#: ../../../src/common/doc/functions/analyze_oneway.rst:70
-msgid "The function returns:"
-msgstr ""
-
-# 95dedd1c39c9424a906e6f2ff882e84a
-#: ../../../src/common/doc/functions/analyze_oneway.rst:72
-msgid "``OK`` after the analysis has finished."
-msgstr ""
-
-# 573d5fab7bb247d5adc39d8460683357
-#: ../../../src/common/doc/functions/analyze_oneway.rst:74
-msgid "Uses the vertices table: <edge_table>_vertices_pgr."
-msgstr ""
-
-# 86597d037fe242378cc71e6e2ec88b19
-#: ../../../src/common/doc/functions/analyze_oneway.rst:75
-msgid ""
-"Fills completely the ``ein`` and ``eout`` columns of the vertices table."
-msgstr ""
-
-# dcae6d2cceea4b6bb47a700cc4338340
-#: ../../../src/common/doc/functions/analyze_oneway.rst:77
-msgid "``FAIL`` when the analysis was not completed due to an error."
-msgstr ""
-
-# 792572ffb7314163be7e4aabadd4429c
-#: ../../../src/common/doc/functions/analyze_oneway.rst:79
-msgid "The vertices table is not found."
-msgstr ""
-
-# affbb7122dd844f3b5c7962c97dec0d3
-#: ../../../src/common/doc/functions/analyze_oneway.rst:80
-msgid ""
-"A required column of the Network table is not found or is not of the "
-"appropriate type."
-msgstr ""
-
-# e50d016ee05048779dea2db4006500be
-#: ../../../src/common/doc/functions/analyze_oneway.rst:81
-msgid "The names of source , target or oneway are the same."
-msgstr ""
-
-# f14e2456527945e0a80e7888bb6dde7f
-#: ../../../src/common/doc/functions/analyze_oneway.rst:83
-msgid ""
-"The rules are defined as an array of text strings that if match the "
-"``oneway`` value would be counted as ``true`` for the source or target "
-"**in** or **out** condition."
-msgstr ""
-
-# 02623674186e4e0c961078942584c0ec
-#: ../../../src/common/doc/functions/analyze_oneway.rst:86
-msgid "The Vertices Table"
-msgstr ""
-
-# dd7fb8252bfe456aaa65515346941e74
-#: ../../../src/common/doc/functions/analyze_oneway.rst:87
-msgid ""
-"The vertices table can be created with :ref:`pgr_createVerticesTable "
-"<pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>`"
-msgstr ""
-
-# f838bf466e424966bd61af7b901279d2
-#: ../../../src/common/doc/functions/analyze_oneway.rst:89
-msgid "The structure of the vertices table is:"
-msgstr ""
-
-# 722239d3877b48d8bc5e63052fc7424f
-#: ../../../src/common/doc/functions/analyze_oneway.rst:91
-msgid "``bigint`` Identifier of the vertex."
-msgstr ""
-
-# 0d3b269abc8e45a1abf355e4bb7d51c0
-#: ../../../src/common/doc/functions/analyze_oneway.rst:92
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex."
-" See :ref:`pgr_analyzeGgraph <pgr_analyze_graph>`."
-msgstr ""
-
-# 50b3729c83964ef3ae1a1511c76b50f8
-#: ../../../src/common/doc/functions/analyze_oneway.rst:93
-msgid ""
-"``integer``  Indicator that the vertex might have a problem. See "
-":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
-msgstr ""
-
-# a5b1fe0206ea4c428c94f43a141b527b
-#: ../../../src/common/doc/functions/analyze_oneway.rst:94
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"as incoming."
-msgstr ""
-
-# 7c678b91ca8a408aafda94e5fa217fae
-#: ../../../src/common/doc/functions/analyze_oneway.rst:95
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"as outgoing."
-msgstr ""
-
-# 6d672d0be9cf41d69db69e46109d1624
-#: ../../../src/common/doc/functions/analyze_oneway.rst:96
-msgid "``geometry`` Point geometry of the vertex."
-msgstr ""
-
-# b7cf2a5bba544714b9b79373c889e6cc
-#: ../../../src/common/doc/functions/analyze_oneway.rst:100
-msgid "History"
-msgstr "歴史"
-
-# ee9866aeb2c94c7fb0aa1e6cda48e6cb
-#: ../../../src/common/doc/functions/analyze_oneway.rst:101
-msgid "New in version 2.0.0"
-msgstr ""
-
-# 3eed638ba1dd400186848b0928d632cf
-#: ../../../src/common/doc/functions/analyze_oneway.rst:105
-msgid "Examples"
-msgstr "例"
-
-# fb1f0f5537c0427a866814b367160245
-#: ../../../src/common/doc/functions/analyze_oneway.rst:129
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "上記クエリは :ref:`sampledata` のネットワークを使用しています。"
-
-# 34726fcf405940b780880e71c6a2dad3
-#: ../../../src/common/doc/functions/analyze_oneway.rst:133
-msgid "See Also"
-msgstr "参照"
-
-# 384816237f7b49d5911a48675467810d
-#: ../../../src/common/doc/functions/analyze_oneway.rst:135
-msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
-msgstr ""
-
-# f8a2c637ce834c5ab9fea42ec365f0d1
-#: ../../../src/common/doc/functions/analyze_oneway.rst:136
-msgid ":ref:`analytics` for an overview of the analysis of a graph."
-msgstr ""
-
-# 1688102891bc4abaaed229738ca05755
-#: ../../../src/common/doc/functions/analyze_oneway.rst:137
-msgid ""
-":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
-"table."
-msgstr ""
-
-# 5914f34793e24715acb0adbe7d9fe1e0
-#: ../../../src/common/doc/functions/analyze_oneway.rst:138
-msgid ""
-":ref:`pgr_create_vert_table` to reconstruct the vertices table based on the "
-"source and target information."
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/create_topology.po b/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/create_topology.po
deleted file mode 100644
index 862c949..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/create_topology.po
+++ /dev/null
@@ -1,414 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:13+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# 841ce4ae2ccd42aeb6708e0469affc85
-#: ../../../src/common/doc/functions/create_topology.rst:13
-msgid "pgr_createTopology"
-msgstr ""
-
-# bceb18f1c7484f2495890a181eb43749
-#: ../../../src/common/doc/functions/create_topology.rst:20
-msgid "Name"
-msgstr "名前"
-
-# efddc8da13ee412aa1fb75bf84ad023b
-#: ../../../src/common/doc/functions/create_topology.rst:22
-msgid ""
-"``pgr_createTopology`` — Builds a network topology based on the geometry "
-"information."
-msgstr ""
-
-# c01e1abb389b4e0096e2971378967ac9
-#: ../../../src/common/doc/functions/create_topology.rst:26
-msgid "Synopsis"
-msgstr "概要"
-
-# 0dcc6bb9100b4d89afa5b1404283d0c9
-# 2f90d445d42f4c839d6d2b2e4bdd588b
-#: ../../../src/common/doc/functions/create_topology.rst:28
-#: ../../../src/common/doc/functions/create_topology.rst:69
-msgid "The function returns:"
-msgstr ""
-
-# 88833f75e6d741b5bc91526488d66e4e
-#: ../../../src/common/doc/functions/create_topology.rst:30
-msgid ""
-"``OK`` after the network topology has been built and the vertices table "
-"created."
-msgstr ""
-
-# da6aad799955428fb1bef9ff2dbd70b5
-#: ../../../src/common/doc/functions/create_topology.rst:31
-msgid "``FAIL`` when the network topology was not built due to an error."
-msgstr ""
-
-# c4d463cfb61840f689831eeafe2844dc
-#: ../../../src/common/doc/functions/create_topology.rst:42
-msgid "Description"
-msgstr "説明"
-
-# fba8585de1c94f0ba612f64f8cd4f39d
-#: ../../../src/common/doc/functions/create_topology.rst:45
-msgid "Parameters"
-msgstr ""
-
-# 33e33f7ee98e4b9a9d333f8ab95cbc9b
-#: ../../../src/common/doc/functions/create_topology.rst:46
-msgid "The topology creation function accepts the following parameters:"
-msgstr ""
-
-# d19b1856e3d440749487a15a83c9d44c
-#: ../../../src/common/doc/functions/create_topology.rst:48
-msgid "``text`` Network table name. (may contain the schema name AS well)"
-msgstr ""
-
-# 6afd7b88cbaf4a58b2dcbd161b278356
-#: ../../../src/common/doc/functions/create_topology.rst:49
-msgid ""
-"``float8`` Snapping tolerance of disconnected edges. (in projection unit)"
-msgstr ""
-
-# 905510b263854f1eb05f10c8a64d9d20
-#: ../../../src/common/doc/functions/create_topology.rst:50
-msgid ""
-"``text``  Geometry column name of the network table. Default value is "
-"``the_geom``."
-msgstr ""
-
-# f9b621bcf0ab41c3b87693c812f3d710
-#: ../../../src/common/doc/functions/create_topology.rst:51
-msgid ""
-"``text``  Primary key column name of the network table. Default value is "
-"``id``."
-msgstr ""
-
-# 6bcaf9c3c7e1422ea8e1b4dc45e7c613
-#: ../../../src/common/doc/functions/create_topology.rst:52
-msgid ""
-"``text`` Source column name of the network table. Default value is "
-"``source``."
-msgstr ""
-
-# e2b13126a14a4ebeb8c3f453235560a1
-#: ../../../src/common/doc/functions/create_topology.rst:53
-msgid ""
-"``text``  Target column name of the network table.  Default value is "
-"``target``."
-msgstr ""
-
-# adbfdd92db3740e5b4e8a6259a0a064c
-#: ../../../src/common/doc/functions/create_topology.rst:54
-msgid ""
-"``text``   Condition to SELECT a subset or rows.  Default value is ``true`` "
-"to indicate all rows."
-msgstr ""
-
-# 65297b06273d46cc98c9a3be75886137
-#: ../../../src/common/doc/functions/create_topology.rst:58
-msgid "The ``edge_table`` will be affected"
-msgstr ""
-
-# 7f45565b3b8d40408b2da1bee3d1c354
-#: ../../../src/common/doc/functions/create_topology.rst:60
-msgid "The ``source`` column values will change."
-msgstr ""
-
-# e05fe9ce627848aa8aa72f032d303f04
-#: ../../../src/common/doc/functions/create_topology.rst:61
-msgid "The ``target`` column values will change."
-msgstr ""
-
-# 72c3682247aa4841a49790a78db8c3c3
-#: ../../../src/common/doc/functions/create_topology.rst:62
-msgid ""
-"An index will be created, if it doesn't exists, to speed up the process to "
-"the following columns:"
-msgstr ""
-
-# 993784afa3ce4ca68f11e8e02f2b4b27
-#: ../../../src/common/doc/functions/create_topology.rst:64
-msgid "``id``"
-msgstr ""
-
-# 3074ee818e8241bc93c5a3284d7c3af4
-#: ../../../src/common/doc/functions/create_topology.rst:65
-msgid "``the_geom``"
-msgstr ""
-
-# e40fef18592542b98d234ac6a8038def
-#: ../../../src/common/doc/functions/create_topology.rst:66
-msgid "``source``"
-msgstr ""
-
-# 0360a33adc734d1eaf83f5e1e314cc73
-#: ../../../src/common/doc/functions/create_topology.rst:67
-msgid "``target``"
-msgstr ""
-
-# a2aae07be90348b0b2190f647731fb26
-#: ../../../src/common/doc/functions/create_topology.rst:71
-msgid "``OK`` after the network topology has been built."
-msgstr ""
-
-# 33a4fd15e75a41a68105d2ea67b4aab1
-#: ../../../src/common/doc/functions/create_topology.rst:73
-msgid "Creates a vertices table: <edge_table>_vertices_pgr."
-msgstr ""
-
-# 589a7e90c6404cbe902baec0a884189b
-#: ../../../src/common/doc/functions/create_topology.rst:74
-msgid "Fills ``id`` and ``the_geom`` columns of the vertices table."
-msgstr ""
-
-# 92e7ab03c5ce43ed8c705a26aa4b801c
-#: ../../../src/common/doc/functions/create_topology.rst:75
-msgid ""
-"Fills the source and target columns of the edge table referencing the ``id``"
-" of the vertices table."
-msgstr ""
-
-# 0635e9d515184ccc80747864939f789c
-#: ../../../src/common/doc/functions/create_topology.rst:78
-msgid "``FAIL`` when the network topology was not built due to an error:"
-msgstr ""
-
-# 607fcb6f6ae3438789ecf9c95992bc3f
-#: ../../../src/common/doc/functions/create_topology.rst:80
-msgid ""
-"A required column of the Network table is not found or is not of the "
-"appropriate type."
-msgstr ""
-
-# 2bad2b565914457a90a990e718e857fd
-#: ../../../src/common/doc/functions/create_topology.rst:81
-msgid "The condition is not well formed."
-msgstr ""
-
-# c800f5e3462c44c1b786308aec4cfea4
-#: ../../../src/common/doc/functions/create_topology.rst:82
-msgid "The names of source , target or id are the same."
-msgstr ""
-
-# 51c96f82e8ea49bcbde8aaeb905a6c6c
-#: ../../../src/common/doc/functions/create_topology.rst:83
-msgid "The SRID of the geometry could not be determined."
-msgstr ""
-
-# f5f0d0a1c3814e1d9c14e4de52bd9899
-#: ../../../src/common/doc/functions/create_topology.rst:87
-msgid "The Vertices Table"
-msgstr ""
-
-# 54ef7e60b4d445cfa453323fbe80032d
-#: ../../../src/common/doc/functions/create_topology.rst:88
-msgid ""
-"The vertices table is a requirment of the :ref:`pgr_analyzeGraph "
-"<pgr_analyze_graph>` and the :ref:`pgr_analyzeOneway <pgr_analyze_oneway>` "
-"functions."
-msgstr ""
-
-# faaffddd86fd4680a80925c8c3877f07
-#: ../../../src/common/doc/functions/create_topology.rst:90
-msgid "The structure of the vertices table is:"
-msgstr ""
-
-# fc31880c8b034aae99d6d4caec420302
-#: ../../../src/common/doc/functions/create_topology.rst:92
-msgid "``bigint`` Identifier of the vertex."
-msgstr ""
-
-# 7684f52a607845ef802799c26c221bf3
-#: ../../../src/common/doc/functions/create_topology.rst:93
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex."
-" See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
-msgstr ""
-
-# 1dc63c1d7cbb417d916ed0561df67df9
-#: ../../../src/common/doc/functions/create_topology.rst:94
-msgid ""
-"``integer``  Indicator that the vertex might have a problem. See "
-":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
-msgstr ""
-
-# 546f74ccc20545de9c032cabcaac878f
-#: ../../../src/common/doc/functions/create_topology.rst:95
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"AS incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-msgstr ""
-
-# 9fe606ee590d4f009989e3cdcf09b5c5
-#: ../../../src/common/doc/functions/create_topology.rst:96
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"AS outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-msgstr ""
-
-# 2ee4f32c8546412bad1e109e6051e249
-#: ../../../src/common/doc/functions/create_topology.rst:97
-msgid "``geometry`` Point geometry of the vertex."
-msgstr ""
-
-# a63156aa23b54785aaf66150bfe98a52
-#: ../../../src/common/doc/functions/create_topology.rst:100
-msgid "History"
-msgstr "歴史"
-
-# da8726d6435e42f09d83f4a310d5c432
-#: ../../../src/common/doc/functions/create_topology.rst:101
-msgid "Renamed in version 2.0.0"
-msgstr "バージョン 2.0.0 でリネームされました"
-
-# 5b4b6a4bea1543ac98f444d9ec32d7eb
-#: ../../../src/common/doc/functions/create_topology.rst:104
-msgid "Usage when the edge table's columns MATCH the default values:"
-msgstr ""
-
-# 6db23da4afd448bab89802246bccb65a
-#: ../../../src/common/doc/functions/create_topology.rst:107
-msgid "The simplest way to use pgr_createtopology is:"
-msgstr ""
-
-# 6905f56f53bb4cdfb9ae49021265afe9
-#: ../../../src/common/doc/functions/create_topology.rst:115
-msgid "When the arguments are given in the order described in the parameters:"
-msgstr ""
-
-# f8c6c68c7d334f68bac36a818c4091ab
-#: ../../../src/common/doc/functions/create_topology.rst:120
-msgid "We get the same result AS the simplest way to use the function."
-msgstr ""
-
-# 8dcbdbf60c2e4522a87d80a7796a354b
-# b72940f0e2054c46a50358fc40af026e
-#: ../../../src/common/doc/functions/create_topology.rst:127
-#: ../../../src/common/doc/functions/create_topology.rst:192
-msgid "When using the named notation"
-msgstr ""
-
-# 460cbff5c7054542a80375a4f50072e0
-# 56d9daba24ff4ce9ac02e3326af007af
-#: ../../../src/common/doc/functions/create_topology.rst:128
-#: ../../../src/common/doc/functions/create_topology.rst:193
-msgid "The order of the parameters do not matter:"
-msgstr ""
-
-# 4b24ad3db4be4b60a6c8bfcc38fae359
-#: ../../../src/common/doc/functions/create_topology.rst:138
-msgid ""
-"Parameters defined with a default value can be omited, AS long AS the value "
-"matches the default:"
-msgstr ""
-
-# 8aab982078634384ab4dfced463b5c14
-# d9c7d4fa12394a5a915a9f6f664e7a8a
-#: ../../../src/common/doc/functions/create_topology.rst:145
-#: ../../../src/common/doc/functions/create_topology.rst:207
-msgid "Selecting rows using rows_where parameter"
-msgstr ""
-
-# 4be49c2f23734283895a40625620047b
-# 1734ac1429ad4691861fbfcc7954d800
-#: ../../../src/common/doc/functions/create_topology.rst:146
-#: ../../../src/common/doc/functions/create_topology.rst:208
-msgid "Selecting rows based on the id."
-msgstr ""
-
-# 499347aef3cb49f993c320d1fd353a29
-# a0cd57644bf443fbaa81efed8df8a30f
-#: ../../../src/common/doc/functions/create_topology.rst:152
-#: ../../../src/common/doc/functions/create_topology.rst:218
-msgid ""
-"Selecting the rows where the geometry is near the geometry of row with "
-"``id`` =5 ."
-msgstr ""
-
-# b8e12b4f62d24fb0a535290a0a480ff0
-# 42da9f122c7240bea10a78685a6b5b8d
-#: ../../../src/common/doc/functions/create_topology.rst:158
-#: ../../../src/common/doc/functions/create_topology.rst:230
-msgid ""
-"Selecting the rows where the geometry is near the geometry of the row with "
-"``gid`` =100 of the table ``othertable``."
-msgstr ""
-
-# 596d74ac25d34cbda9a05349a4a0af21
-#: ../../../src/common/doc/functions/create_topology.rst:169
-msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
-msgstr ""
-
-# ac1bf6e79288443486b7b105e25e07eb
-#: ../../../src/common/doc/functions/create_topology.rst:171
-msgid "For the following table"
-msgstr ""
-
-# a24fc2426b5c4b91bc53f875e37dddaa
-#: ../../../src/common/doc/functions/create_topology.rst:179
-msgid "Using positional notation:"
-msgstr ""
-
-# d1937a888b40477b8d696215b7b93425
-#: ../../../src/common/doc/functions/create_topology.rst:180
-msgid ""
-"The arguments need to be given in the order described in the parameters:"
-msgstr ""
-
-# 7e510379477f445a9432549c095c12bb
-#: ../../../src/common/doc/functions/create_topology.rst:203
-msgid ""
-"In this scenario omitting a parameter would create an error because the "
-"default values for the column names do not match the column names of the "
-"table."
-msgstr ""
-
-# de088e18a1634e6a96b99df9171c530a
-#: ../../../src/common/doc/functions/create_topology.rst:247
-msgid "Examples"
-msgstr "例"
-
-# 89b592f2e7f6474cbed2d9d5bca887e9
-#: ../../../src/common/doc/functions/create_topology.rst:279
-msgid "The example uses the :ref:`sampledata` network."
-msgstr ""
-
-# ae52cd8922264c939460bd2df2108508
-#: ../../../src/common/doc/functions/create_topology.rst:283
-msgid "See Also"
-msgstr "参照"
-
-# 664429e917764979b9255e4f9a72377f
-#: ../../../src/common/doc/functions/create_topology.rst:285
-msgid ":ref:`topology` for an overview of a topology for routing algorithms."
-msgstr ""
-
-# 9ded0191d7344e8baca758e97f34cf68
-#: ../../../src/common/doc/functions/create_topology.rst:286
-msgid ""
-":ref:`pgr_create_vert_table` to reconstruct the vertices table based on the "
-"source and target information."
-msgstr ""
-
-# ca4432eb1b4246268b1acee87b464b2f
-#: ../../../src/common/doc/functions/create_topology.rst:287
-msgid ""
-":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
-"table."
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/create_vert_table.po b/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/create_vert_table.po
deleted file mode 100644
index 9520371..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/create_vert_table.po
+++ /dev/null
@@ -1,388 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 05:50+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# 1a8504651dd840e4a48344ead373a073
-#: ../../../src/common/doc/functions/create_vert_table.rst:13
-msgid "pgr_createVerticesTable"
-msgstr ""
-
-# ad976846c3444135a397d1f47a0ffceb
-#: ../../../src/common/doc/functions/create_vert_table.rst:20
-msgid "Name"
-msgstr "名前"
-
-# c26ff674db0d4b65bff9b1483e524956
-#: ../../../src/common/doc/functions/create_vert_table.rst:22
-msgid ""
-"``pgr_createVerticesTable`` — Reconstructs the vertices table based on the "
-"source and target information."
-msgstr ""
-
-# b27c4239c9034d8fb5bbfc4b736af367
-#: ../../../src/common/doc/functions/create_vert_table.rst:26
-msgid "Synopsis"
-msgstr "概要"
-
-# bbfea2a13422443f8e1b9b863f56dea0
-# 139eabd1665d4dc8b6caac92f0764d50
-#: ../../../src/common/doc/functions/create_vert_table.rst:28
-#: ../../../src/common/doc/functions/create_vert_table.rst:63
-msgid "The function returns:"
-msgstr ""
-
-# bdf469a3c50c4176bcc89409cbe50136
-# 268e8b4480b24112a72e1d7da0dab1bd
-#: ../../../src/common/doc/functions/create_vert_table.rst:30
-#: ../../../src/common/doc/functions/create_vert_table.rst:65
-msgid "``OK`` after the vertices table has been reconstructed."
-msgstr ""
-
-# f542765a7c984a57b56f203df843634d
-# a536d714aa4240dca5d92dfeee6dd7bb
-#: ../../../src/common/doc/functions/create_vert_table.rst:31
-#: ../../../src/common/doc/functions/create_vert_table.rst:70
-msgid ""
-"``FAIL`` when the vertices table was not reconstructed due to an error."
-msgstr ""
-
-# c7c8bc00b10d45a897224d240c4f96bf
-#: ../../../src/common/doc/functions/create_vert_table.rst:41
-msgid "Description"
-msgstr "説明"
-
-# c53a2ef242f8484dac84581a80134594
-#: ../../../src/common/doc/functions/create_vert_table.rst:44
-msgid "Parameters"
-msgstr ""
-
-# 2dc2c3867d7a4367a958a6e1049f44c0
-#: ../../../src/common/doc/functions/create_vert_table.rst:45
-msgid ""
-"The reconstruction of the vertices table  function accepts the following "
-"parameters:"
-msgstr ""
-
-# e92b11f0f4ea47af9581936d11972ef6
-#: ../../../src/common/doc/functions/create_vert_table.rst:47
-msgid "``text`` Network table name. (may contain the schema name as well)"
-msgstr ""
-
-# 75d43bdeeb7843139aec9b4c7dc60097
-#: ../../../src/common/doc/functions/create_vert_table.rst:48
-msgid ""
-"``text``  Geometry column name of the network table. Default value is "
-"``the_geom``."
-msgstr ""
-
-# f0e2bb638cd841f2b61bc8398e3ea59b
-#: ../../../src/common/doc/functions/create_vert_table.rst:49
-msgid ""
-"``text`` Source column name of the network table. Default value is "
-"``source``."
-msgstr ""
-
-# ba67bced62994e7b98967cf09cbf3ca6
-#: ../../../src/common/doc/functions/create_vert_table.rst:50
-msgid ""
-"``text``  Target column name of the network table.  Default value is "
-"``target``."
-msgstr ""
-
-# d7d53a50bc9249518132241a2c83dc1b
-#: ../../../src/common/doc/functions/create_vert_table.rst:51
-msgid ""
-"``text``   Condition to SELECT a subset or rows.  Default value is ``true`` "
-"to indicate all rows."
-msgstr ""
-
-# a87c8e9949df409da09632babbb99748
-#: ../../../src/common/doc/functions/create_vert_table.rst:55
-msgid "The ``edge_table`` will be affected"
-msgstr ""
-
-# a0b202c14bf849e1a9506fc9c4010540
-#: ../../../src/common/doc/functions/create_vert_table.rst:57
-msgid ""
-"An index will be created, if it doesn't exists, to speed up the process to "
-"the following columns:"
-msgstr ""
-
-# 51ab4d2ba98b4affa7e5cec96e352cce
-#: ../../../src/common/doc/functions/create_vert_table.rst:59
-msgid "``the_geom``"
-msgstr ""
-
-# 134fb1a15f8742a49fe36e2683c4c324
-#: ../../../src/common/doc/functions/create_vert_table.rst:60
-msgid "``source``"
-msgstr ""
-
-# 1c5f7bc5486b44999341e4f8f9b92c2e
-#: ../../../src/common/doc/functions/create_vert_table.rst:61
-msgid "``target``"
-msgstr ""
-
-# 2c70ff2c521c48c799c898d61a01e119
-#: ../../../src/common/doc/functions/create_vert_table.rst:67
-msgid "Creates a vertices table: <edge_table>_vertices_pgr."
-msgstr ""
-
-# b0e0cf6163ea49f3b3a38e97576f301e
-#: ../../../src/common/doc/functions/create_vert_table.rst:68
-msgid ""
-"Fills ``id`` and ``the_geom`` columns of the vertices table based on the "
-"source and target columns of the edge table."
-msgstr ""
-
-# 28e32e20ebd74f88920b7c6fd45054e9
-#: ../../../src/common/doc/functions/create_vert_table.rst:72
-msgid ""
-"A required column of the Network table is not found or is not of the "
-"appropriate type."
-msgstr ""
-
-# 8501c3c5738f4907bf64b63007218466
-#: ../../../src/common/doc/functions/create_vert_table.rst:73
-msgid "The condition is not well formed."
-msgstr ""
-
-# 5252c79651354d40a6271efe4b78d226
-#: ../../../src/common/doc/functions/create_vert_table.rst:74
-msgid "The names of source, target are the same."
-msgstr ""
-
-# 41c42eeafd6b487ebc676126c0f92f0c
-#: ../../../src/common/doc/functions/create_vert_table.rst:75
-msgid "The SRID of the geometry could not be determined."
-msgstr ""
-
-# d61aba7cc54d49b9a670817e7dd52472
-#: ../../../src/common/doc/functions/create_vert_table.rst:78
-msgid "The Vertices Table"
-msgstr ""
-
-# 93a53c04ff294116acf94a067d17ff73
-#: ../../../src/common/doc/functions/create_vert_table.rst:79
-msgid ""
-"The vertices table is a requierment of the :ref:`pgr_analyzeGraph "
-"<pgr_analyze_graph>` and the :ref:`pgr_analyzeOneway <pgr_analyze_oneway>` "
-"functions."
-msgstr ""
-
-# 7e418508090c4667b4128b22f562b5db
-#: ../../../src/common/doc/functions/create_vert_table.rst:81
-msgid "The structure of the vertices table is:"
-msgstr ""
-
-# 114548eb64364741b99e10c86fe55fad
-#: ../../../src/common/doc/functions/create_vert_table.rst:83
-msgid "``bigint`` Identifier of the vertex."
-msgstr ""
-
-# 35f0fc22f2464997bce4d704a9f4ee88
-#: ../../../src/common/doc/functions/create_vert_table.rst:84
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex."
-" See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
-msgstr ""
-
-# d71ba1da8657438b86fe6ce3326cf94a
-#: ../../../src/common/doc/functions/create_vert_table.rst:85
-msgid ""
-"``integer``  Indicator that the vertex might have a problem. See "
-":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
-msgstr ""
-
-# 9ea4778e1ed64d3cb8c12ffedca5748b
-#: ../../../src/common/doc/functions/create_vert_table.rst:86
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"as incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-msgstr ""
-
-# cd631484ea62455cae3d37b03ca36624
-#: ../../../src/common/doc/functions/create_vert_table.rst:87
-msgid ""
-"``integer`` Number of vertices in the edge_table that reference this vertex "
-"as outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-msgstr ""
-
-# 29652dcb521b4111813d63d570b62873
-#: ../../../src/common/doc/functions/create_vert_table.rst:88
-msgid "``geometry`` Point geometry of the vertex."
-msgstr ""
-
-# ca63675181414139865690332306235b
-#: ../../../src/common/doc/functions/create_vert_table.rst:91
-msgid "History"
-msgstr "履歴"
-
-# e383b8838b4b40618c66151c1f94fb48
-#: ../../../src/common/doc/functions/create_vert_table.rst:92
-msgid "Renamed in version 2.0.0"
-msgstr "バージョン 2.0.0 でリネームされました"
-
-# f4e14bd6d88d4f1e8d5ff2fbf9aea722
-#: ../../../src/common/doc/functions/create_vert_table.rst:95
-msgid "Usage when the edge table's columns MATCH the default values:"
-msgstr ""
-
-# 6fc1c7d9c4e04380ada776f609bf4505
-#: ../../../src/common/doc/functions/create_vert_table.rst:98
-msgid "The simplest way to use pgr_createVerticesTable is:"
-msgstr ""
-
-# 3373cb2347994f2fa122008bdff12190
-#: ../../../src/common/doc/functions/create_vert_table.rst:105
-msgid "When the arguments are given in the order described in the parameters:"
-msgstr ""
-
-# f75126b9da994fea920678a643a80e25
-#: ../../../src/common/doc/functions/create_vert_table.rst:110
-msgid "We get the same result as the simplest way to use the function."
-msgstr ""
-
-# 90ea5b12d9a64eb2bafd6d211e0ffeff
-# 34ff976ba1f24ec08a19a8d87673156d
-#: ../../../src/common/doc/functions/create_vert_table.rst:117
-#: ../../../src/common/doc/functions/create_vert_table.rst:181
-msgid "When using the named notation"
-msgstr ""
-
-# 213a5c21ddcb4745987210530901695f
-# fac4e4da33fb494981c36957cd000a29
-#: ../../../src/common/doc/functions/create_vert_table.rst:118
-#: ../../../src/common/doc/functions/create_vert_table.rst:182
-msgid "The order of the parameters do not matter:"
-msgstr ""
-
-# 529a856bf0404a10a837b07945c52175
-#: ../../../src/common/doc/functions/create_vert_table.rst:128
-msgid ""
-"Parameters defined with a default value can be omited, as long as the value "
-"matches the default:"
-msgstr ""
-
-# 55574bcb1be54b1b907c0524cbf1057d
-# af501046d7d84255bd3030520c3e2f15
-#: ../../../src/common/doc/functions/create_vert_table.rst:135
-#: ../../../src/common/doc/functions/create_vert_table.rst:196
-msgid "Selecting rows using rows_where parameter"
-msgstr ""
-
-# 7080aeec9c1e4a31bfb9be1ed4506ab7
-#: ../../../src/common/doc/functions/create_vert_table.rst:136
-msgid "Selecting rows based on the id."
-msgstr ""
-
-# 74ec654344604925875e20b1447a6a3e
-#: ../../../src/common/doc/functions/create_vert_table.rst:142
-msgid ""
-"Selecting the rows where the geometry is near the geometry of row with "
-"``id`` =5 ."
-msgstr ""
-
-# 89d554dba13d40be8ca51e74d18c7c6f
-# fbda0895e287413fb2455b07ba2ba7fb
-#: ../../../src/common/doc/functions/create_vert_table.rst:148
-#: ../../../src/common/doc/functions/create_vert_table.rst:219
-msgid ""
-"Selecting the rows where the geometry is near the geometry of the row with "
-"``gid`` =100 of the table ``othertable``."
-msgstr ""
-
-# 7f2e698d7f844861bd468923e95ef16a
-#: ../../../src/common/doc/functions/create_vert_table.rst:159
-msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
-msgstr ""
-
-# 381c72bdf71543d4853557e93d021602
-#: ../../../src/common/doc/functions/create_vert_table.rst:161
-msgid "For the following table"
-msgstr ""
-
-# 5d51a2b4e3e84516bab9cc22039007c8
-#: ../../../src/common/doc/functions/create_vert_table.rst:169
-msgid "Using positional notation:"
-msgstr ""
-
-# 3be19d9038134fe2907db9c97eaeca7d
-#: ../../../src/common/doc/functions/create_vert_table.rst:170
-msgid ""
-"The arguments need to be given in the order described in the parameters:"
-msgstr ""
-
-# 94d47a836ffa45268fc1f9662f902f2b
-#: ../../../src/common/doc/functions/create_vert_table.rst:192
-msgid ""
-"In this scenario omitting a parameter would create an error because the "
-"default values for the column names do not match the column names of the "
-"table."
-msgstr ""
-
-# 6d8d108291094933afdde4095193e506
-#: ../../../src/common/doc/functions/create_vert_table.rst:197
-msgid "Selecting rows based on the gid."
-msgstr ""
-
-# 5df5fd0f734e46c6bfb93444bd86905e
-#: ../../../src/common/doc/functions/create_vert_table.rst:207
-msgid ""
-"Selecting the rows where the geometry is near the geometry of row with "
-"``gid`` =5 ."
-msgstr ""
-
-# e2c54fc28df243609e8d003180886771
-#: ../../../src/common/doc/functions/create_vert_table.rst:236
-msgid "Examples"
-msgstr "例"
-
-# 0587b0909413456482f8b8725b101b7a
-#: ../../../src/common/doc/functions/create_vert_table.rst:258
-msgid "The example uses the :ref:`sampledata` network."
-msgstr ""
-
-# ad71788bef724cb1809d4b5d96ef1e5c
-#: ../../../src/common/doc/functions/create_vert_table.rst:262
-msgid "See Also"
-msgstr "参照"
-
-# 6baea98fd7b6493faabb8fcc69f975d8
-#: ../../../src/common/doc/functions/create_vert_table.rst:264
-msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
-msgstr ""
-
-# 7103284d91854b18939e44589085f3cf
-#: ../../../src/common/doc/functions/create_vert_table.rst:265
-msgid ""
-":ref:`pgr_createTopology <pgr_create_topology>` to create a topology based "
-"on the geometry."
-msgstr ""
-
-# 4c67e74087fe4035a8b54bb0d58d8a84
-#: ../../../src/common/doc/functions/create_vert_table.rst:266
-msgid ""
-":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
-"table."
-msgstr ""
-
-# a7eb449e6d594406ab3779c29d1937c8
-#: ../../../src/common/doc/functions/create_vert_table.rst:267
-msgid ":ref:`pgr_analyze_oneway` to analyze directionality of the edges."
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/is_column_in_table.po b/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/is_column_in_table.po
deleted file mode 100644
index 1050678..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/is_column_in_table.po
+++ /dev/null
@@ -1,89 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-06 19:50+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# 1451c59201944bfd9022c90ef89ebf8a
-#: ../../../src/common/doc/functions/is_column_in_table.rst:13
-msgid "pgr_isColumnInTable - Check if column exists"
-msgstr ""
-
-# cb570c2703fc45e9bba281cae42780d6
-#: ../../../src/common/doc/functions/is_column_in_table.rst:20
-msgid "Name"
-msgstr "名前"
-
-# b4cdca42128d4828961c3e7076774fc0
-#: ../../../src/common/doc/functions/is_column_in_table.rst:22
-msgid "``pgr_isColumnInTable`` — Check if a column exists in a table."
-msgstr ""
-
-# 33b135e2f8dd4f5e81aad53d1a016cfe
-#: ../../../src/common/doc/functions/is_column_in_table.rst:26
-msgid "Synopsis"
-msgstr "概要"
-
-# 96d06813601a419c9b44fe8298f74a51
-#: ../../../src/common/doc/functions/is_column_in_table.rst:28
-msgid "Returns ``true`` or ``false`` if column “col” exists in table “tab”."
-msgstr ""
-
-# 44f17585bbd843cb9fbcacb785ad3130
-#: ../../../src/common/doc/functions/is_column_in_table.rst:36
-msgid "Description"
-msgstr "説明"
-
-# b57ee4621bd04e6991a266235c5a592a
-#: ../../../src/common/doc/functions/is_column_in_table.rst:38
-msgid "``text`` table name with or without schema component"
-msgstr ""
-
-# ac6b45788cac4cc7a5dcf6e4c44bb9ad
-#: ../../../src/common/doc/functions/is_column_in_table.rst:39
-msgid "``text`` column name to be checked for"
-msgstr ""
-
-# 5f4ac9523c3b487884e6dd8e67b1e082
-#: ../../../src/common/doc/functions/is_column_in_table.rst:43
-msgid "History"
-msgstr "歴史"
-
-# 028851614bd7489991629d8c8f6f8bbf
-#: ../../../src/common/doc/functions/is_column_in_table.rst:44
-msgid "New in version 2.0.0"
-msgstr ""
-
-# 3c3db2df87634ae4b3c8713633f9214f
-#: ../../../src/common/doc/functions/is_column_in_table.rst:48
-msgid "Examples"
-msgstr "例"
-
-# 61e31f4885e444eea60640117f0f8264
-#: ../../../src/common/doc/functions/is_column_in_table.rst:59
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "上記クエリは :ref:`sampledata` のネットワークを使用しています。"
-
-# 179da1f0bf5342b49e83327d1e277ca9
-#: ../../../src/common/doc/functions/is_column_in_table.rst:63
-msgid "See Also"
-msgstr "参照"
-
-# 7e1d2140f94d40db8ce6f48c9a3b119f
-#: ../../../src/common/doc/functions/is_column_in_table.rst:65
-msgid ":ref:`pgr_is_column_indexed`"
-msgstr ":ref:`pgr_is_column_indexed`"
diff --git a/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/is_column_indexed.po b/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/is_column_indexed.po
deleted file mode 100644
index 1a60b4f..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/is_column_indexed.po
+++ /dev/null
@@ -1,89 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-06 16:30+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# f85a66c48ca94cc9a5bba227e6479482
-#: ../../../src/common/doc/functions/is_column_indexed.rst:13
-msgid "pgr_isColumnIndexed - Check if column is indexed"
-msgstr ""
-
-# a4e361cfe30d494982b2755f507c2df4
-#: ../../../src/common/doc/functions/is_column_indexed.rst:20
-msgid "Name"
-msgstr "名前"
-
-# 2616614bd27b4f3aac95e5ee66f8771c
-#: ../../../src/common/doc/functions/is_column_indexed.rst:22
-msgid "``pgr_isColumnIndexed`` — Check if a column in a table is indexed."
-msgstr ""
-
-# 4aff78895aaf431bb254a1725ab1bab6
-#: ../../../src/common/doc/functions/is_column_indexed.rst:26
-msgid "Synopsis"
-msgstr "概要"
-
-# 62d98585fdfb49d287f711a97ba6f261
-#: ../../../src/common/doc/functions/is_column_indexed.rst:28
-msgid ""
-"Returns ``true`` or ``false`` if column “col” in table “tab” is indexed."
-msgstr ""
-
-# 016a3d2a60a745c39afdaa4ba6d24b5f
-#: ../../../src/common/doc/functions/is_column_indexed.rst:36
-msgid "Description"
-msgstr "説明"
-
-# 5efc6b2a366544cdadac135ab40dee54
-#: ../../../src/common/doc/functions/is_column_indexed.rst:38
-msgid "``text`` table name with or without schema component"
-msgstr ""
-
-# 76548c59562d4c4188ea7a5bbd5b769a
-#: ../../../src/common/doc/functions/is_column_indexed.rst:39
-msgid "``text`` column name to be checked for"
-msgstr ""
-
-# 20bbf0766ada4f7b81807c2e917be118
-#: ../../../src/common/doc/functions/is_column_indexed.rst:43
-msgid "History"
-msgstr "歴史"
-
-# 3ca6785c8cb24235a6b581e63c32bd03
-#: ../../../src/common/doc/functions/is_column_indexed.rst:44
-msgid "New in version 2.0.0"
-msgstr ""
-
-# 89feb49b01e94980935495257bf135a9
-#: ../../../src/common/doc/functions/is_column_indexed.rst:48
-msgid "Examples"
-msgstr "例"
-
-# c8b849f8431c42ef9ecdcde47c516f03
-#: ../../../src/common/doc/functions/is_column_indexed.rst:59
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "上記クエリは :ref:`sampledata` のネットワークを使用しています。"
-
-# 4d38c2d872d0425290c2371cbc5d27e8
-#: ../../../src/common/doc/functions/is_column_indexed.rst:63
-msgid "See Also"
-msgstr "参照"
-
-# ed5ed4b10dc74af48b9de1a8743ec37b
-#: ../../../src/common/doc/functions/is_column_indexed.rst:65
-msgid ":ref:`pgr_is_column_in_table`"
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/node_network.po b/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/node_network.po
deleted file mode 100644
index c7c5ffd..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/node_network.po
+++ /dev/null
@@ -1,416 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:14+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# e70efe892bc14a45b9e0a2483d5955c1
-#: ../../../src/common/doc/functions/node_network.rst:13
-msgid "pgr_nodeNetwork"
-msgstr ""
-
-# 928e918755da48d29b113ad9fcdac620
-#: ../../../src/common/doc/functions/node_network.rst:20
-msgid "Name"
-msgstr "名前"
-
-# 4c656aa4f4bf48c39d41d16b429a0f0f
-#: ../../../src/common/doc/functions/node_network.rst:22
-msgid "``pgr_nodeNetwork`` - Nodes an network edge table."
-msgstr ""
-
-# b5fd23c4e27446ce8ac33a3ee9bd1fe7
-#: ../../../src/common/doc/functions/node_network.rst:24
-msgid "Nicolas Ribot"
-msgstr ""
-
-# 16108dce80dd41e2a458f2f45f2864d0
-#: ../../../src/common/doc/functions/node_network.rst:25
-msgid "Nicolas Ribot, The source code is released under the MIT-X license."
-msgstr ""
-
-# 3977ae6b9cf044318ec203a8e5aa5692
-#: ../../../src/common/doc/functions/node_network.rst:29
-msgid "Synopsis"
-msgstr "概要"
-
-# 2f6a7ad6abe5481da1e313d912af14e9
-#: ../../../src/common/doc/functions/node_network.rst:31
-msgid ""
-"The function reads edges from a not \"noded\" network table and writes the "
-"\"noded\" edges into a new table."
-msgstr ""
-
-# 3461fdeb834f4294ae2b188234db4eff
-#: ../../../src/common/doc/functions/node_network.rst:40
-msgid "Description"
-msgstr "説明"
-
-# 422a0c6c90c04a46bec03a6510ec201f
-#: ../../../src/common/doc/functions/node_network.rst:42
-msgid ""
-"A common problem associated with bringing GIS data into pgRouting is the "
-"fact that the data is often not \"noded\" correctly. This will create "
-"invalid topologies, which will result in routes that are incorrect."
-msgstr ""
-
-# 69294245f1c44993a75f749e3721222a
-#: ../../../src/common/doc/functions/node_network.rst:44
-msgid ""
-"What we mean by \"noded\" is that at every intersection in the road network "
-"all the edges will be broken into separate road segments. There are cases "
-"like an over-pass and under-pass intersection where you can not traverse "
-"from the over-pass to the under-pass, but this function does not have the "
-"ability to detect and accommodate those situations."
-msgstr ""
-
-# 2817b2a1050f4b5da0c9aac6f306ea5e
-#: ../../../src/common/doc/functions/node_network.rst:46
-msgid ""
-"This function reads the ``edge_table`` table, that has a primary key column "
-"``id`` and geometry column named ``the_geom`` and intersect all the segments"
-" in it against all the other segments and then creates a table "
-"``edge_table_noded``. It uses the ``tolerance`` for deciding that multiple "
-"nodes within the tolerance are considered the same node."
-msgstr ""
-
-# b6408b0103e84de6acf993a22a25e533
-#: ../../../src/common/doc/functions/node_network.rst:48
-msgid "Parameters"
-msgstr ""
-
-# 40ed2f0c80b64683aa3f8d42d20a77a2
-#: ../../../src/common/doc/functions/node_network.rst:50
-msgid "``text`` Network table name. (may contain the schema name as well)"
-msgstr ""
-
-# 86c247b372114883b5f6d0949e51b3c8
-#: ../../../src/common/doc/functions/node_network.rst:51
-msgid "``float8`` tolerance for coincident points (in projection unit)dd"
-msgstr ""
-
-# 946d6ed96b2b4f7fac8bcc7ba4d8e68b
-#: ../../../src/common/doc/functions/node_network.rst:52
-msgid ""
-"``text`` Primary key column name of the network table. Default value is "
-"``id``."
-msgstr ""
-
-# ce2e7f47f3bb4b299dda0387123f0409
-#: ../../../src/common/doc/functions/node_network.rst:53
-msgid ""
-"``text`` Geometry column name of the network table. Default value is "
-"``the_geom``."
-msgstr ""
-
-# 74d00078e6354e09a4592cf7e3f9dbe8
-#: ../../../src/common/doc/functions/node_network.rst:54
-msgid "``text`` Suffix for the new table's. Default value is ``noded``."
-msgstr ""
-
-# bc28085240354b228628c4449f877afe
-#: ../../../src/common/doc/functions/node_network.rst:56
-msgid "The output table will have for  ``edge_table_noded``"
-msgstr ""
-
-# df15f6d14415411b85a167c31717fb4e
-#: ../../../src/common/doc/functions/node_network.rst:58
-msgid "``bigint`` Unique identifier for the table"
-msgstr ""
-
-# 4acc7cf0acea40ac852585983687ef11
-#: ../../../src/common/doc/functions/node_network.rst:59
-msgid "``bigint``  Identifier of the edge in original table"
-msgstr ""
-
-# 99bb3c953a7243e1b8232bf4a387c7d7
-#: ../../../src/common/doc/functions/node_network.rst:60
-msgid "``integer`` Segment number of the original edge"
-msgstr ""
-
-# 36a3bdb3e58840f78502c1f388619d52
-#: ../../../src/common/doc/functions/node_network.rst:61
-msgid ""
-"``integer`` Empty source column to be used with  :ref:`pgr_create_topology` "
-"function"
-msgstr ""
-
-# 05092b2ea62744f1910db90fe30ab152
-#: ../../../src/common/doc/functions/node_network.rst:62
-msgid ""
-"``integer`` Empty target column to be used with  :ref:`pgr_create_topology` "
-"function"
-msgstr ""
-
-# c2b0caed0dd643e1991dd4e7f0f08e4c
-#: ../../../src/common/doc/functions/node_network.rst:63
-msgid "``geometry`` Geometry column of the noded network"
-msgstr ""
-
-# a1f34fff1602404db7f2c2344f99cad1
-#: ../../../src/common/doc/functions/node_network.rst:66
-msgid "History"
-msgstr "歴史"
-
-# b92ecc8b6d9a4eaba9e0a30ce164fed0
-#: ../../../src/common/doc/functions/node_network.rst:67
-msgid "New in version 2.0.0"
-msgstr ""
-
-# cd2560788805450aa6ffb5ce84c8058e
-#: ../../../src/common/doc/functions/node_network.rst:71
-msgid "Example"
-msgstr ""
-
-# 7e9403e106bb4c0abdd7ed3d1b266079
-#: ../../../src/common/doc/functions/node_network.rst:73
-msgid "Let's create the topology for the data in :ref:`sampledata`"
-msgstr ""
-
-# 5c1a627f182d47efa30c1d4c830862ab
-#: ../../../src/common/doc/functions/node_network.rst:91
-msgid "Now we can analyze the network."
-msgstr ""
-
-# 3eb0c69215284a33ab1505fded4b5a1f
-#: ../../../src/common/doc/functions/node_network.rst:115
-msgid ""
-"The analysis tell us that the network has a gap and and an intersection. We "
-"try to fix the problem using:"
-msgstr ""
-
-# 8be31305870e491c92ad11d8f8d0a20a
-#: ../../../src/common/doc/functions/node_network.rst:137
-msgid ""
-"Inspecting the generated table, we can see that edges 13,14 and 18 has been "
-"segmented"
-msgstr ""
-
-# 8a086446ed8d4b30bf07015ab46ea12d
-#: ../../../src/common/doc/functions/node_network.rst:167
-msgid "We can create the topology of the new network"
-msgstr ""
-
-# 8944601cf6e343c09dce0bf706960a8c
-#: ../../../src/common/doc/functions/node_network.rst:185
-msgid "Now let's analyze the new topology"
-msgstr ""
-
-# 8a596982abe141b4a1925e35e1db79a3
-#: ../../../src/common/doc/functions/node_network.rst:211
-msgid "Images"
-msgstr ""
-
-# 960ada27fdd34c3dbfb61f10e5feba5f
-#: ../../../src/common/doc/functions/node_network.rst:244
-msgid "Comparing the results"
-msgstr ""
-
-# 8bbf24ce7c7e42f5a20e2a8d89e04c36
-#: ../../../src/common/doc/functions/node_network.rst:246
-msgid "Comparing with the Analysis in the original edge_table, we see that."
-msgstr ""
-
-# a3503fcd45dd4095b55e814ab842c829
-#: ../../../src/common/doc/functions/node_network.rst:249
-msgid "Before"
-msgstr ""
-
-# dfb592f8bd4e4572bbda7700558b3e93
-#: ../../../src/common/doc/functions/node_network.rst:249
-msgid "After"
-msgstr ""
-
-# dde3349cc54e4b94afb37800f2a163f5
-#: ../../../src/common/doc/functions/node_network.rst:251
-msgid "Table name"
-msgstr ""
-
-# f672bf7770e8488fbe5ea1fbd13d7ac9
-#: ../../../src/common/doc/functions/node_network.rst:251
-msgid "edge_table"
-msgstr ""
-
-# fbe3a7f491d4488085062b1fb783b357
-#: ../../../src/common/doc/functions/node_network.rst:251
-msgid "edge_table_noded"
-msgstr ""
-
-# adaa5d5eca664ecb9d20315adfd329b4
-#: ../../../src/common/doc/functions/node_network.rst:253
-msgid "Fields"
-msgstr ""
-
-# ebcf10a104ba4d7eaae546ec13365142
-#: ../../../src/common/doc/functions/node_network.rst:253
-msgid "All original fields"
-msgstr ""
-
-# be45b275890a4aa8a6d624b6f87774d0
-#: ../../../src/common/doc/functions/node_network.rst:253
-msgid "Has only basic fields to do a topology analysis"
-msgstr ""
-
-# 92f3a885bad349d6b5f9ef2345cb905f
-#: ../../../src/common/doc/functions/node_network.rst:255
-msgid "Dead ends"
-msgstr ""
-
-# 40a53c9b632b40a6a81f9277c11765b1
-#: ../../../src/common/doc/functions/node_network.rst:255
-msgid "Edges with 1 dead end: 1,6,24"
-msgstr ""
-
-# 709cbda3addd4b32b9b267d9ceafdb4f
-#: ../../../src/common/doc/functions/node_network.rst:256
-msgid "Edges with 2 dead ends  17,18"
-msgstr ""
-
-# d0de891ebf004a148c2bcd4510d81064
-#: ../../../src/common/doc/functions/node_network.rst:258
-msgid ""
-"Edge 17's right node is a dead end because there is no other edge sharing "
-"that same node. (cnt=1)"
-msgstr ""
-
-# 57918afd2f0445cea564eba267fa8c37
-#: ../../../src/common/doc/functions/node_network.rst:255
-msgid "Edges with 1 dead end: 1-1 ,6-1,14-2, 18-1 17-1 18-2"
-msgstr ""
-
-# ff6cb3034ea345c89df6d718108fd2bc
-#: ../../../src/common/doc/functions/node_network.rst:262
-msgid "Isolated segments"
-msgstr ""
-
-# b958862fe349475ca7c2b38bbb40663b
-#: ../../../src/common/doc/functions/node_network.rst:262
-msgid "two isolated segments:  17 and 18 both they have 2 dead ends"
-msgstr ""
-
-# 8d0bda0399694c6d8677fa928bdab03c
-#: ../../../src/common/doc/functions/node_network.rst:263
-msgid "No Isolated segments"
-msgstr ""
-
-# ac2cf90e5b2a4e75bb94688d6e4ec553
-#: ../../../src/common/doc/functions/node_network.rst:263
-msgid "Edge 17 now shares a node with edges 14-1 and 14-2"
-msgstr ""
-
-# 287c00afc68a4e869f912d7b2ddabefb
-#: ../../../src/common/doc/functions/node_network.rst:264
-msgid "Edges 18-1 and 18-2 share a node with edges 13-1 and 13-2"
-msgstr ""
-
-# bab6a1bf5c10447caa298e9247f3bf2a
-#: ../../../src/common/doc/functions/node_network.rst:266
-msgid "Gaps"
-msgstr ""
-
-# c23ab3c2eff44ddf9ddb0bee4f90197a
-#: ../../../src/common/doc/functions/node_network.rst:266
-msgid ""
-"There is a gap between edge 17 and 14 because edge 14 is near to the right "
-"node of edge 17"
-msgstr ""
-
-# 89fabbc2722649c9adf098ea0f9dde1c
-#: ../../../src/common/doc/functions/node_network.rst:266
-msgid ""
-"Edge 14 was segmented Now edges: 14-1 14-2 17 share the same node The "
-"tolerance value was taken in account"
-msgstr ""
-
-# c04f1c8028d846aeb593cd2389ee45da
-#: ../../../src/common/doc/functions/node_network.rst:270
-msgid "Intersections"
-msgstr ""
-
-# db3e94db58d0422bbfbdb83ba509d29e
-#: ../../../src/common/doc/functions/node_network.rst:270
-msgid "Edges 13 and 18 were intersecting"
-msgstr ""
-
-# 50736f49b59e4f7fa0c66f0e979d80bd
-#: ../../../src/common/doc/functions/node_network.rst:270
-msgid ""
-"Edges were segmented, So, now in the interection's point there is a node and"
-" the following edges share it: 13-1 13-2 18-1 18-2"
-msgstr ""
-
-# f39fa18acedb410fb827e37f226da00b
-#: ../../../src/common/doc/functions/node_network.rst:275
-msgid ""
-"Now, we are going to include the segments 13-1, 13-2 14-1, 14-2 ,18-1 and "
-"18-2 into our edge-table, copying the data for dir,cost,and reverse cost "
-"with tho following steps:"
-msgstr ""
-
-# 40eb8df52b5649ddb2401cc0c9fe4e7c
-#: ../../../src/common/doc/functions/node_network.rst:277
-msgid ""
-"Add a column old_id into edge_table, this column is going to keep track the "
-"id of the original edge"
-msgstr ""
-
-# 91eb1db3098b4353be78c9aef064421e
-#: ../../../src/common/doc/functions/node_network.rst:278
-msgid ""
-"Insert only the segmented edges, that is, the ones whose max(sub_id) >1"
-msgstr ""
-
-# 2158163aaac748eca84fcd78a42e9b3a
-#: ../../../src/common/doc/functions/node_network.rst:291
-msgid "We recreate the topology:"
-msgstr ""
-
-# 03050935f9bb42a69dfe42e303e8f164
-#: ../../../src/common/doc/functions/node_network.rst:311
-msgid ""
-"To get the same analysis results as the topology of edge_table_noded, we do "
-"the following query:"
-msgstr ""
-
-# bcefb46820504921aa7a3260a988c26d
-#: ../../../src/common/doc/functions/node_network.rst:338
-msgid ""
-"To get the same analysis results as the original edge_table, we do the "
-"following query:"
-msgstr ""
-
-# 376c4a5e033d42b3ba4e3c3ec018f8e8
-#: ../../../src/common/doc/functions/node_network.rst:363
-msgid ""
-"Or we can analyze everything because, maybe edge 18 is an overpass, edge 14 "
-"is an under pass and there is also a street level juction, and the same "
-"happens with edges 17 and 13."
-msgstr ""
-
-# 26fbd57b79324bd08ef2c5ee3579831e
-#: ../../../src/common/doc/functions/node_network.rst:390
-msgid "See Also"
-msgstr "参照"
-
-# 9df40faa94c64db5b2256f265be6e4d4
-#: ../../../src/common/doc/functions/node_network.rst:392
-msgid ""
-":ref:`topology` for an overview of a topology for routing algorithms. "
-":ref:`pgr_analyze_oneway` to analyze directionality of the edges. "
-":ref:`pgr_create_topology` to create a topology based on the geometry. "
-":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
-"table."
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/point_to_id.po b/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/point_to_id.po
deleted file mode 100644
index 7ea557b..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/point_to_id.po
+++ /dev/null
@@ -1,104 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-06 19:50+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# 81e0b58a4b464395b3661da85edfaa90
-#: ../../../src/common/doc/functions/point_to_id.rst:13
-msgid "pgr_pointToId - Inserts point into a vertices table"
-msgstr ""
-
-# 9bebf9f4ff2b43a39470ee284698fa33
-#: ../../../src/common/doc/functions/point_to_id.rst:20
-msgid "Name"
-msgstr "名前"
-
-# 8fcf7e9e33b448b982f7111389a7e412
-#: ../../../src/common/doc/functions/point_to_id.rst:22
-msgid "``pgr_pointToId`` — Inserts a point into a temporary vertices table."
-msgstr ""
-
-# 1ebe04b75e4444e2970f12bf667f07fa
-#: ../../../src/common/doc/functions/point_to_id.rst:26
-msgid ""
-"This function should not be used directly. Use :ref:`pgr_createTopology "
-"<pgr_create_topology>` instead."
-msgstr ""
-
-# 8c3303cb3d73446795471f411d835691
-#: ../../../src/common/doc/functions/point_to_id.rst:30
-msgid "Synopsis"
-msgstr "概要"
-
-# e17d53fea1674ad692e9d65129c04e5d
-#: ../../../src/common/doc/functions/point_to_id.rst:32
-msgid ""
-"Inserts a point into a temporary vertices table, and returns an id of a new "
-"point or an existing point. Tolerance is the minimal distance between "
-"existing points and the new point to create a new point."
-msgstr ""
-
-# 4b067a809bbd4210baf154f274aab5f0
-#: ../../../src/common/doc/functions/point_to_id.rst:40
-msgid "Description"
-msgstr "説明"
-
-# de6b0b7b7ae44691a60a709a1245e12c
-#: ../../../src/common/doc/functions/point_to_id.rst:42
-msgid "``geometry`` of the existing point"
-msgstr ""
-
-# e05906cd2cd545eead6a6a277d441ea4
-#: ../../../src/common/doc/functions/point_to_id.rst:43
-msgid ""
-"``float8`` snapping tolerance of disconnected edges (in projection unit)"
-msgstr ""
-
-# 7eb52d95126d47efbf485a1397785c34
-#: ../../../src/common/doc/functions/point_to_id.rst:45
-msgid "Returns point id (``bigint``) of a new or existing point."
-msgstr ""
-
-# 78ed162b771d42c1bdadb75ea1806c17
-#: ../../../src/common/doc/functions/point_to_id.rst:49
-msgid "History"
-msgstr "歴史"
-
-# 932b962d76c14946b54db15e77b3c90d
-#: ../../../src/common/doc/functions/point_to_id.rst:50
-msgid "Renamed in version 2.0.0"
-msgstr "バージョン 2.0.0 でリネームされました"
-
-# c1b2ccd7df20427c88dcf1ebf4b06d82
-#: ../../../src/common/doc/functions/point_to_id.rst:54
-msgid "See Also"
-msgstr "参照"
-
-# 4dafa239ff7648c2952a2d3ee70671bf
-#: ../../../src/common/doc/functions/point_to_id.rst:56
-msgid ":ref:`pgr_create_topology`"
-msgstr ":ref:`pgr_create_topology`"
-
-# 8100a50d0b5f4b0cab8d62645becc674
-#: ../../../src/common/doc/functions/point_to_id.rst:57
-msgid ":ref:`topology`"
-msgstr ":ref:`topology`"
-
-# 86ad35d9d3ce44a696b6dc61c466e04e
-#: ../../../src/common/doc/functions/point_to_id.rst:58
-msgid ":ref:`pgr_node_network`"
-msgstr ":ref:`pgr_node_network`"
diff --git a/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/quote_ident.po b/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/quote_ident.po
deleted file mode 100644
index bc4243c..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/quote_ident.po
+++ /dev/null
@@ -1,89 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-06 14:00+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# 59a19788e4ba478cb0d046fc07c08179
-#: ../../../src/common/doc/functions/quote_ident.rst:13
-msgid "pgr_quote_ident - Quote table name with Schema Component"
-msgstr ""
-
-# 61a86f593d04476692b89157939b8a1e
-#: ../../../src/common/doc/functions/quote_ident.rst:20
-msgid "Name"
-msgstr "名前"
-
-# 7ae4a51cc62143058b829f9317d4b282
-#: ../../../src/common/doc/functions/quote_ident.rst:22
-msgid ""
-"``pgr_quote_ident`` — Quote table name with or without schema component."
-msgstr ""
-
-# d09400822917498ab08038e0453f93a2
-#: ../../../src/common/doc/functions/quote_ident.rst:26
-msgid "Synopsis"
-msgstr "概要"
-
-# 02e534c6d94e4d7fa366eb30dfd82602
-#: ../../../src/common/doc/functions/quote_ident.rst:28
-msgid ""
-"Function to split a string on ``.`` characters and then quote the components"
-" as postgres identifiers and then join them back together with ``.`` "
-"characters. Multile ``.`` will get collapsed into a single ``.``, so "
-"``schema...table`` till get returned as ``schema.\"table\"`` and "
-"``Schema.table`` becomes ``\"Schema\".\"table\"``."
-msgstr ""
-
-# 70b63ad008b14b5cbd540f478c596e97
-#: ../../../src/common/doc/functions/quote_ident.rst:37
-msgid "Description"
-msgstr "説明"
-
-# 76375d16726e4e8a8c4e02b54bd4b33a
-#: ../../../src/common/doc/functions/quote_ident.rst:39
-msgid "``text`` table name with or without schema component"
-msgstr ""
-
-# d8548a7bfe3542b28f614894ba6f4b84
-#: ../../../src/common/doc/functions/quote_ident.rst:41
-msgid "Returns table name with or without schema as ``text``."
-msgstr ""
-
-# ebc95d6ee53c42f29aa6a18a134d4d20
-#: ../../../src/common/doc/functions/quote_ident.rst:45
-msgid "History"
-msgstr "歴史"
-
-# 6bea52def68e4f05ae56873b8d4f9d1c
-#: ../../../src/common/doc/functions/quote_ident.rst:46
-msgid "New in version 2.0.0"
-msgstr ""
-
-# 21e9cb20b57e4b4681d4e04d5f083d2a
-#: ../../../src/common/doc/functions/quote_ident.rst:50
-msgid "Examples"
-msgstr "例"
-
-# 5e3a344a21eb45bfba3e880ae3981a30
-#: ../../../src/common/doc/functions/quote_ident.rst:77
-msgid "See Also"
-msgstr "参照"
-
-# b4ee52cbb2b74bb59b22b1802748f96d
-#: ../../../src/common/doc/functions/quote_ident.rst:79
-msgid "[TBD]"
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/version.po b/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/version.po
deleted file mode 100644
index 0edee7e..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/version.po
+++ /dev/null
@@ -1,113 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-06 14:00+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# dbab41817c8a46459e8f33cf684a7afb
-#: ../../../src/common/doc/functions/version.rst:13
-msgid "pgr_version - Get version information"
-msgstr ""
-
-# 19cd8fb76f754d898f75659f97628007
-#: ../../../src/common/doc/functions/version.rst:20
-msgid "Name"
-msgstr "名前"
-
-# 5531935ef2384b709c4f1d81ddcdf15c
-#: ../../../src/common/doc/functions/version.rst:22
-msgid "``pgr_version`` — Query for pgRouting version information."
-msgstr ""
-
-# 52175fb13b944970989d3ef4a23a7b66
-#: ../../../src/common/doc/functions/version.rst:26
-msgid "Synopsis"
-msgstr "概要"
-
-# 14783f07374f4ccdaa53515b95c17943
-#: ../../../src/common/doc/functions/version.rst:28
-msgid "Returns a table with pgRouting version information."
-msgstr ""
-
-# 6d5995ab278d476d80f54ab15b8af686
-#: ../../../src/common/doc/functions/version.rst:36
-msgid "Description"
-msgstr "説明"
-
-# b4baa0103a55431abaa586f16230af8c
-#: ../../../src/common/doc/functions/version.rst:38
-msgid "Returns a table with:"
-msgstr ""
-
-# 7d8a75cf72b840b39e0eea6140a5839d
-#: ../../../src/common/doc/functions/version.rst:40
-msgid "``varchar`` pgRouting version"
-msgstr ""
-
-# 2af5168bce0a4b03bf2b097d3099c850
-#: ../../../src/common/doc/functions/version.rst:41
-msgid "``varchar`` Git tag of pgRouting build"
-msgstr ""
-
-# b4444b51e41549b399751bcba194a8a8
-#: ../../../src/common/doc/functions/version.rst:42
-msgid "``varchar`` Git hash of pgRouting build"
-msgstr ""
-
-# 6737b5df55e94bb185f64d0de3389f3e
-#: ../../../src/common/doc/functions/version.rst:43
-msgid "``varchar`` Git branch of pgRouting build"
-msgstr ""
-
-# e5b735559b2949b09899e982d6f2ecf3
-#: ../../../src/common/doc/functions/version.rst:44
-msgid "``varchar`` Boost version"
-msgstr ""
-
-# 9042ea468aba4c4490b7124bbf14aacb
-#: ../../../src/common/doc/functions/version.rst:48
-msgid "History"
-msgstr "歴史"
-
-# 3829660b5485491083028df2cb267d03
-#: ../../../src/common/doc/functions/version.rst:49
-msgid "New in version 2.0.0"
-msgstr ""
-
-# 8638cdf8594940cbad096c9ac3d261ad
-#: ../../../src/common/doc/functions/version.rst:53
-msgid "Examples"
-msgstr "例"
-
-# d80877f2810741ada5737305d484de11
-#: ../../../src/common/doc/functions/version.rst:55
-msgid "Query for full version string"
-msgstr ""
-
-# 2ff90cee91e644fab554650cc24bd3bf
-#: ../../../src/common/doc/functions/version.rst:67
-msgid "Query for ``version`` and ``boost`` attribute"
-msgstr ""
-
-# 6c3a1c332dc54ea2a01d81c5f5f9dcc1
-#: ../../../src/common/doc/functions/version.rst:80
-msgid "See Also"
-msgstr "参照"
-
-# 1eeb4f68d3c342dbbadade6c52b87baf
-#: ../../../src/common/doc/functions/version.rst:82
-msgid ":ref:`pgr_versionless`"
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/versionless.po b/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/versionless.po
deleted file mode 100644
index 2023e89..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/common/doc/functions/versionless.po
+++ /dev/null
@@ -1,86 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-06 14:00+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# f15b37fde8e64b508893630a0291dc6a
-#: ../../../src/common/doc/functions/versionless.rst:13
-msgid "pgr_versionless - Compare version numbers"
-msgstr ""
-
-# cd0dcc3f3489468ab55c89598715d895
-#: ../../../src/common/doc/functions/versionless.rst:20
-msgid "Name"
-msgstr "名前"
-
-# e2f0eb00eca142c8bc7d71b317604c7e
-#: ../../../src/common/doc/functions/versionless.rst:22
-msgid "``pgr_version`` — Compare two version numbers and return if smaller."
-msgstr ""
-
-# d85cf15bf8894e158945855624a422f5
-#: ../../../src/common/doc/functions/versionless.rst:26
-msgid "Synopsis"
-msgstr "概要"
-
-# ed2cb6f5c03645b3ab2a296d062c1eb9
-#: ../../../src/common/doc/functions/versionless.rst:28
-msgid ""
-"Returns ``true`` if the first version number is smaller than the second "
-"version number. Otherwise returns ``false``."
-msgstr ""
-
-# a11f675500e140ae997cdb4f167d2da4
-#: ../../../src/common/doc/functions/versionless.rst:36
-msgid "Description"
-msgstr "説明"
-
-# 7d1ac8fa4fce4362965d8587a3cd7099
-#: ../../../src/common/doc/functions/versionless.rst:38
-msgid "``text`` first version number"
-msgstr ""
-
-# 1d8a5a36a0fa4da19892193a11578a08
-#: ../../../src/common/doc/functions/versionless.rst:39
-msgid "``text`` second version number"
-msgstr ""
-
-# a32770a22cf849cb96bd78825f332825
-#: ../../../src/common/doc/functions/versionless.rst:43
-msgid "History"
-msgstr "歴史"
-
-# 14ef379da17a48389cb627817c173253
-#: ../../../src/common/doc/functions/versionless.rst:44
-msgid "New in version 2.0.0"
-msgstr ""
-
-# 7a3d2290bca342b79b4105e7aee330b0
-#: ../../../src/common/doc/functions/versionless.rst:48
-msgid "Examples"
-msgstr "例"
-
-# ca2f13a6ce4444258be7f46d40c8bd2a
-#: ../../../src/common/doc/functions/versionless.rst:61
-msgid "See Also"
-msgstr "参照"
-
-# a621baf581ff4ba8b4b03d3481d5a660
-#: ../../../src/common/doc/functions/versionless.rst:63
-msgid ":ref:`pgr_version`"
-msgstr ":ref:`pgr_version`"
diff --git a/doc/i18n/ja/LC_MESSAGES/src/common/doc/index.po b/doc/i18n/ja/LC_MESSAGES/src/common/doc/index.po
deleted file mode 100644
index 1763a68..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/common/doc/index.po
+++ /dev/null
@@ -1,23 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-02 02:38+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# ce4dbf6fe47b4c15b713488c800a92bb
-#: ../../../src/common/doc/index.rst:13
-msgid "Common Functions"
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/src/common/doc/legacy.po b/doc/i18n/ja/LC_MESSAGES/src/common/doc/legacy.po
deleted file mode 100644
index 2f50653..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/common/doc/legacy.po
+++ /dev/null
@@ -1,66 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-02 02:38+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# af2e041923d44d0d9563d0085aea25c8
-#: ../../../src/common/doc/legacy.rst:13
-msgid "Legacy Functions"
-msgstr ""
-
-# d1e607e21eea4ec49b92a5b901eff665
-#: ../../../src/common/doc/legacy.rst:15
-msgid ""
-"pgRouting 2.0 release has total restructured the function naming and "
-"obsoleted many of the functions that were available in the 1.x releases. "
-"While we realize that this may inconvenience our existing users, we felt "
-"this was needed for the long term viability of the project to be more "
-"response to our users and to be able to add new functionality and test "
-"existing functionality."
-msgstr ""
-
-# 0fe94cadd0b6451fbc30559fa5f70275
-#: ../../../src/common/doc/legacy.rst:17
-msgid ""
-"We have made a minimal effort to save most of these function and distribute "
-"with the release in a file ``pgrouting_legacy.sql`` that is not part of the "
-"pgrouting extension and is not supported. If you can use these functions "
-"that is great. We have not tested any of these functions so if you find "
-"issues and want to post a pull request or a patch to help other users that "
-"is fine, but it is likely this file will be removed in a future release and "
-"we strongly recommend that you convert your existing code to use the new "
-"documented and supported functions."
-msgstr ""
-
-# 8eb3da3e4cb1441d8743706f7397c8ee
-#: ../../../src/common/doc/legacy.rst:19
-msgid ""
-"The follow is a list of TYPEs, CASTs and FUNCTION included in the "
-"``pgrouting_legacy.sql`` file. The list is provide as a convenience but "
-"these functions are deprecated, not supported, and probably will need some "
-"changes to get them to work."
-msgstr ""
-
-# 96302a33dc8a461e9c82b33165d2f03f
-#: ../../../src/common/doc/legacy.rst:23
-msgid "TYPEs & CASTs"
-msgstr ""
-
-# 0dca26b88cc44808b873318da81f0095
-#: ../../../src/common/doc/legacy.rst:34
-msgid "FUNCTIONs"
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/src/common/doc/types.po b/doc/i18n/ja/LC_MESSAGES/src/common/doc/types.po
deleted file mode 100644
index e4967f6..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/common/doc/types.po
+++ /dev/null
@@ -1,30 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-02 02:38+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# a647839f49f94a9997479367dc35d13f
-#: ../../../src/common/doc/types.rst:13
-msgid "Custom Types"
-msgstr ""
-
-# f00f6611879f4afd961586e955284a41
-#: ../../../src/common/doc/types.rst:15
-msgid ""
-"The following are commonly used data types for some of the pgRouting "
-"functions."
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/src/common/doc/types/cost_result.po b/doc/i18n/ja/LC_MESSAGES/src/common/doc/types/cost_result.po
deleted file mode 100644
index 1a4f349..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/common/doc/types/cost_result.po
+++ /dev/null
@@ -1,115 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:13+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# 575fa6fd8a1842c68aba9825683b178d
-#: ../../../src/common/doc/types/cost_result.rst:13
-msgid "pgr_costResult[]"
-msgstr ""
-
-# 3b55f2f3cdc24995bd590e235062c389
-# 1d4bd884218342d6a7ca7ae79998c3a0
-#: ../../../src/common/doc/types/cost_result.rst:20
-#: ../../../src/common/doc/types/cost_result.rst:54
-msgid "Name"
-msgstr "名前"
-
-# 691ba9180a9f4854922720a03e1db3e0
-#: ../../../src/common/doc/types/cost_result.rst:22
-msgid ""
-"``pgr_costResult[]`` — A set of records to describe a path result with cost "
-"attribute."
-msgstr ""
-
-# 4bc0f98e83fc482daf119d02f3ab4386
-# b80ec90ac4244e82a1aa8f7e58b78921
-#: ../../../src/common/doc/types/cost_result.rst:26
-#: ../../../src/common/doc/types/cost_result.rst:60
-msgid "Description"
-msgstr "説明"
-
-# 023a9b6d62474dbdbb4d587b192099c4
-# 8e1c61381d6f47909ea0830da8a4740c
-#: ../../../src/common/doc/types/cost_result.rst:38
-#: ../../../src/common/doc/types/cost_result.rst:73
-msgid "sequential ID indicating the path order"
-msgstr ""
-
-# 98a23fe6530d43418558cdd8be417a26
-# 8c3701ae807d4738b8bbe72260f4c476
-#: ../../../src/common/doc/types/cost_result.rst:39
-#: ../../../src/common/doc/types/cost_result.rst:75
-msgid "generic name, to be specified by the function, typically the node id"
-msgstr ""
-
-# f4abd64c5dea4cda97490766f42a395c
-# 1be5c24bdc684ed1a182e9e2b0ab2343
-#: ../../../src/common/doc/types/cost_result.rst:40
-#: ../../../src/common/doc/types/cost_result.rst:76
-msgid "generic name, to be specified by the function, typically the edge id"
-msgstr ""
-
-# 0b4a362ff97d481cafd2c0328ad1f715
-# 8e11a66126844a1682d4e4c84166794d
-#: ../../../src/common/doc/types/cost_result.rst:41
-#: ../../../src/common/doc/types/cost_result.rst:77
-msgid "cost attribute"
-msgstr ""
-
-# 7e74e200db1b40e1a5231037b2e9b993
-#: ../../../src/common/doc/types/cost_result.rst:47
-msgid "pgr_costResult3[] - Multiple Path Results with Cost"
-msgstr ""
-
-# 307f0248b6c54a71bfc205bb2270b5ce
-#: ../../../src/common/doc/types/cost_result.rst:56
-msgid ""
-"``pgr_costResult3[]`` — A set of records to describe a path result with cost"
-" attribute."
-msgstr ""
-
-# 13465c99a9fb49ebab1d1852e6c61aab
-#: ../../../src/common/doc/types/cost_result.rst:74
-msgid "generic name, to be specified by the function, typically the path id"
-msgstr ""
-
-# ac46c731c85d4d358a763bc1268ef510
-#: ../../../src/common/doc/types/cost_result.rst:81
-msgid "History"
-msgstr "歴史"
-
-# 6bc9329d908f474bbcd380272dae671d
-#: ../../../src/common/doc/types/cost_result.rst:82
-msgid "New in version 2.0.0"
-msgstr ""
-
-# 7e5f0c1b76c349ce940c19b2312cc2ec
-#: ../../../src/common/doc/types/cost_result.rst:83
-msgid "Replaces ``path_result``"
-msgstr ""
-
-# 28df9e1fa19b49f9bb57710715c52fcb
-#: ../../../src/common/doc/types/cost_result.rst:87
-msgid "See Also"
-msgstr "参照"
-
-# 21432e8842c1490ba3a7825f4b4e57bb
-#: ../../../src/common/doc/types/cost_result.rst:89
-msgid ":ref:`introduction`"
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/src/common/doc/types/geom_result.po b/doc/i18n/ja/LC_MESSAGES/src/common/doc/types/geom_result.po
deleted file mode 100644
index 2229e77..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/common/doc/types/geom_result.po
+++ /dev/null
@@ -1,83 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:13+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# baeae55a13de4766b42a9f43c6f8caaf
-#: ../../../src/common/doc/types/geom_result.rst:13
-msgid "pgr_geomResult[]"
-msgstr ""
-
-# 4fc9eadff47c4a24baa096c8c667c469
-#: ../../../src/common/doc/types/geom_result.rst:20
-msgid "Name"
-msgstr "名前"
-
-# 03beb686e4ec49e08cd6f1f0f5e03339
-#: ../../../src/common/doc/types/geom_result.rst:22
-msgid ""
-"``pgr_geomResult[]`` — A set of records to describe a path result with "
-"geometry attribute."
-msgstr ""
-
-# fd9c91caacdf4a2fb1c186c45e1d5525
-#: ../../../src/common/doc/types/geom_result.rst:26
-msgid "Description"
-msgstr "説明"
-
-# c00f6b668c744c7d822d2d2155e76b7a
-#: ../../../src/common/doc/types/geom_result.rst:38
-msgid "sequential ID indicating the path order"
-msgstr ""
-
-# 5782feff61f84fd4b3130a80b1abd7a9
-# 69c0e9623b4d41669a2601517d1563d2
-#: ../../../src/common/doc/types/geom_result.rst:39
-#: ../../../src/common/doc/types/geom_result.rst:40
-msgid "generic name, to be specified by the function"
-msgstr ""
-
-# c837b15d4460475996b2f7bac8b14076
-#: ../../../src/common/doc/types/geom_result.rst:41
-msgid "geometry attribute"
-msgstr ""
-
-# cf5503504b26427b800efddbc1098b64
-#: ../../../src/common/doc/types/geom_result.rst:45
-msgid "History"
-msgstr "歴史"
-
-# 4e474c2cf69748c680853e0505ce4773
-#: ../../../src/common/doc/types/geom_result.rst:46
-msgid "New in version 2.0.0"
-msgstr ""
-
-# f4d42016a50f43438838421dfb361835
-#: ../../../src/common/doc/types/geom_result.rst:47
-msgid "Replaces ``geoms``"
-msgstr ""
-
-# 0075486d62f84298b41797b5789d377a
-#: ../../../src/common/doc/types/geom_result.rst:51
-msgid "See Also"
-msgstr "参照"
-
-# 5a190ec8601a4a919a058395614d7db5
-#: ../../../src/common/doc/types/geom_result.rst:53
-msgid ":ref:`introduction`"
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/src/common/doc/utilities/end_point.po b/doc/i18n/ja/LC_MESSAGES/src/common/doc/utilities/end_point.po
deleted file mode 100644
index 62a1b0f..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/common/doc/utilities/end_point.po
+++ /dev/null
@@ -1,92 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 05:50+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# 608ee0c4d0644bdba6e3dc233e2143a7
-#: ../../../src/common/doc/utilities/end_point.rst:13
-msgid "pgr_endPoint"
-msgstr ""
-
-# 8518d0c13dcc4cb9b4a6eb5bd83e8d6e
-#: ../../../src/common/doc/utilities/end_point.rst:20
-msgid "Name"
-msgstr "名前"
-
-# 3660b4422cfa4aaea41cf4b4e91164ee
-#: ../../../src/common/doc/utilities/end_point.rst:22
-msgid ""
-"``pgr_endPoint`` — Returns an end point of a (multi)linestring geometry."
-msgstr ""
-
-# 549e2d553af74e0bba5a2833eafa7983
-#: ../../../src/common/doc/utilities/end_point.rst:24
-msgid "This function is intended for the developer's aid."
-msgstr ""
-
-# d2cdf35b795f4fcfbfc9c84a2c36387b
-#: ../../../src/common/doc/utilities/end_point.rst:28
-msgid "Synopsis"
-msgstr "概要"
-
-# 180a778d767b496986ed060d48f0de04
-# 14f173f6f91f488b940887c452049824
-#: ../../../src/common/doc/utilities/end_point.rst:30
-#: ../../../src/common/doc/utilities/end_point.rst:44
-msgid ""
-"Returns the geometry of the end point of the first LINESTRING of ``geom``."
-msgstr ""
-
-# c8cfaed54e00467bba188637f3d25e04
-#: ../../../src/common/doc/utilities/end_point.rst:38
-msgid "Description"
-msgstr "説明"
-
-# b7a5d14354644a79aaa532e44543b0f1
-#: ../../../src/common/doc/utilities/end_point.rst:41
-msgid "Parameters"
-msgstr ""
-
-# 01b0d917d9534f74885248e0be35ca6d
-#: ../../../src/common/doc/utilities/end_point.rst:42
-msgid "``geometry`` Geometry of a MULTILINESTRING or LINESTRING."
-msgstr ""
-
-# a1951e42b2164de2b73d7ecde1bc5252
-#: ../../../src/common/doc/utilities/end_point.rst:49
-msgid "History"
-msgstr "履歴"
-
-# fd2421f2ca2945c4ad59395a0fa9cb90
-#: ../../../src/common/doc/utilities/end_point.rst:50
-msgid "New in version 2.0.0"
-msgstr ""
-
-# 031cd30124a9491e80778dce1c6d77ab
-#: ../../../src/common/doc/utilities/end_point.rst:55
-msgid "See Also"
-msgstr "参照"
-
-# f17f7b08a35d44098381d1c280756f49
-#: ../../../src/common/doc/utilities/end_point.rst:57
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-# 68b294268f37462fb09eb605267d0686
-#: ../../../src/common/doc/utilities/end_point.rst:58
-msgid ":ref:`pgr_start_point` to get the start point of a (multi)linestring."
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/src/common/doc/utilities/get_column_name.po b/doc/i18n/ja/LC_MESSAGES/src/common/doc/utilities/get_column_name.po
deleted file mode 100644
index 093e90c..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/common/doc/utilities/get_column_name.po
+++ /dev/null
@@ -1,140 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 05:50+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# f62e871185dd40c2a9e8b7cec3ea97b9
-#: ../../../src/common/doc/utilities/get_column_name.rst:13
-msgid "pgr_getColumnName"
-msgstr ""
-
-# 0d4e05a54bf944d2a712bcee9d7897c4
-#: ../../../src/common/doc/utilities/get_column_name.rst:20
-msgid "Name"
-msgstr "名前"
-
-# c1e5f5dde2804946bee1804968cb4efc
-#: ../../../src/common/doc/utilities/get_column_name.rst:22
-msgid ""
-"``pgr_getColumnName`` — Retrieves the name of the column as is stored in the"
-" postgres administration tables."
-msgstr ""
-
-# 89a0f81382ca4dd4807320cd56be21bb
-#: ../../../src/common/doc/utilities/get_column_name.rst:24
-msgid "This function is intended for the developer’s aid."
-msgstr ""
-
-# a6025211521149deb893b8e059385c6b
-#: ../../../src/common/doc/utilities/get_column_name.rst:27
-msgid "Synopsis"
-msgstr "概要"
-
-# e6dc3534289949caa3eebca95dbe364e
-#: ../../../src/common/doc/utilities/get_column_name.rst:29
-msgid "Returns a ``text`` contining the registered name of the column."
-msgstr ""
-
-# ef6704e3345e4be4a51fd144fbfc5d82
-#: ../../../src/common/doc/utilities/get_column_name.rst:37
-msgid "Description"
-msgstr "説明"
-
-# de7acd82e1244d8ba20da3bae0d95f22
-#: ../../../src/common/doc/utilities/get_column_name.rst:39
-msgid "Parameters"
-msgstr ""
-
-# 0b9f663d5b0e4f18a4bda0b996e55470
-#: ../../../src/common/doc/utilities/get_column_name.rst:41
-msgid "``text`` table name with or without schema component."
-msgstr ""
-
-# 34e350e22e5a495aa831ca55d080899a
-#: ../../../src/common/doc/utilities/get_column_name.rst:42
-msgid "``text`` column name to be retrived."
-msgstr ""
-
-# e495d55a75424870ba29867eb248cf4d
-#: ../../../src/common/doc/utilities/get_column_name.rst:44
-msgid "Returns"
-msgstr ""
-
-# c1394725601143b081216fe27794fbe6
-#: ../../../src/common/doc/utilities/get_column_name.rst:46
-msgid "``text`` containing the registered name of the column."
-msgstr ""
-
-# ec0c3eb922f44a818f1724026f43c7da
-#: ../../../src/common/doc/utilities/get_column_name.rst:47
-msgid "``NULL`` when :"
-msgstr ""
-
-# d3cb598bdcdf4349837225c6e9efa756
-#: ../../../src/common/doc/utilities/get_column_name.rst:49
-msgid "The table “tab” is not found or"
-msgstr ""
-
-# 6d27bb1e405343a893db971fe1cee8b7
-#: ../../../src/common/doc/utilities/get_column_name.rst:50
-msgid ""
-"Column “col” is not found in table “tab” in the postgres administration "
-"tables."
-msgstr ""
-
-# f56b94dfc7574beba7ee2b42199e9c27
-#: ../../../src/common/doc/utilities/get_column_name.rst:53
-msgid "History"
-msgstr "履歴"
-
-# 57eede78e2024b059d7e09968747a720
-#: ../../../src/common/doc/utilities/get_column_name.rst:54
-msgid "New in version 2.0.0"
-msgstr ""
-
-# efbc409d37be4e30a8edf913a4d89664
-#: ../../../src/common/doc/utilities/get_column_name.rst:58
-msgid "Examples"
-msgstr "例"
-
-# 741d466c28fb47feb64d7ef7593275e7
-#: ../../../src/common/doc/utilities/get_column_name.rst:76
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "上記クエリは :ref:`sampledata` のネットワークを使用しています。"
-
-# acb3053630ab458d93853aa31aad9ade
-#: ../../../src/common/doc/utilities/get_column_name.rst:80
-msgid "See Also"
-msgstr "参照"
-
-# e54ecee9b6744650b79cb07b0c0274dd
-#: ../../../src/common/doc/utilities/get_column_name.rst:82
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-# 9143b02cdd264a818a9edda19a0e7ce7
-#: ../../../src/common/doc/utilities/get_column_name.rst:83
-msgid ""
-":ref:`pgr_is_column_in_table` to check only for the existance of the column."
-msgstr ""
-
-# 11630fb324eb4a80bdfffb972707478d
-#: ../../../src/common/doc/utilities/get_column_name.rst:84
-msgid ""
-":ref:`pgr_get_table_name` to retrieve the name of the table as is stored in "
-"the postgres administration tables."
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/src/common/doc/utilities/get_table_name.po b/doc/i18n/ja/LC_MESSAGES/src/common/doc/utilities/get_table_name.po
deleted file mode 100644
index 57d7f1f..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/common/doc/utilities/get_table_name.po
+++ /dev/null
@@ -1,151 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 05:50+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# 95f0c2d0bb88448c8b72400e83c9f6f4
-#: ../../../src/common/doc/utilities/get_table_name.rst:13
-msgid "pgr_getTableName"
-msgstr ""
-
-# 68a49ae29d0e4036bda025f169e4f3f7
-#: ../../../src/common/doc/utilities/get_table_name.rst:20
-msgid "Name"
-msgstr "名前"
-
-# 8f9480f595c9426f945620d8b5977b86
-#: ../../../src/common/doc/utilities/get_table_name.rst:22
-msgid ""
-"``pgr_getTableName`` — Retrieves the name of the column as is stored in the "
-"postgres administration tables."
-msgstr ""
-
-# c06c3bd3649a4e27af6f710e189ea071
-#: ../../../src/common/doc/utilities/get_table_name.rst:24
-msgid "This function is intended for the developer’s aid."
-msgstr ""
-
-# 3285b01b587a4aac94ab9ee03a474ef7
-#: ../../../src/common/doc/utilities/get_table_name.rst:27
-msgid "Synopsis"
-msgstr "概要"
-
-# ecd7065df5e047ef8415f13acf653201
-#: ../../../src/common/doc/utilities/get_table_name.rst:29
-msgid ""
-"Returns a record containing the registered names of the table and of the "
-"schema it belongs to."
-msgstr ""
-
-# 9912cc30113340efa3e5e3ac408d3a3c
-#: ../../../src/common/doc/utilities/get_table_name.rst:37
-msgid "Description"
-msgstr "説明"
-
-# 787a57d13f8a48a289b545e5c5fc50d5
-#: ../../../src/common/doc/utilities/get_table_name.rst:39
-msgid "Parameters"
-msgstr ""
-
-# 3c523e72ddd74a10b3defc135e0a1fa1
-#: ../../../src/common/doc/utilities/get_table_name.rst:41
-msgid "``text`` table name with or without schema component."
-msgstr ""
-
-# bc51a86638e44b1b8d435a7fcec971e1
-#: ../../../src/common/doc/utilities/get_table_name.rst:43
-msgid "Returns"
-msgstr ""
-
-# a3da192f153341e484e7a1c973e77570
-#: ../../../src/common/doc/utilities/get_table_name.rst:47
-msgid "``text`` containing the registered name of the schema of table \"tab\"."
-msgstr ""
-
-# 77471087a83049e4924411216422cd8f
-#: ../../../src/common/doc/utilities/get_table_name.rst:49
-msgid "when the schema was not provided in \"tab\" the current schema is used."
-msgstr ""
-
-# f253b42e28a3413abcbeebd5a25fbb53
-# a25f490ebce344728e53d37057ded897
-#: ../../../src/common/doc/utilities/get_table_name.rst:51
-#: ../../../src/common/doc/utilities/get_table_name.rst:58
-msgid "``NULL`` when :"
-msgstr ""
-
-# ab062cff517a43b6b5a40e1090073265
-# 49a4ab8abced47adaf11ea7b321f06b9
-#: ../../../src/common/doc/utilities/get_table_name.rst:53
-#: ../../../src/common/doc/utilities/get_table_name.rst:60
-msgid "The schema is not found in the postgres administration tables."
-msgstr ""
-
-# 19d2a93e6d45419d89974c286d1347f3
-#: ../../../src/common/doc/utilities/get_table_name.rst:57
-msgid "``text`` containing the registered name of the table \"tab\"."
-msgstr ""
-
-# 7c7d80132bbc4693a79fbb1bb32a804d
-#: ../../../src/common/doc/utilities/get_table_name.rst:61
-msgid ""
-"The table \"tab\" is not registered under the schema ``sname`` in the "
-"postgres administration tables"
-msgstr ""
-
-# fe048e6d68984dfb9e8d91f72f99f65a
-#: ../../../src/common/doc/utilities/get_table_name.rst:65
-msgid "History"
-msgstr "履歴"
-
-# 0ac3887a0f0642ca8bf6c6fa12f497bb
-#: ../../../src/common/doc/utilities/get_table_name.rst:66
-msgid "New in version 2.0.0"
-msgstr ""
-
-# fbd75b0146ff4f9595156794c4ebd6fd
-#: ../../../src/common/doc/utilities/get_table_name.rst:70
-msgid "Examples"
-msgstr "例"
-
-# 3792394a3a344c4493db40c2d04b5e2d
-#: ../../../src/common/doc/utilities/get_table_name.rst:95
-msgid "The examples use the :ref:`sampledata` network."
-msgstr ""
-
-# 10229dc5fd6545bdb875c9885f090618
-#: ../../../src/common/doc/utilities/get_table_name.rst:99
-msgid "See Also"
-msgstr "参照"
-
-# c24e1b3593b44343b2e4c86e06b4cbb2
-#: ../../../src/common/doc/utilities/get_table_name.rst:101
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-# 830f93a843b145ebb35db5cf5de99e00
-#: ../../../src/common/doc/utilities/get_table_name.rst:102
-msgid ""
-":ref:`pgr_is_column_in_table` to check only for the existance of the column."
-msgstr ""
-
-# e731438ed94a48a0b26ea5223b564393
-#: ../../../src/common/doc/utilities/get_table_name.rst:103
-msgid ""
-":ref:`pgr_get_table_name` to retrieve the name of the table as is stored in "
-"the postgres administration tables."
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/src/common/doc/utilities/is_column_in_table.po b/doc/i18n/ja/LC_MESSAGES/src/common/doc/utilities/is_column_in_table.po
deleted file mode 100644
index df27e81..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/common/doc/utilities/is_column_in_table.po
+++ /dev/null
@@ -1,137 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 05:50+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# f6500f30614b461f90b682890f3c3192
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:13
-msgid "pgr_isColumnInTable"
-msgstr ""
-
-# 7a4ec9b1b3514801a079916c0000371b
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:20
-msgid "Name"
-msgstr "名前"
-
-# 90dd01a206e24dbf9f73f90924c0615b
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:22
-msgid "``pgr_isColumnInTable`` — Check if a column is in the table."
-msgstr ""
-
-# 0d927909521c4f638c543baff8ebd318
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:24
-msgid "This function is intended for the developer’s aid."
-msgstr ""
-
-# b52fa51d192444e0a61674ede982a3e5
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:27
-msgid "Synopsis"
-msgstr "概要"
-
-# ea409e6a176b489aa7f326229d178d13
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:29
-msgid "Returns ``true`` when the column “col” is in table “tab”."
-msgstr ""
-
-# f5b2b429515a474892b7bddaebd7fa87
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:37
-msgid "Description"
-msgstr "説明"
-
-# a513395f631244f18df21c3b85ea7820
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:39
-msgid "``text`` Table name with or without schema component."
-msgstr ""
-
-# df577648959b4e0daab9d343543d3501
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:40
-msgid "``text`` Column name to be checked for."
-msgstr ""
-
-# faa09fc52bc54a0f9fe811ff099aa562
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:42
-msgid "Returns:"
-msgstr ""
-
-# 67ed5e9b40764fa1be45f8936680f526
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:44
-msgid "``true`` when the column “col” is in table “tab”."
-msgstr ""
-
-# fc38c243b9154c03833b5c9acd63804e
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:45
-msgid "``false`` when:"
-msgstr ""
-
-# fb6952dd480644c78db65cfbc109f967
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:47
-msgid "The table \"tab\" is not found or"
-msgstr ""
-
-# e701055cfb574ccd800767d4d4555d02
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:48
-msgid "Column “col” is not found in table “tab”"
-msgstr ""
-
-# be793f469b524522a2331a60fb6d7bac
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:51
-msgid "History"
-msgstr "履歴"
-
-# 03a9d21bed654a438312a5a6d45fcf17
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:52
-msgid "New in version 2.0.0"
-msgstr ""
-
-# 1691f75cb0674d2d83b0bebe24105a6d
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:56
-msgid "Examples"
-msgstr "例"
-
-# c8d317a25f554ec6b9af54b1f7ae6c26
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:76
-msgid "The example use the :ref:`sampledata` network."
-msgstr ""
-
-# 24c87607bf1b4b23bb01e403b16e856f
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:80
-msgid "See Also"
-msgstr "参照"
-
-# b3efbf8b34fd415bbfc31810cc19b9dc
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:82
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-# 53d890d3132e4c7d94e0675093e6c146
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:83
-msgid ":ref:`pgr_is_column_indexed` to check if the column is indexed."
-msgstr ""
-
-# 5324fa01310a4c509d7ce91c088865e9
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:84
-msgid ""
-":ref:`pgr_get_column_name` to get the name of the column as is stored in the"
-" postgres administration tables."
-msgstr ""
-
-# d97c057248844396aaa96cacbfcbc034
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:85
-msgid ""
-":ref:`pgr_get_table_name` to get the name of the table as is stored in the "
-"postgres administration tables."
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/src/common/doc/utilities/is_column_indexed.po b/doc/i18n/ja/LC_MESSAGES/src/common/doc/utilities/is_column_indexed.po
deleted file mode 100644
index 48271dc..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/common/doc/utilities/is_column_indexed.po
+++ /dev/null
@@ -1,144 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 05:50+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# d13f67c428de40999845a53a259a0896
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:13
-msgid "pgr_isColumnIndexed"
-msgstr ""
-
-# 8c9da63e8a0e4da4aa092b82eced03c0
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:20
-msgid "Name"
-msgstr "名前"
-
-# cdfe958887b74d69a5d69a8c3b76f35d
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:22
-msgid "``pgr_isColumnIndexed`` — Check if a column in a table is indexed."
-msgstr ""
-
-# 16efc5cad4b0458aa30f27dcc834fb0b
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:24
-msgid "This function is intended for the developer’s aid."
-msgstr ""
-
-# 1611a88987e54ab8a15606f82d4c6098
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:27
-msgid "Synopsis"
-msgstr "概要"
-
-# 004725222faa47fd971e321be44816e6
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:29
-msgid "Returns ``true`` when the column “col” in table “tab” is indexed."
-msgstr ""
-
-# 3389fb7dd377428cbf442296f0032a6a
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:37
-msgid "Description"
-msgstr "説明"
-
-# cfb294e6535c4b0d91975ec3cb1c8985
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:39
-msgid "``text`` Table name with or without schema component."
-msgstr ""
-
-# 4cb8e78e50fb4ecbb15f141bb496040d
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:40
-msgid "``text`` Column name to be checked for."
-msgstr ""
-
-# a0f63aba19d0494b9cdcc5c7a61aebdb
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:42
-msgid "Returns:"
-msgstr ""
-
-# 66eed092853a47f9a7f69aa1fedbc666
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:44
-msgid "``true`` when the column “col” in table “tab” is indexed."
-msgstr ""
-
-# dbb567f94e994beaac90ea65cc8a324e
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:45
-msgid "``false`` when:"
-msgstr ""
-
-# f45a928140f24c299053e944f5550b7e
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:47
-msgid "The table \"tab\" is not found or"
-msgstr ""
-
-# c949dec2746e48459f93287f24a1334a
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:48
-msgid "Column “col” is not found in table “tab” or"
-msgstr ""
-
-# b2fd725d67df46b98d8ca3eddde9d1b5
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:49
-msgid "Column \"col\" in table \"tab\" is not indexed"
-msgstr ""
-
-# fe7b50380e1246599dd0b8abbac9a394
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:52
-msgid "History"
-msgstr "履歴"
-
-# 2949ff82708f44db903c9e175d8fd484
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:53
-msgid "New in version 2.0.0"
-msgstr ""
-
-# c19a7c36df38472bb330eafac37c34d3
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:57
-msgid "Examples"
-msgstr "例"
-
-# 9484e0bc1f1942da88f6261afd689f40
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:77
-msgid "The example use the :ref:`sampledata` network."
-msgstr ""
-
-# ba4b525f9ced43898aab4410c804208b
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:81
-msgid "See Also"
-msgstr "参照"
-
-# 76c91def69da43539042f05a15240e67
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:83
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-# 10267ea719b141b7a9e7712543121d34
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:84
-msgid ""
-":ref:`pgr_is_column_in_table` to check only for the existance of the column "
-"in the table."
-msgstr ""
-
-# 4e5e6df51cf149cd9e79ef3459273a4b
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:85
-msgid ""
-":ref:`pgr_get_column_name` to get the name of the column as is stored in the"
-" postgres administration tables."
-msgstr ""
-
-# 2cda9c32c4ec4117914b3e51f125c1df
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:86
-msgid ""
-":ref:`pgr_get_table_name` to get the name of the table as is stored in the "
-"postgres administration tables."
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/src/common/doc/utilities/point_to_id.po b/doc/i18n/ja/LC_MESSAGES/src/common/doc/utilities/point_to_id.po
deleted file mode 100644
index fb995f0..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/common/doc/utilities/point_to_id.po
+++ /dev/null
@@ -1,144 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 05:50+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# 94641dca24af4c0dba2fbeed97300d22
-#: ../../../src/common/doc/utilities/point_to_id.rst:13
-msgid "pgr_pointToId"
-msgstr ""
-
-# 56e635560a6d4492ae86100badf0e086
-#: ../../../src/common/doc/utilities/point_to_id.rst:20
-msgid "Name"
-msgstr "名前"
-
-# 81cc9d306cd54f46b4d517216a806eb7
-#: ../../../src/common/doc/utilities/point_to_id.rst:22
-msgid ""
-"``pgr_pointToId`` — Inserts a point into a vertices table and returns the "
-"corresponig id."
-msgstr ""
-
-# f6b714528cf7426dbeb9245b9719427c
-#: ../../../src/common/doc/utilities/point_to_id.rst:26
-msgid ""
-"This function is intended for the developer's aid. Use "
-":ref:`pgr_createTopology <pgr_create_topology>` or "
-":ref:`pgr_createVerticesTable <pgr_create_vert_table>` instead."
-msgstr ""
-
-# ba51b8bd879447188b15521bc44768c2
-#: ../../../src/common/doc/utilities/point_to_id.rst:30
-msgid "Synopsis"
-msgstr "概要"
-
-# 426a196654d64ba99aa86b9e3eb47996
-#: ../../../src/common/doc/utilities/point_to_id.rst:32
-msgid ""
-"This function returns the ``id`` of the row in the vertices table that "
-"corresponds to the ``point`` geometry"
-msgstr ""
-
-# ad82864ab2bc436bb940d9dbb4bb7e28
-#: ../../../src/common/doc/utilities/point_to_id.rst:40
-msgid "Description"
-msgstr "説明"
-
-# 6f0b7969c38c4b60a652b8c56e860cb5
-#: ../../../src/common/doc/utilities/point_to_id.rst:42
-msgid "``geometry`` \"POINT\" geometry to be inserted."
-msgstr ""
-
-# 972b42f5a56a456584ffe992d2c9f597
-#: ../../../src/common/doc/utilities/point_to_id.rst:43
-msgid ""
-"``float8`` Snapping tolerance of disconnected edges. (in projection unit)"
-msgstr ""
-
-# 8026350c7b7b4ab9bb8a4d01a5398e92
-#: ../../../src/common/doc/utilities/point_to_id.rst:44
-msgid "``text`` Vertices table name WITH schema included."
-msgstr ""
-
-# fdb31c3aac0442fd9a79fd2e3cec8567
-#: ../../../src/common/doc/utilities/point_to_id.rst:45
-msgid "``integer`` SRID of the geometry point."
-msgstr ""
-
-# 1cb7d86e4eb54c46b998f27b7d883269
-#: ../../../src/common/doc/utilities/point_to_id.rst:47
-msgid ""
-"This function returns the id of the row that corresponds to the ``point`` "
-"geometry"
-msgstr ""
-
-# 6444a2e3a1eb4ec1b9e456bd7d566ec3
-#: ../../../src/common/doc/utilities/point_to_id.rst:49
-msgid ""
-"When the ``point`` geometry already exists in the vertices table "
-"``vertname``, it returns the corresponing ``id``."
-msgstr ""
-
-# f348861666b446b8b94833b19fc43b3a
-#: ../../../src/common/doc/utilities/point_to_id.rst:50
-msgid ""
-"When the ``point`` geometry is not found in the vertices table ``vertname``,"
-" the funcion inserts the ``point`` and returns the corresponing ``id`` of "
-"the newly created vertex."
-msgstr ""
-
-# bbc93993a9494838bb777feb3c966b2b
-#: ../../../src/common/doc/utilities/point_to_id.rst:52
-msgid ""
-"The function do not perform any checking of the parameters. Any validation "
-"has to be done before calling this function."
-msgstr ""
-
-# feb893694fe44a30b39b6671d6603125
-#: ../../../src/common/doc/utilities/point_to_id.rst:55
-msgid "History"
-msgstr "履歴"
-
-# ac4bb20cbeeb49e8a95d92ca52981979
-#: ../../../src/common/doc/utilities/point_to_id.rst:56
-msgid "Renamed in version 2.0.0"
-msgstr "バージョン 2.0.0 でリネームされました"
-
-# f159557b0fd44238a8114795dbd499e6
-#: ../../../src/common/doc/utilities/point_to_id.rst:60
-msgid "See Also"
-msgstr "参照"
-
-# 44d7d6a102634aaab89b81a21117e3b4
-#: ../../../src/common/doc/utilities/point_to_id.rst:62
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-# 34d3f5b67bd04eef9a27bb0f9058f7a0
-#: ../../../src/common/doc/utilities/point_to_id.rst:63
-msgid ""
-":ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create a topology "
-"based on the geometry."
-msgstr ""
-
-# 6efeb93fdd6f461b95ba6fa218148c75
-#: ../../../src/common/doc/utilities/point_to_id.rst:64
-msgid ""
-":ref:`pgr_createTopology <pgr_create_topology>` to create a topology based "
-"on the geometry."
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/src/common/doc/utilities/quote_ident.po b/doc/i18n/ja/LC_MESSAGES/src/common/doc/utilities/quote_ident.po
deleted file mode 100644
index b6220b7..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/common/doc/utilities/quote_ident.po
+++ /dev/null
@@ -1,135 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 05:50+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# ad4f702fd7ab40f587534a31a99d703a
-#: ../../../src/common/doc/utilities/quote_ident.rst:13
-msgid "pgr_quote_ident"
-msgstr ""
-
-# a05a481e84424fde848925bc9df67822
-#: ../../../src/common/doc/utilities/quote_ident.rst:20
-msgid "Name"
-msgstr "名前"
-
-# 2c0d5a39de7d48a894991413895eeb1d
-#: ../../../src/common/doc/utilities/quote_ident.rst:22
-msgid ""
-"``pgr_quote_ident`` — Quotes the input text to be used as an identifier in "
-"an SQL statement string."
-msgstr ""
-
-# 81be5b43d83b4f259a8627fdbd918321
-#: ../../../src/common/doc/utilities/quote_ident.rst:24
-msgid "This function is intended for the developer's aid."
-msgstr ""
-
-# 9a208d9638b343d49e208a250552bf58
-#: ../../../src/common/doc/utilities/quote_ident.rst:28
-msgid "Synopsis"
-msgstr "概要"
-
-# 20357172c5b74450a1dd908f249e1c22
-#: ../../../src/common/doc/utilities/quote_ident.rst:30
-msgid ""
-"Returns the given identifier ``idname`` suitably quoted to be used as an "
-"identifier in an SQL statement string."
-msgstr ""
-
-# ec0d7e517b52424e83e0a39e700f6ded
-#: ../../../src/common/doc/utilities/quote_ident.rst:38
-msgid "Description"
-msgstr "説明"
-
-# 0333bd56b4d146478a759f9bec187900
-#: ../../../src/common/doc/utilities/quote_ident.rst:41
-msgid "Parameters"
-msgstr ""
-
-# 24fafacf2e084c8ebd35cc820529ddf1
-#: ../../../src/common/doc/utilities/quote_ident.rst:42
-msgid ""
-"``text`` Name of an SQL identifier. Can include ``.`` dot notation for "
-"schemas.table identifiers"
-msgstr ""
-
-# 43a32f6d513f42dda64a31f538a7cb0b
-#: ../../../src/common/doc/utilities/quote_ident.rst:44
-msgid ""
-"Returns the given string suitably quoted to be used as an identifier in an "
-"SQL statement string."
-msgstr ""
-
-# d4e0873a14da42f5b4ca3f89505e8335
-#: ../../../src/common/doc/utilities/quote_ident.rst:46
-msgid ""
-"When the identifier ``idname`` contains on or more ``.`` separators, each "
-"component is suitably quoted to be used in an SQL string."
-msgstr ""
-
-# 1842d74622194549bf87e0e37e8220c8
-#: ../../../src/common/doc/utilities/quote_ident.rst:50
-msgid "History"
-msgstr "履歴"
-
-# 3e97c734ccfc46efaedb156bfd028772
-#: ../../../src/common/doc/utilities/quote_ident.rst:51
-msgid "New in version 2.0.0"
-msgstr ""
-
-# 4c8ad273e78c414ca99c84a290acff83
-#: ../../../src/common/doc/utilities/quote_ident.rst:55
-msgid "Examples"
-msgstr "例"
-
-# c27e93edd7144c1986103e042e5b991c
-#: ../../../src/common/doc/utilities/quote_ident.rst:57
-msgid "Everything is lower case so nothing needs to be quoted."
-msgstr ""
-
-# 275c25d761794895a7a9474bd1622943
-#: ../../../src/common/doc/utilities/quote_ident.rst:76
-msgid "The column is upper case so its double quoted."
-msgstr ""
-
-# 7fc7d47e83624683a58343f8b5935b6f
-#: ../../../src/common/doc/utilities/quote_ident.rst:95
-msgid "The schema name has a capital letter so its double quoted."
-msgstr ""
-
-# 68aa84ac853546419c541739eee038e6
-#: ../../../src/common/doc/utilities/quote_ident.rst:106
-msgid "Ignores extra ``.`` separators."
-msgstr ""
-
-# 13976da7e76249c1bbbc10fb34130c59
-#: ../../../src/common/doc/utilities/quote_ident.rst:118
-msgid "See Also"
-msgstr "参照"
-
-# 9ca53a95db55462780e7fb68bba70aca
-#: ../../../src/common/doc/utilities/quote_ident.rst:120
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-# fb4b95d8a6d8403497a36238ed980b58
-#: ../../../src/common/doc/utilities/quote_ident.rst:121
-msgid ""
-":ref:`pgr_get_table_name` to get the name of the table as is stored in the "
-"postgres administration tables."
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/src/common/doc/utilities/start_point.po b/doc/i18n/ja/LC_MESSAGES/src/common/doc/utilities/start_point.po
deleted file mode 100644
index e305a0d..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/common/doc/utilities/start_point.po
+++ /dev/null
@@ -1,92 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 05:50+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# a24de4d0526742168dd2c7673d357cfe
-#: ../../../src/common/doc/utilities/start_point.rst:13
-msgid "pgr_startPoint"
-msgstr ""
-
-# 2878d80121d3453794e0871f34873592
-#: ../../../src/common/doc/utilities/start_point.rst:20
-msgid "Name"
-msgstr "名前"
-
-# ef267d5bd4dc444b9db70d9f4079f505
-#: ../../../src/common/doc/utilities/start_point.rst:22
-msgid ""
-"``pgr_startPoint`` — Returns a start point of a (multi)linestring geometry."
-msgstr ""
-
-# 57c55f6c23fd4dc59ad7f25a4a4e6f90
-#: ../../../src/common/doc/utilities/start_point.rst:24
-msgid "This function is intended for the developer's aid."
-msgstr ""
-
-# 7fb8df5ab251417bba38529aaefd457b
-#: ../../../src/common/doc/utilities/start_point.rst:28
-msgid "Synopsis"
-msgstr "概要"
-
-# 7becd53f47734fbe99a71ba8adef0d07
-# 9345f683e56b40dcb259f1ef2ea5e240
-#: ../../../src/common/doc/utilities/start_point.rst:30
-#: ../../../src/common/doc/utilities/start_point.rst:44
-msgid ""
-"Returns the geometry of the start point of the first LINESTRING of ``geom``."
-msgstr ""
-
-# f2295bc1e9ef4b08884c65ec18de9744
-#: ../../../src/common/doc/utilities/start_point.rst:38
-msgid "Description"
-msgstr "説明"
-
-# fef77a15910b4557bb253c868468c67a
-#: ../../../src/common/doc/utilities/start_point.rst:41
-msgid "Parameters"
-msgstr ""
-
-# c938ded08b8743bf9eac1b5d064e0ed0
-#: ../../../src/common/doc/utilities/start_point.rst:42
-msgid "``geometry`` Geometry of a MULTILINESTRING or LINESTRING."
-msgstr ""
-
-# 364eba92da1046889b073b64c9827bdf
-#: ../../../src/common/doc/utilities/start_point.rst:49
-msgid "History"
-msgstr "履歴"
-
-# 62c8d013ab68473c8adda6fbfaf564e9
-#: ../../../src/common/doc/utilities/start_point.rst:50
-msgid "New in version 2.0.0"
-msgstr ""
-
-# 8e8a05a8da734bb5961b296230e53bcb
-#: ../../../src/common/doc/utilities/start_point.rst:55
-msgid "See Also"
-msgstr "参照"
-
-# 6026c7e6914a49cab16a616dd0fb6bac
-#: ../../../src/common/doc/utilities/start_point.rst:57
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-# 5b0650667c4b470691f4647d5b73f783
-#: ../../../src/common/doc/utilities/start_point.rst:58
-msgid ":ref:`pgr_end_Point` to get the end point of a (multi)linestring."
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/src/common/doc/utilities/version.po b/doc/i18n/ja/LC_MESSAGES/src/common/doc/utilities/version.po
deleted file mode 100644
index 272b91e..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/common/doc/utilities/version.po
+++ /dev/null
@@ -1,113 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 05:50+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# cb10fa2694924ce19d909a3e1df513f1
-#: ../../../src/common/doc/utilities/version.rst:13
-msgid "pgr_version"
-msgstr ""
-
-# 135f514b10854445bd0cfa9f89f21f86
-#: ../../../src/common/doc/utilities/version.rst:20
-msgid "Name"
-msgstr "名前"
-
-# ee914323b4b6411ea5c157325bdfac90
-#: ../../../src/common/doc/utilities/version.rst:22
-msgid "``pgr_version`` — Query for pgRouting version information."
-msgstr ""
-
-# 301b5989ecef437b858e054c95827d83
-#: ../../../src/common/doc/utilities/version.rst:26
-msgid "Synopsis"
-msgstr "概要"
-
-# 607aa236b6134901a0871ed5bf518253
-#: ../../../src/common/doc/utilities/version.rst:28
-msgid "Returns a table with pgRouting version information."
-msgstr ""
-
-# 6190754a1b934ee586562b0995c07bc0
-#: ../../../src/common/doc/utilities/version.rst:36
-msgid "Description"
-msgstr "説明"
-
-# b85aeaeb021647e59321f2b6c9953333
-#: ../../../src/common/doc/utilities/version.rst:38
-msgid "Returns a table with:"
-msgstr ""
-
-# e5a458cace474e8babaaaff2837c160f
-#: ../../../src/common/doc/utilities/version.rst:40
-msgid "``varchar`` pgRouting version"
-msgstr ""
-
-# 7f02654b7c3641b5a35c56c47ea63022
-#: ../../../src/common/doc/utilities/version.rst:41
-msgid "``varchar`` Git tag of pgRouting build"
-msgstr ""
-
-# c50e77a54d3d4828a5ea0e89182d5f03
-#: ../../../src/common/doc/utilities/version.rst:42
-msgid "``varchar`` Git hash of pgRouting build"
-msgstr ""
-
-# ba32c01940164cfab6dec3df2cb565ed
-#: ../../../src/common/doc/utilities/version.rst:43
-msgid "``varchar`` Git branch of pgRouting build"
-msgstr ""
-
-# 135e588dcbe144db9a806d3c5b75b88c
-#: ../../../src/common/doc/utilities/version.rst:44
-msgid "``varchar`` Boost version"
-msgstr ""
-
-# 7e0b5fe0384f43648b6ca7dcdd703fd6
-#: ../../../src/common/doc/utilities/version.rst:48
-msgid "History"
-msgstr "履歴"
-
-# 3f8e572f137d472592f2abb0483e3153
-#: ../../../src/common/doc/utilities/version.rst:49
-msgid "New in version 2.0.0"
-msgstr ""
-
-# abdab1e6a00347269b027b2fedd31c15
-#: ../../../src/common/doc/utilities/version.rst:53
-msgid "Examples"
-msgstr "例"
-
-# 86be3ecef9da4b22b39cfe8fc3848b92
-#: ../../../src/common/doc/utilities/version.rst:55
-msgid "Query for full version string"
-msgstr ""
-
-# 85c014398a004db5bb9cf5afa9515f32
-#: ../../../src/common/doc/utilities/version.rst:67
-msgid "Query for ``version`` and ``boost`` attribute"
-msgstr ""
-
-# e3b6b7e66a8e4b8698f253e26126b8af
-#: ../../../src/common/doc/utilities/version.rst:80
-msgid "See Also"
-msgstr "参照"
-
-# 73744f59f3494c4e827095b7f6ca9503
-#: ../../../src/common/doc/utilities/version.rst:82
-msgid ":ref:`pgr_versionless` to compare two version numbers"
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/src/common/doc/utilities/versionless.po b/doc/i18n/ja/LC_MESSAGES/src/common/doc/utilities/versionless.po
deleted file mode 100644
index 2883cb2..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/common/doc/utilities/versionless.po
+++ /dev/null
@@ -1,95 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 05:50+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# 5209a60f43eb4ca889765b2f2855917f
-#: ../../../src/common/doc/utilities/versionless.rst:13
-msgid "pgr_versionless"
-msgstr ""
-
-# cf214511459c4e01a98c636ee93edf10
-#: ../../../src/common/doc/utilities/versionless.rst:20
-msgid "Name"
-msgstr "名前"
-
-# af9f449a91a94497a1a06310c12763cc
-#: ../../../src/common/doc/utilities/versionless.rst:22
-msgid "``pgr_versionless`` — Compare two version numbers."
-msgstr ""
-
-# cfa4ec4da8d143e9bb4f33521dc1f6b2
-#: ../../../src/common/doc/utilities/versionless.rst:24
-msgid "This function is intended for the developer’s aid."
-msgstr ""
-
-# 7a40ac52554840c48edaf4e3bc893f86
-#: ../../../src/common/doc/utilities/versionless.rst:27
-msgid "Synopsis"
-msgstr "概要"
-
-# 99a72026827e4e44b1b7e0b9defa52f8
-#: ../../../src/common/doc/utilities/versionless.rst:29
-msgid ""
-"Returns ``true`` if the first version number is smaller than the second "
-"version number. Otherwise returns ``false``."
-msgstr ""
-
-# b541ba956f94407fbbfa4f325152d137
-#: ../../../src/common/doc/utilities/versionless.rst:37
-msgid "Description"
-msgstr "説明"
-
-# f2b9c579402a4d529bdcf44885b7999e
-#: ../../../src/common/doc/utilities/versionless.rst:39
-msgid "``text`` first version number"
-msgstr ""
-
-# ff2f3530055d46b39b083a6e013b18f1
-#: ../../../src/common/doc/utilities/versionless.rst:40
-msgid "``text`` second version number"
-msgstr ""
-
-# aa0e1cf348454207aba6b1bd4d82ddcd
-#: ../../../src/common/doc/utilities/versionless.rst:44
-msgid "History"
-msgstr "履歴"
-
-# 84d6600a81814c3b87c5e309a80eef62
-#: ../../../src/common/doc/utilities/versionless.rst:45
-msgid "New in version 2.0.0"
-msgstr ""
-
-# 0dbed91f114f41a2a1ccbffbb4886a47
-#: ../../../src/common/doc/utilities/versionless.rst:49
-msgid "Examples"
-msgstr "例"
-
-# cd2ca34fb88c4024ac73c6c7076b3de2
-#: ../../../src/common/doc/utilities/versionless.rst:62
-msgid "See Also"
-msgstr "参照"
-
-# ac8a4a1b5fd0499e910d1f9c088d0d25
-#: ../../../src/common/doc/utilities/versionless.rst:64
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-# f733092d16de4d7b9bdf31b6bdae27d3
-#: ../../../src/common/doc/utilities/versionless.rst:65
-msgid ":ref:`pgr_version` to get the current version of pgRouting."
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/src/dijkstra/doc/index.po b/doc/i18n/ja/LC_MESSAGES/src/dijkstra/doc/index.po
deleted file mode 100644
index 26a7970..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/dijkstra/doc/index.po
+++ /dev/null
@@ -1,183 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# sanak <geosanak at gmail.com>, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:15+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# a6876a00bcae42fdb134f789dabd19d7
-#: ../../../src/dijkstra/doc/index.rst:13
-msgid "pgr_dijkstra - Shortest Path Dijkstra"
-msgstr "pgr_dijkstra - ダイクストラのアルゴリズムによる最短経路探索"
-
-# 5ba32c2871ea4858b8bfd351b4a01f34
-#: ../../../src/dijkstra/doc/index.rst:20
-msgid "Name"
-msgstr "名前"
-
-# eb4931f6253f4daea164710031c062f7
-#: ../../../src/dijkstra/doc/index.rst:22
-msgid "``pgr_dijkstra`` — Returns the shortest path using Dijkstra algorithm."
-msgstr "``pgr_dijkstra`` —  ダイクストラのアルゴリズムを用いた最短経路を返します。"
-
-# aad22c43d6da4f658543ad79e2b4789c
-#: ../../../src/dijkstra/doc/index.rst:26
-msgid "Synopsis"
-msgstr "概要"
-
-# d23c857c49554c10a6c99810575627e1
-#: ../../../src/dijkstra/doc/index.rst:28
-msgid ""
-"Dijkstra's algorithm, conceived by Dutch computer scientist Edsger Dijkstra "
-"in 1956. It is a graph search algorithm that solves the single-source "
-"shortest path problem for a graph with non-negative edge path costs, "
-"producing a shortest path tree. Returns a set of :ref:`pgr_costResult "
-"<type_cost_result>` (seq, id1, id2, cost) rows, that make up a path."
-msgstr ""
-
-# 9b3ef7764a8a4aec8be3fd97d0f78855
-#: ../../../src/dijkstra/doc/index.rst:37
-msgid "Description"
-msgstr "説明"
-
-# 8f12864ae55a48e6a49e9a5c7f232731
-#: ../../../src/dijkstra/doc/index.rst:39
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr "SQLのクエリーです。以下に続くカラムからなる行セットを返します:"
-
-# 883dbba5f5b94668af12a1c3d280804f
-#: ../../../src/dijkstra/doc/index.rst:46
-msgid "``int4`` identifier of the edge"
-msgstr "``int4`` 型のエッジの識別子"
-
-# 64eaa5363cc64362829f60de0f81517d
-#: ../../../src/dijkstra/doc/index.rst:47
-msgid "``int4`` identifier of the source vertex"
-msgstr "``int4`` 型の始点ノードの識別子"
-
-# 849ed774dfa442cf86f3d184c820a717
-#: ../../../src/dijkstra/doc/index.rst:48
-msgid "``int4`` identifier of the target vertex"
-msgstr "``int4`` 型の終点ノードの識別子"
-
-# 2c000dd6564240d09f3533f4b2411029
-#: ../../../src/dijkstra/doc/index.rst:49
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr "``float8`` 型のエッジの横断コストの値。負のコストはエッジがグラフに挿入されることを防ぎます。"
-
-# 13bbd212a94840bbbdd82ba008836790
-#: ../../../src/dijkstra/doc/index.rst:50
-msgid ""
-"``float8`` (optional) the cost for the reverse traversal of the edge. This "
-"is only used when the ``directed`` and ``has_rcost`` parameters are ``true``"
-" (see the above remark about negative costs)."
-msgstr ""
-
-# 42be1660a80b461ba4e56f070cde4c04
-#: ../../../src/dijkstra/doc/index.rst:52
-msgid "``int4`` id of the start point"
-msgstr "``int4`` 型の始点ノードのID"
-
-# 95547c9e5de74556a208d7c0a9e58772
-#: ../../../src/dijkstra/doc/index.rst:53
-msgid "``int4`` id of the end point"
-msgstr "``int4`` 型の始点ノードのID"
-
-# 89e9934bdbfd42aabf98993066529f92
-#: ../../../src/dijkstra/doc/index.rst:54
-msgid "``true`` if the graph is directed"
-msgstr "有向グラフの場合は ``true`` を指定"
-
-# 03f039cd5de34a3f99a5871456ed269f
-#: ../../../src/dijkstra/doc/index.rst:55
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr "``true`` の場合、SQLで生成される行セットの ``reverse_cost`` カラムは、エッジの逆方向の横断コストとして使用されます。"
-
-# 2c03ff621dfb4e11a0f215844b6cd41c
-#: ../../../src/dijkstra/doc/index.rst:57
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr ":ref:`type_cost_result` のセットを返します:"
-
-# f43f68991432480385556098be3f32ab
-#: ../../../src/dijkstra/doc/index.rst:59
-msgid "row sequence"
-msgstr "行の連番"
-
-# b5cd0a7c7e1943e2934f2d315fd0d58d
-#: ../../../src/dijkstra/doc/index.rst:60
-msgid "node ID"
-msgstr "ノードID"
-
-# ae466d86ce304295afc5b1f956c97732
-#: ../../../src/dijkstra/doc/index.rst:61
-msgid "edge ID (``-1`` for the last row)"
-msgstr "エッジID (最終行は ``-1``)"
-
-# d74ec405ac62479a93ddd9070e1cfead
-#: ../../../src/dijkstra/doc/index.rst:62
-msgid "cost to traverse from ``id1`` using ``id2``"
-msgstr "``id1`` から ``id2`` を横断するコスト"
-
-# d45859a53252493eaea97bdbe6c8936f
-#: ../../../src/dijkstra/doc/index.rst:66
-msgid "History"
-msgstr "履歴"
-
-# 41349c9ad4574d009aa7375219beab0c
-#: ../../../src/dijkstra/doc/index.rst:67
-msgid "Renamed in version 2.0.0"
-msgstr "バージョン 2.0.0 でリネームされました"
-
-# d1ebc8bc726844eab5795b5dedc18fe0
-#: ../../../src/dijkstra/doc/index.rst:71
-msgid "Examples"
-msgstr "例"
-
-# 5ea59cfbc4b240c29bc8268d4a36cdb4
-#: ../../../src/dijkstra/doc/index.rst:73
-msgid "Without ``reverse_cost``"
-msgstr "``reverse_cost`` なしの場合"
-
-# a37bcf6c164b442ca94ded3b2df83f61
-#: ../../../src/dijkstra/doc/index.rst:92
-msgid "With ``reverse_cost``"
-msgstr "``reverse_cost`` ありの場合"
-
-# 1013877e3d214e6f8d87c5747e261b20
-#: ../../../src/dijkstra/doc/index.rst:110
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "上記クエリは :ref:`sampledata` のネットワークを使用しています。"
-
-# 7097292ec353427d90c60607583c42c2
-#: ../../../src/dijkstra/doc/index.rst:114
-msgid "See Also"
-msgstr "参照"
-
-# d98cbcb325484a81bcb0e6b0afd3928c
-#: ../../../src/dijkstra/doc/index.rst:116
-msgid ":ref:`type_cost_result`"
-msgstr ":ref:`type_cost_result`"
-
-# cc938bae0828409fb0efae9ad098fa4d
-#: ../../../src/dijkstra/doc/index.rst:117
-msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
-msgstr "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
diff --git a/doc/i18n/ja/LC_MESSAGES/src/driving_distance/doc/dd_alphashape.po b/doc/i18n/ja/LC_MESSAGES/src/driving_distance/doc/dd_alphashape.po
deleted file mode 100644
index 5ef0a14..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/driving_distance/doc/dd_alphashape.po
+++ /dev/null
@@ -1,141 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:14+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# cb2e05bbf556427191f8dd5d87c670db
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:13
-msgid "pgr_alphaShape"
-msgstr ""
-
-# cd5cca6682b34a85b72fd0b7c90d739b
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:20
-msgid "Name"
-msgstr "名前"
-
-# 9a0ca65720774711aefd2d017e4487e9
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:22
-msgid "``pgr_alphashape`` — Core function for alpha shape computation."
-msgstr ""
-
-# 525edb2bc28a4e77804ac30781cc3dc5
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:26
-msgid ""
-"This function should not be used directly. Use :ref:`pgr_drivingDistance "
-"<pgr_driving_distance>` instead."
-msgstr ""
-
-# 96d2ea88d3bf44a793219826f7fddda3
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:30
-msgid "Synopsis"
-msgstr "概要"
-
-# 4b5074bd7bc64d1c89dcc1e5b250c5f0
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:32
-msgid ""
-"Returns a table with (x, y) rows that describe the vertices of an alpha "
-"shape."
-msgstr ""
-
-# eed5f82ec9924367b7a2c7ce8ce7704a
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:40
-msgid "Description"
-msgstr "説明"
-
-# 3607e16f8fe24de6a2226bb43a73dadd
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:42
-msgid ""
-"``text`` a SQL query, which should return a set of rows with the following "
-"columns:"
-msgstr ""
-
-# afd24b1ef69d439691025ff955e63f25
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:48
-msgid "``int4`` identifier of the vertex"
-msgstr ""
-
-# c4ec83f59d634b458e6e04dc6822cc62
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:49
-msgid "``float8`` x-coordinate"
-msgstr ""
-
-# c78115c69ec645ceb3a8de6f3a97ebdc
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:50
-msgid "``float8`` y-coordinate"
-msgstr ""
-
-# 63cffe47a71d462cae8c09a10473bdaf
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:53
-msgid "Returns a vertex record for each row :"
-msgstr ""
-
-# 385ec313cc69493989a17eecd282d5b4
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:55
-msgid "x-coordinate"
-msgstr ""
-
-# 2eb9452ee2864540b535c7be538a73f0
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:56
-msgid "y-coordinate"
-msgstr ""
-
-# bf1e04aab9ed4558aeb274dbc93fc476
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:60
-msgid "History"
-msgstr "歴史"
-
-# 6301d43186dc47ca9c0925f563c2b4ee
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:61
-msgid "Renamed in version 2.0.0"
-msgstr "バージョン 2.0.0 でリネームされました"
-
-# 2dcc599a683743b09eb440895c823584
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:65
-msgid "Examples"
-msgstr "例"
-
-# 28059fce0d66461c88851c2efa8995b4
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:66
-msgid ""
-"In the alpha shape code we have no way to control the order of the points so"
-" the actual output you might get could be similar but different. The simple "
-"query is followed by a more complex one that constructs a polygon and "
-"computes the areas of it. This should be the same as the result on your "
-"system. We leave the details of the complex query to the reader as an "
-"exercise if they wish to decompose it into understandable pieces or to just "
-"copy and paste it into a SQL window to run."
-msgstr ""
-
-# cea925c912c14e2bae7b67a9493f67d0
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:119
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "上記クエリは :ref:`sampledata` のネットワークを使用しています。"
-
-# b737b880282d447b840b23e77501d03b
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:123
-msgid "See Also"
-msgstr "参照"
-
-# 79772e0e113745068a7c48d32ae903ee
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:125
-msgid ":ref:`pgr_driving_distance` - Driving Distance"
-msgstr ""
-
-# 98ad4c5291f04893a9e5a6f616ce2d11
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:126
-msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/src/driving_distance/doc/dd_driving_distance.po b/doc/i18n/ja/LC_MESSAGES/src/driving_distance/doc/dd_driving_distance.po
deleted file mode 100644
index aacc0ca..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/driving_distance/doc/dd_driving_distance.po
+++ /dev/null
@@ -1,199 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-22 05:50+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# 49d83b442baa4f9981fa13ff4abc3c6b
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:13
-msgid "pgr_drivingDistance"
-msgstr ""
-
-# ce7edabbdab546a3a318f86316d0abc6
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:20
-msgid "Name"
-msgstr "名前"
-
-# 7a89c6c2c0ca404eb82afe9d6de38db2
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:22
-msgid ""
-"``pgr_drivingDistance`` - Returns the driving distance from a start node."
-msgstr ""
-
-# 5afa2748d4964e35b9cfcf71ba431015
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:26
-msgid ""
-"Requires :ref:`to build pgRouting <build>` with support for Driving "
-"Distance."
-msgstr ""
-
-# 91fbeb2cd46146c4bb9f86b8600faa87
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:30
-msgid "Synopsis"
-msgstr "概要"
-
-# cffb1438aa5d43d8b1792ec1d53769ae
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:32
-msgid ""
-"This function computes a Dijkstra shortest path solution them extracts the "
-"cost to get to each node in the network from the starting node. Using these "
-"nodes and costs it is possible to compute constant drive time polygons. "
-"Returns a set of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, "
-"cost) rows, that make up a list of accessible points."
-msgstr ""
-
-# b2253b753da44597b1d449509c96ca75
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:41
-msgid "Description"
-msgstr "説明"
-
-# f187f52a62034b2cae8bb00b570bea15
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:43
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr "SQLのクエリーです。以下に続くカラムからなる行セットを返します:"
-
-# 85949c2cc0334abbbb500996221eeba0
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:50
-msgid "``int4`` identifier of the edge"
-msgstr "``int4`` 型のエッジの識別子"
-
-# 35a904f5f23643b7a6e7e457b8f05846
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:51
-msgid "``int4`` identifier of the source vertex"
-msgstr "``int4`` 型の始点ノードの識別子"
-
-# 815615381d8d43989567cc15d154736a
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:52
-msgid "``int4`` identifier of the target vertex"
-msgstr "``int4`` 型の終点ノードの識別子"
-
-# 5c9e142543534a0bbc7668603ad465b4
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:53
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr "``float8`` 型のエッジの横断コストの値。負のコストはエッジがグラフに挿入されることを防ぎます。"
-
-# fa3ca524dbe24d47891420e71caa324c
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:54
-msgid ""
-"(optional) the cost for the reverse traversal of the edge. This is only used"
-" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
-"above remark about negative costs)."
-msgstr "(オプション) エッジの反対方向のコスト。この値は ``directed`` および ``has_rcost`` パラメータが ``true`` の場合のみ使用されます。(負のコストについては前述の通りです)"
-
-# c9e1f4debc904118ab177e2b4427d364
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:56
-msgid "``int4`` id of the start point"
-msgstr "``int4`` 型の始点ノードのID"
-
-# 2da59a7b4e0b4b6fbac510bfe0adbd1e
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:57
-msgid ""
-"``float8`` value in edge cost units (not in projection units - they might be"
-" different)."
-msgstr ""
-
-# b09a53cf12bd49a09659eb105e2e7d2a
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:58
-msgid "``true`` if the graph is directed"
-msgstr "有向グラフの場合は ``true`` を指定"
-
-# e771178ac5514ae6bc7cf3dcccfe5408
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:59
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr "``true`` の場合、SQLで生成される行セットの ``reverse_cost`` カラムは、エッジの逆方向の横断コストとして使用されます。"
-
-# 5770f80a74ec49cf8f9e11b9fd082533
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:61
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr ":ref:`type_cost_result` のセットを返します:"
-
-# ed0dbd0e73234b70827a7663d390886d
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:63
-msgid "row sequence"
-msgstr "行の連番"
-
-# dc9caee8fdc84c45bb1ebf3c046a436d
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:64
-msgid "node ID"
-msgstr "ノードID"
-
-# ae36b60db435425b8a4bfa4ada217dd7
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:65
-msgid "edge ID (this is probably not a useful item)"
-msgstr ""
-
-# ee9063c6bb49444e94e08af7eedbb401
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:66
-msgid "cost to get to this node ID"
-msgstr ""
-
-# 3bb717c83f2d4993a4b1704a88749ee9
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:70
-msgid ""
-"You must reconnect to the database after ``CREATE EXTENSION pgrouting``. "
-"Otherwise the function will return ``Error computing path: std::bad_alloc``."
-msgstr ""
-
-# 306f0588bb5148dab4d4a97e5bb35889
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:74
-msgid "History"
-msgstr "履歴"
-
-# cc8f5e8248314554bd506fc27f7208ed
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:75
-msgid "Renamed in version 2.0.0"
-msgstr "バージョン 2.0.0 でリネームされました"
-
-# 9db1973c0a0b4420afe780fa3d4b3d0f
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:79
-msgid "Examples"
-msgstr "例"
-
-# 3f34e359dbd242b6a82b49b0beb2acd5
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:81
-msgid "Without ``reverse_cost``"
-msgstr "``reverse_cost`` なしの場合"
-
-# f58a8bec8b9447f59bf31eb2d52c7782
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:101
-msgid "With ``reverse_cost``"
-msgstr "``reverse_cost`` ありの場合"
-
-# f6d9ddd77a7c48dcaafa2cd1225d8e27
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:121
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "上記クエリは :ref:`sampledata` のネットワークを使用しています。"
-
-# 15ad7ce30a424139b00e9874b4461215
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:125
-msgid "See Also"
-msgstr "参照"
-
-# 04113586118441f6b13f5bf83f5fa224
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:127
-msgid ":ref:`pgr_alphashape` - Alpha shape computation"
-msgstr ""
-
-# b474eeeca7284f5f983f498713f1640f
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:128
-msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/src/driving_distance/doc/dd_points_as_polygon.po b/doc/i18n/ja/LC_MESSAGES/src/driving_distance/doc/dd_points_as_polygon.po
deleted file mode 100644
index 548db10..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/driving_distance/doc/dd_points_as_polygon.po
+++ /dev/null
@@ -1,122 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:14+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# a2329478f830474e9819c418ae391538
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:13
-msgid "pgr_pointsAsPolygon"
-msgstr ""
-
-# df6c5bd4620d47ae9f8682195aca1e18
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:20
-msgid "Name"
-msgstr "名前"
-
-# 968dbf3147554bcc994e903e5917a0bd
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:22
-msgid ""
-"``pgr_pointsAsPolygon`` — Draws an alpha shape around given set of points."
-msgstr ""
-
-# 0b81c4a0e03d47938cd256882a6facac
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:26
-msgid "Synopsis"
-msgstr "概要"
-
-# 568b6a3cf23a4a7980b7796df73d334b
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:28
-msgid "Returns the alpha shape as polygon geometry."
-msgstr ""
-
-# 240f6c0c9ac848a2b1815408c264a3d7
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:36
-msgid "Description"
-msgstr "説明"
-
-# bfa10edae1114295852086c42f84d811
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:38
-msgid ""
-"``text`` a SQL query, which should return a set of rows with the following "
-"columns:"
-msgstr ""
-
-# d3ca4ae81d3e4a709a2fda2d60f23946
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:44
-msgid "``int4`` identifier of the vertex"
-msgstr ""
-
-# 10e342dfa5274ea89ea284bd657b2469
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:45
-msgid "``float8`` x-coordinate"
-msgstr ""
-
-# d36090e578224b30b065a3c28f26d565
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:46
-msgid "``float8`` y-coordinate"
-msgstr ""
-
-# 1029622f3ac34a30abc0f3babfe7118f
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:49
-msgid "Returns a polygon geometry."
-msgstr ""
-
-# 49392543fb984b5f922e683b9ba560c5
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:53
-msgid "History"
-msgstr "歴史"
-
-# b00e0e03870244cca7aa9e1c81bad9c1
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:54
-msgid "Renamed in version 2.0.0"
-msgstr "バージョン 2.0.0 でリネームされました"
-
-# f8001d60b6d54b67afc641f38b8e5b4a
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:58
-msgid "Examples"
-msgstr "例"
-
-# 7e01fc6f880549e7b7bde01255cc2811
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:59
-msgid ""
-"In the following query there is not way to control which point in the "
-"polygon is the first in the list, so you may get similar but different "
-"results than the following which are also correct. Each of the "
-"pgr_pointsAsPolygon queries below is followed by one the compute the area of"
-" the polygon. This area should remain constant regardles of the order of the"
-" points making up the polygon."
-msgstr ""
-
-# 1deae2c2bb624110980cf832e66993d9
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:93
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "上記クエリは :ref:`sampledata` のネットワークを使用しています。"
-
-# 801871cf3dd94fd292387e49941223e3
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:97
-msgid "See Also"
-msgstr "参照"
-
-# abc4c217086645fe88ff21568ab13c50
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:99
-msgid ":ref:`pgr_driving_distance` - Driving Distance"
-msgstr ""
-
-# 51bae94aaf75403a81353100c953d805
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:100
-msgid ":ref:`pgr_alphashape` - Alpha shape computation"
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/src/driving_distance/doc/index.po b/doc/i18n/ja/LC_MESSAGES/src/driving_distance/doc/index.po
deleted file mode 100644
index 65717f9..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/driving_distance/doc/index.po
+++ /dev/null
@@ -1,201 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-# sanak <geosanak at gmail.com>, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: 2013-08-07 12:30+0000\n"
-"Last-Translator: cvvergara\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# 0979e1fbbc9641b5ade79d4c28a2473a
-#: ../../../src/driving_distance/doc/index.rst:13
-msgid "pgr_drivingDistance - Driving Distance"
-msgstr ""
-
-# 7b3011e2af744bfdb31fc2960aaa4664
-#: ../../../src/driving_distance/doc/index.rst:20
-msgid "Name"
-msgstr "名前"
-
-# 3c08eb6932d34c2ca49bd0889566e8e3
-#: ../../../src/driving_distance/doc/index.rst:22
-msgid ""
-"``pgr_drivingDistance`` - Returns the driving distance from a start node."
-msgstr ""
-
-# 726c1fdc95044e52b22d50c0f0b766fb
-#: ../../../src/driving_distance/doc/index.rst:26
-msgid ""
-"Requires :ref:`to build pgRouting <build>` with support for Driving "
-"Distance."
-msgstr ""
-
-# ce1ce7f3f6c9425ab9c4a1aae81baeb3
-#: ../../../src/driving_distance/doc/index.rst:30
-msgid "Synopsis"
-msgstr "概要"
-
-# 12a9eb19a15e4f42acd14d76a3847c02
-#: ../../../src/driving_distance/doc/index.rst:32
-msgid ""
-"This function computes a Dijkstra shortest path solution them extracts the "
-"cost to get to each node in the network from the starting node. Using these "
-"nodes and costs it is possible to compute constant drive time polygons. "
-"Returns a set of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, "
-"cost) rows, that make up a list of accessible points."
-msgstr ""
-
-# df9cee3f069447debee18ff47cce02f8
-#: ../../../src/driving_distance/doc/index.rst:41
-msgid "Description"
-msgstr "説明"
-
-# fda5e314fd1b46c6a96ad0b8a241ae12
-#: ../../../src/driving_distance/doc/index.rst:43
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr "SQLのクエリーです。以下に続くカラムからなる行セットを返します:"
-
-# 9621e3c82e434709bfcb9df2a0febdee
-#: ../../../src/driving_distance/doc/index.rst:50
-msgid "``int4`` identifier of the edge"
-msgstr "エッジの識別子[``int4``]"
-
-# b0b6976ee3d3495ca2e27a1359c6b07c
-#: ../../../src/driving_distance/doc/index.rst:51
-msgid "``int4`` identifier of the source vertex"
-msgstr "``int4``型の始点ノードの識別子"
-
-# fec5e9d5cb5e438ea2c5f0feecd1aa03
-#: ../../../src/driving_distance/doc/index.rst:52
-msgid "``int4`` identifier of the target vertex"
-msgstr "``int4``型の終点ノードの識別子"
-
-# ec8176b8c36e447ebd1f0995dadd973d
-#: ../../../src/driving_distance/doc/index.rst:53
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr "``float8``型のエッジにかかる重み。負の重みはエッジがグラフに挿入されることを防ぎます。"
-
-# 9c3f6ea025a84d0a8ac13358a10ed166
-#: ../../../src/driving_distance/doc/index.rst:54
-msgid ""
-"(optional) the cost for the reverse traversal of the edge. This is only used"
-" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
-"above remark about negative costs)."
-msgstr "(オプション) エッジの反対方向のコスト。この値は``directed``および``has_rcost``パラメータが``true``の場合のみ使用されます。(負のコストについては前述の通りです)"
-
-# 32fef696ffaf450fb041bf2ebc1fc270
-#: ../../../src/driving_distance/doc/index.rst:56
-msgid "``int4`` id of the start point"
-msgstr "``int4``型の始点ノードのID"
-
-# 420175e68aac485f86544b6aa6cae550
-#: ../../../src/driving_distance/doc/index.rst:57
-msgid ""
-"``float8`` value in edge cost units (not in projection units - they might be"
-" different)."
-msgstr ""
-
-# a7f57fdcfe0544e69a4cde06a7344fb6
-#: ../../../src/driving_distance/doc/index.rst:58
-msgid "``true`` if the graph is directed"
-msgstr "有向グラフの場合は``true``を指定"
-
-# d72d8b646a964dea88cd97d711c69e94
-#: ../../../src/driving_distance/doc/index.rst:59
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr "``true``の場合、SQLで生成される行セットの``reverse_cost``カラムは、エッジの逆方向にかかる重みとして使用されます。"
-
-# ef1631b756b54c3aa2b66ae0abfad917
-#: ../../../src/driving_distance/doc/index.rst:61
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr ":ref:`type_cost_result` のセットを返します:"
-
-# e440be6d227945fa904c13d07855a863
-#: ../../../src/driving_distance/doc/index.rst:63
-msgid "row sequence"
-msgstr "行の連番"
-
-# bfe1245d3dde49048c4e9bf715508e92
-#: ../../../src/driving_distance/doc/index.rst:64
-msgid "node ID"
-msgstr "ノードID"
-
-# 401535e148ae4023aefb138c6f8ff762
-#: ../../../src/driving_distance/doc/index.rst:65
-msgid "edge ID (this is probably not a useful item)"
-msgstr ""
-
-# 3a2b1d8c38434024b2edd02add5bb1fc
-#: ../../../src/driving_distance/doc/index.rst:66
-msgid "cost to get to this node ID"
-msgstr ""
-
-# 1d8dc027684e453f9a61e3e3f12ee255
-#: ../../../src/driving_distance/doc/index.rst:70
-msgid ""
-"You must reconnect to the database after ``CREATE EXTENSION pgrouting``. "
-"Otherwise the function will return ``Error computing path: std::bad_alloc``."
-msgstr ""
-
-# a61d60a110d54bc0a6930cab19c3ce24
-#: ../../../src/driving_distance/doc/index.rst:74
-msgid "History"
-msgstr "履歴"
-
-# f2e8e48820a54015ab1b6a85136df5f0
-#: ../../../src/driving_distance/doc/index.rst:75
-msgid "Renamed in version 2.0.0"
-msgstr "バージョン 2.0.0 でリネームされました"
-
-# 817cc13bb697434e9f0803ed3f365934
-#: ../../../src/driving_distance/doc/index.rst:79
-msgid "Examples"
-msgstr "例"
-
-# 82aec7db1ea043b28641f4963d13763b
-#: ../../../src/driving_distance/doc/index.rst:81
-msgid "Without ``reverse_cost``"
-msgstr "``reverse_cost``なしの場合"
-
-# ac2a8b6a32a24b6095a9fb31fce4ebe0
-#: ../../../src/driving_distance/doc/index.rst:101
-msgid "With ``reverse_cost``"
-msgstr "``reverse_cost``ありの場合"
-
-# 0d7631d9310b438c91153c3dd1b24a5b
-#: ../../../src/driving_distance/doc/index.rst:121
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "上記クエリは :ref:`sampledata` のネットワークを使用しています。"
-
-# eed359d1899540fab05b3a4dc12fcaa1
-#: ../../../src/driving_distance/doc/index.rst:125
-msgid "See Also"
-msgstr "参照"
-
-# affd024607f942fb927cdf15975a7d4d
-#: ../../../src/driving_distance/doc/index.rst:127
-msgid ":ref:`pgr_points_as_polygon`"
-msgstr ":ref:`pgr_points_as_polygon`"
-
-# 5809d5028efc4d909ba300c75482cb61
-#: ../../../src/driving_distance/doc/index.rst:128
-msgid ":ref:`pgr_alphashape`"
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/src/kdijkstra/doc/index.po b/doc/i18n/ja/LC_MESSAGES/src/kdijkstra/doc/index.po
deleted file mode 100644
index 270e16e..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/kdijkstra/doc/index.po
+++ /dev/null
@@ -1,231 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:14+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# 36e2253743a8455dbfbf75b26155205f
-#: ../../../src/kdijkstra/doc/index.rst:13
-msgid "pgr_kDijkstra - Mutliple destination Shortest Path Dijkstra"
-msgstr ""
-
-# 9f432bf1623d4a299d50ff492edbd66b
-#: ../../../src/kdijkstra/doc/index.rst:21
-msgid "Name"
-msgstr "名前"
-
-# 57c34a235f7a4cea8458d98a50a54e77
-#: ../../../src/kdijkstra/doc/index.rst:23
-msgid ""
-"``pgr_kdijkstraCost`` - Returns the costs for K shortest paths using "
-"Dijkstra algorithm."
-msgstr ""
-
-# ce7c4be9a502473591591e4d330d46e7
-#: ../../../src/kdijkstra/doc/index.rst:24
-msgid ""
-"``pgr_kdijkstraPath`` - Returns the paths for K shortest paths using "
-"Dijkstra algorithm."
-msgstr ""
-
-# 130c100b24ac47d4afd3b8ae17ea1335
-#: ../../../src/kdijkstra/doc/index.rst:28
-msgid "Synopsis"
-msgstr "概要"
-
-# 1b2f7dd687d84d76bbc57fc3ad8ed5ec
-#: ../../../src/kdijkstra/doc/index.rst:30
-msgid ""
-"These functions allow you to have a single start node and multiple "
-"destination nodes and will compute the routes to all the destinations from "
-"the source node. Returns a set of :ref:`pgr_costResult3 <type_cost_result3>`"
-" or :ref:`pgr_costResult3 <type_cost_result3>`. ``pgr_kdijkstraCost`` "
-"returns one record for each destination node and the cost is the total code "
-"of the route to that node. ``pgr_kdijkstraPath`` returns one record for "
-"every edge in that path from source to destination and the cost is to "
-"traverse that edge."
-msgstr ""
-
-# 06379d79c78b4c9bb92226bc66c58c3f
-#: ../../../src/kdijkstra/doc/index.rst:42
-msgid "Description"
-msgstr "説明"
-
-# 84671f541e384cf79360df9e260a5f52
-#: ../../../src/kdijkstra/doc/index.rst:44
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr "SQLのクエリーです。以下に続くカラムからなる行セットを返します:"
-
-# adccb52524354a6c92d9d45edb967dc0
-#: ../../../src/kdijkstra/doc/index.rst:51
-msgid "``int4`` identifier of the edge"
-msgstr "エッジの識別子[``int4``]"
-
-# 5b2a072be67f471a8ab0c6b3daddcc48
-#: ../../../src/kdijkstra/doc/index.rst:52
-msgid "``int4`` identifier of the source vertex"
-msgstr "``int4``型の始点ノードの識別子"
-
-# d00470fb22ae4294a3cf56db3d064839
-#: ../../../src/kdijkstra/doc/index.rst:53
-msgid "``int4`` identifier of the target vertex"
-msgstr "``int4``型の終点ノードの識別子"
-
-# 4bdbc59e5d2d46ba94031caa56975d17
-#: ../../../src/kdijkstra/doc/index.rst:54
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr "``float8``型のエッジにかかる重み。負の重みはエッジがグラフに挿入されることを防ぎます。"
-
-# 569cecbec8e34fa9942c4bcf4ce0c6a4
-#: ../../../src/kdijkstra/doc/index.rst:55
-msgid ""
-"(optional) the cost for the reverse traversal of the edge. This is only used"
-" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
-"above remark about negative costs)."
-msgstr "(オプション) エッジの反対方向のコスト。この値は``directed``および``has_rcost``パラメータが``true``の場合のみ使用されます。(負のコストについては前述の通りです)"
-
-# b3c8762d18e14a65b4d45ca5b654dabd
-#: ../../../src/kdijkstra/doc/index.rst:57
-msgid "``int4`` id of the start point"
-msgstr "``int4``型の始点ノードのID"
-
-# 552184e10f0940f09327b71d0a2a5293
-#: ../../../src/kdijkstra/doc/index.rst:58
-msgid "``int4[]`` an array of ids of the end points"
-msgstr ""
-
-# 6bee551c7fae494d9429ddf6404f457a
-#: ../../../src/kdijkstra/doc/index.rst:59
-msgid "``true`` if the graph is directed"
-msgstr "有向グラフの場合は``true``を指定"
-
-# c79e8fecdbb94d6f836a2fb692d24fea
-#: ../../../src/kdijkstra/doc/index.rst:60
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr "``true``の場合、SQLで生成される行セットの``reverse_cost``カラムは、エッジの逆方向にかかる重みとして使用されます。"
-
-# fe741d49c0f94473971ebcad7951456b
-#: ../../../src/kdijkstra/doc/index.rst:63
-msgid "``pgr_kdijkstraCost`` returns set of :ref:`type_cost_result`:"
-msgstr ""
-
-# 2325329e3ec24e3cbe4c347369b857a4
-# 2ac53854f37a48a89b705310628c4d3e
-#: ../../../src/kdijkstra/doc/index.rst:65
-#: ../../../src/kdijkstra/doc/index.rst:73
-msgid "row sequence"
-msgstr "行の連番"
-
-# 73cb6093021a456aace98c1f58641bef
-#: ../../../src/kdijkstra/doc/index.rst:66
-msgid ""
-"path vertex source id (this will always be source start point in the query)."
-msgstr ""
-
-# 9afd4e01323945118421ebb27f420068
-#: ../../../src/kdijkstra/doc/index.rst:67
-msgid "path vertex target id"
-msgstr ""
-
-# 8b3c8fe211a147f4b031db8a8d899ddd
-#: ../../../src/kdijkstra/doc/index.rst:68
-msgid ""
-"cost to traverse the path from ``id1`` to ``id2``. Cost will be -1.0 if "
-"there is no path to that target vertex id."
-msgstr ""
-
-# 703a5ecca86b4ef4ba2c275d9ba8a20f
-#: ../../../src/kdijkstra/doc/index.rst:71
-msgid "``pgr_kdijkstraPath`` returns set of :ref:`type_cost_result3`:"
-msgstr ""
-
-# 7fc792793b7c4e65ba68cea3f25384aa
-#: ../../../src/kdijkstra/doc/index.rst:74
-msgid "path target id (identifies the target path)."
-msgstr ""
-
-# c43bcd54fee6435fbe6afd2ec4bb6d65
-#: ../../../src/kdijkstra/doc/index.rst:75
-msgid "path edge source node id"
-msgstr ""
-
-# a567112ee5584a46ac397cb9783627a8
-#: ../../../src/kdijkstra/doc/index.rst:76
-msgid "path edge id (``-1`` for the last row)"
-msgstr ""
-
-# 47af04f2ce09412f8475df30be9581ae
-#: ../../../src/kdijkstra/doc/index.rst:77
-msgid "cost to traverse this edge or -1.0 if there is no path to this target"
-msgstr ""
-
-# e7349c2020bc491aaa02b3eb1ebca791
-#: ../../../src/kdijkstra/doc/index.rst:81
-msgid "History"
-msgstr "歴史"
-
-# f7b3cf1f2e494a4c8697b712adcbd1fc
-#: ../../../src/kdijkstra/doc/index.rst:82
-msgid "New in version 2.0.0"
-msgstr ""
-
-# adf5de36019d4982b76cd696909168b0
-#: ../../../src/kdijkstra/doc/index.rst:86
-msgid "Examples"
-msgstr "例"
-
-# f332ab5afb39404284be98f0e9a2c8dc
-#: ../../../src/kdijkstra/doc/index.rst:88
-msgid "Returning a ``cost`` result"
-msgstr ""
-
-# cb5abec6a55e41a4a61c22fd3f461110
-#: ../../../src/kdijkstra/doc/index.rst:123
-msgid "Returning a ``path`` result"
-msgstr ""
-
-# d2e7b4076702425a9c6928a0cc4b997e
-#: ../../../src/kdijkstra/doc/index.rst:144
-msgid ""
-"There is no assurance that the result above will be ordered in the direction"
-" of flow of the route, ie: it might be reversed. You will need to check if "
-"``st_startPoint()`` of the route is the same as the start node location and "
-"if it is not then call ``st_reverse()`` to reverse the direction of the "
-"route. This behavior is a function of PostGIS functions ``st_linemerge()`` "
-"and ``st_union()`` and not pgRouting."
-msgstr ""
-
-# d6928031c7d047a5999f03c79c5bcfea
-#: ../../../src/kdijkstra/doc/index.rst:153
-msgid "See Also"
-msgstr "参照"
-
-# cd86a4612fe944acbe5a39daaf52dafd
-#: ../../../src/kdijkstra/doc/index.rst:155
-msgid ":ref:`type_cost_result`"
-msgstr ":ref:`type_cost_result`"
-
-# c2386bf8c6314521abe162d0bf548225
-#: ../../../src/kdijkstra/doc/index.rst:156
-msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
-msgstr "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
diff --git a/doc/i18n/ja/LC_MESSAGES/src/ksp/doc/index.po b/doc/i18n/ja/LC_MESSAGES/src/ksp/doc/index.po
deleted file mode 100644
index a165068..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/ksp/doc/index.po
+++ /dev/null
@@ -1,192 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# Daniel Kastl, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:15+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# dc72571c7ce5498b92c659e3e482c885
-#: ../../../src/ksp/doc/index.rst:13
-msgid "pgr_ksp - K-Shortest Path"
-msgstr ""
-
-# 57b24beea69846f58a8cb9b1a7a892b5
-#: ../../../src/ksp/doc/index.rst:20
-msgid "Name"
-msgstr "名前"
-
-# b3d0fc92b23443c8b718233c1e16f052
-#: ../../../src/ksp/doc/index.rst:22
-msgid "``pgr_ksp`` — Returns the \"K\" shortest paths."
-msgstr ""
-
-# 0e60ee2dfa944557a1e9c76106489a7f
-#: ../../../src/ksp/doc/index.rst:26
-msgid "Synopsis"
-msgstr "概要"
-
-# bcf915dc485c4e3b90c9a8ea251b55d1
-#: ../../../src/ksp/doc/index.rst:28
-msgid ""
-"The K shortest path routing algorithm based on Yen's algorithm. \"K\" is the"
-" number of shortest paths desired. Returns a set of :ref:`pgr_costResult3 "
-"<type_cost_result3>` (seq, id1, id2, id3, cost) rows, that make up a path."
-msgstr ""
-
-# 46b5ce0d54a64718819888b77b007080
-#: ../../../src/ksp/doc/index.rst:37
-msgid "Description"
-msgstr "説明"
-
-# dddbbca8781f41eab4aac1d4e2ecdf32
-#: ../../../src/ksp/doc/index.rst:39
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr "SQLのクエリーです。以下に続くカラムからなる行セットを返します:"
-
-# 575d21e3bc994dc3a92a7c6cbb0ed6a2
-#: ../../../src/ksp/doc/index.rst:46
-msgid "``int4`` identifier of the edge"
-msgstr "エッジの識別子[``int4``]"
-
-# 589751b9c7d34dac9b4eeb12894fd648
-#: ../../../src/ksp/doc/index.rst:47
-msgid "``int4`` identifier of the source vertex"
-msgstr "``int4``型の始点ノードの識別子"
-
-# 6567c097438040d9b678e88df7521b35
-#: ../../../src/ksp/doc/index.rst:48
-msgid "``int4`` identifier of the target vertex"
-msgstr "``int4``型の終点ノードの識別子"
-
-# a1e24bd423dd445889b72928d964a5ec
-#: ../../../src/ksp/doc/index.rst:49
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr "``float8``型のエッジにかかる重み。負の重みはエッジがグラフに挿入されることを防ぎます。"
-
-# ed76ed5e3a504c7aa3a35ea3fa5b4c16
-#: ../../../src/ksp/doc/index.rst:50
-msgid ""
-"(optional) the cost for the reverse traversal of the edge. This is only used"
-" when ``has_rcost`` the parameter is ``true`` (see the above remark about "
-"negative costs)."
-msgstr ""
-
-# 588bdec4303b49869b6d1eedd541c198
-#: ../../../src/ksp/doc/index.rst:52
-msgid "``int4`` id of the start point"
-msgstr "``int4``型の始点ノードのID"
-
-# 96b44480fac34f6286b863e6c75d4d8a
-#: ../../../src/ksp/doc/index.rst:53
-msgid "``int4`` id of the end point"
-msgstr "``int4``型の始点ノードのID"
-
-# 0ffd51df58754f0b89f1b3ad6f75b632
-#: ../../../src/ksp/doc/index.rst:54
-msgid "``int4`` number of alternative routes"
-msgstr ""
-
-# 0fc58370aa30454ea32a2c8b9f3b14a3
-#: ../../../src/ksp/doc/index.rst:55
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr "``true``の場合、SQLで生成される行セットの``reverse_cost``カラムは、エッジの逆方向にかかる重みとして使用されます。"
-
-# dc8dfcffbd604441a95743930181b042
-#: ../../../src/ksp/doc/index.rst:57
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr ":ref:`type_cost_result` のセットを返します:"
-
-# 611d6bbb82ca4987ae39fd45bb107c2b
-#: ../../../src/ksp/doc/index.rst:59
-msgid "sequence for ording the results"
-msgstr ""
-
-# b79966a030e04ee3b5e992b5a6858947
-#: ../../../src/ksp/doc/index.rst:60
-msgid "route ID"
-msgstr ""
-
-# a324539cdc2e4202b416aa19693d1c3f
-#: ../../../src/ksp/doc/index.rst:61
-msgid "node ID"
-msgstr "ノードID"
-
-# 4d87667a7b744eec999819b399fee50c
-#: ../../../src/ksp/doc/index.rst:62
-msgid "edge ID (``0`` for the last row)"
-msgstr ""
-
-# baaba3dc621142bd8fc6b8ba32eb2b2e
-#: ../../../src/ksp/doc/index.rst:63
-msgid "cost to traverse from ``id2`` using ``id3``"
-msgstr ""
-
-# b585e07096f74b0389f8b7dffc969faa
-#: ../../../src/ksp/doc/index.rst:65
-msgid ""
-"KSP code base taken from http://code.google.com/p/k-shortest-paths/source."
-msgstr ""
-
-# 2d033ec25b09426c82d7bc27450b0e13
-#: ../../../src/ksp/doc/index.rst:69
-msgid "History"
-msgstr "歴史"
-
-# 2910d7995ec342b995c857c1e8ea0ac3
-#: ../../../src/ksp/doc/index.rst:70
-msgid "New in version 2.0.0"
-msgstr ""
-
-# 0fb494088fa241d6a4aa5482217c2851
-#: ../../../src/ksp/doc/index.rst:74
-msgid "Examples"
-msgstr "例"
-
-# d3ea07b1c58a42ea9f68558e55eb90a0
-#: ../../../src/ksp/doc/index.rst:76
-msgid "Without ``reverse_cost``"
-msgstr "``reverse_cost``なしの場合"
-
-# 7c55b739634c4401b46c4014669d2896
-#: ../../../src/ksp/doc/index.rst:104
-msgid "With ``reverse_cost``"
-msgstr "``reverse_cost``ありの場合"
-
-# 2412b0b4ec044973a1c2304488a73b1a
-#: ../../../src/ksp/doc/index.rst:131
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "上記クエリは :ref:`sampledata` のネットワークを使用しています。"
-
-# 14d58e1d3a8f4723bb11ed549594cb26
-#: ../../../src/ksp/doc/index.rst:135
-msgid "See Also"
-msgstr "参照"
-
-# 73cf1bb94518468996cdd3ff6bf897be
-#: ../../../src/ksp/doc/index.rst:137
-msgid ":ref:`type_cost_result3`"
-msgstr ":ref:`type_cost_result3`"
-
-# 3dde120556744d3f9ce7d6e9b9f0c1ee
-#: ../../../src/ksp/doc/index.rst:138
-msgid "http://en.wikipedia.org/wiki/K_shortest_path_routing"
-msgstr ""
diff --git a/doc/i18n/ja/LC_MESSAGES/src/trsp/doc/index.po b/doc/i18n/ja/LC_MESSAGES/src/trsp/doc/index.po
deleted file mode 100644
index 682ce8e..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/trsp/doc/index.po
+++ /dev/null
@@ -1,259 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-08-07 12:30+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# 15b2085c08994c0bafb02ec924886b36
-#: ../../../src/trsp/doc/index.rst:13
-msgid "pgr_trsp - Turn Restriction Shortest Path (TRSP)"
-msgstr ""
-
-# 001ce231c65b42a19a62809e63a0b153
-#: ../../../src/trsp/doc/index.rst:23
-msgid "Name"
-msgstr "名前"
-
-# e7d332e28a5540d2af454386b4bf39e5
-#: ../../../src/trsp/doc/index.rst:25
-msgid ""
-"``pgr_trsp`` — Returns the shortest path with support for turn restrictions."
-msgstr ""
-
-# 9f0ad26664fc4d2aa44b49daf329cbcf
-#: ../../../src/trsp/doc/index.rst:29
-msgid "Synopsis"
-msgstr "概要"
-
-# 2d74de00ff7144f1a68f40ec98315004
-#: ../../../src/trsp/doc/index.rst:31
-msgid ""
-"The turn restricted shorthest path (TRSP) is a shortest path algorithm that "
-"can optionally take into account complicated turn restrictions like those "
-"found in real work navigable road networks. Performamnce wise it is nearly "
-"as fast as the A* search but has many additional features like it works with"
-" edges rather than the nodes of the network. Returns a set of "
-":ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows, that "
-"make up a path."
-msgstr ""
-
-# 258764bba06c4ef58ac4b5f8fc99fa51
-#: ../../../src/trsp/doc/index.rst:47
-msgid "Description"
-msgstr "説明"
-
-# db4ead8b9b724ada9fcd352b21c13c47
-#: ../../../src/trsp/doc/index.rst:49
-msgid ""
-"The Turn Restricted Shortest Path algorithm (TRSP) is similar to the "
-":ref:`shooting_star` in that you can specify turn restrictions."
-msgstr ""
-
-# f8c43b665915464c9bfc35604fd91aee
-#: ../../../src/trsp/doc/index.rst:51
-msgid ""
-"The TRSP setup is mostly the same as :ref:`Dijkstra shortest path "
-"<pgr_dijkstra>` with the addition of an optional turn restriction table. "
-"This makes adding turn restrictions to a road network much easier than "
-"trying to add them to Shooting Star where you had to ad the same edges "
-"multiple times if it was involved in a restriction."
-msgstr ""
-
-# b95a0195c5bd43caa2d6cfb1f998a956
-#: ../../../src/trsp/doc/index.rst:54
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr "SQLのクエリーです。以下に続くカラムからなる行セットを返します:"
-
-# 580e965db4a1466da14357ff969e2429
-#: ../../../src/trsp/doc/index.rst:61
-msgid "``int4`` identifier of the edge"
-msgstr "エッジの識別子[``int4``]"
-
-# 1240ecd9b29e479ca8b980c6282c5182
-#: ../../../src/trsp/doc/index.rst:62
-msgid "``int4`` identifier of the source vertex"
-msgstr "``int4``型の始点ノードの識別子"
-
-# f155b6dee53749049cc6a9eac4126083
-#: ../../../src/trsp/doc/index.rst:63
-msgid "``int4`` identifier of the target vertex"
-msgstr "``int4``型の終点ノードの識別子"
-
-# 882a25b98f4f4c7cb2f288cf7c327c4a
-#: ../../../src/trsp/doc/index.rst:64
-msgid ""
-"``float8`` value, of the edge traversal cost. A negative cost will prevent "
-"the edge from being inserted in the graph."
-msgstr "``float8``型のエッジにかかる重み。負の重みはエッジがグラフに挿入されることを防ぎます。"
-
-# 0a3a626251a840ab96796ef2ab9b91c5
-#: ../../../src/trsp/doc/index.rst:65
-msgid ""
-"(optional) the cost for the reverse traversal of the edge. This is only used"
-" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
-"above remark about negative costs)."
-msgstr "(オプション) エッジの反対方向のコスト。この値は``directed``および``has_rcost``パラメータが``true``の場合のみ使用されます。(負のコストについては前述の通りです)"
-
-# 510dbeaa32914dc18ed3e6799281fbef
-#: ../../../src/trsp/doc/index.rst:67
-msgid "``int4`` **NODE id** of the start point"
-msgstr ""
-
-# ece6f31366044417b07933b2c817c5df
-#: ../../../src/trsp/doc/index.rst:68
-msgid "``int4`` **NODE id** of the end point"
-msgstr ""
-
-# 31ad6aa2c51741de8dbafceaf67d397a
-#: ../../../src/trsp/doc/index.rst:69
-msgid "``true`` if the graph is directed"
-msgstr "有向グラフの場合は``true``を指定"
-
-# 6605eca503604a6daa20167fcbdd05fa
-#: ../../../src/trsp/doc/index.rst:70
-msgid ""
-"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
-"will be used for the cost of the traversal of the edge in the opposite "
-"direction."
-msgstr "``true``の場合、SQLで生成される行セットの``reverse_cost``カラムは、エッジの逆方向にかかる重みとして使用されます。"
-
-# 332748df482046d7b70e9012364915e3
-#: ../../../src/trsp/doc/index.rst:72
-msgid ""
-"(optional) a SQL query, which should return a set of rows with the following"
-" columns:"
-msgstr ""
-
-# 936b80e377bd457081e14e36770ab130
-#: ../../../src/trsp/doc/index.rst:78
-msgid "``float8`` turn restriction cost"
-msgstr ""
-
-# d1715703f624412385536b88c78a32df
-#: ../../../src/trsp/doc/index.rst:79
-msgid "``int4`` target id"
-msgstr ""
-
-# 83a22871a9f6419190e4bf313f49c672
-#: ../../../src/trsp/doc/index.rst:80
-msgid ""
-"``text`` commar seperated list of edges in the reverse order of ``rule``"
-msgstr ""
-
-# d0f078a9c92348a9bc1e880a0835b24c
-#: ../../../src/trsp/doc/index.rst:82
-msgid ""
-"Another variant of TRSP allows to specify **EDGE id** of source and target "
-"together with a fraction to interpolate the position:"
-msgstr ""
-
-# 021daf08280643738cfc9e67f4fa6fce
-#: ../../../src/trsp/doc/index.rst:84
-msgid "``int4`` **EDGE id** of the start edge"
-msgstr ""
-
-# 6c0b782e2a2d4ee7aac26b031327b48d
-#: ../../../src/trsp/doc/index.rst:85
-msgid "``float8`` fraction of 1 defines the position on the start edge"
-msgstr ""
-
-# 4f60cd31727245739cba5b4be8840191
-#: ../../../src/trsp/doc/index.rst:86
-msgid "``int4`` **EDGE id** of the end edge"
-msgstr ""
-
-# 8a114786a737431f9d36f79718505b0c
-#: ../../../src/trsp/doc/index.rst:87
-msgid "``float8`` fraction of 1 defines the position on the end edge"
-msgstr ""
-
-# 164eff72cc834e76afafdb24fae73b05
-#: ../../../src/trsp/doc/index.rst:89
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr ":ref:`type_cost_result` のセットを返します:"
-
-# f1e7b63cce7e45dca113b9c63b80531a
-#: ../../../src/trsp/doc/index.rst:91
-msgid "row sequence"
-msgstr "行の連番"
-
-# 9224c385fbc84c6fb16a5752bb0dcf0f
-#: ../../../src/trsp/doc/index.rst:92
-msgid "node ID"
-msgstr "ノードID"
-
-# 838eabec61db4ac1a64b9bb7b12a5bec
-#: ../../../src/trsp/doc/index.rst:93
-msgid "edge ID (``-1`` for the last row)"
-msgstr "エッジID (最終行は``-1``)"
-
-# dd4d4036ca89412ca65bb9dc36a98ff5
-#: ../../../src/trsp/doc/index.rst:94
-msgid "cost to traverse from ``id1`` using ``id2``"
-msgstr "``id1``から``id2``を横断するコスト"
-
-# 3e879e6cbece4a27afe4738bdef1080b
-#: ../../../src/trsp/doc/index.rst:98
-msgid "History"
-msgstr "歴史"
-
-# 16b0789da1954e179858d593d9973be6
-#: ../../../src/trsp/doc/index.rst:99
-msgid "New in version 2.0.0"
-msgstr ""
-
-# 36dc0630c4e04859ba0a41aa3da19ed6
-#: ../../../src/trsp/doc/index.rst:103
-msgid "Examples"
-msgstr "例"
-
-# 0c40d66ced8b4b48914b3bb328c5f10e
-#: ../../../src/trsp/doc/index.rst:105
-msgid "Without turn restrictions"
-msgstr ""
-
-# 456ae3d3abc547978bd147c884275ac6
-#: ../../../src/trsp/doc/index.rst:126
-msgid "With turn restrictions"
-msgstr ""
-
-# 2541f0dba78f4dfe93fcda086ddeba34
-#: ../../../src/trsp/doc/index.rst:128
-msgid ""
-"Turn restrictions require additional information, which can be stored in a "
-"separate table:"
-msgstr ""
-
-# 4d9e1ab740a44fe990829e06dcc32f65
-#: ../../../src/trsp/doc/index.rst:144
-msgid "Then a query with turn restrictions is created as:"
-msgstr ""
-
-# 61dd0262b80b4db58f637fe5d2dd1ae8
-#: ../../../src/trsp/doc/index.rst:167
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "上記クエリは :ref:`sampledata` のネットワークを使用しています。"
-
-# 48bf89e209cc4518904b1b99e1a89f99
-#: ../../../src/trsp/doc/index.rst:171
-msgid "See Also"
-msgstr "参照"
-
-# 7988e08198b04952bc5a1cb22cce310f
-#: ../../../src/trsp/doc/index.rst:173
-msgid ":ref:`type_cost_result`"
-msgstr ":ref:`type_cost_result`"
diff --git a/doc/i18n/ja/LC_MESSAGES/src/tsp/doc/index.po b/doc/i18n/ja/LC_MESSAGES/src/tsp/doc/index.po
deleted file mode 100644
index fc74846..0000000
--- a/doc/i18n/ja/LC_MESSAGES/src/tsp/doc/index.po
+++ /dev/null
@@ -1,354 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (ec59fc1 develop)
-# This file is distributed under the same license as the pgRouting package.
-# 
-# Translators:
-# cvvergara, 2013
-# sanak <geosanak at gmail.com>, 2013
-msgid ""
-msgstr ""
-"Project-Id-Version: Documentation\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-22 13:52\n"
-"PO-Revision-Date: 2013-09-20 14:14+0000\n"
-"Last-Translator: Daniel Kastl\n"
-"Language-Team: Japanese (http://www.transifex.com/projects/p/pgrouting/language/ja/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: ja\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-# 588bb56f073f49f89c741579fbc2c17c
-#: ../../../src/tsp/doc/index.rst:13
-msgid "pgr_tsp - Traveling Sales Person"
-msgstr ""
-
-# f69daf53ba3c47ca846fbcbbcf6aa25d
-#: ../../../src/tsp/doc/index.rst:23
-msgid "Name"
-msgstr "名前"
-
-# 5ccbfce91c604bac96d73fdbc656f675
-#: ../../../src/tsp/doc/index.rst:25
-msgid ""
-"``pgr_tsp`` - Returns the best route from a start node via a list of nodes."
-msgstr ""
-
-# cd69b4b6495b448fa23e10806d8cd704
-#: ../../../src/tsp/doc/index.rst:26
-msgid ""
-"``pgr_tsp`` - Returns the best route order when passed a disance matrix."
-msgstr ""
-
-# eee8057e1f874582a8d82dbf95c33b83
-#: ../../../src/tsp/doc/index.rst:27
-msgid ""
-"``pgr_makeDistanceMatrix`` - Returns a Eucleadian distance Matrix from the "
-"points provided in the sql result."
-msgstr ""
-
-# c0ecbed749044ceea6ac67da6a92e851
-#: ../../../src/tsp/doc/index.rst:31
-msgid "Synopsis"
-msgstr "概要"
-
-# bccf8e0d00d545fbb53db8de741e3629
-#: ../../../src/tsp/doc/index.rst:33
-msgid ""
-"The travelling salesman problem (TSP) or travelling salesperson problem asks"
-" the following question: Given a list of cities and the distances between "
-"each pair of cities, what is the shortest possible route that visits each "
-"city exactly once and returns to the origin city? This algoritm uses "
-"simulated annealing to return a high quality approximate solution. Returns a"
-" set of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows,"
-" that make up a path."
-msgstr ""
-
-# 4817fee0103a41c4816125ab5b8e50c9
-#: ../../../src/tsp/doc/index.rst:41
-msgid ""
-"Returns a set of (seq integer, id1 integer, id2 integer, cost float8) that "
-"is the best order to visit the nodes in the matrix. ``id1`` is the index "
-"into the distance matrix. ``id2`` is the point id from the sql."
-msgstr ""
-
-# d81ab41209864a73a7ffa72604da479d
-#: ../../../src/tsp/doc/index.rst:43
-msgid ""
-"If no ``end_id`` is supplied or it is -1 or equal to the start_id then the "
-"TSP result is assumed to be a circluar loop returning back to the start. If "
-"``end_id`` is supplied then the route is assumed to start and end the the "
-"designated ids."
-msgstr ""
-
-# 50853fe7ce3a4230ba1ad32e1820ff86
-#: ../../../src/tsp/doc/index.rst:52
-msgid "Description"
-msgstr "説明"
-
-# 5c75019d15bb43c39560772bc3ee4607
-#: ../../../src/tsp/doc/index.rst:55
-msgid "With Euclidean distances"
-msgstr ""
-
-# 66a3e0216d3948b082421f130af849fc
-#: ../../../src/tsp/doc/index.rst:56
-msgid ""
-"The TSP solver is based on ordering the points using straight line "
-"(euclidean) distance [#f0]_ between nodes. The implementation is using an "
-"approximation algorithm that is very fast. It is not an exact solution, but "
-"it is guaranteed that a solution is returned after certain number of "
-"iterations."
-msgstr ""
-
-# 7b0c0aa5e05b441ea75bea14ed4902cd
-#: ../../../src/tsp/doc/index.rst:58
-msgid ""
-"a SQL query, which should return a set of rows with the following columns:"
-msgstr "SQLのクエリーです。以下に続くカラムからなる行セットを返します:"
-
-# 370960d08a674040ba2f83ed085dbb48
-#: ../../../src/tsp/doc/index.rst:64
-msgid "``int4`` identifier of the vertex"
-msgstr ""
-
-# 041d921890f847d1bcb77251f630f8d5
-#: ../../../src/tsp/doc/index.rst:65
-msgid "``float8`` x-coordinate"
-msgstr ""
-
-# 8662fbcf22f74a82900515c839683881
-#: ../../../src/tsp/doc/index.rst:66
-msgid "``float8`` y-coordinate"
-msgstr ""
-
-# c71cd39ce3cf4e3e9301579f9a596cdb
-#: ../../../src/tsp/doc/index.rst:68
-msgid "``int4`` id of the start point"
-msgstr "``int4``型の始点ノードのID"
-
-# 5165a6a173194137bb498d88e0957b35
-#: ../../../src/tsp/doc/index.rst:69
-msgid ""
-"``int4`` id of the end point, This is *OPTIONAL*, if include the route is "
-"optimized from start to end, otherwise it is assumed that the start and the "
-"end are the same point."
-msgstr ""
-
-# d73e6887338e4da3a107b753d970eb83
-#: ../../../src/tsp/doc/index.rst:72
-msgid "The function returns set of :ref:`type_cost_result`:"
-msgstr ""
-
-# 6a00ce9fe1e84a708606d26b563355af
-# c113028794ef4a08a59271625c0ae721
-#: ../../../src/tsp/doc/index.rst:74 ../../../src/tsp/doc/index.rst:107
-msgid "row sequence"
-msgstr "行の連番"
-
-# 486fb735dda64593ba3d2773c140d01f
-#: ../../../src/tsp/doc/index.rst:75
-msgid "internal index to the distance matric"
-msgstr ""
-
-# 47f9555a7ecb4013a9b7b1744788a432
-#: ../../../src/tsp/doc/index.rst:76
-msgid "``id`` of the node"
-msgstr ""
-
-# 879b651101634a9fa1850e585291b13d
-#: ../../../src/tsp/doc/index.rst:77
-msgid "cost to traverse from the current node to the next node."
-msgstr ""
-
-# 1219dbad1dbc483e8c66e492b2ddbb85
-#: ../../../src/tsp/doc/index.rst:80
-msgid "Create a distance matrix"
-msgstr ""
-
-# 0c6c6e0816e1404798c896777ad941f2
-#: ../../../src/tsp/doc/index.rst:81
-msgid ""
-"For users that need a distance matrix we have a simple function that takes "
-"SQL in ``sql`` as described above and returns a record with ``dmatrix`` and "
-"``ids``."
-msgstr ""
-
-# a9ebba1a8cbb4af9a325f5ebcf4c9c50
-#: ../../../src/tsp/doc/index.rst:87
-msgid "The function returns a record of ``dmatrix``, ``ids``:"
-msgstr ""
-
-# 79831990a066442dbf3d4f24cebf6aef
-#: ../../../src/tsp/doc/index.rst:89
-msgid "``float8[][]`` a symeteric Euclidean distance matrix based on ``sql``."
-msgstr ""
-
-# afbd6f830d5c4ab2847548f86f90dca1
-#: ../../../src/tsp/doc/index.rst:90
-msgid ""
-"``integer[]`` an array of ids as they are ordered in the distance matrix."
-msgstr ""
-
-# f0b8169b552646f980bd6b7e0e4b580c
-#: ../../../src/tsp/doc/index.rst:94
-msgid "With distance matrix"
-msgstr ""
-
-# e50bb0a665844d7682d3a1b216adb70e
-#: ../../../src/tsp/doc/index.rst:95
-msgid ""
-"For users, that do not want to use Euclidean distances, we also provode the "
-"ability to pass a distance matrix that we will solve and return an ordered "
-"list of nodes for the best order to visit each. It is up to the user to "
-"fully populate the distance matrix."
-msgstr ""
-
-# 900d7d9a9cfe4f48a183120d63a6b5fb
-#: ../../../src/tsp/doc/index.rst:97
-msgid "``float[][]`` distance matrix of points"
-msgstr ""
-
-# ffe889182e9b49e48573a830538e2f76
-#: ../../../src/tsp/doc/index.rst:98
-msgid "``int4`` index of the start point"
-msgstr ""
-
-# 7ff184ff9d034484941644d3528f9b11
-#: ../../../src/tsp/doc/index.rst:99
-msgid "``int4`` (optional) index of the end node"
-msgstr ""
-
-# a7886e5620ad48308a92c602d785b979
-#: ../../../src/tsp/doc/index.rst:101
-msgid ""
-"The ``end`` node is an optional parameter, you can just leave it out if you "
-"want a loop where the ``start`` is the depot and the route returns back to "
-"the depot. If you include the ``end`` parameter, we optimize the path from "
-"``start`` to ``end`` and minimize the distance of the route while include "
-"the remaining points."
-msgstr ""
-
-# 3328187fb6f24c06bd2ade2fb9daff6c
-#: ../../../src/tsp/doc/index.rst:103
-msgid ""
-"The distance matrix is a multidimensional `PostgreSQL array type "
-"<http://www.postgresql.org/docs/9.1/static/arrays.html>`_ that must be ``N x"
-" N`` in size."
-msgstr ""
-
-# 1768ea2352234c129198dbacd1452e65
-#: ../../../src/tsp/doc/index.rst:105
-msgid "The result will be N records of ``[ seq, id ]``:"
-msgstr ""
-
-# f8e56b07da754f4396ccb1daa52b8213
-#: ../../../src/tsp/doc/index.rst:108
-msgid "index into the matrix"
-msgstr ""
-
-# 700ed687dfd24327b5866cb91007c0ed
-#: ../../../src/tsp/doc/index.rst:112
-msgid "Footnotes"
-msgstr ""
-
-# bae6c65f712c4ff9b0fd388153cf42f7
-#: ../../../src/tsp/doc/index.rst:113
-msgid ""
-"There was some thought given to pre-calculating the driving distances "
-"between the nodes using Dijkstra, but then I read a paper (unfortunately I "
-"don't remember who wrote it), where it was proved that the quality of TSP "
-"with euclidean distance is only slightly worse than one with real distance "
-"in case of normal city layout. In case of very sparse network or rivers and "
-"bridges it becomes more inaccurate, but still wholly satisfactory. Of course"
-" it is nice to have exact solution, but this is a compromise between quality"
-" and speed (and development time also). If you need a more accurate "
-"solution, you can generate a distance matrix and use that form of the "
-"function to get your results."
-msgstr ""
-
-# aeabcb34ceb245ac8c9c4dd783bae696
-#: ../../../src/tsp/doc/index.rst:117
-msgid "History"
-msgstr "履歴"
-
-# 83259e3ddfad4bc8a503e3daa04b99d5
-#: ../../../src/tsp/doc/index.rst:118
-msgid "Renamed in version 2.0.0"
-msgstr "バージョン 2.0.0 でリネームされました"
-
-# 537d6a4a4cc64451857537f64823ac72
-#: ../../../src/tsp/doc/index.rst:119
-msgid "GAUL dependency removed in version 2.0.0"
-msgstr ""
-
-# 51493667159c4c6395a48ada45bc3ddb
-#: ../../../src/tsp/doc/index.rst:123
-msgid "Examples"
-msgstr "例"
-
-# 7c2ef386cc424fe5a5781147e3ea4cc2
-#: ../../../src/tsp/doc/index.rst:125
-msgid ""
-"Using SQL parameter (all points from the table, atarting from 6 and ending "
-"at 5). We have listed two queries in this example, the first might vary from"
-" system to system because there are multiple equivalent answers. The second "
-"query should be stable in that the length optimal route should be the same "
-"regardless of order."
-msgstr ""
-
-# 41662adbab25461784b154100646e929
-#: ../../../src/tsp/doc/index.rst:159
-msgid "Using distance matrix (A loop starting from 1)"
-msgstr ""
-
-# 936788f1e0c2469ba7d71161a6320815
-#: ../../../src/tsp/doc/index.rst:161
-msgid ""
-"When using just the start node you are getting a loop that starts with 1, in"
-" this case, and travels through the other nodes and is implied to return to "
-"the start node from the last one in the list. Since this is a circle there "
-"are at least two possible paths, one clockwise and one counter-clockwise "
-"that will have the same length and be equall valid. So in the following "
-"example it is also possible to get back a sequence of ids = {1,0,3,2} "
-"instead of the {1,2,3,0} sequence listed below."
-msgstr ""
-
-# 95907dec9016432f8b75f45be9e231c3
-#: ../../../src/tsp/doc/index.rst:175
-msgid "Using distance matrix (Starting from 1, ending at 2)"
-msgstr ""
-
-# c376ad2787cd4f4abf9764fbe86699b2
-#: ../../../src/tsp/doc/index.rst:189
-msgid ""
-"Using the vertices table edge_table_vertices_pgr generated by "
-":ref:`pgr_create_topology`. Again we have two queries where the first might "
-"vary and the second is based on the overal path length."
-msgstr ""
-
-# c3d22bacc29d477ca8c5a118ddedb8f4
-#: ../../../src/tsp/doc/index.rst:226
-msgid "The queries use the :ref:`sampledata` network."
-msgstr "上記クエリは :ref:`sampledata` のネットワークを使用しています。"
-
-# 4f5c93447689413e86e9ed2751abff8f
-#: ../../../src/tsp/doc/index.rst:230
-msgid "See Also"
-msgstr "参照"
-
-# 5f49eba1079b40d297bf0872ae69fe06
-#: ../../../src/tsp/doc/index.rst:232
-msgid ":ref:`type_cost_result`"
-msgstr ":ref:`type_cost_result`"
-
-# 81d591e953334f24b72e9680e2ae42f9
-#: ../../../src/tsp/doc/index.rst:233
-msgid "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
-msgstr "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
-
-# 2c62ab4de73248479f416573176f0c4a
-#: ../../../src/tsp/doc/index.rst:234
-msgid "http://en.wikipedia.org/wiki/Simulated_annealing"
-msgstr ""
diff --git a/doc/i18n/pot/doc/index.pot b/doc/i18n/pot/doc/index.pot
deleted file mode 100644
index e924c46..0000000
--- a/doc/i18n/pot/doc/index.pot
+++ /dev/null
@@ -1,318 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../index.rst:13
-# 3114b591a3e34bcc8632fdb1b4676f09
-msgid "Table of Contents"
-msgstr ""
-
-#: ../../index.rst:15
-# 7a873a7437d54575bea37f68a355139c
-msgid "pgRouting extends the `PostGIS <http://postgis.net>`_/`PostgreSQL <http://postgresql.org>`_ geospatial database to provide geospatial routing and other network analysis functionality."
-msgstr ""
-
-#: ../../index.rst:17
-# 046c3fad7d4b4c018145562e387e5e76
-msgid "This is the manual for pgRouting |release|."
-msgstr ""
-
-#: ../../index.rst:23
-# 36679e74a75d477f9cf0cf7116981c34
-msgid "The pgRouting Manual is licensed under a `Creative Commons Attribution-Share Alike 3.0 License <http://creativecommons.org/licenses/by-sa/3.0/>`_. Feel free to use this material any way you like, but we ask that you attribute credit to the pgRouting Project and wherever possible, a link back to http://pgrouting.org. For other licenses used in pgRouting see the :ref:`license` page."
-msgstr ""
-
-#: ../../index.rst:27
-# 2a1ba0adb28e4d95861f3fc9f55cd4b7
-msgid "General"
-msgstr ""
-
-#: ../../index.rst:40
-# 47fb20ffa3fd41a3a77332fdac2e56d2
-msgid "Tutorial"
-msgstr ""
-
-#: ../../index.rst:42
-# 49767fd9b10947cb84b9dc4a1e11aafe
-msgid ":ref:`Tutorial <tutorial1>`"
-msgstr ""
-
-#: ../../index.rst:44
-# e294e6eafbf342e9b5d76a3955d41fd3
-msgid ":ref:`Getting started <tutorial>`"
-msgstr ""
-
-#: ../../index.rst:45
-# 792045603d8747cea6194d979fafe69e
-msgid ":ref:`topology` for an overview of a topology for routing algorithms."
-msgstr ""
-
-#: ../../index.rst:46
-# 8679e75425304920a8cd234c69946c0e
-msgid ":ref:`analytics` for an overview of the analysis of a graph."
-msgstr ""
-
-#: ../../index.rst:47
-# 11bfd5f304664dc49cf6f278654dfe4d
-msgid ":ref:`custom_query` that is used in the routing algorithms."
-msgstr ""
-
-#: ../../index.rst:48
-# e42d9dc6b64f4e4f9b8e90690ecf5161
-msgid ":ref:`performance` to improve your performance."
-msgstr ""
-
-#: ../../index.rst:49
-# 609a30fd8c8644a6becc0f31f020446d
-msgid ":ref:`custom_wrapper` to colaborate with a wrapper."
-msgstr ""
-
-#: ../../index.rst:50
-# b5eb83961e4e47fe93c2afa2323169ed
-msgid ":ref:`recipes` to colaborate with a recipe."
-msgstr ""
-
-#: ../../index.rst:51
-# b3906b783d2c43cd815e3860b0d0d776
-msgid ":ref:`sampledata` that is used in the examples of this manual."
-msgstr ""
-
-#: ../../index.rst:61
-# b75d732ac8bd4709882c5760d01f152c
-msgid "For a more complete introduction how to build a routing application read the `pgRouting Workshop <http://workshop.pgrouting.org>`_."
-msgstr ""
-
-#: ../../index.rst:65
-# 83bde3c72f684a568af0fceb3ef34dff
-msgid "Data Types"
-msgstr ""
-
-#: ../../index.rst:67
-# a395fe9f7cd24298ad5f0e14b7d2bb20
-msgid ":ref:`data_types`"
-msgstr ""
-
-#: ../../index.rst:69
-# 369cef561501444e9d5e6f337a4d5c92
-msgid ":ref:`type_cost_result` -  A set of records to describe a path result with cost attribute."
-msgstr ""
-
-#: ../../index.rst:70
-# d4b7f05968f442a99e97dc3c3e70c4fd
-msgid ":ref:`pgr_costResult3[]<type_cost_result3>` - A set of records to describe a path result with cost attribute."
-msgstr ""
-
-#: ../../index.rst:71
-# f2163918182048f5b92023c33a76ca1a
-msgid ":ref:`pgr_geomResult<type_geom_result>` - A set of records to describe a path result with geometry attribute."
-msgstr ""
-
-#: ../../index.rst:80
-# a1d2d28381b24c508232a6633040cd3c
-msgid "Functions reference"
-msgstr ""
-
-#: ../../index.rst:82
-# c6671e9d478d49af87a1048487a9716a
-msgid ":ref:`topology_functions`"
-msgstr ""
-
-#: ../../index.rst:84
-# de5a824ab17b49d7b09df5f4e67f16b6
-msgid ":ref:`pgr_create_topology` -  to create a topology based on the geometry."
-msgstr ""
-
-#: ../../index.rst:85
-# 4293e3c5e8424c1da1c99a0a718e8435
-msgid ":ref:`pgr_create_vert_table` - to reconstruct the vertices table based on the source and target information."
-msgstr ""
-
-#: ../../index.rst:86
-# b8d498e24ed745ecaffb840b72f12501
-msgid ":ref:`pgr_analyze_graph`  - to analyze the edges and vertices of the edge table."
-msgstr ""
-
-#: ../../index.rst:87
-# 38b8e935c37c4012a9ab5be2067301ba
-msgid ":ref:`pgr_analyze_oneway` - to analyze directionality of the edges."
-msgstr ""
-
-#: ../../index.rst:88
-# 2205760d07b54531aaef8d1c1327d59c
-msgid ":ref:`pgr_node_network`  -to create nodes to a not noded edge table."
-msgstr ""
-
-#: ../../index.rst:90
-# 195226e31aa04c81b84286c4cf37a5a2
-msgid ":ref:`routing_functions`"
-msgstr ""
-
-#: ../../index.rst:92
-# 0ec03dfd7213415b9cbe7602cea96b63
-msgid ":ref:`pgr_apspJohnson <pgr_apsp_johnson>`- All Pairs Shortest Path, Johnson’s Algorithm"
-msgstr ""
-
-#: ../../index.rst:93
-# 5acd44a27ec34adb8e0f486881eb72d9
-msgid ":ref:`pgr_apspWarshall<pgr_apsp_warshall>` - All Pairs Shortest Path, Floyd-Warshall Algorithm"
-msgstr ""
-
-#: ../../index.rst:94
-# 0d898e0df22d4b9fafbb487b5d0e9175
-msgid ":ref:`pgr_astar<pgr_astar>` - Shortest Path A*"
-msgstr ""
-
-#: ../../index.rst:95
-# 75133541e029463287e8007e84629182
-msgid ":ref:`pgr_bdAstar<bd_astar>` - Bi-directional A* Shortest Path"
-msgstr ""
-
-#: ../../index.rst:96
-# d6182da49f974c5484c3aead923fd700
-msgid ":ref:`pgr_bdDijkstra<bd_dijkstra>` - Bi-directional Dijkstra Shortest Path"
-msgstr ""
-
-#: ../../index.rst:97
-# 50e23fa113d2453eb51a73d72133cce8
-msgid ":ref:`pgr_dijkstra<pgr_dijkstra>` - Shortest Path Dijkstra"
-msgstr ""
-
-#: ../../index.rst:98
-# d167195e03cf4f13ae09ae9db49a05e7
-msgid ":ref:`pgr_kDijkstra<pgr_kdijkstra>` - Mutliple destination Shortest Path Dijkstra"
-msgstr ""
-
-#: ../../index.rst:99
-# 23ccb5f1314d46719c852fde9864c1cf
-msgid ":ref:`pgr_ksp<ksp>` - K-Shortest Path"
-msgstr ""
-
-#: ../../index.rst:100
-# f3e5f19093284915a7c07e06552e3f94
-msgid ":ref:`pgr_tsp<pgr_tsp>` - Traveling Sales Person"
-msgstr ""
-
-#: ../../index.rst:101
-# 7a18afc4bb844b8ba796559021ca5e8f
-msgid ":ref:`pgr_trsp<trsp>` - Turn Restriction Shortest Path (TRSP)"
-msgstr ""
-
-#: ../../index.rst:103
-# 753d19cda55a4ea0a16c5ca15b3186ce
-msgid ":ref:`dd_index`"
-msgstr ""
-
-#: ../../index.rst:105
-# dd0ad741445e46f182f227bf9a5d4eaf
-msgid ":ref:`pgr_driving_distance` - Driving Distance"
-msgstr ""
-
-#: ../../index.rst:106
-# 8239f5b5033f4c5182c6846ef9d6604f
-msgid ":ref:`pgr_alphaShape` - Alpha shape computation"
-msgstr ""
-
-#: ../../index.rst:107
-# 307778e9fa794923a05b5d3782acc85d
-msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
-msgstr ""
-
-#: ../../index.rst:110
-# 0c385d08b81a4d888e49ecd739bf1860
-msgid ":ref:`pgr_get_column_name` - to get the name of the column as is stored in the postgres administration tables."
-msgstr ""
-
-#: ../../index.rst:111
-# fc6a6440521e42e097e4adcba17e8e1f
-msgid ":ref:`pgr_get_table_name` - to retrieve the name of the table as is stored in the postgres administration tables."
-msgstr ""
-
-#: ../../index.rst:112
-# c544d6984d0b4ba7a7ceb1c053606d7b
-msgid ":ref:`pgr_is_column_indexed` - to check if the column is indexed."
-msgstr ""
-
-#: ../../index.rst:113
-# a544a1986e2e4c03b3a4611dd5b6a1c9
-msgid ":ref:`pgr_is_column_in_table` - to check only for the existance of the column."
-msgstr ""
-
-#: ../../index.rst:114
-# 96af6a0330594966bbdea86f35b8405d
-msgid ":ref:`pgr_point_to_id` -to insert/get the id of the inserted point in a vertices table."
-msgstr ""
-
-#: ../../index.rst:115
-# a92c8f120ec5487597d80728d05e5978
-msgid ":ref:`pgr_quote_ident` - to quotes the input text to be used as an identifier in an SQL statement string."
-msgstr ""
-
-#: ../../index.rst:116
-# e2d96242a9564a2db5d992b2f5c69be7
-msgid ":ref:`pgr_version` - to get pgRouting's version information."
-msgstr ""
-
-#: ../../index.rst:117
-# bcb3172f60ab43ca86d719778f75a3bc
-msgid ":ref:`pgr_versionless` - to compare two version numbers."
-msgstr ""
-
-#: ../../index.rst:118
-# 35ac2e5b13ec4c20849e57c180e92d8c
-msgid ":ref:`pgr_start_point` - to get the start point of a (multi)linestring."
-msgstr ""
-
-#: ../../index.rst:119
-# fc2e800cd6a0425d9d638fe33e490468
-msgid ":ref:`pgr_end_point` - to get the end point of a (multi)linestring."
-msgstr ""
-
-#: ../../index.rst:138
-# dd55c9e2b877489b86fba4084df5f7ba
-msgid "Developer"
-msgstr ""
-
-#: ../../index.rst:145
-# fadd1dc90eba4ec6be0b4466f523da31
-msgid ":ref:`change_log`"
-msgstr ""
-
-#: ../../index.rst:147
-# 17abb9d0a9f14ebda7042d8d554da58c
-msgid ":ref:`changelog_2_0`"
-msgstr ""
-
-#: ../../index.rst:148
-# a03fca6a9cd24cf19ed79e9873ab6d22
-msgid ":ref:`changelog_1_x`"
-msgstr ""
-
-#: ../../index.rst:157
-# 98ece8ca8a064845a5bd97957b61c7b5
-msgid "Indices and tables"
-msgstr ""
-
-#: ../../index.rst:158
-# 2b70d2db546341f0bbba1a4da5cb0f83
-msgid ":ref:`genindex`"
-msgstr ""
-
-#: ../../index.rst:159
-# 112cec8d59494476a4e1211283a1f3ac
-msgid ":ref:`search`"
-msgstr ""
-
diff --git a/doc/i18n/pot/doc/index_man.pot b/doc/i18n/pot/doc/index_man.pot
deleted file mode 100644
index 65c5be2..0000000
--- a/doc/i18n/pot/doc/index_man.pot
+++ /dev/null
@@ -1,53 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../index_man.rst:13
-# bcb490abce784770af97b32d34aa0afe
-msgid "pgRouting Reference"
-msgstr ""
-
-#: ../../index_man.rst:15
-# c974855aa66744e59dcc86dd78caa667
-msgid "pgRouting extends the `PostGIS <http://postgis.net>`_/`PostgreSQL <http://postgresql.org>`_ geospatial database to provide geospatial routing and other network analysis functionality."
-msgstr ""
-
-#: ../../index_man.rst:22
-# f1484b7dfad94f9581d74ad9e93a78b6
-msgid "pgRouting provides several :ref:`common functions <common>`:"
-msgstr ""
-
-#: ../../index_man.rst:36
-# d29dd3961cbc43be8f0de1be3a72a388
-msgid "pgRouting defines a few :ref:`custom data types <data_types>`:"
-msgstr ""
-
-#: ../../index_man.rst:50
-# d07315699da14e0a9d073b22236c43e2
-msgid "pgRouting functions in alphabetical order:"
-msgstr ""
-
-#: ../../index_man.rst:66
-# 70b33ac19c574d5e9ec11adeaa460c23
-msgid "If pgRouting is compiled with \"Driving Distance\" enabled:"
-msgstr ""
-
-#: ../../index_man.rst:75
-# e18cd5a6bd954425ab5f16172df9382d
-msgid "Some functions from previous releases may have been removed."
-msgstr ""
-
diff --git a/doc/i18n/pot/doc/src/changelog/1_x.pot b/doc/i18n/pot/doc/src/changelog/1_x.pot
deleted file mode 100644
index 651fcf3..0000000
--- a/doc/i18n/pot/doc/src/changelog/1_x.pot
+++ /dev/null
@@ -1,151 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../src/changelog/1_x.rst:13
-# 34774aa2085c4852a5ab3de45ae58a65
-msgid "pgRouting 1.x Release Notes"
-msgstr ""
-
-#: ../../src/changelog/1_x.rst:15
-# ca2f0467090b4d3f82784a2c1672b51b
-msgid "The following release notes have been copied from the previous ``RELEASE_NOTES`` file and are kept as a reference. Release notes starting with :ref:`version 2.0.0 <changelog_2_0>` will follow a different schema."
-msgstr ""
-
-#: ../../src/changelog/1_x.rst:20
-# 54ebb1e4d2e740589b905457a968ed46
-msgid "Changes for release 1.05"
-msgstr ""
-
-#: ../../src/changelog/1_x.rst:22
-#: ../../src/changelog/1_x.rst:29
-#: ../../src/changelog/1_x.rst:50
-#: ../../src/changelog/1_x.rst:57
-# 9161110780584894806569a3861fcd1a
-# 27415461221243e988578c3a080687d5
-# c81ea5229d1f4ca5b27479f985f98046
-# e894abae35ce440e80f2af3a04626ea9
-msgid "Bugfixes"
-msgstr ""
-
-#: ../../src/changelog/1_x.rst:26
-# b55351591b104ec68c5bfcf5d07ddfac
-msgid "Changes for release 1.03"
-msgstr ""
-
-#: ../../src/changelog/1_x.rst:28
-# f6335f292d414bfea51f992ffb2161ba
-msgid "Much faster topology creation"
-msgstr ""
-
-#: ../../src/changelog/1_x.rst:33
-# e7e0a5c95783468bb073e2a686825f92
-msgid "Changes for release 1.02"
-msgstr ""
-
-#: ../../src/changelog/1_x.rst:35
-#: ../../src/changelog/1_x.rst:42
-# afdee266a11d496fa47a526dba3e09ad
-# cb123220760844328a0b74b150248e17
-msgid "Shooting* bugfixes"
-msgstr ""
-
-#: ../../src/changelog/1_x.rst:36
-# d48489e5d2074fc8b1e1d6e77a53b419
-msgid "Compilation problems solved"
-msgstr ""
-
-#: ../../src/changelog/1_x.rst:40
-# cd5b4b1fece84e0db67f340dc585a59b
-msgid "Changes for release 1.01"
-msgstr ""
-
-#: ../../src/changelog/1_x.rst:46
-# dfb9d10fd3124a948a241864b4f79a6f
-msgid "Changes for release 1.0"
-msgstr ""
-
-#: ../../src/changelog/1_x.rst:48
-# e38837733b7948eaaea37352ea7b5f8e
-msgid "Core and extra functions are separated"
-msgstr ""
-
-#: ../../src/changelog/1_x.rst:49
-# b77a8ae8166542b790bb3b1982a45ee3
-msgid "Cmake build process"
-msgstr ""
-
-#: ../../src/changelog/1_x.rst:54
-# 94cb6f4849ef48d992527d1f6a3bbd8a
-msgid "Changes for release 1.0.0b"
-msgstr ""
-
-#: ../../src/changelog/1_x.rst:56
-# 1f70b3f40311437985bc67871dc086b7
-msgid "Additional SQL file with more simple names for wrapper functions"
-msgstr ""
-
-#: ../../src/changelog/1_x.rst:61
-# 4c1e8e6daa90483f9042750a1d8435ae
-msgid "Changes for release 1.0.0a"
-msgstr ""
-
-#: ../../src/changelog/1_x.rst:63
-# ad9d7891b91640b6a264925cf0d909c6
-msgid "Shooting* shortest path algorithm for real road networks"
-msgstr ""
-
-#: ../../src/changelog/1_x.rst:64
-# a96846b0c9094a13901505c774e8edf3
-msgid "Several SQL bugs were fixed"
-msgstr ""
-
-#: ../../src/changelog/1_x.rst:68
-# 2bf9307d0e234f6f815c588dd7112fe9
-msgid "Changes for release 0.9.9"
-msgstr ""
-
-#: ../../src/changelog/1_x.rst:70
-# 54d2820e40d6419e9ea194ab5e8ad33c
-msgid "PostgreSQL 8.2 support"
-msgstr ""
-
-#: ../../src/changelog/1_x.rst:71
-# 1de3ab2c1f4b43e980610120be8d9d82
-msgid "Shortest path functions return empty result if they couldn’t find any path"
-msgstr ""
-
-#: ../../src/changelog/1_x.rst:75
-# 590e3d4c9f994fc2872eff0695a24290
-msgid "Changes for release 0.9.8"
-msgstr ""
-
-#: ../../src/changelog/1_x.rst:77
-# 1f81e073a0f8495ea5d4443b7a4e5f65
-msgid "Renumbering scheme was added to shortest path functions"
-msgstr ""
-
-#: ../../src/changelog/1_x.rst:78
-# ea9741e485de481baf4581ced2d6fbdb
-msgid "Directed shortest path functions were added"
-msgstr ""
-
-#: ../../src/changelog/1_x.rst:79
-# c902f1b39b0240f99913e6370633bafd
-msgid "routing_postgis.sql was modified to use dijkstra in TSP search"
-msgstr ""
-
diff --git a/doc/i18n/pot/doc/src/changelog/2_0.pot b/doc/i18n/pot/doc/src/changelog/2_0.pot
deleted file mode 100644
index 860cab5..0000000
--- a/doc/i18n/pot/doc/src/changelog/2_0.pot
+++ /dev/null
@@ -1,148 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../src/changelog/2_0.rst:13
-# a715879e688945d0a6861bd9140c950b
-msgid "pgRouting 2.0 Release Notes"
-msgstr ""
-
-#: ../../src/changelog/2_0.rst:15
-# 91b9abe3dfe5419d85dcba21dd72768e
-msgid "With the release of pgRouting 2.0 the library has abandoned backwards compatibility to :ref:`pgRouting 1.x <changelog_1_x>` releases. We did this so we could restructure pgRouting, standardize the function naming, and prepare the project for future development. As a result of this effort, we have been able to simplify pgRouting, add significant new functionality, integrate documentation and testing into the source tree and make it easier for multiple developers to make contribution."
-msgstr ""
-
-#: ../../src/changelog/2_0.rst:17
-# 0ed2708f626c458e8cd7a754cc290bee
-msgid "For important changes see the following release notes. To see the full list of changes check the list of `Git commits <https://github.com/pgRouting/pgrouting/commits>`_ on Github."
-msgstr ""
-
-#: ../../src/changelog/2_0.rst:28
-# 134b54d9dc28424186d8c764b65a64cd
-msgid "Changes for 2.0.0"
-msgstr ""
-
-#: ../../src/changelog/2_0.rst:30
-# bcec99c0b1564dde8484f7bcfcab58fd
-msgid "Graph Analytics - tools for detecting and fixing connection some problems in a graph"
-msgstr ""
-
-#: ../../src/changelog/2_0.rst:31
-# 152b4d4ec49c4de8b45e75aa69aab982
-msgid "A collection of useful utility functions"
-msgstr ""
-
-#: ../../src/changelog/2_0.rst:32
-# e8085889ef4441c29c57d6717560dfba
-msgid "Two new All Pairs Short Path algorithms (pgr_apspJohnson, pgr_apspWarshall)"
-msgstr ""
-
-#: ../../src/changelog/2_0.rst:33
-# ea0d25e8d5ef4758b69cfff801f79014
-msgid "Bi-directional Dijkstra and A-star search algorithms (pgr_bdAstar, pgr_bdDijkstra)"
-msgstr ""
-
-#: ../../src/changelog/2_0.rst:34
-# 60e72f802c0c42bfa1d0e03b910fb2a6
-msgid "One to many nodes search (pgr_kDijkstra)"
-msgstr ""
-
-#: ../../src/changelog/2_0.rst:35
-# 3c96500d421c4c57886cb99b260341ae
-msgid "K alternate paths shortest path (pgr_ksp)"
-msgstr ""
-
-#: ../../src/changelog/2_0.rst:36
-# 197a5368f7a64d23ac1174757e001245
-msgid "New TSP solver that simplifies the code and the build process (pgr_tsp), dropped \"Gaul Library\" dependency"
-msgstr ""
-
-#: ../../src/changelog/2_0.rst:37
-# f43a9a4f30384f5d84c9c01b0e3bcfa9
-msgid "Turn Restricted shortest path (pgr_trsp) that replaces Shooting Star"
-msgstr ""
-
-#: ../../src/changelog/2_0.rst:38
-# e170b7e329464668ad9056078feaf9fb
-msgid "Dropped support for Shooting Star"
-msgstr ""
-
-#: ../../src/changelog/2_0.rst:39
-# 6657465c4bff46eead7e2f624ab9784f
-msgid "Built a test infrastructure that is run before major code changes are checked in"
-msgstr ""
-
-#: ../../src/changelog/2_0.rst:40
-# 1ec3c1c7e92344fa98b966301fd7908f
-msgid "Tested and fixed most all of the outstanding bugs reported against 1.x that existing in the 2.0-dev code base."
-msgstr ""
-
-#: ../../src/changelog/2_0.rst:41
-# b0209200646b4cc99f00cc60383c4dcd
-msgid "Improved build process for Windows"
-msgstr ""
-
-#: ../../src/changelog/2_0.rst:42
-# 7fc2fc8bea044f54a63f96bbfef9e2e5
-msgid "Automated testing on Linux and Windows platforms trigger by every commit"
-msgstr ""
-
-#: ../../src/changelog/2_0.rst:43
-# 4e500be4dfdf48559ce8509625cc990c
-msgid "Modular library design"
-msgstr ""
-
-#: ../../src/changelog/2_0.rst:44
-# cf70e3dec74f4f6dbd9fa0c980eeb380
-msgid "Compatibility with PostgreSQL 9.1 or newer"
-msgstr ""
-
-#: ../../src/changelog/2_0.rst:45
-# be4611c8b8694e29ba749c111d3289b4
-msgid "Compatibility with PostGIS 2.0 or newer"
-msgstr ""
-
-#: ../../src/changelog/2_0.rst:46
-# 634a9f4e6a3b478cb42717a3e7bca991
-msgid "Installs as PostgreSQL EXTENSION"
-msgstr ""
-
-#: ../../src/changelog/2_0.rst:47
-# 382bb46ee7a44e5a87985e1ffdc7c57f
-msgid "Return types refactored and unified"
-msgstr ""
-
-#: ../../src/changelog/2_0.rst:48
-# d17f7b7db0ee4030bdcba8819d0cae9a
-msgid "Support for table SCHEMA in function parameters"
-msgstr ""
-
-#: ../../src/changelog/2_0.rst:49
-# 86455c26d4e3493a910fa8309f9f21ec
-msgid "Support for ``st_`` PostGIS function prefix"
-msgstr ""
-
-#: ../../src/changelog/2_0.rst:50
-# 98da605c73074436ac641ea1eb74ba37
-msgid "Added ``pgr_`` prefix to functions and types"
-msgstr ""
-
-#: ../../src/changelog/2_0.rst:51
-# ca139831bcab4d5290685d4ba3a39bba
-msgid "Better documentation: http://docs.pgrouting.org"
-msgstr ""
-
diff --git a/doc/i18n/pot/doc/src/changelog/index.pot b/doc/i18n/pot/doc/src/changelog/index.pot
deleted file mode 100644
index 768bff5..0000000
--- a/doc/i18n/pot/doc/src/changelog/index.pot
+++ /dev/null
@@ -1,33 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../src/changelog/index.rst:13
-# f1cec6fbd88145139cbdf844035c461e
-msgid "Release Notes"
-msgstr ""
-
-#: ../../src/changelog/index.rst:15
-# 469fe2c4cf14420887968fb244b89641
-msgid ":ref:`changelog_2_0`"
-msgstr ""
-
-#: ../../src/changelog/index.rst:16
-# 4a9469338e814f81aaef87cd6efcb2c5
-msgid ":ref:`changelog_1_x`"
-msgstr ""
-
diff --git a/doc/i18n/pot/doc/src/developer/discontinued.pot b/doc/i18n/pot/doc/src/developer/discontinued.pot
deleted file mode 100644
index 7fe1e7d..0000000
--- a/doc/i18n/pot/doc/src/developer/discontinued.pot
+++ /dev/null
@@ -1,48 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../src/developer/discontinued.rst:13
-# 7490293fd85e4e4e98e4da73f4d33c48
-msgid "Discontinued Functions"
-msgstr ""
-
-#: ../../src/developer/discontinued.rst:15
-# c03453e9026146b0bc840f71521310c9
-msgid "Especially with new major releases functionality may change and functions may be discontinued for various reasons. Functionality that has been discontinued will be listed here."
-msgstr ""
-
-#: ../../src/developer/discontinued.rst:22
-# b4716d2a622d4da4832313344d6d314d
-msgid "Shooting Star algorithm"
-msgstr ""
-
-#: ../../src/developer/discontinued.rst:24
-# 67a2d7fa801d4041ad839993dedad031
-msgid "Removed with 2.0.0"
-msgstr ""
-
-#: ../../src/developer/discontinued.rst:25
-# 22b71502b61844b7b11f8487e2b4ec4f
-msgid "Unresolved bugs, no maintainer, replaced with :ref:`trsp`"
-msgstr ""
-
-#: ../../src/developer/discontinued.rst:26
-# ae3be36c2d784a5798b139317310e375
-msgid "Please :ref:`contact us <support>` if you're interested to sponsor or maintain this algorithm. The function signature is still available in :ref:`common_legacy` but it is just a wrapper that throws an error. We have not included any of the old code for this in this release."
-msgstr ""
-
diff --git a/doc/i18n/pot/doc/src/developer/index.pot b/doc/i18n/pot/doc/src/developer/index.pot
deleted file mode 100644
index 228aafd..0000000
--- a/doc/i18n/pot/doc/src/developer/index.pot
+++ /dev/null
@@ -1,183 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../src/developer/index.rst:13
-# dd9778e8f6b34f5e81236f0a987c4ca0
-msgid "Developer's Guide"
-msgstr ""
-
-#: ../../src/developer/index.rst:16
-# 5ab4af0630fc4725b637f9d15cfaae04
-msgid "All documentation should be in reStructuredText format. See: <http://docutils.sf.net/rst.html> for introductory docs."
-msgstr ""
-
-#: ../../src/developer/index.rst:20
-# 16624c1c1e0b490ba6fc570fdf5e8b95
-msgid "Source Tree Layout"
-msgstr ""
-
-#: ../../src/developer/index.rst:23
-# 1126e2a3a9414da3908533bed8c8280d
-msgid "cmake scripts used as part of our build system."
-msgstr ""
-
-#: ../../src/developer/index.rst:26
-# f1bd421698c644e4b8bce00ffad4f2ad
-msgid "This is the algorithm source tree. Each algorithm should be contained in its on sub-tree with doc, sql, src, and test sub-directories. This might get renamed to \"algorithms\" at some point."
-msgstr ""
-
-#: ../../src/developer/index.rst:31
-# 33aceb274b004ba397a6e70e5c6bff99
-msgid "This is an implementation of A* Search based on using Boost Graph libraries for its implementation. This is a Dijkstra shortest path implementation with a Euclidean Heuristic."
-msgstr ""
-
-#: ../../src/developer/index.rst:36
-# 3a68e887f49347ca9f4b4ba7dca1b2d2
-msgid "At the moment this does not have an core in \"src\", but does have a lot of SQL wrapper code and topology code in the \"sql\" directory. *Algorithm specific wrappers should get move to the algorithm tree and appropriate tests should get added to validate the wrappers.*"
-msgstr ""
-
-#: ../../src/developer/index.rst:42
-# 7b5e1a0acede452aac11898a79f7a0d7
-msgid "This is an implementation of Dikjstra's shortest path solution using Boost Graph libraries for the implementation."
-msgstr ""
-
-#: ../../src/developer/index.rst:46
-# 4efe4e5dd0774532a58f7edf649b03fe
-msgid "This optional package creates driving distance polygons based on solving a Dijkstra shortest path solution, then creating polygons based on equal cost distances from the start point. This optional package requires CGAL libraries to be installed."
-msgstr ""
-
-#: ../../src/developer/index.rst:52
-# ba3e62ce53474d8b8a39253b9aafd00c
-msgid "*DEPRECATED and DOES NOT WORK and IS BEING REMOVED* This is an edge based shortest path algorithm that supports turn restrictions. It is based on Boost Graph. Do *NOT* use this algorithm as it is broken, instead use *trsp* which has the same functionality and is faster and give correct results."
-msgstr ""
-
-#: ../../src/developer/index.rst:59
-# 83d03de3b6d64fbd9e72a82869899dcf
-msgid "This is a turn restricted shortest path algorithm. It has some nice features like you can specify the start and end points as a percentage along an edge. Restrictions are stored in a separate table from the graph edges and this make it easier to manage the data."
-msgstr ""
-
-#: ../../src/developer/index.rst:65
-# f353043d4a84477189f21a79af4c4422
-msgid "This optional package provides the ability to compute traveling salesman problem solutions and compute the resulting route. This optional package requires GAUL libaries to be installed."
-msgstr ""
-
-#: ../../src/developer/index.rst:70
-# d8464e37f5b248b8b01daa6f8760026b
-msgid "Miscellaneous scripts and tools."
-msgstr ""
-
-#: ../../src/developer/index.rst:73
-# 09c71e3a9f864830aa5c928aaabe7f24
-msgid "This is the output directory where compiled libraries and installation targets are staged before installation."
-msgstr ""
-
-#: ../../src/developer/index.rst:78
-# 66a640a1530c4bf3a656722e481b7c89
-msgid "Documentation Layout"
-msgstr ""
-
-#: ../../src/developer/index.rst:80
-# 9a3ec152c58c43ac99c1853e662e568c
-msgid "*As noted above all documentation should be done using reStructuredText formated files.*"
-msgstr ""
-
-#: ../../src/developer/index.rst:83
-# 7a52dc0ba119404681f559e60ef23814
-msgid "Documentation is distributed into the source tree. This top level \"doc\" directory is intended for high level documentation cover subjects like:"
-msgstr ""
-
-#: ../../src/developer/index.rst:86
-# 5ed02eb63fbf4928a93ebeb2faac8d20
-msgid "Compiling and testing"
-msgstr ""
-
-#: ../../src/developer/index.rst:87
-# f74a190a655f4685811ae3f57290cd28
-msgid "Installation"
-msgstr ""
-
-#: ../../src/developer/index.rst:88
-# 8ac59a999e2e4a63b68eb64a107d56fd
-msgid "Tutorials"
-msgstr ""
-
-#: ../../src/developer/index.rst:89
-# 8b2d3aaf679e4280abaec5f66febc05d
-msgid "Users' Guide front materials"
-msgstr ""
-
-#: ../../src/developer/index.rst:90
-# c726df360e6e40bc97392bc93c97be15
-msgid "Reference Manual front materials"
-msgstr ""
-
-#: ../../src/developer/index.rst:91
-# ad4ab80865ee49ac978312e71a4fc6b5
-msgid "etc"
-msgstr ""
-
-#: ../../src/developer/index.rst:93
-# eb1075f9ccb14a1997f5ba12492b5a69
-msgid "Since the algorithm specific documentation is contained in the source tree with the algorithm specific files, the process of building the documentation and publishing it will need to assemble the details with the front material as needed."
-msgstr ""
-
-#: ../../src/developer/index.rst:98
-# bb670ff9881c4741a82745506bd9b1ec
-msgid "Also, to keep the \"doc\" directory from getting cluttered, each major book like those listed above, should be contained in a separate directory under \"doc\". Any images or other materials related to the book should also be kept in that directory."
-msgstr ""
-
-#: ../../src/developer/index.rst:105
-# 411663c8822c4c5eab55674c7554e488
-msgid "Testing Infrastructure"
-msgstr ""
-
-#: ../../src/developer/index.rst:107
-# 1dcbae2ed1a84569a4a5e289d53dd828
-msgid "There is a very basic testing infrastructure put in place. Here are the basics of how it works. We need more test cases. Longer term we should probably get someone to setup travis-ci or jenkins testing frameworks."
-msgstr ""
-
-#: ../../src/developer/index.rst:111
-# 41f330f446f74c53b055787569a14909
-msgid "Here is the graph for the TRSP tests."
-msgstr ""
-
-#: ../../src/developer/index.rst:115
-# 2913795d3e6f4be6b4a7e88f8deb96f4
-msgid "Tests are run via the script at the top level tools/test-runner.pl and it runs all the test configured tests and at the moment just dumps the results structure of the test. This can be prettied up later."
-msgstr ""
-
-#: ../../src/developer/index.rst:119
-# a97e7afe47594503bce6759c4618a4df
-msgid "It also assumes that you have installed the libraries as it tests using the installed postgresql. This probably needs to be made smarter so we can test out of the build tree. I'll need to think about that."
-msgstr ""
-
-#: ../../src/developer/index.rst:124
-# 070adb1a0e4842af988a4ff2096379d0
-msgid "Basically each .../test/ directory should include one *test.conf* file that is a perl script fragment that defines what data files to load and what tests to run. I have built in some mechanisms to allow test and data to be pg version and postgis version specific, but I'm not using that yet. So for example, *core/trsp/test/test-any-00.data* is a sql plain text dump that will load and needed data for a set of tests. This is also the graph in the image above. You can specify multiple [...]
-msgstr ""
-
-#: ../../src/developer/index.rst:133
-# 5cc6ac71e65c4c34b0f6f84a922e774d
-msgid "core/trsp/test/test-any-00.test is a sql command to be run. It will get run as:"
-msgstr ""
-
-#: ../../src/developer/index.rst:141
-# 00a56fbb2fc345498bfd8fb80175362e
-msgid "Then if there is a difference then an test failure is reported."
-msgstr ""
-
diff --git a/doc/i18n/pot/doc/src/developer/sampledata.pot b/doc/i18n/pot/doc/src/developer/sampledata.pot
deleted file mode 100644
index 946f79b..0000000
--- a/doc/i18n/pot/doc/src/developer/sampledata.pot
+++ /dev/null
@@ -1,53 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../src/developer/sampledata.rst:13
-# ba4eedd90f324e7c8cdf7796820bfecf
-msgid "Sample Data"
-msgstr ""
-
-#: ../../src/developer/sampledata.rst:15
-# 9e493f04148b40fcabb837efae5c0e79
-msgid "The documentation provides very simple example queries based on a small sample network. To be able to execute the sample queries, run the following SQL commands to create a table with a small network data set."
-msgstr ""
-
-#: ../../src/developer/sampledata.rst:20
-# 229d513d61904b279260cfe545130efd
-msgid "Create table"
-msgstr ""
-
-#: ../../src/developer/sampledata.rst:40
-# 58e167fc212e47df8bce8182f5f6f18f
-msgid "Insert network data"
-msgstr ""
-
-#: ../../src/developer/sampledata.rst:70
-# 32e8a993a3954cd99d1e9e1f845c6509
-msgid "Before you test a routing function use this query to fill the source and target columns."
-msgstr ""
-
-#: ../../src/developer/sampledata.rst:77
-# 1d6ec82bbe35418dab00ea92e370846d
-msgid "This table is used in some of our examples"
-msgstr ""
-
-#: ../../src/developer/sampledata.rst:94
-# f25af2ce290b45dbaae4c435a13077f4
-msgid "The network created in *edge_table*"
-msgstr ""
-
diff --git a/doc/i18n/pot/doc/src/installation/build.pot b/doc/i18n/pot/doc/src/installation/build.pot
deleted file mode 100644
index 2331332..0000000
--- a/doc/i18n/pot/doc/src/installation/build.pot
+++ /dev/null
@@ -1,128 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../src/installation/build.rst:13
-# 7ca37ffe8204407785528b35d96efbca
-msgid "Build Guide"
-msgstr ""
-
-#: ../../src/installation/build.rst:15
-# cf78d0fc200e4a00ab13da3910b5a133
-msgid "To be able to compile pgRouting make sure that the following dependencies are met:"
-msgstr ""
-
-#: ../../src/installation/build.rst:17
-# 7812e3015a7a467ea5b86a6801e7e255
-msgid "C and C++ compilers"
-msgstr ""
-
-#: ../../src/installation/build.rst:18
-# 1371a204e532415aac2b8ebc073d7460
-msgid "Postgresql version >= 8.4 (>= 9.1 recommended)"
-msgstr ""
-
-#: ../../src/installation/build.rst:19
-# b161109c64204b80a54760aeebafd193
-msgid "PostGIS version >= 1.5 (>= 2.0 recommended)"
-msgstr ""
-
-#: ../../src/installation/build.rst:20
-# 0750dd65b38a4975b1b67817fd69ab81
-msgid "The Boost Graph Library (BGL). Version >= [TBD]"
-msgstr ""
-
-#: ../../src/installation/build.rst:21
-# 1af0d9868c614f23a1ed6e2649f647ba
-msgid "CMake >= 2.8.8"
-msgstr ""
-
-#: ../../src/installation/build.rst:22
-# ce5e03eec1cd4c1da6abf75d5e49caaf
-msgid "(optional, for Driving Distance) CGAL >= [TBD]"
-msgstr ""
-
-#: ../../src/installation/build.rst:23
-# 32965def05f54cbf8fef3795bebd45fe
-msgid "(optional, for Documentation) Sphinx >= 1.1"
-msgstr ""
-
-#: ../../src/installation/build.rst:24
-# a82f28ce517741aaaea2575163d7a24c
-msgid "(optional, for Documentation as PDF) Latex >= [TBD]"
-msgstr ""
-
-#: ../../src/installation/build.rst:26
-# 831069f7ed284c2b80d241b26e133726
-msgid "The cmake system has variables the can be configured via the command line options by setting them with -D<varable>=<value>. You can get a listing of these via:"
-msgstr ""
-
-#: ../../src/installation/build.rst:34
-# 5d9c658b37bf4994b7bd98db347f41e3
-msgid "Currently these are:"
-msgstr ""
-
-#: ../../src/installation/build.rst:36
-# b27051231cbe4d88b604dcd8f1adf7d8
-msgid "Boost_DIR:PATH=Boost_DIR-NOTFOUND CMAKE_BUILD_TYPE:STRING= CMAKE_INSTALL_PREFIX:PATH=/usr/local POSTGRESQL_EXECUTABLE:FILEPATH=/usr/lib/postgresql/9.2/bin/postgres POSTGRESQL_PG_CONFIG:FILEPATH=/usr/bin/pg_config WITH_DD:BOOL=ON WITH_DOC:BOOL=OFF BUILD_HTML:BOOL=ON BUILD_LATEX:BOOL=OFF BUILD_MAN:BOOL=ON"
-msgstr ""
-
-#: ../../src/installation/build.rst:47
-# a44fdc0f9b7c4f3b9a79037558700c7f
-msgid "These also show the current or default values based on our development system. So your values my be different. In general the ones that are of most interest are:"
-msgstr ""
-
-#: ../../src/installation/build.rst:49
-# 403d9b32e4824cdfb29bc0b3faf400a7
-msgid "WITH_DD:BOOL=ON       -- Turn on/off building driving distance code. WITH_DOC:BOOL=OFF     -- Turn on/off building the documentation BUILD_HTML:BOOL=ON    -- If WITH_DOC=ON, turn on/off building HTML BUILD_LATEX:BOOL=OFF  -- If WITH_DOC=ON, turn on/off building PDF BUILD_MAN:BOOL=ON     -- If WITH_DOC=ON, turn on/off building MAN pages"
-msgstr ""
-
-#: ../../src/installation/build.rst:55
-# b9a07c63fbbd4f138ae4a4d0700fe56a
-msgid "To change any of these add ``-D<variable>=<value>`` to the cmake lines below. For example to turn on documentation, your cmake command might look like:"
-msgstr ""
-
-#: ../../src/installation/build.rst:62
-# 4c3dc167fd254a10a701ee647c852666
-msgid "If you turn on the documentation, you also need to add the ``doc`` target to the make command."
-msgstr ""
-
-#: ../../src/installation/build.rst:72
-# 5514f2407b3647deb84d86d331014680
-msgid "For MinGW on Windows"
-msgstr ""
-
-#: ../../src/installation/build.rst:84
-# 98bc3231ca8040f499d85acbbb115b66
-msgid "For Linux"
-msgstr ""
-
-#: ../../src/installation/build.rst:96
-# 3077b3438151444c93980d4f883cf21c
-msgid "With Documentation"
-msgstr ""
-
-#: ../../src/installation/build.rst:98
-# dd1713378fe447c8883fc24dcdb9ddb6
-msgid "Build with documentation (requires `Sphinx <http://sphinx-doc.org/>`_):"
-msgstr ""
-
-#: ../../src/installation/build.rst:106
-# 12f4405e6eab4f94b380bc408c60ca64
-msgid "Rebuild modified documentation only:"
-msgstr ""
-
diff --git a/doc/i18n/pot/doc/src/installation/index.pot b/doc/i18n/pot/doc/src/installation/index.pot
deleted file mode 100644
index 0da2cc2..0000000
--- a/doc/i18n/pot/doc/src/installation/index.pot
+++ /dev/null
@@ -1,193 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../src/installation/index.rst:13
-# e99a02e543da4575b3119115c1b12890
-msgid "Installation"
-msgstr ""
-
-#: ../../src/installation/index.rst:15
-# 750ddf4b1b794660b7193b507fc50a97
-msgid "Binary packages are provided for the current version on the following platforms:"
-msgstr ""
-
-#: ../../src/installation/index.rst:19
-# 17f7d5c2722145e58d527b1986c38729
-msgid "Windows"
-msgstr ""
-
-#: ../../src/installation/index.rst:21
-# a0f76335d522429eb8fd312cd44fbbf0
-msgid "Winnie Bot Experimental Builds:"
-msgstr ""
-
-#: ../../src/installation/index.rst:23
-# 42b5f2fa3fe94023bba24019c3f4cd70
-msgid "`PostgreSQL 9.2 32-bit, 64-bit <http://winnie.postgis.net/download/windows/pg92/buildbot/>`_"
-msgstr ""
-
-#: ../../src/installation/index.rst:27
-# 7caea0f739ac40079a65734a3f904587
-msgid "Ubuntu/Debian"
-msgstr ""
-
-#: ../../src/installation/index.rst:29
-# 391c003657a7419386648662df8b2fe1
-msgid "Ubuntu packages are available in Launchpad repositories:"
-msgstr ""
-
-#: ../../src/installation/index.rst:31
-# cf5d713f52384127acefcb1835615575
-msgid "*stable* https://launchpad.net/~georepublic/+archive/pgrouting"
-msgstr ""
-
-#: ../../src/installation/index.rst:32
-# ee401bf810574986a8d76adc89207709
-msgid "*unstable* https://launchpad.net/~georepublic/+archive/pgrouting-unstable"
-msgstr ""
-
-#: ../../src/installation/index.rst:43
-# 7d155c97705942f38e617e56e930fdcf
-msgid "Use `UbuntuGIS-unstable PPA <https://launchpad.net/~ubuntugis/+archive/ubuntugis-unstable>`_ to install PostGIS 2.0."
-msgstr ""
-
-#: ../../src/installation/index.rst:47
-# 7ed4d0e8f7bf489bb4260cf72d619353
-msgid "RHEL/CentOS/Fedora"
-msgstr ""
-
-#: ../../src/installation/index.rst:49
-# 880be2917ef44e348715720724eeb36a
-msgid "Fedora RPM's: https://admin.fedoraproject.org/pkgdb/acls/name/pgRouting"
-msgstr ""
-
-#: ../../src/installation/index.rst:53
-# b7656017a37847af917b9982e783f484
-msgid "OS X"
-msgstr ""
-
-#: ../../src/installation/index.rst:57
-# 094f8f18c1bf4a549eae698ecf436c70
-msgid "Homebrew"
-msgstr ""
-
-#: ../../src/installation/index.rst:65
-# 9bd8a95b05884a6f9dd3386461499f65
-msgid "Source Package"
-msgstr ""
-
-#: ../../src/installation/index.rst:68
-# 85c05371670747c19470a6aa635eca43
-msgid "Git 2.0.0-rc1 release"
-msgstr ""
-
-#: ../../src/installation/index.rst:68
-# 93e66bb1bcfe48879472f8a2fc8f0eb2
-msgid "`v2.0.0-rc1.tar.gz`_"
-msgstr ""
-
-#: ../../src/installation/index.rst:68
-# 7d1faf7a050b4600892612b9b5cb9107
-msgid "`v2.0.0-rc1.zip`_"
-msgstr ""
-
-#: ../../src/installation/index.rst:69
-# 7779ccda870a464287858c6f1246fe6c
-msgid "Git 2.0.0-beta release"
-msgstr ""
-
-#: ../../src/installation/index.rst:69
-# 1cf3f78fdae44893b69017dd3431fbde
-msgid "`v2.0.0-beta.tar.gz`_"
-msgstr ""
-
-#: ../../src/installation/index.rst:69
-# 6de5c2e8d36d405f9e93540de8cefcc0
-msgid "`v2.0.0-beta.zip`_"
-msgstr ""
-
-#: ../../src/installation/index.rst:70
-# 8dab8cbc19df4943b2bb123cbef01b4f
-msgid "Git 2.0.0-alpha release"
-msgstr ""
-
-#: ../../src/installation/index.rst:70
-# c0ac0a4fb9964caabd4dba0f0878f1f2
-msgid "`v2.0.0-alpha.tar.gz`_"
-msgstr ""
-
-#: ../../src/installation/index.rst:70
-# e30f4a87fa444db69f37e0ee0dd9d66a
-msgid "`v2.0.0-alpha.zip`_"
-msgstr ""
-
-#: ../../src/installation/index.rst:71
-# b3ebd6fb08094d32adbfacc9d58fcf1c
-msgid "Git master branch"
-msgstr ""
-
-#: ../../src/installation/index.rst:71
-# 67521c1fdf4f49ebacfe1e5c769a0ecd
-msgid "`master.tar.gz`_"
-msgstr ""
-
-#: ../../src/installation/index.rst:71
-# 092f447e5e0e43ada3e9a6bf507f91ad
-msgid "`master.zip`_"
-msgstr ""
-
-#: ../../src/installation/index.rst:72
-# 92d860c92dc64e34a0dc7c71b2d53a28
-msgid "Git develop branch"
-msgstr ""
-
-#: ../../src/installation/index.rst:72
-# 1dcd902807c54fcda900cece955a2f4e
-msgid "`develop.tar.gz`_"
-msgstr ""
-
-#: ../../src/installation/index.rst:72
-# f4b1bad880d9412fb5bda9b850f4898b
-msgid "`develop.zip`_"
-msgstr ""
-
-#: ../../src/installation/index.rst:92
-# 55016de8fc864e98bb25e136f909267e
-msgid "Using Git"
-msgstr ""
-
-#: ../../src/installation/index.rst:94
-# 94e2754216444adaabe114a815eba7db
-msgid "Git protocol (read-only):"
-msgstr ""
-
-#: ../../src/installation/index.rst:101
-# 5cb5c9c516a14820a509d0158b2b37c2
-msgid "HTTPS protocol (read-only): .. code-block:: bash"
-msgstr ""
-
-#: ../../src/installation/index.rst:104
-# fe6100c2adc24a76b628be1832abea60
-msgid "git clone https://github.com/pgRouting/pgrouting.git"
-msgstr ""
-
-#: ../../src/installation/index.rst:107
-# e15c461c5aee4a16af0194821336d21a
-msgid "See :ref:`build` for notes on compiling from source."
-msgstr ""
-
diff --git a/doc/i18n/pot/doc/src/introduction/index.pot b/doc/i18n/pot/doc/src/introduction/index.pot
deleted file mode 100644
index e715186..0000000
--- a/doc/i18n/pot/doc/src/introduction/index.pot
+++ /dev/null
@@ -1,33 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../src/introduction/index.rst:23
-# aae4b604dbdc4cd29882bb4ad071dc73
-msgid "Indices and tables"
-msgstr ""
-
-#: ../../src/introduction/index.rst:24
-# 621c9a1ae458437ea667d6739cc434bb
-msgid ":ref:`genindex`"
-msgstr ""
-
-#: ../../src/introduction/index.rst:25
-# 3fb8ff3d2b9a42b5a245e90374660f0c
-msgid ":ref:`search`"
-msgstr ""
-
diff --git a/doc/i18n/pot/doc/src/introduction/introduction.pot b/doc/i18n/pot/doc/src/introduction/introduction.pot
deleted file mode 100644
index 6460498..0000000
--- a/doc/i18n/pot/doc/src/introduction/introduction.pot
+++ /dev/null
@@ -1,153 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../src/introduction/introduction.rst:13
-# db7a9197c94f4694be0debc228725326
-msgid "Introduction"
-msgstr ""
-
-#: ../../src/introduction/introduction.rst:15
-# e1ab968a49474e08a51cc6a5293ff675
-msgid "pgRouting is an extension of `PostGIS <http://postgis.net>`_ and `PostgreSQL <http://postgresql.org>`_ geospatial database and adds routing and other network analysis functionality. A predecessor of pgRouting – pgDijkstra, written by Sylvain Pasche from `Camptocamp <http://camptocamp.com>`_, was later extended by `Orkney <http://www.orkney.co.jp>`_ and renamed to pgRouting. The project is now supported and maintained by `Georepublic <http://georepublic.info>`_, `iMaptools <http:// [...]
-msgstr ""
-
-#: ../../src/introduction/introduction.rst:17
-# 69b26ba84d004c57a5919c0f2c9f5605
-msgid "pgRouting is an `OSGeo Labs <http://wiki.osgeo.org/wiki/OSGeo_Labs>`_ project of the `OSGeo Foundation <http://osgeo.org>`_ and included on `OSGeo Live <http://live.osgeo.org/>`_."
-msgstr ""
-
-#: ../../src/introduction/introduction.rst:23
-# 078b30e71798444498641786bd203e19
-msgid "License"
-msgstr ""
-
-#: ../../src/introduction/introduction.rst:25
-# 6c4b66f203b8422e9563c8ad28f54839
-msgid "The following licenses can be found in pgRouting:"
-msgstr ""
-
-#: ../../src/introduction/introduction.rst:30
-# d164df747b594809a00187d644423950
-msgid "**License**"
-msgstr ""
-
-#: ../../src/introduction/introduction.rst:32
-# f3f2ee77936f4adf9acde40a61fab06d
-msgid "GNU General Public License, version 2"
-msgstr ""
-
-#: ../../src/introduction/introduction.rst:33
-# af3b211cb3df4b399e13145f25c9c3f2
-msgid "Most features of pgRouting are available under `GNU General Public License, version 2 <http://www.gnu.org/licenses/gpl-2.0.html>`_."
-msgstr ""
-
-#: ../../src/introduction/introduction.rst:34
-# e7469743ba2744aeb933366f491b3ebf
-msgid "Boost Software License - Version 1.0"
-msgstr ""
-
-#: ../../src/introduction/introduction.rst:35
-# 66cae48d3cc545ae870bc7453fb54fe4
-msgid "Some Boost extensions are available under `Boost Software License - Version 1.0 <http://www.boost.org/LICENSE_1_0.txt>`_."
-msgstr ""
-
-#: ../../src/introduction/introduction.rst:36
-# bd7f061fe70546dba37f4d73a068abd3
-msgid "MIT-X License"
-msgstr ""
-
-#: ../../src/introduction/introduction.rst:37
-# 33606ca1178d466e830a72e11e941602
-msgid "Some code contributed by iMaptools.com is available under MIT-X license."
-msgstr ""
-
-#: ../../src/introduction/introduction.rst:38
-# 76cd2e58c8534266a55c3ce7db940e18
-msgid "Creative Commons Attribution-Share Alike 3.0 License"
-msgstr ""
-
-#: ../../src/introduction/introduction.rst:39
-# 90c91ba63a5e416c9d3edb03b41d6e92
-msgid "The pgRouting Manual is licensed under a `Creative Commons Attribution-Share Alike 3.0 License <http://creativecommons.org/licenses/by-sa/3.0/>`_."
-msgstr ""
-
-#: ../../src/introduction/introduction.rst:41
-# 637bce644f01485bb2df99669fd97063
-msgid "In general license information should be included in the header of each source file."
-msgstr ""
-
-#: ../../src/introduction/introduction.rst:45
-# 128679ca199c4408b71888935af07cbc
-msgid "Contributors"
-msgstr ""
-
-#: ../../src/introduction/introduction.rst:48
-# a036e92f2f3449acbf377fcd8f186bff
-msgid "Individuals (in alphabetical order)"
-msgstr ""
-
-#: ../../src/introduction/introduction.rst:50
-# dfba51b50ac2407184eaeade19a7de5f
-msgid "Akio Takubo, Anton Patrushev, Ashraf Hossain, Christian Gonzalez, Daniel Kastl, Dave Potts, David Techer, Ema Miyawaki, Florian Thurkow, Frederic Junod, Gerald Fenoy, Jay Mahadeokar, Jinfu Leng, Kai Behncke, Kishore Kumar, Ko Nagase, Mario Basa, Martin Wiesenhaan, Razequl Islam, Stephen Woodbridge, Sylvain Housseman, Sylvain Pasche, Virginia Vergara"
-msgstr ""
-
-#: ../../src/introduction/introduction.rst:54
-# 20f28195f1944e078e6721303cdf9e93
-msgid "Corporate Sponsors (in alphabetical order)"
-msgstr ""
-
-#: ../../src/introduction/introduction.rst:56
-# ac8b23cb602d47778a972448d37df41a
-msgid "These are corporate entities that have contributed developer time, hosting, or direct monetary funding to the pgRouting project:"
-msgstr ""
-
-#: ../../src/introduction/introduction.rst:58
-# 3d20a9c3b8c44157a6d28c2f70b8dfb1
-msgid "Camptocamp, CSIS (University of Tokyo), Georepublic, Google Summer of Code, iMaptools, Orkney, Paragon Corporation"
-msgstr ""
-
-#: ../../src/introduction/introduction.rst:62
-# 378a74ceff9d46f08159384e421aceda
-msgid "More Information"
-msgstr ""
-
-#: ../../src/introduction/introduction.rst:64
-# 2c0a067006e54cfd96c72f3b503776e2
-msgid "The latest software, documentation and news items are available at the pgRouting web site http://pgrouting.org."
-msgstr ""
-
-#: ../../src/introduction/introduction.rst:65
-# a7e5b0aeff6b424ca181298c5a5f2cde
-msgid "PostgreSQL database server at the PostgreSQL main site http://www.postgresql.org."
-msgstr ""
-
-#: ../../src/introduction/introduction.rst:66
-# 476715ce5d0c43a09bcbddd27dbf2675
-msgid "PostGIS extension at the PostGIS project web site http://postgis.net."
-msgstr ""
-
-#: ../../src/introduction/introduction.rst:67
-# e1d37342c02c4f268b60f110453d80a1
-msgid "Boost C++ source libraries at http://www.boost.org."
-msgstr ""
-
-#: ../../src/introduction/introduction.rst:68
-# 0a9a94f444b54dd78a3d1060975e43aa
-msgid "Computational Geometry Algorithms Library (CGAL) at http://www.cgal.org."
-msgstr ""
-
diff --git a/doc/i18n/pot/doc/src/introduction/support.pot b/doc/i18n/pot/doc/src/introduction/support.pot
deleted file mode 100644
index b76a9c3..0000000
--- a/doc/i18n/pot/doc/src/introduction/support.pot
+++ /dev/null
@@ -1,183 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../src/introduction/support.rst:13
-# b3a5f8f3969e4044a381397a261ba4cb
-msgid "Support"
-msgstr ""
-
-#: ../../src/introduction/support.rst:15
-# 14b20eda5bf6472e80234e2295d8afb3
-msgid "pgRouting community support is available through `website <http://www.pgrouting.org>`_, `documentation <http://docs.pgrouting.org>`_, tutorials, mailing lists and others. If you’re looking for :ref:`commercial support <support_commercial>`, find below a list of companies providing pgRouting development and consulting services."
-msgstr ""
-
-#: ../../src/introduction/support.rst:19
-# 39af5317df5f4991a31406effa1a9bfd
-msgid "Reporting Problems"
-msgstr ""
-
-#: ../../src/introduction/support.rst:21
-# 846db30aae8243b88a94128cd88a2d13
-msgid "Bugs are reported and managed in an `issue tracker <https://github.com/pgrouting/pgrouting/issues>`_. Please follow these steps:"
-msgstr ""
-
-#: ../../src/introduction/support.rst:23
-# b216a415cf874553844a63de9a3e7e37
-msgid "Search the tickets to see if your problem has already been reported. If so, add any extra context you might have found, or at least indicate that you too are having the problem. This will help us prioritize common issues."
-msgstr ""
-
-#: ../../src/introduction/support.rst:24
-# f90bf6bb28cd424c99999fefde16b870
-msgid "If your problem is unreported, create a `new issue <https://github.com/pgRouting/pgrouting/issues/new>`_ for it."
-msgstr ""
-
-#: ../../src/introduction/support.rst:25
-# 6932232f3b494120bf3cd5845790dfb5
-msgid "In your report include explicit instructions to replicate your issue. The best tickets include the exact SQL necessary to replicate a problem."
-msgstr ""
-
-#: ../../src/introduction/support.rst:26
-# 28de5e590b3e47aea44a0d6f268542ca
-msgid "If you can test older versions of PostGIS for your problem, please do. On your ticket, note the earliest version the problem appears."
-msgstr ""
-
-#: ../../src/introduction/support.rst:27
-# f72042193b2340189e79b8157aa396c2
-msgid "For the versions where you can replicate the problem, note the operating system and version of pgRouting, PostGIS and PostgreSQL."
-msgstr ""
-
-#: ../../src/introduction/support.rst:28
-# c9fd079d20de411982eb4f1bbf785bff
-msgid "It is recommended to use the following wrapper on the problem to pin point the step that is causing the problem."
-msgstr ""
-
-#: ../../src/introduction/support.rst:39
-# 78da830808444e8a9b33427b71b7ade3
-msgid "Mailing List and GIS StackExchange"
-msgstr ""
-
-#: ../../src/introduction/support.rst:41
-# dce6c1586cf44001a08347ec6db5f8a0
-msgid "There are two mailing lists for pgRouting hosted on OSGeo mailing list server:"
-msgstr ""
-
-#: ../../src/introduction/support.rst:43
-# ba27e5f495ff45578f9fb19f7bc634e6
-msgid "User mailing list: http://lists.osgeo.org/mailman/listinfo/pgrouting-users"
-msgstr ""
-
-#: ../../src/introduction/support.rst:44
-# 96a4eb1cc9b94c7f83a98fe0e9fbf404
-msgid "Developer mailing list: http://lists.osgeo.org/mailman/listinfo/pgrouting-dev"
-msgstr ""
-
-#: ../../src/introduction/support.rst:46
-# 4a9ace0357b94eecaf93ddb0bdbaf131
-msgid "For general questions and topics about how to use pgRouting, please write to the user mailing list."
-msgstr ""
-
-#: ../../src/introduction/support.rst:48
-# 02d78a467082497ba17123302780dbd0
-msgid "You can also ask at `GIS StackExchange <http://gis.stackexchange.com/>`_ and tag the question with ``pgrouting``. Find all questions tagged with ``pgrouting`` under http://gis.stackexchange.com/questions/tagged/pgrouting or subscribe to the `pgRouting questions feed <http://gis.stackexchange.com/feeds/tag?tagnames=pgrouting&sort=newest>`_."
-msgstr ""
-
-#: ../../src/introduction/support.rst:54
-# 120403ad7b7a49c98a04dfecbc278fd4
-msgid "Commercial Support"
-msgstr ""
-
-#: ../../src/introduction/support.rst:56
-# 24e3a1d45ea64cb1a5baf76dde6c3900
-msgid "For users who require professional support, development and consulting services, consider contacting any of the following organizations, which have significantly contributed to the development of pgRouting:"
-msgstr ""
-
-#: ../../src/introduction/support.rst:61
-# a14390d0ad424921a7496be9a782353c
-msgid "**Company**"
-msgstr ""
-
-#: ../../src/introduction/support.rst:62
-# fc52e8e827d849e1bd4763f74f132912
-msgid "**Offices in**"
-msgstr ""
-
-#: ../../src/introduction/support.rst:63
-# 9d16b878b9f147d8ac975974f8d08893
-msgid "**Website**"
-msgstr ""
-
-#: ../../src/introduction/support.rst:64
-# 7c2d1daf89eb477b8ef916cbc3b580b7
-msgid "Georepublic"
-msgstr ""
-
-#: ../../src/introduction/support.rst:65
-# 6e9a1212cf424bb79135fc776d540425
-msgid "Germany, Japan"
-msgstr ""
-
-#: ../../src/introduction/support.rst:66
-# e7718917bc8e4ee98a2531c382c41822
-msgid "http://georepublic.info"
-msgstr ""
-
-#: ../../src/introduction/support.rst:67
-# 74dd9ca2e81845388ab727db74056fbf
-msgid "iMaptools"
-msgstr ""
-
-#: ../../src/introduction/support.rst:68
-# b01fa3f414e34f0094e80693bf5ace2b
-msgid "United States"
-msgstr ""
-
-#: ../../src/introduction/support.rst:69
-# e5d84b3e16614c76b8b6eb32b0dbb76f
-msgid "http://imaptools.com"
-msgstr ""
-
-#: ../../src/introduction/support.rst:70
-# d6fc6ed908ed4dc2a2cf29dce5152916
-msgid "Orkney Inc."
-msgstr ""
-
-#: ../../src/introduction/support.rst:71
-# 9ba93fb521a1423386c96d467103c66b
-msgid "Japan"
-msgstr ""
-
-#: ../../src/introduction/support.rst:72
-# 1994c13572dd4f30b7e43039f56c83da
-msgid "http://www.orkney.co.jp"
-msgstr ""
-
-#: ../../src/introduction/support.rst:73
-# 00a63203a2744d2e997e92f7679fc37e
-msgid "Camptocamp"
-msgstr ""
-
-#: ../../src/introduction/support.rst:74
-# d70b9ffbfe524565add3618282d7fb3e
-msgid "Switzerland, France"
-msgstr ""
-
-#: ../../src/introduction/support.rst:75
-# 69ca9d4d59b54f288771a4194bda7182
-msgid "http://www.camptocamp.com"
-msgstr ""
-
diff --git a/doc/i18n/pot/doc/src/tutorial/analytics.pot b/doc/i18n/pot/doc/src/tutorial/analytics.pot
deleted file mode 100644
index 0808e20..0000000
--- a/doc/i18n/pot/doc/src/tutorial/analytics.pot
+++ /dev/null
@@ -1,173 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../src/tutorial/analytics.rst:13
-# 9bb2bd3626cd4963af58fa92b51e9919
-msgid "Graph Analytics"
-msgstr ""
-
-#: ../../src/tutorial/analytics.rst:15
-# 44103bb4e37949d2b005a15a9b62ef69
-msgid "Stephen Woodbridge <woodbri at swoodbridge.com>"
-msgstr ""
-
-#: ../../src/tutorial/analytics.rst:16
-# 2f190e03d221441a8b893ae7a8cbb843
-msgid "Stephen Woodbridge. The source code is released under the MIT-X license."
-msgstr ""
-
-#: ../../src/tutorial/analytics.rst:20
-# 21bb31b2be914f509ce4e3bc8c190291
-msgid "Overview"
-msgstr ""
-
-#: ../../src/tutorial/analytics.rst:22
-# 1c91f49498d44c23a21896c3176eb2e6
-msgid "It is common to find problems with graphs that have not been constructed fully noded or in graphs with z-levels at intersection that have been entered incorrectly. An other problem is one way streets that have been entered in the wrong direction. We can not detect errors with respect to \"ground\" truth, but we can look for inconsistencies and some anomalies in a graph and report them for additional inspections."
-msgstr ""
-
-#: ../../src/tutorial/analytics.rst:24
-# e7a6f04d92314f218a4630cd0bd1d5dd
-msgid "We do not current have any visualization tools for these problems, but I have used mapserver to render the graph and highlight potential problem areas. Someone familiar with graphviz might contribute tools for generating images with that."
-msgstr ""
-
-#: ../../src/tutorial/analytics.rst:28
-# a3a676f9e1e94e98b7fe13b19e05c299
-msgid "Analyze a Graph"
-msgstr ""
-
-#: ../../src/tutorial/analytics.rst:30
-# 4acca336e2b54dd1a924da70266e05f0
-msgid "With :ref:`pgr_analyze_graph` the graph can be checked for errors. For example for table \"mytab\" that has \"mytab_vertices_pgr\" as the vertices table:"
-msgstr ""
-
-#: ../../src/tutorial/analytics.rst:53
-# f0d0abed136245d29c3e3215c4692afa
-msgid "In the vertices table \"mytab_vertices_pgr\":"
-msgstr ""
-
-#: ../../src/tutorial/analytics.rst:55
-# 6b9c4034040e4fcdb2c4307007812444
-msgid "Deadends are indentified by ``cnt=1``"
-msgstr ""
-
-#: ../../src/tutorial/analytics.rst:56
-# 4aad85137bf849fe92d92b5c11aa405e
-msgid "Potencial gap problems are identified with ``chk=1``."
-msgstr ""
-
-#: ../../src/tutorial/analytics.rst:74
-# c7a3d9cdf154446dabf79505c45aa6d9
-msgid "For isolated road segments, for example, a segment where both ends are deadends. you can find these with the following query:"
-msgstr ""
-
-#: ../../src/tutorial/analytics.rst:83
-# 445b457711484140b2b8b9047011076b
-msgid "If you want to visualize these on a graphic image, then you can use something like mapserver to render the edges and the vertices and style based on ``cnt`` or if they are isolated, etc. You can also do this with a tool like graphviz, or geoserver or other similar tools."
-msgstr ""
-
-#: ../../src/tutorial/analytics.rst:87
-# 0f23d2f74bd247f98705d903b5092b01
-msgid "Analyze One Way Streets"
-msgstr ""
-
-#: ../../src/tutorial/analytics.rst:89
-# 91a97fa2e4b248e38a4ddb2835bcb9a0
-msgid ":ref:`pgr_analyze_oneway` analyzes one way streets in a graph and identifies any flipped segments. Basically if you count the edges coming into a node and the edges exiting a node the number has to be greater than one."
-msgstr ""
-
-#: ../../src/tutorial/analytics.rst:91
-# d3cc233afc9445cfb38a101d4b7957b0
-msgid "This query will add two columns to the vertices_tmp table ``ein int`` and ``eout int`` and populate it with the appropriate counts. After running this on a graph you can identify nodes with potential problems with the following query."
-msgstr ""
-
-#: ../../src/tutorial/analytics.rst:94
-# 141f59cee9b54b07b4604d7113514baa
-msgid "The rules are defined as an array of text strings that if match the ``col`` value would be counted as true for the source or target in or out condition."
-msgstr ""
-
-#: ../../src/tutorial/analytics.rst:98
-# 104462249c9c43c6a6aadfba7bb30b61
-msgid "Example"
-msgstr ""
-
-#: ../../src/tutorial/analytics.rst:100
-# 416ab98bf07d43569e7c6c734485163b
-msgid "Lets assume we have a table \"st\" of edges and a column \"one_way\" that might have values like:"
-msgstr ""
-
-#: ../../src/tutorial/analytics.rst:102
-# a2be56f70ad5420c9ce538a9b57e4f99
-msgid "'FT'    - oneway from the source to the target node."
-msgstr ""
-
-#: ../../src/tutorial/analytics.rst:103
-# a4da13471e8e4159b8e84c8310544ef5
-msgid "'TF'    - oneway from the target to the source node."
-msgstr ""
-
-#: ../../src/tutorial/analytics.rst:104
-# fdbb652554154f688abf5949c07e7721
-msgid "'B'     - two way street."
-msgstr ""
-
-#: ../../src/tutorial/analytics.rst:105
-# 749352e7a82147d0877caff5ba7e72da
-msgid "''      - empty field, assume twoway."
-msgstr ""
-
-#: ../../src/tutorial/analytics.rst:106
-# 73fdc5c8db7a442b9c821dbca31d8e24
-msgid "<NULL>  - NULL field, use two_way_if_null flag."
-msgstr ""
-
-#: ../../src/tutorial/analytics.rst:108
-# c89d93ddab594f0f8fe939f9f13a2371
-msgid "Then we could form the following query to analyze the oneway streets for errors."
-msgstr ""
-
-#: ../../src/tutorial/analytics.rst:127
-# f8855d2f89da468a9da80b20a8c44e36
-msgid "Typically these problems are generated by a break in the network, the one way direction set wrong, maybe an error related to z-levels or a network that is not properly noded."
-msgstr ""
-
-#: ../../src/tutorial/analytics.rst:129
-# 33d2e84857b24394a979e99c4000e306
-msgid "The above tools do not detect all network issues, but they will identify some common problems. There are other problems that are hard to detect because they are more global in nature like multiple disconnected networks. Think of an island with a road network that is not connected to the mainland network because the bridge or ferry routes are missing."
-msgstr ""
-
-#: ../../src/tutorial/analytics.rst:133
-# 61e250584bc743fca3a42d23020f0e12
-msgid "See Also"
-msgstr ""
-
-#: ../../src/tutorial/analytics.rst:135
-# 647dd767dc4d4bc1bc168c0b8fa0f32a
-msgid ":ref:`pgr_analyze_graph`"
-msgstr ""
-
-#: ../../src/tutorial/analytics.rst:136
-# 95b8ac2db9134eaf8736d9fc322f0c0d
-msgid ":ref:`pgr_analyze_oneway`"
-msgstr ""
-
-#: ../../src/tutorial/analytics.rst:137
-# 5d1cc8446c2d4efcb5745f3d53c408f4
-msgid ":ref:`pgr_node_network`"
-msgstr ""
-
diff --git a/doc/i18n/pot/doc/src/tutorial/custom_query.pot b/doc/i18n/pot/doc/src/tutorial/custom_query.pot
deleted file mode 100644
index f256a02..0000000
--- a/doc/i18n/pot/doc/src/tutorial/custom_query.pot
+++ /dev/null
@@ -1,134 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../src/tutorial/custom_query.rst:13
-# 0d35651661ad4f858cb0a34e41504644
-msgid "Custom Query"
-msgstr ""
-
-#: ../../src/tutorial/custom_query.rst:17
-# 35ecd2199cb543df958a1b69df6001cd
-msgid "In general, the routing algorithms need an SQL query that contain one or more of the following required columns with the preferred type:"
-msgstr ""
-
-#: ../../src/tutorial/custom_query.rst:19
-#: ../../src/tutorial/custom_query.rst:20
-#: ../../src/tutorial/custom_query.rst:21
-# df79ebffa3e24c64a769def6713625c2
-# 8aa6b9e6ab5844ea89ca17851ba304c6
-# 5f0ba70a9bd448c28141574853b77644
-msgid "int4"
-msgstr ""
-
-#: ../../src/tutorial/custom_query.rst:22
-#: ../../src/tutorial/custom_query.rst:23
-#: ../../src/tutorial/custom_query.rst:24
-#: ../../src/tutorial/custom_query.rst:25
-#: ../../src/tutorial/custom_query.rst:26
-#: ../../src/tutorial/custom_query.rst:27
-#: ../../src/tutorial/custom_query.rst:28
-#: ../../src/tutorial/custom_query.rst:29
-#: ../../src/tutorial/custom_query.rst:63
-# a0153d07ce2b41009e4b5d6be32b0113
-# 695127ba869b4a68924ac21d8b7908ed
-# acf4d08a488b400998d912b1501581f1
-# 3c7f3d7ca73c40418bc24640aca03e9f
-# be5a966e207941768a651f4aceab3e66
-# 3dd77ca625554b8fab19383394cb790e
-# fe17758a58f2485ba1393a783c268730
-# 9a503c547fb74143a15857072b67370c
-# fa4dd4b0d79a46b4a40f533fee862357
-msgid "float8"
-msgstr ""
-
-#: ../../src/tutorial/custom_query.rst:31
-# 14cba07465b843d8b1fbc4d7cf295194
-msgid "When the edge table has the mentioned columns, the following SQL queries can be used."
-msgstr ""
-
-#: ../../src/tutorial/custom_query.rst:39
-# 0f72c087756242bdb579449eb19aa0a1
-msgid "When the edge table has a different name to represent the required columns:"
-msgstr ""
-
-#: ../../src/tutorial/custom_query.rst:51
-# b09b0a56941346de90e0e0fe671e0df4
-msgid "The topology functions use the same names for ``id``, ``source`` and ``target`` columns of the edge table, The fowllowing parameters have as default value:"
-msgstr ""
-
-#: ../../src/tutorial/custom_query.rst:53
-# 0b0cd0e18e4d4c1b8680d7726f3260b4
-msgid "int4 Default ``id``"
-msgstr ""
-
-#: ../../src/tutorial/custom_query.rst:54
-# 184a43915fa04e1f91123985115ab7f5
-msgid "int4 Default ``source``"
-msgstr ""
-
-#: ../../src/tutorial/custom_query.rst:55
-# f0c709cc69b74d3a94b367634fad8f32
-msgid "int4 Default ``target``"
-msgstr ""
-
-#: ../../src/tutorial/custom_query.rst:56
-# 04a2a3e17a184f4f97663a809d588e77
-msgid "text Default ``the_geom``"
-msgstr ""
-
-#: ../../src/tutorial/custom_query.rst:57
-# a9676dced4a04ac883b7112054a08e09
-msgid "text Default ``oneway``"
-msgstr ""
-
-#: ../../src/tutorial/custom_query.rst:58
-# fe38ae596cf74c5d9b7d679cc1921e89
-msgid "text Default ``true`` to indicate all rows (this is not a column)"
-msgstr ""
-
-#: ../../src/tutorial/custom_query.rst:60
-# 7212cb1856ac4813acb06c3bfcdfce8c
-msgid "The following parameters do not have a default value and when used they have to be inserted in strict order:"
-msgstr ""
-
-#: ../../src/tutorial/custom_query.rst:62
-# 7e71e5b2bd214853a82981bc944088ff
-msgid "text"
-msgstr ""
-
-#: ../../src/tutorial/custom_query.rst:64
-#: ../../src/tutorial/custom_query.rst:65
-#: ../../src/tutorial/custom_query.rst:66
-#: ../../src/tutorial/custom_query.rst:67
-# dc1ed8e7c1d64346ae6e9b01214e3de8
-# 9be844ba33614716987e0875640d66b4
-# c8bbf392974b441781647845cc302f18
-# 1316d53ebfcf42dcbd880ff9ce33cfb3
-msgid "text[]"
-msgstr ""
-
-#: ../../src/tutorial/custom_query.rst:69
-# 134fff020b0e48cc828612cd5449b795
-msgid "When the columns required have the default names this can be used (pgr_func is to represent a topology function)"
-msgstr ""
-
-#: ../../src/tutorial/custom_query.rst:79
-# 6e39eee011a646699f5a33886015c080
-msgid "When the columns required do not have the default names its strongly recomended to use the *named notation*."
-msgstr ""
-
diff --git a/doc/i18n/pot/doc/src/tutorial/custom_wrapper.pot b/doc/i18n/pot/doc/src/tutorial/custom_wrapper.pot
deleted file mode 100644
index 5bfe404..0000000
--- a/doc/i18n/pot/doc/src/tutorial/custom_wrapper.pot
+++ /dev/null
@@ -1,63 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../src/tutorial/custom_wrapper.rst:13
-# 70bd07ac44fb4ee79a8480875ef3110e
-msgid "User's wrapper contributions"
-msgstr ""
-
-#: ../../src/tutorial/custom_wrapper.rst:16
-# bd53876fbf0449e5bd8c13e28f434fb1
-msgid "How to contribute."
-msgstr ""
-
-#: ../../src/tutorial/custom_wrapper.rst:17
-# f1ebeeb384cb46b28d7ad725d2a043ab
-msgid "Use an issue tracker (see :ref:`support`) with a title containing: *Proposing a wrapper: Mywrappername*. The body will contain:"
-msgstr ""
-
-#: ../../src/tutorial/custom_wrapper.rst:19
-# 9dd8bc946b7542289e73645f5afc3e30
-msgid "author:  Required"
-msgstr ""
-
-#: ../../src/tutorial/custom_wrapper.rst:20
-# 381e313e46bb44188e812ba5e24218e7
-msgid "mail: if you are subscribed to the developers list this is not necessary"
-msgstr ""
-
-#: ../../src/tutorial/custom_wrapper.rst:21
-# f902c8b242f448108cde6e8cc8364551
-msgid "date: Date posted"
-msgstr ""
-
-#: ../../src/tutorial/custom_wrapper.rst:22
-# 5de2adde9c234b50a567041468e1df7e
-msgid "comments and code:  using reStructuredText format"
-msgstr ""
-
-#: ../../src/tutorial/custom_wrapper.rst:24
-# dc75ff6fc3cb4f709aecbe418998349f
-msgid "Any contact with the author will be done using the developers mailing list. The pgRouting team will evaluate the wrapper and will be included it in this section when approved."
-msgstr ""
-
-#: ../../src/tutorial/custom_wrapper.rst:27
-# 2e5442c3cb56493b850e662432a8a21b
-msgid "*No contributions at this time*"
-msgstr ""
-
diff --git a/doc/i18n/pot/doc/src/tutorial/index.pot b/doc/i18n/pot/doc/src/tutorial/index.pot
deleted file mode 100644
index 32f8c49..0000000
--- a/doc/i18n/pot/doc/src/tutorial/index.pot
+++ /dev/null
@@ -1,98 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../src/tutorial/index.rst:13
-# d134467705d24dd889eeceb01d29140d
-msgid "Tutorial"
-msgstr ""
-
-#: ../../src/tutorial/index.rst:16
-# c68e7fecbca2416db843eaf5565a6f3c
-msgid ":ref:`Getting started <tutorial>`"
-msgstr ""
-
-#: ../../src/tutorial/index.rst:18
-# cc96da12a2c4416c82484e405d456d4d
-msgid "How to create a database to use for our project"
-msgstr ""
-
-#: ../../src/tutorial/index.rst:19
-# 7349527e7c14483c9b1dd48348f05bab
-msgid "How to load some data"
-msgstr ""
-
-#: ../../src/tutorial/index.rst:20
-# d1613ad3f5144117891cf0982e5b1b80
-msgid "How to build a topology"
-msgstr ""
-
-#: ../../src/tutorial/index.rst:21
-# 9926f0ac6f1448d49435649536a92a91
-msgid "How to check your graph for errors"
-msgstr ""
-
-#: ../../src/tutorial/index.rst:22
-# 1a3ef54deea3465195f62e76e78c483d
-msgid "How to compute a route"
-msgstr ""
-
-#: ../../src/tutorial/index.rst:23
-# 7e235afaf23844e0b9c354077654e28d
-msgid "How to use other tools to view your graph and route"
-msgstr ""
-
-#: ../../src/tutorial/index.rst:24
-# cfb2e01855bf4f35893b40112946b440
-msgid "How to create a web app"
-msgstr ""
-
-#: ../../src/tutorial/index.rst:26
-# d7d7a45d9ad7444c84a7de3d75b9f152
-msgid "Advanced Topics"
-msgstr ""
-
-#: ../../src/tutorial/index.rst:28
-# 19fb3ec9e3c24a30b3efabf1bfa5988f
-msgid ":ref:`topology` for an overview of a topology for routing algorithms."
-msgstr ""
-
-#: ../../src/tutorial/index.rst:29
-# b9a5be5e408a47679c5601e9d22afcd3
-msgid ":ref:`analytics` for an overview of the analysis of a graph."
-msgstr ""
-
-#: ../../src/tutorial/index.rst:30
-# 901afb3045474e88943651b269a06c24
-msgid ":ref:`custom_query` that is used in the routing algorithms."
-msgstr ""
-
-#: ../../src/tutorial/index.rst:31
-# 4d2e839290f9465292557d8eaf6cf779
-msgid ":ref:`performance` to improve your performance."
-msgstr ""
-
-#: ../../src/tutorial/index.rst:32
-# b2b14b6dcae64a5287a6032776296697
-msgid ":ref:`custom_wrapper` to colaborate with a wrapper."
-msgstr ""
-
-#: ../../src/tutorial/index.rst:33
-# 8c292a3727454de69e79bb6857ce3172
-msgid ":ref:`recipes` to colaborate with a recipe."
-msgstr ""
-
diff --git a/doc/i18n/pot/doc/src/tutorial/performance.pot b/doc/i18n/pot/doc/src/tutorial/performance.pot
deleted file mode 100644
index 6255e6d..0000000
--- a/doc/i18n/pot/doc/src/tutorial/performance.pot
+++ /dev/null
@@ -1,53 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../src/tutorial/performance.rst:13
-# dcdbd525f2b248ecab7ac1feaffe77ef
-msgid "Performance Tips"
-msgstr ""
-
-#: ../../src/tutorial/performance.rst:16
-# 301a27864ab84e54bbb66c299f3a4b0d
-msgid "When \"you know\" that you are going to remove a set of edges from the edges table, and without those edges you are going to use a routing function you can do the following:"
-msgstr ""
-
-#: ../../src/tutorial/performance.rst:18
-# 09a0f58bd304468caf8497a339d2bfea
-msgid "Analize the new topology based on the actual topology:"
-msgstr ""
-
-#: ../../src/tutorial/performance.rst:24
-# fa006eadd05447759f7070fb8d7152b3
-msgid "Or create a new topology if the change is permanent:"
-msgstr ""
-
-#: ../../src/tutorial/performance.rst:31
-# c7ac177f8c31416a821a69f8e3ecdd93
-msgid "Use an SQL that \"removes\" the edges in the routing function"
-msgstr ""
-
-#: ../../src/tutorial/performance.rst:37
-# 36aa057dbf6a45cd83e18d532a439ec3
-msgid "When \"you know\" that the route will not go out of a particular area, to speed up the process you can use a more complex SQL query like"
-msgstr ""
-
-#: ../../src/tutorial/performance.rst:46
-# d1f505a12a444c9ea717d68a92f694d2
-msgid "Note that the  same condition ``id < 17`` is used in all cases."
-msgstr ""
-
diff --git a/doc/i18n/pot/doc/src/tutorial/recipes.pot b/doc/i18n/pot/doc/src/tutorial/recipes.pot
deleted file mode 100644
index 3ee0bde..0000000
--- a/doc/i18n/pot/doc/src/tutorial/recipes.pot
+++ /dev/null
@@ -1,78 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../src/tutorial/recipes.rst:13
-# a4969d019125422fb821d4f6a75f8f2a
-msgid "Use's Recipes contributions"
-msgstr ""
-
-#: ../../src/tutorial/recipes.rst:16
-# e2c90e0779584569bedb85cec2f79fec
-msgid "How to contribute."
-msgstr ""
-
-#: ../../src/tutorial/recipes.rst:17
-# c6e5a3af14f9478e96206dea6dcf7d79
-msgid "Use an issue tracker (see :ref:`support`) with a title containing: *Proposing a Recipe: Myrecipename*. The body will contain:"
-msgstr ""
-
-#: ../../src/tutorial/recipes.rst:19
-# 6d7180b2ba0e4c83a73d992977c51068
-msgid "author:  Required"
-msgstr ""
-
-#: ../../src/tutorial/recipes.rst:20
-# ac7ecd988bf94c2cbd16f682a1bb9ecc
-msgid "mail: if you are subscribed to the developers list this is not necessary"
-msgstr ""
-
-#: ../../src/tutorial/recipes.rst:21
-# 63e56712602845b4b566be2ad234e135
-msgid "date: Date posted"
-msgstr ""
-
-#: ../../src/tutorial/recipes.rst:22
-# ebc86c53595a4fd7adfa779d57fd7ef9
-msgid "comments and code:  using reStructuredText format"
-msgstr ""
-
-#: ../../src/tutorial/recipes.rst:24
-# 0600690120844238bc1a262ba19bfd0e
-msgid "Any contact with the author will be done using the developers mailing list. The pgRouting team will evaluate the recipe and will be included it in this section when approved."
-msgstr ""
-
-#: ../../src/tutorial/recipes.rst:27
-# a361bdb0686a45e6bec61b0e6828dc1d
-msgid "Comparing topology of a unnoded network with a noded network"
-msgstr ""
-
-#: ../../src/tutorial/recipes.rst:30
-# 91269bc92dfc4815890277a0e7edb23d
-msgid "pgRouting team."
-msgstr ""
-
-#: ../../src/tutorial/recipes.rst:32
-# d04425f05c0b4f55b7ff883bda1a0347
-msgid "This recipe uses the :ref:`sampledata` network."
-msgstr ""
-
-#: ../../src/tutorial/recipes.rst:42
-# e1240db6ffb9479a9cb3eee9f888e53f
-msgid "*No more contributions*"
-msgstr ""
-
diff --git a/doc/i18n/pot/doc/src/tutorial/topology.pot b/doc/i18n/pot/doc/src/tutorial/topology.pot
deleted file mode 100644
index c45e33a..0000000
--- a/doc/i18n/pot/doc/src/tutorial/topology.pot
+++ /dev/null
@@ -1,88 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../src/tutorial/topology.rst:13
-# d9123d5e4c2c469e9a88e05bb8badeec
-msgid "Routing Topology"
-msgstr ""
-
-#: ../../src/tutorial/topology.rst:15
-# 7cb7af56f29a423db4d384080316ca7e
-msgid "Stephen Woodbridge <woodbri at swoodbridge.com>"
-msgstr ""
-
-#: ../../src/tutorial/topology.rst:16
-# bb80b423989c42f3b33b31563cfe5399
-msgid "Stephen Woodbridge. The source code is released under the MIT-X license."
-msgstr ""
-
-#: ../../src/tutorial/topology.rst:20
-# 70c362c71bb5442c8809b3ac990167d6
-msgid "Overview"
-msgstr ""
-
-#: ../../src/tutorial/topology.rst:22
-# 85ea125648d946cc9fe6880e57547b1f
-msgid "Typically when GIS files are loaded into the data database for use with pgRouting they do not have topology information associated with them. To create a useful topology the data needs to be \"noded\". This means that where two or more roads form an intersection there it needs to be a node at the intersection and all the road segments need to be broken at the intersection, assuming that you can navigate from any of these segments to any other segment via that intersection."
-msgstr ""
-
-#: ../../src/tutorial/topology.rst:24
-# 9ee51e22158d448cae68e2a9fe09fa89
-msgid "You can use the :ref:`graph analysis functions <analytics>` to help you see where you might have topology problems in your data. If you need to node your data, we also have a function :ref:`pgr_nodeNetwork() <pgr_node_network>` that might work for you. This function splits ALL crossing segments and nodes them. There are some cases where this might NOT be the right thing to do."
-msgstr ""
-
-#: ../../src/tutorial/topology.rst:26
-# 8f5e5be5d8eb4d75a4e8b9a01dea0077
-msgid "For example, when you have an overpass and underpass intersection, you do not want these noded, but pgr_nodeNetwork does not know that is the case and will node them which is not good because then the router will be able to turn off the overpass onto the underpass like it was a flat 2D intersection. To deal with this problem some data sets use z-levels at these types of intersections and other data might not node these intersection which would be ok."
-msgstr ""
-
-#: ../../src/tutorial/topology.rst:28
-# 2171e350c2c644518b87fa1e1df08cdd
-msgid "For those cases where topology needs to be added the following functions may be useful. One way to prep the data for pgRouting is to add the following columns to your table and then populate them as appropriate. This example makes a lot of assumption like that you original data tables already has certain columns in it like ``one_way``, ``fcc``, and possibly others and that they contain specific data values. This is only to give you an idea of what you can do with your data."
-msgstr ""
-
-#: ../../src/tutorial/topology.rst:49
-# 4e558a29e8fd412bbc4cedfecb8d484b
-msgid "The function :ref:`pgr_createTopology() <pgr_create_topology>` will create the ``vertices_tmp`` table and populate the ``source`` and ``target`` columns. The following example populated the remaining columns. In this example, the ``fcc`` column contains feature class code and the ``CASE`` statements converts it to an average speed."
-msgstr ""
-
-#: ../../src/tutorial/topology.rst:112
-# 62bfa0ef907946359864eb05df3b9bae
-msgid "Now your database should be ready to use any (most?) of the pgRouting algorithms."
-msgstr ""
-
-#: ../../src/tutorial/topology.rst:116
-# ba946c6a5f8f456ca75ee18452a2c4cb
-msgid "See Also"
-msgstr ""
-
-#: ../../src/tutorial/topology.rst:118
-# e327c1e45b424b1fab4fa5271b4a914d
-msgid ":ref:`pgr_create_topology`"
-msgstr ""
-
-#: ../../src/tutorial/topology.rst:119
-# c91a15fb424f4b88a868e392e0501112
-msgid ":ref:`pgr_node_network`"
-msgstr ""
-
-#: ../../src/tutorial/topology.rst:120
-# 4f51208bf997435ab050ba39c2161b68
-msgid ":ref:`pgr_point_to_id`"
-msgstr ""
-
diff --git a/doc/i18n/pot/doc/src/tutorial/tutorial.pot b/doc/i18n/pot/doc/src/tutorial/tutorial.pot
deleted file mode 100644
index b8c1275..0000000
--- a/doc/i18n/pot/doc/src/tutorial/tutorial.pot
+++ /dev/null
@@ -1,174 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../src/tutorial/tutorial.rst:13
-# 4fa427625676477cb1b87dd1d73d66cb
-msgid "Getting Started"
-msgstr ""
-
-#: ../../src/tutorial/tutorial.rst:15
-# dbb966efab874ff1b8a0476e0fbc52c1
-msgid "This is a simple guide to walk you through the steps of getting started with pgRouting. In this guide we will cover:"
-msgstr ""
-
-#: ../../src/tutorial/tutorial.rst:18
-#: ../../src/tutorial/tutorial.rst:27
-# b1b1339701754942b16ae3f85df3aa69
-# 5c9bbf6d7d8e4f698f1671a72db3bf46
-msgid "How to create a database to use for our project"
-msgstr ""
-
-#: ../../src/tutorial/tutorial.rst:19
-#: ../../src/tutorial/tutorial.rst:61
-# 64e5375efb394ceb9386dfe70c7ba356
-# a2fa349f8f6c4078b8b6d8008306d92d
-msgid "How to load some data"
-msgstr ""
-
-#: ../../src/tutorial/tutorial.rst:20
-#: ../../src/tutorial/tutorial.rst:77
-# e00e69310537477596b4a48d5f281df7
-# 9f9463792ade4d4b942b9d333b4366d9
-msgid "How to build a topology"
-msgstr ""
-
-#: ../../src/tutorial/tutorial.rst:21
-#: ../../src/tutorial/tutorial.rst:93
-# 4622aba512d2427db82e14a2c53eb5ea
-# a301a0c0a02f40089f5cbb347b3b6668
-msgid "How to check your graph for errors"
-msgstr ""
-
-#: ../../src/tutorial/tutorial.rst:22
-#: ../../src/tutorial/tutorial.rst:121
-# 45dc9701dc5f4213a7295611b6b7811f
-# b3649bed48ba4412b15dc6499d7e86eb
-msgid "How to compute a route"
-msgstr ""
-
-#: ../../src/tutorial/tutorial.rst:23
-#: ../../src/tutorial/tutorial.rst:142
-# e1902906d1aa4c9aa36eb36dcba81cd7
-# f43de5f970c64d078f4fffcff081e259
-msgid "How to use other tools to view your graph and route"
-msgstr ""
-
-#: ../../src/tutorial/tutorial.rst:24
-#: ../../src/tutorial/tutorial.rst:147
-# dbaf43eea3784d8a8266dcc29fef55c9
-# fd2b9f1faf90467396554662fdbf8ef2
-msgid "How to create a web app"
-msgstr ""
-
-#: ../../src/tutorial/tutorial.rst:29
-# 96187cb600b24f0da3e47a188f10f6e5
-msgid "The first thing we need to do is create a database and load pgrouting in the database. Typically you will create a database for each project. Once you have a database to work in, your can load your data and build your application in that database. This makes it easy to move your project later if you want to to say a production server."
-msgstr ""
-
-#: ../../src/tutorial/tutorial.rst:35
-# e43130bd40e3494b9be318f73b9725e6
-msgid "For Postgresql 9.1 and later versions"
-msgstr ""
-
-#: ../../src/tutorial/tutorial.rst:44
-# d6b87512844f4305b2d26cb7a8ff5d19
-msgid "For older versions of postgresql"
-msgstr ""
-
-#: ../../src/tutorial/tutorial.rst:63
-# c3044d368fab44ab8b786cc57e5c193a
-msgid "How you load your data will depend in what form it comes it. There are various OpenSource tools that can help you, like:"
-msgstr ""
-
-#: ../../src/tutorial/tutorial.rst:66
-# c6a67a06b55e46568d65fa85269dbd26
-msgid "this is the postgresql shapefile loader"
-msgstr ""
-
-#: ../../src/tutorial/tutorial.rst:67
-# 65d939a281214360b0df8df9a45f4a91
-msgid "this is a vector data conversion utility"
-msgstr ""
-
-#: ../../src/tutorial/tutorial.rst:68
-# 80cdc1e6692a4276af3a243af69fb17c
-msgid "this is a tool for loading OSM data into postgresql"
-msgstr ""
-
-#: ../../src/tutorial/tutorial.rst:70
-# d41410c64b974f29b25ee3bb886255cc
-msgid "So these tools and probably others will allow you to read vector data and and can load that data into your database as a table of some kind. At this point you need to know a little about your data structure and content. One easy way to browse you data table is with pgAdmin3 or phpPgAdmin."
-msgstr ""
-
-#: ../../src/tutorial/tutorial.rst:79
-# 30b9e6e2ca104b7f9ddd16e92c5ddd3b
-msgid "Next we need to build a topology for our street data. What this means is that for any given edge in your street data the ends of that edge will be connected to a unique node and to other edges that are also connected to that same unique node. Once all the edges are connected to nodes we have a graph that can be used for routing with pgrouting. We provide a tools the will help with this:"
-msgstr ""
-
-#: ../../src/tutorial/tutorial.rst:89
-# c03da0290952410e897a52c691bb2501
-msgid "See :ref:`pgr_create_topology` for more information."
-msgstr ""
-
-#: ../../src/tutorial/tutorial.rst:95
-# fba9ad34b68e4bf581d28a5aec85f701
-msgid "There are lots of possible sources for errors in a graph. The data that you started with may not have been designed with routing in mind. A graph as some very specific requirments. One it that it is *NODED*, this means that except for some very specific use cases, each road segments starts and ends at a node and that in general is does not cross another road segment that it should be connected to."
-msgstr ""
-
-#: ../../src/tutorial/tutorial.rst:102
-# 9a7d951c3c044167add56c2ba01cc504
-msgid "There can be other errors like the direction of a one-way street being entered in the wrong direction. We do not have tools to search for all possible errors but we have some basic tools that might help."
-msgstr ""
-
-#: ../../src/tutorial/tutorial.rst:113
-# a28be3d4b3854387a93f6b9a4df34736
-msgid "See :ref:`analytics` for more information."
-msgstr ""
-
-#: ../../src/tutorial/tutorial.rst:115
-# 45de2e4d69e84c63b389b8e835f5e070
-msgid "If your data needs to be *NODED*, we have a tool that can help for that also."
-msgstr ""
-
-#: ../../src/tutorial/tutorial.rst:117
-# 5ac8361d061f47a2a75c67fb35cb72c3
-msgid "See :ref:`pgr_node_network` for more information."
-msgstr ""
-
-#: ../../src/tutorial/tutorial.rst:123
-# b63410ea77944bfbbf97cf74378e81f7
-msgid "Once you have all the prep work done above, computing a route is fairly easy. We have a lot of different algorithms but they can work with your prepared road network. The general form of a route query is:"
-msgstr ""
-
-#: ../../src/tutorial/tutorial.rst:131
-# 8c2139cb15374d8493e9d357b0db0a95
-msgid "As you can see this is fairly straight forward and you can look and the specific algorithms for the details on how to use them. What you get as a result from these queries will be a set of record of type :ref:`type_cost_result` or :ref:`type_geom_result`. These results have information like edge id and/or the node id along with the cost or geometry for the step in the path from *start* to *end*. Using the ids you can join these result back to your edge table to get more informatio [...]
-msgstr ""
-
-#: ../../src/tutorial/tutorial.rst:139
-# 1ee9ba41f235467bbdf850b6814d9821
-msgid "See also :ref:`type_cost_result` and :ref:`type_geom_result`."
-msgstr ""
-
-#: ../../src/tutorial/tutorial.rst:144
-#: ../../src/tutorial/tutorial.rst:149
-# 7834933387a54412bfa93b3bd5910012
-# 5ed47f57bd5b4f80b06008666fc961b3
-msgid "TBD"
-msgstr ""
-
diff --git a/doc/i18n/pot/src/apsp_johnson/doc/index.pot b/doc/i18n/pot/src/apsp_johnson/doc/index.pot
deleted file mode 100644
index c2bc4d2..0000000
--- a/doc/i18n/pot/src/apsp_johnson/doc/index.pot
+++ /dev/null
@@ -1,133 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/apsp_johnson/doc/index.rst:13
-# 88a2ec1d2eb44607a0dcec23c001f89f
-msgid "pgr_apspJohnson - All Pairs Shortest Path, Johnson's Algorithm"
-msgstr ""
-
-#: ../../../src/apsp_johnson/doc/index.rst:20
-# 2f8388c94505467cbaff2676afaa6256
-msgid "Name"
-msgstr ""
-
-#: ../../../src/apsp_johnson/doc/index.rst:22
-# 17a5236a6aca4fadaf3096c0518dec09
-msgid "``pgr_apspJohnson`` - Returns all costs for each pair of nodes in the graph."
-msgstr ""
-
-#: ../../../src/apsp_johnson/doc/index.rst:26
-# 3618c952a36b4852a671f2f7b9a3ab14
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/apsp_johnson/doc/index.rst:28
-# c277608a374e444c8d7e5c5034e03f73
-msgid "Johnson's algorithm is a way to find the shortest paths between all pairs of vertices in a sparse, edge weighted, directed graph. Returns a set of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows for every pair of nodes in the graph."
-msgstr ""
-
-#: ../../../src/apsp_johnson/doc/index.rst:36
-# cbecd97ba97d4faba51654305d98d1e9
-msgid "Description"
-msgstr ""
-
-#: ../../../src/apsp_johnson/doc/index.rst:38
-# 04393824e2034fda8655aac415d76c11
-msgid "a SQL query that should return the edges for the graph that will be analyzed:"
-msgstr ""
-
-#: ../../../src/apsp_johnson/doc/index.rst:44
-# 3e25a6e034ab42e8ad52a1bdc54d8811
-msgid "``int4`` identifier of the source vertex for this edge"
-msgstr ""
-
-#: ../../../src/apsp_johnson/doc/index.rst:45
-# 392c3bd6824e4bb6a2d440eb658105f6
-msgid "``int4`` identifier of the target vertex for this edge"
-msgstr ""
-
-#: ../../../src/apsp_johnson/doc/index.rst:46
-# e0f466d3f95444998039171e00e7f179
-msgid "``float8`` a positive value for the cost to traverse this edge"
-msgstr ""
-
-#: ../../../src/apsp_johnson/doc/index.rst:48
-# e3a9871c7b9843528244c29cbcf2c3fb
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr ""
-
-#: ../../../src/apsp_johnson/doc/index.rst:50
-# 81c0db551a0f496ea7b9db840c8df97b
-msgid "row sequence"
-msgstr ""
-
-#: ../../../src/apsp_johnson/doc/index.rst:51
-# b80c00eeb0c84881a5ab4b6616dadca0
-msgid "source node ID"
-msgstr ""
-
-#: ../../../src/apsp_johnson/doc/index.rst:52
-# 329100ef2f684ef4b1e38ee686694f4d
-msgid "target node ID"
-msgstr ""
-
-#: ../../../src/apsp_johnson/doc/index.rst:53
-# 3c805361256c4e63ab2a9d0e892c5edd
-msgid "cost to traverse from ``id1`` to ``id2``"
-msgstr ""
-
-#: ../../../src/apsp_johnson/doc/index.rst:56
-# 760bf1e4ab2843dcb5b31cfdc927c722
-msgid "History"
-msgstr ""
-
-#: ../../../src/apsp_johnson/doc/index.rst:57
-# 63a884de17654ec6b1b2d13b172649b6
-msgid "New in version 2.0.0"
-msgstr ""
-
-#: ../../../src/apsp_johnson/doc/index.rst:61
-# de09c9bbab4747879ae4dccc40f14ee6
-msgid "Examples"
-msgstr ""
-
-#: ../../../src/apsp_johnson/doc/index.rst:78
-# e5dc5bd74bac4bca9c72ffeebd06934c
-msgid "The query uses the :ref:`sampledata` network."
-msgstr ""
-
-#: ../../../src/apsp_johnson/doc/index.rst:82
-# be0394087e64497fb6149bab9d484a84
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/apsp_johnson/doc/index.rst:84
-# b8020a9b49ea4c51804260cb16f55ad5
-msgid ":ref:`type_cost_result`"
-msgstr ""
-
-#: ../../../src/apsp_johnson/doc/index.rst:85
-# 0f1298616a094d49b8455587893aac05
-msgid ":ref:`pgr_apsp_warshall`"
-msgstr ""
-
-#: ../../../src/apsp_johnson/doc/index.rst:86
-# d28e3419b9164f73b602f91ba5e564e6
-msgid "http://en.wikipedia.org/wiki/Johnson%27s_algorithm"
-msgstr ""
-
diff --git a/doc/i18n/pot/src/apsp_warshall/doc/index.pot b/doc/i18n/pot/src/apsp_warshall/doc/index.pot
deleted file mode 100644
index 0fc03ba..0000000
--- a/doc/i18n/pot/src/apsp_warshall/doc/index.pot
+++ /dev/null
@@ -1,148 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/apsp_warshall/doc/index.rst:13
-# 7add0991b1ee4cf9bc2449e62cf04ccf
-msgid "pgr_apspWarshall - All Pairs Shortest Path, Floyd-Warshall Algorithm"
-msgstr ""
-
-#: ../../../src/apsp_warshall/doc/index.rst:20
-# 6fa2ac07e7ab489d9be3396059e30262
-msgid "Name"
-msgstr ""
-
-#: ../../../src/apsp_warshall/doc/index.rst:22
-# be59fcda2b174e958759bacd6a5eac29
-msgid "``pgr_apspWarshall`` - Returns all costs for each pair of nodes in the graph."
-msgstr ""
-
-#: ../../../src/apsp_warshall/doc/index.rst:26
-# 9b1c345344de48c5a7de376fb938b2bc
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/apsp_warshall/doc/index.rst:28
-# a4bfac99a1434f7ba1b18f928a646f03
-msgid "The Floyd-Warshall algorithm (also known as Floyd's algorithm and other names) is a graph analysis algorithm for finding the shortest paths between all pairs of nodes in a weighted graph. Returns a set of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows for every pair of nodes in the graph."
-msgstr ""
-
-#: ../../../src/apsp_warshall/doc/index.rst:36
-# 73b7f90125c84f4c91ed8969ccd69073
-msgid "Description"
-msgstr ""
-
-#: ../../../src/apsp_warshall/doc/index.rst:38
-# 7687d12f83fe4e678c0e1586c9cc637f
-msgid "a SQL query that should return the edges for the graph that will be analyzed:"
-msgstr ""
-
-#: ../../../src/apsp_warshall/doc/index.rst:44
-# 4e716a827d30422abf5601ab943b1d75
-msgid "``int4`` identifier of the edge"
-msgstr ""
-
-#: ../../../src/apsp_warshall/doc/index.rst:45
-# 435999fb331c43d19f27443aaae1cd69
-msgid "``int4`` identifier of the source vertex for this edge"
-msgstr ""
-
-#: ../../../src/apsp_warshall/doc/index.rst:46
-# b9639050a9564c17a16b7bf16707da5c
-msgid "``int4`` identifier of the target vertex for this edge"
-msgstr ""
-
-#: ../../../src/apsp_warshall/doc/index.rst:47
-# 27bb14f92a1944e28848eac6b641ecc9
-msgid "``float8`` a positive value for the cost to traverse this edge"
-msgstr ""
-
-#: ../../../src/apsp_warshall/doc/index.rst:49
-# 04cfdb319da040bebe2de7328a0216cb
-msgid "``true`` if the graph is directed"
-msgstr ""
-
-#: ../../../src/apsp_warshall/doc/index.rst:50
-# 6efa1b6d77a048dd8d4d578541690843
-msgid "if ``true``, the ``reverse_cost`` column of the SQL generated set of rows will be used for the cost of the traversal of the edge in the opposite direction."
-msgstr ""
-
-#: ../../../src/apsp_warshall/doc/index.rst:52
-# 8173dc4688734aa8966a3fbdc93d3522
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr ""
-
-#: ../../../src/apsp_warshall/doc/index.rst:54
-# 64866735e3e9480d98052558054d9763
-msgid "row sequence"
-msgstr ""
-
-#: ../../../src/apsp_warshall/doc/index.rst:55
-# dbe11772c5064f4e8802bb2c3725ba73
-msgid "source node ID"
-msgstr ""
-
-#: ../../../src/apsp_warshall/doc/index.rst:56
-# b43dd7b099604f21840c8dd646206182
-msgid "target node ID"
-msgstr ""
-
-#: ../../../src/apsp_warshall/doc/index.rst:57
-# c1e3f1144400411f9a33ef40575436bb
-msgid "cost to traverse from ``id1`` to ``id2``"
-msgstr ""
-
-#: ../../../src/apsp_warshall/doc/index.rst:61
-# 547f485bb8fb4073a528b42603590799
-msgid "History"
-msgstr ""
-
-#: ../../../src/apsp_warshall/doc/index.rst:62
-# 31e70bb2a9904407ae43d844f4642fe4
-msgid "New in version 2.0.0"
-msgstr ""
-
-#: ../../../src/apsp_warshall/doc/index.rst:66
-# e9715dc4ef1f4633957589e9abeb3ba7
-msgid "Examples"
-msgstr ""
-
-#: ../../../src/apsp_warshall/doc/index.rst:84
-# d4d26a7ba28d42ca8e874a54942bc42a
-msgid "The query uses the :ref:`sampledata` network."
-msgstr ""
-
-#: ../../../src/apsp_warshall/doc/index.rst:88
-# 9aa2f0f54f6b47ca893a2d1987631a01
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/apsp_warshall/doc/index.rst:90
-# cdc67360bcf1411fa86355bf3191d741
-msgid ":ref:`type_cost_result`"
-msgstr ""
-
-#: ../../../src/apsp_warshall/doc/index.rst:91
-# eb60bcbf87dd42fe84e7bc462bd0ae92
-msgid ":ref:`pgr_apsp_johnson`"
-msgstr ""
-
-#: ../../../src/apsp_warshall/doc/index.rst:92
-# d94fd234d41b4421a447cb6c532d5c9a
-msgid "http://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall_algorithm"
-msgstr ""
-
diff --git a/doc/i18n/pot/src/astar/doc/index.pot b/doc/i18n/pot/src/astar/doc/index.pot
deleted file mode 100644
index 2cc3b9e..0000000
--- a/doc/i18n/pot/src/astar/doc/index.pot
+++ /dev/null
@@ -1,188 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/astar/doc/index.rst:13
-# 6e1e586d213443b784008328909e5ece
-msgid "pgr_astar - Shortest Path A*"
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:20
-# 2facf0f31f2146489701757746e8a64a
-msgid "Name"
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:22
-# 23aacea288c342798e40cf0e9ba814c9
-msgid "``pgr_astar`` — Returns the shortest path using A* algorithm."
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:26
-# acf9bf94f29e4b06b7484e750b4b90a2
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:28
-# ef84d81b818b48008d29bc99965a6777
-msgid "The A* (pronounced \"A Star\") algorithm is based on Dijkstra's algorithm with a heuristic that allow it to solve most shortest path problems by evaluation only a sub-set of the overall graph. Returns a set of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows, that make up a path."
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:37
-# 2b4f80c2b5b34af5915bdd1bbda06371
-msgid "Description"
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:39
-# 73b24acd9a0a4cabbb90fb0722484f64
-msgid "a SQL query, which should return a set of rows with the following columns:"
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:46
-# 170c19f4695f4528b1032549f545e7da
-msgid "``int4`` identifier of the edge"
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:47
-# 2c6b77c66814423fb74406d92b5f94ce
-msgid "``int4`` identifier of the source vertex"
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:48
-# 15b50cb99b7b437f89a8d677084941bb
-msgid "``int4`` identifier of the target vertex"
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:49
-# 325ac85ef0124349938b85bc8c4c0dad
-msgid "``float8`` value, of the edge traversal cost. A negative cost will prevent the edge from being inserted in the graph."
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:50
-# d787e67c203f4224af29aab1d419490f
-msgid "``x`` coordinate of the start point of the edge"
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:51
-# 2906752f87f24b64a6e5b7321b0db4b1
-msgid "``y`` coordinate of the start point of the edge"
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:52
-# caf5b571d9d94061a23572a64c4d1b97
-msgid "``x`` coordinate of the end point of the edge"
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:53
-# 09f3e444d5b84c449c9b4bfed347727c
-msgid "``y`` coordinate of the end point of the edge"
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:54
-# 23cefa9d8f8d4175a70310ba6cff3491
-msgid "(optional) the cost for the reverse traversal of the edge. This is only used when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the above remark about negative costs)."
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:56
-# a67e6af024634f0b9951a9ee8c9a5b0e
-msgid "``int4`` id of the start point"
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:57
-# 0d93c19173084e758387fbdf0685e7eb
-msgid "``int4`` id of the end point"
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:58
-# d775130bce1240e29e45304d0e01b438
-msgid "``true`` if the graph is directed"
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:59
-# 01a1716de277419bb01c175efa6fc8a6
-msgid "if ``true``, the ``reverse_cost`` column of the SQL generated set of rows will be used for the cost of the traversal of the edge in the opposite direction."
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:61
-# 9053bb99674d467c90a070c7475ba028
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:63
-# d4c3a227512549ac9b51a4b4574e82a6
-msgid "row sequence"
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:64
-# 883026be35e04211b0017c663b155fc3
-msgid "node ID"
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:65
-# 58d443157e2941c1af29d7fd7f16ce3b
-msgid "edge ID (``-1`` for the last row)"
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:66
-# f5bfb7d3074b40fd95b474899a49fb42
-msgid "cost to traverse from ``id1`` using ``id2``"
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:70
-# 5b850b7d5d74412fbfe7c33a0d944ec1
-msgid "History"
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:71
-# 6dbcad5c304445bb90e3d32a771ee68b
-msgid "Renamed in version 2.0.0"
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:75
-# cd89b18e41e44a87998eee51aa4484dc
-msgid "Examples"
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:77
-# e9194064ec3642a3be701e5b6beb5cba
-msgid "Without ``reverse_cost``"
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:99
-# c7f170f7fc3e4a8ebfd8e0e5808d0640
-msgid "With ``reverse_cost``"
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:117
-# 540bf79726d843d88a072ba5ac357cc9
-msgid "The queries use the :ref:`sampledata` network."
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:121
-# 0534beb965ef450e898194e478a8ad99
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:123
-# ebdee1902c164749b486df950420287b
-msgid ":ref:`type_cost_result`"
-msgstr ""
-
-#: ../../../src/astar/doc/index.rst:124
-# d54c6506fb0b4d10a75e6d6965a9f8c0
-msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
-msgstr ""
-
diff --git a/doc/i18n/pot/src/bd_astar/doc/index.pot b/doc/i18n/pot/src/bd_astar/doc/index.pot
deleted file mode 100644
index fadc202..0000000
--- a/doc/i18n/pot/src/bd_astar/doc/index.pot
+++ /dev/null
@@ -1,203 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/bd_astar/doc/index.rst:13
-# 94d553821b2843da8b53f2b62144b2ac
-msgid "pgr_bdAstar - Bi-directional A* Shortest Path"
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:20
-# d66a892d62ea42f389ac4d633677bc69
-msgid "Name"
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:22
-# af928c8cbb924f2a8e51c2ee5b809a1a
-msgid "``pgr_bdAstar`` - Returns the shortest path using Bidirectional A* algorithm."
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:26
-# 9c224b471f5744db9fab9bc20e85ea4f
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:28
-# 796b6647ea7343cba5cb08d5b378ab90
-msgid "This is a bi-directional A* search algorithm. It searchs from the source toward the distination and at the same time from the destination to the source and terminates whe these to searchs meet in the middle. Returns a set of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows, that make up a path."
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:37
-# 8725c147c87145b18b91fce7eef413e8
-msgid "Description"
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:39
-# 5b595925c43e40f3ba35fd9ad4863a92
-msgid "a SQL query, which should return a set of rows with the following columns:"
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:46
-# 349f1a1cc4a343b99b10297f9254fa6d
-msgid "``int4`` identifier of the edge"
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:47
-# 4290dfb0558549ab82cfbbd0a7a7791e
-msgid "``int4`` identifier of the source vertex"
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:48
-# 3b6f59d09a2b4506b2fb5d08f8d94fbf
-msgid "``int4`` identifier of the target vertex"
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:49
-# 317ca9c7b5104fa7a0e9bb4fe944ce82
-msgid "``float8`` value, of the edge traversal cost. A negative cost will prevent the edge from being inserted in the graph."
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:50
-# 191d7cb28c2f49bba23dbf0b8848d74e
-msgid "``x`` coordinate of the start point of the edge"
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:51
-# aadcb526a9f54bdf9499ff31a5c988a2
-msgid "``y`` coordinate of the start point of the edge"
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:52
-# a1f9145757ab4193a1bb998f34438c9a
-msgid "``x`` coordinate of the end point of the edge"
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:53
-# 96fc3a62bd38495ba875685af0462eb4
-msgid "``y`` coordinate of the end point of the edge"
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:54
-# d81a0f9f10b74755a00b60e69a26f2a2
-msgid "(optional) the cost for the reverse traversal of the edge. This is only used when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the above remark about negative costs)."
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:56
-# 45182780b36c4bf79c8d40211f1e99ec
-msgid "``int4`` id of the start point"
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:57
-# f3177ef8858649878c1ae22a6a330acd
-msgid "``int4`` id of the end point"
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:58
-# 698fa2d9c6d94092a9e0e7e99ba795b5
-msgid "``true`` if the graph is directed"
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:59
-# ec9151bbea714618b966e3a4e0144fb8
-msgid "if ``true``, the ``reverse_cost`` column of the SQL generated set of rows will be used for the cost of the traversal of the edge in the opposite direction."
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:61
-# 35ae9e0fbf7b4bf5b1bd2b8ef5682c64
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:63
-# ba88c81469da47dc98ffac1c11199489
-msgid "row sequence"
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:64
-# 0f5c9120b49740f493aa38b9df82dab0
-msgid "node ID"
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:65
-# 985b7d421710447385e7d3d37e311590
-msgid "edge ID (``-1`` for the last row)"
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:66
-# 2aac10119ea244b8b0a064e3277f70d5
-msgid "cost to traverse from ``id1`` using ``id2``"
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:70
-# 16b869e2a9c34357806099659c237e08
-msgid "You must reconnect to the database after ``CREATE EXTENSION pgrouting``. Otherwise the function will return ``Error computing path: std::bad_alloc``."
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:74
-# 11446825468747189e98ea3e7110fae1
-msgid "History"
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:75
-# d95dd9d2ac904f7a8ee6fe9ab78a7738
-msgid "New in version 2.0.0"
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:79
-# b926578064e14ec9befea2cbcdcb47a0
-msgid "Examples"
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:81
-# 3d07cb2cc3c9492db217a0574dfda373
-msgid "Without ``reverse_cost``"
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:101
-# fa4260eb1fe248cf8572e37c60e387d2
-msgid "With ``reverse_cost``"
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:120
-# c01af650893943b4bc17cde283c41a18
-msgid "The queries use the :ref:`sampledata` network."
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:124
-# f1d4852c159b455580e97a7956413aee
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:126
-# 8a47b4b822a149ac9872af9e6198353c
-msgid ":ref:`type_cost_result`"
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:127
-# b4440a71fb6a4e5daf6d46b8e557780f
-msgid ":ref:`bd_dijkstra`"
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:128
-# 2f7b25d2e2644a2bb0b7757c92d0bcef
-msgid "http://en.wikipedia.org/wiki/Bidirectional_search"
-msgstr ""
-
-#: ../../../src/bd_astar/doc/index.rst:129
-# 540474312722476ba70eac8d56ff1887
-msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
-msgstr ""
-
diff --git a/doc/i18n/pot/src/bd_dijkstra/doc/index.pot b/doc/i18n/pot/src/bd_dijkstra/doc/index.pot
deleted file mode 100644
index 524c416..0000000
--- a/doc/i18n/pot/src/bd_dijkstra/doc/index.pot
+++ /dev/null
@@ -1,178 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/bd_dijkstra/doc/index.rst:13
-# cd087563fa634417a9a96f1447db3eef
-msgid "pgr_bdDijkstra - Bi-directional Dijkstra Shortest Path"
-msgstr ""
-
-#: ../../../src/bd_dijkstra/doc/index.rst:21
-# 8792d257978d40b78b63abe4efc5e526
-msgid "Name"
-msgstr ""
-
-#: ../../../src/bd_dijkstra/doc/index.rst:23
-# 837b0c3d34e748dd8604ad26d045af3b
-msgid "``pgr_bdDijkstra`` - Returns the shortest path using Bidirectional Dijkstra algorithm."
-msgstr ""
-
-#: ../../../src/bd_dijkstra/doc/index.rst:27
-# b0164687c8474bb58b095e2a16944cb5
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/bd_dijkstra/doc/index.rst:29
-# 468d5a655f514969b05514fc141936cd
-msgid "This is a bi-directional Dijkstra search algorithm. It searchs from the source toward the distination and at the same time from the destination to the source and terminates whe these to searchs meet in the middle. Returns a set of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows, that make up a path."
-msgstr ""
-
-#: ../../../src/bd_dijkstra/doc/index.rst:38
-# c1d7beb510774fb1bcfaaabf7de9ffdb
-msgid "Description"
-msgstr ""
-
-#: ../../../src/bd_dijkstra/doc/index.rst:40
-# 022ee086b0cf494f920b34c5bf9ab727
-msgid "a SQL query, which should return a set of rows with the following columns:"
-msgstr ""
-
-#: ../../../src/bd_dijkstra/doc/index.rst:47
-# d492aaf139ca4f1e862a40b159c05c39
-msgid "``int4`` identifier of the edge"
-msgstr ""
-
-#: ../../../src/bd_dijkstra/doc/index.rst:48
-# 62644c61c70f44d3b3dbc5ddb896a59e
-msgid "``int4`` identifier of the source vertex"
-msgstr ""
-
-#: ../../../src/bd_dijkstra/doc/index.rst:49
-# 0d8b18de07504cde837a6fce2619d6a8
-msgid "``int4`` identifier of the target vertex"
-msgstr ""
-
-#: ../../../src/bd_dijkstra/doc/index.rst:50
-# a5db01a342ed4659ac55681c020e7b8c
-msgid "``float8`` value, of the edge traversal cost. A negative cost will prevent the edge from being inserted in the graph."
-msgstr ""
-
-#: ../../../src/bd_dijkstra/doc/index.rst:51
-# f947208020fc4835826101f9a5b2a2e6
-msgid "(optional) the cost for the reverse traversal of the edge. This is only used when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the above remark about negative costs)."
-msgstr ""
-
-#: ../../../src/bd_dijkstra/doc/index.rst:53
-# 8af5c7909ee3491381b628192ea60583
-msgid "``int4`` id of the start point"
-msgstr ""
-
-#: ../../../src/bd_dijkstra/doc/index.rst:54
-# b2e95038b1174633b071d88bb5b89f52
-msgid "``int4`` id of the end point"
-msgstr ""
-
-#: ../../../src/bd_dijkstra/doc/index.rst:55
-# 2c8bee2885f94ec7b4238ae1ae4acf8d
-msgid "``true`` if the graph is directed"
-msgstr ""
-
-#: ../../../src/bd_dijkstra/doc/index.rst:56
-# 256f47e8dcfb4938bc26e27cbdf2f010
-msgid "if ``true``, the ``reverse_cost`` column of the SQL generated set of rows will be used for the cost of the traversal of the edge in the opposite direction."
-msgstr ""
-
-#: ../../../src/bd_dijkstra/doc/index.rst:58
-# 6d9e7fff08af4a06995fbbbca0210783
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr ""
-
-#: ../../../src/bd_dijkstra/doc/index.rst:60
-# f9139c237adb4ae5a68dcf9cdf00fa88
-msgid "row sequence"
-msgstr ""
-
-#: ../../../src/bd_dijkstra/doc/index.rst:61
-# cf58390319724ff28fcf907d2c10f9ac
-msgid "node ID"
-msgstr ""
-
-#: ../../../src/bd_dijkstra/doc/index.rst:62
-# 592c54ff23f34cfbb8aab59112f8bffa
-msgid "edge ID (``-1`` for the last row)"
-msgstr ""
-
-#: ../../../src/bd_dijkstra/doc/index.rst:63
-# 0ca96bd644b847c396563b2d230838c3
-msgid "cost to traverse from ``id1`` using ``id2``"
-msgstr ""
-
-#: ../../../src/bd_dijkstra/doc/index.rst:66
-# 15894b000d784eb7b3228a22113ad2c1
-msgid "History"
-msgstr ""
-
-#: ../../../src/bd_dijkstra/doc/index.rst:67
-# 5749a50aaa3949a2b093e3c474d74bbb
-msgid "New in version 2.0.0"
-msgstr ""
-
-#: ../../../src/bd_dijkstra/doc/index.rst:71
-# fe393668e10441ff8d71c2399d47aff8
-msgid "Examples"
-msgstr ""
-
-#: ../../../src/bd_dijkstra/doc/index.rst:73
-# f5b17ce493294d2f8a5b47b034f89acb
-msgid "Without ``reverse_cost``"
-msgstr ""
-
-#: ../../../src/bd_dijkstra/doc/index.rst:93
-# 7b362f2655c44b2e80a0fcbd72489fb8
-msgid "With ``reverse_cost``"
-msgstr ""
-
-#: ../../../src/bd_dijkstra/doc/index.rst:113
-# 0aea658bd347454a915aa248d4e5db72
-msgid "The queries use the :ref:`sampledata` network."
-msgstr ""
-
-#: ../../../src/bd_dijkstra/doc/index.rst:117
-# 89cc685068e345f2a2a0aa44d793a833
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/bd_dijkstra/doc/index.rst:119
-# 474fed6e1f654dd7887a1e646ca466a6
-msgid ":ref:`type_cost_result`"
-msgstr ""
-
-#: ../../../src/bd_dijkstra/doc/index.rst:120
-# ca73c5f11d8a40e1a6280cad363bd614
-msgid ":ref:`bd_astar`"
-msgstr ""
-
-#: ../../../src/bd_dijkstra/doc/index.rst:121
-# fca2300e8ffd4f919376e6bcfb7798ec
-msgid "http://en.wikipedia.org/wiki/Bidirectional_search"
-msgstr ""
-
-#: ../../../src/bd_dijkstra/doc/index.rst:122
-# eaefcfbf6d4c4f05af6ccff090f48be4
-msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
-msgstr ""
-
diff --git a/doc/i18n/pot/src/common/doc/functions/analyze_graph.pot b/doc/i18n/pot/src/common/doc/functions/analyze_graph.pot
deleted file mode 100644
index c04cb42..0000000
--- a/doc/i18n/pot/src/common/doc/functions/analyze_graph.pot
+++ /dev/null
@@ -1,360 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:13
-# 53296f8e73474011b28fc01905a2eceb
-msgid "pgr_analyzeGraph"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:20
-# a9ff33e8d32b4fe8876e390f6daac4c6
-msgid "Name"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:22
-# 6d37842f5bd849ecb80efe9b198325b9
-msgid "``pgr_anlizeGraph`` — Analyzes the network topology."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:26
-# abe284778bb645899a176b9a8f00800b
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:28
-#: ../../../src/common/doc/functions/analyze_graph.rst:61
-# 4a67a9eb11fd4ad4bcbc544aea9672ea
-# 9b0bd64389e44dddafa6c5fa4ddc9d1c
-msgid "The function returns:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:30
-#: ../../../src/common/doc/functions/analyze_graph.rst:63
-# 6844bd6c77ce4c0db77c04aa67e2de95
-# ecb54ce2e73e4d7b8e7961d9355b74b7
-msgid "``OK`` after the analysis has finished."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:31
-#: ../../../src/common/doc/functions/analyze_graph.rst:69
-# 8815bbad2a1342a38b27439e65f1acc4
-# f28a0ca1c3224407ab774973b719898e
-msgid "``FAIL`` when the analysis was not completed due to an error."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:40
-# 6151576984d8477e876bcbc67e94e414
-msgid "Description"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:43
-# e09f06bede684ceea5fac809d46fe810
-msgid "Prerequisites"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:44
-# b8cc242999a4400788d34bff97cc3ba5
-msgid "The  edge table to be analyzed must contain a source column and a target column filled with id's of the vertices of the segments and the corresponding vertices table <edge_table>_vertices_pgr that stores the vertices information."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:46
-# b6d175711f1d4c6d83a2c3731abd2b5e
-msgid "Use :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create the vertices table."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:47
-# 9c083425d21a4895ae03834df0bb204b
-msgid "Use :ref:`pgr_createTopology <pgr_create_topology>` to create the topology and the vertices table."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:50
-# 76f922a853d14626985bd89f1383f3e8
-msgid "Parameters"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:51
-# 70a11d91f4b94cf2b1e5597a655be0b0
-msgid "The analyze graph function accepts the following parameters:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:53
-# de4891a7dbbe47b69f6420d6eb547778
-msgid "``text`` Network table name. (may contain the schema name as well)"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:54
-# f5902ebc84e44ddabf87cef3b7dee0f0
-msgid "``float8`` Snapping tolerance of disconnected edges. (in projection unit)"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:55
-# 4a6edc40ffc9470793686e6ca7cd0753
-msgid "``text``  Geometry column name of the network table. Default value is ``the_geom``."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:56
-# c1499758fb98480da967cf3ddfe55853
-msgid "``text``  Primary key column name of the network table. Default value is ``id``."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:57
-# dc010031e2424cdb890335d45a71d242
-msgid "``text`` Source column name of the network table. Default value is ``source``."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:58
-# 7cd55fba939742c9978ded9c9748deed
-msgid "``text``  Target column name of the network table.  Default value is ``target``."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:59
-# 345f64633a4c448b8ecd11cb5bd42041
-msgid "``text``   Condition to select  a subset or rows.  Default value is ``true`` to indicate all rows."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:65
-# a07eab49ed854bf193e003948cf9fb05
-msgid "Uses the vertices table: <edge_table>_vertices_pgr."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:66
-# bcde9f4bc93b49c2b2415cbb21d4ca3f
-msgid "Fills completly the ``cnt`` and ``chk`` columns of the vertices table."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:67
-# 9bb7b639647c49d18871684b99930d74
-msgid "Returns the analysis of the section of the network defined by  ``rows_where``"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:71
-# b967488c400f47eda9c765417683d8b7
-msgid "The vertices table is not found."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:72
-# a63cc4d5fd0f4d48b9885bca068f6b01
-msgid "A required column of the Network table is not found or is not of the appropriate type."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:73
-# d287c3e270fb4013ad83bfc189e8af77
-msgid "The condition is not well formed."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:74
-# b3a972d53f204fa8bd4ae6ae88eff76f
-msgid "The names of source , target or id are the same."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:75
-# 35c5085b0ce741e9aa6953479f1f127c
-msgid "The SRID of the geometry could not be determined."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:79
-# 6f547ddda2ff46f89859338633cbf0cb
-msgid "The Vertices Table"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:80
-# d4e491cd97cf4b68bbcd954930cd47de
-msgid "The vertices table can be created with :ref:`pgr_createVerticesTable <pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>`"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:82
-# 3f55a076c4e4466fa079b946c0a7e454
-msgid "The structure of the vertices table is:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:84
-# 7f6c53b9512c44ec83ce405d430cf768
-msgid "``bigint`` Identifier of the vertex."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:85
-# 65c23f4e9a904d10a7b76e54f1a44f1d
-msgid "``integer`` Number of vertices in the edge_table that reference this vertex."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:86
-# d55fdb616d624f6e993c7e728929d707
-msgid "``integer``  Indicator that the vertex might have a problem."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:87
-# 35904deb26774982a5cd233c99c83c08
-msgid "``integer`` Number of vertices in the edge_table that reference this vertex as incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:88
-# 9fa235f539a341f69afa16d5c1c3c2df
-msgid "``integer`` Number of vertices in the edge_table that reference this vertex as outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:89
-# 07f0acf41b0a46e4a3bd351af1c46c03
-msgid "``geometry`` Point geometry of the vertex."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:92
-# 56966f47b876419c84e5d6a0c6d073ec
-msgid "History"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:93
-# ca1c28beb6404d42b53f2ca962a0fedf
-msgid "New in version 2.0.0"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:96
-# 662e9c746d03470998e226040593f93f
-msgid "Usage when the edge table's columns MATCH the default values:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:99
-# 7c9b355410c8454ab8183fef23420f2e
-msgid "The simplest way to use pgr_analyzeGraph is:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:106
-# 8a24a9dcf21a4d2f81e3891b2b1a9320
-msgid "When the arguments are given in the order described in the parameters:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:111
-# b1415b38a05546d980abd87ba888ebb5
-msgid "We get the same result as the simplest way to use the function."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:118
-#: ../../../src/common/doc/functions/analyze_graph.rst:184
-# da4890853e66469d88a30e44850f8554
-# 8790c3dfbeb048ef884d217443273bf9
-msgid "When using the named notation"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:119
-#: ../../../src/common/doc/functions/analyze_graph.rst:185
-# 4bb30134280c41f69e7bf11d2ce582a5
-# f5b2f0a0bab54cf2865759a0a49db759
-msgid "The order of the parameters do not matter:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:129
-# a9c325861d2b491cac0a7adef86882a9
-msgid "Parameters defined with a default value can be ommited, as long as the value matches the default:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:136
-#: ../../../src/common/doc/functions/analyze_graph.rst:199
-# 2313c3c501b749669a51001a30acaa5f
-# 12c436bdd7be4aa4bd271bf92fc2bcb6
-msgid "Selecting rows using rows_where parameter"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:137
-# 2feb27747d194170837630a768421acf
-msgid "Selecting rows based on the id. Displays the analysis a the section of the network."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:143
-# 4c84e7c1d62a414fb245092ff2a8300a
-msgid "Selecting the rows where the geometry is near the geometry of row with ``id`` =5 ."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:149
-# 3775e8094da5493caae4ea999ade2d8c
-msgid "Selecting the rows where the geometry is near the geometry of the row with ``gid`` =100 of the table ``othertable``."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:160
-# cd9e7427df954eacb895df213dba2f14
-msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:162
-# f3bac5580daf4591aa486aa57bbce01b
-msgid "For the following table"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:171
-# f43305e3194f4ee1969522d707a85cdd
-msgid "Using positional notation:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:172
-# 2504a81fed7f4cd182be87b388204e91
-msgid "The arguments need to be given in the order described in the parameters:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:195
-# f523b7ecbf2b47b892bbebb0942d013d
-msgid "In this scenario omitting a parameter would create an error because the default values for the column names do not match the column names of the table."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:200
-# f85a9896ab6c40de814133473b759f6e
-msgid "Selecting rows based on the id."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:210
-# 3e5a9ad67cb14497ae1e7bd84d79d34f
-msgid "Selecting the rows WHERE the geometry is near the geometry of row with ``id`` =5 ."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:222
-# 0a2bbe5acbe543b8b46decda47536690
-msgid "Selecting the rows WHERE the geometry is near the place='myhouse' of the table ``othertable``. (note the use of quote_literal)"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:239
-# 78ecd4d365f34d98b3b4e8790a54f749
-msgid "Examples"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:366
-# cca99ab5844e465588f4c80e48f3c55e
-msgid "The examples use the :ref:`sampledata` network."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:370
-# 5307571be3b94a37ac8b874e39952cc0
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:372
-# 33bf2b15c0474e1190dd51f154e3c707
-msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:373
-# 19e9e8853cf4428eac4d0a21abfb43c5
-msgid ":ref:`pgr_analyze_oneway` to analyze directionality of the edges."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:374
-# 977b5f0505ad40ff9a60c96cbbb31eb8
-msgid ":ref:`pgr_createVerticesTable <pgr_create_vert_table>` to reconstruct the vertices table based on the source and target information."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_graph.rst:375
-# 18f197b27f90406f9c4162b0fa53ff3d
-msgid ":ref:`pgr_nodeNetwork <pgr_node_network>` to create nodes to a not noded edge table."
-msgstr ""
-
diff --git a/doc/i18n/pot/src/common/doc/functions/analyze_oneway.pot b/doc/i18n/pot/src/common/doc/functions/analyze_oneway.pot
deleted file mode 100644
index 6f59e84..0000000
--- a/doc/i18n/pot/src/common/doc/functions/analyze_oneway.pot
+++ /dev/null
@@ -1,273 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:13
-# cd2b46cedc604e1ab5287aecab9ac075
-msgid "pgr_analyzeOneway"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:20
-# a4175d27465445508c66a6946c3fbc5a
-msgid "Name"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:22
-# 3e3c99f2a8214eb4a3faaa39fefc2e0c
-msgid "``pgr_analyzeOneway`` — Analyzes oneway Sstreets and identifies flipped segments."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:26
-# 8f309ac104ec4e55b2464222b41ee221
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:28
-# a5fbf3f35a5640cca13be3a84e2cb44f
-msgid "This function analyzes oneway streets in a graph and identifies any flipped segments."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:40
-# 9dce8875582a404696ee5db4d04918ad
-msgid "Description"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:42
-# 6837009b5352472695f51592c2e192b2
-msgid "The analyses of one way segments is pretty simple but can be a powerful tools to identifying some the potential problems created by setting the direction of a segment the wrong way. A node is a `source` if it has edges the exit from that node and no edges enter that node. Conversely, a node is a `sink` if all edges enter the node but none exit that node. For a `source` type node it is logically impossible to exist because no vehicle can exit the node if no vehicle and enter the no [...]
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:44
-# 391713a7c958440ba1f21ae9dc2de2a6
-msgid "So why do we care if the are not feasible? Well if the direction of an edge was reversed by mistake we could generate exactly these conditions. Think about a divided highway and on the north bound lane one segment got entered wrong or maybe a sequence of multiple segments got entered wrong or maybe this happened on a round-about. The result would be potentially a `source` and/or a `sink` node."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:46
-# fca5f219411a488ea010b839c1857c39
-msgid "So by counting the number of edges entering and exiting each node we can identify both `source` and `sink` nodes so that you can look at those areas of your network to make repairs and/or report the problem back to your data vendor."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:49
-# e9e00f6bf74c4e1cb1ca6c32976c7b26
-msgid "Prerequisites"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:50
-# c574bb6e95f641e284a268f706077a01
-msgid "The  edge table to be analyzed must contain a source column and a target column filled with id's of the vertices of the segments and the corresponding vertices table <edge_table>_vertices_pgr that stores the vertices information."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:52
-# a7b0ea9132de4afca4d7e548cb86ef19
-msgid "Use :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create the vertices table."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:53
-# 5e4b58693280495fa62bca8f9a091797
-msgid "Use :ref:`pgr_createTopology <pgr_create_topology>` to create the topology and the vertices table."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:56
-# 74ead58164c5476d9a4b70270bd5d703
-msgid "Parameters"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:57
-# 4613a3ad8f084141aa87f350c36c7bb3
-msgid "``text`` Network table name. (may contain the schema name as well)"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:58
-# e1865ee56a614646873fcfb11a66703e
-msgid "``text[]`` source node **in** rules"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:59
-# cd2863921e4d4f2a8e8cb1801d7ab848
-msgid "``text[]`` source node **out** rules"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:60
-# c876f3fab4dc4a5c8e488edfae671f7d
-msgid "``text[]`` target node **in** rules"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:61
-# 60ad166af1924da5aa34a9f800dbe485
-msgid "``text[]`` target node **out** rules"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:62
-# 73e54c7fd26546fd9f85a6ec74241e40
-msgid "``text`` oneway column name name of the network table. Default value is ``oneway``."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:63
-# ed69f6daeab64593a1a92a9150296a15
-msgid "``text`` Source column name of the network table. Default value is ``source``."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:64
-# 7f224684dfdb43a7801ba81d2ffd4bf0
-msgid "``text``  Target column name of the network table.  Default value is ``target``."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:65
-# 401d7513740543e2a455651239330731
-msgid "``boolean`` flag to treat oneway NULL values as bi-directional.  Default value is ``true``."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:67
-# d66fd9c242c94ea7b40b7614b6a0ebf4
-msgid "It is strongly recommended to use the named notation. See :ref:`pgr_createVerticesTable <pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>` for examples."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:70
-# 1d84d525fda34d00ac27cbc5da3c4c44
-msgid "The function returns:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:72
-# 72a20c2696bc48f593f07b2c3a8dd1ff
-msgid "``OK`` after the analysis has finished."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:74
-# d381c7f752254029bc4a21e18e9bc700
-msgid "Uses the vertices table: <edge_table>_vertices_pgr."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:75
-# a316006c25a549cb99b93c263c6a1901
-msgid "Fills completely the ``ein`` and ``eout`` columns of the vertices table."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:77
-# caadbc05a852481da09d131b3938306c
-msgid "``FAIL`` when the analysis was not completed due to an error."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:79
-# 8586b50eb34b454a9d47af412939940c
-msgid "The vertices table is not found."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:80
-# 40595774f1134b57a6ed7a432f4e60d9
-msgid "A required column of the Network table is not found or is not of the appropriate type."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:81
-# 3315953bc0554eb7b240234181e33ced
-msgid "The names of source , target or oneway are the same."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:83
-# ffa21a86aa99420cb9f6e5fb38127280
-msgid "The rules are defined as an array of text strings that if match the ``oneway`` value would be counted as ``true`` for the source or target **in** or **out** condition."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:86
-# a93b5bf2b9ce4e39b6e0bc6129752051
-msgid "The Vertices Table"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:87
-# 2cedeec119d44237baf88f13550d0547
-msgid "The vertices table can be created with :ref:`pgr_createVerticesTable <pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>`"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:89
-# cc957f24f3b1443f9b3bf8f59bf6b7c7
-msgid "The structure of the vertices table is:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:91
-# 01a48bd17955434ea31bb91e7b62c192
-msgid "``bigint`` Identifier of the vertex."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:92
-# d7a908b9938044bea052101db854cb5d
-msgid "``integer`` Number of vertices in the edge_table that reference this vertex. See :ref:`pgr_analyzeGgraph <pgr_analyze_graph>`."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:93
-# 273ac35d950540b694d298d6c1668239
-msgid "``integer``  Indicator that the vertex might have a problem. See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:94
-# 9fe0761d1a474f75bf053dda227d41f6
-msgid "``integer`` Number of vertices in the edge_table that reference this vertex as incoming."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:95
-# 08306551ee0240fc8daf114089f9ca5f
-msgid "``integer`` Number of vertices in the edge_table that reference this vertex as outgoing."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:96
-# 38cac0c9db7346139d769f2ec9123ec4
-msgid "``geometry`` Point geometry of the vertex."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:100
-# d44990981a9f42a7aac68c9945e35af8
-msgid "History"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:101
-# 0a311568293a48f6956e4f292b75b510
-msgid "New in version 2.0.0"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:105
-# fb2126471e71404885a2c9b07fefffc6
-msgid "Examples"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:129
-# c4009d22e3fd4fd49e54137665bfb090
-msgid "The queries use the :ref:`sampledata` network."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:133
-# b45fe0aec3c746038afef68b1fd86b2b
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:135
-# fd9f9c4b02f44abda48888853b3f85e6
-msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:136
-# 52d0f1d2584b466a89fab3ce38d106c9
-msgid ":ref:`analytics` for an overview of the analysis of a graph."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:137
-# 97ef0178ae294c64b232a031b8f1a3e1
-msgid ":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge table."
-msgstr ""
-
-#: ../../../src/common/doc/functions/analyze_oneway.rst:138
-# 691d757a8c4a4ce2aba7fc701fa8582b
-msgid ":ref:`pgr_create_vert_table` to reconstruct the vertices table based on the source and target information."
-msgstr ""
-
diff --git a/doc/i18n/pot/src/common/doc/functions/create_topology.pot b/doc/i18n/pot/src/common/doc/functions/create_topology.pot
deleted file mode 100644
index 5086eda..0000000
--- a/doc/i18n/pot/src/common/doc/functions/create_topology.pot
+++ /dev/null
@@ -1,367 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/common/doc/functions/create_topology.rst:13
-# a057d4235b0f410b8a51c86b4f1d239e
-msgid "pgr_createTopology"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:20
-# 876ac7339cfa4d5d9c5e98495016fe42
-msgid "Name"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:22
-# eb2a5070684f46bd90b9f8512750b680
-msgid "``pgr_createTopology`` — Builds a network topology based on the geometry information."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:26
-# 7263a0f9a25d48b085678d32bbea9db7
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:28
-#: ../../../src/common/doc/functions/create_topology.rst:69
-# 92f5bca5e18049199dc016877f4494eb
-# 5fe62a12a8344a67919197d00d01bb16
-msgid "The function returns:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:30
-# d78b55aaaf3a43269616fcdda85c5020
-msgid "``OK`` after the network topology has been built and the vertices table created."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:31
-# 8f3071556cda4e5a995aacae3f5662e6
-msgid "``FAIL`` when the network topology was not built due to an error."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:42
-# a3909db63bbc48f88abfc9bc23b15b2e
-msgid "Description"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:45
-# ac9560f65a814fdeb938bcdf2a6804c5
-msgid "Parameters"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:46
-# e59968660f7d41f1a56e0c677cb1bcac
-msgid "The topology creation function accepts the following parameters:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:48
-# 512435b2814443a8a6c755edfd8b61d2
-msgid "``text`` Network table name. (may contain the schema name AS well)"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:49
-# 4dabef5beb804f1aa78222ca095d5fd5
-msgid "``float8`` Snapping tolerance of disconnected edges. (in projection unit)"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:50
-# b1b948b75c8c4ab09961a27683512362
-msgid "``text``  Geometry column name of the network table. Default value is ``the_geom``."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:51
-# 8c92e096fedb4669b3c6f5fd930a7e94
-msgid "``text``  Primary key column name of the network table. Default value is ``id``."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:52
-# b45b04a21eb04a0fb1dd39c979c48094
-msgid "``text`` Source column name of the network table. Default value is ``source``."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:53
-# ee599f7fe1da4578b98b493b6df70680
-msgid "``text``  Target column name of the network table.  Default value is ``target``."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:54
-# a078a560551a49d38d28d42c4736169c
-msgid "``text``   Condition to SELECT a subset or rows.  Default value is ``true`` to indicate all rows."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:58
-# 988ceb63f5194a26b3f7e09b033d42b3
-msgid "The ``edge_table`` will be affected"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:60
-# a1aa8461a462439ead0575f38bc1ee51
-msgid "The ``source`` column values will change."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:61
-# da96e9e35745453296b842e2d294261b
-msgid "The ``target`` column values will change."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:62
-# be376c91462a4c6ba7e7a389eae05023
-msgid "An index will be created, if it doesn't exists, to speed up the process to the following columns:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:64
-# 119a1ff059274fc8af0acebed30c6c4c
-msgid "``id``"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:65
-# 8556ba19ffb4495d89f47f5db0710bb5
-msgid "``the_geom``"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:66
-# fea48b704221400680207aba1015868e
-msgid "``source``"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:67
-# 32783a4e5dd7480ab8490e5f1c7b4dc2
-msgid "``target``"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:71
-# 5c14015f45cf4b3c86cbeed39d47c6a4
-msgid "``OK`` after the network topology has been built."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:73
-# c15c0dadb9a74b13a62173d12792fdd1
-msgid "Creates a vertices table: <edge_table>_vertices_pgr."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:74
-# 93e6d9cd7128495d8d34fe6be8981994
-msgid "Fills ``id`` and ``the_geom`` columns of the vertices table."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:75
-# d7675cb094654e7b82256730b0951ed1
-msgid "Fills the source and target columns of the edge table referencing the ``id`` of the vertices table."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:78
-# e3e0e07fa01f426ab3fdb5c3f0b10d2d
-msgid "``FAIL`` when the network topology was not built due to an error:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:80
-# 1bb5c01982b64b7da8db5ad0c7a61028
-msgid "A required column of the Network table is not found or is not of the appropriate type."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:81
-# e909065fd5fb41bdae222dbbc03acc6d
-msgid "The condition is not well formed."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:82
-# ad03c82e96974cf592bce638a7b19829
-msgid "The names of source , target or id are the same."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:83
-# ca417f626fae4d7e9854b9fa8a9ffaff
-msgid "The SRID of the geometry could not be determined."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:87
-# 4f04770eda4e4fcbbb5b0b275829e0f7
-msgid "The Vertices Table"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:88
-# 3c118b71108142fab9911c3d4b533fb2
-msgid "The vertices table is a requirment of the :ref:`pgr_analyzeGraph <pgr_analyze_graph>` and the :ref:`pgr_analyzeOneway <pgr_analyze_oneway>` functions."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:90
-# c948e5b57b764e60a9cce10094d7c9f0
-msgid "The structure of the vertices table is:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:92
-# 80329822774e4174a4039771071c23ba
-msgid "``bigint`` Identifier of the vertex."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:93
-# 5280fb8e31194994b9763e4149846253
-msgid "``integer`` Number of vertices in the edge_table that reference this vertex. See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:94
-# 9a86c7965034442c95d310d44e6fe4e2
-msgid "``integer``  Indicator that the vertex might have a problem. See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:95
-# aae4ac8fd58b44f19e4c30f9c6ac9798
-msgid "``integer`` Number of vertices in the edge_table that reference this vertex AS incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:96
-# 213baacdd22e4728ab8a8ccf78ae6516
-msgid "``integer`` Number of vertices in the edge_table that reference this vertex AS outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:97
-# 1744e8d6bb454e1d8323cddca24b3f49
-msgid "``geometry`` Point geometry of the vertex."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:100
-# 80a77df8d710441bbfa89f7f8dbe80fe
-msgid "History"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:101
-# 7a36a50edc3d479a92a954c8fdeac046
-msgid "Renamed in version 2.0.0"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:104
-# b9204acb696e42bdaefa65418f3bf3b2
-msgid "Usage when the edge table's columns MATCH the default values:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:107
-# 0d2de92f9ed24cb88592d55123ed6f4f
-msgid "The simplest way to use pgr_createtopology is:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:115
-# 357d886a0524445ea68bbf19f0e61f49
-msgid "When the arguments are given in the order described in the parameters:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:120
-# f3c9f2926d9a4993810c2fff1c060934
-msgid "We get the same result AS the simplest way to use the function."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:127
-#: ../../../src/common/doc/functions/create_topology.rst:192
-# e7301499167b4633b6602390bc293b03
-# ed3bba1a504b4e29b784325c99267d4d
-msgid "When using the named notation"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:128
-#: ../../../src/common/doc/functions/create_topology.rst:193
-# f9a61303a41046c9918ad3512bd02f2c
-# 9881940dbd8441df847104029bbcbf78
-msgid "The order of the parameters do not matter:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:138
-# 8dbf66976cea42268b69dc7ff00bd9a5
-msgid "Parameters defined with a default value can be omited, AS long AS the value matches the default:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:145
-#: ../../../src/common/doc/functions/create_topology.rst:207
-# e0b00d8a30db469a806d0664b131cdc7
-# 3b10c72dc1a24e8998c9ee46912b366f
-msgid "Selecting rows using rows_where parameter"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:146
-#: ../../../src/common/doc/functions/create_topology.rst:208
-# 6f49e677fd684a559b2f9923bae23a55
-# 7bffa75333ab405a8bd6a8caa1ab28fb
-msgid "Selecting rows based on the id."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:152
-#: ../../../src/common/doc/functions/create_topology.rst:218
-# 91f444b2e3274fd9a0cdd5806d65c1cf
-# efb16059a3914b2d877dcf980fe49fa5
-msgid "Selecting the rows where the geometry is near the geometry of row with ``id`` =5 ."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:158
-#: ../../../src/common/doc/functions/create_topology.rst:230
-# 161e8e6a307f42e58bcd5b3a83a1f66c
-# e38c78705c6649a1a4805ee7f5c2fb7a
-msgid "Selecting the rows where the geometry is near the geometry of the row with ``gid`` =100 of the table ``othertable``."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:169
-# b157f423279642af98591835eaaf2b54
-msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:171
-# 251042ad3df84397b5e8e8d170e80d2b
-msgid "For the following table"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:179
-# 69f91e04ea3b401f9b0904b150976673
-msgid "Using positional notation:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:180
-# ec942a72f3444536ba640a6ff698f2f8
-msgid "The arguments need to be given in the order described in the parameters:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:203
-# a4035cf96ed444a9bd41789ffebb958a
-msgid "In this scenario omitting a parameter would create an error because the default values for the column names do not match the column names of the table."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:247
-# 87335dd660b243e3ad76d7cbb518eada
-msgid "Examples"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:279
-# a869009035b941729ff0ffa7455a3e42
-msgid "The example uses the :ref:`sampledata` network."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:283
-# cb2b4d2e75854b198e4b25d05003f098
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:285
-# 4a3a07550bbe4810ac080806624b4d8b
-msgid ":ref:`topology` for an overview of a topology for routing algorithms."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:286
-# d1922d7a561e4ff69449fe75f8bcf84e
-msgid ":ref:`pgr_create_vert_table` to reconstruct the vertices table based on the source and target information."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_topology.rst:287
-# 325f59cdc7e04d39ace5a8bb0c5395f8
-msgid ":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge table."
-msgstr ""
-
diff --git a/doc/i18n/pot/src/common/doc/functions/create_vert_table.pot b/doc/i18n/pot/src/common/doc/functions/create_vert_table.pot
deleted file mode 100644
index c5232e9..0000000
--- a/doc/i18n/pot/src/common/doc/functions/create_vert_table.pot
+++ /dev/null
@@ -1,342 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:13
-# 19a631dd8d134b8b84a68204ed3e9d41
-msgid "pgr_createVerticesTable"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:20
-# dbd6600ecaac45f6b8867e57eb38fc5d
-msgid "Name"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:22
-# a29458cc158d4f499d981869b9fe80f1
-msgid "``pgr_createVerticesTable`` — Reconstructs the vertices table based on the source and target information."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:26
-# aae2526fd60c48e180fef3b043df1e78
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:28
-#: ../../../src/common/doc/functions/create_vert_table.rst:63
-# 27dc7808202b457697769289df7fd7df
-# aa36c85dd6024813a58efb3559cea011
-msgid "The function returns:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:30
-#: ../../../src/common/doc/functions/create_vert_table.rst:65
-# a71d7d0641964f8ab1d90cc85ffa5698
-# d23fc0c9251a4a7893267070122dece1
-msgid "``OK`` after the vertices table has been reconstructed."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:31
-#: ../../../src/common/doc/functions/create_vert_table.rst:70
-# 575b00c1ef0d4ce9be181b3a4618b86a
-# c4f9095eb78b46cda68c21b5b6c4177a
-msgid "``FAIL`` when the vertices table was not reconstructed due to an error."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:41
-# 5d4e599359bb4044a0ab76a42ec24d55
-msgid "Description"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:44
-# ff2ba7f56e154fbfb7c8ca1cef5bcd83
-msgid "Parameters"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:45
-# d6fe650a9beb48faae0604ad27d0473e
-msgid "The reconstruction of the vertices table  function accepts the following parameters:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:47
-# 1cb3bba0eace4224bfd959ceb965d5b3
-msgid "``text`` Network table name. (may contain the schema name as well)"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:48
-# 3693db7e8e03488f8c7e41ce66f68564
-msgid "``text``  Geometry column name of the network table. Default value is ``the_geom``."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:49
-# db6c17c2d53a417f9c03f50c92c005e3
-msgid "``text`` Source column name of the network table. Default value is ``source``."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:50
-# 07030afe12f24527a339ee08106acdd4
-msgid "``text``  Target column name of the network table.  Default value is ``target``."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:51
-# 953d953272574d1cb2f2082781e7cd57
-msgid "``text``   Condition to SELECT a subset or rows.  Default value is ``true`` to indicate all rows."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:55
-# 93eec2b40e2543329968022ac0fb743e
-msgid "The ``edge_table`` will be affected"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:57
-# 87e963ab8d6740c3b1a1c7c90aadb0cb
-msgid "An index will be created, if it doesn't exists, to speed up the process to the following columns:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:59
-# 0b4db9bedb5c4e8aae178cdf8501e995
-msgid "``the_geom``"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:60
-# c6f28e49bbb94fff8a6a79a37a37f148
-msgid "``source``"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:61
-# 48bf54d2872e42e3951374082f047936
-msgid "``target``"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:67
-# b8c36294294f415091c47eed722e184e
-msgid "Creates a vertices table: <edge_table>_vertices_pgr."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:68
-# 20a5668e4f824df08ce6d40b2972d67c
-msgid "Fills ``id`` and ``the_geom`` columns of the vertices table based on the source and target columns of the edge table."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:72
-# f773aa554da04cc6970ffd2696e995ba
-msgid "A required column of the Network table is not found or is not of the appropriate type."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:73
-# b5a53ad737e74ba382d562f7885b692a
-msgid "The condition is not well formed."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:74
-# e6a33ab1fef64aad86222787fab3af3c
-msgid "The names of source, target are the same."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:75
-# 6d469609f58c46f29de5c8a90af5081a
-msgid "The SRID of the geometry could not be determined."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:78
-# 147e1b6b08814f7b9ee88407b62a498a
-msgid "The Vertices Table"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:79
-# 3c4bf582df624750bc03941c3619f4c7
-msgid "The vertices table is a requierment of the :ref:`pgr_analyzeGraph <pgr_analyze_graph>` and the :ref:`pgr_analyzeOneway <pgr_analyze_oneway>` functions."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:81
-# 91b1981a14a94c20bca776be85b535a3
-msgid "The structure of the vertices table is:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:83
-# dc0e633324514f4e9b38f21fcc433f60
-msgid "``bigint`` Identifier of the vertex."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:84
-# 332ebc8247294592991bb43d212d2934
-msgid "``integer`` Number of vertices in the edge_table that reference this vertex. See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:85
-# 9dadca7827724a16a72b724caecaf17d
-msgid "``integer``  Indicator that the vertex might have a problem. See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:86
-# 39745576abc34406876c0adcee78bc5f
-msgid "``integer`` Number of vertices in the edge_table that reference this vertex as incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:87
-# 22e339ae16f14852a431554fb215af48
-msgid "``integer`` Number of vertices in the edge_table that reference this vertex as outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:88
-# ce14855be22b4104bbb07a5e5604f2d4
-msgid "``geometry`` Point geometry of the vertex."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:91
-# 459b3b8c4acd4aa3a9871f6dd5738099
-msgid "History"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:92
-# 53812a5605b541d388700a95581cffb5
-msgid "Renamed in version 2.0.0"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:95
-# 308e674a2f0042ecb68fa5cdfda66c35
-msgid "Usage when the edge table's columns MATCH the default values:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:98
-# 60cd2611626e4881a4f7598d088f7ae9
-msgid "The simplest way to use pgr_createVerticesTable is:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:105
-# 2f2349e83a9943c5914bdc408761e821
-msgid "When the arguments are given in the order described in the parameters:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:110
-# f781676f7b5c4f96ab2a6c29d9da6f7f
-msgid "We get the same result as the simplest way to use the function."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:117
-#: ../../../src/common/doc/functions/create_vert_table.rst:181
-# 664c471ccfda4497b6645e8a878dc3dc
-# 7e918d97a00f411da9454756825ff8c8
-msgid "When using the named notation"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:118
-#: ../../../src/common/doc/functions/create_vert_table.rst:182
-# 73df3af7e8674465a0fea28f5ef4af6a
-# d67790fcb73148b08041370ea40c9704
-msgid "The order of the parameters do not matter:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:128
-# d75edd32144a4a56876ce8669eb9c666
-msgid "Parameters defined with a default value can be omited, as long as the value matches the default:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:135
-#: ../../../src/common/doc/functions/create_vert_table.rst:196
-# 205323d5b2c84c60bcc0a48cf0ffe2c3
-# b8ee67193fef4450b7b078d5e0f9ed8e
-msgid "Selecting rows using rows_where parameter"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:136
-# 78b6beb526fe44a08ba33968fd97e704
-msgid "Selecting rows based on the id."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:142
-# 87beb11c777742819e896cdba5e1e69c
-msgid "Selecting the rows where the geometry is near the geometry of row with ``id`` =5 ."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:148
-#: ../../../src/common/doc/functions/create_vert_table.rst:219
-# 23096a1510064202a6666747f3283d4b
-# 3107ec82a919450798746493e0878454
-msgid "Selecting the rows where the geometry is near the geometry of the row with ``gid`` =100 of the table ``othertable``."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:159
-# cffbe0ddc41c4322a015816531b6c20d
-msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:161
-# dbe012108f364058a8796adaafb1e023
-msgid "For the following table"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:169
-# 08dccb27acdb4f51a09d7804934b76ff
-msgid "Using positional notation:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:170
-# 3a0524fff1ba43cd990d2c3e9af31526
-msgid "The arguments need to be given in the order described in the parameters:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:192
-# 399db1d8f6ac4444beabbbe5d87a715b
-msgid "In this scenario omitting a parameter would create an error because the default values for the column names do not match the column names of the table."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:197
-# ee561095bdf14700b7d35c5e9cb495a3
-msgid "Selecting rows based on the gid."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:207
-# 12595dac797d451d93c5ef33bb5a0dec
-msgid "Selecting the rows where the geometry is near the geometry of row with ``gid`` =5 ."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:236
-# dfa04bca1d5a4dc29d3d0ecb59e23b5a
-msgid "Examples"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:258
-# 4a25da4213474121ab37fdd23d3ebcb3
-msgid "The example uses the :ref:`sampledata` network."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:262
-# 743fc9bd38c24e9599c37117b09a12d4
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:264
-# 99d6f7120b264df29684f04f5a052e7d
-msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:265
-# 7626b59fe28f49d9bca9b18466f65ed0
-msgid ":ref:`pgr_createTopology <pgr_create_topology>` to create a topology based on the geometry."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:266
-# 68c51bd2f3f34bf0837774644e0d90ed
-msgid ":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge table."
-msgstr ""
-
-#: ../../../src/common/doc/functions/create_vert_table.rst:267
-# 5c232ab6d6bf483fbba17b835369ea67
-msgid ":ref:`pgr_analyze_oneway` to analyze directionality of the edges."
-msgstr ""
-
diff --git a/doc/i18n/pot/src/common/doc/functions/index.pot b/doc/i18n/pot/src/common/doc/functions/index.pot
deleted file mode 100644
index cc6b576..0000000
--- a/doc/i18n/pot/src/common/doc/functions/index.pot
+++ /dev/null
@@ -1,53 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/common/doc/functions/index.rst:13
-# e6059e864a2f45449fd7f85406460837
-msgid "Topology Functions"
-msgstr ""
-
-#: ../../../src/common/doc/functions/index.rst:15
-# 9ea9f6b4b70c4435aa543c472a818b2f
-msgid "The pgRouting's topology of a network, represented with an edge table with source and target attributes and a vertices table associated with it. Depending on the algorithm, you can create a topology or just reconstruct the vertices table, You can analyze the topology, We also provide a function to node an unoded network."
-msgstr ""
-
-#: ../../../src/common/doc/functions/index.rst:19
-# 76da7263f53f4462a723804e1174e3ff
-msgid ":ref:`pgr_create_topology` -  to create a topology based on the geometry."
-msgstr ""
-
-#: ../../../src/common/doc/functions/index.rst:20
-# 7e6fef362938498ca27bcaeec5ab9410
-msgid ":ref:`pgr_create_vert_table` - to reconstruct the vertices table based on the source and target information."
-msgstr ""
-
-#: ../../../src/common/doc/functions/index.rst:21
-# 46b3cb82a6ca4081af5590a2b3d42a66
-msgid ":ref:`pgr_analyze_graph`  - to analyze the edges and vertices of the edge table."
-msgstr ""
-
-#: ../../../src/common/doc/functions/index.rst:22
-# 39c72fdc49ea45c889de546e56648f89
-msgid ":ref:`pgr_analyze_oneway` - to analyze directionality of the edges."
-msgstr ""
-
-#: ../../../src/common/doc/functions/index.rst:23
-# 97cb5a2e957349b8a30dee4f69b4b2de
-msgid ":ref:`pgr_node_network`  -to create nodes to a not noded edge table."
-msgstr ""
-
diff --git a/doc/i18n/pot/src/common/doc/functions/is_column_in_table.pot b/doc/i18n/pot/src/common/doc/functions/is_column_in_table.pot
deleted file mode 100644
index 91c00d2..0000000
--- a/doc/i18n/pot/src/common/doc/functions/is_column_in_table.pot
+++ /dev/null
@@ -1,88 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0-dev\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/common/doc/functions/is_column_in_table.rst:13
-# 1451c59201944bfd9022c90ef89ebf8a
-msgid "pgr_isColumnInTable - Check if column exists"
-msgstr ""
-
-#: ../../../src/common/doc/functions/is_column_in_table.rst:20
-# cb570c2703fc45e9bba281cae42780d6
-msgid "Name"
-msgstr ""
-
-#: ../../../src/common/doc/functions/is_column_in_table.rst:22
-# b4cdca42128d4828961c3e7076774fc0
-msgid "``pgr_isColumnInTable`` — Check if a column exists in a table."
-msgstr ""
-
-#: ../../../src/common/doc/functions/is_column_in_table.rst:26
-# 33b135e2f8dd4f5e81aad53d1a016cfe
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/common/doc/functions/is_column_in_table.rst:28
-# 96d06813601a419c9b44fe8298f74a51
-msgid "Returns ``true`` or ``false`` if column “col” exists in table “tab”."
-msgstr ""
-
-#: ../../../src/common/doc/functions/is_column_in_table.rst:36
-# 44f17585bbd843cb9fbcacb785ad3130
-msgid "Description"
-msgstr ""
-
-#: ../../../src/common/doc/functions/is_column_in_table.rst:38
-# b57ee4621bd04e6991a266235c5a592a
-msgid "``text`` table name with or without schema component"
-msgstr ""
-
-#: ../../../src/common/doc/functions/is_column_in_table.rst:39
-# ac6b45788cac4cc7a5dcf6e4c44bb9ad
-msgid "``text`` column name to be checked for"
-msgstr ""
-
-#: ../../../src/common/doc/functions/is_column_in_table.rst:43
-# 5f4ac9523c3b487884e6dd8e67b1e082
-msgid "History"
-msgstr ""
-
-#: ../../../src/common/doc/functions/is_column_in_table.rst:44
-# 028851614bd7489991629d8c8f6f8bbf
-msgid "New in version 2.0.0"
-msgstr ""
-
-#: ../../../src/common/doc/functions/is_column_in_table.rst:48
-# 3c3db2df87634ae4b3c8713633f9214f
-msgid "Examples"
-msgstr ""
-
-#: ../../../src/common/doc/functions/is_column_in_table.rst:59
-# 61e31f4885e444eea60640117f0f8264
-msgid "The queries use the :ref:`sampledata` network."
-msgstr ""
-
-#: ../../../src/common/doc/functions/is_column_in_table.rst:63
-# 179da1f0bf5342b49e83327d1e277ca9
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/common/doc/functions/is_column_in_table.rst:65
-# 7e1d2140f94d40db8ce6f48c9a3b119f
-msgid ":ref:`pgr_is_column_indexed`"
-msgstr ""
-
diff --git a/doc/i18n/pot/src/common/doc/functions/is_column_indexed.pot b/doc/i18n/pot/src/common/doc/functions/is_column_indexed.pot
deleted file mode 100644
index 0266a0d..0000000
--- a/doc/i18n/pot/src/common/doc/functions/is_column_indexed.pot
+++ /dev/null
@@ -1,88 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0-dev\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/common/doc/functions/is_column_indexed.rst:13
-# f85a66c48ca94cc9a5bba227e6479482
-msgid "pgr_isColumnIndexed - Check if column is indexed"
-msgstr ""
-
-#: ../../../src/common/doc/functions/is_column_indexed.rst:20
-# a4e361cfe30d494982b2755f507c2df4
-msgid "Name"
-msgstr ""
-
-#: ../../../src/common/doc/functions/is_column_indexed.rst:22
-# 2616614bd27b4f3aac95e5ee66f8771c
-msgid "``pgr_isColumnIndexed`` — Check if a column in a table is indexed."
-msgstr ""
-
-#: ../../../src/common/doc/functions/is_column_indexed.rst:26
-# 4aff78895aaf431bb254a1725ab1bab6
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/common/doc/functions/is_column_indexed.rst:28
-# 62d98585fdfb49d287f711a97ba6f261
-msgid "Returns ``true`` or ``false`` if column “col” in table “tab” is indexed."
-msgstr ""
-
-#: ../../../src/common/doc/functions/is_column_indexed.rst:36
-# 016a3d2a60a745c39afdaa4ba6d24b5f
-msgid "Description"
-msgstr ""
-
-#: ../../../src/common/doc/functions/is_column_indexed.rst:38
-# 5efc6b2a366544cdadac135ab40dee54
-msgid "``text`` table name with or without schema component"
-msgstr ""
-
-#: ../../../src/common/doc/functions/is_column_indexed.rst:39
-# 76548c59562d4c4188ea7a5bbd5b769a
-msgid "``text`` column name to be checked for"
-msgstr ""
-
-#: ../../../src/common/doc/functions/is_column_indexed.rst:43
-# 20bbf0766ada4f7b81807c2e917be118
-msgid "History"
-msgstr ""
-
-#: ../../../src/common/doc/functions/is_column_indexed.rst:44
-# 3ca6785c8cb24235a6b581e63c32bd03
-msgid "New in version 2.0.0"
-msgstr ""
-
-#: ../../../src/common/doc/functions/is_column_indexed.rst:48
-# 89feb49b01e94980935495257bf135a9
-msgid "Examples"
-msgstr ""
-
-#: ../../../src/common/doc/functions/is_column_indexed.rst:59
-# c8b849f8431c42ef9ecdcde47c516f03
-msgid "The queries use the :ref:`sampledata` network."
-msgstr ""
-
-#: ../../../src/common/doc/functions/is_column_indexed.rst:63
-# 4d38c2d872d0425290c2371cbc5d27e8
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/common/doc/functions/is_column_indexed.rst:65
-# ed5ed4b10dc74af48b9de1a8743ec37b
-msgid ":ref:`pgr_is_column_in_table`"
-msgstr ""
-
diff --git a/doc/i18n/pot/src/common/doc/functions/node_network.pot b/doc/i18n/pot/src/common/doc/functions/node_network.pot
deleted file mode 100644
index 1e237a3..0000000
--- a/doc/i18n/pot/src/common/doc/functions/node_network.pot
+++ /dev/null
@@ -1,358 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/common/doc/functions/node_network.rst:13
-# 415578013ce34db4a3787ac6ea14aacc
-msgid "pgr_nodeNetwork"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:20
-# e9c26bba555b4828a00dc49ce2872b5a
-msgid "Name"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:22
-# f0dd86de64e54470915620bca00b63ba
-msgid "``pgr_nodeNetwork`` - Nodes an network edge table."
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:24
-# 679f4270da0b4d9d8fb6652528ffb487
-msgid "Nicolas Ribot"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:25
-# f4f913584ef94bff838c5e7d10ff438a
-msgid "Nicolas Ribot, The source code is released under the MIT-X license."
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:29
-# d62bc53d82d84b0a9f614bbabb22cf6f
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:31
-# e448f6fffc93437fad7db63886f3440f
-msgid "The function reads edges from a not \"noded\" network table and writes the \"noded\" edges into a new table."
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:40
-# 41ae931db7c6429690ebe55f14bf3f82
-msgid "Description"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:42
-# e34d15cecb1146dca66b7ec359baf90c
-msgid "A common problem associated with bringing GIS data into pgRouting is the fact that the data is often not \"noded\" correctly. This will create invalid topologies, which will result in routes that are incorrect."
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:44
-# 9e4e802f4e90417e882cc78db46aba37
-msgid "What we mean by \"noded\" is that at every intersection in the road network all the edges will be broken into separate road segments. There are cases like an over-pass and under-pass intersection where you can not traverse from the over-pass to the under-pass, but this function does not have the ability to detect and accommodate those situations."
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:46
-# 3f8f5e5b87194a6883104358b7477256
-msgid "This function reads the ``edge_table`` table, that has a primary key column ``id`` and geometry column named ``the_geom`` and intersect all the segments in it against all the other segments and then creates a table ``edge_table_noded``. It uses the ``tolerance`` for deciding that multiple nodes within the tolerance are considered the same node."
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:48
-# 5602fcf370ba4d8cb599b63b3f75baba
-msgid "Parameters"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:50
-# 5843a7b94c6c4c77811e371a18a69092
-msgid "``text`` Network table name. (may contain the schema name as well)"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:51
-# c91bb375113b492f84d5fea1ae0fc546
-msgid "``float8`` tolerance for coincident points (in projection unit)dd"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:52
-# 4fa7469277e8421aad3a8cf5f1e0934c
-msgid "``text`` Primary key column name of the network table. Default value is ``id``."
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:53
-# 53ed478d206d4a4e82ceb7861d8e5653
-msgid "``text`` Geometry column name of the network table. Default value is ``the_geom``."
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:54
-# 310e22f89384472688d6355d4bba3b10
-msgid "``text`` Suffix for the new table's. Default value is ``noded``."
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:56
-# 596ff88dc11a40de8abbf7da4478bab0
-msgid "The output table will have for  ``edge_table_noded``"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:58
-# cb73019cb86c4bd39cb518e52bcc84ec
-msgid "``bigint`` Unique identifier for the table"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:59
-# 24b0b9f6e03c4a508072619180b3d0a3
-msgid "``bigint``  Identifier of the edge in original table"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:60
-# 4ccb00203c0a45fc9794aa7fb27ce455
-msgid "``integer`` Segment number of the original edge"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:61
-# 54a883acaa9246c7b1427e348da8b076
-msgid "``integer`` Empty source column to be used with  :ref:`pgr_create_topology` function"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:62
-# 778c798bcc8348debd8bcb136f2f7d13
-msgid "``integer`` Empty target column to be used with  :ref:`pgr_create_topology` function"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:63
-# f136252657c44cb79c81a096741357fe
-msgid "``geometry`` Geometry column of the noded network"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:66
-# 9f34912f29f54b75b43f1ee3033ee603
-msgid "History"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:67
-# f1b11cc9deea46c88aa0b2d004d9a1a7
-msgid "New in version 2.0.0"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:71
-# 841cca977e4d4484822b151c607743ec
-msgid "Example"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:73
-# 8a8ea62cd18b4cf193613f8ee0f90070
-msgid "Let's create the topology for the data in :ref:`sampledata`"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:91
-# 98383300bdb4430082742c4c18f74020
-msgid "Now we can analyze the network."
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:115
-# fe3570f625b5402da6c4b5f45236a261
-msgid "The analysis tell us that the network has a gap and and an intersection. We try to fix the problem using:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:137
-# a484dc23bc074e73ba08cb512cdfe437
-msgid "Inspecting the generated table, we can see that edges 13,14 and 18 has been segmented"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:167
-# b347a18a57974e8baba1de38a166c77c
-msgid "We can create the topology of the new network"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:185
-# 167165f9184a484cb231c5271167716d
-msgid "Now let's analyze the new topology"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:211
-# 0de7b06075294c0c8a7391cf807318ac
-msgid "Images"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:244
-# 58d5e574bdf4403584368d356c7df7b4
-msgid "Comparing the results"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:246
-# 1845a9b80b00497998b4fe06574a92d6
-msgid "Comparing with the Analysis in the original edge_table, we see that."
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:249
-# b88b79fe83dc4bfeb58a04ef2183a06d
-msgid "Before"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:249
-# d1a674a326e248b69c340715f54b9f8e
-msgid "After"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:251
-# dcd9be44b93e418c83427c58e2c5a6ef
-msgid "Table name"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:251
-# 67ee47d202fc4c58b513b2458225cf84
-msgid "edge_table"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:251
-# 37ff6330038e41cf9e924c593156df6d
-msgid "edge_table_noded"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:253
-# 345f0bbc1d35424dbac31091bce17bb6
-msgid "Fields"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:253
-# e00cf7b579524a7181d9bc88ef89e337
-msgid "All original fields"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:253
-# b7a662aeed814ca199602c238105360d
-msgid "Has only basic fields to do a topology analysis"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:255
-# 00aa49d172f644b5b111ea1e533ff2ec
-msgid "Dead ends"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:255
-# a2d40fdc49d24f198ddf745685c9b501
-msgid "Edges with 1 dead end: 1,6,24"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:256
-# 609672ee4d5d4b99867c0d6bc99e3cdd
-msgid "Edges with 2 dead ends  17,18"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:258
-# a3e5db6c7f844f63b8cb1cb0243a3334
-msgid "Edge 17's right node is a dead end because there is no other edge sharing that same node. (cnt=1)"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:255
-# d0aff0fcbc73452496fe7b3624c389fc
-msgid "Edges with 1 dead end: 1-1 ,6-1,14-2, 18-1 17-1 18-2"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:262
-# 12af7d522e2a4f26ac9467afb0178130
-msgid "Isolated segments"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:262
-# d94b2811ed404bb0acaa947902554cd5
-msgid "two isolated segments:  17 and 18 both they have 2 dead ends"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:263
-# 4e8f772974dc4c939bc43eb679a2a091
-msgid "Edge 17 now shares a node with edges 14-1 and 14-2"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:264
-# 4a520a1d55334062bc73b99f29420ca4
-msgid "Edges 18-1 and 18-2 share a node with edges 13-1 and 13-2"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:266
-# bb7df7c6886b46299e9d35f82b0ff18a
-msgid "Gaps"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:266
-# 7fa8265fcae843f5a30d759292ff4679
-msgid "There is a gap between edge 17 and 14 because edge 14 is near to the right node of edge 17"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:266
-# a10c0958aba0468abee75f8813e9db84
-msgid "Edge 14 was segmented Now edges: 14-1 14-2 17 share the same node The tolerance value was taken in account"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:270
-# 9dec0d5c36d84e2ead7e64237552b20d
-msgid "Intersections"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:270
-# 99d6f45e97174002bacddafb18ab7c17
-msgid "Edges 13 and 18 were intersecting"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:270
-# 7d26cb6211274d629519128907861761
-msgid "Edges were segmented, So, now in the interection's point there is a node and the following edges share it: 13-1 13-2 18-1 18-2"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:275
-# 44badddc9c6e4c0ead8f842ea16d9903
-msgid "Now, we are going to include the segments 13-1, 13-2 14-1, 14-2 ,18-1 and 18-2 into our edge-table, copying the data for dir,cost,and reverse cost with tho following steps:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:277
-# fbc22adbcbbb4c4e8c18b101d444ba3b
-msgid "Add a column old_id into edge_table, this column is going to keep track the id of the original edge"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:278
-# 149535f8124447a7969e46eab80cdfaf
-msgid "Insert only the segmented edges, that is, the ones whose max(sub_id) >1"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:291
-# 3022549213bd4c159345c2fc982b0cbb
-msgid "We recreate the topology:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:311
-# 2bf2c86357c643fa825fb1690a2ec630
-msgid "To get the same analysis results as the topology of edge_table_noded, we do the following query:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:338
-# d2001d74045e446e9be443c8bc45134f
-msgid "To get the same analysis results as the original edge_table, we do the following query:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:363
-# 056bc0a747d344fa823a4644c580d5c0
-msgid "Or we can analyze everything because, maybe edge 18 is an overpass, edge 14 is an under pass and there is also a street level juction, and the same happens with edges 17 and 13."
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:390
-# acf5f8a2131748029998badf207366dc
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/common/doc/functions/node_network.rst:392
-# 4e6dd7e7554a4958a751b3654a3c698c
-msgid ":ref:`topology` for an overview of a topology for routing algorithms. :ref:`pgr_analyze_oneway` to analyze directionality of the edges. :ref:`pgr_create_topology` to create a topology based on the geometry. :ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge table."
-msgstr ""
-
diff --git a/doc/i18n/pot/src/common/doc/functions/point_to_id.pot b/doc/i18n/pot/src/common/doc/functions/point_to_id.pot
deleted file mode 100644
index 6f350bb..0000000
--- a/doc/i18n/pot/src/common/doc/functions/point_to_id.pot
+++ /dev/null
@@ -1,98 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0-dev\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/common/doc/functions/point_to_id.rst:13
-# 81e0b58a4b464395b3661da85edfaa90
-msgid "pgr_pointToId - Inserts point into a vertices table"
-msgstr ""
-
-#: ../../../src/common/doc/functions/point_to_id.rst:20
-# 9bebf9f4ff2b43a39470ee284698fa33
-msgid "Name"
-msgstr ""
-
-#: ../../../src/common/doc/functions/point_to_id.rst:22
-# 8fcf7e9e33b448b982f7111389a7e412
-msgid "``pgr_pointToId`` — Inserts a point into a temporary vertices table."
-msgstr ""
-
-#: ../../../src/common/doc/functions/point_to_id.rst:26
-# 1ebe04b75e4444e2970f12bf667f07fa
-msgid "This function should not be used directly. Use :ref:`pgr_createTopology <pgr_create_topology>` instead."
-msgstr ""
-
-#: ../../../src/common/doc/functions/point_to_id.rst:30
-# 8c3303cb3d73446795471f411d835691
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/common/doc/functions/point_to_id.rst:32
-# e17d53fea1674ad692e9d65129c04e5d
-msgid "Inserts a point into a temporary vertices table, and returns an id of a new point or an existing point. Tolerance is the minimal distance between existing points and the new point to create a new point."
-msgstr ""
-
-#: ../../../src/common/doc/functions/point_to_id.rst:40
-# 4b067a809bbd4210baf154f274aab5f0
-msgid "Description"
-msgstr ""
-
-#: ../../../src/common/doc/functions/point_to_id.rst:42
-# de6b0b7b7ae44691a60a709a1245e12c
-msgid "``geometry`` of the existing point"
-msgstr ""
-
-#: ../../../src/common/doc/functions/point_to_id.rst:43
-# e05906cd2cd545eead6a6a277d441ea4
-msgid "``float8`` snapping tolerance of disconnected edges (in projection unit)"
-msgstr ""
-
-#: ../../../src/common/doc/functions/point_to_id.rst:45
-# 7eb52d95126d47efbf485a1397785c34
-msgid "Returns point id (``bigint``) of a new or existing point."
-msgstr ""
-
-#: ../../../src/common/doc/functions/point_to_id.rst:49
-# 78ed162b771d42c1bdadb75ea1806c17
-msgid "History"
-msgstr ""
-
-#: ../../../src/common/doc/functions/point_to_id.rst:50
-# 932b962d76c14946b54db15e77b3c90d
-msgid "Renamed in version 2.0.0"
-msgstr ""
-
-#: ../../../src/common/doc/functions/point_to_id.rst:54
-# c1b2ccd7df20427c88dcf1ebf4b06d82
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/common/doc/functions/point_to_id.rst:56
-# 4dafa239ff7648c2952a2d3ee70671bf
-msgid ":ref:`pgr_create_topology`"
-msgstr ""
-
-#: ../../../src/common/doc/functions/point_to_id.rst:57
-# 8100a50d0b5f4b0cab8d62645becc674
-msgid ":ref:`topology`"
-msgstr ""
-
-#: ../../../src/common/doc/functions/point_to_id.rst:58
-# 86ad35d9d3ce44a696b6dc61c466e04e
-msgid ":ref:`pgr_node_network`"
-msgstr ""
-
diff --git a/doc/i18n/pot/src/common/doc/functions/quote_ident.pot b/doc/i18n/pot/src/common/doc/functions/quote_ident.pot
deleted file mode 100644
index b880898..0000000
--- a/doc/i18n/pot/src/common/doc/functions/quote_ident.pot
+++ /dev/null
@@ -1,83 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0-dev\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/common/doc/functions/quote_ident.rst:13
-# 59a19788e4ba478cb0d046fc07c08179
-msgid "pgr_quote_ident - Quote table name with Schema Component"
-msgstr ""
-
-#: ../../../src/common/doc/functions/quote_ident.rst:20
-# 61a86f593d04476692b89157939b8a1e
-msgid "Name"
-msgstr ""
-
-#: ../../../src/common/doc/functions/quote_ident.rst:22
-# 7ae4a51cc62143058b829f9317d4b282
-msgid "``pgr_quote_ident`` — Quote table name with or without schema component."
-msgstr ""
-
-#: ../../../src/common/doc/functions/quote_ident.rst:26
-# d09400822917498ab08038e0453f93a2
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/common/doc/functions/quote_ident.rst:28
-# 02e534c6d94e4d7fa366eb30dfd82602
-msgid "Function to split a string on ``.`` characters and then quote the components as postgres identifiers and then join them back together with ``.`` characters. Multile ``.`` will get collapsed into a single ``.``, so ``schema...table`` till get returned as ``schema.\"table\"`` and ``Schema.table`` becomes ``\"Schema\".\"table\"``."
-msgstr ""
-
-#: ../../../src/common/doc/functions/quote_ident.rst:37
-# 70b63ad008b14b5cbd540f478c596e97
-msgid "Description"
-msgstr ""
-
-#: ../../../src/common/doc/functions/quote_ident.rst:39
-# 76375d16726e4e8a8c4e02b54bd4b33a
-msgid "``text`` table name with or without schema component"
-msgstr ""
-
-#: ../../../src/common/doc/functions/quote_ident.rst:41
-# d8548a7bfe3542b28f614894ba6f4b84
-msgid "Returns table name with or without schema as ``text``."
-msgstr ""
-
-#: ../../../src/common/doc/functions/quote_ident.rst:45
-# ebc95d6ee53c42f29aa6a18a134d4d20
-msgid "History"
-msgstr ""
-
-#: ../../../src/common/doc/functions/quote_ident.rst:46
-# 6bea52def68e4f05ae56873b8d4f9d1c
-msgid "New in version 2.0.0"
-msgstr ""
-
-#: ../../../src/common/doc/functions/quote_ident.rst:50
-# 21e9cb20b57e4b4681d4e04d5f083d2a
-msgid "Examples"
-msgstr ""
-
-#: ../../../src/common/doc/functions/quote_ident.rst:77
-# 5e3a344a21eb45bfba3e880ae3981a30
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/common/doc/functions/quote_ident.rst:79
-# b4ee52cbb2b74bb59b22b1802748f96d
-msgid "[TBD]"
-msgstr ""
-
diff --git a/doc/i18n/pot/src/common/doc/functions/version.pot b/doc/i18n/pot/src/common/doc/functions/version.pot
deleted file mode 100644
index 5db1e87..0000000
--- a/doc/i18n/pot/src/common/doc/functions/version.pot
+++ /dev/null
@@ -1,113 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0-dev\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/common/doc/functions/version.rst:13
-# dbab41817c8a46459e8f33cf684a7afb
-msgid "pgr_version - Get version information"
-msgstr ""
-
-#: ../../../src/common/doc/functions/version.rst:20
-# 19cd8fb76f754d898f75659f97628007
-msgid "Name"
-msgstr ""
-
-#: ../../../src/common/doc/functions/version.rst:22
-# 5531935ef2384b709c4f1d81ddcdf15c
-msgid "``pgr_version`` — Query for pgRouting version information."
-msgstr ""
-
-#: ../../../src/common/doc/functions/version.rst:26
-# 52175fb13b944970989d3ef4a23a7b66
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/common/doc/functions/version.rst:28
-# 14783f07374f4ccdaa53515b95c17943
-msgid "Returns a table with pgRouting version information."
-msgstr ""
-
-#: ../../../src/common/doc/functions/version.rst:36
-# 6d5995ab278d476d80f54ab15b8af686
-msgid "Description"
-msgstr ""
-
-#: ../../../src/common/doc/functions/version.rst:38
-# b4baa0103a55431abaa586f16230af8c
-msgid "Returns a table with:"
-msgstr ""
-
-#: ../../../src/common/doc/functions/version.rst:40
-# 7d8a75cf72b840b39e0eea6140a5839d
-msgid "``varchar`` pgRouting version"
-msgstr ""
-
-#: ../../../src/common/doc/functions/version.rst:41
-# 2af5168bce0a4b03bf2b097d3099c850
-msgid "``varchar`` Git tag of pgRouting build"
-msgstr ""
-
-#: ../../../src/common/doc/functions/version.rst:42
-# b4444b51e41549b399751bcba194a8a8
-msgid "``varchar`` Git hash of pgRouting build"
-msgstr ""
-
-#: ../../../src/common/doc/functions/version.rst:43
-# 6737b5df55e94bb185f64d0de3389f3e
-msgid "``varchar`` Git branch of pgRouting build"
-msgstr ""
-
-#: ../../../src/common/doc/functions/version.rst:44
-# e5b735559b2949b09899e982d6f2ecf3
-msgid "``varchar`` Boost version"
-msgstr ""
-
-#: ../../../src/common/doc/functions/version.rst:48
-# 9042ea468aba4c4490b7124bbf14aacb
-msgid "History"
-msgstr ""
-
-#: ../../../src/common/doc/functions/version.rst:49
-# 3829660b5485491083028df2cb267d03
-msgid "New in version 2.0.0"
-msgstr ""
-
-#: ../../../src/common/doc/functions/version.rst:53
-# 8638cdf8594940cbad096c9ac3d261ad
-msgid "Examples"
-msgstr ""
-
-#: ../../../src/common/doc/functions/version.rst:55
-# d80877f2810741ada5737305d484de11
-msgid "Query for full version string"
-msgstr ""
-
-#: ../../../src/common/doc/functions/version.rst:67
-# 2ff90cee91e644fab554650cc24bd3bf
-msgid "Query for ``version`` and ``boost`` attribute"
-msgstr ""
-
-#: ../../../src/common/doc/functions/version.rst:80
-# 6c3a1c332dc54ea2a01d81c5f5f9dcc1
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/common/doc/functions/version.rst:82
-# 1eeb4f68d3c342dbbadade6c52b87baf
-msgid ":ref:`pgr_versionless`"
-msgstr ""
-
diff --git a/doc/i18n/pot/src/common/doc/functions/versionless.pot b/doc/i18n/pot/src/common/doc/functions/versionless.pot
deleted file mode 100644
index d994726..0000000
--- a/doc/i18n/pot/src/common/doc/functions/versionless.pot
+++ /dev/null
@@ -1,83 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0-dev\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/common/doc/functions/versionless.rst:13
-# f15b37fde8e64b508893630a0291dc6a
-msgid "pgr_versionless - Compare version numbers"
-msgstr ""
-
-#: ../../../src/common/doc/functions/versionless.rst:20
-# cd0dcc3f3489468ab55c89598715d895
-msgid "Name"
-msgstr ""
-
-#: ../../../src/common/doc/functions/versionless.rst:22
-# e2f0eb00eca142c8bc7d71b317604c7e
-msgid "``pgr_version`` — Compare two version numbers and return if smaller."
-msgstr ""
-
-#: ../../../src/common/doc/functions/versionless.rst:26
-# d85cf15bf8894e158945855624a422f5
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/common/doc/functions/versionless.rst:28
-# ed2cb6f5c03645b3ab2a296d062c1eb9
-msgid "Returns ``true`` if the first version number is smaller than the second version number. Otherwise returns ``false``."
-msgstr ""
-
-#: ../../../src/common/doc/functions/versionless.rst:36
-# a11f675500e140ae997cdb4f167d2da4
-msgid "Description"
-msgstr ""
-
-#: ../../../src/common/doc/functions/versionless.rst:38
-# 7d1ac8fa4fce4362965d8587a3cd7099
-msgid "``text`` first version number"
-msgstr ""
-
-#: ../../../src/common/doc/functions/versionless.rst:39
-# 1d8a5a36a0fa4da19892193a11578a08
-msgid "``text`` second version number"
-msgstr ""
-
-#: ../../../src/common/doc/functions/versionless.rst:43
-# a32770a22cf849cb96bd78825f332825
-msgid "History"
-msgstr ""
-
-#: ../../../src/common/doc/functions/versionless.rst:44
-# 14ef379da17a48389cb627817c173253
-msgid "New in version 2.0.0"
-msgstr ""
-
-#: ../../../src/common/doc/functions/versionless.rst:48
-# 7a3d2290bca342b79b4105e7aee330b0
-msgid "Examples"
-msgstr ""
-
-#: ../../../src/common/doc/functions/versionless.rst:61
-# ca2f13a6ce4444258be7f46d40c8bd2a
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/common/doc/functions/versionless.rst:63
-# a621baf581ff4ba8b4b03d3481d5a660
-msgid ":ref:`pgr_version`"
-msgstr ""
-
diff --git a/doc/i18n/pot/src/common/doc/index.pot b/doc/i18n/pot/src/common/doc/index.pot
deleted file mode 100644
index e384a0e..0000000
--- a/doc/i18n/pot/src/common/doc/index.pot
+++ /dev/null
@@ -1,23 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/common/doc/index.rst:13
-# def264c0f9e943f4bfe3be4277eaf0e4
-msgid "Common Functions"
-msgstr ""
-
diff --git a/doc/i18n/pot/src/common/doc/legacy.pot b/doc/i18n/pot/src/common/doc/legacy.pot
deleted file mode 100644
index b27716b..0000000
--- a/doc/i18n/pot/src/common/doc/legacy.pot
+++ /dev/null
@@ -1,48 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/common/doc/legacy.rst:13
-# 6685ac176b6d45fb8a01eac642baa7f9
-msgid "Legacy Functions"
-msgstr ""
-
-#: ../../../src/common/doc/legacy.rst:15
-# 66cd7e014efa481388e76134375f5514
-msgid "pgRouting 2.0 release has total restructured the function naming and obsoleted many of the functions that were available in the 1.x releases. While we realize that this may inconvenience our existing users, we felt this was needed for the long term viability of the project to be more response to our users and to be able to add new functionality and test existing functionality."
-msgstr ""
-
-#: ../../../src/common/doc/legacy.rst:17
-# 03594f8f7bbb4164af6047d47b6940e8
-msgid "We have made a minimal effort to save most of these function and distribute with the release in a file ``pgrouting_legacy.sql`` that is not part of the pgrouting extension and is not supported. If you can use these functions that is great. We have not tested any of these functions so if you find issues and want to post a pull request or a patch to help other users that is fine, but it is likely this file will be removed in a future release and we strongly recommend that you conver [...]
-msgstr ""
-
-#: ../../../src/common/doc/legacy.rst:19
-# bf5ae1fb6ad540ad91201915140cb5eb
-msgid "The follow is a list of TYPEs, CASTs and FUNCTION included in the ``pgrouting_legacy.sql`` file. The list is provide as a convenience but these functions are deprecated, not supported, and probably will need some changes to get them to work."
-msgstr ""
-
-#: ../../../src/common/doc/legacy.rst:23
-# 2bb0592e548e4456b3464582051ee11d
-msgid "TYPEs & CASTs"
-msgstr ""
-
-#: ../../../src/common/doc/legacy.rst:34
-# 37a0d889dbcb4f2b8844030f7eede4bb
-msgid "FUNCTIONs"
-msgstr ""
-
diff --git a/doc/i18n/pot/src/common/doc/types.pot b/doc/i18n/pot/src/common/doc/types.pot
deleted file mode 100644
index 38af198..0000000
--- a/doc/i18n/pot/src/common/doc/types.pot
+++ /dev/null
@@ -1,28 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0-dev (129919f develop)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0-dev\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-08-02 16:47\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/common/doc/types.rst:13
-# a647839f49f94a9997479367dc35d13f
-msgid "Custom Types"
-msgstr ""
-
-#: ../../../src/common/doc/types.rst:15
-# f00f6611879f4afd961586e955284a41
-msgid "The following are commonly used data types for some of the pgRouting functions."
-msgstr ""
-
diff --git a/doc/i18n/pot/src/common/doc/types/cost_result.pot b/doc/i18n/pot/src/common/doc/types/cost_result.pot
deleted file mode 100644
index f1a41dc..0000000
--- a/doc/i18n/pot/src/common/doc/types/cost_result.pot
+++ /dev/null
@@ -1,110 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/common/doc/types/cost_result.rst:13
-# 6eea8f1b01374b3485d735489b86fc68
-msgid "pgr_costResult[]"
-msgstr ""
-
-#: ../../../src/common/doc/types/cost_result.rst:20
-#: ../../../src/common/doc/types/cost_result.rst:54
-# 8bfa7c6addc040afa727976de846555a
-# c7390b41f982471b9477839d5d8e5369
-msgid "Name"
-msgstr ""
-
-#: ../../../src/common/doc/types/cost_result.rst:22
-# 23d61d0157514208a7ef251c38ac6b19
-msgid "``pgr_costResult[]`` — A set of records to describe a path result with cost attribute."
-msgstr ""
-
-#: ../../../src/common/doc/types/cost_result.rst:26
-#: ../../../src/common/doc/types/cost_result.rst:60
-# 7fc692e78f574159895884e2dd63fc0c
-# 41788da9d61e4459a73bac9c64def620
-msgid "Description"
-msgstr ""
-
-#: ../../../src/common/doc/types/cost_result.rst:38
-#: ../../../src/common/doc/types/cost_result.rst:73
-# cb1dbe621f784a38823b7d6b35bebc8d
-# e68154e687d344a5917bdc81e2ae7d1d
-msgid "sequential ID indicating the path order"
-msgstr ""
-
-#: ../../../src/common/doc/types/cost_result.rst:39
-#: ../../../src/common/doc/types/cost_result.rst:75
-# 03f92c10733a4fa4b8e1ff5dce1eee15
-# 9d9ac5a51d144174b1b718ec2aff353e
-msgid "generic name, to be specified by the function, typically the node id"
-msgstr ""
-
-#: ../../../src/common/doc/types/cost_result.rst:40
-#: ../../../src/common/doc/types/cost_result.rst:76
-# 2eea4d5c48b348fe9a97e07495d98de0
-# 8c6b23c4fa47480090c19db1177d3199
-msgid "generic name, to be specified by the function, typically the edge id"
-msgstr ""
-
-#: ../../../src/common/doc/types/cost_result.rst:41
-#: ../../../src/common/doc/types/cost_result.rst:77
-# cc054e37302a42e5b57b5f32db2c4e04
-# 8646ba20eec5430499ce913f0eb22a5f
-msgid "cost attribute"
-msgstr ""
-
-#: ../../../src/common/doc/types/cost_result.rst:47
-# 9800eda19f1d4da2af5db30064711728
-msgid "pgr_costResult3[] - Multiple Path Results with Cost"
-msgstr ""
-
-#: ../../../src/common/doc/types/cost_result.rst:56
-# 714e01dfd1fe44489e99d0df9b34b01f
-msgid "``pgr_costResult3[]`` — A set of records to describe a path result with cost attribute."
-msgstr ""
-
-#: ../../../src/common/doc/types/cost_result.rst:74
-# 0935f00f5e054308a38e29057fe7489b
-msgid "generic name, to be specified by the function, typically the path id"
-msgstr ""
-
-#: ../../../src/common/doc/types/cost_result.rst:81
-# 122f35171d6b4dc4b74bf0dbe622d1c8
-msgid "History"
-msgstr ""
-
-#: ../../../src/common/doc/types/cost_result.rst:82
-# 2db1c9c8a0cd471b8c88448975d8c934
-msgid "New in version 2.0.0"
-msgstr ""
-
-#: ../../../src/common/doc/types/cost_result.rst:83
-# 24e23657366d4fae8235c18053f57cc4
-msgid "Replaces ``path_result``"
-msgstr ""
-
-#: ../../../src/common/doc/types/cost_result.rst:87
-# d7863e6181a64523a200c37c57c6d53c
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/common/doc/types/cost_result.rst:89
-# b449ee32d2244a62be713e11a2398d02
-msgid ":ref:`introduction`"
-msgstr ""
-
diff --git a/doc/i18n/pot/src/common/doc/types/geom_result.pot b/doc/i18n/pot/src/common/doc/types/geom_result.pot
deleted file mode 100644
index 2dc74fa..0000000
--- a/doc/i18n/pot/src/common/doc/types/geom_result.pot
+++ /dev/null
@@ -1,80 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/common/doc/types/geom_result.rst:13
-# 26028d81209d4210a6092ad0c5e43ef0
-msgid "pgr_geomResult[]"
-msgstr ""
-
-#: ../../../src/common/doc/types/geom_result.rst:20
-# 13c92d992ff94f93b86c6052d1c88276
-msgid "Name"
-msgstr ""
-
-#: ../../../src/common/doc/types/geom_result.rst:22
-# 3385db8c8de94282b5be3b66790790e4
-msgid "``pgr_geomResult[]`` — A set of records to describe a path result with geometry attribute."
-msgstr ""
-
-#: ../../../src/common/doc/types/geom_result.rst:26
-# 067e22fc726a43278ed7cf3962886cb1
-msgid "Description"
-msgstr ""
-
-#: ../../../src/common/doc/types/geom_result.rst:38
-# 81fdf2a6ebd14f9b922f14fb72c36d15
-msgid "sequential ID indicating the path order"
-msgstr ""
-
-#: ../../../src/common/doc/types/geom_result.rst:39
-#: ../../../src/common/doc/types/geom_result.rst:40
-# f0f901642c64492bad7c9d51436a00a6
-# 1f4519a97f1d4e519c2ff671e49e07e2
-msgid "generic name, to be specified by the function"
-msgstr ""
-
-#: ../../../src/common/doc/types/geom_result.rst:41
-# 341f0af76c5e4baab56f3b2ca168fb71
-msgid "geometry attribute"
-msgstr ""
-
-#: ../../../src/common/doc/types/geom_result.rst:45
-# 631e262464724322bdb4bc53a9666a12
-msgid "History"
-msgstr ""
-
-#: ../../../src/common/doc/types/geom_result.rst:46
-# 58d5a83853b14bf2b721ac311fb0a380
-msgid "New in version 2.0.0"
-msgstr ""
-
-#: ../../../src/common/doc/types/geom_result.rst:47
-# 470d17263e5f43f5a8a0af1837e87967
-msgid "Replaces ``geoms``"
-msgstr ""
-
-#: ../../../src/common/doc/types/geom_result.rst:51
-# c6e97feee2de4ebc9fc27ffb443fb9bd
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/common/doc/types/geom_result.rst:53
-# a25696b33a534f7b84e2433f0cead81b
-msgid ":ref:`introduction`"
-msgstr ""
-
diff --git a/doc/i18n/pot/src/common/doc/types/index.pot b/doc/i18n/pot/src/common/doc/types/index.pot
deleted file mode 100644
index 7ba2873..0000000
--- a/doc/i18n/pot/src/common/doc/types/index.pot
+++ /dev/null
@@ -1,43 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/common/doc/types/index.rst:13
-# 7c41ce7b163843488f583393b915cb86
-msgid "pgRouting Data Types"
-msgstr ""
-
-#: ../../../src/common/doc/types/index.rst:15
-# 7829851e55604125a270140d66a1ac90
-msgid "The following are commonly used data types for some of the pgRouting functions."
-msgstr ""
-
-#: ../../../src/common/doc/types/index.rst:17
-# faf963e5d961477ba9f5d5d1d81270b8
-msgid ":ref:`type_cost_result` -  A set of records to describe a path result with cost attribute."
-msgstr ""
-
-#: ../../../src/common/doc/types/index.rst:18
-# 61541920ce914f74b16d0a61a3d00c70
-msgid ":ref:`pgr_costResult3[] <type_cost_result3>` - A set of records to describe a path result with cost attribute."
-msgstr ""
-
-#: ../../../src/common/doc/types/index.rst:19
-# 1050c9881561433a9fb376b183ffc0d2
-msgid ":ref:`pgr_geomResult <type_geom_result>` - A set of records to describe a path result with geometry attribute."
-msgstr ""
-
diff --git a/doc/i18n/pot/src/common/doc/utilities/end_point.pot b/doc/i18n/pot/src/common/doc/utilities/end_point.pot
deleted file mode 100644
index b6ac0d1..0000000
--- a/doc/i18n/pot/src/common/doc/utilities/end_point.pot
+++ /dev/null
@@ -1,90 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/common/doc/utilities/end_point.rst:13
-# 6cebbdd85e6945bfa9cafb9a5982c546
-msgid "pgr_endPoint"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/end_point.rst:20
-# 045307769ed24168935d9b6c6bf6c30e
-msgid "Name"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/end_point.rst:22
-# 93f527ab4669454ea6168501b2061f07
-msgid "``pgr_endPoint`` — Returns an end point of a (multi)linestring geometry."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/end_point.rst:24
-# d33216fe0e844048af08255bf6a6ddd6
-msgid "This function is intended for the developer's aid."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/end_point.rst:28
-# 39bea53092fd40b4ad3986450abb8629
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/end_point.rst:30
-#: ../../../src/common/doc/utilities/end_point.rst:44
-# c0445bd91f26473aa475b5ee5cc891a9
-# c946ccfe66dd4386b291cda29045536c
-msgid "Returns the geometry of the end point of the first LINESTRING of ``geom``."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/end_point.rst:38
-# 7eb29fbc5d7d401fa8a3649c14d45145
-msgid "Description"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/end_point.rst:41
-# 34ae5b1615bd4f13a79b0fa2b2083ea6
-msgid "Parameters"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/end_point.rst:42
-# 27cf4b1be0f64a198ee7b53aaf668dca
-msgid "``geometry`` Geometry of a MULTILINESTRING or LINESTRING."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/end_point.rst:49
-# e31e97e4f8c345e1a70e0777d7e8b8e7
-msgid "History"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/end_point.rst:50
-# 881eef9e0f41473c8fd665512a3e841f
-msgid "New in version 2.0.0"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/end_point.rst:55
-# 65ff973c398846eb8a6951c0d9ba6aab
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/end_point.rst:57
-# cfe22f1c5c6e468bb860b1b4c449fb60
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/end_point.rst:58
-# e1ddf7fa1e004c11bc7590169b8c249e
-msgid ":ref:`pgr_start_point` to get the start point of a (multi)linestring."
-msgstr ""
-
diff --git a/doc/i18n/pot/src/common/doc/utilities/get_column_name.pot b/doc/i18n/pot/src/common/doc/utilities/get_column_name.pot
deleted file mode 100644
index 52e2bb6..0000000
--- a/doc/i18n/pot/src/common/doc/utilities/get_column_name.pot
+++ /dev/null
@@ -1,133 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/common/doc/utilities/get_column_name.rst:13
-# d49238818e5441fbb003168cc8e36b08
-msgid "pgr_getColumnName"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_column_name.rst:20
-# 1b7e09aeb16a4ccbbf851453bd60a522
-msgid "Name"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_column_name.rst:22
-# 9751df61b65e4122909bcd1bfd5daa1e
-msgid "``pgr_getColumnName`` — Retrieves the name of the column as is stored in the postgres administration tables."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_column_name.rst:24
-# 8e088e94c23e4926b1d684da3be14091
-msgid "This function is intended for the developer’s aid."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_column_name.rst:27
-# 4963da97fad54842a35ceeaf5c365f93
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_column_name.rst:29
-# f845091933a74d26ad1c2abab2d9f3f1
-msgid "Returns a ``text`` contining the registered name of the column."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_column_name.rst:37
-# 7626c6283814486098d2db7dce1e5ee0
-msgid "Description"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_column_name.rst:39
-# a3eecb8ace4d44bc8c84dac16b8dee6a
-msgid "Parameters"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_column_name.rst:41
-# aac7efeb75b944969d257f64e18550c2
-msgid "``text`` table name with or without schema component."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_column_name.rst:42
-# 6cdd6d7187f14505affadf51a351344b
-msgid "``text`` column name to be retrived."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_column_name.rst:44
-# 53859c69e3dc420a81f891829adc0cb8
-msgid "Returns"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_column_name.rst:46
-# 985e26d6fb894bf58d55d1fc4b67dcb4
-msgid "``text`` containing the registered name of the column."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_column_name.rst:47
-# 7b4cddea648c49aab48528518ae23b89
-msgid "``NULL`` when :"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_column_name.rst:49
-# 14b036b056904908ac4c986f4bab1ba2
-msgid "The table “tab” is not found or"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_column_name.rst:50
-# 0cad9c64ea2641e5b90cbb621af6fa7f
-msgid "Column “col” is not found in table “tab” in the postgres administration tables."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_column_name.rst:53
-# 7fbe20f0f64f48248fca186a65a2139e
-msgid "History"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_column_name.rst:54
-# 8ac0d8d22a9d455da9ba40aa7a2f6ab4
-msgid "New in version 2.0.0"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_column_name.rst:58
-# 971bdf07d50d4c2381a495299db57f97
-msgid "Examples"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_column_name.rst:76
-# cd55f28f2d9a448e9e9015eaa28797f7
-msgid "The queries use the :ref:`sampledata` network."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_column_name.rst:80
-# ab741d72b4fb458cbedc734112be4934
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_column_name.rst:82
-# 48e38867d8f347a99ce546e04cfca8fb
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_column_name.rst:83
-# 64a358930cbb4f5dbb82348afec3c8d8
-msgid ":ref:`pgr_is_column_in_table` to check only for the existance of the column."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_column_name.rst:84
-# 7508ea8805a44c6ea2c80afc64a3302a
-msgid ":ref:`pgr_get_table_name` to retrieve the name of the table as is stored in the postgres administration tables."
-msgstr ""
-
diff --git a/doc/i18n/pot/src/common/doc/utilities/get_table_name.pot b/doc/i18n/pot/src/common/doc/utilities/get_table_name.pot
deleted file mode 100644
index 3501e3e..0000000
--- a/doc/i18n/pot/src/common/doc/utilities/get_table_name.pot
+++ /dev/null
@@ -1,142 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/common/doc/utilities/get_table_name.rst:13
-# 3f3fd8384da6489cbc835dc268555fee
-msgid "pgr_getTableName"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_table_name.rst:20
-# 8855f6077b3f4ebea35bd5365ff01fb0
-msgid "Name"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_table_name.rst:22
-# 7429cee05b494752b88985db791e2d51
-msgid "``pgr_getTableName`` — Retrieves the name of the column as is stored in the postgres administration tables."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_table_name.rst:24
-# 23dd1fe54bba4241a83a90d42835c15a
-msgid "This function is intended for the developer’s aid."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_table_name.rst:27
-# a67877e2e9bb4380a0b9efd9488a1c03
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_table_name.rst:29
-# 193d8f1279824afd930f19671a122fb2
-msgid "Returns a record containing the registered names of the table and of the schema it belongs to."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_table_name.rst:37
-# b0515c911d4c47b184357eb437dbf25a
-msgid "Description"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_table_name.rst:39
-# 084ab78239744cd7b30434d81f195f46
-msgid "Parameters"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_table_name.rst:41
-# c448a975fe854447b125baca2309ed92
-msgid "``text`` table name with or without schema component."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_table_name.rst:43
-# d60cb02a488b400ebd46e7a938f5f861
-msgid "Returns"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_table_name.rst:47
-# af61fb8a959f4c658b929418fea3695a
-msgid "``text`` containing the registered name of the schema of table \"tab\"."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_table_name.rst:49
-# 75ae2b53a0db422282b2b1aa10a90604
-msgid "when the schema was not provided in \"tab\" the current schema is used."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_table_name.rst:51
-#: ../../../src/common/doc/utilities/get_table_name.rst:58
-# 0e79dbba80bd4be9a437093436b63671
-# b09a352846da470c8f164759c499fbdf
-msgid "``NULL`` when :"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_table_name.rst:53
-#: ../../../src/common/doc/utilities/get_table_name.rst:60
-# 6c0302b21c664daaa7b0299e27bd5144
-# d4a6ebe8ccc8438a8af4e6b191bdf4f6
-msgid "The schema is not found in the postgres administration tables."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_table_name.rst:57
-# 2cd1eb0c67c944329d4bbfa881dd4508
-msgid "``text`` containing the registered name of the table \"tab\"."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_table_name.rst:61
-# 02d3fbe3f8644e5f9f2b07692bb6a4e1
-msgid "The table \"tab\" is not registered under the schema ``sname`` in the postgres administration tables"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_table_name.rst:65
-# bf7d6b7eb4ce418fa8b6c0827b898c03
-msgid "History"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_table_name.rst:66
-# 85f842e157ab4b6aa440075019b0953c
-msgid "New in version 2.0.0"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_table_name.rst:70
-# bb7530b777084e05b3b3b1c39e969f65
-msgid "Examples"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_table_name.rst:95
-# 494e6a949cc24db0bf24f2a34d647994
-msgid "The examples use the :ref:`sampledata` network."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_table_name.rst:99
-# d4acb2f2721b4e4d8ae90e116e30f946
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_table_name.rst:101
-# 4efeaf912c6d4adca5d3f74221029a95
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_table_name.rst:102
-# 9d5cb0bebe6541c9a63ae66cf5d338e1
-msgid ":ref:`pgr_is_column_in_table` to check only for the existance of the column."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/get_table_name.rst:103
-# 52bdc6b75c0547c0834be6a99ead7e5e
-msgid ":ref:`pgr_get_table_name` to retrieve the name of the table as is stored in the postgres administration tables."
-msgstr ""
-
diff --git a/doc/i18n/pot/src/common/doc/utilities/index.pot b/doc/i18n/pot/src/common/doc/utilities/index.pot
deleted file mode 100644
index e744671..0000000
--- a/doc/i18n/pot/src/common/doc/utilities/index.pot
+++ /dev/null
@@ -1,78 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/common/doc/utilities/index.rst:13
-# 0e77eadde21444ae8a4bc5dfa8fcba26
-msgid "Developers's Functions"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/index.rst:15
-# 44d25d4823da463ebe59f9505bc73b29
-msgid "Functions to help you develop a wrapper or a recipe"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/index.rst:17
-# 97ca2436709a413e9bae93f5ec5a539d
-msgid ":ref:`pgr_get_column_name` - to get the name of the column as is stored in the postgres administration tables."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/index.rst:18
-# 48f28d2862a24e5c847dcea700e620b8
-msgid ":ref:`pgr_get_table_name` - to retrieve the name of the table as is stored in the postgres administration tables."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/index.rst:19
-# f8890b6d41d04962882925746b968dc8
-msgid ":ref:`pgr_is_column_indexed` - to check if the column is indexed."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/index.rst:20
-# 6232be8593ed443c99052062d09b347c
-msgid ":ref:`pgr_is_column_in_table` - to check only for the existance of the column."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/index.rst:21
-# 9babeb7d18094806b7e34f5fd45a5a4c
-msgid ":ref:`pgr_point_to_id` -to insert/get the id of the inserted point in a vertices table."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/index.rst:22
-# 2c5079432fc74c5b90347fd8ce15d598
-msgid ":ref:`pgr_quote_ident` - to quotes the input text to be used as an identifier in an SQL statement string."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/index.rst:23
-# f90adbe880bd4fb8a26d5b8d422f1ffa
-msgid ":ref:`pgr_version` - to get pgRouting's version information."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/index.rst:24
-# 6a11b5d8649c487e8c0ec8e47374f58c
-msgid ":ref:`pgr_versionless` - to compare two version numbers."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/index.rst:25
-# 13fa2ec9535a49f896660871c5b17d8f
-msgid ":ref:`pgr_start_point` - to get the start point of a (multi)linestring."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/index.rst:26
-# 91fb0530fd06415da1b7ce63b4ee387d
-msgid ":ref:`pgr_end_point` - to get the end point of a (multi)linestring."
-msgstr ""
-
diff --git a/doc/i18n/pot/src/common/doc/utilities/is_column_in_table.pot b/doc/i18n/pot/src/common/doc/utilities/is_column_in_table.pot
deleted file mode 100644
index 25930d0..0000000
--- a/doc/i18n/pot/src/common/doc/utilities/is_column_in_table.pot
+++ /dev/null
@@ -1,133 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:13
-# 249bbcc592de4defa96a706809fc3785
-msgid "pgr_isColumnInTable"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:20
-# 4fc8574f1bba4c1c97c68686a8c17ea7
-msgid "Name"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:22
-# d320ba4dd38a406096f36129cf93bb5c
-msgid "``pgr_isColumnInTable`` — Check if a column is in the table."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:24
-# 1f01a91f656f49efaa498ecbcf900842
-msgid "This function is intended for the developer’s aid."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:27
-# 3dbea64f332247db87bafa9d74054e32
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:29
-# 94612313263543b8a1f2ad219d40aaa2
-msgid "Returns ``true`` when the column “col” is in table “tab”."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:37
-# f7dcd242fd4842e285f2fbb8bbf812ba
-msgid "Description"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:39
-# 264091f88283469fb410faef9afd05ba
-msgid "``text`` Table name with or without schema component."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:40
-# b9b1222fcb2a4cf2aa4d26432d91020f
-msgid "``text`` Column name to be checked for."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:42
-# 508f280252014ae5b55822eae9be2223
-msgid "Returns:"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:44
-# b8660f2c224f432b9f8d2f5fe61356f7
-msgid "``true`` when the column “col” is in table “tab”."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:45
-# a98df291793349c79cf9761f21f67f1f
-msgid "``false`` when:"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:47
-# b2c36f120012430cbac241a9e1ab9659
-msgid "The table \"tab\" is not found or"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:48
-# 451ea2ad463f41a1a2355879e20b10f9
-msgid "Column “col” is not found in table “tab”"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:51
-# 2823c34d7c7b4630824516676011afff
-msgid "History"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:52
-# d1093638c71f4386bbe1c99e16ede035
-msgid "New in version 2.0.0"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:56
-# 558127c6356443dcadef96ae091e326c
-msgid "Examples"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:76
-# 5dee6228faa249d3943f6af3cc20ae12
-msgid "The example use the :ref:`sampledata` network."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:80
-# c3ae4d108abb43cf9a5b58742432b4a6
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:82
-# b2652f8ce39f4f8aae2f8877fc762682
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:83
-# 94e580c9269642828c55365079238843
-msgid ":ref:`pgr_is_column_indexed` to check if the column is indexed."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:84
-# 9c693d02d3254bd9835275539c98d986
-msgid ":ref:`pgr_get_column_name` to get the name of the column as is stored in the postgres administration tables."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_in_table.rst:85
-# ee582e3bef7042ea91f53e14a2ce7961
-msgid ":ref:`pgr_get_table_name` to get the name of the table as is stored in the postgres administration tables."
-msgstr ""
-
diff --git a/doc/i18n/pot/src/common/doc/utilities/is_column_indexed.pot b/doc/i18n/pot/src/common/doc/utilities/is_column_indexed.pot
deleted file mode 100644
index 7688da9..0000000
--- a/doc/i18n/pot/src/common/doc/utilities/is_column_indexed.pot
+++ /dev/null
@@ -1,138 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:13
-# 338233797ea2499c83046e9c714ee022
-msgid "pgr_isColumnIndexed"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:20
-# 86f6f8b2a66d411aabc06f998eed3efa
-msgid "Name"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:22
-# c2292040ff08489192f7bb15a1a5f5ac
-msgid "``pgr_isColumnIndexed`` — Check if a column in a table is indexed."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:24
-# 1c0cefb08636441ea6e8c755302096a6
-msgid "This function is intended for the developer’s aid."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:27
-# 4d3d243794b240f58a3f5f28b1d7361a
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:29
-# e3a98a6c4893453081cd8aedb086f1c9
-msgid "Returns ``true`` when the column “col” in table “tab” is indexed."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:37
-# dfb4eaa587d44b0690fd251ab5185e98
-msgid "Description"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:39
-# f511d859bfe046989023539c1f2d1129
-msgid "``text`` Table name with or without schema component."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:40
-# f0a2cd529ee941aaaed970c2538116af
-msgid "``text`` Column name to be checked for."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:42
-# 70e6418103d44a1fbeeb97e4b5ecc5e8
-msgid "Returns:"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:44
-# f99c66f2171347bb9e36f99bbd69efaf
-msgid "``true`` when the column “col” in table “tab” is indexed."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:45
-# 292f41c8c5104692a8bbf659a84fc378
-msgid "``false`` when:"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:47
-# 701997927e524450bd924bf7134bdfc7
-msgid "The table \"tab\" is not found or"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:48
-# 41b37ba61c8c4213bb1df5dd8e65ce87
-msgid "Column “col” is not found in table “tab” or"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:49
-# 29dd85d5aaf942b8b19cf7cad5a4a95a
-msgid "Column \"col\" in table \"tab\" is not indexed"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:52
-# ec660d6d14484fcf890cdaff3841fbb6
-msgid "History"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:53
-# 502e0dcfa9c94d5d8f32f08805cccc61
-msgid "New in version 2.0.0"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:57
-# 92ffab70ca704c10a6cc4cca64f9684e
-msgid "Examples"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:77
-# 93c2e790240f41c29cd21b34f7c38e69
-msgid "The example use the :ref:`sampledata` network."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:81
-# df3aed4fbcc1436b909badbac38c665d
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:83
-# f7acee1408dc4fbfa921dc44d4984832
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:84
-# 7357e1d9b3dc4d16909ae3c8a5bae25c
-msgid ":ref:`pgr_is_column_in_table` to check only for the existance of the column in the table."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:85
-# fd278b288b0d47929ada365ea3298a48
-msgid ":ref:`pgr_get_column_name` to get the name of the column as is stored in the postgres administration tables."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/is_column_indexed.rst:86
-# 0acfa104130e4bad85d03eb9de98cc6f
-msgid ":ref:`pgr_get_table_name` to get the name of the table as is stored in the postgres administration tables."
-msgstr ""
-
diff --git a/doc/i18n/pot/src/common/doc/utilities/point_to_id.pot b/doc/i18n/pot/src/common/doc/utilities/point_to_id.pot
deleted file mode 100644
index 9375c25..0000000
--- a/doc/i18n/pot/src/common/doc/utilities/point_to_id.pot
+++ /dev/null
@@ -1,123 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/common/doc/utilities/point_to_id.rst:13
-# bb4d35d81dbf419d92135993b25bf3f2
-msgid "pgr_pointToId"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/point_to_id.rst:20
-# 5f8bbbeb7257407eaccbcd4eb1cdde5f
-msgid "Name"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/point_to_id.rst:22
-# 4e786b0d97c64529a693cb93a0066fbe
-msgid "``pgr_pointToId`` — Inserts a point into a vertices table and returns the corresponig id."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/point_to_id.rst:26
-# 0540395d30d84b3a88f9496a96eb607f
-msgid "This function is intended for the developer's aid. Use :ref:`pgr_createTopology <pgr_create_topology>` or :ref:`pgr_createVerticesTable <pgr_create_vert_table>` instead."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/point_to_id.rst:30
-# 0468d329e0c847ed9ae5519621e0321b
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/point_to_id.rst:32
-# 48fa8684361f4511b857e0edea5433c1
-msgid "This function returns the ``id`` of the row in the vertices table that corresponds to the ``point`` geometry"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/point_to_id.rst:40
-# ea3ee86983c54a158d1e648ad52f94f7
-msgid "Description"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/point_to_id.rst:42
-# dcc1718fe36d483b8690cc772cc0a27d
-msgid "``geometry`` \"POINT\" geometry to be inserted."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/point_to_id.rst:43
-# 82ac56ebeb534d39aa4a80574f9f1559
-msgid "``float8`` Snapping tolerance of disconnected edges. (in projection unit)"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/point_to_id.rst:44
-# 9e2de147d9e14ece8cce6efc5c40e083
-msgid "``text`` Vertices table name WITH schema included."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/point_to_id.rst:45
-# 5ac57ef6195b479e94642402fbc4f3a7
-msgid "``integer`` SRID of the geometry point."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/point_to_id.rst:47
-# e4e0e0d3469e4682bbb6ba09157f8aae
-msgid "This function returns the id of the row that corresponds to the ``point`` geometry"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/point_to_id.rst:49
-# e82b0dd9b9de4e6d80afba2ae3a78461
-msgid "When the ``point`` geometry already exists in the vertices table ``vertname``, it returns the corresponing ``id``."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/point_to_id.rst:50
-# fa30a17bd3cc415ba37c7875ca33e130
-msgid "When the ``point`` geometry is not found in the vertices table ``vertname``, the funcion inserts the ``point`` and returns the corresponing ``id`` of the newly created vertex."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/point_to_id.rst:52
-# fec6b7cd746a40a29761c7b8359f0f36
-msgid "The function do not perform any checking of the parameters. Any validation has to be done before calling this function."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/point_to_id.rst:55
-# d14eb51215f648beb8de8ca57ced7f34
-msgid "History"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/point_to_id.rst:56
-# b011ef2ed6f14d2aa8bf7482c8f4c7b7
-msgid "Renamed in version 2.0.0"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/point_to_id.rst:60
-# 6378fa10935b4141aba8800771d6ffc2
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/point_to_id.rst:62
-# 3113010645e44f3eb066ced204809fd9
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/point_to_id.rst:63
-# 7cc73b074fda41cab4ba4c266d0e03af
-msgid ":ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create a topology based on the geometry."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/point_to_id.rst:64
-# fb031db0a9724f879b4aba030bf7e4cf
-msgid ":ref:`pgr_createTopology <pgr_create_topology>` to create a topology based on the geometry."
-msgstr ""
-
diff --git a/doc/i18n/pot/src/common/doc/utilities/quote_ident.pot b/doc/i18n/pot/src/common/doc/utilities/quote_ident.pot
deleted file mode 100644
index b77cc46..0000000
--- a/doc/i18n/pot/src/common/doc/utilities/quote_ident.pot
+++ /dev/null
@@ -1,123 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/common/doc/utilities/quote_ident.rst:13
-# a29bc38c00934455a61a928809e726c5
-msgid "pgr_quote_ident"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/quote_ident.rst:20
-# 7a607b3217414dacb7a60ed553fa669e
-msgid "Name"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/quote_ident.rst:22
-# 83d8f70549f6449694696760f3433ed2
-msgid "``pgr_quote_ident`` — Quotes the input text to be used as an identifier in an SQL statement string."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/quote_ident.rst:24
-# 9acf3b885dcf47748574996d6839fa5e
-msgid "This function is intended for the developer's aid."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/quote_ident.rst:28
-# 9766286ff78e4bdd807b6fc2a0d18f03
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/quote_ident.rst:30
-# 17f1e06617ec49c9b4d10c7ee987676b
-msgid "Returns the given identifier ``idname`` suitably quoted to be used as an identifier in an SQL statement string."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/quote_ident.rst:38
-# fc5793575dc74a4caa2e719f0abb78b5
-msgid "Description"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/quote_ident.rst:41
-# ae9f56d7fd374c07a07cbf4ae95484a4
-msgid "Parameters"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/quote_ident.rst:42
-# 975ba92b089b4538bbd814fe8da1d1e0
-msgid "``text`` Name of an SQL identifier. Can include ``.`` dot notation for schemas.table identifiers"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/quote_ident.rst:44
-# d3b2e0d842ca41cf99f72a01baa11306
-msgid "Returns the given string suitably quoted to be used as an identifier in an SQL statement string."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/quote_ident.rst:46
-# 9acfa5fbdf96495fa518298a83f457ee
-msgid "When the identifier ``idname`` contains on or more ``.`` separators, each component is suitably quoted to be used in an SQL string."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/quote_ident.rst:50
-# 26f5d9d6d22a4db78936693238b7599e
-msgid "History"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/quote_ident.rst:51
-# 8ccc12d9c11b44a2bcb209901fd31a82
-msgid "New in version 2.0.0"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/quote_ident.rst:55
-# 5ea5e79a7ee14e8a872be7667bff2a5c
-msgid "Examples"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/quote_ident.rst:57
-# 6bf5893c3a56426ab1d6e6979dfdc23a
-msgid "Everything is lower case so nothing needs to be quoted."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/quote_ident.rst:76
-# 267e5af3a91f43e1b20f454c4245763b
-msgid "The column is upper case so its double quoted."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/quote_ident.rst:95
-# 2fb617d87f7349d9840668ff59a22bd1
-msgid "The schema name has a capital letter so its double quoted."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/quote_ident.rst:106
-# b99fdd5fa3334085bd12923569264f02
-msgid "Ignores extra ``.`` separators."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/quote_ident.rst:118
-# a2ac15143e554318a483eb1975c90e9d
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/quote_ident.rst:120
-# d733cd020091460e9ce0f9bad998a90c
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/quote_ident.rst:121
-# 7a1957891442488ea5097c12faac8a4b
-msgid ":ref:`pgr_get_table_name` to get the name of the table as is stored in the postgres administration tables."
-msgstr ""
-
diff --git a/doc/i18n/pot/src/common/doc/utilities/start_point.pot b/doc/i18n/pot/src/common/doc/utilities/start_point.pot
deleted file mode 100644
index ebb649c..0000000
--- a/doc/i18n/pot/src/common/doc/utilities/start_point.pot
+++ /dev/null
@@ -1,90 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/common/doc/utilities/start_point.rst:13
-# a0014a80f1854f6c8c487ecf38de18ab
-msgid "pgr_startPoint"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/start_point.rst:20
-# e34ec0347c644975b97988612823f49e
-msgid "Name"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/start_point.rst:22
-# 6f89d904e615496ab9fd079ca91410e6
-msgid "``pgr_startPoint`` — Returns a start point of a (multi)linestring geometry."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/start_point.rst:24
-# bbe06b7720234701af354f96178457d8
-msgid "This function is intended for the developer's aid."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/start_point.rst:28
-# 376576a63861477baf7dcc2f263d4b40
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/start_point.rst:30
-#: ../../../src/common/doc/utilities/start_point.rst:44
-# e0f3168cb24a46308d2c8bc98fc19625
-# 39cfd17dabde4ba7aa077e36bf68e888
-msgid "Returns the geometry of the start point of the first LINESTRING of ``geom``."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/start_point.rst:38
-# 9820b82dfe91433691178c90f94ca715
-msgid "Description"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/start_point.rst:41
-# 828e6f995b9641d19fe042ff74d599a3
-msgid "Parameters"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/start_point.rst:42
-# 1beb95ca3e2044ccb2b67f67e3774c2f
-msgid "``geometry`` Geometry of a MULTILINESTRING or LINESTRING."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/start_point.rst:49
-# 455a5c21197143f7ae842b0ff7c93abc
-msgid "History"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/start_point.rst:50
-# ff66c11e90e54398a9da56e715260af5
-msgid "New in version 2.0.0"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/start_point.rst:55
-# cf55e686bbdc412b81a3f693cbdbb148
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/start_point.rst:57
-# a0f1ef45c6ea431cafd23afe380fb5b3
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/start_point.rst:58
-# cb1f2ccc1b4d4773b44b8596071fa7ec
-msgid ":ref:`pgr_end_Point` to get the end point of a (multi)linestring."
-msgstr ""
-
diff --git a/doc/i18n/pot/src/common/doc/utilities/version.pot b/doc/i18n/pot/src/common/doc/utilities/version.pot
deleted file mode 100644
index 984223c..0000000
--- a/doc/i18n/pot/src/common/doc/utilities/version.pot
+++ /dev/null
@@ -1,113 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/common/doc/utilities/version.rst:13
-# 120e93c3ef3647949e1a975294a99bd3
-msgid "pgr_version"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/version.rst:20
-# b6c91310e12c463eb0617bfab826c83e
-msgid "Name"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/version.rst:22
-# f11eb3407d534137b871fdc8e4d77e2c
-msgid "``pgr_version`` — Query for pgRouting version information."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/version.rst:26
-# d1e04916876543639e982c802bcb77d0
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/version.rst:28
-# f6852ef0ec754bd6878dc0f6ff276b4a
-msgid "Returns a table with pgRouting version information."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/version.rst:36
-# 8310435b46cd4eb4b7617bf861ebfd73
-msgid "Description"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/version.rst:38
-# 84fc0d5f9dae4ff2b8845d0d06c387ff
-msgid "Returns a table with:"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/version.rst:40
-# 4b9882bf11504eaaace36023f9e3fefd
-msgid "``varchar`` pgRouting version"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/version.rst:41
-# cb9baac28c5f44cbbf847927e7bf7a1d
-msgid "``varchar`` Git tag of pgRouting build"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/version.rst:42
-# baa7bc2926d44f2491342c85304990c4
-msgid "``varchar`` Git hash of pgRouting build"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/version.rst:43
-# af23c5ed520a4879b08fd0b7f6fa558a
-msgid "``varchar`` Git branch of pgRouting build"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/version.rst:44
-# 9e3b7fa474ad4a91a67a2d657c321dd9
-msgid "``varchar`` Boost version"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/version.rst:48
-# b0c9105abb784c4dbc6e480b6d200a96
-msgid "History"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/version.rst:49
-# 8427743df80d4a139543e5e908ddb657
-msgid "New in version 2.0.0"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/version.rst:53
-# eb2405381b964d788c775cfcbfe79586
-msgid "Examples"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/version.rst:55
-# 6973b676f6f949a3bbc7901dee35477a
-msgid "Query for full version string"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/version.rst:67
-# 0ccb4834560b4e7996f265b014688fd5
-msgid "Query for ``version`` and ``boost`` attribute"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/version.rst:80
-# c416c15423ca4981947bfd806b359f96
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/version.rst:82
-# 5a81421619a74d6e8c949d37fb36d47a
-msgid ":ref:`pgr_versionless` to compare two version numbers"
-msgstr ""
-
diff --git a/doc/i18n/pot/src/common/doc/utilities/versionless.pot b/doc/i18n/pot/src/common/doc/utilities/versionless.pot
deleted file mode 100644
index 9137bf5..0000000
--- a/doc/i18n/pot/src/common/doc/utilities/versionless.pot
+++ /dev/null
@@ -1,93 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/common/doc/utilities/versionless.rst:13
-# bc5450efd52446e5b77059638a5489b9
-msgid "pgr_versionless"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/versionless.rst:20
-# 2f65851860ce4d92aa624ec6220926f9
-msgid "Name"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/versionless.rst:22
-# 392ec183950848928c4ed890d366048a
-msgid "``pgr_versionless`` — Compare two version numbers."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/versionless.rst:24
-# 08c5a652edb447058c68ad1665ed5b37
-msgid "This function is intended for the developer’s aid."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/versionless.rst:27
-# d20c83be337d4d70b92314f8456c00ac
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/versionless.rst:29
-# 5fdd9b5a2c0e4a0a884ecfb88571e774
-msgid "Returns ``true`` if the first version number is smaller than the second version number. Otherwise returns ``false``."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/versionless.rst:37
-# 83187570213e4f0abf4baa9d9041b0a7
-msgid "Description"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/versionless.rst:39
-# 76df5f109e9544eda9bffefb0eddcaf8
-msgid "``text`` first version number"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/versionless.rst:40
-# 802d2ea5436f4736afd84178d7ca2933
-msgid "``text`` second version number"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/versionless.rst:44
-# ba3d1a09dc494fba9a10df433131521f
-msgid "History"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/versionless.rst:45
-# 4a6dccc0743e4964a47f0f7fdd76f048
-msgid "New in version 2.0.0"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/versionless.rst:49
-# 5e55333851f146efb2467abadd1b9a67
-msgid "Examples"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/versionless.rst:62
-# 87f3cfc47d18405a93604e77f0e5db79
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/common/doc/utilities/versionless.rst:64
-# 147571c3db724ba4b6e49b670cb5d433
-msgid ":ref:`developer` for the tree layout of the project."
-msgstr ""
-
-#: ../../../src/common/doc/utilities/versionless.rst:65
-# 09128f53be59426cb5052a986bd2399c
-msgid ":ref:`pgr_version` to get the current version of pgRouting."
-msgstr ""
-
diff --git a/doc/i18n/pot/src/dijkstra/doc/index.pot b/doc/i18n/pot/src/dijkstra/doc/index.pot
deleted file mode 100644
index 1bff129..0000000
--- a/doc/i18n/pot/src/dijkstra/doc/index.pot
+++ /dev/null
@@ -1,168 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/dijkstra/doc/index.rst:13
-# 50301171ce5d401f85559f0f78ed94c2
-msgid "pgr_dijkstra - Shortest Path Dijkstra"
-msgstr ""
-
-#: ../../../src/dijkstra/doc/index.rst:20
-# aac36ba64c474526bf1828597c388126
-msgid "Name"
-msgstr ""
-
-#: ../../../src/dijkstra/doc/index.rst:22
-# 8fab07f022884045989636bfdef28f17
-msgid "``pgr_dijkstra`` — Returns the shortest path using Dijkstra algorithm."
-msgstr ""
-
-#: ../../../src/dijkstra/doc/index.rst:26
-# bac7f012950e44e781b8011504302763
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/dijkstra/doc/index.rst:28
-# 501edbe3463e4ee2894a8a47f64d6069
-msgid "Dijkstra's algorithm, conceived by Dutch computer scientist Edsger Dijkstra in 1956. It is a graph search algorithm that solves the single-source shortest path problem for a graph with non-negative edge path costs, producing a shortest path tree. Returns a set of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows, that make up a path."
-msgstr ""
-
-#: ../../../src/dijkstra/doc/index.rst:37
-# bf015d45cc2c47e1a954c58da0c0c2d1
-msgid "Description"
-msgstr ""
-
-#: ../../../src/dijkstra/doc/index.rst:39
-# 3c98337205be4a89b11255489fdc5707
-msgid "a SQL query, which should return a set of rows with the following columns:"
-msgstr ""
-
-#: ../../../src/dijkstra/doc/index.rst:46
-# eb3d36feb6c0498fb0430392b4e6812c
-msgid "``int4`` identifier of the edge"
-msgstr ""
-
-#: ../../../src/dijkstra/doc/index.rst:47
-# 5007749c114a4a4883504de934b52755
-msgid "``int4`` identifier of the source vertex"
-msgstr ""
-
-#: ../../../src/dijkstra/doc/index.rst:48
-# 4b5b6dc5d0f34de5adf3377389a638b8
-msgid "``int4`` identifier of the target vertex"
-msgstr ""
-
-#: ../../../src/dijkstra/doc/index.rst:49
-# 8997da1dc3194f63bde2a1dd22f22459
-msgid "``float8`` value, of the edge traversal cost. A negative cost will prevent the edge from being inserted in the graph."
-msgstr ""
-
-#: ../../../src/dijkstra/doc/index.rst:50
-# a380f7a73abe40dcb448928e9e8f5d8e
-msgid "``float8`` (optional) the cost for the reverse traversal of the edge. This is only used when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the above remark about negative costs)."
-msgstr ""
-
-#: ../../../src/dijkstra/doc/index.rst:52
-# 6be50d4127614cb8af1c89912d3c470b
-msgid "``int4`` id of the start point"
-msgstr ""
-
-#: ../../../src/dijkstra/doc/index.rst:53
-# ac4470290cc0492bbbd774e19c7f3885
-msgid "``int4`` id of the end point"
-msgstr ""
-
-#: ../../../src/dijkstra/doc/index.rst:54
-# e8017573874b4b32806334bbf0b5c66a
-msgid "``true`` if the graph is directed"
-msgstr ""
-
-#: ../../../src/dijkstra/doc/index.rst:55
-# a77e45a90ab247519a55dd214eb09183
-msgid "if ``true``, the ``reverse_cost`` column of the SQL generated set of rows will be used for the cost of the traversal of the edge in the opposite direction."
-msgstr ""
-
-#: ../../../src/dijkstra/doc/index.rst:57
-# 8fa8d103a2c54e799dfefc851d437351
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr ""
-
-#: ../../../src/dijkstra/doc/index.rst:59
-# 8a1768b88a6348df950c421a085a39b4
-msgid "row sequence"
-msgstr ""
-
-#: ../../../src/dijkstra/doc/index.rst:60
-# 4b694cf4fa72486997d4dc72b4131ae9
-msgid "node ID"
-msgstr ""
-
-#: ../../../src/dijkstra/doc/index.rst:61
-# cc7e0ea1d452430b905568dbcecf976b
-msgid "edge ID (``-1`` for the last row)"
-msgstr ""
-
-#: ../../../src/dijkstra/doc/index.rst:62
-# 199ffe68ac7e4a2a8584fb600c90369d
-msgid "cost to traverse from ``id1`` using ``id2``"
-msgstr ""
-
-#: ../../../src/dijkstra/doc/index.rst:66
-# 49024735230e45e6afe5d7fcf5ff9903
-msgid "History"
-msgstr ""
-
-#: ../../../src/dijkstra/doc/index.rst:67
-# f7df24de24614eb591f1d2e5455ddd60
-msgid "Renamed in version 2.0.0"
-msgstr ""
-
-#: ../../../src/dijkstra/doc/index.rst:71
-# dda042482061476987a715274a6859b3
-msgid "Examples"
-msgstr ""
-
-#: ../../../src/dijkstra/doc/index.rst:73
-# 161506681f4442b386c588480840fa42
-msgid "Without ``reverse_cost``"
-msgstr ""
-
-#: ../../../src/dijkstra/doc/index.rst:92
-# ad62d0be8ed14ada88f2af6d93bc47ba
-msgid "With ``reverse_cost``"
-msgstr ""
-
-#: ../../../src/dijkstra/doc/index.rst:110
-# ecdd052e4b2f46e6977bac493ef43b81
-msgid "The queries use the :ref:`sampledata` network."
-msgstr ""
-
-#: ../../../src/dijkstra/doc/index.rst:114
-# e563519bf1d34a6fa67db74514cba5a4
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/dijkstra/doc/index.rst:116
-# c1af2ee0672a4d8394b784757941806c
-msgid ":ref:`type_cost_result`"
-msgstr ""
-
-#: ../../../src/dijkstra/doc/index.rst:117
-# f67200f21bf1487ba2a3c2d0399fc8e6
-msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
-msgstr ""
-
diff --git a/doc/i18n/pot/src/driving_distance/doc/dd_alphashape.pot b/doc/i18n/pot/src/driving_distance/doc/dd_alphashape.pot
deleted file mode 100644
index aff8b2c..0000000
--- a/doc/i18n/pot/src/driving_distance/doc/dd_alphashape.pot
+++ /dev/null
@@ -1,128 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:13
-# d077d033e32945eda2db624b4fb15c87
-msgid "pgr_alphaShape"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:20
-# 0f03d66ae6c24cebb71294dd4bd57738
-msgid "Name"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:22
-# b91b4fac0f1d4436a46d6b68c0564b27
-msgid "``pgr_alphashape`` — Core function for alpha shape computation."
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:26
-# 8c5d810808004da28c9608bfe8612a35
-msgid "This function should not be used directly. Use :ref:`pgr_drivingDistance <pgr_driving_distance>` instead."
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:30
-# cffb335eb0b8413091b3288a827ba95f
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:32
-# cea4c9280e7045e38a48a2ad48b2f88d
-msgid "Returns a table with (x, y) rows that describe the vertices of an alpha shape."
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:40
-# e21f6decfdc048c6b807ac4b75dfc009
-msgid "Description"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:42
-# 239252ef272549988742e68d409be1c5
-msgid "``text`` a SQL query, which should return a set of rows with the following columns:"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:48
-# ea79b4217a04470db9b944edde756735
-msgid "``int4`` identifier of the vertex"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:49
-# 374aad70a8bc43fab7825995427b1341
-msgid "``float8`` x-coordinate"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:50
-# 7a68355e3c98492eae0e8e9c4db06550
-msgid "``float8`` y-coordinate"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:53
-# bdffab8e97c14d00ba6fd622a69ac93d
-msgid "Returns a vertex record for each row :"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:55
-# 9ae7ba0261ec47e1957eff0c43054c20
-msgid "x-coordinate"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:56
-# d5704df2c3be4fa2975a9eb652ed7c83
-msgid "y-coordinate"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:60
-# b360947766ce45b7b9e306b47ee0e3e6
-msgid "History"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:61
-# 889a23948a5a4365ade4a5ddd8574c35
-msgid "Renamed in version 2.0.0"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:65
-# 87779de62bfe4b6683ee50152d6a672c
-msgid "Examples"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:66
-# c550537fd6dd42d5af69e473853ec69c
-msgid "In the alpha shape code we have no way to control the order of the points so the actual output you might get could be similar but different. The simple query is followed by a more complex one that constructs a polygon and computes the areas of it. This should be the same as the result on your system. We leave the details of the complex query to the reader as an exercise if they wish to decompose it into understandable pieces or to just copy and paste it into a SQL window to run."
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:119
-# 17d05b32fc364eba9c6e14ee8d20ac6f
-msgid "The queries use the :ref:`sampledata` network."
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:123
-# acddeeeafb7f4adc934aeed899b5d90a
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:125
-# b7a2a079ede34ff7b98afb5367c2d81a
-msgid ":ref:`pgr_driving_distance` - Driving Distance"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_alphashape.rst:126
-# d3155940c26b4c7ca571712ad0b3458f
-msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
-msgstr ""
-
diff --git a/doc/i18n/pot/src/driving_distance/doc/dd_driving_distance.pot b/doc/i18n/pot/src/driving_distance/doc/dd_driving_distance.pot
deleted file mode 100644
index b934b89..0000000
--- a/doc/i18n/pot/src/driving_distance/doc/dd_driving_distance.pot
+++ /dev/null
@@ -1,178 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:13
-# 13ad2bf13e424cc6860d73932d3d0ef3
-msgid "pgr_drivingDistance"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:20
-# a3a62f6711c643cd8b46d6c8efa8979a
-msgid "Name"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:22
-# 4df03c9837844d15a2ef1f69c8b1d6d1
-msgid "``pgr_drivingDistance`` - Returns the driving distance from a start node."
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:26
-# ed124ddfdba740f1a7a2fe858b044921
-msgid "Requires :ref:`to build pgRouting <build>` with support for Driving Distance."
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:30
-# d30cc7baa5ec4ef9b0e2cfcaa9abc823
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:32
-# c39bf072197e44af857573b4321b93f8
-msgid "This function computes a Dijkstra shortest path solution them extracts the cost to get to each node in the network from the starting node. Using these nodes and costs it is possible to compute constant drive time polygons. Returns a set of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows, that make up a list of accessible points."
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:41
-# cfa9c122e87741d1b420a6c009bde3bd
-msgid "Description"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:43
-# 5b11549936b247e0916c31575bc873a9
-msgid "a SQL query, which should return a set of rows with the following columns:"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:50
-# 1cad499986e64e7087c9d53c00edf785
-msgid "``int4`` identifier of the edge"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:51
-# 4a0642fea1dc458ebe0fff4bd9ae068e
-msgid "``int4`` identifier of the source vertex"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:52
-# 6eb2c2e575474bf6b9fdf5f73a3d3133
-msgid "``int4`` identifier of the target vertex"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:53
-# 37c527d8ce7d4835bc902f791545e719
-msgid "``float8`` value, of the edge traversal cost. A negative cost will prevent the edge from being inserted in the graph."
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:54
-# 0e0be8b97cdc4789bf52927612f18093
-msgid "(optional) the cost for the reverse traversal of the edge. This is only used when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the above remark about negative costs)."
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:56
-# 51879485fdc74456ab8713532784bae9
-msgid "``int4`` id of the start point"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:57
-# cc718c6eeaf142aebebbac343f3735ee
-msgid "``float8`` value in edge cost units (not in projection units - they might be different)."
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:58
-# e799a2c5db3f4e3ea5acccb7885c9c09
-msgid "``true`` if the graph is directed"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:59
-# b5a481533b404906a0ac80911c3d128c
-msgid "if ``true``, the ``reverse_cost`` column of the SQL generated set of rows will be used for the cost of the traversal of the edge in the opposite direction."
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:61
-# 4347c456fe8842a1a71bf1a6dda67c9c
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:63
-# feca3515964d4e13831803c5cce23ef7
-msgid "row sequence"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:64
-# cea1ec0763be4d9493014381ac1a9f4d
-msgid "node ID"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:65
-# 58485a6aae3f467b8003af4a2466a4db
-msgid "edge ID (this is probably not a useful item)"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:66
-# 40a1586ef5c247098537a0a9a02bb439
-msgid "cost to get to this node ID"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:70
-# 91feeda5554f4491b1021dd096bde9c1
-msgid "You must reconnect to the database after ``CREATE EXTENSION pgrouting``. Otherwise the function will return ``Error computing path: std::bad_alloc``."
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:74
-# 1cb8d1668c9143d1add08f338e6b6226
-msgid "History"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:75
-# 1ba0522ef3114a84a02fef855734fdfa
-msgid "Renamed in version 2.0.0"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:79
-# 71327a7485e24bf4a12c6e44c8e89b0d
-msgid "Examples"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:81
-# e100d6420c0a4c238d29b1b7e88276bf
-msgid "Without ``reverse_cost``"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:101
-# 8d5f6019a42f496aa35aecd4876b1d28
-msgid "With ``reverse_cost``"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:121
-# ab3dcc12ed474b6b8368041393f4ae6b
-msgid "The queries use the :ref:`sampledata` network."
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:125
-# 83f1ee65122647598d2f2d93adf5570b
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:127
-# a57748a909a84cbb81c6e89f951ff521
-msgid ":ref:`pgr_alphashape` - Alpha shape computation"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_driving_distance.rst:128
-# 1803d90dc87943b3bcd563650ce43a28
-msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
-msgstr ""
-
diff --git a/doc/i18n/pot/src/driving_distance/doc/dd_points_as_polygon.pot b/doc/i18n/pot/src/driving_distance/doc/dd_points_as_polygon.pot
deleted file mode 100644
index 8c1624e..0000000
--- a/doc/i18n/pot/src/driving_distance/doc/dd_points_as_polygon.pot
+++ /dev/null
@@ -1,113 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:13
-# be93d52711ca42e4946468212e312ae5
-msgid "pgr_pointsAsPolygon"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:20
-# 2ea235cb4cce42fb813e8f41aa552a28
-msgid "Name"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:22
-# 1430de2fc0c14cd8b7cfc0ef9d21ae3c
-msgid "``pgr_pointsAsPolygon`` — Draws an alpha shape around given set of points."
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:26
-# 4194eb7aea434a638edc87167bb4f1e1
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:28
-# 6aa5a5337d764379b1df0471779aefa5
-msgid "Returns the alpha shape as polygon geometry."
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:36
-# 6cf5af5edc05462da22ae0bdc35b1428
-msgid "Description"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:38
-# 1ae3cca73e1e47ebb15e0ea2211d5551
-msgid "``text`` a SQL query, which should return a set of rows with the following columns:"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:44
-# c98eeb70402c425491209d7939ba55b1
-msgid "``int4`` identifier of the vertex"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:45
-# 7d8a2fb99fea4fa69aa71fa0a8683723
-msgid "``float8`` x-coordinate"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:46
-# 2222fe3151c840c58a8589f727ab958b
-msgid "``float8`` y-coordinate"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:49
-# 3104ee2168b54ceca71494e8bca5341c
-msgid "Returns a polygon geometry."
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:53
-# 8eeab4028e344899bcd5dfbeb9dc7c87
-msgid "History"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:54
-# ffd92ee0acc041afad1503af1294c1c9
-msgid "Renamed in version 2.0.0"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:58
-# a7ba25fc81a94d0a888fa72020939906
-msgid "Examples"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:59
-# e31e4b104c2e44b9a70ef30d98b50305
-msgid "In the following query there is not way to control which point in the polygon is the first in the list, so you may get similar but different results than the following which are also correct. Each of the pgr_pointsAsPolygon queries below is followed by one the compute the area of the polygon. This area should remain constant regardles of the order of the points making up the polygon."
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:93
-# 92ebb13d0cf84344bfe94aba861781a1
-msgid "The queries use the :ref:`sampledata` network."
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:97
-# 4d7c6f71a4fd4b8d8f6e6ad7817041bc
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:99
-# 4830bc30eee140148e889683f6188334
-msgid ":ref:`pgr_driving_distance` - Driving Distance"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/dd_points_as_polygon.rst:100
-# 3e503d0c045f4912ab7dd045b7cf311c
-msgid ":ref:`pgr_alphashape` - Alpha shape computation"
-msgstr ""
-
diff --git a/doc/i18n/pot/src/driving_distance/doc/index.pot b/doc/i18n/pot/src/driving_distance/doc/index.pot
deleted file mode 100644
index b09592c..0000000
--- a/doc/i18n/pot/src/driving_distance/doc/index.pot
+++ /dev/null
@@ -1,43 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/driving_distance/doc/index.rst:13
-# 44cd245e0159442bb2b1eb7df2e5e8f8
-msgid "With Driving Distance Enabled"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/index.rst:15
-# bf2dd2ef860f42af85c5427bb3d02d6b
-msgid "Driving distance related Functions"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/index.rst:17
-# 907ccdeae58b448aa8ef88931b961e37
-msgid ":ref:`pgr_driving_distance` - Driving Distance"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/index.rst:18
-# 6efbd852d891404998969898e9442e71
-msgid ":ref:`pgr_alphaShape` - Alpha shape computation"
-msgstr ""
-
-#: ../../../src/driving_distance/doc/index.rst:19
-# b6665aa94dd5451f933ffd1d2d4cb658
-msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
-msgstr ""
-
diff --git a/doc/i18n/pot/src/index.pot b/doc/i18n/pot/src/index.pot
deleted file mode 100644
index 92063df..0000000
--- a/doc/i18n/pot/src/index.pot
+++ /dev/null
@@ -1,73 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/index.rst:13
-# 5525311c7795491fbde8c298291a90a7
-msgid "Routing Functions"
-msgstr ""
-
-#: ../../../src/index.rst:15
-# 8fdb1103188843b6949017df12eca3e5
-msgid ":ref:`pgr_apspJohnson <pgr_apsp_johnson>`- All Pairs Shortest Path, Johnson’s Algorithm"
-msgstr ""
-
-#: ../../../src/index.rst:16
-# e785107549eb4a819ef8a4ec2c53024f
-msgid ":ref:`pgr_apspWarshall<pgr_apsp_warshall>` - All Pairs Shortest Path, Floyd-Warshall Algorithm"
-msgstr ""
-
-#: ../../../src/index.rst:17
-# 8e9e345db88641dcac253af72dd57d74
-msgid ":ref:`pgr_astar<pgr_astar>` - Shortest Path A*"
-msgstr ""
-
-#: ../../../src/index.rst:18
-# 23ad52ea0f22463eab74e643b17dbaab
-msgid ":ref:`pgr_bdAstar<bd_astar>` - Bi-directional A* Shortest Path"
-msgstr ""
-
-#: ../../../src/index.rst:19
-# 4593f71258fa4eb5a73040e3c8d6df09
-msgid ":ref:`pgr_bdDijkstra<bd_dijkstra>` - Bi-directional Dijkstra Shortest Path"
-msgstr ""
-
-#: ../../../src/index.rst:20
-# 9c9d7324d76144cc87d44f199c86ad45
-msgid ":ref:`pgr_dijkstra<pgr_dijkstra>` - Shortest Path Dijkstra"
-msgstr ""
-
-#: ../../../src/index.rst:21
-# 969c1456730541eab216fd6f9256a548
-msgid ":ref:`pgr_kDijkstra<pgr_kdijkstra>` - Multiple destination Shortest Path Dijkstra"
-msgstr ""
-
-#: ../../../src/index.rst:22
-# d95a968f376b4d6084ba35c392dca0e8
-msgid ":ref:`pgr_ksp<ksp>` - K-Shortest Path"
-msgstr ""
-
-#: ../../../src/index.rst:23
-# ad0e9763fb6842b4ba3a654a73420db6
-msgid ":ref:`pgr_tsp<pgr_tsp>` - Traveling Sales Person"
-msgstr ""
-
-#: ../../../src/index.rst:24
-# 7e1610eae7ba48d9b45bcf5d527cc51b
-msgid ":ref:`pgr_trsp<trsp>` - Turn Restriction Shortest Path (TRSP)"
-msgstr ""
-
diff --git a/doc/i18n/pot/src/kdijkstra/doc/index.pot b/doc/i18n/pot/src/kdijkstra/doc/index.pot
deleted file mode 100644
index 93421c7..0000000
--- a/doc/i18n/pot/src/kdijkstra/doc/index.pot
+++ /dev/null
@@ -1,200 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/kdijkstra/doc/index.rst:13
-# 321a2d444abf468a90711a7e0d2c2632
-msgid "pgr_kDijkstra - Mutliple destination Shortest Path Dijkstra"
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:21
-# e79fa12d3f2646dba7b0fecc8ebb3db8
-msgid "Name"
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:23
-# d9f49d8a02ce47dfb286613acd899230
-msgid "``pgr_kdijkstraCost`` - Returns the costs for K shortest paths using Dijkstra algorithm."
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:24
-# eaba512b56f746e68d8b0596b2236603
-msgid "``pgr_kdijkstraPath`` - Returns the paths for K shortest paths using Dijkstra algorithm."
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:28
-# 1f33329c6918489a9360f3f05f91a5e5
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:30
-# f246b5beb7a84fd29e22bff9729a11b8
-msgid "These functions allow you to have a single start node and multiple destination nodes and will compute the routes to all the destinations from the source node. Returns a set of :ref:`pgr_costResult3 <type_cost_result3>` or :ref:`pgr_costResult3 <type_cost_result3>`. ``pgr_kdijkstraCost`` returns one record for each destination node and the cost is the total code of the route to that node. ``pgr_kdijkstraPath`` returns one record for every edge in that path from source to destinatio [...]
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:42
-# 4d073996761445fe92adf32a152cd99e
-msgid "Description"
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:44
-# 34aae6f8476f4c73b6d780aec323a7f2
-msgid "a SQL query, which should return a set of rows with the following columns:"
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:51
-# f7a64250d6b44382ad4755c1fda7392b
-msgid "``int4`` identifier of the edge"
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:52
-# ecd14cf38909448a87b3541ca6b8683f
-msgid "``int4`` identifier of the source vertex"
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:53
-# 31ae557bbf954747ac55210035341e61
-msgid "``int4`` identifier of the target vertex"
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:54
-# 4ad7cad1a8374f029ba8163961933966
-msgid "``float8`` value, of the edge traversal cost. A negative cost will prevent the edge from being inserted in the graph."
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:55
-# 7423095b6c724d6bbeb94e8bc81e5045
-msgid "(optional) the cost for the reverse traversal of the edge. This is only used when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the above remark about negative costs)."
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:57
-# e006660aa8fe43889829a3fb9129722e
-msgid "``int4`` id of the start point"
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:58
-# 5902a09a1c8843dd86f773ac9a02742b
-msgid "``int4[]`` an array of ids of the end points"
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:59
-# 7ef04792acbd48eba2dfac459fa5d246
-msgid "``true`` if the graph is directed"
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:60
-# 01a01d93e6cc44f3b437ae8a0638bd98
-msgid "if ``true``, the ``reverse_cost`` column of the SQL generated set of rows will be used for the cost of the traversal of the edge in the opposite direction."
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:63
-# f97cec15230f45d0b682bd48370f036a
-msgid "``pgr_kdijkstraCost`` returns set of :ref:`type_cost_result`:"
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:65
-#: ../../../src/kdijkstra/doc/index.rst:73
-# 444acaa21b8d49b1a199d3c98d061da5
-# 3afefd4792044712a85101225a520776
-msgid "row sequence"
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:66
-# f91b69aec2754787b2e0546c0e9d5b8d
-msgid "path vertex source id (this will always be source start point in the query)."
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:67
-# 28e57f8b708a4fcfb61b45bef618b32a
-msgid "path vertex target id"
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:68
-# a77a25a88d0a43f2a1785927cc97fab5
-msgid "cost to traverse the path from ``id1`` to ``id2``. Cost will be -1.0 if there is no path to that target vertex id."
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:71
-# cf8954ea0a5049bcb69571c00c870bfd
-msgid "``pgr_kdijkstraPath`` returns set of :ref:`type_cost_result3`:"
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:74
-# 44cee94dc70d409a82748324c968d441
-msgid "path target id (identifies the target path)."
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:75
-# 64d54eda8e3a49f38b12fe36a607cd14
-msgid "path edge source node id"
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:76
-# 011bd73b0bf44f34aae133abed6fea7f
-msgid "path edge id (``-1`` for the last row)"
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:77
-# b457a094c550405080dbc41bd88797f4
-msgid "cost to traverse this edge or -1.0 if there is no path to this target"
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:81
-# 1111e0b2e1ec4565a9eb3cb35ebfca97
-msgid "History"
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:82
-# 5de8275fef754c6c88bea5e5db3cfd52
-msgid "New in version 2.0.0"
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:86
-# caab19edab694293be8ab9fe5000e071
-msgid "Examples"
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:88
-# 51dfaec15b51441a92854a7600ab3970
-msgid "Returning a ``cost`` result"
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:123
-# 0c705d0e2cac4fd18cc45a401790b3e2
-msgid "Returning a ``path`` result"
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:144
-# 1bfccc73ccde407fa34f8c9618d6f554
-msgid "There is no assurance that the result above will be ordered in the direction of flow of the route, ie: it might be reversed. You will need to check if ``st_startPoint()`` of the route is the same as the start node location and if it is not then call ``st_reverse()`` to reverse the direction of the route. This behavior is a function of PostGIS functions ``st_linemerge()`` and ``st_union()`` and not pgRouting."
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:153
-# b7a116ab40884da09e5f686ef41af548
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:155
-# 17c6245299574655bd1eb989883ce059
-msgid ":ref:`type_cost_result`"
-msgstr ""
-
-#: ../../../src/kdijkstra/doc/index.rst:156
-# 34ebfed0f3964ad6b42644c80b51c99e
-msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
-msgstr ""
-
diff --git a/doc/i18n/pot/src/ksp/doc/index.pot b/doc/i18n/pot/src/ksp/doc/index.pot
deleted file mode 100644
index ba68858..0000000
--- a/doc/i18n/pot/src/ksp/doc/index.pot
+++ /dev/null
@@ -1,178 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/ksp/doc/index.rst:13
-# 8fded0f5c5394081adda4db3a409a1bd
-msgid "pgr_ksp - K-Shortest Path"
-msgstr ""
-
-#: ../../../src/ksp/doc/index.rst:20
-# 285de40d0f134529b7fd366033d21d76
-msgid "Name"
-msgstr ""
-
-#: ../../../src/ksp/doc/index.rst:22
-# 16ffe1a382574d129150e62378004f50
-msgid "``pgr_ksp`` — Returns the \"K\" shortest paths."
-msgstr ""
-
-#: ../../../src/ksp/doc/index.rst:26
-# 4e4ecc509a594b3abb906d4d82974bc5
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/ksp/doc/index.rst:28
-# eb7a454715764d35bdba5d1d8682646f
-msgid "The K shortest path routing algorithm based on Yen's algorithm. \"K\" is the number of shortest paths desired. Returns a set of :ref:`pgr_costResult3 <type_cost_result3>` (seq, id1, id2, id3, cost) rows, that make up a path."
-msgstr ""
-
-#: ../../../src/ksp/doc/index.rst:37
-# 0bdce7ee5be74ba98a0d5221b5a10499
-msgid "Description"
-msgstr ""
-
-#: ../../../src/ksp/doc/index.rst:39
-# 2a75f0b325af45a5b254d9a9d9ed9e81
-msgid "a SQL query, which should return a set of rows with the following columns:"
-msgstr ""
-
-#: ../../../src/ksp/doc/index.rst:46
-# 0436c16bb8514c469724f3a9c576fbc9
-msgid "``int4`` identifier of the edge"
-msgstr ""
-
-#: ../../../src/ksp/doc/index.rst:47
-# a97e14ef3fd4438abfb74c371fe473f7
-msgid "``int4`` identifier of the source vertex"
-msgstr ""
-
-#: ../../../src/ksp/doc/index.rst:48
-# d7bc27ad43df444abae7ec879dea89d7
-msgid "``int4`` identifier of the target vertex"
-msgstr ""
-
-#: ../../../src/ksp/doc/index.rst:49
-# 9a5e6739d10e4589ae71f3de3e6d07b0
-msgid "``float8`` value, of the edge traversal cost. A negative cost will prevent the edge from being inserted in the graph."
-msgstr ""
-
-#: ../../../src/ksp/doc/index.rst:50
-# 0600cb9492634d53894e713a4898268b
-msgid "(optional) the cost for the reverse traversal of the edge. This is only used when ``has_rcost`` the parameter is ``true`` (see the above remark about negative costs)."
-msgstr ""
-
-#: ../../../src/ksp/doc/index.rst:52
-# b3de1559edb1457f956efb5784516201
-msgid "``int4`` id of the start point"
-msgstr ""
-
-#: ../../../src/ksp/doc/index.rst:53
-# 7b2591f4a6f8498484329ed74f95f47c
-msgid "``int4`` id of the end point"
-msgstr ""
-
-#: ../../../src/ksp/doc/index.rst:54
-# d0a0c5c83c02403f99940876269fe611
-msgid "``int4`` number of alternative routes"
-msgstr ""
-
-#: ../../../src/ksp/doc/index.rst:55
-# b24f1c5af0f846468cc3bb28f4f872f0
-msgid "if ``true``, the ``reverse_cost`` column of the SQL generated set of rows will be used for the cost of the traversal of the edge in the opposite direction."
-msgstr ""
-
-#: ../../../src/ksp/doc/index.rst:57
-# 5cc117f406fb49f4b932c8b8e7f20e0e
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr ""
-
-#: ../../../src/ksp/doc/index.rst:59
-# 66462f4fdf1a4ca79741d566b9d77823
-msgid "sequence for ording the results"
-msgstr ""
-
-#: ../../../src/ksp/doc/index.rst:60
-# 0e0ce45f43714e908322838c6764b5c2
-msgid "route ID"
-msgstr ""
-
-#: ../../../src/ksp/doc/index.rst:61
-# 78724897b88e431db972233eb93d0496
-msgid "node ID"
-msgstr ""
-
-#: ../../../src/ksp/doc/index.rst:62
-# 2a5a3764fedd403c8072acd92b09b4d6
-msgid "edge ID (``0`` for the last row)"
-msgstr ""
-
-#: ../../../src/ksp/doc/index.rst:63
-# c6c3999e4dd84dbf814f5d44e5bb2100
-msgid "cost to traverse from ``id2`` using ``id3``"
-msgstr ""
-
-#: ../../../src/ksp/doc/index.rst:65
-# f3f37d868f8b41fcb2f49b3242923eb2
-msgid "KSP code base taken from http://code.google.com/p/k-shortest-paths/source."
-msgstr ""
-
-#: ../../../src/ksp/doc/index.rst:69
-# 80d641fff71848beb29d2be6f68c6526
-msgid "History"
-msgstr ""
-
-#: ../../../src/ksp/doc/index.rst:70
-# 168f0b58648c4c43b2b683d760d75222
-msgid "New in version 2.0.0"
-msgstr ""
-
-#: ../../../src/ksp/doc/index.rst:74
-# c8dfe3e8f3c246f49801d1c26294159e
-msgid "Examples"
-msgstr ""
-
-#: ../../../src/ksp/doc/index.rst:76
-# 6875c491f882458fb0d4f55d05823eb3
-msgid "Without ``reverse_cost``"
-msgstr ""
-
-#: ../../../src/ksp/doc/index.rst:104
-# ad03f1fe958f415a94ebde027a5fcd10
-msgid "With ``reverse_cost``"
-msgstr ""
-
-#: ../../../src/ksp/doc/index.rst:131
-# d4fa56311a96421db001ffc5685ed2a1
-msgid "The queries use the :ref:`sampledata` network."
-msgstr ""
-
-#: ../../../src/ksp/doc/index.rst:135
-# aca51b91e9384c8a85bbc24dbfde463d
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/ksp/doc/index.rst:137
-# f1592eabd089430f8841c78093553773
-msgid ":ref:`type_cost_result3`"
-msgstr ""
-
-#: ../../../src/ksp/doc/index.rst:138
-# 2239083543de4ea4b3820e12cf094e05
-msgid "http://en.wikipedia.org/wiki/K_shortest_path_routing"
-msgstr ""
-
diff --git a/doc/i18n/pot/src/trsp/doc/index.pot b/doc/i18n/pot/src/trsp/doc/index.pot
deleted file mode 100644
index a80e7a4..0000000
--- a/doc/i18n/pot/src/trsp/doc/index.pot
+++ /dev/null
@@ -1,228 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/trsp/doc/index.rst:13
-# e25db93cfed548499e37c2a53ca764ea
-msgid "pgr_trsp - Turn Restriction Shortest Path (TRSP)"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:23
-# 569f8da166fa4b6b9e11126fff7fe8d2
-msgid "Name"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:25
-# 5a80c89ee268481b87d5fa641f98aa1f
-msgid "``pgr_trsp`` — Returns the shortest path with support for turn restrictions."
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:29
-# cbe0111a1eb34d32871e7bdd33597fa5
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:31
-# db16fb08b61747fbbca144f887168e8d
-msgid "The turn restricted shorthest path (TRSP) is a shortest path algorithm that can optionally take into account complicated turn restrictions like those found in real work navigable road networks. Performamnce wise it is nearly as fast as the A* search but has many additional features like it works with edges rather than the nodes of the network. Returns a set of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows, that make up a path."
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:47
-# f60b1232f6ad4c979cddf53907a81045
-msgid "Description"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:49
-# ef4cda41c0564a839743865cbc603da4
-msgid "The Turn Restricted Shortest Path algorithm (TRSP) is similar to the :ref:`shooting_star` in that you can specify turn restrictions."
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:51
-# fa4644835d8f4a71a427862494b3602f
-msgid "The TRSP setup is mostly the same as :ref:`Dijkstra shortest path <pgr_dijkstra>` with the addition of an optional turn restriction table. This makes adding turn restrictions to a road network much easier than trying to add them to Shooting Star where you had to ad the same edges multiple times if it was involved in a restriction."
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:54
-# 50e0ea0f40fb4949bd680a91424b1cab
-msgid "a SQL query, which should return a set of rows with the following columns:"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:61
-# 5c9a3afcb3c44428b44e3faff4d7fb24
-msgid "``int4`` identifier of the edge"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:62
-# 0bc75b3d2a394b0b985c7ade6c8f1023
-msgid "``int4`` identifier of the source vertex"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:63
-# bf89d1ac315e45ff872ed2265b97e184
-msgid "``int4`` identifier of the target vertex"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:64
-# c35aabbc54664ed9b8b4d338830cbe51
-msgid "``float8`` value, of the edge traversal cost. A negative cost will prevent the edge from being inserted in the graph."
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:65
-# 1772e656f0094d59b0ca539b5b518f40
-msgid "(optional) the cost for the reverse traversal of the edge. This is only used when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the above remark about negative costs)."
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:67
-# 732186f456214aba9eb4cf4f550683c8
-msgid "``int4`` **NODE id** of the start point"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:68
-# 3cfd7b1609784af0baef097aae852cc4
-msgid "``int4`` **NODE id** of the end point"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:69
-# 25838598316d463d8fd4d5c8aceeae73
-msgid "``true`` if the graph is directed"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:70
-# c4ba536be8344e0c9efc09a72a386521
-msgid "if ``true``, the ``reverse_cost`` column of the SQL generated set of rows will be used for the cost of the traversal of the edge in the opposite direction."
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:72
-# f5b994007d4b4265b077784f687cdd12
-msgid "(optional) a SQL query, which should return a set of rows with the following columns:"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:78
-# cf4a8d9b998d4bf19182ae1d7b81b12a
-msgid "``float8`` turn restriction cost"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:79
-# 31b200b38ab2467fad03e409ea4cb2fb
-msgid "``int4`` target id"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:80
-# 18631ca29f3049f5bf25994f48e30bd9
-msgid "``text`` commar seperated list of edges in the reverse order of ``rule``"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:82
-# 11a5643fa65c460dbed73d7f8b885b53
-msgid "Another variant of TRSP allows to specify **EDGE id** of source and target together with a fraction to interpolate the position:"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:84
-# 480daabb9a194383a1684fd0ff9c935f
-msgid "``int4`` **EDGE id** of the start edge"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:85
-# caecc7566bdf4de2a775d0bcc298c1da
-msgid "``float8`` fraction of 1 defines the position on the start edge"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:86
-# ce6b927039ce4e4e8691a3dc86a19350
-msgid "``int4`` **EDGE id** of the end edge"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:87
-# cfcd790081314f2d95b6380ad844bfaf
-msgid "``float8`` fraction of 1 defines the position on the end edge"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:89
-# 51a5b3df7cad44629dd16dd7d4df9a60
-msgid "Returns set of :ref:`type_cost_result`:"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:91
-# c65b9f75f4b34f2dba2dff54126e2bdf
-msgid "row sequence"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:92
-# 202a1753b5d44d3d933af416314c552e
-msgid "node ID"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:93
-# ee2124c02c0644489ba3187b84c94f67
-msgid "edge ID (``-1`` for the last row)"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:94
-# 53553aa5696946a8a4f32fd29ac3ccdc
-msgid "cost to traverse from ``id1`` using ``id2``"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:98
-# 350ef7abfa374504af8c864e79ca19ea
-msgid "History"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:99
-# 274a6ed36f0c4b389215ecf11fe8ae3d
-msgid "New in version 2.0.0"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:103
-# 3de40dafd306464cb727e95d12199071
-msgid "Examples"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:105
-# 4891aadd622e47c8813b06c9b16bef7e
-msgid "Without turn restrictions"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:126
-# 07a1695ee76d4cfdacd9e31404faeabb
-msgid "With turn restrictions"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:128
-# 9a9600189b5d49e78350080425375fa8
-msgid "Turn restrictions require additional information, which can be stored in a separate table:"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:144
-# 5df0a61bc74b4edf800bcf6c96fc35e4
-msgid "Then a query with turn restrictions is created as:"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:167
-# 07c0af23ed2d4b0c9c072126bad801b8
-msgid "The queries use the :ref:`sampledata` network."
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:171
-# c9169eeeebbd45a5a6043cf527391dea
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/trsp/doc/index.rst:173
-# 6b71f73f59e84acb95464ac8fa93567a
-msgid ":ref:`type_cost_result`"
-msgstr ""
-
diff --git a/doc/i18n/pot/src/tsp/doc/index.pot b/doc/i18n/pot/src/tsp/doc/index.pot
deleted file mode 100644
index c2289cd..0000000
--- a/doc/i18n/pot/src/tsp/doc/index.pot
+++ /dev/null
@@ -1,285 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) pgRouting Contributors - Version 2.0.0 (b19690f doc-merge)
-# This file is distributed under the same license as the pgRouting package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: pgRouting 2.0.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-09-24 15:37\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../../../src/tsp/doc/index.rst:13
-# 213bae5bc2614b69a60f3e0073160d13
-msgid "pgr_tsp - Traveling Sales Person"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:23
-# 28d53c5693be414b9d4e15432616d649
-msgid "Name"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:25
-# 7bdcd4773c134c22a45e8c2bf8c69234
-msgid "``pgr_tsp`` - Returns the best route from a start node via a list of nodes."
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:26
-# e59f80608ac3408ca7fa946af5af4417
-msgid "``pgr_tsp`` - Returns the best route order when passed a disance matrix."
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:27
-# e414d416862446308bea94c14348435a
-msgid "``pgr_makeDistanceMatrix`` - Returns a Eucleadian distance Matrix from the points provided in the sql result."
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:31
-# b3c88820c7a5418a941ab297cd704504
-msgid "Synopsis"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:33
-# 489c0d1c212243d2a690175685879879
-msgid "The travelling salesman problem (TSP) or travelling salesperson problem asks the following question: Given a list of cities and the distances between each pair of cities, what is the shortest possible route that visits each city exactly once and returns to the origin city? This algoritm uses simulated annealing to return a high quality approximate solution. Returns a set of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows, that make up a path."
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:41
-# 4b29f9b87ba2478dbc22cc14e9de938a
-msgid "Returns a set of (seq integer, id1 integer, id2 integer, cost float8) that is the best order to visit the nodes in the matrix. ``id1`` is the index into the distance matrix. ``id2`` is the point id from the sql."
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:43
-# bcd8df1b068345959235d9340bfbb6c9
-msgid "If no ``end_id`` is supplied or it is -1 or equal to the start_id then the TSP result is assumed to be a circluar loop returning back to the start. If ``end_id`` is supplied then the route is assumed to start and end the the designated ids."
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:52
-# a5d696205ff64dd78838f7d496644fe9
-msgid "Description"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:55
-# ac5b308e5db84ccf930cf635b92ebe54
-msgid "With Euclidean distances"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:56
-# 2620c8627d1a49d49bb0792bd00252c4
-msgid "The TSP solver is based on ordering the points using straight line (euclidean) distance [#f0]_ between nodes. The implementation is using an approximation algorithm that is very fast. It is not an exact solution, but it is guaranteed that a solution is returned after certain number of iterations."
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:58
-# 3de17b8a10e94e2988a8c3d14d2595a5
-msgid "a SQL query, which should return a set of rows with the following columns:"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:64
-# a63accfd6ffd4ff5a4dbd4f86d1cc9f8
-msgid "``int4`` identifier of the vertex"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:65
-# 84bf9edbffa04aeda33556bf2385177d
-msgid "``float8`` x-coordinate"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:66
-# 6c0979e0b89946b5b8adeebda45ce86a
-msgid "``float8`` y-coordinate"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:68
-# 971551f511c94aae883993550789160e
-msgid "``int4`` id of the start point"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:69
-# cdc6a47c5baf46c9a61e9f1b71d3c9f6
-msgid "``int4`` id of the end point, This is *OPTIONAL*, if include the route is optimized from start to end, otherwise it is assumed that the start and the end are the same point."
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:72
-# 3b7db9712989472bb58f2479a6f800d4
-msgid "The function returns set of :ref:`type_cost_result`:"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:74
-#: ../../../src/tsp/doc/index.rst:107
-# 900f0388134843f6aa35cde99e590e83
-# e860a32f488247dbadc7c74756c3cb98
-msgid "row sequence"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:75
-# 6c0f9ab7a7d0408f973ff946bd6c7949
-msgid "internal index to the distance matric"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:76
-# f1d83f14c13d4bb0a1ca5c7dd40cb78d
-msgid "``id`` of the node"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:77
-# e0ec20a9dca54cc8b7bd9c908c0f1e5b
-msgid "cost to traverse from the current node to the next node."
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:80
-# 70e99ac6fdfb4d689634b432425e5860
-msgid "Create a distance matrix"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:81
-# abbca3eeece44c25bf5ece181a334afa
-msgid "For users that need a distance matrix we have a simple function that takes SQL in ``sql`` as described above and returns a record with ``dmatrix`` and ``ids``."
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:87
-# da2be5a058fd4caa9bbbae6bfe105b3d
-msgid "The function returns a record of ``dmatrix``, ``ids``:"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:89
-# 8c7f21a352fb47e08c85dd6b22ba5f90
-msgid "``float8[][]`` a symeteric Euclidean distance matrix based on ``sql``."
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:90
-# a46135cbc16e4ff1992ecc75c7ae16f7
-msgid "``integer[]`` an array of ids as they are ordered in the distance matrix."
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:94
-# da0acd3751d048deb913970497de142d
-msgid "With distance matrix"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:95
-# ee8200d99c414a8980a9fed0744dd7ff
-msgid "For users, that do not want to use Euclidean distances, we also provode the ability to pass a distance matrix that we will solve and return an ordered list of nodes for the best order to visit each. It is up to the user to fully populate the distance matrix."
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:97
-# 1133284d6fa742728f54253d5d7a1b1f
-msgid "``float[][]`` distance matrix of points"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:98
-# 30bf5479d95f4f439c13a6a54566814e
-msgid "``int4`` index of the start point"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:99
-# b268b95158f74eedba20ffbc6963d252
-msgid "``int4`` (optional) index of the end node"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:101
-# 88e39cac076144bc9a404cdbaa72a2c6
-msgid "The ``end`` node is an optional parameter, you can just leave it out if you want a loop where the ``start`` is the depot and the route returns back to the depot. If you include the ``end`` parameter, we optimize the path from ``start`` to ``end`` and minimize the distance of the route while include the remaining points."
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:103
-# e889605ba1284c35aef9887b26f5fd38
-msgid "The distance matrix is a multidimensional `PostgreSQL array type <http://www.postgresql.org/docs/9.1/static/arrays.html>`_ that must be ``N x N`` in size."
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:105
-# 342bfeaa449942dbbe733bdd2857de88
-msgid "The result will be N records of ``[ seq, id ]``:"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:108
-# 0c8c76b6b870439782357ef66ae6e1ea
-msgid "index into the matrix"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:112
-# 049bf47d63bb40da8484a99c6f5e9b8b
-msgid "Footnotes"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:113
-# 4354faec266747d48c9aae3a1258e12b
-msgid "There was some thought given to pre-calculating the driving distances between the nodes using Dijkstra, but then I read a paper (unfortunately I don't remember who wrote it), where it was proved that the quality of TSP with euclidean distance is only slightly worse than one with real distance in case of normal city layout. In case of very sparse network or rivers and bridges it becomes more inaccurate, but still wholly satisfactory. Of course it is nice to have exact solution, but [...]
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:117
-# ace7d353ced743cf94e5ee9f2ab9e09a
-msgid "History"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:118
-# d0b9450fb14b43a9bd99ff9ea58edba2
-msgid "Renamed in version 2.0.0"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:119
-# f3595749ecfb4d11a0febaf0b3b230ee
-msgid "GAUL dependency removed in version 2.0.0"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:123
-# 5c86b2316e2647c7b465fd00de8ace5d
-msgid "Examples"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:125
-# 829fb5cc6f52447ea2be085c5fda64ef
-msgid "Using SQL parameter (all points from the table, atarting from 6 and ending at 5). We have listed two queries in this example, the first might vary from system to system because there are multiple equivalent answers. The second query should be stable in that the length optimal route should be the same regardless of order."
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:159
-# 4f796f78f49640e3b1fe208fc6f8c892
-msgid "Using distance matrix (A loop starting from 1)"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:161
-# 222083f1958f4204b2fff23ad86e4c1f
-msgid "When using just the start node you are getting a loop that starts with 1, in this case, and travels through the other nodes and is implied to return to the start node from the last one in the list. Since this is a circle there are at least two possible paths, one clockwise and one counter-clockwise that will have the same length and be equall valid. So in the following example it is also possible to get back a sequence of ids = {1,0,3,2} instead of the {1,2,3,0} sequence listed below."
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:175
-# 65c749a00c8645559f47d60e1360a517
-msgid "Using distance matrix (Starting from 1, ending at 2)"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:189
-# 103e98d40fdc4e98959110d702cfd4a5
-msgid "Using the vertices table edge_table_vertices_pgr generated by :ref:`pgr_create_topology`. Again we have two queries where the first might vary and the second is based on the overal path length."
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:226
-# 514cfde63a9b44ab8f28db46033cfd03
-msgid "The queries use the :ref:`sampledata` network."
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:230
-# d6fdc2608be94f8a8e4144d3aaab84a9
-msgid "See Also"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:232
-# 5f6c37ed377241eeaa63ee2d935a4120
-msgid ":ref:`type_cost_result`"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:233
-# cb7774109aae443ab3767851ab7a223d
-msgid "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
-msgstr ""
-
-#: ../../../src/tsp/doc/index.rst:234
-# e1b965891ceb405ca71b7c2be4a1c017
-msgid "http://en.wikipedia.org/wiki/Simulated_annealing"
-msgstr ""
-
diff --git a/doc/images/CMakeLists.txt b/doc/images/CMakeLists.txt
new file mode 100644
index 0000000..239a798
--- /dev/null
+++ b/doc/images/CMakeLists.txt
@@ -0,0 +1,19 @@
+
+SET(LOCAL_FILES
+    boost-inside.jpeg
+    Fig1-originalData.png
+    Fig2-cost.png
+    Fig4-costUndirected.png
+    Fig6-undirected.png
+    parallelImage.png
+    test1.png
+    trsp-test-image.png
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} "${f}" COPYONLY)
+    list(APPEND LOCAL_IMG_FILES  ${CMAKE_CURRENT_BINARY_DIR}/${f})
+endforeach()
+
+set(PgRouting_IMG_FILES ${PgRouting_IMG_FILES} ${LOCAL_IMG_FILES} PARENT_SCOPE)
+
diff --git a/doc/src/images/Fig1-originalData.png b/doc/images/Fig1-originalData.png
similarity index 100%
rename from doc/src/images/Fig1-originalData.png
rename to doc/images/Fig1-originalData.png
diff --git a/doc/src/images/Fig2-cost.png b/doc/images/Fig2-cost.png
similarity index 100%
rename from doc/src/images/Fig2-cost.png
rename to doc/images/Fig2-cost.png
diff --git a/doc/src/images/Fig4-costUndirected.png b/doc/images/Fig4-costUndirected.png
similarity index 100%
rename from doc/src/images/Fig4-costUndirected.png
rename to doc/images/Fig4-costUndirected.png
diff --git a/doc/src/images/Fig6-undirected.png b/doc/images/Fig6-undirected.png
similarity index 100%
rename from doc/src/images/Fig6-undirected.png
rename to doc/images/Fig6-undirected.png
diff --git a/doc/src/images/boost-inside.jpeg b/doc/images/boost-inside.jpeg
similarity index 100%
rename from doc/src/images/boost-inside.jpeg
rename to doc/images/boost-inside.jpeg
diff --git a/doc/src/images/parallelImage.png b/doc/images/parallelImage.png
similarity index 100%
rename from doc/src/images/parallelImage.png
rename to doc/images/parallelImage.png
diff --git a/doc/src/images/test1.png b/doc/images/test1.png
similarity index 100%
rename from doc/src/images/test1.png
rename to doc/images/test1.png
diff --git a/doc/src/images/trsp-test-image.png b/doc/images/trsp-test-image.png
similarity index 100%
rename from doc/src/images/trsp-test-image.png
rename to doc/images/trsp-test-image.png
diff --git a/doc/index.rst b/doc/index.rst
deleted file mode 100644
index 64c2729..0000000
--- a/doc/index.rst
+++ /dev/null
@@ -1,143 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _index:
-
-*******************************************************************************
-Table of Contents
-*******************************************************************************
-
-pgRouting extends the `PostGIS <http://postgis.net>`_/`PostgreSQL <http://postgresql.org>`_ geospatial database to provide geospatial routing and other network analysis functionality.
-
-This is the manual for pgRouting |release|.
-
-.. image:: _build/static/images/ccbysa.png
-    :align: left
-    :alt: Creative Commons Attribution-Share Alike 3.0 License
-
-The pgRouting Manual is licensed under a `Creative Commons Attribution-Share Alike 3.0 License <http://creativecommons.org/licenses/by-sa/3.0/>`_. Feel free to use this material any way you like, but we ask that you attribute credit to the pgRouting Project and wherever possible, a link back to http://pgrouting.org. For other licenses used in pgRouting see the :ref:`license` page.
-
-General
-===============================================================================
-
-.. toctree::
-    :maxdepth: 2
-
-    pgRouting-introduction
-    pgRouting-installation
-    support
-
-
-- :ref:`sampledata` that is used in the examples of this manual.
-
-.. toctree::
-   :hidden:
-
-   sampledata
-
-:ref:`Pgrouting Concepts <pgrouting_concepts>`
-===============================================================================
-
-.. include:: pgRouting-concepts.rst
-   :start-after: concepts_start
-   :end-before: concepts_end
-
-
-.. toctree::
-   :hidden:
-
-   pgRouting-concepts
-   
-
-.. rubric:: Reference
-
-:ref:`pgr_version` - to get pgRouting's version information.
-
-.. toctree::
-   :hidden:
-
-   pgr_version
-
-
-:ref:`Data Types <data_types>`
-===============================================================================
-
-
-- :ref:`type_cost_result` -  A set of records to describe a path result with cost attribute.
-- :ref:`pgr_costResult3[]<type_cost_result3>` - A set of records to describe a path result with cost attribute.
-- :ref:`pgr_geomResult<type_geom_result>` - A set of records to describe a path result with geometry attribute.
-
-.. toctree::
-   :hidden:
-
-   types_index
-
-
-:ref:`Topology Functions <topology_functions>`
-===============================================================================
-
--  :ref:`pgr_create_topology` -  to create a topology based on the geometry.
--  :ref:`pgr_create_vert_table` - to reconstruct the vertices table based on the source and target information.
--  :ref:`pgr_analyze_graph`  - to analyze the edges and vertices of the edge table.
--  :ref:`pgr_analyze_oneway` - to analyze directionality of the edges.
--  :ref:`pgr_node_network`  -to create nodes to a not noded edge table.
-
-.. toctree::
-   :hidden:
-
-   topology-functions
-
-
-:ref:`Routing functions <routing_functions>`
-===============================================================================
-
-.. toctree::
-    :hidden:
-
-    routingFunctions
-
-
-.. include:: routingFunctions.rst
-   :start-after: from-here
-   :end-before: to-here
-    
-
-
-Available Functions but not official pgRouting functions
-===============================================================================
-
-- :ref:`stable`
-- :ref:`proposed`
-
-.. toctree::
-    :hidden:
-
-    proposed
-
-
-
-:ref:`Change Log <change_log>`
-===============================================================================
-
-.. include:: release_notes.rst
-   :start-after: changelog start
-   :end-before: changelog end
-
-
-.. toctree::
-    :hidden:
-
-    release_notes
-
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
-
diff --git a/doc/ksp/CMakeLists.txt b/doc/ksp/CMakeLists.txt
new file mode 100644
index 0000000..1618f32
--- /dev/null
+++ b/doc/ksp/CMakeLists.txt
@@ -0,0 +1,13 @@
+
+SET(LOCAL_FILES
+     KSP-category.rst
+     pgr_KSP.rst
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}")
+    list(APPEND LOCAL_DOC_FILES  ${PGR_DOCUMENTATION_SOURCE_DIR}/${f})
+endforeach()
+
+set(PgRouting_DOC_FILES ${PgRouting_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE)
+
diff --git a/doc/ksp/KSP-category.rst b/doc/ksp/KSP-category.rst
new file mode 100644
index 0000000..71ad9f1
--- /dev/null
+++ b/doc/ksp/KSP-category.rst
@@ -0,0 +1,28 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+
+.. _KSP:
+
+KSP Category
+===============================================================================
+
+.. index from here
+
+* :ref:`pgr_KSP` - Driving Distance based on pgr_dijkstra
+* :ref:`pgr_withPointsKSP` - Driving Distance based on pgr_dijkstra
+
+.. index to here
+
+
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/ksp/pgr_KSP.rst b/doc/ksp/pgr_KSP.rst
new file mode 100644
index 0000000..410f280
--- /dev/null
+++ b/doc/ksp/pgr_KSP.rst
@@ -0,0 +1,181 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_ksp:
+
+pgr_KSP
+===============================================================================
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_KSP`` — Returns the "K" shortest paths.
+
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph
+
+   Boost Graph Inside
+
+.. rubric:: Availability: 2.0.0
+
+* Signature change 2.1.0
+
+
+Synopsis
+-------------------------------------------------------------------------------
+
+The K shortest path routing algorithm based on Yen's algorithm. "K" is the number of shortest paths desired.
+
+Signature Summary
+-------------------------------------------------------------------------------
+
+.. code-block:: sql
+
+    pgr_KSP(edges_sql, start_vid, end_vid, K);
+    pgr_KSP(edges_sql, start_vid, end_vid, k, directed, heap_paths)
+    RETURNS SET OF (seq, path_id, path_seq, node, edge, cost, agg_cost) or EMPTY SET
+
+Signatures
+-------------------------------------------------------------------------------
+
+.. index::
+  single: KSP(Minimal Signature)
+
+Minimal Signature
+..................
+
+.. code-block:: sql
+
+    pgr_ksp(edges_sql, start_vid, end_vid, K);
+    RETURNS SET OF (seq, path_id, path_seq, node, edge, cost, agg_cost) or EMPTY SET
+
+
+.. index::
+  single: ksp(Complete Signature)
+
+Complete Signature
+...................
+
+.. code-block:: sql
+
+    pgr_KSP(edges_sql, start_vid, end_vid, k, directed, heap_paths)
+    RETURNS SET OF (seq, path_id, path_seq, node, edge, cost, agg_cost) or EMPTY SET
+
+
+Description of the Signatures
+-------------------------------------------------------------------------------
+
+.. include:: pgRouting-concepts.rst
+    :start-after: basic_edges_sql_start
+    :end-before: basic_edges_sql_end
+
+Description of the parameters of the signatures
+..................................................
+
+============== ============ =================================================
+Column         Type           Description
+============== ============ =================================================
+**edges_sql**   ``TEXT``    SQL query as described above.
+**start_vid**   ``BIGINT``  Identifier of the starting vertex.
+**end_vid**     ``BIGINT``  Identifier of the ending vertex.
+**k**           ``INTEGER`` The desiered number of paths.
+**directed**    ``BOOLEAN`` (optional). When ``false`` the graph is considered as Undirected. Default is ``true`` which considers the graph as Directed.
+**heap_paths**  ``BOOLEAN`` (optional). When ``true`` returns all the paths stored in the process heap. Default is ``false`` which only returns ``k`` paths.
+============== ============ =================================================
+
+Roughly, if the shortest path has ``N`` edges, the heap will contain about than ``N * k`` paths for small value of ``k`` and ``k > 1``.
+
+
+
+Description of the return values
+...................................
+
+Returns set of ``(seq, path_seq, path_id, node, edge, cost, agg_cost)``
+
+============== =========== =================================================
+Column         Type        Description
+============== =========== =================================================
+**seq**        ``INTEGER`` Sequential value starting from **1**.
+**path_seq**   ``INTEGER`` Relative position in the path of ``node`` and ``edge``. Has value **1** for the beginning of a path.
+**path_id**    ``BIGINT``  Path identifier. The ordering of the paths For two paths i, j if i < j then agg_cost(i) <= agg_cost(j).
+**node**       ``BIGINT``  Identifier of the node in the path.
+**edge**       ``BIGINT``  Identifier of the edge used to go from ``node`` to the next node in the path sequence. ``-1`` for the last node of the route.
+**cost**       ``FLOAT``   Cost to traverse from ``node`` using ``edge`` to the next node in the path sequence.
+**agg_cost**   ``FLOAT``   Aggregate cost from ``start_vid`` to ``node``.
+============== =========== =================================================
+
+
+.. warning:: During the transition to 3.0, because pgr_ksp version 2.0 doesn't have defined a directed flag nor a heap_path flag, when pgr_ksp is used with only one flag version 2.0 signature will be used.
+
+
+Additional Examples
+------------------------------------------------------------------------------------------
+
+Examples to handle the one flag to choose signatures
+.........................................................................................
+
+The examples in this section use the following :ref:`fig1`
+
+.. literalinclude:: doc-ksp.queries
+    :start-after: --q1
+    :end-before: --q2
+
+
+Examples for queries marked as ``directed`` with ``cost`` and ``reverse_cost`` columns
+.........................................................................................
+
+The examples in this section use the following :ref:`fig1`
+
+.. literalinclude:: doc-ksp.queries
+    :start-after: --q2
+    :end-before: --q3
+
+
+
+Examples for queries marked as ``undirected`` with ``cost`` and ``reverse_cost`` columns
+.........................................................................................
+
+The examples in this section use the following :ref:`fig2`
+
+.. literalinclude:: doc-ksp.queries
+    :start-after: --q3
+    :end-before: --q4
+
+
+Examples for queries marked as ``directed`` with ``cost`` column
+.........................................................................................
+
+The examples in this section use the following :ref:`fig3`
+
+
+.. literalinclude:: doc-ksp.queries
+    :start-after: --q4
+    :end-before: --q5
+
+
+Examples for queries marked as ``undirected`` with ``cost`` column
+.........................................................................................
+
+The examples in this section use the following :ref:`fig4`
+
+.. literalinclude:: doc-ksp.queries
+    :start-after: --q5
+    :end-before: --q6
+
+See Also
+-------------------------------------------------------------------------------
+
+* http://en.wikipedia.org/wiki/K_shortest_path_routing
+* :doc:`sampledata` network.
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/label_graph/CMakeLists.txt b/doc/label_graph/CMakeLists.txt
new file mode 100644
index 0000000..62a8943
--- /dev/null
+++ b/doc/label_graph/CMakeLists.txt
@@ -0,0 +1,12 @@
+
+SET(LOCAL_FILES
+     pgr_labelGraph.rst
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}")
+    list(APPEND LOCAL_DOC_FILES  ${PGR_DOCUMENTATION_SOURCE_DIR}/${f})
+endforeach()
+
+set(PgRouting_DOC_FILES ${PgRouting_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE)
+
diff --git a/doc/label_graph/pgr_labelGraph.rst b/doc/label_graph/pgr_labelGraph.rst
new file mode 100644
index 0000000..63e8e25
--- /dev/null
+++ b/doc/label_graph/pgr_labelGraph.rst
@@ -0,0 +1,92 @@
+..
+   ****************************************************************************
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_labelGraph:
+
+
+pgr_labelGraph - Experimental
+===============================================================================
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_labelGraph`` — Locates and labels sub-networks within a network which are not topologically connected.
+
+.. include:: proposed.rst
+    :start-after: begin-warn-expr
+    :end-before: end-warn-expr
+
+
+Synopsis
+-------------------------------------------------------------------------------
+
+Must be run after ``pgr_createTopology()``. No use of ``geometry`` column. Only ``id``, ``source`` and  ``target`` columns are required.
+
+The function returns:
+
+- ``OK`` when a column with provided name has been generated and populated successfully. All connected edges will have unique similar integer values. In case of ``rows_where`` condition, non participating rows will have -1 integer values.
+- ``FAIL`` when the processing cannot be finished due to some error. Notice will be thrown accordingly.
+- ``rows_where condition generated 0 rows`` when passed SQL condition has not been fulfilled by any row.
+
+.. index::
+	single: labelGraph(Complete Signature) - Proposed
+
+.. code-block:: sql
+
+	varchar pgr_labelGraph(text, text, text, text, text, text)
+
+
+
+Description
+-------------------------------------------------------------------------------
+
+A network behind any routing query may consist of sub-networks completely isolated from each other. Possible reasons could be:
+
+- An island with no bridge connecting to the mainland.
+- An edge or mesh of edges failed to connect to other networks because of human negligence during data generation.
+- The data is not properly noded.
+- Topology creation failed to succeed.
+
+pgr_labelGraph() will create an integer column (with the name provided by the user) and will assign same integer values to all those edges in the network which are connected topologically. Thus better analysis regarding network structure is possible. In case of ``rows_where`` condition, non participating rows will have -1 integer values.
+
+Prerequisites:
+Must run ``pgr_createTopology()`` in order to generate ``source`` and ``target`` columns. Primary key column ``id`` should also be there in the network table.
+
+Function accepts the following parameters:
+
+:edge_table: ``text`` Network table name, with optional schema name.
+:id: ``text`` Primary key column name of the network table. Default is ``id``.
+:source: ``text`` Source column name generated after ``pgr_createTopology()``. Default is ``source``.
+:target: ``text`` Target column name generated after ``pgr_createTopology()``. Default is ``target``.
+:subgraph: ``text`` Column name which will hold the integer labels for each sub-graph. Default is ``subgraph``.
+:rows_where: ``text`` The SQL where condition. Default is ``true``, means the processing will be done on the whole table.
+
+
+
+
+Example Usage
+-------------------------------------------------------------------------------
+
+The sample data, has 3 subgraphs.
+
+.. literalinclude:: doc-pgr_labelGraph.queries
+   :start-after: --q1
+   :end-before: --q2
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* `pgr_createTopology <https://github.com/Zia-/pgrouting/blob/develop/src/common/sql/pgrouting_topology.sql>`_ to create the topology of a table based on its geometry and tolerance value.
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/lineGraph/CMakeLists.txt b/doc/lineGraph/CMakeLists.txt
new file mode 100644
index 0000000..570fc38
--- /dev/null
+++ b/doc/lineGraph/CMakeLists.txt
@@ -0,0 +1,13 @@
+
+SET(LOCAL_FILES
+     pgr_lineGraph.rst
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}")
+    list(APPEND LOCAL_DOC_FILES  ${PGR_DOCUMENTATION_SOURCE_DIR}/${f})
+endforeach()
+
+add_subdirectory("images")
+set(PgRouting_DOC_FILES ${PgRouting_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE)
+set(PgRouting_IMG_FILES ${PgRouting_IMG_FILES} PARENT_SCOPE)
diff --git a/doc/lineGraph/images/CMakeLists.txt b/doc/lineGraph/images/CMakeLists.txt
new file mode 100644
index 0000000..89adbb1
--- /dev/null
+++ b/doc/lineGraph/images/CMakeLists.txt
@@ -0,0 +1,10 @@
+SET(LOCAL_FILES
+    lineGraph.png
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/images/${f}" COPYONLY)
+    list(APPEND LOCAL_IMG_FILES  "${PGR_DOCUMENTATION_SOURCE_DIR}/images/${f}")
+endforeach()
+
+set(PgRouting_IMG_FILES ${PgRouting_IMG_FILES} ${LOCAL_IMG_FILES} PARENT_SCOPE)
diff --git a/doc/lineGraph/images/lineGraph.png b/doc/lineGraph/images/lineGraph.png
new file mode 100644
index 0000000..6ecbd2f
Binary files /dev/null and b/doc/lineGraph/images/lineGraph.png differ
diff --git a/doc/lineGraph/pgr_lineGraph.rst b/doc/lineGraph/pgr_lineGraph.rst
new file mode 100644
index 0000000..a296078
--- /dev/null
+++ b/doc/lineGraph/pgr_lineGraph.rst
@@ -0,0 +1,162 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_lineGraph:
+
+pgr_lineGraph - Experimental
+===============================================================================
+
+``pgr_lineGraph`` — Transforms a given graph into its corresponding edge-based graph.
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph/doc/dijkstra_shortest_paths.html
+
+   Boost Graph Inside
+
+
+.. include:: proposed.rst
+   :start-after: begin-warn-expr
+   :end-before: end-warn-expr
+
+
+Synopsis
+-------------------------------------------------------------------------------
+
+Given a graph G, its line graph L(G) is a graph such that:-
+
+- each vertex of L(G) represents an edge of G
+- two vertices of L(G) are adjacent if and only if their corresponding edges share a common endpoint in G.
+
+The following figures show a graph (left, with blue vertices) and its
+Line Graph (right, with green vertices).
+
+| |first|
+
+.. |first| image:: images/lineGraph.png
+   :align: middle
+
+Signature Summary
+-----------------
+
+.. code-block:: none
+
+    pgr_lineGraph(edges_sql, directed)
+    RETURNS SET OF (seq, source, target, cost, reverse_cost)
+        OR EMPTY SET
+
+
+Signatures
+-------------------------------------------------------------------------------
+
+.. index::
+    single: lineGraph(Minimal Use)
+
+Minimal signature
+.......................................
+
+.. code-block:: none
+
+    pgr_lineGraph(edges_sql)
+    RETURNS SET OF (seq, source, target, cost, reverse_cost) or EMPTY SET
+
+The minimal signature is for a **directed** graph:
+
+:Example:
+
+.. literalinclude:: doc-pgr_lineGraph.queries
+   :start-after: -- q1
+   :end-before: -- q2
+
+
+.. index::
+    single: lineGraph(Complete signature)
+
+Complete Signature
+.......................................
+
+.. code-block:: none
+
+    pgr_lineGraph(edges_sql, directed);
+    RETURNS SET OF (seq, source, target, cost, reverse_cost) or EMPTY SET
+
+This signature returns the Line Graph of the current graph:
+  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
+  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
+
+:Example:
+
+.. literalinclude:: doc-pgr_lineGraph.queries
+   :start-after: -- q2
+   :end-before: -- q3
+
+
+
+Description of the Signatures
+-------------------------------------------------------------------------------
+
+.. include:: pgRouting-concepts.rst
+    :start-after: basic_edges_sql_start
+    :end-before: basic_edges_sql_end
+
+
+Description of the parameters of the signatures
+-------------------------------------------------------------------------------
+
+======================= ====================== =================================================
+Column                  Type                   Description
+======================= ====================== =================================================
+**edges_sql**           ``TEXT``               SQL query as described above.
+**directed**            ``BOOLEAN``            * When ``true`` the graph is considered as `Directed`.
+                                               * When ``false`` the graph is considered as `Undirected`.
+======================= ====================== =================================================
+
+Description of the return values
+-------------------------------------------------------------------------------
+
+RETURNS SETOF  (seq, source, target, cost, reverse_cost)
+
+============================ =================   ===================================================================
+Column                       Type                Description
+============================ =================   ===================================================================
+**seq**                      ``INTEGER``         Sequential value starting from **1**.
+
+**source**                   ``BIGINT``          Identifier of the source vertex of the current edge `id`.
+
+                                                 * When `negative`: the source is the reverse edge in the original graph.
+
+**target**                   ``BIGINT``          Identifier of the target vertex of the current edge `id`.
+
+                                                 * When `negative`: the target is the reverse edge in the original graph.
+
+**cost**                     ``FLOAT``           Weight of the edge (`source`, `target`).
+
+                                                 * When `negative`: edge (`source`, `target`) does not exist, therefore it’s not part of the graph.
+
+**reverse_cost**             ``FLOAT``           Weight of the edge (`target`, `source`).
+
+                                                 * When `negative`: edge (`target`, `source`) does not exist, therefore it’s not part of the graph.
+============================ =================   ===================================================================
+
+Examples
+-------------------------------------------------------------------------------
+
+.. literalinclude:: doc-pgr_lineGraph.queries
+   :start-after: -- q3
+   :end-before: -- q4
+
+See Also
+-------------------------------------------------------------------------------
+
+* https://en.wikipedia.org/wiki/Line_graph
+* The queries use the :doc:`sampledata` network.
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/max_flow/CMakeLists.txt b/doc/max_flow/CMakeLists.txt
new file mode 100644
index 0000000..bb78e39
--- /dev/null
+++ b/doc/max_flow/CMakeLists.txt
@@ -0,0 +1,18 @@
+
+SET(LOCAL_FILES
+    flow-family.rst
+    pgr_maxFlow.rst
+    pgr_boykovKolmogorov.rst
+    pgr_edmondsKarp.rst
+    pgr_edgeDisjointPaths.rst
+    pgr_maxCardinalityMatch.rst
+    pgr_pushRelabel.rst
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}")
+    list(APPEND LOCAL_DOC_FILES  ${PGR_DOCUMENTATION_SOURCE_DIR}/${f})
+endforeach()
+
+set(PgRouting_DOC_FILES ${PgRouting_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE)
+
diff --git a/doc/max_flow/flow-family.rst b/doc/max_flow/flow-family.rst
new file mode 100644
index 0000000..c62d93f
--- /dev/null
+++ b/doc/max_flow/flow-family.rst
@@ -0,0 +1,142 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _maxFlow:
+
+Flow - Family of functions
+===================================
+
+.. index from here
+
+* :ref:`pgr_maxFlow` - Only the Max flow calculation using Push and Relabel algorithm.
+* :ref:`pgr_BoykovKolmogorov` - Boykov and Kolmogorov with details of flow on edges.
+* :ref:`pgr_EdmondsKarp` - Edmonds and Karp algorithm with details of flow on edges.
+* :ref:`pgr_PushRelabel` - Push and relabel algorithm with details of flow on edges.
+* Applications
+
+  * :ref:`pgr_edgeDisjointPaths` - Calculates edge disjoint paths between two groups of vertices.
+  * :ref:`pgr_maxCardinalityMatch` - Calculates a maximum cardinality matching in a graph.
+
+.. index to here
+
+
+.. include:: proposed.rst
+   :start-after: begin-warn-expr
+   :end-before: end-warn-expr
+
+.. toctree::
+    :hidden:
+
+    pgr_maxFlow
+    pgr_pushRelabel
+    pgr_edmondsKarp
+    pgr_boykovKolmogorov
+    pgr_maxCardinalityMatch
+    pgr_edgeDisjointPaths
+
+
+Flow Functions General Information
+-----------------------------------
+
+.. characteristics_start
+
+.. rubric:: Characteristics
+
+
+- The graph is **directed**.
+- Process is done only on edges with positive capacities.
+- When the maximum flow is 0 then there is no flow and **EMPTY SET** is returned.
+
+  - There is no flow when a **source** is the same as a **target**.
+
+- Any duplicated value in the source(s) or target(s) are ignored.
+- Calculates the flow/residual capacity for each edge. In the output
+
+  - Edges with zero flow are omitted.
+
+- Creates a **super source** and edges to all the source(s), and a **super target** and the edges from all the targets(s).
+- The maximum flow through the graph is guaranteed to be the value returned by :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and can be calculated:
+
+  - By aggregation of the outgoing flow from the sources
+  - By aggregation of the incoming flow to the targets
+
+.. characteristics_end
+
+
+:ref:`pgr_maxFlow <pgr_maxFlow>`  is the  maximum Flow and that maximum is guaranteed to be the same on the functions :ref:`pgr_pushRelabel <pgr_pushRelabel>`, :ref:`pgr_edmondsKarp <pgr_edmondsKarp>`, :ref:`pgr_boykovKolmogorov <pgr_boykovKolmogorov>`, but the actual flow through each edge may vary.
+
+
+
+Problem definition
+------------------------
+
+A flow network is a directed graph where each edge has a capacity and a flow.
+The flow through an edge must not exceed the capacity of the edge.
+Additionally, the incoming and outgoing flow of a node must be equal except the for source which only has outgoing flow, and the destination(sink) which only has incoming flow.
+
+Maximum flow algorithms calculate the maximum flow through the graph and the flow of each edge.
+
+The maximum flow through the graph is guaranteed to be the same with all implementations,
+but the actual flow through each edge may vary.
+Given the following query:
+
+pgr_maxFlow :math:`(edges\_sql, source\_vertex, sink\_vertex)`
+
+where :math:`edges\_sql = \{(id_i, source_i, target_i, capacity_i, reverse\_capacity_i)\}`
+
+.. rubric:: Graph definition
+
+The weighted directed graph, :math:`G(V,E)`, is defined as:
+
+* the set of vertices  :math:`V`
+
+  - :math:`source\_vertex  \cup  sink\_vertex  \bigcup  source_i  \bigcup  target_i`
+
+* the set of edges :math:`E`
+
+  - :math:`E = \begin{cases}
+    \text{ } \{(source_i, target_i, capacity_i) \text{ when } capacity > 0 \} & \quad  \text{ if } reverse\_capacity = \varnothing \\
+    \text{ } & \quad \text{ } \\
+    \{(source_i, target_i, capacity_i) \text{ when } capacity > 0 \} & \text{ } \\
+    \cup \{(target_i, source_i, reverse\_capacity_i) \text{ when } reverse\_capacity_i > 0)\} & \quad \text{ if } reverse\_capacity \neq \varnothing \\ \end{cases}`
+
+
+.. rubric:: Maximum flow problem
+
+Given:
+
+
+- :math:`G(V,E)`
+- :math:`source\_vertex \in V` the source vertex
+- :math:`sink\_vertex \in V` the sink vertex
+
+Then:
+
+     :math:`pgr\_maxFlow(edges\_sql, source, sink) = \boldsymbol{\Phi}`
+
+     :math:`\boldsymbol{\Phi} = {(id_i, edge\_id_i, source_i, target_i, flow_i, residual\_capacity_i)}`
+
+Where:
+
+:math:`\boldsymbol{\Phi}` is a subset of the original edges with their residual capacity and flow. The maximum flow through the graph can be obtained by aggregating on the source or sink and summing the flow from/to it. In particular:
+
+- :math:`id_i = i`
+- :math:`edge\_id = id_i` in edges_sql
+- :math:`residual\_capacity_i = capacity_i - flow_i`
+
+
+See Also
+--------
+
+* https://en.wikipedia.org/wiki/Maximum_flow_problem
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/max_flow/pgr_boykovKolmogorov.rst b/doc/max_flow/pgr_boykovKolmogorov.rst
new file mode 100644
index 0000000..4d3ef98
--- /dev/null
+++ b/doc/max_flow/pgr_boykovKolmogorov.rst
@@ -0,0 +1,168 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+
+.. _pgr_boykovKolmogorov:
+
+pgr_boykovKolmogorov - Proposed
+============================================
+
+
+Synopsis
+-------------------------------------------------------------------------------
+
+``pgr_boykovKolmogorov`` — Calculates the flow on the graph edges that maximizes the flow from the sources to the targets using Boykov Kolmogorov algorithm.
+
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph/doc/boykov_kolmogorov_max_flow.html 
+
+   Boost Graph Inside
+
+.. Rubric:: Availability:
+
+* Renamed 2.5.0, Previous name pgr_maxFlowBoykovKolmogorov
+* New in 2.3.0
+
+.. include:: proposed.rst
+   :start-after: begin-warn-expr
+   :end-before: end-warn-expr
+
+
+.. include::  flow-family.rst
+    :start-after: characteristics_start
+    :end-before: characteristics_end
+
+* Running time: Polynomial
+
+Signature Summary
+-----------------
+
+.. code-block:: none
+
+    pgr_boykovKolmogorov(edges_sql, source,  target) - Proposed
+    pgr_boykovKolmogorov(edges_sql, sources, target) - Proposed
+    pgr_boykovKolmogorov(edges_sql, source,  targets) - Proposed
+    pgr_boykovKolmogorov(edges_sql, sources, targets) - Proposed
+    RETURNS SET OF (seq, edge, start_vid, end_vid, flow, residual_capacity)
+    OR EMPTY SET
+
+
+.. index::
+    single: boykovKolmogorov(One to One) - Proposed
+
+One to One
+.....................................................................
+
+Calculates the flow on the graph edges that maximizes the flow from the `source` to the `target`.
+
+.. code-block:: none
+
+    pgr_boykovKolmogorov(edges_sql, source,  target)
+    RETURNS SET OF (seq, edge, start_vid, end_vid, flow, residual_capacity)
+    OR EMPTY SET
+
+:Example:
+
+.. literalinclude:: doc-pgr_boykovKolmogorov.queries
+   :start-after: -- q1
+   :end-before: -- q2
+
+
+.. index::
+    single: boykovKolmogorov(One to Many) - Proposed
+
+One to Many
+.....................................................................
+
+Calculates the flow on the graph edges that maximizes the flow from the `source` to all of the `targets`.
+
+.. code-block:: none
+
+    pgr_boykovKolmogorov(edges_sql, source,  targets)
+    RETURNS SET OF (seq, edge, start_vid, end_vid, flow, residual_capacity)
+    OR EMPTY SET
+
+:Example:
+
+.. literalinclude:: doc-pgr_boykovKolmogorov.queries
+   :start-after: -- q2
+   :end-before: -- q3
+
+
+.. index::
+    single: boykovKolmogorov(Many to One) - Proposed
+
+Many to One
+.....................................................................
+
+Calculates the flow on the graph edges that maximizes the flow from all of the `sources` to the `target`.
+
+.. code-block:: none
+
+    pgr_boykovKolmogorov(edges_sql, sources,  target)
+    RETURNS SET OF (seq, edge, start_vid, end_vid, flow, residual_capacity)
+    OR EMPTY SET
+
+:Example:
+
+.. literalinclude:: doc-pgr_boykovKolmogorov.queries
+   :start-after: -- q3
+   :end-before: -- q4
+
+
+.. index::
+    single: boykovKolmogorov(Many to Many) - Proposed
+
+Many to Many
+.....................................................................
+
+Calculates the flow on the graph edges that maximizes the flow from all of the `sources` to all of the `targets`.
+
+.. code-block:: none
+
+    pgr_boykovKolmogorov(edges_sql, sources,  targets)
+    RETURNS SET OF (seq, edge, start_vid, end_vid, flow, residual_capacity)
+    OR EMPTY SET
+
+:Example:
+
+.. literalinclude:: doc-pgr_boykovKolmogorov.queries
+   :start-after: -- q4
+   :end-before: -- q5
+
+Description of the Signatures
+--------------------------------------------------------
+
+.. include:: pgRouting-concepts.rst
+    :start-after: flow_edges_sql_start
+    :end-before: flow_edges_sql_end
+
+
+.. include::  ./pgr_maxFlow.rst
+    :start-after: pgr_flow_parameters_start
+    :end-before: pgr_flow_parameters_end
+
+
+.. include:: pgRouting-concepts.rst
+    :start-after: result_flow_start
+    :end-before: result_flow_end
+
+
+See Also
+--------
+
+* :ref:`maxFlow`, :ref:`pgr_pushRelabel <pgr_pushRelabel>`, :ref:`pgr_EdmondsKarp <pgr_edmondsKarp>`
+* http://www.boost.org/libs/graph/doc/boykov_kolmogorov_max_flow.html 
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/max_flow/pgr_edgeDisjointPaths.rst b/doc/max_flow/pgr_edgeDisjointPaths.rst
new file mode 100644
index 0000000..a1ea484
--- /dev/null
+++ b/doc/max_flow/pgr_edgeDisjointPaths.rst
@@ -0,0 +1,220 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+
+.. _pgr_edgeDisjointPaths:
+
+pgr_edgeDisjointPaths - Proposed
+==========================================
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_edgeDisjointPaths`` — Calculates edge disjoint paths between two groups of vertices.
+
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph/doc/boykov_kolmogorov_max_flow.html
+
+   Boost Graph Inside
+
+.. Rubric:: Availability: 2.3.0
+
+.. include:: proposed.rst
+   :start-after: begin-warn-expr
+   :end-before: end-warn-expr
+
+
+
+Synopsis
+-------------------------------------------------------------------------------
+
+Calculates the edge disjoint paths between two groups of vertices.
+Utilizes underlying maximum flow algorithms to calculate the paths.
+
+Characteristics:
+----------------
+
+The main characterics are:
+  - Calculates the edge disjoint paths between any two groups of vertices.
+  - Returns EMPTY SET when source and destination are the same, or cannot be reached.
+  - The graph can be directed or undirected.
+  - One to many, many to one, many to many versions are also supported.
+  - Uses :ref:`pgr_boykovKolmogorov` to calculate the paths.
+
+Signature Summary
+-----------------
+
+.. code-block:: none
+
+    pgr_edgeDisjointPaths(edges_sql, start_vid, end_vid)
+    pgr_edgeDisjointPaths(edges_sql, start_vid, end_vid, directed)
+    pgr_edgeDisjointPaths(edges_sql, start_vid, end_vids, directed)
+    pgr_edgeDisjointPaths(edges_sql, start_vids, end_vid, directed)
+    pgr_edgeDisjointPaths(edges_sql, start_vids, end_vids, directed)
+
+    RETURNS SET OF (seq, path_id, path_seq, [start_vid,] [end_vid,] node, edge, cost, agg_cost)
+    OR EMPTY SET
+
+
+Signatures
+----------
+
+.. index::
+    single: edgeDisjointPaths(Minimal Use) - Proposed
+
+Minimal use
+.................
+
+.. code-block:: none
+
+    pgr_edgeDisjointPaths(edges_sql, start_vid, end_vid)
+    RETURNS SET OF (seq, path_id, path_seq, node, edge, cost, agg_cost)
+    OR EMPTY SET
+
+The minimal use is for a **directed** graph from one ``start_vid`` to one ``end_vid``.
+
+:Example:
+
+.. literalinclude:: doc-pgr_edgeDisjointPaths.queries
+   :start-after: -- q1
+   :end-before: -- q2
+
+.. index::
+    single: edgeDisjointPaths(One to One) - Proposed
+
+One to One
+.......................................
+
+This signature finds the set of dijoint paths from one ``start_vid`` to one ``end_vid``:
+  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
+  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
+
+
+.. code-block:: none
+
+    pgr_edgeDisjointPaths(edges_sql, start_vid, end_vid, directed)
+    RETURNS SET OF (seq, path_id, path_seq, node, edge, cost, agg_cost)
+    OR EMPTY SET
+
+:Example:
+
+.. literalinclude:: doc-pgr_edgeDisjointPaths.queries
+   :start-after: -- q2
+   :end-before: -- q3
+
+
+.. index::
+    single: edgeDisjointPaths(One to Many) - Proposed
+
+One to Many
+.......................................
+
+This signature finds the sset of disjoint paths  from the ``start_vid`` to each one of the ``end_vid`` in ``end_vids``:
+  - on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
+  - on an **undirected** graph when ``directed`` flag is set to ``false``.
+  - The result is equivalent to the union of the results of the one to one `pgr_edgeDisjointPaths`.
+  - The extra ``end_vid`` in the result is used to distinguish to which path it belongs.
+
+
+
+
+.. code-block:: none
+
+    pgr_edgeDisjointPaths(edges_sql, start_vid, end_vids, directed)
+    RETURNS SET OF (seq, path_id, path_seq, end_vid, node, edge, cost, agg_cost)
+    OR EMPTY SET
+
+:Example:
+
+.. literalinclude:: doc-pgr_edgeDisjointPaths.queries
+   :start-after: -- q3
+   :end-before: -- q4
+
+
+
+.. index::
+    single: edgeDisjointPaths(Many to One) - Proposed
+
+Many to One
+.......................................
+
+This signature finds the set of disjoint paths from each one of the ``start_vid`` in ``start_vids`` to the ``end_vid``:
+  - on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
+  - on an **undirected** graph when ``directed`` flag is set to ``false``.
+  - The result is equivalent to the union of the results of the one to one `pgr_edgeDisjointPaths`.
+  - The extra ``start_vid`` in the result is used to distinguish to which path it belongs.
+
+.. code-block:: none
+
+    pgr_edgeDisjointPaths(edges_sql, start_vids, end_vid, directed)
+    RETURNS SET OF (seq, path_id, path_seq, start_vid, node, edge, cost, agg_cost)
+    OR EMPTY SET
+
+:Example:
+
+.. literalinclude:: doc-pgr_edgeDisjointPaths.queries
+   :start-after: -- q4
+   :end-before: -- q5
+
+
+
+.. index::
+    single: edgeDisjointPaths(Many to Many) - Proposed
+
+Many to Many
+.......................................
+
+This signature finds the set of disjoint paths from each one of the ``start_vid`` in ``start_vids`` to each one of the ``end_vid`` in ``end_vids``:
+  - on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
+  - on an **undirected** graph when ``directed`` flag is set to ``false``.
+  - The result is equivalent to the union of the results of the one to one `pgr_edgeDisjointPaths`.
+  - The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish to which path it belongs.
+
+.. code-block:: none
+
+    pgr_edgeDisjointPaths(edges_sql, start_vids, end_vids, directed)
+    RETURNS SET OF (seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)
+    OR EMPTY SET
+
+:Example:
+
+.. literalinclude:: doc-pgr_edgeDisjointPaths.queries
+   :start-after: -- q5
+   :end-before: -- q6
+
+
+
+Description of the Signatures
+----------------------------------------------
+
+.. include:: pgRouting-concepts.rst
+    :start-after: basic_edges_sql_start
+    :end-before: basic_edges_sql_end
+
+
+.. include:: pgr_dijkstra.rst
+    :start-after: pgr_dijkstra_parameters_start
+    :end-before: pgr_dijkstra_parameters_end
+
+
+.. include:: pgRouting-concepts.rst
+    :start-after: return_path_start
+    :end-before: return_path_end
+
+See Also
+--------
+
+* :ref:`maxFlow`
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/max_flow/pgr_edmondsKarp.rst b/doc/max_flow/pgr_edmondsKarp.rst
new file mode 100644
index 0000000..00272a2
--- /dev/null
+++ b/doc/max_flow/pgr_edmondsKarp.rst
@@ -0,0 +1,170 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+
+.. _pgr_edmondsKarp:
+
+pgr_edmondsKarp - Proposed
+============================================
+
+
+Synopsis
+-------------------------------------------------------------------------------
+
+``pgr_edmondsKarp`` — Calculates the flow on the graph edges that maximizes the flow from the sources to the targets using Push Relabel Algorithm.
+
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph/doc/push_relabel_max_flow.html 
+
+   Boost Graph Inside
+
+.. Rubric:: Availability:
+
+* Renamed 2.5.0, Previous name pgr_maxFlowEdmondsKarp
+* New in 2.3.0
+
+.. include:: proposed.rst
+   :start-after: begin-warn-expr
+   :end-before: end-warn-expr
+
+
+.. include::  flow-family.rst
+    :start-after: characteristics_start
+    :end-before: characteristics_end
+
+* Running time: :math:`O( V * E ^ 2)`
+
+Signature Summary
+-----------------
+
+.. code-block:: none
+
+    pgr_edmondsKarp(edges_sql, source,  target) - Proposed
+    pgr_edmondsKarp(edges_sql, sources, target) - Proposed
+    pgr_edmondsKarp(edges_sql, source,  targets) - Proposed
+    pgr_edmondsKarp(edges_sql, sources, targets) - Proposed
+    RETURNS SET OF (seq, edge, start_vid, end_vid, flow, residual_capacity)
+    OR EMPTY SET
+
+
+
+.. index::
+    single: edmondsKarp(One to One) - Proposed
+
+One to One
+.....................................................................
+
+Calculates the flow on the graph edges that maximizes the flow from the `source` to the `target`.
+
+.. code-block:: none
+
+    pgr_edmondsKarp(edges_sql, source,  target)
+    RETURNS SET OF (seq, edge, start_vid, end_vid, flow, residual_capacity)
+    OR EMPTY SET
+
+:Example:
+
+.. literalinclude:: doc-pgr_edmondsKarp.queries
+   :start-after: -- q1
+   :end-before: -- q2
+
+
+.. index::
+    single: edmondsKarp(One to Many) - Proposed
+
+One to Many
+.....................................................................
+
+Calculates the flow on the graph edges that maximizes the flow from the `source` to all of the `targets`.
+
+.. code-block:: none
+
+    pgr_edmondsKarp(edges_sql, source,  targets)
+    RETURNS SET OF (seq, edge, start_vid, end_vid, flow, residual_capacity)
+    OR EMPTY SET
+
+:Example:
+
+.. literalinclude:: doc-pgr_edmondsKarp.queries
+   :start-after: -- q2
+   :end-before: -- q3
+
+
+.. index::
+    single: edmondsKarp(Many to One) - Proposed
+
+Many to One
+.....................................................................
+
+Calculates the flow on the graph edges that maximizes the flow from all of the `sources` to the `target`.
+
+.. code-block:: none
+
+    pgr_edmondsKarp(edges_sql, sources,  target)
+    RETURNS SET OF (seq, edge, start_vid, end_vid, flow, residual_capacity)
+    OR EMPTY SET
+
+:Example:
+
+.. literalinclude:: doc-pgr_edmondsKarp.queries
+   :start-after: -- q3
+   :end-before: -- q4
+
+
+.. index::
+    single: edmondsKarp(Many to Many) - Proposed
+
+Many to Many
+.....................................................................
+
+Calculates the flow on the graph edges that maximizes the flow from all of the `sources` to all of the `targets`.
+
+.. code-block:: none
+
+    pgr_edmondsKarp(edges_sql, sources,  targets)
+    RETURNS SET OF (seq, edge, start_vid, end_vid, flow, residual_capacity)
+    OR EMPTY SET
+
+:Example:
+
+.. literalinclude:: doc-pgr_edmondsKarp.queries
+   :start-after: -- q4
+   :end-before: -- q5
+
+Description of the Signatures
+--------------------------------------------------------
+
+.. include:: pgRouting-concepts.rst
+    :start-after: flow_edges_sql_start
+    :end-before: flow_edges_sql_end
+
+
+.. include::  ./pgr_maxFlow.rst
+    :start-after: pgr_flow_parameters_start
+    :end-before: pgr_flow_parameters_end
+
+
+.. include:: pgRouting-concepts.rst
+    :start-after: result_flow_start
+    :end-before: result_flow_end
+
+
+See Also
+--------
+
+* :ref:`maxFlow`, :ref:`pgr_boykovKolmogorov <pgr_boykovKolmogorov>`, :ref:`pgr_PushRelabel <pgr_pushRelabel>`
+* http://www.boost.org/libs/graph/doc/edmonds_karp_max_flow.html
+* https://en.wikipedia.org/wiki/Edmonds%E2%80%93Karp_algorithm
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/max_flow/pgr_maxCardinalityMatch.rst b/doc/max_flow/pgr_maxCardinalityMatch.rst
new file mode 100644
index 0000000..abc68cc
--- /dev/null
+++ b/doc/max_flow/pgr_maxCardinalityMatch.rst
@@ -0,0 +1,166 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_maxCardinalityMatch:
+
+pgr_maxCardinalityMatch - Proposed
+============================================================
+
+
+Synopsis
+------------------------------------------------------------
+
+``pgr_maxCardinalityMatch`` — Calculates a maximum cardinality matching in a graph.
+
+.. include:: proposed.rst
+   :start-after: begin-warn-expr
+   :end-before: end-warn-expr
+
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph/doc/maximum_matching.html
+
+   Boost Graph Inside
+
+.. Rubric:: Availability:
+
+* Renamed 2.5.0, Previous name pgr_maximumCardinalityMatching
+* New in 2.3.0
+
+
+.. rubric:: Characteristics
+
+* A matching or independent edge set in a graph is a set of edges without common vertices.
+* A maximum matching is a matching that contains the largest possible number of edges.
+
+  * There may be many maximum matchings.
+  * Calculates **one** possible maximum cardinality matching in a graph.
+
+* The graph can be **directed** or **undirected**.
+* Running time: :math:`O( E*V * \alpha(E,V))`
+
+    * :math:`\alpha(E,V)` is the inverse of the `Ackermann function`_.
+
+
+.. _Ackermann function: https://en.wikipedia.org/wiki/Ackermann_function
+
+Signature Summary
+------------------------------------------------------------
+
+.. code-block:: none
+
+    pgr_MaximumCardinalityMatching(edges_sql) - Proposed
+    pgr_MaximumCardinalityMatching(edges_sql, directed) - Proposed
+
+    RETURNS SET OF (seq, edge_id, source, target)
+        OR EMPTY SET
+
+
+.. index::
+    single: MaximumCardinalityMatching(Minimal Use) - Proposed
+
+
+
+Minimal Use
+.............................................
+
+.. code-block:: none
+
+    pgr_MaximumCardinalityMatching(edges_sql)
+    RETURNS SET OF (seq, edge_id, source, target) OR EMPTY SET
+
+The minimal use calculates one possible maximum cardinality matching on a **directed** graph.
+
+:Example:
+
+.. literalinclude:: doc-pgr_maxCardinalityMatch.queries
+   :start-after: -- q1
+   :end-before: -- q2
+
+.. index::
+    single: MaximumCardinalityMatching(Complete Signature) - Proposed
+
+Complete signature
+.............................................
+
+.. code-block:: none
+
+    pgr_MaximumCardinalityMatching(edges_sql, directed)
+    RETURNS SET OF (seq, edge_id, source, target) OR EMPTY SET
+
+
+The complete signature calculates one possible maximum cardinality matching.
+
+:Example:
+
+.. literalinclude:: doc-pgr_maxCardinalityMatch.queries
+   :start-after: -- q2
+   :end-before: -- q3
+
+
+
+Description of the Signatures
+--------------------------------------------------------
+
+
+Description of the SQL query
+...........................................................
+
+:edges_sql: an SQL query, which should return a set of rows with the following columns:
+
+====================  ===================   =================================================
+Column                Type                  Description
+====================  ===================   =================================================
+**id**                ``ANY-INTEGER``       Identifier of the edge.
+**source**            ``ANY-INTEGER``       Identifier of the first end point vertex of the edge.
+**target**            ``ANY-INTEGER``       Identifier of the second end point vertex of the edge.
+**going**             ``ANY-NUMERIC``       A positive value represents the existence of the edge (source, target).
+**coming**            ``ANY-NUMERIC``       A positive value represents the existence of the edge (target, source).
+====================  ===================   =================================================
+
+Where:
+
+  - :ANY-INTEGER: SMALLINT, INTEGER, BIGINT
+  - :ANY-NUMERIC: SMALLINT, INTEGER, BIGINT, REAL, DOUBLE PRECISION
+
+Description of the parameters of the signatures
+...........................................................
+
+================= ====================== =================================================
+Column            Type                   Description
+================= ====================== =================================================
+**edges_sql**     ``TEXT``               SQL query as described above.
+**directed**      ``BOOLEAN``            (optional) Determines the type of the graph. Default TRUE.
+================= ====================== =================================================
+
+Description of the Result
+...........................................................
+
+=====================  ====================  =================================================
+Column                 Type                  Description
+=====================  ====================  =================================================
+**seq**                ``INT``               Sequential value starting from **1**.
+**edge**               ``BIGINT``            Identifier of the edge in the original query(edges_sql).
+**source**             ``BIGINT``            Identifier of the first end point of the edge.
+**target**             ``BIGINT``            Identifier of the second end point of the edge.
+=====================  ====================  =================================================
+
+See Also
+--------
+
+* :ref:`maxFlow`
+* http://www.boost.org/libs/graph/doc/maximum_matching.html
+* https://en.wikipedia.org/wiki/Matching_%28graph_theory%29
+* https://en.wikipedia.org/wiki/Ackermann_function
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/max_flow/pgr_maxFlow.rst b/doc/max_flow/pgr_maxFlow.rst
new file mode 100644
index 0000000..09307a2
--- /dev/null
+++ b/doc/max_flow/pgr_maxFlow.rst
@@ -0,0 +1,185 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_maxFlow:
+
+pgr_maxFlow - Proposed
+============================================
+
+
+Synopsis
+-------------------------------------------------------------------------------
+
+``pgr_maxFlow`` — Calculates the maximum flow in a directed graph from the source(s) to the targets(s) using the Push Relabel algorithm.
+
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph/doc/push_relabel_max_flow.html
+
+   Boost Graph Inside
+
+.. Rubric:: Availability: 2.4.0
+
+.. include:: proposed.rst
+   :start-after: begin-warn-expr
+   :end-before: end-warn-expr
+
+
+.. rubric:: Characteristics
+
+- The graph is **directed**.
+- When the maximum flow is 0 then there is no flow and **0** is returned.
+
+  - There is no flow when a **source** is the same as a **target**.
+      
+- Any duplicated value in the source(s) or target(s) are ignored.
+- Uses the :ref:`pgr_pushRelabel <pgr_pushRelabel>` algorithm.
+
+* Running time: :math:`O( V ^ 3)`
+
+Signature Summary
+-----------------
+
+.. code-block:: none
+
+    pgr_maxFlow(edges_sql, source,  target)
+    pgr_maxFlow(edges_sql, sources,  target)
+    pgr_maxFlow(edges_sql, source,  targets)
+    pgr_maxFlow(edges_sql, sources,  targets)
+    RETURNS BIGINT
+
+
+.. index::
+    single: maxFlow(One to One) - Proposed
+
+One to One
+.....................................................................
+
+Calculates the maximum flow from the `source` to the `target`.
+
+.. code-block:: none
+
+    pgr_maxFlow(edges_sql, source,  target)
+    RETURNS BIGINT
+
+:Example:
+
+.. literalinclude:: doc-pgr_maxFlow.queries
+   :start-after: -- q1
+   :end-before: -- q2
+
+
+.. index::
+    single: maxFlow(One to Many) - Proposed
+
+One to Many
+.....................................................................
+
+Calculates the maximum flow from the `source` to all of the `targets`.
+
+.. code-block:: none
+
+    pgr_maxFlow(edges_sql, source,  targets)
+    RETURNS BIGINT
+
+:Example:
+
+.. literalinclude:: doc-pgr_maxFlow.queries
+   :start-after: -- q2
+   :end-before: -- q3
+
+
+.. index::
+    single: maxFlow(Many to One) - Proposed
+
+Many to One
+.....................................................................
+
+Calculates the maximum flow from all the `sources` to the `target`.
+
+.. code-block:: none
+
+    pgr_maxFlow(edges_sql, sources,  target)
+    RETURNS BIGINT
+
+:Example:
+
+.. literalinclude:: doc-pgr_maxFlow.queries
+   :start-after: -- q3
+   :end-before: -- q4
+
+
+.. index::
+    single: maxFlow(Many to Many) - Proposed
+
+Many to Many
+.....................................................................
+
+Calculates the maximum flow from all of the `sources` to all of the `targets`.
+
+.. code-block:: none
+
+    pgr_maxFlow(edges_sql, sources,  targets)
+    RETURNS BIGINT
+
+:Example:
+
+.. literalinclude:: doc-pgr_maxFlow.queries
+   :start-after: -- q4
+   :end-before: -- q5
+
+Description of the Signatures
+--------------------------------------------------------
+
+
+.. include:: pgRouting-concepts.rst
+    :start-after: flow_edges_sql_start
+    :end-before: flow_edges_sql_end
+
+
+.. pgr_flow_parameters_start
+
+Description of the Parameters of the Flow Signatures
+...............................................................................
+
+============== ================== ======== =================================================
+Column         Type               Default     Description
+============== ================== ======== =================================================
+**edges_sql**  ``TEXT``                    The edges SQL query as described above.
+**source**     ``BIGINT``                  Identifier of the starting vertex of the flow.
+**sources**    ``ARRAY[BIGINT]``           Array of identifiers of the starting vertices of the flow.
+**target**     ``BIGINT``                  Identifier of the ending vertex of the flow.
+**targets**    ``ARRAY[BIGINT]``           Array of identifiers of the ending vertices of the flow.
+============== ================== ======== =================================================
+
+.. pgr_flow_parameters_end
+
+
+
+Description of the return value
+.....................................................................
+
+====================== =================================================
+Type                   Description
+====================== =================================================
+``BIGINT``             Maximum flow possible from the source(s) to the target(s)
+====================== =================================================
+
+See Also
+--------
+
+* :ref:`maxFlow`
+* http://www.boost.org/libs/graph/doc/push_relabel_max_flow.html
+* https://en.wikipedia.org/wiki/Push%E2%80%93relabel_maximum_flow_algorithm
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/max_flow/pgr_pushRelabel.rst b/doc/max_flow/pgr_pushRelabel.rst
new file mode 100644
index 0000000..4d0ced5
--- /dev/null
+++ b/doc/max_flow/pgr_pushRelabel.rst
@@ -0,0 +1,168 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+
+.. _pgr_pushRelabel:
+
+pgr_pushRelabel - Proposed
+============================================
+
+
+Synopsis
+-------------------------------------------------------------------------------
+
+``pgr_pushRelabel`` — Calculates the flow on the graph edges that maximizes the flow from the sources to the targets using Push Relabel Algorithm.
+
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph/doc/push_relabel_max_flow.html 
+
+   Boost Graph Inside
+
+.. Rubric:: Availability:
+
+* Renamed 2.5.0, Previous name pgr_maxFlowPushRelabel
+* New in 2.3.0
+
+.. include:: proposed.rst
+   :start-after: begin-warn-expr
+   :end-before: end-warn-expr
+
+.. include::  flow-family.rst
+    :start-after: characteristics_start
+    :end-before: characteristics_end
+
+* Running time: :math:`O( V ^ 3)`
+
+Signature Summary
+-----------------
+
+.. code-block:: none
+
+    pgr_pushRelabel(edges_sql, source,  target) - Proposed
+    pgr_pushRelabel(edges_sql, sources, target) - Proposed
+    pgr_pushRelabel(edges_sql, source,  targets) - Proposed
+    pgr_pushRelabel(edges_sql, sources, targets) - Proposed
+    RETURNS SET OF (seq, edge, start_vid, end_vid, flow, residual_capacity)
+    OR EMPTY SET
+
+
+.. index::
+    single: pushRelabel(One to One) - Proposed
+
+One to One
+.....................................................................
+
+Calculates the flow on the graph edges that maximizes the flow from the `source` to the `target`.
+
+.. code-block:: none
+
+    pgr_pushRelabel(edges_sql, source,  target)
+    RETURNS SET OF (seq, edge, start_vid, end_vid, flow, residual_capacity)
+    OR EMPTY SET
+
+:Example:
+
+.. literalinclude:: doc-pgr_pushRelabel.queries
+   :start-after: -- q1
+   :end-before: -- q2
+
+
+.. index::
+    single: pushRelabel(One to Many) - Proposed
+
+One to Many
+.....................................................................
+
+Calculates the flow on the graph edges that maximizes the flow from the `source` to all of the `targets`.
+
+.. code-block:: none
+
+    pgr_pushRelabel(edges_sql, source,  targets)
+    RETURNS SET OF (seq, edge, start_vid, end_vid, flow, residual_capacity)
+    OR EMPTY SET
+
+:Example:
+
+.. literalinclude:: doc-pgr_pushRelabel.queries
+   :start-after: -- q2
+   :end-before: -- q3
+
+
+.. index::
+    single: pushRelabel(Many to One) - Proposed
+
+Many to One
+.....................................................................
+
+Calculates the flow on the graph edges that maximizes the flow from all of the `sources` to the `target`.
+
+.. code-block:: none
+
+    pgr_pushRelabel(edges_sql, sources,  target)
+    RETURNS SET OF (seq, edge, start_vid, end_vid, flow, residual_capacity)
+    OR EMPTY SET
+
+:Example:
+
+.. literalinclude:: doc-pgr_pushRelabel.queries
+   :start-after: -- q3
+   :end-before: -- q4
+
+
+.. index::
+    single: pushRelabel(Many to Many) - Proposed
+
+Many to Many
+.....................................................................
+
+Calculates the flow on the graph edges that maximizes the flow from all of the `sources` to all of the `targets`.
+
+.. code-block:: none
+
+    pgr_pushRelabel(edges_sql, sources,  targets)
+    RETURNS SET OF (seq, edge, start_vid, end_vid, flow, residual_capacity)
+    OR EMPTY SET
+
+:Example:
+
+.. literalinclude:: doc-pgr_pushRelabel.queries
+   :start-after: -- q4
+   :end-before: -- q5
+
+Description of the Signatures
+--------------------------------------------------------
+
+.. include:: pgRouting-concepts.rst
+    :start-after: flow_edges_sql_start
+    :end-before: flow_edges_sql_end
+
+
+.. include::  ./pgr_maxFlow.rst
+    :start-after: pgr_flow_parameters_start
+    :end-before: pgr_flow_parameters_end
+
+
+.. include:: pgRouting-concepts.rst
+    :start-after: result_flow_start
+    :end-before: result_flow_end
+
+
+See Also
+--------
+
+* :ref:`maxFlow`, :ref:`pgr_boykovKolmogorov <pgr_boykovKolmogorov>`, :ref:`pgr_edmondsKarp <pgr_edmondsKarp>`
+* http://www.boost.org/libs/graph/doc/push_relabel_max_flow.html 
+* https://en.wikipedia.org/wiki/Push%E2%80%93relabel_maximum_flow_algorithm
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/pickDeliver/CMakeLists.txt b/doc/pickDeliver/CMakeLists.txt
new file mode 100644
index 0000000..7be0530
--- /dev/null
+++ b/doc/pickDeliver/CMakeLists.txt
@@ -0,0 +1,14 @@
+
+SET(LOCAL_FILES
+     pgr_pickDeliverEuclidean.rst
+     pgr_pickDeliver.rst
+     VRP-category.rst
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}")
+    list(APPEND LOCAL_DOC_FILES  ${PGR_DOCUMENTATION_SOURCE_DIR}/${f})
+endforeach()
+
+set(PgRouting_DOC_FILES ${PgRouting_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE)
+
diff --git a/doc/pickDeliver/VRP-category.rst b/doc/pickDeliver/VRP-category.rst
new file mode 100644
index 0000000..1ec91f5
--- /dev/null
+++ b/doc/pickDeliver/VRP-category.rst
@@ -0,0 +1,510 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _VRP:
+
+Vehicle Routing Functions Category
+===============================================================================
+
+.. contents::
+
+.. include:: proposed.rst
+   :start-after: begin-warn-expr
+   :end-before: end-warn-expr
+
+.. index from here
+.. rubric:: Pickup and delivery problem
+
+- :doc:`pgr_pickDeliver` - Pickup & Delivery using a Cost Matrix
+- :doc:`pgr_pickDeliverEuclidean` - Pickup & Delivery with Euclidean distances
+
+.. rubric:: Experimental functions
+
+- :doc:`pgr_vrpOneDepot` - VRP One Depot
+
+.. index to here
+
+.. toctree::
+  :hidden:
+
+  pgr_pickDeliver
+  pgr_pickDeliverEuclidean
+  pgr_vrpOneDepot
+
+
+Introduction
+-------------------------------------------------------------------------------
+
+Vehicle Routing Problems `VRP` are **NP-hard** optimization problem, it generalises the travelling salesman problem (TSP).
+
+- The objective of the VRP is to minimize the total route cost.
+- There are several variants of the VRP problem,
+
+**pgRouting does not try to implement all variants.**
+
+
+Characteristics
+...............................................................................
+
+- Capacitated Vehicle Routing Problem `CVRP` where The vehicles have limited carrying capacity of the goods.
+- Vehicle Routing Problem with Time Windows `VRPTW` where the locations have time windows within which the vehicle's visits must be made.
+- Vehicle Routing Problem with Pickup and Delivery `VRPPD` where a number of goods need to be moved from certain pickup locations to other delivery locations.
+
+
+.. Rubric:: Limitations
+
+- No multiple time windows for a location.
+- Less vehicle used is considered better.
+- Less total duration is better.
+- Less wait time is better.
+
+
+Pick & Delivery
+-------------------------------------------------------------------------------
+
+Problem: `CVRPPDTW` Capacitated Pick and Delivery Vehicle Routing problem with Time Windows
+
+- Times are relative to `0`
+- The vehicles
+
+  - have start and ending service duration times.
+  - have opening and closing times for the start and ending locations.
+  - have a capacity.
+
+- The orders
+
+  - Have pick up and delivery locations.
+  - Have opening and closing times for the pickup and delivery locations.
+  - Have pickup and delivery duration service times.
+  - have a demand request for moving goods from the pickup location to the delivery location.
+
+- Time based calculations:
+
+  - Travel time between customers is :math:`distance / speed`
+  - Pickup and delivery order pair is done by the same vehicle.
+  - A pickup is done before the delivery.
+
+
+
+
+
+Parameters
+-------------------------------------------------------------------------------
+
+
+Pick & deliver
+...............................................................................
+
+Both implementations use the following same parameters: 
+
+.. pd_parameters_start
+
+================= ================== ========= =================================================
+Column            Type                Default    Description
+================= ================== ========= =================================================
+**orders_sql**    ``TEXT``                     `Pick & Deliver Orders SQL`_ query containing the orders to be processed.
+**vehicles_sql**  ``TEXT``                     `Pick & Deliver Vehicles SQL`_ query containing the vehicles to be used.
+**factor**        ``NUMERIC``          1       (Optional) Travel time multiplier. See :ref:`pd_factor`
+**max_cycles**    ``INTEGER``          10      (Optional) Maximum number of cycles to perform on the optimization.
+**initial_sol**   ``INTEGER``          4       (Optional) Initial solution to be used.
+
+                                               - ``1`` One order per truck
+                                               - ``2`` Push front order.
+                                               - ``3`` Push back order.
+                                               - ``4`` Optimize insert.
+                                               - ``5`` Push back order that allows more orders to be inserted at the back
+                                               - ``6`` Push front order that allows more orders to be inserted at the front
+================= ================== ========= =================================================
+
+.. pd_parameters_end
+
+The non euclidean implementation, additionally has:
+
+================= ================== =================================================
+Column            Type                Description
+================= ================== =================================================
+**matrix_sql**    ``TEXT``             `Pick & Deliver Matrix SQL`_ query containing the distance or travel times.
+================= ================== =================================================
+
+
+Inner Queries
+-------------------------------------------------------------------------------
+
+- `Pick & Deliver Orders SQL`_
+- `Pick & Deliver Vehicles SQL`_
+- `Pick & Deliver Matrix SQL`_
+
+.. rubric:: return columns
+
+- :ref:`Description of return columns <return_vrp_matrix_start>`
+- :ref:`Description of the return columns for Euclidean version <return_vrp_euclidean_start>`
+
+
+..
+    info[0].name = strdup("id");
+    info[1].name = strdup("demand");
+    info[2].name = strdup("p_x");
+    info[3].name = strdup("p_y");
+    info[4].name = strdup("p_open");
+    info[5].name = strdup("p_close");
+    info[6].name = strdup("p_service");
+    info[7].name = strdup("d_x");
+    info[8].name = strdup("d_y");
+    info[9].name = strdup("d_open");
+    info[10].name = strdup("d_close");
+    info[11].name = strdup("d_service");
+    info[12].name = strdup("p_node_id");
+    info[13].name = strdup("d_node_id")
+
+Pick & Deliver Orders SQL
+.........................................................................................
+
+In general, the columns for the orders SQL is the same in both implementation of pick and delivery:
+
+.. pd_orders_sql_general_start
+
+================  ===================   =========== ================================================
+Column            Type                  Default     Description
+================  ===================   =========== ================================================
+**id**            |ANY-INTEGER|                     Identifier of the pick-delivery order pair.
+**demand**        |ANY-NUMERICAL|                   Number of units in the order
+**p_open**        |ANY-NUMERICAL|                   The time, relative to 0, when the pickup location opens.
+**p_close**       |ANY-NUMERICAL|                   The time, relative to 0, when the pickup location closes.
+**d_service**     |ANY-NUMERICAL|       0           The duration of the loading at the pickup location.
+**d_open**        |ANY-NUMERICAL|                   The time, relative to 0, when the delivery location opens.
+**d_close**       |ANY-NUMERICAL|                   The time, relative to 0, when the delivery location closes.
+**d_service**     |ANY-NUMERICAL|       0           The duration of the loading at the delivery location.
+================  ===================   =========== ================================================
+
+
+.. pd_orders_sql_general_end
+
+
+.. pd_orders_sql_matrix_start
+
+For the non euclidean implementation, the starting and ending identifiers are needed:
+
+==================  ===================  ================================================
+Column              Type                  Description
+==================  ===================  ================================================
+**p_node_id**       |ANY-INTEGER|          The node identifier of the pickup, must match a node identifier in the matrix table.
+**d_node_id**       |ANY-INTEGER|          The node identifier of the delivery, must match a node identifier in the matrix table.
+==================  ===================  ================================================
+
+.. pd_orders_sql_matrix_end
+
+
+.. pd_orders_euclidean_sql_start
+
+For the euclidean implementation, pick up and delivery  :math:`(x,y)` locations are needed:
+
+================  ===================    ================================================
+Column            Type                       Description
+================  ===================    ================================================
+**p_x**           |ANY-NUMERICAL|         :math:`x` value of the pick up location
+**p_y**           |ANY-NUMERICAL|         :math:`y` value of the pick up location
+**d_x**           |ANY-NUMERICAL|         :math:`x` value of the delivery location
+**d_y**           |ANY-NUMERICAL|         :math:`y` value of the delivery location
+================  ===================    ================================================
+
+
+.. pd_orders_euclidean_sql_end
+
+
+
+..
+   info[0].name = strdup("id");
+   info[1].name = strdup("capacity");
+   info[2].name = strdup("start_x");
+   info[3].name = strdup("start_y");
+   info[4].name = strdup("number");
+   info[5].name = strdup("start_open");
+   info[6].name = strdup("start_close");
+   info[7].name = strdup("start_service");
+   info[8].name = strdup("end_x");
+   info[9].name = strdup("end_y");
+   info[10].name = strdup("end_open");
+   info[11].name = strdup("end_close");
+   info[12].name = strdup("end_service");
+   info[13].name = strdup("speed");
+   info[14].name = strdup("start_node_id");
+   info[15].name = strdup("end_node_id");
+
+
+.. _pd_vehicle_sql:
+
+Pick & Deliver Vehicles SQL
+.........................................................................................
+
+In general, the columns for the vehicles_sql is the same in both implementation of pick and delivery:
+
+.. pd_vehicle_sql_general_start
+
+==================  =================== ================ ================================================
+Column              Type                  Default           Description
+==================  =================== ================ ================================================
+**id**              |ANY-INTEGER|                         Identifier of the pick-delivery order pair.
+**capacity**        |ANY-NUMERICAL|                       Number of units in the order
+**speed**           |ANY-NUMERICAL|      `1`              Average speed of the vehicle.
+
+**start_open**      |ANY-NUMERICAL|                       The time, relative to 0, when the starting location opens.
+**start_close**     |ANY-NUMERICAL|                       The time, relative to 0, when the starting location closes.
+**start_service**   |ANY-NUMERICAL|      `0`              The duration of the loading at the starting location.
+
+**end_open**        |ANY-NUMERICAL|      `start_open`     The time, relative to 0, when the ending location opens.
+**end_close**       |ANY-NUMERICAL|      `start_close`    The time, relative to 0, when the ending location closes.
+**end_service**     |ANY-NUMERICAL|      `start_service`  The duration of the loading at the ending location.
+==================  =================== ================ ================================================
+
+.. pd_vehicle_sql_general_end
+
+.. pd_vehicle_sql_matrix_start
+
+For the non euclidean implementation, the starting and ending identifiers are needed:
+
+==================  =================== ================ ================================================
+Column              Type                  Default           Description
+==================  =================== ================ ================================================
+**start_node_id**   |ANY-INTEGER|                         The node identifier of the starting location, must match a node identifier in the matrix table.
+**end_node_id**     |ANY-INTEGER|        `start_node_id`  The node identifier of the ending location, must match a node identifier in the matrix table.
+==================  =================== ================ ================================================
+
+.. pd_vehicle_sql_matrix_end
+
+.. pd_vehicle_sql_euclidean_start
+
+For the euclidean implementation, starting and ending :math:`(x,y)` locations are needed:
+
+==================  =================== ================ ================================================
+Column              Type                  Default           Description
+==================  =================== ================ ================================================
+**start_x**         |ANY-NUMERICAL|                         :math:`x` value of the coordinate of the starting location.
+**start_y**         |ANY-NUMERICAL|                         :math:`y` value of the coordinate of the starting location.
+**end_x**           |ANY-NUMERICAL|          `start_x`      :math:`x` value of the coordinate of the ending location.
+**end_y**           |ANY-NUMERICAL|          `start_y`      :math:`y` value of the coordinate of the ending location.
+==================  =================== ================ ================================================
+
+.. pd_vehicle_sql_euclidean_end
+
+
+Pick & Deliver Matrix SQL
+.........................................................................................
+
+.. TODO
+
+.. warning:: TODO
+
+
+
+
+Results
+-------------------------------------------------------------------------------
+
+..
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT order_id BIGINT,
+    OUT stop_type INT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+
+.. _return_vrp_matrix_start:
+
+Description of the result (TODO Disussion: Euclidean & Matrix)
+.........................................................................................
+
+.. todo:: fix when everything below is fixed
+
+
+.. code-block:: none
+
+    RETURNS SET OF
+        (seq, vehicle_seq, vehicle_id, stop_seq, stop_type,
+            travel_time, arrival_time, wait_time, service_time,  departure_time)
+        UNION
+        (summary row)
+
+=================== ============= =================================================
+Column              Type           Description
+=================== ============= =================================================
+**seq**              INTEGER      Sequential value starting from **1**.
+**vehicle_seq**      INTEGER      Sequential value starting from **1** for current vehicles. The :math:`n_{th}` vehicle in the solution.
+**vehicle_id**       BIGINT       Current vehicle identifier.
+**stop_seq**         INTEGER      Sequential value starting from **1** for the stops made by the current vehicle. The :math:`m_{th}` stop of the current vehicle.
+**stop_type**        INTEGER      Kind of stop location the vehicle is at:
+
+                                  - ``1``: Starting location 
+                                  - ``2``: Pickup location 
+                                  - ``3``: Delivery location 
+                                  - ``6``: Ending location 
+
+**order_id**         BIGINT       Pickup-Delivery order pair identifier.
+
+                                  - ``-1``: When no order is involved on the current stop location. 
+
+**cargo**            FLOAT        Cargo units of the vehicle when leaving the stop.
+
+**travel_time**      FLOAT        Travel time from previous ``stop_seq`` to current ``stop_seq``.
+
+                                  - ``0`` When ``stop_type = 1``
+
+**arrival_time**     FLOAT        Previous ``departure_time`` plus current ``travel_time``.
+**wait_time**        FLOAT        Time spent waiting for current `location` to open.
+**service_time**     FLOAT        Service time at current `location`.
+**departure_time**   FLOAT        :math:`arrival\_time + wait\_time + service\_time`.
+
+                                  - When ``stop_type = 6`` has the `total_time` used for the current vehicle.
+=================== ============= =================================================
+
+.. rubric:: Summary Row
+
+.. warning:: TODO: Review the summary
+
+=================== ============= =================================================
+Column              Type           Description
+=================== ============= =================================================
+**seq**              INTEGER      Continues the Sequential value
+**vehicle_seq**      INTEGER      ``-2`` to indicate is a summary row
+**vehicle_id**       BIGINT       `Total Capacity Violations` in the solution.
+**stop_seq**         INTEGER      `Total Time Window Violations` in the solution.
+**stop_type**        INTEGER      ``-1``
+**order_id**         BIGINT       ``-1``
+**cargo**            FLOAT        ``-1``
+**travel_time**      FLOAT        `total_travel_time` The sum of all the `travel_time`
+**arrival_time**     FLOAT        ``-1``
+**wait_time**        FLOAT        `total_waiting_time` The sum of all the `wait_time`
+**service_time**     FLOAT        `total_service_time` The sum of all the `service_time`
+**departure_time**   FLOAT        `total_solution_time` = :math:`total\_travel\_time + total\_wait\_time + total\_service\_time`.
+=================== ============= =================================================
+
+
+.. return_vrp_matrix_end
+
+
+.. _return_vrp_euclidean_start:
+
+.. include:: VRP-category.rst
+    :start-after: return_vrp_matrix_start:
+    :end-before: return_vrp_matrix_end
+
+.. return_vrp_euclidean_end
+
+
+
+.. include:: pgRouting-concepts.rst
+    :start-after: where_definition_starts
+    :end-before: where_definition_ends
+
+
+Handling Parameters
+-------------------------------------------------------------------------------
+
+To define a problem, several considerations have to be done, to get consistent results.
+This section gives an insight of how parameters are to be considered. 
+
+- `Capacity and Demand Units Handling`_
+- `Locations`_
+- `Time Handling`_
+- `Factor Handling`_
+
+
+Capacity and Demand Units Handling
+...............................................................................
+
+The `capacity` of a vehicle, can be measured in:
+
+- Volume units like :math:`m^3`.
+- Area units like :math:`m^2` (when no stacking is allowed).
+- Weight units like :math:`kg`.
+- Number of boxes that fit in the vehicle.
+- Number of seats in the vehicle
+
+The `demand` request of the pickup-deliver orders must use the same units as the units used in the vehicle's `capacity`.
+
+To handle problems like:  10 (equal dimension) boxes of apples and 5 kg of feathers that are to be transported (not packed in boxes).
+
+If the vehicle's `capacity` is measured by `boxes`, a conversion of `kg of feathers` to `equivalent number of boxes` is needed.
+If the vehicle's `capacity` is measured by `kg`, a conversion of `box of apples` to `equivalent number of kg` is needed.
+
+Showing how the 2 possible conversions can be done
+
+Let:
+- :math:`f_boxes`: number of boxes that would be used for `1` kg of feathers.
+- :math:`a_weight`: weight of `1` box of apples.
+
+=============== ====================== ==================
+Capacity Units  apples                  feathers
+=============== ====================== ==================
+boxes            10                     :math:`5 * f\_boxes`
+kg              :math:`10 * a\_weight`       5
+=============== ====================== ==================
+
+
+
+Locations
+...............................................................................
+
+- When using the Euclidean signatures:
+
+  - The vehicles have :math:`(x, y)` pairs for start and ending locations.
+  - The orders Have :math:`(x, y)` pairs for pickup and delivery locations.
+
+- When using a matrix:
+
+  - The vehicles have identifiers for the start and ending locations.
+  - The orders have identifiers for the pickup and delivery locations.
+  - All the identifiers are indices to the given matrix.
+
+
+Time Handling
+...............................................................................
+
+The times are relative to 0
+
+Suppose that a vehicle's driver starts the shift at 9:00 am and ends the shift at 4:30 pm
+and the service time duration is 10 minutes with 30 seconds.
+
+All time units have to be converted
+
+============ ================= ==================== ===================== =========
+Meaning of 0   time units       9:00 am              4:30 pm               10 min 30 secs
+============ ================= ==================== ===================== =========
+0:00 am         hours            9                  16.5                   :math:`10.5 / 60  = 0.175`
+9:00 am         hours            0                  7.5                    :math:`10.5 / 60  = 0.175`
+0:00 am         minutes          :math:`9*60 = 54`  :math:`16.5*60 = 990`  10.5 
+9:00 am         minutes          0                  :math:`7.5*60 = 540`   10.5
+============ ================= ==================== ===================== =========
+
+
+.. _pd_factor:
+
+Factor Handling
+...............................................................................
+
+.. TODO
+.. warning:: TODO
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* https://en.wikipedia.org/wiki/Vehicle_routing_problem
+* The queries use the :doc:`sampledata` network.
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/pickDeliver/pgr_pickDeliver.rst b/doc/pickDeliver/pgr_pickDeliver.rst
new file mode 100644
index 0000000..35009e9
--- /dev/null
+++ b/doc/pickDeliver/pgr_pickDeliver.rst
@@ -0,0 +1,223 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_pickDeliver:
+
+pgr_pickDeliver - Proposed
+===============================================================================
+
+.. warning:: Documentation is being updated
+
+``pgr_pickDeliver`` - Pickup and delivery Vehicle Routing Problem
+
+.. rubric:: Availability
+
+* New as proposed in 2.5.0
+
+.. include:: proposed.rst
+   :start-after: stable-begin-warning
+   :end-before: stable-end-warning
+
+
+
+Synopsis
+-------------------------------------------------------------------------------
+
+Problem: Distribute and optimize the pickup-delivery pairs into a fleet of vehicles.
+
+- Optimization problem is NP-hard.
+- pickup and Delivery with time windows.
+- All vehicles are equal.
+
+  - Same Starting location.
+  - Same Ending location which is the same as Starting location.
+  - All vehicles travel at the same speed.
+
+- A customer is for doing a pickup or doing a deliver.
+
+  - has an open time.
+  - has a closing time.
+  - has a service time.
+  - has an (x, y) location.
+
+- There is a customer where to deliver a pickup.
+
+  - travel time between customers is distance / speed
+  - pickup and delivery pair is done with the same vehicle.
+  - A pickup is done before the delivery.
+
+
+Characteristics
+-------------------------------------------------------------------------------
+
+- All trucks depart at time 0.
+- No multiple time windows for a location.
+- Less vehicle used is considered better.
+- Less total duration is better.
+- Less wait time is better.
+- the algorithm will raise an exception when
+
+  - If there is a pickup-deliver pair than violates time window
+  - The speed, max_cycles, ma_capacity have illegal values
+
+- Six different initial will be optimized
+  - the best solution found will be result
+
+.. index::
+    single: pgr_pickDeliverEuclidean - Proposed
+
+Signature
+-------------------------------------------------------------------------------
+
+..
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_cell_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+..
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+
+
+.. code-block:: none
+
+    pgr_pickDeliver(orders_sql, vehicles_sql, matrix_sql [, factor, max_cycles, initial_sol])
+    RETURNS SET OF (seq, vehicle_number, vehicle_id, stop, order_id, stop_type, cargo,
+                    travel_time, arrival_time, wait_time, service_time, departure_time)
+
+
+Parameters
+...............................................................................
+                                                                                                                                                                                                                                 
+The parameters are:
+
+.. code-block:: none
+
+    orders_sql, vehicles_sql, matrix_sql [, factor, max_cycles, initial_sol]
+
+
+================= ================== ========= =================================================
+Column            Type                Default    Description
+================= ================== ========= =================================================
+**orders_sql**    ``TEXT``                     `Pick & Deliver Orders SQL`_ query contianing the orders to be processed.
+**vehicles_sql**  ``TEXT``                     `Pick & Deliver Vehicles SQL`_ query containing the vehicles to be used.
+**matrix_sql**    ``TEXT``                     `Pick & Deliver Matrix SQL`_ query containing the distance or travel times.
+**factor**        ``NUMERIC``          1       Travel time multiplier. See :ref:`pd_factor`
+**max_cycles**    ``INTEGER``          10      Maximum number of cycles to perform on the optimization.
+**initial_sol**   ``INTEGER``          4       Initial solution to be used.
+
+                                               - ``1`` One order per truck
+                                               - ``2`` Push front order.
+                                               - ``3`` Push back order.
+                                               - ``4`` Optimize insert.
+                                               - ``5`` Push back order that allows more orders to be inserted at the back
+                                               - ``6`` Push front order that allows more orders to be inserted at the front
+================= ================== ========= =================================================
+
+
+
+Pick & Deliver Orders SQL
+................................................................................
+
+A `SELECT` statement that returns the following columns:
+
+.. code-block:: none
+
+    id, demand
+    p_node_id, p_open, p_close, [p_service, ]
+    d_node_id, d_open, d_close, [d_service, ]
+
+where:
+
+.. include:: VRP-category.rst
+    :start-after: pd_orders_sql_general_start
+    :end-before: pd_orders_sql_general_end
+
+.. include:: VRP-category.rst
+    :start-after: pd_orders_sql_matrix_start
+    :end-before: pd_orders_sql_matrix_end
+
+
+Pick & Deliver Vehicles SQL
+.........................................................................................
+
+A `SELECT` statement that returns the following columns:
+
+.. code-block:: none
+
+    id, capacity
+    start_node_id, start_open, start_close [, start_service, ]
+    [ end_node_id, end_open, end_close, end_service ]
+
+where:
+
+.. include:: VRP-category.rst
+    :start-after: pd_vehicle_sql_general_start
+    :end-before: pd_vehicle_sql_general_end
+
+.. include:: VRP-category.rst
+    :start-after: pd_vehicle_sql_matrix_start
+    :end-before: pd_vehicle_sql_matrix_end
+
+
+.. end of vehicles_sql
+
+Pick & Deliver Matrix SQL
+.........................................................................................
+
+A `SELECT` statement that returns the following columns:
+
+
+.. TODO
+.. warning:: TODO
+
+
+
+.. include:: pgRouting-concepts.rst
+    :start-after: where_definition_starts
+    :end-before: where_definition_ends
+
+
+
+Example
+-------------------------------------------------------------------------------
+
+.. TODO
+
+This example use the following data: TODO put link
+
+.. literalinclude:: doc-pickDeliver.queries
+   :start-after: --q2
+   :end-before: --q3
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* :ref:`VRP`
+* The queries use the :doc:`sampledata` network.
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/pickDeliver/pgr_pickDeliverEuclidean.rst b/doc/pickDeliver/pgr_pickDeliverEuclidean.rst
new file mode 100644
index 0000000..be50528
--- /dev/null
+++ b/doc/pickDeliver/pgr_pickDeliverEuclidean.rst
@@ -0,0 +1,204 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_pickDeliverEuclidean:
+
+pgr_pickDeliverEuclidean - Proposed
+===============================================================================
+
+.. warning:: Documentation is being updated
+
+``pgr_pickDeliverEuclidean`` - Pickup and delivery Vehicle Routing Problem
+
+.. rubric:: Availability
+
+* New as proposed in 2.5.0
+
+
+.. include:: proposed.rst
+   :start-after: stable-begin-warning
+   :end-before: stable-end-warning
+
+
+Synopsis
+-------------------------------------------------------------------------------
+
+Problem: Distribute and optimize the pickup-delivery pairs into a fleet of vehicles.
+
+- Optimization problem is NP-hard.
+- Pickup and Delivery:
+
+  - capacitated
+  - with time windows.
+
+- The vehicles
+
+  - have (x, y) start and ending locations.
+  - have a start and ending service times.
+  - have opening and closing times for the start and ending locations.
+
+- An order is for doing a pickup and a a deliver.
+
+  - has (x, y) pickup and delivery locations.
+  - has opening and closing times for the pickup and delivery locations.
+  - has a pickup and deliver service times.
+
+- There is a customer where to deliver a pickup.
+
+  - travel time between customers is distance / speed
+  - pickup and delivery pair is done with the same vehicle.
+  - A pickup is done before the delivery.
+
+
+
+Characteristics
+-------------------------------------------------------------------------------
+
+- No multiple time windows for a location.
+- Less vehicle used is considered better.
+- Less total duration is better.
+- Less wait time is better.
+- Six different optional different initial solutions
+
+  - the best solution found will be result
+
+
+.. index::
+    single: pgr_pickDeliverEuclidean - Proposed
+
+
+Signature
+-------------------------------------------------------------------------------
+
+..  
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+
+..
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+
+
+.. code-block:: none
+
+    pgr_pickDeliverEuclidean(orders_sql, vehicles_sql [,factor, max_cycles, initial_sol])
+    RETURNS SET OF (seq, vehicle_seq, vehicle_id, stop_seq, stop_type, order_id,
+        cargo, travel_time, arrival_time, wait_time, service_time, departure_time)
+
+
+Parameters
+...............................................................................
+
+The parameters are:
+
+.. code-block:: none
+
+    orders_sql, vehicles_sql [,factor, max_cycles, initial_sol]
+
+Where:
+
+.. include:: VRP-category.rst
+    :start-after: pd_parameters_start
+    :end-before: pd_parameters_end
+
+
+Pick & Deliver Orders SQL
+...............................................................................
+
+A `SELECT` statement that returns the following columns:
+
+.. code-block:: none
+
+    id, demand
+    p_x, p_y, p_open, p_close, [p_service, ]
+    d_x, d_y, d_open, d_close, [d_service, ]
+
+Where:
+
+.. include:: VRP-category.rst
+    :start-after: pd_orders_sql_general_start
+    :end-before: pd_orders_sql_general_end
+
+
+.. include:: VRP-category.rst
+    :start-after: pd_orders_euclidean_sql_start
+    :end-before: pd_orders_euclidean_sql_end
+
+
+
+Pick & Deliver Vehicles SQL
+.........................................................................................
+
+A `SELECT` statement that returns the following columns:
+
+.. code-block:: none
+
+    id, capacity
+    start_x, start_y, start_open, start_close [, start_service, ]
+    [ end_x, end_y, end_open, end_close, end_service ]
+
+where:
+
+.. include:: VRP-category.rst
+    :start-after: pd_vehicle_sql_general_start
+    :end-before: pd_vehicle_sql_general_end
+
+
+.. include:: VRP-category.rst
+    :start-after: pd_vehicle_sql_euclidean_start
+    :end-before: pd_vehicle_sql_euclidean_end
+
+
+.. include:: VRP-category.rst
+    :start-after: return_vrp_euclidean_start:
+    :end-before: return_vrp_euclidean_end
+
+
+.. include:: pgRouting-concepts.rst
+    :start-after: where_definition_starts
+    :end-before: where_definition_ends
+
+
+Example
+-------------------------------------------------------------------------------
+
+.. TODO
+
+This example use the following data: TODO put link
+
+
+.. literalinclude:: ./doc-pickDeliverEuclidean.queries
+   :start-after: --q1
+   :end-before: --q2
+
+See Also
+-------------------------------------------------------------------------------
+
+* :ref:`VRP`
+* The queries use the :doc:`sampledata` network.
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/queries/CMakeLists.txt b/doc/queries/CMakeLists.txt
new file mode 100644
index 0000000..2617f8d
--- /dev/null
+++ b/doc/queries/CMakeLists.txt
@@ -0,0 +1,59 @@
+
+SET(LOCAL_FILES
+    doc-johnson.queries
+    doc-pgr_bdDijkstra.queries
+    doc-pgr_edgeDisjointPaths.queries
+    doc-pgr_pointsAsPolygon.queries
+    doc-pgr_withPoints.queries
+    doc-aStarCost.queries
+    doc-ksp.queries
+    doc-pgr_boykovKolmogorov.queries
+    doc-pgr_edmondsKarp.queries
+    doc-pgr_pushRelabel.queries
+    doc-pgr_withPointsVia.queries
+    doc-astar.queries
+    doc-pgr_alphashape.queries
+    doc-pgr_createTopology.queries
+    doc-pgr_eucledianTSP.queries
+    doc-pgr_TSP.queries
+    doc-pickDeliverEuclidean.queries
+    doc-contractGraph.queries
+    doc-pgr_analyzeGraph.queries
+    doc-pgr_dijkstraCost.queries
+    doc-pgr_fooDmatrix.queries
+    doc-pgr_version.queries
+    doc-pickDeliver.queries
+    doc-contraction.queries
+    doc-pgr_bdAstarCost.queries
+    doc-pgr_dijkstra.queries
+    doc-pgr_labelGraph.queries
+    doc-pgr_withPointsCost.queries
+    doc-trsp.queries
+    doc-floydWarshall.queries
+    doc-pgr_bdAstar.queries
+    doc-pgr_dijkstraVia.queries
+    doc-pgr_maxCardinalityMatch.queries
+    doc-pgr_withPointsDD.queries
+    doc-pgr_bdDijkstraCost.queries
+    doc-pgr_drivingDistance.queries
+    doc-pgr_maxFlow.queries
+    doc-pgr_withPointsKSP.queries
+	doc-pgr_connectedComponents.queries
+    doc-pgr_strongComponents.queries
+	doc-pgr_biconnectedComponents.queries
+	doc-pgr_articulationPoints.queries
+	doc-pgr_bridges.queries
+    doc-pgr_vrpOneDepot.queries
+    proof_of_concept.queries
+    trsp_notes_v2.5.0.queries
+    oneDepotWrapper.queries
+    doc-gsoc_vrppdtw.queries
+    doc-pgr_lineGraph.queries
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}")
+    list(APPEND LOCAL_DOC_FILES  ${PGR_DOCUMENTATION_SOURCE_DIR}/${f})
+endforeach()
+
+set(PgRouting_DOC_FILES ${PgRouting_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE)
diff --git a/src/astar/doc/doc-aStarCost.queries b/doc/queries/doc-aStarCost.queries
similarity index 100%
rename from src/astar/doc/doc-aStarCost.queries
rename to doc/queries/doc-aStarCost.queries
diff --git a/doc/queries/doc-astar.queries b/doc/queries/doc-astar.queries
new file mode 100644
index 0000000..ef7b622
--- /dev/null
+++ b/doc/queries/doc-astar.queries
@@ -0,0 +1,104 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+--q1
+SELECT * FROM pgr_astar(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    2, 12);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    4 |    1 |        0
+   2 |        2 |    5 |   10 |    1 |        1
+   3 |        3 |   10 |   12 |    1 |        2
+   4 |        4 |   11 |   13 |    1 |        3
+   5 |        5 |   12 |   -1 |    0 |        4
+(5 rows)
+
+--q2
+SELECT * FROM pgr_astar(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    2, 12,
+    directed := false, heuristic := 2);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    2 |    1 |        0
+   2 |        2 |    3 |    3 |    1 |        1
+   3 |        3 |    4 |   16 |    1 |        2
+   4 |        4 |    9 |   15 |    1 |        3
+   5 |        5 |   12 |   -1 |    0 |        4
+(5 rows)
+
+--q3
+SELECT * FROM pgr_astar(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    2, ARRAY[3, 12], heuristic := 2);
+ seq | path_seq | end_vid | node | edge | cost | agg_cost 
+-----+----------+---------+------+------+------+----------
+   1 |        1 |       3 |    2 |    4 |    1 |        0
+   2 |        2 |       3 |    5 |    8 |    1 |        1
+   3 |        3 |       3 |    6 |    9 |    1 |        2
+   4 |        4 |       3 |    9 |   16 |    1 |        3
+   5 |        5 |       3 |    4 |    3 |    1 |        4
+   6 |        6 |       3 |    3 |   -1 |    0 |        5
+   7 |        1 |      12 |    2 |    4 |    1 |        0
+   8 |        2 |      12 |    5 |   10 |    1 |        1
+   9 |        3 |      12 |   10 |   12 |    1 |        2
+  10 |        4 |      12 |   11 |   13 |    1 |        3
+  11 |        5 |      12 |   12 |   -1 |    0 |        4
+(11 rows)
+
+--q4
+SELECT * FROM pgr_astar(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    ARRAY[7, 2], 12, heuristic := 0);
+ seq | path_seq | start_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+------+------+------+----------
+   1 |        1 |         2 |    2 |    4 |    1 |        0
+   2 |        2 |         2 |    5 |   10 |    1 |        1
+   3 |        3 |         2 |   10 |   12 |    1 |        2
+   4 |        4 |         2 |   11 |   13 |    1 |        3
+   5 |        5 |         2 |   12 |   -1 |    0 |        4
+   6 |        1 |         7 |    7 |    6 |    1 |        0
+   7 |        2 |         7 |    8 |    7 |    1 |        1
+   8 |        3 |         7 |    5 |   10 |    1 |        2
+   9 |        4 |         7 |   10 |   12 |    1 |        3
+  10 |        5 |         7 |   11 |   13 |    1 |        4
+  11 |        6 |         7 |   12 |   -1 |    0 |        5
+(11 rows)
+
+--q5
+SELECT * FROM pgr_astar(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    ARRAY[7, 2], ARRAY[3, 12], heuristic := 2);
+ seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+---------+------+------+------+----------
+   1 |        1 |         2 |       3 |    2 |    4 |    1 |        0
+   2 |        2 |         2 |       3 |    5 |    8 |    1 |        1
+   3 |        3 |         2 |       3 |    6 |    9 |    1 |        2
+   4 |        4 |         2 |       3 |    9 |   16 |    1 |        3
+   5 |        5 |         2 |       3 |    4 |    3 |    1 |        4
+   6 |        6 |         2 |       3 |    3 |   -1 |    0 |        5
+   7 |        1 |         7 |       3 |    7 |    6 |    1 |        0
+   8 |        2 |         7 |       3 |    8 |    7 |    1 |        1
+   9 |        3 |         7 |       3 |    5 |    8 |    1 |        2
+  10 |        4 |         7 |       3 |    6 |    9 |    1 |        3
+  11 |        5 |         7 |       3 |    9 |   16 |    1 |        4
+  12 |        6 |         7 |       3 |    4 |    3 |    1 |        5
+  13 |        7 |         7 |       3 |    3 |   -1 |    0 |        6
+  14 |        1 |         2 |      12 |    2 |    4 |    1 |        0
+  15 |        2 |         2 |      12 |    5 |   10 |    1 |        1
+  16 |        3 |         2 |      12 |   10 |   12 |    1 |        2
+  17 |        4 |         2 |      12 |   11 |   13 |    1 |        3
+  18 |        5 |         2 |      12 |   12 |   -1 |    0 |        4
+  19 |        1 |         7 |      12 |    7 |    6 |    1 |        0
+  20 |        2 |         7 |      12 |    8 |    7 |    1 |        1
+  21 |        3 |         7 |      12 |    5 |   10 |    1 |        2
+  22 |        4 |         7 |      12 |   10 |   12 |    1 |        3
+  23 |        5 |         7 |      12 |   11 |   13 |    1 |        4
+  24 |        6 |         7 |      12 |   12 |   -1 |    0 |        5
+(24 rows)
+
+--q6
+ROLLBACK;
+ROLLBACK
diff --git a/src/contraction/doc/doc-contractGraph.queries b/doc/queries/doc-contractGraph.queries
similarity index 100%
rename from src/contraction/doc/doc-contractGraph.queries
rename to doc/queries/doc-contractGraph.queries
diff --git a/doc/queries/doc-contraction.queries b/doc/queries/doc-contraction.queries
new file mode 100644
index 0000000..7e015f5
--- /dev/null
+++ b/doc/queries/doc-contraction.queries
@@ -0,0 +1,339 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q00
+-- q01
+SET client_min_messages TO ERROR;
+SET
+-- q1
+ALTER TABLE edge_table ADD contracted_vertices BIGINT[];
+ALTER TABLE
+ALTER TABLE edge_table_vertices_pgr ADD contracted_vertices BIGINT[];
+ALTER TABLE
+ALTER TABLE edge_table ADD is_contracted BOOLEAN DEFAULT false;
+ALTER TABLE
+ALTER TABLE edge_table_vertices_pgr ADD is_contracted BOOLEAN DEFAULT false;
+ALTER TABLE
+SET client_min_messages TO NOTICE;
+SET
+-- q2
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    array[1,2], directed:=true);
+ seq | type | id | contracted_vertices | source | target | cost 
+-----+------+----+---------------------+--------+--------+------
+   1 | v    |  5 | {7,8}               |     -1 |     -1 |   -1
+   2 | v    | 15 | {14}                |     -1 |     -1 |   -1
+   3 | v    | 17 | {16}                |     -1 |     -1 |   -1
+   4 | e    | -1 | {1,2}               |      3 |      5 |    2
+   5 | e    | -2 | {4}                 |      9 |      3 |    2
+   6 | e    | -3 | {10,13}             |      5 |     11 |    2
+   7 | e    | -4 | {12}                |     11 |      9 |    2
+(7 rows)
+
+-- q3
+SELECT * INTO contraction_results
+FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    array[1,2], directed:=true);
+SELECT 7
+-- q4
+UPDATE edge_table_vertices_pgr
+SET is_contracted = true
+WHERE id IN (SELECT  unnest(contracted_vertices) FROM  contraction_results);
+UPDATE 10
+-- q5
+SELECT id, is_contracted
+FROM edge_table_vertices_pgr
+ORDER BY id;
+ id | is_contracted 
+----+---------------
+  1 | t
+  2 | t
+  3 | f
+  4 | t
+  5 | f
+  6 | f
+  7 | t
+  8 | t
+  9 | f
+ 10 | t
+ 11 | f
+ 12 | t
+ 13 | t
+ 14 | t
+ 15 | f
+ 16 | t
+ 17 | f
+(17 rows)
+
+-- q6
+UPDATE edge_table_vertices_pgr
+SET contracted_vertices = contraction_results.contracted_vertices
+FROM contraction_results
+WHERE type = 'v' AND edge_table_vertices_pgr.id = contraction_results.id;
+UPDATE 3
+-- q7
+SELECT id, contracted_vertices, is_contracted 
+FROM edge_table_vertices_pgr
+ORDER BY id;
+ id | contracted_vertices | is_contracted 
+----+---------------------+---------------
+  1 |                     | t
+  2 |                     | t
+  3 |                     | f
+  4 |                     | t
+  5 | {7,8}               | f
+  6 |                     | f
+  7 |                     | t
+  8 |                     | t
+  9 |                     | f
+ 10 |                     | t
+ 11 |                     | f
+ 12 |                     | t
+ 13 |                     | t
+ 14 |                     | t
+ 15 | {14}                | f
+ 16 |                     | t
+ 17 | {16}                | f
+(17 rows)
+
+-- q8
+INSERT INTO edge_table(source, target, cost, reverse_cost, contracted_vertices, is_contracted)
+SELECT source, target, cost, -1, contracted_vertices, true
+FROM contraction_results
+WHERE type = 'e';
+INSERT 0 4
+-- q9
+SELECT id, source, target, cost, reverse_cost, contracted_vertices, is_contracted 
+FROM edge_table
+ORDER BY id;
+ id | source | target | cost | reverse_cost | contracted_vertices | is_contracted 
+----+--------+--------+------+--------------+---------------------+---------------
+  1 |      1 |      2 |    1 |            1 |                     | f
+  2 |      2 |      3 |   -1 |            1 |                     | f
+  3 |      3 |      4 |   -1 |            1 |                     | f
+  4 |      2 |      5 |    1 |            1 |                     | f
+  5 |      3 |      6 |    1 |           -1 |                     | f
+  6 |      7 |      8 |    1 |            1 |                     | f
+  7 |      8 |      5 |    1 |            1 |                     | f
+  8 |      5 |      6 |    1 |            1 |                     | f
+  9 |      6 |      9 |    1 |            1 |                     | f
+ 10 |      5 |     10 |    1 |            1 |                     | f
+ 11 |      6 |     11 |    1 |           -1 |                     | f
+ 12 |     10 |     11 |    1 |           -1 |                     | f
+ 13 |     11 |     12 |    1 |           -1 |                     | f
+ 14 |     10 |     13 |    1 |            1 |                     | f
+ 15 |      9 |     12 |    1 |            1 |                     | f
+ 16 |      4 |      9 |    1 |            1 |                     | f
+ 17 |     14 |     15 |    1 |            1 |                     | f
+ 18 |     16 |     17 |    1 |            1 |                     | f
+ 19 |      3 |      5 |    2 |           -1 | {1,2}               | t
+ 20 |      9 |      3 |    2 |           -1 | {4}                 | t
+ 21 |      5 |     11 |    2 |           -1 | {10,13}             | t
+ 22 |     11 |      9 |    2 |           -1 | {12}                | t
+(22 rows)
+
+-- q10
+SELECT id  FROM edge_table_vertices_pgr
+WHERE is_contracted = false
+ORDER BY id;
+ id 
+----
+  3
+  5
+  6
+  9
+ 11
+ 15
+ 17
+(7 rows)
+
+-- case1
+SELECT * FROM pgr_dijkstra(
+    $$
+    WITH
+    vertices_in_graph AS (
+        SELECT id  FROM edge_table_vertices_pgr WHERE is_contracted = false)
+    SELECT id, source, target, cost, reverse_cost 
+    FROM edge_table 
+    WHERE source IN (SELECT * FROM vertices_in_graph)
+    AND target IN (SELECT * FROM vertices_in_graph)
+    $$,
+    3, 11, false);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    3 |    5 |    1 |        0
+   2 |        2 |    6 |   11 |    1 |        1
+   3 |        3 |   11 |   -1 |    0 |        2
+(3 rows)
+
+-- case2
+SELECT * FROM pgr_dijkstra(
+    $$
+    WITH
+    expand_edges AS (SELECT id, unnest(contracted_vertices) AS vertex FROM edge_table),
+    expand1 AS (SELECT contracted_vertices FROM edge_table
+        WHERE id IN (SELECT id FROM expand_edges WHERE vertex = 1)),
+    vertices_in_graph AS (
+        SELECT id  FROM edge_table_vertices_pgr WHERE is_contracted = false
+        UNION
+        SELECT unnest(contracted_vertices) FROM expand1)
+    SELECT id, source, target, cost, reverse_cost
+    FROM edge_table
+    WHERE source IN (SELECT * FROM vertices_in_graph)
+    AND target IN (SELECT * FROM vertices_in_graph)
+    $$,
+    3, 1, false);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    3 |    2 |    1 |        0
+   2 |        2 |    2 |    1 |    1 |        1
+   3 |        3 |    1 |   -1 |    0 |        2
+(3 rows)
+
+-- case3
+SELECT * FROM pgr_dijkstra(
+    $$
+    WITH
+
+    expand_vertices AS (SELECT id, unnest(contracted_vertices) AS vertex FROM edge_table_vertices_pgr),
+    expand7 AS (SELECT contracted_vertices FROM edge_table_vertices_pgr
+        WHERE id IN (SELECT id FROM expand_vertices WHERE vertex = 7)),
+
+    expand_edges AS (SELECT id, unnest(contracted_vertices) AS vertex FROM edge_table),
+    expand13 AS (SELECT contracted_vertices FROM edge_table
+        WHERE id IN (SELECT id FROM expand_edges WHERE vertex = 13)),
+
+    vertices_in_graph AS (
+        SELECT id  FROM edge_table_vertices_pgr WHERE is_contracted = false
+        UNION
+        SELECT unnest(contracted_vertices) FROM expand13
+        UNION
+        SELECT unnest(contracted_vertices) FROM expand7)
+
+    SELECT id, source, target, cost, reverse_cost
+    FROM edge_table
+    WHERE source IN (SELECT * FROM vertices_in_graph)
+    AND target IN (SELECT * FROM vertices_in_graph)
+    $$,
+    7, 13, false);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    7 |    6 |    1 |        0
+   2 |        2 |    8 |    7 |    1 |        1
+   3 |        3 |    5 |   10 |    1 |        2
+   4 |        4 |   10 |   14 |    1 |        3
+   5 |        5 |   13 |   -1 |    0 |        4
+(5 rows)
+
+-- case4
+SELECT * FROM  pgr_dijkstra(
+    $$
+    WITH
+    expand_vertices AS (SELECT id, unnest(contracted_vertices) AS vertex FROM edge_table_vertices_pgr),
+    expand7 AS (SELECT contracted_vertices FROM edge_table_vertices_pgr
+        WHERE id IN (SELECT id FROM expand_vertices WHERE vertex = 7)),
+    vertices_in_graph AS (
+        SELECT id  FROM edge_table_vertices_pgr WHERE is_contracted = false
+        UNION
+        SELECT unnest(contracted_vertices) FROM expand7)
+    SELECT id, source, target, cost, reverse_cost
+    FROM edge_table
+    WHERE source IN (SELECT * FROM vertices_in_graph)
+    AND target IN (SELECT * FROM vertices_in_graph)
+    $$,
+    3, 7, false);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    3 |   19 |    2 |        0
+   2 |        2 |    5 |    7 |    1 |        2
+   3 |        3 |    8 |    6 |    1 |        3
+   4 |        4 |    7 |   -1 |    0 |        4
+(4 rows)
+
+-- case5q1
+WITH
+first_dijkstra AS (
+    SELECT * FROM  pgr_dijkstra(
+        $$
+        WITH
+        expand_vertices AS (SELECT id, unnest(contracted_vertices) AS vertex FROM edge_table_vertices_pgr),
+        expand7 AS (SELECT contracted_vertices FROM edge_table_vertices_pgr
+            WHERE id IN (SELECT id FROM expand_vertices WHERE vertex = 7)),
+        vertices_in_graph AS (
+            SELECT id  FROM edge_table_vertices_pgr WHERE is_contracted = false
+            UNION
+            SELECT unnest(contracted_vertices) FROM expand7)
+        SELECT id, source, target, cost, reverse_cost
+        FROM edge_table
+        WHERE source IN (SELECT * FROM vertices_in_graph)
+        AND target IN (SELECT * FROM vertices_in_graph)
+        $$,
+        3, 7, false))
+SELECT edge, contracted_vertices
+    FROM first_dijkstra JOIN edge_table
+    ON (edge = id)
+    WHERE is_contracted = true;
+ edge | contracted_vertices 
+------+---------------------
+   19 | {1,2}
+(1 row)
+
+-- case5q2
+SELECT * FROM pgr_dijkstra($$
+    WITH
+    -- This returns the results from case 2
+    first_dijkstra AS (
+        SELECT * FROM  pgr_dijkstra(
+            '
+            WITH
+            expand_vertices AS (SELECT id, unnest(contracted_vertices) AS vertex FROM edge_table_vertices_pgr),
+            expand7 AS (SELECT contracted_vertices FROM edge_table_vertices_pgr
+                WHERE id IN (SELECT id FROM expand_vertices WHERE vertex = 7)),
+            vertices_in_graph AS (
+                SELECT id  FROM edge_table_vertices_pgr WHERE is_contracted = false
+                UNION
+                SELECT unnest(contracted_vertices) FROM expand7)
+            SELECT id, source, target, cost, reverse_cost
+            FROM edge_table
+            WHERE source IN (SELECT * FROM vertices_in_graph)
+            AND target IN (SELECT * FROM vertices_in_graph)
+            ',
+            3, 7, false)),
+
+    -- edges that need expansion and the vertices to be expanded.
+    edges_to_expand AS (
+        SELECT edge, contracted_vertices
+        FROM first_dijkstra JOIN edge_table
+        ON (edge = id)
+        WHERE is_contracted = true),
+
+    vertices_in_graph AS (
+        -- the nodes of the contracted solution
+        SELECT node FROM first_dijkstra
+        UNION
+        -- the nodes of the expanding sections
+        SELECT unnest(contracted_vertices) FROM edges_to_expand)
+
+    SELECT id, source, target, cost, reverse_cost
+    FROM edge_table
+    WHERE source IN (SELECT * FROM vertices_in_graph)
+    AND target IN (SELECT * FROM vertices_in_graph)
+    -- not including the expanded edges
+    AND id NOT IN (SELECT edge FROM edges_to_expand)
+    $$,
+    3, 7, false);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    3 |    2 |    1 |        0
+   2 |        2 |    2 |    4 |    1 |        1
+   3 |        3 |    5 |    7 |    1 |        2
+   4 |        4 |    8 |    6 |    1 |        3
+   5 |        5 |    7 |   -1 |    0 |        4
+(5 rows)
+
+-- end
+ROLLBACK;
+ROLLBACK
diff --git a/doc/queries/doc-dijkstraTRSP.queries b/doc/queries/doc-dijkstraTRSP.queries
new file mode 100644
index 0000000..c72515b
--- /dev/null
+++ b/doc/queries/doc-dijkstraTRSP.queries
@@ -0,0 +1,25 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 3
+);
+ERROR:  function pgr_dijkstratrsp(unknown, unknown, integer, integer) does not exist
+LINE 1: SELECT * FROM pgr_dijkstraTRSP(
+                      ^
+HINT:  No function matches the given name and argument types. You might need to add explicit type casts.
+-- q2
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 3,
+    FALSE
+);
+ERROR:  current transaction is aborted, commands ignored until end of transaction block
+-- q3
+ROLLBACK;
+ROLLBACK
diff --git a/src/allpairs/doc/doc-floydWarshall.queries b/doc/queries/doc-floydWarshall.queries
similarity index 100%
rename from src/allpairs/doc/doc-floydWarshall.queries
rename to doc/queries/doc-floydWarshall.queries
diff --git a/doc/queries/doc-gsoc_vrppdtw.queries b/doc/queries/doc-gsoc_vrppdtw.queries
new file mode 100644
index 0000000..eed8a37
--- /dev/null
+++ b/doc/queries/doc-gsoc_vrppdtw.queries
@@ -0,0 +1,79 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+--q1
+SELECT DISTINCT(id1) FROM pgr_gsoc_vrppdtw(
+    'SELECT * FROM customer ORDER BY id', 25, 200)
+ORDER BY id1;
+ id1 
+-----
+   1
+   2
+   3
+   4
+   5
+   6
+   7
+   8
+   9
+  10
+(10 rows)
+
+--q2
+SELECT count(*) FROM pgr_gsoc_vrppdtw(
+    'SELECT * FROM customer ORDER BY id', 25, 200);
+ count 
+-------
+   126
+(1 row)
+
+--q3
+SELECT * FROM pgr_gsoc_vrppdtw(
+    'SELECT * FROM customer ORDER BY id', 25, 200)
+    WHERE id1 in (1, 5, 9);
+ seq | id1 | id2 |       cost       
+-----+-----+-----+------------------
+   1 |   1 |   0 |                0
+   2 |   1 |  13 | 120.805843601499
+   3 |   1 |  17 | 214.805843601499
+   4 |   1 |  18 | 307.805843601499
+   5 |   1 |  19 | 402.805843601499
+   6 |   1 |  15 | 497.805843601499
+   7 |   1 |  16 | 592.805843601499
+   8 |   1 |  14 | 684.805843601499
+   9 |   1 |  12 | 777.805843601499
+  10 |   1 |  50 | 920.815276724293
+  11 |   1 |  52 | 1013.97755438446
+  12 |   1 |  49 | 1106.97755438446
+  13 |   1 |  47 | 1198.97755438446
+  14 |   1 |   0 | 1217.00531076178
+  57 |   5 |   0 |                0
+  58 |   5 |  90 | 110.615528128088
+  59 |   5 |  87 | 205.615528128088
+  60 |   5 |  86 | 296.615528128088
+  61 |   5 |  83 | 392.615528128088
+  62 |   5 |  82 | 485.615528128088
+  63 |   5 |  84 | 581.446480022934
+  64 |   5 |  85 |  674.27490714768
+  65 |   5 |  88 |  767.27490714768
+  66 |   5 |  89 | 860.103334272426
+  67 |   5 |  91 |  953.70888554789
+  68 |   5 |   0 | 976.069565322888
+ 105 |   9 |   0 |                0
+ 106 |   9 |  67 | 102.206555615734
+ 107 |   9 |  65 | 193.206555615734
+ 108 |   9 |  63 | 285.206555615734
+ 109 |   9 |  62 | 380.206555615734
+ 110 |   9 |  74 | 473.206555615734
+ 111 |   9 |  72 | 568.206555615734
+ 112 |   9 |  61 | 661.206555615734
+ 113 |   9 |  64 | 663.206555615734
+ 114 |   9 | 102 | 753.206555615734
+ 115 |   9 |  68 | 846.206555615734
+ 116 |   9 |   0 | 866.822083743822
+(38 rows)
+
+--q4
+ROLLBACK;
+ROLLBACK
diff --git a/src/allpairs/doc/doc-johnson.queries b/doc/queries/doc-johnson.queries
similarity index 100%
rename from src/allpairs/doc/doc-johnson.queries
rename to doc/queries/doc-johnson.queries
diff --git a/doc/queries/doc-ksp.queries b/doc/queries/doc-ksp.queries
new file mode 100644
index 0000000..3488172
--- /dev/null
+++ b/doc/queries/doc-ksp.queries
@@ -0,0 +1,274 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+--q1
+SELECT * FROM pgr_KSP(
+     'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+      2, 12, 2,
+      directed:=true   
+   );
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |    2 |    4 |    1 |        0
+   2 |       1 |        2 |    5 |    8 |    1 |        1
+   3 |       1 |        3 |    6 |    9 |    1 |        2
+   4 |       1 |        4 |    9 |   15 |    1 |        3
+   5 |       1 |        5 |   12 |   -1 |    0 |        4
+   6 |       2 |        1 |    2 |    4 |    1 |        0
+   7 |       2 |        2 |    5 |    8 |    1 |        1
+   8 |       2 |        3 |    6 |   11 |    1 |        2
+   9 |       2 |        4 |   11 |   13 |    1 |        3
+  10 |       2 |        5 |   12 |   -1 |    0 |        4
+(10 rows)
+
+SELECT * FROM pgr_KSP(
+     'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+      2, 12, 2
+   );
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |    2 |    4 |    1 |        0
+   2 |       1 |        2 |    5 |    8 |    1 |        1
+   3 |       1 |        3 |    6 |    9 |    1 |        2
+   4 |       1 |        4 |    9 |   15 |    1 |        3
+   5 |       1 |        5 |   12 |   -1 |    0 |        4
+   6 |       2 |        1 |    2 |    4 |    1 |        0
+   7 |       2 |        2 |    5 |    8 |    1 |        1
+   8 |       2 |        3 |    6 |   11 |    1 |        2
+   9 |       2 |        4 |   11 |   13 |    1 |        3
+  10 |       2 |        5 |   12 |   -1 |    0 |        4
+(10 rows)
+
+--q2
+SELECT * FROM pgr_KSP(
+     'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+      2, 12, 2
+   );
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |    2 |    4 |    1 |        0
+   2 |       1 |        2 |    5 |    8 |    1 |        1
+   3 |       1 |        3 |    6 |    9 |    1 |        2
+   4 |       1 |        4 |    9 |   15 |    1 |        3
+   5 |       1 |        5 |   12 |   -1 |    0 |        4
+   6 |       2 |        1 |    2 |    4 |    1 |        0
+   7 |       2 |        2 |    5 |    8 |    1 |        1
+   8 |       2 |        3 |    6 |   11 |    1 |        2
+   9 |       2 |        4 |   11 |   13 |    1 |        3
+  10 |       2 |        5 |   12 |   -1 |    0 |        4
+(10 rows)
+
+SELECT * FROM pgr_KSP(
+     'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+      2, 12, 2, heap_paths:=true
+   );
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |    2 |    4 |    1 |        0
+   2 |       1 |        2 |    5 |    8 |    1 |        1
+   3 |       1 |        3 |    6 |    9 |    1 |        2
+   4 |       1 |        4 |    9 |   15 |    1 |        3
+   5 |       1 |        5 |   12 |   -1 |    0 |        4
+   6 |       2 |        1 |    2 |    4 |    1 |        0
+   7 |       2 |        2 |    5 |    8 |    1 |        1
+   8 |       2 |        3 |    6 |   11 |    1 |        2
+   9 |       2 |        4 |   11 |   13 |    1 |        3
+  10 |       2 |        5 |   12 |   -1 |    0 |        4
+  11 |       3 |        1 |    2 |    4 |    1 |        0
+  12 |       3 |        2 |    5 |   10 |    1 |        1
+  13 |       3 |        3 |   10 |   12 |    1 |        2
+  14 |       3 |        4 |   11 |   13 |    1 |        3
+  15 |       3 |        5 |   12 |   -1 |    0 |        4
+(15 rows)
+
+SELECT * FROM pgr_KSP(
+     'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+      2, 12, 2, true, true
+   );
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |    2 |    4 |    1 |        0
+   2 |       1 |        2 |    5 |    8 |    1 |        1
+   3 |       1 |        3 |    6 |    9 |    1 |        2
+   4 |       1 |        4 |    9 |   15 |    1 |        3
+   5 |       1 |        5 |   12 |   -1 |    0 |        4
+   6 |       2 |        1 |    2 |    4 |    1 |        0
+   7 |       2 |        2 |    5 |    8 |    1 |        1
+   8 |       2 |        3 |    6 |   11 |    1 |        2
+   9 |       2 |        4 |   11 |   13 |    1 |        3
+  10 |       2 |        5 |   12 |   -1 |    0 |        4
+  11 |       3 |        1 |    2 |    4 |    1 |        0
+  12 |       3 |        2 |    5 |   10 |    1 |        1
+  13 |       3 |        3 |   10 |   12 |    1 |        2
+  14 |       3 |        4 |   11 |   13 |    1 |        3
+  15 |       3 |        5 |   12 |   -1 |    0 |        4
+(15 rows)
+
+--q3
+SELECT * FROM pgr_KSP(
+     'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+      2, 12, 2, directed:=false
+   );
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |    2 |    2 |    1 |        0
+   2 |       1 |        2 |    3 |    3 |    1 |        1
+   3 |       1 |        3 |    4 |   16 |    1 |        2
+   4 |       1 |        4 |    9 |   15 |    1 |        3
+   5 |       1 |        5 |   12 |   -1 |    0 |        4
+   6 |       2 |        1 |    2 |    4 |    1 |        0
+   7 |       2 |        2 |    5 |    8 |    1 |        1
+   8 |       2 |        3 |    6 |   11 |    1 |        2
+   9 |       2 |        4 |   11 |   13 |    1 |        3
+  10 |       2 |        5 |   12 |   -1 |    0 |        4
+(10 rows)
+
+SELECT * FROM pgr_KSP(
+     'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+      2, 12, 2, false, true
+   );
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |    2 |    2 |    1 |        0
+   2 |       1 |        2 |    3 |    3 |    1 |        1
+   3 |       1 |        3 |    4 |   16 |    1 |        2
+   4 |       1 |        4 |    9 |   15 |    1 |        3
+   5 |       1 |        5 |   12 |   -1 |    0 |        4
+   6 |       2 |        1 |    2 |    4 |    1 |        0
+   7 |       2 |        2 |    5 |    8 |    1 |        1
+   8 |       2 |        3 |    6 |   11 |    1 |        2
+   9 |       2 |        4 |   11 |   13 |    1 |        3
+  10 |       2 |        5 |   12 |   -1 |    0 |        4
+  11 |       3 |        1 |    2 |    4 |    1 |        0
+  12 |       3 |        2 |    5 |   10 |    1 |        1
+  13 |       3 |        3 |   10 |   12 |    1 |        2
+  14 |       3 |        4 |   11 |   13 |    1 |        3
+  15 |       3 |        5 |   12 |   -1 |    0 |        4
+  16 |       4 |        1 |    2 |    4 |    1 |        0
+  17 |       4 |        2 |    5 |   10 |    1 |        1
+  18 |       4 |        3 |   10 |   12 |    1 |        2
+  19 |       4 |        4 |   11 |   11 |    1 |        3
+  20 |       4 |        5 |    6 |    9 |    1 |        4
+  21 |       4 |        6 |    9 |   15 |    1 |        5
+  22 |       4 |        7 |   12 |   -1 |    0 |        6
+(22 rows)
+
+--q4
+SELECT  * FROM pgr_KSP(
+     'SELECT id, source, target, cost FROM edge_table',
+      2, 3, 2
+   );
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+(0 rows)
+
+SELECT  * FROM pgr_KSP(
+     'SELECT id, source, target, cost FROM edge_table',
+      2, 12, 2
+   );
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |    2 |    4 |    1 |        0
+   2 |       1 |        2 |    5 |    8 |    1 |        1
+   3 |       1 |        3 |    6 |    9 |    1 |        2
+   4 |       1 |        4 |    9 |   15 |    1 |        3
+   5 |       1 |        5 |   12 |   -1 |    0 |        4
+   6 |       2 |        1 |    2 |    4 |    1 |        0
+   7 |       2 |        2 |    5 |    8 |    1 |        1
+   8 |       2 |        3 |    6 |   11 |    1 |        2
+   9 |       2 |        4 |   11 |   13 |    1 |        3
+  10 |       2 |        5 |   12 |   -1 |    0 |        4
+(10 rows)
+
+SELECT   * FROM pgr_KSP(
+     'SELECT id, source, target, cost FROM edge_table',
+      2, 12, 2, heap_paths:=true
+   );
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |    2 |    4 |    1 |        0
+   2 |       1 |        2 |    5 |    8 |    1 |        1
+   3 |       1 |        3 |    6 |    9 |    1 |        2
+   4 |       1 |        4 |    9 |   15 |    1 |        3
+   5 |       1 |        5 |   12 |   -1 |    0 |        4
+   6 |       2 |        1 |    2 |    4 |    1 |        0
+   7 |       2 |        2 |    5 |    8 |    1 |        1
+   8 |       2 |        3 |    6 |   11 |    1 |        2
+   9 |       2 |        4 |   11 |   13 |    1 |        3
+  10 |       2 |        5 |   12 |   -1 |    0 |        4
+  11 |       3 |        1 |    2 |    4 |    1 |        0
+  12 |       3 |        2 |    5 |   10 |    1 |        1
+  13 |       3 |        3 |   10 |   12 |    1 |        2
+  14 |       3 |        4 |   11 |   13 |    1 |        3
+  15 |       3 |        5 |   12 |   -1 |    0 |        4
+(15 rows)
+
+SELECT  * FROM pgr_KSP(
+     'SELECT id, source, target, cost FROM edge_table',
+      2, 12, 2, true, true
+   );
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |    2 |    4 |    1 |        0
+   2 |       1 |        2 |    5 |    8 |    1 |        1
+   3 |       1 |        3 |    6 |    9 |    1 |        2
+   4 |       1 |        4 |    9 |   15 |    1 |        3
+   5 |       1 |        5 |   12 |   -1 |    0 |        4
+   6 |       2 |        1 |    2 |    4 |    1 |        0
+   7 |       2 |        2 |    5 |    8 |    1 |        1
+   8 |       2 |        3 |    6 |   11 |    1 |        2
+   9 |       2 |        4 |   11 |   13 |    1 |        3
+  10 |       2 |        5 |   12 |   -1 |    0 |        4
+  11 |       3 |        1 |    2 |    4 |    1 |        0
+  12 |       3 |        2 |    5 |   10 |    1 |        1
+  13 |       3 |        3 |   10 |   12 |    1 |        2
+  14 |       3 |        4 |   11 |   13 |    1 |        3
+  15 |       3 |        5 |   12 |   -1 |    0 |        4
+(15 rows)
+
+--q5
+SELECT  * FROM pgr_KSP(
+     'SELECT id, source, target, cost FROM edge_table',
+      2, 12, 2, directed:=false
+   );
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |    2 |    4 |    1 |        0
+   2 |       1 |        2 |    5 |    8 |    1 |        1
+   3 |       1 |        3 |    6 |    9 |    1 |        2
+   4 |       1 |        4 |    9 |   15 |    1 |        3
+   5 |       1 |        5 |   12 |   -1 |    0 |        4
+   6 |       2 |        1 |    2 |    4 |    1 |        0
+   7 |       2 |        2 |    5 |    8 |    1 |        1
+   8 |       2 |        3 |    6 |   11 |    1 |        2
+   9 |       2 |        4 |   11 |   13 |    1 |        3
+  10 |       2 |        5 |   12 |   -1 |    0 |        4
+(10 rows)
+
+SELECT  * FROM pgr_KSP(
+     'SELECT id, source, target, cost FROM edge_table',
+      2, 12, 2, directed:=false, heap_paths:=true
+   );
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |    2 |    4 |    1 |        0
+   2 |       1 |        2 |    5 |    8 |    1 |        1
+   3 |       1 |        3 |    6 |    9 |    1 |        2
+   4 |       1 |        4 |    9 |   15 |    1 |        3
+   5 |       1 |        5 |   12 |   -1 |    0 |        4
+   6 |       2 |        1 |    2 |    4 |    1 |        0
+   7 |       2 |        2 |    5 |    8 |    1 |        1
+   8 |       2 |        3 |    6 |   11 |    1 |        2
+   9 |       2 |        4 |   11 |   13 |    1 |        3
+  10 |       2 |        5 |   12 |   -1 |    0 |        4
+  11 |       3 |        1 |    2 |    4 |    1 |        0
+  12 |       3 |        2 |    5 |   10 |    1 |        1
+  13 |       3 |        3 |   10 |   12 |    1 |        2
+  14 |       3 |        4 |   11 |   13 |    1 |        3
+  15 |       3 |        5 |   12 |   -1 |    0 |        4
+(15 rows)
+
+--q6
+ROLLBACK;
+ROLLBACK
diff --git a/src/tsp/doc/doc-pgr_TSP.queries b/doc/queries/doc-pgr_TSP.queries
similarity index 100%
rename from src/tsp/doc/doc-pgr_TSP.queries
rename to doc/queries/doc-pgr_TSP.queries
diff --git a/src/alpha_shape/doc/doc-pgr_alphashape.queries b/doc/queries/doc-pgr_alphashape.queries
similarity index 100%
rename from src/alpha_shape/doc/doc-pgr_alphashape.queries
rename to doc/queries/doc-pgr_alphashape.queries
diff --git a/src/topology/doc/doc-pgr_analyzeGraph.queries b/doc/queries/doc-pgr_analyzeGraph.queries
similarity index 100%
rename from src/topology/doc/doc-pgr_analyzeGraph.queries
rename to doc/queries/doc-pgr_analyzeGraph.queries
diff --git a/doc/queries/doc-pgr_articulationPoints.queries b/doc/queries/doc-pgr_articulationPoints.queries
new file mode 100644
index 0000000..4bbe0b6
--- /dev/null
+++ b/doc/queries/doc-pgr_articulationPoints.queries
@@ -0,0 +1,30 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_articulationPoints(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
+ seq | node 
+-----+------
+   1 |    2
+   2 |    5
+   3 |    8
+   4 |   10
+(4 rows)
+
+-- q2
+SELECT * FROM pgr_articulationPoints(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
+ seq | node 
+-----+------
+   1 |    2
+   2 |    5
+   3 |    8
+   4 |   10
+(4 rows)
+
+ROLLBACK;
+ROLLBACK
diff --git a/doc/queries/doc-pgr_bdAstar.queries b/doc/queries/doc-pgr_bdAstar.queries
new file mode 100644
index 0000000..3940236
--- /dev/null
+++ b/doc/queries/doc-pgr_bdAstar.queries
@@ -0,0 +1,112 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_bdAstar(
+    'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2
+    FROM edge_table',
+    2, 3
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    4 |    1 |        0
+   2 |        2 |    5 |    8 |    1 |        1
+   3 |        3 |    6 |    9 |    1 |        2
+   4 |        4 |    9 |   16 |    1 |        3
+   5 |        5 |    4 |    3 |    1 |        4
+   6 |        6 |    3 |   -1 |    0 |        5
+(6 rows)
+
+-- q2
+SELECT * FROM pgr_bdAstar(
+    'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2
+    FROM edge_table',
+    2, 3,
+    true, heuristic := 2
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    4 |    1 |        0
+   2 |        2 |    5 |    8 |    1 |        1
+   3 |        3 |    6 |    9 |    1 |        2
+   4 |        4 |    9 |   16 |    1 |        3
+   5 |        5 |    4 |    3 |    1 |        4
+   6 |        6 |    3 |   -1 |    0 |        5
+(6 rows)
+
+-- q3
+SELECT * FROM pgr_bdAstar(
+    'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2
+    FROM edge_table',
+    2, ARRAY[3, 11],
+    heuristic := 3, factor := 3.5
+);
+ seq | path_seq | end_vid | node | edge | cost | agg_cost 
+-----+----------+---------+------+------+------+----------
+   1 |        1 |       3 |    2 |    4 |    1 |        0
+   2 |        2 |       3 |    5 |    8 |    1 |        1
+   3 |        3 |       3 |    6 |    9 |    1 |        2
+   4 |        4 |       3 |    9 |   16 |    1 |        3
+   5 |        5 |       3 |    4 |    3 |    1 |        4
+   6 |        6 |       3 |    3 |   -1 |    0 |        5
+   7 |        1 |      11 |    2 |    4 |    1 |        0
+   8 |        2 |      11 |    5 |    8 |    1 |        1
+   9 |        3 |      11 |    6 |   11 |    1 |        2
+  10 |        4 |      11 |   11 |   -1 |    0 |        3
+(10 rows)
+
+-- q4
+SELECT * FROM pgr_bdAstar(
+    'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2
+    FROM edge_table',
+    ARRAY[2, 7], 3,
+    false, heuristic := 4
+);
+ seq | path_seq | start_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+------+------+------+----------
+   1 |        1 |         2 |    2 |    2 |    1 |        0
+   2 |        2 |         2 |    3 |   -1 |    0 |        1
+   3 |        1 |         7 |    7 |    6 |    1 |        0
+   4 |        2 |         7 |    8 |    7 |    1 |        1
+   5 |        3 |         7 |    5 |    4 |    1 |        2
+   6 |        4 |         7 |    2 |    2 |    1 |        3
+   7 |        5 |         7 |    3 |   -1 |    0 |        4
+(7 rows)
+
+-- q5
+SELECT * FROM pgr_bdAstar(
+    'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2
+    FROM edge_table',
+    ARRAY[2, 7], ARRAY[3, 11],
+    factor := 0.5
+);
+ seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+---------+------+------+------+----------
+   1 |        1 |         2 |       3 |    2 |    4 |    1 |        0
+   2 |        2 |         2 |       3 |    5 |    8 |    1 |        1
+   3 |        3 |         2 |       3 |    6 |    9 |    1 |        2
+   4 |        4 |         2 |       3 |    9 |   16 |    1 |        3
+   5 |        5 |         2 |       3 |    4 |    3 |    1 |        4
+   6 |        6 |         2 |       3 |    3 |   -1 |    0 |        5
+   7 |        1 |         2 |      11 |    2 |    4 |    1 |        0
+   8 |        2 |         2 |      11 |    5 |    8 |    1 |        1
+   9 |        3 |         2 |      11 |    6 |   11 |    1 |        2
+  10 |        4 |         2 |      11 |   11 |   -1 |    0 |        3
+  11 |        1 |         7 |       3 |    7 |    6 |    1 |        0
+  12 |        2 |         7 |       3 |    8 |    7 |    1 |        1
+  13 |        3 |         7 |       3 |    5 |    8 |    1 |        2
+  14 |        4 |         7 |       3 |    6 |    9 |    1 |        3
+  15 |        5 |         7 |       3 |    9 |   16 |    1 |        4
+  16 |        6 |         7 |       3 |    4 |    3 |    1 |        5
+  17 |        7 |         7 |       3 |    3 |   -1 |    0 |        6
+  18 |        1 |         7 |      11 |    7 |    6 |    1 |        0
+  19 |        2 |         7 |      11 |    8 |    7 |    1 |        1
+  20 |        3 |         7 |      11 |    5 |   10 |    1 |        2
+  21 |        4 |         7 |      11 |   10 |   12 |    1 |        3
+  22 |        5 |         7 |      11 |   11 |   -1 |    0 |        4
+(22 rows)
+
+-- q6
+ROLLBACK;
+ROLLBACK
diff --git a/doc/queries/doc-pgr_bdAstarCost.queries b/doc/queries/doc-pgr_bdAstarCost.queries
new file mode 100644
index 0000000..f22ab6d
--- /dev/null
+++ b/doc/queries/doc-pgr_bdAstarCost.queries
@@ -0,0 +1,71 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_bdAstarCost(
+    'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2
+    FROM edge_table',
+    2, 3
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       3 |        5
+(1 row)
+
+-- q2
+SELECT * FROM pgr_bdAstarCost(
+    'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2
+    FROM edge_table',
+    2, 3,
+    true, heuristic := 2
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       3 |        5
+(1 row)
+
+-- q3
+SELECT * FROM pgr_bdAstarCost(
+    'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2
+    FROM edge_table',
+    2, ARRAY[3, 11],
+    heuristic := 3, factor := 3.5
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       3 |        5
+         2 |      11 |        3
+(2 rows)
+
+-- q4
+SELECT * FROM pgr_bdAstarCost(
+    'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2
+    FROM edge_table',
+    ARRAY[2, 7], 3,
+    false, heuristic := 4
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       3 |        1
+         7 |       3 |        4
+(2 rows)
+
+-- q5
+SELECT * FROM pgr_bdAstarCost(
+    'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2
+    FROM edge_table',
+    ARRAY[2, 7], ARRAY[3, 11],
+    factor := 0.5
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       3 |        5
+         2 |      11 |        3
+         7 |       3 |        6
+         7 |      11 |        4
+(4 rows)
+
+-- q6
+ROLLBACK;
+ROLLBACK
diff --git a/doc/queries/doc-pgr_bdDijkstra.queries b/doc/queries/doc-pgr_bdDijkstra.queries
new file mode 100644
index 0000000..203ae8b
--- /dev/null
+++ b/doc/queries/doc-pgr_bdDijkstra.queries
@@ -0,0 +1,119 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_bdDijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, 3
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    4 |    1 |        0
+   2 |        2 |    5 |    8 |    1 |        1
+   3 |        3 |    6 |    9 |    1 |        2
+   4 |        4 |    9 |   16 |    1 |        3
+   5 |        5 |    4 |    3 |    1 |        4
+   6 |        6 |    3 |   -1 |    0 |        5
+(6 rows)
+
+-- q2
+SELECT * FROM pgr_bdDijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, 3,
+    false
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    2 |    1 |        0
+   2 |        2 |    3 |   -1 |    0 |        1
+(2 rows)
+
+-- q3
+SELECT * FROM pgr_bdDijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, ARRAY[3, 11]);
+ seq | path_seq | end_vid | node | edge | cost | agg_cost 
+-----+----------+---------+------+------+------+----------
+   1 |        1 |       3 |    2 |    4 |    1 |        0
+   2 |        2 |       3 |    5 |    8 |    1 |        1
+   3 |        3 |       3 |    6 |    9 |    1 |        2
+   4 |        4 |       3 |    9 |   16 |    1 |        3
+   5 |        5 |       3 |    4 |    3 |    1 |        4
+   6 |        6 |       3 |    3 |   -1 |    0 |        5
+   7 |        1 |      11 |    2 |    4 |    1 |        0
+   8 |        2 |      11 |    5 |    8 |    1 |        1
+   9 |        3 |      11 |    6 |   11 |    1 |        2
+  10 |        4 |      11 |   11 |   -1 |    0 |        3
+(10 rows)
+
+-- q4
+SELECT * FROM pgr_bdDijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2, 7], 3);
+ seq | path_seq | start_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+------+------+------+----------
+   1 |        1 |         2 |    2 |    4 |    1 |        0
+   2 |        2 |         2 |    5 |    8 |    1 |        1
+   3 |        3 |         2 |    6 |    9 |    1 |        2
+   4 |        4 |         2 |    9 |   16 |    1 |        3
+   5 |        5 |         2 |    4 |    3 |    1 |        4
+   6 |        6 |         2 |    3 |   -1 |    0 |        5
+   7 |        1 |         7 |    7 |    6 |    1 |        0
+   8 |        2 |         7 |    8 |    7 |    1 |        1
+   9 |        3 |         7 |    5 |    8 |    1 |        2
+  10 |        4 |         7 |    6 |    9 |    1 |        3
+  11 |        5 |         7 |    9 |   16 |    1 |        4
+  12 |        6 |         7 |    4 |    3 |    1 |        5
+  13 |        7 |         7 |    3 |   -1 |    0 |        6
+(13 rows)
+
+-- q5
+SELECT * FROM pgr_bdDijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2, 7], ARRAY[3, 11]);
+ seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+---------+------+------+------+----------
+   1 |        1 |         2 |       3 |    2 |    4 |    1 |        0
+   2 |        2 |         2 |       3 |    5 |    8 |    1 |        1
+   3 |        3 |         2 |       3 |    6 |    9 |    1 |        2
+   4 |        4 |         2 |       3 |    9 |   16 |    1 |        3
+   5 |        5 |         2 |       3 |    4 |    3 |    1 |        4
+   6 |        6 |         2 |       3 |    3 |   -1 |    0 |        5
+   7 |        1 |         2 |      11 |    2 |    4 |    1 |        0
+   8 |        2 |         2 |      11 |    5 |    8 |    1 |        1
+   9 |        3 |         2 |      11 |    6 |   11 |    1 |        2
+  10 |        4 |         2 |      11 |   11 |   -1 |    0 |        3
+  11 |        1 |         7 |       3 |    7 |    6 |    1 |        0
+  12 |        2 |         7 |       3 |    8 |    7 |    1 |        1
+  13 |        3 |         7 |       3 |    5 |    8 |    1 |        2
+  14 |        4 |         7 |       3 |    6 |    9 |    1 |        3
+  15 |        5 |         7 |       3 |    9 |   16 |    1 |        4
+  16 |        6 |         7 |       3 |    4 |    3 |    1 |        5
+  17 |        7 |         7 |       3 |    3 |   -1 |    0 |        6
+  18 |        1 |         7 |      11 |    7 |    6 |    1 |        0
+  19 |        2 |         7 |      11 |    8 |    7 |    1 |        1
+  20 |        3 |         7 |      11 |    5 |   10 |    1 |        2
+  21 |        4 |         7 |      11 |   10 |   12 |    1 |        3
+  22 |        5 |         7 |      11 |   11 |   -1 |    0 |        4
+(22 rows)
+
+-- q6
+SELECT * FROM pgr_bdDijkstra(
+    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT FROM edge_table',
+    2, 3,
+    false, 
+    false  
+);
+NOTICE:  Deprecated Signature of pgr_bdDijkstra
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |   2 |   4 |    1
+   1 |   5 |   8 |    1
+   2 |   6 |   5 |    1
+   3 |   3 |  -1 |    0
+(4 rows)
+
+-- q7
+ROLLBACK;
+ROLLBACK
diff --git a/doc/queries/doc-pgr_bdDijkstraCost.queries b/doc/queries/doc-pgr_bdDijkstraCost.queries
new file mode 100644
index 0000000..fa75c07
--- /dev/null
+++ b/doc/queries/doc-pgr_bdDijkstraCost.queries
@@ -0,0 +1,60 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_bdDijkstraCost(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, 3
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       3 |        5
+(1 row)
+
+-- q2
+SELECT * FROM pgr_bdDijkstraCost(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, 3,
+    false
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       3 |        1
+(1 row)
+
+-- q3
+SELECT * FROM pgr_bdDijkstraCost(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, ARRAY[3, 11]);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       3 |        5
+         2 |      11 |        3
+(2 rows)
+
+-- q4
+SELECT * FROM pgr_bdDijkstraCost(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2, 7], 3);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       3 |        5
+         7 |       3 |        6
+(2 rows)
+
+-- q5
+SELECT * FROM pgr_bdDijkstraCost(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2, 7], ARRAY[3, 11]);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       3 |        5
+         2 |      11 |        3
+         7 |       3 |        6
+         7 |      11 |        4
+(4 rows)
+
+-- q6
+ROLLBACK;
+ROLLBACK
diff --git a/doc/queries/doc-pgr_biconnectedComponents.queries b/doc/queries/doc-pgr_biconnectedComponents.queries
new file mode 100644
index 0000000..afaa41c
--- /dev/null
+++ b/doc/queries/doc-pgr_biconnectedComponents.queries
@@ -0,0 +1,58 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_biconnectedComponents(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
+ seq | component | n_seq | edge 
+-----+-----------+-------+------
+   1 |         1 |     1 |    1
+   2 |         2 |     1 |    2
+   3 |         2 |     2 |    3
+   4 |         2 |     3 |    4
+   5 |         2 |     4 |    5
+   6 |         2 |     5 |    8
+   7 |         2 |     6 |    9
+   8 |         2 |     7 |   10
+   9 |         2 |     8 |   11
+  10 |         2 |     9 |   12
+  11 |         2 |    10 |   13
+  12 |         2 |    11 |   15
+  13 |         2 |    12 |   16
+  14 |         6 |     1 |    6
+  15 |         7 |     1 |    7
+  16 |        14 |     1 |   14
+  17 |        17 |     1 |   17
+  18 |        18 |     1 |   18
+(18 rows)
+
+-- q2
+SELECT * FROM pgr_biconnectedComponents(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
+ seq | component | n_seq | edge 
+-----+-----------+-------+------
+   1 |         1 |     1 |    1
+   2 |         2 |     1 |    2
+   3 |         2 |     2 |    3
+   4 |         2 |     3 |    4
+   5 |         2 |     4 |    5
+   6 |         2 |     5 |    8
+   7 |         2 |     6 |    9
+   8 |         2 |     7 |   10
+   9 |         2 |     8 |   11
+  10 |         2 |     9 |   12
+  11 |         2 |    10 |   13
+  12 |         2 |    11 |   15
+  13 |         2 |    12 |   16
+  14 |         6 |     1 |    6
+  15 |         7 |     1 |    7
+  16 |        14 |     1 |   14
+  17 |        17 |     1 |   17
+  18 |        18 |     1 |   18
+(18 rows)
+
+ROLLBACK;
+ROLLBACK
diff --git a/doc/queries/doc-pgr_boykovKolmogorov.queries b/doc/queries/doc-pgr_boykovKolmogorov.queries
new file mode 100644
index 0000000..3058de9
--- /dev/null
+++ b/doc/queries/doc-pgr_boykovKolmogorov.queries
@@ -0,0 +1,90 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_boykovKolmogorov(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , 6, 11
+);
+ seq | edge | start_vid | end_vid | flow | residual_capacity 
+-----+------+-----------+---------+------+-------------------
+   1 |   10 |         5 |      10 |  100 |                30
+   2 |    8 |         6 |       5 |  100 |                30
+   3 |   11 |         6 |      11 |  130 |                 0
+   4 |   12 |        10 |      11 |  100 |                 0
+(4 rows)
+
+-- q2
+SELECT * FROM pgr_boykovKolmogorov(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , 6, ARRAY[1, 3, 11]
+);
+ seq | edge | start_vid | end_vid | flow | residual_capacity 
+-----+------+-----------+---------+------+-------------------
+   1 |    1 |         2 |       1 |   50 |                80
+   2 |    3 |         4 |       3 |   80 |                50
+   3 |    4 |         5 |       2 |   50 |                 0
+   4 |   10 |         5 |      10 |   80 |                50
+   5 |    8 |         6 |       5 |  130 |                 0
+   6 |    9 |         6 |       9 |   80 |                50
+   7 |   11 |         6 |      11 |  130 |                 0
+   8 |   16 |         9 |       4 |   80 |                 0
+   9 |   12 |        10 |      11 |   80 |                20
+(9 rows)
+
+-- q3
+SELECT * FROM pgr_boykovKolmogorov(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , ARRAY[6, 8, 12], 11
+);
+ seq | edge | start_vid | end_vid | flow | residual_capacity 
+-----+------+-----------+---------+------+-------------------
+   1 |   10 |         5 |      10 |  100 |                30
+   2 |    8 |         6 |       5 |  100 |                30
+   3 |   11 |         6 |      11 |  130 |                 0
+   4 |   12 |        10 |      11 |  100 |                 0
+(4 rows)
+
+-- q4
+SELECT * FROM pgr_boykovKolmogorov(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , ARRAY[6, 8, 12], ARRAY[1, 3, 11]
+);
+ seq | edge | start_vid | end_vid | flow | residual_capacity 
+-----+------+-----------+---------+------+-------------------
+   1 |    1 |         2 |       1 |   50 |                80
+   2 |    3 |         4 |       3 |   80 |                50
+   3 |    4 |         5 |       2 |   50 |                 0
+   4 |   10 |         5 |      10 |  100 |                30
+   5 |    8 |         6 |       5 |  130 |                 0
+   6 |    9 |         6 |       9 |   80 |                50
+   7 |   11 |         6 |      11 |  130 |                 0
+   8 |    7 |         8 |       5 |   20 |                30
+   9 |   16 |         9 |       4 |   80 |                 0
+  10 |   12 |        10 |      11 |  100 |                 0
+(10 rows)
+
+-- q5
+ROLLBACK;
+ROLLBACK
diff --git a/doc/queries/doc-pgr_bridges.queries b/doc/queries/doc-pgr_bridges.queries
new file mode 100644
index 0000000..649046d
--- /dev/null
+++ b/doc/queries/doc-pgr_bridges.queries
@@ -0,0 +1,34 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_bridges(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
+ seq | edge 
+-----+------
+   1 |    1
+   2 |    6
+   3 |    7
+   4 |   14
+   5 |   17
+   6 |   18
+(6 rows)
+
+-- q2
+SELECT * FROM pgr_bridges(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
+ seq | edge 
+-----+------
+   1 |    1
+   2 |    6
+   3 |    7
+   4 |   14
+   5 |   17
+   6 |   18
+(6 rows)
+
+ROLLBACK;
+ROLLBACK
diff --git a/doc/queries/doc-pgr_connectedComponents.queries b/doc/queries/doc-pgr_connectedComponents.queries
new file mode 100644
index 0000000..da041b1
--- /dev/null
+++ b/doc/queries/doc-pgr_connectedComponents.queries
@@ -0,0 +1,56 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_connectedComponents(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
+ seq | component | n_seq | node 
+-----+-----------+-------+------
+   1 |         1 |     1 |    1
+   2 |         1 |     2 |    2
+   3 |         1 |     3 |    3
+   4 |         1 |     4 |    4
+   5 |         1 |     5 |    5
+   6 |         1 |     6 |    6
+   7 |         1 |     7 |    7
+   8 |         1 |     8 |    8
+   9 |         1 |     9 |    9
+  10 |         1 |    10 |   10
+  11 |         1 |    11 |   11
+  12 |         1 |    12 |   12
+  13 |         1 |    13 |   13
+  14 |        14 |     1 |   14
+  15 |        14 |     2 |   15
+  16 |        16 |     1 |   16
+  17 |        16 |     2 |   17
+(17 rows)
+
+-- q2
+SELECT * FROM pgr_connectedComponents(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
+ seq | component | n_seq | node 
+-----+-----------+-------+------
+   1 |         1 |     1 |    1
+   2 |         1 |     2 |    2
+   3 |         1 |     3 |    3
+   4 |         1 |     4 |    4
+   5 |         1 |     5 |    5
+   6 |         1 |     6 |    6
+   7 |         1 |     7 |    7
+   8 |         1 |     8 |    8
+   9 |         1 |     9 |    9
+  10 |         1 |    10 |   10
+  11 |         1 |    11 |   11
+  12 |         1 |    12 |   12
+  13 |         1 |    13 |   13
+  14 |        14 |     1 |   14
+  15 |        14 |     2 |   15
+  16 |        16 |     1 |   16
+  17 |        16 |     2 |   17
+(17 rows)
+
+ROLLBACK;
+ROLLBACK
diff --git a/doc/queries/doc-pgr_createTopology.queries b/doc/queries/doc-pgr_createTopology.queries
new file mode 100644
index 0000000..3b3e195
--- /dev/null
+++ b/doc/queries/doc-pgr_createTopology.queries
@@ -0,0 +1,262 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+DROP TABLE edge_table_vertices_pgr;
+DROP TABLE
+UPDATE edge_table SET source = NULL,  target = NULL;
+UPDATE 18
+--q1
+SELECT  pgr_createTopology('edge_table', 0.001);
+NOTICE:  PROCESSING:
+NOTICE:  pgr_createTopology('edge_table', 0.001, 'the_geom', 'id', 'source', 'target', rows_where := 'true', clean := f)
+NOTICE:  Performing checks, please wait .....
+NOTICE:  Creating Topology, Please wait...
+NOTICE:  -------------> TOPOLOGY CREATED FOR  18 edges
+NOTICE:  Rows with NULL geometry or NULL id: 0
+NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
+NOTICE:  ----------------------------------------------
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
+--q1.1
+DROP TABLE edge_table_vertices_pgr;
+DROP TABLE
+UPDATE edge_table SET source = NULL,  target = NULL;
+UPDATE 18
+--q2
+SELECT  pgr_createTopology('edge_table', 0.001,
+    'the_geom', 'id', 'source', 'target');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_createTopology('edge_table', 0.001, 'the_geom', 'id', 'source', 'target', rows_where := 'true', clean := f)
+NOTICE:  Performing checks, please wait .....
+NOTICE:  Creating Topology, Please wait...
+NOTICE:  -------------> TOPOLOGY CREATED FOR  18 edges
+NOTICE:  Rows with NULL geometry or NULL id: 0
+NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
+NOTICE:  ----------------------------------------------
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
+--q2.1
+SET client_min_messages TO NOTICE;
+SET
+--q3
+SELECT  pgr_createTopology('edge_table', 0.001,
+    'id', 'the_geom');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_createTopology('edge_table', 0.001, 'id', 'the_geom', 'source', 'target', rows_where := 'true', clean := f)
+NOTICE:  Performing checks, please wait .....
+NOTICE:  ----> PGR ERROR in pgr_createTopology: Wrong type of Column id:the_geom
+NOTICE:  Unexpected error raise_exception
+ pgr_createtopology 
+--------------------
+ FAIL
+(1 row)
+
+--q3.1
+SET client_min_messages TO WARNING;
+SET
+DROP TABLE edge_table_vertices_pgr;
+DROP TABLE
+UPDATE edge_table SET source = NULL,  target = NULL;
+UPDATE 18
+--q4
+SELECT  pgr_createTopology('edge_table', 0.001,
+    the_geom:='the_geom', id:='id', source:='source', target:='target');
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
+--q4.1
+DROP TABLE edge_table_vertices_pgr;
+DROP TABLE
+UPDATE edge_table SET source = NULL,  target = NULL;
+UPDATE 18
+--q5
+SELECT  pgr_createTopology('edge_table', 0.001,
+    source:='source', id:='id', target:='target', the_geom:='the_geom');
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
+--q5.1
+DROP TABLE edge_table_vertices_pgr;
+DROP TABLE
+UPDATE edge_table SET source = NULL,  target = NULL;
+UPDATE 18
+--q6
+SELECT  pgr_createTopology('edge_table', 0.001, source:='source');
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
+--q6.1
+--q7
+SELECT  pgr_createTopology('edge_table', 0.001, rows_where:='id < 10');
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
+--q7.1
+--q8
+SELECT  pgr_createTopology('edge_table', 0.001,
+    rows_where:='the_geom && (SELECT st_buffer(the_geom, 0.05) FROM edge_table WHERE id=5)');
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
+--q8.1
+--q9
+CREATE TABLE otherTable AS  (SELECT 100 AS gid,  st_point(2.5, 2.5) AS other_geom);
+SELECT 1
+SELECT  pgr_createTopology('edge_table', 0.001,
+    rows_where:='the_geom && (SELECT st_buffer(other_geom, 1) FROM otherTable WHERE gid=100)');
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
+--q9.1
+--q10
+CREATE TABLE mytable AS (SELECT id AS gid,  the_geom AS mygeom, source AS src , target AS tgt FROM edge_table) ;
+SELECT 18
+--q10.1
+--q11
+SELECT  pgr_createTopology('mytable', 0.001, 'mygeom', 'gid', 'src', 'tgt', clean := TRUE);
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
+--q11.1
+DROP TABLE mytable_vertices_pgr;
+DROP TABLE
+UPDATE mytable SET src = NULL,  tgt = NULL;
+UPDATE 18
+SET client_min_messages TO NOTICE;
+SET
+--q12
+SELECT  pgr_createTopology('mytable', 0.001, 'gid', 'mygeom', 'src', 'tgt');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_createTopology('mytable', 0.001, 'gid', 'mygeom', 'src', 'tgt', rows_where := 'true', clean := f)
+NOTICE:  Performing checks, please wait .....
+NOTICE:  ----> PGR ERROR in pgr_createTopology: Wrong type of Column id:mygeom
+NOTICE:  Unexpected error raise_exception
+ pgr_createtopology 
+--------------------
+ FAIL
+(1 row)
+
+--q12.1
+SET client_min_messages TO WARNING;
+SET
+--q13
+SELECT  pgr_createTopology('mytable', 0.001, the_geom:='mygeom', id:='gid', source:='src', target:='tgt');
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
+--q13.1
+DROP TABLE mytable_vertices_pgr;
+DROP TABLE
+UPDATE mytable SET src = NULL,  tgt = NULL;
+UPDATE 18
+--q14
+SELECT  pgr_createTopology('mytable', 0.001, source:='src', id:='gid', target:='tgt', the_geom:='mygeom');
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
+--q14.1
+--q15
+SELECT  pgr_createTopology('mytable', 0.001, 'mygeom', 'gid', 'src', 'tgt', rows_where:='gid < 10');
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
+SELECT  pgr_createTopology('mytable', 0.001, source:='src', id:='gid', target:='tgt', the_geom:='mygeom', rows_where:='gid < 10');
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
+SELECT  pgr_createTopology('mytable', 0.001, 'mygeom', 'gid', 'src', 'tgt',
+    rows_where:='mygeom && (SELECT st_buffer(mygeom, 1) FROM mytable WHERE gid=5)');
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
+SELECT  pgr_createTopology('mytable', 0.001, source:='src', id:='gid', target:='tgt', the_geom:='mygeom',
+    rows_where:='mygeom && (SELECT st_buffer(mygeom, 1) FROM mytable WHERE gid=5)');
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
+--q15.1
+--q16
+SELECT  pgr_createTopology('mytable', 0.001, 'mygeom', 'gid', 'src', 'tgt',
+    rows_where:='mygeom && (SELECT st_buffer(other_geom, 1) FROM otherTable WHERE gid=100)');
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
+SELECT  pgr_createTopology('mytable', 0.001, source:='src', id:='gid', target:='tgt', the_geom:='mygeom',
+    rows_where:='mygeom && (SELECT st_buffer(other_geom, 1) FROM otherTable WHERE gid=100)');
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
+--q16.1
+SET client_min_messages TO NOTICE;
+SET
+--q17
+SELECT pgr_createTopology('edge_table',  0.001, rows_where:='id < 6', clean := true);
+NOTICE:  PROCESSING:
+NOTICE:  pgr_createTopology('edge_table', 0.001, 'the_geom', 'id', 'source', 'target', rows_where := 'id < 6', clean := t)
+NOTICE:  Performing checks, please wait .....
+NOTICE:  Creating Topology, Please wait...
+NOTICE:  -------------> TOPOLOGY CREATED FOR  5 edges
+NOTICE:  Rows with NULL geometry or NULL id: 0
+NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
+NOTICE:  ----------------------------------------------
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
+SELECT pgr_createTopology('edge_table',  0.001);
+NOTICE:  PROCESSING:
+NOTICE:  pgr_createTopology('edge_table', 0.001, 'the_geom', 'id', 'source', 'target', rows_where := 'true', clean := f)
+NOTICE:  Performing checks, please wait .....
+NOTICE:  Creating Topology, Please wait...
+NOTICE:  -------------> TOPOLOGY CREATED FOR  13 edges
+NOTICE:  Rows with NULL geometry or NULL id: 0
+NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
+NOTICE:  ----------------------------------------------
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
+--q17.1
+SET client_min_messages TO NOTICE;
+SET
+ROLLBACK;
+ROLLBACK
diff --git a/doc/queries/doc-pgr_dijkstra.queries b/doc/queries/doc-pgr_dijkstra.queries
new file mode 100644
index 0000000..285e4ab
--- /dev/null
+++ b/doc/queries/doc-pgr_dijkstra.queries
@@ -0,0 +1,590 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, 3
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    4 |    1 |        0
+   2 |        2 |    5 |    8 |    1 |        1
+   3 |        3 |    6 |    9 |    1 |        2
+   4 |        4 |    9 |   16 |    1 |        3
+   5 |        5 |    4 |    3 |    1 |        4
+   6 |        6 |    3 |   -1 |    0 |        5
+(6 rows)
+
+-- q2
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, 3,
+    FALSE
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    2 |    1 |        0
+   2 |        2 |    3 |   -1 |    0 |        1
+(2 rows)
+
+-- q3
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost FROM edge_table',
+    2, ARRAY[3,5],
+    FALSE
+);
+ seq | path_seq | end_vid | node | edge | cost | agg_cost 
+-----+----------+---------+------+------+------+----------
+   1 |        1 |       3 |    2 |    4 |    1 |        0
+   2 |        2 |       3 |    5 |    8 |    1 |        1
+   3 |        3 |       3 |    6 |    5 |    1 |        2
+   4 |        4 |       3 |    3 |   -1 |    0 |        3
+   5 |        1 |       5 |    2 |    4 |    1 |        0
+   6 |        2 |       5 |    5 |   -1 |    0 |        1
+(6 rows)
+
+-- q4
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2,11], 5
+);
+ seq | path_seq | start_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+------+------+------+----------
+   1 |        1 |         2 |    2 |    4 |    1 |        0
+   2 |        2 |         2 |    5 |   -1 |    0 |        1
+   3 |        1 |        11 |   11 |   13 |    1 |        0
+   4 |        2 |        11 |   12 |   15 |    1 |        1
+   5 |        3 |        11 |    9 |    9 |    1 |        2
+   6 |        4 |        11 |    6 |    8 |    1 |        3
+   7 |        5 |        11 |    5 |   -1 |    0 |        4
+(7 rows)
+
+-- q5
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2,11], ARRAY[3,5],
+    FALSE
+);
+ seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+---------+------+------+------+----------
+   1 |        1 |         2 |       3 |    2 |    2 |    1 |        0
+   2 |        2 |         2 |       3 |    3 |   -1 |    0 |        1
+   3 |        1 |         2 |       5 |    2 |    4 |    1 |        0
+   4 |        2 |         2 |       5 |    5 |   -1 |    0 |        1
+   5 |        1 |        11 |       3 |   11 |   11 |    1 |        0
+   6 |        2 |        11 |       3 |    6 |    5 |    1 |        1
+   7 |        3 |        11 |       3 |    3 |   -1 |    0 |        2
+   8 |        1 |        11 |       5 |   11 |   11 |    1 |        0
+   9 |        2 |        11 |       5 |    6 |    8 |    1 |        1
+  10 |        3 |        11 |       5 |    5 |   -1 |    0 |        2
+(10 rows)
+
+-- q6
+-- q7
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, 3
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    4 |    1 |        0
+   2 |        2 |    5 |    8 |    1 |        1
+   3 |        3 |    6 |    9 |    1 |        2
+   4 |        4 |    9 |   16 |    1 |        3
+   5 |        5 |    4 |    3 |    1 |        4
+   6 |        6 |    3 |   -1 |    0 |        5
+(6 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, 5
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    4 |    1 |        0
+   2 |        2 |    5 |   -1 |    0 |        1
+(2 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, ARRAY[3,5]
+);
+ seq | path_seq | end_vid | node | edge | cost | agg_cost 
+-----+----------+---------+------+------+------+----------
+   1 |        1 |       3 |    2 |    4 |    1 |        0
+   2 |        2 |       3 |    5 |    8 |    1 |        1
+   3 |        3 |       3 |    6 |    9 |    1 |        2
+   4 |        4 |       3 |    9 |   16 |    1 |        3
+   5 |        5 |       3 |    4 |    3 |    1 |        4
+   6 |        6 |       3 |    3 |   -1 |    0 |        5
+   7 |        1 |       5 |    2 |    4 |    1 |        0
+   8 |        2 |       5 |    5 |   -1 |    0 |        1
+(8 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    11, 3
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |   11 |   13 |    1 |        0
+   2 |        2 |   12 |   15 |    1 |        1
+   3 |        3 |    9 |   16 |    1 |        2
+   4 |        4 |    4 |    3 |    1 |        3
+   5 |        5 |    3 |   -1 |    0 |        4
+(5 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    11, 5
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |   11 |   13 |    1 |        0
+   2 |        2 |   12 |   15 |    1 |        1
+   3 |        3 |    9 |    9 |    1 |        2
+   4 |        4 |    6 |    8 |    1 |        3
+   5 |        5 |    5 |   -1 |    0 |        4
+(5 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2,11], 5
+);
+ seq | path_seq | start_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+------+------+------+----------
+   1 |        1 |         2 |    2 |    4 |    1 |        0
+   2 |        2 |         2 |    5 |   -1 |    0 |        1
+   3 |        1 |        11 |   11 |   13 |    1 |        0
+   4 |        2 |        11 |   12 |   15 |    1 |        1
+   5 |        3 |        11 |    9 |    9 |    1 |        2
+   6 |        4 |        11 |    6 |    8 |    1 |        3
+   7 |        5 |        11 |    5 |   -1 |    0 |        4
+(7 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2, 11], ARRAY[3,5]
+);
+ seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+---------+------+------+------+----------
+   1 |        1 |         2 |       3 |    2 |    4 |    1 |        0
+   2 |        2 |         2 |       3 |    5 |    8 |    1 |        1
+   3 |        3 |         2 |       3 |    6 |    9 |    1 |        2
+   4 |        4 |         2 |       3 |    9 |   16 |    1 |        3
+   5 |        5 |         2 |       3 |    4 |    3 |    1 |        4
+   6 |        6 |         2 |       3 |    3 |   -1 |    0 |        5
+   7 |        1 |         2 |       5 |    2 |    4 |    1 |        0
+   8 |        2 |         2 |       5 |    5 |   -1 |    0 |        1
+   9 |        1 |        11 |       3 |   11 |   13 |    1 |        0
+  10 |        2 |        11 |       3 |   12 |   15 |    1 |        1
+  11 |        3 |        11 |       3 |    9 |   16 |    1 |        2
+  12 |        4 |        11 |       3 |    4 |    3 |    1 |        3
+  13 |        5 |        11 |       3 |    3 |   -1 |    0 |        4
+  14 |        1 |        11 |       5 |   11 |   13 |    1 |        0
+  15 |        2 |        11 |       5 |   12 |   15 |    1 |        1
+  16 |        3 |        11 |       5 |    9 |    9 |    1 |        2
+  17 |        4 |        11 |       5 |    6 |    8 |    1 |        3
+  18 |        5 |        11 |       5 |    5 |   -1 |    0 |        4
+(18 rows)
+
+-- q8
+-- q9
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, 3,
+    FALSE
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    2 |    1 |        0
+   2 |        2 |    3 |   -1 |    0 |        1
+(2 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, 5,
+    FALSE
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    4 |    1 |        0
+   2 |        2 |    5 |   -1 |    0 |        1
+(2 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    11, 3,
+    FALSE
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |   11 |   11 |    1 |        0
+   2 |        2 |    6 |    5 |    1 |        1
+   3 |        3 |    3 |   -1 |    0 |        2
+(3 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    11, 5,
+    FALSE
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |   11 |   11 |    1 |        0
+   2 |        2 |    6 |    8 |    1 |        1
+   3 |        3 |    5 |   -1 |    0 |        2
+(3 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2,11], 5,
+    FALSE
+);
+ seq | path_seq | start_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+------+------+------+----------
+   1 |        1 |         2 |    2 |    4 |    1 |        0
+   2 |        2 |         2 |    5 |   -1 |    0 |        1
+   3 |        1 |        11 |   11 |   12 |    1 |        0
+   4 |        2 |        11 |   10 |   10 |    1 |        1
+   5 |        3 |        11 |    5 |   -1 |    0 |        2
+(5 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, ARRAY[3,5],
+    FALSE
+);
+ seq | path_seq | end_vid | node | edge | cost | agg_cost 
+-----+----------+---------+------+------+------+----------
+   1 |        1 |       3 |    2 |    2 |    1 |        0
+   2 |        2 |       3 |    3 |   -1 |    0 |        1
+   3 |        1 |       5 |    2 |    4 |    1 |        0
+   4 |        2 |       5 |    5 |   -1 |    0 |        1
+(4 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2, 11], ARRAY[3,5],
+    FALSE
+);
+ seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+---------+------+------+------+----------
+   1 |        1 |         2 |       3 |    2 |    2 |    1 |        0
+   2 |        2 |         2 |       3 |    3 |   -1 |    0 |        1
+   3 |        1 |         2 |       5 |    2 |    4 |    1 |        0
+   4 |        2 |         2 |       5 |    5 |   -1 |    0 |        1
+   5 |        1 |        11 |       3 |   11 |   11 |    1 |        0
+   6 |        2 |        11 |       3 |    6 |    5 |    1 |        1
+   7 |        3 |        11 |       3 |    3 |   -1 |    0 |        2
+   8 |        1 |        11 |       5 |   11 |   11 |    1 |        0
+   9 |        2 |        11 |       5 |    6 |    8 |    1 |        1
+  10 |        3 |        11 |       5 |    5 |   -1 |    0 |        2
+(10 rows)
+
+-- q10
+-- q11
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost FROM edge_table',
+    2, 3
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+(0 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost FROM edge_table',
+    2, 5
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    4 |    1 |        0
+   2 |        2 |    5 |   -1 |    0 |        1
+(2 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost FROM edge_table',
+    11, 3
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+(0 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost FROM edge_table',
+    11, 5
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+(0 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost FROM edge_table',
+    ARRAY[2,11], 5
+);
+ seq | path_seq | start_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+------+------+------+----------
+   1 |        1 |         2 |    2 |    4 |    1 |        0
+   2 |        2 |         2 |    5 |   -1 |    0 |        1
+(2 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost FROM edge_table',
+    2, ARRAY[3,5]
+);
+ seq | path_seq | end_vid | node | edge | cost | agg_cost 
+-----+----------+---------+------+------+------+----------
+   1 |        1 |       5 |    2 |    4 |    1 |        0
+   2 |        2 |       5 |    5 |   -1 |    0 |        1
+(2 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost FROM edge_table',
+    ARRAY[2, 11], ARRAY[3,5]
+);
+ seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+---------+------+------+------+----------
+   1 |        1 |         2 |       5 |    2 |    4 |    1 |        0
+   2 |        2 |         2 |       5 |    5 |   -1 |    0 |        1
+(2 rows)
+
+-- q12
+-- q13
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost FROM edge_table',
+    2, 3,
+    FALSE
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    4 |    1 |        0
+   2 |        2 |    5 |    8 |    1 |        1
+   3 |        3 |    6 |    5 |    1 |        2
+   4 |        4 |    3 |   -1 |    0 |        3
+(4 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost FROM edge_table',
+    2, 5,
+    FALSE
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    4 |    1 |        0
+   2 |        2 |    5 |   -1 |    0 |        1
+(2 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost FROM edge_table',
+    11, 3,
+    FALSE
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |   11 |   11 |    1 |        0
+   2 |        2 |    6 |    5 |    1 |        1
+   3 |        3 |    3 |   -1 |    0 |        2
+(3 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost FROM edge_table',
+    11, 5,
+    FALSE
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |   11 |   11 |    1 |        0
+   2 |        2 |    6 |    8 |    1 |        1
+   3 |        3 |    5 |   -1 |    0 |        2
+(3 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost FROM edge_table',
+    ARRAY[2,11], 5,
+    FALSE
+);
+ seq | path_seq | start_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+------+------+------+----------
+   1 |        1 |         2 |    2 |    4 |    1 |        0
+   2 |        2 |         2 |    5 |   -1 |    0 |        1
+   3 |        1 |        11 |   11 |   12 |    1 |        0
+   4 |        2 |        11 |   10 |   10 |    1 |        1
+   5 |        3 |        11 |    5 |   -1 |    0 |        2
+(5 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost FROM edge_table',
+    2, ARRAY[3,5],
+    FALSE
+);
+ seq | path_seq | end_vid | node | edge | cost | agg_cost 
+-----+----------+---------+------+------+------+----------
+   1 |        1 |       3 |    2 |    4 |    1 |        0
+   2 |        2 |       3 |    5 |    8 |    1 |        1
+   3 |        3 |       3 |    6 |    5 |    1 |        2
+   4 |        4 |       3 |    3 |   -1 |    0 |        3
+   5 |        1 |       5 |    2 |    4 |    1 |        0
+   6 |        2 |       5 |    5 |   -1 |    0 |        1
+(6 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost FROM edge_table',
+    ARRAY[2, 11], ARRAY[3,5],
+    FALSE
+);
+ seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+---------+------+------+------+----------
+   1 |        1 |         2 |       3 |    2 |    4 |    1 |        0
+   2 |        2 |         2 |       3 |    5 |    8 |    1 |        1
+   3 |        3 |         2 |       3 |    6 |    5 |    1 |        2
+   4 |        4 |         2 |       3 |    3 |   -1 |    0 |        3
+   5 |        1 |         2 |       5 |    2 |    4 |    1 |        0
+   6 |        2 |         2 |       5 |    5 |   -1 |    0 |        1
+   7 |        1 |        11 |       3 |   11 |   11 |    1 |        0
+   8 |        2 |        11 |       3 |    6 |    5 |    1 |        1
+   9 |        3 |        11 |       3 |    3 |   -1 |    0 |        2
+  10 |        1 |        11 |       5 |   11 |   11 |    1 |        0
+  11 |        2 |        11 |       5 |    6 |    8 |    1 |        1
+  12 |        3 |        11 |       5 |    5 |   -1 |    0 |        2
+(12 rows)
+
+-- q14
+-- q15
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, 3,
+    TRUE     
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    4 |    1 |        0
+   2 |        2 |    5 |    8 |    1 |        1
+   3 |        3 |    6 |    9 |    1 |        2
+   4 |        4 |    9 |   16 |    1 |        3
+   5 |        5 |    4 |    3 |    1 |        4
+   6 |        6 |    3 |   -1 |    0 |        5
+(6 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2,3 
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    4 |    1 |        0
+   2 |        2 |    5 |    8 |    1 |        1
+   3 |        3 |    6 |    9 |    1 |        2
+   4 |        4 |    9 |   16 |    1 |        3
+   5 |        5 |    4 |    3 |    1 |        4
+   6 |        6 |    3 |   -1 |    0 |        5
+(6 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, ARRAY[3],
+    TRUE     
+);
+ seq | path_seq | end_vid | node | edge | cost | agg_cost 
+-----+----------+---------+------+------+------+----------
+   1 |        1 |       3 |    2 |    4 |    1 |        0
+   2 |        2 |       3 |    5 |    8 |    1 |        1
+   3 |        3 |       3 |    6 |    9 |    1 |        2
+   4 |        4 |       3 |    9 |   16 |    1 |        3
+   5 |        5 |       3 |    4 |    3 |    1 |        4
+   6 |        6 |       3 |    3 |   -1 |    0 |        5
+(6 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, ARRAY[3]
+);
+ seq | path_seq | end_vid | node | edge | cost | agg_cost 
+-----+----------+---------+------+------+------+----------
+   1 |        1 |       3 |    2 |    4 |    1 |        0
+   2 |        2 |       3 |    5 |    8 |    1 |        1
+   3 |        3 |       3 |    6 |    9 |    1 |        2
+   4 |        4 |       3 |    9 |   16 |    1 |        3
+   5 |        5 |       3 |    4 |    3 |    1 |        4
+   6 |        6 |       3 |    3 |   -1 |    0 |        5
+(6 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2], ARRAY[3],
+    TRUE
+);
+ seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+---------+------+------+------+----------
+   1 |        1 |         2 |       3 |    2 |    4 |    1 |        0
+   2 |        2 |         2 |       3 |    5 |    8 |    1 |        1
+   3 |        3 |         2 |       3 |    6 |    9 |    1 |        2
+   4 |        4 |         2 |       3 |    9 |   16 |    1 |        3
+   5 |        5 |         2 |       3 |    4 |    3 |    1 |        4
+   6 |        6 |         2 |       3 |    3 |   -1 |    0 |        5
+(6 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2], ARRAY[3]
+);
+ seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+---------+------+------+------+----------
+   1 |        1 |         2 |       3 |    2 |    4 |    1 |        0
+   2 |        2 |         2 |       3 |    5 |    8 |    1 |        1
+   3 |        3 |         2 |       3 |    6 |    9 |    1 |        2
+   4 |        4 |         2 |       3 |    9 |   16 |    1 |        3
+   5 |        5 |         2 |       3 |    4 |    3 |    1 |        4
+   6 |        6 |         2 |       3 |    3 |   -1 |    0 |        5
+(6 rows)
+
+-- q16
+-- q17
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, 3,
+    FALSE     
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    2 |    1 |        0
+   2 |        2 |    3 |   -1 |    0 |        1
+(2 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, ARRAY[3],
+    FALSE     
+);
+ seq | path_seq | end_vid | node | edge | cost | agg_cost 
+-----+----------+---------+------+------+------+----------
+   1 |        1 |       3 |    2 |    2 |    1 |        0
+   2 |        2 |       3 |    3 |   -1 |    0 |        1
+(2 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2], 3,
+    FALSE
+);
+ seq | path_seq | start_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+------+------+------+----------
+   1 |        1 |         2 |    2 |    2 |    1 |        0
+   2 |        2 |         2 |    3 |   -1 |    0 |        1
+(2 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2], ARRAY[3],
+    FALSE
+);
+ seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+---------+------+------+------+----------
+   1 |        1 |         2 |       3 |    2 |    2 |    1 |        0
+   2 |        2 |         2 |       3 |    3 |   -1 |    0 |        1
+(2 rows)
+
+-- q18
+ROLLBACK;
+ROLLBACK
diff --git a/src/dijkstra/doc/doc-pgr_dijkstraCost.queries b/doc/queries/doc-pgr_dijkstraCost.queries
similarity index 100%
rename from src/dijkstra/doc/doc-pgr_dijkstraCost.queries
rename to doc/queries/doc-pgr_dijkstraCost.queries
diff --git a/src/dijkstra/doc/doc-pgr_dijkstraVia.queries b/doc/queries/doc-pgr_dijkstraVia.queries
similarity index 100%
rename from src/dijkstra/doc/doc-pgr_dijkstraVia.queries
rename to doc/queries/doc-pgr_dijkstraVia.queries
diff --git a/doc/queries/doc-pgr_drivingDistance.queries b/doc/queries/doc-pgr_drivingDistance.queries
new file mode 100644
index 0000000..83759bf
--- /dev/null
+++ b/doc/queries/doc-pgr_drivingDistance.queries
@@ -0,0 +1,312 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+--q1
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+        2, 3
+      );
+ seq | node | edge | cost | agg_cost 
+-----+------+------+------+----------
+   1 |    2 |   -1 |    0 |        0
+   2 |    1 |    1 |    1 |        1
+   3 |    5 |    4 |    1 |        1
+   4 |    6 |    8 |    1 |        2
+   5 |    8 |    7 |    1 |        2
+   6 |   10 |   10 |    1 |        2
+   7 |    7 |    6 |    1 |        3
+   8 |    9 |    9 |    1 |        3
+   9 |   11 |   12 |    1 |        3
+  10 |   13 |   14 |    1 |        3
+(10 rows)
+
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+        13, 3
+      );
+ seq | node | edge | cost | agg_cost 
+-----+------+------+------+----------
+   1 |   13 |   -1 |    0 |        0
+   2 |   10 |   14 |    1 |        1
+   3 |    5 |   10 |    1 |        2
+   4 |   11 |   12 |    1 |        2
+   5 |    2 |    4 |    1 |        3
+   6 |    6 |    8 |    1 |        3
+   7 |    8 |    7 |    1 |        3
+   8 |   12 |   13 |    1 |        3
+(8 rows)
+
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+        array[2,13], 3
+      );
+ seq | from_v | node | edge | cost | agg_cost 
+-----+--------+------+------+------+----------
+   1 |      2 |    2 |   -1 |    0 |        0
+   2 |      2 |    1 |    1 |    1 |        1
+   3 |      2 |    5 |    4 |    1 |        1
+   4 |      2 |    6 |    8 |    1 |        2
+   5 |      2 |    8 |    7 |    1 |        2
+   6 |      2 |   10 |   10 |    1 |        2
+   7 |      2 |    7 |    6 |    1 |        3
+   8 |      2 |    9 |    9 |    1 |        3
+   9 |      2 |   11 |   12 |    1 |        3
+  10 |      2 |   13 |   14 |    1 |        3
+  11 |     13 |   13 |   -1 |    0 |        0
+  12 |     13 |   10 |   14 |    1 |        1
+  13 |     13 |    5 |   10 |    1 |        2
+  14 |     13 |   11 |   12 |    1 |        2
+  15 |     13 |    2 |    4 |    1 |        3
+  16 |     13 |    6 |    8 |    1 |        3
+  17 |     13 |    8 |    7 |    1 |        3
+  18 |     13 |   12 |   13 |    1 |        3
+(18 rows)
+
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+        array[2,13], 3, equicost:=true
+      );
+ seq | from_v | node | edge | cost | agg_cost 
+-----+--------+------+------+------+----------
+   1 |      2 |    2 |   -1 |    0 |        0
+   2 |      2 |    1 |    1 |    1 |        1
+   3 |      2 |    5 |    4 |    1 |        1
+   4 |      2 |    6 |    8 |    1 |        2
+   5 |      2 |    8 |    7 |    1 |        2
+   6 |      2 |    7 |    6 |    1 |        3
+   7 |      2 |    9 |    9 |    1 |        3
+   8 |     13 |   13 |   -1 |    0 |        0
+   9 |     13 |   10 |   14 |    1 |        1
+  10 |     13 |   11 |   12 |    1 |        2
+  11 |     13 |   12 |   13 |    1 |        3
+(11 rows)
+
+--q2
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+        2, 3, false
+      );
+ seq | node | edge | cost | agg_cost 
+-----+------+------+------+----------
+   1 |    2 |   -1 |    0 |        0
+   2 |    1 |    1 |    1 |        1
+   3 |    3 |    2 |    1 |        1
+   4 |    5 |    4 |    1 |        1
+   5 |    4 |    3 |    1 |        2
+   6 |    6 |    8 |    1 |        2
+   7 |    8 |    7 |    1 |        2
+   8 |   10 |   10 |    1 |        2
+   9 |    7 |    6 |    1 |        3
+  10 |    9 |   16 |    1 |        3
+  11 |   11 |   12 |    1 |        3
+  12 |   13 |   14 |    1 |        3
+(12 rows)
+
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+        13, 3, false
+      );
+ seq | node | edge | cost | agg_cost 
+-----+------+------+------+----------
+   1 |   13 |   -1 |    0 |        0
+   2 |   10 |   14 |    1 |        1
+   3 |    5 |   10 |    1 |        2
+   4 |   11 |   12 |    1 |        2
+   5 |    2 |    4 |    1 |        3
+   6 |    6 |    8 |    1 |        3
+   7 |    8 |    7 |    1 |        3
+   8 |   12 |   13 |    1 |        3
+(8 rows)
+
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+        array[2,13], 3, false
+      );
+ seq | from_v | node | edge | cost | agg_cost 
+-----+--------+------+------+------+----------
+   1 |      2 |    2 |   -1 |    0 |        0
+   2 |      2 |    1 |    1 |    1 |        1
+   3 |      2 |    3 |    2 |    1 |        1
+   4 |      2 |    5 |    4 |    1 |        1
+   5 |      2 |    4 |    3 |    1 |        2
+   6 |      2 |    6 |    8 |    1 |        2
+   7 |      2 |    8 |    7 |    1 |        2
+   8 |      2 |   10 |   10 |    1 |        2
+   9 |      2 |    7 |    6 |    1 |        3
+  10 |      2 |    9 |   16 |    1 |        3
+  11 |      2 |   11 |   12 |    1 |        3
+  12 |      2 |   13 |   14 |    1 |        3
+  13 |     13 |   13 |   -1 |    0 |        0
+  14 |     13 |   10 |   14 |    1 |        1
+  15 |     13 |    5 |   10 |    1 |        2
+  16 |     13 |   11 |   12 |    1 |        2
+  17 |     13 |    2 |    4 |    1 |        3
+  18 |     13 |    6 |    8 |    1 |        3
+  19 |     13 |    8 |    7 |    1 |        3
+  20 |     13 |   12 |   13 |    1 |        3
+(20 rows)
+
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+        array[2,13], 3, false, equicost:=true
+      );
+ seq | from_v | node | edge | cost | agg_cost 
+-----+--------+------+------+------+----------
+   1 |      2 |    2 |   -1 |    0 |        0
+   2 |      2 |    1 |    1 |    1 |        1
+   3 |      2 |    3 |    2 |    1 |        1
+   4 |      2 |    5 |    4 |    1 |        1
+   5 |      2 |    4 |    3 |    1 |        2
+   6 |      2 |    6 |    8 |    1 |        2
+   7 |      2 |    8 |    7 |    1 |        2
+   8 |      2 |    7 |    6 |    1 |        3
+   9 |      2 |    9 |   16 |    1 |        3
+  10 |     13 |   13 |   -1 |    0 |        0
+  11 |     13 |   10 |   14 |    1 |        1
+  12 |     13 |   11 |   12 |    1 |        2
+  13 |     13 |   12 |   13 |    1 |        3
+(13 rows)
+
+--q3
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost FROM edge_table',
+        2, 3
+      );
+ seq | node | edge | cost | agg_cost 
+-----+------+------+------+----------
+   1 |    2 |   -1 |    0 |        0
+   2 |    5 |    4 |    1 |        1
+   3 |    6 |    8 |    1 |        2
+   4 |   10 |   10 |    1 |        2
+   5 |    9 |    9 |    1 |        3
+   6 |   11 |   11 |    1 |        3
+   7 |   13 |   14 |    1 |        3
+(7 rows)
+
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost FROM edge_table',
+        13, 3
+      );
+ seq | node | edge | cost | agg_cost 
+-----+------+------+------+----------
+   1 |   13 |   -1 |    0 |        0
+(1 row)
+
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost FROM edge_table',
+        array[2,13], 3
+      );
+ seq | from_v | node | edge | cost | agg_cost 
+-----+--------+------+------+------+----------
+   1 |      2 |    2 |   -1 |    0 |        0
+   2 |      2 |    5 |    4 |    1 |        1
+   3 |      2 |    6 |    8 |    1 |        2
+   4 |      2 |   10 |   10 |    1 |        2
+   5 |      2 |    9 |    9 |    1 |        3
+   6 |      2 |   11 |   11 |    1 |        3
+   7 |      2 |   13 |   14 |    1 |        3
+   8 |     13 |   13 |   -1 |    0 |        0
+(8 rows)
+
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost FROM edge_table',
+        array[2,13], 3, equicost:=true
+      );
+ seq | from_v | node | edge | cost | agg_cost 
+-----+--------+------+------+------+----------
+   1 |      2 |    2 |   -1 |    0 |        0
+   2 |      2 |    5 |    4 |    1 |        1
+   3 |      2 |    6 |    8 |    1 |        2
+   4 |      2 |   10 |   10 |    1 |        2
+   5 |      2 |    9 |    9 |    1 |        3
+   6 |      2 |   11 |   11 |    1 |        3
+   7 |     13 |   13 |   -1 |    0 |        0
+(7 rows)
+
+--q4
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost FROM edge_table',
+        2, 3, false
+      );
+ seq | node | edge | cost | agg_cost 
+-----+------+------+------+----------
+   1 |    2 |   -1 |    0 |        0
+   2 |    1 |    1 |    1 |        1
+   3 |    5 |    4 |    1 |        1
+   4 |    6 |    8 |    1 |        2
+   5 |    8 |    7 |    1 |        2
+   6 |   10 |   10 |    1 |        2
+   7 |    3 |    5 |    1 |        3
+   8 |    7 |    6 |    1 |        3
+   9 |    9 |    9 |    1 |        3
+  10 |   11 |   12 |    1 |        3
+  11 |   13 |   14 |    1 |        3
+(11 rows)
+
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost FROM edge_table',
+        13, 3, false
+      );
+ seq | node | edge | cost | agg_cost 
+-----+------+------+------+----------
+   1 |   13 |   -1 |    0 |        0
+   2 |   10 |   14 |    1 |        1
+   3 |    5 |   10 |    1 |        2
+   4 |   11 |   12 |    1 |        2
+   5 |    2 |    4 |    1 |        3
+   6 |    6 |    8 |    1 |        3
+   7 |    8 |    7 |    1 |        3
+   8 |   12 |   13 |    1 |        3
+(8 rows)
+
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost FROM edge_table',
+        array[2,13], 3, false
+      );
+ seq | from_v | node | edge | cost | agg_cost 
+-----+--------+------+------+------+----------
+   1 |      2 |    2 |   -1 |    0 |        0
+   2 |      2 |    1 |    1 |    1 |        1
+   3 |      2 |    5 |    4 |    1 |        1
+   4 |      2 |    6 |    8 |    1 |        2
+   5 |      2 |    8 |    7 |    1 |        2
+   6 |      2 |   10 |   10 |    1 |        2
+   7 |      2 |    3 |    5 |    1 |        3
+   8 |      2 |    7 |    6 |    1 |        3
+   9 |      2 |    9 |    9 |    1 |        3
+  10 |      2 |   11 |   12 |    1 |        3
+  11 |      2 |   13 |   14 |    1 |        3
+  12 |     13 |   13 |   -1 |    0 |        0
+  13 |     13 |   10 |   14 |    1 |        1
+  14 |     13 |    5 |   10 |    1 |        2
+  15 |     13 |   11 |   12 |    1 |        2
+  16 |     13 |    2 |    4 |    1 |        3
+  17 |     13 |    6 |    8 |    1 |        3
+  18 |     13 |    8 |    7 |    1 |        3
+  19 |     13 |   12 |   13 |    1 |        3
+(19 rows)
+
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost FROM edge_table',
+        array[2,13], 3, false, equicost:=true
+      );
+ seq | from_v | node | edge | cost | agg_cost 
+-----+--------+------+------+------+----------
+   1 |      2 |    2 |   -1 |    0 |        0
+   2 |      2 |    1 |    1 |    1 |        1
+   3 |      2 |    5 |    4 |    1 |        1
+   4 |      2 |    6 |    8 |    1 |        2
+   5 |      2 |    8 |    7 |    1 |        2
+   6 |      2 |    3 |    5 |    1 |        3
+   7 |      2 |    7 |    6 |    1 |        3
+   8 |      2 |    9 |    9 |    1 |        3
+   9 |     13 |   13 |   -1 |    0 |        0
+  10 |     13 |   10 |   14 |    1 |        1
+  11 |     13 |   11 |   12 |    1 |        2
+  12 |     13 |   12 |   13 |    1 |        3
+(12 rows)
+
+--q5
+ROLLBACK;
+ROLLBACK
diff --git a/doc/queries/doc-pgr_edgeDisjointPaths.queries b/doc/queries/doc-pgr_edgeDisjointPaths.queries
new file mode 100644
index 0000000..be2f812
--- /dev/null
+++ b/doc/queries/doc-pgr_edgeDisjointPaths.queries
@@ -0,0 +1,128 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_edgeDisjointPaths(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    3, 5
+);
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |    3 |    2 |    1 |        0
+   2 |       1 |        2 |    2 |    4 |    1 |        1
+   3 |       1 |        3 |    5 |   -1 |    0 |        2
+   4 |       2 |        1 |    3 |    5 |    1 |        0
+   5 |       2 |        2 |    6 |    8 |    1 |        1
+   6 |       2 |        3 |    5 |   -1 |    0 |        2
+(6 rows)
+
+-- q2
+SELECT * FROM pgr_edgeDisjointPaths(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    3, 5,
+    directed := false
+);
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |    3 |    2 |    1 |        0
+   2 |       1 |        2 |    2 |    4 |    1 |        1
+   3 |       1 |        3 |    5 |   -1 |    0 |        2
+   4 |       2 |        1 |    3 |    3 |   -1 |        0
+   5 |       2 |        2 |    4 |   16 |    1 |       -1
+   6 |       2 |        3 |    9 |    9 |    1 |        0
+   7 |       2 |        4 |    6 |    8 |    1 |        1
+   8 |       2 |        5 |    5 |   -1 |    0 |        2
+   9 |       3 |        1 |    3 |    5 |    1 |        0
+  10 |       3 |        2 |    6 |   11 |    1 |        1
+  11 |       3 |        3 |   11 |   12 |   -1 |        2
+  12 |       3 |        4 |   10 |   10 |    1 |        1
+  13 |       3 |        5 |    5 |   -1 |    0 |        2
+(13 rows)
+
+-- q3
+SELECT * FROM pgr_edgeDisjointPaths(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    3, ARRAY[4, 5, 10]
+);
+ seq | path_id | path_seq | end_vid | node | edge | cost | agg_cost 
+-----+---------+----------+---------+------+------+------+----------
+   1 |       1 |        1 |       4 |    3 |    5 |    1 |        0
+   2 |       1 |        2 |       4 |    6 |    9 |    1 |        1
+   3 |       1 |        3 |       4 |    9 |   16 |    1 |        2
+   4 |       1 |        4 |       4 |    4 |   -1 |    0 |        3
+   5 |       2 |        1 |       5 |    3 |    2 |    1 |        0
+   6 |       2 |        2 |       5 |    2 |    4 |    1 |        1
+   7 |       2 |        3 |       5 |    5 |   -1 |    0 |        2
+   8 |       3 |        1 |       5 |    3 |    5 |    1 |        0
+   9 |       3 |        2 |       5 |    6 |    8 |    1 |        1
+  10 |       3 |        3 |       5 |    5 |   -1 |    0 |        2
+  11 |       4 |        1 |      10 |    3 |    2 |    1 |        0
+  12 |       4 |        2 |      10 |    2 |    4 |    1 |        1
+  13 |       4 |        3 |      10 |    5 |   10 |    1 |        2
+  14 |       4 |        4 |      10 |   10 |   -1 |    0 |        3
+(14 rows)
+
+-- q4
+SELECT * FROM pgr_edgeDisjointPaths(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[3, 6], 5
+);
+ seq | path_id | path_seq | start_vid | node | edge | cost | agg_cost 
+-----+---------+----------+-----------+------+------+------+----------
+   1 |       1 |        1 |         0 |    3 |    2 |    1 |        0
+   2 |       1 |        2 |         0 |    2 |    4 |    1 |        1
+   3 |       1 |        3 |         0 |    5 |   -1 |    0 |        2
+   4 |       2 |        1 |         1 |    3 |    5 |    1 |        0
+   5 |       2 |        2 |         1 |    6 |    8 |    1 |        1
+   6 |       2 |        3 |         1 |    5 |   -1 |    0 |        2
+   7 |       3 |        1 |         2 |    6 |    8 |    1 |        0
+   8 |       3 |        2 |         2 |    5 |   -1 |    0 |        1
+   9 |       4 |        1 |         3 |    6 |    9 |    1 |        0
+  10 |       4 |        2 |         3 |    9 |   16 |    1 |        1
+  11 |       4 |        3 |         3 |    4 |    3 |    1 |        2
+  12 |       4 |        4 |         3 |    3 |    2 |    1 |        3
+  13 |       4 |        5 |         3 |    2 |    4 |    1 |        4
+  14 |       4 |        6 |         3 |    5 |   -1 |    0 |        5
+(14 rows)
+
+-- q5
+SELECT * FROM pgr_edgeDisjointPaths(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[3, 6], ARRAY[4, 5, 10]
+);
+ seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
+-----+---------+----------+-----------+---------+------+------+------+----------
+   1 |       1 |        1 |         0 |       4 |    3 |    5 |    1 |        0
+   2 |       1 |        2 |         0 |       4 |    6 |    9 |    1 |        1
+   3 |       1 |        3 |         0 |       4 |    9 |   16 |    1 |        2
+   4 |       1 |        4 |         0 |       4 |    4 |   -1 |    0 |        3
+   5 |       2 |        1 |         1 |       5 |    3 |    2 |    1 |        0
+   6 |       2 |        2 |         1 |       5 |    2 |    4 |    1 |        1
+   7 |       2 |        3 |         1 |       5 |    5 |   -1 |    0 |        2
+   8 |       3 |        1 |         2 |       5 |    3 |    5 |    1 |        0
+   9 |       3 |        2 |         2 |       5 |    6 |    8 |    1 |        1
+  10 |       3 |        3 |         2 |       5 |    5 |   -1 |    0 |        2
+  11 |       4 |        1 |         3 |      10 |    3 |    2 |    1 |        0
+  12 |       4 |        2 |         3 |      10 |    2 |    4 |    1 |        1
+  13 |       4 |        3 |         3 |      10 |    5 |   10 |    1 |        2
+  14 |       4 |        4 |         3 |      10 |   10 |   -1 |    0 |        3
+  15 |       5 |        1 |         4 |       4 |    6 |    9 |    1 |        0
+  16 |       5 |        2 |         4 |       4 |    9 |   16 |    1 |        1
+  17 |       5 |        3 |         4 |       4 |    4 |   -1 |    0 |        2
+  18 |       6 |        1 |         5 |       5 |    6 |    8 |    1 |        0
+  19 |       6 |        2 |         5 |       5 |    5 |   -1 |    0 |        1
+  20 |       7 |        1 |         6 |       5 |    6 |    9 |    1 |        0
+  21 |       7 |        2 |         6 |       5 |    9 |   16 |    1 |        1
+  22 |       7 |        3 |         6 |       5 |    4 |    3 |    1 |        2
+  23 |       7 |        4 |         6 |       5 |    3 |    2 |    1 |        3
+  24 |       7 |        5 |         6 |       5 |    2 |    4 |    1 |        4
+  25 |       7 |        6 |         6 |       5 |    5 |   -1 |    0 |        5
+  26 |       8 |        1 |         7 |      10 |    6 |    8 |    1 |        0
+  27 |       8 |        2 |         7 |      10 |    5 |   10 |    1 |        1
+  28 |       8 |        3 |         7 |      10 |   10 |   -1 |    0 |        2
+(28 rows)
+
+-- q6
+ROLLBACK;
+ROLLBACK
diff --git a/doc/queries/doc-pgr_edmondsKarp.queries b/doc/queries/doc-pgr_edmondsKarp.queries
new file mode 100644
index 0000000..c24d3bf
--- /dev/null
+++ b/doc/queries/doc-pgr_edmondsKarp.queries
@@ -0,0 +1,90 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_edmondsKarp(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , 6, 11
+);
+ seq | edge | start_vid | end_vid | flow | residual_capacity 
+-----+------+-----------+---------+------+-------------------
+   1 |   10 |         5 |      10 |  100 |                30
+   2 |    8 |         6 |       5 |  100 |                30
+   3 |   11 |         6 |      11 |  130 |                 0
+   4 |   12 |        10 |      11 |  100 |                 0
+(4 rows)
+
+-- q2
+SELECT * FROM pgr_edmondsKarp(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+   , 6, ARRAY[1, 3, 11]
+);
+ seq | edge | start_vid | end_vid | flow | residual_capacity 
+-----+------+-----------+---------+------+-------------------
+   1 |    1 |         2 |       1 |   50 |                80
+   2 |    3 |         4 |       3 |   80 |                50
+   3 |    4 |         5 |       2 |   50 |                 0
+   4 |   10 |         5 |      10 |   80 |                50
+   5 |    8 |         6 |       5 |  130 |                 0
+   6 |    9 |         6 |       9 |   80 |                50
+   7 |   11 |         6 |      11 |  130 |                 0
+   8 |   16 |         9 |       4 |   80 |                 0
+   9 |   12 |        10 |      11 |   80 |                20
+(9 rows)
+
+-- q3
+SELECT * FROM pgr_edmondsKarp(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+   , ARRAY[6, 8, 12], 11
+);
+ seq | edge | start_vid | end_vid | flow | residual_capacity 
+-----+------+-----------+---------+------+-------------------
+   1 |   10 |         5 |      10 |  100 |                30
+   2 |    8 |         6 |       5 |  100 |                30
+   3 |   11 |         6 |      11 |  130 |                 0
+   4 |   12 |        10 |      11 |  100 |                 0
+(4 rows)
+
+-- q4
+SELECT * FROM pgr_edmondsKarp(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+   , ARRAY[6, 8, 12], ARRAY[1, 3, 11]
+);
+ seq | edge | start_vid | end_vid | flow | residual_capacity 
+-----+------+-----------+---------+------+-------------------
+   1 |    1 |         2 |       1 |   50 |                80
+   2 |    3 |         4 |       3 |   80 |                50
+   3 |    4 |         5 |       2 |   50 |                 0
+   4 |   10 |         5 |      10 |  100 |                30
+   5 |    8 |         6 |       5 |  130 |                 0
+   6 |    9 |         6 |       9 |   80 |                50
+   7 |   11 |         6 |      11 |  130 |                 0
+   8 |    7 |         8 |       5 |   20 |                30
+   9 |   16 |         9 |       4 |   80 |                 0
+  10 |   12 |        10 |      11 |  100 |                 0
+(10 rows)
+
+-- q5
+ROLLBACK;
+ROLLBACK
diff --git a/src/tsp/doc/doc-pgr_eucledianTSP.queries b/doc/queries/doc-pgr_eucledianTSP.queries
similarity index 100%
rename from src/tsp/doc/doc-pgr_eucledianTSP.queries
rename to doc/queries/doc-pgr_eucledianTSP.queries
diff --git a/doc/queries/doc-pgr_fooDmatrix.queries b/doc/queries/doc-pgr_fooDmatrix.queries
new file mode 100644
index 0000000..7c96952
--- /dev/null
+++ b/doc/queries/doc-pgr_fooDmatrix.queries
@@ -0,0 +1,324 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- dijkstra q1
+SELECT * FROM pgr_dijkstraCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5)
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         1 |       2 |        1
+         1 |       3 |        6
+         1 |       4 |        5
+         2 |       1 |        1
+         2 |       3 |        5
+         2 |       4 |        4
+         3 |       1 |        2
+         3 |       2 |        1
+         3 |       4 |        3
+         4 |       1 |        3
+         4 |       2 |        2
+         4 |       3 |        1
+(12 rows)
+
+-- dijkstra q2
+SELECT * FROM pgr_dijkstraCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+    false
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         1 |       2 |        1
+         1 |       3 |        2
+         1 |       4 |        3
+         2 |       1 |        1
+         2 |       3 |        1
+         2 |       4 |        2
+         3 |       1 |        2
+         3 |       2 |        1
+         3 |       4 |        1
+         4 |       1 |        3
+         4 |       2 |        2
+         4 |       3 |        1
+(12 rows)
+
+-- dijkstra q3
+SELECT * FROM pgr_TSP(
+    $$
+    SELECT * FROM pgr_dijkstraCostMatrix(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+        (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+        false
+    )
+    $$,
+    randomize := false
+);
+ seq | node | cost | agg_cost 
+-----+------+------+----------
+   1 |    1 |    1 |        0
+   2 |    2 |    1 |        1
+   3 |    3 |    1 |        2
+   4 |    4 |    3 |        3
+   5 |    1 |    0 |        6
+(5 rows)
+
+-- dijkstra q4
+-- withPoints q1
+SELECT * FROM pgr_withPointsCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction from pointsOfInterest',
+    array[-1, 3, 6, -6]);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+        -6 |      -1 |      1.3
+        -6 |       3 |      4.3
+        -6 |       6 |      1.3
+        -1 |      -6 |      1.3
+        -1 |       3 |      5.6
+        -1 |       6 |      2.6
+         3 |      -6 |      1.7
+         3 |      -1 |      1.6
+         3 |       6 |        1
+         6 |      -6 |      1.3
+         6 |      -1 |      2.6
+         6 |       3 |        3
+(12 rows)
+
+-- withPoints q2
+SELECT * FROM pgr_withPointsCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction from pointsOfInterest',
+    array[-1, 3, 6, -6], directed := false);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+        -6 |      -1 |      1.3
+        -6 |       3 |      1.7
+        -6 |       6 |      1.3
+        -1 |      -6 |      1.3
+        -1 |       3 |      1.6
+        -1 |       6 |      2.6
+         3 |      -6 |      1.7
+         3 |      -1 |      1.6
+         3 |       6 |        1
+         6 |      -6 |      1.3
+         6 |      -1 |      2.6
+         6 |       3 |        1
+(12 rows)
+
+-- withPoints q3
+SELECT * FROM pgr_TSP(
+    $$
+    SELECT * FROM pgr_withPointsCostMatrix(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+        'SELECT pid, edge_id, fraction from pointsOfInterest',
+        array[-1, 3, 6, -6], directed := false);
+    $$,
+    randomize := false
+);
+ seq | node | cost | agg_cost 
+-----+------+------+----------
+   1 |   -6 |  1.3 |        0
+   2 |   -1 |  1.6 |      1.3
+   3 |    3 |    1 |      2.9
+   4 |    6 |  1.3 |      3.9
+   5 |   -6 |    0 |      5.2
+(5 rows)
+
+-- withPoints q4
+-- astar q1
+SELECT * FROM pgr_aStarCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5)
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       1 |        1
+         3 |       1 |        2
+         4 |       1 |        3
+         1 |       2 |        1
+         3 |       2 |        1
+         4 |       2 |        2
+         1 |       3 |        6
+         2 |       3 |        5
+         4 |       3 |        1
+         1 |       4 |        5
+         2 |       4 |        4
+         3 |       4 |        3
+(12 rows)
+
+-- astar q2
+SELECT * FROM pgr_aStarCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+    directed := false, heuristic := 2
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       1 |        1
+         3 |       1 |        2
+         4 |       1 |        3
+         1 |       2 |        1
+         3 |       2 |        1
+         4 |       2 |        2
+         1 |       3 |        2
+         2 |       3 |        1
+         4 |       3 |        1
+         1 |       4 |        3
+         2 |       4 |        2
+         3 |       4 |        1
+(12 rows)
+
+-- astar q3
+SELECT * FROM pgr_TSP(
+    $$
+    SELECT * FROM pgr_aStarCostMatrix(
+        'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+        (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+        directed:= false, heuristic := 2
+    )
+    $$,
+    randomize := false
+);
+ seq | node | cost | agg_cost 
+-----+------+------+----------
+   1 |    1 |    1 |        0
+   2 |    2 |    1 |        1
+   3 |    3 |    1 |        2
+   4 |    4 |    3 |        3
+   5 |    1 |    0 |        6
+(5 rows)
+
+-- astar q4
+-- bdDijkstra q1
+SELECT * FROM pgr_bdDijkstraCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5)
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         1 |       2 |        1
+         1 |       3 |        6
+         1 |       4 |        5
+         2 |       1 |        1
+         2 |       3 |        5
+         2 |       4 |        4
+         3 |       1 |        2
+         3 |       2 |        1
+         3 |       4 |        3
+         4 |       1 |        3
+         4 |       2 |        2
+         4 |       3 |        1
+(12 rows)
+
+-- bdDijkstra q2
+SELECT * FROM pgr_bdDijkstraCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+    false
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         1 |       2 |        1
+         1 |       3 |        2
+         1 |       4 |        3
+         2 |       1 |        1
+         2 |       3 |        1
+         2 |       4 |        2
+         3 |       1 |        2
+         3 |       2 |        1
+         3 |       4 |        1
+         4 |       1 |        3
+         4 |       2 |        2
+         4 |       3 |        1
+(12 rows)
+
+-- bdDijkstra q3
+SELECT * FROM pgr_TSP(
+    $$
+    SELECT * FROM pgr_bdDijkstraCostMatrix(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+        (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+        false
+    )
+    $$,
+    randomize := false
+);
+ seq | node | cost | agg_cost 
+-----+------+------+----------
+   1 |    1 |    1 |        0
+   2 |    2 |    1 |        1
+   3 |    3 |    1 |        2
+   4 |    4 |    3 |        3
+   5 |    1 |    0 |        6
+(5 rows)
+
+-- bdDijkstra q4
+-- bdAstar q1
+SELECT * FROM pgr_bdAstarCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5)
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         1 |       2 |        1
+         1 |       3 |        6
+         1 |       4 |        5
+         2 |       1 |        1
+         2 |       3 |        5
+         2 |       4 |        4
+         3 |       1 |        2
+         3 |       2 |        1
+         3 |       4 |        3
+         4 |       1 |        3
+         4 |       2 |        2
+         4 |       3 |        1
+(12 rows)
+
+-- bdAstar q2
+SELECT * FROM pgr_bdAstarCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+    false
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         1 |       2 |        1
+         1 |       3 |        2
+         1 |       4 |        3
+         2 |       1 |        1
+         2 |       3 |        1
+         2 |       4 |        2
+         3 |       1 |        2
+         3 |       2 |        1
+         3 |       4 |        1
+         4 |       1 |        3
+         4 |       2 |        2
+         4 |       3 |        1
+(12 rows)
+
+-- bdAstar q3
+SELECT * FROM pgr_TSP(
+    $$
+    SELECT * FROM pgr_bdAstarCostMatrix(
+        'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+        (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+        false
+    )
+    $$,
+    randomize := false
+);
+ seq | node | cost | agg_cost 
+-----+------+------+----------
+   1 |    1 |    1 |        0
+   2 |    2 |    1 |        1
+   3 |    3 |    1 |        2
+   4 |    4 |    3 |        3
+   5 |    1 |    0 |        6
+(5 rows)
+
+-- bdAstar q4
+ROLLBACK;
+ROLLBACK
diff --git a/doc/queries/doc-pgr_labelGraph.queries b/doc/queries/doc-pgr_labelGraph.queries
new file mode 100644
index 0000000..34f18d2
--- /dev/null
+++ b/doc/queries/doc-pgr_labelGraph.queries
@@ -0,0 +1,24 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+--q1
+SET client_min_messages TO WARNING;
+SET
+SELECT pgr_labelGraph('edge_table', 'id', 'source', 'target', 'subgraph');
+ pgr_labelgraph 
+----------------
+ OK
+(1 row)
+
+SELECT DISTINCT subgraph FROM edge_table ORDER BY subgraph;
+ subgraph 
+----------
+        1
+        2
+        3
+(3 rows)
+
+--q2
+ROLLBACK;
+ROLLBACK
diff --git a/doc/queries/doc-pgr_lineGraph.queries b/doc/queries/doc-pgr_lineGraph.queries
new file mode 100644
index 0000000..d6744bd
--- /dev/null
+++ b/doc/queries/doc-pgr_lineGraph.queries
@@ -0,0 +1,210 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_lineGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
+ seq | source | target | cost | reverse_cost 
+-----+--------+--------+------+--------------
+   1 |    -16 |     -3 |    1 |           -1
+   2 |    -15 |     -9 |    1 |            1
+   3 |    -14 |    -10 |    1 |            1
+   4 |    -14 |     12 |    1 |           -1
+   5 |    -10 |     -7 |    1 |            1
+   6 |    -10 |     -4 |    1 |            1
+   7 |    -10 |      8 |    1 |            1
+   8 |     -9 |     -8 |    1 |            1
+   9 |     -9 |     11 |    1 |           -1
+  10 |     -8 |     -7 |    1 |            1
+  11 |     -8 |     -4 |    1 |            1
+  12 |     -7 |     -6 |    1 |            1
+  13 |     -4 |     -1 |    1 |            1
+  14 |     -3 |     -2 |    1 |           -1
+  15 |     -3 |      5 |    1 |           -1
+  16 |     -2 |     -1 |    1 |           -1
+  17 |     -2 |      4 |    1 |           -1
+  18 |      5 |     -8 |    1 |           -1
+  19 |      5 |      9 |    1 |           -1
+  20 |      5 |     11 |    1 |           -1
+  21 |      7 |     -4 |    1 |            1
+  22 |      8 |     11 |    1 |           -1
+  23 |     10 |     12 |    1 |           -1
+  24 |     11 |     13 |    1 |           -1
+  25 |     12 |     13 |    1 |           -1
+  26 |     13 |    -15 |    1 |           -1
+  27 |     16 |     -9 |    1 |            1
+  28 |     16 |     15 |    1 |            1
+(28 rows)
+
+-- q2
+SELECT * FROM pgr_lineGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    FALSE
+);
+ seq | source | target | cost | reverse_cost 
+-----+--------+--------+------+--------------
+   1 |     -2 |     -1 |    1 |           -1
+   2 |     -4 |     -1 |    1 |           -1
+   3 |      4 |     -1 |    1 |           -1
+   4 |      1 |      4 |    1 |           -1
+   5 |     -2 |      4 |    1 |           -1
+   6 |     -1 |      4 |    1 |           -1
+   7 |     -2 |      1 |    1 |           -1
+   8 |     -4 |      1 |    1 |           -1
+   9 |      4 |      1 |    1 |           -1
+  10 |      1 |     -2 |    1 |           -1
+  11 |     -4 |     -2 |    1 |           -1
+  12 |     -1 |     -2 |    1 |           -1
+  13 |      4 |     -2 |    1 |           -1
+  14 |      1 |     -4 |    1 |           -1
+  15 |     -2 |     -4 |    1 |           -1
+  16 |     -1 |     -4 |    1 |           -1
+  17 |     -3 |     -2 |    1 |           -1
+  18 |      5 |     -2 |    1 |           -1
+  19 |     -3 |      5 |    1 |           -1
+  20 |     -2 |      5 |    1 |           -1
+  21 |     -2 |     -3 |    1 |           -1
+  22 |      5 |     -3 |    1 |           -1
+  23 |    -16 |     -3 |    1 |           -1
+  24 |     16 |     -3 |    1 |           -1
+  25 |     -3 |     16 |    1 |           -1
+  26 |     -3 |    -16 |    1 |           -1
+  27 |      7 |     -4 |    1 |           -1
+  28 |     -8 |     -4 |    1 |           -1
+  29 |    -10 |     -4 |    1 |           -1
+  30 |     -7 |     -4 |    1 |           -1
+  31 |      8 |     -4 |    1 |           -1
+  32 |     10 |     -4 |    1 |           -1
+  33 |      4 |     -7 |    1 |           -1
+  34 |     -8 |     -7 |    1 |           -1
+  35 |    -10 |     -7 |    1 |           -1
+  36 |     -4 |     -7 |    1 |           -1
+  37 |      8 |     -7 |    1 |           -1
+  38 |     10 |     -7 |    1 |           -1
+  39 |      4 |      8 |    1 |           -1
+  40 |      7 |      8 |    1 |           -1
+  41 |    -10 |      8 |    1 |           -1
+  42 |     -4 |      8 |    1 |           -1
+  43 |     -7 |      8 |    1 |           -1
+  44 |     10 |      8 |    1 |           -1
+  45 |      4 |     10 |    1 |           -1
+  46 |      7 |     10 |    1 |           -1
+  47 |     -8 |     10 |    1 |           -1
+  48 |     -4 |     10 |    1 |           -1
+  49 |     -7 |     10 |    1 |           -1
+  50 |      8 |     10 |    1 |           -1
+  51 |      7 |      4 |    1 |           -1
+  52 |     -8 |      4 |    1 |           -1
+  53 |    -10 |      4 |    1 |           -1
+  54 |     -7 |      4 |    1 |           -1
+  55 |      8 |      4 |    1 |           -1
+  56 |     10 |      4 |    1 |           -1
+  57 |      4 |      7 |    1 |           -1
+  58 |     -8 |      7 |    1 |           -1
+  59 |    -10 |      7 |    1 |           -1
+  60 |     -4 |      7 |    1 |           -1
+  61 |      8 |      7 |    1 |           -1
+  62 |     10 |      7 |    1 |           -1
+  63 |      4 |     -8 |    1 |           -1
+  64 |      7 |     -8 |    1 |           -1
+  65 |    -10 |     -8 |    1 |           -1
+  66 |     -4 |     -8 |    1 |           -1
+  67 |     -7 |     -8 |    1 |           -1
+  68 |     10 |     -8 |    1 |           -1
+  69 |      4 |    -10 |    1 |           -1
+  70 |      7 |    -10 |    1 |           -1
+  71 |     -8 |    -10 |    1 |           -1
+  72 |     -4 |    -10 |    1 |           -1
+  73 |     -7 |    -10 |    1 |           -1
+  74 |      8 |    -10 |    1 |           -1
+  75 |      5 |     -8 |    1 |           -1
+  76 |     -9 |     -8 |    1 |           -1
+  77 |      9 |     -8 |    1 |           -1
+  78 |     11 |     -8 |    1 |           -1
+  79 |      5 |      9 |    1 |           -1
+  80 |      8 |      9 |    1 |           -1
+  81 |     -8 |      9 |    1 |           -1
+  82 |     11 |      9 |    1 |           -1
+  83 |      5 |     11 |    1 |           -1
+  84 |      8 |     11 |    1 |           -1
+  85 |     -9 |     11 |    1 |           -1
+  86 |     -8 |     11 |    1 |           -1
+  87 |      9 |     11 |    1 |           -1
+  88 |      8 |      5 |    1 |           -1
+  89 |     -9 |      5 |    1 |           -1
+  90 |     -8 |      5 |    1 |           -1
+  91 |      9 |      5 |    1 |           -1
+  92 |     11 |      5 |    1 |           -1
+  93 |      5 |      8 |    1 |           -1
+  94 |     -9 |      8 |    1 |           -1
+  95 |      9 |      8 |    1 |           -1
+  96 |     11 |      8 |    1 |           -1
+  97 |      5 |     -9 |    1 |           -1
+  98 |      8 |     -9 |    1 |           -1
+  99 |     -8 |     -9 |    1 |           -1
+ 100 |     11 |     -9 |    1 |           -1
+ 101 |     -7 |     -6 |    1 |           -1
+ 102 |      7 |     -6 |    1 |           -1
+ 103 |      6 |      7 |    1 |           -1
+ 104 |     -6 |      7 |    1 |           -1
+ 105 |     -7 |      6 |    1 |           -1
+ 106 |      7 |      6 |    1 |           -1
+ 107 |      6 |     -7 |    1 |           -1
+ 108 |     -6 |     -7 |    1 |           -1
+ 109 |    -15 |     -9 |    1 |           -1
+ 110 |     16 |     -9 |    1 |           -1
+ 111 |     15 |     -9 |    1 |           -1
+ 112 |    -16 |     -9 |    1 |           -1
+ 113 |      9 |     15 |    1 |           -1
+ 114 |     16 |     15 |    1 |           -1
+ 115 |     -9 |     15 |    1 |           -1
+ 116 |    -16 |     15 |    1 |           -1
+ 117 |      9 |    -16 |    1 |           -1
+ 118 |    -15 |    -16 |    1 |           -1
+ 119 |     -9 |    -16 |    1 |           -1
+ 120 |     15 |    -16 |    1 |           -1
+ 121 |    -15 |      9 |    1 |           -1
+ 122 |     16 |      9 |    1 |           -1
+ 123 |     15 |      9 |    1 |           -1
+ 124 |    -16 |      9 |    1 |           -1
+ 125 |      9 |    -15 |    1 |           -1
+ 126 |     16 |    -15 |    1 |           -1
+ 127 |     -9 |    -15 |    1 |           -1
+ 128 |    -16 |    -15 |    1 |           -1
+ 129 |      9 |     16 |    1 |           -1
+ 130 |    -15 |     16 |    1 |           -1
+ 131 |     -9 |     16 |    1 |           -1
+ 132 |     15 |     16 |    1 |           -1
+ 133 |    -14 |    -10 |    1 |           -1
+ 134 |     12 |    -10 |    1 |           -1
+ 135 |     14 |    -10 |    1 |           -1
+ 136 |     10 |     12 |    1 |           -1
+ 137 |    -14 |     12 |    1 |           -1
+ 138 |    -10 |     12 |    1 |           -1
+ 139 |     14 |     12 |    1 |           -1
+ 140 |     10 |     14 |    1 |           -1
+ 141 |    -10 |     14 |    1 |           -1
+ 142 |     12 |     14 |    1 |           -1
+ 143 |    -14 |     10 |    1 |           -1
+ 144 |     12 |     10 |    1 |           -1
+ 145 |     14 |     10 |    1 |           -1
+ 146 |     10 |    -14 |    1 |           -1
+ 147 |    -10 |    -14 |    1 |           -1
+ 148 |     12 |    -14 |    1 |           -1
+ 149 |     11 |     13 |    1 |           -1
+ 150 |     12 |     13 |    1 |           -1
+ 151 |     12 |     11 |    1 |           -1
+ 152 |     13 |     11 |    1 |           -1
+ 153 |     11 |     12 |    1 |           -1
+ 154 |     13 |     12 |    1 |           -1
+ 155 |     13 |    -15 |    1 |           -1
+ 156 |     15 |     13 |    1 |           -1
+ 157 |    -15 |     13 |    1 |           -1
+ 158 |     13 |     15 |    1 |           -1
+(158 rows)
+
+-- q3
+ROLLBACK;
+ROLLBACK
diff --git a/doc/queries/doc-pgr_maxCardinalityMatch.queries b/doc/queries/doc-pgr_maxCardinalityMatch.queries
new file mode 100644
index 0000000..feb0660
--- /dev/null
+++ b/doc/queries/doc-pgr_maxCardinalityMatch.queries
@@ -0,0 +1,40 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_maxCardinalityMatch(
+    'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table'
+);
+ seq | edge | source | target 
+-----+------+--------+--------
+   1 |    1 |      1 |      2
+   2 |    3 |      4 |      3
+   3 |    9 |      6 |      9
+   4 |    6 |      7 |      8
+   5 |   14 |     10 |     13
+   6 |   13 |     11 |     12
+   7 |   17 |     14 |     15
+   8 |   18 |     16 |     17
+(8 rows)
+
+-- q2
+SELECT * FROM pgr_maxCardinalityMatch(
+    'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table',
+    directed := false
+);
+ seq | edge | source | target 
+-----+------+--------+--------
+   1 |    1 |      1 |      2
+   2 |    3 |      3 |      4
+   3 |    9 |      6 |      9
+   4 |    6 |      7 |      8
+   5 |   14 |     10 |     13
+   6 |   13 |     11 |     12
+   7 |   17 |     14 |     15
+   8 |   18 |     16 |     17
+(8 rows)
+
+-- q3
+ROLLBACK;
+ROLLBACK
diff --git a/doc/queries/doc-pgr_maxFlow.queries b/doc/queries/doc-pgr_maxFlow.queries
new file mode 100644
index 0000000..aadd1fb
--- /dev/null
+++ b/doc/queries/doc-pgr_maxFlow.queries
@@ -0,0 +1,67 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_maxFlow(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , 6, 11
+);
+ pgr_maxflow 
+-------------
+         230
+(1 row)
+
+-- q2
+SELECT * FROM pgr_maxFlow(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , 6, ARRAY[11, 1, 13]
+);
+ pgr_maxflow 
+-------------
+         340
+(1 row)
+
+-- q3
+SELECT * FROM pgr_maxFlow(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , ARRAY[6, 8, 12], 11
+);
+ pgr_maxflow 
+-------------
+         230
+(1 row)
+
+-- q4
+SELECT * FROM pgr_maxFlow(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , ARRAY[6, 8, 12], ARRAY[1, 3, 11]
+);
+ pgr_maxflow 
+-------------
+         360
+(1 row)
+
+-- q5
+ROLLBACK;
+ROLLBACK
diff --git a/src/alpha_shape/doc/doc-pgr_pointsAsPolygon.queries b/doc/queries/doc-pgr_pointsAsPolygon.queries
similarity index 100%
rename from src/alpha_shape/doc/doc-pgr_pointsAsPolygon.queries
rename to doc/queries/doc-pgr_pointsAsPolygon.queries
diff --git a/doc/queries/doc-pgr_pushRelabel.queries b/doc/queries/doc-pgr_pushRelabel.queries
new file mode 100644
index 0000000..65969cb
--- /dev/null
+++ b/doc/queries/doc-pgr_pushRelabel.queries
@@ -0,0 +1,96 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_pushRelabel(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , 6, 11
+);
+ seq | edge | start_vid | end_vid | flow | residual_capacity 
+-----+------+-----------+---------+------+-------------------
+   1 |   10 |         5 |      10 |  100 |                30
+   2 |    8 |         6 |       5 |  100 |                30
+   3 |   11 |         6 |      11 |  130 |                 0
+   4 |   12 |        10 |      11 |  100 |                 0
+(4 rows)
+
+-- q2
+SELECT * FROM pgr_pushRelabel(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , 6, ARRAY[11, 1, 13]
+);
+ seq | edge | start_vid | end_vid | flow | residual_capacity 
+-----+------+-----------+---------+------+-------------------
+   1 |    1 |         2 |       1 |  130 |                 0
+   2 |    2 |         3 |       2 |   80 |                20
+   3 |    3 |         4 |       3 |   80 |                50
+   4 |    4 |         5 |       2 |   50 |                 0
+   5 |    7 |         5 |       8 |   50 |                80
+   6 |   10 |         5 |      10 |   80 |                50
+   7 |    8 |         6 |       5 |  130 |                 0
+   8 |    9 |         6 |       9 |   80 |                50
+   9 |   11 |         6 |      11 |  130 |                 0
+  10 |    6 |         7 |       8 |   50 |                 0
+  11 |    6 |         8 |       7 |   50 |                50
+  12 |    7 |         8 |       5 |   50 |                 0
+  13 |   16 |         9 |       4 |   80 |                 0
+  14 |   12 |        10 |      11 |   80 |                20
+(14 rows)
+
+-- q3
+SELECT * FROM pgr_pushRelabel(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , ARRAY[6, 8, 12], 11
+);
+ seq | edge | start_vid | end_vid | flow | residual_capacity 
+-----+------+-----------+---------+------+-------------------
+   1 |   10 |         5 |      10 |  100 |                30
+   2 |    8 |         6 |       5 |  100 |                30
+   3 |   11 |         6 |      11 |  130 |                 0
+   4 |   12 |        10 |      11 |  100 |                 0
+(4 rows)
+
+-- q4
+SELECT * FROM pgr_pushRelabel(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , ARRAY[6, 8, 12], ARRAY[1, 3, 11]
+);
+ seq | edge | start_vid | end_vid | flow | residual_capacity 
+-----+------+-----------+---------+------+-------------------
+   1 |    1 |         2 |       1 |   50 |                80
+   2 |    3 |         4 |       3 |   80 |                50
+   3 |    4 |         5 |       2 |   50 |                 0
+   4 |   10 |         5 |      10 |  100 |                30
+   5 |    8 |         6 |       5 |  130 |                 0
+   6 |    9 |         6 |       9 |   30 |               100
+   7 |   11 |         6 |      11 |  130 |                 0
+   8 |    7 |         8 |       5 |   20 |                30
+   9 |   16 |         9 |       4 |   80 |                 0
+  10 |   12 |        10 |      11 |  100 |                 0
+  11 |   15 |        12 |       9 |   50 |                 0
+(11 rows)
+
+-- q5
+ROLLBACK;
+ROLLBACK
diff --git a/doc/queries/doc-pgr_strongComponents.queries b/doc/queries/doc-pgr_strongComponents.queries
new file mode 100644
index 0000000..ad97903
--- /dev/null
+++ b/doc/queries/doc-pgr_strongComponents.queries
@@ -0,0 +1,56 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_strongComponents(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
+ seq | component | n_seq | node 
+-----+-----------+-------+------
+   1 |         1 |     1 |    1
+   2 |         1 |     2 |    2
+   3 |         1 |     3 |    3
+   4 |         1 |     4 |    4
+   5 |         1 |     5 |    5
+   6 |         1 |     6 |    6
+   7 |         1 |     7 |    7
+   8 |         1 |     8 |    8
+   9 |         1 |     9 |    9
+  10 |         1 |    10 |   10
+  11 |         1 |    11 |   11
+  12 |         1 |    12 |   12
+  13 |         1 |    13 |   13
+  14 |        14 |     1 |   14
+  15 |        14 |     2 |   15
+  16 |        16 |     1 |   16
+  17 |        16 |     2 |   17
+(17 rows)
+
+-- q2
+SELECT * FROM pgr_strongComponents(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
+ seq | component | n_seq | node 
+-----+-----------+-------+------
+   1 |         1 |     1 |    1
+   2 |         1 |     2 |    2
+   3 |         1 |     3 |    3
+   4 |         1 |     4 |    4
+   5 |         1 |     5 |    5
+   6 |         1 |     6 |    6
+   7 |         1 |     7 |    7
+   8 |         1 |     8 |    8
+   9 |         1 |     9 |    9
+  10 |         1 |    10 |   10
+  11 |         1 |    11 |   11
+  12 |         1 |    12 |   12
+  13 |         1 |    13 |   13
+  14 |        14 |     1 |   14
+  15 |        14 |     2 |   15
+  16 |        16 |     1 |   16
+  17 |        16 |     2 |   17
+(17 rows)
+
+ROLLBACK;
+ROLLBACK
diff --git a/doc/queries/doc-pgr_version.queries b/doc/queries/doc-pgr_version.queries
new file mode 100644
index 0000000..aec10c6
--- /dev/null
+++ b/doc/queries/doc-pgr_version.queries
@@ -0,0 +1,14 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT version FROM pgr_version();
+ version 
+---------
+ 2.5.0
+(1 row)
+
+-- q2
+ROLLBACK;
+ROLLBACK
diff --git a/doc/queries/doc-pgr_vrpOneDepot.queries b/doc/queries/doc-pgr_vrpOneDepot.queries
new file mode 100644
index 0000000..2631800
--- /dev/null
+++ b/doc/queries/doc-pgr_vrpOneDepot.queries
@@ -0,0 +1,256 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+SELECT * FROM pgr_vrpOneDepot(
+    'SELECT * FROM vrp_orders',
+    'SELECT * FROM vrp_vehicles',
+    'SELECT * FROM vrp_distance',
+    1);
+ oid | opos | vid | tarrival | tdepart 
+-----+------+-----+----------+---------
+  -1 |    1 |   5 |        0 |       0
+  66 |    2 |   5 |        0 |       0
+  25 |    3 |   5 |        0 |       0
+  21 |    4 |   5 |        0 |       0
+  84 |    5 |   5 |        0 |       0
+  50 |    6 |   5 |        0 |       0
+  49 |    7 |   5 |        0 |       0
+  24 |    8 |   5 |        0 |       0
+  22 |    9 |   5 |        0 |       0
+  20 |   10 |   5 |        0 |       0
+  19 |   11 |   5 |        0 |       0
+  66 |   12 |   5 |       11 |      21
+  84 |   13 |   5 |       30 |      45
+  24 |   14 |   5 |       71 |      81
+  22 |   15 |   5 |       83 |      93
+  20 |   16 |   5 |       98 |     108
+  19 |   17 |   5 |      114 |     124
+  50 |   18 |   5 |      131 |     141
+  21 |   19 |   5 |      144 |     154
+  25 |   20 |   5 |      158 |     168
+  49 |   21 |   5 |      179 |     189
+  -1 |   22 |   5 |      234 |     234
+  -1 |    1 |   6 |        0 |       0
+  31 |    2 |   6 |        0 |       0
+  32 |    3 |   6 |        0 |       0
+  81 |    4 |   6 |        0 |       0
+  94 |    5 |   6 |        0 |       0
+  93 |    6 |   6 |        0 |       0
+  35 |    7 |   6 |        0 |       0
+  33 |    8 |   6 |        0 |       0
+  28 |    9 |   6 |        0 |       0
+  27 |   10 |   6 |        0 |       0
+  93 |   11 |   6 |       15 |      25
+  32 |   12 |   6 |       61 |      71
+  28 |   13 |   6 |       78 |      88
+  31 |   14 |   6 |       97 |     107
+  35 |   15 |   6 |      112 |     122
+  27 |   16 |   6 |      134 |     144
+  33 |   17 |   6 |      152 |     162
+  94 |   18 |   6 |      196 |     206
+  81 |   19 |   6 |      221 |     231
+  -1 |   20 |   6 |      238 |     238
+  -1 |    1 |   3 |        0 |       0
+  16 |    2 |   3 |        0 |       0
+  14 |    3 |   3 |        0 |       0
+  48 |    4 |   3 |        0 |       0
+  18 |    5 |   3 |        0 |       0
+  17 |    6 |   3 |        0 |       0
+  15 |    7 |   3 |        0 |       0
+  13 |    8 |   3 |        0 |       0
+  11 |    9 |   3 |        0 |       0
+  10 |   10 |   3 |        0 |       0
+  15 |   11 |   3 |       35 |      45
+  48 |   12 |   3 |       48 |      58
+  13 |   13 |   3 |       64 |      74
+  16 |   14 |   3 |       82 |      92
+  17 |   15 |   3 |       94 |     104
+  10 |   16 |   3 |      115 |     125
+  11 |   17 |   3 |      130 |     140
+  14 |   18 |   3 |      147 |     157
+  18 |   19 |   3 |      169 |     179
+  -1 |   20 |   3 |      219 |     219
+  -1 |    1 |   8 |        0 |       0
+  71 |    2 |   8 |        0 |       0
+  55 |    3 |   8 |        0 |       0
+  44 |    4 |   8 |        0 |       0
+  43 |    5 |   8 |        0 |       0
+  42 |    6 |   8 |        0 |       0
+  41 |    7 |   8 |        0 |       0
+  40 |    8 |   8 |        0 |       0
+  39 |    9 |   8 |        0 |       0
+  43 |   10 |   8 |       34 |      44
+  40 |   11 |   8 |       49 |      59
+  39 |   12 |   8 |       61 |      85
+  41 |   13 |   8 |       90 |     100
+  42 |   14 |   8 |      111 |     121
+  44 |   15 |   8 |      131 |     141
+  55 |   16 |   8 |      166 |     176
+  71 |   17 |   8 |      198 |     208
+  -1 |   18 |   8 |      228 |     228
+  -1 |    1 |   1 |        0 |       0
+   4 |    2 |   1 |        0 |       0
+ 101 |    3 |   1 |        0 |       0
+  46 |    4 |   1 |        0 |       0
+   5 |    5 |   1 |        0 |       0
+   3 |    6 |   1 |        0 |       0
+  46 |    7 |   1 |       38 |      48
+   3 |    8 |   1 |       55 |      65
+   2 |    9 |   1 |       96 |      96
+   4 |   10 |   1 |      135 |     145
+   2 |   11 |   1 |      148 |     158
+   5 |   12 |   1 |      165 |     175
+ 101 |   13 |   1 |      192 |     202
+  -1 |   14 |   1 |      222 |     222
+  -1 |    1 |  13 |        0 |       0
+  92 |    2 |  13 |        0 |       0
+  52 |    3 |  13 |        0 |       0
+  57 |    4 |  13 |        0 |       0
+  85 |    5 |  13 |        0 |       0
+  68 |    6 |  13 |        0 |       0
+  63 |    7 |  13 |        0 |       0
+  63 |    8 |  13 |       29 |      62
+  68 |    9 |  13 |       69 |      80
+  52 |   10 |  13 |      104 |     114
+  85 |   11 |  13 |      123 |     133
+  57 |   12 |  13 |      142 |     152
+  92 |   13 |  13 |      159 |     177
+  -1 |   14 |  13 |      189 |     189
+  -1 |    1 |   7 |        0 |       0
+  30 |    2 |   7 |        0 |       0
+  29 |    3 |   7 |        0 |       0
+  38 |    4 |   7 |        0 |       0
+  36 |    5 |   7 |        0 |       0
+  34 |    6 |   7 |        0 |       0
+  34 |    7 |   7 |       51 |      61
+  29 |    8 |   7 |       70 |      80
+  30 |    9 |   7 |       85 |      95
+  38 |   10 |   7 |      149 |     159
+  36 |   11 |   7 |      162 |     172
+  -1 |   12 |   7 |      217 |     217
+  -1 |    1 |   2 |        0 |       0
+  89 |    2 |   2 |        0 |       0
+  47 |    3 |   2 |        0 |       0
+  61 |    4 |   2 |        0 |       0
+   9 |    5 |   2 |        0 |       0
+   8 |    6 |   2 |        0 |       0
+  89 |    7 |   2 |       18 |      77
+   8 |    8 |   2 |       96 |     106
+   9 |    9 |   2 |      111 |     121
+  47 |   10 |   2 |      124 |     134
+  61 |   11 |   2 |      154 |     165
+  -1 |   12 |   2 |      192 |     192
+  -1 |    1 |  14 |        0 |       0
+  97 |    2 |  14 |        0 |       0
+  64 |    3 |  14 |        0 |       0
+  51 |    4 |  14 |        0 |       0
+  96 |    5 |  14 |        0 |       0
+  77 |    6 |  14 |        0 |       0
+  96 |    7 |  14 |       21 |      44
+  64 |    8 |  14 |       63 |      73
+  77 |    9 |  14 |       83 |      93
+  51 |   10 |  14 |      119 |     129
+  97 |   11 |  14 |      154 |     164
+  -1 |   12 |  14 |      180 |     180
+  -1 |    1 |  15 |        0 |       0
+  67 |    2 |  15 |        0 |       0
+  73 |    3 |  15 |        0 |       0
+  95 |    4 |  15 |        0 |       0
+  82 |    5 |  15 |        0 |       0
+  72 |    6 |  15 |        0 |       0
+  73 |    7 |  15 |       27 |      40
+  72 |    8 |  15 |       50 |      75
+  82 |    9 |  15 |       91 |     101
+  95 |   10 |  15 |      114 |     124
+  67 |   11 |  15 |      144 |     154
+  -1 |   12 |  15 |      167 |     167
+  -1 |    1 |  11 |        0 |       0
+  78 |    2 |  11 |        0 |       0
+  26 |    3 |  11 |        0 |       0
+  87 |    4 |  11 |        0 |       0
+  23 |    5 |  11 |        0 |       0
+  87 |    6 |  11 |       32 |      97
+  23 |    7 |  11 |      118 |     128
+  78 |    8 |  11 |      149 |     160
+  26 |    9 |  11 |      172 |     182
+  -1 |   10 |  11 |      227 |     227
+  -1 |    1 |   4 |        0 |       0
+  60 |    2 |   4 |        0 |       0
+  59 |    3 |   4 |        0 |       0
+ 100 |    4 |   4 |        0 |       0
+  54 |    5 |   4 |        0 |       0
+  60 |    6 |   4 |       42 |      52
+ 100 |    7 |   4 |       74 |      87
+  54 |    8 |   4 |      103 |     113
+  59 |    9 |   4 |      153 |     163
+  -1 |   10 |   4 |      211 |     211
+  -1 |    1 |  10 |        0 |       0
+  86 |    2 |  10 |        0 |       0
+  90 |    3 |  10 |        0 |       0
+  65 |    4 |  10 |        0 |       0
+  53 |    5 |  10 |        0 |       0
+  53 |    6 |  10 |       25 |      62
+  65 |    7 |  10 |       82 |      92
+  86 |    8 |  10 |      111 |     121
+  90 |    9 |  10 |      140 |     154
+  -1 |   10 |  10 |      206 |     206
+  -1 |    1 |  12 |        0 |       0
+   6 |    2 |  12 |        0 |       0
+  80 |    3 |  12 |        0 |       0
+   7 |    4 |  12 |        0 |       0
+  56 |    5 |  12 |        0 |       0
+   6 |    6 |  12 |       40 |      51
+  80 |    7 |  12 |       73 |      99
+   7 |    8 |  12 |      113 |     123
+  56 |    9 |  12 |      142 |     152
+  -1 |   10 |  12 |      166 |     166
+  -1 |    1 |  19 |        0 |       0
+  88 |    2 |  19 |        0 |       0
+  70 |    3 |  19 |        0 |       0
+  58 |    4 |  19 |        0 |       0
+  99 |    5 |  19 |        0 |       0
+  70 |    6 |  19 |        9 |      51
+  99 |    7 |  19 |       56 |      66
+  88 |    8 |  19 |       97 |     107
+  58 |    9 |  19 |      125 |     135
+  -1 |   10 |  19 |      162 |     162
+  -1 |    1 |  17 |        0 |       0
+  75 |    2 |  17 |        0 |       0
+  98 |    3 |  17 |        0 |       0
+  76 |    4 |  17 |        0 |       0
+  76 |    5 |  17 |       57 |      84
+  98 |    6 |  17 |       97 |     130
+  75 |    7 |  17 |      146 |     156
+  -1 |    8 |  17 |      192 |     192
+  -1 |    1 |  16 |        0 |       0
+  69 |    2 |  16 |        0 |       0
+  79 |    3 |  16 |        0 |       0
+  74 |    4 |  16 |        0 |       0
+  74 |    5 |  16 |       39 |      87
+  79 |    6 |  16 |       94 |     104
+  69 |    7 |  16 |      136 |     154
+  -1 |    8 |  16 |      164 |     164
+  -1 |    1 |   9 |        0 |       0
+  62 |    2 |   9 |        0 |       0
+  37 |    3 |   9 |        0 |       0
+  45 |    4 |   9 |        0 |       0
+  37 |    5 |   9 |       43 |      53
+  45 |    6 |   9 |       63 |      74
+  62 |    7 |   9 |       94 |     104
+  -1 |    8 |   9 |      120 |     120
+  -1 |    1 |  18 |        0 |       0
+  91 |    2 |  18 |        0 |       0
+  12 |    3 |  18 |        0 |       0
+  12 |    4 |  18 |       34 |      69
+  91 |    5 |  18 |       99 |     109
+  -1 |    6 |  18 |      113 |     113
+  -1 |    1 |  20 |        0 |       0
+  83 |    2 |  20 |        0 |       0
+  83 |    3 |  20 |       15 |      52
+  -1 |    4 |  20 |       67 |      67
+  -1 |    0 |   0 |       -1 |    3712
+(241 rows)
+
+ROLLBACK;
+ROLLBACK
diff --git a/src/withPoints/doc/doc-pgr_withPoints.queries b/doc/queries/doc-pgr_withPoints.queries
similarity index 100%
rename from src/withPoints/doc/doc-pgr_withPoints.queries
rename to doc/queries/doc-pgr_withPoints.queries
diff --git a/src/withPoints/doc/doc-pgr_withPointsCost.queries b/doc/queries/doc-pgr_withPointsCost.queries
similarity index 100%
rename from src/withPoints/doc/doc-pgr_withPointsCost.queries
rename to doc/queries/doc-pgr_withPointsCost.queries
diff --git a/src/withPoints/doc/doc-pgr_withPointsDD.queries b/doc/queries/doc-pgr_withPointsDD.queries
similarity index 100%
rename from src/withPoints/doc/doc-pgr_withPointsDD.queries
rename to doc/queries/doc-pgr_withPointsDD.queries
diff --git a/src/withPoints/doc/doc-pgr_withPointsKSP.queries b/doc/queries/doc-pgr_withPointsKSP.queries
similarity index 100%
rename from src/withPoints/doc/doc-pgr_withPointsKSP.queries
rename to doc/queries/doc-pgr_withPointsKSP.queries
diff --git a/doc/queries/doc-pgr_withPointsVia.queries b/doc/queries/doc-pgr_withPointsVia.queries
new file mode 100644
index 0000000..4e234b8
--- /dev/null
+++ b/doc/queries/doc-pgr_withPointsVia.queries
@@ -0,0 +1,40 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+--q1
+SELECT * FROM pgr_withPointsVia(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction, side from pointsOfInterest',
+    ARRAY[1,3,5]);
+ERROR:  function pgr_withpointsvia(unknown, unknown, integer[]) does not exist
+LINE 1: SELECT * FROM pgr_withPointsVia(
+                      ^
+HINT:  No function matches the given name and argument types. You might need to add explicit type casts.
+--q2
+SELECT * FROM pgr_withPointsDD(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction, side from pointsOfInterest',
+    3, 3.0,
+    driving_side := 'r',
+    details := true);
+ERROR:  current transaction is aborted, commands ignored until end of transaction block
+--q3
+SELECT * FROM pgr_withPointsDD(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction, side from pointsOfInterest',
+    3, 3.0,
+    driving_side := 'l',
+    details := true);
+ERROR:  current transaction is aborted, commands ignored until end of transaction block
+--q4
+SELECT * FROM pgr_withPointsDD(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction, side from pointsOfInterest',
+    3, 3.0,
+    driving_side := 'b',
+    details := true);
+ERROR:  current transaction is aborted, commands ignored until end of transaction block
+--q5
+ROLLBACK;
+ROLLBACK
diff --git a/doc/queries/doc-pickDeliver.queries b/doc/queries/doc-pickDeliver.queries
new file mode 100644
index 0000000..b5b2096
--- /dev/null
+++ b/doc/queries/doc-pickDeliver.queries
@@ -0,0 +1,61 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+--q1
+SELECT * FROM _pgr_pickDeliver(
+    'SELECT * FROM orders ORDER BY id',
+    'SELECT * from vehicles',
+    
+    'WITH
+    A AS (
+        SELECT p_node_id AS id, p_x AS x, p_y AS y FROM orders
+        UNION
+        SELECT d_node_id AS id, d_x, d_y FROM orders
+        UNION
+        SELECT start_node_id, start_x, start_y FROM vehicles
+    )
+    SELECT A.id AS start_vid, B.id AS end_vid, sqrt( (a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y)) AS agg_cost
+    FROM A, A AS B WHERE A.id != B.id'
+    );
+ seq | vehicle_seq | vehicle_id | stop_seq | stop_type | stop_id | order_id | cargo |   travel_time    |   arrival_time   | wait_time | service_time |  departure_time  
+-----+-------------+------------+----------+-----------+---------+----------+-------+------------------+------------------+-----------+--------------+------------------
+   1 |           1 |          1 |        1 |         1 |       6 |       -1 |     0 |                0 |                0 |         0 |            0 |                0
+   2 |           1 |          1 |        2 |         2 |       5 |        3 |    30 |                1 |                1 |         1 |            3 |                5
+   3 |           1 |          1 |        3 |         3 |      11 |        3 |     0 |  1.4142135623731 | 6.41421356237309 |         0 |            3 |  9.4142135623731
+   4 |           1 |          1 |        4 |         2 |       9 |        2 |    20 |  1.4142135623731 | 10.8284271247462 |         0 |            2 | 12.8284271247462
+   5 |           1 |          1 |        5 |         3 |       4 |        2 |     0 |                1 | 13.8284271247462 |         0 |            3 | 16.8284271247462
+   6 |           1 |          1 |        6 |         6 |       6 |       -1 |     0 |  1.4142135623731 | 18.2426406871193 |         0 |            0 | 18.2426406871193
+   7 |           2 |          1 |        1 |         1 |       6 |       -1 |     0 |                0 |                0 |         0 |            0 |                0
+   8 |           2 |          1 |        2 |         2 |       3 |        1 |    10 |                1 |                1 |         1 |            3 |                5
+   9 |           2 |          1 |        3 |         3 |       8 |        1 |     0 | 2.23606797749979 | 7.23606797749979 |         0 |            3 | 10.2360679774998
+  10 |           2 |          1 |        4 |         6 |       6 |       -1 |     0 |                2 | 12.2360679774998 |         0 |            0 | 12.2360679774998
+  11 |          -2 |          0 |        0 |        -1 |      -1 |       -1 |    -1 | 11.4787086646191 |               -1 |         2 |           17 | 30.4787086646191
+(11 rows)
+
+--q2
+SELECT * FROM _pgr_pickDeliver(
+    $$ SELECT * FROM orders ORDER BY id $$,
+    $$ SELECT * FROM vehicles $$,
+    $$ SELECT * from pgr_dijkstraCostMatrix(
+        ' SELECT * FROM edge_table ', ARRAY[3, 4, 5, 8, 9, 11]) 
+    $$
+);
+ seq | vehicle_seq | vehicle_id | stop_seq | stop_type | stop_id | order_id | cargo | travel_time | arrival_time | wait_time | service_time | departure_time 
+-----+-------------+------------+----------+-----------+---------+----------+-------+-------------+--------------+-----------+--------------+----------------
+   1 |           1 |          1 |        1 |         1 |       6 |       -1 |     0 |           0 |            0 |         0 |            0 |              0
+   2 |           1 |          1 |        2 |         2 |       5 |        3 |    30 |           1 |            1 |         1 |            3 |              5
+   3 |           1 |          1 |        3 |         3 |      11 |        3 |     0 |           2 |            7 |         0 |            3 |             10
+   4 |           1 |          1 |        4 |         2 |       9 |        2 |    20 |           2 |           12 |         0 |            2 |             14
+   5 |           1 |          1 |        5 |         3 |       4 |        2 |     0 |           1 |           15 |         0 |            3 |             18
+   6 |           1 |          1 |        6 |         6 |       6 |       -1 |     0 |           4 |           22 |         0 |            0 |             22
+   7 |           2 |          1 |        1 |         1 |       6 |       -1 |     0 |           0 |            0 |         0 |            0 |              0
+   8 |           2 |          1 |        2 |         2 |       3 |        1 |    10 |           5 |            5 |         0 |            3 |              8
+   9 |           2 |          1 |        3 |         3 |       8 |        1 |     0 |           3 |           11 |         0 |            3 |             14
+  10 |           2 |          1 |        4 |         6 |       6 |       -1 |     0 |           0 |           14 |         0 |            0 |             14
+  11 |          -2 |          0 |        0 |        -1 |      -1 |       -1 |    -1 |          18 |           -1 |         1 |           17 |             36
+(11 rows)
+
+--q3
+ROLLBACK;
+ROLLBACK
diff --git a/doc/queries/doc-pickDeliverEuclidean.queries b/doc/queries/doc-pickDeliverEuclidean.queries
new file mode 100644
index 0000000..1971291
--- /dev/null
+++ b/doc/queries/doc-pickDeliverEuclidean.queries
@@ -0,0 +1,27 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+--q1
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    'SELECT * FROM orders ORDER BY id',
+    'SELECT * from vehicles'
+);
+ seq | vehicle_seq | vehicle_id | stop_seq | stop_type | order_id | cargo |   travel_time    |   arrival_time   | wait_time | service_time |  departure_time  
+-----+-------------+------------+----------+-----------+----------+-------+------------------+------------------+-----------+--------------+------------------
+   1 |           1 |          1 |        1 |         1 |       -1 |     0 |                0 |                0 |         0 |            0 |                0
+   2 |           1 |          1 |        2 |         2 |        3 |    30 |                1 |                1 |         1 |            3 |                5
+   3 |           1 |          1 |        3 |         3 |        3 |     0 |  1.4142135623731 | 6.41421356237309 |         0 |            3 |  9.4142135623731
+   4 |           1 |          1 |        4 |         2 |        2 |    20 |  1.4142135623731 | 10.8284271247462 |         0 |            2 | 12.8284271247462
+   5 |           1 |          1 |        5 |         3 |        2 |     0 |                1 | 13.8284271247462 |         0 |            3 | 16.8284271247462
+   6 |           1 |          1 |        6 |         6 |       -1 |     0 |  1.4142135623731 | 18.2426406871193 |         0 |            0 | 18.2426406871193
+   7 |           2 |          1 |        1 |         1 |       -1 |     0 |                0 |                0 |         0 |            0 |                0
+   8 |           2 |          1 |        2 |         2 |        1 |    10 |                1 |                1 |         1 |            3 |                5
+   9 |           2 |          1 |        3 |         3 |        1 |     0 | 2.23606797749979 | 7.23606797749979 |         0 |            3 | 10.2360679774998
+  10 |           2 |          1 |        4 |         6 |       -1 |     0 |                2 | 12.2360679774998 |         0 |            0 | 12.2360679774998
+  11 |          -2 |          0 |        0 |        -1 |       -1 |    -1 | 11.4787086646191 |               -1 |         2 |           17 | 30.4787086646191
+(11 rows)
+
+--q2
+ROLLBACK;
+ROLLBACK
diff --git a/src/trsp/doc/doc-trsp.queries b/doc/queries/doc-trsp.queries
similarity index 100%
rename from src/trsp/doc/doc-trsp.queries
rename to doc/queries/doc-trsp.queries
diff --git a/doc/queries/issue704.queries b/doc/queries/issue704.queries
new file mode 100644
index 0000000..364fa92
--- /dev/null
+++ b/doc/queries/issue704.queries
@@ -0,0 +1,82 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+CREATE TABLE maptest as 
+SELECT  671222::integer as id, 318255::integer as  source, 222698::integer as target, 14.02::float8 as cost, 14.02::float8 as reverse_cost UNION ALL
+SELECT  671223, 222698, 36655, 197.16, 197.16 UNION ALL
+SELECT  582877, 408918, 5556, 458.09, 458.09 UNION ALL
+SELECT  582876, 318255, 408918, 3.89, 3.89 UNION ALL
+SELECT  585280, 5556, 454424, 54.84, 54.84;
+SELECT 5
+q1
+SELECT seq, id1 AS node, id2 AS edge, cost::numeric(11,4)
+FROM pgr_trsp(
+    'select * from maptest',
+    582877,     
+    0,          
+    582877,     
+    0.5,        
+    true,        
+    true,      
+    null 
+) PG ;
+ seq | node | edge | cost 
+-----+------+------+------
+(0 rows)
+
+q2
+SELECT seq, id1 AS node, id2 AS edge, cost::numeric(11,4)
+FROM pgr_trsp(
+    'select * from maptest',
+    582877,     
+    0.0000000001,          
+    582877,     
+    0.5,        
+    true,        
+    true,      
+    null 
+) PG ;
+ seq | node |  edge  |   cost   
+-----+------+--------+----------
+   0 |   -1 | 582877 | 229.0450
+   1 |   -2 |     -1 |   0.0000
+(2 rows)
+
+q3
+SELECT seq, id1 AS node, id2 AS edge, cost::numeric(11,4)
+FROM pgr_trsp(
+    'select * from maptest',
+    582877,     
+    0,         
+    582877,     
+    0.5,        
+    true,        
+    true,      
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+) PG ;
+ seq | node |  edge  |   cost   
+-----+------+--------+----------
+   0 |   -1 | 582877 | 229.0450
+(1 row)
+
+q4
+SELECT seq, id1 AS node, id2 AS edge, cost::numeric(11,4)
+FROM pgr_trsp(
+    'select * from maptest',
+    582877,     
+    0.0000000001,          
+    582877,     
+    0.5,        
+    true,        
+    true,      
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+) PG ;
+ seq | node |  edge  |   cost   
+-----+------+--------+----------
+   0 |   -1 | 582877 | 229.0450
+(1 row)
+
+q5
+ROLLBACK;
+ROLLBACK
diff --git a/doc/queries/oneDepotWrapper.queries b/doc/queries/oneDepotWrapper.queries
new file mode 100644
index 0000000..8c24c83
--- /dev/null
+++ b/doc/queries/oneDepotWrapper.queries
@@ -0,0 +1,256 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+SELECT * FROM _pgr_vrpOneDepot(
+    'SELECT * FROM vrp_orders',
+    'SELECT * FROM vrp_vehicles',
+    'SELECT src_id AS start_vid, dest_id AS end_vid, traveltime AS agg_cost FROM vrp_distance',
+    1);
+ seq | vehicle_seq | vehicle_id | stop_seq | stop_type | stop_id | order_id | cargo | travel_time | arrival_time |     wait_time     | service_time | departure_time 
+-----+-------------+------------+----------+-----------+---------+----------+-------+-------------+--------------+-------------------+--------------+----------------
+   1 |           1 |          5 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+   2 |           1 |          5 |        2 |         2 |       1 |       66 |    16 |           0 |            0 |                 0 |            0 |              0
+   3 |           1 |          5 |        3 |         2 |       1 |       25 |    26 |           0 |            0 |                 0 |            0 |              0
+   4 |           1 |          5 |        4 |         2 |       1 |       21 |    36 |           0 |            0 |                 0 |            0 |              0
+   5 |           1 |          5 |        5 |         2 |       1 |       84 |    50 |           0 |            0 |                 0 |            0 |              0
+   6 |           1 |          5 |        6 |         2 |       1 |       50 |    60 |           0 |            0 |                 0 |            0 |              0
+   7 |           1 |          5 |        7 |         2 |       1 |       49 |    70 |           0 |            0 |                 0 |            0 |              0
+   8 |           1 |          5 |        8 |         2 |       1 |       24 |   100 |           0 |            0 |                 0 |            0 |              0
+   9 |           1 |          5 |        9 |         2 |       1 |       22 |   110 |           0 |            0 |                 0 |            0 |              0
+  10 |           1 |          5 |       10 |         2 |       1 |       20 |   150 |           0 |            0 |                 0 |            0 |              0
+  11 |           1 |          5 |       11 |         2 |       1 |       19 |   170 |           0 |            0 |                 0 |            0 |              0
+  12 |           1 |          5 |       12 |         3 |      66 |       66 |   154 |    11.18034 |     11.18034 |                 0 |           10 |       21.18034
+  13 |           1 |          5 |       13 |         3 |      84 |       84 |   140 |    9.219544 |    30.399884 |          4.600116 |           10 |             45
+  14 |           1 |          5 |       14 |         3 |      24 |       24 |   110 |   26.019224 |    71.019224 |                 0 |           10 |      81.019224
+  15 |           1 |          5 |       15 |         3 |      22 |       22 |   100 |           2 |    83.019224 |                 0 |           10 |      93.019224
+  16 |           1 |          5 |       16 |         3 |      20 |       20 |    60 |    5.385165 |    98.404389 |                 0 |           10 |     108.404389
+  17 |           1 |          5 |       17 |         3 |      19 |       19 |    40 |    5.385165 |   113.789554 |                 0 |           10 |     123.789554
+  18 |           1 |          5 |       18 |         3 |      50 |       50 |    30 |     7.28011 |   131.069664 |                 0 |           10 |     141.069664
+  19 |           1 |          5 |       19 |         3 |      21 |       21 |    20 |           3 |   144.069664 |                 0 |           10 |     154.069664
+  20 |           1 |          5 |       20 |         3 |      25 |       25 |    10 |           4 |   158.069664 |                 0 |           10 |     168.069664
+  21 |           1 |          5 |       21 |         3 |      49 |       49 |     0 |    10.77033 |   178.839994 |                 0 |           10 |     188.839994
+  22 |           1 |          5 |       22 |         6 |       1 |       -1 |     0 |   45.044423 |   233.884417 |                 0 |            0 |     233.884417
+  23 |           2 |          6 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+  24 |           2 |          6 |        2 |         2 |       1 |       31 |    10 |           0 |            0 |                 0 |            0 |              0
+  25 |           2 |          6 |        3 |         2 |       1 |       32 |    30 |           0 |            0 |                 0 |            0 |              0
+  26 |           2 |          6 |        4 |         2 |       1 |       81 |    43 |           0 |            0 |                 0 |            0 |              0
+  27 |           2 |          6 |        5 |         2 |       1 |       94 |    46 |           0 |            0 |                 0 |            0 |              0
+  28 |           2 |          6 |        6 |         2 |       1 |       93 |    60 |           0 |            0 |                 0 |            0 |              0
+  29 |           2 |          6 |        7 |         2 |       1 |       35 |    90 |           0 |            0 |                 0 |            0 |              0
+  30 |           2 |          6 |        8 |         2 |       1 |       33 |   100 |           0 |            0 |                 0 |            0 |              0
+  31 |           2 |          6 |        9 |         2 |       1 |       28 |   120 |           0 |            0 |                 0 |            0 |              0
+  32 |           2 |          6 |       10 |         2 |       1 |       27 |   150 |           0 |            0 |                 0 |            0 |              0
+  33 |           2 |          6 |       11 |         3 |      93 |       93 |   136 |   14.764823 |    14.764823 |                 0 |           10 |      24.764823
+  34 |           2 |          6 |       12 |         3 |      32 |       32 |   116 |   35.902646 |    60.667469 | 0.332531000000003 |           10 |             71
+  35 |           2 |          6 |       13 |         3 |      28 |       28 |    96 |           7 |           78 |                 0 |           10 |             88
+  36 |           2 |          6 |       14 |         3 |      31 |       31 |    86 |    8.602325 |    96.602325 |                 0 |           10 |     106.602325
+  37 |           2 |          6 |       15 |         3 |      35 |       35 |    56 |    5.830952 |   112.433277 |                 0 |           10 |     122.433277
+  38 |           2 |          6 |       16 |         3 |      27 |       27 |    26 |    11.18034 |   133.613617 |                 0 |           10 |     143.613617
+  39 |           2 |          6 |       17 |         3 |      33 |       33 |    16 |           8 |   151.613617 |                 0 |           10 |     161.613617
+  40 |           2 |          6 |       18 |         3 |      94 |       94 |    13 |   34.058773 |    195.67239 |                 0 |           10 |      205.67239
+  41 |           2 |          6 |       19 |         3 |      81 |       81 |     0 |   14.866069 |   220.538459 |                 0 |           10 |     230.538459
+  42 |           2 |          6 |       20 |         6 |       1 |       -1 |     0 |    7.615773 |   238.154232 |                 0 |            0 |     238.154232
+  43 |           3 |          3 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+  44 |           3 |          3 |        2 |         2 |       1 |       16 |    20 |           0 |            0 |                 0 |            0 |              0
+  45 |           3 |          3 |        3 |         2 |       1 |       14 |    30 |           0 |            0 |                 0 |            0 |              0
+  46 |           3 |          3 |        4 |         2 |       1 |       48 |    40 |           0 |            0 |                 0 |            0 |              0
+  47 |           3 |          3 |        5 |         2 |       1 |       18 |    60 |           0 |            0 |                 0 |            0 |              0
+  48 |           3 |          3 |        6 |         2 |       1 |       17 |    80 |           0 |            0 |                 0 |            0 |              0
+  49 |           3 |          3 |        7 |         2 |       1 |       15 |    90 |           0 |            0 |                 0 |            0 |              0
+  50 |           3 |          3 |        8 |         2 |       1 |       13 |   110 |           0 |            0 |                 0 |            0 |              0
+  51 |           3 |          3 |        9 |         2 |       1 |       11 |   140 |           0 |            0 |                 0 |            0 |              0
+  52 |           3 |          3 |       10 |         2 |       1 |       10 |   160 |           0 |            0 |                 0 |            0 |              0
+  53 |           3 |          3 |       11 |         3 |      15 |       15 |   150 |   35.355339 |    35.355339 |                 0 |           10 |      45.355339
+  54 |           3 |          3 |       12 |         3 |      48 |       48 |   140 |           3 |    48.355339 |                 0 |           10 |      58.355339
+  55 |           3 |          3 |       13 |         3 |      13 |       13 |   120 |           6 |    64.355339 |                 0 |           10 |      74.355339
+  56 |           3 |          3 |       14 |         3 |      16 |       16 |   100 |     7.81025 |    82.165589 |                 0 |           10 |      92.165589
+  57 |           3 |          3 |       15 |         3 |      17 |       17 |    80 |           2 |    94.165589 |                 0 |           10 |     104.165589
+  58 |           3 |          3 |       16 |         3 |      10 |       10 |    60 |    11.18034 |   115.345929 |                 0 |           10 |     125.345929
+  59 |           3 |          3 |       17 |         3 |      11 |       11 |    30 |           5 |   130.345929 |                 0 |           10 |     140.345929
+  60 |           3 |          3 |       18 |         3 |      14 |       14 |    20 |    7.071068 |   147.416997 |                 0 |           10 |     157.416997
+  61 |           3 |          3 |       19 |         3 |      18 |       18 |     0 |    11.18034 |   168.597337 |                 0 |           10 |     178.597337
+  62 |           3 |          3 |       20 |         6 |       1 |       -1 |     0 |   40.311289 |   218.908626 |                 0 |            0 |     218.908626
+  63 |           4 |          8 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+  64 |           4 |          8 |        2 |         2 |       1 |       71 |    23 |           0 |            0 |                 0 |            0 |              0
+  65 |           4 |          8 |        3 |         2 |       1 |       55 |    39 |           0 |            0 |                 0 |            0 |              0
+  66 |           4 |          8 |        4 |         2 |       1 |       44 |    59 |           0 |            0 |                 0 |            0 |              0
+  67 |           4 |          8 |        5 |         2 |       1 |       43 |    69 |           0 |            0 |                 0 |            0 |              0
+  68 |           4 |          8 |        6 |         2 |       1 |       42 |    89 |           0 |            0 |                 0 |            0 |              0
+  69 |           4 |          8 |        7 |         2 |       1 |       41 |   119 |           0 |            0 |                 0 |            0 |              0
+  70 |           4 |          8 |        8 |         2 |       1 |       40 |   129 |           0 |            0 |                 0 |            0 |              0
+  71 |           4 |          8 |        9 |         2 |       1 |       39 |   159 |           0 |            0 |                 0 |            0 |              0
+  72 |           4 |          8 |       10 |         3 |      43 |       43 |   149 |    33.54102 |     33.54102 |                 0 |           10 |       43.54102
+  73 |           4 |          8 |       11 |         3 |      40 |       40 |   139 |           5 |     48.54102 |                 0 |           10 |       58.54102
+  74 |           4 |          8 |       12 |         3 |      39 |       39 |   109 |           2 |     60.54102 |          14.45898 |           10 |             85
+  75 |           4 |          8 |       13 |         3 |      41 |       41 |    79 |    5.385165 |    90.385165 |                 0 |           10 |     100.385165
+  76 |           4 |          8 |       14 |         3 |      42 |       42 |    59 |   10.198039 |   110.583204 |                 0 |           10 |     120.583204
+  77 |           4 |          8 |       15 |         3 |      44 |       44 |    39 |   10.440307 |   131.023511 |                 0 |           10 |     141.023511
+  78 |           4 |          8 |       16 |         3 |      55 |       55 |    23 |          25 |   166.023511 |                 0 |           10 |     176.023511
+  79 |           4 |          8 |       17 |         3 |      71 |       71 |     0 |   21.931712 |   197.955223 |                 0 |           10 |     207.955223
+  80 |           4 |          8 |       18 |         6 |       1 |       -1 |     0 |   19.646883 |   227.602106 |                 0 |            0 |     227.602106
+  81 |           5 |          1 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+  82 |           5 |          1 |        2 |         2 |       1 |        4 |    10 |           0 |            0 |                 0 |            0 |              0
+  83 |           5 |          1 |        3 |         2 |       1 |      101 |    13 |           0 |            0 |                 0 |            0 |              0
+  84 |           5 |          1 |        4 |         2 |       1 |       46 |    23 |           0 |            0 |                 0 |            0 |              0
+  85 |           5 |          1 |        5 |         2 |       1 |        5 |    63 |           0 |            0 |                 0 |            0 |              0
+  86 |           5 |          1 |        6 |         2 |       1 |        3 |    93 |           0 |            0 |                 0 |            0 |              0
+  87 |           5 |          1 |        7 |         3 |      46 |       46 |    83 |   37.735925 |    37.735925 |                 0 |           10 |      47.735925
+  88 |           5 |          1 |        8 |         3 |       3 |        3 |    53 |     7.28011 |    55.016035 |                 0 |           10 |      65.016035
+  89 |           5 |          1 |        9 |         2 |       1 |        2 |    73 |   30.805844 |    95.821879 |                 0 |            0 |      95.821879
+  90 |           5 |          1 |       10 |         3 |       4 |        4 |    63 |   39.357337 |   135.179216 |                 0 |           10 |     145.179216
+  91 |           5 |          1 |       11 |         3 |       2 |        2 |    43 |           3 |   148.179216 |                 0 |           10 |     158.179216
+  92 |           5 |          1 |       12 |         3 |       5 |        5 |     3 |    7.071068 |   165.250284 |                 0 |           10 |     175.250284
+  93 |           5 |          1 |       13 |         3 |     101 |      101 |     0 |   17.029386 |    192.27967 |                 0 |           10 |      202.27967
+  94 |           5 |          1 |       14 |         6 |       1 |       -1 |     0 |   19.235384 |   221.515054 |                 0 |            0 |     221.515054
+  95 |           6 |         13 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+  96 |           6 |         13 |        2 |         2 |       1 |       92 |    13 |           0 |            0 |                 0 |            0 |              0
+  97 |           6 |         13 |        3 |         2 |       1 |       52 |    32 |           0 |            0 |                 0 |            0 |              0
+  98 |           6 |         13 |        4 |         2 |       1 |       57 |    51 |           0 |            0 |                 0 |            0 |              0
+  99 |           6 |         13 |        5 |         2 |       1 |       85 |    69 |           0 |            0 |                 0 |            0 |              0
+ 100 |           6 |         13 |        6 |         2 |       1 |       68 |    78 |           0 |            0 |                 0 |            0 |              0
+ 101 |           6 |         13 |        7 |         2 |       1 |       63 |    81 |           0 |            0 |                 0 |            0 |              0
+ 102 |           6 |         13 |        8 |         3 |      63 |       63 |    78 |   29.154759 |    29.154759 |         22.845241 |           10 |             62
+ 103 |           6 |         13 |        9 |         3 |      68 |       68 |    69 |    7.071068 |    69.071068 | 0.928932000000003 |           10 |             80
+ 104 |           6 |         13 |       10 |         3 |      52 |       52 |    50 |   23.769729 |   103.769729 |                 0 |           10 |     113.769729
+ 105 |           6 |         13 |       11 |         3 |      85 |       85 |    32 |    9.219544 |   122.989273 |                 0 |           10 |     132.989273
+ 106 |           6 |         13 |       12 |         3 |      57 |       57 |    13 |    9.219544 |   142.208817 |                 0 |           10 |     152.208817
+ 107 |           6 |         13 |       13 |         3 |      92 |       92 |     0 |    7.071068 |   159.279885 |  7.72011499999999 |           10 |            177
+ 108 |           6 |         13 |       14 |         6 |       1 |       -1 |     0 |   12.041595 |   189.041595 |                 0 |            0 |     189.041595
+ 109 |           7 |          7 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+ 110 |           7 |          7 |        2 |         2 |       1 |       30 |    10 |           0 |            0 |                 0 |            0 |              0
+ 111 |           7 |          7 |        3 |         2 |       1 |       29 |    20 |           0 |            0 |                 0 |            0 |              0
+ 112 |           7 |          7 |        4 |         2 |       1 |       38 |    30 |           0 |            0 |                 0 |            0 |              0
+ 113 |           7 |          7 |        5 |         2 |       1 |       36 |    50 |           0 |            0 |                 0 |            0 |              0
+ 114 |           7 |          7 |        6 |         2 |       1 |       34 |    60 |           0 |            0 |                 0 |            0 |              0
+ 115 |           7 |          7 |        7 |         3 |      34 |       34 |    50 |   51.478151 |    51.478151 |                 0 |           10 |      61.478151
+ 116 |           7 |          7 |        8 |         3 |      29 |       29 |    40 |    8.602325 |    70.080476 |                 0 |           10 |      80.080476
+ 117 |           7 |          7 |        9 |         3 |      30 |       30 |    30 |    5.385165 |    85.465641 |                 0 |           10 |      95.465641
+ 118 |           7 |          7 |       10 |         3 |      38 |       38 |    20 |   53.235327 |   148.700968 |                 0 |           10 |     158.700968
+ 119 |           7 |          7 |       11 |         3 |      36 |       36 |     0 |    3.605551 |   162.306519 |                 0 |           10 |     172.306519
+ 120 |           7 |          7 |       12 |         6 |       1 |       -1 |     0 |   44.204072 |   216.510591 |                 0 |            0 |     216.510591
+ 121 |           8 |          2 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+ 122 |           8 |          2 |        2 |         2 |       1 |       89 |    19 |           0 |            0 |                 0 |            0 |              0
+ 123 |           8 |          2 |        3 |         2 |       1 |       47 |    29 |           0 |            0 |                 0 |            0 |              0
+ 124 |           8 |          2 |        4 |         2 |       1 |       61 |    46 |           0 |            0 |                 0 |            0 |              0
+ 125 |           8 |          2 |        5 |         2 |       1 |        9 |    56 |           0 |            0 |                 0 |            0 |              0
+ 126 |           8 |          2 |        6 |         2 |       1 |        8 |    76 |           0 |            0 |                 0 |            0 |              0
+ 127 |           8 |          2 |        7 |         3 |      89 |       89 |    57 |   17.888544 |    17.888544 |         49.111456 |           10 |             77
+ 128 |           8 |          2 |        8 |         3 |       8 |        8 |    37 |   19.235384 |    96.235384 |                 0 |           10 |     106.235384
+ 129 |           8 |          2 |        9 |         3 |       9 |        9 |    27 |           5 |   111.235384 |                 0 |           10 |     121.235384
+ 130 |           8 |          2 |       10 |         3 |      47 |       47 |    17 |           3 |   124.235384 |                 0 |           10 |     134.235384
+ 131 |           8 |          2 |       11 |         3 |      61 |       61 |     0 |   20.223748 |   154.459132 | 0.540867999999989 |           10 |            165
+ 132 |           8 |          2 |       12 |         6 |       1 |       -1 |     0 |   26.925824 |   191.925824 |                 0 |            0 |     191.925824
+ 133 |           9 |         14 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+ 134 |           9 |         14 |        2 |         2 |       1 |       97 |    26 |           0 |            0 |                 0 |            0 |              0
+ 135 |           9 |         14 |        3 |         2 |       1 |       64 |    32 |           0 |            0 |                 0 |            0 |              0
+ 136 |           9 |         14 |        4 |         2 |       1 |       51 |    62 |           0 |            0 |                 0 |            0 |              0
+ 137 |           9 |         14 |        5 |         2 |       1 |       96 |    68 |           0 |            0 |                 0 |            0 |              0
+ 138 |           9 |         14 |        6 |         2 |       1 |       77 |    99 |           0 |            0 |                 0 |            0 |              0
+ 139 |           9 |         14 |        7 |         3 |      96 |       96 |    93 |   20.615528 |    20.615528 |         13.384472 |           10 |             44
+ 140 |           9 |         14 |        8 |         3 |      64 |       64 |    87 |   19.235384 |    63.235384 |                 0 |           10 |      73.235384
+ 141 |           9 |         14 |        9 |         3 |      77 |       77 |    56 |    9.433981 |    82.669365 |                 0 |           10 |      92.669365
+ 142 |           9 |         14 |       10 |         3 |      51 |       51 |    26 |   25.942244 |   118.611609 |                 0 |           10 |     128.611609
+ 143 |           9 |         14 |       11 |         3 |      97 |       97 |     0 |   25.495098 |   154.106707 |                 0 |           10 |     164.106707
+ 144 |           9 |         14 |       12 |         6 |       1 |       -1 |     0 |   15.524175 |   179.630882 |                 0 |            0 |     179.630882
+ 145 |          10 |         15 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+ 146 |          10 |         15 |        2 |         2 |       1 |       67 |    16 |           0 |            0 |                 0 |            0 |              0
+ 147 |          10 |         15 |        3 |         2 |       1 |       73 |    24 |           0 |            0 |                 0 |            0 |              0
+ 148 |          10 |         15 |        4 |         2 |       1 |       95 |    47 |           0 |            0 |                 0 |            0 |              0
+ 149 |          10 |         15 |        5 |         2 |       1 |       82 |    57 |           0 |            0 |                 0 |            0 |              0
+ 150 |          10 |         15 |        6 |         2 |       1 |       72 |    71 |           0 |            0 |                 0 |            0 |              0
+ 151 |          10 |         15 |        7 |         3 |      73 |       73 |    63 |    27.45906 |     27.45906 |           2.54094 |           10 |             40
+ 152 |          10 |         15 |        8 |         3 |      72 |       72 |    49 |   10.198039 |    50.198039 |         14.801961 |           10 |             75
+ 153 |          10 |         15 |        9 |         3 |      82 |       82 |    39 |   16.278821 |    91.278821 |                 0 |           10 |     101.278821
+ 154 |          10 |         15 |       10 |         3 |      95 |       95 |    16 |   12.806248 |   114.085069 |                 0 |           10 |     124.085069
+ 155 |          10 |         15 |       11 |         3 |      67 |       67 |     0 |   19.416488 |   143.501557 |                 0 |           10 |     153.501557
+ 156 |          10 |         15 |       12 |         6 |       1 |       -1 |     0 |   13.038405 |   166.539962 |                 0 |            0 |     166.539962
+ 157 |          11 |         11 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+ 158 |          11 |         11 |        2 |         2 |       1 |       78 |     7 |           0 |            0 |                 0 |            0 |              0
+ 159 |          11 |         11 |        3 |         2 |       1 |       26 |    27 |           0 |            0 |                 0 |            0 |              0
+ 160 |          11 |         11 |        4 |         2 |       1 |       87 |    55 |           0 |            0 |                 0 |            0 |              0
+ 161 |          11 |         11 |        5 |         2 |       1 |       23 |    95 |           0 |            0 |                 0 |            0 |              0
+ 162 |          11 |         11 |        6 |         3 |      87 |       87 |    67 |   32.202484 |    32.202484 |         54.797516 |           10 |             97
+ 163 |          11 |         11 |        7 |         3 |      23 |       23 |    27 |   21.023796 |   118.023796 |                 0 |           10 |     128.023796
+ 164 |          11 |         11 |        8 |         3 |      78 |       78 |    20 |   20.808652 |   148.832448 |          1.167552 |           10 |            160
+ 165 |          11 |         11 |        9 |         3 |      26 |       26 |     0 |   12.165525 |   172.165525 |                 0 |           10 |     182.165525
+ 166 |          11 |         11 |       10 |         6 |       1 |       -1 |     0 |   45.276926 |   227.442451 |                 0 |            0 |     227.442451
+ 167 |          12 |          4 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+ 168 |          12 |          4 |        2 |         2 |       1 |       60 |    19 |           0 |            0 |                 0 |            0 |              0
+ 169 |          12 |          4 |        3 |         2 |       1 |       59 |    39 |           0 |            0 |                 0 |            0 |              0
+ 170 |          12 |          4 |        4 |         2 |       1 |      100 |    54 |           0 |            0 |                 0 |            0 |              0
+ 171 |          12 |          4 |        5 |         2 |       1 |       54 |    59 |           0 |            0 |                 0 |            0 |              0
+ 172 |          12 |          4 |        6 |         3 |      60 |       60 |    40 |   42.426407 |    42.426407 |                 0 |           10 |      52.426407
+ 173 |          12 |          4 |        7 |         3 |     100 |      100 |    25 |   21.931712 |    74.358119 |          2.641881 |           10 |             87
+ 174 |          12 |          4 |        8 |         3 |      54 |       54 |    20 |   16.155494 |   103.155494 |                 0 |           10 |     113.155494
+ 175 |          12 |          4 |        9 |         3 |      59 |       59 |     0 |   40.311289 |   153.466783 |                 0 |           10 |     163.466783
+ 176 |          12 |          4 |       10 |         6 |       1 |       -1 |     0 |   47.169906 |   210.636689 |                 0 |            0 |     210.636689
+ 177 |          13 |         10 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+ 178 |          13 |         10 |        2 |         2 |       1 |       86 |     2 |           0 |            0 |                 0 |            0 |              0
+ 179 |          13 |         10 |        3 |         2 |       1 |       90 |    27 |           0 |            0 |                 0 |            0 |              0
+ 180 |          13 |         10 |        4 |         2 |       1 |       65 |    44 |           0 |            0 |                 0 |            0 |              0
+ 181 |          13 |         10 |        5 |         2 |       1 |       53 |    47 |           0 |            0 |                 0 |            0 |              0
+ 182 |          13 |         10 |        6 |         3 |      53 |       53 |    44 |          25 |           25 |                27 |           10 |             62
+ 183 |          13 |         10 |        7 |         3 |      65 |       65 |    27 |          20 |           82 |                 0 |           10 |             92
+ 184 |          13 |         10 |        8 |         3 |      86 |       86 |    25 |   19.313208 |   111.313208 |                 0 |           10 |     121.313208
+ 185 |          13 |         10 |        9 |         3 |      90 |       90 |     0 |   18.439089 |   139.752297 |          4.247703 |           10 |            154
+ 186 |          13 |         10 |       10 |         6 |       1 |       -1 |     0 |   52.478567 |   206.478567 |                 0 |            0 |     206.478567
+ 187 |          14 |         12 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+ 188 |          14 |         12 |        2 |         2 |       1 |        6 |    20 |           0 |            0 |                 0 |            0 |              0
+ 189 |          14 |         12 |        3 |         2 |       1 |       80 |    50 |           0 |            0 |                 0 |            0 |              0
+ 190 |          14 |         12 |        4 |         2 |       1 |        7 |    70 |           0 |            0 |                 0 |            0 |              0
+ 191 |          14 |         12 |        5 |         2 |       1 |       56 |    86 |           0 |            0 |                 0 |            0 |              0
+ 192 |          14 |         12 |        6 |         3 |       6 |        6 |    66 |   40.311289 |    40.311289 | 0.688710999999998 |           10 |             51
+ 193 |          14 |         12 |        7 |         3 |      80 |       80 |    36 |   22.022716 |    73.022716 |         15.977284 |           10 |             99
+ 194 |          14 |         12 |        8 |         3 |       7 |        7 |    16 |   13.892444 |   112.892444 |                 0 |           10 |     122.892444
+ 195 |          14 |         12 |        9 |         3 |      56 |       56 |     0 |   19.209373 |   142.101817 |                 0 |           10 |     152.101817
+ 196 |          14 |         12 |       10 |         6 |       1 |       -1 |     0 |   14.142136 |   166.243953 |                 0 |            0 |     166.243953
+ 197 |          15 |         19 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+ 198 |          15 |         19 |        2 |         2 |       1 |       88 |    13 |           0 |            0 |                 0 |            0 |              0
+ 199 |          15 |         19 |        3 |         2 |       1 |       70 |    40 |           0 |            0 |                 0 |            0 |              0
+ 200 |          15 |         19 |        4 |         2 |       1 |       58 |    63 |           0 |            0 |                 0 |            0 |              0
+ 201 |          15 |         19 |        5 |         2 |       1 |       99 |    72 |           0 |            0 |                 0 |            0 |              0
+ 202 |          15 |         19 |        6 |         3 |      70 |       70 |    45 |    9.219544 |     9.219544 |         31.780456 |           10 |             51
+ 203 |          15 |         19 |        7 |         3 |      99 |       99 |    36 |           5 |           56 |                 0 |           10 |             66
+ 204 |          15 |         19 |        8 |         3 |      88 |       88 |    23 |   31.304952 |    97.304952 |                 0 |           10 |     107.304952
+ 205 |          15 |         19 |        9 |         3 |      58 |       58 |     0 |   18.027756 |   125.332708 |                 0 |           10 |     135.332708
+ 206 |          15 |         19 |       10 |         6 |       1 |       -1 |     0 |   26.925824 |   162.258532 |                 0 |            0 |     162.258532
+ 207 |          16 |         17 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+ 208 |          16 |         17 |        2 |         2 |       1 |       75 |     8 |           0 |            0 |                 0 |            0 |              0
+ 209 |          16 |         17 |        3 |         2 |       1 |       98 |    43 |           0 |            0 |                 0 |            0 |              0
+ 210 |          16 |         17 |        4 |         2 |       1 |       76 |    59 |           0 |            0 |                 0 |            0 |              0
+ 211 |          16 |         17 |        5 |         3 |      76 |       76 |    43 |   57.008771 |    57.008771 |         16.991229 |           10 |             84
+ 212 |          16 |         17 |        6 |         3 |      98 |       98 |     8 |   13.038405 |    97.038405 |         22.961595 |           10 |            130
+ 213 |          16 |         17 |        7 |         3 |      75 |       75 |     0 |   16.124515 |   146.124515 |                 0 |           10 |     156.124515
+ 214 |          16 |         17 |        8 |         6 |       1 |       -1 |     0 |   36.055513 |   192.180028 |                 0 |            0 |     192.180028
+ 215 |          17 |         16 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+ 216 |          17 |         16 |        2 |         2 |       1 |       69 |    21 |           0 |            0 |                 0 |            0 |              0
+ 217 |          17 |         16 |        3 |         2 |       1 |       79 |    48 |           0 |            0 |                 0 |            0 |              0
+ 218 |          17 |         16 |        4 |         2 |       1 |       74 |    53 |           0 |            0 |                 0 |            0 |              0
+ 219 |          17 |         16 |        5 |         3 |      74 |       74 |    48 |   39.293765 |    39.293765 |         37.706235 |           10 |             87
+ 220 |          17 |         16 |        6 |         3 |      79 |       79 |    21 |    7.211103 |    94.211103 |                 0 |           10 |     104.211103
+ 221 |          17 |         16 |        7 |         3 |      69 |       69 |     0 |   32.249031 |   136.460134 |  7.53986600000002 |           10 |            154
+ 222 |          17 |         16 |        8 |         6 |       1 |       -1 |     0 |          10 |          164 |                 0 |            0 |            164
+ 223 |          18 |          9 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+ 224 |          18 |          9 |        2 |         2 |       1 |       62 |     9 |           0 |            0 |                 0 |            0 |              0
+ 225 |          18 |          9 |        3 |         2 |       1 |       37 |    49 |           0 |            0 |                 0 |            0 |              0
+ 226 |          18 |          9 |        4 |         2 |       1 |       45 |    59 |           0 |            0 |                 0 |            0 |              0
+ 227 |          18 |          9 |        5 |         3 |      37 |       37 |    19 |   43.011626 |    43.011626 |                 0 |           10 |      53.011626
+ 228 |          18 |          9 |        6 |         3 |      45 |       45 |     9 |   10.440307 |    63.451933 | 0.548067000000003 |           10 |             74
+ 229 |          18 |          9 |        7 |         3 |      62 |       62 |     0 |   19.723083 |    93.723083 |                 0 |           10 |     103.723083
+ 230 |          18 |          9 |        8 |         6 |       1 |       -1 |     0 |   15.811388 |   119.534471 |                 0 |            0 |     119.534471
+ 231 |          19 |         18 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+ 232 |          19 |         18 |        2 |         2 |       1 |       91 |     6 |           0 |            0 |                 0 |            0 |              0
+ 233 |          19 |         18 |        3 |         2 |       1 |       12 |    46 |           0 |            0 |                 0 |            0 |              0
+ 234 |          19 |         18 |        4 |         3 |      12 |       12 |     6 |   33.526109 |    33.526109 |         25.473891 |           10 |             69
+ 235 |          19 |         18 |        5 |         3 |      91 |       91 |     0 |   29.832868 |    98.832868 |                 0 |           10 |     108.832868
+ 236 |          19 |         18 |        6 |         6 |       1 |       -1 |     0 |    4.242641 |   113.075509 |                 0 |            0 |     113.075509
+ 237 |          20 |         20 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+ 238 |          20 |         20 |        2 |         2 |       1 |       83 |     9 |           0 |            0 |                 0 |            0 |              0
+ 239 |          20 |         20 |        3 |         3 |      83 |       83 |     0 |   14.764823 |    14.764823 |         27.235177 |           10 |             52
+ 240 |          20 |         20 |        4 |         6 |       1 |       -1 |     0 |   14.764823 |    66.764823 |                 0 |            0 |      66.764823
+ 241 |          -2 |          0 |        0 |        -1 |      -1 |       -1 |    -1 | 2304.305537 |           -1 |        408.022775 |         1000 |    3712.328312
+(241 rows)
+
+ROLLBACK;
+ROLLBACK
diff --git a/doc/queries/proof_of_concept.queries b/doc/queries/proof_of_concept.queries
new file mode 100644
index 0000000..1e9f91c
--- /dev/null
+++ b/doc/queries/proof_of_concept.queries
@@ -0,0 +1,137 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+Adding an additional column to store if its part of the contracted graph
+ALTER TABLE edge_table ADD is_contracted BOOLEAN DEFAULT false;
+ALTER TABLE
+Adding a new edge joining vertices 3 and 5 with cost=2 to the edge table
+INSERT INTO edge_table(id, source, target, cost, reverse_cost, is_contracted)
+VALUES (19, 3, 5, 2, 2, true);
+INSERT 0 1
+Adding a new edge joining vertices 3 and 9 with cost=2 to the edge table
+INSERT INTO edge_table(id, source, target, cost, reverse_cost, is_contracted)
+VALUES (20, 3, 9, 2, 2, true);
+INSERT 0 1
+Adding a new edge joining vertices 5 and 11 with cost=2 to the edge table
+INSERT INTO edge_table(id, source, target, cost, reverse_cost, is_contracted)
+VALUES (21, 5, 11, 2, 2, true);
+INSERT 0 1
+Adding a new edge joining vertices 9 and 11 with cost=2 to the edge table
+INSERT INTO edge_table(id, source, target, cost, reverse_cost, is_contracted)
+VALUES (22, 9, 11, 2, 2, true);
+INSERT 0 1
+Case 1: Both source and target belong to the contracted graph.
+We are going to route from 3 to 11
+Since 3 and 11 both are in the contracted graph we need not add any vertices.
+SELECT * FROM
+pgr_dijkstra($$
+    SELECT id, source, target, cost, reverse_cost
+    FROM edge_table
+    WHERE source IN (3, 5, 6, 9, 11, 15, 17)
+        AND target IN (3, 5, 6, 9, 11, 15, 17)$$,
+    3, 11, false);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    3 |    5 |    1 |        0
+   2 |        2 |    6 |   11 |    1 |        1
+   3 |        3 |   11 |   -1 |    0 |        2
+(3 rows)
+
+Case 2: source belongs to a contracted graph, while target belongs to a vertex subgraph.
+We are going to route from 3 to 7
+Since 7 is in the contracted subgraph of vertex 5 we add {7, 8} to the vertex set, so the vertex set becomes (3, 5, 6, 7, 8, 9, 11, 15, 17)
+SELECT * FROM pgr_dijkstra($$
+    SELECT id, source, target, cost, reverse_cost
+    FROM edge_table
+    WHERE source IN (3, 5, 6, 9, 11, 15, 17,   7, 8)
+        AND target IN (3, 5, 6, 9, 11, 15, 17,   7, 8)$$,
+    3, 7, false);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    3 |   19 |    2 |        0
+   2 |        2 |    5 |    7 |    1 |        2
+   3 |        3 |    8 |    6 |    1 |        3
+   4 |        4 |    7 |   -1 |    0 |        4
+(4 rows)
+
+Case 3: source belongs to a contracted graph, while target belongs to a edge subgraph.
+We are going to route from 3 to 13
+Since 13 is in the contracted subgraph of edge (5, 11) we add {10, 13} to the vertex set, so the vertex set becomes (3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17)
+SELECT * FROM pgr_dijkstra($$
+    SELECT id, source, target, cost, reverse_cost
+    FROM edge_table
+    WHERE source IN (3, 5, 6, 9, 11, 15, 17,    10, 13)
+        AND target IN (3, 5, 6, 9, 11, 15, 17,    10, 13)$$,
+    3, 13, false);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    3 |    5 |    1 |        0
+   2 |        2 |    6 |   11 |    1 |        1
+   3 |        3 |   11 |   12 |    1 |        2
+   4 |        4 |   10 |   14 |    1 |        3
+   5 |        5 |   13 |   -1 |    0 |        4
+(5 rows)
+
+Case 4: source belongs to a vertex subgraph, while target belongs to a edge subgraph.
+We are going to route from 7 to 13
+Since 13 is in the contracted subgraph of edge (5, 11) we add {10, 13} to the vertex set, and since 7 is in the contracted subgraph of vertex 5 we add {7, 8} to the vertex sets (3, 5, 6, 7, 8, 9, 11, 15, 17)
+SELECT * FROM pgr_dijkstra($$
+    SELECT id, source, target, cost, reverse_cost
+    FROM edge_table
+    WHERE source IN (3, 5, 6, 9, 11, 15, 17,    7, 8,   10, 13)
+        AND target IN (3, 5, 6, 9, 11, 15, 17,   7, 8,   10, 13)$$,
+    7, 13, false);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    7 |    6 |    1 |        0
+   2 |        2 |    8 |    7 |    1 |        1
+   3 |        3 |    5 |   10 |    1 |        2
+   4 |        4 |   10 |   14 |    1 |        3
+   5 |        5 |   13 |   -1 |    0 |        4
+(5 rows)
+
+Case 5: The path contains a shortcut.
+We are going to route from 3 to 9
+Since 3 and 9 both are in the contracted graph we need not add any vertices.
+SELECT * FROM pgr_dijkstra($$
+    SELECT id, source, target, cost, reverse_cost
+    FROM edge_table
+    WHERE source IN (3, 5, 6, 7, 8, 9, 11, 15, 17)
+        AND target IN (3, 5, 6, 7, 8, 9, 11, 15, 17)$$,
+    3, 9, false);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    3 |   20 |    2 |        0
+   2 |        2 |    9 |   -1 |    0 |        2
+(2 rows)
+
+SELECT id, source, target, cost, reverse_cost, is_contracted
+FROM edge_table
+WHERE is_contracted = true
+ORDER BY id;
+ id | source | target | cost | reverse_cost | is_contracted 
+----+--------+--------+------+--------------+---------------
+ 19 |      3 |      5 |    2 |            2 | t
+ 20 |      3 |      9 |    2 |            2 | t
+ 21 |      5 |     11 |    2 |            2 | t
+ 22 |      9 |     11 |    2 |            2 | t
+(4 rows)
+
+This implies that it is a shortcut and should be expanded
+SELECT * FROM pgr_dijkstra($$
+    SELECT id, source, target, cost, reverse_cost
+    FROM edge_table
+    WHERE source IN (3, 5, 6, 7, 8, 9, 11, 15, 17)
+        AND target IN (3, 5, 6, 7, 8, 9, 11, 15, 17)
+        AND is_contracted=false$$,
+    3, 9, false);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    3 |    5 |    1 |        0
+   2 |        2 |    6 |    9 |    1 |        1
+   3 |        3 |    9 |   -1 |    0 |        2
+(3 rows)
+
+ROLLBACK;
+ROLLBACK
diff --git a/doc/queries/trsp_notes_v2.5.0.queries b/doc/queries/trsp_notes_v2.5.0.queries
new file mode 100644
index 0000000..fec6b64
--- /dev/null
+++ b/doc/queries/trsp_notes_v2.5.0.queries
@@ -0,0 +1,1112 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+ROLLBACK;
+ROLLBACK
+# Notes on pgr_trsp for version 2.5.0
+Table of contents
+* [Introduction](#introduction)
+  * [The restriction](#the-restriction)
+* [The Vertices Signature Version](#the-vertices-signature-version)
+  * [No path representation differences](#vertices-no-path-representation-differences)
+  * [Routing from/to same location](#routing-fromto-same-location)
+  * [Undirected graph](#vertices-undirected-graph)
+* [The Edges Signature Version](#the-edges-signature-version)
+  * [No path representation differences](#edges-no-path-representation-differences)
+  * [Definition of a path](#definition-of-a-path)
+  * [Points on the same edge](#points-on-the-same-edge)
+  * [Undirected graph](#edges-undirected-graph)
+  * [Using a points of interest table](#using-a-points-of-interest-table)
+  * [Routing from/to the same point](#routing-fromto-the-same-point)
+  * [Passing in front of other points](#passing-in-front-of-other-points)
+  * [Routing from a vertex to a point](#edges-routing-from-a-vertex-to-a-point)
+* [pgr_trspViaVertices](#pgr_trspviavertices)
+  * [pgr_trspViaVertices No path representation differences](#pgr_trspviavertices-no-path-representation-differences)
+  * [when a path does not exist on the route](#when-a-path-does-not-exist-on-the-route)
+  * [from 2 to 3 to 2](#from-2-to-3-to-2)
+* [pgr_trspViaEdges](#pgr_trspviaedges)
+  * [pgr_trspViaEdges No path representation differences](#pgr_trspviaedges-no-path-representation-differences)
+  * [Using a points of interest table](#pgr_trspviaedges-using-the-pointsofinterest-table)
+
+# Introduction
+pgr_trsp code has issues that are not being fixed yet, but as time passes and new functionality is added to pgRouting with wrappers to **hide** the issues, not to fix them.
+
+For clarity on the queries:
+* _pgr_trsp (with underscore) is the original code
+* pgr_trsp (lower case) represents the wrapper calling the original code
+* pgr_TRSP (upper case) represents the wrapper calling the replacement function, depending on the function, it can be:
+  * pgr_dijkstra
+  * pgr_dijkstraVia
+  * pgr_withPoints
+  * _pgr_withPointsVia
+
+This page intentions is to compare the original code with the wrapped version of the trsp group of functions.
+## The restriction
+The restriction used in the examples does not have to do anything with the graph:
+* No vertex has id: 25, 32 or 33
+* No edge has id: 25, 32 or 33
+```
+$$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, 32, 33::TEXT AS via_path$$
+```
+therefore the shortest path expected are as if there was no restriction involved
+# The Vertices signature version
+## (Vertices) No path representation differences
+Original function code
+* Sometimes it crasses the server when no path was found
+* Sometimes represents with Error a no path found
+* Forcing the user to use the wrapper or the replacement function
+
+Calls to the original function of is no longer allowed without restrictions
+```
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 15, true, true
+);
+ERROR:  Error computing path: Path Not Found
+```
+dijkstra returns EMPTY SET to represent no path found
+```
+SELECT * FROM pgr_dijkstra(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 15
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+(0 rows)
+
+```
+pgr_trsp use the pgr_dijkstra when there are no restrictions
+therefore returns EMPTY SET to represent no path found
+```
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 15, true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+(0 rows)
+
+```
+pgr_trsp use the original code when there are restrictions
+therefore throws Error to represent no path found
+```
+SELECT * FROM pgr_trsp(
+     $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+     1, 15, true, true,
+     $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ERROR:  Error computing path: Path Not Found
+CONTEXT:  PL/pgSQL function pgr_trsp(text,integer,integer,boolean,boolean,text) line 29 at RETURN QUERY
+```
+## routing from/to same location
+using dijkstra to verify (1 to 1)
+```
+SELECT * FROM pgr_dijkstra(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 1
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+(0 rows)
+
+```
+This call uses the replacement function because there are no restrictions (1 to 1)
+therefore is expected to return EMPTY SET to represent no path found
+```
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    1, 1,  true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+(0 rows)
+
+```
+call forcing the use of the original code (1 to 1)
+* not longer allowed without restrictions
+
+```
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    1, 1,  true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |   1 |   1 |    1
+   1 |   2 |   4 |    1
+   2 |   5 |   8 |    1
+   3 |   6 |   9 |    1
+   4 |   9 |  16 |    1
+   5 |   4 |   3 |    1
+   6 |   3 |   2 |    1
+   7 |   2 |   1 |    1
+   8 |   1 |  -1 |    0
+(9 rows)
+
+```
+trsp with restrictions (1 to 1) use the original code
+is expected to return Error to represent no path found
+```
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    1, 1,  
+    true, 
+    true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |   1 |   1 |    1
+   1 |   2 |   4 |    1
+   2 |   5 |   8 |    1
+   3 |   6 |   9 |    1
+   4 |   9 |  16 |    1
+   5 |   4 |   3 |    1
+   6 |   3 |   2 |    1
+   7 |   2 |   1 |    1
+   8 |   1 |  -1 |    0
+(9 rows)
+
+```
+trsp calling the original code with restrictions (1 to 1)
+is expected to return Error to represent no path found
+but "finds" a path when there should be no path.
+```
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    1, 1,  
+    true, 
+    true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |   1 |   1 |    1
+   1 |   2 |   4 |    1
+   2 |   5 |   8 |    1
+   3 |   6 |   9 |    1
+   4 |   9 |  16 |    1
+   5 |   4 |   3 |    1
+   6 |   3 |   2 |    1
+   7 |   2 |   1 |    1
+   8 |   1 |  -1 |    0
+(9 rows)
+
+```
+## (vertices) Undirected graph
+using Dijkstra to verify the shortest path from (2 to 3) on undirected graph
+```
+SELECT * FROM pgr_dijkstra(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    2, 3, false
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    2 |    1 |        0
+   2 |        2 |    3 |   -1 |    0 |        1
+(2 rows)
+
+```
+using the replacement function because there are no restrictions (2 to 3)
+```
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    2, 3,
+    false, 
+    true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |   2 |   2 |    1
+   1 |   3 |  -1 |    0
+(2 rows)
+
+```
+call forcing the use of the original code
+* not longer allowed without restrictions
+
+```
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    2, 3,
+    false, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |   2 |   4 |    1
+   1 |   5 |   8 |    1
+   2 |   6 |   9 |    1
+   3 |   9 |  16 |    1
+   4 |   4 |   3 |    1
+   5 |   3 |  -1 |    0
+(6 rows)
+
+```
+trsp with restrictions (2 to 3)
+does not find the shortest path
+```
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    2, 3,
+    false, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |   2 |   4 |    1
+   1 |   5 |   8 |    1
+   2 |   6 |   9 |    1
+   3 |   9 |  16 |    1
+   4 |   4 |   3 |    1
+   5 |   3 |  -1 |    0
+(6 rows)
+
+```
+calling the original code with restrictions (2 to 3)
+does not find the shortest path
+```
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    2, 3,
+    false, 
+    true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |   2 |   4 |    1
+   1 |   5 |   8 |    1
+   2 |   6 |   9 |    1
+   3 |   9 |  16 |    1
+   4 |   4 |   3 |    1
+   5 |   3 |  -1 |    0
+(6 rows)
+
+```
+# The Edges signature version
+## (Edges) No path representation differences
+Original function code
+* Sometimes it crasses the server when no path was found
+* Sometimes represents with Error a no path found
+* Forcing the user to use the wrapper or the replacement function
+
+Calls to the original function of is no longer allowed without restrictions
+```
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 0.5, 17, 0.5, true, true
+);
+ERROR:  Error computing path: Path Not Found
+```
+pgr_withPoints returns EMPTY SET to represent no path found
+```
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$(SELECT 1 as pid, 1 as edge_id, 0.5::float as fraction)
+    UNION
+    (SELECT 2, 17, 0.5)$$,
+    -1, -2
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+(0 rows)
+
+```
+## Definition of a path
+Remember that one characteristic of a path is that for a path of N edges it has N+1 vertices.
+
+For this example, suppose points, where the pid are different even if the edge and fraction are different.
+One point might be on the left side other on the right side, pgr_trsp does not take into account
+the side of the point
+calls forcing the use of the original code
+* not longer allowed without restrictions
+
+```
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 0.5, 1, 0.5, true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   1 |    0
+(1 row)
+
+```
+* with restrictions
+```
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 0.5, 1, 0.5, true, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   1 |    0
+(1 row)
+
+```
+Using the *pgr_withPoints* it returns a path of N edge and N+1 vertices
+```
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$(SELECT 1 as pid, 1 as edge_id, 0.5::float as fraction)
+    UNION
+    (SELECT 2, 1, 0.5)$$,
+    -1, -2
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |   -1 |    1 |    0 |        0
+   2 |        2 |   -2 |   -1 |    0 |        0
+(2 rows)
+
+```
+The *pgr_withPoints* is used when there are no restrictions
+```
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 0.5, 1, 0.5, true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   1 |    0
+   1 |  -2 |  -1 |    0
+(2 rows)
+
+```
+The original *_pgr_trsp* code is used when there are restrictions
+```
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 0.5, 1, 0.5, true, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   1 |    0
+(1 row)
+
+```
+note that pgr_withPoints returns an EMPTY SET when the point is the same
+```
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$(SELECT 1 as pid, 1 as edge_id, 0.5::float as fraction)
+    UNION
+    (SELECT 2, 1, 0.5)$$,
+    -1, -1
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+(0 rows)
+
+```
+## Points on the same edge
+The *pgr_withPoints* is used when there are no restrictions
+* it returns a path of N edges and N+1 vertices
+```
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 0.5, 1, 0.8, true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   1 |  0.3
+   1 |  -2 |  -1 |    0
+(2 rows)
+
+```
+The original *_pgr_trsp* is used when there are restrictions
+* it returns a path of N edges and N vertex instead of N edge and N+1 vertices
+```
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 0.5, 1, 0.8, true, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   1 |  0.3
+(1 row)
+
+```
+## (Edges) Undirected graph
+the shortest path obtained with *pgr_withPoints*
+```
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$(SELECT 1 as pid, 4 as edge_id, 0.5::float as fraction)
+    UNION
+    (SELECT 2, 2, 0.8)$$,
+    -1, -2, directed:=false
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |   -1 |    4 |  0.5 |        0
+   2 |        2 |    2 |    2 |  0.8 |      0.5
+   3 |        3 |   -2 |   -1 |    0 |      1.3
+(3 rows)
+
+```
+The original *_pgr_trsp* is used when there are restrictions
+
+```
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    4, 0.5, 2, 0.8, false, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   4 |  0.5
+   1 |   2 |   2 |  0.8
+   2 |  -2 |  -1 |    0
+(3 rows)
+
+```
+when using restrictions the original *_pgr_trsp* is used internally
+* it returns a path of N edges and N vertex instead of N edge and N+1 vertices
+* it does not return the shortest path.
+
+```
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    4, 0.5, 2, 0.8, false, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   4 |  0.5
+   1 |   5 |   8 |    1
+   2 |   6 |   9 |    1
+   3 |   9 |  16 |    1
+   4 |   4 |   3 |    1
+   5 |   3 |   2 |  0.2
+(6 rows)
+
+```
+## Using a points of interest table
+The points of interest
+```
+SELECT * FROM pointsOfInterest;
+ pid |  x  |  y  | edge_id | side | fraction |                  the_geom                  |                  newpoint                  
+-----+-----+-----+---------+------+----------+--------------------------------------------+--------------------------------------------
+   1 | 1.8 | 0.4 |       1 | l    |      0.4 | 0101000000CDCCCCCCCCCCFC3F9A9999999999D93F | 010100000000000000000000409A9999999999D93F
+   2 | 4.2 | 2.4 |      15 | r    |      0.4 | 0101000000CDCCCCCCCCCC10403333333333330340 | 010100000000000000000010403333333333330340
+   3 | 2.6 | 3.2 |      12 | l    |      0.6 | 0101000000CDCCCCCCCCCC04409A99999999990940 | 0101000000CDCCCCCCCCCC04400000000000000840
+   4 | 0.3 | 1.8 |       6 | r    |      0.3 | 0101000000333333333333D33FCDCCCCCCCCCCFC3F | 0101000000333333333333D33F0000000000000040
+   5 | 2.9 | 1.8 |       5 | l    |      0.8 | 01010000003333333333330740CDCCCCCCCCCCFC3F | 01010000000000000000000840CDCCCCCCCCCCFC3F
+   6 | 2.2 | 1.7 |       4 | b    |      0.7 | 01010000009A99999999990140333333333333FB3F | 01010000000000000000000040333333333333FB3F
+(6 rows)
+
+```
+On *pgr_trsp*, to be able to use the table information:
+* Each parameter has to be extracted explicitly from the table
+* Regardles of the point pid original value
+  * will always be -1 for the first point
+  * will always be -2 for the second point
+```
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 6),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 6),
+    true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   1 |  0.6
+   1 |   2 |   4 |  0.7
+   2 |  -2 |  -1 |    0
+(3 rows)
+
+```
+On *pgr_withPoints*, to be able to use the table information:
+* select statement on the *pointsOfInterest* table
+* *Negative* the id to represent the id is a pid
+* The points pids in the result are not renumbered
+* The points pids in the result are represented with negative sign
+```
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$SELECT pid, edge_id, fraction FROM pointsOfInterest$$,
+    -1, -6
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |   -1 |    1 |  0.6 |        0
+   2 |        2 |    2 |    4 |  0.7 |      0.6
+   3 |        3 |   -6 |   -1 |    0 |      1.3
+(3 rows)
+
+```
+## routing from/to the same point
+using pgr_withPoints to check results
+expecting EMPTY SET to represent no path found
+```
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$SELECT pid, edge_id, fraction FROM pointsOfInterest$$,
+    -1, -1
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+(0 rows)
+
+```
+This call uses the replacement function because there are no restrictions
+* Because the pid is not involved the points are considered different
+* it returns a path
+
+```
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   1 |    0
+   1 |  -2 |  -1 |    0
+(2 rows)
+
+```
+pgr_trsp with restrictions use the original code
+* it returns a path of N edges and N vertex instead of N edge and N+1 vertices
+
+```
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    true, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   1 |    0
+(1 row)
+
+```
+## passing in front of other points
+using pgr_withPoints to verify the shortest path from pids (1 to 3)
+```
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$SELECT pid, edge_id, fraction FROM pointsOfInterest$$,
+    -1, -3
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |   -1 |    1 |  0.6 |        0
+   2 |        2 |    2 |    4 |    1 |      0.6
+   3 |        3 |    5 |   10 |    1 |      1.6
+   4 |        4 |   10 |   12 |  0.6 |      2.6
+   5 |        5 |   -3 |   -1 |    0 |      3.2
+(5 rows)
+
+```
+**pgr_withPoints** can be used to see when the route passes in front of other points
+In this example point pid=6 is passed in front of
+```
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$SELECT pid, edge_id, fraction FROM pointsOfInterest$$,
+    -1, -3, details:=true
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |   -1 |    1 |  0.6 |        0
+   2 |        2 |    2 |    4 |  0.7 |      0.6
+   3 |        3 |   -6 |    4 |  0.3 |      1.3
+   4 |        4 |    5 |   10 |    1 |      1.6
+   5 |        5 |   10 |   12 |  0.6 |      2.6
+   6 |        6 |   -3 |   -1 |    0 |      3.2
+(6 rows)
+
+```
+Can not be used to see if other points are passed in front of.
+The pointsOfInterest table is not part of the parameter
+```
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 3),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 3),
+    true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   1 |  0.6
+   1 |   2 |   4 |    1
+   2 |   5 |  10 |    1
+   3 |  10 |  12 |  0.6
+   4 |  -2 |  -1 |    0
+(5 rows)
+
+```
+## (edges) Routing from a vertex to a point
+Showing *pgr_withPoints* results of the shortest path from vid 6 to pid 1
+```
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$SELECT pid, edge_id, fraction FROM pointsOfInterest$$,
+    6, -1
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    6 |    8 |    1 |        0
+   2 |        2 |    5 |    4 |    1 |        1
+   3 |        3 |    2 |    1 |  0.6 |        2
+   4 |        4 |   -1 |   -1 |    0 |      2.6
+(4 rows)
+
+```
+* Vertex 6 is on edge 8 at 1 fraction
+* Vertex 6 is also edge 11 at 0 fraction
+* Undefined behaviour when at least one of the "points" is an actual vertex
+
+```
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    8, 1,
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+(0 rows)
+
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    11, 0,
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+(0 rows)
+
+```
+# pgr_trspViaVertices
+## pgr_trspViaVertices No path representation differences
+pgr_trspViaVertices uses _pgr_trsp which as mentioned before
+* Sometimes it crasses the server when no path was found
+* Sometimes represents with Error a no path found
+* Forcing the user to use the wrapper or the replacement function
+
+Calls to the original function of is no longer allowed without restrictions
+```
+SELECT * FROM _pgr_trspViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 15, 2],
+    false, true
+);
+ERROR:  Error computing path: Path Not Found
+CONTEXT:  PL/pgSQL function _pgr_trspviavertices(text,integer[],boolean,boolean,text) line 16 at FOR over SELECT rows
+SELECT * FROM _pgr_trspViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 15, 2, 1],
+    false, true
+);
+ERROR:  Error computing path: Path Not Found
+CONTEXT:  PL/pgSQL function _pgr_trspviavertices(text,integer[],boolean,boolean,text) line 16 at FOR over SELECT rows
+```
+**pgr_dijkstraVia** returning what paths of the route it finds or EMPTY SET when non is found
+this case none is found
+```
+SELECT * FROM pgr_dijkstraVia(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 15, 2],
+    false
+);
+ seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost | route_agg_cost 
+-----+---------+----------+-----------+---------+------+------+------+----------+----------------
+(0 rows)
+
+```
+this case only from 2 to 1 is found
+```
+SELECT * FROM pgr_dijkstraVia(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 15, 2, 1],
+    false
+);
+ seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost | route_agg_cost 
+-----+---------+----------+-----------+---------+------+------+------+----------+----------------
+   1 |       3 |        1 |         2 |       1 |    2 |    1 |    1 |        0 |              0
+   2 |       3 |        2 |         2 |       1 |    1 |   -2 |    0 |        1 |              1
+(2 rows)
+
+```
+the **pgr_dijkstraVia** used are for complete routes so its marked as **strict:=true**
+therefore the expected result is EMPTY SET to represent no route was found
+```
+SELECT * FROM pgr_dijkstraVia(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 1, 2],
+    false,
+    strict := true
+);
+ seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost | route_agg_cost 
+-----+---------+----------+-----------+---------+------+------+------+----------+----------------
+(0 rows)
+
+```
+## when a path does not exist on the route
+pgr_TRSPViaVertices using the *pgr_dijkstraVia* when there are no restrictions.
+Because there is no path from 1 to 1 then there is no complete route 1 to 1 to 2
+therefore the expected result is EMPTY SET to represent no route was found
+```
+SELECT * FROM pgr_TRSPViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 1, 2],
+    false, true
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+(0 rows)
+
+```
+Calls to the original function of is no longer allowed without restrictions
+```
+SELECT * FROM _pgr_trspViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 1, 2],
+    false, true
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |   1 |   1 |    1
+   2 |   1 |   2 |   4 |    1
+   3 |   1 |   5 |   8 |    1
+   4 |   1 |   6 |   9 |    1
+   5 |   1 |   9 |  16 |    1
+   6 |   1 |   4 |   3 |    1
+   7 |   1 |   3 |   2 |    1
+   8 |   1 |   2 |   1 |    1
+   9 |   2 |   1 |   1 |    1
+  10 |   2 |   2 |  -1 |    0
+(10 rows)
+
+```
+with restrictions the original code is used
+```
+SELECT * FROM pgr_trspViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 1, 2],
+    false, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |   1 |   1 |    1
+   2 |   1 |   2 |   4 |    1
+   3 |   1 |   5 |   8 |    1
+   4 |   1 |   6 |   9 |    1
+   5 |   1 |   9 |  16 |    1
+   6 |   1 |   4 |   3 |    1
+   7 |   1 |   3 |   2 |    1
+   8 |   1 |   2 |   1 |    1
+   9 |   2 |   1 |   1 |    1
+  10 |   2 |   2 |  -1 |    0
+(10 rows)
+
+```
+Using explicitly the original code
+```
+SELECT * FROM _pgr_trspViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 1, 2],
+    false, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |   1 |   1 |    1
+   2 |   1 |   2 |   4 |    1
+   3 |   1 |   5 |   8 |    1
+   4 |   1 |   6 |   9 |    1
+   5 |   1 |   9 |  16 |    1
+   6 |   1 |   4 |   3 |    1
+   7 |   1 |   3 |   2 |    1
+   8 |   1 |   2 |   1 |    1
+   9 |   2 |   1 |   1 |    1
+  10 |   2 |   2 |  -1 |    0
+(10 rows)
+
+```
+## from 2 to 3 to 2
+dijkstra via shows the shortest route on the two paths
+```
+SELECT * FROM pgr_dijkstraVia(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[2, 3, 2],
+    false 
+);
+ seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost | route_agg_cost 
+-----+---------+----------+-----------+---------+------+------+------+----------+----------------
+   1 |       1 |        1 |         2 |       3 |    2 |    2 |    1 |        0 |              0
+   2 |       1 |        2 |         2 |       3 |    3 |   -1 |    0 |        1 |              1
+   3 |       2 |        1 |         3 |       2 |    3 |    2 |    1 |        0 |              1
+   4 |       2 |        2 |         3 |       2 |    2 |   -2 |    0 |        1 |              2
+(4 rows)
+
+```
+the replacement function **pgr_dijkstraVia** is used because there are no restrictions
+```
+SELECT * FROM pgr_TRSPViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[2, 3, 2],
+    false, 
+    true
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |   2 |   2 |    1
+   2 |   2 |   3 |   2 |    1
+   3 |   2 |   2 |  -1 |    0
+(3 rows)
+
+```
+Calls to the original function of is no longer allowed without restrictions
+```
+SELECT * FROM _pgr_trspViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[2, 3, 2],
+    false, 
+    true
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |   2 |   4 |    1
+   2 |   1 |   5 |   8 |    1
+   3 |   1 |   6 |   9 |    1
+   4 |   1 |   9 |  16 |    1
+   5 |   1 |   4 |   3 |    1
+   6 |   2 |   3 |   2 |    1
+   7 |   2 |   2 |  -1 |    0
+(7 rows)
+
+```
+# pgr_trspViaEdges
+*pgr_trspViaEdges* will use the original code when
+* There are restrictions
+* A point is a vertex in disguise (with pcts value of 0)
+
+What it returns
+* Error to represent no route
+* the points are renumbered to -1, -2 .. -N
+* if a point is part of a path it will **not** show on the path
+
+Exaple execution
+```
+SELECT * FROM pgr_trspViaEdges(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 2, 1], ARRAY[0.1,0.5,0.5],
+    false, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |  -1 |   1 |  0.9
+   2 |   1 |   2 |   4 |    1
+   3 |   1 |   5 |   8 |    1
+   4 |   1 |   6 |   9 |    1
+   5 |   1 |   9 |  16 |    1
+   6 |   1 |   4 |   3 |    1
+   7 |   1 |   3 |   2 |    1
+   8 |   2 |   2 |   1 |  0.5
+(8 rows)
+
+```
+A temporay wraper function is used when:
+* There are no restrictions
+* Before: No point is a vertex in disguise (with pcts value of 0)
+* Now: c$Undefined behaviour when a point is a vertex in disguise (with pcts value of 0)
+
+Internaly:
+* builds a new graph and calls pgr_dijkstraVia
+
+What it returns
+* returns EMPTY SET to represent no route
+* edge = -1 in the result to represent the end of a intermediate path
+* edge = -2 in the result to represent the end of the last path & route
+* the points are renumbered to -1, -2 .. -N
+* if a point is part of a path it will show on the path
+
+Note: I do not mention the wrapper name due to the fact that this is not official documentation
+Note: I will use *_pgr_withPointsVia* as the wrapper name just for sake of this notes
+Example excution
+```
+SELECT * FROM _pgr_withPointsVia(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 2, 1], ARRAY[0.1,0.5,0.5],
+    directed := false
+);
+ seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost | route_agg_cost 
+-----+---------+----------+-----------+---------+------+------+------+----------+----------------
+   1 |       1 |        1 |        -1 |      -2 |   -1 |    1 |  0.1 |        0 |              0
+   2 |       1 |        2 |        -1 |      -2 |    2 |    2 |  0.5 |      0.1 |            0.1
+   3 |       1 |        3 |        -1 |      -2 |   -2 |   -1 |    0 |      0.6 |            0.6
+   4 |       2 |        1 |        -2 |      -3 |   -2 |    2 |  0.5 |        0 |            0.6
+   5 |       2 |        2 |        -2 |      -3 |    2 |    1 |  0.5 |      0.5 |            1.1
+   6 |       2 |        3 |        -2 |      -3 |   -3 |   -2 |    0 |        1 |            1.6
+(6 rows)
+
+```
+## pgr_trspViaEdges No path representation differences
+This example no path is found (edge 17 is disconnected) from the big graph.
+* There is a vertex in disguise (fraction 0 or 1)
+* Undefined behaviour
+
+```
+SELECT * FROM pgr_trspViaEdges(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 17, 1], ARRAY[0,0.5,0.5],
+    false, true
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |     |     |     |     
+(1 row)
+
+```
+This example no path is found (edge 17 is disconnected) from the big graph.
+* Has a restriction
+* *pgr_trspViaEdges* original code is used
+* throws error to represent no route was not found
+
+```
+SELECT * FROM pgr_trspViaEdges(
+$$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+ARRAY[1, 17, 1], ARRAY[0.5,0.5,0.5],
+false, true,
+$$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, 32, 33::TEXT AS via_path$$
+);
+server closed the connection unexpectedly
+This probably means the server terminated abnormally
+before or while processing the request.
+The connection to the server was lost. Attempting reset: Failed.
+```
+This example no path is found (edge 17 is disconnected) from the big graph.
+* *_pgr_withPointsVia* is used
+* returns EMPTY SET to represent no route
+
+```
+SELECT * FROM pgr_trspViaEdges(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 17, 1], ARRAY[0.1,0.5,0.5],
+    false, 
+    true
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+(0 rows)
+
+```
+## (pgr_trspViaEdges) Using the pointsOfInterest table
+Only routing points
+when *_pgr_withPointsVia* is used
+* the renumbering still takes place
+
+```
+SELECT * FROM pgr_trspViaEdges(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 3),
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 6)],
+    ARRAY[
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 3),
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 6)],
+    false, 
+    true
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |  -1 |   1 |  0.4
+   2 |   1 |   2 |   4 |  0.3
+   3 |   1 |  -3 |   4 |  0.3
+   4 |   1 |   5 |  10 |    1
+   5 |   1 |  10 |  12 |  0.6
+   6 |   1 |  -2 |  -1 |    0
+   7 |   2 |  -2 |  12 |  0.6
+   8 |   2 |  10 |  10 |    1
+   9 |   2 |   5 |   4 |  0.3
+  10 |   2 |  -3 |  -2 |    0
+(10 rows)
+
+```
+Only routing points
+when originalcode is used (because there is a restriction)
+
+```
+SELECT * FROM pgr_trspViaEdges(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 3),
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 6)],
+    ARRAY[
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 3),
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 6)],
+    false, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |  -1 |   1 |  0.6
+   2 |   1 |   2 |   4 |    1
+   3 |   1 |   5 |  10 |    1
+   4 |   1 |  10 |  12 |    1
+   5 |   2 |  11 |  13 |    1
+   6 |   2 |  12 |  15 |    1
+   7 |   2 |   9 |   9 |    1
+   8 |   2 |   6 |   8 |    1
+   9 |   2 |   5 |   4 |  0.3
+(9 rows)
+
+```
+Routing points & vertices
+* vertex 6 is on edge 11 with fraction 0
+* Undefined behavior
+```
+SELECT * FROM pgr_trspViaEdges(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 3),
+        11],
+    ARRAY[
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 3),
+        0],
+    false, 
+    true
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |  -1 |   1 |  0.6
+   2 |   1 |   2 |   4 |    1
+   3 |   1 |   5 |  10 |    1
+   4 |   1 |  10 |  12 |  0.6
+   5 |   1 |  -2 |  -1 |    0
+(5 rows)
+
+```
+BEGIN;
+BEGIN
+ROLLBACK;
+ROLLBACK
diff --git a/doc/src/CMakeLists.txt b/doc/src/CMakeLists.txt
new file mode 100644
index 0000000..1e30730
--- /dev/null
+++ b/doc/src/CMakeLists.txt
@@ -0,0 +1,20 @@
+
+SET(LOCAL_FILES
+    index.rst
+    pgRouting-concepts.rst
+    pgRouting-installation.rst
+    pgRouting-introduction.rst
+    proposed.rst
+    release_notes.rst
+    routingFunctions.rst
+    sampledata.rst
+    support.rst
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}")
+    list(APPEND LOCAL_DOC_FILES  ${PGR_DOCUMENTATION_SOURCE_DIR}/${f})
+endforeach()
+
+set(PgRouting_DOC_FILES ${PgRouting_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE)
+
diff --git a/doc/src/index.rst b/doc/src/index.rst
new file mode 100644
index 0000000..b4be075
--- /dev/null
+++ b/doc/src/index.rst
@@ -0,0 +1,138 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _index:
+
+*******************************************************************************
+Table of Contents
+*******************************************************************************
+
+pgRouting extends the `PostGIS <http://postgis.net>`_/`PostgreSQL <http://postgresql.org>`_ geospatial database to provide geospatial routing and other network analysis functionality.
+
+This is the manual for pgRouting |release|.
+
+.. image:: _static/images/ccbysa.png
+    :align: left
+    :alt: Creative Commons Attribution-Share Alike 3.0 License
+
+The pgRouting Manual is licensed under a `Creative Commons Attribution-Share Alike 3.0 License <http://creativecommons.org/licenses/by-sa/3.0/>`_. Feel free to use this material any way you like, but we ask that you attribute credit to the pgRouting Project and wherever possible, a link back to http://pgrouting.org. For other licenses used in pgRouting see the :ref:`license` page.
+
+General
+===============================================================================
+
+.. toctree::
+    :maxdepth: 2
+
+    pgRouting-introduction
+    pgRouting-installation
+    support
+
+
+- :doc:`sampledata` that is used in the examples of this manual.
+
+.. toctree::
+   :hidden:
+
+   sampledata
+
+Pgrouting Concepts
+===============================================================================
+
+.. toctree::
+   :maxdepth: 2
+
+   pgRouting-concepts
+   
+
+.. rubric:: Reference
+
+:ref:`pgr_version` - to get pgRouting's version information.
+
+.. toctree::
+   :hidden:
+
+   pgr_version
+
+
+:ref:`Data Types <data_types>`
+===============================================================================
+
+
+- :ref:`type_cost_result` -  A set of records to describe a path result with cost attribute.
+- :ref:`pgr_costResult3[]<type_cost_result3>` - A set of records to describe a path result with cost attribute.
+- :ref:`pgr_geomResult<type_geom_result>` - A set of records to describe a path result with geometry attribute.
+
+.. toctree::
+   :hidden:
+
+   types_index
+
+
+:ref:`Topology Functions <topology_functions>`
+===============================================================================
+
+-  :ref:`pgr_create_topology` -  to create a topology based on the geometry.
+-  :ref:`pgr_create_vert_table` - to reconstruct the vertices table based on the source and target information.
+-  :ref:`pgr_analyze_graph`  - to analyze the edges and vertices of the edge table.
+-  :ref:`pgr_analyze_oneway` - to analyze directionality of the edges.
+-  :ref:`pgr_node_network`  -to create nodes to a not noded edge table.
+
+.. toctree::
+   :hidden:
+
+   topology-functions
+
+
+:ref:`Routing functions <routing_functions>`
+===============================================================================
+
+.. toctree::
+    :hidden:
+
+    routingFunctions
+
+
+.. include:: routingFunctions.rst
+   :start-after: from-here
+   :end-before: to-here
+    
+
+
+Available Functions but not official pgRouting functions
+===============================================================================
+
+- :ref:`Stable`
+- :ref:`proposed`
+
+.. toctree::
+    :hidden:
+
+    proposed
+
+
+
+:ref:`Change Log <change_log>`
+===============================================================================
+
+.. include:: release_notes.rst
+   :start-after: changelog start
+   :end-before: changelog end
+
+
+.. toctree::
+    :hidden:
+
+    release_notes
+
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/src/pgRouting-concepts.rst b/doc/src/pgRouting-concepts.rst
index 9d2be2b..529d11d 100644
--- a/doc/src/pgRouting-concepts.rst
+++ b/doc/src/pgRouting-concepts.rst
@@ -12,33 +12,7 @@
 pgRouting Concepts
 ===============================================================================
 
-.. rubric:: Table of Contents
-
-.. concepts_start
-
-* :ref:`Getting_started`
-
-  * :ref:`create_database`
-  * :ref:`load_data`
-  * :ref:`build_topology`
-  * :ref:`check_graph`
-  * :ref:`compute_path`
-  * `pgRouting Workshop <http://workshop.pgrouting.org>`_
-
-* :ref:`inner_queries`
-* :ref:`return_values`
-* :ref:`Advanced_Topics`
-
-  * :ref:`topology`
-  * :ref:`analytics`
-  * :ref:`performance`
-
-* :ref:`how_contribute`
-
-
-
-
-.. concepts_end
+.. contents::
 
 .. _Getting_started:
 
@@ -48,10 +22,8 @@ Getting Started
 This is a simple guide to walk you through the steps of getting started
 with pgRouting. In this guide we will cover:
 
-* :ref:`create_database`
-* :ref:`load_data`
-* :ref:`build_topology`
-* :ref:`check_graph`
+.. contents::
+    :local:
 
 
 .. _create_database:
@@ -148,7 +120,7 @@ Once you have all the preparation work done above, computing a route is fairly e
 We have a lot of different algorithms that can work with your prepared road
 network. The general form of a route query is:
 
-.. code-block:: sql
+.. code-block:: none
 
     select pgr_dijkstra(`SELECT * FROM myroads', 1, 2)
 
@@ -168,8 +140,21 @@ to get more information about each step in the path.
 Inner Queries
 -------------------------------------------------------------------------------
 
-There are several kinds of valid inner queries and also the columns returned are depending of the function..
-Which kind of **edges_sql** will depend on the function(s) requirements.
+.. contents::
+    :local:
+
+There are several kinds of valid inner queries and also the columns returned are depending of the function.
+Which kind of inner query will depend on the function(s) requirements.
+To simplify variety of types, ``ANY-INTEGER`` and ``ANY-NUMERICAL`` is used.
+
+.. where_definition_starts
+
+Where:
+
+:ANY-INTEGER: SMALLINT, INTEGER, BIGINT
+:ANY-NUMERICAL: SMALLINT, INTEGER, BIGINT, REAL, FLOAT
+
+.. where_definition_ends
 
 .. basic_edges_sql_start
 
@@ -232,6 +217,28 @@ Where:
 .. no_id_edges_sql_end
 
 
+
+.. pgr_dijkstra_via_parameters_start
+
+Description of the parameters of the signatures
+...............................................................................
+
+=================== ====================== ========= =========================================
+Parameter           Type                   Default   Description
+=================== ====================== ========= =========================================
+**edges_sql**       ``TEXT``                         SQL query as described above.
+**via_vertices**    ``ARRAY[ANY-INTEGER]``           Array of ordered vertices identifiers that are going to be visited.
+**directed**        ``BOOLEAN``            ``true``  - When ``true`` Graph is considered `Directed`
+                                                     - When ``false`` the graph is considered as Undirected.
+**strict**          ``BOOLEAN``            ``false`` - When ``false`` ignores missing paths returning all paths found
+                                                     - When ``true`` if a path is missing stops and returns `EMPTY SET`
+**U_turn_on_edge**  ``BOOLEAN``            ``true``  - When ``true`` departing from a visited vertex will not try to avoid using the edge used to reach it.  In other words, U turn using the edge with same `id` is allowed.
+                                                     - When ``false`` when a departing from a visited vertex tries to avoid using the edge used to reach it.  In other words, U turn using the edge with same `id` is used when no other path is found.
+=================== ====================== ========= =========================================
+
+.. pgr_dijkstra_via_parameters_end
+
+
 .. xy_edges_sql_start
 
 Description of the edges_sql query for astar like functions
@@ -331,11 +338,15 @@ Where:
 
 .. points_sql_end
 
+
 .. _return_values:
 
 Return columns & values
 --------------------------------------------------------------------------------
 
+.. contents::
+    :local:
+
 There are several kinds of columns returned are depending of the function.
 
 .. return_path_start
@@ -398,12 +409,14 @@ Column                 Type                  Description
 
 .. result_flow_end
 
-
 .. _advanced_topics:
 
 Advanced Topics
 -------------------------------------------------------------------------------
 
+.. contents::
+    :local:
+
 .. _topology:
 
 Routing Topology
@@ -508,7 +521,7 @@ Now your database should be ready to use any (most?) of the pgRouting algorithms
 .. _analytics:
 
 Graph Analytics
--------------------------------------------------------------------------------
+...............................................................................
 
 
 .. rubric:: Overview
@@ -546,8 +559,8 @@ With :ref:`pgr_analyze_graph` the graph can be checked for errors. For example f
 
 In the vertices table "mytab_vertices_pgr":
 
-  - Deadends are identified by ``cnt=1``
-  - Potencial gap problems are identified with ``chk=1``.
+- Deadends are identified by ``cnt=1``
+- Potencial gap problems are identified with ``chk=1``.
 
 .. code-block:: sql
 
@@ -589,15 +602,15 @@ The rules are defined as an array of text strings that if match the ``col`` valu
 
 
 Example
-...............................................................................
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Lets assume we have a table "st" of edges and a column "one_way" that might have values like:
 
-   * 'FT'    - oneway from the source to the target node.
-   * 'TF'    - oneway from the target to the source node.
-   * 'B'     - two way street.
-   * ''      - empty field, assume twoway.
-   * <NULL>  - NULL field, use two_way_if_null flag.
+* 'FT'    - oneway from the source to the target node.
+* 'TF'    - oneway from the target to the source node.
+* 'B'     - two way street.
+* ''      - empty field, assume twoway.
+* <NULL>  - NULL field, use two_way_if_null flag.
 
 Then we could form the following query to analyze the oneway streets for errors.
 
@@ -630,6 +643,10 @@ The above tools do not detect all network issues, but they will identify some co
 Performance Tips
 -------------------------------------------------------------------------------
 
+.. contents::
+    :local:
+
+
 For the Routing functions
 ...............................................................................
 
diff --git a/doc/src/pgRouting-installation.rst b/doc/src/pgRouting-installation.rst
index affc604..d2fa231 100644
--- a/doc/src/pgRouting-installation.rst
+++ b/doc/src/pgRouting-installation.rst
@@ -133,7 +133,7 @@ To be able to compile pgRouting, make sure that the following dependencies are m
 
 * C and C++0x compilers
   * g++ version >= 4.8
-* Postgresql version >= 9.1
+* Postgresql version >= 9.2
 * PostGIS version >= 2.0
 * The Boost Graph Library (BGL). Version >= 1.46
 * CMake >= 2.8.8
diff --git a/doc/src/pgRouting-introduction.rst b/doc/src/pgRouting-introduction.rst
index e2daeb9..1360d66 100644
--- a/doc/src/pgRouting-introduction.rst
+++ b/doc/src/pgRouting-introduction.rst
@@ -14,12 +14,12 @@ Introduction
 
 pgRouting is an extension of `PostGIS <http://postgis.net>`_ and `PostgreSQL <http://postgresql.org>`_ geospatial database and adds routing and other network analysis functionality. A predecessor of pgRouting – pgDijkstra, written by Sylvain Pasche from `Camptocamp <http://camptocamp.com>`_, was later extended by `Orkney <http://www.orkney.co.jp>`_ and renamed to pgRouting. The project is now supported and maintained by `Georepublic <http://georepublic.info>`_, `iMaptools <http://imaptoo [...]
 
-pgRouting is an `OSGeo Labs <http://wiki.osgeo.org/wiki/OSGeo_Labs>`_ project of the `OSGeo Foundation <http://osgeo.org>`_ and included on `OSGeo Live <http://live.osgeo.org/>`_.
+pgRouting is part of `OSGeo Community Projects <http://wiki.osgeo.org/wiki/OSGeo_Community_Projects>`_ from the `OSGeo Foundation <http://osgeo.org>`_ and included on `OSGeo Live <http://live.osgeo.org/>`_.
 
 
 .. _license:
 
-License
+Licensing
 -------------------------------------------------------------------------------
 
 The following licenses can be found in pgRouting:
@@ -50,7 +50,7 @@ This Release Contributors
 Individuals (in alphabetical order)
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-Virginia Vergara
+Maoguang Wang, Vidhan Jain, Virginia Vergara
 
 And all the people that give us a little of their time making comments, finding issues, making pull requests etc.
 
@@ -59,10 +59,10 @@ Corporate Sponsors (in alphabetical order)
 
 These are corporate entities that have contributed developer time, hosting, or direct monetary funding to the pgRouting project:
 
- - `Georepublic <https://georepublic.info/en/>`__
- - `Google Summer of Code <https://developers.google.com/open-source/gsoc/>`_
- - `iMaptools <http://imaptools.com>`__
- - `Paragon Corporation <http://www.paragoncorporation.com/>`_
+- `Georepublic <https://georepublic.info/en/>`__
+- `Google Summer of Code <https://developers.google.com/open-source/gsoc/>`_
+- `iMaptools <http://imaptools.com>`__
+- `Paragon Corporation <http://www.paragoncorporation.com/>`_
 
 Contributors Past & Present:
 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
@@ -70,20 +70,20 @@ Contributors Past & Present:
 Individuals (in alphabetical order)
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-Akio Takubo, Andrea Nardelli, Anton Patrushev, Ashraf Hossain, Christian Gonzalez, Daniel Kastl, Dave Potts, David Techer, Denis Rykov, Ema Miyawaki, Florian Thurkow, Frederic Junod, Gerald Fenoy, Jay Mahadeokar, Jinfu Leng, Kai Behncke, Kishore Kumar, Ko Nagase, Manikata Kondeti, Mario Basa, Martin Wiesenhaan,  Maxim Dubinin, Mohamed Zia, Mukul Priya, Razequl Islam, Regina Obe, Rohith Reddy, Sarthak Agarwal, Stephen Woodbridge, Sylvain Housseman, Sylvain Pasche, Virginia Vergara
+Akio Takubo, Andrea Nardelli, Anton Patrushev, Ashraf Hossain, Christian Gonzalez, Daniel Kastl, Dave Potts, David Techer, Denis Rykov, Ema Miyawaki, Florian Thurkow, Frederic Junod, Gerald Fenoy, Jay Mahadeokar, Jinfu Leng, Kai Behncke, Kishore Kumar, Ko Nagase, Manikata Kondeti, Mario Basa, Martin Wiesenhaan,  Maxim Dubinin, Maoguang Wang, Mohamed Zia, Mukul Priya, Razequl Islam, Regina Obe, Rohith Reddy, Sarthak Agarwal, Stephen Woodbridge, Sylvain Housseman, Sylvain Pasche, Vidhan Ja [...]
 
 Corporate Sponsors (in alphabetical order)
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 These are corporate entities that have contributed developer time, hosting, or direct monetary funding to the pgRouting project:
 
- - Camptocamp
- - CSIS (University of Tokyo)
- - Georepublic
- - Google Summer of Code
- - iMaptools
- - Orkney
- - Paragon Corporation
+- Camptocamp
+- CSIS (University of Tokyo)
+- Georepublic
+- Google Summer of Code
+- iMaptools
+- Orkney
+- Paragon Corporation
 
 
 More Information
diff --git a/doc/src/proposed.rst b/doc/src/proposed.rst
index bbefe9c..8d1ee4b 100644
--- a/doc/src/proposed.rst
+++ b/doc/src/proposed.rst
@@ -9,12 +9,12 @@
 
 .. _Stable:
 
-Stable proposed Functions
+Stable Proposed Functions
 ==================================
 
 ..  stable-begin-warning
 
-.. warning:: These are proposed functions for next mayor release.
+.. warning:: Proposed functions for next mayor release.
 
   - They are not officially in the current release.
   - They will likely officially be part of the next mayor release:
@@ -38,11 +38,28 @@ As part of the :ref:`dijkstra`
 .. rubric:: Families
 
 :ref:`astar`
- 
+
 .. include:: aStar-family.rst
    :start-after: index from here
    :end-before: index to here
 
+:ref:`bdAstar`
+
+.. include:: bdAstar-family.rst
+   :start-after: index from here
+   :end-before: index to here
+
+:ref:`bdDijkstra`
+
+.. include:: bdDijkstra-family.rst
+   :start-after: index from here
+   :end-before: index to here
+
+:ref:`maxFlow`
+
+.. include:: flow-family.rst
+   :start-after: index from here
+   :end-before: index to here
 
 :ref:`withPoints`
 
@@ -74,6 +91,8 @@ As part of the :ref:`dijkstra`
     :hidden:
 
     aStar-family
+    bdAstar-family
+    bdDijkstra-family
     withPoints-family
 
     cost-category
@@ -83,13 +102,13 @@ As part of the :ref:`dijkstra`
 
 .. _proposed:
 
-Experimental and Proposed functions
+Experimental Functions
 ===============================================================================
 
 
 ..  begin-warn-expr
 
-.. warning:: These are proposed functions
+.. warning:: Experimental functions
 
   - They are not officially of the current release.
   - They likely will not be officially be part of the next release:
@@ -114,25 +133,23 @@ Experimental and Proposed functions
 
 - :ref:`pgr_contractgraph` - Reduce network size using contraction techniques
 
-:ref:`maxFlow`
-
-.. include:: flow-family.rst
-   :start-after: index from here
-   :end-before: index to here
-
-
-.. rubric:: Convenience
-
--  :ref:`pgr_point_to_edgenode` - convert a point geometry to a ``vertex_id`` based on closest edge.
 
 .. rubric:: Graph Analysis
 
 -  :ref:`pgr_labelGraph` - Analyze / label  subgraphs within a network
 
-.. rubric:: Vehicle Routing Problems
+:ref:`components` - Analyze components within a graph
+
+-  :ref:`pgr_connectedComponents` - Return the connected components of an undirected graph
+-  :ref:`pgr_strongComponents` - Return the strongly connected components of a directed graph
+-  :ref:`pgr_biconnectedComponents` - Return the biconnected components of an undirected graph
+-  :ref:`pgr_articulationPoints` - Return the articulation points of an undirected graph
+-  :ref:`pgr_bridges` - Return the bridges of an undirected graph
 
--  :ref:`pgr_gsocvrppdtw` - VRP Pickup & Delivery (Euclidean)
--  :ref:`pgr_vrp_basic` - VRP One Depot
+.. rubric:: VRP
+
+- :ref:`pgr_gsocvrppdtw`
+- :ref:`pgr_vrp_basic`
 
 
 .. toctree::
@@ -140,24 +157,24 @@ Experimental and Proposed functions
 
   contraction-family
   flow-family
-  pgr_pointToEdgeNode
   pgr_labelGraph
+  components-family
   pgr_gsoc_vrppdtw
   pgr_vrpOneDepot
 
+.. rubric:: Graph Transformation
 
+:doc:`pgr_lineGraph`
 
+.. toctree::
+  :hidden:
 
+  pgr_lineGraph
 
+See Also
+-------------------------------------------------------------------------------
 
+.. rubric:: Indices and tables
 
-
-..
-  The template
-   ------------
-    - :ref:`pgr_funnyDijkstra`
-    .. toctree::
-    :hidden:
-    ..
-     ../src/funnyDijkstra/doc/pgr_funnyDijkstra.rst
-
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/src/release_notes.rst b/doc/src/release_notes.rst
index 315de45..bd1dd8d 100644
--- a/doc/src/release_notes.rst
+++ b/doc/src/release_notes.rst
@@ -18,6 +18,7 @@ To see the full list of changes check the list of `Git commits <https://github.c
 
 .. changelog start
 
+* :ref:`changelog_2_5_0`
 * :ref:`changelog_2_4_2`
 * :ref:`changelog_2_4_1`
 * :ref:`changelog_2_4_0`
@@ -36,6 +37,70 @@ To see the full list of changes check the list of `Git commits <https://github.c
 
 .. changelog end
 
+.. _changelog_2_5_0:
+
+pgRouting 2.5.0 Release Notes
+-------------------------------------------------------------------------------
+
+To see the issues closed by this release see the `Git closed issues for 2.5.0 <https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.5.0%22+is%3Aclosed>`_ on Github.
+
+
+.. rubric:: enhancement:
+
+* pgr_version is now on SQL language
+
+.. rubric:: Breaking change on:
+
+* pgr_edgeDisjointPaths:
+
+  * Added path_id, cost and agg_cost columns on the result
+  * Parameter names changed
+  * The many version results are the union of the one to one version
+
+.. rubric:: New Signatures:
+
+* pgr_bdAstar(one to one)
+
+.. rubric:: New Proposed functions
+
+* pgr_bdAstar(one to many)
+* pgr_bdAstar(many to one)
+* pgr_bdAstar(many to many)
+* pgr_bdAstarCost(one to one)
+* pgr_bdAstarCost(one to many)
+* pgr_bdAstarCost(many to one)
+* pgr_bdAstarCost(many to many)
+* pgr_bdAstarCostMatrix
+* pgr_bdDijkstra(one to many)
+* pgr_bdDijkstra(many to one)
+* pgr_bdDijkstra(many to many)
+* pgr_bdDijkstraCost(one to one)
+* pgr_bdDijkstraCost(one to many)
+* pgr_bdDijkstraCost(many to one)
+* pgr_bdDijkstraCost(many to many)
+* pgr_bdDijkstraCostMatrix
+* pgr_lineGraph
+* pgr_connectedComponents
+* pgr_strongComponents
+* pgr_biconnectedComponents
+* pgr_articulationPoints
+* pgr_bridges
+
+.. rubric:: Deprecated Signatures
+
+* pgr_bdastar - use pgr_bdAstar instead
+
+.. rubric:: Renamed Functions
+
+* pgr_maxFlowPushRelabel - use pgr_pushRelabel instead
+* pgr_maxFlowEdmondsKarp -use pgr_edmondsKarp instead
+* pgr_maxFlowBoykovKolmogorov - use pgr_boykovKolmogorov instead
+* pgr_maximumCardinalityMatching - use pgr_maxCardinalityMatch instead
+
+.. rubric:: Deprecated function
+
+* pgr_pointToEdgeNode
+
 
 .. _changelog_2_4_2:
 
diff --git a/doc/src/routingFunctions.rst b/doc/src/routingFunctions.rst
index fd4b2b6..4924e1f 100644
--- a/doc/src/routingFunctions.rst
+++ b/doc/src/routingFunctions.rst
@@ -25,7 +25,7 @@ Routing Functions
 
 :ref:`pgr_astar` - Shortest Path A*
 
-:ref:`pgr_bdAstar<bd_astar>` - Bi-directional A* Shortest Path
+:ref:`pgr_bdAstar` - Bi-directional A* Shortest Path
 
 :ref:`pgr_bdDijkstra` - Bi-directional Dijkstra Shortest Path
 
@@ -65,3 +65,11 @@ Routing Functions
     pgr_trsp
     TSP-family
     drivingDistance-category
+
+See Also
+-------------------------------------------------------------------------------
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/src/sampledata.rst b/doc/src/sampledata.rst
index c7733d0..4e5cb19 100644
--- a/doc/src/sampledata.rst
+++ b/doc/src/sampledata.rst
@@ -7,8 +7,6 @@
     Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
    ****************************************************************************
 
-.. _sampledata:
-
 Sample Data
 ===============================================================================
 
@@ -73,54 +71,57 @@ To be able to execute the sample queries, run the following SQL commands to crea
 
 
 Images
-------
+----------------
 
 * Red arrows correspond when ``cost`` > 0 in the edge table.
 * Blue arrows correspond when ``reverse_cost`` > 0 in the edge table.
 * Points are outside the graph.
 * Click on the graph to enlarge.
 
-.. note:: On all graphs,
+.. _fig1:
 
-.. rubric:: Network for queries marked as ``directed`` and ``cost`` and ``reverse_cost`` columns are used:
+Network for queries marked as ``directed`` and ``cost`` and ``reverse_cost`` columns are used
+......................................................................................................
 
 When working with city networks, this is recommended for point of view of vehicles.
 
-.. _fig1:
 
-.. figure:: images/Fig1-originalData.png
+.. figure:: /images/Fig1-originalData.png
 
    **Graph 1: Directed, with cost and reverse cost**
 
+.. _fig2:
 
-.. rubric:: Network for queries marked as ``undirected`` and ``cost`` and ``reverse_cost`` columns are used:
+Network for queries marked as ``undirected`` and ``cost`` and ``reverse_cost`` columns are used
+......................................................................................................
 
 When working with city networks, this is recommended for point of view of pedestrians.
 
-.. _fig2:
 
-.. figure:: images/Fig6-undirected.png
+.. figure:: /images/Fig6-undirected.png
    :scale: 50%
 
    **Graph 2: Undirected, with cost and reverse cost**
 
+.. _fig3:
 
-.. rubric:: Network for queries marked as ``directed`` and only ``cost`` column is used:
+Network for queries marked as ``directed`` and only ``cost`` column is used
+......................................................................................................
 
-.. _fig3:
 
 
-.. figure:: images/Fig2-cost.png
+.. figure:: /images/Fig2-cost.png
    :scale: 20%
 
    **Graph 3: Directed, with cost**
 
+.. _fig4:
 
-.. rubric:: Network for queries marked as ``undirected`` and only ``cost`` column is used:
+Network for queries marked as ``undirected`` and only ``cost`` column is used
+......................................................................................................
 
-.. _fig4:
 
-.. figure:: images/Fig4-costUndirected.png
+.. figure:: /images/Fig4-costUndirected.png
    :scale: 20%
 
    **Graph 4: Undirected, with cost**
@@ -128,9 +129,10 @@ When working with city networks, this is recommended for point of view of pedest
 
 .. _pickdeliverdata:
 
+
 Pick & Deliver Data
-.........................
+...............................................................................
 
-.. literalinclude:: ../../src/pickDeliver/test/pickDeliver.data
+.. literalinclude:: ../../tools/testers/vrppdtw_data.sql
 
 
diff --git a/doc/test/example_recipe.result b/doc/test/example_recipe.result
deleted file mode 100644
index 21da4d2..0000000
--- a/doc/test/example_recipe.result
+++ /dev/null
@@ -1,5 +0,0 @@
-OK
-OK
-OK
-OK
-OK
diff --git a/doc/test/example_recipe.test.sql b/doc/test/example_recipe.test.sql
deleted file mode 100644
index 5fdaf1f..0000000
--- a/doc/test/example_recipe.test.sql
+++ /dev/null
@@ -1,30 +0,0 @@
-/*.. 
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share  
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-*/
---.. _example_recipe:
-
---Comparing topology of a unnoded network with a noded network
--------------------------------------------------------------
-
---:Author: pgRouting team.
---:Licence: Open Source
-
---This recipe uses the :ref:`sampledata` network.
-
---The purpose of this recipe is to compare a not nodded network with a nodded network.
-
---.. code-block:: sql
-
-
-SET client_min_messages TO WARNING;
-	SELECT pgr_createTopology('edge_table', 0.001);
-	SELECT pgr_analyzegraph('edge_table', 0.001);
-	SELECT pgr_nodeNetwork('edge_table', 0.001);
-	SELECT pgr_createTopology('edge_table_noded', 0.001);
-	SELECT pgr_analyzegraph('edge_table_noded', 0.001); 
diff --git a/doc/test/parallel_handling.result b/doc/test/parallel_handling.result
deleted file mode 100644
index 7173ec1..0000000
--- a/doc/test/parallel_handling.result
+++ /dev/null
@@ -1,24 +0,0 @@
-OK
-1|1|1
-1|2|2
-1|3|5
-1|4|-1
-2|1|1
-2|2|6
-2|5|7
-2|6|8
-2|3|5
-2|4|-1
-1|0||-1|-1
-2|1|1|2|1
-3|1|2|3|2
-4|1|3|4|5
-5|1|4|-1|-1
-6|2|1|2|1
-7|2|2|3|3
-8|2|3|4|5
-9|2|4|-1|-1
-10|3|1|2|1
-11|3|2|3|4
-12|3|3|4|5
-13|3|4|-1|-1
diff --git a/doc/test/parallel_handling.test.sql b/doc/test/parallel_handling.test.sql
deleted file mode 100644
index 5e6753a..0000000
--- a/doc/test/parallel_handling.test.sql
+++ /dev/null
@@ -1,125 +0,0 @@
-SET client_min_messages = WARNING;
-
-  drop table if exists parallel;
-  CREATE TABLE parallel (
-    id serial,
-    source integer,
-    target integer,
-    cost double precision,
-    reverse_cost double precision,
-    x1 double precision,
-    y1 double precision,
-    x2 double precision,
-    y2 double precision,
-    the_geom geometry
-  );
- 
-  INSERT INTO parallel (x1,y1,x2,y2) 
-    VALUES (1,0,1,1),(1,1,1,3),(1,1,1,3),(1,1,1,3),(1,3,1,4),(1,1,-1,1),(-1,1,-1,3),(-1,3,1,3);
-  UPDATE parallel SET the_geom = ST_makeline(ST_point(x1,y1),ST_point(x2,y2));
-  UPDATE parallel SET the_geom = ST_makeline(ARRAY[ST_point(1,1),ST_point(0,2),ST_point(1,3)]) WHERE id = 3;
-  UPDATE parallel SET the_geom = ST_makeline(ARRAY[ST_point(1,1),ST_point(2,1),ST_point(2,3),ST_point(1,3)])
-                                WHERE id = 4;
-  UPDATE parallel SET cost = ST_length(the_geom), reverse_cost = ST_length(the_geom);
-
-  SET client_min_messages = WARNING;
-  SELECT pgr_createTopology('parallel',0.001);
-
-
-  select seq, path_id as route, node, edge into routes
-    from pgr_ksp('select id, source, target, cost, reverse_cost from parallel',
-    1, 4, 3);
-
-  select route, node, edge from routes;
-
-  CREATE AGGREGATE array_accum (anyelement)
-  (
-    sfunc = array_append,
-    stype = anyarray,
-    initcond = '{}'
-  );
-
-
-
-  select distinct seq,route,source,target, array_accum(id) as edges into paths
-    from (select seq, route, source, target 
-          from parallel, routes where id = edge) as r
-       join parallel using (source, target)
-    group by seq,route,source,target order by seq;
-
-  -- select route, source, target, edges from paths;
-
-  create or replace function multiply( integer, integer )
-  returns integer as
-  $$
-    select $1 * $2;
-  $$
-  language sql stable;
-
-  create aggregate prod(integer)
-  (
-    sfunc = multiply,
-    stype = integer,
-    initcond = 1
-  );
-
-
-
-  CREATE OR REPLACE function   expand_parallel_edge_paths(tab text)
-    returns TABLE (
-                  seq    INTEGER,
-                  route  INTEGER,
-                  source INTEGER, target INTEGER, -- this ones are not really needed
-                  edge   INTEGER ) AS
-   $body$
-   DECLARE
-   nroutes   INTEGER;
-   newroutes INTEGER;
-   rec   record;
-   seq2 INTEGER := 1;
-   rnum INTEGER := 0;
-
-   BEGIN     -- get the number of distinct routes
-     execute 'select count(DISTINCT route) from ' || tab INTO nroutes;
-     FOR i IN 0..nroutes-1
-     LOOP
-         -- compute the number of new routes this route will expand into
-         -- this is the product of the lengths of the edges array for each route
-         execute 'select prod(array_length(edges, 1))-1 from '
-         ||       quote_ident(tab) || ' where route='    || i INTO newroutes; 
-         -- now we generate the number of new routes for this route
-         -- by repeatedly listing the route and swapping out the parallel edges
-         FOR j IN 0..newroutes
-         LOOP
-             -- query the specific route
-             FOR rec IN execute 'select * from ' || quote_ident(tab) ||' where route=' || i
-                         || ' order by seq'
-             LOOP
-                 seq := seq2;              
-                 route := rnum;
-                 source := rec.source;
-                 target := rec.target;
-                 -- using module arithmetic iterate through the various edge choices
-                 edge := rec.edges[(j % (array_length(rec.edges, 1)))+1];
-                 -- return a new record
-                 RETURN next;
-                 seq2 := seq2 + 1;    -- increment the record count
-              END LOOP;
-              seq := seq2;
-              route := rnum;
-              source := rec.target;
-              target := -1;
-              edge := -1;
-              RETURN next;  -- Insert the ending record of the route
-              seq2 := seq2 + 1;
-              
-              rnum := rnum + 1;  -- increment the route count
-          END LOOP;
-       END LOOP;
-   END;
-   $body$
-   language plpgsql volatile strict   cost 100 rows 100;
-
-
-
-  select * from expand_parallel_edge_paths( 'paths' );
diff --git a/doc/test/test.conf b/doc/test/test.conf
deleted file mode 100644
index a918f4f..0000000
--- a/doc/test/test.conf
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/perl -w
-
-# ksp-any  # this test does not return consistent results 
-
-%main::tests = (
-    'any' => {
-        'comment' => 'documentation SQL tests for any versions.',
-        'data' => ['tsp.data'],
-        'tests' => [qw( 
-            example_recipe
-            parallel_handling
-            utilities-any
-            )]
-    },
-#    'vpg-vpgis' => {}, # for version specific tests
-#    '8-1' => {},       # for pg 8.x and postgis 1.x
-#    '9.2-2.1' => {},   # for pg 9.2 and postgis 2.1
-);
-
-1;
diff --git a/doc/test/utilities-any.result b/doc/test/utilities-any.result
deleted file mode 100644
index 8e8299d..0000000
--- a/doc/test/utilities-any.result
+++ /dev/null
@@ -1 +0,0 @@
-2.4.2
diff --git a/doc/test/utilities-any.test.sql b/doc/test/utilities-any.test.sql
deleted file mode 100644
index 99ad04b..0000000
--- a/doc/test/utilities-any.test.sql
+++ /dev/null
@@ -1,6 +0,0 @@
-
---------------------------------------------------------------------------------
---                pgr_version
---------------------------------------------------------------------------------
--- SELECT pgr_version(); -- DON'T USE THIS IT CHANGES WITH EVERY COMMIT
-SELECT version FROM pgr_version(); -- This changes infrequently
diff --git a/doc/topology/CMakeLists.txt b/doc/topology/CMakeLists.txt
new file mode 100644
index 0000000..fb3dbcb
--- /dev/null
+++ b/doc/topology/CMakeLists.txt
@@ -0,0 +1,20 @@
+
+SET(LOCAL_FILES
+    pgr_analyzeGraph.rst
+    pgr_createTopology.rst
+    pgr_nodeNetwork.rst
+    pgr_analyzeOneWay.rst
+    pgr_createVerticesTable.rst
+    topology-functions.rst
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}")
+    list(APPEND LOCAL_DOC_FILES  ${PGR_DOCUMENTATION_SOURCE_DIR}/${f})
+endforeach()
+
+
+add_subdirectory("images")
+set(PgRouting_DOC_FILES ${PgRouting_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE)
+set(PgRouting_IMG_FILES ${PgRouting_IMG_FILES} PARENT_SCOPE)
+
diff --git a/doc/topology/images/CMakeLists.txt b/doc/topology/images/CMakeLists.txt
new file mode 100644
index 0000000..3a60bea
--- /dev/null
+++ b/doc/topology/images/CMakeLists.txt
@@ -0,0 +1,15 @@
+
+SET(LOCAL_FILES
+    after_node_net.png
+    before_node_net.png
+    #Fig3-reverseCost.png
+    #Fig5-reverseCostUndirected.png
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/images/${f}" COPYONLY)
+    list(APPEND LOCAL_IMG_FILES  "${PGR_DOCUMENTATION_SOURCE_DIR}/images/${f}")
+endforeach()
+
+set(PgRouting_IMG_FILES ${PgRouting_IMG_FILES} ${LOCAL_IMG_FILES} PARENT_SCOPE)
+
diff --git a/src/topology/doc/images/Fig3-reverseCost.png b/doc/topology/images/Fig3-reverseCost.png
similarity index 100%
rename from src/topology/doc/images/Fig3-reverseCost.png
rename to doc/topology/images/Fig3-reverseCost.png
diff --git a/src/topology/doc/images/Fig5-reverseCostUndirected.png b/doc/topology/images/Fig5-reverseCostUndirected.png
similarity index 100%
rename from src/topology/doc/images/Fig5-reverseCostUndirected.png
rename to doc/topology/images/Fig5-reverseCostUndirected.png
diff --git a/src/topology/doc/images/after_node_net.png b/doc/topology/images/after_node_net.png
similarity index 100%
rename from src/topology/doc/images/after_node_net.png
rename to doc/topology/images/after_node_net.png
diff --git a/src/topology/doc/images/before_node_net.png b/doc/topology/images/before_node_net.png
similarity index 100%
rename from src/topology/doc/images/before_node_net.png
rename to doc/topology/images/before_node_net.png
diff --git a/doc/topology/pgr_analyzeGraph.rst b/doc/topology/pgr_analyzeGraph.rst
new file mode 100644
index 0000000..d882b9c
--- /dev/null
+++ b/doc/topology/pgr_analyzeGraph.rst
@@ -0,0 +1,404 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_analyze_graph:
+
+pgr_analyzeGraph
+===============================================================================
+
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_analyzeGraph`` — Analyzes the network topology.
+
+
+Synopsis
+-------------------------------------------------------------------------------
+
+The function returns:
+
+- ``OK`` after the analysis has finished.
+- ``FAIL`` when the analysis was not completed due to an error.
+
+.. index::
+	single: analyzeGraph(Complete Signature)
+
+.. code-block:: sql
+
+	varchar pgr_analyzeGraph(text edge_table, double precision tolerance,
+                           text the_geom:='the_geom', text id:='id',
+                           text source:='source',text target:='target',text rows_where:='true')
+
+Description
+-------------------------------------------------------------------------------
+
+.. rubric:: Prerequisites
+
+The  edge table to be analyzed must contain a source column and a target column filled with id's of the vertices of the segments and the corresponding vertices table <edge_table>_vertices_pgr that stores the vertices information.
+
+- Use :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create the vertices table.
+- Use :ref:`pgr_createTopology <pgr_create_topology>` to create the topology and the vertices table.
+
+.. rubric:: Parameters
+
+The analyze graph function accepts the following parameters:
+
+:edge_table: ``text`` Network table name. (may contain the schema name as well)
+:tolerance: ``float8`` Snapping tolerance of disconnected edges. (in projection unit)
+:the_geom: ``text``  Geometry column name of the network table. Default value is ``the_geom``.
+:id: ``text``  Primary key column name of the network table. Default value is ``id``.
+:source: ``text`` Source column name of the network table. Default value is ``source``.
+:target: ``text``  Target column name of the network table.  Default value is ``target``.
+:rows_where: ``text``   Condition to select  a subset or rows.  Default value is ``true`` to indicate all rows.
+
+The function returns:
+
+- ``OK`` after the analysis has finished.
+
+  * Uses the vertices table: <edge_table>_vertices_pgr.
+  * Fills completely the ``cnt`` and ``chk`` columns of the vertices table.
+  * Returns the analysis of the section of the network defined by  ``rows_where``
+
+- ``FAIL`` when the analysis was not completed due to an error.
+
+  * The vertices table is not found.
+  * A required column of the Network table is not found or is not of the appropriate type.
+  * The condition is not well formed.
+  * The names of source , target or id are the same.
+  * The SRID of the geometry could not be determined.
+
+
+.. rubric:: The Vertices Table
+
+The vertices table can be created with :ref:`pgr_createVerticesTable <pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>`
+
+The structure of the vertices table is:
+
+:id: ``bigint`` Identifier of the vertex.
+:cnt: ``integer`` Number of vertices in the edge_table that reference this vertex.
+:chk: ``integer``  Indicator that the vertex might have a problem.
+:ein: ``integer`` Number of vertices in the edge_table that reference this vertex as incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`.
+:eout: ``integer`` Number of vertices in the edge_table that reference this vertex as outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`.
+:the_geom: ``geometry`` Point geometry of the vertex.
+
+.. rubric:: History
+
+* New in version 2.0.0
+
+Usage when the edge table's columns MATCH the default values:
+-------------------------------------------------------------------------------
+
+.. rubric:: The simplest way to use pgr_analyzeGraph is:
+
+.. code-block:: sql
+
+	 SELECT  pgr_createTopology('edge_table',0.001);
+	 SELECT  pgr_analyzeGraph('edge_table',0.001);
+
+.. rubric:: When the arguments are given in the order described in the parameters:
+
+.. code-block:: sql
+
+	 SELECT  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target');
+
+We get the same result as the simplest way to use the function.
+
+.. warning::  | An error would occur when the arguments are not given in the appropriate order: In this example, the column ``id`` of the table ``mytable`` is passed to the function as the geometry column, and the geometry column ``the_geom`` is passed to the function as the id column.
+
+.. code-block:: sql
+
+    SELECT  pgr_analyzeGraph('edge_table',0.001,'id','the_geom','source','target');
+    NOTICE:  PROCESSING:
+    NOTICE:  pgr_analyzeGraph('edge_table',0.001,'id','the_geom','source','target','true')
+    NOTICE:  Performing checks, please wait ...
+    NOTICE:  Got function st_srid(bigint) does not exist
+    NOTICE:  ERROR: something went wrong when checking for SRID of id in table public.edge_table
+    pgr_analyzegraph 
+    ------------------
+      FAIL
+    (1 row)
+
+
+.. rubric:: When using the named notation
+
+The order of the parameters do not matter:
+
+.. code-block:: sql
+
+	 SELECT  pgr_analyzeGraph('edge_table',0.001,the_geom:='the_geom',id:='id',source:='source',target:='target');
+
+.. code-block:: sql
+
+	 SELECT  pgr_analyzeGraph('edge_table',0.001,source:='source',id:='id',target:='target',the_geom:='the_geom');
+
+Parameters defined with a default value can be omitted, as long as the value matches the default:
+
+.. code-block:: sql
+
+	 SELECT  pgr_analyzeGraph('edge_table',0.001,source:='source');
+
+.. rubric:: Selecting rows using rows_where parameter
+
+Selecting rows based on the id. Displays the analysis a the section of the network.
+
+.. code-block:: sql
+
+	 SELECT  pgr_analyzeGraph('edge_table',0.001,rows_where:='id < 10');
+
+Selecting the rows where the geometry is near the geometry of row with ``id`` =5 .
+
+.. code-block:: sql
+
+	 SELECT  pgr_analyzeGraph('edge_table',0.001,rows_where:='the_geom && (SELECT st_buffer(the_geom,0.05) FROM edge_table WHERE id=5)');
+
+Selecting the rows where the geometry is near the geometry of the row with ``gid`` =100 of the table ``othertable``.
+
+.. code-block:: sql
+
+        DROP TABLE IF EXISTS otherTable;
+	CREATE TABLE otherTable AS  (SELECT 100 AS gid, st_point(2.5,2.5) AS other_geom) ;
+	SELECT  pgr_analyzeGraph('edge_table',0.001,rows_where:='the_geom && (SELECT st_buffer(other_geom,1) FROM otherTable WHERE gid=100)');
+
+
+
+Usage when the edge table's columns DO NOT MATCH the default values:
+-------------------------------------------------------------------------------
+
+For the following table
+
+.. code-block:: sql
+
+	DROP TABLE IF EXISTS mytable;
+	CREATE TABLE mytable AS (SELECT id AS gid, source AS src ,target AS tgt , the_geom AS mygeom FROM edge_table);
+	SELECT pgr_createTopology('mytable',0.001,'mygeom','gid','src','tgt');
+
+.. rubric:: Using positional notation:
+
+The arguments need to be given in the order described in the parameters:
+
+.. code-block:: sql
+
+	 SELECT  pgr_analyzeGraph('mytable',0.001,'mygeom','gid','src','tgt');
+
+.. warning::  | An error would occur when the arguments are not given in the appropriate order: In this example, the column ``gid`` of the table ``mytable`` is passed to the function as the geometry column, and the geometry column ``mygeom`` is passed to the function as the id column.
+
+.. code-block:: sql
+
+    SELECT  pgr_analyzeGraph('mytable',0.001,'gid','mygeom','src','tgt');
+    NOTICE:  PROCESSING:
+    NOTICE:  pgr_analyzeGraph('mytable',0.001,'gid','mygeom','src','tgt','true')
+    NOTICE:  Performing checks, please wait ...
+    NOTICE:  Got function st_srid(bigint) does not exist
+    NOTICE:  ERROR: something went wrong when checking for SRID of gid in table public.mytable
+    pgr_analyzegraph 
+    ------------------
+      FAIL
+    (1 row)
+
+
+
+.. rubric:: When using the named notation
+
+The order of the parameters do not matter:
+
+.. code-block:: sql
+
+	 SELECT  pgr_analyzeGraph('mytable',0.001,the_geom:='mygeom',id:='gid',source:='src',target:='tgt');
+
+.. code-block:: sql
+
+	 SELECT  pgr_analyzeGraph('mytable',0.001,source:='src',id:='gid',target:='tgt',the_geom:='mygeom');
+
+In this scenario omitting a parameter would create an error because the default values for the column names do not match the column names of the table.
+
+
+.. rubric:: Selecting rows using rows_where parameter
+
+Selecting rows based on the id.
+
+.. code-block:: sql
+
+	 SELECT  pgr_analyzeGraph('mytable',0.001,'mygeom','gid','src','tgt',rows_where:='gid < 10');
+
+.. code-block:: sql
+
+	 SELECT  pgr_analyzeGraph('mytable',0.001,source:='src',id:='gid',target:='tgt',the_geom:='mygeom',rows_where:='gid < 10');
+
+Selecting the rows WHERE the geometry is near the geometry of row with ``id`` =5 .
+
+.. code-block:: sql
+
+	 SELECT  pgr_analyzeGraph('mytable',0.001,'mygeom','gid','src','tgt',
+	                            rows_where:='mygeom && (SELECT st_buffer(mygeom,1) FROM mytable WHERE gid=5)');
+
+.. code-block:: sql
+
+	 SELECT  pgr_analyzeGraph('mytable',0.001,source:='src',id:='gid',target:='tgt',the_geom:='mygeom',
+	                            rows_where:='mygeom && (SELECT st_buffer(mygeom,1) FROM mytable WHERE gid=5)');
+
+Selecting the rows WHERE the geometry is near the place='myhouse' of the table ``othertable``. (note the use of quote_literal)
+
+.. code-block:: sql
+
+        DROP TABLE IF EXISTS otherTable;
+	CREATE TABLE otherTable AS  (SELECT 'myhouse'::text AS place, st_point(2.5,2.5) AS other_geom) ;
+	SELECT  pgr_analyzeGraph('mytable',0.001,'mygeom','gid','src','tgt',
+                 rows_where:='mygeom && (SELECT st_buffer(other_geom,1) FROM otherTable WHERE place='||quote_literal('myhouse')||')');
+
+.. code-block:: sql
+
+	 SELECT  pgr_analyzeGraph('mytable',0.001,source:='src',id:='gid',target:='tgt',the_geom:='mygeom',
+                 rows_where:='mygeom && (SELECT st_buffer(other_geom,1) FROM otherTable WHERE place='||quote_literal('myhouse')||')');
+
+
+
+Examples
+-------------------------------------------------------------------------------
+
+.. code-block:: sql
+
+	SELECT  pgr_createTopology('edge_table',0.001);
+	SELECT pgr_analyzeGraph('edge_table', 0.001);
+	NOTICE:  PROCESSING:
+	NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','true')
+	NOTICE:  Performing checks, pelase wait...
+	NOTICE:  Analyzing for dead ends. Please wait...
+	NOTICE:  Analyzing for gaps. Please wait...
+	NOTICE:  Analyzing for isolated edges. Please wait...
+	NOTICE:  Analyzing for ring geometries. Please wait...
+	NOTICE:  Analyzing for intersections. Please wait...
+	NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+	NOTICE:                    Isolated segments: 2
+	NOTICE:                            Dead ends: 7
+	NOTICE:  Potential gaps found near dead ends: 1
+	NOTICE:               Intersections detected: 1
+	NOTICE:                      Ring geometries: 0
+
+	 pgr_analyzeGraph
+	--------------------
+	 OK
+	(1 row)
+
+	SELECT  pgr_analyzeGraph('edge_table',0.001,rows_where:='id < 10');
+	NOTICE:  PROCESSING:
+	NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','id < 10')
+	NOTICE:  Performing checks, pelase wait...
+	NOTICE:  Analyzing for dead ends. Please wait...
+	NOTICE:  Analyzing for gaps. Please wait...
+	NOTICE:  Analyzing for isolated edges. Please wait...
+	NOTICE:  Analyzing for ring geometries. Please wait...
+	NOTICE:  Analyzing for intersections. Please wait...
+	NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+	NOTICE:                    Isolated segments: 0
+	NOTICE:                            Dead ends: 4
+	NOTICE:  Potential gaps found near dead ends: 0
+	NOTICE:               Intersections detected: 0
+	NOTICE:                      Ring geometries: 0
+
+	 pgr_analyzeGraph
+	--------------------
+	 OK
+	(1 row)
+
+	SELECT  pgr_analyzeGraph('edge_table',0.001,rows_where:='id >= 10');
+	NOTICE:  PROCESSING:
+	NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','id >= 10')
+	NOTICE:  Performing checks, pelase wait...
+	NOTICE:  Analyzing for dead ends. Please wait...
+	NOTICE:  Analyzing for gaps. Please wait...
+	NOTICE:  Analyzing for isolated edges. Please wait...
+	NOTICE:  Analyzing for ring geometries. Please wait...
+	NOTICE:  Analyzing for intersections. Please wait...
+	NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+	NOTICE:                    Isolated segments: 2
+	NOTICE:                            Dead ends: 8
+	NOTICE:  Potential gaps found near dead ends: 1
+	NOTICE:               Intersections detected: 1
+	NOTICE:                      Ring geometries: 0
+
+	 pgr_analyzeGraph
+	--------------------
+	 OK
+	(1 row)
+
+	-- Simulate removal of edges
+	SELECT pgr_createTopology('edge_table', 0.001,rows_where:='id <17');
+	SELECT pgr_analyzeGraph('edge_table', 0.001);
+	NOTICE:  PROCESSING:
+	NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','true')
+	NOTICE:  Performing checks, pelase wait...
+	NOTICE:  Analyzing for dead ends. Please wait...
+	NOTICE:  Analyzing for gaps. Please wait...
+	NOTICE:  Analyzing for isolated edges. Please wait...
+	NOTICE:  Analyzing for ring geometries. Please wait...
+	NOTICE:  Analyzing for intersections. Please wait...
+	NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+	NOTICE:                    Isolated segments: 0
+	NOTICE:                            Dead ends: 3
+	NOTICE:  Potential gaps found near dead ends: 0
+	NOTICE:               Intersections detected: 0
+	NOTICE:                      Ring geometries: 0
+
+	 pgr_analyzeGraph
+	--------------------
+	 OK
+	(1 row)
+    SELECT pgr_createTopology('edge_table', 0.001,rows_where:='id <17');
+    NOTICE:  PROCESSING:
+    NOTICE:  pgr_createTopology('edge_table',0.001,'the_geom','id','source','target','id <17')
+    NOTICE:  Performing checks, pelase wait .....
+    NOTICE:  Creating Topology, Please wait...
+    NOTICE:  -------------> TOPOLOGY CREATED FOR  16 edges
+    NOTICE:  Rows with NULL geometry or NULL id: 0
+    NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
+    NOTICE:  ----------------------------------------------
+
+	 pgr_analyzeGraph
+	--------------------
+	 OK
+	(1 row)
+
+    SELECT pgr_analyzeGraph('edge_table', 0.001);
+    NOTICE:  PROCESSING:
+    NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','true')
+    NOTICE:  Performing checks, pelase wait...
+    NOTICE:  Analyzing for dead ends. Please wait...
+    NOTICE:  Analyzing for gaps. Please wait...
+    NOTICE:  Analyzing for isolated edges. Please wait...
+    NOTICE:  Analyzing for ring geometries. Please wait...
+    NOTICE:  Analyzing for intersections. Please wait...
+    NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+    NOTICE:                    Isolated segments: 0
+    NOTICE:                            Dead ends: 3
+    NOTICE:  Potential gaps found near dead ends: 0
+    NOTICE:               Intersections detected: 0
+    NOTICE:                      Ring geometries: 0
+
+	 pgr_analyzeGraph
+	--------------------
+	 OK
+	(1 row)
+
+
+The examples use the :doc:`sampledata` network.
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* :ref:`topology`  for an overview of a topology for routing algorithms.
+* :ref:`pgr_analyze_oneway` to analyze directionality of the edges.
+* :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to reconstruct the vertices table based on the source and target information.
+* :ref:`pgr_nodeNetwork <pgr_node_network>` to create nodes to a not noded edge table.
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/topology/pgr_analyzeOneWay.rst b/doc/topology/pgr_analyzeOneWay.rst
new file mode 100644
index 0000000..3bd4a51
--- /dev/null
+++ b/doc/topology/pgr_analyzeOneWay.rst
@@ -0,0 +1,143 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_analyze_oneway:
+
+pgr_analyzeOneway
+===============================================================================
+
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_analyzeOneway`` — Analyzes oneway Sstreets and identifies flipped segments.
+
+
+Synopsis
+-------------------------------------------------------------------------------
+
+This function analyzes oneway streets in a graph and identifies any flipped segments.
+
+.. index::
+	single: analyzeOneway(Complete Signature)
+
+.. code-block:: sql
+
+	text pgr_analyzeOneway(geom_table text,
+			       text[] s_in_rules, text[] s_out_rules,
+                               text[] t_in_rules, text[] t_out_rules,
+			       text oneway='oneway', text source='source', text target='target',
+			       boolean two_way_if_null=true);
+
+
+Description
+-------------------------------------------------------------------------------
+
+The analyses of one way segments is pretty simple but can be a powerful tools to identifying some the potential problems created by setting the direction of a segment the wrong way. A node is a `source` if it has edges the exit from that node and no edges enter that node. Conversely, a node is a `sink` if all edges enter the node but none exit that node. For a `source` type node it is logically impossible to exist because no vehicle can exit the node if no vehicle and enter the node. Lik [...]
+
+So why do we care if the are not feasible? Well if the direction of an edge was reversed by mistake we could generate exactly these conditions. Think about a divided highway and on the north bound lane one segment got entered wrong or maybe a sequence of multiple segments got entered wrong or maybe this happened on a round-about. The result would be potentially a `source` and/or a `sink` node.
+
+So by counting the number of edges entering and exiting each node we can identify both `source` and `sink` nodes so that you can look at those areas of your network to make repairs and/or report the problem back to your data vendor.
+
+.. rubric:: Prerequisites
+
+The  edge table to be analyzed must contain a source column and a target column filled with id's of the vertices of the segments and the corresponding vertices table <edge_table>_vertices_pgr that stores the vertices information.
+
+- Use :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create the vertices table.
+- Use :ref:`pgr_createTopology <pgr_create_topology>` to create the topology and the vertices table.
+
+.. rubric:: Parameters
+
+:edge_table: ``text`` Network table name. (may contain the schema name as well)
+:s_in_rules: ``text[]`` source node **in** rules
+:s_out_rules: ``text[]`` source node **out** rules
+:t_in_rules: ``text[]`` target node **in** rules
+:t_out_rules: ``text[]`` target node **out** rules
+:oneway: ``text`` oneway column name name of the network table. Default value is ``oneway``.
+:source: ``text`` Source column name of the network table. Default value is ``source``.
+:target: ``text``  Target column name of the network table.  Default value is ``target``.
+:two_way_if_null: ``boolean`` flag to treat oneway NULL values as bi-directional.  Default value is ``true``.
+
+.. note:: It is strongly recommended to use the named notation. See :ref:`pgr_createVerticesTable <pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>` for examples.
+
+
+The function returns:
+
+- ``OK`` after the analysis has finished.
+
+  * Uses the vertices table: <edge_table>_vertices_pgr.
+  * Fills completely the ``ein`` and ``eout`` columns of the vertices table.
+
+- ``FAIL`` when the analysis was not completed due to an error.
+
+  * The vertices table is not found.
+  * A required column of the Network table is not found or is not of the appropriate type.
+  * The names of source , target or oneway are the same.
+
+The rules are defined as an array of text strings that if match the ``oneway`` value would be counted as ``true`` for the source or target **in** or **out** condition.
+
+.. rubric:: The Vertices Table
+
+The vertices table can be created with :ref:`pgr_createVerticesTable <pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>`
+
+The structure of the vertices table is:
+
+:id: ``bigint`` Identifier of the vertex.
+:cnt: ``integer`` Number of vertices in the edge_table that reference this vertex. See :ref:`pgr_analyzeGgraph <pgr_analyze_graph>`.
+:chk: ``integer``  Indicator that the vertex might have a problem. See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`.
+:ein: ``integer`` Number of vertices in the edge_table that reference this vertex as incoming.
+:eout: ``integer`` Number of vertices in the edge_table that reference this vertex as outgoing.
+:the_geom: ``geometry`` Point geometry of the vertex.
+
+
+.. rubric:: History
+
+* New in version 2.0.0
+
+
+Examples
+-------------------------------------------------------------------------------
+
+.. code-block:: sql
+
+	SELECT pgr_analyzeOneway('edge_table',
+        ARRAY['', 'B', 'TF'],
+        ARRAY['', 'B', 'FT'],
+        ARRAY['', 'B', 'FT'],
+        ARRAY['', 'B', 'TF'],
+        oneway:='dir');
+	NOTICE:  PROCESSING:
+	NOTICE:  pgr_analyzeGraph('edge_table','{"",B,TF}','{"",B,FT}','{"",B,FT}','{"",B,TF}','dir','source','target',t)
+	NOTICE:  Analyzing graph for one way street errors.
+	NOTICE:  Analysis 25% complete ...
+	NOTICE:  Analysis 50% complete ...
+	NOTICE:  Analysis 75% complete ...
+	NOTICE:  Analysis 100% complete ...
+	NOTICE:  Found 0 potential problems in directionality
+
+	pgr_analyzeoneway
+	-------------------
+	OK
+	(1 row)
+
+The queries use the :doc:`sampledata` network.
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* :ref:`topology`  for an overview of a topology for routing algorithms.
+* :ref:`analytics` for an overview of the analysis of a graph.
+* :ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge table.
+* :ref:`pgr_create_vert_table` to reconstruct the vertices table based on the source and target information.
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/topology/pgr_createTopology.rst b/doc/topology/pgr_createTopology.rst
new file mode 100644
index 0000000..648418b
--- /dev/null
+++ b/doc/topology/pgr_createTopology.rst
@@ -0,0 +1,257 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_create_topology:
+
+pgr_createTopology
+===============================================================================
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_createTopology`` — Builds a network topology based on the geometry information.
+
+
+Synopsis
+-------------------------------------------------------------------------------
+
+The function returns:
+
+- ``OK`` after the network topology has been built and the vertices table created.
+- ``FAIL`` when the network topology was not built due to an error.
+
+.. index::
+    single: createTopology(Complete Signature)
+
+.. code-block:: none
+
+    varchar pgr_createTopology(text edge_table, double precision tolerance,
+                           text the_geom:='the_geom', text id:='id',
+                           text source:='source',text target:='target',
+                           text rows_where:='true', boolean clean:=false)
+
+
+
+Description
+-------------------------------------------------------------------------------
+
+.. rubric:: Parameters
+
+The topology creation function accepts the following parameters:
+
+:edge_table: ``text`` Network table name. (may contain the schema name AS well)
+:tolerance: ``float8`` Snapping tolerance of disconnected edges. (in projection unit)
+:the_geom: ``text``  Geometry column name of the network table. Default value is ``the_geom``.
+:id: ``text``  Primary key column name of the network table. Default value is ``id``.
+:source: ``text`` Source column name of the network table. Default value is ``source``.
+:target: ``text``  Target column name of the network table.  Default value is ``target``.
+:rows_where: ``text``   Condition to SELECT a subset or rows.  Default value is ``true`` to indicate
+ all rows that where ``source`` or ``target`` have a null value, otherwise the condition is used.
+:clean: ``boolean`` Clean any previous topology.  Default value is ``false``.
+
+.. warning::
+
+    The ``edge_table`` will be affected
+
+    - The ``source`` column values will change.
+    - The ``target`` column values will change.
+
+      - An index will be created, if it doesn't exists, to speed up the process to the following columns:
+
+        * ``id``
+        * ``the_geom``
+        * ``source``
+        * ``target``
+
+The function returns:
+
+- ``OK`` after the network topology has been built.
+
+  * Creates a vertices table: <edge_table>_vertices_pgr.
+  * Fills ``id`` and ``the_geom`` columns of the vertices table.
+  * Fills the source and target columns of the edge table referencing the ``id`` of the vertices table.
+
+
+- ``FAIL`` when the network topology was not built due to an error:
+
+  * A required column of the Network table is not found or is not of the appropriate type.
+  * The condition is not well formed.
+  * The names of source , target or id are the same.
+  * The SRID of the geometry could not be determined.
+
+
+.. rubric:: The Vertices Table
+
+The vertices table is a requirement of the :ref:`pgr_analyzeGraph <pgr_analyze_graph>` and the :ref:`pgr_analyzeOneway <pgr_analyze_oneway>` functions.
+
+The structure of the vertices table is:
+
+:id: ``bigint`` Identifier of the vertex.
+:cnt: ``integer`` Number of vertices in the edge_table that reference this vertex. See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`.
+:chk: ``integer``  Indicator that the vertex might have a problem. See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`.
+:ein: ``integer`` Number of vertices in the edge_table that reference this vertex AS incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`.
+:eout: ``integer`` Number of vertices in the edge_table that reference this vertex AS outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`.
+:the_geom: ``geometry`` Point geometry of the vertex.
+
+.. rubric:: History
+
+* Renamed in version 2.0.0
+
+Usage when the edge table's columns MATCH the default values:
+-------------------------------------------------------------------------------
+
+.. rubric:: The simplest way to use pgr_createTopology is:
+
+.. literalinclude:: doc-pgr_createTopology.queries
+   :start-after: --q1
+   :end-before: --q1.1
+
+
+
+.. rubric:: When the arguments are given in the order described in the parameters:
+
+We get the same result AS the simplest way to use the function.
+
+.. literalinclude:: doc-pgr_createTopology.queries
+   :start-after: --q2
+   :end-before: --q2.1
+
+
+.. warning::  | An error would occur when the arguments are not given in the appropriate order:
+    | In this example, the column ``id`` of the table ``ege_table`` is passed to the function as the geometry column,
+    | and the geometry column ``the_geom`` is passed to the function as the id column.
+
+    .. literalinclude:: doc-pgr_createTopology.queries
+       :start-after: --q3
+       :end-before: --q3.1
+
+
+.. rubric:: When using the named notation
+
+Parameters defined with a default value can be omitted, as long as the value matches the default
+And The order of the parameters would not matter.
+
+.. literalinclude:: doc-pgr_createTopology.queries
+   :start-after: --q4
+   :end-before: --q4.1
+
+.. literalinclude:: doc-pgr_createTopology.queries
+   :start-after: --q5
+   :end-before: --q5.1
+
+.. literalinclude:: doc-pgr_createTopology.queries
+   :start-after: --q6
+   :end-before: --q6.1
+
+.. rubric:: Selecting rows using rows_where parameter
+
+Selecting rows based on the id.
+
+.. literalinclude:: doc-pgr_createTopology.queries
+   :start-after: --q7
+   :end-before: --q7.1
+
+Selecting the rows where the geometry is near the geometry of row with ``id = 5``.
+
+.. literalinclude:: doc-pgr_createTopology.queries
+   :start-after: --q8
+   :end-before: --q8.1
+
+Selecting the rows where the geometry is near the geometry of the row with ``gid`` =100 of the table ``othertable``.
+
+.. literalinclude:: doc-pgr_createTopology.queries
+   :start-after: --q9
+   :end-before: --q9.1
+
+
+
+
+Usage when the edge table's columns DO NOT MATCH the default values:
+-------------------------------------------------------------------------------
+
+For the following table
+
+.. literalinclude:: doc-pgr_createTopology.queries
+   :start-after: --q10
+   :end-before: --q10.1
+
+.. rubric:: Using positional notation:
+
+The arguments need to be given in the order described in the parameters.
+
+Note that this example uses clean flag. So it recreates the whole vertices table.
+
+.. literalinclude:: doc-pgr_createTopology.queries
+   :start-after: --q11
+   :end-before: --q11.1
+
+.. warning::  | An error would occur when the arguments are not given in the appropiriate order:
+    | In this example, the column ``gid`` of the table ``mytable`` is passed to the function AS the geometry column,
+    | and the geometry column ``mygeom`` is passed to the function AS the id column.
+
+    .. literalinclude:: doc-pgr_createTopology.queries
+       :start-after: --q12
+       :end-before: --q12.1
+
+
+
+.. rubric:: When using the named notation
+
+In this scenario omitting a parameter would create an error because the default values for the column names do not match the column names of the table.
+The order of the parameters do not matter:
+
+.. literalinclude:: doc-pgr_createTopology.queries
+   :start-after: --q13
+   :end-before: --q13.1
+
+.. literalinclude:: doc-pgr_createTopology.queries
+   :start-after: --q14
+   :end-before: --q14.1
+
+
+.. rubric:: Selecting rows using rows_where parameter
+
+Based on id:
+
+.. literalinclude:: doc-pgr_createTopology.queries
+   :start-after: --q15
+   :end-before: --q15.1
+
+
+Selecting the rows where the geometry is near the geometry of the row with ``gid`` =100 of the table ``othertable``.
+
+.. literalinclude:: doc-pgr_createTopology.queries
+   :start-after: --q16
+   :end-before: --q16.1
+
+
+Examples with full output
+-------------------------------------------------------------------------------
+
+This example start a clean topology, with 5 edges, and then its incremented to the rest of the edges.
+
+.. literalinclude:: doc-pgr_createTopology.queries
+   :start-after: --q17
+   :end-before: --q17.1
+
+The example uses the :doc:`sampledata` network.
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* :ref:`topology` for an overview of a topology for routing algorithms.
+* :ref:`pgr_create_vert_table` to reconstruct the vertices table based on the source and target information.
+* :ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge table.
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/topology/pgr_createVerticesTable.rst b/doc/topology/pgr_createVerticesTable.rst
new file mode 100644
index 0000000..e5202f7
--- /dev/null
+++ b/doc/topology/pgr_createVerticesTable.rst
@@ -0,0 +1,296 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_create_vert_table:
+
+pgr_createVerticesTable
+===============================================================================
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_createVerticesTable`` — Reconstructs the vertices table based on the source and target information.
+
+
+Synopsis
+-------------------------------------------------------------------------------
+
+The function returns:
+
+- ``OK`` after the vertices table has been reconstructed.
+- ``FAIL`` when the vertices table was not reconstructed due to an error.
+
+.. index::
+	single: createVerticesTable(Complete Signature)
+
+.. code-block:: sql
+
+	pgr_createVerticesTable(edge_table, the_geom, source, target, rows_where)
+    RETURNS VARCHAR
+
+
+
+Description
+-------------------------------------------------------------------------------
+
+.. Rubric:: Parameters
+
+The reconstruction of the vertices table  function accepts the following parameters:
+
+:edge_table: ``text`` Network table name. (may contain the schema name as well)
+:the_geom: ``text``  Geometry column name of the network table. Default value is ``the_geom``.
+:source: ``text`` Source column name of the network table. Default value is ``source``.
+:target: ``text``  Target column name of the network table.  Default value is ``target``.
+:rows_where: ``text``   Condition to SELECT a subset or rows.  Default value is ``true`` to indicate all rows.
+
+.. warning::
+
+    The ``edge_table`` will be affected
+
+    - An index will be created, if it doesn't exists, to speed up the process to the following columns:
+
+      * ``the_geom``
+      * ``source``
+      * ``target``
+
+The function returns:
+
+- ``OK`` after the vertices table has been reconstructed.
+
+  * Creates a vertices table: <edge_table>_vertices_pgr.
+  * Fills ``id`` and ``the_geom`` columns of the vertices table based on the source and target columns of the edge table.
+
+- ``FAIL`` when the vertices table was not reconstructed due to an error.
+
+  * A required column of the Network table is not found or is not of the appropriate type.
+  * The condition is not well formed.
+  * The names of source, target are the same.
+  * The SRID of the geometry could not be determined.
+
+.. rubric:: The Vertices Table
+
+The vertices table is a requierment of the :ref:`pgr_analyzeGraph <pgr_analyze_graph>` and the :ref:`pgr_analyzeOneway <pgr_analyze_oneway>` functions.
+
+The structure of the vertices table is:
+
+:id: ``bigint`` Identifier of the vertex.
+:cnt: ``integer`` Number of vertices in the edge_table that reference this vertex. See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`.
+:chk: ``integer``  Indicator that the vertex might have a problem. See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`.
+:ein: ``integer`` Number of vertices in the edge_table that reference this vertex as incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`.
+:eout: ``integer`` Number of vertices in the edge_table that reference this vertex as outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`.
+:the_geom: ``geometry`` Point geometry of the vertex.
+
+.. rubric:: History
+
+* Renamed in version 2.0.0
+
+Usage when the edge table's columns MATCH the default values:
+-------------------------------------------------------------------------------
+
+.. rubric:: The simplest way to use pgr_createVerticesTable is:
+
+.. code-block:: sql
+
+	 SELECT  pgr_createVerticesTable('edge_table');
+
+
+.. rubric:: When the arguments are given in the order described in the parameters:
+
+.. code-block:: sql
+
+	 SELECT  pgr_createVerticesTable('edge_table','the_geom','source','target');
+
+We get the same result as the simplest way to use the function.
+
+.. warning::  An error would occur when the arguments are not given in the appropriate order: In this example, the column source column ``source`` of the table ``mytable`` is passed to the function as the geometry column, and the geometry column ``the_geom`` is passed to the function as the source column.
+
+   .. code-block:: sql
+
+       SELECT  pgr_createVerticesTable('edge_table','source','the_geom','target');
+       NOTICE:  pgr_createVerticesTable('edge_table','source','the_geom','target','true')
+       NOTICE:  Performing checks, please wait .....
+       NOTICE:  ----> PGR ERROR in pgr_createVerticesTable: Wrong type of Column source: the_geom
+       HINT:    ----> Expected type of the_geom is integer,smallint or bigint but USER-DEFINED was found
+       NOTICE:  Unexpected error raise_exception
+       pgr_createverticestable 
+       -------------------------
+         FAIL
+      (1 row)
+
+
+.. rubric:: When using the named notation
+
+The order of the parameters do not matter:
+
+.. code-block:: sql
+
+	 SELECT  pgr_createVerticesTable('edge_table',the_geom:='the_geom',source:='source',target:='target');
+
+.. code-block:: sql
+
+	 SELECT  pgr_createVerticesTable('edge_table',source:='source',target:='target',the_geom:='the_geom');
+
+Parameters defined with a default value can be omitted, as long as the value matches the default:
+
+.. code-block:: sql
+
+	 SELECT  pgr_createVerticesTable('edge_table',source:='source');
+
+.. rubric:: Selecting rows using rows_where parameter
+
+Selecting rows based on the id.
+
+.. code-block:: sql
+
+	 SELECT  pgr_createVerticesTable('edge_table',rows_where:='id < 10');
+
+Selecting the rows where the geometry is near the geometry of row with ``id`` =5 .
+
+.. code-block:: sql
+
+	 SELECT  pgr_createVerticesTable('edge_table',rows_where:='the_geom && (select st_buffer(the_geom,0.5) FROM edge_table WHERE id=5)');
+
+Selecting the rows where the geometry is near the geometry of the row with ``gid`` =100 of the table ``othertable``.
+
+.. code-block:: sql
+
+	DROP TABLE IF EXISTS otherTable;
+	CREATE TABLE otherTable AS  (SELECT 100 AS gid, st_point(2.5,2.5) AS other_geom) ;
+	SELECT  pgr_createVerticesTable('edge_table',rows_where:='the_geom && (select st_buffer(othergeom,0.5) FROM otherTable WHERE gid=100)');
+
+
+
+Usage when the edge table's columns DO NOT MATCH the default values:
+-------------------------------------------------------------------------------
+
+For the following table
+
+.. code-block:: sql
+
+	DROP TABLE IF EXISTS mytable;
+	CREATE TABLE mytable AS (SELECT id AS gid, the_geom AS mygeom,source AS src ,target AS tgt FROM edge_table) ;
+
+.. rubric:: Using positional notation:
+
+The arguments need to be given in the order described in the parameters:
+
+.. code-block:: sql
+
+	 SELECT  pgr_createVerticesTable('mytable','mygeom','src','tgt');
+
+.. warning::  | An error would occur when the arguments are not given in the appropriate order: In this example, the column ``src`` of the table ``mytable`` is passed to the function as the geometry column, and the geometry column ``mygeom`` is passed to the function as the source column.
+
+    .. code-block:: sql
+
+        SELECT  pgr_createVerticesTable('mytable','src','mygeom','tgt');
+        NOTICE:  PROCESSING:
+        NOTICE:  pgr_createVerticesTable('mytable','src','mygeom','tgt','true')
+        NOTICE:  Performing checks, please wait .....
+        NOTICE:  ----> PGR ERROR in pgr_createVerticesTable: Table mytable not found
+        HINT:    ----> Check your table name
+        NOTICE:  Unexpected error raise_exception
+        pgr_createverticestable 
+        -------------------------
+          FAIL
+        (1 row)
+
+
+.. rubric:: When using the named notation
+
+The order of the parameters do not matter:
+
+.. code-block:: sql
+
+	 SELECT  pgr_createVerticesTable('mytable',the_geom:='mygeom',source:='src',target:='tgt');
+
+.. code-block:: sql
+
+	 SELECT  pgr_createVerticesTable('mytable',source:='src',target:='tgt',the_geom:='mygeom');
+
+In this scenario omitting a parameter would create an error because the default values for the column names do not match the column names of the table.
+
+
+.. rubric:: Selecting rows using rows_where parameter
+
+Selecting rows based on the gid.
+
+.. code-block:: sql
+
+	 SELECT  pgr_createVerticesTable('mytable','mygeom','src','tgt',rows_where:='gid < 10');
+
+.. code-block:: sql
+
+	 SELECT  pgr_createVerticesTable('mytable',source:='src',target:='tgt',the_geom:='mygeom',rows_where:='gid < 10');
+
+Selecting the rows where the geometry is near the geometry of row with ``gid`` =5 .
+
+.. code-block:: sql
+
+	 SELECT  pgr_createVerticesTable('mytable','mygeom','src','tgt',
+	                            rows_where:='the_geom && (SELECT st_buffer(mygeom,0.5) FROM mytable WHERE gid=5)');
+
+.. code-block:: sql
+
+	 SELECT  pgr_createVerticesTable('mytable',source:='src',target:='tgt',the_geom:='mygeom',
+	                            rows_where:='mygeom && (SELECT st_buffer(mygeom,0.5) FROM mytable WHERE id=5)');
+
+Selecting the rows where the geometry is near the geometry of the row with ``gid`` =100 of the table ``othertable``.
+
+.. code-block:: sql
+
+	DROP TABLE IF EXISTS otherTable;
+	CREATE TABLE otherTable AS  (SELECT 100 AS gid, st_point(2.5,2.5) AS other_geom) ;
+	SELECT  pgr_createVerticesTable('mytable','mygeom','src','tgt',
+	                            rows_where:='the_geom && (SELECT st_buffer(othergeom,0.5) FROM otherTable WHERE gid=100)');
+
+.. code-block:: sql
+
+	SELECT  pgr_createVerticesTable('mytable',source:='src',target:='tgt',the_geom:='mygeom',
+	                            rows_where:='the_geom && (SELECT st_buffer(othergeom,0.5) FROM otherTable WHERE gid=100)');
+
+
+
+Examples
+-------------------------------------------------------------------------------
+
+.. code-block:: sql
+
+	SELECT pgr_createVerticesTable('edge_table');
+	NOTICE:  PROCESSING:
+    NOTICE:  pgr_createVerticesTable('edge_table','the_geom','source','target','true')
+    NOTICE:  Performing checks, pelase wait .....
+    NOTICE:  Populating public.edge_table_vertices_pgr, please wait...
+    NOTICE:    ----->   VERTICES TABLE CREATED WITH  17 VERTICES
+    NOTICE:                                         FOR   18  EDGES
+    NOTICE:    Edges with NULL geometry,source or target: 0
+    NOTICE:                              Edges processed: 18
+    NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
+    NOTICE:  ----------------------------------------------
+
+	 pgr_createVerticesTable
+	--------------------
+	 OK
+	(1 row)
+
+
+The example uses the :doc:`sampledata` network.
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* :ref:`topology`  for an overview of a topology for routing algorithms.
+* :ref:`pgr_createTopology <pgr_create_topology>` to create a topology based on the geometry.
+* :ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge table.
+* :ref:`pgr_analyze_oneway` to analyze directionality of the edges.
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/topology/pgr_nodeNetwork.rst b/doc/topology/pgr_nodeNetwork.rst
new file mode 100644
index 0000000..f3dc116
--- /dev/null
+++ b/doc/topology/pgr_nodeNetwork.rst
@@ -0,0 +1,399 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_node_network:
+
+pgr_nodeNetwork
+===============================================================================
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_nodeNetwork`` - Nodes an network edge table.
+
+:Author: Nicolas Ribot
+:Copyright: Nicolas Ribot, The source code is released under the MIT-X license.
+
+
+Synopsis
+-------------------------------------------------------------------------------
+
+The function reads edges from a not "noded" network table and writes the "noded" edges into a new table.
+
+.. index::
+	single: pgr_NodeNetwork(Complete Signature)
+
+.. code-block:: sql
+
+    pgr_nodenetwork(edge_table, tolerance, id, text the_geom, table_ending, rows_where, outall)
+    RETURNS TEXT
+
+
+Description
+-------------------------------------------------------------------------------
+
+A common problem associated with bringing GIS data into pgRouting is the fact that the data is often not "noded" correctly. This will create invalid topologies, which will result in routes that are incorrect.
+
+What we mean by "noded" is that at every intersection in the road network all the edges will be broken into separate road segments. There are cases like an over-pass and under-pass intersection where you can not traverse from the over-pass to the under-pass, but this function does not have the ability to detect and accommodate those situations.
+
+This function reads the ``edge_table`` table, that has a primary key column ``id`` and geometry column named ``the_geom`` and intersect all the segments in it against all the other segments and then creates a table ``edge_table_noded``. It uses the ``tolerance`` for deciding that multiple nodes within the tolerance are considered the same node.
+
+Parameters
+
+:edge_table: ``text`` Network table name. (may contain the schema name as well)
+:tolerance: ``float8`` tolerance for coincident points (in projection unit)dd
+:id: ``text`` Primary key column name of the network table. Default value is ``id``.
+:the_geom: ``text`` Geometry column name of the network table. Default value is ``the_geom``.
+:table_ending: ``text`` Suffix for the new table's. Default value is ``noded``.
+
+The output table will have for  ``edge_table_noded``
+
+:id: ``bigint`` Unique identifier for the table
+:old_id: ``bigint``  Identifier of the edge in original table
+:sub_id: ``integer`` Segment number of the original edge
+:source: ``integer`` Empty source column to be used with  :ref:`pgr_create_topology` function
+:target: ``integer`` Empty target column to be used with  :ref:`pgr_create_topology` function
+:the geom: ``geometry`` Geometry column of the noded network
+
+.. rubric:: History
+
+* New in version 2.0.0
+
+
+Example
+-------------------------------------------------------------------------------
+
+Let's create the topology for the data in :doc:`sampledata`
+
+.. code-block:: sql
+
+	SELECT pgr_createTopology('edge_table', 0.001);
+	NOTICE:  PROCESSING:
+	NOTICE:  pgr_createTopology('edge_table',0.001,'the_geom','id','source','target','true')
+	NOTICE:  Performing checks, pelase wait .....
+	NOTICE:  Creating Topology, Please wait...
+	NOTICE:  -------------> TOPOLOGY CREATED FOR  18 edges
+	NOTICE:  Rows with NULL geometry or NULL id: 0
+	NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
+	NOTICE:  ----------------------------------------------
+ 	pgr_createtopology
+	--------------------
+ 	 OK
+	(1 row)
+
+Now we can analyze the network.
+
+.. code-block:: sql
+
+	SELECT pgr_analyzegraph('edge_table', 0.001);
+	NOTICE:  PROCESSING:
+	NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','true')
+	NOTICE:  Performing checks, pelase wait...
+	NOTICE:  Analyzing for dead ends. Please wait...
+	NOTICE:  Analyzing for gaps. Please wait...
+	NOTICE:  Analyzing for isolated edges. Please wait...
+	NOTICE:  Analyzing for ring geometries. Please wait...
+	NOTICE:  Analyzing for intersections. Please wait...
+	NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+	NOTICE:                    Isolated segments: 2
+	NOTICE:                            Dead ends: 7
+	NOTICE:  Potential gaps found near dead ends: 1
+	NOTICE:               Intersections detected: 1
+	NOTICE:                      Ring geometries: 0
+ 	pgr_analyzegraph
+	------------------
+ 	 OK
+	(1 row)
+
+The analysis tell us that the network has a gap and an intersection. We try to fix the problem using:
+
+.. code-block:: sql
+
+	SELECT pgr_nodeNetwork('edge_table', 0.001);
+	NOTICE:  PROCESSING:
+	NOTICE:  pgr_nodeNetwork('edge_table',0.001,'the_geom','id','noded')
+	NOTICE:  Performing checks, pelase wait .....
+	NOTICE:  Processing, pelase wait .....
+	NOTICE:    Split Edges: 3
+	NOTICE:   Untouched Edges: 15
+	NOTICE:       Total original Edges: 18
+	NOTICE:   Edges generated: 6
+	NOTICE:   Untouched Edges: 15
+	NOTICE:         Total New segments: 21
+	NOTICE:   New Table: public.edge_table_noded
+	NOTICE:  ----------------------------------
+ 	pgr_nodenetwork
+	-----------------
+ 	 OK
+	(1 row)
+
+Inspecting the generated table, we can see that edges 13,14 and 18 has been segmented
+
+.. code-block:: sql
+
+	SELECT old_id,sub_id FROM edge_table_noded ORDER BY old_id,sub_id;
+ 	 old_id | sub_id
+	--------+--------
+  	 1      |      1
+  	 2      |      1
+  	 3      |      1
+  	 4      |      1
+  	 5      |      1
+  	 6      |      1
+  	 7      |      1
+  	 8      |      1
+  	 9      |      1
+ 	 10     |      1
+ 	 11     |      1
+ 	 12     |      1
+ 	 13     |      1
+ 	 13     |      2
+ 	 14     |      1
+ 	 14     |      2
+ 	 15     |      1
+ 	 16     |      1
+ 	 17     |      1
+ 	 18     |      1
+ 	 18     |      2
+	(21 rows)
+
+We can create the topology of the new network
+
+.. code-block:: sql
+
+	SELECT pgr_createTopology('edge_table_noded', 0.001);
+	NOTICE:  PROCESSING:
+	NOTICE:  pgr_createTopology('edge_table_noded',0.001,'the_geom','id','source','target','true')
+	NOTICE:  Performing checks, pelase wait .....
+	NOTICE:  Creating Topology, Please wait...
+	NOTICE:  -------------> TOPOLOGY CREATED FOR  21 edges
+	NOTICE:  Rows with NULL geometry or NULL id: 0
+	NOTICE:  Vertices table for table public.edge_table_noded is: public.edge_table_noded_vertices_pgr
+	NOTICE:  ----------------------------------------------
+ 	pgr_createtopology
+	--------------------
+ 	 OK
+	(1 row)
+
+Now let's analyze the new topology
+
+.. code-block:: sql
+
+	SELECT pgr_analyzegraph('edge_table_noded', 0.001);
+	NOTICE:  PROCESSING:
+	NOTICE:  pgr_analyzeGraph('edge_table_noded',0.001,'the_geom','id','source','target','true')
+	NOTICE:  Performing checks, pelase wait...
+	NOTICE:  Analyzing for dead ends. Please wait...
+	NOTICE:  Analyzing for gaps. Please wait...
+	NOTICE:  Analyzing for isolated edges. Please wait...
+	NOTICE:  Analyzing for ring geometries. Please wait...
+	NOTICE:  Analyzing for intersections. Please wait...
+	NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+	NOTICE:                    Isolated segments: 0
+	NOTICE:                            Dead ends: 6
+	NOTICE:  Potential gaps found near dead ends: 0
+	NOTICE:               Intersections detected: 0
+	NOTICE:                      Ring geometries: 0
+ 	pgr_createtopology
+	--------------------
+ 	 OK
+	(1 row)
+
+
+Images
+-------------------------------------------------------------------------------
+
+.. only:: html
+
+	+--------------------------------------+-------------------------------------+
+	|.. Rubric:: Before Image              |.. Rubric:: After Image              |
+	|                                      |                                     |
+	|.. image:: images/before_node_net.png |.. image:: images/after_node_net.png |
+	|   :scale: 60%                        |   :scale: 60%                       |
+	|   :alt: before image                 |   :alt: after image                 |
+	|   :align: left                       |   :align: right                     |
+	+--------------------------------------+-------------------------------------+
+
+
+.. only:: latex
+
+	.. Rubric:: Before Image
+
+	.. image:: images/before_node_net.png
+		:scale: 60%
+		:alt: before image
+		:align: left
+
+
+	.. Rubric:: After Image
+
+	.. image:: images/after_node_net.png
+		:scale: 60%
+		:alt: after image
+		:align: left
+
+
+Comparing the results
+-------------------------------------------------------------------------------
+
+Comparing with the Analysis in the original edge_table, we see that.
+
++------------------+-----------------------------------------+--------------------------------------------------------------+
+|                  |                Before                   |                        After                                 |
++==================+=========================================+==============================================================+
+|Table name        | edge_table                              | edge_table_noded                                             |
++------------------+-----------------------------------------+--------------------------------------------------------------+
+|Fields            | All original fields                     | Has only basic fields to do a topology analysis              |
++------------------+-----------------------------------------+--------------------------------------------------------------+
+|Dead ends         | - Edges with 1 dead end: 1,6,24         | Edges with 1 dead end: 1-1 ,6-1,14-2, 18-1 17-1 18-2         |
+|                  | - Edges with 2 dead ends  17,18         |                                                              |
+|                  |                                         |                                                              |
+|                  | Edge 17's right node is a dead end      |                                                              |
+|                  | because there is no other edge sharing  |                                                              |
+|                  | that same node. (cnt=1)                 |                                                              |
++------------------+-----------------------------------------+--------------------------------------------------------------+
+|Isolated segments | two isolated segments:  17 and 18 both  | No Isolated segments                                         |
+|                  | they have 2 dead ends                   |  - Edge 17 now shares a node with edges 14-1 and 14-2        |
+|                  |                                         |  - Edges 18-1 and 18-2 share a node with edges 13-1 and 13-2 |
++------------------+-----------------------------------------+--------------------------------------------------------------+
+|Gaps              | There is a gap between edge 17 and 14   | Edge 14 was segmented                                        |
+|                  | because edge 14 is near to the right    | Now edges: 14-1 14-2 17 share the same node                  |
+|                  | node of edge 17                         | The tolerance value was taken in account                     |
++------------------+-----------------------------------------+--------------------------------------------------------------+
+|Intersections     | Edges 13 and 18 were intersecting       | Edges were segmented, So, now in the interection's           |
+|                  |                                         | point there is a node and the following edges share it:      |
+|                  |                                         | 13-1 13-2 18-1 18-2                                          |
++------------------+-----------------------------------------+--------------------------------------------------------------+
+
+Now, we are going to include the segments 13-1, 13-2 14-1, 14-2 ,18-1 and 18-2 into our edge-table, copying the data for dir,cost,and reverse cost with tho following steps:
+
+- Add a column old_id into edge_table, this column is going to keep track the id of the original edge
+- Insert only the segmented edges, that is, the ones whose max(sub_id) >1
+
+.. code-block:: sql
+
+	alter table edge_table drop column if exists old_id;
+	alter table edge_table add column old_id integer;
+	insert into edge_table (old_id,dir,cost,reverse_cost,the_geom)
+   		(with
+       		segmented as (select old_id,count(*) as i from edge_table_noded group by old_id)
+   		select  segments.old_id,dir,cost,reverse_cost,segments.the_geom
+       			from edge_table as edges join edge_table_noded as segments on (edges.id = segments.old_id)
+       			where edges.id in (select old_id from segmented where i>1) );
+
+We recreate the topology:
+
+.. code-block:: sql
+
+	SELECT pgr_createTopology('edge_table', 0.001);
+
+	NOTICE:  PROCESSING:
+	NOTICE:  pgr_createTopology('edge_table',0.001,'the_geom','id','source','target','true')
+	NOTICE:  Performing checks, pelase wait .....
+	NOTICE:  Creating Topology, Please wait...
+	NOTICE:  -------------> TOPOLOGY CREATED FOR  24 edges
+	NOTICE:  Rows with NULL geometry or NULL id: 0
+	NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
+	NOTICE:  ----------------------------------------------
+ 	pgr_createtopology
+	--------------------
+ 	OK
+	(1 row)
+
+
+To get the same analysis results as the topology of edge_table_noded, we do the following query:
+
+.. code-block:: sql
+
+	SELECT pgr_analyzegraph('edge_table', 0.001,rows_where:='id not in (select old_id from edge_table where old_id is not null)');
+
+	NOTICE:  PROCESSING:
+	NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target',
+                                   'id not in (select old_id from edge_table where old_id is not null)')
+	NOTICE:  Performing checks, pelase wait...
+	NOTICE:  Analyzing for dead ends. Please wait...
+	NOTICE:  Analyzing for gaps. Please wait...
+	NOTICE:  Analyzing for isolated edges. Please wait...
+	NOTICE:  Analyzing for ring geometries. Please wait...
+	NOTICE:  Analyzing for intersections. Please wait...
+	NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+	NOTICE:                    Isolated segments: 0
+	NOTICE:                            Dead ends: 6
+	NOTICE:  Potential gaps found near dead ends: 0
+	NOTICE:               Intersections detected: 0
+	NOTICE:                      Ring geometries: 0
+ 	pgr_createtopology
+	--------------------
+ 	OK
+	(1 row)
+
+
+To get the same analysis results as the original edge_table, we do the following query:
+
+.. code-block:: sql
+
+	SELECT pgr_analyzegraph('edge_table', 0.001,rows_where:='old_id is null')
+
+	NOTICE:  PROCESSING:
+	NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','old_id is null')
+	NOTICE:  Performing checks, pelase wait...
+	NOTICE:  Analyzing for dead ends. Please wait...
+	NOTICE:  Analyzing for gaps. Please wait...
+	NOTICE:  Analyzing for isolated edges. Please wait...
+	NOTICE:  Analyzing for ring geometries. Please wait...
+	NOTICE:  Analyzing for intersections. Please wait...
+	NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+	NOTICE:                    Isolated segments: 2
+	NOTICE:                            Dead ends: 7
+	NOTICE:  Potential gaps found near dead ends: 1
+	NOTICE:               Intersections detected: 1
+	NOTICE:                      Ring geometries: 0
+ 	pgr_createtopology
+	--------------------
+ 	OK
+	(1 row)
+
+Or we can analyze everything because, maybe edge 18 is an overpass, edge 14 is an under pass and there is also a street level juction, and the same happens with edges 17 and 13.
+
+.. code-block:: sql
+
+	SELECT pgr_analyzegraph('edge_table', 0.001);
+
+	NOTICE:  PROCESSING:
+	NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','true')
+	NOTICE:  Performing checks, pelase wait...
+	NOTICE:  Analyzing for dead ends. Please wait...
+	NOTICE:  Analyzing for gaps. Please wait...
+	NOTICE:  Analyzing for isolated edges. Please wait...
+	NOTICE:  Analyzing for ring geometries. Please wait...
+	NOTICE:  Analyzing for intersections. Please wait...
+	NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+	NOTICE:                    Isolated segments: 0
+	NOTICE:                            Dead ends: 3
+	NOTICE:  Potential gaps found near dead ends: 0
+	NOTICE:               Intersections detected: 5
+	NOTICE:                      Ring geometries: 0
+ 	pgr_createtopology
+	--------------------
+ 	OK
+	(1 row)
+
+
+See Also
+-------------------------------------------------------------------------------
+
+:ref:`topology` for an overview of a topology for routing algorithms.
+:ref:`pgr_analyze_oneway` to analyze directionality of the edges.
+:ref:`pgr_create_topology` to create a topology based on the geometry.
+:ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge table.
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/topology/topology-functions.rst b/doc/topology/topology-functions.rst
new file mode 100644
index 0000000..d5f00f7
--- /dev/null
+++ b/doc/topology/topology-functions.rst
@@ -0,0 +1,40 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _topology_functions:
+
+Topology - Family of Functions
+===============================================================================
+
+The pgRouting's topology of a network, represented with an edge table with source and target attributes and a vertices table associated with it.
+Depending on the algorithm, you can create a topology or just reconstruct the vertices table, You can analyze the topology,
+We also provide a function to node an unoded network.
+
+-  :ref:`pgr_create_topology` -  to create a topology based on the geometry.
+-  :ref:`pgr_create_vert_table` - to reconstruct the vertices table based on the source and target information.
+-  :ref:`pgr_analyze_graph`  - to analyze the edges and vertices of the edge table.
+-  :ref:`pgr_analyze_oneway` - to analyze directionality of the edges.
+-  :ref:`pgr_node_network`  -to create nodes to a not noded edge table.
+
+.. toctree::
+  :hidden:
+
+  pgr_createTopology
+  pgr_createVerticesTable
+  pgr_analyzeGraph
+  pgr_analyzeOneWay
+  pgr_nodeNetwork
+
+See Also
+-------------------------------------------------------------------------------
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/trsp/CMakeLists.txt b/doc/trsp/CMakeLists.txt
new file mode 100644
index 0000000..a2e7d6e
--- /dev/null
+++ b/doc/trsp/CMakeLists.txt
@@ -0,0 +1,12 @@
+
+SET(LOCAL_FILES
+    pgr_trsp.rst
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}")
+    list(APPEND LOCAL_DOC_FILES  ${PGR_DOCUMENTATION_SOURCE_DIR}/${f})
+endforeach()
+
+set(PgRouting_DOC_FILES ${PgRouting_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE)
+
diff --git a/doc/trsp/README.md b/doc/trsp/README.md
new file mode 100644
index 0000000..3f6e052
--- /dev/null
+++ b/doc/trsp/README.md
@@ -0,0 +1,1112 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+ROLLBACK;
+ROLLBACK
+# Notes on pgr_trsp for version 2.5.0
+Table of contents
+* [Introduction](#introduction)
+  * [The restriction](#the-restriction)
+* [The Vertices Signature Version](#the-vertices-signature-version)
+  * [No path representation differences](#vertices-no-path-representation-differences)
+  * [Routing from/to same location](#routing-fromto-same-location)
+  * [Undirected graph](#vertices-undirected-graph)
+* [The Edges Signature Version](#the-edges-signature-version)
+  * [No path representation differences](#edges-no-path-representation-differences)
+  * [Definition of a path](#definition-of-a-path)
+  * [Points on the same edge](#points-on-the-same-edge)
+  * [Undirected graph](#edges-undirected-graph)
+  * [Using a points of interest table](#using-a-points-of-interest-table)
+  * [Routing from/to the same point](#routing-fromto-the-same-point)
+  * [Passing in front of other points](#passing-in-front-of-other-points)
+  * [Routing from a vertex to a point](#edges-routing-from-a-vertex-to-a-point)
+* [pgr_trspViaVertices](#pgr_trspviavertices)
+  * [pgr_trspViaVertices No path representation differences](#pgr_trspviavertices-no-path-representation-differences)
+  * [when a path does not exist on the route](#when-a-path-does-not-exist-on-the-route)
+  * [from 2 to 3 to 2](#from-2-to-3-to-2)
+* [pgr_trspViaEdges](#pgr_trspviaedges)
+  * [pgr_trspViaEdges No path representation differences](#pgr_trspviaedges-no-path-representation-differences)
+  * [Using a points of interest table](#pgr_trspviaedges-using-the-pointsofinterest-table)
+
+# Introduction
+pgr_trsp code has issues that are not being fixed yet, but as time passes and new functionality is added to pgRouting with wrappers to **hide** the issues, not to fix them.
+
+For clarity on the queries:
+* _pgr_trsp (with underscore) is the original code
+* pgr_trsp (lower case) represents the wrapper calling the original code
+* pgr_TRSP (upper case) represents the wrapper calling the replacement function, depending on the function, it can be:
+  * pgr_dijkstra
+  * pgr_dijkstraVia
+  * pgr_withPoints
+  * _pgr_withPointsVia
+
+This page intentions is to compare the original code with the wrapped version of the trsp group of functions.
+## The restriction
+The restriction used in the examples does not have to do anything with the graph:
+* No vertex has id: 25, 32 or 33
+* No edge has id: 25, 32 or 33
+```
+$$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, 32, 33::TEXT AS via_path$$
+```
+therefore the shortest path expected are as if there was no restriction involved
+# The Vertices signature version
+## (Vertices) No path representation differences
+Original function code
+* Sometimes it crasses the server when no path was found
+* Sometimes represents with Error a no path found
+* Forcing the user to use the wrapper or the replacement function
+
+Calls to the original function of is no longer allowed without restrictions
+```
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 15, true, true
+);
+ERROR:  Error computing path: Path Not Found
+```
+dijkstra returns EMPTY SET to represent no path found
+```
+SELECT * FROM pgr_dijkstra(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 15
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+(0 rows)
+
+```
+pgr_trsp use the pgr_dijkstra when there are no restrictions
+therefore returns EMPTY SET to represent no path found
+```
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 15, true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+(0 rows)
+
+```
+pgr_trsp use the original code when there are restrictions
+therefore throws Error to represent no path found
+```
+SELECT * FROM pgr_trsp(
+     $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+     1, 15, true, true,
+     $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ERROR:  Error computing path: Path Not Found
+CONTEXT:  PL/pgSQL function pgr_trsp(text,integer,integer,boolean,boolean,text) line 29 at RETURN QUERY
+```
+## routing from/to same location
+using dijkstra to verify (1 to 1)
+```
+SELECT * FROM pgr_dijkstra(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 1
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+(0 rows)
+
+```
+This call uses the replacement function because there are no restrictions (1 to 1)
+therefore is expected to return EMPTY SET to represent no path found
+```
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    1, 1,  true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+(0 rows)
+
+```
+call forcing the use of the original code (1 to 1)
+* not longer allowed without restrictions
+
+```
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    1, 1,  true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |   1 |   1 |    1
+   1 |   2 |   4 |    1
+   2 |   5 |   8 |    1
+   3 |   6 |   9 |    1
+   4 |   9 |  16 |    1
+   5 |   4 |   3 |    1
+   6 |   3 |   2 |    1
+   7 |   2 |   1 |    1
+   8 |   1 |  -1 |    0
+(9 rows)
+
+```
+trsp with restrictions (1 to 1) use the original code
+is expected to return Error to represent no path found
+```
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    1, 1,  
+    true, 
+    true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |   1 |   1 |    1
+   1 |   2 |   4 |    1
+   2 |   5 |   8 |    1
+   3 |   6 |   9 |    1
+   4 |   9 |  16 |    1
+   5 |   4 |   3 |    1
+   6 |   3 |   2 |    1
+   7 |   2 |   1 |    1
+   8 |   1 |  -1 |    0
+(9 rows)
+
+```
+trsp calling the original code with restrictions (1 to 1)
+is expected to return Error to represent no path found
+but "finds" a path when there should be no path.
+```
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    1, 1,  
+    true, 
+    true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |   1 |   1 |    1
+   1 |   2 |   4 |    1
+   2 |   5 |   8 |    1
+   3 |   6 |   9 |    1
+   4 |   9 |  16 |    1
+   5 |   4 |   3 |    1
+   6 |   3 |   2 |    1
+   7 |   2 |   1 |    1
+   8 |   1 |  -1 |    0
+(9 rows)
+
+```
+## (vertices) Undirected graph
+using Dijkstra to verify the shortest path from (2 to 3) on undirected graph
+```
+SELECT * FROM pgr_dijkstra(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    2, 3, false
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    2 |    1 |        0
+   2 |        2 |    3 |   -1 |    0 |        1
+(2 rows)
+
+```
+using the replacement function because there are no restrictions (2 to 3)
+```
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    2, 3,
+    false, 
+    true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |   2 |   2 |    1
+   1 |   3 |  -1 |    0
+(2 rows)
+
+```
+call forcing the use of the original code
+* not longer allowed without restrictions
+
+```
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    2, 3,
+    false, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |   2 |   4 |    1
+   1 |   5 |   8 |    1
+   2 |   6 |   9 |    1
+   3 |   9 |  16 |    1
+   4 |   4 |   3 |    1
+   5 |   3 |  -1 |    0
+(6 rows)
+
+```
+trsp with restrictions (2 to 3)
+does not find the shortest path
+```
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    2, 3,
+    false, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |   2 |   4 |    1
+   1 |   5 |   8 |    1
+   2 |   6 |   9 |    1
+   3 |   9 |  16 |    1
+   4 |   4 |   3 |    1
+   5 |   3 |  -1 |    0
+(6 rows)
+
+```
+calling the original code with restrictions (2 to 3)
+does not find the shortest path
+```
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    2, 3,
+    false, 
+    true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |   2 |   4 |    1
+   1 |   5 |   8 |    1
+   2 |   6 |   9 |    1
+   3 |   9 |  16 |    1
+   4 |   4 |   3 |    1
+   5 |   3 |  -1 |    0
+(6 rows)
+
+```
+# The Edges signature version
+## (Edges) No path representation differences
+Original function code
+* Sometimes it crasses the server when no path was found
+* Sometimes represents with Error a no path found
+* Forcing the user to use the wrapper or the replacement function
+
+Calls to the original function of is no longer allowed without restrictions
+```
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 0.5, 17, 0.5, true, true
+);
+ERROR:  Error computing path: Path Not Found
+```
+pgr_withPoints returns EMPTY SET to represent no path found
+```
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$(SELECT 1 as pid, 1 as edge_id, 0.5::float as fraction)
+    UNION
+    (SELECT 2, 17, 0.5)$$,
+    -1, -2
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+(0 rows)
+
+```
+## Definition of a path
+Remember that one characteristic of a path is that for a path of N edges it has N+1 vertices.
+
+For this example, suppose points, where the pid are different even if the edge and fraction are different.
+One point might be on the left side other on the right side, pgr_trsp does not take into account
+the side of the point
+calls forcing the use of the original code
+* not longer allowed without restrictions
+
+```
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 0.5, 1, 0.5, true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   1 |    0
+(1 row)
+
+```
+* with restrictions
+```
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 0.5, 1, 0.5, true, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   1 |    0
+(1 row)
+
+```
+Using the *pgr_withPoints* it returns a path of N edge and N+1 vertices
+```
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$(SELECT 1 as pid, 1 as edge_id, 0.5::float as fraction)
+    UNION
+    (SELECT 2, 1, 0.5)$$,
+    -1, -2
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |   -1 |    1 |    0 |        0
+   2 |        2 |   -2 |   -1 |    0 |        0
+(2 rows)
+
+```
+The *pgr_withPoints* is used when there are no restrictions
+```
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 0.5, 1, 0.5, true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   1 |    0
+   1 |  -2 |  -1 |    0
+(2 rows)
+
+```
+The original *_pgr_trsp* code is used when there are restrictions
+```
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 0.5, 1, 0.5, true, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   1 |    0
+(1 row)
+
+```
+note that pgr_withPoints returns an EMPTY SET when the point is the same
+```
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$(SELECT 1 as pid, 1 as edge_id, 0.5::float as fraction)
+    UNION
+    (SELECT 2, 1, 0.5)$$,
+    -1, -1
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+(0 rows)
+
+```
+## Points on the same edge
+The *pgr_withPoints* is used when there are no restrictions
+* it returns a path of N edges and N+1 vertices
+```
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 0.5, 1, 0.8, true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   1 |  0.3
+   1 |  -2 |  -1 |    0
+(2 rows)
+
+```
+The original *_pgr_trsp* is used when there are restrictions
+* it returns a path of N edges and N vertex instead of N edge and N+1 vertices
+```
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 0.5, 1, 0.8, true, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   1 |  0.3
+(1 row)
+
+```
+## (Edges) Undirected graph
+the shortest path obtained with *pgr_withPoints*
+```
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$(SELECT 1 as pid, 4 as edge_id, 0.5::float as fraction)
+    UNION
+    (SELECT 2, 2, 0.8)$$,
+    -1, -2, directed:=false
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |   -1 |    4 |  0.5 |        0
+   2 |        2 |    2 |    2 |  0.8 |      0.5
+   3 |        3 |   -2 |   -1 |    0 |      1.3
+(3 rows)
+
+```
+The original *_pgr_trsp* is used when there are restrictions
+
+```
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    4, 0.5, 2, 0.8, false, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   4 |  0.5
+   1 |   2 |   2 |  0.8
+   2 |  -2 |  -1 |    0
+(3 rows)
+
+```
+when using restrictions the original *_pgr_trsp* is used internally
+* it returns a path of N edges and N vertex instead of N edge and N+1 vertices
+* it does not return the shortest path.
+
+```
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    4, 0.5, 2, 0.8, false, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   4 |  0.5
+   1 |   5 |   8 |    1
+   2 |   6 |   9 |    1
+   3 |   9 |  16 |    1
+   4 |   4 |   3 |    1
+   5 |   3 |   2 |  0.2
+(6 rows)
+
+```
+## Using a points of interest table
+The points of interest
+```
+SELECT * FROM pointsOfInterest;
+ pid |  x  |  y  | edge_id | side | fraction |                  the_geom                  |                  newpoint                  
+-----+-----+-----+---------+------+----------+--------------------------------------------+--------------------------------------------
+   1 | 1.8 | 0.4 |       1 | l    |      0.4 | 0101000000CDCCCCCCCCCCFC3F9A9999999999D93F | 010100000000000000000000409A9999999999D93F
+   2 | 4.2 | 2.4 |      15 | r    |      0.4 | 0101000000CDCCCCCCCCCC10403333333333330340 | 010100000000000000000010403333333333330340
+   3 | 2.6 | 3.2 |      12 | l    |      0.6 | 0101000000CDCCCCCCCCCC04409A99999999990940 | 0101000000CDCCCCCCCCCC04400000000000000840
+   4 | 0.3 | 1.8 |       6 | r    |      0.3 | 0101000000333333333333D33FCDCCCCCCCCCCFC3F | 0101000000333333333333D33F0000000000000040
+   5 | 2.9 | 1.8 |       5 | l    |      0.8 | 01010000003333333333330740CDCCCCCCCCCCFC3F | 01010000000000000000000840CDCCCCCCCCCCFC3F
+   6 | 2.2 | 1.7 |       4 | b    |      0.7 | 01010000009A99999999990140333333333333FB3F | 01010000000000000000000040333333333333FB3F
+(6 rows)
+
+```
+On *pgr_trsp*, to be able to use the table information:
+* Each parameter has to be extracted explicitly from the table
+* Regardles of the point pid original value
+  * will always be -1 for the first point
+  * will always be -2 for the second point
+```
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 6),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 6),
+    true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   1 |  0.6
+   1 |   2 |   4 |  0.7
+   2 |  -2 |  -1 |    0
+(3 rows)
+
+```
+On *pgr_withPoints*, to be able to use the table information:
+* select statement on the *pointsOfInterest* table
+* *Negative* the id to represent the id is a pid
+* The points pids in the result are not renumbered
+* The points pids in the result are represented with negative sign
+```
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$SELECT pid, edge_id, fraction FROM pointsOfInterest$$,
+    -1, -6
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |   -1 |    1 |  0.6 |        0
+   2 |        2 |    2 |    4 |  0.7 |      0.6
+   3 |        3 |   -6 |   -1 |    0 |      1.3
+(3 rows)
+
+```
+## routing from/to the same point
+using pgr_withPoints to check results
+expecting EMPTY SET to represent no path found
+```
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$SELECT pid, edge_id, fraction FROM pointsOfInterest$$,
+    -1, -1
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+(0 rows)
+
+```
+This call uses the replacement function because there are no restrictions
+* Because the pid is not involved the points are considered different
+* it returns a path
+
+```
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   1 |    0
+   1 |  -2 |  -1 |    0
+(2 rows)
+
+```
+pgr_trsp with restrictions use the original code
+* it returns a path of N edges and N vertex instead of N edge and N+1 vertices
+
+```
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    true, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   1 |    0
+(1 row)
+
+```
+## passing in front of other points
+using pgr_withPoints to verify the shortest path from pids (1 to 3)
+```
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$SELECT pid, edge_id, fraction FROM pointsOfInterest$$,
+    -1, -3
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |   -1 |    1 |  0.6 |        0
+   2 |        2 |    2 |    4 |    1 |      0.6
+   3 |        3 |    5 |   10 |    1 |      1.6
+   4 |        4 |   10 |   12 |  0.6 |      2.6
+   5 |        5 |   -3 |   -1 |    0 |      3.2
+(5 rows)
+
+```
+**pgr_withPoints** can be used to see when the route passes in front of other points
+In this example point pid=6 is passed in front of
+```
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$SELECT pid, edge_id, fraction FROM pointsOfInterest$$,
+    -1, -3, details:=true
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |   -1 |    1 |  0.6 |        0
+   2 |        2 |    2 |    4 |  0.7 |      0.6
+   3 |        3 |   -6 |    4 |  0.3 |      1.3
+   4 |        4 |    5 |   10 |    1 |      1.6
+   5 |        5 |   10 |   12 |  0.6 |      2.6
+   6 |        6 |   -3 |   -1 |    0 |      3.2
+(6 rows)
+
+```
+Can not be used to see if other points are passed in front of.
+The pointsOfInterest table is not part of the parameter
+```
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 3),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 3),
+    true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   1 |  0.6
+   1 |   2 |   4 |    1
+   2 |   5 |  10 |    1
+   3 |  10 |  12 |  0.6
+   4 |  -2 |  -1 |    0
+(5 rows)
+
+```
+## (edges) Routing from a vertex to a point
+Showing *pgr_withPoints* results of the shortest path from vid 6 to pid 1
+```
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$SELECT pid, edge_id, fraction FROM pointsOfInterest$$,
+    6, -1
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    6 |    8 |    1 |        0
+   2 |        2 |    5 |    4 |    1 |        1
+   3 |        3 |    2 |    1 |  0.6 |        2
+   4 |        4 |   -1 |   -1 |    0 |      2.6
+(4 rows)
+
+```
+* Vertex 6 is on edge 8 at 1 fraction
+* Vertex 6 is also edge 11 at 0 fraction
+* Undefined behaviour when at least one of the "points" is an actual vertex
+
+```
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    8, 1,
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+(0 rows)
+
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    11, 0,
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+(0 rows)
+
+```
+# pgr_trspViaVertices
+## pgr_trspViaVertices No path representation differences
+pgr_trspViaVertices uses _pgr_trsp which as mentioned before
+* Sometimes it crasses the server when no path was found
+* Sometimes represents with Error a no path found
+* Forcing the user to use the wrapper or the replacement function
+
+Calls to the original function of is no longer allowed without restrictions
+```
+SELECT * FROM _pgr_trspViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 15, 2],
+    false, true
+);
+ERROR:  Error computing path: Path Not Found
+CONTEXT:  PL/pgSQL function _pgr_trspviavertices(text,integer[],boolean,boolean,text) line 23 at FOR over SELECT rows
+SELECT * FROM _pgr_trspViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 15, 2, 1],
+    false, true
+);
+ERROR:  Error computing path: Path Not Found
+CONTEXT:  PL/pgSQL function _pgr_trspviavertices(text,integer[],boolean,boolean,text) line 23 at FOR over SELECT rows
+```
+**pgr_dijkstraVia** returning what paths of the route it finds or EMPTY SET when non is found
+this case none is found
+```
+SELECT * FROM pgr_dijkstraVia(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 15, 2],
+    false
+);
+ seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost | route_agg_cost 
+-----+---------+----------+-----------+---------+------+------+------+----------+----------------
+(0 rows)
+
+```
+this case only from 2 to 1 is found
+```
+SELECT * FROM pgr_dijkstraVia(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 15, 2, 1],
+    false
+);
+ seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost | route_agg_cost 
+-----+---------+----------+-----------+---------+------+------+------+----------+----------------
+   1 |       3 |        1 |         2 |       1 |    2 |    1 |    1 |        0 |              0
+   2 |       3 |        2 |         2 |       1 |    1 |   -2 |    0 |        1 |              1
+(2 rows)
+
+```
+the **pgr_dijkstraVia** used are for complete routes so its marked as **strict:=true**
+therefore the expected result is EMPTY SET to represent no route was found
+```
+SELECT * FROM pgr_dijkstraVia(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 1, 2],
+    false,
+    strict := true
+);
+ seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost | route_agg_cost 
+-----+---------+----------+-----------+---------+------+------+------+----------+----------------
+(0 rows)
+
+```
+## when a path does not exist on the route
+pgr_TRSPViaVertices using the *pgr_dijkstraVia* when there are no restrictions.
+Because there is no path from 1 to 1 then there is no complete route 1 to 1 to 2
+therefore the expected result is EMPTY SET to represent no route was found
+```
+SELECT * FROM pgr_TRSPViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 1, 2],
+    false, true
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+(0 rows)
+
+```
+Calls to the original function of is no longer allowed without restrictions
+```
+SELECT * FROM _pgr_trspViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 1, 2],
+    false, true
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |   1 |   1 |    1
+   2 |   1 |   2 |   4 |    1
+   3 |   1 |   5 |   8 |    1
+   4 |   1 |   6 |   9 |    1
+   5 |   1 |   9 |  16 |    1
+   6 |   1 |   4 |   3 |    1
+   7 |   1 |   3 |   2 |    1
+   8 |   1 |   2 |   1 |    1
+   9 |   2 |   1 |   1 |    1
+  10 |   2 |   2 |  -1 |    0
+(10 rows)
+
+```
+with restrictions the original code is used
+```
+SELECT * FROM pgr_trspViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 1, 2],
+    false, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |   1 |   1 |    1
+   2 |   1 |   2 |   4 |    1
+   3 |   1 |   5 |   8 |    1
+   4 |   1 |   6 |   9 |    1
+   5 |   1 |   9 |  16 |    1
+   6 |   1 |   4 |   3 |    1
+   7 |   1 |   3 |   2 |    1
+   8 |   1 |   2 |   1 |    1
+   9 |   2 |   1 |   1 |    1
+  10 |   2 |   2 |  -1 |    0
+(10 rows)
+
+```
+Using explicitly the original code
+```
+SELECT * FROM _pgr_trspViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 1, 2],
+    false, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |   1 |   1 |    1
+   2 |   1 |   2 |   4 |    1
+   3 |   1 |   5 |   8 |    1
+   4 |   1 |   6 |   9 |    1
+   5 |   1 |   9 |  16 |    1
+   6 |   1 |   4 |   3 |    1
+   7 |   1 |   3 |   2 |    1
+   8 |   1 |   2 |   1 |    1
+   9 |   2 |   1 |   1 |    1
+  10 |   2 |   2 |  -1 |    0
+(10 rows)
+
+```
+## from 2 to 3 to 2
+dijkstra via shows the shortest route on the two paths
+```
+SELECT * FROM pgr_dijkstraVia(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[2, 3, 2],
+    false 
+);
+ seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost | route_agg_cost 
+-----+---------+----------+-----------+---------+------+------+------+----------+----------------
+   1 |       1 |        1 |         2 |       3 |    2 |    2 |    1 |        0 |              0
+   2 |       1 |        2 |         2 |       3 |    3 |   -1 |    0 |        1 |              1
+   3 |       2 |        1 |         3 |       2 |    3 |    2 |    1 |        0 |              1
+   4 |       2 |        2 |         3 |       2 |    2 |   -2 |    0 |        1 |              2
+(4 rows)
+
+```
+the replacement function **pgr_dijkstraVia** is used because there are no restrictions
+```
+SELECT * FROM pgr_TRSPViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[2, 3, 2],
+    false, 
+    true
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |   2 |   2 |    1
+   2 |   2 |   3 |   2 |    1
+   3 |   2 |   2 |  -1 |    0
+(3 rows)
+
+```
+Calls to the original function of is no longer allowed without restrictions
+```
+SELECT * FROM _pgr_trspViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[2, 3, 2],
+    false, 
+    true
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |   2 |   4 |    1
+   2 |   1 |   5 |   8 |    1
+   3 |   1 |   6 |   9 |    1
+   4 |   1 |   9 |  16 |    1
+   5 |   1 |   4 |   3 |    1
+   6 |   2 |   3 |   2 |    1
+   7 |   2 |   2 |  -1 |    0
+(7 rows)
+
+```
+# pgr_trspViaEdges
+*pgr_trspViaEdges* will use the original code when
+* There are restrictions
+* A point is a vertex in disguise (with pcts value of 0)
+
+What it returns
+* Error to represent no route
+* the points are renumbered to -1, -2 .. -N
+* if a point is part of a path it will **not** show on the path
+
+Exaple execution
+```
+SELECT * FROM pgr_trspViaEdges(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 2, 1], ARRAY[0.1,0.5,0.5],
+    false, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |  -1 |   1 |  0.9
+   2 |   1 |   2 |   4 |    1
+   3 |   1 |   5 |   8 |    1
+   4 |   1 |   6 |   9 |    1
+   5 |   1 |   9 |  16 |    1
+   6 |   1 |   4 |   3 |    1
+   7 |   1 |   3 |   2 |    1
+   8 |   2 |   2 |   1 |  0.5
+(8 rows)
+
+```
+A temporay wraper function is used when:
+* There are no restrictions
+* Before: No point is a vertex in disguise (with pcts value of 0)
+* Now: c$Undefined behaviour when a point is a vertex in disguise (with pcts value of 0)
+
+Internaly:
+* builds a new graph and calls pgr_dijkstraVia
+
+What it returns
+* returns EMPTY SET to represent no route
+* edge = -1 in the result to represent the end of a intermediate path
+* edge = -2 in the result to represent the end of the last path & route
+* the points are renumbered to -1, -2 .. -N
+* if a point is part of a path it will show on the path
+
+Note: I do not mention the wrapper name due to the fact that this is not official documentation
+Note: I will use *_pgr_withPointsVia* as the wrapper name just for sake of this notes
+Example excution
+```
+SELECT * FROM _pgr_withPointsVia(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 2, 1], ARRAY[0.1,0.5,0.5],
+    directed := false
+);
+ seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost | route_agg_cost 
+-----+---------+----------+-----------+---------+------+------+------+----------+----------------
+   1 |       1 |        1 |        -1 |      -2 |   -1 |    1 |  0.1 |        0 |              0
+   2 |       1 |        2 |        -1 |      -2 |    2 |    2 |  0.5 |      0.1 |            0.1
+   3 |       1 |        3 |        -1 |      -2 |   -2 |   -1 |    0 |      0.6 |            0.6
+   4 |       2 |        1 |        -2 |      -3 |   -2 |    2 |  0.5 |        0 |            0.6
+   5 |       2 |        2 |        -2 |      -3 |    2 |    1 |  0.5 |      0.5 |            1.1
+   6 |       2 |        3 |        -2 |      -3 |   -3 |   -2 |    0 |        1 |            1.6
+(6 rows)
+
+```
+## pgr_trspViaEdges No path representation differences
+This example no path is found (edge 17 is disconnected) from the big graph.
+* There is a vertex in disguise (fraction 0 or 1)
+* Undefined behaviour
+
+```
+SELECT * FROM pgr_trspViaEdges(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 17, 1], ARRAY[0,0.5,0.5],
+    false, true
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |     |     |     |     
+(1 row)
+
+```
+This example no path is found (edge 17 is disconnected) from the big graph.
+* Has a restriction
+* *pgr_trspViaEdges* original code is used
+* throws error to represent no route was not found
+
+```
+SELECT * FROM pgr_trspViaEdges(
+$$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+ARRAY[1, 17, 1], ARRAY[0.5,0.5,0.5],
+false, true,
+$$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, 32, 33::TEXT AS via_path$$
+);
+server closed the connection unexpectedly
+This probably means the server terminated abnormally
+before or while processing the request.
+The connection to the server was lost. Attempting reset: Failed.
+```
+This example no path is found (edge 17 is disconnected) from the big graph.
+* *_pgr_withPointsVia* is used
+* returns EMPTY SET to represent no route
+
+```
+SELECT * FROM pgr_trspViaEdges(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 17, 1], ARRAY[0.1,0.5,0.5],
+    false, 
+    true
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+(0 rows)
+
+```
+## (pgr_trspViaEdges) Using the pointsOfInterest table
+Only routing points
+when *_pgr_withPointsVia* is used
+* the renumbering still takes place
+
+```
+SELECT * FROM pgr_trspViaEdges(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 3),
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 6)],
+    ARRAY[
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 3),
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 6)],
+    false, 
+    true
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |  -1 |   1 |  0.4
+   2 |   1 |   2 |   4 |  0.3
+   3 |   1 |  -3 |   4 |  0.3
+   4 |   1 |   5 |  10 |    1
+   5 |   1 |  10 |  12 |  0.6
+   6 |   1 |  -2 |  -1 |    0
+   7 |   2 |  -2 |  12 |  0.6
+   8 |   2 |  10 |  10 |    1
+   9 |   2 |   5 |   4 |  0.3
+  10 |   2 |  -3 |  -2 |    0
+(10 rows)
+
+```
+Only routing points
+when originalcode is used (because there is a restriction)
+
+```
+SELECT * FROM pgr_trspViaEdges(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 3),
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 6)],
+    ARRAY[
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 3),
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 6)],
+    false, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |  -1 |   1 |  0.6
+   2 |   1 |   2 |   4 |    1
+   3 |   1 |   5 |  10 |    1
+   4 |   1 |  10 |  12 |    1
+   5 |   2 |  11 |  13 |    1
+   6 |   2 |  12 |  15 |    1
+   7 |   2 |   9 |   9 |    1
+   8 |   2 |   6 |   8 |    1
+   9 |   2 |   5 |   4 |  0.3
+(9 rows)
+
+```
+Routing points & vertices
+* vertex 6 is on edge 11 with fraction 0
+* Undefined behavior
+```
+SELECT * FROM pgr_trspViaEdges(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 3),
+        11],
+    ARRAY[
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 3),
+        0],
+    false, 
+    true
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |  -1 |   1 |  0.6
+   2 |   1 |   2 |   4 |    1
+   3 |   1 |   5 |  10 |    1
+   4 |   1 |  10 |  12 |  0.6
+   5 |   1 |  -2 |  -1 |    0
+(5 rows)
+
+```
+BEGIN;
+BEGIN
+ROLLBACK;
+ROLLBACK
diff --git a/doc/trsp/pgr_trsp.rst b/doc/trsp/pgr_trsp.rst
new file mode 100644
index 0000000..2f1a5be
--- /dev/null
+++ b/doc/trsp/pgr_trsp.rst
@@ -0,0 +1,209 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _trsp:
+
+pgr_trsp - Turn Restriction Shortest Path (TRSP)
+===============================================================================
+
+.. index::
+	single: trsp(text,integer,integer,boolean,boolean)
+	single: trsp(text,integer,integer,boolean,boolean,text)
+	single: trspViaVertices(text,integer,double precision,integer,double precision,boolean,boolean)
+	single: trspViaEdges(text,integer,double precision,integer,double precision,boolean,boolean,text)
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_trsp`` — Returns the shortest path with support for turn restrictions.
+
+
+Synopsis
+-------------------------------------------------------------------------------
+
+The turn restricted shorthest path (TRSP) is a shortest path algorithm that can optionally take into account complicated turn restrictions like those found in real world navigable road networks. Performamnce wise it is nearly as fast as the A* search but has many additional features like it works with edges rather than the nodes of the network. Returns a set of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows, that make up a path.
+
+.. code-block:: sql
+
+	pgr_costResult[] pgr_trsp(sql text, source integer, target integer,
+                    directed boolean, has_rcost boolean [,restrict_sql text]);
+
+
+.. code-block:: sql
+
+	pgr_costResult[] pgr_trsp(sql text, source_edge integer, source_pos float8,
+	                target_edge integer, target_pos float8,
+                    directed boolean, has_rcost boolean [,restrict_sql text]);
+
+.. code-block:: sql
+
+    pgr_costResult3[] pgr_trspViaVertices(sql text, vids integer[],
+                    directed boolean, has_rcost boolean
+                    [, turn_restrict_sql text]);
+
+.. code-block:: sql
+
+     pgr_costResult3[] pgr_trspViaEdges(sql text, eids integer[], pcts float8[],
+                    directed boolean, has_rcost boolean
+                    [, turn_restrict_sql text]);
+
+Description
+-------------------------------------------------------------------------------
+
+The Turn Restricted Shortest Path algorithm (TRSP) is similar to the shooting star in that you can specify turn restrictions.
+
+The TRSP setup is mostly the same as :ref:`Dijkstra shortest path <pgr_dijkstra>` with the addition of an optional turn restriction table. This provides an easy way of adding turn restrictions to a road network by placing them in a separate table.
+
+
+:sql: a SQL query, which should return a set of rows with the following columns:
+
+	.. code-block:: sql
+
+		SELECT id, source, target, cost, [,reverse_cost] FROM edge_table
+
+
+	:id: ``int4`` identifier of the edge
+	:source: ``int4`` identifier of the source vertex
+	:target: ``int4`` identifier of the target vertex
+	:cost: ``float8`` value, of the edge traversal cost. A negative cost will prevent the edge from being inserted in the graph.
+	:reverse_cost: (optional) the cost for the reverse traversal of the edge. This is only used when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the above remark about negative costs).
+
+:source: ``int4`` **NODE id** of the start point
+:target: ``int4`` **NODE id** of the end point
+:directed: ``true`` if the graph is directed
+:has_rcost: if ``true``, the ``reverse_cost`` column of the SQL generated set of rows will be used for the cost of the traversal of the edge in the opposite direction.
+
+:restrict_sql: (optional) a SQL query, which should return a set of rows with the following columns:
+
+	.. code-block:: sql
+
+		SELECT to_cost, target_id, via_path FROM restrictions
+
+	:to_cost: ``float8`` turn restriction cost
+	:target_id: ``int4`` target id
+	:via_path: ``text`` comma separated list of edges in the reverse order of ``rule``
+
+Another variant of TRSP allows to specify **EDGE id** of source and target together with a fraction to interpolate the position:
+
+:source_edge: ``int4`` **EDGE id** of the start edge
+:source_pos: ``float8`` fraction of 1 defines the position on the start edge
+:target_edge: ``int4`` **EDGE id** of the end edge
+:target_pos: ``float8`` fraction of 1 defines the position on the end edge
+
+Returns set of :ref:`type_cost_result`:
+
+:seq:   row sequence
+:id1:   node ID
+:id2:   edge ID (``-1`` for the last row)
+:cost:  cost to traverse from ``id1`` using ``id2``
+
+.. rubric:: History
+
+* New in version 2.0.0
+
+Support for Vias
+--------------------------------------------------------------------
+
+.. warning:: The Support for Vias functions are prototypes. Not all corner cases are being considered.
+
+
+We also have support for vias where you can say generate a from A to B to C, etc. We support both methods above only you pass an array of vertices or and array of edges and percentage position along the edge in two arrays.
+
+
+
+:sql: a SQL query, which should return a set of rows with the following columns:
+
+	.. code-block:: sql
+
+		SELECT id, source, target, cost, [,reverse_cost] FROM edge_table
+
+
+	:id: ``int4`` identifier of the edge
+	:source: ``int4`` identifier of the source vertex
+	:target: ``int4`` identifier of the target vertex
+	:cost: ``float8`` value, of the edge traversal cost. A negative cost will prevent the edge from being inserted in the graph.
+	:reverse_cost: (optional) the cost for the reverse traversal of the edge. This is only used when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the above remark about negative costs).
+
+:vids: ``int4[]`` An ordered array of **NODE id** the path will go through from start to end.
+:directed: ``true`` if the graph is directed
+:has_rcost: if ``true``, the ``reverse_cost`` column of the SQL generated set of rows will be used for the cost of the traversal of the edge in the opposite direction.
+
+:restrict_sql: (optional) a SQL query, which should return a set of rows with the following columns:
+
+	.. code-block:: sql
+
+		SELECT to_cost, target_id, via_path FROM restrictions
+
+	:to_cost: ``float8`` turn restriction cost
+	:target_id: ``int4`` target id
+	:via_path: ``text`` commar separated list of edges in the reverse order of ``rule``
+
+Another variant of TRSP allows to specify **EDGE id** together with a fraction to interpolate the position:
+
+:eids: ``int4`` An ordered array of **EDGE id** that the path has to traverse
+:pcts: ``float8`` An array of fractional positions along the respective edges in ``eids``, where 0.0 is the start of the edge and 1.0 is the end of the eadge.
+
+Returns set of :ref:`type_cost_result`:
+
+:seq:   row sequence
+:id1:   route ID
+:id2:   node ID
+:id3:   edge ID (``-1`` for the last row)
+:cost:  cost to traverse from ``id2`` using ``id3``
+
+
+.. rubric:: History
+
+* Via Support prototypes new in version 2.1.0
+
+Examples
+-------------------------------------------------------------------------------
+
+**Without turn restrictions**
+
+.. literalinclude:: doc-trsp.queries
+   :start-after: --q1
+   :end-before: --q2
+
+
+**With turn restrictions**
+
+Then a query with turn restrictions is created as:
+
+.. literalinclude:: doc-trsp.queries
+   :start-after: --q3
+   :end-before: --q4
+
+
+An example query using vertex ids and via points:
+
+.. literalinclude:: doc-trsp.queries
+   :start-after: --q4
+   :end-before: --q5
+
+
+An example query using edge ids and vias:
+
+.. literalinclude:: doc-trsp.queries
+   :start-after: --q5
+   :end-before: --q6
+
+
+The queries use the :doc:`sampledata` network.
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* :ref:`type_cost_result`
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/tsp/CMakeLists.txt b/doc/tsp/CMakeLists.txt
new file mode 100644
index 0000000..2586a9f
--- /dev/null
+++ b/doc/tsp/CMakeLists.txt
@@ -0,0 +1,14 @@
+
+SET(LOCAL_FILES
+    pgr_eucledianTSP.rst
+    pgr_TSP.rst
+    TSP-family.rst
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}")
+    list(APPEND LOCAL_DOC_FILES  ${PGR_DOCUMENTATION_SOURCE_DIR}/${f})
+endforeach()
+
+set(PgRouting_DOC_FILES ${PgRouting_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE)
+
diff --git a/doc/tsp/TSP-family.rst b/doc/tsp/TSP-family.rst
new file mode 100644
index 0000000..7bfba8e
--- /dev/null
+++ b/doc/tsp/TSP-family.rst
@@ -0,0 +1,259 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _tsp:
+
+Traveling Sales Person - Family of functions
+===============================================================================
+
+.. index from here
+
+* :ref:`pgr_TSP` - When input is given as matrix cell information.
+* :ref:`pgr_eucledianTSP` - When input are coordinates.
+
+.. index to here
+
+.. toctree::
+    :hidden:
+
+    pgr_TSP
+    pgr_eucledianTSP
+
+
+General Information
+------------------------------------
+
+Origin
+..........
+
+The traveling sales person problem was studied in the 18th century by mathematicians
+ **Sir William Rowam Hamilton** and **Thomas Penyngton  Kirkman**.
+
+A discussion about the work of Hamilton & Kirkman
+can be found in the book **Graph Theory (Biggs et  al. 1976)**.
+
+* ISBN-13: 978-0198539162
+* ISBN-10: 0198539169
+
+It is believed that the general form of the TSP have been first studied by Kalr Menger in Vienna and Harvard.
+The problem  was  later promoted by Hassler, Whitney  &  Merrill at Princeton.
+A detailed  description about the connection between Menger & Whitney, and the development of the
+TSP can be found in  `On the history of combinatorial optimization (till 1960) <http://www.cwi.nl/~lex/files/histco.ps>`_
+
+Problem Definition
+...................
+
+Given a collection of cities and travel cost between each pair,
+find the cheapest way for visiting all of the cities and returning to the starting point.
+
+Characteristics
+................
+
+- The travel costs are symmetric:
+
+  - traveling costs from city A to city B are just as much as traveling from B to A.
+
+- This problem is an NP-hard optimization problem.
+
+- To calculate the number of different tours through :math:`n` cities:
+
+  - Given a starting city,
+  - There are :math:`n-1` choices for the second city,
+  - And  :math:`n-2` choices for the third city, etc.
+  - Multiplying these together we get :math:`(n-1)!  = (n-1) (n-2) . .  1`.
+  - Now since our travel costs do not depend on the direction we take around the tour:
+
+    - this number by 2
+    -  :math:`(n-1)!/2`.
+
+TSP & Simulated Annealing
+.........................
+
+The simulated annealing algorithm was originally inspired from the process of
+annealing in metal work.
+
+Annealing involves heating and cooling a material to
+alter its physical properties due to the changes in its internal structure.
+As the metal cools its new structure becomes fixed,
+consequently causing the metal to retain its newly obtained properties. [C001]_
+
+
+.. rubric:: Pseudocode
+
+Given an initial solution, the simulated annealing process, will start with a high temperature
+and gradually cool down until the desired temperature is reached.
+
+For each temperature, a neighbouring new solution **snew** is calculated. The higher the temperature
+the higher the probability of accepting the new solution as a possible bester solution.
+
+Once the desired temperature is reached, the best solution found is returned
+
+.. code-block:: none
+
+    Solution = initial_solution;
+
+    temperature = initial_temperature;
+    while (temperature > final_temperature) {
+
+        do tries_per_temperature times {
+            snew = neighbour(solution);
+            If P(E(solution), E(snew), T) >= random(0, 1)
+                solution = snew;
+        }
+
+        temperature = temperature * cooling factor;
+    }
+
+    Output: the best solution
+
+
+
+pgRouting Implementation
+.........................
+
+pgRouting's implementation adds some extra parameters to allow some exit controls within the
+simulated annealing process.
+
+To cool down faster to the next temperature:
+
+- max_changes_per_temperature: limits the number of changes in the solution per temperature
+- max_consecutive_non_changes: limits the number of consecutive non changes per temperature
+
+This is done by doing some book keeping on the times **solution = snew;** is executed.
+
+- max_changes_per_temperature: Increases by one when **solution** changes
+- max_consecutive_non_changes: Reset to 0 when **solution** changes, and increased each **try**
+
+Additionally to stop the algorithm at a higher temperature than the desired one:
+
+- max_processing_time: limits the time the simulated annealing is performed.
+- book keeping is done to see if there was a change in **solution** on the last temperature
+
+Note that, if no change was found in the first **max_consecutive_non_changes** tries, then the
+simulated annealing will stop.
+
+.. code-block:: none
+
+    Solution = initial_solution;
+
+    temperature = initial_temperature;
+    while (temperature > final_temperature) {
+
+        do tries_per_temperature times {
+            snew = neighbour(solution);
+            If P(E(solution), E(snew), T) >= random(0, 1)
+                solution = snew;
+
+            when max_changes_per_temperature is reached
+                or max_consecutive_non_changes is reached
+                BREAK;
+        }
+
+        temperature = temperature * cooling factor;
+        when no changes were done in the current temperature
+            or max_processing_time has being reached
+            BREAK;
+    }
+
+    Output: the best solution
+
+
+Choosing parameters
+.........................
+
+There is no exact rule on how the parameters have to be chose, it will depend on the
+special characteristics of the problem.
+
+- Your computational time is crucial, then put your time limit to **max_processing_time**.
+- Make the **tries_per_temperture** depending on the number of cities, for example:
+
+  - Useful to estimate the time it takes to do one cycle: use `1`
+
+    - this will help to set a reasonable **max_processing_time**
+
+  - :math:`n * (n-1)`
+  - :math:`500 * n`
+
+- For a faster decreasing the temperature set **cooling_factor** to a smaller number,
+  and set to a higher number for a slower decrease.
+
+- When for the same given data the same results are needed, set **randomize** to `false`.
+
+  - When estimating how long it takes to do one cycle: use `false`
+
+
+A recommendation is to play with the values and see what fits to the particular data.
+
+.. tsp control parameters begin
+
+Description Of the Control parameters
+.....................................................................
+
+The control parameters are optional, and have a default value.
+
+=============================== ===========  ============  =================================================
+Parameter                       Type         Default       Description
+=============================== ===========  ============  =================================================
+**start_vid**                   ``BIGINT``    `0`          The greedy part of the implementation will use this identifier.
+**end_vid**                     ``BIGINT``    `0`          Last visiting vertex before returning to start_vid.
+**max_processing_time**         ``FLOAT``    `+infinity`   Stop the annealing processing when the value is reached.
+**tries_per_temperature**       ``INTEGER``  `500`         Maximum number of times a neighbor(s) is searched in each temperature.
+**max_changes_per_temperature** ``INTEGER``  `60`          Maximum number of times the solution is changed in each temperature.
+**max_consecutive_non_changes** ``INTEGER``  `100`         Maximum number of consecutive times the solution is not changed in each temperature.
+**initial_temperature**         ``FLOAT``    `100`         Starting temperature.
+**final_temperature**           ``FLOAT``    `0.1`         Ending temperature.
+**cooling_factor**              ``FLOAT``    `0.9`         Value between between 0 and 1 (not including) used to calculate the next temperature.
+**randomize**                   ``BOOLEAN``  `true`        Choose the random seed
+
+                                                           - true: Use current time as seed
+                                                           - false: Use `1` as seed. Using this value will get the same results with the same data in each execution.
+
+=============================== ===========  ============  =================================================
+
+
+.. tsp control parameters end
+
+.. tsp return values begin
+
+Description of the return columns
+...............................................................................
+
+Returns set of ``(seq, node, cost, agg_cost)``
+
+============= =========== =================================================
+Column           Type              Description
+============= =========== =================================================
+**seq**       ``INTEGER`` Row sequence.
+**node**      ``BIGINT``  Identifier of the node/coordinate/point.
+**cost**      ``FLOAT``   Cost to traverse from the current ``node`` ito the next ``node`` in the path sequence.
+                            - ``0`` for the last row in the path sequence.
+
+**agg_cost**  ``FLOAT``   Aggregate cost from the ``node`` at ``seq = 1`` to the current node.
+                            - ``0`` for the first row in the path sequence.
+
+============= =========== =================================================
+
+.. tsp return values end
+
+See Also
+.........................
+
+.. rubric:: References
+
+.. [C001] `Simulated annaeling algorithm for beginners <http://www.theprojectspot.com/tutorial-post/simulated-annealing-algorithm-for-beginners/6>`_
+
+* http://en.wikipedia.org/wiki/Traveling_salesman_problem
+* http://en.wikipedia.org/wiki/Simulated_annealing
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
+
diff --git a/doc/tsp/pgr_TSP.rst b/doc/tsp/pgr_TSP.rst
new file mode 100644
index 0000000..6753b6a
--- /dev/null
+++ b/doc/tsp/pgr_TSP.rst
@@ -0,0 +1,172 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_TSP:
+
+pgr_TSP
+=============================================================================
+
+Name
+-------------------------------------------------------------------------------
+
+* ``pgr_TSP`` - Returns a route that visits all the nodes exactly once.
+
+.. rubric:: Availability: 2.0.0
+
+* Signature changed 2.3.0
+
+
+Synopsis
+-------------------------------------------------------------------------------
+
+The travelling salesman problem (TSP) or travelling salesperson problem asks the following question:
+
+  - Given a list of cities and the distances between each pair of cities, what is the shortest possible route that visits each city exactly once and returns to the origin city?
+
+This implementation uses simulated annealing to return the approximate solution when the input is given in the form of matrix cell contents.
+The matrix information must be symmetrical.
+
+
+Signature Summary
+-------------------------------------------------------------------------------
+
+.. code-block:: none
+
+    pgr_TSP(matrix_cell_sql)
+    pgr_TSP(matrix_cell_sql,
+        start_id, end_id,
+        max_processing_time,
+        tries_per_temperature, max_changes_per_temperature, max_consecutive_non_changes,
+        initial_temperature, final_temperature, cooling_factor,
+        randomize,
+    RETURNS SETOF (seq, node, cost, agg_cost)
+
+Signatures
+-------------------------------------------------------------------------------
+
+
+.. index::
+    single: TSP(Basic Use)
+
+Basic Use
+...............................................................................
+
+.. code-block:: none
+
+    pgr_TSP(matrix_cell_sql)
+    RETURNS SETOF (seq, node, cost, agg_cost)
+
+:Example:
+
+Because the documentation examples are auto generated and tested for non changing results,
+and the default is to have random execution, the example is wrapping the actual call.
+
+.. literalinclude:: doc-pgr_TSP.queries
+   :start-after: -- q1
+   :end-before: -- q2
+
+..
+    TODO Intermediate Use
+
+.. index::
+    single: TSP(Complete Signature)
+
+Complete Signature
+...............................................................................
+
+.. code-block:: none
+
+
+    pgr_TSP(matrix_cell_sql,
+        start_id, end_id,
+        max_processing_time,
+        tries_per_temperature, max_changes_per_temperature, max_consecutive_non_changes,
+        initial_temperature, final_temperature, cooling_factor,
+        randomize,
+    RETURNS SETOF (seq, node, cost, agg_cost)
+
+
+.. rubric:: Example:
+
+.. literalinclude:: doc-pgr_TSP.queries
+   :start-after: -- q2
+   :end-before: -- q3
+
+
+Description of the Signatures
+-------------------------------------------------------------------------------
+
+Description of the Matrix Cell SQL query
+...............................................................................
+
+============= =========== =================================================
+Column        Type              Description
+============= =========== =================================================
+**start_vid** ``BIGINT``  Identifier of the starting vertex.
+**end_vid**   ``BIGINT``  Identifier of the ending vertex.
+**agg_cost**  ``FLOAT``   Cost for going from start_vid to end_vid
+============= =========== =================================================
+
+Can be Used with:
+
+* :ref:`pgr_dijkstraCostmatrix`
+* :ref:`pgr_withPointsCostmatrix`
+* :ref:`pgr_floydWarshall`
+* :ref:`pgr_johnson`
+
+To generate a symmetric matrix
+
+* directed := false.
+
+If using directed := true, the resulting non symmetric matrix must be converted to
+symmetric by fixing the non symmetric values according to your application needs.
+
+
+.. literalinclude:: TSP-family.rst
+   :start-after: tsp control parameters begin
+   :end-before: tsp control parameters end
+
+
+.. literalinclude:: TSP-family.rst
+   :start-after: tsp return values begin
+   :end-before: tsp return values end
+
+
+
+
+
+Examples
+-------------------------------------------------------------------------------
+
+:Example: Using with points of interest.
+
+To generate a symmetric matrix:
+
+* the **side** information of pointsOfInterset is ignored by not including it in the query
+* and **directed := false**
+
+.. literalinclude:: doc-pgr_TSP.queries
+   :start-after: -- q3
+   :end-before: -- q4
+
+The queries use the :doc:`sampledata` network.
+
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* :ref:`tsp`
+* http://en.wikipedia.org/wiki/Traveling_salesman_problem
+* http://en.wikipedia.org/wiki/Simulated_annealing
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/tsp/pgr_eucledianTSP.rst b/doc/tsp/pgr_eucledianTSP.rst
new file mode 100644
index 0000000..fe85f64
--- /dev/null
+++ b/doc/tsp/pgr_eucledianTSP.rst
@@ -0,0 +1,154 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_eucledianTSP:
+
+pgr_eucledianTSP
+=============================================================================
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_eucledianTSP`` - Returns a route that visits all the coordinates pairs exactly once.
+
+.. rubric:: Availability: 2.3.0
+
+
+Synopsis
+-------------------------------------------------------------------------------
+
+The travelling salesman problem (TSP) or travelling salesperson problem asks the following question:
+
+  - Given a list of cities and the distances between each pair of cities, what is the shortest possible route that visits each city exactly once and returns to the origin city?
+
+This implementation uses simulated annealing to return the approximate solution when the input is given in the form of coordinates.
+
+Signature Summary
+-------------------------------------------------------------------------------
+
+.. code-block:: none
+
+    pgr_eucledianTSP(coordinates_sql)
+    pgr_eucledianTSP(coordinates_sql,
+        start_id, end_id,
+        max_processing_time,
+        tries_per_temperature, max_changes_per_temperature, max_consecutive_non_changes,
+        initial_temperature, final_temperature, cooling_factor,
+        randomize,
+    RETURNS SETOF (seq, node, cost, agg_cost)
+
+
+Signatures
+-------------------------------------------------------------------------------
+
+.. index::
+    single: eucledianTSP(Basic Use)
+
+Minimal Signature
+...............................................................................
+
+.. code-block:: none
+
+    pgr_eucledianTSP(coordinates_sql)
+    RETURNS SETOF (seq, node, cost, agg_cost)
+
+:Example:
+
+Because the documentation examples are auto generated and tested for non changing results,
+and the default is to have random execution, the example is wrapping the actual call.
+
+.. literalinclude:: doc-pgr_eucledianTSP.queries
+   :start-after: -- q1
+   :end-before: -- q2
+
+
+.. index::
+    single: eucledianTSP(Complete Signature)
+
+Complete Signature
+...............................................................................
+
+.. code-block:: none
+
+
+    pgr_eucledianTSP(coordinates_sql,
+        start_id, end_id,
+        max_processing_time,
+        tries_per_temperature, max_changes_per_temperature, max_consecutive_non_changes,
+        initial_temperature, final_temperature, cooling_factor,
+        randomize,
+    RETURNS SETOF (seq, node, cost, agg_cost)
+
+
+.. rubric:: Example:
+
+.. literalinclude:: doc-pgr_eucledianTSP.queries
+   :start-after: -- q2
+   :end-before: -- q3
+
+Description of the Signatures
+-------------------------------------------------------------------------------
+
+Description of the coordinates SQL query
+...............................................................................
+
+======= =========== =================================================
+Column  Type              Description
+======= =========== =================================================
+**id**  ``BIGINT``  Identifier of the coordinate. (optional)
+**x**   ``FLOAT``   X value of the coordinate.
+**y**   ``FLOAT``   Y value of the coordinate.
+======= =========== =================================================
+
+
+When the value of **id** is not given then the coordinates will receive an **id** starting from 1, in the order given.
+
+
+.. literalinclude:: TSP-family.rst
+   :start-after: tsp control parameters begin
+   :end-before: tsp control parameters end
+
+
+.. literalinclude:: TSP-family.rst
+   :start-after: tsp return values begin
+   :end-before: tsp return values end
+
+
+
+Examples
+-------------------------------------------------------------------------------
+
+:Example: Skipping the Simulated Annealing & showing some process information
+
+.. literalinclude:: doc-pgr_eucledianTSP.queries
+   :start-after: -- q3
+   :end-before: -- q4
+
+
+
+The queries use the :doc:`sampledata` network.
+
+
+.. rubric:: History
+
+* New in version 2.3.0
+
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* :ref:`tsp`
+* http://en.wikipedia.org/wiki/Traveling_salesman_problem
+* http://en.wikipedia.org/wiki/Simulated_annealing
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/vrp_basic/CMakeLists.txt b/doc/vrp_basic/CMakeLists.txt
new file mode 100644
index 0000000..8ccd85a
--- /dev/null
+++ b/doc/vrp_basic/CMakeLists.txt
@@ -0,0 +1,12 @@
+
+SET(LOCAL_FILES
+    pgr_vrpOneDepot.rst
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}")
+    list(APPEND LOCAL_DOC_FILES  ${PGR_DOCUMENTATION_SOURCE_DIR}/${f})
+endforeach()
+
+set(PgRouting_DOC_FILES ${PgRouting_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE)
+
diff --git a/doc/vrp_basic/pgr_vrpOneDepot.rst b/doc/vrp_basic/pgr_vrpOneDepot.rst
new file mode 100644
index 0000000..e29a66b
--- /dev/null
+++ b/doc/vrp_basic/pgr_vrpOneDepot.rst
@@ -0,0 +1,48 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_vrp_basic:
+
+
+pgr_vrpOneDepot - Experimental
+===============================================================================
+
+
+.. include:: proposed.rst
+   :start-after: begin-warn-expr
+   :end-before: end-warn-expr
+
+**No documentation available**
+
+Example:
+-------------------------------------------------------------------------------
+
+
+Current Result
+...............................................................................
+
+.. literalinclude:: doc-pgr_vrpOneDepot.queries
+
+
+Data
+-------------------------------------------------------------------------------
+
+.. literalinclude:: ../../tools/testers/vrpOneDepot.data
+
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* http://en.wikipedia.org/wiki/Vehicle_routing_problem
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/vrppdtw/CMakeLists.txt b/doc/vrppdtw/CMakeLists.txt
new file mode 100644
index 0000000..2a78374
--- /dev/null
+++ b/doc/vrppdtw/CMakeLists.txt
@@ -0,0 +1,12 @@
+
+SET(LOCAL_FILES
+    pgr_gsoc_vrppdtw.rst
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}")
+    list(APPEND LOCAL_DOC_FILES  ${PGR_DOCUMENTATION_SOURCE_DIR}/${f})
+endforeach()
+
+set(PgRouting_DOC_FILES ${PgRouting_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE)
+
diff --git a/doc/vrppdtw/pgr_gsoc_vrppdtw.rst b/doc/vrppdtw/pgr_gsoc_vrppdtw.rst
new file mode 100644
index 0000000..9db5da1
--- /dev/null
+++ b/doc/vrppdtw/pgr_gsoc_vrppdtw.rst
@@ -0,0 +1,138 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_gsocvrppdtw:
+
+pgr_gsoc_vrppdtw - Experimental
+===============================================================================
+
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_gsoc_vrppdtw`` — Returns a solution for `Pick and Delivery` with `time windows` Vehicle Routing Problem
+
+.. include:: proposed.rst
+   :start-after: begin-warn-expr
+   :end-before: end-warn-expr
+
+
+Signature Summary
+-----------------
+
+
+.. code-block:: none
+
+    pgr_gsoc_vrppdtw(sql, vehicle_num, capacity)
+    RETURNS SET OF pgr_costResult[]:
+
+Signatures
+-----------
+
+.. index::
+    single: gsoc_vrppdtw(Complete Signature) - proposed
+
+
+Complete signature
+...................
+
+.. code-block:: none
+
+    pgr_gsoc_vrppdtw(sql, vehicle_num, capacity)
+    Returns set of pgr_costResult[]:
+
+
+.. rubric:: Example: Show the id1
+
+.. literalinclude:: ../doc/doc-gsoc_vrppdtw.queries
+   :start-after: --q1
+   :end-before: --q2
+
+
+Description of the Signatures
+-------------------------------
+
+Description of the sql query
+.........................................................................................
+
+================  ===================   =================================================
+Column            Type                  Description
+================  ===================   =================================================
+**id**            ``ANY-INTEGER``       Identifier of the customer.
+
+                                        - A value of ``0`` identifies the starting location
+
+**x**             ``ANY-NUMERICAL``     ``X`` coordinate of the location.
+**y**             ``ANY-NUMERICAL``     ``Y`` coordinate of the location.
+**demand**        ``ANY-NUMERICAL``     How much is added / removed from the vehicle.
+
+                                        - Negative value is a delivery,
+                                        - Positive value is a pickup,
+
+**openTime**      ``ANY-NUMERICAL``     The time relative to 0, when the customer opens.
+**closeTime**     ``ANY-NUMERICAL``     The time relative to 0, when the customer closes.
+**serviceTime**   ``ANY-NUMERICAL``     The duration of the loading / unloading.
+**pIndex**        ``ANY-INTEGER``       Value used when the current customer is a Delivery to find the corresponding Pickup
+**dIndex**        ``ANY-INTEGER``       Value used when the current customer is a Pickup to find the corresponding Delivery
+================  ===================   =================================================
+
+Description of the parameters of the signatures
+.........................................................................................
+
+================== ===========  =================================================
+Column             Type            Description
+================== ===========  =================================================
+**sql**            ``TEXT``     SQL query as described above.
+**vehicle_num**    ``INTEGER``  Maximum number of vehicles in the result. (currently is ignored)
+**capacity**       ``INTEGER``  Capacity of the vehicle.
+================== ===========  =================================================
+
+Description of the result
+.........................................................................................
+
+RETURNS SET OF pgr_costResult[]:
+
+================== =========== =================================================
+Column             Type            Description
+================== =========== =================================================
+**seq**            ``INTEGER`` Sequential value starting from **1**.
+**id1**            ``INTEGER`` Current vehicle identifier.
+**id2**            ``INTEGER`` Customer identifier.
+**cost**           ``FLOAT``   Previous ``cost`` plus `travel time` plus `wait time` plus `service time`.
+                                - when ``id2 = 0`` for the second time for the same ``id1``, then has the total time for the current ``id1``
+================== =========== =================================================
+
+
+
+Examples
+-------------------------------------------------------------------------------
+
+.. rubric:: Example: Total number of rows returned
+
+.. literalinclude:: ../doc/doc-gsoc_vrppdtw.queries
+   :start-after: --q2
+   :end-before: --q3
+
+.. rubric:: Example: Results for only id1 values: 1, 5, and 9
+
+.. literalinclude:: ../doc/doc-gsoc_vrppdtw.queries
+   :start-after: --q3
+   :end-before: --q4
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* The examples use :ref:`pickDeliverData`
+* http://en.wikipedia.org/wiki/Vehicle_routing_problem
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/withPoints/CMakeLists.txt b/doc/withPoints/CMakeLists.txt
new file mode 100644
index 0000000..2b6b70c
--- /dev/null
+++ b/doc/withPoints/CMakeLists.txt
@@ -0,0 +1,20 @@
+
+SET(LOCAL_FILES
+    pgr_withPointsDD.rst
+    pgr_withPoints.rst
+    withPoints-family.rst
+    pgr_withPointsCost.rst
+    pgr_withPointsKSP.rst
+    pgr_withPointsVia.rst
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/${f}")
+    list(APPEND LOCAL_DOC_FILES  ${PGR_DOCUMENTATION_SOURCE_DIR}/${f})
+endforeach()
+
+
+add_subdirectory("images")
+set(PgRouting_DOC_FILES ${PgRouting_DOC_FILES} ${LOCAL_DOC_FILES} PARENT_SCOPE)
+set(PgRouting_IMG_FILES ${PgRouting_IMG_FILES} PARENT_SCOPE)
+
diff --git a/doc/withPoints/images/CMakeLists.txt b/doc/withPoints/images/CMakeLists.txt
new file mode 100644
index 0000000..45885cb
--- /dev/null
+++ b/doc/withPoints/images/CMakeLists.txt
@@ -0,0 +1,14 @@
+
+SET(LOCAL_FILES
+    leftDrivingSide.png
+    noMatterDrivingSide.png
+    rightDrivingSide.png
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} "${PGR_DOCUMENTATION_SOURCE_DIR}/images/${f}" COPYONLY)
+    list(APPEND LOCAL_IMG_FILES  "${PGR_DOCUMENTATION_SOURCE_DIR}/images/${f}")
+endforeach()
+
+set(PgRouting_IMG_FILES ${PgRouting_IMG_FILES} ${LOCAL_IMG_FILES} PARENT_SCOPE)
+
diff --git a/src/withPoints/doc/images/leftDrivingSide.png b/doc/withPoints/images/leftDrivingSide.png
similarity index 100%
rename from src/withPoints/doc/images/leftDrivingSide.png
rename to doc/withPoints/images/leftDrivingSide.png
diff --git a/src/withPoints/doc/images/noMatterDrivingSide.png b/doc/withPoints/images/noMatterDrivingSide.png
similarity index 100%
rename from src/withPoints/doc/images/noMatterDrivingSide.png
rename to doc/withPoints/images/noMatterDrivingSide.png
diff --git a/src/withPoints/doc/images/rightDrivingSide.png b/doc/withPoints/images/rightDrivingSide.png
similarity index 100%
rename from src/withPoints/doc/images/rightDrivingSide.png
rename to doc/withPoints/images/rightDrivingSide.png
diff --git a/doc/withPoints/pgr_withPoints.rst b/doc/withPoints/pgr_withPoints.rst
new file mode 100644
index 0000000..2a21646
--- /dev/null
+++ b/doc/withPoints/pgr_withPoints.rst
@@ -0,0 +1,298 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_withPoints:
+
+pgr_withPoints - Proposed
+===============================================================================
+
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_withPoints`` - Returns the shortest path in a graph with additional temporary vertices.
+
+
+.. include:: proposed.rst
+   :start-after: begin-warning
+   :end-before: end-warning
+
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph
+
+   Boost Graph Inside
+
+.. rubric:: Availability: 2.2.0
+
+Synopsis
+-------------------------------------------------------------------------------
+
+Modify the graph to include points defined by points_sql.
+Using Dijkstra algorithm, find the shortest path(s)
+
+Characteristics:
+-------------------------------------------------------------------------------
+
+The main Characteristics are:
+
+- Process is done only on edges with positive costs.
+- Vertices of the graph are:
+
+  - **positive** when it belongs to the edges_sql
+  - **negative** when it belongs to the points_sql
+
+- Values are returned when there is a path.
+
+  - When the starting vertex and ending vertex are the same, there is no path.
+    - The agg_cost the non included values (v, v) is 0
+
+  - When the starting vertex and ending vertex are the different and there is no path:
+    - The agg_cost the non included values (u, v) is ∞
+
+- For optimization purposes, any duplicated value in the start_vids or end_vids are ignored.
+- The returned values are ordered:
+  - start_vid ascending
+  - end_vid ascending
+
+- Running time: :math:`O(|start\_vids|\times(V \log V + E))`
+
+
+Signature Summary
+-----------------
+
+.. code-block:: none
+
+    pgr_withPoints(edges_sql, points_sql, start_vid, end_vid)
+    pgr_withPoints(edges_sql, points_sql, start_vid, end_vid, directed, driving_side, details)
+    pgr_withPoints(edges_sql, points_sql, start_vid, end_vids, directed, driving_side, details)
+    pgr_withPoints(edges_sql, points_sql, start_vids, end_vid, directed, driving_side, details)
+    pgr_withPoints(edges_sql, points_sql, start_vids, end_vids, directed, driving_side, details)
+    RETURNS SET OF (seq, path_seq, [start_vid,] [end_vid,] node, edge, cost, agg_cost)
+
+
+Signatures
+-------------------
+
+.. index::
+    single: withPoints(Minimal Use) - Proposed
+
+Minimal Use
+.....................................................................
+
+The minimal signature:
+    - Is for a **directed** graph.
+    - The driving side is set as **b** both. So arriving/departing to/from the point(s) can be in any direction.
+    - No **details** are given about distance of other points of points_sql query.
+
+.. code-block:: none
+
+    pgr_withPoints(edges_sql, points_sql, start_vid, end_vid)
+    RETURNS SET OF (seq, path_seq, node, edge, cost, agg_cost)
+
+
+:Example: From point 1 to point 3
+
+.. literalinclude:: doc-pgr_withPoints.queries
+   :start-after: --e1
+   :end-before: --e2
+
+.. index::
+    single: withPoints(One to One) - Proposed
+
+One to One
+.....................................................................
+
+
+.. code-block:: none
+
+    pgr_withPoints(edges_sql, points_sql, start_vid, end_vid,
+        directed:=true, driving_side:='b', details:=false)
+    RETURNS SET OF (seq, path_seq, node, edge, cost, agg_cost)
+
+
+:Example: From point 1 to vertex 3
+
+.. literalinclude:: doc-pgr_withPoints.queries
+   :start-after: --e2
+   :end-before: --e3
+
+
+
+.. index::
+    single: withPoints(One to Many) - Proposed
+
+One to Many
+.....................................................................
+
+.. code-block:: none
+
+    pgr_withPoints(edges_sql, points_sql, start_vid, end_vids,
+        directed:=true, driving_side:='b', details:=false)
+    RETURNS SET OF (seq, path_seq, end_vid, node, edge, cost, agg_cost)
+
+
+:Example: From point 1 to point 3 and vertex 5
+
+.. literalinclude:: doc-pgr_withPoints.queries
+   :start-after: --e3
+   :end-before: --e4
+
+
+
+.. index::
+    single: withPoints(Many to One) - Proposed
+
+Many to One
+.....................................................................
+
+.. code-block:: none
+
+    pgr_withPoints(edges_sql, points_sql, start_vids, end_vid,
+        directed:=true, driving_side:='b', details:=false)
+    RETURNS SET OF (seq, path_seq, start_vid, node, edge, cost, agg_cost)
+
+
+:Example: From point 1 and vertex 2  to point 3
+
+.. literalinclude:: doc-pgr_withPoints.queries
+   :start-after: --e4
+   :end-before: --e5
+
+.. index::
+    single: withPoints(Many to Many) - Proposed
+
+Many to Many
+.....................................................................
+
+
+.. code-block:: none
+
+    pgr_withPoints(edges_sql, points_sql, start_vids, end_vids,
+        directed:=true, driving_side:='b', details:=false)
+    RETURNS SET OF (seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)
+
+
+:Example: From point 1 and vertex 2  to point 3 and vertex 7
+
+.. literalinclude:: doc-pgr_withPoints.queries
+   :start-after: --e5
+   :end-before: --q2
+
+
+
+
+Description of the Signatures
+---------------------------------
+
+..
+    description of the sql queries
+
+.. include:: pgRouting-concepts.rst
+    :start-after: basic_edges_sql_start
+    :end-before: basic_edges_sql_end
+
+.. include:: pgRouting-concepts.rst
+    :start-after: points_sql_start
+    :end-before: points_sql_end
+
+
+Description of the parameters of the signatures
+.....................................................................
+
+
+================ ====================== =================================================
+Parameter        Type                   Description
+================ ====================== =================================================
+**edges_sql**    ``TEXT``               Edges SQL query as described above.
+**points_sql**   ``TEXT``               Points SQL query as described above.
+**start_vid**    ``ANY-INTEGER``        Starting vertex identifier. When negative: is a point's pid.
+**end_vid**      ``ANY-INTEGER``        Ending vertex identifier. When negative: is a point's pid.
+**start_vids**   ``ARRAY[ANY-INTEGER]`` Array of identifiers of starting vertices. When negative: is a point's pid.
+**end_vids**     ``ARRAY[ANY-INTEGER]`` Array of identifiers of ending vertices. When negative: is a point's pid.
+**directed**     ``BOOLEAN``            (optional). When ``false`` the graph is considered as Undirected. Default is ``true`` which considers the graph as Directed.
+**driving_side** ``CHAR``               (optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:
+                                          - In the right or left or
+                                          - If it doesn't matter with 'b' or NULL.
+                                          - If column not present 'b' is considered.
+
+**details**      ``BOOLEAN``            (optional). When ``true`` the results will include the points in points_sql that are in the path.
+                                        Default is ``false`` which ignores other points of the points_sql.
+================ ====================== =================================================
+
+
+Description of the return values
+.....................................................................
+
+Returns set of ``(seq, [path_seq,] [start_vid,] [end_vid,] node, edge, cost, agg_cost)``
+
+============= =========== =================================================
+Column           Type              Description
+============= =========== =================================================
+**seq**       ``INTEGER`` Row sequence.
+**path_seq**  ``INTEGER`` Path sequence that indicates the relative position on the path.
+**start_vid** ``BIGINT``  Identifier of the starting vertex. When negative: is a point's pid.
+**end_vid**   ``BIGINT``  Identifier of the ending vertex. When negative: is a point's pid.
+**node**      ``BIGINT``  Identifier of the node:
+                            - A positive value indicates the node is a vertex of edges_sql.
+                            - A negative value indicates the node is a point of points_sql.
+
+**edge**      ``BIGINT``  Identifier of the edge used to go from ``node`` to the next node in the path sequence.
+                            - ``-1`` for the last row in the path sequence.
+
+**cost**      ``FLOAT``   Cost to traverse from ``node`` using ``edge`` to the next ``node`` in the path sequence.
+                            - ``0`` for the last row in the path sequence.
+
+**agg_cost**  ``FLOAT``   Aggregate cost from ``start_pid`` to ``node``.
+                            - ``0`` for the first row in the path sequence.
+
+============= =========== =================================================
+
+
+
+Examples
+--------------------------------------------------------------------------------------
+
+:Example: Which path (if any) passes in front of point 6 or vertex 6 with **right** side driving topology.
+
+.. literalinclude:: doc-pgr_withPoints.queries
+   :start-after: --q2
+   :end-before: --q3
+
+:Example: Which path (if any) passes in front of point 6 or vertex 6 with **left** side driving topology.
+
+.. literalinclude:: doc-pgr_withPoints.queries
+   :start-after: --q3
+   :end-before: --q4
+
+:Example: Many to many example with a twist: on undirected graph and showing details.
+
+.. literalinclude:: doc-pgr_withPoints.queries
+   :start-after: --q4
+   :end-before: --q5
+
+
+The queries use the :doc:`sampledata` network.
+
+
+
+.. rubric:: History
+
+* Proposed in version 2.2
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* :ref:`withPoints`
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/withPoints/pgr_withPointsCost.rst b/doc/withPoints/pgr_withPointsCost.rst
new file mode 100644
index 0000000..70fafc1
--- /dev/null
+++ b/doc/withPoints/pgr_withPointsCost.rst
@@ -0,0 +1,295 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_withPointsCost:
+
+pgr_withPointsCost - Proposed
+===============================================================================
+
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_withPointsCost`` - Calculates the shortest path and returns only the aggregate cost of the shortest path(s) found, for the combination of points given.
+
+
+.. include:: proposed.rst
+   :start-after: begin-warning
+   :end-before: end-warning
+
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph
+
+   Boost Graph Inside
+
+.. rubric:: Availability: 2.2.0
+
+Synopsis
+-------------------------------------------------------------------------------
+
+Modify the graph to include points defined by points_sql.
+Using Dijkstra algorithm, return only the aggregate cost of the shortest path(s) found.
+
+Characteristics:
+----------------
+
+The main Characteristics are:
+  - It does not return a path.
+  - Returns the sum of the costs of the shortest path for pair combination of vertices in the modified graph.
+  - Vertices of the graph are:
+
+    - **positive** when it belongs to the edges_sql
+    - **negative** when it belongs to the points_sql
+
+  - Process is done only on edges with positive costs.
+  - Values are returned when there is a path.
+
+    - The returned values are in the form of a set of `(start_vid, end_vid, agg_cost)`.
+
+    - When the starting vertex and ending vertex are the same, there is no path.
+
+      - The `agg_cost` in the non included values `(v, v)` is `0`
+
+    - When the starting vertex and ending vertex are the different and there is no path.
+
+      - The `agg_cost` in the non included values `(u, v)` is :math:`\infty`
+
+  - If the values returned are stored in a table, the unique index would be the pair:
+    `(start_vid, end_vid)`.
+
+  - For undirected graphs, the results are symmetric.
+
+    - The  `agg_cost` of `(u, v)` is the same as for `(v, u)`.
+
+  - For optimization purposes, any duplicated value in the `start_vids` or `end_vids` is ignored.
+
+  - The returned values are ordered:
+
+    - `start_vid` ascending
+    - `end_vid` ascending
+
+  - Running time: :math:`O(| start\_vids | * (V \log V + E))`
+
+
+Signature Summary
+-----------------
+
+.. code-block:: none
+
+    pgr_withPointsCost(edges_sql, points_sql, start_vid, end_vid, directed, driving_side)
+    pgr_withPointsCost(edges_sql, points_sql, start_vid, end_vids, directed, driving_side)
+    pgr_withPointsCost(edges_sql, points_sql, start_vids, end_vid, directed, driving_side)
+    pgr_withPointsCost(edges_sql, points_sql, start_vids, end_vids, directed, driving_side)
+    RETURNS SET OF (start_vid, end_vid, agg_cost)
+
+.. note:: There is no **details** flag, unlike the other members of the withPoints family of functions.
+
+
+Signatures
+------------
+
+.. index::
+    single: withPointsCost(Minimal Use) - proposed
+
+Minimal Use
+.........................................
+
+The minimal signature:
+    - Is for a **directed** graph.
+    - The driving side is set as **b** both. So arriving/departing to/from the point(s) can be in any direction.
+
+.. code-block:: none
+
+    pgr_withPointsCost(edges_sql, points_sql, start_vid, end_vid)
+    RETURNS SET OF (start_vid, end_vid, agg_cost)
+
+
+:Example:
+
+.. literalinclude:: doc-pgr_withPointsCost.queries
+   :start-after: --e1
+   :end-before: --e2
+
+.. index::
+    single: withPointsCost(One To One) - proposed
+
+One to One
+.........................................
+
+
+.. code-block:: none
+
+    pgr_withPointsCost(edges_sql, points_sql, start_vid, end_vid,
+        directed:=true, driving_side:='b')
+    RETURNS SET OF (seq, node, edge, cost, agg_cost)
+
+
+:Example:
+
+.. literalinclude:: doc-pgr_withPointsCost.queries
+   :start-after: --e2
+   :end-before: --e3
+
+
+.. index::
+    single: withPointsCost(One To Many) - proposed
+
+One to Many
+.........................................
+
+
+.. code-block:: none
+
+    pgr_withPointsCost(edges_sql, points_sql, start_vid, end_vids,
+        directed:=true, driving_side:='b')
+    RETURNS SET OF (start_vid, end_vid, agg_cost)
+
+
+:Example:
+
+.. literalinclude:: doc-pgr_withPointsCost.queries
+   :start-after: --e3
+   :end-before: --e4
+
+
+.. index::
+    single: withPointsCost(Many To One) - proposed
+
+Many to One
+.........................................
+
+.. code-block:: none
+
+    pgr_withPointsCost(edges_sql, points_sql, start_vids, end_vid,
+        directed:=true, driving_side:='b')
+    RETURNS SET OF (start_vid, end_vid, agg_cost)
+
+
+:Example:
+
+.. literalinclude:: doc-pgr_withPointsCost.queries
+   :start-after: --e4
+   :end-before: --e5
+
+.. index::
+    single: withPointsCost(Many To Many) - proposed
+
+Many to Many
+.........................................
+
+.. code-block:: none
+
+    pgr_withPointsCost(edges_sql, points_sql, start_vids, end_vids,
+        directed:=true, driving_side:='b')
+    RETURNS SET OF (start_vid, end_vid, agg_cost)
+
+
+:Example:
+
+.. literalinclude:: doc-pgr_withPointsCost.queries
+   :start-after: --e5
+   :end-before: --q2
+
+
+
+
+Description of the Signatures
+---------------------------------
+
+..
+    description of the sql queries
+
+.. include:: pgRouting-concepts.rst
+    :start-after: basic_edges_sql_start
+    :end-before: basic_edges_sql_end
+
+.. include:: pgRouting-concepts.rst
+    :start-after: points_sql_start
+    :end-before: points_sql_end
+
+
+Description of the parameters of the signatures
+.................................................
+
+
+================ ====================== =================================================
+Parameter        Type                   Description
+================ ====================== =================================================
+**edges_sql**    ``TEXT``               Edges SQL query as described above.
+**points_sql**   ``TEXT``               Points SQL query as described above.
+**start_vid**    ``ANY-INTEGER``        Starting vertex identifier. When negative: is a point's pid.
+**end_vid**      ``ANY-INTEGER``        Ending vertex identifier. When negative: is a point's pid.
+**start_vids**   ``ARRAY[ANY-INTEGER]`` Array of identifiers of starting vertices. When negative: is a point's pid.
+**end_vids**     ``ARRAY[ANY-INTEGER]`` Array of identifiers of ending vertices. When negative: is a point's pid.
+**directed**     ``BOOLEAN``            (optional). When ``false`` the graph is considered as Undirected. Default is ``true`` which considers the graph as Directed.
+**driving_side** ``CHAR``               (optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:
+                                          - In the right or left or
+                                          - If it doesn't matter with 'b' or NULL.
+                                          - If column not present 'b' is considered.
+
+================ ====================== =================================================
+
+
+Description of the return values
+.................................................
+
+Returns set of ``(start_vid, end_vid, agg_cost)``
+
+============= =========== =================================================
+Column           Type              Description
+============= =========== =================================================
+**start_vid** ``BIGINT``  Identifier of the starting vertex. When negative: is a point's pid.
+**end_vid**   ``BIGINT``  Identifier of the ending point. When negative: is a point's pid.
+**agg_cost**  ``FLOAT``   Aggregate cost from ``start_vid`` to ``end_vid``.
+============= =========== =================================================
+
+
+
+Examples
+--------------------------------------------------------------------------------------
+
+:Example: With **right** side driving topology.
+
+.. literalinclude:: doc-pgr_withPointsCost.queries
+   :start-after: --q2
+   :end-before: --q3
+
+:Example: With **left** side driving topology.
+
+.. literalinclude:: doc-pgr_withPointsCost.queries
+   :start-after: --q3
+   :end-before: --q4
+
+:Example: Does not matter driving side.
+
+.. literalinclude:: doc-pgr_withPointsCost.queries
+   :start-after: --q4
+   :end-before: --q5
+
+
+The queries use the :doc:`sampledata` network.
+
+
+
+.. rubric:: History
+
+* Proposed in version 2.2
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* :ref:`withPoints`
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/withPoints/pgr_withPointsDD.rst b/doc/withPoints/pgr_withPointsDD.rst
new file mode 100644
index 0000000..5bedec4
--- /dev/null
+++ b/doc/withPoints/pgr_withPointsDD.rst
@@ -0,0 +1,219 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_withPointsDD:
+
+pgr_withPointsDD - Proposed
+===============================================================================
+
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_withPointsDD`` - Returns the driving distance from a starting point.
+
+
+.. include:: proposed.rst
+   :start-after: begin-warning
+   :end-before: end-warning
+
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph
+
+   Boost Graph Inside
+
+.. rubric:: Availability: 2.2.0
+
+Synopsis
+-------------------------------------------------------------------------------
+
+Modify the graph to include points and
+using Dijkstra algorithm, extracts all the nodes and points that have costs less
+than or equal to the value ``distance`` from the starting point.
+The edges extracted will conform the corresponding spanning tree.
+
+
+Signature Summary
+-----------------
+
+.. code-block:: none
+
+    pgr_withPointsDD(edges_sql, points_sql, start_vid, distance)
+    pgr_withPointsDD(edges_sql, points_sql, start_vid, distance, directed, driving_side, details)
+    pgr_withPointsDD(edges_sql, points_sql, start_vids, distance, directed, driving_side, details, equicost)
+    RETURNS SET OF (seq, node, edge, cost, agg_cost)
+
+Signatures
+------------
+
+.. index::
+    single: withPointsDD(Minimal Use) - proposed
+
+Minimal Use
+..................................
+
+The minimal signature:
+    - Is for a **directed** graph.
+    - The driving side is set as **b** both. So arriving/departing to/from the point(s) can be in any direction.
+    - No **details** are given about distance of other points of the query.
+
+.. code-block:: none
+
+    pgr_withPointsDD(edges_sql, points_sql, start_vid, distance)
+        directed:=true, driving_side:='b', details:=false)
+    RETURNS SET OF (seq, node, edge, cost, agg_cost)
+
+
+:Example:
+
+.. literalinclude:: doc-pgr_withPointsDD.queries
+   :start-after: --q1
+   :end-before: --q2
+
+.. index::
+    single: withPointsDD(Single Start Vertex) - proposed
+
+Driving distance from a single point
+..............................................
+
+Finds the driving distance depending on the optional parameters setup.
+
+.. code-block:: none
+
+    pgr_withPointsDD(edges_sql, points_sql, start_vids, distance,
+        directed:=true, driving_side:='b', details:=false)
+    RETURNS SET OF (seq, node, edge, cost, agg_cost)
+
+:Example: Right side driving topology
+
+.. literalinclude:: doc-pgr_withPointsDD.queries
+   :start-after: --q2
+   :end-before: --q3
+
+.. index::
+    single: withPointsDD(Multiple Starting Vertices) - proposed
+
+Driving distance from many starting points
+..................................................
+
+Finds the driving distance depending on the optional parameters setup.
+
+.. code-block:: none
+
+    pgr_withPointsDD(edges_sql, points_sql, start_vids, distance,
+        directed:=true, driving_side:='b', details:=false, equicost:=false)
+    RETURNS SET OF (seq, node, edge, cost, agg_cost)
+
+
+
+
+Description of the Signatures
+----------------------------------
+
+..
+    description of the sql queries
+
+
+.. include:: pgRouting-concepts.rst
+    :start-after: basic_edges_sql_start
+    :end-before: basic_edges_sql_end
+
+.. include:: pgRouting-concepts.rst
+    :start-after: points_sql_start
+    :end-before: points_sql_end
+
+
+Description of the parameters of the signatures
+........................................................
+
+
+================ ================= =================================================
+Parameter        Type              Description
+================ ================= =================================================
+**edges_sql**    ``TEXT``          Edges SQL query as described above.
+**points_sql**   ``TEXT``          Points SQL query as described above.
+**start_vid**    ``ANY-INTEGER``   Starting point id
+**distance**     ``ANY-NUMERICAL`` Distance from the start_pid
+**directed**     ``BOOLEAN``       (optional). When ``false`` the graph is considered as Undirected. Default is ``true`` which considers the graph as Directed.
+**driving_side** ``CHAR``          (optional). Value in ['b', 'r', 'l', NULL] indicating if the driving side is:
+                                     - In the right or left or
+                                     - If it doesn't matter with 'b' or NULL.
+                                     - If column not present 'b' is considered.
+
+**details**      ``BOOLEAN``       (optional). When ``true`` the results will include the driving distance to the points with in the ``distance``.
+                                   Default is ``false`` which ignores other points of the points_sql.
+**equicost**     ``BOOLEAN``       (optional). When ``true`` the nodes will only appear in the closest start_v list. Default is ``false`` which resembles several calls using the single starting point signatures. Tie brakes are arbitrary.
+================ ================= =================================================
+
+
+Description of the return values
+........................................................
+
+Returns set of ``(seq, node, edge, cost, agg_cost)``
+
+============ =========== =================================================
+Column           Type              Description
+============ =========== =================================================
+**seq**      ``INT``     row sequence.
+**node**     ``BIGINT``  Identifier of the node within the Distance from ``start_pid``. If ``details =: true`` a negative value is the identifier of a point.
+**edge**     ``BIGINT``  Identifier of the edge used to go from ``node`` to the next node in the path sequence.
+                           - ``-1`` when ``start_vid`` = ``node``.
+
+**cost**     ``FLOAT``   Cost to traverse ``edge``.
+                           - ``0`` when ``start_vid`` = ``node``.
+
+**agg_cost** ``FLOAT``   Aggregate cost from ``start_vid`` to ``node``.
+                           - ``0`` when ``start_vid`` = ``node``.
+
+============ =========== =================================================
+
+
+
+Examples for queries marked as ``directed`` with ``cost`` and ``reverse_cost`` columns
+--------------------------------------------------------------------------------------
+
+The examples in this section use the following :ref:`fig1`
+
+:Example: Left side driving topology
+
+.. literalinclude:: doc-pgr_withPointsDD.queries
+   :start-after: --q3
+   :end-before: --q4
+
+:Example: Does not matter driving side.
+
+.. literalinclude:: doc-pgr_withPointsDD.queries
+   :start-after: --q4
+   :end-before: --q5
+
+
+
+
+The queries use the :doc:`sampledata` network.
+
+
+
+.. rubric:: History
+
+* Proposed in version 2.2
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* :ref:`pgr_drivingDistance` - Driving distance using dijkstra.
+* :ref:`pgr_alphashape` - Alpha shape computation.
+* :ref:`pgr_points_as_polygon` - Polygon around set of points.
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/withPoints/pgr_withPointsKSP.rst b/doc/withPoints/pgr_withPointsKSP.rst
new file mode 100644
index 0000000..e0f6e24
--- /dev/null
+++ b/doc/withPoints/pgr_withPointsKSP.rst
@@ -0,0 +1,194 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_withPointsKSP:
+
+pgr_withPointsKSP - Proposed
+===============================================================================
+
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_withPointsKSP`` - Find the K shortest paths using Yen's algorithm.
+
+
+.. include:: proposed.rst
+   :start-after: begin-warning
+   :end-before: end-warning
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph
+
+   Boost Graph Inside
+
+.. rubric:: Availability: 2.2.0
+
+Synopsis
+-------------------------------------------------------------------------------
+
+Modifies the graph to include the points defined in the ``points_sql`` and
+using Yen algorithm, finds the K shortest paths.
+
+
+Signature Summary
+-----------------
+
+.. code-block:: none
+
+    pgr_withPointsKSP(edges_sql, points_sql, start_pid, end_pid, K)
+    pgr_withPointsKSP(edges_sql, points_sql, start_pid, end_pid, K, directed, heap_paths, driving_side, details)
+    RETURNS SET OF (seq, path_id, path_seq, node, edge, cost, agg_cost)
+
+Signatures
+-----------
+
+.. index::
+    single: withPointsKSP(Minimal Signature) - Proposed
+
+Minimal Usage
+....................................
+
+The minimal usage:
+    - Is for a **directed** graph.
+    - The driving side is set as **b** both. So arriving/departing to/from the point(s) can be in any direction.
+    - No **details** are given about distance of other points of the query.
+    - No **heap paths** are returned.
+
+.. code-block:: none
+
+    pgr_withPointsKSP(edges_sql, points_sql, start_pid, end_pid, K)
+    RETURNS SET OF (seq, path_id, path_seq, node, edge, cost, agg_cost)
+
+
+:Example:
+
+.. literalinclude:: doc-pgr_withPointsKSP.queries
+   :start-after: --q1
+   :end-before: --q2
+
+.. index::
+    single: withPointsKSP(Complete Signature) - Proposed
+
+Complete Signature
+....................................
+
+Finds the K shortest paths depending on the optional parameters setup.
+
+.. code-block:: none
+
+    pgr_withPointsKSP(edges_sql, points_sql, start_pid, end_pid, K,
+        directed:=true, heap_paths:=false, driving_side:='b', details:=false)
+    RETURNS SET OF (seq, path_id, path_seq, node, edge, cost, agg_cost)
+
+
+:Example: With details.
+
+.. literalinclude:: doc-pgr_withPointsKSP.queries
+   :start-after: --q2
+   :end-before: --q3
+
+Description of the Signatures
+-------------------------------
+
+
+..
+    description of the sql queries
+
+.. include:: pgRouting-concepts.rst
+    :start-after: basic_edges_sql_start
+    :end-before: basic_edges_sql_end
+
+.. include:: pgRouting-concepts.rst
+    :start-after: points_sql_start
+    :end-before: points_sql_end
+
+
+
+Description of the parameters of the signatures
+..............................................................
+
+
+================ ================= =================================================
+Parameter        Type              Description
+================ ================= =================================================
+**edges_sql**    ``TEXT``          Edges SQL query as described above.
+**points_sql**   ``TEXT``          Points SQL query as described above.
+**start_pid**    ``ANY-INTEGER``   Starting point id.
+**end_pid**      ``ANY-INTEGER``   Ending point id.
+**K**            ``INTEGER``       Number of shortest paths.
+**directed**     ``BOOLEAN``       (optional). When ``false`` the graph is considered as Undirected. Default is ``true`` which considers the graph as Directed.
+**heap_paths**   ``BOOLEAN``       (optional). When ``true`` the paths calculated to get the shortests paths will be returned also. Default is ``false`` only the K shortest paths are returned.
+**driving_side** ``CHAR``          (optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:
+                                     - In the right or left or
+                                     - If it doesn't matter with 'b' or NULL.
+                                     - If column not present 'b' is considered.
+
+**details**      ``BOOLEAN``       (optional). When ``true`` the results will include the driving distance to the points with in the ``distance``.
+                                   Default is ``false`` which ignores other points of the points_sql.
+================ ================= =================================================
+
+
+Description of the return values
+..............................................................
+
+Returns set of ``(seq, path_id, path_seq, node, edge, cost, agg_cost)``
+
+============ =========== =================================================
+Column           Type              Description
+============ =========== =================================================
+**seq**      ``INTEGER`` Row sequence.
+**path_seq** ``INTEGER`` Relative position in the path of node and edge. Has value 1 for the beginning of a path.
+**path_id**  ``INTEGER``  Path identifier. The ordering of the paths: For two paths i, j if i < j then agg_cost(i) <= agg_cost(j).
+**node**     ``BIGINT``  Identifier of the node in the path. Negative values are the identifiers of a point.
+**edge**     ``BIGINT``  Identifier of the edge used to go from ``node`` to the next node in the path sequence.
+                           - ``-1`` for the last row in the path sequence.
+
+**cost**     ``FLOAT``   Cost to traverse from ``node`` using ``edge`` to the next ``node`` in the path sequence.
+                           - ``0`` for the last row in the path sequence.
+
+**agg_cost** ``FLOAT``   Aggregate cost from ``start_pid`` to ``node``.
+                           - ``0`` for the first row in the path sequence.
+
+============ =========== =================================================
+
+
+
+Examples
+--------------------------------------------------------------------------------------
+
+:Example: Left side driving topology with details.
+
+.. literalinclude:: doc-pgr_withPointsKSP.queries
+   :start-after: --q3
+   :end-before: --q4
+
+:Example: Right side driving topology with heap paths and details.
+
+.. literalinclude:: doc-pgr_withPointsKSP.queries
+   :start-after: --q4
+   :end-before: --q5
+
+The queries use the :doc:`sampledata` network.
+
+.. rubric:: History
+
+* Proposed in version 2.2
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* :ref:`withPoints`
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/withPoints/pgr_withPointsVia.rst b/doc/withPoints/pgr_withPointsVia.rst
new file mode 100644
index 0000000..f199bf1
--- /dev/null
+++ b/doc/withPoints/pgr_withPointsVia.rst
@@ -0,0 +1,200 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+.. _pgr_withPointsVia:
+
+pgr_withPointsVia - Proposed
+===============================================================================
+
+
+Name
+-------------------------------------------------------------------------------
+
+``pgr_withPointsVia`` - Get a path using the vertices/points indicated
+
+
+.. include:: proposed.rst
+   :start-after: begin-warning
+   :end-before: end-warning
+
+
+
+.. figure:: images/boost-inside.jpeg
+   :target: http://www.boost.org/libs/graph
+
+   Boost Graph Inside
+
+.. rubric:: Availability: PENDING.
+
+Synopsis
+-------------------------------------------------------------------------------
+
+Modify the graph to include points and
+using Dijkstra algorithm, extracts all the nodes and points that have costs less
+than or equal to the value ``distance`` from the starting point.
+The edges extracted will conform the corresponding spanning tree.
+
+
+Signature Summary
+-----------------
+
+.. code-block:: none
+
+	withPointsVia(edges_sql, points_sql, start_pid, distance)
+	withPointsVia(edges_sql, points_sql, start_pid, distance, directed, driving_side, details)
+    RETURNS SET OF (seq, node, edge, cost, agg_cost)
+
+Signatures
+-----------------
+
+.. index::
+	single: withPointsVia(edges_sql, points_sql, start_pid, distance) -- proposed
+
+Minimal signature
+...................................................
+
+The minimal signature:
+    - Is for a **directed** graph.
+    - The driving side is set as **b** both. So arriving/departing to/from the point(s) can be in any direction.
+    - No **details** are given about distance of other points of the query.
+
+.. code-block:: none
+
+	withPointsVia(edges_sql, points_sql, start_pid, distance)
+    RETURNS SET OF (seq, node, edge, cost, agg_cost)
+
+
+:Example:
+
+.. literalinclude:: doc-pgr_withPointsVia.queries
+   :start-after: --q1
+   :end-before: --q2
+
+.. index::
+	single: withPointsVia(edges_sql, points_sql, start_pid, distance, directed, driving_side, details) -- proposed
+
+Driving distance from a single point
+...................................................
+
+Finds the driving distance depending on the optional parameters setup.
+
+.. code-block:: none
+
+	pgr_withPointsVia(edges_sql, points_sql, start_pid, distance,
+        directed := true, driving_side := 'b', details := false)
+    RETURNS SET OF (seq, node, edge, cost, agg_cost)
+
+
+:Example: Right side driving topology
+
+.. literalinclude:: doc-pgr_withPointsVia.queries
+   :start-after: --q2
+   :end-before: --q3
+
+Description of the Signatures
+---------------------------------------------------
+
+
+..
+    description of the sql queries
+
+.. include:: pgRouting-concepts.rst
+    :start-after: basic_edges_sql_start
+    :end-before: basic_edges_sql_end
+
+.. include:: pgRouting-concepts.rst
+    :start-after: points_sql_start
+    :end-before: points_sql_end
+
+
+
+Description of the parameters of the signatures
+...................................................
+
+
+================ ================= =================================================
+Parameter        Type              Description
+================ ================= =================================================
+**edges_sql**    ``TEXT``          Edges SQL query as described above.
+**points_sql**   ``TEXT``          Points SQL query as described above.
+**start_pid**    ``ANY-INTEGER``   Starting point id.
+**distance**     ``ANY_NUMERICAL`` Distance from the start_pid
+**directed**     ``BOOLEAN``       (optional). When ``false`` the graph is considered as Undirected. Default is ``true`` which considers the graph as Directed.
+**driving_side** ``CHAR``          (optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:
+                                     - In the right or left or
+                                     - If it doesn't matter with 'b' or NULL.
+                                     - If column not present 'b' is considered.
+
+**details**      ``BOOLEAN``       (optional). When ``true`` the results will include the driving distance to the points with in Distance.
+                                   Default is ``false`` which ignores other points of the points_sql.
+================ ================= =================================================
+
+
+Description of the return values
+...................................................
+
+Returns set of ``(seq, node, edge, cost, agg_cost)``
+
+============ =========== =================================================
+Column           Type              Description
+============ =========== =================================================
+**seq**      ``INT``     row sequence.
+**node**     ``BIGINT``  Identifier of the node within the Distance from ``start_pid``. If ``details =: true`` a negative value is the identifier of a point.
+**edge**     ``BIGINT``  Identifier of the edge used to go from ``node`` to the next node in the path sequence.
+                           - ``-1`` for the last row in the path sequence.
+
+**cost**     ``FLOAT``   Cost to traverse from ``node`` using ``edge`` to the next ``node`` in the path sequence.
+                           - ``0`` for the last row in the path sequence.
+
+**agg_cost** ``FLOAT``   Aggregate cost from ``start_pid`` to ``node``.
+                           - ``0`` for the first row in the path sequence.
+
+============ =========== =================================================
+
+Examples for queries marked as ``directed`` with ``cost`` and ``reverse_cost`` columns
+--------------------------------------------------------------------------------------
+
+The examples in this section use the following :ref:`fig1`
+
+:Example: Left side driving topology
+
+.. literalinclude:: doc-pgr_withPointsVia.queries
+   :start-after: --q3
+   :end-before: --q4
+
+:Example: Does not matter driving side.
+
+.. literalinclude:: doc-pgr_withPointsVia.queries
+   :start-after: --q4
+   :end-before: --q5
+
+
+
+
+
+
+
+.. rubric:: History
+
+* Proposed in version 2.2
+
+
+See Also
+-------------------------------------------------------------------------------
+
+* :ref:`pgr_drivingDistance` - Driving distance using dijkstra.
+* :ref:`pgr_alphashape` - Alpha shape computation.
+* :ref:`pgr_points_as_polygon` - Polygon around set of points.
+* The queries use the :doc:`sampledata` network.
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
+
diff --git a/doc/withPoints/withPoints-family.rst b/doc/withPoints/withPoints-family.rst
new file mode 100644
index 0000000..01ae589
--- /dev/null
+++ b/doc/withPoints/withPoints-family.rst
@@ -0,0 +1,195 @@
+..
+   ****************************************************************************
+    pgRouting Manual
+    Copyright(c) pgRouting Contributors
+
+    This documentation is licensed under a Creative Commons Attribution-Share
+    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+   ****************************************************************************
+
+
+.. _withPoints:
+
+withPoints - Family of functions
+===============================================================================
+
+When points are also given as input:
+
+.. index from here
+
+- :ref:`pgr_withPoints` - Route from/to points anywhere on the graph.
+- :ref:`pgr_withPointsCost` - Costs of the shortest paths.
+- :ref:`pgr_withPointsCostMatrix` - Costs of the shortest paths.
+- :ref:`pgr_withPointsKSP` - K shortest paths.
+- :ref:`pgr_withPointsDD` - Driving distance.
+
+.. index to here
+
+.. toctree::
+    :hidden:
+
+    pgr_withPoints
+    pgr_withPointsCost
+    pgr_withPointsCostMatrix
+    pgr_withPointsKSP
+    pgr_withPointsDD
+
+
+
+.. include:: proposed.rst
+   :start-after: begin-warning
+   :end-before: end-warning
+
+
+
+
+Images
+--------------
+
+The squared vertices are the temporary vertices, The temporary vertices are added acordng to the
+dirving side, The following images visualy show the diferences on how depending on the driving side the data is interpreted.
+
+.. rubric:: Right driving side
+
+.. image:: images/rightDrivingSide.png
+    :scale: 50%
+
+.. rubric:: Left driving side
+
+.. image:: images/leftDrivingSide.png
+    :scale: 50%
+
+.. rubric:: doesn't matter the driving side
+
+.. image:: images/noMatterDrivingSide.png
+    :scale: 50%
+
+Introduction
+--------------
+
+This famly of functions was thought for routing vehicles, but might as well work
+for some other application that we can not think of.
+
+The with points family of function give you the ability to route between
+arbitrary points located outside the original graph.
+
+When given a point identified with a `pid` that its being mapped to and edge with
+an identifier `edge_id`, with a `fraction` along
+that edge (from the source to the target of the edge) and some additional
+information about which `side` of the edge the point is on, then routing
+from arbitrary points more accurately reflect routing vehicles in road networks,
+
+
+I talk about a family of functions because it includes different functionalities.
+  - pgr_withPoints is pgr_dijkstra based
+  - pgr_withPointsCost is pgr_dijkstraCost based
+  - pgr_withPointsKSP is pgr_ksp based
+  - pgr_withPointsDD is pgr_drivingDistance based
+
+In all this functions we have to take care of as many aspects as possible:
+
+- Must work for routing:
+
+  - Cars (directed graph)
+  - Pedestrians (undirected graph)
+
+- Arriving at the point:
+
+  - In either side of the street.
+  - Compulsory arrival on the side of the street where the point is located.
+
+- Countries with:
+
+  - Right side driving
+  - Left side driving
+
+- Some points are:
+
+  - Permanent, for example the set of points of clients stored in a table in the data base
+  - Temporal, for example points given through a web application
+
+- The numbering of the points are handled with negative sign.
+
+  - Original point identifiers are to be positive.
+  - Transformation to negative is done internally.
+  - For results for involving vertices identifiers
+
+    - positive sign is a vertex of the original grpah
+    - negative sign is a point of the temporary points
+
+The reason for doing this is to avoid confusion when there is a vertex with the same number as identifier as the points identifier.
+
+Graph & edges
+----------------
+
+- Let :math:`G_d(V,E)` where :math:`V` is the set of vertices and :math:`E` is the set of edges be the original directed graph.
+
+  - An edge of the original `edges_sql` is :math:`(id, source, target, cost, reverse\_cost)` will generate internally
+
+    - :math:`(id, source, target, cost)`
+    - :math:`(id, target, source, reverse\_cost)`
+
+Point Definition
+----------------
+
+- A point is defined by the quadruplet: :math:`(pid, eid, fraction, side)`
+
+  - **pid** is the point identifier
+  - **eid** is an edge id of the `edges_sql`
+  - **fraction** represents where the edge `eid` will be cut.
+  - **side** Indicates the side of the edge where the point is located.
+
+
+Creating Temporary Vertices in the Graph
+----------------------------------------
+
+For edge (15,  9,12  10, 20), & lets insert point (2, 12, 0.3, r)
+
+.. rubric:: On a right hand side driving network
+
+From first image above:
+
+- We can arrive to the point only via vertex 9.
+- It only afects the edge (15, 9,12, 10) so that edge is removed.
+- Edge (15, 12,9, 20) is kept.
+- Create new edges:
+
+  - (15, 9,-1, 3) edge from vertex 9 to point 1 has cost 3
+  - (15, -1,12, 7) edge from point 1 to vertex 12 has cost 7
+
+.. rubric:: On a left hand side driving network
+
+From second image above:
+
+- We can arrive to the point only via vertex 12.
+- It only afects the edge (15, 12,9 20) so that edge is removed.
+- Edge (15, 9,12, 10) is kept.
+- Create new edges:
+
+  - (15, 12,-1, 14) edge from vertex 12 to point 1 has cost 14
+  - (15, -1,9, 6) edge from point 1 to vertex 9 has cost 6
+
+:Remember: that fraction is from vertex 9 to vertex 12
+
+
+.. rubric:: When driving side does not matter
+
+From third image above:
+
+- We can arrive to the point either via vertex 12 or via vertex 9
+- Edge (15, 12,9 20) is removed.
+- Edge (15, 9,12, 10) is removed.
+- Create new edges:
+
+  - (15, 12,-1, 14) edge from vertex 12 to point 1 has cost 14
+  - (15, -1,9, 6) edge from point 1 to vertex 9 has cost 6
+  - (15, 9,-1, 3) edge from vertex 9 to point 1 has cost 3
+  - (15, -1,12, 7) edge from point 1 to vertex 12 has cost 7
+
+See Also
+-------------------------------------------------------------------------------
+
+.. rubric:: Indices and tables
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doxygen/CMakeLists.txt b/doxygen/CMakeLists.txt
index b463d34..a957c98 100644
--- a/doxygen/CMakeLists.txt
+++ b/doxygen/CMakeLists.txt
@@ -4,9 +4,9 @@
 #
 
 option(BUILD_DOXY
-    "Set ON|OFF (default=OFF) to build Developers Documentation" OFF)
+    "Set ON|OFF (default=OFF) to build Developers Documentation" ON)
 
-if (BUILD_DOXY)
+if (BUILD_DOXY AND WITH_DOC)
     message(STATUS "Developers documentation.")
     find_package(Doxygen ${DOXYGEN_MINIMUM_VERSION})
 
diff --git a/doxygen/Doxyfile.in b/doxygen/Doxyfile.in
index c02b5ca..7ad601d 100644
--- a/doxygen/Doxyfile.in
+++ b/doxygen/Doxyfile.in
@@ -51,7 +51,7 @@ PROJECT_BRIEF          = "@PROJECT_BRIEF@"
 # and the maximum width should not exceed 200 pixels. Doxygen will copy the logo
 # to the output directory.
 
-PROJECT_LOGO           = @CMAKE_CURRENT_SOURCE_DIR@/../doc/static/images/pgrouting-logo.png
+PROJECT_LOGO           = @CMAKE_CURRENT_SOURCE_DIR@/../doc/_static/images/pgrouting-logo.png
 
 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
 # into which the generated documentation will be written. If a relative path is
@@ -140,7 +140,7 @@ INLINE_INHERITED_MEMB  = YES
 # shortest path that makes the file name unique will be used
 # The default value is: YES.
 
-FULL_PATH_NAMES        = NO
+FULL_PATH_NAMES        = YES
 
 # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
 # Stripping is only done if one of the specified strings matches the left-hand
@@ -754,7 +754,7 @@ WARN_LOGFILE           = ./LOG
 # spaces.
 # Note: If this tag is empty the current directory is searched.
 
-INPUT                  = @CMAKE_CURRENT_SOURCE_DIR@/../src @CMAKE_CURRENT_SOURCE_DIR@
+INPUT                  = @CMAKE_CURRENT_SOURCE_DIR@/../src @CMAKE_CURRENT_SOURCE_DIR@/../include @CMAKE_CURRENT_SOURCE_DIR@
 
 # This tag can be used to specify the character encoding of the source files
 # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
@@ -806,7 +806,7 @@ EXCLUDE_SYMLINKS       = NO
 # Note that the wildcards are matched against the file with absolute path, so to
 # exclude all test directories for example use the pattern */test/*
 
-EXCLUDE_PATTERNS       = */notUsed/* */test/* */src/trsp/doc/README.md
+EXCLUDE_PATTERNS       = */notUsed/* */test/* */src/trsp/doc/README.md 
 
 # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
 # (namespaces, classes, functions, etc.) that should be excluded from the
@@ -843,8 +843,8 @@ EXAMPLE_RECURSIVE      = NO
 # that contain images that are to be included in the documentation (see the
 # \image command).
 
-IMAGE_PATH             = @CMAKE_CURRENT_SOURCE_DIR@/../doc/static/images/developers \
-                         @CMAKE_CURRENT_SOURCE_DIR@/../src/contraction/doc/images
+IMAGE_PATH             = @CMAKE_CURRENT_SOURCE_DIR@/../doc/_static/images/developers \
+                         @CMAKE_CURRENT_SOURCE_DIR@/../doc/contraction/images
                         
 
 # The INPUT_FILTER tag can be used to specify a program that doxygen should
@@ -912,7 +912,7 @@ SOURCE_BROWSER         = YES
 # classes and enums directly into the documentation.
 # The default value is: NO.
 
-INLINE_SOURCES         = NO
+INLINE_SOURCES         = YES
 
 # Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
 # special comment blocks from generated source code fragments. Normal C, C++ and
@@ -2059,7 +2059,7 @@ HIDE_UNDOC_RELATIONS   = YES
 # set to NO
 # The default value is: YES.
 
-HAVE_DOT               = NO
+HAVE_DOT               = YES
 
 # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
 # to run in parallel. When set to 0 doxygen will base this on the number of
@@ -2146,7 +2146,7 @@ UML_LIMIT_NUM_FIELDS   = 10
 # The default value is: NO.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
-TEMPLATE_RELATIONS     = NO
+TEMPLATE_RELATIONS     = YES
 
 # If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
 # YES then doxygen will generate a graph for each documented file showing the
@@ -2175,7 +2175,7 @@ INCLUDED_BY_GRAPH      = YES
 # The default value is: NO.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
-CALL_GRAPH             = NO
+CALL_GRAPH             = YES
 
 # If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
 # dependency graph for every global function or class method.
@@ -2186,7 +2186,7 @@ CALL_GRAPH             = NO
 # The default value is: NO.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
-CALLER_GRAPH           = NO
+CALLER_GRAPH           = YES
 
 # If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
 # hierarchy of all classes instead of a textual one.
@@ -2276,7 +2276,7 @@ DOT_GRAPH_MAX_NODES    = 50
 # Minimum value: 0, maximum value: 1000, default value: 0.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
-MAX_DOT_GRAPH_DEPTH    = 0
+MAX_DOT_GRAPH_DEPTH    = 1
 
 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
 # background. This is disabled by default, because dot on Windows does not seem
@@ -2312,4 +2312,4 @@ GENERATE_LEGEND        = YES
 # The default value is: YES.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
-DOT_CLEANUP            = YES
+DOT_CLEANUP            = NO
diff --git a/include/allpairs/pgr_allpairs.hpp b/include/allpairs/pgr_allpairs.hpp
new file mode 100644
index 0000000..5522e77
--- /dev/null
+++ b/include/allpairs/pgr_allpairs.hpp
@@ -0,0 +1,316 @@
+/*PGR-GNU*****************************************************************
+File:  pgr_allpairs.hpp
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+// http://www.cs.rpi.edu/~musser/archive/2005/gsd/restricted/FloydWarshall/FloydWarshall.pdf
+
+#ifndef INCLUDE_ALLPAIRS_PGR_ALLPAIRS_HPP_
+#define INCLUDE_ALLPAIRS_PGR_ALLPAIRS_HPP_
+#pragma once
+
+
+#include <boost/config.hpp>
+#include <boost/graph/adjacency_list.hpp>
+#include <boost/property_map/property_map.hpp>
+#include <boost/graph/johnson_all_pairs_shortest.hpp>
+#include <boost/graph/floyd_warshall_shortest.hpp>
+
+
+#include <deque>
+#include <vector>
+#include <set>
+#include <limits>
+
+
+#include "cpp_common/basePath_SSEC.hpp"
+#include "cpp_common/pgr_base_graph.hpp"
+
+// TODO(vicky) don't keep it here
+#include "cpp_common/pgr_alloc.hpp"
+
+template < class G > class Pgr_allpairs;
+
+// user's functions
+template < class G >
+void
+pgr_johnson(G &graph, std::vector< Matrix_cell_t> &rows) {
+    Pgr_allpairs< G > fn_johnson;
+    fn_johnson.johnson(graph, rows);
+}
+
+template < class G >
+void
+pgr_floydWarshall(G &graph, std::vector< Matrix_cell_t> &rows) {
+    Pgr_allpairs< G > fn_floydWarshall;
+    fn_floydWarshall.floydWarshall(graph, rows);
+}
+
+// for postgres
+template < class G >
+void
+pgr_johnson(
+        G &graph,
+        size_t &result_tuple_count,
+        Matrix_cell_t **postgres_rows) {
+    Pgr_allpairs< G > fn_johnson;
+    fn_johnson.johnson(graph, result_tuple_count, postgres_rows);
+}
+
+
+template < class G >
+void
+pgr_floydWarshall(
+        G &graph,
+        size_t &result_tuple_count,
+        Matrix_cell_t **postgres_rows) {
+    Pgr_allpairs< G > fn_floydWarshall;
+    fn_floydWarshall.floydWarshall(graph, result_tuple_count, postgres_rows);
+}
+
+
+// template class
+template < class G >
+class Pgr_allpairs {
+    // default constructors and destructors
+    /*
+       Matrix_cell_t description:
+       int64_t from_vid;
+       int64_t to_vid;
+       float8 cost;
+       */
+ public:
+     void floydWarshall(
+             G &graph,
+             size_t &result_tuple_count,
+             Matrix_cell_t **postgres_rows);
+
+
+     void floydWarshall(
+             G &graph,
+             std::vector< Matrix_cell_t> &rows);
+
+     void johnson(
+             G &graph,
+             size_t &result_tuple_count,
+             Matrix_cell_t **postgres_rows);
+
+
+     void johnson(
+             G &graph,
+             std::vector< Matrix_cell_t> &rows);
+
+ private:
+     void make_matrix(
+             size_t v_size,
+             std::vector< std::vector<double>> &matrix) const;
+
+     void make_result(
+             const G &graph,
+             const std::vector< std::vector<double> > &matrix,
+             size_t &result_tuple_count,
+             Matrix_cell_t **postgres_rows) const;
+
+     size_t count_rows(
+             const G &graph,
+             const std::vector< std::vector<double> > &matrix) const;
+
+     void make_result(
+             G &graph,
+             std::vector< std::vector<double> > &matrix,
+             std::vector< Matrix_cell_t> &rows);
+
+     template <typename T>
+         struct inf_plus {
+             T operator()(const T& a, const T& b) const {
+                 T inf = (std::numeric_limits<T>::max)();
+                 if (a == inf || b == inf)
+                     return inf;
+                 return a + b;
+             }
+         };
+};
+
+/*
+ * PUBLIC FUNCTIONS
+ */
+
+template < class G >
+void Pgr_allpairs< G >::floydWarshall(
+        G &graph,
+        size_t &result_tuple_count,
+        Matrix_cell_t **postgres_rows) {
+    std::vector< std::vector<double>> matrix;
+    make_matrix(graph.num_vertices(), matrix);
+    inf_plus<double> combine;
+    boost::floyd_warshall_all_pairs_shortest_paths(
+            graph.graph,
+            matrix,
+            weight_map(get(&pgrouting::Basic_edge::cost, graph.graph)).
+            distance_combine(combine).
+            distance_inf((std::numeric_limits<double>::max)()).
+            distance_zero(0));
+
+    make_result(graph, matrix, result_tuple_count, postgres_rows);
+}
+
+
+template < class G >
+void Pgr_allpairs< G >::floydWarshall(
+        G &graph,
+        std::vector< Matrix_cell_t> &rows) {
+    std::vector< std::vector<double>> matrix;
+    make_matrix(graph.num_vertices(), matrix);
+    inf_plus<double> combine;
+    boost::floyd_warshall_all_pairs_shortest_paths(
+            graph.graph,
+            matrix,
+            weight_map(get(&pgrouting::Basic_edge::cost, graph.graph)).
+            distance_combine(combine).
+            distance_inf((std::numeric_limits<double>::max)()).
+            distance_zero(0));
+
+    make_result(graph, matrix, rows);
+}
+
+template < class G >
+void Pgr_allpairs< G >::johnson(
+        G &graph,
+        size_t &result_tuple_count,
+        Matrix_cell_t **postgres_rows) {
+    std::vector< std::vector<double>> matrix;
+    make_matrix(graph.num_vertices(), matrix);
+    inf_plus<double> combine;
+    boost::johnson_all_pairs_shortest_paths(
+            graph.graph,
+            matrix,
+            weight_map(get(&pgrouting::Basic_edge::cost, graph.graph)).
+            distance_combine(combine).
+            distance_inf((std::numeric_limits<double>::max)()).
+            distance_zero(0));
+
+    make_result(graph, matrix, result_tuple_count, postgres_rows);
+}
+
+
+template < class G >
+void Pgr_allpairs< G >::johnson(
+        G &graph,
+        std::vector< Matrix_cell_t> &rows) {
+    std::vector< std::vector<double>> matrix;
+    make_matrix(graph.num_vertices(), matrix);
+    inf_plus<double> combine;
+    boost::johnson_all_pairs_shortest_paths(
+            graph.graph,
+            matrix,
+            weight_map(get(&pgrouting::Basic_edge::cost, graph.graph)).
+            distance_combine(combine).
+            distance_inf((std::numeric_limits<double>::max)()).
+            distance_zero(0));
+
+    make_result(graph, matrix, rows);
+}
+
+
+
+
+/*
+ * PRIVATE FUNCTIONS
+ */
+
+template < class G >
+void
+Pgr_allpairs< G >::make_matrix(
+        size_t v_size,
+        std::vector< std::vector<double>> &matrix) const {
+    // TODO(vicky) in one step
+    matrix.resize(v_size);
+    for (size_t i=0; i < v_size; i++)
+        matrix[i].resize(v_size);
+}
+
+template < class G >
+size_t
+Pgr_allpairs< G >::count_rows(
+        const G &graph,
+        const std::vector< std::vector<double> > &matrix) const {
+    size_t result_tuple_count = 0;
+    for (size_t i = 0; i < graph.num_vertices(); i++) {
+        for (size_t j = 0; j < graph.num_vertices(); j++) {
+            if (i == j) continue;
+            if (matrix[i][j] != (std::numeric_limits<double>::max)()) {
+                result_tuple_count++;
+            }  // if
+        }  // for j
+    }  // for i
+    return result_tuple_count;
+}
+
+// TODO(vicky) don't keep it here for postgres
+template < class G >
+void
+Pgr_allpairs< G >::make_result(
+        const G &graph,
+        const std::vector< std::vector<double> > &matrix,
+        size_t &result_tuple_count,
+        Matrix_cell_t **postgres_rows) const {
+    result_tuple_count = count_rows(graph, matrix);
+    *postgres_rows = pgr_alloc(result_tuple_count, (*postgres_rows));
+
+
+    size_t seq = 0;
+    for (typename G::V v_i = 0; v_i < graph.num_vertices(); v_i++) {
+        for (typename G::V v_j = 0; v_j < graph.num_vertices(); v_j++) {
+            if (v_i == v_j) continue;
+            if (matrix[v_i][v_j] != (std::numeric_limits<double>::max)()) {
+                (*postgres_rows)[seq].from_vid = graph[v_i].id;
+                (*postgres_rows)[seq].to_vid = graph[v_j].id;
+                (*postgres_rows)[seq].cost =  matrix[v_i][v_j];
+                seq++;
+            }  // if
+        }  // for j
+    }  // for i
+}
+
+
+template < class G >
+void
+Pgr_allpairs< G >::make_result(
+        G &graph,
+        std::vector< std::vector<double> > &matrix,
+        std::vector< Matrix_cell_t> &rows) {
+    size_t count = count_rows(graph, matrix);
+    rows.resize(count);
+    size_t seq = 0;
+
+    for (typename G::V v_i = 0; v_i < graph.num_vertices(); v_i++) {
+        for (typename G::V v_j = 0; v_j < graph.num_vertices(); v_j++) {
+            if (matrix[v_i][v_j] != (std::numeric_limits<double>::max)()) {
+                rows[seq] =
+                    {graph[v_i].id, graph[v_j].id, matrix[v_i][v_j]};
+                seq++;
+            }  // if
+        }  // for j
+    }  // for i
+}
+
+#endif  // INCLUDE_ALLPAIRS_PGR_ALLPAIRS_HPP_
diff --git a/include/astar/pgr_astar.hpp b/include/astar/pgr_astar.hpp
new file mode 100644
index 0000000..0d7aa18
--- /dev/null
+++ b/include/astar/pgr_astar.hpp
@@ -0,0 +1,359 @@
+/*PGR-GNU*****************************************************************
+
+File: pgr_astar.hpp
+
+Copyright (c) 2015 Vicky Vergara
+Mail: vicky_vergara at hotmail.com
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_ASTAR_PGR_ASTAR_HPP_
+#define INCLUDE_ASTAR_PGR_ASTAR_HPP_
+#pragma once
+
+#include <boost/config.hpp>
+#include <boost/graph/graph_traits.hpp>
+#include <boost/graph/adjacency_list.hpp>
+#include <boost/graph/astar_search.hpp>
+
+#include <cmath>
+
+
+#include <deque>
+#include <limits>
+#include <algorithm>
+#include <vector>
+#include <set>
+
+#include "cpp_common/basePath_SSEC.hpp"
+#include "cpp_common/pgr_base_graph.hpp"
+
+namespace pgrouting {
+namespace algorithms {
+
+template < class G >
+class Pgr_astar {
+ public:
+     typedef typename G::V V;
+     typedef typename G::B_G B_G;
+
+
+     void clear() {
+         predecessors.clear();
+         distances.clear();
+     }
+
+     //! @name Astar
+     //@{
+     //! one to one
+     //! astar 1 to 1
+     Path astar(
+             G &graph,
+             int64_t start_vertex,
+             int64_t end_vertex,
+             int heuristic,
+             double factor,
+             double epsilon,
+             bool only_cost) {
+         clear();
+
+         predecessors.resize(graph.num_vertices());
+         distances.resize(graph.num_vertices());
+
+         if (!graph.has_vertex(start_vertex)
+                 || !graph.has_vertex(end_vertex)) {
+             return Path(start_vertex, end_vertex);
+         }
+
+         auto v_source(graph.get_V(start_vertex));
+         auto v_target(graph.get_V(end_vertex));
+
+         // perform the algorithm
+         astar_1_to_1(graph, v_source, v_target, heuristic, factor, epsilon);
+
+         return  Path(graph,
+                 v_source, v_target,
+                 predecessors, distances,
+                 only_cost);
+     }
+
+     //! astar 1 to many
+     std::deque<Path> astar(
+             G &graph,
+             int64_t start_vertex,
+             std::vector<int64_t> end_vertex,
+             int heuristic,
+             double factor,
+             double epsilon,
+             bool only_cost) {
+         clear();
+
+         predecessors.resize(graph.num_vertices());
+         distances.resize(graph.num_vertices());
+
+         if (!graph.has_vertex(start_vertex)) return std::deque<Path>();
+         auto v_source(graph.get_V(start_vertex));
+
+         std::vector<V> v_targets;
+         for (const auto &vertex : end_vertex) {
+             if (graph.has_vertex(vertex)) {
+                 v_targets.push_back(graph.get_V(vertex));
+             }
+         }
+
+         astar_1_to_many(graph,
+                 v_source,
+                 v_targets,
+                 heuristic,
+                 factor,
+                 epsilon);
+
+         auto paths = get_paths(graph, v_source, v_targets, only_cost);
+
+         std::stable_sort(paths.begin(), paths.end(),
+                 [](const Path &e1, const Path &e2)->bool {
+                 return e1.end_id() < e2.end_id();
+                 });
+
+         return paths;
+     }
+
+     // preparation for many to many
+     std::deque<Path> astar(
+             G &graph,
+             std::vector<int64_t> start_vertex,
+             std::vector<int64_t> end_vertex,
+             int heuristic,
+             double factor,
+             double epsilon,
+             bool only_cost) {
+         std::deque<Path> paths;
+         for (const auto &start : start_vertex) {
+             auto r_paths = astar(graph, start, end_vertex,
+                     heuristic, factor, epsilon, only_cost);
+              paths.insert(paths.begin(), r_paths.begin(), r_paths.end());
+         }
+
+         std::sort(paths.begin(), paths.end(),
+                 [](const Path &e1, const Path &e2)->bool {
+                 return e1.end_id() < e2.end_id();
+                 });
+         std::stable_sort(paths.begin(), paths.end(),
+                 [](const Path &e1, const Path &e2)->bool {
+                 return e1.start_id() < e2.start_id();
+                 });
+         return paths;
+     }
+     //@}
+
+
+
+ private:
+     //! @name members;
+     //@{
+     struct found_goals{};  //!< exception for termination
+     std::vector< V > predecessors;
+     std::vector< double > distances;
+     std::deque< V > nodesInDistance;
+     //@}
+
+     // heuristic for one goal
+     class distance_heuristic : public boost::astar_heuristic< B_G, double > {
+      public:
+          distance_heuristic(B_G &g, V goal, int heuristic, double factor)
+              : m_g(g),
+              m_factor(factor),
+              m_heuristic(heuristic) {
+                  m_goals.insert(goal);
+              }
+          distance_heuristic(
+                  B_G &g,
+                  std::vector< V > goals,
+                  int heuristic,
+                  double factor)
+              : m_g(g),
+              m_goals(goals.begin(), goals.end()),
+              m_factor(factor),
+              m_heuristic(heuristic) {}
+
+          double operator()(V u) {
+              if (m_heuristic == 0) return 0;
+              if (m_goals.empty()) return 0;
+              double best_h((std::numeric_limits<double>::max)());
+              for (auto goal : m_goals) {
+                  double current((std::numeric_limits<double>::max)());
+                  double dx = m_g[goal].x() - m_g[u].x();
+                  double dy = m_g[goal].y() - m_g[u].y();
+                  switch (m_heuristic) {
+                      case 0:
+                          current = 0;
+                      case 1:
+                          current = std::fabs((std::max)(dx, dy)) * m_factor;
+                      case 2:
+                          current = std::fabs((std::min)(dx, dy)) * m_factor;
+                      case 3:
+                          current = (dx * dx + dy * dy) * m_factor * m_factor;
+                      case 4:
+                          current = std::sqrt(dx * dx + dy * dy) * m_factor;
+                      case 5:
+                          current = (std::fabs(dx) + std::fabs(dy)) * m_factor;
+                      default:
+                          current = 0;
+                  }
+                  if (current < best_h) {
+                      best_h = current;
+                  }
+              }
+              {
+                  auto s_it = m_goals.find(u);
+                  if (!(s_it == m_goals.end())) {
+                      // found one more goal
+                      m_goals.erase(s_it);
+                  }
+              }
+              return best_h;
+          }
+
+      private:
+          B_G &m_g;
+          std::set< V > m_goals;
+          double m_factor;
+          int m_heuristic;
+     };  // class distance_heuristic
+
+
+     //! visitor that terminates when we find the goal
+     class astar_one_goal_visitor : public boost::default_astar_visitor {
+      public:
+          explicit astar_one_goal_visitor(V goal) : m_goal(goal) {}
+          template <class B_G>
+              void examine_vertex(V u, B_G &g) {
+                  if (u == m_goal)
+                      throw found_goals();
+                  // using g, otherwise is throws a warning
+                  num_edges(g);
+              }
+      private:
+          V m_goal;
+     };  // class astar_one_goal_visitor
+
+     //! class for stopping when all targets are found
+     class astar_many_goals_visitor : public boost::default_astar_visitor {
+      public:
+          explicit astar_many_goals_visitor(std::vector< V > goals)
+              :m_goals(goals.begin(), goals.end()) {}
+          template <class B_G>
+              void examine_vertex(V u, B_G &g) {
+                  auto s_it = m_goals.find(u);
+                  if (s_it == m_goals.end()) return;
+                  // found one more goal
+                  m_goals.erase(s_it);
+                  if (m_goals.size() == 0) throw found_goals();
+                  num_edges(g);
+              }
+      private:
+          std::set< V > m_goals;
+     };
+
+     /******************** IMPLEMENTTION ******************/
+
+
+
+     //! Call to Astar  1 source to 1 target
+     bool astar_1_to_1(
+             G &graph,
+             V source,
+             V target,
+             int heuristic,
+             double factor,
+             double epsilon) {
+         bool found = false;
+         try {
+             // Call A* named parameter interface
+             boost::astar_search(
+                     graph.graph, source,
+                     distance_heuristic(graph.graph, target,
+                         heuristic, factor * epsilon),
+                     boost::predecessor_map(&predecessors[0])
+                     .weight_map(get(&pgrouting::Basic_edge::cost, graph.graph))
+                     .distance_map(&distances[0])
+                     .visitor(astar_one_goal_visitor(target)));
+         }
+         catch(found_goals &) {
+             found = true;  // Target vertex found
+         }
+         return found;
+     }
+
+
+     //! Call to astar  1 source to many targets
+     bool astar_1_to_many(
+             G &graph,
+             V source,
+             const std::vector< V > &targets,
+             int heuristic,
+             double factor,
+             double epsilon) {
+         bool found = false;
+         try {
+             boost::astar_search(
+                     graph.graph, source,
+                     distance_heuristic(
+                         graph.graph, targets,
+                         heuristic, factor * epsilon),
+                     boost::predecessor_map(&predecessors[0])
+                     .weight_map(get(&pgrouting::Basic_edge::cost, graph.graph))
+                     .distance_map(&distances[0])
+                     .visitor(astar_many_goals_visitor(targets)));
+         }
+         catch(found_goals &) {
+             found = true;  // Target vertex found
+         }
+         return found;
+     }
+
+
+     /*
+      * GET_PATHS
+      */
+
+
+     std::deque<Path> get_paths(
+             const G &graph,
+             V source,
+             const std::vector<V> &targets,
+             bool only_cost) const {
+         std::deque<Path> paths;
+         for (const auto &target : targets) {
+             paths.push_back(
+                     Path(graph,
+                         source, target,
+                         predecessors, distances,
+                         only_cost));
+         }
+         return paths;
+     }
+};
+
+
+}  // namespace algorithms
+}  // namespace pgrouting
+
+#endif  // INCLUDE_ASTAR_PGR_ASTAR_HPP_
diff --git a/include/bdAstar/pgr_bdAstar.hpp b/include/bdAstar/pgr_bdAstar.hpp
new file mode 100644
index 0000000..9d02f99
--- /dev/null
+++ b/include/bdAstar/pgr_bdAstar.hpp
@@ -0,0 +1,194 @@
+/*PGR-GNU*****************************************************************
+File: pgr_bdAstar.hpp 
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail:
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_BDASTAR_PGR_BDASTAR_HPP_
+#define INCLUDE_BDASTAR_PGR_BDASTAR_HPP_
+#pragma once
+
+
+#include "cpp_common/pgr_bidirectional.hpp"
+
+#include <string>
+#include <queue>
+#include <utility>
+#include <vector>
+#include <limits>
+#include <functional>
+
+#include "cpp_common/basePath_SSEC.hpp"
+
+namespace pgrouting {
+namespace bidirectional {
+
+template < typename G >
+class Pgr_bdAstar : public Pgr_bidirectional<G> {
+    typedef typename Pgr_bidirectional<G>::V V;
+    typedef typename Pgr_bidirectional<G>::E E;
+    typedef typename Pgr_bidirectional<G>::Cost_Vertex_pair Cost_Vertex_pair;
+
+    using Pgr_bidirectional<G>::graph;
+    using Pgr_bidirectional<G>::m_log;
+    using Pgr_bidirectional<G>::v_source;
+    using Pgr_bidirectional<G>::v_target;
+
+    using Pgr_bidirectional<G>::backward_predecessor;
+    using Pgr_bidirectional<G>::backward_queue;
+    using Pgr_bidirectional<G>::backward_finished;
+    using Pgr_bidirectional<G>::backward_cost;
+    using Pgr_bidirectional<G>::backward_edge;
+
+    using Pgr_bidirectional<G>::forward_predecessor;
+    using Pgr_bidirectional<G>::forward_queue;
+    using Pgr_bidirectional<G>::forward_finished;
+    using Pgr_bidirectional<G>::forward_cost;
+    using Pgr_bidirectional<G>::forward_edge;
+
+
+    using Pgr_bidirectional<G>::bidirectional;
+
+
+ public:
+    explicit Pgr_bdAstar(G &pgraph) :
+        Pgr_bidirectional<G>(pgraph),
+        m_heuristic(5),
+        m_factor(1.0) {
+        m_log << "pgr_bdAstar constructor\n";
+    }
+
+    ~Pgr_bdAstar() = default;
+
+    Path pgr_bdAstar(V start_vertex, V end_vertex,
+            int heuristic,
+            double factor,
+            double epsilon,
+            bool only_cost) {
+        m_log << "pgr_bdAstar\n";
+        v_source = start_vertex;
+        v_target = end_vertex;
+        m_heuristic = heuristic;
+        m_factor = factor * epsilon;
+
+        if (v_source == v_target) {
+            return Path(v_source, v_target);
+        }
+        return bidirectional(only_cost);
+    }
+
+    using Pgr_bidirectional<G>::log;
+    using Pgr_bidirectional<G>::clean_log;
+
+ private:
+    void explore_forward(const Cost_Vertex_pair &node) {
+        typename G::EO_i out, out_end;
+
+        auto current_cost = node.first;
+        auto current_node = node.second;
+
+        for (boost::tie(out, out_end) = out_edges(current_node, graph.graph);
+                out != out_end; ++out) {
+            auto edge_cost = graph[*out].cost;
+            auto next_node = graph.adjacent(current_node, *out);
+
+            if (forward_finished[next_node]) continue;
+
+            if (edge_cost + current_cost < forward_cost[next_node]) {
+                forward_cost[next_node] = edge_cost + current_cost;
+                forward_predecessor[next_node] = current_node;
+                forward_edge[next_node] = graph[*out].id;
+                forward_queue.push({
+                        forward_cost[next_node]
+                            + heuristic(next_node, v_target),
+                        next_node});
+            }
+        }
+        forward_finished[current_node] = true;
+    }
+
+    void explore_backward(const Cost_Vertex_pair &node) {
+        typename G::EI_i in, in_end;
+
+        auto current_cost = node.first;
+        auto current_node = node.second;
+
+        for (boost::tie(in, in_end) = in_edges(current_node, graph.graph);
+                in != in_end; ++in) {
+            auto edge_cost = graph[*in].cost;
+            auto next_node = graph.adjacent(current_node, *in);
+
+            if (backward_finished[next_node]) continue;
+
+            if (edge_cost + current_cost < backward_cost[next_node]) {
+                backward_cost[next_node] = edge_cost + current_cost;
+                backward_predecessor[next_node] = current_node;
+                backward_edge[next_node] = graph[*in].id;
+                backward_queue.push({
+                        backward_cost[next_node]
+                            + heuristic(next_node, v_source),
+                        next_node});
+            }
+        }
+        backward_finished[current_node] = true;
+    }
+
+
+    double heuristic(V v, V u) {
+        if (m_heuristic == 0) return 0;
+
+        double dx = graph[v].x() - graph[u].x();
+        double dy = graph[v].y() - graph[u].y();
+        double current;
+
+        switch (m_heuristic) {
+            case 0:
+                current = 0;
+            case 1:
+                current = std::fabs((std::max)(dx, dy)) * m_factor;
+            case 2:
+                current = std::fabs((std::min)(dx, dy)) * m_factor;
+            case 3:
+                current = (dx * dx + dy * dy) * m_factor * m_factor;
+            case 4:
+                current = std::sqrt(dx * dx + dy * dy) * m_factor;
+            case 5:
+                current = (std::fabs(dx) + std::fabs(dy)) * m_factor;
+            default:
+                current = 0;
+        }
+        return current;
+    }
+
+ private:
+    int m_heuristic;
+    double m_factor;
+};
+
+}  // namespace bidirectional
+}  // namespace pgrouting
+
+#endif  // INCLUDE_BDASTAR_PGR_BDASTAR_HPP_
diff --git a/include/bdDijkstra/pgr_bdDijkstra.hpp b/include/bdDijkstra/pgr_bdDijkstra.hpp
new file mode 100644
index 0000000..7f34215
--- /dev/null
+++ b/include/bdDijkstra/pgr_bdDijkstra.hpp
@@ -0,0 +1,149 @@
+/*PGR-GNU*****************************************************************
+
+File: pgr_bdDijkstra.hpp 
+
+Copyright (c) 2016 Celia Virginia Vergara Castillo
+vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_BDDIJKSTRA_PGR_BDDIJKSTRA_HPP_
+#define INCLUDE_BDDIJKSTRA_PGR_BDDIJKSTRA_HPP_
+#pragma once
+
+
+#include "cpp_common/pgr_bidirectional.hpp"
+
+#include <string>
+#include <queue>
+#include <utility>
+#include <vector>
+#include <limits>
+#include <functional>
+
+
+#include "cpp_common/basePath_SSEC.hpp"
+
+
+namespace pgrouting {
+namespace bidirectional {
+
+
+template < typename G >
+class Pgr_bdDijkstra : public Pgr_bidirectional<G> {
+    typedef typename Pgr_bidirectional<G>::V V;
+    typedef typename Pgr_bidirectional<G>::E E;
+    typedef typename Pgr_bidirectional<G>::Cost_Vertex_pair Cost_Vertex_pair;
+
+    using Pgr_bidirectional<G>::graph;
+    using Pgr_bidirectional<G>::m_log;
+    using Pgr_bidirectional<G>::v_source;
+    using Pgr_bidirectional<G>::v_target;
+
+    using Pgr_bidirectional<G>::backward_predecessor;
+    using Pgr_bidirectional<G>::backward_queue;
+    using Pgr_bidirectional<G>::backward_finished;
+    using Pgr_bidirectional<G>::backward_cost;
+    using Pgr_bidirectional<G>::backward_edge;
+
+    using Pgr_bidirectional<G>::forward_predecessor;
+    using Pgr_bidirectional<G>::forward_queue;
+    using Pgr_bidirectional<G>::forward_finished;
+    using Pgr_bidirectional<G>::forward_cost;
+    using Pgr_bidirectional<G>::forward_edge;
+
+
+    using Pgr_bidirectional<G>::bidirectional;
+
+ public:
+     explicit Pgr_bdDijkstra(G &pgraph):
+         Pgr_bidirectional<G>(pgraph) {
+             m_log << "pgr_bdDijkstra constructor\n";
+         }
+
+     ~Pgr_bdDijkstra() = default;
+
+     Path pgr_bdDijkstra(V start_vertex, V end_vertex, bool only_cost) {
+         m_log << "pgr_bdDijkstra\n";
+         v_source = start_vertex;
+         v_target = end_vertex;
+
+         if (v_source == v_target) {
+            return Path(v_source, v_target);
+         }
+         return bidirectional(only_cost);
+     }
+
+
+    using Pgr_bidirectional<G>::log;
+    using Pgr_bidirectional<G>::clean_log;
+
+
+ private:
+     void explore_forward(const Cost_Vertex_pair &node) {
+         typename G::EO_i out, out_end;
+
+         auto current_cost = node.first;
+         auto current_node = node.second;
+
+         for (boost::tie(out, out_end) = out_edges(current_node, graph.graph);
+                 out != out_end; ++out) {
+             auto edge_cost = graph[*out].cost;
+             auto next_node = graph.adjacent(current_node, *out);
+
+             if (forward_finished[next_node]) continue;
+
+             if (edge_cost + current_cost < forward_cost[next_node]) {
+                 forward_cost[next_node] = edge_cost + current_cost;
+                 forward_predecessor[next_node] = current_node;
+                 forward_edge[next_node] = graph[*out].id;
+                 forward_queue.push({forward_cost[next_node], next_node});
+             }
+         }
+         forward_finished[current_node] = true;
+     }
+
+     void explore_backward(const Cost_Vertex_pair &node) {
+         typename G::EI_i in, in_end;
+
+         auto current_cost = node.first;
+         auto current_node = node.second;
+
+         for (boost::tie(in, in_end) = in_edges(current_node, graph.graph);
+                 in != in_end; ++in) {
+             auto edge_cost = graph[*in].cost;
+             auto next_node = graph.adjacent(current_node, *in);
+
+             if (backward_finished[next_node]) continue;
+
+             if (edge_cost + current_cost < backward_cost[next_node]) {
+                 backward_cost[next_node] = edge_cost + current_cost;
+                 backward_predecessor[next_node] = current_node;
+                 backward_edge[next_node] = graph[*in].id;
+                 backward_queue.push({backward_cost[next_node], next_node});
+             }
+         }
+         backward_finished[current_node] = true;
+     }
+};
+
+}  // namespace bidirectional
+}  // namespace pgrouting
+
+#endif  // INCLUDE_BDDIJKSTRA_PGR_BDDIJKSTRA_HPP_
diff --git a/include/c_common/README.md b/include/c_common/README.md
new file mode 100644
index 0000000..e850971
--- /dev/null
+++ b/include/c_common/README.md
@@ -0,0 +1,19 @@
+Purpose of this directory
+----------------------------------
+
+- Directory having files included exclusively by the `*.c` files
+- forbidden to be used on c++ code
+  - this prohibition is not enforced but will be in the future
+
+- Convention:
+  - files must end with `_input`
+
+
+Example
+----------------------------------
+
+in `foo.c` file
+
+    #include "c_common/edges_input.h"
+    #include "c_common/arrays_input.h"
+
diff --git a/include/c_common/arrays_input.h b/include/c_common/arrays_input.h
new file mode 100644
index 0000000..d58ba1e
--- /dev/null
+++ b/include/c_common/arrays_input.h
@@ -0,0 +1,52 @@
+/*PGR-GNU*****************************************************************
+File: arrays_input.h
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_C_COMMON_ARRAYS_INPUT_H_
+#define INCLUDE_C_COMMON_ARRAYS_INPUT_H_
+#pragma once
+
+
+// first file to include
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-pedantic"
+#endif
+
+#include <postgres.h>
+
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
+
+// for ArrayType
+#include "utils/array.h"
+#include <stdint.h>
+
+
+/** @brief enforces the input array to be @b NOT empty */
+int64_t* pgr_get_bigIntArray(size_t *arrlen, ArrayType *input);
+
+/** @brief Allows the input array to be empty */
+int64_t* pgr_get_bigIntArray_allowEmpty(size_t *arrlen, ArrayType *input);
+
+#endif  // INCLUDE_C_COMMON_ARRAYS_INPUT_H_
diff --git a/include/c_common/coordinates_input.h b/include/c_common/coordinates_input.h
new file mode 100644
index 0000000..061d528
--- /dev/null
+++ b/include/c_common/coordinates_input.h
@@ -0,0 +1,40 @@
+/*PGR-GNU*****************************************************************
+File: coordinates_input.h
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+#ifndef INCLUDE_C_COMMON_COORDINATES_INPUT_H_
+#define INCLUDE_C_COMMON_COORDINATES_INPUT_H_
+#pragma once
+
+#include "c_types/coordinate_t.h"
+
+/*!
+  bigint id,
+  float x,
+  float y,
+  */
+void pgr_get_coordinates(
+        char *sql,
+        Coordinate_t **coordinates,
+        size_t *total_coordinates);
+
+#endif  // INCLUDE_C_COMMON_COORDINATES_INPUT_H_
diff --git a/include/c_common/debug_macro.h b/include/c_common/debug_macro.h
new file mode 100644
index 0000000..d96b094
--- /dev/null
+++ b/include/c_common/debug_macro.h
@@ -0,0 +1,40 @@
+/*PGR-GNU*****************************************************************
+
+File: debug_macro.h
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_C_COMMON_DEBUG_MACRO_H_
+#define INCLUDE_C_COMMON_DEBUG_MACRO_H_
+#pragma once
+
+#ifndef NDEBUG
+
+#include "c_common/postgres_connection.h"
+
+#define PGR_DBG(...) \
+    elog(DEBUG3, __VA_ARGS__)
+#else
+#define PGR_DBG(...) do { ; } while (0)
+#endif
+
+#endif  // INCLUDE_C_COMMON_DEBUG_MACRO_H_
diff --git a/include/c_common/e_report.h b/include/c_common/e_report.h
new file mode 100644
index 0000000..74a6186
--- /dev/null
+++ b/include/c_common/e_report.h
@@ -0,0 +1,138 @@
+/*PGR-GNU*****************************************************************
+File: e_report.h
+
+Function's developer:
+Copyright (c) 2016 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_C_COMMON_E_REPORT_H_
+#define INCLUDE_C_COMMON_E_REPORT_H_
+#pragma once
+
+/*! @name Postgres ereport
+ *  Send notice or error to postgreSQL (cleans the char *)
+ *
+ *  From the C++ err_msg, log_msg, notice_msg are returned as a (char *),
+ *
+ *  Before exiting the C code the pointers need to be freed:
+ *   - This task can be done when there is no error,
+ *   - Call to ERROR, gives the control back to postgreSQL 
+ *     - leaves a leak
+ *
+ * on C++ side, the message to be returned;
+ * ~~~~{.c}
+ * std::ostringstream log;
+ * log << "the messaage";
+ * log_msg = strdup(log.str().c_str());
+ * ~~~~
+ *
+ *
+ *  The char* messages are cleared.
+ *  New messages are made with palloc
+ *
+ *  when there is ERROR then postgreSQL takes over control
+ *
+ *  @warning When error: Free all data not created with palloc before calling
+ *
+ */
+///@{
+/*! @brief notice & error
+ *
+ *  ~~~~{.c}
+ *  pgr_notice(&log_msg, &notice_msg, &error_msg);
+ *
+ *  precondition: before calling ereport
+ *      assert(!*log_msg);
+ *      assert(!*notice_msg);
+ *      assert(!*error_msg);
+ *  ~~~~
+ */
+void
+pgr_global_report(
+        char* log_msg,
+        char* notice_msg,
+        char* error_msg);
+
+/*! @brief notice with no hint
+ *
+ *  ~~~~{.c}
+ *  pgr_notice(&log_msg, &notice_msg);
+ *
+ *  precondition: before calling ereport
+ *      assert(!log_msg);
+ *      assert(!notice_msg);
+ *  ~~~~
+ */
+void
+pgr_notice(
+        char* notice_msg);
+
+/*! @brief notice with hint
+ *
+ *  ~~~~{.c}
+ *  pgr_notice(&log_msg, &notice_msg);
+ *
+ *  precondition: before calling ereport
+ *      assert(!log_msg);
+ *      assert(!notice_msg);
+ *  ~~~~
+ */
+void
+pgr_notice2(
+        char* log_msg,
+        char* notice_msg);
+
+/*! @brief error with no hint
+ *
+ * 
+ *  ~~~~{.c}
+ *  if (err_msg) {
+ *      pfree(<data>);
+ *  }
+ *  pgr_error(&error_msg);
+ *
+ *  precondition: before calling ereport
+ *      assert(!*error_msg);
+ *  ~~~~
+ */
+void
+pgr_error(char* error_msg);
+
+/*! @brief error with hint
+ *
+ *  ~~~~{.c}
+ *  if (err_msg) {
+ *      pfree(<data>);
+ *  }
+ *  pgr_error(&log_msg, &error_msg);
+ *
+ *  precondition: before calling ereport
+ *      assert(!*log_msg);
+ *      assert(!*error_msg);
+ *  ~~~~
+ */
+void
+pgr_error2(
+        char* log_msg,
+        char* error_msg);
+///@}
+
+#endif  // INCLUDE_C_COMMON_E_REPORT_H_
diff --git a/include/c_common/edges_input.h b/include/c_common/edges_input.h
new file mode 100644
index 0000000..cd4c609
--- /dev/null
+++ b/include/c_common/edges_input.h
@@ -0,0 +1,159 @@
+/*PGR-GNU*****************************************************************
+File: edges_input.h
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_C_COMMON_EDGES_INPUT_H_
+#define INCLUDE_C_COMMON_EDGES_INPUT_H_
+#pragma once
+
+#include "c_types/pgr_flow_t.h"
+#include "c_types/pgr_basic_edge_t.h"
+#include "c_types/pgr_edge_t.h"
+#include "c_types/pgr_edge_xy_t.h"
+
+
+/*! @brief edges_sql without id parameter
+ 
+~~~~{.c}
+SELECT source, target, cost, [reverse_cost]
+FROM edge_table;
+~~~~
+
+Currently used in: allpairs
+
+ at param[in] edges_sql
+ at param[out] edges
+ at param[out] total_edges
+*/
+void pgr_get_edges_no_id(
+        char *edges_sql,
+        pgr_edge_t **edges,
+        size_t *total_edges);
+
+
+
+/*! @brief basic edge_sql
+
+For queries of the type:
+~~~~{.c}
+SELECT id, source, target, cost, [reverse_cost]
+FROM edge_table;
+~~~~
+
+ at param[in] edges_sql
+ at param[out] edges
+ at param[out] total_edges
+*/
+void pgr_get_edges(
+        char *edges_sql,
+        pgr_edge_t **edges,
+        size_t *total_edges);
+void pgr_get_edges_reversed(
+        char *edges_sql,
+        pgr_edge_t **edges,
+        size_t *total_edges);
+
+
+
+/*! @brief Edges with x, y vertices values
+
+For queries of the type:
+~~~~{.c}
+SELECT id, source, target, cost, [reverse_cost], x1, y1, x2, y2
+FROM edge_table;
+~~~~
+
+ at param[in] edges_sql
+ at param[out] edges
+ at param[out] total_edges
+*/
+void pgr_get_edges_xy(
+        char *edges_sql,
+        Pgr_edge_xy_t **edges,
+        size_t *total_edges);
+
+/*! @brief for many to 1 on aStar
+
+Used internally
+
+Transforms queries of the type:
+~~~~{.c}
+SELECT id, source, target, cost, [reverse_cost], x1, y1, x2, y2
+FROM edge_table;
+~~~~
+
+to
+~~~~{.c}
+SELECT id, target, source, cost, [reverse_cost], x1, y1, x2, y2
+FROM edge_table;
+~~~~
+
+ at param[in] edges_sql
+ at param[out] edges
+ at param[out] total_edges
+*/
+void pgr_get_edges_xy_reversed(
+        char *edges_sql,
+        Pgr_edge_xy_t **edges,
+        size_t *total_edges);
+
+
+/*! @brief read edges for flow
+
+Edges:
+
+bigint id,
+bigint source,
+bigint target,
+bigint capacity,
+bigint reverse_capacity
+
+ at param[in] sql
+ at param[out] edges
+ at param[out] total_edges
+*/
+void pgr_get_flow_edges(
+    char *sql,
+    pgr_edge_t **edges,
+    size_t *total_edges);
+
+/*! @brief read basic edges
+
+For queries of the type:
+~~~~{.c}
+SELECT id, source, target, going, [coming]
+FROM edge_table;
+~~~~
+
+ at param[in] sql
+ at param[out] edges
+ at param[out] total_edges
+*/
+void pgr_get_basic_edges(
+    char *sql,
+    pgr_basic_edge_t **edges,
+    size_t *total_edges);
+
+
+
+#endif  // INCLUDE_C_COMMON_EDGES_INPUT_H_
diff --git a/include/c_common/get_check_data.h b/include/c_common/get_check_data.h
new file mode 100644
index 0000000..5aead0d
--- /dev/null
+++ b/include/c_common/get_check_data.h
@@ -0,0 +1,70 @@
+/*PGR-GNU*****************************************************************
+File: get_check_data.h
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_C_COMMON_GET_CHECK_DATA_H_
+#define INCLUDE_C_COMMON_GET_CHECK_DATA_H_
+#pragma once
+
+#include "c_common/postgres_connection.h"
+#include "c_types/column_info_t.h"
+
+bool column_found(int colNumber);
+
+void pgr_fetch_column_info(
+        Column_info_t info[],
+        int info_size);
+
+void pgr_check_any_integer_type(Column_info_t info);
+void pgr_check_any_numerical_type(Column_info_t info);
+void pgr_check_char_type(Column_info_t info);
+void pgr_check_text_type(Column_info_t info);
+void pgr_check_boolean_type(Column_info_t info);
+void pgr_check_any_integerarray_type(Column_info_t info);
+
+
+char pgr_SPI_getChar(
+        HeapTuple *tuple,
+        TupleDesc *tupdesc,
+        Column_info_t info,
+        bool strict,
+        char default_value);
+
+int64_t pgr_SPI_getBigInt(
+        HeapTuple *tuple,
+        TupleDesc *tupdesc,
+        Column_info_t info);
+
+double  pgr_SPI_getFloat8(
+        HeapTuple *tuple,
+        TupleDesc *tupdesc,
+        Column_info_t info);
+
+char* pgr_SPI_getText(
+        HeapTuple *tuple,
+        TupleDesc *tupdesc,
+        Column_info_t info);
+
+char* pgr_stradd(const char *a, const char *b);
+
+#endif  // INCLUDE_C_COMMON_GET_CHECK_DATA_H_
diff --git a/include/c_common/matrixRows_input.h b/include/c_common/matrixRows_input.h
new file mode 100644
index 0000000..7e833b9
--- /dev/null
+++ b/include/c_common/matrixRows_input.h
@@ -0,0 +1,41 @@
+/*PGR-GNU*****************************************************************
+File: distances_input.h
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_C_COMMON_MATRIXROWS_INPUT_H_
+#define INCLUDE_C_COMMON_MATRIXROWS_INPUT_H_
+#pragma once
+
+#include "c_types/matrix_cell_t.h"
+
+/*!
+  bigint start_vid,
+  bigint end_vid,
+  float agg_cost,
+  */
+void pgr_get_matrixRows(
+        char *sql,
+        Matrix_cell_t **distaces,
+        size_t *total_distances);
+
+#endif  // INCLUDE_C_COMMON_MATRIXROWS_INPUT_H_
diff --git a/include/c_common/orders_input.h b/include/c_common/orders_input.h
new file mode 100644
index 0000000..4ac3746
--- /dev/null
+++ b/include/c_common/orders_input.h
@@ -0,0 +1,55 @@
+/*PGR-GNU*****************************************************************
+File: orders_input.h
+
+Copyright (c) 2016 Celia Virginia Vergara Castillo
+vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_C_COMMON_ORDERS_INPUT_H_
+#define INCLUDE_C_COMMON_ORDERS_INPUT_H_
+#pragma once
+
+#include "c_types/pickDeliver/pickDeliveryOrders_t.h"
+
+/** @brief Reads the pick-Deliver orders
+ *
+ * @param[in] pd_orders_sql
+ * @param[out] pd_orders
+ * @param[out] total_pd_orders
+ */
+void
+pgr_get_pd_orders(
+        char *pd_orders_sql,
+        PickDeliveryOrders_t **pd_orders,
+        size_t *total_pd_orders);
+
+/** @brief Reads the pick-Deliver orders
+ *
+ * @param[in] pd_orders_sql
+ * @param[out] pd_orders
+ * @param[out] total_pd_orders
+ */
+void
+pgr_get_pd_orders_with_id(
+        char *pd_orders_sql,
+        PickDeliveryOrders_t **pd_orders,
+        size_t *total_pd_orders);
+
+#endif  // INCLUDE_C_COMMON_ORDERS_INPUT_H_
diff --git a/include/c_common/points_input.h b/include/c_common/points_input.h
new file mode 100644
index 0000000..d5ece7b
--- /dev/null
+++ b/include/c_common/points_input.h
@@ -0,0 +1,50 @@
+/*PGR-GNU*****************************************************************
+File: points_input.h
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_C_COMMON_POINTS_INPUT_H_
+#define INCLUDE_C_COMMON_POINTS_INPUT_H_
+#pragma once
+
+#include "c_types/point_on_edge_t.h"
+
+/*! @brief pgr_get_points 
+
+For queries of the type:
+~~~~{.c}
+SELECT pid, edge_id, fraction, [side]
+FROM edge_table;
+~~~~
+
+ at param[in] points_sql
+ at param[out] points
+ at param[out] total_points
+*/
+void pgr_get_points(
+        char *points_sql,
+        Point_on_edge_t **points,
+        size_t *total_points);
+
+
+
+#endif  // INCLUDE_C_COMMON_POINTS_INPUT_H_
diff --git a/include/c_common/postgres_connection.h b/include/c_common/postgres_connection.h
new file mode 100644
index 0000000..163cf3a
--- /dev/null
+++ b/include/c_common/postgres_connection.h
@@ -0,0 +1,99 @@
+/*PGR-GNU*****************************************************************
+File: postgres_connection.h
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+#ifndef INCLUDE_C_COMMON_POSTGRES_CONNECTION_H_
+#define INCLUDE_C_COMMON_POSTGRES_CONNECTION_H_
+#pragma once
+
+
+
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-pedantic"
+#endif
+
+#ifdef __clang__
+#pragma clang diagnostic ignored "-pedantic"
+#endif
+
+#include <postgres.h>
+
+
+
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-Wsign-conversion"
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#endif
+
+#ifdef __clang__
+#pragma clang diagnostic ignored "-Wsign-conversion"
+#pragma clang diagnostic ignored "-Wunused-parameter"
+#endif
+
+#include "executor/spi.h"
+
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#pragma GCC diagnostic pop
+#pragma GCC diagnostic pop
+#endif
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#pragma clang diagnostic pop
+#pragma clang diagnostic pop
+#endif
+
+#include "utils/builtins.h"  // for text_to_cstring
+
+#if PGSQL_VERSION > 92
+#include "access/htup_details.h"
+#endif
+
+#ifdef __clang__
+#pragma clang diagnostic ignored "-Wunused-parameter"
+#endif
+
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#endif
+
+#include <funcapi.h>
+#include <fmgr.h>
+
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
+
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+
+void pgr_send_error(int errcode);
+void pgr_SPI_finish(void);
+void pgr_SPI_connect(void);
+SPIPlanPtr pgr_SPI_prepare(char* sql);
+Portal pgr_SPI_cursor_open(SPIPlanPtr SPIplan);
+char* pgr_cstring2char(const char *inStr);
+
+#endif  // INCLUDE_C_COMMON_POSTGRES_CONNECTION_H_
diff --git a/include/c_common/restrict_input.h b/include/c_common/restrict_input.h
new file mode 100644
index 0000000..fc76a0f
--- /dev/null
+++ b/include/c_common/restrict_input.h
@@ -0,0 +1,38 @@
+/*PGR-GNU*****************************************************************
+File: restrict_input.h
+
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+/*! @file */
+
+
+#ifndef INCLUDE_C_COMMON_RESTRICT_INPUT_H_
+#define INCLUDE_C_COMMON_RESTRICT_INPUT_H_
+#pragma once
+
+#include "c_types/restrict_t.h"
+
+void pgr_get_restriction_data(
+        char *restrictions_sql,
+        Restrict_t **restrictions,
+        size_t *total_restrictions);
+
+#endif  // INCLUDE_C_COMMON_RESTRICT_INPUT_H_
diff --git a/include/c_common/restrictions_input.h b/include/c_common/restrictions_input.h
new file mode 100644
index 0000000..8e69bfe
--- /dev/null
+++ b/include/c_common/restrictions_input.h
@@ -0,0 +1,36 @@
+/*PGR-GNU*****************************************************************
+File: restrictions_input.h
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_C_COMMON_RESTRICTIONS_INPUT_H_
+#define INCLUDE_C_COMMON_RESTRICTIONS_INPUT_H_
+#pragma once
+
+#include "c_types/restrict_t.h"
+
+void pgr_get_restriction_data(
+        char *restrictions_sql,
+        Restrict_t **restructions,
+        size_t *total_restrictions);
+
+#endif  // INCLUDE_C_COMMON_RESTRICTIONS_INPUT_H_
diff --git a/include/c_common/time_msg.h b/include/c_common/time_msg.h
new file mode 100644
index 0000000..04a6b9a
--- /dev/null
+++ b/include/c_common/time_msg.h
@@ -0,0 +1,35 @@
+/*PGR-GNU*****************************************************************
+
+FILE: time_msg.h
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_C_COMMON_TIME_MSG_H_
+#define INCLUDE_C_COMMON_TIME_MSG_H_
+#pragma once
+
+#include <time.h>
+#include <stdio.h>
+
+void time_msg(char *msg, clock_t start_t, clock_t end_t);
+
+#endif  // INCLUDE_C_COMMON_TIME_MSG_H_
diff --git a/include/c_common/vehicles_input.h b/include/c_common/vehicles_input.h
new file mode 100644
index 0000000..4f2d661
--- /dev/null
+++ b/include/c_common/vehicles_input.h
@@ -0,0 +1,55 @@
+/*PGR-GNU*****************************************************************
+File: vehicles_input.h
+
+Copyright (c) 2016 Celia Virginia Vergara Castillo
+vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_C_COMMON_VEHICLES_INPUT_H_
+#define INCLUDE_C_COMMON_VEHICLES_INPUT_H_
+#pragma once
+
+#include "c_types/pickDeliver/vehicle_t.h"
+
+/** @brief Reads the vehicles orders
+ *
+ * @param[in] vehicles_sql
+ * @param[out] vehicles
+ * @param[out] total_vehicles
+ */
+void
+pgr_get_vehicles(
+        char *vehicles_sql,
+        Vehicle_t **vehicles,
+        size_t *total_vehicles);
+
+/** @brief Reads the vehicles orders
+ *
+ * @param[in] vehicles_sql
+ * @param[out] vehicles
+ * @param[out] total_vehicles
+ */
+void
+pgr_get_vehicles_with_id(
+        char *vehicles_sql,
+        Vehicle_t **vehicles,
+        size_t *total_vehicles);
+
+#endif  // INCLUDE_C_COMMON_VEHICLES_INPUT_H_
diff --git a/include/c_types/column_info_t.h b/include/c_types/column_info_t.h
new file mode 100644
index 0000000..026d7fb
--- /dev/null
+++ b/include/c_types/column_info_t.h
@@ -0,0 +1,80 @@
+/*PGR-GNU*****************************************************************
+File: pgr_types.h
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+/*! @file */
+
+#ifndef INCLUDE_C_TYPES_COLUMN_INFO_T_H_
+#define INCLUDE_C_TYPES_COLUMN_INFO_T_H_
+#pragma once
+
+
+#ifdef __cplusplus
+
+#include <cstddef>
+
+#else  // __cplusplus
+
+// for bool
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-pedantic"
+#endif
+
+#include <postgres.h>
+
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
+
+// For NULL & size_t
+#include <stdlib.h>
+
+
+#endif  // __cplusplus
+
+// For int64_t etc
+#include <stdint.h>
+
+
+
+// used for getting the data
+typedef
+enum {
+    ANY_INTEGER,
+    ANY_NUMERICAL,
+    TEXT,
+    CHAR1,
+    ANY_INTEGER_ARRAY
+} expectType;
+
+
+typedef
+struct {
+    int colNumber;
+    uint64_t type;
+    bool strict;
+    char *name;
+    expectType eType;
+} Column_info_t;
+
+
+#endif  // INCLUDE_C_TYPES_COLUMN_INFO_T_H_
diff --git a/include/c_types/contracted_rt.h b/include/c_types/contracted_rt.h
new file mode 100644
index 0000000..23864fa
--- /dev/null
+++ b/include/c_types/contracted_rt.h
@@ -0,0 +1,71 @@
+/*PGR-GNU*****************************************************************
+File: contracted_rt.h
+
+Copyright (c) 2017 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+/*! @file */
+
+#ifndef INCLUDE_C_TYPES_CONTRACTED_RT_H_
+#define INCLUDE_C_TYPES_CONTRACTED_RT_H_
+#pragma once
+
+
+#ifdef __cplusplus
+
+#include <cstddef>
+
+#else  // __cplusplus
+
+// for bool
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-pedantic"
+#endif
+
+#include <postgres.h>
+
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
+
+// For NULL & size_t
+#include <stdlib.h>
+
+
+#endif  // __cplusplus
+
+// For int64_t etc
+#include <stdint.h>
+
+
+/**************************************************************************
+ * return type for contraction
+ * ***********************************************************************/
+typedef struct {
+    int64_t id;
+    char* type;
+    int64_t source;
+    int64_t target;
+    double cost;
+    int64_t *contracted_vertices;
+    int contracted_vertices_size;
+} contracted_rt;
+
+#endif  // INCLUDE_C_TYPES_CONTRACTED_RT_H_
diff --git a/include/c_types/coordinate_t.h b/include/c_types/coordinate_t.h
new file mode 100644
index 0000000..93f1114
--- /dev/null
+++ b/include/c_types/coordinate_t.h
@@ -0,0 +1,63 @@
+/*PGR-GNU*****************************************************************
+File: coordinate_t.h
+
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+/*! @file */
+
+#ifndef INCLUDE_C_TYPES_COORDINATE_T_H_
+#define INCLUDE_C_TYPES_COORDINATE_T_H_
+#pragma once
+
+
+#ifdef __cplusplus
+
+#include <cstddef>
+
+#else  // __cplusplus
+
+// for bool
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-pedantic"
+#endif
+
+#include <postgres.h>
+
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
+
+// For NULL & size_t
+#include <stdlib.h>
+
+
+#endif  // __cplusplus
+
+// For int64_t etc
+#include <stdint.h>
+
+typedef struct  {
+    int64_t id;
+    double x;
+    double y;
+} Coordinate_t;
+
+#endif  // INCLUDE_C_TYPES_COORDINATE_T_H_
diff --git a/include/c_types/general_path_element_t.h b/include/c_types/general_path_element_t.h
new file mode 100644
index 0000000..265e517
--- /dev/null
+++ b/include/c_types/general_path_element_t.h
@@ -0,0 +1,68 @@
+/*PGR-GNU*****************************************************************
+File: general_path_element_t.h
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+/*! @file */
+
+#ifndef INCLUDE_C_TYPES_GENERAL_PATH_ELEMENT_T_H_
+#define INCLUDE_C_TYPES_GENERAL_PATH_ELEMENT_T_H_
+#pragma once
+
+
+#ifdef __cplusplus
+
+#include <cstddef>
+
+#else  // __cplusplus
+
+// for bool
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-pedantic"
+#endif
+
+#include <postgres.h>
+
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
+
+// For NULL & size_t
+#include <stdlib.h>
+
+
+#endif  // __cplusplus
+
+// For int64_t etc
+#include <stdint.h>
+
+
+typedef struct {
+    int seq;
+    int64_t start_id;
+    int64_t end_id;
+    int64_t node;
+    int64_t edge;
+    double cost;
+    double agg_cost;
+} General_path_element_t;
+
+#endif  // INCLUDE_C_TYPES_GENERAL_PATH_ELEMENT_T_H_
diff --git a/include/c_types/graph_enum.h b/include/c_types/graph_enum.h
new file mode 100644
index 0000000..acb3dbd
--- /dev/null
+++ b/include/c_types/graph_enum.h
@@ -0,0 +1,33 @@
+/*PGR-GNU*****************************************************************
+File: pgr_types.h
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+/*! @file */
+
+#ifndef INCLUDE_C_TYPES_GRAPH_ENUM_H_
+#define INCLUDE_C_TYPES_GRAPH_ENUM_H_
+#pragma once
+
+enum graphType {UNDIRECTED = 0, DIRECTED};
+
+
+#endif  // INCLUDE_C_TYPES_GRAPH_ENUM_H_
diff --git a/include/c_types/line_graph_rt.h b/include/c_types/line_graph_rt.h
new file mode 100644
index 0000000..a570fd8
--- /dev/null
+++ b/include/c_types/line_graph_rt.h
@@ -0,0 +1,71 @@
+/*PGR-GNU*****************************************************************
+File: line_graph_rt.h
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2017 Vidhan Jain
+Mail: vidhanj1307 at gmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+/*! @file */
+
+#ifndef INCLUDE_C_TYPES_LINE_GRAPH_RT_H_
+#define INCLUDE_C_TYPES_LINE_GRAPH_RT_H_
+#pragma once
+
+
+#ifdef __cplusplus
+
+#include <cstddef>
+
+#else  // __cplusplus
+
+// for bool
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-pedantic"
+#endif
+
+#include <postgres.h>
+
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
+
+// For NULL & size_t
+#include <stdlib.h>
+
+
+#endif  // __cplusplus
+
+// For int64_t etc
+#include <stdint.h>
+
+
+typedef struct {
+    int64_t id;
+    int64_t source;
+    int64_t target;
+    float cost;
+    float reverse_cost;
+} Line_graph_rt;
+
+#endif  // INCLUDE_C_TYPES_LINE_GRAPH_RT_H_
diff --git a/include/c_types/matrix_cell_t.h b/include/c_types/matrix_cell_t.h
new file mode 100644
index 0000000..ee237ed
--- /dev/null
+++ b/include/c_types/matrix_cell_t.h
@@ -0,0 +1,64 @@
+/*PGR-GNU*****************************************************************
+File: matrix_cell_t.h
+
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+/*! @file */
+
+#ifndef INCLUDE_C_TYPES_MATRIX_CELL_T_H_
+#define INCLUDE_C_TYPES_MATRIX_CELL_T_H_
+#pragma once
+
+
+#ifdef __cplusplus
+
+#include <cstddef>
+
+#else  // __cplusplus
+
+// for bool
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-pedantic"
+#endif
+
+#include <postgres.h>
+
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
+
+// For NULL & size_t
+#include <stdlib.h>
+
+
+#endif  // __cplusplus
+
+// For int64_t etc
+#include <stdint.h>
+
+
+typedef struct matrix_cell {
+    int64_t from_vid;
+    int64_t to_vid;
+    double cost;
+} Matrix_cell_t;
+
+#endif  // INCLUDE_C_TYPES_MATRIX_CELL_T_H_
diff --git a/include/c_types/pgr_basic_edge_t.h b/include/c_types/pgr_basic_edge_t.h
new file mode 100644
index 0000000..e8507ec
--- /dev/null
+++ b/include/c_types/pgr_basic_edge_t.h
@@ -0,0 +1,67 @@
+/*PGR-GNU*****************************************************************
+File: pgr_basic_edge_t.h
+
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+/*! @file */
+
+#ifndef INCLUDE_C_TYPES_PGR_BASIC_EDGE_T_H_
+#define INCLUDE_C_TYPES_PGR_BASIC_EDGE_T_H_
+#pragma once
+
+
+#ifdef __cplusplus
+
+#include <cstddef>
+
+#else  // __cplusplus
+
+// for bool
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-pedantic"
+#endif
+
+#include <postgres.h>
+
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
+
+// For NULL & size_t
+#include <stdlib.h>
+
+
+#endif  // __cplusplus
+
+// For int64_t etc
+#include <stdint.h>
+
+
+typedef struct {
+  int64_t id;
+  int64_t source;
+  int64_t target;
+  bool going;
+  bool coming;
+  int64_t edge_id;
+} pgr_basic_edge_t;
+
+#endif  // INCLUDE_C_TYPES_PGR_BASIC_EDGE_T_H_
diff --git a/include/c_types/pgr_components_rt.h b/include/c_types/pgr_components_rt.h
new file mode 100644
index 0000000..56c1146
--- /dev/null
+++ b/include/c_types/pgr_components_rt.h
@@ -0,0 +1,64 @@
+/*PGR-GNU*****************************************************************
+File: pgr_components_rt.h
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+/*! @file */
+
+#ifndef INCLUDE_C_TYPES_PGR_COMPONENTS_RT_H_
+#define INCLUDE_C_TYPES_PGR_COMPONENTS_RT_H_
+#pragma once
+
+
+#ifdef __cplusplus
+
+#include <cstddef>
+
+#else  // __cplusplus
+
+// for bool
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-pedantic"
+#endif
+
+#include <postgres.h>
+
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
+
+// For NULL & size_t
+#include <stdlib.h>
+
+
+#endif  // __cplusplus
+
+// For int64_t etc
+#include <stdint.h>
+
+
+typedef struct {
+	int64_t component;
+	int n_seq;
+	int64_t identifier;
+} pgr_components_rt;
+
+#endif // INCLUDE_C_TYPES_PGR_COMPONENTS_RT_H_
diff --git a/include/c_types/pgr_edge_t.h b/include/c_types/pgr_edge_t.h
new file mode 100644
index 0000000..c6d1ec1
--- /dev/null
+++ b/include/c_types/pgr_edge_t.h
@@ -0,0 +1,66 @@
+/*PGR-GNU*****************************************************************
+File: pgr_edge_t.h
+
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+/*! @file */
+
+#ifndef INCLUDE_C_TYPES_PGR_EDGE_T_H_
+#define INCLUDE_C_TYPES_PGR_EDGE_T_H_
+#pragma once
+
+
+#ifdef __cplusplus
+
+#include <cstddef>
+
+#else  // __cplusplus
+
+// for bool
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-pedantic"
+#endif
+
+#include <postgres.h>
+
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
+
+// For NULL & size_t
+#include <stdlib.h>
+
+
+#endif  // __cplusplus
+
+// For int64_t etc
+#include <stdint.h>
+
+
+typedef struct {
+    int64_t id;
+    int64_t source;
+    int64_t target;
+    double cost;
+    double reverse_cost;
+} pgr_edge_t;
+
+#endif  // INCLUDE_C_TYPES_PGR_EDGE_T_H_
diff --git a/include/c_types/pgr_edge_xy_t.h b/include/c_types/pgr_edge_xy_t.h
new file mode 100644
index 0000000..c4ab046
--- /dev/null
+++ b/include/c_types/pgr_edge_xy_t.h
@@ -0,0 +1,69 @@
+/*PGR-GNU*****************************************************************
+File: pgr_edge_xy_t.h
+
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+/*! @file */
+
+#ifndef INCLUDE_C_TYPES_PGR_EDGE_XY_T_H_
+#define INCLUDE_C_TYPES_PGR_EDGE_XY_T_H_
+#pragma once
+
+
+#ifdef __cplusplus
+
+#include <cstddef>
+
+#else  // __cplusplus
+
+// for bool
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-pedantic"
+#endif
+
+#include <postgres.h>
+
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
+
+// For NULL & size_t
+#include <stdlib.h>
+
+
+#endif  // __cplusplus
+
+// For int64_t etc
+#include <stdint.h>
+
+typedef struct {
+    int64_t id;
+    int64_t source;
+    int64_t target;
+    double cost;
+    double reverse_cost;
+    double x1;
+    double y1;
+    double x2;
+    double y2;
+} Pgr_edge_xy_t;
+
+#endif  // INCLUDE_C_TYPES_PGR_EDGE_XY_T_H_
diff --git a/include/c_types/pgr_flow_t.h b/include/c_types/pgr_flow_t.h
new file mode 100644
index 0000000..e85039b
--- /dev/null
+++ b/include/c_types/pgr_flow_t.h
@@ -0,0 +1,66 @@
+/*PGR-GNU*****************************************************************
+File: pgr_flow_t.h
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+/*! @file */
+
+#ifndef INCLUDE_C_TYPES_PGR_FLOW_T_H_
+#define INCLUDE_C_TYPES_PGR_FLOW_T_H_
+#pragma once
+
+
+#ifdef __cplusplus
+
+#include <cstddef>
+
+#else  // __cplusplus
+
+// for bool
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-pedantic"
+#endif
+
+#include <postgres.h>
+
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
+
+// For NULL & size_t
+#include <stdlib.h>
+
+
+#endif  // __cplusplus
+
+// For int64_t etc
+#include <stdint.h>
+
+
+typedef struct {
+  int64_t edge;
+  int64_t source;
+  int64_t target;
+  int64_t flow;
+  int64_t residual_capacity;
+} pgr_flow_t;
+
+#endif  // INCLUDE_C_TYPES_PGR_FLOW_T_H_
diff --git a/include/c_types/pickDeliver/general_vehicle_orders_t.h b/include/c_types/pickDeliver/general_vehicle_orders_t.h
new file mode 100644
index 0000000..2b51a92
--- /dev/null
+++ b/include/c_types/pickDeliver/general_vehicle_orders_t.h
@@ -0,0 +1,87 @@
+/*PGR-GNU*****************************************************************
+File: general_vehicle_orders_t.h
+
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+/*! @file */
+
+#ifndef INCLUDE_C_TYPES_PICKDELIVER_GENERAL_VEHICLE_ORDERS_T_H_
+#define INCLUDE_C_TYPES_PICKDELIVER_GENERAL_VEHICLE_ORDERS_T_H_
+#pragma once
+
+
+#ifdef __cplusplus
+
+#include <cstddef>
+
+#else  // __cplusplus
+
+// for bool
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-pedantic"
+#endif
+
+#include <postgres.h>
+
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
+
+// For NULL & size_t
+#include <stdlib.h>
+
+
+#endif  // __cplusplus
+
+// For int64_t etc
+#include <stdint.h>
+
+
+/*
+   OUT seq INTEGER,        done in the .c code
+   OUT vehicle_seq INTEGER,
+   OUT vehicle_id INTEGER,
+   OUT order_id BIGINT,
+   OUT travelTime FLOAT,
+   OUT arrivalTime FLOAT,
+   OUT waitTime FLOAT,
+   OUT serviceTime FLOAT,
+   OUT departureTime FLOAT,
+   */
+
+typedef struct  {
+    int vehicle_seq;
+    int64_t vehicle_id;
+    int stop_seq;
+    int64_t order_id;
+    int64_t stop_id;
+    int stop_type;
+    double cargo;
+    double travelTime;
+    double arrivalTime;
+    double waitTime;
+    double serviceTime;
+    double departureTime;
+} General_vehicle_orders_t;
+
+/*************************************************************************/
+
+#endif  // INCLUDE_C_TYPES_PICKDELIVER_GENERAL_VEHICLE_ORDERS_T_H_
diff --git a/include/c_types/pickDeliver/pickDeliveryOrders_t.h b/include/c_types/pickDeliver/pickDeliveryOrders_t.h
new file mode 100644
index 0000000..8b98868
--- /dev/null
+++ b/include/c_types/pickDeliver/pickDeliveryOrders_t.h
@@ -0,0 +1,85 @@
+/*PGR-GNU*****************************************************************
+File: pickDeliveryOrders_t.h
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+/*! @file */
+
+#ifndef INCLUDE_C_TYPES_PICKDELIVER_PICKDELIVERYORDERS_T_H_
+#define INCLUDE_C_TYPES_PICKDELIVER_PICKDELIVERYORDERS_T_H_
+#pragma once
+
+
+#ifdef __cplusplus
+
+#include <cstddef>
+
+#else  // __cplusplus
+
+// for bool
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-pedantic"
+#endif
+
+#include <postgres.h>
+
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
+
+// For NULL & size_t
+#include <stdlib.h>
+
+
+#endif  // __cplusplus
+
+// For int64_t etc
+#include <stdint.h>
+
+
+/**************************************************************************
+ * pickDelivery types
+ * ***********************************************************************/
+/*
+ * its with either (foo_x, foo_y) pairs (for eucledian or with foo_node_id (for matrix)
+ */
+typedef struct {
+    int64_t id;
+    double demand;
+
+    double pick_x;
+    double pick_y;
+    int64_t pick_node_id;
+
+    double pick_open_t;
+    double pick_close_t;
+    double pick_service_t;
+
+    double deliver_x;
+    double deliver_y;
+    int64_t deliver_node_id;
+
+    double deliver_open_t;
+    double deliver_close_t;
+    double deliver_service_t;
+} PickDeliveryOrders_t;
+
+#endif  // INCLUDE_C_TYPES_PICKDELIVER_PICKDELIVERYORDERS_T_H_
diff --git a/include/c_types/pickDeliver/vehicle_t.h b/include/c_types/pickDeliver/vehicle_t.h
new file mode 100644
index 0000000..8637c34
--- /dev/null
+++ b/include/c_types/pickDeliver/vehicle_t.h
@@ -0,0 +1,85 @@
+/*PGR-GNU*****************************************************************
+File: vehicle_t.h
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+/*! @file */
+
+#ifndef INCLUDE_C_TYPES_PICKDELIVER_VEHICLE_T_H_
+#define INCLUDE_C_TYPES_PICKDELIVER_VEHICLE_T_H_
+#pragma once
+
+
+#ifdef __cplusplus
+
+#include <cstddef>
+
+#else  // __cplusplus
+
+// for bool
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-pedantic"
+#endif
+
+#include <postgres.h>
+
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
+
+// For NULL & size_t
+#include <stdlib.h>
+
+
+#endif  // __cplusplus
+
+// For int64_t etc
+#include <stdint.h>
+
+/*
+ * its with either (foo_x, foo_y) pairs for eucledian or with foo_node_id (for matrix)
+ */
+typedef struct {
+    int64_t id;
+    double capacity;
+    double speed;
+
+    double start_x;
+    double start_y;
+    int64_t start_node_id;
+
+    int64_t cant_v;
+
+    double start_open_t;
+    double start_close_t;
+    double start_service_t;
+
+    double end_x;
+    double end_y;
+    int64_t end_node_id;
+
+    double end_open_t;
+    double end_close_t;
+    double end_service_t;
+} Vehicle_t;
+
+
+#endif  // INCLUDE_C_TYPES_PICKDELIVER_VEHICLE_T_H_
diff --git a/include/c_types/point_on_edge_t.h b/include/c_types/point_on_edge_t.h
new file mode 100644
index 0000000..d9fa19b
--- /dev/null
+++ b/include/c_types/point_on_edge_t.h
@@ -0,0 +1,64 @@
+/*PGR-GNU*****************************************************************
+File: point_on_edge_t.h
+
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+/*! @file */
+
+#ifndef INCLUDE_C_TYPES_POINT_ON_EDGE_T_H_
+#define INCLUDE_C_TYPES_POINT_ON_EDGE_T_H_
+#pragma once
+
+#ifdef __cplusplus
+
+#include <cstddef>
+
+#else  // __cplusplus
+
+// for bool
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-pedantic"
+#endif
+
+#include <postgres.h>
+
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
+
+// For NULL & size_t
+#include <stdlib.h>
+
+
+#endif  // __cplusplus
+
+// For int64_t etc
+#include <stdint.h>
+
+typedef struct {
+    int64_t pid;
+    int64_t edge_id;
+    char side;  // 'r', 'l', 'b' (default is both)
+    double fraction;
+    int64_t vertex_id;  // number is negative and is used for processing
+} Point_on_edge_t;
+
+#endif  // INCLUDE_C_TYPES_POINT_ON_EDGE_T_H_
diff --git a/include/c_types/restrict_t.h b/include/c_types/restrict_t.h
new file mode 100644
index 0000000..de2df5b
--- /dev/null
+++ b/include/c_types/restrict_t.h
@@ -0,0 +1,69 @@
+/*PGR-GNU*****************************************************************
+File: restrict_t.h
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+/*! @file */
+
+#ifndef INCLUDE_C_TYPES_RESTRICT_T_H_
+#define INCLUDE_C_TYPES_RESTRICT_T_H_
+#pragma once
+
+
+#ifdef __cplusplus
+
+#include <cstddef>
+
+#else  // __cplusplus
+
+// for bool
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-pedantic"
+#endif
+
+#include <postgres.h>
+
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
+
+// For NULL & size_t
+#include <stdlib.h>
+
+
+#endif  // __cplusplus
+
+// For int64_t etc
+#include <stdint.h>
+
+
+#define  MAX_RULE_LENGTH 5
+
+typedef struct {
+    int64_t id;
+    double cost;
+    int64_t restricted_edges[MAX_RULE_LENGTH];
+}
+Restrict_t;
+
+
+
+#endif  // INCLUDE_C_TYPES_RESTRICT_T_H_
diff --git a/include/c_types/routes_t.h b/include/c_types/routes_t.h
new file mode 100644
index 0000000..6d948f1
--- /dev/null
+++ b/include/c_types/routes_t.h
@@ -0,0 +1,71 @@
+/*PGR-GNU*****************************************************************
+File: pgr_types.h
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+/*! @file */
+
+#ifndef INCLUDE_C_TYPES_ROUTES_T_H_
+#define INCLUDE_C_TYPES_ROUTES_T_H_
+#pragma once
+
+
+#ifdef __cplusplus
+
+#include <cstddef>
+
+#else  // __cplusplus
+
+// for bool
+#ifdef __GNUC__
+#pragma GCC diagnostic ignored "-pedantic"
+#endif
+
+#include <postgres.h>
+
+#ifdef __GNUC__
+#pragma GCC diagnostic pop
+#endif
+
+// For NULL & size_t
+#include <stdlib.h>
+
+
+#endif  // __cplusplus
+
+// For int64_t etc
+#include <stdint.h>
+
+
+typedef struct {
+    int route_id;
+    int path_id;
+    int path_seq;
+    int64_t start_vid;
+    int64_t end_vid;
+    int64_t node;
+    int64_t edge;
+    double cost;
+    double agg_cost;
+    double route_agg_cost;
+} Routes_t;
+
+#endif  // INCLUDE_C_TYPES_ROUTES_T_H_
diff --git a/include/components/pgr_components.hpp b/include/components/pgr_components.hpp
new file mode 100644
index 0000000..f013ecc
--- /dev/null
+++ b/include/components/pgr_components.hpp
@@ -0,0 +1,249 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Copyright (c) 2017 Maoguang Wang 
+Mail: xjtumg1007 at gmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_COMPONENTS_PGR_COMPONENTS_HPP_
+#define INCLUDE_COMPONENTS_PGR_COMPONENTS_HPP_
+#pragma once
+
+#include <boost/config.hpp>
+#include <boost/graph/adjacency_list.hpp>
+#include <boost/graph/connected_components.hpp>
+#include <boost/graph/strong_components.hpp>
+#include <boost/graph/biconnected_components.hpp>
+
+#include <vector>
+#include <map>
+#include <utility>
+#include <algorithm>
+
+#include "pgr_componentsGraph.hpp"
+
+template < class G > class Pgr_components;
+// user's functions
+// for development
+
+//******************************************
+
+template < class G >
+class Pgr_components {
+ public:
+     typedef typename G::V V;
+     typedef typename G::E E;
+     typedef typename G::E_i E_i;
+
+     //! Connected Components Vertex Version
+     std::vector<pgr_components_rt> connectedComponents(
+             G &graph);
+
+     //! Strongly Connected Components Vertex Version
+     std::vector<pgr_components_rt> strongComponents(
+             G &graph);
+
+     //! Biconnected Components
+     std::vector<pgr_components_rt> biconnectedComponents(
+             G &graph);
+
+     //! Articulation Points
+     std::vector<pgr_components_rt> articulationPoints(
+             G &graph);
+
+     //! Bridges
+     std::vector<pgr_components_rt> bridges(
+             G &graph);
+
+ private:
+     //! Generate Results, Vertex Version
+     std::vector<pgr_components_rt> generate_results(
+             std::vector< std::vector< int64_t > >);
+};
+
+
+/******************** IMPLEMENTTION ******************/
+
+//! Generate Results, Vertex Version
+template < class G >
+std::vector<pgr_components_rt>
+Pgr_components< G >::generate_results(
+        std::vector< std::vector< int64_t > > components) {
+    // sort identifier
+    size_t num_comps = components.size();
+    for (size_t i = 0; i < num_comps; i++) {
+        std::sort(components[i].begin(), components[i].end());
+    }
+    sort(components.begin(), components.end());
+
+    // generate results
+    std::vector< pgr_components_rt > results;
+    for (size_t i = 0; i < num_comps; i++) {
+        int64_t tempComp = components[i][0];
+        size_t sizeCompi = components[i].size();
+        for (size_t j = 0; j < sizeCompi; j++) {
+            pgr_components_rt tmp;
+            tmp.identifier = components[i][j];
+            tmp.n_seq = static_cast< int > (j + 1);
+            tmp.component = tempComp;
+            results.push_back(tmp);
+        }
+    }
+    return results;
+}
+
+//! Connected Components Vertex Version
+template < class G >
+std::vector<pgr_components_rt>
+Pgr_components< G >::connectedComponents(
+        G &graph) {
+    size_t totalNodes = num_vertices(graph.graph);
+
+    // perform the algorithm
+    std::vector< int > components(totalNodes);
+    int num_comps = boost::connected_components(graph.graph, &components[0]);
+
+    // get the results
+    std::vector< std::vector< int64_t > > results;
+    results.resize(num_comps);
+    for (size_t i = 0; i < totalNodes; i++)
+        results[components[i]].push_back(graph[i].id);
+
+    return generate_results(results);
+}
+
+//! Strongly Connected Components Vertex Version
+template < class G >
+std::vector<pgr_components_rt>
+Pgr_components< G >::strongComponents(
+        G &graph) {
+    size_t totalNodes = num_vertices(graph.graph);
+
+    // perform the algorithm
+    std::vector< int > components(totalNodes);
+    int num_comps = boost::strong_components(graph.graph,
+            boost::make_iterator_property_map(components.begin(),
+                                              get(boost::vertex_index,
+                                                  graph.graph)));
+
+    // get the results
+    std::vector< std::vector< int64_t > > results;
+    results.resize(num_comps);
+    for (size_t i = 0; i < totalNodes; i++)
+        results[components[i]].push_back(graph[i].id);
+
+    return generate_results(results);
+}
+
+//! Biconnected Components
+template < class G >
+std::vector<pgr_components_rt>
+Pgr_components< G >::biconnectedComponents(
+        G &graph) {
+    // perform the algorithm
+    struct order_edges {
+        bool operator() (const E &left, const E &right) const {
+            return left.get_property() < right.get_property();
+        }
+    };
+    typedef std::map< E, size_t > edge_map;
+    edge_map bicmp_map;
+
+    boost::associative_property_map< edge_map > bimap(bicmp_map);
+    size_t num_comps = biconnected_components(graph.graph, bimap);
+
+    // get the results
+    E_i ei, ei_end;
+    std::vector< std::vector< int64_t > > components(num_comps);
+    for (boost::tie(ei, ei_end) = edges(graph.graph); ei != ei_end; ei++)
+        components[bimap[*ei]].push_back(graph[*ei].id);
+
+    return generate_results(components);
+}
+
+//! Articulation Points
+template < class G >
+std::vector<pgr_components_rt>
+Pgr_components< G >::articulationPoints(
+        G &graph) {
+    // perform the algorithm
+    std::vector <size_t> art_points;
+    boost::articulation_points(graph.graph, std::back_inserter(art_points));
+
+    // get the results
+    std::vector <pgr_components_rt> results;
+    size_t totalArtp = art_points.size();
+    results.resize(totalArtp);
+    for (size_t i = 0; i < totalArtp; i++)
+        results[i].identifier = graph[art_points[i]].id;
+
+    // sort identifier
+    std::sort(results.begin(), results.end(),
+            [](const pgr_components_rt &left, const pgr_components_rt &right) {
+            return left.identifier < right.identifier; });
+
+    return results;
+}
+
+//! Bridges
+template < class G >
+std::vector<pgr_components_rt>
+Pgr_components< G >::bridges(
+        G &graph) {
+    size_t totalNodes = num_vertices(graph.graph);
+    std::vector< int > tmp_comp(totalNodes);
+    std::vector <pgr_components_rt> results;
+    int ini_comps = boost::connected_components(graph.graph, &tmp_comp[0]);
+
+    // perform the algorithm
+    E_i ei, ei_end;
+    std::vector< std::pair<E, int64_t> > stored_edges;
+    for (boost::tie(ei, ei_end) = edges(graph.graph); ei != ei_end; ++ei) {
+        stored_edges.push_back(std::make_pair(*ei, graph[*ei].id));
+    }
+
+    for (const auto pair_edge : stored_edges) {
+        E edge = pair_edge.first;
+
+        boost::remove_edge(edge, graph.graph);
+
+        int now_comps = boost::connected_components(graph.graph, &tmp_comp[0]);
+        if (now_comps > ini_comps) {
+            pgr_components_rt temp;
+            temp.identifier = pair_edge.second;
+            results.push_back(temp);
+        }
+
+        boost::add_edge(boost::source(edge, graph.graph),
+                        boost::target(edge, graph.graph),
+                        graph.graph);
+    }
+
+    // sort identifier
+    std::sort(results.begin(), results.end(),
+            [](const pgr_components_rt &left, const pgr_components_rt &right) {
+            return left.identifier < right.identifier; });
+
+    return results;
+}
+
+#endif  // INCLUDE_COMPONENTS_PGR_COMPONENTS_HPP_
diff --git a/include/components/pgr_componentsGraph.hpp b/include/components/pgr_componentsGraph.hpp
new file mode 100644
index 0000000..8d7df64
--- /dev/null
+++ b/include/components/pgr_componentsGraph.hpp
@@ -0,0 +1,117 @@
+/*PGR-GNU*****************************************************************
+File: pgr_componentsGraph.hpp
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2017 Maoguang Wang 
+Mail: xjtumg1007 at gmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_COMPONENTS_PGR_COMPONENTSGRAPH_HPP_
+#define INCLUDE_COMPONENTS_PGR_COMPONENTSGRAPH_HPP_
+#pragma once
+
+
+#include <vector>
+
+#include "cpp_common/pgr_base_graph.hpp"
+
+
+namespace pgrouting {
+
+namespace graph {
+
+template <class G, typename T_V, typename T_E>
+class Pgr_componentsGraph;
+
+}  // namespace graph
+
+typedef graph::Pgr_componentsGraph <
+boost::adjacency_list < boost::vecS, boost::vecS,
+    boost::undirectedS,
+    Basic_vertex, Basic_edge >,
+    Basic_vertex, Basic_edge > ComponentsUndiGraph;
+
+namespace graph {
+
+template <class G, typename T_V, typename T_E>
+class Pgr_componentsGraph : public Pgr_base_graph<G, T_V, T_E> {
+ public:
+     G graph;
+
+     explicit Pgr_componentsGraph< G, T_V, T_E >(graphType gtype)
+         : Pgr_base_graph< G, T_V, T_E >(gtype) {
+         }
+
+     template < typename T >
+         void insert_edges(const T *edges, int64_t count) {
+             insert_edges(std::vector < T >(edges, edges + count));
+         }
+
+     template <typename T >
+         void insert_edges(const std::vector < T > &edges) {
+             for (const auto edge : edges) {
+                 graph_add_edge(edge);
+             }
+         }
+
+ private:
+    template < typename T >
+    void
+    graph_add_edge(const T &edge) {
+        bool inserted;
+        typename Pgr_base_graph< G, T_V, T_E >::E e;
+        if ((edge.cost < 0) && (edge.reverse_cost < 0))
+            return;
+
+        /*
+         * true: for source
+         * false: for target
+         */
+        auto vm_s = Pgr_base_graph< G, T_V, T_E >::get_V(T_V(edge, true));
+        auto vm_t = Pgr_base_graph< G, T_V, T_E >::get_V(T_V(edge, false));
+
+        pgassert((Pgr_base_graph< G, T_V, T_E >::vertices_map).find(edge.source)
+                 !=
+                 (Pgr_base_graph< G, T_V, T_E >::vertices_map).end());
+        pgassert((Pgr_base_graph< G, T_V, T_E >::vertices_map).find(edge.target)
+                 !=
+                 (Pgr_base_graph< G, T_V, T_E >::vertices_map).end());
+        if (edge.cost >= 0) {
+            boost::tie(e, inserted) =
+                boost::add_edge(vm_s, vm_t, graph);
+            graph[e].cost = edge.cost;
+            graph[e].id = edge.id;
+        } else if (edge.reverse_cost >= 0) {
+            boost::tie(e, inserted) =
+                boost::add_edge(vm_t, vm_s, graph);
+            graph[e].cost = edge.reverse_cost;
+            graph[e].id = edge.id;
+        }
+    }
+};
+
+}  // namespace graph
+}  // namespace pgrouting
+
+#endif  // INCLUDE_COMPONENTS_PGR_COMPONENTSGRAPH_HPP_
diff --git a/include/contraction/pgr_contract.hpp b/include/contraction/pgr_contract.hpp
new file mode 100644
index 0000000..cd38136
--- /dev/null
+++ b/include/contraction/pgr_contract.hpp
@@ -0,0 +1,183 @@
+/*PGR-GNU*****************************************************************
+File: pgr_contract.hpp
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer: 
+Copyright (c) 2016 Rohith Reddy
+Mail: 
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef SRC_CONTRACTION_SRC_PGR_CONTRACT_HPP_
+#define SRC_CONTRACTION_SRC_PGR_CONTRACT_HPP_
+#pragma once
+
+#include <deque>
+#include <vector>
+#include "cpp_common/pgr_assert.h"
+
+#include "./pgr_contractionGraph.hpp"
+#include "./pgr_linearContraction.hpp"
+#include "./pgr_deadEndContraction.hpp"
+
+namespace pgrouting {
+namespace contraction {
+
+
+template < class G >
+class Pgr_contract {
+    typedef typename G::V V;
+
+
+    void perform_deadEnd(G &graph,
+            Identifiers<V> forbidden_vertices,
+            std::ostringstream& debug) {
+        Pgr_deadend<G> deadendContractor;
+        debug << "Setting forbidden_vertices";
+        deadendContractor.setForbiddenVertices(forbidden_vertices);
+
+        deadendContractor.calculateVertices(graph);
+        try {
+            deadendContractor.doContraction(graph);
+        }
+        catch ( ... ) {
+            debug << "Caught unknown exception!\n";
+        }
+    }
+
+
+    void perform_linear(G &graph,
+            Identifiers<V>& forbidden_vertices,
+            std::ostringstream& debug) {
+        std::ostringstream linear_debug;
+        Pgr_linear<G> linearContractor;
+        linearContractor.setForbiddenVertices(forbidden_vertices);
+        linearContractor.calculateVertices(graph);
+        try {
+            linearContractor.doContraction(graph);
+        }
+        catch ( ... ) {
+            linear_debug << "Caught unknown exception!\n";
+        }
+        debug << linear_debug.str().c_str() << "\n";
+    }
+
+
+ public:
+    Pgr_contract(
+            G &graph,
+            Identifiers<V> forbidden_vertices,
+            std::vector<int64_t> contraction_order,
+            int64_t max_cycles,
+            Identifiers<int64_t> &remaining_vertices,
+            std::vector<pgrouting::CH_edge> &shortcut_edges,
+            std::ostringstream& debug) {
+        std::deque<int64_t> contract_order;
+        //  push -1 to indicate the start of the queue
+        contract_order.push_back(-1);
+        contract_order.insert(
+                contract_order.end(),
+                contraction_order.begin(), contraction_order.end());
+        for (int64_t i = 0; i < max_cycles; ++i) {
+            int64_t front = contract_order.front();
+            debug << "Starting cycle " << i+1 << "\n";
+            contract_order.pop_front();
+            contract_order.push_back(front);
+            front = contract_order.front();
+            while (front != -1) {
+                switch (front) {
+                    case -1:
+                        debug << "Finished cycle " << i+1 << std::endl;
+                        break;
+                    default:
+                        debug << "contraction "<< front
+                            << " asked" << std::endl;
+                        if (front == 1) {
+#ifndef NDEBUG
+                            debug << "Graph before dead end contraction"
+                                << std::endl;
+                            graph.print_graph(debug);
+                            debug << "Performing dead end contraction"
+                                << std::endl;
+#endif
+                            perform_deadEnd(graph, forbidden_vertices, debug);
+#ifndef NDEBUG
+                            debug << "Graph after dead end contraction"
+                                << std::endl;
+                            graph.print_graph(debug);
+#endif
+                        } else if (front == 2) {
+#ifndef NDEBUG
+                            debug << "Graph before linear contraction"
+                                << std::endl;
+                            graph.print_graph(debug);
+                            debug << "Performing linear contraction"
+                                << std::endl;
+#endif
+                            perform_linear(graph, forbidden_vertices, debug);
+#ifndef NDEBUG
+                            debug << "Graph after linear contraction"
+                                << std::endl;
+                            graph.print_graph(debug);
+#endif
+                        }
+                        contract_order.pop_front();
+                        contract_order.push_back(front);
+                        front = contract_order.front();
+                }
+            }
+        }
+        remaining_vertices = graph.get_changed_vertices();
+        debug << "Printing shortcuts\n";
+        for (auto shortcut : graph.shortcuts) {
+            debug << shortcut;
+            shortcut_edges.push_back(shortcut);
+        }
+    }
+
+#if 0
+    bool is_valid_contraction_number(int number) {
+        switch (number) {
+            case -2:
+                return false;
+                break;
+            case -1:
+                return false;
+                break;
+            case 0:
+                return true;
+                break;
+            case 1:
+                return true;
+                break;
+            default:
+                return false;
+                break;
+        }
+    }
+#endif
+};
+
+}  // namespace contraction
+}  // namespace pgrouting
+
+#endif  // SRC_CONTRACTION_SRC_PGR_CONTRACT_HPP_
diff --git a/include/contraction/pgr_contractionGraph.hpp b/include/contraction/pgr_contractionGraph.hpp
new file mode 100644
index 0000000..6999680
--- /dev/null
+++ b/include/contraction/pgr_contractionGraph.hpp
@@ -0,0 +1,302 @@
+/*PGR-GNU*****************************************************************
+File: pgr_contractionGraph.hpp
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2016 Rohith Reddy
+Mail:
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+#ifndef SRC_CONTRACTION_SRC_PGR_CONTRACTIONGRAPH_HPP_
+#define SRC_CONTRACTION_SRC_PGR_CONTRACTIONGRAPH_HPP_
+#pragma once
+
+
+#include <limits>
+#include <algorithm>
+#include <vector>
+
+#include "cpp_common/pgr_base_graph.hpp"
+#include "../../common/src/ch_vertex.h"
+#include "../../common/src/ch_edge.h"
+
+
+namespace pgrouting {
+
+namespace graph {
+template <class G, typename T_V, typename T_E>
+class Pgr_contractionGraph;
+}
+
+    typedef  graph::Pgr_contractionGraph <
+    boost::adjacency_list < boost::listS, boost::vecS,
+    boost::undirectedS,
+    CH_vertex, CH_edge >,
+    CH_vertex, CH_edge > CHUndirectedGraph;
+
+    typedef  graph::Pgr_contractionGraph <
+    boost::adjacency_list < boost::listS, boost::vecS,
+    boost::bidirectionalS,
+    CH_vertex, CH_edge >,
+    CH_vertex, CH_edge > CHDirectedGraph;
+
+namespace graph {
+
+template <class G, typename T_V, typename T_E>
+class Pgr_contractionGraph : public Pgr_base_graph<G, T_V, T_E> {
+ public:
+     typedef typename boost::graph_traits < G >::vertex_descriptor V;
+     typedef typename boost::graph_traits < G >::edge_descriptor E;
+     typedef typename boost::graph_traits < G >::vertex_iterator V_i;
+     typedef typename boost::graph_traits < G >::edge_iterator E_i;
+     typedef typename boost::graph_traits < G >::out_edge_iterator EO_i;
+     typedef typename boost::graph_traits < G >::in_edge_iterator EI_i;
+     typedef typename boost::graph_traits < G >::degree_size_type
+         degree_size_type;
+
+     Identifiers<V> removed_vertices;
+     std::vector<T_E> shortcuts;
+
+     /*! @brief Binary function that accepts two elements , and returns a value convertible to bool.
+       Used as a compare function to sort the edges in increasing order of edge id
+       */
+     static bool compareById(const T_E &edge1, const T_E &edge2) {
+         return edge1.id > edge2.id;
+     }
+
+     /*!
+       Prepares the _graph_ to be of type *gtype*
+       */
+     explicit Pgr_contractionGraph< G , T_V, T_E >(graphType gtype)
+         : Pgr_base_graph< G , T_V, T_E >(gtype) {
+         }
+
+     /*! @brief get the vertex descriptors of adjacent vertices of *v*
+       @param [in] v vertex_descriptor
+       @return Identifiers<V>: The set of vertex descriptors adjacent to the given vertex *v*
+       */
+     Identifiers<V> find_adjacent_vertices(V v) const {
+         EO_i out, out_end;
+         EI_i in, in_end;
+         Identifiers<V> adjacent_vertices;
+
+         for (boost::tie(out, out_end) = out_edges(v, this->graph);
+                 out != out_end; ++out) {
+             adjacent_vertices += this->adjacent(v, *out);
+         }
+         for (boost::tie(in, in_end) = in_edges(v, this->graph);
+                 in != in_end; ++in) {
+             adjacent_vertices += this->adjacent(v, *in);
+         }
+         return adjacent_vertices;
+     }
+
+
+     std::vector<int64_t> get_ids(
+             Identifiers<int64_t> boost_ids) const {
+         std::vector<int64_t> ids(boost_ids.size());
+         size_t count = 0;
+         for (auto id : boost_ids) {
+             ids[count++] = this->graph[id].id;
+         }
+         return ids;
+     }
+
+
+     /*! @brief vertices with at least one contracted vertex
+      *
+       @result The vids Identifiers with at least one contracted vertex
+       */
+     Identifiers<int64_t> get_changed_vertices() {
+        Identifiers<int64_t> vids;
+         for (auto vi = vertices(this->graph).first;
+                 vi != vertices(this->graph).second;
+                 ++vi) {
+             if (!removed_vertices.has(*vi)
+                     && this->graph[*vi].has_contracted_vertices()) {
+                 vids += this->graph[*vi].id;
+             }
+         }
+         return vids;
+     }
+
+
+     /*! @brief get the edge with minimum cost between two vertices
+       @param [in] source vertex_descriptor of source vertex
+       @param [in] destination vertex_descriptor of target vertex
+       @return E: The edge descriptor of the edge with minimum cost
+       */
+     E get_min_cost_edge(V source, V destination) {
+         EO_i out_i, out_end;
+         E min_cost_edge;
+         double min_cost = (std::numeric_limits<double>::max)();
+         for (boost::tie(out_i, out_end) =
+                 boost::out_edges(source, this->graph);
+                 out_i != out_end; ++out_i) {
+             auto e = *out_i;
+             if (this->target(e) == destination) {
+                 if (this->graph[e].cost < min_cost) {
+                     min_cost = this->graph[e].cost;
+                     min_cost_edge = e;
+                 }
+             }
+         }
+         return min_cost_edge;
+     }
+
+     /*! @brief The number of edges from @b neighbor to @b vertex
+
+       @param [in] vertex is the target of the edges
+       @param [in] neighbor is the source of the edges
+       @return degree_size_type: The in-degree of *vertex* from *neighbor*
+       */
+     degree_size_type in_degree_from_vertex(V vertex, V neighbor) {
+         return out_degree_to_vertex(neighbor, vertex);
+     }
+
+     /*! @brief The number of edges from @b vertex to @b neighbor
+
+       @param [in] vertex vertex_descriptor of the given vertex
+       @param [in] neighbor vertex_descriptor of neighbor
+       @return degree_size_type: The out-degree of *vertex* to *neighbor*
+       */
+     degree_size_type out_degree_to_vertex(V vertex, V neighbor) {
+         degree_size_type degree = 0;
+         EO_i out_i, out_end;
+         for (boost::tie(out_i, out_end) =
+                 boost::out_edges(vertex, this->graph);
+                 out_i != out_end; ++out_i) {
+             if (this->is_directed()
+                     && (this->is_source(vertex, *out_i)
+                         && this->is_target(neighbor, *out_i))) {
+                 degree++;
+             } else if (this->is_undirected() &&
+                     this->adjacent(vertex, *out_i) == neighbor) {
+                 degree++;
+             }
+         }
+         return degree;
+     }
+
+
+     /*! @brief print the graph with contracted vertices of
+       all vertices and edges
+       */
+     void print_graph(std::ostringstream &log) {
+         EO_i out, out_end;
+         for (auto vi = vertices(this->graph).first;
+                 vi != vertices(this->graph).second;
+                 ++vi) {
+             if ((*vi) >= this->m_num_vertices) break;
+             log << this->graph[*vi].id << "(" << (*vi) << ")"
+                 << this->graph[*vi].contracted_vertices() << std::endl;
+             log << " out_edges_of(" << this->graph[*vi].id << "):";
+             for (boost::tie(out, out_end) = out_edges(*vi, this->graph);
+                     out != out_end; ++out) {
+                 log << ' ' << this->graph[*out].id
+                     << "=(" << this->graph[this->source(*out)].id
+                     << ", " << this->graph[this->target(*out)].id << ") = "
+                     <<  this->graph[*out].cost <<"\t";
+             }
+             log << std::endl;
+         }
+     }
+
+
+
+     /*! @brief get the contracted vertex ids of a given vertex in array format
+       @param [in] vid vertex_id
+
+       @returns ids of contracted_vertices
+       */
+     std::vector<int64_t> get_contracted_vertices(int64_t vid) {
+         if (!this->has_vertex(vid)) return std::vector<int64_t>();
+         auto  v = this->get_V(vid);
+         std::vector<int64_t> ids(this->graph[v].contracted_vertices().size());
+
+         size_t count = 0;
+         for (auto idx :  this->graph[v].contracted_vertices()) {
+             ids[count++] =  this->graph[idx].id;
+         }
+         return ids;
+     }
+
+
+
+
+
+     /*! @brief add the contracted vertices of an edge *e* to the vertex *v*
+       @param [in] v vertex_descriptor
+       @param [in] e Edge of type *T_E*
+       */
+     void add_contracted_edge_vertices(V v, T_E &e) {
+         for (auto vid : e.contracted_vertices()) {
+             this->graph[v].add_vertex_id(vid);
+         }
+         e.clear_contracted_vertices();
+     }
+
+
+     /*! @brief add edges(shortuct) to the graph during contraction
+
+       a -> b -> c
+
+       a -> c
+
+       edge (a, c) is a new edge e
+       e.contracted_vertices = b + b.contracted vertices
+       b is "removed" disconnected from the graph
+       - by removing all edges to/from b
+
+
+       @param [in] edge of type *T_E* is to be added
+       */
+
+     void add_shortcut(const T_E &edge) {
+         std::ostringstream log;
+         bool inserted;
+         E e;
+         if (edge.cost < 0)
+             return;
+
+         pgassert(this->vertices_map.find(edge.source)
+                 != this->vertices_map.end());
+         pgassert(this->vertices_map.find(edge.target)
+                 != this->vertices_map.end());
+
+         auto vm_s = this->get_V(edge.source);
+         auto vm_t = this->get_V(edge.target);
+
+         boost::tie(e, inserted) =
+             boost::add_edge(vm_s, vm_t, this->graph);
+
+         this->graph[e].cp_members(edge);
+
+         shortcuts.push_back(edge);
+     }
+};
+
+}  // namespace graph
+}  // namespace pgrouting
+
+#endif  // SRC_CONTRACTION_SRC_PGR_CONTRACTIONGRAPH_HPP_
diff --git a/include/contraction/pgr_deadEndContraction.hpp b/include/contraction/pgr_deadEndContraction.hpp
new file mode 100644
index 0000000..9e5a89c
--- /dev/null
+++ b/include/contraction/pgr_deadEndContraction.hpp
@@ -0,0 +1,408 @@
+/*PGR-GNU*****************************************************************
+File: pgr_deadend.hpp
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer: 
+Copyright (c) 2016 Rohith Reddy
+Mail: 
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+#ifndef SRC_CONTRACTION_SRC_PGR_DEADENDCONTRACTION_HPP_
+#define SRC_CONTRACTION_SRC_PGR_DEADENDCONTRACTION_HPP_
+#pragma once
+
+
+#include <queue>
+#include <functional>
+#include <vector>
+#include "cpp_common/identifiers.hpp"
+
+namespace pgrouting {
+namespace contraction {
+
+template < class G >
+class Pgr_deadend {
+ private:
+     typedef typename G::V V;
+     typedef typename G::E E;
+
+ public:
+     void setForbiddenVertices(
+             Identifiers<V> forbidden_vertices);
+
+     void calculateVertices(G &graph);
+     /// @brief true when \b v is a dead end
+     bool is_dead_end(G &graph, V v);
+     void add_if_dead_end(G &graph, V v);
+     void doContraction(G &graph);
+
+ private:
+     Identifiers<V> deadendVertices;
+     Identifiers<V> forbiddenVertices;
+     std::ostringstream debug;
+};
+
+/******* IMPLEMENTATION ************/
+template < class G >
+void
+Pgr_deadend< G >::setForbiddenVertices(
+        Identifiers<V> forbidden_vertices) {
+#ifndef NDEBUG
+    debug << "Setting forbidden vertices\n";
+#endif
+    forbiddenVertices = forbidden_vertices;
+}
+
+
+template < class G >
+void Pgr_deadend<G>::calculateVertices(G &graph) {
+    debug << "Calculating vertices\n";
+
+    for (auto vi = vertices(graph.graph).first;
+            vi != vertices(graph.graph).second;
+            ++vi) {
+#ifndef NDEBUG
+        debug << "Checking vertex " << graph[(*vi)].id << '\n';
+#endif
+        if (is_dead_end(graph, *vi)) {
+#ifndef NDEBUG
+            debug << "Adding " << graph[(*vi)].id << " to dead end" << '\n';
+#endif
+            deadendVertices += (*vi);
+        }
+    }
+    deadendVertices -= forbiddenVertices;
+}
+
+template < class G >
+bool Pgr_deadend<G>::is_dead_end(G &graph, V v) {
+#ifndef NDEBUG
+    debug << "Is dead end: " << graph.graph[v].id << "?\n";
+#endif
+
+    if (forbiddenVertices.has(v)) {
+        /**
+         * - fobbiden_vertices
+         *   - Not considered as dead end
+         */
+
+        return false;
+    }
+
+    if (graph.is_undirected()) {
+        /**
+         * undirected:
+         * ----------
+         *   - There is only one adjacent vertex:
+         *   - All adjcent edges are from a single vertex
+         *
+
+         @dot
+         graph G {
+         graph [rankdir=LR];
+         subgraph cluster0 {
+         node [shape=point,height=0.2,style=filled,color=black];
+         style=filled;
+         color=lightgrey;
+         a0; a1; a2;
+         label = "rest of graph";
+         }
+         v [color=green];
+         v -- a0;
+         v -- a0;
+         }
+         @enddot
+
+         */
+        Identifiers<V> adjacent_vertices = graph.find_adjacent_vertices(v);
+        if (adjacent_vertices.size() == 1) {
+            return true;
+        }
+        return false;
+    }
+
+    pgassert(graph.is_directed());
+    /*
+     * directed graph
+     *
+     * is dead end when:
+     *  (2) one incoming edge, no outgoing edge (dead end)
+     *  (3) one outgoing edge, one incoming edge
+     *       and both are from/to the same vertex
+     *  (4) many incoming edges
+     *       and no outgoing edges
+     *  (5) many outgoing edges TODO but all go to same vertex
+     *       and no incoming edges
+     *
+     * NOT dead end when:
+     *  (3) one outgoing edge, one incoming edge
+     *       and both from/to different vertex
+     *
+     * note: when contracting case 4 & 5, the vertex has to be
+     *       part of all the adjacent vertices
+     */
+
+    if (graph.in_degree(v) == 0 && graph.out_degree(v) == 1) {
+        /**
+         * directed
+         * ----------
+         *  case (1):  (dead start)
+         *   - one outgoing edge,
+         *   - no incoming edge
+         *
+
+         @dot
+         digraph G {
+         graph [rankdir=LR];
+         subgraph cluster0 {
+         node [shape=point,height=0.2,style=filled,color=black];
+         style=filled;
+         color=lightgrey;
+         a0; a1; a2;
+         label = "rest of graph";
+         }
+         v [color=green];
+         v -> a0;
+         }
+         @enddot
+
+         */
+        return true;
+    }
+
+    if (graph.in_degree(v) == 1 && graph.out_degree(v) == 0) {
+        /**
+         * case (2):  (dead end)
+         *   - no outgoing edge,
+         *   - one incoming edge
+         *
+
+         @dot
+         digraph G {
+         graph [rankdir=LR];
+         subgraph cluster0 {
+         node [shape=point,height=0.2,style=filled,color=black];
+         style=filled;
+         color=lightgrey;
+         a0; a1; a2;
+         label = "rest of graph";
+         }
+         v [color=green];
+         a0 -> v;
+         }
+         @enddot
+
+         */
+        return true;
+    }
+
+    if (graph.out_degree(v) == 1 && graph.in_degree(v) == 1) {
+        /**
+         * case (3):
+         *   - one outgoing edge,
+         *   - one incoming edge
+         *   - one adjacent vertex
+         *
+
+         @dot
+         digraph G {
+         graph [rankdir=LR];
+         subgraph cluster0 {
+         node [shape=point,height=0.2,style=filled,color=black];
+         style=filled;
+         color=lightgrey;
+         a0; a1; a2;
+         label = "rest of graph";
+         }
+         v [color=green];
+         v -> a0;
+         a0 -> v;
+         }
+         @enddot
+
+         */
+        auto out_e = *(out_edges(v, graph.graph).first);
+        auto in_e = *(in_edges(v, graph.graph).first);
+
+        auto out_v = graph.is_source(v, out_e) ?
+            graph.target(out_e) : graph.source(out_e);
+        auto in_v = graph.is_source(v, in_e) ?
+            graph.target(in_e) : graph.source(in_e);
+
+        if (out_v == in_v) {
+            return true;
+        }
+        return false;
+    }
+
+    if (graph.in_degree(v) > 0 && graph.out_degree(v) == 0) {
+        /**
+         * case (4):
+         *   - no outgoing edge,
+         *   - many incoming edges
+         *
+         *
+
+         @dot
+         digraph G {
+         graph [rankdir=LR];
+         subgraph cluster0 {
+         node [shape=point,height=0.2,style=filled,color=black];
+         style=filled;
+         color=lightgrey;
+         a0; a1; a2;
+         label = "rest of graph";
+         }
+         v [color=green];
+         a0 -> v;
+         a1 -> v;
+         a0 -> v;
+         }
+         @enddot
+
+         */
+        return true;
+    }
+
+    if (graph.in_degree(v) > 0 && graph.out_degree(v) > 0) {
+        /**
+         * case (5):
+         *   - many outgoing edge,
+         *   - many incoming edges
+         *   - All adjacent edges are from a single vertex
+         *
+         *
+
+         @dot
+         digraph G {
+         graph [rankdir=LR];
+         subgraph cluster0 {
+         node [shape=point,height=0.2,style=filled,color=black];
+         style=filled;
+         color=lightgrey;
+         a0; a1; a2;
+         label = "rest of graph";
+         }
+         v [color=green];
+         a0 -> v;
+         a0 -> v;
+         v -> a0;
+         v -> a0;
+         }
+         @enddot
+
+         */
+
+        auto adjacent_vertices = graph.find_adjacent_vertices(v);
+        if (adjacent_vertices.size() == 1) {
+            return true;
+        }
+    }
+    debug << "Is Not Dead End\n";
+    return false;
+}
+
+template < class G >
+void
+Pgr_deadend<G>::add_if_dead_end(G &graph, V v) {
+    if (is_dead_end(graph, v)) {
+        deadendVertices += v;
+    }
+}
+
+template < class G >
+void
+Pgr_deadend<G>::doContraction(G &graph) {
+#ifndef NDEBUG
+    debug << "Performing contraction\n";
+#endif
+    std::priority_queue<V, std::vector<V>, std::greater<V> > deadendPriority;
+
+    for (V deadendVertex : deadendVertices) {
+        deadendPriority.push(deadendVertex);
+    }
+
+    while (!deadendPriority.empty()) {
+        V current_vertex = deadendPriority.top();
+        deadendPriority.pop();
+
+        if (!is_dead_end(graph, current_vertex)) {
+            continue;
+        }
+
+        Identifiers<V> adjacent_vertices =
+            graph.find_adjacent_vertices(current_vertex);
+
+        for (auto adjacent_vertex : adjacent_vertices) {
+#ifndef NDEBUG
+            debug << "Contracting current vertex "
+                << graph[current_vertex].id << std::endl;
+#endif
+            graph[adjacent_vertex].add_contracted_vertex(
+                    graph[current_vertex], current_vertex);
+
+#ifndef NDEBUG
+            debug << "Adding contracted vertices of the edge\n";
+#endif
+            auto o_edges = out_edges(current_vertex, graph.graph);
+            for (auto out = o_edges.first;
+                    out != o_edges.second;
+                    ++out) {
+                debug << graph.graph[*out];
+                graph.add_contracted_edge_vertices(
+                        adjacent_vertex, graph[*out]);
+            }
+            auto i_edges = in_edges(current_vertex, graph.graph);
+            for (auto in = i_edges.first;
+                    in != i_edges.second; ++in) {
+#ifndef NDEBUG
+                debug << graph.graph[*in];
+#endif
+                graph.add_contracted_edge_vertices(adjacent_vertex, graph[*in]);
+            }
+#ifndef NDEBUG
+            debug << "Current Vertex:\n";
+            debug << graph[current_vertex];
+            debug << "Adjacent Vertex:\n";
+            debug << graph[adjacent_vertex];
+#endif
+            graph.disconnect_vertex(current_vertex);
+            deadendVertices -= current_vertex;
+#ifndef NDEBUG
+            debug << "Adjacent vertex dead_end?: "
+                << is_dead_end(graph, adjacent_vertex)
+                << std::endl;
+#endif
+            if (is_dead_end(graph, adjacent_vertex)
+                    && !forbiddenVertices.has(adjacent_vertex)) {
+                deadendVertices += adjacent_vertex;
+                deadendPriority.push(adjacent_vertex);
+            }
+        }
+    }
+}
+
+}  // namespace contraction
+}  // namespace pgrouting
+
+#endif  // SRC_CONTRACTION_SRC_PGR_DEADENDCONTRACTION_HPP_
diff --git a/include/contraction/pgr_linearContraction.hpp b/include/contraction/pgr_linearContraction.hpp
new file mode 100644
index 0000000..4eb74a7
--- /dev/null
+++ b/include/contraction/pgr_linearContraction.hpp
@@ -0,0 +1,282 @@
+/*PGR-GNU*****************************************************************
+File: pgr_linear.c
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer: 
+Copyright (c) 2016 Rohith Reddy
+Mail: 
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+#ifndef SRC_CONTRACTION_SRC_PGR_LINEARCONTRACTION_HPP_
+#define SRC_CONTRACTION_SRC_PGR_LINEARCONTRACTION_HPP_
+#pragma once
+
+
+#include <queue>
+#include <functional>
+#include <vector>
+
+#include "cpp_common/identifiers.hpp"
+
+
+namespace pgrouting {
+namespace contraction {
+
+template < class G >
+class Pgr_linear {
+ private:
+     typedef typename G::V V;
+     typedef typename G::E E;
+     typedef typename G::V_i V_i;
+     typedef typename G::E_i E_i;
+     typedef typename G::EO_i EO_i;
+     typedef typename G::EI_i EI_i;
+     typedef typename G::degree_size_type degree_size_type;
+
+
+ public:
+     Pgr_linear():last_edge_id(0) {}
+     void setForbiddenVertices(
+             Identifiers<V> forbidden_vertices);
+     void calculateVertices(G &graph);
+     void doContraction(G &graph);
+
+ private:
+     int64_t get_next_id() {
+         return --last_edge_id;
+     }
+
+     bool is_linear(G &graph, V v);
+     void add_if_linear(G &graph, V v);
+     void add_edge_pair(V vertex, int64_t &incoming_eid,
+             int64_t &outgoing_eid);
+     void add_shortcut(G &graph, V vertex,
+             E incoming_edge,
+             E outgoing_edge);
+     void add_shortcut(G &graph,
+             pgrouting::CH_edge &shortcut);
+
+ private:
+     Identifiers<V> linearVertices;
+     Identifiers<V> forbiddenVertices;
+
+     int64_t last_edge_id;
+     std::ostringstream debug;
+};
+
+/*************** IMPLEMENTTION **************/
+
+template < class G >
+void
+Pgr_linear< G >::setForbiddenVertices(
+        Identifiers<V> forbidden_vertices) {
+    debug << "Setting forbidden vertices\n";
+    forbiddenVertices = forbidden_vertices;
+}
+
+
+template < class G >
+bool Pgr_linear<G>::is_linear(G &graph, V v) {
+    degree_size_type in_degree, out_degree;
+    in_degree = graph.in_degree(v);
+    out_degree = graph.out_degree(v);
+    Identifiers<V> adjacent_vertices = graph.find_adjacent_vertices(v);
+    if (adjacent_vertices.size() == 2) {
+        if (in_degree > 0 && out_degree > 0) {
+            debug << graph.graph[v].id << " is linear " << std::endl;
+            return true;
+        }
+    }
+    debug << graph.graph[v].id << " is not linear " << std::endl;
+    return false;
+}
+
+template < class G >
+void Pgr_linear<G>::calculateVertices(G &graph) {
+    debug << "Calculating vertices\n";
+    V_i vi;
+    for (vi = vertices(graph.graph).first;
+            vi != vertices(graph.graph).second;
+            ++vi) {
+        debug << "Checking vertex " << graph.graph[(*vi)].id << '\n';
+        if (is_linear(graph, *vi)) {
+            linearVertices += (*vi);
+        }
+    }
+    linearVertices -= forbiddenVertices;
+}
+
+
+
+template < class G >
+void Pgr_linear<G>::doContraction(G &graph) {
+    std::ostringstream contraction_debug;
+    contraction_debug << "Performing contraction\n";
+    std::priority_queue<V, std::vector<V>, std::greater<V> > linearPriority;
+    for (const auto linearVertex : linearVertices) {
+        linearPriority.push(linearVertex);
+    }
+    contraction_debug << "Linear vertices" << std::endl;
+    for (const auto v : linearVertices) {
+        contraction_debug << graph[v].id << ", ";
+    }
+    contraction_debug << std::endl;
+    while (!linearPriority.empty()) {
+        V current_vertex = linearPriority.top();
+        linearPriority.pop();
+        if (!is_linear(graph, current_vertex)) {
+            linearVertices -= current_vertex;
+            continue;
+        }
+        Identifiers<V> adjacent_vertices =
+            graph.find_adjacent_vertices(current_vertex);
+        pgassert(adjacent_vertices.size() == 2);
+
+        V vertex_1 = adjacent_vertices.front();
+        adjacent_vertices.pop_front();
+        V vertex_2 = adjacent_vertices.front();
+        adjacent_vertices.pop_front();
+
+        contraction_debug << "Adjacent vertices\n";
+        contraction_debug << graph[vertex_1].id
+            << ", " << graph[vertex_2].id
+            << std::endl;
+
+        if (graph.m_gType == DIRECTED) {
+            if (graph.out_degree_to_vertex(vertex_1, current_vertex) > 0 &&
+                    graph.in_degree_from_vertex(vertex_2, current_vertex) > 0) {
+                E e1 = graph.get_min_cost_edge(vertex_1,
+                        current_vertex);
+                E e2 = graph.get_min_cost_edge(current_vertex,
+                        vertex_2);
+                add_shortcut(graph, current_vertex, e1, e2);
+            }
+
+            if (graph.out_degree_to_vertex(vertex_2, current_vertex) > 0 &&
+                    graph.in_degree_from_vertex(vertex_1, current_vertex) > 0) {
+                E e1 = graph.get_min_cost_edge(vertex_2,
+                        current_vertex);
+                E e2 = graph.get_min_cost_edge(current_vertex,
+                        vertex_1);
+                add_shortcut(graph, current_vertex, e1, e2);
+            }
+        } else if (graph.m_gType == UNDIRECTED) {
+            if (graph.out_degree_to_vertex(vertex_1, current_vertex) > 0 &&
+                    graph.in_degree_from_vertex(vertex_2, current_vertex) > 0) {
+                contraction_debug << "UNDIRECTED graph before contraction\n";
+                graph.print_graph(contraction_debug);
+                E e1 = graph.get_min_cost_edge(vertex_1,
+                        current_vertex);
+                E e2 = graph.get_min_cost_edge(current_vertex,
+                        vertex_2);
+                add_shortcut(graph, current_vertex, e1, e2);
+            }
+        }
+
+        graph.disconnect_vertex(current_vertex);
+        linearVertices -= current_vertex;
+        if (is_linear(graph, vertex_1)
+                && !forbiddenVertices.has(vertex_1)) {
+            linearPriority.push(vertex_1);
+            linearVertices += vertex_1;
+        }
+        if (is_linear(graph, vertex_2)
+                && !forbiddenVertices.has(vertex_2)) {
+            linearPriority.push(vertex_2);
+            linearVertices += vertex_2;
+        }
+    }
+    debug << contraction_debug.str().c_str() << "\n";
+}
+
+
+/*! \brief add edges(shortuct) to the graph during contraction
+
+  a --incomming--> b ---outgoing--> c
+
+  a -> c
+
+  edge (a, c) is a new edge: @b shortcut
+  e.contracted_vertices = b + b.contracted vertices
+  b is "removed" disconnected from the graph
+  - by removing all edges to/from b
+  */
+
+template < class G >
+void
+Pgr_linear<G>::add_shortcut(
+        G &graph, V vertex,
+        E incoming_edge,
+        E outgoing_edge) {
+    pgassert(incoming_edge != outgoing_edge);
+
+    auto a = graph.adjacent(vertex, incoming_edge);
+    auto c = graph.adjacent(vertex, outgoing_edge);
+    pgassert(a != vertex);
+    pgassert(a != c);
+    pgassert(vertex != c);
+
+    if (graph.is_undirected()) {
+        Identifiers<V> adjacent_vertices = graph.find_adjacent_vertices(vertex);
+
+        V vertex_1 = adjacent_vertices.front();
+        adjacent_vertices.pop_front();
+        V vertex_2 = adjacent_vertices.front();
+        adjacent_vertices.pop_front();
+
+        E shortcut_E;
+        CH_edge shortcut(get_next_id(), graph[vertex_1].id,
+                graph[vertex_2].id,
+                graph[incoming_edge].cost + graph[outgoing_edge].cost);
+        shortcut.add_contracted_vertex(graph[vertex], vertex);
+        shortcut.add_contracted_edge_vertices(graph[incoming_edge]);
+        shortcut.add_contracted_edge_vertices(graph[outgoing_edge]);
+        debug << "Adding shortcut\n";
+        debug << shortcut;
+        graph.add_shortcut(shortcut);
+        debug << "Added shortcut\n";
+    } else {
+        CH_edge shortcut(
+                get_next_id(),
+                graph[a].id,
+                graph[c].id,
+                graph[incoming_edge].cost + graph[outgoing_edge].cost);
+        shortcut.add_contracted_vertex(graph[vertex], vertex);
+        shortcut.add_contracted_edge_vertices(graph[incoming_edge]);
+        shortcut.add_contracted_edge_vertices(graph[outgoing_edge]);
+        debug << "Adding shortcut\n";
+        debug << shortcut;
+        graph.add_shortcut(shortcut);
+        debug << "Added shortcut\n";
+    }
+}
+template < class G >
+void Pgr_linear<G>::add_shortcut(G &graph,
+        pgrouting::CH_edge &shortcut) {
+    graph.add_shortcut(shortcut);
+}
+
+}  // namespace contraction
+}  // namespace pgrouting
+
+#endif  // SRC_CONTRACTION_SRC_PGR_LINEARCONTRACTION_HPP_
diff --git a/include/cpp_common/Dmatrix.h b/include/cpp_common/Dmatrix.h
new file mode 100644
index 0000000..a2f594b
--- /dev/null
+++ b/include/cpp_common/Dmatrix.h
@@ -0,0 +1,134 @@
+/*PGR-GNU*****************************************************************
+
+FILE: Dmatrix.h
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+/*! @file */
+
+#ifndef INCLUDE_CPP_COMMON_DMATRIX_H_
+#define INCLUDE_CPP_COMMON_DMATRIX_H_
+#pragma once
+
+#include <iostream>
+#include <vector>
+
+#include "c_types/matrix_cell_t.h"
+
+namespace pgrouting {
+namespace tsp {
+
+class Tour;  // for tourCost
+
+class Dmatrix {
+ public:
+    Dmatrix() = default;
+    explicit Dmatrix(const std::vector < Matrix_cell_t > &data_costs);
+
+    bool has_no_infinity() const;
+    bool obeys_triangle_inequality() const;
+    bool is_symmetric() const;
+
+    /*! @brief sets a special value for the distance(i,j)
+     *
+     * @param [in] i - index in matrix
+     * @param [in] j - index in matrix
+     * @param [in] dist - distance from i to j & from j to i
+     *
+     */
+    void set(size_t i, size_t j, double dist) {
+        costs[i][j] = costs[j][i] = dist;}
+
+    /*! @brief original id -> true
+     *
+     * @param [in] id - original id
+     * @returns true if id is in the distance table
+     */
+    bool has_id(int64_t id) const;
+
+    /*! @brief original id -> idx
+     *
+     * @param [in] id - original id
+     * @returns idx index of the id in the distance table
+     */
+    size_t get_index(int64_t id) const;
+
+    /*! @brief idx -> original id
+     *
+     * @param [in] idx - index (i-th coordinate)
+     * @returns the original id corresponding to idx
+     */
+    int64_t get_id(size_t idx) const;
+
+    /*! @brief |idx|
+     *
+     * @returns the total number of coordinates
+     */
+    size_t size() const {return ids.size();}
+
+    /*! @brief tour evaluation
+     *
+     * @param [in] tour
+     * @returns total cost of traversing the tour
+     */
+    double tourCost(const Tour &tour) const;
+
+    /*! @brief returns a row of distances
+     *
+     * @param [in] idx - row index
+     * @returns distances from idx to all other coordinates
+     */
+    const std::vector<double>& get_row(size_t idx) const {
+        return costs[idx];}
+
+    double comparable_distance(size_t i, size_t j) const {
+        return distance(i, j);}
+
+    double distance(int64_t i, int64_t j) const {
+        return distance(get_index(i), get_index(j));}
+
+    double distance(size_t i, size_t j) const {
+        return costs[i][j];}
+
+    friend std::ostream& operator<<(
+            std::ostream &log,
+            const Dmatrix &matrix);
+
+    double empty() const {
+        return ids.empty();
+    }
+
+ protected:
+    void set_ids(const std::vector<matrix_cell> &data_costs);
+    std::vector<int64_t> ids;
+
+ private:
+    typedef std::vector < std::vector < double > > Costs;
+    Costs costs;
+    std::vector< double >& operator[] (size_t i) {return costs[i];}
+    const std::vector< double >& operator[] (size_t i) const {return costs[i];}
+};
+
+}  // namespace tsp
+}  // namespace pgrouting
+
+#endif  // INCLUDE_CPP_COMMON_DMATRIX_H_
diff --git a/include/cpp_common/basePath_SSEC.hpp b/include/cpp_common/basePath_SSEC.hpp
new file mode 100644
index 0000000..2570be1
--- /dev/null
+++ b/include/cpp_common/basePath_SSEC.hpp
@@ -0,0 +1,279 @@
+/*PGR-GNU*****************************************************************
+
+File: basePath_SSEC.hpp
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+/*! @file */
+
+#ifndef INCLUDE_CPP_COMMON_BASEPATH_SSEC_HPP_
+#define INCLUDE_CPP_COMMON_BASEPATH_SSEC_HPP_
+#pragma once
+
+
+#include <boost/config.hpp>
+#include <boost/graph/adjacency_list.hpp>
+
+
+#include <deque>
+#include <vector>
+#include <iostream>
+#include <algorithm>
+
+#include "c_types/general_path_element_t.h"
+
+#include "cpp_common/path_t.h"
+#include "cpp_common/pgr_base_graph.hpp"
+
+
+class Path {
+    typedef std::deque< Path_t >::iterator pthIt;
+    typedef std::deque< Path_t >::const_iterator ConstpthIt;
+
+ private:
+    std::deque< Path_t > path;
+    int64_t m_start_id;
+    int64_t m_end_id;
+    double m_tot_cost;
+
+ public:
+    Path(): m_tot_cost(0) {}
+    Path(int64_t s_id, int64_t e_id)
+        : m_start_id(s_id), m_end_id(e_id), m_tot_cost(0)
+    {}
+    Path(const Path&) = default;
+
+    int64_t start_id() const {return m_start_id;}
+    void start_id(int64_t value) {m_start_id = value;}
+    int64_t end_id()  const {return m_end_id;}
+    void end_id(int64_t value) {m_end_id = value;}
+    double tot_cost()  const {return m_tot_cost;}
+
+    size_t size() const {return path.size();}
+    bool empty() const {return path.empty();}
+
+    void push_front(Path_t data);
+    void push_back(Path_t data);
+    const Path_t& operator[](size_t i) const {return path[i];}
+    Path_t& operator[](size_t i) {return path[i];}
+
+    pthIt begin() {return path.begin();}
+    pthIt end() {return path.end();}
+    ConstpthIt begin() const {return path.begin();}
+    ConstpthIt end() const {return path.end();}
+
+
+    void erase(pthIt pos) {path.erase(pos);}
+    const Path_t& back() const {return path.back();}
+    Path_t& back() {return path.back();}
+    const Path_t& front() const {return path.front();}
+    Path_t& front() {return path.front();}
+    void sort_by_node_agg_cost();
+
+
+    Path_t set_data(
+            int64_t d_from,
+            int64_t d_to,
+            int64_t d_vertex,
+            int64_t d_edge,
+            double d_cost,
+            double d_tot_cost);
+
+    void push_front(
+            int64_t d_vertex,
+            int64_t d_edge,
+            double d_cost,
+            double d_tot_cost);
+    void clear();
+
+    friend std::ostream& operator<<(std::ostream &log, const Path &p);
+
+
+    void reverse();
+
+    Path  getSubpath(unsigned int j) const;
+
+
+    bool isEqual(const Path &subpath) const;
+    void appendPath(const Path &o_path);
+    void append(const Path &other);
+    void empty_path(unsigned int d_vertex);
+
+    void get_pg_dd_path(
+            General_path_element_t **ret_path,
+            size_t &sequence) const;
+
+    void get_pg_ksp_path(
+            General_path_element_t **ret_path,
+            size_t &sequence, int routeId) const;
+
+    void generate_postgres_data(
+            General_path_element_t **postgres_data,
+            size_t &sequence) const;
+
+    friend size_t collapse_paths(
+            General_path_element_t **ret_path,
+            const std::deque< Path > &paths);
+
+
+    /** @brief discards common vertices with greater agg_cost */
+    friend void equi_cost(std::deque< Path > &paths);
+    /** @brief counts the tuples to be returned*/
+    friend size_t count_tuples(const std::deque< Path > &paths);
+
+    /*
+     *  TEMPLATES
+     */
+    template <typename G , typename V> Path(
+            G &graph,
+            int64_t source,
+            double distance,
+            const std::vector<V> &predecessors,
+            const std::vector<double> &distances) :
+        m_start_id(source),
+        m_end_id(source) {
+            for (V i = 0; i < distances.size(); ++i) {
+                if (distances[i] <= distance) {
+                    auto cost = distances[i] - distances[predecessors[i]];
+                    auto edge_id = graph.get_edge_id(predecessors[i], i, cost);
+                    push_back(
+                            {graph[i].id,
+                            edge_id, cost,
+                            distances[i]});
+                }
+            }
+        }
+
+
+    template <typename G , typename V> Path(
+            G &graph,
+            V v_source,
+            double distance,
+            const std::vector<V> &predecessors,
+            const std::vector<double> &distances) :
+        m_start_id(graph.graph[v_source].id),
+        m_end_id(graph.graph[v_source].id) {
+        for (V i = 0; i < distances.size(); ++i) {
+            if (distances[i] <= distance) {
+                auto cost = distances[i] - distances[predecessors[i]];
+                auto edge_id = graph.get_edge_id(predecessors[i], i, cost);
+                push_back(
+                        {graph[i].id,
+                        edge_id, cost,
+                        distances[i]});
+            }
+        }
+    }
+
+
+
+    template <typename G , typename V> Path(
+            const G &graph,
+            const V v_source,
+            const V v_target,
+            const std::vector<V> &predecessors,
+            const std::vector<double> &distances,
+            bool only_cost,
+            bool normal = true) :
+        m_start_id(graph.graph[v_source].id),
+        m_end_id(graph.graph[v_target].id) {
+            if (!only_cost) {
+                complete_path(graph,
+                        v_source,
+                        v_target,
+                        predecessors,
+                        distances,
+                        normal);
+                return;
+            }
+            /*
+             * only_cost
+             */
+            if (v_target != predecessors[v_target]) {
+                push_front(
+                        {graph.graph[v_target].id,
+                        -1,
+                        distances[v_target],
+                        distances[v_target]});
+            }
+            return;
+        }
+
+    /*! @brief constructs a path based on results
+     *
+     * Normal = false for reversed search path like in pgr_bdDijkstra
+     */
+    template <typename G , typename V> void complete_path(
+            const G &graph,
+            const V v_source,
+            const V v_target,
+            const std::vector<V> &predecessors,
+            const std::vector<double> &distances,
+            bool normal) {
+        // no path was found
+        if (v_target == predecessors[v_target]) {
+            return;
+        }
+
+        /*
+         * set the target
+         */
+        auto target = v_target;
+
+        /*
+         * the last stop is the target
+         */
+        push_front(
+                {graph.graph[target].id, -1,
+                0,  distances[target]});
+
+        /*
+         * get the path
+         */
+        while (target != v_source) {
+            /*
+             * done when the predecesor of the target is the target
+             */
+            if (target == predecessors[target]) break;
+
+            /*
+             * Inserting values in the path
+             */
+            auto cost = distances[target] - distances[predecessors[target]];
+            auto vertex_id = graph.graph[predecessors[target]].id;
+            auto edge_id = normal?
+                graph.get_edge_id(predecessors[target], target, cost)
+                : graph.get_edge_id(target, predecessors[target], cost);
+
+            push_front({
+                    vertex_id,
+                    edge_id,
+                    cost,
+                    distances[target] - cost});
+            target = predecessors[target];
+        }
+
+        return;
+    }
+};
+
+
+#endif  // INCLUDE_CPP_COMMON_BASEPATH_SSEC_HPP_
diff --git a/include/cpp_common/basic_edge.h b/include/cpp_common/basic_edge.h
new file mode 100644
index 0000000..d6f0ef1
--- /dev/null
+++ b/include/cpp_common/basic_edge.h
@@ -0,0 +1,49 @@
+/*PGR-GNU*****************************************************************
+ *
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+/*! @file */
+
+#ifndef INCLUDE_CPP_COMMON_BASIC_EDGE_H_
+#define INCLUDE_CPP_COMMON_BASIC_EDGE_H_
+#pragma once
+
+#include <stdint.h>
+
+namespace pgrouting {
+
+class Basic_edge{
+ public:
+     void cp_members(const Basic_edge &other);
+
+ public:
+     int64_t source;
+     int64_t target;
+
+     int64_t id;
+     double cost;
+};
+
+}  // namespace pgrouting
+
+#endif  // INCLUDE_CPP_COMMON_BASIC_EDGE_H_
diff --git a/include/cpp_common/basic_vertex.h b/include/cpp_common/basic_vertex.h
new file mode 100644
index 0000000..632c948
--- /dev/null
+++ b/include/cpp_common/basic_vertex.h
@@ -0,0 +1,84 @@
+/*PGR-GNU*****************************************************************
+ *
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+/*! @file */
+
+#ifndef INCLUDE_CPP_COMMON_BASIC_VERTEX_H_
+#define INCLUDE_CPP_COMMON_BASIC_VERTEX_H_
+#pragma once
+
+#include <vector>
+#include <ostream>
+
+#include "c_types/pgr_edge_t.h"
+
+
+
+namespace pgrouting {
+
+class Basic_vertex {
+ public:
+     Basic_vertex() :
+         id(0) {}
+     Basic_vertex(const Basic_vertex &v) :
+         id(v.id) {}
+
+     explicit Basic_vertex(const int64_t _id) :
+         id(_id) {}
+
+     Basic_vertex(const pgr_edge_t &other, bool is_source) :
+         id(is_source? other.source : other.target) {}
+
+     void cp_members(const Basic_vertex &other) {
+         this->id = other.id;
+     }
+
+
+     friend std::ostream& operator<<(std::ostream& log, const Basic_vertex &v);
+ public:
+     int64_t id;
+     size_t vertex_index;
+};
+
+size_t check_vertices(std::vector < Basic_vertex > vertices);
+
+
+std::vector < Basic_vertex > extract_vertices(
+        std::vector < Basic_vertex > vertices,
+        const pgr_edge_t *data_edges, int64_t count);
+
+std::vector < Basic_vertex > extract_vertices(
+        std::vector < Basic_vertex > vertices,
+        const std::vector < pgr_edge_t > data_edges);
+
+std::vector < Basic_vertex > extract_vertices(
+        const pgr_edge_t *data_edges, int64_t count);
+
+std::vector < Basic_vertex > extract_vertices(
+        const std::vector < pgr_edge_t > data_edges);
+
+
+}  // namespace pgrouting
+
+#endif  // INCLUDE_CPP_COMMON_BASIC_VERTEX_H_
diff --git a/include/cpp_common/identifier.h b/include/cpp_common/identifier.h
new file mode 100644
index 0000000..e741262
--- /dev/null
+++ b/include/cpp_common/identifier.h
@@ -0,0 +1,59 @@
+/*PGR-GNU*****************************************************************
+ *
+
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+/*! @file */
+
+#ifndef INCLUDE_CPP_COMMON_IDENTIFIER_H_
+#define INCLUDE_CPP_COMMON_IDENTIFIER_H_
+#pragma once
+
+#if defined(__MINGW32__) || defined(_MSC_VER)
+#include <stdint.h>
+#endif
+
+#include <ostream>
+
+namespace pgrouting {
+
+class Identifier {
+ public:
+     Identifier() = default;
+     Identifier(const Identifier &v) = default;
+     Identifier(const size_t _idx, const int64_t _id);
+
+     int64_t id() const;
+     size_t idx() const;
+     void reset_id(int64_t);
+
+     friend std::ostream& operator<<(std::ostream& log, const Identifier&);
+
+ private:
+     size_t  m_idx;
+     int64_t m_id;
+};
+
+
+}  // namespace pgrouting
+
+#endif  // INCLUDE_CPP_COMMON_IDENTIFIER_H_
diff --git a/include/cpp_common/identifiers.hpp b/include/cpp_common/identifiers.hpp
new file mode 100644
index 0000000..699115a
--- /dev/null
+++ b/include/cpp_common/identifiers.hpp
@@ -0,0 +1,254 @@
+/*PGR-GNU*****************************************************************
+
+File: identifiers.hpp
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2016 Rohith Reddy
+Mail:
+
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+/*! @file */
+
+#ifndef INCLUDE_CPP_COMMON_IDENTIFIERS_HPP_
+#define INCLUDE_CPP_COMMON_IDENTIFIERS_HPP_
+#pragma once
+
+#include <set>
+#include <algorithm>
+#include <iterator>
+#include <sstream>
+#include <iostream>
+#include <stdexcept>
+
+/* TODO(vicky)
+ * compiler check that type T is a integral type
+ */
+
+template <typename T>
+class Identifiers {
+ public:
+    typedef typename std::set<T>::iterator iterator;
+    typedef typename std::set<T>::const_iterator const_iterator;
+
+
+    //! @name constructors
+    //@{
+    Identifiers<T>() = default;
+    Identifiers<T>(const Identifiers<T>&) = default;
+    Identifiers<T>(const std::set<T>& data) {
+        m_ids = data;
+    }
+
+    /* @brief initializes with {1 ~ number}
+     *
+     * @params [in] number
+     */
+    explicit Identifiers<T>(const size_t number) {
+        size_t i(0);
+        std::generate_n(std::inserter(m_ids, m_ids.begin()),
+                number,
+                [&i](){ return i++; });
+    }
+
+    //@}
+
+    //! @name set like operators
+    //@{
+    size_t size() const {return m_ids.size(); }
+    inline bool empty() const {return m_ids.empty(); }
+    inline T front() const {return *m_ids.begin();}
+    const_iterator begin() const {return m_ids.begin();}
+    const_iterator end() const {return m_ids.end();}
+    inline void pop_front() {m_ids.erase(m_ids.begin());}
+    inline void clear() {m_ids.clear();}
+    iterator begin() {return m_ids.begin();}
+    iterator end() {return m_ids.end();}
+    //@}
+
+
+ private:
+    std::set<T> m_ids;
+
+ public:
+    //! \brief true ids() has element
+    /*!
+     * @param [in] other Identifier of type *T*
+     */
+    bool has(const T other) const {
+        return (m_ids.find(other) != m_ids.end());
+    }
+
+
+    //! \brief true when both sets are equal
+    /*!
+     * @param [in] rhs set of identifiers to be compared
+     */
+    bool operator==(const Identifiers<T> &rhs) const {
+        return std::equal(m_ids.begin(), m_ids.end(), rhs.m_ids.begin());
+    }
+
+    //! @name  set UNION
+    /// @{
+
+    /*! \brief set UNION set
+     *
+     * @param[in] lhs Identifiers
+     * @param[in] rhs Identifiers
+     */
+    friend Identifiers<T> operator +(
+            const Identifiers<T> &lhs,
+            const Identifiers<T> &rhs) {
+        Identifiers<T> union_ids(lhs);
+        union_ids += rhs;
+        return union_ids;
+    }
+
+    //! \brief compound set UNION set
+    /*!
+     * @param [in] other set of identifiers
+     */
+    Identifiers<T>& operator +=(
+            const Identifiers<T> &other) {
+        m_ids.insert(other.m_ids.begin(), other.m_ids.end());
+        return *this;
+    }
+    //! \brief compound set UNION element
+    /*!
+     * @param [in] element of type *T*
+     */
+    Identifiers<T>& operator +=(const T &element) {
+        m_ids.insert(element);
+        return *this;
+    }
+
+    /// @}
+
+
+
+    //! @name  set INTERSECTION
+    /// @{
+
+    /*! \brief set INTERSECTION
+     *
+     *
+     * @param[in] lhs  Identifiers
+     * @param[in] rhs  Identifiers
+     */
+
+    friend Identifiers<T> operator *(
+                const Identifiers<T> &lhs,
+                const Identifiers<T> &rhs) {
+            std::set<T> result;
+            std::set_intersection(
+                    lhs.m_ids.begin(), lhs.m_ids.end(),
+                    rhs.m_ids.begin(), rhs.m_ids.end(),
+                    std::inserter(result, result.begin()));
+            return Identifiers<T>(result);
+        }
+
+    //! \brief coumpound set INTERSECTION set
+    /*!
+     * @param [in] other is a set of identifiers of type *Identifiers<T>*
+     */
+    Identifiers<T>& operator *=(
+            const Identifiers<T> &other) {
+        *this = *this * other;
+        return *this;
+    }
+
+    //! \brief compund set INTERSECTION element
+    /*!
+     * @param[in] element is an identifiers of type *T*
+     */
+    Identifiers<T>& operator *=(const T &element) {
+        if (has(element)) {
+            m_ids.clear();
+            m_ids.insert(element);
+        } else {
+            m_ids.clear();
+        }
+        return *this;
+    }
+
+    /// @}
+
+
+    //! @name  set DIFFERENCE
+    /// @{
+
+    /* \brief set DIFFERENCE set
+     *
+     * @param[in] lhs Identifiers
+     * @param[in] rhs Identifiers
+     */
+    friend
+        Identifiers<T> operator -(
+                const Identifiers<T> &lhs,
+                const Identifiers<T> &rhs) {
+            std::set<T> result;
+            std::set_difference(
+                    lhs.m_ids.begin(), lhs.m_ids.end(),
+                    rhs.m_ids.begin(), rhs.m_ids.end(),
+                    std::inserter(result, result.begin()));
+            return Identifiers<T>(result);
+        }
+
+
+
+    //! \brief compound set DIFFERENCE set
+    /*!
+      @param [in] other is a set of identifiers of type *Identifiers<T>*
+      Replaces this set with the set difference between this set and other
+      */
+    Identifiers<T>& operator -=(const Identifiers<T> &other) {
+        *this = *this - other;
+        return *this;
+    }
+
+    //! \brief compund set DIFFERENCE element
+    /*!
+      @param[in] element to be removed
+      */
+    Identifiers<T>& operator -=(const T &element) {
+            m_ids.erase(element);
+        return *this;
+    }
+
+    /// @}
+
+    //! \brief Prints the set of identifiers
+    friend
+        std::ostream&
+        operator<<(std::ostream& os, const Identifiers<T>& identifiers) {
+            os << "{";
+            for (auto identifier : identifiers.m_ids) {
+                os << identifier << ", ";
+            }
+            os << "}";
+            return os;
+        }
+
+    /// @}
+};
+
+#endif  // INCLUDE_CPP_COMMON_IDENTIFIERS_HPP_
diff --git a/include/cpp_common/line_vertex.h b/include/cpp_common/line_vertex.h
new file mode 100644
index 0000000..fc50d0b
--- /dev/null
+++ b/include/cpp_common/line_vertex.h
@@ -0,0 +1,99 @@
+/*PGR-GNU*****************************************************************
+File: line_vertex.h
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2017 Vidhan Jain
+Mail: vidhanj1307 at gmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+/*! @file */
+
+#ifndef INCLUDE_CPP_COMMON_LINE_VERTEX_H_
+#define INCLUDE_CPP_COMMON_LINE_VERTEX_H_
+#pragma once
+
+#include <vector>
+#include <ostream>
+
+#include "c_types/pgr_edge_t.h"
+
+
+
+namespace pgrouting {
+
+class Line_vertex {
+ public:
+     Line_vertex() :
+         id(0) {}
+
+     Line_vertex(const pgr_edge_t& edge) :
+         id(edge.id),
+         vertex_id(edge.id),
+         source(edge.source),
+         target(edge.target),
+         cost(edge.cost) {}
+
+     Line_vertex(const Line_vertex &v) :
+         id(v.id),
+         vertex_id(v.vertex_id),
+         source(v.source),
+         target(v.target),
+         cost(v.cost) {}
+
+     void cp_members(const Line_vertex &other) {
+         this->id = other.id;
+         this->vertex_id = other.vertex_id;
+         this->cost = other.cost;
+         this->source = other.source;
+         this->target = other.target;
+     }
+
+     void cp_members(int64_t _id, int64_t _source) {
+         this->id = _id;
+         this->vertex_id = -1;
+         this->cost = 0;
+         this->source = _source;
+         this->target = -1;
+     }
+
+     friend std::ostream& operator<<(std::ostream& log, const Line_vertex &v) {
+         log << "\nid = " << v.id;
+         log << " | vertex_id = " << v.vertex_id;
+         log << " | source = " << v.source;
+         log << " | target = " << v.target;
+         log << " | cost = " << v.cost;
+         return log;
+     }
+
+ public:
+     int64_t id;
+     int64_t vertex_id;
+     int64_t source;
+     int64_t target;
+     double cost;
+};
+
+}  // namespace pgrouting
+
+#endif  // INCLUDE_CPP_COMMON_LINE_VERTEX_H_
diff --git a/include/cpp_common/path_t.h b/include/cpp_common/path_t.h
new file mode 100644
index 0000000..386c51d
--- /dev/null
+++ b/include/cpp_common/path_t.h
@@ -0,0 +1,44 @@
+/*PGR-GNU*****************************************************************
+File: path_t.h
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+/*! @file */
+
+#ifndef INCLUDE_CPP_COMMON_PATH_T_H_
+#define INCLUDE_CPP_COMMON_PATH_T_H_
+#pragma once
+
+#include <stdint.h>
+
+/*
+ * This one is for processing
+ */
+struct Path_t{
+    int64_t node;
+    int64_t edge;
+    double cost;
+    double agg_cost;
+};
+
+
+#endif  // INCLUDE_CPP_COMMON_PATH_T_H_
diff --git a/include/cpp_common/pgr_alloc.hpp b/include/cpp_common/pgr_alloc.hpp
new file mode 100644
index 0000000..8833382
--- /dev/null
+++ b/include/cpp_common/pgr_alloc.hpp
@@ -0,0 +1,85 @@
+/*PGR-GNU*****************************************************************
+File: pgr_palloc.hpp
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+/*! @file */
+
+#ifndef INCLUDE_CPP_COMMON_PGR_ALLOC_HPP_
+#define INCLUDE_CPP_COMMON_PGR_ALLOC_HPP_
+#pragma once
+
+
+extern "C" {
+#if PGSQL_VERSION < 94
+#ifdef __MINGW32__
+#include <winsock2.h>
+#include <windows.h>
+#endif
+#endif
+
+#include "c_common/postgres_connection.h"
+#include "utils/palloc.h"
+}
+
+#include <string>
+
+/*! \fn pgr_alloc(std::size_t size, T *ptr)
+
+\brief allocates memory
+
+- Does a malloc or realloc depending on the ptr value
+- To be used only on C++ code
+- To be used when returning results to postgres
+- free must occur in the C code
+
+\param[in] size
+\param[in] ptr
+\returns pointer to the first byte of allocated space
+
+ */
+
+
+template <typename T>
+T*
+pgr_alloc(std::size_t size, T* ptr) {
+    if (!ptr) {
+        ptr = static_cast<T*>(SPI_palloc(size * sizeof(T)));
+    } else {
+        ptr = static_cast<T*>(SPI_repalloc(ptr, size * sizeof(T)));
+    }
+    return ptr;
+}
+
+template <typename T>
+T*
+pgr_free(T* ptr) {
+    if (ptr) {
+        pfree(ptr);
+    }
+    return nullptr;
+}
+
+char *
+pgr_msg(const std::string &msg);
+
+#endif  // INCLUDE_CPP_COMMON_PGR_ALLOC_HPP_
diff --git a/include/cpp_common/pgr_assert.h b/include/cpp_common/pgr_assert.h
new file mode 100644
index 0000000..3331503
--- /dev/null
+++ b/include/cpp_common/pgr_assert.h
@@ -0,0 +1,136 @@
+/*PGR-MIT******************************************************************
+ *
+ * file pgr_assert.h
+ *
+ * Copyright 2014 Stephen Woodbridge <woodbri at imaptools.com>
+ * Copyright 2014 Vicky Vergara <vicky_vergara at hotmail.com>
+ *
+ * This is free software; you can redistribute and/or modify it under
+ * the terms of the MIT License. Please file MIT-LICENSE for details.
+ *
+ *****************************************************************PGR-MIT*/
+
+#ifndef  INCLUDE_CPP_COMMON_PGR_ASSERT_H_
+#define  INCLUDE_CPP_COMMON_PGR_ASSERT_H_
+#pragma once
+
+#include <string>
+#include <exception>
+
+#ifdef assert
+#undef assert
+#endif
+
+
+/*! @file
+ *
+ * Assertions Handling
+ *
+ * @brief An assert functionality that uses C++ throw().
+ *
+ * This file provides an alternative to assert functionality that will
+ * convert all pgassert() into C++ throw using an AssertFailedException class.
+ *
+ * This allows catching errors and do appropriate clean up
+ * re-throw if needed to catch errors in the postgresql environment
+ *
+ * **Do not crash the backend server.**
+ */
+
+
+#ifndef __STRING
+#define __STRING(x) #x
+#endif
+
+#define __TOSTRING(x) __STRING(x)
+
+
+/*! @def pgassert(expr)
+ * @brief Uses the standard assert syntax.
+ *
+ * When an assertion fails it will throw \ref AssertFailedException and what()
+ * will return a string like "AssertFailedException(2+2 == 5) at t.cpp:11"
+ *
+ * Example:
+ * @code
+    #include <iostream>
+    #include "pgr_assert.h"
+
+    int main() {
+
+        try {
+            pgassert(2+2 == 4);
+            pgassert(2+2 == 5);
+        }
+        catch (AssertFailedException &e) {
+            std::cout << e.what() << "\n";
+        }
+        catch (std::exception& e) {
+            std::cout << e.what() << "\n";
+        }
+        catch(...) {
+            std::cout << "Caught unknown exception!\n";
+        }
+        return 0;
+    }
+    @endcode
+ */
+#ifdef NDEBUG
+#define pgassert(expr) ((void)0)
+#else
+#define pgassert(expr) \
+    ((expr) \
+     ? static_cast<void>(0) \
+     : throw AssertFailedException( \
+         "AssertFailedException: " __STRING(expr) \
+         " at " __FILE__ ":" __TOSTRING(__LINE__) + get_backtrace() ) )
+#endif
+
+/*! @def pgassertwm(expr, msg)
+  @brief Adds a message to the assertion.
+
+ Example:
+ @code
+    pgassert(2+2 == 5, "Expected a 4 as result");
+    std::ostringstream log;
+    log << "Expected a 4 as result"
+    pgassert(2+2 == 5, log.str());
+ @endcode
+*/
+
+#ifdef NDEBUG
+#define pgassertwm(expr, msg) ((void)0)
+#else
+#define pgassertwm(expr, msg) \
+    ((expr) \
+     ? static_cast<void>(0) \
+     : throw AssertFailedException( \
+         "AssertFailedException: " __STRING(expr) \
+         " at " __FILE__ ":" __TOSTRING(__LINE__) + get_backtrace(msg) ) )
+#endif
+
+/*! @brief returns the execution path of the trace
+
+  In case of a failed exception the backtrace can be is shown in the error message.
+
+  Does not work for windows, please read:
+  http://stackoverflow.com/questions/27639931/can-not-find-execinfo-h-when-setup-malpack
+
+ */
+std::string get_backtrace();
+std::string get_backtrace(const std::string &);
+
+/*! @class AssertFailedException
+ * @brief Extends std::exception and is the exception that we throw if an assert fails.
+ */
+class AssertFailedException : public std::exception {
+ private:
+     const std::string str;   ///< Holds what() we got as message
+
+ public:
+     virtual const char *what() const throw();
+     explicit AssertFailedException(std::string msg);
+     virtual ~AssertFailedException() throw() {}
+};
+
+#endif  //  INCLUDE_CPP_COMMON_PGR_ASSERT_H_
diff --git a/include/cpp_common/pgr_base_graph.hpp b/include/cpp_common/pgr_base_graph.hpp
new file mode 100644
index 0000000..fcfc689
--- /dev/null
+++ b/include/cpp_common/pgr_base_graph.hpp
@@ -0,0 +1,953 @@
+/*PGR-GNU*****************************************************************
+ *
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+/*! @file */
+
+#ifndef INCLUDE_CPP_COMMON_PGR_BASE_GRAPH_HPP_
+#define INCLUDE_CPP_COMMON_PGR_BASE_GRAPH_HPP_
+#pragma once
+
+#include <boost/graph/iteration_macros.hpp>
+#include <boost/config.hpp>
+#include <boost/graph/adjacency_list.hpp>
+#include <boost/graph/graph_utility.hpp>
+
+#include <deque>
+#include <vector>
+#include <set>
+#include <map>
+#include <limits>
+
+#include "c_types/graph_enum.h"
+
+#include "cpp_common/basic_vertex.h"
+#include "cpp_common/xy_vertex.h"
+#include "cpp_common/basic_edge.h"
+
+#include "cpp_common/pgr_assert.h"
+
+namespace pgrouting {
+
+/*! @brief boost::graph simplified to pgRouting needs
+
+  This class gives the handling basics of a boost::graph of kind G
+  where G:
+  can be an undirected graph or a directed graph.
+
+Requiremets:
+============
+
+A vertex class T_V
+------------------
+
+Current Available vertex classes:
+- Basic_vertex
+- XY_vertex
+
+
+An edge class T_E
+-----------------
+
+Current Available edge classes:
+- Basic_edge
+
+extract_vertices function
+-------------------------
+
+Data obtained from postgresql is stored in
+A C array of pgr_edge_t type.
+
+~~~~{.c}
+std::vector< T_V >
+extract_vertices(pgr_edge_t *, size_t)
+~~~~
+
+
+Data obtained from postgresql is stored in
+o a vector container.
+
+~~~~{.c}
+std::vector< T_V >
+extract_vertices(std::vector< pgr_edge_t >)
+~~~~
+
+Boost Graph
+-------------
+
+The code is prepared to be used for:
+- boost::adjacency_list graph type
+- boost::undirectedS when the graph is UNDIRECTED
+- boost::bidirectionalS when the graph is DIRECTED
+
+
+~~~~{.c}
+boost::adjacency_list
+< boost::vecS,  // not tested with other values
+boost::vecS,  // not tested with other values
+boost::undirectedS,  // USinG UNDIRECTED
+Basic_vertex,  // the vertex class
+Basic_edge >   // the edge class
+~~~~
+
+
+
+Example Usage:
+=============
+
+For this example we will use:
+- Basic_vertex
+- Basic_edge
+- pgr_edge_t
+
+
+Create Graph type
+-----------------
+
+~~~~{.c}
+typedef typename
+graph::Pgr_base_graph <
+boost::adjacency_list <
+boost::vecS,
+    boost::vecS,
+    boost::bidirectionalS,
+    Basic_vertex,
+    Basic_edge >,
+    Basic_vertex,
+    Basic_edge >
+
+    DirectedGraph;
+~~~~
+
+
+Initializing the graph
+------------------------------
+
+Graph initialization is for seting the Vertices of the graph.
+
+//TODO discuss if also the edges
+
+Vector of unique vertices of the graph
+~~~~{.c}
+size_t total_edges;
+pgr_edge_t *my_edges = NULL;
+pgr_get_edges(edges_sql, &my_edges, &total_tuples);
+std::vector< Basic_Vertex > vertices(pgrouting::extract_vertices(my_edges));
+~~~~
+
+There are several ways to initialize the graph
+
+~~~~{.c}
+// 1. Initializes an empty graph
+pgrouting::DirectedGraph digraph(gType);
+
+// 2. Initializes a graph based on the vertices
+pgrouting::DirectedGraph digraph(
+    verices,
+    gType);
+vertices.clear();
+
+3. Initializes a graph based on the extracted vertices
+pgrouting::DirectedGraph digraph(
+    pgrouting::extract_vertices(my_edges, total_edges);
+    gType);
+
+4. Initializes a graph based on the extracted vertices
+pgrouting::DirectedGraph digraph(
+    pgrouting::extract_vertices(my_edges);
+    gType);
+~~~~
+
+1. Initializes an empty graph
+  - vertices vector size is 0
+
+2. Initializes a graph based on the vertices:
+  - vertices vector size is vertices.size()
+  - the vertices are inserted
+  - vertices container can be clared to free memory
+
+3. Initializes a graph based on the vertices extracted
+  - from edges stored on a C array
+  - the vertices are inserted
+
+4. Initializes a graph based on the vertices extracted
+  - from edges stored on a vector
+  - the vertices are inserted
+
+
+Fill the graph
+---------------------
+
+After initializing the graph with the vertices, the edges can be added.
+
+~~~~{.c}
+// inserting edges from a C array
+digraph.insert_edges(my_edges, total_edges);
+
+// adding more edges to the graph from a vector container
+digraph.insert_edges(new_edges);
+~~~~
+
+*/
+
+namespace graph {
+template <class G, typename Vertex, typename Edge>
+class Pgr_base_graph;
+
+}  // namespace graph
+
+
+/** @name Graph types
+  Type      |   pgRouting
+  :---------: | :---------------------
+  UndirectedGraph | Basic undirected graph
+  DirectedGraph | Basic directed graph
+  xyUndirectedGraph | X & Y values stored on the vertex
+  xyDirectedGraph | X & Y values stored on the vertex
+  */
+//@{
+typedef graph::Pgr_base_graph <
+boost::adjacency_list < boost::vecS, boost::vecS,
+    boost::undirectedS,
+    Basic_vertex, Basic_edge >,
+    Basic_vertex, Basic_edge > UndirectedGraph;
+
+typedef graph::Pgr_base_graph <
+boost::adjacency_list < boost::vecS, boost::vecS,
+    boost::bidirectionalS,
+    Basic_vertex, Basic_edge >,
+    Basic_vertex, Basic_edge > DirectedGraph;
+
+typedef graph::Pgr_base_graph <
+boost::adjacency_list < boost::listS, boost::vecS,
+    boost::undirectedS,
+    XY_vertex, Basic_edge >,
+    XY_vertex, Basic_edge > xyUndirectedGraph;
+
+typedef graph::Pgr_base_graph <
+boost::adjacency_list < boost::listS, boost::vecS,
+    boost::bidirectionalS,
+    XY_vertex, Basic_edge >,
+    XY_vertex, Basic_edge > xyDirectedGraph;
+
+//@}
+
+
+namespace graph {
+
+template <class G, typename T_V, typename T_E>
+class Pgr_base_graph {
+ public:
+     /** @name Graph related types
+       Type      |     boost meaning     |   pgRouting meaning
+       :---------: | :-------------------- | :----------------------
+       G        | boost::adjacency_list |   Graph
+       V        | vertex_descriptor     |   Think of it as local ID of a vertex
+       E        | edge_descriptor       |   Think of it as local ID of an edge
+       V_i      | vertex_iterator       |   To cycle the vertices of the Graph
+       E_i      | edge_iterator         |   To cycle the edges of the Graph
+       EO_i     | out_edge_iterator     |   To cycle the out going edges of a vertex
+       EI_i     | in_edge_iterator      |   To cycle the in coming edges of a vertex (only in bidirectional graphs)
+       */
+     //@{
+     typedef G B_G;
+     typedef T_E G_T_E;
+     typedef T_V G_T_V;
+     typedef typename boost::graph_traits < G >::vertex_descriptor V;
+     typedef typename boost::graph_traits < G >::edge_descriptor E;
+     typedef typename boost::graph_traits < G >::vertex_iterator V_i;
+     typedef typename boost::graph_traits < G >::edge_iterator E_i;
+     typedef typename boost::graph_traits < G >::out_edge_iterator EO_i;
+     typedef typename boost::graph_traits < G >::in_edge_iterator EI_i;
+
+     typedef typename boost::graph_traits < G >::vertices_size_type
+         vertices_size_type;
+     typedef typename boost::graph_traits < G >::edges_size_type
+         edges_size_type;
+     typedef typename boost::graph_traits < G >::degree_size_type
+         degree_size_type;
+
+     //@}
+
+     /** @name Id handling related types
+       Type      |  Meaning       |   pgRouting Meaning
+       :---------: | :------------- | :----------------------
+       id_to_V  | maps id -> V   | given an id store the V
+       LI       | Left Iterator  | iterates over id_to_V
+       */
+     //@{
+
+     typedef typename std::map< int64_t, V > id_to_V;
+     typedef typename id_to_V::const_iterator LI;
+
+     //@}
+
+     //! @name The Graph
+     //@{
+     G graph;                //!< The graph
+     size_t m_num_vertices;  //!< local count.
+     graphType m_gType;      //!< type (DIRECTED or UNDIRECTED)
+     //@}
+
+     //! @name Id mapping handling
+     //@{
+
+     id_to_V  vertices_map;   //!< id -> graph id
+
+     typename boost::property_map<G, boost::vertex_index_t>::type vertIndex;
+
+     typedef std::map<V, size_t> IndexMap;
+     IndexMap mapIndex;
+     boost::associative_property_map<IndexMap> propmapIndex;
+
+     //@}
+
+     //! @name Graph Modification
+     //@{
+     //! Used for storing the removed_edges
+
+     std::deque< T_E > removed_edges;
+
+     //@}
+
+
+
+     //! @name The Graph
+     //@{
+     //! @brief Constructor
+     /*!
+       - Prepares the graph to be of type gtype
+       - inserts the vertices
+       - The vertices must be checked (if necessary)  before calling the constructor
+       */
+     Pgr_base_graph< G , T_V, T_E >(
+             const std::vector< T_V > &vertices, graphType gtype)
+         : graph(vertices.size()),
+         m_num_vertices(vertices.size()),
+         m_gType(gtype),
+         vertIndex(boost::get(boost::vertex_index, graph)),
+         propmapIndex(mapIndex) {
+             //add_vertices(vertices);
+             // This code does not work with contraction
+#if 0
+             pgassert(pgrouting::check_vertices(vertices) == 0);
+#endif
+             size_t i = 0;
+             for (auto vi = boost::vertices(graph).first;
+                     vi != boost::vertices(graph).second; ++vi) {
+                 vertices_map[vertices[i].id] = (*vi);
+                 graph[(*vi)].cp_members(vertices[i]);
+                 //put(propmapIndex, *vi, num_vertices());
+                 pgassert(vertIndex[*vi] == i);
+                 ++i;
+             }
+
+             std::ostringstream log;
+             for (auto iter = vertices_map.begin(); iter != vertices_map.end(); iter++) {
+                 log << "Key: " << iter->first <<"\tValue:" << iter->second << "\n";
+             }
+             for (const auto vertex : vertices) {
+                 pgassert(has_vertex(vertex.id));
+             }
+             //pgassert(mapIndex.size() == vertices.size());
+         }
+
+     /*!
+       Prepares the _graph_ to be of type gtype with 0 vertices
+       */
+     explicit Pgr_base_graph< G , T_V, T_E >(graphType gtype)
+         : graph(0),
+         m_num_vertices(0),
+         m_gType(gtype),
+         vertIndex(boost::get(boost::vertex_index, graph)),
+         propmapIndex(mapIndex) {
+         }
+
+
+     //! @name Insert edges
+     //@{
+     /*! @brief Inserts *count* edges of type *T* into the graph
+      *
+      *  Converts the edges to a std::vector<T> & calls the overloaded
+      *  twin function.
+      *
+      *  @param edges
+      *  @param count
+      */
+     template < typename T >
+         void insert_edges(const T *edges, int64_t count) {
+             insert_edges(std::vector < T >(edges, edges + count));
+         }
+
+     template < typename T>
+         void insert_edges(T *edges, int64_t count, bool) {
+             for (int64_t i = 0; i < count; ++i) {
+                 pgassert(has_vertex(edges[i].source));
+                 pgassert(has_vertex(edges[i].target));
+                 graph_add_edge_no_create_vertex(edges[i]);
+             }
+         }
+
+
+     /*! @brief Inserts *count* edges of type *pgr_edge_t* into the graph
+
+        The set of edges should not have an illegal vertex defined
+
+        When the graph is empty calls:
+        - @b extract_vertices
+        and throws an exception if there are illegal vertices.
+
+
+        When developing:
+          - if an illegal vertex is found an exception is thrown
+          - That means that the set of vertices should be checked in the
+            code that is being developed
+
+        No edge is inserted when there is an error on the vertices
+
+        @param edges
+      */
+     template < typename T >
+         void insert_edges(const std::vector < T > &edges) {
+#if 0
+             // This code does not work with contraction
+             if (num_vertices() == 0) {
+                 auto vertices = pgrouting::extract_vertices(edges);
+                 pgassert(pgrouting::check_vertices(vertices) == 0);
+                 add_vertices(vertices);
+             }
+#endif
+             for (const auto edge : edges) {
+                 graph_add_edge(edge);
+             }
+         }
+     //@}
+
+ private:
+     /*! @brief adds the vertices into the graph
+      *
+      * PRECONDITIONS:
+      * - The graph has not being initialized before
+      * - There are no dupicated vertices
+      *
+      * ~~~~~{.c}
+      * precondition(boost::num_vertices(graph) == 0);
+      * for (vertex : vertices)
+      *    precondition(!has_vertex(vertex.id));
+      * ~~~~~
+      * 
+      *
+      * POSTCONDITIONS:
+      * ~~~~~{.c}
+      * postcondition(boost::num_vertices(graph) == vertices.size());
+      * for (vertex : vertices)
+      *    postcondition(has_vertex(vertex.id));
+      * ~~~~~
+      *
+      * Example use:
+      *
+      * ~~~~~{.c}
+      * pgrouting::DirectedGraph digraph(gType);
+      * auto vertices(pgrouting::extract_vertices(data_edges, total_edges));
+      * digraph.add_vertices(vertices);
+      * ~~~~~
+      *
+      */
+     void add_vertices(
+             std::vector< T_V > vertices) {
+         pgassert(m_num_vertices == 0);
+         for (const auto vertex : vertices) {
+             pgassert(!has_vertex(vertex.id));
+
+             auto v =  add_vertex(graph);
+             vertices_map[vertex.id] =  v;
+             graph[v].cp_members(vertex);
+             //put(propmapIndex, v, num_vertices());
+
+             pgassert(has_vertex(vertex.id));
+         }
+         //pgassert(mapIndex.size() == vertices.size());
+         pgassert(num_vertices() == vertices.size());
+     }
+
+
+ public:
+     //! @name boost wrappers with original id
+     //@{
+     //! @brief get the out-degree  of a vertex
+
+     /*!
+       @returns 0: The out degree of a vertex that its not in the graph
+
+       @param [in] vertex_id original vertex id
+       */
+     degree_size_type out_degree(int64_t vertex_id) const {
+         if (!has_vertex(vertex_id)) {
+             return 0;
+         }
+         return out_degree(get_V(vertex_id));
+     }
+     degree_size_type in_degree(int64_t vertex_id) const {
+         if (!has_vertex(vertex_id)) {
+             return 0;
+         }
+         return is_directed()?
+             in_degree(get_V(vertex_id))
+             :  out_degree(get_V(vertex_id));
+     }
+
+
+     /*! @brief get the vertex descriptor of the vertex
+
+       When the vertex does not exist
+       - creates a new vetex
+
+       @return V: The vertex descriptor of the vertex
+       */
+     V get_V(const T_V &vertex) {
+         auto vm_s(vertices_map.find(vertex.id));
+         if (vm_s == vertices_map.end()) {
+             auto v =  add_vertex(graph);
+             graph[v].cp_members(vertex);
+             vertices_map[vertex.id] =  v;
+             put(propmapIndex, v, m_num_vertices++);
+             return v;
+         }
+         return vm_s->second;
+     }
+
+     /*! @brief get the vertex descriptor of the vid
+
+       Call has_vertex(vid) before calling this function
+
+       @return V: The vertex descriptor of the vertex
+       */
+     V get_V(int64_t vid) const {
+         pgassert(has_vertex(vid));
+         return vertices_map.find(vid)->second;
+     }
+
+     //! @brief True when vid is in the graph
+     bool has_vertex(int64_t vid) const {
+         return vertices_map.find(vid) != vertices_map.end();
+     }
+
+
+
+     //! @name to be or not to be
+     //@{
+
+     bool is_directed() const {return m_gType == DIRECTED;}
+     bool is_undirected() const {return m_gType == UNDIRECTED;}
+     bool is_source(V v_idx, E e_idx) const {return v_idx == source(e_idx);}
+     bool is_target(V v_idx, E e_idx) const {return v_idx == target(e_idx);}
+
+     //@}
+
+     //! @name boost wrappers with V
+     //@{
+
+
+     T_E& operator[](E e_idx) {return graph[e_idx];}
+     const T_E& operator[](E e_idx) const {return graph[e_idx];}
+
+     T_V& operator[](V v_idx) {return graph[v_idx];}
+     const T_V& operator[](V v_idx) const {return graph[v_idx];}
+
+     V source(E e_idx) const {return boost::source(e_idx, graph);}
+     V target(E e_idx) const {return boost::target(e_idx, graph);}
+     V adjacent(V v_idx, E e_idx) const {
+         pgassert(is_source(v_idx, e_idx) || is_target(v_idx, e_idx));
+         return is_source(v_idx, e_idx)?
+             target(e_idx) :
+             source(e_idx);
+     }
+
+
+     /*! @brief in degree of a vertex
+      *
+      * - when its undirected there is no "concept" of in degree
+      *   - out degree is returned
+      * - on directed in degree of vertex is returned
+      */
+     degree_size_type in_degree(V &v) const {
+         return is_directed()?
+             boost::in_degree(v, graph) :
+             boost::out_degree(v, graph);
+     }
+
+     /*! @brief out degree of a vertex
+      *
+      * regardles of undirected or directed graph
+      * - out degree is returned
+      */
+     degree_size_type out_degree(V &v) const {
+         return boost::out_degree(v, graph);
+     }
+
+     //@}
+
+
+     //! @name edge disconection/reconnection
+     //@{
+     //! @brief Disconnects all edges from p_from to p_to
+     /*!
+
+       - No edge is disconnected if the vertices id's do not exist in the graph
+       - All removed edges are stored for future reinsertion
+       - All parallel edges are disconnected (automatically by boost)
+
+       ![disconnect_edge(2,3) on an UNDIRECTED graph](disconnectEdgeUndirected.png)
+       ![disconnect_edge(2,3) on a DIRECTED graph](disconnectEdgeDirected.png)
+
+       @param [in] p_from original vertex id of the starting point of the edge
+       @param [in] p_to   original vertex id of the ending point of the edge
+       */
+     void disconnect_edge(int64_t p_from, int64_t p_to);
+
+
+     //! @brief Disconnects the outgoing edges of a vertex
+     /*!
+
+       - No edge is disconnected if it doesn't exist in the graph
+       - Removed edges are stored for future reinsertion
+       - all outgoing edges with the edge_id are removed if they exist
+
+       @param [in] vertex_id original vertex
+       @param [in] edge_id original edge_id
+       */
+     void disconnect_out_going_edge(int64_t vertex_id, int64_t edge_id);
+
+
+
+
+     //! @brief Disconnects all incoming and outgoing edges from the vertex
+     /*!
+       boost::graph doesn't recommend th to insert/remove vertices, so a vertex removal is
+       simulated by disconnecting the vertex from the graph
+
+       - No edge is disconnected if the vertices id's do not exist in the graph
+       - All removed edges are stored for future reinsertion
+       - All parallel edges are disconnected (automatically by boost)
+
+       ![disconnect_vertex(2) on an UNDIRECTED graph](disconnectVertexUndirected.png)
+       ![disconnect_vertex(2) on a DIRECTED graph](disconnectVertexDirected.png)
+
+       @param [in] p_vertex original vertex id of the starting point of the edge
+       */
+     void disconnect_vertex(int64_t p_vertex);
+     void disconnect_vertex(V vertex);
+
+
+     //! @brief Reconnects all edges that were removed
+     void restore_graph();
+
+     //@}
+
+     //! @name only for stand by program
+     //@{
+
+     friend std::ostream& operator<<(
+             std::ostream &log, const Pgr_base_graph< G, T_V, T_E > &g) {
+         typename Pgr_base_graph< G, T_V, T_E >::EO_i out, out_end;
+
+         for (auto vi = vertices(g.graph).first;
+                 vi != vertices(g.graph).second; ++vi) {
+             if ((*vi) >= g.m_num_vertices) break;
+             log << (*vi) << ": " << " out_edges_of(" << g.graph[(*vi)] << "):";
+             for (boost::tie(out, out_end) = out_edges(*vi, g.graph);
+                     out != out_end; ++out) {
+                 log << ' '
+                     << g.graph[*out].id << "=("
+                     << g[g.source(*out)].id << ", "
+                     << g[g.target(*out)].id << ") = "
+                     << g.graph[*out].cost <<"\t";
+             }
+             log << std::endl;
+         }
+         return log;
+     }
+
+     //@}
+
+
+     int64_t get_edge_id(V from, V to, double &distance) const;
+
+     size_t num_vertices() const { return boost::num_vertices(graph);}
+
+
+     void graph_add_edge(const T_E &edge);
+
+     template < typename T >
+         void graph_add_edge(const T &edge);
+
+
+     /** Use this function when the vertices are already inserted in the graph */
+     template < typename T>
+     void graph_add_edge_no_create_vertex(const T &edge) {
+         bool inserted;
+         E e;
+         if ((edge.cost < 0) && (edge.reverse_cost < 0))
+             return;
+
+#if 0
+         std::ostringstream log;
+         for (auto iter = vertices_map.begin(); iter != vertices_map.end(); iter++) {
+             log << "Key: " << iter->first <<"\tValue:" << iter->second << "\n";
+         }
+         pgassertwm(has_vertex(edge.source), log.str().c_str());
+         pgassert(has_vertex(edge.target));
+#endif
+
+         auto vm_s = get_V(edge.source);
+         auto vm_t = get_V(edge.target);
+
+
+         if (edge.cost >= 0) {
+             boost::tie(e, inserted) =
+                 boost::add_edge(vm_s, vm_t, graph);
+             graph[e].cost = edge.cost;
+             graph[e].id = edge.id;
+         }
+
+         if (edge.reverse_cost >= 0
+                 && (is_directed() || (is_undirected() && edge.cost != edge.reverse_cost))) {
+             boost::tie(e, inserted) =
+                 boost::add_edge(vm_t, vm_s, graph);
+             graph[e].cost = edge.reverse_cost;
+             graph[e].id = edge.id;
+         }
+     }
+};
+
+
+
+
+template < class G, typename T_V, typename T_E >
+void
+Pgr_base_graph< G, T_V, T_E >::disconnect_edge(int64_t p_from, int64_t p_to) {
+    T_E d_edge;
+
+    // nothing to do, the vertex doesn't exist
+    if (!has_vertex(p_from) || !has_vertex(p_to)) return;
+
+    EO_i out, out_end;
+    V g_from(get_V(p_from));
+    V g_to(get_V(p_to));
+
+    // store the edges that are going to be removed
+    for (boost::tie(out, out_end) = out_edges(g_from, graph);
+            out != out_end; ++out) {
+        if (target(*out) == g_to) {
+            d_edge.id = graph[*out].id;
+            d_edge.source = graph[source(*out)].id;
+            d_edge.target = graph[target(*out)].id;
+            d_edge.cost = graph[*out].cost;
+            removed_edges.push_back(d_edge);
+        }
+    }
+    // the actual removal
+    boost::remove_edge(g_from, g_to, graph);
+}
+
+
+
+template < class G, typename T_V, typename T_E >
+void
+Pgr_base_graph< G, T_V, T_E >::disconnect_out_going_edge(
+        int64_t vertex_id, int64_t edge_id) {
+    T_E d_edge;
+
+    // nothing to do, the vertex doesn't exist
+    if (!has_vertex(vertex_id)) return;
+    auto v_from(get_V(vertex_id));
+
+    EO_i out, out_end;
+    bool change = true;
+    // store the edge that are going to be removed
+    while (change) {
+        change = false;
+        for (boost::tie(out, out_end) = out_edges(v_from, graph);
+                out != out_end; ++out) {
+            if (graph[*out].id  == edge_id) {
+                d_edge.id = graph[*out].id;
+                d_edge.source = graph[source(*out)].id;
+                d_edge.target = graph[target(*out)].id;
+                d_edge.cost = graph[*out].cost;
+                removed_edges.push_back(d_edge);
+                boost::remove_edge((*out), graph);
+                change = true;
+                break;
+            }
+        }
+    }
+}
+
+
+template < class G, typename T_V, typename T_E >
+void
+Pgr_base_graph< G, T_V, T_E >::disconnect_vertex(int64_t vertex) {
+    if (!has_vertex(vertex)) return;
+    disconnect_vertex(get_V(vertex));
+}
+
+template < class G, typename T_V, typename T_E >
+void
+Pgr_base_graph< G, T_V, T_E >::disconnect_vertex(V vertex) {
+    T_E d_edge;
+
+    EO_i out, out_end;
+    // store the edges that are going to be removed
+    for (boost::tie(out, out_end) = out_edges(vertex, graph);
+            out != out_end; ++out) {
+        d_edge.id = graph[*out].id;
+        d_edge.source = graph[source(*out)].id;
+        d_edge.target = graph[target(*out)].id;
+        d_edge.cost = graph[*out].cost;
+        removed_edges.push_back(d_edge);
+    }
+
+    // special case
+    if (m_gType == DIRECTED) {
+        EI_i in, in_end;
+        for (boost::tie(in, in_end) = in_edges(vertex, graph);
+                in != in_end; ++in) {
+            d_edge.id = graph[*in].id;
+            d_edge.source = graph[source(*in)].id;
+            d_edge.target = graph[target(*in)].id;
+            d_edge.cost = graph[*in].cost;
+            removed_edges.push_back(d_edge);
+        }
+    }
+
+    // delete incoming and outgoing edges from the vertex
+    boost::clear_vertex(vertex, graph);
+}
+
+template < class G, typename T_V, typename T_E >
+void
+Pgr_base_graph< G, T_V, T_E >::restore_graph() {
+    while (removed_edges.size() != 0) {
+        graph_add_edge(removed_edges[0]);
+        removed_edges.pop_front();
+    }
+}
+
+
+template < class G, typename T_V, typename T_E >
+int64_t
+Pgr_base_graph< G, T_V, T_E >::get_edge_id(
+        V from,
+        V to,
+        double &distance) const {
+    E e;
+    EO_i out_i, out_end;
+    V v_source, v_target;
+    double minCost =  (std::numeric_limits<double>::max)();
+    int64_t minEdge = -1;
+    for (boost::tie(out_i, out_end) = boost::out_edges(from, graph);
+            out_i != out_end; ++out_i) {
+        e = *out_i;
+        v_target = target(e);
+        v_source = source(e);
+        if ((from == v_source) && (to == v_target)
+                && (distance == graph[e].cost))
+            return graph[e].id;
+        if ((from == v_source) && (to == v_target)
+                && (minCost > graph[e].cost)) {
+            minCost = graph[e].cost;
+            minEdge = graph[e].id;
+        }
+    }
+    distance = minEdge == -1? 0: minCost;
+    return minEdge;
+}
+
+
+template < class G, typename T_V, typename T_E >
+void
+Pgr_base_graph< G, T_V, T_E >::graph_add_edge(const T_E &edge ) {
+    bool inserted;
+    typename Pgr_base_graph< G, T_V, T_E >::LI vm_s, vm_t;
+    typename Pgr_base_graph< G, T_V, T_E >::E e;
+
+    vm_s = vertices_map.find(edge.source);
+    if (vm_s == vertices_map.end()) {
+        vertices_map[edge.source]=  m_num_vertices;
+        vm_s = vertices_map.find(edge.source);
+    }
+
+    vm_t = vertices_map.find(edge.target);
+    if (vm_t == vertices_map.end()) {
+        vertices_map[edge.target]=  m_num_vertices;
+        vm_t = vertices_map.find(edge.target);
+    }
+
+    if (edge.cost >= 0) {
+        boost::tie(e, inserted) =
+            boost::add_edge(vm_s->second, vm_t->second, graph);
+        graph[e].cp_members(edge);
+    }
+}
+
+
+template < class G, typename T_V, typename T_E >
+template < typename T>
+void
+Pgr_base_graph< G, T_V, T_E >::graph_add_edge(const T &edge) {
+    bool inserted;
+    typename Pgr_base_graph< G, T_V, T_E >::E e;
+    if ((edge.cost < 0) && (edge.reverse_cost < 0))
+        return;
+
+    /*
+     * true: for source
+     * false: for target
+     */
+    auto vm_s = get_V(T_V(edge, true));
+    auto vm_t = get_V(T_V(edge, false));
+
+    pgassert(vertices_map.find(edge.source) != vertices_map.end());
+    pgassert(vertices_map.find(edge.target) != vertices_map.end());
+    if (edge.cost >= 0) {
+        boost::tie(e, inserted) =
+            boost::add_edge(vm_s, vm_t, graph);
+        graph[e].cost = edge.cost;
+        graph[e].id = edge.id;
+    }
+
+    if (edge.reverse_cost >= 0) {
+        boost::tie(e, inserted) =
+            boost::add_edge(vm_t, vm_s, graph);
+
+        graph[e].cost = edge.reverse_cost;
+        graph[e].id = edge.id;
+    }
+}
+
+
+/******************  PRIVATE *******************/
+
+}  // namespace graph
+}  // namespace pgrouting
+#endif  // INCLUDE_CPP_COMMON_PGR_BASE_GRAPH_HPP_
diff --git a/include/cpp_common/pgr_bidirectional.hpp b/include/cpp_common/pgr_bidirectional.hpp
new file mode 100644
index 0000000..35d8bcd
--- /dev/null
+++ b/include/cpp_common/pgr_bidirectional.hpp
@@ -0,0 +1,242 @@
+/*PGR-GNU*****************************************************************
+File: pgr_bdAstar.hpp 
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail:
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+/*! @file */
+
+#ifndef INCLUDE_CPP_COMMON_PGR_BIDIRECTIONAL_HPP_
+#define INCLUDE_CPP_COMMON_PGR_BIDIRECTIONAL_HPP_
+#pragma once
+
+
+#include <boost/config.hpp>
+#include <boost/graph/adjacency_list.hpp>
+#include <boost/graph/dijkstra_shortest_paths.hpp>
+
+#include <string>
+#include <queue>
+#include <utility>
+#include <vector>
+#include <limits>
+#include <functional>
+
+
+#include "cpp_common/pgr_assert.h"
+
+#include "cpp_common/basePath_SSEC.hpp"
+#include "cpp_common/pgr_base_graph.hpp"
+
+
+namespace pgrouting {
+namespace bidirectional {
+
+
+template < typename G >
+class Pgr_bidirectional {
+ protected:
+    typedef typename G::V V;
+    typedef typename G::E E;
+
+    typedef std::pair<double, V> Cost_Vertex_pair;
+    typedef typename std::priority_queue<
+        Cost_Vertex_pair,
+        std::vector<Cost_Vertex_pair>,
+        std::greater<Cost_Vertex_pair> > Priority_queue;
+
+
+ public:
+    explicit Pgr_bidirectional(G &pgraph):
+        graph(pgraph),
+        INF((std::numeric_limits<double>::max)()) {
+        m_log << "constructor\n";
+    };
+
+    ~Pgr_bidirectional() = default;
+
+    std::string log() const {return m_log.str();}
+    void clean_log() {m_log.clear();}
+    void clear() {
+        while (!forward_queue.empty()) forward_queue.pop();
+        while (!backward_queue.empty()) backward_queue.pop();
+
+        backward_finished.clear();
+        backward_edge.clear();
+        backward_predecessor.clear();
+        backward_cost.clear();
+
+        forward_finished.clear();
+        forward_edge.clear();
+        forward_predecessor.clear();
+        forward_cost.clear();
+    }
+
+
+ protected:
+    void initialize() {
+        m_log << "initializing\n";
+        clear();
+        forward_predecessor.resize(graph.num_vertices());
+        forward_finished.resize(graph.num_vertices(), false);
+        forward_edge.resize(graph.num_vertices(), -1);
+        forward_cost.resize(graph.num_vertices(), INF);
+        std::iota(forward_predecessor.begin(), forward_predecessor.end(), 0);
+
+        backward_predecessor.resize(graph.num_vertices());
+        backward_finished.resize(graph.num_vertices(), false);
+        backward_edge.resize(graph.num_vertices(), -1);
+        backward_cost.resize(graph.num_vertices(), INF);
+        std::iota(backward_predecessor.begin(), backward_predecessor.end(), 0);
+
+        v_min_node = -1;
+        best_cost = INF;
+    }
+
+    Path bidirectional(bool only_cost) {
+        m_log << "bidir_astar\n";
+
+        Pgr_bidirectional< G >::initialize();
+
+        forward_cost[v_source] = 0;
+        forward_queue.push(std::make_pair(0.0, v_source));
+
+
+        backward_cost[v_target] = 0;
+        backward_queue.push(std::make_pair(0.0, v_target));
+
+        while (!forward_queue.empty() &&  !backward_queue.empty()) {
+            auto forward_node = forward_queue.top();
+            auto backward_node = backward_queue.top();
+            /*
+             * done: there is no path with lower cost
+             */
+            if (forward_node.first == INF || backward_node.first == INF) {
+                break;
+            }
+
+            /*
+             * Explore from the cheapest side
+             */
+            if (backward_node.first < forward_node.first) {
+                backward_queue.pop();
+                if (!backward_finished[backward_node.second]) {
+                    explore_backward(backward_node);
+                }
+                if (found(backward_node.second)) {
+                    break;
+                }
+            } else {
+                forward_queue.pop();
+                if (!forward_finished[forward_node.second]) {
+                    explore_forward(forward_node);
+                }
+                if (found(forward_node.second)) {
+                    break;
+                }
+            }
+        }
+
+        if (best_cost == INF) return Path();
+
+        Path forward_path(
+                graph,
+                v_source,
+                v_min_node,
+                forward_predecessor,
+                forward_cost,
+                only_cost,
+                true);
+        Path backward_path(
+                graph,
+                v_target,
+                v_min_node,
+                backward_predecessor,
+                backward_cost,
+                only_cost,
+                false);
+        m_log << forward_path;
+        backward_path.reverse();
+        m_log << backward_path;
+        forward_path.append(backward_path);
+        m_log << forward_path;
+        return forward_path;
+    }
+
+
+
+    bool found(const V &node) {
+        /*
+         * Update common node
+         */
+        if (forward_finished[node] && backward_finished[node]) {
+            if (best_cost >= forward_cost[node] + backward_cost[node]) {
+                v_min_node = node;
+                best_cost =  forward_cost[node] + backward_cost[node];
+                return false;
+            } else {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    virtual
+    void explore_forward(const Cost_Vertex_pair &node) = 0;
+
+    virtual
+    void explore_backward(const Cost_Vertex_pair &node) = 0;
+
+ protected:
+    G &graph;
+    V v_source;  //!< source descriptor
+    V v_target;  //!< target descriptor
+    V v_min_node;  //!< target descriptor
+
+    double INF;  //!< infinity
+
+    mutable std::ostringstream m_log;
+    Priority_queue forward_queue;
+    Priority_queue backward_queue;
+
+    double best_cost;
+    bool cost_only;
+
+    std::vector<bool> backward_finished;
+    std::vector<int64_t> backward_edge;
+    std::vector<V> backward_predecessor;
+    std::vector<double> backward_cost;
+
+    std::vector<bool> forward_finished;
+    std::vector<int64_t> forward_edge;
+    std::vector<V> forward_predecessor;
+    std::vector<double> forward_cost;
+};
+
+}  // namespace bidirectional
+}  // namespace pgrouting
+
+#endif  // INCLUDE_CPP_COMMON_PGR_BIDIRECTIONAL_HPP_
diff --git a/include/cpp_common/pgr_messages.h b/include/cpp_common/pgr_messages.h
new file mode 100644
index 0000000..3acb37a
--- /dev/null
+++ b/include/cpp_common/pgr_messages.h
@@ -0,0 +1,126 @@
+/*PGR-GNU*****************************************************************
+
+FILE: pgr_messages.h
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+/*! @file */
+
+#ifndef INCLUDE_CPP_COMMON_PGR_MESSAGES_H_
+#define INCLUDE_CPP_COMMON_PGR_MESSAGES_H_
+#pragma once
+
+
+
+#include <string>
+#include <sstream>
+
+namespace pgrouting {
+
+class Pgr_messages {
+ public:
+    Pgr_messages() = default;
+    Pgr_messages(const Pgr_messages&) { }
+    Pgr_messages& operator=(const Pgr_messages&) {
+        return *this;
+    }
+
+    /*! @brief get_log
+     *
+     * \returns the current contents of the log and clears the log
+     *
+     */
+    std::string get_log() const;
+
+    /*! @brief get_notice
+     *
+     * @returns the current contents of the log and clears the log
+     *
+     */
+    std::string get_notice() const;
+
+    /*! @brief get_error
+     *
+     * @returns the current contents of the log and clears the log
+     */
+    bool has_error() const;
+
+    /*! @brief get_error
+     *
+     * @returns the current contents of the log and clears the log
+     *
+     */
+    std::string get_error() const;
+
+    /*! @brief clear
+     *
+     * Clears All the messages
+     *
+     */
+    void clear();
+
+#ifndef NDEBUG
+    /*! @brief get_error
+     *
+     * @returns the current contents of the log and clears the log
+     *
+     */
+    std::string get_dbglog() const;
+#endif
+
+#if 0
+    void entering(const char* function) {
+#if defined(__MINGW32__) || defined(_MSC_VER)
+#else
+    log << "ENTERING: " << function << "\n";
+#endif
+    }
+#endif
+
+
+ public:
+    /*! Stores the hint information*/
+    mutable std::ostringstream log;
+    /*! Stores the notice information*/
+    mutable std::ostringstream notice;
+    /*! Stores the error information*/
+    mutable std::ostringstream error;
+#ifndef NDEBUG
+    mutable std::ostringstream dbg_log;
+#endif
+};
+
+
+
+#if defined(__MINGW32__) || defined(_MSC_VER)
+#define ENTERING()
+#define EXITING()
+#else
+#define ENTERING() msg.log << "--> " << __PRETTY_FUNCTION__ << "\n"
+#define EXITING() msg.log << "<-- " << __PRETTY_FUNCTION__ << "\n"
+#endif
+
+
+
+}  // namespace pgrouting
+
+#endif  // INCLUDE_CPP_COMMON_PGR_MESSAGES_H_
diff --git a/include/cpp_common/xy_vertex.h b/include/cpp_common/xy_vertex.h
new file mode 100644
index 0000000..90668de
--- /dev/null
+++ b/include/cpp_common/xy_vertex.h
@@ -0,0 +1,104 @@
+/*PGR-GNU*****************************************************************
+ *
+
+ Copyright (c) 2015 Celia Virginia Vergara Castillo
+ vicky_vergara at hotmail.com
+
+ ------
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+/*! @file */
+
+#ifndef INCLUDE_CPP_COMMON_XY_VERTEX_H_
+#define INCLUDE_CPP_COMMON_XY_VERTEX_H_
+#pragma once
+
+#ifdef Max
+#undef Max
+#endif
+#ifdef Min
+#undef Min
+#endif
+
+#include <CGAL/Simple_cartesian.h>
+#include <vector>
+
+#include "c_types/pgr_edge_xy_t.h"
+
+
+namespace pgrouting {
+
+// typedef boost::geometry::model::d2::point_xy<double> Point;
+typedef CGAL::Simple_cartesian<double> Simple_cartasian;
+typedef Simple_cartasian::Point_2  Point;
+
+
+class XY_vertex {
+ public:
+  XY_vertex() = default;
+  XY_vertex(const XY_vertex &) = default;
+  XY_vertex(const int64_t _id, double _x, double _y) :
+      id(_id), point(_x, _y) {
+      }
+
+  XY_vertex(const Pgr_edge_xy_t &other, bool is_source) :
+      id(is_source? other.source : other.target),
+      point(is_source? Point(other.x1, other.y1) : Point(other.x2, other.y2))
+      {}
+
+
+  double x() const {return point.x();}
+  double y() const {return point.y();}
+
+  inline void cp_members(const XY_vertex &other) {
+      this->id = other.id;
+      this->point = other.point;
+  }
+
+  friend std::ostream& operator<<(std::ostream& log, const XY_vertex &v);
+  bool operator==(const XY_vertex &rhs) const;
+
+ public:
+  int64_t id;
+  Point point;
+};
+
+size_t
+check_vertices(std::vector < XY_vertex > vertices);
+
+std::vector < XY_vertex >
+extract_vertices(
+    const Pgr_edge_xy_t *data_edges, int64_t count);
+
+std::vector < XY_vertex >
+extract_vertices(
+    const std::vector < Pgr_edge_xy_t > &data_edges);
+
+#if 0
+std::vector < XY_vertex > extract_vertices(
+    std::vector < XY_vertex > vertices,
+    const Pgr_edge_xy_t *data_edges, int64_t count);
+
+std::vector < XY_vertex > extract_vertices(
+    std::vector < XY_vertex > vertices,
+    const std::vector < Pgr_edge_xy_t > data_edges);
+#endif
+
+}  // namespace pgrouting
+
+#endif  // INCLUDE_CPP_COMMON_XY_VERTEX_H_
diff --git a/include/dijkstra/pgr_dijkstra.hpp b/include/dijkstra/pgr_dijkstra.hpp
new file mode 100644
index 0000000..eb52436
--- /dev/null
+++ b/include/dijkstra/pgr_dijkstra.hpp
@@ -0,0 +1,855 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_DIJKSTRA_PGR_DIJKSTRA_HPP_
+#define INCLUDE_DIJKSTRA_PGR_DIJKSTRA_HPP_
+#pragma once
+
+#include <boost/config.hpp>
+#include <boost/graph/adjacency_list.hpp>
+#include <boost/graph/dijkstra_shortest_paths.hpp>
+
+#include <deque>
+#include <set>
+#include <vector>
+#include <algorithm>
+#include <sstream>
+#include <functional>
+#include <limits>
+
+#include "cpp_common/basePath_SSEC.hpp"
+#include "cpp_common/pgr_base_graph.hpp"
+#if 0
+#include "./../../common/src/signalhandler.h"
+#endif
+
+
+template < class G > class Pgr_dijkstra;
+// user's functions
+// for development
+
+template < class G >
+std::deque<Path>
+pgr_drivingDistance(
+        G &graph,
+        std::vector< int64_t > start_vids,
+        double distance,
+        bool equicost,
+        std::ostringstream &log) {
+    Pgr_dijkstra< G > fn_dijkstra;
+    return fn_dijkstra.drivingDistance(
+            graph,
+            start_vids,
+            distance,
+            equicost,
+            log);
+}
+
+
+/* 1 to 1*/
+template < class G >
+Path
+pgr_dijkstra(
+        G &graph,
+        int64_t source,
+        int64_t target,
+        bool only_cost = false) {
+    Pgr_dijkstra< G > fn_dijkstra;
+    return fn_dijkstra.dijkstra(graph, source, target, only_cost);
+}
+
+
+
+
+//******************************************
+
+template < class G >
+class Pgr_dijkstra {
+ public:
+     typedef typename G::V V;
+     typedef typename G::E E;
+
+     //! @name drivingDistance
+     //@{
+     //! 1 to distance
+     Path drivingDistance(
+             G &graph,
+             int64_t start_vertex,
+             double distance) {
+        if (execute_drivingDistance(
+                graph,
+                start_vertex,
+                distance)) {
+            auto path = Path(graph,
+                    start_vertex,
+                    distance,
+                    predecessors,
+                    distances);
+
+            std::sort(path.begin(), path.end(),
+                    [](const Path_t &l, const  Path_t &r)
+                    {return l.node < r.node;});
+            std::stable_sort(path.begin(), path.end(),
+                    [](const Path_t &l, const  Path_t &r)
+                    {return l.agg_cost < r.agg_cost;});
+            return path;
+        }
+
+        /* The result is empty */
+        Path p(start_vertex, start_vertex);
+        p.push_back({start_vertex, -1, 0, 0});
+        return p;
+     }
+
+     // preparation for many to distance
+     std::deque< Path > drivingDistance(
+             G &graph,
+             const std::vector< int64_t > start_vertex,
+             double distance,
+             bool equicost,
+             std::ostringstream &the_log) {
+         if (equicost) {
+             auto paths = drivingDistance_with_equicost(
+                     graph,
+                     start_vertex,
+                     distance);
+             the_log << log.str();
+             return paths;
+         } else {
+             return drivingDistance_no_equicost(
+                     graph,
+                     start_vertex,
+                     distance);
+         }
+     }
+
+
+
+
+
+
+     //@}
+
+     //! @name Dijkstra
+     //@{
+     //! Dijkstra 1 to 1
+     Path dijkstra(
+             G &graph,
+             int64_t start_vertex,
+             int64_t end_vertex,
+             bool only_cost = false) {
+         clear();
+
+         // adjust predecessors and distances vectors
+         predecessors.resize(graph.num_vertices());
+         distances.resize(graph.num_vertices());
+
+
+         if (!graph.has_vertex(start_vertex)
+                 || !graph.has_vertex(end_vertex)) {
+             return Path(start_vertex, end_vertex);
+         }
+
+         // get the graphs source and target
+         auto v_source(graph.get_V(start_vertex));
+         auto v_target(graph.get_V(end_vertex));
+
+         // perform the algorithm
+         dijkstra_1_to_1(graph, v_source, v_target);
+
+         // get the results
+         return Path(
+                 graph,
+                 v_source, v_target,
+                 predecessors, distances,
+                 only_cost, true);
+     }
+
+
+
+
+
+
+     //! Dijkstra 1 to many
+     std::deque<Path> dijkstra(
+             G &graph,
+             int64_t start_vertex,
+             const std::vector< int64_t > &end_vertex,
+             bool only_cost) {
+         // adjust predecessors and distances vectors
+         clear();
+
+         predecessors.resize(graph.num_vertices());
+         distances.resize(graph.num_vertices());
+
+         // get the graphs source and target
+         if (!graph.has_vertex(start_vertex))
+             return std::deque<Path>();
+         auto v_source(graph.get_V(start_vertex));
+
+         std::set< V > s_v_targets;
+         for (const auto &vertex : end_vertex) {
+             if (graph.has_vertex(vertex)) {
+                 s_v_targets.insert(graph.get_V(vertex));
+             }
+         }
+
+         std::vector< V > v_targets(s_v_targets.begin(), s_v_targets.end());
+         // perform the algorithm
+         dijkstra_1_to_many(graph, v_source, v_targets);
+
+         std::deque< Path > paths;
+         // get the results // route id are the targets
+         paths = get_paths(graph, v_source, v_targets, only_cost);
+
+         std::stable_sort(paths.begin(), paths.end(),
+                 [](const Path &e1, const Path &e2)->bool {
+                 return e1.end_id() < e2.end_id();
+                 });
+
+         return paths;
+     }
+
+     // preparation for many to 1
+     std::deque<Path> dijkstra(
+             G &graph,
+             const std::vector < int64_t > &start_vertex,
+             int64_t end_vertex,
+             bool only_cost) {
+         std::deque<Path> paths;
+
+         for (const auto &start : start_vertex) {
+             paths.push_back(
+                     dijkstra(graph, start, end_vertex, only_cost));
+         }
+
+         std::stable_sort(paths.begin(), paths.end(),
+                 [](const Path &e1, const Path &e2)->bool {
+                 return e1.start_id() < e2.start_id();
+                 });
+         return paths;
+     }
+
+
+     // preparation for many to many
+     std::deque<Path> dijkstra(
+             G &graph,
+             const std::vector< int64_t > &start_vertex,
+             const std::vector< int64_t > &end_vertex,
+             bool only_cost) {
+         // a call to 1 to many is faster for each of the sources
+         std::deque<Path> paths;
+         for (const auto &start : start_vertex) {
+             auto r_paths = dijkstra(graph, start, end_vertex, only_cost);
+             paths.insert(paths.begin(), r_paths.begin(), r_paths.end());
+         }
+
+         std::sort(paths.begin(), paths.end(),
+                 [](const Path &e1, const Path &e2)->bool {
+                 return e1.end_id() < e2.end_id();
+                 });
+         std::stable_sort(paths.begin(), paths.end(),
+                 [](const Path &e1, const Path &e2)->bool {
+                 return e1.start_id() < e2.start_id();
+                 });
+         return paths;
+     }
+
+     //@}
+
+ private:
+     //! Call to Dijkstra  1 source to 1 target
+     bool dijkstra_1_to_1(
+                 G &graph,
+                 V source,
+                 V target) {
+         try {
+             boost::dijkstra_shortest_paths(graph.graph, source,
+                     boost::predecessor_map(&predecessors[0])
+                     .weight_map(get(&G::G_T_E::cost, graph.graph))
+                     .distance_map(&distances[0])
+                     .visitor(dijkstra_one_goal_visitor(target)));
+         } catch(found_goals &) {
+             return true;
+         } catch (boost::exception const& ex) {
+             (void)ex;
+             throw;
+         } catch (std::exception &e) {
+             (void)e;
+             throw;
+         } catch (...) {
+             throw;
+         }
+         return true;
+     }
+
+     /** Call to Dijkstra  1 to distance
+      *
+      * Used on:
+      *   1 to distance
+      *   many to distance
+      *   On the first call of many to distance with equi_cost
+      */
+     bool dijkstra_1_to_distance(
+             G &graph,
+             V source,
+             double distance) {
+         try {
+             boost::dijkstra_shortest_paths(graph.graph, source,
+                     boost::predecessor_map(&predecessors[0])
+                     .weight_map(get(&G::G_T_E::cost, graph.graph))
+                     .distance_map(&distances[0])
+                     .visitor(dijkstra_distance_visitor(
+                             distance,
+                             nodesInDistance,
+                             distances)));
+         } catch(found_goals &) {
+             return true;
+         } catch (boost::exception const& ex) {
+             throw;
+             (void)ex;
+         } catch (std::exception &e) {
+             (void)e;
+             throw;
+         } catch (...) {
+             throw;
+         }
+         return true;
+     }
+
+     /** Call to Dijkstra  1 to distance no init
+      *
+      * Used on:
+      *   On the subsequent calls of many to distance with equi_cost
+      */
+     bool dijkstra_1_to_distance_no_init(
+             G &graph,
+             V source,
+             double distance) {
+         pgassert(predecessors.size() == graph.num_vertices());
+         pgassert(distances.size() == graph.num_vertices());
+         distances[source] = 0;
+         std::vector<boost::default_color_type> color_map(graph.num_vertices());
+         try {
+             boost::dijkstra_shortest_paths_no_init(graph.graph, source,
+                     make_iterator_property_map(
+                         predecessors.begin(),
+                         graph.vertIndex),
+                     make_iterator_property_map(
+                         distances.begin(),
+                         graph.vertIndex),
+                     get(&G::G_T_E::cost, graph.graph),
+                     graph.vertIndex,
+                     std::less<double>(),
+                     boost::closed_plus<double>(),
+                     static_cast<double>(0),
+                     dijkstra_distance_visitor_no_init(
+                         log,
+                         source,
+                         distance,
+                         predecessors,
+                         distances,
+                         color_map),
+                     boost::make_iterator_property_map(
+                         color_map.begin(),
+                         graph.vertIndex,
+                         color_map[0]));
+         } catch(found_goals &) {
+             return true;
+         } catch (boost::exception const& ex) {
+             (void)ex;
+             throw;
+         } catch (std::exception &e) {
+             (void)e;
+             throw;
+         } catch (...) {
+             throw;
+         }
+
+#if 0
+         /*
+          * Expensive assertion
+          */
+         for (V v = 0 ; v < predecessors.size(); ++v) {
+             log << "(" << predecessors[v] << "==" << v << "),";
+             if (v != source) {
+                 pgassertwm(predecessors[v] == v, log.str().c_str());
+             }
+         }
+#endif
+         return true;
+     }
+
+
+     /** @brief to use with driving distance
+      *
+      * Prepares the execution for a driving distance:
+      *
+      * @param graph
+      * @param start_vertex
+      * @param distance
+      *
+      * Results are kept on predecessor & distances
+      *
+      * @returns bool  @b True when results are found
+      */
+     bool execute_drivingDistance(
+             G &graph,
+             int64_t start_vertex,
+             double distance) {
+         clear();
+
+         predecessors.resize(graph.num_vertices());
+         distances.resize(graph.num_vertices());
+
+         // get source;
+         if (!graph.has_vertex(start_vertex)) {
+             return false;
+         }
+
+         return dijkstra_1_to_distance(
+                 graph,
+                 graph.get_V(start_vertex),
+                 distance);
+     }
+
+
+     /** @brief to use with driving distance
+      *
+      * Prepares the execution for a driving distance:
+      *
+      * @param graph
+      * @param start_vertex
+      * @param distance
+      *
+      * Results are kept on predecessor & distances
+      *
+      * @returns bool  @b True when results are found
+      */
+     bool execute_drivingDistance_no_init(
+             G &graph,
+             V start_vertex,
+             double distance) {
+         pgassert(predecessors.size() == graph.num_vertices());
+         pgassert(distances.size() == graph.num_vertices());
+
+         std::iota(predecessors.begin(), predecessors.end(), 0);
+
+#if 0
+         /*
+          * Expensive assertion
+          */
+         for (V i = 0 ; i < predecessors.size(); ++i) {
+             pgassert(i == predecessors[i]);
+         }
+#endif
+
+         return dijkstra_1_to_distance_no_init(
+                 graph,
+                 start_vertex,
+                 distance);
+     }
+
+     /* preparation for many to distance with equicost
+      *
+      * Idea:
+      *   The distances vector does not change
+      *   The predecessors vector does not change
+      *   The first @b valid execution is done normally:
+      *     - The distances will have:
+      *       - inf
+      *       - values < distance
+      *       - values > distance
+      *   Subsequent @b valid executions
+      *       - will not change the:
+      *         - values < distance
+      *   Don't know yet what happens to predecessors
+      */
+     std::deque< Path > drivingDistance_with_equicost(
+             G &graph,
+             const std::vector< int64_t > start_vertex,
+             double distance) {
+         clear();
+         log << "Number of edges:" << boost::num_edges(graph.graph) << "\n";
+
+         predecessors.resize(graph.num_vertices());
+         distances.resize(
+                 graph.num_vertices(),
+                 std::numeric_limits<double>::max());
+
+         /*
+          * Vector to store the different predessesors
+          * each is of size = graph.num_vertices()
+          *
+          * TODO(vicky)
+          * - figure out less storage if possible
+          */
+         std::deque< std::vector< V > > pred(start_vertex.size());
+
+         // perform the algorithm
+         size_t i = 0;
+         for (const auto &vertex : start_vertex) {
+             nodesInDistance.clear();
+             /*
+              * The vertex does not exist
+              *   Nothing to do
+              */
+             if (graph.has_vertex(vertex)) {
+                 if (execute_drivingDistance_no_init(
+                             graph,
+                             graph.get_V(vertex),
+                             distance)) {
+                     pred[i] = predecessors;
+                 }
+             }
+             ++i;
+         }
+
+
+         /*
+          * predecessors of vertices in the set are themselves
+          */
+         for (const auto &vertex : start_vertex) {
+             for (auto &p : pred) {
+                 if (!p.empty() & graph.has_vertex(vertex))
+                     p[graph.get_V(vertex)] = graph.get_V(vertex);
+             }
+         }
+
+
+        return get_drivingDistance_with_equicost_paths(
+                graph,
+                start_vertex,
+                pred,
+                distance);
+     }
+
+     /** @brief gets results in form of a container of paths
+      *
+      * @param [in] graph The graph that is being worked
+      * @param [in] start_vertex An array of vertices @b id
+      * @param [in] pred an array of predecessors
+      * @param [in] distance the max distance
+      */
+     std::deque< Path > get_drivingDistance_with_equicost_paths(
+             G &graph,
+             const std::vector< int64_t > &start_vertex,
+             std::deque< std::vector< V > > &pred,
+             double distance) {
+         /*
+          * precondition
+          */
+         pgassert(start_vertex.size() == pred.size());
+
+
+         /*
+          * Creating all the result "paths"
+          */
+         std::deque<Path> paths;
+         for (const auto vertex : start_vertex) {
+             paths.push_back(Path(vertex, vertex));
+             paths.back().push_back({vertex, -1, 0, 0});
+         }
+
+         /*
+          *  Ciclying the distances:
+          *  To which vertex do they belong to?
+          */
+         for (V d = 0; d < distances.size(); ++d) {
+             /*
+              * Sikiping distances greater than the one asked for
+              */
+             if (!(distances[d] <= distance)) continue;
+
+             for (auto i = start_vertex.size(); i > 0; --i) {
+                 /*
+                  * The vertex does not exist on the graph
+                  */
+                 if (pred[i - 1].empty()) {pgassert(false); continue;}
+
+
+                 /*
+                  * The predecessor = current then
+                  *  its unreachable to this vertex
+                  */
+                 if (pred[i - 1][d] == d) continue;
+
+                 auto cost = distances[d] - distances[pred[i - 1][d]];
+                 auto edge_id = graph.get_edge_id(pred[i - 1][d], d, cost);
+                 pgassert(edge_id != -1);
+                 paths[i - 1].push_back(
+                         {graph[d].id,
+                         edge_id, cost,
+                         distances[d]});
+                 break;
+             }
+         }
+
+         for (auto &path : paths) {
+             path.sort_by_node_agg_cost();
+         }
+         return paths;
+     }
+
+
+     // preparation for many to distance No equicost
+     std::deque< Path > drivingDistance_no_equicost(
+             G &graph,
+             const std::vector< int64_t > start_vertex,
+             double distance) {
+         std::deque< std::vector< V > > pred;
+         std::deque< std::vector< double > > dist;
+
+         // perform the algorithm
+         std::deque<Path> paths;
+         for (const auto &vertex : start_vertex) {
+             if (execute_drivingDistance(graph, vertex, distance)) {
+                 auto path = Path(
+                         graph,
+                         vertex,
+                         distance,
+                         predecessors,
+                         distances);
+                 path.sort_by_node_agg_cost();
+                 paths.push_back(path);
+             } else {
+                 Path p(vertex, vertex);
+                 p.push_back({vertex, -1, 0, 0});
+                 paths.push_back(p);
+             }
+         }
+         return paths;
+     }
+
+
+     //! Call to Dijkstra  1 source to many targets
+     bool dijkstra_1_to_many(
+             G &graph,
+             V source,
+             const std::vector< V > &targets) {
+         try {
+             boost::dijkstra_shortest_paths(graph.graph, source,
+                     boost::predecessor_map(&predecessors[0])
+                     .weight_map(get(&G::G_T_E::cost, graph.graph))
+                     .distance_map(&distances[0])
+                     .visitor(dijkstra_many_goal_visitor(targets)));
+         } catch(found_goals &) {
+             return true;
+         } catch (boost::exception const& ex) {
+             (void)ex;
+             throw;
+         } catch (std::exception &e) {
+             (void)e;
+             throw;
+         } catch (...) {
+             throw;
+         }
+         return true;
+     }
+
+
+     void clear() {
+         predecessors.clear();
+         distances.clear();
+         nodesInDistance.clear();
+     }
+
+
+
+
+     // used when multiple goals
+     std::deque<Path> get_paths(
+             const G &graph,
+             V source,
+             std::vector< V > &targets,
+             bool only_cost) const {
+         std::deque<Path> paths;
+         for (const auto target : targets) {
+             paths.push_back(Path(
+                         graph,
+                         source, target,
+                         predecessors, distances,
+                         only_cost, true));
+         }
+         return paths;
+     }
+
+
+
+     //! @name members
+     //@{
+     struct found_goals{};  //!< exception for termination
+     std::vector< V > predecessors;
+     std::vector< double > distances;
+     std::deque< V > nodesInDistance;
+     std::ostringstream log;
+     //@}
+
+     //! @name Stopping classes
+     //@{
+     //! class for stopping when 1 target is found
+     class dijkstra_one_goal_visitor : public boost::default_dijkstra_visitor {
+      public:
+          explicit dijkstra_one_goal_visitor(V goal) : m_goal(goal) {}
+          template <class B_G>
+              void examine_vertex(V &u, B_G &) {
+                  if (u == m_goal) throw found_goals();
+              }
+      private:
+          V m_goal;
+     };
+
+     //! class for stopping when all targets are found
+     class dijkstra_many_goal_visitor : public boost::default_dijkstra_visitor {
+      public:
+          explicit dijkstra_many_goal_visitor(std::vector< V > goals)
+              :m_goals(goals.begin(), goals.end()) {}
+          template <class B_G>
+              void examine_vertex(V u, B_G &) {
+                  auto s_it = m_goals.find(u);
+                  if (s_it == m_goals.end()) return;
+                  // we found one more goal
+                  m_goals.erase(s_it);
+                  if (m_goals.size() == 0) throw found_goals();
+              }
+      private:
+          std::set< V > m_goals;
+     };
+
+
+     //! class for stopping when a distance/cost has being surpassed
+     class dijkstra_distance_visitor : public boost::default_dijkstra_visitor {
+      public:
+          explicit dijkstra_distance_visitor(
+                  double distance_goal,
+                  std::deque< V > &nodesInDistance,
+                  std::vector< double > &distances) :
+              m_distance_goal(distance_goal),
+              m_nodes(nodesInDistance),
+              m_dist(distances) {
+                  pgassert(m_nodes.empty());
+                  pgassert(m_distance_goal > 0);
+              }
+          template <class B_G>
+              void examine_vertex(V u, B_G &) {
+                  if (m_dist[u] > m_distance_goal) {
+                      throw found_goals();
+                  }
+                  m_nodes.push_back(u);
+              }
+
+      private:
+          double m_distance_goal;
+          std::deque< V > &m_nodes;
+          std::vector< double > &m_dist;
+     };
+
+     //! class for stopping when a distance/cost has being surpassed
+     class dijkstra_distance_visitor_no_init
+         : public boost::default_dijkstra_visitor {
+      public:
+          explicit dijkstra_distance_visitor_no_init(
+                  std::ostringstream &p_log,
+                  V source,
+                  double distance_goal,
+                  std::vector< V > &predecessors,
+                  std::vector< double > &distances,
+                  std::vector<boost::default_color_type> &color_map) :
+              log(p_log),
+              first(source),
+              m_distance_goal(distance_goal),
+              m_num_examined(0),
+              m_predecessors(predecessors),
+              m_dist(distances),
+              m_color(color_map) {
+                  pgassert(m_num_examined == 0);
+                  pgassert(m_distance_goal > 0);
+              }
+
+          template <class B_G>
+          void examine_vertex(V u, B_G &) {
+              if ( 0 == m_num_examined++) first = u;
+              if (m_dist[u] > m_distance_goal) {
+                  throw found_goals();
+              }
+              if (u != first && m_predecessors[u] == u) {
+                   m_color[u] = boost::black_color;
+              }
+          }
+
+          template <class B_G>
+          void examine_edge(E e, B_G &g) {
+              if (source(e, g) != first
+                      && m_predecessors[source(e, g)] == source(e, g)) {
+                   m_color[target(e, g)] = boost::black_color;
+              }
+          }
+
+
+          template <class B_G>
+          void edge_relaxed(E, B_G &) {
+          }
+
+
+
+          template <class B_G>
+          void edge_not_relaxed(E e, B_G &g) {
+              if (source(e, g) != first
+                      && m_predecessors[source(e, g)] == source(e, g)) {
+                  m_color[target(e, g)] = boost::black_color;
+              }
+          }
+
+
+          template <class B_G>
+          void finish_vertex(V, B_G &) {
+          }
+
+
+          template <class B_G>
+          void discover_vertex(V u, B_G &) {
+              if (u  != first && m_predecessors[u] == u) {
+                   m_color[u] = boost::black_color;
+              }
+          }
+
+      private:
+          std::ostringstream &log;
+          V first;
+          double m_distance_goal;
+          size_t m_num_examined;
+          std::vector< V > &m_predecessors;
+          std::vector< double > &m_dist;
+          std::vector<boost::default_color_type> &m_color;
+     };
+
+
+     //@}
+};
+
+
+
+#endif  // INCLUDE_DIJKSTRA_PGR_DIJKSTRA_HPP_
diff --git a/include/dijkstraTRSP/pgr_dijkstraTRSP.hpp b/include/dijkstraTRSP/pgr_dijkstraTRSP.hpp
new file mode 100644
index 0000000..d857f01
--- /dev/null
+++ b/include/dijkstraTRSP/pgr_dijkstraTRSP.hpp
@@ -0,0 +1,208 @@
+/*PGR-GNU*****************************************************************
+File: pgr_dijkstraTRSP.hpp
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2017 Vidhan Jain
+Mail: vidhanj1307 at gmail.com
+
+------
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+********************************************************************PGR-GNU*/
+#ifndef INCLUDE_DIJKSTRATRSP_PGR_DIJKSTRATRSP_HPP_
+#define INCLUDE_DIJKSTRATRSP_PGR_DIJKSTRATRSP_HPP_
+#pragma once
+
+#include "dijkstra/pgr_dijkstra.hpp"
+#include "c_types/line_graph_rt.h"
+
+#include "lineGraph/pgr_lineGraph.hpp"
+
+#include <sstream>
+#include <deque>
+#include <vector>
+#include <set>
+#include <limits>
+
+#include "cpp_common/pgr_assert.h"
+#include "cpp_common/basePath_SSEC.hpp"
+
+
+template < class G >
+class Pgr_dijkstraTRSP {
+ public:
+     Path dijkstraTRSP(
+             G& graph,
+             const std::vector< Restriction >& restrictions,
+             const std::vector< pgr_edge_t >& edges,
+             int64_t source,
+             int64_t target,
+             bool only_cost,
+             bool strict);
+     void clear();
+ private:
+     void executeDijkstraTRSP(G& graph);
+     void getDijkstraSolution(G& graph);
+     bool has_restriction();
+     bool has_a_restriction(int64_t edge, int64_t index);
+ private:
+     typedef typename G::V V;
+     V v_source;
+     V v_target;
+     int64_t m_start;
+     int64_t m_end;
+     std::vector< Restriction > m_restrictions;
+     std::vector< int64_t > m_edges_in_path;
+     bool m_only_cost;
+     bool m_strict;
+
+     Path curr_result_path;
+
+ public:
+     std::ostringstream log;
+};
+
+template < class G >
+void Pgr_dijkstraTRSP< G >::clear() {
+}
+
+template < class G >
+Path
+Pgr_dijkstraTRSP< G >::dijkstraTRSP(
+        G& graph,
+        const std::vector< Restriction >& restrictions,
+        const std::vector< pgr_edge_t >& edges,
+        int64_t start_vertex,
+        int64_t end_vertex,
+        bool only_cost,
+        bool strict) {
+    if (start_vertex == end_vertex)
+        return Path();
+    if (!graph.has_vertex(start_vertex) || !graph.has_vertex(end_vertex))
+        return Path();
+
+    m_only_cost = only_cost;
+    v_source = graph.get_V(start_vertex);
+    v_target = graph.get_V(end_vertex);
+    m_start = start_vertex;
+    m_end = end_vertex;
+    m_restrictions = restrictions;
+    m_strict = strict;
+    executeDijkstraTRSP(graph);
+    if (curr_result_path.size() or graph.m_gType == UNDIRECTED)
+        return curr_result_path;
+
+#if 0
+    pgrouting::LinearDirectedGraph line(DIRECTED);
+    line.insert_vertices(edges);
+    auto line_graph_edges = line.transform(graph);
+    log << "\nGraph before removing restrictions\n" << line << "\n";
+    auto remaining_restrictions = line.remove_restricted_edges(m_restrictions);
+    log << "\n Graph after removing restrictions\n" << line << "\n";
+
+    log << line.log.str().c_str() << "\n\n\n";
+
+    line.create_virtual_vertices();
+    log << line << "\n";
+#endif
+
+    return curr_result_path;
+}
+
+template < class G >
+void Pgr_dijkstraTRSP< G >::getDijkstraSolution(G& graph) {
+     Path path;
+
+     Pgr_dijkstra< G > fn_dijkstra;
+     path = fn_dijkstra.dijkstra(graph, m_start, m_end);
+
+     if (path.empty()) return;
+     curr_result_path = path;
+}
+
+template < class G >
+bool Pgr_dijkstraTRSP< G >::has_a_restriction(int64_t edge, int64_t index) {
+    auto lower_bound_cmp = [](const Restriction& r, const int64_t& target) {
+        return r.restrict_edges()[0] < target;
+    };
+    auto edge_index = std::lower_bound(m_restrictions.begin(),
+        m_restrictions.end(), edge, lower_bound_cmp) - m_restrictions.begin();
+    log << "\nResult generated from lower_bound\n";
+    while (edge_index < (int64_t)m_restrictions.size()) {
+        auto r_edges = m_restrictions[edge_index].restrict_edges();
+        if (r_edges[0] != edge) break;
+        log << m_restrictions[edge_index] << "\n";
+        bool okay = true;
+        size_t temp_edge_index = index;
+
+        for (auto &edge_id: r_edges) {
+            if (temp_edge_index >= m_edges_in_path.size() or
+                m_edges_in_path[temp_edge_index] != edge_id) {
+                okay = false;
+                break;
+            }
+            temp_edge_index++;
+        }
+        log << "\nokay value = " << okay <<"\n";
+        if (okay) return true;
+        edge_index++;
+    }
+    log << "Ends Here\n";
+    return false;
+}
+
+template < class G >
+bool Pgr_dijkstraTRSP< G >::has_restriction() {
+    auto sort_cmp = [](const Restriction& left,
+         const Restriction& right) -> bool {
+           return left.restrict_edges()[0] <= right.restrict_edges()[0];
+       };
+    std::stable_sort(m_restrictions.begin(), m_restrictions.end(),
+        sort_cmp);
+    log << "\nRestriction array after sorting.\n";
+    for (auto &it: m_restrictions) log << it << "\n";
+    log << "\nEnd\n";
+    size_t index = 0;
+    for (auto &edge: m_edges_in_path) {
+        if (has_a_restriction(edge, index))
+            return true;
+        index++;
+    }
+    return false;
+}
+
+template < class G >
+void Pgr_dijkstraTRSP< G >::executeDijkstraTRSP(G& graph) {
+    clear();
+    getDijkstraSolution(graph);
+    log << curr_result_path;
+
+    for (auto &path: curr_result_path) {
+        m_edges_in_path.push_back(path.edge);
+    }
+    while (m_edges_in_path.size() and m_edges_in_path.back() == -1) {
+        m_edges_in_path.pop_back();
+    }
+
+    log << "Edges in m_edges_in_path:-------------------\n";
+    for(auto &it: m_edges_in_path) log << it << "\n";
+    log << "---------------------------------------------\n";
+    bool sol = has_restriction();
+    log << "Result of valid solution: " << sol << "\n";
+    if (sol) curr_result_path = Path();
+}
+
+#endif  // INCLUDE_DIJKSTRATRSP_PGR_DIJKSTRATRSP_HPP_
diff --git a/include/dijkstraTRSP/restriction.h b/include/dijkstraTRSP/restriction.h
new file mode 100644
index 0000000..1842a99
--- /dev/null
+++ b/include/dijkstraTRSP/restriction.h
@@ -0,0 +1,65 @@
+/*PGR-GNU*****************************************************************
+File: restriction.h
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2017 Vidhan Jain
+Mail: vidhanj1307 at gmail.com
+
+------
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_DIJKSTRATRSP_RESTRICTION_H
+#define INCLUDE_DIJKSTRATRSP_RESTRICTION_H
+#pragma once
+
+#include <sstream>
+#include <deque>
+#include <vector>
+#include <set>
+#include <limits>
+
+#include "c_types/restrict_t.h"
+
+class Restriction {
+    private:
+        int64_t m_id;
+        std::vector< int64_t > m_restrict_edges;
+        double m_cost;
+
+    public:
+        Restriction() = default;
+        Restriction(const Restrict_t &r);
+
+        int64_t id() const {return m_id;}
+        void id(const int64_t& value) {m_id = value;}
+
+        double cost() const {return m_cost;}
+        void cost(const double& value) {m_cost = value;}
+
+        std::vector< int64_t > restrict_edges() const {return m_restrict_edges;}
+        void restrict_edges(const int64_t& value) {m_restrict_edges.push_back(value);}
+        void clear() {
+            m_restrict_edges.clear();
+        }
+
+        int64_t restriction_size() const {return m_restrict_edges.size();}
+
+        friend std::ostream& operator << (std::ostream &log, const Restriction &r);
+};
+
+#endif // INCLUDE_DIJKSTRATRSP_RESTRICTION_H
diff --git a/include/drivers/allpairs/floydWarshall_driver.h b/include/drivers/allpairs/floydWarshall_driver.h
new file mode 100644
index 0000000..cc3ed97
--- /dev/null
+++ b/include/drivers/allpairs/floydWarshall_driver.h
@@ -0,0 +1,57 @@
+/*PGR-GNU*****************************************************************
+File: floydWarshall_driver.h
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer: 
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_DRIVERS_ALLPAIRS_FLOYDWARSHALL_DRIVER_H_
+#define INCLUDE_DRIVERS_ALLPAIRS_FLOYDWARSHALL_DRIVER_H_
+#pragma once
+
+#include "c_types/pgr_edge_t.h"
+#include "c_types/matrix_cell_t.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void
+do_pgr_floydWarshall(
+    pgr_edge_t  *data_edges,
+    size_t total_tuples,
+    bool directedFlag,
+
+    // return values
+    Matrix_cell_t **ret_matrix,
+    size_t *return_tuple_count,
+    char ** log_msg,
+    char ** err_msg);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  // INCLUDE_DRIVERS_ALLPAIRS_FLOYDWARSHALL_DRIVER_H_
diff --git a/include/drivers/allpairs/johnson_driver.h b/include/drivers/allpairs/johnson_driver.h
new file mode 100644
index 0000000..01f7ee0
--- /dev/null
+++ b/include/drivers/allpairs/johnson_driver.h
@@ -0,0 +1,56 @@
+/*PGR-GNU*****************************************************************
+File: johnson_driver.h
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer: 
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+#ifndef INCLUDE_DRIVERS_ALLPAIRS_JOHNSON_DRIVER_H_
+#define INCLUDE_DRIVERS_ALLPAIRS_JOHNSON_DRIVER_H_
+
+#pragma once
+
+#include "c_types/pgr_edge_t.h"
+#include "c_types/matrix_cell_t.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+//  CREATE OR REPLACE FUNCTION pgr_johnson(edges_sql TEXT, directed BOOLEAN,
+void
+do_pgr_johnson(
+        pgr_edge_t  *data_edges,
+        size_t total_tuples,
+        bool directed,
+        Matrix_cell_t **return_tuples,
+        size_t *return_count,
+        char ** err_msg);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  // INCLUDE_DRIVERS_ALLPAIRS_JOHNSON_DRIVER_H_
diff --git a/include/drivers/astar/astar_driver.h b/include/drivers/astar/astar_driver.h
new file mode 100644
index 0000000..731fee0
--- /dev/null
+++ b/include/drivers/astar/astar_driver.h
@@ -0,0 +1,74 @@
+/*PGR-GNU*****************************************************************
+File: astarOneToMany_driver.h
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer: 
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: 
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_DRIVERS_ASTAR_ASTAR_DRIVER_H_
+#define INCLUDE_DRIVERS_ASTAR_ASTAR_DRIVER_H_
+#pragma once
+
+#include "c_types/pgr_edge_xy_t.h"
+#include "c_types/general_path_element_t.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+    void check_parameters(
+            int heuristic,
+            double factor,
+            double epsilon);
+
+    /*********************************************************
+      edges_sql TEXT,
+      vertex_table TEXT,
+      start_vid BIGINT,
+      end_vid BIGINT  directed BOOLEAN DEFAULT true,
+     ********************************************************/
+    void do_pgr_astarManyToMany(
+            Pgr_edge_xy_t  *data_edges,
+            size_t total_edges,
+            int64_t  *start_vidsArr, size_t size_start_vidsArr,
+            int64_t  *end_vidsArr, size_t size_end_vidsArr,
+            bool directed,
+            int heuristic,
+            double factor,
+            double epsilon,
+            bool only_cost,
+            bool normal,
+            General_path_element_t **return_tuples,
+            size_t *return_count,
+            char** log_msg,
+            char** notice_msg,
+            char** err_msg);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  // INCLUDE_DRIVERS_ASTAR_ASTAR_DRIVER_H_
diff --git a/include/drivers/bdAstar/bdAstar_driver.h b/include/drivers/bdAstar/bdAstar_driver.h
new file mode 100644
index 0000000..17ce9f6
--- /dev/null
+++ b/include/drivers/bdAstar/bdAstar_driver.h
@@ -0,0 +1,77 @@
+/*PGR-GNU*****************************************************************
+File: bdAstar_driver.h
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer: 
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_DRIVERS_BDASTAR_BDASTAR_DRIVER_H_
+#define INCLUDE_DRIVERS_BDASTAR_BDASTAR_DRIVER_H_
+#pragma once
+
+#include "c_types/pgr_edge_xy_t.h"
+#include "c_types/general_path_element_t.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+    /*********************************************************
+      edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+     ********************************************************/
+
+
+    void do_pgr_bdAstar(
+            Pgr_edge_xy_t  *data_edges,
+            size_t total_edges,
+            int64_t  *start_vidsArr,
+            size_t size_start_vidsArr,
+            int64_t  *end_vidsArr,
+            size_t size_end_vidsArr,
+
+            bool directed,
+            int heuristic,
+            double factor,
+            double epsilon,
+            bool only_cost,
+
+            General_path_element_t **return_tuples,
+            size_t *return_count,
+
+            char** log_msg,
+            char** notice_msg,
+            char** err_msg);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  //  INCLUDE_DRIVERS_BDASTAR_BDASTAR_DRIVER_H_
diff --git a/include/drivers/bdDijkstra/bdDijkstra_driver.h b/include/drivers/bdDijkstra/bdDijkstra_driver.h
new file mode 100644
index 0000000..2c18089
--- /dev/null
+++ b/include/drivers/bdDijkstra/bdDijkstra_driver.h
@@ -0,0 +1,65 @@
+/*PGR-GNU*****************************************************************
+File: bdDijkstra_driver.h
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer: 
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_DRIVERS_BDDIJKSTRA_BDDIJKSTRA_DRIVER_H_
+#define INCLUDE_DRIVERS_BDDIJKSTRA_BDDIJKSTRA_DRIVER_H_
+#pragma once
+
+#include "c_types/pgr_edge_t.h"
+#include "c_types/general_path_element_t.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+    void do_pgr_bdDijkstra(
+            pgr_edge_t  *data_edges,
+            size_t total_edges,
+            int64_t  *start_vidsArr,
+            size_t size_start_vidsArr,
+            int64_t  *end_vidsArr,
+            size_t size_end_vidsArr,
+
+            bool directed,
+            bool only_cost,
+
+            General_path_element_t **return_tuples,
+            size_t *return_count,
+            char ** log_msg,
+            char ** notice_msg,
+            char ** err_msg);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  // INCLUDE_DRIVERS_BDDIJKSTRA_BDDIJKSTRA_DRIVER_H_
diff --git a/include/drivers/components/articulationPoints_driver.h b/include/drivers/components/articulationPoints_driver.h
new file mode 100644
index 0000000..ed63b15
--- /dev/null
+++ b/include/drivers/components/articulationPoints_driver.h
@@ -0,0 +1,63 @@
+/*PGR-GNU*****************************************************************
+File: articulationPoints_driver.h
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer: 
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_DRIVERS_COMPONENTS_ARTICULATIONPOINTS_DRIVER_H_
+#define INCLUDE_DRIVERS_COMPONENTS_ARTICULATIONPOINTS_DRIVER_H_
+#pragma once
+
+#include "c_types/pgr_edge_t.h"
+#include "c_types/pgr_components_rt.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+    /*********************************************************
+      TEXT,
+    BIGINT,
+    BIGINT,
+     ********************************************************/
+
+
+    void
+        do_pgr_articulationPoints(
+                pgr_edge_t  *data_edges,
+                size_t total_edges,
+                pgr_components_rt **return_tuples,
+                size_t *return_count,
+                char ** log_msg,
+                char ** notice_msg,
+                char ** err_msg);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  // INCLUDE_DRIVERS_COMPONENTS_ARTICULATIONPOINTS_DRIVER_H_
diff --git a/include/drivers/components/biconnectedComponents_driver.h b/include/drivers/components/biconnectedComponents_driver.h
new file mode 100644
index 0000000..7713355
--- /dev/null
+++ b/include/drivers/components/biconnectedComponents_driver.h
@@ -0,0 +1,63 @@
+/*PGR-GNU*****************************************************************
+File: biconnectedComponents_driver.h
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer: 
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_DRIVERS_COMPONENTS_BICONNECTEDCOMPONENTS_DRIVER_H_
+#define INCLUDE_DRIVERS_COMPONENTS_BICONNECTEDCOMPONENTS_DRIVER_H_
+#pragma once
+
+#include "c_types/pgr_edge_t.h"
+#include "c_types/pgr_components_rt.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+    /*********************************************************
+      TEXT,
+    BIGINT,
+    BIGINT,
+     ********************************************************/
+
+
+    void
+        do_pgr_biconnectedComponents(
+                pgr_edge_t  *data_edges,
+                size_t total_edges,
+                pgr_components_rt **return_tuples,
+                size_t *return_count,
+                char ** log_msg,
+                char ** notice_msg,
+                char ** err_msg);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  // INCLUDE_DRIVERS_COMPONENTS_BICONNECTEDCOMPONENTS_DRIVER_H_
diff --git a/include/drivers/components/bridges_driver.h b/include/drivers/components/bridges_driver.h
new file mode 100644
index 0000000..56f6b73
--- /dev/null
+++ b/include/drivers/components/bridges_driver.h
@@ -0,0 +1,63 @@
+/*PGR-GNU*****************************************************************
+File: bridges_driver.h
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer: 
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_DRIVERS_COMPONENTS_BRIDGES_DRIVER_H_
+#define INCLUDE_DRIVERS_COMPONENTS_BRIDGES_DRIVER_H_
+#pragma once
+
+#include "c_types/pgr_edge_t.h"
+#include "c_types/pgr_components_rt.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+    /*********************************************************
+      TEXT,
+    BIGINT,
+    BIGINT,
+     ********************************************************/
+
+
+    void
+        do_pgr_bridges(
+                pgr_edge_t  *data_edges,
+                size_t total_edges,
+                pgr_components_rt **return_tuples,
+                size_t *return_count,
+                char ** log_msg,
+                char ** notice_msg,
+                char ** err_msg);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  // INCLUDE_DRIVERS_COMPONENTS_BRIDGES_DRIVER_H_
diff --git a/include/drivers/components/connectedComponents_driver.h b/include/drivers/components/connectedComponents_driver.h
new file mode 100644
index 0000000..3676c4f
--- /dev/null
+++ b/include/drivers/components/connectedComponents_driver.h
@@ -0,0 +1,63 @@
+/*PGR-GNU*****************************************************************
+File: connectedComponents_driver.h
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer: 
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_DRIVERS_COMPONENTS_CONNECTEDCOMPONENTS_DRIVER_H_
+#define INCLUDE_DRIVERS_COMPONENTS_CONNECTEDCOMPONENTS_DRIVER_H_
+#pragma once
+
+#include "c_types/pgr_edge_t.h"
+#include "c_types/pgr_components_rt.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+    /*********************************************************
+      TEXT,
+    BIGINT,
+    BIGINT,
+     ********************************************************/
+
+
+    void
+        do_pgr_connectedComponents(
+                pgr_edge_t  *data_edges,
+                size_t total_edges,
+                pgr_components_rt **return_tuples,
+                size_t *return_count,
+                char ** log_msg,
+                char ** notice_msg,
+                char ** err_msg);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  // INCLUDE_DRIVERS_COMPONENTS_CONNECTEDCOMPONENTS_DRIVER_H_
diff --git a/include/drivers/components/strongComponents_driver.h b/include/drivers/components/strongComponents_driver.h
new file mode 100644
index 0000000..a2a153d
--- /dev/null
+++ b/include/drivers/components/strongComponents_driver.h
@@ -0,0 +1,63 @@
+/*PGR-GNU*****************************************************************
+File: strongComponents_driver.h
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer: 
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_DRIVERS_COMPONENTS_STRONGCOMPONENTS_DRIVER_H_
+#define INCLUDE_DRIVERS_COMPONENTS_STRONGCOMPONENTS_DRIVER_H_
+#pragma once
+
+#include "c_types/pgr_edge_t.h"
+#include "c_types/pgr_components_rt.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+    /*********************************************************
+      TEXT,
+    BIGINT,
+    BIGINT,
+     ********************************************************/
+
+
+    void
+        do_pgr_strongComponents(
+                pgr_edge_t  *data_edges,
+                size_t total_edges,
+                pgr_components_rt **return_tuples,
+                size_t *return_count,
+                char ** log_msg,
+                char ** notice_msg,
+                char ** err_msg);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  // INCLUDE_DRIVERS_COMPONENTS_STRONGCOMPONENTS_DRIVER_H_
diff --git a/include/drivers/contraction/contractGraph_driver.h b/include/drivers/contraction/contractGraph_driver.h
new file mode 100644
index 0000000..bd85cce
--- /dev/null
+++ b/include/drivers/contraction/contractGraph_driver.h
@@ -0,0 +1,68 @@
+/*PGR-GNU*****************************************************************
+File: contractGraph_driver.h
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2016 Rohith Reddy
+Mail:
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef SRC_CONTRACTION_SRC_CONTRACTGRAPH_DRIVER_H_
+#define SRC_CONTRACTION_SRC_CONTRACTGRAPH_DRIVER_H_
+#pragma once
+
+#include "c_types/contracted_rt.h"
+#include "c_types/pgr_edge_t.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+    /*********************************************************
+        edges_sql TEXT,
+        contraction_order BIGINT[],
+        forbidden_vertices BIGINT[] DEFAULT ARRAY[]::BIGINT[],
+        max_cycles integer DEFAULT 1,
+        directed BOOLEAN DEFAULT true
+     ********************************************************/
+    void
+        do_pgr_contractGraph(
+               pgr_edge_t  *data_edges,
+        size_t total_tuples,
+        int64_t *forbidden_vertices,
+        size_t size_forbidden_vertices,
+        int64_t *contraction_order,
+        size_t size_contraction_order,
+        int64_t max_cycles,
+        bool directed,
+        contracted_rt **return_tuples,
+        size_t *return_count,
+        char **log_msg,
+        char **notice_msg,
+        char **err_msg);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  // SRC_CONTRACTION_SRC_CONTRACTGRAPH_DRIVER_H_
diff --git a/include/drivers/dijkstra/dijkstraVia_driver.h b/include/drivers/dijkstra/dijkstraVia_driver.h
new file mode 100644
index 0000000..2712a95
--- /dev/null
+++ b/include/drivers/dijkstra/dijkstraVia_driver.h
@@ -0,0 +1,62 @@
+/*PGR-GNU*****************************************************************
+File: dijkstraViaVertex.c
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+
+Function's developer: 
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_DRIVERS_DIJKSTRA_DIJKSTRAVIA_DRIVER_H_
+#define INCLUDE_DRIVERS_DIJKSTRA_DIJKSTRAVIA_DRIVER_H_
+#pragma once
+
+#include "c_types/routes_t.h"
+#include "c_types/pgr_edge_t.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+    /*
+       CREATE OR REPLACE FUNCTION pgr_dijkstraViaVertices(
+       sql text,
+       vertices anyarray,
+       directed boolean default true,
+       */
+    void
+        do_pgr_dijkstraVia(
+                pgr_edge_t  *data_edges,  size_t total_edges,
+                int64_t  *via_vidsArr,    size_t size_via_vidsArr,
+                bool directed,
+                bool strict,
+                bool U_turn_on_edge,
+                Routes_t **return_tuples, size_t *return_count,
+
+                char** log_msg,
+                char** notice_msg,
+                char** err_msg);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  // INCLUDE_DRIVERS_DIJKSTRA_DIJKSTRAVIA_DRIVER_H_
diff --git a/include/drivers/dijkstra/dijkstra_driver.h b/include/drivers/dijkstra/dijkstra_driver.h
new file mode 100644
index 0000000..ab02e74
--- /dev/null
+++ b/include/drivers/dijkstra/dijkstra_driver.h
@@ -0,0 +1,69 @@
+/*PGR-GNU*****************************************************************
+
+File: dijkstra_driver.h
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer: 
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_DRIVERS_DIJKSTRA_DIJKSTRA_DRIVER_H_
+#define INCLUDE_DRIVERS_DIJKSTRA_DIJKSTRA_DRIVER_H_
+
+#include "c_types/pgr_edge_t.h"
+#include "c_types/general_path_element_t.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+    //  CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    //  sql text,
+    //  start_vids anyarray,
+    //  end_vids anyarray,
+    //  directed boolean default true,
+    void do_pgr_many_to_many_dijkstra(
+            pgr_edge_t  *data_edges,
+            size_t total_tuples,
+            int64_t  *start_vidsArr,
+            size_t size_start_vidsArr,
+            int64_t  *end_vidsArr,
+            size_t size_end_vidsArr,
+            bool directed,
+            bool only_cost,
+            bool normal,
+
+            General_path_element_t **return_tuples,
+            size_t *return_count,
+
+            char** log_msg,
+            char** notice_msg,
+            char** err_msg);
+
+#ifdef __cplusplus
+    }
+#endif
+
+#endif  // INCLUDE_DRIVERS_DIJKSTRA_DIJKSTRA_DRIVER_H_
diff --git a/include/drivers/dijkstraTRSP/dijkstraTRSP_driver.h b/include/drivers/dijkstraTRSP/dijkstraTRSP_driver.h
new file mode 100644
index 0000000..1e60d0a
--- /dev/null
+++ b/include/drivers/dijkstraTRSP/dijkstraTRSP_driver.h
@@ -0,0 +1,74 @@
+/*PGR-GNU*****************************************************************
+File: dijkstraTRSP_driver.h
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2017 Vidhan Jain
+Mail: vidhanj1307 at gmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_DRIVERS_DIJKSTRATRSP_DIJKSTRATRSP_DRIVER_H_
+#define INCLUDE_DRIVERS_DIJKSTRATRSP_DIJKSTRATRSP_DRIVER_H_
+#pragma once
+
+#include "c_types/pgr_edge_t.h"
+#include "c_types/general_path_element_t.h"
+#include "c_types/restrict_t.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+    /*********************************************************
+      TEXT,
+    TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+     ********************************************************/
+
+
+    void
+        do_pgr_dijkstraTRSP(
+                pgr_edge_t  *data_edges,
+                size_t total_edges,
+                Restrict_t *restrictions,
+                size_t total_restrictions,
+                int64_t start_vid,
+                int64_t end_vid,
+                bool directed,
+                bool only_cost,
+                bool strict,
+                General_path_element_t **return_tuples,
+                size_t *return_count,
+                char ** log_msg,
+                char ** notice_msg,
+                char ** err_msg);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  // INCLUDE_DRIVERS_DIJKSTRATRSP_DIJKSTRATRSP_DRIVER_H_
diff --git a/include/drivers/driving_distance/drivedist_driver.h b/include/drivers/driving_distance/drivedist_driver.h
new file mode 100644
index 0000000..5995c5d
--- /dev/null
+++ b/include/drivers/driving_distance/drivedist_driver.h
@@ -0,0 +1,51 @@
+/*PGR-GNU*****************************************************************
+File: boost_interface_drivedist.h
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_DRIVERS_DRIVING_DISTANCE_DRIVEDIST_DRIVER_H_
+#define INCLUDE_DRIVERS_DRIVING_DISTANCE_DRIVEDIST_DRIVER_H_
+
+#include "c_types/pgr_edge_t.h"
+#include "c_types/general_path_element_t.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+    void do_pgr_driving_many_to_dist(
+            pgr_edge_t* edges, size_t total_edges,
+            int64_t* start_vertex, size_t s_len,
+            double distance,
+            bool directed,
+            bool equicost,
+            General_path_element_t** return_tuples, size_t* return_count,
+            char **log_msg,
+            char **notice_msg,
+            char **err_msg);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  // INCLUDE_DRIVERS_DRIVING_DISTANCE_DRIVEDIST_DRIVER_H_
diff --git a/include/drivers/driving_distance/withPoints_dd_driver.h b/include/drivers/driving_distance/withPoints_dd_driver.h
new file mode 100644
index 0000000..a815808
--- /dev/null
+++ b/include/drivers/driving_distance/withPoints_dd_driver.h
@@ -0,0 +1,66 @@
+/*PGR-GNU*****************************************************************
+File: withPoints_driver.h
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer: 
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: 
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_DRIVERS_DRIVING_DISTANCE_WITHPOINTS_DD_DRIVER_H_
+#define INCLUDE_DRIVERS_DRIVING_DISTANCE_WITHPOINTS_DD_DRIVER_H_
+#pragma once
+
+#include "c_types/point_on_edge_t.h"
+#include "c_types/pgr_edge_t.h"
+#include "c_types/general_path_element_t.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+    void do_pgr_many_withPointsDD(
+            pgr_edge_t      *edges,             size_t total_edges,
+            Point_on_edge_t *points_p,          size_t total_points,
+            pgr_edge_t      *edges_of_points,   size_t total_edges_of_points,
+
+            int64_t  *start_pids_arr,    size_t s_len,
+            double distance,
+
+            bool directed,
+            char driving_side,
+            bool details,
+            bool equiCost,
+
+            General_path_element_t **return_tuples, size_t *return_count,
+            char** log_msg,
+            char** notice_msg,
+            char ** err_msg);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  // INCLUDE_DRIVERS_DRIVING_DISTANCE_WITHPOINTS_DD_DRIVER_H_
diff --git a/include/drivers/lineGraph/lineGraph_driver.h b/include/drivers/lineGraph/lineGraph_driver.h
new file mode 100644
index 0000000..672bf1c
--- /dev/null
+++ b/include/drivers/lineGraph/lineGraph_driver.h
@@ -0,0 +1,63 @@
+/*PGR-GNU*****************************************************************
+File: lineGraph_driver.h
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2017 Vidhan Jain
+Mail: vidhanj1307 at gmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_DRIVERS_LINEGRAPH_LINEGRAPH_DRIVER_H_
+#define INCLUDE_DRIVERS_LINEGRAPH_LINEGRAPH_DRIVER_H_
+#pragma once
+
+#include "c_types/pgr_edge_t.h"
+#include "c_types/line_graph_rt.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+    /*********************************************************
+      TEXT,
+    directed BOOLEAN DEFAULT true,
+     ********************************************************/
+
+
+    void
+        do_pgr_lineGraph(
+                pgr_edge_t  *data_edges,
+                size_t total_edges,
+                bool directed,
+                Line_graph_rt **return_tuples,
+                size_t *return_count,
+                char ** log_msg,
+                char ** notice_msg,
+                char ** err_msg);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  // INCLUDE_DRIVERS_LINEGRAPH_LINEGRAPH_DRIVER_H_
diff --git a/include/drivers/pickDeliver/pickDeliverEuclidean_driver.h b/include/drivers/pickDeliver/pickDeliverEuclidean_driver.h
new file mode 100644
index 0000000..0910085
--- /dev/null
+++ b/include/drivers/pickDeliver/pickDeliverEuclidean_driver.h
@@ -0,0 +1,69 @@
+/*PGR-GNU*****************************************************************
+File: pickDeliverEuclidean_driver.h
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail:
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+/*! @file pickDeliverEuclidean_driver.h */
+
+#ifndef INCLUDE_DRIVERS_PICKDELIVER_PICKDELIVEREUCLIDEAN_DRIVER_H_
+#define INCLUDE_DRIVERS_PICKDELIVER_PICKDELIVEREUCLIDEAN_DRIVER_H_
+#pragma once
+
+#include "c_types/pickDeliver/general_vehicle_orders_t.h"
+#include "c_types/pickDeliver/pickDeliveryOrders_t.h"
+#include "c_types/pickDeliver/vehicle_t.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+    /*********************************************************
+      orders_sql TEXT,
+      max_vehicles INTEGER,
+      capacity FLOAT,
+      max_cycles INTEGER,
+     ********************************************************/
+    void do_pgr_pickDeliverEuclidean(
+            PickDeliveryOrders_t *pd_orders_arr, size_t total_pd_orders,
+            Vehicle_t *vehicles_arr, size_t total_vehicles,
+
+            double factor,
+            int max_cycles,
+            int initial_solution_id,
+
+            General_vehicle_orders_t **return_tuples,
+            size_t *return_count,
+
+            char **log_msg,
+            char **notice_msg,
+            char **err_msg);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  // INCLUDE_DRIVERS_PICKDELIVER_PICKDELIVEREUCLIDEAN_DRIVER_H_
diff --git a/include/drivers/pickDeliver/pickDeliver_driver.h b/include/drivers/pickDeliver/pickDeliver_driver.h
new file mode 100644
index 0000000..56974ad
--- /dev/null
+++ b/include/drivers/pickDeliver/pickDeliver_driver.h
@@ -0,0 +1,71 @@
+/*PGR-GNU*****************************************************************
+File: pickDeliver_driver.h
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail:
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+/*! @file pickDeliver_driver.h */
+
+#ifndef INCLUDE_DRIVERS_PICKDELIVER_PICKDELIVER_DRIVER_H_
+#define INCLUDE_DRIVERS_PICKDELIVER_PICKDELIVER_DRIVER_H_
+#pragma once
+
+#include "c_types/pickDeliver/pickDeliveryOrders_t.h"
+#include "c_types/pickDeliver/vehicle_t.h"
+#include "c_types/matrix_cell_t.h"
+#include "c_types/pickDeliver/general_vehicle_orders_t.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+    /*********************************************************
+      orders_sql TEXT,
+      max_vehicles INTEGER,
+      capacity FLOAT,
+      max_cycles INTEGER,
+     ********************************************************/
+    void do_pgr_pickDeliver(
+            PickDeliveryOrders_t pd_orders_arr[], size_t total_pd_orders,
+            Vehicle_t *vehicles_arr, size_t total_vehicles,
+            Matrix_cell_t *matrix_cells_arr, size_t total_cells,
+
+            double factor,
+            int max_cycles,
+            int initial_solution_id,
+
+            General_vehicle_orders_t **return_tuples,
+            size_t *return_count,
+
+            char **log_msg,
+            char **notice_msg,
+            char **err_msg);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  // INCLUDE_DRIVERS_PICKDELIVER_PICKDELIVER_DRIVER_H_
diff --git a/include/drivers/tsp/eucledianTSP_driver.h b/include/drivers/tsp/eucledianTSP_driver.h
new file mode 100644
index 0000000..9af4417
--- /dev/null
+++ b/include/drivers/tsp/eucledianTSP_driver.h
@@ -0,0 +1,67 @@
+/*PGR-GNU*****************************************************************
+ * File: tsp_driver.h
+ *
+ * Generated with Template by:
+ * Copyright (c) 2015 pgRouting developers
+ * Mail: project at pgrouting.org
+ *
+ * Function's developer:
+ * Copyright (c) 2015 Celia Virginia Vergara Castillo
+ * Mail: vicky_vergara at hotmail.com
+ *
+ * ------
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ *  ********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_DRIVERS_TSP_EUCLEDIANTSP_DRIVER_H_
+#define INCLUDE_DRIVERS_TSP_EUCLEDIANTSP_DRIVER_H_
+#pragma once
+
+#include "c_types/coordinate_t.h"
+#include "c_types/general_path_element_t.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void
+do_pgr_eucledianTSP(
+        Coordinate_t *coordinates, size_t total_coordinates,
+        int64_t start_vid,
+        int64_t end_vid,
+
+        double initial_temperature,
+        double final_temperature,
+        double cooling_factor,
+        int64_t tries_per_temperature,
+        int64_t max_changes_per_temperature,
+        int64_t max_consecutive_non_changes,
+        bool randomize,
+        double time_limit,
+
+        General_path_element_t **results,
+        size_t *total_results,
+        char **log_msg,
+        char **notice_msg,
+        char **err_msg);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  // INCLUDE_DRIVERS_TSP_EUCLEDIANTSP_DRIVER_H_
diff --git a/include/drivers/tsp/newTSP_driver.h b/include/drivers/tsp/newTSP_driver.h
new file mode 100644
index 0000000..62466f2
--- /dev/null
+++ b/include/drivers/tsp/newTSP_driver.h
@@ -0,0 +1,67 @@
+/*PGR-GNU*****************************************************************
+ * File: tsp_driver.h
+ *
+ * Generated with Template by:
+ * Copyright (c) 2015 pgRouting developers
+ * Mail: project at pgrouting.org
+ *
+ * Function's developer:
+ * Copyright (c) 2015 Celia Virginia Vergara Castillo
+ * Mail: vicky_vergara at hotmail.com
+ *
+ * ------
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ *  ********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_DRIVERS_TSP_NEWTSP_DRIVER_H_
+#define INCLUDE_DRIVERS_TSP_NEWTSP_DRIVER_H_
+#pragma once
+
+#include "c_types/matrix_cell_t.h"
+#include "c_types/general_path_element_t.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void
+do_pgr_tsp(
+        Matrix_cell_t *distances, size_t total_distances,
+        int64_t start_vid,
+        int64_t end_vid,
+
+        double initial_temperature,
+        double final_temperature,
+        double cooling_factor,
+        int64_t tries_per_temperature,
+        int64_t max_changes_per_temperature,
+        int64_t max_consecutive_non_changes,
+        bool randomize,
+        double time_limit,
+
+        General_path_element_t **results,
+        size_t *total_results,
+        char **log_msg,
+        char **notice_msg,
+        char **err_msg);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  // INCLUDE_DRIVERS_TSP_NEWTSP_DRIVER_H_
diff --git a/include/drivers/withPoints/get_new_queries.h b/include/drivers/withPoints/get_new_queries.h
new file mode 100644
index 0000000..fc55a5b
--- /dev/null
+++ b/include/drivers/withPoints/get_new_queries.h
@@ -0,0 +1,50 @@
+/*PGR-GNU*****************************************************************
+File: get_new_queries.h
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail:
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+#ifndef INCLUDE_DRIVERS_WITHPOINTS_GET_NEW_QUERIES_H_
+#define INCLUDE_DRIVERS_WITHPOINTS_GET_NEW_QUERIES_H_
+
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+    char estimate_drivingSide(char driving_side);
+
+    void get_new_queries(
+            char *edges_sql,
+            char *points_sql,
+            char **edges_of_points_query,
+            char **edges_no_points_query);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  // INCLUDE_DRIVERS_WITHPOINTS_GET_NEW_QUERIES_H_
diff --git a/include/drivers/withPoints/withPoints_driver.h b/include/drivers/withPoints/withPoints_driver.h
new file mode 100644
index 0000000..445aa8e
--- /dev/null
+++ b/include/drivers/withPoints/withPoints_driver.h
@@ -0,0 +1,80 @@
+/*PGR-GNU*****************************************************************
+File: many_to_many_withPoints_driver.h
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail:
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_DRIVERS_WITHPOINTS_WITHPOINTS_DRIVER_H_
+#define INCLUDE_DRIVERS_WITHPOINTS_WITHPOINTS_DRIVER_H_
+#pragma once
+
+#include "c_types/point_on_edge_t.h"
+#include "c_types/pgr_edge_t.h"
+#include "c_types/general_path_element_t.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// CREATE OR REPLACE FUNCTION pgr_withPoint(
+// edges_sql TEXT,
+// points_sql TEXT,
+// start_pid ANYARRAY,
+// end_pid BIGINT,
+// directed BOOLEAN DEFAULT true,
+    void do_pgr_withPoints(
+            pgr_edge_t *edges,
+            size_t total_edges,
+
+            Point_on_edge_t *points,
+            size_t total_points,
+
+            pgr_edge_t *edges_of_points,
+            size_t total_edges_of_points,
+
+            int64_t *start_pidsArr,
+            size_t size_start_pidsArr,
+
+            int64_t *end_pidsArr,
+            size_t size_end_pidsArr,
+
+
+            char driving_side,
+            bool details,
+            bool directed,
+            bool only_cost,
+            bool normal,
+
+            General_path_element_t **return_tuples,
+            size_t *return_count,
+            char** log_msg,
+            char** notice_msg,
+            char** err_msg);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  // INCLUDE_DRIVERS_WITHPOINTS_WITHPOINTS_DRIVER_H_
diff --git a/include/drivers/yen/ksp_driver.h b/include/drivers/yen/ksp_driver.h
new file mode 100644
index 0000000..5537d7b
--- /dev/null
+++ b/include/drivers/yen/ksp_driver.h
@@ -0,0 +1,55 @@
+/*PGR-GNU*****************************************************************
+File: ksp_driver.h
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_DRIVERS_YEN_KSP_DRIVER_H_
+#define INCLUDE_DRIVERS_YEN_KSP_DRIVER_H_
+#pragma once
+
+#include "c_types/pgr_edge_t.h"
+#include "c_types/general_path_element_t.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+    void  do_pgr_ksp(
+            pgr_edge_t  *data_edges,
+            size_t total_edges,
+            int64_t  start_vid,
+            int64_t end_vid,
+            int no_paths,
+            bool directed,
+            bool heap_paths,
+            General_path_element_t **return_tuples,
+            size_t *return_count,
+            char ** log_msg,
+            char ** notice_msg,
+            char ** err_msg);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif  // INCLUDE_DRIVERS_YEN_KSP_DRIVER_H_
diff --git a/include/drivers/yen/withPoints_ksp_driver.h b/include/drivers/yen/withPoints_ksp_driver.h
new file mode 100644
index 0000000..cc6ebfc
--- /dev/null
+++ b/include/drivers/yen/withPoints_ksp_driver.h
@@ -0,0 +1,71 @@
+/*PGR-GNU*****************************************************************
+File: withPoints_driver.h
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer: 
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: 
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_DRIVERS_YEN_WITHPOINTS_KSP_DRIVER_H_
+#define INCLUDE_DRIVERS_YEN_WITHPOINTS_KSP_DRIVER_H_
+#pragma once
+
+#include "c_types/point_on_edge_t.h"
+#include "c_types/pgr_edge_t.h"
+#include "c_types/general_path_element_t.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+    //  CREATE OR REPLACE FUNCTION pgr_withPointKsp(
+    //  edges_sql TEXT,
+    //  points_sql TEXT,
+    //  start_pid BIGINT,
+    //  end_pid BIGINT,
+    //  directed BOOLEAN DEFAULT true,
+    int do_pgr_withPointsKsp(
+            pgr_edge_t  *edges,             size_t total_edges,
+            Point_on_edge_t  *points,       size_t total_points,
+            pgr_edge_t  *edges_of_points,   size_t total_edges_of_points,
+            int64_t start_pid,
+            int64_t end_pid,
+            int k,
+            bool directed,
+            bool heap_paths,
+            char driving_side,
+            bool details,
+
+            General_path_element_t **return_tuples,
+            size_t *return_count,
+            char ** log_msg,
+            char ** notice_msg,
+            char ** err_msg);
+
+
+#ifdef __cplusplus
+    }
+#endif
+
+#endif  // INCLUDE_DRIVERS_YEN_WITHPOINTS_KSP_DRIVER_H_
diff --git a/include/lineGraph/pgr_lineGraph.hpp b/include/lineGraph/pgr_lineGraph.hpp
new file mode 100644
index 0000000..0835c0a
--- /dev/null
+++ b/include/lineGraph/pgr_lineGraph.hpp
@@ -0,0 +1,592 @@
+/*PGR-GNU*****************************************************************
+File: pgr_lineGraph.hpp
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2017 Vidhan Jain
+Mail: vidhanj1307 at gmail.com
+
+------
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ ********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_COMPONENTS_PGR_LINEGRAPH_HPP_
+#define INCLUDE_COMPONENTS_PGR_LINEGRAPH_HPP_
+#pragma once
+
+
+#include <vector>
+#include <set>
+#include <utility>
+#include <map>
+
+#include "cpp_common/pgr_base_graph.hpp"
+#include "cpp_common/line_vertex.h"
+#include "dijkstraTRSP/restriction.h"
+
+namespace pgrouting {
+
+namespace graph {
+template <class G, typename T_V, typename T_E>
+class Pgr_lineGraph;
+}  // namespace graph
+
+typedef graph::Pgr_lineGraph <
+boost::adjacency_list < boost::vecS, boost::vecS,
+    boost::bidirectionalS,
+    Line_vertex, Basic_edge >,
+    Line_vertex, Basic_edge > LinearDirectedGraph;
+
+namespace graph {
+
+template <class G, typename T_V, typename T_E>
+class Pgr_lineGraph : public Pgr_base_graph<G, T_V, T_E> {
+ private:
+    int64_t m_num_edges;
+    std::map < int64_t, pgr_edge_t > m_edges;
+    std::map < std::pair< int64_t, int64_t >, int64_t > m_vertex_map;
+
+    void add_vertices(std::vector< T_V > vertices);
+
+    void create_edges(const pgrouting::DirectedGraph& digraph);
+
+    template < typename T >
+        void graph_add_edge(int64_t, const T &source, const T&target, int64_t, int64_t);
+
+#if 0
+    template < typename T >
+    void disconnect_edge(const T& from, const T& to);
+
+    template < typename T >
+    void get_ids(std::vector< T >& restrictions);
+
+    void create_virtual_vertex(int64_t id);
+    void create_virtual_edge(
+            int64_t source_id,
+            int64_t source_vertex,
+            int64_t target_id,
+            int64_t target_vertex
+        );
+#endif
+
+ public:
+    typedef typename boost::graph_traits < G >::vertex_descriptor V;
+    typedef typename boost::graph_traits < G >::edge_descriptor E;
+    typedef typename boost::graph_traits < G >::vertex_iterator V_i;
+    typedef typename boost::graph_traits < G >::out_edge_iterator EO_i;
+    typedef typename boost::graph_traits < G >::in_edge_iterator EI_i;
+
+    std::ostringstream log;
+
+    explicit Pgr_lineGraph< G, T_V, T_E >(graphType gtype)
+         : Pgr_base_graph< G, T_V, T_E >(gtype),
+           m_num_edges(0) {
+         }
+
+    template < typename T >
+        void insert_vertices(const T* edges, int64_t count) {
+            insert_vertices(std::vector < T >(edges, edges + count));
+        }
+
+    template < typename T >
+        void insert_vertices(const std::vector < T > &edges) {
+
+            for (auto &it: edges)
+                m_edges[it.id] = it;
+            std::vector < Line_vertex > vertices = extract_vertices();
+
+#if 1
+            log << "\nVertices of line graph: \n";
+            for (auto vertex: vertices) {
+                log << vertex.id << "(" << vertex.source << " - > ";
+                log << vertex.target << ")" << vertex.cost << "\n";
+            }
+#endif
+
+            add_vertices(vertices);
+        }
+
+#if 0
+    template < typename T >
+        std::vector< Restriction > remove_restricted_edges(std::vector< T >& restrictions) {
+            get_ids(restrictions);
+            std::vector< T > remaining;
+            for (const auto &r: restrictions) {
+                if (r.restriction_size() > 2) {
+                    remaining.push_back(r);
+                    continue;
+                }
+                disconnect_edge(r.restrict_edges()[0], r.restrict_edges()[1]);
+            }
+            return remaining;
+        }
+#endif
+
+    std::vector < Line_vertex > extract_vertices();
+
+    void transform(pgrouting::DirectedGraph& digraph) {
+        create_edges(digraph);
+    }
+
+#if 0
+    void create_virtual_vertices();
+#endif
+
+    int64_t num_edges() const { return m_num_edges; }
+    std::vector< Line_graph_rt > get_postgres_results_undirected();
+    std::vector< Line_graph_rt > get_postgres_results_directed();
+
+    friend std::ostream& operator<<(
+            std::ostream &log, const Pgr_lineGraph< G, T_V, T_E > &g) {
+        typename Pgr_base_graph< G, T_V, T_E >::EO_i out, out_end;
+
+        for (auto vi = vertices(g.graph).first;
+                vi != vertices(g.graph).second; ++vi) {
+            if ((*vi) >= g.m_num_vertices) break;
+            log << (*vi) << ": " << " out_edges_of(" << g.graph[(*vi)] << "):";
+            for (boost::tie(out, out_end) = out_edges(*vi, g.graph);
+                    out != out_end; ++out) {
+                log << ' '
+                    << g.graph[*out].id << "=("
+                    << g[g.source(*out)].id << ", "
+                    << g[g.target(*out)].id << ")\t";
+            }
+            log << std::endl;
+        }
+        return log;
+    }
+};
+
+template < class G, typename T_V, typename T_E >
+std::vector< Line_graph_rt >
+Pgr_lineGraph< G, T_V, T_E >::get_postgres_results_undirected() {
+    std::vector< Line_graph_rt > results;
+
+    typename boost::graph_traits < G >::edge_iterator edgeIt, edgeEnd;
+    int64_t count = 0;
+
+    log << "\nPostgres results\n";
+    for (boost::tie(edgeIt, edgeEnd) = boost::edges(this->graph);
+            edgeIt != edgeEnd; edgeIt++) {
+        E e = *edgeIt;
+        auto e_source = this->graph[this->source(e)].vertex_id;
+        auto e_target = this->graph[this->target(e)].vertex_id;
+
+        log << "e_source = " << e_source << " | e_target = " << e_target << "\n";
+
+        Line_graph_rt edge = {
+            ++count,
+            e_source,
+            e_target,
+            1.0,
+            -1.0
+        };
+        results.push_back(edge);
+    }
+
+    return results;
+}
+
+template < class G, typename T_V, typename T_E >
+std::vector< Line_graph_rt >
+Pgr_lineGraph< G, T_V, T_E >::get_postgres_results_directed() {
+    std::vector< Line_graph_rt > results;
+
+    typename boost::graph_traits < G >::edge_iterator edgeIt, edgeEnd;
+    std::map < std::pair<int64_t,int64_t >, Line_graph_rt > unique;
+    int64_t count = 0;
+
+    log << "\nPostgres results\n";
+    for (boost::tie(edgeIt, edgeEnd) = boost::edges(this->graph);
+            edgeIt != edgeEnd; edgeIt++) {
+        E e = *edgeIt;
+        auto e_source = this->graph[this->source(e)].vertex_id;
+        auto e_target = this->graph[this->target(e)].vertex_id;
+
+        log << "e_source = " << e_source << " | e_target = " << e_target << "\n";
+
+        if(unique.find( {e_target, e_source} ) != unique.end()) {
+            unique[ std::pair<int64_t,int64_t>(e_target, e_source) ].reverse_cost = 1.0;
+            continue;
+        }
+        e_source *= -1;
+        e_target *= -1;
+        if(unique.find( {e_target, e_source} ) != unique.end()) {
+            unique[ std::pair<int64_t,int64_t>(e_target, e_source) ].reverse_cost = 1.0;
+            continue;
+        }
+        e_source *= -1;
+        e_target *= -1;
+
+        Line_graph_rt edge = {
+            ++count,
+            e_source,
+            e_target,
+            1.0,
+            -1.0
+        };
+        unique[ std::pair<int64_t,int64_t>(e_source, e_target)] = edge;
+    }
+    for (const auto &edge: unique) {
+        results.push_back(edge.second);
+    }
+    return results;
+}
+
+#if 0
+template < class G, typename T_V, typename T_E >
+template < typename T >
+void
+Pgr_lineGraph< G, T_V, T_E >::get_ids(std::vector< T >& restrictions) {
+    for (auto &r: restrictions) {
+        auto restrict_edges = r.restrict_edges();
+        std::vector < int64_t > temp;
+
+        pgassert(m_edges.find(restrict_edges[0]) != m_edges.end());
+        auto prev = m_edges[restrict_edges[0]];
+
+        for (auto i = 1; i < (int64_t)restrict_edges.size(); i++) {
+            pgassert(m_edges.find(restrict_edges[i]) != m_edges.end());
+            auto cur = m_edges[restrict_edges[i]];
+
+            if (prev.target == cur.target) {
+                std::swap(cur.source, cur.target);
+                std::swap(cur.cost, cur.reverse_cost);
+            }
+
+            if(prev.source == cur.source) {
+                std::swap(prev.source, prev.target);
+                std::swap(prev.cost, prev.reverse_cost);
+            }
+
+            if(prev.source == cur.target) {
+                std::swap(prev.source, prev.target);
+                std::swap(prev.cost, prev.reverse_cost);
+                std::swap(cur.source, cur.target);
+                std::swap(cur.cost, cur.reverse_cost);
+            }
+
+            pgassert(m_vertex_map.find( {prev.id, prev.source} ) != m_vertex_map.end());
+            pgassert(m_vertex_map.find( {cur.id, cur.source} ) != m_vertex_map.end());
+
+            if (temp.empty()) {
+                temp.push_back( m_vertex_map[ {prev.id, prev.source} ] );
+            }
+
+            temp.push_back( m_vertex_map[ {cur.id, cur.source} ] );
+            prev = cur;
+        }
+        r.clear();
+        for (const auto &it: temp) r.restrict_edges(it);
+    }
+}
+
+template < class G, typename T_V, typename T_E >
+template < typename T >
+void
+Pgr_lineGraph< G, T_V, T_E >::disconnect_edge(const T& from, const T& to) {
+
+    pgassert(this->vertices_map.find(from) != this->vertices_map.end());
+    pgassert(this->vertices_map.find(to) != this->vertices_map.end());
+
+    auto vm_s = this->get_V(from);
+    auto vm_t = this->get_V(to);
+
+    boost::remove_edge(vm_s, vm_t, this->graph);
+}
+
+template < class G, typename T_V, typename T_E >
+void
+Pgr_lineGraph< G, T_V, T_E >::create_virtual_vertex(int64_t id) {
+    ++(this->m_num_vertices);
+    auto v = add_vertex(this->graph);
+    this->vertices_map[this->m_num_vertices] = v;
+    this->graph[v].cp_members(this->m_num_vertices, id);
+    m_vertex_map[ {id, -1} ] = this->m_num_vertices;
+    pgassert(boost::num_vertices(this->graph) == this->num_vertices());
+}
+
+template < class G, typename T_V, typename T_E >
+void
+Pgr_lineGraph< G, T_V, T_E >::create_virtual_edge(
+        int64_t source_id,
+        int64_t source_vertex,
+        int64_t target_id,
+        int64_t target_vertex) {
+    bool inserted;
+    typename Pgr_base_graph< G, T_V, T_E >::E e;
+
+    if (source_id < 0) source_id *= -1;
+    if (target_id < 0) target_id *= -1;
+
+    pgassert(m_vertex_map.find( {source_id, source_vertex} ) !=
+        m_vertex_map.end());
+    pgassert(m_vertex_map.find( {target_id, target_vertex} ) !=
+            m_vertex_map.end());
+
+    auto index_source_edge = m_vertex_map[ {source_id, source_vertex} ];
+    auto index_target_edge = m_vertex_map[ {target_id, target_vertex} ];
+
+    auto vm_s = this->get_V(index_source_edge);
+    auto vm_t = this->get_V(index_target_edge);
+
+    boost::tie(e, inserted) =
+        boost::add_edge(vm_s, vm_t, this->graph);
+
+    ++m_num_edges;
+    this->graph[e].id = m_num_edges;
+}
+
+template < class G, typename T_V, typename T_E >
+void
+Pgr_lineGraph< G, T_V, T_E >::create_virtual_vertices() {
+    V_i vertexIt, vertexEnd;
+    boost::tie(vertexIt, vertexEnd) = boost::vertices(this->graph);
+    for (;vertexIt != vertexEnd; vertexIt++) {
+        auto vertex = this->graph[*vertexIt];
+        if (!m_vertex_map.count( {vertex.source, -1} )) {
+            create_virtual_vertex(vertex.source);
+        }
+        if(!m_vertex_map.count( {vertex.target, -1} )) {
+            create_virtual_vertex(vertex.target);
+        }
+
+        pgassert(m_vertex_map.find( {vertex.source, -1} ) !=
+            m_vertex_map.end());
+        pgassert(m_vertex_map.find( {vertex.target, -1} ) !=
+                m_vertex_map.end());
+
+        create_virtual_edge(vertex.source, -1, vertex.vertex_id, vertex.source);
+        create_virtual_edge(vertex.vertex_id, vertex.source, vertex.target, -1);
+    }
+}
+#endif
+
+template < class G, typename T_V, typename T_E >
+std::vector < Line_vertex >
+Pgr_lineGraph< G, T_V, T_E >::extract_vertices() {
+    /*
+        m_vertex_map stores a unique id assigned to each vertex of Line Graph.
+
+        In case of a directed edge, either 1 or 2 vertices are to be created in
+        the Line Graph for each of the edges.
+        Consider the following edge in directed graph:-
+            ID = 1 | source = 2 | target = 3 | cost = 10 | reverse_cost = 20
+        This creates 2 vertices in Line Graph:-
+            1. ID = 1 | source = 2 | target = 3 | cost = 10
+            2. ID = 1 | source = 3 | target = 2 | cost = 25
+        So, the values stored in m_vertex_map would be:-
+            1. {1, 2} = 1(Denoting the edge from 2 - > 3 of cost 10).
+            2. {1, 3} = 2(Denoting the edge from 3 - > 2 of cost 25).
+            where {key} = value in m_vertex_map.
+
+        In case of undirected edge, either 2 or 4 vertices are to be created in
+        the Line Graph for each of the edges.
+        Consider the following edge in an undirected graph:-
+            ID = 1 | source = 2 | target = 3 | cost = 10 | reverse_cost = 25
+        This creates the following 4 vertices in Line Graph:-
+            1. ID = 1 | source = 2 | target = 3 | cost = 10
+            2. ID = 1 | source = 3 | target = 2 | cost = 10
+            3. ID = 1 | source = 3 | target = 2 | cost = 25
+            4. ID = 1 | source = 2 | target = 3 | cost = 25
+        so, the values stored in m_vertex_map would be:-
+            1. {1, 2} = 1(Denoting the edge from 2 - > 3 of cost 10).
+            2. {-1, 3} = 2(Denoting the edge from 3 - > 2 of cost 10).
+            3. {1, 3} = 3(Deonting the edge from 3 - > 2 of cost 25).
+            4. {-1, 2} = 4(Denoting the edge from 2 - > 3 of cost 25).
+            where {key} = value in m_vertex_map.
+    */
+    if (m_edges.empty()) return std::vector< Line_vertex >();
+
+    std::vector< Line_vertex > vertices;
+
+#if 0
+    log << "\nEdges of original graph\n";
+#endif
+
+    for (const auto &it : m_edges) {
+        auto edge = it.second;
+        Line_vertex vertex(edge);
+
+#if 1
+        log << "ID: " << edge.id;
+        log << "| source: " << edge.source;
+        log << "| target: " << edge.target;
+        log << "| cost: " << edge.cost;
+        log << "| reverse_cost: " << edge.reverse_cost << "\n\n";
+#endif
+
+        if (edge.cost > 0) {
+            vertex.id = (++(this->m_num_vertices));
+            vertices.push_back(vertex);
+            m_vertex_map[ std::pair<int64_t,int64_t>(edge.id, edge.source) ] = this->m_num_vertices;
+
+            if (this->m_gType == UNDIRECTED) {
+                vertex.id = (++(this->m_num_vertices));
+                std::swap(vertex.source, vertex.target);
+                vertices.push_back(vertex);
+                m_vertex_map[std::pair<int64_t,int64_t>(-1*edge.id, edge.target)] = this->m_num_vertices;
+                std::swap(vertex.source, vertex.target);
+            }
+        }
+
+        if (edge.reverse_cost > 0) {
+            vertex.id = (++(this->m_num_vertices));
+            vertex.cost = edge.reverse_cost;
+            vertex.vertex_id *= -1;
+            std::swap(vertex.source, vertex.target);
+            vertices.push_back(vertex);
+            m_vertex_map[ std::pair<int64_t,int64_t>(edge.id, edge.target) ] = this->m_num_vertices;
+
+            if (this->m_gType == UNDIRECTED) {
+                vertex.id = (++(this->m_num_vertices));
+                std::swap(vertex.source, vertex.target);
+                vertices.push_back(vertex);
+                m_vertex_map[std::pair<int64_t,int64_t>(-1*edge.id, edge.source)] = this->m_num_vertices;
+            }
+        }
+    }
+#if 0
+    for (auto it: m_vertex_map) {
+        log << it.first.first << " | " << it.first.second << " | " << it.second << "\n";
+    }
+#endif
+    return vertices;
+}
+
+template < class G, typename T_V, typename T_E >
+template < typename T>
+void
+Pgr_lineGraph< G, T_V, T_E >::graph_add_edge(
+        int64_t _id,
+        const T &source,
+        const T &target,
+        int64_t source_in_edge,
+        int64_t source_out_edge) {
+
+    bool inserted;
+    typename Pgr_base_graph< G, T_V, T_E >::E e;
+
+    pgassert(m_vertex_map.find( {source, source_in_edge} ) !=
+        m_vertex_map.end());
+    pgassert(m_vertex_map.find( {target, source_out_edge} ) !=
+            m_vertex_map.end());
+
+    auto index_source_edge = m_vertex_map[ std::pair<int64_t,int64_t>(source, source_in_edge) ];
+    auto index_target_edge = m_vertex_map[ std::pair<int64_t,int64_t>(target, source_out_edge) ];
+
+#if 0
+    log << "\nsource_in_edge = " << source_in_edge << " | "
+        << "source_out_edge = " << source_out_edge << " | "
+        << "index_source_edge = " << index_source_edge << " | "
+        << "index_target_edge = " << index_target_edge << " | "
+        << "edge.source = " << source << " | "
+        << "edge.target = " << target << "\n";
+#endif
+
+    auto vm_s = this->get_V(index_source_edge);
+    auto vm_t = this->get_V(index_target_edge);
+
+    pgassert(this->vertices_map.find(index_source_edge) != this->vertices_map.end());
+    pgassert(this->vertices_map.find(index_target_edge) != this->vertices_map.end());
+
+    boost::tie(e, inserted) =
+        boost::add_edge(vm_s, vm_t, this->graph);
+
+    this->graph[e].id = _id;
+}
+
+template < class G, typename T_V, typename T_E >
+void
+Pgr_lineGraph< G, T_V, T_E >::create_edges(
+        const pgrouting::DirectedGraph& digraph) {
+
+    V_i vertexIt, vertexEnd;
+    EO_i e_outIt, e_outEnd;
+    EI_i e_inIt, e_inEnd;
+
+    /*
+    for (each vertex v in original graph) {
+       for( all incoming edges inn to vertex v) {
+              for( all outgoing edges outt from vertex v) {
+                     create an edge in the line graph(inn, outt);
+             }
+       }
+   }
+    */
+
+    for(boost::tie(vertexIt, vertexEnd) = boost::vertices(digraph.graph);
+            vertexIt != vertexEnd; vertexIt++) {
+        V vertex = *vertexIt;
+
+        for (boost::tie(e_outIt, e_outEnd) = boost::out_edges(vertex, digraph.graph);
+                e_outIt != e_outEnd; e_outIt++) {
+            for (boost::tie(e_inIt, e_inEnd) = boost::in_edges(vertex, digraph.graph);
+                    e_inIt != e_inEnd; e_inIt++) {
+
+#if 0
+                log << "\n";
+                log << digraph.graph[*inIt].id << " | " << digraph[digraph.source(*inIt)].id << " | " << digraph[digraph.target(*inIt)].id << " | " << digraph.graph[*inIt].cost << "\n";
+                log << digraph.graph[*outIt].id << " | " << digraph[digraph.source(*outIt)].id << " | " << digraph[digraph.target(*outIt)].id << " | " << digraph.graph[*outIt].cost << "\n\n";
+#endif
+
+                /*
+                Prevent self-edges from being created in the Line Graph
+                */
+                if (labs(digraph.graph[*e_inIt].id) == labs(digraph.graph[*e_outIt].id))
+                    continue;
+
+                auto source_in_edge = digraph.source(*e_inIt);
+
+#if 0
+                log << "source = " << digraph[source_in_edge] << " | mid = " << digraph[vertex] << "\n\n\n";
+#endif
+
+                ++m_num_edges;
+
+                graph_add_edge(
+                    m_num_edges,
+                    (digraph.graph[*e_inIt]).id,
+                    (digraph.graph[*e_outIt]).id,
+                    digraph[source_in_edge].id,
+                    digraph[vertex].id
+                );
+            }
+        }
+    }
+}
+
+template < class G, typename T_V, typename T_E >
+ void
+ Pgr_lineGraph< G, T_V, T_E >::add_vertices(
+         std::vector< T_V > vertices) {
+
+     for (const auto vertex : vertices) {
+         pgassert(this->vertices_map.find(vertex.id) == this->vertices_map.end());
+
+         auto v =  add_vertex(this->graph);
+         this->vertices_map[vertex.id] = v;
+         this->graph[v].cp_members(vertex);
+
+         pgassert(boost::num_vertices(this->graph) == this->num_vertices());
+     }
+     return;
+ }
+
+}  // namespace graph
+}  // namespace pgrouting
+
+#endif  // INCLUDE_COMPONENTS_PGR_LINEGRAPH_HPP_
diff --git a/include/tsp/eucledianDmatrix.h b/include/tsp/eucledianDmatrix.h
new file mode 100644
index 0000000..882803e
--- /dev/null
+++ b/include/tsp/eucledianDmatrix.h
@@ -0,0 +1,124 @@
+/*PGR-GNU*****************************************************************
+
+FILE: eucledianDmatrix.h
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_TSP_EUCLEDIANDMATRIX_H_
+#define INCLUDE_TSP_EUCLEDIANDMATRIX_H_
+#pragma once
+
+#include <iostream>
+#include <vector>
+
+#include "c_types/coordinate_t.h"
+
+namespace pgrouting {
+namespace tsp {
+
+class Tour;  // for tourCost
+
+class eucledianDmatrix {
+ public:
+    eucledianDmatrix() = default;
+    explicit eucledianDmatrix(
+            const std::vector< Coordinate_t > &data_coordinates);
+
+    bool has_no_infinity() const;
+    bool obeys_triangle_inequality() const;
+    bool is_symmetric() const;
+
+    /*! @brief sets a special value for the distance(i,j)
+     *
+     * @param[in] i - index in matrix
+     * @param[in] j - index in matrix
+     * @param[in] dist - distance from i to j & from j to i
+     *
+     */
+    void set(size_t i, size_t j, double dist) {
+        row = i; column = j; special_distance = dist;}
+
+    /*! @brief original id -> true
+     *
+     * @param[in] id  original id
+     *
+     * @returns true if id is in the distance table
+     */
+    bool has_id(int64_t id) const;
+
+    /*! @brief original id -> idx
+     *
+     * @param[in] id - original id
+     * @returns idx index of the id in the distance table
+     */
+    size_t get_index(int64_t id) const;
+
+    /*! @brief idx -> original id
+     *
+     * @param[in] idx - index (i-th coordinate)
+     * @returns the original id corresponding to idx
+     */
+    int64_t get_id(size_t idx) const;
+
+    /*! @brief |idx|
+     *
+     * @returns the total number of coordinates
+     */
+    size_t size() const {return ids.size();}
+
+    /*! @brief tour evaluation
+     *
+     * @param[in] tour
+     * @returns total cost of traversing the tour
+     */
+    double tourCost(const Tour &tour) const;
+
+    /*! @brief returns a row of distances
+     *
+     * @param[in] idx  row index
+     *
+     * @returns distances from idx to all other coordinates
+     */
+    const std::vector<double> get_row(size_t idx) const;
+
+    double comparable_distance(size_t i, size_t j) const;
+    double distance(size_t i, size_t j) const;
+
+    friend std::ostream& operator<<(
+            std::ostream &log,
+            const eucledianDmatrix &matrix);
+
+ protected:
+    void set_ids();
+    std::vector<int64_t> ids;
+
+ private:
+    std::vector < Coordinate_t >  coordinates;
+    size_t row;
+    size_t column;
+    double special_distance;
+};
+
+}  // namespace tsp
+}  // namespace pgrouting
+
+#endif  // INCLUDE_TSP_EUCLEDIANDMATRIX_H_
diff --git a/include/tsp/pgr_tsp.cpp b/include/tsp/pgr_tsp.cpp
new file mode 100644
index 0000000..4a08bc6
--- /dev/null
+++ b/include/tsp/pgr_tsp.cpp
@@ -0,0 +1,572 @@
+/*PGR-GNU*****************************************************************
+ * File: pgr_tsp.cpp
+ *
+ * Generated with Template by:
+ * Copyright (c) 2015 pgRouting developers
+ * Mail: project at pgrouting.org
+ *
+ * Function's developer:
+ * Copyright (c) 2015 Celia Virginia Vergara Castillo
+ * Mail: vicky_vergara at hotmail.com
+ *
+ * ------
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ *  ********************************************************************PGR-GNU*/
+
+
+#include "tsp/pgr_tsp.hpp"
+
+#include <time.h>
+
+#include <utility>
+#include <iomanip>
+#include <limits>
+#include <vector>
+#include <set>
+#include <algorithm>
+#include <cmath>
+
+#include "cpp_common/pgr_assert.h"
+
+
+
+static
+size_t
+rand(size_t n) {
+    pgassert(n > 0);
+    return static_cast< size_t >(std::rand() % n);
+}
+
+
+static
+size_t
+succ(size_t i, size_t n) {
+    pgassert(n > 0);
+    return static_cast<size_t>((i + 1) % n);
+}
+
+static
+size_t
+pred(size_t i, size_t n) {
+    return  i == 0? n - 1: i -1;
+}
+
+
+namespace pgrouting {
+namespace tsp {
+
+template < typename MATRIX >
+void TSP<MATRIX>::invariant() const {
+    /* the calculated value & the actual value are the same */
+    pgassert(std::fabs(tourCost(current_tour) - current_cost) < epsilon);
+    pgassert(std::fabs(tourCost(best_tour) - bestCost) < epsilon);
+    pgassert(n == MATRIX::ids.size());
+    pgassert(n == current_tour.size());
+    pgassert(n == best_tour.size());
+}
+
+template < typename MATRIX >
+void
+TSP<MATRIX>::update_if_best() {
+    invariant();
+    ++updatecalls;
+
+    if (current_cost < bestCost) {
+        ++improve_count;
+        best_tour = current_tour;
+        bestCost = current_cost;
+    }
+
+    invariant();
+}
+
+
+
+template < typename MATRIX >
+size_t
+TSP<MATRIX>::find_closest_city(
+        size_t current_city,
+        const std::set<size_t> inserted) const {
+    invariant();
+
+    auto distance_row(get_row(current_city));
+    pgassert(distance_row.size() == n);
+
+#ifndef NDEBUG
+    std::ostringstream err;
+    for (const auto &d : distance_row) {
+        err  << d << ", ";
+    }
+#endif
+
+    size_t best_city = 0;
+    auto best_distance = (std::numeric_limits<double>::max)();
+#ifndef NDEBUG
+    bool found(false);
+#endif
+
+    for (size_t i = 0; i < distance_row.size(); ++i) {
+        if (i == current_city) continue;
+        if (inserted.find(i) != inserted.end()) continue;
+        if (distance_row[i] <  best_distance) {
+            best_city = i;
+            best_distance = distance_row[i];
+#ifndef NDEBUG
+            found = true;
+#endif
+        }
+    }
+    pgassertwm(found, err.str());
+
+    invariant();
+    return best_city;
+}
+
+
+
+template < typename MATRIX >
+void
+TSP<MATRIX>::greedyInitial(size_t idx_start) {
+    invariant();
+
+    std::set<size_t> pending(best_tour.cities.begin(), best_tour.cities.end());
+    std::set<size_t> inserted;
+    std::vector<size_t> tour_to_be;
+
+    auto current_city = idx_start;
+
+#ifndef NDEBUG
+    std::ostringstream err;
+    auto ps(pending.size());
+#endif
+
+    pending.erase(idx_start);
+
+#ifndef NDEBUG
+    pgassert(pending.size() == (ps - 1));
+#endif
+
+    tour_to_be.push_back(current_city);
+    inserted.insert(current_city);
+
+    while (!pending.empty()) {
+        auto next_city = find_closest_city(current_city, inserted);
+        tour_to_be.push_back(next_city);
+        inserted.insert(next_city);
+
+#ifndef NDEBUG
+        auto ps(pending.size());
+        err << "before";
+        for (const auto p : pending) {
+            err << p << ",";
+        }
+#endif
+
+        pending.erase(next_city);
+
+#ifndef NDEBUG
+        err << "\nafter deleting" << next_city << ":\t";
+        for (const auto p : pending) {
+            err << p << ",";
+        }
+        pgassertwm(pending.size() == (ps - 1), err.str());
+#endif
+
+        current_city = next_city;
+    }
+
+    pgassert(tour_to_be.size() == n);
+    current_tour = Tour(tour_to_be);
+    current_cost = tourCost(current_tour);
+    update_if_best();
+    swapClimb();
+
+    invariant();
+    return;
+}
+
+
+
+/*
+ *
+ * 0 1 2 3 4 5 6 7 8 9
+ *     p   f     l
+ * slides [4,5,6] to position p
+ *
+ * 0 1 4 5 6 2 3 7 8 9
+ *
+ *
+ * 0 1 2 3 4 5 6 7 8 9
+ *     f     l     p
+ * slides [2,3,4] to position p
+ *
+ * 0 1 6 7 2 3 4 5 8 9
+ *
+ *
+ */
+
+template < typename MATRIX >
+double
+TSP<MATRIX>::getDeltaSlide(size_t place, size_t first, size_t last) const {
+    invariant();
+#ifndef NDEBUG
+    std::ostringstream err;
+    err  << "\tplace" << place
+        << "\tfirst" << first
+        << "\tlast" << last
+        << "\tn" << n;
+#endif
+
+    pgassertwm(place < first || place > last, err.str());
+    pgassertwm(first < last, err.str());
+    pgassertwm(last < n, err.str());
+    pgassertwm(place < n, err.str());
+    pgassertwm(first < n, err.str());
+
+    /*
+     * Initial state
+     * [...f] [f+1 ... l] [l+1 ...p] [p+1 ...]
+     *
+     * final state
+     * [...f] [l+1 ... p] [f+1 ...l] [p+1 ...]
+     *
+     *
+     * Initial state
+     *   [f+1 ... l]
+     *     :      :
+     * [...f]   [l+1 ...p] [p+1 ...]
+     *
+     * final state
+     *               [f+1 ... l]
+     *                :       :
+     * [...f] [l+1 ...p]   [p+1 ...]
+     *
+     */
+
+    auto cityP = current_tour.cities[place];
+    auto cityF = current_tour.cities[first];
+    auto cityL = current_tour.cities[last];
+    auto cityP1 = current_tour.cities[succ(place, n)];
+    auto cityF1 = current_tour.cities[succ(first, n)];
+    auto cityL1 = current_tour.cities[succ(last, n)];
+
+    auto delta(
+            distance(cityF, cityL1)
+            + distance(cityP, cityF1)
+            + distance(cityL, cityP1)
+            - distance(cityF, cityF1)
+            - distance(cityL, cityL1)
+            - distance(cityP, cityP1));
+
+#ifndef NDEBUG
+    Tour new_tour(current_tour);
+    new_tour.slide(place, first, last);
+
+    err << "\ncurrent_tour:";
+    for (const auto id : current_tour.cities) {
+        err << id << ", ";
+    }
+
+    err << "\nnew_tour:";
+    for (const auto id : new_tour.cities) {
+        err << id << ", ";
+    }
+
+    auto exactDelta = tourCost(new_tour) - tourCost(current_tour);
+    err << "\n"
+        << exactDelta
+        << " - " <<  delta
+        << " = "
+        << exactDelta - delta
+        << " = "
+        << std::fabs(exactDelta - delta);
+    pgassertwm(std::fabs((exactDelta - delta)) < epsilon, err.str());
+#endif
+
+    invariant();
+    return delta;
+}
+
+
+/*
+ *       c..d            c..d
+ *       |  |     =>     |  |
+ *       |  |            |  |
+ *  b -- a  e --f   b -- e  a -- f
+ *
+ *   a b 1  2   .. n-1 n c d
+ *   a c n n-1  ..  2  1 c d
+ */
+template < typename MATRIX >
+double
+TSP<MATRIX>::getDeltaSwap(size_t posA, size_t posE) const {
+    invariant();
+
+    if (succ(posE, n ) == posA) std::swap(posA, posE);
+    if (succ(posA, n) == posE) {
+        auto b = current_tour.cities[pred(posA, n)];
+        auto a = current_tour.cities[posA];
+
+        auto e = current_tour.cities[posE];
+        auto f = current_tour.cities[succ(posE, n)];
+        return distance(b, e) + distance(e, a) + distance(a, f)
+            - distance(b, a) - distance(a, e)  - distance(e, f);
+    }
+
+    auto b = current_tour.cities[pred(posA, n)];
+    auto a = current_tour.cities[posA];
+    auto c = current_tour.cities[succ(posA, n)];
+
+    auto d = current_tour.cities[pred(posE, n)];
+    auto e = current_tour.cities[posE];
+    auto f = current_tour.cities[succ(posE, n)];
+
+#ifndef NDEBUG
+    auto delta = distance(b, e)
+        + distance(e, c) + distance(d, a) + distance(a, f)
+        - distance(b, a) - distance(a, c)  - distance(d, e) - distance(e, f);
+    auto new_tour(current_tour);
+    new_tour.swap(posA, posE);
+    auto exactDelta = tourCost(new_tour) - tourCost(current_tour);
+    std::ostringstream log;
+    log << exactDelta
+        << " - " <<  delta
+        << " = "
+        << exactDelta - delta
+        << " = "
+        << std::fabs(exactDelta - delta);
+
+    pgassertwm(std::fabs((exactDelta - delta)) < epsilon, log.str());
+#endif
+
+    invariant();
+    return  distance(b, e) + distance(e, c) + distance(d, a) + distance(a, f)
+        - distance(b, a) - distance(a, c)  - distance(d, e) - distance(e, f);
+}
+
+/*
+ *   ..A                    C
+ *       [                    )
+ *   ..a  b 1  2   .. n-1 n c d ..
+ *   ..a  c n n-1  ..  2  1 b d ..
+ */
+template < typename MATRIX >
+double
+TSP<MATRIX>::getDeltaReverse(size_t posA, size_t posC) const {
+    invariant();
+
+    if (posA == (posC - 1)) return 0;
+    auto a = current_tour.cities[posA];
+    auto b = current_tour.cities[succ(posA, n)];
+
+    auto c = current_tour.cities[posC];
+    auto d = current_tour.cities[succ(posC, n)];
+
+
+#ifndef NDEBUG
+    auto delta =
+        distance(a, c) + distance(b, d) - distance(a, b) - distance(c, d);
+    auto new_tour(current_tour);
+    new_tour.reverse(posA, posC);
+    auto exactDelta = tourCost(new_tour) - tourCost(current_tour);
+
+    std::ostringstream log;
+    log << "exactDelta(" << exactDelta
+        << ") - delta(" <<  delta
+        << ") = "
+        << exactDelta - delta
+        << " = "
+        << (exactDelta - delta)
+        << " epsilon = " << epsilon;
+    pgassertwm(std::fabs((exactDelta - delta)) < epsilon, log.str());
+#endif
+
+    invariant();
+    return  distance(a, c) + distance(b, d) - distance(a, b) - distance(c, d);
+}
+
+template < typename MATRIX >
+void
+TSP<MATRIX>::swapClimb() {
+    invariant();
+    pgassert(n > 2);
+
+    //    auto first = std::rand() % n;
+    //    for (size_t first = std::rand() % n; first < n; first++) {
+    for (size_t first = 0; first < n; first++) {
+        for (size_t last = first + 1; last < n; last++) {
+            pgassert(first < last);
+
+            auto energyChange = getDeltaSwap(first, last);
+
+            if (energyChange < 0 && epsilon < std::fabs(energyChange)) {
+                ++swap_count;
+                current_cost += energyChange;
+                current_tour.swap(first, last);
+                update_if_best();
+            }
+        }
+    }
+    invariant();
+}
+
+template < typename MATRIX >
+void
+TSP<MATRIX>::annealing(
+        double temperature,
+        double final_temperature,
+        double cooling_factor,
+        int64_t tries_per_temperature,
+        int64_t max_changes_per_temperature,
+        int64_t max_consecutive_non_changes,
+        bool randomize,
+        double time_limit) {
+    invariant();
+    clock_t start_time(clock());
+
+    if (randomize) {
+        std::srand(static_cast<unsigned int>(time(NULL)));
+    } else {
+        std::srand(1);
+    }
+
+
+
+
+    /* annealing schedule */
+    for (; final_temperature < temperature; temperature *= cooling_factor) {
+        invariant();
+
+        log << "\nCycle(" << temperature <<") ";
+
+        /*
+           how many times the tour changed in current temperature
+           */
+        int64_t pathchg = 0;
+        size_t enchg = 0;
+        int64_t non_change = 0;
+        for (int64_t j = 0; j < tries_per_temperature; j++) {
+            ++non_change;
+
+            auto which = rand(2);
+            // which = 1;
+            switch (which) {
+                case 0: {
+                            /* reverse */
+                            pgassert(n > 2);
+
+                            auto c1 = std::rand() % n;
+                            auto c2 = std::rand() % n;
+
+                            if (c1 == c2) c2 = succ(c2, n);
+                            if (c1 == (c2 - 1)) c2 = succ(c2, n);
+                            if (c1 > c2) std::swap(c1, c2);
+
+                            pgassert(c1 != c2);
+                            pgassert(c1 < n && c2 < n);
+                            pgassert(c1 < c2);
+
+                            auto energyChange = getDeltaReverse(c1, c2);
+
+                            if ( (energyChange < 0
+                                        && epsilon < std::fabs(energyChange))
+                                    || (0 < energyChange
+                                        &&  (
+                                            static_cast<double>(std::rand()) /
+                                            static_cast<double>(RAND_MAX))
+                                        < exp(-energyChange / temperature))) {
+                                if (energyChange < 0) ++enchg;
+                                ++reverse_count;
+                                ++pathchg;
+                                non_change = 0;
+                                current_cost += energyChange;
+                                current_tour.reverse(c1, c2);
+                                update_if_best();
+                            }
+                        }
+                        break;
+                case 1: {
+                            /* slide */
+                            if (n <= 3) {
+                                break;
+                            }
+
+                            pgassert(n > 3);
+
+                            auto first = std::rand() % n;
+                            auto last = std::rand() % n;
+
+                            if (first == last) last = succ(last, n);
+                            if (first > last) std::swap(first, last);
+                            if (first == 0 && last == (n - 1)) {
+                                first = succ(first, n);
+                            }
+
+                            pgassert((n - (last - first) - 1) > 0);
+                            auto place = std::rand() % (n - (last - first) - 1);
+                            place = place < first?  place :
+                                last + (place - first) + 1;
+
+
+                            pgassert((place < first
+                                        || place > last)
+                                    && (first < last));
+
+                            auto energyChange = getDeltaSlide(
+                                    place, first, last);
+
+                            if ((energyChange < 0
+                                        && epsilon < std::fabs(energyChange))
+                                    || (0 < energyChange
+                                        &&  (static_cast<double>(std::rand())
+                                            / static_cast<double>(RAND_MAX))
+                                        < exp(-energyChange / temperature))) {
+                                if (energyChange < 0) ++enchg;
+                                ++slide_count;
+                                ++pathchg;
+                                non_change = 0;
+                                current_cost += energyChange;
+                                current_tour.slide(place, first, last);
+                                update_if_best();
+                            }
+                        }
+                        break;
+            }  // switch
+
+
+            if (max_changes_per_temperature < pathchg
+                    && max_consecutive_non_changes < non_change ) {
+                break;
+            }
+        }  // for tries per temperature
+
+        swapClimb();
+        clock_t current_time(clock());
+        double elapsed_time = static_cast<double>(
+                current_time - start_time) / CLOCKS_PER_SEC;
+        if (time_limit < elapsed_time) {
+            break;
+        }
+        log << "\ttotal changes =" << pathchg
+            << "\t" << enchg << " were because  delta energy < 0";
+        if (pathchg == 0) break;   /* if no change then quit */
+    }  // for temperatures
+}
+
+}  // namespace tsp
+}  // namespace pgrouting
+
diff --git a/include/tsp/pgr_tsp.hpp b/include/tsp/pgr_tsp.hpp
new file mode 100644
index 0000000..ec93814
--- /dev/null
+++ b/include/tsp/pgr_tsp.hpp
@@ -0,0 +1,674 @@
+/*PGR-GNU*****************************************************************
+ * File: tsp_driver.cpp
+ *
+ * Generated with Template by:
+ * Copyright (c) 2015 pgRouting developers
+ * Mail: project at pgrouting.org
+ *
+ * Function's developer:
+ * Copyright (c) 2015 Celia Virginia Vergara Castillo
+ * Mail: vicky_vergara at hotmail.com
+ *
+ * ------
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ *  ********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_TSP_PGR_TSP_HPP_
+#define INCLUDE_TSP_PGR_TSP_HPP_
+#pragma once
+
+#include <time.h>
+
+#include <sstream>
+#include <vector>
+#include <set>
+#include <string>
+#include <utility>
+#include <limits>
+#include <cmath>
+
+#include "cpp_common/pgr_assert.h"
+#include "cpp_common/Dmatrix.h"
+#include "tsp/eucledianDmatrix.h"
+#include "tsp/tour.h"
+
+
+
+static
+size_t
+rand(size_t n) {
+    pgassert(n > 0);
+    return static_cast< size_t >(std::rand() % n);
+}
+
+
+static
+size_t
+succ(size_t i, size_t n) {
+    pgassert(n > 0);
+    return static_cast<size_t>((i + 1) % n);
+}
+
+static
+size_t
+pred(size_t i, size_t n) {
+    return  i == 0? n - 1: i -1;
+}
+
+
+namespace pgrouting {
+namespace tsp {
+
+template < typename MATRIX >
+class TSP: public MATRIX {
+ public:
+     using MATRIX::distance;
+     using MATRIX::tourCost;
+     using MATRIX::get_row;
+
+     /*
+      * function members
+      */
+     explicit TSP(const MATRIX &_costs)
+         : MATRIX(_costs),
+         current_tour(_costs.size()),
+         best_tour(_costs.size()),
+         epsilon(0.000001),
+         n(_costs.size()),
+         updatecalls(0),
+         swap_count(0),
+         slide_count(0),
+         reverse_count(0),
+         improve_count(0) {
+             pgassert(n == MATRIX::size());
+             bestCost = MATRIX::tourCost(best_tour);
+             current_cost = MATRIX::tourCost(current_tour);
+             pgassert(bestCost == current_cost);
+         }
+
+
+     Tour get_tour() const {return best_tour;}
+
+     std::string get_stats() const {
+         std::ostringstream log1;
+         log1
+             << "\nTotal swaps: " << swap_count
+             << "\nTotal slides: " << slide_count
+             << "\nTotal reverses: " << reverse_count
+             << "\nTimes best tour changed: " << improve_count;
+         return log1.str();}
+
+     std::string get_log() const {
+         return log.str();}
+
+     void greedyInitial(size_t idx_start = 0);
+     void annealing(
+             double initial_temperature,
+             double final_temperature,
+             double cooling_factor,
+             int64_t tries_per_temperature,
+             int64_t max_changes_per_temperature,
+             int64_t max_consecutive_non_changes,
+             bool randomize,
+             double time_limit);
+
+
+ private:
+     Tour current_tour;
+     Tour best_tour;
+     double bestCost;
+     double current_cost;
+     double epsilon;
+     size_t n;
+
+     int updatecalls;
+
+     std::ostringstream log;
+     size_t swap_count;
+     size_t slide_count;
+     size_t reverse_count;
+     size_t improve_count;
+
+ private:
+     void invariant() const;
+
+     size_t find_closest_city(
+             size_t current_city,
+             const std::set<size_t> inserted) const;
+
+     double getDeltaSlide(
+             size_t posP,
+             size_t posF,
+             size_t posL) const;
+
+     void swapClimb();
+
+     double getDeltaSwap(
+             size_t posA,
+             size_t posC) const;
+
+     double getDeltaReverse(
+             size_t posA,
+             size_t posC) const;
+
+     void update_if_best();
+};
+
+
+
+template < typename MATRIX >
+void TSP<MATRIX>::invariant() const {
+    /* the calculated value & the actual value are the same */
+    pgassert(std::fabs(tourCost(current_tour) - current_cost) < epsilon);
+    pgassert(std::fabs(tourCost(best_tour) - bestCost) < epsilon);
+    pgassert(n == MATRIX::ids.size());
+    pgassert(n == current_tour.size());
+    pgassert(n == best_tour.size());
+}
+
+template < typename MATRIX >
+void
+TSP<MATRIX>::update_if_best() {
+    invariant();
+    ++updatecalls;
+
+    if (current_cost < bestCost) {
+        ++improve_count;
+        best_tour = current_tour;
+        bestCost = current_cost;
+    }
+
+    invariant();
+}
+
+
+
+template < typename MATRIX >
+size_t
+TSP<MATRIX>::find_closest_city(
+        size_t current_city,
+        const std::set<size_t> inserted) const {
+    invariant();
+
+    auto distance_row(get_row(current_city));
+    pgassert(distance_row.size() == n);
+
+#ifndef NDEBUG
+    std::ostringstream err;
+    for (const auto &d : distance_row) {
+        err  << d << ", ";
+    }
+#endif
+
+    size_t best_city = 0;
+    auto best_distance = (std::numeric_limits<double>::max)();
+#ifndef NDEBUG
+    bool found(false);
+#endif
+
+    for (size_t i = 0; i < distance_row.size(); ++i) {
+        if (i == current_city) continue;
+        if (inserted.find(i) != inserted.end()) continue;
+        if (distance_row[i] <  best_distance) {
+            best_city = i;
+            best_distance = distance_row[i];
+#ifndef NDEBUG
+            found = true;
+#endif
+        }
+    }
+    pgassertwm(found, err.str());
+
+    invariant();
+    return best_city;
+}
+
+
+
+template < typename MATRIX >
+void
+TSP<MATRIX>::greedyInitial(size_t idx_start) {
+    invariant();
+
+    std::set<size_t> pending(best_tour.cities.begin(), best_tour.cities.end());
+    std::set<size_t> inserted;
+    std::vector<size_t> tour_to_be;
+
+    auto current_city = idx_start;
+
+#ifndef NDEBUG
+    std::ostringstream err;
+    auto ps(pending.size());
+#endif
+
+    pending.erase(idx_start);
+
+#ifndef NDEBUG
+    pgassert(pending.size() == (ps - 1));
+#endif
+
+    tour_to_be.push_back(current_city);
+    inserted.insert(current_city);
+
+    while (!pending.empty()) {
+        auto next_city = find_closest_city(current_city, inserted);
+        tour_to_be.push_back(next_city);
+        inserted.insert(next_city);
+
+#ifndef NDEBUG
+        auto ps(pending.size());
+        err << "before";
+        for (const auto p : pending) {
+            err << p << ",";
+        }
+#endif
+
+        pending.erase(next_city);
+
+#ifndef NDEBUG
+        err << "\nafter deleting" << next_city << ":\t";
+        for (const auto p : pending) {
+            err << p << ",";
+        }
+        pgassertwm(pending.size() == (ps - 1), err.str());
+#endif
+
+        current_city = next_city;
+    }
+
+    pgassert(tour_to_be.size() == n);
+    current_tour = Tour(tour_to_be);
+    current_cost = tourCost(current_tour);
+    update_if_best();
+    swapClimb();
+
+    invariant();
+    return;
+}
+
+
+
+/*
+ *
+ * 0 1 2 3 4 5 6 7 8 9
+ *     p   f     l
+ * slides [4,5,6] to position p
+ *
+ * 0 1 4 5 6 2 3 7 8 9
+ *
+ *
+ * 0 1 2 3 4 5 6 7 8 9
+ *     f     l     p
+ * slides [2,3,4] to position p
+ *
+ * 0 1 6 7 2 3 4 5 8 9
+ *
+ *
+ */
+
+template < typename MATRIX >
+double
+TSP<MATRIX>::getDeltaSlide(size_t place, size_t first, size_t last) const {
+    invariant();
+#ifndef NDEBUG
+    std::ostringstream err;
+    err  << "\tplace" << place
+        << "\tfirst" << first
+        << "\tlast" << last
+        << "\tn" << n;
+#endif
+
+    pgassertwm(place < first || place > last, err.str());
+    pgassertwm(first < last, err.str());
+    pgassertwm(last < n, err.str());
+    pgassertwm(place < n, err.str());
+    pgassertwm(first < n, err.str());
+
+    /*
+     * Initial state
+     * [...f] [f+1 ... l] [l+1 ...p] [p+1 ...]
+     *
+     * final state
+     * [...f] [l+1 ... p] [f+1 ...l] [p+1 ...]
+     *
+     *
+     * Initial state
+     *   [f+1 ... l]
+     *     :      :
+     * [...f]   [l+1 ...p] [p+1 ...]
+     *
+     * final state
+     *               [f+1 ... l]
+     *                :       :
+     * [...f] [l+1 ...p]   [p+1 ...]
+     *
+     */
+
+    auto cityP = current_tour.cities[place];
+    auto cityF = current_tour.cities[first];
+    auto cityL = current_tour.cities[last];
+    auto cityP1 = current_tour.cities[succ(place, n)];
+    auto cityF1 = current_tour.cities[succ(first, n)];
+    auto cityL1 = current_tour.cities[succ(last, n)];
+
+    auto delta(
+            distance(cityF, cityL1)
+            + distance(cityP, cityF1)
+            + distance(cityL, cityP1)
+            - distance(cityF, cityF1)
+            - distance(cityL, cityL1)
+            - distance(cityP, cityP1));
+
+#ifndef NDEBUG
+    Tour new_tour(current_tour);
+    new_tour.slide(place, first, last);
+
+    err << "\ncurrent_tour:";
+    for (const auto id : current_tour.cities) {
+        err << id << ", ";
+    }
+
+    err << "\nnew_tour:";
+    for (const auto id : new_tour.cities) {
+        err << id << ", ";
+    }
+
+    auto exactDelta = tourCost(new_tour) - tourCost(current_tour);
+    err << "\n"
+        << exactDelta
+        << " - " <<  delta
+        << " = "
+        << exactDelta - delta
+        << " = "
+        << std::fabs(exactDelta - delta);
+    pgassertwm(std::fabs((exactDelta - delta)) < epsilon, err.str());
+#endif
+
+    invariant();
+    return delta;
+}
+
+
+/*
+ *       c..d            c..d
+ *       |  |     =>     |  |
+ *       |  |            |  |
+ *  b -- a  e --f   b -- e  a -- f
+ *
+ *   a b 1  2   .. n-1 n c d
+ *   a c n n-1  ..  2  1 c d
+ */
+template < typename MATRIX >
+double
+TSP<MATRIX>::getDeltaSwap(size_t posA, size_t posE) const {
+    invariant();
+
+    if (succ(posE, n ) == posA) std::swap(posA, posE);
+    if (succ(posA, n) == posE) {
+        auto b = current_tour.cities[pred(posA, n)];
+        auto a = current_tour.cities[posA];
+
+        auto e = current_tour.cities[posE];
+        auto f = current_tour.cities[succ(posE, n)];
+        return distance(b, e) + distance(e, a) + distance(a, f)
+            - distance(b, a) - distance(a, e)  - distance(e, f);
+    }
+
+    auto b = current_tour.cities[pred(posA, n)];
+    auto a = current_tour.cities[posA];
+    auto c = current_tour.cities[succ(posA, n)];
+
+    auto d = current_tour.cities[pred(posE, n)];
+    auto e = current_tour.cities[posE];
+    auto f = current_tour.cities[succ(posE, n)];
+
+#ifndef NDEBUG
+    auto delta = distance(b, e)
+        + distance(e, c) + distance(d, a) + distance(a, f)
+        - distance(b, a) - distance(a, c)  - distance(d, e) - distance(e, f);
+    auto new_tour(current_tour);
+    new_tour.swap(posA, posE);
+    auto exactDelta = tourCost(new_tour) - tourCost(current_tour);
+    std::ostringstream log;
+    log << exactDelta
+        << " - " <<  delta
+        << " = "
+        << exactDelta - delta
+        << " = "
+        << std::fabs(exactDelta - delta);
+
+    pgassertwm(std::fabs((exactDelta - delta)) < epsilon, log.str());
+#endif
+
+    invariant();
+    return  distance(b, e) + distance(e, c) + distance(d, a) + distance(a, f)
+        - distance(b, a) - distance(a, c)  - distance(d, e) - distance(e, f);
+}
+
+/*
+ *   ..A                    C
+ *       [                    )
+ *   ..a  b 1  2   .. n-1 n c d ..
+ *   ..a  c n n-1  ..  2  1 b d ..
+ */
+template < typename MATRIX >
+double
+TSP<MATRIX>::getDeltaReverse(size_t posA, size_t posC) const {
+    invariant();
+
+    if (posA == (posC - 1)) return 0;
+    auto a = current_tour.cities[posA];
+    auto b = current_tour.cities[succ(posA, n)];
+
+    auto c = current_tour.cities[posC];
+    auto d = current_tour.cities[succ(posC, n)];
+
+
+#ifndef NDEBUG
+    auto delta =
+        distance(a, c) + distance(b, d) - distance(a, b) - distance(c, d);
+    auto new_tour(current_tour);
+    new_tour.reverse(posA, posC);
+    auto exactDelta = tourCost(new_tour) - tourCost(current_tour);
+
+    std::ostringstream log;
+    log << "exactDelta(" << exactDelta
+        << ") - delta(" <<  delta
+        << ") = "
+        << exactDelta - delta
+        << " = "
+        << (exactDelta - delta)
+        << " epsilon = " << epsilon;
+    pgassertwm(std::fabs((exactDelta - delta)) < epsilon, log.str());
+#endif
+
+    invariant();
+    return  distance(a, c) + distance(b, d) - distance(a, b) - distance(c, d);
+}
+
+template < typename MATRIX >
+void
+TSP<MATRIX>::swapClimb() {
+    invariant();
+    pgassert(n > 2);
+
+    //    auto first = std::rand() % n;
+    //    for (size_t first = std::rand() % n; first < n; first++) {
+    for (size_t first = 0; first < n; first++) {
+        for (size_t last = first + 1; last < n; last++) {
+            pgassert(first < last);
+
+            auto energyChange = getDeltaSwap(first, last);
+
+            if (energyChange < 0 && epsilon < std::fabs(energyChange)) {
+                ++swap_count;
+                current_cost += energyChange;
+                current_tour.swap(first, last);
+                update_if_best();
+            }
+        }
+    }
+    invariant();
+}
+
+template < typename MATRIX >
+void
+TSP<MATRIX>::annealing(
+        double temperature,
+        double final_temperature,
+        double cooling_factor,
+        int64_t tries_per_temperature,
+        int64_t max_changes_per_temperature,
+        int64_t max_consecutive_non_changes,
+        bool randomize,
+        double time_limit) {
+    invariant();
+    clock_t start_time(clock());
+
+    if (randomize) {
+        std::srand(static_cast<unsigned int>(time(NULL)));
+    } else {
+        std::srand(1);
+    }
+
+
+
+
+    /* annealing schedule */
+    for (; final_temperature < temperature; temperature *= cooling_factor) {
+        invariant();
+
+        log << "\nCycle(" << temperature <<") ";
+
+        /*
+           how many times the tour changed in current temperature
+           */
+        int64_t pathchg = 0;
+        size_t enchg = 0;
+        int64_t non_change = 0;
+        for (int64_t j = 0; j < tries_per_temperature; j++) {
+            ++non_change;
+
+            auto which = rand(2);
+            // which = 1;
+            switch (which) {
+                case 0: {
+                            /* reverse */
+                            pgassert(n > 2);
+
+                            auto c1 = std::rand() % n;
+                            auto c2 = std::rand() % n;
+
+                            if (c1 == c2) c2 = succ(c2, n);
+                            if (c1 == (c2 - 1)) c2 = succ(c2, n);
+                            if (c1 > c2) std::swap(c1, c2);
+
+                            pgassert(c1 != c2);
+                            pgassert(c1 < n && c2 < n);
+                            pgassert(c1 < c2);
+
+                            auto energyChange = getDeltaReverse(c1, c2);
+
+                            if ( (energyChange < 0
+                                        && epsilon < std::fabs(energyChange))
+                                    || (0 < energyChange
+                                        &&  (
+                                            static_cast<double>(std::rand()) /
+                                            static_cast<double>(RAND_MAX))
+                                        < exp(-energyChange / temperature))) {
+                                if (energyChange < 0) ++enchg;
+                                ++reverse_count;
+                                ++pathchg;
+                                non_change = 0;
+                                current_cost += energyChange;
+                                current_tour.reverse(c1, c2);
+                                update_if_best();
+                            }
+                        }
+                        break;
+                case 1: {
+                            /* slide */
+                            if (n <= 3) {
+                                break;
+                            }
+
+                            pgassert(n > 3);
+
+                            auto first = std::rand() % n;
+                            auto last = std::rand() % n;
+
+                            if (first == last) last = succ(last, n);
+                            if (first > last) std::swap(first, last);
+                            if (first == 0 && last == (n - 1)) {
+                                first = succ(first, n);
+                            }
+
+                            pgassert((n - (last - first) - 1) > 0);
+                            auto place = std::rand() % (n - (last - first) - 1);
+                            place = place < first?  place :
+                                last + (place - first) + 1;
+
+
+                            pgassert((place < first
+                                        || place > last)
+                                    && (first < last));
+
+                            auto energyChange = getDeltaSlide(
+                                    place, first, last);
+
+                            if ((energyChange < 0
+                                        && epsilon < std::fabs(energyChange))
+                                    || (0 < energyChange
+                                        &&  (static_cast<double>(std::rand())
+                                            / static_cast<double>(RAND_MAX))
+                                        < exp(-energyChange / temperature))) {
+                                if (energyChange < 0) ++enchg;
+                                ++slide_count;
+                                ++pathchg;
+                                non_change = 0;
+                                current_cost += energyChange;
+                                current_tour.slide(place, first, last);
+                                update_if_best();
+                            }
+                        }
+                        break;
+            }  // switch
+
+
+            if (max_changes_per_temperature < pathchg
+                    && max_consecutive_non_changes < non_change ) {
+                break;
+            }
+        }  // for tries per temperature
+
+        swapClimb();
+        clock_t current_time(clock());
+        double elapsed_time = static_cast<double>(
+                current_time - start_time) / CLOCKS_PER_SEC;
+        if (time_limit < elapsed_time) {
+            break;
+        }
+        log << "\ttotal changes =" << pathchg
+            << "\t" << enchg << " were because  delta energy < 0";
+        if (pathchg == 0) break;   /* if no change then quit */
+    }  // for temperatures
+}
+
+}  // namespace tsp
+}  // namespace pgrouting
+
+#endif   // INCLUDE_TSP_PGR_TSP_HPP_
diff --git a/include/tsp/tour.h b/include/tsp/tour.h
new file mode 100644
index 0000000..72f3728
--- /dev/null
+++ b/include/tsp/tour.h
@@ -0,0 +1,160 @@
+/*PGR-GNU*****************************************************************
+
+FILE: tour.h
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_TSP_TOUR_H_
+#define INCLUDE_TSP_TOUR_H_
+#pragma once
+
+#include <stdlib.h>
+#include <algorithm>
+#include <numeric>
+#include <vector>
+
+#include "cpp_common/Dmatrix.h"
+
+
+namespace pgrouting {
+namespace tsp {
+
+
+class Tour {
+ public:
+     Tour(const Tour &) = default;
+
+     explicit Tour(const std::vector<size_t> &cities_order) :
+         cities(cities_order) {
+     }
+
+     explicit Tour(size_t n) {
+         cities.resize(n);
+         std::iota(std::begin(cities), std::end(cities), 0);
+     }
+
+     inline size_t size() const {return cities.size();}
+
+     friend std::ostream& operator<<(
+             std::ostream &log,
+             const Tour &tour);
+
+
+     friend double Dmatrix::tourCost(const Tour &tour) const;
+
+
+     /* @brief slides range [first + 1, last + 1) into place + 1
+      *
+      * 0 1 2 3 4 5 6 7 8 9
+      *     p   f     l
+      * slides [4,5,6] to position p
+      *
+      * 0 1 4 5 6 2 3 7 8 9
+      *
+      *
+      * 0 1 2 3 4 5 6 7 8 9
+      *     f     l     p
+      * slides [2,3,4] to position p
+      *
+      * 0 1 6 7 2 3 4 5 8 9
+      *
+      * uses std::reverse
+      *
+      * http://en.cppreference.com/w/cpp/algorithm/rotate
+      *
+      * first    -   the beginning of the original range
+      * last     -   the end of the original range
+      * place    -   location where to slide
+      *
+      *
+      *
+      * @params[IN] place index of place
+      * @params[IN] first - index of first
+      * @params[IN] last - index of last
+      *
+      * precondition:
+      * pgassert(first < cities.size();
+      * pgassert(last  < cities.size();
+      * pgassert(place < cities.size();
+      *
+      */
+
+     void slide(
+             size_t place,
+             size_t first,
+             size_t last);
+
+
+     /* @brief std::reverse on the cities
+      *
+      * http://en.cppreference.com/w/cpp/algorithm/reverse
+      *
+      * first    -   the beginning of the original range
+      * last     -   the end of the original range
+      *
+      * @params[IN] c1 - index of first
+      * @params[IN] c2 - index of lasst
+      *
+      * precondition:
+      * pgassert(c1 < c2);
+      *
+      */
+
+     void reverse(
+             size_t c1,
+             size_t c2);
+
+
+     /* @brief std::rotate on the cities
+      *
+      * http://en.cppreference.com/w/cpp/algorithm/rotate
+      *
+      * first    -   the beginning of the original range
+      * n_first  -   the element that should appear at the beginning of the rotated range
+      * last     -   the end of the original range
+      *
+      * @params[IN] c1 - index of first
+      * @params[IN] c2 - index of n_first
+      * @params[IN] c3 - index of last
+      *
+      * precondition:
+      * pgassert(c2 && c2 < c3 && c3 < n);
+      *
+      */
+     void rotate(
+             size_t c1,
+             size_t c2,
+             size_t c3);
+
+
+     void swap(
+             size_t c1,
+             size_t c2);
+
+ public:
+     std::vector<size_t> cities;
+};
+
+}  // namespace tsp
+}  // namespace pgrouting
+
+#endif  // INCLUDE_TSP_TOUR_H_
diff --git a/include/vrp/base_node.h b/include/vrp/base_node.h
new file mode 100644
index 0000000..a3053ea
--- /dev/null
+++ b/include/vrp/base_node.h
@@ -0,0 +1,78 @@
+/*PGR-GNU*****************************************************************
+
+FILE: base_node.h
+
+Copyright (c) 2017 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+/*! @file */
+
+#ifndef INCLUDE_VRP_BASE_NODE_H_
+#define INCLUDE_VRP_BASE_NODE_H_
+#pragma once
+
+#include <iosfwd>
+#include "cpp_common/identifier.h"
+
+#if defined(__MINGW32__) || defined(_MSC_VER)
+#include <stdint.h>
+#endif
+
+namespace pgrouting {
+namespace vrp {
+
+/*! \class Base_node
+ * \brief The Base_node class defines the operations that can be performed in a 2D node.
+ *
+ * A Base_node is an identifier of a Node or Dnode.
+ */
+class Base_node : public Identifier {
+ public:
+     Base_node() = default;
+     Base_node(size_t, int64_t);
+
+
+     /** @name to be or not to be */
+     /*!@{*/
+
+     virtual bool operator ==(const Base_node &rhs) const;
+
+     /*!@}*/
+
+     friend std::ostream& operator<<(
+             std::ostream &log,
+             const Base_node &node);
+
+     /*! @name distance
+     @{
+     */
+     virtual double distance(const Base_node *node) const = 0;
+     /*!@}*/
+
+
+ private:
+     virtual void print(std::ostream& os) const;
+};
+
+}  //  namespace vrp
+}  //  namespace pgrouting
+
+#endif  // INCLUDE_VRP_BASE_NODE_H_
diff --git a/include/vrp/book_keeping.h b/include/vrp/book_keeping.h
new file mode 100644
index 0000000..47f336a
--- /dev/null
+++ b/include/vrp/book_keeping.h
@@ -0,0 +1,134 @@
+/*PGR-GNU*****************************************************************
+ *
+ * FILE: book_keeping.h
+ *
+ * Copyright (c) 2017 pgRouting developers
+ * Mail: project at pgrouting.org
+ *
+ * ------
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ *********************************************************************PGR-GNU*/
+
+/*! @file */
+
+#ifndef INCLUDE_VRP_BOOK_KEEPING_H_
+#define INCLUDE_VRP_BOOK_KEEPING_H_
+#pragma once
+
+#include <queue>
+#include <vector>
+#include <iostream>
+#include "vrp/vehicle_pickDeliver.h"
+/**
+ * Book keeping class for swapping orders between vehicles
+ */
+
+namespace pgrouting {
+namespace vrp {
+
+class Swap_bk;
+class Swap_info {
+    friend class Swap_bk;
+
+ public:
+    Swap_info() = default;
+    Swap_info(const Swap_info &) = default;
+    Swap_info(const Vehicle_pickDeliver &from,
+            const Vehicle_pickDeliver &to,
+            size_t from_o,
+            size_t to_o,
+            double delta);
+#if 0
+    from_truck(from),
+        to_truck(to),
+        from_order(from_o),
+        to_order(to_o),
+        estimated_delta(delta)
+        { }
+#endif
+    friend std::ostream& operator << (std::ostream& log, const Swap_info &d);
+#if 0
+    {
+        log
+            << "\n" << d.from_truck.tau() << " --> "
+            << d.from_order
+            << "("
+            << d.from_truck.orders()[d.from_order].pickup().original_id()
+            << ")"
+            << "\n" << d.to_truck.tau() << " --> "
+            << d.to_order
+            << "("
+            << d.to_truck.orders()[d.to_order].pickup().original_id()
+            << ")"
+            << "\n" << "delta = " << d.estimated_delta;
+        return log;
+    }
+#endif
+
+ public:
+    Vehicle_pickDeliver from_truck;
+    Vehicle_pickDeliver to_truck;
+    size_t from_order;
+    size_t to_order;
+    double estimated_delta;
+};
+
+
+class Swap_bk {
+ private:
+     class Compare {
+      public:
+          bool operator() (const Swap_info &lhs, const Swap_info rhs) {
+              return lhs.estimated_delta > rhs.estimated_delta;
+          }
+     };
+
+ public:
+     typedef std::priority_queue<
+         Swap_info,
+         std::vector<Swap_info>,
+         Compare >  Swaps_queue;
+
+
+     Swaps_queue  m_swaps;
+     friend std::ostream& operator<< (std::ostream &log, const Swap_bk &data);
+#if 0
+     {
+         auto q = data.m_swaps;
+         while (!q.empty()) {
+             log << q.top() << " ";
+             q.pop();
+         }
+         log << '\n';
+         return log;
+     }
+#endif
+
+ public:
+     Swap_bk() = default;
+     Swap_bk(const Swap_bk &bk) = default;
+     Swaps_queue& possible_swaps() {return m_swaps;}
+     void push(const Swap_info& data) {m_swaps.push(data);}
+     Swap_info top() {return m_swaps.top();}
+     void pop() {return m_swaps.pop();}
+     bool empty() {return m_swaps.empty();}
+};
+
+}  // namespace vrp
+}  // namespace pgrouting
+
+#endif  // INCLUDE_VRP_BOOK_KEEPING_H_
diff --git a/include/vrp/dnode.h b/include/vrp/dnode.h
new file mode 100644
index 0000000..208cf62
--- /dev/null
+++ b/include/vrp/dnode.h
@@ -0,0 +1,66 @@
+/*PGR-GNU*****************************************************************
+
+FILE: dnode.h
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+/*! @file dnode.h */
+
+#ifndef INCLUDE_PICKDELIVER_DNODE_H_
+#define INCLUDE_PICKDELIVER_DNODE_H_
+#pragma once
+
+#include <string>
+#include <iosfwd>
+#include "vrp/base_node.h"
+#include "vrp/pd_problem.h"
+
+namespace pgrouting {
+namespace vrp {
+
+/*! @class Dnode
+ * @brief The Dnode class defines a the basic operations when data is a matrix.
+ *
+ * currently needs the PD_problem
+ */
+class Dnode : public Base_node, public PD_problem {
+ public:
+     /*! @name constructors
+      * @{
+      */
+     Dnode() = default;
+     /*! @brief data constructor */
+     Dnode(size_t id, int64_t original_id, double, double);
+     /*!@}*/
+
+
+     using Base_node::operator==;
+
+     double distance(const Base_node *) const;
+
+     friend std::ostream& operator << (std::ostream &log, const Dnode &node);
+};
+
+}  // namespace vrp
+}  // namespace pgrouting
+
+#endif  // INCLUDE_PICKDELIVER_DNODE_H_
diff --git a/include/vrp/fleet.h b/include/vrp/fleet.h
new file mode 100644
index 0000000..589db31
--- /dev/null
+++ b/include/vrp/fleet.h
@@ -0,0 +1,141 @@
+/*PGR-GNU*****************************************************************
+
+FILE: fleet.h
+
+Copyright (c) 2017 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+/*! @file */
+
+#ifndef INCLUDE_VRP_FLEET_H_
+#define INCLUDE_VRP_FLEET_H_
+#pragma once
+
+#include <iosfwd>
+#include <vector>
+#include <memory>
+#include <utility>
+
+#include "cpp_common/identifiers.hpp"
+#include "vrp/pd_problem.h"
+#include "vrp/vehicle_pickDeliver.h"
+
+namespace pgrouting {
+namespace vrp {
+
+class Pgr_pickDeliver;
+class PD_Orders;
+
+class Fleet : public PD_problem {
+ public:
+     typedef std::vector<Vehicle_pickDeliver>::iterator iterator;
+     std::vector<Vehicle_pickDeliver> m_trucks;
+
+
+ public:
+     /*! @name constructor
+      * @{
+      */
+     Fleet() = default;
+
+     Fleet(const std::vector<Vehicle_t> &vehicles, double factor);
+
+     Fleet(const Fleet &fleet);
+     /*!@}*/
+
+     /* TODO move code to .cpp */
+     Fleet& operator=(const Fleet &fleet) {
+         m_trucks = fleet.m_trucks;
+         used = fleet.used;
+         un_used = fleet.un_used;
+         return *this;
+     }
+
+     void set_compatibles(const PD_Orders &orders);
+
+     bool is_fleet_ok() const;
+     bool is_order_ok(const Order &order) const;
+
+     Vehicle_pickDeliver get_truck();
+     void release_truck(size_t id);
+     Vehicle_pickDeliver get_truck(size_t order);
+     Vehicle_pickDeliver get_truck(const Order order);
+
+     /*! @name vector like functions
+      * @{
+      */
+     size_t size() const {return m_trucks.size();}
+     Vehicle_pickDeliver& operator[](size_t i);
+     iterator begin() {return m_trucks.begin();}
+     iterator end() {return m_trucks.end();}
+
+     /*!@}*/
+
+     friend std::ostream& operator << (std::ostream &log, const Fleet &v);
+
+ private:
+     Identifiers<size_t> used;
+     Identifiers<size_t> un_used;
+
+     /*! @brief build the fleet
+      *
+      * @param[in] vehicles of type Vehicle_t
+      */
+     bool build_fleet(
+             std::vector<Vehicle_t> vehicles,
+             double factor);
+
+     void add_vehicle(
+             Vehicle_t,
+             double factor,
+             std::unique_ptr<Base_node>,
+             const Vehicle_node&,
+             std::unique_ptr<Base_node>,
+             const Vehicle_node&);
+
+     template <typename T> std::unique_ptr<Base_node> create_b_start(
+             const Vehicle_t &vehicle,
+             size_t node_id) {
+         std::unique_ptr<Base_node> b_start(new T(
+                     node_id,
+                     vehicle.start_node_id,
+                     vehicle.start_x,
+                     vehicle.start_y));
+         return std::move(b_start);
+     }
+
+     template <typename T> std::unique_ptr<Base_node> create_b_end(
+             const Vehicle_t &vehicle,
+             size_t node_id) {
+         std::unique_ptr<Base_node> b_end(new T(
+                     node_id,
+                     vehicle.end_node_id,
+                     vehicle.end_x,
+                     vehicle.end_y));
+         return std::move(b_end);
+     }
+};
+
+
+}  //  namespace vrp
+}  //  namespace pgrouting
+
+#endif  // INCLUDE_VRP_FLEET_H_
diff --git a/include/vrp/initial_solution.h b/include/vrp/initial_solution.h
new file mode 100644
index 0000000..bcd5f43
--- /dev/null
+++ b/include/vrp/initial_solution.h
@@ -0,0 +1,71 @@
+/*PGR-GNU*****************************************************************
+
+FILE: initial_solution.h
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+/*! @file */
+
+#ifndef INCLUDE_VRP_INITIAL_SOLUTION_H_
+#define INCLUDE_VRP_INITIAL_SOLUTION_H_
+#pragma once
+
+#include <set>
+#include <deque>
+#include "vrp/pd_orders.h"
+#include "vrp/solution.h"
+#include "cpp_common/identifiers.hpp"
+
+namespace pgrouting {
+namespace vrp {
+
+
+class Pgr_pickDeliver;
+
+
+class Initial_solution : public Solution {
+ public:
+     Initial_solution(
+             int kind,
+             size_t);
+
+     void invariant() const;
+
+ private:
+     /*
+      * one truck per order
+      */
+     void one_truck_all_orders();
+
+     void do_while_foo(int kind);
+
+
+ private:
+     Identifiers<size_t> all_orders;
+     Identifiers<size_t> unassigned;
+     Identifiers<size_t> assigned;
+};
+
+}  //  namespace vrp
+}  //  namespace pgrouting
+
+#endif  // INCLUDE_VRP_INITIAL_SOLUTION_H_
diff --git a/include/vrp/node.h b/include/vrp/node.h
new file mode 100644
index 0000000..8521c47
--- /dev/null
+++ b/include/vrp/node.h
@@ -0,0 +1,77 @@
+/*PGR-GNU*****************************************************************
+
+FILE: node.h
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+/*! @file */
+
+#ifndef INCLUDE_VRP_NODE_H_
+#define INCLUDE_VRP_NODE_H_
+#pragma once
+
+#include <string>
+#include <iosfwd>
+#include "vrp/base_node.h"
+#include "cpp_common/xy_vertex.h"
+#include "vrp/pd_problem.h"
+
+namespace pgrouting {
+namespace vrp {
+
+/*! @class Node
+ * @brief The Node class defines a point in 2D space with an id.
+ *
+ * A Node is a point that defines a location in 2D space. It maintains
+ * a user @c id and an internal @c nid along with its @c x, @c y location.
+ * This is the base object that things like depots, customer locations, etc.
+ * are built upon.
+ *
+ */
+class Node : public Base_node {
+ public:
+     Node() = default;
+     Node(size_t id, int64_t original_id, double _x, double _y);
+
+
+     /** @name to be or not to be */
+     /*!@{*/
+     bool operator ==(const Node &rhs) const;
+     /*!@}*/
+
+     /** @brief Calculates distance between two Node */
+     double distance(const Base_node *) const;
+
+     friend std::ostream& operator << (std::ostream &log, const Node &node);
+
+ private:
+     double distance(const Node &) const;
+     void print(std::ostream& os) const;
+
+ private:
+     pgrouting::Point m_point;
+};
+
+}  // namespace vrp
+}  // namespace pgrouting
+
+#endif  // INCLUDE_VRP_NODE_H_
diff --git a/include/vrp/optimize.h b/include/vrp/optimize.h
new file mode 100644
index 0000000..bb101c2
--- /dev/null
+++ b/include/vrp/optimize.h
@@ -0,0 +1,88 @@
+/*PGR-GNU*****************************************************************
+
+FILE: optimize.cpp
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+/*! @file */
+
+#ifndef INCLUDE_VRP_OPTIMIZE_H_
+#define INCLUDE_VRP_OPTIMIZE_H_
+#pragma once
+
+#include "vrp/optimize.h"
+#include "vrp/book_keeping.h"
+
+namespace pgrouting {
+namespace vrp {
+
+class Solution;
+class Pgr_pickDeliver;
+
+
+class Optimize : public Solution {
+ public:
+     explicit Optimize(const Solution &solution);
+     Optimize(const Solution &solution, size_t times);
+
+     /* @brief decrease_truck
+      *
+      * Optimization by decreasing trucks
+      */
+     void decrease_truck();
+     void move_wait_time_based();
+     void move_duration_based();
+     void inter_swap(size_t times);
+     Solution best_solution;
+
+ private:
+     bool decrease_truck(size_t);
+     void sort_for_move();
+     void sort_by_duration();
+     void sort_by_size();
+     void sort_by_id();
+     void delete_empty_truck();
+
+     bool swap_worse(Vehicle_pickDeliver &from, Vehicle_pickDeliver &to);
+     bool move_reduce_cost(Vehicle_pickDeliver &from, Vehicle_pickDeliver &to);
+     bool inter_swap();
+
+     void move_order(
+             Order order,
+             Vehicle_pickDeliver &from_truck,
+             Vehicle_pickDeliver &to_truck);
+     bool swap_order();
+     bool swap_order(
+             Order from_order,
+             Vehicle_pickDeliver &from_truck,
+             Order to_order,
+             Vehicle_pickDeliver &to_truck);
+     void save_if_best();
+
+ private:
+     Swap_bk p_swaps;
+};
+
+}  //  namespace vrp
+}  //  namespace pgrouting
+
+#endif  // INCLUDE_VRP_OPTIMIZE_H_
diff --git a/include/vrp/order.h b/include/vrp/order.h
new file mode 100644
index 0000000..f196120
--- /dev/null
+++ b/include/vrp/order.h
@@ -0,0 +1,188 @@
+/*PGR-GNU*****************************************************************
+
+FILE: order.h
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+/*! @file */
+
+#ifndef INCLUDE_VRP_ORDER_H_
+#define INCLUDE_VRP_ORDER_H_
+#pragma once
+
+
+#include <iosfwd>
+#include "cpp_common/identifier.h"
+#include "cpp_common/identifiers.hpp"
+#include "vrp/vehicle_node.h"
+
+namespace pgrouting {
+namespace vrp {
+
+
+class Order : public Identifier {
+ public:
+     /*! @name Constructors
+      * @{
+      */
+     Order(size_t p_id, int64_t p_idx,
+             const Vehicle_node &p_pickup,
+             const Vehicle_node &p_deliver);
+
+     Order(const Order &) = default;
+     /*!@}*/
+
+
+     /*! @name Accessors
+      * @{
+      */
+
+
+     /*! The delivery node identifier
+      *
+      * It hold's the idx of the node
+      */
+     const Vehicle_node& delivery() const;
+
+     /*! The delivery node identifier
+      *
+      * It hold's the idx of the node
+      */
+     const Vehicle_node& pickup() const;
+
+     /*! Get a subset of the orders that can be placed after @b this order
+      
+      @dot
+      digraph G {
+      graph [rankdir=LR];
+      this [color=green];
+      this -> "this.J * J";
+      }
+      @enddot
+
+      * @param[in] J set of orders
+      * @result ithe set intersection of the @b J orders with the @b compatible_J orders of @b this order
+      */
+     Identifiers<size_t> subsetJ(const Identifiers<size_t> &J) const;
+     Identifiers<size_t> subsetI(const Identifiers<size_t> &I) const;
+     /*!@}*/
+
+
+     /*! @name Modifiers
+      * @{
+      */
+
+     void set_compatibles(const Order order, double speed);
+     /*!@}*/
+
+     /*! @name To be or not to be
+      * @{
+      */
+
+     /*! @brief validate a pickup/delivery order 
+      *
+      * An order is valid when:
+      *   - The pickup is well formed
+      *   - The delivery is well formed
+      *   - isCompatibleIJ to go to delivery after inmediatly visiting pickup
+      */
+     bool is_valid(double speed) const;
+
+
+     /*! @brief Can order @b I be placed before @b this order?
+      *
+
+      @dot
+      digraph G {
+      graph [rankdir=LR];
+      this [color=green];
+      "I" -> this;
+      }
+      @enddot
+
+      @param[in] I order
+      @param[in] speed to be used for evaluating the order
+
+      @returns true when order @b I can be placed before @b this order
+      */
+     bool isCompatibleIJ(const Order &I, double speed) const;
+     /*!@}*/
+
+
+
+     /*! @name Friends
+      * @{
+      */
+
+     friend std::ostream& operator << (std::ostream&, const Order &);
+     /*!@}*/
+
+ private:
+     /*! The pick up node identifier
+      *
+      * It hold's the idx of the node
+      */
+
+     Vehicle_node m_pickup;
+
+     /*! The delivery node identifier
+      *
+      * It hold's the idx of the node
+      */
+     Vehicle_node m_delivery;
+
+     /*! Stores all the orders that can be placed after this order
+      *
+
+      @dot
+      digraph G {
+      graph [rankdir=LR];
+      this [color=green];
+      this -> "{J}";
+      }
+      @enddot
+
+      @todo TODO
+      - compatibility changes based on the speed this is not taking that into account (here) 
+      - check where is it talking that into account
+      */
+     Identifiers<size_t> m_compatibleJ;
+
+     /*! Stores all the orders that can be placed before this order
+      *
+
+      @dot
+      digraph G {
+      graph [rankdir=LR];
+      this [color=green];
+      "{I}" -> this;
+      }
+      @enddot
+
+      */
+     Identifiers<size_t> m_compatibleI;
+};
+
+}  //  namespace vrp
+}  //  namespace pgrouting
+
+#endif  // INCLUDE_VRP_ORDER_H_
diff --git a/include/vrp/pd_orders.h b/include/vrp/pd_orders.h
new file mode 100644
index 0000000..2026d2a
--- /dev/null
+++ b/include/vrp/pd_orders.h
@@ -0,0 +1,125 @@
+/*PGR-GNU*****************************************************************
+
+FILE: pd_orders.h
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+/*! @file */
+
+#ifndef INCLUDE_VRP_PD_ORDERS_H_
+#define INCLUDE_VRP_PD_ORDERS_H_
+#pragma once
+
+#include <vector>
+#include <memory>
+#include <utility>
+
+#include "c_types/pickDeliver/pickDeliveryOrders_t.h"
+#include "cpp_common/identifiers.hpp"
+
+#include "vrp/base_node.h"
+#include "vrp/pd_problem.h"
+
+
+namespace pgrouting {
+namespace vrp {
+
+class Order;
+class Vehicle_node;
+
+class PD_Orders : public PD_problem {
+     typedef std::vector<Order> Orders;
+
+ public:
+     typedef Orders::iterator o_iterator;
+     typedef Orders::const_iterator o_const_iterator;
+
+ public:
+     /*! @name constructors
+      * @{ 
+      */
+     PD_Orders() = default;
+     PD_Orders(const PD_Orders&) = default;
+     explicit PD_Orders(const std::vector<PickDeliveryOrders_t>&);
+     /*!@}*/
+
+     void set_compatibles(double speed);
+     size_t find_best_J(Identifiers<size_t> &within_this_set) const;
+     size_t find_best_I(Identifiers<size_t> &within_this_set) const;
+
+
+     bool is_valid(double speed) const;
+
+     /*! @name std container functions
+      * functions with same "meaning" as an std container
+      * @{
+      */
+     Order& operator[](size_t o);
+     const Order& operator[](size_t o) const;
+     size_t size() const {return m_orders.size();}
+     o_iterator begin() {return m_orders.begin();}
+     o_iterator end() {return m_orders.end();}
+     o_const_iterator begin() const {return m_orders.begin();}
+     o_const_iterator end() const {return m_orders.end();}
+     /*!@}*/
+
+ private:
+     void build_orders(
+             const std::vector<PickDeliveryOrders_t> &pd_orders);
+
+     void add_order(
+             const PickDeliveryOrders_t &,
+             std::unique_ptr<Base_node>,
+             const Vehicle_node&,
+             std::unique_ptr<Base_node>,
+             const Vehicle_node&);
+
+     template <typename T> std::unique_ptr<Base_node> create_b_pick(
+             const PickDeliveryOrders_t &order,
+             size_t node_id) {
+         std::unique_ptr<Base_node> b_pick(new T(
+                     node_id,
+                     order.pick_node_id,
+                     order.pick_x,
+                     order.pick_y));
+         return std::move(b_pick);
+     }
+
+     template <typename T> std::unique_ptr<Base_node> create_b_deliver(
+             const PickDeliveryOrders_t &order,
+             size_t node_id) {
+         std::unique_ptr<Base_node> b_drop(new T(
+                     node_id,
+                     order.deliver_node_id,
+                     order.deliver_x,
+                     order.deliver_y));
+         return std::move(b_drop);
+     }
+
+ private:
+     Orders m_orders;
+};
+
+}  //  namespace vrp
+}  //  namespace pgrouting
+
+#endif  // INCLUDE_VRP_PD_ORDERS_H_
diff --git a/include/vrp/pd_problem.h b/include/vrp/pd_problem.h
new file mode 100644
index 0000000..3e95790
--- /dev/null
+++ b/include/vrp/pd_problem.h
@@ -0,0 +1,57 @@
+/*PGR-GNU*****************************************************************
+
+FILE: pd_problem.h
+
+Copyright (c) 2017 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+/*! @file */
+
+#ifndef INCLUDE_VRP_PD_PROBLEM_H_
+#define INCLUDE_VRP_PD_PROBLEM_H_
+#pragma once
+
+#include "cpp_common/pgr_messages.h"
+
+
+
+namespace pgrouting {
+namespace vrp {
+
+class Pgr_pickDeliver;
+
+class PD_problem {
+ public:
+    explicit PD_problem(Pgr_pickDeliver* p_problem);
+    PD_problem(const PD_problem &problem);
+    PD_problem() { }
+
+ public:
+     static Pgr_messages msg;
+
+ protected:
+     static Pgr_pickDeliver* problem;
+};
+
+}  //  namespace vrp
+}  //  namespace pgrouting
+
+#endif  // INCLUDE_VRP_PD_PROBLEM_H_
diff --git a/include/vrp/pgr_pickDeliver.h b/include/vrp/pgr_pickDeliver.h
new file mode 100644
index 0000000..a8c8379
--- /dev/null
+++ b/include/vrp/pgr_pickDeliver.h
@@ -0,0 +1,122 @@
+/*PGR-GNU*****************************************************************
+
+FILE: pgr_pickDeliver.h
+
+Copyright (c) 2017 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+/*! @file */
+
+#ifndef INCLUDE_VRP_PGR_PICKDELIVER_H_
+#define INCLUDE_VRP_PGR_PICKDELIVER_H_
+#pragma once
+
+
+
+#include <vector>
+#include <memory>
+#include <utility>
+
+#include "c_types/pickDeliver/general_vehicle_orders_t.h"
+#include "c_types/pickDeliver/vehicle_t.h"
+#include "c_types/pickDeliver/pickDeliveryOrders_t.h"
+#include "cpp_common/identifiers.hpp"
+#include "cpp_common/Dmatrix.h"
+#include "vrp/fleet.h"
+#include "vrp/pd_orders.h"
+#include "vrp/solution.h"
+
+namespace pgrouting {
+namespace vrp {
+
+class Order;
+class Vehicle_node;
+class Base_node;
+
+class Pgr_pickDeliver : public PD_problem {
+ public:
+    Pgr_pickDeliver(
+            const std::vector<PickDeliveryOrders_t> &pd_orders,
+            const std::vector<Vehicle_t> &vehicles,
+            double factor,
+            size_t max_cycles,
+            int initial);
+
+    Pgr_pickDeliver(
+            const std::vector<PickDeliveryOrders_t> &pd_orders,
+            const std::vector<Vehicle_t> &vehicles,
+            const pgrouting::tsp::Dmatrix &cost_matrix,
+            double factor,
+            size_t max_cycles,
+            int initial);
+
+    void solve();
+
+    std::vector<General_vehicle_orders_t>
+        get_postgres_result() const;
+
+
+    Solution optimize(const Solution init_solution);
+    size_t max_cycles() const {return m_max_cycles;}
+
+    inline size_t& node_id() {return m_node_id;}
+
+    void add_node(const Vehicle_node &node) {
+        m_nodes.push_back(node);
+    }
+
+    void add_base_node(std::unique_ptr<Base_node> node_ptr) {
+        m_base_nodes.push_back(std::move(node_ptr));
+    }
+
+#if 1
+    // TODO(vicky) delete this function
+    bool nodesOK() const;
+#endif
+    Fleet trucks() const {return m_trucks;}
+
+ private:
+    //! used define the initial solution algorithm to be used
+    int m_initial_id;
+
+    //! maximum cycles in the optimization
+    size_t m_max_cycles;
+
+    //! used to keep track of the next id the node gets in the eucledian version
+    size_t m_node_id;
+
+    std::vector<Vehicle_node> m_nodes;
+
+ public:
+    // TODO(vicky) make this private
+    std::vector<std::unique_ptr<Base_node>> m_base_nodes;
+    pgrouting::tsp::Dmatrix m_cost_matrix;
+
+ private:
+    PD_Orders m_orders;
+    Fleet m_trucks;
+    std::vector<Solution> solutions;
+};
+
+}  //  namespace vrp
+}  //  namespace pgrouting
+
+#endif  // INCLUDE_VRP_PGR_PICKDELIVER_H_
diff --git a/include/vrp/solution.h b/include/vrp/solution.h
new file mode 100644
index 0000000..b163bae
--- /dev/null
+++ b/include/vrp/solution.h
@@ -0,0 +1,119 @@
+/*PGR-GNU*****************************************************************
+
+FILE: solution.h
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+/*! @file */
+
+#ifndef INCLUDE_VRP_SOLUTION_H_
+#define INCLUDE_VRP_SOLUTION_H_
+#pragma once
+
+#include <deque>
+#include <tuple>
+#include <string>
+#include <vector>
+
+#include "vrp/vehicle_pickDeliver.h"
+#include "vrp/fleet.h"
+#include "vrp/pd_problem.h"
+
+namespace pgrouting {
+namespace vrp {
+
+
+class Solution : public PD_problem {
+    friend class Optimize;
+ protected:
+     double EPSILON;
+     std::deque<Vehicle_pickDeliver> fleet;
+
+     /* this solution belongs to this problem*/
+     Fleet trucks;
+
+ public:
+     std::vector<General_vehicle_orders_t>
+         get_postgres_result() const;
+
+
+     /* @brief constructor
+      *
+      */
+     Solution();
+
+
+#if 0
+     /* @brief move constructor */
+     Solution(Solution &&sol) = default;
+#endif
+
+     /* @brief copy constructor */
+     Solution(const Solution &sol) :
+         PD_problem(),
+         EPSILON(0.0001),
+         fleet(sol.fleet),
+         trucks(sol.trucks)
+    {};
+
+     /* @brief copy assignment */
+     Solution& operator = (const Solution& sol) {
+         EPSILON = 0.0001,
+         fleet = sol.fleet;
+         trucks = sol.trucks;
+         return *this;
+     };
+
+     void sort_by_id();
+
+     std::string cost_str() const;
+     std::string tau(const std::string &title = "Tau") const;
+     friend std::ostream& operator<<(
+             std::ostream &log,
+             const Solution &solution);
+     bool operator <(const Solution &s_rhs) const;
+
+     bool is_feasable() const;
+     double duration() const;
+     double wait_time() const;
+     double total_travel_time() const;
+     double total_service_time() const;
+     int twvTot() const;
+     int cvTot() const;
+     size_t fleet_size() const {return fleet.size();}
+
+     /*
+      * Cost in terms of a tuple
+      * <0> time window violations
+      * <1> capacity violations
+      * <2> fleet size TODO
+      * <3> wait_time
+      * <4> duration
+      */
+     Vehicle::Cost cost() const;
+};
+
+
+}  //  namespace vrp
+}  //  namespace pgrouting
+
+#endif  // INCLUDE_VRP_SOLUTION_H_
diff --git a/include/vrp/tw_node.h b/include/vrp/tw_node.h
new file mode 100644
index 0000000..21ca82b
--- /dev/null
+++ b/include/vrp/tw_node.h
@@ -0,0 +1,284 @@
+/*PGR-GNU*****************************************************************
+
+FILE: tw_node.h
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+/*! @file */
+
+#ifndef INCLUDE_VRP_TW_NODE_H_
+#define INCLUDE_VRP_TW_NODE_H_
+#pragma once
+
+#include <string>
+
+#include "c_types/pickDeliver/pickDeliveryOrders_t.h"
+#include "c_types/pickDeliver/vehicle_t.h"
+#include "cpp_common/pgr_assert.h"
+#include "cpp_common/identifier.h"
+
+#include "vrp/pd_problem.h"
+#include "vrp/node.h"
+
+namespace pgrouting {
+namespace vrp {
+
+
+/*! @class Tw_node
+ * @brief Extends the Node class to create a Node with time window attributes.
+ *
+ * A Time Window node is a Node with addition attributes and methods to
+ * to support Time Windows and to model a more complex Node need in many
+ * vehicle routing problems.
+ *
+ * Most application specific code will extend this class and define the specific
+ * values and requirements for @c type and @c streetid.
+ *
+ */
+class Tw_node : public Identifier, public PD_problem {
+ public:
+     typedef enum {
+         kStart = 0,  ///< starting site
+         kPickup,  ///< pickup site
+         kDelivery,  ///< delivery site
+         kDump,  ///< dump site, empties truck
+         kLoad,  ///< load site, fills the truck
+         kEnd        ///< ending site
+     } NodeType;
+
+
+     /** @name accessors */
+     ///@ {
+
+     /*! @brief Returns the opening time.*/
+     inline int64_t order() const {return m_order;}
+
+     /*! @brief Returns the opening time.*/
+     inline double opens() const {return m_opens;}
+
+     /*! @brief Returns the closing time. */
+     inline double closes() const {return m_closes;}
+
+     /*! @brief Returns the demand associated with this node. */
+     inline double demand() const {return m_demand;}
+     inline void demand(double value) {m_demand = value;}
+
+     /*! * @brief Returns the service time for this node. */
+     inline double service_time() const {return m_service_time;}
+
+     /*! * @brief Returns the type of this node. */
+     inline NodeType type() const {return m_type;}
+
+     /*! @brief Returns the length of time between the opening and closing. */
+     inline double window_length() const {return m_closes - m_opens;}
+
+     /*! @brief time = distance / speed. */
+     double travel_time_to(const Tw_node &other, double speed) const;
+
+     ///@}
+
+     /** @name kind of node
+      *
+      * A true value when;
+      *
+      *   - 0 < opens < closes
+      *   - the type is the requested type
+      *   - the demand are valid for the requested type
+      */
+
+     ///@ {
+
+
+     /*! @brief is_start
+      *
+      * To be a start node:
+      *   - type is kStart
+      *   - demand == 0
+      *
+      **/
+     bool is_start() const;
+
+
+     /*! @brief is_pickup
+      *
+      * To be a pickup node:
+      *   - type is kPickup
+      *   - demand > 0
+      *
+      **/
+     bool is_pickup() const;
+
+
+     /*! @brief is_delivery
+      *
+      * To be a delivery node:
+      *   - type is kDelivery
+      *   - demand < 0
+      *
+      **/
+     bool is_delivery() const;
+
+
+     /*! @brief is_dump
+      *
+      * To be a dump node:
+      *   - type is kDump
+      *   - demand <= 0
+      *
+      **/
+     bool is_dump() const;
+
+
+     /*! @brief is_Load
+      *
+      * To be a Load node:
+      *   - type is kLoad
+      *   - demand >= 0
+      *
+      **/
+     bool is_load() const;
+
+
+     /*! @brief is_end
+      *
+      * To be a End node:
+      *   - type is kEnd
+      *   - demand == 0
+      *
+      **/
+     bool is_end() const;
+
+
+     std::string type_str() const;
+
+     /*!@}*/
+
+
+     /*! * @brief Print the contents of a Twnode object. */
+     friend std::ostream& operator<< (std::ostream &log, const Tw_node &node);
+
+     /*! @name to be or not to be
+      * @{
+      */
+     bool operator ==(const Tw_node &rhs) const;
+
+
+
+     /*! @brief True when @b arrivalTime is before it @b opens */
+     inline bool is_early_arrival(double arrival_time) const {
+         return arrival_time < m_opens;
+     }
+
+     /*! @brief True when @b arrivalTime is after it @b closes */
+     inline bool is_late_arrival(double arrival_time) const {
+         return arrival_time > m_closes;
+     }
+     /*! @brief True when @b arrivalTime in the time window */
+     inline bool is_on_time(double arrival_time) const {
+         return !is_early_arrival(arrival_time)
+             && !is_late_arrival(arrival_time);
+     }
+     /*!@}*/
+
+
+     /** @name document functions */
+     ///@ {
+     /*!
+      * The actual arrival time at @b This node, given that:
+      * @b this node is visited directly after @b other node
+      *   and that the actual arrival time at @b other node was opens(other)
+      **/
+     double arrival_j_opens_i(const Tw_node &I, double speed) const;
+
+     /*!
+      * The actual arrival time at @b this node, given that:
+      * @b this node is visited directly after @b other node
+      * and that the actual arrival time at @b other node was closes(other)
+      **/
+     double arrival_j_closes_i(const Tw_node &I, double speed) const;
+
+
+     /*
+      * is possible to arrive to @b this after visiting @bother
+      *   - departing as early as possible from @b other it can arrives to @b this
+      */
+     bool is_compatible_IJ(const Tw_node &I, double speed) const;
+
+     /*
+      * is possible to arrive to @b this after visiting @bother
+      *   - departing as late as possible from @b other it can arrives to @b this
+      */
+     bool is_partially_compatible_IJ(const Tw_node &I, double speed) const;
+
+     /*
+      * is possible to arrive to @b this after visiting @bother
+      *   - departing as late as possible from @b other it can arrives to @b this
+      */
+     bool is_tight_compatible_IJ(const Tw_node &I, double speed) const;
+
+     /*
+      * is possible to arrive to @b this after visiting @b other
+      *   - departing as late as possible from @b other it can arrives to @b this
+      */
+     bool is_partially_waitTime_compatible_IJ(
+             const Tw_node &I,
+             double speed) const;
+
+     /*
+      * is compatible to arrive to @b this after visiting @b other
+      * - is fully compatible
+      * - does not have a waiting time when arriving as earliest as possible after
+      */
+     bool is_waitTime_compatible_IJ(const Tw_node &I, double speed) const;
+
+
+     ///@}
+
+
+
+     Tw_node() = default;
+     Tw_node(const Tw_node &) = default;
+     Tw_node(
+             size_t id,
+             PickDeliveryOrders_t data,
+             NodeType type);
+     Tw_node(
+             size_t id,
+             Vehicle_t data,
+             NodeType type);
+
+ protected:
+     bool is_valid() const;
+
+ private:
+     int64_t m_order;       ///< order to which it belongs
+     double m_opens;        ///< opening time of the node
+     double m_closes;       ///< closing time of the node
+     double m_service_time;  // /< time it takes to be served
+     double m_demand;       ///< The demand for the Node
+     NodeType m_type;       ///< The demand for the Node
+};
+
+}  //  namespace vrp
+}  //  namespace pgrouting
+
+#endif  // INCLUDE_VRP_TW_NODE_H_
diff --git a/include/vrp/vehicle.h b/include/vrp/vehicle.h
new file mode 100644
index 0000000..19095a6
--- /dev/null
+++ b/include/vrp/vehicle.h
@@ -0,0 +1,356 @@
+/*PGR-GNU*****************************************************************
+
+FILE: vehicle.h
+
+Copyright (c) 2016 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+/*! @file */
+
+#ifndef INCLUDE_VRP_VEHICLE_H_
+#define INCLUDE_VRP_VEHICLE_H_
+#pragma once
+
+#include <deque>
+#include <iostream>
+#include <algorithm>
+#include <string>
+#include <tuple>
+#include <utility>
+#include <vector>
+
+
+#include "cpp_common/identifier.h"
+#include "vrp/vehicle_node.h"
+#include "c_types/pickDeliver/general_vehicle_orders_t.h"
+
+namespace pgrouting {
+namespace vrp {
+
+
+/*! @class Vehicle
+ *  @brief Vehicle with time windows
+ *
+ * General functionality for a vehicle in a VRP problem
+ *
+ * Recommended use:
+ *
+ * ~~~~{.c}
+ *   Class my_vehicle : public vechicle
+ * ~~~~
+ *
+ * @note All members return @b true when the operation is successful
+ *
+ * A vehicle is a sequence of @ref Vehicle_node
+ * from @b starting site to @b ending site.
+ * has:
+ * @b capacity
+ * @b speed
+ * @b factor TODO(vicky)
+ *
+ * @sa @ref Vehicle_node
+ */
+
+class Vehicle : public Identifier, public PD_problem {
+ protected:
+     typedef size_t POS;
+     std::deque< Vehicle_node > m_path;
+
+ private:
+     double m_capacity;
+     double m_factor;
+     double m_speed;
+
+ public:
+     /*
+      * (twv, cv, fleet_size, wait_time, duration)
+      */
+     typedef std::tuple< int, int, size_t, double, double > Cost;
+     std::vector<General_vehicle_orders_t>
+           get_postgres_result(int vid) const;
+
+     Vehicle(const Vehicle &);
+     Vehicle(
+             size_t idx,
+             int64_t kind,
+             const Vehicle_node &starting_site,
+             const Vehicle_node &ending_site,
+             double p_capacity,
+             double p_speed,
+             double p_factor);
+
+
+     bool is_phony() const {return id() < 0;}
+     double speed() const;
+
+     /*! @name deque like functions
+
+       @returns True if the operation was performed
+       @warning Assertions are performed for out of range operations
+       @warning no feasability nor time window or capacity violations
+       checks are performed
+       @todo TODO more deque like functions here
+       */
+
+     /*! @brief Invariant
+      * The path must:
+      *   - have at least 2 nodes
+      *   - first node of the path must be Start node
+      *   - last node of the path must be End node
+      *
+      * path: S ..... E
+      */
+     void invariant() const;
+
+
+     /// @ {
+
+     /*! @brief Insert @b node at @b pos position.
+      *
+      * @param[in] pos The position that the node should be inserted.
+      * @param[in] node The node to insert.
+      *
+      */
+     void insert(POS pos, Vehicle_node node);
+
+
+     /*! @brief Insert @b node in best position of the @b position_limits.
+      *
+      * @param[in] position_limits
+      * @param[in] node The node to insert
+      *
+      * @returns position where it was inserted
+      */
+     POS insert(std::pair<POS, POS> position_limits, const Vehicle_node &node);
+
+
+
+
+
+     /*! @brief Evaluated: push_back a node to the path.
+      *
+      * ~~~~{.c}
+      * before: S <nodes> E
+      * after: S <nodes> n E
+      * ~~~~
+      *
+      * @param[in] node to be push_back.
+      */
+     void push_back(const Vehicle_node &node);
+
+     /*! @brief Evaluated: push_back a node to the path.
+      *
+      * ~~~~{.c}
+      * before: S <nodes> E
+      * after: S n <nodes> E
+      * ~~~~
+      *
+      * @param[in] node to be push_back.
+      */
+     void push_front(const Vehicle_node &node);
+
+
+     /*! @brief Evaluated: pop_back a node to the path.
+      *
+      * ~~~~{.c}
+      * before: S <nodes> n E
+      * after: S <nodes> E
+      * ~~~~
+      */
+     void pop_back();
+
+     /*! @brief Evaluated: pop_front a node to the path.
+      *
+      * ~~~~{.c}
+      * before: S n <nodes> E
+      * after: S <nodes> E
+      * ~~~~
+      */
+     void pop_front();
+
+     /*! @brief Erase node.id()
+      *
+      * @note start and ending nodes cannot be erased
+      *
+      * Numbers are positions
+      * before: S .... node.id() .... E
+      * after: S .... .... E
+      *
+      */
+     void erase(const Vehicle_node &node);
+
+
+
+     /*! @brief Erase node at `pos` from the path.
+      *
+      * @note start and ending nodes cannot be erased
+      *
+      * Numbers are positions
+      * before: S 1 2 3 4 5 6 pos 8 9 E
+      * after: S 1 2 3 4 5 6 8 9 E
+      *
+      * @param[in] pos to be erased.
+      */
+     void erase(POS pos);
+
+     /*! @brief return true when no nodes are in the truck
+      *
+      * ~~~~{.c}
+      * True: S E
+      * False: S <nodes> E
+      * ~~~~
+      */
+     bool empty() const;
+
+
+     /// @{
+     Cost cost() const;
+     bool cost_compare(const Cost&, const Cost&) const;
+
+     double duration() const {
+         return m_path.back().departure_time();
+     }
+     double total_wait_time() const {
+         return m_path.back().total_wait_time();
+     }
+     double total_travel_time() const {
+         return m_path.back().total_travel_time();
+     }
+     double total_service_time() const {
+         return m_path.back().total_service_time();
+     }
+     double free_time() const {
+         return total_wait_time() + (m_path[0].closes() - duration());
+     }
+     int twvTot() const {
+         return m_path.back().twvTot();
+     }
+     int cvTot() const {
+         return m_path.back().cvTot();
+     }
+     bool has_twv() const {
+         return twvTot() != 0;
+     }
+     bool has_cv() const {
+         return cvTot() != 0;
+     }
+
+     bool is_feasable() const {
+         return !(has_twv() ||  has_cv());
+     }
+
+     bool is_ok() const;
+
+     Vehicle_node start_site() const {
+         return m_path.front();
+     }
+     Vehicle_node end_site() const {
+         return m_path.back();
+     }
+#if 0
+     double speed() const {return m_speed;}
+#endif
+     double capacity() const {return m_capacity;}
+     /// @}
+
+
+
+     /*!
+      * @brief Swap two nodes in the path.
+      *
+      * ~~~~{.c}
+      * Before: S <nodesA> I <nodesB> J <nodesC> E
+      * After: S <nodesA> J <nodesB> I <nodesC> E
+      * ~~~~
+      *
+      * @param[in] i The position of the first node to swap.
+      * @param[in] j The position of the second node to swap.
+      */
+     void swap(POS i, POS j);
+
+
+     /*! @name Evaluation
+      *
+      *
+      *
+      * Path evaluation is done incrementally: from a given position to the
+      * end of the path, and intermediate values are cached on each node.
+      * So, for example, changing the path at position 100:
+      * the evaluation function should be called as
+      * @c evaluate(100, maxcapacity)
+      * and from that position to the end of the path will be evaluated.
+      * None of the "unaffected" positions get reevaluated
+      *
+      *
+      *
+      */
+
+     ///@ {
+
+     /*! @brief Evaluate: Evaluate the whole path from the start. */
+     void evaluate();
+
+     /*! @brief Evaluate: Evaluate a path from the given position.
+      *
+      * @param[in] from The starting position in the path for evaluation to
+      * the end of the path.
+      */
+     void evaluate(POS from);
+
+     ///@}
+
+     double deltaTime(const Vehicle_node &node, POS pos) const;
+     POS insert_less_travel_time(const Vehicle_node &node, POS after_pos = 0);
+
+
+
+     /*! @name accessors */
+     ///@ {
+
+     std::deque< Vehicle_node > path() const;
+
+     ///@}
+
+     /*! @name operators */
+     ///@ {
+
+
+     friend std::ostream& operator << (std::ostream &log, const Vehicle &v);
+
+     std::string tau() const;
+
+     friend bool operator<(const Vehicle &lhs, const Vehicle &rhs);
+
+     ///@}
+
+
+
+     std::pair<POS, POS> position_limits(const Vehicle_node node) const;
+
+ private:
+     POS getPosLowLimit(const Vehicle_node &node) const;
+     POS getPosHighLimit(const Vehicle_node &node) const;
+};
+
+}  // namespace vrp
+}  // namespace pgrouting
+
+#endif  // INCLUDE_VRP_VEHICLE_H_
diff --git a/include/vrp/vehicle_node.h b/include/vrp/vehicle_node.h
new file mode 100644
index 0000000..44e7bc3
--- /dev/null
+++ b/include/vrp/vehicle_node.h
@@ -0,0 +1,190 @@
+/*PGR-GNU*****************************************************************
+
+FILE: vehicle_node.h
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+/*! @file */
+
+#ifndef INCLUDE_VRP_VEHICLE_NODE_H_
+#define INCLUDE_VRP_VEHICLE_NODE_H_
+#pragma once
+
+
+#include <string>
+
+#include "vrp/tw_node.h"
+
+namespace pgrouting {
+namespace vrp {
+
+
+/*! \class Vehicle_node;
+ * \brief Extend Tw_node to evaluate the vehicle at node level
+ *
+ * This class extends Twnode by adding attributes to store information
+ * about the node in a path and provides the tools evaluate the node
+ * and to set and get these attribute values.
+ */
+class Vehicle_node: public Tw_node {
+ public:
+     /** @name log */
+     ///@ {
+
+     friend std::ostream& operator<<(
+             std::ostream &log, const Vehicle_node &node);
+
+     ///@}
+
+     /** @name Node evaluation accessors */
+     ///@ {
+
+     /*! \brief Truck's travel_time from previous node to this node. */
+     inline double travel_time() const {return m_travel_time;}
+
+     /*! \brief Truck's arrival_time to this node. */
+     inline double arrival_time() const {return m_arrival_time;}
+
+     /*! \brief Truck's wait_time at this node. */
+     inline double wait_time() const {return m_wait_time;}
+
+     /*! \brief Truck's departure_time from this node. */
+     inline double departure_time() const {return m_departure_time;}
+
+     /*! \brief delta_time = departure_time(this) - departure_time(previous) */
+     inline double delta_time() const {return m_delta_time;}
+
+     ///@}
+
+
+
+
+
+
+     /** @name Accumulated evaluation accessors */
+     ///@ {
+
+     /*! \brief Truck's total times it has violated time windows. */
+     inline int twvTot() const {return m_twvTot;}
+
+     /*! \brief Truck's total times it has violated cargo limits. */
+     inline int cvTot() const {return m_cvTot;}
+
+     /*! \brief Truck's total cargo after the node was served. */
+     inline double cargo() const {return m_cargo;}
+
+     /*! \brief Truck's travel duration up to this node. */
+     inline double total_time() const {return m_departure_time;}
+
+     /*! \brief _time spent moving between nodes by the truck */
+     inline double total_travel_time() const {return m_tot_travel_time;}
+
+     /*! \brief _time spent by the truck waiting for nodes to open */
+     inline double total_wait_time() const {return m_tot_wait_time;}
+
+     /*! \brief _time spent by the truck servicing the nodes */
+     inline double total_service_time() const {return m_tot_service_time;}
+
+     ///@}
+
+     /*! \brief True when \b arrival_time + \b delta_time generates TWV.*/
+     bool deltaGeneratesTWV(double delta_time) const;
+
+     /** @name State */
+     ///@ {
+
+     /*! \brief True when the total count for violations are 0 */
+     bool feasible() const {return m_twvTot == 0 &&  m_cvTot == 0;}
+
+     /*! \brief True doesn't have twc nor cv (including total counts) */
+     bool feasible(double cargoLimit) const {
+         return feasible() &&  !has_twv() &&  !has_cv(cargoLimit);
+     }
+
+     /*! \brief True when at this node does not violate time windows */
+     bool has_twv() const {
+         return is_late_arrival(m_arrival_time);
+     }
+
+     /*! \brief True when not violation
+      *
+      * Ending's or start's cargo should be 0
+      **/
+     bool has_cv(double cargoLimit) const {
+         return is_end() ||  is_start() ? m_cargo != 0
+             : m_cargo > cargoLimit ||  m_cargo < 0;
+     }
+     ///@}
+
+     /** @name mutators */
+     ///@ {
+     /*! @todo TODO evaluate with matrix also*/
+     void evaluate(double cargoLimit);
+     void evaluate(const Vehicle_node &pred, double cargoLimit, double speed);
+     ///@}
+
+     /** @name Document*/
+     ///@ {
+
+     /*! \brief returns the arrval time at \b this visited after \b other */
+     double arrival_i_arrives_j(
+             const Vehicle_node &other,
+             double speed) const;
+
+     ///@}
+
+
+
+     /*! \brief Construct from parameters */
+     Vehicle_node() : Tw_node() {}
+     Vehicle_node(const Vehicle_node &) = default;
+     explicit Vehicle_node(const Tw_node &node);
+
+ private:
+     /** @name Node evaluation members */
+     ///@ {
+
+     double m_travel_time;     ///< Travel time from last node
+     double m_arrival_time;    ///< Arrival time at this node
+     double m_wait_time;       ///< Wait time at this node when early arrival
+     double m_departure_time;  // /< Departure time from this node
+     double m_delta_time;      ///< Departure time - last nodes departure time
+
+     ///@}
+
+     /** @name Accumulated evaluation members */
+     ///@ {
+
+     double m_cargo;           ///< Accumulated cargo
+     int    m_twvTot;          ///< Total count of TWV
+     int    m_cvTot;           ///< Total count of CV
+     double m_tot_wait_time;     ///< Accumulated wait time
+     double m_tot_travel_time;   ///< Accumulated travel time
+     double m_tot_service_time;  // /< Accumulated service time
+
+     ///@}
+};
+
+}  //  namespace vrp
+}  //  namespace pgrouting
+
+#endif  // INCLUDE_VRP_VEHICLE_NODE_H_
diff --git a/include/vrp/vehicle_pickDeliver.h b/include/vrp/vehicle_pickDeliver.h
new file mode 100644
index 0000000..bf8a277
--- /dev/null
+++ b/include/vrp/vehicle_pickDeliver.h
@@ -0,0 +1,183 @@
+/*PGR-GNU*****************************************************************
+
+FILE: vehicle_pickDeliver.h
+
+Copyright (c) 2016 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+/*! @file */
+
+#ifndef INCLUDE_VRP_VEHICLE_PICKDELIVER_H_
+#define INCLUDE_VRP_VEHICLE_PICKDELIVER_H_
+#pragma once
+
+#include <set>
+#include "vrp/order.h"
+#include "vrp/pd_orders.h"
+#include "vrp/tw_node.h"
+#include "vrp/vehicle.h"
+#include "cpp_common/identifiers.hpp"
+
+namespace pgrouting {
+namespace vrp {
+
+
+class Initial_solution;
+class Optimize;
+
+class Vehicle_pickDeliver : public Vehicle {
+ protected:
+     double cost;
+     //! orders inserted in this vehicle
+     Identifiers<size_t> m_orders_in_vehicle;
+     PD_Orders m_orders;
+     //! orders that fit in the truck
+     Identifiers<size_t> m_feasable_orders;
+
+
+ public:
+     friend class Initial_solution;
+     friend class Optimize;
+
+     Vehicle_pickDeliver(
+             size_t id,
+             size_t kind,
+             const Vehicle_node &starting_site,
+             const Vehicle_node &ending_site,
+             double p_capacity,
+             double p_speed,
+             double factor);
+
+     Vehicle_pickDeliver(const Vehicle_pickDeliver &) = default;
+
+
+     void set_compatibles(const PD_Orders &orders);
+     bool is_order_feasable(const Order &order) const;
+     Identifiers<size_t> feasable_orders() const {return m_feasable_orders;}
+
+     const PD_Orders& orders() const {return m_orders;}
+     size_t orders_size() const {return m_orders_in_vehicle.size();}
+     Identifiers<size_t> orders_in_vehicle() const {return m_orders_in_vehicle;}
+
+     bool has_order(const Order &order) const;
+
+     /*! @brief puts an order at the end of the truck
+      *
+      * Precondition:
+      * !has_order(order)
+      *
+      * Postcondition:
+      * has_order(order)
+      * !has_cv();
+      *
+      * ~~~~{.c}
+      * Before: S <nodes> E
+      *   After: S <nodes> P D E
+      * ~~~~
+      *
+      * Can generate time window violation
+      * No capacity violation
+      */
+     void push_back(const Order &order);
+
+
+     /*! @brief Puts an order at the end front of the truck
+      *
+      * Precondition:
+      * !has_order(order)
+      *
+      * Postcondition:
+      * has_order(order)
+      * !has_cv();
+      *
+      * ~~~~{.c}
+      * Before: S <nodes> E
+      *   After: S P D <nodes> E
+      * ~~~~
+      *
+      * Can generate time window violation
+      * No capacity violation
+      */
+     void push_front(const Order &order);
+
+
+     /*! @brief Inserts an order
+      *
+      * Precondition:
+      * !has_order(order)
+      *
+      * Postcondition:
+      * has_order(order)
+      * !has_cv();
+      *
+      * ~~~~{.c}
+      * Before: S <nodes> E
+      *   After: S ....P .... D .... E
+      * ~~~~
+      *
+      * push_back is performed when
+      *   - pickup
+      *
+      * Can generate time window violation
+      * No capacity violation
+      */
+     void insert(const Order &order);
+
+#if 0
+     void insert_while_compatibleJ(
+             Identifiers<PD_Orders::OID> &unassigned,
+             Identifiers<PD_Orders::OID> &assigned);
+#endif
+     /* @brief erases the order from the vehicle
+      *
+      * Precondition:
+      * has_order(order)
+      *
+      * Precondition:
+      * !has_order(order)
+      */
+     void erase(const Order &order);
+
+     /* @brief 
+      */
+     Order get_first_order() const;
+     Order get_worse_order(Identifiers<size_t> of_this_subset) const;
+
+     void do_while_feasable(
+             int kind,
+             Identifiers<size_t> &unassigned,
+             Identifiers<size_t> &assigned);
+
+
+     /*!
+      * The order that is picked last is removed
+      *
+      * \returns id of the removed order
+      */
+
+     size_t pop_back();
+     size_t pop_front();
+};
+
+}  //  namespace vrp
+}  //  namespace pgrouting
+
+#endif  // INCLUDE_VRP_VEHICLE_PICKDELIVER_H_
diff --git a/include/yen/pgr_ksp.hpp b/include/yen/pgr_ksp.hpp
new file mode 100644
index 0000000..30939e5
--- /dev/null
+++ b/include/yen/pgr_ksp.hpp
@@ -0,0 +1,263 @@
+/*PGR-GNU*****************************************************************
+File: pgr_ksp.hpp
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef INCLUDE_YEN_PGR_KSP_HPP_
+#define INCLUDE_YEN_PGR_KSP_HPP_
+#pragma once
+
+#include "dijkstra/pgr_dijkstra.hpp"
+
+#include <sstream>
+#include <deque>
+#include <vector>
+#include <set>
+#include <limits>
+
+#include "cpp_common/pgr_assert.h"
+#include "cpp_common/basePath_SSEC.hpp"
+
+template < class G >
+class Pgr_ksp {
+ public:
+     std::deque<Path> Yen(
+             G &graph,
+             int64_t source,
+             int64_t target,
+             int K,
+             bool heap_paths);
+     void clear();
+
+ private:
+     class compPaths {
+      public:
+          bool operator()(const Path &p1, const Path &p2) const {
+              /*
+               * less cost is best
+               */
+              if (p1.tot_cost() > p2.tot_cost())
+                  return  false;
+              if (p1.tot_cost() < p2.tot_cost())
+                return  true;
+
+              pgassert(p1.tot_cost() == p2.tot_cost());
+
+              // paths costs are equal now check by length
+              if (p1.size() > p2.size())
+                  return false;
+              if (p1.size() < p2.size())
+                  return true;
+
+              pgassert(p1.tot_cost() == p2.tot_cost());
+              pgassert(p1.size() == p2.size());
+
+              // paths weights & lengths are equal now check by node ID
+              unsigned int i;
+              for (i = 0; i < p1.size(); i++) {
+                  if (p1[i].node >  p2[i].node)
+                      return false;
+                  if (p1[i].node <  p2[i].node)
+                      return true;
+              }
+
+              pgassert(p1.tot_cost() == p2.tot_cost());
+              pgassert(p1.size() == p2.size());
+#ifdef NDEBUG
+              for (i = 0; i < p1.size(); i++) {
+                  pgassert(p1[i].node == p2[i].node);
+              }
+#endif
+
+              // we got here and everything is equal
+              return false;
+          }
+     };
+
+     //! the actual algorithm
+     void executeYen(G &graph, int top_k);
+
+     /** @name Auxiliary function for yen's algorithm */
+     ///@{
+
+     //! Performs the first Dijkstra of the algorithm
+     void getFirstSolution(G &graph);
+     //! Performs the next cycle of the algorithm
+     void doNextCycle(G &graph);
+     //! stores in subPath the first i elements of path
+     void removeVertices(G &graph, const Path &path);
+     ///@}
+
+ private:
+     /** @name members */
+     ///@{
+     typedef typename G::V V;
+     V v_source;  //!< source descriptor
+     V v_target;  //!< target descriptor
+     int64_t m_start;  //!< source id
+     int64_t m_end;   //!< target id
+
+     Path curr_result_path;  //!< storage for the current result
+
+     typedef std::set<Path, compPaths> pSet;
+     pSet m_ResultSet;  //!< ordered set of shortest paths
+     pSet m_Heap;  //!< the heap
+
+     std::ostringstream log;
+};
+
+
+template < class G >
+void Pgr_ksp< G >::clear() {
+        m_Heap.clear();
+}
+
+template < class G >
+void Pgr_ksp< G >::getFirstSolution(G &graph) {
+     Path path;
+
+     Pgr_dijkstra< G > fn_dijkstra;
+     path = fn_dijkstra.dijkstra(graph, m_start, m_end);
+
+     if (path.empty()) return;
+     curr_result_path = path;
+     m_ResultSet.insert(curr_result_path);
+}
+
+template < class G>
+std::deque<Path>
+Pgr_ksp< G >::Yen(G &graph,
+  int64_t  start_vertex, int64_t end_vertex, int K, bool heap_paths) {
+    /*
+     * No path: already in destination
+     */
+    if ((start_vertex == end_vertex) || (K == 0)) {
+        return std::deque<Path>();
+    }
+    /*
+     * no path: disconnected vertices
+     */
+    if (!graph.has_vertex(start_vertex)
+                || !graph.has_vertex(end_vertex)) {
+        return std::deque<Path>();
+    }
+    m_ResultSet.clear();
+    m_Heap.clear();
+
+    v_source = graph.get_V(start_vertex);
+    v_target = graph.get_V(end_vertex);
+    m_start = start_vertex;
+    m_end = end_vertex;
+    executeYen(graph, K);
+
+    while (!m_ResultSet.empty()) {
+        m_Heap.insert(*m_ResultSet.begin());
+        m_ResultSet.erase(m_ResultSet.begin());
+    }
+    std::deque<Path> l_ResultList(m_Heap.begin(), m_Heap.end());
+
+    std::stable_sort(l_ResultList.begin(), l_ResultList.end(),
+            [](const Path &left, const Path &right) -> bool {
+            for (size_t i = 0;
+                i < (std::min)(left.size(), right.size());
+                ++i) {
+            if (left[i].node < right[i].node) return true;
+            if (left[i].node > right[i].node) return false;
+            }
+            return false;
+            });
+
+    std::stable_sort(l_ResultList.begin(), l_ResultList.end(),
+            [](const Path &left, const Path &right) {
+            return left.size() < right.size();});
+
+    if (!heap_paths && l_ResultList.size() > (size_t) K)
+        l_ResultList.resize(K);
+
+    return l_ResultList;
+}
+
+
+template < class G >
+void Pgr_ksp< G >::removeVertices(G &graph, const Path &subpath) {
+    for (const auto &e : subpath)
+        graph.disconnect_vertex(e.node);
+}
+
+template < class G >
+void Pgr_ksp< G >::doNextCycle(G &graph) {
+    int64_t spurNodeId;
+
+
+    for (unsigned int i = 0; i < curr_result_path.size(); ++i) {
+        spurNodeId = curr_result_path[i].node;
+
+        auto rootPath = curr_result_path.getSubpath(i);
+
+        for (const auto &path : m_ResultSet) {
+            if (path.isEqual(rootPath)) {
+                if (path.size() > i + 1) {
+                    graph.disconnect_edge(path[i].node,     // from
+                            path[i + 1].node);  // to
+                }
+            }
+        }
+
+        removeVertices(graph, rootPath);
+
+        Pgr_dijkstra< G > fn_dijkstra;
+        auto spurPath = fn_dijkstra.dijkstra(graph, spurNodeId, m_end);
+
+        if (spurPath.size() > 0) {
+            rootPath.appendPath(spurPath);
+            m_Heap.insert(rootPath);
+        }
+
+        graph.restore_graph();
+    }
+}
+
+template < class G >
+void Pgr_ksp< G >::executeYen(G &graph, int K) {
+    clear();
+    getFirstSolution(graph);
+
+    if (m_ResultSet.size() == 0) return;  // no path found
+
+    while (m_ResultSet.size() < (unsigned int) K) {
+        doNextCycle(graph);
+        if (m_Heap.empty()) break;
+        curr_result_path = *m_Heap.begin();
+        m_ResultSet.insert(curr_result_path);
+        m_Heap.erase(m_Heap.begin());
+        /*
+         * without the next line withpointsKSP hungs with:
+         *  c++ 4.6
+         *  Debug mode
+         */
+#ifndef NDEBUG
+        log << "end of while heap size" << m_Heap.size();
+#endif
+    }
+}
+
+#endif  // INCLUDE_YEN_PGR_KSP_HPP_
diff --git a/locale/.gitignore b/locale/.gitignore
new file mode 100644
index 0000000..cd1f2c9
--- /dev/null
+++ b/locale/.gitignore
@@ -0,0 +1 @@
+*.mo
diff --git a/locale/README.md b/locale/README.md
new file mode 100644
index 0000000..d3bf688
--- /dev/null
+++ b/locale/README.md
@@ -0,0 +1,133 @@
+
+
+# Locale
+
+Currently the setup is for  `es` `ru` `ja` `it` `de` `fr` 
+
+## Building the LOCALE:
+
+Use this when the English documentation changed.
+
+```
+cd build
+#rm -rf *   #BE VERY CAREFULL
+cmake -D LOCALE=ON ..
+make locale
+cd ..
+sphinx-intl update -d locale
+```
+
+review
+```
+for f in locale/pot/*; do echo $f; grep $f .tx/config; done
+for f in `grep '\.pot' .tx/config | sed 's/^.*pot\/\(.*\)$/\1/' | grep '\.pot'` ; do  echo $f; ls locale/pot/* | grep $f  ; done 
+```
+
+commit changes and push
+
+
+## MANAGERS: Interaction with transifex:
+
+### Push the resource to transifex
+
+Push a New or changed resource:
+
+* New resource
+
+Add the resource to the `.tx/config` located at the root of the repository
+(Use as example the other resources)
+
+```
+vim ../.tx/config
+```
+
+* Push the new resource
+```
+tx push --source -r pgrouting.pgr_createVerticesTable
+
+```
+Note: Do not put the file extension
+
+NOTE: INFORM: A documentation frezze to let translators translate
+
+### Pull the resources from transifex
+
+Be patient takes time (I like the `-d` flag just to know what is being downloaded)
+
+* this pulls all the translations
+```
+tx -d pull -f
+```
+
+* this pulls the Spanish translations
+```
+tx -d pull -f -l es
+```
+
+
+
+## TRANSLATORS
+
+For this example the translator is translating `pgr_createVerticesTable` to `Spanish`
+
+* Step 1: Build a local documentation
+
+```
+cd build
+rm -rf *
+cmake -D HTML=ON -D ES=ON ..
+make html-es
+```
+
+* Step 2: Navigate to the page you are translating:
+
+On the Browser go to:
+```
+file:///path/to/build/doc/_build/html/es/pgr_createVerticesTable.html
+```
+
+* Step 3: Pull the translation & build the documentation & refresh browser
+
+```
+tx pull -r pgrouting.pgr_createVerticesTable -l es
+make html-es
+```
+`Refresh browser`
+
+## Building the documentation:
+
+NOTE: in any case English is always build
+
+* Building all languages
+
+```
+cmake -D HTML=ON -D WITH_ALL_LANG=ON ..
+make doc
+```
+
+* Building a a particular language
+
+This example shows Spanish:
+
+```
+cmake -D HTML=ON -D ES=ON ..
+make html
+```
+
+* Building a particular language
+
+This example shows Spanish:
+
+```
+make -D HTML=ON -D SINGLEHTML=OM -D ES=ON ..
+make html
+make singlehtml
+# OR to build both:
+make doc
+```
+
+# References
+
+* https://pypi.python.org/pypi/sphinx-intl
+* https://docs.transifex.com/client/introduction
+* http://www.sphinx-doc.org/en/stable/intl.html
diff --git a/locale/de/LC_MESSAGES/KSP-category.po b/locale/de/LC_MESSAGES/KSP-category.po
new file mode 100644
index 0000000..9232738
--- /dev/null
+++ b/locale/de/LC_MESSAGES/KSP-category.po
@@ -0,0 +1,36 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/KSP-category.rst:14
+msgid "KSP Category"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:18
+msgid ":ref:`pgr_KSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:19
+msgid ":ref:`pgr_withPointsKSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:26
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:27
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:28
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/TSP-family.po b/locale/de/LC_MESSAGES/TSP-family.po
new file mode 100644
index 0000000..0f03653
--- /dev/null
+++ b/locale/de/LC_MESSAGES/TSP-family.po
@@ -0,0 +1,556 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/TSP-family.rst:13
+msgid "Traveling Sales Person - Family of functions"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:17
+msgid ":ref:`pgr_TSP` - When input is given as matrix cell information."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:18
+msgid ":ref:`pgr_eucledianTSP` - When input are coordinates."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:30
+msgid "General Information"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:33
+msgid "Origin"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:36
+msgid ""
+"The traveling sales person problem was studied in the 18th century by "
+"mathematicians"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:36
+msgid "**Sir William Rowam Hamilton** and **Thomas Penyngton  Kirkman**."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:38
+msgid ""
+"A discussion about the work of Hamilton & Kirkman can be found in the book "
+"**Graph Theory (Biggs et  al. 1976)**."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:41
+msgid "ISBN-13: 978-0198539162"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:42
+msgid "ISBN-10: 0198539169"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:44
+msgid ""
+"It is believed that the general form of the TSP have been first studied by "
+"Kalr Menger in Vienna and Harvard. The problem  was  later promoted by "
+"Hassler, Whitney  &  Merrill at Princeton. A detailed  description about the"
+" connection between Menger & Whitney, and the development of the TSP can be "
+"found in  `On the history of combinatorial optimization (till 1960) "
+"<http://www.cwi.nl/~lex/files/histco.ps>`_"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:50
+msgid "Problem Definition"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:52
+msgid ""
+"Given a collection of cities and travel cost between each pair, find the "
+"cheapest way for visiting all of the cities and returning to the starting "
+"point."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:56
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:58
+msgid "The travel costs are symmetric:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:60
+msgid ""
+"traveling costs from city A to city B are just as much as traveling from B "
+"to A."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:62
+msgid "This problem is an NP-hard optimization problem."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:64
+msgid "To calculate the number of different tours through :math:`n` cities:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:66
+msgid "Given a starting city,"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:67
+msgid "There are :math:`n-1` choices for the second city,"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:68
+msgid "And  :math:`n-2` choices for the third city, etc."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:69
+msgid ""
+"Multiplying these together we get :math:`(n-1)!  = (n-1) (n-2) . .  1`."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:70
+msgid ""
+"Now since our travel costs do not depend on the direction we take around the"
+" tour:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:72
+msgid "this number by 2"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:73
+msgid ":math:`(n-1)!/2`."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:76
+msgid "TSP & Simulated Annealing"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:78
+msgid ""
+"The simulated annealing algorithm was originally inspired from the process "
+"of annealing in metal work."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:81
+msgid ""
+"Annealing involves heating and cooling a material to alter its physical "
+"properties due to the changes in its internal structure. As the metal cools "
+"its new structure becomes fixed, consequently causing the metal to retain "
+"its newly obtained properties. [C001]_"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:88
+msgid "Pseudocode"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:89
+msgid ""
+"Given an initial solution, the simulated annealing process, will start with "
+"a high temperature and gradually cool down until the desired temperature is "
+"reached."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:92
+msgid ""
+"For each temperature, a neighbouring new solution **snew** is calculated. "
+"The higher the temperature the higher the probability of accepting the new "
+"solution as a possible bester solution."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:95
+msgid ""
+"Once the desired temperature is reached, the best solution found is returned"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:118
+msgid "pgRouting Implementation"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:120
+msgid ""
+"pgRouting's implementation adds some extra parameters to allow some exit "
+"controls within the simulated annealing process."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:123
+msgid "To cool down faster to the next temperature:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:125
+msgid ""
+"max_changes_per_temperature: limits the number of changes in the solution "
+"per temperature"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:126
+msgid ""
+"max_consecutive_non_changes: limits the number of consecutive non changes "
+"per temperature"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:128
+msgid ""
+"This is done by doing some book keeping on the times **solution = snew;** is"
+" executed."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:130
+msgid ""
+"max_changes_per_temperature: Increases by one when **solution** changes"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:131
+msgid ""
+"max_consecutive_non_changes: Reset to 0 when **solution** changes, and "
+"increased each **try**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:133
+msgid ""
+"Additionally to stop the algorithm at a higher temperature than the desired "
+"one:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:135
+msgid ""
+"max_processing_time: limits the time the simulated annealing is performed."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:136
+msgid ""
+"book keeping is done to see if there was a change in **solution** on the "
+"last temperature"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:138
+msgid ""
+"Note that, if no change was found in the first "
+"**max_consecutive_non_changes** tries, then the simulated annealing will "
+"stop."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:168
+msgid "Choosing parameters"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:170
+msgid ""
+"There is no exact rule on how the parameters have to be chose, it will "
+"depend on the special characteristics of the problem."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:173
+msgid ""
+"Your computational time is crucial, then put your time limit to "
+"**max_processing_time**."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:174
+msgid ""
+"Make the **tries_per_temperture** depending on the number of cities, for "
+"example:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:176
+msgid "Useful to estimate the time it takes to do one cycle: use `1`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:178
+msgid "this will help to set a reasonable **max_processing_time**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:180
+msgid ":math:`n * (n-1)`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:181
+msgid ":math:`500 * n`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:183
+msgid ""
+"For a faster decreasing the temperature set **cooling_factor** to a smaller "
+"number, and set to a higher number for a slower decrease."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:186
+msgid ""
+"When for the same given data the same results are needed, set **randomize** "
+"to `false`."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:188
+msgid "When estimating how long it takes to do one cycle: use `false`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:191
+msgid ""
+"A recommendation is to play with the values and see what fits to the "
+"particular data."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:196
+msgid "Description Of the Control parameters"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:198
+msgid "The control parameters are optional, and have a default value."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201 ../../build/doc/TSP-family.rst:230
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201 ../../build/doc/TSP-family.rst:230
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203 ../../build/doc/TSP-family.rst:204
+#: ../../build/doc/TSP-family.rst:233
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203 ../../build/doc/TSP-family.rst:204
+msgid "`0`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203
+msgid "The greedy part of the implementation will use this identifier."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:204
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:204
+msgid "Last visiting vertex before returning to start_vid."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205
+msgid "**max_processing_time**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205 ../../build/doc/TSP-family.rst:209
+#: ../../build/doc/TSP-family.rst:210 ../../build/doc/TSP-family.rst:211
+#: ../../build/doc/TSP-family.rst:234 ../../build/doc/TSP-family.rst:237
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205
+msgid "`+infinity`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205
+msgid "Stop the annealing processing when the value is reached."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206
+msgid "**tries_per_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206 ../../build/doc/TSP-family.rst:207
+#: ../../build/doc/TSP-family.rst:208 ../../build/doc/TSP-family.rst:232
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206
+msgid "`500`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206
+msgid "Maximum number of times a neighbor(s) is searched in each temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:207
+msgid "**max_changes_per_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:207
+msgid "`60`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:207
+msgid "Maximum number of times the solution is changed in each temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:208
+msgid "**max_consecutive_non_changes**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:208 ../../build/doc/TSP-family.rst:209
+msgid "`100`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:208
+msgid ""
+"Maximum number of consecutive times the solution is not changed in each "
+"temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:209
+msgid "**initial_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:209
+msgid "Starting temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:210
+msgid "**final_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:210
+msgid "`0.1`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:210
+msgid "Ending temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:211
+msgid "**cooling_factor**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:211
+msgid "`0.9`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:211
+msgid ""
+"Value between between 0 and 1 (not including) used to calculate the next "
+"temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "**randomize**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "`true`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "Choose the random seed"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:214
+msgid "true: Use current time as seed"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:215
+msgid ""
+"false: Use `1` as seed. Using this value will get the same results with the "
+"same data in each execution."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:225
+msgid "Description of the return columns"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:227
+msgid "Returns set of ``(seq, node, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:230
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:232
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:232
+msgid "Row sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:233
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:233
+msgid "Identifier of the node/coordinate/point."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:234
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:235
+msgid ""
+"Cost to traverse from the current ``node`` ito the next ``node`` in the path"
+" sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:235
+msgid "``0`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:237
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:238
+msgid "Aggregate cost from the ``node`` at ``seq = 1`` to the current node."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:238
+msgid "``0`` for the first row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:245
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:248
+msgid "References"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:249
+msgid ""
+"`Simulated annaeling algorithm for beginners <http://www.theprojectspot.com"
+"/tutorial-post/simulated-annealing-algorithm-for-beginners/6>`_"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:251
+msgid "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:252
+msgid "http://en.wikipedia.org/wiki/Simulated_annealing"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:255
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:256
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:257
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/aStar-family.po b/locale/de/LC_MESSAGES/aStar-family.po
new file mode 100644
index 0000000..3364e02
--- /dev/null
+++ b/locale/de/LC_MESSAGES/aStar-family.po
@@ -0,0 +1,205 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/aStar-family.rst:13
+msgid "aStar - Family of functions"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:15
+msgid ""
+"The A* (pronounced \"A Star\") algorithm is based on Dijkstra's algorithm "
+"with a heuristic that allow it to solve most shortest path problems by "
+"evaluation only a sub-set of the overall graph."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:19
+msgid ":ref:`pgr_aStar` - A* algorithm for the shortest path."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:20
+msgid ":ref:`pgr_aStarCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:21
+msgid ""
+":ref:`pgr_aStarCostMatrix` - Get the cost matrix of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:34
+msgid "The problem definition (Advanced documentation)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:36
+msgid ""
+"The A* (pronounced \"A Star\") algorithm is based on Dijkstra's algorithm "
+"with a heuristic, that is an estimation of the remaining cost from the "
+"vertex to the goal, that allows to solve most shortest path problems by "
+"evaluation only a sub-set of the overall graph. Running time: :math:`O((E + "
+"V) * \\log V)`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:46
+msgid "Heuristic"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:48
+msgid "Currently the heuristic functions available are:"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:50
+msgid "0: :math:`h(v) = 0` (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:51
+msgid "1: :math:`h(v) = abs(max(\\Delta x, \\Delta y))`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:52
+msgid "2: :math:`h(v) = abs(min(\\Delta x, \\Delta y))`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:53
+msgid "3: :math:`h(v) = \\Delta x * \\Delta x + \\Delta y * \\Delta y`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:54
+msgid "4: :math:`h(v) = sqrt(\\Delta x * \\Delta x + \\Delta y * \\Delta y)`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:55
+msgid "5: :math:`h(v) = abs(\\Delta x) + abs(\\Delta y)`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:57
+msgid "where :math:`\\Delta x = x_1 - x_0` and :math:`\\Delta y = y_1 - y_0`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:63 ../../build/doc/aStar-family.rst:76
+#: ../../build/doc/aStar-family.rst:89
+msgid "Factor"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:66
+msgid "Analysis 1"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:67
+msgid ""
+"Working with cost/reverse_cost as length in degrees, x/y in lat/lon: Factor "
+"= 1   (no need to change units)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:71
+msgid "Analysis 2"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:72
+msgid ""
+"Working with cost/reverse_cost as length in meters, x/y in lat/lon: Factor ="
+"  would depend on the location of the points:"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:76 ../../build/doc/aStar-family.rst:89
+msgid "latitude"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:76 ../../build/doc/aStar-family.rst:89
+msgid "conversion"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:78 ../../build/doc/aStar-family.rst:91
+msgid "45"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:78
+msgid "1 longitude degree is  78846.81 m"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:78
+msgid "78846"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:79 ../../build/doc/aStar-family.rst:92
+msgid "0"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:79
+msgid "1 longitude degree is 111319.46 m"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:79
+msgid "111319"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:83
+msgid "Analysis 3"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:84
+msgid ""
+"Working with cost/reverse_cost as time in seconds, x/y in lat/lon: Factor: "
+"would depend on the location of the points and on the average speed say "
+"25m/s is the speed."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:91
+msgid "1 longitude degree is (78846.81m)/(25m/s)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:91
+msgid "3153 s"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:92
+msgid "1 longitude degree is (111319.46 m)/(25m/s)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:92
+msgid "4452 s"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:98
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:100
+msgid ":ref:`pgr_aStar`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:101
+msgid ":ref:`pgr_aStarCost`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:102
+msgid ":ref:`pgr_aStarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:103
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:104
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:107
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:108
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:109
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/allpairs-family.po b/locale/de/LC_MESSAGES/allpairs-family.po
new file mode 100644
index 0000000..9749ed9
--- /dev/null
+++ b/locale/de/LC_MESSAGES/allpairs-family.po
@@ -0,0 +1,996 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/allpairs-family.rst:14
+msgid "All Pairs - Family of Functions"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:16
+msgid "The following functions work an all vertices pair combinations"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:33
+msgid "Performance"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:40
+msgid "The following tests:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:36
+msgid "non server computer"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:37
+msgid "with AMD 64 CPU"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:38
+msgid "4G memory"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:39
+msgid "trusty"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:40
+msgid "posgreSQL version 9.3"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:43
+msgid "Data"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:45
+msgid "The following data was used"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:53
+msgid "Data processing was done with osm2pgrouting-alpha"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:66
+msgid "Results"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:68
+msgid "One"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:70
+msgid ""
+"This test is not with a bounding box The density of the passed graph is "
+"extremely low. For each <SIZE> 30 tests were executed to get the average The"
+" tested query is:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:83
+#: ../../build/doc/allpairs-family.rst:140
+msgid "The results of this tests are presented as:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:85
+msgid "is the number of edges given as input."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:86
+#: ../../build/doc/allpairs-family.rst:143
+msgid "is the total number of records in the query."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:87
+#: ../../build/doc/allpairs-family.rst:144
+msgid "is the density of the data :math:`\\dfrac{E}{V \\times (V-1)}`."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:88
+#: ../../build/doc/allpairs-family.rst:145
+msgid "is the number of records returned by the queries."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:89
+#: ../../build/doc/allpairs-family.rst:146
+msgid "is the average execution time in seconds of pgr_floydWarshall."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:90
+#: ../../build/doc/allpairs-family.rst:147
+msgid "is the average execution time in seconds of pgr_johnson."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "SIZE"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "EDGES"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "DENSITY"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "OUT ROWS"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "Floyd-Warshall"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "Johnson"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+#: ../../build/doc/allpairs-family.rst:96
+msgid "500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "0.18E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "1346"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "0.14"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "0.13"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+#: ../../build/doc/allpairs-family.rst:97
+msgid "1000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "0.36E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "2655"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "0.23"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "0.18"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+#: ../../build/doc/allpairs-family.rst:98
+msgid "1500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+msgid "0.55E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+msgid "4110"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+#: ../../build/doc/allpairs-family.rst:99
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.37"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+msgid "0.34"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+#: ../../build/doc/allpairs-family.rst:99
+msgid "2000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+msgid "0.73E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+msgid "5676"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+msgid "0.56"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+#: ../../build/doc/allpairs-family.rst:100
+msgid "2500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "0.89E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "7177"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "0.84"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "0.51"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+#: ../../build/doc/allpairs-family.rst:101
+msgid "3000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "1.07E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "8778"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "1.28"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "0.68"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+#: ../../build/doc/allpairs-family.rst:102
+msgid "3500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "1.24E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "10526"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "2.08"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "0.95"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+#: ../../build/doc/allpairs-family.rst:103
+msgid "4000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "1.41E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "12484"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "3.16"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "1.24"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+#: ../../build/doc/allpairs-family.rst:104
+msgid "4500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "1.58E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "14354"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "4.49"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "1.47"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+#: ../../build/doc/allpairs-family.rst:105
+msgid "5000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "1.76E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "16503"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "6.05"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "1.78"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+#: ../../build/doc/allpairs-family.rst:106
+msgid "5500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "1.93E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "18623"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "7.53"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "2.03"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+#: ../../build/doc/allpairs-family.rst:107
+msgid "6000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "2.11E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "20710"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "8.47"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "2.37"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+#: ../../build/doc/allpairs-family.rst:108
+msgid "6500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "2.28E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "22752"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "9.99"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "2.68"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+#: ../../build/doc/allpairs-family.rst:109
+msgid "7000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "2.46E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "24687"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "11.82"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "3.12"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+#: ../../build/doc/allpairs-family.rst:110
+msgid "7500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "2.64E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "26861"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "13.94"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "3.60"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+#: ../../build/doc/allpairs-family.rst:111
+msgid "8000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "2.83E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "29050"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "15.61"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "4.09"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+#: ../../build/doc/allpairs-family.rst:112
+msgid "8500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "3.01E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "31693"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "17.43"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "4.63"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+#: ../../build/doc/allpairs-family.rst:113
+msgid "9000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "3.17E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "33879"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "19.19"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "5.34"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+#: ../../build/doc/allpairs-family.rst:114
+msgid "9500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "3.35E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "36287"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "20.77"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "6.24"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+#: ../../build/doc/allpairs-family.rst:115
+msgid "10000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "3.52E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "38491"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "23.26"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "6.51"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:119
+msgid "Two"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:121
+msgid ""
+"This test is with a bounding box The density of the passed graph higher than"
+" of the Test One. For each <SIZE> 30 tests were executed to get the average "
+"The tested edge query is:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:133
+msgid "The tested queries"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:142
+msgid "is the size of the bounding box."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "0.001"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "44"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "0.0608"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "1197"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+#: ../../build/doc/allpairs-family.rst:153
+#: ../../build/doc/allpairs-family.rst:154
+#: ../../build/doc/allpairs-family.rst:154
+msgid "0.10"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "0.002"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "99"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "0.0251"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "4330"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "0.003"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "223"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "0.0122"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "18849"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+#: ../../build/doc/allpairs-family.rst:155
+msgid "0.12"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "0.004"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "358"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "0.0085"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "71834"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+#: ../../build/doc/allpairs-family.rst:156
+msgid "0.16"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.005"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "470"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.0070"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "116290"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.22"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.19"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.006"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "639"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.0055"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "207030"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.27"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.007"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "843"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.0043"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "346930"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.64"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.38"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.008"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "996"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.0037"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "469936"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.90"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.49"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "0.009"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "1146"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "0.0032"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "613135"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "1.26"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "0.62"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "0.010"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "1360"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "0.0027"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "849304"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "1.87"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "0.82"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "0.011"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "1573"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "0.0024"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "1147101"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "2.65"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "1.04"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "0.012"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "1789"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "0.0021"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "1483629"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "3.72"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "1.35"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "0.013"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "1975"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "0.0019"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "1846897"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "4.86"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "1.68"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "0.014"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "2281"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "0.0017"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "2438298"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "7.08"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "2.28"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "0.015"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "2588"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "0.0015"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "3156007"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "10.28"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "2.80"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "0.016"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "2958"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "0.0013"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "4090618"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "14.67"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "3.76"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "0.017"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "3247"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "0.0012"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "4868919"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "18.12"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "4.48"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:174
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:176
+msgid ":ref:`pgr_johnson`"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:177
+msgid ":ref:`pgr_floydWarshall`"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:178
+msgid ""
+"`Boost floyd-Warshall "
+"<http://www.boost.org/libs/graph/doc/floyd_warshall_shortest.html>`_ "
+"algorithm"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:181
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:182
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:183
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/bdAstar-family.po b/locale/de/LC_MESSAGES/bdAstar-family.po
new file mode 100644
index 0000000..b2bd16b
--- /dev/null
+++ b/locale/de/LC_MESSAGES/bdAstar-family.po
@@ -0,0 +1,394 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Bidirectional A* - Family of functions"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid ":ref:`pgr_bdAstar` - Bidirectional A* algorithm for obtaining paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:18
+msgid ""
+":ref:`pgr_bdAstarCost` - Bidirectional A* algorithm to calculate the cost of"
+" the paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid ""
+":ref:`pgr_bdAstarCostMatrix` - Bidirectional A* algorithm to calculate a "
+"cost matrix of paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:35
+msgid ""
+"Based on A* algorithm, the bidirectional search finds a shortest path from a"
+" starting vertex (``start_vid``) to an ending vertex (``end_vid``). It runs "
+"two simultaneous searches: one forward from the ``start_vid``, and one "
+"backward from the ``end_vid``, stopping when the two meet in the middle. "
+"This implementation can be used with a directed graph and an undirected "
+"graph."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:42
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:44
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:46
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:47
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:49
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:51
+msgid "The `agg_cost` the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:53
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path:"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:55
+msgid "The `agg_cost` the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:57
+msgid "Running time (worse case scenario): :math:`O((E + V) * \\log V)`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:58
+msgid ""
+"For large graphs where there is a path bewtween the starting vertex and "
+"ending vertex:"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:60
+msgid "It is expected to terminate faster than pgr_astar"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:63
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:75
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:75
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:78 ../../build/doc/bdAstar-family.rst:80
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:72
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:75
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:77
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:77
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:77
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:78
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:78
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:79
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:79 ../../build/doc/bdAstar-family.rst:81
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:79
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:80
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:80
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:81
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:81
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:82
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:82
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:82
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:84
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:85
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:87
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:87
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:87
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:89
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:90
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:91
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:92
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:93
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:94
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:96
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:96 ../../build/doc/bdAstar-family.rst:97
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:96
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:97
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:97
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:103
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:106
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:107
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:108
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/bdDijkstra-family.po b/locale/de/LC_MESSAGES/bdDijkstra-family.po
new file mode 100644
index 0000000..67de3fa
--- /dev/null
+++ b/locale/de/LC_MESSAGES/bdDijkstra-family.po
@@ -0,0 +1,112 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/bdDijkstra-family.rst:13
+msgid "Bidirectional Dijkstra - Family of functions"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:17
+msgid ""
+":ref:`pgr_bdDijkstra` - Bidirectional Dijkstra algorithm for the shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:18
+msgid ""
+":ref:`pgr_bdDijkstraCost` - Bidirectional Dijkstra to calculate the cost of "
+"the shortest paths"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:19
+msgid ""
+":ref:`pgr_bdDijkstraCostMatrix` - Bidirectional Dijkstra algorithm  to "
+"create a matrix of costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:35
+msgid ""
+"Based on Dijkstra's algorithm, the bidirectional search finds a shortest "
+"path a starting vertex (``start_vid``) to an ending vertex (``end_vid``). It"
+" runs two simultaneous searches: one forward from the source, and one "
+"backward from the target, stopping when the two meet in the middle. This "
+"implementation can be used with a directed graph and an undirected graph."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:42
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:44
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:46
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:47
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:49
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:51
+msgid "The `agg_cost` the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:53
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path:"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:55
+msgid "The `agg_cost` the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:57
+msgid "Running time (worse case scenario): :math:`O((V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:58
+msgid ""
+"For large graphs where there is a path bewtween the starting vertex and "
+"ending vertex:"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:60
+msgid "It is expected to terminate faster than pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:63
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:66
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:67
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:68
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/components-family.po b/locale/de/LC_MESSAGES/components-family.po
new file mode 100644
index 0000000..dbca49a
--- /dev/null
+++ b/locale/de/LC_MESSAGES/components-family.po
@@ -0,0 +1,750 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/components-family.rst:13
+msgid "Components - Family of functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:22
+msgid ""
+":ref:`pgr_connectedComponents` - Return the connected components of an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:23
+msgid ""
+":ref:`pgr_strongComponents` - Return the strongly connected components of a "
+"directed graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid ""
+":ref:`pgr_biconnectedComponents` - Return the biconnected components of an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:25
+msgid ""
+":ref:`pgr_articulationPoints` - Return the articulation points of an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid ":ref:`pgr_bridges` - Return the bridges of an undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:42
+msgid "The problem definition"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:45
+msgid "Connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:46
+msgid ""
+"A connected component of an undirected graph is a set of vertices that are "
+"all reachable from each other."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:49
+#: ../../build/doc/components-family.rst:183
+#: ../../build/doc/components-family.rst:252
+#: ../../build/doc/components-family.rst:312
+msgid "**Notice**: This problem defines on an undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:51
+#: ../../build/doc/components-family.rst:117
+#: ../../build/doc/components-family.rst:185
+#: ../../build/doc/components-family.rst:254
+#: ../../build/doc/components-family.rst:314
+msgid "Given the following query:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:54
+msgid "pgr_connectedComponentsV(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:56
+#: ../../build/doc/components-family.rst:122
+#: ../../build/doc/components-family.rst:190
+#: ../../build/doc/components-family.rst:259
+#: ../../build/doc/components-family.rst:319
+msgid ""
+"where  :math:`sql = \\{(id_i, source_i, target_i, cost_i, "
+"reverse\\_cost_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:58
+#: ../../build/doc/components-family.rst:124
+#: ../../build/doc/components-family.rst:192
+#: ../../build/doc/components-family.rst:261
+#: ../../build/doc/components-family.rst:321
+msgid "and"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:60
+#: ../../build/doc/components-family.rst:126
+#: ../../build/doc/components-family.rst:194
+#: ../../build/doc/components-family.rst:263
+#: ../../build/doc/components-family.rst:323
+msgid ":math:`source = \\bigcup source_i`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:61
+#: ../../build/doc/components-family.rst:127
+#: ../../build/doc/components-family.rst:195
+#: ../../build/doc/components-family.rst:264
+#: ../../build/doc/components-family.rst:324
+msgid ":math:`target = \\bigcup target_i`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:63
+#: ../../build/doc/components-family.rst:129
+#: ../../build/doc/components-family.rst:197
+#: ../../build/doc/components-family.rst:266
+#: ../../build/doc/components-family.rst:326
+msgid "The graphs are defined as follows:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:65
+#: ../../build/doc/components-family.rst:199
+#: ../../build/doc/components-family.rst:268
+#: ../../build/doc/components-family.rst:328
+msgid "The weighted undirected graph, :math:`G(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:67
+#: ../../build/doc/components-family.rst:133
+#: ../../build/doc/components-family.rst:201
+#: ../../build/doc/components-family.rst:270
+#: ../../build/doc/components-family.rst:330
+msgid "the set of vertices  :math:`V`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:69
+#: ../../build/doc/components-family.rst:203
+#: ../../build/doc/components-family.rst:272
+#: ../../build/doc/components-family.rst:332
+msgid ":math:`V = source \\cup target`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:72
+#: ../../build/doc/components-family.rst:137
+#: ../../build/doc/components-family.rst:206
+#: ../../build/doc/components-family.rst:275
+#: ../../build/doc/components-family.rst:335
+msgid "the set of edges :math:`E`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:74
+#: ../../build/doc/components-family.rst:208
+#: ../../build/doc/components-family.rst:277
+#: ../../build/doc/components-family.rst:337
+msgid ""
+":math:`E = \\begin{cases} &\\{(source_i, target_i, cost_i) \\text{ when } "
+"cost >=0 \\} \\\\ \\cup &\\{(target_i, source_i, cost_i) \\text{ when } cost"
+" >=0 \\}  &\\quad  \\text{ if } reverse\\_cost = \\varnothing \\\\ \\\\ "
+"&\\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} \\\\ \\cup "
+"&\\{(target_i, source_i, cost_i) \\text{ when } cost >=0 \\} \\\\ \\cup "
+"&\\{(target_i, source_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i "
+">=0)\\} \\\\ \\cup &\\{(source_i, target_i, reverse\\_cost_i) \\text{ when }"
+" reverse\\_cost_i >=0)\\} &\\quad \\text{ if } reverse\\_cost \\neq "
+"\\varnothing \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:77
+#: ../../build/doc/components-family.rst:142
+#: ../../build/doc/components-family.rst:211
+#: ../../build/doc/components-family.rst:280
+#: ../../build/doc/components-family.rst:340
+msgid "Given:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:79
+#: ../../build/doc/components-family.rst:144
+#: ../../build/doc/components-family.rst:213
+#: ../../build/doc/components-family.rst:282
+#: ../../build/doc/components-family.rst:342
+msgid ":math:`G(V,E)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:81
+#: ../../build/doc/components-family.rst:146
+#: ../../build/doc/components-family.rst:215
+#: ../../build/doc/components-family.rst:284
+#: ../../build/doc/components-family.rst:344
+msgid "Then:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:89
+#: ../../build/doc/components-family.rst:154
+#: ../../build/doc/components-family.rst:223
+msgid ":math:`\\boldsymbol{\\pi} = \\{(component_i, n\\_seq_i, node_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:98
+#: ../../build/doc/components-family.rst:163
+#: ../../build/doc/components-family.rst:232
+#: ../../build/doc/components-family.rst:298
+#: ../../build/doc/components-family.rst:358
+msgid "where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:92
+msgid ":math:`component_i = \\min \\{node_j | node_j \\in component_i\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:93
+#: ../../build/doc/components-family.rst:158
+#: ../../build/doc/components-family.rst:227
+msgid ""
+":math:`n\\_seq_i` is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:94
+#: ../../build/doc/components-family.rst:159
+msgid ":math:`node_i \\in component_i`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:95
+#: ../../build/doc/components-family.rst:160
+#: ../../build/doc/components-family.rst:229
+#: ../../build/doc/components-family.rst:296
+#: ../../build/doc/components-family.rst:356
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:97
+#: ../../build/doc/components-family.rst:162
+#: ../../build/doc/components-family.rst:231
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:98
+#: ../../build/doc/components-family.rst:163
+#: ../../build/doc/components-family.rst:298
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:103
+#: ../../build/doc/components-family.rst:170
+#: ../../build/doc/components-family.rst:239
+#: ../../build/doc/components-family.rst:301
+#: ../../build/doc/components-family.rst:361
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:101
+msgid "The first component is composed of nodes ``0``, ``1`` and ``4``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:102
+msgid "The second component is composed of node ``3``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:103
+msgid "The third component is composed of nodes ``2`` and ``5``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:111
+msgid "Strongly connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:112
+msgid ""
+"A strongly connected component of a directed graph is a set of vertices that"
+" are all reachable from each other."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:115
+msgid "**Notice**: This problem defines on a directed graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:120
+msgid "pgr_strongComponentsV(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:131
+msgid "The weighted directed graph, :math:`G_d(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:135
+msgid ":math:`V = source \\cup target \\cup {start_{vid}} \\cup  {end_{vid}}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:139
+msgid ""
+":math:`E = \\begin{cases} &\\{(source_i, target_i, cost_i) \\text{ when } "
+"cost >=0 \\} &\\quad  \\text{ if } reverse\\_cost = \\varnothing \\\\ \\\\ "
+"&\\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} \\\\ \\cup "
+"&\\{(target_i, source_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i "
+">=0)\\} &\\quad \\text{ if } reverse\\_cost \\neq \\varnothing \\\\ "
+"\\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:157
+#: ../../build/doc/components-family.rst:226
+msgid ":math:`component_i = \\min {node_j | node_j \\in component_i}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:166
+msgid "The first component is composed of nodes ``1``, ``2`` and ``4``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:167
+msgid "The second component is composed of node ``0``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:168
+msgid "The third component is composed of node ``3``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:169
+msgid "The fourth component is composed of node ``5``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:170
+msgid "The fifth component is composed of node ``6``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:177
+msgid "Biconnected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:178
+msgid ""
+"The biconnected components of an undirected graph are the maximal subsets of"
+" vertices such that the removal of a vertex from particular component will "
+"not disconnect the component. Unlike connected components, vertices may "
+"belong to multiple biconnected components. Vertices can be present in "
+"multiple biconnected components, but each edge can only be contained in a "
+"single biconnected component. So, the output only has edge version."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:188
+msgid "pgr_biconnectedComponents(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:228
+msgid ":math:`edge_i \\in component_i`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:232
+#: ../../build/doc/components-family.rst:358
+msgid "`edge` ascending"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:235
+msgid ""
+"The first component is composed of edges ``1 - 2``, ``0 - 1`` and ``0 - 2``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:236
+msgid ""
+"The second component is composed of edges ``2 - 4``, ``2 - 3`` and ``3 - "
+"4``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:237
+msgid "The third component is composed of edge ``5 - 6``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:238
+msgid "The fourth component is composed of edge ``6 - 7``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:239
+msgid ""
+"The fifth component is composed of edges ``8 - 9``, ``9 - 10`` and ``8 - "
+"10``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:246
+msgid "Articulation Points"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:247
+msgid ""
+"Those vertices that belong to more than one biconnected component are called"
+" articulation points or, equivalently, cut vertices. Articulation points are"
+" vertices whose removal would increase the number of connected components in"
+" the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:257
+msgid "pgr_articulationPoints(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:292
+msgid ":math:`\\boldsymbol{\\pi} = \\{node_i\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:295
+msgid ":math:`node_i` is an articulation point."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:301
+msgid "Articulation points are nodes ``2`` and ``6``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:308
+msgid "Bridges"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:309
+msgid ""
+"A bridge is an edge of an undirected graph whose deletion increases its "
+"number of connected components."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:317
+msgid "pgr_bridges(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:352
+msgid ":math:`\\boldsymbol{\\pi} = \\{edge_i\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:355
+msgid ":math:`edge_i` is an edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:361
+msgid "Bridges are edges ``5 <--> 6`` and ``6 <--> 7``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:370
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:372
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:421
+#: ../../build/doc/components-family.rst:440
+#: ../../build/doc/components-family.rst:458
+#: ../../build/doc/components-family.rst:474
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:405
+#: ../../build/doc/components-family.rst:421
+#: ../../build/doc/components-family.rst:440
+#: ../../build/doc/components-family.rst:458
+#: ../../build/doc/components-family.rst:474
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:405
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:405
+#: ../../build/doc/components-family.rst:421
+#: ../../build/doc/components-family.rst:440
+#: ../../build/doc/components-family.rst:458
+#: ../../build/doc/components-family.rst:474
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:377
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:377
+#: ../../build/doc/components-family.rst:378
+#: ../../build/doc/components-family.rst:379
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:377
+#: ../../build/doc/components-family.rst:445
+#: ../../build/doc/components-family.rst:477
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:378
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:378
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:379
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:379
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:380
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:380
+#: ../../build/doc/components-family.rst:384
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:380
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:382
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:384
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:384
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:384
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:386
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:390
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:392
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:393
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:402
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:405
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:407
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:407
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:407
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:416
+msgid ""
+"Description of the return values for connected components and strongly "
+"connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:418
+msgid "Returns set of ``(seq, component, n_seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:423
+#: ../../build/doc/components-family.rst:442
+#: ../../build/doc/components-family.rst:460
+#: ../../build/doc/components-family.rst:476
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:423
+#: ../../build/doc/components-family.rst:425
+#: ../../build/doc/components-family.rst:442
+#: ../../build/doc/components-family.rst:444
+#: ../../build/doc/components-family.rst:460
+#: ../../build/doc/components-family.rst:476
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:423
+#: ../../build/doc/components-family.rst:442
+#: ../../build/doc/components-family.rst:460
+#: ../../build/doc/components-family.rst:476
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:424
+#: ../../build/doc/components-family.rst:443
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:424
+#: ../../build/doc/components-family.rst:426
+#: ../../build/doc/components-family.rst:443
+#: ../../build/doc/components-family.rst:445
+#: ../../build/doc/components-family.rst:461
+#: ../../build/doc/components-family.rst:477
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:424
+msgid ""
+"Component identifier. It is equal to the minimum node identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:425
+#: ../../build/doc/components-family.rst:444
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:425
+#: ../../build/doc/components-family.rst:444
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:426
+#: ../../build/doc/components-family.rst:461
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:426
+#: ../../build/doc/components-family.rst:461
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:435
+msgid ""
+"Description of the return values for biconnected components, connected "
+"components (edge version) and strongly connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:437
+msgid "Returns set of ``(seq, component, n_seq, edge)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:443
+msgid ""
+"Component identifier. It is equal to the minimum edge identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:445
+#: ../../build/doc/components-family.rst:477
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:453
+msgid "Description of the return values for articulation points"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:455
+#: ../../build/doc/components-family.rst:471
+msgid "Returns set of ``(seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:469
+msgid "Description of the return values for bridges"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:483
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:486
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:487
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:488
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/contraction-family.po b/locale/de/LC_MESSAGES/contraction-family.po
new file mode 100644
index 0000000..182343c
--- /dev/null
+++ b/locale/de/LC_MESSAGES/contraction-family.po
@@ -0,0 +1,745 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/contraction-family.rst:14
+msgid "Contraction - Family of functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:21
+msgid ":ref:`pgr_contractGraph`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:29
+msgid "Introduction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:31
+msgid ""
+"In big graphs, like the road graphs, or electric networks, graph contraction"
+" can be used to speed up some graph algorithms. Contraction reduces the size"
+" of the graph by removing some of the vertices and edges and, for example, "
+"might add edges that represent a sequence of original edges decreasing the "
+"total time and space used in graph algorithms."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:33
+msgid ""
+"This implementation gives a flexible framework for adding contraction "
+"algorithms in the future, currently, it supports two algorithms:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:35
+#: ../../build/doc/contraction-family.rst:46
+msgid "Dead end contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:36
+#: ../../build/doc/contraction-family.rst:166
+msgid "Linear contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:38
+msgid "Allowing the user to:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:40
+msgid "Forbid contraction on a set of nodes."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:41
+msgid ""
+"Decide the order of the contraction algorithms and set the maximum number of"
+" times they are to be executed."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:43
+msgid "UNDER DISCUSSION:  Forbid contraction on a set of edges"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:47
+msgid "In the algorithm, dead end contraction is represented by 1."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:50
+msgid "Dead end nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:52
+msgid ""
+"The definition of a dead end node is different for a directed and an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:54
+msgid "In case of a undirected graph, a node is considered a dead end node if"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:56
+msgid "The number of adjacent vertices is 1."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:58
+msgid "In case of an directed graph, a node is considered a dead end node if"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:60
+msgid "There are no outgoing edges and has at least one incoming edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:61
+msgid "There is one incoming and one outgoing edge with the same identifier."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:64
+#: ../../build/doc/contraction-family.rst:178
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:65
+msgid "The green node ``B`` represents a dead end node"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:66
+msgid "The node ``A`` is the only node connecting to ``B``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:67
+#: ../../build/doc/contraction-family.rst:181
+msgid ""
+"Node ``A`` is part of the rest of the graph and has an unlimited number of "
+"incoming and outgoing edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:68
+#: ../../build/doc/contraction-family.rst:183
+msgid "Directed graph"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:86
+msgid "Operation: Dead End Contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:88
+msgid ""
+"The dead end contraction will stop until there are no more dead end nodes. "
+"For example from the following graph:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:91
+#: ../../build/doc/contraction-family.rst:208
+msgid ""
+"Node ``A`` is connected to the rest of the graph by an unlimited number of "
+"edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:92
+msgid ""
+"Node ``B`` is connected to the rest of the graph with one incoming edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:93
+msgid "Node ``B`` is the only node connecting to ``C``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:94
+msgid "The green node ``C`` represents a `Dead End` node"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:113
+msgid ""
+"After contracting ``C``, node ``B`` is now a `Dead End` node and is "
+"contracted:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:129
+msgid "Node ``B`` gets contracted"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:143
+msgid "Nodes ``B`` and ``C`` belong to node ``A``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:148
+msgid "Not Dead End nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:150
+msgid "In this graph ``B`` is not a `dead end` node."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:167
+msgid "In the algorithm, linear contraction is represented by 2."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:170
+msgid "Linear nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:172
+msgid "A node is considered a linear node if satisfies the following:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:174
+msgid "The number of adjacent vertices are 2."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:175
+msgid "Should have at least one incoming edge and one outgoing edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:179
+msgid "The green node ``B`` represents a linear node"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:180
+msgid "The nodes ``A`` and ``C`` are the only nodes connecting to ``B``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:182
+msgid ""
+"Node ``C`` is part of the rest of the graph and has an unlimited number of "
+"incoming and outgoing edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:203
+msgid "Operation: Linear Contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:205
+msgid ""
+"The linear contraction will stop until there are no more linear nodes. For "
+"example from the following graph:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:209
+msgid ""
+"Node ``B`` is connected to the rest of the graph with one incoming edge and "
+"one outgoing edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:210
+msgid ""
+"Node ``C`` is connected to the rest of the graph with one incoming edge and "
+"one outgoing edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:211
+msgid ""
+"Node ``D`` is connected to the rest of the graph by an unlimited number of "
+"edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:212
+msgid "The green nodes ``B`` and ``C`` represents `Linear` nodes."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:234
+msgid ""
+"After contracting ``B``, a new edge gets inserted between ``A`` and ``C`` "
+"which is represented by red color."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:254
+msgid "Node ``C`` is `linear node` and gets contracted."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:272
+msgid ""
+"Nodes ``B`` and ``C`` belong to edge connecting ``A`` and ``D`` which is "
+"represented by red color."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:275
+msgid "Not Linear nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:277
+msgid "In this graph ``B`` is not a `linear` node."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:298
+msgid "The cycle"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:300
+msgid ""
+"Contracting a graph, can be done with more than one operation. The order of "
+"the operations affect the resulting contracted graph, after applying one "
+"operation, the set of vertices that can be contracted by another operation "
+"changes."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:302
+msgid ""
+"This implementation, cycles ``max_cycles`` times through "
+"``operations_order`` ."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:315
+msgid "Contracting Sample Data"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:317
+msgid ""
+"In this section, building and using a contracted graph will be shown by "
+"example."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:319
+msgid "The :doc:`sampledata` for an undirected graph is used"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:320
+msgid "a dead end operation first followed by a linear operation."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:322
+msgid "The original graph:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:326
+msgid "After doing a dead end contraction operation:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:330
+msgid "Doing a linear contraction operation to the graph above"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:335
+msgid ""
+"There are five cases, in this documentation, which arise when calculating "
+"the shortest path between a given source and target. In this examples, "
+"``pgr_dijkstra`` is used."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:338
+msgid "**Case 1**: Both source and target belong to the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:339
+msgid ""
+"**Case 2**: Source belongs to a contracted graph, while target belongs to a "
+"edge subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:340
+msgid ""
+"**Case 3**: Source belongs to a vertex subgraph, while target belongs to an "
+"edge subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:341
+msgid ""
+"**Case 4**: Source belongs to a contracted graph, while target belongs to an"
+" vertex subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:342
+msgid ""
+"**Case 5**: The path contains a new edge added by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:345
+msgid "Construction of the graph in the database"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:348
+msgid "Original Data"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:349
+msgid ""
+"The following query shows the original data involved in the contraction "
+"operation."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:356
+msgid "Contraction Results"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:361
+msgid ""
+"The above results do not represent the contracted graph. They represent the "
+"changes done to the graph after applying the contraction algorithm. We can "
+"see that vertices like 6 and 11 do not appear in the contraction results "
+"because they were not affected by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:364
+msgid "step 1"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:365
+msgid ""
+"Adding extra columns to the ``edge_table`` and ``edge_table_vertices_pgr`` "
+"tables:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:368
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:368
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:370
+msgid "**contracted_vertices**"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:370
+msgid "The vertices set belonging to the vertex/edge"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:371
+#: ../../build/doc/contraction-family.rst:372
+msgid "**is_contracted**"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:371
+msgid ""
+"On a `vertex` table: when ``true`` the vertex is contracted, so is not part "
+"of the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:372
+msgid ""
+"On an `edge` table: when ``true`` the edge was generated by the contraction "
+"algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:375
+msgid "Using the following queries:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:382
+msgid "step 2"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:383
+msgid ""
+"For simplicity, in this documentation, store the results of the call to "
+"pgr_contractGraph in a temporary table"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:390
+msgid "step 3"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:391
+msgid ""
+"Update the `vertex` and `edge` tables using the results of the call to "
+"pgr_contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:393
+msgid ""
+"In `edge_table_vertices_pgr.is_contracted` indicate the vertices that are "
+"contracted."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:399
+msgid ""
+"Add to `edge_table_vertices_pgr.contracted_vertices`  the contracted "
+"vertices belonging to the vertices."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:405
+msgid "Insert the new edges generated by  pgr_contractGraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:412
+msgid "step 3.1"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:413
+msgid "Verify visually the updates."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:415
+msgid "On the `edge_table_vertices_pgr`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:421
+msgid "On the `edge_table`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:427
+msgid ""
+"vertices that belong to the contracted graph are the non contracted vertices"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:434
+msgid "case 1: Both source and target belong to the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:435
+msgid ""
+"Inspecting the contracted graph above, vertex 3 and vertex 11 are part of "
+"the contracted graph. In the following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:437
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:438
+#: ../../build/doc/contraction-family.rst:452
+#: ../../build/doc/contraction-family.rst:469
+#: ../../build/doc/contraction-family.rst:485
+#: ../../build/doc/contraction-family.rst:507
+msgid ""
+"when selecting the edges, only edges that have the source and the target in "
+"that set are the edges belonging to the contracted graph, that is done in "
+"the WHERE clause."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:440
+msgid ""
+"Visually, looking at the original graph, going from 3 to 11: 3 -> 6 -> 11, "
+"and in the contracted graph, it is also 3 -> 6 -> 11. The results, on the "
+"contracted graph match the results as if it was done on the original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:448
+msgid ""
+"case 2: Source belongs to the contracted graph, while target belongs to a "
+"edge subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:452
+msgid ""
+"Inspecting the contracted graph above, vertex 3 is part of the contracted "
+"graph and vertex 1 belongs to the contracted subgraph of edge 19. In the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:450
+msgid ""
+"expand1 holds the contracted vertices of the edge where vertex 1 belongs. "
+"(belongs to edge 19)."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:451
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph and "
+"also the contracted vertices of edge 19."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:454
+msgid ""
+"Visually, looking at the original graph, going from 3 to 1: 3 -> 2 -> 1, and"
+" in the contracted graph, it is also 3 -> 2 -> 1. The results, on the "
+"contracted graph match the results as if it was done on the original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:463
+msgid ""
+"case 3: Source belongs to a vertex subgraph, while target belongs to an edge"
+" subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:464
+msgid ""
+"Inspecting the contracted graph above, vertex 7 belongs to the contracted "
+"subgraph of vertex 5 and vertex 13 belongs to the contracted subgraph of "
+"edge 21. In the following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:466
+#: ../../build/doc/contraction-family.rst:483
+msgid ""
+"expand7 holds the contracted vertices of vertex where vertex 7 belongs. "
+"(belongs to vertex 5)"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:467
+msgid ""
+"expand13 holds the contracted vertices of edge where vertex 13 belongs. "
+"(belongs to edge 21)"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:468
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph, "
+"contracted vertices of vertex 5 and contracted vertices of edge 21."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:471
+msgid ""
+"Visually, looking at the original graph, going from 7 to 13: 7 -> 8 -> 5 -> "
+"10 -> 13, and in the contracted graph, it is also 7 -> 8 -> 5 -> 10 -> 13. "
+"The results, on the contracted graph match the results as if it was done on "
+"the original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:480
+msgid ""
+"case 4: Source belongs to the contracted graph, while target belongs to an "
+"vertex subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:481
+msgid ""
+"Inspecting the contracted graph above, vertex 3 is part of the contracted "
+"graph and vertex 7 belongs to the contracted subgraph of vertex 5. In the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:484
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph and "
+"the contracted vertices of vertex 5."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:487
+msgid ""
+"Visually, looking at the original graph, going from 3 to 7: 3 -> 2 -> 5 -> 8"
+" -> 7, but in the contracted graph, it is 3 -> 5 -> 8 -> 7. The results, on "
+"the contracted graph do not match the results as if it was done on the "
+"original graph. This is because the path contains edge 19 which is added by "
+"the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:495
+msgid "case 5: The path contains an edge added by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:496
+msgid ""
+"In the previous example we can see that the path from vertex 3 to vertex 7 "
+"contains an edge which is added by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:502
+msgid ""
+"Inspecting the contracted graph above, edge 19 should be expanded. In the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:504
+msgid "first_dijkstra holds the results of the dijkstra query."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:505
+msgid ""
+"edges_to_expand holds the edges added by the contraction algorithm and "
+"included in the path."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:506
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph, "
+"vertices of the contracted solution and the contracted vertices of the edges"
+" added by the contraction algorithm and included in the contracted solution."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:509
+msgid ""
+"Visually, looking at the original graph, going from 3 to 7: 3 -> 2 -> 5 -> 8"
+" -> 7, and in the contracted graph, it is also 3 -> 2 -> 5 -> 8 -> 7. The "
+"results, on the contracted graph match the results as if it was done on the "
+"original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:517
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:519
+msgid ""
+"http://www.cs.cmu.edu/afs/cs/academic/class/15210-f12/www/lectures/lecture16.pdf"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:520
+msgid "http://algo2.iti.kit.edu/documents/routeplanning/geisberger_dipl.pdf"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:521
+msgid ""
+"The queries use :ref:`pgr_contractGraph` function and the :doc:`sampledata` "
+"network."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:524
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:525
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:526
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/cost-category.po b/locale/de/LC_MESSAGES/cost-category.po
new file mode 100644
index 0000000..efea606
--- /dev/null
+++ b/locale/de/LC_MESSAGES/cost-category.po
@@ -0,0 +1,178 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/cost-category.rst:13
+msgid "Cost - Category"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:17
+msgid ":ref:`pgr_aStarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:18
+msgid ":ref:`pgr_bdAstarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:19
+msgid ":ref:`pgr_bdDijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:20
+msgid ":ref:`pgr_dijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:21
+msgid ":ref:`pgr_withPointsCost`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:30
+msgid "General Information"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:34
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:36
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:38
+msgid "Each function works as part of the family it belongs to."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:39
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:40
+msgid ""
+"Returns the sum of the costs of the resulting path(s) for pair combination "
+"of nodes in the graph."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:41
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:42
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:44
+msgid ""
+"The returned values are in the form of a set of `(start_vid, end_vid, "
+"agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:46
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:48
+msgid "The `agg_cost` int the non included values `(v, v)` is `0`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:50
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:52
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:54
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:56
+msgid ""
+"Depending on the function and its parameters, the results can be symmetric."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:58
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:60
+msgid "Any duplicated value in the `start_vids` or in `end_vids` are ignored."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:62
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:64
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:65
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:70
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:73
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:74
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:75
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/costMatrix-category.po b/locale/de/LC_MESSAGES/costMatrix-category.po
new file mode 100644
index 0000000..ad36b5e
--- /dev/null
+++ b/locale/de/LC_MESSAGES/costMatrix-category.po
@@ -0,0 +1,237 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/costMatrix-category.rst:13
+msgid "Cost Matrix - Category"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:17
+msgid ":ref:`pgr_aStarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:18
+msgid ":ref:`pgr_bdAstarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:19
+msgid ":ref:`pgr_bdDijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:20
+msgid ":ref:`pgr_dijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:21
+msgid ":ref:`pgr_withPointsCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:40
+msgid "General Information"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:43
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:45
+msgid ""
+":ref:`tsp` needs as input a symmetric cost matrix and no edge `(u, v)` must "
+"value :math:`\\infty`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:47
+msgid ""
+"This collection of functions will return a cost matrix in form of a table."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:51
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:53
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:55
+msgid "Can be used as input to :ref:`pgr_tsp`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:57
+msgid ""
+"when the resulting matrix is symmetric and there is no :math:`\\infty` "
+"value."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:58
+msgid "It will be the users responsibility to make the matrix symmetric."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:60
+msgid "By using geometric or harmonic average of the non symmetric values."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:61
+msgid "By using max or min the non symmetric values."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:62
+msgid ""
+"By setting the upper triangle to be the mirror image of the lower triangle."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:63
+msgid ""
+"By setting the lower triangle to be the mirror image of the upper triangle."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:65
+msgid "It is also the users responsibility to fix an :math:`\\infty` value."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:67
+msgid "Each function works as part of the family it belongs to."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:68
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:69
+msgid ""
+"Returns the sum of the costs of the shortest path for pair combination of "
+"nodes in the graph."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:70
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:71
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:73
+msgid ""
+"The returned values are in the form of a set of `(start_vid, end_vid, "
+"agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:75
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:77
+msgid "The `agg_cost` int the non included values `(v, v)` is `0`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:79
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:81
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:83
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:85
+msgid ""
+"Depending on the function and its parameters, the results can be symmetric."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:87
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:89
+msgid "Any duplicated value in the `start_vids` are ignored."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:91
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:93
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:94
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:96
+msgid "Running time: approximately :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:101
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:103
+msgid ":ref:`pgr_tsp`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:106
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:107
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:108
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/cost_result.po b/locale/de/LC_MESSAGES/cost_result.po
new file mode 100644
index 0000000..cfc1232
--- /dev/null
+++ b/locale/de/LC_MESSAGES/cost_result.po
@@ -0,0 +1,92 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/cost_result.rst:13
+msgid "pgr_costResult[]"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:19 ../../build/doc/cost_result.rst:52
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:21
+msgid ""
+"``pgr_costResult[]`` — A set of records to describe a path result with cost "
+"attribute."
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:25 ../../build/doc/cost_result.rst:58
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:37 ../../build/doc/cost_result.rst:71
+msgid "sequential ID indicating the path order"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:38 ../../build/doc/cost_result.rst:73
+msgid "generic name, to be specified by the function, typically the node id"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:39 ../../build/doc/cost_result.rst:74
+msgid "generic name, to be specified by the function, typically the edge id"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:40 ../../build/doc/cost_result.rst:75
+msgid "cost attribute"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:46
+msgid "pgr_costResult3[] - Multiple Path Results with Cost"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:54
+msgid ""
+"``pgr_costResult3[]`` — A set of records to describe a path result with cost"
+" attribute."
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:72
+msgid "generic name, to be specified by the function, typically the path id"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:79
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:80
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:81
+msgid "Replaces ``path_result``"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:85
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:87
+msgid ":ref:`introduction`"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:90
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:91
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:92
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/dijkstra-family.po b/locale/de/LC_MESSAGES/dijkstra-family.po
new file mode 100644
index 0000000..a9fa495
--- /dev/null
+++ b/locale/de/LC_MESSAGES/dijkstra-family.po
@@ -0,0 +1,262 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/dijkstra-family.rst:13
+msgid "Dijkstra - Family of functions"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:17
+msgid ":ref:`pgr_dijkstra` - Dijkstra's algorithm for the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:18
+msgid ""
+":ref:`pgr_dijkstraCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:19
+msgid ""
+":ref:`pgr_dijkstraCostMatrix` - Use pgr_dijkstra to create a costs matrix."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:20
+msgid ""
+":ref:`pgr_drivingDistance` - Use pgr_dijkstra to calculate catchament "
+"information."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:21
+msgid ""
+":ref:`pgr_ksp` - Use Yen algorithm with pgr_dijkstra to get the K shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:22
+msgid ":ref:`pgr_dijkstraVia` - Get a route of a seuence of vertices."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:39
+msgid "The problem definition (Advanced documentation)"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:42
+msgid "Given the following query:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:45
+msgid "pgr_dijkstra(:math:`sql, start_{vid}, end_{vid}, directed`)"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:47
+msgid ""
+"where  :math:`sql = \\{(id_i, source_i, target_i, cost_i, "
+"reverse\\_cost_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:49
+msgid "and"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:51
+msgid ":math:`source = \\bigcup source_i`,"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:52
+msgid ":math:`target = \\bigcup target_i`,"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:54
+msgid "The graphs are defined as follows:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:57
+msgid "Directed graph"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:58
+msgid "The weighted directed graph, :math:`G_d(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:60
+#: ../../build/doc/dijkstra-family.rst:79
+msgid "the set of vertices  :math:`V`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:62
+msgid ":math:`V = source \\cup target \\cup {start_{vid}} \\cup  {end_{vid}}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:64
+#: ../../build/doc/dijkstra-family.rst:84
+msgid "the set of edges :math:`E`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:66
+msgid ""
+":math:`E = \\begin{cases} \\text{ }  \\{(source_i, target_i, cost_i) \\text{"
+" when } cost >=0 \\} & \\quad \\text{if } reverse\\_cost = \\varnothing \\\\"
+" \\text{ }  \\text{ }  & \\quad \\text{ } \\\\ \\text{ }  \\{(source_i, "
+"target_i, cost_i) \\text{ when } cost >=0 \\} &  \\quad \\text{ } \\\\ \\cup"
+"      \\{(target_i, source_i, reverse\\_cost_i) \\text{ when } "
+"reverse\\_cost_i>=0 \\} & \\quad \\text{if } reverse\\_cost \\neq "
+"\\varnothing \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:76
+msgid "Undirected graph"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:77
+msgid "The weighted undirected graph, :math:`G_u(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:81
+msgid ":math:`V = source \\cup target \\cup {start_v{vid}} \\cup  {end_{vid}}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:86
+msgid ""
+":math:`E = \\begin{cases} \\text{ }  \\{(source_i, target_i, cost_i) \\text{"
+" when } cost >=0 \\}  & \\quad \\text{ } \\\\ \\cup      \\{(target_i, "
+"source_i, cost_i) \\text{ when } cost >=0 \\}  & \\quad \\text{ if } "
+"reverse\\_cost = \\varnothing \\\\ \\text{ }  \\text{ }  & \\text{ } \\\\ "
+"\\text{ }  \\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & "
+"\\text{ } \\\\ \\cup  \\{(target_i, source_i, cost_i) \\text{ when } cost "
+">=0 \\} & \\text{ } \\\\ \\cup  \\{(target_i, source_i, reverse\\_cost_i) "
+"\\text{ when } reverse\\_cost_i >=0)\\} & \\text{ } \\\\ \\cup  "
+"\\{(source_i, target_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i "
+">=0)\\} & \\quad \\text{ if } reverse\\_cost \\neq \\varnothing \\\\ "
+"\\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:99
+msgid "The problem"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:100
+msgid "Given:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:102
+msgid ":math:`start_{vid} \\in V` a starting vertex"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:103
+msgid ":math:`end_{vid} \\in V` an ending vertex"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:104
+msgid ""
+":math:`G(V,E) = \\begin{cases} G_d(V,E) & \\quad \\text{ if6 } directed = "
+"true \\\\ G_u(V,E) & \\quad \\text{ if5 } directed = false \\\\ "
+"\\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:109
+msgid "Then:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:118
+msgid ""
+":math:`\\boldsymbol{\\pi} = \\{(path\\_seq_i, node_i, edge_i, cost_i, "
+"agg\\_cost_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:131
+msgid "where:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:121
+msgid ":math:`path\\_seq_i = i`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:122
+msgid ":math:`path\\_seq_{| \\pi |} = | \\pi |`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:123
+msgid ":math:`node_i \\in V`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:124
+msgid ":math:`node_1 = start_{vid}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:125
+msgid ":math:`node_{| \\pi |}  = end_{vid}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:126
+msgid ":math:`\\forall i \\neq | \\pi |, \\quad (node_i, node_{i+1}, cost_i) \\in E`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:127
+msgid ""
+":math:`edge_i  = \\begin{cases}  id_{(node_i, node_{i+1},cost_i)}  &\\quad  "
+"\\text{when } i \\neq | \\pi | \\\\ -1 &\\quad  \\text{when } i = | \\pi | "
+"\\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:128
+msgid ":math:`cost_i = cost_{(node_i, node_{i+1})}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:129
+msgid ""
+":math:`agg\\_cost_i  = \\begin{cases}  0   &\\quad  \\text{when } i = 1  "
+"\\\\ \\displaystyle\\sum_{k=1}^{i}  cost_{(node_{k-1}, node_k)}  &\\quad  "
+"\\text{when } i \\neq 1 \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:137
+msgid ""
+"In other words: The algorithm returns a the shortest path between "
+":math:`start_{vid}` and :math:`end_{vid}` , if it exists, in terms of a "
+"sequence of nodes  and of edges,"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:134
+msgid ""
+":math:`path\\_seq` indicates the relative position in the path of the "
+":math:`node` or :math:`edge`."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:135
+msgid ""
+":math:`cost` is the cost of the edge to be used to go to the next node."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:136
+msgid ""
+":math:`agg\\_cost` is the cost from the :math:`start_{vid}` up to the node."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:139
+msgid "If there is no path, the resulting set is empty."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:143
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:146
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:147
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:148
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/drivingDistance-category.po b/locale/de/LC_MESSAGES/drivingDistance-category.po
new file mode 100644
index 0000000..a71b4c7
--- /dev/null
+++ b/locale/de/LC_MESSAGES/drivingDistance-category.po
@@ -0,0 +1,52 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/drivingDistance-category.rst:14
+msgid "Driving Distance - Category"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:18
+msgid ":ref:`pgr_drivingDistance` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:19
+msgid ":ref:`pgr_withPointsDD` - Driving Distance based on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:20
+msgid "Post pocessing"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:22
+msgid ":ref:`pgr_alphaShape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:23
+msgid ":ref:`pgr_points_as_polygon` - Polygon around a set of points"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:36
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:39
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:40
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:41
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/flow-family.po b/locale/de/LC_MESSAGES/flow-family.po
new file mode 100644
index 0000000..a000199
--- /dev/null
+++ b/locale/de/LC_MESSAGES/flow-family.po
@@ -0,0 +1,331 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Flow - Family of functions"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid ""
+":ref:`pgr_maxFlow` - Only the Max flow calculation using Push and Relabel "
+"algorithm."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid ""
+":ref:`pgr_BoykovKolmogorov` - Boykov and Kolmogorov with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:19
+msgid ""
+":ref:`pgr_EdmondsKarp` - Edmonds and Karp algorithm with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid ""
+":ref:`pgr_PushRelabel` - Push and relabel algorithm with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "Applications"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:23
+msgid ""
+":ref:`pgr_edgeDisjointPaths` - Calculates edge disjoint paths between two "
+"groups of vertices."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:24
+msgid ""
+":ref:`pgr_maxCardinalityMatch` - Calculates a maximum cardinality matching "
+"in a graph."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:45
+msgid "Flow Functions General Information"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:51
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:52
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:53
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:54
+msgid ""
+"When the maximum flow is 0 then there is no flow and **EMPTY SET** is "
+"returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:56
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:58
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:59
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:61
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:63
+msgid ""
+"Creates a **super source** and edges to all the source(s), and a **super "
+"target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:64
+msgid ""
+"The maximum flow through the graph is guaranteed to be the value returned by"
+" :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and"
+" can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:66
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:67
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:72
+msgid ""
+":ref:`pgr_maxFlow <pgr_maxFlow>`  is the  maximum Flow and that maximum is "
+"guaranteed to be the same on the functions :ref:`pgr_pushRelabel "
+"<pgr_pushRelabel>`, :ref:`pgr_edmondsKarp <pgr_edmondsKarp>`, "
+":ref:`pgr_boykovKolmogorov <pgr_boykovKolmogorov>`, but the actual flow "
+"through each edge may vary."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:77
+msgid "Problem definition"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:79
+msgid ""
+"A flow network is a directed graph where each edge has a capacity and a "
+"flow. The flow through an edge must not exceed the capacity of the edge. "
+"Additionally, the incoming and outgoing flow of a node must be equal except "
+"the for source which only has outgoing flow, and the destination(sink) which"
+" only has incoming flow."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:83
+msgid ""
+"Maximum flow algorithms calculate the maximum flow through the graph and the"
+" flow of each edge."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:85
+msgid ""
+"The maximum flow through the graph is guaranteed to be the same with all "
+"implementations, but the actual flow through each edge may vary. Given the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:89
+msgid "pgr_maxFlow :math:`(edges\\_sql, source\\_vertex, sink\\_vertex)`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:91
+msgid ""
+"where :math:`edges\\_sql = \\{(id_i, source_i, target_i, capacity_i, "
+"reverse\\_capacity_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:94
+msgid "Graph definition"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:95
+msgid "The weighted directed graph, :math:`G(V,E)`, is defined as:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:97
+msgid "the set of vertices  :math:`V`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:99
+msgid ""
+":math:`source\\_vertex  \\cup  sink\\_vertex  \\bigcup  source_i  \\bigcup  "
+"target_i`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:101
+msgid "the set of edges :math:`E`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:103
+msgid ""
+":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, capacity_i) "
+"\\text{ when } capacity > 0 \\} & \\quad  \\text{ if } reverse\\_capacity = "
+"\\varnothing \\\\ \\text{ } & \\quad \\text{ } \\\\ \\{(source_i, target_i, "
+"capacity_i) \\text{ when } capacity > 0 \\} & \\text{ } \\\\ \\cup "
+"\\{(target_i, source_i, reverse\\_capacity_i) \\text{ when } "
+"reverse\\_capacity_i > 0)\\} & \\quad \\text{ if } reverse\\_capacity \\neq "
+"\\varnothing \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:111
+msgid "Maximum flow problem"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:112
+msgid "Given:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:115
+msgid ":math:`G(V,E)`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:116
+msgid ":math:`source\\_vertex \\in V` the source vertex"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:117
+msgid ":math:`sink\\_vertex \\in V` the sink vertex"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:119
+msgid "Then:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:121
+msgid ":math:`pgr\\_maxFlow(edges\\_sql, source, sink) = \\boldsymbol{\\Phi}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:123
+msgid ""
+":math:`\\boldsymbol{\\Phi} = {(id_i, edge\\_id_i, source_i, target_i, "
+"flow_i, residual\\_capacity_i)}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:125
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:127
+msgid ""
+":math:`\\boldsymbol{\\Phi}` is a subset of the original edges with their "
+"residual capacity and flow. The maximum flow through the graph can be "
+"obtained by aggregating on the source or sink and summing the flow from/to "
+"it. In particular:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:129
+msgid ":math:`id_i = i`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:130
+msgid ":math:`edge\\_id = id_i` in edges_sql"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:131
+msgid ":math:`residual\\_capacity_i = capacity_i - flow_i`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:135
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:137
+msgid "https://en.wikipedia.org/wiki/Maximum_flow_problem"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:140
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:141
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:142
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/geom_result.po b/locale/de/LC_MESSAGES/geom_result.po
new file mode 100644
index 0000000..e2d89a1
--- /dev/null
+++ b/locale/de/LC_MESSAGES/geom_result.po
@@ -0,0 +1,74 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/geom_result.rst:13
+msgid "pgr_geomResult[]"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:21
+msgid ""
+"``pgr_geomResult[]`` — A set of records to describe a path result with "
+"geometry attribute."
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:25
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:37
+msgid "sequential ID indicating the path order"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:38 ../../build/doc/geom_result.rst:39
+msgid "generic name, to be specified by the function"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:40
+msgid "geometry attribute"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:44
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:45
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:46
+msgid "Replaces ``geoms``"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:50
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:52
+msgid ":ref:`introduction`"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:56
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:57
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:58
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/index.po b/locale/de/LC_MESSAGES/index.po
new file mode 100644
index 0000000..44ac3e4
--- /dev/null
+++ b/locale/de/LC_MESSAGES/index.po
@@ -0,0 +1,306 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/index.rst:14
+msgid "Table of Contents"
+msgstr ""
+
+#: ../../build/doc/index.rst:16
+msgid ""
+"pgRouting extends the `PostGIS <http://postgis.net>`_/`PostgreSQL "
+"<http://postgresql.org>`_ geospatial database to provide geospatial routing "
+"and other network analysis functionality."
+msgstr ""
+
+#: ../../build/doc/index.rst:18
+msgid "This is the manual for pgRouting |release|."
+msgstr ""
+
+#: ../../build/doc/index.rst:24
+msgid ""
+"The pgRouting Manual is licensed under a `Creative Commons Attribution-Share"
+" Alike 3.0 License <http://creativecommons.org/licenses/by-sa/3.0/>`_. Feel "
+"free to use this material any way you like, but we ask that you attribute "
+"credit to the pgRouting Project and wherever possible, a link back to "
+"http://pgrouting.org. For other licenses used in pgRouting see the "
+":ref:`license` page."
+msgstr ""
+
+#: ../../build/doc/index.rst:27
+msgid "General"
+msgstr ""
+
+#: ../../build/doc/index.rst:37
+msgid ":doc:`sampledata` that is used in the examples of this manual."
+msgstr ""
+
+#: ../../build/doc/index.rst:45
+msgid "Pgrouting Concepts"
+msgstr ""
+
+#: ../../build/doc/index.rst:54
+msgid "Reference"
+msgstr ""
+
+#: ../../build/doc/index.rst:55
+msgid ":ref:`pgr_version` - to get pgRouting's version information."
+msgstr ""
+
+#: ../../build/doc/index.rst:64
+msgid ":ref:`Data Types <data_types>`"
+msgstr ""
+
+#: ../../build/doc/index.rst:67
+msgid ""
+":ref:`type_cost_result` -  A set of records to describe a path result with "
+"cost attribute."
+msgstr ""
+
+#: ../../build/doc/index.rst:68
+msgid ""
+":ref:`pgr_costResult3[]<type_cost_result3>` - A set of records to describe a"
+" path result with cost attribute."
+msgstr ""
+
+#: ../../build/doc/index.rst:69
+msgid ""
+":ref:`pgr_geomResult<type_geom_result>` - A set of records to describe a "
+"path result with geometry attribute."
+msgstr ""
+
+#: ../../build/doc/index.rst:78
+msgid ":ref:`Topology Functions <topology_functions>`"
+msgstr ""
+
+#: ../../build/doc/index.rst:80
+msgid ""
+":ref:`pgr_create_topology` -  to create a topology based on the geometry."
+msgstr ""
+
+#: ../../build/doc/index.rst:81
+msgid ""
+":ref:`pgr_create_vert_table` - to reconstruct the vertices table based on "
+"the source and target information."
+msgstr ""
+
+#: ../../build/doc/index.rst:82
+msgid ""
+":ref:`pgr_analyze_graph`  - to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/index.rst:83
+msgid ":ref:`pgr_analyze_oneway` - to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/index.rst:84
+msgid ":ref:`pgr_node_network`  -to create nodes to a not noded edge table."
+msgstr ""
+
+#: ../../build/doc/index.rst:93
+msgid ":ref:`Routing functions <routing_functions>`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:4
+msgid ":ref:`all_pairs`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:6
+msgid ":ref:`pgr_floydWarshall` - Floyd-Warshall's Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:7
+msgid ":ref:`pgr_johnson`- Johnson’s Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:9
+msgid ":ref:`pgr_astar` - Shortest Path A*"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:11
+msgid ":ref:`pgr_bdAstar` - Bi-directional A* Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:13
+msgid ":ref:`pgr_bdDijkstra` - Bi-directional Dijkstra Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:16
+msgid ":ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:3
+msgid ":ref:`pgr_dijkstra` - Dijkstra's algorithm for the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:4
+msgid ""
+":ref:`pgr_dijkstraCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:5
+msgid ""
+":ref:`pgr_dijkstraCostMatrix` - Use pgr_dijkstra to create a costs matrix."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:6
+msgid ""
+":ref:`pgr_drivingDistance` - Use pgr_dijkstra to calculate catchament "
+"information."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:7
+msgid ""
+":ref:`pgr_ksp` - Use Yen algorithm with pgr_dijkstra to get the K shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:8
+msgid ":ref:`pgr_dijkstraVia` - Get a route of a seuence of vertices."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:22
+msgid ":ref:`pgr_ksp` - K-Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:24
+msgid ":ref:`pgr_trsp<trsp>` - Turn Restriction Shortest Path (TRSP)"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:26
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:3
+msgid ":ref:`pgr_TSP` - When input is given as matrix cell information."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:4
+msgid ":ref:`pgr_eucledianTSP` - When input are coordinates."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:32
+msgid ":ref:`drivingDistance`"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:3
+msgid ":ref:`pgr_drivingDistance` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:4
+msgid ":ref:`pgr_withPointsDD` - Driving Distance based on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:5
+msgid "Post pocessing"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:7
+msgid ":ref:`pgr_alphaShape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:8
+msgid ":ref:`pgr_points_as_polygon` - Polygon around a set of points"
+msgstr ""
+
+#: ../../build/doc/index.rst:108
+msgid "Available Functions but not official pgRouting functions"
+msgstr ""
+
+#: ../../build/doc/index.rst:110
+msgid ":ref:`Stable`"
+msgstr ""
+
+#: ../../build/doc/index.rst:111
+msgid ":ref:`proposed`"
+msgstr ""
+
+#: ../../build/doc/index.rst:121
+msgid ":ref:`Change Log <change_log>`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:3
+msgid ":ref:`changelog_2_5_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:4
+msgid ":ref:`changelog_2_4_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:5
+msgid ":ref:`changelog_2_4_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:6
+msgid ":ref:`changelog_2_4_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:7
+msgid ":ref:`changelog_2_3_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:8
+msgid ":ref:`changelog_2_3_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:9
+msgid ":ref:`changelog_2_3_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:10
+msgid ":ref:`changelog_2_2_4`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:11
+msgid ":ref:`changelog_2_2_3`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:12
+msgid ":ref:`changelog_2_2_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:13
+msgid ":ref:`changelog_2_2_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:14
+msgid ":ref:`changelog_2_2_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:15
+msgid ":ref:`changelog_2_1_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:16
+msgid ":ref:`changelog_2_0_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:17
+msgid ":ref:`changelog_2_0_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:18
+msgid ":ref:`changelog_1_x`"
+msgstr ""
+
+#: ../../build/doc/index.rst:135
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/index.rst:136
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/index.rst:137
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgRouting-concepts.po b/locale/de/LC_MESSAGES/pgRouting-concepts.po
new file mode 100644
index 0000000..34885ba
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgRouting-concepts.po
@@ -0,0 +1,1071 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "pgRouting Concepts"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:0
+msgid "Contents"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "Getting Started"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid ""
+"This is a simple guide to walk you through the steps of getting started with"
+" pgRouting. In this guide we will cover:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:32
+msgid "Create a routing Database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:34
+msgid ""
+"The first thing we need to do is create a database and load pgrouting in the"
+" database. Typically you will create a database for each project. Once you "
+"have a database to work in, your can load your data and build your "
+"application in that database. This makes it easy to move your project later "
+"if you want to to say a production server."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:40
+msgid "For Postgresql 9.2 and later versions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:51
+msgid "Load Data"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:53
+msgid ""
+"How you load your data will depend in what form it comes it. There are "
+"various OpenSource tools that can help you, like:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:56
+msgid ""
+"this is a tool for loading OSM data into postgresql with pgRouting "
+"requirements"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:57
+msgid "this is the postgresql shapefile loader"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:58
+msgid "this is a vector data conversion utility"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:59
+msgid "this is a tool for loading OSM data into postgresql"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:61
+msgid ""
+"So these tools and probably others will allow you to read vector data so "
+"that you may then load that data into your database as a table of some kind."
+" At this point you need to know a little about your data structure and "
+"content. One easy way to browse your new data table is with pgAdmin3 or "
+"phpPgAdmin."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:69
+msgid "Build a Routing Topology"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:71
+msgid ""
+"Next we need to build a topology for our street data. What this means is "
+"that for any given edge in your street data the ends of that edge will be "
+"connected to a unique node and to other edges that are also connected to "
+"that same unique node. Once all the edges are connected to nodes we have a "
+"graph that can be used for routing with pgrouting. We provide a tool that "
+"will help with this:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:77
+msgid "this step is not needed if data is loaded with `osm2pgrouting`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:83
+msgid ":ref:`pgr_create_topology`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:88
+msgid "Check the Routing Topology"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:90
+msgid ""
+"There are lots of possible sources for errors in a graph. The data that you "
+"started with may not have been designed with routing in mind. A graph has "
+"some very specific requirements. One is that it is *NODED*, this means that "
+"except for some very specific use cases, each road segment starts and ends "
+"at a node and that in general is does not cross another road segment that it"
+" should be connected to."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:97
+msgid ""
+"There can be other errors like the direction of a one-way street being "
+"entered in the wrong direction. We do not have tools to search for all "
+"possible errors but we have some basic tools that might help."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:109
+msgid ":ref:`pgr_analyze_graph`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:110
+msgid ":ref:`pgr_analyze_oneway`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:111
+msgid ":ref:`pgr_node_network`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:117
+msgid "Compute a Path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:119
+msgid ""
+"Once you have all the preparation work done above, computing a route is "
+"fairly easy. We have a lot of different algorithms that can work with your "
+"prepared road network. The general form of a route query is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:127
+msgid ""
+"As you can see this is fairly straight forward and you can look and the "
+"specific algorithms for the details of the signatures and how to use them. "
+"These results have information like edge id and/or the node id along with "
+"the cost or geometry for the step in the path from *start* to *end*. Using "
+"the ids you can join these result back to your edge table to get more "
+"information about each step in the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:134
+msgid ":ref:`pgr_dijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:141
+msgid "Inner Queries"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:146
+msgid ""
+"There are several kinds of valid inner queries and also the columns returned"
+" are depending of the function. Which kind of inner query will depend on the"
+" function(s) requirements. To simplify variety of types, ``ANY-INTEGER`` and"
+" ``ANY-NUMERICAL`` is used."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:152
+#: ../../build/doc/pgRouting-concepts.rst:182
+#: ../../build/doc/pgRouting-concepts.rst:212
+#: ../../build/doc/pgRouting-concepts.rst:269
+#: ../../build/doc/pgRouting-concepts.rst:300
+#: ../../build/doc/pgRouting-concepts.rst:334
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:154
+#: ../../build/doc/pgRouting-concepts.rst:184
+#: ../../build/doc/pgRouting-concepts.rst:214
+#: ../../build/doc/pgRouting-concepts.rst:271
+#: ../../build/doc/pgRouting-concepts.rst:302
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:155
+#: ../../build/doc/pgRouting-concepts.rst:185
+#: ../../build/doc/pgRouting-concepts.rst:215
+#: ../../build/doc/pgRouting-concepts.rst:272
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:162
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:164
+#: ../../build/doc/pgRouting-concepts.rst:195
+#: ../../build/doc/pgRouting-concepts.rst:247
+#: ../../build/doc/pgRouting-concepts.rst:282
+#: ../../build/doc/pgRouting-concepts.rst:314
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+#: ../../build/doc/pgRouting-concepts.rst:317
+#: ../../build/doc/pgRouting-concepts.rst:360
+#: ../../build/doc/pgRouting-concepts.rst:383
+#: ../../build/doc/pgRouting-concepts.rst:400
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:227
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+#: ../../build/doc/pgRouting-concepts.rst:317
+#: ../../build/doc/pgRouting-concepts.rst:360
+#: ../../build/doc/pgRouting-concepts.rst:383
+#: ../../build/doc/pgRouting-concepts.rst:400
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:227
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:227
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+#: ../../build/doc/pgRouting-concepts.rst:317
+#: ../../build/doc/pgRouting-concepts.rst:360
+#: ../../build/doc/pgRouting-concepts.rst:383
+#: ../../build/doc/pgRouting-concepts.rst:400
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:169
+#: ../../build/doc/pgRouting-concepts.rst:252
+#: ../../build/doc/pgRouting-concepts.rst:287
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:169
+#: ../../build/doc/pgRouting-concepts.rst:170
+#: ../../build/doc/pgRouting-concepts.rst:171
+#: ../../build/doc/pgRouting-concepts.rst:200
+#: ../../build/doc/pgRouting-concepts.rst:201
+#: ../../build/doc/pgRouting-concepts.rst:252
+#: ../../build/doc/pgRouting-concepts.rst:253
+#: ../../build/doc/pgRouting-concepts.rst:254
+#: ../../build/doc/pgRouting-concepts.rst:287
+#: ../../build/doc/pgRouting-concepts.rst:288
+#: ../../build/doc/pgRouting-concepts.rst:289
+#: ../../build/doc/pgRouting-concepts.rst:290
+#: ../../build/doc/pgRouting-concepts.rst:294
+#: ../../build/doc/pgRouting-concepts.rst:319
+#: ../../build/doc/pgRouting-concepts.rst:324
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:169
+#: ../../build/doc/pgRouting-concepts.rst:252
+#: ../../build/doc/pgRouting-concepts.rst:287
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:170
+#: ../../build/doc/pgRouting-concepts.rst:200
+#: ../../build/doc/pgRouting-concepts.rst:253
+#: ../../build/doc/pgRouting-concepts.rst:288
+#: ../../build/doc/pgRouting-concepts.rst:404
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:170
+#: ../../build/doc/pgRouting-concepts.rst:200
+#: ../../build/doc/pgRouting-concepts.rst:253
+#: ../../build/doc/pgRouting-concepts.rst:288
+#: ../../build/doc/pgRouting-concepts.rst:404
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:171
+#: ../../build/doc/pgRouting-concepts.rst:201
+#: ../../build/doc/pgRouting-concepts.rst:254
+#: ../../build/doc/pgRouting-concepts.rst:289
+#: ../../build/doc/pgRouting-concepts.rst:405
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:171
+#: ../../build/doc/pgRouting-concepts.rst:201
+#: ../../build/doc/pgRouting-concepts.rst:254
+#: ../../build/doc/pgRouting-concepts.rst:289
+#: ../../build/doc/pgRouting-concepts.rst:405
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:172
+#: ../../build/doc/pgRouting-concepts.rst:202
+#: ../../build/doc/pgRouting-concepts.rst:255
+#: ../../build/doc/pgRouting-concepts.rst:369
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:172
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:202
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:255
+#: ../../build/doc/pgRouting-concepts.rst:259
+#: ../../build/doc/pgRouting-concepts.rst:263
+#: ../../build/doc/pgRouting-concepts.rst:264
+#: ../../build/doc/pgRouting-concepts.rst:265
+#: ../../build/doc/pgRouting-concepts.rst:266
+#: ../../build/doc/pgRouting-concepts.rst:325
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:172
+#: ../../build/doc/pgRouting-concepts.rst:202
+#: ../../build/doc/pgRouting-concepts.rst:255
+#: ../../build/doc/pgRouting-concepts.rst:290
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:174
+#: ../../build/doc/pgRouting-concepts.rst:204
+#: ../../build/doc/pgRouting-concepts.rst:257
+#: ../../build/doc/pgRouting-concepts.rst:292
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:259
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:259
+#: ../../build/doc/pgRouting-concepts.rst:294
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:259
+#: ../../build/doc/pgRouting-concepts.rst:294
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:178
+#: ../../build/doc/pgRouting-concepts.rst:208
+#: ../../build/doc/pgRouting-concepts.rst:261
+#: ../../build/doc/pgRouting-concepts.rst:296
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:193
+msgid "Description of the edges_sql query (id is not necessary)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:224
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:227
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:229
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:229
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:229
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:230
+msgid "**via_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:230
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:230
+msgid "Array of ordered vertices identifiers that are going to be visited."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:233
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:232
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:233
+msgid "**strict**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:233
+msgid "``false``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:233
+msgid "When ``false`` ignores missing paths returning all paths found"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:234
+msgid "When ``true`` if a path is missing stops and returns `EMPTY SET`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid "**U_turn_on_edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid ""
+"When ``true`` departing from a visited vertex will not try to avoid using "
+"the edge used to reach it.  In other words, U turn using the edge with same "
+"`id` is allowed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:236
+msgid ""
+"When ``false`` when a departing from a visited vertex tries to avoid using "
+"the edge used to reach it.  In other words, U turn using the edge with same "
+"`id` is used when no other path is found."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:245
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:263
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:263
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:264
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:264
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:265
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:265
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:266
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:266
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:280
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:290
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:294
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:312
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:319
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:319
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:321
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:322
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:324
+#: ../../build/doc/pgRouting-concepts.rst:403
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:324
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:325
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:325
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:326
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:326
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:326
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:328
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:329
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:330
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:336
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:337
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:345
+msgid "Return columns & values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:350
+msgid ""
+"There are several kinds of columns returned are depending of the function."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:355
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:357
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:362
+#: ../../build/doc/pgRouting-concepts.rst:402
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:362
+#: ../../build/doc/pgRouting-concepts.rst:363
+#: ../../build/doc/pgRouting-concepts.rst:364
+#: ../../build/doc/pgRouting-concepts.rst:402
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:362
+#: ../../build/doc/pgRouting-concepts.rst:402
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:363
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:363
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:364
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:364
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:365
+#: ../../build/doc/pgRouting-concepts.rst:385
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:365
+#: ../../build/doc/pgRouting-concepts.rst:366
+#: ../../build/doc/pgRouting-concepts.rst:367
+#: ../../build/doc/pgRouting-concepts.rst:368
+#: ../../build/doc/pgRouting-concepts.rst:385
+#: ../../build/doc/pgRouting-concepts.rst:386
+#: ../../build/doc/pgRouting-concepts.rst:403
+#: ../../build/doc/pgRouting-concepts.rst:404
+#: ../../build/doc/pgRouting-concepts.rst:405
+#: ../../build/doc/pgRouting-concepts.rst:406
+#: ../../build/doc/pgRouting-concepts.rst:407
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:365
+#: ../../build/doc/pgRouting-concepts.rst:385
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:366
+#: ../../build/doc/pgRouting-concepts.rst:386
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:366
+#: ../../build/doc/pgRouting-concepts.rst:386
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:367
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:367
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:368
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:368
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:369
+#: ../../build/doc/pgRouting-concepts.rst:370
+#: ../../build/doc/pgRouting-concepts.rst:387
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:369
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:370
+#: ../../build/doc/pgRouting-concepts.rst:387
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:370
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:378
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:380
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:387
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:397
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:403
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:406
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:406
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:407
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:407
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:415
+msgid "Advanced Topics"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:423
+msgid "Routing Topology"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:427
+#: ../../build/doc/pgRouting-concepts.rst:528
+msgid "Overview"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:428
+msgid ""
+"Typically when GIS files are loaded into the data database for use with "
+"pgRouting they do not have topology information associated with them. To "
+"create a useful topology the data needs to be \"noded\". This means that "
+"where two or more roads form an intersection there it needs to be a node at "
+"the intersection and all the road segments need to be broken at the "
+"intersection, assuming that you can navigate from any of these segments to "
+"any other segment via that intersection."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:430
+msgid ""
+"You can use the :ref:`graph analysis functions <analytics>` to help you see "
+"where you might have topology problems in your data. If you need to node "
+"your data, we also have a function :ref:`pgr_nodeNetwork() "
+"<pgr_node_network>` that might work for you. This function splits ALL "
+"crossing segments and nodes them. There are some cases where this might NOT "
+"be the right thing to do."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:432
+msgid ""
+"For example, when you have an overpass and underpass intersection, you do "
+"not want these noded, but pgr_nodeNetwork does not know that is the case and"
+" will node them which is not good because then the router will be able to "
+"turn off the overpass onto the underpass like it was a flat 2D intersection."
+" To deal with this problem some data sets use z-levels at these types of "
+"intersections and other data might not node these intersection which would "
+"be ok."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:434
+msgid ""
+"For those cases where topology needs to be added the following functions may"
+" be useful. One way to prep the data for pgRouting is to add the following "
+"columns to your table and then populate them as appropriate. This example "
+"makes a lot of assumption like that you original data tables already has "
+"certain columns in it like ``one_way``, ``fcc``, and possibly others and "
+"that they contain specific data values. This is only to give you an idea of "
+"what you can do with your data."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:455
+msgid ""
+"The function :ref:`pgr_createTopology() <pgr_create_topology>` will create "
+"the ``vertices_tmp`` table and populate the ``source`` and ``target`` "
+"columns. The following example populated the remaining columns. In this "
+"example, the ``fcc`` column contains feature class code and the ``CASE`` "
+"statements converts it to an average speed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:518
+msgid ""
+"Now your database should be ready to use any (most?) of the pgRouting "
+"algorithms."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:524
+msgid "Graph Analytics"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:529
+msgid ""
+"It is common to find problems with graphs that have not been constructed "
+"fully noded or in graphs with z-levels at intersection that have been "
+"entered incorrectly. An other problem is one way streets that have been "
+"entered in the wrong direction. We can not detect errors with respect to "
+"\"ground\" truth, but we can look for inconsistencies and some anomalies in "
+"a graph and report them for additional inspections."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:531
+msgid ""
+"We do not current have any visualization tools for these problems, but I "
+"have used mapserver to render the graph and highlight potential problem "
+"areas. Someone familiar with graphviz might contribute tools for generating "
+"images with that."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:535
+msgid "Analyze a Graph"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:537
+msgid ""
+"With :ref:`pgr_analyze_graph` the graph can be checked for errors. For "
+"example for table \"mytab\" that has \"mytab_vertices_pgr\" as the vertices "
+"table:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:560
+msgid "In the vertices table \"mytab_vertices_pgr\":"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:562
+msgid "Deadends are identified by ``cnt=1``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:563
+msgid "Potencial gap problems are identified with ``chk=1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:581
+msgid ""
+"For isolated road segments, for example, a segment where both ends are "
+"deadends. you can find these with the following query:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:590
+msgid ""
+"If you want to visualize these on a graphic image, then you can use "
+"something like mapserver to render the edges and the vertices and style "
+"based on ``cnt`` or if they are isolated, etc. You can also do this with a "
+"tool like graphviz, or geoserver or other similar tools."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:594
+msgid "Analyze One Way Streets"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:596
+msgid ""
+":ref:`pgr_analyze_oneway` analyzes one way streets in a graph and identifies"
+" any flipped segments. Basically if you count the edges coming into a node "
+"and the edges exiting a node the number has to be greater than one."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:598
+msgid ""
+"This query will add two columns to the vertices_tmp table ``ein int`` and "
+"``eout int`` and populate it with the appropriate counts. After running this"
+" on a graph you can identify nodes with potential problems with the "
+"following query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:601
+msgid ""
+"The rules are defined as an array of text strings that if match the ``col`` "
+"value would be counted as true for the source or target in or out condition."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:605
+msgid "Example"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:607
+msgid ""
+"Lets assume we have a table \"st\" of edges and a column \"one_way\" that "
+"might have values like:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:609
+msgid "'FT'    - oneway from the source to the target node."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:610
+msgid "'TF'    - oneway from the target to the source node."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:611
+msgid "'B'     - two way street."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:612
+msgid "''      - empty field, assume twoway."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:613
+msgid "<NULL>  - NULL field, use two_way_if_null flag."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:615
+msgid ""
+"Then we could form the following query to analyze the oneway streets for "
+"errors."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:634
+msgid ""
+"Typically these problems are generated by a break in the network, the one "
+"way direction set wrong, maybe an error related to z-levels or a network "
+"that is not properly noded."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:636
+msgid ""
+"The above tools do not detect all network issues, but they will identify "
+"some common problems. There are other problems that are hard to detect "
+"because they are more global in nature like multiple disconnected networks. "
+"Think of an island with a road network that is not connected to the mainland"
+" network because the bridge or ferry routes are missing."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:644
+msgid "Performance Tips"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:651
+msgid "For the Routing functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:653
+msgid ""
+"To get faster results bound your queries to the area of interest of routing "
+"to have, for example, no more than one million rows."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:655
+msgid ""
+"Use an inner query SQL that does not include some edges in the routing "
+"function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:663
+msgid "Integrating the inner query to the pgRouting function:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:677
+msgid "For the topology functions:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:679
+msgid ""
+"When \"you know\" that you are going to remove a set of edges from the edges"
+" table, and without those edges you are going to use a routing function you "
+"can do the following:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:681
+msgid "Analize the new topology based on the actual topology:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:687
+msgid "Or create a new topology if the change is permanent:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:698
+msgid "How to contribute"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:701
+msgid "Wiki"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:702
+msgid ""
+"Edit an existing  `pgRouting Wiki "
+"<https://github.com/pgRouting/pgrouting/wiki>`_ page."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:703
+msgid "Or create a new Wiki page"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:705
+msgid ""
+"Create a page on the `pgRouting Wiki "
+"<https://github.com/pgRouting/pgrouting/wiki>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:706
+msgid "Give the title an appropriate name"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:709
+msgid ""
+"`Example <https://github.com/pgRouting/pgrouting/wiki/How-to:-Handle-"
+"parallel-edges-(KSP)>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:713
+msgid "Adding Functionaity to pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:714
+msgid ""
+"Consult the `developer's documentation "
+"<http://docs.pgrouting.org/doxy/2.4/index.html>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:719
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:720
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:721
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgRouting-installation.po b/locale/de/LC_MESSAGES/pgRouting-installation.po
new file mode 100644
index 0000000..71b7f5f
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgRouting-installation.po
@@ -0,0 +1,418 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgRouting-installation.rst:13
+msgid "Installation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:16
+msgid "Table of Contents"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:17
+msgid ":ref:`install-short`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:18
+msgid ":ref:`install_get_sources`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:19
+msgid ":ref:`install_enable_db`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:20
+msgid ":ref:`install_dependencies`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:21
+msgid ":ref:`install_configuring`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:22
+msgid ":ref:`install_build`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:23
+msgid ":ref:`install_testing`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:25
+msgid ""
+"Instructions for downloading and installing binaries for different Operative"
+" systems instructions and additional notes and corrections not included in "
+"this documentation can be found in `Installation wiki "
+"<https://github.com/pgRouting/pgrouting/wiki/Notes-on-Download%2C-"
+"Installation-and-building-pgRouting>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:27
+msgid ""
+"To use pgRouting postGIS needs to be installed, please read the information "
+"about installation in this `Install Guide "
+"<http://www.postgis.us/presentations/postgis_install_guide_22.html>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:32
+msgid "Short Version"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:37
+msgid "Extracting the tar ball"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:44
+msgid "To compile assuming you have all the dependencies in your search path:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:54
+msgid ""
+"Once pgRouting is installed, it needs to be enabled in each individual "
+"database you want to use it in."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:66
+msgid "Get the sources"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:69
+msgid ""
+"The pgRouting latest release can be found in "
+"https://github.com/pgRouting/pgrouting/releases/latest"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:72
+msgid "wget"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:73
+msgid "To download this release:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:81
+msgid "Goto :ref:`install-short` to the extract and compile instructions."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:84
+msgid "git"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:85
+msgid "To download the repository"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:93
+msgid ""
+"Goto :ref:`install-short` to the compile instructions (there is no tar "
+"ball)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:100
+msgid "Enabling and upgrading in the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:103
+msgid "Enabling the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:104
+msgid ""
+"pgRouting is an extension and depends on postGIS. Enabling postGIS before "
+"enabling pgRouting in the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:113
+msgid "Upgrading the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:114
+msgid ""
+"To upgrade pgRouting in the database to version 2.4.0 use the following "
+"command:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:122
+msgid ""
+"More information can be found in "
+"https://www.postgresql.org/docs/current/static/sql-createextension.html"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:128
+msgid "Dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:131
+msgid "Compilation Dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:132
+msgid ""
+"To be able to compile pgRouting, make sure that the following dependencies "
+"are met:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:134
+msgid "C and C++0x compilers * g++ version >= 4.8"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:136
+msgid "Postgresql version >= 9.2"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:137
+msgid "PostGIS version >= 2.0"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:138
+msgid "The Boost Graph Library (BGL). Version >= 1.46"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:139
+msgid "CMake >= 2.8.8"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:140
+msgid "CGAL >=  4.2"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:144
+msgid "optional dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:145
+msgid "For user's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:147
+msgid "Sphinx >= 1.1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:148
+msgid "Latex"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:150
+msgid "For developer's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:152
+msgid "Doxygen >= 1.7"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:154
+msgid "For testing"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:156
+msgid "pgtap"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:157
+msgid "pg_prove"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:161
+msgid "Example: Installing dependencies on linux"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:162
+msgid "Installing the compilation dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:174
+msgid "Installing the optional dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:188
+msgid "Configuring"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:190
+msgid "pgRouting uses the `cmake` system to do the configuration."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:192
+msgid "The build directory is different from the source directory"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:194
+msgid "Create the build directory"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:201
+msgid "Configurable variables"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:205
+msgid "To see the variables that can be configured"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:213
+msgid "Configuring The Documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:214
+msgid ""
+"Most of the effort of the documentation has being on the HTML files. Some "
+"variables for the documentation:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:218
+msgid "Variable"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:218
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:218
+msgid "Comment"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:220
+msgid "WITH_DOC"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:220
+#: ../../build/doc/pgRouting-installation.rst:223
+#: ../../build/doc/pgRouting-installation.rst:224
+#: ../../build/doc/pgRouting-installation.rst:225
+msgid "BOOL=OFF"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:220
+msgid "Turn on/off building the documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:221
+msgid "BUILD_HTML"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:221
+#: ../../build/doc/pgRouting-installation.rst:222
+msgid "BOOL=ON"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:221
+msgid "If ON, turn on/off building HTML for user's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:222
+msgid "BUILD_DOXY"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:222
+msgid "If ON, turn on/off building HTML for developer's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:223
+msgid "BUILD_LATEX"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:223
+msgid "If ON, turn on/off building PDF"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:224
+msgid "BUILD_MAN"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:224
+msgid "If ON, turn on/off building MAN pages"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:225
+msgid "DOC_USE_BOOTSTRAP"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:225
+msgid "If ON, use sphinx-bootstrap for HTML pages of the users documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:228
+msgid "Configuring with documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:234
+msgid "Most of the effort of the documentation has being on the html files."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:240
+msgid "Building"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:242
+msgid "Using ``make`` to build the code and the documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:244
+msgid "The following instructions start from *path/to/pgrouting/build*"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:253
+msgid ""
+"We have tested on several platforms, For installing or reinstalling all the "
+"steps are needed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:255
+msgid "The sql signatures are configured and build in the ``cmake`` command."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:258
+msgid "MinGW on Windows"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:269
+msgid "Linux"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:270
+msgid "The following instructions start from *path/to/pgrouting*"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:280
+msgid "When the configuration changes:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:286
+msgid "and start the build process as mentioned above."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:291
+msgid "Testing"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:293
+msgid "Currently there is no :code:`make test` and testing is done as follows"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:295
+msgid "The following instructions start from *path/to/pgrouting/*"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:305
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:308
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:309
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:310
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgRouting-introduction.po b/locale/de/LC_MESSAGES/pgRouting-introduction.po
new file mode 100644
index 0000000..2f5927b
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgRouting-introduction.po
@@ -0,0 +1,222 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgRouting-introduction.rst:13
+msgid "Introduction"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:15
+msgid ""
+"pgRouting is an extension of `PostGIS <http://postgis.net>`_ and `PostgreSQL"
+" <http://postgresql.org>`_ geospatial database and adds routing and other "
+"network analysis functionality. A predecessor of pgRouting – pgDijkstra, "
+"written by Sylvain Pasche from `Camptocamp <http://camptocamp.com>`_, was "
+"later extended by `Orkney <http://www.orkney.co.jp>`_ and renamed to "
+"pgRouting. The project is now supported and maintained by `Georepublic "
+"<http://georepublic.info>`_, `iMaptools <http://imaptools.com/>`__ and a "
+"broad user community."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:17
+msgid ""
+"pgRouting is an `OSGeo Labs <http://wiki.osgeo.org/wiki/OSGeo_Labs>`_ "
+"project of the `OSGeo Foundation <http://osgeo.org>`_ and included on `OSGeo"
+" Live <http://live.osgeo.org/>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:23
+msgid "License"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:25
+msgid "The following licenses can be found in pgRouting:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:30
+msgid "**License**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:32
+msgid "GNU General Public License, version 2"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:33
+msgid ""
+"Most features of pgRouting are available under `GNU General Public License, "
+"version 2 <http://www.gnu.org/licenses/gpl-2.0.html>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:34
+msgid "Boost Software License - Version 1.0"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:35
+msgid ""
+"Some Boost extensions are available under `Boost Software License - Version "
+"1.0 <http://www.boost.org/LICENSE_1_0.txt>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:36
+msgid "MIT-X License"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:37
+msgid ""
+"Some code contributed by iMaptools.com is available under MIT-X license."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:38
+msgid "Creative Commons Attribution-Share Alike 3.0 License"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:39
+msgid ""
+"The pgRouting Manual is licensed under a `Creative Commons Attribution-Share"
+" Alike 3.0 License <http://creativecommons.org/licenses/by-sa/3.0/>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:41
+msgid ""
+"In general license information should be included in the header of each "
+"source file."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:45
+msgid "Contributors"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:48
+msgid "This Release Contributors"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:51
+#: ../../build/doc/pgRouting-introduction.rst:71
+msgid "Individuals (in alphabetical order)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:53
+msgid "Maoguang Wang, Vidhan Jain, Virginia Vergara"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:55
+msgid ""
+"And all the people that give us a little of their time making comments, "
+"finding issues, making pull requests etc."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:58
+#: ../../build/doc/pgRouting-introduction.rst:76
+msgid "Corporate Sponsors (in alphabetical order)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:60
+#: ../../build/doc/pgRouting-introduction.rst:78
+msgid ""
+"These are corporate entities that have contributed developer time, hosting, "
+"or direct monetary funding to the pgRouting project:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:62
+msgid "`Georepublic <https://georepublic.info/en/>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:63
+msgid ""
+"`Google Summer of Code <https://developers.google.com/open-source/gsoc/>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:64
+msgid "`iMaptools <http://imaptools.com>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:65
+msgid "`Paragon Corporation <http://www.paragoncorporation.com/>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:68
+msgid "Contributors Past & Present:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:73
+msgid ""
+"Akio Takubo, Andrea Nardelli, Anton Patrushev, Ashraf Hossain, Christian "
+"Gonzalez, Daniel Kastl, Dave Potts, David Techer, Denis Rykov, Ema Miyawaki,"
+" Florian Thurkow, Frederic Junod, Gerald Fenoy, Jay Mahadeokar, Jinfu Leng, "
+"Kai Behncke, Kishore Kumar, Ko Nagase, Manikata Kondeti, Mario Basa, Martin "
+"Wiesenhaan,  Maxim Dubinin, Maoguang Wang, Mohamed Zia, Mukul Priya, Razequl"
+" Islam, Regina Obe, Rohith Reddy, Sarthak Agarwal, Stephen Woodbridge, "
+"Sylvain Housseman, Sylvain Pasche, Vidhan Jain, Virginia Vergara"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:80
+msgid "Camptocamp"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:81
+msgid "CSIS (University of Tokyo)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:82
+msgid "Georepublic"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:83
+msgid "Google Summer of Code"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:84
+msgid "iMaptools"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:85
+msgid "Orkney"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:86
+msgid "Paragon Corporation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:90
+msgid "More Information"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:92
+msgid ""
+"The latest software, documentation and news items are available at the "
+"pgRouting web site http://pgrouting.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:93
+msgid ""
+"PostgreSQL database server at the PostgreSQL main site "
+"http://www.postgresql.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:94
+msgid "PostGIS extension at the PostGIS project web site http://postgis.net."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:95
+msgid "Boost C++ source libraries at http://www.boost.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:96
+msgid ""
+"Computational Geometry Algorithms Library (CGAL) at http://www.cgal.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:97
+msgid ""
+"The Migration guide can be found at "
+"https://github.com/pgRouting/pgrouting/wiki/Migration-Guide."
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_KSP.po b/locale/de/LC_MESSAGES/pgr_KSP.po
new file mode 100644
index 0000000..2ace271
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_KSP.po
@@ -0,0 +1,402 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_KSP.rst:13
+msgid "pgr_KSP"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:18
+msgid "``pgr_KSP`` — Returns the \"K\" shortest paths."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:27
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:28
+msgid "Signature change 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:32
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:34
+msgid ""
+"The K shortest path routing algorithm based on Yen's algorithm. \"K\" is the"
+" number of shortest paths desired."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:37
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:46
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:52
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:64
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:73
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_KSP.rst:83
+#: ../../build/doc/pgr_KSP.rst:103
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_KSP.rst:83
+#: ../../build/doc/pgr_KSP.rst:103
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_KSP.rst:83
+#: ../../build/doc/pgr_KSP.rst:103
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14 ../../build/doc/pgr_KSP.rst:110
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:80
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:85
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:85
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:85
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:86
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:86 ../../build/doc/pgr_KSP.rst:87
+#: ../../build/doc/pgr_KSP.rst:107 ../../build/doc/pgr_KSP.rst:108
+#: ../../build/doc/pgr_KSP.rst:109
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:86
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:87
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:87
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:88
+msgid "**k**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:88 ../../build/doc/pgr_KSP.rst:105
+#: ../../build/doc/pgr_KSP.rst:106
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:88
+msgid "The desiered number of paths."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:89
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:89 ../../build/doc/pgr_KSP.rst:90
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:89
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:90
+msgid "**heap_paths**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:90
+msgid ""
+"(optional). When ``true`` returns all the paths stored in the process heap. "
+"Default is ``false`` which only returns ``k`` paths."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:93
+msgid ""
+"Roughly, if the shortest path has ``N`` edges, the heap will contain about "
+"than ``N * k`` paths for small value of ``k`` and ``k > 1``."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:98
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:100
+msgid ""
+"Returns set of ``(seq, path_seq, path_id, node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:105
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:105
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:106
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:106
+msgid ""
+"Relative position in the path of ``node`` and ``edge``. Has value **1** for "
+"the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:107
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:107
+msgid ""
+"Path identifier. The ordering of the paths For two paths i, j if i < j then "
+"agg_cost(i) <= agg_cost(j)."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:108
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:108
+msgid "Identifier of the node in the path."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:109
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:109
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the route."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:110 ../../build/doc/pgr_KSP.rst:111
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:110
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:111
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:111
+msgid "Aggregate cost from ``start_vid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:115
+msgid ""
+"During the transition to 3.0, because pgr_ksp version 2.0 doesn't have "
+"defined a directed flag nor a heap_path flag, when pgr_ksp is used with only"
+" one flag version 2.0 signature will be used."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:119
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:122
+msgid "Examples to handle the one flag to choose signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:124 ../../build/doc/pgr_KSP.rst:134
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:132
+msgid ""
+"Examples for queries marked as ``directed`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:143
+msgid ""
+"Examples for queries marked as ``undirected`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:145
+msgid "The examples in this section use the following :ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:153
+msgid "Examples for queries marked as ``directed`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:155
+msgid "The examples in this section use the following :ref:`fig3`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:164
+msgid "Examples for queries marked as ``undirected`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:166
+msgid "The examples in this section use the following :ref:`fig4`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:173
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:175
+msgid "http://en.wikipedia.org/wiki/K_shortest_path_routing"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:176
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:179
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:180
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:181
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_TSP.po b/locale/de/LC_MESSAGES/pgr_TSP.po
new file mode 100644
index 0000000..a9fecef
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_TSP.po
@@ -0,0 +1,224 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_TSP.rst:13
+msgid "pgr_TSP"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:18
+msgid "``pgr_TSP`` - Returns a route that visits all the nodes exactly once."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:21
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:22
+msgid "Signature changed 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:26
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:28
+msgid ""
+"The travelling salesman problem (TSP) or travelling salesperson problem asks"
+" the following question:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:30
+msgid ""
+"Given a list of cities and the distances between each pair of cities, what "
+"is the shortest possible route that visits each city exactly once and "
+"returns to the origin city?"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:32
+msgid ""
+"This implementation uses simulated annealing to return the approximate "
+"solution when the input is given in the form of matrix cell contents. The "
+"matrix information must be symmetrical."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:37
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:58
+msgid "Basic Use"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:67
+msgid ""
+"Because the documentation examples are auto generated and tested for non "
+"changing results, and the default is to have random execution, the example "
+"is wrapping the actual call."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:81
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:96
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:103
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:106
+msgid "Description of the Matrix Cell SQL query"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:109
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:109
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:109
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:111
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:111 ../../build/doc/pgr_TSP.rst:112
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:111
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:112
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:112
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:113
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:113
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:113
+msgid "Cost for going from start_vid to end_vid"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:116
+msgid "Can be Used with:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:118
+msgid ":ref:`pgr_dijkstraCostmatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:119
+msgid ":ref:`pgr_withPointsCostmatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:120
+msgid ":ref:`pgr_floydWarshall`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:121
+msgid ":ref:`pgr_johnson`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:123
+msgid "To generate a symmetric matrix"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:125
+msgid "directed := false."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:127
+msgid ""
+"If using directed := true, the resulting non symmetric matrix must be "
+"converted to symmetric by fixing the non symmetric values according to your "
+"application needs."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:145
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:147
+msgid "Using with points of interest."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:149
+msgid "To generate a symmetric matrix:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:151
+msgid ""
+"the **side** information of pointsOfInterset is ignored by not including it "
+"in the query"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:152
+msgid "and **directed := false**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:158
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:163
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:165
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:166
+msgid "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:167
+msgid "http://en.wikipedia.org/wiki/Simulated_annealing"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:170
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:171
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:172
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_aStar.po b/locale/de/LC_MESSAGES/pgr_aStar.po
new file mode 100644
index 0000000..4e2ccb4
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_aStar.po
@@ -0,0 +1,642 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_aStar.rst:13
+msgid "pgr_aStar"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:18
+msgid "``pgr_aStar`` — Returns the shortest path using A* algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:26
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:27
+msgid "pgr_astar(one to one) 2.0.0, Signature changed 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:28
+msgid "pgr_astar(other signatures) 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:33
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:35
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:37
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:38
+msgid "Vertices of the graph are:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:40
+msgid "**positive** when it belongs to the edges_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:42
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:44
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:46
+msgid "The agg_cost the non included values (v, v) is 0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:48
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:50
+msgid "The agg_cost the non included values (u, v) is ∞"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:52
+msgid "When (x,y) coordinates for the same vertex identifier differ:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:54
+msgid "A random selection of the vertex's (x,y) coordinates is used."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:56
+msgid "Running time: :math:`O((E + V) * \\log V)`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:61
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:84
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:92
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:99
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:112
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:118
+msgid "Undirected using  Heuristic 2"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:130
+msgid "One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:139
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:138 ../../build/doc/pgr_aStar.rst:165
+#: ../../build/doc/pgr_aStar.rst:194
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:139 ../../build/doc/pgr_aStar.rst:166
+#: ../../build/doc/pgr_aStar.rst:195
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:141
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_astar` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:144
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_astar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:145
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:157
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:166
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:168
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_aStar` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:171
+msgid "The result is the union of the results of the one to one `pgr_aStar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:172 ../../build/doc/pgr_aStar.rst:201
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:186
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:195
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:197
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:200
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:203
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:217
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_aStar.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_aStar.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13 ../../build/doc/pgr_aStar.rst:234
+#: ../../build/doc/pgr_aStar.rst:235
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:228
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:231
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:233
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:233
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:233
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:234 ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:234
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:235 ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:235
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:236
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:236
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:236
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:238
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:239
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:241
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:241
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:241
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:243
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:244
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:245
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:246
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:247
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:248
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:250
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:250 ../../build/doc/pgr_aStar.rst:251
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:250
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:251
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:251
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:260
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:262
+msgid ":ref:`astar`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:263
+msgid ":doc:`sampledata`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:264
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:265
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:268
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:269
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:270
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_aStarCost.po b/locale/de/LC_MESSAGES/pgr_aStarCost.po
new file mode 100644
index 0000000..41e1637
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_aStarCost.po
@@ -0,0 +1,528 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_aStarCost.rst:13
+msgid "pgr_aStarCost -- proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:18
+msgid ""
+"``pgr_aStarCost`` — Returns the aggregate cost shortest path using "
+":ref:`astar` algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:26
+msgid "Availability: 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:28
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:46
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:53
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:60
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:72
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:78
+msgid "Setting a Heuristic"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:90
+msgid "One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:99
+msgid ""
+"This signature finds a path from one ``start_vid`` to each ``end_vid`` in "
+"``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:98 ../../build/doc/pgr_aStarCost.rst:125
+#: ../../build/doc/pgr_aStarCost.rst:154
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:99 ../../build/doc/pgr_aStarCost.rst:126
+#: ../../build/doc/pgr_aStarCost.rst:155
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:101
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_astar` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:104
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_astar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:105
+msgid ""
+"The extra ``end_vid`` column in the result is used to distinguish to which "
+"path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:117
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:126
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:128
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_aStar` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:131
+msgid "The result is the union of the results of the one to one `pgr_aStar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:132
+msgid ""
+"The extra ``start_vid`` column  in the result is used to distinguish to "
+"which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:146
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:155
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:157
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:160
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:161
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:163
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:177
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCost.rst:191
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCost.rst:191
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_aStarCost.rst:194 ../../build/doc/pgr_aStarCost.rst:195
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:188
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:191
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:193
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:193
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:193
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:194
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:194
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:195
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:195
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:196
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:196
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:196
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:198
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:199
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:201
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:201
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:201
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:203
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:204
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:205
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:206
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:207
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:208
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:210
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:210 ../../build/doc/pgr_aStarCost.rst:211
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:210
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. See "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:211
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:211
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:224
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:226
+msgid ":ref:`astar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:227
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:228
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:229
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:232
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:233
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:234
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_aStarCostMatrix.po b/locale/de/LC_MESSAGES/pgr_aStarCostMatrix.po
new file mode 100644
index 0000000..5193921
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_aStarCostMatrix.po
@@ -0,0 +1,457 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:13
+msgid "pgr_aStarCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:18
+msgid ""
+"``pgr_aStarCostMatrix`` - Calculates the a cost matrix using "
+":ref:`pgr_aStar`."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:33
+msgid "Availability: 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:37
+msgid "Using aStar algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:40
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:57
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:60
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:60
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:68
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:80
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:88
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:90
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:98
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:106
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:109
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:111
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:111
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:111
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:112
+msgid "**vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:112
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:112
+msgid "Array of vertices_identifiers."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:113
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:113
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:113
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:115
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:116
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:118
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:118
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:118
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:120
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:121
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:122
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:123
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:124
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:125
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:127
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:127
+#: ../../build/doc/pgr_aStarCostMatrix.rst:128
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:127
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:128
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:128
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:140
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:142
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:150
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:152
+msgid ":ref:`astar`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:153
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:154
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:155
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:158
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:159
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:160
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_alphaShape.po b/locale/de/LC_MESSAGES/pgr_alphaShape.po
new file mode 100644
index 0000000..851cd18
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_alphaShape.po
@@ -0,0 +1,169 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_alphaShape.rst:13
+msgid "pgr_alphaShape"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:21
+msgid "``pgr_alphaShape`` — Core function for alpha shape computation."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:27
+msgid ""
+"Returns a table with (x, y) rows that describe the vertices of an alpha "
+"shape."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:35
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:37
+msgid ""
+"``text`` a SQL query, which should return a set of rows with the following "
+"columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:43
+msgid "``int4`` identifier of the vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:44
+msgid "``float8`` x-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:45
+msgid "``float8`` y-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:47
+msgid ""
+"(optional) ``float8`` alpha value. If specified alpha value equals 0 "
+"(default), then optimal alpha value is used. For more information, see `CGAL"
+" - 2D Alpha Shapes "
+"<http://doc.cgal.org/latest/Alpha_shapes_2/group__PkgAlphaShape2.html>`_."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:50
+msgid "Returns a vertex record for each row:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:52
+msgid "x-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:53
+msgid "y-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:55
+msgid ""
+"If a result includes multiple outer/inner rings, return those with separator"
+" row (x=NULL and y=NULL)."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:58
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:59
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:60
+msgid ""
+"Added alpha argument with default 0 (use optimal value) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:61
+msgid ""
+"Supported to return multiple outer/inner ring coordinates with separator row"
+" (x=NULL and y=NULL) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:64
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:65
+msgid ""
+"PgRouting's alpha shape implementation has no way to control the order of "
+"the output points, so the actual output might different for the same input "
+"data. The first query, has the output ordered, he second query shows an "
+"example usage:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:70
+msgid "Example: the (ordered) results"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:76
+msgid "Example: calculating the area"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:77
+msgid "Steps:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:79
+msgid "Calculates the alpha shape"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:80
+msgid "the :code:`ORDER BY` clause is not used."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:81
+msgid "constructs a polygon"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:82
+msgid "and computes the area"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:90
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:93
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:95
+msgid ":ref:`pgr_drivingDistance` - Driving Distance"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:96
+msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:99
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:100
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:101
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_analyzeGraph.po b/locale/de/LC_MESSAGES/pgr_analyzeGraph.po
new file mode 100644
index 0000000..22237a6
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_analyzeGraph.po
@@ -0,0 +1,361 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_analyzeGraph.rst:13
+msgid "pgr_analyzeGraph"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:19
+msgid "``pgr_analyzeGraph`` — Analyzes the network topology."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:23
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:25
+#: ../../build/doc/pgr_analyzeGraph.rst:61
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:27
+#: ../../build/doc/pgr_analyzeGraph.rst:63
+msgid "``OK`` after the analysis has finished."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:28
+#: ../../build/doc/pgr_analyzeGraph.rst:69
+msgid "``FAIL`` when the analysis was not completed due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:43
+msgid "Prerequisites"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:44
+msgid ""
+"The  edge table to be analyzed must contain a source column and a target "
+"column filled with id's of the vertices of the segments and the "
+"corresponding vertices table <edge_table>_vertices_pgr that stores the "
+"vertices information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:46
+msgid ""
+"Use :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create the "
+"vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:47
+msgid ""
+"Use :ref:`pgr_createTopology <pgr_create_topology>` to create the topology "
+"and the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:50
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:51
+msgid "The analyze graph function accepts the following parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:53
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:54
+msgid ""
+"``float8`` Snapping tolerance of disconnected edges. (in projection unit)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:55
+msgid ""
+"``text``  Geometry column name of the network table. Default value is "
+"``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:56
+msgid ""
+"``text``  Primary key column name of the network table. Default value is "
+"``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:57
+msgid ""
+"``text`` Source column name of the network table. Default value is "
+"``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:58
+msgid ""
+"``text``  Target column name of the network table.  Default value is "
+"``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:59
+msgid ""
+"``text``   Condition to select  a subset or rows.  Default value is ``true``"
+" to indicate all rows."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:65
+msgid "Uses the vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:66
+msgid ""
+"Fills completely the ``cnt`` and ``chk`` columns of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:67
+msgid ""
+"Returns the analysis of the section of the network defined by  "
+"``rows_where``"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:71
+msgid "The vertices table is not found."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:72
+msgid ""
+"A required column of the Network table is not found or is not of the "
+"appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:73
+msgid "The condition is not well formed."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:74
+msgid "The names of source , target or id are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:75
+msgid "The SRID of the geometry could not be determined."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:79
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:80
+msgid ""
+"The vertices table can be created with :ref:`pgr_createVerticesTable "
+"<pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:82
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:84
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:85
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:86
+msgid "``integer``  Indicator that the vertex might have a problem."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:87
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:88
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:89
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:92
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:93
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:96
+msgid "Usage when the edge table's columns MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:99
+msgid "The simplest way to use pgr_analyzeGraph is:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:106
+msgid "When the arguments are given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:111
+msgid "We get the same result as the simplest way to use the function."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order: In this example, the column ``id`` of the table ``mytable`` is passed"
+" to the function as the geometry column, and the geometry column "
+"``the_geom`` is passed to the function as the id column."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:130
+#: ../../build/doc/pgr_analyzeGraph.rst:208
+msgid "When using the named notation"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:131
+#: ../../build/doc/pgr_analyzeGraph.rst:209
+msgid "The order of the parameters do not matter:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:141
+msgid ""
+"Parameters defined with a default value can be omitted, as long as the value"
+" matches the default:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:148
+#: ../../build/doc/pgr_analyzeGraph.rst:223
+msgid "Selecting rows using rows_where parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:149
+msgid ""
+"Selecting rows based on the id. Displays the analysis a the section of the "
+"network."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:155
+msgid ""
+"Selecting the rows where the geometry is near the geometry of row with "
+"``id`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:161
+msgid ""
+"Selecting the rows where the geometry is near the geometry of the row with "
+"``gid`` =100 of the table ``othertable``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:172
+msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:174
+msgid "For the following table"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:183
+msgid "Using positional notation:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:184
+msgid ""
+"The arguments need to be given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order: In this example, the column ``gid`` of the table ``mytable`` is "
+"passed to the function as the geometry column, and the geometry column "
+"``mygeom`` is passed to the function as the id column."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:219
+msgid ""
+"In this scenario omitting a parameter would create an error because the "
+"default values for the column names do not match the column names of the "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:224
+msgid "Selecting rows based on the id."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:234
+msgid ""
+"Selecting the rows WHERE the geometry is near the geometry of row with "
+"``id`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:246
+msgid ""
+"Selecting the rows WHERE the geometry is near the place='myhouse' of the "
+"table ``othertable``. (note the use of quote_literal)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:263
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:390
+msgid "The examples use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:394
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:396
+msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:397
+msgid ":ref:`pgr_analyze_oneway` to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:398
+msgid ""
+":ref:`pgr_createVerticesTable <pgr_create_vert_table>` to reconstruct the "
+"vertices table based on the source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:399
+msgid ""
+":ref:`pgr_nodeNetwork <pgr_node_network>` to create nodes to a not noded "
+"edge table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:402
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:403
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:404
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_analyzeOneWay.po b/locale/de/LC_MESSAGES/pgr_analyzeOneWay.po
new file mode 100644
index 0000000..627da76
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_analyzeOneWay.po
@@ -0,0 +1,290 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:13
+msgid "pgr_analyzeOneway"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:19
+msgid ""
+"``pgr_analyzeOneway`` — Analyzes oneway Sstreets and identifies flipped "
+"segments."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:23
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:25
+msgid ""
+"This function analyzes oneway streets in a graph and identifies any flipped "
+"segments."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:42
+msgid ""
+"The analyses of one way segments is pretty simple but can be a powerful "
+"tools to identifying some the potential problems created by setting the "
+"direction of a segment the wrong way. A node is a `source` if it has edges "
+"the exit from that node and no edges enter that node. Conversely, a node is "
+"a `sink` if all edges enter the node but none exit that node. For a `source`"
+" type node it is logically impossible to exist because no vehicle can exit "
+"the node if no vehicle and enter the node. Likewise, if you had a `sink` "
+"node you would have an infinite number of vehicle piling up on this node "
+"because you can enter it but not leave it."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:44
+msgid ""
+"So why do we care if the are not feasible? Well if the direction of an edge "
+"was reversed by mistake we could generate exactly these conditions. Think "
+"about a divided highway and on the north bound lane one segment got entered "
+"wrong or maybe a sequence of multiple segments got entered wrong or maybe "
+"this happened on a round-about. The result would be potentially a `source` "
+"and/or a `sink` node."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:46
+msgid ""
+"So by counting the number of edges entering and exiting each node we can "
+"identify both `source` and `sink` nodes so that you can look at those areas "
+"of your network to make repairs and/or report the problem back to your data "
+"vendor."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:49
+msgid "Prerequisites"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:50
+msgid ""
+"The  edge table to be analyzed must contain a source column and a target "
+"column filled with id's of the vertices of the segments and the "
+"corresponding vertices table <edge_table>_vertices_pgr that stores the "
+"vertices information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:52
+msgid ""
+"Use :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create the "
+"vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:53
+msgid ""
+"Use :ref:`pgr_createTopology <pgr_create_topology>` to create the topology "
+"and the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:56
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:57
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:58
+msgid "``text[]`` source node **in** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:59
+msgid "``text[]`` source node **out** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:60
+msgid "``text[]`` target node **in** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:61
+msgid "``text[]`` target node **out** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:62
+msgid ""
+"``text`` oneway column name name of the network table. Default value is "
+"``oneway``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:63
+msgid ""
+"``text`` Source column name of the network table. Default value is "
+"``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:64
+msgid ""
+"``text``  Target column name of the network table.  Default value is "
+"``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:65
+msgid ""
+"``boolean`` flag to treat oneway NULL values as bi-directional.  Default "
+"value is ``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:67
+msgid ""
+"It is strongly recommended to use the named notation. See "
+":ref:`pgr_createVerticesTable <pgr_create_vert_table>` or "
+":ref:`pgr_createTopology <pgr_create_topology>` for examples."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:70
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:72
+msgid "``OK`` after the analysis has finished."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:74
+msgid "Uses the vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:75
+msgid ""
+"Fills completely the ``ein`` and ``eout`` columns of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:77
+msgid "``FAIL`` when the analysis was not completed due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:79
+msgid "The vertices table is not found."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:80
+msgid ""
+"A required column of the Network table is not found or is not of the "
+"appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:81
+msgid "The names of source , target or oneway are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:83
+msgid ""
+"The rules are defined as an array of text strings that if match the "
+"``oneway`` value would be counted as ``true`` for the source or target "
+"**in** or **out** condition."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:86
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:87
+msgid ""
+"The vertices table can be created with :ref:`pgr_createVerticesTable "
+"<pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:89
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:91
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:92
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex."
+" See :ref:`pgr_analyzeGgraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:93
+msgid ""
+"``integer``  Indicator that the vertex might have a problem. See "
+":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:94
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as incoming."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:95
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as outgoing."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:96
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:100
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:101
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:105
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:129
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:133
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:135
+msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:136
+msgid ":ref:`analytics` for an overview of the analysis of a graph."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:137
+msgid ""
+":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:138
+msgid ""
+":ref:`pgr_create_vert_table` to reconstruct the vertices table based on the "
+"source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:141
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:142
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:143
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_articulationPoints.po b/locale/de/LC_MESSAGES/pgr_articulationPoints.po
new file mode 100644
index 0000000..225a3d6
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_articulationPoints.po
@@ -0,0 +1,316 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_articulationPoints.rst:13
+msgid "pgr_articulationPoints - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:16
+msgid ""
+"``pgr_articulationPoints`` - Return the articulation points of an undirected"
+" graph. In particular, the algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:22
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:30
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:32
+msgid ""
+"Those vertices that belong to more than one biconnected component are called"
+" articulation points or, equivalently, cut vertices. Articulation points are"
+" vertices whose removal would increase the number of connected components in"
+" the graph. This implementation can only be used with an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:39
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:41
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:43
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:45
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:47
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:62
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:75
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the return values for articulation points"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:91
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:93
+msgid "http://en.wikipedia.org/wiki/Biconnected_component"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:94
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:97
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:98
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:99
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_bdAstar.po b/locale/de/LC_MESSAGES/pgr_bdAstar.po
new file mode 100644
index 0000000..fdfaa05
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_bdAstar.po
@@ -0,0 +1,669 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdAstar.rst:13
+msgid "pgr_bdAstar"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:18
+msgid "``pgr_bdAstar`` — Returns the shortest path using A* algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:26
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:27
+msgid "pgr_bdAstar(one to one) 2.0.0, Signature change on 2.5.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:28
+msgid "pgr_bdAstar(other signatures) 2.5.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:32
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:54
+msgid ""
+"Using these signatures, will load once the graph and perform several one to "
+"one `pgr_bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:56
+msgid ""
+"The result is the union of the results of the one to one `pgr_bdAStar`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:57
+msgid ""
+"The extra ``start_vid`` and/or ``end_vid`` in the result is used to "
+"distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:61
+msgid "Avaliability"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:62
+msgid "pgr_bdAstar(one to one) 2.0, signature change on 2.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:63
+msgid "pgr_bdAstar(other signatures) 2.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:68
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:76
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:87
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to the ``end_vid``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:84
+msgid "on a **directed** graph"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:85
+msgid "with **heuristic**'s value 5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:86
+msgid "with **factor**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:87
+msgid "with **epsilon**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:89
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:102
+msgid "pgr_bdAstar One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:111
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to the ``end_vid``"
+" allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:109
+msgid "**heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:110 ../../build/doc/pgr_bdAstar.rst:137
+#: ../../build/doc/pgr_bdAstar.rst:162 ../../build/doc/pgr_bdAstar.rst:186
+msgid "and/or **factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:111 ../../build/doc/pgr_bdAstar.rst:138
+#: ../../build/doc/pgr_bdAstar.rst:163 ../../build/doc/pgr_bdAstar.rst:187
+msgid "and/or **epsilon**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:114
+msgid ""
+"In the One to One signature, because of the deprecated signature existence, "
+"it is compulsory to indicate if the graph is **directed** or **undirected**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:116
+msgid "Directed using Heuristic 2"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:127
+msgid "pgr_bdAstar One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:139
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to each "
+"``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:135 ../../build/doc/pgr_bdAstar.rst:160
+#: ../../build/doc/pgr_bdAstar.rst:184
+msgid "if the graph is **directed** or **undirected**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:136 ../../build/doc/pgr_bdAstar.rst:161
+#: ../../build/doc/pgr_bdAstar.rst:185
+msgid "and/or **heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:141
+msgid "Directed using Heuristic 3 and a factor of 3.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:152
+msgid "pgr_bdAstar Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:163
+msgid ""
+"This usage finds the shortest path from each ``start_vid`` in ``start_vids``"
+" to the ``end_vid`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:165
+msgid "Undirected graph with Heuristic 4"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:176
+msgid "pgr_bdAstar Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:187
+msgid ""
+"This usage finds the shortest path from each ``start_vid`` in ``start_vids``"
+" to each ``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:189
+msgid "Directed graph with a factor of 0.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:196
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:10 ../../build/doc/bdAstar-family.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11 ../../build/doc/bdAstar-family.rst:13
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:16
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:21
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:22
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:23
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:24
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:25
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:26
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28 ../../build/doc/bdAstar-family.rst:29
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:213
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:215
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:216
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:217
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:218
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:221
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:222
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:223
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_bdAstarCost.po b/locale/de/LC_MESSAGES/pgr_bdAstarCost.po
new file mode 100644
index 0000000..9b72e10
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_bdAstarCost.po
@@ -0,0 +1,594 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdAstarCost.rst:13
+msgid "pgr_bdAstarCost - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:18
+msgid "``pgr_bdAstarCost`` — Returns the shortest path using A* algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:26
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:32
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:46
+msgid ""
+"Using these signatures, will load once the graph and perform several one to "
+"one `pgr_bdAstarCost`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:48
+msgid ""
+"The result is the union of the results of the one to one `pgr_bdAstarCost`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:49
+msgid ""
+"The extra ``start_vid`` and/or ``end_vid`` in the result is used to "
+"distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:56
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:64
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:75
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to the ``end_vid``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:72
+msgid "on a **directed** graph"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:73
+msgid "with **heuristic**'s value 5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:74
+msgid "with **factor**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:75
+msgid "with **epsilon**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:77
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:90
+msgid "pgr_bdAstarCost One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:100
+#: ../../build/doc/pgr_bdAstarCost.rst:128
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to each "
+"``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:97
+#: ../../build/doc/pgr_bdAstarCost.rst:124
+#: ../../build/doc/pgr_bdAstarCost.rst:149
+#: ../../build/doc/pgr_bdAstarCost.rst:173
+msgid "if the graph is **directed** or **undirected**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:98
+msgid "**heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:99
+#: ../../build/doc/pgr_bdAstarCost.rst:126
+#: ../../build/doc/pgr_bdAstarCost.rst:151
+#: ../../build/doc/pgr_bdAstarCost.rst:175
+msgid "and/or **factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:100
+#: ../../build/doc/pgr_bdAstarCost.rst:127
+#: ../../build/doc/pgr_bdAstarCost.rst:152
+#: ../../build/doc/pgr_bdAstarCost.rst:176
+msgid "and/or **epsilon**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:103
+msgid ""
+"In the One to One signature, because of the deprecated signature existence, "
+"it is compulsory to indicate if the graph is **directed** or **undirected**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:105
+msgid "Directed using Heuristic 2"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:116
+msgid "pgr_bdAstarCost One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:125
+#: ../../build/doc/pgr_bdAstarCost.rst:150
+#: ../../build/doc/pgr_bdAstarCost.rst:174
+msgid "and/or **heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:130
+msgid "Directed using Heuristic 3 and a factor of 3.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:141
+msgid "pgr_bdAstarCost Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:152
+msgid ""
+"This usage finds the shortest path from each ``start_vid`` in ``start_vids``"
+" to the ``end_vid`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:154
+msgid "Undirected graph with Heuristic 4"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:165
+msgid "pgr_bdAstarCost Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:176
+msgid ""
+"This usage finds the shortest path from each ``start_vid`` in ``start_vids``"
+" to each ``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:178
+msgid "Directed graph with a factor of 0.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:185
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:10 ../../build/doc/bdAstar-family.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11 ../../build/doc/bdAstar-family.rst:13
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:16
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:21
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:22
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:23
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:24
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:25
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:26
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28 ../../build/doc/bdAstar-family.rst:29
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:202
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:204
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:205
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:206
+msgid ""
+"`Migration Guide <https://github.com/cvvergara/pgrouting/wiki/Migration-"
+"Guide#pgr_bdastar>`_"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:207
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:208
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:211
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:212
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:213
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_bdAstarCostMatrix.po b/locale/de/LC_MESSAGES/pgr_bdAstarCostMatrix.po
new file mode 100644
index 0000000..c8738fa
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_bdAstarCostMatrix.po
@@ -0,0 +1,536 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:13
+msgid "pgr_bdAstarCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:18
+msgid ""
+"``pgr_bdAstarCostMatrix`` - Calculates the a cost matrix using "
+":ref:`pgr_bdAstar`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:27
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:35
+msgid "Using Dijkstra algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:38
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:49
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:55
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:68
+msgid ""
+"This usage calculates the cost from the each ``start_vid`` in ``start_vids``"
+" to  each ``start_vid`` in ``start_vids``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:64
+msgid "on a **directed** graph"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:65
+msgid "with **heuristic**'s value 5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:66
+msgid "with **factor**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:67
+msgid "with **epsilon**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:70
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:82
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:95
+msgid ""
+"This usage calculates the cost from the each ``start_vid`` in ``start_vids``"
+" to  each ``start_vid`` in ``start_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:91
+msgid "if the graph is **directed** or **undirected**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:92
+msgid "**heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:93
+msgid "and/or **factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:94
+msgid "and/or **epsilon**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:97
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:99
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:107
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:10 ../../build/doc/bdAstar-family.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11 ../../build/doc/bdAstar-family.rst:13
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:16
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:21
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:22
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:23
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:24
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:25
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:26
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28 ../../build/doc/bdAstar-family.rst:29
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:123
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:125
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:133
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:135
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:136
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:137
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:138
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:141
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:142
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:143
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_bdDijkstra.po b/locale/de/LC_MESSAGES/pgr_bdDijkstra.po
new file mode 100644
index 0000000..b05e40f
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_bdDijkstra.po
@@ -0,0 +1,541 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdDijkstra.rst:13
+msgid "pgr_bdDijkstra"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:15
+msgid ""
+"``pgr_bdDijkstra`` — Returns the shortest path(s) using Bidirectional "
+"Dijkstra algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:23
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:24
+msgid "pgr_bdDijkstra(one to one) 2.0.0, Signature changed 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:25
+msgid "pgr_bdDijkstra(other signatures) 2.5.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:28
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:54
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:60
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:67
+msgid ""
+"The minimal signature is for a **directed** graph from one ``start_vid`` to "
+"one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:80
+msgid "pgr_bdDijkstra One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:87
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:89
+#: ../../build/doc/pgr_bdDijkstra.rst:112
+#: ../../build/doc/pgr_bdDijkstra.rst:141
+#: ../../build/doc/pgr_bdDijkstra.rst:170
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:90
+#: ../../build/doc/pgr_bdDijkstra.rst:113
+#: ../../build/doc/pgr_bdDijkstra.rst:142
+#: ../../build/doc/pgr_bdDijkstra.rst:171
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:103
+msgid "pgr_bdDijkstra One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:110
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:115
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_dijkstra` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:118
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:119
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:132
+msgid "pgr_bdDijkstra Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:139
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:144
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_dijkstra` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:147
+#: ../../build/doc/pgr_bdDijkstra.rst:176
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:148
+#: ../../build/doc/pgr_bdDijkstra.rst:177
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:161
+msgid "pgr_bdDijkstra Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:168
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:173
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:179
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:190
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10 ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11 ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:208
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:210
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:211
+msgid ":ref:`bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:212
+msgid ""
+"http://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/EPP%20shortest%20path%20algorithms.pdf"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:213
+msgid "https://en.wikipedia.org/wiki/Bidirectional_search"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:216
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:217
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:218
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_bdDijkstraCost.po b/locale/de/LC_MESSAGES/pgr_bdDijkstraCost.po
new file mode 100644
index 0000000..0516529
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_bdDijkstraCost.po
@@ -0,0 +1,470 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:13
+msgid "pgr_bdDijkstraCost - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:15
+msgid ""
+"``pgr_bdDijkstraCost`` — Returns the shortest path(s)'s cost using "
+"Bidirectional Dijkstra algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:23
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:30
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:46
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:52
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:59
+msgid ""
+"The minimal signature is for a **directed** graph from one ``start_vid`` to "
+"one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:72
+msgid "pgr_bdDijkstraCost One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:81
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:80
+#: ../../build/doc/pgr_bdDijkstraCost.rst:102
+#: ../../build/doc/pgr_bdDijkstraCost.rst:130
+#: ../../build/doc/pgr_bdDijkstraCost.rst:158
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:81
+#: ../../build/doc/pgr_bdDijkstraCost.rst:103
+#: ../../build/doc/pgr_bdDijkstraCost.rst:131
+#: ../../build/doc/pgr_bdDijkstraCost.rst:159
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:94
+msgid "pgr_bdDijkstraCost One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:103
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:105
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_dijkstra` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:108
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:109
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:122
+msgid "pgr_bdDijkstraCost Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:131
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:133
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_dijkstra` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:136
+#: ../../build/doc/pgr_bdDijkstraCost.rst:164
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:137
+#: ../../build/doc/pgr_bdDijkstraCost.rst:165
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:150
+msgid "pgr_bdDijkstraCost Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:159
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:161
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:167
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:178
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10 ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11 ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:195
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:197
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:198
+msgid ":ref:`pgr_bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:199
+msgid ""
+"http://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/EPP%20shortest%20path%20algorithms.pdf"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:200
+msgid "https://en.wikipedia.org/wiki/Bidirectional_search"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:203
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:204
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:205
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_bdDijkstraCostMatrix.po b/locale/de/LC_MESSAGES/pgr_bdDijkstraCostMatrix.po
new file mode 100644
index 0000000..0b0a2ae
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_bdDijkstraCostMatrix.po
@@ -0,0 +1,382 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:13
+msgid "pgr_bdDijkstraCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:18
+msgid ""
+"``pgr_bdDijkstraCostMatrix`` - Calculates the a cost matrix using "
+":ref:`pgr_bdDijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:27
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:35
+msgid "Using Dijkstra algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:38
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:49
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:55
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:58
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:58
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:66
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:78
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:86
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:88
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:96
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:108
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:108
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:105
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:108
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:110
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:110
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:110
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:111
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:111
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:111
+msgid "Array of identifiers of the vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:112
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:112
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:112
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:122
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:124
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:132
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:134
+msgid ":ref:`bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:135
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:136
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:137
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:140
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:141
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:142
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_biconnectedComponents.po b/locale/de/LC_MESSAGES/pgr_biconnectedComponents.po
new file mode 100644
index 0000000..f4db188
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_biconnectedComponents.po
@@ -0,0 +1,349 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:13
+msgid "pgr_biconnectedComponents - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:15
+msgid ""
+"``pgr_biconnectedComponents`` — Return the biconnected components of an "
+"undirected graph. In particular, the algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:31
+msgid ""
+"The biconnected components of an undirected graph are the maximal subsets of"
+" vertices such that the removal of a vertex from particular component will "
+"not disconnect the component. Unlike connected components, vertices may "
+"belong to multiple biconnected components. Vertices can be present in "
+"multiple biconnected components, but each edge can only be contained in a "
+"single biconnected component. So, the output only has edge version."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:36
+msgid "This implementation can only be used with an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:39
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:41
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:43
+msgid "Components are described by edges"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:45
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:47
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:48
+msgid "`edge` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:50
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:53
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:65
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:78
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:14
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid ""
+"Description of the return values for biconnected components, connected "
+"components (edge version) and strongly connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, component, n_seq, edge)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid ""
+"Component identifier. It is equal to the minimum edge identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:94
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:96
+msgid "http://en.wikipedia.org/wiki/Biconnected_component"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:97
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:100
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:101
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:102
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_boykovKolmogorov.po b/locale/de/LC_MESSAGES/pgr_boykovKolmogorov.po
new file mode 100644
index 0000000..84d76a4
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_boykovKolmogorov.po
@@ -0,0 +1,435 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:14
+msgid "pgr_boykovKolmogorov - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:18
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:20
+msgid ""
+"``pgr_boykovKolmogorov`` — Calculates the flow on the graph edges that "
+"maximizes the flow from the sources to the targets using Boykov Kolmogorov "
+"algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:29
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:30
+msgid "Renamed 2.5.0, Previous name pgr_maxFlowBoykovKolmogorov"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:31
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:8
+msgid ""
+"When the maximum flow is 0 then there is no flow and **EMPTY SET** is "
+"returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:12
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:15
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid ""
+"Creates a **super source** and edges to all the source(s), and a **super "
+"target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid ""
+"The maximum flow through the graph is guaranteed to be the value returned by"
+" :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and"
+" can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:42
+msgid "Running time: Polynomial"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:45
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:61
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:63
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:82
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:84
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:103
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:105
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:124
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:126
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:141
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:4
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10 ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11 ../../build/doc/pgr_maxFlow.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:12
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:159
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:161
+msgid ""
+":ref:`maxFlow`, :ref:`pgr_pushRelabel <pgr_pushRelabel>`, "
+":ref:`pgr_EdmondsKarp <pgr_edmondsKarp>`"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:162
+msgid "http://www.boost.org/libs/graph/doc/boykov_kolmogorov_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:165
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:166
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:167
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_bridges.po b/locale/de/LC_MESSAGES/pgr_bridges.po
new file mode 100644
index 0000000..a80bf4e
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_bridges.po
@@ -0,0 +1,310 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bridges.rst:13
+msgid "pgr_bridges - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:16
+msgid "``pgr_bridges`` - Return the bridges of an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:31
+msgid ""
+"A bridge is an edge of an undirected graph whose deletion increases its "
+"number of connected components. This implementation can only be used with an"
+" undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:36
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:38
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:40
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:42
+msgid "`edge` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:44
+msgid "Running time: :math:`O(E * (V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:47
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:59
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:72
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the return values for bridges"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:88
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:90
+msgid "http://en.wikipedia.org/wiki/Bridge_%28graph_theory%29"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:91
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:94
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:95
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:96
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_connectedComponents.po b/locale/de/LC_MESSAGES/pgr_connectedComponents.po
new file mode 100644
index 0000000..2474096
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_connectedComponents.po
@@ -0,0 +1,346 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_connectedComponents.rst:13
+msgid "pgr_connectedComponents - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:16
+msgid ""
+"``pgr_connectedComponents`` — Return the connected components of an "
+"undirected graph using a DFS-based approach. In particular, the algorithm "
+"implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:22
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:30
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:32
+msgid ""
+"A connected component of an undirected graph is a set of vertices that are "
+"all reachable from each other. This implementation can only be used with an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:37
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:39
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:41
+msgid "Components are described by vertices"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:43
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:45
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:46
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:48
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:63
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:76
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid ""
+"Description of the return values for connected components and strongly "
+"connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, component, n_seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid ""
+"Component identifier. It is equal to the minimum node identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:92
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:94
+msgid "http://en.wikipedia.org/wiki/Connected_component_%28graph_theory%29"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:95
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:98
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:99
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:100
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_contractGraph.po b/locale/de/LC_MESSAGES/pgr_contractGraph.po
new file mode 100644
index 0000000..8d27664
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_contractGraph.po
@@ -0,0 +1,488 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_contractGraph.rst:13
+msgid "pgr_contractGraph - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:15
+msgid ""
+"``pgr_contractGraph`` — Performs graph contraction and returns the "
+"contracted vertices and edges."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:23
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:30
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:32
+msgid ""
+"Contraction reduces the size of the graph by removing some of the vertices "
+"and edges and, for example, might add edges that represent a sequence of "
+"original edges decreasing the total time and space used in graph algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:35
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:52
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:38
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:40
+msgid "There are two types of contraction methods used namely,"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:42
+msgid "Dead End Contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:43
+msgid "Linear Contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:45
+msgid "The values returned include the added edges and contracted vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:47
+msgid "The returned values are ordered as follows:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:49
+msgid "column `id` ascending when type = `v`"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:50
+msgid "column `id` descending when type = `e`"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:55
+msgid "Signature Summary:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:57
+msgid "The pgr_contractGraph function has the following signatures:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:68
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:74
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:80
+msgid "Making a dead end contraction and a linear contraction."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:87
+msgid "Complete signature"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:93
+msgid ""
+"Making a dead end contraction and a linear contraction and vertex 2 is "
+"forbidden from contraction"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_contractGraph.rst:109
+#: ../../build/doc/pgr_contractGraph.rst:130
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_contractGraph.rst:109
+#: ../../build/doc/pgr_contractGraph.rst:130
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_contractGraph.rst:109
+#: ../../build/doc/pgr_contractGraph.rst:130
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgr_contractGraph.rst:136
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_contractGraph.rst:146
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_contractGraph.rst:147
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_contractGraph.rst:148
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:106
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:111
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:111
+#: ../../build/doc/pgr_contractGraph.rst:133
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:111
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:112
+msgid "**contraction_order**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:112
+#: ../../build/doc/pgr_contractGraph.rst:115
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:113
+msgid "Ordered contraction operations."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:113
+msgid "1 = Dead end contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:114
+msgid "2 = Linear contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:115
+msgid "**forbidden_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:115
+msgid ""
+"(optional). Identifiers of vertices forbidden from contraction. Default is "
+"an empty array."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:116
+msgid "**max_cycles**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:116
+#: ../../build/doc/pgr_contractGraph.rst:132
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:116
+msgid ""
+"(optional). Number of times the contraction operations on "
+"`contraction_order` will be performed. Default is 1."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:117
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:117
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:117
+msgid "When ``true`` the graph is considered as `Directed`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:118
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:123
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:125
+msgid ""
+"RETURNS SETOF  (seq, type, id, contracted_vertices, source, target, cost)"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:127
+msgid "The function returns a single row. The columns of the row are:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:132
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:132
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:133
+msgid "**type**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:134
+msgid "Type of the `id`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:134
+msgid "'v' when `id` is an identifier of a vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:135
+msgid "'e' when `id` is an identifier of an edge."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:136
+#: ../../build/doc/pgr_contractGraph.rst:146
+#: ../../build/doc/pgr_contractGraph.rst:147
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:143
+msgid "Identifier of:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:137
+msgid "the  vertex when `type = 'v'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:139
+msgid "The vertex belongs to the edge_table passed as a parameter."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:140
+msgid "the edge when `type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:142
+msgid "The `id` is a decreasing sequence starting from **-1**."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:144
+msgid "Representing a pseudo `id` as is not incorporated into the edge_table."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:145
+msgid "**contracted_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:145
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:145
+msgid "Array of contracted vertex identifiers."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:146
+msgid ""
+"Identifier of the source vertex of the current edge `id`. Valid values when "
+"`type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:147
+msgid ""
+"Identifier of the target vertex of the current edge `id`. Valid values when "
+"`type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:148
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:148
+msgid ""
+"Weight of the edge (`source`, `target`). Valid values when `type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:152
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:154
+msgid "Only dead end contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:160
+msgid "Only linear contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:168
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:169
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:170
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_createTopology.po b/locale/de/LC_MESSAGES/pgr_createTopology.po
new file mode 100644
index 0000000..44a282e
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_createTopology.po
@@ -0,0 +1,395 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_createTopology.rst:13
+msgid "pgr_createTopology"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:18
+msgid ""
+"``pgr_createTopology`` — Builds a network topology based on the geometry "
+"information."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:22
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:24
+#: ../../build/doc/pgr_createTopology.rst:72
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:26
+msgid ""
+"``OK`` after the network topology has been built and the vertices table "
+"created."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:27
+msgid "``FAIL`` when the network topology was not built due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:42
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:45
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:46
+msgid "The topology creation function accepts the following parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:48
+msgid "``text`` Network table name. (may contain the schema name AS well)"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:49
+msgid ""
+"``float8`` Snapping tolerance of disconnected edges. (in projection unit)"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:50
+msgid ""
+"``text``  Geometry column name of the network table. Default value is "
+"``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:51
+msgid ""
+"``text``  Primary key column name of the network table. Default value is "
+"``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:52
+msgid ""
+"``text`` Source column name of the network table. Default value is "
+"``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:53
+msgid ""
+"``text``  Target column name of the network table.  Default value is "
+"``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:54
+msgid ""
+"``text``   Condition to SELECT a subset or rows.  Default value is ``true`` "
+"to indicate all rows that where ``source`` or ``target`` have a null value, "
+"otherwise the condition is used."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:56
+msgid "``boolean`` Clean any previous topology.  Default value is ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:60
+msgid "The ``edge_table`` will be affected"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:62
+msgid "The ``source`` column values will change."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:63
+msgid "The ``target`` column values will change."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:65
+msgid ""
+"An index will be created, if it doesn't exists, to speed up the process to "
+"the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:67
+msgid "``id``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:68
+msgid "``the_geom``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:69
+msgid "``source``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:70
+msgid "``target``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:74
+msgid "``OK`` after the network topology has been built."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:76
+msgid "Creates a vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:77
+msgid "Fills ``id`` and ``the_geom`` columns of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:78
+msgid ""
+"Fills the source and target columns of the edge table referencing the ``id``"
+" of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:81
+msgid "``FAIL`` when the network topology was not built due to an error:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:83
+msgid ""
+"A required column of the Network table is not found or is not of the "
+"appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:84
+msgid "The condition is not well formed."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:85
+msgid "The names of source , target or id are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:86
+msgid "The SRID of the geometry could not be determined."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:90
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:91
+msgid ""
+"The vertices table is a requirement of the :ref:`pgr_analyzeGraph "
+"<pgr_analyze_graph>` and the :ref:`pgr_analyzeOneway <pgr_analyze_oneway>` "
+"functions."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:93
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:95
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:96
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex."
+" See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:97
+msgid ""
+"``integer``  Indicator that the vertex might have a problem. See "
+":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:98
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"AS incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:99
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"AS outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:100
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:103
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:104
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:107
+msgid "Usage when the edge table's columns MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:110
+msgid "The simplest way to use pgr_createTopology is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:118
+msgid "When the arguments are given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:119
+msgid "We get the same result AS the simplest way to use the function."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"In this example, the column ``id`` of the table ``ege_table`` is passed to "
+"the function as the geometry column,"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"and the geometry column ``the_geom`` is passed to the function as the id "
+"column."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:136
+#: ../../build/doc/pgr_createTopology.rst:205
+msgid "When using the named notation"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:137
+msgid ""
+"Parameters defined with a default value can be omitted, as long as the value"
+" matches the default And The order of the parameters would not matter."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:153
+#: ../../build/doc/pgr_createTopology.rst:219
+msgid "Selecting rows using rows_where parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:154
+msgid "Selecting rows based on the id."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:160
+msgid ""
+"Selecting the rows where the geometry is near the geometry of row with ``id "
+"= 5``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:166
+#: ../../build/doc/pgr_createTopology.rst:227
+msgid ""
+"Selecting the rows where the geometry is near the geometry of the row with "
+"``gid`` =100 of the table ``othertable``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:176
+msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:178
+msgid "For the following table"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:185
+msgid "Using positional notation:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:186
+msgid ""
+"The arguments need to be given in the order described in the parameters."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:188
+msgid ""
+"Note that this example uses clean flag. So it recreates the whole vertices "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropiriate "
+"order:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"In this example, the column ``gid`` of the table ``mytable`` is passed to "
+"the function AS the geometry column,"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"and the geometry column ``mygeom`` is passed to the function AS the id "
+"column."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:206
+msgid ""
+"In this scenario omitting a parameter would create an error because the "
+"default values for the column names do not match the column names of the "
+"table. The order of the parameters do not matter:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:220
+msgid "Based on id:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:235
+msgid "Examples with full output"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:237
+msgid ""
+"This example start a clean topology, with 5 edges, and then its incremented "
+"to the rest of the edges."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:243
+msgid "The example uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:247
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:249
+msgid ":ref:`topology` for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:250
+msgid ""
+":ref:`pgr_create_vert_table` to reconstruct the vertices table based on the "
+"source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:251
+msgid ""
+":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:254
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:255
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:256
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_createVerticesTable.po b/locale/de/LC_MESSAGES/pgr_createVerticesTable.po
new file mode 100644
index 0000000..191059e
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_createVerticesTable.po
@@ -0,0 +1,341 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_createVerticesTable.rst:13
+msgid "pgr_createVerticesTable"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:18
+msgid ""
+"``pgr_createVerticesTable`` — Reconstructs the vertices table based on the "
+"source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:22
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:24
+#: ../../build/doc/pgr_createVerticesTable.rst:62
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:26
+#: ../../build/doc/pgr_createVerticesTable.rst:64
+msgid "``OK`` after the vertices table has been reconstructed."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:27
+#: ../../build/doc/pgr_createVerticesTable.rst:69
+msgid ""
+"``FAIL`` when the vertices table was not reconstructed due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:43
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:44
+msgid ""
+"The reconstruction of the vertices table  function accepts the following "
+"parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:46
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:47
+msgid ""
+"``text``  Geometry column name of the network table. Default value is "
+"``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:48
+msgid ""
+"``text`` Source column name of the network table. Default value is "
+"``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:49
+msgid ""
+"``text``  Target column name of the network table.  Default value is "
+"``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:50
+msgid ""
+"``text``   Condition to SELECT a subset or rows.  Default value is ``true`` "
+"to indicate all rows."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:54
+msgid "The ``edge_table`` will be affected"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:56
+msgid ""
+"An index will be created, if it doesn't exists, to speed up the process to "
+"the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:58
+msgid "``the_geom``"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:59
+msgid "``source``"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:60
+msgid "``target``"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:66
+msgid "Creates a vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:67
+msgid ""
+"Fills ``id`` and ``the_geom`` columns of the vertices table based on the "
+"source and target columns of the edge table."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:71
+msgid ""
+"A required column of the Network table is not found or is not of the "
+"appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:72
+msgid "The condition is not well formed."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:73
+msgid "The names of source, target are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:74
+msgid "The SRID of the geometry could not be determined."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:77
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:78
+msgid ""
+"The vertices table is a requierment of the :ref:`pgr_analyzeGraph "
+"<pgr_analyze_graph>` and the :ref:`pgr_analyzeOneway <pgr_analyze_oneway>` "
+"functions."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:80
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:82
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:83
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex."
+" See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:84
+msgid ""
+"``integer``  Indicator that the vertex might have a problem. See "
+":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:85
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:86
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:87
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:90
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:91
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:94
+msgid "Usage when the edge table's columns MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:97
+msgid "The simplest way to use pgr_createVerticesTable is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:104
+msgid "When the arguments are given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:109
+msgid "We get the same result as the simplest way to use the function."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:111
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order: In this example, the column source column ``source`` of the table "
+"``mytable`` is passed to the function as the geometry column, and the "
+"geometry column ``the_geom`` is passed to the function as the source column."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:128
+#: ../../build/doc/pgr_createVerticesTable.rst:205
+msgid "When using the named notation"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:129
+#: ../../build/doc/pgr_createVerticesTable.rst:206
+msgid "The order of the parameters do not matter:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:139
+msgid ""
+"Parameters defined with a default value can be omitted, as long as the value"
+" matches the default:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:146
+#: ../../build/doc/pgr_createVerticesTable.rst:220
+msgid "Selecting rows using rows_where parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:147
+msgid "Selecting rows based on the id."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:153
+msgid ""
+"Selecting the rows where the geometry is near the geometry of row with "
+"``id`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:159
+#: ../../build/doc/pgr_createVerticesTable.rst:243
+msgid ""
+"Selecting the rows where the geometry is near the geometry of the row with "
+"``gid`` =100 of the table ``othertable``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:170
+msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:172
+msgid "For the following table"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:180
+msgid "Using positional notation:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:181
+msgid ""
+"The arguments need to be given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order: In this example, the column ``src`` of the table ``mytable`` is "
+"passed to the function as the geometry column, and the geometry column "
+"``mygeom`` is passed to the function as the source column."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:216
+msgid ""
+"In this scenario omitting a parameter would create an error because the "
+"default values for the column names do not match the column names of the "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:221
+msgid "Selecting rows based on the gid."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:231
+msgid ""
+"Selecting the rows where the geometry is near the geometry of row with "
+"``gid`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:260
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:282
+msgid "The example uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:286
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:288
+msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:289
+msgid ""
+":ref:`pgr_createTopology <pgr_create_topology>` to create a topology based "
+"on the geometry."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:290
+msgid ""
+":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:291
+msgid ":ref:`pgr_analyze_oneway` to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:294
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:295
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:296
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_dijkstra.po b/locale/de/LC_MESSAGES/pgr_dijkstra.po
new file mode 100644
index 0000000..45cbd10
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_dijkstra.po
@@ -0,0 +1,621 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid ""
+"``pgr_dijkstra`` — Returns the shortest path(s) using Dijkstra algorithm. In"
+" particular, the Dijkstra algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:24
+msgid "Availability"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:25
+msgid "pgr_dijkstra(one to one) 2.0.0, signature change 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:26
+msgid "pgr_dijkstra(other signatures) 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:31
+msgid ""
+"Dijkstra's algorithm, conceived by Dutch computer scientist Edsger Dijkstra "
+"in 1956. It is a graph search algorithm that solves the shortest path "
+"problem for a graph with non-negative edge path costs, producing a shortest "
+"path from a starting vertex (``start_vid``) to an ending vertex "
+"(``end_vid``). This implementation can be used with a directed graph and an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:38
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:60
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:41
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:42
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:44
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:46
+msgid "The `agg_cost` the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:48
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:50
+msgid "The `agg_cost` the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:52
+msgid ""
+"For optimization purposes, any duplicated value in the `start_vids` or "
+"`end_vids` are ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:54
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:56
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:57
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:59
+msgid "Running time: :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:63
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:78
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:84
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:91
+msgid ""
+"The minimal signature is for a **directed** graph from one ``start_vid`` to "
+"one ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:104
+msgid "pgr_dijkstra One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:114
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:113 ../../build/doc/pgr_dijkstra.rst:136
+#: ../../build/doc/pgr_dijkstra.rst:167 ../../build/doc/pgr_dijkstra.rst:197
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:114 ../../build/doc/pgr_dijkstra.rst:137
+#: ../../build/doc/pgr_dijkstra.rst:168 ../../build/doc/pgr_dijkstra.rst:198
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:127
+msgid "pgr_dijkstra One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:137
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:139
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_dijkstra` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:142
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:143
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:158
+msgid "pgr_dijkstra Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:168
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:170
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_dijkstra` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:173 ../../build/doc/pgr_dijkstra.rst:203
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:174 ../../build/doc/pgr_dijkstra.rst:204
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:188
+msgid "pgr_dijkstra Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:198
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:200
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:206
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:215
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:225
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:230
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:230
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:230
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:231 ../../build/doc/pgr_dijkstra.rst:233
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:231
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:232
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:232 ../../build/doc/pgr_dijkstra.rst:234
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:232
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:233
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:233
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:234
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:234
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:236
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:248
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:250
+msgid ""
+"The examples of this section are based on the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:252
+msgid ""
+"The examples include combinations from starting vertices 2 and 11 to ending "
+"vertices 3 and 5 in a directed and undirected graph with and with out "
+"reverse_cost."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:256
+msgid ""
+"Examples for queries marked as ``directed`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:258
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:267
+msgid ""
+"Examples for queries marked as ``undirected`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:269
+msgid "The examples in this section use the following :ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:277
+msgid "Examples for queries marked as ``directed`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:279
+msgid "The examples in this section use the following :ref:`fig3`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:287
+msgid "Examples for queries marked as ``undirected`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:289
+msgid "The examples in this section use the following :ref:`fig4`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:297
+msgid "Equvalences between signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:299
+msgid ""
+"For queries marked as ``directed`` with ``cost`` and ``reverse_cost`` "
+"columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:301 ../../build/doc/pgr_dijkstra.rst:313
+msgid "The examples in this section use the following:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:303
+msgid ":ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:311
+msgid ""
+"For queries marked as ``undirected`` with ``cost`` and ``reverse_cost`` "
+"columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:315
+msgid ":ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:324
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:326
+msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:327
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:330
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:331
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:332
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_dijkstraCost.po b/locale/de/LC_MESSAGES/pgr_dijkstraCost.po
new file mode 100644
index 0000000..a9193fb
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_dijkstraCost.po
@@ -0,0 +1,473 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstraCost.rst:13
+msgid "pgr_dijkstraCost"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:17
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:19
+msgid "``pgr_dijkstraCost``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:21
+msgid ""
+"Using Dijkstra algorithm implemented by Boost.Graph, and extract only the "
+"aggregate cost of the shortest path(s) found, for the combination of "
+"vertices given."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:27
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:30
+msgid "Availability"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:31
+msgid "pgr_dijkstraCost(all signatures) 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:33
+msgid ""
+"The ``pgr_dijkstraCost`` algorithm, is a good choice to calculate the sum of"
+" the costs of the shortest path for a subset of pairs of nodes of the graph."
+" We make use of the Boost's implementation of dijkstra which runs in "
+":math:`O(V \\log V + E)` time."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:39
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:71
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:42
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:43
+msgid ""
+"Returns the sum of the costs of the shortest path for pair combination of "
+"nodes in the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:44
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:45
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:47
+msgid ""
+"The returned values are in the form of a set of `(start_vid, end_vid, "
+"agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:49
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:51
+msgid "The `agg_cost` int the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:53
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:55
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:57
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:60
+msgid "For undirected graphs, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:62
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:64
+msgid "Any duplicated value in the `start_vids` or `end_vids` is ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:66
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:68
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:69
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:71
+msgid "Running time: :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:74
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:89
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:95
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:97
+msgid ""
+"The minimal signature is for a **directed** graph from one ``start_vid`` to "
+"one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:106
+msgid "Example"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:117
+msgid "pgr_dijkstraCost One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:122
+msgid ""
+"This signature performs a Dijkstra from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:121
+#: ../../build/doc/pgr_dijkstraCost.rst:150
+#: ../../build/doc/pgr_dijkstraCost.rst:176
+#: ../../build/doc/pgr_dijkstraCost.rst:201
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:122
+#: ../../build/doc/pgr_dijkstraCost.rst:151
+#: ../../build/doc/pgr_dijkstraCost.rst:177
+#: ../../build/doc/pgr_dijkstraCost.rst:202
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:141
+msgid "pgr_dijkstraCost One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:152
+msgid ""
+"This signature performs a Dijkstra from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:167
+msgid "pgr_dijkstraCost Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:178
+msgid ""
+"This signature performs a Dijkstra from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:192
+msgid "pgr_dijkstraCost Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:202
+msgid ""
+"This signature performs a Dijkstra from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:213
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10 ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11 ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:229
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:231
+msgid "Demonstration of repeated values are ignored, and result is sorted."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:237
+msgid "Making `start_vids` the same as `end_vids`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:246
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:248
+msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:249
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:252
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:253
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:254
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_dijkstraCostMatrix.po b/locale/de/LC_MESSAGES/pgr_dijkstraCostMatrix.po
new file mode 100644
index 0000000..95cf121
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_dijkstraCostMatrix.po
@@ -0,0 +1,358 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:13
+msgid "pgr_dijkstraCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:18
+msgid ""
+"``pgr_dijkstraCostMatrix`` - Calculates the a cost matrix using "
+"pgr_dijktras."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:29
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:32
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:34
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:36
+msgid "Using Dijkstra algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:39
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:56
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:59
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:59
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:67
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:79
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:87
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:89
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:97
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:106
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:109
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:111
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:111
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:111
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:112
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:112
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:112
+msgid "Array of identifiers of the vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:113
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:113
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:113
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:123
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:125
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:133
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:135
+msgid ":ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:136
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:137
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:138
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:141
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:142
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:143
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_dijkstraVia.po b/locale/de/LC_MESSAGES/pgr_dijkstraVia.po
new file mode 100644
index 0000000..0a3c5f1
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_dijkstraVia.po
@@ -0,0 +1,480 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstraVia.rst:13
+msgid "pgr_dijkstraVia - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:19
+msgid ""
+"``pgr_dijkstraVia`` — Using dijkstra algorithm, it finds the route that goes"
+" through a list of vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:30
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:32
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:34
+msgid ""
+"Given a list of vertices and a graph, this function is equivalent to finding"
+" the shortest path between :math:`vertex_i` and :math:`vertex_{i+1}` for all"
+" :math:`i < size\\_of(vertex_via)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:37
+msgid "The paths represents the sections of the route."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:39
+msgid "This is a proposed function"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:42
+msgid "Signatrue Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:53
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:59
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:67
+msgid "Find the route that visits the vertices 1 3 9  in that order"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:77
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:86
+msgid ""
+"Find the route that visits the vertices 1 3 9  in that order on an "
+"undirected graph, avoiding U-turns when possible"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:94
+msgid "Description of the Signature"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:124
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:7
+#: ../../build/doc/pgr_dijkstraVia.rst:108
+#: ../../build/doc/pgr_dijkstraVia.rst:124
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:7
+#: ../../build/doc/pgr_dijkstraVia.rst:108
+#: ../../build/doc/pgr_dijkstraVia.rst:124
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_dijkstraVia.rst:133
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+#: ../../build/doc/pgr_dijkstraVia.rst:105
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:7
+#: ../../build/doc/pgr_dijkstraVia.rst:108
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:110
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:110
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:110
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgr_dijkstraVia.rst:111
+msgid "**via_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgr_dijkstraVia.rst:111
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Array of ordered vertices identifiers that are going to be visited."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgr_dijkstraVia.rst:112
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgr_dijkstraVia.rst:112
+#: ../../build/doc/pgr_dijkstraVia.rst:113
+#: ../../build/doc/pgr_dijkstraVia.rst:114
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_dijkstraVia.rst:113
+msgid "**strict**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``false``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "When ``false`` ignores missing paths returning all paths found"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "When ``true`` if a path is missing stops and returns `EMPTY SET`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgr_dijkstraVia.rst:114
+msgid "**U_turn_on_edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"When ``true`` departing from a visited vertex will not try to avoid using "
+"the edge used to reach it.  In other words, U turn using the edge with same "
+"`id` is allowed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When ``false`` when a departing from a visited vertex tries to avoid using "
+"the edge used to reach it.  In other words, U turn using the edge with same "
+"`id` is used when no other path is found."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:111
+msgid "Array of vertices identifiers"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:112
+#: ../../build/doc/pgr_dijkstraVia.rst:114
+msgid ""
+"(optional) Default is true (is directed). When set to false the graph is "
+"considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:113
+msgid ""
+"(optional) ignores if a subsection of the route is missing and returns "
+"everything it found Default is true (is directed). When set to false the "
+"graph is considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:119
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:121
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:126
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:126
+#: ../../build/doc/pgr_dijkstraVia.rst:127
+#: ../../build/doc/pgr_dijkstraVia.rst:128
+#: ../../build/doc/pgr_dijkstraVia.rst:129
+#: ../../build/doc/pgr_dijkstraVia.rst:130
+#: ../../build/doc/pgr_dijkstraVia.rst:131
+#: ../../build/doc/pgr_dijkstraVia.rst:132
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:126
+msgid "Sequential value starting from 1."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:127
+msgid "**path_pid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:127
+msgid "Identifier of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:128
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:128
+msgid "Sequential value starting from 1 for the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:129
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:129
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:130
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:130
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:131
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:131
+msgid "Identifier of the node in the path from start_vid to end_vid."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:132
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:132
+msgid ""
+"Identifier of the edge used to go from node to the next node in the path "
+"sequence. -1 for the last node of the path. -2 for the last node of the "
+"route."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:133
+#: ../../build/doc/pgr_dijkstraVia.rst:134
+#: ../../build/doc/pgr_dijkstraVia.rst:135
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:133
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the route "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:134
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:134
+msgid "Total cost from ``start_vid`` to ``end_vid`` of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:135
+msgid "**route_agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:135
+msgid ""
+"Total cost from ``start_vid`` of ``path_pid = 1`` to ``end_vid`` of the "
+"current ``path_pid`` ."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:140
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:142
+msgid "Find the route that visits the vertices 1 5 3 9 4 in that order"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:148
+msgid "What's the aggregate cost of the third path?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:154
+msgid ""
+"What's the route's aggregate cost of the route at the end of the third path?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:160
+msgid "How are the nodes visited in the route?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:166
+msgid ""
+"What are the aggregate costs of the route when the visited vertices are "
+"reached?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:172
+msgid ""
+"show the route's seq and aggregate cost and a status of \"passes in front\" "
+"or \"visits\" node 9"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:179
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:181
+msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:182
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:185
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:186
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:187
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_drivingDistance.po b/locale/de/LC_MESSAGES/pgr_drivingDistance.po
new file mode 100644
index 0000000..77f7b8e
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_drivingDistance.po
@@ -0,0 +1,391 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_drivingDistance.rst:13
+msgid "pgr_drivingDistance"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:19
+msgid ""
+"``pgr_drivingDistance`` - Returns the driving distance from a start node."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:25
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:28
+msgid "Availability"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:29
+msgid "pgr_drivingDistance(single vertex) 2.0.0, signature change 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:30
+msgid "pgr_drivingDistance(multiple vertices) 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:35
+msgid ""
+"Using the Dijkstra algorithm, extracts all the nodes that have costs less "
+"than or equal to the value ``distance``. The edges extracted will conform to"
+" the corresponding spanning tree."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:39
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:57
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:70
+msgid "Driving Distance From A Single Starting Vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:82
+msgid "Driving Distance From Multiple Starting Vertices"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:90
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_drivingDistance.rst:101
+#: ../../build/doc/pgr_drivingDistance.rst:119
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_drivingDistance.rst:101
+#: ../../build/doc/pgr_drivingDistance.rst:119
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_drivingDistance.rst:101
+#: ../../build/doc/pgr_drivingDistance.rst:119
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_drivingDistance.rst:125
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:98
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:103
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:103
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:103
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:104
+#: ../../build/doc/pgr_drivingDistance.rst:122
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:104
+#: ../../build/doc/pgr_drivingDistance.rst:123
+#: ../../build/doc/pgr_drivingDistance.rst:124
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:104
+#: ../../build/doc/pgr_drivingDistance.rst:122
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:105
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:105
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:105
+msgid "Array of identifiers of the starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:106
+msgid "**distance**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:106
+#: ../../build/doc/pgr_drivingDistance.rst:125
+#: ../../build/doc/pgr_drivingDistance.rst:126
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:106
+msgid "Upper limit for the inclusion of the node in the result."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:107
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:107
+#: ../../build/doc/pgr_drivingDistance.rst:108
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:107
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:108
+msgid "**equicost**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:108
+msgid ""
+"(optional). When ``true`` the node will only appear in the closest "
+"``start_vid`` list.  Default is ``false`` which resembles several calls "
+"using the single starting point signatures. Tie brakes are arbitrary."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:114
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:116
+msgid "Returns set of ``(seq [, start_v], node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:121
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:121
+#: ../../build/doc/pgr_drivingDistance.rst:122
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:121
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:123
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:123
+msgid ""
+"Identifier of the node in the path within the limits from ``start_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:124
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:124
+msgid ""
+"Identifier of the edge used to arrive to ``node``. ``0`` when the ``node`` "
+"is the ``start_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:125
+msgid "Cost to traverse ``edge``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:126
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:126
+msgid "Aggregate cost from ``start_vid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:132
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:135
+msgid ""
+"Examples for queries marked as ``directed`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:137
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:144
+msgid ""
+"Examples for queries marked as ``undirected`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:146
+msgid "The examples in this section use the following :ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:154
+msgid "Examples for queries marked as ``directed`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:156
+msgid "The examples in this section use the following :ref:`fig3`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:165
+msgid "Examples for queries marked as ``undirected`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:167
+msgid "The examples in this section use the following :ref:`fig4`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:175
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:177
+msgid ":ref:`pgr_alphashape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:178
+msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:179
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:182
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:183
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:184
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_edgeDisjointPaths.po b/locale/de/LC_MESSAGES/pgr_edgeDisjointPaths.po
new file mode 100644
index 0000000..54a0ffe
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_edgeDisjointPaths.po
@@ -0,0 +1,541 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:14
+msgid "pgr_edgeDisjointPaths - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:19
+msgid ""
+"``pgr_edgeDisjointPaths`` — Calculates edge disjoint paths between two "
+"groups of vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:25
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:28
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:36
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:38
+msgid ""
+"Calculates the edge disjoint paths between two groups of vertices. Utilizes "
+"underlying maximum flow algorithms to calculate the paths."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:42
+msgid "Characteristics:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:49
+msgid "The main characterics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:45
+msgid "Calculates the edge disjoint paths between any two groups of vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:46
+msgid ""
+"Returns EMPTY SET when source and destination are the same, or cannot be "
+"reached."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:47
+msgid "The graph can be directed or undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:48
+msgid "One to many, many to one, many to many versions are also supported."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:49
+msgid "Uses :ref:`pgr_boykovKolmogorov` to calculate the paths."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:52
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:67
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:73
+msgid "Minimal use"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:81
+msgid ""
+"The minimal use is for a **directed** graph from one ``start_vid`` to one "
+"``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:93
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:98
+msgid ""
+"This signature finds the set of dijoint paths from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:96
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:120
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:149
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:175
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:97
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:121
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:150
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:176
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:117
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:126
+msgid ""
+"This signature finds the sset of disjoint paths  from the ``start_vid`` to "
+"each one of the ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:122
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:151
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:177
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_edgeDisjointPaths`."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:123
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:146
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:152
+msgid ""
+"This signature finds the set of disjoint paths from each one of the "
+"``start_vid`` in ``start_vids`` to the ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:152
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:172
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:178
+msgid ""
+"This signature finds the set of disjoint paths from each one of the "
+"``start_vid`` in ``start_vids`` to each one of the ``end_vid`` in "
+"``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:178
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:195
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10 ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11 ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:212
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:214
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:217
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:218
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:219
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_edmondsKarp.po b/locale/de/LC_MESSAGES/pgr_edmondsKarp.po
new file mode 100644
index 0000000..8523277
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_edmondsKarp.po
@@ -0,0 +1,438 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_edmondsKarp.rst:14
+msgid "pgr_edmondsKarp - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:18
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:20
+msgid ""
+"``pgr_edmondsKarp`` — Calculates the flow on the graph edges that maximizes "
+"the flow from the sources to the targets using Push Relabel Algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:29
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:30
+msgid "Renamed 2.5.0, Previous name pgr_maxFlowEdmondsKarp"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:31
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:8
+msgid ""
+"When the maximum flow is 0 then there is no flow and **EMPTY SET** is "
+"returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:12
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:15
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid ""
+"Creates a **super source** and edges to all the source(s), and a **super "
+"target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid ""
+"The maximum flow through the graph is guaranteed to be the value returned by"
+" :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and"
+" can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:42
+msgid "Running time: :math:`O( V * E ^ 2)`"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:45
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:62
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:64
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:83
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:85
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:104
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:106
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:125
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:127
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:142
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:4
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10 ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11 ../../build/doc/pgr_maxFlow.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:12
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:160
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:162
+msgid ""
+":ref:`maxFlow`, :ref:`pgr_boykovKolmogorov <pgr_boykovKolmogorov>`, "
+":ref:`pgr_PushRelabel <pgr_pushRelabel>`"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:163
+msgid "http://www.boost.org/libs/graph/doc/edmonds_karp_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:164
+msgid "https://en.wikipedia.org/wiki/Edmonds%E2%80%93Karp_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:167
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:168
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:169
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_eucledianTSP.po b/locale/de/LC_MESSAGES/pgr_eucledianTSP.po
new file mode 100644
index 0000000..5b9be5e
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_eucledianTSP.po
@@ -0,0 +1,187 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_eucledianTSP.rst:13
+msgid "pgr_eucledianTSP"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:18
+msgid ""
+"``pgr_eucledianTSP`` - Returns a route that visits all the coordinates pairs"
+" exactly once."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:22
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:24
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:26
+msgid ""
+"The travelling salesman problem (TSP) or travelling salesperson problem asks"
+" the following question:"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:28
+msgid ""
+"Given a list of cities and the distances between each pair of cities, what "
+"is the shortest possible route that visits each city exactly once and "
+"returns to the origin city?"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:30
+msgid ""
+"This implementation uses simulated annealing to return the approximate "
+"solution when the input is given in the form of coordinates."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:33
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:48
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:54
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:63
+msgid ""
+"Because the documentation examples are auto generated and tested for non "
+"changing results, and the default is to have random execution, the example "
+"is wrapping the actual call."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:75
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:90
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:96
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:99
+msgid "Description of the coordinates SQL query"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:102
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:102
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:102
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:104
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:104
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:104
+msgid "Identifier of the coordinate. (optional)"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:105
+msgid "**x**"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:105
+#: ../../build/doc/pgr_eucledianTSP.rst:106
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:105
+msgid "X value of the coordinate."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:106
+msgid "**y**"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:106
+msgid "Y value of the coordinate."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:110
+msgid ""
+"When the value of **id** is not given then the coordinates will receive an "
+"**id** starting from 1, in the order given."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:125
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:127
+msgid "Skipping the Simulated Annealing & showing some process information"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:135
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:139
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:140
+msgid "New in version 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:145
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:147
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:148
+msgid "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:149
+msgid "http://en.wikipedia.org/wiki/Simulated_annealing"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:152
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:153
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:154
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_floydWarshall.po b/locale/de/LC_MESSAGES/pgr_floydWarshall.po
new file mode 100644
index 0000000..4fe9ece
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_floydWarshall.po
@@ -0,0 +1,348 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_floydWarshall.rst:13
+msgid "pgr_floydWarshall"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:16
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:18
+msgid ""
+"``pgr_floydWarshall`` - Returns the sum of the costs of the shortest path "
+"for each pair of nodes in the graph using Floyd-Warshall algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:27
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:28
+msgid "Renamed on 2.2.0, previous name pgr_apspWarshall"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:31
+msgid ""
+"The Floyd-Warshall algorithm, also known as Floyd's algorithm, is a good "
+"choice to calculate the sum of the costs of the shortest path for each pair "
+"of nodes in the graph, for *dense graphs*. We make use of the  Boost's "
+"implementation which runs in :math:`\\Theta(V^3)` time,"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:38
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:58
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:41
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:42
+msgid ""
+"Returns the sum of the costs of the shortest path for each pair of nodes in "
+"the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:43
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:44
+msgid ""
+"Boost returns a :math:`V \\times V` matrix, where the infinity values. "
+"Represent the distance between vertices for which there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:47
+msgid ""
+"We return only the non infinity values in form of a set of `(start_vid, "
+"end_vid, agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:49
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:52
+msgid "For the undirected graph, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:54
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:56
+msgid "When  `start_vid` = `end_vid`, the `agg_cost` = 0."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:58
+msgid "**Recommended, use a bounding box of no more than 3500 edges.**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:61
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:70
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:77
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:84
+msgid "On a directed graph."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:95
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:103
+msgid "On an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:110
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query (id is not necessary)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_floydWarshall.rst:136
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_floydWarshall.rst:123
+#: ../../build/doc/pgr_floydWarshall.rst:136
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_floydWarshall.rst:123
+#: ../../build/doc/pgr_floydWarshall.rst:136
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:118
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:120
+msgid "Receives  ``(edges_sql, directed)``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:123
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:125
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:125
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:125
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:126
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:126
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:126
+msgid ""
+"(optional) Default is true (is directed). When set to false the graph is "
+"considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:131
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:133
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:138
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:138
+#: ../../build/doc/pgr_floydWarshall.rst:139
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:138
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:139
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:139
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:140
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:140
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:140
+msgid "Total cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:148
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:149
+msgid "Re-design of pgr_apspWarshall in Version 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:152
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:154
+msgid ":ref:`pgr_johnson`"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:155
+msgid ""
+"`Boost floyd-Warshall "
+"<http://www.boost.org/libs/graph/doc/floyd_warshall_shortest.html>`_ "
+"algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:156
+msgid "Queries uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:159
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:160
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:161
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_gsoc_vrppdtw.po b/locale/de/LC_MESSAGES/pgr_gsoc_vrppdtw.po
new file mode 100644
index 0000000..7705842
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_gsoc_vrppdtw.po
@@ -0,0 +1,358 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:13
+msgid "pgr_gsoc_vrppdtw - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:19
+msgid ""
+"``pgr_gsoc_vrppdtw`` — Returns a solution for `Pick and Delivery` with `time"
+" windows` Vehicle Routing Problem"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:27
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:36
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:43
+msgid "Complete signature"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:52
+msgid "Example: Show the id1"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:59
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:62
+msgid "Description of the sql query"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:65
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:89
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:102
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:65
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:89
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:102
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:65
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:89
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:102
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:67
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:67
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:81
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:82
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:67
+msgid "Identifier of the customer."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:69
+msgid "A value of ``0`` identifies the starting location"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:71
+msgid "**x**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:71
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:72
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:73
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:78
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:79
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:80
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:71
+msgid "``X`` coordinate of the location."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:72
+msgid "**y**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:72
+msgid "``Y`` coordinate of the location."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:73
+msgid "**demand**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:73
+msgid "How much is added / removed from the vehicle."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:75
+msgid "Negative value is a delivery,"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:76
+msgid "Positive value is a pickup,"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:78
+msgid "**openTime**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:78
+msgid "The time relative to 0, when the customer opens."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:79
+msgid "**closeTime**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:79
+msgid "The time relative to 0, when the customer closes."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:80
+msgid "**serviceTime**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:80
+msgid "The duration of the loading / unloading."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:81
+msgid "**pIndex**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:81
+msgid ""
+"Value used when the current customer is a Delivery to find the corresponding"
+" Pickup"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:82
+msgid "**dIndex**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:82
+msgid ""
+"Value used when the current customer is a Pickup to find the corresponding "
+"Delivery"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:86
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:91
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:91
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:91
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:92
+msgid "**vehicle_num**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:92
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:93
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:104
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:105
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:106
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:92
+msgid "Maximum number of vehicles in the result. (currently is ignored)"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:93
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:93
+msgid "Capacity of the vehicle."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:97
+msgid "Description of the result"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:99
+msgid "RETURNS SET OF pgr_costResult[]:"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:104
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:104
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:105
+msgid "**id1**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:105
+msgid "Current vehicle identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:106
+msgid "**id2**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:106
+msgid "Customer identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:107
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:107
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:107
+msgid ""
+"Previous ``cost`` plus `travel time` plus `wait time` plus `service time`."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:108
+msgid ""
+"when ``id2 = 0`` for the second time for the same ``id1``, then has the "
+"total time for the current ``id1``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:114
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:117
+msgid "Example: Total number of rows returned"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:123
+msgid "Example: Results for only id1 values: 1, 5, and 9"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:130
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:132
+msgid "The examples use :ref:`pickDeliverData`"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:133
+msgid "http://en.wikipedia.org/wiki/Vehicle_routing_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:136
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:137
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:138
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_johnson.po b/locale/de/LC_MESSAGES/pgr_johnson.po
new file mode 100644
index 0000000..d0ef00b
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_johnson.po
@@ -0,0 +1,341 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_johnson.rst:13
+msgid "pgr_johnson"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:16
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:18
+msgid ""
+"``pgr_johnson`` - Returns the sum of the costs of the shortest path for each"
+" pair of nodes in the graph using Floyd-Warshall algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:27
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:28
+msgid "Renamed on 2.2.0, previous name pgr_apspJohnson"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:31
+msgid ""
+"The Johnson algorithm, is a good choice to calculate the sum of the costs of"
+" the shortest path for each pair of nodes in the graph, for *sparse graphs*."
+" It usees the Boost's implementation which runs in :math:`O(V E \\log V)` "
+"time,"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:37
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:57
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:40
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:41
+msgid ""
+"Returns the sum of the costs of the shortest path for each pair of nodes in "
+"the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:42
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:43
+msgid ""
+"Boost returns a :math:`V \\times V` matrix, where the infinity values. "
+"Represent the distance between vertices for which there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:46
+msgid ""
+"We return only the non infinity values in form of a set of `(start_vid, "
+"end_vid, agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:48
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:51
+msgid "For the undirected graph, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:53
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:55
+msgid "When  `start_vid` = `end_vid`, the `agg_cost` = 0."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:60
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:69
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:76
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:83
+msgid "On a directed graph."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:94
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:102
+msgid "On an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:109
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query (id is not necessary)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_johnson.rst:135
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_johnson.rst:122 ../../build/doc/pgr_johnson.rst:135
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_johnson.rst:122 ../../build/doc/pgr_johnson.rst:135
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:117
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:119
+msgid "Receives  ``(edges_sql, directed)``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:122
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:124
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:124
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:124
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:125
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:125
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:125
+msgid ""
+"(optional) Default is true (is directed). When set to false the graph is "
+"considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:130
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:132
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:137
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:137 ../../build/doc/pgr_johnson.rst:138
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:137
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:138
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:138
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:139
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:139
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:139
+msgid "Total cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:147
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:148
+msgid "Re-design of pgr_apspJohnson in Version 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:151
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:153
+msgid ":ref:`pgr_floydWarshall`"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:154
+msgid ""
+"`Boost Johnson "
+"<http://www.boost.org/libs/graph/doc/johnson_all_pairs_shortest.html>`_ "
+"algorithm implementation."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:155
+msgid "Queries uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:158
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:159
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:160
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_labelGraph.po b/locale/de/LC_MESSAGES/pgr_labelGraph.po
new file mode 100644
index 0000000..e5d6532
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_labelGraph.po
@@ -0,0 +1,233 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_labelGraph.rst:15
+msgid "pgr_labelGraph - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:18
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:20
+msgid ""
+"``pgr_labelGraph`` — Locates and labels sub-networks within a network which "
+"are not topologically connected."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:28
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:30
+msgid ""
+"Must be run after ``pgr_createTopology()``. No use of ``geometry`` column. "
+"Only ``id``, ``source`` and  ``target`` columns are required."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:32
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:34
+msgid ""
+"``OK`` when a column with provided name has been generated and populated "
+"successfully. All connected edges will have unique similar integer values. "
+"In case of ``rows_where`` condition, non participating rows will have -1 "
+"integer values."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:35
+msgid ""
+"``FAIL`` when the processing cannot be finished due to some error. Notice "
+"will be thrown accordingly."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:36
+msgid ""
+"``rows_where condition generated 0 rows`` when passed SQL condition has not "
+"been fulfilled by any row."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:48
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:50
+msgid ""
+"A network behind any routing query may consist of sub-networks completely "
+"isolated from each other. Possible reasons could be:"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:52
+msgid "An island with no bridge connecting to the mainland."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:53
+msgid ""
+"An edge or mesh of edges failed to connect to other networks because of "
+"human negligence during data generation."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:54
+msgid "The data is not properly noded."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:55
+msgid "Topology creation failed to succeed."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:57
+msgid ""
+"pgr_labelGraph() will create an integer column (with the name provided by "
+"the user) and will assign same integer values to all those edges in the "
+"network which are connected topologically. Thus better analysis regarding "
+"network structure is possible. In case of ``rows_where`` condition, non "
+"participating rows will have -1 integer values."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:59
+msgid ""
+"Prerequisites: Must run ``pgr_createTopology()`` in order to generate "
+"``source`` and ``target`` columns. Primary key column ``id`` should also be "
+"there in the network table."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:62
+msgid "Function accepts the following parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:64
+msgid "``text`` Network table name, with optional schema name."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:65
+msgid ""
+"``text`` Primary key column name of the network table. Default is ``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:66
+msgid ""
+"``text`` Source column name generated after ``pgr_createTopology()``. "
+"Default is ``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:67
+msgid ""
+"``text`` Target column name generated after ``pgr_createTopology()``. "
+"Default is ``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:68
+msgid ""
+"``text`` Column name which will hold the integer labels for each sub-graph. "
+"Default is ``subgraph``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:69
+msgid ""
+"``text`` The SQL where condition. Default is ``true``, means the processing "
+"will be done on the whole table."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:75
+msgid "Example Usage"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:77
+msgid "The sample data, has 3 subgraphs."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:85
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:87
+msgid ""
+"`pgr_createTopology "
+"<https://github.com/Zia-/pgrouting/blob/develop/src/common/sql/pgrouting_topology.sql>`_"
+" to create the topology of a table based on its geometry and tolerance "
+"value."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:90
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:91
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:92
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_lineGraph.po b/locale/de/LC_MESSAGES/pgr_lineGraph.po
new file mode 100644
index 0000000..7b69209
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_lineGraph.po
@@ -0,0 +1,387 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_lineGraph.rst:13
+msgid "pgr_lineGraph - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:15
+msgid ""
+"``pgr_lineGraph`` — Transforms a given graph into its corresponding edge-"
+"based graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:31
+msgid "Given a graph G, its line graph L(G) is a graph such that:-"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:33
+msgid "each vertex of L(G) represents an edge of G"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:34
+msgid ""
+"two vertices of L(G) are adjacent if and only if their corresponding edges "
+"share a common endpoint in G."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:36
+msgid ""
+"The following figures show a graph (left, with blue vertices) and its Line "
+"Graph (right, with green vertices)."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:39
+msgid "|first|"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:45
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:55
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:61
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:68
+msgid "The minimal signature is for a **directed** graph:"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:81
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:90
+msgid "This signature returns the Line Graph of the current graph:"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:89
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:90
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:101
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_lineGraph.rst:112 ../../build/doc/pgr_lineGraph.rst:125
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_lineGraph.rst:112 ../../build/doc/pgr_lineGraph.rst:125
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_lineGraph.rst:112 ../../build/doc/pgr_lineGraph.rst:125
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_lineGraph.rst:129
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_lineGraph.rst:133
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_lineGraph.rst:137
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_lineGraph.rst:141
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:109
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:114
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:114
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:114
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:115
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:115
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:115
+msgid "When ``true`` the graph is considered as `Directed`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:116
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:120
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:122
+msgid "RETURNS SETOF  (seq, source, target, cost, reverse_cost)"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:127
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:127
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:127
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:129 ../../build/doc/pgr_lineGraph.rst:133
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:129
+msgid "Identifier of the source vertex of the current edge `id`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:131
+msgid "When `negative`: the source is the reverse edge in the original graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:133
+msgid "Identifier of the target vertex of the current edge `id`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:135
+msgid "When `negative`: the target is the reverse edge in the original graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:137 ../../build/doc/pgr_lineGraph.rst:141
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:137
+msgid "Weight of the edge (`source`, `target`)."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:139
+msgid ""
+"When `negative`: edge (`source`, `target`) does not exist, therefore it’s "
+"not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:141
+msgid "Weight of the edge (`target`, `source`)."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:143
+msgid ""
+"When `negative`: edge (`target`, `source`) does not exist, therefore it’s "
+"not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:147
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:154
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:156
+msgid "https://en.wikipedia.org/wiki/Line_graph"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:157
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:160
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:161
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:162
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_maxCardinalityMatch.po b/locale/de/LC_MESSAGES/pgr_maxCardinalityMatch.po
new file mode 100644
index 0000000..4c6c884
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_maxCardinalityMatch.po
@@ -0,0 +1,357 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:13
+msgid "pgr_maxCardinalityMatch - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:17
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:19
+msgid ""
+"``pgr_maxCardinalityMatch`` — Calculates a maximum cardinality matching in a"
+" graph."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:29
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:32
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:33
+msgid "Renamed 2.5.0, Previous name pgr_maximumCardinalityMatching"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:34
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:38
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:39
+msgid ""
+"A matching or independent edge set in a graph is a set of edges without "
+"common vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:40
+msgid ""
+"A maximum matching is a matching that contains the largest possible number "
+"of edges."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:42
+msgid "There may be many maximum matchings."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:43
+msgid "Calculates **one** possible maximum cardinality matching in a graph."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:45
+msgid "The graph can be **directed** or **undirected**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:46
+msgid "Running time: :math:`O( E*V * \\alpha(E,V))`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:48
+msgid ":math:`\\alpha(E,V)` is the inverse of the `Ackermann function`_."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:54
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:71
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:78
+msgid ""
+"The minimal use calculates one possible maximum cardinality matching on a "
+"**directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:90
+msgid "Complete signature"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:98
+msgid ""
+"The complete signature calculates one possible maximum cardinality matching."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:109
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:113
+msgid "Description of the SQL query"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:115
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:118
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:136
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:146
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:118
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:136
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:146
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:118
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:136
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:146
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:120
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:120
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:121
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:122
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:120
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:121
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:150
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:121
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:122
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:151
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:122
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:123
+msgid "**going**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:123
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:124
+msgid "``ANY-NUMERIC``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:123
+msgid ""
+"A positive value represents the existence of the edge (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:124
+msgid "**coming**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:124
+msgid ""
+"A positive value represents the existence of the edge (target, source)."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:127
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:129
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:130
+msgid "SMALLINT, INTEGER, BIGINT, REAL, DOUBLE PRECISION"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:133
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:138
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:138
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:138
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:139
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:139
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:139
+msgid "(optional) Determines the type of the graph. Default TRUE."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:143
+msgid "Description of the Result"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:148
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:148
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:148
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:149
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:149
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:150
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:151
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:149
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:150
+msgid "Identifier of the first end point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:151
+msgid "Identifier of the second end point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:155
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:157
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:158
+msgid "http://www.boost.org/libs/graph/doc/maximum_matching.html"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:159
+msgid "https://en.wikipedia.org/wiki/Matching_%28graph_theory%29"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:160
+msgid "https://en.wikipedia.org/wiki/Ackermann_function"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:163
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:164
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:165
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_maxFlow.po b/locale/de/LC_MESSAGES/pgr_maxFlow.po
new file mode 100644
index 0000000..0327a6f
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_maxFlow.po
@@ -0,0 +1,354 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "pgr_maxFlow - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:17
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:19
+msgid ""
+"``pgr_maxFlow`` — Calculates the maximum flow in a directed graph from the "
+"source(s) to the targets(s) using the Push Relabel algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:25
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:28
+msgid "Availability: 2.4.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:35
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:36
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:37
+msgid ""
+"When the maximum flow is 0 then there is no flow and **0** is returned."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:39
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:41
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:42
+msgid "Uses the :ref:`pgr_pushRelabel <pgr_pushRelabel>` algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:44
+msgid "Running time: :math:`O( V ^ 3)`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:47
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:62
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:64
+msgid "Calculates the maximum flow from the `source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:82
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:84
+msgid "Calculates the maximum flow from the `source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:102
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:104
+msgid "Calculates the maximum flow from all the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:122
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:124
+msgid ""
+"Calculates the maximum flow from all of the `sources` to all of the "
+"`targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:138
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152 ../../build/doc/pgr_maxFlow.rst:169
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152 ../../build/doc/pgr_maxFlow.rst:169
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:155
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:157
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:149
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:154
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:154
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:154
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:155 ../../build/doc/pgr_maxFlow.rst:157
+#: ../../build/doc/pgr_maxFlow.rst:171
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:155
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:156
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:156 ../../build/doc/pgr_maxFlow.rst:158
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:156
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:157
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:158
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:158
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:166
+msgid "Description of the return value"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:171
+msgid "Maximum flow possible from the source(s) to the target(s)"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:175
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:177
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:178
+msgid "http://www.boost.org/libs/graph/doc/push_relabel_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:179
+msgid ""
+"https://en.wikipedia.org/wiki/Push%E2%80%93relabel_maximum_flow_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:182
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:183
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:184
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_nodeNetwork.po b/locale/de/LC_MESSAGES/pgr_nodeNetwork.po
new file mode 100644
index 0000000..b9b92db
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_nodeNetwork.po
@@ -0,0 +1,353 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_nodeNetwork.rst:13
+msgid "pgr_nodeNetwork"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:18
+msgid "``pgr_nodeNetwork`` - Nodes an network edge table."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:20
+msgid "Nicolas Ribot"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:21
+msgid "Nicolas Ribot, The source code is released under the MIT-X license."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:27
+msgid ""
+"The function reads edges from a not \"noded\" network table and writes the "
+"\"noded\" edges into a new table."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:39
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:41
+msgid ""
+"A common problem associated with bringing GIS data into pgRouting is the "
+"fact that the data is often not \"noded\" correctly. This will create "
+"invalid topologies, which will result in routes that are incorrect."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:43
+msgid ""
+"What we mean by \"noded\" is that at every intersection in the road network "
+"all the edges will be broken into separate road segments. There are cases "
+"like an over-pass and under-pass intersection where you can not traverse "
+"from the over-pass to the under-pass, but this function does not have the "
+"ability to detect and accommodate those situations."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:45
+msgid ""
+"This function reads the ``edge_table`` table, that has a primary key column "
+"``id`` and geometry column named ``the_geom`` and intersect all the segments"
+" in it against all the other segments and then creates a table "
+"``edge_table_noded``. It uses the ``tolerance`` for deciding that multiple "
+"nodes within the tolerance are considered the same node."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:47
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:49
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:50
+msgid "``float8`` tolerance for coincident points (in projection unit)dd"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:51
+msgid ""
+"``text`` Primary key column name of the network table. Default value is "
+"``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:52
+msgid ""
+"``text`` Geometry column name of the network table. Default value is "
+"``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:53
+msgid "``text`` Suffix for the new table's. Default value is ``noded``."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:55
+msgid "The output table will have for  ``edge_table_noded``"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:57
+msgid "``bigint`` Unique identifier for the table"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:58
+msgid "``bigint``  Identifier of the edge in original table"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:59
+msgid "``integer`` Segment number of the original edge"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:60
+msgid ""
+"``integer`` Empty source column to be used with  :ref:`pgr_create_topology` "
+"function"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:61
+msgid ""
+"``integer`` Empty target column to be used with  :ref:`pgr_create_topology` "
+"function"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:62
+msgid "``geometry`` Geometry column of the noded network"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:65
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:66
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:70
+msgid "Example"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:72
+msgid "Let's create the topology for the data in :doc:`sampledata`"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:90
+msgid "Now we can analyze the network."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:114
+msgid ""
+"The analysis tell us that the network has a gap and an intersection. We try "
+"to fix the problem using:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:136
+msgid ""
+"Inspecting the generated table, we can see that edges 13,14 and 18 has been "
+"segmented"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:166
+msgid "We can create the topology of the new network"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:184
+msgid "Now let's analyze the new topology"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:210
+msgid "Images"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:243
+msgid "Comparing the results"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:245
+msgid "Comparing with the Analysis in the original edge_table, we see that."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:248
+msgid "Before"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:248
+msgid "After"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:250
+msgid "Table name"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:250
+msgid "edge_table"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:250
+msgid "edge_table_noded"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:252
+msgid "Fields"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:252
+msgid "All original fields"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:252
+msgid "Has only basic fields to do a topology analysis"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:254
+msgid "Dead ends"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:254
+msgid "Edges with 1 dead end: 1,6,24"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:255
+msgid "Edges with 2 dead ends  17,18"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:257
+msgid ""
+"Edge 17's right node is a dead end because there is no other edge sharing "
+"that same node. (cnt=1)"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:254
+msgid "Edges with 1 dead end: 1-1 ,6-1,14-2, 18-1 17-1 18-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:261
+msgid "Isolated segments"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:261
+msgid "two isolated segments:  17 and 18 both they have 2 dead ends"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:262
+msgid "No Isolated segments"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:262
+msgid "Edge 17 now shares a node with edges 14-1 and 14-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:263
+msgid "Edges 18-1 and 18-2 share a node with edges 13-1 and 13-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:265
+msgid "Gaps"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:265
+msgid ""
+"There is a gap between edge 17 and 14 because edge 14 is near to the right "
+"node of edge 17"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:265
+msgid ""
+"Edge 14 was segmented Now edges: 14-1 14-2 17 share the same node The "
+"tolerance value was taken in account"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:269
+msgid "Intersections"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:269
+msgid "Edges 13 and 18 were intersecting"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:269
+msgid ""
+"Edges were segmented, So, now in the interection's point there is a node and"
+" the following edges share it: 13-1 13-2 18-1 18-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:274
+msgid ""
+"Now, we are going to include the segments 13-1, 13-2 14-1, 14-2 ,18-1 and "
+"18-2 into our edge-table, copying the data for dir,cost,and reverse cost "
+"with tho following steps:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:276
+msgid ""
+"Add a column old_id into edge_table, this column is going to keep track the "
+"id of the original edge"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:277
+msgid ""
+"Insert only the segmented edges, that is, the ones whose max(sub_id) >1"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:290
+msgid "We recreate the topology:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:310
+msgid ""
+"To get the same analysis results as the topology of edge_table_noded, we do "
+"the following query:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:337
+msgid ""
+"To get the same analysis results as the original edge_table, we do the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:362
+msgid ""
+"Or we can analyze everything because, maybe edge 18 is an overpass, edge 14 "
+"is an under pass and there is also a street level juction, and the same "
+"happens with edges 17 and 13."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:389
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:391
+msgid ""
+":ref:`topology` for an overview of a topology for routing algorithms. "
+":ref:`pgr_analyze_oneway` to analyze directionality of the edges. "
+":ref:`pgr_create_topology` to create a topology based on the geometry. "
+":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:397
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:398
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:399
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_pointsAsPolygon.po b/locale/de/LC_MESSAGES/pgr_pointsAsPolygon.po
new file mode 100644
index 0000000..356d85b
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_pointsAsPolygon.po
@@ -0,0 +1,124 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:13
+msgid "pgr_pointsAsPolygon"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:21
+msgid ""
+"``pgr_pointsAsPolygon`` — Draws an alpha shape around given set of points."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:27
+msgid "Returns the alpha shape as (multi)polygon geometry."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:35
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:37
+msgid ""
+"``text`` a SQL query, which should return a set of rows with the following "
+"columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:43
+msgid "``int4`` identifier of the vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:44
+msgid "``float8`` x-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:45
+msgid "``float8`` y-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:47
+msgid ""
+"(optional) ``float8`` alpha value. If specified alpha value equals 0 "
+"(default), then optimal alpha value is used. For more information, see `CGAL"
+" - 2D Alpha Shapes "
+"<http://doc.cgal.org/latest/Alpha_shapes_2/group__PkgAlphaShape2.html>`_."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:50
+msgid "Returns a (multi)polygon geometry (with holes)."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:54
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:55
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:56
+msgid ""
+"Added alpha argument with default 0 (use optimal value) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:57
+msgid ""
+"Supported to return a (multi)polygon geometry (with holes) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:61
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:62
+msgid ""
+"In the following query there is no way to control which point in the polygon"
+" is the first in the list, so you may get similar but different results than"
+" the following which are also correct."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:69
+msgid "The query use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:73
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:75
+msgid ":ref:`pgr_drivingDistance` - Driving Distance"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:76
+msgid ":ref:`pgr_alphashape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:79
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:80
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:81
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_pushRelabel.po b/locale/de/LC_MESSAGES/pgr_pushRelabel.po
new file mode 100644
index 0000000..13e8a04
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_pushRelabel.po
@@ -0,0 +1,439 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_pushRelabel.rst:14
+msgid "pgr_pushRelabel - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:18
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:20
+msgid ""
+"``pgr_pushRelabel`` — Calculates the flow on the graph edges that maximizes "
+"the flow from the sources to the targets using Push Relabel Algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:29
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:30
+msgid "Renamed 2.5.0, Previous name pgr_maxFlowPushRelabel"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:31
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:8
+msgid ""
+"When the maximum flow is 0 then there is no flow and **EMPTY SET** is "
+"returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:12
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:15
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid ""
+"Creates a **super source** and edges to all the source(s), and a **super "
+"target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid ""
+"The maximum flow through the graph is guaranteed to be the value returned by"
+" :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and"
+" can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:41
+msgid "Running time: :math:`O( V ^ 3)`"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:44
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:60
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:62
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:81
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:83
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:102
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:104
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:123
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:125
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:140
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:4
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10 ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11 ../../build/doc/pgr_maxFlow.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:12
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:158
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:160
+msgid ""
+":ref:`maxFlow`, :ref:`pgr_boykovKolmogorov <pgr_boykovKolmogorov>`, "
+":ref:`pgr_edmondsKarp <pgr_edmondsKarp>`"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:161
+msgid "http://www.boost.org/libs/graph/doc/push_relabel_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:162
+msgid ""
+"https://en.wikipedia.org/wiki/Push%E2%80%93relabel_maximum_flow_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:165
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:166
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:167
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_strongComponents.po b/locale/de/LC_MESSAGES/pgr_strongComponents.po
new file mode 100644
index 0000000..6f6c0cf
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_strongComponents.po
@@ -0,0 +1,346 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_strongComponents.rst:13
+msgid "pgr_strongComponents - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:15
+msgid ""
+"``pgr_strongComponents`` — Return the strongly connected components of a "
+"directed graph using Tarjan's algorithm based on DFS. In particular, the "
+"algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:31
+msgid ""
+"A strongly connected component of a directed graph is a set of vertices that"
+" are all reachable from each other. This implementation can only be used "
+"with a directed graph."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:36
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:38
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:40
+msgid "Components are described by vertices"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:42
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:44
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:45
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:47
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:62
+msgid "The signature is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:75
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid ""
+"Description of the return values for connected components and strongly "
+"connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, component, n_seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid ""
+"Component identifier. It is equal to the minimum node identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:91
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:93
+msgid "http://en.wikipedia.org/wiki/Strongly_connected_component"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:94
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:97
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:98
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:99
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_trsp.po b/locale/de/LC_MESSAGES/pgr_trsp.po
new file mode 100644
index 0000000..108f0f8
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_trsp.po
@@ -0,0 +1,281 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_trsp.rst:13
+msgid "pgr_trsp - Turn Restriction Shortest Path (TRSP)"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:22
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:24
+msgid ""
+"``pgr_trsp`` — Returns the shortest path with support for turn restrictions."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:28
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:30
+msgid ""
+"The turn restricted shorthest path (TRSP) is a shortest path algorithm that "
+"can optionally take into account complicated turn restrictions like those "
+"found in real world navigable road networks. Performamnce wise it is nearly "
+"as fast as the A* search but has many additional features like it works with"
+" edges rather than the nodes of the network. Returns a set of "
+":ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows, that "
+"make up a path."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:57
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:59
+msgid ""
+"The Turn Restricted Shortest Path algorithm (TRSP) is similar to the "
+"shooting star in that you can specify turn restrictions."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:61
+msgid ""
+"The TRSP setup is mostly the same as :ref:`Dijkstra shortest path "
+"<pgr_dijkstra>` with the addition of an optional turn restriction table. "
+"This provides an easy way of adding turn restrictions to a road network by "
+"placing them in a separate table."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:64 ../../build/doc/pgr_trsp.rst:120
+msgid ""
+"a SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:71 ../../build/doc/pgr_trsp.rst:127
+msgid "``int4`` identifier of the edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:72 ../../build/doc/pgr_trsp.rst:128
+msgid "``int4`` identifier of the source vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:73 ../../build/doc/pgr_trsp.rst:129
+msgid "``int4`` identifier of the target vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:74 ../../build/doc/pgr_trsp.rst:130
+msgid ""
+"``float8`` value, of the edge traversal cost. A negative cost will prevent "
+"the edge from being inserted in the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:75 ../../build/doc/pgr_trsp.rst:131
+msgid ""
+"(optional) the cost for the reverse traversal of the edge. This is only used"
+" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
+"above remark about negative costs)."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:77
+msgid "``int4`` **NODE id** of the start point"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:78
+msgid "``int4`` **NODE id** of the end point"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:79 ../../build/doc/pgr_trsp.rst:134
+msgid "``true`` if the graph is directed"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:80 ../../build/doc/pgr_trsp.rst:135
+msgid ""
+"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
+"will be used for the cost of the traversal of the edge in the opposite "
+"direction."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:82 ../../build/doc/pgr_trsp.rst:137
+msgid ""
+"(optional) a SQL query, which should return a set of rows with the following"
+" columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:88 ../../build/doc/pgr_trsp.rst:143
+msgid "``float8`` turn restriction cost"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:89 ../../build/doc/pgr_trsp.rst:144
+msgid "``int4`` target id"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:90
+msgid ""
+"``text`` comma separated list of edges in the reverse order of ``rule``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:92
+msgid ""
+"Another variant of TRSP allows to specify **EDGE id** of source and target "
+"together with a fraction to interpolate the position:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:94
+msgid "``int4`` **EDGE id** of the start edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:95
+msgid "``float8`` fraction of 1 defines the position on the start edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:96
+msgid "``int4`` **EDGE id** of the end edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:97
+msgid "``float8`` fraction of 1 defines the position on the end edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:99 ../../build/doc/pgr_trsp.rst:152
+msgid "Returns set of :ref:`type_cost_result`:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:101 ../../build/doc/pgr_trsp.rst:154
+msgid "row sequence"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:102 ../../build/doc/pgr_trsp.rst:156
+msgid "node ID"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:103 ../../build/doc/pgr_trsp.rst:157
+msgid "edge ID (``-1`` for the last row)"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:104
+msgid "cost to traverse from ``id1`` using ``id2``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:107 ../../build/doc/pgr_trsp.rst:162
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:108
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:111
+msgid "Support for Vias"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:113
+msgid ""
+"The Support for Vias functions are prototypes. Not all corner cases are "
+"being considered."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:116
+msgid ""
+"We also have support for vias where you can say generate a from A to B to C,"
+" etc. We support both methods above only you pass an array of vertices or "
+"and array of edges and percentage position along the edge in two arrays."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:133
+msgid ""
+"``int4[]`` An ordered array of **NODE id** the path will go through from "
+"start to end."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:145
+msgid ""
+"``text`` commar separated list of edges in the reverse order of ``rule``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:147
+msgid ""
+"Another variant of TRSP allows to specify **EDGE id** together with a "
+"fraction to interpolate the position:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:149
+msgid "``int4`` An ordered array of **EDGE id** that the path has to traverse"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:150
+msgid ""
+"``float8`` An array of fractional positions along the respective edges in "
+"``eids``, where 0.0 is the start of the edge and 1.0 is the end of the "
+"eadge."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:155
+msgid "route ID"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:158
+msgid "cost to traverse from ``id2`` using ``id3``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:163
+msgid "Via Support prototypes new in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:166
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:168
+msgid "**Without turn restrictions**"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:175
+msgid "**With turn restrictions**"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:177
+msgid "Then a query with turn restrictions is created as:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:184
+msgid "An example query using vertex ids and via points:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:191
+msgid "An example query using edge ids and vias:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:198
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:202
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:204
+msgid ":ref:`type_cost_result`"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:207
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:208
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:209
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_version.po b/locale/de/LC_MESSAGES/pgr_version.po
new file mode 100644
index 0000000..5a6623a
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_version.po
@@ -0,0 +1,130 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_version.rst:13
+msgid "pgr_version"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:21
+msgid "``pgr_version`` — Query for pgRouting version information."
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:27
+msgid "Returns a table with pgRouting version information."
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:35 ../../build/doc/pgr_version.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:37
+msgid "Returns a table with:"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:40
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:40
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:42
+msgid "**version**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:42 ../../build/doc/pgr_version.rst:43
+#: ../../build/doc/pgr_version.rst:44 ../../build/doc/pgr_version.rst:45
+#: ../../build/doc/pgr_version.rst:46
+msgid "``varchar``"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:42
+msgid "pgRouting version"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:43
+msgid "**tag**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:43
+msgid "Git tag of pgRouting build"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:44
+msgid "**hash**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:44
+msgid "Git hash of pgRouting build"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:45
+msgid "**branch**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:45
+msgid "Git branch of pgRouting build"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:46
+msgid "**boost**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:46
+msgid "Boost version"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:51
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:52
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:56
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:58
+msgid "Query for full version string"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:66
+msgid "Query for ``version`` and ``boost`` attribute"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:78
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:81
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:82
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:83
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_vrpOneDepot.po b/locale/de/LC_MESSAGES/pgr_vrpOneDepot.po
new file mode 100644
index 0000000..a0c5006
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_vrpOneDepot.po
@@ -0,0 +1,112 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:14
+msgid "pgr_vrpOneDepot - Experimental"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:21
+msgid "**No documentation available**"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:24
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:28
+msgid "Current Result"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:34
+msgid "Data"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:41
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:43
+msgid "http://en.wikipedia.org/wiki/Vehicle_routing_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:46
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:47
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:48
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_withPoints.po b/locale/de/LC_MESSAGES/pgr_withPoints.po
new file mode 100644
index 0000000..be629d4
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_withPoints.po
@@ -0,0 +1,665 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPoints.rst:13
+msgid "pgr_withPoints - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:19
+msgid ""
+"``pgr_withPoints`` - Returns the shortest path in a graph with additional "
+"temporary vertices."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:33
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:37
+msgid ""
+"Modify the graph to include points defined by points_sql. Using Dijkstra "
+"algorithm, find the shortest path(s)"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:41
+msgid "Characteristics:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:43
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:45
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:46
+msgid "Vertices of the graph are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:48
+msgid "**positive** when it belongs to the edges_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:49
+msgid "**negative** when it belongs to the points_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:51
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:53
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path. -"
+" The agg_cost the non included values (v, v) is 0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:56
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path: - The agg_cost the non included values (u, v) is ∞"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:59
+msgid ""
+"For optimization purposes, any duplicated value in the start_vids or "
+"end_vids are ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:60
+msgid ""
+"The returned values are ordered: - start_vid ascending - end_vid ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:64
+msgid "Running time: :math:`O(|start\\_vids|\\times(V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:68
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:81
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:87
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:92
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:90
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:91
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:92
+msgid ""
+"No **details** are given about distance of other points of points_sql query."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:100
+msgid "From point 1 to point 3"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:110
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:120
+msgid "From point 1 to vertex 3"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:132
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:141
+msgid "From point 1 to point 3 and vertex 5"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:153
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:162
+msgid "From point 1 and vertex 2  to point 3"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:172
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:182
+msgid "From point 1 and vertex 2  to point 3 and vertex 7"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:192
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPoints.rst:236
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPoints.rst:211
+#: ../../build/doc/pgr_withPoints.rst:236
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPoints.rst:211
+#: ../../build/doc/pgr_withPoints.rst:236
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPoints.rst:215
+#: ../../build/doc/pgr_withPoints.rst:216
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_withPoints.rst:249
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPoints.rst:220
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPoints.rst:222
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPoints.rst:223
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:207
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:211
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:213
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:213
+#: ../../build/doc/pgr_withPoints.rst:214
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:213
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:214
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:214
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:215
+#: ../../build/doc/pgr_withPoints.rst:240
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:215
+msgid "Starting vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:216
+#: ../../build/doc/pgr_withPoints.rst:241
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:216
+msgid "Ending vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:217
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:217
+#: ../../build/doc/pgr_withPoints.rst:218
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:217
+msgid ""
+"Array of identifiers of starting vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:218
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:218
+msgid ""
+"Array of identifiers of ending vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:219
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:219
+#: ../../build/doc/pgr_withPoints.rst:225
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:219
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:220
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:223
+msgid ""
+"(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:221
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:225
+msgid "**details**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:225
+msgid ""
+"(optional). When ``true`` the results will include the points in points_sql "
+"that are in the path. Default is ``false`` which ignores other points of the"
+" points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:231
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:233
+msgid ""
+"Returns set of ``(seq, [path_seq,] [start_vid,] [end_vid,] node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:238
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:238
+#: ../../build/doc/pgr_withPoints.rst:239
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:238
+msgid "Row sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:239
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:239
+msgid "Path sequence that indicates the relative position on the path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:240
+#: ../../build/doc/pgr_withPoints.rst:241
+#: ../../build/doc/pgr_withPoints.rst:242
+#: ../../build/doc/pgr_withPoints.rst:246
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:240
+msgid "Identifier of the starting vertex. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:241
+msgid "Identifier of the ending vertex. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:242
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:244
+msgid "Identifier of the node:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:243
+msgid "A positive value indicates the node is a vertex of edges_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:244
+msgid "A negative value indicates the node is a point of points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:246
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:247
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:247
+msgid "``-1`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:249
+#: ../../build/doc/pgr_withPoints.rst:252
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:250
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next ``node`` in the "
+"path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:250
+msgid "``0`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:252
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:253
+msgid "Aggregate cost from ``start_pid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:253
+msgid "``0`` for the first row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:260
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:262
+msgid ""
+"Which path (if any) passes in front of point 6 or vertex 6 with **right** "
+"side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:268
+msgid ""
+"Which path (if any) passes in front of point 6 or vertex 6 with **left** "
+"side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:274
+msgid ""
+"Many to many example with a twist: on undirected graph and showing details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:281
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:286
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:287
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:291
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:293
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:296
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:297
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:298
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_withPointsCost.po b/locale/de/LC_MESSAGES/pgr_withPointsCost.po
new file mode 100644
index 0000000..f478ccd
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_withPointsCost.po
@@ -0,0 +1,603 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsCost.rst:13
+msgid "pgr_withPointsCost - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:19
+msgid ""
+"``pgr_withPointsCost`` - Calculates the shortest path and returns only the "
+"aggregate cost of the shortest path(s) found, for the combination of points "
+"given."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:33
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:37
+msgid ""
+"Modify the graph to include points defined by points_sql. Using Dijkstra "
+"algorithm, return only the aggregate cost of the shortest path(s) found."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:41
+msgid "Characteristics:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:79
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:44
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:45
+msgid ""
+"Returns the sum of the costs of the shortest path for pair combination of "
+"vertices in the modified graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:46
+msgid "Vertices of the graph are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:48
+msgid "**positive** when it belongs to the edges_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:49
+msgid "**negative** when it belongs to the points_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:51
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:52
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:54
+msgid ""
+"The returned values are in the form of a set of `(start_vid, end_vid, "
+"agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:56
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:58
+msgid "The `agg_cost` in the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:60
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:62
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:64
+msgid ""
+"If the values returned are stored in a table, the unique index would be the "
+"pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:67
+msgid "For undirected graphs, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:69
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:71
+msgid ""
+"For optimization purposes, any duplicated value in the `start_vids` or "
+"`end_vids` is ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:73
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:75
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:76
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:78
+msgid "Running time: :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:82
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:92
+msgid ""
+"There is no **details** flag, unlike the other members of the withPoints "
+"family of functions."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:96
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:102
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:106
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:105
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:106
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:124
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:145
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:166
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:185
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:204
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCost.rst:246
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCost.rst:223
+#: ../../build/doc/pgr_withPointsCost.rst:246
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCost.rst:223
+#: ../../build/doc/pgr_withPointsCost.rst:246
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPointsCost.rst:227
+#: ../../build/doc/pgr_withPointsCost.rst:228
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsCost.rst:232
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsCost.rst:234
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsCost.rst:235
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:219
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:223
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:225
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:225
+#: ../../build/doc/pgr_withPointsCost.rst:226
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:225
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:226
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:226
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:227
+#: ../../build/doc/pgr_withPointsCost.rst:248
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:227
+msgid "Starting vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:228
+#: ../../build/doc/pgr_withPointsCost.rst:249
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:228
+msgid "Ending vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:229
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:229
+#: ../../build/doc/pgr_withPointsCost.rst:230
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:229
+msgid ""
+"Array of identifiers of starting vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:230
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:230
+msgid ""
+"Array of identifiers of ending vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:231
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:231
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:231
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:232
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:235
+msgid ""
+"(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:233
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:241
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:243
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:248
+#: ../../build/doc/pgr_withPointsCost.rst:249
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:248
+msgid "Identifier of the starting vertex. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:249
+msgid "Identifier of the ending point. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:250
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:250
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:250
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:256
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:258
+msgid "With **right** side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:264
+msgid "With **left** side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:270
+msgid "Does not matter driving side."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:277
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:282
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:283
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:287
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:289
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:292
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:293
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:294
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_withPointsCostMatrix.po b/locale/de/LC_MESSAGES/pgr_withPointsCostMatrix.po
new file mode 100644
index 0000000..c9bb20f
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_withPointsCostMatrix.po
@@ -0,0 +1,472 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:13
+msgid "pgr_withPointsCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:19
+msgid ""
+"``pgr_withPointsCostMatrix`` - Calculates the shortest path and returns only"
+" the aggregate cost of the shortest path(s) found, for the combination of "
+"points given."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:31
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:35
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:37
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:45
+msgid ""
+"There is no **details** flag, unlike the other members of the withPoints "
+"family of functions."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:49
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:55
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:59
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:58
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:59
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:78
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:87
+msgid "returning a symmetrical cost matrix"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:89
+msgid "Using the default **side** value on the **points_sql** query"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:90
+msgid "Using an undirected graph"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:91
+msgid "Using the default **driving_side** value"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:100
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:120
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:120
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:126
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:128
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:129
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:116
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:120
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:122
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:122
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:123
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:122
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:123
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:123
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:124
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:124
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:124
+msgid ""
+"Array of identifiers of starting vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:125
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:125
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:125
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:126
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:129
+msgid ""
+"(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:127
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:140
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:142
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:151
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:153
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:154
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:155
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:156
+msgid "`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:159
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:160
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:161
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_withPointsDD.po b/locale/de/LC_MESSAGES/pgr_withPointsDD.po
new file mode 100644
index 0000000..95b4be1
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_withPointsDD.po
@@ -0,0 +1,552 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsDD.rst:13
+msgid "pgr_withPointsDD - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:19
+msgid ""
+"``pgr_withPointsDD`` - Returns the driving distance from a starting point."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:33
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:37
+msgid ""
+"Modify the graph to include points and using Dijkstra algorithm, extracts "
+"all the nodes and points that have costs less than or equal to the value "
+"``distance`` from the starting point. The edges extracted will conform the "
+"corresponding spanning tree."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:44
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:54
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:60
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:65
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:63
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:64
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:65
+msgid "No **details** are given about distance of other points of the query."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:84
+msgid "Driving distance from a single point"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:86
+#: ../../build/doc/pgr_withPointsDD.rst:106
+msgid "Finds the driving distance depending on the optional parameters setup."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:94
+msgid "Right side driving topology"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:104
+msgid "Driving distance from many starting points"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:118
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsDD.rst:162
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsDD.rst:138
+#: ../../build/doc/pgr_withPointsDD.rst:162
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsDD.rst:138
+#: ../../build/doc/pgr_withPointsDD.rst:162
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPointsDD.rst:142
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_withPointsDD.rst:169
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+#: ../../build/doc/pgr_withPointsDD.rst:143
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsDD.rst:145
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsDD.rst:147
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsDD.rst:148
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:134
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:138
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:140
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:140
+#: ../../build/doc/pgr_withPointsDD.rst:141
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:140
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:141
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:141
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:142
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:142
+msgid "Starting point id"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:143
+msgid "**distance**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:143
+msgid "Distance from the start_pid"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:144
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:144
+#: ../../build/doc/pgr_withPointsDD.rst:150
+#: ../../build/doc/pgr_withPointsDD.rst:152
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:144
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:145
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:148
+msgid ""
+"(optional). Value in ['b', 'r', 'l', NULL] indicating if the driving side "
+"is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:146
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:150
+msgid "**details**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:150
+msgid ""
+"(optional). When ``true`` the results will include the driving distance to "
+"the points with in the ``distance``. Default is ``false`` which ignores "
+"other points of the points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:152
+msgid "**equicost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:152
+msgid ""
+"(optional). When ``true`` the nodes will only appear in the closest start_v "
+"list. Default is ``false`` which resembles several calls using the single "
+"starting point signatures. Tie brakes are arbitrary."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:157
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:159
+msgid "Returns set of ``(seq, node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:164
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:164
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:164
+msgid "row sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:165
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:165
+#: ../../build/doc/pgr_withPointsDD.rst:166
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:165
+msgid ""
+"Identifier of the node within the Distance from ``start_pid``. If ``details "
+"=: true`` a negative value is the identifier of a point."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:166
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:167
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:167
+msgid "``-1`` when ``start_vid`` = ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:169
+#: ../../build/doc/pgr_withPointsDD.rst:172
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:170
+msgid "Cost to traverse ``edge``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:170
+#: ../../build/doc/pgr_withPointsDD.rst:173
+msgid "``0`` when ``start_vid`` = ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:172
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:173
+msgid "Aggregate cost from ``start_vid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:180
+msgid ""
+"Examples for queries marked as ``directed`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:182
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:184
+msgid "Left side driving topology"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:190
+msgid "Does not matter driving side."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:199
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:204
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:205
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:209
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:211
+msgid ":ref:`pgr_drivingDistance` - Driving distance using dijkstra."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:212
+msgid ":ref:`pgr_alphashape` - Alpha shape computation."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:213
+msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:216
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:217
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:218
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/pgr_withPointsKSP.po b/locale/de/LC_MESSAGES/pgr_withPointsKSP.po
new file mode 100644
index 0000000..8202877
--- /dev/null
+++ b/locale/de/LC_MESSAGES/pgr_withPointsKSP.po
@@ -0,0 +1,571 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsKSP.rst:13
+msgid "pgr_withPointsKSP - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:19
+msgid ""
+"``pgr_withPointsKSP`` - Find the K shortest paths using Yen's algorithm."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:29
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:32
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:34
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:36
+msgid ""
+"Modifies the graph to include the points defined in the ``points_sql`` and "
+"using Yen algorithm, finds the K shortest paths."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:41
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:56
+msgid "Minimal Usage"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:62
+msgid "The minimal usage:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:59
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:60
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:61
+msgid "No **details** are given about distance of other points of the query."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:62
+msgid "No **heap paths** are returned."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:80
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:82
+msgid "Finds the K shortest paths depending on the optional parameters setup."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:91
+msgid "With details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:98
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsKSP.rst:144
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsKSP.rst:119
+#: ../../build/doc/pgr_withPointsKSP.rst:144
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsKSP.rst:119
+#: ../../build/doc/pgr_withPointsKSP.rst:144
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPointsKSP.rst:123
+#: ../../build/doc/pgr_withPointsKSP.rst:124
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_withPointsKSP.rst:153
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsKSP.rst:128
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsKSP.rst:130
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsKSP.rst:131
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:115
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:119
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:121
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:121
+#: ../../build/doc/pgr_withPointsKSP.rst:122
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:121
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:122
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:122
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:123
+msgid "**start_pid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:123
+msgid "Starting point id."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:124
+msgid "**end_pid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:124
+msgid "Ending point id."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:125
+msgid "**K**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:125
+#: ../../build/doc/pgr_withPointsKSP.rst:146
+#: ../../build/doc/pgr_withPointsKSP.rst:147
+#: ../../build/doc/pgr_withPointsKSP.rst:148
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:125
+msgid "Number of shortest paths."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:126
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:126
+#: ../../build/doc/pgr_withPointsKSP.rst:127
+#: ../../build/doc/pgr_withPointsKSP.rst:133
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:126
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:127
+msgid "**heap_paths**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:127
+msgid ""
+"(optional). When ``true`` the paths calculated to get the shortests paths "
+"will be returned also. Default is ``false`` only the K shortest paths are "
+"returned."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:128
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:131
+msgid ""
+"(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:129
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:133
+msgid "**details**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:133
+msgid ""
+"(optional). When ``true`` the results will include the driving distance to "
+"the points with in the ``distance``. Default is ``false`` which ignores "
+"other points of the points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:139
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:141
+msgid ""
+"Returns set of ``(seq, path_id, path_seq, node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:146
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:146
+msgid "Row sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:147
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:147
+msgid ""
+"Relative position in the path of node and edge. Has value 1 for the "
+"beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:148
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:148
+msgid ""
+"Path identifier. The ordering of the paths: For two paths i, j if i < j then"
+" agg_cost(i) <= agg_cost(j)."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:149
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:149
+#: ../../build/doc/pgr_withPointsKSP.rst:150
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:149
+msgid ""
+"Identifier of the node in the path. Negative values are the identifiers of a"
+" point."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:150
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:151
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:151
+msgid "``-1`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:153
+#: ../../build/doc/pgr_withPointsKSP.rst:156
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:154
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next ``node`` in the "
+"path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:154
+msgid "``0`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:156
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:157
+msgid "Aggregate cost from ``start_pid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:157
+msgid "``0`` for the first row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:164
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:166
+msgid "Left side driving topology with details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:172
+msgid "Right side driving topology with heap paths and details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:178
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:181
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:182
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:186
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:188
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:191
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:192
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:193
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/proposed.po b/locale/de/LC_MESSAGES/proposed.po
new file mode 100644
index 0000000..9f1a6f4
--- /dev/null
+++ b/locale/de/LC_MESSAGES/proposed.po
@@ -0,0 +1,410 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/proposed.rst:13
+msgid "Stable Proposed Functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:20
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:22
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:23
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:24
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:25
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:26
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:27
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:33
+msgid "As part of the :ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:35
+msgid ""
+":ref:`pgr_dijkstraCostMatrix` Use pgr_dijkstra to calculate a cost matrix."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:36
+msgid ""
+":ref:`pgr_dijkstraVia` - Use pgr_dijkstra to make a route via vertices."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:39
+msgid "Families"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:40
+msgid ":ref:`astar`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:3
+msgid ":ref:`pgr_aStar` - A* algorithm for the shortest path."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:4
+msgid ":ref:`pgr_aStarCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:5
+msgid ""
+":ref:`pgr_aStarCostMatrix` - Get the cost matrix of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:46
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:3
+msgid ":ref:`pgr_bdAstar` - Bidirectional A* algorithm for obtaining paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid ""
+":ref:`pgr_bdAstarCost` - Bidirectional A* algorithm to calculate the cost of"
+" the paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:5
+msgid ""
+":ref:`pgr_bdAstarCostMatrix` - Bidirectional A* algorithm to calculate a "
+"cost matrix of paths."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:52
+msgid ":ref:`bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:3
+msgid ""
+":ref:`pgr_bdDijkstra` - Bidirectional Dijkstra algorithm for the shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:4
+msgid ""
+":ref:`pgr_bdDijkstraCost` - Bidirectional Dijkstra to calculate the cost of "
+"the shortest paths"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:5
+msgid ""
+":ref:`pgr_bdDijkstraCostMatrix` - Bidirectional Dijkstra algorithm  to "
+"create a matrix of costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:58
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:3
+msgid ""
+":ref:`pgr_maxFlow` - Only the Max flow calculation using Push and Relabel "
+"algorithm."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:4
+msgid ""
+":ref:`pgr_BoykovKolmogorov` - Boykov and Kolmogorov with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid ""
+":ref:`pgr_EdmondsKarp` - Edmonds and Karp algorithm with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid ""
+":ref:`pgr_PushRelabel` - Push and relabel algorithm with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Applications"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:9
+msgid ""
+":ref:`pgr_edgeDisjointPaths` - Calculates edge disjoint paths between two "
+"groups of vertices."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid ""
+":ref:`pgr_maxCardinalityMatch` - Calculates a maximum cardinality matching "
+"in a graph."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:64
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:3
+msgid ":ref:`pgr_withPoints` - Route from/to points anywhere on the graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:4
+msgid ":ref:`pgr_withPointsCost` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:5
+msgid ":ref:`pgr_withPointsCostMatrix` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:6
+msgid ":ref:`pgr_withPointsKSP` - K shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:7
+msgid ":ref:`pgr_withPointsDD` - Driving distance."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:71
+msgid "categories"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:72
+msgid ":ref:`Cost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:3
+msgid ":ref:`pgr_aStarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:4
+msgid ":ref:`pgr_bdAstarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:5
+msgid ":ref:`pgr_bdDijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:6
+msgid ":ref:`pgr_dijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:7
+msgid ":ref:`pgr_withPointsCost`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:78
+msgid ":ref:`CostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:3
+msgid ":ref:`pgr_aStarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:4
+msgid ":ref:`pgr_bdAstarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:5
+msgid ":ref:`pgr_bdDijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:6
+msgid ":ref:`pgr_dijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:7
+msgid ":ref:`pgr_withPointsCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:84
+msgid ":ref:`KSP`"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:3
+msgid ":ref:`pgr_KSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:4
+msgid ":ref:`pgr_withPointsKSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:106
+msgid "Experimental Functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:111
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:113
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:114
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:116
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:117
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:118
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:119
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:120
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:121
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:122
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:123
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:124
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:125
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:126
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:127
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:132
+msgid ":ref:`contraction` - Reduce network size using contraction techniques"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:134
+msgid ""
+":ref:`pgr_contractgraph` - Reduce network size using contraction techniques"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:138
+msgid "Graph Analysis"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:139
+msgid ":ref:`pgr_labelGraph` - Analyze / label  subgraphs within a network"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:141
+msgid ":ref:`components` - Analyze components within a graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:143
+msgid ""
+":ref:`pgr_connectedComponents` - Return the connected components of an "
+"undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:144
+msgid ""
+":ref:`pgr_strongComponents` - Return the strongly connected components of a "
+"directed graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:145
+msgid ""
+":ref:`pgr_biconnectedComponents` - Return the biconnected components of an "
+"undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:146
+msgid ""
+":ref:`pgr_articulationPoints` - Return the articulation points of an "
+"undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:147
+msgid ":ref:`pgr_bridges` - Return the bridges of an undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:150
+msgid "VRP"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:151
+msgid ":ref:`pgr_gsocvrppdtw`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:152
+msgid ":ref:`pgr_vrp_basic`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:166
+msgid "Graph Transformation"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:167
+msgid ":doc:`pgr_lineGraph`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:175
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:178
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:179
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:180
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/release_notes.po b/locale/de/LC_MESSAGES/release_notes.po
new file mode 100644
index 0000000..f4a09f7
--- /dev/null
+++ b/locale/de/LC_MESSAGES/release_notes.po
@@ -0,0 +1,1278 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/release_notes.rst:13
+msgid "Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:15
+msgid ""
+"To see the full list of changes check the list of `Git commits "
+"<https://github.com/pgRouting/pgrouting/commits>`_ on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:18
+msgid "Table of contents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:21
+msgid ":ref:`changelog_2_5_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:22
+msgid ":ref:`changelog_2_4_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:23
+msgid ":ref:`changelog_2_4_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:24
+msgid ":ref:`changelog_2_4_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:25
+msgid ":ref:`changelog_2_3_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:26
+msgid ":ref:`changelog_2_3_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:27
+msgid ":ref:`changelog_2_3_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:28
+msgid ":ref:`changelog_2_2_4`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:29
+msgid ":ref:`changelog_2_2_3`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:30
+msgid ":ref:`changelog_2_2_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:31
+msgid ":ref:`changelog_2_2_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:32
+msgid ":ref:`changelog_2_2_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:33
+msgid ":ref:`changelog_2_1_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:34
+msgid ":ref:`changelog_2_0_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:35
+msgid ":ref:`changelog_2_0_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:36
+msgid ":ref:`changelog_1_x`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:43
+msgid "pgRouting 2.5.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:45
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.5.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.5.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:49
+msgid "enhancement:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:50
+msgid "pgr_version is now on SQL language"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:53
+msgid "Breaking change on:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:54
+msgid "pgr_edgeDisjointPaths:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:56
+msgid "Added path_id, cost and agg_cost columns on the result"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:57
+msgid "Parameter names changed"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:58
+msgid "The many version results are the union of the one to one version"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:61
+msgid "New Signatures:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:62
+msgid "pgr_bdAstar(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:65 ../../build/doc/release_notes.rst:223
+msgid "New Proposed functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:66
+msgid "pgr_bdAstar(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:67
+msgid "pgr_bdAstar(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:68
+msgid "pgr_bdAstar(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:69
+msgid "pgr_bdAstarCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:70
+msgid "pgr_bdAstarCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:71
+msgid "pgr_bdAstarCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:72
+msgid "pgr_bdAstarCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:73
+msgid "pgr_bdAstarCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:74
+msgid "pgr_bdDijkstra(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:75
+msgid "pgr_bdDijkstra(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:76
+msgid "pgr_bdDijkstra(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:77
+msgid "pgr_bdDijkstraCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:78
+msgid "pgr_bdDijkstraCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:79
+msgid "pgr_bdDijkstraCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:80
+msgid "pgr_bdDijkstraCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:81
+msgid "pgr_bdDijkstraCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:82
+msgid "pgr_lineGraph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:83
+msgid "pgr_connectedComponents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:84
+msgid "pgr_strongComponents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:85
+msgid "pgr_biconnectedComponents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:86
+msgid "pgr_articulationPoints"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:87
+msgid "pgr_bridges"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:90 ../../build/doc/release_notes.rst:160
+#: ../../build/doc/release_notes.rst:247
+msgid "Deprecated Signatures"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:91
+msgid "pgr_bdastar - use pgr_bdAstar instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:94
+msgid "Renamed Functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:95
+msgid "pgr_maxFlowPushRelabel - use pgr_pushRelabel instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:96
+msgid "pgr_maxFlowEdmondsKarp -use pgr_edmondsKarp instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:97
+msgid "pgr_maxFlowBoykovKolmogorov - use pgr_boykovKolmogorov instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:98
+msgid "pgr_maximumCardinalityMatching - use pgr_maxCardinalityMatch instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:101
+msgid "Deprecated function"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:102
+msgid "pgr_pointToEdgeNode"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:108
+msgid "pgRouting 2.4.2 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:110
+msgid ""
+"To see the issues closed by this release see the `Git closed milestone for "
+"2.4.2 "
+"<https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.4.2%22%20>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:113
+msgid "Improvement"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:114
+msgid "Works for postgreSQL 10"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:117 ../../build/doc/release_notes.rst:131
+#: ../../build/doc/release_notes.rst:168 ../../build/doc/release_notes.rst:522
+#: ../../build/doc/release_notes.rst:529 ../../build/doc/release_notes.rst:550
+#: ../../build/doc/release_notes.rst:557
+msgid "Bug fixes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:118
+msgid "Fixed: Unexpected error column \"cname\""
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:119
+msgid ""
+"Replace __linux__ with __GLIBC__ for glibc-specific headers and functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:126
+msgid "pgRouting 2.4.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:128
+msgid ""
+"To see the issues closed by this release see the `Git closed milestone for "
+"2.4.1 "
+"<https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.4.1%22%20>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:132
+msgid "Fixed compiling error on macOS"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:133
+msgid "Condition error on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:138
+msgid "pgRouting 2.4.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:140
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.4.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.4.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:143 ../../build/doc/release_notes.rst:213
+#: ../../build/doc/release_notes.rst:374
+msgid "New Signatures"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:144
+msgid "pgr_bdDijkstra"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:148
+msgid "New Proposed Signatures"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:149
+msgid "pgr_maxFlow"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:150
+msgid "pgr_astar(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:151
+msgid "pgr_astar(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:152
+msgid "pgr_astar(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:153
+msgid "pgr_astarCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:154
+msgid "pgr_astarCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:155
+msgid "pgr_astarCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:156
+msgid "pgr_astarCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:157
+msgid "pgr_astarCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:161
+msgid "pgr_bddijkstra - use pgr_bdDijkstra instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:164 ../../build/doc/release_notes.rst:253
+msgid "Deprecated Functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:165
+msgid "pgr_pointsToVids"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:169
+msgid "Bug fixes on proposed functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:171
+msgid "pgr_withPointsKSP: fixed ordering"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:173
+msgid "TRSP original code is used with no changes on the compilation warnings"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:178
+msgid "pgRouting 2.3.2 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:180
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.3.2 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.3.2%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:183 ../../build/doc/release_notes.rst:199
+#: ../../build/doc/release_notes.rst:269 ../../build/doc/release_notes.rst:282
+#: ../../build/doc/release_notes.rst:293 ../../build/doc/release_notes.rst:305
+#: ../../build/doc/release_notes.rst:424 ../../build/doc/release_notes.rst:455
+msgid "Bug Fixes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:184
+msgid "Fixed pgr_gsoc_vrppdtw crash when all orders fit on one truck."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:185
+msgid "Fixed pgr_trsp:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:187
+msgid "Alternate code is not executed when the point is in reality a vertex"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:188
+msgid "Fixed ambiguity on seq"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:194
+msgid "pgRouting 2.3.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:196
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.3.1 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.3.1%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:200
+msgid "Leaks on proposed max_flow functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:201
+msgid "Regression error on pgr_trsp"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:202
+msgid "Types discrepancy on pgr_createVerticesTable"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:208
+msgid "pgRouting 2.3.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:210
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.3.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.3.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:214
+msgid "pgr_TSP"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:215
+msgid "pgr_aStar"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:218 ../../build/doc/release_notes.rst:330
+msgid "New Functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:219
+msgid "pgr_eucledianTSP"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:224
+msgid "pgr_dijkstraCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:225
+msgid "pgr_withPointsCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:226
+msgid "pgr_maxFlowPushRelabel(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:227
+msgid "pgr_maxFlowPushRelabel(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:228
+msgid "pgr_maxFlowPushRelabel(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:229
+msgid "pgr_maxFlowPushRelabel(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:230
+msgid "pgr_maxFlowEdmondsKarp(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:231
+msgid "pgr_maxFlowEdmondsKarp(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:232
+msgid "pgr_maxFlowEdmondsKarp(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:233
+msgid "pgr_maxFlowEdmondsKarp(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:234
+msgid "pgr_maxFlowBoykovKolmogorov (one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:235
+msgid "pgr_maxFlowBoykovKolmogorov (one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:236
+msgid "pgr_maxFlowBoykovKolmogorov (many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:237
+msgid "pgr_maxFlowBoykovKolmogorov (many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:238
+msgid "pgr_maximumCardinalityMatching"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:239
+msgid "pgr_edgeDisjointPaths(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:240
+msgid "pgr_edgeDisjointPaths(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:241
+msgid "pgr_edgeDisjointPaths(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:242
+msgid "pgr_edgeDisjointPaths(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:243
+msgid "pgr_contractGraph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:248
+msgid "pgr_tsp - use pgr_TSP or pgr_eucledianTSP instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:249
+msgid "pgr_astar - use pgr_aStar instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:254
+msgid "pgr_flip_edges"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:255
+msgid "pgr_vidsToDmatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:256
+msgid "pgr_pointsToDMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:257
+msgid "pgr_textToPoints"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:264
+msgid "pgRouting 2.2.4 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:266
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.4 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.4%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:270
+msgid "Bogus uses of extern \"C\""
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:271
+msgid "Build error on Fedora 24 + GCC 6.0"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:272
+msgid "Regression error pgr_nodeNetwork"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:277
+msgid "pgRouting 2.2.3 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:279
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.3 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.3%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:283
+msgid "Fixed compatibility issues with PostgreSQL 9.6."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:288
+msgid "pgRouting 2.2.2 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:290
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.2 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.2%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:294
+msgid "Fixed regression error on pgr_drivingDistance"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:300
+msgid "pgRouting 2.2.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:302
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.1 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A2.2.1+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:306
+msgid "Server crash fix on pgr_alphaShape"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:307
+msgid "Bug fix on With Points family of functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:313
+msgid "pgRouting 2.2.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:315
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:319 ../../build/doc/release_notes.rst:387
+msgid "Improvements"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:320
+msgid "pgr_nodeNetwork"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:322
+msgid "Adding a row_where and outall optional parameters"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:324
+msgid "Signature fix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:326
+msgid "pgr_dijkstra  -- to match what is documented"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:331
+msgid "pgr_floydWarshall"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:332
+msgid "pgr_Johnson"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:333
+msgid "pgr_dijkstraCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:334
+msgid "pgr_dijkstraCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:335
+msgid "pgr_dijkstraCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:336
+msgid "pgr_dijkstraCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:339 ../../build/doc/release_notes.rst:391
+msgid "Proposed functionality"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:340
+msgid "pgr_withPoints(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:341
+msgid "pgr_withPoints(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:342
+msgid "pgr_withPoints(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:343
+msgid "pgr_withPoints(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:344
+msgid "pgr_withPointsCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:345
+msgid "pgr_withPointsCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:346
+msgid "pgr_withPointsCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:347
+msgid "pgr_withPointsCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:348
+msgid "pgr_withPointsDD(single vertex)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:349
+msgid "pgr_withPointsDD(multiple vertices)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:350
+msgid "pgr_withPointsKSP"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:351
+msgid "pgr_dijkstraVia"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:355
+msgid "Deprecated functions:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:356
+msgid "pgr_apspWarshall  use pgr_floydWarshall instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:357
+msgid "pgr_apspJohnson   use pgr_Johnson instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:358
+msgid "pgr_kDijkstraCost use pgr_dijkstraCost instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:359
+msgid "pgr_kDijkstraPath use pgr_dijkstra instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:362
+msgid "Renamed and deprecated function"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:363
+msgid "pgr_makeDistanceMatrix renamed to _pgr_makeDistanceMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:369
+msgid "pgRouting 2.1.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:371
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.1.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=is%3Aissue+milestone%3A%22Release+2.1.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:375
+msgid "pgr_dijkstra(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:376
+msgid "pgr_dijkstra(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:377
+msgid "pgr_dijkstra(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:378
+msgid "pgr_drivingDistance(multiple vertices)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:381
+msgid "Refactored"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:382
+msgid "pgr_dijkstra(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:383
+msgid "pgr_ksp"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:384
+msgid "pgr_drivingDistance(single vertex)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:388
+msgid ""
+"pgr_alphaShape function now can generate better (multi)polygon with holes "
+"and alpha parameter."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:392
+msgid ""
+"Proposed functions from Steve Woodbridge, (Classified as Convenience by the "
+"author.)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:394
+msgid ""
+"pgr_pointToEdgeNode - convert a point geometry to a vertex_id based on "
+"closest edge."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:395
+msgid ""
+"pgr_flipEdges - flip the edges in an array of geometries so the connect end "
+"to end."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:396
+msgid ""
+"pgr_textToPoints - convert a string of x,y;x,y;... locations into point "
+"geometries."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:397
+msgid ""
+"pgr_pointsToVids - convert an array of point geometries into vertex ids."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:398
+msgid ""
+"pgr_pointsToDMatrix - Create a distance matrix from an array of points."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:399 ../../build/doc/release_notes.rst:400
+msgid ""
+"pgr_vidsToDMatrix - Create a distance matrix from an array of vertix_id."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:402
+msgid "Added proposed functions from GSoc Projects:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:404
+msgid "pgr_vrppdtw"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:405
+msgid "pgr_vrponedepot"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:408
+msgid "Deprecated functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:409
+msgid "pgr_getColumnName"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:410
+msgid "pgr_getTableName"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:411
+msgid "pgr_isColumnCndexed"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:412
+msgid "pgr_isColumnInTable"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:413
+msgid "pgr_quote_ident"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:414
+msgid "pgr_versionless"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:415
+msgid "pgr_startPoint"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:416
+msgid "pgr_endPoint"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:417
+msgid "pgr_pointToId"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:420
+msgid "No longer supported"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:421
+msgid "Removed the 1.x legacy functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:425
+msgid "Some bug fixes in other functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:429
+msgid "Refactoring Internal Code"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:430
+msgid "A C and C++ library for developer was created"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:432
+msgid "encapsulates postgreSQL related functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:433
+msgid "encapsulates Boost.Graph graphs"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:435
+msgid "Directed Boost.Graph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:436
+msgid "Undirected Boost.graph."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:438
+msgid "allow any-integer in the id's"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:439
+msgid "allow any-numerical on the cost/reverse_cost columns"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:441
+msgid ""
+"Instead of generating many libraries: - All functions are encapsulated in "
+"one library - The library has the prefix 2-1-0"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:450
+msgid "pgRouting 2.0.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:452
+msgid "Minor bug fixes."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:456
+msgid "No track of the bug fixes were kept."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:462
+msgid "pgRouting 2.0.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:464
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.0.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.0.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:466
+msgid ""
+"With the release of pgRouting 2.0.0 the library has abandoned backwards "
+"compatibility to :ref:`pgRouting 1.x <changelog_1_x>` releases. The main "
+"Goals for this release are:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:469
+msgid "Major restructuring of pgRouting."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:470
+msgid "Standardization of the function naming"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:471
+msgid "Preparation of the project for future development."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:473
+msgid "As a result of this effort:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:475
+msgid "pgRouting has a simplified structure"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:476
+msgid "Significant new functionality has being added"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:477
+msgid "Documentation has being integrated"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:478
+msgid "Testing has being integrated"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:479
+msgid "And made it easier for multiple developers to make contributions."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:483
+msgid "Important Changes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:484
+msgid ""
+"Graph Analytics - tools for detecting and fixing connection some problems in"
+" a graph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:485
+msgid "A collection of useful utility functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:486
+msgid ""
+"Two new All Pairs Short Path algorithms (pgr_apspJohnson, pgr_apspWarshall)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:487
+msgid ""
+"Bi-directional Dijkstra and A-star search algorithms (pgr_bdAstar, "
+"pgr_bdDijkstra)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:488
+msgid "One to many nodes search (pgr_kDijkstra)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:489
+msgid "K alternate paths shortest path (pgr_ksp)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:490
+msgid ""
+"New TSP solver that simplifies the code and the build process (pgr_tsp), "
+"dropped \"Gaul Library\" dependency"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:491
+msgid "Turn Restricted shortest path (pgr_trsp) that replaces Shooting Star"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:492
+msgid "Dropped support for Shooting Star"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:493
+msgid ""
+"Built a test infrastructure that is run before major code changes are "
+"checked in"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:494
+msgid ""
+"Tested and fixed most all of the outstanding bugs reported against 1.x that "
+"existing in the 2.0-dev code base."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:495
+msgid "Improved build process for Windows"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:496
+msgid ""
+"Automated testing on Linux and Windows platforms trigger by every commit"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:497
+msgid "Modular library design"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:498
+msgid "Compatibility with PostgreSQL 9.1 or newer"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:499
+msgid "Compatibility with PostGIS 2.0 or newer"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:500
+msgid "Installs as PostgreSQL EXTENSION"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:501
+msgid "Return types re factored and unified"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:502
+msgid "Support for table SCHEMA in function parameters"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:503
+msgid "Support for ``st_`` PostGIS function prefix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:504
+msgid "Added ``pgr_`` prefix to functions and types"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:505
+msgid "Better documentation: http://docs.pgrouting.org"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:506
+msgid "shooting_star is discontinued"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:513
+msgid "pgRouting 1.x Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:515
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for 1.x "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+1.x%22+is%3Aclosed>`_"
+" on Github. The following release notes have been copied from the previous "
+"``RELEASE_NOTES`` file and are kept as a reference."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:520
+msgid "Changes for release 1.05"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:526
+msgid "Changes for release 1.03"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:528
+msgid "Much faster topology creation"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:533
+msgid "Changes for release 1.02"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:535 ../../build/doc/release_notes.rst:542
+msgid "Shooting* bug fixes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:536
+msgid "Compilation problems solved"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:540
+msgid "Changes for release 1.01"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:546
+msgid "Changes for release 1.0"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:548
+msgid "Core and extra functions are separated"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:549
+msgid "Cmake build process"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:554
+msgid "Changes for release 1.0.0b"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:556
+msgid "Additional SQL file with more simple names for wrapper functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:561
+msgid "Changes for release 1.0.0a"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:563
+msgid "Shooting* shortest path algorithm for real road networks"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:564
+msgid "Several SQL bugs were fixed"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:568
+msgid "Changes for release 0.9.9"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:570
+msgid "PostgreSQL 8.2 support"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:571
+msgid ""
+"Shortest path functions return empty result if they could not find any path"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:575
+msgid "Changes for release 0.9.8"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:577
+msgid "Renumbering scheme was added to shortest path functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:578
+msgid "Directed shortest path functions were added"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:579
+msgid "routing_postgis.sql was modified to use dijkstra in TSP search"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/routingFunctions.po b/locale/de/LC_MESSAGES/routingFunctions.po
new file mode 100644
index 0000000..3242809
--- /dev/null
+++ b/locale/de/LC_MESSAGES/routingFunctions.po
@@ -0,0 +1,134 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/routingFunctions.rst:15
+msgid "Routing Functions"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:21
+msgid ":ref:`all_pairs`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:23
+msgid ":ref:`pgr_floydWarshall` - Floyd-Warshall's Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:24
+msgid ":ref:`pgr_johnson`- Johnson’s Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:26
+msgid ":ref:`pgr_astar` - Shortest Path A*"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:28
+msgid ":ref:`pgr_bdAstar` - Bi-directional A* Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:30
+msgid ":ref:`pgr_bdDijkstra` - Bi-directional Dijkstra Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:33
+msgid ":ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:3
+msgid ":ref:`pgr_dijkstra` - Dijkstra's algorithm for the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:4
+msgid ""
+":ref:`pgr_dijkstraCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:5
+msgid ""
+":ref:`pgr_dijkstraCostMatrix` - Use pgr_dijkstra to create a costs matrix."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:6
+msgid ""
+":ref:`pgr_drivingDistance` - Use pgr_dijkstra to calculate catchament "
+"information."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:7
+msgid ""
+":ref:`pgr_ksp` - Use Yen algorithm with pgr_dijkstra to get the K shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:8
+msgid ":ref:`pgr_dijkstraVia` - Get a route of a seuence of vertices."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:39
+msgid ":ref:`pgr_ksp` - K-Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:41
+msgid ":ref:`pgr_trsp<trsp>` - Turn Restriction Shortest Path (TRSP)"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:43
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:3
+msgid ":ref:`pgr_TSP` - When input is given as matrix cell information."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:4
+msgid ":ref:`pgr_eucledianTSP` - When input are coordinates."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:49
+msgid ":ref:`drivingDistance`"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:3
+msgid ":ref:`pgr_drivingDistance` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:4
+msgid ":ref:`pgr_withPointsDD` - Driving Distance based on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:5
+msgid "Post pocessing"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:7
+msgid ":ref:`pgr_alphaShape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:8
+msgid ":ref:`pgr_points_as_polygon` - Polygon around a set of points"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:70
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:73
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:74
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:75
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/sampledata.po b/locale/de/LC_MESSAGES/sampledata.po
new file mode 100644
index 0000000..2ded9cd
--- /dev/null
+++ b/locale/de/LC_MESSAGES/sampledata.po
@@ -0,0 +1,152 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/sampledata.rst:11
+msgid "Sample Data"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:13
+msgid ""
+"The documentation provides very simple example queries based on a small "
+"sample network. To be able to execute the sample queries, run the following "
+"SQL commands to create a table with a small network data set."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:18
+msgid "Create table"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:25
+msgid "Insert data"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:32
+msgid "Topology"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:33
+msgid ""
+"Before you test a routing function use this query to create a topology "
+"(fills the ``source`` and ``target`` columns)."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:40
+msgid "Points of interest"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:41
+msgid "When points outside of the graph."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:42
+msgid "Used with the :ref:`withPoints` functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:49
+msgid "Restrictions"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:50
+msgid "Used with the :ref:`trsp` functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:57
+msgid "Categories"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:58
+msgid "Used with the :ref:`maxFlow` functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:65
+msgid "Vertex table"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:66
+msgid "Used in some deprecated signatures or deprecated functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:74
+msgid "Images"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:76
+msgid "Red arrows correspond when ``cost`` > 0 in the edge table."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:77
+msgid "Blue arrows correspond when ``reverse_cost`` > 0 in the edge table."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:78
+msgid "Points are outside the graph."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:79
+msgid "Click on the graph to enlarge."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:84
+msgid ""
+"Network for queries marked as ``directed`` and ``cost`` and ``reverse_cost``"
+" columns are used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:86
+msgid ""
+"When working with city networks, this is recommended for point of view of "
+"vehicles."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:91
+msgid "**Graph 1: Directed, with cost and reverse cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:96
+msgid ""
+"Network for queries marked as ``undirected`` and ``cost`` and "
+"``reverse_cost`` columns are used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:98
+msgid ""
+"When working with city networks, this is recommended for point of view of "
+"pedestrians."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:104
+msgid "**Graph 2: Undirected, with cost and reverse cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:109
+msgid ""
+"Network for queries marked as ``directed`` and only ``cost`` column is used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:116
+msgid "**Graph 3: Directed, with cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:121
+msgid ""
+"Network for queries marked as ``undirected`` and only ``cost`` column is "
+"used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:127
+msgid "**Graph 4: Undirected, with cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:134
+msgid "Pick & Deliver Data"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/support.po b/locale/de/LC_MESSAGES/support.po
new file mode 100644
index 0000000..4082646
--- /dev/null
+++ b/locale/de/LC_MESSAGES/support.po
@@ -0,0 +1,177 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/support.rst:13
+msgid "Support"
+msgstr ""
+
+#: ../../build/doc/support.rst:15
+msgid ""
+"pgRouting community support is available through the `pgRouting website "
+"<http://pgrouting.org/support.html>`_, `documentation "
+"<http://docs.pgrouting.org>`_, tutorials, mailing lists and others. If "
+"you’re looking for :ref:`commercial support <support_commercial>`, find "
+"below a list of companies providing pgRouting development and consulting "
+"services."
+msgstr ""
+
+#: ../../build/doc/support.rst:19
+msgid "Reporting Problems"
+msgstr ""
+
+#: ../../build/doc/support.rst:21
+msgid ""
+"Bugs are reported and managed in an `issue tracker "
+"<https://github.com/pgrouting/pgrouting/issues>`_. Please follow these "
+"steps:"
+msgstr ""
+
+#: ../../build/doc/support.rst:23
+msgid ""
+"Search the tickets to see if your problem has already been reported. If so, "
+"add any extra context you might have found, or at least indicate that you "
+"too are having the problem. This will help us prioritize common issues."
+msgstr ""
+
+#: ../../build/doc/support.rst:24
+msgid ""
+"If your problem is unreported, create a `new issue "
+"<https://github.com/pgRouting/pgrouting/issues/new>`_ for it."
+msgstr ""
+
+#: ../../build/doc/support.rst:25
+msgid ""
+"In your report include explicit instructions to replicate your issue. The "
+"best tickets include the exact SQL necessary to replicate a problem."
+msgstr ""
+
+#: ../../build/doc/support.rst:26
+msgid ""
+"If you can test older versions of PostGIS for your problem, please do. On "
+"your ticket, note the earliest version the problem appears."
+msgstr ""
+
+#: ../../build/doc/support.rst:27
+msgid ""
+"For the versions where you can replicate the problem, note the operating "
+"system and version of pgRouting, PostGIS and PostgreSQL."
+msgstr ""
+
+#: ../../build/doc/support.rst:28
+msgid ""
+"It is recommended to use the following wrapper on the problem to pin point "
+"the step that is causing the problem."
+msgstr ""
+
+#: ../../build/doc/support.rst:39
+msgid "Mailing List and GIS StackExchange"
+msgstr ""
+
+#: ../../build/doc/support.rst:41
+msgid ""
+"There are two mailing lists for pgRouting hosted on OSGeo mailing list "
+"server:"
+msgstr ""
+
+#: ../../build/doc/support.rst:43
+msgid ""
+"User mailing list: http://lists.osgeo.org/mailman/listinfo/pgrouting-users"
+msgstr ""
+
+#: ../../build/doc/support.rst:44
+msgid ""
+"Developer mailing list: http://lists.osgeo.org/mailman/listinfo/pgrouting-"
+"dev"
+msgstr ""
+
+#: ../../build/doc/support.rst:46
+msgid ""
+"For general questions and topics about how to use pgRouting, please write to"
+" the user mailing list."
+msgstr ""
+
+#: ../../build/doc/support.rst:48
+msgid ""
+"You can also ask at `GIS StackExchange <http://gis.stackexchange.com/>`_ and"
+" tag the question with ``pgrouting``. Find all questions tagged with "
+"``pgrouting`` under http://gis.stackexchange.com/questions/tagged/pgrouting "
+"or subscribe to the `pgRouting questions feed "
+"<http://gis.stackexchange.com/feeds/tag?tagnames=pgrouting&sort=newest>`_."
+msgstr ""
+
+#: ../../build/doc/support.rst:54
+msgid "Commercial Support"
+msgstr ""
+
+#: ../../build/doc/support.rst:56
+msgid ""
+"For users who require professional support, development and consulting "
+"services, consider contacting any of the following organizations, which have"
+" significantly contributed to the development of pgRouting:"
+msgstr ""
+
+#: ../../build/doc/support.rst:61
+msgid "**Company**"
+msgstr ""
+
+#: ../../build/doc/support.rst:62
+msgid "**Offices in**"
+msgstr ""
+
+#: ../../build/doc/support.rst:63
+msgid "**Website**"
+msgstr ""
+
+#: ../../build/doc/support.rst:64
+msgid "Georepublic"
+msgstr ""
+
+#: ../../build/doc/support.rst:65
+msgid "Germany, Japan"
+msgstr ""
+
+#: ../../build/doc/support.rst:66
+msgid "https://georepublic.info"
+msgstr ""
+
+#: ../../build/doc/support.rst:67
+msgid "iMaptools"
+msgstr ""
+
+#: ../../build/doc/support.rst:68 ../../build/doc/support.rst:71
+msgid "United States"
+msgstr ""
+
+#: ../../build/doc/support.rst:69
+msgid "http://imaptools.com"
+msgstr ""
+
+#: ../../build/doc/support.rst:70
+msgid "Paragon Corporation"
+msgstr ""
+
+#: ../../build/doc/support.rst:72
+msgid "http://www.paragoncorporation.com"
+msgstr ""
+
+#: ../../build/doc/support.rst:73
+msgid "Camptocamp"
+msgstr ""
+
+#: ../../build/doc/support.rst:74
+msgid "Switzerland, France"
+msgstr ""
+
+#: ../../build/doc/support.rst:75
+msgid "http://www.camptocamp.com"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/topology-functions.po b/locale/de/LC_MESSAGES/topology-functions.po
new file mode 100644
index 0000000..ac6a1b3
--- /dev/null
+++ b/locale/de/LC_MESSAGES/topology-functions.po
@@ -0,0 +1,66 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/topology-functions.rst:13
+msgid "Topology - Family of Functions"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:15
+msgid ""
+"The pgRouting's topology of a network, represented with an edge table with "
+"source and target attributes and a vertices table associated with it. "
+"Depending on the algorithm, you can create a topology or just reconstruct "
+"the vertices table, You can analyze the topology, We also provide a function"
+" to node an unoded network."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:19
+msgid ""
+":ref:`pgr_create_topology` -  to create a topology based on the geometry."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:20
+msgid ""
+":ref:`pgr_create_vert_table` - to reconstruct the vertices table based on "
+"the source and target information."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:21
+msgid ""
+":ref:`pgr_analyze_graph`  - to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:22
+msgid ":ref:`pgr_analyze_oneway` - to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:23
+msgid ":ref:`pgr_node_network`  -to create nodes to a not noded edge table."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:35
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:38
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:39
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:40
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/types_index.po b/locale/de/LC_MESSAGES/types_index.po
new file mode 100644
index 0000000..3f3faa7
--- /dev/null
+++ b/locale/de/LC_MESSAGES/types_index.po
@@ -0,0 +1,56 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/types_index.rst:13
+msgid "pgRouting Data Types"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:15
+msgid ""
+"The following are commonly used data types for some of the pgRouting "
+"functions."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:17
+msgid ""
+":ref:`type_cost_result` -  A set of records to describe a path result with "
+"cost attribute."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:18
+msgid ""
+":ref:`pgr_costResult3[] <type_cost_result3>` - A set of records to describe "
+"a path result with cost attribute."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:19
+msgid ""
+":ref:`pgr_geomResult <type_geom_result>` - A set of records to describe a "
+"path result with geometry attribute."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:30
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:33
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:34
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:35
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/de/LC_MESSAGES/withPoints-family.po b/locale/de/LC_MESSAGES/withPoints-family.po
new file mode 100644
index 0000000..3d4f303
--- /dev/null
+++ b/locale/de/LC_MESSAGES/withPoints-family.po
@@ -0,0 +1,395 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/withPoints-family.rst:14
+msgid "withPoints - Family of functions"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:16
+msgid "When points are also given as input:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:20
+msgid ":ref:`pgr_withPoints` - Route from/to points anywhere on the graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:21
+msgid ":ref:`pgr_withPointsCost` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:22
+msgid ":ref:`pgr_withPointsCostMatrix` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:23
+msgid ":ref:`pgr_withPointsKSP` - K shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:24
+msgid ":ref:`pgr_withPointsDD` - Driving distance."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:47
+msgid "Images"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:49
+msgid ""
+"The squared vertices are the temporary vertices, The temporary vertices are "
+"added acordng to the dirving side, The following images visualy show the "
+"diferences on how depending on the driving side the data is interpreted."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:53
+msgid "Right driving side"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:58
+msgid "Left driving side"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:63
+msgid "doesn't matter the driving side"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:68
+msgid "Introduction"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:70
+msgid ""
+"This famly of functions was thought for routing vehicles, but might as well "
+"work for some other application that we can not think of."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:73
+msgid ""
+"The with points family of function give you the ability to route between "
+"arbitrary points located outside the original graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:76
+msgid ""
+"When given a point identified with a `pid` that its being mapped to and edge"
+" with an identifier `edge_id`, with a `fraction` along that edge (from the "
+"source to the target of the edge) and some additional information about "
+"which `side` of the edge the point is on, then routing from arbitrary points"
+" more accurately reflect routing vehicles in road networks,"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:87
+msgid ""
+"I talk about a family of functions because it includes different "
+"functionalities."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:84
+msgid "pgr_withPoints is pgr_dijkstra based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:85
+msgid "pgr_withPointsCost is pgr_dijkstraCost based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:86
+msgid "pgr_withPointsKSP is pgr_ksp based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:87
+msgid "pgr_withPointsDD is pgr_drivingDistance based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:89
+msgid ""
+"In all this functions we have to take care of as many aspects as possible:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:91
+msgid "Must work for routing:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:93
+msgid "Cars (directed graph)"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:94
+msgid "Pedestrians (undirected graph)"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:96
+msgid "Arriving at the point:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:98
+msgid "In either side of the street."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:99
+msgid ""
+"Compulsory arrival on the side of the street where the point is located."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:101
+msgid "Countries with:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:103
+msgid "Right side driving"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:104
+msgid "Left side driving"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:106
+msgid "Some points are:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:108
+msgid ""
+"Permanent, for example the set of points of clients stored in a table in the"
+" data base"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:109
+msgid "Temporal, for example points given through a web application"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:111
+msgid "The numbering of the points are handled with negative sign."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:113
+msgid "Original point identifiers are to be positive."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:114
+msgid "Transformation to negative is done internally."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:115
+msgid "For results for involving vertices identifiers"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:117
+msgid "positive sign is a vertex of the original grpah"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:118
+msgid "negative sign is a point of the temporary points"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:120
+msgid ""
+"The reason for doing this is to avoid confusion when there is a vertex with "
+"the same number as identifier as the points identifier."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:123
+msgid "Graph & edges"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:125
+msgid ""
+"Let :math:`G_d(V,E)` where :math:`V` is the set of vertices and :math:`E` is"
+" the set of edges be the original directed graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:127
+msgid ""
+"An edge of the original `edges_sql` is :math:`(id, source, target, cost, "
+"reverse\\_cost)` will generate internally"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:129
+msgid ":math:`(id, source, target, cost)`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:130
+msgid ":math:`(id, target, source, reverse\\_cost)`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:133
+msgid "Point Definition"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:135
+msgid ""
+"A point is defined by the quadruplet: :math:`(pid, eid, fraction, side)`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:137
+msgid "**pid** is the point identifier"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:138
+msgid "**eid** is an edge id of the `edges_sql`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:139
+msgid "**fraction** represents where the edge `eid` will be cut."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:140
+msgid "**side** Indicates the side of the edge where the point is located."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:144
+msgid "Creating Temporary Vertices in the Graph"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:146
+msgid "For edge (15,  9,12  10, 20), & lets insert point (2, 12, 0.3, r)"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:149
+msgid "On a right hand side driving network"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:150
+msgid "From first image above:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:152
+msgid "We can arrive to the point only via vertex 9."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:153
+msgid "It only afects the edge (15, 9,12, 10) so that edge is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:154
+msgid "Edge (15, 12,9, 20) is kept."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:155
+#: ../../build/doc/withPoints-family.rst:167
+#: ../../build/doc/withPoints-family.rst:182
+msgid "Create new edges:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:157
+#: ../../build/doc/withPoints-family.rst:186
+msgid "(15, 9,-1, 3) edge from vertex 9 to point 1 has cost 3"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:158
+#: ../../build/doc/withPoints-family.rst:187
+msgid "(15, -1,12, 7) edge from point 1 to vertex 12 has cost 7"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:161
+msgid "On a left hand side driving network"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:162
+msgid "From second image above:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:164
+msgid "We can arrive to the point only via vertex 12."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:165
+msgid "It only afects the edge (15, 12,9 20) so that edge is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:166
+msgid "Edge (15, 9,12, 10) is kept."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:169
+#: ../../build/doc/withPoints-family.rst:184
+msgid "(15, 12,-1, 14) edge from vertex 12 to point 1 has cost 14"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:170
+#: ../../build/doc/withPoints-family.rst:185
+msgid "(15, -1,9, 6) edge from point 1 to vertex 9 has cost 6"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:172
+msgid "that fraction is from vertex 9 to vertex 12"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:176
+msgid "When driving side does not matter"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:177
+msgid "From third image above:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:179
+msgid "We can arrive to the point either via vertex 12 or via vertex 9"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:180
+msgid "Edge (15, 12,9 20) is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:181
+msgid "Edge (15, 9,12, 10) is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:190
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:193
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:194
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:195
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/KSP-category.po b/locale/en/LC_MESSAGES/KSP-category.po
new file mode 100644
index 0000000..9232738
--- /dev/null
+++ b/locale/en/LC_MESSAGES/KSP-category.po
@@ -0,0 +1,36 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/KSP-category.rst:14
+msgid "KSP Category"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:18
+msgid ":ref:`pgr_KSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:19
+msgid ":ref:`pgr_withPointsKSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:26
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:27
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:28
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/TSP-family.po b/locale/en/LC_MESSAGES/TSP-family.po
new file mode 100644
index 0000000..0f03653
--- /dev/null
+++ b/locale/en/LC_MESSAGES/TSP-family.po
@@ -0,0 +1,556 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/TSP-family.rst:13
+msgid "Traveling Sales Person - Family of functions"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:17
+msgid ":ref:`pgr_TSP` - When input is given as matrix cell information."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:18
+msgid ":ref:`pgr_eucledianTSP` - When input are coordinates."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:30
+msgid "General Information"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:33
+msgid "Origin"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:36
+msgid ""
+"The traveling sales person problem was studied in the 18th century by "
+"mathematicians"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:36
+msgid "**Sir William Rowam Hamilton** and **Thomas Penyngton  Kirkman**."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:38
+msgid ""
+"A discussion about the work of Hamilton & Kirkman can be found in the book "
+"**Graph Theory (Biggs et  al. 1976)**."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:41
+msgid "ISBN-13: 978-0198539162"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:42
+msgid "ISBN-10: 0198539169"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:44
+msgid ""
+"It is believed that the general form of the TSP have been first studied by "
+"Kalr Menger in Vienna and Harvard. The problem  was  later promoted by "
+"Hassler, Whitney  &  Merrill at Princeton. A detailed  description about the"
+" connection between Menger & Whitney, and the development of the TSP can be "
+"found in  `On the history of combinatorial optimization (till 1960) "
+"<http://www.cwi.nl/~lex/files/histco.ps>`_"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:50
+msgid "Problem Definition"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:52
+msgid ""
+"Given a collection of cities and travel cost between each pair, find the "
+"cheapest way for visiting all of the cities and returning to the starting "
+"point."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:56
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:58
+msgid "The travel costs are symmetric:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:60
+msgid ""
+"traveling costs from city A to city B are just as much as traveling from B "
+"to A."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:62
+msgid "This problem is an NP-hard optimization problem."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:64
+msgid "To calculate the number of different tours through :math:`n` cities:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:66
+msgid "Given a starting city,"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:67
+msgid "There are :math:`n-1` choices for the second city,"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:68
+msgid "And  :math:`n-2` choices for the third city, etc."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:69
+msgid ""
+"Multiplying these together we get :math:`(n-1)!  = (n-1) (n-2) . .  1`."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:70
+msgid ""
+"Now since our travel costs do not depend on the direction we take around the"
+" tour:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:72
+msgid "this number by 2"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:73
+msgid ":math:`(n-1)!/2`."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:76
+msgid "TSP & Simulated Annealing"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:78
+msgid ""
+"The simulated annealing algorithm was originally inspired from the process "
+"of annealing in metal work."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:81
+msgid ""
+"Annealing involves heating and cooling a material to alter its physical "
+"properties due to the changes in its internal structure. As the metal cools "
+"its new structure becomes fixed, consequently causing the metal to retain "
+"its newly obtained properties. [C001]_"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:88
+msgid "Pseudocode"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:89
+msgid ""
+"Given an initial solution, the simulated annealing process, will start with "
+"a high temperature and gradually cool down until the desired temperature is "
+"reached."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:92
+msgid ""
+"For each temperature, a neighbouring new solution **snew** is calculated. "
+"The higher the temperature the higher the probability of accepting the new "
+"solution as a possible bester solution."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:95
+msgid ""
+"Once the desired temperature is reached, the best solution found is returned"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:118
+msgid "pgRouting Implementation"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:120
+msgid ""
+"pgRouting's implementation adds some extra parameters to allow some exit "
+"controls within the simulated annealing process."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:123
+msgid "To cool down faster to the next temperature:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:125
+msgid ""
+"max_changes_per_temperature: limits the number of changes in the solution "
+"per temperature"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:126
+msgid ""
+"max_consecutive_non_changes: limits the number of consecutive non changes "
+"per temperature"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:128
+msgid ""
+"This is done by doing some book keeping on the times **solution = snew;** is"
+" executed."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:130
+msgid ""
+"max_changes_per_temperature: Increases by one when **solution** changes"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:131
+msgid ""
+"max_consecutive_non_changes: Reset to 0 when **solution** changes, and "
+"increased each **try**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:133
+msgid ""
+"Additionally to stop the algorithm at a higher temperature than the desired "
+"one:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:135
+msgid ""
+"max_processing_time: limits the time the simulated annealing is performed."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:136
+msgid ""
+"book keeping is done to see if there was a change in **solution** on the "
+"last temperature"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:138
+msgid ""
+"Note that, if no change was found in the first "
+"**max_consecutive_non_changes** tries, then the simulated annealing will "
+"stop."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:168
+msgid "Choosing parameters"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:170
+msgid ""
+"There is no exact rule on how the parameters have to be chose, it will "
+"depend on the special characteristics of the problem."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:173
+msgid ""
+"Your computational time is crucial, then put your time limit to "
+"**max_processing_time**."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:174
+msgid ""
+"Make the **tries_per_temperture** depending on the number of cities, for "
+"example:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:176
+msgid "Useful to estimate the time it takes to do one cycle: use `1`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:178
+msgid "this will help to set a reasonable **max_processing_time**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:180
+msgid ":math:`n * (n-1)`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:181
+msgid ":math:`500 * n`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:183
+msgid ""
+"For a faster decreasing the temperature set **cooling_factor** to a smaller "
+"number, and set to a higher number for a slower decrease."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:186
+msgid ""
+"When for the same given data the same results are needed, set **randomize** "
+"to `false`."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:188
+msgid "When estimating how long it takes to do one cycle: use `false`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:191
+msgid ""
+"A recommendation is to play with the values and see what fits to the "
+"particular data."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:196
+msgid "Description Of the Control parameters"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:198
+msgid "The control parameters are optional, and have a default value."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201 ../../build/doc/TSP-family.rst:230
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201 ../../build/doc/TSP-family.rst:230
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203 ../../build/doc/TSP-family.rst:204
+#: ../../build/doc/TSP-family.rst:233
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203 ../../build/doc/TSP-family.rst:204
+msgid "`0`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203
+msgid "The greedy part of the implementation will use this identifier."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:204
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:204
+msgid "Last visiting vertex before returning to start_vid."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205
+msgid "**max_processing_time**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205 ../../build/doc/TSP-family.rst:209
+#: ../../build/doc/TSP-family.rst:210 ../../build/doc/TSP-family.rst:211
+#: ../../build/doc/TSP-family.rst:234 ../../build/doc/TSP-family.rst:237
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205
+msgid "`+infinity`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205
+msgid "Stop the annealing processing when the value is reached."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206
+msgid "**tries_per_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206 ../../build/doc/TSP-family.rst:207
+#: ../../build/doc/TSP-family.rst:208 ../../build/doc/TSP-family.rst:232
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206
+msgid "`500`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206
+msgid "Maximum number of times a neighbor(s) is searched in each temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:207
+msgid "**max_changes_per_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:207
+msgid "`60`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:207
+msgid "Maximum number of times the solution is changed in each temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:208
+msgid "**max_consecutive_non_changes**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:208 ../../build/doc/TSP-family.rst:209
+msgid "`100`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:208
+msgid ""
+"Maximum number of consecutive times the solution is not changed in each "
+"temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:209
+msgid "**initial_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:209
+msgid "Starting temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:210
+msgid "**final_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:210
+msgid "`0.1`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:210
+msgid "Ending temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:211
+msgid "**cooling_factor**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:211
+msgid "`0.9`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:211
+msgid ""
+"Value between between 0 and 1 (not including) used to calculate the next "
+"temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "**randomize**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "`true`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "Choose the random seed"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:214
+msgid "true: Use current time as seed"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:215
+msgid ""
+"false: Use `1` as seed. Using this value will get the same results with the "
+"same data in each execution."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:225
+msgid "Description of the return columns"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:227
+msgid "Returns set of ``(seq, node, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:230
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:232
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:232
+msgid "Row sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:233
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:233
+msgid "Identifier of the node/coordinate/point."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:234
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:235
+msgid ""
+"Cost to traverse from the current ``node`` ito the next ``node`` in the path"
+" sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:235
+msgid "``0`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:237
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:238
+msgid "Aggregate cost from the ``node`` at ``seq = 1`` to the current node."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:238
+msgid "``0`` for the first row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:245
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:248
+msgid "References"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:249
+msgid ""
+"`Simulated annaeling algorithm for beginners <http://www.theprojectspot.com"
+"/tutorial-post/simulated-annealing-algorithm-for-beginners/6>`_"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:251
+msgid "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:252
+msgid "http://en.wikipedia.org/wiki/Simulated_annealing"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:255
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:256
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:257
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/aStar-family.po b/locale/en/LC_MESSAGES/aStar-family.po
new file mode 100644
index 0000000..3364e02
--- /dev/null
+++ b/locale/en/LC_MESSAGES/aStar-family.po
@@ -0,0 +1,205 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/aStar-family.rst:13
+msgid "aStar - Family of functions"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:15
+msgid ""
+"The A* (pronounced \"A Star\") algorithm is based on Dijkstra's algorithm "
+"with a heuristic that allow it to solve most shortest path problems by "
+"evaluation only a sub-set of the overall graph."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:19
+msgid ":ref:`pgr_aStar` - A* algorithm for the shortest path."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:20
+msgid ":ref:`pgr_aStarCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:21
+msgid ""
+":ref:`pgr_aStarCostMatrix` - Get the cost matrix of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:34
+msgid "The problem definition (Advanced documentation)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:36
+msgid ""
+"The A* (pronounced \"A Star\") algorithm is based on Dijkstra's algorithm "
+"with a heuristic, that is an estimation of the remaining cost from the "
+"vertex to the goal, that allows to solve most shortest path problems by "
+"evaluation only a sub-set of the overall graph. Running time: :math:`O((E + "
+"V) * \\log V)`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:46
+msgid "Heuristic"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:48
+msgid "Currently the heuristic functions available are:"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:50
+msgid "0: :math:`h(v) = 0` (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:51
+msgid "1: :math:`h(v) = abs(max(\\Delta x, \\Delta y))`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:52
+msgid "2: :math:`h(v) = abs(min(\\Delta x, \\Delta y))`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:53
+msgid "3: :math:`h(v) = \\Delta x * \\Delta x + \\Delta y * \\Delta y`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:54
+msgid "4: :math:`h(v) = sqrt(\\Delta x * \\Delta x + \\Delta y * \\Delta y)`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:55
+msgid "5: :math:`h(v) = abs(\\Delta x) + abs(\\Delta y)`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:57
+msgid "where :math:`\\Delta x = x_1 - x_0` and :math:`\\Delta y = y_1 - y_0`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:63 ../../build/doc/aStar-family.rst:76
+#: ../../build/doc/aStar-family.rst:89
+msgid "Factor"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:66
+msgid "Analysis 1"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:67
+msgid ""
+"Working with cost/reverse_cost as length in degrees, x/y in lat/lon: Factor "
+"= 1   (no need to change units)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:71
+msgid "Analysis 2"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:72
+msgid ""
+"Working with cost/reverse_cost as length in meters, x/y in lat/lon: Factor ="
+"  would depend on the location of the points:"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:76 ../../build/doc/aStar-family.rst:89
+msgid "latitude"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:76 ../../build/doc/aStar-family.rst:89
+msgid "conversion"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:78 ../../build/doc/aStar-family.rst:91
+msgid "45"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:78
+msgid "1 longitude degree is  78846.81 m"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:78
+msgid "78846"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:79 ../../build/doc/aStar-family.rst:92
+msgid "0"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:79
+msgid "1 longitude degree is 111319.46 m"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:79
+msgid "111319"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:83
+msgid "Analysis 3"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:84
+msgid ""
+"Working with cost/reverse_cost as time in seconds, x/y in lat/lon: Factor: "
+"would depend on the location of the points and on the average speed say "
+"25m/s is the speed."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:91
+msgid "1 longitude degree is (78846.81m)/(25m/s)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:91
+msgid "3153 s"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:92
+msgid "1 longitude degree is (111319.46 m)/(25m/s)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:92
+msgid "4452 s"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:98
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:100
+msgid ":ref:`pgr_aStar`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:101
+msgid ":ref:`pgr_aStarCost`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:102
+msgid ":ref:`pgr_aStarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:103
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:104
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:107
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:108
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:109
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/allpairs-family.po b/locale/en/LC_MESSAGES/allpairs-family.po
new file mode 100644
index 0000000..9749ed9
--- /dev/null
+++ b/locale/en/LC_MESSAGES/allpairs-family.po
@@ -0,0 +1,996 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/allpairs-family.rst:14
+msgid "All Pairs - Family of Functions"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:16
+msgid "The following functions work an all vertices pair combinations"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:33
+msgid "Performance"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:40
+msgid "The following tests:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:36
+msgid "non server computer"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:37
+msgid "with AMD 64 CPU"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:38
+msgid "4G memory"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:39
+msgid "trusty"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:40
+msgid "posgreSQL version 9.3"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:43
+msgid "Data"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:45
+msgid "The following data was used"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:53
+msgid "Data processing was done with osm2pgrouting-alpha"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:66
+msgid "Results"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:68
+msgid "One"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:70
+msgid ""
+"This test is not with a bounding box The density of the passed graph is "
+"extremely low. For each <SIZE> 30 tests were executed to get the average The"
+" tested query is:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:83
+#: ../../build/doc/allpairs-family.rst:140
+msgid "The results of this tests are presented as:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:85
+msgid "is the number of edges given as input."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:86
+#: ../../build/doc/allpairs-family.rst:143
+msgid "is the total number of records in the query."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:87
+#: ../../build/doc/allpairs-family.rst:144
+msgid "is the density of the data :math:`\\dfrac{E}{V \\times (V-1)}`."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:88
+#: ../../build/doc/allpairs-family.rst:145
+msgid "is the number of records returned by the queries."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:89
+#: ../../build/doc/allpairs-family.rst:146
+msgid "is the average execution time in seconds of pgr_floydWarshall."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:90
+#: ../../build/doc/allpairs-family.rst:147
+msgid "is the average execution time in seconds of pgr_johnson."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "SIZE"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "EDGES"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "DENSITY"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "OUT ROWS"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "Floyd-Warshall"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "Johnson"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+#: ../../build/doc/allpairs-family.rst:96
+msgid "500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "0.18E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "1346"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "0.14"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "0.13"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+#: ../../build/doc/allpairs-family.rst:97
+msgid "1000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "0.36E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "2655"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "0.23"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "0.18"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+#: ../../build/doc/allpairs-family.rst:98
+msgid "1500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+msgid "0.55E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+msgid "4110"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+#: ../../build/doc/allpairs-family.rst:99
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.37"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+msgid "0.34"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+#: ../../build/doc/allpairs-family.rst:99
+msgid "2000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+msgid "0.73E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+msgid "5676"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+msgid "0.56"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+#: ../../build/doc/allpairs-family.rst:100
+msgid "2500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "0.89E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "7177"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "0.84"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "0.51"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+#: ../../build/doc/allpairs-family.rst:101
+msgid "3000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "1.07E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "8778"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "1.28"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "0.68"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+#: ../../build/doc/allpairs-family.rst:102
+msgid "3500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "1.24E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "10526"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "2.08"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "0.95"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+#: ../../build/doc/allpairs-family.rst:103
+msgid "4000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "1.41E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "12484"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "3.16"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "1.24"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+#: ../../build/doc/allpairs-family.rst:104
+msgid "4500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "1.58E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "14354"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "4.49"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "1.47"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+#: ../../build/doc/allpairs-family.rst:105
+msgid "5000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "1.76E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "16503"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "6.05"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "1.78"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+#: ../../build/doc/allpairs-family.rst:106
+msgid "5500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "1.93E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "18623"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "7.53"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "2.03"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+#: ../../build/doc/allpairs-family.rst:107
+msgid "6000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "2.11E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "20710"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "8.47"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "2.37"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+#: ../../build/doc/allpairs-family.rst:108
+msgid "6500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "2.28E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "22752"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "9.99"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "2.68"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+#: ../../build/doc/allpairs-family.rst:109
+msgid "7000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "2.46E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "24687"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "11.82"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "3.12"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+#: ../../build/doc/allpairs-family.rst:110
+msgid "7500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "2.64E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "26861"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "13.94"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "3.60"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+#: ../../build/doc/allpairs-family.rst:111
+msgid "8000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "2.83E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "29050"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "15.61"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "4.09"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+#: ../../build/doc/allpairs-family.rst:112
+msgid "8500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "3.01E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "31693"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "17.43"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "4.63"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+#: ../../build/doc/allpairs-family.rst:113
+msgid "9000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "3.17E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "33879"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "19.19"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "5.34"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+#: ../../build/doc/allpairs-family.rst:114
+msgid "9500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "3.35E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "36287"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "20.77"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "6.24"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+#: ../../build/doc/allpairs-family.rst:115
+msgid "10000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "3.52E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "38491"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "23.26"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "6.51"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:119
+msgid "Two"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:121
+msgid ""
+"This test is with a bounding box The density of the passed graph higher than"
+" of the Test One. For each <SIZE> 30 tests were executed to get the average "
+"The tested edge query is:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:133
+msgid "The tested queries"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:142
+msgid "is the size of the bounding box."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "0.001"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "44"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "0.0608"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "1197"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+#: ../../build/doc/allpairs-family.rst:153
+#: ../../build/doc/allpairs-family.rst:154
+#: ../../build/doc/allpairs-family.rst:154
+msgid "0.10"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "0.002"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "99"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "0.0251"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "4330"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "0.003"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "223"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "0.0122"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "18849"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+#: ../../build/doc/allpairs-family.rst:155
+msgid "0.12"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "0.004"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "358"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "0.0085"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "71834"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+#: ../../build/doc/allpairs-family.rst:156
+msgid "0.16"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.005"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "470"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.0070"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "116290"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.22"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.19"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.006"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "639"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.0055"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "207030"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.27"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.007"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "843"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.0043"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "346930"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.64"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.38"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.008"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "996"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.0037"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "469936"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.90"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.49"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "0.009"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "1146"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "0.0032"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "613135"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "1.26"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "0.62"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "0.010"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "1360"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "0.0027"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "849304"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "1.87"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "0.82"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "0.011"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "1573"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "0.0024"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "1147101"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "2.65"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "1.04"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "0.012"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "1789"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "0.0021"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "1483629"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "3.72"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "1.35"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "0.013"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "1975"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "0.0019"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "1846897"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "4.86"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "1.68"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "0.014"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "2281"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "0.0017"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "2438298"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "7.08"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "2.28"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "0.015"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "2588"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "0.0015"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "3156007"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "10.28"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "2.80"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "0.016"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "2958"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "0.0013"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "4090618"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "14.67"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "3.76"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "0.017"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "3247"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "0.0012"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "4868919"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "18.12"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "4.48"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:174
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:176
+msgid ":ref:`pgr_johnson`"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:177
+msgid ":ref:`pgr_floydWarshall`"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:178
+msgid ""
+"`Boost floyd-Warshall "
+"<http://www.boost.org/libs/graph/doc/floyd_warshall_shortest.html>`_ "
+"algorithm"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:181
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:182
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:183
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/bdAstar-family.po b/locale/en/LC_MESSAGES/bdAstar-family.po
new file mode 100644
index 0000000..b2bd16b
--- /dev/null
+++ b/locale/en/LC_MESSAGES/bdAstar-family.po
@@ -0,0 +1,394 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Bidirectional A* - Family of functions"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid ":ref:`pgr_bdAstar` - Bidirectional A* algorithm for obtaining paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:18
+msgid ""
+":ref:`pgr_bdAstarCost` - Bidirectional A* algorithm to calculate the cost of"
+" the paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid ""
+":ref:`pgr_bdAstarCostMatrix` - Bidirectional A* algorithm to calculate a "
+"cost matrix of paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:35
+msgid ""
+"Based on A* algorithm, the bidirectional search finds a shortest path from a"
+" starting vertex (``start_vid``) to an ending vertex (``end_vid``). It runs "
+"two simultaneous searches: one forward from the ``start_vid``, and one "
+"backward from the ``end_vid``, stopping when the two meet in the middle. "
+"This implementation can be used with a directed graph and an undirected "
+"graph."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:42
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:44
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:46
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:47
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:49
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:51
+msgid "The `agg_cost` the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:53
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path:"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:55
+msgid "The `agg_cost` the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:57
+msgid "Running time (worse case scenario): :math:`O((E + V) * \\log V)`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:58
+msgid ""
+"For large graphs where there is a path bewtween the starting vertex and "
+"ending vertex:"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:60
+msgid "It is expected to terminate faster than pgr_astar"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:63
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:75
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:75
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:78 ../../build/doc/bdAstar-family.rst:80
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:72
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:75
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:77
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:77
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:77
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:78
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:78
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:79
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:79 ../../build/doc/bdAstar-family.rst:81
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:79
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:80
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:80
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:81
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:81
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:82
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:82
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:82
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:84
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:85
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:87
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:87
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:87
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:89
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:90
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:91
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:92
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:93
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:94
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:96
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:96 ../../build/doc/bdAstar-family.rst:97
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:96
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:97
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:97
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:103
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:106
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:107
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:108
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/bdDijkstra-family.po b/locale/en/LC_MESSAGES/bdDijkstra-family.po
new file mode 100644
index 0000000..67de3fa
--- /dev/null
+++ b/locale/en/LC_MESSAGES/bdDijkstra-family.po
@@ -0,0 +1,112 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/bdDijkstra-family.rst:13
+msgid "Bidirectional Dijkstra - Family of functions"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:17
+msgid ""
+":ref:`pgr_bdDijkstra` - Bidirectional Dijkstra algorithm for the shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:18
+msgid ""
+":ref:`pgr_bdDijkstraCost` - Bidirectional Dijkstra to calculate the cost of "
+"the shortest paths"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:19
+msgid ""
+":ref:`pgr_bdDijkstraCostMatrix` - Bidirectional Dijkstra algorithm  to "
+"create a matrix of costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:35
+msgid ""
+"Based on Dijkstra's algorithm, the bidirectional search finds a shortest "
+"path a starting vertex (``start_vid``) to an ending vertex (``end_vid``). It"
+" runs two simultaneous searches: one forward from the source, and one "
+"backward from the target, stopping when the two meet in the middle. This "
+"implementation can be used with a directed graph and an undirected graph."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:42
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:44
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:46
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:47
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:49
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:51
+msgid "The `agg_cost` the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:53
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path:"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:55
+msgid "The `agg_cost` the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:57
+msgid "Running time (worse case scenario): :math:`O((V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:58
+msgid ""
+"For large graphs where there is a path bewtween the starting vertex and "
+"ending vertex:"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:60
+msgid "It is expected to terminate faster than pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:63
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:66
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:67
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:68
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/components-family.po b/locale/en/LC_MESSAGES/components-family.po
new file mode 100644
index 0000000..dbca49a
--- /dev/null
+++ b/locale/en/LC_MESSAGES/components-family.po
@@ -0,0 +1,750 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/components-family.rst:13
+msgid "Components - Family of functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:22
+msgid ""
+":ref:`pgr_connectedComponents` - Return the connected components of an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:23
+msgid ""
+":ref:`pgr_strongComponents` - Return the strongly connected components of a "
+"directed graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid ""
+":ref:`pgr_biconnectedComponents` - Return the biconnected components of an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:25
+msgid ""
+":ref:`pgr_articulationPoints` - Return the articulation points of an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid ":ref:`pgr_bridges` - Return the bridges of an undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:42
+msgid "The problem definition"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:45
+msgid "Connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:46
+msgid ""
+"A connected component of an undirected graph is a set of vertices that are "
+"all reachable from each other."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:49
+#: ../../build/doc/components-family.rst:183
+#: ../../build/doc/components-family.rst:252
+#: ../../build/doc/components-family.rst:312
+msgid "**Notice**: This problem defines on an undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:51
+#: ../../build/doc/components-family.rst:117
+#: ../../build/doc/components-family.rst:185
+#: ../../build/doc/components-family.rst:254
+#: ../../build/doc/components-family.rst:314
+msgid "Given the following query:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:54
+msgid "pgr_connectedComponentsV(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:56
+#: ../../build/doc/components-family.rst:122
+#: ../../build/doc/components-family.rst:190
+#: ../../build/doc/components-family.rst:259
+#: ../../build/doc/components-family.rst:319
+msgid ""
+"where  :math:`sql = \\{(id_i, source_i, target_i, cost_i, "
+"reverse\\_cost_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:58
+#: ../../build/doc/components-family.rst:124
+#: ../../build/doc/components-family.rst:192
+#: ../../build/doc/components-family.rst:261
+#: ../../build/doc/components-family.rst:321
+msgid "and"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:60
+#: ../../build/doc/components-family.rst:126
+#: ../../build/doc/components-family.rst:194
+#: ../../build/doc/components-family.rst:263
+#: ../../build/doc/components-family.rst:323
+msgid ":math:`source = \\bigcup source_i`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:61
+#: ../../build/doc/components-family.rst:127
+#: ../../build/doc/components-family.rst:195
+#: ../../build/doc/components-family.rst:264
+#: ../../build/doc/components-family.rst:324
+msgid ":math:`target = \\bigcup target_i`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:63
+#: ../../build/doc/components-family.rst:129
+#: ../../build/doc/components-family.rst:197
+#: ../../build/doc/components-family.rst:266
+#: ../../build/doc/components-family.rst:326
+msgid "The graphs are defined as follows:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:65
+#: ../../build/doc/components-family.rst:199
+#: ../../build/doc/components-family.rst:268
+#: ../../build/doc/components-family.rst:328
+msgid "The weighted undirected graph, :math:`G(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:67
+#: ../../build/doc/components-family.rst:133
+#: ../../build/doc/components-family.rst:201
+#: ../../build/doc/components-family.rst:270
+#: ../../build/doc/components-family.rst:330
+msgid "the set of vertices  :math:`V`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:69
+#: ../../build/doc/components-family.rst:203
+#: ../../build/doc/components-family.rst:272
+#: ../../build/doc/components-family.rst:332
+msgid ":math:`V = source \\cup target`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:72
+#: ../../build/doc/components-family.rst:137
+#: ../../build/doc/components-family.rst:206
+#: ../../build/doc/components-family.rst:275
+#: ../../build/doc/components-family.rst:335
+msgid "the set of edges :math:`E`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:74
+#: ../../build/doc/components-family.rst:208
+#: ../../build/doc/components-family.rst:277
+#: ../../build/doc/components-family.rst:337
+msgid ""
+":math:`E = \\begin{cases} &\\{(source_i, target_i, cost_i) \\text{ when } "
+"cost >=0 \\} \\\\ \\cup &\\{(target_i, source_i, cost_i) \\text{ when } cost"
+" >=0 \\}  &\\quad  \\text{ if } reverse\\_cost = \\varnothing \\\\ \\\\ "
+"&\\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} \\\\ \\cup "
+"&\\{(target_i, source_i, cost_i) \\text{ when } cost >=0 \\} \\\\ \\cup "
+"&\\{(target_i, source_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i "
+">=0)\\} \\\\ \\cup &\\{(source_i, target_i, reverse\\_cost_i) \\text{ when }"
+" reverse\\_cost_i >=0)\\} &\\quad \\text{ if } reverse\\_cost \\neq "
+"\\varnothing \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:77
+#: ../../build/doc/components-family.rst:142
+#: ../../build/doc/components-family.rst:211
+#: ../../build/doc/components-family.rst:280
+#: ../../build/doc/components-family.rst:340
+msgid "Given:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:79
+#: ../../build/doc/components-family.rst:144
+#: ../../build/doc/components-family.rst:213
+#: ../../build/doc/components-family.rst:282
+#: ../../build/doc/components-family.rst:342
+msgid ":math:`G(V,E)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:81
+#: ../../build/doc/components-family.rst:146
+#: ../../build/doc/components-family.rst:215
+#: ../../build/doc/components-family.rst:284
+#: ../../build/doc/components-family.rst:344
+msgid "Then:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:89
+#: ../../build/doc/components-family.rst:154
+#: ../../build/doc/components-family.rst:223
+msgid ":math:`\\boldsymbol{\\pi} = \\{(component_i, n\\_seq_i, node_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:98
+#: ../../build/doc/components-family.rst:163
+#: ../../build/doc/components-family.rst:232
+#: ../../build/doc/components-family.rst:298
+#: ../../build/doc/components-family.rst:358
+msgid "where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:92
+msgid ":math:`component_i = \\min \\{node_j | node_j \\in component_i\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:93
+#: ../../build/doc/components-family.rst:158
+#: ../../build/doc/components-family.rst:227
+msgid ""
+":math:`n\\_seq_i` is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:94
+#: ../../build/doc/components-family.rst:159
+msgid ":math:`node_i \\in component_i`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:95
+#: ../../build/doc/components-family.rst:160
+#: ../../build/doc/components-family.rst:229
+#: ../../build/doc/components-family.rst:296
+#: ../../build/doc/components-family.rst:356
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:97
+#: ../../build/doc/components-family.rst:162
+#: ../../build/doc/components-family.rst:231
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:98
+#: ../../build/doc/components-family.rst:163
+#: ../../build/doc/components-family.rst:298
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:103
+#: ../../build/doc/components-family.rst:170
+#: ../../build/doc/components-family.rst:239
+#: ../../build/doc/components-family.rst:301
+#: ../../build/doc/components-family.rst:361
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:101
+msgid "The first component is composed of nodes ``0``, ``1`` and ``4``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:102
+msgid "The second component is composed of node ``3``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:103
+msgid "The third component is composed of nodes ``2`` and ``5``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:111
+msgid "Strongly connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:112
+msgid ""
+"A strongly connected component of a directed graph is a set of vertices that"
+" are all reachable from each other."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:115
+msgid "**Notice**: This problem defines on a directed graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:120
+msgid "pgr_strongComponentsV(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:131
+msgid "The weighted directed graph, :math:`G_d(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:135
+msgid ":math:`V = source \\cup target \\cup {start_{vid}} \\cup  {end_{vid}}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:139
+msgid ""
+":math:`E = \\begin{cases} &\\{(source_i, target_i, cost_i) \\text{ when } "
+"cost >=0 \\} &\\quad  \\text{ if } reverse\\_cost = \\varnothing \\\\ \\\\ "
+"&\\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} \\\\ \\cup "
+"&\\{(target_i, source_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i "
+">=0)\\} &\\quad \\text{ if } reverse\\_cost \\neq \\varnothing \\\\ "
+"\\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:157
+#: ../../build/doc/components-family.rst:226
+msgid ":math:`component_i = \\min {node_j | node_j \\in component_i}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:166
+msgid "The first component is composed of nodes ``1``, ``2`` and ``4``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:167
+msgid "The second component is composed of node ``0``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:168
+msgid "The third component is composed of node ``3``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:169
+msgid "The fourth component is composed of node ``5``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:170
+msgid "The fifth component is composed of node ``6``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:177
+msgid "Biconnected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:178
+msgid ""
+"The biconnected components of an undirected graph are the maximal subsets of"
+" vertices such that the removal of a vertex from particular component will "
+"not disconnect the component. Unlike connected components, vertices may "
+"belong to multiple biconnected components. Vertices can be present in "
+"multiple biconnected components, but each edge can only be contained in a "
+"single biconnected component. So, the output only has edge version."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:188
+msgid "pgr_biconnectedComponents(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:228
+msgid ":math:`edge_i \\in component_i`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:232
+#: ../../build/doc/components-family.rst:358
+msgid "`edge` ascending"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:235
+msgid ""
+"The first component is composed of edges ``1 - 2``, ``0 - 1`` and ``0 - 2``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:236
+msgid ""
+"The second component is composed of edges ``2 - 4``, ``2 - 3`` and ``3 - "
+"4``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:237
+msgid "The third component is composed of edge ``5 - 6``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:238
+msgid "The fourth component is composed of edge ``6 - 7``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:239
+msgid ""
+"The fifth component is composed of edges ``8 - 9``, ``9 - 10`` and ``8 - "
+"10``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:246
+msgid "Articulation Points"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:247
+msgid ""
+"Those vertices that belong to more than one biconnected component are called"
+" articulation points or, equivalently, cut vertices. Articulation points are"
+" vertices whose removal would increase the number of connected components in"
+" the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:257
+msgid "pgr_articulationPoints(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:292
+msgid ":math:`\\boldsymbol{\\pi} = \\{node_i\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:295
+msgid ":math:`node_i` is an articulation point."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:301
+msgid "Articulation points are nodes ``2`` and ``6``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:308
+msgid "Bridges"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:309
+msgid ""
+"A bridge is an edge of an undirected graph whose deletion increases its "
+"number of connected components."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:317
+msgid "pgr_bridges(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:352
+msgid ":math:`\\boldsymbol{\\pi} = \\{edge_i\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:355
+msgid ":math:`edge_i` is an edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:361
+msgid "Bridges are edges ``5 <--> 6`` and ``6 <--> 7``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:370
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:372
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:421
+#: ../../build/doc/components-family.rst:440
+#: ../../build/doc/components-family.rst:458
+#: ../../build/doc/components-family.rst:474
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:405
+#: ../../build/doc/components-family.rst:421
+#: ../../build/doc/components-family.rst:440
+#: ../../build/doc/components-family.rst:458
+#: ../../build/doc/components-family.rst:474
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:405
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:405
+#: ../../build/doc/components-family.rst:421
+#: ../../build/doc/components-family.rst:440
+#: ../../build/doc/components-family.rst:458
+#: ../../build/doc/components-family.rst:474
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:377
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:377
+#: ../../build/doc/components-family.rst:378
+#: ../../build/doc/components-family.rst:379
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:377
+#: ../../build/doc/components-family.rst:445
+#: ../../build/doc/components-family.rst:477
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:378
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:378
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:379
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:379
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:380
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:380
+#: ../../build/doc/components-family.rst:384
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:380
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:382
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:384
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:384
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:384
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:386
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:390
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:392
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:393
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:402
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:405
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:407
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:407
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:407
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:416
+msgid ""
+"Description of the return values for connected components and strongly "
+"connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:418
+msgid "Returns set of ``(seq, component, n_seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:423
+#: ../../build/doc/components-family.rst:442
+#: ../../build/doc/components-family.rst:460
+#: ../../build/doc/components-family.rst:476
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:423
+#: ../../build/doc/components-family.rst:425
+#: ../../build/doc/components-family.rst:442
+#: ../../build/doc/components-family.rst:444
+#: ../../build/doc/components-family.rst:460
+#: ../../build/doc/components-family.rst:476
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:423
+#: ../../build/doc/components-family.rst:442
+#: ../../build/doc/components-family.rst:460
+#: ../../build/doc/components-family.rst:476
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:424
+#: ../../build/doc/components-family.rst:443
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:424
+#: ../../build/doc/components-family.rst:426
+#: ../../build/doc/components-family.rst:443
+#: ../../build/doc/components-family.rst:445
+#: ../../build/doc/components-family.rst:461
+#: ../../build/doc/components-family.rst:477
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:424
+msgid ""
+"Component identifier. It is equal to the minimum node identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:425
+#: ../../build/doc/components-family.rst:444
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:425
+#: ../../build/doc/components-family.rst:444
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:426
+#: ../../build/doc/components-family.rst:461
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:426
+#: ../../build/doc/components-family.rst:461
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:435
+msgid ""
+"Description of the return values for biconnected components, connected "
+"components (edge version) and strongly connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:437
+msgid "Returns set of ``(seq, component, n_seq, edge)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:443
+msgid ""
+"Component identifier. It is equal to the minimum edge identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:445
+#: ../../build/doc/components-family.rst:477
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:453
+msgid "Description of the return values for articulation points"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:455
+#: ../../build/doc/components-family.rst:471
+msgid "Returns set of ``(seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:469
+msgid "Description of the return values for bridges"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:483
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:486
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:487
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:488
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/contraction-family.po b/locale/en/LC_MESSAGES/contraction-family.po
new file mode 100644
index 0000000..182343c
--- /dev/null
+++ b/locale/en/LC_MESSAGES/contraction-family.po
@@ -0,0 +1,745 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/contraction-family.rst:14
+msgid "Contraction - Family of functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:21
+msgid ":ref:`pgr_contractGraph`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:29
+msgid "Introduction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:31
+msgid ""
+"In big graphs, like the road graphs, or electric networks, graph contraction"
+" can be used to speed up some graph algorithms. Contraction reduces the size"
+" of the graph by removing some of the vertices and edges and, for example, "
+"might add edges that represent a sequence of original edges decreasing the "
+"total time and space used in graph algorithms."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:33
+msgid ""
+"This implementation gives a flexible framework for adding contraction "
+"algorithms in the future, currently, it supports two algorithms:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:35
+#: ../../build/doc/contraction-family.rst:46
+msgid "Dead end contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:36
+#: ../../build/doc/contraction-family.rst:166
+msgid "Linear contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:38
+msgid "Allowing the user to:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:40
+msgid "Forbid contraction on a set of nodes."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:41
+msgid ""
+"Decide the order of the contraction algorithms and set the maximum number of"
+" times they are to be executed."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:43
+msgid "UNDER DISCUSSION:  Forbid contraction on a set of edges"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:47
+msgid "In the algorithm, dead end contraction is represented by 1."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:50
+msgid "Dead end nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:52
+msgid ""
+"The definition of a dead end node is different for a directed and an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:54
+msgid "In case of a undirected graph, a node is considered a dead end node if"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:56
+msgid "The number of adjacent vertices is 1."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:58
+msgid "In case of an directed graph, a node is considered a dead end node if"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:60
+msgid "There are no outgoing edges and has at least one incoming edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:61
+msgid "There is one incoming and one outgoing edge with the same identifier."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:64
+#: ../../build/doc/contraction-family.rst:178
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:65
+msgid "The green node ``B`` represents a dead end node"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:66
+msgid "The node ``A`` is the only node connecting to ``B``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:67
+#: ../../build/doc/contraction-family.rst:181
+msgid ""
+"Node ``A`` is part of the rest of the graph and has an unlimited number of "
+"incoming and outgoing edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:68
+#: ../../build/doc/contraction-family.rst:183
+msgid "Directed graph"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:86
+msgid "Operation: Dead End Contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:88
+msgid ""
+"The dead end contraction will stop until there are no more dead end nodes. "
+"For example from the following graph:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:91
+#: ../../build/doc/contraction-family.rst:208
+msgid ""
+"Node ``A`` is connected to the rest of the graph by an unlimited number of "
+"edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:92
+msgid ""
+"Node ``B`` is connected to the rest of the graph with one incoming edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:93
+msgid "Node ``B`` is the only node connecting to ``C``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:94
+msgid "The green node ``C`` represents a `Dead End` node"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:113
+msgid ""
+"After contracting ``C``, node ``B`` is now a `Dead End` node and is "
+"contracted:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:129
+msgid "Node ``B`` gets contracted"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:143
+msgid "Nodes ``B`` and ``C`` belong to node ``A``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:148
+msgid "Not Dead End nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:150
+msgid "In this graph ``B`` is not a `dead end` node."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:167
+msgid "In the algorithm, linear contraction is represented by 2."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:170
+msgid "Linear nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:172
+msgid "A node is considered a linear node if satisfies the following:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:174
+msgid "The number of adjacent vertices are 2."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:175
+msgid "Should have at least one incoming edge and one outgoing edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:179
+msgid "The green node ``B`` represents a linear node"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:180
+msgid "The nodes ``A`` and ``C`` are the only nodes connecting to ``B``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:182
+msgid ""
+"Node ``C`` is part of the rest of the graph and has an unlimited number of "
+"incoming and outgoing edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:203
+msgid "Operation: Linear Contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:205
+msgid ""
+"The linear contraction will stop until there are no more linear nodes. For "
+"example from the following graph:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:209
+msgid ""
+"Node ``B`` is connected to the rest of the graph with one incoming edge and "
+"one outgoing edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:210
+msgid ""
+"Node ``C`` is connected to the rest of the graph with one incoming edge and "
+"one outgoing edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:211
+msgid ""
+"Node ``D`` is connected to the rest of the graph by an unlimited number of "
+"edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:212
+msgid "The green nodes ``B`` and ``C`` represents `Linear` nodes."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:234
+msgid ""
+"After contracting ``B``, a new edge gets inserted between ``A`` and ``C`` "
+"which is represented by red color."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:254
+msgid "Node ``C`` is `linear node` and gets contracted."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:272
+msgid ""
+"Nodes ``B`` and ``C`` belong to edge connecting ``A`` and ``D`` which is "
+"represented by red color."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:275
+msgid "Not Linear nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:277
+msgid "In this graph ``B`` is not a `linear` node."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:298
+msgid "The cycle"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:300
+msgid ""
+"Contracting a graph, can be done with more than one operation. The order of "
+"the operations affect the resulting contracted graph, after applying one "
+"operation, the set of vertices that can be contracted by another operation "
+"changes."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:302
+msgid ""
+"This implementation, cycles ``max_cycles`` times through "
+"``operations_order`` ."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:315
+msgid "Contracting Sample Data"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:317
+msgid ""
+"In this section, building and using a contracted graph will be shown by "
+"example."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:319
+msgid "The :doc:`sampledata` for an undirected graph is used"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:320
+msgid "a dead end operation first followed by a linear operation."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:322
+msgid "The original graph:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:326
+msgid "After doing a dead end contraction operation:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:330
+msgid "Doing a linear contraction operation to the graph above"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:335
+msgid ""
+"There are five cases, in this documentation, which arise when calculating "
+"the shortest path between a given source and target. In this examples, "
+"``pgr_dijkstra`` is used."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:338
+msgid "**Case 1**: Both source and target belong to the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:339
+msgid ""
+"**Case 2**: Source belongs to a contracted graph, while target belongs to a "
+"edge subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:340
+msgid ""
+"**Case 3**: Source belongs to a vertex subgraph, while target belongs to an "
+"edge subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:341
+msgid ""
+"**Case 4**: Source belongs to a contracted graph, while target belongs to an"
+" vertex subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:342
+msgid ""
+"**Case 5**: The path contains a new edge added by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:345
+msgid "Construction of the graph in the database"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:348
+msgid "Original Data"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:349
+msgid ""
+"The following query shows the original data involved in the contraction "
+"operation."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:356
+msgid "Contraction Results"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:361
+msgid ""
+"The above results do not represent the contracted graph. They represent the "
+"changes done to the graph after applying the contraction algorithm. We can "
+"see that vertices like 6 and 11 do not appear in the contraction results "
+"because they were not affected by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:364
+msgid "step 1"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:365
+msgid ""
+"Adding extra columns to the ``edge_table`` and ``edge_table_vertices_pgr`` "
+"tables:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:368
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:368
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:370
+msgid "**contracted_vertices**"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:370
+msgid "The vertices set belonging to the vertex/edge"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:371
+#: ../../build/doc/contraction-family.rst:372
+msgid "**is_contracted**"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:371
+msgid ""
+"On a `vertex` table: when ``true`` the vertex is contracted, so is not part "
+"of the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:372
+msgid ""
+"On an `edge` table: when ``true`` the edge was generated by the contraction "
+"algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:375
+msgid "Using the following queries:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:382
+msgid "step 2"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:383
+msgid ""
+"For simplicity, in this documentation, store the results of the call to "
+"pgr_contractGraph in a temporary table"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:390
+msgid "step 3"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:391
+msgid ""
+"Update the `vertex` and `edge` tables using the results of the call to "
+"pgr_contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:393
+msgid ""
+"In `edge_table_vertices_pgr.is_contracted` indicate the vertices that are "
+"contracted."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:399
+msgid ""
+"Add to `edge_table_vertices_pgr.contracted_vertices`  the contracted "
+"vertices belonging to the vertices."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:405
+msgid "Insert the new edges generated by  pgr_contractGraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:412
+msgid "step 3.1"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:413
+msgid "Verify visually the updates."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:415
+msgid "On the `edge_table_vertices_pgr`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:421
+msgid "On the `edge_table`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:427
+msgid ""
+"vertices that belong to the contracted graph are the non contracted vertices"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:434
+msgid "case 1: Both source and target belong to the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:435
+msgid ""
+"Inspecting the contracted graph above, vertex 3 and vertex 11 are part of "
+"the contracted graph. In the following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:437
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:438
+#: ../../build/doc/contraction-family.rst:452
+#: ../../build/doc/contraction-family.rst:469
+#: ../../build/doc/contraction-family.rst:485
+#: ../../build/doc/contraction-family.rst:507
+msgid ""
+"when selecting the edges, only edges that have the source and the target in "
+"that set are the edges belonging to the contracted graph, that is done in "
+"the WHERE clause."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:440
+msgid ""
+"Visually, looking at the original graph, going from 3 to 11: 3 -> 6 -> 11, "
+"and in the contracted graph, it is also 3 -> 6 -> 11. The results, on the "
+"contracted graph match the results as if it was done on the original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:448
+msgid ""
+"case 2: Source belongs to the contracted graph, while target belongs to a "
+"edge subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:452
+msgid ""
+"Inspecting the contracted graph above, vertex 3 is part of the contracted "
+"graph and vertex 1 belongs to the contracted subgraph of edge 19. In the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:450
+msgid ""
+"expand1 holds the contracted vertices of the edge where vertex 1 belongs. "
+"(belongs to edge 19)."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:451
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph and "
+"also the contracted vertices of edge 19."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:454
+msgid ""
+"Visually, looking at the original graph, going from 3 to 1: 3 -> 2 -> 1, and"
+" in the contracted graph, it is also 3 -> 2 -> 1. The results, on the "
+"contracted graph match the results as if it was done on the original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:463
+msgid ""
+"case 3: Source belongs to a vertex subgraph, while target belongs to an edge"
+" subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:464
+msgid ""
+"Inspecting the contracted graph above, vertex 7 belongs to the contracted "
+"subgraph of vertex 5 and vertex 13 belongs to the contracted subgraph of "
+"edge 21. In the following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:466
+#: ../../build/doc/contraction-family.rst:483
+msgid ""
+"expand7 holds the contracted vertices of vertex where vertex 7 belongs. "
+"(belongs to vertex 5)"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:467
+msgid ""
+"expand13 holds the contracted vertices of edge where vertex 13 belongs. "
+"(belongs to edge 21)"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:468
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph, "
+"contracted vertices of vertex 5 and contracted vertices of edge 21."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:471
+msgid ""
+"Visually, looking at the original graph, going from 7 to 13: 7 -> 8 -> 5 -> "
+"10 -> 13, and in the contracted graph, it is also 7 -> 8 -> 5 -> 10 -> 13. "
+"The results, on the contracted graph match the results as if it was done on "
+"the original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:480
+msgid ""
+"case 4: Source belongs to the contracted graph, while target belongs to an "
+"vertex subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:481
+msgid ""
+"Inspecting the contracted graph above, vertex 3 is part of the contracted "
+"graph and vertex 7 belongs to the contracted subgraph of vertex 5. In the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:484
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph and "
+"the contracted vertices of vertex 5."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:487
+msgid ""
+"Visually, looking at the original graph, going from 3 to 7: 3 -> 2 -> 5 -> 8"
+" -> 7, but in the contracted graph, it is 3 -> 5 -> 8 -> 7. The results, on "
+"the contracted graph do not match the results as if it was done on the "
+"original graph. This is because the path contains edge 19 which is added by "
+"the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:495
+msgid "case 5: The path contains an edge added by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:496
+msgid ""
+"In the previous example we can see that the path from vertex 3 to vertex 7 "
+"contains an edge which is added by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:502
+msgid ""
+"Inspecting the contracted graph above, edge 19 should be expanded. In the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:504
+msgid "first_dijkstra holds the results of the dijkstra query."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:505
+msgid ""
+"edges_to_expand holds the edges added by the contraction algorithm and "
+"included in the path."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:506
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph, "
+"vertices of the contracted solution and the contracted vertices of the edges"
+" added by the contraction algorithm and included in the contracted solution."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:509
+msgid ""
+"Visually, looking at the original graph, going from 3 to 7: 3 -> 2 -> 5 -> 8"
+" -> 7, and in the contracted graph, it is also 3 -> 2 -> 5 -> 8 -> 7. The "
+"results, on the contracted graph match the results as if it was done on the "
+"original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:517
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:519
+msgid ""
+"http://www.cs.cmu.edu/afs/cs/academic/class/15210-f12/www/lectures/lecture16.pdf"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:520
+msgid "http://algo2.iti.kit.edu/documents/routeplanning/geisberger_dipl.pdf"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:521
+msgid ""
+"The queries use :ref:`pgr_contractGraph` function and the :doc:`sampledata` "
+"network."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:524
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:525
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:526
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/cost-category.po b/locale/en/LC_MESSAGES/cost-category.po
new file mode 100644
index 0000000..efea606
--- /dev/null
+++ b/locale/en/LC_MESSAGES/cost-category.po
@@ -0,0 +1,178 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/cost-category.rst:13
+msgid "Cost - Category"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:17
+msgid ":ref:`pgr_aStarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:18
+msgid ":ref:`pgr_bdAstarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:19
+msgid ":ref:`pgr_bdDijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:20
+msgid ":ref:`pgr_dijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:21
+msgid ":ref:`pgr_withPointsCost`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:30
+msgid "General Information"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:34
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:36
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:38
+msgid "Each function works as part of the family it belongs to."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:39
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:40
+msgid ""
+"Returns the sum of the costs of the resulting path(s) for pair combination "
+"of nodes in the graph."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:41
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:42
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:44
+msgid ""
+"The returned values are in the form of a set of `(start_vid, end_vid, "
+"agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:46
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:48
+msgid "The `agg_cost` int the non included values `(v, v)` is `0`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:50
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:52
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:54
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:56
+msgid ""
+"Depending on the function and its parameters, the results can be symmetric."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:58
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:60
+msgid "Any duplicated value in the `start_vids` or in `end_vids` are ignored."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:62
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:64
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:65
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:70
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:73
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:74
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:75
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/costMatrix-category.po b/locale/en/LC_MESSAGES/costMatrix-category.po
new file mode 100644
index 0000000..ad36b5e
--- /dev/null
+++ b/locale/en/LC_MESSAGES/costMatrix-category.po
@@ -0,0 +1,237 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/costMatrix-category.rst:13
+msgid "Cost Matrix - Category"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:17
+msgid ":ref:`pgr_aStarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:18
+msgid ":ref:`pgr_bdAstarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:19
+msgid ":ref:`pgr_bdDijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:20
+msgid ":ref:`pgr_dijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:21
+msgid ":ref:`pgr_withPointsCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:40
+msgid "General Information"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:43
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:45
+msgid ""
+":ref:`tsp` needs as input a symmetric cost matrix and no edge `(u, v)` must "
+"value :math:`\\infty`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:47
+msgid ""
+"This collection of functions will return a cost matrix in form of a table."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:51
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:53
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:55
+msgid "Can be used as input to :ref:`pgr_tsp`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:57
+msgid ""
+"when the resulting matrix is symmetric and there is no :math:`\\infty` "
+"value."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:58
+msgid "It will be the users responsibility to make the matrix symmetric."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:60
+msgid "By using geometric or harmonic average of the non symmetric values."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:61
+msgid "By using max or min the non symmetric values."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:62
+msgid ""
+"By setting the upper triangle to be the mirror image of the lower triangle."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:63
+msgid ""
+"By setting the lower triangle to be the mirror image of the upper triangle."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:65
+msgid "It is also the users responsibility to fix an :math:`\\infty` value."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:67
+msgid "Each function works as part of the family it belongs to."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:68
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:69
+msgid ""
+"Returns the sum of the costs of the shortest path for pair combination of "
+"nodes in the graph."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:70
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:71
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:73
+msgid ""
+"The returned values are in the form of a set of `(start_vid, end_vid, "
+"agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:75
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:77
+msgid "The `agg_cost` int the non included values `(v, v)` is `0`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:79
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:81
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:83
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:85
+msgid ""
+"Depending on the function and its parameters, the results can be symmetric."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:87
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:89
+msgid "Any duplicated value in the `start_vids` are ignored."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:91
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:93
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:94
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:96
+msgid "Running time: approximately :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:101
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:103
+msgid ":ref:`pgr_tsp`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:106
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:107
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:108
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/cost_result.po b/locale/en/LC_MESSAGES/cost_result.po
new file mode 100644
index 0000000..cfc1232
--- /dev/null
+++ b/locale/en/LC_MESSAGES/cost_result.po
@@ -0,0 +1,92 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/cost_result.rst:13
+msgid "pgr_costResult[]"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:19 ../../build/doc/cost_result.rst:52
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:21
+msgid ""
+"``pgr_costResult[]`` — A set of records to describe a path result with cost "
+"attribute."
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:25 ../../build/doc/cost_result.rst:58
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:37 ../../build/doc/cost_result.rst:71
+msgid "sequential ID indicating the path order"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:38 ../../build/doc/cost_result.rst:73
+msgid "generic name, to be specified by the function, typically the node id"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:39 ../../build/doc/cost_result.rst:74
+msgid "generic name, to be specified by the function, typically the edge id"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:40 ../../build/doc/cost_result.rst:75
+msgid "cost attribute"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:46
+msgid "pgr_costResult3[] - Multiple Path Results with Cost"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:54
+msgid ""
+"``pgr_costResult3[]`` — A set of records to describe a path result with cost"
+" attribute."
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:72
+msgid "generic name, to be specified by the function, typically the path id"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:79
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:80
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:81
+msgid "Replaces ``path_result``"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:85
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:87
+msgid ":ref:`introduction`"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:90
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:91
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:92
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/dijkstra-family.po b/locale/en/LC_MESSAGES/dijkstra-family.po
new file mode 100644
index 0000000..a9fa495
--- /dev/null
+++ b/locale/en/LC_MESSAGES/dijkstra-family.po
@@ -0,0 +1,262 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/dijkstra-family.rst:13
+msgid "Dijkstra - Family of functions"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:17
+msgid ":ref:`pgr_dijkstra` - Dijkstra's algorithm for the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:18
+msgid ""
+":ref:`pgr_dijkstraCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:19
+msgid ""
+":ref:`pgr_dijkstraCostMatrix` - Use pgr_dijkstra to create a costs matrix."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:20
+msgid ""
+":ref:`pgr_drivingDistance` - Use pgr_dijkstra to calculate catchament "
+"information."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:21
+msgid ""
+":ref:`pgr_ksp` - Use Yen algorithm with pgr_dijkstra to get the K shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:22
+msgid ":ref:`pgr_dijkstraVia` - Get a route of a seuence of vertices."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:39
+msgid "The problem definition (Advanced documentation)"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:42
+msgid "Given the following query:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:45
+msgid "pgr_dijkstra(:math:`sql, start_{vid}, end_{vid}, directed`)"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:47
+msgid ""
+"where  :math:`sql = \\{(id_i, source_i, target_i, cost_i, "
+"reverse\\_cost_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:49
+msgid "and"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:51
+msgid ":math:`source = \\bigcup source_i`,"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:52
+msgid ":math:`target = \\bigcup target_i`,"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:54
+msgid "The graphs are defined as follows:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:57
+msgid "Directed graph"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:58
+msgid "The weighted directed graph, :math:`G_d(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:60
+#: ../../build/doc/dijkstra-family.rst:79
+msgid "the set of vertices  :math:`V`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:62
+msgid ":math:`V = source \\cup target \\cup {start_{vid}} \\cup  {end_{vid}}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:64
+#: ../../build/doc/dijkstra-family.rst:84
+msgid "the set of edges :math:`E`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:66
+msgid ""
+":math:`E = \\begin{cases} \\text{ }  \\{(source_i, target_i, cost_i) \\text{"
+" when } cost >=0 \\} & \\quad \\text{if } reverse\\_cost = \\varnothing \\\\"
+" \\text{ }  \\text{ }  & \\quad \\text{ } \\\\ \\text{ }  \\{(source_i, "
+"target_i, cost_i) \\text{ when } cost >=0 \\} &  \\quad \\text{ } \\\\ \\cup"
+"      \\{(target_i, source_i, reverse\\_cost_i) \\text{ when } "
+"reverse\\_cost_i>=0 \\} & \\quad \\text{if } reverse\\_cost \\neq "
+"\\varnothing \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:76
+msgid "Undirected graph"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:77
+msgid "The weighted undirected graph, :math:`G_u(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:81
+msgid ":math:`V = source \\cup target \\cup {start_v{vid}} \\cup  {end_{vid}}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:86
+msgid ""
+":math:`E = \\begin{cases} \\text{ }  \\{(source_i, target_i, cost_i) \\text{"
+" when } cost >=0 \\}  & \\quad \\text{ } \\\\ \\cup      \\{(target_i, "
+"source_i, cost_i) \\text{ when } cost >=0 \\}  & \\quad \\text{ if } "
+"reverse\\_cost = \\varnothing \\\\ \\text{ }  \\text{ }  & \\text{ } \\\\ "
+"\\text{ }  \\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & "
+"\\text{ } \\\\ \\cup  \\{(target_i, source_i, cost_i) \\text{ when } cost "
+">=0 \\} & \\text{ } \\\\ \\cup  \\{(target_i, source_i, reverse\\_cost_i) "
+"\\text{ when } reverse\\_cost_i >=0)\\} & \\text{ } \\\\ \\cup  "
+"\\{(source_i, target_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i "
+">=0)\\} & \\quad \\text{ if } reverse\\_cost \\neq \\varnothing \\\\ "
+"\\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:99
+msgid "The problem"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:100
+msgid "Given:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:102
+msgid ":math:`start_{vid} \\in V` a starting vertex"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:103
+msgid ":math:`end_{vid} \\in V` an ending vertex"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:104
+msgid ""
+":math:`G(V,E) = \\begin{cases} G_d(V,E) & \\quad \\text{ if6 } directed = "
+"true \\\\ G_u(V,E) & \\quad \\text{ if5 } directed = false \\\\ "
+"\\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:109
+msgid "Then:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:118
+msgid ""
+":math:`\\boldsymbol{\\pi} = \\{(path\\_seq_i, node_i, edge_i, cost_i, "
+"agg\\_cost_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:131
+msgid "where:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:121
+msgid ":math:`path\\_seq_i = i`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:122
+msgid ":math:`path\\_seq_{| \\pi |} = | \\pi |`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:123
+msgid ":math:`node_i \\in V`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:124
+msgid ":math:`node_1 = start_{vid}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:125
+msgid ":math:`node_{| \\pi |}  = end_{vid}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:126
+msgid ":math:`\\forall i \\neq | \\pi |, \\quad (node_i, node_{i+1}, cost_i) \\in E`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:127
+msgid ""
+":math:`edge_i  = \\begin{cases}  id_{(node_i, node_{i+1},cost_i)}  &\\quad  "
+"\\text{when } i \\neq | \\pi | \\\\ -1 &\\quad  \\text{when } i = | \\pi | "
+"\\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:128
+msgid ":math:`cost_i = cost_{(node_i, node_{i+1})}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:129
+msgid ""
+":math:`agg\\_cost_i  = \\begin{cases}  0   &\\quad  \\text{when } i = 1  "
+"\\\\ \\displaystyle\\sum_{k=1}^{i}  cost_{(node_{k-1}, node_k)}  &\\quad  "
+"\\text{when } i \\neq 1 \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:137
+msgid ""
+"In other words: The algorithm returns a the shortest path between "
+":math:`start_{vid}` and :math:`end_{vid}` , if it exists, in terms of a "
+"sequence of nodes  and of edges,"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:134
+msgid ""
+":math:`path\\_seq` indicates the relative position in the path of the "
+":math:`node` or :math:`edge`."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:135
+msgid ""
+":math:`cost` is the cost of the edge to be used to go to the next node."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:136
+msgid ""
+":math:`agg\\_cost` is the cost from the :math:`start_{vid}` up to the node."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:139
+msgid "If there is no path, the resulting set is empty."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:143
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:146
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:147
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:148
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/drivingDistance-category.po b/locale/en/LC_MESSAGES/drivingDistance-category.po
new file mode 100644
index 0000000..a71b4c7
--- /dev/null
+++ b/locale/en/LC_MESSAGES/drivingDistance-category.po
@@ -0,0 +1,52 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/drivingDistance-category.rst:14
+msgid "Driving Distance - Category"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:18
+msgid ":ref:`pgr_drivingDistance` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:19
+msgid ":ref:`pgr_withPointsDD` - Driving Distance based on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:20
+msgid "Post pocessing"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:22
+msgid ":ref:`pgr_alphaShape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:23
+msgid ":ref:`pgr_points_as_polygon` - Polygon around a set of points"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:36
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:39
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:40
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:41
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/flow-family.po b/locale/en/LC_MESSAGES/flow-family.po
new file mode 100644
index 0000000..a000199
--- /dev/null
+++ b/locale/en/LC_MESSAGES/flow-family.po
@@ -0,0 +1,331 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Flow - Family of functions"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid ""
+":ref:`pgr_maxFlow` - Only the Max flow calculation using Push and Relabel "
+"algorithm."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid ""
+":ref:`pgr_BoykovKolmogorov` - Boykov and Kolmogorov with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:19
+msgid ""
+":ref:`pgr_EdmondsKarp` - Edmonds and Karp algorithm with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid ""
+":ref:`pgr_PushRelabel` - Push and relabel algorithm with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "Applications"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:23
+msgid ""
+":ref:`pgr_edgeDisjointPaths` - Calculates edge disjoint paths between two "
+"groups of vertices."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:24
+msgid ""
+":ref:`pgr_maxCardinalityMatch` - Calculates a maximum cardinality matching "
+"in a graph."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:45
+msgid "Flow Functions General Information"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:51
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:52
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:53
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:54
+msgid ""
+"When the maximum flow is 0 then there is no flow and **EMPTY SET** is "
+"returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:56
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:58
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:59
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:61
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:63
+msgid ""
+"Creates a **super source** and edges to all the source(s), and a **super "
+"target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:64
+msgid ""
+"The maximum flow through the graph is guaranteed to be the value returned by"
+" :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and"
+" can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:66
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:67
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:72
+msgid ""
+":ref:`pgr_maxFlow <pgr_maxFlow>`  is the  maximum Flow and that maximum is "
+"guaranteed to be the same on the functions :ref:`pgr_pushRelabel "
+"<pgr_pushRelabel>`, :ref:`pgr_edmondsKarp <pgr_edmondsKarp>`, "
+":ref:`pgr_boykovKolmogorov <pgr_boykovKolmogorov>`, but the actual flow "
+"through each edge may vary."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:77
+msgid "Problem definition"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:79
+msgid ""
+"A flow network is a directed graph where each edge has a capacity and a "
+"flow. The flow through an edge must not exceed the capacity of the edge. "
+"Additionally, the incoming and outgoing flow of a node must be equal except "
+"the for source which only has outgoing flow, and the destination(sink) which"
+" only has incoming flow."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:83
+msgid ""
+"Maximum flow algorithms calculate the maximum flow through the graph and the"
+" flow of each edge."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:85
+msgid ""
+"The maximum flow through the graph is guaranteed to be the same with all "
+"implementations, but the actual flow through each edge may vary. Given the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:89
+msgid "pgr_maxFlow :math:`(edges\\_sql, source\\_vertex, sink\\_vertex)`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:91
+msgid ""
+"where :math:`edges\\_sql = \\{(id_i, source_i, target_i, capacity_i, "
+"reverse\\_capacity_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:94
+msgid "Graph definition"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:95
+msgid "The weighted directed graph, :math:`G(V,E)`, is defined as:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:97
+msgid "the set of vertices  :math:`V`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:99
+msgid ""
+":math:`source\\_vertex  \\cup  sink\\_vertex  \\bigcup  source_i  \\bigcup  "
+"target_i`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:101
+msgid "the set of edges :math:`E`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:103
+msgid ""
+":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, capacity_i) "
+"\\text{ when } capacity > 0 \\} & \\quad  \\text{ if } reverse\\_capacity = "
+"\\varnothing \\\\ \\text{ } & \\quad \\text{ } \\\\ \\{(source_i, target_i, "
+"capacity_i) \\text{ when } capacity > 0 \\} & \\text{ } \\\\ \\cup "
+"\\{(target_i, source_i, reverse\\_capacity_i) \\text{ when } "
+"reverse\\_capacity_i > 0)\\} & \\quad \\text{ if } reverse\\_capacity \\neq "
+"\\varnothing \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:111
+msgid "Maximum flow problem"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:112
+msgid "Given:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:115
+msgid ":math:`G(V,E)`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:116
+msgid ":math:`source\\_vertex \\in V` the source vertex"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:117
+msgid ":math:`sink\\_vertex \\in V` the sink vertex"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:119
+msgid "Then:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:121
+msgid ":math:`pgr\\_maxFlow(edges\\_sql, source, sink) = \\boldsymbol{\\Phi}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:123
+msgid ""
+":math:`\\boldsymbol{\\Phi} = {(id_i, edge\\_id_i, source_i, target_i, "
+"flow_i, residual\\_capacity_i)}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:125
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:127
+msgid ""
+":math:`\\boldsymbol{\\Phi}` is a subset of the original edges with their "
+"residual capacity and flow. The maximum flow through the graph can be "
+"obtained by aggregating on the source or sink and summing the flow from/to "
+"it. In particular:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:129
+msgid ":math:`id_i = i`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:130
+msgid ":math:`edge\\_id = id_i` in edges_sql"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:131
+msgid ":math:`residual\\_capacity_i = capacity_i - flow_i`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:135
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:137
+msgid "https://en.wikipedia.org/wiki/Maximum_flow_problem"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:140
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:141
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:142
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/geom_result.po b/locale/en/LC_MESSAGES/geom_result.po
new file mode 100644
index 0000000..e2d89a1
--- /dev/null
+++ b/locale/en/LC_MESSAGES/geom_result.po
@@ -0,0 +1,74 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/geom_result.rst:13
+msgid "pgr_geomResult[]"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:21
+msgid ""
+"``pgr_geomResult[]`` — A set of records to describe a path result with "
+"geometry attribute."
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:25
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:37
+msgid "sequential ID indicating the path order"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:38 ../../build/doc/geom_result.rst:39
+msgid "generic name, to be specified by the function"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:40
+msgid "geometry attribute"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:44
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:45
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:46
+msgid "Replaces ``geoms``"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:50
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:52
+msgid ":ref:`introduction`"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:56
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:57
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:58
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/index.po b/locale/en/LC_MESSAGES/index.po
new file mode 100644
index 0000000..44ac3e4
--- /dev/null
+++ b/locale/en/LC_MESSAGES/index.po
@@ -0,0 +1,306 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/index.rst:14
+msgid "Table of Contents"
+msgstr ""
+
+#: ../../build/doc/index.rst:16
+msgid ""
+"pgRouting extends the `PostGIS <http://postgis.net>`_/`PostgreSQL "
+"<http://postgresql.org>`_ geospatial database to provide geospatial routing "
+"and other network analysis functionality."
+msgstr ""
+
+#: ../../build/doc/index.rst:18
+msgid "This is the manual for pgRouting |release|."
+msgstr ""
+
+#: ../../build/doc/index.rst:24
+msgid ""
+"The pgRouting Manual is licensed under a `Creative Commons Attribution-Share"
+" Alike 3.0 License <http://creativecommons.org/licenses/by-sa/3.0/>`_. Feel "
+"free to use this material any way you like, but we ask that you attribute "
+"credit to the pgRouting Project and wherever possible, a link back to "
+"http://pgrouting.org. For other licenses used in pgRouting see the "
+":ref:`license` page."
+msgstr ""
+
+#: ../../build/doc/index.rst:27
+msgid "General"
+msgstr ""
+
+#: ../../build/doc/index.rst:37
+msgid ":doc:`sampledata` that is used in the examples of this manual."
+msgstr ""
+
+#: ../../build/doc/index.rst:45
+msgid "Pgrouting Concepts"
+msgstr ""
+
+#: ../../build/doc/index.rst:54
+msgid "Reference"
+msgstr ""
+
+#: ../../build/doc/index.rst:55
+msgid ":ref:`pgr_version` - to get pgRouting's version information."
+msgstr ""
+
+#: ../../build/doc/index.rst:64
+msgid ":ref:`Data Types <data_types>`"
+msgstr ""
+
+#: ../../build/doc/index.rst:67
+msgid ""
+":ref:`type_cost_result` -  A set of records to describe a path result with "
+"cost attribute."
+msgstr ""
+
+#: ../../build/doc/index.rst:68
+msgid ""
+":ref:`pgr_costResult3[]<type_cost_result3>` - A set of records to describe a"
+" path result with cost attribute."
+msgstr ""
+
+#: ../../build/doc/index.rst:69
+msgid ""
+":ref:`pgr_geomResult<type_geom_result>` - A set of records to describe a "
+"path result with geometry attribute."
+msgstr ""
+
+#: ../../build/doc/index.rst:78
+msgid ":ref:`Topology Functions <topology_functions>`"
+msgstr ""
+
+#: ../../build/doc/index.rst:80
+msgid ""
+":ref:`pgr_create_topology` -  to create a topology based on the geometry."
+msgstr ""
+
+#: ../../build/doc/index.rst:81
+msgid ""
+":ref:`pgr_create_vert_table` - to reconstruct the vertices table based on "
+"the source and target information."
+msgstr ""
+
+#: ../../build/doc/index.rst:82
+msgid ""
+":ref:`pgr_analyze_graph`  - to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/index.rst:83
+msgid ":ref:`pgr_analyze_oneway` - to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/index.rst:84
+msgid ":ref:`pgr_node_network`  -to create nodes to a not noded edge table."
+msgstr ""
+
+#: ../../build/doc/index.rst:93
+msgid ":ref:`Routing functions <routing_functions>`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:4
+msgid ":ref:`all_pairs`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:6
+msgid ":ref:`pgr_floydWarshall` - Floyd-Warshall's Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:7
+msgid ":ref:`pgr_johnson`- Johnson’s Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:9
+msgid ":ref:`pgr_astar` - Shortest Path A*"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:11
+msgid ":ref:`pgr_bdAstar` - Bi-directional A* Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:13
+msgid ":ref:`pgr_bdDijkstra` - Bi-directional Dijkstra Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:16
+msgid ":ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:3
+msgid ":ref:`pgr_dijkstra` - Dijkstra's algorithm for the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:4
+msgid ""
+":ref:`pgr_dijkstraCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:5
+msgid ""
+":ref:`pgr_dijkstraCostMatrix` - Use pgr_dijkstra to create a costs matrix."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:6
+msgid ""
+":ref:`pgr_drivingDistance` - Use pgr_dijkstra to calculate catchament "
+"information."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:7
+msgid ""
+":ref:`pgr_ksp` - Use Yen algorithm with pgr_dijkstra to get the K shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:8
+msgid ":ref:`pgr_dijkstraVia` - Get a route of a seuence of vertices."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:22
+msgid ":ref:`pgr_ksp` - K-Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:24
+msgid ":ref:`pgr_trsp<trsp>` - Turn Restriction Shortest Path (TRSP)"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:26
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:3
+msgid ":ref:`pgr_TSP` - When input is given as matrix cell information."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:4
+msgid ":ref:`pgr_eucledianTSP` - When input are coordinates."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:32
+msgid ":ref:`drivingDistance`"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:3
+msgid ":ref:`pgr_drivingDistance` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:4
+msgid ":ref:`pgr_withPointsDD` - Driving Distance based on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:5
+msgid "Post pocessing"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:7
+msgid ":ref:`pgr_alphaShape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:8
+msgid ":ref:`pgr_points_as_polygon` - Polygon around a set of points"
+msgstr ""
+
+#: ../../build/doc/index.rst:108
+msgid "Available Functions but not official pgRouting functions"
+msgstr ""
+
+#: ../../build/doc/index.rst:110
+msgid ":ref:`Stable`"
+msgstr ""
+
+#: ../../build/doc/index.rst:111
+msgid ":ref:`proposed`"
+msgstr ""
+
+#: ../../build/doc/index.rst:121
+msgid ":ref:`Change Log <change_log>`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:3
+msgid ":ref:`changelog_2_5_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:4
+msgid ":ref:`changelog_2_4_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:5
+msgid ":ref:`changelog_2_4_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:6
+msgid ":ref:`changelog_2_4_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:7
+msgid ":ref:`changelog_2_3_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:8
+msgid ":ref:`changelog_2_3_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:9
+msgid ":ref:`changelog_2_3_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:10
+msgid ":ref:`changelog_2_2_4`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:11
+msgid ":ref:`changelog_2_2_3`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:12
+msgid ":ref:`changelog_2_2_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:13
+msgid ":ref:`changelog_2_2_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:14
+msgid ":ref:`changelog_2_2_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:15
+msgid ":ref:`changelog_2_1_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:16
+msgid ":ref:`changelog_2_0_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:17
+msgid ":ref:`changelog_2_0_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:18
+msgid ":ref:`changelog_1_x`"
+msgstr ""
+
+#: ../../build/doc/index.rst:135
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/index.rst:136
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/index.rst:137
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgRouting-concepts.po b/locale/en/LC_MESSAGES/pgRouting-concepts.po
new file mode 100644
index 0000000..34885ba
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgRouting-concepts.po
@@ -0,0 +1,1071 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "pgRouting Concepts"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:0
+msgid "Contents"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "Getting Started"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid ""
+"This is a simple guide to walk you through the steps of getting started with"
+" pgRouting. In this guide we will cover:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:32
+msgid "Create a routing Database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:34
+msgid ""
+"The first thing we need to do is create a database and load pgrouting in the"
+" database. Typically you will create a database for each project. Once you "
+"have a database to work in, your can load your data and build your "
+"application in that database. This makes it easy to move your project later "
+"if you want to to say a production server."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:40
+msgid "For Postgresql 9.2 and later versions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:51
+msgid "Load Data"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:53
+msgid ""
+"How you load your data will depend in what form it comes it. There are "
+"various OpenSource tools that can help you, like:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:56
+msgid ""
+"this is a tool for loading OSM data into postgresql with pgRouting "
+"requirements"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:57
+msgid "this is the postgresql shapefile loader"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:58
+msgid "this is a vector data conversion utility"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:59
+msgid "this is a tool for loading OSM data into postgresql"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:61
+msgid ""
+"So these tools and probably others will allow you to read vector data so "
+"that you may then load that data into your database as a table of some kind."
+" At this point you need to know a little about your data structure and "
+"content. One easy way to browse your new data table is with pgAdmin3 or "
+"phpPgAdmin."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:69
+msgid "Build a Routing Topology"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:71
+msgid ""
+"Next we need to build a topology for our street data. What this means is "
+"that for any given edge in your street data the ends of that edge will be "
+"connected to a unique node and to other edges that are also connected to "
+"that same unique node. Once all the edges are connected to nodes we have a "
+"graph that can be used for routing with pgrouting. We provide a tool that "
+"will help with this:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:77
+msgid "this step is not needed if data is loaded with `osm2pgrouting`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:83
+msgid ":ref:`pgr_create_topology`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:88
+msgid "Check the Routing Topology"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:90
+msgid ""
+"There are lots of possible sources for errors in a graph. The data that you "
+"started with may not have been designed with routing in mind. A graph has "
+"some very specific requirements. One is that it is *NODED*, this means that "
+"except for some very specific use cases, each road segment starts and ends "
+"at a node and that in general is does not cross another road segment that it"
+" should be connected to."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:97
+msgid ""
+"There can be other errors like the direction of a one-way street being "
+"entered in the wrong direction. We do not have tools to search for all "
+"possible errors but we have some basic tools that might help."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:109
+msgid ":ref:`pgr_analyze_graph`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:110
+msgid ":ref:`pgr_analyze_oneway`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:111
+msgid ":ref:`pgr_node_network`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:117
+msgid "Compute a Path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:119
+msgid ""
+"Once you have all the preparation work done above, computing a route is "
+"fairly easy. We have a lot of different algorithms that can work with your "
+"prepared road network. The general form of a route query is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:127
+msgid ""
+"As you can see this is fairly straight forward and you can look and the "
+"specific algorithms for the details of the signatures and how to use them. "
+"These results have information like edge id and/or the node id along with "
+"the cost or geometry for the step in the path from *start* to *end*. Using "
+"the ids you can join these result back to your edge table to get more "
+"information about each step in the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:134
+msgid ":ref:`pgr_dijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:141
+msgid "Inner Queries"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:146
+msgid ""
+"There are several kinds of valid inner queries and also the columns returned"
+" are depending of the function. Which kind of inner query will depend on the"
+" function(s) requirements. To simplify variety of types, ``ANY-INTEGER`` and"
+" ``ANY-NUMERICAL`` is used."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:152
+#: ../../build/doc/pgRouting-concepts.rst:182
+#: ../../build/doc/pgRouting-concepts.rst:212
+#: ../../build/doc/pgRouting-concepts.rst:269
+#: ../../build/doc/pgRouting-concepts.rst:300
+#: ../../build/doc/pgRouting-concepts.rst:334
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:154
+#: ../../build/doc/pgRouting-concepts.rst:184
+#: ../../build/doc/pgRouting-concepts.rst:214
+#: ../../build/doc/pgRouting-concepts.rst:271
+#: ../../build/doc/pgRouting-concepts.rst:302
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:155
+#: ../../build/doc/pgRouting-concepts.rst:185
+#: ../../build/doc/pgRouting-concepts.rst:215
+#: ../../build/doc/pgRouting-concepts.rst:272
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:162
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:164
+#: ../../build/doc/pgRouting-concepts.rst:195
+#: ../../build/doc/pgRouting-concepts.rst:247
+#: ../../build/doc/pgRouting-concepts.rst:282
+#: ../../build/doc/pgRouting-concepts.rst:314
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+#: ../../build/doc/pgRouting-concepts.rst:317
+#: ../../build/doc/pgRouting-concepts.rst:360
+#: ../../build/doc/pgRouting-concepts.rst:383
+#: ../../build/doc/pgRouting-concepts.rst:400
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:227
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+#: ../../build/doc/pgRouting-concepts.rst:317
+#: ../../build/doc/pgRouting-concepts.rst:360
+#: ../../build/doc/pgRouting-concepts.rst:383
+#: ../../build/doc/pgRouting-concepts.rst:400
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:227
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:227
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+#: ../../build/doc/pgRouting-concepts.rst:317
+#: ../../build/doc/pgRouting-concepts.rst:360
+#: ../../build/doc/pgRouting-concepts.rst:383
+#: ../../build/doc/pgRouting-concepts.rst:400
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:169
+#: ../../build/doc/pgRouting-concepts.rst:252
+#: ../../build/doc/pgRouting-concepts.rst:287
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:169
+#: ../../build/doc/pgRouting-concepts.rst:170
+#: ../../build/doc/pgRouting-concepts.rst:171
+#: ../../build/doc/pgRouting-concepts.rst:200
+#: ../../build/doc/pgRouting-concepts.rst:201
+#: ../../build/doc/pgRouting-concepts.rst:252
+#: ../../build/doc/pgRouting-concepts.rst:253
+#: ../../build/doc/pgRouting-concepts.rst:254
+#: ../../build/doc/pgRouting-concepts.rst:287
+#: ../../build/doc/pgRouting-concepts.rst:288
+#: ../../build/doc/pgRouting-concepts.rst:289
+#: ../../build/doc/pgRouting-concepts.rst:290
+#: ../../build/doc/pgRouting-concepts.rst:294
+#: ../../build/doc/pgRouting-concepts.rst:319
+#: ../../build/doc/pgRouting-concepts.rst:324
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:169
+#: ../../build/doc/pgRouting-concepts.rst:252
+#: ../../build/doc/pgRouting-concepts.rst:287
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:170
+#: ../../build/doc/pgRouting-concepts.rst:200
+#: ../../build/doc/pgRouting-concepts.rst:253
+#: ../../build/doc/pgRouting-concepts.rst:288
+#: ../../build/doc/pgRouting-concepts.rst:404
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:170
+#: ../../build/doc/pgRouting-concepts.rst:200
+#: ../../build/doc/pgRouting-concepts.rst:253
+#: ../../build/doc/pgRouting-concepts.rst:288
+#: ../../build/doc/pgRouting-concepts.rst:404
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:171
+#: ../../build/doc/pgRouting-concepts.rst:201
+#: ../../build/doc/pgRouting-concepts.rst:254
+#: ../../build/doc/pgRouting-concepts.rst:289
+#: ../../build/doc/pgRouting-concepts.rst:405
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:171
+#: ../../build/doc/pgRouting-concepts.rst:201
+#: ../../build/doc/pgRouting-concepts.rst:254
+#: ../../build/doc/pgRouting-concepts.rst:289
+#: ../../build/doc/pgRouting-concepts.rst:405
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:172
+#: ../../build/doc/pgRouting-concepts.rst:202
+#: ../../build/doc/pgRouting-concepts.rst:255
+#: ../../build/doc/pgRouting-concepts.rst:369
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:172
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:202
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:255
+#: ../../build/doc/pgRouting-concepts.rst:259
+#: ../../build/doc/pgRouting-concepts.rst:263
+#: ../../build/doc/pgRouting-concepts.rst:264
+#: ../../build/doc/pgRouting-concepts.rst:265
+#: ../../build/doc/pgRouting-concepts.rst:266
+#: ../../build/doc/pgRouting-concepts.rst:325
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:172
+#: ../../build/doc/pgRouting-concepts.rst:202
+#: ../../build/doc/pgRouting-concepts.rst:255
+#: ../../build/doc/pgRouting-concepts.rst:290
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:174
+#: ../../build/doc/pgRouting-concepts.rst:204
+#: ../../build/doc/pgRouting-concepts.rst:257
+#: ../../build/doc/pgRouting-concepts.rst:292
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:259
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:259
+#: ../../build/doc/pgRouting-concepts.rst:294
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:259
+#: ../../build/doc/pgRouting-concepts.rst:294
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:178
+#: ../../build/doc/pgRouting-concepts.rst:208
+#: ../../build/doc/pgRouting-concepts.rst:261
+#: ../../build/doc/pgRouting-concepts.rst:296
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:193
+msgid "Description of the edges_sql query (id is not necessary)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:224
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:227
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:229
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:229
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:229
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:230
+msgid "**via_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:230
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:230
+msgid "Array of ordered vertices identifiers that are going to be visited."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:233
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:232
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:233
+msgid "**strict**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:233
+msgid "``false``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:233
+msgid "When ``false`` ignores missing paths returning all paths found"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:234
+msgid "When ``true`` if a path is missing stops and returns `EMPTY SET`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid "**U_turn_on_edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid ""
+"When ``true`` departing from a visited vertex will not try to avoid using "
+"the edge used to reach it.  In other words, U turn using the edge with same "
+"`id` is allowed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:236
+msgid ""
+"When ``false`` when a departing from a visited vertex tries to avoid using "
+"the edge used to reach it.  In other words, U turn using the edge with same "
+"`id` is used when no other path is found."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:245
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:263
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:263
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:264
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:264
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:265
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:265
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:266
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:266
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:280
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:290
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:294
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:312
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:319
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:319
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:321
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:322
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:324
+#: ../../build/doc/pgRouting-concepts.rst:403
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:324
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:325
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:325
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:326
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:326
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:326
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:328
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:329
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:330
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:336
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:337
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:345
+msgid "Return columns & values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:350
+msgid ""
+"There are several kinds of columns returned are depending of the function."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:355
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:357
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:362
+#: ../../build/doc/pgRouting-concepts.rst:402
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:362
+#: ../../build/doc/pgRouting-concepts.rst:363
+#: ../../build/doc/pgRouting-concepts.rst:364
+#: ../../build/doc/pgRouting-concepts.rst:402
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:362
+#: ../../build/doc/pgRouting-concepts.rst:402
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:363
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:363
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:364
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:364
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:365
+#: ../../build/doc/pgRouting-concepts.rst:385
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:365
+#: ../../build/doc/pgRouting-concepts.rst:366
+#: ../../build/doc/pgRouting-concepts.rst:367
+#: ../../build/doc/pgRouting-concepts.rst:368
+#: ../../build/doc/pgRouting-concepts.rst:385
+#: ../../build/doc/pgRouting-concepts.rst:386
+#: ../../build/doc/pgRouting-concepts.rst:403
+#: ../../build/doc/pgRouting-concepts.rst:404
+#: ../../build/doc/pgRouting-concepts.rst:405
+#: ../../build/doc/pgRouting-concepts.rst:406
+#: ../../build/doc/pgRouting-concepts.rst:407
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:365
+#: ../../build/doc/pgRouting-concepts.rst:385
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:366
+#: ../../build/doc/pgRouting-concepts.rst:386
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:366
+#: ../../build/doc/pgRouting-concepts.rst:386
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:367
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:367
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:368
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:368
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:369
+#: ../../build/doc/pgRouting-concepts.rst:370
+#: ../../build/doc/pgRouting-concepts.rst:387
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:369
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:370
+#: ../../build/doc/pgRouting-concepts.rst:387
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:370
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:378
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:380
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:387
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:397
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:403
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:406
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:406
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:407
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:407
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:415
+msgid "Advanced Topics"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:423
+msgid "Routing Topology"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:427
+#: ../../build/doc/pgRouting-concepts.rst:528
+msgid "Overview"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:428
+msgid ""
+"Typically when GIS files are loaded into the data database for use with "
+"pgRouting they do not have topology information associated with them. To "
+"create a useful topology the data needs to be \"noded\". This means that "
+"where two or more roads form an intersection there it needs to be a node at "
+"the intersection and all the road segments need to be broken at the "
+"intersection, assuming that you can navigate from any of these segments to "
+"any other segment via that intersection."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:430
+msgid ""
+"You can use the :ref:`graph analysis functions <analytics>` to help you see "
+"where you might have topology problems in your data. If you need to node "
+"your data, we also have a function :ref:`pgr_nodeNetwork() "
+"<pgr_node_network>` that might work for you. This function splits ALL "
+"crossing segments and nodes them. There are some cases where this might NOT "
+"be the right thing to do."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:432
+msgid ""
+"For example, when you have an overpass and underpass intersection, you do "
+"not want these noded, but pgr_nodeNetwork does not know that is the case and"
+" will node them which is not good because then the router will be able to "
+"turn off the overpass onto the underpass like it was a flat 2D intersection."
+" To deal with this problem some data sets use z-levels at these types of "
+"intersections and other data might not node these intersection which would "
+"be ok."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:434
+msgid ""
+"For those cases where topology needs to be added the following functions may"
+" be useful. One way to prep the data for pgRouting is to add the following "
+"columns to your table and then populate them as appropriate. This example "
+"makes a lot of assumption like that you original data tables already has "
+"certain columns in it like ``one_way``, ``fcc``, and possibly others and "
+"that they contain specific data values. This is only to give you an idea of "
+"what you can do with your data."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:455
+msgid ""
+"The function :ref:`pgr_createTopology() <pgr_create_topology>` will create "
+"the ``vertices_tmp`` table and populate the ``source`` and ``target`` "
+"columns. The following example populated the remaining columns. In this "
+"example, the ``fcc`` column contains feature class code and the ``CASE`` "
+"statements converts it to an average speed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:518
+msgid ""
+"Now your database should be ready to use any (most?) of the pgRouting "
+"algorithms."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:524
+msgid "Graph Analytics"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:529
+msgid ""
+"It is common to find problems with graphs that have not been constructed "
+"fully noded or in graphs with z-levels at intersection that have been "
+"entered incorrectly. An other problem is one way streets that have been "
+"entered in the wrong direction. We can not detect errors with respect to "
+"\"ground\" truth, but we can look for inconsistencies and some anomalies in "
+"a graph and report them for additional inspections."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:531
+msgid ""
+"We do not current have any visualization tools for these problems, but I "
+"have used mapserver to render the graph and highlight potential problem "
+"areas. Someone familiar with graphviz might contribute tools for generating "
+"images with that."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:535
+msgid "Analyze a Graph"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:537
+msgid ""
+"With :ref:`pgr_analyze_graph` the graph can be checked for errors. For "
+"example for table \"mytab\" that has \"mytab_vertices_pgr\" as the vertices "
+"table:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:560
+msgid "In the vertices table \"mytab_vertices_pgr\":"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:562
+msgid "Deadends are identified by ``cnt=1``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:563
+msgid "Potencial gap problems are identified with ``chk=1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:581
+msgid ""
+"For isolated road segments, for example, a segment where both ends are "
+"deadends. you can find these with the following query:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:590
+msgid ""
+"If you want to visualize these on a graphic image, then you can use "
+"something like mapserver to render the edges and the vertices and style "
+"based on ``cnt`` or if they are isolated, etc. You can also do this with a "
+"tool like graphviz, or geoserver or other similar tools."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:594
+msgid "Analyze One Way Streets"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:596
+msgid ""
+":ref:`pgr_analyze_oneway` analyzes one way streets in a graph and identifies"
+" any flipped segments. Basically if you count the edges coming into a node "
+"and the edges exiting a node the number has to be greater than one."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:598
+msgid ""
+"This query will add two columns to the vertices_tmp table ``ein int`` and "
+"``eout int`` and populate it with the appropriate counts. After running this"
+" on a graph you can identify nodes with potential problems with the "
+"following query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:601
+msgid ""
+"The rules are defined as an array of text strings that if match the ``col`` "
+"value would be counted as true for the source or target in or out condition."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:605
+msgid "Example"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:607
+msgid ""
+"Lets assume we have a table \"st\" of edges and a column \"one_way\" that "
+"might have values like:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:609
+msgid "'FT'    - oneway from the source to the target node."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:610
+msgid "'TF'    - oneway from the target to the source node."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:611
+msgid "'B'     - two way street."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:612
+msgid "''      - empty field, assume twoway."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:613
+msgid "<NULL>  - NULL field, use two_way_if_null flag."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:615
+msgid ""
+"Then we could form the following query to analyze the oneway streets for "
+"errors."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:634
+msgid ""
+"Typically these problems are generated by a break in the network, the one "
+"way direction set wrong, maybe an error related to z-levels or a network "
+"that is not properly noded."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:636
+msgid ""
+"The above tools do not detect all network issues, but they will identify "
+"some common problems. There are other problems that are hard to detect "
+"because they are more global in nature like multiple disconnected networks. "
+"Think of an island with a road network that is not connected to the mainland"
+" network because the bridge or ferry routes are missing."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:644
+msgid "Performance Tips"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:651
+msgid "For the Routing functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:653
+msgid ""
+"To get faster results bound your queries to the area of interest of routing "
+"to have, for example, no more than one million rows."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:655
+msgid ""
+"Use an inner query SQL that does not include some edges in the routing "
+"function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:663
+msgid "Integrating the inner query to the pgRouting function:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:677
+msgid "For the topology functions:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:679
+msgid ""
+"When \"you know\" that you are going to remove a set of edges from the edges"
+" table, and without those edges you are going to use a routing function you "
+"can do the following:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:681
+msgid "Analize the new topology based on the actual topology:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:687
+msgid "Or create a new topology if the change is permanent:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:698
+msgid "How to contribute"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:701
+msgid "Wiki"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:702
+msgid ""
+"Edit an existing  `pgRouting Wiki "
+"<https://github.com/pgRouting/pgrouting/wiki>`_ page."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:703
+msgid "Or create a new Wiki page"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:705
+msgid ""
+"Create a page on the `pgRouting Wiki "
+"<https://github.com/pgRouting/pgrouting/wiki>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:706
+msgid "Give the title an appropriate name"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:709
+msgid ""
+"`Example <https://github.com/pgRouting/pgrouting/wiki/How-to:-Handle-"
+"parallel-edges-(KSP)>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:713
+msgid "Adding Functionaity to pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:714
+msgid ""
+"Consult the `developer's documentation "
+"<http://docs.pgrouting.org/doxy/2.4/index.html>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:719
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:720
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:721
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgRouting-installation.po b/locale/en/LC_MESSAGES/pgRouting-installation.po
new file mode 100644
index 0000000..71b7f5f
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgRouting-installation.po
@@ -0,0 +1,418 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgRouting-installation.rst:13
+msgid "Installation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:16
+msgid "Table of Contents"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:17
+msgid ":ref:`install-short`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:18
+msgid ":ref:`install_get_sources`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:19
+msgid ":ref:`install_enable_db`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:20
+msgid ":ref:`install_dependencies`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:21
+msgid ":ref:`install_configuring`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:22
+msgid ":ref:`install_build`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:23
+msgid ":ref:`install_testing`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:25
+msgid ""
+"Instructions for downloading and installing binaries for different Operative"
+" systems instructions and additional notes and corrections not included in "
+"this documentation can be found in `Installation wiki "
+"<https://github.com/pgRouting/pgrouting/wiki/Notes-on-Download%2C-"
+"Installation-and-building-pgRouting>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:27
+msgid ""
+"To use pgRouting postGIS needs to be installed, please read the information "
+"about installation in this `Install Guide "
+"<http://www.postgis.us/presentations/postgis_install_guide_22.html>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:32
+msgid "Short Version"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:37
+msgid "Extracting the tar ball"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:44
+msgid "To compile assuming you have all the dependencies in your search path:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:54
+msgid ""
+"Once pgRouting is installed, it needs to be enabled in each individual "
+"database you want to use it in."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:66
+msgid "Get the sources"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:69
+msgid ""
+"The pgRouting latest release can be found in "
+"https://github.com/pgRouting/pgrouting/releases/latest"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:72
+msgid "wget"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:73
+msgid "To download this release:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:81
+msgid "Goto :ref:`install-short` to the extract and compile instructions."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:84
+msgid "git"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:85
+msgid "To download the repository"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:93
+msgid ""
+"Goto :ref:`install-short` to the compile instructions (there is no tar "
+"ball)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:100
+msgid "Enabling and upgrading in the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:103
+msgid "Enabling the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:104
+msgid ""
+"pgRouting is an extension and depends on postGIS. Enabling postGIS before "
+"enabling pgRouting in the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:113
+msgid "Upgrading the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:114
+msgid ""
+"To upgrade pgRouting in the database to version 2.4.0 use the following "
+"command:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:122
+msgid ""
+"More information can be found in "
+"https://www.postgresql.org/docs/current/static/sql-createextension.html"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:128
+msgid "Dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:131
+msgid "Compilation Dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:132
+msgid ""
+"To be able to compile pgRouting, make sure that the following dependencies "
+"are met:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:134
+msgid "C and C++0x compilers * g++ version >= 4.8"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:136
+msgid "Postgresql version >= 9.2"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:137
+msgid "PostGIS version >= 2.0"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:138
+msgid "The Boost Graph Library (BGL). Version >= 1.46"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:139
+msgid "CMake >= 2.8.8"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:140
+msgid "CGAL >=  4.2"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:144
+msgid "optional dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:145
+msgid "For user's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:147
+msgid "Sphinx >= 1.1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:148
+msgid "Latex"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:150
+msgid "For developer's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:152
+msgid "Doxygen >= 1.7"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:154
+msgid "For testing"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:156
+msgid "pgtap"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:157
+msgid "pg_prove"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:161
+msgid "Example: Installing dependencies on linux"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:162
+msgid "Installing the compilation dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:174
+msgid "Installing the optional dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:188
+msgid "Configuring"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:190
+msgid "pgRouting uses the `cmake` system to do the configuration."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:192
+msgid "The build directory is different from the source directory"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:194
+msgid "Create the build directory"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:201
+msgid "Configurable variables"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:205
+msgid "To see the variables that can be configured"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:213
+msgid "Configuring The Documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:214
+msgid ""
+"Most of the effort of the documentation has being on the HTML files. Some "
+"variables for the documentation:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:218
+msgid "Variable"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:218
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:218
+msgid "Comment"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:220
+msgid "WITH_DOC"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:220
+#: ../../build/doc/pgRouting-installation.rst:223
+#: ../../build/doc/pgRouting-installation.rst:224
+#: ../../build/doc/pgRouting-installation.rst:225
+msgid "BOOL=OFF"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:220
+msgid "Turn on/off building the documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:221
+msgid "BUILD_HTML"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:221
+#: ../../build/doc/pgRouting-installation.rst:222
+msgid "BOOL=ON"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:221
+msgid "If ON, turn on/off building HTML for user's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:222
+msgid "BUILD_DOXY"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:222
+msgid "If ON, turn on/off building HTML for developer's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:223
+msgid "BUILD_LATEX"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:223
+msgid "If ON, turn on/off building PDF"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:224
+msgid "BUILD_MAN"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:224
+msgid "If ON, turn on/off building MAN pages"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:225
+msgid "DOC_USE_BOOTSTRAP"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:225
+msgid "If ON, use sphinx-bootstrap for HTML pages of the users documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:228
+msgid "Configuring with documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:234
+msgid "Most of the effort of the documentation has being on the html files."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:240
+msgid "Building"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:242
+msgid "Using ``make`` to build the code and the documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:244
+msgid "The following instructions start from *path/to/pgrouting/build*"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:253
+msgid ""
+"We have tested on several platforms, For installing or reinstalling all the "
+"steps are needed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:255
+msgid "The sql signatures are configured and build in the ``cmake`` command."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:258
+msgid "MinGW on Windows"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:269
+msgid "Linux"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:270
+msgid "The following instructions start from *path/to/pgrouting*"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:280
+msgid "When the configuration changes:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:286
+msgid "and start the build process as mentioned above."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:291
+msgid "Testing"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:293
+msgid "Currently there is no :code:`make test` and testing is done as follows"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:295
+msgid "The following instructions start from *path/to/pgrouting/*"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:305
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:308
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:309
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:310
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgRouting-introduction.po b/locale/en/LC_MESSAGES/pgRouting-introduction.po
new file mode 100644
index 0000000..2f5927b
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgRouting-introduction.po
@@ -0,0 +1,222 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgRouting-introduction.rst:13
+msgid "Introduction"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:15
+msgid ""
+"pgRouting is an extension of `PostGIS <http://postgis.net>`_ and `PostgreSQL"
+" <http://postgresql.org>`_ geospatial database and adds routing and other "
+"network analysis functionality. A predecessor of pgRouting – pgDijkstra, "
+"written by Sylvain Pasche from `Camptocamp <http://camptocamp.com>`_, was "
+"later extended by `Orkney <http://www.orkney.co.jp>`_ and renamed to "
+"pgRouting. The project is now supported and maintained by `Georepublic "
+"<http://georepublic.info>`_, `iMaptools <http://imaptools.com/>`__ and a "
+"broad user community."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:17
+msgid ""
+"pgRouting is an `OSGeo Labs <http://wiki.osgeo.org/wiki/OSGeo_Labs>`_ "
+"project of the `OSGeo Foundation <http://osgeo.org>`_ and included on `OSGeo"
+" Live <http://live.osgeo.org/>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:23
+msgid "License"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:25
+msgid "The following licenses can be found in pgRouting:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:30
+msgid "**License**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:32
+msgid "GNU General Public License, version 2"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:33
+msgid ""
+"Most features of pgRouting are available under `GNU General Public License, "
+"version 2 <http://www.gnu.org/licenses/gpl-2.0.html>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:34
+msgid "Boost Software License - Version 1.0"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:35
+msgid ""
+"Some Boost extensions are available under `Boost Software License - Version "
+"1.0 <http://www.boost.org/LICENSE_1_0.txt>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:36
+msgid "MIT-X License"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:37
+msgid ""
+"Some code contributed by iMaptools.com is available under MIT-X license."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:38
+msgid "Creative Commons Attribution-Share Alike 3.0 License"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:39
+msgid ""
+"The pgRouting Manual is licensed under a `Creative Commons Attribution-Share"
+" Alike 3.0 License <http://creativecommons.org/licenses/by-sa/3.0/>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:41
+msgid ""
+"In general license information should be included in the header of each "
+"source file."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:45
+msgid "Contributors"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:48
+msgid "This Release Contributors"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:51
+#: ../../build/doc/pgRouting-introduction.rst:71
+msgid "Individuals (in alphabetical order)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:53
+msgid "Maoguang Wang, Vidhan Jain, Virginia Vergara"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:55
+msgid ""
+"And all the people that give us a little of their time making comments, "
+"finding issues, making pull requests etc."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:58
+#: ../../build/doc/pgRouting-introduction.rst:76
+msgid "Corporate Sponsors (in alphabetical order)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:60
+#: ../../build/doc/pgRouting-introduction.rst:78
+msgid ""
+"These are corporate entities that have contributed developer time, hosting, "
+"or direct monetary funding to the pgRouting project:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:62
+msgid "`Georepublic <https://georepublic.info/en/>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:63
+msgid ""
+"`Google Summer of Code <https://developers.google.com/open-source/gsoc/>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:64
+msgid "`iMaptools <http://imaptools.com>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:65
+msgid "`Paragon Corporation <http://www.paragoncorporation.com/>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:68
+msgid "Contributors Past & Present:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:73
+msgid ""
+"Akio Takubo, Andrea Nardelli, Anton Patrushev, Ashraf Hossain, Christian "
+"Gonzalez, Daniel Kastl, Dave Potts, David Techer, Denis Rykov, Ema Miyawaki,"
+" Florian Thurkow, Frederic Junod, Gerald Fenoy, Jay Mahadeokar, Jinfu Leng, "
+"Kai Behncke, Kishore Kumar, Ko Nagase, Manikata Kondeti, Mario Basa, Martin "
+"Wiesenhaan,  Maxim Dubinin, Maoguang Wang, Mohamed Zia, Mukul Priya, Razequl"
+" Islam, Regina Obe, Rohith Reddy, Sarthak Agarwal, Stephen Woodbridge, "
+"Sylvain Housseman, Sylvain Pasche, Vidhan Jain, Virginia Vergara"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:80
+msgid "Camptocamp"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:81
+msgid "CSIS (University of Tokyo)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:82
+msgid "Georepublic"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:83
+msgid "Google Summer of Code"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:84
+msgid "iMaptools"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:85
+msgid "Orkney"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:86
+msgid "Paragon Corporation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:90
+msgid "More Information"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:92
+msgid ""
+"The latest software, documentation and news items are available at the "
+"pgRouting web site http://pgrouting.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:93
+msgid ""
+"PostgreSQL database server at the PostgreSQL main site "
+"http://www.postgresql.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:94
+msgid "PostGIS extension at the PostGIS project web site http://postgis.net."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:95
+msgid "Boost C++ source libraries at http://www.boost.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:96
+msgid ""
+"Computational Geometry Algorithms Library (CGAL) at http://www.cgal.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:97
+msgid ""
+"The Migration guide can be found at "
+"https://github.com/pgRouting/pgrouting/wiki/Migration-Guide."
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_KSP.po b/locale/en/LC_MESSAGES/pgr_KSP.po
new file mode 100644
index 0000000..2ace271
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_KSP.po
@@ -0,0 +1,402 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_KSP.rst:13
+msgid "pgr_KSP"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:18
+msgid "``pgr_KSP`` — Returns the \"K\" shortest paths."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:27
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:28
+msgid "Signature change 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:32
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:34
+msgid ""
+"The K shortest path routing algorithm based on Yen's algorithm. \"K\" is the"
+" number of shortest paths desired."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:37
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:46
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:52
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:64
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:73
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_KSP.rst:83
+#: ../../build/doc/pgr_KSP.rst:103
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_KSP.rst:83
+#: ../../build/doc/pgr_KSP.rst:103
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_KSP.rst:83
+#: ../../build/doc/pgr_KSP.rst:103
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14 ../../build/doc/pgr_KSP.rst:110
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:80
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:85
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:85
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:85
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:86
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:86 ../../build/doc/pgr_KSP.rst:87
+#: ../../build/doc/pgr_KSP.rst:107 ../../build/doc/pgr_KSP.rst:108
+#: ../../build/doc/pgr_KSP.rst:109
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:86
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:87
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:87
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:88
+msgid "**k**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:88 ../../build/doc/pgr_KSP.rst:105
+#: ../../build/doc/pgr_KSP.rst:106
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:88
+msgid "The desiered number of paths."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:89
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:89 ../../build/doc/pgr_KSP.rst:90
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:89
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:90
+msgid "**heap_paths**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:90
+msgid ""
+"(optional). When ``true`` returns all the paths stored in the process heap. "
+"Default is ``false`` which only returns ``k`` paths."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:93
+msgid ""
+"Roughly, if the shortest path has ``N`` edges, the heap will contain about "
+"than ``N * k`` paths for small value of ``k`` and ``k > 1``."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:98
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:100
+msgid ""
+"Returns set of ``(seq, path_seq, path_id, node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:105
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:105
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:106
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:106
+msgid ""
+"Relative position in the path of ``node`` and ``edge``. Has value **1** for "
+"the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:107
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:107
+msgid ""
+"Path identifier. The ordering of the paths For two paths i, j if i < j then "
+"agg_cost(i) <= agg_cost(j)."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:108
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:108
+msgid "Identifier of the node in the path."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:109
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:109
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the route."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:110 ../../build/doc/pgr_KSP.rst:111
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:110
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:111
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:111
+msgid "Aggregate cost from ``start_vid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:115
+msgid ""
+"During the transition to 3.0, because pgr_ksp version 2.0 doesn't have "
+"defined a directed flag nor a heap_path flag, when pgr_ksp is used with only"
+" one flag version 2.0 signature will be used."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:119
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:122
+msgid "Examples to handle the one flag to choose signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:124 ../../build/doc/pgr_KSP.rst:134
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:132
+msgid ""
+"Examples for queries marked as ``directed`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:143
+msgid ""
+"Examples for queries marked as ``undirected`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:145
+msgid "The examples in this section use the following :ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:153
+msgid "Examples for queries marked as ``directed`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:155
+msgid "The examples in this section use the following :ref:`fig3`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:164
+msgid "Examples for queries marked as ``undirected`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:166
+msgid "The examples in this section use the following :ref:`fig4`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:173
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:175
+msgid "http://en.wikipedia.org/wiki/K_shortest_path_routing"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:176
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:179
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:180
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:181
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_TSP.po b/locale/en/LC_MESSAGES/pgr_TSP.po
new file mode 100644
index 0000000..a9fecef
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_TSP.po
@@ -0,0 +1,224 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_TSP.rst:13
+msgid "pgr_TSP"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:18
+msgid "``pgr_TSP`` - Returns a route that visits all the nodes exactly once."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:21
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:22
+msgid "Signature changed 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:26
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:28
+msgid ""
+"The travelling salesman problem (TSP) or travelling salesperson problem asks"
+" the following question:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:30
+msgid ""
+"Given a list of cities and the distances between each pair of cities, what "
+"is the shortest possible route that visits each city exactly once and "
+"returns to the origin city?"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:32
+msgid ""
+"This implementation uses simulated annealing to return the approximate "
+"solution when the input is given in the form of matrix cell contents. The "
+"matrix information must be symmetrical."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:37
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:58
+msgid "Basic Use"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:67
+msgid ""
+"Because the documentation examples are auto generated and tested for non "
+"changing results, and the default is to have random execution, the example "
+"is wrapping the actual call."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:81
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:96
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:103
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:106
+msgid "Description of the Matrix Cell SQL query"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:109
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:109
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:109
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:111
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:111 ../../build/doc/pgr_TSP.rst:112
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:111
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:112
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:112
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:113
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:113
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:113
+msgid "Cost for going from start_vid to end_vid"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:116
+msgid "Can be Used with:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:118
+msgid ":ref:`pgr_dijkstraCostmatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:119
+msgid ":ref:`pgr_withPointsCostmatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:120
+msgid ":ref:`pgr_floydWarshall`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:121
+msgid ":ref:`pgr_johnson`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:123
+msgid "To generate a symmetric matrix"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:125
+msgid "directed := false."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:127
+msgid ""
+"If using directed := true, the resulting non symmetric matrix must be "
+"converted to symmetric by fixing the non symmetric values according to your "
+"application needs."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:145
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:147
+msgid "Using with points of interest."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:149
+msgid "To generate a symmetric matrix:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:151
+msgid ""
+"the **side** information of pointsOfInterset is ignored by not including it "
+"in the query"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:152
+msgid "and **directed := false**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:158
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:163
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:165
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:166
+msgid "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:167
+msgid "http://en.wikipedia.org/wiki/Simulated_annealing"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:170
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:171
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:172
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_aStar.po b/locale/en/LC_MESSAGES/pgr_aStar.po
new file mode 100644
index 0000000..4e2ccb4
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_aStar.po
@@ -0,0 +1,642 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_aStar.rst:13
+msgid "pgr_aStar"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:18
+msgid "``pgr_aStar`` — Returns the shortest path using A* algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:26
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:27
+msgid "pgr_astar(one to one) 2.0.0, Signature changed 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:28
+msgid "pgr_astar(other signatures) 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:33
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:35
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:37
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:38
+msgid "Vertices of the graph are:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:40
+msgid "**positive** when it belongs to the edges_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:42
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:44
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:46
+msgid "The agg_cost the non included values (v, v) is 0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:48
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:50
+msgid "The agg_cost the non included values (u, v) is ∞"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:52
+msgid "When (x,y) coordinates for the same vertex identifier differ:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:54
+msgid "A random selection of the vertex's (x,y) coordinates is used."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:56
+msgid "Running time: :math:`O((E + V) * \\log V)`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:61
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:84
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:92
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:99
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:112
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:118
+msgid "Undirected using  Heuristic 2"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:130
+msgid "One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:139
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:138 ../../build/doc/pgr_aStar.rst:165
+#: ../../build/doc/pgr_aStar.rst:194
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:139 ../../build/doc/pgr_aStar.rst:166
+#: ../../build/doc/pgr_aStar.rst:195
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:141
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_astar` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:144
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_astar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:145
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:157
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:166
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:168
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_aStar` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:171
+msgid "The result is the union of the results of the one to one `pgr_aStar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:172 ../../build/doc/pgr_aStar.rst:201
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:186
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:195
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:197
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:200
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:203
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:217
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_aStar.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_aStar.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13 ../../build/doc/pgr_aStar.rst:234
+#: ../../build/doc/pgr_aStar.rst:235
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:228
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:231
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:233
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:233
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:233
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:234 ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:234
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:235 ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:235
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:236
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:236
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:236
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:238
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:239
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:241
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:241
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:241
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:243
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:244
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:245
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:246
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:247
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:248
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:250
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:250 ../../build/doc/pgr_aStar.rst:251
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:250
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:251
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:251
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:260
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:262
+msgid ":ref:`astar`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:263
+msgid ":doc:`sampledata`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:264
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:265
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:268
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:269
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:270
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_aStarCost.po b/locale/en/LC_MESSAGES/pgr_aStarCost.po
new file mode 100644
index 0000000..41e1637
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_aStarCost.po
@@ -0,0 +1,528 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_aStarCost.rst:13
+msgid "pgr_aStarCost -- proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:18
+msgid ""
+"``pgr_aStarCost`` — Returns the aggregate cost shortest path using "
+":ref:`astar` algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:26
+msgid "Availability: 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:28
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:46
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:53
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:60
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:72
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:78
+msgid "Setting a Heuristic"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:90
+msgid "One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:99
+msgid ""
+"This signature finds a path from one ``start_vid`` to each ``end_vid`` in "
+"``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:98 ../../build/doc/pgr_aStarCost.rst:125
+#: ../../build/doc/pgr_aStarCost.rst:154
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:99 ../../build/doc/pgr_aStarCost.rst:126
+#: ../../build/doc/pgr_aStarCost.rst:155
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:101
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_astar` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:104
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_astar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:105
+msgid ""
+"The extra ``end_vid`` column in the result is used to distinguish to which "
+"path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:117
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:126
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:128
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_aStar` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:131
+msgid "The result is the union of the results of the one to one `pgr_aStar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:132
+msgid ""
+"The extra ``start_vid`` column  in the result is used to distinguish to "
+"which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:146
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:155
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:157
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:160
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:161
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:163
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:177
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCost.rst:191
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCost.rst:191
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_aStarCost.rst:194 ../../build/doc/pgr_aStarCost.rst:195
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:188
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:191
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:193
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:193
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:193
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:194
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:194
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:195
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:195
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:196
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:196
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:196
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:198
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:199
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:201
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:201
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:201
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:203
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:204
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:205
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:206
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:207
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:208
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:210
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:210 ../../build/doc/pgr_aStarCost.rst:211
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:210
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. See "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:211
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:211
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:224
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:226
+msgid ":ref:`astar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:227
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:228
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:229
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:232
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:233
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:234
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_aStarCostMatrix.po b/locale/en/LC_MESSAGES/pgr_aStarCostMatrix.po
new file mode 100644
index 0000000..5193921
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_aStarCostMatrix.po
@@ -0,0 +1,457 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:13
+msgid "pgr_aStarCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:18
+msgid ""
+"``pgr_aStarCostMatrix`` - Calculates the a cost matrix using "
+":ref:`pgr_aStar`."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:33
+msgid "Availability: 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:37
+msgid "Using aStar algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:40
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:57
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:60
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:60
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:68
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:80
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:88
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:90
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:98
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:106
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:109
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:111
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:111
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:111
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:112
+msgid "**vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:112
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:112
+msgid "Array of vertices_identifiers."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:113
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:113
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:113
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:115
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:116
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:118
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:118
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:118
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:120
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:121
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:122
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:123
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:124
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:125
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:127
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:127
+#: ../../build/doc/pgr_aStarCostMatrix.rst:128
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:127
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:128
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:128
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:140
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:142
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:150
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:152
+msgid ":ref:`astar`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:153
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:154
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:155
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:158
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:159
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:160
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_alphaShape.po b/locale/en/LC_MESSAGES/pgr_alphaShape.po
new file mode 100644
index 0000000..851cd18
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_alphaShape.po
@@ -0,0 +1,169 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_alphaShape.rst:13
+msgid "pgr_alphaShape"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:21
+msgid "``pgr_alphaShape`` — Core function for alpha shape computation."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:27
+msgid ""
+"Returns a table with (x, y) rows that describe the vertices of an alpha "
+"shape."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:35
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:37
+msgid ""
+"``text`` a SQL query, which should return a set of rows with the following "
+"columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:43
+msgid "``int4`` identifier of the vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:44
+msgid "``float8`` x-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:45
+msgid "``float8`` y-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:47
+msgid ""
+"(optional) ``float8`` alpha value. If specified alpha value equals 0 "
+"(default), then optimal alpha value is used. For more information, see `CGAL"
+" - 2D Alpha Shapes "
+"<http://doc.cgal.org/latest/Alpha_shapes_2/group__PkgAlphaShape2.html>`_."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:50
+msgid "Returns a vertex record for each row:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:52
+msgid "x-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:53
+msgid "y-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:55
+msgid ""
+"If a result includes multiple outer/inner rings, return those with separator"
+" row (x=NULL and y=NULL)."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:58
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:59
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:60
+msgid ""
+"Added alpha argument with default 0 (use optimal value) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:61
+msgid ""
+"Supported to return multiple outer/inner ring coordinates with separator row"
+" (x=NULL and y=NULL) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:64
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:65
+msgid ""
+"PgRouting's alpha shape implementation has no way to control the order of "
+"the output points, so the actual output might different for the same input "
+"data. The first query, has the output ordered, he second query shows an "
+"example usage:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:70
+msgid "Example: the (ordered) results"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:76
+msgid "Example: calculating the area"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:77
+msgid "Steps:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:79
+msgid "Calculates the alpha shape"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:80
+msgid "the :code:`ORDER BY` clause is not used."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:81
+msgid "constructs a polygon"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:82
+msgid "and computes the area"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:90
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:93
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:95
+msgid ":ref:`pgr_drivingDistance` - Driving Distance"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:96
+msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:99
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:100
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:101
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_analyzeGraph.po b/locale/en/LC_MESSAGES/pgr_analyzeGraph.po
new file mode 100644
index 0000000..22237a6
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_analyzeGraph.po
@@ -0,0 +1,361 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_analyzeGraph.rst:13
+msgid "pgr_analyzeGraph"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:19
+msgid "``pgr_analyzeGraph`` — Analyzes the network topology."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:23
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:25
+#: ../../build/doc/pgr_analyzeGraph.rst:61
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:27
+#: ../../build/doc/pgr_analyzeGraph.rst:63
+msgid "``OK`` after the analysis has finished."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:28
+#: ../../build/doc/pgr_analyzeGraph.rst:69
+msgid "``FAIL`` when the analysis was not completed due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:43
+msgid "Prerequisites"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:44
+msgid ""
+"The  edge table to be analyzed must contain a source column and a target "
+"column filled with id's of the vertices of the segments and the "
+"corresponding vertices table <edge_table>_vertices_pgr that stores the "
+"vertices information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:46
+msgid ""
+"Use :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create the "
+"vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:47
+msgid ""
+"Use :ref:`pgr_createTopology <pgr_create_topology>` to create the topology "
+"and the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:50
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:51
+msgid "The analyze graph function accepts the following parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:53
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:54
+msgid ""
+"``float8`` Snapping tolerance of disconnected edges. (in projection unit)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:55
+msgid ""
+"``text``  Geometry column name of the network table. Default value is "
+"``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:56
+msgid ""
+"``text``  Primary key column name of the network table. Default value is "
+"``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:57
+msgid ""
+"``text`` Source column name of the network table. Default value is "
+"``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:58
+msgid ""
+"``text``  Target column name of the network table.  Default value is "
+"``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:59
+msgid ""
+"``text``   Condition to select  a subset or rows.  Default value is ``true``"
+" to indicate all rows."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:65
+msgid "Uses the vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:66
+msgid ""
+"Fills completely the ``cnt`` and ``chk`` columns of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:67
+msgid ""
+"Returns the analysis of the section of the network defined by  "
+"``rows_where``"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:71
+msgid "The vertices table is not found."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:72
+msgid ""
+"A required column of the Network table is not found or is not of the "
+"appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:73
+msgid "The condition is not well formed."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:74
+msgid "The names of source , target or id are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:75
+msgid "The SRID of the geometry could not be determined."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:79
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:80
+msgid ""
+"The vertices table can be created with :ref:`pgr_createVerticesTable "
+"<pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:82
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:84
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:85
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:86
+msgid "``integer``  Indicator that the vertex might have a problem."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:87
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:88
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:89
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:92
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:93
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:96
+msgid "Usage when the edge table's columns MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:99
+msgid "The simplest way to use pgr_analyzeGraph is:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:106
+msgid "When the arguments are given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:111
+msgid "We get the same result as the simplest way to use the function."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order: In this example, the column ``id`` of the table ``mytable`` is passed"
+" to the function as the geometry column, and the geometry column "
+"``the_geom`` is passed to the function as the id column."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:130
+#: ../../build/doc/pgr_analyzeGraph.rst:208
+msgid "When using the named notation"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:131
+#: ../../build/doc/pgr_analyzeGraph.rst:209
+msgid "The order of the parameters do not matter:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:141
+msgid ""
+"Parameters defined with a default value can be omitted, as long as the value"
+" matches the default:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:148
+#: ../../build/doc/pgr_analyzeGraph.rst:223
+msgid "Selecting rows using rows_where parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:149
+msgid ""
+"Selecting rows based on the id. Displays the analysis a the section of the "
+"network."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:155
+msgid ""
+"Selecting the rows where the geometry is near the geometry of row with "
+"``id`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:161
+msgid ""
+"Selecting the rows where the geometry is near the geometry of the row with "
+"``gid`` =100 of the table ``othertable``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:172
+msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:174
+msgid "For the following table"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:183
+msgid "Using positional notation:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:184
+msgid ""
+"The arguments need to be given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order: In this example, the column ``gid`` of the table ``mytable`` is "
+"passed to the function as the geometry column, and the geometry column "
+"``mygeom`` is passed to the function as the id column."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:219
+msgid ""
+"In this scenario omitting a parameter would create an error because the "
+"default values for the column names do not match the column names of the "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:224
+msgid "Selecting rows based on the id."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:234
+msgid ""
+"Selecting the rows WHERE the geometry is near the geometry of row with "
+"``id`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:246
+msgid ""
+"Selecting the rows WHERE the geometry is near the place='myhouse' of the "
+"table ``othertable``. (note the use of quote_literal)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:263
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:390
+msgid "The examples use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:394
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:396
+msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:397
+msgid ":ref:`pgr_analyze_oneway` to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:398
+msgid ""
+":ref:`pgr_createVerticesTable <pgr_create_vert_table>` to reconstruct the "
+"vertices table based on the source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:399
+msgid ""
+":ref:`pgr_nodeNetwork <pgr_node_network>` to create nodes to a not noded "
+"edge table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:402
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:403
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:404
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_analyzeOneWay.po b/locale/en/LC_MESSAGES/pgr_analyzeOneWay.po
new file mode 100644
index 0000000..627da76
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_analyzeOneWay.po
@@ -0,0 +1,290 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:13
+msgid "pgr_analyzeOneway"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:19
+msgid ""
+"``pgr_analyzeOneway`` — Analyzes oneway Sstreets and identifies flipped "
+"segments."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:23
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:25
+msgid ""
+"This function analyzes oneway streets in a graph and identifies any flipped "
+"segments."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:42
+msgid ""
+"The analyses of one way segments is pretty simple but can be a powerful "
+"tools to identifying some the potential problems created by setting the "
+"direction of a segment the wrong way. A node is a `source` if it has edges "
+"the exit from that node and no edges enter that node. Conversely, a node is "
+"a `sink` if all edges enter the node but none exit that node. For a `source`"
+" type node it is logically impossible to exist because no vehicle can exit "
+"the node if no vehicle and enter the node. Likewise, if you had a `sink` "
+"node you would have an infinite number of vehicle piling up on this node "
+"because you can enter it but not leave it."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:44
+msgid ""
+"So why do we care if the are not feasible? Well if the direction of an edge "
+"was reversed by mistake we could generate exactly these conditions. Think "
+"about a divided highway and on the north bound lane one segment got entered "
+"wrong or maybe a sequence of multiple segments got entered wrong or maybe "
+"this happened on a round-about. The result would be potentially a `source` "
+"and/or a `sink` node."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:46
+msgid ""
+"So by counting the number of edges entering and exiting each node we can "
+"identify both `source` and `sink` nodes so that you can look at those areas "
+"of your network to make repairs and/or report the problem back to your data "
+"vendor."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:49
+msgid "Prerequisites"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:50
+msgid ""
+"The  edge table to be analyzed must contain a source column and a target "
+"column filled with id's of the vertices of the segments and the "
+"corresponding vertices table <edge_table>_vertices_pgr that stores the "
+"vertices information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:52
+msgid ""
+"Use :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create the "
+"vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:53
+msgid ""
+"Use :ref:`pgr_createTopology <pgr_create_topology>` to create the topology "
+"and the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:56
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:57
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:58
+msgid "``text[]`` source node **in** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:59
+msgid "``text[]`` source node **out** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:60
+msgid "``text[]`` target node **in** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:61
+msgid "``text[]`` target node **out** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:62
+msgid ""
+"``text`` oneway column name name of the network table. Default value is "
+"``oneway``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:63
+msgid ""
+"``text`` Source column name of the network table. Default value is "
+"``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:64
+msgid ""
+"``text``  Target column name of the network table.  Default value is "
+"``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:65
+msgid ""
+"``boolean`` flag to treat oneway NULL values as bi-directional.  Default "
+"value is ``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:67
+msgid ""
+"It is strongly recommended to use the named notation. See "
+":ref:`pgr_createVerticesTable <pgr_create_vert_table>` or "
+":ref:`pgr_createTopology <pgr_create_topology>` for examples."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:70
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:72
+msgid "``OK`` after the analysis has finished."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:74
+msgid "Uses the vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:75
+msgid ""
+"Fills completely the ``ein`` and ``eout`` columns of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:77
+msgid "``FAIL`` when the analysis was not completed due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:79
+msgid "The vertices table is not found."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:80
+msgid ""
+"A required column of the Network table is not found or is not of the "
+"appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:81
+msgid "The names of source , target or oneway are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:83
+msgid ""
+"The rules are defined as an array of text strings that if match the "
+"``oneway`` value would be counted as ``true`` for the source or target "
+"**in** or **out** condition."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:86
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:87
+msgid ""
+"The vertices table can be created with :ref:`pgr_createVerticesTable "
+"<pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:89
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:91
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:92
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex."
+" See :ref:`pgr_analyzeGgraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:93
+msgid ""
+"``integer``  Indicator that the vertex might have a problem. See "
+":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:94
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as incoming."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:95
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as outgoing."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:96
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:100
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:101
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:105
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:129
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:133
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:135
+msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:136
+msgid ":ref:`analytics` for an overview of the analysis of a graph."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:137
+msgid ""
+":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:138
+msgid ""
+":ref:`pgr_create_vert_table` to reconstruct the vertices table based on the "
+"source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:141
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:142
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:143
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_articulationPoints.po b/locale/en/LC_MESSAGES/pgr_articulationPoints.po
new file mode 100644
index 0000000..225a3d6
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_articulationPoints.po
@@ -0,0 +1,316 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_articulationPoints.rst:13
+msgid "pgr_articulationPoints - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:16
+msgid ""
+"``pgr_articulationPoints`` - Return the articulation points of an undirected"
+" graph. In particular, the algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:22
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:30
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:32
+msgid ""
+"Those vertices that belong to more than one biconnected component are called"
+" articulation points or, equivalently, cut vertices. Articulation points are"
+" vertices whose removal would increase the number of connected components in"
+" the graph. This implementation can only be used with an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:39
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:41
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:43
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:45
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:47
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:62
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:75
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the return values for articulation points"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:91
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:93
+msgid "http://en.wikipedia.org/wiki/Biconnected_component"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:94
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:97
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:98
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:99
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_bdAstar.po b/locale/en/LC_MESSAGES/pgr_bdAstar.po
new file mode 100644
index 0000000..fdfaa05
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_bdAstar.po
@@ -0,0 +1,669 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdAstar.rst:13
+msgid "pgr_bdAstar"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:18
+msgid "``pgr_bdAstar`` — Returns the shortest path using A* algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:26
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:27
+msgid "pgr_bdAstar(one to one) 2.0.0, Signature change on 2.5.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:28
+msgid "pgr_bdAstar(other signatures) 2.5.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:32
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:54
+msgid ""
+"Using these signatures, will load once the graph and perform several one to "
+"one `pgr_bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:56
+msgid ""
+"The result is the union of the results of the one to one `pgr_bdAStar`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:57
+msgid ""
+"The extra ``start_vid`` and/or ``end_vid`` in the result is used to "
+"distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:61
+msgid "Avaliability"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:62
+msgid "pgr_bdAstar(one to one) 2.0, signature change on 2.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:63
+msgid "pgr_bdAstar(other signatures) 2.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:68
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:76
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:87
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to the ``end_vid``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:84
+msgid "on a **directed** graph"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:85
+msgid "with **heuristic**'s value 5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:86
+msgid "with **factor**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:87
+msgid "with **epsilon**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:89
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:102
+msgid "pgr_bdAstar One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:111
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to the ``end_vid``"
+" allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:109
+msgid "**heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:110 ../../build/doc/pgr_bdAstar.rst:137
+#: ../../build/doc/pgr_bdAstar.rst:162 ../../build/doc/pgr_bdAstar.rst:186
+msgid "and/or **factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:111 ../../build/doc/pgr_bdAstar.rst:138
+#: ../../build/doc/pgr_bdAstar.rst:163 ../../build/doc/pgr_bdAstar.rst:187
+msgid "and/or **epsilon**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:114
+msgid ""
+"In the One to One signature, because of the deprecated signature existence, "
+"it is compulsory to indicate if the graph is **directed** or **undirected**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:116
+msgid "Directed using Heuristic 2"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:127
+msgid "pgr_bdAstar One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:139
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to each "
+"``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:135 ../../build/doc/pgr_bdAstar.rst:160
+#: ../../build/doc/pgr_bdAstar.rst:184
+msgid "if the graph is **directed** or **undirected**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:136 ../../build/doc/pgr_bdAstar.rst:161
+#: ../../build/doc/pgr_bdAstar.rst:185
+msgid "and/or **heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:141
+msgid "Directed using Heuristic 3 and a factor of 3.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:152
+msgid "pgr_bdAstar Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:163
+msgid ""
+"This usage finds the shortest path from each ``start_vid`` in ``start_vids``"
+" to the ``end_vid`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:165
+msgid "Undirected graph with Heuristic 4"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:176
+msgid "pgr_bdAstar Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:187
+msgid ""
+"This usage finds the shortest path from each ``start_vid`` in ``start_vids``"
+" to each ``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:189
+msgid "Directed graph with a factor of 0.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:196
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:10 ../../build/doc/bdAstar-family.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11 ../../build/doc/bdAstar-family.rst:13
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:16
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:21
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:22
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:23
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:24
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:25
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:26
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28 ../../build/doc/bdAstar-family.rst:29
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:213
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:215
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:216
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:217
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:218
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:221
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:222
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:223
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_bdAstarCost.po b/locale/en/LC_MESSAGES/pgr_bdAstarCost.po
new file mode 100644
index 0000000..9b72e10
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_bdAstarCost.po
@@ -0,0 +1,594 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdAstarCost.rst:13
+msgid "pgr_bdAstarCost - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:18
+msgid "``pgr_bdAstarCost`` — Returns the shortest path using A* algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:26
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:32
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:46
+msgid ""
+"Using these signatures, will load once the graph and perform several one to "
+"one `pgr_bdAstarCost`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:48
+msgid ""
+"The result is the union of the results of the one to one `pgr_bdAstarCost`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:49
+msgid ""
+"The extra ``start_vid`` and/or ``end_vid`` in the result is used to "
+"distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:56
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:64
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:75
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to the ``end_vid``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:72
+msgid "on a **directed** graph"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:73
+msgid "with **heuristic**'s value 5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:74
+msgid "with **factor**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:75
+msgid "with **epsilon**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:77
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:90
+msgid "pgr_bdAstarCost One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:100
+#: ../../build/doc/pgr_bdAstarCost.rst:128
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to each "
+"``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:97
+#: ../../build/doc/pgr_bdAstarCost.rst:124
+#: ../../build/doc/pgr_bdAstarCost.rst:149
+#: ../../build/doc/pgr_bdAstarCost.rst:173
+msgid "if the graph is **directed** or **undirected**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:98
+msgid "**heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:99
+#: ../../build/doc/pgr_bdAstarCost.rst:126
+#: ../../build/doc/pgr_bdAstarCost.rst:151
+#: ../../build/doc/pgr_bdAstarCost.rst:175
+msgid "and/or **factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:100
+#: ../../build/doc/pgr_bdAstarCost.rst:127
+#: ../../build/doc/pgr_bdAstarCost.rst:152
+#: ../../build/doc/pgr_bdAstarCost.rst:176
+msgid "and/or **epsilon**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:103
+msgid ""
+"In the One to One signature, because of the deprecated signature existence, "
+"it is compulsory to indicate if the graph is **directed** or **undirected**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:105
+msgid "Directed using Heuristic 2"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:116
+msgid "pgr_bdAstarCost One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:125
+#: ../../build/doc/pgr_bdAstarCost.rst:150
+#: ../../build/doc/pgr_bdAstarCost.rst:174
+msgid "and/or **heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:130
+msgid "Directed using Heuristic 3 and a factor of 3.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:141
+msgid "pgr_bdAstarCost Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:152
+msgid ""
+"This usage finds the shortest path from each ``start_vid`` in ``start_vids``"
+" to the ``end_vid`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:154
+msgid "Undirected graph with Heuristic 4"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:165
+msgid "pgr_bdAstarCost Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:176
+msgid ""
+"This usage finds the shortest path from each ``start_vid`` in ``start_vids``"
+" to each ``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:178
+msgid "Directed graph with a factor of 0.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:185
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:10 ../../build/doc/bdAstar-family.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11 ../../build/doc/bdAstar-family.rst:13
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:16
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:21
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:22
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:23
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:24
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:25
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:26
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28 ../../build/doc/bdAstar-family.rst:29
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:202
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:204
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:205
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:206
+msgid ""
+"`Migration Guide <https://github.com/cvvergara/pgrouting/wiki/Migration-"
+"Guide#pgr_bdastar>`_"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:207
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:208
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:211
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:212
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:213
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_bdAstarCostMatrix.po b/locale/en/LC_MESSAGES/pgr_bdAstarCostMatrix.po
new file mode 100644
index 0000000..c8738fa
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_bdAstarCostMatrix.po
@@ -0,0 +1,536 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:13
+msgid "pgr_bdAstarCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:18
+msgid ""
+"``pgr_bdAstarCostMatrix`` - Calculates the a cost matrix using "
+":ref:`pgr_bdAstar`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:27
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:35
+msgid "Using Dijkstra algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:38
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:49
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:55
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:68
+msgid ""
+"This usage calculates the cost from the each ``start_vid`` in ``start_vids``"
+" to  each ``start_vid`` in ``start_vids``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:64
+msgid "on a **directed** graph"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:65
+msgid "with **heuristic**'s value 5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:66
+msgid "with **factor**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:67
+msgid "with **epsilon**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:70
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:82
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:95
+msgid ""
+"This usage calculates the cost from the each ``start_vid`` in ``start_vids``"
+" to  each ``start_vid`` in ``start_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:91
+msgid "if the graph is **directed** or **undirected**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:92
+msgid "**heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:93
+msgid "and/or **factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:94
+msgid "and/or **epsilon**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:97
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:99
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:107
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:10 ../../build/doc/bdAstar-family.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11 ../../build/doc/bdAstar-family.rst:13
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:16
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:21
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:22
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:23
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:24
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:25
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:26
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28 ../../build/doc/bdAstar-family.rst:29
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:123
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:125
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:133
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:135
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:136
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:137
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:138
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:141
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:142
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:143
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_bdDijkstra.po b/locale/en/LC_MESSAGES/pgr_bdDijkstra.po
new file mode 100644
index 0000000..b05e40f
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_bdDijkstra.po
@@ -0,0 +1,541 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdDijkstra.rst:13
+msgid "pgr_bdDijkstra"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:15
+msgid ""
+"``pgr_bdDijkstra`` — Returns the shortest path(s) using Bidirectional "
+"Dijkstra algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:23
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:24
+msgid "pgr_bdDijkstra(one to one) 2.0.0, Signature changed 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:25
+msgid "pgr_bdDijkstra(other signatures) 2.5.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:28
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:54
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:60
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:67
+msgid ""
+"The minimal signature is for a **directed** graph from one ``start_vid`` to "
+"one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:80
+msgid "pgr_bdDijkstra One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:87
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:89
+#: ../../build/doc/pgr_bdDijkstra.rst:112
+#: ../../build/doc/pgr_bdDijkstra.rst:141
+#: ../../build/doc/pgr_bdDijkstra.rst:170
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:90
+#: ../../build/doc/pgr_bdDijkstra.rst:113
+#: ../../build/doc/pgr_bdDijkstra.rst:142
+#: ../../build/doc/pgr_bdDijkstra.rst:171
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:103
+msgid "pgr_bdDijkstra One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:110
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:115
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_dijkstra` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:118
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:119
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:132
+msgid "pgr_bdDijkstra Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:139
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:144
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_dijkstra` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:147
+#: ../../build/doc/pgr_bdDijkstra.rst:176
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:148
+#: ../../build/doc/pgr_bdDijkstra.rst:177
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:161
+msgid "pgr_bdDijkstra Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:168
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:173
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:179
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:190
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10 ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11 ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:208
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:210
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:211
+msgid ":ref:`bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:212
+msgid ""
+"http://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/EPP%20shortest%20path%20algorithms.pdf"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:213
+msgid "https://en.wikipedia.org/wiki/Bidirectional_search"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:216
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:217
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:218
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_bdDijkstraCost.po b/locale/en/LC_MESSAGES/pgr_bdDijkstraCost.po
new file mode 100644
index 0000000..0516529
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_bdDijkstraCost.po
@@ -0,0 +1,470 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:13
+msgid "pgr_bdDijkstraCost - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:15
+msgid ""
+"``pgr_bdDijkstraCost`` — Returns the shortest path(s)'s cost using "
+"Bidirectional Dijkstra algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:23
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:30
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:46
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:52
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:59
+msgid ""
+"The minimal signature is for a **directed** graph from one ``start_vid`` to "
+"one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:72
+msgid "pgr_bdDijkstraCost One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:81
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:80
+#: ../../build/doc/pgr_bdDijkstraCost.rst:102
+#: ../../build/doc/pgr_bdDijkstraCost.rst:130
+#: ../../build/doc/pgr_bdDijkstraCost.rst:158
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:81
+#: ../../build/doc/pgr_bdDijkstraCost.rst:103
+#: ../../build/doc/pgr_bdDijkstraCost.rst:131
+#: ../../build/doc/pgr_bdDijkstraCost.rst:159
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:94
+msgid "pgr_bdDijkstraCost One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:103
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:105
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_dijkstra` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:108
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:109
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:122
+msgid "pgr_bdDijkstraCost Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:131
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:133
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_dijkstra` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:136
+#: ../../build/doc/pgr_bdDijkstraCost.rst:164
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:137
+#: ../../build/doc/pgr_bdDijkstraCost.rst:165
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:150
+msgid "pgr_bdDijkstraCost Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:159
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:161
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:167
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:178
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10 ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11 ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:195
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:197
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:198
+msgid ":ref:`pgr_bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:199
+msgid ""
+"http://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/EPP%20shortest%20path%20algorithms.pdf"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:200
+msgid "https://en.wikipedia.org/wiki/Bidirectional_search"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:203
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:204
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:205
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_bdDijkstraCostMatrix.po b/locale/en/LC_MESSAGES/pgr_bdDijkstraCostMatrix.po
new file mode 100644
index 0000000..0b0a2ae
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_bdDijkstraCostMatrix.po
@@ -0,0 +1,382 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:13
+msgid "pgr_bdDijkstraCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:18
+msgid ""
+"``pgr_bdDijkstraCostMatrix`` - Calculates the a cost matrix using "
+":ref:`pgr_bdDijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:27
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:35
+msgid "Using Dijkstra algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:38
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:49
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:55
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:58
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:58
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:66
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:78
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:86
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:88
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:96
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:108
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:108
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:105
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:108
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:110
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:110
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:110
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:111
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:111
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:111
+msgid "Array of identifiers of the vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:112
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:112
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:112
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:122
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:124
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:132
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:134
+msgid ":ref:`bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:135
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:136
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:137
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:140
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:141
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:142
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_biconnectedComponents.po b/locale/en/LC_MESSAGES/pgr_biconnectedComponents.po
new file mode 100644
index 0000000..f4db188
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_biconnectedComponents.po
@@ -0,0 +1,349 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:13
+msgid "pgr_biconnectedComponents - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:15
+msgid ""
+"``pgr_biconnectedComponents`` — Return the biconnected components of an "
+"undirected graph. In particular, the algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:31
+msgid ""
+"The biconnected components of an undirected graph are the maximal subsets of"
+" vertices such that the removal of a vertex from particular component will "
+"not disconnect the component. Unlike connected components, vertices may "
+"belong to multiple biconnected components. Vertices can be present in "
+"multiple biconnected components, but each edge can only be contained in a "
+"single biconnected component. So, the output only has edge version."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:36
+msgid "This implementation can only be used with an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:39
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:41
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:43
+msgid "Components are described by edges"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:45
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:47
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:48
+msgid "`edge` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:50
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:53
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:65
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:78
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:14
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid ""
+"Description of the return values for biconnected components, connected "
+"components (edge version) and strongly connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, component, n_seq, edge)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid ""
+"Component identifier. It is equal to the minimum edge identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:94
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:96
+msgid "http://en.wikipedia.org/wiki/Biconnected_component"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:97
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:100
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:101
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:102
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_boykovKolmogorov.po b/locale/en/LC_MESSAGES/pgr_boykovKolmogorov.po
new file mode 100644
index 0000000..84d76a4
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_boykovKolmogorov.po
@@ -0,0 +1,435 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:14
+msgid "pgr_boykovKolmogorov - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:18
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:20
+msgid ""
+"``pgr_boykovKolmogorov`` — Calculates the flow on the graph edges that "
+"maximizes the flow from the sources to the targets using Boykov Kolmogorov "
+"algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:29
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:30
+msgid "Renamed 2.5.0, Previous name pgr_maxFlowBoykovKolmogorov"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:31
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:8
+msgid ""
+"When the maximum flow is 0 then there is no flow and **EMPTY SET** is "
+"returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:12
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:15
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid ""
+"Creates a **super source** and edges to all the source(s), and a **super "
+"target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid ""
+"The maximum flow through the graph is guaranteed to be the value returned by"
+" :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and"
+" can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:42
+msgid "Running time: Polynomial"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:45
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:61
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:63
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:82
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:84
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:103
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:105
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:124
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:126
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:141
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:4
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10 ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11 ../../build/doc/pgr_maxFlow.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:12
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:159
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:161
+msgid ""
+":ref:`maxFlow`, :ref:`pgr_pushRelabel <pgr_pushRelabel>`, "
+":ref:`pgr_EdmondsKarp <pgr_edmondsKarp>`"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:162
+msgid "http://www.boost.org/libs/graph/doc/boykov_kolmogorov_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:165
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:166
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:167
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_bridges.po b/locale/en/LC_MESSAGES/pgr_bridges.po
new file mode 100644
index 0000000..a80bf4e
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_bridges.po
@@ -0,0 +1,310 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bridges.rst:13
+msgid "pgr_bridges - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:16
+msgid "``pgr_bridges`` - Return the bridges of an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:31
+msgid ""
+"A bridge is an edge of an undirected graph whose deletion increases its "
+"number of connected components. This implementation can only be used with an"
+" undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:36
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:38
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:40
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:42
+msgid "`edge` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:44
+msgid "Running time: :math:`O(E * (V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:47
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:59
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:72
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the return values for bridges"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:88
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:90
+msgid "http://en.wikipedia.org/wiki/Bridge_%28graph_theory%29"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:91
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:94
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:95
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:96
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_connectedComponents.po b/locale/en/LC_MESSAGES/pgr_connectedComponents.po
new file mode 100644
index 0000000..2474096
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_connectedComponents.po
@@ -0,0 +1,346 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_connectedComponents.rst:13
+msgid "pgr_connectedComponents - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:16
+msgid ""
+"``pgr_connectedComponents`` — Return the connected components of an "
+"undirected graph using a DFS-based approach. In particular, the algorithm "
+"implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:22
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:30
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:32
+msgid ""
+"A connected component of an undirected graph is a set of vertices that are "
+"all reachable from each other. This implementation can only be used with an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:37
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:39
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:41
+msgid "Components are described by vertices"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:43
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:45
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:46
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:48
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:63
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:76
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid ""
+"Description of the return values for connected components and strongly "
+"connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, component, n_seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid ""
+"Component identifier. It is equal to the minimum node identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:92
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:94
+msgid "http://en.wikipedia.org/wiki/Connected_component_%28graph_theory%29"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:95
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:98
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:99
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:100
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_contractGraph.po b/locale/en/LC_MESSAGES/pgr_contractGraph.po
new file mode 100644
index 0000000..8d27664
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_contractGraph.po
@@ -0,0 +1,488 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_contractGraph.rst:13
+msgid "pgr_contractGraph - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:15
+msgid ""
+"``pgr_contractGraph`` — Performs graph contraction and returns the "
+"contracted vertices and edges."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:23
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:30
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:32
+msgid ""
+"Contraction reduces the size of the graph by removing some of the vertices "
+"and edges and, for example, might add edges that represent a sequence of "
+"original edges decreasing the total time and space used in graph algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:35
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:52
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:38
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:40
+msgid "There are two types of contraction methods used namely,"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:42
+msgid "Dead End Contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:43
+msgid "Linear Contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:45
+msgid "The values returned include the added edges and contracted vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:47
+msgid "The returned values are ordered as follows:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:49
+msgid "column `id` ascending when type = `v`"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:50
+msgid "column `id` descending when type = `e`"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:55
+msgid "Signature Summary:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:57
+msgid "The pgr_contractGraph function has the following signatures:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:68
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:74
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:80
+msgid "Making a dead end contraction and a linear contraction."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:87
+msgid "Complete signature"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:93
+msgid ""
+"Making a dead end contraction and a linear contraction and vertex 2 is "
+"forbidden from contraction"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_contractGraph.rst:109
+#: ../../build/doc/pgr_contractGraph.rst:130
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_contractGraph.rst:109
+#: ../../build/doc/pgr_contractGraph.rst:130
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_contractGraph.rst:109
+#: ../../build/doc/pgr_contractGraph.rst:130
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgr_contractGraph.rst:136
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_contractGraph.rst:146
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_contractGraph.rst:147
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_contractGraph.rst:148
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:106
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:111
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:111
+#: ../../build/doc/pgr_contractGraph.rst:133
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:111
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:112
+msgid "**contraction_order**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:112
+#: ../../build/doc/pgr_contractGraph.rst:115
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:113
+msgid "Ordered contraction operations."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:113
+msgid "1 = Dead end contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:114
+msgid "2 = Linear contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:115
+msgid "**forbidden_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:115
+msgid ""
+"(optional). Identifiers of vertices forbidden from contraction. Default is "
+"an empty array."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:116
+msgid "**max_cycles**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:116
+#: ../../build/doc/pgr_contractGraph.rst:132
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:116
+msgid ""
+"(optional). Number of times the contraction operations on "
+"`contraction_order` will be performed. Default is 1."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:117
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:117
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:117
+msgid "When ``true`` the graph is considered as `Directed`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:118
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:123
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:125
+msgid ""
+"RETURNS SETOF  (seq, type, id, contracted_vertices, source, target, cost)"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:127
+msgid "The function returns a single row. The columns of the row are:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:132
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:132
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:133
+msgid "**type**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:134
+msgid "Type of the `id`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:134
+msgid "'v' when `id` is an identifier of a vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:135
+msgid "'e' when `id` is an identifier of an edge."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:136
+#: ../../build/doc/pgr_contractGraph.rst:146
+#: ../../build/doc/pgr_contractGraph.rst:147
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:143
+msgid "Identifier of:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:137
+msgid "the  vertex when `type = 'v'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:139
+msgid "The vertex belongs to the edge_table passed as a parameter."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:140
+msgid "the edge when `type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:142
+msgid "The `id` is a decreasing sequence starting from **-1**."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:144
+msgid "Representing a pseudo `id` as is not incorporated into the edge_table."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:145
+msgid "**contracted_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:145
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:145
+msgid "Array of contracted vertex identifiers."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:146
+msgid ""
+"Identifier of the source vertex of the current edge `id`. Valid values when "
+"`type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:147
+msgid ""
+"Identifier of the target vertex of the current edge `id`. Valid values when "
+"`type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:148
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:148
+msgid ""
+"Weight of the edge (`source`, `target`). Valid values when `type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:152
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:154
+msgid "Only dead end contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:160
+msgid "Only linear contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:168
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:169
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:170
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_createTopology.po b/locale/en/LC_MESSAGES/pgr_createTopology.po
new file mode 100644
index 0000000..44a282e
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_createTopology.po
@@ -0,0 +1,395 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_createTopology.rst:13
+msgid "pgr_createTopology"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:18
+msgid ""
+"``pgr_createTopology`` — Builds a network topology based on the geometry "
+"information."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:22
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:24
+#: ../../build/doc/pgr_createTopology.rst:72
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:26
+msgid ""
+"``OK`` after the network topology has been built and the vertices table "
+"created."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:27
+msgid "``FAIL`` when the network topology was not built due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:42
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:45
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:46
+msgid "The topology creation function accepts the following parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:48
+msgid "``text`` Network table name. (may contain the schema name AS well)"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:49
+msgid ""
+"``float8`` Snapping tolerance of disconnected edges. (in projection unit)"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:50
+msgid ""
+"``text``  Geometry column name of the network table. Default value is "
+"``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:51
+msgid ""
+"``text``  Primary key column name of the network table. Default value is "
+"``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:52
+msgid ""
+"``text`` Source column name of the network table. Default value is "
+"``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:53
+msgid ""
+"``text``  Target column name of the network table.  Default value is "
+"``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:54
+msgid ""
+"``text``   Condition to SELECT a subset or rows.  Default value is ``true`` "
+"to indicate all rows that where ``source`` or ``target`` have a null value, "
+"otherwise the condition is used."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:56
+msgid "``boolean`` Clean any previous topology.  Default value is ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:60
+msgid "The ``edge_table`` will be affected"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:62
+msgid "The ``source`` column values will change."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:63
+msgid "The ``target`` column values will change."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:65
+msgid ""
+"An index will be created, if it doesn't exists, to speed up the process to "
+"the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:67
+msgid "``id``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:68
+msgid "``the_geom``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:69
+msgid "``source``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:70
+msgid "``target``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:74
+msgid "``OK`` after the network topology has been built."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:76
+msgid "Creates a vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:77
+msgid "Fills ``id`` and ``the_geom`` columns of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:78
+msgid ""
+"Fills the source and target columns of the edge table referencing the ``id``"
+" of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:81
+msgid "``FAIL`` when the network topology was not built due to an error:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:83
+msgid ""
+"A required column of the Network table is not found or is not of the "
+"appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:84
+msgid "The condition is not well formed."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:85
+msgid "The names of source , target or id are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:86
+msgid "The SRID of the geometry could not be determined."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:90
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:91
+msgid ""
+"The vertices table is a requirement of the :ref:`pgr_analyzeGraph "
+"<pgr_analyze_graph>` and the :ref:`pgr_analyzeOneway <pgr_analyze_oneway>` "
+"functions."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:93
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:95
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:96
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex."
+" See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:97
+msgid ""
+"``integer``  Indicator that the vertex might have a problem. See "
+":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:98
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"AS incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:99
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"AS outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:100
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:103
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:104
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:107
+msgid "Usage when the edge table's columns MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:110
+msgid "The simplest way to use pgr_createTopology is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:118
+msgid "When the arguments are given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:119
+msgid "We get the same result AS the simplest way to use the function."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"In this example, the column ``id`` of the table ``ege_table`` is passed to "
+"the function as the geometry column,"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"and the geometry column ``the_geom`` is passed to the function as the id "
+"column."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:136
+#: ../../build/doc/pgr_createTopology.rst:205
+msgid "When using the named notation"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:137
+msgid ""
+"Parameters defined with a default value can be omitted, as long as the value"
+" matches the default And The order of the parameters would not matter."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:153
+#: ../../build/doc/pgr_createTopology.rst:219
+msgid "Selecting rows using rows_where parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:154
+msgid "Selecting rows based on the id."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:160
+msgid ""
+"Selecting the rows where the geometry is near the geometry of row with ``id "
+"= 5``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:166
+#: ../../build/doc/pgr_createTopology.rst:227
+msgid ""
+"Selecting the rows where the geometry is near the geometry of the row with "
+"``gid`` =100 of the table ``othertable``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:176
+msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:178
+msgid "For the following table"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:185
+msgid "Using positional notation:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:186
+msgid ""
+"The arguments need to be given in the order described in the parameters."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:188
+msgid ""
+"Note that this example uses clean flag. So it recreates the whole vertices "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropiriate "
+"order:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"In this example, the column ``gid`` of the table ``mytable`` is passed to "
+"the function AS the geometry column,"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"and the geometry column ``mygeom`` is passed to the function AS the id "
+"column."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:206
+msgid ""
+"In this scenario omitting a parameter would create an error because the "
+"default values for the column names do not match the column names of the "
+"table. The order of the parameters do not matter:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:220
+msgid "Based on id:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:235
+msgid "Examples with full output"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:237
+msgid ""
+"This example start a clean topology, with 5 edges, and then its incremented "
+"to the rest of the edges."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:243
+msgid "The example uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:247
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:249
+msgid ":ref:`topology` for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:250
+msgid ""
+":ref:`pgr_create_vert_table` to reconstruct the vertices table based on the "
+"source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:251
+msgid ""
+":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:254
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:255
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:256
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_createVerticesTable.po b/locale/en/LC_MESSAGES/pgr_createVerticesTable.po
new file mode 100644
index 0000000..191059e
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_createVerticesTable.po
@@ -0,0 +1,341 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_createVerticesTable.rst:13
+msgid "pgr_createVerticesTable"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:18
+msgid ""
+"``pgr_createVerticesTable`` — Reconstructs the vertices table based on the "
+"source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:22
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:24
+#: ../../build/doc/pgr_createVerticesTable.rst:62
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:26
+#: ../../build/doc/pgr_createVerticesTable.rst:64
+msgid "``OK`` after the vertices table has been reconstructed."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:27
+#: ../../build/doc/pgr_createVerticesTable.rst:69
+msgid ""
+"``FAIL`` when the vertices table was not reconstructed due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:43
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:44
+msgid ""
+"The reconstruction of the vertices table  function accepts the following "
+"parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:46
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:47
+msgid ""
+"``text``  Geometry column name of the network table. Default value is "
+"``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:48
+msgid ""
+"``text`` Source column name of the network table. Default value is "
+"``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:49
+msgid ""
+"``text``  Target column name of the network table.  Default value is "
+"``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:50
+msgid ""
+"``text``   Condition to SELECT a subset or rows.  Default value is ``true`` "
+"to indicate all rows."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:54
+msgid "The ``edge_table`` will be affected"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:56
+msgid ""
+"An index will be created, if it doesn't exists, to speed up the process to "
+"the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:58
+msgid "``the_geom``"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:59
+msgid "``source``"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:60
+msgid "``target``"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:66
+msgid "Creates a vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:67
+msgid ""
+"Fills ``id`` and ``the_geom`` columns of the vertices table based on the "
+"source and target columns of the edge table."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:71
+msgid ""
+"A required column of the Network table is not found or is not of the "
+"appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:72
+msgid "The condition is not well formed."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:73
+msgid "The names of source, target are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:74
+msgid "The SRID of the geometry could not be determined."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:77
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:78
+msgid ""
+"The vertices table is a requierment of the :ref:`pgr_analyzeGraph "
+"<pgr_analyze_graph>` and the :ref:`pgr_analyzeOneway <pgr_analyze_oneway>` "
+"functions."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:80
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:82
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:83
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex."
+" See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:84
+msgid ""
+"``integer``  Indicator that the vertex might have a problem. See "
+":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:85
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:86
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:87
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:90
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:91
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:94
+msgid "Usage when the edge table's columns MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:97
+msgid "The simplest way to use pgr_createVerticesTable is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:104
+msgid "When the arguments are given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:109
+msgid "We get the same result as the simplest way to use the function."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:111
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order: In this example, the column source column ``source`` of the table "
+"``mytable`` is passed to the function as the geometry column, and the "
+"geometry column ``the_geom`` is passed to the function as the source column."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:128
+#: ../../build/doc/pgr_createVerticesTable.rst:205
+msgid "When using the named notation"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:129
+#: ../../build/doc/pgr_createVerticesTable.rst:206
+msgid "The order of the parameters do not matter:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:139
+msgid ""
+"Parameters defined with a default value can be omitted, as long as the value"
+" matches the default:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:146
+#: ../../build/doc/pgr_createVerticesTable.rst:220
+msgid "Selecting rows using rows_where parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:147
+msgid "Selecting rows based on the id."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:153
+msgid ""
+"Selecting the rows where the geometry is near the geometry of row with "
+"``id`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:159
+#: ../../build/doc/pgr_createVerticesTable.rst:243
+msgid ""
+"Selecting the rows where the geometry is near the geometry of the row with "
+"``gid`` =100 of the table ``othertable``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:170
+msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:172
+msgid "For the following table"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:180
+msgid "Using positional notation:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:181
+msgid ""
+"The arguments need to be given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order: In this example, the column ``src`` of the table ``mytable`` is "
+"passed to the function as the geometry column, and the geometry column "
+"``mygeom`` is passed to the function as the source column."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:216
+msgid ""
+"In this scenario omitting a parameter would create an error because the "
+"default values for the column names do not match the column names of the "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:221
+msgid "Selecting rows based on the gid."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:231
+msgid ""
+"Selecting the rows where the geometry is near the geometry of row with "
+"``gid`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:260
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:282
+msgid "The example uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:286
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:288
+msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:289
+msgid ""
+":ref:`pgr_createTopology <pgr_create_topology>` to create a topology based "
+"on the geometry."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:290
+msgid ""
+":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:291
+msgid ":ref:`pgr_analyze_oneway` to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:294
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:295
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:296
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_dijkstra.po b/locale/en/LC_MESSAGES/pgr_dijkstra.po
new file mode 100644
index 0000000..45cbd10
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_dijkstra.po
@@ -0,0 +1,621 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid ""
+"``pgr_dijkstra`` — Returns the shortest path(s) using Dijkstra algorithm. In"
+" particular, the Dijkstra algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:24
+msgid "Availability"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:25
+msgid "pgr_dijkstra(one to one) 2.0.0, signature change 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:26
+msgid "pgr_dijkstra(other signatures) 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:31
+msgid ""
+"Dijkstra's algorithm, conceived by Dutch computer scientist Edsger Dijkstra "
+"in 1956. It is a graph search algorithm that solves the shortest path "
+"problem for a graph with non-negative edge path costs, producing a shortest "
+"path from a starting vertex (``start_vid``) to an ending vertex "
+"(``end_vid``). This implementation can be used with a directed graph and an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:38
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:60
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:41
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:42
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:44
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:46
+msgid "The `agg_cost` the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:48
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:50
+msgid "The `agg_cost` the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:52
+msgid ""
+"For optimization purposes, any duplicated value in the `start_vids` or "
+"`end_vids` are ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:54
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:56
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:57
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:59
+msgid "Running time: :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:63
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:78
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:84
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:91
+msgid ""
+"The minimal signature is for a **directed** graph from one ``start_vid`` to "
+"one ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:104
+msgid "pgr_dijkstra One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:114
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:113 ../../build/doc/pgr_dijkstra.rst:136
+#: ../../build/doc/pgr_dijkstra.rst:167 ../../build/doc/pgr_dijkstra.rst:197
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:114 ../../build/doc/pgr_dijkstra.rst:137
+#: ../../build/doc/pgr_dijkstra.rst:168 ../../build/doc/pgr_dijkstra.rst:198
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:127
+msgid "pgr_dijkstra One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:137
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:139
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_dijkstra` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:142
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:143
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:158
+msgid "pgr_dijkstra Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:168
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:170
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_dijkstra` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:173 ../../build/doc/pgr_dijkstra.rst:203
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:174 ../../build/doc/pgr_dijkstra.rst:204
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:188
+msgid "pgr_dijkstra Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:198
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:200
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:206
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:215
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:225
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:230
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:230
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:230
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:231 ../../build/doc/pgr_dijkstra.rst:233
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:231
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:232
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:232 ../../build/doc/pgr_dijkstra.rst:234
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:232
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:233
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:233
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:234
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:234
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:236
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:248
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:250
+msgid ""
+"The examples of this section are based on the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:252
+msgid ""
+"The examples include combinations from starting vertices 2 and 11 to ending "
+"vertices 3 and 5 in a directed and undirected graph with and with out "
+"reverse_cost."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:256
+msgid ""
+"Examples for queries marked as ``directed`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:258
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:267
+msgid ""
+"Examples for queries marked as ``undirected`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:269
+msgid "The examples in this section use the following :ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:277
+msgid "Examples for queries marked as ``directed`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:279
+msgid "The examples in this section use the following :ref:`fig3`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:287
+msgid "Examples for queries marked as ``undirected`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:289
+msgid "The examples in this section use the following :ref:`fig4`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:297
+msgid "Equvalences between signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:299
+msgid ""
+"For queries marked as ``directed`` with ``cost`` and ``reverse_cost`` "
+"columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:301 ../../build/doc/pgr_dijkstra.rst:313
+msgid "The examples in this section use the following:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:303
+msgid ":ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:311
+msgid ""
+"For queries marked as ``undirected`` with ``cost`` and ``reverse_cost`` "
+"columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:315
+msgid ":ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:324
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:326
+msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:327
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:330
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:331
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:332
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_dijkstraCost.po b/locale/en/LC_MESSAGES/pgr_dijkstraCost.po
new file mode 100644
index 0000000..a9193fb
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_dijkstraCost.po
@@ -0,0 +1,473 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstraCost.rst:13
+msgid "pgr_dijkstraCost"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:17
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:19
+msgid "``pgr_dijkstraCost``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:21
+msgid ""
+"Using Dijkstra algorithm implemented by Boost.Graph, and extract only the "
+"aggregate cost of the shortest path(s) found, for the combination of "
+"vertices given."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:27
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:30
+msgid "Availability"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:31
+msgid "pgr_dijkstraCost(all signatures) 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:33
+msgid ""
+"The ``pgr_dijkstraCost`` algorithm, is a good choice to calculate the sum of"
+" the costs of the shortest path for a subset of pairs of nodes of the graph."
+" We make use of the Boost's implementation of dijkstra which runs in "
+":math:`O(V \\log V + E)` time."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:39
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:71
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:42
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:43
+msgid ""
+"Returns the sum of the costs of the shortest path for pair combination of "
+"nodes in the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:44
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:45
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:47
+msgid ""
+"The returned values are in the form of a set of `(start_vid, end_vid, "
+"agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:49
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:51
+msgid "The `agg_cost` int the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:53
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:55
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:57
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:60
+msgid "For undirected graphs, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:62
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:64
+msgid "Any duplicated value in the `start_vids` or `end_vids` is ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:66
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:68
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:69
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:71
+msgid "Running time: :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:74
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:89
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:95
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:97
+msgid ""
+"The minimal signature is for a **directed** graph from one ``start_vid`` to "
+"one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:106
+msgid "Example"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:117
+msgid "pgr_dijkstraCost One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:122
+msgid ""
+"This signature performs a Dijkstra from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:121
+#: ../../build/doc/pgr_dijkstraCost.rst:150
+#: ../../build/doc/pgr_dijkstraCost.rst:176
+#: ../../build/doc/pgr_dijkstraCost.rst:201
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:122
+#: ../../build/doc/pgr_dijkstraCost.rst:151
+#: ../../build/doc/pgr_dijkstraCost.rst:177
+#: ../../build/doc/pgr_dijkstraCost.rst:202
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:141
+msgid "pgr_dijkstraCost One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:152
+msgid ""
+"This signature performs a Dijkstra from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:167
+msgid "pgr_dijkstraCost Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:178
+msgid ""
+"This signature performs a Dijkstra from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:192
+msgid "pgr_dijkstraCost Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:202
+msgid ""
+"This signature performs a Dijkstra from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:213
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10 ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11 ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:229
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:231
+msgid "Demonstration of repeated values are ignored, and result is sorted."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:237
+msgid "Making `start_vids` the same as `end_vids`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:246
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:248
+msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:249
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:252
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:253
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:254
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_dijkstraCostMatrix.po b/locale/en/LC_MESSAGES/pgr_dijkstraCostMatrix.po
new file mode 100644
index 0000000..95cf121
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_dijkstraCostMatrix.po
@@ -0,0 +1,358 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:13
+msgid "pgr_dijkstraCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:18
+msgid ""
+"``pgr_dijkstraCostMatrix`` - Calculates the a cost matrix using "
+"pgr_dijktras."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:29
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:32
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:34
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:36
+msgid "Using Dijkstra algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:39
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:56
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:59
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:59
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:67
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:79
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:87
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:89
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:97
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:106
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:109
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:111
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:111
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:111
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:112
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:112
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:112
+msgid "Array of identifiers of the vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:113
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:113
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:113
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:123
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:125
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:133
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:135
+msgid ":ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:136
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:137
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:138
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:141
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:142
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:143
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_dijkstraVia.po b/locale/en/LC_MESSAGES/pgr_dijkstraVia.po
new file mode 100644
index 0000000..0a3c5f1
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_dijkstraVia.po
@@ -0,0 +1,480 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstraVia.rst:13
+msgid "pgr_dijkstraVia - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:19
+msgid ""
+"``pgr_dijkstraVia`` — Using dijkstra algorithm, it finds the route that goes"
+" through a list of vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:30
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:32
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:34
+msgid ""
+"Given a list of vertices and a graph, this function is equivalent to finding"
+" the shortest path between :math:`vertex_i` and :math:`vertex_{i+1}` for all"
+" :math:`i < size\\_of(vertex_via)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:37
+msgid "The paths represents the sections of the route."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:39
+msgid "This is a proposed function"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:42
+msgid "Signatrue Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:53
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:59
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:67
+msgid "Find the route that visits the vertices 1 3 9  in that order"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:77
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:86
+msgid ""
+"Find the route that visits the vertices 1 3 9  in that order on an "
+"undirected graph, avoiding U-turns when possible"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:94
+msgid "Description of the Signature"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:124
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:7
+#: ../../build/doc/pgr_dijkstraVia.rst:108
+#: ../../build/doc/pgr_dijkstraVia.rst:124
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:7
+#: ../../build/doc/pgr_dijkstraVia.rst:108
+#: ../../build/doc/pgr_dijkstraVia.rst:124
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_dijkstraVia.rst:133
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+#: ../../build/doc/pgr_dijkstraVia.rst:105
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:7
+#: ../../build/doc/pgr_dijkstraVia.rst:108
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:110
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:110
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:110
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgr_dijkstraVia.rst:111
+msgid "**via_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgr_dijkstraVia.rst:111
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Array of ordered vertices identifiers that are going to be visited."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgr_dijkstraVia.rst:112
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgr_dijkstraVia.rst:112
+#: ../../build/doc/pgr_dijkstraVia.rst:113
+#: ../../build/doc/pgr_dijkstraVia.rst:114
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_dijkstraVia.rst:113
+msgid "**strict**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``false``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "When ``false`` ignores missing paths returning all paths found"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "When ``true`` if a path is missing stops and returns `EMPTY SET`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgr_dijkstraVia.rst:114
+msgid "**U_turn_on_edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"When ``true`` departing from a visited vertex will not try to avoid using "
+"the edge used to reach it.  In other words, U turn using the edge with same "
+"`id` is allowed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When ``false`` when a departing from a visited vertex tries to avoid using "
+"the edge used to reach it.  In other words, U turn using the edge with same "
+"`id` is used when no other path is found."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:111
+msgid "Array of vertices identifiers"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:112
+#: ../../build/doc/pgr_dijkstraVia.rst:114
+msgid ""
+"(optional) Default is true (is directed). When set to false the graph is "
+"considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:113
+msgid ""
+"(optional) ignores if a subsection of the route is missing and returns "
+"everything it found Default is true (is directed). When set to false the "
+"graph is considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:119
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:121
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:126
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:126
+#: ../../build/doc/pgr_dijkstraVia.rst:127
+#: ../../build/doc/pgr_dijkstraVia.rst:128
+#: ../../build/doc/pgr_dijkstraVia.rst:129
+#: ../../build/doc/pgr_dijkstraVia.rst:130
+#: ../../build/doc/pgr_dijkstraVia.rst:131
+#: ../../build/doc/pgr_dijkstraVia.rst:132
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:126
+msgid "Sequential value starting from 1."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:127
+msgid "**path_pid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:127
+msgid "Identifier of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:128
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:128
+msgid "Sequential value starting from 1 for the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:129
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:129
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:130
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:130
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:131
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:131
+msgid "Identifier of the node in the path from start_vid to end_vid."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:132
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:132
+msgid ""
+"Identifier of the edge used to go from node to the next node in the path "
+"sequence. -1 for the last node of the path. -2 for the last node of the "
+"route."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:133
+#: ../../build/doc/pgr_dijkstraVia.rst:134
+#: ../../build/doc/pgr_dijkstraVia.rst:135
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:133
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the route "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:134
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:134
+msgid "Total cost from ``start_vid`` to ``end_vid`` of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:135
+msgid "**route_agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:135
+msgid ""
+"Total cost from ``start_vid`` of ``path_pid = 1`` to ``end_vid`` of the "
+"current ``path_pid`` ."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:140
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:142
+msgid "Find the route that visits the vertices 1 5 3 9 4 in that order"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:148
+msgid "What's the aggregate cost of the third path?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:154
+msgid ""
+"What's the route's aggregate cost of the route at the end of the third path?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:160
+msgid "How are the nodes visited in the route?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:166
+msgid ""
+"What are the aggregate costs of the route when the visited vertices are "
+"reached?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:172
+msgid ""
+"show the route's seq and aggregate cost and a status of \"passes in front\" "
+"or \"visits\" node 9"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:179
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:181
+msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:182
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:185
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:186
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:187
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_drivingDistance.po b/locale/en/LC_MESSAGES/pgr_drivingDistance.po
new file mode 100644
index 0000000..77f7b8e
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_drivingDistance.po
@@ -0,0 +1,391 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_drivingDistance.rst:13
+msgid "pgr_drivingDistance"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:19
+msgid ""
+"``pgr_drivingDistance`` - Returns the driving distance from a start node."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:25
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:28
+msgid "Availability"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:29
+msgid "pgr_drivingDistance(single vertex) 2.0.0, signature change 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:30
+msgid "pgr_drivingDistance(multiple vertices) 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:35
+msgid ""
+"Using the Dijkstra algorithm, extracts all the nodes that have costs less "
+"than or equal to the value ``distance``. The edges extracted will conform to"
+" the corresponding spanning tree."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:39
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:57
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:70
+msgid "Driving Distance From A Single Starting Vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:82
+msgid "Driving Distance From Multiple Starting Vertices"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:90
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_drivingDistance.rst:101
+#: ../../build/doc/pgr_drivingDistance.rst:119
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_drivingDistance.rst:101
+#: ../../build/doc/pgr_drivingDistance.rst:119
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_drivingDistance.rst:101
+#: ../../build/doc/pgr_drivingDistance.rst:119
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_drivingDistance.rst:125
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:98
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:103
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:103
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:103
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:104
+#: ../../build/doc/pgr_drivingDistance.rst:122
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:104
+#: ../../build/doc/pgr_drivingDistance.rst:123
+#: ../../build/doc/pgr_drivingDistance.rst:124
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:104
+#: ../../build/doc/pgr_drivingDistance.rst:122
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:105
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:105
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:105
+msgid "Array of identifiers of the starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:106
+msgid "**distance**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:106
+#: ../../build/doc/pgr_drivingDistance.rst:125
+#: ../../build/doc/pgr_drivingDistance.rst:126
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:106
+msgid "Upper limit for the inclusion of the node in the result."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:107
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:107
+#: ../../build/doc/pgr_drivingDistance.rst:108
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:107
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:108
+msgid "**equicost**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:108
+msgid ""
+"(optional). When ``true`` the node will only appear in the closest "
+"``start_vid`` list.  Default is ``false`` which resembles several calls "
+"using the single starting point signatures. Tie brakes are arbitrary."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:114
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:116
+msgid "Returns set of ``(seq [, start_v], node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:121
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:121
+#: ../../build/doc/pgr_drivingDistance.rst:122
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:121
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:123
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:123
+msgid ""
+"Identifier of the node in the path within the limits from ``start_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:124
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:124
+msgid ""
+"Identifier of the edge used to arrive to ``node``. ``0`` when the ``node`` "
+"is the ``start_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:125
+msgid "Cost to traverse ``edge``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:126
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:126
+msgid "Aggregate cost from ``start_vid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:132
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:135
+msgid ""
+"Examples for queries marked as ``directed`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:137
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:144
+msgid ""
+"Examples for queries marked as ``undirected`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:146
+msgid "The examples in this section use the following :ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:154
+msgid "Examples for queries marked as ``directed`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:156
+msgid "The examples in this section use the following :ref:`fig3`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:165
+msgid "Examples for queries marked as ``undirected`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:167
+msgid "The examples in this section use the following :ref:`fig4`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:175
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:177
+msgid ":ref:`pgr_alphashape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:178
+msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:179
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:182
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:183
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:184
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_edgeDisjointPaths.po b/locale/en/LC_MESSAGES/pgr_edgeDisjointPaths.po
new file mode 100644
index 0000000..54a0ffe
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_edgeDisjointPaths.po
@@ -0,0 +1,541 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:14
+msgid "pgr_edgeDisjointPaths - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:19
+msgid ""
+"``pgr_edgeDisjointPaths`` — Calculates edge disjoint paths between two "
+"groups of vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:25
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:28
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:36
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:38
+msgid ""
+"Calculates the edge disjoint paths between two groups of vertices. Utilizes "
+"underlying maximum flow algorithms to calculate the paths."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:42
+msgid "Characteristics:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:49
+msgid "The main characterics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:45
+msgid "Calculates the edge disjoint paths between any two groups of vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:46
+msgid ""
+"Returns EMPTY SET when source and destination are the same, or cannot be "
+"reached."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:47
+msgid "The graph can be directed or undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:48
+msgid "One to many, many to one, many to many versions are also supported."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:49
+msgid "Uses :ref:`pgr_boykovKolmogorov` to calculate the paths."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:52
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:67
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:73
+msgid "Minimal use"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:81
+msgid ""
+"The minimal use is for a **directed** graph from one ``start_vid`` to one "
+"``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:93
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:98
+msgid ""
+"This signature finds the set of dijoint paths from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:96
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:120
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:149
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:175
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:97
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:121
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:150
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:176
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:117
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:126
+msgid ""
+"This signature finds the sset of disjoint paths  from the ``start_vid`` to "
+"each one of the ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:122
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:151
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:177
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_edgeDisjointPaths`."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:123
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:146
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:152
+msgid ""
+"This signature finds the set of disjoint paths from each one of the "
+"``start_vid`` in ``start_vids`` to the ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:152
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:172
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:178
+msgid ""
+"This signature finds the set of disjoint paths from each one of the "
+"``start_vid`` in ``start_vids`` to each one of the ``end_vid`` in "
+"``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:178
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:195
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10 ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11 ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:212
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:214
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:217
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:218
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:219
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_edmondsKarp.po b/locale/en/LC_MESSAGES/pgr_edmondsKarp.po
new file mode 100644
index 0000000..8523277
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_edmondsKarp.po
@@ -0,0 +1,438 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_edmondsKarp.rst:14
+msgid "pgr_edmondsKarp - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:18
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:20
+msgid ""
+"``pgr_edmondsKarp`` — Calculates the flow on the graph edges that maximizes "
+"the flow from the sources to the targets using Push Relabel Algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:29
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:30
+msgid "Renamed 2.5.0, Previous name pgr_maxFlowEdmondsKarp"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:31
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:8
+msgid ""
+"When the maximum flow is 0 then there is no flow and **EMPTY SET** is "
+"returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:12
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:15
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid ""
+"Creates a **super source** and edges to all the source(s), and a **super "
+"target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid ""
+"The maximum flow through the graph is guaranteed to be the value returned by"
+" :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and"
+" can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:42
+msgid "Running time: :math:`O( V * E ^ 2)`"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:45
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:62
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:64
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:83
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:85
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:104
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:106
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:125
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:127
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:142
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:4
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10 ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11 ../../build/doc/pgr_maxFlow.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:12
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:160
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:162
+msgid ""
+":ref:`maxFlow`, :ref:`pgr_boykovKolmogorov <pgr_boykovKolmogorov>`, "
+":ref:`pgr_PushRelabel <pgr_pushRelabel>`"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:163
+msgid "http://www.boost.org/libs/graph/doc/edmonds_karp_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:164
+msgid "https://en.wikipedia.org/wiki/Edmonds%E2%80%93Karp_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:167
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:168
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:169
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_eucledianTSP.po b/locale/en/LC_MESSAGES/pgr_eucledianTSP.po
new file mode 100644
index 0000000..5b9be5e
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_eucledianTSP.po
@@ -0,0 +1,187 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_eucledianTSP.rst:13
+msgid "pgr_eucledianTSP"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:18
+msgid ""
+"``pgr_eucledianTSP`` - Returns a route that visits all the coordinates pairs"
+" exactly once."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:22
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:24
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:26
+msgid ""
+"The travelling salesman problem (TSP) or travelling salesperson problem asks"
+" the following question:"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:28
+msgid ""
+"Given a list of cities and the distances between each pair of cities, what "
+"is the shortest possible route that visits each city exactly once and "
+"returns to the origin city?"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:30
+msgid ""
+"This implementation uses simulated annealing to return the approximate "
+"solution when the input is given in the form of coordinates."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:33
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:48
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:54
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:63
+msgid ""
+"Because the documentation examples are auto generated and tested for non "
+"changing results, and the default is to have random execution, the example "
+"is wrapping the actual call."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:75
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:90
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:96
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:99
+msgid "Description of the coordinates SQL query"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:102
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:102
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:102
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:104
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:104
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:104
+msgid "Identifier of the coordinate. (optional)"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:105
+msgid "**x**"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:105
+#: ../../build/doc/pgr_eucledianTSP.rst:106
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:105
+msgid "X value of the coordinate."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:106
+msgid "**y**"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:106
+msgid "Y value of the coordinate."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:110
+msgid ""
+"When the value of **id** is not given then the coordinates will receive an "
+"**id** starting from 1, in the order given."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:125
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:127
+msgid "Skipping the Simulated Annealing & showing some process information"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:135
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:139
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:140
+msgid "New in version 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:145
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:147
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:148
+msgid "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:149
+msgid "http://en.wikipedia.org/wiki/Simulated_annealing"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:152
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:153
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:154
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_floydWarshall.po b/locale/en/LC_MESSAGES/pgr_floydWarshall.po
new file mode 100644
index 0000000..4fe9ece
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_floydWarshall.po
@@ -0,0 +1,348 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_floydWarshall.rst:13
+msgid "pgr_floydWarshall"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:16
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:18
+msgid ""
+"``pgr_floydWarshall`` - Returns the sum of the costs of the shortest path "
+"for each pair of nodes in the graph using Floyd-Warshall algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:27
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:28
+msgid "Renamed on 2.2.0, previous name pgr_apspWarshall"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:31
+msgid ""
+"The Floyd-Warshall algorithm, also known as Floyd's algorithm, is a good "
+"choice to calculate the sum of the costs of the shortest path for each pair "
+"of nodes in the graph, for *dense graphs*. We make use of the  Boost's "
+"implementation which runs in :math:`\\Theta(V^3)` time,"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:38
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:58
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:41
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:42
+msgid ""
+"Returns the sum of the costs of the shortest path for each pair of nodes in "
+"the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:43
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:44
+msgid ""
+"Boost returns a :math:`V \\times V` matrix, where the infinity values. "
+"Represent the distance between vertices for which there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:47
+msgid ""
+"We return only the non infinity values in form of a set of `(start_vid, "
+"end_vid, agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:49
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:52
+msgid "For the undirected graph, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:54
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:56
+msgid "When  `start_vid` = `end_vid`, the `agg_cost` = 0."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:58
+msgid "**Recommended, use a bounding box of no more than 3500 edges.**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:61
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:70
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:77
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:84
+msgid "On a directed graph."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:95
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:103
+msgid "On an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:110
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query (id is not necessary)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_floydWarshall.rst:136
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_floydWarshall.rst:123
+#: ../../build/doc/pgr_floydWarshall.rst:136
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_floydWarshall.rst:123
+#: ../../build/doc/pgr_floydWarshall.rst:136
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:118
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:120
+msgid "Receives  ``(edges_sql, directed)``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:123
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:125
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:125
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:125
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:126
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:126
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:126
+msgid ""
+"(optional) Default is true (is directed). When set to false the graph is "
+"considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:131
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:133
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:138
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:138
+#: ../../build/doc/pgr_floydWarshall.rst:139
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:138
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:139
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:139
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:140
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:140
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:140
+msgid "Total cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:148
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:149
+msgid "Re-design of pgr_apspWarshall in Version 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:152
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:154
+msgid ":ref:`pgr_johnson`"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:155
+msgid ""
+"`Boost floyd-Warshall "
+"<http://www.boost.org/libs/graph/doc/floyd_warshall_shortest.html>`_ "
+"algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:156
+msgid "Queries uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:159
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:160
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:161
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_gsoc_vrppdtw.po b/locale/en/LC_MESSAGES/pgr_gsoc_vrppdtw.po
new file mode 100644
index 0000000..7705842
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_gsoc_vrppdtw.po
@@ -0,0 +1,358 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:13
+msgid "pgr_gsoc_vrppdtw - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:19
+msgid ""
+"``pgr_gsoc_vrppdtw`` — Returns a solution for `Pick and Delivery` with `time"
+" windows` Vehicle Routing Problem"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:27
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:36
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:43
+msgid "Complete signature"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:52
+msgid "Example: Show the id1"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:59
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:62
+msgid "Description of the sql query"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:65
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:89
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:102
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:65
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:89
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:102
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:65
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:89
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:102
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:67
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:67
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:81
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:82
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:67
+msgid "Identifier of the customer."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:69
+msgid "A value of ``0`` identifies the starting location"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:71
+msgid "**x**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:71
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:72
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:73
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:78
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:79
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:80
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:71
+msgid "``X`` coordinate of the location."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:72
+msgid "**y**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:72
+msgid "``Y`` coordinate of the location."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:73
+msgid "**demand**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:73
+msgid "How much is added / removed from the vehicle."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:75
+msgid "Negative value is a delivery,"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:76
+msgid "Positive value is a pickup,"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:78
+msgid "**openTime**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:78
+msgid "The time relative to 0, when the customer opens."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:79
+msgid "**closeTime**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:79
+msgid "The time relative to 0, when the customer closes."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:80
+msgid "**serviceTime**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:80
+msgid "The duration of the loading / unloading."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:81
+msgid "**pIndex**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:81
+msgid ""
+"Value used when the current customer is a Delivery to find the corresponding"
+" Pickup"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:82
+msgid "**dIndex**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:82
+msgid ""
+"Value used when the current customer is a Pickup to find the corresponding "
+"Delivery"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:86
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:91
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:91
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:91
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:92
+msgid "**vehicle_num**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:92
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:93
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:104
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:105
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:106
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:92
+msgid "Maximum number of vehicles in the result. (currently is ignored)"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:93
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:93
+msgid "Capacity of the vehicle."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:97
+msgid "Description of the result"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:99
+msgid "RETURNS SET OF pgr_costResult[]:"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:104
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:104
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:105
+msgid "**id1**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:105
+msgid "Current vehicle identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:106
+msgid "**id2**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:106
+msgid "Customer identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:107
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:107
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:107
+msgid ""
+"Previous ``cost`` plus `travel time` plus `wait time` plus `service time`."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:108
+msgid ""
+"when ``id2 = 0`` for the second time for the same ``id1``, then has the "
+"total time for the current ``id1``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:114
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:117
+msgid "Example: Total number of rows returned"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:123
+msgid "Example: Results for only id1 values: 1, 5, and 9"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:130
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:132
+msgid "The examples use :ref:`pickDeliverData`"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:133
+msgid "http://en.wikipedia.org/wiki/Vehicle_routing_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:136
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:137
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:138
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_johnson.po b/locale/en/LC_MESSAGES/pgr_johnson.po
new file mode 100644
index 0000000..d0ef00b
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_johnson.po
@@ -0,0 +1,341 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_johnson.rst:13
+msgid "pgr_johnson"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:16
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:18
+msgid ""
+"``pgr_johnson`` - Returns the sum of the costs of the shortest path for each"
+" pair of nodes in the graph using Floyd-Warshall algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:27
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:28
+msgid "Renamed on 2.2.0, previous name pgr_apspJohnson"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:31
+msgid ""
+"The Johnson algorithm, is a good choice to calculate the sum of the costs of"
+" the shortest path for each pair of nodes in the graph, for *sparse graphs*."
+" It usees the Boost's implementation which runs in :math:`O(V E \\log V)` "
+"time,"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:37
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:57
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:40
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:41
+msgid ""
+"Returns the sum of the costs of the shortest path for each pair of nodes in "
+"the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:42
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:43
+msgid ""
+"Boost returns a :math:`V \\times V` matrix, where the infinity values. "
+"Represent the distance between vertices for which there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:46
+msgid ""
+"We return only the non infinity values in form of a set of `(start_vid, "
+"end_vid, agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:48
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:51
+msgid "For the undirected graph, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:53
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:55
+msgid "When  `start_vid` = `end_vid`, the `agg_cost` = 0."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:60
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:69
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:76
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:83
+msgid "On a directed graph."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:94
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:102
+msgid "On an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:109
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query (id is not necessary)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_johnson.rst:135
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_johnson.rst:122 ../../build/doc/pgr_johnson.rst:135
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_johnson.rst:122 ../../build/doc/pgr_johnson.rst:135
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:117
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:119
+msgid "Receives  ``(edges_sql, directed)``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:122
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:124
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:124
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:124
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:125
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:125
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:125
+msgid ""
+"(optional) Default is true (is directed). When set to false the graph is "
+"considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:130
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:132
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:137
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:137 ../../build/doc/pgr_johnson.rst:138
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:137
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:138
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:138
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:139
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:139
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:139
+msgid "Total cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:147
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:148
+msgid "Re-design of pgr_apspJohnson in Version 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:151
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:153
+msgid ":ref:`pgr_floydWarshall`"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:154
+msgid ""
+"`Boost Johnson "
+"<http://www.boost.org/libs/graph/doc/johnson_all_pairs_shortest.html>`_ "
+"algorithm implementation."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:155
+msgid "Queries uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:158
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:159
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:160
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_labelGraph.po b/locale/en/LC_MESSAGES/pgr_labelGraph.po
new file mode 100644
index 0000000..e5d6532
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_labelGraph.po
@@ -0,0 +1,233 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_labelGraph.rst:15
+msgid "pgr_labelGraph - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:18
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:20
+msgid ""
+"``pgr_labelGraph`` — Locates and labels sub-networks within a network which "
+"are not topologically connected."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:28
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:30
+msgid ""
+"Must be run after ``pgr_createTopology()``. No use of ``geometry`` column. "
+"Only ``id``, ``source`` and  ``target`` columns are required."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:32
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:34
+msgid ""
+"``OK`` when a column with provided name has been generated and populated "
+"successfully. All connected edges will have unique similar integer values. "
+"In case of ``rows_where`` condition, non participating rows will have -1 "
+"integer values."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:35
+msgid ""
+"``FAIL`` when the processing cannot be finished due to some error. Notice "
+"will be thrown accordingly."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:36
+msgid ""
+"``rows_where condition generated 0 rows`` when passed SQL condition has not "
+"been fulfilled by any row."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:48
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:50
+msgid ""
+"A network behind any routing query may consist of sub-networks completely "
+"isolated from each other. Possible reasons could be:"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:52
+msgid "An island with no bridge connecting to the mainland."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:53
+msgid ""
+"An edge or mesh of edges failed to connect to other networks because of "
+"human negligence during data generation."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:54
+msgid "The data is not properly noded."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:55
+msgid "Topology creation failed to succeed."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:57
+msgid ""
+"pgr_labelGraph() will create an integer column (with the name provided by "
+"the user) and will assign same integer values to all those edges in the "
+"network which are connected topologically. Thus better analysis regarding "
+"network structure is possible. In case of ``rows_where`` condition, non "
+"participating rows will have -1 integer values."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:59
+msgid ""
+"Prerequisites: Must run ``pgr_createTopology()`` in order to generate "
+"``source`` and ``target`` columns. Primary key column ``id`` should also be "
+"there in the network table."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:62
+msgid "Function accepts the following parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:64
+msgid "``text`` Network table name, with optional schema name."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:65
+msgid ""
+"``text`` Primary key column name of the network table. Default is ``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:66
+msgid ""
+"``text`` Source column name generated after ``pgr_createTopology()``. "
+"Default is ``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:67
+msgid ""
+"``text`` Target column name generated after ``pgr_createTopology()``. "
+"Default is ``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:68
+msgid ""
+"``text`` Column name which will hold the integer labels for each sub-graph. "
+"Default is ``subgraph``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:69
+msgid ""
+"``text`` The SQL where condition. Default is ``true``, means the processing "
+"will be done on the whole table."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:75
+msgid "Example Usage"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:77
+msgid "The sample data, has 3 subgraphs."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:85
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:87
+msgid ""
+"`pgr_createTopology "
+"<https://github.com/Zia-/pgrouting/blob/develop/src/common/sql/pgrouting_topology.sql>`_"
+" to create the topology of a table based on its geometry and tolerance "
+"value."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:90
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:91
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:92
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_lineGraph.po b/locale/en/LC_MESSAGES/pgr_lineGraph.po
new file mode 100644
index 0000000..7b69209
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_lineGraph.po
@@ -0,0 +1,387 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_lineGraph.rst:13
+msgid "pgr_lineGraph - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:15
+msgid ""
+"``pgr_lineGraph`` — Transforms a given graph into its corresponding edge-"
+"based graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:31
+msgid "Given a graph G, its line graph L(G) is a graph such that:-"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:33
+msgid "each vertex of L(G) represents an edge of G"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:34
+msgid ""
+"two vertices of L(G) are adjacent if and only if their corresponding edges "
+"share a common endpoint in G."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:36
+msgid ""
+"The following figures show a graph (left, with blue vertices) and its Line "
+"Graph (right, with green vertices)."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:39
+msgid "|first|"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:45
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:55
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:61
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:68
+msgid "The minimal signature is for a **directed** graph:"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:81
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:90
+msgid "This signature returns the Line Graph of the current graph:"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:89
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:90
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:101
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_lineGraph.rst:112 ../../build/doc/pgr_lineGraph.rst:125
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_lineGraph.rst:112 ../../build/doc/pgr_lineGraph.rst:125
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_lineGraph.rst:112 ../../build/doc/pgr_lineGraph.rst:125
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_lineGraph.rst:129
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_lineGraph.rst:133
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_lineGraph.rst:137
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_lineGraph.rst:141
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:109
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:114
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:114
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:114
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:115
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:115
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:115
+msgid "When ``true`` the graph is considered as `Directed`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:116
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:120
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:122
+msgid "RETURNS SETOF  (seq, source, target, cost, reverse_cost)"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:127
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:127
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:127
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:129 ../../build/doc/pgr_lineGraph.rst:133
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:129
+msgid "Identifier of the source vertex of the current edge `id`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:131
+msgid "When `negative`: the source is the reverse edge in the original graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:133
+msgid "Identifier of the target vertex of the current edge `id`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:135
+msgid "When `negative`: the target is the reverse edge in the original graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:137 ../../build/doc/pgr_lineGraph.rst:141
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:137
+msgid "Weight of the edge (`source`, `target`)."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:139
+msgid ""
+"When `negative`: edge (`source`, `target`) does not exist, therefore it’s "
+"not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:141
+msgid "Weight of the edge (`target`, `source`)."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:143
+msgid ""
+"When `negative`: edge (`target`, `source`) does not exist, therefore it’s "
+"not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:147
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:154
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:156
+msgid "https://en.wikipedia.org/wiki/Line_graph"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:157
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:160
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:161
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:162
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_maxCardinalityMatch.po b/locale/en/LC_MESSAGES/pgr_maxCardinalityMatch.po
new file mode 100644
index 0000000..4c6c884
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_maxCardinalityMatch.po
@@ -0,0 +1,357 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:13
+msgid "pgr_maxCardinalityMatch - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:17
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:19
+msgid ""
+"``pgr_maxCardinalityMatch`` — Calculates a maximum cardinality matching in a"
+" graph."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:29
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:32
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:33
+msgid "Renamed 2.5.0, Previous name pgr_maximumCardinalityMatching"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:34
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:38
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:39
+msgid ""
+"A matching or independent edge set in a graph is a set of edges without "
+"common vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:40
+msgid ""
+"A maximum matching is a matching that contains the largest possible number "
+"of edges."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:42
+msgid "There may be many maximum matchings."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:43
+msgid "Calculates **one** possible maximum cardinality matching in a graph."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:45
+msgid "The graph can be **directed** or **undirected**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:46
+msgid "Running time: :math:`O( E*V * \\alpha(E,V))`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:48
+msgid ":math:`\\alpha(E,V)` is the inverse of the `Ackermann function`_."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:54
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:71
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:78
+msgid ""
+"The minimal use calculates one possible maximum cardinality matching on a "
+"**directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:90
+msgid "Complete signature"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:98
+msgid ""
+"The complete signature calculates one possible maximum cardinality matching."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:109
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:113
+msgid "Description of the SQL query"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:115
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:118
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:136
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:146
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:118
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:136
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:146
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:118
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:136
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:146
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:120
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:120
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:121
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:122
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:120
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:121
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:150
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:121
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:122
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:151
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:122
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:123
+msgid "**going**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:123
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:124
+msgid "``ANY-NUMERIC``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:123
+msgid ""
+"A positive value represents the existence of the edge (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:124
+msgid "**coming**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:124
+msgid ""
+"A positive value represents the existence of the edge (target, source)."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:127
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:129
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:130
+msgid "SMALLINT, INTEGER, BIGINT, REAL, DOUBLE PRECISION"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:133
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:138
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:138
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:138
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:139
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:139
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:139
+msgid "(optional) Determines the type of the graph. Default TRUE."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:143
+msgid "Description of the Result"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:148
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:148
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:148
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:149
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:149
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:150
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:151
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:149
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:150
+msgid "Identifier of the first end point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:151
+msgid "Identifier of the second end point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:155
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:157
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:158
+msgid "http://www.boost.org/libs/graph/doc/maximum_matching.html"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:159
+msgid "https://en.wikipedia.org/wiki/Matching_%28graph_theory%29"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:160
+msgid "https://en.wikipedia.org/wiki/Ackermann_function"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:163
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:164
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:165
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_maxFlow.po b/locale/en/LC_MESSAGES/pgr_maxFlow.po
new file mode 100644
index 0000000..0327a6f
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_maxFlow.po
@@ -0,0 +1,354 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "pgr_maxFlow - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:17
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:19
+msgid ""
+"``pgr_maxFlow`` — Calculates the maximum flow in a directed graph from the "
+"source(s) to the targets(s) using the Push Relabel algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:25
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:28
+msgid "Availability: 2.4.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:35
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:36
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:37
+msgid ""
+"When the maximum flow is 0 then there is no flow and **0** is returned."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:39
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:41
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:42
+msgid "Uses the :ref:`pgr_pushRelabel <pgr_pushRelabel>` algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:44
+msgid "Running time: :math:`O( V ^ 3)`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:47
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:62
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:64
+msgid "Calculates the maximum flow from the `source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:82
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:84
+msgid "Calculates the maximum flow from the `source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:102
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:104
+msgid "Calculates the maximum flow from all the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:122
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:124
+msgid ""
+"Calculates the maximum flow from all of the `sources` to all of the "
+"`targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:138
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152 ../../build/doc/pgr_maxFlow.rst:169
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152 ../../build/doc/pgr_maxFlow.rst:169
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:155
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:157
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:149
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:154
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:154
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:154
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:155 ../../build/doc/pgr_maxFlow.rst:157
+#: ../../build/doc/pgr_maxFlow.rst:171
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:155
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:156
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:156 ../../build/doc/pgr_maxFlow.rst:158
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:156
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:157
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:158
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:158
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:166
+msgid "Description of the return value"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:171
+msgid "Maximum flow possible from the source(s) to the target(s)"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:175
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:177
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:178
+msgid "http://www.boost.org/libs/graph/doc/push_relabel_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:179
+msgid ""
+"https://en.wikipedia.org/wiki/Push%E2%80%93relabel_maximum_flow_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:182
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:183
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:184
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_nodeNetwork.po b/locale/en/LC_MESSAGES/pgr_nodeNetwork.po
new file mode 100644
index 0000000..b9b92db
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_nodeNetwork.po
@@ -0,0 +1,353 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_nodeNetwork.rst:13
+msgid "pgr_nodeNetwork"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:18
+msgid "``pgr_nodeNetwork`` - Nodes an network edge table."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:20
+msgid "Nicolas Ribot"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:21
+msgid "Nicolas Ribot, The source code is released under the MIT-X license."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:27
+msgid ""
+"The function reads edges from a not \"noded\" network table and writes the "
+"\"noded\" edges into a new table."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:39
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:41
+msgid ""
+"A common problem associated with bringing GIS data into pgRouting is the "
+"fact that the data is often not \"noded\" correctly. This will create "
+"invalid topologies, which will result in routes that are incorrect."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:43
+msgid ""
+"What we mean by \"noded\" is that at every intersection in the road network "
+"all the edges will be broken into separate road segments. There are cases "
+"like an over-pass and under-pass intersection where you can not traverse "
+"from the over-pass to the under-pass, but this function does not have the "
+"ability to detect and accommodate those situations."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:45
+msgid ""
+"This function reads the ``edge_table`` table, that has a primary key column "
+"``id`` and geometry column named ``the_geom`` and intersect all the segments"
+" in it against all the other segments and then creates a table "
+"``edge_table_noded``. It uses the ``tolerance`` for deciding that multiple "
+"nodes within the tolerance are considered the same node."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:47
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:49
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:50
+msgid "``float8`` tolerance for coincident points (in projection unit)dd"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:51
+msgid ""
+"``text`` Primary key column name of the network table. Default value is "
+"``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:52
+msgid ""
+"``text`` Geometry column name of the network table. Default value is "
+"``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:53
+msgid "``text`` Suffix for the new table's. Default value is ``noded``."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:55
+msgid "The output table will have for  ``edge_table_noded``"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:57
+msgid "``bigint`` Unique identifier for the table"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:58
+msgid "``bigint``  Identifier of the edge in original table"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:59
+msgid "``integer`` Segment number of the original edge"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:60
+msgid ""
+"``integer`` Empty source column to be used with  :ref:`pgr_create_topology` "
+"function"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:61
+msgid ""
+"``integer`` Empty target column to be used with  :ref:`pgr_create_topology` "
+"function"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:62
+msgid "``geometry`` Geometry column of the noded network"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:65
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:66
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:70
+msgid "Example"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:72
+msgid "Let's create the topology for the data in :doc:`sampledata`"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:90
+msgid "Now we can analyze the network."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:114
+msgid ""
+"The analysis tell us that the network has a gap and an intersection. We try "
+"to fix the problem using:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:136
+msgid ""
+"Inspecting the generated table, we can see that edges 13,14 and 18 has been "
+"segmented"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:166
+msgid "We can create the topology of the new network"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:184
+msgid "Now let's analyze the new topology"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:210
+msgid "Images"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:243
+msgid "Comparing the results"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:245
+msgid "Comparing with the Analysis in the original edge_table, we see that."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:248
+msgid "Before"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:248
+msgid "After"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:250
+msgid "Table name"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:250
+msgid "edge_table"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:250
+msgid "edge_table_noded"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:252
+msgid "Fields"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:252
+msgid "All original fields"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:252
+msgid "Has only basic fields to do a topology analysis"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:254
+msgid "Dead ends"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:254
+msgid "Edges with 1 dead end: 1,6,24"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:255
+msgid "Edges with 2 dead ends  17,18"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:257
+msgid ""
+"Edge 17's right node is a dead end because there is no other edge sharing "
+"that same node. (cnt=1)"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:254
+msgid "Edges with 1 dead end: 1-1 ,6-1,14-2, 18-1 17-1 18-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:261
+msgid "Isolated segments"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:261
+msgid "two isolated segments:  17 and 18 both they have 2 dead ends"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:262
+msgid "No Isolated segments"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:262
+msgid "Edge 17 now shares a node with edges 14-1 and 14-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:263
+msgid "Edges 18-1 and 18-2 share a node with edges 13-1 and 13-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:265
+msgid "Gaps"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:265
+msgid ""
+"There is a gap between edge 17 and 14 because edge 14 is near to the right "
+"node of edge 17"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:265
+msgid ""
+"Edge 14 was segmented Now edges: 14-1 14-2 17 share the same node The "
+"tolerance value was taken in account"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:269
+msgid "Intersections"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:269
+msgid "Edges 13 and 18 were intersecting"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:269
+msgid ""
+"Edges were segmented, So, now in the interection's point there is a node and"
+" the following edges share it: 13-1 13-2 18-1 18-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:274
+msgid ""
+"Now, we are going to include the segments 13-1, 13-2 14-1, 14-2 ,18-1 and "
+"18-2 into our edge-table, copying the data for dir,cost,and reverse cost "
+"with tho following steps:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:276
+msgid ""
+"Add a column old_id into edge_table, this column is going to keep track the "
+"id of the original edge"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:277
+msgid ""
+"Insert only the segmented edges, that is, the ones whose max(sub_id) >1"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:290
+msgid "We recreate the topology:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:310
+msgid ""
+"To get the same analysis results as the topology of edge_table_noded, we do "
+"the following query:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:337
+msgid ""
+"To get the same analysis results as the original edge_table, we do the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:362
+msgid ""
+"Or we can analyze everything because, maybe edge 18 is an overpass, edge 14 "
+"is an under pass and there is also a street level juction, and the same "
+"happens with edges 17 and 13."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:389
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:391
+msgid ""
+":ref:`topology` for an overview of a topology for routing algorithms. "
+":ref:`pgr_analyze_oneway` to analyze directionality of the edges. "
+":ref:`pgr_create_topology` to create a topology based on the geometry. "
+":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:397
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:398
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:399
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_pointsAsPolygon.po b/locale/en/LC_MESSAGES/pgr_pointsAsPolygon.po
new file mode 100644
index 0000000..356d85b
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_pointsAsPolygon.po
@@ -0,0 +1,124 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:13
+msgid "pgr_pointsAsPolygon"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:21
+msgid ""
+"``pgr_pointsAsPolygon`` — Draws an alpha shape around given set of points."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:27
+msgid "Returns the alpha shape as (multi)polygon geometry."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:35
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:37
+msgid ""
+"``text`` a SQL query, which should return a set of rows with the following "
+"columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:43
+msgid "``int4`` identifier of the vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:44
+msgid "``float8`` x-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:45
+msgid "``float8`` y-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:47
+msgid ""
+"(optional) ``float8`` alpha value. If specified alpha value equals 0 "
+"(default), then optimal alpha value is used. For more information, see `CGAL"
+" - 2D Alpha Shapes "
+"<http://doc.cgal.org/latest/Alpha_shapes_2/group__PkgAlphaShape2.html>`_."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:50
+msgid "Returns a (multi)polygon geometry (with holes)."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:54
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:55
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:56
+msgid ""
+"Added alpha argument with default 0 (use optimal value) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:57
+msgid ""
+"Supported to return a (multi)polygon geometry (with holes) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:61
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:62
+msgid ""
+"In the following query there is no way to control which point in the polygon"
+" is the first in the list, so you may get similar but different results than"
+" the following which are also correct."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:69
+msgid "The query use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:73
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:75
+msgid ":ref:`pgr_drivingDistance` - Driving Distance"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:76
+msgid ":ref:`pgr_alphashape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:79
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:80
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:81
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_pushRelabel.po b/locale/en/LC_MESSAGES/pgr_pushRelabel.po
new file mode 100644
index 0000000..13e8a04
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_pushRelabel.po
@@ -0,0 +1,439 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_pushRelabel.rst:14
+msgid "pgr_pushRelabel - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:18
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:20
+msgid ""
+"``pgr_pushRelabel`` — Calculates the flow on the graph edges that maximizes "
+"the flow from the sources to the targets using Push Relabel Algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:29
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:30
+msgid "Renamed 2.5.0, Previous name pgr_maxFlowPushRelabel"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:31
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:8
+msgid ""
+"When the maximum flow is 0 then there is no flow and **EMPTY SET** is "
+"returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:12
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:15
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid ""
+"Creates a **super source** and edges to all the source(s), and a **super "
+"target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid ""
+"The maximum flow through the graph is guaranteed to be the value returned by"
+" :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and"
+" can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:41
+msgid "Running time: :math:`O( V ^ 3)`"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:44
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:60
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:62
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:81
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:83
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:102
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:104
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:123
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:125
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:140
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:4
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10 ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11 ../../build/doc/pgr_maxFlow.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:12
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:158
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:160
+msgid ""
+":ref:`maxFlow`, :ref:`pgr_boykovKolmogorov <pgr_boykovKolmogorov>`, "
+":ref:`pgr_edmondsKarp <pgr_edmondsKarp>`"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:161
+msgid "http://www.boost.org/libs/graph/doc/push_relabel_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:162
+msgid ""
+"https://en.wikipedia.org/wiki/Push%E2%80%93relabel_maximum_flow_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:165
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:166
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:167
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_strongComponents.po b/locale/en/LC_MESSAGES/pgr_strongComponents.po
new file mode 100644
index 0000000..6f6c0cf
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_strongComponents.po
@@ -0,0 +1,346 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_strongComponents.rst:13
+msgid "pgr_strongComponents - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:15
+msgid ""
+"``pgr_strongComponents`` — Return the strongly connected components of a "
+"directed graph using Tarjan's algorithm based on DFS. In particular, the "
+"algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:31
+msgid ""
+"A strongly connected component of a directed graph is a set of vertices that"
+" are all reachable from each other. This implementation can only be used "
+"with a directed graph."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:36
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:38
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:40
+msgid "Components are described by vertices"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:42
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:44
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:45
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:47
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:62
+msgid "The signature is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:75
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid ""
+"Description of the return values for connected components and strongly "
+"connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, component, n_seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid ""
+"Component identifier. It is equal to the minimum node identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:91
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:93
+msgid "http://en.wikipedia.org/wiki/Strongly_connected_component"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:94
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:97
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:98
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:99
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_trsp.po b/locale/en/LC_MESSAGES/pgr_trsp.po
new file mode 100644
index 0000000..108f0f8
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_trsp.po
@@ -0,0 +1,281 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_trsp.rst:13
+msgid "pgr_trsp - Turn Restriction Shortest Path (TRSP)"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:22
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:24
+msgid ""
+"``pgr_trsp`` — Returns the shortest path with support for turn restrictions."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:28
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:30
+msgid ""
+"The turn restricted shorthest path (TRSP) is a shortest path algorithm that "
+"can optionally take into account complicated turn restrictions like those "
+"found in real world navigable road networks. Performamnce wise it is nearly "
+"as fast as the A* search but has many additional features like it works with"
+" edges rather than the nodes of the network. Returns a set of "
+":ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows, that "
+"make up a path."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:57
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:59
+msgid ""
+"The Turn Restricted Shortest Path algorithm (TRSP) is similar to the "
+"shooting star in that you can specify turn restrictions."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:61
+msgid ""
+"The TRSP setup is mostly the same as :ref:`Dijkstra shortest path "
+"<pgr_dijkstra>` with the addition of an optional turn restriction table. "
+"This provides an easy way of adding turn restrictions to a road network by "
+"placing them in a separate table."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:64 ../../build/doc/pgr_trsp.rst:120
+msgid ""
+"a SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:71 ../../build/doc/pgr_trsp.rst:127
+msgid "``int4`` identifier of the edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:72 ../../build/doc/pgr_trsp.rst:128
+msgid "``int4`` identifier of the source vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:73 ../../build/doc/pgr_trsp.rst:129
+msgid "``int4`` identifier of the target vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:74 ../../build/doc/pgr_trsp.rst:130
+msgid ""
+"``float8`` value, of the edge traversal cost. A negative cost will prevent "
+"the edge from being inserted in the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:75 ../../build/doc/pgr_trsp.rst:131
+msgid ""
+"(optional) the cost for the reverse traversal of the edge. This is only used"
+" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
+"above remark about negative costs)."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:77
+msgid "``int4`` **NODE id** of the start point"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:78
+msgid "``int4`` **NODE id** of the end point"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:79 ../../build/doc/pgr_trsp.rst:134
+msgid "``true`` if the graph is directed"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:80 ../../build/doc/pgr_trsp.rst:135
+msgid ""
+"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
+"will be used for the cost of the traversal of the edge in the opposite "
+"direction."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:82 ../../build/doc/pgr_trsp.rst:137
+msgid ""
+"(optional) a SQL query, which should return a set of rows with the following"
+" columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:88 ../../build/doc/pgr_trsp.rst:143
+msgid "``float8`` turn restriction cost"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:89 ../../build/doc/pgr_trsp.rst:144
+msgid "``int4`` target id"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:90
+msgid ""
+"``text`` comma separated list of edges in the reverse order of ``rule``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:92
+msgid ""
+"Another variant of TRSP allows to specify **EDGE id** of source and target "
+"together with a fraction to interpolate the position:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:94
+msgid "``int4`` **EDGE id** of the start edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:95
+msgid "``float8`` fraction of 1 defines the position on the start edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:96
+msgid "``int4`` **EDGE id** of the end edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:97
+msgid "``float8`` fraction of 1 defines the position on the end edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:99 ../../build/doc/pgr_trsp.rst:152
+msgid "Returns set of :ref:`type_cost_result`:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:101 ../../build/doc/pgr_trsp.rst:154
+msgid "row sequence"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:102 ../../build/doc/pgr_trsp.rst:156
+msgid "node ID"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:103 ../../build/doc/pgr_trsp.rst:157
+msgid "edge ID (``-1`` for the last row)"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:104
+msgid "cost to traverse from ``id1`` using ``id2``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:107 ../../build/doc/pgr_trsp.rst:162
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:108
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:111
+msgid "Support for Vias"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:113
+msgid ""
+"The Support for Vias functions are prototypes. Not all corner cases are "
+"being considered."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:116
+msgid ""
+"We also have support for vias where you can say generate a from A to B to C,"
+" etc. We support both methods above only you pass an array of vertices or "
+"and array of edges and percentage position along the edge in two arrays."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:133
+msgid ""
+"``int4[]`` An ordered array of **NODE id** the path will go through from "
+"start to end."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:145
+msgid ""
+"``text`` commar separated list of edges in the reverse order of ``rule``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:147
+msgid ""
+"Another variant of TRSP allows to specify **EDGE id** together with a "
+"fraction to interpolate the position:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:149
+msgid "``int4`` An ordered array of **EDGE id** that the path has to traverse"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:150
+msgid ""
+"``float8`` An array of fractional positions along the respective edges in "
+"``eids``, where 0.0 is the start of the edge and 1.0 is the end of the "
+"eadge."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:155
+msgid "route ID"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:158
+msgid "cost to traverse from ``id2`` using ``id3``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:163
+msgid "Via Support prototypes new in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:166
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:168
+msgid "**Without turn restrictions**"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:175
+msgid "**With turn restrictions**"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:177
+msgid "Then a query with turn restrictions is created as:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:184
+msgid "An example query using vertex ids and via points:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:191
+msgid "An example query using edge ids and vias:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:198
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:202
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:204
+msgid ":ref:`type_cost_result`"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:207
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:208
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:209
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_version.po b/locale/en/LC_MESSAGES/pgr_version.po
new file mode 100644
index 0000000..5a6623a
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_version.po
@@ -0,0 +1,130 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_version.rst:13
+msgid "pgr_version"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:21
+msgid "``pgr_version`` — Query for pgRouting version information."
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:27
+msgid "Returns a table with pgRouting version information."
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:35 ../../build/doc/pgr_version.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:37
+msgid "Returns a table with:"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:40
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:40
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:42
+msgid "**version**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:42 ../../build/doc/pgr_version.rst:43
+#: ../../build/doc/pgr_version.rst:44 ../../build/doc/pgr_version.rst:45
+#: ../../build/doc/pgr_version.rst:46
+msgid "``varchar``"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:42
+msgid "pgRouting version"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:43
+msgid "**tag**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:43
+msgid "Git tag of pgRouting build"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:44
+msgid "**hash**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:44
+msgid "Git hash of pgRouting build"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:45
+msgid "**branch**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:45
+msgid "Git branch of pgRouting build"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:46
+msgid "**boost**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:46
+msgid "Boost version"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:51
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:52
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:56
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:58
+msgid "Query for full version string"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:66
+msgid "Query for ``version`` and ``boost`` attribute"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:78
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:81
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:82
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:83
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_vrpOneDepot.po b/locale/en/LC_MESSAGES/pgr_vrpOneDepot.po
new file mode 100644
index 0000000..a0c5006
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_vrpOneDepot.po
@@ -0,0 +1,112 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:14
+msgid "pgr_vrpOneDepot - Experimental"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:21
+msgid "**No documentation available**"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:24
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:28
+msgid "Current Result"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:34
+msgid "Data"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:41
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:43
+msgid "http://en.wikipedia.org/wiki/Vehicle_routing_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:46
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:47
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:48
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_withPoints.po b/locale/en/LC_MESSAGES/pgr_withPoints.po
new file mode 100644
index 0000000..be629d4
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_withPoints.po
@@ -0,0 +1,665 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPoints.rst:13
+msgid "pgr_withPoints - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:19
+msgid ""
+"``pgr_withPoints`` - Returns the shortest path in a graph with additional "
+"temporary vertices."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:33
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:37
+msgid ""
+"Modify the graph to include points defined by points_sql. Using Dijkstra "
+"algorithm, find the shortest path(s)"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:41
+msgid "Characteristics:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:43
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:45
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:46
+msgid "Vertices of the graph are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:48
+msgid "**positive** when it belongs to the edges_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:49
+msgid "**negative** when it belongs to the points_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:51
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:53
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path. -"
+" The agg_cost the non included values (v, v) is 0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:56
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path: - The agg_cost the non included values (u, v) is ∞"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:59
+msgid ""
+"For optimization purposes, any duplicated value in the start_vids or "
+"end_vids are ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:60
+msgid ""
+"The returned values are ordered: - start_vid ascending - end_vid ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:64
+msgid "Running time: :math:`O(|start\\_vids|\\times(V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:68
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:81
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:87
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:92
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:90
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:91
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:92
+msgid ""
+"No **details** are given about distance of other points of points_sql query."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:100
+msgid "From point 1 to point 3"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:110
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:120
+msgid "From point 1 to vertex 3"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:132
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:141
+msgid "From point 1 to point 3 and vertex 5"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:153
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:162
+msgid "From point 1 and vertex 2  to point 3"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:172
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:182
+msgid "From point 1 and vertex 2  to point 3 and vertex 7"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:192
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPoints.rst:236
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPoints.rst:211
+#: ../../build/doc/pgr_withPoints.rst:236
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPoints.rst:211
+#: ../../build/doc/pgr_withPoints.rst:236
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPoints.rst:215
+#: ../../build/doc/pgr_withPoints.rst:216
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_withPoints.rst:249
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPoints.rst:220
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPoints.rst:222
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPoints.rst:223
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:207
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:211
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:213
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:213
+#: ../../build/doc/pgr_withPoints.rst:214
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:213
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:214
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:214
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:215
+#: ../../build/doc/pgr_withPoints.rst:240
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:215
+msgid "Starting vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:216
+#: ../../build/doc/pgr_withPoints.rst:241
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:216
+msgid "Ending vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:217
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:217
+#: ../../build/doc/pgr_withPoints.rst:218
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:217
+msgid ""
+"Array of identifiers of starting vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:218
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:218
+msgid ""
+"Array of identifiers of ending vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:219
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:219
+#: ../../build/doc/pgr_withPoints.rst:225
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:219
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:220
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:223
+msgid ""
+"(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:221
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:225
+msgid "**details**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:225
+msgid ""
+"(optional). When ``true`` the results will include the points in points_sql "
+"that are in the path. Default is ``false`` which ignores other points of the"
+" points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:231
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:233
+msgid ""
+"Returns set of ``(seq, [path_seq,] [start_vid,] [end_vid,] node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:238
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:238
+#: ../../build/doc/pgr_withPoints.rst:239
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:238
+msgid "Row sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:239
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:239
+msgid "Path sequence that indicates the relative position on the path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:240
+#: ../../build/doc/pgr_withPoints.rst:241
+#: ../../build/doc/pgr_withPoints.rst:242
+#: ../../build/doc/pgr_withPoints.rst:246
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:240
+msgid "Identifier of the starting vertex. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:241
+msgid "Identifier of the ending vertex. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:242
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:244
+msgid "Identifier of the node:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:243
+msgid "A positive value indicates the node is a vertex of edges_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:244
+msgid "A negative value indicates the node is a point of points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:246
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:247
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:247
+msgid "``-1`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:249
+#: ../../build/doc/pgr_withPoints.rst:252
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:250
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next ``node`` in the "
+"path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:250
+msgid "``0`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:252
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:253
+msgid "Aggregate cost from ``start_pid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:253
+msgid "``0`` for the first row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:260
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:262
+msgid ""
+"Which path (if any) passes in front of point 6 or vertex 6 with **right** "
+"side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:268
+msgid ""
+"Which path (if any) passes in front of point 6 or vertex 6 with **left** "
+"side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:274
+msgid ""
+"Many to many example with a twist: on undirected graph and showing details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:281
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:286
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:287
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:291
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:293
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:296
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:297
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:298
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_withPointsCost.po b/locale/en/LC_MESSAGES/pgr_withPointsCost.po
new file mode 100644
index 0000000..f478ccd
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_withPointsCost.po
@@ -0,0 +1,603 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsCost.rst:13
+msgid "pgr_withPointsCost - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:19
+msgid ""
+"``pgr_withPointsCost`` - Calculates the shortest path and returns only the "
+"aggregate cost of the shortest path(s) found, for the combination of points "
+"given."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:33
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:37
+msgid ""
+"Modify the graph to include points defined by points_sql. Using Dijkstra "
+"algorithm, return only the aggregate cost of the shortest path(s) found."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:41
+msgid "Characteristics:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:79
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:44
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:45
+msgid ""
+"Returns the sum of the costs of the shortest path for pair combination of "
+"vertices in the modified graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:46
+msgid "Vertices of the graph are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:48
+msgid "**positive** when it belongs to the edges_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:49
+msgid "**negative** when it belongs to the points_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:51
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:52
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:54
+msgid ""
+"The returned values are in the form of a set of `(start_vid, end_vid, "
+"agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:56
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:58
+msgid "The `agg_cost` in the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:60
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:62
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:64
+msgid ""
+"If the values returned are stored in a table, the unique index would be the "
+"pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:67
+msgid "For undirected graphs, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:69
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:71
+msgid ""
+"For optimization purposes, any duplicated value in the `start_vids` or "
+"`end_vids` is ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:73
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:75
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:76
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:78
+msgid "Running time: :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:82
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:92
+msgid ""
+"There is no **details** flag, unlike the other members of the withPoints "
+"family of functions."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:96
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:102
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:106
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:105
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:106
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:124
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:145
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:166
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:185
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:204
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCost.rst:246
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCost.rst:223
+#: ../../build/doc/pgr_withPointsCost.rst:246
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCost.rst:223
+#: ../../build/doc/pgr_withPointsCost.rst:246
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPointsCost.rst:227
+#: ../../build/doc/pgr_withPointsCost.rst:228
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsCost.rst:232
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsCost.rst:234
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsCost.rst:235
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:219
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:223
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:225
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:225
+#: ../../build/doc/pgr_withPointsCost.rst:226
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:225
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:226
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:226
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:227
+#: ../../build/doc/pgr_withPointsCost.rst:248
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:227
+msgid "Starting vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:228
+#: ../../build/doc/pgr_withPointsCost.rst:249
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:228
+msgid "Ending vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:229
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:229
+#: ../../build/doc/pgr_withPointsCost.rst:230
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:229
+msgid ""
+"Array of identifiers of starting vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:230
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:230
+msgid ""
+"Array of identifiers of ending vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:231
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:231
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:231
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:232
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:235
+msgid ""
+"(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:233
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:241
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:243
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:248
+#: ../../build/doc/pgr_withPointsCost.rst:249
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:248
+msgid "Identifier of the starting vertex. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:249
+msgid "Identifier of the ending point. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:250
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:250
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:250
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:256
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:258
+msgid "With **right** side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:264
+msgid "With **left** side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:270
+msgid "Does not matter driving side."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:277
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:282
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:283
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:287
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:289
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:292
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:293
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:294
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_withPointsCostMatrix.po b/locale/en/LC_MESSAGES/pgr_withPointsCostMatrix.po
new file mode 100644
index 0000000..c9bb20f
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_withPointsCostMatrix.po
@@ -0,0 +1,472 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:13
+msgid "pgr_withPointsCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:19
+msgid ""
+"``pgr_withPointsCostMatrix`` - Calculates the shortest path and returns only"
+" the aggregate cost of the shortest path(s) found, for the combination of "
+"points given."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:31
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:35
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:37
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:45
+msgid ""
+"There is no **details** flag, unlike the other members of the withPoints "
+"family of functions."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:49
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:55
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:59
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:58
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:59
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:78
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:87
+msgid "returning a symmetrical cost matrix"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:89
+msgid "Using the default **side** value on the **points_sql** query"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:90
+msgid "Using an undirected graph"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:91
+msgid "Using the default **driving_side** value"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:100
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:120
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:120
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:126
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:128
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:129
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:116
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:120
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:122
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:122
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:123
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:122
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:123
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:123
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:124
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:124
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:124
+msgid ""
+"Array of identifiers of starting vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:125
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:125
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:125
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:126
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:129
+msgid ""
+"(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:127
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:140
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:142
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:151
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:153
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:154
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:155
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:156
+msgid "`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:159
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:160
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:161
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_withPointsDD.po b/locale/en/LC_MESSAGES/pgr_withPointsDD.po
new file mode 100644
index 0000000..95b4be1
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_withPointsDD.po
@@ -0,0 +1,552 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsDD.rst:13
+msgid "pgr_withPointsDD - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:19
+msgid ""
+"``pgr_withPointsDD`` - Returns the driving distance from a starting point."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:33
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:37
+msgid ""
+"Modify the graph to include points and using Dijkstra algorithm, extracts "
+"all the nodes and points that have costs less than or equal to the value "
+"``distance`` from the starting point. The edges extracted will conform the "
+"corresponding spanning tree."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:44
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:54
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:60
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:65
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:63
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:64
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:65
+msgid "No **details** are given about distance of other points of the query."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:84
+msgid "Driving distance from a single point"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:86
+#: ../../build/doc/pgr_withPointsDD.rst:106
+msgid "Finds the driving distance depending on the optional parameters setup."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:94
+msgid "Right side driving topology"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:104
+msgid "Driving distance from many starting points"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:118
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsDD.rst:162
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsDD.rst:138
+#: ../../build/doc/pgr_withPointsDD.rst:162
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsDD.rst:138
+#: ../../build/doc/pgr_withPointsDD.rst:162
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPointsDD.rst:142
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_withPointsDD.rst:169
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+#: ../../build/doc/pgr_withPointsDD.rst:143
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsDD.rst:145
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsDD.rst:147
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsDD.rst:148
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:134
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:138
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:140
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:140
+#: ../../build/doc/pgr_withPointsDD.rst:141
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:140
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:141
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:141
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:142
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:142
+msgid "Starting point id"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:143
+msgid "**distance**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:143
+msgid "Distance from the start_pid"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:144
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:144
+#: ../../build/doc/pgr_withPointsDD.rst:150
+#: ../../build/doc/pgr_withPointsDD.rst:152
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:144
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:145
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:148
+msgid ""
+"(optional). Value in ['b', 'r', 'l', NULL] indicating if the driving side "
+"is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:146
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:150
+msgid "**details**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:150
+msgid ""
+"(optional). When ``true`` the results will include the driving distance to "
+"the points with in the ``distance``. Default is ``false`` which ignores "
+"other points of the points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:152
+msgid "**equicost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:152
+msgid ""
+"(optional). When ``true`` the nodes will only appear in the closest start_v "
+"list. Default is ``false`` which resembles several calls using the single "
+"starting point signatures. Tie brakes are arbitrary."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:157
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:159
+msgid "Returns set of ``(seq, node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:164
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:164
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:164
+msgid "row sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:165
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:165
+#: ../../build/doc/pgr_withPointsDD.rst:166
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:165
+msgid ""
+"Identifier of the node within the Distance from ``start_pid``. If ``details "
+"=: true`` a negative value is the identifier of a point."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:166
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:167
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:167
+msgid "``-1`` when ``start_vid`` = ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:169
+#: ../../build/doc/pgr_withPointsDD.rst:172
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:170
+msgid "Cost to traverse ``edge``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:170
+#: ../../build/doc/pgr_withPointsDD.rst:173
+msgid "``0`` when ``start_vid`` = ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:172
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:173
+msgid "Aggregate cost from ``start_vid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:180
+msgid ""
+"Examples for queries marked as ``directed`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:182
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:184
+msgid "Left side driving topology"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:190
+msgid "Does not matter driving side."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:199
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:204
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:205
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:209
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:211
+msgid ":ref:`pgr_drivingDistance` - Driving distance using dijkstra."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:212
+msgid ":ref:`pgr_alphashape` - Alpha shape computation."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:213
+msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:216
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:217
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:218
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/pgr_withPointsKSP.po b/locale/en/LC_MESSAGES/pgr_withPointsKSP.po
new file mode 100644
index 0000000..8202877
--- /dev/null
+++ b/locale/en/LC_MESSAGES/pgr_withPointsKSP.po
@@ -0,0 +1,571 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsKSP.rst:13
+msgid "pgr_withPointsKSP - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:19
+msgid ""
+"``pgr_withPointsKSP`` - Find the K shortest paths using Yen's algorithm."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:29
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:32
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:34
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:36
+msgid ""
+"Modifies the graph to include the points defined in the ``points_sql`` and "
+"using Yen algorithm, finds the K shortest paths."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:41
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:56
+msgid "Minimal Usage"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:62
+msgid "The minimal usage:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:59
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:60
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:61
+msgid "No **details** are given about distance of other points of the query."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:62
+msgid "No **heap paths** are returned."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:80
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:82
+msgid "Finds the K shortest paths depending on the optional parameters setup."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:91
+msgid "With details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:98
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsKSP.rst:144
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsKSP.rst:119
+#: ../../build/doc/pgr_withPointsKSP.rst:144
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsKSP.rst:119
+#: ../../build/doc/pgr_withPointsKSP.rst:144
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPointsKSP.rst:123
+#: ../../build/doc/pgr_withPointsKSP.rst:124
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_withPointsKSP.rst:153
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsKSP.rst:128
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsKSP.rst:130
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsKSP.rst:131
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:115
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:119
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:121
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:121
+#: ../../build/doc/pgr_withPointsKSP.rst:122
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:121
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:122
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:122
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:123
+msgid "**start_pid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:123
+msgid "Starting point id."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:124
+msgid "**end_pid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:124
+msgid "Ending point id."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:125
+msgid "**K**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:125
+#: ../../build/doc/pgr_withPointsKSP.rst:146
+#: ../../build/doc/pgr_withPointsKSP.rst:147
+#: ../../build/doc/pgr_withPointsKSP.rst:148
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:125
+msgid "Number of shortest paths."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:126
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:126
+#: ../../build/doc/pgr_withPointsKSP.rst:127
+#: ../../build/doc/pgr_withPointsKSP.rst:133
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:126
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:127
+msgid "**heap_paths**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:127
+msgid ""
+"(optional). When ``true`` the paths calculated to get the shortests paths "
+"will be returned also. Default is ``false`` only the K shortest paths are "
+"returned."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:128
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:131
+msgid ""
+"(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:129
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:133
+msgid "**details**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:133
+msgid ""
+"(optional). When ``true`` the results will include the driving distance to "
+"the points with in the ``distance``. Default is ``false`` which ignores "
+"other points of the points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:139
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:141
+msgid ""
+"Returns set of ``(seq, path_id, path_seq, node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:146
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:146
+msgid "Row sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:147
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:147
+msgid ""
+"Relative position in the path of node and edge. Has value 1 for the "
+"beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:148
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:148
+msgid ""
+"Path identifier. The ordering of the paths: For two paths i, j if i < j then"
+" agg_cost(i) <= agg_cost(j)."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:149
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:149
+#: ../../build/doc/pgr_withPointsKSP.rst:150
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:149
+msgid ""
+"Identifier of the node in the path. Negative values are the identifiers of a"
+" point."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:150
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:151
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:151
+msgid "``-1`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:153
+#: ../../build/doc/pgr_withPointsKSP.rst:156
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:154
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next ``node`` in the "
+"path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:154
+msgid "``0`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:156
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:157
+msgid "Aggregate cost from ``start_pid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:157
+msgid "``0`` for the first row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:164
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:166
+msgid "Left side driving topology with details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:172
+msgid "Right side driving topology with heap paths and details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:178
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:181
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:182
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:186
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:188
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:191
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:192
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:193
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/proposed.po b/locale/en/LC_MESSAGES/proposed.po
new file mode 100644
index 0000000..9f1a6f4
--- /dev/null
+++ b/locale/en/LC_MESSAGES/proposed.po
@@ -0,0 +1,410 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/proposed.rst:13
+msgid "Stable Proposed Functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:20
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:22
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:23
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:24
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:25
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:26
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:27
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:33
+msgid "As part of the :ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:35
+msgid ""
+":ref:`pgr_dijkstraCostMatrix` Use pgr_dijkstra to calculate a cost matrix."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:36
+msgid ""
+":ref:`pgr_dijkstraVia` - Use pgr_dijkstra to make a route via vertices."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:39
+msgid "Families"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:40
+msgid ":ref:`astar`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:3
+msgid ":ref:`pgr_aStar` - A* algorithm for the shortest path."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:4
+msgid ":ref:`pgr_aStarCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:5
+msgid ""
+":ref:`pgr_aStarCostMatrix` - Get the cost matrix of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:46
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:3
+msgid ":ref:`pgr_bdAstar` - Bidirectional A* algorithm for obtaining paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid ""
+":ref:`pgr_bdAstarCost` - Bidirectional A* algorithm to calculate the cost of"
+" the paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:5
+msgid ""
+":ref:`pgr_bdAstarCostMatrix` - Bidirectional A* algorithm to calculate a "
+"cost matrix of paths."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:52
+msgid ":ref:`bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:3
+msgid ""
+":ref:`pgr_bdDijkstra` - Bidirectional Dijkstra algorithm for the shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:4
+msgid ""
+":ref:`pgr_bdDijkstraCost` - Bidirectional Dijkstra to calculate the cost of "
+"the shortest paths"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:5
+msgid ""
+":ref:`pgr_bdDijkstraCostMatrix` - Bidirectional Dijkstra algorithm  to "
+"create a matrix of costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:58
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:3
+msgid ""
+":ref:`pgr_maxFlow` - Only the Max flow calculation using Push and Relabel "
+"algorithm."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:4
+msgid ""
+":ref:`pgr_BoykovKolmogorov` - Boykov and Kolmogorov with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid ""
+":ref:`pgr_EdmondsKarp` - Edmonds and Karp algorithm with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid ""
+":ref:`pgr_PushRelabel` - Push and relabel algorithm with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Applications"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:9
+msgid ""
+":ref:`pgr_edgeDisjointPaths` - Calculates edge disjoint paths between two "
+"groups of vertices."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid ""
+":ref:`pgr_maxCardinalityMatch` - Calculates a maximum cardinality matching "
+"in a graph."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:64
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:3
+msgid ":ref:`pgr_withPoints` - Route from/to points anywhere on the graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:4
+msgid ":ref:`pgr_withPointsCost` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:5
+msgid ":ref:`pgr_withPointsCostMatrix` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:6
+msgid ":ref:`pgr_withPointsKSP` - K shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:7
+msgid ":ref:`pgr_withPointsDD` - Driving distance."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:71
+msgid "categories"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:72
+msgid ":ref:`Cost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:3
+msgid ":ref:`pgr_aStarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:4
+msgid ":ref:`pgr_bdAstarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:5
+msgid ":ref:`pgr_bdDijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:6
+msgid ":ref:`pgr_dijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:7
+msgid ":ref:`pgr_withPointsCost`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:78
+msgid ":ref:`CostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:3
+msgid ":ref:`pgr_aStarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:4
+msgid ":ref:`pgr_bdAstarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:5
+msgid ":ref:`pgr_bdDijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:6
+msgid ":ref:`pgr_dijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:7
+msgid ":ref:`pgr_withPointsCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:84
+msgid ":ref:`KSP`"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:3
+msgid ":ref:`pgr_KSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:4
+msgid ":ref:`pgr_withPointsKSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:106
+msgid "Experimental Functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:111
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:113
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:114
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:116
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:117
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:118
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:119
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:120
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:121
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:122
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:123
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:124
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:125
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:126
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:127
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:132
+msgid ":ref:`contraction` - Reduce network size using contraction techniques"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:134
+msgid ""
+":ref:`pgr_contractgraph` - Reduce network size using contraction techniques"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:138
+msgid "Graph Analysis"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:139
+msgid ":ref:`pgr_labelGraph` - Analyze / label  subgraphs within a network"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:141
+msgid ":ref:`components` - Analyze components within a graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:143
+msgid ""
+":ref:`pgr_connectedComponents` - Return the connected components of an "
+"undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:144
+msgid ""
+":ref:`pgr_strongComponents` - Return the strongly connected components of a "
+"directed graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:145
+msgid ""
+":ref:`pgr_biconnectedComponents` - Return the biconnected components of an "
+"undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:146
+msgid ""
+":ref:`pgr_articulationPoints` - Return the articulation points of an "
+"undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:147
+msgid ":ref:`pgr_bridges` - Return the bridges of an undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:150
+msgid "VRP"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:151
+msgid ":ref:`pgr_gsocvrppdtw`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:152
+msgid ":ref:`pgr_vrp_basic`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:166
+msgid "Graph Transformation"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:167
+msgid ":doc:`pgr_lineGraph`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:175
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:178
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:179
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:180
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/release_notes.po b/locale/en/LC_MESSAGES/release_notes.po
new file mode 100644
index 0000000..f4a09f7
--- /dev/null
+++ b/locale/en/LC_MESSAGES/release_notes.po
@@ -0,0 +1,1278 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/release_notes.rst:13
+msgid "Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:15
+msgid ""
+"To see the full list of changes check the list of `Git commits "
+"<https://github.com/pgRouting/pgrouting/commits>`_ on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:18
+msgid "Table of contents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:21
+msgid ":ref:`changelog_2_5_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:22
+msgid ":ref:`changelog_2_4_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:23
+msgid ":ref:`changelog_2_4_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:24
+msgid ":ref:`changelog_2_4_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:25
+msgid ":ref:`changelog_2_3_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:26
+msgid ":ref:`changelog_2_3_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:27
+msgid ":ref:`changelog_2_3_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:28
+msgid ":ref:`changelog_2_2_4`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:29
+msgid ":ref:`changelog_2_2_3`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:30
+msgid ":ref:`changelog_2_2_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:31
+msgid ":ref:`changelog_2_2_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:32
+msgid ":ref:`changelog_2_2_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:33
+msgid ":ref:`changelog_2_1_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:34
+msgid ":ref:`changelog_2_0_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:35
+msgid ":ref:`changelog_2_0_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:36
+msgid ":ref:`changelog_1_x`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:43
+msgid "pgRouting 2.5.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:45
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.5.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.5.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:49
+msgid "enhancement:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:50
+msgid "pgr_version is now on SQL language"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:53
+msgid "Breaking change on:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:54
+msgid "pgr_edgeDisjointPaths:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:56
+msgid "Added path_id, cost and agg_cost columns on the result"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:57
+msgid "Parameter names changed"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:58
+msgid "The many version results are the union of the one to one version"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:61
+msgid "New Signatures:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:62
+msgid "pgr_bdAstar(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:65 ../../build/doc/release_notes.rst:223
+msgid "New Proposed functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:66
+msgid "pgr_bdAstar(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:67
+msgid "pgr_bdAstar(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:68
+msgid "pgr_bdAstar(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:69
+msgid "pgr_bdAstarCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:70
+msgid "pgr_bdAstarCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:71
+msgid "pgr_bdAstarCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:72
+msgid "pgr_bdAstarCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:73
+msgid "pgr_bdAstarCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:74
+msgid "pgr_bdDijkstra(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:75
+msgid "pgr_bdDijkstra(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:76
+msgid "pgr_bdDijkstra(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:77
+msgid "pgr_bdDijkstraCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:78
+msgid "pgr_bdDijkstraCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:79
+msgid "pgr_bdDijkstraCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:80
+msgid "pgr_bdDijkstraCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:81
+msgid "pgr_bdDijkstraCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:82
+msgid "pgr_lineGraph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:83
+msgid "pgr_connectedComponents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:84
+msgid "pgr_strongComponents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:85
+msgid "pgr_biconnectedComponents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:86
+msgid "pgr_articulationPoints"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:87
+msgid "pgr_bridges"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:90 ../../build/doc/release_notes.rst:160
+#: ../../build/doc/release_notes.rst:247
+msgid "Deprecated Signatures"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:91
+msgid "pgr_bdastar - use pgr_bdAstar instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:94
+msgid "Renamed Functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:95
+msgid "pgr_maxFlowPushRelabel - use pgr_pushRelabel instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:96
+msgid "pgr_maxFlowEdmondsKarp -use pgr_edmondsKarp instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:97
+msgid "pgr_maxFlowBoykovKolmogorov - use pgr_boykovKolmogorov instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:98
+msgid "pgr_maximumCardinalityMatching - use pgr_maxCardinalityMatch instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:101
+msgid "Deprecated function"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:102
+msgid "pgr_pointToEdgeNode"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:108
+msgid "pgRouting 2.4.2 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:110
+msgid ""
+"To see the issues closed by this release see the `Git closed milestone for "
+"2.4.2 "
+"<https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.4.2%22%20>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:113
+msgid "Improvement"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:114
+msgid "Works for postgreSQL 10"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:117 ../../build/doc/release_notes.rst:131
+#: ../../build/doc/release_notes.rst:168 ../../build/doc/release_notes.rst:522
+#: ../../build/doc/release_notes.rst:529 ../../build/doc/release_notes.rst:550
+#: ../../build/doc/release_notes.rst:557
+msgid "Bug fixes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:118
+msgid "Fixed: Unexpected error column \"cname\""
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:119
+msgid ""
+"Replace __linux__ with __GLIBC__ for glibc-specific headers and functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:126
+msgid "pgRouting 2.4.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:128
+msgid ""
+"To see the issues closed by this release see the `Git closed milestone for "
+"2.4.1 "
+"<https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.4.1%22%20>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:132
+msgid "Fixed compiling error on macOS"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:133
+msgid "Condition error on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:138
+msgid "pgRouting 2.4.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:140
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.4.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.4.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:143 ../../build/doc/release_notes.rst:213
+#: ../../build/doc/release_notes.rst:374
+msgid "New Signatures"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:144
+msgid "pgr_bdDijkstra"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:148
+msgid "New Proposed Signatures"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:149
+msgid "pgr_maxFlow"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:150
+msgid "pgr_astar(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:151
+msgid "pgr_astar(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:152
+msgid "pgr_astar(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:153
+msgid "pgr_astarCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:154
+msgid "pgr_astarCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:155
+msgid "pgr_astarCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:156
+msgid "pgr_astarCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:157
+msgid "pgr_astarCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:161
+msgid "pgr_bddijkstra - use pgr_bdDijkstra instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:164 ../../build/doc/release_notes.rst:253
+msgid "Deprecated Functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:165
+msgid "pgr_pointsToVids"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:169
+msgid "Bug fixes on proposed functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:171
+msgid "pgr_withPointsKSP: fixed ordering"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:173
+msgid "TRSP original code is used with no changes on the compilation warnings"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:178
+msgid "pgRouting 2.3.2 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:180
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.3.2 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.3.2%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:183 ../../build/doc/release_notes.rst:199
+#: ../../build/doc/release_notes.rst:269 ../../build/doc/release_notes.rst:282
+#: ../../build/doc/release_notes.rst:293 ../../build/doc/release_notes.rst:305
+#: ../../build/doc/release_notes.rst:424 ../../build/doc/release_notes.rst:455
+msgid "Bug Fixes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:184
+msgid "Fixed pgr_gsoc_vrppdtw crash when all orders fit on one truck."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:185
+msgid "Fixed pgr_trsp:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:187
+msgid "Alternate code is not executed when the point is in reality a vertex"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:188
+msgid "Fixed ambiguity on seq"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:194
+msgid "pgRouting 2.3.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:196
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.3.1 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.3.1%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:200
+msgid "Leaks on proposed max_flow functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:201
+msgid "Regression error on pgr_trsp"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:202
+msgid "Types discrepancy on pgr_createVerticesTable"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:208
+msgid "pgRouting 2.3.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:210
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.3.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.3.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:214
+msgid "pgr_TSP"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:215
+msgid "pgr_aStar"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:218 ../../build/doc/release_notes.rst:330
+msgid "New Functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:219
+msgid "pgr_eucledianTSP"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:224
+msgid "pgr_dijkstraCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:225
+msgid "pgr_withPointsCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:226
+msgid "pgr_maxFlowPushRelabel(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:227
+msgid "pgr_maxFlowPushRelabel(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:228
+msgid "pgr_maxFlowPushRelabel(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:229
+msgid "pgr_maxFlowPushRelabel(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:230
+msgid "pgr_maxFlowEdmondsKarp(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:231
+msgid "pgr_maxFlowEdmondsKarp(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:232
+msgid "pgr_maxFlowEdmondsKarp(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:233
+msgid "pgr_maxFlowEdmondsKarp(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:234
+msgid "pgr_maxFlowBoykovKolmogorov (one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:235
+msgid "pgr_maxFlowBoykovKolmogorov (one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:236
+msgid "pgr_maxFlowBoykovKolmogorov (many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:237
+msgid "pgr_maxFlowBoykovKolmogorov (many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:238
+msgid "pgr_maximumCardinalityMatching"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:239
+msgid "pgr_edgeDisjointPaths(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:240
+msgid "pgr_edgeDisjointPaths(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:241
+msgid "pgr_edgeDisjointPaths(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:242
+msgid "pgr_edgeDisjointPaths(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:243
+msgid "pgr_contractGraph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:248
+msgid "pgr_tsp - use pgr_TSP or pgr_eucledianTSP instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:249
+msgid "pgr_astar - use pgr_aStar instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:254
+msgid "pgr_flip_edges"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:255
+msgid "pgr_vidsToDmatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:256
+msgid "pgr_pointsToDMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:257
+msgid "pgr_textToPoints"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:264
+msgid "pgRouting 2.2.4 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:266
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.4 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.4%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:270
+msgid "Bogus uses of extern \"C\""
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:271
+msgid "Build error on Fedora 24 + GCC 6.0"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:272
+msgid "Regression error pgr_nodeNetwork"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:277
+msgid "pgRouting 2.2.3 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:279
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.3 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.3%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:283
+msgid "Fixed compatibility issues with PostgreSQL 9.6."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:288
+msgid "pgRouting 2.2.2 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:290
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.2 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.2%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:294
+msgid "Fixed regression error on pgr_drivingDistance"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:300
+msgid "pgRouting 2.2.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:302
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.1 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A2.2.1+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:306
+msgid "Server crash fix on pgr_alphaShape"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:307
+msgid "Bug fix on With Points family of functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:313
+msgid "pgRouting 2.2.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:315
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:319 ../../build/doc/release_notes.rst:387
+msgid "Improvements"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:320
+msgid "pgr_nodeNetwork"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:322
+msgid "Adding a row_where and outall optional parameters"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:324
+msgid "Signature fix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:326
+msgid "pgr_dijkstra  -- to match what is documented"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:331
+msgid "pgr_floydWarshall"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:332
+msgid "pgr_Johnson"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:333
+msgid "pgr_dijkstraCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:334
+msgid "pgr_dijkstraCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:335
+msgid "pgr_dijkstraCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:336
+msgid "pgr_dijkstraCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:339 ../../build/doc/release_notes.rst:391
+msgid "Proposed functionality"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:340
+msgid "pgr_withPoints(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:341
+msgid "pgr_withPoints(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:342
+msgid "pgr_withPoints(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:343
+msgid "pgr_withPoints(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:344
+msgid "pgr_withPointsCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:345
+msgid "pgr_withPointsCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:346
+msgid "pgr_withPointsCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:347
+msgid "pgr_withPointsCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:348
+msgid "pgr_withPointsDD(single vertex)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:349
+msgid "pgr_withPointsDD(multiple vertices)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:350
+msgid "pgr_withPointsKSP"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:351
+msgid "pgr_dijkstraVia"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:355
+msgid "Deprecated functions:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:356
+msgid "pgr_apspWarshall  use pgr_floydWarshall instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:357
+msgid "pgr_apspJohnson   use pgr_Johnson instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:358
+msgid "pgr_kDijkstraCost use pgr_dijkstraCost instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:359
+msgid "pgr_kDijkstraPath use pgr_dijkstra instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:362
+msgid "Renamed and deprecated function"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:363
+msgid "pgr_makeDistanceMatrix renamed to _pgr_makeDistanceMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:369
+msgid "pgRouting 2.1.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:371
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.1.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=is%3Aissue+milestone%3A%22Release+2.1.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:375
+msgid "pgr_dijkstra(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:376
+msgid "pgr_dijkstra(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:377
+msgid "pgr_dijkstra(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:378
+msgid "pgr_drivingDistance(multiple vertices)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:381
+msgid "Refactored"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:382
+msgid "pgr_dijkstra(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:383
+msgid "pgr_ksp"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:384
+msgid "pgr_drivingDistance(single vertex)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:388
+msgid ""
+"pgr_alphaShape function now can generate better (multi)polygon with holes "
+"and alpha parameter."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:392
+msgid ""
+"Proposed functions from Steve Woodbridge, (Classified as Convenience by the "
+"author.)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:394
+msgid ""
+"pgr_pointToEdgeNode - convert a point geometry to a vertex_id based on "
+"closest edge."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:395
+msgid ""
+"pgr_flipEdges - flip the edges in an array of geometries so the connect end "
+"to end."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:396
+msgid ""
+"pgr_textToPoints - convert a string of x,y;x,y;... locations into point "
+"geometries."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:397
+msgid ""
+"pgr_pointsToVids - convert an array of point geometries into vertex ids."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:398
+msgid ""
+"pgr_pointsToDMatrix - Create a distance matrix from an array of points."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:399 ../../build/doc/release_notes.rst:400
+msgid ""
+"pgr_vidsToDMatrix - Create a distance matrix from an array of vertix_id."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:402
+msgid "Added proposed functions from GSoc Projects:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:404
+msgid "pgr_vrppdtw"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:405
+msgid "pgr_vrponedepot"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:408
+msgid "Deprecated functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:409
+msgid "pgr_getColumnName"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:410
+msgid "pgr_getTableName"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:411
+msgid "pgr_isColumnCndexed"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:412
+msgid "pgr_isColumnInTable"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:413
+msgid "pgr_quote_ident"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:414
+msgid "pgr_versionless"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:415
+msgid "pgr_startPoint"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:416
+msgid "pgr_endPoint"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:417
+msgid "pgr_pointToId"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:420
+msgid "No longer supported"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:421
+msgid "Removed the 1.x legacy functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:425
+msgid "Some bug fixes in other functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:429
+msgid "Refactoring Internal Code"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:430
+msgid "A C and C++ library for developer was created"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:432
+msgid "encapsulates postgreSQL related functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:433
+msgid "encapsulates Boost.Graph graphs"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:435
+msgid "Directed Boost.Graph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:436
+msgid "Undirected Boost.graph."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:438
+msgid "allow any-integer in the id's"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:439
+msgid "allow any-numerical on the cost/reverse_cost columns"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:441
+msgid ""
+"Instead of generating many libraries: - All functions are encapsulated in "
+"one library - The library has the prefix 2-1-0"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:450
+msgid "pgRouting 2.0.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:452
+msgid "Minor bug fixes."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:456
+msgid "No track of the bug fixes were kept."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:462
+msgid "pgRouting 2.0.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:464
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.0.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.0.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:466
+msgid ""
+"With the release of pgRouting 2.0.0 the library has abandoned backwards "
+"compatibility to :ref:`pgRouting 1.x <changelog_1_x>` releases. The main "
+"Goals for this release are:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:469
+msgid "Major restructuring of pgRouting."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:470
+msgid "Standardization of the function naming"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:471
+msgid "Preparation of the project for future development."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:473
+msgid "As a result of this effort:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:475
+msgid "pgRouting has a simplified structure"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:476
+msgid "Significant new functionality has being added"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:477
+msgid "Documentation has being integrated"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:478
+msgid "Testing has being integrated"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:479
+msgid "And made it easier for multiple developers to make contributions."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:483
+msgid "Important Changes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:484
+msgid ""
+"Graph Analytics - tools for detecting and fixing connection some problems in"
+" a graph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:485
+msgid "A collection of useful utility functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:486
+msgid ""
+"Two new All Pairs Short Path algorithms (pgr_apspJohnson, pgr_apspWarshall)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:487
+msgid ""
+"Bi-directional Dijkstra and A-star search algorithms (pgr_bdAstar, "
+"pgr_bdDijkstra)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:488
+msgid "One to many nodes search (pgr_kDijkstra)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:489
+msgid "K alternate paths shortest path (pgr_ksp)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:490
+msgid ""
+"New TSP solver that simplifies the code and the build process (pgr_tsp), "
+"dropped \"Gaul Library\" dependency"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:491
+msgid "Turn Restricted shortest path (pgr_trsp) that replaces Shooting Star"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:492
+msgid "Dropped support for Shooting Star"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:493
+msgid ""
+"Built a test infrastructure that is run before major code changes are "
+"checked in"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:494
+msgid ""
+"Tested and fixed most all of the outstanding bugs reported against 1.x that "
+"existing in the 2.0-dev code base."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:495
+msgid "Improved build process for Windows"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:496
+msgid ""
+"Automated testing on Linux and Windows platforms trigger by every commit"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:497
+msgid "Modular library design"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:498
+msgid "Compatibility with PostgreSQL 9.1 or newer"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:499
+msgid "Compatibility with PostGIS 2.0 or newer"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:500
+msgid "Installs as PostgreSQL EXTENSION"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:501
+msgid "Return types re factored and unified"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:502
+msgid "Support for table SCHEMA in function parameters"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:503
+msgid "Support for ``st_`` PostGIS function prefix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:504
+msgid "Added ``pgr_`` prefix to functions and types"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:505
+msgid "Better documentation: http://docs.pgrouting.org"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:506
+msgid "shooting_star is discontinued"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:513
+msgid "pgRouting 1.x Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:515
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for 1.x "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+1.x%22+is%3Aclosed>`_"
+" on Github. The following release notes have been copied from the previous "
+"``RELEASE_NOTES`` file and are kept as a reference."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:520
+msgid "Changes for release 1.05"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:526
+msgid "Changes for release 1.03"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:528
+msgid "Much faster topology creation"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:533
+msgid "Changes for release 1.02"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:535 ../../build/doc/release_notes.rst:542
+msgid "Shooting* bug fixes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:536
+msgid "Compilation problems solved"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:540
+msgid "Changes for release 1.01"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:546
+msgid "Changes for release 1.0"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:548
+msgid "Core and extra functions are separated"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:549
+msgid "Cmake build process"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:554
+msgid "Changes for release 1.0.0b"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:556
+msgid "Additional SQL file with more simple names for wrapper functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:561
+msgid "Changes for release 1.0.0a"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:563
+msgid "Shooting* shortest path algorithm for real road networks"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:564
+msgid "Several SQL bugs were fixed"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:568
+msgid "Changes for release 0.9.9"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:570
+msgid "PostgreSQL 8.2 support"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:571
+msgid ""
+"Shortest path functions return empty result if they could not find any path"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:575
+msgid "Changes for release 0.9.8"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:577
+msgid "Renumbering scheme was added to shortest path functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:578
+msgid "Directed shortest path functions were added"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:579
+msgid "routing_postgis.sql was modified to use dijkstra in TSP search"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/routingFunctions.po b/locale/en/LC_MESSAGES/routingFunctions.po
new file mode 100644
index 0000000..3242809
--- /dev/null
+++ b/locale/en/LC_MESSAGES/routingFunctions.po
@@ -0,0 +1,134 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/routingFunctions.rst:15
+msgid "Routing Functions"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:21
+msgid ":ref:`all_pairs`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:23
+msgid ":ref:`pgr_floydWarshall` - Floyd-Warshall's Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:24
+msgid ":ref:`pgr_johnson`- Johnson’s Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:26
+msgid ":ref:`pgr_astar` - Shortest Path A*"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:28
+msgid ":ref:`pgr_bdAstar` - Bi-directional A* Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:30
+msgid ":ref:`pgr_bdDijkstra` - Bi-directional Dijkstra Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:33
+msgid ":ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:3
+msgid ":ref:`pgr_dijkstra` - Dijkstra's algorithm for the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:4
+msgid ""
+":ref:`pgr_dijkstraCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:5
+msgid ""
+":ref:`pgr_dijkstraCostMatrix` - Use pgr_dijkstra to create a costs matrix."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:6
+msgid ""
+":ref:`pgr_drivingDistance` - Use pgr_dijkstra to calculate catchament "
+"information."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:7
+msgid ""
+":ref:`pgr_ksp` - Use Yen algorithm with pgr_dijkstra to get the K shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:8
+msgid ":ref:`pgr_dijkstraVia` - Get a route of a seuence of vertices."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:39
+msgid ":ref:`pgr_ksp` - K-Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:41
+msgid ":ref:`pgr_trsp<trsp>` - Turn Restriction Shortest Path (TRSP)"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:43
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:3
+msgid ":ref:`pgr_TSP` - When input is given as matrix cell information."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:4
+msgid ":ref:`pgr_eucledianTSP` - When input are coordinates."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:49
+msgid ":ref:`drivingDistance`"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:3
+msgid ":ref:`pgr_drivingDistance` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:4
+msgid ":ref:`pgr_withPointsDD` - Driving Distance based on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:5
+msgid "Post pocessing"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:7
+msgid ":ref:`pgr_alphaShape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:8
+msgid ":ref:`pgr_points_as_polygon` - Polygon around a set of points"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:70
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:73
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:74
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:75
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/sampledata.po b/locale/en/LC_MESSAGES/sampledata.po
new file mode 100644
index 0000000..2ded9cd
--- /dev/null
+++ b/locale/en/LC_MESSAGES/sampledata.po
@@ -0,0 +1,152 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/sampledata.rst:11
+msgid "Sample Data"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:13
+msgid ""
+"The documentation provides very simple example queries based on a small "
+"sample network. To be able to execute the sample queries, run the following "
+"SQL commands to create a table with a small network data set."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:18
+msgid "Create table"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:25
+msgid "Insert data"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:32
+msgid "Topology"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:33
+msgid ""
+"Before you test a routing function use this query to create a topology "
+"(fills the ``source`` and ``target`` columns)."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:40
+msgid "Points of interest"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:41
+msgid "When points outside of the graph."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:42
+msgid "Used with the :ref:`withPoints` functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:49
+msgid "Restrictions"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:50
+msgid "Used with the :ref:`trsp` functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:57
+msgid "Categories"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:58
+msgid "Used with the :ref:`maxFlow` functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:65
+msgid "Vertex table"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:66
+msgid "Used in some deprecated signatures or deprecated functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:74
+msgid "Images"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:76
+msgid "Red arrows correspond when ``cost`` > 0 in the edge table."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:77
+msgid "Blue arrows correspond when ``reverse_cost`` > 0 in the edge table."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:78
+msgid "Points are outside the graph."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:79
+msgid "Click on the graph to enlarge."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:84
+msgid ""
+"Network for queries marked as ``directed`` and ``cost`` and ``reverse_cost``"
+" columns are used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:86
+msgid ""
+"When working with city networks, this is recommended for point of view of "
+"vehicles."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:91
+msgid "**Graph 1: Directed, with cost and reverse cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:96
+msgid ""
+"Network for queries marked as ``undirected`` and ``cost`` and "
+"``reverse_cost`` columns are used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:98
+msgid ""
+"When working with city networks, this is recommended for point of view of "
+"pedestrians."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:104
+msgid "**Graph 2: Undirected, with cost and reverse cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:109
+msgid ""
+"Network for queries marked as ``directed`` and only ``cost`` column is used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:116
+msgid "**Graph 3: Directed, with cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:121
+msgid ""
+"Network for queries marked as ``undirected`` and only ``cost`` column is "
+"used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:127
+msgid "**Graph 4: Undirected, with cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:134
+msgid "Pick & Deliver Data"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/support.po b/locale/en/LC_MESSAGES/support.po
new file mode 100644
index 0000000..4082646
--- /dev/null
+++ b/locale/en/LC_MESSAGES/support.po
@@ -0,0 +1,177 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/support.rst:13
+msgid "Support"
+msgstr ""
+
+#: ../../build/doc/support.rst:15
+msgid ""
+"pgRouting community support is available through the `pgRouting website "
+"<http://pgrouting.org/support.html>`_, `documentation "
+"<http://docs.pgrouting.org>`_, tutorials, mailing lists and others. If "
+"you’re looking for :ref:`commercial support <support_commercial>`, find "
+"below a list of companies providing pgRouting development and consulting "
+"services."
+msgstr ""
+
+#: ../../build/doc/support.rst:19
+msgid "Reporting Problems"
+msgstr ""
+
+#: ../../build/doc/support.rst:21
+msgid ""
+"Bugs are reported and managed in an `issue tracker "
+"<https://github.com/pgrouting/pgrouting/issues>`_. Please follow these "
+"steps:"
+msgstr ""
+
+#: ../../build/doc/support.rst:23
+msgid ""
+"Search the tickets to see if your problem has already been reported. If so, "
+"add any extra context you might have found, or at least indicate that you "
+"too are having the problem. This will help us prioritize common issues."
+msgstr ""
+
+#: ../../build/doc/support.rst:24
+msgid ""
+"If your problem is unreported, create a `new issue "
+"<https://github.com/pgRouting/pgrouting/issues/new>`_ for it."
+msgstr ""
+
+#: ../../build/doc/support.rst:25
+msgid ""
+"In your report include explicit instructions to replicate your issue. The "
+"best tickets include the exact SQL necessary to replicate a problem."
+msgstr ""
+
+#: ../../build/doc/support.rst:26
+msgid ""
+"If you can test older versions of PostGIS for your problem, please do. On "
+"your ticket, note the earliest version the problem appears."
+msgstr ""
+
+#: ../../build/doc/support.rst:27
+msgid ""
+"For the versions where you can replicate the problem, note the operating "
+"system and version of pgRouting, PostGIS and PostgreSQL."
+msgstr ""
+
+#: ../../build/doc/support.rst:28
+msgid ""
+"It is recommended to use the following wrapper on the problem to pin point "
+"the step that is causing the problem."
+msgstr ""
+
+#: ../../build/doc/support.rst:39
+msgid "Mailing List and GIS StackExchange"
+msgstr ""
+
+#: ../../build/doc/support.rst:41
+msgid ""
+"There are two mailing lists for pgRouting hosted on OSGeo mailing list "
+"server:"
+msgstr ""
+
+#: ../../build/doc/support.rst:43
+msgid ""
+"User mailing list: http://lists.osgeo.org/mailman/listinfo/pgrouting-users"
+msgstr ""
+
+#: ../../build/doc/support.rst:44
+msgid ""
+"Developer mailing list: http://lists.osgeo.org/mailman/listinfo/pgrouting-"
+"dev"
+msgstr ""
+
+#: ../../build/doc/support.rst:46
+msgid ""
+"For general questions and topics about how to use pgRouting, please write to"
+" the user mailing list."
+msgstr ""
+
+#: ../../build/doc/support.rst:48
+msgid ""
+"You can also ask at `GIS StackExchange <http://gis.stackexchange.com/>`_ and"
+" tag the question with ``pgrouting``. Find all questions tagged with "
+"``pgrouting`` under http://gis.stackexchange.com/questions/tagged/pgrouting "
+"or subscribe to the `pgRouting questions feed "
+"<http://gis.stackexchange.com/feeds/tag?tagnames=pgrouting&sort=newest>`_."
+msgstr ""
+
+#: ../../build/doc/support.rst:54
+msgid "Commercial Support"
+msgstr ""
+
+#: ../../build/doc/support.rst:56
+msgid ""
+"For users who require professional support, development and consulting "
+"services, consider contacting any of the following organizations, which have"
+" significantly contributed to the development of pgRouting:"
+msgstr ""
+
+#: ../../build/doc/support.rst:61
+msgid "**Company**"
+msgstr ""
+
+#: ../../build/doc/support.rst:62
+msgid "**Offices in**"
+msgstr ""
+
+#: ../../build/doc/support.rst:63
+msgid "**Website**"
+msgstr ""
+
+#: ../../build/doc/support.rst:64
+msgid "Georepublic"
+msgstr ""
+
+#: ../../build/doc/support.rst:65
+msgid "Germany, Japan"
+msgstr ""
+
+#: ../../build/doc/support.rst:66
+msgid "https://georepublic.info"
+msgstr ""
+
+#: ../../build/doc/support.rst:67
+msgid "iMaptools"
+msgstr ""
+
+#: ../../build/doc/support.rst:68 ../../build/doc/support.rst:71
+msgid "United States"
+msgstr ""
+
+#: ../../build/doc/support.rst:69
+msgid "http://imaptools.com"
+msgstr ""
+
+#: ../../build/doc/support.rst:70
+msgid "Paragon Corporation"
+msgstr ""
+
+#: ../../build/doc/support.rst:72
+msgid "http://www.paragoncorporation.com"
+msgstr ""
+
+#: ../../build/doc/support.rst:73
+msgid "Camptocamp"
+msgstr ""
+
+#: ../../build/doc/support.rst:74
+msgid "Switzerland, France"
+msgstr ""
+
+#: ../../build/doc/support.rst:75
+msgid "http://www.camptocamp.com"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/topology-functions.po b/locale/en/LC_MESSAGES/topology-functions.po
new file mode 100644
index 0000000..ac6a1b3
--- /dev/null
+++ b/locale/en/LC_MESSAGES/topology-functions.po
@@ -0,0 +1,66 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/topology-functions.rst:13
+msgid "Topology - Family of Functions"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:15
+msgid ""
+"The pgRouting's topology of a network, represented with an edge table with "
+"source and target attributes and a vertices table associated with it. "
+"Depending on the algorithm, you can create a topology or just reconstruct "
+"the vertices table, You can analyze the topology, We also provide a function"
+" to node an unoded network."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:19
+msgid ""
+":ref:`pgr_create_topology` -  to create a topology based on the geometry."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:20
+msgid ""
+":ref:`pgr_create_vert_table` - to reconstruct the vertices table based on "
+"the source and target information."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:21
+msgid ""
+":ref:`pgr_analyze_graph`  - to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:22
+msgid ":ref:`pgr_analyze_oneway` - to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:23
+msgid ":ref:`pgr_node_network`  -to create nodes to a not noded edge table."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:35
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:38
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:39
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:40
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/types_index.po b/locale/en/LC_MESSAGES/types_index.po
new file mode 100644
index 0000000..3f3faa7
--- /dev/null
+++ b/locale/en/LC_MESSAGES/types_index.po
@@ -0,0 +1,56 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/types_index.rst:13
+msgid "pgRouting Data Types"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:15
+msgid ""
+"The following are commonly used data types for some of the pgRouting "
+"functions."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:17
+msgid ""
+":ref:`type_cost_result` -  A set of records to describe a path result with "
+"cost attribute."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:18
+msgid ""
+":ref:`pgr_costResult3[] <type_cost_result3>` - A set of records to describe "
+"a path result with cost attribute."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:19
+msgid ""
+":ref:`pgr_geomResult <type_geom_result>` - A set of records to describe a "
+"path result with geometry attribute."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:30
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:33
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:34
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:35
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/en/LC_MESSAGES/withPoints-family.po b/locale/en/LC_MESSAGES/withPoints-family.po
new file mode 100644
index 0000000..3d4f303
--- /dev/null
+++ b/locale/en/LC_MESSAGES/withPoints-family.po
@@ -0,0 +1,395 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/withPoints-family.rst:14
+msgid "withPoints - Family of functions"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:16
+msgid "When points are also given as input:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:20
+msgid ":ref:`pgr_withPoints` - Route from/to points anywhere on the graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:21
+msgid ":ref:`pgr_withPointsCost` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:22
+msgid ":ref:`pgr_withPointsCostMatrix` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:23
+msgid ":ref:`pgr_withPointsKSP` - K shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:24
+msgid ":ref:`pgr_withPointsDD` - Driving distance."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:47
+msgid "Images"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:49
+msgid ""
+"The squared vertices are the temporary vertices, The temporary vertices are "
+"added acordng to the dirving side, The following images visualy show the "
+"diferences on how depending on the driving side the data is interpreted."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:53
+msgid "Right driving side"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:58
+msgid "Left driving side"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:63
+msgid "doesn't matter the driving side"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:68
+msgid "Introduction"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:70
+msgid ""
+"This famly of functions was thought for routing vehicles, but might as well "
+"work for some other application that we can not think of."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:73
+msgid ""
+"The with points family of function give you the ability to route between "
+"arbitrary points located outside the original graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:76
+msgid ""
+"When given a point identified with a `pid` that its being mapped to and edge"
+" with an identifier `edge_id`, with a `fraction` along that edge (from the "
+"source to the target of the edge) and some additional information about "
+"which `side` of the edge the point is on, then routing from arbitrary points"
+" more accurately reflect routing vehicles in road networks,"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:87
+msgid ""
+"I talk about a family of functions because it includes different "
+"functionalities."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:84
+msgid "pgr_withPoints is pgr_dijkstra based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:85
+msgid "pgr_withPointsCost is pgr_dijkstraCost based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:86
+msgid "pgr_withPointsKSP is pgr_ksp based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:87
+msgid "pgr_withPointsDD is pgr_drivingDistance based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:89
+msgid ""
+"In all this functions we have to take care of as many aspects as possible:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:91
+msgid "Must work for routing:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:93
+msgid "Cars (directed graph)"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:94
+msgid "Pedestrians (undirected graph)"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:96
+msgid "Arriving at the point:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:98
+msgid "In either side of the street."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:99
+msgid ""
+"Compulsory arrival on the side of the street where the point is located."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:101
+msgid "Countries with:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:103
+msgid "Right side driving"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:104
+msgid "Left side driving"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:106
+msgid "Some points are:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:108
+msgid ""
+"Permanent, for example the set of points of clients stored in a table in the"
+" data base"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:109
+msgid "Temporal, for example points given through a web application"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:111
+msgid "The numbering of the points are handled with negative sign."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:113
+msgid "Original point identifiers are to be positive."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:114
+msgid "Transformation to negative is done internally."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:115
+msgid "For results for involving vertices identifiers"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:117
+msgid "positive sign is a vertex of the original grpah"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:118
+msgid "negative sign is a point of the temporary points"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:120
+msgid ""
+"The reason for doing this is to avoid confusion when there is a vertex with "
+"the same number as identifier as the points identifier."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:123
+msgid "Graph & edges"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:125
+msgid ""
+"Let :math:`G_d(V,E)` where :math:`V` is the set of vertices and :math:`E` is"
+" the set of edges be the original directed graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:127
+msgid ""
+"An edge of the original `edges_sql` is :math:`(id, source, target, cost, "
+"reverse\\_cost)` will generate internally"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:129
+msgid ":math:`(id, source, target, cost)`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:130
+msgid ":math:`(id, target, source, reverse\\_cost)`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:133
+msgid "Point Definition"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:135
+msgid ""
+"A point is defined by the quadruplet: :math:`(pid, eid, fraction, side)`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:137
+msgid "**pid** is the point identifier"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:138
+msgid "**eid** is an edge id of the `edges_sql`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:139
+msgid "**fraction** represents where the edge `eid` will be cut."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:140
+msgid "**side** Indicates the side of the edge where the point is located."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:144
+msgid "Creating Temporary Vertices in the Graph"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:146
+msgid "For edge (15,  9,12  10, 20), & lets insert point (2, 12, 0.3, r)"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:149
+msgid "On a right hand side driving network"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:150
+msgid "From first image above:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:152
+msgid "We can arrive to the point only via vertex 9."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:153
+msgid "It only afects the edge (15, 9,12, 10) so that edge is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:154
+msgid "Edge (15, 12,9, 20) is kept."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:155
+#: ../../build/doc/withPoints-family.rst:167
+#: ../../build/doc/withPoints-family.rst:182
+msgid "Create new edges:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:157
+#: ../../build/doc/withPoints-family.rst:186
+msgid "(15, 9,-1, 3) edge from vertex 9 to point 1 has cost 3"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:158
+#: ../../build/doc/withPoints-family.rst:187
+msgid "(15, -1,12, 7) edge from point 1 to vertex 12 has cost 7"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:161
+msgid "On a left hand side driving network"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:162
+msgid "From second image above:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:164
+msgid "We can arrive to the point only via vertex 12."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:165
+msgid "It only afects the edge (15, 12,9 20) so that edge is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:166
+msgid "Edge (15, 9,12, 10) is kept."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:169
+#: ../../build/doc/withPoints-family.rst:184
+msgid "(15, 12,-1, 14) edge from vertex 12 to point 1 has cost 14"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:170
+#: ../../build/doc/withPoints-family.rst:185
+msgid "(15, -1,9, 6) edge from point 1 to vertex 9 has cost 6"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:172
+msgid "that fraction is from vertex 9 to vertex 12"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:176
+msgid "When driving side does not matter"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:177
+msgid "From third image above:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:179
+msgid "We can arrive to the point either via vertex 12 or via vertex 9"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:180
+msgid "Edge (15, 12,9 20) is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:181
+msgid "Edge (15, 9,12, 10) is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:190
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:193
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:194
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:195
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/KSP-category.po b/locale/es/LC_MESSAGES/KSP-category.po
new file mode 100644
index 0000000..9232738
--- /dev/null
+++ b/locale/es/LC_MESSAGES/KSP-category.po
@@ -0,0 +1,36 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/KSP-category.rst:14
+msgid "KSP Category"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:18
+msgid ":ref:`pgr_KSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:19
+msgid ":ref:`pgr_withPointsKSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:26
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:27
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:28
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/TSP-family.po b/locale/es/LC_MESSAGES/TSP-family.po
new file mode 100644
index 0000000..0f03653
--- /dev/null
+++ b/locale/es/LC_MESSAGES/TSP-family.po
@@ -0,0 +1,556 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/TSP-family.rst:13
+msgid "Traveling Sales Person - Family of functions"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:17
+msgid ":ref:`pgr_TSP` - When input is given as matrix cell information."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:18
+msgid ":ref:`pgr_eucledianTSP` - When input are coordinates."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:30
+msgid "General Information"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:33
+msgid "Origin"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:36
+msgid ""
+"The traveling sales person problem was studied in the 18th century by "
+"mathematicians"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:36
+msgid "**Sir William Rowam Hamilton** and **Thomas Penyngton  Kirkman**."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:38
+msgid ""
+"A discussion about the work of Hamilton & Kirkman can be found in the book "
+"**Graph Theory (Biggs et  al. 1976)**."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:41
+msgid "ISBN-13: 978-0198539162"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:42
+msgid "ISBN-10: 0198539169"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:44
+msgid ""
+"It is believed that the general form of the TSP have been first studied by "
+"Kalr Menger in Vienna and Harvard. The problem  was  later promoted by "
+"Hassler, Whitney  &  Merrill at Princeton. A detailed  description about the"
+" connection between Menger & Whitney, and the development of the TSP can be "
+"found in  `On the history of combinatorial optimization (till 1960) "
+"<http://www.cwi.nl/~lex/files/histco.ps>`_"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:50
+msgid "Problem Definition"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:52
+msgid ""
+"Given a collection of cities and travel cost between each pair, find the "
+"cheapest way for visiting all of the cities and returning to the starting "
+"point."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:56
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:58
+msgid "The travel costs are symmetric:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:60
+msgid ""
+"traveling costs from city A to city B are just as much as traveling from B "
+"to A."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:62
+msgid "This problem is an NP-hard optimization problem."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:64
+msgid "To calculate the number of different tours through :math:`n` cities:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:66
+msgid "Given a starting city,"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:67
+msgid "There are :math:`n-1` choices for the second city,"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:68
+msgid "And  :math:`n-2` choices for the third city, etc."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:69
+msgid ""
+"Multiplying these together we get :math:`(n-1)!  = (n-1) (n-2) . .  1`."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:70
+msgid ""
+"Now since our travel costs do not depend on the direction we take around the"
+" tour:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:72
+msgid "this number by 2"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:73
+msgid ":math:`(n-1)!/2`."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:76
+msgid "TSP & Simulated Annealing"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:78
+msgid ""
+"The simulated annealing algorithm was originally inspired from the process "
+"of annealing in metal work."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:81
+msgid ""
+"Annealing involves heating and cooling a material to alter its physical "
+"properties due to the changes in its internal structure. As the metal cools "
+"its new structure becomes fixed, consequently causing the metal to retain "
+"its newly obtained properties. [C001]_"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:88
+msgid "Pseudocode"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:89
+msgid ""
+"Given an initial solution, the simulated annealing process, will start with "
+"a high temperature and gradually cool down until the desired temperature is "
+"reached."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:92
+msgid ""
+"For each temperature, a neighbouring new solution **snew** is calculated. "
+"The higher the temperature the higher the probability of accepting the new "
+"solution as a possible bester solution."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:95
+msgid ""
+"Once the desired temperature is reached, the best solution found is returned"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:118
+msgid "pgRouting Implementation"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:120
+msgid ""
+"pgRouting's implementation adds some extra parameters to allow some exit "
+"controls within the simulated annealing process."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:123
+msgid "To cool down faster to the next temperature:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:125
+msgid ""
+"max_changes_per_temperature: limits the number of changes in the solution "
+"per temperature"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:126
+msgid ""
+"max_consecutive_non_changes: limits the number of consecutive non changes "
+"per temperature"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:128
+msgid ""
+"This is done by doing some book keeping on the times **solution = snew;** is"
+" executed."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:130
+msgid ""
+"max_changes_per_temperature: Increases by one when **solution** changes"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:131
+msgid ""
+"max_consecutive_non_changes: Reset to 0 when **solution** changes, and "
+"increased each **try**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:133
+msgid ""
+"Additionally to stop the algorithm at a higher temperature than the desired "
+"one:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:135
+msgid ""
+"max_processing_time: limits the time the simulated annealing is performed."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:136
+msgid ""
+"book keeping is done to see if there was a change in **solution** on the "
+"last temperature"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:138
+msgid ""
+"Note that, if no change was found in the first "
+"**max_consecutive_non_changes** tries, then the simulated annealing will "
+"stop."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:168
+msgid "Choosing parameters"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:170
+msgid ""
+"There is no exact rule on how the parameters have to be chose, it will "
+"depend on the special characteristics of the problem."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:173
+msgid ""
+"Your computational time is crucial, then put your time limit to "
+"**max_processing_time**."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:174
+msgid ""
+"Make the **tries_per_temperture** depending on the number of cities, for "
+"example:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:176
+msgid "Useful to estimate the time it takes to do one cycle: use `1`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:178
+msgid "this will help to set a reasonable **max_processing_time**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:180
+msgid ":math:`n * (n-1)`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:181
+msgid ":math:`500 * n`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:183
+msgid ""
+"For a faster decreasing the temperature set **cooling_factor** to a smaller "
+"number, and set to a higher number for a slower decrease."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:186
+msgid ""
+"When for the same given data the same results are needed, set **randomize** "
+"to `false`."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:188
+msgid "When estimating how long it takes to do one cycle: use `false`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:191
+msgid ""
+"A recommendation is to play with the values and see what fits to the "
+"particular data."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:196
+msgid "Description Of the Control parameters"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:198
+msgid "The control parameters are optional, and have a default value."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201 ../../build/doc/TSP-family.rst:230
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201 ../../build/doc/TSP-family.rst:230
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203 ../../build/doc/TSP-family.rst:204
+#: ../../build/doc/TSP-family.rst:233
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203 ../../build/doc/TSP-family.rst:204
+msgid "`0`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203
+msgid "The greedy part of the implementation will use this identifier."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:204
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:204
+msgid "Last visiting vertex before returning to start_vid."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205
+msgid "**max_processing_time**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205 ../../build/doc/TSP-family.rst:209
+#: ../../build/doc/TSP-family.rst:210 ../../build/doc/TSP-family.rst:211
+#: ../../build/doc/TSP-family.rst:234 ../../build/doc/TSP-family.rst:237
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205
+msgid "`+infinity`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205
+msgid "Stop the annealing processing when the value is reached."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206
+msgid "**tries_per_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206 ../../build/doc/TSP-family.rst:207
+#: ../../build/doc/TSP-family.rst:208 ../../build/doc/TSP-family.rst:232
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206
+msgid "`500`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206
+msgid "Maximum number of times a neighbor(s) is searched in each temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:207
+msgid "**max_changes_per_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:207
+msgid "`60`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:207
+msgid "Maximum number of times the solution is changed in each temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:208
+msgid "**max_consecutive_non_changes**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:208 ../../build/doc/TSP-family.rst:209
+msgid "`100`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:208
+msgid ""
+"Maximum number of consecutive times the solution is not changed in each "
+"temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:209
+msgid "**initial_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:209
+msgid "Starting temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:210
+msgid "**final_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:210
+msgid "`0.1`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:210
+msgid "Ending temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:211
+msgid "**cooling_factor**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:211
+msgid "`0.9`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:211
+msgid ""
+"Value between between 0 and 1 (not including) used to calculate the next "
+"temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "**randomize**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "`true`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "Choose the random seed"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:214
+msgid "true: Use current time as seed"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:215
+msgid ""
+"false: Use `1` as seed. Using this value will get the same results with the "
+"same data in each execution."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:225
+msgid "Description of the return columns"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:227
+msgid "Returns set of ``(seq, node, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:230
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:232
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:232
+msgid "Row sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:233
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:233
+msgid "Identifier of the node/coordinate/point."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:234
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:235
+msgid ""
+"Cost to traverse from the current ``node`` ito the next ``node`` in the path"
+" sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:235
+msgid "``0`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:237
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:238
+msgid "Aggregate cost from the ``node`` at ``seq = 1`` to the current node."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:238
+msgid "``0`` for the first row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:245
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:248
+msgid "References"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:249
+msgid ""
+"`Simulated annaeling algorithm for beginners <http://www.theprojectspot.com"
+"/tutorial-post/simulated-annealing-algorithm-for-beginners/6>`_"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:251
+msgid "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:252
+msgid "http://en.wikipedia.org/wiki/Simulated_annealing"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:255
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:256
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:257
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/aStar-family.po b/locale/es/LC_MESSAGES/aStar-family.po
new file mode 100644
index 0000000..3364e02
--- /dev/null
+++ b/locale/es/LC_MESSAGES/aStar-family.po
@@ -0,0 +1,205 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/aStar-family.rst:13
+msgid "aStar - Family of functions"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:15
+msgid ""
+"The A* (pronounced \"A Star\") algorithm is based on Dijkstra's algorithm "
+"with a heuristic that allow it to solve most shortest path problems by "
+"evaluation only a sub-set of the overall graph."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:19
+msgid ":ref:`pgr_aStar` - A* algorithm for the shortest path."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:20
+msgid ":ref:`pgr_aStarCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:21
+msgid ""
+":ref:`pgr_aStarCostMatrix` - Get the cost matrix of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:34
+msgid "The problem definition (Advanced documentation)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:36
+msgid ""
+"The A* (pronounced \"A Star\") algorithm is based on Dijkstra's algorithm "
+"with a heuristic, that is an estimation of the remaining cost from the "
+"vertex to the goal, that allows to solve most shortest path problems by "
+"evaluation only a sub-set of the overall graph. Running time: :math:`O((E + "
+"V) * \\log V)`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:46
+msgid "Heuristic"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:48
+msgid "Currently the heuristic functions available are:"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:50
+msgid "0: :math:`h(v) = 0` (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:51
+msgid "1: :math:`h(v) = abs(max(\\Delta x, \\Delta y))`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:52
+msgid "2: :math:`h(v) = abs(min(\\Delta x, \\Delta y))`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:53
+msgid "3: :math:`h(v) = \\Delta x * \\Delta x + \\Delta y * \\Delta y`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:54
+msgid "4: :math:`h(v) = sqrt(\\Delta x * \\Delta x + \\Delta y * \\Delta y)`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:55
+msgid "5: :math:`h(v) = abs(\\Delta x) + abs(\\Delta y)`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:57
+msgid "where :math:`\\Delta x = x_1 - x_0` and :math:`\\Delta y = y_1 - y_0`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:63 ../../build/doc/aStar-family.rst:76
+#: ../../build/doc/aStar-family.rst:89
+msgid "Factor"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:66
+msgid "Analysis 1"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:67
+msgid ""
+"Working with cost/reverse_cost as length in degrees, x/y in lat/lon: Factor "
+"= 1   (no need to change units)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:71
+msgid "Analysis 2"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:72
+msgid ""
+"Working with cost/reverse_cost as length in meters, x/y in lat/lon: Factor ="
+"  would depend on the location of the points:"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:76 ../../build/doc/aStar-family.rst:89
+msgid "latitude"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:76 ../../build/doc/aStar-family.rst:89
+msgid "conversion"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:78 ../../build/doc/aStar-family.rst:91
+msgid "45"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:78
+msgid "1 longitude degree is  78846.81 m"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:78
+msgid "78846"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:79 ../../build/doc/aStar-family.rst:92
+msgid "0"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:79
+msgid "1 longitude degree is 111319.46 m"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:79
+msgid "111319"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:83
+msgid "Analysis 3"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:84
+msgid ""
+"Working with cost/reverse_cost as time in seconds, x/y in lat/lon: Factor: "
+"would depend on the location of the points and on the average speed say "
+"25m/s is the speed."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:91
+msgid "1 longitude degree is (78846.81m)/(25m/s)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:91
+msgid "3153 s"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:92
+msgid "1 longitude degree is (111319.46 m)/(25m/s)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:92
+msgid "4452 s"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:98
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:100
+msgid ":ref:`pgr_aStar`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:101
+msgid ":ref:`pgr_aStarCost`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:102
+msgid ":ref:`pgr_aStarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:103
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:104
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:107
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:108
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:109
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/allpairs-family.po b/locale/es/LC_MESSAGES/allpairs-family.po
new file mode 100644
index 0000000..9749ed9
--- /dev/null
+++ b/locale/es/LC_MESSAGES/allpairs-family.po
@@ -0,0 +1,996 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/allpairs-family.rst:14
+msgid "All Pairs - Family of Functions"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:16
+msgid "The following functions work an all vertices pair combinations"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:33
+msgid "Performance"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:40
+msgid "The following tests:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:36
+msgid "non server computer"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:37
+msgid "with AMD 64 CPU"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:38
+msgid "4G memory"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:39
+msgid "trusty"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:40
+msgid "posgreSQL version 9.3"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:43
+msgid "Data"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:45
+msgid "The following data was used"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:53
+msgid "Data processing was done with osm2pgrouting-alpha"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:66
+msgid "Results"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:68
+msgid "One"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:70
+msgid ""
+"This test is not with a bounding box The density of the passed graph is "
+"extremely low. For each <SIZE> 30 tests were executed to get the average The"
+" tested query is:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:83
+#: ../../build/doc/allpairs-family.rst:140
+msgid "The results of this tests are presented as:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:85
+msgid "is the number of edges given as input."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:86
+#: ../../build/doc/allpairs-family.rst:143
+msgid "is the total number of records in the query."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:87
+#: ../../build/doc/allpairs-family.rst:144
+msgid "is the density of the data :math:`\\dfrac{E}{V \\times (V-1)}`."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:88
+#: ../../build/doc/allpairs-family.rst:145
+msgid "is the number of records returned by the queries."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:89
+#: ../../build/doc/allpairs-family.rst:146
+msgid "is the average execution time in seconds of pgr_floydWarshall."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:90
+#: ../../build/doc/allpairs-family.rst:147
+msgid "is the average execution time in seconds of pgr_johnson."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "SIZE"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "EDGES"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "DENSITY"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "OUT ROWS"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "Floyd-Warshall"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "Johnson"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+#: ../../build/doc/allpairs-family.rst:96
+msgid "500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "0.18E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "1346"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "0.14"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "0.13"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+#: ../../build/doc/allpairs-family.rst:97
+msgid "1000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "0.36E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "2655"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "0.23"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "0.18"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+#: ../../build/doc/allpairs-family.rst:98
+msgid "1500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+msgid "0.55E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+msgid "4110"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+#: ../../build/doc/allpairs-family.rst:99
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.37"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+msgid "0.34"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+#: ../../build/doc/allpairs-family.rst:99
+msgid "2000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+msgid "0.73E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+msgid "5676"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+msgid "0.56"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+#: ../../build/doc/allpairs-family.rst:100
+msgid "2500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "0.89E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "7177"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "0.84"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "0.51"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+#: ../../build/doc/allpairs-family.rst:101
+msgid "3000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "1.07E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "8778"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "1.28"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "0.68"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+#: ../../build/doc/allpairs-family.rst:102
+msgid "3500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "1.24E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "10526"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "2.08"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "0.95"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+#: ../../build/doc/allpairs-family.rst:103
+msgid "4000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "1.41E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "12484"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "3.16"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "1.24"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+#: ../../build/doc/allpairs-family.rst:104
+msgid "4500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "1.58E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "14354"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "4.49"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "1.47"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+#: ../../build/doc/allpairs-family.rst:105
+msgid "5000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "1.76E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "16503"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "6.05"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "1.78"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+#: ../../build/doc/allpairs-family.rst:106
+msgid "5500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "1.93E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "18623"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "7.53"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "2.03"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+#: ../../build/doc/allpairs-family.rst:107
+msgid "6000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "2.11E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "20710"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "8.47"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "2.37"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+#: ../../build/doc/allpairs-family.rst:108
+msgid "6500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "2.28E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "22752"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "9.99"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "2.68"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+#: ../../build/doc/allpairs-family.rst:109
+msgid "7000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "2.46E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "24687"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "11.82"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "3.12"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+#: ../../build/doc/allpairs-family.rst:110
+msgid "7500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "2.64E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "26861"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "13.94"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "3.60"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+#: ../../build/doc/allpairs-family.rst:111
+msgid "8000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "2.83E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "29050"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "15.61"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "4.09"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+#: ../../build/doc/allpairs-family.rst:112
+msgid "8500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "3.01E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "31693"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "17.43"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "4.63"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+#: ../../build/doc/allpairs-family.rst:113
+msgid "9000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "3.17E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "33879"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "19.19"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "5.34"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+#: ../../build/doc/allpairs-family.rst:114
+msgid "9500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "3.35E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "36287"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "20.77"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "6.24"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+#: ../../build/doc/allpairs-family.rst:115
+msgid "10000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "3.52E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "38491"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "23.26"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "6.51"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:119
+msgid "Two"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:121
+msgid ""
+"This test is with a bounding box The density of the passed graph higher than"
+" of the Test One. For each <SIZE> 30 tests were executed to get the average "
+"The tested edge query is:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:133
+msgid "The tested queries"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:142
+msgid "is the size of the bounding box."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "0.001"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "44"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "0.0608"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "1197"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+#: ../../build/doc/allpairs-family.rst:153
+#: ../../build/doc/allpairs-family.rst:154
+#: ../../build/doc/allpairs-family.rst:154
+msgid "0.10"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "0.002"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "99"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "0.0251"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "4330"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "0.003"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "223"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "0.0122"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "18849"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+#: ../../build/doc/allpairs-family.rst:155
+msgid "0.12"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "0.004"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "358"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "0.0085"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "71834"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+#: ../../build/doc/allpairs-family.rst:156
+msgid "0.16"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.005"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "470"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.0070"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "116290"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.22"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.19"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.006"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "639"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.0055"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "207030"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.27"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.007"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "843"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.0043"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "346930"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.64"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.38"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.008"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "996"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.0037"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "469936"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.90"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.49"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "0.009"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "1146"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "0.0032"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "613135"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "1.26"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "0.62"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "0.010"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "1360"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "0.0027"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "849304"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "1.87"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "0.82"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "0.011"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "1573"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "0.0024"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "1147101"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "2.65"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "1.04"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "0.012"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "1789"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "0.0021"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "1483629"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "3.72"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "1.35"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "0.013"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "1975"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "0.0019"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "1846897"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "4.86"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "1.68"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "0.014"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "2281"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "0.0017"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "2438298"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "7.08"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "2.28"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "0.015"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "2588"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "0.0015"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "3156007"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "10.28"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "2.80"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "0.016"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "2958"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "0.0013"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "4090618"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "14.67"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "3.76"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "0.017"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "3247"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "0.0012"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "4868919"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "18.12"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "4.48"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:174
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:176
+msgid ":ref:`pgr_johnson`"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:177
+msgid ":ref:`pgr_floydWarshall`"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:178
+msgid ""
+"`Boost floyd-Warshall "
+"<http://www.boost.org/libs/graph/doc/floyd_warshall_shortest.html>`_ "
+"algorithm"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:181
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:182
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:183
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/bdAstar-family.po b/locale/es/LC_MESSAGES/bdAstar-family.po
new file mode 100644
index 0000000..b2bd16b
--- /dev/null
+++ b/locale/es/LC_MESSAGES/bdAstar-family.po
@@ -0,0 +1,394 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Bidirectional A* - Family of functions"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid ":ref:`pgr_bdAstar` - Bidirectional A* algorithm for obtaining paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:18
+msgid ""
+":ref:`pgr_bdAstarCost` - Bidirectional A* algorithm to calculate the cost of"
+" the paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid ""
+":ref:`pgr_bdAstarCostMatrix` - Bidirectional A* algorithm to calculate a "
+"cost matrix of paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:35
+msgid ""
+"Based on A* algorithm, the bidirectional search finds a shortest path from a"
+" starting vertex (``start_vid``) to an ending vertex (``end_vid``). It runs "
+"two simultaneous searches: one forward from the ``start_vid``, and one "
+"backward from the ``end_vid``, stopping when the two meet in the middle. "
+"This implementation can be used with a directed graph and an undirected "
+"graph."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:42
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:44
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:46
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:47
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:49
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:51
+msgid "The `agg_cost` the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:53
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path:"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:55
+msgid "The `agg_cost` the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:57
+msgid "Running time (worse case scenario): :math:`O((E + V) * \\log V)`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:58
+msgid ""
+"For large graphs where there is a path bewtween the starting vertex and "
+"ending vertex:"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:60
+msgid "It is expected to terminate faster than pgr_astar"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:63
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:75
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:75
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:78 ../../build/doc/bdAstar-family.rst:80
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:72
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:75
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:77
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:77
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:77
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:78
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:78
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:79
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:79 ../../build/doc/bdAstar-family.rst:81
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:79
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:80
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:80
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:81
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:81
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:82
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:82
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:82
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:84
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:85
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:87
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:87
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:87
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:89
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:90
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:91
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:92
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:93
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:94
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:96
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:96 ../../build/doc/bdAstar-family.rst:97
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:96
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:97
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:97
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:103
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:106
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:107
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:108
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/bdDijkstra-family.po b/locale/es/LC_MESSAGES/bdDijkstra-family.po
new file mode 100644
index 0000000..67de3fa
--- /dev/null
+++ b/locale/es/LC_MESSAGES/bdDijkstra-family.po
@@ -0,0 +1,112 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/bdDijkstra-family.rst:13
+msgid "Bidirectional Dijkstra - Family of functions"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:17
+msgid ""
+":ref:`pgr_bdDijkstra` - Bidirectional Dijkstra algorithm for the shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:18
+msgid ""
+":ref:`pgr_bdDijkstraCost` - Bidirectional Dijkstra to calculate the cost of "
+"the shortest paths"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:19
+msgid ""
+":ref:`pgr_bdDijkstraCostMatrix` - Bidirectional Dijkstra algorithm  to "
+"create a matrix of costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:35
+msgid ""
+"Based on Dijkstra's algorithm, the bidirectional search finds a shortest "
+"path a starting vertex (``start_vid``) to an ending vertex (``end_vid``). It"
+" runs two simultaneous searches: one forward from the source, and one "
+"backward from the target, stopping when the two meet in the middle. This "
+"implementation can be used with a directed graph and an undirected graph."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:42
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:44
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:46
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:47
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:49
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:51
+msgid "The `agg_cost` the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:53
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path:"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:55
+msgid "The `agg_cost` the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:57
+msgid "Running time (worse case scenario): :math:`O((V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:58
+msgid ""
+"For large graphs where there is a path bewtween the starting vertex and "
+"ending vertex:"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:60
+msgid "It is expected to terminate faster than pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:63
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:66
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:67
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:68
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/components-family.po b/locale/es/LC_MESSAGES/components-family.po
new file mode 100644
index 0000000..dbca49a
--- /dev/null
+++ b/locale/es/LC_MESSAGES/components-family.po
@@ -0,0 +1,750 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/components-family.rst:13
+msgid "Components - Family of functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:22
+msgid ""
+":ref:`pgr_connectedComponents` - Return the connected components of an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:23
+msgid ""
+":ref:`pgr_strongComponents` - Return the strongly connected components of a "
+"directed graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid ""
+":ref:`pgr_biconnectedComponents` - Return the biconnected components of an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:25
+msgid ""
+":ref:`pgr_articulationPoints` - Return the articulation points of an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid ":ref:`pgr_bridges` - Return the bridges of an undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:42
+msgid "The problem definition"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:45
+msgid "Connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:46
+msgid ""
+"A connected component of an undirected graph is a set of vertices that are "
+"all reachable from each other."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:49
+#: ../../build/doc/components-family.rst:183
+#: ../../build/doc/components-family.rst:252
+#: ../../build/doc/components-family.rst:312
+msgid "**Notice**: This problem defines on an undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:51
+#: ../../build/doc/components-family.rst:117
+#: ../../build/doc/components-family.rst:185
+#: ../../build/doc/components-family.rst:254
+#: ../../build/doc/components-family.rst:314
+msgid "Given the following query:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:54
+msgid "pgr_connectedComponentsV(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:56
+#: ../../build/doc/components-family.rst:122
+#: ../../build/doc/components-family.rst:190
+#: ../../build/doc/components-family.rst:259
+#: ../../build/doc/components-family.rst:319
+msgid ""
+"where  :math:`sql = \\{(id_i, source_i, target_i, cost_i, "
+"reverse\\_cost_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:58
+#: ../../build/doc/components-family.rst:124
+#: ../../build/doc/components-family.rst:192
+#: ../../build/doc/components-family.rst:261
+#: ../../build/doc/components-family.rst:321
+msgid "and"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:60
+#: ../../build/doc/components-family.rst:126
+#: ../../build/doc/components-family.rst:194
+#: ../../build/doc/components-family.rst:263
+#: ../../build/doc/components-family.rst:323
+msgid ":math:`source = \\bigcup source_i`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:61
+#: ../../build/doc/components-family.rst:127
+#: ../../build/doc/components-family.rst:195
+#: ../../build/doc/components-family.rst:264
+#: ../../build/doc/components-family.rst:324
+msgid ":math:`target = \\bigcup target_i`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:63
+#: ../../build/doc/components-family.rst:129
+#: ../../build/doc/components-family.rst:197
+#: ../../build/doc/components-family.rst:266
+#: ../../build/doc/components-family.rst:326
+msgid "The graphs are defined as follows:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:65
+#: ../../build/doc/components-family.rst:199
+#: ../../build/doc/components-family.rst:268
+#: ../../build/doc/components-family.rst:328
+msgid "The weighted undirected graph, :math:`G(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:67
+#: ../../build/doc/components-family.rst:133
+#: ../../build/doc/components-family.rst:201
+#: ../../build/doc/components-family.rst:270
+#: ../../build/doc/components-family.rst:330
+msgid "the set of vertices  :math:`V`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:69
+#: ../../build/doc/components-family.rst:203
+#: ../../build/doc/components-family.rst:272
+#: ../../build/doc/components-family.rst:332
+msgid ":math:`V = source \\cup target`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:72
+#: ../../build/doc/components-family.rst:137
+#: ../../build/doc/components-family.rst:206
+#: ../../build/doc/components-family.rst:275
+#: ../../build/doc/components-family.rst:335
+msgid "the set of edges :math:`E`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:74
+#: ../../build/doc/components-family.rst:208
+#: ../../build/doc/components-family.rst:277
+#: ../../build/doc/components-family.rst:337
+msgid ""
+":math:`E = \\begin{cases} &\\{(source_i, target_i, cost_i) \\text{ when } "
+"cost >=0 \\} \\\\ \\cup &\\{(target_i, source_i, cost_i) \\text{ when } cost"
+" >=0 \\}  &\\quad  \\text{ if } reverse\\_cost = \\varnothing \\\\ \\\\ "
+"&\\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} \\\\ \\cup "
+"&\\{(target_i, source_i, cost_i) \\text{ when } cost >=0 \\} \\\\ \\cup "
+"&\\{(target_i, source_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i "
+">=0)\\} \\\\ \\cup &\\{(source_i, target_i, reverse\\_cost_i) \\text{ when }"
+" reverse\\_cost_i >=0)\\} &\\quad \\text{ if } reverse\\_cost \\neq "
+"\\varnothing \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:77
+#: ../../build/doc/components-family.rst:142
+#: ../../build/doc/components-family.rst:211
+#: ../../build/doc/components-family.rst:280
+#: ../../build/doc/components-family.rst:340
+msgid "Given:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:79
+#: ../../build/doc/components-family.rst:144
+#: ../../build/doc/components-family.rst:213
+#: ../../build/doc/components-family.rst:282
+#: ../../build/doc/components-family.rst:342
+msgid ":math:`G(V,E)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:81
+#: ../../build/doc/components-family.rst:146
+#: ../../build/doc/components-family.rst:215
+#: ../../build/doc/components-family.rst:284
+#: ../../build/doc/components-family.rst:344
+msgid "Then:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:89
+#: ../../build/doc/components-family.rst:154
+#: ../../build/doc/components-family.rst:223
+msgid ":math:`\\boldsymbol{\\pi} = \\{(component_i, n\\_seq_i, node_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:98
+#: ../../build/doc/components-family.rst:163
+#: ../../build/doc/components-family.rst:232
+#: ../../build/doc/components-family.rst:298
+#: ../../build/doc/components-family.rst:358
+msgid "where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:92
+msgid ":math:`component_i = \\min \\{node_j | node_j \\in component_i\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:93
+#: ../../build/doc/components-family.rst:158
+#: ../../build/doc/components-family.rst:227
+msgid ""
+":math:`n\\_seq_i` is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:94
+#: ../../build/doc/components-family.rst:159
+msgid ":math:`node_i \\in component_i`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:95
+#: ../../build/doc/components-family.rst:160
+#: ../../build/doc/components-family.rst:229
+#: ../../build/doc/components-family.rst:296
+#: ../../build/doc/components-family.rst:356
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:97
+#: ../../build/doc/components-family.rst:162
+#: ../../build/doc/components-family.rst:231
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:98
+#: ../../build/doc/components-family.rst:163
+#: ../../build/doc/components-family.rst:298
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:103
+#: ../../build/doc/components-family.rst:170
+#: ../../build/doc/components-family.rst:239
+#: ../../build/doc/components-family.rst:301
+#: ../../build/doc/components-family.rst:361
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:101
+msgid "The first component is composed of nodes ``0``, ``1`` and ``4``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:102
+msgid "The second component is composed of node ``3``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:103
+msgid "The third component is composed of nodes ``2`` and ``5``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:111
+msgid "Strongly connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:112
+msgid ""
+"A strongly connected component of a directed graph is a set of vertices that"
+" are all reachable from each other."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:115
+msgid "**Notice**: This problem defines on a directed graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:120
+msgid "pgr_strongComponentsV(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:131
+msgid "The weighted directed graph, :math:`G_d(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:135
+msgid ":math:`V = source \\cup target \\cup {start_{vid}} \\cup  {end_{vid}}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:139
+msgid ""
+":math:`E = \\begin{cases} &\\{(source_i, target_i, cost_i) \\text{ when } "
+"cost >=0 \\} &\\quad  \\text{ if } reverse\\_cost = \\varnothing \\\\ \\\\ "
+"&\\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} \\\\ \\cup "
+"&\\{(target_i, source_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i "
+">=0)\\} &\\quad \\text{ if } reverse\\_cost \\neq \\varnothing \\\\ "
+"\\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:157
+#: ../../build/doc/components-family.rst:226
+msgid ":math:`component_i = \\min {node_j | node_j \\in component_i}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:166
+msgid "The first component is composed of nodes ``1``, ``2`` and ``4``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:167
+msgid "The second component is composed of node ``0``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:168
+msgid "The third component is composed of node ``3``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:169
+msgid "The fourth component is composed of node ``5``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:170
+msgid "The fifth component is composed of node ``6``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:177
+msgid "Biconnected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:178
+msgid ""
+"The biconnected components of an undirected graph are the maximal subsets of"
+" vertices such that the removal of a vertex from particular component will "
+"not disconnect the component. Unlike connected components, vertices may "
+"belong to multiple biconnected components. Vertices can be present in "
+"multiple biconnected components, but each edge can only be contained in a "
+"single biconnected component. So, the output only has edge version."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:188
+msgid "pgr_biconnectedComponents(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:228
+msgid ":math:`edge_i \\in component_i`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:232
+#: ../../build/doc/components-family.rst:358
+msgid "`edge` ascending"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:235
+msgid ""
+"The first component is composed of edges ``1 - 2``, ``0 - 1`` and ``0 - 2``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:236
+msgid ""
+"The second component is composed of edges ``2 - 4``, ``2 - 3`` and ``3 - "
+"4``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:237
+msgid "The third component is composed of edge ``5 - 6``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:238
+msgid "The fourth component is composed of edge ``6 - 7``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:239
+msgid ""
+"The fifth component is composed of edges ``8 - 9``, ``9 - 10`` and ``8 - "
+"10``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:246
+msgid "Articulation Points"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:247
+msgid ""
+"Those vertices that belong to more than one biconnected component are called"
+" articulation points or, equivalently, cut vertices. Articulation points are"
+" vertices whose removal would increase the number of connected components in"
+" the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:257
+msgid "pgr_articulationPoints(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:292
+msgid ":math:`\\boldsymbol{\\pi} = \\{node_i\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:295
+msgid ":math:`node_i` is an articulation point."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:301
+msgid "Articulation points are nodes ``2`` and ``6``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:308
+msgid "Bridges"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:309
+msgid ""
+"A bridge is an edge of an undirected graph whose deletion increases its "
+"number of connected components."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:317
+msgid "pgr_bridges(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:352
+msgid ":math:`\\boldsymbol{\\pi} = \\{edge_i\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:355
+msgid ":math:`edge_i` is an edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:361
+msgid "Bridges are edges ``5 <--> 6`` and ``6 <--> 7``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:370
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:372
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:421
+#: ../../build/doc/components-family.rst:440
+#: ../../build/doc/components-family.rst:458
+#: ../../build/doc/components-family.rst:474
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:405
+#: ../../build/doc/components-family.rst:421
+#: ../../build/doc/components-family.rst:440
+#: ../../build/doc/components-family.rst:458
+#: ../../build/doc/components-family.rst:474
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:405
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:405
+#: ../../build/doc/components-family.rst:421
+#: ../../build/doc/components-family.rst:440
+#: ../../build/doc/components-family.rst:458
+#: ../../build/doc/components-family.rst:474
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:377
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:377
+#: ../../build/doc/components-family.rst:378
+#: ../../build/doc/components-family.rst:379
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:377
+#: ../../build/doc/components-family.rst:445
+#: ../../build/doc/components-family.rst:477
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:378
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:378
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:379
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:379
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:380
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:380
+#: ../../build/doc/components-family.rst:384
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:380
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:382
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:384
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:384
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:384
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:386
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:390
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:392
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:393
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:402
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:405
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:407
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:407
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:407
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:416
+msgid ""
+"Description of the return values for connected components and strongly "
+"connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:418
+msgid "Returns set of ``(seq, component, n_seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:423
+#: ../../build/doc/components-family.rst:442
+#: ../../build/doc/components-family.rst:460
+#: ../../build/doc/components-family.rst:476
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:423
+#: ../../build/doc/components-family.rst:425
+#: ../../build/doc/components-family.rst:442
+#: ../../build/doc/components-family.rst:444
+#: ../../build/doc/components-family.rst:460
+#: ../../build/doc/components-family.rst:476
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:423
+#: ../../build/doc/components-family.rst:442
+#: ../../build/doc/components-family.rst:460
+#: ../../build/doc/components-family.rst:476
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:424
+#: ../../build/doc/components-family.rst:443
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:424
+#: ../../build/doc/components-family.rst:426
+#: ../../build/doc/components-family.rst:443
+#: ../../build/doc/components-family.rst:445
+#: ../../build/doc/components-family.rst:461
+#: ../../build/doc/components-family.rst:477
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:424
+msgid ""
+"Component identifier. It is equal to the minimum node identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:425
+#: ../../build/doc/components-family.rst:444
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:425
+#: ../../build/doc/components-family.rst:444
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:426
+#: ../../build/doc/components-family.rst:461
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:426
+#: ../../build/doc/components-family.rst:461
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:435
+msgid ""
+"Description of the return values for biconnected components, connected "
+"components (edge version) and strongly connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:437
+msgid "Returns set of ``(seq, component, n_seq, edge)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:443
+msgid ""
+"Component identifier. It is equal to the minimum edge identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:445
+#: ../../build/doc/components-family.rst:477
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:453
+msgid "Description of the return values for articulation points"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:455
+#: ../../build/doc/components-family.rst:471
+msgid "Returns set of ``(seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:469
+msgid "Description of the return values for bridges"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:483
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:486
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:487
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:488
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/contraction-family.po b/locale/es/LC_MESSAGES/contraction-family.po
new file mode 100644
index 0000000..182343c
--- /dev/null
+++ b/locale/es/LC_MESSAGES/contraction-family.po
@@ -0,0 +1,745 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/contraction-family.rst:14
+msgid "Contraction - Family of functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:21
+msgid ":ref:`pgr_contractGraph`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:29
+msgid "Introduction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:31
+msgid ""
+"In big graphs, like the road graphs, or electric networks, graph contraction"
+" can be used to speed up some graph algorithms. Contraction reduces the size"
+" of the graph by removing some of the vertices and edges and, for example, "
+"might add edges that represent a sequence of original edges decreasing the "
+"total time and space used in graph algorithms."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:33
+msgid ""
+"This implementation gives a flexible framework for adding contraction "
+"algorithms in the future, currently, it supports two algorithms:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:35
+#: ../../build/doc/contraction-family.rst:46
+msgid "Dead end contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:36
+#: ../../build/doc/contraction-family.rst:166
+msgid "Linear contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:38
+msgid "Allowing the user to:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:40
+msgid "Forbid contraction on a set of nodes."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:41
+msgid ""
+"Decide the order of the contraction algorithms and set the maximum number of"
+" times they are to be executed."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:43
+msgid "UNDER DISCUSSION:  Forbid contraction on a set of edges"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:47
+msgid "In the algorithm, dead end contraction is represented by 1."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:50
+msgid "Dead end nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:52
+msgid ""
+"The definition of a dead end node is different for a directed and an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:54
+msgid "In case of a undirected graph, a node is considered a dead end node if"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:56
+msgid "The number of adjacent vertices is 1."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:58
+msgid "In case of an directed graph, a node is considered a dead end node if"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:60
+msgid "There are no outgoing edges and has at least one incoming edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:61
+msgid "There is one incoming and one outgoing edge with the same identifier."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:64
+#: ../../build/doc/contraction-family.rst:178
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:65
+msgid "The green node ``B`` represents a dead end node"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:66
+msgid "The node ``A`` is the only node connecting to ``B``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:67
+#: ../../build/doc/contraction-family.rst:181
+msgid ""
+"Node ``A`` is part of the rest of the graph and has an unlimited number of "
+"incoming and outgoing edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:68
+#: ../../build/doc/contraction-family.rst:183
+msgid "Directed graph"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:86
+msgid "Operation: Dead End Contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:88
+msgid ""
+"The dead end contraction will stop until there are no more dead end nodes. "
+"For example from the following graph:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:91
+#: ../../build/doc/contraction-family.rst:208
+msgid ""
+"Node ``A`` is connected to the rest of the graph by an unlimited number of "
+"edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:92
+msgid ""
+"Node ``B`` is connected to the rest of the graph with one incoming edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:93
+msgid "Node ``B`` is the only node connecting to ``C``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:94
+msgid "The green node ``C`` represents a `Dead End` node"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:113
+msgid ""
+"After contracting ``C``, node ``B`` is now a `Dead End` node and is "
+"contracted:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:129
+msgid "Node ``B`` gets contracted"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:143
+msgid "Nodes ``B`` and ``C`` belong to node ``A``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:148
+msgid "Not Dead End nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:150
+msgid "In this graph ``B`` is not a `dead end` node."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:167
+msgid "In the algorithm, linear contraction is represented by 2."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:170
+msgid "Linear nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:172
+msgid "A node is considered a linear node if satisfies the following:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:174
+msgid "The number of adjacent vertices are 2."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:175
+msgid "Should have at least one incoming edge and one outgoing edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:179
+msgid "The green node ``B`` represents a linear node"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:180
+msgid "The nodes ``A`` and ``C`` are the only nodes connecting to ``B``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:182
+msgid ""
+"Node ``C`` is part of the rest of the graph and has an unlimited number of "
+"incoming and outgoing edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:203
+msgid "Operation: Linear Contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:205
+msgid ""
+"The linear contraction will stop until there are no more linear nodes. For "
+"example from the following graph:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:209
+msgid ""
+"Node ``B`` is connected to the rest of the graph with one incoming edge and "
+"one outgoing edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:210
+msgid ""
+"Node ``C`` is connected to the rest of the graph with one incoming edge and "
+"one outgoing edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:211
+msgid ""
+"Node ``D`` is connected to the rest of the graph by an unlimited number of "
+"edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:212
+msgid "The green nodes ``B`` and ``C`` represents `Linear` nodes."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:234
+msgid ""
+"After contracting ``B``, a new edge gets inserted between ``A`` and ``C`` "
+"which is represented by red color."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:254
+msgid "Node ``C`` is `linear node` and gets contracted."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:272
+msgid ""
+"Nodes ``B`` and ``C`` belong to edge connecting ``A`` and ``D`` which is "
+"represented by red color."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:275
+msgid "Not Linear nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:277
+msgid "In this graph ``B`` is not a `linear` node."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:298
+msgid "The cycle"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:300
+msgid ""
+"Contracting a graph, can be done with more than one operation. The order of "
+"the operations affect the resulting contracted graph, after applying one "
+"operation, the set of vertices that can be contracted by another operation "
+"changes."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:302
+msgid ""
+"This implementation, cycles ``max_cycles`` times through "
+"``operations_order`` ."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:315
+msgid "Contracting Sample Data"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:317
+msgid ""
+"In this section, building and using a contracted graph will be shown by "
+"example."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:319
+msgid "The :doc:`sampledata` for an undirected graph is used"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:320
+msgid "a dead end operation first followed by a linear operation."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:322
+msgid "The original graph:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:326
+msgid "After doing a dead end contraction operation:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:330
+msgid "Doing a linear contraction operation to the graph above"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:335
+msgid ""
+"There are five cases, in this documentation, which arise when calculating "
+"the shortest path between a given source and target. In this examples, "
+"``pgr_dijkstra`` is used."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:338
+msgid "**Case 1**: Both source and target belong to the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:339
+msgid ""
+"**Case 2**: Source belongs to a contracted graph, while target belongs to a "
+"edge subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:340
+msgid ""
+"**Case 3**: Source belongs to a vertex subgraph, while target belongs to an "
+"edge subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:341
+msgid ""
+"**Case 4**: Source belongs to a contracted graph, while target belongs to an"
+" vertex subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:342
+msgid ""
+"**Case 5**: The path contains a new edge added by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:345
+msgid "Construction of the graph in the database"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:348
+msgid "Original Data"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:349
+msgid ""
+"The following query shows the original data involved in the contraction "
+"operation."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:356
+msgid "Contraction Results"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:361
+msgid ""
+"The above results do not represent the contracted graph. They represent the "
+"changes done to the graph after applying the contraction algorithm. We can "
+"see that vertices like 6 and 11 do not appear in the contraction results "
+"because they were not affected by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:364
+msgid "step 1"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:365
+msgid ""
+"Adding extra columns to the ``edge_table`` and ``edge_table_vertices_pgr`` "
+"tables:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:368
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:368
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:370
+msgid "**contracted_vertices**"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:370
+msgid "The vertices set belonging to the vertex/edge"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:371
+#: ../../build/doc/contraction-family.rst:372
+msgid "**is_contracted**"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:371
+msgid ""
+"On a `vertex` table: when ``true`` the vertex is contracted, so is not part "
+"of the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:372
+msgid ""
+"On an `edge` table: when ``true`` the edge was generated by the contraction "
+"algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:375
+msgid "Using the following queries:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:382
+msgid "step 2"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:383
+msgid ""
+"For simplicity, in this documentation, store the results of the call to "
+"pgr_contractGraph in a temporary table"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:390
+msgid "step 3"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:391
+msgid ""
+"Update the `vertex` and `edge` tables using the results of the call to "
+"pgr_contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:393
+msgid ""
+"In `edge_table_vertices_pgr.is_contracted` indicate the vertices that are "
+"contracted."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:399
+msgid ""
+"Add to `edge_table_vertices_pgr.contracted_vertices`  the contracted "
+"vertices belonging to the vertices."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:405
+msgid "Insert the new edges generated by  pgr_contractGraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:412
+msgid "step 3.1"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:413
+msgid "Verify visually the updates."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:415
+msgid "On the `edge_table_vertices_pgr`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:421
+msgid "On the `edge_table`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:427
+msgid ""
+"vertices that belong to the contracted graph are the non contracted vertices"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:434
+msgid "case 1: Both source and target belong to the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:435
+msgid ""
+"Inspecting the contracted graph above, vertex 3 and vertex 11 are part of "
+"the contracted graph. In the following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:437
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:438
+#: ../../build/doc/contraction-family.rst:452
+#: ../../build/doc/contraction-family.rst:469
+#: ../../build/doc/contraction-family.rst:485
+#: ../../build/doc/contraction-family.rst:507
+msgid ""
+"when selecting the edges, only edges that have the source and the target in "
+"that set are the edges belonging to the contracted graph, that is done in "
+"the WHERE clause."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:440
+msgid ""
+"Visually, looking at the original graph, going from 3 to 11: 3 -> 6 -> 11, "
+"and in the contracted graph, it is also 3 -> 6 -> 11. The results, on the "
+"contracted graph match the results as if it was done on the original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:448
+msgid ""
+"case 2: Source belongs to the contracted graph, while target belongs to a "
+"edge subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:452
+msgid ""
+"Inspecting the contracted graph above, vertex 3 is part of the contracted "
+"graph and vertex 1 belongs to the contracted subgraph of edge 19. In the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:450
+msgid ""
+"expand1 holds the contracted vertices of the edge where vertex 1 belongs. "
+"(belongs to edge 19)."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:451
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph and "
+"also the contracted vertices of edge 19."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:454
+msgid ""
+"Visually, looking at the original graph, going from 3 to 1: 3 -> 2 -> 1, and"
+" in the contracted graph, it is also 3 -> 2 -> 1. The results, on the "
+"contracted graph match the results as if it was done on the original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:463
+msgid ""
+"case 3: Source belongs to a vertex subgraph, while target belongs to an edge"
+" subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:464
+msgid ""
+"Inspecting the contracted graph above, vertex 7 belongs to the contracted "
+"subgraph of vertex 5 and vertex 13 belongs to the contracted subgraph of "
+"edge 21. In the following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:466
+#: ../../build/doc/contraction-family.rst:483
+msgid ""
+"expand7 holds the contracted vertices of vertex where vertex 7 belongs. "
+"(belongs to vertex 5)"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:467
+msgid ""
+"expand13 holds the contracted vertices of edge where vertex 13 belongs. "
+"(belongs to edge 21)"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:468
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph, "
+"contracted vertices of vertex 5 and contracted vertices of edge 21."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:471
+msgid ""
+"Visually, looking at the original graph, going from 7 to 13: 7 -> 8 -> 5 -> "
+"10 -> 13, and in the contracted graph, it is also 7 -> 8 -> 5 -> 10 -> 13. "
+"The results, on the contracted graph match the results as if it was done on "
+"the original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:480
+msgid ""
+"case 4: Source belongs to the contracted graph, while target belongs to an "
+"vertex subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:481
+msgid ""
+"Inspecting the contracted graph above, vertex 3 is part of the contracted "
+"graph and vertex 7 belongs to the contracted subgraph of vertex 5. In the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:484
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph and "
+"the contracted vertices of vertex 5."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:487
+msgid ""
+"Visually, looking at the original graph, going from 3 to 7: 3 -> 2 -> 5 -> 8"
+" -> 7, but in the contracted graph, it is 3 -> 5 -> 8 -> 7. The results, on "
+"the contracted graph do not match the results as if it was done on the "
+"original graph. This is because the path contains edge 19 which is added by "
+"the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:495
+msgid "case 5: The path contains an edge added by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:496
+msgid ""
+"In the previous example we can see that the path from vertex 3 to vertex 7 "
+"contains an edge which is added by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:502
+msgid ""
+"Inspecting the contracted graph above, edge 19 should be expanded. In the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:504
+msgid "first_dijkstra holds the results of the dijkstra query."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:505
+msgid ""
+"edges_to_expand holds the edges added by the contraction algorithm and "
+"included in the path."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:506
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph, "
+"vertices of the contracted solution and the contracted vertices of the edges"
+" added by the contraction algorithm and included in the contracted solution."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:509
+msgid ""
+"Visually, looking at the original graph, going from 3 to 7: 3 -> 2 -> 5 -> 8"
+" -> 7, and in the contracted graph, it is also 3 -> 2 -> 5 -> 8 -> 7. The "
+"results, on the contracted graph match the results as if it was done on the "
+"original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:517
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:519
+msgid ""
+"http://www.cs.cmu.edu/afs/cs/academic/class/15210-f12/www/lectures/lecture16.pdf"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:520
+msgid "http://algo2.iti.kit.edu/documents/routeplanning/geisberger_dipl.pdf"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:521
+msgid ""
+"The queries use :ref:`pgr_contractGraph` function and the :doc:`sampledata` "
+"network."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:524
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:525
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:526
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/cost-category.po b/locale/es/LC_MESSAGES/cost-category.po
new file mode 100644
index 0000000..efea606
--- /dev/null
+++ b/locale/es/LC_MESSAGES/cost-category.po
@@ -0,0 +1,178 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/cost-category.rst:13
+msgid "Cost - Category"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:17
+msgid ":ref:`pgr_aStarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:18
+msgid ":ref:`pgr_bdAstarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:19
+msgid ":ref:`pgr_bdDijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:20
+msgid ":ref:`pgr_dijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:21
+msgid ":ref:`pgr_withPointsCost`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:30
+msgid "General Information"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:34
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:36
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:38
+msgid "Each function works as part of the family it belongs to."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:39
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:40
+msgid ""
+"Returns the sum of the costs of the resulting path(s) for pair combination "
+"of nodes in the graph."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:41
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:42
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:44
+msgid ""
+"The returned values are in the form of a set of `(start_vid, end_vid, "
+"agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:46
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:48
+msgid "The `agg_cost` int the non included values `(v, v)` is `0`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:50
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:52
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:54
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:56
+msgid ""
+"Depending on the function and its parameters, the results can be symmetric."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:58
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:60
+msgid "Any duplicated value in the `start_vids` or in `end_vids` are ignored."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:62
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:64
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:65
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:70
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:73
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:74
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:75
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/costMatrix-category.po b/locale/es/LC_MESSAGES/costMatrix-category.po
new file mode 100644
index 0000000..ad36b5e
--- /dev/null
+++ b/locale/es/LC_MESSAGES/costMatrix-category.po
@@ -0,0 +1,237 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/costMatrix-category.rst:13
+msgid "Cost Matrix - Category"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:17
+msgid ":ref:`pgr_aStarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:18
+msgid ":ref:`pgr_bdAstarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:19
+msgid ":ref:`pgr_bdDijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:20
+msgid ":ref:`pgr_dijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:21
+msgid ":ref:`pgr_withPointsCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:40
+msgid "General Information"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:43
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:45
+msgid ""
+":ref:`tsp` needs as input a symmetric cost matrix and no edge `(u, v)` must "
+"value :math:`\\infty`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:47
+msgid ""
+"This collection of functions will return a cost matrix in form of a table."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:51
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:53
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:55
+msgid "Can be used as input to :ref:`pgr_tsp`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:57
+msgid ""
+"when the resulting matrix is symmetric and there is no :math:`\\infty` "
+"value."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:58
+msgid "It will be the users responsibility to make the matrix symmetric."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:60
+msgid "By using geometric or harmonic average of the non symmetric values."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:61
+msgid "By using max or min the non symmetric values."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:62
+msgid ""
+"By setting the upper triangle to be the mirror image of the lower triangle."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:63
+msgid ""
+"By setting the lower triangle to be the mirror image of the upper triangle."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:65
+msgid "It is also the users responsibility to fix an :math:`\\infty` value."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:67
+msgid "Each function works as part of the family it belongs to."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:68
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:69
+msgid ""
+"Returns the sum of the costs of the shortest path for pair combination of "
+"nodes in the graph."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:70
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:71
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:73
+msgid ""
+"The returned values are in the form of a set of `(start_vid, end_vid, "
+"agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:75
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:77
+msgid "The `agg_cost` int the non included values `(v, v)` is `0`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:79
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:81
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:83
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:85
+msgid ""
+"Depending on the function and its parameters, the results can be symmetric."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:87
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:89
+msgid "Any duplicated value in the `start_vids` are ignored."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:91
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:93
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:94
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:96
+msgid "Running time: approximately :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:101
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:103
+msgid ":ref:`pgr_tsp`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:106
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:107
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:108
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/cost_result.po b/locale/es/LC_MESSAGES/cost_result.po
new file mode 100644
index 0000000..cfc1232
--- /dev/null
+++ b/locale/es/LC_MESSAGES/cost_result.po
@@ -0,0 +1,92 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/cost_result.rst:13
+msgid "pgr_costResult[]"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:19 ../../build/doc/cost_result.rst:52
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:21
+msgid ""
+"``pgr_costResult[]`` — A set of records to describe a path result with cost "
+"attribute."
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:25 ../../build/doc/cost_result.rst:58
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:37 ../../build/doc/cost_result.rst:71
+msgid "sequential ID indicating the path order"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:38 ../../build/doc/cost_result.rst:73
+msgid "generic name, to be specified by the function, typically the node id"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:39 ../../build/doc/cost_result.rst:74
+msgid "generic name, to be specified by the function, typically the edge id"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:40 ../../build/doc/cost_result.rst:75
+msgid "cost attribute"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:46
+msgid "pgr_costResult3[] - Multiple Path Results with Cost"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:54
+msgid ""
+"``pgr_costResult3[]`` — A set of records to describe a path result with cost"
+" attribute."
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:72
+msgid "generic name, to be specified by the function, typically the path id"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:79
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:80
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:81
+msgid "Replaces ``path_result``"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:85
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:87
+msgid ":ref:`introduction`"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:90
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:91
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:92
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/dijkstra-family.po b/locale/es/LC_MESSAGES/dijkstra-family.po
new file mode 100644
index 0000000..a9fa495
--- /dev/null
+++ b/locale/es/LC_MESSAGES/dijkstra-family.po
@@ -0,0 +1,262 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/dijkstra-family.rst:13
+msgid "Dijkstra - Family of functions"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:17
+msgid ":ref:`pgr_dijkstra` - Dijkstra's algorithm for the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:18
+msgid ""
+":ref:`pgr_dijkstraCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:19
+msgid ""
+":ref:`pgr_dijkstraCostMatrix` - Use pgr_dijkstra to create a costs matrix."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:20
+msgid ""
+":ref:`pgr_drivingDistance` - Use pgr_dijkstra to calculate catchament "
+"information."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:21
+msgid ""
+":ref:`pgr_ksp` - Use Yen algorithm with pgr_dijkstra to get the K shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:22
+msgid ":ref:`pgr_dijkstraVia` - Get a route of a seuence of vertices."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:39
+msgid "The problem definition (Advanced documentation)"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:42
+msgid "Given the following query:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:45
+msgid "pgr_dijkstra(:math:`sql, start_{vid}, end_{vid}, directed`)"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:47
+msgid ""
+"where  :math:`sql = \\{(id_i, source_i, target_i, cost_i, "
+"reverse\\_cost_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:49
+msgid "and"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:51
+msgid ":math:`source = \\bigcup source_i`,"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:52
+msgid ":math:`target = \\bigcup target_i`,"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:54
+msgid "The graphs are defined as follows:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:57
+msgid "Directed graph"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:58
+msgid "The weighted directed graph, :math:`G_d(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:60
+#: ../../build/doc/dijkstra-family.rst:79
+msgid "the set of vertices  :math:`V`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:62
+msgid ":math:`V = source \\cup target \\cup {start_{vid}} \\cup  {end_{vid}}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:64
+#: ../../build/doc/dijkstra-family.rst:84
+msgid "the set of edges :math:`E`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:66
+msgid ""
+":math:`E = \\begin{cases} \\text{ }  \\{(source_i, target_i, cost_i) \\text{"
+" when } cost >=0 \\} & \\quad \\text{if } reverse\\_cost = \\varnothing \\\\"
+" \\text{ }  \\text{ }  & \\quad \\text{ } \\\\ \\text{ }  \\{(source_i, "
+"target_i, cost_i) \\text{ when } cost >=0 \\} &  \\quad \\text{ } \\\\ \\cup"
+"      \\{(target_i, source_i, reverse\\_cost_i) \\text{ when } "
+"reverse\\_cost_i>=0 \\} & \\quad \\text{if } reverse\\_cost \\neq "
+"\\varnothing \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:76
+msgid "Undirected graph"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:77
+msgid "The weighted undirected graph, :math:`G_u(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:81
+msgid ":math:`V = source \\cup target \\cup {start_v{vid}} \\cup  {end_{vid}}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:86
+msgid ""
+":math:`E = \\begin{cases} \\text{ }  \\{(source_i, target_i, cost_i) \\text{"
+" when } cost >=0 \\}  & \\quad \\text{ } \\\\ \\cup      \\{(target_i, "
+"source_i, cost_i) \\text{ when } cost >=0 \\}  & \\quad \\text{ if } "
+"reverse\\_cost = \\varnothing \\\\ \\text{ }  \\text{ }  & \\text{ } \\\\ "
+"\\text{ }  \\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & "
+"\\text{ } \\\\ \\cup  \\{(target_i, source_i, cost_i) \\text{ when } cost "
+">=0 \\} & \\text{ } \\\\ \\cup  \\{(target_i, source_i, reverse\\_cost_i) "
+"\\text{ when } reverse\\_cost_i >=0)\\} & \\text{ } \\\\ \\cup  "
+"\\{(source_i, target_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i "
+">=0)\\} & \\quad \\text{ if } reverse\\_cost \\neq \\varnothing \\\\ "
+"\\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:99
+msgid "The problem"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:100
+msgid "Given:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:102
+msgid ":math:`start_{vid} \\in V` a starting vertex"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:103
+msgid ":math:`end_{vid} \\in V` an ending vertex"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:104
+msgid ""
+":math:`G(V,E) = \\begin{cases} G_d(V,E) & \\quad \\text{ if6 } directed = "
+"true \\\\ G_u(V,E) & \\quad \\text{ if5 } directed = false \\\\ "
+"\\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:109
+msgid "Then:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:118
+msgid ""
+":math:`\\boldsymbol{\\pi} = \\{(path\\_seq_i, node_i, edge_i, cost_i, "
+"agg\\_cost_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:131
+msgid "where:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:121
+msgid ":math:`path\\_seq_i = i`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:122
+msgid ":math:`path\\_seq_{| \\pi |} = | \\pi |`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:123
+msgid ":math:`node_i \\in V`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:124
+msgid ":math:`node_1 = start_{vid}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:125
+msgid ":math:`node_{| \\pi |}  = end_{vid}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:126
+msgid ":math:`\\forall i \\neq | \\pi |, \\quad (node_i, node_{i+1}, cost_i) \\in E`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:127
+msgid ""
+":math:`edge_i  = \\begin{cases}  id_{(node_i, node_{i+1},cost_i)}  &\\quad  "
+"\\text{when } i \\neq | \\pi | \\\\ -1 &\\quad  \\text{when } i = | \\pi | "
+"\\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:128
+msgid ":math:`cost_i = cost_{(node_i, node_{i+1})}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:129
+msgid ""
+":math:`agg\\_cost_i  = \\begin{cases}  0   &\\quad  \\text{when } i = 1  "
+"\\\\ \\displaystyle\\sum_{k=1}^{i}  cost_{(node_{k-1}, node_k)}  &\\quad  "
+"\\text{when } i \\neq 1 \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:137
+msgid ""
+"In other words: The algorithm returns a the shortest path between "
+":math:`start_{vid}` and :math:`end_{vid}` , if it exists, in terms of a "
+"sequence of nodes  and of edges,"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:134
+msgid ""
+":math:`path\\_seq` indicates the relative position in the path of the "
+":math:`node` or :math:`edge`."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:135
+msgid ""
+":math:`cost` is the cost of the edge to be used to go to the next node."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:136
+msgid ""
+":math:`agg\\_cost` is the cost from the :math:`start_{vid}` up to the node."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:139
+msgid "If there is no path, the resulting set is empty."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:143
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:146
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:147
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:148
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/drivingDistance-category.po b/locale/es/LC_MESSAGES/drivingDistance-category.po
new file mode 100644
index 0000000..a71b4c7
--- /dev/null
+++ b/locale/es/LC_MESSAGES/drivingDistance-category.po
@@ -0,0 +1,52 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/drivingDistance-category.rst:14
+msgid "Driving Distance - Category"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:18
+msgid ":ref:`pgr_drivingDistance` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:19
+msgid ":ref:`pgr_withPointsDD` - Driving Distance based on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:20
+msgid "Post pocessing"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:22
+msgid ":ref:`pgr_alphaShape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:23
+msgid ":ref:`pgr_points_as_polygon` - Polygon around a set of points"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:36
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:39
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:40
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:41
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/flow-family.po b/locale/es/LC_MESSAGES/flow-family.po
new file mode 100644
index 0000000..a000199
--- /dev/null
+++ b/locale/es/LC_MESSAGES/flow-family.po
@@ -0,0 +1,331 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Flow - Family of functions"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid ""
+":ref:`pgr_maxFlow` - Only the Max flow calculation using Push and Relabel "
+"algorithm."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid ""
+":ref:`pgr_BoykovKolmogorov` - Boykov and Kolmogorov with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:19
+msgid ""
+":ref:`pgr_EdmondsKarp` - Edmonds and Karp algorithm with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid ""
+":ref:`pgr_PushRelabel` - Push and relabel algorithm with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "Applications"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:23
+msgid ""
+":ref:`pgr_edgeDisjointPaths` - Calculates edge disjoint paths between two "
+"groups of vertices."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:24
+msgid ""
+":ref:`pgr_maxCardinalityMatch` - Calculates a maximum cardinality matching "
+"in a graph."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:45
+msgid "Flow Functions General Information"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:51
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:52
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:53
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:54
+msgid ""
+"When the maximum flow is 0 then there is no flow and **EMPTY SET** is "
+"returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:56
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:58
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:59
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:61
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:63
+msgid ""
+"Creates a **super source** and edges to all the source(s), and a **super "
+"target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:64
+msgid ""
+"The maximum flow through the graph is guaranteed to be the value returned by"
+" :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and"
+" can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:66
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:67
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:72
+msgid ""
+":ref:`pgr_maxFlow <pgr_maxFlow>`  is the  maximum Flow and that maximum is "
+"guaranteed to be the same on the functions :ref:`pgr_pushRelabel "
+"<pgr_pushRelabel>`, :ref:`pgr_edmondsKarp <pgr_edmondsKarp>`, "
+":ref:`pgr_boykovKolmogorov <pgr_boykovKolmogorov>`, but the actual flow "
+"through each edge may vary."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:77
+msgid "Problem definition"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:79
+msgid ""
+"A flow network is a directed graph where each edge has a capacity and a "
+"flow. The flow through an edge must not exceed the capacity of the edge. "
+"Additionally, the incoming and outgoing flow of a node must be equal except "
+"the for source which only has outgoing flow, and the destination(sink) which"
+" only has incoming flow."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:83
+msgid ""
+"Maximum flow algorithms calculate the maximum flow through the graph and the"
+" flow of each edge."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:85
+msgid ""
+"The maximum flow through the graph is guaranteed to be the same with all "
+"implementations, but the actual flow through each edge may vary. Given the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:89
+msgid "pgr_maxFlow :math:`(edges\\_sql, source\\_vertex, sink\\_vertex)`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:91
+msgid ""
+"where :math:`edges\\_sql = \\{(id_i, source_i, target_i, capacity_i, "
+"reverse\\_capacity_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:94
+msgid "Graph definition"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:95
+msgid "The weighted directed graph, :math:`G(V,E)`, is defined as:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:97
+msgid "the set of vertices  :math:`V`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:99
+msgid ""
+":math:`source\\_vertex  \\cup  sink\\_vertex  \\bigcup  source_i  \\bigcup  "
+"target_i`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:101
+msgid "the set of edges :math:`E`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:103
+msgid ""
+":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, capacity_i) "
+"\\text{ when } capacity > 0 \\} & \\quad  \\text{ if } reverse\\_capacity = "
+"\\varnothing \\\\ \\text{ } & \\quad \\text{ } \\\\ \\{(source_i, target_i, "
+"capacity_i) \\text{ when } capacity > 0 \\} & \\text{ } \\\\ \\cup "
+"\\{(target_i, source_i, reverse\\_capacity_i) \\text{ when } "
+"reverse\\_capacity_i > 0)\\} & \\quad \\text{ if } reverse\\_capacity \\neq "
+"\\varnothing \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:111
+msgid "Maximum flow problem"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:112
+msgid "Given:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:115
+msgid ":math:`G(V,E)`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:116
+msgid ":math:`source\\_vertex \\in V` the source vertex"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:117
+msgid ":math:`sink\\_vertex \\in V` the sink vertex"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:119
+msgid "Then:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:121
+msgid ":math:`pgr\\_maxFlow(edges\\_sql, source, sink) = \\boldsymbol{\\Phi}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:123
+msgid ""
+":math:`\\boldsymbol{\\Phi} = {(id_i, edge\\_id_i, source_i, target_i, "
+"flow_i, residual\\_capacity_i)}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:125
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:127
+msgid ""
+":math:`\\boldsymbol{\\Phi}` is a subset of the original edges with their "
+"residual capacity and flow. The maximum flow through the graph can be "
+"obtained by aggregating on the source or sink and summing the flow from/to "
+"it. In particular:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:129
+msgid ":math:`id_i = i`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:130
+msgid ":math:`edge\\_id = id_i` in edges_sql"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:131
+msgid ":math:`residual\\_capacity_i = capacity_i - flow_i`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:135
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:137
+msgid "https://en.wikipedia.org/wiki/Maximum_flow_problem"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:140
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:141
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:142
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/geom_result.po b/locale/es/LC_MESSAGES/geom_result.po
new file mode 100644
index 0000000..e2d89a1
--- /dev/null
+++ b/locale/es/LC_MESSAGES/geom_result.po
@@ -0,0 +1,74 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/geom_result.rst:13
+msgid "pgr_geomResult[]"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:21
+msgid ""
+"``pgr_geomResult[]`` — A set of records to describe a path result with "
+"geometry attribute."
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:25
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:37
+msgid "sequential ID indicating the path order"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:38 ../../build/doc/geom_result.rst:39
+msgid "generic name, to be specified by the function"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:40
+msgid "geometry attribute"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:44
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:45
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:46
+msgid "Replaces ``geoms``"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:50
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:52
+msgid ":ref:`introduction`"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:56
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:57
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:58
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/index.po b/locale/es/LC_MESSAGES/index.po
new file mode 100644
index 0000000..44ac3e4
--- /dev/null
+++ b/locale/es/LC_MESSAGES/index.po
@@ -0,0 +1,306 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/index.rst:14
+msgid "Table of Contents"
+msgstr ""
+
+#: ../../build/doc/index.rst:16
+msgid ""
+"pgRouting extends the `PostGIS <http://postgis.net>`_/`PostgreSQL "
+"<http://postgresql.org>`_ geospatial database to provide geospatial routing "
+"and other network analysis functionality."
+msgstr ""
+
+#: ../../build/doc/index.rst:18
+msgid "This is the manual for pgRouting |release|."
+msgstr ""
+
+#: ../../build/doc/index.rst:24
+msgid ""
+"The pgRouting Manual is licensed under a `Creative Commons Attribution-Share"
+" Alike 3.0 License <http://creativecommons.org/licenses/by-sa/3.0/>`_. Feel "
+"free to use this material any way you like, but we ask that you attribute "
+"credit to the pgRouting Project and wherever possible, a link back to "
+"http://pgrouting.org. For other licenses used in pgRouting see the "
+":ref:`license` page."
+msgstr ""
+
+#: ../../build/doc/index.rst:27
+msgid "General"
+msgstr ""
+
+#: ../../build/doc/index.rst:37
+msgid ":doc:`sampledata` that is used in the examples of this manual."
+msgstr ""
+
+#: ../../build/doc/index.rst:45
+msgid "Pgrouting Concepts"
+msgstr ""
+
+#: ../../build/doc/index.rst:54
+msgid "Reference"
+msgstr ""
+
+#: ../../build/doc/index.rst:55
+msgid ":ref:`pgr_version` - to get pgRouting's version information."
+msgstr ""
+
+#: ../../build/doc/index.rst:64
+msgid ":ref:`Data Types <data_types>`"
+msgstr ""
+
+#: ../../build/doc/index.rst:67
+msgid ""
+":ref:`type_cost_result` -  A set of records to describe a path result with "
+"cost attribute."
+msgstr ""
+
+#: ../../build/doc/index.rst:68
+msgid ""
+":ref:`pgr_costResult3[]<type_cost_result3>` - A set of records to describe a"
+" path result with cost attribute."
+msgstr ""
+
+#: ../../build/doc/index.rst:69
+msgid ""
+":ref:`pgr_geomResult<type_geom_result>` - A set of records to describe a "
+"path result with geometry attribute."
+msgstr ""
+
+#: ../../build/doc/index.rst:78
+msgid ":ref:`Topology Functions <topology_functions>`"
+msgstr ""
+
+#: ../../build/doc/index.rst:80
+msgid ""
+":ref:`pgr_create_topology` -  to create a topology based on the geometry."
+msgstr ""
+
+#: ../../build/doc/index.rst:81
+msgid ""
+":ref:`pgr_create_vert_table` - to reconstruct the vertices table based on "
+"the source and target information."
+msgstr ""
+
+#: ../../build/doc/index.rst:82
+msgid ""
+":ref:`pgr_analyze_graph`  - to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/index.rst:83
+msgid ":ref:`pgr_analyze_oneway` - to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/index.rst:84
+msgid ":ref:`pgr_node_network`  -to create nodes to a not noded edge table."
+msgstr ""
+
+#: ../../build/doc/index.rst:93
+msgid ":ref:`Routing functions <routing_functions>`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:4
+msgid ":ref:`all_pairs`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:6
+msgid ":ref:`pgr_floydWarshall` - Floyd-Warshall's Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:7
+msgid ":ref:`pgr_johnson`- Johnson’s Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:9
+msgid ":ref:`pgr_astar` - Shortest Path A*"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:11
+msgid ":ref:`pgr_bdAstar` - Bi-directional A* Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:13
+msgid ":ref:`pgr_bdDijkstra` - Bi-directional Dijkstra Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:16
+msgid ":ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:3
+msgid ":ref:`pgr_dijkstra` - Dijkstra's algorithm for the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:4
+msgid ""
+":ref:`pgr_dijkstraCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:5
+msgid ""
+":ref:`pgr_dijkstraCostMatrix` - Use pgr_dijkstra to create a costs matrix."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:6
+msgid ""
+":ref:`pgr_drivingDistance` - Use pgr_dijkstra to calculate catchament "
+"information."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:7
+msgid ""
+":ref:`pgr_ksp` - Use Yen algorithm with pgr_dijkstra to get the K shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:8
+msgid ":ref:`pgr_dijkstraVia` - Get a route of a seuence of vertices."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:22
+msgid ":ref:`pgr_ksp` - K-Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:24
+msgid ":ref:`pgr_trsp<trsp>` - Turn Restriction Shortest Path (TRSP)"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:26
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:3
+msgid ":ref:`pgr_TSP` - When input is given as matrix cell information."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:4
+msgid ":ref:`pgr_eucledianTSP` - When input are coordinates."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:32
+msgid ":ref:`drivingDistance`"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:3
+msgid ":ref:`pgr_drivingDistance` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:4
+msgid ":ref:`pgr_withPointsDD` - Driving Distance based on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:5
+msgid "Post pocessing"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:7
+msgid ":ref:`pgr_alphaShape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:8
+msgid ":ref:`pgr_points_as_polygon` - Polygon around a set of points"
+msgstr ""
+
+#: ../../build/doc/index.rst:108
+msgid "Available Functions but not official pgRouting functions"
+msgstr ""
+
+#: ../../build/doc/index.rst:110
+msgid ":ref:`Stable`"
+msgstr ""
+
+#: ../../build/doc/index.rst:111
+msgid ":ref:`proposed`"
+msgstr ""
+
+#: ../../build/doc/index.rst:121
+msgid ":ref:`Change Log <change_log>`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:3
+msgid ":ref:`changelog_2_5_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:4
+msgid ":ref:`changelog_2_4_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:5
+msgid ":ref:`changelog_2_4_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:6
+msgid ":ref:`changelog_2_4_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:7
+msgid ":ref:`changelog_2_3_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:8
+msgid ":ref:`changelog_2_3_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:9
+msgid ":ref:`changelog_2_3_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:10
+msgid ":ref:`changelog_2_2_4`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:11
+msgid ":ref:`changelog_2_2_3`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:12
+msgid ":ref:`changelog_2_2_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:13
+msgid ":ref:`changelog_2_2_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:14
+msgid ":ref:`changelog_2_2_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:15
+msgid ":ref:`changelog_2_1_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:16
+msgid ":ref:`changelog_2_0_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:17
+msgid ":ref:`changelog_2_0_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:18
+msgid ":ref:`changelog_1_x`"
+msgstr ""
+
+#: ../../build/doc/index.rst:135
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/index.rst:136
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/index.rst:137
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgRouting-concepts.po b/locale/es/LC_MESSAGES/pgRouting-concepts.po
new file mode 100644
index 0000000..34885ba
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgRouting-concepts.po
@@ -0,0 +1,1071 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "pgRouting Concepts"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:0
+msgid "Contents"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "Getting Started"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid ""
+"This is a simple guide to walk you through the steps of getting started with"
+" pgRouting. In this guide we will cover:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:32
+msgid "Create a routing Database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:34
+msgid ""
+"The first thing we need to do is create a database and load pgrouting in the"
+" database. Typically you will create a database for each project. Once you "
+"have a database to work in, your can load your data and build your "
+"application in that database. This makes it easy to move your project later "
+"if you want to to say a production server."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:40
+msgid "For Postgresql 9.2 and later versions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:51
+msgid "Load Data"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:53
+msgid ""
+"How you load your data will depend in what form it comes it. There are "
+"various OpenSource tools that can help you, like:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:56
+msgid ""
+"this is a tool for loading OSM data into postgresql with pgRouting "
+"requirements"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:57
+msgid "this is the postgresql shapefile loader"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:58
+msgid "this is a vector data conversion utility"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:59
+msgid "this is a tool for loading OSM data into postgresql"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:61
+msgid ""
+"So these tools and probably others will allow you to read vector data so "
+"that you may then load that data into your database as a table of some kind."
+" At this point you need to know a little about your data structure and "
+"content. One easy way to browse your new data table is with pgAdmin3 or "
+"phpPgAdmin."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:69
+msgid "Build a Routing Topology"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:71
+msgid ""
+"Next we need to build a topology for our street data. What this means is "
+"that for any given edge in your street data the ends of that edge will be "
+"connected to a unique node and to other edges that are also connected to "
+"that same unique node. Once all the edges are connected to nodes we have a "
+"graph that can be used for routing with pgrouting. We provide a tool that "
+"will help with this:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:77
+msgid "this step is not needed if data is loaded with `osm2pgrouting`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:83
+msgid ":ref:`pgr_create_topology`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:88
+msgid "Check the Routing Topology"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:90
+msgid ""
+"There are lots of possible sources for errors in a graph. The data that you "
+"started with may not have been designed with routing in mind. A graph has "
+"some very specific requirements. One is that it is *NODED*, this means that "
+"except for some very specific use cases, each road segment starts and ends "
+"at a node and that in general is does not cross another road segment that it"
+" should be connected to."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:97
+msgid ""
+"There can be other errors like the direction of a one-way street being "
+"entered in the wrong direction. We do not have tools to search for all "
+"possible errors but we have some basic tools that might help."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:109
+msgid ":ref:`pgr_analyze_graph`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:110
+msgid ":ref:`pgr_analyze_oneway`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:111
+msgid ":ref:`pgr_node_network`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:117
+msgid "Compute a Path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:119
+msgid ""
+"Once you have all the preparation work done above, computing a route is "
+"fairly easy. We have a lot of different algorithms that can work with your "
+"prepared road network. The general form of a route query is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:127
+msgid ""
+"As you can see this is fairly straight forward and you can look and the "
+"specific algorithms for the details of the signatures and how to use them. "
+"These results have information like edge id and/or the node id along with "
+"the cost or geometry for the step in the path from *start* to *end*. Using "
+"the ids you can join these result back to your edge table to get more "
+"information about each step in the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:134
+msgid ":ref:`pgr_dijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:141
+msgid "Inner Queries"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:146
+msgid ""
+"There are several kinds of valid inner queries and also the columns returned"
+" are depending of the function. Which kind of inner query will depend on the"
+" function(s) requirements. To simplify variety of types, ``ANY-INTEGER`` and"
+" ``ANY-NUMERICAL`` is used."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:152
+#: ../../build/doc/pgRouting-concepts.rst:182
+#: ../../build/doc/pgRouting-concepts.rst:212
+#: ../../build/doc/pgRouting-concepts.rst:269
+#: ../../build/doc/pgRouting-concepts.rst:300
+#: ../../build/doc/pgRouting-concepts.rst:334
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:154
+#: ../../build/doc/pgRouting-concepts.rst:184
+#: ../../build/doc/pgRouting-concepts.rst:214
+#: ../../build/doc/pgRouting-concepts.rst:271
+#: ../../build/doc/pgRouting-concepts.rst:302
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:155
+#: ../../build/doc/pgRouting-concepts.rst:185
+#: ../../build/doc/pgRouting-concepts.rst:215
+#: ../../build/doc/pgRouting-concepts.rst:272
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:162
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:164
+#: ../../build/doc/pgRouting-concepts.rst:195
+#: ../../build/doc/pgRouting-concepts.rst:247
+#: ../../build/doc/pgRouting-concepts.rst:282
+#: ../../build/doc/pgRouting-concepts.rst:314
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+#: ../../build/doc/pgRouting-concepts.rst:317
+#: ../../build/doc/pgRouting-concepts.rst:360
+#: ../../build/doc/pgRouting-concepts.rst:383
+#: ../../build/doc/pgRouting-concepts.rst:400
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:227
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+#: ../../build/doc/pgRouting-concepts.rst:317
+#: ../../build/doc/pgRouting-concepts.rst:360
+#: ../../build/doc/pgRouting-concepts.rst:383
+#: ../../build/doc/pgRouting-concepts.rst:400
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:227
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:227
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+#: ../../build/doc/pgRouting-concepts.rst:317
+#: ../../build/doc/pgRouting-concepts.rst:360
+#: ../../build/doc/pgRouting-concepts.rst:383
+#: ../../build/doc/pgRouting-concepts.rst:400
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:169
+#: ../../build/doc/pgRouting-concepts.rst:252
+#: ../../build/doc/pgRouting-concepts.rst:287
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:169
+#: ../../build/doc/pgRouting-concepts.rst:170
+#: ../../build/doc/pgRouting-concepts.rst:171
+#: ../../build/doc/pgRouting-concepts.rst:200
+#: ../../build/doc/pgRouting-concepts.rst:201
+#: ../../build/doc/pgRouting-concepts.rst:252
+#: ../../build/doc/pgRouting-concepts.rst:253
+#: ../../build/doc/pgRouting-concepts.rst:254
+#: ../../build/doc/pgRouting-concepts.rst:287
+#: ../../build/doc/pgRouting-concepts.rst:288
+#: ../../build/doc/pgRouting-concepts.rst:289
+#: ../../build/doc/pgRouting-concepts.rst:290
+#: ../../build/doc/pgRouting-concepts.rst:294
+#: ../../build/doc/pgRouting-concepts.rst:319
+#: ../../build/doc/pgRouting-concepts.rst:324
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:169
+#: ../../build/doc/pgRouting-concepts.rst:252
+#: ../../build/doc/pgRouting-concepts.rst:287
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:170
+#: ../../build/doc/pgRouting-concepts.rst:200
+#: ../../build/doc/pgRouting-concepts.rst:253
+#: ../../build/doc/pgRouting-concepts.rst:288
+#: ../../build/doc/pgRouting-concepts.rst:404
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:170
+#: ../../build/doc/pgRouting-concepts.rst:200
+#: ../../build/doc/pgRouting-concepts.rst:253
+#: ../../build/doc/pgRouting-concepts.rst:288
+#: ../../build/doc/pgRouting-concepts.rst:404
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:171
+#: ../../build/doc/pgRouting-concepts.rst:201
+#: ../../build/doc/pgRouting-concepts.rst:254
+#: ../../build/doc/pgRouting-concepts.rst:289
+#: ../../build/doc/pgRouting-concepts.rst:405
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:171
+#: ../../build/doc/pgRouting-concepts.rst:201
+#: ../../build/doc/pgRouting-concepts.rst:254
+#: ../../build/doc/pgRouting-concepts.rst:289
+#: ../../build/doc/pgRouting-concepts.rst:405
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:172
+#: ../../build/doc/pgRouting-concepts.rst:202
+#: ../../build/doc/pgRouting-concepts.rst:255
+#: ../../build/doc/pgRouting-concepts.rst:369
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:172
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:202
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:255
+#: ../../build/doc/pgRouting-concepts.rst:259
+#: ../../build/doc/pgRouting-concepts.rst:263
+#: ../../build/doc/pgRouting-concepts.rst:264
+#: ../../build/doc/pgRouting-concepts.rst:265
+#: ../../build/doc/pgRouting-concepts.rst:266
+#: ../../build/doc/pgRouting-concepts.rst:325
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:172
+#: ../../build/doc/pgRouting-concepts.rst:202
+#: ../../build/doc/pgRouting-concepts.rst:255
+#: ../../build/doc/pgRouting-concepts.rst:290
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:174
+#: ../../build/doc/pgRouting-concepts.rst:204
+#: ../../build/doc/pgRouting-concepts.rst:257
+#: ../../build/doc/pgRouting-concepts.rst:292
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:259
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:259
+#: ../../build/doc/pgRouting-concepts.rst:294
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:259
+#: ../../build/doc/pgRouting-concepts.rst:294
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:178
+#: ../../build/doc/pgRouting-concepts.rst:208
+#: ../../build/doc/pgRouting-concepts.rst:261
+#: ../../build/doc/pgRouting-concepts.rst:296
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:193
+msgid "Description of the edges_sql query (id is not necessary)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:224
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:227
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:229
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:229
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:229
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:230
+msgid "**via_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:230
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:230
+msgid "Array of ordered vertices identifiers that are going to be visited."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:233
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:232
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:233
+msgid "**strict**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:233
+msgid "``false``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:233
+msgid "When ``false`` ignores missing paths returning all paths found"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:234
+msgid "When ``true`` if a path is missing stops and returns `EMPTY SET`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid "**U_turn_on_edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid ""
+"When ``true`` departing from a visited vertex will not try to avoid using "
+"the edge used to reach it.  In other words, U turn using the edge with same "
+"`id` is allowed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:236
+msgid ""
+"When ``false`` when a departing from a visited vertex tries to avoid using "
+"the edge used to reach it.  In other words, U turn using the edge with same "
+"`id` is used when no other path is found."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:245
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:263
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:263
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:264
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:264
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:265
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:265
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:266
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:266
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:280
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:290
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:294
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:312
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:319
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:319
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:321
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:322
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:324
+#: ../../build/doc/pgRouting-concepts.rst:403
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:324
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:325
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:325
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:326
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:326
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:326
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:328
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:329
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:330
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:336
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:337
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:345
+msgid "Return columns & values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:350
+msgid ""
+"There are several kinds of columns returned are depending of the function."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:355
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:357
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:362
+#: ../../build/doc/pgRouting-concepts.rst:402
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:362
+#: ../../build/doc/pgRouting-concepts.rst:363
+#: ../../build/doc/pgRouting-concepts.rst:364
+#: ../../build/doc/pgRouting-concepts.rst:402
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:362
+#: ../../build/doc/pgRouting-concepts.rst:402
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:363
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:363
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:364
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:364
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:365
+#: ../../build/doc/pgRouting-concepts.rst:385
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:365
+#: ../../build/doc/pgRouting-concepts.rst:366
+#: ../../build/doc/pgRouting-concepts.rst:367
+#: ../../build/doc/pgRouting-concepts.rst:368
+#: ../../build/doc/pgRouting-concepts.rst:385
+#: ../../build/doc/pgRouting-concepts.rst:386
+#: ../../build/doc/pgRouting-concepts.rst:403
+#: ../../build/doc/pgRouting-concepts.rst:404
+#: ../../build/doc/pgRouting-concepts.rst:405
+#: ../../build/doc/pgRouting-concepts.rst:406
+#: ../../build/doc/pgRouting-concepts.rst:407
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:365
+#: ../../build/doc/pgRouting-concepts.rst:385
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:366
+#: ../../build/doc/pgRouting-concepts.rst:386
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:366
+#: ../../build/doc/pgRouting-concepts.rst:386
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:367
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:367
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:368
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:368
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:369
+#: ../../build/doc/pgRouting-concepts.rst:370
+#: ../../build/doc/pgRouting-concepts.rst:387
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:369
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:370
+#: ../../build/doc/pgRouting-concepts.rst:387
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:370
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:378
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:380
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:387
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:397
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:403
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:406
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:406
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:407
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:407
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:415
+msgid "Advanced Topics"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:423
+msgid "Routing Topology"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:427
+#: ../../build/doc/pgRouting-concepts.rst:528
+msgid "Overview"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:428
+msgid ""
+"Typically when GIS files are loaded into the data database for use with "
+"pgRouting they do not have topology information associated with them. To "
+"create a useful topology the data needs to be \"noded\". This means that "
+"where two or more roads form an intersection there it needs to be a node at "
+"the intersection and all the road segments need to be broken at the "
+"intersection, assuming that you can navigate from any of these segments to "
+"any other segment via that intersection."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:430
+msgid ""
+"You can use the :ref:`graph analysis functions <analytics>` to help you see "
+"where you might have topology problems in your data. If you need to node "
+"your data, we also have a function :ref:`pgr_nodeNetwork() "
+"<pgr_node_network>` that might work for you. This function splits ALL "
+"crossing segments and nodes them. There are some cases where this might NOT "
+"be the right thing to do."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:432
+msgid ""
+"For example, when you have an overpass and underpass intersection, you do "
+"not want these noded, but pgr_nodeNetwork does not know that is the case and"
+" will node them which is not good because then the router will be able to "
+"turn off the overpass onto the underpass like it was a flat 2D intersection."
+" To deal with this problem some data sets use z-levels at these types of "
+"intersections and other data might not node these intersection which would "
+"be ok."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:434
+msgid ""
+"For those cases where topology needs to be added the following functions may"
+" be useful. One way to prep the data for pgRouting is to add the following "
+"columns to your table and then populate them as appropriate. This example "
+"makes a lot of assumption like that you original data tables already has "
+"certain columns in it like ``one_way``, ``fcc``, and possibly others and "
+"that they contain specific data values. This is only to give you an idea of "
+"what you can do with your data."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:455
+msgid ""
+"The function :ref:`pgr_createTopology() <pgr_create_topology>` will create "
+"the ``vertices_tmp`` table and populate the ``source`` and ``target`` "
+"columns. The following example populated the remaining columns. In this "
+"example, the ``fcc`` column contains feature class code and the ``CASE`` "
+"statements converts it to an average speed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:518
+msgid ""
+"Now your database should be ready to use any (most?) of the pgRouting "
+"algorithms."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:524
+msgid "Graph Analytics"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:529
+msgid ""
+"It is common to find problems with graphs that have not been constructed "
+"fully noded or in graphs with z-levels at intersection that have been "
+"entered incorrectly. An other problem is one way streets that have been "
+"entered in the wrong direction. We can not detect errors with respect to "
+"\"ground\" truth, but we can look for inconsistencies and some anomalies in "
+"a graph and report them for additional inspections."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:531
+msgid ""
+"We do not current have any visualization tools for these problems, but I "
+"have used mapserver to render the graph and highlight potential problem "
+"areas. Someone familiar with graphviz might contribute tools for generating "
+"images with that."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:535
+msgid "Analyze a Graph"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:537
+msgid ""
+"With :ref:`pgr_analyze_graph` the graph can be checked for errors. For "
+"example for table \"mytab\" that has \"mytab_vertices_pgr\" as the vertices "
+"table:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:560
+msgid "In the vertices table \"mytab_vertices_pgr\":"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:562
+msgid "Deadends are identified by ``cnt=1``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:563
+msgid "Potencial gap problems are identified with ``chk=1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:581
+msgid ""
+"For isolated road segments, for example, a segment where both ends are "
+"deadends. you can find these with the following query:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:590
+msgid ""
+"If you want to visualize these on a graphic image, then you can use "
+"something like mapserver to render the edges and the vertices and style "
+"based on ``cnt`` or if they are isolated, etc. You can also do this with a "
+"tool like graphviz, or geoserver or other similar tools."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:594
+msgid "Analyze One Way Streets"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:596
+msgid ""
+":ref:`pgr_analyze_oneway` analyzes one way streets in a graph and identifies"
+" any flipped segments. Basically if you count the edges coming into a node "
+"and the edges exiting a node the number has to be greater than one."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:598
+msgid ""
+"This query will add two columns to the vertices_tmp table ``ein int`` and "
+"``eout int`` and populate it with the appropriate counts. After running this"
+" on a graph you can identify nodes with potential problems with the "
+"following query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:601
+msgid ""
+"The rules are defined as an array of text strings that if match the ``col`` "
+"value would be counted as true for the source or target in or out condition."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:605
+msgid "Example"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:607
+msgid ""
+"Lets assume we have a table \"st\" of edges and a column \"one_way\" that "
+"might have values like:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:609
+msgid "'FT'    - oneway from the source to the target node."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:610
+msgid "'TF'    - oneway from the target to the source node."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:611
+msgid "'B'     - two way street."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:612
+msgid "''      - empty field, assume twoway."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:613
+msgid "<NULL>  - NULL field, use two_way_if_null flag."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:615
+msgid ""
+"Then we could form the following query to analyze the oneway streets for "
+"errors."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:634
+msgid ""
+"Typically these problems are generated by a break in the network, the one "
+"way direction set wrong, maybe an error related to z-levels or a network "
+"that is not properly noded."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:636
+msgid ""
+"The above tools do not detect all network issues, but they will identify "
+"some common problems. There are other problems that are hard to detect "
+"because they are more global in nature like multiple disconnected networks. "
+"Think of an island with a road network that is not connected to the mainland"
+" network because the bridge or ferry routes are missing."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:644
+msgid "Performance Tips"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:651
+msgid "For the Routing functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:653
+msgid ""
+"To get faster results bound your queries to the area of interest of routing "
+"to have, for example, no more than one million rows."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:655
+msgid ""
+"Use an inner query SQL that does not include some edges in the routing "
+"function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:663
+msgid "Integrating the inner query to the pgRouting function:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:677
+msgid "For the topology functions:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:679
+msgid ""
+"When \"you know\" that you are going to remove a set of edges from the edges"
+" table, and without those edges you are going to use a routing function you "
+"can do the following:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:681
+msgid "Analize the new topology based on the actual topology:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:687
+msgid "Or create a new topology if the change is permanent:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:698
+msgid "How to contribute"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:701
+msgid "Wiki"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:702
+msgid ""
+"Edit an existing  `pgRouting Wiki "
+"<https://github.com/pgRouting/pgrouting/wiki>`_ page."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:703
+msgid "Or create a new Wiki page"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:705
+msgid ""
+"Create a page on the `pgRouting Wiki "
+"<https://github.com/pgRouting/pgrouting/wiki>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:706
+msgid "Give the title an appropriate name"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:709
+msgid ""
+"`Example <https://github.com/pgRouting/pgrouting/wiki/How-to:-Handle-"
+"parallel-edges-(KSP)>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:713
+msgid "Adding Functionaity to pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:714
+msgid ""
+"Consult the `developer's documentation "
+"<http://docs.pgrouting.org/doxy/2.4/index.html>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:719
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:720
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:721
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgRouting-installation.po b/locale/es/LC_MESSAGES/pgRouting-installation.po
new file mode 100644
index 0000000..71b7f5f
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgRouting-installation.po
@@ -0,0 +1,418 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgRouting-installation.rst:13
+msgid "Installation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:16
+msgid "Table of Contents"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:17
+msgid ":ref:`install-short`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:18
+msgid ":ref:`install_get_sources`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:19
+msgid ":ref:`install_enable_db`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:20
+msgid ":ref:`install_dependencies`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:21
+msgid ":ref:`install_configuring`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:22
+msgid ":ref:`install_build`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:23
+msgid ":ref:`install_testing`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:25
+msgid ""
+"Instructions for downloading and installing binaries for different Operative"
+" systems instructions and additional notes and corrections not included in "
+"this documentation can be found in `Installation wiki "
+"<https://github.com/pgRouting/pgrouting/wiki/Notes-on-Download%2C-"
+"Installation-and-building-pgRouting>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:27
+msgid ""
+"To use pgRouting postGIS needs to be installed, please read the information "
+"about installation in this `Install Guide "
+"<http://www.postgis.us/presentations/postgis_install_guide_22.html>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:32
+msgid "Short Version"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:37
+msgid "Extracting the tar ball"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:44
+msgid "To compile assuming you have all the dependencies in your search path:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:54
+msgid ""
+"Once pgRouting is installed, it needs to be enabled in each individual "
+"database you want to use it in."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:66
+msgid "Get the sources"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:69
+msgid ""
+"The pgRouting latest release can be found in "
+"https://github.com/pgRouting/pgrouting/releases/latest"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:72
+msgid "wget"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:73
+msgid "To download this release:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:81
+msgid "Goto :ref:`install-short` to the extract and compile instructions."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:84
+msgid "git"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:85
+msgid "To download the repository"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:93
+msgid ""
+"Goto :ref:`install-short` to the compile instructions (there is no tar "
+"ball)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:100
+msgid "Enabling and upgrading in the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:103
+msgid "Enabling the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:104
+msgid ""
+"pgRouting is an extension and depends on postGIS. Enabling postGIS before "
+"enabling pgRouting in the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:113
+msgid "Upgrading the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:114
+msgid ""
+"To upgrade pgRouting in the database to version 2.4.0 use the following "
+"command:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:122
+msgid ""
+"More information can be found in "
+"https://www.postgresql.org/docs/current/static/sql-createextension.html"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:128
+msgid "Dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:131
+msgid "Compilation Dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:132
+msgid ""
+"To be able to compile pgRouting, make sure that the following dependencies "
+"are met:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:134
+msgid "C and C++0x compilers * g++ version >= 4.8"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:136
+msgid "Postgresql version >= 9.2"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:137
+msgid "PostGIS version >= 2.0"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:138
+msgid "The Boost Graph Library (BGL). Version >= 1.46"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:139
+msgid "CMake >= 2.8.8"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:140
+msgid "CGAL >=  4.2"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:144
+msgid "optional dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:145
+msgid "For user's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:147
+msgid "Sphinx >= 1.1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:148
+msgid "Latex"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:150
+msgid "For developer's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:152
+msgid "Doxygen >= 1.7"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:154
+msgid "For testing"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:156
+msgid "pgtap"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:157
+msgid "pg_prove"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:161
+msgid "Example: Installing dependencies on linux"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:162
+msgid "Installing the compilation dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:174
+msgid "Installing the optional dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:188
+msgid "Configuring"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:190
+msgid "pgRouting uses the `cmake` system to do the configuration."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:192
+msgid "The build directory is different from the source directory"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:194
+msgid "Create the build directory"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:201
+msgid "Configurable variables"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:205
+msgid "To see the variables that can be configured"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:213
+msgid "Configuring The Documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:214
+msgid ""
+"Most of the effort of the documentation has being on the HTML files. Some "
+"variables for the documentation:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:218
+msgid "Variable"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:218
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:218
+msgid "Comment"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:220
+msgid "WITH_DOC"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:220
+#: ../../build/doc/pgRouting-installation.rst:223
+#: ../../build/doc/pgRouting-installation.rst:224
+#: ../../build/doc/pgRouting-installation.rst:225
+msgid "BOOL=OFF"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:220
+msgid "Turn on/off building the documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:221
+msgid "BUILD_HTML"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:221
+#: ../../build/doc/pgRouting-installation.rst:222
+msgid "BOOL=ON"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:221
+msgid "If ON, turn on/off building HTML for user's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:222
+msgid "BUILD_DOXY"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:222
+msgid "If ON, turn on/off building HTML for developer's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:223
+msgid "BUILD_LATEX"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:223
+msgid "If ON, turn on/off building PDF"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:224
+msgid "BUILD_MAN"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:224
+msgid "If ON, turn on/off building MAN pages"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:225
+msgid "DOC_USE_BOOTSTRAP"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:225
+msgid "If ON, use sphinx-bootstrap for HTML pages of the users documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:228
+msgid "Configuring with documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:234
+msgid "Most of the effort of the documentation has being on the html files."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:240
+msgid "Building"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:242
+msgid "Using ``make`` to build the code and the documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:244
+msgid "The following instructions start from *path/to/pgrouting/build*"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:253
+msgid ""
+"We have tested on several platforms, For installing or reinstalling all the "
+"steps are needed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:255
+msgid "The sql signatures are configured and build in the ``cmake`` command."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:258
+msgid "MinGW on Windows"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:269
+msgid "Linux"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:270
+msgid "The following instructions start from *path/to/pgrouting*"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:280
+msgid "When the configuration changes:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:286
+msgid "and start the build process as mentioned above."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:291
+msgid "Testing"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:293
+msgid "Currently there is no :code:`make test` and testing is done as follows"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:295
+msgid "The following instructions start from *path/to/pgrouting/*"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:305
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:308
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:309
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:310
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgRouting-introduction.po b/locale/es/LC_MESSAGES/pgRouting-introduction.po
new file mode 100644
index 0000000..2f5927b
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgRouting-introduction.po
@@ -0,0 +1,222 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgRouting-introduction.rst:13
+msgid "Introduction"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:15
+msgid ""
+"pgRouting is an extension of `PostGIS <http://postgis.net>`_ and `PostgreSQL"
+" <http://postgresql.org>`_ geospatial database and adds routing and other "
+"network analysis functionality. A predecessor of pgRouting – pgDijkstra, "
+"written by Sylvain Pasche from `Camptocamp <http://camptocamp.com>`_, was "
+"later extended by `Orkney <http://www.orkney.co.jp>`_ and renamed to "
+"pgRouting. The project is now supported and maintained by `Georepublic "
+"<http://georepublic.info>`_, `iMaptools <http://imaptools.com/>`__ and a "
+"broad user community."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:17
+msgid ""
+"pgRouting is an `OSGeo Labs <http://wiki.osgeo.org/wiki/OSGeo_Labs>`_ "
+"project of the `OSGeo Foundation <http://osgeo.org>`_ and included on `OSGeo"
+" Live <http://live.osgeo.org/>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:23
+msgid "License"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:25
+msgid "The following licenses can be found in pgRouting:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:30
+msgid "**License**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:32
+msgid "GNU General Public License, version 2"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:33
+msgid ""
+"Most features of pgRouting are available under `GNU General Public License, "
+"version 2 <http://www.gnu.org/licenses/gpl-2.0.html>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:34
+msgid "Boost Software License - Version 1.0"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:35
+msgid ""
+"Some Boost extensions are available under `Boost Software License - Version "
+"1.0 <http://www.boost.org/LICENSE_1_0.txt>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:36
+msgid "MIT-X License"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:37
+msgid ""
+"Some code contributed by iMaptools.com is available under MIT-X license."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:38
+msgid "Creative Commons Attribution-Share Alike 3.0 License"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:39
+msgid ""
+"The pgRouting Manual is licensed under a `Creative Commons Attribution-Share"
+" Alike 3.0 License <http://creativecommons.org/licenses/by-sa/3.0/>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:41
+msgid ""
+"In general license information should be included in the header of each "
+"source file."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:45
+msgid "Contributors"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:48
+msgid "This Release Contributors"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:51
+#: ../../build/doc/pgRouting-introduction.rst:71
+msgid "Individuals (in alphabetical order)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:53
+msgid "Maoguang Wang, Vidhan Jain, Virginia Vergara"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:55
+msgid ""
+"And all the people that give us a little of their time making comments, "
+"finding issues, making pull requests etc."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:58
+#: ../../build/doc/pgRouting-introduction.rst:76
+msgid "Corporate Sponsors (in alphabetical order)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:60
+#: ../../build/doc/pgRouting-introduction.rst:78
+msgid ""
+"These are corporate entities that have contributed developer time, hosting, "
+"or direct monetary funding to the pgRouting project:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:62
+msgid "`Georepublic <https://georepublic.info/en/>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:63
+msgid ""
+"`Google Summer of Code <https://developers.google.com/open-source/gsoc/>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:64
+msgid "`iMaptools <http://imaptools.com>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:65
+msgid "`Paragon Corporation <http://www.paragoncorporation.com/>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:68
+msgid "Contributors Past & Present:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:73
+msgid ""
+"Akio Takubo, Andrea Nardelli, Anton Patrushev, Ashraf Hossain, Christian "
+"Gonzalez, Daniel Kastl, Dave Potts, David Techer, Denis Rykov, Ema Miyawaki,"
+" Florian Thurkow, Frederic Junod, Gerald Fenoy, Jay Mahadeokar, Jinfu Leng, "
+"Kai Behncke, Kishore Kumar, Ko Nagase, Manikata Kondeti, Mario Basa, Martin "
+"Wiesenhaan,  Maxim Dubinin, Maoguang Wang, Mohamed Zia, Mukul Priya, Razequl"
+" Islam, Regina Obe, Rohith Reddy, Sarthak Agarwal, Stephen Woodbridge, "
+"Sylvain Housseman, Sylvain Pasche, Vidhan Jain, Virginia Vergara"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:80
+msgid "Camptocamp"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:81
+msgid "CSIS (University of Tokyo)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:82
+msgid "Georepublic"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:83
+msgid "Google Summer of Code"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:84
+msgid "iMaptools"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:85
+msgid "Orkney"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:86
+msgid "Paragon Corporation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:90
+msgid "More Information"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:92
+msgid ""
+"The latest software, documentation and news items are available at the "
+"pgRouting web site http://pgrouting.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:93
+msgid ""
+"PostgreSQL database server at the PostgreSQL main site "
+"http://www.postgresql.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:94
+msgid "PostGIS extension at the PostGIS project web site http://postgis.net."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:95
+msgid "Boost C++ source libraries at http://www.boost.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:96
+msgid ""
+"Computational Geometry Algorithms Library (CGAL) at http://www.cgal.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:97
+msgid ""
+"The Migration guide can be found at "
+"https://github.com/pgRouting/pgrouting/wiki/Migration-Guide."
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_KSP.po b/locale/es/LC_MESSAGES/pgr_KSP.po
new file mode 100644
index 0000000..2ace271
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_KSP.po
@@ -0,0 +1,402 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_KSP.rst:13
+msgid "pgr_KSP"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:18
+msgid "``pgr_KSP`` — Returns the \"K\" shortest paths."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:27
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:28
+msgid "Signature change 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:32
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:34
+msgid ""
+"The K shortest path routing algorithm based on Yen's algorithm. \"K\" is the"
+" number of shortest paths desired."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:37
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:46
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:52
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:64
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:73
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_KSP.rst:83
+#: ../../build/doc/pgr_KSP.rst:103
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_KSP.rst:83
+#: ../../build/doc/pgr_KSP.rst:103
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_KSP.rst:83
+#: ../../build/doc/pgr_KSP.rst:103
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14 ../../build/doc/pgr_KSP.rst:110
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:80
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:85
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:85
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:85
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:86
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:86 ../../build/doc/pgr_KSP.rst:87
+#: ../../build/doc/pgr_KSP.rst:107 ../../build/doc/pgr_KSP.rst:108
+#: ../../build/doc/pgr_KSP.rst:109
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:86
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:87
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:87
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:88
+msgid "**k**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:88 ../../build/doc/pgr_KSP.rst:105
+#: ../../build/doc/pgr_KSP.rst:106
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:88
+msgid "The desiered number of paths."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:89
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:89 ../../build/doc/pgr_KSP.rst:90
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:89
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:90
+msgid "**heap_paths**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:90
+msgid ""
+"(optional). When ``true`` returns all the paths stored in the process heap. "
+"Default is ``false`` which only returns ``k`` paths."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:93
+msgid ""
+"Roughly, if the shortest path has ``N`` edges, the heap will contain about "
+"than ``N * k`` paths for small value of ``k`` and ``k > 1``."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:98
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:100
+msgid ""
+"Returns set of ``(seq, path_seq, path_id, node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:105
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:105
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:106
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:106
+msgid ""
+"Relative position in the path of ``node`` and ``edge``. Has value **1** for "
+"the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:107
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:107
+msgid ""
+"Path identifier. The ordering of the paths For two paths i, j if i < j then "
+"agg_cost(i) <= agg_cost(j)."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:108
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:108
+msgid "Identifier of the node in the path."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:109
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:109
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the route."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:110 ../../build/doc/pgr_KSP.rst:111
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:110
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:111
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:111
+msgid "Aggregate cost from ``start_vid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:115
+msgid ""
+"During the transition to 3.0, because pgr_ksp version 2.0 doesn't have "
+"defined a directed flag nor a heap_path flag, when pgr_ksp is used with only"
+" one flag version 2.0 signature will be used."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:119
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:122
+msgid "Examples to handle the one flag to choose signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:124 ../../build/doc/pgr_KSP.rst:134
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:132
+msgid ""
+"Examples for queries marked as ``directed`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:143
+msgid ""
+"Examples for queries marked as ``undirected`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:145
+msgid "The examples in this section use the following :ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:153
+msgid "Examples for queries marked as ``directed`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:155
+msgid "The examples in this section use the following :ref:`fig3`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:164
+msgid "Examples for queries marked as ``undirected`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:166
+msgid "The examples in this section use the following :ref:`fig4`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:173
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:175
+msgid "http://en.wikipedia.org/wiki/K_shortest_path_routing"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:176
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:179
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:180
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:181
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_TSP.po b/locale/es/LC_MESSAGES/pgr_TSP.po
new file mode 100644
index 0000000..a9fecef
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_TSP.po
@@ -0,0 +1,224 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_TSP.rst:13
+msgid "pgr_TSP"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:18
+msgid "``pgr_TSP`` - Returns a route that visits all the nodes exactly once."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:21
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:22
+msgid "Signature changed 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:26
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:28
+msgid ""
+"The travelling salesman problem (TSP) or travelling salesperson problem asks"
+" the following question:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:30
+msgid ""
+"Given a list of cities and the distances between each pair of cities, what "
+"is the shortest possible route that visits each city exactly once and "
+"returns to the origin city?"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:32
+msgid ""
+"This implementation uses simulated annealing to return the approximate "
+"solution when the input is given in the form of matrix cell contents. The "
+"matrix information must be symmetrical."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:37
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:58
+msgid "Basic Use"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:67
+msgid ""
+"Because the documentation examples are auto generated and tested for non "
+"changing results, and the default is to have random execution, the example "
+"is wrapping the actual call."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:81
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:96
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:103
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:106
+msgid "Description of the Matrix Cell SQL query"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:109
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:109
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:109
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:111
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:111 ../../build/doc/pgr_TSP.rst:112
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:111
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:112
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:112
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:113
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:113
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:113
+msgid "Cost for going from start_vid to end_vid"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:116
+msgid "Can be Used with:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:118
+msgid ":ref:`pgr_dijkstraCostmatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:119
+msgid ":ref:`pgr_withPointsCostmatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:120
+msgid ":ref:`pgr_floydWarshall`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:121
+msgid ":ref:`pgr_johnson`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:123
+msgid "To generate a symmetric matrix"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:125
+msgid "directed := false."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:127
+msgid ""
+"If using directed := true, the resulting non symmetric matrix must be "
+"converted to symmetric by fixing the non symmetric values according to your "
+"application needs."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:145
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:147
+msgid "Using with points of interest."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:149
+msgid "To generate a symmetric matrix:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:151
+msgid ""
+"the **side** information of pointsOfInterset is ignored by not including it "
+"in the query"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:152
+msgid "and **directed := false**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:158
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:163
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:165
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:166
+msgid "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:167
+msgid "http://en.wikipedia.org/wiki/Simulated_annealing"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:170
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:171
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:172
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_aStar.po b/locale/es/LC_MESSAGES/pgr_aStar.po
new file mode 100644
index 0000000..4e2ccb4
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_aStar.po
@@ -0,0 +1,642 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_aStar.rst:13
+msgid "pgr_aStar"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:18
+msgid "``pgr_aStar`` — Returns the shortest path using A* algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:26
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:27
+msgid "pgr_astar(one to one) 2.0.0, Signature changed 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:28
+msgid "pgr_astar(other signatures) 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:33
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:35
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:37
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:38
+msgid "Vertices of the graph are:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:40
+msgid "**positive** when it belongs to the edges_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:42
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:44
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:46
+msgid "The agg_cost the non included values (v, v) is 0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:48
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:50
+msgid "The agg_cost the non included values (u, v) is ∞"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:52
+msgid "When (x,y) coordinates for the same vertex identifier differ:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:54
+msgid "A random selection of the vertex's (x,y) coordinates is used."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:56
+msgid "Running time: :math:`O((E + V) * \\log V)`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:61
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:84
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:92
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:99
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:112
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:118
+msgid "Undirected using  Heuristic 2"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:130
+msgid "One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:139
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:138 ../../build/doc/pgr_aStar.rst:165
+#: ../../build/doc/pgr_aStar.rst:194
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:139 ../../build/doc/pgr_aStar.rst:166
+#: ../../build/doc/pgr_aStar.rst:195
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:141
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_astar` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:144
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_astar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:145
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:157
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:166
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:168
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_aStar` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:171
+msgid "The result is the union of the results of the one to one `pgr_aStar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:172 ../../build/doc/pgr_aStar.rst:201
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:186
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:195
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:197
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:200
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:203
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:217
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_aStar.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_aStar.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13 ../../build/doc/pgr_aStar.rst:234
+#: ../../build/doc/pgr_aStar.rst:235
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:228
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:231
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:233
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:233
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:233
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:234 ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:234
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:235 ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:235
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:236
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:236
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:236
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:238
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:239
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:241
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:241
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:241
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:243
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:244
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:245
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:246
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:247
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:248
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:250
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:250 ../../build/doc/pgr_aStar.rst:251
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:250
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:251
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:251
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:260
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:262
+msgid ":ref:`astar`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:263
+msgid ":doc:`sampledata`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:264
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:265
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:268
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:269
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:270
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_aStarCost.po b/locale/es/LC_MESSAGES/pgr_aStarCost.po
new file mode 100644
index 0000000..41e1637
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_aStarCost.po
@@ -0,0 +1,528 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_aStarCost.rst:13
+msgid "pgr_aStarCost -- proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:18
+msgid ""
+"``pgr_aStarCost`` — Returns the aggregate cost shortest path using "
+":ref:`astar` algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:26
+msgid "Availability: 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:28
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:46
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:53
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:60
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:72
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:78
+msgid "Setting a Heuristic"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:90
+msgid "One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:99
+msgid ""
+"This signature finds a path from one ``start_vid`` to each ``end_vid`` in "
+"``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:98 ../../build/doc/pgr_aStarCost.rst:125
+#: ../../build/doc/pgr_aStarCost.rst:154
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:99 ../../build/doc/pgr_aStarCost.rst:126
+#: ../../build/doc/pgr_aStarCost.rst:155
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:101
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_astar` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:104
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_astar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:105
+msgid ""
+"The extra ``end_vid`` column in the result is used to distinguish to which "
+"path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:117
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:126
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:128
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_aStar` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:131
+msgid "The result is the union of the results of the one to one `pgr_aStar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:132
+msgid ""
+"The extra ``start_vid`` column  in the result is used to distinguish to "
+"which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:146
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:155
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:157
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:160
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:161
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:163
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:177
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCost.rst:191
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCost.rst:191
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_aStarCost.rst:194 ../../build/doc/pgr_aStarCost.rst:195
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:188
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:191
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:193
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:193
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:193
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:194
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:194
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:195
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:195
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:196
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:196
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:196
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:198
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:199
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:201
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:201
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:201
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:203
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:204
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:205
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:206
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:207
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:208
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:210
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:210 ../../build/doc/pgr_aStarCost.rst:211
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:210
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. See "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:211
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:211
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:224
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:226
+msgid ":ref:`astar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:227
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:228
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:229
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:232
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:233
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:234
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_aStarCostMatrix.po b/locale/es/LC_MESSAGES/pgr_aStarCostMatrix.po
new file mode 100644
index 0000000..5193921
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_aStarCostMatrix.po
@@ -0,0 +1,457 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:13
+msgid "pgr_aStarCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:18
+msgid ""
+"``pgr_aStarCostMatrix`` - Calculates the a cost matrix using "
+":ref:`pgr_aStar`."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:33
+msgid "Availability: 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:37
+msgid "Using aStar algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:40
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:57
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:60
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:60
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:68
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:80
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:88
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:90
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:98
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:106
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:109
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:111
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:111
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:111
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:112
+msgid "**vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:112
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:112
+msgid "Array of vertices_identifiers."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:113
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:113
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:113
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:115
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:116
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:118
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:118
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:118
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:120
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:121
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:122
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:123
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:124
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:125
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:127
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:127
+#: ../../build/doc/pgr_aStarCostMatrix.rst:128
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:127
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:128
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:128
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:140
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:142
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:150
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:152
+msgid ":ref:`astar`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:153
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:154
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:155
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:158
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:159
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:160
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_alphaShape.po b/locale/es/LC_MESSAGES/pgr_alphaShape.po
new file mode 100644
index 0000000..851cd18
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_alphaShape.po
@@ -0,0 +1,169 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_alphaShape.rst:13
+msgid "pgr_alphaShape"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:21
+msgid "``pgr_alphaShape`` — Core function for alpha shape computation."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:27
+msgid ""
+"Returns a table with (x, y) rows that describe the vertices of an alpha "
+"shape."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:35
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:37
+msgid ""
+"``text`` a SQL query, which should return a set of rows with the following "
+"columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:43
+msgid "``int4`` identifier of the vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:44
+msgid "``float8`` x-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:45
+msgid "``float8`` y-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:47
+msgid ""
+"(optional) ``float8`` alpha value. If specified alpha value equals 0 "
+"(default), then optimal alpha value is used. For more information, see `CGAL"
+" - 2D Alpha Shapes "
+"<http://doc.cgal.org/latest/Alpha_shapes_2/group__PkgAlphaShape2.html>`_."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:50
+msgid "Returns a vertex record for each row:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:52
+msgid "x-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:53
+msgid "y-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:55
+msgid ""
+"If a result includes multiple outer/inner rings, return those with separator"
+" row (x=NULL and y=NULL)."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:58
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:59
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:60
+msgid ""
+"Added alpha argument with default 0 (use optimal value) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:61
+msgid ""
+"Supported to return multiple outer/inner ring coordinates with separator row"
+" (x=NULL and y=NULL) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:64
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:65
+msgid ""
+"PgRouting's alpha shape implementation has no way to control the order of "
+"the output points, so the actual output might different for the same input "
+"data. The first query, has the output ordered, he second query shows an "
+"example usage:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:70
+msgid "Example: the (ordered) results"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:76
+msgid "Example: calculating the area"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:77
+msgid "Steps:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:79
+msgid "Calculates the alpha shape"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:80
+msgid "the :code:`ORDER BY` clause is not used."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:81
+msgid "constructs a polygon"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:82
+msgid "and computes the area"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:90
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:93
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:95
+msgid ":ref:`pgr_drivingDistance` - Driving Distance"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:96
+msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:99
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:100
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:101
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_analyzeGraph.po b/locale/es/LC_MESSAGES/pgr_analyzeGraph.po
new file mode 100644
index 0000000..22237a6
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_analyzeGraph.po
@@ -0,0 +1,361 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_analyzeGraph.rst:13
+msgid "pgr_analyzeGraph"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:19
+msgid "``pgr_analyzeGraph`` — Analyzes the network topology."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:23
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:25
+#: ../../build/doc/pgr_analyzeGraph.rst:61
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:27
+#: ../../build/doc/pgr_analyzeGraph.rst:63
+msgid "``OK`` after the analysis has finished."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:28
+#: ../../build/doc/pgr_analyzeGraph.rst:69
+msgid "``FAIL`` when the analysis was not completed due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:43
+msgid "Prerequisites"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:44
+msgid ""
+"The  edge table to be analyzed must contain a source column and a target "
+"column filled with id's of the vertices of the segments and the "
+"corresponding vertices table <edge_table>_vertices_pgr that stores the "
+"vertices information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:46
+msgid ""
+"Use :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create the "
+"vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:47
+msgid ""
+"Use :ref:`pgr_createTopology <pgr_create_topology>` to create the topology "
+"and the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:50
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:51
+msgid "The analyze graph function accepts the following parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:53
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:54
+msgid ""
+"``float8`` Snapping tolerance of disconnected edges. (in projection unit)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:55
+msgid ""
+"``text``  Geometry column name of the network table. Default value is "
+"``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:56
+msgid ""
+"``text``  Primary key column name of the network table. Default value is "
+"``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:57
+msgid ""
+"``text`` Source column name of the network table. Default value is "
+"``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:58
+msgid ""
+"``text``  Target column name of the network table.  Default value is "
+"``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:59
+msgid ""
+"``text``   Condition to select  a subset or rows.  Default value is ``true``"
+" to indicate all rows."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:65
+msgid "Uses the vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:66
+msgid ""
+"Fills completely the ``cnt`` and ``chk`` columns of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:67
+msgid ""
+"Returns the analysis of the section of the network defined by  "
+"``rows_where``"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:71
+msgid "The vertices table is not found."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:72
+msgid ""
+"A required column of the Network table is not found or is not of the "
+"appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:73
+msgid "The condition is not well formed."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:74
+msgid "The names of source , target or id are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:75
+msgid "The SRID of the geometry could not be determined."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:79
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:80
+msgid ""
+"The vertices table can be created with :ref:`pgr_createVerticesTable "
+"<pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:82
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:84
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:85
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:86
+msgid "``integer``  Indicator that the vertex might have a problem."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:87
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:88
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:89
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:92
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:93
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:96
+msgid "Usage when the edge table's columns MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:99
+msgid "The simplest way to use pgr_analyzeGraph is:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:106
+msgid "When the arguments are given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:111
+msgid "We get the same result as the simplest way to use the function."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order: In this example, the column ``id`` of the table ``mytable`` is passed"
+" to the function as the geometry column, and the geometry column "
+"``the_geom`` is passed to the function as the id column."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:130
+#: ../../build/doc/pgr_analyzeGraph.rst:208
+msgid "When using the named notation"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:131
+#: ../../build/doc/pgr_analyzeGraph.rst:209
+msgid "The order of the parameters do not matter:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:141
+msgid ""
+"Parameters defined with a default value can be omitted, as long as the value"
+" matches the default:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:148
+#: ../../build/doc/pgr_analyzeGraph.rst:223
+msgid "Selecting rows using rows_where parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:149
+msgid ""
+"Selecting rows based on the id. Displays the analysis a the section of the "
+"network."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:155
+msgid ""
+"Selecting the rows where the geometry is near the geometry of row with "
+"``id`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:161
+msgid ""
+"Selecting the rows where the geometry is near the geometry of the row with "
+"``gid`` =100 of the table ``othertable``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:172
+msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:174
+msgid "For the following table"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:183
+msgid "Using positional notation:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:184
+msgid ""
+"The arguments need to be given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order: In this example, the column ``gid`` of the table ``mytable`` is "
+"passed to the function as the geometry column, and the geometry column "
+"``mygeom`` is passed to the function as the id column."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:219
+msgid ""
+"In this scenario omitting a parameter would create an error because the "
+"default values for the column names do not match the column names of the "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:224
+msgid "Selecting rows based on the id."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:234
+msgid ""
+"Selecting the rows WHERE the geometry is near the geometry of row with "
+"``id`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:246
+msgid ""
+"Selecting the rows WHERE the geometry is near the place='myhouse' of the "
+"table ``othertable``. (note the use of quote_literal)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:263
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:390
+msgid "The examples use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:394
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:396
+msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:397
+msgid ":ref:`pgr_analyze_oneway` to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:398
+msgid ""
+":ref:`pgr_createVerticesTable <pgr_create_vert_table>` to reconstruct the "
+"vertices table based on the source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:399
+msgid ""
+":ref:`pgr_nodeNetwork <pgr_node_network>` to create nodes to a not noded "
+"edge table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:402
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:403
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:404
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_analyzeOneWay.po b/locale/es/LC_MESSAGES/pgr_analyzeOneWay.po
new file mode 100644
index 0000000..627da76
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_analyzeOneWay.po
@@ -0,0 +1,290 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:13
+msgid "pgr_analyzeOneway"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:19
+msgid ""
+"``pgr_analyzeOneway`` — Analyzes oneway Sstreets and identifies flipped "
+"segments."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:23
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:25
+msgid ""
+"This function analyzes oneway streets in a graph and identifies any flipped "
+"segments."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:42
+msgid ""
+"The analyses of one way segments is pretty simple but can be a powerful "
+"tools to identifying some the potential problems created by setting the "
+"direction of a segment the wrong way. A node is a `source` if it has edges "
+"the exit from that node and no edges enter that node. Conversely, a node is "
+"a `sink` if all edges enter the node but none exit that node. For a `source`"
+" type node it is logically impossible to exist because no vehicle can exit "
+"the node if no vehicle and enter the node. Likewise, if you had a `sink` "
+"node you would have an infinite number of vehicle piling up on this node "
+"because you can enter it but not leave it."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:44
+msgid ""
+"So why do we care if the are not feasible? Well if the direction of an edge "
+"was reversed by mistake we could generate exactly these conditions. Think "
+"about a divided highway and on the north bound lane one segment got entered "
+"wrong or maybe a sequence of multiple segments got entered wrong or maybe "
+"this happened on a round-about. The result would be potentially a `source` "
+"and/or a `sink` node."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:46
+msgid ""
+"So by counting the number of edges entering and exiting each node we can "
+"identify both `source` and `sink` nodes so that you can look at those areas "
+"of your network to make repairs and/or report the problem back to your data "
+"vendor."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:49
+msgid "Prerequisites"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:50
+msgid ""
+"The  edge table to be analyzed must contain a source column and a target "
+"column filled with id's of the vertices of the segments and the "
+"corresponding vertices table <edge_table>_vertices_pgr that stores the "
+"vertices information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:52
+msgid ""
+"Use :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create the "
+"vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:53
+msgid ""
+"Use :ref:`pgr_createTopology <pgr_create_topology>` to create the topology "
+"and the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:56
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:57
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:58
+msgid "``text[]`` source node **in** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:59
+msgid "``text[]`` source node **out** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:60
+msgid "``text[]`` target node **in** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:61
+msgid "``text[]`` target node **out** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:62
+msgid ""
+"``text`` oneway column name name of the network table. Default value is "
+"``oneway``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:63
+msgid ""
+"``text`` Source column name of the network table. Default value is "
+"``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:64
+msgid ""
+"``text``  Target column name of the network table.  Default value is "
+"``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:65
+msgid ""
+"``boolean`` flag to treat oneway NULL values as bi-directional.  Default "
+"value is ``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:67
+msgid ""
+"It is strongly recommended to use the named notation. See "
+":ref:`pgr_createVerticesTable <pgr_create_vert_table>` or "
+":ref:`pgr_createTopology <pgr_create_topology>` for examples."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:70
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:72
+msgid "``OK`` after the analysis has finished."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:74
+msgid "Uses the vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:75
+msgid ""
+"Fills completely the ``ein`` and ``eout`` columns of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:77
+msgid "``FAIL`` when the analysis was not completed due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:79
+msgid "The vertices table is not found."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:80
+msgid ""
+"A required column of the Network table is not found or is not of the "
+"appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:81
+msgid "The names of source , target or oneway are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:83
+msgid ""
+"The rules are defined as an array of text strings that if match the "
+"``oneway`` value would be counted as ``true`` for the source or target "
+"**in** or **out** condition."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:86
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:87
+msgid ""
+"The vertices table can be created with :ref:`pgr_createVerticesTable "
+"<pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:89
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:91
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:92
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex."
+" See :ref:`pgr_analyzeGgraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:93
+msgid ""
+"``integer``  Indicator that the vertex might have a problem. See "
+":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:94
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as incoming."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:95
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as outgoing."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:96
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:100
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:101
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:105
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:129
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:133
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:135
+msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:136
+msgid ":ref:`analytics` for an overview of the analysis of a graph."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:137
+msgid ""
+":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:138
+msgid ""
+":ref:`pgr_create_vert_table` to reconstruct the vertices table based on the "
+"source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:141
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:142
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:143
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_articulationPoints.po b/locale/es/LC_MESSAGES/pgr_articulationPoints.po
new file mode 100644
index 0000000..225a3d6
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_articulationPoints.po
@@ -0,0 +1,316 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_articulationPoints.rst:13
+msgid "pgr_articulationPoints - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:16
+msgid ""
+"``pgr_articulationPoints`` - Return the articulation points of an undirected"
+" graph. In particular, the algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:22
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:30
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:32
+msgid ""
+"Those vertices that belong to more than one biconnected component are called"
+" articulation points or, equivalently, cut vertices. Articulation points are"
+" vertices whose removal would increase the number of connected components in"
+" the graph. This implementation can only be used with an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:39
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:41
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:43
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:45
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:47
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:62
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:75
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the return values for articulation points"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:91
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:93
+msgid "http://en.wikipedia.org/wiki/Biconnected_component"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:94
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:97
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:98
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:99
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_bdAstar.po b/locale/es/LC_MESSAGES/pgr_bdAstar.po
new file mode 100644
index 0000000..fdfaa05
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_bdAstar.po
@@ -0,0 +1,669 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdAstar.rst:13
+msgid "pgr_bdAstar"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:18
+msgid "``pgr_bdAstar`` — Returns the shortest path using A* algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:26
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:27
+msgid "pgr_bdAstar(one to one) 2.0.0, Signature change on 2.5.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:28
+msgid "pgr_bdAstar(other signatures) 2.5.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:32
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:54
+msgid ""
+"Using these signatures, will load once the graph and perform several one to "
+"one `pgr_bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:56
+msgid ""
+"The result is the union of the results of the one to one `pgr_bdAStar`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:57
+msgid ""
+"The extra ``start_vid`` and/or ``end_vid`` in the result is used to "
+"distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:61
+msgid "Avaliability"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:62
+msgid "pgr_bdAstar(one to one) 2.0, signature change on 2.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:63
+msgid "pgr_bdAstar(other signatures) 2.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:68
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:76
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:87
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to the ``end_vid``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:84
+msgid "on a **directed** graph"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:85
+msgid "with **heuristic**'s value 5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:86
+msgid "with **factor**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:87
+msgid "with **epsilon**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:89
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:102
+msgid "pgr_bdAstar One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:111
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to the ``end_vid``"
+" allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:109
+msgid "**heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:110 ../../build/doc/pgr_bdAstar.rst:137
+#: ../../build/doc/pgr_bdAstar.rst:162 ../../build/doc/pgr_bdAstar.rst:186
+msgid "and/or **factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:111 ../../build/doc/pgr_bdAstar.rst:138
+#: ../../build/doc/pgr_bdAstar.rst:163 ../../build/doc/pgr_bdAstar.rst:187
+msgid "and/or **epsilon**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:114
+msgid ""
+"In the One to One signature, because of the deprecated signature existence, "
+"it is compulsory to indicate if the graph is **directed** or **undirected**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:116
+msgid "Directed using Heuristic 2"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:127
+msgid "pgr_bdAstar One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:139
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to each "
+"``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:135 ../../build/doc/pgr_bdAstar.rst:160
+#: ../../build/doc/pgr_bdAstar.rst:184
+msgid "if the graph is **directed** or **undirected**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:136 ../../build/doc/pgr_bdAstar.rst:161
+#: ../../build/doc/pgr_bdAstar.rst:185
+msgid "and/or **heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:141
+msgid "Directed using Heuristic 3 and a factor of 3.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:152
+msgid "pgr_bdAstar Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:163
+msgid ""
+"This usage finds the shortest path from each ``start_vid`` in ``start_vids``"
+" to the ``end_vid`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:165
+msgid "Undirected graph with Heuristic 4"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:176
+msgid "pgr_bdAstar Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:187
+msgid ""
+"This usage finds the shortest path from each ``start_vid`` in ``start_vids``"
+" to each ``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:189
+msgid "Directed graph with a factor of 0.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:196
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:10 ../../build/doc/bdAstar-family.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11 ../../build/doc/bdAstar-family.rst:13
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:16
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:21
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:22
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:23
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:24
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:25
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:26
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28 ../../build/doc/bdAstar-family.rst:29
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:213
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:215
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:216
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:217
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:218
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:221
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:222
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:223
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_bdAstarCost.po b/locale/es/LC_MESSAGES/pgr_bdAstarCost.po
new file mode 100644
index 0000000..9b72e10
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_bdAstarCost.po
@@ -0,0 +1,594 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdAstarCost.rst:13
+msgid "pgr_bdAstarCost - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:18
+msgid "``pgr_bdAstarCost`` — Returns the shortest path using A* algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:26
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:32
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:46
+msgid ""
+"Using these signatures, will load once the graph and perform several one to "
+"one `pgr_bdAstarCost`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:48
+msgid ""
+"The result is the union of the results of the one to one `pgr_bdAstarCost`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:49
+msgid ""
+"The extra ``start_vid`` and/or ``end_vid`` in the result is used to "
+"distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:56
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:64
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:75
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to the ``end_vid``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:72
+msgid "on a **directed** graph"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:73
+msgid "with **heuristic**'s value 5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:74
+msgid "with **factor**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:75
+msgid "with **epsilon**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:77
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:90
+msgid "pgr_bdAstarCost One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:100
+#: ../../build/doc/pgr_bdAstarCost.rst:128
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to each "
+"``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:97
+#: ../../build/doc/pgr_bdAstarCost.rst:124
+#: ../../build/doc/pgr_bdAstarCost.rst:149
+#: ../../build/doc/pgr_bdAstarCost.rst:173
+msgid "if the graph is **directed** or **undirected**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:98
+msgid "**heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:99
+#: ../../build/doc/pgr_bdAstarCost.rst:126
+#: ../../build/doc/pgr_bdAstarCost.rst:151
+#: ../../build/doc/pgr_bdAstarCost.rst:175
+msgid "and/or **factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:100
+#: ../../build/doc/pgr_bdAstarCost.rst:127
+#: ../../build/doc/pgr_bdAstarCost.rst:152
+#: ../../build/doc/pgr_bdAstarCost.rst:176
+msgid "and/or **epsilon**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:103
+msgid ""
+"In the One to One signature, because of the deprecated signature existence, "
+"it is compulsory to indicate if the graph is **directed** or **undirected**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:105
+msgid "Directed using Heuristic 2"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:116
+msgid "pgr_bdAstarCost One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:125
+#: ../../build/doc/pgr_bdAstarCost.rst:150
+#: ../../build/doc/pgr_bdAstarCost.rst:174
+msgid "and/or **heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:130
+msgid "Directed using Heuristic 3 and a factor of 3.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:141
+msgid "pgr_bdAstarCost Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:152
+msgid ""
+"This usage finds the shortest path from each ``start_vid`` in ``start_vids``"
+" to the ``end_vid`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:154
+msgid "Undirected graph with Heuristic 4"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:165
+msgid "pgr_bdAstarCost Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:176
+msgid ""
+"This usage finds the shortest path from each ``start_vid`` in ``start_vids``"
+" to each ``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:178
+msgid "Directed graph with a factor of 0.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:185
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:10 ../../build/doc/bdAstar-family.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11 ../../build/doc/bdAstar-family.rst:13
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:16
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:21
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:22
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:23
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:24
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:25
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:26
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28 ../../build/doc/bdAstar-family.rst:29
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:202
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:204
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:205
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:206
+msgid ""
+"`Migration Guide <https://github.com/cvvergara/pgrouting/wiki/Migration-"
+"Guide#pgr_bdastar>`_"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:207
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:208
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:211
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:212
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:213
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_bdAstarCostMatrix.po b/locale/es/LC_MESSAGES/pgr_bdAstarCostMatrix.po
new file mode 100644
index 0000000..c8738fa
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_bdAstarCostMatrix.po
@@ -0,0 +1,536 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:13
+msgid "pgr_bdAstarCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:18
+msgid ""
+"``pgr_bdAstarCostMatrix`` - Calculates the a cost matrix using "
+":ref:`pgr_bdAstar`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:27
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:35
+msgid "Using Dijkstra algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:38
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:49
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:55
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:68
+msgid ""
+"This usage calculates the cost from the each ``start_vid`` in ``start_vids``"
+" to  each ``start_vid`` in ``start_vids``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:64
+msgid "on a **directed** graph"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:65
+msgid "with **heuristic**'s value 5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:66
+msgid "with **factor**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:67
+msgid "with **epsilon**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:70
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:82
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:95
+msgid ""
+"This usage calculates the cost from the each ``start_vid`` in ``start_vids``"
+" to  each ``start_vid`` in ``start_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:91
+msgid "if the graph is **directed** or **undirected**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:92
+msgid "**heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:93
+msgid "and/or **factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:94
+msgid "and/or **epsilon**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:97
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:99
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:107
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:10 ../../build/doc/bdAstar-family.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11 ../../build/doc/bdAstar-family.rst:13
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:16
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:21
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:22
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:23
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:24
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:25
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:26
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28 ../../build/doc/bdAstar-family.rst:29
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:123
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:125
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:133
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:135
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:136
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:137
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:138
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:141
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:142
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:143
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_bdDijkstra.po b/locale/es/LC_MESSAGES/pgr_bdDijkstra.po
new file mode 100644
index 0000000..b05e40f
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_bdDijkstra.po
@@ -0,0 +1,541 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdDijkstra.rst:13
+msgid "pgr_bdDijkstra"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:15
+msgid ""
+"``pgr_bdDijkstra`` — Returns the shortest path(s) using Bidirectional "
+"Dijkstra algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:23
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:24
+msgid "pgr_bdDijkstra(one to one) 2.0.0, Signature changed 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:25
+msgid "pgr_bdDijkstra(other signatures) 2.5.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:28
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:54
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:60
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:67
+msgid ""
+"The minimal signature is for a **directed** graph from one ``start_vid`` to "
+"one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:80
+msgid "pgr_bdDijkstra One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:87
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:89
+#: ../../build/doc/pgr_bdDijkstra.rst:112
+#: ../../build/doc/pgr_bdDijkstra.rst:141
+#: ../../build/doc/pgr_bdDijkstra.rst:170
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:90
+#: ../../build/doc/pgr_bdDijkstra.rst:113
+#: ../../build/doc/pgr_bdDijkstra.rst:142
+#: ../../build/doc/pgr_bdDijkstra.rst:171
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:103
+msgid "pgr_bdDijkstra One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:110
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:115
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_dijkstra` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:118
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:119
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:132
+msgid "pgr_bdDijkstra Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:139
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:144
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_dijkstra` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:147
+#: ../../build/doc/pgr_bdDijkstra.rst:176
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:148
+#: ../../build/doc/pgr_bdDijkstra.rst:177
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:161
+msgid "pgr_bdDijkstra Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:168
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:173
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:179
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:190
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10 ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11 ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:208
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:210
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:211
+msgid ":ref:`bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:212
+msgid ""
+"http://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/EPP%20shortest%20path%20algorithms.pdf"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:213
+msgid "https://en.wikipedia.org/wiki/Bidirectional_search"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:216
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:217
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:218
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_bdDijkstraCost.po b/locale/es/LC_MESSAGES/pgr_bdDijkstraCost.po
new file mode 100644
index 0000000..0516529
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_bdDijkstraCost.po
@@ -0,0 +1,470 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:13
+msgid "pgr_bdDijkstraCost - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:15
+msgid ""
+"``pgr_bdDijkstraCost`` — Returns the shortest path(s)'s cost using "
+"Bidirectional Dijkstra algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:23
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:30
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:46
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:52
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:59
+msgid ""
+"The minimal signature is for a **directed** graph from one ``start_vid`` to "
+"one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:72
+msgid "pgr_bdDijkstraCost One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:81
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:80
+#: ../../build/doc/pgr_bdDijkstraCost.rst:102
+#: ../../build/doc/pgr_bdDijkstraCost.rst:130
+#: ../../build/doc/pgr_bdDijkstraCost.rst:158
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:81
+#: ../../build/doc/pgr_bdDijkstraCost.rst:103
+#: ../../build/doc/pgr_bdDijkstraCost.rst:131
+#: ../../build/doc/pgr_bdDijkstraCost.rst:159
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:94
+msgid "pgr_bdDijkstraCost One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:103
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:105
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_dijkstra` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:108
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:109
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:122
+msgid "pgr_bdDijkstraCost Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:131
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:133
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_dijkstra` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:136
+#: ../../build/doc/pgr_bdDijkstraCost.rst:164
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:137
+#: ../../build/doc/pgr_bdDijkstraCost.rst:165
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:150
+msgid "pgr_bdDijkstraCost Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:159
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:161
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:167
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:178
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10 ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11 ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:195
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:197
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:198
+msgid ":ref:`pgr_bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:199
+msgid ""
+"http://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/EPP%20shortest%20path%20algorithms.pdf"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:200
+msgid "https://en.wikipedia.org/wiki/Bidirectional_search"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:203
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:204
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:205
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_bdDijkstraCostMatrix.po b/locale/es/LC_MESSAGES/pgr_bdDijkstraCostMatrix.po
new file mode 100644
index 0000000..0b0a2ae
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_bdDijkstraCostMatrix.po
@@ -0,0 +1,382 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:13
+msgid "pgr_bdDijkstraCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:18
+msgid ""
+"``pgr_bdDijkstraCostMatrix`` - Calculates the a cost matrix using "
+":ref:`pgr_bdDijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:27
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:35
+msgid "Using Dijkstra algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:38
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:49
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:55
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:58
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:58
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:66
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:78
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:86
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:88
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:96
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:108
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:108
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:105
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:108
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:110
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:110
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:110
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:111
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:111
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:111
+msgid "Array of identifiers of the vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:112
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:112
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:112
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:122
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:124
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:132
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:134
+msgid ":ref:`bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:135
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:136
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:137
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:140
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:141
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:142
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_biconnectedComponents.po b/locale/es/LC_MESSAGES/pgr_biconnectedComponents.po
new file mode 100644
index 0000000..f4db188
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_biconnectedComponents.po
@@ -0,0 +1,349 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:13
+msgid "pgr_biconnectedComponents - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:15
+msgid ""
+"``pgr_biconnectedComponents`` — Return the biconnected components of an "
+"undirected graph. In particular, the algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:31
+msgid ""
+"The biconnected components of an undirected graph are the maximal subsets of"
+" vertices such that the removal of a vertex from particular component will "
+"not disconnect the component. Unlike connected components, vertices may "
+"belong to multiple biconnected components. Vertices can be present in "
+"multiple biconnected components, but each edge can only be contained in a "
+"single biconnected component. So, the output only has edge version."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:36
+msgid "This implementation can only be used with an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:39
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:41
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:43
+msgid "Components are described by edges"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:45
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:47
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:48
+msgid "`edge` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:50
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:53
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:65
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:78
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:14
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid ""
+"Description of the return values for biconnected components, connected "
+"components (edge version) and strongly connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, component, n_seq, edge)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid ""
+"Component identifier. It is equal to the minimum edge identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:94
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:96
+msgid "http://en.wikipedia.org/wiki/Biconnected_component"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:97
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:100
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:101
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:102
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_boykovKolmogorov.po b/locale/es/LC_MESSAGES/pgr_boykovKolmogorov.po
new file mode 100644
index 0000000..84d76a4
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_boykovKolmogorov.po
@@ -0,0 +1,435 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:14
+msgid "pgr_boykovKolmogorov - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:18
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:20
+msgid ""
+"``pgr_boykovKolmogorov`` — Calculates the flow on the graph edges that "
+"maximizes the flow from the sources to the targets using Boykov Kolmogorov "
+"algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:29
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:30
+msgid "Renamed 2.5.0, Previous name pgr_maxFlowBoykovKolmogorov"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:31
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:8
+msgid ""
+"When the maximum flow is 0 then there is no flow and **EMPTY SET** is "
+"returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:12
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:15
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid ""
+"Creates a **super source** and edges to all the source(s), and a **super "
+"target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid ""
+"The maximum flow through the graph is guaranteed to be the value returned by"
+" :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and"
+" can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:42
+msgid "Running time: Polynomial"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:45
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:61
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:63
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:82
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:84
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:103
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:105
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:124
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:126
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:141
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:4
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10 ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11 ../../build/doc/pgr_maxFlow.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:12
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:159
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:161
+msgid ""
+":ref:`maxFlow`, :ref:`pgr_pushRelabel <pgr_pushRelabel>`, "
+":ref:`pgr_EdmondsKarp <pgr_edmondsKarp>`"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:162
+msgid "http://www.boost.org/libs/graph/doc/boykov_kolmogorov_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:165
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:166
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:167
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_bridges.po b/locale/es/LC_MESSAGES/pgr_bridges.po
new file mode 100644
index 0000000..a80bf4e
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_bridges.po
@@ -0,0 +1,310 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bridges.rst:13
+msgid "pgr_bridges - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:16
+msgid "``pgr_bridges`` - Return the bridges of an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:31
+msgid ""
+"A bridge is an edge of an undirected graph whose deletion increases its "
+"number of connected components. This implementation can only be used with an"
+" undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:36
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:38
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:40
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:42
+msgid "`edge` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:44
+msgid "Running time: :math:`O(E * (V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:47
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:59
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:72
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the return values for bridges"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:88
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:90
+msgid "http://en.wikipedia.org/wiki/Bridge_%28graph_theory%29"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:91
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:94
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:95
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:96
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_connectedComponents.po b/locale/es/LC_MESSAGES/pgr_connectedComponents.po
new file mode 100644
index 0000000..2474096
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_connectedComponents.po
@@ -0,0 +1,346 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_connectedComponents.rst:13
+msgid "pgr_connectedComponents - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:16
+msgid ""
+"``pgr_connectedComponents`` — Return the connected components of an "
+"undirected graph using a DFS-based approach. In particular, the algorithm "
+"implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:22
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:30
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:32
+msgid ""
+"A connected component of an undirected graph is a set of vertices that are "
+"all reachable from each other. This implementation can only be used with an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:37
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:39
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:41
+msgid "Components are described by vertices"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:43
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:45
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:46
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:48
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:63
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:76
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid ""
+"Description of the return values for connected components and strongly "
+"connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, component, n_seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid ""
+"Component identifier. It is equal to the minimum node identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:92
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:94
+msgid "http://en.wikipedia.org/wiki/Connected_component_%28graph_theory%29"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:95
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:98
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:99
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:100
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_contractGraph.po b/locale/es/LC_MESSAGES/pgr_contractGraph.po
new file mode 100644
index 0000000..8d27664
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_contractGraph.po
@@ -0,0 +1,488 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_contractGraph.rst:13
+msgid "pgr_contractGraph - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:15
+msgid ""
+"``pgr_contractGraph`` — Performs graph contraction and returns the "
+"contracted vertices and edges."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:23
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:30
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:32
+msgid ""
+"Contraction reduces the size of the graph by removing some of the vertices "
+"and edges and, for example, might add edges that represent a sequence of "
+"original edges decreasing the total time and space used in graph algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:35
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:52
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:38
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:40
+msgid "There are two types of contraction methods used namely,"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:42
+msgid "Dead End Contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:43
+msgid "Linear Contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:45
+msgid "The values returned include the added edges and contracted vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:47
+msgid "The returned values are ordered as follows:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:49
+msgid "column `id` ascending when type = `v`"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:50
+msgid "column `id` descending when type = `e`"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:55
+msgid "Signature Summary:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:57
+msgid "The pgr_contractGraph function has the following signatures:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:68
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:74
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:80
+msgid "Making a dead end contraction and a linear contraction."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:87
+msgid "Complete signature"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:93
+msgid ""
+"Making a dead end contraction and a linear contraction and vertex 2 is "
+"forbidden from contraction"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_contractGraph.rst:109
+#: ../../build/doc/pgr_contractGraph.rst:130
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_contractGraph.rst:109
+#: ../../build/doc/pgr_contractGraph.rst:130
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_contractGraph.rst:109
+#: ../../build/doc/pgr_contractGraph.rst:130
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgr_contractGraph.rst:136
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_contractGraph.rst:146
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_contractGraph.rst:147
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_contractGraph.rst:148
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:106
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:111
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:111
+#: ../../build/doc/pgr_contractGraph.rst:133
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:111
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:112
+msgid "**contraction_order**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:112
+#: ../../build/doc/pgr_contractGraph.rst:115
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:113
+msgid "Ordered contraction operations."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:113
+msgid "1 = Dead end contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:114
+msgid "2 = Linear contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:115
+msgid "**forbidden_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:115
+msgid ""
+"(optional). Identifiers of vertices forbidden from contraction. Default is "
+"an empty array."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:116
+msgid "**max_cycles**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:116
+#: ../../build/doc/pgr_contractGraph.rst:132
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:116
+msgid ""
+"(optional). Number of times the contraction operations on "
+"`contraction_order` will be performed. Default is 1."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:117
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:117
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:117
+msgid "When ``true`` the graph is considered as `Directed`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:118
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:123
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:125
+msgid ""
+"RETURNS SETOF  (seq, type, id, contracted_vertices, source, target, cost)"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:127
+msgid "The function returns a single row. The columns of the row are:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:132
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:132
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:133
+msgid "**type**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:134
+msgid "Type of the `id`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:134
+msgid "'v' when `id` is an identifier of a vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:135
+msgid "'e' when `id` is an identifier of an edge."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:136
+#: ../../build/doc/pgr_contractGraph.rst:146
+#: ../../build/doc/pgr_contractGraph.rst:147
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:143
+msgid "Identifier of:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:137
+msgid "the  vertex when `type = 'v'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:139
+msgid "The vertex belongs to the edge_table passed as a parameter."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:140
+msgid "the edge when `type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:142
+msgid "The `id` is a decreasing sequence starting from **-1**."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:144
+msgid "Representing a pseudo `id` as is not incorporated into the edge_table."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:145
+msgid "**contracted_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:145
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:145
+msgid "Array of contracted vertex identifiers."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:146
+msgid ""
+"Identifier of the source vertex of the current edge `id`. Valid values when "
+"`type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:147
+msgid ""
+"Identifier of the target vertex of the current edge `id`. Valid values when "
+"`type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:148
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:148
+msgid ""
+"Weight of the edge (`source`, `target`). Valid values when `type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:152
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:154
+msgid "Only dead end contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:160
+msgid "Only linear contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:168
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:169
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:170
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_createTopology.po b/locale/es/LC_MESSAGES/pgr_createTopology.po
new file mode 100644
index 0000000..44a282e
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_createTopology.po
@@ -0,0 +1,395 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_createTopology.rst:13
+msgid "pgr_createTopology"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:18
+msgid ""
+"``pgr_createTopology`` — Builds a network topology based on the geometry "
+"information."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:22
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:24
+#: ../../build/doc/pgr_createTopology.rst:72
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:26
+msgid ""
+"``OK`` after the network topology has been built and the vertices table "
+"created."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:27
+msgid "``FAIL`` when the network topology was not built due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:42
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:45
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:46
+msgid "The topology creation function accepts the following parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:48
+msgid "``text`` Network table name. (may contain the schema name AS well)"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:49
+msgid ""
+"``float8`` Snapping tolerance of disconnected edges. (in projection unit)"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:50
+msgid ""
+"``text``  Geometry column name of the network table. Default value is "
+"``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:51
+msgid ""
+"``text``  Primary key column name of the network table. Default value is "
+"``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:52
+msgid ""
+"``text`` Source column name of the network table. Default value is "
+"``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:53
+msgid ""
+"``text``  Target column name of the network table.  Default value is "
+"``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:54
+msgid ""
+"``text``   Condition to SELECT a subset or rows.  Default value is ``true`` "
+"to indicate all rows that where ``source`` or ``target`` have a null value, "
+"otherwise the condition is used."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:56
+msgid "``boolean`` Clean any previous topology.  Default value is ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:60
+msgid "The ``edge_table`` will be affected"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:62
+msgid "The ``source`` column values will change."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:63
+msgid "The ``target`` column values will change."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:65
+msgid ""
+"An index will be created, if it doesn't exists, to speed up the process to "
+"the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:67
+msgid "``id``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:68
+msgid "``the_geom``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:69
+msgid "``source``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:70
+msgid "``target``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:74
+msgid "``OK`` after the network topology has been built."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:76
+msgid "Creates a vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:77
+msgid "Fills ``id`` and ``the_geom`` columns of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:78
+msgid ""
+"Fills the source and target columns of the edge table referencing the ``id``"
+" of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:81
+msgid "``FAIL`` when the network topology was not built due to an error:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:83
+msgid ""
+"A required column of the Network table is not found or is not of the "
+"appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:84
+msgid "The condition is not well formed."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:85
+msgid "The names of source , target or id are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:86
+msgid "The SRID of the geometry could not be determined."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:90
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:91
+msgid ""
+"The vertices table is a requirement of the :ref:`pgr_analyzeGraph "
+"<pgr_analyze_graph>` and the :ref:`pgr_analyzeOneway <pgr_analyze_oneway>` "
+"functions."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:93
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:95
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:96
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex."
+" See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:97
+msgid ""
+"``integer``  Indicator that the vertex might have a problem. See "
+":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:98
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"AS incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:99
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"AS outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:100
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:103
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:104
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:107
+msgid "Usage when the edge table's columns MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:110
+msgid "The simplest way to use pgr_createTopology is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:118
+msgid "When the arguments are given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:119
+msgid "We get the same result AS the simplest way to use the function."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"In this example, the column ``id`` of the table ``ege_table`` is passed to "
+"the function as the geometry column,"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"and the geometry column ``the_geom`` is passed to the function as the id "
+"column."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:136
+#: ../../build/doc/pgr_createTopology.rst:205
+msgid "When using the named notation"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:137
+msgid ""
+"Parameters defined with a default value can be omitted, as long as the value"
+" matches the default And The order of the parameters would not matter."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:153
+#: ../../build/doc/pgr_createTopology.rst:219
+msgid "Selecting rows using rows_where parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:154
+msgid "Selecting rows based on the id."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:160
+msgid ""
+"Selecting the rows where the geometry is near the geometry of row with ``id "
+"= 5``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:166
+#: ../../build/doc/pgr_createTopology.rst:227
+msgid ""
+"Selecting the rows where the geometry is near the geometry of the row with "
+"``gid`` =100 of the table ``othertable``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:176
+msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:178
+msgid "For the following table"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:185
+msgid "Using positional notation:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:186
+msgid ""
+"The arguments need to be given in the order described in the parameters."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:188
+msgid ""
+"Note that this example uses clean flag. So it recreates the whole vertices "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropiriate "
+"order:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"In this example, the column ``gid`` of the table ``mytable`` is passed to "
+"the function AS the geometry column,"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"and the geometry column ``mygeom`` is passed to the function AS the id "
+"column."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:206
+msgid ""
+"In this scenario omitting a parameter would create an error because the "
+"default values for the column names do not match the column names of the "
+"table. The order of the parameters do not matter:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:220
+msgid "Based on id:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:235
+msgid "Examples with full output"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:237
+msgid ""
+"This example start a clean topology, with 5 edges, and then its incremented "
+"to the rest of the edges."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:243
+msgid "The example uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:247
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:249
+msgid ":ref:`topology` for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:250
+msgid ""
+":ref:`pgr_create_vert_table` to reconstruct the vertices table based on the "
+"source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:251
+msgid ""
+":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:254
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:255
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:256
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_createVerticesTable.po b/locale/es/LC_MESSAGES/pgr_createVerticesTable.po
new file mode 100644
index 0000000..191059e
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_createVerticesTable.po
@@ -0,0 +1,341 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_createVerticesTable.rst:13
+msgid "pgr_createVerticesTable"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:18
+msgid ""
+"``pgr_createVerticesTable`` — Reconstructs the vertices table based on the "
+"source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:22
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:24
+#: ../../build/doc/pgr_createVerticesTable.rst:62
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:26
+#: ../../build/doc/pgr_createVerticesTable.rst:64
+msgid "``OK`` after the vertices table has been reconstructed."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:27
+#: ../../build/doc/pgr_createVerticesTable.rst:69
+msgid ""
+"``FAIL`` when the vertices table was not reconstructed due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:43
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:44
+msgid ""
+"The reconstruction of the vertices table  function accepts the following "
+"parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:46
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:47
+msgid ""
+"``text``  Geometry column name of the network table. Default value is "
+"``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:48
+msgid ""
+"``text`` Source column name of the network table. Default value is "
+"``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:49
+msgid ""
+"``text``  Target column name of the network table.  Default value is "
+"``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:50
+msgid ""
+"``text``   Condition to SELECT a subset or rows.  Default value is ``true`` "
+"to indicate all rows."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:54
+msgid "The ``edge_table`` will be affected"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:56
+msgid ""
+"An index will be created, if it doesn't exists, to speed up the process to "
+"the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:58
+msgid "``the_geom``"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:59
+msgid "``source``"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:60
+msgid "``target``"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:66
+msgid "Creates a vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:67
+msgid ""
+"Fills ``id`` and ``the_geom`` columns of the vertices table based on the "
+"source and target columns of the edge table."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:71
+msgid ""
+"A required column of the Network table is not found or is not of the "
+"appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:72
+msgid "The condition is not well formed."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:73
+msgid "The names of source, target are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:74
+msgid "The SRID of the geometry could not be determined."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:77
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:78
+msgid ""
+"The vertices table is a requierment of the :ref:`pgr_analyzeGraph "
+"<pgr_analyze_graph>` and the :ref:`pgr_analyzeOneway <pgr_analyze_oneway>` "
+"functions."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:80
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:82
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:83
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex."
+" See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:84
+msgid ""
+"``integer``  Indicator that the vertex might have a problem. See "
+":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:85
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:86
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:87
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:90
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:91
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:94
+msgid "Usage when the edge table's columns MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:97
+msgid "The simplest way to use pgr_createVerticesTable is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:104
+msgid "When the arguments are given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:109
+msgid "We get the same result as the simplest way to use the function."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:111
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order: In this example, the column source column ``source`` of the table "
+"``mytable`` is passed to the function as the geometry column, and the "
+"geometry column ``the_geom`` is passed to the function as the source column."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:128
+#: ../../build/doc/pgr_createVerticesTable.rst:205
+msgid "When using the named notation"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:129
+#: ../../build/doc/pgr_createVerticesTable.rst:206
+msgid "The order of the parameters do not matter:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:139
+msgid ""
+"Parameters defined with a default value can be omitted, as long as the value"
+" matches the default:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:146
+#: ../../build/doc/pgr_createVerticesTable.rst:220
+msgid "Selecting rows using rows_where parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:147
+msgid "Selecting rows based on the id."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:153
+msgid ""
+"Selecting the rows where the geometry is near the geometry of row with "
+"``id`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:159
+#: ../../build/doc/pgr_createVerticesTable.rst:243
+msgid ""
+"Selecting the rows where the geometry is near the geometry of the row with "
+"``gid`` =100 of the table ``othertable``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:170
+msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:172
+msgid "For the following table"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:180
+msgid "Using positional notation:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:181
+msgid ""
+"The arguments need to be given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order: In this example, the column ``src`` of the table ``mytable`` is "
+"passed to the function as the geometry column, and the geometry column "
+"``mygeom`` is passed to the function as the source column."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:216
+msgid ""
+"In this scenario omitting a parameter would create an error because the "
+"default values for the column names do not match the column names of the "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:221
+msgid "Selecting rows based on the gid."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:231
+msgid ""
+"Selecting the rows where the geometry is near the geometry of row with "
+"``gid`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:260
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:282
+msgid "The example uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:286
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:288
+msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:289
+msgid ""
+":ref:`pgr_createTopology <pgr_create_topology>` to create a topology based "
+"on the geometry."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:290
+msgid ""
+":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:291
+msgid ":ref:`pgr_analyze_oneway` to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:294
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:295
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:296
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_dijkstra.po b/locale/es/LC_MESSAGES/pgr_dijkstra.po
new file mode 100644
index 0000000..45cbd10
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_dijkstra.po
@@ -0,0 +1,621 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid ""
+"``pgr_dijkstra`` — Returns the shortest path(s) using Dijkstra algorithm. In"
+" particular, the Dijkstra algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:24
+msgid "Availability"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:25
+msgid "pgr_dijkstra(one to one) 2.0.0, signature change 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:26
+msgid "pgr_dijkstra(other signatures) 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:31
+msgid ""
+"Dijkstra's algorithm, conceived by Dutch computer scientist Edsger Dijkstra "
+"in 1956. It is a graph search algorithm that solves the shortest path "
+"problem for a graph with non-negative edge path costs, producing a shortest "
+"path from a starting vertex (``start_vid``) to an ending vertex "
+"(``end_vid``). This implementation can be used with a directed graph and an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:38
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:60
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:41
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:42
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:44
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:46
+msgid "The `agg_cost` the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:48
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:50
+msgid "The `agg_cost` the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:52
+msgid ""
+"For optimization purposes, any duplicated value in the `start_vids` or "
+"`end_vids` are ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:54
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:56
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:57
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:59
+msgid "Running time: :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:63
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:78
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:84
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:91
+msgid ""
+"The minimal signature is for a **directed** graph from one ``start_vid`` to "
+"one ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:104
+msgid "pgr_dijkstra One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:114
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:113 ../../build/doc/pgr_dijkstra.rst:136
+#: ../../build/doc/pgr_dijkstra.rst:167 ../../build/doc/pgr_dijkstra.rst:197
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:114 ../../build/doc/pgr_dijkstra.rst:137
+#: ../../build/doc/pgr_dijkstra.rst:168 ../../build/doc/pgr_dijkstra.rst:198
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:127
+msgid "pgr_dijkstra One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:137
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:139
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_dijkstra` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:142
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:143
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:158
+msgid "pgr_dijkstra Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:168
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:170
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_dijkstra` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:173 ../../build/doc/pgr_dijkstra.rst:203
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:174 ../../build/doc/pgr_dijkstra.rst:204
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:188
+msgid "pgr_dijkstra Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:198
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:200
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:206
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:215
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:225
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:230
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:230
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:230
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:231 ../../build/doc/pgr_dijkstra.rst:233
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:231
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:232
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:232 ../../build/doc/pgr_dijkstra.rst:234
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:232
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:233
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:233
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:234
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:234
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:236
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:248
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:250
+msgid ""
+"The examples of this section are based on the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:252
+msgid ""
+"The examples include combinations from starting vertices 2 and 11 to ending "
+"vertices 3 and 5 in a directed and undirected graph with and with out "
+"reverse_cost."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:256
+msgid ""
+"Examples for queries marked as ``directed`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:258
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:267
+msgid ""
+"Examples for queries marked as ``undirected`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:269
+msgid "The examples in this section use the following :ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:277
+msgid "Examples for queries marked as ``directed`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:279
+msgid "The examples in this section use the following :ref:`fig3`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:287
+msgid "Examples for queries marked as ``undirected`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:289
+msgid "The examples in this section use the following :ref:`fig4`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:297
+msgid "Equvalences between signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:299
+msgid ""
+"For queries marked as ``directed`` with ``cost`` and ``reverse_cost`` "
+"columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:301 ../../build/doc/pgr_dijkstra.rst:313
+msgid "The examples in this section use the following:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:303
+msgid ":ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:311
+msgid ""
+"For queries marked as ``undirected`` with ``cost`` and ``reverse_cost`` "
+"columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:315
+msgid ":ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:324
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:326
+msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:327
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:330
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:331
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:332
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_dijkstraCost.po b/locale/es/LC_MESSAGES/pgr_dijkstraCost.po
new file mode 100644
index 0000000..a9193fb
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_dijkstraCost.po
@@ -0,0 +1,473 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstraCost.rst:13
+msgid "pgr_dijkstraCost"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:17
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:19
+msgid "``pgr_dijkstraCost``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:21
+msgid ""
+"Using Dijkstra algorithm implemented by Boost.Graph, and extract only the "
+"aggregate cost of the shortest path(s) found, for the combination of "
+"vertices given."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:27
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:30
+msgid "Availability"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:31
+msgid "pgr_dijkstraCost(all signatures) 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:33
+msgid ""
+"The ``pgr_dijkstraCost`` algorithm, is a good choice to calculate the sum of"
+" the costs of the shortest path for a subset of pairs of nodes of the graph."
+" We make use of the Boost's implementation of dijkstra which runs in "
+":math:`O(V \\log V + E)` time."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:39
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:71
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:42
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:43
+msgid ""
+"Returns the sum of the costs of the shortest path for pair combination of "
+"nodes in the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:44
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:45
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:47
+msgid ""
+"The returned values are in the form of a set of `(start_vid, end_vid, "
+"agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:49
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:51
+msgid "The `agg_cost` int the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:53
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:55
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:57
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:60
+msgid "For undirected graphs, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:62
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:64
+msgid "Any duplicated value in the `start_vids` or `end_vids` is ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:66
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:68
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:69
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:71
+msgid "Running time: :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:74
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:89
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:95
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:97
+msgid ""
+"The minimal signature is for a **directed** graph from one ``start_vid`` to "
+"one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:106
+msgid "Example"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:117
+msgid "pgr_dijkstraCost One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:122
+msgid ""
+"This signature performs a Dijkstra from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:121
+#: ../../build/doc/pgr_dijkstraCost.rst:150
+#: ../../build/doc/pgr_dijkstraCost.rst:176
+#: ../../build/doc/pgr_dijkstraCost.rst:201
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:122
+#: ../../build/doc/pgr_dijkstraCost.rst:151
+#: ../../build/doc/pgr_dijkstraCost.rst:177
+#: ../../build/doc/pgr_dijkstraCost.rst:202
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:141
+msgid "pgr_dijkstraCost One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:152
+msgid ""
+"This signature performs a Dijkstra from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:167
+msgid "pgr_dijkstraCost Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:178
+msgid ""
+"This signature performs a Dijkstra from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:192
+msgid "pgr_dijkstraCost Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:202
+msgid ""
+"This signature performs a Dijkstra from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:213
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10 ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11 ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:229
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:231
+msgid "Demonstration of repeated values are ignored, and result is sorted."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:237
+msgid "Making `start_vids` the same as `end_vids`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:246
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:248
+msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:249
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:252
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:253
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:254
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_dijkstraCostMatrix.po b/locale/es/LC_MESSAGES/pgr_dijkstraCostMatrix.po
new file mode 100644
index 0000000..95cf121
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_dijkstraCostMatrix.po
@@ -0,0 +1,358 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:13
+msgid "pgr_dijkstraCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:18
+msgid ""
+"``pgr_dijkstraCostMatrix`` - Calculates the a cost matrix using "
+"pgr_dijktras."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:29
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:32
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:34
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:36
+msgid "Using Dijkstra algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:39
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:56
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:59
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:59
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:67
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:79
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:87
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:89
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:97
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:106
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:109
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:111
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:111
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:111
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:112
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:112
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:112
+msgid "Array of identifiers of the vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:113
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:113
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:113
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:123
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:125
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:133
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:135
+msgid ":ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:136
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:137
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:138
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:141
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:142
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:143
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_dijkstraVia.po b/locale/es/LC_MESSAGES/pgr_dijkstraVia.po
new file mode 100644
index 0000000..0a3c5f1
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_dijkstraVia.po
@@ -0,0 +1,480 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstraVia.rst:13
+msgid "pgr_dijkstraVia - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:19
+msgid ""
+"``pgr_dijkstraVia`` — Using dijkstra algorithm, it finds the route that goes"
+" through a list of vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:30
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:32
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:34
+msgid ""
+"Given a list of vertices and a graph, this function is equivalent to finding"
+" the shortest path between :math:`vertex_i` and :math:`vertex_{i+1}` for all"
+" :math:`i < size\\_of(vertex_via)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:37
+msgid "The paths represents the sections of the route."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:39
+msgid "This is a proposed function"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:42
+msgid "Signatrue Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:53
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:59
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:67
+msgid "Find the route that visits the vertices 1 3 9  in that order"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:77
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:86
+msgid ""
+"Find the route that visits the vertices 1 3 9  in that order on an "
+"undirected graph, avoiding U-turns when possible"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:94
+msgid "Description of the Signature"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:124
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:7
+#: ../../build/doc/pgr_dijkstraVia.rst:108
+#: ../../build/doc/pgr_dijkstraVia.rst:124
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:7
+#: ../../build/doc/pgr_dijkstraVia.rst:108
+#: ../../build/doc/pgr_dijkstraVia.rst:124
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_dijkstraVia.rst:133
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+#: ../../build/doc/pgr_dijkstraVia.rst:105
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:7
+#: ../../build/doc/pgr_dijkstraVia.rst:108
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:110
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:110
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:110
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgr_dijkstraVia.rst:111
+msgid "**via_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgr_dijkstraVia.rst:111
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Array of ordered vertices identifiers that are going to be visited."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgr_dijkstraVia.rst:112
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgr_dijkstraVia.rst:112
+#: ../../build/doc/pgr_dijkstraVia.rst:113
+#: ../../build/doc/pgr_dijkstraVia.rst:114
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_dijkstraVia.rst:113
+msgid "**strict**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``false``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "When ``false`` ignores missing paths returning all paths found"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "When ``true`` if a path is missing stops and returns `EMPTY SET`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgr_dijkstraVia.rst:114
+msgid "**U_turn_on_edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"When ``true`` departing from a visited vertex will not try to avoid using "
+"the edge used to reach it.  In other words, U turn using the edge with same "
+"`id` is allowed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When ``false`` when a departing from a visited vertex tries to avoid using "
+"the edge used to reach it.  In other words, U turn using the edge with same "
+"`id` is used when no other path is found."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:111
+msgid "Array of vertices identifiers"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:112
+#: ../../build/doc/pgr_dijkstraVia.rst:114
+msgid ""
+"(optional) Default is true (is directed). When set to false the graph is "
+"considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:113
+msgid ""
+"(optional) ignores if a subsection of the route is missing and returns "
+"everything it found Default is true (is directed). When set to false the "
+"graph is considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:119
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:121
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:126
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:126
+#: ../../build/doc/pgr_dijkstraVia.rst:127
+#: ../../build/doc/pgr_dijkstraVia.rst:128
+#: ../../build/doc/pgr_dijkstraVia.rst:129
+#: ../../build/doc/pgr_dijkstraVia.rst:130
+#: ../../build/doc/pgr_dijkstraVia.rst:131
+#: ../../build/doc/pgr_dijkstraVia.rst:132
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:126
+msgid "Sequential value starting from 1."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:127
+msgid "**path_pid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:127
+msgid "Identifier of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:128
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:128
+msgid "Sequential value starting from 1 for the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:129
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:129
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:130
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:130
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:131
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:131
+msgid "Identifier of the node in the path from start_vid to end_vid."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:132
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:132
+msgid ""
+"Identifier of the edge used to go from node to the next node in the path "
+"sequence. -1 for the last node of the path. -2 for the last node of the "
+"route."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:133
+#: ../../build/doc/pgr_dijkstraVia.rst:134
+#: ../../build/doc/pgr_dijkstraVia.rst:135
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:133
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the route "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:134
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:134
+msgid "Total cost from ``start_vid`` to ``end_vid`` of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:135
+msgid "**route_agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:135
+msgid ""
+"Total cost from ``start_vid`` of ``path_pid = 1`` to ``end_vid`` of the "
+"current ``path_pid`` ."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:140
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:142
+msgid "Find the route that visits the vertices 1 5 3 9 4 in that order"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:148
+msgid "What's the aggregate cost of the third path?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:154
+msgid ""
+"What's the route's aggregate cost of the route at the end of the third path?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:160
+msgid "How are the nodes visited in the route?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:166
+msgid ""
+"What are the aggregate costs of the route when the visited vertices are "
+"reached?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:172
+msgid ""
+"show the route's seq and aggregate cost and a status of \"passes in front\" "
+"or \"visits\" node 9"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:179
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:181
+msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:182
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:185
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:186
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:187
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_drivingDistance.po b/locale/es/LC_MESSAGES/pgr_drivingDistance.po
new file mode 100644
index 0000000..77f7b8e
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_drivingDistance.po
@@ -0,0 +1,391 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_drivingDistance.rst:13
+msgid "pgr_drivingDistance"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:19
+msgid ""
+"``pgr_drivingDistance`` - Returns the driving distance from a start node."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:25
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:28
+msgid "Availability"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:29
+msgid "pgr_drivingDistance(single vertex) 2.0.0, signature change 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:30
+msgid "pgr_drivingDistance(multiple vertices) 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:35
+msgid ""
+"Using the Dijkstra algorithm, extracts all the nodes that have costs less "
+"than or equal to the value ``distance``. The edges extracted will conform to"
+" the corresponding spanning tree."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:39
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:57
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:70
+msgid "Driving Distance From A Single Starting Vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:82
+msgid "Driving Distance From Multiple Starting Vertices"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:90
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_drivingDistance.rst:101
+#: ../../build/doc/pgr_drivingDistance.rst:119
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_drivingDistance.rst:101
+#: ../../build/doc/pgr_drivingDistance.rst:119
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_drivingDistance.rst:101
+#: ../../build/doc/pgr_drivingDistance.rst:119
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_drivingDistance.rst:125
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:98
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:103
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:103
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:103
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:104
+#: ../../build/doc/pgr_drivingDistance.rst:122
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:104
+#: ../../build/doc/pgr_drivingDistance.rst:123
+#: ../../build/doc/pgr_drivingDistance.rst:124
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:104
+#: ../../build/doc/pgr_drivingDistance.rst:122
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:105
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:105
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:105
+msgid "Array of identifiers of the starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:106
+msgid "**distance**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:106
+#: ../../build/doc/pgr_drivingDistance.rst:125
+#: ../../build/doc/pgr_drivingDistance.rst:126
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:106
+msgid "Upper limit for the inclusion of the node in the result."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:107
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:107
+#: ../../build/doc/pgr_drivingDistance.rst:108
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:107
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:108
+msgid "**equicost**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:108
+msgid ""
+"(optional). When ``true`` the node will only appear in the closest "
+"``start_vid`` list.  Default is ``false`` which resembles several calls "
+"using the single starting point signatures. Tie brakes are arbitrary."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:114
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:116
+msgid "Returns set of ``(seq [, start_v], node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:121
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:121
+#: ../../build/doc/pgr_drivingDistance.rst:122
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:121
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:123
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:123
+msgid ""
+"Identifier of the node in the path within the limits from ``start_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:124
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:124
+msgid ""
+"Identifier of the edge used to arrive to ``node``. ``0`` when the ``node`` "
+"is the ``start_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:125
+msgid "Cost to traverse ``edge``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:126
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:126
+msgid "Aggregate cost from ``start_vid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:132
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:135
+msgid ""
+"Examples for queries marked as ``directed`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:137
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:144
+msgid ""
+"Examples for queries marked as ``undirected`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:146
+msgid "The examples in this section use the following :ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:154
+msgid "Examples for queries marked as ``directed`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:156
+msgid "The examples in this section use the following :ref:`fig3`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:165
+msgid "Examples for queries marked as ``undirected`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:167
+msgid "The examples in this section use the following :ref:`fig4`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:175
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:177
+msgid ":ref:`pgr_alphashape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:178
+msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:179
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:182
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:183
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:184
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_edgeDisjointPaths.po b/locale/es/LC_MESSAGES/pgr_edgeDisjointPaths.po
new file mode 100644
index 0000000..54a0ffe
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_edgeDisjointPaths.po
@@ -0,0 +1,541 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:14
+msgid "pgr_edgeDisjointPaths - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:19
+msgid ""
+"``pgr_edgeDisjointPaths`` — Calculates edge disjoint paths between two "
+"groups of vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:25
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:28
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:36
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:38
+msgid ""
+"Calculates the edge disjoint paths between two groups of vertices. Utilizes "
+"underlying maximum flow algorithms to calculate the paths."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:42
+msgid "Characteristics:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:49
+msgid "The main characterics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:45
+msgid "Calculates the edge disjoint paths between any two groups of vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:46
+msgid ""
+"Returns EMPTY SET when source and destination are the same, or cannot be "
+"reached."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:47
+msgid "The graph can be directed or undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:48
+msgid "One to many, many to one, many to many versions are also supported."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:49
+msgid "Uses :ref:`pgr_boykovKolmogorov` to calculate the paths."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:52
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:67
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:73
+msgid "Minimal use"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:81
+msgid ""
+"The minimal use is for a **directed** graph from one ``start_vid`` to one "
+"``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:93
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:98
+msgid ""
+"This signature finds the set of dijoint paths from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:96
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:120
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:149
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:175
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:97
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:121
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:150
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:176
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:117
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:126
+msgid ""
+"This signature finds the sset of disjoint paths  from the ``start_vid`` to "
+"each one of the ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:122
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:151
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:177
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_edgeDisjointPaths`."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:123
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:146
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:152
+msgid ""
+"This signature finds the set of disjoint paths from each one of the "
+"``start_vid`` in ``start_vids`` to the ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:152
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:172
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:178
+msgid ""
+"This signature finds the set of disjoint paths from each one of the "
+"``start_vid`` in ``start_vids`` to each one of the ``end_vid`` in "
+"``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:178
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:195
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10 ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11 ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:212
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:214
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:217
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:218
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:219
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_edmondsKarp.po b/locale/es/LC_MESSAGES/pgr_edmondsKarp.po
new file mode 100644
index 0000000..8523277
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_edmondsKarp.po
@@ -0,0 +1,438 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_edmondsKarp.rst:14
+msgid "pgr_edmondsKarp - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:18
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:20
+msgid ""
+"``pgr_edmondsKarp`` — Calculates the flow on the graph edges that maximizes "
+"the flow from the sources to the targets using Push Relabel Algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:29
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:30
+msgid "Renamed 2.5.0, Previous name pgr_maxFlowEdmondsKarp"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:31
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:8
+msgid ""
+"When the maximum flow is 0 then there is no flow and **EMPTY SET** is "
+"returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:12
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:15
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid ""
+"Creates a **super source** and edges to all the source(s), and a **super "
+"target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid ""
+"The maximum flow through the graph is guaranteed to be the value returned by"
+" :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and"
+" can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:42
+msgid "Running time: :math:`O( V * E ^ 2)`"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:45
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:62
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:64
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:83
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:85
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:104
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:106
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:125
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:127
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:142
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:4
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10 ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11 ../../build/doc/pgr_maxFlow.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:12
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:160
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:162
+msgid ""
+":ref:`maxFlow`, :ref:`pgr_boykovKolmogorov <pgr_boykovKolmogorov>`, "
+":ref:`pgr_PushRelabel <pgr_pushRelabel>`"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:163
+msgid "http://www.boost.org/libs/graph/doc/edmonds_karp_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:164
+msgid "https://en.wikipedia.org/wiki/Edmonds%E2%80%93Karp_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:167
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:168
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:169
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_eucledianTSP.po b/locale/es/LC_MESSAGES/pgr_eucledianTSP.po
new file mode 100644
index 0000000..5b9be5e
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_eucledianTSP.po
@@ -0,0 +1,187 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_eucledianTSP.rst:13
+msgid "pgr_eucledianTSP"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:18
+msgid ""
+"``pgr_eucledianTSP`` - Returns a route that visits all the coordinates pairs"
+" exactly once."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:22
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:24
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:26
+msgid ""
+"The travelling salesman problem (TSP) or travelling salesperson problem asks"
+" the following question:"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:28
+msgid ""
+"Given a list of cities and the distances between each pair of cities, what "
+"is the shortest possible route that visits each city exactly once and "
+"returns to the origin city?"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:30
+msgid ""
+"This implementation uses simulated annealing to return the approximate "
+"solution when the input is given in the form of coordinates."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:33
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:48
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:54
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:63
+msgid ""
+"Because the documentation examples are auto generated and tested for non "
+"changing results, and the default is to have random execution, the example "
+"is wrapping the actual call."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:75
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:90
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:96
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:99
+msgid "Description of the coordinates SQL query"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:102
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:102
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:102
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:104
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:104
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:104
+msgid "Identifier of the coordinate. (optional)"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:105
+msgid "**x**"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:105
+#: ../../build/doc/pgr_eucledianTSP.rst:106
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:105
+msgid "X value of the coordinate."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:106
+msgid "**y**"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:106
+msgid "Y value of the coordinate."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:110
+msgid ""
+"When the value of **id** is not given then the coordinates will receive an "
+"**id** starting from 1, in the order given."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:125
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:127
+msgid "Skipping the Simulated Annealing & showing some process information"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:135
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:139
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:140
+msgid "New in version 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:145
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:147
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:148
+msgid "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:149
+msgid "http://en.wikipedia.org/wiki/Simulated_annealing"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:152
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:153
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:154
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_floydWarshall.po b/locale/es/LC_MESSAGES/pgr_floydWarshall.po
new file mode 100644
index 0000000..4fe9ece
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_floydWarshall.po
@@ -0,0 +1,348 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_floydWarshall.rst:13
+msgid "pgr_floydWarshall"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:16
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:18
+msgid ""
+"``pgr_floydWarshall`` - Returns the sum of the costs of the shortest path "
+"for each pair of nodes in the graph using Floyd-Warshall algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:27
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:28
+msgid "Renamed on 2.2.0, previous name pgr_apspWarshall"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:31
+msgid ""
+"The Floyd-Warshall algorithm, also known as Floyd's algorithm, is a good "
+"choice to calculate the sum of the costs of the shortest path for each pair "
+"of nodes in the graph, for *dense graphs*. We make use of the  Boost's "
+"implementation which runs in :math:`\\Theta(V^3)` time,"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:38
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:58
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:41
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:42
+msgid ""
+"Returns the sum of the costs of the shortest path for each pair of nodes in "
+"the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:43
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:44
+msgid ""
+"Boost returns a :math:`V \\times V` matrix, where the infinity values. "
+"Represent the distance between vertices for which there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:47
+msgid ""
+"We return only the non infinity values in form of a set of `(start_vid, "
+"end_vid, agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:49
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:52
+msgid "For the undirected graph, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:54
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:56
+msgid "When  `start_vid` = `end_vid`, the `agg_cost` = 0."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:58
+msgid "**Recommended, use a bounding box of no more than 3500 edges.**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:61
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:70
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:77
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:84
+msgid "On a directed graph."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:95
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:103
+msgid "On an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:110
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query (id is not necessary)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_floydWarshall.rst:136
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_floydWarshall.rst:123
+#: ../../build/doc/pgr_floydWarshall.rst:136
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_floydWarshall.rst:123
+#: ../../build/doc/pgr_floydWarshall.rst:136
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:118
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:120
+msgid "Receives  ``(edges_sql, directed)``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:123
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:125
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:125
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:125
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:126
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:126
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:126
+msgid ""
+"(optional) Default is true (is directed). When set to false the graph is "
+"considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:131
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:133
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:138
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:138
+#: ../../build/doc/pgr_floydWarshall.rst:139
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:138
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:139
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:139
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:140
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:140
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:140
+msgid "Total cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:148
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:149
+msgid "Re-design of pgr_apspWarshall in Version 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:152
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:154
+msgid ":ref:`pgr_johnson`"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:155
+msgid ""
+"`Boost floyd-Warshall "
+"<http://www.boost.org/libs/graph/doc/floyd_warshall_shortest.html>`_ "
+"algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:156
+msgid "Queries uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:159
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:160
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:161
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_gsoc_vrppdtw.po b/locale/es/LC_MESSAGES/pgr_gsoc_vrppdtw.po
new file mode 100644
index 0000000..7705842
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_gsoc_vrppdtw.po
@@ -0,0 +1,358 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:13
+msgid "pgr_gsoc_vrppdtw - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:19
+msgid ""
+"``pgr_gsoc_vrppdtw`` — Returns a solution for `Pick and Delivery` with `time"
+" windows` Vehicle Routing Problem"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:27
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:36
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:43
+msgid "Complete signature"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:52
+msgid "Example: Show the id1"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:59
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:62
+msgid "Description of the sql query"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:65
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:89
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:102
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:65
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:89
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:102
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:65
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:89
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:102
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:67
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:67
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:81
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:82
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:67
+msgid "Identifier of the customer."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:69
+msgid "A value of ``0`` identifies the starting location"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:71
+msgid "**x**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:71
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:72
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:73
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:78
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:79
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:80
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:71
+msgid "``X`` coordinate of the location."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:72
+msgid "**y**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:72
+msgid "``Y`` coordinate of the location."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:73
+msgid "**demand**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:73
+msgid "How much is added / removed from the vehicle."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:75
+msgid "Negative value is a delivery,"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:76
+msgid "Positive value is a pickup,"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:78
+msgid "**openTime**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:78
+msgid "The time relative to 0, when the customer opens."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:79
+msgid "**closeTime**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:79
+msgid "The time relative to 0, when the customer closes."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:80
+msgid "**serviceTime**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:80
+msgid "The duration of the loading / unloading."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:81
+msgid "**pIndex**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:81
+msgid ""
+"Value used when the current customer is a Delivery to find the corresponding"
+" Pickup"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:82
+msgid "**dIndex**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:82
+msgid ""
+"Value used when the current customer is a Pickup to find the corresponding "
+"Delivery"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:86
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:91
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:91
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:91
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:92
+msgid "**vehicle_num**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:92
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:93
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:104
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:105
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:106
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:92
+msgid "Maximum number of vehicles in the result. (currently is ignored)"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:93
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:93
+msgid "Capacity of the vehicle."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:97
+msgid "Description of the result"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:99
+msgid "RETURNS SET OF pgr_costResult[]:"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:104
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:104
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:105
+msgid "**id1**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:105
+msgid "Current vehicle identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:106
+msgid "**id2**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:106
+msgid "Customer identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:107
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:107
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:107
+msgid ""
+"Previous ``cost`` plus `travel time` plus `wait time` plus `service time`."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:108
+msgid ""
+"when ``id2 = 0`` for the second time for the same ``id1``, then has the "
+"total time for the current ``id1``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:114
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:117
+msgid "Example: Total number of rows returned"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:123
+msgid "Example: Results for only id1 values: 1, 5, and 9"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:130
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:132
+msgid "The examples use :ref:`pickDeliverData`"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:133
+msgid "http://en.wikipedia.org/wiki/Vehicle_routing_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:136
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:137
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:138
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_johnson.po b/locale/es/LC_MESSAGES/pgr_johnson.po
new file mode 100644
index 0000000..d0ef00b
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_johnson.po
@@ -0,0 +1,341 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_johnson.rst:13
+msgid "pgr_johnson"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:16
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:18
+msgid ""
+"``pgr_johnson`` - Returns the sum of the costs of the shortest path for each"
+" pair of nodes in the graph using Floyd-Warshall algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:27
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:28
+msgid "Renamed on 2.2.0, previous name pgr_apspJohnson"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:31
+msgid ""
+"The Johnson algorithm, is a good choice to calculate the sum of the costs of"
+" the shortest path for each pair of nodes in the graph, for *sparse graphs*."
+" It usees the Boost's implementation which runs in :math:`O(V E \\log V)` "
+"time,"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:37
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:57
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:40
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:41
+msgid ""
+"Returns the sum of the costs of the shortest path for each pair of nodes in "
+"the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:42
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:43
+msgid ""
+"Boost returns a :math:`V \\times V` matrix, where the infinity values. "
+"Represent the distance between vertices for which there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:46
+msgid ""
+"We return only the non infinity values in form of a set of `(start_vid, "
+"end_vid, agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:48
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:51
+msgid "For the undirected graph, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:53
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:55
+msgid "When  `start_vid` = `end_vid`, the `agg_cost` = 0."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:60
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:69
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:76
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:83
+msgid "On a directed graph."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:94
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:102
+msgid "On an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:109
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query (id is not necessary)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_johnson.rst:135
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_johnson.rst:122 ../../build/doc/pgr_johnson.rst:135
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_johnson.rst:122 ../../build/doc/pgr_johnson.rst:135
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:117
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:119
+msgid "Receives  ``(edges_sql, directed)``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:122
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:124
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:124
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:124
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:125
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:125
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:125
+msgid ""
+"(optional) Default is true (is directed). When set to false the graph is "
+"considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:130
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:132
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:137
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:137 ../../build/doc/pgr_johnson.rst:138
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:137
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:138
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:138
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:139
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:139
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:139
+msgid "Total cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:147
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:148
+msgid "Re-design of pgr_apspJohnson in Version 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:151
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:153
+msgid ":ref:`pgr_floydWarshall`"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:154
+msgid ""
+"`Boost Johnson "
+"<http://www.boost.org/libs/graph/doc/johnson_all_pairs_shortest.html>`_ "
+"algorithm implementation."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:155
+msgid "Queries uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:158
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:159
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:160
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_labelGraph.po b/locale/es/LC_MESSAGES/pgr_labelGraph.po
new file mode 100644
index 0000000..e5d6532
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_labelGraph.po
@@ -0,0 +1,233 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_labelGraph.rst:15
+msgid "pgr_labelGraph - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:18
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:20
+msgid ""
+"``pgr_labelGraph`` — Locates and labels sub-networks within a network which "
+"are not topologically connected."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:28
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:30
+msgid ""
+"Must be run after ``pgr_createTopology()``. No use of ``geometry`` column. "
+"Only ``id``, ``source`` and  ``target`` columns are required."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:32
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:34
+msgid ""
+"``OK`` when a column with provided name has been generated and populated "
+"successfully. All connected edges will have unique similar integer values. "
+"In case of ``rows_where`` condition, non participating rows will have -1 "
+"integer values."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:35
+msgid ""
+"``FAIL`` when the processing cannot be finished due to some error. Notice "
+"will be thrown accordingly."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:36
+msgid ""
+"``rows_where condition generated 0 rows`` when passed SQL condition has not "
+"been fulfilled by any row."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:48
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:50
+msgid ""
+"A network behind any routing query may consist of sub-networks completely "
+"isolated from each other. Possible reasons could be:"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:52
+msgid "An island with no bridge connecting to the mainland."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:53
+msgid ""
+"An edge or mesh of edges failed to connect to other networks because of "
+"human negligence during data generation."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:54
+msgid "The data is not properly noded."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:55
+msgid "Topology creation failed to succeed."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:57
+msgid ""
+"pgr_labelGraph() will create an integer column (with the name provided by "
+"the user) and will assign same integer values to all those edges in the "
+"network which are connected topologically. Thus better analysis regarding "
+"network structure is possible. In case of ``rows_where`` condition, non "
+"participating rows will have -1 integer values."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:59
+msgid ""
+"Prerequisites: Must run ``pgr_createTopology()`` in order to generate "
+"``source`` and ``target`` columns. Primary key column ``id`` should also be "
+"there in the network table."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:62
+msgid "Function accepts the following parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:64
+msgid "``text`` Network table name, with optional schema name."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:65
+msgid ""
+"``text`` Primary key column name of the network table. Default is ``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:66
+msgid ""
+"``text`` Source column name generated after ``pgr_createTopology()``. "
+"Default is ``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:67
+msgid ""
+"``text`` Target column name generated after ``pgr_createTopology()``. "
+"Default is ``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:68
+msgid ""
+"``text`` Column name which will hold the integer labels for each sub-graph. "
+"Default is ``subgraph``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:69
+msgid ""
+"``text`` The SQL where condition. Default is ``true``, means the processing "
+"will be done on the whole table."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:75
+msgid "Example Usage"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:77
+msgid "The sample data, has 3 subgraphs."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:85
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:87
+msgid ""
+"`pgr_createTopology "
+"<https://github.com/Zia-/pgrouting/blob/develop/src/common/sql/pgrouting_topology.sql>`_"
+" to create the topology of a table based on its geometry and tolerance "
+"value."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:90
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:91
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:92
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_lineGraph.po b/locale/es/LC_MESSAGES/pgr_lineGraph.po
new file mode 100644
index 0000000..7b69209
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_lineGraph.po
@@ -0,0 +1,387 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_lineGraph.rst:13
+msgid "pgr_lineGraph - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:15
+msgid ""
+"``pgr_lineGraph`` — Transforms a given graph into its corresponding edge-"
+"based graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:31
+msgid "Given a graph G, its line graph L(G) is a graph such that:-"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:33
+msgid "each vertex of L(G) represents an edge of G"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:34
+msgid ""
+"two vertices of L(G) are adjacent if and only if their corresponding edges "
+"share a common endpoint in G."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:36
+msgid ""
+"The following figures show a graph (left, with blue vertices) and its Line "
+"Graph (right, with green vertices)."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:39
+msgid "|first|"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:45
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:55
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:61
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:68
+msgid "The minimal signature is for a **directed** graph:"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:81
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:90
+msgid "This signature returns the Line Graph of the current graph:"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:89
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:90
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:101
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_lineGraph.rst:112 ../../build/doc/pgr_lineGraph.rst:125
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_lineGraph.rst:112 ../../build/doc/pgr_lineGraph.rst:125
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_lineGraph.rst:112 ../../build/doc/pgr_lineGraph.rst:125
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_lineGraph.rst:129
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_lineGraph.rst:133
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_lineGraph.rst:137
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_lineGraph.rst:141
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:109
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:114
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:114
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:114
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:115
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:115
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:115
+msgid "When ``true`` the graph is considered as `Directed`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:116
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:120
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:122
+msgid "RETURNS SETOF  (seq, source, target, cost, reverse_cost)"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:127
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:127
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:127
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:129 ../../build/doc/pgr_lineGraph.rst:133
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:129
+msgid "Identifier of the source vertex of the current edge `id`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:131
+msgid "When `negative`: the source is the reverse edge in the original graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:133
+msgid "Identifier of the target vertex of the current edge `id`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:135
+msgid "When `negative`: the target is the reverse edge in the original graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:137 ../../build/doc/pgr_lineGraph.rst:141
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:137
+msgid "Weight of the edge (`source`, `target`)."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:139
+msgid ""
+"When `negative`: edge (`source`, `target`) does not exist, therefore it’s "
+"not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:141
+msgid "Weight of the edge (`target`, `source`)."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:143
+msgid ""
+"When `negative`: edge (`target`, `source`) does not exist, therefore it’s "
+"not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:147
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:154
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:156
+msgid "https://en.wikipedia.org/wiki/Line_graph"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:157
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:160
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:161
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:162
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_maxCardinalityMatch.po b/locale/es/LC_MESSAGES/pgr_maxCardinalityMatch.po
new file mode 100644
index 0000000..4c6c884
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_maxCardinalityMatch.po
@@ -0,0 +1,357 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:13
+msgid "pgr_maxCardinalityMatch - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:17
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:19
+msgid ""
+"``pgr_maxCardinalityMatch`` — Calculates a maximum cardinality matching in a"
+" graph."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:29
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:32
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:33
+msgid "Renamed 2.5.0, Previous name pgr_maximumCardinalityMatching"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:34
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:38
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:39
+msgid ""
+"A matching or independent edge set in a graph is a set of edges without "
+"common vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:40
+msgid ""
+"A maximum matching is a matching that contains the largest possible number "
+"of edges."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:42
+msgid "There may be many maximum matchings."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:43
+msgid "Calculates **one** possible maximum cardinality matching in a graph."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:45
+msgid "The graph can be **directed** or **undirected**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:46
+msgid "Running time: :math:`O( E*V * \\alpha(E,V))`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:48
+msgid ":math:`\\alpha(E,V)` is the inverse of the `Ackermann function`_."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:54
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:71
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:78
+msgid ""
+"The minimal use calculates one possible maximum cardinality matching on a "
+"**directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:90
+msgid "Complete signature"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:98
+msgid ""
+"The complete signature calculates one possible maximum cardinality matching."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:109
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:113
+msgid "Description of the SQL query"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:115
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:118
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:136
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:146
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:118
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:136
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:146
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:118
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:136
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:146
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:120
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:120
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:121
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:122
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:120
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:121
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:150
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:121
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:122
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:151
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:122
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:123
+msgid "**going**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:123
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:124
+msgid "``ANY-NUMERIC``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:123
+msgid ""
+"A positive value represents the existence of the edge (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:124
+msgid "**coming**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:124
+msgid ""
+"A positive value represents the existence of the edge (target, source)."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:127
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:129
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:130
+msgid "SMALLINT, INTEGER, BIGINT, REAL, DOUBLE PRECISION"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:133
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:138
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:138
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:138
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:139
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:139
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:139
+msgid "(optional) Determines the type of the graph. Default TRUE."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:143
+msgid "Description of the Result"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:148
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:148
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:148
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:149
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:149
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:150
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:151
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:149
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:150
+msgid "Identifier of the first end point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:151
+msgid "Identifier of the second end point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:155
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:157
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:158
+msgid "http://www.boost.org/libs/graph/doc/maximum_matching.html"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:159
+msgid "https://en.wikipedia.org/wiki/Matching_%28graph_theory%29"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:160
+msgid "https://en.wikipedia.org/wiki/Ackermann_function"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:163
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:164
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:165
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_maxFlow.po b/locale/es/LC_MESSAGES/pgr_maxFlow.po
new file mode 100644
index 0000000..0327a6f
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_maxFlow.po
@@ -0,0 +1,354 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "pgr_maxFlow - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:17
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:19
+msgid ""
+"``pgr_maxFlow`` — Calculates the maximum flow in a directed graph from the "
+"source(s) to the targets(s) using the Push Relabel algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:25
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:28
+msgid "Availability: 2.4.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:35
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:36
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:37
+msgid ""
+"When the maximum flow is 0 then there is no flow and **0** is returned."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:39
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:41
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:42
+msgid "Uses the :ref:`pgr_pushRelabel <pgr_pushRelabel>` algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:44
+msgid "Running time: :math:`O( V ^ 3)`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:47
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:62
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:64
+msgid "Calculates the maximum flow from the `source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:82
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:84
+msgid "Calculates the maximum flow from the `source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:102
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:104
+msgid "Calculates the maximum flow from all the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:122
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:124
+msgid ""
+"Calculates the maximum flow from all of the `sources` to all of the "
+"`targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:138
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152 ../../build/doc/pgr_maxFlow.rst:169
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152 ../../build/doc/pgr_maxFlow.rst:169
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:155
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:157
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:149
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:154
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:154
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:154
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:155 ../../build/doc/pgr_maxFlow.rst:157
+#: ../../build/doc/pgr_maxFlow.rst:171
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:155
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:156
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:156 ../../build/doc/pgr_maxFlow.rst:158
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:156
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:157
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:158
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:158
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:166
+msgid "Description of the return value"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:171
+msgid "Maximum flow possible from the source(s) to the target(s)"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:175
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:177
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:178
+msgid "http://www.boost.org/libs/graph/doc/push_relabel_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:179
+msgid ""
+"https://en.wikipedia.org/wiki/Push%E2%80%93relabel_maximum_flow_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:182
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:183
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:184
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_nodeNetwork.po b/locale/es/LC_MESSAGES/pgr_nodeNetwork.po
new file mode 100644
index 0000000..b9b92db
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_nodeNetwork.po
@@ -0,0 +1,353 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_nodeNetwork.rst:13
+msgid "pgr_nodeNetwork"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:18
+msgid "``pgr_nodeNetwork`` - Nodes an network edge table."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:20
+msgid "Nicolas Ribot"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:21
+msgid "Nicolas Ribot, The source code is released under the MIT-X license."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:27
+msgid ""
+"The function reads edges from a not \"noded\" network table and writes the "
+"\"noded\" edges into a new table."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:39
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:41
+msgid ""
+"A common problem associated with bringing GIS data into pgRouting is the "
+"fact that the data is often not \"noded\" correctly. This will create "
+"invalid topologies, which will result in routes that are incorrect."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:43
+msgid ""
+"What we mean by \"noded\" is that at every intersection in the road network "
+"all the edges will be broken into separate road segments. There are cases "
+"like an over-pass and under-pass intersection where you can not traverse "
+"from the over-pass to the under-pass, but this function does not have the "
+"ability to detect and accommodate those situations."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:45
+msgid ""
+"This function reads the ``edge_table`` table, that has a primary key column "
+"``id`` and geometry column named ``the_geom`` and intersect all the segments"
+" in it against all the other segments and then creates a table "
+"``edge_table_noded``. It uses the ``tolerance`` for deciding that multiple "
+"nodes within the tolerance are considered the same node."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:47
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:49
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:50
+msgid "``float8`` tolerance for coincident points (in projection unit)dd"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:51
+msgid ""
+"``text`` Primary key column name of the network table. Default value is "
+"``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:52
+msgid ""
+"``text`` Geometry column name of the network table. Default value is "
+"``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:53
+msgid "``text`` Suffix for the new table's. Default value is ``noded``."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:55
+msgid "The output table will have for  ``edge_table_noded``"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:57
+msgid "``bigint`` Unique identifier for the table"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:58
+msgid "``bigint``  Identifier of the edge in original table"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:59
+msgid "``integer`` Segment number of the original edge"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:60
+msgid ""
+"``integer`` Empty source column to be used with  :ref:`pgr_create_topology` "
+"function"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:61
+msgid ""
+"``integer`` Empty target column to be used with  :ref:`pgr_create_topology` "
+"function"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:62
+msgid "``geometry`` Geometry column of the noded network"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:65
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:66
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:70
+msgid "Example"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:72
+msgid "Let's create the topology for the data in :doc:`sampledata`"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:90
+msgid "Now we can analyze the network."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:114
+msgid ""
+"The analysis tell us that the network has a gap and an intersection. We try "
+"to fix the problem using:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:136
+msgid ""
+"Inspecting the generated table, we can see that edges 13,14 and 18 has been "
+"segmented"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:166
+msgid "We can create the topology of the new network"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:184
+msgid "Now let's analyze the new topology"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:210
+msgid "Images"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:243
+msgid "Comparing the results"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:245
+msgid "Comparing with the Analysis in the original edge_table, we see that."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:248
+msgid "Before"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:248
+msgid "After"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:250
+msgid "Table name"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:250
+msgid "edge_table"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:250
+msgid "edge_table_noded"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:252
+msgid "Fields"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:252
+msgid "All original fields"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:252
+msgid "Has only basic fields to do a topology analysis"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:254
+msgid "Dead ends"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:254
+msgid "Edges with 1 dead end: 1,6,24"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:255
+msgid "Edges with 2 dead ends  17,18"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:257
+msgid ""
+"Edge 17's right node is a dead end because there is no other edge sharing "
+"that same node. (cnt=1)"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:254
+msgid "Edges with 1 dead end: 1-1 ,6-1,14-2, 18-1 17-1 18-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:261
+msgid "Isolated segments"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:261
+msgid "two isolated segments:  17 and 18 both they have 2 dead ends"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:262
+msgid "No Isolated segments"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:262
+msgid "Edge 17 now shares a node with edges 14-1 and 14-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:263
+msgid "Edges 18-1 and 18-2 share a node with edges 13-1 and 13-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:265
+msgid "Gaps"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:265
+msgid ""
+"There is a gap between edge 17 and 14 because edge 14 is near to the right "
+"node of edge 17"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:265
+msgid ""
+"Edge 14 was segmented Now edges: 14-1 14-2 17 share the same node The "
+"tolerance value was taken in account"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:269
+msgid "Intersections"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:269
+msgid "Edges 13 and 18 were intersecting"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:269
+msgid ""
+"Edges were segmented, So, now in the interection's point there is a node and"
+" the following edges share it: 13-1 13-2 18-1 18-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:274
+msgid ""
+"Now, we are going to include the segments 13-1, 13-2 14-1, 14-2 ,18-1 and "
+"18-2 into our edge-table, copying the data for dir,cost,and reverse cost "
+"with tho following steps:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:276
+msgid ""
+"Add a column old_id into edge_table, this column is going to keep track the "
+"id of the original edge"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:277
+msgid ""
+"Insert only the segmented edges, that is, the ones whose max(sub_id) >1"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:290
+msgid "We recreate the topology:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:310
+msgid ""
+"To get the same analysis results as the topology of edge_table_noded, we do "
+"the following query:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:337
+msgid ""
+"To get the same analysis results as the original edge_table, we do the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:362
+msgid ""
+"Or we can analyze everything because, maybe edge 18 is an overpass, edge 14 "
+"is an under pass and there is also a street level juction, and the same "
+"happens with edges 17 and 13."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:389
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:391
+msgid ""
+":ref:`topology` for an overview of a topology for routing algorithms. "
+":ref:`pgr_analyze_oneway` to analyze directionality of the edges. "
+":ref:`pgr_create_topology` to create a topology based on the geometry. "
+":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:397
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:398
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:399
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_pointsAsPolygon.po b/locale/es/LC_MESSAGES/pgr_pointsAsPolygon.po
new file mode 100644
index 0000000..356d85b
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_pointsAsPolygon.po
@@ -0,0 +1,124 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:13
+msgid "pgr_pointsAsPolygon"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:21
+msgid ""
+"``pgr_pointsAsPolygon`` — Draws an alpha shape around given set of points."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:27
+msgid "Returns the alpha shape as (multi)polygon geometry."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:35
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:37
+msgid ""
+"``text`` a SQL query, which should return a set of rows with the following "
+"columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:43
+msgid "``int4`` identifier of the vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:44
+msgid "``float8`` x-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:45
+msgid "``float8`` y-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:47
+msgid ""
+"(optional) ``float8`` alpha value. If specified alpha value equals 0 "
+"(default), then optimal alpha value is used. For more information, see `CGAL"
+" - 2D Alpha Shapes "
+"<http://doc.cgal.org/latest/Alpha_shapes_2/group__PkgAlphaShape2.html>`_."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:50
+msgid "Returns a (multi)polygon geometry (with holes)."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:54
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:55
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:56
+msgid ""
+"Added alpha argument with default 0 (use optimal value) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:57
+msgid ""
+"Supported to return a (multi)polygon geometry (with holes) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:61
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:62
+msgid ""
+"In the following query there is no way to control which point in the polygon"
+" is the first in the list, so you may get similar but different results than"
+" the following which are also correct."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:69
+msgid "The query use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:73
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:75
+msgid ":ref:`pgr_drivingDistance` - Driving Distance"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:76
+msgid ":ref:`pgr_alphashape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:79
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:80
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:81
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_pushRelabel.po b/locale/es/LC_MESSAGES/pgr_pushRelabel.po
new file mode 100644
index 0000000..13e8a04
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_pushRelabel.po
@@ -0,0 +1,439 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_pushRelabel.rst:14
+msgid "pgr_pushRelabel - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:18
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:20
+msgid ""
+"``pgr_pushRelabel`` — Calculates the flow on the graph edges that maximizes "
+"the flow from the sources to the targets using Push Relabel Algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:29
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:30
+msgid "Renamed 2.5.0, Previous name pgr_maxFlowPushRelabel"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:31
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:8
+msgid ""
+"When the maximum flow is 0 then there is no flow and **EMPTY SET** is "
+"returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:12
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:15
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid ""
+"Creates a **super source** and edges to all the source(s), and a **super "
+"target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid ""
+"The maximum flow through the graph is guaranteed to be the value returned by"
+" :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and"
+" can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:41
+msgid "Running time: :math:`O( V ^ 3)`"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:44
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:60
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:62
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:81
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:83
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:102
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:104
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:123
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:125
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:140
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:4
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10 ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11 ../../build/doc/pgr_maxFlow.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:12
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:158
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:160
+msgid ""
+":ref:`maxFlow`, :ref:`pgr_boykovKolmogorov <pgr_boykovKolmogorov>`, "
+":ref:`pgr_edmondsKarp <pgr_edmondsKarp>`"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:161
+msgid "http://www.boost.org/libs/graph/doc/push_relabel_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:162
+msgid ""
+"https://en.wikipedia.org/wiki/Push%E2%80%93relabel_maximum_flow_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:165
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:166
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:167
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_strongComponents.po b/locale/es/LC_MESSAGES/pgr_strongComponents.po
new file mode 100644
index 0000000..6f6c0cf
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_strongComponents.po
@@ -0,0 +1,346 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_strongComponents.rst:13
+msgid "pgr_strongComponents - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:15
+msgid ""
+"``pgr_strongComponents`` — Return the strongly connected components of a "
+"directed graph using Tarjan's algorithm based on DFS. In particular, the "
+"algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:31
+msgid ""
+"A strongly connected component of a directed graph is a set of vertices that"
+" are all reachable from each other. This implementation can only be used "
+"with a directed graph."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:36
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:38
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:40
+msgid "Components are described by vertices"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:42
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:44
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:45
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:47
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:62
+msgid "The signature is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:75
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid ""
+"Description of the return values for connected components and strongly "
+"connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, component, n_seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid ""
+"Component identifier. It is equal to the minimum node identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:91
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:93
+msgid "http://en.wikipedia.org/wiki/Strongly_connected_component"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:94
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:97
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:98
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:99
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_trsp.po b/locale/es/LC_MESSAGES/pgr_trsp.po
new file mode 100644
index 0000000..108f0f8
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_trsp.po
@@ -0,0 +1,281 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_trsp.rst:13
+msgid "pgr_trsp - Turn Restriction Shortest Path (TRSP)"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:22
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:24
+msgid ""
+"``pgr_trsp`` — Returns the shortest path with support for turn restrictions."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:28
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:30
+msgid ""
+"The turn restricted shorthest path (TRSP) is a shortest path algorithm that "
+"can optionally take into account complicated turn restrictions like those "
+"found in real world navigable road networks. Performamnce wise it is nearly "
+"as fast as the A* search but has many additional features like it works with"
+" edges rather than the nodes of the network. Returns a set of "
+":ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows, that "
+"make up a path."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:57
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:59
+msgid ""
+"The Turn Restricted Shortest Path algorithm (TRSP) is similar to the "
+"shooting star in that you can specify turn restrictions."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:61
+msgid ""
+"The TRSP setup is mostly the same as :ref:`Dijkstra shortest path "
+"<pgr_dijkstra>` with the addition of an optional turn restriction table. "
+"This provides an easy way of adding turn restrictions to a road network by "
+"placing them in a separate table."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:64 ../../build/doc/pgr_trsp.rst:120
+msgid ""
+"a SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:71 ../../build/doc/pgr_trsp.rst:127
+msgid "``int4`` identifier of the edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:72 ../../build/doc/pgr_trsp.rst:128
+msgid "``int4`` identifier of the source vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:73 ../../build/doc/pgr_trsp.rst:129
+msgid "``int4`` identifier of the target vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:74 ../../build/doc/pgr_trsp.rst:130
+msgid ""
+"``float8`` value, of the edge traversal cost. A negative cost will prevent "
+"the edge from being inserted in the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:75 ../../build/doc/pgr_trsp.rst:131
+msgid ""
+"(optional) the cost for the reverse traversal of the edge. This is only used"
+" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
+"above remark about negative costs)."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:77
+msgid "``int4`` **NODE id** of the start point"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:78
+msgid "``int4`` **NODE id** of the end point"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:79 ../../build/doc/pgr_trsp.rst:134
+msgid "``true`` if the graph is directed"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:80 ../../build/doc/pgr_trsp.rst:135
+msgid ""
+"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
+"will be used for the cost of the traversal of the edge in the opposite "
+"direction."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:82 ../../build/doc/pgr_trsp.rst:137
+msgid ""
+"(optional) a SQL query, which should return a set of rows with the following"
+" columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:88 ../../build/doc/pgr_trsp.rst:143
+msgid "``float8`` turn restriction cost"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:89 ../../build/doc/pgr_trsp.rst:144
+msgid "``int4`` target id"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:90
+msgid ""
+"``text`` comma separated list of edges in the reverse order of ``rule``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:92
+msgid ""
+"Another variant of TRSP allows to specify **EDGE id** of source and target "
+"together with a fraction to interpolate the position:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:94
+msgid "``int4`` **EDGE id** of the start edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:95
+msgid "``float8`` fraction of 1 defines the position on the start edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:96
+msgid "``int4`` **EDGE id** of the end edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:97
+msgid "``float8`` fraction of 1 defines the position on the end edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:99 ../../build/doc/pgr_trsp.rst:152
+msgid "Returns set of :ref:`type_cost_result`:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:101 ../../build/doc/pgr_trsp.rst:154
+msgid "row sequence"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:102 ../../build/doc/pgr_trsp.rst:156
+msgid "node ID"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:103 ../../build/doc/pgr_trsp.rst:157
+msgid "edge ID (``-1`` for the last row)"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:104
+msgid "cost to traverse from ``id1`` using ``id2``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:107 ../../build/doc/pgr_trsp.rst:162
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:108
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:111
+msgid "Support for Vias"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:113
+msgid ""
+"The Support for Vias functions are prototypes. Not all corner cases are "
+"being considered."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:116
+msgid ""
+"We also have support for vias where you can say generate a from A to B to C,"
+" etc. We support both methods above only you pass an array of vertices or "
+"and array of edges and percentage position along the edge in two arrays."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:133
+msgid ""
+"``int4[]`` An ordered array of **NODE id** the path will go through from "
+"start to end."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:145
+msgid ""
+"``text`` commar separated list of edges in the reverse order of ``rule``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:147
+msgid ""
+"Another variant of TRSP allows to specify **EDGE id** together with a "
+"fraction to interpolate the position:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:149
+msgid "``int4`` An ordered array of **EDGE id** that the path has to traverse"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:150
+msgid ""
+"``float8`` An array of fractional positions along the respective edges in "
+"``eids``, where 0.0 is the start of the edge and 1.0 is the end of the "
+"eadge."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:155
+msgid "route ID"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:158
+msgid "cost to traverse from ``id2`` using ``id3``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:163
+msgid "Via Support prototypes new in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:166
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:168
+msgid "**Without turn restrictions**"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:175
+msgid "**With turn restrictions**"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:177
+msgid "Then a query with turn restrictions is created as:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:184
+msgid "An example query using vertex ids and via points:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:191
+msgid "An example query using edge ids and vias:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:198
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:202
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:204
+msgid ":ref:`type_cost_result`"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:207
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:208
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:209
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_version.po b/locale/es/LC_MESSAGES/pgr_version.po
new file mode 100644
index 0000000..5a6623a
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_version.po
@@ -0,0 +1,130 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_version.rst:13
+msgid "pgr_version"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:21
+msgid "``pgr_version`` — Query for pgRouting version information."
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:27
+msgid "Returns a table with pgRouting version information."
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:35 ../../build/doc/pgr_version.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:37
+msgid "Returns a table with:"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:40
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:40
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:42
+msgid "**version**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:42 ../../build/doc/pgr_version.rst:43
+#: ../../build/doc/pgr_version.rst:44 ../../build/doc/pgr_version.rst:45
+#: ../../build/doc/pgr_version.rst:46
+msgid "``varchar``"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:42
+msgid "pgRouting version"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:43
+msgid "**tag**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:43
+msgid "Git tag of pgRouting build"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:44
+msgid "**hash**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:44
+msgid "Git hash of pgRouting build"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:45
+msgid "**branch**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:45
+msgid "Git branch of pgRouting build"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:46
+msgid "**boost**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:46
+msgid "Boost version"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:51
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:52
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:56
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:58
+msgid "Query for full version string"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:66
+msgid "Query for ``version`` and ``boost`` attribute"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:78
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:81
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:82
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:83
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_vrpOneDepot.po b/locale/es/LC_MESSAGES/pgr_vrpOneDepot.po
new file mode 100644
index 0000000..a0c5006
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_vrpOneDepot.po
@@ -0,0 +1,112 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:14
+msgid "pgr_vrpOneDepot - Experimental"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:21
+msgid "**No documentation available**"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:24
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:28
+msgid "Current Result"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:34
+msgid "Data"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:41
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:43
+msgid "http://en.wikipedia.org/wiki/Vehicle_routing_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:46
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:47
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:48
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_withPoints.po b/locale/es/LC_MESSAGES/pgr_withPoints.po
new file mode 100644
index 0000000..be629d4
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_withPoints.po
@@ -0,0 +1,665 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPoints.rst:13
+msgid "pgr_withPoints - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:19
+msgid ""
+"``pgr_withPoints`` - Returns the shortest path in a graph with additional "
+"temporary vertices."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:33
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:37
+msgid ""
+"Modify the graph to include points defined by points_sql. Using Dijkstra "
+"algorithm, find the shortest path(s)"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:41
+msgid "Characteristics:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:43
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:45
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:46
+msgid "Vertices of the graph are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:48
+msgid "**positive** when it belongs to the edges_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:49
+msgid "**negative** when it belongs to the points_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:51
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:53
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path. -"
+" The agg_cost the non included values (v, v) is 0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:56
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path: - The agg_cost the non included values (u, v) is ∞"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:59
+msgid ""
+"For optimization purposes, any duplicated value in the start_vids or "
+"end_vids are ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:60
+msgid ""
+"The returned values are ordered: - start_vid ascending - end_vid ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:64
+msgid "Running time: :math:`O(|start\\_vids|\\times(V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:68
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:81
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:87
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:92
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:90
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:91
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:92
+msgid ""
+"No **details** are given about distance of other points of points_sql query."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:100
+msgid "From point 1 to point 3"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:110
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:120
+msgid "From point 1 to vertex 3"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:132
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:141
+msgid "From point 1 to point 3 and vertex 5"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:153
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:162
+msgid "From point 1 and vertex 2  to point 3"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:172
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:182
+msgid "From point 1 and vertex 2  to point 3 and vertex 7"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:192
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPoints.rst:236
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPoints.rst:211
+#: ../../build/doc/pgr_withPoints.rst:236
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPoints.rst:211
+#: ../../build/doc/pgr_withPoints.rst:236
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPoints.rst:215
+#: ../../build/doc/pgr_withPoints.rst:216
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_withPoints.rst:249
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPoints.rst:220
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPoints.rst:222
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPoints.rst:223
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:207
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:211
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:213
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:213
+#: ../../build/doc/pgr_withPoints.rst:214
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:213
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:214
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:214
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:215
+#: ../../build/doc/pgr_withPoints.rst:240
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:215
+msgid "Starting vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:216
+#: ../../build/doc/pgr_withPoints.rst:241
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:216
+msgid "Ending vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:217
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:217
+#: ../../build/doc/pgr_withPoints.rst:218
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:217
+msgid ""
+"Array of identifiers of starting vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:218
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:218
+msgid ""
+"Array of identifiers of ending vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:219
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:219
+#: ../../build/doc/pgr_withPoints.rst:225
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:219
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:220
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:223
+msgid ""
+"(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:221
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:225
+msgid "**details**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:225
+msgid ""
+"(optional). When ``true`` the results will include the points in points_sql "
+"that are in the path. Default is ``false`` which ignores other points of the"
+" points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:231
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:233
+msgid ""
+"Returns set of ``(seq, [path_seq,] [start_vid,] [end_vid,] node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:238
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:238
+#: ../../build/doc/pgr_withPoints.rst:239
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:238
+msgid "Row sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:239
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:239
+msgid "Path sequence that indicates the relative position on the path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:240
+#: ../../build/doc/pgr_withPoints.rst:241
+#: ../../build/doc/pgr_withPoints.rst:242
+#: ../../build/doc/pgr_withPoints.rst:246
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:240
+msgid "Identifier of the starting vertex. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:241
+msgid "Identifier of the ending vertex. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:242
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:244
+msgid "Identifier of the node:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:243
+msgid "A positive value indicates the node is a vertex of edges_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:244
+msgid "A negative value indicates the node is a point of points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:246
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:247
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:247
+msgid "``-1`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:249
+#: ../../build/doc/pgr_withPoints.rst:252
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:250
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next ``node`` in the "
+"path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:250
+msgid "``0`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:252
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:253
+msgid "Aggregate cost from ``start_pid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:253
+msgid "``0`` for the first row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:260
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:262
+msgid ""
+"Which path (if any) passes in front of point 6 or vertex 6 with **right** "
+"side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:268
+msgid ""
+"Which path (if any) passes in front of point 6 or vertex 6 with **left** "
+"side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:274
+msgid ""
+"Many to many example with a twist: on undirected graph and showing details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:281
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:286
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:287
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:291
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:293
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:296
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:297
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:298
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_withPointsCost.po b/locale/es/LC_MESSAGES/pgr_withPointsCost.po
new file mode 100644
index 0000000..f478ccd
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_withPointsCost.po
@@ -0,0 +1,603 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsCost.rst:13
+msgid "pgr_withPointsCost - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:19
+msgid ""
+"``pgr_withPointsCost`` - Calculates the shortest path and returns only the "
+"aggregate cost of the shortest path(s) found, for the combination of points "
+"given."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:33
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:37
+msgid ""
+"Modify the graph to include points defined by points_sql. Using Dijkstra "
+"algorithm, return only the aggregate cost of the shortest path(s) found."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:41
+msgid "Characteristics:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:79
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:44
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:45
+msgid ""
+"Returns the sum of the costs of the shortest path for pair combination of "
+"vertices in the modified graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:46
+msgid "Vertices of the graph are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:48
+msgid "**positive** when it belongs to the edges_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:49
+msgid "**negative** when it belongs to the points_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:51
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:52
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:54
+msgid ""
+"The returned values are in the form of a set of `(start_vid, end_vid, "
+"agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:56
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:58
+msgid "The `agg_cost` in the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:60
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:62
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:64
+msgid ""
+"If the values returned are stored in a table, the unique index would be the "
+"pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:67
+msgid "For undirected graphs, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:69
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:71
+msgid ""
+"For optimization purposes, any duplicated value in the `start_vids` or "
+"`end_vids` is ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:73
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:75
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:76
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:78
+msgid "Running time: :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:82
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:92
+msgid ""
+"There is no **details** flag, unlike the other members of the withPoints "
+"family of functions."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:96
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:102
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:106
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:105
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:106
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:124
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:145
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:166
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:185
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:204
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCost.rst:246
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCost.rst:223
+#: ../../build/doc/pgr_withPointsCost.rst:246
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCost.rst:223
+#: ../../build/doc/pgr_withPointsCost.rst:246
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPointsCost.rst:227
+#: ../../build/doc/pgr_withPointsCost.rst:228
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsCost.rst:232
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsCost.rst:234
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsCost.rst:235
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:219
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:223
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:225
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:225
+#: ../../build/doc/pgr_withPointsCost.rst:226
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:225
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:226
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:226
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:227
+#: ../../build/doc/pgr_withPointsCost.rst:248
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:227
+msgid "Starting vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:228
+#: ../../build/doc/pgr_withPointsCost.rst:249
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:228
+msgid "Ending vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:229
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:229
+#: ../../build/doc/pgr_withPointsCost.rst:230
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:229
+msgid ""
+"Array of identifiers of starting vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:230
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:230
+msgid ""
+"Array of identifiers of ending vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:231
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:231
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:231
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:232
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:235
+msgid ""
+"(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:233
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:241
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:243
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:248
+#: ../../build/doc/pgr_withPointsCost.rst:249
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:248
+msgid "Identifier of the starting vertex. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:249
+msgid "Identifier of the ending point. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:250
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:250
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:250
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:256
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:258
+msgid "With **right** side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:264
+msgid "With **left** side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:270
+msgid "Does not matter driving side."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:277
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:282
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:283
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:287
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:289
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:292
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:293
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:294
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_withPointsCostMatrix.po b/locale/es/LC_MESSAGES/pgr_withPointsCostMatrix.po
new file mode 100644
index 0000000..c9bb20f
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_withPointsCostMatrix.po
@@ -0,0 +1,472 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:13
+msgid "pgr_withPointsCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:19
+msgid ""
+"``pgr_withPointsCostMatrix`` - Calculates the shortest path and returns only"
+" the aggregate cost of the shortest path(s) found, for the combination of "
+"points given."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:31
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:35
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:37
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:45
+msgid ""
+"There is no **details** flag, unlike the other members of the withPoints "
+"family of functions."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:49
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:55
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:59
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:58
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:59
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:78
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:87
+msgid "returning a symmetrical cost matrix"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:89
+msgid "Using the default **side** value on the **points_sql** query"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:90
+msgid "Using an undirected graph"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:91
+msgid "Using the default **driving_side** value"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:100
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:120
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:120
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:126
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:128
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:129
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:116
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:120
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:122
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:122
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:123
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:122
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:123
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:123
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:124
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:124
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:124
+msgid ""
+"Array of identifiers of starting vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:125
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:125
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:125
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:126
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:129
+msgid ""
+"(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:127
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:140
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:142
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:151
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:153
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:154
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:155
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:156
+msgid "`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:159
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:160
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:161
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_withPointsDD.po b/locale/es/LC_MESSAGES/pgr_withPointsDD.po
new file mode 100644
index 0000000..95b4be1
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_withPointsDD.po
@@ -0,0 +1,552 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsDD.rst:13
+msgid "pgr_withPointsDD - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:19
+msgid ""
+"``pgr_withPointsDD`` - Returns the driving distance from a starting point."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:33
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:37
+msgid ""
+"Modify the graph to include points and using Dijkstra algorithm, extracts "
+"all the nodes and points that have costs less than or equal to the value "
+"``distance`` from the starting point. The edges extracted will conform the "
+"corresponding spanning tree."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:44
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:54
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:60
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:65
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:63
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:64
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:65
+msgid "No **details** are given about distance of other points of the query."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:84
+msgid "Driving distance from a single point"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:86
+#: ../../build/doc/pgr_withPointsDD.rst:106
+msgid "Finds the driving distance depending on the optional parameters setup."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:94
+msgid "Right side driving topology"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:104
+msgid "Driving distance from many starting points"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:118
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsDD.rst:162
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsDD.rst:138
+#: ../../build/doc/pgr_withPointsDD.rst:162
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsDD.rst:138
+#: ../../build/doc/pgr_withPointsDD.rst:162
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPointsDD.rst:142
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_withPointsDD.rst:169
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+#: ../../build/doc/pgr_withPointsDD.rst:143
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsDD.rst:145
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsDD.rst:147
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsDD.rst:148
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:134
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:138
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:140
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:140
+#: ../../build/doc/pgr_withPointsDD.rst:141
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:140
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:141
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:141
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:142
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:142
+msgid "Starting point id"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:143
+msgid "**distance**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:143
+msgid "Distance from the start_pid"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:144
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:144
+#: ../../build/doc/pgr_withPointsDD.rst:150
+#: ../../build/doc/pgr_withPointsDD.rst:152
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:144
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:145
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:148
+msgid ""
+"(optional). Value in ['b', 'r', 'l', NULL] indicating if the driving side "
+"is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:146
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:150
+msgid "**details**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:150
+msgid ""
+"(optional). When ``true`` the results will include the driving distance to "
+"the points with in the ``distance``. Default is ``false`` which ignores "
+"other points of the points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:152
+msgid "**equicost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:152
+msgid ""
+"(optional). When ``true`` the nodes will only appear in the closest start_v "
+"list. Default is ``false`` which resembles several calls using the single "
+"starting point signatures. Tie brakes are arbitrary."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:157
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:159
+msgid "Returns set of ``(seq, node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:164
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:164
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:164
+msgid "row sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:165
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:165
+#: ../../build/doc/pgr_withPointsDD.rst:166
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:165
+msgid ""
+"Identifier of the node within the Distance from ``start_pid``. If ``details "
+"=: true`` a negative value is the identifier of a point."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:166
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:167
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:167
+msgid "``-1`` when ``start_vid`` = ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:169
+#: ../../build/doc/pgr_withPointsDD.rst:172
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:170
+msgid "Cost to traverse ``edge``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:170
+#: ../../build/doc/pgr_withPointsDD.rst:173
+msgid "``0`` when ``start_vid`` = ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:172
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:173
+msgid "Aggregate cost from ``start_vid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:180
+msgid ""
+"Examples for queries marked as ``directed`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:182
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:184
+msgid "Left side driving topology"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:190
+msgid "Does not matter driving side."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:199
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:204
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:205
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:209
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:211
+msgid ":ref:`pgr_drivingDistance` - Driving distance using dijkstra."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:212
+msgid ":ref:`pgr_alphashape` - Alpha shape computation."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:213
+msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:216
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:217
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:218
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/pgr_withPointsKSP.po b/locale/es/LC_MESSAGES/pgr_withPointsKSP.po
new file mode 100644
index 0000000..8202877
--- /dev/null
+++ b/locale/es/LC_MESSAGES/pgr_withPointsKSP.po
@@ -0,0 +1,571 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsKSP.rst:13
+msgid "pgr_withPointsKSP - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:19
+msgid ""
+"``pgr_withPointsKSP`` - Find the K shortest paths using Yen's algorithm."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:29
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:32
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:34
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:36
+msgid ""
+"Modifies the graph to include the points defined in the ``points_sql`` and "
+"using Yen algorithm, finds the K shortest paths."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:41
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:56
+msgid "Minimal Usage"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:62
+msgid "The minimal usage:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:59
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:60
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:61
+msgid "No **details** are given about distance of other points of the query."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:62
+msgid "No **heap paths** are returned."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:80
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:82
+msgid "Finds the K shortest paths depending on the optional parameters setup."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:91
+msgid "With details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:98
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsKSP.rst:144
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsKSP.rst:119
+#: ../../build/doc/pgr_withPointsKSP.rst:144
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsKSP.rst:119
+#: ../../build/doc/pgr_withPointsKSP.rst:144
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPointsKSP.rst:123
+#: ../../build/doc/pgr_withPointsKSP.rst:124
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_withPointsKSP.rst:153
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsKSP.rst:128
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsKSP.rst:130
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsKSP.rst:131
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:115
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:119
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:121
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:121
+#: ../../build/doc/pgr_withPointsKSP.rst:122
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:121
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:122
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:122
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:123
+msgid "**start_pid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:123
+msgid "Starting point id."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:124
+msgid "**end_pid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:124
+msgid "Ending point id."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:125
+msgid "**K**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:125
+#: ../../build/doc/pgr_withPointsKSP.rst:146
+#: ../../build/doc/pgr_withPointsKSP.rst:147
+#: ../../build/doc/pgr_withPointsKSP.rst:148
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:125
+msgid "Number of shortest paths."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:126
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:126
+#: ../../build/doc/pgr_withPointsKSP.rst:127
+#: ../../build/doc/pgr_withPointsKSP.rst:133
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:126
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:127
+msgid "**heap_paths**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:127
+msgid ""
+"(optional). When ``true`` the paths calculated to get the shortests paths "
+"will be returned also. Default is ``false`` only the K shortest paths are "
+"returned."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:128
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:131
+msgid ""
+"(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:129
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:133
+msgid "**details**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:133
+msgid ""
+"(optional). When ``true`` the results will include the driving distance to "
+"the points with in the ``distance``. Default is ``false`` which ignores "
+"other points of the points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:139
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:141
+msgid ""
+"Returns set of ``(seq, path_id, path_seq, node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:146
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:146
+msgid "Row sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:147
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:147
+msgid ""
+"Relative position in the path of node and edge. Has value 1 for the "
+"beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:148
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:148
+msgid ""
+"Path identifier. The ordering of the paths: For two paths i, j if i < j then"
+" agg_cost(i) <= agg_cost(j)."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:149
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:149
+#: ../../build/doc/pgr_withPointsKSP.rst:150
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:149
+msgid ""
+"Identifier of the node in the path. Negative values are the identifiers of a"
+" point."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:150
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:151
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:151
+msgid "``-1`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:153
+#: ../../build/doc/pgr_withPointsKSP.rst:156
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:154
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next ``node`` in the "
+"path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:154
+msgid "``0`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:156
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:157
+msgid "Aggregate cost from ``start_pid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:157
+msgid "``0`` for the first row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:164
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:166
+msgid "Left side driving topology with details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:172
+msgid "Right side driving topology with heap paths and details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:178
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:181
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:182
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:186
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:188
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:191
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:192
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:193
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/proposed.po b/locale/es/LC_MESSAGES/proposed.po
new file mode 100644
index 0000000..9f1a6f4
--- /dev/null
+++ b/locale/es/LC_MESSAGES/proposed.po
@@ -0,0 +1,410 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/proposed.rst:13
+msgid "Stable Proposed Functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:20
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:22
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:23
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:24
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:25
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:26
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:27
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:33
+msgid "As part of the :ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:35
+msgid ""
+":ref:`pgr_dijkstraCostMatrix` Use pgr_dijkstra to calculate a cost matrix."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:36
+msgid ""
+":ref:`pgr_dijkstraVia` - Use pgr_dijkstra to make a route via vertices."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:39
+msgid "Families"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:40
+msgid ":ref:`astar`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:3
+msgid ":ref:`pgr_aStar` - A* algorithm for the shortest path."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:4
+msgid ":ref:`pgr_aStarCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:5
+msgid ""
+":ref:`pgr_aStarCostMatrix` - Get the cost matrix of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:46
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:3
+msgid ":ref:`pgr_bdAstar` - Bidirectional A* algorithm for obtaining paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid ""
+":ref:`pgr_bdAstarCost` - Bidirectional A* algorithm to calculate the cost of"
+" the paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:5
+msgid ""
+":ref:`pgr_bdAstarCostMatrix` - Bidirectional A* algorithm to calculate a "
+"cost matrix of paths."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:52
+msgid ":ref:`bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:3
+msgid ""
+":ref:`pgr_bdDijkstra` - Bidirectional Dijkstra algorithm for the shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:4
+msgid ""
+":ref:`pgr_bdDijkstraCost` - Bidirectional Dijkstra to calculate the cost of "
+"the shortest paths"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:5
+msgid ""
+":ref:`pgr_bdDijkstraCostMatrix` - Bidirectional Dijkstra algorithm  to "
+"create a matrix of costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:58
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:3
+msgid ""
+":ref:`pgr_maxFlow` - Only the Max flow calculation using Push and Relabel "
+"algorithm."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:4
+msgid ""
+":ref:`pgr_BoykovKolmogorov` - Boykov and Kolmogorov with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid ""
+":ref:`pgr_EdmondsKarp` - Edmonds and Karp algorithm with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid ""
+":ref:`pgr_PushRelabel` - Push and relabel algorithm with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Applications"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:9
+msgid ""
+":ref:`pgr_edgeDisjointPaths` - Calculates edge disjoint paths between two "
+"groups of vertices."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid ""
+":ref:`pgr_maxCardinalityMatch` - Calculates a maximum cardinality matching "
+"in a graph."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:64
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:3
+msgid ":ref:`pgr_withPoints` - Route from/to points anywhere on the graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:4
+msgid ":ref:`pgr_withPointsCost` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:5
+msgid ":ref:`pgr_withPointsCostMatrix` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:6
+msgid ":ref:`pgr_withPointsKSP` - K shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:7
+msgid ":ref:`pgr_withPointsDD` - Driving distance."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:71
+msgid "categories"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:72
+msgid ":ref:`Cost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:3
+msgid ":ref:`pgr_aStarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:4
+msgid ":ref:`pgr_bdAstarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:5
+msgid ":ref:`pgr_bdDijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:6
+msgid ":ref:`pgr_dijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:7
+msgid ":ref:`pgr_withPointsCost`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:78
+msgid ":ref:`CostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:3
+msgid ":ref:`pgr_aStarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:4
+msgid ":ref:`pgr_bdAstarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:5
+msgid ":ref:`pgr_bdDijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:6
+msgid ":ref:`pgr_dijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:7
+msgid ":ref:`pgr_withPointsCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:84
+msgid ":ref:`KSP`"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:3
+msgid ":ref:`pgr_KSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:4
+msgid ":ref:`pgr_withPointsKSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:106
+msgid "Experimental Functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:111
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:113
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:114
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:116
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:117
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:118
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:119
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:120
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:121
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:122
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:123
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:124
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:125
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:126
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:127
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:132
+msgid ":ref:`contraction` - Reduce network size using contraction techniques"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:134
+msgid ""
+":ref:`pgr_contractgraph` - Reduce network size using contraction techniques"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:138
+msgid "Graph Analysis"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:139
+msgid ":ref:`pgr_labelGraph` - Analyze / label  subgraphs within a network"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:141
+msgid ":ref:`components` - Analyze components within a graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:143
+msgid ""
+":ref:`pgr_connectedComponents` - Return the connected components of an "
+"undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:144
+msgid ""
+":ref:`pgr_strongComponents` - Return the strongly connected components of a "
+"directed graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:145
+msgid ""
+":ref:`pgr_biconnectedComponents` - Return the biconnected components of an "
+"undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:146
+msgid ""
+":ref:`pgr_articulationPoints` - Return the articulation points of an "
+"undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:147
+msgid ":ref:`pgr_bridges` - Return the bridges of an undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:150
+msgid "VRP"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:151
+msgid ":ref:`pgr_gsocvrppdtw`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:152
+msgid ":ref:`pgr_vrp_basic`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:166
+msgid "Graph Transformation"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:167
+msgid ":doc:`pgr_lineGraph`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:175
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:178
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:179
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:180
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/release_notes.po b/locale/es/LC_MESSAGES/release_notes.po
new file mode 100644
index 0000000..f4a09f7
--- /dev/null
+++ b/locale/es/LC_MESSAGES/release_notes.po
@@ -0,0 +1,1278 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/release_notes.rst:13
+msgid "Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:15
+msgid ""
+"To see the full list of changes check the list of `Git commits "
+"<https://github.com/pgRouting/pgrouting/commits>`_ on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:18
+msgid "Table of contents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:21
+msgid ":ref:`changelog_2_5_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:22
+msgid ":ref:`changelog_2_4_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:23
+msgid ":ref:`changelog_2_4_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:24
+msgid ":ref:`changelog_2_4_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:25
+msgid ":ref:`changelog_2_3_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:26
+msgid ":ref:`changelog_2_3_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:27
+msgid ":ref:`changelog_2_3_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:28
+msgid ":ref:`changelog_2_2_4`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:29
+msgid ":ref:`changelog_2_2_3`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:30
+msgid ":ref:`changelog_2_2_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:31
+msgid ":ref:`changelog_2_2_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:32
+msgid ":ref:`changelog_2_2_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:33
+msgid ":ref:`changelog_2_1_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:34
+msgid ":ref:`changelog_2_0_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:35
+msgid ":ref:`changelog_2_0_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:36
+msgid ":ref:`changelog_1_x`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:43
+msgid "pgRouting 2.5.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:45
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.5.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.5.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:49
+msgid "enhancement:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:50
+msgid "pgr_version is now on SQL language"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:53
+msgid "Breaking change on:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:54
+msgid "pgr_edgeDisjointPaths:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:56
+msgid "Added path_id, cost and agg_cost columns on the result"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:57
+msgid "Parameter names changed"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:58
+msgid "The many version results are the union of the one to one version"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:61
+msgid "New Signatures:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:62
+msgid "pgr_bdAstar(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:65 ../../build/doc/release_notes.rst:223
+msgid "New Proposed functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:66
+msgid "pgr_bdAstar(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:67
+msgid "pgr_bdAstar(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:68
+msgid "pgr_bdAstar(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:69
+msgid "pgr_bdAstarCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:70
+msgid "pgr_bdAstarCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:71
+msgid "pgr_bdAstarCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:72
+msgid "pgr_bdAstarCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:73
+msgid "pgr_bdAstarCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:74
+msgid "pgr_bdDijkstra(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:75
+msgid "pgr_bdDijkstra(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:76
+msgid "pgr_bdDijkstra(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:77
+msgid "pgr_bdDijkstraCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:78
+msgid "pgr_bdDijkstraCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:79
+msgid "pgr_bdDijkstraCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:80
+msgid "pgr_bdDijkstraCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:81
+msgid "pgr_bdDijkstraCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:82
+msgid "pgr_lineGraph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:83
+msgid "pgr_connectedComponents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:84
+msgid "pgr_strongComponents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:85
+msgid "pgr_biconnectedComponents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:86
+msgid "pgr_articulationPoints"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:87
+msgid "pgr_bridges"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:90 ../../build/doc/release_notes.rst:160
+#: ../../build/doc/release_notes.rst:247
+msgid "Deprecated Signatures"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:91
+msgid "pgr_bdastar - use pgr_bdAstar instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:94
+msgid "Renamed Functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:95
+msgid "pgr_maxFlowPushRelabel - use pgr_pushRelabel instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:96
+msgid "pgr_maxFlowEdmondsKarp -use pgr_edmondsKarp instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:97
+msgid "pgr_maxFlowBoykovKolmogorov - use pgr_boykovKolmogorov instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:98
+msgid "pgr_maximumCardinalityMatching - use pgr_maxCardinalityMatch instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:101
+msgid "Deprecated function"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:102
+msgid "pgr_pointToEdgeNode"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:108
+msgid "pgRouting 2.4.2 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:110
+msgid ""
+"To see the issues closed by this release see the `Git closed milestone for "
+"2.4.2 "
+"<https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.4.2%22%20>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:113
+msgid "Improvement"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:114
+msgid "Works for postgreSQL 10"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:117 ../../build/doc/release_notes.rst:131
+#: ../../build/doc/release_notes.rst:168 ../../build/doc/release_notes.rst:522
+#: ../../build/doc/release_notes.rst:529 ../../build/doc/release_notes.rst:550
+#: ../../build/doc/release_notes.rst:557
+msgid "Bug fixes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:118
+msgid "Fixed: Unexpected error column \"cname\""
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:119
+msgid ""
+"Replace __linux__ with __GLIBC__ for glibc-specific headers and functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:126
+msgid "pgRouting 2.4.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:128
+msgid ""
+"To see the issues closed by this release see the `Git closed milestone for "
+"2.4.1 "
+"<https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.4.1%22%20>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:132
+msgid "Fixed compiling error on macOS"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:133
+msgid "Condition error on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:138
+msgid "pgRouting 2.4.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:140
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.4.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.4.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:143 ../../build/doc/release_notes.rst:213
+#: ../../build/doc/release_notes.rst:374
+msgid "New Signatures"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:144
+msgid "pgr_bdDijkstra"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:148
+msgid "New Proposed Signatures"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:149
+msgid "pgr_maxFlow"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:150
+msgid "pgr_astar(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:151
+msgid "pgr_astar(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:152
+msgid "pgr_astar(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:153
+msgid "pgr_astarCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:154
+msgid "pgr_astarCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:155
+msgid "pgr_astarCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:156
+msgid "pgr_astarCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:157
+msgid "pgr_astarCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:161
+msgid "pgr_bddijkstra - use pgr_bdDijkstra instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:164 ../../build/doc/release_notes.rst:253
+msgid "Deprecated Functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:165
+msgid "pgr_pointsToVids"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:169
+msgid "Bug fixes on proposed functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:171
+msgid "pgr_withPointsKSP: fixed ordering"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:173
+msgid "TRSP original code is used with no changes on the compilation warnings"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:178
+msgid "pgRouting 2.3.2 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:180
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.3.2 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.3.2%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:183 ../../build/doc/release_notes.rst:199
+#: ../../build/doc/release_notes.rst:269 ../../build/doc/release_notes.rst:282
+#: ../../build/doc/release_notes.rst:293 ../../build/doc/release_notes.rst:305
+#: ../../build/doc/release_notes.rst:424 ../../build/doc/release_notes.rst:455
+msgid "Bug Fixes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:184
+msgid "Fixed pgr_gsoc_vrppdtw crash when all orders fit on one truck."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:185
+msgid "Fixed pgr_trsp:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:187
+msgid "Alternate code is not executed when the point is in reality a vertex"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:188
+msgid "Fixed ambiguity on seq"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:194
+msgid "pgRouting 2.3.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:196
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.3.1 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.3.1%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:200
+msgid "Leaks on proposed max_flow functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:201
+msgid "Regression error on pgr_trsp"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:202
+msgid "Types discrepancy on pgr_createVerticesTable"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:208
+msgid "pgRouting 2.3.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:210
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.3.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.3.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:214
+msgid "pgr_TSP"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:215
+msgid "pgr_aStar"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:218 ../../build/doc/release_notes.rst:330
+msgid "New Functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:219
+msgid "pgr_eucledianTSP"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:224
+msgid "pgr_dijkstraCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:225
+msgid "pgr_withPointsCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:226
+msgid "pgr_maxFlowPushRelabel(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:227
+msgid "pgr_maxFlowPushRelabel(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:228
+msgid "pgr_maxFlowPushRelabel(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:229
+msgid "pgr_maxFlowPushRelabel(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:230
+msgid "pgr_maxFlowEdmondsKarp(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:231
+msgid "pgr_maxFlowEdmondsKarp(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:232
+msgid "pgr_maxFlowEdmondsKarp(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:233
+msgid "pgr_maxFlowEdmondsKarp(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:234
+msgid "pgr_maxFlowBoykovKolmogorov (one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:235
+msgid "pgr_maxFlowBoykovKolmogorov (one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:236
+msgid "pgr_maxFlowBoykovKolmogorov (many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:237
+msgid "pgr_maxFlowBoykovKolmogorov (many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:238
+msgid "pgr_maximumCardinalityMatching"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:239
+msgid "pgr_edgeDisjointPaths(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:240
+msgid "pgr_edgeDisjointPaths(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:241
+msgid "pgr_edgeDisjointPaths(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:242
+msgid "pgr_edgeDisjointPaths(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:243
+msgid "pgr_contractGraph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:248
+msgid "pgr_tsp - use pgr_TSP or pgr_eucledianTSP instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:249
+msgid "pgr_astar - use pgr_aStar instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:254
+msgid "pgr_flip_edges"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:255
+msgid "pgr_vidsToDmatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:256
+msgid "pgr_pointsToDMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:257
+msgid "pgr_textToPoints"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:264
+msgid "pgRouting 2.2.4 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:266
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.4 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.4%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:270
+msgid "Bogus uses of extern \"C\""
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:271
+msgid "Build error on Fedora 24 + GCC 6.0"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:272
+msgid "Regression error pgr_nodeNetwork"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:277
+msgid "pgRouting 2.2.3 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:279
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.3 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.3%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:283
+msgid "Fixed compatibility issues with PostgreSQL 9.6."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:288
+msgid "pgRouting 2.2.2 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:290
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.2 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.2%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:294
+msgid "Fixed regression error on pgr_drivingDistance"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:300
+msgid "pgRouting 2.2.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:302
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.1 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A2.2.1+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:306
+msgid "Server crash fix on pgr_alphaShape"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:307
+msgid "Bug fix on With Points family of functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:313
+msgid "pgRouting 2.2.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:315
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:319 ../../build/doc/release_notes.rst:387
+msgid "Improvements"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:320
+msgid "pgr_nodeNetwork"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:322
+msgid "Adding a row_where and outall optional parameters"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:324
+msgid "Signature fix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:326
+msgid "pgr_dijkstra  -- to match what is documented"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:331
+msgid "pgr_floydWarshall"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:332
+msgid "pgr_Johnson"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:333
+msgid "pgr_dijkstraCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:334
+msgid "pgr_dijkstraCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:335
+msgid "pgr_dijkstraCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:336
+msgid "pgr_dijkstraCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:339 ../../build/doc/release_notes.rst:391
+msgid "Proposed functionality"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:340
+msgid "pgr_withPoints(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:341
+msgid "pgr_withPoints(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:342
+msgid "pgr_withPoints(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:343
+msgid "pgr_withPoints(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:344
+msgid "pgr_withPointsCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:345
+msgid "pgr_withPointsCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:346
+msgid "pgr_withPointsCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:347
+msgid "pgr_withPointsCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:348
+msgid "pgr_withPointsDD(single vertex)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:349
+msgid "pgr_withPointsDD(multiple vertices)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:350
+msgid "pgr_withPointsKSP"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:351
+msgid "pgr_dijkstraVia"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:355
+msgid "Deprecated functions:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:356
+msgid "pgr_apspWarshall  use pgr_floydWarshall instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:357
+msgid "pgr_apspJohnson   use pgr_Johnson instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:358
+msgid "pgr_kDijkstraCost use pgr_dijkstraCost instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:359
+msgid "pgr_kDijkstraPath use pgr_dijkstra instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:362
+msgid "Renamed and deprecated function"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:363
+msgid "pgr_makeDistanceMatrix renamed to _pgr_makeDistanceMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:369
+msgid "pgRouting 2.1.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:371
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.1.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=is%3Aissue+milestone%3A%22Release+2.1.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:375
+msgid "pgr_dijkstra(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:376
+msgid "pgr_dijkstra(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:377
+msgid "pgr_dijkstra(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:378
+msgid "pgr_drivingDistance(multiple vertices)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:381
+msgid "Refactored"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:382
+msgid "pgr_dijkstra(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:383
+msgid "pgr_ksp"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:384
+msgid "pgr_drivingDistance(single vertex)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:388
+msgid ""
+"pgr_alphaShape function now can generate better (multi)polygon with holes "
+"and alpha parameter."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:392
+msgid ""
+"Proposed functions from Steve Woodbridge, (Classified as Convenience by the "
+"author.)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:394
+msgid ""
+"pgr_pointToEdgeNode - convert a point geometry to a vertex_id based on "
+"closest edge."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:395
+msgid ""
+"pgr_flipEdges - flip the edges in an array of geometries so the connect end "
+"to end."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:396
+msgid ""
+"pgr_textToPoints - convert a string of x,y;x,y;... locations into point "
+"geometries."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:397
+msgid ""
+"pgr_pointsToVids - convert an array of point geometries into vertex ids."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:398
+msgid ""
+"pgr_pointsToDMatrix - Create a distance matrix from an array of points."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:399 ../../build/doc/release_notes.rst:400
+msgid ""
+"pgr_vidsToDMatrix - Create a distance matrix from an array of vertix_id."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:402
+msgid "Added proposed functions from GSoc Projects:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:404
+msgid "pgr_vrppdtw"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:405
+msgid "pgr_vrponedepot"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:408
+msgid "Deprecated functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:409
+msgid "pgr_getColumnName"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:410
+msgid "pgr_getTableName"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:411
+msgid "pgr_isColumnCndexed"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:412
+msgid "pgr_isColumnInTable"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:413
+msgid "pgr_quote_ident"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:414
+msgid "pgr_versionless"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:415
+msgid "pgr_startPoint"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:416
+msgid "pgr_endPoint"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:417
+msgid "pgr_pointToId"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:420
+msgid "No longer supported"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:421
+msgid "Removed the 1.x legacy functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:425
+msgid "Some bug fixes in other functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:429
+msgid "Refactoring Internal Code"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:430
+msgid "A C and C++ library for developer was created"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:432
+msgid "encapsulates postgreSQL related functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:433
+msgid "encapsulates Boost.Graph graphs"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:435
+msgid "Directed Boost.Graph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:436
+msgid "Undirected Boost.graph."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:438
+msgid "allow any-integer in the id's"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:439
+msgid "allow any-numerical on the cost/reverse_cost columns"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:441
+msgid ""
+"Instead of generating many libraries: - All functions are encapsulated in "
+"one library - The library has the prefix 2-1-0"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:450
+msgid "pgRouting 2.0.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:452
+msgid "Minor bug fixes."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:456
+msgid "No track of the bug fixes were kept."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:462
+msgid "pgRouting 2.0.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:464
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.0.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.0.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:466
+msgid ""
+"With the release of pgRouting 2.0.0 the library has abandoned backwards "
+"compatibility to :ref:`pgRouting 1.x <changelog_1_x>` releases. The main "
+"Goals for this release are:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:469
+msgid "Major restructuring of pgRouting."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:470
+msgid "Standardization of the function naming"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:471
+msgid "Preparation of the project for future development."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:473
+msgid "As a result of this effort:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:475
+msgid "pgRouting has a simplified structure"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:476
+msgid "Significant new functionality has being added"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:477
+msgid "Documentation has being integrated"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:478
+msgid "Testing has being integrated"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:479
+msgid "And made it easier for multiple developers to make contributions."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:483
+msgid "Important Changes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:484
+msgid ""
+"Graph Analytics - tools for detecting and fixing connection some problems in"
+" a graph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:485
+msgid "A collection of useful utility functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:486
+msgid ""
+"Two new All Pairs Short Path algorithms (pgr_apspJohnson, pgr_apspWarshall)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:487
+msgid ""
+"Bi-directional Dijkstra and A-star search algorithms (pgr_bdAstar, "
+"pgr_bdDijkstra)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:488
+msgid "One to many nodes search (pgr_kDijkstra)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:489
+msgid "K alternate paths shortest path (pgr_ksp)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:490
+msgid ""
+"New TSP solver that simplifies the code and the build process (pgr_tsp), "
+"dropped \"Gaul Library\" dependency"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:491
+msgid "Turn Restricted shortest path (pgr_trsp) that replaces Shooting Star"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:492
+msgid "Dropped support for Shooting Star"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:493
+msgid ""
+"Built a test infrastructure that is run before major code changes are "
+"checked in"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:494
+msgid ""
+"Tested and fixed most all of the outstanding bugs reported against 1.x that "
+"existing in the 2.0-dev code base."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:495
+msgid "Improved build process for Windows"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:496
+msgid ""
+"Automated testing on Linux and Windows platforms trigger by every commit"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:497
+msgid "Modular library design"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:498
+msgid "Compatibility with PostgreSQL 9.1 or newer"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:499
+msgid "Compatibility with PostGIS 2.0 or newer"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:500
+msgid "Installs as PostgreSQL EXTENSION"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:501
+msgid "Return types re factored and unified"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:502
+msgid "Support for table SCHEMA in function parameters"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:503
+msgid "Support for ``st_`` PostGIS function prefix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:504
+msgid "Added ``pgr_`` prefix to functions and types"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:505
+msgid "Better documentation: http://docs.pgrouting.org"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:506
+msgid "shooting_star is discontinued"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:513
+msgid "pgRouting 1.x Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:515
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for 1.x "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+1.x%22+is%3Aclosed>`_"
+" on Github. The following release notes have been copied from the previous "
+"``RELEASE_NOTES`` file and are kept as a reference."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:520
+msgid "Changes for release 1.05"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:526
+msgid "Changes for release 1.03"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:528
+msgid "Much faster topology creation"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:533
+msgid "Changes for release 1.02"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:535 ../../build/doc/release_notes.rst:542
+msgid "Shooting* bug fixes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:536
+msgid "Compilation problems solved"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:540
+msgid "Changes for release 1.01"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:546
+msgid "Changes for release 1.0"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:548
+msgid "Core and extra functions are separated"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:549
+msgid "Cmake build process"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:554
+msgid "Changes for release 1.0.0b"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:556
+msgid "Additional SQL file with more simple names for wrapper functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:561
+msgid "Changes for release 1.0.0a"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:563
+msgid "Shooting* shortest path algorithm for real road networks"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:564
+msgid "Several SQL bugs were fixed"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:568
+msgid "Changes for release 0.9.9"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:570
+msgid "PostgreSQL 8.2 support"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:571
+msgid ""
+"Shortest path functions return empty result if they could not find any path"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:575
+msgid "Changes for release 0.9.8"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:577
+msgid "Renumbering scheme was added to shortest path functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:578
+msgid "Directed shortest path functions were added"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:579
+msgid "routing_postgis.sql was modified to use dijkstra in TSP search"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/routingFunctions.po b/locale/es/LC_MESSAGES/routingFunctions.po
new file mode 100644
index 0000000..3242809
--- /dev/null
+++ b/locale/es/LC_MESSAGES/routingFunctions.po
@@ -0,0 +1,134 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/routingFunctions.rst:15
+msgid "Routing Functions"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:21
+msgid ":ref:`all_pairs`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:23
+msgid ":ref:`pgr_floydWarshall` - Floyd-Warshall's Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:24
+msgid ":ref:`pgr_johnson`- Johnson’s Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:26
+msgid ":ref:`pgr_astar` - Shortest Path A*"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:28
+msgid ":ref:`pgr_bdAstar` - Bi-directional A* Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:30
+msgid ":ref:`pgr_bdDijkstra` - Bi-directional Dijkstra Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:33
+msgid ":ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:3
+msgid ":ref:`pgr_dijkstra` - Dijkstra's algorithm for the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:4
+msgid ""
+":ref:`pgr_dijkstraCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:5
+msgid ""
+":ref:`pgr_dijkstraCostMatrix` - Use pgr_dijkstra to create a costs matrix."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:6
+msgid ""
+":ref:`pgr_drivingDistance` - Use pgr_dijkstra to calculate catchament "
+"information."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:7
+msgid ""
+":ref:`pgr_ksp` - Use Yen algorithm with pgr_dijkstra to get the K shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:8
+msgid ":ref:`pgr_dijkstraVia` - Get a route of a seuence of vertices."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:39
+msgid ":ref:`pgr_ksp` - K-Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:41
+msgid ":ref:`pgr_trsp<trsp>` - Turn Restriction Shortest Path (TRSP)"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:43
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:3
+msgid ":ref:`pgr_TSP` - When input is given as matrix cell information."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:4
+msgid ":ref:`pgr_eucledianTSP` - When input are coordinates."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:49
+msgid ":ref:`drivingDistance`"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:3
+msgid ":ref:`pgr_drivingDistance` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:4
+msgid ":ref:`pgr_withPointsDD` - Driving Distance based on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:5
+msgid "Post pocessing"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:7
+msgid ":ref:`pgr_alphaShape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:8
+msgid ":ref:`pgr_points_as_polygon` - Polygon around a set of points"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:70
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:73
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:74
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:75
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/sampledata.po b/locale/es/LC_MESSAGES/sampledata.po
new file mode 100644
index 0000000..2ded9cd
--- /dev/null
+++ b/locale/es/LC_MESSAGES/sampledata.po
@@ -0,0 +1,152 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/sampledata.rst:11
+msgid "Sample Data"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:13
+msgid ""
+"The documentation provides very simple example queries based on a small "
+"sample network. To be able to execute the sample queries, run the following "
+"SQL commands to create a table with a small network data set."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:18
+msgid "Create table"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:25
+msgid "Insert data"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:32
+msgid "Topology"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:33
+msgid ""
+"Before you test a routing function use this query to create a topology "
+"(fills the ``source`` and ``target`` columns)."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:40
+msgid "Points of interest"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:41
+msgid "When points outside of the graph."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:42
+msgid "Used with the :ref:`withPoints` functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:49
+msgid "Restrictions"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:50
+msgid "Used with the :ref:`trsp` functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:57
+msgid "Categories"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:58
+msgid "Used with the :ref:`maxFlow` functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:65
+msgid "Vertex table"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:66
+msgid "Used in some deprecated signatures or deprecated functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:74
+msgid "Images"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:76
+msgid "Red arrows correspond when ``cost`` > 0 in the edge table."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:77
+msgid "Blue arrows correspond when ``reverse_cost`` > 0 in the edge table."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:78
+msgid "Points are outside the graph."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:79
+msgid "Click on the graph to enlarge."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:84
+msgid ""
+"Network for queries marked as ``directed`` and ``cost`` and ``reverse_cost``"
+" columns are used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:86
+msgid ""
+"When working with city networks, this is recommended for point of view of "
+"vehicles."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:91
+msgid "**Graph 1: Directed, with cost and reverse cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:96
+msgid ""
+"Network for queries marked as ``undirected`` and ``cost`` and "
+"``reverse_cost`` columns are used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:98
+msgid ""
+"When working with city networks, this is recommended for point of view of "
+"pedestrians."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:104
+msgid "**Graph 2: Undirected, with cost and reverse cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:109
+msgid ""
+"Network for queries marked as ``directed`` and only ``cost`` column is used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:116
+msgid "**Graph 3: Directed, with cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:121
+msgid ""
+"Network for queries marked as ``undirected`` and only ``cost`` column is "
+"used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:127
+msgid "**Graph 4: Undirected, with cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:134
+msgid "Pick & Deliver Data"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/support.po b/locale/es/LC_MESSAGES/support.po
new file mode 100644
index 0000000..4082646
--- /dev/null
+++ b/locale/es/LC_MESSAGES/support.po
@@ -0,0 +1,177 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/support.rst:13
+msgid "Support"
+msgstr ""
+
+#: ../../build/doc/support.rst:15
+msgid ""
+"pgRouting community support is available through the `pgRouting website "
+"<http://pgrouting.org/support.html>`_, `documentation "
+"<http://docs.pgrouting.org>`_, tutorials, mailing lists and others. If "
+"you’re looking for :ref:`commercial support <support_commercial>`, find "
+"below a list of companies providing pgRouting development and consulting "
+"services."
+msgstr ""
+
+#: ../../build/doc/support.rst:19
+msgid "Reporting Problems"
+msgstr ""
+
+#: ../../build/doc/support.rst:21
+msgid ""
+"Bugs are reported and managed in an `issue tracker "
+"<https://github.com/pgrouting/pgrouting/issues>`_. Please follow these "
+"steps:"
+msgstr ""
+
+#: ../../build/doc/support.rst:23
+msgid ""
+"Search the tickets to see if your problem has already been reported. If so, "
+"add any extra context you might have found, or at least indicate that you "
+"too are having the problem. This will help us prioritize common issues."
+msgstr ""
+
+#: ../../build/doc/support.rst:24
+msgid ""
+"If your problem is unreported, create a `new issue "
+"<https://github.com/pgRouting/pgrouting/issues/new>`_ for it."
+msgstr ""
+
+#: ../../build/doc/support.rst:25
+msgid ""
+"In your report include explicit instructions to replicate your issue. The "
+"best tickets include the exact SQL necessary to replicate a problem."
+msgstr ""
+
+#: ../../build/doc/support.rst:26
+msgid ""
+"If you can test older versions of PostGIS for your problem, please do. On "
+"your ticket, note the earliest version the problem appears."
+msgstr ""
+
+#: ../../build/doc/support.rst:27
+msgid ""
+"For the versions where you can replicate the problem, note the operating "
+"system and version of pgRouting, PostGIS and PostgreSQL."
+msgstr ""
+
+#: ../../build/doc/support.rst:28
+msgid ""
+"It is recommended to use the following wrapper on the problem to pin point "
+"the step that is causing the problem."
+msgstr ""
+
+#: ../../build/doc/support.rst:39
+msgid "Mailing List and GIS StackExchange"
+msgstr ""
+
+#: ../../build/doc/support.rst:41
+msgid ""
+"There are two mailing lists for pgRouting hosted on OSGeo mailing list "
+"server:"
+msgstr ""
+
+#: ../../build/doc/support.rst:43
+msgid ""
+"User mailing list: http://lists.osgeo.org/mailman/listinfo/pgrouting-users"
+msgstr ""
+
+#: ../../build/doc/support.rst:44
+msgid ""
+"Developer mailing list: http://lists.osgeo.org/mailman/listinfo/pgrouting-"
+"dev"
+msgstr ""
+
+#: ../../build/doc/support.rst:46
+msgid ""
+"For general questions and topics about how to use pgRouting, please write to"
+" the user mailing list."
+msgstr ""
+
+#: ../../build/doc/support.rst:48
+msgid ""
+"You can also ask at `GIS StackExchange <http://gis.stackexchange.com/>`_ and"
+" tag the question with ``pgrouting``. Find all questions tagged with "
+"``pgrouting`` under http://gis.stackexchange.com/questions/tagged/pgrouting "
+"or subscribe to the `pgRouting questions feed "
+"<http://gis.stackexchange.com/feeds/tag?tagnames=pgrouting&sort=newest>`_."
+msgstr ""
+
+#: ../../build/doc/support.rst:54
+msgid "Commercial Support"
+msgstr ""
+
+#: ../../build/doc/support.rst:56
+msgid ""
+"For users who require professional support, development and consulting "
+"services, consider contacting any of the following organizations, which have"
+" significantly contributed to the development of pgRouting:"
+msgstr ""
+
+#: ../../build/doc/support.rst:61
+msgid "**Company**"
+msgstr ""
+
+#: ../../build/doc/support.rst:62
+msgid "**Offices in**"
+msgstr ""
+
+#: ../../build/doc/support.rst:63
+msgid "**Website**"
+msgstr ""
+
+#: ../../build/doc/support.rst:64
+msgid "Georepublic"
+msgstr ""
+
+#: ../../build/doc/support.rst:65
+msgid "Germany, Japan"
+msgstr ""
+
+#: ../../build/doc/support.rst:66
+msgid "https://georepublic.info"
+msgstr ""
+
+#: ../../build/doc/support.rst:67
+msgid "iMaptools"
+msgstr ""
+
+#: ../../build/doc/support.rst:68 ../../build/doc/support.rst:71
+msgid "United States"
+msgstr ""
+
+#: ../../build/doc/support.rst:69
+msgid "http://imaptools.com"
+msgstr ""
+
+#: ../../build/doc/support.rst:70
+msgid "Paragon Corporation"
+msgstr ""
+
+#: ../../build/doc/support.rst:72
+msgid "http://www.paragoncorporation.com"
+msgstr ""
+
+#: ../../build/doc/support.rst:73
+msgid "Camptocamp"
+msgstr ""
+
+#: ../../build/doc/support.rst:74
+msgid "Switzerland, France"
+msgstr ""
+
+#: ../../build/doc/support.rst:75
+msgid "http://www.camptocamp.com"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/topology-functions.po b/locale/es/LC_MESSAGES/topology-functions.po
new file mode 100644
index 0000000..ac6a1b3
--- /dev/null
+++ b/locale/es/LC_MESSAGES/topology-functions.po
@@ -0,0 +1,66 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/topology-functions.rst:13
+msgid "Topology - Family of Functions"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:15
+msgid ""
+"The pgRouting's topology of a network, represented with an edge table with "
+"source and target attributes and a vertices table associated with it. "
+"Depending on the algorithm, you can create a topology or just reconstruct "
+"the vertices table, You can analyze the topology, We also provide a function"
+" to node an unoded network."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:19
+msgid ""
+":ref:`pgr_create_topology` -  to create a topology based on the geometry."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:20
+msgid ""
+":ref:`pgr_create_vert_table` - to reconstruct the vertices table based on "
+"the source and target information."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:21
+msgid ""
+":ref:`pgr_analyze_graph`  - to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:22
+msgid ":ref:`pgr_analyze_oneway` - to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:23
+msgid ":ref:`pgr_node_network`  -to create nodes to a not noded edge table."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:35
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:38
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:39
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:40
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/types_index.po b/locale/es/LC_MESSAGES/types_index.po
new file mode 100644
index 0000000..3f3faa7
--- /dev/null
+++ b/locale/es/LC_MESSAGES/types_index.po
@@ -0,0 +1,56 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/types_index.rst:13
+msgid "pgRouting Data Types"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:15
+msgid ""
+"The following are commonly used data types for some of the pgRouting "
+"functions."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:17
+msgid ""
+":ref:`type_cost_result` -  A set of records to describe a path result with "
+"cost attribute."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:18
+msgid ""
+":ref:`pgr_costResult3[] <type_cost_result3>` - A set of records to describe "
+"a path result with cost attribute."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:19
+msgid ""
+":ref:`pgr_geomResult <type_geom_result>` - A set of records to describe a "
+"path result with geometry attribute."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:30
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:33
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:34
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:35
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/es/LC_MESSAGES/withPoints-family.po b/locale/es/LC_MESSAGES/withPoints-family.po
new file mode 100644
index 0000000..3d4f303
--- /dev/null
+++ b/locale/es/LC_MESSAGES/withPoints-family.po
@@ -0,0 +1,395 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/withPoints-family.rst:14
+msgid "withPoints - Family of functions"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:16
+msgid "When points are also given as input:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:20
+msgid ":ref:`pgr_withPoints` - Route from/to points anywhere on the graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:21
+msgid ":ref:`pgr_withPointsCost` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:22
+msgid ":ref:`pgr_withPointsCostMatrix` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:23
+msgid ":ref:`pgr_withPointsKSP` - K shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:24
+msgid ":ref:`pgr_withPointsDD` - Driving distance."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:47
+msgid "Images"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:49
+msgid ""
+"The squared vertices are the temporary vertices, The temporary vertices are "
+"added acordng to the dirving side, The following images visualy show the "
+"diferences on how depending on the driving side the data is interpreted."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:53
+msgid "Right driving side"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:58
+msgid "Left driving side"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:63
+msgid "doesn't matter the driving side"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:68
+msgid "Introduction"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:70
+msgid ""
+"This famly of functions was thought for routing vehicles, but might as well "
+"work for some other application that we can not think of."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:73
+msgid ""
+"The with points family of function give you the ability to route between "
+"arbitrary points located outside the original graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:76
+msgid ""
+"When given a point identified with a `pid` that its being mapped to and edge"
+" with an identifier `edge_id`, with a `fraction` along that edge (from the "
+"source to the target of the edge) and some additional information about "
+"which `side` of the edge the point is on, then routing from arbitrary points"
+" more accurately reflect routing vehicles in road networks,"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:87
+msgid ""
+"I talk about a family of functions because it includes different "
+"functionalities."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:84
+msgid "pgr_withPoints is pgr_dijkstra based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:85
+msgid "pgr_withPointsCost is pgr_dijkstraCost based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:86
+msgid "pgr_withPointsKSP is pgr_ksp based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:87
+msgid "pgr_withPointsDD is pgr_drivingDistance based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:89
+msgid ""
+"In all this functions we have to take care of as many aspects as possible:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:91
+msgid "Must work for routing:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:93
+msgid "Cars (directed graph)"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:94
+msgid "Pedestrians (undirected graph)"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:96
+msgid "Arriving at the point:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:98
+msgid "In either side of the street."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:99
+msgid ""
+"Compulsory arrival on the side of the street where the point is located."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:101
+msgid "Countries with:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:103
+msgid "Right side driving"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:104
+msgid "Left side driving"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:106
+msgid "Some points are:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:108
+msgid ""
+"Permanent, for example the set of points of clients stored in a table in the"
+" data base"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:109
+msgid "Temporal, for example points given through a web application"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:111
+msgid "The numbering of the points are handled with negative sign."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:113
+msgid "Original point identifiers are to be positive."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:114
+msgid "Transformation to negative is done internally."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:115
+msgid "For results for involving vertices identifiers"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:117
+msgid "positive sign is a vertex of the original grpah"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:118
+msgid "negative sign is a point of the temporary points"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:120
+msgid ""
+"The reason for doing this is to avoid confusion when there is a vertex with "
+"the same number as identifier as the points identifier."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:123
+msgid "Graph & edges"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:125
+msgid ""
+"Let :math:`G_d(V,E)` where :math:`V` is the set of vertices and :math:`E` is"
+" the set of edges be the original directed graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:127
+msgid ""
+"An edge of the original `edges_sql` is :math:`(id, source, target, cost, "
+"reverse\\_cost)` will generate internally"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:129
+msgid ":math:`(id, source, target, cost)`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:130
+msgid ":math:`(id, target, source, reverse\\_cost)`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:133
+msgid "Point Definition"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:135
+msgid ""
+"A point is defined by the quadruplet: :math:`(pid, eid, fraction, side)`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:137
+msgid "**pid** is the point identifier"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:138
+msgid "**eid** is an edge id of the `edges_sql`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:139
+msgid "**fraction** represents where the edge `eid` will be cut."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:140
+msgid "**side** Indicates the side of the edge where the point is located."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:144
+msgid "Creating Temporary Vertices in the Graph"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:146
+msgid "For edge (15,  9,12  10, 20), & lets insert point (2, 12, 0.3, r)"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:149
+msgid "On a right hand side driving network"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:150
+msgid "From first image above:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:152
+msgid "We can arrive to the point only via vertex 9."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:153
+msgid "It only afects the edge (15, 9,12, 10) so that edge is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:154
+msgid "Edge (15, 12,9, 20) is kept."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:155
+#: ../../build/doc/withPoints-family.rst:167
+#: ../../build/doc/withPoints-family.rst:182
+msgid "Create new edges:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:157
+#: ../../build/doc/withPoints-family.rst:186
+msgid "(15, 9,-1, 3) edge from vertex 9 to point 1 has cost 3"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:158
+#: ../../build/doc/withPoints-family.rst:187
+msgid "(15, -1,12, 7) edge from point 1 to vertex 12 has cost 7"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:161
+msgid "On a left hand side driving network"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:162
+msgid "From second image above:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:164
+msgid "We can arrive to the point only via vertex 12."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:165
+msgid "It only afects the edge (15, 12,9 20) so that edge is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:166
+msgid "Edge (15, 9,12, 10) is kept."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:169
+#: ../../build/doc/withPoints-family.rst:184
+msgid "(15, 12,-1, 14) edge from vertex 12 to point 1 has cost 14"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:170
+#: ../../build/doc/withPoints-family.rst:185
+msgid "(15, -1,9, 6) edge from point 1 to vertex 9 has cost 6"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:172
+msgid "that fraction is from vertex 9 to vertex 12"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:176
+msgid "When driving side does not matter"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:177
+msgid "From third image above:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:179
+msgid "We can arrive to the point either via vertex 12 or via vertex 9"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:180
+msgid "Edge (15, 12,9 20) is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:181
+msgid "Edge (15, 9,12, 10) is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:190
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:193
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:194
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:195
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/KSP-category.po b/locale/fr/LC_MESSAGES/KSP-category.po
new file mode 100644
index 0000000..9232738
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/KSP-category.po
@@ -0,0 +1,36 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/KSP-category.rst:14
+msgid "KSP Category"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:18
+msgid ":ref:`pgr_KSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:19
+msgid ":ref:`pgr_withPointsKSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:26
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:27
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:28
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/TSP-family.po b/locale/fr/LC_MESSAGES/TSP-family.po
new file mode 100644
index 0000000..0f03653
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/TSP-family.po
@@ -0,0 +1,556 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/TSP-family.rst:13
+msgid "Traveling Sales Person - Family of functions"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:17
+msgid ":ref:`pgr_TSP` - When input is given as matrix cell information."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:18
+msgid ":ref:`pgr_eucledianTSP` - When input are coordinates."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:30
+msgid "General Information"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:33
+msgid "Origin"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:36
+msgid ""
+"The traveling sales person problem was studied in the 18th century by "
+"mathematicians"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:36
+msgid "**Sir William Rowam Hamilton** and **Thomas Penyngton  Kirkman**."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:38
+msgid ""
+"A discussion about the work of Hamilton & Kirkman can be found in the book "
+"**Graph Theory (Biggs et  al. 1976)**."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:41
+msgid "ISBN-13: 978-0198539162"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:42
+msgid "ISBN-10: 0198539169"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:44
+msgid ""
+"It is believed that the general form of the TSP have been first studied by "
+"Kalr Menger in Vienna and Harvard. The problem  was  later promoted by "
+"Hassler, Whitney  &  Merrill at Princeton. A detailed  description about the"
+" connection between Menger & Whitney, and the development of the TSP can be "
+"found in  `On the history of combinatorial optimization (till 1960) "
+"<http://www.cwi.nl/~lex/files/histco.ps>`_"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:50
+msgid "Problem Definition"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:52
+msgid ""
+"Given a collection of cities and travel cost between each pair, find the "
+"cheapest way for visiting all of the cities and returning to the starting "
+"point."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:56
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:58
+msgid "The travel costs are symmetric:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:60
+msgid ""
+"traveling costs from city A to city B are just as much as traveling from B "
+"to A."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:62
+msgid "This problem is an NP-hard optimization problem."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:64
+msgid "To calculate the number of different tours through :math:`n` cities:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:66
+msgid "Given a starting city,"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:67
+msgid "There are :math:`n-1` choices for the second city,"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:68
+msgid "And  :math:`n-2` choices for the third city, etc."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:69
+msgid ""
+"Multiplying these together we get :math:`(n-1)!  = (n-1) (n-2) . .  1`."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:70
+msgid ""
+"Now since our travel costs do not depend on the direction we take around the"
+" tour:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:72
+msgid "this number by 2"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:73
+msgid ":math:`(n-1)!/2`."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:76
+msgid "TSP & Simulated Annealing"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:78
+msgid ""
+"The simulated annealing algorithm was originally inspired from the process "
+"of annealing in metal work."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:81
+msgid ""
+"Annealing involves heating and cooling a material to alter its physical "
+"properties due to the changes in its internal structure. As the metal cools "
+"its new structure becomes fixed, consequently causing the metal to retain "
+"its newly obtained properties. [C001]_"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:88
+msgid "Pseudocode"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:89
+msgid ""
+"Given an initial solution, the simulated annealing process, will start with "
+"a high temperature and gradually cool down until the desired temperature is "
+"reached."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:92
+msgid ""
+"For each temperature, a neighbouring new solution **snew** is calculated. "
+"The higher the temperature the higher the probability of accepting the new "
+"solution as a possible bester solution."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:95
+msgid ""
+"Once the desired temperature is reached, the best solution found is returned"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:118
+msgid "pgRouting Implementation"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:120
+msgid ""
+"pgRouting's implementation adds some extra parameters to allow some exit "
+"controls within the simulated annealing process."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:123
+msgid "To cool down faster to the next temperature:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:125
+msgid ""
+"max_changes_per_temperature: limits the number of changes in the solution "
+"per temperature"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:126
+msgid ""
+"max_consecutive_non_changes: limits the number of consecutive non changes "
+"per temperature"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:128
+msgid ""
+"This is done by doing some book keeping on the times **solution = snew;** is"
+" executed."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:130
+msgid ""
+"max_changes_per_temperature: Increases by one when **solution** changes"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:131
+msgid ""
+"max_consecutive_non_changes: Reset to 0 when **solution** changes, and "
+"increased each **try**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:133
+msgid ""
+"Additionally to stop the algorithm at a higher temperature than the desired "
+"one:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:135
+msgid ""
+"max_processing_time: limits the time the simulated annealing is performed."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:136
+msgid ""
+"book keeping is done to see if there was a change in **solution** on the "
+"last temperature"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:138
+msgid ""
+"Note that, if no change was found in the first "
+"**max_consecutive_non_changes** tries, then the simulated annealing will "
+"stop."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:168
+msgid "Choosing parameters"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:170
+msgid ""
+"There is no exact rule on how the parameters have to be chose, it will "
+"depend on the special characteristics of the problem."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:173
+msgid ""
+"Your computational time is crucial, then put your time limit to "
+"**max_processing_time**."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:174
+msgid ""
+"Make the **tries_per_temperture** depending on the number of cities, for "
+"example:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:176
+msgid "Useful to estimate the time it takes to do one cycle: use `1`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:178
+msgid "this will help to set a reasonable **max_processing_time**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:180
+msgid ":math:`n * (n-1)`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:181
+msgid ":math:`500 * n`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:183
+msgid ""
+"For a faster decreasing the temperature set **cooling_factor** to a smaller "
+"number, and set to a higher number for a slower decrease."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:186
+msgid ""
+"When for the same given data the same results are needed, set **randomize** "
+"to `false`."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:188
+msgid "When estimating how long it takes to do one cycle: use `false`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:191
+msgid ""
+"A recommendation is to play with the values and see what fits to the "
+"particular data."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:196
+msgid "Description Of the Control parameters"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:198
+msgid "The control parameters are optional, and have a default value."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201 ../../build/doc/TSP-family.rst:230
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201 ../../build/doc/TSP-family.rst:230
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203 ../../build/doc/TSP-family.rst:204
+#: ../../build/doc/TSP-family.rst:233
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203 ../../build/doc/TSP-family.rst:204
+msgid "`0`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203
+msgid "The greedy part of the implementation will use this identifier."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:204
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:204
+msgid "Last visiting vertex before returning to start_vid."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205
+msgid "**max_processing_time**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205 ../../build/doc/TSP-family.rst:209
+#: ../../build/doc/TSP-family.rst:210 ../../build/doc/TSP-family.rst:211
+#: ../../build/doc/TSP-family.rst:234 ../../build/doc/TSP-family.rst:237
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205
+msgid "`+infinity`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205
+msgid "Stop the annealing processing when the value is reached."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206
+msgid "**tries_per_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206 ../../build/doc/TSP-family.rst:207
+#: ../../build/doc/TSP-family.rst:208 ../../build/doc/TSP-family.rst:232
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206
+msgid "`500`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206
+msgid "Maximum number of times a neighbor(s) is searched in each temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:207
+msgid "**max_changes_per_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:207
+msgid "`60`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:207
+msgid "Maximum number of times the solution is changed in each temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:208
+msgid "**max_consecutive_non_changes**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:208 ../../build/doc/TSP-family.rst:209
+msgid "`100`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:208
+msgid ""
+"Maximum number of consecutive times the solution is not changed in each "
+"temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:209
+msgid "**initial_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:209
+msgid "Starting temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:210
+msgid "**final_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:210
+msgid "`0.1`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:210
+msgid "Ending temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:211
+msgid "**cooling_factor**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:211
+msgid "`0.9`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:211
+msgid ""
+"Value between between 0 and 1 (not including) used to calculate the next "
+"temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "**randomize**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "`true`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "Choose the random seed"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:214
+msgid "true: Use current time as seed"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:215
+msgid ""
+"false: Use `1` as seed. Using this value will get the same results with the "
+"same data in each execution."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:225
+msgid "Description of the return columns"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:227
+msgid "Returns set of ``(seq, node, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:230
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:232
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:232
+msgid "Row sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:233
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:233
+msgid "Identifier of the node/coordinate/point."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:234
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:235
+msgid ""
+"Cost to traverse from the current ``node`` ito the next ``node`` in the path"
+" sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:235
+msgid "``0`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:237
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:238
+msgid "Aggregate cost from the ``node`` at ``seq = 1`` to the current node."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:238
+msgid "``0`` for the first row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:245
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:248
+msgid "References"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:249
+msgid ""
+"`Simulated annaeling algorithm for beginners <http://www.theprojectspot.com"
+"/tutorial-post/simulated-annealing-algorithm-for-beginners/6>`_"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:251
+msgid "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:252
+msgid "http://en.wikipedia.org/wiki/Simulated_annealing"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:255
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:256
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:257
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/aStar-family.po b/locale/fr/LC_MESSAGES/aStar-family.po
new file mode 100644
index 0000000..3364e02
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/aStar-family.po
@@ -0,0 +1,205 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/aStar-family.rst:13
+msgid "aStar - Family of functions"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:15
+msgid ""
+"The A* (pronounced \"A Star\") algorithm is based on Dijkstra's algorithm "
+"with a heuristic that allow it to solve most shortest path problems by "
+"evaluation only a sub-set of the overall graph."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:19
+msgid ":ref:`pgr_aStar` - A* algorithm for the shortest path."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:20
+msgid ":ref:`pgr_aStarCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:21
+msgid ""
+":ref:`pgr_aStarCostMatrix` - Get the cost matrix of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:34
+msgid "The problem definition (Advanced documentation)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:36
+msgid ""
+"The A* (pronounced \"A Star\") algorithm is based on Dijkstra's algorithm "
+"with a heuristic, that is an estimation of the remaining cost from the "
+"vertex to the goal, that allows to solve most shortest path problems by "
+"evaluation only a sub-set of the overall graph. Running time: :math:`O((E + "
+"V) * \\log V)`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:46
+msgid "Heuristic"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:48
+msgid "Currently the heuristic functions available are:"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:50
+msgid "0: :math:`h(v) = 0` (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:51
+msgid "1: :math:`h(v) = abs(max(\\Delta x, \\Delta y))`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:52
+msgid "2: :math:`h(v) = abs(min(\\Delta x, \\Delta y))`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:53
+msgid "3: :math:`h(v) = \\Delta x * \\Delta x + \\Delta y * \\Delta y`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:54
+msgid "4: :math:`h(v) = sqrt(\\Delta x * \\Delta x + \\Delta y * \\Delta y)`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:55
+msgid "5: :math:`h(v) = abs(\\Delta x) + abs(\\Delta y)`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:57
+msgid "where :math:`\\Delta x = x_1 - x_0` and :math:`\\Delta y = y_1 - y_0`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:63 ../../build/doc/aStar-family.rst:76
+#: ../../build/doc/aStar-family.rst:89
+msgid "Factor"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:66
+msgid "Analysis 1"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:67
+msgid ""
+"Working with cost/reverse_cost as length in degrees, x/y in lat/lon: Factor "
+"= 1   (no need to change units)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:71
+msgid "Analysis 2"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:72
+msgid ""
+"Working with cost/reverse_cost as length in meters, x/y in lat/lon: Factor ="
+"  would depend on the location of the points:"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:76 ../../build/doc/aStar-family.rst:89
+msgid "latitude"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:76 ../../build/doc/aStar-family.rst:89
+msgid "conversion"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:78 ../../build/doc/aStar-family.rst:91
+msgid "45"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:78
+msgid "1 longitude degree is  78846.81 m"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:78
+msgid "78846"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:79 ../../build/doc/aStar-family.rst:92
+msgid "0"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:79
+msgid "1 longitude degree is 111319.46 m"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:79
+msgid "111319"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:83
+msgid "Analysis 3"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:84
+msgid ""
+"Working with cost/reverse_cost as time in seconds, x/y in lat/lon: Factor: "
+"would depend on the location of the points and on the average speed say "
+"25m/s is the speed."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:91
+msgid "1 longitude degree is (78846.81m)/(25m/s)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:91
+msgid "3153 s"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:92
+msgid "1 longitude degree is (111319.46 m)/(25m/s)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:92
+msgid "4452 s"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:98
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:100
+msgid ":ref:`pgr_aStar`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:101
+msgid ":ref:`pgr_aStarCost`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:102
+msgid ":ref:`pgr_aStarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:103
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:104
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:107
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:108
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:109
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/allpairs-family.po b/locale/fr/LC_MESSAGES/allpairs-family.po
new file mode 100644
index 0000000..9749ed9
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/allpairs-family.po
@@ -0,0 +1,996 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/allpairs-family.rst:14
+msgid "All Pairs - Family of Functions"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:16
+msgid "The following functions work an all vertices pair combinations"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:33
+msgid "Performance"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:40
+msgid "The following tests:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:36
+msgid "non server computer"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:37
+msgid "with AMD 64 CPU"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:38
+msgid "4G memory"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:39
+msgid "trusty"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:40
+msgid "posgreSQL version 9.3"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:43
+msgid "Data"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:45
+msgid "The following data was used"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:53
+msgid "Data processing was done with osm2pgrouting-alpha"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:66
+msgid "Results"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:68
+msgid "One"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:70
+msgid ""
+"This test is not with a bounding box The density of the passed graph is "
+"extremely low. For each <SIZE> 30 tests were executed to get the average The"
+" tested query is:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:83
+#: ../../build/doc/allpairs-family.rst:140
+msgid "The results of this tests are presented as:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:85
+msgid "is the number of edges given as input."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:86
+#: ../../build/doc/allpairs-family.rst:143
+msgid "is the total number of records in the query."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:87
+#: ../../build/doc/allpairs-family.rst:144
+msgid "is the density of the data :math:`\\dfrac{E}{V \\times (V-1)}`."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:88
+#: ../../build/doc/allpairs-family.rst:145
+msgid "is the number of records returned by the queries."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:89
+#: ../../build/doc/allpairs-family.rst:146
+msgid "is the average execution time in seconds of pgr_floydWarshall."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:90
+#: ../../build/doc/allpairs-family.rst:147
+msgid "is the average execution time in seconds of pgr_johnson."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "SIZE"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "EDGES"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "DENSITY"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "OUT ROWS"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "Floyd-Warshall"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "Johnson"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+#: ../../build/doc/allpairs-family.rst:96
+msgid "500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "0.18E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "1346"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "0.14"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "0.13"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+#: ../../build/doc/allpairs-family.rst:97
+msgid "1000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "0.36E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "2655"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "0.23"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "0.18"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+#: ../../build/doc/allpairs-family.rst:98
+msgid "1500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+msgid "0.55E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+msgid "4110"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+#: ../../build/doc/allpairs-family.rst:99
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.37"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+msgid "0.34"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+#: ../../build/doc/allpairs-family.rst:99
+msgid "2000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+msgid "0.73E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+msgid "5676"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+msgid "0.56"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+#: ../../build/doc/allpairs-family.rst:100
+msgid "2500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "0.89E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "7177"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "0.84"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "0.51"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+#: ../../build/doc/allpairs-family.rst:101
+msgid "3000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "1.07E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "8778"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "1.28"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "0.68"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+#: ../../build/doc/allpairs-family.rst:102
+msgid "3500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "1.24E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "10526"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "2.08"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "0.95"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+#: ../../build/doc/allpairs-family.rst:103
+msgid "4000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "1.41E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "12484"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "3.16"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "1.24"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+#: ../../build/doc/allpairs-family.rst:104
+msgid "4500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "1.58E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "14354"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "4.49"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "1.47"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+#: ../../build/doc/allpairs-family.rst:105
+msgid "5000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "1.76E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "16503"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "6.05"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "1.78"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+#: ../../build/doc/allpairs-family.rst:106
+msgid "5500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "1.93E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "18623"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "7.53"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "2.03"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+#: ../../build/doc/allpairs-family.rst:107
+msgid "6000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "2.11E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "20710"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "8.47"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "2.37"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+#: ../../build/doc/allpairs-family.rst:108
+msgid "6500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "2.28E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "22752"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "9.99"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "2.68"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+#: ../../build/doc/allpairs-family.rst:109
+msgid "7000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "2.46E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "24687"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "11.82"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "3.12"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+#: ../../build/doc/allpairs-family.rst:110
+msgid "7500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "2.64E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "26861"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "13.94"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "3.60"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+#: ../../build/doc/allpairs-family.rst:111
+msgid "8000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "2.83E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "29050"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "15.61"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "4.09"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+#: ../../build/doc/allpairs-family.rst:112
+msgid "8500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "3.01E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "31693"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "17.43"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "4.63"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+#: ../../build/doc/allpairs-family.rst:113
+msgid "9000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "3.17E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "33879"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "19.19"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "5.34"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+#: ../../build/doc/allpairs-family.rst:114
+msgid "9500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "3.35E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "36287"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "20.77"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "6.24"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+#: ../../build/doc/allpairs-family.rst:115
+msgid "10000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "3.52E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "38491"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "23.26"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "6.51"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:119
+msgid "Two"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:121
+msgid ""
+"This test is with a bounding box The density of the passed graph higher than"
+" of the Test One. For each <SIZE> 30 tests were executed to get the average "
+"The tested edge query is:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:133
+msgid "The tested queries"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:142
+msgid "is the size of the bounding box."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "0.001"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "44"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "0.0608"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "1197"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+#: ../../build/doc/allpairs-family.rst:153
+#: ../../build/doc/allpairs-family.rst:154
+#: ../../build/doc/allpairs-family.rst:154
+msgid "0.10"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "0.002"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "99"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "0.0251"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "4330"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "0.003"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "223"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "0.0122"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "18849"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+#: ../../build/doc/allpairs-family.rst:155
+msgid "0.12"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "0.004"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "358"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "0.0085"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "71834"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+#: ../../build/doc/allpairs-family.rst:156
+msgid "0.16"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.005"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "470"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.0070"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "116290"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.22"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.19"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.006"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "639"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.0055"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "207030"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.27"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.007"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "843"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.0043"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "346930"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.64"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.38"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.008"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "996"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.0037"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "469936"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.90"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.49"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "0.009"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "1146"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "0.0032"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "613135"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "1.26"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "0.62"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "0.010"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "1360"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "0.0027"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "849304"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "1.87"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "0.82"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "0.011"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "1573"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "0.0024"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "1147101"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "2.65"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "1.04"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "0.012"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "1789"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "0.0021"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "1483629"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "3.72"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "1.35"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "0.013"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "1975"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "0.0019"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "1846897"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "4.86"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "1.68"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "0.014"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "2281"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "0.0017"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "2438298"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "7.08"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "2.28"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "0.015"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "2588"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "0.0015"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "3156007"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "10.28"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "2.80"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "0.016"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "2958"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "0.0013"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "4090618"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "14.67"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "3.76"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "0.017"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "3247"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "0.0012"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "4868919"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "18.12"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "4.48"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:174
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:176
+msgid ":ref:`pgr_johnson`"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:177
+msgid ":ref:`pgr_floydWarshall`"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:178
+msgid ""
+"`Boost floyd-Warshall "
+"<http://www.boost.org/libs/graph/doc/floyd_warshall_shortest.html>`_ "
+"algorithm"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:181
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:182
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:183
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/bdAstar-family.po b/locale/fr/LC_MESSAGES/bdAstar-family.po
new file mode 100644
index 0000000..b2bd16b
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/bdAstar-family.po
@@ -0,0 +1,394 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Bidirectional A* - Family of functions"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid ":ref:`pgr_bdAstar` - Bidirectional A* algorithm for obtaining paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:18
+msgid ""
+":ref:`pgr_bdAstarCost` - Bidirectional A* algorithm to calculate the cost of"
+" the paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid ""
+":ref:`pgr_bdAstarCostMatrix` - Bidirectional A* algorithm to calculate a "
+"cost matrix of paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:35
+msgid ""
+"Based on A* algorithm, the bidirectional search finds a shortest path from a"
+" starting vertex (``start_vid``) to an ending vertex (``end_vid``). It runs "
+"two simultaneous searches: one forward from the ``start_vid``, and one "
+"backward from the ``end_vid``, stopping when the two meet in the middle. "
+"This implementation can be used with a directed graph and an undirected "
+"graph."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:42
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:44
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:46
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:47
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:49
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:51
+msgid "The `agg_cost` the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:53
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path:"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:55
+msgid "The `agg_cost` the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:57
+msgid "Running time (worse case scenario): :math:`O((E + V) * \\log V)`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:58
+msgid ""
+"For large graphs where there is a path bewtween the starting vertex and "
+"ending vertex:"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:60
+msgid "It is expected to terminate faster than pgr_astar"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:63
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:75
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:75
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:78 ../../build/doc/bdAstar-family.rst:80
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:72
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:75
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:77
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:77
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:77
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:78
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:78
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:79
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:79 ../../build/doc/bdAstar-family.rst:81
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:79
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:80
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:80
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:81
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:81
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:82
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:82
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:82
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:84
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:85
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:87
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:87
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:87
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:89
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:90
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:91
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:92
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:93
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:94
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:96
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:96 ../../build/doc/bdAstar-family.rst:97
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:96
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:97
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:97
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:103
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:106
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:107
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:108
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/bdDijkstra-family.po b/locale/fr/LC_MESSAGES/bdDijkstra-family.po
new file mode 100644
index 0000000..67de3fa
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/bdDijkstra-family.po
@@ -0,0 +1,112 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/bdDijkstra-family.rst:13
+msgid "Bidirectional Dijkstra - Family of functions"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:17
+msgid ""
+":ref:`pgr_bdDijkstra` - Bidirectional Dijkstra algorithm for the shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:18
+msgid ""
+":ref:`pgr_bdDijkstraCost` - Bidirectional Dijkstra to calculate the cost of "
+"the shortest paths"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:19
+msgid ""
+":ref:`pgr_bdDijkstraCostMatrix` - Bidirectional Dijkstra algorithm  to "
+"create a matrix of costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:35
+msgid ""
+"Based on Dijkstra's algorithm, the bidirectional search finds a shortest "
+"path a starting vertex (``start_vid``) to an ending vertex (``end_vid``). It"
+" runs two simultaneous searches: one forward from the source, and one "
+"backward from the target, stopping when the two meet in the middle. This "
+"implementation can be used with a directed graph and an undirected graph."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:42
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:44
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:46
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:47
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:49
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:51
+msgid "The `agg_cost` the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:53
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path:"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:55
+msgid "The `agg_cost` the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:57
+msgid "Running time (worse case scenario): :math:`O((V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:58
+msgid ""
+"For large graphs where there is a path bewtween the starting vertex and "
+"ending vertex:"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:60
+msgid "It is expected to terminate faster than pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:63
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:66
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:67
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:68
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/components-family.po b/locale/fr/LC_MESSAGES/components-family.po
new file mode 100644
index 0000000..dbca49a
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/components-family.po
@@ -0,0 +1,750 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/components-family.rst:13
+msgid "Components - Family of functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:22
+msgid ""
+":ref:`pgr_connectedComponents` - Return the connected components of an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:23
+msgid ""
+":ref:`pgr_strongComponents` - Return the strongly connected components of a "
+"directed graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid ""
+":ref:`pgr_biconnectedComponents` - Return the biconnected components of an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:25
+msgid ""
+":ref:`pgr_articulationPoints` - Return the articulation points of an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid ":ref:`pgr_bridges` - Return the bridges of an undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:42
+msgid "The problem definition"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:45
+msgid "Connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:46
+msgid ""
+"A connected component of an undirected graph is a set of vertices that are "
+"all reachable from each other."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:49
+#: ../../build/doc/components-family.rst:183
+#: ../../build/doc/components-family.rst:252
+#: ../../build/doc/components-family.rst:312
+msgid "**Notice**: This problem defines on an undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:51
+#: ../../build/doc/components-family.rst:117
+#: ../../build/doc/components-family.rst:185
+#: ../../build/doc/components-family.rst:254
+#: ../../build/doc/components-family.rst:314
+msgid "Given the following query:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:54
+msgid "pgr_connectedComponentsV(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:56
+#: ../../build/doc/components-family.rst:122
+#: ../../build/doc/components-family.rst:190
+#: ../../build/doc/components-family.rst:259
+#: ../../build/doc/components-family.rst:319
+msgid ""
+"where  :math:`sql = \\{(id_i, source_i, target_i, cost_i, "
+"reverse\\_cost_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:58
+#: ../../build/doc/components-family.rst:124
+#: ../../build/doc/components-family.rst:192
+#: ../../build/doc/components-family.rst:261
+#: ../../build/doc/components-family.rst:321
+msgid "and"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:60
+#: ../../build/doc/components-family.rst:126
+#: ../../build/doc/components-family.rst:194
+#: ../../build/doc/components-family.rst:263
+#: ../../build/doc/components-family.rst:323
+msgid ":math:`source = \\bigcup source_i`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:61
+#: ../../build/doc/components-family.rst:127
+#: ../../build/doc/components-family.rst:195
+#: ../../build/doc/components-family.rst:264
+#: ../../build/doc/components-family.rst:324
+msgid ":math:`target = \\bigcup target_i`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:63
+#: ../../build/doc/components-family.rst:129
+#: ../../build/doc/components-family.rst:197
+#: ../../build/doc/components-family.rst:266
+#: ../../build/doc/components-family.rst:326
+msgid "The graphs are defined as follows:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:65
+#: ../../build/doc/components-family.rst:199
+#: ../../build/doc/components-family.rst:268
+#: ../../build/doc/components-family.rst:328
+msgid "The weighted undirected graph, :math:`G(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:67
+#: ../../build/doc/components-family.rst:133
+#: ../../build/doc/components-family.rst:201
+#: ../../build/doc/components-family.rst:270
+#: ../../build/doc/components-family.rst:330
+msgid "the set of vertices  :math:`V`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:69
+#: ../../build/doc/components-family.rst:203
+#: ../../build/doc/components-family.rst:272
+#: ../../build/doc/components-family.rst:332
+msgid ":math:`V = source \\cup target`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:72
+#: ../../build/doc/components-family.rst:137
+#: ../../build/doc/components-family.rst:206
+#: ../../build/doc/components-family.rst:275
+#: ../../build/doc/components-family.rst:335
+msgid "the set of edges :math:`E`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:74
+#: ../../build/doc/components-family.rst:208
+#: ../../build/doc/components-family.rst:277
+#: ../../build/doc/components-family.rst:337
+msgid ""
+":math:`E = \\begin{cases} &\\{(source_i, target_i, cost_i) \\text{ when } "
+"cost >=0 \\} \\\\ \\cup &\\{(target_i, source_i, cost_i) \\text{ when } cost"
+" >=0 \\}  &\\quad  \\text{ if } reverse\\_cost = \\varnothing \\\\ \\\\ "
+"&\\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} \\\\ \\cup "
+"&\\{(target_i, source_i, cost_i) \\text{ when } cost >=0 \\} \\\\ \\cup "
+"&\\{(target_i, source_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i "
+">=0)\\} \\\\ \\cup &\\{(source_i, target_i, reverse\\_cost_i) \\text{ when }"
+" reverse\\_cost_i >=0)\\} &\\quad \\text{ if } reverse\\_cost \\neq "
+"\\varnothing \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:77
+#: ../../build/doc/components-family.rst:142
+#: ../../build/doc/components-family.rst:211
+#: ../../build/doc/components-family.rst:280
+#: ../../build/doc/components-family.rst:340
+msgid "Given:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:79
+#: ../../build/doc/components-family.rst:144
+#: ../../build/doc/components-family.rst:213
+#: ../../build/doc/components-family.rst:282
+#: ../../build/doc/components-family.rst:342
+msgid ":math:`G(V,E)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:81
+#: ../../build/doc/components-family.rst:146
+#: ../../build/doc/components-family.rst:215
+#: ../../build/doc/components-family.rst:284
+#: ../../build/doc/components-family.rst:344
+msgid "Then:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:89
+#: ../../build/doc/components-family.rst:154
+#: ../../build/doc/components-family.rst:223
+msgid ":math:`\\boldsymbol{\\pi} = \\{(component_i, n\\_seq_i, node_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:98
+#: ../../build/doc/components-family.rst:163
+#: ../../build/doc/components-family.rst:232
+#: ../../build/doc/components-family.rst:298
+#: ../../build/doc/components-family.rst:358
+msgid "where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:92
+msgid ":math:`component_i = \\min \\{node_j | node_j \\in component_i\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:93
+#: ../../build/doc/components-family.rst:158
+#: ../../build/doc/components-family.rst:227
+msgid ""
+":math:`n\\_seq_i` is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:94
+#: ../../build/doc/components-family.rst:159
+msgid ":math:`node_i \\in component_i`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:95
+#: ../../build/doc/components-family.rst:160
+#: ../../build/doc/components-family.rst:229
+#: ../../build/doc/components-family.rst:296
+#: ../../build/doc/components-family.rst:356
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:97
+#: ../../build/doc/components-family.rst:162
+#: ../../build/doc/components-family.rst:231
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:98
+#: ../../build/doc/components-family.rst:163
+#: ../../build/doc/components-family.rst:298
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:103
+#: ../../build/doc/components-family.rst:170
+#: ../../build/doc/components-family.rst:239
+#: ../../build/doc/components-family.rst:301
+#: ../../build/doc/components-family.rst:361
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:101
+msgid "The first component is composed of nodes ``0``, ``1`` and ``4``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:102
+msgid "The second component is composed of node ``3``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:103
+msgid "The third component is composed of nodes ``2`` and ``5``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:111
+msgid "Strongly connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:112
+msgid ""
+"A strongly connected component of a directed graph is a set of vertices that"
+" are all reachable from each other."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:115
+msgid "**Notice**: This problem defines on a directed graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:120
+msgid "pgr_strongComponentsV(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:131
+msgid "The weighted directed graph, :math:`G_d(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:135
+msgid ":math:`V = source \\cup target \\cup {start_{vid}} \\cup  {end_{vid}}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:139
+msgid ""
+":math:`E = \\begin{cases} &\\{(source_i, target_i, cost_i) \\text{ when } "
+"cost >=0 \\} &\\quad  \\text{ if } reverse\\_cost = \\varnothing \\\\ \\\\ "
+"&\\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} \\\\ \\cup "
+"&\\{(target_i, source_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i "
+">=0)\\} &\\quad \\text{ if } reverse\\_cost \\neq \\varnothing \\\\ "
+"\\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:157
+#: ../../build/doc/components-family.rst:226
+msgid ":math:`component_i = \\min {node_j | node_j \\in component_i}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:166
+msgid "The first component is composed of nodes ``1``, ``2`` and ``4``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:167
+msgid "The second component is composed of node ``0``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:168
+msgid "The third component is composed of node ``3``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:169
+msgid "The fourth component is composed of node ``5``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:170
+msgid "The fifth component is composed of node ``6``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:177
+msgid "Biconnected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:178
+msgid ""
+"The biconnected components of an undirected graph are the maximal subsets of"
+" vertices such that the removal of a vertex from particular component will "
+"not disconnect the component. Unlike connected components, vertices may "
+"belong to multiple biconnected components. Vertices can be present in "
+"multiple biconnected components, but each edge can only be contained in a "
+"single biconnected component. So, the output only has edge version."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:188
+msgid "pgr_biconnectedComponents(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:228
+msgid ":math:`edge_i \\in component_i`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:232
+#: ../../build/doc/components-family.rst:358
+msgid "`edge` ascending"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:235
+msgid ""
+"The first component is composed of edges ``1 - 2``, ``0 - 1`` and ``0 - 2``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:236
+msgid ""
+"The second component is composed of edges ``2 - 4``, ``2 - 3`` and ``3 - "
+"4``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:237
+msgid "The third component is composed of edge ``5 - 6``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:238
+msgid "The fourth component is composed of edge ``6 - 7``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:239
+msgid ""
+"The fifth component is composed of edges ``8 - 9``, ``9 - 10`` and ``8 - "
+"10``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:246
+msgid "Articulation Points"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:247
+msgid ""
+"Those vertices that belong to more than one biconnected component are called"
+" articulation points or, equivalently, cut vertices. Articulation points are"
+" vertices whose removal would increase the number of connected components in"
+" the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:257
+msgid "pgr_articulationPoints(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:292
+msgid ":math:`\\boldsymbol{\\pi} = \\{node_i\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:295
+msgid ":math:`node_i` is an articulation point."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:301
+msgid "Articulation points are nodes ``2`` and ``6``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:308
+msgid "Bridges"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:309
+msgid ""
+"A bridge is an edge of an undirected graph whose deletion increases its "
+"number of connected components."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:317
+msgid "pgr_bridges(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:352
+msgid ":math:`\\boldsymbol{\\pi} = \\{edge_i\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:355
+msgid ":math:`edge_i` is an edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:361
+msgid "Bridges are edges ``5 <--> 6`` and ``6 <--> 7``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:370
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:372
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:421
+#: ../../build/doc/components-family.rst:440
+#: ../../build/doc/components-family.rst:458
+#: ../../build/doc/components-family.rst:474
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:405
+#: ../../build/doc/components-family.rst:421
+#: ../../build/doc/components-family.rst:440
+#: ../../build/doc/components-family.rst:458
+#: ../../build/doc/components-family.rst:474
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:405
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:405
+#: ../../build/doc/components-family.rst:421
+#: ../../build/doc/components-family.rst:440
+#: ../../build/doc/components-family.rst:458
+#: ../../build/doc/components-family.rst:474
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:377
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:377
+#: ../../build/doc/components-family.rst:378
+#: ../../build/doc/components-family.rst:379
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:377
+#: ../../build/doc/components-family.rst:445
+#: ../../build/doc/components-family.rst:477
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:378
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:378
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:379
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:379
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:380
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:380
+#: ../../build/doc/components-family.rst:384
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:380
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:382
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:384
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:384
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:384
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:386
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:390
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:392
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:393
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:402
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:405
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:407
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:407
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:407
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:416
+msgid ""
+"Description of the return values for connected components and strongly "
+"connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:418
+msgid "Returns set of ``(seq, component, n_seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:423
+#: ../../build/doc/components-family.rst:442
+#: ../../build/doc/components-family.rst:460
+#: ../../build/doc/components-family.rst:476
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:423
+#: ../../build/doc/components-family.rst:425
+#: ../../build/doc/components-family.rst:442
+#: ../../build/doc/components-family.rst:444
+#: ../../build/doc/components-family.rst:460
+#: ../../build/doc/components-family.rst:476
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:423
+#: ../../build/doc/components-family.rst:442
+#: ../../build/doc/components-family.rst:460
+#: ../../build/doc/components-family.rst:476
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:424
+#: ../../build/doc/components-family.rst:443
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:424
+#: ../../build/doc/components-family.rst:426
+#: ../../build/doc/components-family.rst:443
+#: ../../build/doc/components-family.rst:445
+#: ../../build/doc/components-family.rst:461
+#: ../../build/doc/components-family.rst:477
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:424
+msgid ""
+"Component identifier. It is equal to the minimum node identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:425
+#: ../../build/doc/components-family.rst:444
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:425
+#: ../../build/doc/components-family.rst:444
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:426
+#: ../../build/doc/components-family.rst:461
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:426
+#: ../../build/doc/components-family.rst:461
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:435
+msgid ""
+"Description of the return values for biconnected components, connected "
+"components (edge version) and strongly connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:437
+msgid "Returns set of ``(seq, component, n_seq, edge)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:443
+msgid ""
+"Component identifier. It is equal to the minimum edge identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:445
+#: ../../build/doc/components-family.rst:477
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:453
+msgid "Description of the return values for articulation points"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:455
+#: ../../build/doc/components-family.rst:471
+msgid "Returns set of ``(seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:469
+msgid "Description of the return values for bridges"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:483
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:486
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:487
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:488
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/contraction-family.po b/locale/fr/LC_MESSAGES/contraction-family.po
new file mode 100644
index 0000000..182343c
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/contraction-family.po
@@ -0,0 +1,745 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/contraction-family.rst:14
+msgid "Contraction - Family of functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:21
+msgid ":ref:`pgr_contractGraph`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:29
+msgid "Introduction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:31
+msgid ""
+"In big graphs, like the road graphs, or electric networks, graph contraction"
+" can be used to speed up some graph algorithms. Contraction reduces the size"
+" of the graph by removing some of the vertices and edges and, for example, "
+"might add edges that represent a sequence of original edges decreasing the "
+"total time and space used in graph algorithms."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:33
+msgid ""
+"This implementation gives a flexible framework for adding contraction "
+"algorithms in the future, currently, it supports two algorithms:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:35
+#: ../../build/doc/contraction-family.rst:46
+msgid "Dead end contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:36
+#: ../../build/doc/contraction-family.rst:166
+msgid "Linear contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:38
+msgid "Allowing the user to:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:40
+msgid "Forbid contraction on a set of nodes."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:41
+msgid ""
+"Decide the order of the contraction algorithms and set the maximum number of"
+" times they are to be executed."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:43
+msgid "UNDER DISCUSSION:  Forbid contraction on a set of edges"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:47
+msgid "In the algorithm, dead end contraction is represented by 1."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:50
+msgid "Dead end nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:52
+msgid ""
+"The definition of a dead end node is different for a directed and an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:54
+msgid "In case of a undirected graph, a node is considered a dead end node if"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:56
+msgid "The number of adjacent vertices is 1."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:58
+msgid "In case of an directed graph, a node is considered a dead end node if"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:60
+msgid "There are no outgoing edges and has at least one incoming edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:61
+msgid "There is one incoming and one outgoing edge with the same identifier."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:64
+#: ../../build/doc/contraction-family.rst:178
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:65
+msgid "The green node ``B`` represents a dead end node"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:66
+msgid "The node ``A`` is the only node connecting to ``B``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:67
+#: ../../build/doc/contraction-family.rst:181
+msgid ""
+"Node ``A`` is part of the rest of the graph and has an unlimited number of "
+"incoming and outgoing edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:68
+#: ../../build/doc/contraction-family.rst:183
+msgid "Directed graph"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:86
+msgid "Operation: Dead End Contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:88
+msgid ""
+"The dead end contraction will stop until there are no more dead end nodes. "
+"For example from the following graph:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:91
+#: ../../build/doc/contraction-family.rst:208
+msgid ""
+"Node ``A`` is connected to the rest of the graph by an unlimited number of "
+"edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:92
+msgid ""
+"Node ``B`` is connected to the rest of the graph with one incoming edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:93
+msgid "Node ``B`` is the only node connecting to ``C``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:94
+msgid "The green node ``C`` represents a `Dead End` node"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:113
+msgid ""
+"After contracting ``C``, node ``B`` is now a `Dead End` node and is "
+"contracted:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:129
+msgid "Node ``B`` gets contracted"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:143
+msgid "Nodes ``B`` and ``C`` belong to node ``A``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:148
+msgid "Not Dead End nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:150
+msgid "In this graph ``B`` is not a `dead end` node."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:167
+msgid "In the algorithm, linear contraction is represented by 2."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:170
+msgid "Linear nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:172
+msgid "A node is considered a linear node if satisfies the following:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:174
+msgid "The number of adjacent vertices are 2."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:175
+msgid "Should have at least one incoming edge and one outgoing edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:179
+msgid "The green node ``B`` represents a linear node"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:180
+msgid "The nodes ``A`` and ``C`` are the only nodes connecting to ``B``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:182
+msgid ""
+"Node ``C`` is part of the rest of the graph and has an unlimited number of "
+"incoming and outgoing edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:203
+msgid "Operation: Linear Contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:205
+msgid ""
+"The linear contraction will stop until there are no more linear nodes. For "
+"example from the following graph:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:209
+msgid ""
+"Node ``B`` is connected to the rest of the graph with one incoming edge and "
+"one outgoing edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:210
+msgid ""
+"Node ``C`` is connected to the rest of the graph with one incoming edge and "
+"one outgoing edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:211
+msgid ""
+"Node ``D`` is connected to the rest of the graph by an unlimited number of "
+"edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:212
+msgid "The green nodes ``B`` and ``C`` represents `Linear` nodes."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:234
+msgid ""
+"After contracting ``B``, a new edge gets inserted between ``A`` and ``C`` "
+"which is represented by red color."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:254
+msgid "Node ``C`` is `linear node` and gets contracted."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:272
+msgid ""
+"Nodes ``B`` and ``C`` belong to edge connecting ``A`` and ``D`` which is "
+"represented by red color."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:275
+msgid "Not Linear nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:277
+msgid "In this graph ``B`` is not a `linear` node."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:298
+msgid "The cycle"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:300
+msgid ""
+"Contracting a graph, can be done with more than one operation. The order of "
+"the operations affect the resulting contracted graph, after applying one "
+"operation, the set of vertices that can be contracted by another operation "
+"changes."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:302
+msgid ""
+"This implementation, cycles ``max_cycles`` times through "
+"``operations_order`` ."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:315
+msgid "Contracting Sample Data"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:317
+msgid ""
+"In this section, building and using a contracted graph will be shown by "
+"example."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:319
+msgid "The :doc:`sampledata` for an undirected graph is used"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:320
+msgid "a dead end operation first followed by a linear operation."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:322
+msgid "The original graph:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:326
+msgid "After doing a dead end contraction operation:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:330
+msgid "Doing a linear contraction operation to the graph above"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:335
+msgid ""
+"There are five cases, in this documentation, which arise when calculating "
+"the shortest path between a given source and target. In this examples, "
+"``pgr_dijkstra`` is used."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:338
+msgid "**Case 1**: Both source and target belong to the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:339
+msgid ""
+"**Case 2**: Source belongs to a contracted graph, while target belongs to a "
+"edge subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:340
+msgid ""
+"**Case 3**: Source belongs to a vertex subgraph, while target belongs to an "
+"edge subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:341
+msgid ""
+"**Case 4**: Source belongs to a contracted graph, while target belongs to an"
+" vertex subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:342
+msgid ""
+"**Case 5**: The path contains a new edge added by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:345
+msgid "Construction of the graph in the database"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:348
+msgid "Original Data"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:349
+msgid ""
+"The following query shows the original data involved in the contraction "
+"operation."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:356
+msgid "Contraction Results"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:361
+msgid ""
+"The above results do not represent the contracted graph. They represent the "
+"changes done to the graph after applying the contraction algorithm. We can "
+"see that vertices like 6 and 11 do not appear in the contraction results "
+"because they were not affected by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:364
+msgid "step 1"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:365
+msgid ""
+"Adding extra columns to the ``edge_table`` and ``edge_table_vertices_pgr`` "
+"tables:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:368
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:368
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:370
+msgid "**contracted_vertices**"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:370
+msgid "The vertices set belonging to the vertex/edge"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:371
+#: ../../build/doc/contraction-family.rst:372
+msgid "**is_contracted**"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:371
+msgid ""
+"On a `vertex` table: when ``true`` the vertex is contracted, so is not part "
+"of the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:372
+msgid ""
+"On an `edge` table: when ``true`` the edge was generated by the contraction "
+"algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:375
+msgid "Using the following queries:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:382
+msgid "step 2"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:383
+msgid ""
+"For simplicity, in this documentation, store the results of the call to "
+"pgr_contractGraph in a temporary table"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:390
+msgid "step 3"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:391
+msgid ""
+"Update the `vertex` and `edge` tables using the results of the call to "
+"pgr_contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:393
+msgid ""
+"In `edge_table_vertices_pgr.is_contracted` indicate the vertices that are "
+"contracted."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:399
+msgid ""
+"Add to `edge_table_vertices_pgr.contracted_vertices`  the contracted "
+"vertices belonging to the vertices."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:405
+msgid "Insert the new edges generated by  pgr_contractGraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:412
+msgid "step 3.1"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:413
+msgid "Verify visually the updates."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:415
+msgid "On the `edge_table_vertices_pgr`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:421
+msgid "On the `edge_table`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:427
+msgid ""
+"vertices that belong to the contracted graph are the non contracted vertices"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:434
+msgid "case 1: Both source and target belong to the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:435
+msgid ""
+"Inspecting the contracted graph above, vertex 3 and vertex 11 are part of "
+"the contracted graph. In the following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:437
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:438
+#: ../../build/doc/contraction-family.rst:452
+#: ../../build/doc/contraction-family.rst:469
+#: ../../build/doc/contraction-family.rst:485
+#: ../../build/doc/contraction-family.rst:507
+msgid ""
+"when selecting the edges, only edges that have the source and the target in "
+"that set are the edges belonging to the contracted graph, that is done in "
+"the WHERE clause."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:440
+msgid ""
+"Visually, looking at the original graph, going from 3 to 11: 3 -> 6 -> 11, "
+"and in the contracted graph, it is also 3 -> 6 -> 11. The results, on the "
+"contracted graph match the results as if it was done on the original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:448
+msgid ""
+"case 2: Source belongs to the contracted graph, while target belongs to a "
+"edge subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:452
+msgid ""
+"Inspecting the contracted graph above, vertex 3 is part of the contracted "
+"graph and vertex 1 belongs to the contracted subgraph of edge 19. In the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:450
+msgid ""
+"expand1 holds the contracted vertices of the edge where vertex 1 belongs. "
+"(belongs to edge 19)."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:451
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph and "
+"also the contracted vertices of edge 19."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:454
+msgid ""
+"Visually, looking at the original graph, going from 3 to 1: 3 -> 2 -> 1, and"
+" in the contracted graph, it is also 3 -> 2 -> 1. The results, on the "
+"contracted graph match the results as if it was done on the original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:463
+msgid ""
+"case 3: Source belongs to a vertex subgraph, while target belongs to an edge"
+" subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:464
+msgid ""
+"Inspecting the contracted graph above, vertex 7 belongs to the contracted "
+"subgraph of vertex 5 and vertex 13 belongs to the contracted subgraph of "
+"edge 21. In the following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:466
+#: ../../build/doc/contraction-family.rst:483
+msgid ""
+"expand7 holds the contracted vertices of vertex where vertex 7 belongs. "
+"(belongs to vertex 5)"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:467
+msgid ""
+"expand13 holds the contracted vertices of edge where vertex 13 belongs. "
+"(belongs to edge 21)"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:468
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph, "
+"contracted vertices of vertex 5 and contracted vertices of edge 21."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:471
+msgid ""
+"Visually, looking at the original graph, going from 7 to 13: 7 -> 8 -> 5 -> "
+"10 -> 13, and in the contracted graph, it is also 7 -> 8 -> 5 -> 10 -> 13. "
+"The results, on the contracted graph match the results as if it was done on "
+"the original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:480
+msgid ""
+"case 4: Source belongs to the contracted graph, while target belongs to an "
+"vertex subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:481
+msgid ""
+"Inspecting the contracted graph above, vertex 3 is part of the contracted "
+"graph and vertex 7 belongs to the contracted subgraph of vertex 5. In the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:484
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph and "
+"the contracted vertices of vertex 5."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:487
+msgid ""
+"Visually, looking at the original graph, going from 3 to 7: 3 -> 2 -> 5 -> 8"
+" -> 7, but in the contracted graph, it is 3 -> 5 -> 8 -> 7. The results, on "
+"the contracted graph do not match the results as if it was done on the "
+"original graph. This is because the path contains edge 19 which is added by "
+"the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:495
+msgid "case 5: The path contains an edge added by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:496
+msgid ""
+"In the previous example we can see that the path from vertex 3 to vertex 7 "
+"contains an edge which is added by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:502
+msgid ""
+"Inspecting the contracted graph above, edge 19 should be expanded. In the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:504
+msgid "first_dijkstra holds the results of the dijkstra query."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:505
+msgid ""
+"edges_to_expand holds the edges added by the contraction algorithm and "
+"included in the path."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:506
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph, "
+"vertices of the contracted solution and the contracted vertices of the edges"
+" added by the contraction algorithm and included in the contracted solution."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:509
+msgid ""
+"Visually, looking at the original graph, going from 3 to 7: 3 -> 2 -> 5 -> 8"
+" -> 7, and in the contracted graph, it is also 3 -> 2 -> 5 -> 8 -> 7. The "
+"results, on the contracted graph match the results as if it was done on the "
+"original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:517
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:519
+msgid ""
+"http://www.cs.cmu.edu/afs/cs/academic/class/15210-f12/www/lectures/lecture16.pdf"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:520
+msgid "http://algo2.iti.kit.edu/documents/routeplanning/geisberger_dipl.pdf"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:521
+msgid ""
+"The queries use :ref:`pgr_contractGraph` function and the :doc:`sampledata` "
+"network."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:524
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:525
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:526
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/cost-category.po b/locale/fr/LC_MESSAGES/cost-category.po
new file mode 100644
index 0000000..efea606
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/cost-category.po
@@ -0,0 +1,178 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/cost-category.rst:13
+msgid "Cost - Category"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:17
+msgid ":ref:`pgr_aStarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:18
+msgid ":ref:`pgr_bdAstarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:19
+msgid ":ref:`pgr_bdDijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:20
+msgid ":ref:`pgr_dijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:21
+msgid ":ref:`pgr_withPointsCost`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:30
+msgid "General Information"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:34
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:36
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:38
+msgid "Each function works as part of the family it belongs to."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:39
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:40
+msgid ""
+"Returns the sum of the costs of the resulting path(s) for pair combination "
+"of nodes in the graph."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:41
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:42
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:44
+msgid ""
+"The returned values are in the form of a set of `(start_vid, end_vid, "
+"agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:46
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:48
+msgid "The `agg_cost` int the non included values `(v, v)` is `0`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:50
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:52
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:54
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:56
+msgid ""
+"Depending on the function and its parameters, the results can be symmetric."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:58
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:60
+msgid "Any duplicated value in the `start_vids` or in `end_vids` are ignored."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:62
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:64
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:65
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:70
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:73
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:74
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:75
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/costMatrix-category.po b/locale/fr/LC_MESSAGES/costMatrix-category.po
new file mode 100644
index 0000000..ad36b5e
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/costMatrix-category.po
@@ -0,0 +1,237 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/costMatrix-category.rst:13
+msgid "Cost Matrix - Category"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:17
+msgid ":ref:`pgr_aStarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:18
+msgid ":ref:`pgr_bdAstarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:19
+msgid ":ref:`pgr_bdDijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:20
+msgid ":ref:`pgr_dijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:21
+msgid ":ref:`pgr_withPointsCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:40
+msgid "General Information"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:43
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:45
+msgid ""
+":ref:`tsp` needs as input a symmetric cost matrix and no edge `(u, v)` must "
+"value :math:`\\infty`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:47
+msgid ""
+"This collection of functions will return a cost matrix in form of a table."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:51
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:53
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:55
+msgid "Can be used as input to :ref:`pgr_tsp`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:57
+msgid ""
+"when the resulting matrix is symmetric and there is no :math:`\\infty` "
+"value."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:58
+msgid "It will be the users responsibility to make the matrix symmetric."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:60
+msgid "By using geometric or harmonic average of the non symmetric values."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:61
+msgid "By using max or min the non symmetric values."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:62
+msgid ""
+"By setting the upper triangle to be the mirror image of the lower triangle."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:63
+msgid ""
+"By setting the lower triangle to be the mirror image of the upper triangle."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:65
+msgid "It is also the users responsibility to fix an :math:`\\infty` value."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:67
+msgid "Each function works as part of the family it belongs to."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:68
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:69
+msgid ""
+"Returns the sum of the costs of the shortest path for pair combination of "
+"nodes in the graph."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:70
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:71
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:73
+msgid ""
+"The returned values are in the form of a set of `(start_vid, end_vid, "
+"agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:75
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:77
+msgid "The `agg_cost` int the non included values `(v, v)` is `0`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:79
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:81
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:83
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:85
+msgid ""
+"Depending on the function and its parameters, the results can be symmetric."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:87
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:89
+msgid "Any duplicated value in the `start_vids` are ignored."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:91
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:93
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:94
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:96
+msgid "Running time: approximately :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:101
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:103
+msgid ":ref:`pgr_tsp`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:106
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:107
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:108
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/cost_result.po b/locale/fr/LC_MESSAGES/cost_result.po
new file mode 100644
index 0000000..cfc1232
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/cost_result.po
@@ -0,0 +1,92 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/cost_result.rst:13
+msgid "pgr_costResult[]"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:19 ../../build/doc/cost_result.rst:52
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:21
+msgid ""
+"``pgr_costResult[]`` — A set of records to describe a path result with cost "
+"attribute."
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:25 ../../build/doc/cost_result.rst:58
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:37 ../../build/doc/cost_result.rst:71
+msgid "sequential ID indicating the path order"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:38 ../../build/doc/cost_result.rst:73
+msgid "generic name, to be specified by the function, typically the node id"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:39 ../../build/doc/cost_result.rst:74
+msgid "generic name, to be specified by the function, typically the edge id"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:40 ../../build/doc/cost_result.rst:75
+msgid "cost attribute"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:46
+msgid "pgr_costResult3[] - Multiple Path Results with Cost"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:54
+msgid ""
+"``pgr_costResult3[]`` — A set of records to describe a path result with cost"
+" attribute."
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:72
+msgid "generic name, to be specified by the function, typically the path id"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:79
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:80
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:81
+msgid "Replaces ``path_result``"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:85
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:87
+msgid ":ref:`introduction`"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:90
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:91
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:92
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/dijkstra-family.po b/locale/fr/LC_MESSAGES/dijkstra-family.po
new file mode 100644
index 0000000..a9fa495
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/dijkstra-family.po
@@ -0,0 +1,262 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/dijkstra-family.rst:13
+msgid "Dijkstra - Family of functions"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:17
+msgid ":ref:`pgr_dijkstra` - Dijkstra's algorithm for the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:18
+msgid ""
+":ref:`pgr_dijkstraCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:19
+msgid ""
+":ref:`pgr_dijkstraCostMatrix` - Use pgr_dijkstra to create a costs matrix."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:20
+msgid ""
+":ref:`pgr_drivingDistance` - Use pgr_dijkstra to calculate catchament "
+"information."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:21
+msgid ""
+":ref:`pgr_ksp` - Use Yen algorithm with pgr_dijkstra to get the K shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:22
+msgid ":ref:`pgr_dijkstraVia` - Get a route of a seuence of vertices."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:39
+msgid "The problem definition (Advanced documentation)"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:42
+msgid "Given the following query:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:45
+msgid "pgr_dijkstra(:math:`sql, start_{vid}, end_{vid}, directed`)"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:47
+msgid ""
+"where  :math:`sql = \\{(id_i, source_i, target_i, cost_i, "
+"reverse\\_cost_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:49
+msgid "and"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:51
+msgid ":math:`source = \\bigcup source_i`,"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:52
+msgid ":math:`target = \\bigcup target_i`,"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:54
+msgid "The graphs are defined as follows:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:57
+msgid "Directed graph"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:58
+msgid "The weighted directed graph, :math:`G_d(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:60
+#: ../../build/doc/dijkstra-family.rst:79
+msgid "the set of vertices  :math:`V`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:62
+msgid ":math:`V = source \\cup target \\cup {start_{vid}} \\cup  {end_{vid}}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:64
+#: ../../build/doc/dijkstra-family.rst:84
+msgid "the set of edges :math:`E`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:66
+msgid ""
+":math:`E = \\begin{cases} \\text{ }  \\{(source_i, target_i, cost_i) \\text{"
+" when } cost >=0 \\} & \\quad \\text{if } reverse\\_cost = \\varnothing \\\\"
+" \\text{ }  \\text{ }  & \\quad \\text{ } \\\\ \\text{ }  \\{(source_i, "
+"target_i, cost_i) \\text{ when } cost >=0 \\} &  \\quad \\text{ } \\\\ \\cup"
+"      \\{(target_i, source_i, reverse\\_cost_i) \\text{ when } "
+"reverse\\_cost_i>=0 \\} & \\quad \\text{if } reverse\\_cost \\neq "
+"\\varnothing \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:76
+msgid "Undirected graph"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:77
+msgid "The weighted undirected graph, :math:`G_u(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:81
+msgid ":math:`V = source \\cup target \\cup {start_v{vid}} \\cup  {end_{vid}}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:86
+msgid ""
+":math:`E = \\begin{cases} \\text{ }  \\{(source_i, target_i, cost_i) \\text{"
+" when } cost >=0 \\}  & \\quad \\text{ } \\\\ \\cup      \\{(target_i, "
+"source_i, cost_i) \\text{ when } cost >=0 \\}  & \\quad \\text{ if } "
+"reverse\\_cost = \\varnothing \\\\ \\text{ }  \\text{ }  & \\text{ } \\\\ "
+"\\text{ }  \\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & "
+"\\text{ } \\\\ \\cup  \\{(target_i, source_i, cost_i) \\text{ when } cost "
+">=0 \\} & \\text{ } \\\\ \\cup  \\{(target_i, source_i, reverse\\_cost_i) "
+"\\text{ when } reverse\\_cost_i >=0)\\} & \\text{ } \\\\ \\cup  "
+"\\{(source_i, target_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i "
+">=0)\\} & \\quad \\text{ if } reverse\\_cost \\neq \\varnothing \\\\ "
+"\\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:99
+msgid "The problem"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:100
+msgid "Given:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:102
+msgid ":math:`start_{vid} \\in V` a starting vertex"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:103
+msgid ":math:`end_{vid} \\in V` an ending vertex"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:104
+msgid ""
+":math:`G(V,E) = \\begin{cases} G_d(V,E) & \\quad \\text{ if6 } directed = "
+"true \\\\ G_u(V,E) & \\quad \\text{ if5 } directed = false \\\\ "
+"\\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:109
+msgid "Then:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:118
+msgid ""
+":math:`\\boldsymbol{\\pi} = \\{(path\\_seq_i, node_i, edge_i, cost_i, "
+"agg\\_cost_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:131
+msgid "where:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:121
+msgid ":math:`path\\_seq_i = i`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:122
+msgid ":math:`path\\_seq_{| \\pi |} = | \\pi |`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:123
+msgid ":math:`node_i \\in V`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:124
+msgid ":math:`node_1 = start_{vid}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:125
+msgid ":math:`node_{| \\pi |}  = end_{vid}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:126
+msgid ":math:`\\forall i \\neq | \\pi |, \\quad (node_i, node_{i+1}, cost_i) \\in E`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:127
+msgid ""
+":math:`edge_i  = \\begin{cases}  id_{(node_i, node_{i+1},cost_i)}  &\\quad  "
+"\\text{when } i \\neq | \\pi | \\\\ -1 &\\quad  \\text{when } i = | \\pi | "
+"\\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:128
+msgid ":math:`cost_i = cost_{(node_i, node_{i+1})}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:129
+msgid ""
+":math:`agg\\_cost_i  = \\begin{cases}  0   &\\quad  \\text{when } i = 1  "
+"\\\\ \\displaystyle\\sum_{k=1}^{i}  cost_{(node_{k-1}, node_k)}  &\\quad  "
+"\\text{when } i \\neq 1 \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:137
+msgid ""
+"In other words: The algorithm returns a the shortest path between "
+":math:`start_{vid}` and :math:`end_{vid}` , if it exists, in terms of a "
+"sequence of nodes  and of edges,"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:134
+msgid ""
+":math:`path\\_seq` indicates the relative position in the path of the "
+":math:`node` or :math:`edge`."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:135
+msgid ""
+":math:`cost` is the cost of the edge to be used to go to the next node."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:136
+msgid ""
+":math:`agg\\_cost` is the cost from the :math:`start_{vid}` up to the node."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:139
+msgid "If there is no path, the resulting set is empty."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:143
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:146
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:147
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:148
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/drivingDistance-category.po b/locale/fr/LC_MESSAGES/drivingDistance-category.po
new file mode 100644
index 0000000..a71b4c7
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/drivingDistance-category.po
@@ -0,0 +1,52 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/drivingDistance-category.rst:14
+msgid "Driving Distance - Category"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:18
+msgid ":ref:`pgr_drivingDistance` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:19
+msgid ":ref:`pgr_withPointsDD` - Driving Distance based on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:20
+msgid "Post pocessing"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:22
+msgid ":ref:`pgr_alphaShape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:23
+msgid ":ref:`pgr_points_as_polygon` - Polygon around a set of points"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:36
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:39
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:40
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:41
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/flow-family.po b/locale/fr/LC_MESSAGES/flow-family.po
new file mode 100644
index 0000000..a000199
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/flow-family.po
@@ -0,0 +1,331 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Flow - Family of functions"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid ""
+":ref:`pgr_maxFlow` - Only the Max flow calculation using Push and Relabel "
+"algorithm."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid ""
+":ref:`pgr_BoykovKolmogorov` - Boykov and Kolmogorov with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:19
+msgid ""
+":ref:`pgr_EdmondsKarp` - Edmonds and Karp algorithm with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid ""
+":ref:`pgr_PushRelabel` - Push and relabel algorithm with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "Applications"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:23
+msgid ""
+":ref:`pgr_edgeDisjointPaths` - Calculates edge disjoint paths between two "
+"groups of vertices."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:24
+msgid ""
+":ref:`pgr_maxCardinalityMatch` - Calculates a maximum cardinality matching "
+"in a graph."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:45
+msgid "Flow Functions General Information"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:51
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:52
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:53
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:54
+msgid ""
+"When the maximum flow is 0 then there is no flow and **EMPTY SET** is "
+"returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:56
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:58
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:59
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:61
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:63
+msgid ""
+"Creates a **super source** and edges to all the source(s), and a **super "
+"target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:64
+msgid ""
+"The maximum flow through the graph is guaranteed to be the value returned by"
+" :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and"
+" can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:66
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:67
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:72
+msgid ""
+":ref:`pgr_maxFlow <pgr_maxFlow>`  is the  maximum Flow and that maximum is "
+"guaranteed to be the same on the functions :ref:`pgr_pushRelabel "
+"<pgr_pushRelabel>`, :ref:`pgr_edmondsKarp <pgr_edmondsKarp>`, "
+":ref:`pgr_boykovKolmogorov <pgr_boykovKolmogorov>`, but the actual flow "
+"through each edge may vary."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:77
+msgid "Problem definition"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:79
+msgid ""
+"A flow network is a directed graph where each edge has a capacity and a "
+"flow. The flow through an edge must not exceed the capacity of the edge. "
+"Additionally, the incoming and outgoing flow of a node must be equal except "
+"the for source which only has outgoing flow, and the destination(sink) which"
+" only has incoming flow."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:83
+msgid ""
+"Maximum flow algorithms calculate the maximum flow through the graph and the"
+" flow of each edge."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:85
+msgid ""
+"The maximum flow through the graph is guaranteed to be the same with all "
+"implementations, but the actual flow through each edge may vary. Given the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:89
+msgid "pgr_maxFlow :math:`(edges\\_sql, source\\_vertex, sink\\_vertex)`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:91
+msgid ""
+"where :math:`edges\\_sql = \\{(id_i, source_i, target_i, capacity_i, "
+"reverse\\_capacity_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:94
+msgid "Graph definition"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:95
+msgid "The weighted directed graph, :math:`G(V,E)`, is defined as:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:97
+msgid "the set of vertices  :math:`V`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:99
+msgid ""
+":math:`source\\_vertex  \\cup  sink\\_vertex  \\bigcup  source_i  \\bigcup  "
+"target_i`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:101
+msgid "the set of edges :math:`E`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:103
+msgid ""
+":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, capacity_i) "
+"\\text{ when } capacity > 0 \\} & \\quad  \\text{ if } reverse\\_capacity = "
+"\\varnothing \\\\ \\text{ } & \\quad \\text{ } \\\\ \\{(source_i, target_i, "
+"capacity_i) \\text{ when } capacity > 0 \\} & \\text{ } \\\\ \\cup "
+"\\{(target_i, source_i, reverse\\_capacity_i) \\text{ when } "
+"reverse\\_capacity_i > 0)\\} & \\quad \\text{ if } reverse\\_capacity \\neq "
+"\\varnothing \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:111
+msgid "Maximum flow problem"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:112
+msgid "Given:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:115
+msgid ":math:`G(V,E)`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:116
+msgid ":math:`source\\_vertex \\in V` the source vertex"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:117
+msgid ":math:`sink\\_vertex \\in V` the sink vertex"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:119
+msgid "Then:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:121
+msgid ":math:`pgr\\_maxFlow(edges\\_sql, source, sink) = \\boldsymbol{\\Phi}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:123
+msgid ""
+":math:`\\boldsymbol{\\Phi} = {(id_i, edge\\_id_i, source_i, target_i, "
+"flow_i, residual\\_capacity_i)}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:125
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:127
+msgid ""
+":math:`\\boldsymbol{\\Phi}` is a subset of the original edges with their "
+"residual capacity and flow. The maximum flow through the graph can be "
+"obtained by aggregating on the source or sink and summing the flow from/to "
+"it. In particular:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:129
+msgid ":math:`id_i = i`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:130
+msgid ":math:`edge\\_id = id_i` in edges_sql"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:131
+msgid ":math:`residual\\_capacity_i = capacity_i - flow_i`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:135
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:137
+msgid "https://en.wikipedia.org/wiki/Maximum_flow_problem"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:140
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:141
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:142
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/geom_result.po b/locale/fr/LC_MESSAGES/geom_result.po
new file mode 100644
index 0000000..e2d89a1
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/geom_result.po
@@ -0,0 +1,74 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/geom_result.rst:13
+msgid "pgr_geomResult[]"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:21
+msgid ""
+"``pgr_geomResult[]`` — A set of records to describe a path result with "
+"geometry attribute."
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:25
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:37
+msgid "sequential ID indicating the path order"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:38 ../../build/doc/geom_result.rst:39
+msgid "generic name, to be specified by the function"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:40
+msgid "geometry attribute"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:44
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:45
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:46
+msgid "Replaces ``geoms``"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:50
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:52
+msgid ":ref:`introduction`"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:56
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:57
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:58
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/index.po b/locale/fr/LC_MESSAGES/index.po
new file mode 100644
index 0000000..44ac3e4
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/index.po
@@ -0,0 +1,306 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/index.rst:14
+msgid "Table of Contents"
+msgstr ""
+
+#: ../../build/doc/index.rst:16
+msgid ""
+"pgRouting extends the `PostGIS <http://postgis.net>`_/`PostgreSQL "
+"<http://postgresql.org>`_ geospatial database to provide geospatial routing "
+"and other network analysis functionality."
+msgstr ""
+
+#: ../../build/doc/index.rst:18
+msgid "This is the manual for pgRouting |release|."
+msgstr ""
+
+#: ../../build/doc/index.rst:24
+msgid ""
+"The pgRouting Manual is licensed under a `Creative Commons Attribution-Share"
+" Alike 3.0 License <http://creativecommons.org/licenses/by-sa/3.0/>`_. Feel "
+"free to use this material any way you like, but we ask that you attribute "
+"credit to the pgRouting Project and wherever possible, a link back to "
+"http://pgrouting.org. For other licenses used in pgRouting see the "
+":ref:`license` page."
+msgstr ""
+
+#: ../../build/doc/index.rst:27
+msgid "General"
+msgstr ""
+
+#: ../../build/doc/index.rst:37
+msgid ":doc:`sampledata` that is used in the examples of this manual."
+msgstr ""
+
+#: ../../build/doc/index.rst:45
+msgid "Pgrouting Concepts"
+msgstr ""
+
+#: ../../build/doc/index.rst:54
+msgid "Reference"
+msgstr ""
+
+#: ../../build/doc/index.rst:55
+msgid ":ref:`pgr_version` - to get pgRouting's version information."
+msgstr ""
+
+#: ../../build/doc/index.rst:64
+msgid ":ref:`Data Types <data_types>`"
+msgstr ""
+
+#: ../../build/doc/index.rst:67
+msgid ""
+":ref:`type_cost_result` -  A set of records to describe a path result with "
+"cost attribute."
+msgstr ""
+
+#: ../../build/doc/index.rst:68
+msgid ""
+":ref:`pgr_costResult3[]<type_cost_result3>` - A set of records to describe a"
+" path result with cost attribute."
+msgstr ""
+
+#: ../../build/doc/index.rst:69
+msgid ""
+":ref:`pgr_geomResult<type_geom_result>` - A set of records to describe a "
+"path result with geometry attribute."
+msgstr ""
+
+#: ../../build/doc/index.rst:78
+msgid ":ref:`Topology Functions <topology_functions>`"
+msgstr ""
+
+#: ../../build/doc/index.rst:80
+msgid ""
+":ref:`pgr_create_topology` -  to create a topology based on the geometry."
+msgstr ""
+
+#: ../../build/doc/index.rst:81
+msgid ""
+":ref:`pgr_create_vert_table` - to reconstruct the vertices table based on "
+"the source and target information."
+msgstr ""
+
+#: ../../build/doc/index.rst:82
+msgid ""
+":ref:`pgr_analyze_graph`  - to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/index.rst:83
+msgid ":ref:`pgr_analyze_oneway` - to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/index.rst:84
+msgid ":ref:`pgr_node_network`  -to create nodes to a not noded edge table."
+msgstr ""
+
+#: ../../build/doc/index.rst:93
+msgid ":ref:`Routing functions <routing_functions>`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:4
+msgid ":ref:`all_pairs`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:6
+msgid ":ref:`pgr_floydWarshall` - Floyd-Warshall's Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:7
+msgid ":ref:`pgr_johnson`- Johnson’s Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:9
+msgid ":ref:`pgr_astar` - Shortest Path A*"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:11
+msgid ":ref:`pgr_bdAstar` - Bi-directional A* Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:13
+msgid ":ref:`pgr_bdDijkstra` - Bi-directional Dijkstra Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:16
+msgid ":ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:3
+msgid ":ref:`pgr_dijkstra` - Dijkstra's algorithm for the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:4
+msgid ""
+":ref:`pgr_dijkstraCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:5
+msgid ""
+":ref:`pgr_dijkstraCostMatrix` - Use pgr_dijkstra to create a costs matrix."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:6
+msgid ""
+":ref:`pgr_drivingDistance` - Use pgr_dijkstra to calculate catchament "
+"information."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:7
+msgid ""
+":ref:`pgr_ksp` - Use Yen algorithm with pgr_dijkstra to get the K shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:8
+msgid ":ref:`pgr_dijkstraVia` - Get a route of a seuence of vertices."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:22
+msgid ":ref:`pgr_ksp` - K-Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:24
+msgid ":ref:`pgr_trsp<trsp>` - Turn Restriction Shortest Path (TRSP)"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:26
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:3
+msgid ":ref:`pgr_TSP` - When input is given as matrix cell information."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:4
+msgid ":ref:`pgr_eucledianTSP` - When input are coordinates."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:32
+msgid ":ref:`drivingDistance`"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:3
+msgid ":ref:`pgr_drivingDistance` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:4
+msgid ":ref:`pgr_withPointsDD` - Driving Distance based on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:5
+msgid "Post pocessing"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:7
+msgid ":ref:`pgr_alphaShape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:8
+msgid ":ref:`pgr_points_as_polygon` - Polygon around a set of points"
+msgstr ""
+
+#: ../../build/doc/index.rst:108
+msgid "Available Functions but not official pgRouting functions"
+msgstr ""
+
+#: ../../build/doc/index.rst:110
+msgid ":ref:`Stable`"
+msgstr ""
+
+#: ../../build/doc/index.rst:111
+msgid ":ref:`proposed`"
+msgstr ""
+
+#: ../../build/doc/index.rst:121
+msgid ":ref:`Change Log <change_log>`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:3
+msgid ":ref:`changelog_2_5_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:4
+msgid ":ref:`changelog_2_4_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:5
+msgid ":ref:`changelog_2_4_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:6
+msgid ":ref:`changelog_2_4_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:7
+msgid ":ref:`changelog_2_3_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:8
+msgid ":ref:`changelog_2_3_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:9
+msgid ":ref:`changelog_2_3_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:10
+msgid ":ref:`changelog_2_2_4`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:11
+msgid ":ref:`changelog_2_2_3`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:12
+msgid ":ref:`changelog_2_2_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:13
+msgid ":ref:`changelog_2_2_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:14
+msgid ":ref:`changelog_2_2_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:15
+msgid ":ref:`changelog_2_1_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:16
+msgid ":ref:`changelog_2_0_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:17
+msgid ":ref:`changelog_2_0_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:18
+msgid ":ref:`changelog_1_x`"
+msgstr ""
+
+#: ../../build/doc/index.rst:135
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/index.rst:136
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/index.rst:137
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgRouting-concepts.po b/locale/fr/LC_MESSAGES/pgRouting-concepts.po
new file mode 100644
index 0000000..34885ba
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgRouting-concepts.po
@@ -0,0 +1,1071 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "pgRouting Concepts"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:0
+msgid "Contents"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "Getting Started"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid ""
+"This is a simple guide to walk you through the steps of getting started with"
+" pgRouting. In this guide we will cover:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:32
+msgid "Create a routing Database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:34
+msgid ""
+"The first thing we need to do is create a database and load pgrouting in the"
+" database. Typically you will create a database for each project. Once you "
+"have a database to work in, your can load your data and build your "
+"application in that database. This makes it easy to move your project later "
+"if you want to to say a production server."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:40
+msgid "For Postgresql 9.2 and later versions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:51
+msgid "Load Data"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:53
+msgid ""
+"How you load your data will depend in what form it comes it. There are "
+"various OpenSource tools that can help you, like:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:56
+msgid ""
+"this is a tool for loading OSM data into postgresql with pgRouting "
+"requirements"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:57
+msgid "this is the postgresql shapefile loader"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:58
+msgid "this is a vector data conversion utility"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:59
+msgid "this is a tool for loading OSM data into postgresql"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:61
+msgid ""
+"So these tools and probably others will allow you to read vector data so "
+"that you may then load that data into your database as a table of some kind."
+" At this point you need to know a little about your data structure and "
+"content. One easy way to browse your new data table is with pgAdmin3 or "
+"phpPgAdmin."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:69
+msgid "Build a Routing Topology"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:71
+msgid ""
+"Next we need to build a topology for our street data. What this means is "
+"that for any given edge in your street data the ends of that edge will be "
+"connected to a unique node and to other edges that are also connected to "
+"that same unique node. Once all the edges are connected to nodes we have a "
+"graph that can be used for routing with pgrouting. We provide a tool that "
+"will help with this:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:77
+msgid "this step is not needed if data is loaded with `osm2pgrouting`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:83
+msgid ":ref:`pgr_create_topology`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:88
+msgid "Check the Routing Topology"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:90
+msgid ""
+"There are lots of possible sources for errors in a graph. The data that you "
+"started with may not have been designed with routing in mind. A graph has "
+"some very specific requirements. One is that it is *NODED*, this means that "
+"except for some very specific use cases, each road segment starts and ends "
+"at a node and that in general is does not cross another road segment that it"
+" should be connected to."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:97
+msgid ""
+"There can be other errors like the direction of a one-way street being "
+"entered in the wrong direction. We do not have tools to search for all "
+"possible errors but we have some basic tools that might help."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:109
+msgid ":ref:`pgr_analyze_graph`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:110
+msgid ":ref:`pgr_analyze_oneway`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:111
+msgid ":ref:`pgr_node_network`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:117
+msgid "Compute a Path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:119
+msgid ""
+"Once you have all the preparation work done above, computing a route is "
+"fairly easy. We have a lot of different algorithms that can work with your "
+"prepared road network. The general form of a route query is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:127
+msgid ""
+"As you can see this is fairly straight forward and you can look and the "
+"specific algorithms for the details of the signatures and how to use them. "
+"These results have information like edge id and/or the node id along with "
+"the cost or geometry for the step in the path from *start* to *end*. Using "
+"the ids you can join these result back to your edge table to get more "
+"information about each step in the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:134
+msgid ":ref:`pgr_dijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:141
+msgid "Inner Queries"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:146
+msgid ""
+"There are several kinds of valid inner queries and also the columns returned"
+" are depending of the function. Which kind of inner query will depend on the"
+" function(s) requirements. To simplify variety of types, ``ANY-INTEGER`` and"
+" ``ANY-NUMERICAL`` is used."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:152
+#: ../../build/doc/pgRouting-concepts.rst:182
+#: ../../build/doc/pgRouting-concepts.rst:212
+#: ../../build/doc/pgRouting-concepts.rst:269
+#: ../../build/doc/pgRouting-concepts.rst:300
+#: ../../build/doc/pgRouting-concepts.rst:334
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:154
+#: ../../build/doc/pgRouting-concepts.rst:184
+#: ../../build/doc/pgRouting-concepts.rst:214
+#: ../../build/doc/pgRouting-concepts.rst:271
+#: ../../build/doc/pgRouting-concepts.rst:302
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:155
+#: ../../build/doc/pgRouting-concepts.rst:185
+#: ../../build/doc/pgRouting-concepts.rst:215
+#: ../../build/doc/pgRouting-concepts.rst:272
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:162
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:164
+#: ../../build/doc/pgRouting-concepts.rst:195
+#: ../../build/doc/pgRouting-concepts.rst:247
+#: ../../build/doc/pgRouting-concepts.rst:282
+#: ../../build/doc/pgRouting-concepts.rst:314
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+#: ../../build/doc/pgRouting-concepts.rst:317
+#: ../../build/doc/pgRouting-concepts.rst:360
+#: ../../build/doc/pgRouting-concepts.rst:383
+#: ../../build/doc/pgRouting-concepts.rst:400
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:227
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+#: ../../build/doc/pgRouting-concepts.rst:317
+#: ../../build/doc/pgRouting-concepts.rst:360
+#: ../../build/doc/pgRouting-concepts.rst:383
+#: ../../build/doc/pgRouting-concepts.rst:400
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:227
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:227
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+#: ../../build/doc/pgRouting-concepts.rst:317
+#: ../../build/doc/pgRouting-concepts.rst:360
+#: ../../build/doc/pgRouting-concepts.rst:383
+#: ../../build/doc/pgRouting-concepts.rst:400
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:169
+#: ../../build/doc/pgRouting-concepts.rst:252
+#: ../../build/doc/pgRouting-concepts.rst:287
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:169
+#: ../../build/doc/pgRouting-concepts.rst:170
+#: ../../build/doc/pgRouting-concepts.rst:171
+#: ../../build/doc/pgRouting-concepts.rst:200
+#: ../../build/doc/pgRouting-concepts.rst:201
+#: ../../build/doc/pgRouting-concepts.rst:252
+#: ../../build/doc/pgRouting-concepts.rst:253
+#: ../../build/doc/pgRouting-concepts.rst:254
+#: ../../build/doc/pgRouting-concepts.rst:287
+#: ../../build/doc/pgRouting-concepts.rst:288
+#: ../../build/doc/pgRouting-concepts.rst:289
+#: ../../build/doc/pgRouting-concepts.rst:290
+#: ../../build/doc/pgRouting-concepts.rst:294
+#: ../../build/doc/pgRouting-concepts.rst:319
+#: ../../build/doc/pgRouting-concepts.rst:324
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:169
+#: ../../build/doc/pgRouting-concepts.rst:252
+#: ../../build/doc/pgRouting-concepts.rst:287
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:170
+#: ../../build/doc/pgRouting-concepts.rst:200
+#: ../../build/doc/pgRouting-concepts.rst:253
+#: ../../build/doc/pgRouting-concepts.rst:288
+#: ../../build/doc/pgRouting-concepts.rst:404
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:170
+#: ../../build/doc/pgRouting-concepts.rst:200
+#: ../../build/doc/pgRouting-concepts.rst:253
+#: ../../build/doc/pgRouting-concepts.rst:288
+#: ../../build/doc/pgRouting-concepts.rst:404
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:171
+#: ../../build/doc/pgRouting-concepts.rst:201
+#: ../../build/doc/pgRouting-concepts.rst:254
+#: ../../build/doc/pgRouting-concepts.rst:289
+#: ../../build/doc/pgRouting-concepts.rst:405
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:171
+#: ../../build/doc/pgRouting-concepts.rst:201
+#: ../../build/doc/pgRouting-concepts.rst:254
+#: ../../build/doc/pgRouting-concepts.rst:289
+#: ../../build/doc/pgRouting-concepts.rst:405
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:172
+#: ../../build/doc/pgRouting-concepts.rst:202
+#: ../../build/doc/pgRouting-concepts.rst:255
+#: ../../build/doc/pgRouting-concepts.rst:369
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:172
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:202
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:255
+#: ../../build/doc/pgRouting-concepts.rst:259
+#: ../../build/doc/pgRouting-concepts.rst:263
+#: ../../build/doc/pgRouting-concepts.rst:264
+#: ../../build/doc/pgRouting-concepts.rst:265
+#: ../../build/doc/pgRouting-concepts.rst:266
+#: ../../build/doc/pgRouting-concepts.rst:325
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:172
+#: ../../build/doc/pgRouting-concepts.rst:202
+#: ../../build/doc/pgRouting-concepts.rst:255
+#: ../../build/doc/pgRouting-concepts.rst:290
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:174
+#: ../../build/doc/pgRouting-concepts.rst:204
+#: ../../build/doc/pgRouting-concepts.rst:257
+#: ../../build/doc/pgRouting-concepts.rst:292
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:259
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:259
+#: ../../build/doc/pgRouting-concepts.rst:294
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:259
+#: ../../build/doc/pgRouting-concepts.rst:294
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:178
+#: ../../build/doc/pgRouting-concepts.rst:208
+#: ../../build/doc/pgRouting-concepts.rst:261
+#: ../../build/doc/pgRouting-concepts.rst:296
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:193
+msgid "Description of the edges_sql query (id is not necessary)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:224
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:227
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:229
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:229
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:229
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:230
+msgid "**via_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:230
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:230
+msgid "Array of ordered vertices identifiers that are going to be visited."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:233
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:232
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:233
+msgid "**strict**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:233
+msgid "``false``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:233
+msgid "When ``false`` ignores missing paths returning all paths found"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:234
+msgid "When ``true`` if a path is missing stops and returns `EMPTY SET`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid "**U_turn_on_edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid ""
+"When ``true`` departing from a visited vertex will not try to avoid using "
+"the edge used to reach it.  In other words, U turn using the edge with same "
+"`id` is allowed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:236
+msgid ""
+"When ``false`` when a departing from a visited vertex tries to avoid using "
+"the edge used to reach it.  In other words, U turn using the edge with same "
+"`id` is used when no other path is found."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:245
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:263
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:263
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:264
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:264
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:265
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:265
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:266
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:266
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:280
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:290
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:294
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:312
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:319
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:319
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:321
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:322
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:324
+#: ../../build/doc/pgRouting-concepts.rst:403
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:324
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:325
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:325
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:326
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:326
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:326
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:328
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:329
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:330
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:336
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:337
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:345
+msgid "Return columns & values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:350
+msgid ""
+"There are several kinds of columns returned are depending of the function."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:355
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:357
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:362
+#: ../../build/doc/pgRouting-concepts.rst:402
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:362
+#: ../../build/doc/pgRouting-concepts.rst:363
+#: ../../build/doc/pgRouting-concepts.rst:364
+#: ../../build/doc/pgRouting-concepts.rst:402
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:362
+#: ../../build/doc/pgRouting-concepts.rst:402
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:363
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:363
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:364
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:364
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:365
+#: ../../build/doc/pgRouting-concepts.rst:385
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:365
+#: ../../build/doc/pgRouting-concepts.rst:366
+#: ../../build/doc/pgRouting-concepts.rst:367
+#: ../../build/doc/pgRouting-concepts.rst:368
+#: ../../build/doc/pgRouting-concepts.rst:385
+#: ../../build/doc/pgRouting-concepts.rst:386
+#: ../../build/doc/pgRouting-concepts.rst:403
+#: ../../build/doc/pgRouting-concepts.rst:404
+#: ../../build/doc/pgRouting-concepts.rst:405
+#: ../../build/doc/pgRouting-concepts.rst:406
+#: ../../build/doc/pgRouting-concepts.rst:407
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:365
+#: ../../build/doc/pgRouting-concepts.rst:385
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:366
+#: ../../build/doc/pgRouting-concepts.rst:386
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:366
+#: ../../build/doc/pgRouting-concepts.rst:386
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:367
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:367
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:368
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:368
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:369
+#: ../../build/doc/pgRouting-concepts.rst:370
+#: ../../build/doc/pgRouting-concepts.rst:387
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:369
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:370
+#: ../../build/doc/pgRouting-concepts.rst:387
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:370
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:378
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:380
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:387
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:397
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:403
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:406
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:406
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:407
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:407
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:415
+msgid "Advanced Topics"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:423
+msgid "Routing Topology"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:427
+#: ../../build/doc/pgRouting-concepts.rst:528
+msgid "Overview"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:428
+msgid ""
+"Typically when GIS files are loaded into the data database for use with "
+"pgRouting they do not have topology information associated with them. To "
+"create a useful topology the data needs to be \"noded\". This means that "
+"where two or more roads form an intersection there it needs to be a node at "
+"the intersection and all the road segments need to be broken at the "
+"intersection, assuming that you can navigate from any of these segments to "
+"any other segment via that intersection."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:430
+msgid ""
+"You can use the :ref:`graph analysis functions <analytics>` to help you see "
+"where you might have topology problems in your data. If you need to node "
+"your data, we also have a function :ref:`pgr_nodeNetwork() "
+"<pgr_node_network>` that might work for you. This function splits ALL "
+"crossing segments and nodes them. There are some cases where this might NOT "
+"be the right thing to do."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:432
+msgid ""
+"For example, when you have an overpass and underpass intersection, you do "
+"not want these noded, but pgr_nodeNetwork does not know that is the case and"
+" will node them which is not good because then the router will be able to "
+"turn off the overpass onto the underpass like it was a flat 2D intersection."
+" To deal with this problem some data sets use z-levels at these types of "
+"intersections and other data might not node these intersection which would "
+"be ok."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:434
+msgid ""
+"For those cases where topology needs to be added the following functions may"
+" be useful. One way to prep the data for pgRouting is to add the following "
+"columns to your table and then populate them as appropriate. This example "
+"makes a lot of assumption like that you original data tables already has "
+"certain columns in it like ``one_way``, ``fcc``, and possibly others and "
+"that they contain specific data values. This is only to give you an idea of "
+"what you can do with your data."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:455
+msgid ""
+"The function :ref:`pgr_createTopology() <pgr_create_topology>` will create "
+"the ``vertices_tmp`` table and populate the ``source`` and ``target`` "
+"columns. The following example populated the remaining columns. In this "
+"example, the ``fcc`` column contains feature class code and the ``CASE`` "
+"statements converts it to an average speed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:518
+msgid ""
+"Now your database should be ready to use any (most?) of the pgRouting "
+"algorithms."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:524
+msgid "Graph Analytics"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:529
+msgid ""
+"It is common to find problems with graphs that have not been constructed "
+"fully noded or in graphs with z-levels at intersection that have been "
+"entered incorrectly. An other problem is one way streets that have been "
+"entered in the wrong direction. We can not detect errors with respect to "
+"\"ground\" truth, but we can look for inconsistencies and some anomalies in "
+"a graph and report them for additional inspections."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:531
+msgid ""
+"We do not current have any visualization tools for these problems, but I "
+"have used mapserver to render the graph and highlight potential problem "
+"areas. Someone familiar with graphviz might contribute tools for generating "
+"images with that."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:535
+msgid "Analyze a Graph"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:537
+msgid ""
+"With :ref:`pgr_analyze_graph` the graph can be checked for errors. For "
+"example for table \"mytab\" that has \"mytab_vertices_pgr\" as the vertices "
+"table:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:560
+msgid "In the vertices table \"mytab_vertices_pgr\":"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:562
+msgid "Deadends are identified by ``cnt=1``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:563
+msgid "Potencial gap problems are identified with ``chk=1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:581
+msgid ""
+"For isolated road segments, for example, a segment where both ends are "
+"deadends. you can find these with the following query:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:590
+msgid ""
+"If you want to visualize these on a graphic image, then you can use "
+"something like mapserver to render the edges and the vertices and style "
+"based on ``cnt`` or if they are isolated, etc. You can also do this with a "
+"tool like graphviz, or geoserver or other similar tools."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:594
+msgid "Analyze One Way Streets"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:596
+msgid ""
+":ref:`pgr_analyze_oneway` analyzes one way streets in a graph and identifies"
+" any flipped segments. Basically if you count the edges coming into a node "
+"and the edges exiting a node the number has to be greater than one."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:598
+msgid ""
+"This query will add two columns to the vertices_tmp table ``ein int`` and "
+"``eout int`` and populate it with the appropriate counts. After running this"
+" on a graph you can identify nodes with potential problems with the "
+"following query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:601
+msgid ""
+"The rules are defined as an array of text strings that if match the ``col`` "
+"value would be counted as true for the source or target in or out condition."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:605
+msgid "Example"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:607
+msgid ""
+"Lets assume we have a table \"st\" of edges and a column \"one_way\" that "
+"might have values like:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:609
+msgid "'FT'    - oneway from the source to the target node."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:610
+msgid "'TF'    - oneway from the target to the source node."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:611
+msgid "'B'     - two way street."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:612
+msgid "''      - empty field, assume twoway."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:613
+msgid "<NULL>  - NULL field, use two_way_if_null flag."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:615
+msgid ""
+"Then we could form the following query to analyze the oneway streets for "
+"errors."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:634
+msgid ""
+"Typically these problems are generated by a break in the network, the one "
+"way direction set wrong, maybe an error related to z-levels or a network "
+"that is not properly noded."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:636
+msgid ""
+"The above tools do not detect all network issues, but they will identify "
+"some common problems. There are other problems that are hard to detect "
+"because they are more global in nature like multiple disconnected networks. "
+"Think of an island with a road network that is not connected to the mainland"
+" network because the bridge or ferry routes are missing."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:644
+msgid "Performance Tips"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:651
+msgid "For the Routing functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:653
+msgid ""
+"To get faster results bound your queries to the area of interest of routing "
+"to have, for example, no more than one million rows."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:655
+msgid ""
+"Use an inner query SQL that does not include some edges in the routing "
+"function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:663
+msgid "Integrating the inner query to the pgRouting function:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:677
+msgid "For the topology functions:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:679
+msgid ""
+"When \"you know\" that you are going to remove a set of edges from the edges"
+" table, and without those edges you are going to use a routing function you "
+"can do the following:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:681
+msgid "Analize the new topology based on the actual topology:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:687
+msgid "Or create a new topology if the change is permanent:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:698
+msgid "How to contribute"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:701
+msgid "Wiki"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:702
+msgid ""
+"Edit an existing  `pgRouting Wiki "
+"<https://github.com/pgRouting/pgrouting/wiki>`_ page."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:703
+msgid "Or create a new Wiki page"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:705
+msgid ""
+"Create a page on the `pgRouting Wiki "
+"<https://github.com/pgRouting/pgrouting/wiki>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:706
+msgid "Give the title an appropriate name"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:709
+msgid ""
+"`Example <https://github.com/pgRouting/pgrouting/wiki/How-to:-Handle-"
+"parallel-edges-(KSP)>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:713
+msgid "Adding Functionaity to pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:714
+msgid ""
+"Consult the `developer's documentation "
+"<http://docs.pgrouting.org/doxy/2.4/index.html>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:719
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:720
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:721
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgRouting-installation.po b/locale/fr/LC_MESSAGES/pgRouting-installation.po
new file mode 100644
index 0000000..71b7f5f
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgRouting-installation.po
@@ -0,0 +1,418 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgRouting-installation.rst:13
+msgid "Installation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:16
+msgid "Table of Contents"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:17
+msgid ":ref:`install-short`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:18
+msgid ":ref:`install_get_sources`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:19
+msgid ":ref:`install_enable_db`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:20
+msgid ":ref:`install_dependencies`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:21
+msgid ":ref:`install_configuring`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:22
+msgid ":ref:`install_build`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:23
+msgid ":ref:`install_testing`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:25
+msgid ""
+"Instructions for downloading and installing binaries for different Operative"
+" systems instructions and additional notes and corrections not included in "
+"this documentation can be found in `Installation wiki "
+"<https://github.com/pgRouting/pgrouting/wiki/Notes-on-Download%2C-"
+"Installation-and-building-pgRouting>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:27
+msgid ""
+"To use pgRouting postGIS needs to be installed, please read the information "
+"about installation in this `Install Guide "
+"<http://www.postgis.us/presentations/postgis_install_guide_22.html>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:32
+msgid "Short Version"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:37
+msgid "Extracting the tar ball"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:44
+msgid "To compile assuming you have all the dependencies in your search path:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:54
+msgid ""
+"Once pgRouting is installed, it needs to be enabled in each individual "
+"database you want to use it in."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:66
+msgid "Get the sources"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:69
+msgid ""
+"The pgRouting latest release can be found in "
+"https://github.com/pgRouting/pgrouting/releases/latest"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:72
+msgid "wget"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:73
+msgid "To download this release:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:81
+msgid "Goto :ref:`install-short` to the extract and compile instructions."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:84
+msgid "git"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:85
+msgid "To download the repository"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:93
+msgid ""
+"Goto :ref:`install-short` to the compile instructions (there is no tar "
+"ball)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:100
+msgid "Enabling and upgrading in the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:103
+msgid "Enabling the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:104
+msgid ""
+"pgRouting is an extension and depends on postGIS. Enabling postGIS before "
+"enabling pgRouting in the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:113
+msgid "Upgrading the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:114
+msgid ""
+"To upgrade pgRouting in the database to version 2.4.0 use the following "
+"command:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:122
+msgid ""
+"More information can be found in "
+"https://www.postgresql.org/docs/current/static/sql-createextension.html"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:128
+msgid "Dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:131
+msgid "Compilation Dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:132
+msgid ""
+"To be able to compile pgRouting, make sure that the following dependencies "
+"are met:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:134
+msgid "C and C++0x compilers * g++ version >= 4.8"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:136
+msgid "Postgresql version >= 9.2"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:137
+msgid "PostGIS version >= 2.0"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:138
+msgid "The Boost Graph Library (BGL). Version >= 1.46"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:139
+msgid "CMake >= 2.8.8"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:140
+msgid "CGAL >=  4.2"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:144
+msgid "optional dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:145
+msgid "For user's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:147
+msgid "Sphinx >= 1.1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:148
+msgid "Latex"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:150
+msgid "For developer's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:152
+msgid "Doxygen >= 1.7"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:154
+msgid "For testing"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:156
+msgid "pgtap"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:157
+msgid "pg_prove"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:161
+msgid "Example: Installing dependencies on linux"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:162
+msgid "Installing the compilation dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:174
+msgid "Installing the optional dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:188
+msgid "Configuring"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:190
+msgid "pgRouting uses the `cmake` system to do the configuration."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:192
+msgid "The build directory is different from the source directory"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:194
+msgid "Create the build directory"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:201
+msgid "Configurable variables"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:205
+msgid "To see the variables that can be configured"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:213
+msgid "Configuring The Documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:214
+msgid ""
+"Most of the effort of the documentation has being on the HTML files. Some "
+"variables for the documentation:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:218
+msgid "Variable"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:218
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:218
+msgid "Comment"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:220
+msgid "WITH_DOC"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:220
+#: ../../build/doc/pgRouting-installation.rst:223
+#: ../../build/doc/pgRouting-installation.rst:224
+#: ../../build/doc/pgRouting-installation.rst:225
+msgid "BOOL=OFF"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:220
+msgid "Turn on/off building the documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:221
+msgid "BUILD_HTML"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:221
+#: ../../build/doc/pgRouting-installation.rst:222
+msgid "BOOL=ON"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:221
+msgid "If ON, turn on/off building HTML for user's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:222
+msgid "BUILD_DOXY"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:222
+msgid "If ON, turn on/off building HTML for developer's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:223
+msgid "BUILD_LATEX"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:223
+msgid "If ON, turn on/off building PDF"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:224
+msgid "BUILD_MAN"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:224
+msgid "If ON, turn on/off building MAN pages"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:225
+msgid "DOC_USE_BOOTSTRAP"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:225
+msgid "If ON, use sphinx-bootstrap for HTML pages of the users documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:228
+msgid "Configuring with documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:234
+msgid "Most of the effort of the documentation has being on the html files."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:240
+msgid "Building"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:242
+msgid "Using ``make`` to build the code and the documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:244
+msgid "The following instructions start from *path/to/pgrouting/build*"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:253
+msgid ""
+"We have tested on several platforms, For installing or reinstalling all the "
+"steps are needed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:255
+msgid "The sql signatures are configured and build in the ``cmake`` command."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:258
+msgid "MinGW on Windows"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:269
+msgid "Linux"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:270
+msgid "The following instructions start from *path/to/pgrouting*"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:280
+msgid "When the configuration changes:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:286
+msgid "and start the build process as mentioned above."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:291
+msgid "Testing"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:293
+msgid "Currently there is no :code:`make test` and testing is done as follows"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:295
+msgid "The following instructions start from *path/to/pgrouting/*"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:305
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:308
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:309
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:310
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgRouting-introduction.po b/locale/fr/LC_MESSAGES/pgRouting-introduction.po
new file mode 100644
index 0000000..2f5927b
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgRouting-introduction.po
@@ -0,0 +1,222 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgRouting-introduction.rst:13
+msgid "Introduction"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:15
+msgid ""
+"pgRouting is an extension of `PostGIS <http://postgis.net>`_ and `PostgreSQL"
+" <http://postgresql.org>`_ geospatial database and adds routing and other "
+"network analysis functionality. A predecessor of pgRouting – pgDijkstra, "
+"written by Sylvain Pasche from `Camptocamp <http://camptocamp.com>`_, was "
+"later extended by `Orkney <http://www.orkney.co.jp>`_ and renamed to "
+"pgRouting. The project is now supported and maintained by `Georepublic "
+"<http://georepublic.info>`_, `iMaptools <http://imaptools.com/>`__ and a "
+"broad user community."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:17
+msgid ""
+"pgRouting is an `OSGeo Labs <http://wiki.osgeo.org/wiki/OSGeo_Labs>`_ "
+"project of the `OSGeo Foundation <http://osgeo.org>`_ and included on `OSGeo"
+" Live <http://live.osgeo.org/>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:23
+msgid "License"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:25
+msgid "The following licenses can be found in pgRouting:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:30
+msgid "**License**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:32
+msgid "GNU General Public License, version 2"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:33
+msgid ""
+"Most features of pgRouting are available under `GNU General Public License, "
+"version 2 <http://www.gnu.org/licenses/gpl-2.0.html>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:34
+msgid "Boost Software License - Version 1.0"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:35
+msgid ""
+"Some Boost extensions are available under `Boost Software License - Version "
+"1.0 <http://www.boost.org/LICENSE_1_0.txt>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:36
+msgid "MIT-X License"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:37
+msgid ""
+"Some code contributed by iMaptools.com is available under MIT-X license."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:38
+msgid "Creative Commons Attribution-Share Alike 3.0 License"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:39
+msgid ""
+"The pgRouting Manual is licensed under a `Creative Commons Attribution-Share"
+" Alike 3.0 License <http://creativecommons.org/licenses/by-sa/3.0/>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:41
+msgid ""
+"In general license information should be included in the header of each "
+"source file."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:45
+msgid "Contributors"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:48
+msgid "This Release Contributors"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:51
+#: ../../build/doc/pgRouting-introduction.rst:71
+msgid "Individuals (in alphabetical order)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:53
+msgid "Maoguang Wang, Vidhan Jain, Virginia Vergara"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:55
+msgid ""
+"And all the people that give us a little of their time making comments, "
+"finding issues, making pull requests etc."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:58
+#: ../../build/doc/pgRouting-introduction.rst:76
+msgid "Corporate Sponsors (in alphabetical order)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:60
+#: ../../build/doc/pgRouting-introduction.rst:78
+msgid ""
+"These are corporate entities that have contributed developer time, hosting, "
+"or direct monetary funding to the pgRouting project:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:62
+msgid "`Georepublic <https://georepublic.info/en/>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:63
+msgid ""
+"`Google Summer of Code <https://developers.google.com/open-source/gsoc/>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:64
+msgid "`iMaptools <http://imaptools.com>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:65
+msgid "`Paragon Corporation <http://www.paragoncorporation.com/>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:68
+msgid "Contributors Past & Present:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:73
+msgid ""
+"Akio Takubo, Andrea Nardelli, Anton Patrushev, Ashraf Hossain, Christian "
+"Gonzalez, Daniel Kastl, Dave Potts, David Techer, Denis Rykov, Ema Miyawaki,"
+" Florian Thurkow, Frederic Junod, Gerald Fenoy, Jay Mahadeokar, Jinfu Leng, "
+"Kai Behncke, Kishore Kumar, Ko Nagase, Manikata Kondeti, Mario Basa, Martin "
+"Wiesenhaan,  Maxim Dubinin, Maoguang Wang, Mohamed Zia, Mukul Priya, Razequl"
+" Islam, Regina Obe, Rohith Reddy, Sarthak Agarwal, Stephen Woodbridge, "
+"Sylvain Housseman, Sylvain Pasche, Vidhan Jain, Virginia Vergara"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:80
+msgid "Camptocamp"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:81
+msgid "CSIS (University of Tokyo)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:82
+msgid "Georepublic"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:83
+msgid "Google Summer of Code"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:84
+msgid "iMaptools"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:85
+msgid "Orkney"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:86
+msgid "Paragon Corporation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:90
+msgid "More Information"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:92
+msgid ""
+"The latest software, documentation and news items are available at the "
+"pgRouting web site http://pgrouting.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:93
+msgid ""
+"PostgreSQL database server at the PostgreSQL main site "
+"http://www.postgresql.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:94
+msgid "PostGIS extension at the PostGIS project web site http://postgis.net."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:95
+msgid "Boost C++ source libraries at http://www.boost.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:96
+msgid ""
+"Computational Geometry Algorithms Library (CGAL) at http://www.cgal.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:97
+msgid ""
+"The Migration guide can be found at "
+"https://github.com/pgRouting/pgrouting/wiki/Migration-Guide."
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_KSP.po b/locale/fr/LC_MESSAGES/pgr_KSP.po
new file mode 100644
index 0000000..2ace271
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_KSP.po
@@ -0,0 +1,402 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_KSP.rst:13
+msgid "pgr_KSP"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:18
+msgid "``pgr_KSP`` — Returns the \"K\" shortest paths."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:27
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:28
+msgid "Signature change 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:32
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:34
+msgid ""
+"The K shortest path routing algorithm based on Yen's algorithm. \"K\" is the"
+" number of shortest paths desired."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:37
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:46
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:52
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:64
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:73
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_KSP.rst:83
+#: ../../build/doc/pgr_KSP.rst:103
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_KSP.rst:83
+#: ../../build/doc/pgr_KSP.rst:103
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_KSP.rst:83
+#: ../../build/doc/pgr_KSP.rst:103
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14 ../../build/doc/pgr_KSP.rst:110
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:80
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:85
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:85
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:85
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:86
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:86 ../../build/doc/pgr_KSP.rst:87
+#: ../../build/doc/pgr_KSP.rst:107 ../../build/doc/pgr_KSP.rst:108
+#: ../../build/doc/pgr_KSP.rst:109
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:86
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:87
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:87
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:88
+msgid "**k**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:88 ../../build/doc/pgr_KSP.rst:105
+#: ../../build/doc/pgr_KSP.rst:106
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:88
+msgid "The desiered number of paths."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:89
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:89 ../../build/doc/pgr_KSP.rst:90
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:89
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:90
+msgid "**heap_paths**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:90
+msgid ""
+"(optional). When ``true`` returns all the paths stored in the process heap. "
+"Default is ``false`` which only returns ``k`` paths."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:93
+msgid ""
+"Roughly, if the shortest path has ``N`` edges, the heap will contain about "
+"than ``N * k`` paths for small value of ``k`` and ``k > 1``."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:98
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:100
+msgid ""
+"Returns set of ``(seq, path_seq, path_id, node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:105
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:105
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:106
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:106
+msgid ""
+"Relative position in the path of ``node`` and ``edge``. Has value **1** for "
+"the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:107
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:107
+msgid ""
+"Path identifier. The ordering of the paths For two paths i, j if i < j then "
+"agg_cost(i) <= agg_cost(j)."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:108
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:108
+msgid "Identifier of the node in the path."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:109
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:109
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the route."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:110 ../../build/doc/pgr_KSP.rst:111
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:110
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:111
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:111
+msgid "Aggregate cost from ``start_vid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:115
+msgid ""
+"During the transition to 3.0, because pgr_ksp version 2.0 doesn't have "
+"defined a directed flag nor a heap_path flag, when pgr_ksp is used with only"
+" one flag version 2.0 signature will be used."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:119
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:122
+msgid "Examples to handle the one flag to choose signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:124 ../../build/doc/pgr_KSP.rst:134
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:132
+msgid ""
+"Examples for queries marked as ``directed`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:143
+msgid ""
+"Examples for queries marked as ``undirected`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:145
+msgid "The examples in this section use the following :ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:153
+msgid "Examples for queries marked as ``directed`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:155
+msgid "The examples in this section use the following :ref:`fig3`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:164
+msgid "Examples for queries marked as ``undirected`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:166
+msgid "The examples in this section use the following :ref:`fig4`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:173
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:175
+msgid "http://en.wikipedia.org/wiki/K_shortest_path_routing"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:176
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:179
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:180
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:181
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_TSP.po b/locale/fr/LC_MESSAGES/pgr_TSP.po
new file mode 100644
index 0000000..a9fecef
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_TSP.po
@@ -0,0 +1,224 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_TSP.rst:13
+msgid "pgr_TSP"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:18
+msgid "``pgr_TSP`` - Returns a route that visits all the nodes exactly once."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:21
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:22
+msgid "Signature changed 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:26
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:28
+msgid ""
+"The travelling salesman problem (TSP) or travelling salesperson problem asks"
+" the following question:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:30
+msgid ""
+"Given a list of cities and the distances between each pair of cities, what "
+"is the shortest possible route that visits each city exactly once and "
+"returns to the origin city?"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:32
+msgid ""
+"This implementation uses simulated annealing to return the approximate "
+"solution when the input is given in the form of matrix cell contents. The "
+"matrix information must be symmetrical."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:37
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:58
+msgid "Basic Use"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:67
+msgid ""
+"Because the documentation examples are auto generated and tested for non "
+"changing results, and the default is to have random execution, the example "
+"is wrapping the actual call."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:81
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:96
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:103
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:106
+msgid "Description of the Matrix Cell SQL query"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:109
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:109
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:109
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:111
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:111 ../../build/doc/pgr_TSP.rst:112
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:111
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:112
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:112
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:113
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:113
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:113
+msgid "Cost for going from start_vid to end_vid"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:116
+msgid "Can be Used with:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:118
+msgid ":ref:`pgr_dijkstraCostmatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:119
+msgid ":ref:`pgr_withPointsCostmatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:120
+msgid ":ref:`pgr_floydWarshall`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:121
+msgid ":ref:`pgr_johnson`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:123
+msgid "To generate a symmetric matrix"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:125
+msgid "directed := false."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:127
+msgid ""
+"If using directed := true, the resulting non symmetric matrix must be "
+"converted to symmetric by fixing the non symmetric values according to your "
+"application needs."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:145
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:147
+msgid "Using with points of interest."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:149
+msgid "To generate a symmetric matrix:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:151
+msgid ""
+"the **side** information of pointsOfInterset is ignored by not including it "
+"in the query"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:152
+msgid "and **directed := false**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:158
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:163
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:165
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:166
+msgid "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:167
+msgid "http://en.wikipedia.org/wiki/Simulated_annealing"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:170
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:171
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:172
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_aStar.po b/locale/fr/LC_MESSAGES/pgr_aStar.po
new file mode 100644
index 0000000..4e2ccb4
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_aStar.po
@@ -0,0 +1,642 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_aStar.rst:13
+msgid "pgr_aStar"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:18
+msgid "``pgr_aStar`` — Returns the shortest path using A* algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:26
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:27
+msgid "pgr_astar(one to one) 2.0.0, Signature changed 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:28
+msgid "pgr_astar(other signatures) 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:33
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:35
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:37
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:38
+msgid "Vertices of the graph are:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:40
+msgid "**positive** when it belongs to the edges_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:42
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:44
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:46
+msgid "The agg_cost the non included values (v, v) is 0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:48
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:50
+msgid "The agg_cost the non included values (u, v) is ∞"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:52
+msgid "When (x,y) coordinates for the same vertex identifier differ:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:54
+msgid "A random selection of the vertex's (x,y) coordinates is used."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:56
+msgid "Running time: :math:`O((E + V) * \\log V)`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:61
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:84
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:92
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:99
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:112
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:118
+msgid "Undirected using  Heuristic 2"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:130
+msgid "One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:139
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:138 ../../build/doc/pgr_aStar.rst:165
+#: ../../build/doc/pgr_aStar.rst:194
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:139 ../../build/doc/pgr_aStar.rst:166
+#: ../../build/doc/pgr_aStar.rst:195
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:141
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_astar` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:144
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_astar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:145
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:157
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:166
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:168
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_aStar` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:171
+msgid "The result is the union of the results of the one to one `pgr_aStar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:172 ../../build/doc/pgr_aStar.rst:201
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:186
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:195
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:197
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:200
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:203
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:217
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_aStar.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_aStar.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13 ../../build/doc/pgr_aStar.rst:234
+#: ../../build/doc/pgr_aStar.rst:235
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:228
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:231
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:233
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:233
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:233
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:234 ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:234
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:235 ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:235
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:236
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:236
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:236
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:238
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:239
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:241
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:241
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:241
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:243
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:244
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:245
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:246
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:247
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:248
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:250
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:250 ../../build/doc/pgr_aStar.rst:251
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:250
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:251
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:251
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:260
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:262
+msgid ":ref:`astar`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:263
+msgid ":doc:`sampledata`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:264
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:265
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:268
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:269
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:270
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_aStarCost.po b/locale/fr/LC_MESSAGES/pgr_aStarCost.po
new file mode 100644
index 0000000..41e1637
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_aStarCost.po
@@ -0,0 +1,528 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_aStarCost.rst:13
+msgid "pgr_aStarCost -- proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:18
+msgid ""
+"``pgr_aStarCost`` — Returns the aggregate cost shortest path using "
+":ref:`astar` algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:26
+msgid "Availability: 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:28
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:46
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:53
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:60
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:72
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:78
+msgid "Setting a Heuristic"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:90
+msgid "One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:99
+msgid ""
+"This signature finds a path from one ``start_vid`` to each ``end_vid`` in "
+"``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:98 ../../build/doc/pgr_aStarCost.rst:125
+#: ../../build/doc/pgr_aStarCost.rst:154
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:99 ../../build/doc/pgr_aStarCost.rst:126
+#: ../../build/doc/pgr_aStarCost.rst:155
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:101
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_astar` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:104
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_astar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:105
+msgid ""
+"The extra ``end_vid`` column in the result is used to distinguish to which "
+"path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:117
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:126
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:128
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_aStar` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:131
+msgid "The result is the union of the results of the one to one `pgr_aStar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:132
+msgid ""
+"The extra ``start_vid`` column  in the result is used to distinguish to "
+"which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:146
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:155
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:157
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:160
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:161
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:163
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:177
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCost.rst:191
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCost.rst:191
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_aStarCost.rst:194 ../../build/doc/pgr_aStarCost.rst:195
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:188
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:191
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:193
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:193
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:193
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:194
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:194
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:195
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:195
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:196
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:196
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:196
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:198
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:199
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:201
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:201
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:201
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:203
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:204
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:205
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:206
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:207
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:208
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:210
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:210 ../../build/doc/pgr_aStarCost.rst:211
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:210
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. See "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:211
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:211
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:224
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:226
+msgid ":ref:`astar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:227
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:228
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:229
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:232
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:233
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:234
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_aStarCostMatrix.po b/locale/fr/LC_MESSAGES/pgr_aStarCostMatrix.po
new file mode 100644
index 0000000..5193921
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_aStarCostMatrix.po
@@ -0,0 +1,457 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:13
+msgid "pgr_aStarCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:18
+msgid ""
+"``pgr_aStarCostMatrix`` - Calculates the a cost matrix using "
+":ref:`pgr_aStar`."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:33
+msgid "Availability: 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:37
+msgid "Using aStar algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:40
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:57
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:60
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:60
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:68
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:80
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:88
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:90
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:98
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:106
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:109
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:111
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:111
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:111
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:112
+msgid "**vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:112
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:112
+msgid "Array of vertices_identifiers."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:113
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:113
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:113
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:115
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:116
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:118
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:118
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:118
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:120
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:121
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:122
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:123
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:124
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:125
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:127
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:127
+#: ../../build/doc/pgr_aStarCostMatrix.rst:128
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:127
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:128
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:128
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:140
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:142
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:150
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:152
+msgid ":ref:`astar`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:153
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:154
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:155
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:158
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:159
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:160
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_alphaShape.po b/locale/fr/LC_MESSAGES/pgr_alphaShape.po
new file mode 100644
index 0000000..851cd18
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_alphaShape.po
@@ -0,0 +1,169 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_alphaShape.rst:13
+msgid "pgr_alphaShape"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:21
+msgid "``pgr_alphaShape`` — Core function for alpha shape computation."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:27
+msgid ""
+"Returns a table with (x, y) rows that describe the vertices of an alpha "
+"shape."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:35
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:37
+msgid ""
+"``text`` a SQL query, which should return a set of rows with the following "
+"columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:43
+msgid "``int4`` identifier of the vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:44
+msgid "``float8`` x-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:45
+msgid "``float8`` y-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:47
+msgid ""
+"(optional) ``float8`` alpha value. If specified alpha value equals 0 "
+"(default), then optimal alpha value is used. For more information, see `CGAL"
+" - 2D Alpha Shapes "
+"<http://doc.cgal.org/latest/Alpha_shapes_2/group__PkgAlphaShape2.html>`_."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:50
+msgid "Returns a vertex record for each row:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:52
+msgid "x-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:53
+msgid "y-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:55
+msgid ""
+"If a result includes multiple outer/inner rings, return those with separator"
+" row (x=NULL and y=NULL)."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:58
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:59
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:60
+msgid ""
+"Added alpha argument with default 0 (use optimal value) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:61
+msgid ""
+"Supported to return multiple outer/inner ring coordinates with separator row"
+" (x=NULL and y=NULL) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:64
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:65
+msgid ""
+"PgRouting's alpha shape implementation has no way to control the order of "
+"the output points, so the actual output might different for the same input "
+"data. The first query, has the output ordered, he second query shows an "
+"example usage:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:70
+msgid "Example: the (ordered) results"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:76
+msgid "Example: calculating the area"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:77
+msgid "Steps:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:79
+msgid "Calculates the alpha shape"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:80
+msgid "the :code:`ORDER BY` clause is not used."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:81
+msgid "constructs a polygon"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:82
+msgid "and computes the area"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:90
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:93
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:95
+msgid ":ref:`pgr_drivingDistance` - Driving Distance"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:96
+msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:99
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:100
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:101
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_analyzeGraph.po b/locale/fr/LC_MESSAGES/pgr_analyzeGraph.po
new file mode 100644
index 0000000..22237a6
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_analyzeGraph.po
@@ -0,0 +1,361 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_analyzeGraph.rst:13
+msgid "pgr_analyzeGraph"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:19
+msgid "``pgr_analyzeGraph`` — Analyzes the network topology."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:23
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:25
+#: ../../build/doc/pgr_analyzeGraph.rst:61
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:27
+#: ../../build/doc/pgr_analyzeGraph.rst:63
+msgid "``OK`` after the analysis has finished."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:28
+#: ../../build/doc/pgr_analyzeGraph.rst:69
+msgid "``FAIL`` when the analysis was not completed due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:43
+msgid "Prerequisites"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:44
+msgid ""
+"The  edge table to be analyzed must contain a source column and a target "
+"column filled with id's of the vertices of the segments and the "
+"corresponding vertices table <edge_table>_vertices_pgr that stores the "
+"vertices information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:46
+msgid ""
+"Use :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create the "
+"vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:47
+msgid ""
+"Use :ref:`pgr_createTopology <pgr_create_topology>` to create the topology "
+"and the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:50
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:51
+msgid "The analyze graph function accepts the following parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:53
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:54
+msgid ""
+"``float8`` Snapping tolerance of disconnected edges. (in projection unit)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:55
+msgid ""
+"``text``  Geometry column name of the network table. Default value is "
+"``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:56
+msgid ""
+"``text``  Primary key column name of the network table. Default value is "
+"``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:57
+msgid ""
+"``text`` Source column name of the network table. Default value is "
+"``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:58
+msgid ""
+"``text``  Target column name of the network table.  Default value is "
+"``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:59
+msgid ""
+"``text``   Condition to select  a subset or rows.  Default value is ``true``"
+" to indicate all rows."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:65
+msgid "Uses the vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:66
+msgid ""
+"Fills completely the ``cnt`` and ``chk`` columns of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:67
+msgid ""
+"Returns the analysis of the section of the network defined by  "
+"``rows_where``"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:71
+msgid "The vertices table is not found."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:72
+msgid ""
+"A required column of the Network table is not found or is not of the "
+"appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:73
+msgid "The condition is not well formed."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:74
+msgid "The names of source , target or id are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:75
+msgid "The SRID of the geometry could not be determined."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:79
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:80
+msgid ""
+"The vertices table can be created with :ref:`pgr_createVerticesTable "
+"<pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:82
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:84
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:85
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:86
+msgid "``integer``  Indicator that the vertex might have a problem."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:87
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:88
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:89
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:92
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:93
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:96
+msgid "Usage when the edge table's columns MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:99
+msgid "The simplest way to use pgr_analyzeGraph is:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:106
+msgid "When the arguments are given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:111
+msgid "We get the same result as the simplest way to use the function."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order: In this example, the column ``id`` of the table ``mytable`` is passed"
+" to the function as the geometry column, and the geometry column "
+"``the_geom`` is passed to the function as the id column."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:130
+#: ../../build/doc/pgr_analyzeGraph.rst:208
+msgid "When using the named notation"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:131
+#: ../../build/doc/pgr_analyzeGraph.rst:209
+msgid "The order of the parameters do not matter:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:141
+msgid ""
+"Parameters defined with a default value can be omitted, as long as the value"
+" matches the default:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:148
+#: ../../build/doc/pgr_analyzeGraph.rst:223
+msgid "Selecting rows using rows_where parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:149
+msgid ""
+"Selecting rows based on the id. Displays the analysis a the section of the "
+"network."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:155
+msgid ""
+"Selecting the rows where the geometry is near the geometry of row with "
+"``id`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:161
+msgid ""
+"Selecting the rows where the geometry is near the geometry of the row with "
+"``gid`` =100 of the table ``othertable``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:172
+msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:174
+msgid "For the following table"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:183
+msgid "Using positional notation:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:184
+msgid ""
+"The arguments need to be given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order: In this example, the column ``gid`` of the table ``mytable`` is "
+"passed to the function as the geometry column, and the geometry column "
+"``mygeom`` is passed to the function as the id column."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:219
+msgid ""
+"In this scenario omitting a parameter would create an error because the "
+"default values for the column names do not match the column names of the "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:224
+msgid "Selecting rows based on the id."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:234
+msgid ""
+"Selecting the rows WHERE the geometry is near the geometry of row with "
+"``id`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:246
+msgid ""
+"Selecting the rows WHERE the geometry is near the place='myhouse' of the "
+"table ``othertable``. (note the use of quote_literal)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:263
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:390
+msgid "The examples use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:394
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:396
+msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:397
+msgid ":ref:`pgr_analyze_oneway` to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:398
+msgid ""
+":ref:`pgr_createVerticesTable <pgr_create_vert_table>` to reconstruct the "
+"vertices table based on the source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:399
+msgid ""
+":ref:`pgr_nodeNetwork <pgr_node_network>` to create nodes to a not noded "
+"edge table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:402
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:403
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:404
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_analyzeOneWay.po b/locale/fr/LC_MESSAGES/pgr_analyzeOneWay.po
new file mode 100644
index 0000000..627da76
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_analyzeOneWay.po
@@ -0,0 +1,290 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:13
+msgid "pgr_analyzeOneway"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:19
+msgid ""
+"``pgr_analyzeOneway`` — Analyzes oneway Sstreets and identifies flipped "
+"segments."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:23
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:25
+msgid ""
+"This function analyzes oneway streets in a graph and identifies any flipped "
+"segments."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:42
+msgid ""
+"The analyses of one way segments is pretty simple but can be a powerful "
+"tools to identifying some the potential problems created by setting the "
+"direction of a segment the wrong way. A node is a `source` if it has edges "
+"the exit from that node and no edges enter that node. Conversely, a node is "
+"a `sink` if all edges enter the node but none exit that node. For a `source`"
+" type node it is logically impossible to exist because no vehicle can exit "
+"the node if no vehicle and enter the node. Likewise, if you had a `sink` "
+"node you would have an infinite number of vehicle piling up on this node "
+"because you can enter it but not leave it."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:44
+msgid ""
+"So why do we care if the are not feasible? Well if the direction of an edge "
+"was reversed by mistake we could generate exactly these conditions. Think "
+"about a divided highway and on the north bound lane one segment got entered "
+"wrong or maybe a sequence of multiple segments got entered wrong or maybe "
+"this happened on a round-about. The result would be potentially a `source` "
+"and/or a `sink` node."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:46
+msgid ""
+"So by counting the number of edges entering and exiting each node we can "
+"identify both `source` and `sink` nodes so that you can look at those areas "
+"of your network to make repairs and/or report the problem back to your data "
+"vendor."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:49
+msgid "Prerequisites"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:50
+msgid ""
+"The  edge table to be analyzed must contain a source column and a target "
+"column filled with id's of the vertices of the segments and the "
+"corresponding vertices table <edge_table>_vertices_pgr that stores the "
+"vertices information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:52
+msgid ""
+"Use :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create the "
+"vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:53
+msgid ""
+"Use :ref:`pgr_createTopology <pgr_create_topology>` to create the topology "
+"and the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:56
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:57
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:58
+msgid "``text[]`` source node **in** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:59
+msgid "``text[]`` source node **out** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:60
+msgid "``text[]`` target node **in** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:61
+msgid "``text[]`` target node **out** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:62
+msgid ""
+"``text`` oneway column name name of the network table. Default value is "
+"``oneway``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:63
+msgid ""
+"``text`` Source column name of the network table. Default value is "
+"``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:64
+msgid ""
+"``text``  Target column name of the network table.  Default value is "
+"``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:65
+msgid ""
+"``boolean`` flag to treat oneway NULL values as bi-directional.  Default "
+"value is ``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:67
+msgid ""
+"It is strongly recommended to use the named notation. See "
+":ref:`pgr_createVerticesTable <pgr_create_vert_table>` or "
+":ref:`pgr_createTopology <pgr_create_topology>` for examples."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:70
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:72
+msgid "``OK`` after the analysis has finished."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:74
+msgid "Uses the vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:75
+msgid ""
+"Fills completely the ``ein`` and ``eout`` columns of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:77
+msgid "``FAIL`` when the analysis was not completed due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:79
+msgid "The vertices table is not found."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:80
+msgid ""
+"A required column of the Network table is not found or is not of the "
+"appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:81
+msgid "The names of source , target or oneway are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:83
+msgid ""
+"The rules are defined as an array of text strings that if match the "
+"``oneway`` value would be counted as ``true`` for the source or target "
+"**in** or **out** condition."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:86
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:87
+msgid ""
+"The vertices table can be created with :ref:`pgr_createVerticesTable "
+"<pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:89
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:91
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:92
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex."
+" See :ref:`pgr_analyzeGgraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:93
+msgid ""
+"``integer``  Indicator that the vertex might have a problem. See "
+":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:94
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as incoming."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:95
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as outgoing."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:96
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:100
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:101
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:105
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:129
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:133
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:135
+msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:136
+msgid ":ref:`analytics` for an overview of the analysis of a graph."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:137
+msgid ""
+":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:138
+msgid ""
+":ref:`pgr_create_vert_table` to reconstruct the vertices table based on the "
+"source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:141
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:142
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:143
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_articulationPoints.po b/locale/fr/LC_MESSAGES/pgr_articulationPoints.po
new file mode 100644
index 0000000..225a3d6
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_articulationPoints.po
@@ -0,0 +1,316 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_articulationPoints.rst:13
+msgid "pgr_articulationPoints - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:16
+msgid ""
+"``pgr_articulationPoints`` - Return the articulation points of an undirected"
+" graph. In particular, the algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:22
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:30
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:32
+msgid ""
+"Those vertices that belong to more than one biconnected component are called"
+" articulation points or, equivalently, cut vertices. Articulation points are"
+" vertices whose removal would increase the number of connected components in"
+" the graph. This implementation can only be used with an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:39
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:41
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:43
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:45
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:47
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:62
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:75
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the return values for articulation points"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:91
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:93
+msgid "http://en.wikipedia.org/wiki/Biconnected_component"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:94
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:97
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:98
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:99
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_bdAstar.po b/locale/fr/LC_MESSAGES/pgr_bdAstar.po
new file mode 100644
index 0000000..fdfaa05
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_bdAstar.po
@@ -0,0 +1,669 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdAstar.rst:13
+msgid "pgr_bdAstar"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:18
+msgid "``pgr_bdAstar`` — Returns the shortest path using A* algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:26
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:27
+msgid "pgr_bdAstar(one to one) 2.0.0, Signature change on 2.5.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:28
+msgid "pgr_bdAstar(other signatures) 2.5.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:32
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:54
+msgid ""
+"Using these signatures, will load once the graph and perform several one to "
+"one `pgr_bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:56
+msgid ""
+"The result is the union of the results of the one to one `pgr_bdAStar`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:57
+msgid ""
+"The extra ``start_vid`` and/or ``end_vid`` in the result is used to "
+"distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:61
+msgid "Avaliability"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:62
+msgid "pgr_bdAstar(one to one) 2.0, signature change on 2.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:63
+msgid "pgr_bdAstar(other signatures) 2.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:68
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:76
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:87
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to the ``end_vid``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:84
+msgid "on a **directed** graph"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:85
+msgid "with **heuristic**'s value 5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:86
+msgid "with **factor**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:87
+msgid "with **epsilon**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:89
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:102
+msgid "pgr_bdAstar One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:111
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to the ``end_vid``"
+" allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:109
+msgid "**heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:110 ../../build/doc/pgr_bdAstar.rst:137
+#: ../../build/doc/pgr_bdAstar.rst:162 ../../build/doc/pgr_bdAstar.rst:186
+msgid "and/or **factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:111 ../../build/doc/pgr_bdAstar.rst:138
+#: ../../build/doc/pgr_bdAstar.rst:163 ../../build/doc/pgr_bdAstar.rst:187
+msgid "and/or **epsilon**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:114
+msgid ""
+"In the One to One signature, because of the deprecated signature existence, "
+"it is compulsory to indicate if the graph is **directed** or **undirected**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:116
+msgid "Directed using Heuristic 2"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:127
+msgid "pgr_bdAstar One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:139
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to each "
+"``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:135 ../../build/doc/pgr_bdAstar.rst:160
+#: ../../build/doc/pgr_bdAstar.rst:184
+msgid "if the graph is **directed** or **undirected**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:136 ../../build/doc/pgr_bdAstar.rst:161
+#: ../../build/doc/pgr_bdAstar.rst:185
+msgid "and/or **heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:141
+msgid "Directed using Heuristic 3 and a factor of 3.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:152
+msgid "pgr_bdAstar Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:163
+msgid ""
+"This usage finds the shortest path from each ``start_vid`` in ``start_vids``"
+" to the ``end_vid`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:165
+msgid "Undirected graph with Heuristic 4"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:176
+msgid "pgr_bdAstar Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:187
+msgid ""
+"This usage finds the shortest path from each ``start_vid`` in ``start_vids``"
+" to each ``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:189
+msgid "Directed graph with a factor of 0.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:196
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:10 ../../build/doc/bdAstar-family.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11 ../../build/doc/bdAstar-family.rst:13
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:16
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:21
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:22
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:23
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:24
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:25
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:26
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28 ../../build/doc/bdAstar-family.rst:29
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:213
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:215
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:216
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:217
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:218
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:221
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:222
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:223
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_bdAstarCost.po b/locale/fr/LC_MESSAGES/pgr_bdAstarCost.po
new file mode 100644
index 0000000..9b72e10
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_bdAstarCost.po
@@ -0,0 +1,594 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdAstarCost.rst:13
+msgid "pgr_bdAstarCost - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:18
+msgid "``pgr_bdAstarCost`` — Returns the shortest path using A* algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:26
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:32
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:46
+msgid ""
+"Using these signatures, will load once the graph and perform several one to "
+"one `pgr_bdAstarCost`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:48
+msgid ""
+"The result is the union of the results of the one to one `pgr_bdAstarCost`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:49
+msgid ""
+"The extra ``start_vid`` and/or ``end_vid`` in the result is used to "
+"distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:56
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:64
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:75
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to the ``end_vid``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:72
+msgid "on a **directed** graph"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:73
+msgid "with **heuristic**'s value 5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:74
+msgid "with **factor**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:75
+msgid "with **epsilon**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:77
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:90
+msgid "pgr_bdAstarCost One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:100
+#: ../../build/doc/pgr_bdAstarCost.rst:128
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to each "
+"``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:97
+#: ../../build/doc/pgr_bdAstarCost.rst:124
+#: ../../build/doc/pgr_bdAstarCost.rst:149
+#: ../../build/doc/pgr_bdAstarCost.rst:173
+msgid "if the graph is **directed** or **undirected**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:98
+msgid "**heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:99
+#: ../../build/doc/pgr_bdAstarCost.rst:126
+#: ../../build/doc/pgr_bdAstarCost.rst:151
+#: ../../build/doc/pgr_bdAstarCost.rst:175
+msgid "and/or **factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:100
+#: ../../build/doc/pgr_bdAstarCost.rst:127
+#: ../../build/doc/pgr_bdAstarCost.rst:152
+#: ../../build/doc/pgr_bdAstarCost.rst:176
+msgid "and/or **epsilon**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:103
+msgid ""
+"In the One to One signature, because of the deprecated signature existence, "
+"it is compulsory to indicate if the graph is **directed** or **undirected**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:105
+msgid "Directed using Heuristic 2"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:116
+msgid "pgr_bdAstarCost One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:125
+#: ../../build/doc/pgr_bdAstarCost.rst:150
+#: ../../build/doc/pgr_bdAstarCost.rst:174
+msgid "and/or **heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:130
+msgid "Directed using Heuristic 3 and a factor of 3.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:141
+msgid "pgr_bdAstarCost Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:152
+msgid ""
+"This usage finds the shortest path from each ``start_vid`` in ``start_vids``"
+" to the ``end_vid`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:154
+msgid "Undirected graph with Heuristic 4"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:165
+msgid "pgr_bdAstarCost Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:176
+msgid ""
+"This usage finds the shortest path from each ``start_vid`` in ``start_vids``"
+" to each ``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:178
+msgid "Directed graph with a factor of 0.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:185
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:10 ../../build/doc/bdAstar-family.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11 ../../build/doc/bdAstar-family.rst:13
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:16
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:21
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:22
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:23
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:24
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:25
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:26
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28 ../../build/doc/bdAstar-family.rst:29
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:202
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:204
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:205
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:206
+msgid ""
+"`Migration Guide <https://github.com/cvvergara/pgrouting/wiki/Migration-"
+"Guide#pgr_bdastar>`_"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:207
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:208
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:211
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:212
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:213
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_bdAstarCostMatrix.po b/locale/fr/LC_MESSAGES/pgr_bdAstarCostMatrix.po
new file mode 100644
index 0000000..c8738fa
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_bdAstarCostMatrix.po
@@ -0,0 +1,536 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:13
+msgid "pgr_bdAstarCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:18
+msgid ""
+"``pgr_bdAstarCostMatrix`` - Calculates the a cost matrix using "
+":ref:`pgr_bdAstar`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:27
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:35
+msgid "Using Dijkstra algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:38
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:49
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:55
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:68
+msgid ""
+"This usage calculates the cost from the each ``start_vid`` in ``start_vids``"
+" to  each ``start_vid`` in ``start_vids``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:64
+msgid "on a **directed** graph"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:65
+msgid "with **heuristic**'s value 5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:66
+msgid "with **factor**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:67
+msgid "with **epsilon**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:70
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:82
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:95
+msgid ""
+"This usage calculates the cost from the each ``start_vid`` in ``start_vids``"
+" to  each ``start_vid`` in ``start_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:91
+msgid "if the graph is **directed** or **undirected**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:92
+msgid "**heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:93
+msgid "and/or **factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:94
+msgid "and/or **epsilon**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:97
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:99
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:107
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:10 ../../build/doc/bdAstar-family.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11 ../../build/doc/bdAstar-family.rst:13
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:16
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:21
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:22
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:23
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:24
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:25
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:26
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28 ../../build/doc/bdAstar-family.rst:29
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:123
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:125
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:133
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:135
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:136
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:137
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:138
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:141
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:142
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:143
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_bdDijkstra.po b/locale/fr/LC_MESSAGES/pgr_bdDijkstra.po
new file mode 100644
index 0000000..b05e40f
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_bdDijkstra.po
@@ -0,0 +1,541 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdDijkstra.rst:13
+msgid "pgr_bdDijkstra"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:15
+msgid ""
+"``pgr_bdDijkstra`` — Returns the shortest path(s) using Bidirectional "
+"Dijkstra algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:23
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:24
+msgid "pgr_bdDijkstra(one to one) 2.0.0, Signature changed 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:25
+msgid "pgr_bdDijkstra(other signatures) 2.5.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:28
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:54
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:60
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:67
+msgid ""
+"The minimal signature is for a **directed** graph from one ``start_vid`` to "
+"one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:80
+msgid "pgr_bdDijkstra One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:87
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:89
+#: ../../build/doc/pgr_bdDijkstra.rst:112
+#: ../../build/doc/pgr_bdDijkstra.rst:141
+#: ../../build/doc/pgr_bdDijkstra.rst:170
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:90
+#: ../../build/doc/pgr_bdDijkstra.rst:113
+#: ../../build/doc/pgr_bdDijkstra.rst:142
+#: ../../build/doc/pgr_bdDijkstra.rst:171
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:103
+msgid "pgr_bdDijkstra One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:110
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:115
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_dijkstra` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:118
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:119
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:132
+msgid "pgr_bdDijkstra Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:139
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:144
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_dijkstra` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:147
+#: ../../build/doc/pgr_bdDijkstra.rst:176
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:148
+#: ../../build/doc/pgr_bdDijkstra.rst:177
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:161
+msgid "pgr_bdDijkstra Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:168
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:173
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:179
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:190
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10 ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11 ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:208
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:210
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:211
+msgid ":ref:`bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:212
+msgid ""
+"http://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/EPP%20shortest%20path%20algorithms.pdf"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:213
+msgid "https://en.wikipedia.org/wiki/Bidirectional_search"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:216
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:217
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:218
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_bdDijkstraCost.po b/locale/fr/LC_MESSAGES/pgr_bdDijkstraCost.po
new file mode 100644
index 0000000..0516529
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_bdDijkstraCost.po
@@ -0,0 +1,470 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:13
+msgid "pgr_bdDijkstraCost - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:15
+msgid ""
+"``pgr_bdDijkstraCost`` — Returns the shortest path(s)'s cost using "
+"Bidirectional Dijkstra algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:23
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:30
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:46
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:52
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:59
+msgid ""
+"The minimal signature is for a **directed** graph from one ``start_vid`` to "
+"one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:72
+msgid "pgr_bdDijkstraCost One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:81
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:80
+#: ../../build/doc/pgr_bdDijkstraCost.rst:102
+#: ../../build/doc/pgr_bdDijkstraCost.rst:130
+#: ../../build/doc/pgr_bdDijkstraCost.rst:158
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:81
+#: ../../build/doc/pgr_bdDijkstraCost.rst:103
+#: ../../build/doc/pgr_bdDijkstraCost.rst:131
+#: ../../build/doc/pgr_bdDijkstraCost.rst:159
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:94
+msgid "pgr_bdDijkstraCost One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:103
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:105
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_dijkstra` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:108
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:109
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:122
+msgid "pgr_bdDijkstraCost Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:131
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:133
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_dijkstra` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:136
+#: ../../build/doc/pgr_bdDijkstraCost.rst:164
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:137
+#: ../../build/doc/pgr_bdDijkstraCost.rst:165
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:150
+msgid "pgr_bdDijkstraCost Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:159
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:161
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:167
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:178
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10 ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11 ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:195
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:197
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:198
+msgid ":ref:`pgr_bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:199
+msgid ""
+"http://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/EPP%20shortest%20path%20algorithms.pdf"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:200
+msgid "https://en.wikipedia.org/wiki/Bidirectional_search"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:203
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:204
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:205
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_bdDijkstraCostMatrix.po b/locale/fr/LC_MESSAGES/pgr_bdDijkstraCostMatrix.po
new file mode 100644
index 0000000..0b0a2ae
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_bdDijkstraCostMatrix.po
@@ -0,0 +1,382 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:13
+msgid "pgr_bdDijkstraCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:18
+msgid ""
+"``pgr_bdDijkstraCostMatrix`` - Calculates the a cost matrix using "
+":ref:`pgr_bdDijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:27
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:35
+msgid "Using Dijkstra algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:38
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:49
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:55
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:58
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:58
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:66
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:78
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:86
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:88
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:96
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:108
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:108
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:105
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:108
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:110
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:110
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:110
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:111
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:111
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:111
+msgid "Array of identifiers of the vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:112
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:112
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:112
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:122
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:124
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:132
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:134
+msgid ":ref:`bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:135
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:136
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:137
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:140
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:141
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:142
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_biconnectedComponents.po b/locale/fr/LC_MESSAGES/pgr_biconnectedComponents.po
new file mode 100644
index 0000000..f4db188
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_biconnectedComponents.po
@@ -0,0 +1,349 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:13
+msgid "pgr_biconnectedComponents - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:15
+msgid ""
+"``pgr_biconnectedComponents`` — Return the biconnected components of an "
+"undirected graph. In particular, the algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:31
+msgid ""
+"The biconnected components of an undirected graph are the maximal subsets of"
+" vertices such that the removal of a vertex from particular component will "
+"not disconnect the component. Unlike connected components, vertices may "
+"belong to multiple biconnected components. Vertices can be present in "
+"multiple biconnected components, but each edge can only be contained in a "
+"single biconnected component. So, the output only has edge version."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:36
+msgid "This implementation can only be used with an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:39
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:41
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:43
+msgid "Components are described by edges"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:45
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:47
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:48
+msgid "`edge` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:50
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:53
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:65
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:78
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:14
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid ""
+"Description of the return values for biconnected components, connected "
+"components (edge version) and strongly connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, component, n_seq, edge)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid ""
+"Component identifier. It is equal to the minimum edge identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:94
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:96
+msgid "http://en.wikipedia.org/wiki/Biconnected_component"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:97
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:100
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:101
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:102
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_boykovKolmogorov.po b/locale/fr/LC_MESSAGES/pgr_boykovKolmogorov.po
new file mode 100644
index 0000000..84d76a4
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_boykovKolmogorov.po
@@ -0,0 +1,435 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:14
+msgid "pgr_boykovKolmogorov - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:18
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:20
+msgid ""
+"``pgr_boykovKolmogorov`` — Calculates the flow on the graph edges that "
+"maximizes the flow from the sources to the targets using Boykov Kolmogorov "
+"algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:29
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:30
+msgid "Renamed 2.5.0, Previous name pgr_maxFlowBoykovKolmogorov"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:31
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:8
+msgid ""
+"When the maximum flow is 0 then there is no flow and **EMPTY SET** is "
+"returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:12
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:15
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid ""
+"Creates a **super source** and edges to all the source(s), and a **super "
+"target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid ""
+"The maximum flow through the graph is guaranteed to be the value returned by"
+" :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and"
+" can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:42
+msgid "Running time: Polynomial"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:45
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:61
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:63
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:82
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:84
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:103
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:105
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:124
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:126
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:141
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:4
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10 ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11 ../../build/doc/pgr_maxFlow.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:12
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:159
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:161
+msgid ""
+":ref:`maxFlow`, :ref:`pgr_pushRelabel <pgr_pushRelabel>`, "
+":ref:`pgr_EdmondsKarp <pgr_edmondsKarp>`"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:162
+msgid "http://www.boost.org/libs/graph/doc/boykov_kolmogorov_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:165
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:166
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:167
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_bridges.po b/locale/fr/LC_MESSAGES/pgr_bridges.po
new file mode 100644
index 0000000..a80bf4e
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_bridges.po
@@ -0,0 +1,310 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bridges.rst:13
+msgid "pgr_bridges - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:16
+msgid "``pgr_bridges`` - Return the bridges of an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:31
+msgid ""
+"A bridge is an edge of an undirected graph whose deletion increases its "
+"number of connected components. This implementation can only be used with an"
+" undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:36
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:38
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:40
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:42
+msgid "`edge` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:44
+msgid "Running time: :math:`O(E * (V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:47
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:59
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:72
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the return values for bridges"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:88
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:90
+msgid "http://en.wikipedia.org/wiki/Bridge_%28graph_theory%29"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:91
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:94
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:95
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:96
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_connectedComponents.po b/locale/fr/LC_MESSAGES/pgr_connectedComponents.po
new file mode 100644
index 0000000..2474096
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_connectedComponents.po
@@ -0,0 +1,346 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_connectedComponents.rst:13
+msgid "pgr_connectedComponents - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:16
+msgid ""
+"``pgr_connectedComponents`` — Return the connected components of an "
+"undirected graph using a DFS-based approach. In particular, the algorithm "
+"implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:22
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:30
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:32
+msgid ""
+"A connected component of an undirected graph is a set of vertices that are "
+"all reachable from each other. This implementation can only be used with an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:37
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:39
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:41
+msgid "Components are described by vertices"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:43
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:45
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:46
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:48
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:63
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:76
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid ""
+"Description of the return values for connected components and strongly "
+"connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, component, n_seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid ""
+"Component identifier. It is equal to the minimum node identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:92
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:94
+msgid "http://en.wikipedia.org/wiki/Connected_component_%28graph_theory%29"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:95
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:98
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:99
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:100
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_contractGraph.po b/locale/fr/LC_MESSAGES/pgr_contractGraph.po
new file mode 100644
index 0000000..8d27664
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_contractGraph.po
@@ -0,0 +1,488 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_contractGraph.rst:13
+msgid "pgr_contractGraph - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:15
+msgid ""
+"``pgr_contractGraph`` — Performs graph contraction and returns the "
+"contracted vertices and edges."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:23
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:30
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:32
+msgid ""
+"Contraction reduces the size of the graph by removing some of the vertices "
+"and edges and, for example, might add edges that represent a sequence of "
+"original edges decreasing the total time and space used in graph algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:35
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:52
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:38
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:40
+msgid "There are two types of contraction methods used namely,"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:42
+msgid "Dead End Contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:43
+msgid "Linear Contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:45
+msgid "The values returned include the added edges and contracted vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:47
+msgid "The returned values are ordered as follows:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:49
+msgid "column `id` ascending when type = `v`"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:50
+msgid "column `id` descending when type = `e`"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:55
+msgid "Signature Summary:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:57
+msgid "The pgr_contractGraph function has the following signatures:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:68
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:74
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:80
+msgid "Making a dead end contraction and a linear contraction."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:87
+msgid "Complete signature"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:93
+msgid ""
+"Making a dead end contraction and a linear contraction and vertex 2 is "
+"forbidden from contraction"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_contractGraph.rst:109
+#: ../../build/doc/pgr_contractGraph.rst:130
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_contractGraph.rst:109
+#: ../../build/doc/pgr_contractGraph.rst:130
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_contractGraph.rst:109
+#: ../../build/doc/pgr_contractGraph.rst:130
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgr_contractGraph.rst:136
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_contractGraph.rst:146
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_contractGraph.rst:147
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_contractGraph.rst:148
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:106
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:111
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:111
+#: ../../build/doc/pgr_contractGraph.rst:133
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:111
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:112
+msgid "**contraction_order**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:112
+#: ../../build/doc/pgr_contractGraph.rst:115
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:113
+msgid "Ordered contraction operations."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:113
+msgid "1 = Dead end contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:114
+msgid "2 = Linear contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:115
+msgid "**forbidden_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:115
+msgid ""
+"(optional). Identifiers of vertices forbidden from contraction. Default is "
+"an empty array."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:116
+msgid "**max_cycles**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:116
+#: ../../build/doc/pgr_contractGraph.rst:132
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:116
+msgid ""
+"(optional). Number of times the contraction operations on "
+"`contraction_order` will be performed. Default is 1."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:117
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:117
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:117
+msgid "When ``true`` the graph is considered as `Directed`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:118
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:123
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:125
+msgid ""
+"RETURNS SETOF  (seq, type, id, contracted_vertices, source, target, cost)"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:127
+msgid "The function returns a single row. The columns of the row are:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:132
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:132
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:133
+msgid "**type**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:134
+msgid "Type of the `id`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:134
+msgid "'v' when `id` is an identifier of a vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:135
+msgid "'e' when `id` is an identifier of an edge."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:136
+#: ../../build/doc/pgr_contractGraph.rst:146
+#: ../../build/doc/pgr_contractGraph.rst:147
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:143
+msgid "Identifier of:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:137
+msgid "the  vertex when `type = 'v'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:139
+msgid "The vertex belongs to the edge_table passed as a parameter."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:140
+msgid "the edge when `type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:142
+msgid "The `id` is a decreasing sequence starting from **-1**."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:144
+msgid "Representing a pseudo `id` as is not incorporated into the edge_table."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:145
+msgid "**contracted_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:145
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:145
+msgid "Array of contracted vertex identifiers."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:146
+msgid ""
+"Identifier of the source vertex of the current edge `id`. Valid values when "
+"`type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:147
+msgid ""
+"Identifier of the target vertex of the current edge `id`. Valid values when "
+"`type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:148
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:148
+msgid ""
+"Weight of the edge (`source`, `target`). Valid values when `type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:152
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:154
+msgid "Only dead end contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:160
+msgid "Only linear contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:168
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:169
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:170
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_createTopology.po b/locale/fr/LC_MESSAGES/pgr_createTopology.po
new file mode 100644
index 0000000..44a282e
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_createTopology.po
@@ -0,0 +1,395 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_createTopology.rst:13
+msgid "pgr_createTopology"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:18
+msgid ""
+"``pgr_createTopology`` — Builds a network topology based on the geometry "
+"information."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:22
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:24
+#: ../../build/doc/pgr_createTopology.rst:72
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:26
+msgid ""
+"``OK`` after the network topology has been built and the vertices table "
+"created."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:27
+msgid "``FAIL`` when the network topology was not built due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:42
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:45
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:46
+msgid "The topology creation function accepts the following parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:48
+msgid "``text`` Network table name. (may contain the schema name AS well)"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:49
+msgid ""
+"``float8`` Snapping tolerance of disconnected edges. (in projection unit)"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:50
+msgid ""
+"``text``  Geometry column name of the network table. Default value is "
+"``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:51
+msgid ""
+"``text``  Primary key column name of the network table. Default value is "
+"``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:52
+msgid ""
+"``text`` Source column name of the network table. Default value is "
+"``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:53
+msgid ""
+"``text``  Target column name of the network table.  Default value is "
+"``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:54
+msgid ""
+"``text``   Condition to SELECT a subset or rows.  Default value is ``true`` "
+"to indicate all rows that where ``source`` or ``target`` have a null value, "
+"otherwise the condition is used."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:56
+msgid "``boolean`` Clean any previous topology.  Default value is ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:60
+msgid "The ``edge_table`` will be affected"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:62
+msgid "The ``source`` column values will change."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:63
+msgid "The ``target`` column values will change."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:65
+msgid ""
+"An index will be created, if it doesn't exists, to speed up the process to "
+"the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:67
+msgid "``id``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:68
+msgid "``the_geom``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:69
+msgid "``source``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:70
+msgid "``target``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:74
+msgid "``OK`` after the network topology has been built."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:76
+msgid "Creates a vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:77
+msgid "Fills ``id`` and ``the_geom`` columns of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:78
+msgid ""
+"Fills the source and target columns of the edge table referencing the ``id``"
+" of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:81
+msgid "``FAIL`` when the network topology was not built due to an error:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:83
+msgid ""
+"A required column of the Network table is not found or is not of the "
+"appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:84
+msgid "The condition is not well formed."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:85
+msgid "The names of source , target or id are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:86
+msgid "The SRID of the geometry could not be determined."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:90
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:91
+msgid ""
+"The vertices table is a requirement of the :ref:`pgr_analyzeGraph "
+"<pgr_analyze_graph>` and the :ref:`pgr_analyzeOneway <pgr_analyze_oneway>` "
+"functions."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:93
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:95
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:96
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex."
+" See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:97
+msgid ""
+"``integer``  Indicator that the vertex might have a problem. See "
+":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:98
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"AS incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:99
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"AS outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:100
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:103
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:104
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:107
+msgid "Usage when the edge table's columns MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:110
+msgid "The simplest way to use pgr_createTopology is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:118
+msgid "When the arguments are given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:119
+msgid "We get the same result AS the simplest way to use the function."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"In this example, the column ``id`` of the table ``ege_table`` is passed to "
+"the function as the geometry column,"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"and the geometry column ``the_geom`` is passed to the function as the id "
+"column."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:136
+#: ../../build/doc/pgr_createTopology.rst:205
+msgid "When using the named notation"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:137
+msgid ""
+"Parameters defined with a default value can be omitted, as long as the value"
+" matches the default And The order of the parameters would not matter."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:153
+#: ../../build/doc/pgr_createTopology.rst:219
+msgid "Selecting rows using rows_where parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:154
+msgid "Selecting rows based on the id."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:160
+msgid ""
+"Selecting the rows where the geometry is near the geometry of row with ``id "
+"= 5``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:166
+#: ../../build/doc/pgr_createTopology.rst:227
+msgid ""
+"Selecting the rows where the geometry is near the geometry of the row with "
+"``gid`` =100 of the table ``othertable``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:176
+msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:178
+msgid "For the following table"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:185
+msgid "Using positional notation:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:186
+msgid ""
+"The arguments need to be given in the order described in the parameters."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:188
+msgid ""
+"Note that this example uses clean flag. So it recreates the whole vertices "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropiriate "
+"order:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"In this example, the column ``gid`` of the table ``mytable`` is passed to "
+"the function AS the geometry column,"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"and the geometry column ``mygeom`` is passed to the function AS the id "
+"column."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:206
+msgid ""
+"In this scenario omitting a parameter would create an error because the "
+"default values for the column names do not match the column names of the "
+"table. The order of the parameters do not matter:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:220
+msgid "Based on id:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:235
+msgid "Examples with full output"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:237
+msgid ""
+"This example start a clean topology, with 5 edges, and then its incremented "
+"to the rest of the edges."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:243
+msgid "The example uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:247
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:249
+msgid ":ref:`topology` for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:250
+msgid ""
+":ref:`pgr_create_vert_table` to reconstruct the vertices table based on the "
+"source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:251
+msgid ""
+":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:254
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:255
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:256
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_createVerticesTable.po b/locale/fr/LC_MESSAGES/pgr_createVerticesTable.po
new file mode 100644
index 0000000..191059e
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_createVerticesTable.po
@@ -0,0 +1,341 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_createVerticesTable.rst:13
+msgid "pgr_createVerticesTable"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:18
+msgid ""
+"``pgr_createVerticesTable`` — Reconstructs the vertices table based on the "
+"source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:22
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:24
+#: ../../build/doc/pgr_createVerticesTable.rst:62
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:26
+#: ../../build/doc/pgr_createVerticesTable.rst:64
+msgid "``OK`` after the vertices table has been reconstructed."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:27
+#: ../../build/doc/pgr_createVerticesTable.rst:69
+msgid ""
+"``FAIL`` when the vertices table was not reconstructed due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:43
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:44
+msgid ""
+"The reconstruction of the vertices table  function accepts the following "
+"parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:46
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:47
+msgid ""
+"``text``  Geometry column name of the network table. Default value is "
+"``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:48
+msgid ""
+"``text`` Source column name of the network table. Default value is "
+"``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:49
+msgid ""
+"``text``  Target column name of the network table.  Default value is "
+"``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:50
+msgid ""
+"``text``   Condition to SELECT a subset or rows.  Default value is ``true`` "
+"to indicate all rows."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:54
+msgid "The ``edge_table`` will be affected"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:56
+msgid ""
+"An index will be created, if it doesn't exists, to speed up the process to "
+"the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:58
+msgid "``the_geom``"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:59
+msgid "``source``"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:60
+msgid "``target``"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:66
+msgid "Creates a vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:67
+msgid ""
+"Fills ``id`` and ``the_geom`` columns of the vertices table based on the "
+"source and target columns of the edge table."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:71
+msgid ""
+"A required column of the Network table is not found or is not of the "
+"appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:72
+msgid "The condition is not well formed."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:73
+msgid "The names of source, target are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:74
+msgid "The SRID of the geometry could not be determined."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:77
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:78
+msgid ""
+"The vertices table is a requierment of the :ref:`pgr_analyzeGraph "
+"<pgr_analyze_graph>` and the :ref:`pgr_analyzeOneway <pgr_analyze_oneway>` "
+"functions."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:80
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:82
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:83
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex."
+" See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:84
+msgid ""
+"``integer``  Indicator that the vertex might have a problem. See "
+":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:85
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:86
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:87
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:90
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:91
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:94
+msgid "Usage when the edge table's columns MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:97
+msgid "The simplest way to use pgr_createVerticesTable is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:104
+msgid "When the arguments are given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:109
+msgid "We get the same result as the simplest way to use the function."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:111
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order: In this example, the column source column ``source`` of the table "
+"``mytable`` is passed to the function as the geometry column, and the "
+"geometry column ``the_geom`` is passed to the function as the source column."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:128
+#: ../../build/doc/pgr_createVerticesTable.rst:205
+msgid "When using the named notation"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:129
+#: ../../build/doc/pgr_createVerticesTable.rst:206
+msgid "The order of the parameters do not matter:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:139
+msgid ""
+"Parameters defined with a default value can be omitted, as long as the value"
+" matches the default:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:146
+#: ../../build/doc/pgr_createVerticesTable.rst:220
+msgid "Selecting rows using rows_where parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:147
+msgid "Selecting rows based on the id."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:153
+msgid ""
+"Selecting the rows where the geometry is near the geometry of row with "
+"``id`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:159
+#: ../../build/doc/pgr_createVerticesTable.rst:243
+msgid ""
+"Selecting the rows where the geometry is near the geometry of the row with "
+"``gid`` =100 of the table ``othertable``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:170
+msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:172
+msgid "For the following table"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:180
+msgid "Using positional notation:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:181
+msgid ""
+"The arguments need to be given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order: In this example, the column ``src`` of the table ``mytable`` is "
+"passed to the function as the geometry column, and the geometry column "
+"``mygeom`` is passed to the function as the source column."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:216
+msgid ""
+"In this scenario omitting a parameter would create an error because the "
+"default values for the column names do not match the column names of the "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:221
+msgid "Selecting rows based on the gid."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:231
+msgid ""
+"Selecting the rows where the geometry is near the geometry of row with "
+"``gid`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:260
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:282
+msgid "The example uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:286
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:288
+msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:289
+msgid ""
+":ref:`pgr_createTopology <pgr_create_topology>` to create a topology based "
+"on the geometry."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:290
+msgid ""
+":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:291
+msgid ":ref:`pgr_analyze_oneway` to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:294
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:295
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:296
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_dijkstra.po b/locale/fr/LC_MESSAGES/pgr_dijkstra.po
new file mode 100644
index 0000000..45cbd10
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_dijkstra.po
@@ -0,0 +1,621 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid ""
+"``pgr_dijkstra`` — Returns the shortest path(s) using Dijkstra algorithm. In"
+" particular, the Dijkstra algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:24
+msgid "Availability"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:25
+msgid "pgr_dijkstra(one to one) 2.0.0, signature change 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:26
+msgid "pgr_dijkstra(other signatures) 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:31
+msgid ""
+"Dijkstra's algorithm, conceived by Dutch computer scientist Edsger Dijkstra "
+"in 1956. It is a graph search algorithm that solves the shortest path "
+"problem for a graph with non-negative edge path costs, producing a shortest "
+"path from a starting vertex (``start_vid``) to an ending vertex "
+"(``end_vid``). This implementation can be used with a directed graph and an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:38
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:60
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:41
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:42
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:44
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:46
+msgid "The `agg_cost` the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:48
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:50
+msgid "The `agg_cost` the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:52
+msgid ""
+"For optimization purposes, any duplicated value in the `start_vids` or "
+"`end_vids` are ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:54
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:56
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:57
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:59
+msgid "Running time: :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:63
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:78
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:84
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:91
+msgid ""
+"The minimal signature is for a **directed** graph from one ``start_vid`` to "
+"one ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:104
+msgid "pgr_dijkstra One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:114
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:113 ../../build/doc/pgr_dijkstra.rst:136
+#: ../../build/doc/pgr_dijkstra.rst:167 ../../build/doc/pgr_dijkstra.rst:197
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:114 ../../build/doc/pgr_dijkstra.rst:137
+#: ../../build/doc/pgr_dijkstra.rst:168 ../../build/doc/pgr_dijkstra.rst:198
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:127
+msgid "pgr_dijkstra One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:137
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:139
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_dijkstra` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:142
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:143
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:158
+msgid "pgr_dijkstra Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:168
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:170
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_dijkstra` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:173 ../../build/doc/pgr_dijkstra.rst:203
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:174 ../../build/doc/pgr_dijkstra.rst:204
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:188
+msgid "pgr_dijkstra Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:198
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:200
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:206
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:215
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:225
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:230
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:230
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:230
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:231 ../../build/doc/pgr_dijkstra.rst:233
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:231
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:232
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:232 ../../build/doc/pgr_dijkstra.rst:234
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:232
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:233
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:233
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:234
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:234
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:236
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:248
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:250
+msgid ""
+"The examples of this section are based on the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:252
+msgid ""
+"The examples include combinations from starting vertices 2 and 11 to ending "
+"vertices 3 and 5 in a directed and undirected graph with and with out "
+"reverse_cost."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:256
+msgid ""
+"Examples for queries marked as ``directed`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:258
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:267
+msgid ""
+"Examples for queries marked as ``undirected`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:269
+msgid "The examples in this section use the following :ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:277
+msgid "Examples for queries marked as ``directed`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:279
+msgid "The examples in this section use the following :ref:`fig3`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:287
+msgid "Examples for queries marked as ``undirected`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:289
+msgid "The examples in this section use the following :ref:`fig4`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:297
+msgid "Equvalences between signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:299
+msgid ""
+"For queries marked as ``directed`` with ``cost`` and ``reverse_cost`` "
+"columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:301 ../../build/doc/pgr_dijkstra.rst:313
+msgid "The examples in this section use the following:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:303
+msgid ":ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:311
+msgid ""
+"For queries marked as ``undirected`` with ``cost`` and ``reverse_cost`` "
+"columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:315
+msgid ":ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:324
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:326
+msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:327
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:330
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:331
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:332
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_dijkstraCost.po b/locale/fr/LC_MESSAGES/pgr_dijkstraCost.po
new file mode 100644
index 0000000..a9193fb
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_dijkstraCost.po
@@ -0,0 +1,473 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstraCost.rst:13
+msgid "pgr_dijkstraCost"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:17
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:19
+msgid "``pgr_dijkstraCost``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:21
+msgid ""
+"Using Dijkstra algorithm implemented by Boost.Graph, and extract only the "
+"aggregate cost of the shortest path(s) found, for the combination of "
+"vertices given."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:27
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:30
+msgid "Availability"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:31
+msgid "pgr_dijkstraCost(all signatures) 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:33
+msgid ""
+"The ``pgr_dijkstraCost`` algorithm, is a good choice to calculate the sum of"
+" the costs of the shortest path for a subset of pairs of nodes of the graph."
+" We make use of the Boost's implementation of dijkstra which runs in "
+":math:`O(V \\log V + E)` time."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:39
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:71
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:42
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:43
+msgid ""
+"Returns the sum of the costs of the shortest path for pair combination of "
+"nodes in the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:44
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:45
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:47
+msgid ""
+"The returned values are in the form of a set of `(start_vid, end_vid, "
+"agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:49
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:51
+msgid "The `agg_cost` int the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:53
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:55
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:57
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:60
+msgid "For undirected graphs, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:62
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:64
+msgid "Any duplicated value in the `start_vids` or `end_vids` is ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:66
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:68
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:69
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:71
+msgid "Running time: :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:74
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:89
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:95
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:97
+msgid ""
+"The minimal signature is for a **directed** graph from one ``start_vid`` to "
+"one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:106
+msgid "Example"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:117
+msgid "pgr_dijkstraCost One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:122
+msgid ""
+"This signature performs a Dijkstra from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:121
+#: ../../build/doc/pgr_dijkstraCost.rst:150
+#: ../../build/doc/pgr_dijkstraCost.rst:176
+#: ../../build/doc/pgr_dijkstraCost.rst:201
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:122
+#: ../../build/doc/pgr_dijkstraCost.rst:151
+#: ../../build/doc/pgr_dijkstraCost.rst:177
+#: ../../build/doc/pgr_dijkstraCost.rst:202
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:141
+msgid "pgr_dijkstraCost One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:152
+msgid ""
+"This signature performs a Dijkstra from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:167
+msgid "pgr_dijkstraCost Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:178
+msgid ""
+"This signature performs a Dijkstra from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:192
+msgid "pgr_dijkstraCost Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:202
+msgid ""
+"This signature performs a Dijkstra from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:213
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10 ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11 ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:229
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:231
+msgid "Demonstration of repeated values are ignored, and result is sorted."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:237
+msgid "Making `start_vids` the same as `end_vids`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:246
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:248
+msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:249
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:252
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:253
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:254
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_dijkstraCostMatrix.po b/locale/fr/LC_MESSAGES/pgr_dijkstraCostMatrix.po
new file mode 100644
index 0000000..95cf121
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_dijkstraCostMatrix.po
@@ -0,0 +1,358 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:13
+msgid "pgr_dijkstraCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:18
+msgid ""
+"``pgr_dijkstraCostMatrix`` - Calculates the a cost matrix using "
+"pgr_dijktras."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:29
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:32
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:34
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:36
+msgid "Using Dijkstra algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:39
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:56
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:59
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:59
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:67
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:79
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:87
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:89
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:97
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:106
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:109
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:111
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:111
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:111
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:112
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:112
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:112
+msgid "Array of identifiers of the vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:113
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:113
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:113
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:123
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:125
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:133
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:135
+msgid ":ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:136
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:137
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:138
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:141
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:142
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:143
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_dijkstraVia.po b/locale/fr/LC_MESSAGES/pgr_dijkstraVia.po
new file mode 100644
index 0000000..0a3c5f1
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_dijkstraVia.po
@@ -0,0 +1,480 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstraVia.rst:13
+msgid "pgr_dijkstraVia - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:19
+msgid ""
+"``pgr_dijkstraVia`` — Using dijkstra algorithm, it finds the route that goes"
+" through a list of vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:30
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:32
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:34
+msgid ""
+"Given a list of vertices and a graph, this function is equivalent to finding"
+" the shortest path between :math:`vertex_i` and :math:`vertex_{i+1}` for all"
+" :math:`i < size\\_of(vertex_via)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:37
+msgid "The paths represents the sections of the route."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:39
+msgid "This is a proposed function"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:42
+msgid "Signatrue Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:53
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:59
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:67
+msgid "Find the route that visits the vertices 1 3 9  in that order"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:77
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:86
+msgid ""
+"Find the route that visits the vertices 1 3 9  in that order on an "
+"undirected graph, avoiding U-turns when possible"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:94
+msgid "Description of the Signature"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:124
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:7
+#: ../../build/doc/pgr_dijkstraVia.rst:108
+#: ../../build/doc/pgr_dijkstraVia.rst:124
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:7
+#: ../../build/doc/pgr_dijkstraVia.rst:108
+#: ../../build/doc/pgr_dijkstraVia.rst:124
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_dijkstraVia.rst:133
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+#: ../../build/doc/pgr_dijkstraVia.rst:105
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:7
+#: ../../build/doc/pgr_dijkstraVia.rst:108
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:110
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:110
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:110
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgr_dijkstraVia.rst:111
+msgid "**via_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgr_dijkstraVia.rst:111
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Array of ordered vertices identifiers that are going to be visited."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgr_dijkstraVia.rst:112
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgr_dijkstraVia.rst:112
+#: ../../build/doc/pgr_dijkstraVia.rst:113
+#: ../../build/doc/pgr_dijkstraVia.rst:114
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_dijkstraVia.rst:113
+msgid "**strict**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``false``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "When ``false`` ignores missing paths returning all paths found"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "When ``true`` if a path is missing stops and returns `EMPTY SET`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgr_dijkstraVia.rst:114
+msgid "**U_turn_on_edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"When ``true`` departing from a visited vertex will not try to avoid using "
+"the edge used to reach it.  In other words, U turn using the edge with same "
+"`id` is allowed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When ``false`` when a departing from a visited vertex tries to avoid using "
+"the edge used to reach it.  In other words, U turn using the edge with same "
+"`id` is used when no other path is found."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:111
+msgid "Array of vertices identifiers"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:112
+#: ../../build/doc/pgr_dijkstraVia.rst:114
+msgid ""
+"(optional) Default is true (is directed). When set to false the graph is "
+"considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:113
+msgid ""
+"(optional) ignores if a subsection of the route is missing and returns "
+"everything it found Default is true (is directed). When set to false the "
+"graph is considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:119
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:121
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:126
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:126
+#: ../../build/doc/pgr_dijkstraVia.rst:127
+#: ../../build/doc/pgr_dijkstraVia.rst:128
+#: ../../build/doc/pgr_dijkstraVia.rst:129
+#: ../../build/doc/pgr_dijkstraVia.rst:130
+#: ../../build/doc/pgr_dijkstraVia.rst:131
+#: ../../build/doc/pgr_dijkstraVia.rst:132
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:126
+msgid "Sequential value starting from 1."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:127
+msgid "**path_pid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:127
+msgid "Identifier of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:128
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:128
+msgid "Sequential value starting from 1 for the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:129
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:129
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:130
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:130
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:131
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:131
+msgid "Identifier of the node in the path from start_vid to end_vid."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:132
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:132
+msgid ""
+"Identifier of the edge used to go from node to the next node in the path "
+"sequence. -1 for the last node of the path. -2 for the last node of the "
+"route."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:133
+#: ../../build/doc/pgr_dijkstraVia.rst:134
+#: ../../build/doc/pgr_dijkstraVia.rst:135
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:133
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the route "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:134
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:134
+msgid "Total cost from ``start_vid`` to ``end_vid`` of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:135
+msgid "**route_agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:135
+msgid ""
+"Total cost from ``start_vid`` of ``path_pid = 1`` to ``end_vid`` of the "
+"current ``path_pid`` ."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:140
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:142
+msgid "Find the route that visits the vertices 1 5 3 9 4 in that order"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:148
+msgid "What's the aggregate cost of the third path?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:154
+msgid ""
+"What's the route's aggregate cost of the route at the end of the third path?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:160
+msgid "How are the nodes visited in the route?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:166
+msgid ""
+"What are the aggregate costs of the route when the visited vertices are "
+"reached?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:172
+msgid ""
+"show the route's seq and aggregate cost and a status of \"passes in front\" "
+"or \"visits\" node 9"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:179
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:181
+msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:182
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:185
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:186
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:187
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_drivingDistance.po b/locale/fr/LC_MESSAGES/pgr_drivingDistance.po
new file mode 100644
index 0000000..77f7b8e
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_drivingDistance.po
@@ -0,0 +1,391 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_drivingDistance.rst:13
+msgid "pgr_drivingDistance"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:19
+msgid ""
+"``pgr_drivingDistance`` - Returns the driving distance from a start node."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:25
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:28
+msgid "Availability"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:29
+msgid "pgr_drivingDistance(single vertex) 2.0.0, signature change 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:30
+msgid "pgr_drivingDistance(multiple vertices) 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:35
+msgid ""
+"Using the Dijkstra algorithm, extracts all the nodes that have costs less "
+"than or equal to the value ``distance``. The edges extracted will conform to"
+" the corresponding spanning tree."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:39
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:57
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:70
+msgid "Driving Distance From A Single Starting Vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:82
+msgid "Driving Distance From Multiple Starting Vertices"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:90
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_drivingDistance.rst:101
+#: ../../build/doc/pgr_drivingDistance.rst:119
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_drivingDistance.rst:101
+#: ../../build/doc/pgr_drivingDistance.rst:119
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_drivingDistance.rst:101
+#: ../../build/doc/pgr_drivingDistance.rst:119
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_drivingDistance.rst:125
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:98
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:103
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:103
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:103
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:104
+#: ../../build/doc/pgr_drivingDistance.rst:122
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:104
+#: ../../build/doc/pgr_drivingDistance.rst:123
+#: ../../build/doc/pgr_drivingDistance.rst:124
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:104
+#: ../../build/doc/pgr_drivingDistance.rst:122
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:105
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:105
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:105
+msgid "Array of identifiers of the starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:106
+msgid "**distance**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:106
+#: ../../build/doc/pgr_drivingDistance.rst:125
+#: ../../build/doc/pgr_drivingDistance.rst:126
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:106
+msgid "Upper limit for the inclusion of the node in the result."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:107
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:107
+#: ../../build/doc/pgr_drivingDistance.rst:108
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:107
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:108
+msgid "**equicost**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:108
+msgid ""
+"(optional). When ``true`` the node will only appear in the closest "
+"``start_vid`` list.  Default is ``false`` which resembles several calls "
+"using the single starting point signatures. Tie brakes are arbitrary."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:114
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:116
+msgid "Returns set of ``(seq [, start_v], node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:121
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:121
+#: ../../build/doc/pgr_drivingDistance.rst:122
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:121
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:123
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:123
+msgid ""
+"Identifier of the node in the path within the limits from ``start_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:124
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:124
+msgid ""
+"Identifier of the edge used to arrive to ``node``. ``0`` when the ``node`` "
+"is the ``start_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:125
+msgid "Cost to traverse ``edge``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:126
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:126
+msgid "Aggregate cost from ``start_vid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:132
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:135
+msgid ""
+"Examples for queries marked as ``directed`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:137
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:144
+msgid ""
+"Examples for queries marked as ``undirected`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:146
+msgid "The examples in this section use the following :ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:154
+msgid "Examples for queries marked as ``directed`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:156
+msgid "The examples in this section use the following :ref:`fig3`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:165
+msgid "Examples for queries marked as ``undirected`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:167
+msgid "The examples in this section use the following :ref:`fig4`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:175
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:177
+msgid ":ref:`pgr_alphashape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:178
+msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:179
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:182
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:183
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:184
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_edgeDisjointPaths.po b/locale/fr/LC_MESSAGES/pgr_edgeDisjointPaths.po
new file mode 100644
index 0000000..54a0ffe
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_edgeDisjointPaths.po
@@ -0,0 +1,541 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:14
+msgid "pgr_edgeDisjointPaths - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:19
+msgid ""
+"``pgr_edgeDisjointPaths`` — Calculates edge disjoint paths between two "
+"groups of vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:25
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:28
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:36
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:38
+msgid ""
+"Calculates the edge disjoint paths between two groups of vertices. Utilizes "
+"underlying maximum flow algorithms to calculate the paths."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:42
+msgid "Characteristics:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:49
+msgid "The main characterics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:45
+msgid "Calculates the edge disjoint paths between any two groups of vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:46
+msgid ""
+"Returns EMPTY SET when source and destination are the same, or cannot be "
+"reached."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:47
+msgid "The graph can be directed or undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:48
+msgid "One to many, many to one, many to many versions are also supported."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:49
+msgid "Uses :ref:`pgr_boykovKolmogorov` to calculate the paths."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:52
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:67
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:73
+msgid "Minimal use"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:81
+msgid ""
+"The minimal use is for a **directed** graph from one ``start_vid`` to one "
+"``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:93
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:98
+msgid ""
+"This signature finds the set of dijoint paths from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:96
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:120
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:149
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:175
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:97
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:121
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:150
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:176
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:117
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:126
+msgid ""
+"This signature finds the sset of disjoint paths  from the ``start_vid`` to "
+"each one of the ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:122
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:151
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:177
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_edgeDisjointPaths`."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:123
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:146
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:152
+msgid ""
+"This signature finds the set of disjoint paths from each one of the "
+"``start_vid`` in ``start_vids`` to the ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:152
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:172
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:178
+msgid ""
+"This signature finds the set of disjoint paths from each one of the "
+"``start_vid`` in ``start_vids`` to each one of the ``end_vid`` in "
+"``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:178
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:195
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10 ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11 ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:212
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:214
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:217
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:218
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:219
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_edmondsKarp.po b/locale/fr/LC_MESSAGES/pgr_edmondsKarp.po
new file mode 100644
index 0000000..8523277
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_edmondsKarp.po
@@ -0,0 +1,438 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_edmondsKarp.rst:14
+msgid "pgr_edmondsKarp - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:18
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:20
+msgid ""
+"``pgr_edmondsKarp`` — Calculates the flow on the graph edges that maximizes "
+"the flow from the sources to the targets using Push Relabel Algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:29
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:30
+msgid "Renamed 2.5.0, Previous name pgr_maxFlowEdmondsKarp"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:31
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:8
+msgid ""
+"When the maximum flow is 0 then there is no flow and **EMPTY SET** is "
+"returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:12
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:15
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid ""
+"Creates a **super source** and edges to all the source(s), and a **super "
+"target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid ""
+"The maximum flow through the graph is guaranteed to be the value returned by"
+" :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and"
+" can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:42
+msgid "Running time: :math:`O( V * E ^ 2)`"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:45
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:62
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:64
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:83
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:85
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:104
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:106
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:125
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:127
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:142
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:4
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10 ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11 ../../build/doc/pgr_maxFlow.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:12
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:160
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:162
+msgid ""
+":ref:`maxFlow`, :ref:`pgr_boykovKolmogorov <pgr_boykovKolmogorov>`, "
+":ref:`pgr_PushRelabel <pgr_pushRelabel>`"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:163
+msgid "http://www.boost.org/libs/graph/doc/edmonds_karp_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:164
+msgid "https://en.wikipedia.org/wiki/Edmonds%E2%80%93Karp_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:167
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:168
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:169
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_eucledianTSP.po b/locale/fr/LC_MESSAGES/pgr_eucledianTSP.po
new file mode 100644
index 0000000..5b9be5e
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_eucledianTSP.po
@@ -0,0 +1,187 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_eucledianTSP.rst:13
+msgid "pgr_eucledianTSP"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:18
+msgid ""
+"``pgr_eucledianTSP`` - Returns a route that visits all the coordinates pairs"
+" exactly once."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:22
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:24
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:26
+msgid ""
+"The travelling salesman problem (TSP) or travelling salesperson problem asks"
+" the following question:"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:28
+msgid ""
+"Given a list of cities and the distances between each pair of cities, what "
+"is the shortest possible route that visits each city exactly once and "
+"returns to the origin city?"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:30
+msgid ""
+"This implementation uses simulated annealing to return the approximate "
+"solution when the input is given in the form of coordinates."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:33
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:48
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:54
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:63
+msgid ""
+"Because the documentation examples are auto generated and tested for non "
+"changing results, and the default is to have random execution, the example "
+"is wrapping the actual call."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:75
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:90
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:96
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:99
+msgid "Description of the coordinates SQL query"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:102
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:102
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:102
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:104
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:104
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:104
+msgid "Identifier of the coordinate. (optional)"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:105
+msgid "**x**"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:105
+#: ../../build/doc/pgr_eucledianTSP.rst:106
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:105
+msgid "X value of the coordinate."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:106
+msgid "**y**"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:106
+msgid "Y value of the coordinate."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:110
+msgid ""
+"When the value of **id** is not given then the coordinates will receive an "
+"**id** starting from 1, in the order given."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:125
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:127
+msgid "Skipping the Simulated Annealing & showing some process information"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:135
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:139
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:140
+msgid "New in version 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:145
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:147
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:148
+msgid "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:149
+msgid "http://en.wikipedia.org/wiki/Simulated_annealing"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:152
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:153
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:154
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_floydWarshall.po b/locale/fr/LC_MESSAGES/pgr_floydWarshall.po
new file mode 100644
index 0000000..4fe9ece
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_floydWarshall.po
@@ -0,0 +1,348 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_floydWarshall.rst:13
+msgid "pgr_floydWarshall"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:16
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:18
+msgid ""
+"``pgr_floydWarshall`` - Returns the sum of the costs of the shortest path "
+"for each pair of nodes in the graph using Floyd-Warshall algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:27
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:28
+msgid "Renamed on 2.2.0, previous name pgr_apspWarshall"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:31
+msgid ""
+"The Floyd-Warshall algorithm, also known as Floyd's algorithm, is a good "
+"choice to calculate the sum of the costs of the shortest path for each pair "
+"of nodes in the graph, for *dense graphs*. We make use of the  Boost's "
+"implementation which runs in :math:`\\Theta(V^3)` time,"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:38
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:58
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:41
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:42
+msgid ""
+"Returns the sum of the costs of the shortest path for each pair of nodes in "
+"the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:43
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:44
+msgid ""
+"Boost returns a :math:`V \\times V` matrix, where the infinity values. "
+"Represent the distance between vertices for which there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:47
+msgid ""
+"We return only the non infinity values in form of a set of `(start_vid, "
+"end_vid, agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:49
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:52
+msgid "For the undirected graph, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:54
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:56
+msgid "When  `start_vid` = `end_vid`, the `agg_cost` = 0."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:58
+msgid "**Recommended, use a bounding box of no more than 3500 edges.**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:61
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:70
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:77
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:84
+msgid "On a directed graph."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:95
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:103
+msgid "On an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:110
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query (id is not necessary)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_floydWarshall.rst:136
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_floydWarshall.rst:123
+#: ../../build/doc/pgr_floydWarshall.rst:136
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_floydWarshall.rst:123
+#: ../../build/doc/pgr_floydWarshall.rst:136
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:118
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:120
+msgid "Receives  ``(edges_sql, directed)``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:123
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:125
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:125
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:125
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:126
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:126
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:126
+msgid ""
+"(optional) Default is true (is directed). When set to false the graph is "
+"considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:131
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:133
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:138
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:138
+#: ../../build/doc/pgr_floydWarshall.rst:139
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:138
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:139
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:139
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:140
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:140
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:140
+msgid "Total cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:148
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:149
+msgid "Re-design of pgr_apspWarshall in Version 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:152
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:154
+msgid ":ref:`pgr_johnson`"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:155
+msgid ""
+"`Boost floyd-Warshall "
+"<http://www.boost.org/libs/graph/doc/floyd_warshall_shortest.html>`_ "
+"algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:156
+msgid "Queries uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:159
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:160
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:161
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_gsoc_vrppdtw.po b/locale/fr/LC_MESSAGES/pgr_gsoc_vrppdtw.po
new file mode 100644
index 0000000..7705842
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_gsoc_vrppdtw.po
@@ -0,0 +1,358 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:13
+msgid "pgr_gsoc_vrppdtw - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:19
+msgid ""
+"``pgr_gsoc_vrppdtw`` — Returns a solution for `Pick and Delivery` with `time"
+" windows` Vehicle Routing Problem"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:27
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:36
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:43
+msgid "Complete signature"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:52
+msgid "Example: Show the id1"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:59
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:62
+msgid "Description of the sql query"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:65
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:89
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:102
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:65
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:89
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:102
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:65
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:89
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:102
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:67
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:67
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:81
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:82
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:67
+msgid "Identifier of the customer."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:69
+msgid "A value of ``0`` identifies the starting location"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:71
+msgid "**x**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:71
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:72
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:73
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:78
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:79
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:80
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:71
+msgid "``X`` coordinate of the location."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:72
+msgid "**y**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:72
+msgid "``Y`` coordinate of the location."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:73
+msgid "**demand**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:73
+msgid "How much is added / removed from the vehicle."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:75
+msgid "Negative value is a delivery,"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:76
+msgid "Positive value is a pickup,"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:78
+msgid "**openTime**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:78
+msgid "The time relative to 0, when the customer opens."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:79
+msgid "**closeTime**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:79
+msgid "The time relative to 0, when the customer closes."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:80
+msgid "**serviceTime**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:80
+msgid "The duration of the loading / unloading."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:81
+msgid "**pIndex**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:81
+msgid ""
+"Value used when the current customer is a Delivery to find the corresponding"
+" Pickup"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:82
+msgid "**dIndex**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:82
+msgid ""
+"Value used when the current customer is a Pickup to find the corresponding "
+"Delivery"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:86
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:91
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:91
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:91
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:92
+msgid "**vehicle_num**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:92
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:93
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:104
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:105
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:106
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:92
+msgid "Maximum number of vehicles in the result. (currently is ignored)"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:93
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:93
+msgid "Capacity of the vehicle."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:97
+msgid "Description of the result"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:99
+msgid "RETURNS SET OF pgr_costResult[]:"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:104
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:104
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:105
+msgid "**id1**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:105
+msgid "Current vehicle identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:106
+msgid "**id2**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:106
+msgid "Customer identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:107
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:107
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:107
+msgid ""
+"Previous ``cost`` plus `travel time` plus `wait time` plus `service time`."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:108
+msgid ""
+"when ``id2 = 0`` for the second time for the same ``id1``, then has the "
+"total time for the current ``id1``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:114
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:117
+msgid "Example: Total number of rows returned"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:123
+msgid "Example: Results for only id1 values: 1, 5, and 9"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:130
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:132
+msgid "The examples use :ref:`pickDeliverData`"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:133
+msgid "http://en.wikipedia.org/wiki/Vehicle_routing_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:136
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:137
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:138
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_johnson.po b/locale/fr/LC_MESSAGES/pgr_johnson.po
new file mode 100644
index 0000000..d0ef00b
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_johnson.po
@@ -0,0 +1,341 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_johnson.rst:13
+msgid "pgr_johnson"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:16
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:18
+msgid ""
+"``pgr_johnson`` - Returns the sum of the costs of the shortest path for each"
+" pair of nodes in the graph using Floyd-Warshall algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:27
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:28
+msgid "Renamed on 2.2.0, previous name pgr_apspJohnson"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:31
+msgid ""
+"The Johnson algorithm, is a good choice to calculate the sum of the costs of"
+" the shortest path for each pair of nodes in the graph, for *sparse graphs*."
+" It usees the Boost's implementation which runs in :math:`O(V E \\log V)` "
+"time,"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:37
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:57
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:40
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:41
+msgid ""
+"Returns the sum of the costs of the shortest path for each pair of nodes in "
+"the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:42
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:43
+msgid ""
+"Boost returns a :math:`V \\times V` matrix, where the infinity values. "
+"Represent the distance between vertices for which there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:46
+msgid ""
+"We return only the non infinity values in form of a set of `(start_vid, "
+"end_vid, agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:48
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:51
+msgid "For the undirected graph, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:53
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:55
+msgid "When  `start_vid` = `end_vid`, the `agg_cost` = 0."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:60
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:69
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:76
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:83
+msgid "On a directed graph."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:94
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:102
+msgid "On an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:109
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query (id is not necessary)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_johnson.rst:135
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_johnson.rst:122 ../../build/doc/pgr_johnson.rst:135
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_johnson.rst:122 ../../build/doc/pgr_johnson.rst:135
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:117
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:119
+msgid "Receives  ``(edges_sql, directed)``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:122
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:124
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:124
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:124
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:125
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:125
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:125
+msgid ""
+"(optional) Default is true (is directed). When set to false the graph is "
+"considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:130
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:132
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:137
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:137 ../../build/doc/pgr_johnson.rst:138
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:137
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:138
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:138
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:139
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:139
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:139
+msgid "Total cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:147
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:148
+msgid "Re-design of pgr_apspJohnson in Version 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:151
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:153
+msgid ":ref:`pgr_floydWarshall`"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:154
+msgid ""
+"`Boost Johnson "
+"<http://www.boost.org/libs/graph/doc/johnson_all_pairs_shortest.html>`_ "
+"algorithm implementation."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:155
+msgid "Queries uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:158
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:159
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:160
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_labelGraph.po b/locale/fr/LC_MESSAGES/pgr_labelGraph.po
new file mode 100644
index 0000000..e5d6532
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_labelGraph.po
@@ -0,0 +1,233 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_labelGraph.rst:15
+msgid "pgr_labelGraph - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:18
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:20
+msgid ""
+"``pgr_labelGraph`` — Locates and labels sub-networks within a network which "
+"are not topologically connected."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:28
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:30
+msgid ""
+"Must be run after ``pgr_createTopology()``. No use of ``geometry`` column. "
+"Only ``id``, ``source`` and  ``target`` columns are required."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:32
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:34
+msgid ""
+"``OK`` when a column with provided name has been generated and populated "
+"successfully. All connected edges will have unique similar integer values. "
+"In case of ``rows_where`` condition, non participating rows will have -1 "
+"integer values."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:35
+msgid ""
+"``FAIL`` when the processing cannot be finished due to some error. Notice "
+"will be thrown accordingly."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:36
+msgid ""
+"``rows_where condition generated 0 rows`` when passed SQL condition has not "
+"been fulfilled by any row."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:48
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:50
+msgid ""
+"A network behind any routing query may consist of sub-networks completely "
+"isolated from each other. Possible reasons could be:"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:52
+msgid "An island with no bridge connecting to the mainland."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:53
+msgid ""
+"An edge or mesh of edges failed to connect to other networks because of "
+"human negligence during data generation."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:54
+msgid "The data is not properly noded."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:55
+msgid "Topology creation failed to succeed."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:57
+msgid ""
+"pgr_labelGraph() will create an integer column (with the name provided by "
+"the user) and will assign same integer values to all those edges in the "
+"network which are connected topologically. Thus better analysis regarding "
+"network structure is possible. In case of ``rows_where`` condition, non "
+"participating rows will have -1 integer values."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:59
+msgid ""
+"Prerequisites: Must run ``pgr_createTopology()`` in order to generate "
+"``source`` and ``target`` columns. Primary key column ``id`` should also be "
+"there in the network table."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:62
+msgid "Function accepts the following parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:64
+msgid "``text`` Network table name, with optional schema name."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:65
+msgid ""
+"``text`` Primary key column name of the network table. Default is ``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:66
+msgid ""
+"``text`` Source column name generated after ``pgr_createTopology()``. "
+"Default is ``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:67
+msgid ""
+"``text`` Target column name generated after ``pgr_createTopology()``. "
+"Default is ``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:68
+msgid ""
+"``text`` Column name which will hold the integer labels for each sub-graph. "
+"Default is ``subgraph``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:69
+msgid ""
+"``text`` The SQL where condition. Default is ``true``, means the processing "
+"will be done on the whole table."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:75
+msgid "Example Usage"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:77
+msgid "The sample data, has 3 subgraphs."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:85
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:87
+msgid ""
+"`pgr_createTopology "
+"<https://github.com/Zia-/pgrouting/blob/develop/src/common/sql/pgrouting_topology.sql>`_"
+" to create the topology of a table based on its geometry and tolerance "
+"value."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:90
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:91
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:92
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_lineGraph.po b/locale/fr/LC_MESSAGES/pgr_lineGraph.po
new file mode 100644
index 0000000..7b69209
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_lineGraph.po
@@ -0,0 +1,387 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_lineGraph.rst:13
+msgid "pgr_lineGraph - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:15
+msgid ""
+"``pgr_lineGraph`` — Transforms a given graph into its corresponding edge-"
+"based graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:31
+msgid "Given a graph G, its line graph L(G) is a graph such that:-"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:33
+msgid "each vertex of L(G) represents an edge of G"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:34
+msgid ""
+"two vertices of L(G) are adjacent if and only if their corresponding edges "
+"share a common endpoint in G."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:36
+msgid ""
+"The following figures show a graph (left, with blue vertices) and its Line "
+"Graph (right, with green vertices)."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:39
+msgid "|first|"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:45
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:55
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:61
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:68
+msgid "The minimal signature is for a **directed** graph:"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:81
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:90
+msgid "This signature returns the Line Graph of the current graph:"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:89
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:90
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:101
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_lineGraph.rst:112 ../../build/doc/pgr_lineGraph.rst:125
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_lineGraph.rst:112 ../../build/doc/pgr_lineGraph.rst:125
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_lineGraph.rst:112 ../../build/doc/pgr_lineGraph.rst:125
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_lineGraph.rst:129
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_lineGraph.rst:133
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_lineGraph.rst:137
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_lineGraph.rst:141
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:109
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:114
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:114
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:114
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:115
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:115
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:115
+msgid "When ``true`` the graph is considered as `Directed`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:116
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:120
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:122
+msgid "RETURNS SETOF  (seq, source, target, cost, reverse_cost)"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:127
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:127
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:127
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:129 ../../build/doc/pgr_lineGraph.rst:133
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:129
+msgid "Identifier of the source vertex of the current edge `id`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:131
+msgid "When `negative`: the source is the reverse edge in the original graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:133
+msgid "Identifier of the target vertex of the current edge `id`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:135
+msgid "When `negative`: the target is the reverse edge in the original graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:137 ../../build/doc/pgr_lineGraph.rst:141
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:137
+msgid "Weight of the edge (`source`, `target`)."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:139
+msgid ""
+"When `negative`: edge (`source`, `target`) does not exist, therefore it’s "
+"not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:141
+msgid "Weight of the edge (`target`, `source`)."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:143
+msgid ""
+"When `negative`: edge (`target`, `source`) does not exist, therefore it’s "
+"not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:147
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:154
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:156
+msgid "https://en.wikipedia.org/wiki/Line_graph"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:157
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:160
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:161
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:162
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_maxCardinalityMatch.po b/locale/fr/LC_MESSAGES/pgr_maxCardinalityMatch.po
new file mode 100644
index 0000000..4c6c884
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_maxCardinalityMatch.po
@@ -0,0 +1,357 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:13
+msgid "pgr_maxCardinalityMatch - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:17
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:19
+msgid ""
+"``pgr_maxCardinalityMatch`` — Calculates a maximum cardinality matching in a"
+" graph."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:29
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:32
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:33
+msgid "Renamed 2.5.0, Previous name pgr_maximumCardinalityMatching"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:34
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:38
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:39
+msgid ""
+"A matching or independent edge set in a graph is a set of edges without "
+"common vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:40
+msgid ""
+"A maximum matching is a matching that contains the largest possible number "
+"of edges."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:42
+msgid "There may be many maximum matchings."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:43
+msgid "Calculates **one** possible maximum cardinality matching in a graph."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:45
+msgid "The graph can be **directed** or **undirected**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:46
+msgid "Running time: :math:`O( E*V * \\alpha(E,V))`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:48
+msgid ":math:`\\alpha(E,V)` is the inverse of the `Ackermann function`_."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:54
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:71
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:78
+msgid ""
+"The minimal use calculates one possible maximum cardinality matching on a "
+"**directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:90
+msgid "Complete signature"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:98
+msgid ""
+"The complete signature calculates one possible maximum cardinality matching."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:109
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:113
+msgid "Description of the SQL query"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:115
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:118
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:136
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:146
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:118
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:136
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:146
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:118
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:136
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:146
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:120
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:120
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:121
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:122
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:120
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:121
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:150
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:121
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:122
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:151
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:122
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:123
+msgid "**going**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:123
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:124
+msgid "``ANY-NUMERIC``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:123
+msgid ""
+"A positive value represents the existence of the edge (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:124
+msgid "**coming**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:124
+msgid ""
+"A positive value represents the existence of the edge (target, source)."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:127
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:129
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:130
+msgid "SMALLINT, INTEGER, BIGINT, REAL, DOUBLE PRECISION"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:133
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:138
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:138
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:138
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:139
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:139
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:139
+msgid "(optional) Determines the type of the graph. Default TRUE."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:143
+msgid "Description of the Result"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:148
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:148
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:148
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:149
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:149
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:150
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:151
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:149
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:150
+msgid "Identifier of the first end point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:151
+msgid "Identifier of the second end point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:155
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:157
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:158
+msgid "http://www.boost.org/libs/graph/doc/maximum_matching.html"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:159
+msgid "https://en.wikipedia.org/wiki/Matching_%28graph_theory%29"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:160
+msgid "https://en.wikipedia.org/wiki/Ackermann_function"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:163
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:164
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:165
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_maxFlow.po b/locale/fr/LC_MESSAGES/pgr_maxFlow.po
new file mode 100644
index 0000000..0327a6f
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_maxFlow.po
@@ -0,0 +1,354 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "pgr_maxFlow - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:17
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:19
+msgid ""
+"``pgr_maxFlow`` — Calculates the maximum flow in a directed graph from the "
+"source(s) to the targets(s) using the Push Relabel algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:25
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:28
+msgid "Availability: 2.4.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:35
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:36
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:37
+msgid ""
+"When the maximum flow is 0 then there is no flow and **0** is returned."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:39
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:41
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:42
+msgid "Uses the :ref:`pgr_pushRelabel <pgr_pushRelabel>` algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:44
+msgid "Running time: :math:`O( V ^ 3)`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:47
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:62
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:64
+msgid "Calculates the maximum flow from the `source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:82
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:84
+msgid "Calculates the maximum flow from the `source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:102
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:104
+msgid "Calculates the maximum flow from all the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:122
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:124
+msgid ""
+"Calculates the maximum flow from all of the `sources` to all of the "
+"`targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:138
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152 ../../build/doc/pgr_maxFlow.rst:169
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152 ../../build/doc/pgr_maxFlow.rst:169
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:155
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:157
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:149
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:154
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:154
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:154
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:155 ../../build/doc/pgr_maxFlow.rst:157
+#: ../../build/doc/pgr_maxFlow.rst:171
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:155
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:156
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:156 ../../build/doc/pgr_maxFlow.rst:158
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:156
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:157
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:158
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:158
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:166
+msgid "Description of the return value"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:171
+msgid "Maximum flow possible from the source(s) to the target(s)"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:175
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:177
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:178
+msgid "http://www.boost.org/libs/graph/doc/push_relabel_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:179
+msgid ""
+"https://en.wikipedia.org/wiki/Push%E2%80%93relabel_maximum_flow_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:182
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:183
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:184
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_nodeNetwork.po b/locale/fr/LC_MESSAGES/pgr_nodeNetwork.po
new file mode 100644
index 0000000..b9b92db
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_nodeNetwork.po
@@ -0,0 +1,353 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_nodeNetwork.rst:13
+msgid "pgr_nodeNetwork"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:18
+msgid "``pgr_nodeNetwork`` - Nodes an network edge table."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:20
+msgid "Nicolas Ribot"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:21
+msgid "Nicolas Ribot, The source code is released under the MIT-X license."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:27
+msgid ""
+"The function reads edges from a not \"noded\" network table and writes the "
+"\"noded\" edges into a new table."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:39
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:41
+msgid ""
+"A common problem associated with bringing GIS data into pgRouting is the "
+"fact that the data is often not \"noded\" correctly. This will create "
+"invalid topologies, which will result in routes that are incorrect."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:43
+msgid ""
+"What we mean by \"noded\" is that at every intersection in the road network "
+"all the edges will be broken into separate road segments. There are cases "
+"like an over-pass and under-pass intersection where you can not traverse "
+"from the over-pass to the under-pass, but this function does not have the "
+"ability to detect and accommodate those situations."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:45
+msgid ""
+"This function reads the ``edge_table`` table, that has a primary key column "
+"``id`` and geometry column named ``the_geom`` and intersect all the segments"
+" in it against all the other segments and then creates a table "
+"``edge_table_noded``. It uses the ``tolerance`` for deciding that multiple "
+"nodes within the tolerance are considered the same node."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:47
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:49
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:50
+msgid "``float8`` tolerance for coincident points (in projection unit)dd"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:51
+msgid ""
+"``text`` Primary key column name of the network table. Default value is "
+"``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:52
+msgid ""
+"``text`` Geometry column name of the network table. Default value is "
+"``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:53
+msgid "``text`` Suffix for the new table's. Default value is ``noded``."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:55
+msgid "The output table will have for  ``edge_table_noded``"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:57
+msgid "``bigint`` Unique identifier for the table"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:58
+msgid "``bigint``  Identifier of the edge in original table"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:59
+msgid "``integer`` Segment number of the original edge"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:60
+msgid ""
+"``integer`` Empty source column to be used with  :ref:`pgr_create_topology` "
+"function"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:61
+msgid ""
+"``integer`` Empty target column to be used with  :ref:`pgr_create_topology` "
+"function"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:62
+msgid "``geometry`` Geometry column of the noded network"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:65
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:66
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:70
+msgid "Example"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:72
+msgid "Let's create the topology for the data in :doc:`sampledata`"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:90
+msgid "Now we can analyze the network."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:114
+msgid ""
+"The analysis tell us that the network has a gap and an intersection. We try "
+"to fix the problem using:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:136
+msgid ""
+"Inspecting the generated table, we can see that edges 13,14 and 18 has been "
+"segmented"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:166
+msgid "We can create the topology of the new network"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:184
+msgid "Now let's analyze the new topology"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:210
+msgid "Images"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:243
+msgid "Comparing the results"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:245
+msgid "Comparing with the Analysis in the original edge_table, we see that."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:248
+msgid "Before"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:248
+msgid "After"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:250
+msgid "Table name"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:250
+msgid "edge_table"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:250
+msgid "edge_table_noded"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:252
+msgid "Fields"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:252
+msgid "All original fields"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:252
+msgid "Has only basic fields to do a topology analysis"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:254
+msgid "Dead ends"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:254
+msgid "Edges with 1 dead end: 1,6,24"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:255
+msgid "Edges with 2 dead ends  17,18"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:257
+msgid ""
+"Edge 17's right node is a dead end because there is no other edge sharing "
+"that same node. (cnt=1)"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:254
+msgid "Edges with 1 dead end: 1-1 ,6-1,14-2, 18-1 17-1 18-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:261
+msgid "Isolated segments"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:261
+msgid "two isolated segments:  17 and 18 both they have 2 dead ends"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:262
+msgid "No Isolated segments"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:262
+msgid "Edge 17 now shares a node with edges 14-1 and 14-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:263
+msgid "Edges 18-1 and 18-2 share a node with edges 13-1 and 13-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:265
+msgid "Gaps"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:265
+msgid ""
+"There is a gap between edge 17 and 14 because edge 14 is near to the right "
+"node of edge 17"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:265
+msgid ""
+"Edge 14 was segmented Now edges: 14-1 14-2 17 share the same node The "
+"tolerance value was taken in account"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:269
+msgid "Intersections"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:269
+msgid "Edges 13 and 18 were intersecting"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:269
+msgid ""
+"Edges were segmented, So, now in the interection's point there is a node and"
+" the following edges share it: 13-1 13-2 18-1 18-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:274
+msgid ""
+"Now, we are going to include the segments 13-1, 13-2 14-1, 14-2 ,18-1 and "
+"18-2 into our edge-table, copying the data for dir,cost,and reverse cost "
+"with tho following steps:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:276
+msgid ""
+"Add a column old_id into edge_table, this column is going to keep track the "
+"id of the original edge"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:277
+msgid ""
+"Insert only the segmented edges, that is, the ones whose max(sub_id) >1"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:290
+msgid "We recreate the topology:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:310
+msgid ""
+"To get the same analysis results as the topology of edge_table_noded, we do "
+"the following query:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:337
+msgid ""
+"To get the same analysis results as the original edge_table, we do the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:362
+msgid ""
+"Or we can analyze everything because, maybe edge 18 is an overpass, edge 14 "
+"is an under pass and there is also a street level juction, and the same "
+"happens with edges 17 and 13."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:389
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:391
+msgid ""
+":ref:`topology` for an overview of a topology for routing algorithms. "
+":ref:`pgr_analyze_oneway` to analyze directionality of the edges. "
+":ref:`pgr_create_topology` to create a topology based on the geometry. "
+":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:397
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:398
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:399
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_pointsAsPolygon.po b/locale/fr/LC_MESSAGES/pgr_pointsAsPolygon.po
new file mode 100644
index 0000000..356d85b
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_pointsAsPolygon.po
@@ -0,0 +1,124 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:13
+msgid "pgr_pointsAsPolygon"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:21
+msgid ""
+"``pgr_pointsAsPolygon`` — Draws an alpha shape around given set of points."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:27
+msgid "Returns the alpha shape as (multi)polygon geometry."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:35
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:37
+msgid ""
+"``text`` a SQL query, which should return a set of rows with the following "
+"columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:43
+msgid "``int4`` identifier of the vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:44
+msgid "``float8`` x-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:45
+msgid "``float8`` y-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:47
+msgid ""
+"(optional) ``float8`` alpha value. If specified alpha value equals 0 "
+"(default), then optimal alpha value is used. For more information, see `CGAL"
+" - 2D Alpha Shapes "
+"<http://doc.cgal.org/latest/Alpha_shapes_2/group__PkgAlphaShape2.html>`_."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:50
+msgid "Returns a (multi)polygon geometry (with holes)."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:54
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:55
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:56
+msgid ""
+"Added alpha argument with default 0 (use optimal value) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:57
+msgid ""
+"Supported to return a (multi)polygon geometry (with holes) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:61
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:62
+msgid ""
+"In the following query there is no way to control which point in the polygon"
+" is the first in the list, so you may get similar but different results than"
+" the following which are also correct."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:69
+msgid "The query use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:73
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:75
+msgid ":ref:`pgr_drivingDistance` - Driving Distance"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:76
+msgid ":ref:`pgr_alphashape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:79
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:80
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:81
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_pushRelabel.po b/locale/fr/LC_MESSAGES/pgr_pushRelabel.po
new file mode 100644
index 0000000..13e8a04
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_pushRelabel.po
@@ -0,0 +1,439 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_pushRelabel.rst:14
+msgid "pgr_pushRelabel - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:18
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:20
+msgid ""
+"``pgr_pushRelabel`` — Calculates the flow on the graph edges that maximizes "
+"the flow from the sources to the targets using Push Relabel Algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:29
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:30
+msgid "Renamed 2.5.0, Previous name pgr_maxFlowPushRelabel"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:31
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:8
+msgid ""
+"When the maximum flow is 0 then there is no flow and **EMPTY SET** is "
+"returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:12
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:15
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid ""
+"Creates a **super source** and edges to all the source(s), and a **super "
+"target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid ""
+"The maximum flow through the graph is guaranteed to be the value returned by"
+" :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and"
+" can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:41
+msgid "Running time: :math:`O( V ^ 3)`"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:44
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:60
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:62
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:81
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:83
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:102
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:104
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:123
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:125
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:140
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:4
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10 ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11 ../../build/doc/pgr_maxFlow.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:12
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:158
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:160
+msgid ""
+":ref:`maxFlow`, :ref:`pgr_boykovKolmogorov <pgr_boykovKolmogorov>`, "
+":ref:`pgr_edmondsKarp <pgr_edmondsKarp>`"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:161
+msgid "http://www.boost.org/libs/graph/doc/push_relabel_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:162
+msgid ""
+"https://en.wikipedia.org/wiki/Push%E2%80%93relabel_maximum_flow_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:165
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:166
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:167
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_strongComponents.po b/locale/fr/LC_MESSAGES/pgr_strongComponents.po
new file mode 100644
index 0000000..6f6c0cf
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_strongComponents.po
@@ -0,0 +1,346 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_strongComponents.rst:13
+msgid "pgr_strongComponents - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:15
+msgid ""
+"``pgr_strongComponents`` — Return the strongly connected components of a "
+"directed graph using Tarjan's algorithm based on DFS. In particular, the "
+"algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:31
+msgid ""
+"A strongly connected component of a directed graph is a set of vertices that"
+" are all reachable from each other. This implementation can only be used "
+"with a directed graph."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:36
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:38
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:40
+msgid "Components are described by vertices"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:42
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:44
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:45
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:47
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:62
+msgid "The signature is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:75
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid ""
+"Description of the return values for connected components and strongly "
+"connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, component, n_seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid ""
+"Component identifier. It is equal to the minimum node identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:91
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:93
+msgid "http://en.wikipedia.org/wiki/Strongly_connected_component"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:94
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:97
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:98
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:99
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_trsp.po b/locale/fr/LC_MESSAGES/pgr_trsp.po
new file mode 100644
index 0000000..108f0f8
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_trsp.po
@@ -0,0 +1,281 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_trsp.rst:13
+msgid "pgr_trsp - Turn Restriction Shortest Path (TRSP)"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:22
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:24
+msgid ""
+"``pgr_trsp`` — Returns the shortest path with support for turn restrictions."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:28
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:30
+msgid ""
+"The turn restricted shorthest path (TRSP) is a shortest path algorithm that "
+"can optionally take into account complicated turn restrictions like those "
+"found in real world navigable road networks. Performamnce wise it is nearly "
+"as fast as the A* search but has many additional features like it works with"
+" edges rather than the nodes of the network. Returns a set of "
+":ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows, that "
+"make up a path."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:57
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:59
+msgid ""
+"The Turn Restricted Shortest Path algorithm (TRSP) is similar to the "
+"shooting star in that you can specify turn restrictions."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:61
+msgid ""
+"The TRSP setup is mostly the same as :ref:`Dijkstra shortest path "
+"<pgr_dijkstra>` with the addition of an optional turn restriction table. "
+"This provides an easy way of adding turn restrictions to a road network by "
+"placing them in a separate table."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:64 ../../build/doc/pgr_trsp.rst:120
+msgid ""
+"a SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:71 ../../build/doc/pgr_trsp.rst:127
+msgid "``int4`` identifier of the edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:72 ../../build/doc/pgr_trsp.rst:128
+msgid "``int4`` identifier of the source vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:73 ../../build/doc/pgr_trsp.rst:129
+msgid "``int4`` identifier of the target vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:74 ../../build/doc/pgr_trsp.rst:130
+msgid ""
+"``float8`` value, of the edge traversal cost. A negative cost will prevent "
+"the edge from being inserted in the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:75 ../../build/doc/pgr_trsp.rst:131
+msgid ""
+"(optional) the cost for the reverse traversal of the edge. This is only used"
+" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
+"above remark about negative costs)."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:77
+msgid "``int4`` **NODE id** of the start point"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:78
+msgid "``int4`` **NODE id** of the end point"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:79 ../../build/doc/pgr_trsp.rst:134
+msgid "``true`` if the graph is directed"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:80 ../../build/doc/pgr_trsp.rst:135
+msgid ""
+"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
+"will be used for the cost of the traversal of the edge in the opposite "
+"direction."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:82 ../../build/doc/pgr_trsp.rst:137
+msgid ""
+"(optional) a SQL query, which should return a set of rows with the following"
+" columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:88 ../../build/doc/pgr_trsp.rst:143
+msgid "``float8`` turn restriction cost"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:89 ../../build/doc/pgr_trsp.rst:144
+msgid "``int4`` target id"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:90
+msgid ""
+"``text`` comma separated list of edges in the reverse order of ``rule``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:92
+msgid ""
+"Another variant of TRSP allows to specify **EDGE id** of source and target "
+"together with a fraction to interpolate the position:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:94
+msgid "``int4`` **EDGE id** of the start edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:95
+msgid "``float8`` fraction of 1 defines the position on the start edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:96
+msgid "``int4`` **EDGE id** of the end edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:97
+msgid "``float8`` fraction of 1 defines the position on the end edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:99 ../../build/doc/pgr_trsp.rst:152
+msgid "Returns set of :ref:`type_cost_result`:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:101 ../../build/doc/pgr_trsp.rst:154
+msgid "row sequence"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:102 ../../build/doc/pgr_trsp.rst:156
+msgid "node ID"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:103 ../../build/doc/pgr_trsp.rst:157
+msgid "edge ID (``-1`` for the last row)"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:104
+msgid "cost to traverse from ``id1`` using ``id2``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:107 ../../build/doc/pgr_trsp.rst:162
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:108
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:111
+msgid "Support for Vias"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:113
+msgid ""
+"The Support for Vias functions are prototypes. Not all corner cases are "
+"being considered."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:116
+msgid ""
+"We also have support for vias where you can say generate a from A to B to C,"
+" etc. We support both methods above only you pass an array of vertices or "
+"and array of edges and percentage position along the edge in two arrays."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:133
+msgid ""
+"``int4[]`` An ordered array of **NODE id** the path will go through from "
+"start to end."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:145
+msgid ""
+"``text`` commar separated list of edges in the reverse order of ``rule``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:147
+msgid ""
+"Another variant of TRSP allows to specify **EDGE id** together with a "
+"fraction to interpolate the position:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:149
+msgid "``int4`` An ordered array of **EDGE id** that the path has to traverse"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:150
+msgid ""
+"``float8`` An array of fractional positions along the respective edges in "
+"``eids``, where 0.0 is the start of the edge and 1.0 is the end of the "
+"eadge."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:155
+msgid "route ID"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:158
+msgid "cost to traverse from ``id2`` using ``id3``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:163
+msgid "Via Support prototypes new in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:166
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:168
+msgid "**Without turn restrictions**"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:175
+msgid "**With turn restrictions**"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:177
+msgid "Then a query with turn restrictions is created as:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:184
+msgid "An example query using vertex ids and via points:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:191
+msgid "An example query using edge ids and vias:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:198
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:202
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:204
+msgid ":ref:`type_cost_result`"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:207
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:208
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:209
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_version.po b/locale/fr/LC_MESSAGES/pgr_version.po
new file mode 100644
index 0000000..5a6623a
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_version.po
@@ -0,0 +1,130 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_version.rst:13
+msgid "pgr_version"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:21
+msgid "``pgr_version`` — Query for pgRouting version information."
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:27
+msgid "Returns a table with pgRouting version information."
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:35 ../../build/doc/pgr_version.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:37
+msgid "Returns a table with:"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:40
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:40
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:42
+msgid "**version**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:42 ../../build/doc/pgr_version.rst:43
+#: ../../build/doc/pgr_version.rst:44 ../../build/doc/pgr_version.rst:45
+#: ../../build/doc/pgr_version.rst:46
+msgid "``varchar``"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:42
+msgid "pgRouting version"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:43
+msgid "**tag**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:43
+msgid "Git tag of pgRouting build"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:44
+msgid "**hash**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:44
+msgid "Git hash of pgRouting build"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:45
+msgid "**branch**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:45
+msgid "Git branch of pgRouting build"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:46
+msgid "**boost**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:46
+msgid "Boost version"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:51
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:52
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:56
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:58
+msgid "Query for full version string"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:66
+msgid "Query for ``version`` and ``boost`` attribute"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:78
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:81
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:82
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:83
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_vrpOneDepot.po b/locale/fr/LC_MESSAGES/pgr_vrpOneDepot.po
new file mode 100644
index 0000000..a0c5006
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_vrpOneDepot.po
@@ -0,0 +1,112 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:14
+msgid "pgr_vrpOneDepot - Experimental"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:21
+msgid "**No documentation available**"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:24
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:28
+msgid "Current Result"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:34
+msgid "Data"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:41
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:43
+msgid "http://en.wikipedia.org/wiki/Vehicle_routing_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:46
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:47
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:48
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_withPoints.po b/locale/fr/LC_MESSAGES/pgr_withPoints.po
new file mode 100644
index 0000000..be629d4
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_withPoints.po
@@ -0,0 +1,665 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPoints.rst:13
+msgid "pgr_withPoints - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:19
+msgid ""
+"``pgr_withPoints`` - Returns the shortest path in a graph with additional "
+"temporary vertices."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:33
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:37
+msgid ""
+"Modify the graph to include points defined by points_sql. Using Dijkstra "
+"algorithm, find the shortest path(s)"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:41
+msgid "Characteristics:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:43
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:45
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:46
+msgid "Vertices of the graph are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:48
+msgid "**positive** when it belongs to the edges_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:49
+msgid "**negative** when it belongs to the points_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:51
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:53
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path. -"
+" The agg_cost the non included values (v, v) is 0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:56
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path: - The agg_cost the non included values (u, v) is ∞"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:59
+msgid ""
+"For optimization purposes, any duplicated value in the start_vids or "
+"end_vids are ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:60
+msgid ""
+"The returned values are ordered: - start_vid ascending - end_vid ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:64
+msgid "Running time: :math:`O(|start\\_vids|\\times(V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:68
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:81
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:87
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:92
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:90
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:91
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:92
+msgid ""
+"No **details** are given about distance of other points of points_sql query."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:100
+msgid "From point 1 to point 3"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:110
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:120
+msgid "From point 1 to vertex 3"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:132
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:141
+msgid "From point 1 to point 3 and vertex 5"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:153
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:162
+msgid "From point 1 and vertex 2  to point 3"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:172
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:182
+msgid "From point 1 and vertex 2  to point 3 and vertex 7"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:192
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPoints.rst:236
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPoints.rst:211
+#: ../../build/doc/pgr_withPoints.rst:236
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPoints.rst:211
+#: ../../build/doc/pgr_withPoints.rst:236
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPoints.rst:215
+#: ../../build/doc/pgr_withPoints.rst:216
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_withPoints.rst:249
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPoints.rst:220
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPoints.rst:222
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPoints.rst:223
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:207
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:211
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:213
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:213
+#: ../../build/doc/pgr_withPoints.rst:214
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:213
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:214
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:214
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:215
+#: ../../build/doc/pgr_withPoints.rst:240
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:215
+msgid "Starting vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:216
+#: ../../build/doc/pgr_withPoints.rst:241
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:216
+msgid "Ending vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:217
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:217
+#: ../../build/doc/pgr_withPoints.rst:218
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:217
+msgid ""
+"Array of identifiers of starting vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:218
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:218
+msgid ""
+"Array of identifiers of ending vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:219
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:219
+#: ../../build/doc/pgr_withPoints.rst:225
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:219
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:220
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:223
+msgid ""
+"(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:221
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:225
+msgid "**details**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:225
+msgid ""
+"(optional). When ``true`` the results will include the points in points_sql "
+"that are in the path. Default is ``false`` which ignores other points of the"
+" points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:231
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:233
+msgid ""
+"Returns set of ``(seq, [path_seq,] [start_vid,] [end_vid,] node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:238
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:238
+#: ../../build/doc/pgr_withPoints.rst:239
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:238
+msgid "Row sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:239
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:239
+msgid "Path sequence that indicates the relative position on the path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:240
+#: ../../build/doc/pgr_withPoints.rst:241
+#: ../../build/doc/pgr_withPoints.rst:242
+#: ../../build/doc/pgr_withPoints.rst:246
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:240
+msgid "Identifier of the starting vertex. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:241
+msgid "Identifier of the ending vertex. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:242
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:244
+msgid "Identifier of the node:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:243
+msgid "A positive value indicates the node is a vertex of edges_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:244
+msgid "A negative value indicates the node is a point of points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:246
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:247
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:247
+msgid "``-1`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:249
+#: ../../build/doc/pgr_withPoints.rst:252
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:250
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next ``node`` in the "
+"path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:250
+msgid "``0`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:252
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:253
+msgid "Aggregate cost from ``start_pid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:253
+msgid "``0`` for the first row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:260
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:262
+msgid ""
+"Which path (if any) passes in front of point 6 or vertex 6 with **right** "
+"side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:268
+msgid ""
+"Which path (if any) passes in front of point 6 or vertex 6 with **left** "
+"side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:274
+msgid ""
+"Many to many example with a twist: on undirected graph and showing details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:281
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:286
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:287
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:291
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:293
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:296
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:297
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:298
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_withPointsCost.po b/locale/fr/LC_MESSAGES/pgr_withPointsCost.po
new file mode 100644
index 0000000..f478ccd
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_withPointsCost.po
@@ -0,0 +1,603 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsCost.rst:13
+msgid "pgr_withPointsCost - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:19
+msgid ""
+"``pgr_withPointsCost`` - Calculates the shortest path and returns only the "
+"aggregate cost of the shortest path(s) found, for the combination of points "
+"given."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:33
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:37
+msgid ""
+"Modify the graph to include points defined by points_sql. Using Dijkstra "
+"algorithm, return only the aggregate cost of the shortest path(s) found."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:41
+msgid "Characteristics:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:79
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:44
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:45
+msgid ""
+"Returns the sum of the costs of the shortest path for pair combination of "
+"vertices in the modified graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:46
+msgid "Vertices of the graph are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:48
+msgid "**positive** when it belongs to the edges_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:49
+msgid "**negative** when it belongs to the points_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:51
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:52
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:54
+msgid ""
+"The returned values are in the form of a set of `(start_vid, end_vid, "
+"agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:56
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:58
+msgid "The `agg_cost` in the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:60
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:62
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:64
+msgid ""
+"If the values returned are stored in a table, the unique index would be the "
+"pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:67
+msgid "For undirected graphs, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:69
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:71
+msgid ""
+"For optimization purposes, any duplicated value in the `start_vids` or "
+"`end_vids` is ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:73
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:75
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:76
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:78
+msgid "Running time: :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:82
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:92
+msgid ""
+"There is no **details** flag, unlike the other members of the withPoints "
+"family of functions."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:96
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:102
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:106
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:105
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:106
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:124
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:145
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:166
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:185
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:204
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCost.rst:246
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCost.rst:223
+#: ../../build/doc/pgr_withPointsCost.rst:246
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCost.rst:223
+#: ../../build/doc/pgr_withPointsCost.rst:246
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPointsCost.rst:227
+#: ../../build/doc/pgr_withPointsCost.rst:228
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsCost.rst:232
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsCost.rst:234
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsCost.rst:235
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:219
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:223
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:225
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:225
+#: ../../build/doc/pgr_withPointsCost.rst:226
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:225
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:226
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:226
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:227
+#: ../../build/doc/pgr_withPointsCost.rst:248
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:227
+msgid "Starting vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:228
+#: ../../build/doc/pgr_withPointsCost.rst:249
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:228
+msgid "Ending vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:229
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:229
+#: ../../build/doc/pgr_withPointsCost.rst:230
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:229
+msgid ""
+"Array of identifiers of starting vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:230
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:230
+msgid ""
+"Array of identifiers of ending vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:231
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:231
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:231
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:232
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:235
+msgid ""
+"(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:233
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:241
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:243
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:248
+#: ../../build/doc/pgr_withPointsCost.rst:249
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:248
+msgid "Identifier of the starting vertex. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:249
+msgid "Identifier of the ending point. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:250
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:250
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:250
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:256
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:258
+msgid "With **right** side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:264
+msgid "With **left** side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:270
+msgid "Does not matter driving side."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:277
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:282
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:283
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:287
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:289
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:292
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:293
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:294
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_withPointsCostMatrix.po b/locale/fr/LC_MESSAGES/pgr_withPointsCostMatrix.po
new file mode 100644
index 0000000..c9bb20f
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_withPointsCostMatrix.po
@@ -0,0 +1,472 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:13
+msgid "pgr_withPointsCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:19
+msgid ""
+"``pgr_withPointsCostMatrix`` - Calculates the shortest path and returns only"
+" the aggregate cost of the shortest path(s) found, for the combination of "
+"points given."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:31
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:35
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:37
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:45
+msgid ""
+"There is no **details** flag, unlike the other members of the withPoints "
+"family of functions."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:49
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:55
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:59
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:58
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:59
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:78
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:87
+msgid "returning a symmetrical cost matrix"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:89
+msgid "Using the default **side** value on the **points_sql** query"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:90
+msgid "Using an undirected graph"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:91
+msgid "Using the default **driving_side** value"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:100
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:120
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:120
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:126
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:128
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:129
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:116
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:120
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:122
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:122
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:123
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:122
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:123
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:123
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:124
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:124
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:124
+msgid ""
+"Array of identifiers of starting vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:125
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:125
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:125
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:126
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:129
+msgid ""
+"(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:127
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:140
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:142
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:151
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:153
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:154
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:155
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:156
+msgid "`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:159
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:160
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:161
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_withPointsDD.po b/locale/fr/LC_MESSAGES/pgr_withPointsDD.po
new file mode 100644
index 0000000..95b4be1
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_withPointsDD.po
@@ -0,0 +1,552 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsDD.rst:13
+msgid "pgr_withPointsDD - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:19
+msgid ""
+"``pgr_withPointsDD`` - Returns the driving distance from a starting point."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:33
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:37
+msgid ""
+"Modify the graph to include points and using Dijkstra algorithm, extracts "
+"all the nodes and points that have costs less than or equal to the value "
+"``distance`` from the starting point. The edges extracted will conform the "
+"corresponding spanning tree."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:44
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:54
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:60
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:65
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:63
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:64
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:65
+msgid "No **details** are given about distance of other points of the query."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:84
+msgid "Driving distance from a single point"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:86
+#: ../../build/doc/pgr_withPointsDD.rst:106
+msgid "Finds the driving distance depending on the optional parameters setup."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:94
+msgid "Right side driving topology"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:104
+msgid "Driving distance from many starting points"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:118
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsDD.rst:162
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsDD.rst:138
+#: ../../build/doc/pgr_withPointsDD.rst:162
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsDD.rst:138
+#: ../../build/doc/pgr_withPointsDD.rst:162
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPointsDD.rst:142
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_withPointsDD.rst:169
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+#: ../../build/doc/pgr_withPointsDD.rst:143
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsDD.rst:145
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsDD.rst:147
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsDD.rst:148
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:134
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:138
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:140
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:140
+#: ../../build/doc/pgr_withPointsDD.rst:141
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:140
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:141
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:141
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:142
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:142
+msgid "Starting point id"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:143
+msgid "**distance**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:143
+msgid "Distance from the start_pid"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:144
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:144
+#: ../../build/doc/pgr_withPointsDD.rst:150
+#: ../../build/doc/pgr_withPointsDD.rst:152
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:144
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:145
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:148
+msgid ""
+"(optional). Value in ['b', 'r', 'l', NULL] indicating if the driving side "
+"is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:146
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:150
+msgid "**details**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:150
+msgid ""
+"(optional). When ``true`` the results will include the driving distance to "
+"the points with in the ``distance``. Default is ``false`` which ignores "
+"other points of the points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:152
+msgid "**equicost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:152
+msgid ""
+"(optional). When ``true`` the nodes will only appear in the closest start_v "
+"list. Default is ``false`` which resembles several calls using the single "
+"starting point signatures. Tie brakes are arbitrary."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:157
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:159
+msgid "Returns set of ``(seq, node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:164
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:164
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:164
+msgid "row sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:165
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:165
+#: ../../build/doc/pgr_withPointsDD.rst:166
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:165
+msgid ""
+"Identifier of the node within the Distance from ``start_pid``. If ``details "
+"=: true`` a negative value is the identifier of a point."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:166
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:167
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:167
+msgid "``-1`` when ``start_vid`` = ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:169
+#: ../../build/doc/pgr_withPointsDD.rst:172
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:170
+msgid "Cost to traverse ``edge``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:170
+#: ../../build/doc/pgr_withPointsDD.rst:173
+msgid "``0`` when ``start_vid`` = ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:172
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:173
+msgid "Aggregate cost from ``start_vid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:180
+msgid ""
+"Examples for queries marked as ``directed`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:182
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:184
+msgid "Left side driving topology"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:190
+msgid "Does not matter driving side."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:199
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:204
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:205
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:209
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:211
+msgid ":ref:`pgr_drivingDistance` - Driving distance using dijkstra."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:212
+msgid ":ref:`pgr_alphashape` - Alpha shape computation."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:213
+msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:216
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:217
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:218
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/pgr_withPointsKSP.po b/locale/fr/LC_MESSAGES/pgr_withPointsKSP.po
new file mode 100644
index 0000000..8202877
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/pgr_withPointsKSP.po
@@ -0,0 +1,571 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsKSP.rst:13
+msgid "pgr_withPointsKSP - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:19
+msgid ""
+"``pgr_withPointsKSP`` - Find the K shortest paths using Yen's algorithm."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:29
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:32
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:34
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:36
+msgid ""
+"Modifies the graph to include the points defined in the ``points_sql`` and "
+"using Yen algorithm, finds the K shortest paths."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:41
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:56
+msgid "Minimal Usage"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:62
+msgid "The minimal usage:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:59
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:60
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:61
+msgid "No **details** are given about distance of other points of the query."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:62
+msgid "No **heap paths** are returned."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:80
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:82
+msgid "Finds the K shortest paths depending on the optional parameters setup."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:91
+msgid "With details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:98
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsKSP.rst:144
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsKSP.rst:119
+#: ../../build/doc/pgr_withPointsKSP.rst:144
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsKSP.rst:119
+#: ../../build/doc/pgr_withPointsKSP.rst:144
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPointsKSP.rst:123
+#: ../../build/doc/pgr_withPointsKSP.rst:124
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_withPointsKSP.rst:153
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsKSP.rst:128
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsKSP.rst:130
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsKSP.rst:131
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:115
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:119
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:121
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:121
+#: ../../build/doc/pgr_withPointsKSP.rst:122
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:121
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:122
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:122
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:123
+msgid "**start_pid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:123
+msgid "Starting point id."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:124
+msgid "**end_pid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:124
+msgid "Ending point id."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:125
+msgid "**K**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:125
+#: ../../build/doc/pgr_withPointsKSP.rst:146
+#: ../../build/doc/pgr_withPointsKSP.rst:147
+#: ../../build/doc/pgr_withPointsKSP.rst:148
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:125
+msgid "Number of shortest paths."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:126
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:126
+#: ../../build/doc/pgr_withPointsKSP.rst:127
+#: ../../build/doc/pgr_withPointsKSP.rst:133
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:126
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:127
+msgid "**heap_paths**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:127
+msgid ""
+"(optional). When ``true`` the paths calculated to get the shortests paths "
+"will be returned also. Default is ``false`` only the K shortest paths are "
+"returned."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:128
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:131
+msgid ""
+"(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:129
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:133
+msgid "**details**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:133
+msgid ""
+"(optional). When ``true`` the results will include the driving distance to "
+"the points with in the ``distance``. Default is ``false`` which ignores "
+"other points of the points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:139
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:141
+msgid ""
+"Returns set of ``(seq, path_id, path_seq, node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:146
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:146
+msgid "Row sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:147
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:147
+msgid ""
+"Relative position in the path of node and edge. Has value 1 for the "
+"beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:148
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:148
+msgid ""
+"Path identifier. The ordering of the paths: For two paths i, j if i < j then"
+" agg_cost(i) <= agg_cost(j)."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:149
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:149
+#: ../../build/doc/pgr_withPointsKSP.rst:150
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:149
+msgid ""
+"Identifier of the node in the path. Negative values are the identifiers of a"
+" point."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:150
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:151
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:151
+msgid "``-1`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:153
+#: ../../build/doc/pgr_withPointsKSP.rst:156
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:154
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next ``node`` in the "
+"path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:154
+msgid "``0`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:156
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:157
+msgid "Aggregate cost from ``start_pid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:157
+msgid "``0`` for the first row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:164
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:166
+msgid "Left side driving topology with details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:172
+msgid "Right side driving topology with heap paths and details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:178
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:181
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:182
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:186
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:188
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:191
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:192
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:193
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/proposed.po b/locale/fr/LC_MESSAGES/proposed.po
new file mode 100644
index 0000000..9f1a6f4
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/proposed.po
@@ -0,0 +1,410 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/proposed.rst:13
+msgid "Stable Proposed Functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:20
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:22
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:23
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:24
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:25
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:26
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:27
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:33
+msgid "As part of the :ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:35
+msgid ""
+":ref:`pgr_dijkstraCostMatrix` Use pgr_dijkstra to calculate a cost matrix."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:36
+msgid ""
+":ref:`pgr_dijkstraVia` - Use pgr_dijkstra to make a route via vertices."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:39
+msgid "Families"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:40
+msgid ":ref:`astar`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:3
+msgid ":ref:`pgr_aStar` - A* algorithm for the shortest path."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:4
+msgid ":ref:`pgr_aStarCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:5
+msgid ""
+":ref:`pgr_aStarCostMatrix` - Get the cost matrix of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:46
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:3
+msgid ":ref:`pgr_bdAstar` - Bidirectional A* algorithm for obtaining paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid ""
+":ref:`pgr_bdAstarCost` - Bidirectional A* algorithm to calculate the cost of"
+" the paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:5
+msgid ""
+":ref:`pgr_bdAstarCostMatrix` - Bidirectional A* algorithm to calculate a "
+"cost matrix of paths."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:52
+msgid ":ref:`bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:3
+msgid ""
+":ref:`pgr_bdDijkstra` - Bidirectional Dijkstra algorithm for the shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:4
+msgid ""
+":ref:`pgr_bdDijkstraCost` - Bidirectional Dijkstra to calculate the cost of "
+"the shortest paths"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:5
+msgid ""
+":ref:`pgr_bdDijkstraCostMatrix` - Bidirectional Dijkstra algorithm  to "
+"create a matrix of costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:58
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:3
+msgid ""
+":ref:`pgr_maxFlow` - Only the Max flow calculation using Push and Relabel "
+"algorithm."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:4
+msgid ""
+":ref:`pgr_BoykovKolmogorov` - Boykov and Kolmogorov with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid ""
+":ref:`pgr_EdmondsKarp` - Edmonds and Karp algorithm with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid ""
+":ref:`pgr_PushRelabel` - Push and relabel algorithm with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Applications"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:9
+msgid ""
+":ref:`pgr_edgeDisjointPaths` - Calculates edge disjoint paths between two "
+"groups of vertices."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid ""
+":ref:`pgr_maxCardinalityMatch` - Calculates a maximum cardinality matching "
+"in a graph."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:64
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:3
+msgid ":ref:`pgr_withPoints` - Route from/to points anywhere on the graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:4
+msgid ":ref:`pgr_withPointsCost` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:5
+msgid ":ref:`pgr_withPointsCostMatrix` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:6
+msgid ":ref:`pgr_withPointsKSP` - K shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:7
+msgid ":ref:`pgr_withPointsDD` - Driving distance."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:71
+msgid "categories"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:72
+msgid ":ref:`Cost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:3
+msgid ":ref:`pgr_aStarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:4
+msgid ":ref:`pgr_bdAstarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:5
+msgid ":ref:`pgr_bdDijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:6
+msgid ":ref:`pgr_dijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:7
+msgid ":ref:`pgr_withPointsCost`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:78
+msgid ":ref:`CostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:3
+msgid ":ref:`pgr_aStarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:4
+msgid ":ref:`pgr_bdAstarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:5
+msgid ":ref:`pgr_bdDijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:6
+msgid ":ref:`pgr_dijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:7
+msgid ":ref:`pgr_withPointsCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:84
+msgid ":ref:`KSP`"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:3
+msgid ":ref:`pgr_KSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:4
+msgid ":ref:`pgr_withPointsKSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:106
+msgid "Experimental Functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:111
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:113
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:114
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:116
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:117
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:118
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:119
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:120
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:121
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:122
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:123
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:124
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:125
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:126
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:127
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:132
+msgid ":ref:`contraction` - Reduce network size using contraction techniques"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:134
+msgid ""
+":ref:`pgr_contractgraph` - Reduce network size using contraction techniques"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:138
+msgid "Graph Analysis"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:139
+msgid ":ref:`pgr_labelGraph` - Analyze / label  subgraphs within a network"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:141
+msgid ":ref:`components` - Analyze components within a graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:143
+msgid ""
+":ref:`pgr_connectedComponents` - Return the connected components of an "
+"undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:144
+msgid ""
+":ref:`pgr_strongComponents` - Return the strongly connected components of a "
+"directed graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:145
+msgid ""
+":ref:`pgr_biconnectedComponents` - Return the biconnected components of an "
+"undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:146
+msgid ""
+":ref:`pgr_articulationPoints` - Return the articulation points of an "
+"undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:147
+msgid ":ref:`pgr_bridges` - Return the bridges of an undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:150
+msgid "VRP"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:151
+msgid ":ref:`pgr_gsocvrppdtw`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:152
+msgid ":ref:`pgr_vrp_basic`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:166
+msgid "Graph Transformation"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:167
+msgid ":doc:`pgr_lineGraph`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:175
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:178
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:179
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:180
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/release_notes.po b/locale/fr/LC_MESSAGES/release_notes.po
new file mode 100644
index 0000000..f4a09f7
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/release_notes.po
@@ -0,0 +1,1278 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/release_notes.rst:13
+msgid "Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:15
+msgid ""
+"To see the full list of changes check the list of `Git commits "
+"<https://github.com/pgRouting/pgrouting/commits>`_ on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:18
+msgid "Table of contents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:21
+msgid ":ref:`changelog_2_5_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:22
+msgid ":ref:`changelog_2_4_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:23
+msgid ":ref:`changelog_2_4_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:24
+msgid ":ref:`changelog_2_4_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:25
+msgid ":ref:`changelog_2_3_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:26
+msgid ":ref:`changelog_2_3_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:27
+msgid ":ref:`changelog_2_3_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:28
+msgid ":ref:`changelog_2_2_4`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:29
+msgid ":ref:`changelog_2_2_3`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:30
+msgid ":ref:`changelog_2_2_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:31
+msgid ":ref:`changelog_2_2_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:32
+msgid ":ref:`changelog_2_2_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:33
+msgid ":ref:`changelog_2_1_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:34
+msgid ":ref:`changelog_2_0_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:35
+msgid ":ref:`changelog_2_0_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:36
+msgid ":ref:`changelog_1_x`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:43
+msgid "pgRouting 2.5.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:45
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.5.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.5.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:49
+msgid "enhancement:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:50
+msgid "pgr_version is now on SQL language"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:53
+msgid "Breaking change on:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:54
+msgid "pgr_edgeDisjointPaths:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:56
+msgid "Added path_id, cost and agg_cost columns on the result"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:57
+msgid "Parameter names changed"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:58
+msgid "The many version results are the union of the one to one version"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:61
+msgid "New Signatures:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:62
+msgid "pgr_bdAstar(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:65 ../../build/doc/release_notes.rst:223
+msgid "New Proposed functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:66
+msgid "pgr_bdAstar(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:67
+msgid "pgr_bdAstar(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:68
+msgid "pgr_bdAstar(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:69
+msgid "pgr_bdAstarCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:70
+msgid "pgr_bdAstarCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:71
+msgid "pgr_bdAstarCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:72
+msgid "pgr_bdAstarCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:73
+msgid "pgr_bdAstarCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:74
+msgid "pgr_bdDijkstra(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:75
+msgid "pgr_bdDijkstra(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:76
+msgid "pgr_bdDijkstra(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:77
+msgid "pgr_bdDijkstraCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:78
+msgid "pgr_bdDijkstraCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:79
+msgid "pgr_bdDijkstraCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:80
+msgid "pgr_bdDijkstraCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:81
+msgid "pgr_bdDijkstraCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:82
+msgid "pgr_lineGraph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:83
+msgid "pgr_connectedComponents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:84
+msgid "pgr_strongComponents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:85
+msgid "pgr_biconnectedComponents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:86
+msgid "pgr_articulationPoints"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:87
+msgid "pgr_bridges"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:90 ../../build/doc/release_notes.rst:160
+#: ../../build/doc/release_notes.rst:247
+msgid "Deprecated Signatures"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:91
+msgid "pgr_bdastar - use pgr_bdAstar instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:94
+msgid "Renamed Functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:95
+msgid "pgr_maxFlowPushRelabel - use pgr_pushRelabel instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:96
+msgid "pgr_maxFlowEdmondsKarp -use pgr_edmondsKarp instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:97
+msgid "pgr_maxFlowBoykovKolmogorov - use pgr_boykovKolmogorov instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:98
+msgid "pgr_maximumCardinalityMatching - use pgr_maxCardinalityMatch instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:101
+msgid "Deprecated function"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:102
+msgid "pgr_pointToEdgeNode"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:108
+msgid "pgRouting 2.4.2 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:110
+msgid ""
+"To see the issues closed by this release see the `Git closed milestone for "
+"2.4.2 "
+"<https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.4.2%22%20>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:113
+msgid "Improvement"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:114
+msgid "Works for postgreSQL 10"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:117 ../../build/doc/release_notes.rst:131
+#: ../../build/doc/release_notes.rst:168 ../../build/doc/release_notes.rst:522
+#: ../../build/doc/release_notes.rst:529 ../../build/doc/release_notes.rst:550
+#: ../../build/doc/release_notes.rst:557
+msgid "Bug fixes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:118
+msgid "Fixed: Unexpected error column \"cname\""
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:119
+msgid ""
+"Replace __linux__ with __GLIBC__ for glibc-specific headers and functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:126
+msgid "pgRouting 2.4.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:128
+msgid ""
+"To see the issues closed by this release see the `Git closed milestone for "
+"2.4.1 "
+"<https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.4.1%22%20>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:132
+msgid "Fixed compiling error on macOS"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:133
+msgid "Condition error on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:138
+msgid "pgRouting 2.4.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:140
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.4.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.4.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:143 ../../build/doc/release_notes.rst:213
+#: ../../build/doc/release_notes.rst:374
+msgid "New Signatures"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:144
+msgid "pgr_bdDijkstra"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:148
+msgid "New Proposed Signatures"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:149
+msgid "pgr_maxFlow"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:150
+msgid "pgr_astar(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:151
+msgid "pgr_astar(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:152
+msgid "pgr_astar(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:153
+msgid "pgr_astarCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:154
+msgid "pgr_astarCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:155
+msgid "pgr_astarCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:156
+msgid "pgr_astarCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:157
+msgid "pgr_astarCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:161
+msgid "pgr_bddijkstra - use pgr_bdDijkstra instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:164 ../../build/doc/release_notes.rst:253
+msgid "Deprecated Functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:165
+msgid "pgr_pointsToVids"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:169
+msgid "Bug fixes on proposed functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:171
+msgid "pgr_withPointsKSP: fixed ordering"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:173
+msgid "TRSP original code is used with no changes on the compilation warnings"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:178
+msgid "pgRouting 2.3.2 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:180
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.3.2 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.3.2%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:183 ../../build/doc/release_notes.rst:199
+#: ../../build/doc/release_notes.rst:269 ../../build/doc/release_notes.rst:282
+#: ../../build/doc/release_notes.rst:293 ../../build/doc/release_notes.rst:305
+#: ../../build/doc/release_notes.rst:424 ../../build/doc/release_notes.rst:455
+msgid "Bug Fixes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:184
+msgid "Fixed pgr_gsoc_vrppdtw crash when all orders fit on one truck."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:185
+msgid "Fixed pgr_trsp:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:187
+msgid "Alternate code is not executed when the point is in reality a vertex"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:188
+msgid "Fixed ambiguity on seq"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:194
+msgid "pgRouting 2.3.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:196
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.3.1 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.3.1%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:200
+msgid "Leaks on proposed max_flow functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:201
+msgid "Regression error on pgr_trsp"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:202
+msgid "Types discrepancy on pgr_createVerticesTable"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:208
+msgid "pgRouting 2.3.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:210
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.3.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.3.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:214
+msgid "pgr_TSP"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:215
+msgid "pgr_aStar"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:218 ../../build/doc/release_notes.rst:330
+msgid "New Functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:219
+msgid "pgr_eucledianTSP"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:224
+msgid "pgr_dijkstraCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:225
+msgid "pgr_withPointsCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:226
+msgid "pgr_maxFlowPushRelabel(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:227
+msgid "pgr_maxFlowPushRelabel(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:228
+msgid "pgr_maxFlowPushRelabel(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:229
+msgid "pgr_maxFlowPushRelabel(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:230
+msgid "pgr_maxFlowEdmondsKarp(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:231
+msgid "pgr_maxFlowEdmondsKarp(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:232
+msgid "pgr_maxFlowEdmondsKarp(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:233
+msgid "pgr_maxFlowEdmondsKarp(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:234
+msgid "pgr_maxFlowBoykovKolmogorov (one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:235
+msgid "pgr_maxFlowBoykovKolmogorov (one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:236
+msgid "pgr_maxFlowBoykovKolmogorov (many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:237
+msgid "pgr_maxFlowBoykovKolmogorov (many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:238
+msgid "pgr_maximumCardinalityMatching"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:239
+msgid "pgr_edgeDisjointPaths(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:240
+msgid "pgr_edgeDisjointPaths(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:241
+msgid "pgr_edgeDisjointPaths(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:242
+msgid "pgr_edgeDisjointPaths(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:243
+msgid "pgr_contractGraph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:248
+msgid "pgr_tsp - use pgr_TSP or pgr_eucledianTSP instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:249
+msgid "pgr_astar - use pgr_aStar instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:254
+msgid "pgr_flip_edges"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:255
+msgid "pgr_vidsToDmatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:256
+msgid "pgr_pointsToDMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:257
+msgid "pgr_textToPoints"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:264
+msgid "pgRouting 2.2.4 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:266
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.4 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.4%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:270
+msgid "Bogus uses of extern \"C\""
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:271
+msgid "Build error on Fedora 24 + GCC 6.0"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:272
+msgid "Regression error pgr_nodeNetwork"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:277
+msgid "pgRouting 2.2.3 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:279
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.3 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.3%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:283
+msgid "Fixed compatibility issues with PostgreSQL 9.6."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:288
+msgid "pgRouting 2.2.2 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:290
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.2 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.2%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:294
+msgid "Fixed regression error on pgr_drivingDistance"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:300
+msgid "pgRouting 2.2.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:302
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.1 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A2.2.1+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:306
+msgid "Server crash fix on pgr_alphaShape"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:307
+msgid "Bug fix on With Points family of functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:313
+msgid "pgRouting 2.2.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:315
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:319 ../../build/doc/release_notes.rst:387
+msgid "Improvements"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:320
+msgid "pgr_nodeNetwork"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:322
+msgid "Adding a row_where and outall optional parameters"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:324
+msgid "Signature fix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:326
+msgid "pgr_dijkstra  -- to match what is documented"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:331
+msgid "pgr_floydWarshall"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:332
+msgid "pgr_Johnson"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:333
+msgid "pgr_dijkstraCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:334
+msgid "pgr_dijkstraCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:335
+msgid "pgr_dijkstraCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:336
+msgid "pgr_dijkstraCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:339 ../../build/doc/release_notes.rst:391
+msgid "Proposed functionality"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:340
+msgid "pgr_withPoints(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:341
+msgid "pgr_withPoints(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:342
+msgid "pgr_withPoints(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:343
+msgid "pgr_withPoints(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:344
+msgid "pgr_withPointsCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:345
+msgid "pgr_withPointsCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:346
+msgid "pgr_withPointsCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:347
+msgid "pgr_withPointsCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:348
+msgid "pgr_withPointsDD(single vertex)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:349
+msgid "pgr_withPointsDD(multiple vertices)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:350
+msgid "pgr_withPointsKSP"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:351
+msgid "pgr_dijkstraVia"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:355
+msgid "Deprecated functions:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:356
+msgid "pgr_apspWarshall  use pgr_floydWarshall instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:357
+msgid "pgr_apspJohnson   use pgr_Johnson instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:358
+msgid "pgr_kDijkstraCost use pgr_dijkstraCost instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:359
+msgid "pgr_kDijkstraPath use pgr_dijkstra instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:362
+msgid "Renamed and deprecated function"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:363
+msgid "pgr_makeDistanceMatrix renamed to _pgr_makeDistanceMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:369
+msgid "pgRouting 2.1.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:371
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.1.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=is%3Aissue+milestone%3A%22Release+2.1.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:375
+msgid "pgr_dijkstra(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:376
+msgid "pgr_dijkstra(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:377
+msgid "pgr_dijkstra(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:378
+msgid "pgr_drivingDistance(multiple vertices)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:381
+msgid "Refactored"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:382
+msgid "pgr_dijkstra(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:383
+msgid "pgr_ksp"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:384
+msgid "pgr_drivingDistance(single vertex)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:388
+msgid ""
+"pgr_alphaShape function now can generate better (multi)polygon with holes "
+"and alpha parameter."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:392
+msgid ""
+"Proposed functions from Steve Woodbridge, (Classified as Convenience by the "
+"author.)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:394
+msgid ""
+"pgr_pointToEdgeNode - convert a point geometry to a vertex_id based on "
+"closest edge."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:395
+msgid ""
+"pgr_flipEdges - flip the edges in an array of geometries so the connect end "
+"to end."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:396
+msgid ""
+"pgr_textToPoints - convert a string of x,y;x,y;... locations into point "
+"geometries."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:397
+msgid ""
+"pgr_pointsToVids - convert an array of point geometries into vertex ids."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:398
+msgid ""
+"pgr_pointsToDMatrix - Create a distance matrix from an array of points."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:399 ../../build/doc/release_notes.rst:400
+msgid ""
+"pgr_vidsToDMatrix - Create a distance matrix from an array of vertix_id."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:402
+msgid "Added proposed functions from GSoc Projects:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:404
+msgid "pgr_vrppdtw"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:405
+msgid "pgr_vrponedepot"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:408
+msgid "Deprecated functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:409
+msgid "pgr_getColumnName"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:410
+msgid "pgr_getTableName"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:411
+msgid "pgr_isColumnCndexed"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:412
+msgid "pgr_isColumnInTable"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:413
+msgid "pgr_quote_ident"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:414
+msgid "pgr_versionless"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:415
+msgid "pgr_startPoint"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:416
+msgid "pgr_endPoint"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:417
+msgid "pgr_pointToId"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:420
+msgid "No longer supported"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:421
+msgid "Removed the 1.x legacy functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:425
+msgid "Some bug fixes in other functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:429
+msgid "Refactoring Internal Code"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:430
+msgid "A C and C++ library for developer was created"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:432
+msgid "encapsulates postgreSQL related functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:433
+msgid "encapsulates Boost.Graph graphs"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:435
+msgid "Directed Boost.Graph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:436
+msgid "Undirected Boost.graph."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:438
+msgid "allow any-integer in the id's"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:439
+msgid "allow any-numerical on the cost/reverse_cost columns"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:441
+msgid ""
+"Instead of generating many libraries: - All functions are encapsulated in "
+"one library - The library has the prefix 2-1-0"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:450
+msgid "pgRouting 2.0.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:452
+msgid "Minor bug fixes."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:456
+msgid "No track of the bug fixes were kept."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:462
+msgid "pgRouting 2.0.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:464
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.0.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.0.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:466
+msgid ""
+"With the release of pgRouting 2.0.0 the library has abandoned backwards "
+"compatibility to :ref:`pgRouting 1.x <changelog_1_x>` releases. The main "
+"Goals for this release are:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:469
+msgid "Major restructuring of pgRouting."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:470
+msgid "Standardization of the function naming"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:471
+msgid "Preparation of the project for future development."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:473
+msgid "As a result of this effort:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:475
+msgid "pgRouting has a simplified structure"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:476
+msgid "Significant new functionality has being added"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:477
+msgid "Documentation has being integrated"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:478
+msgid "Testing has being integrated"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:479
+msgid "And made it easier for multiple developers to make contributions."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:483
+msgid "Important Changes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:484
+msgid ""
+"Graph Analytics - tools for detecting and fixing connection some problems in"
+" a graph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:485
+msgid "A collection of useful utility functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:486
+msgid ""
+"Two new All Pairs Short Path algorithms (pgr_apspJohnson, pgr_apspWarshall)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:487
+msgid ""
+"Bi-directional Dijkstra and A-star search algorithms (pgr_bdAstar, "
+"pgr_bdDijkstra)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:488
+msgid "One to many nodes search (pgr_kDijkstra)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:489
+msgid "K alternate paths shortest path (pgr_ksp)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:490
+msgid ""
+"New TSP solver that simplifies the code and the build process (pgr_tsp), "
+"dropped \"Gaul Library\" dependency"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:491
+msgid "Turn Restricted shortest path (pgr_trsp) that replaces Shooting Star"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:492
+msgid "Dropped support for Shooting Star"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:493
+msgid ""
+"Built a test infrastructure that is run before major code changes are "
+"checked in"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:494
+msgid ""
+"Tested and fixed most all of the outstanding bugs reported against 1.x that "
+"existing in the 2.0-dev code base."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:495
+msgid "Improved build process for Windows"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:496
+msgid ""
+"Automated testing on Linux and Windows platforms trigger by every commit"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:497
+msgid "Modular library design"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:498
+msgid "Compatibility with PostgreSQL 9.1 or newer"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:499
+msgid "Compatibility with PostGIS 2.0 or newer"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:500
+msgid "Installs as PostgreSQL EXTENSION"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:501
+msgid "Return types re factored and unified"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:502
+msgid "Support for table SCHEMA in function parameters"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:503
+msgid "Support for ``st_`` PostGIS function prefix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:504
+msgid "Added ``pgr_`` prefix to functions and types"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:505
+msgid "Better documentation: http://docs.pgrouting.org"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:506
+msgid "shooting_star is discontinued"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:513
+msgid "pgRouting 1.x Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:515
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for 1.x "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+1.x%22+is%3Aclosed>`_"
+" on Github. The following release notes have been copied from the previous "
+"``RELEASE_NOTES`` file and are kept as a reference."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:520
+msgid "Changes for release 1.05"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:526
+msgid "Changes for release 1.03"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:528
+msgid "Much faster topology creation"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:533
+msgid "Changes for release 1.02"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:535 ../../build/doc/release_notes.rst:542
+msgid "Shooting* bug fixes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:536
+msgid "Compilation problems solved"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:540
+msgid "Changes for release 1.01"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:546
+msgid "Changes for release 1.0"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:548
+msgid "Core and extra functions are separated"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:549
+msgid "Cmake build process"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:554
+msgid "Changes for release 1.0.0b"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:556
+msgid "Additional SQL file with more simple names for wrapper functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:561
+msgid "Changes for release 1.0.0a"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:563
+msgid "Shooting* shortest path algorithm for real road networks"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:564
+msgid "Several SQL bugs were fixed"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:568
+msgid "Changes for release 0.9.9"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:570
+msgid "PostgreSQL 8.2 support"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:571
+msgid ""
+"Shortest path functions return empty result if they could not find any path"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:575
+msgid "Changes for release 0.9.8"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:577
+msgid "Renumbering scheme was added to shortest path functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:578
+msgid "Directed shortest path functions were added"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:579
+msgid "routing_postgis.sql was modified to use dijkstra in TSP search"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/routingFunctions.po b/locale/fr/LC_MESSAGES/routingFunctions.po
new file mode 100644
index 0000000..3242809
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/routingFunctions.po
@@ -0,0 +1,134 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/routingFunctions.rst:15
+msgid "Routing Functions"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:21
+msgid ":ref:`all_pairs`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:23
+msgid ":ref:`pgr_floydWarshall` - Floyd-Warshall's Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:24
+msgid ":ref:`pgr_johnson`- Johnson’s Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:26
+msgid ":ref:`pgr_astar` - Shortest Path A*"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:28
+msgid ":ref:`pgr_bdAstar` - Bi-directional A* Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:30
+msgid ":ref:`pgr_bdDijkstra` - Bi-directional Dijkstra Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:33
+msgid ":ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:3
+msgid ":ref:`pgr_dijkstra` - Dijkstra's algorithm for the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:4
+msgid ""
+":ref:`pgr_dijkstraCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:5
+msgid ""
+":ref:`pgr_dijkstraCostMatrix` - Use pgr_dijkstra to create a costs matrix."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:6
+msgid ""
+":ref:`pgr_drivingDistance` - Use pgr_dijkstra to calculate catchament "
+"information."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:7
+msgid ""
+":ref:`pgr_ksp` - Use Yen algorithm with pgr_dijkstra to get the K shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:8
+msgid ":ref:`pgr_dijkstraVia` - Get a route of a seuence of vertices."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:39
+msgid ":ref:`pgr_ksp` - K-Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:41
+msgid ":ref:`pgr_trsp<trsp>` - Turn Restriction Shortest Path (TRSP)"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:43
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:3
+msgid ":ref:`pgr_TSP` - When input is given as matrix cell information."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:4
+msgid ":ref:`pgr_eucledianTSP` - When input are coordinates."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:49
+msgid ":ref:`drivingDistance`"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:3
+msgid ":ref:`pgr_drivingDistance` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:4
+msgid ":ref:`pgr_withPointsDD` - Driving Distance based on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:5
+msgid "Post pocessing"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:7
+msgid ":ref:`pgr_alphaShape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:8
+msgid ":ref:`pgr_points_as_polygon` - Polygon around a set of points"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:70
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:73
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:74
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:75
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/sampledata.po b/locale/fr/LC_MESSAGES/sampledata.po
new file mode 100644
index 0000000..2ded9cd
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/sampledata.po
@@ -0,0 +1,152 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/sampledata.rst:11
+msgid "Sample Data"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:13
+msgid ""
+"The documentation provides very simple example queries based on a small "
+"sample network. To be able to execute the sample queries, run the following "
+"SQL commands to create a table with a small network data set."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:18
+msgid "Create table"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:25
+msgid "Insert data"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:32
+msgid "Topology"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:33
+msgid ""
+"Before you test a routing function use this query to create a topology "
+"(fills the ``source`` and ``target`` columns)."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:40
+msgid "Points of interest"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:41
+msgid "When points outside of the graph."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:42
+msgid "Used with the :ref:`withPoints` functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:49
+msgid "Restrictions"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:50
+msgid "Used with the :ref:`trsp` functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:57
+msgid "Categories"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:58
+msgid "Used with the :ref:`maxFlow` functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:65
+msgid "Vertex table"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:66
+msgid "Used in some deprecated signatures or deprecated functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:74
+msgid "Images"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:76
+msgid "Red arrows correspond when ``cost`` > 0 in the edge table."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:77
+msgid "Blue arrows correspond when ``reverse_cost`` > 0 in the edge table."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:78
+msgid "Points are outside the graph."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:79
+msgid "Click on the graph to enlarge."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:84
+msgid ""
+"Network for queries marked as ``directed`` and ``cost`` and ``reverse_cost``"
+" columns are used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:86
+msgid ""
+"When working with city networks, this is recommended for point of view of "
+"vehicles."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:91
+msgid "**Graph 1: Directed, with cost and reverse cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:96
+msgid ""
+"Network for queries marked as ``undirected`` and ``cost`` and "
+"``reverse_cost`` columns are used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:98
+msgid ""
+"When working with city networks, this is recommended for point of view of "
+"pedestrians."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:104
+msgid "**Graph 2: Undirected, with cost and reverse cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:109
+msgid ""
+"Network for queries marked as ``directed`` and only ``cost`` column is used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:116
+msgid "**Graph 3: Directed, with cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:121
+msgid ""
+"Network for queries marked as ``undirected`` and only ``cost`` column is "
+"used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:127
+msgid "**Graph 4: Undirected, with cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:134
+msgid "Pick & Deliver Data"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/support.po b/locale/fr/LC_MESSAGES/support.po
new file mode 100644
index 0000000..4082646
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/support.po
@@ -0,0 +1,177 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/support.rst:13
+msgid "Support"
+msgstr ""
+
+#: ../../build/doc/support.rst:15
+msgid ""
+"pgRouting community support is available through the `pgRouting website "
+"<http://pgrouting.org/support.html>`_, `documentation "
+"<http://docs.pgrouting.org>`_, tutorials, mailing lists and others. If "
+"you’re looking for :ref:`commercial support <support_commercial>`, find "
+"below a list of companies providing pgRouting development and consulting "
+"services."
+msgstr ""
+
+#: ../../build/doc/support.rst:19
+msgid "Reporting Problems"
+msgstr ""
+
+#: ../../build/doc/support.rst:21
+msgid ""
+"Bugs are reported and managed in an `issue tracker "
+"<https://github.com/pgrouting/pgrouting/issues>`_. Please follow these "
+"steps:"
+msgstr ""
+
+#: ../../build/doc/support.rst:23
+msgid ""
+"Search the tickets to see if your problem has already been reported. If so, "
+"add any extra context you might have found, or at least indicate that you "
+"too are having the problem. This will help us prioritize common issues."
+msgstr ""
+
+#: ../../build/doc/support.rst:24
+msgid ""
+"If your problem is unreported, create a `new issue "
+"<https://github.com/pgRouting/pgrouting/issues/new>`_ for it."
+msgstr ""
+
+#: ../../build/doc/support.rst:25
+msgid ""
+"In your report include explicit instructions to replicate your issue. The "
+"best tickets include the exact SQL necessary to replicate a problem."
+msgstr ""
+
+#: ../../build/doc/support.rst:26
+msgid ""
+"If you can test older versions of PostGIS for your problem, please do. On "
+"your ticket, note the earliest version the problem appears."
+msgstr ""
+
+#: ../../build/doc/support.rst:27
+msgid ""
+"For the versions where you can replicate the problem, note the operating "
+"system and version of pgRouting, PostGIS and PostgreSQL."
+msgstr ""
+
+#: ../../build/doc/support.rst:28
+msgid ""
+"It is recommended to use the following wrapper on the problem to pin point "
+"the step that is causing the problem."
+msgstr ""
+
+#: ../../build/doc/support.rst:39
+msgid "Mailing List and GIS StackExchange"
+msgstr ""
+
+#: ../../build/doc/support.rst:41
+msgid ""
+"There are two mailing lists for pgRouting hosted on OSGeo mailing list "
+"server:"
+msgstr ""
+
+#: ../../build/doc/support.rst:43
+msgid ""
+"User mailing list: http://lists.osgeo.org/mailman/listinfo/pgrouting-users"
+msgstr ""
+
+#: ../../build/doc/support.rst:44
+msgid ""
+"Developer mailing list: http://lists.osgeo.org/mailman/listinfo/pgrouting-"
+"dev"
+msgstr ""
+
+#: ../../build/doc/support.rst:46
+msgid ""
+"For general questions and topics about how to use pgRouting, please write to"
+" the user mailing list."
+msgstr ""
+
+#: ../../build/doc/support.rst:48
+msgid ""
+"You can also ask at `GIS StackExchange <http://gis.stackexchange.com/>`_ and"
+" tag the question with ``pgrouting``. Find all questions tagged with "
+"``pgrouting`` under http://gis.stackexchange.com/questions/tagged/pgrouting "
+"or subscribe to the `pgRouting questions feed "
+"<http://gis.stackexchange.com/feeds/tag?tagnames=pgrouting&sort=newest>`_."
+msgstr ""
+
+#: ../../build/doc/support.rst:54
+msgid "Commercial Support"
+msgstr ""
+
+#: ../../build/doc/support.rst:56
+msgid ""
+"For users who require professional support, development and consulting "
+"services, consider contacting any of the following organizations, which have"
+" significantly contributed to the development of pgRouting:"
+msgstr ""
+
+#: ../../build/doc/support.rst:61
+msgid "**Company**"
+msgstr ""
+
+#: ../../build/doc/support.rst:62
+msgid "**Offices in**"
+msgstr ""
+
+#: ../../build/doc/support.rst:63
+msgid "**Website**"
+msgstr ""
+
+#: ../../build/doc/support.rst:64
+msgid "Georepublic"
+msgstr ""
+
+#: ../../build/doc/support.rst:65
+msgid "Germany, Japan"
+msgstr ""
+
+#: ../../build/doc/support.rst:66
+msgid "https://georepublic.info"
+msgstr ""
+
+#: ../../build/doc/support.rst:67
+msgid "iMaptools"
+msgstr ""
+
+#: ../../build/doc/support.rst:68 ../../build/doc/support.rst:71
+msgid "United States"
+msgstr ""
+
+#: ../../build/doc/support.rst:69
+msgid "http://imaptools.com"
+msgstr ""
+
+#: ../../build/doc/support.rst:70
+msgid "Paragon Corporation"
+msgstr ""
+
+#: ../../build/doc/support.rst:72
+msgid "http://www.paragoncorporation.com"
+msgstr ""
+
+#: ../../build/doc/support.rst:73
+msgid "Camptocamp"
+msgstr ""
+
+#: ../../build/doc/support.rst:74
+msgid "Switzerland, France"
+msgstr ""
+
+#: ../../build/doc/support.rst:75
+msgid "http://www.camptocamp.com"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/topology-functions.po b/locale/fr/LC_MESSAGES/topology-functions.po
new file mode 100644
index 0000000..ac6a1b3
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/topology-functions.po
@@ -0,0 +1,66 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/topology-functions.rst:13
+msgid "Topology - Family of Functions"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:15
+msgid ""
+"The pgRouting's topology of a network, represented with an edge table with "
+"source and target attributes and a vertices table associated with it. "
+"Depending on the algorithm, you can create a topology or just reconstruct "
+"the vertices table, You can analyze the topology, We also provide a function"
+" to node an unoded network."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:19
+msgid ""
+":ref:`pgr_create_topology` -  to create a topology based on the geometry."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:20
+msgid ""
+":ref:`pgr_create_vert_table` - to reconstruct the vertices table based on "
+"the source and target information."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:21
+msgid ""
+":ref:`pgr_analyze_graph`  - to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:22
+msgid ":ref:`pgr_analyze_oneway` - to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:23
+msgid ":ref:`pgr_node_network`  -to create nodes to a not noded edge table."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:35
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:38
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:39
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:40
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/types_index.po b/locale/fr/LC_MESSAGES/types_index.po
new file mode 100644
index 0000000..3f3faa7
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/types_index.po
@@ -0,0 +1,56 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/types_index.rst:13
+msgid "pgRouting Data Types"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:15
+msgid ""
+"The following are commonly used data types for some of the pgRouting "
+"functions."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:17
+msgid ""
+":ref:`type_cost_result` -  A set of records to describe a path result with "
+"cost attribute."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:18
+msgid ""
+":ref:`pgr_costResult3[] <type_cost_result3>` - A set of records to describe "
+"a path result with cost attribute."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:19
+msgid ""
+":ref:`pgr_geomResult <type_geom_result>` - A set of records to describe a "
+"path result with geometry attribute."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:30
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:33
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:34
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:35
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/fr/LC_MESSAGES/withPoints-family.po b/locale/fr/LC_MESSAGES/withPoints-family.po
new file mode 100644
index 0000000..3d4f303
--- /dev/null
+++ b/locale/fr/LC_MESSAGES/withPoints-family.po
@@ -0,0 +1,395 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/withPoints-family.rst:14
+msgid "withPoints - Family of functions"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:16
+msgid "When points are also given as input:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:20
+msgid ":ref:`pgr_withPoints` - Route from/to points anywhere on the graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:21
+msgid ":ref:`pgr_withPointsCost` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:22
+msgid ":ref:`pgr_withPointsCostMatrix` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:23
+msgid ":ref:`pgr_withPointsKSP` - K shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:24
+msgid ":ref:`pgr_withPointsDD` - Driving distance."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:47
+msgid "Images"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:49
+msgid ""
+"The squared vertices are the temporary vertices, The temporary vertices are "
+"added acordng to the dirving side, The following images visualy show the "
+"diferences on how depending on the driving side the data is interpreted."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:53
+msgid "Right driving side"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:58
+msgid "Left driving side"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:63
+msgid "doesn't matter the driving side"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:68
+msgid "Introduction"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:70
+msgid ""
+"This famly of functions was thought for routing vehicles, but might as well "
+"work for some other application that we can not think of."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:73
+msgid ""
+"The with points family of function give you the ability to route between "
+"arbitrary points located outside the original graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:76
+msgid ""
+"When given a point identified with a `pid` that its being mapped to and edge"
+" with an identifier `edge_id`, with a `fraction` along that edge (from the "
+"source to the target of the edge) and some additional information about "
+"which `side` of the edge the point is on, then routing from arbitrary points"
+" more accurately reflect routing vehicles in road networks,"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:87
+msgid ""
+"I talk about a family of functions because it includes different "
+"functionalities."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:84
+msgid "pgr_withPoints is pgr_dijkstra based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:85
+msgid "pgr_withPointsCost is pgr_dijkstraCost based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:86
+msgid "pgr_withPointsKSP is pgr_ksp based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:87
+msgid "pgr_withPointsDD is pgr_drivingDistance based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:89
+msgid ""
+"In all this functions we have to take care of as many aspects as possible:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:91
+msgid "Must work for routing:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:93
+msgid "Cars (directed graph)"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:94
+msgid "Pedestrians (undirected graph)"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:96
+msgid "Arriving at the point:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:98
+msgid "In either side of the street."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:99
+msgid ""
+"Compulsory arrival on the side of the street where the point is located."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:101
+msgid "Countries with:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:103
+msgid "Right side driving"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:104
+msgid "Left side driving"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:106
+msgid "Some points are:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:108
+msgid ""
+"Permanent, for example the set of points of clients stored in a table in the"
+" data base"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:109
+msgid "Temporal, for example points given through a web application"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:111
+msgid "The numbering of the points are handled with negative sign."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:113
+msgid "Original point identifiers are to be positive."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:114
+msgid "Transformation to negative is done internally."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:115
+msgid "For results for involving vertices identifiers"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:117
+msgid "positive sign is a vertex of the original grpah"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:118
+msgid "negative sign is a point of the temporary points"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:120
+msgid ""
+"The reason for doing this is to avoid confusion when there is a vertex with "
+"the same number as identifier as the points identifier."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:123
+msgid "Graph & edges"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:125
+msgid ""
+"Let :math:`G_d(V,E)` where :math:`V` is the set of vertices and :math:`E` is"
+" the set of edges be the original directed graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:127
+msgid ""
+"An edge of the original `edges_sql` is :math:`(id, source, target, cost, "
+"reverse\\_cost)` will generate internally"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:129
+msgid ":math:`(id, source, target, cost)`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:130
+msgid ":math:`(id, target, source, reverse\\_cost)`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:133
+msgid "Point Definition"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:135
+msgid ""
+"A point is defined by the quadruplet: :math:`(pid, eid, fraction, side)`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:137
+msgid "**pid** is the point identifier"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:138
+msgid "**eid** is an edge id of the `edges_sql`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:139
+msgid "**fraction** represents where the edge `eid` will be cut."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:140
+msgid "**side** Indicates the side of the edge where the point is located."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:144
+msgid "Creating Temporary Vertices in the Graph"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:146
+msgid "For edge (15,  9,12  10, 20), & lets insert point (2, 12, 0.3, r)"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:149
+msgid "On a right hand side driving network"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:150
+msgid "From first image above:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:152
+msgid "We can arrive to the point only via vertex 9."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:153
+msgid "It only afects the edge (15, 9,12, 10) so that edge is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:154
+msgid "Edge (15, 12,9, 20) is kept."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:155
+#: ../../build/doc/withPoints-family.rst:167
+#: ../../build/doc/withPoints-family.rst:182
+msgid "Create new edges:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:157
+#: ../../build/doc/withPoints-family.rst:186
+msgid "(15, 9,-1, 3) edge from vertex 9 to point 1 has cost 3"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:158
+#: ../../build/doc/withPoints-family.rst:187
+msgid "(15, -1,12, 7) edge from point 1 to vertex 12 has cost 7"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:161
+msgid "On a left hand side driving network"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:162
+msgid "From second image above:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:164
+msgid "We can arrive to the point only via vertex 12."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:165
+msgid "It only afects the edge (15, 12,9 20) so that edge is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:166
+msgid "Edge (15, 9,12, 10) is kept."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:169
+#: ../../build/doc/withPoints-family.rst:184
+msgid "(15, 12,-1, 14) edge from vertex 12 to point 1 has cost 14"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:170
+#: ../../build/doc/withPoints-family.rst:185
+msgid "(15, -1,9, 6) edge from point 1 to vertex 9 has cost 6"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:172
+msgid "that fraction is from vertex 9 to vertex 12"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:176
+msgid "When driving side does not matter"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:177
+msgid "From third image above:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:179
+msgid "We can arrive to the point either via vertex 12 or via vertex 9"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:180
+msgid "Edge (15, 12,9 20) is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:181
+msgid "Edge (15, 9,12, 10) is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:190
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:193
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:194
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:195
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/KSP-category.po b/locale/it/LC_MESSAGES/KSP-category.po
new file mode 100644
index 0000000..9232738
--- /dev/null
+++ b/locale/it/LC_MESSAGES/KSP-category.po
@@ -0,0 +1,36 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/KSP-category.rst:14
+msgid "KSP Category"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:18
+msgid ":ref:`pgr_KSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:19
+msgid ":ref:`pgr_withPointsKSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:26
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:27
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:28
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/TSP-family.po b/locale/it/LC_MESSAGES/TSP-family.po
new file mode 100644
index 0000000..0f03653
--- /dev/null
+++ b/locale/it/LC_MESSAGES/TSP-family.po
@@ -0,0 +1,556 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/TSP-family.rst:13
+msgid "Traveling Sales Person - Family of functions"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:17
+msgid ":ref:`pgr_TSP` - When input is given as matrix cell information."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:18
+msgid ":ref:`pgr_eucledianTSP` - When input are coordinates."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:30
+msgid "General Information"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:33
+msgid "Origin"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:36
+msgid ""
+"The traveling sales person problem was studied in the 18th century by "
+"mathematicians"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:36
+msgid "**Sir William Rowam Hamilton** and **Thomas Penyngton  Kirkman**."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:38
+msgid ""
+"A discussion about the work of Hamilton & Kirkman can be found in the book "
+"**Graph Theory (Biggs et  al. 1976)**."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:41
+msgid "ISBN-13: 978-0198539162"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:42
+msgid "ISBN-10: 0198539169"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:44
+msgid ""
+"It is believed that the general form of the TSP have been first studied by "
+"Kalr Menger in Vienna and Harvard. The problem  was  later promoted by "
+"Hassler, Whitney  &  Merrill at Princeton. A detailed  description about the"
+" connection between Menger & Whitney, and the development of the TSP can be "
+"found in  `On the history of combinatorial optimization (till 1960) "
+"<http://www.cwi.nl/~lex/files/histco.ps>`_"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:50
+msgid "Problem Definition"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:52
+msgid ""
+"Given a collection of cities and travel cost between each pair, find the "
+"cheapest way for visiting all of the cities and returning to the starting "
+"point."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:56
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:58
+msgid "The travel costs are symmetric:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:60
+msgid ""
+"traveling costs from city A to city B are just as much as traveling from B "
+"to A."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:62
+msgid "This problem is an NP-hard optimization problem."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:64
+msgid "To calculate the number of different tours through :math:`n` cities:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:66
+msgid "Given a starting city,"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:67
+msgid "There are :math:`n-1` choices for the second city,"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:68
+msgid "And  :math:`n-2` choices for the third city, etc."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:69
+msgid ""
+"Multiplying these together we get :math:`(n-1)!  = (n-1) (n-2) . .  1`."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:70
+msgid ""
+"Now since our travel costs do not depend on the direction we take around the"
+" tour:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:72
+msgid "this number by 2"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:73
+msgid ":math:`(n-1)!/2`."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:76
+msgid "TSP & Simulated Annealing"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:78
+msgid ""
+"The simulated annealing algorithm was originally inspired from the process "
+"of annealing in metal work."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:81
+msgid ""
+"Annealing involves heating and cooling a material to alter its physical "
+"properties due to the changes in its internal structure. As the metal cools "
+"its new structure becomes fixed, consequently causing the metal to retain "
+"its newly obtained properties. [C001]_"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:88
+msgid "Pseudocode"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:89
+msgid ""
+"Given an initial solution, the simulated annealing process, will start with "
+"a high temperature and gradually cool down until the desired temperature is "
+"reached."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:92
+msgid ""
+"For each temperature, a neighbouring new solution **snew** is calculated. "
+"The higher the temperature the higher the probability of accepting the new "
+"solution as a possible bester solution."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:95
+msgid ""
+"Once the desired temperature is reached, the best solution found is returned"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:118
+msgid "pgRouting Implementation"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:120
+msgid ""
+"pgRouting's implementation adds some extra parameters to allow some exit "
+"controls within the simulated annealing process."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:123
+msgid "To cool down faster to the next temperature:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:125
+msgid ""
+"max_changes_per_temperature: limits the number of changes in the solution "
+"per temperature"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:126
+msgid ""
+"max_consecutive_non_changes: limits the number of consecutive non changes "
+"per temperature"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:128
+msgid ""
+"This is done by doing some book keeping on the times **solution = snew;** is"
+" executed."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:130
+msgid ""
+"max_changes_per_temperature: Increases by one when **solution** changes"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:131
+msgid ""
+"max_consecutive_non_changes: Reset to 0 when **solution** changes, and "
+"increased each **try**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:133
+msgid ""
+"Additionally to stop the algorithm at a higher temperature than the desired "
+"one:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:135
+msgid ""
+"max_processing_time: limits the time the simulated annealing is performed."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:136
+msgid ""
+"book keeping is done to see if there was a change in **solution** on the "
+"last temperature"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:138
+msgid ""
+"Note that, if no change was found in the first "
+"**max_consecutive_non_changes** tries, then the simulated annealing will "
+"stop."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:168
+msgid "Choosing parameters"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:170
+msgid ""
+"There is no exact rule on how the parameters have to be chose, it will "
+"depend on the special characteristics of the problem."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:173
+msgid ""
+"Your computational time is crucial, then put your time limit to "
+"**max_processing_time**."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:174
+msgid ""
+"Make the **tries_per_temperture** depending on the number of cities, for "
+"example:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:176
+msgid "Useful to estimate the time it takes to do one cycle: use `1`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:178
+msgid "this will help to set a reasonable **max_processing_time**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:180
+msgid ":math:`n * (n-1)`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:181
+msgid ":math:`500 * n`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:183
+msgid ""
+"For a faster decreasing the temperature set **cooling_factor** to a smaller "
+"number, and set to a higher number for a slower decrease."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:186
+msgid ""
+"When for the same given data the same results are needed, set **randomize** "
+"to `false`."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:188
+msgid "When estimating how long it takes to do one cycle: use `false`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:191
+msgid ""
+"A recommendation is to play with the values and see what fits to the "
+"particular data."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:196
+msgid "Description Of the Control parameters"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:198
+msgid "The control parameters are optional, and have a default value."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201 ../../build/doc/TSP-family.rst:230
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201 ../../build/doc/TSP-family.rst:230
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203 ../../build/doc/TSP-family.rst:204
+#: ../../build/doc/TSP-family.rst:233
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203 ../../build/doc/TSP-family.rst:204
+msgid "`0`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203
+msgid "The greedy part of the implementation will use this identifier."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:204
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:204
+msgid "Last visiting vertex before returning to start_vid."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205
+msgid "**max_processing_time**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205 ../../build/doc/TSP-family.rst:209
+#: ../../build/doc/TSP-family.rst:210 ../../build/doc/TSP-family.rst:211
+#: ../../build/doc/TSP-family.rst:234 ../../build/doc/TSP-family.rst:237
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205
+msgid "`+infinity`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205
+msgid "Stop the annealing processing when the value is reached."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206
+msgid "**tries_per_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206 ../../build/doc/TSP-family.rst:207
+#: ../../build/doc/TSP-family.rst:208 ../../build/doc/TSP-family.rst:232
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206
+msgid "`500`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206
+msgid "Maximum number of times a neighbor(s) is searched in each temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:207
+msgid "**max_changes_per_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:207
+msgid "`60`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:207
+msgid "Maximum number of times the solution is changed in each temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:208
+msgid "**max_consecutive_non_changes**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:208 ../../build/doc/TSP-family.rst:209
+msgid "`100`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:208
+msgid ""
+"Maximum number of consecutive times the solution is not changed in each "
+"temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:209
+msgid "**initial_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:209
+msgid "Starting temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:210
+msgid "**final_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:210
+msgid "`0.1`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:210
+msgid "Ending temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:211
+msgid "**cooling_factor**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:211
+msgid "`0.9`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:211
+msgid ""
+"Value between between 0 and 1 (not including) used to calculate the next "
+"temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "**randomize**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "`true`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "Choose the random seed"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:214
+msgid "true: Use current time as seed"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:215
+msgid ""
+"false: Use `1` as seed. Using this value will get the same results with the "
+"same data in each execution."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:225
+msgid "Description of the return columns"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:227
+msgid "Returns set of ``(seq, node, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:230
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:232
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:232
+msgid "Row sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:233
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:233
+msgid "Identifier of the node/coordinate/point."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:234
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:235
+msgid ""
+"Cost to traverse from the current ``node`` ito the next ``node`` in the path"
+" sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:235
+msgid "``0`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:237
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:238
+msgid "Aggregate cost from the ``node`` at ``seq = 1`` to the current node."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:238
+msgid "``0`` for the first row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:245
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:248
+msgid "References"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:249
+msgid ""
+"`Simulated annaeling algorithm for beginners <http://www.theprojectspot.com"
+"/tutorial-post/simulated-annealing-algorithm-for-beginners/6>`_"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:251
+msgid "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:252
+msgid "http://en.wikipedia.org/wiki/Simulated_annealing"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:255
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:256
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:257
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/aStar-family.po b/locale/it/LC_MESSAGES/aStar-family.po
new file mode 100644
index 0000000..3364e02
--- /dev/null
+++ b/locale/it/LC_MESSAGES/aStar-family.po
@@ -0,0 +1,205 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/aStar-family.rst:13
+msgid "aStar - Family of functions"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:15
+msgid ""
+"The A* (pronounced \"A Star\") algorithm is based on Dijkstra's algorithm "
+"with a heuristic that allow it to solve most shortest path problems by "
+"evaluation only a sub-set of the overall graph."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:19
+msgid ":ref:`pgr_aStar` - A* algorithm for the shortest path."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:20
+msgid ":ref:`pgr_aStarCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:21
+msgid ""
+":ref:`pgr_aStarCostMatrix` - Get the cost matrix of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:34
+msgid "The problem definition (Advanced documentation)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:36
+msgid ""
+"The A* (pronounced \"A Star\") algorithm is based on Dijkstra's algorithm "
+"with a heuristic, that is an estimation of the remaining cost from the "
+"vertex to the goal, that allows to solve most shortest path problems by "
+"evaluation only a sub-set of the overall graph. Running time: :math:`O((E + "
+"V) * \\log V)`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:46
+msgid "Heuristic"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:48
+msgid "Currently the heuristic functions available are:"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:50
+msgid "0: :math:`h(v) = 0` (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:51
+msgid "1: :math:`h(v) = abs(max(\\Delta x, \\Delta y))`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:52
+msgid "2: :math:`h(v) = abs(min(\\Delta x, \\Delta y))`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:53
+msgid "3: :math:`h(v) = \\Delta x * \\Delta x + \\Delta y * \\Delta y`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:54
+msgid "4: :math:`h(v) = sqrt(\\Delta x * \\Delta x + \\Delta y * \\Delta y)`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:55
+msgid "5: :math:`h(v) = abs(\\Delta x) + abs(\\Delta y)`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:57
+msgid "where :math:`\\Delta x = x_1 - x_0` and :math:`\\Delta y = y_1 - y_0`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:63 ../../build/doc/aStar-family.rst:76
+#: ../../build/doc/aStar-family.rst:89
+msgid "Factor"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:66
+msgid "Analysis 1"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:67
+msgid ""
+"Working with cost/reverse_cost as length in degrees, x/y in lat/lon: Factor "
+"= 1   (no need to change units)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:71
+msgid "Analysis 2"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:72
+msgid ""
+"Working with cost/reverse_cost as length in meters, x/y in lat/lon: Factor ="
+"  would depend on the location of the points:"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:76 ../../build/doc/aStar-family.rst:89
+msgid "latitude"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:76 ../../build/doc/aStar-family.rst:89
+msgid "conversion"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:78 ../../build/doc/aStar-family.rst:91
+msgid "45"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:78
+msgid "1 longitude degree is  78846.81 m"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:78
+msgid "78846"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:79 ../../build/doc/aStar-family.rst:92
+msgid "0"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:79
+msgid "1 longitude degree is 111319.46 m"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:79
+msgid "111319"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:83
+msgid "Analysis 3"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:84
+msgid ""
+"Working with cost/reverse_cost as time in seconds, x/y in lat/lon: Factor: "
+"would depend on the location of the points and on the average speed say "
+"25m/s is the speed."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:91
+msgid "1 longitude degree is (78846.81m)/(25m/s)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:91
+msgid "3153 s"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:92
+msgid "1 longitude degree is (111319.46 m)/(25m/s)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:92
+msgid "4452 s"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:98
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:100
+msgid ":ref:`pgr_aStar`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:101
+msgid ":ref:`pgr_aStarCost`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:102
+msgid ":ref:`pgr_aStarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:103
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:104
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:107
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:108
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:109
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/allpairs-family.po b/locale/it/LC_MESSAGES/allpairs-family.po
new file mode 100644
index 0000000..9749ed9
--- /dev/null
+++ b/locale/it/LC_MESSAGES/allpairs-family.po
@@ -0,0 +1,996 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/allpairs-family.rst:14
+msgid "All Pairs - Family of Functions"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:16
+msgid "The following functions work an all vertices pair combinations"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:33
+msgid "Performance"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:40
+msgid "The following tests:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:36
+msgid "non server computer"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:37
+msgid "with AMD 64 CPU"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:38
+msgid "4G memory"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:39
+msgid "trusty"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:40
+msgid "posgreSQL version 9.3"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:43
+msgid "Data"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:45
+msgid "The following data was used"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:53
+msgid "Data processing was done with osm2pgrouting-alpha"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:66
+msgid "Results"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:68
+msgid "One"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:70
+msgid ""
+"This test is not with a bounding box The density of the passed graph is "
+"extremely low. For each <SIZE> 30 tests were executed to get the average The"
+" tested query is:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:83
+#: ../../build/doc/allpairs-family.rst:140
+msgid "The results of this tests are presented as:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:85
+msgid "is the number of edges given as input."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:86
+#: ../../build/doc/allpairs-family.rst:143
+msgid "is the total number of records in the query."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:87
+#: ../../build/doc/allpairs-family.rst:144
+msgid "is the density of the data :math:`\\dfrac{E}{V \\times (V-1)}`."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:88
+#: ../../build/doc/allpairs-family.rst:145
+msgid "is the number of records returned by the queries."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:89
+#: ../../build/doc/allpairs-family.rst:146
+msgid "is the average execution time in seconds of pgr_floydWarshall."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:90
+#: ../../build/doc/allpairs-family.rst:147
+msgid "is the average execution time in seconds of pgr_johnson."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "SIZE"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "EDGES"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "DENSITY"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "OUT ROWS"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "Floyd-Warshall"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "Johnson"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+#: ../../build/doc/allpairs-family.rst:96
+msgid "500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "0.18E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "1346"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "0.14"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "0.13"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+#: ../../build/doc/allpairs-family.rst:97
+msgid "1000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "0.36E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "2655"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "0.23"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "0.18"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+#: ../../build/doc/allpairs-family.rst:98
+msgid "1500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+msgid "0.55E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+msgid "4110"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+#: ../../build/doc/allpairs-family.rst:99
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.37"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+msgid "0.34"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+#: ../../build/doc/allpairs-family.rst:99
+msgid "2000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+msgid "0.73E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+msgid "5676"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+msgid "0.56"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+#: ../../build/doc/allpairs-family.rst:100
+msgid "2500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "0.89E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "7177"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "0.84"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "0.51"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+#: ../../build/doc/allpairs-family.rst:101
+msgid "3000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "1.07E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "8778"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "1.28"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "0.68"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+#: ../../build/doc/allpairs-family.rst:102
+msgid "3500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "1.24E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "10526"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "2.08"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "0.95"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+#: ../../build/doc/allpairs-family.rst:103
+msgid "4000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "1.41E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "12484"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "3.16"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "1.24"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+#: ../../build/doc/allpairs-family.rst:104
+msgid "4500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "1.58E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "14354"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "4.49"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "1.47"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+#: ../../build/doc/allpairs-family.rst:105
+msgid "5000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "1.76E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "16503"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "6.05"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "1.78"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+#: ../../build/doc/allpairs-family.rst:106
+msgid "5500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "1.93E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "18623"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "7.53"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "2.03"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+#: ../../build/doc/allpairs-family.rst:107
+msgid "6000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "2.11E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "20710"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "8.47"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "2.37"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+#: ../../build/doc/allpairs-family.rst:108
+msgid "6500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "2.28E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "22752"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "9.99"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "2.68"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+#: ../../build/doc/allpairs-family.rst:109
+msgid "7000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "2.46E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "24687"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "11.82"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "3.12"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+#: ../../build/doc/allpairs-family.rst:110
+msgid "7500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "2.64E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "26861"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "13.94"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "3.60"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+#: ../../build/doc/allpairs-family.rst:111
+msgid "8000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "2.83E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "29050"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "15.61"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "4.09"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+#: ../../build/doc/allpairs-family.rst:112
+msgid "8500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "3.01E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "31693"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "17.43"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "4.63"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+#: ../../build/doc/allpairs-family.rst:113
+msgid "9000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "3.17E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "33879"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "19.19"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "5.34"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+#: ../../build/doc/allpairs-family.rst:114
+msgid "9500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "3.35E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "36287"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "20.77"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "6.24"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+#: ../../build/doc/allpairs-family.rst:115
+msgid "10000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "3.52E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "38491"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "23.26"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "6.51"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:119
+msgid "Two"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:121
+msgid ""
+"This test is with a bounding box The density of the passed graph higher than"
+" of the Test One. For each <SIZE> 30 tests were executed to get the average "
+"The tested edge query is:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:133
+msgid "The tested queries"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:142
+msgid "is the size of the bounding box."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "0.001"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "44"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "0.0608"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "1197"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+#: ../../build/doc/allpairs-family.rst:153
+#: ../../build/doc/allpairs-family.rst:154
+#: ../../build/doc/allpairs-family.rst:154
+msgid "0.10"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "0.002"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "99"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "0.0251"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "4330"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "0.003"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "223"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "0.0122"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "18849"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+#: ../../build/doc/allpairs-family.rst:155
+msgid "0.12"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "0.004"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "358"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "0.0085"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "71834"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+#: ../../build/doc/allpairs-family.rst:156
+msgid "0.16"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.005"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "470"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.0070"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "116290"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.22"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.19"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.006"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "639"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.0055"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "207030"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.27"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.007"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "843"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.0043"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "346930"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.64"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.38"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.008"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "996"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.0037"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "469936"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.90"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.49"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "0.009"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "1146"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "0.0032"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "613135"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "1.26"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "0.62"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "0.010"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "1360"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "0.0027"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "849304"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "1.87"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "0.82"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "0.011"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "1573"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "0.0024"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "1147101"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "2.65"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "1.04"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "0.012"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "1789"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "0.0021"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "1483629"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "3.72"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "1.35"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "0.013"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "1975"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "0.0019"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "1846897"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "4.86"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "1.68"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "0.014"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "2281"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "0.0017"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "2438298"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "7.08"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "2.28"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "0.015"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "2588"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "0.0015"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "3156007"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "10.28"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "2.80"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "0.016"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "2958"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "0.0013"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "4090618"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "14.67"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "3.76"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "0.017"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "3247"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "0.0012"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "4868919"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "18.12"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "4.48"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:174
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:176
+msgid ":ref:`pgr_johnson`"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:177
+msgid ":ref:`pgr_floydWarshall`"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:178
+msgid ""
+"`Boost floyd-Warshall "
+"<http://www.boost.org/libs/graph/doc/floyd_warshall_shortest.html>`_ "
+"algorithm"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:181
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:182
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:183
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/bdAstar-family.po b/locale/it/LC_MESSAGES/bdAstar-family.po
new file mode 100644
index 0000000..b2bd16b
--- /dev/null
+++ b/locale/it/LC_MESSAGES/bdAstar-family.po
@@ -0,0 +1,394 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Bidirectional A* - Family of functions"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid ":ref:`pgr_bdAstar` - Bidirectional A* algorithm for obtaining paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:18
+msgid ""
+":ref:`pgr_bdAstarCost` - Bidirectional A* algorithm to calculate the cost of"
+" the paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid ""
+":ref:`pgr_bdAstarCostMatrix` - Bidirectional A* algorithm to calculate a "
+"cost matrix of paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:35
+msgid ""
+"Based on A* algorithm, the bidirectional search finds a shortest path from a"
+" starting vertex (``start_vid``) to an ending vertex (``end_vid``). It runs "
+"two simultaneous searches: one forward from the ``start_vid``, and one "
+"backward from the ``end_vid``, stopping when the two meet in the middle. "
+"This implementation can be used with a directed graph and an undirected "
+"graph."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:42
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:44
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:46
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:47
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:49
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:51
+msgid "The `agg_cost` the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:53
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path:"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:55
+msgid "The `agg_cost` the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:57
+msgid "Running time (worse case scenario): :math:`O((E + V) * \\log V)`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:58
+msgid ""
+"For large graphs where there is a path bewtween the starting vertex and "
+"ending vertex:"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:60
+msgid "It is expected to terminate faster than pgr_astar"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:63
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:75
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:75
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:78 ../../build/doc/bdAstar-family.rst:80
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:72
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:75
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:77
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:77
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:77
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:78
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:78
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:79
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:79 ../../build/doc/bdAstar-family.rst:81
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:79
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:80
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:80
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:81
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:81
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:82
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:82
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:82
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:84
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:85
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:87
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:87
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:87
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:89
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:90
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:91
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:92
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:93
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:94
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:96
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:96 ../../build/doc/bdAstar-family.rst:97
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:96
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:97
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:97
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:103
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:106
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:107
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:108
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/bdDijkstra-family.po b/locale/it/LC_MESSAGES/bdDijkstra-family.po
new file mode 100644
index 0000000..67de3fa
--- /dev/null
+++ b/locale/it/LC_MESSAGES/bdDijkstra-family.po
@@ -0,0 +1,112 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/bdDijkstra-family.rst:13
+msgid "Bidirectional Dijkstra - Family of functions"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:17
+msgid ""
+":ref:`pgr_bdDijkstra` - Bidirectional Dijkstra algorithm for the shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:18
+msgid ""
+":ref:`pgr_bdDijkstraCost` - Bidirectional Dijkstra to calculate the cost of "
+"the shortest paths"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:19
+msgid ""
+":ref:`pgr_bdDijkstraCostMatrix` - Bidirectional Dijkstra algorithm  to "
+"create a matrix of costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:35
+msgid ""
+"Based on Dijkstra's algorithm, the bidirectional search finds a shortest "
+"path a starting vertex (``start_vid``) to an ending vertex (``end_vid``). It"
+" runs two simultaneous searches: one forward from the source, and one "
+"backward from the target, stopping when the two meet in the middle. This "
+"implementation can be used with a directed graph and an undirected graph."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:42
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:44
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:46
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:47
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:49
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:51
+msgid "The `agg_cost` the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:53
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path:"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:55
+msgid "The `agg_cost` the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:57
+msgid "Running time (worse case scenario): :math:`O((V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:58
+msgid ""
+"For large graphs where there is a path bewtween the starting vertex and "
+"ending vertex:"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:60
+msgid "It is expected to terminate faster than pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:63
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:66
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:67
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:68
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/components-family.po b/locale/it/LC_MESSAGES/components-family.po
new file mode 100644
index 0000000..dbca49a
--- /dev/null
+++ b/locale/it/LC_MESSAGES/components-family.po
@@ -0,0 +1,750 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/components-family.rst:13
+msgid "Components - Family of functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:22
+msgid ""
+":ref:`pgr_connectedComponents` - Return the connected components of an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:23
+msgid ""
+":ref:`pgr_strongComponents` - Return the strongly connected components of a "
+"directed graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid ""
+":ref:`pgr_biconnectedComponents` - Return the biconnected components of an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:25
+msgid ""
+":ref:`pgr_articulationPoints` - Return the articulation points of an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid ":ref:`pgr_bridges` - Return the bridges of an undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:42
+msgid "The problem definition"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:45
+msgid "Connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:46
+msgid ""
+"A connected component of an undirected graph is a set of vertices that are "
+"all reachable from each other."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:49
+#: ../../build/doc/components-family.rst:183
+#: ../../build/doc/components-family.rst:252
+#: ../../build/doc/components-family.rst:312
+msgid "**Notice**: This problem defines on an undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:51
+#: ../../build/doc/components-family.rst:117
+#: ../../build/doc/components-family.rst:185
+#: ../../build/doc/components-family.rst:254
+#: ../../build/doc/components-family.rst:314
+msgid "Given the following query:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:54
+msgid "pgr_connectedComponentsV(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:56
+#: ../../build/doc/components-family.rst:122
+#: ../../build/doc/components-family.rst:190
+#: ../../build/doc/components-family.rst:259
+#: ../../build/doc/components-family.rst:319
+msgid ""
+"where  :math:`sql = \\{(id_i, source_i, target_i, cost_i, "
+"reverse\\_cost_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:58
+#: ../../build/doc/components-family.rst:124
+#: ../../build/doc/components-family.rst:192
+#: ../../build/doc/components-family.rst:261
+#: ../../build/doc/components-family.rst:321
+msgid "and"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:60
+#: ../../build/doc/components-family.rst:126
+#: ../../build/doc/components-family.rst:194
+#: ../../build/doc/components-family.rst:263
+#: ../../build/doc/components-family.rst:323
+msgid ":math:`source = \\bigcup source_i`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:61
+#: ../../build/doc/components-family.rst:127
+#: ../../build/doc/components-family.rst:195
+#: ../../build/doc/components-family.rst:264
+#: ../../build/doc/components-family.rst:324
+msgid ":math:`target = \\bigcup target_i`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:63
+#: ../../build/doc/components-family.rst:129
+#: ../../build/doc/components-family.rst:197
+#: ../../build/doc/components-family.rst:266
+#: ../../build/doc/components-family.rst:326
+msgid "The graphs are defined as follows:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:65
+#: ../../build/doc/components-family.rst:199
+#: ../../build/doc/components-family.rst:268
+#: ../../build/doc/components-family.rst:328
+msgid "The weighted undirected graph, :math:`G(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:67
+#: ../../build/doc/components-family.rst:133
+#: ../../build/doc/components-family.rst:201
+#: ../../build/doc/components-family.rst:270
+#: ../../build/doc/components-family.rst:330
+msgid "the set of vertices  :math:`V`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:69
+#: ../../build/doc/components-family.rst:203
+#: ../../build/doc/components-family.rst:272
+#: ../../build/doc/components-family.rst:332
+msgid ":math:`V = source \\cup target`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:72
+#: ../../build/doc/components-family.rst:137
+#: ../../build/doc/components-family.rst:206
+#: ../../build/doc/components-family.rst:275
+#: ../../build/doc/components-family.rst:335
+msgid "the set of edges :math:`E`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:74
+#: ../../build/doc/components-family.rst:208
+#: ../../build/doc/components-family.rst:277
+#: ../../build/doc/components-family.rst:337
+msgid ""
+":math:`E = \\begin{cases} &\\{(source_i, target_i, cost_i) \\text{ when } "
+"cost >=0 \\} \\\\ \\cup &\\{(target_i, source_i, cost_i) \\text{ when } cost"
+" >=0 \\}  &\\quad  \\text{ if } reverse\\_cost = \\varnothing \\\\ \\\\ "
+"&\\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} \\\\ \\cup "
+"&\\{(target_i, source_i, cost_i) \\text{ when } cost >=0 \\} \\\\ \\cup "
+"&\\{(target_i, source_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i "
+">=0)\\} \\\\ \\cup &\\{(source_i, target_i, reverse\\_cost_i) \\text{ when }"
+" reverse\\_cost_i >=0)\\} &\\quad \\text{ if } reverse\\_cost \\neq "
+"\\varnothing \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:77
+#: ../../build/doc/components-family.rst:142
+#: ../../build/doc/components-family.rst:211
+#: ../../build/doc/components-family.rst:280
+#: ../../build/doc/components-family.rst:340
+msgid "Given:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:79
+#: ../../build/doc/components-family.rst:144
+#: ../../build/doc/components-family.rst:213
+#: ../../build/doc/components-family.rst:282
+#: ../../build/doc/components-family.rst:342
+msgid ":math:`G(V,E)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:81
+#: ../../build/doc/components-family.rst:146
+#: ../../build/doc/components-family.rst:215
+#: ../../build/doc/components-family.rst:284
+#: ../../build/doc/components-family.rst:344
+msgid "Then:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:89
+#: ../../build/doc/components-family.rst:154
+#: ../../build/doc/components-family.rst:223
+msgid ":math:`\\boldsymbol{\\pi} = \\{(component_i, n\\_seq_i, node_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:98
+#: ../../build/doc/components-family.rst:163
+#: ../../build/doc/components-family.rst:232
+#: ../../build/doc/components-family.rst:298
+#: ../../build/doc/components-family.rst:358
+msgid "where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:92
+msgid ":math:`component_i = \\min \\{node_j | node_j \\in component_i\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:93
+#: ../../build/doc/components-family.rst:158
+#: ../../build/doc/components-family.rst:227
+msgid ""
+":math:`n\\_seq_i` is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:94
+#: ../../build/doc/components-family.rst:159
+msgid ":math:`node_i \\in component_i`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:95
+#: ../../build/doc/components-family.rst:160
+#: ../../build/doc/components-family.rst:229
+#: ../../build/doc/components-family.rst:296
+#: ../../build/doc/components-family.rst:356
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:97
+#: ../../build/doc/components-family.rst:162
+#: ../../build/doc/components-family.rst:231
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:98
+#: ../../build/doc/components-family.rst:163
+#: ../../build/doc/components-family.rst:298
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:103
+#: ../../build/doc/components-family.rst:170
+#: ../../build/doc/components-family.rst:239
+#: ../../build/doc/components-family.rst:301
+#: ../../build/doc/components-family.rst:361
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:101
+msgid "The first component is composed of nodes ``0``, ``1`` and ``4``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:102
+msgid "The second component is composed of node ``3``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:103
+msgid "The third component is composed of nodes ``2`` and ``5``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:111
+msgid "Strongly connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:112
+msgid ""
+"A strongly connected component of a directed graph is a set of vertices that"
+" are all reachable from each other."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:115
+msgid "**Notice**: This problem defines on a directed graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:120
+msgid "pgr_strongComponentsV(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:131
+msgid "The weighted directed graph, :math:`G_d(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:135
+msgid ":math:`V = source \\cup target \\cup {start_{vid}} \\cup  {end_{vid}}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:139
+msgid ""
+":math:`E = \\begin{cases} &\\{(source_i, target_i, cost_i) \\text{ when } "
+"cost >=0 \\} &\\quad  \\text{ if } reverse\\_cost = \\varnothing \\\\ \\\\ "
+"&\\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} \\\\ \\cup "
+"&\\{(target_i, source_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i "
+">=0)\\} &\\quad \\text{ if } reverse\\_cost \\neq \\varnothing \\\\ "
+"\\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:157
+#: ../../build/doc/components-family.rst:226
+msgid ":math:`component_i = \\min {node_j | node_j \\in component_i}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:166
+msgid "The first component is composed of nodes ``1``, ``2`` and ``4``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:167
+msgid "The second component is composed of node ``0``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:168
+msgid "The third component is composed of node ``3``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:169
+msgid "The fourth component is composed of node ``5``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:170
+msgid "The fifth component is composed of node ``6``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:177
+msgid "Biconnected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:178
+msgid ""
+"The biconnected components of an undirected graph are the maximal subsets of"
+" vertices such that the removal of a vertex from particular component will "
+"not disconnect the component. Unlike connected components, vertices may "
+"belong to multiple biconnected components. Vertices can be present in "
+"multiple biconnected components, but each edge can only be contained in a "
+"single biconnected component. So, the output only has edge version."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:188
+msgid "pgr_biconnectedComponents(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:228
+msgid ":math:`edge_i \\in component_i`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:232
+#: ../../build/doc/components-family.rst:358
+msgid "`edge` ascending"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:235
+msgid ""
+"The first component is composed of edges ``1 - 2``, ``0 - 1`` and ``0 - 2``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:236
+msgid ""
+"The second component is composed of edges ``2 - 4``, ``2 - 3`` and ``3 - "
+"4``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:237
+msgid "The third component is composed of edge ``5 - 6``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:238
+msgid "The fourth component is composed of edge ``6 - 7``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:239
+msgid ""
+"The fifth component is composed of edges ``8 - 9``, ``9 - 10`` and ``8 - "
+"10``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:246
+msgid "Articulation Points"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:247
+msgid ""
+"Those vertices that belong to more than one biconnected component are called"
+" articulation points or, equivalently, cut vertices. Articulation points are"
+" vertices whose removal would increase the number of connected components in"
+" the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:257
+msgid "pgr_articulationPoints(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:292
+msgid ":math:`\\boldsymbol{\\pi} = \\{node_i\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:295
+msgid ":math:`node_i` is an articulation point."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:301
+msgid "Articulation points are nodes ``2`` and ``6``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:308
+msgid "Bridges"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:309
+msgid ""
+"A bridge is an edge of an undirected graph whose deletion increases its "
+"number of connected components."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:317
+msgid "pgr_bridges(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:352
+msgid ":math:`\\boldsymbol{\\pi} = \\{edge_i\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:355
+msgid ":math:`edge_i` is an edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:361
+msgid "Bridges are edges ``5 <--> 6`` and ``6 <--> 7``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:370
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:372
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:421
+#: ../../build/doc/components-family.rst:440
+#: ../../build/doc/components-family.rst:458
+#: ../../build/doc/components-family.rst:474
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:405
+#: ../../build/doc/components-family.rst:421
+#: ../../build/doc/components-family.rst:440
+#: ../../build/doc/components-family.rst:458
+#: ../../build/doc/components-family.rst:474
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:405
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:405
+#: ../../build/doc/components-family.rst:421
+#: ../../build/doc/components-family.rst:440
+#: ../../build/doc/components-family.rst:458
+#: ../../build/doc/components-family.rst:474
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:377
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:377
+#: ../../build/doc/components-family.rst:378
+#: ../../build/doc/components-family.rst:379
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:377
+#: ../../build/doc/components-family.rst:445
+#: ../../build/doc/components-family.rst:477
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:378
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:378
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:379
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:379
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:380
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:380
+#: ../../build/doc/components-family.rst:384
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:380
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:382
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:384
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:384
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:384
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:386
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:390
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:392
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:393
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:402
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:405
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:407
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:407
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:407
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:416
+msgid ""
+"Description of the return values for connected components and strongly "
+"connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:418
+msgid "Returns set of ``(seq, component, n_seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:423
+#: ../../build/doc/components-family.rst:442
+#: ../../build/doc/components-family.rst:460
+#: ../../build/doc/components-family.rst:476
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:423
+#: ../../build/doc/components-family.rst:425
+#: ../../build/doc/components-family.rst:442
+#: ../../build/doc/components-family.rst:444
+#: ../../build/doc/components-family.rst:460
+#: ../../build/doc/components-family.rst:476
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:423
+#: ../../build/doc/components-family.rst:442
+#: ../../build/doc/components-family.rst:460
+#: ../../build/doc/components-family.rst:476
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:424
+#: ../../build/doc/components-family.rst:443
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:424
+#: ../../build/doc/components-family.rst:426
+#: ../../build/doc/components-family.rst:443
+#: ../../build/doc/components-family.rst:445
+#: ../../build/doc/components-family.rst:461
+#: ../../build/doc/components-family.rst:477
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:424
+msgid ""
+"Component identifier. It is equal to the minimum node identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:425
+#: ../../build/doc/components-family.rst:444
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:425
+#: ../../build/doc/components-family.rst:444
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:426
+#: ../../build/doc/components-family.rst:461
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:426
+#: ../../build/doc/components-family.rst:461
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:435
+msgid ""
+"Description of the return values for biconnected components, connected "
+"components (edge version) and strongly connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:437
+msgid "Returns set of ``(seq, component, n_seq, edge)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:443
+msgid ""
+"Component identifier. It is equal to the minimum edge identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:445
+#: ../../build/doc/components-family.rst:477
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:453
+msgid "Description of the return values for articulation points"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:455
+#: ../../build/doc/components-family.rst:471
+msgid "Returns set of ``(seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:469
+msgid "Description of the return values for bridges"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:483
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:486
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:487
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:488
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/contraction-family.po b/locale/it/LC_MESSAGES/contraction-family.po
new file mode 100644
index 0000000..182343c
--- /dev/null
+++ b/locale/it/LC_MESSAGES/contraction-family.po
@@ -0,0 +1,745 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/contraction-family.rst:14
+msgid "Contraction - Family of functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:21
+msgid ":ref:`pgr_contractGraph`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:29
+msgid "Introduction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:31
+msgid ""
+"In big graphs, like the road graphs, or electric networks, graph contraction"
+" can be used to speed up some graph algorithms. Contraction reduces the size"
+" of the graph by removing some of the vertices and edges and, for example, "
+"might add edges that represent a sequence of original edges decreasing the "
+"total time and space used in graph algorithms."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:33
+msgid ""
+"This implementation gives a flexible framework for adding contraction "
+"algorithms in the future, currently, it supports two algorithms:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:35
+#: ../../build/doc/contraction-family.rst:46
+msgid "Dead end contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:36
+#: ../../build/doc/contraction-family.rst:166
+msgid "Linear contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:38
+msgid "Allowing the user to:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:40
+msgid "Forbid contraction on a set of nodes."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:41
+msgid ""
+"Decide the order of the contraction algorithms and set the maximum number of"
+" times they are to be executed."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:43
+msgid "UNDER DISCUSSION:  Forbid contraction on a set of edges"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:47
+msgid "In the algorithm, dead end contraction is represented by 1."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:50
+msgid "Dead end nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:52
+msgid ""
+"The definition of a dead end node is different for a directed and an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:54
+msgid "In case of a undirected graph, a node is considered a dead end node if"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:56
+msgid "The number of adjacent vertices is 1."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:58
+msgid "In case of an directed graph, a node is considered a dead end node if"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:60
+msgid "There are no outgoing edges and has at least one incoming edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:61
+msgid "There is one incoming and one outgoing edge with the same identifier."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:64
+#: ../../build/doc/contraction-family.rst:178
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:65
+msgid "The green node ``B`` represents a dead end node"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:66
+msgid "The node ``A`` is the only node connecting to ``B``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:67
+#: ../../build/doc/contraction-family.rst:181
+msgid ""
+"Node ``A`` is part of the rest of the graph and has an unlimited number of "
+"incoming and outgoing edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:68
+#: ../../build/doc/contraction-family.rst:183
+msgid "Directed graph"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:86
+msgid "Operation: Dead End Contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:88
+msgid ""
+"The dead end contraction will stop until there are no more dead end nodes. "
+"For example from the following graph:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:91
+#: ../../build/doc/contraction-family.rst:208
+msgid ""
+"Node ``A`` is connected to the rest of the graph by an unlimited number of "
+"edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:92
+msgid ""
+"Node ``B`` is connected to the rest of the graph with one incoming edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:93
+msgid "Node ``B`` is the only node connecting to ``C``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:94
+msgid "The green node ``C`` represents a `Dead End` node"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:113
+msgid ""
+"After contracting ``C``, node ``B`` is now a `Dead End` node and is "
+"contracted:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:129
+msgid "Node ``B`` gets contracted"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:143
+msgid "Nodes ``B`` and ``C`` belong to node ``A``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:148
+msgid "Not Dead End nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:150
+msgid "In this graph ``B`` is not a `dead end` node."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:167
+msgid "In the algorithm, linear contraction is represented by 2."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:170
+msgid "Linear nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:172
+msgid "A node is considered a linear node if satisfies the following:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:174
+msgid "The number of adjacent vertices are 2."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:175
+msgid "Should have at least one incoming edge and one outgoing edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:179
+msgid "The green node ``B`` represents a linear node"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:180
+msgid "The nodes ``A`` and ``C`` are the only nodes connecting to ``B``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:182
+msgid ""
+"Node ``C`` is part of the rest of the graph and has an unlimited number of "
+"incoming and outgoing edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:203
+msgid "Operation: Linear Contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:205
+msgid ""
+"The linear contraction will stop until there are no more linear nodes. For "
+"example from the following graph:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:209
+msgid ""
+"Node ``B`` is connected to the rest of the graph with one incoming edge and "
+"one outgoing edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:210
+msgid ""
+"Node ``C`` is connected to the rest of the graph with one incoming edge and "
+"one outgoing edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:211
+msgid ""
+"Node ``D`` is connected to the rest of the graph by an unlimited number of "
+"edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:212
+msgid "The green nodes ``B`` and ``C`` represents `Linear` nodes."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:234
+msgid ""
+"After contracting ``B``, a new edge gets inserted between ``A`` and ``C`` "
+"which is represented by red color."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:254
+msgid "Node ``C`` is `linear node` and gets contracted."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:272
+msgid ""
+"Nodes ``B`` and ``C`` belong to edge connecting ``A`` and ``D`` which is "
+"represented by red color."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:275
+msgid "Not Linear nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:277
+msgid "In this graph ``B`` is not a `linear` node."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:298
+msgid "The cycle"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:300
+msgid ""
+"Contracting a graph, can be done with more than one operation. The order of "
+"the operations affect the resulting contracted graph, after applying one "
+"operation, the set of vertices that can be contracted by another operation "
+"changes."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:302
+msgid ""
+"This implementation, cycles ``max_cycles`` times through "
+"``operations_order`` ."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:315
+msgid "Contracting Sample Data"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:317
+msgid ""
+"In this section, building and using a contracted graph will be shown by "
+"example."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:319
+msgid "The :doc:`sampledata` for an undirected graph is used"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:320
+msgid "a dead end operation first followed by a linear operation."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:322
+msgid "The original graph:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:326
+msgid "After doing a dead end contraction operation:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:330
+msgid "Doing a linear contraction operation to the graph above"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:335
+msgid ""
+"There are five cases, in this documentation, which arise when calculating "
+"the shortest path between a given source and target. In this examples, "
+"``pgr_dijkstra`` is used."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:338
+msgid "**Case 1**: Both source and target belong to the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:339
+msgid ""
+"**Case 2**: Source belongs to a contracted graph, while target belongs to a "
+"edge subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:340
+msgid ""
+"**Case 3**: Source belongs to a vertex subgraph, while target belongs to an "
+"edge subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:341
+msgid ""
+"**Case 4**: Source belongs to a contracted graph, while target belongs to an"
+" vertex subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:342
+msgid ""
+"**Case 5**: The path contains a new edge added by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:345
+msgid "Construction of the graph in the database"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:348
+msgid "Original Data"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:349
+msgid ""
+"The following query shows the original data involved in the contraction "
+"operation."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:356
+msgid "Contraction Results"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:361
+msgid ""
+"The above results do not represent the contracted graph. They represent the "
+"changes done to the graph after applying the contraction algorithm. We can "
+"see that vertices like 6 and 11 do not appear in the contraction results "
+"because they were not affected by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:364
+msgid "step 1"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:365
+msgid ""
+"Adding extra columns to the ``edge_table`` and ``edge_table_vertices_pgr`` "
+"tables:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:368
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:368
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:370
+msgid "**contracted_vertices**"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:370
+msgid "The vertices set belonging to the vertex/edge"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:371
+#: ../../build/doc/contraction-family.rst:372
+msgid "**is_contracted**"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:371
+msgid ""
+"On a `vertex` table: when ``true`` the vertex is contracted, so is not part "
+"of the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:372
+msgid ""
+"On an `edge` table: when ``true`` the edge was generated by the contraction "
+"algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:375
+msgid "Using the following queries:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:382
+msgid "step 2"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:383
+msgid ""
+"For simplicity, in this documentation, store the results of the call to "
+"pgr_contractGraph in a temporary table"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:390
+msgid "step 3"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:391
+msgid ""
+"Update the `vertex` and `edge` tables using the results of the call to "
+"pgr_contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:393
+msgid ""
+"In `edge_table_vertices_pgr.is_contracted` indicate the vertices that are "
+"contracted."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:399
+msgid ""
+"Add to `edge_table_vertices_pgr.contracted_vertices`  the contracted "
+"vertices belonging to the vertices."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:405
+msgid "Insert the new edges generated by  pgr_contractGraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:412
+msgid "step 3.1"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:413
+msgid "Verify visually the updates."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:415
+msgid "On the `edge_table_vertices_pgr`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:421
+msgid "On the `edge_table`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:427
+msgid ""
+"vertices that belong to the contracted graph are the non contracted vertices"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:434
+msgid "case 1: Both source and target belong to the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:435
+msgid ""
+"Inspecting the contracted graph above, vertex 3 and vertex 11 are part of "
+"the contracted graph. In the following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:437
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:438
+#: ../../build/doc/contraction-family.rst:452
+#: ../../build/doc/contraction-family.rst:469
+#: ../../build/doc/contraction-family.rst:485
+#: ../../build/doc/contraction-family.rst:507
+msgid ""
+"when selecting the edges, only edges that have the source and the target in "
+"that set are the edges belonging to the contracted graph, that is done in "
+"the WHERE clause."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:440
+msgid ""
+"Visually, looking at the original graph, going from 3 to 11: 3 -> 6 -> 11, "
+"and in the contracted graph, it is also 3 -> 6 -> 11. The results, on the "
+"contracted graph match the results as if it was done on the original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:448
+msgid ""
+"case 2: Source belongs to the contracted graph, while target belongs to a "
+"edge subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:452
+msgid ""
+"Inspecting the contracted graph above, vertex 3 is part of the contracted "
+"graph and vertex 1 belongs to the contracted subgraph of edge 19. In the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:450
+msgid ""
+"expand1 holds the contracted vertices of the edge where vertex 1 belongs. "
+"(belongs to edge 19)."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:451
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph and "
+"also the contracted vertices of edge 19."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:454
+msgid ""
+"Visually, looking at the original graph, going from 3 to 1: 3 -> 2 -> 1, and"
+" in the contracted graph, it is also 3 -> 2 -> 1. The results, on the "
+"contracted graph match the results as if it was done on the original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:463
+msgid ""
+"case 3: Source belongs to a vertex subgraph, while target belongs to an edge"
+" subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:464
+msgid ""
+"Inspecting the contracted graph above, vertex 7 belongs to the contracted "
+"subgraph of vertex 5 and vertex 13 belongs to the contracted subgraph of "
+"edge 21. In the following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:466
+#: ../../build/doc/contraction-family.rst:483
+msgid ""
+"expand7 holds the contracted vertices of vertex where vertex 7 belongs. "
+"(belongs to vertex 5)"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:467
+msgid ""
+"expand13 holds the contracted vertices of edge where vertex 13 belongs. "
+"(belongs to edge 21)"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:468
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph, "
+"contracted vertices of vertex 5 and contracted vertices of edge 21."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:471
+msgid ""
+"Visually, looking at the original graph, going from 7 to 13: 7 -> 8 -> 5 -> "
+"10 -> 13, and in the contracted graph, it is also 7 -> 8 -> 5 -> 10 -> 13. "
+"The results, on the contracted graph match the results as if it was done on "
+"the original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:480
+msgid ""
+"case 4: Source belongs to the contracted graph, while target belongs to an "
+"vertex subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:481
+msgid ""
+"Inspecting the contracted graph above, vertex 3 is part of the contracted "
+"graph and vertex 7 belongs to the contracted subgraph of vertex 5. In the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:484
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph and "
+"the contracted vertices of vertex 5."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:487
+msgid ""
+"Visually, looking at the original graph, going from 3 to 7: 3 -> 2 -> 5 -> 8"
+" -> 7, but in the contracted graph, it is 3 -> 5 -> 8 -> 7. The results, on "
+"the contracted graph do not match the results as if it was done on the "
+"original graph. This is because the path contains edge 19 which is added by "
+"the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:495
+msgid "case 5: The path contains an edge added by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:496
+msgid ""
+"In the previous example we can see that the path from vertex 3 to vertex 7 "
+"contains an edge which is added by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:502
+msgid ""
+"Inspecting the contracted graph above, edge 19 should be expanded. In the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:504
+msgid "first_dijkstra holds the results of the dijkstra query."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:505
+msgid ""
+"edges_to_expand holds the edges added by the contraction algorithm and "
+"included in the path."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:506
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph, "
+"vertices of the contracted solution and the contracted vertices of the edges"
+" added by the contraction algorithm and included in the contracted solution."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:509
+msgid ""
+"Visually, looking at the original graph, going from 3 to 7: 3 -> 2 -> 5 -> 8"
+" -> 7, and in the contracted graph, it is also 3 -> 2 -> 5 -> 8 -> 7. The "
+"results, on the contracted graph match the results as if it was done on the "
+"original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:517
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:519
+msgid ""
+"http://www.cs.cmu.edu/afs/cs/academic/class/15210-f12/www/lectures/lecture16.pdf"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:520
+msgid "http://algo2.iti.kit.edu/documents/routeplanning/geisberger_dipl.pdf"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:521
+msgid ""
+"The queries use :ref:`pgr_contractGraph` function and the :doc:`sampledata` "
+"network."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:524
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:525
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:526
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/cost-category.po b/locale/it/LC_MESSAGES/cost-category.po
new file mode 100644
index 0000000..efea606
--- /dev/null
+++ b/locale/it/LC_MESSAGES/cost-category.po
@@ -0,0 +1,178 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/cost-category.rst:13
+msgid "Cost - Category"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:17
+msgid ":ref:`pgr_aStarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:18
+msgid ":ref:`pgr_bdAstarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:19
+msgid ":ref:`pgr_bdDijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:20
+msgid ":ref:`pgr_dijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:21
+msgid ":ref:`pgr_withPointsCost`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:30
+msgid "General Information"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:34
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:36
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:38
+msgid "Each function works as part of the family it belongs to."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:39
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:40
+msgid ""
+"Returns the sum of the costs of the resulting path(s) for pair combination "
+"of nodes in the graph."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:41
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:42
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:44
+msgid ""
+"The returned values are in the form of a set of `(start_vid, end_vid, "
+"agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:46
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:48
+msgid "The `agg_cost` int the non included values `(v, v)` is `0`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:50
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:52
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:54
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:56
+msgid ""
+"Depending on the function and its parameters, the results can be symmetric."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:58
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:60
+msgid "Any duplicated value in the `start_vids` or in `end_vids` are ignored."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:62
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:64
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:65
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:70
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:73
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:74
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:75
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/costMatrix-category.po b/locale/it/LC_MESSAGES/costMatrix-category.po
new file mode 100644
index 0000000..ad36b5e
--- /dev/null
+++ b/locale/it/LC_MESSAGES/costMatrix-category.po
@@ -0,0 +1,237 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/costMatrix-category.rst:13
+msgid "Cost Matrix - Category"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:17
+msgid ":ref:`pgr_aStarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:18
+msgid ":ref:`pgr_bdAstarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:19
+msgid ":ref:`pgr_bdDijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:20
+msgid ":ref:`pgr_dijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:21
+msgid ":ref:`pgr_withPointsCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:40
+msgid "General Information"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:43
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:45
+msgid ""
+":ref:`tsp` needs as input a symmetric cost matrix and no edge `(u, v)` must "
+"value :math:`\\infty`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:47
+msgid ""
+"This collection of functions will return a cost matrix in form of a table."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:51
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:53
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:55
+msgid "Can be used as input to :ref:`pgr_tsp`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:57
+msgid ""
+"when the resulting matrix is symmetric and there is no :math:`\\infty` "
+"value."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:58
+msgid "It will be the users responsibility to make the matrix symmetric."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:60
+msgid "By using geometric or harmonic average of the non symmetric values."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:61
+msgid "By using max or min the non symmetric values."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:62
+msgid ""
+"By setting the upper triangle to be the mirror image of the lower triangle."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:63
+msgid ""
+"By setting the lower triangle to be the mirror image of the upper triangle."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:65
+msgid "It is also the users responsibility to fix an :math:`\\infty` value."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:67
+msgid "Each function works as part of the family it belongs to."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:68
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:69
+msgid ""
+"Returns the sum of the costs of the shortest path for pair combination of "
+"nodes in the graph."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:70
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:71
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:73
+msgid ""
+"The returned values are in the form of a set of `(start_vid, end_vid, "
+"agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:75
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:77
+msgid "The `agg_cost` int the non included values `(v, v)` is `0`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:79
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:81
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:83
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:85
+msgid ""
+"Depending on the function and its parameters, the results can be symmetric."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:87
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:89
+msgid "Any duplicated value in the `start_vids` are ignored."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:91
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:93
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:94
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:96
+msgid "Running time: approximately :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:101
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:103
+msgid ":ref:`pgr_tsp`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:106
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:107
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:108
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/cost_result.po b/locale/it/LC_MESSAGES/cost_result.po
new file mode 100644
index 0000000..cfc1232
--- /dev/null
+++ b/locale/it/LC_MESSAGES/cost_result.po
@@ -0,0 +1,92 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/cost_result.rst:13
+msgid "pgr_costResult[]"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:19 ../../build/doc/cost_result.rst:52
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:21
+msgid ""
+"``pgr_costResult[]`` — A set of records to describe a path result with cost "
+"attribute."
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:25 ../../build/doc/cost_result.rst:58
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:37 ../../build/doc/cost_result.rst:71
+msgid "sequential ID indicating the path order"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:38 ../../build/doc/cost_result.rst:73
+msgid "generic name, to be specified by the function, typically the node id"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:39 ../../build/doc/cost_result.rst:74
+msgid "generic name, to be specified by the function, typically the edge id"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:40 ../../build/doc/cost_result.rst:75
+msgid "cost attribute"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:46
+msgid "pgr_costResult3[] - Multiple Path Results with Cost"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:54
+msgid ""
+"``pgr_costResult3[]`` — A set of records to describe a path result with cost"
+" attribute."
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:72
+msgid "generic name, to be specified by the function, typically the path id"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:79
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:80
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:81
+msgid "Replaces ``path_result``"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:85
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:87
+msgid ":ref:`introduction`"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:90
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:91
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:92
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/dijkstra-family.po b/locale/it/LC_MESSAGES/dijkstra-family.po
new file mode 100644
index 0000000..a9fa495
--- /dev/null
+++ b/locale/it/LC_MESSAGES/dijkstra-family.po
@@ -0,0 +1,262 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/dijkstra-family.rst:13
+msgid "Dijkstra - Family of functions"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:17
+msgid ":ref:`pgr_dijkstra` - Dijkstra's algorithm for the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:18
+msgid ""
+":ref:`pgr_dijkstraCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:19
+msgid ""
+":ref:`pgr_dijkstraCostMatrix` - Use pgr_dijkstra to create a costs matrix."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:20
+msgid ""
+":ref:`pgr_drivingDistance` - Use pgr_dijkstra to calculate catchament "
+"information."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:21
+msgid ""
+":ref:`pgr_ksp` - Use Yen algorithm with pgr_dijkstra to get the K shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:22
+msgid ":ref:`pgr_dijkstraVia` - Get a route of a seuence of vertices."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:39
+msgid "The problem definition (Advanced documentation)"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:42
+msgid "Given the following query:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:45
+msgid "pgr_dijkstra(:math:`sql, start_{vid}, end_{vid}, directed`)"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:47
+msgid ""
+"where  :math:`sql = \\{(id_i, source_i, target_i, cost_i, "
+"reverse\\_cost_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:49
+msgid "and"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:51
+msgid ":math:`source = \\bigcup source_i`,"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:52
+msgid ":math:`target = \\bigcup target_i`,"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:54
+msgid "The graphs are defined as follows:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:57
+msgid "Directed graph"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:58
+msgid "The weighted directed graph, :math:`G_d(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:60
+#: ../../build/doc/dijkstra-family.rst:79
+msgid "the set of vertices  :math:`V`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:62
+msgid ":math:`V = source \\cup target \\cup {start_{vid}} \\cup  {end_{vid}}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:64
+#: ../../build/doc/dijkstra-family.rst:84
+msgid "the set of edges :math:`E`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:66
+msgid ""
+":math:`E = \\begin{cases} \\text{ }  \\{(source_i, target_i, cost_i) \\text{"
+" when } cost >=0 \\} & \\quad \\text{if } reverse\\_cost = \\varnothing \\\\"
+" \\text{ }  \\text{ }  & \\quad \\text{ } \\\\ \\text{ }  \\{(source_i, "
+"target_i, cost_i) \\text{ when } cost >=0 \\} &  \\quad \\text{ } \\\\ \\cup"
+"      \\{(target_i, source_i, reverse\\_cost_i) \\text{ when } "
+"reverse\\_cost_i>=0 \\} & \\quad \\text{if } reverse\\_cost \\neq "
+"\\varnothing \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:76
+msgid "Undirected graph"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:77
+msgid "The weighted undirected graph, :math:`G_u(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:81
+msgid ":math:`V = source \\cup target \\cup {start_v{vid}} \\cup  {end_{vid}}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:86
+msgid ""
+":math:`E = \\begin{cases} \\text{ }  \\{(source_i, target_i, cost_i) \\text{"
+" when } cost >=0 \\}  & \\quad \\text{ } \\\\ \\cup      \\{(target_i, "
+"source_i, cost_i) \\text{ when } cost >=0 \\}  & \\quad \\text{ if } "
+"reverse\\_cost = \\varnothing \\\\ \\text{ }  \\text{ }  & \\text{ } \\\\ "
+"\\text{ }  \\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & "
+"\\text{ } \\\\ \\cup  \\{(target_i, source_i, cost_i) \\text{ when } cost "
+">=0 \\} & \\text{ } \\\\ \\cup  \\{(target_i, source_i, reverse\\_cost_i) "
+"\\text{ when } reverse\\_cost_i >=0)\\} & \\text{ } \\\\ \\cup  "
+"\\{(source_i, target_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i "
+">=0)\\} & \\quad \\text{ if } reverse\\_cost \\neq \\varnothing \\\\ "
+"\\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:99
+msgid "The problem"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:100
+msgid "Given:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:102
+msgid ":math:`start_{vid} \\in V` a starting vertex"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:103
+msgid ":math:`end_{vid} \\in V` an ending vertex"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:104
+msgid ""
+":math:`G(V,E) = \\begin{cases} G_d(V,E) & \\quad \\text{ if6 } directed = "
+"true \\\\ G_u(V,E) & \\quad \\text{ if5 } directed = false \\\\ "
+"\\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:109
+msgid "Then:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:118
+msgid ""
+":math:`\\boldsymbol{\\pi} = \\{(path\\_seq_i, node_i, edge_i, cost_i, "
+"agg\\_cost_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:131
+msgid "where:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:121
+msgid ":math:`path\\_seq_i = i`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:122
+msgid ":math:`path\\_seq_{| \\pi |} = | \\pi |`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:123
+msgid ":math:`node_i \\in V`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:124
+msgid ":math:`node_1 = start_{vid}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:125
+msgid ":math:`node_{| \\pi |}  = end_{vid}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:126
+msgid ":math:`\\forall i \\neq | \\pi |, \\quad (node_i, node_{i+1}, cost_i) \\in E`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:127
+msgid ""
+":math:`edge_i  = \\begin{cases}  id_{(node_i, node_{i+1},cost_i)}  &\\quad  "
+"\\text{when } i \\neq | \\pi | \\\\ -1 &\\quad  \\text{when } i = | \\pi | "
+"\\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:128
+msgid ":math:`cost_i = cost_{(node_i, node_{i+1})}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:129
+msgid ""
+":math:`agg\\_cost_i  = \\begin{cases}  0   &\\quad  \\text{when } i = 1  "
+"\\\\ \\displaystyle\\sum_{k=1}^{i}  cost_{(node_{k-1}, node_k)}  &\\quad  "
+"\\text{when } i \\neq 1 \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:137
+msgid ""
+"In other words: The algorithm returns a the shortest path between "
+":math:`start_{vid}` and :math:`end_{vid}` , if it exists, in terms of a "
+"sequence of nodes  and of edges,"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:134
+msgid ""
+":math:`path\\_seq` indicates the relative position in the path of the "
+":math:`node` or :math:`edge`."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:135
+msgid ""
+":math:`cost` is the cost of the edge to be used to go to the next node."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:136
+msgid ""
+":math:`agg\\_cost` is the cost from the :math:`start_{vid}` up to the node."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:139
+msgid "If there is no path, the resulting set is empty."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:143
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:146
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:147
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:148
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/drivingDistance-category.po b/locale/it/LC_MESSAGES/drivingDistance-category.po
new file mode 100644
index 0000000..a71b4c7
--- /dev/null
+++ b/locale/it/LC_MESSAGES/drivingDistance-category.po
@@ -0,0 +1,52 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/drivingDistance-category.rst:14
+msgid "Driving Distance - Category"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:18
+msgid ":ref:`pgr_drivingDistance` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:19
+msgid ":ref:`pgr_withPointsDD` - Driving Distance based on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:20
+msgid "Post pocessing"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:22
+msgid ":ref:`pgr_alphaShape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:23
+msgid ":ref:`pgr_points_as_polygon` - Polygon around a set of points"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:36
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:39
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:40
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:41
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/flow-family.po b/locale/it/LC_MESSAGES/flow-family.po
new file mode 100644
index 0000000..a000199
--- /dev/null
+++ b/locale/it/LC_MESSAGES/flow-family.po
@@ -0,0 +1,331 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Flow - Family of functions"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid ""
+":ref:`pgr_maxFlow` - Only the Max flow calculation using Push and Relabel "
+"algorithm."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid ""
+":ref:`pgr_BoykovKolmogorov` - Boykov and Kolmogorov with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:19
+msgid ""
+":ref:`pgr_EdmondsKarp` - Edmonds and Karp algorithm with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid ""
+":ref:`pgr_PushRelabel` - Push and relabel algorithm with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "Applications"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:23
+msgid ""
+":ref:`pgr_edgeDisjointPaths` - Calculates edge disjoint paths between two "
+"groups of vertices."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:24
+msgid ""
+":ref:`pgr_maxCardinalityMatch` - Calculates a maximum cardinality matching "
+"in a graph."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:45
+msgid "Flow Functions General Information"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:51
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:52
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:53
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:54
+msgid ""
+"When the maximum flow is 0 then there is no flow and **EMPTY SET** is "
+"returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:56
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:58
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:59
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:61
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:63
+msgid ""
+"Creates a **super source** and edges to all the source(s), and a **super "
+"target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:64
+msgid ""
+"The maximum flow through the graph is guaranteed to be the value returned by"
+" :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and"
+" can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:66
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:67
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:72
+msgid ""
+":ref:`pgr_maxFlow <pgr_maxFlow>`  is the  maximum Flow and that maximum is "
+"guaranteed to be the same on the functions :ref:`pgr_pushRelabel "
+"<pgr_pushRelabel>`, :ref:`pgr_edmondsKarp <pgr_edmondsKarp>`, "
+":ref:`pgr_boykovKolmogorov <pgr_boykovKolmogorov>`, but the actual flow "
+"through each edge may vary."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:77
+msgid "Problem definition"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:79
+msgid ""
+"A flow network is a directed graph where each edge has a capacity and a "
+"flow. The flow through an edge must not exceed the capacity of the edge. "
+"Additionally, the incoming and outgoing flow of a node must be equal except "
+"the for source which only has outgoing flow, and the destination(sink) which"
+" only has incoming flow."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:83
+msgid ""
+"Maximum flow algorithms calculate the maximum flow through the graph and the"
+" flow of each edge."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:85
+msgid ""
+"The maximum flow through the graph is guaranteed to be the same with all "
+"implementations, but the actual flow through each edge may vary. Given the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:89
+msgid "pgr_maxFlow :math:`(edges\\_sql, source\\_vertex, sink\\_vertex)`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:91
+msgid ""
+"where :math:`edges\\_sql = \\{(id_i, source_i, target_i, capacity_i, "
+"reverse\\_capacity_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:94
+msgid "Graph definition"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:95
+msgid "The weighted directed graph, :math:`G(V,E)`, is defined as:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:97
+msgid "the set of vertices  :math:`V`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:99
+msgid ""
+":math:`source\\_vertex  \\cup  sink\\_vertex  \\bigcup  source_i  \\bigcup  "
+"target_i`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:101
+msgid "the set of edges :math:`E`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:103
+msgid ""
+":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, capacity_i) "
+"\\text{ when } capacity > 0 \\} & \\quad  \\text{ if } reverse\\_capacity = "
+"\\varnothing \\\\ \\text{ } & \\quad \\text{ } \\\\ \\{(source_i, target_i, "
+"capacity_i) \\text{ when } capacity > 0 \\} & \\text{ } \\\\ \\cup "
+"\\{(target_i, source_i, reverse\\_capacity_i) \\text{ when } "
+"reverse\\_capacity_i > 0)\\} & \\quad \\text{ if } reverse\\_capacity \\neq "
+"\\varnothing \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:111
+msgid "Maximum flow problem"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:112
+msgid "Given:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:115
+msgid ":math:`G(V,E)`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:116
+msgid ":math:`source\\_vertex \\in V` the source vertex"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:117
+msgid ":math:`sink\\_vertex \\in V` the sink vertex"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:119
+msgid "Then:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:121
+msgid ":math:`pgr\\_maxFlow(edges\\_sql, source, sink) = \\boldsymbol{\\Phi}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:123
+msgid ""
+":math:`\\boldsymbol{\\Phi} = {(id_i, edge\\_id_i, source_i, target_i, "
+"flow_i, residual\\_capacity_i)}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:125
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:127
+msgid ""
+":math:`\\boldsymbol{\\Phi}` is a subset of the original edges with their "
+"residual capacity and flow. The maximum flow through the graph can be "
+"obtained by aggregating on the source or sink and summing the flow from/to "
+"it. In particular:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:129
+msgid ":math:`id_i = i`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:130
+msgid ":math:`edge\\_id = id_i` in edges_sql"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:131
+msgid ":math:`residual\\_capacity_i = capacity_i - flow_i`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:135
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:137
+msgid "https://en.wikipedia.org/wiki/Maximum_flow_problem"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:140
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:141
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:142
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/geom_result.po b/locale/it/LC_MESSAGES/geom_result.po
new file mode 100644
index 0000000..e2d89a1
--- /dev/null
+++ b/locale/it/LC_MESSAGES/geom_result.po
@@ -0,0 +1,74 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/geom_result.rst:13
+msgid "pgr_geomResult[]"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:21
+msgid ""
+"``pgr_geomResult[]`` — A set of records to describe a path result with "
+"geometry attribute."
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:25
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:37
+msgid "sequential ID indicating the path order"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:38 ../../build/doc/geom_result.rst:39
+msgid "generic name, to be specified by the function"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:40
+msgid "geometry attribute"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:44
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:45
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:46
+msgid "Replaces ``geoms``"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:50
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:52
+msgid ":ref:`introduction`"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:56
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:57
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:58
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/index.po b/locale/it/LC_MESSAGES/index.po
new file mode 100644
index 0000000..44ac3e4
--- /dev/null
+++ b/locale/it/LC_MESSAGES/index.po
@@ -0,0 +1,306 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/index.rst:14
+msgid "Table of Contents"
+msgstr ""
+
+#: ../../build/doc/index.rst:16
+msgid ""
+"pgRouting extends the `PostGIS <http://postgis.net>`_/`PostgreSQL "
+"<http://postgresql.org>`_ geospatial database to provide geospatial routing "
+"and other network analysis functionality."
+msgstr ""
+
+#: ../../build/doc/index.rst:18
+msgid "This is the manual for pgRouting |release|."
+msgstr ""
+
+#: ../../build/doc/index.rst:24
+msgid ""
+"The pgRouting Manual is licensed under a `Creative Commons Attribution-Share"
+" Alike 3.0 License <http://creativecommons.org/licenses/by-sa/3.0/>`_. Feel "
+"free to use this material any way you like, but we ask that you attribute "
+"credit to the pgRouting Project and wherever possible, a link back to "
+"http://pgrouting.org. For other licenses used in pgRouting see the "
+":ref:`license` page."
+msgstr ""
+
+#: ../../build/doc/index.rst:27
+msgid "General"
+msgstr ""
+
+#: ../../build/doc/index.rst:37
+msgid ":doc:`sampledata` that is used in the examples of this manual."
+msgstr ""
+
+#: ../../build/doc/index.rst:45
+msgid "Pgrouting Concepts"
+msgstr ""
+
+#: ../../build/doc/index.rst:54
+msgid "Reference"
+msgstr ""
+
+#: ../../build/doc/index.rst:55
+msgid ":ref:`pgr_version` - to get pgRouting's version information."
+msgstr ""
+
+#: ../../build/doc/index.rst:64
+msgid ":ref:`Data Types <data_types>`"
+msgstr ""
+
+#: ../../build/doc/index.rst:67
+msgid ""
+":ref:`type_cost_result` -  A set of records to describe a path result with "
+"cost attribute."
+msgstr ""
+
+#: ../../build/doc/index.rst:68
+msgid ""
+":ref:`pgr_costResult3[]<type_cost_result3>` - A set of records to describe a"
+" path result with cost attribute."
+msgstr ""
+
+#: ../../build/doc/index.rst:69
+msgid ""
+":ref:`pgr_geomResult<type_geom_result>` - A set of records to describe a "
+"path result with geometry attribute."
+msgstr ""
+
+#: ../../build/doc/index.rst:78
+msgid ":ref:`Topology Functions <topology_functions>`"
+msgstr ""
+
+#: ../../build/doc/index.rst:80
+msgid ""
+":ref:`pgr_create_topology` -  to create a topology based on the geometry."
+msgstr ""
+
+#: ../../build/doc/index.rst:81
+msgid ""
+":ref:`pgr_create_vert_table` - to reconstruct the vertices table based on "
+"the source and target information."
+msgstr ""
+
+#: ../../build/doc/index.rst:82
+msgid ""
+":ref:`pgr_analyze_graph`  - to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/index.rst:83
+msgid ":ref:`pgr_analyze_oneway` - to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/index.rst:84
+msgid ":ref:`pgr_node_network`  -to create nodes to a not noded edge table."
+msgstr ""
+
+#: ../../build/doc/index.rst:93
+msgid ":ref:`Routing functions <routing_functions>`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:4
+msgid ":ref:`all_pairs`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:6
+msgid ":ref:`pgr_floydWarshall` - Floyd-Warshall's Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:7
+msgid ":ref:`pgr_johnson`- Johnson’s Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:9
+msgid ":ref:`pgr_astar` - Shortest Path A*"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:11
+msgid ":ref:`pgr_bdAstar` - Bi-directional A* Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:13
+msgid ":ref:`pgr_bdDijkstra` - Bi-directional Dijkstra Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:16
+msgid ":ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:3
+msgid ":ref:`pgr_dijkstra` - Dijkstra's algorithm for the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:4
+msgid ""
+":ref:`pgr_dijkstraCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:5
+msgid ""
+":ref:`pgr_dijkstraCostMatrix` - Use pgr_dijkstra to create a costs matrix."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:6
+msgid ""
+":ref:`pgr_drivingDistance` - Use pgr_dijkstra to calculate catchament "
+"information."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:7
+msgid ""
+":ref:`pgr_ksp` - Use Yen algorithm with pgr_dijkstra to get the K shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:8
+msgid ":ref:`pgr_dijkstraVia` - Get a route of a seuence of vertices."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:22
+msgid ":ref:`pgr_ksp` - K-Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:24
+msgid ":ref:`pgr_trsp<trsp>` - Turn Restriction Shortest Path (TRSP)"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:26
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:3
+msgid ":ref:`pgr_TSP` - When input is given as matrix cell information."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:4
+msgid ":ref:`pgr_eucledianTSP` - When input are coordinates."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:32
+msgid ":ref:`drivingDistance`"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:3
+msgid ":ref:`pgr_drivingDistance` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:4
+msgid ":ref:`pgr_withPointsDD` - Driving Distance based on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:5
+msgid "Post pocessing"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:7
+msgid ":ref:`pgr_alphaShape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:8
+msgid ":ref:`pgr_points_as_polygon` - Polygon around a set of points"
+msgstr ""
+
+#: ../../build/doc/index.rst:108
+msgid "Available Functions but not official pgRouting functions"
+msgstr ""
+
+#: ../../build/doc/index.rst:110
+msgid ":ref:`Stable`"
+msgstr ""
+
+#: ../../build/doc/index.rst:111
+msgid ":ref:`proposed`"
+msgstr ""
+
+#: ../../build/doc/index.rst:121
+msgid ":ref:`Change Log <change_log>`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:3
+msgid ":ref:`changelog_2_5_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:4
+msgid ":ref:`changelog_2_4_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:5
+msgid ":ref:`changelog_2_4_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:6
+msgid ":ref:`changelog_2_4_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:7
+msgid ":ref:`changelog_2_3_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:8
+msgid ":ref:`changelog_2_3_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:9
+msgid ":ref:`changelog_2_3_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:10
+msgid ":ref:`changelog_2_2_4`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:11
+msgid ":ref:`changelog_2_2_3`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:12
+msgid ":ref:`changelog_2_2_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:13
+msgid ":ref:`changelog_2_2_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:14
+msgid ":ref:`changelog_2_2_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:15
+msgid ":ref:`changelog_2_1_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:16
+msgid ":ref:`changelog_2_0_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:17
+msgid ":ref:`changelog_2_0_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:18
+msgid ":ref:`changelog_1_x`"
+msgstr ""
+
+#: ../../build/doc/index.rst:135
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/index.rst:136
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/index.rst:137
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgRouting-concepts.po b/locale/it/LC_MESSAGES/pgRouting-concepts.po
new file mode 100644
index 0000000..34885ba
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgRouting-concepts.po
@@ -0,0 +1,1071 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "pgRouting Concepts"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:0
+msgid "Contents"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "Getting Started"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid ""
+"This is a simple guide to walk you through the steps of getting started with"
+" pgRouting. In this guide we will cover:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:32
+msgid "Create a routing Database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:34
+msgid ""
+"The first thing we need to do is create a database and load pgrouting in the"
+" database. Typically you will create a database for each project. Once you "
+"have a database to work in, your can load your data and build your "
+"application in that database. This makes it easy to move your project later "
+"if you want to to say a production server."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:40
+msgid "For Postgresql 9.2 and later versions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:51
+msgid "Load Data"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:53
+msgid ""
+"How you load your data will depend in what form it comes it. There are "
+"various OpenSource tools that can help you, like:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:56
+msgid ""
+"this is a tool for loading OSM data into postgresql with pgRouting "
+"requirements"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:57
+msgid "this is the postgresql shapefile loader"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:58
+msgid "this is a vector data conversion utility"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:59
+msgid "this is a tool for loading OSM data into postgresql"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:61
+msgid ""
+"So these tools and probably others will allow you to read vector data so "
+"that you may then load that data into your database as a table of some kind."
+" At this point you need to know a little about your data structure and "
+"content. One easy way to browse your new data table is with pgAdmin3 or "
+"phpPgAdmin."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:69
+msgid "Build a Routing Topology"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:71
+msgid ""
+"Next we need to build a topology for our street data. What this means is "
+"that for any given edge in your street data the ends of that edge will be "
+"connected to a unique node and to other edges that are also connected to "
+"that same unique node. Once all the edges are connected to nodes we have a "
+"graph that can be used for routing with pgrouting. We provide a tool that "
+"will help with this:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:77
+msgid "this step is not needed if data is loaded with `osm2pgrouting`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:83
+msgid ":ref:`pgr_create_topology`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:88
+msgid "Check the Routing Topology"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:90
+msgid ""
+"There are lots of possible sources for errors in a graph. The data that you "
+"started with may not have been designed with routing in mind. A graph has "
+"some very specific requirements. One is that it is *NODED*, this means that "
+"except for some very specific use cases, each road segment starts and ends "
+"at a node and that in general is does not cross another road segment that it"
+" should be connected to."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:97
+msgid ""
+"There can be other errors like the direction of a one-way street being "
+"entered in the wrong direction. We do not have tools to search for all "
+"possible errors but we have some basic tools that might help."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:109
+msgid ":ref:`pgr_analyze_graph`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:110
+msgid ":ref:`pgr_analyze_oneway`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:111
+msgid ":ref:`pgr_node_network`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:117
+msgid "Compute a Path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:119
+msgid ""
+"Once you have all the preparation work done above, computing a route is "
+"fairly easy. We have a lot of different algorithms that can work with your "
+"prepared road network. The general form of a route query is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:127
+msgid ""
+"As you can see this is fairly straight forward and you can look and the "
+"specific algorithms for the details of the signatures and how to use them. "
+"These results have information like edge id and/or the node id along with "
+"the cost or geometry for the step in the path from *start* to *end*. Using "
+"the ids you can join these result back to your edge table to get more "
+"information about each step in the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:134
+msgid ":ref:`pgr_dijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:141
+msgid "Inner Queries"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:146
+msgid ""
+"There are several kinds of valid inner queries and also the columns returned"
+" are depending of the function. Which kind of inner query will depend on the"
+" function(s) requirements. To simplify variety of types, ``ANY-INTEGER`` and"
+" ``ANY-NUMERICAL`` is used."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:152
+#: ../../build/doc/pgRouting-concepts.rst:182
+#: ../../build/doc/pgRouting-concepts.rst:212
+#: ../../build/doc/pgRouting-concepts.rst:269
+#: ../../build/doc/pgRouting-concepts.rst:300
+#: ../../build/doc/pgRouting-concepts.rst:334
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:154
+#: ../../build/doc/pgRouting-concepts.rst:184
+#: ../../build/doc/pgRouting-concepts.rst:214
+#: ../../build/doc/pgRouting-concepts.rst:271
+#: ../../build/doc/pgRouting-concepts.rst:302
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:155
+#: ../../build/doc/pgRouting-concepts.rst:185
+#: ../../build/doc/pgRouting-concepts.rst:215
+#: ../../build/doc/pgRouting-concepts.rst:272
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:162
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:164
+#: ../../build/doc/pgRouting-concepts.rst:195
+#: ../../build/doc/pgRouting-concepts.rst:247
+#: ../../build/doc/pgRouting-concepts.rst:282
+#: ../../build/doc/pgRouting-concepts.rst:314
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+#: ../../build/doc/pgRouting-concepts.rst:317
+#: ../../build/doc/pgRouting-concepts.rst:360
+#: ../../build/doc/pgRouting-concepts.rst:383
+#: ../../build/doc/pgRouting-concepts.rst:400
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:227
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+#: ../../build/doc/pgRouting-concepts.rst:317
+#: ../../build/doc/pgRouting-concepts.rst:360
+#: ../../build/doc/pgRouting-concepts.rst:383
+#: ../../build/doc/pgRouting-concepts.rst:400
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:227
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:227
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+#: ../../build/doc/pgRouting-concepts.rst:317
+#: ../../build/doc/pgRouting-concepts.rst:360
+#: ../../build/doc/pgRouting-concepts.rst:383
+#: ../../build/doc/pgRouting-concepts.rst:400
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:169
+#: ../../build/doc/pgRouting-concepts.rst:252
+#: ../../build/doc/pgRouting-concepts.rst:287
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:169
+#: ../../build/doc/pgRouting-concepts.rst:170
+#: ../../build/doc/pgRouting-concepts.rst:171
+#: ../../build/doc/pgRouting-concepts.rst:200
+#: ../../build/doc/pgRouting-concepts.rst:201
+#: ../../build/doc/pgRouting-concepts.rst:252
+#: ../../build/doc/pgRouting-concepts.rst:253
+#: ../../build/doc/pgRouting-concepts.rst:254
+#: ../../build/doc/pgRouting-concepts.rst:287
+#: ../../build/doc/pgRouting-concepts.rst:288
+#: ../../build/doc/pgRouting-concepts.rst:289
+#: ../../build/doc/pgRouting-concepts.rst:290
+#: ../../build/doc/pgRouting-concepts.rst:294
+#: ../../build/doc/pgRouting-concepts.rst:319
+#: ../../build/doc/pgRouting-concepts.rst:324
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:169
+#: ../../build/doc/pgRouting-concepts.rst:252
+#: ../../build/doc/pgRouting-concepts.rst:287
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:170
+#: ../../build/doc/pgRouting-concepts.rst:200
+#: ../../build/doc/pgRouting-concepts.rst:253
+#: ../../build/doc/pgRouting-concepts.rst:288
+#: ../../build/doc/pgRouting-concepts.rst:404
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:170
+#: ../../build/doc/pgRouting-concepts.rst:200
+#: ../../build/doc/pgRouting-concepts.rst:253
+#: ../../build/doc/pgRouting-concepts.rst:288
+#: ../../build/doc/pgRouting-concepts.rst:404
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:171
+#: ../../build/doc/pgRouting-concepts.rst:201
+#: ../../build/doc/pgRouting-concepts.rst:254
+#: ../../build/doc/pgRouting-concepts.rst:289
+#: ../../build/doc/pgRouting-concepts.rst:405
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:171
+#: ../../build/doc/pgRouting-concepts.rst:201
+#: ../../build/doc/pgRouting-concepts.rst:254
+#: ../../build/doc/pgRouting-concepts.rst:289
+#: ../../build/doc/pgRouting-concepts.rst:405
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:172
+#: ../../build/doc/pgRouting-concepts.rst:202
+#: ../../build/doc/pgRouting-concepts.rst:255
+#: ../../build/doc/pgRouting-concepts.rst:369
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:172
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:202
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:255
+#: ../../build/doc/pgRouting-concepts.rst:259
+#: ../../build/doc/pgRouting-concepts.rst:263
+#: ../../build/doc/pgRouting-concepts.rst:264
+#: ../../build/doc/pgRouting-concepts.rst:265
+#: ../../build/doc/pgRouting-concepts.rst:266
+#: ../../build/doc/pgRouting-concepts.rst:325
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:172
+#: ../../build/doc/pgRouting-concepts.rst:202
+#: ../../build/doc/pgRouting-concepts.rst:255
+#: ../../build/doc/pgRouting-concepts.rst:290
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:174
+#: ../../build/doc/pgRouting-concepts.rst:204
+#: ../../build/doc/pgRouting-concepts.rst:257
+#: ../../build/doc/pgRouting-concepts.rst:292
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:259
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:259
+#: ../../build/doc/pgRouting-concepts.rst:294
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:259
+#: ../../build/doc/pgRouting-concepts.rst:294
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:178
+#: ../../build/doc/pgRouting-concepts.rst:208
+#: ../../build/doc/pgRouting-concepts.rst:261
+#: ../../build/doc/pgRouting-concepts.rst:296
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:193
+msgid "Description of the edges_sql query (id is not necessary)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:224
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:227
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:229
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:229
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:229
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:230
+msgid "**via_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:230
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:230
+msgid "Array of ordered vertices identifiers that are going to be visited."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:233
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:232
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:233
+msgid "**strict**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:233
+msgid "``false``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:233
+msgid "When ``false`` ignores missing paths returning all paths found"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:234
+msgid "When ``true`` if a path is missing stops and returns `EMPTY SET`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid "**U_turn_on_edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid ""
+"When ``true`` departing from a visited vertex will not try to avoid using "
+"the edge used to reach it.  In other words, U turn using the edge with same "
+"`id` is allowed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:236
+msgid ""
+"When ``false`` when a departing from a visited vertex tries to avoid using "
+"the edge used to reach it.  In other words, U turn using the edge with same "
+"`id` is used when no other path is found."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:245
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:263
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:263
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:264
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:264
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:265
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:265
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:266
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:266
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:280
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:290
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:294
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:312
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:319
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:319
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:321
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:322
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:324
+#: ../../build/doc/pgRouting-concepts.rst:403
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:324
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:325
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:325
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:326
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:326
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:326
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:328
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:329
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:330
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:336
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:337
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:345
+msgid "Return columns & values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:350
+msgid ""
+"There are several kinds of columns returned are depending of the function."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:355
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:357
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:362
+#: ../../build/doc/pgRouting-concepts.rst:402
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:362
+#: ../../build/doc/pgRouting-concepts.rst:363
+#: ../../build/doc/pgRouting-concepts.rst:364
+#: ../../build/doc/pgRouting-concepts.rst:402
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:362
+#: ../../build/doc/pgRouting-concepts.rst:402
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:363
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:363
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:364
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:364
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:365
+#: ../../build/doc/pgRouting-concepts.rst:385
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:365
+#: ../../build/doc/pgRouting-concepts.rst:366
+#: ../../build/doc/pgRouting-concepts.rst:367
+#: ../../build/doc/pgRouting-concepts.rst:368
+#: ../../build/doc/pgRouting-concepts.rst:385
+#: ../../build/doc/pgRouting-concepts.rst:386
+#: ../../build/doc/pgRouting-concepts.rst:403
+#: ../../build/doc/pgRouting-concepts.rst:404
+#: ../../build/doc/pgRouting-concepts.rst:405
+#: ../../build/doc/pgRouting-concepts.rst:406
+#: ../../build/doc/pgRouting-concepts.rst:407
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:365
+#: ../../build/doc/pgRouting-concepts.rst:385
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:366
+#: ../../build/doc/pgRouting-concepts.rst:386
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:366
+#: ../../build/doc/pgRouting-concepts.rst:386
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:367
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:367
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:368
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:368
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:369
+#: ../../build/doc/pgRouting-concepts.rst:370
+#: ../../build/doc/pgRouting-concepts.rst:387
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:369
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:370
+#: ../../build/doc/pgRouting-concepts.rst:387
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:370
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:378
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:380
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:387
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:397
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:403
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:406
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:406
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:407
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:407
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:415
+msgid "Advanced Topics"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:423
+msgid "Routing Topology"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:427
+#: ../../build/doc/pgRouting-concepts.rst:528
+msgid "Overview"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:428
+msgid ""
+"Typically when GIS files are loaded into the data database for use with "
+"pgRouting they do not have topology information associated with them. To "
+"create a useful topology the data needs to be \"noded\". This means that "
+"where two or more roads form an intersection there it needs to be a node at "
+"the intersection and all the road segments need to be broken at the "
+"intersection, assuming that you can navigate from any of these segments to "
+"any other segment via that intersection."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:430
+msgid ""
+"You can use the :ref:`graph analysis functions <analytics>` to help you see "
+"where you might have topology problems in your data. If you need to node "
+"your data, we also have a function :ref:`pgr_nodeNetwork() "
+"<pgr_node_network>` that might work for you. This function splits ALL "
+"crossing segments and nodes them. There are some cases where this might NOT "
+"be the right thing to do."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:432
+msgid ""
+"For example, when you have an overpass and underpass intersection, you do "
+"not want these noded, but pgr_nodeNetwork does not know that is the case and"
+" will node them which is not good because then the router will be able to "
+"turn off the overpass onto the underpass like it was a flat 2D intersection."
+" To deal with this problem some data sets use z-levels at these types of "
+"intersections and other data might not node these intersection which would "
+"be ok."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:434
+msgid ""
+"For those cases where topology needs to be added the following functions may"
+" be useful. One way to prep the data for pgRouting is to add the following "
+"columns to your table and then populate them as appropriate. This example "
+"makes a lot of assumption like that you original data tables already has "
+"certain columns in it like ``one_way``, ``fcc``, and possibly others and "
+"that they contain specific data values. This is only to give you an idea of "
+"what you can do with your data."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:455
+msgid ""
+"The function :ref:`pgr_createTopology() <pgr_create_topology>` will create "
+"the ``vertices_tmp`` table and populate the ``source`` and ``target`` "
+"columns. The following example populated the remaining columns. In this "
+"example, the ``fcc`` column contains feature class code and the ``CASE`` "
+"statements converts it to an average speed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:518
+msgid ""
+"Now your database should be ready to use any (most?) of the pgRouting "
+"algorithms."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:524
+msgid "Graph Analytics"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:529
+msgid ""
+"It is common to find problems with graphs that have not been constructed "
+"fully noded or in graphs with z-levels at intersection that have been "
+"entered incorrectly. An other problem is one way streets that have been "
+"entered in the wrong direction. We can not detect errors with respect to "
+"\"ground\" truth, but we can look for inconsistencies and some anomalies in "
+"a graph and report them for additional inspections."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:531
+msgid ""
+"We do not current have any visualization tools for these problems, but I "
+"have used mapserver to render the graph and highlight potential problem "
+"areas. Someone familiar with graphviz might contribute tools for generating "
+"images with that."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:535
+msgid "Analyze a Graph"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:537
+msgid ""
+"With :ref:`pgr_analyze_graph` the graph can be checked for errors. For "
+"example for table \"mytab\" that has \"mytab_vertices_pgr\" as the vertices "
+"table:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:560
+msgid "In the vertices table \"mytab_vertices_pgr\":"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:562
+msgid "Deadends are identified by ``cnt=1``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:563
+msgid "Potencial gap problems are identified with ``chk=1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:581
+msgid ""
+"For isolated road segments, for example, a segment where both ends are "
+"deadends. you can find these with the following query:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:590
+msgid ""
+"If you want to visualize these on a graphic image, then you can use "
+"something like mapserver to render the edges and the vertices and style "
+"based on ``cnt`` or if they are isolated, etc. You can also do this with a "
+"tool like graphviz, or geoserver or other similar tools."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:594
+msgid "Analyze One Way Streets"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:596
+msgid ""
+":ref:`pgr_analyze_oneway` analyzes one way streets in a graph and identifies"
+" any flipped segments. Basically if you count the edges coming into a node "
+"and the edges exiting a node the number has to be greater than one."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:598
+msgid ""
+"This query will add two columns to the vertices_tmp table ``ein int`` and "
+"``eout int`` and populate it with the appropriate counts. After running this"
+" on a graph you can identify nodes with potential problems with the "
+"following query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:601
+msgid ""
+"The rules are defined as an array of text strings that if match the ``col`` "
+"value would be counted as true for the source or target in or out condition."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:605
+msgid "Example"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:607
+msgid ""
+"Lets assume we have a table \"st\" of edges and a column \"one_way\" that "
+"might have values like:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:609
+msgid "'FT'    - oneway from the source to the target node."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:610
+msgid "'TF'    - oneway from the target to the source node."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:611
+msgid "'B'     - two way street."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:612
+msgid "''      - empty field, assume twoway."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:613
+msgid "<NULL>  - NULL field, use two_way_if_null flag."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:615
+msgid ""
+"Then we could form the following query to analyze the oneway streets for "
+"errors."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:634
+msgid ""
+"Typically these problems are generated by a break in the network, the one "
+"way direction set wrong, maybe an error related to z-levels or a network "
+"that is not properly noded."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:636
+msgid ""
+"The above tools do not detect all network issues, but they will identify "
+"some common problems. There are other problems that are hard to detect "
+"because they are more global in nature like multiple disconnected networks. "
+"Think of an island with a road network that is not connected to the mainland"
+" network because the bridge or ferry routes are missing."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:644
+msgid "Performance Tips"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:651
+msgid "For the Routing functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:653
+msgid ""
+"To get faster results bound your queries to the area of interest of routing "
+"to have, for example, no more than one million rows."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:655
+msgid ""
+"Use an inner query SQL that does not include some edges in the routing "
+"function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:663
+msgid "Integrating the inner query to the pgRouting function:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:677
+msgid "For the topology functions:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:679
+msgid ""
+"When \"you know\" that you are going to remove a set of edges from the edges"
+" table, and without those edges you are going to use a routing function you "
+"can do the following:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:681
+msgid "Analize the new topology based on the actual topology:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:687
+msgid "Or create a new topology if the change is permanent:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:698
+msgid "How to contribute"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:701
+msgid "Wiki"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:702
+msgid ""
+"Edit an existing  `pgRouting Wiki "
+"<https://github.com/pgRouting/pgrouting/wiki>`_ page."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:703
+msgid "Or create a new Wiki page"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:705
+msgid ""
+"Create a page on the `pgRouting Wiki "
+"<https://github.com/pgRouting/pgrouting/wiki>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:706
+msgid "Give the title an appropriate name"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:709
+msgid ""
+"`Example <https://github.com/pgRouting/pgrouting/wiki/How-to:-Handle-"
+"parallel-edges-(KSP)>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:713
+msgid "Adding Functionaity to pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:714
+msgid ""
+"Consult the `developer's documentation "
+"<http://docs.pgrouting.org/doxy/2.4/index.html>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:719
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:720
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:721
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgRouting-installation.po b/locale/it/LC_MESSAGES/pgRouting-installation.po
new file mode 100644
index 0000000..71b7f5f
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgRouting-installation.po
@@ -0,0 +1,418 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgRouting-installation.rst:13
+msgid "Installation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:16
+msgid "Table of Contents"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:17
+msgid ":ref:`install-short`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:18
+msgid ":ref:`install_get_sources`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:19
+msgid ":ref:`install_enable_db`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:20
+msgid ":ref:`install_dependencies`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:21
+msgid ":ref:`install_configuring`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:22
+msgid ":ref:`install_build`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:23
+msgid ":ref:`install_testing`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:25
+msgid ""
+"Instructions for downloading and installing binaries for different Operative"
+" systems instructions and additional notes and corrections not included in "
+"this documentation can be found in `Installation wiki "
+"<https://github.com/pgRouting/pgrouting/wiki/Notes-on-Download%2C-"
+"Installation-and-building-pgRouting>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:27
+msgid ""
+"To use pgRouting postGIS needs to be installed, please read the information "
+"about installation in this `Install Guide "
+"<http://www.postgis.us/presentations/postgis_install_guide_22.html>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:32
+msgid "Short Version"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:37
+msgid "Extracting the tar ball"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:44
+msgid "To compile assuming you have all the dependencies in your search path:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:54
+msgid ""
+"Once pgRouting is installed, it needs to be enabled in each individual "
+"database you want to use it in."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:66
+msgid "Get the sources"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:69
+msgid ""
+"The pgRouting latest release can be found in "
+"https://github.com/pgRouting/pgrouting/releases/latest"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:72
+msgid "wget"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:73
+msgid "To download this release:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:81
+msgid "Goto :ref:`install-short` to the extract and compile instructions."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:84
+msgid "git"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:85
+msgid "To download the repository"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:93
+msgid ""
+"Goto :ref:`install-short` to the compile instructions (there is no tar "
+"ball)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:100
+msgid "Enabling and upgrading in the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:103
+msgid "Enabling the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:104
+msgid ""
+"pgRouting is an extension and depends on postGIS. Enabling postGIS before "
+"enabling pgRouting in the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:113
+msgid "Upgrading the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:114
+msgid ""
+"To upgrade pgRouting in the database to version 2.4.0 use the following "
+"command:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:122
+msgid ""
+"More information can be found in "
+"https://www.postgresql.org/docs/current/static/sql-createextension.html"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:128
+msgid "Dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:131
+msgid "Compilation Dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:132
+msgid ""
+"To be able to compile pgRouting, make sure that the following dependencies "
+"are met:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:134
+msgid "C and C++0x compilers * g++ version >= 4.8"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:136
+msgid "Postgresql version >= 9.2"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:137
+msgid "PostGIS version >= 2.0"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:138
+msgid "The Boost Graph Library (BGL). Version >= 1.46"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:139
+msgid "CMake >= 2.8.8"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:140
+msgid "CGAL >=  4.2"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:144
+msgid "optional dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:145
+msgid "For user's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:147
+msgid "Sphinx >= 1.1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:148
+msgid "Latex"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:150
+msgid "For developer's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:152
+msgid "Doxygen >= 1.7"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:154
+msgid "For testing"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:156
+msgid "pgtap"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:157
+msgid "pg_prove"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:161
+msgid "Example: Installing dependencies on linux"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:162
+msgid "Installing the compilation dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:174
+msgid "Installing the optional dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:188
+msgid "Configuring"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:190
+msgid "pgRouting uses the `cmake` system to do the configuration."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:192
+msgid "The build directory is different from the source directory"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:194
+msgid "Create the build directory"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:201
+msgid "Configurable variables"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:205
+msgid "To see the variables that can be configured"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:213
+msgid "Configuring The Documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:214
+msgid ""
+"Most of the effort of the documentation has being on the HTML files. Some "
+"variables for the documentation:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:218
+msgid "Variable"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:218
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:218
+msgid "Comment"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:220
+msgid "WITH_DOC"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:220
+#: ../../build/doc/pgRouting-installation.rst:223
+#: ../../build/doc/pgRouting-installation.rst:224
+#: ../../build/doc/pgRouting-installation.rst:225
+msgid "BOOL=OFF"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:220
+msgid "Turn on/off building the documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:221
+msgid "BUILD_HTML"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:221
+#: ../../build/doc/pgRouting-installation.rst:222
+msgid "BOOL=ON"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:221
+msgid "If ON, turn on/off building HTML for user's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:222
+msgid "BUILD_DOXY"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:222
+msgid "If ON, turn on/off building HTML for developer's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:223
+msgid "BUILD_LATEX"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:223
+msgid "If ON, turn on/off building PDF"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:224
+msgid "BUILD_MAN"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:224
+msgid "If ON, turn on/off building MAN pages"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:225
+msgid "DOC_USE_BOOTSTRAP"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:225
+msgid "If ON, use sphinx-bootstrap for HTML pages of the users documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:228
+msgid "Configuring with documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:234
+msgid "Most of the effort of the documentation has being on the html files."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:240
+msgid "Building"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:242
+msgid "Using ``make`` to build the code and the documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:244
+msgid "The following instructions start from *path/to/pgrouting/build*"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:253
+msgid ""
+"We have tested on several platforms, For installing or reinstalling all the "
+"steps are needed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:255
+msgid "The sql signatures are configured and build in the ``cmake`` command."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:258
+msgid "MinGW on Windows"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:269
+msgid "Linux"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:270
+msgid "The following instructions start from *path/to/pgrouting*"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:280
+msgid "When the configuration changes:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:286
+msgid "and start the build process as mentioned above."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:291
+msgid "Testing"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:293
+msgid "Currently there is no :code:`make test` and testing is done as follows"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:295
+msgid "The following instructions start from *path/to/pgrouting/*"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:305
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:308
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:309
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:310
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgRouting-introduction.po b/locale/it/LC_MESSAGES/pgRouting-introduction.po
new file mode 100644
index 0000000..2f5927b
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgRouting-introduction.po
@@ -0,0 +1,222 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgRouting-introduction.rst:13
+msgid "Introduction"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:15
+msgid ""
+"pgRouting is an extension of `PostGIS <http://postgis.net>`_ and `PostgreSQL"
+" <http://postgresql.org>`_ geospatial database and adds routing and other "
+"network analysis functionality. A predecessor of pgRouting – pgDijkstra, "
+"written by Sylvain Pasche from `Camptocamp <http://camptocamp.com>`_, was "
+"later extended by `Orkney <http://www.orkney.co.jp>`_ and renamed to "
+"pgRouting. The project is now supported and maintained by `Georepublic "
+"<http://georepublic.info>`_, `iMaptools <http://imaptools.com/>`__ and a "
+"broad user community."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:17
+msgid ""
+"pgRouting is an `OSGeo Labs <http://wiki.osgeo.org/wiki/OSGeo_Labs>`_ "
+"project of the `OSGeo Foundation <http://osgeo.org>`_ and included on `OSGeo"
+" Live <http://live.osgeo.org/>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:23
+msgid "License"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:25
+msgid "The following licenses can be found in pgRouting:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:30
+msgid "**License**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:32
+msgid "GNU General Public License, version 2"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:33
+msgid ""
+"Most features of pgRouting are available under `GNU General Public License, "
+"version 2 <http://www.gnu.org/licenses/gpl-2.0.html>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:34
+msgid "Boost Software License - Version 1.0"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:35
+msgid ""
+"Some Boost extensions are available under `Boost Software License - Version "
+"1.0 <http://www.boost.org/LICENSE_1_0.txt>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:36
+msgid "MIT-X License"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:37
+msgid ""
+"Some code contributed by iMaptools.com is available under MIT-X license."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:38
+msgid "Creative Commons Attribution-Share Alike 3.0 License"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:39
+msgid ""
+"The pgRouting Manual is licensed under a `Creative Commons Attribution-Share"
+" Alike 3.0 License <http://creativecommons.org/licenses/by-sa/3.0/>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:41
+msgid ""
+"In general license information should be included in the header of each "
+"source file."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:45
+msgid "Contributors"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:48
+msgid "This Release Contributors"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:51
+#: ../../build/doc/pgRouting-introduction.rst:71
+msgid "Individuals (in alphabetical order)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:53
+msgid "Maoguang Wang, Vidhan Jain, Virginia Vergara"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:55
+msgid ""
+"And all the people that give us a little of their time making comments, "
+"finding issues, making pull requests etc."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:58
+#: ../../build/doc/pgRouting-introduction.rst:76
+msgid "Corporate Sponsors (in alphabetical order)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:60
+#: ../../build/doc/pgRouting-introduction.rst:78
+msgid ""
+"These are corporate entities that have contributed developer time, hosting, "
+"or direct monetary funding to the pgRouting project:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:62
+msgid "`Georepublic <https://georepublic.info/en/>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:63
+msgid ""
+"`Google Summer of Code <https://developers.google.com/open-source/gsoc/>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:64
+msgid "`iMaptools <http://imaptools.com>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:65
+msgid "`Paragon Corporation <http://www.paragoncorporation.com/>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:68
+msgid "Contributors Past & Present:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:73
+msgid ""
+"Akio Takubo, Andrea Nardelli, Anton Patrushev, Ashraf Hossain, Christian "
+"Gonzalez, Daniel Kastl, Dave Potts, David Techer, Denis Rykov, Ema Miyawaki,"
+" Florian Thurkow, Frederic Junod, Gerald Fenoy, Jay Mahadeokar, Jinfu Leng, "
+"Kai Behncke, Kishore Kumar, Ko Nagase, Manikata Kondeti, Mario Basa, Martin "
+"Wiesenhaan,  Maxim Dubinin, Maoguang Wang, Mohamed Zia, Mukul Priya, Razequl"
+" Islam, Regina Obe, Rohith Reddy, Sarthak Agarwal, Stephen Woodbridge, "
+"Sylvain Housseman, Sylvain Pasche, Vidhan Jain, Virginia Vergara"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:80
+msgid "Camptocamp"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:81
+msgid "CSIS (University of Tokyo)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:82
+msgid "Georepublic"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:83
+msgid "Google Summer of Code"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:84
+msgid "iMaptools"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:85
+msgid "Orkney"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:86
+msgid "Paragon Corporation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:90
+msgid "More Information"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:92
+msgid ""
+"The latest software, documentation and news items are available at the "
+"pgRouting web site http://pgrouting.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:93
+msgid ""
+"PostgreSQL database server at the PostgreSQL main site "
+"http://www.postgresql.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:94
+msgid "PostGIS extension at the PostGIS project web site http://postgis.net."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:95
+msgid "Boost C++ source libraries at http://www.boost.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:96
+msgid ""
+"Computational Geometry Algorithms Library (CGAL) at http://www.cgal.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:97
+msgid ""
+"The Migration guide can be found at "
+"https://github.com/pgRouting/pgrouting/wiki/Migration-Guide."
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_KSP.po b/locale/it/LC_MESSAGES/pgr_KSP.po
new file mode 100644
index 0000000..2ace271
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_KSP.po
@@ -0,0 +1,402 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_KSP.rst:13
+msgid "pgr_KSP"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:18
+msgid "``pgr_KSP`` — Returns the \"K\" shortest paths."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:27
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:28
+msgid "Signature change 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:32
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:34
+msgid ""
+"The K shortest path routing algorithm based on Yen's algorithm. \"K\" is the"
+" number of shortest paths desired."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:37
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:46
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:52
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:64
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:73
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_KSP.rst:83
+#: ../../build/doc/pgr_KSP.rst:103
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_KSP.rst:83
+#: ../../build/doc/pgr_KSP.rst:103
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_KSP.rst:83
+#: ../../build/doc/pgr_KSP.rst:103
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14 ../../build/doc/pgr_KSP.rst:110
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:80
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:85
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:85
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:85
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:86
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:86 ../../build/doc/pgr_KSP.rst:87
+#: ../../build/doc/pgr_KSP.rst:107 ../../build/doc/pgr_KSP.rst:108
+#: ../../build/doc/pgr_KSP.rst:109
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:86
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:87
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:87
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:88
+msgid "**k**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:88 ../../build/doc/pgr_KSP.rst:105
+#: ../../build/doc/pgr_KSP.rst:106
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:88
+msgid "The desiered number of paths."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:89
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:89 ../../build/doc/pgr_KSP.rst:90
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:89
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:90
+msgid "**heap_paths**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:90
+msgid ""
+"(optional). When ``true`` returns all the paths stored in the process heap. "
+"Default is ``false`` which only returns ``k`` paths."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:93
+msgid ""
+"Roughly, if the shortest path has ``N`` edges, the heap will contain about "
+"than ``N * k`` paths for small value of ``k`` and ``k > 1``."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:98
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:100
+msgid ""
+"Returns set of ``(seq, path_seq, path_id, node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:105
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:105
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:106
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:106
+msgid ""
+"Relative position in the path of ``node`` and ``edge``. Has value **1** for "
+"the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:107
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:107
+msgid ""
+"Path identifier. The ordering of the paths For two paths i, j if i < j then "
+"agg_cost(i) <= agg_cost(j)."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:108
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:108
+msgid "Identifier of the node in the path."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:109
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:109
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the route."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:110 ../../build/doc/pgr_KSP.rst:111
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:110
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:111
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:111
+msgid "Aggregate cost from ``start_vid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:115
+msgid ""
+"During the transition to 3.0, because pgr_ksp version 2.0 doesn't have "
+"defined a directed flag nor a heap_path flag, when pgr_ksp is used with only"
+" one flag version 2.0 signature will be used."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:119
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:122
+msgid "Examples to handle the one flag to choose signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:124 ../../build/doc/pgr_KSP.rst:134
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:132
+msgid ""
+"Examples for queries marked as ``directed`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:143
+msgid ""
+"Examples for queries marked as ``undirected`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:145
+msgid "The examples in this section use the following :ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:153
+msgid "Examples for queries marked as ``directed`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:155
+msgid "The examples in this section use the following :ref:`fig3`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:164
+msgid "Examples for queries marked as ``undirected`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:166
+msgid "The examples in this section use the following :ref:`fig4`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:173
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:175
+msgid "http://en.wikipedia.org/wiki/K_shortest_path_routing"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:176
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:179
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:180
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:181
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_TSP.po b/locale/it/LC_MESSAGES/pgr_TSP.po
new file mode 100644
index 0000000..a9fecef
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_TSP.po
@@ -0,0 +1,224 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_TSP.rst:13
+msgid "pgr_TSP"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:18
+msgid "``pgr_TSP`` - Returns a route that visits all the nodes exactly once."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:21
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:22
+msgid "Signature changed 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:26
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:28
+msgid ""
+"The travelling salesman problem (TSP) or travelling salesperson problem asks"
+" the following question:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:30
+msgid ""
+"Given a list of cities and the distances between each pair of cities, what "
+"is the shortest possible route that visits each city exactly once and "
+"returns to the origin city?"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:32
+msgid ""
+"This implementation uses simulated annealing to return the approximate "
+"solution when the input is given in the form of matrix cell contents. The "
+"matrix information must be symmetrical."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:37
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:58
+msgid "Basic Use"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:67
+msgid ""
+"Because the documentation examples are auto generated and tested for non "
+"changing results, and the default is to have random execution, the example "
+"is wrapping the actual call."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:81
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:96
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:103
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:106
+msgid "Description of the Matrix Cell SQL query"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:109
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:109
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:109
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:111
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:111 ../../build/doc/pgr_TSP.rst:112
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:111
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:112
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:112
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:113
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:113
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:113
+msgid "Cost for going from start_vid to end_vid"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:116
+msgid "Can be Used with:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:118
+msgid ":ref:`pgr_dijkstraCostmatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:119
+msgid ":ref:`pgr_withPointsCostmatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:120
+msgid ":ref:`pgr_floydWarshall`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:121
+msgid ":ref:`pgr_johnson`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:123
+msgid "To generate a symmetric matrix"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:125
+msgid "directed := false."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:127
+msgid ""
+"If using directed := true, the resulting non symmetric matrix must be "
+"converted to symmetric by fixing the non symmetric values according to your "
+"application needs."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:145
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:147
+msgid "Using with points of interest."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:149
+msgid "To generate a symmetric matrix:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:151
+msgid ""
+"the **side** information of pointsOfInterset is ignored by not including it "
+"in the query"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:152
+msgid "and **directed := false**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:158
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:163
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:165
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:166
+msgid "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:167
+msgid "http://en.wikipedia.org/wiki/Simulated_annealing"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:170
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:171
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:172
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_aStar.po b/locale/it/LC_MESSAGES/pgr_aStar.po
new file mode 100644
index 0000000..4e2ccb4
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_aStar.po
@@ -0,0 +1,642 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_aStar.rst:13
+msgid "pgr_aStar"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:18
+msgid "``pgr_aStar`` — Returns the shortest path using A* algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:26
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:27
+msgid "pgr_astar(one to one) 2.0.0, Signature changed 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:28
+msgid "pgr_astar(other signatures) 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:33
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:35
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:37
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:38
+msgid "Vertices of the graph are:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:40
+msgid "**positive** when it belongs to the edges_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:42
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:44
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:46
+msgid "The agg_cost the non included values (v, v) is 0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:48
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:50
+msgid "The agg_cost the non included values (u, v) is ∞"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:52
+msgid "When (x,y) coordinates for the same vertex identifier differ:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:54
+msgid "A random selection of the vertex's (x,y) coordinates is used."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:56
+msgid "Running time: :math:`O((E + V) * \\log V)`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:61
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:84
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:92
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:99
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:112
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:118
+msgid "Undirected using  Heuristic 2"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:130
+msgid "One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:139
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:138 ../../build/doc/pgr_aStar.rst:165
+#: ../../build/doc/pgr_aStar.rst:194
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:139 ../../build/doc/pgr_aStar.rst:166
+#: ../../build/doc/pgr_aStar.rst:195
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:141
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_astar` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:144
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_astar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:145
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:157
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:166
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:168
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_aStar` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:171
+msgid "The result is the union of the results of the one to one `pgr_aStar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:172 ../../build/doc/pgr_aStar.rst:201
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:186
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:195
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:197
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:200
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:203
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:217
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_aStar.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_aStar.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13 ../../build/doc/pgr_aStar.rst:234
+#: ../../build/doc/pgr_aStar.rst:235
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:228
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:231
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:233
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:233
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:233
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:234 ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:234
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:235 ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:235
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:236
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:236
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:236
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:238
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:239
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:241
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:241
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:241
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:243
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:244
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:245
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:246
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:247
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:248
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:250
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:250 ../../build/doc/pgr_aStar.rst:251
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:250
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:251
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:251
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:260
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:262
+msgid ":ref:`astar`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:263
+msgid ":doc:`sampledata`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:264
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:265
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:268
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:269
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:270
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_aStarCost.po b/locale/it/LC_MESSAGES/pgr_aStarCost.po
new file mode 100644
index 0000000..41e1637
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_aStarCost.po
@@ -0,0 +1,528 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_aStarCost.rst:13
+msgid "pgr_aStarCost -- proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:18
+msgid ""
+"``pgr_aStarCost`` — Returns the aggregate cost shortest path using "
+":ref:`astar` algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:26
+msgid "Availability: 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:28
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:46
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:53
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:60
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:72
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:78
+msgid "Setting a Heuristic"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:90
+msgid "One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:99
+msgid ""
+"This signature finds a path from one ``start_vid`` to each ``end_vid`` in "
+"``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:98 ../../build/doc/pgr_aStarCost.rst:125
+#: ../../build/doc/pgr_aStarCost.rst:154
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:99 ../../build/doc/pgr_aStarCost.rst:126
+#: ../../build/doc/pgr_aStarCost.rst:155
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:101
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_astar` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:104
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_astar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:105
+msgid ""
+"The extra ``end_vid`` column in the result is used to distinguish to which "
+"path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:117
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:126
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:128
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_aStar` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:131
+msgid "The result is the union of the results of the one to one `pgr_aStar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:132
+msgid ""
+"The extra ``start_vid`` column  in the result is used to distinguish to "
+"which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:146
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:155
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:157
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:160
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:161
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:163
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:177
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCost.rst:191
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCost.rst:191
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_aStarCost.rst:194 ../../build/doc/pgr_aStarCost.rst:195
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:188
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:191
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:193
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:193
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:193
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:194
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:194
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:195
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:195
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:196
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:196
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:196
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:198
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:199
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:201
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:201
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:201
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:203
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:204
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:205
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:206
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:207
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:208
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:210
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:210 ../../build/doc/pgr_aStarCost.rst:211
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:210
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. See "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:211
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:211
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:224
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:226
+msgid ":ref:`astar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:227
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:228
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:229
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:232
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:233
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:234
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_aStarCostMatrix.po b/locale/it/LC_MESSAGES/pgr_aStarCostMatrix.po
new file mode 100644
index 0000000..5193921
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_aStarCostMatrix.po
@@ -0,0 +1,457 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:13
+msgid "pgr_aStarCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:18
+msgid ""
+"``pgr_aStarCostMatrix`` - Calculates the a cost matrix using "
+":ref:`pgr_aStar`."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:33
+msgid "Availability: 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:37
+msgid "Using aStar algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:40
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:57
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:60
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:60
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:68
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:80
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:88
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:90
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:98
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:106
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:109
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:111
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:111
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:111
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:112
+msgid "**vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:112
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:112
+msgid "Array of vertices_identifiers."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:113
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:113
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:113
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:115
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:116
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:118
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:118
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:118
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:120
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:121
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:122
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:123
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:124
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:125
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:127
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:127
+#: ../../build/doc/pgr_aStarCostMatrix.rst:128
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:127
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:128
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:128
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:140
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:142
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:150
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:152
+msgid ":ref:`astar`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:153
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:154
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:155
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:158
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:159
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:160
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_alphaShape.po b/locale/it/LC_MESSAGES/pgr_alphaShape.po
new file mode 100644
index 0000000..851cd18
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_alphaShape.po
@@ -0,0 +1,169 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_alphaShape.rst:13
+msgid "pgr_alphaShape"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:21
+msgid "``pgr_alphaShape`` — Core function for alpha shape computation."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:27
+msgid ""
+"Returns a table with (x, y) rows that describe the vertices of an alpha "
+"shape."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:35
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:37
+msgid ""
+"``text`` a SQL query, which should return a set of rows with the following "
+"columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:43
+msgid "``int4`` identifier of the vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:44
+msgid "``float8`` x-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:45
+msgid "``float8`` y-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:47
+msgid ""
+"(optional) ``float8`` alpha value. If specified alpha value equals 0 "
+"(default), then optimal alpha value is used. For more information, see `CGAL"
+" - 2D Alpha Shapes "
+"<http://doc.cgal.org/latest/Alpha_shapes_2/group__PkgAlphaShape2.html>`_."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:50
+msgid "Returns a vertex record for each row:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:52
+msgid "x-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:53
+msgid "y-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:55
+msgid ""
+"If a result includes multiple outer/inner rings, return those with separator"
+" row (x=NULL and y=NULL)."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:58
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:59
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:60
+msgid ""
+"Added alpha argument with default 0 (use optimal value) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:61
+msgid ""
+"Supported to return multiple outer/inner ring coordinates with separator row"
+" (x=NULL and y=NULL) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:64
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:65
+msgid ""
+"PgRouting's alpha shape implementation has no way to control the order of "
+"the output points, so the actual output might different for the same input "
+"data. The first query, has the output ordered, he second query shows an "
+"example usage:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:70
+msgid "Example: the (ordered) results"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:76
+msgid "Example: calculating the area"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:77
+msgid "Steps:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:79
+msgid "Calculates the alpha shape"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:80
+msgid "the :code:`ORDER BY` clause is not used."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:81
+msgid "constructs a polygon"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:82
+msgid "and computes the area"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:90
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:93
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:95
+msgid ":ref:`pgr_drivingDistance` - Driving Distance"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:96
+msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:99
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:100
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:101
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_analyzeGraph.po b/locale/it/LC_MESSAGES/pgr_analyzeGraph.po
new file mode 100644
index 0000000..22237a6
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_analyzeGraph.po
@@ -0,0 +1,361 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_analyzeGraph.rst:13
+msgid "pgr_analyzeGraph"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:19
+msgid "``pgr_analyzeGraph`` — Analyzes the network topology."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:23
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:25
+#: ../../build/doc/pgr_analyzeGraph.rst:61
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:27
+#: ../../build/doc/pgr_analyzeGraph.rst:63
+msgid "``OK`` after the analysis has finished."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:28
+#: ../../build/doc/pgr_analyzeGraph.rst:69
+msgid "``FAIL`` when the analysis was not completed due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:43
+msgid "Prerequisites"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:44
+msgid ""
+"The  edge table to be analyzed must contain a source column and a target "
+"column filled with id's of the vertices of the segments and the "
+"corresponding vertices table <edge_table>_vertices_pgr that stores the "
+"vertices information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:46
+msgid ""
+"Use :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create the "
+"vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:47
+msgid ""
+"Use :ref:`pgr_createTopology <pgr_create_topology>` to create the topology "
+"and the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:50
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:51
+msgid "The analyze graph function accepts the following parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:53
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:54
+msgid ""
+"``float8`` Snapping tolerance of disconnected edges. (in projection unit)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:55
+msgid ""
+"``text``  Geometry column name of the network table. Default value is "
+"``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:56
+msgid ""
+"``text``  Primary key column name of the network table. Default value is "
+"``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:57
+msgid ""
+"``text`` Source column name of the network table. Default value is "
+"``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:58
+msgid ""
+"``text``  Target column name of the network table.  Default value is "
+"``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:59
+msgid ""
+"``text``   Condition to select  a subset or rows.  Default value is ``true``"
+" to indicate all rows."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:65
+msgid "Uses the vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:66
+msgid ""
+"Fills completely the ``cnt`` and ``chk`` columns of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:67
+msgid ""
+"Returns the analysis of the section of the network defined by  "
+"``rows_where``"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:71
+msgid "The vertices table is not found."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:72
+msgid ""
+"A required column of the Network table is not found or is not of the "
+"appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:73
+msgid "The condition is not well formed."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:74
+msgid "The names of source , target or id are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:75
+msgid "The SRID of the geometry could not be determined."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:79
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:80
+msgid ""
+"The vertices table can be created with :ref:`pgr_createVerticesTable "
+"<pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:82
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:84
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:85
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:86
+msgid "``integer``  Indicator that the vertex might have a problem."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:87
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:88
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:89
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:92
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:93
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:96
+msgid "Usage when the edge table's columns MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:99
+msgid "The simplest way to use pgr_analyzeGraph is:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:106
+msgid "When the arguments are given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:111
+msgid "We get the same result as the simplest way to use the function."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order: In this example, the column ``id`` of the table ``mytable`` is passed"
+" to the function as the geometry column, and the geometry column "
+"``the_geom`` is passed to the function as the id column."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:130
+#: ../../build/doc/pgr_analyzeGraph.rst:208
+msgid "When using the named notation"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:131
+#: ../../build/doc/pgr_analyzeGraph.rst:209
+msgid "The order of the parameters do not matter:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:141
+msgid ""
+"Parameters defined with a default value can be omitted, as long as the value"
+" matches the default:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:148
+#: ../../build/doc/pgr_analyzeGraph.rst:223
+msgid "Selecting rows using rows_where parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:149
+msgid ""
+"Selecting rows based on the id. Displays the analysis a the section of the "
+"network."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:155
+msgid ""
+"Selecting the rows where the geometry is near the geometry of row with "
+"``id`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:161
+msgid ""
+"Selecting the rows where the geometry is near the geometry of the row with "
+"``gid`` =100 of the table ``othertable``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:172
+msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:174
+msgid "For the following table"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:183
+msgid "Using positional notation:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:184
+msgid ""
+"The arguments need to be given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order: In this example, the column ``gid`` of the table ``mytable`` is "
+"passed to the function as the geometry column, and the geometry column "
+"``mygeom`` is passed to the function as the id column."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:219
+msgid ""
+"In this scenario omitting a parameter would create an error because the "
+"default values for the column names do not match the column names of the "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:224
+msgid "Selecting rows based on the id."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:234
+msgid ""
+"Selecting the rows WHERE the geometry is near the geometry of row with "
+"``id`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:246
+msgid ""
+"Selecting the rows WHERE the geometry is near the place='myhouse' of the "
+"table ``othertable``. (note the use of quote_literal)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:263
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:390
+msgid "The examples use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:394
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:396
+msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:397
+msgid ":ref:`pgr_analyze_oneway` to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:398
+msgid ""
+":ref:`pgr_createVerticesTable <pgr_create_vert_table>` to reconstruct the "
+"vertices table based on the source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:399
+msgid ""
+":ref:`pgr_nodeNetwork <pgr_node_network>` to create nodes to a not noded "
+"edge table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:402
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:403
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:404
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_analyzeOneWay.po b/locale/it/LC_MESSAGES/pgr_analyzeOneWay.po
new file mode 100644
index 0000000..627da76
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_analyzeOneWay.po
@@ -0,0 +1,290 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:13
+msgid "pgr_analyzeOneway"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:19
+msgid ""
+"``pgr_analyzeOneway`` — Analyzes oneway Sstreets and identifies flipped "
+"segments."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:23
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:25
+msgid ""
+"This function analyzes oneway streets in a graph and identifies any flipped "
+"segments."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:42
+msgid ""
+"The analyses of one way segments is pretty simple but can be a powerful "
+"tools to identifying some the potential problems created by setting the "
+"direction of a segment the wrong way. A node is a `source` if it has edges "
+"the exit from that node and no edges enter that node. Conversely, a node is "
+"a `sink` if all edges enter the node but none exit that node. For a `source`"
+" type node it is logically impossible to exist because no vehicle can exit "
+"the node if no vehicle and enter the node. Likewise, if you had a `sink` "
+"node you would have an infinite number of vehicle piling up on this node "
+"because you can enter it but not leave it."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:44
+msgid ""
+"So why do we care if the are not feasible? Well if the direction of an edge "
+"was reversed by mistake we could generate exactly these conditions. Think "
+"about a divided highway and on the north bound lane one segment got entered "
+"wrong or maybe a sequence of multiple segments got entered wrong or maybe "
+"this happened on a round-about. The result would be potentially a `source` "
+"and/or a `sink` node."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:46
+msgid ""
+"So by counting the number of edges entering and exiting each node we can "
+"identify both `source` and `sink` nodes so that you can look at those areas "
+"of your network to make repairs and/or report the problem back to your data "
+"vendor."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:49
+msgid "Prerequisites"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:50
+msgid ""
+"The  edge table to be analyzed must contain a source column and a target "
+"column filled with id's of the vertices of the segments and the "
+"corresponding vertices table <edge_table>_vertices_pgr that stores the "
+"vertices information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:52
+msgid ""
+"Use :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create the "
+"vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:53
+msgid ""
+"Use :ref:`pgr_createTopology <pgr_create_topology>` to create the topology "
+"and the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:56
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:57
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:58
+msgid "``text[]`` source node **in** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:59
+msgid "``text[]`` source node **out** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:60
+msgid "``text[]`` target node **in** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:61
+msgid "``text[]`` target node **out** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:62
+msgid ""
+"``text`` oneway column name name of the network table. Default value is "
+"``oneway``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:63
+msgid ""
+"``text`` Source column name of the network table. Default value is "
+"``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:64
+msgid ""
+"``text``  Target column name of the network table.  Default value is "
+"``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:65
+msgid ""
+"``boolean`` flag to treat oneway NULL values as bi-directional.  Default "
+"value is ``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:67
+msgid ""
+"It is strongly recommended to use the named notation. See "
+":ref:`pgr_createVerticesTable <pgr_create_vert_table>` or "
+":ref:`pgr_createTopology <pgr_create_topology>` for examples."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:70
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:72
+msgid "``OK`` after the analysis has finished."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:74
+msgid "Uses the vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:75
+msgid ""
+"Fills completely the ``ein`` and ``eout`` columns of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:77
+msgid "``FAIL`` when the analysis was not completed due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:79
+msgid "The vertices table is not found."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:80
+msgid ""
+"A required column of the Network table is not found or is not of the "
+"appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:81
+msgid "The names of source , target or oneway are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:83
+msgid ""
+"The rules are defined as an array of text strings that if match the "
+"``oneway`` value would be counted as ``true`` for the source or target "
+"**in** or **out** condition."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:86
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:87
+msgid ""
+"The vertices table can be created with :ref:`pgr_createVerticesTable "
+"<pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:89
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:91
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:92
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex."
+" See :ref:`pgr_analyzeGgraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:93
+msgid ""
+"``integer``  Indicator that the vertex might have a problem. See "
+":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:94
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as incoming."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:95
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as outgoing."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:96
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:100
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:101
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:105
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:129
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:133
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:135
+msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:136
+msgid ":ref:`analytics` for an overview of the analysis of a graph."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:137
+msgid ""
+":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:138
+msgid ""
+":ref:`pgr_create_vert_table` to reconstruct the vertices table based on the "
+"source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:141
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:142
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:143
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_articulationPoints.po b/locale/it/LC_MESSAGES/pgr_articulationPoints.po
new file mode 100644
index 0000000..225a3d6
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_articulationPoints.po
@@ -0,0 +1,316 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_articulationPoints.rst:13
+msgid "pgr_articulationPoints - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:16
+msgid ""
+"``pgr_articulationPoints`` - Return the articulation points of an undirected"
+" graph. In particular, the algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:22
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:30
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:32
+msgid ""
+"Those vertices that belong to more than one biconnected component are called"
+" articulation points or, equivalently, cut vertices. Articulation points are"
+" vertices whose removal would increase the number of connected components in"
+" the graph. This implementation can only be used with an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:39
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:41
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:43
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:45
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:47
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:62
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:75
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the return values for articulation points"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:91
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:93
+msgid "http://en.wikipedia.org/wiki/Biconnected_component"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:94
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:97
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:98
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:99
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_bdAstar.po b/locale/it/LC_MESSAGES/pgr_bdAstar.po
new file mode 100644
index 0000000..fdfaa05
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_bdAstar.po
@@ -0,0 +1,669 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdAstar.rst:13
+msgid "pgr_bdAstar"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:18
+msgid "``pgr_bdAstar`` — Returns the shortest path using A* algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:26
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:27
+msgid "pgr_bdAstar(one to one) 2.0.0, Signature change on 2.5.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:28
+msgid "pgr_bdAstar(other signatures) 2.5.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:32
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:54
+msgid ""
+"Using these signatures, will load once the graph and perform several one to "
+"one `pgr_bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:56
+msgid ""
+"The result is the union of the results of the one to one `pgr_bdAStar`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:57
+msgid ""
+"The extra ``start_vid`` and/or ``end_vid`` in the result is used to "
+"distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:61
+msgid "Avaliability"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:62
+msgid "pgr_bdAstar(one to one) 2.0, signature change on 2.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:63
+msgid "pgr_bdAstar(other signatures) 2.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:68
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:76
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:87
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to the ``end_vid``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:84
+msgid "on a **directed** graph"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:85
+msgid "with **heuristic**'s value 5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:86
+msgid "with **factor**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:87
+msgid "with **epsilon**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:89
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:102
+msgid "pgr_bdAstar One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:111
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to the ``end_vid``"
+" allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:109
+msgid "**heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:110 ../../build/doc/pgr_bdAstar.rst:137
+#: ../../build/doc/pgr_bdAstar.rst:162 ../../build/doc/pgr_bdAstar.rst:186
+msgid "and/or **factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:111 ../../build/doc/pgr_bdAstar.rst:138
+#: ../../build/doc/pgr_bdAstar.rst:163 ../../build/doc/pgr_bdAstar.rst:187
+msgid "and/or **epsilon**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:114
+msgid ""
+"In the One to One signature, because of the deprecated signature existence, "
+"it is compulsory to indicate if the graph is **directed** or **undirected**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:116
+msgid "Directed using Heuristic 2"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:127
+msgid "pgr_bdAstar One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:139
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to each "
+"``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:135 ../../build/doc/pgr_bdAstar.rst:160
+#: ../../build/doc/pgr_bdAstar.rst:184
+msgid "if the graph is **directed** or **undirected**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:136 ../../build/doc/pgr_bdAstar.rst:161
+#: ../../build/doc/pgr_bdAstar.rst:185
+msgid "and/or **heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:141
+msgid "Directed using Heuristic 3 and a factor of 3.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:152
+msgid "pgr_bdAstar Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:163
+msgid ""
+"This usage finds the shortest path from each ``start_vid`` in ``start_vids``"
+" to the ``end_vid`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:165
+msgid "Undirected graph with Heuristic 4"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:176
+msgid "pgr_bdAstar Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:187
+msgid ""
+"This usage finds the shortest path from each ``start_vid`` in ``start_vids``"
+" to each ``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:189
+msgid "Directed graph with a factor of 0.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:196
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:10 ../../build/doc/bdAstar-family.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11 ../../build/doc/bdAstar-family.rst:13
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:16
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:21
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:22
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:23
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:24
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:25
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:26
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28 ../../build/doc/bdAstar-family.rst:29
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:213
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:215
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:216
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:217
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:218
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:221
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:222
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:223
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_bdAstarCost.po b/locale/it/LC_MESSAGES/pgr_bdAstarCost.po
new file mode 100644
index 0000000..9b72e10
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_bdAstarCost.po
@@ -0,0 +1,594 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdAstarCost.rst:13
+msgid "pgr_bdAstarCost - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:18
+msgid "``pgr_bdAstarCost`` — Returns the shortest path using A* algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:26
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:32
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:46
+msgid ""
+"Using these signatures, will load once the graph and perform several one to "
+"one `pgr_bdAstarCost`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:48
+msgid ""
+"The result is the union of the results of the one to one `pgr_bdAstarCost`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:49
+msgid ""
+"The extra ``start_vid`` and/or ``end_vid`` in the result is used to "
+"distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:56
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:64
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:75
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to the ``end_vid``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:72
+msgid "on a **directed** graph"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:73
+msgid "with **heuristic**'s value 5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:74
+msgid "with **factor**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:75
+msgid "with **epsilon**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:77
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:90
+msgid "pgr_bdAstarCost One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:100
+#: ../../build/doc/pgr_bdAstarCost.rst:128
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to each "
+"``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:97
+#: ../../build/doc/pgr_bdAstarCost.rst:124
+#: ../../build/doc/pgr_bdAstarCost.rst:149
+#: ../../build/doc/pgr_bdAstarCost.rst:173
+msgid "if the graph is **directed** or **undirected**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:98
+msgid "**heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:99
+#: ../../build/doc/pgr_bdAstarCost.rst:126
+#: ../../build/doc/pgr_bdAstarCost.rst:151
+#: ../../build/doc/pgr_bdAstarCost.rst:175
+msgid "and/or **factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:100
+#: ../../build/doc/pgr_bdAstarCost.rst:127
+#: ../../build/doc/pgr_bdAstarCost.rst:152
+#: ../../build/doc/pgr_bdAstarCost.rst:176
+msgid "and/or **epsilon**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:103
+msgid ""
+"In the One to One signature, because of the deprecated signature existence, "
+"it is compulsory to indicate if the graph is **directed** or **undirected**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:105
+msgid "Directed using Heuristic 2"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:116
+msgid "pgr_bdAstarCost One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:125
+#: ../../build/doc/pgr_bdAstarCost.rst:150
+#: ../../build/doc/pgr_bdAstarCost.rst:174
+msgid "and/or **heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:130
+msgid "Directed using Heuristic 3 and a factor of 3.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:141
+msgid "pgr_bdAstarCost Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:152
+msgid ""
+"This usage finds the shortest path from each ``start_vid`` in ``start_vids``"
+" to the ``end_vid`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:154
+msgid "Undirected graph with Heuristic 4"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:165
+msgid "pgr_bdAstarCost Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:176
+msgid ""
+"This usage finds the shortest path from each ``start_vid`` in ``start_vids``"
+" to each ``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:178
+msgid "Directed graph with a factor of 0.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:185
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:10 ../../build/doc/bdAstar-family.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11 ../../build/doc/bdAstar-family.rst:13
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:16
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:21
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:22
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:23
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:24
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:25
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:26
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28 ../../build/doc/bdAstar-family.rst:29
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:202
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:204
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:205
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:206
+msgid ""
+"`Migration Guide <https://github.com/cvvergara/pgrouting/wiki/Migration-"
+"Guide#pgr_bdastar>`_"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:207
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:208
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:211
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:212
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:213
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_bdAstarCostMatrix.po b/locale/it/LC_MESSAGES/pgr_bdAstarCostMatrix.po
new file mode 100644
index 0000000..c8738fa
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_bdAstarCostMatrix.po
@@ -0,0 +1,536 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:13
+msgid "pgr_bdAstarCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:18
+msgid ""
+"``pgr_bdAstarCostMatrix`` - Calculates the a cost matrix using "
+":ref:`pgr_bdAstar`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:27
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:35
+msgid "Using Dijkstra algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:38
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:49
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:55
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:68
+msgid ""
+"This usage calculates the cost from the each ``start_vid`` in ``start_vids``"
+" to  each ``start_vid`` in ``start_vids``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:64
+msgid "on a **directed** graph"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:65
+msgid "with **heuristic**'s value 5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:66
+msgid "with **factor**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:67
+msgid "with **epsilon**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:70
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:82
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:95
+msgid ""
+"This usage calculates the cost from the each ``start_vid`` in ``start_vids``"
+" to  each ``start_vid`` in ``start_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:91
+msgid "if the graph is **directed** or **undirected**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:92
+msgid "**heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:93
+msgid "and/or **factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:94
+msgid "and/or **epsilon**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:97
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:99
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:107
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:10 ../../build/doc/bdAstar-family.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11 ../../build/doc/bdAstar-family.rst:13
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:16
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:21
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:22
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:23
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:24
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:25
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:26
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28 ../../build/doc/bdAstar-family.rst:29
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:123
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:125
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:133
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:135
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:136
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:137
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:138
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:141
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:142
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:143
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_bdDijkstra.po b/locale/it/LC_MESSAGES/pgr_bdDijkstra.po
new file mode 100644
index 0000000..b05e40f
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_bdDijkstra.po
@@ -0,0 +1,541 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdDijkstra.rst:13
+msgid "pgr_bdDijkstra"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:15
+msgid ""
+"``pgr_bdDijkstra`` — Returns the shortest path(s) using Bidirectional "
+"Dijkstra algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:23
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:24
+msgid "pgr_bdDijkstra(one to one) 2.0.0, Signature changed 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:25
+msgid "pgr_bdDijkstra(other signatures) 2.5.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:28
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:54
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:60
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:67
+msgid ""
+"The minimal signature is for a **directed** graph from one ``start_vid`` to "
+"one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:80
+msgid "pgr_bdDijkstra One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:87
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:89
+#: ../../build/doc/pgr_bdDijkstra.rst:112
+#: ../../build/doc/pgr_bdDijkstra.rst:141
+#: ../../build/doc/pgr_bdDijkstra.rst:170
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:90
+#: ../../build/doc/pgr_bdDijkstra.rst:113
+#: ../../build/doc/pgr_bdDijkstra.rst:142
+#: ../../build/doc/pgr_bdDijkstra.rst:171
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:103
+msgid "pgr_bdDijkstra One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:110
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:115
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_dijkstra` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:118
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:119
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:132
+msgid "pgr_bdDijkstra Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:139
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:144
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_dijkstra` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:147
+#: ../../build/doc/pgr_bdDijkstra.rst:176
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:148
+#: ../../build/doc/pgr_bdDijkstra.rst:177
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:161
+msgid "pgr_bdDijkstra Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:168
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:173
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:179
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:190
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10 ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11 ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:208
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:210
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:211
+msgid ":ref:`bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:212
+msgid ""
+"http://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/EPP%20shortest%20path%20algorithms.pdf"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:213
+msgid "https://en.wikipedia.org/wiki/Bidirectional_search"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:216
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:217
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:218
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_bdDijkstraCost.po b/locale/it/LC_MESSAGES/pgr_bdDijkstraCost.po
new file mode 100644
index 0000000..0516529
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_bdDijkstraCost.po
@@ -0,0 +1,470 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:13
+msgid "pgr_bdDijkstraCost - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:15
+msgid ""
+"``pgr_bdDijkstraCost`` — Returns the shortest path(s)'s cost using "
+"Bidirectional Dijkstra algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:23
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:30
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:46
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:52
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:59
+msgid ""
+"The minimal signature is for a **directed** graph from one ``start_vid`` to "
+"one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:72
+msgid "pgr_bdDijkstraCost One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:81
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:80
+#: ../../build/doc/pgr_bdDijkstraCost.rst:102
+#: ../../build/doc/pgr_bdDijkstraCost.rst:130
+#: ../../build/doc/pgr_bdDijkstraCost.rst:158
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:81
+#: ../../build/doc/pgr_bdDijkstraCost.rst:103
+#: ../../build/doc/pgr_bdDijkstraCost.rst:131
+#: ../../build/doc/pgr_bdDijkstraCost.rst:159
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:94
+msgid "pgr_bdDijkstraCost One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:103
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:105
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_dijkstra` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:108
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:109
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:122
+msgid "pgr_bdDijkstraCost Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:131
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:133
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_dijkstra` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:136
+#: ../../build/doc/pgr_bdDijkstraCost.rst:164
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:137
+#: ../../build/doc/pgr_bdDijkstraCost.rst:165
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:150
+msgid "pgr_bdDijkstraCost Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:159
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:161
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:167
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:178
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10 ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11 ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:195
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:197
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:198
+msgid ":ref:`pgr_bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:199
+msgid ""
+"http://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/EPP%20shortest%20path%20algorithms.pdf"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:200
+msgid "https://en.wikipedia.org/wiki/Bidirectional_search"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:203
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:204
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:205
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_bdDijkstraCostMatrix.po b/locale/it/LC_MESSAGES/pgr_bdDijkstraCostMatrix.po
new file mode 100644
index 0000000..0b0a2ae
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_bdDijkstraCostMatrix.po
@@ -0,0 +1,382 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:13
+msgid "pgr_bdDijkstraCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:18
+msgid ""
+"``pgr_bdDijkstraCostMatrix`` - Calculates the a cost matrix using "
+":ref:`pgr_bdDijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:27
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:35
+msgid "Using Dijkstra algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:38
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:49
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:55
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:58
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:58
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:66
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:78
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:86
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:88
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:96
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:108
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:108
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:105
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:108
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:110
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:110
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:110
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:111
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:111
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:111
+msgid "Array of identifiers of the vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:112
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:112
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:112
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:122
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:124
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:132
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:134
+msgid ":ref:`bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:135
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:136
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:137
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:140
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:141
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:142
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_biconnectedComponents.po b/locale/it/LC_MESSAGES/pgr_biconnectedComponents.po
new file mode 100644
index 0000000..f4db188
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_biconnectedComponents.po
@@ -0,0 +1,349 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:13
+msgid "pgr_biconnectedComponents - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:15
+msgid ""
+"``pgr_biconnectedComponents`` — Return the biconnected components of an "
+"undirected graph. In particular, the algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:31
+msgid ""
+"The biconnected components of an undirected graph are the maximal subsets of"
+" vertices such that the removal of a vertex from particular component will "
+"not disconnect the component. Unlike connected components, vertices may "
+"belong to multiple biconnected components. Vertices can be present in "
+"multiple biconnected components, but each edge can only be contained in a "
+"single biconnected component. So, the output only has edge version."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:36
+msgid "This implementation can only be used with an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:39
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:41
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:43
+msgid "Components are described by edges"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:45
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:47
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:48
+msgid "`edge` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:50
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:53
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:65
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:78
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:14
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid ""
+"Description of the return values for biconnected components, connected "
+"components (edge version) and strongly connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, component, n_seq, edge)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid ""
+"Component identifier. It is equal to the minimum edge identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:94
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:96
+msgid "http://en.wikipedia.org/wiki/Biconnected_component"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:97
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:100
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:101
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:102
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_boykovKolmogorov.po b/locale/it/LC_MESSAGES/pgr_boykovKolmogorov.po
new file mode 100644
index 0000000..84d76a4
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_boykovKolmogorov.po
@@ -0,0 +1,435 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:14
+msgid "pgr_boykovKolmogorov - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:18
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:20
+msgid ""
+"``pgr_boykovKolmogorov`` — Calculates the flow on the graph edges that "
+"maximizes the flow from the sources to the targets using Boykov Kolmogorov "
+"algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:29
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:30
+msgid "Renamed 2.5.0, Previous name pgr_maxFlowBoykovKolmogorov"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:31
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:8
+msgid ""
+"When the maximum flow is 0 then there is no flow and **EMPTY SET** is "
+"returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:12
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:15
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid ""
+"Creates a **super source** and edges to all the source(s), and a **super "
+"target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid ""
+"The maximum flow through the graph is guaranteed to be the value returned by"
+" :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and"
+" can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:42
+msgid "Running time: Polynomial"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:45
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:61
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:63
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:82
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:84
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:103
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:105
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:124
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:126
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:141
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:4
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10 ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11 ../../build/doc/pgr_maxFlow.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:12
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:159
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:161
+msgid ""
+":ref:`maxFlow`, :ref:`pgr_pushRelabel <pgr_pushRelabel>`, "
+":ref:`pgr_EdmondsKarp <pgr_edmondsKarp>`"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:162
+msgid "http://www.boost.org/libs/graph/doc/boykov_kolmogorov_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:165
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:166
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:167
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_bridges.po b/locale/it/LC_MESSAGES/pgr_bridges.po
new file mode 100644
index 0000000..a80bf4e
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_bridges.po
@@ -0,0 +1,310 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bridges.rst:13
+msgid "pgr_bridges - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:16
+msgid "``pgr_bridges`` - Return the bridges of an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:31
+msgid ""
+"A bridge is an edge of an undirected graph whose deletion increases its "
+"number of connected components. This implementation can only be used with an"
+" undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:36
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:38
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:40
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:42
+msgid "`edge` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:44
+msgid "Running time: :math:`O(E * (V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:47
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:59
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:72
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the return values for bridges"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:88
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:90
+msgid "http://en.wikipedia.org/wiki/Bridge_%28graph_theory%29"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:91
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:94
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:95
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:96
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_connectedComponents.po b/locale/it/LC_MESSAGES/pgr_connectedComponents.po
new file mode 100644
index 0000000..2474096
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_connectedComponents.po
@@ -0,0 +1,346 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_connectedComponents.rst:13
+msgid "pgr_connectedComponents - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:16
+msgid ""
+"``pgr_connectedComponents`` — Return the connected components of an "
+"undirected graph using a DFS-based approach. In particular, the algorithm "
+"implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:22
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:30
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:32
+msgid ""
+"A connected component of an undirected graph is a set of vertices that are "
+"all reachable from each other. This implementation can only be used with an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:37
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:39
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:41
+msgid "Components are described by vertices"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:43
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:45
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:46
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:48
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:63
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:76
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid ""
+"Description of the return values for connected components and strongly "
+"connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, component, n_seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid ""
+"Component identifier. It is equal to the minimum node identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:92
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:94
+msgid "http://en.wikipedia.org/wiki/Connected_component_%28graph_theory%29"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:95
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:98
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:99
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:100
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_contractGraph.po b/locale/it/LC_MESSAGES/pgr_contractGraph.po
new file mode 100644
index 0000000..8d27664
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_contractGraph.po
@@ -0,0 +1,488 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_contractGraph.rst:13
+msgid "pgr_contractGraph - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:15
+msgid ""
+"``pgr_contractGraph`` — Performs graph contraction and returns the "
+"contracted vertices and edges."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:23
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:30
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:32
+msgid ""
+"Contraction reduces the size of the graph by removing some of the vertices "
+"and edges and, for example, might add edges that represent a sequence of "
+"original edges decreasing the total time and space used in graph algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:35
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:52
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:38
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:40
+msgid "There are two types of contraction methods used namely,"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:42
+msgid "Dead End Contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:43
+msgid "Linear Contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:45
+msgid "The values returned include the added edges and contracted vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:47
+msgid "The returned values are ordered as follows:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:49
+msgid "column `id` ascending when type = `v`"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:50
+msgid "column `id` descending when type = `e`"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:55
+msgid "Signature Summary:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:57
+msgid "The pgr_contractGraph function has the following signatures:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:68
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:74
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:80
+msgid "Making a dead end contraction and a linear contraction."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:87
+msgid "Complete signature"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:93
+msgid ""
+"Making a dead end contraction and a linear contraction and vertex 2 is "
+"forbidden from contraction"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_contractGraph.rst:109
+#: ../../build/doc/pgr_contractGraph.rst:130
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_contractGraph.rst:109
+#: ../../build/doc/pgr_contractGraph.rst:130
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_contractGraph.rst:109
+#: ../../build/doc/pgr_contractGraph.rst:130
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgr_contractGraph.rst:136
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_contractGraph.rst:146
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_contractGraph.rst:147
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_contractGraph.rst:148
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:106
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:111
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:111
+#: ../../build/doc/pgr_contractGraph.rst:133
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:111
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:112
+msgid "**contraction_order**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:112
+#: ../../build/doc/pgr_contractGraph.rst:115
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:113
+msgid "Ordered contraction operations."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:113
+msgid "1 = Dead end contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:114
+msgid "2 = Linear contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:115
+msgid "**forbidden_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:115
+msgid ""
+"(optional). Identifiers of vertices forbidden from contraction. Default is "
+"an empty array."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:116
+msgid "**max_cycles**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:116
+#: ../../build/doc/pgr_contractGraph.rst:132
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:116
+msgid ""
+"(optional). Number of times the contraction operations on "
+"`contraction_order` will be performed. Default is 1."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:117
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:117
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:117
+msgid "When ``true`` the graph is considered as `Directed`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:118
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:123
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:125
+msgid ""
+"RETURNS SETOF  (seq, type, id, contracted_vertices, source, target, cost)"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:127
+msgid "The function returns a single row. The columns of the row are:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:132
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:132
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:133
+msgid "**type**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:134
+msgid "Type of the `id`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:134
+msgid "'v' when `id` is an identifier of a vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:135
+msgid "'e' when `id` is an identifier of an edge."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:136
+#: ../../build/doc/pgr_contractGraph.rst:146
+#: ../../build/doc/pgr_contractGraph.rst:147
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:143
+msgid "Identifier of:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:137
+msgid "the  vertex when `type = 'v'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:139
+msgid "The vertex belongs to the edge_table passed as a parameter."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:140
+msgid "the edge when `type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:142
+msgid "The `id` is a decreasing sequence starting from **-1**."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:144
+msgid "Representing a pseudo `id` as is not incorporated into the edge_table."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:145
+msgid "**contracted_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:145
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:145
+msgid "Array of contracted vertex identifiers."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:146
+msgid ""
+"Identifier of the source vertex of the current edge `id`. Valid values when "
+"`type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:147
+msgid ""
+"Identifier of the target vertex of the current edge `id`. Valid values when "
+"`type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:148
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:148
+msgid ""
+"Weight of the edge (`source`, `target`). Valid values when `type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:152
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:154
+msgid "Only dead end contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:160
+msgid "Only linear contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:168
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:169
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:170
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_createTopology.po b/locale/it/LC_MESSAGES/pgr_createTopology.po
new file mode 100644
index 0000000..44a282e
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_createTopology.po
@@ -0,0 +1,395 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_createTopology.rst:13
+msgid "pgr_createTopology"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:18
+msgid ""
+"``pgr_createTopology`` — Builds a network topology based on the geometry "
+"information."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:22
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:24
+#: ../../build/doc/pgr_createTopology.rst:72
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:26
+msgid ""
+"``OK`` after the network topology has been built and the vertices table "
+"created."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:27
+msgid "``FAIL`` when the network topology was not built due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:42
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:45
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:46
+msgid "The topology creation function accepts the following parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:48
+msgid "``text`` Network table name. (may contain the schema name AS well)"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:49
+msgid ""
+"``float8`` Snapping tolerance of disconnected edges. (in projection unit)"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:50
+msgid ""
+"``text``  Geometry column name of the network table. Default value is "
+"``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:51
+msgid ""
+"``text``  Primary key column name of the network table. Default value is "
+"``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:52
+msgid ""
+"``text`` Source column name of the network table. Default value is "
+"``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:53
+msgid ""
+"``text``  Target column name of the network table.  Default value is "
+"``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:54
+msgid ""
+"``text``   Condition to SELECT a subset or rows.  Default value is ``true`` "
+"to indicate all rows that where ``source`` or ``target`` have a null value, "
+"otherwise the condition is used."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:56
+msgid "``boolean`` Clean any previous topology.  Default value is ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:60
+msgid "The ``edge_table`` will be affected"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:62
+msgid "The ``source`` column values will change."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:63
+msgid "The ``target`` column values will change."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:65
+msgid ""
+"An index will be created, if it doesn't exists, to speed up the process to "
+"the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:67
+msgid "``id``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:68
+msgid "``the_geom``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:69
+msgid "``source``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:70
+msgid "``target``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:74
+msgid "``OK`` after the network topology has been built."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:76
+msgid "Creates a vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:77
+msgid "Fills ``id`` and ``the_geom`` columns of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:78
+msgid ""
+"Fills the source and target columns of the edge table referencing the ``id``"
+" of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:81
+msgid "``FAIL`` when the network topology was not built due to an error:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:83
+msgid ""
+"A required column of the Network table is not found or is not of the "
+"appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:84
+msgid "The condition is not well formed."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:85
+msgid "The names of source , target or id are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:86
+msgid "The SRID of the geometry could not be determined."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:90
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:91
+msgid ""
+"The vertices table is a requirement of the :ref:`pgr_analyzeGraph "
+"<pgr_analyze_graph>` and the :ref:`pgr_analyzeOneway <pgr_analyze_oneway>` "
+"functions."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:93
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:95
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:96
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex."
+" See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:97
+msgid ""
+"``integer``  Indicator that the vertex might have a problem. See "
+":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:98
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"AS incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:99
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"AS outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:100
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:103
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:104
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:107
+msgid "Usage when the edge table's columns MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:110
+msgid "The simplest way to use pgr_createTopology is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:118
+msgid "When the arguments are given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:119
+msgid "We get the same result AS the simplest way to use the function."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"In this example, the column ``id`` of the table ``ege_table`` is passed to "
+"the function as the geometry column,"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"and the geometry column ``the_geom`` is passed to the function as the id "
+"column."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:136
+#: ../../build/doc/pgr_createTopology.rst:205
+msgid "When using the named notation"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:137
+msgid ""
+"Parameters defined with a default value can be omitted, as long as the value"
+" matches the default And The order of the parameters would not matter."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:153
+#: ../../build/doc/pgr_createTopology.rst:219
+msgid "Selecting rows using rows_where parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:154
+msgid "Selecting rows based on the id."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:160
+msgid ""
+"Selecting the rows where the geometry is near the geometry of row with ``id "
+"= 5``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:166
+#: ../../build/doc/pgr_createTopology.rst:227
+msgid ""
+"Selecting the rows where the geometry is near the geometry of the row with "
+"``gid`` =100 of the table ``othertable``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:176
+msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:178
+msgid "For the following table"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:185
+msgid "Using positional notation:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:186
+msgid ""
+"The arguments need to be given in the order described in the parameters."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:188
+msgid ""
+"Note that this example uses clean flag. So it recreates the whole vertices "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropiriate "
+"order:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"In this example, the column ``gid`` of the table ``mytable`` is passed to "
+"the function AS the geometry column,"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"and the geometry column ``mygeom`` is passed to the function AS the id "
+"column."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:206
+msgid ""
+"In this scenario omitting a parameter would create an error because the "
+"default values for the column names do not match the column names of the "
+"table. The order of the parameters do not matter:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:220
+msgid "Based on id:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:235
+msgid "Examples with full output"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:237
+msgid ""
+"This example start a clean topology, with 5 edges, and then its incremented "
+"to the rest of the edges."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:243
+msgid "The example uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:247
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:249
+msgid ":ref:`topology` for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:250
+msgid ""
+":ref:`pgr_create_vert_table` to reconstruct the vertices table based on the "
+"source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:251
+msgid ""
+":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:254
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:255
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:256
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_createVerticesTable.po b/locale/it/LC_MESSAGES/pgr_createVerticesTable.po
new file mode 100644
index 0000000..191059e
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_createVerticesTable.po
@@ -0,0 +1,341 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_createVerticesTable.rst:13
+msgid "pgr_createVerticesTable"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:18
+msgid ""
+"``pgr_createVerticesTable`` — Reconstructs the vertices table based on the "
+"source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:22
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:24
+#: ../../build/doc/pgr_createVerticesTable.rst:62
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:26
+#: ../../build/doc/pgr_createVerticesTable.rst:64
+msgid "``OK`` after the vertices table has been reconstructed."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:27
+#: ../../build/doc/pgr_createVerticesTable.rst:69
+msgid ""
+"``FAIL`` when the vertices table was not reconstructed due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:43
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:44
+msgid ""
+"The reconstruction of the vertices table  function accepts the following "
+"parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:46
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:47
+msgid ""
+"``text``  Geometry column name of the network table. Default value is "
+"``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:48
+msgid ""
+"``text`` Source column name of the network table. Default value is "
+"``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:49
+msgid ""
+"``text``  Target column name of the network table.  Default value is "
+"``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:50
+msgid ""
+"``text``   Condition to SELECT a subset or rows.  Default value is ``true`` "
+"to indicate all rows."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:54
+msgid "The ``edge_table`` will be affected"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:56
+msgid ""
+"An index will be created, if it doesn't exists, to speed up the process to "
+"the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:58
+msgid "``the_geom``"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:59
+msgid "``source``"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:60
+msgid "``target``"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:66
+msgid "Creates a vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:67
+msgid ""
+"Fills ``id`` and ``the_geom`` columns of the vertices table based on the "
+"source and target columns of the edge table."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:71
+msgid ""
+"A required column of the Network table is not found or is not of the "
+"appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:72
+msgid "The condition is not well formed."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:73
+msgid "The names of source, target are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:74
+msgid "The SRID of the geometry could not be determined."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:77
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:78
+msgid ""
+"The vertices table is a requierment of the :ref:`pgr_analyzeGraph "
+"<pgr_analyze_graph>` and the :ref:`pgr_analyzeOneway <pgr_analyze_oneway>` "
+"functions."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:80
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:82
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:83
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex."
+" See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:84
+msgid ""
+"``integer``  Indicator that the vertex might have a problem. See "
+":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:85
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:86
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:87
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:90
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:91
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:94
+msgid "Usage when the edge table's columns MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:97
+msgid "The simplest way to use pgr_createVerticesTable is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:104
+msgid "When the arguments are given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:109
+msgid "We get the same result as the simplest way to use the function."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:111
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order: In this example, the column source column ``source`` of the table "
+"``mytable`` is passed to the function as the geometry column, and the "
+"geometry column ``the_geom`` is passed to the function as the source column."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:128
+#: ../../build/doc/pgr_createVerticesTable.rst:205
+msgid "When using the named notation"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:129
+#: ../../build/doc/pgr_createVerticesTable.rst:206
+msgid "The order of the parameters do not matter:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:139
+msgid ""
+"Parameters defined with a default value can be omitted, as long as the value"
+" matches the default:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:146
+#: ../../build/doc/pgr_createVerticesTable.rst:220
+msgid "Selecting rows using rows_where parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:147
+msgid "Selecting rows based on the id."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:153
+msgid ""
+"Selecting the rows where the geometry is near the geometry of row with "
+"``id`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:159
+#: ../../build/doc/pgr_createVerticesTable.rst:243
+msgid ""
+"Selecting the rows where the geometry is near the geometry of the row with "
+"``gid`` =100 of the table ``othertable``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:170
+msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:172
+msgid "For the following table"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:180
+msgid "Using positional notation:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:181
+msgid ""
+"The arguments need to be given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order: In this example, the column ``src`` of the table ``mytable`` is "
+"passed to the function as the geometry column, and the geometry column "
+"``mygeom`` is passed to the function as the source column."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:216
+msgid ""
+"In this scenario omitting a parameter would create an error because the "
+"default values for the column names do not match the column names of the "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:221
+msgid "Selecting rows based on the gid."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:231
+msgid ""
+"Selecting the rows where the geometry is near the geometry of row with "
+"``gid`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:260
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:282
+msgid "The example uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:286
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:288
+msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:289
+msgid ""
+":ref:`pgr_createTopology <pgr_create_topology>` to create a topology based "
+"on the geometry."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:290
+msgid ""
+":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:291
+msgid ":ref:`pgr_analyze_oneway` to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:294
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:295
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:296
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_dijkstra.po b/locale/it/LC_MESSAGES/pgr_dijkstra.po
new file mode 100644
index 0000000..45cbd10
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_dijkstra.po
@@ -0,0 +1,621 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid ""
+"``pgr_dijkstra`` — Returns the shortest path(s) using Dijkstra algorithm. In"
+" particular, the Dijkstra algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:24
+msgid "Availability"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:25
+msgid "pgr_dijkstra(one to one) 2.0.0, signature change 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:26
+msgid "pgr_dijkstra(other signatures) 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:31
+msgid ""
+"Dijkstra's algorithm, conceived by Dutch computer scientist Edsger Dijkstra "
+"in 1956. It is a graph search algorithm that solves the shortest path "
+"problem for a graph with non-negative edge path costs, producing a shortest "
+"path from a starting vertex (``start_vid``) to an ending vertex "
+"(``end_vid``). This implementation can be used with a directed graph and an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:38
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:60
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:41
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:42
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:44
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:46
+msgid "The `agg_cost` the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:48
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:50
+msgid "The `agg_cost` the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:52
+msgid ""
+"For optimization purposes, any duplicated value in the `start_vids` or "
+"`end_vids` are ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:54
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:56
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:57
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:59
+msgid "Running time: :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:63
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:78
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:84
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:91
+msgid ""
+"The minimal signature is for a **directed** graph from one ``start_vid`` to "
+"one ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:104
+msgid "pgr_dijkstra One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:114
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:113 ../../build/doc/pgr_dijkstra.rst:136
+#: ../../build/doc/pgr_dijkstra.rst:167 ../../build/doc/pgr_dijkstra.rst:197
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:114 ../../build/doc/pgr_dijkstra.rst:137
+#: ../../build/doc/pgr_dijkstra.rst:168 ../../build/doc/pgr_dijkstra.rst:198
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:127
+msgid "pgr_dijkstra One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:137
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:139
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_dijkstra` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:142
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:143
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:158
+msgid "pgr_dijkstra Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:168
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:170
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_dijkstra` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:173 ../../build/doc/pgr_dijkstra.rst:203
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:174 ../../build/doc/pgr_dijkstra.rst:204
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:188
+msgid "pgr_dijkstra Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:198
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:200
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:206
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:215
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:225
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:230
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:230
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:230
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:231 ../../build/doc/pgr_dijkstra.rst:233
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:231
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:232
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:232 ../../build/doc/pgr_dijkstra.rst:234
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:232
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:233
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:233
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:234
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:234
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:236
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:248
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:250
+msgid ""
+"The examples of this section are based on the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:252
+msgid ""
+"The examples include combinations from starting vertices 2 and 11 to ending "
+"vertices 3 and 5 in a directed and undirected graph with and with out "
+"reverse_cost."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:256
+msgid ""
+"Examples for queries marked as ``directed`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:258
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:267
+msgid ""
+"Examples for queries marked as ``undirected`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:269
+msgid "The examples in this section use the following :ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:277
+msgid "Examples for queries marked as ``directed`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:279
+msgid "The examples in this section use the following :ref:`fig3`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:287
+msgid "Examples for queries marked as ``undirected`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:289
+msgid "The examples in this section use the following :ref:`fig4`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:297
+msgid "Equvalences between signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:299
+msgid ""
+"For queries marked as ``directed`` with ``cost`` and ``reverse_cost`` "
+"columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:301 ../../build/doc/pgr_dijkstra.rst:313
+msgid "The examples in this section use the following:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:303
+msgid ":ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:311
+msgid ""
+"For queries marked as ``undirected`` with ``cost`` and ``reverse_cost`` "
+"columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:315
+msgid ":ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:324
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:326
+msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:327
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:330
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:331
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:332
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_dijkstraCost.po b/locale/it/LC_MESSAGES/pgr_dijkstraCost.po
new file mode 100644
index 0000000..a9193fb
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_dijkstraCost.po
@@ -0,0 +1,473 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstraCost.rst:13
+msgid "pgr_dijkstraCost"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:17
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:19
+msgid "``pgr_dijkstraCost``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:21
+msgid ""
+"Using Dijkstra algorithm implemented by Boost.Graph, and extract only the "
+"aggregate cost of the shortest path(s) found, for the combination of "
+"vertices given."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:27
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:30
+msgid "Availability"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:31
+msgid "pgr_dijkstraCost(all signatures) 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:33
+msgid ""
+"The ``pgr_dijkstraCost`` algorithm, is a good choice to calculate the sum of"
+" the costs of the shortest path for a subset of pairs of nodes of the graph."
+" We make use of the Boost's implementation of dijkstra which runs in "
+":math:`O(V \\log V + E)` time."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:39
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:71
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:42
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:43
+msgid ""
+"Returns the sum of the costs of the shortest path for pair combination of "
+"nodes in the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:44
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:45
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:47
+msgid ""
+"The returned values are in the form of a set of `(start_vid, end_vid, "
+"agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:49
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:51
+msgid "The `agg_cost` int the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:53
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:55
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:57
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:60
+msgid "For undirected graphs, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:62
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:64
+msgid "Any duplicated value in the `start_vids` or `end_vids` is ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:66
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:68
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:69
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:71
+msgid "Running time: :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:74
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:89
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:95
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:97
+msgid ""
+"The minimal signature is for a **directed** graph from one ``start_vid`` to "
+"one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:106
+msgid "Example"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:117
+msgid "pgr_dijkstraCost One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:122
+msgid ""
+"This signature performs a Dijkstra from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:121
+#: ../../build/doc/pgr_dijkstraCost.rst:150
+#: ../../build/doc/pgr_dijkstraCost.rst:176
+#: ../../build/doc/pgr_dijkstraCost.rst:201
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:122
+#: ../../build/doc/pgr_dijkstraCost.rst:151
+#: ../../build/doc/pgr_dijkstraCost.rst:177
+#: ../../build/doc/pgr_dijkstraCost.rst:202
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:141
+msgid "pgr_dijkstraCost One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:152
+msgid ""
+"This signature performs a Dijkstra from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:167
+msgid "pgr_dijkstraCost Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:178
+msgid ""
+"This signature performs a Dijkstra from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:192
+msgid "pgr_dijkstraCost Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:202
+msgid ""
+"This signature performs a Dijkstra from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:213
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10 ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11 ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:229
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:231
+msgid "Demonstration of repeated values are ignored, and result is sorted."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:237
+msgid "Making `start_vids` the same as `end_vids`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:246
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:248
+msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:249
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:252
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:253
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:254
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_dijkstraCostMatrix.po b/locale/it/LC_MESSAGES/pgr_dijkstraCostMatrix.po
new file mode 100644
index 0000000..95cf121
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_dijkstraCostMatrix.po
@@ -0,0 +1,358 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:13
+msgid "pgr_dijkstraCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:18
+msgid ""
+"``pgr_dijkstraCostMatrix`` - Calculates the a cost matrix using "
+"pgr_dijktras."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:29
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:32
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:34
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:36
+msgid "Using Dijkstra algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:39
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:56
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:59
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:59
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:67
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:79
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:87
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:89
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:97
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:106
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:109
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:111
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:111
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:111
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:112
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:112
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:112
+msgid "Array of identifiers of the vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:113
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:113
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:113
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:123
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:125
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:133
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:135
+msgid ":ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:136
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:137
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:138
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:141
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:142
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:143
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_dijkstraVia.po b/locale/it/LC_MESSAGES/pgr_dijkstraVia.po
new file mode 100644
index 0000000..0a3c5f1
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_dijkstraVia.po
@@ -0,0 +1,480 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstraVia.rst:13
+msgid "pgr_dijkstraVia - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:19
+msgid ""
+"``pgr_dijkstraVia`` — Using dijkstra algorithm, it finds the route that goes"
+" through a list of vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:30
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:32
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:34
+msgid ""
+"Given a list of vertices and a graph, this function is equivalent to finding"
+" the shortest path between :math:`vertex_i` and :math:`vertex_{i+1}` for all"
+" :math:`i < size\\_of(vertex_via)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:37
+msgid "The paths represents the sections of the route."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:39
+msgid "This is a proposed function"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:42
+msgid "Signatrue Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:53
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:59
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:67
+msgid "Find the route that visits the vertices 1 3 9  in that order"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:77
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:86
+msgid ""
+"Find the route that visits the vertices 1 3 9  in that order on an "
+"undirected graph, avoiding U-turns when possible"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:94
+msgid "Description of the Signature"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:124
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:7
+#: ../../build/doc/pgr_dijkstraVia.rst:108
+#: ../../build/doc/pgr_dijkstraVia.rst:124
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:7
+#: ../../build/doc/pgr_dijkstraVia.rst:108
+#: ../../build/doc/pgr_dijkstraVia.rst:124
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_dijkstraVia.rst:133
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+#: ../../build/doc/pgr_dijkstraVia.rst:105
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:7
+#: ../../build/doc/pgr_dijkstraVia.rst:108
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:110
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:110
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:110
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgr_dijkstraVia.rst:111
+msgid "**via_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgr_dijkstraVia.rst:111
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Array of ordered vertices identifiers that are going to be visited."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgr_dijkstraVia.rst:112
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgr_dijkstraVia.rst:112
+#: ../../build/doc/pgr_dijkstraVia.rst:113
+#: ../../build/doc/pgr_dijkstraVia.rst:114
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_dijkstraVia.rst:113
+msgid "**strict**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``false``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "When ``false`` ignores missing paths returning all paths found"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "When ``true`` if a path is missing stops and returns `EMPTY SET`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgr_dijkstraVia.rst:114
+msgid "**U_turn_on_edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"When ``true`` departing from a visited vertex will not try to avoid using "
+"the edge used to reach it.  In other words, U turn using the edge with same "
+"`id` is allowed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When ``false`` when a departing from a visited vertex tries to avoid using "
+"the edge used to reach it.  In other words, U turn using the edge with same "
+"`id` is used when no other path is found."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:111
+msgid "Array of vertices identifiers"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:112
+#: ../../build/doc/pgr_dijkstraVia.rst:114
+msgid ""
+"(optional) Default is true (is directed). When set to false the graph is "
+"considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:113
+msgid ""
+"(optional) ignores if a subsection of the route is missing and returns "
+"everything it found Default is true (is directed). When set to false the "
+"graph is considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:119
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:121
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:126
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:126
+#: ../../build/doc/pgr_dijkstraVia.rst:127
+#: ../../build/doc/pgr_dijkstraVia.rst:128
+#: ../../build/doc/pgr_dijkstraVia.rst:129
+#: ../../build/doc/pgr_dijkstraVia.rst:130
+#: ../../build/doc/pgr_dijkstraVia.rst:131
+#: ../../build/doc/pgr_dijkstraVia.rst:132
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:126
+msgid "Sequential value starting from 1."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:127
+msgid "**path_pid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:127
+msgid "Identifier of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:128
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:128
+msgid "Sequential value starting from 1 for the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:129
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:129
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:130
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:130
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:131
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:131
+msgid "Identifier of the node in the path from start_vid to end_vid."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:132
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:132
+msgid ""
+"Identifier of the edge used to go from node to the next node in the path "
+"sequence. -1 for the last node of the path. -2 for the last node of the "
+"route."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:133
+#: ../../build/doc/pgr_dijkstraVia.rst:134
+#: ../../build/doc/pgr_dijkstraVia.rst:135
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:133
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the route "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:134
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:134
+msgid "Total cost from ``start_vid`` to ``end_vid`` of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:135
+msgid "**route_agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:135
+msgid ""
+"Total cost from ``start_vid`` of ``path_pid = 1`` to ``end_vid`` of the "
+"current ``path_pid`` ."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:140
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:142
+msgid "Find the route that visits the vertices 1 5 3 9 4 in that order"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:148
+msgid "What's the aggregate cost of the third path?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:154
+msgid ""
+"What's the route's aggregate cost of the route at the end of the third path?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:160
+msgid "How are the nodes visited in the route?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:166
+msgid ""
+"What are the aggregate costs of the route when the visited vertices are "
+"reached?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:172
+msgid ""
+"show the route's seq and aggregate cost and a status of \"passes in front\" "
+"or \"visits\" node 9"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:179
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:181
+msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:182
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:185
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:186
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:187
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_drivingDistance.po b/locale/it/LC_MESSAGES/pgr_drivingDistance.po
new file mode 100644
index 0000000..77f7b8e
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_drivingDistance.po
@@ -0,0 +1,391 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_drivingDistance.rst:13
+msgid "pgr_drivingDistance"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:19
+msgid ""
+"``pgr_drivingDistance`` - Returns the driving distance from a start node."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:25
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:28
+msgid "Availability"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:29
+msgid "pgr_drivingDistance(single vertex) 2.0.0, signature change 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:30
+msgid "pgr_drivingDistance(multiple vertices) 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:35
+msgid ""
+"Using the Dijkstra algorithm, extracts all the nodes that have costs less "
+"than or equal to the value ``distance``. The edges extracted will conform to"
+" the corresponding spanning tree."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:39
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:57
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:70
+msgid "Driving Distance From A Single Starting Vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:82
+msgid "Driving Distance From Multiple Starting Vertices"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:90
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_drivingDistance.rst:101
+#: ../../build/doc/pgr_drivingDistance.rst:119
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_drivingDistance.rst:101
+#: ../../build/doc/pgr_drivingDistance.rst:119
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_drivingDistance.rst:101
+#: ../../build/doc/pgr_drivingDistance.rst:119
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_drivingDistance.rst:125
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:98
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:103
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:103
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:103
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:104
+#: ../../build/doc/pgr_drivingDistance.rst:122
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:104
+#: ../../build/doc/pgr_drivingDistance.rst:123
+#: ../../build/doc/pgr_drivingDistance.rst:124
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:104
+#: ../../build/doc/pgr_drivingDistance.rst:122
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:105
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:105
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:105
+msgid "Array of identifiers of the starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:106
+msgid "**distance**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:106
+#: ../../build/doc/pgr_drivingDistance.rst:125
+#: ../../build/doc/pgr_drivingDistance.rst:126
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:106
+msgid "Upper limit for the inclusion of the node in the result."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:107
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:107
+#: ../../build/doc/pgr_drivingDistance.rst:108
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:107
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:108
+msgid "**equicost**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:108
+msgid ""
+"(optional). When ``true`` the node will only appear in the closest "
+"``start_vid`` list.  Default is ``false`` which resembles several calls "
+"using the single starting point signatures. Tie brakes are arbitrary."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:114
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:116
+msgid "Returns set of ``(seq [, start_v], node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:121
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:121
+#: ../../build/doc/pgr_drivingDistance.rst:122
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:121
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:123
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:123
+msgid ""
+"Identifier of the node in the path within the limits from ``start_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:124
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:124
+msgid ""
+"Identifier of the edge used to arrive to ``node``. ``0`` when the ``node`` "
+"is the ``start_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:125
+msgid "Cost to traverse ``edge``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:126
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:126
+msgid "Aggregate cost from ``start_vid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:132
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:135
+msgid ""
+"Examples for queries marked as ``directed`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:137
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:144
+msgid ""
+"Examples for queries marked as ``undirected`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:146
+msgid "The examples in this section use the following :ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:154
+msgid "Examples for queries marked as ``directed`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:156
+msgid "The examples in this section use the following :ref:`fig3`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:165
+msgid "Examples for queries marked as ``undirected`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:167
+msgid "The examples in this section use the following :ref:`fig4`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:175
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:177
+msgid ":ref:`pgr_alphashape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:178
+msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:179
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:182
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:183
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:184
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_edgeDisjointPaths.po b/locale/it/LC_MESSAGES/pgr_edgeDisjointPaths.po
new file mode 100644
index 0000000..54a0ffe
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_edgeDisjointPaths.po
@@ -0,0 +1,541 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:14
+msgid "pgr_edgeDisjointPaths - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:19
+msgid ""
+"``pgr_edgeDisjointPaths`` — Calculates edge disjoint paths between two "
+"groups of vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:25
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:28
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:36
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:38
+msgid ""
+"Calculates the edge disjoint paths between two groups of vertices. Utilizes "
+"underlying maximum flow algorithms to calculate the paths."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:42
+msgid "Characteristics:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:49
+msgid "The main characterics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:45
+msgid "Calculates the edge disjoint paths between any two groups of vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:46
+msgid ""
+"Returns EMPTY SET when source and destination are the same, or cannot be "
+"reached."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:47
+msgid "The graph can be directed or undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:48
+msgid "One to many, many to one, many to many versions are also supported."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:49
+msgid "Uses :ref:`pgr_boykovKolmogorov` to calculate the paths."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:52
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:67
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:73
+msgid "Minimal use"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:81
+msgid ""
+"The minimal use is for a **directed** graph from one ``start_vid`` to one "
+"``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:93
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:98
+msgid ""
+"This signature finds the set of dijoint paths from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:96
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:120
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:149
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:175
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:97
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:121
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:150
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:176
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:117
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:126
+msgid ""
+"This signature finds the sset of disjoint paths  from the ``start_vid`` to "
+"each one of the ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:122
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:151
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:177
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_edgeDisjointPaths`."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:123
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:146
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:152
+msgid ""
+"This signature finds the set of disjoint paths from each one of the "
+"``start_vid`` in ``start_vids`` to the ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:152
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:172
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:178
+msgid ""
+"This signature finds the set of disjoint paths from each one of the "
+"``start_vid`` in ``start_vids`` to each one of the ``end_vid`` in "
+"``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:178
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:195
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10 ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11 ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:212
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:214
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:217
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:218
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:219
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_edmondsKarp.po b/locale/it/LC_MESSAGES/pgr_edmondsKarp.po
new file mode 100644
index 0000000..8523277
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_edmondsKarp.po
@@ -0,0 +1,438 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_edmondsKarp.rst:14
+msgid "pgr_edmondsKarp - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:18
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:20
+msgid ""
+"``pgr_edmondsKarp`` — Calculates the flow on the graph edges that maximizes "
+"the flow from the sources to the targets using Push Relabel Algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:29
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:30
+msgid "Renamed 2.5.0, Previous name pgr_maxFlowEdmondsKarp"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:31
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:8
+msgid ""
+"When the maximum flow is 0 then there is no flow and **EMPTY SET** is "
+"returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:12
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:15
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid ""
+"Creates a **super source** and edges to all the source(s), and a **super "
+"target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid ""
+"The maximum flow through the graph is guaranteed to be the value returned by"
+" :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and"
+" can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:42
+msgid "Running time: :math:`O( V * E ^ 2)`"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:45
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:62
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:64
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:83
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:85
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:104
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:106
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:125
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:127
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:142
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:4
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10 ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11 ../../build/doc/pgr_maxFlow.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:12
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:160
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:162
+msgid ""
+":ref:`maxFlow`, :ref:`pgr_boykovKolmogorov <pgr_boykovKolmogorov>`, "
+":ref:`pgr_PushRelabel <pgr_pushRelabel>`"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:163
+msgid "http://www.boost.org/libs/graph/doc/edmonds_karp_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:164
+msgid "https://en.wikipedia.org/wiki/Edmonds%E2%80%93Karp_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:167
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:168
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:169
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_eucledianTSP.po b/locale/it/LC_MESSAGES/pgr_eucledianTSP.po
new file mode 100644
index 0000000..5b9be5e
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_eucledianTSP.po
@@ -0,0 +1,187 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_eucledianTSP.rst:13
+msgid "pgr_eucledianTSP"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:18
+msgid ""
+"``pgr_eucledianTSP`` - Returns a route that visits all the coordinates pairs"
+" exactly once."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:22
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:24
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:26
+msgid ""
+"The travelling salesman problem (TSP) or travelling salesperson problem asks"
+" the following question:"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:28
+msgid ""
+"Given a list of cities and the distances between each pair of cities, what "
+"is the shortest possible route that visits each city exactly once and "
+"returns to the origin city?"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:30
+msgid ""
+"This implementation uses simulated annealing to return the approximate "
+"solution when the input is given in the form of coordinates."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:33
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:48
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:54
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:63
+msgid ""
+"Because the documentation examples are auto generated and tested for non "
+"changing results, and the default is to have random execution, the example "
+"is wrapping the actual call."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:75
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:90
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:96
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:99
+msgid "Description of the coordinates SQL query"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:102
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:102
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:102
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:104
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:104
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:104
+msgid "Identifier of the coordinate. (optional)"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:105
+msgid "**x**"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:105
+#: ../../build/doc/pgr_eucledianTSP.rst:106
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:105
+msgid "X value of the coordinate."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:106
+msgid "**y**"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:106
+msgid "Y value of the coordinate."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:110
+msgid ""
+"When the value of **id** is not given then the coordinates will receive an "
+"**id** starting from 1, in the order given."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:125
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:127
+msgid "Skipping the Simulated Annealing & showing some process information"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:135
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:139
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:140
+msgid "New in version 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:145
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:147
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:148
+msgid "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:149
+msgid "http://en.wikipedia.org/wiki/Simulated_annealing"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:152
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:153
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:154
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_floydWarshall.po b/locale/it/LC_MESSAGES/pgr_floydWarshall.po
new file mode 100644
index 0000000..4fe9ece
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_floydWarshall.po
@@ -0,0 +1,348 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_floydWarshall.rst:13
+msgid "pgr_floydWarshall"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:16
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:18
+msgid ""
+"``pgr_floydWarshall`` - Returns the sum of the costs of the shortest path "
+"for each pair of nodes in the graph using Floyd-Warshall algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:27
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:28
+msgid "Renamed on 2.2.0, previous name pgr_apspWarshall"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:31
+msgid ""
+"The Floyd-Warshall algorithm, also known as Floyd's algorithm, is a good "
+"choice to calculate the sum of the costs of the shortest path for each pair "
+"of nodes in the graph, for *dense graphs*. We make use of the  Boost's "
+"implementation which runs in :math:`\\Theta(V^3)` time,"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:38
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:58
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:41
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:42
+msgid ""
+"Returns the sum of the costs of the shortest path for each pair of nodes in "
+"the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:43
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:44
+msgid ""
+"Boost returns a :math:`V \\times V` matrix, where the infinity values. "
+"Represent the distance between vertices for which there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:47
+msgid ""
+"We return only the non infinity values in form of a set of `(start_vid, "
+"end_vid, agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:49
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:52
+msgid "For the undirected graph, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:54
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:56
+msgid "When  `start_vid` = `end_vid`, the `agg_cost` = 0."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:58
+msgid "**Recommended, use a bounding box of no more than 3500 edges.**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:61
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:70
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:77
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:84
+msgid "On a directed graph."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:95
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:103
+msgid "On an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:110
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query (id is not necessary)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_floydWarshall.rst:136
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_floydWarshall.rst:123
+#: ../../build/doc/pgr_floydWarshall.rst:136
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_floydWarshall.rst:123
+#: ../../build/doc/pgr_floydWarshall.rst:136
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:118
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:120
+msgid "Receives  ``(edges_sql, directed)``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:123
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:125
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:125
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:125
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:126
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:126
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:126
+msgid ""
+"(optional) Default is true (is directed). When set to false the graph is "
+"considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:131
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:133
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:138
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:138
+#: ../../build/doc/pgr_floydWarshall.rst:139
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:138
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:139
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:139
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:140
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:140
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:140
+msgid "Total cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:148
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:149
+msgid "Re-design of pgr_apspWarshall in Version 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:152
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:154
+msgid ":ref:`pgr_johnson`"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:155
+msgid ""
+"`Boost floyd-Warshall "
+"<http://www.boost.org/libs/graph/doc/floyd_warshall_shortest.html>`_ "
+"algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:156
+msgid "Queries uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:159
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:160
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:161
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_gsoc_vrppdtw.po b/locale/it/LC_MESSAGES/pgr_gsoc_vrppdtw.po
new file mode 100644
index 0000000..7705842
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_gsoc_vrppdtw.po
@@ -0,0 +1,358 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:13
+msgid "pgr_gsoc_vrppdtw - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:19
+msgid ""
+"``pgr_gsoc_vrppdtw`` — Returns a solution for `Pick and Delivery` with `time"
+" windows` Vehicle Routing Problem"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:27
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:36
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:43
+msgid "Complete signature"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:52
+msgid "Example: Show the id1"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:59
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:62
+msgid "Description of the sql query"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:65
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:89
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:102
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:65
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:89
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:102
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:65
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:89
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:102
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:67
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:67
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:81
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:82
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:67
+msgid "Identifier of the customer."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:69
+msgid "A value of ``0`` identifies the starting location"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:71
+msgid "**x**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:71
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:72
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:73
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:78
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:79
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:80
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:71
+msgid "``X`` coordinate of the location."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:72
+msgid "**y**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:72
+msgid "``Y`` coordinate of the location."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:73
+msgid "**demand**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:73
+msgid "How much is added / removed from the vehicle."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:75
+msgid "Negative value is a delivery,"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:76
+msgid "Positive value is a pickup,"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:78
+msgid "**openTime**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:78
+msgid "The time relative to 0, when the customer opens."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:79
+msgid "**closeTime**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:79
+msgid "The time relative to 0, when the customer closes."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:80
+msgid "**serviceTime**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:80
+msgid "The duration of the loading / unloading."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:81
+msgid "**pIndex**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:81
+msgid ""
+"Value used when the current customer is a Delivery to find the corresponding"
+" Pickup"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:82
+msgid "**dIndex**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:82
+msgid ""
+"Value used when the current customer is a Pickup to find the corresponding "
+"Delivery"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:86
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:91
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:91
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:91
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:92
+msgid "**vehicle_num**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:92
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:93
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:104
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:105
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:106
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:92
+msgid "Maximum number of vehicles in the result. (currently is ignored)"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:93
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:93
+msgid "Capacity of the vehicle."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:97
+msgid "Description of the result"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:99
+msgid "RETURNS SET OF pgr_costResult[]:"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:104
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:104
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:105
+msgid "**id1**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:105
+msgid "Current vehicle identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:106
+msgid "**id2**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:106
+msgid "Customer identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:107
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:107
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:107
+msgid ""
+"Previous ``cost`` plus `travel time` plus `wait time` plus `service time`."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:108
+msgid ""
+"when ``id2 = 0`` for the second time for the same ``id1``, then has the "
+"total time for the current ``id1``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:114
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:117
+msgid "Example: Total number of rows returned"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:123
+msgid "Example: Results for only id1 values: 1, 5, and 9"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:130
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:132
+msgid "The examples use :ref:`pickDeliverData`"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:133
+msgid "http://en.wikipedia.org/wiki/Vehicle_routing_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:136
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:137
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:138
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_johnson.po b/locale/it/LC_MESSAGES/pgr_johnson.po
new file mode 100644
index 0000000..d0ef00b
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_johnson.po
@@ -0,0 +1,341 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_johnson.rst:13
+msgid "pgr_johnson"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:16
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:18
+msgid ""
+"``pgr_johnson`` - Returns the sum of the costs of the shortest path for each"
+" pair of nodes in the graph using Floyd-Warshall algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:27
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:28
+msgid "Renamed on 2.2.0, previous name pgr_apspJohnson"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:31
+msgid ""
+"The Johnson algorithm, is a good choice to calculate the sum of the costs of"
+" the shortest path for each pair of nodes in the graph, for *sparse graphs*."
+" It usees the Boost's implementation which runs in :math:`O(V E \\log V)` "
+"time,"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:37
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:57
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:40
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:41
+msgid ""
+"Returns the sum of the costs of the shortest path for each pair of nodes in "
+"the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:42
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:43
+msgid ""
+"Boost returns a :math:`V \\times V` matrix, where the infinity values. "
+"Represent the distance between vertices for which there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:46
+msgid ""
+"We return only the non infinity values in form of a set of `(start_vid, "
+"end_vid, agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:48
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:51
+msgid "For the undirected graph, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:53
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:55
+msgid "When  `start_vid` = `end_vid`, the `agg_cost` = 0."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:60
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:69
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:76
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:83
+msgid "On a directed graph."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:94
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:102
+msgid "On an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:109
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query (id is not necessary)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_johnson.rst:135
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_johnson.rst:122 ../../build/doc/pgr_johnson.rst:135
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_johnson.rst:122 ../../build/doc/pgr_johnson.rst:135
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:117
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:119
+msgid "Receives  ``(edges_sql, directed)``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:122
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:124
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:124
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:124
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:125
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:125
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:125
+msgid ""
+"(optional) Default is true (is directed). When set to false the graph is "
+"considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:130
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:132
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:137
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:137 ../../build/doc/pgr_johnson.rst:138
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:137
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:138
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:138
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:139
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:139
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:139
+msgid "Total cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:147
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:148
+msgid "Re-design of pgr_apspJohnson in Version 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:151
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:153
+msgid ":ref:`pgr_floydWarshall`"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:154
+msgid ""
+"`Boost Johnson "
+"<http://www.boost.org/libs/graph/doc/johnson_all_pairs_shortest.html>`_ "
+"algorithm implementation."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:155
+msgid "Queries uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:158
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:159
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:160
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_labelGraph.po b/locale/it/LC_MESSAGES/pgr_labelGraph.po
new file mode 100644
index 0000000..e5d6532
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_labelGraph.po
@@ -0,0 +1,233 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_labelGraph.rst:15
+msgid "pgr_labelGraph - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:18
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:20
+msgid ""
+"``pgr_labelGraph`` — Locates and labels sub-networks within a network which "
+"are not topologically connected."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:28
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:30
+msgid ""
+"Must be run after ``pgr_createTopology()``. No use of ``geometry`` column. "
+"Only ``id``, ``source`` and  ``target`` columns are required."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:32
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:34
+msgid ""
+"``OK`` when a column with provided name has been generated and populated "
+"successfully. All connected edges will have unique similar integer values. "
+"In case of ``rows_where`` condition, non participating rows will have -1 "
+"integer values."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:35
+msgid ""
+"``FAIL`` when the processing cannot be finished due to some error. Notice "
+"will be thrown accordingly."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:36
+msgid ""
+"``rows_where condition generated 0 rows`` when passed SQL condition has not "
+"been fulfilled by any row."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:48
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:50
+msgid ""
+"A network behind any routing query may consist of sub-networks completely "
+"isolated from each other. Possible reasons could be:"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:52
+msgid "An island with no bridge connecting to the mainland."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:53
+msgid ""
+"An edge or mesh of edges failed to connect to other networks because of "
+"human negligence during data generation."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:54
+msgid "The data is not properly noded."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:55
+msgid "Topology creation failed to succeed."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:57
+msgid ""
+"pgr_labelGraph() will create an integer column (with the name provided by "
+"the user) and will assign same integer values to all those edges in the "
+"network which are connected topologically. Thus better analysis regarding "
+"network structure is possible. In case of ``rows_where`` condition, non "
+"participating rows will have -1 integer values."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:59
+msgid ""
+"Prerequisites: Must run ``pgr_createTopology()`` in order to generate "
+"``source`` and ``target`` columns. Primary key column ``id`` should also be "
+"there in the network table."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:62
+msgid "Function accepts the following parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:64
+msgid "``text`` Network table name, with optional schema name."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:65
+msgid ""
+"``text`` Primary key column name of the network table. Default is ``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:66
+msgid ""
+"``text`` Source column name generated after ``pgr_createTopology()``. "
+"Default is ``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:67
+msgid ""
+"``text`` Target column name generated after ``pgr_createTopology()``. "
+"Default is ``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:68
+msgid ""
+"``text`` Column name which will hold the integer labels for each sub-graph. "
+"Default is ``subgraph``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:69
+msgid ""
+"``text`` The SQL where condition. Default is ``true``, means the processing "
+"will be done on the whole table."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:75
+msgid "Example Usage"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:77
+msgid "The sample data, has 3 subgraphs."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:85
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:87
+msgid ""
+"`pgr_createTopology "
+"<https://github.com/Zia-/pgrouting/blob/develop/src/common/sql/pgrouting_topology.sql>`_"
+" to create the topology of a table based on its geometry and tolerance "
+"value."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:90
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:91
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:92
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_lineGraph.po b/locale/it/LC_MESSAGES/pgr_lineGraph.po
new file mode 100644
index 0000000..7b69209
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_lineGraph.po
@@ -0,0 +1,387 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_lineGraph.rst:13
+msgid "pgr_lineGraph - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:15
+msgid ""
+"``pgr_lineGraph`` — Transforms a given graph into its corresponding edge-"
+"based graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:31
+msgid "Given a graph G, its line graph L(G) is a graph such that:-"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:33
+msgid "each vertex of L(G) represents an edge of G"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:34
+msgid ""
+"two vertices of L(G) are adjacent if and only if their corresponding edges "
+"share a common endpoint in G."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:36
+msgid ""
+"The following figures show a graph (left, with blue vertices) and its Line "
+"Graph (right, with green vertices)."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:39
+msgid "|first|"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:45
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:55
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:61
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:68
+msgid "The minimal signature is for a **directed** graph:"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:81
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:90
+msgid "This signature returns the Line Graph of the current graph:"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:89
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:90
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:101
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_lineGraph.rst:112 ../../build/doc/pgr_lineGraph.rst:125
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_lineGraph.rst:112 ../../build/doc/pgr_lineGraph.rst:125
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_lineGraph.rst:112 ../../build/doc/pgr_lineGraph.rst:125
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_lineGraph.rst:129
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_lineGraph.rst:133
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_lineGraph.rst:137
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_lineGraph.rst:141
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:109
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:114
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:114
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:114
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:115
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:115
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:115
+msgid "When ``true`` the graph is considered as `Directed`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:116
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:120
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:122
+msgid "RETURNS SETOF  (seq, source, target, cost, reverse_cost)"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:127
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:127
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:127
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:129 ../../build/doc/pgr_lineGraph.rst:133
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:129
+msgid "Identifier of the source vertex of the current edge `id`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:131
+msgid "When `negative`: the source is the reverse edge in the original graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:133
+msgid "Identifier of the target vertex of the current edge `id`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:135
+msgid "When `negative`: the target is the reverse edge in the original graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:137 ../../build/doc/pgr_lineGraph.rst:141
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:137
+msgid "Weight of the edge (`source`, `target`)."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:139
+msgid ""
+"When `negative`: edge (`source`, `target`) does not exist, therefore it’s "
+"not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:141
+msgid "Weight of the edge (`target`, `source`)."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:143
+msgid ""
+"When `negative`: edge (`target`, `source`) does not exist, therefore it’s "
+"not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:147
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:154
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:156
+msgid "https://en.wikipedia.org/wiki/Line_graph"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:157
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:160
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:161
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:162
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_maxCardinalityMatch.po b/locale/it/LC_MESSAGES/pgr_maxCardinalityMatch.po
new file mode 100644
index 0000000..4c6c884
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_maxCardinalityMatch.po
@@ -0,0 +1,357 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:13
+msgid "pgr_maxCardinalityMatch - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:17
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:19
+msgid ""
+"``pgr_maxCardinalityMatch`` — Calculates a maximum cardinality matching in a"
+" graph."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:29
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:32
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:33
+msgid "Renamed 2.5.0, Previous name pgr_maximumCardinalityMatching"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:34
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:38
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:39
+msgid ""
+"A matching or independent edge set in a graph is a set of edges without "
+"common vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:40
+msgid ""
+"A maximum matching is a matching that contains the largest possible number "
+"of edges."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:42
+msgid "There may be many maximum matchings."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:43
+msgid "Calculates **one** possible maximum cardinality matching in a graph."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:45
+msgid "The graph can be **directed** or **undirected**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:46
+msgid "Running time: :math:`O( E*V * \\alpha(E,V))`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:48
+msgid ":math:`\\alpha(E,V)` is the inverse of the `Ackermann function`_."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:54
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:71
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:78
+msgid ""
+"The minimal use calculates one possible maximum cardinality matching on a "
+"**directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:90
+msgid "Complete signature"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:98
+msgid ""
+"The complete signature calculates one possible maximum cardinality matching."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:109
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:113
+msgid "Description of the SQL query"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:115
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:118
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:136
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:146
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:118
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:136
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:146
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:118
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:136
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:146
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:120
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:120
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:121
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:122
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:120
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:121
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:150
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:121
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:122
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:151
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:122
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:123
+msgid "**going**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:123
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:124
+msgid "``ANY-NUMERIC``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:123
+msgid ""
+"A positive value represents the existence of the edge (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:124
+msgid "**coming**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:124
+msgid ""
+"A positive value represents the existence of the edge (target, source)."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:127
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:129
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:130
+msgid "SMALLINT, INTEGER, BIGINT, REAL, DOUBLE PRECISION"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:133
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:138
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:138
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:138
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:139
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:139
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:139
+msgid "(optional) Determines the type of the graph. Default TRUE."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:143
+msgid "Description of the Result"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:148
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:148
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:148
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:149
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:149
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:150
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:151
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:149
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:150
+msgid "Identifier of the first end point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:151
+msgid "Identifier of the second end point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:155
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:157
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:158
+msgid "http://www.boost.org/libs/graph/doc/maximum_matching.html"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:159
+msgid "https://en.wikipedia.org/wiki/Matching_%28graph_theory%29"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:160
+msgid "https://en.wikipedia.org/wiki/Ackermann_function"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:163
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:164
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:165
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_maxFlow.po b/locale/it/LC_MESSAGES/pgr_maxFlow.po
new file mode 100644
index 0000000..0327a6f
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_maxFlow.po
@@ -0,0 +1,354 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "pgr_maxFlow - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:17
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:19
+msgid ""
+"``pgr_maxFlow`` — Calculates the maximum flow in a directed graph from the "
+"source(s) to the targets(s) using the Push Relabel algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:25
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:28
+msgid "Availability: 2.4.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:35
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:36
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:37
+msgid ""
+"When the maximum flow is 0 then there is no flow and **0** is returned."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:39
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:41
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:42
+msgid "Uses the :ref:`pgr_pushRelabel <pgr_pushRelabel>` algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:44
+msgid "Running time: :math:`O( V ^ 3)`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:47
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:62
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:64
+msgid "Calculates the maximum flow from the `source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:82
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:84
+msgid "Calculates the maximum flow from the `source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:102
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:104
+msgid "Calculates the maximum flow from all the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:122
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:124
+msgid ""
+"Calculates the maximum flow from all of the `sources` to all of the "
+"`targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:138
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152 ../../build/doc/pgr_maxFlow.rst:169
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152 ../../build/doc/pgr_maxFlow.rst:169
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:155
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:157
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:149
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:154
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:154
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:154
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:155 ../../build/doc/pgr_maxFlow.rst:157
+#: ../../build/doc/pgr_maxFlow.rst:171
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:155
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:156
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:156 ../../build/doc/pgr_maxFlow.rst:158
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:156
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:157
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:158
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:158
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:166
+msgid "Description of the return value"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:171
+msgid "Maximum flow possible from the source(s) to the target(s)"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:175
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:177
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:178
+msgid "http://www.boost.org/libs/graph/doc/push_relabel_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:179
+msgid ""
+"https://en.wikipedia.org/wiki/Push%E2%80%93relabel_maximum_flow_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:182
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:183
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:184
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_nodeNetwork.po b/locale/it/LC_MESSAGES/pgr_nodeNetwork.po
new file mode 100644
index 0000000..b9b92db
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_nodeNetwork.po
@@ -0,0 +1,353 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_nodeNetwork.rst:13
+msgid "pgr_nodeNetwork"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:18
+msgid "``pgr_nodeNetwork`` - Nodes an network edge table."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:20
+msgid "Nicolas Ribot"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:21
+msgid "Nicolas Ribot, The source code is released under the MIT-X license."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:27
+msgid ""
+"The function reads edges from a not \"noded\" network table and writes the "
+"\"noded\" edges into a new table."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:39
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:41
+msgid ""
+"A common problem associated with bringing GIS data into pgRouting is the "
+"fact that the data is often not \"noded\" correctly. This will create "
+"invalid topologies, which will result in routes that are incorrect."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:43
+msgid ""
+"What we mean by \"noded\" is that at every intersection in the road network "
+"all the edges will be broken into separate road segments. There are cases "
+"like an over-pass and under-pass intersection where you can not traverse "
+"from the over-pass to the under-pass, but this function does not have the "
+"ability to detect and accommodate those situations."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:45
+msgid ""
+"This function reads the ``edge_table`` table, that has a primary key column "
+"``id`` and geometry column named ``the_geom`` and intersect all the segments"
+" in it against all the other segments and then creates a table "
+"``edge_table_noded``. It uses the ``tolerance`` for deciding that multiple "
+"nodes within the tolerance are considered the same node."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:47
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:49
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:50
+msgid "``float8`` tolerance for coincident points (in projection unit)dd"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:51
+msgid ""
+"``text`` Primary key column name of the network table. Default value is "
+"``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:52
+msgid ""
+"``text`` Geometry column name of the network table. Default value is "
+"``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:53
+msgid "``text`` Suffix for the new table's. Default value is ``noded``."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:55
+msgid "The output table will have for  ``edge_table_noded``"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:57
+msgid "``bigint`` Unique identifier for the table"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:58
+msgid "``bigint``  Identifier of the edge in original table"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:59
+msgid "``integer`` Segment number of the original edge"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:60
+msgid ""
+"``integer`` Empty source column to be used with  :ref:`pgr_create_topology` "
+"function"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:61
+msgid ""
+"``integer`` Empty target column to be used with  :ref:`pgr_create_topology` "
+"function"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:62
+msgid "``geometry`` Geometry column of the noded network"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:65
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:66
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:70
+msgid "Example"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:72
+msgid "Let's create the topology for the data in :doc:`sampledata`"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:90
+msgid "Now we can analyze the network."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:114
+msgid ""
+"The analysis tell us that the network has a gap and an intersection. We try "
+"to fix the problem using:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:136
+msgid ""
+"Inspecting the generated table, we can see that edges 13,14 and 18 has been "
+"segmented"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:166
+msgid "We can create the topology of the new network"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:184
+msgid "Now let's analyze the new topology"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:210
+msgid "Images"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:243
+msgid "Comparing the results"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:245
+msgid "Comparing with the Analysis in the original edge_table, we see that."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:248
+msgid "Before"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:248
+msgid "After"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:250
+msgid "Table name"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:250
+msgid "edge_table"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:250
+msgid "edge_table_noded"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:252
+msgid "Fields"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:252
+msgid "All original fields"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:252
+msgid "Has only basic fields to do a topology analysis"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:254
+msgid "Dead ends"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:254
+msgid "Edges with 1 dead end: 1,6,24"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:255
+msgid "Edges with 2 dead ends  17,18"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:257
+msgid ""
+"Edge 17's right node is a dead end because there is no other edge sharing "
+"that same node. (cnt=1)"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:254
+msgid "Edges with 1 dead end: 1-1 ,6-1,14-2, 18-1 17-1 18-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:261
+msgid "Isolated segments"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:261
+msgid "two isolated segments:  17 and 18 both they have 2 dead ends"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:262
+msgid "No Isolated segments"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:262
+msgid "Edge 17 now shares a node with edges 14-1 and 14-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:263
+msgid "Edges 18-1 and 18-2 share a node with edges 13-1 and 13-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:265
+msgid "Gaps"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:265
+msgid ""
+"There is a gap between edge 17 and 14 because edge 14 is near to the right "
+"node of edge 17"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:265
+msgid ""
+"Edge 14 was segmented Now edges: 14-1 14-2 17 share the same node The "
+"tolerance value was taken in account"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:269
+msgid "Intersections"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:269
+msgid "Edges 13 and 18 were intersecting"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:269
+msgid ""
+"Edges were segmented, So, now in the interection's point there is a node and"
+" the following edges share it: 13-1 13-2 18-1 18-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:274
+msgid ""
+"Now, we are going to include the segments 13-1, 13-2 14-1, 14-2 ,18-1 and "
+"18-2 into our edge-table, copying the data for dir,cost,and reverse cost "
+"with tho following steps:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:276
+msgid ""
+"Add a column old_id into edge_table, this column is going to keep track the "
+"id of the original edge"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:277
+msgid ""
+"Insert only the segmented edges, that is, the ones whose max(sub_id) >1"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:290
+msgid "We recreate the topology:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:310
+msgid ""
+"To get the same analysis results as the topology of edge_table_noded, we do "
+"the following query:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:337
+msgid ""
+"To get the same analysis results as the original edge_table, we do the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:362
+msgid ""
+"Or we can analyze everything because, maybe edge 18 is an overpass, edge 14 "
+"is an under pass and there is also a street level juction, and the same "
+"happens with edges 17 and 13."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:389
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:391
+msgid ""
+":ref:`topology` for an overview of a topology for routing algorithms. "
+":ref:`pgr_analyze_oneway` to analyze directionality of the edges. "
+":ref:`pgr_create_topology` to create a topology based on the geometry. "
+":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:397
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:398
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:399
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_pointsAsPolygon.po b/locale/it/LC_MESSAGES/pgr_pointsAsPolygon.po
new file mode 100644
index 0000000..356d85b
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_pointsAsPolygon.po
@@ -0,0 +1,124 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:13
+msgid "pgr_pointsAsPolygon"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:21
+msgid ""
+"``pgr_pointsAsPolygon`` — Draws an alpha shape around given set of points."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:27
+msgid "Returns the alpha shape as (multi)polygon geometry."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:35
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:37
+msgid ""
+"``text`` a SQL query, which should return a set of rows with the following "
+"columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:43
+msgid "``int4`` identifier of the vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:44
+msgid "``float8`` x-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:45
+msgid "``float8`` y-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:47
+msgid ""
+"(optional) ``float8`` alpha value. If specified alpha value equals 0 "
+"(default), then optimal alpha value is used. For more information, see `CGAL"
+" - 2D Alpha Shapes "
+"<http://doc.cgal.org/latest/Alpha_shapes_2/group__PkgAlphaShape2.html>`_."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:50
+msgid "Returns a (multi)polygon geometry (with holes)."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:54
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:55
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:56
+msgid ""
+"Added alpha argument with default 0 (use optimal value) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:57
+msgid ""
+"Supported to return a (multi)polygon geometry (with holes) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:61
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:62
+msgid ""
+"In the following query there is no way to control which point in the polygon"
+" is the first in the list, so you may get similar but different results than"
+" the following which are also correct."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:69
+msgid "The query use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:73
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:75
+msgid ":ref:`pgr_drivingDistance` - Driving Distance"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:76
+msgid ":ref:`pgr_alphashape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:79
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:80
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:81
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_pushRelabel.po b/locale/it/LC_MESSAGES/pgr_pushRelabel.po
new file mode 100644
index 0000000..13e8a04
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_pushRelabel.po
@@ -0,0 +1,439 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_pushRelabel.rst:14
+msgid "pgr_pushRelabel - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:18
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:20
+msgid ""
+"``pgr_pushRelabel`` — Calculates the flow on the graph edges that maximizes "
+"the flow from the sources to the targets using Push Relabel Algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:29
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:30
+msgid "Renamed 2.5.0, Previous name pgr_maxFlowPushRelabel"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:31
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:8
+msgid ""
+"When the maximum flow is 0 then there is no flow and **EMPTY SET** is "
+"returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:12
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:15
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid ""
+"Creates a **super source** and edges to all the source(s), and a **super "
+"target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid ""
+"The maximum flow through the graph is guaranteed to be the value returned by"
+" :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and"
+" can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:41
+msgid "Running time: :math:`O( V ^ 3)`"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:44
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:60
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:62
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:81
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:83
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:102
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:104
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:123
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:125
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:140
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:4
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10 ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11 ../../build/doc/pgr_maxFlow.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:12
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:158
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:160
+msgid ""
+":ref:`maxFlow`, :ref:`pgr_boykovKolmogorov <pgr_boykovKolmogorov>`, "
+":ref:`pgr_edmondsKarp <pgr_edmondsKarp>`"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:161
+msgid "http://www.boost.org/libs/graph/doc/push_relabel_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:162
+msgid ""
+"https://en.wikipedia.org/wiki/Push%E2%80%93relabel_maximum_flow_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:165
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:166
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:167
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_strongComponents.po b/locale/it/LC_MESSAGES/pgr_strongComponents.po
new file mode 100644
index 0000000..6f6c0cf
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_strongComponents.po
@@ -0,0 +1,346 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_strongComponents.rst:13
+msgid "pgr_strongComponents - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:15
+msgid ""
+"``pgr_strongComponents`` — Return the strongly connected components of a "
+"directed graph using Tarjan's algorithm based on DFS. In particular, the "
+"algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:31
+msgid ""
+"A strongly connected component of a directed graph is a set of vertices that"
+" are all reachable from each other. This implementation can only be used "
+"with a directed graph."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:36
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:38
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:40
+msgid "Components are described by vertices"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:42
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:44
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:45
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:47
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:62
+msgid "The signature is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:75
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid ""
+"Description of the return values for connected components and strongly "
+"connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, component, n_seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid ""
+"Component identifier. It is equal to the minimum node identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:91
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:93
+msgid "http://en.wikipedia.org/wiki/Strongly_connected_component"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:94
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:97
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:98
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:99
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_trsp.po b/locale/it/LC_MESSAGES/pgr_trsp.po
new file mode 100644
index 0000000..108f0f8
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_trsp.po
@@ -0,0 +1,281 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_trsp.rst:13
+msgid "pgr_trsp - Turn Restriction Shortest Path (TRSP)"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:22
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:24
+msgid ""
+"``pgr_trsp`` — Returns the shortest path with support for turn restrictions."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:28
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:30
+msgid ""
+"The turn restricted shorthest path (TRSP) is a shortest path algorithm that "
+"can optionally take into account complicated turn restrictions like those "
+"found in real world navigable road networks. Performamnce wise it is nearly "
+"as fast as the A* search but has many additional features like it works with"
+" edges rather than the nodes of the network. Returns a set of "
+":ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows, that "
+"make up a path."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:57
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:59
+msgid ""
+"The Turn Restricted Shortest Path algorithm (TRSP) is similar to the "
+"shooting star in that you can specify turn restrictions."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:61
+msgid ""
+"The TRSP setup is mostly the same as :ref:`Dijkstra shortest path "
+"<pgr_dijkstra>` with the addition of an optional turn restriction table. "
+"This provides an easy way of adding turn restrictions to a road network by "
+"placing them in a separate table."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:64 ../../build/doc/pgr_trsp.rst:120
+msgid ""
+"a SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:71 ../../build/doc/pgr_trsp.rst:127
+msgid "``int4`` identifier of the edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:72 ../../build/doc/pgr_trsp.rst:128
+msgid "``int4`` identifier of the source vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:73 ../../build/doc/pgr_trsp.rst:129
+msgid "``int4`` identifier of the target vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:74 ../../build/doc/pgr_trsp.rst:130
+msgid ""
+"``float8`` value, of the edge traversal cost. A negative cost will prevent "
+"the edge from being inserted in the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:75 ../../build/doc/pgr_trsp.rst:131
+msgid ""
+"(optional) the cost for the reverse traversal of the edge. This is only used"
+" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
+"above remark about negative costs)."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:77
+msgid "``int4`` **NODE id** of the start point"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:78
+msgid "``int4`` **NODE id** of the end point"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:79 ../../build/doc/pgr_trsp.rst:134
+msgid "``true`` if the graph is directed"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:80 ../../build/doc/pgr_trsp.rst:135
+msgid ""
+"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
+"will be used for the cost of the traversal of the edge in the opposite "
+"direction."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:82 ../../build/doc/pgr_trsp.rst:137
+msgid ""
+"(optional) a SQL query, which should return a set of rows with the following"
+" columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:88 ../../build/doc/pgr_trsp.rst:143
+msgid "``float8`` turn restriction cost"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:89 ../../build/doc/pgr_trsp.rst:144
+msgid "``int4`` target id"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:90
+msgid ""
+"``text`` comma separated list of edges in the reverse order of ``rule``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:92
+msgid ""
+"Another variant of TRSP allows to specify **EDGE id** of source and target "
+"together with a fraction to interpolate the position:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:94
+msgid "``int4`` **EDGE id** of the start edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:95
+msgid "``float8`` fraction of 1 defines the position on the start edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:96
+msgid "``int4`` **EDGE id** of the end edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:97
+msgid "``float8`` fraction of 1 defines the position on the end edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:99 ../../build/doc/pgr_trsp.rst:152
+msgid "Returns set of :ref:`type_cost_result`:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:101 ../../build/doc/pgr_trsp.rst:154
+msgid "row sequence"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:102 ../../build/doc/pgr_trsp.rst:156
+msgid "node ID"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:103 ../../build/doc/pgr_trsp.rst:157
+msgid "edge ID (``-1`` for the last row)"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:104
+msgid "cost to traverse from ``id1`` using ``id2``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:107 ../../build/doc/pgr_trsp.rst:162
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:108
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:111
+msgid "Support for Vias"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:113
+msgid ""
+"The Support for Vias functions are prototypes. Not all corner cases are "
+"being considered."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:116
+msgid ""
+"We also have support for vias where you can say generate a from A to B to C,"
+" etc. We support both methods above only you pass an array of vertices or "
+"and array of edges and percentage position along the edge in two arrays."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:133
+msgid ""
+"``int4[]`` An ordered array of **NODE id** the path will go through from "
+"start to end."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:145
+msgid ""
+"``text`` commar separated list of edges in the reverse order of ``rule``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:147
+msgid ""
+"Another variant of TRSP allows to specify **EDGE id** together with a "
+"fraction to interpolate the position:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:149
+msgid "``int4`` An ordered array of **EDGE id** that the path has to traverse"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:150
+msgid ""
+"``float8`` An array of fractional positions along the respective edges in "
+"``eids``, where 0.0 is the start of the edge and 1.0 is the end of the "
+"eadge."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:155
+msgid "route ID"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:158
+msgid "cost to traverse from ``id2`` using ``id3``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:163
+msgid "Via Support prototypes new in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:166
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:168
+msgid "**Without turn restrictions**"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:175
+msgid "**With turn restrictions**"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:177
+msgid "Then a query with turn restrictions is created as:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:184
+msgid "An example query using vertex ids and via points:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:191
+msgid "An example query using edge ids and vias:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:198
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:202
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:204
+msgid ":ref:`type_cost_result`"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:207
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:208
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:209
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_version.po b/locale/it/LC_MESSAGES/pgr_version.po
new file mode 100644
index 0000000..5a6623a
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_version.po
@@ -0,0 +1,130 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_version.rst:13
+msgid "pgr_version"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:21
+msgid "``pgr_version`` — Query for pgRouting version information."
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:27
+msgid "Returns a table with pgRouting version information."
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:35 ../../build/doc/pgr_version.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:37
+msgid "Returns a table with:"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:40
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:40
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:42
+msgid "**version**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:42 ../../build/doc/pgr_version.rst:43
+#: ../../build/doc/pgr_version.rst:44 ../../build/doc/pgr_version.rst:45
+#: ../../build/doc/pgr_version.rst:46
+msgid "``varchar``"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:42
+msgid "pgRouting version"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:43
+msgid "**tag**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:43
+msgid "Git tag of pgRouting build"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:44
+msgid "**hash**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:44
+msgid "Git hash of pgRouting build"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:45
+msgid "**branch**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:45
+msgid "Git branch of pgRouting build"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:46
+msgid "**boost**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:46
+msgid "Boost version"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:51
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:52
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:56
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:58
+msgid "Query for full version string"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:66
+msgid "Query for ``version`` and ``boost`` attribute"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:78
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:81
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:82
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:83
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_vrpOneDepot.po b/locale/it/LC_MESSAGES/pgr_vrpOneDepot.po
new file mode 100644
index 0000000..a0c5006
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_vrpOneDepot.po
@@ -0,0 +1,112 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:14
+msgid "pgr_vrpOneDepot - Experimental"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:21
+msgid "**No documentation available**"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:24
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:28
+msgid "Current Result"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:34
+msgid "Data"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:41
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:43
+msgid "http://en.wikipedia.org/wiki/Vehicle_routing_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:46
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:47
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:48
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_withPoints.po b/locale/it/LC_MESSAGES/pgr_withPoints.po
new file mode 100644
index 0000000..be629d4
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_withPoints.po
@@ -0,0 +1,665 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPoints.rst:13
+msgid "pgr_withPoints - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:19
+msgid ""
+"``pgr_withPoints`` - Returns the shortest path in a graph with additional "
+"temporary vertices."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:33
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:37
+msgid ""
+"Modify the graph to include points defined by points_sql. Using Dijkstra "
+"algorithm, find the shortest path(s)"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:41
+msgid "Characteristics:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:43
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:45
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:46
+msgid "Vertices of the graph are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:48
+msgid "**positive** when it belongs to the edges_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:49
+msgid "**negative** when it belongs to the points_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:51
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:53
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path. -"
+" The agg_cost the non included values (v, v) is 0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:56
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path: - The agg_cost the non included values (u, v) is ∞"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:59
+msgid ""
+"For optimization purposes, any duplicated value in the start_vids or "
+"end_vids are ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:60
+msgid ""
+"The returned values are ordered: - start_vid ascending - end_vid ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:64
+msgid "Running time: :math:`O(|start\\_vids|\\times(V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:68
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:81
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:87
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:92
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:90
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:91
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:92
+msgid ""
+"No **details** are given about distance of other points of points_sql query."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:100
+msgid "From point 1 to point 3"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:110
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:120
+msgid "From point 1 to vertex 3"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:132
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:141
+msgid "From point 1 to point 3 and vertex 5"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:153
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:162
+msgid "From point 1 and vertex 2  to point 3"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:172
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:182
+msgid "From point 1 and vertex 2  to point 3 and vertex 7"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:192
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPoints.rst:236
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPoints.rst:211
+#: ../../build/doc/pgr_withPoints.rst:236
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPoints.rst:211
+#: ../../build/doc/pgr_withPoints.rst:236
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPoints.rst:215
+#: ../../build/doc/pgr_withPoints.rst:216
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_withPoints.rst:249
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPoints.rst:220
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPoints.rst:222
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPoints.rst:223
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:207
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:211
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:213
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:213
+#: ../../build/doc/pgr_withPoints.rst:214
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:213
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:214
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:214
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:215
+#: ../../build/doc/pgr_withPoints.rst:240
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:215
+msgid "Starting vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:216
+#: ../../build/doc/pgr_withPoints.rst:241
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:216
+msgid "Ending vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:217
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:217
+#: ../../build/doc/pgr_withPoints.rst:218
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:217
+msgid ""
+"Array of identifiers of starting vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:218
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:218
+msgid ""
+"Array of identifiers of ending vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:219
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:219
+#: ../../build/doc/pgr_withPoints.rst:225
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:219
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:220
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:223
+msgid ""
+"(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:221
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:225
+msgid "**details**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:225
+msgid ""
+"(optional). When ``true`` the results will include the points in points_sql "
+"that are in the path. Default is ``false`` which ignores other points of the"
+" points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:231
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:233
+msgid ""
+"Returns set of ``(seq, [path_seq,] [start_vid,] [end_vid,] node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:238
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:238
+#: ../../build/doc/pgr_withPoints.rst:239
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:238
+msgid "Row sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:239
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:239
+msgid "Path sequence that indicates the relative position on the path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:240
+#: ../../build/doc/pgr_withPoints.rst:241
+#: ../../build/doc/pgr_withPoints.rst:242
+#: ../../build/doc/pgr_withPoints.rst:246
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:240
+msgid "Identifier of the starting vertex. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:241
+msgid "Identifier of the ending vertex. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:242
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:244
+msgid "Identifier of the node:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:243
+msgid "A positive value indicates the node is a vertex of edges_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:244
+msgid "A negative value indicates the node is a point of points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:246
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:247
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:247
+msgid "``-1`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:249
+#: ../../build/doc/pgr_withPoints.rst:252
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:250
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next ``node`` in the "
+"path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:250
+msgid "``0`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:252
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:253
+msgid "Aggregate cost from ``start_pid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:253
+msgid "``0`` for the first row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:260
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:262
+msgid ""
+"Which path (if any) passes in front of point 6 or vertex 6 with **right** "
+"side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:268
+msgid ""
+"Which path (if any) passes in front of point 6 or vertex 6 with **left** "
+"side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:274
+msgid ""
+"Many to many example with a twist: on undirected graph and showing details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:281
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:286
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:287
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:291
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:293
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:296
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:297
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:298
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_withPointsCost.po b/locale/it/LC_MESSAGES/pgr_withPointsCost.po
new file mode 100644
index 0000000..f478ccd
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_withPointsCost.po
@@ -0,0 +1,603 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsCost.rst:13
+msgid "pgr_withPointsCost - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:19
+msgid ""
+"``pgr_withPointsCost`` - Calculates the shortest path and returns only the "
+"aggregate cost of the shortest path(s) found, for the combination of points "
+"given."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:33
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:37
+msgid ""
+"Modify the graph to include points defined by points_sql. Using Dijkstra "
+"algorithm, return only the aggregate cost of the shortest path(s) found."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:41
+msgid "Characteristics:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:79
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:44
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:45
+msgid ""
+"Returns the sum of the costs of the shortest path for pair combination of "
+"vertices in the modified graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:46
+msgid "Vertices of the graph are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:48
+msgid "**positive** when it belongs to the edges_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:49
+msgid "**negative** when it belongs to the points_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:51
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:52
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:54
+msgid ""
+"The returned values are in the form of a set of `(start_vid, end_vid, "
+"agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:56
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:58
+msgid "The `agg_cost` in the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:60
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:62
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:64
+msgid ""
+"If the values returned are stored in a table, the unique index would be the "
+"pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:67
+msgid "For undirected graphs, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:69
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:71
+msgid ""
+"For optimization purposes, any duplicated value in the `start_vids` or "
+"`end_vids` is ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:73
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:75
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:76
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:78
+msgid "Running time: :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:82
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:92
+msgid ""
+"There is no **details** flag, unlike the other members of the withPoints "
+"family of functions."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:96
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:102
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:106
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:105
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:106
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:124
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:145
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:166
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:185
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:204
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCost.rst:246
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCost.rst:223
+#: ../../build/doc/pgr_withPointsCost.rst:246
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCost.rst:223
+#: ../../build/doc/pgr_withPointsCost.rst:246
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPointsCost.rst:227
+#: ../../build/doc/pgr_withPointsCost.rst:228
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsCost.rst:232
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsCost.rst:234
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsCost.rst:235
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:219
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:223
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:225
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:225
+#: ../../build/doc/pgr_withPointsCost.rst:226
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:225
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:226
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:226
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:227
+#: ../../build/doc/pgr_withPointsCost.rst:248
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:227
+msgid "Starting vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:228
+#: ../../build/doc/pgr_withPointsCost.rst:249
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:228
+msgid "Ending vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:229
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:229
+#: ../../build/doc/pgr_withPointsCost.rst:230
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:229
+msgid ""
+"Array of identifiers of starting vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:230
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:230
+msgid ""
+"Array of identifiers of ending vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:231
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:231
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:231
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:232
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:235
+msgid ""
+"(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:233
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:241
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:243
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:248
+#: ../../build/doc/pgr_withPointsCost.rst:249
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:248
+msgid "Identifier of the starting vertex. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:249
+msgid "Identifier of the ending point. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:250
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:250
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:250
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:256
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:258
+msgid "With **right** side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:264
+msgid "With **left** side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:270
+msgid "Does not matter driving side."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:277
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:282
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:283
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:287
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:289
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:292
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:293
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:294
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_withPointsCostMatrix.po b/locale/it/LC_MESSAGES/pgr_withPointsCostMatrix.po
new file mode 100644
index 0000000..c9bb20f
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_withPointsCostMatrix.po
@@ -0,0 +1,472 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:13
+msgid "pgr_withPointsCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:19
+msgid ""
+"``pgr_withPointsCostMatrix`` - Calculates the shortest path and returns only"
+" the aggregate cost of the shortest path(s) found, for the combination of "
+"points given."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:31
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:35
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:37
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:45
+msgid ""
+"There is no **details** flag, unlike the other members of the withPoints "
+"family of functions."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:49
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:55
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:59
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:58
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:59
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:78
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:87
+msgid "returning a symmetrical cost matrix"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:89
+msgid "Using the default **side** value on the **points_sql** query"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:90
+msgid "Using an undirected graph"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:91
+msgid "Using the default **driving_side** value"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:100
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:120
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:120
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:126
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:128
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:129
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:116
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:120
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:122
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:122
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:123
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:122
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:123
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:123
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:124
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:124
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:124
+msgid ""
+"Array of identifiers of starting vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:125
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:125
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:125
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:126
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:129
+msgid ""
+"(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:127
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:140
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:142
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:151
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:153
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:154
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:155
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:156
+msgid "`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:159
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:160
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:161
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_withPointsDD.po b/locale/it/LC_MESSAGES/pgr_withPointsDD.po
new file mode 100644
index 0000000..95b4be1
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_withPointsDD.po
@@ -0,0 +1,552 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsDD.rst:13
+msgid "pgr_withPointsDD - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:19
+msgid ""
+"``pgr_withPointsDD`` - Returns the driving distance from a starting point."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:33
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:37
+msgid ""
+"Modify the graph to include points and using Dijkstra algorithm, extracts "
+"all the nodes and points that have costs less than or equal to the value "
+"``distance`` from the starting point. The edges extracted will conform the "
+"corresponding spanning tree."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:44
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:54
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:60
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:65
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:63
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:64
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:65
+msgid "No **details** are given about distance of other points of the query."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:84
+msgid "Driving distance from a single point"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:86
+#: ../../build/doc/pgr_withPointsDD.rst:106
+msgid "Finds the driving distance depending on the optional parameters setup."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:94
+msgid "Right side driving topology"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:104
+msgid "Driving distance from many starting points"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:118
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsDD.rst:162
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsDD.rst:138
+#: ../../build/doc/pgr_withPointsDD.rst:162
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsDD.rst:138
+#: ../../build/doc/pgr_withPointsDD.rst:162
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPointsDD.rst:142
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_withPointsDD.rst:169
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+#: ../../build/doc/pgr_withPointsDD.rst:143
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsDD.rst:145
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsDD.rst:147
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsDD.rst:148
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:134
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:138
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:140
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:140
+#: ../../build/doc/pgr_withPointsDD.rst:141
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:140
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:141
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:141
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:142
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:142
+msgid "Starting point id"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:143
+msgid "**distance**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:143
+msgid "Distance from the start_pid"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:144
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:144
+#: ../../build/doc/pgr_withPointsDD.rst:150
+#: ../../build/doc/pgr_withPointsDD.rst:152
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:144
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:145
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:148
+msgid ""
+"(optional). Value in ['b', 'r', 'l', NULL] indicating if the driving side "
+"is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:146
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:150
+msgid "**details**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:150
+msgid ""
+"(optional). When ``true`` the results will include the driving distance to "
+"the points with in the ``distance``. Default is ``false`` which ignores "
+"other points of the points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:152
+msgid "**equicost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:152
+msgid ""
+"(optional). When ``true`` the nodes will only appear in the closest start_v "
+"list. Default is ``false`` which resembles several calls using the single "
+"starting point signatures. Tie brakes are arbitrary."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:157
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:159
+msgid "Returns set of ``(seq, node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:164
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:164
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:164
+msgid "row sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:165
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:165
+#: ../../build/doc/pgr_withPointsDD.rst:166
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:165
+msgid ""
+"Identifier of the node within the Distance from ``start_pid``. If ``details "
+"=: true`` a negative value is the identifier of a point."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:166
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:167
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:167
+msgid "``-1`` when ``start_vid`` = ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:169
+#: ../../build/doc/pgr_withPointsDD.rst:172
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:170
+msgid "Cost to traverse ``edge``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:170
+#: ../../build/doc/pgr_withPointsDD.rst:173
+msgid "``0`` when ``start_vid`` = ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:172
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:173
+msgid "Aggregate cost from ``start_vid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:180
+msgid ""
+"Examples for queries marked as ``directed`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:182
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:184
+msgid "Left side driving topology"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:190
+msgid "Does not matter driving side."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:199
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:204
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:205
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:209
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:211
+msgid ":ref:`pgr_drivingDistance` - Driving distance using dijkstra."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:212
+msgid ":ref:`pgr_alphashape` - Alpha shape computation."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:213
+msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:216
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:217
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:218
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/pgr_withPointsKSP.po b/locale/it/LC_MESSAGES/pgr_withPointsKSP.po
new file mode 100644
index 0000000..8202877
--- /dev/null
+++ b/locale/it/LC_MESSAGES/pgr_withPointsKSP.po
@@ -0,0 +1,571 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsKSP.rst:13
+msgid "pgr_withPointsKSP - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:19
+msgid ""
+"``pgr_withPointsKSP`` - Find the K shortest paths using Yen's algorithm."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:29
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:32
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:34
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:36
+msgid ""
+"Modifies the graph to include the points defined in the ``points_sql`` and "
+"using Yen algorithm, finds the K shortest paths."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:41
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:56
+msgid "Minimal Usage"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:62
+msgid "The minimal usage:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:59
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:60
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:61
+msgid "No **details** are given about distance of other points of the query."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:62
+msgid "No **heap paths** are returned."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:80
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:82
+msgid "Finds the K shortest paths depending on the optional parameters setup."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:91
+msgid "With details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:98
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsKSP.rst:144
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsKSP.rst:119
+#: ../../build/doc/pgr_withPointsKSP.rst:144
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsKSP.rst:119
+#: ../../build/doc/pgr_withPointsKSP.rst:144
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPointsKSP.rst:123
+#: ../../build/doc/pgr_withPointsKSP.rst:124
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_withPointsKSP.rst:153
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsKSP.rst:128
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsKSP.rst:130
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsKSP.rst:131
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:115
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:119
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:121
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:121
+#: ../../build/doc/pgr_withPointsKSP.rst:122
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:121
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:122
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:122
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:123
+msgid "**start_pid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:123
+msgid "Starting point id."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:124
+msgid "**end_pid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:124
+msgid "Ending point id."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:125
+msgid "**K**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:125
+#: ../../build/doc/pgr_withPointsKSP.rst:146
+#: ../../build/doc/pgr_withPointsKSP.rst:147
+#: ../../build/doc/pgr_withPointsKSP.rst:148
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:125
+msgid "Number of shortest paths."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:126
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:126
+#: ../../build/doc/pgr_withPointsKSP.rst:127
+#: ../../build/doc/pgr_withPointsKSP.rst:133
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:126
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:127
+msgid "**heap_paths**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:127
+msgid ""
+"(optional). When ``true`` the paths calculated to get the shortests paths "
+"will be returned also. Default is ``false`` only the K shortest paths are "
+"returned."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:128
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:131
+msgid ""
+"(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:129
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:133
+msgid "**details**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:133
+msgid ""
+"(optional). When ``true`` the results will include the driving distance to "
+"the points with in the ``distance``. Default is ``false`` which ignores "
+"other points of the points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:139
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:141
+msgid ""
+"Returns set of ``(seq, path_id, path_seq, node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:146
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:146
+msgid "Row sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:147
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:147
+msgid ""
+"Relative position in the path of node and edge. Has value 1 for the "
+"beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:148
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:148
+msgid ""
+"Path identifier. The ordering of the paths: For two paths i, j if i < j then"
+" agg_cost(i) <= agg_cost(j)."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:149
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:149
+#: ../../build/doc/pgr_withPointsKSP.rst:150
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:149
+msgid ""
+"Identifier of the node in the path. Negative values are the identifiers of a"
+" point."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:150
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:151
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:151
+msgid "``-1`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:153
+#: ../../build/doc/pgr_withPointsKSP.rst:156
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:154
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next ``node`` in the "
+"path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:154
+msgid "``0`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:156
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:157
+msgid "Aggregate cost from ``start_pid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:157
+msgid "``0`` for the first row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:164
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:166
+msgid "Left side driving topology with details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:172
+msgid "Right side driving topology with heap paths and details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:178
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:181
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:182
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:186
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:188
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:191
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:192
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:193
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/proposed.po b/locale/it/LC_MESSAGES/proposed.po
new file mode 100644
index 0000000..9f1a6f4
--- /dev/null
+++ b/locale/it/LC_MESSAGES/proposed.po
@@ -0,0 +1,410 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/proposed.rst:13
+msgid "Stable Proposed Functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:20
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:22
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:23
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:24
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:25
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:26
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:27
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:33
+msgid "As part of the :ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:35
+msgid ""
+":ref:`pgr_dijkstraCostMatrix` Use pgr_dijkstra to calculate a cost matrix."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:36
+msgid ""
+":ref:`pgr_dijkstraVia` - Use pgr_dijkstra to make a route via vertices."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:39
+msgid "Families"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:40
+msgid ":ref:`astar`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:3
+msgid ":ref:`pgr_aStar` - A* algorithm for the shortest path."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:4
+msgid ":ref:`pgr_aStarCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:5
+msgid ""
+":ref:`pgr_aStarCostMatrix` - Get the cost matrix of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:46
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:3
+msgid ":ref:`pgr_bdAstar` - Bidirectional A* algorithm for obtaining paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid ""
+":ref:`pgr_bdAstarCost` - Bidirectional A* algorithm to calculate the cost of"
+" the paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:5
+msgid ""
+":ref:`pgr_bdAstarCostMatrix` - Bidirectional A* algorithm to calculate a "
+"cost matrix of paths."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:52
+msgid ":ref:`bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:3
+msgid ""
+":ref:`pgr_bdDijkstra` - Bidirectional Dijkstra algorithm for the shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:4
+msgid ""
+":ref:`pgr_bdDijkstraCost` - Bidirectional Dijkstra to calculate the cost of "
+"the shortest paths"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:5
+msgid ""
+":ref:`pgr_bdDijkstraCostMatrix` - Bidirectional Dijkstra algorithm  to "
+"create a matrix of costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:58
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:3
+msgid ""
+":ref:`pgr_maxFlow` - Only the Max flow calculation using Push and Relabel "
+"algorithm."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:4
+msgid ""
+":ref:`pgr_BoykovKolmogorov` - Boykov and Kolmogorov with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid ""
+":ref:`pgr_EdmondsKarp` - Edmonds and Karp algorithm with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid ""
+":ref:`pgr_PushRelabel` - Push and relabel algorithm with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Applications"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:9
+msgid ""
+":ref:`pgr_edgeDisjointPaths` - Calculates edge disjoint paths between two "
+"groups of vertices."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid ""
+":ref:`pgr_maxCardinalityMatch` - Calculates a maximum cardinality matching "
+"in a graph."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:64
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:3
+msgid ":ref:`pgr_withPoints` - Route from/to points anywhere on the graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:4
+msgid ":ref:`pgr_withPointsCost` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:5
+msgid ":ref:`pgr_withPointsCostMatrix` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:6
+msgid ":ref:`pgr_withPointsKSP` - K shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:7
+msgid ":ref:`pgr_withPointsDD` - Driving distance."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:71
+msgid "categories"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:72
+msgid ":ref:`Cost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:3
+msgid ":ref:`pgr_aStarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:4
+msgid ":ref:`pgr_bdAstarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:5
+msgid ":ref:`pgr_bdDijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:6
+msgid ":ref:`pgr_dijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:7
+msgid ":ref:`pgr_withPointsCost`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:78
+msgid ":ref:`CostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:3
+msgid ":ref:`pgr_aStarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:4
+msgid ":ref:`pgr_bdAstarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:5
+msgid ":ref:`pgr_bdDijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:6
+msgid ":ref:`pgr_dijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:7
+msgid ":ref:`pgr_withPointsCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:84
+msgid ":ref:`KSP`"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:3
+msgid ":ref:`pgr_KSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:4
+msgid ":ref:`pgr_withPointsKSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:106
+msgid "Experimental Functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:111
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:113
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:114
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:116
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:117
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:118
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:119
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:120
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:121
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:122
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:123
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:124
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:125
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:126
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:127
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:132
+msgid ":ref:`contraction` - Reduce network size using contraction techniques"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:134
+msgid ""
+":ref:`pgr_contractgraph` - Reduce network size using contraction techniques"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:138
+msgid "Graph Analysis"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:139
+msgid ":ref:`pgr_labelGraph` - Analyze / label  subgraphs within a network"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:141
+msgid ":ref:`components` - Analyze components within a graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:143
+msgid ""
+":ref:`pgr_connectedComponents` - Return the connected components of an "
+"undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:144
+msgid ""
+":ref:`pgr_strongComponents` - Return the strongly connected components of a "
+"directed graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:145
+msgid ""
+":ref:`pgr_biconnectedComponents` - Return the biconnected components of an "
+"undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:146
+msgid ""
+":ref:`pgr_articulationPoints` - Return the articulation points of an "
+"undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:147
+msgid ":ref:`pgr_bridges` - Return the bridges of an undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:150
+msgid "VRP"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:151
+msgid ":ref:`pgr_gsocvrppdtw`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:152
+msgid ":ref:`pgr_vrp_basic`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:166
+msgid "Graph Transformation"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:167
+msgid ":doc:`pgr_lineGraph`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:175
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:178
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:179
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:180
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/release_notes.po b/locale/it/LC_MESSAGES/release_notes.po
new file mode 100644
index 0000000..f4a09f7
--- /dev/null
+++ b/locale/it/LC_MESSAGES/release_notes.po
@@ -0,0 +1,1278 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/release_notes.rst:13
+msgid "Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:15
+msgid ""
+"To see the full list of changes check the list of `Git commits "
+"<https://github.com/pgRouting/pgrouting/commits>`_ on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:18
+msgid "Table of contents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:21
+msgid ":ref:`changelog_2_5_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:22
+msgid ":ref:`changelog_2_4_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:23
+msgid ":ref:`changelog_2_4_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:24
+msgid ":ref:`changelog_2_4_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:25
+msgid ":ref:`changelog_2_3_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:26
+msgid ":ref:`changelog_2_3_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:27
+msgid ":ref:`changelog_2_3_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:28
+msgid ":ref:`changelog_2_2_4`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:29
+msgid ":ref:`changelog_2_2_3`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:30
+msgid ":ref:`changelog_2_2_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:31
+msgid ":ref:`changelog_2_2_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:32
+msgid ":ref:`changelog_2_2_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:33
+msgid ":ref:`changelog_2_1_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:34
+msgid ":ref:`changelog_2_0_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:35
+msgid ":ref:`changelog_2_0_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:36
+msgid ":ref:`changelog_1_x`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:43
+msgid "pgRouting 2.5.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:45
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.5.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.5.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:49
+msgid "enhancement:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:50
+msgid "pgr_version is now on SQL language"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:53
+msgid "Breaking change on:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:54
+msgid "pgr_edgeDisjointPaths:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:56
+msgid "Added path_id, cost and agg_cost columns on the result"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:57
+msgid "Parameter names changed"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:58
+msgid "The many version results are the union of the one to one version"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:61
+msgid "New Signatures:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:62
+msgid "pgr_bdAstar(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:65 ../../build/doc/release_notes.rst:223
+msgid "New Proposed functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:66
+msgid "pgr_bdAstar(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:67
+msgid "pgr_bdAstar(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:68
+msgid "pgr_bdAstar(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:69
+msgid "pgr_bdAstarCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:70
+msgid "pgr_bdAstarCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:71
+msgid "pgr_bdAstarCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:72
+msgid "pgr_bdAstarCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:73
+msgid "pgr_bdAstarCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:74
+msgid "pgr_bdDijkstra(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:75
+msgid "pgr_bdDijkstra(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:76
+msgid "pgr_bdDijkstra(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:77
+msgid "pgr_bdDijkstraCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:78
+msgid "pgr_bdDijkstraCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:79
+msgid "pgr_bdDijkstraCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:80
+msgid "pgr_bdDijkstraCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:81
+msgid "pgr_bdDijkstraCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:82
+msgid "pgr_lineGraph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:83
+msgid "pgr_connectedComponents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:84
+msgid "pgr_strongComponents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:85
+msgid "pgr_biconnectedComponents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:86
+msgid "pgr_articulationPoints"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:87
+msgid "pgr_bridges"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:90 ../../build/doc/release_notes.rst:160
+#: ../../build/doc/release_notes.rst:247
+msgid "Deprecated Signatures"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:91
+msgid "pgr_bdastar - use pgr_bdAstar instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:94
+msgid "Renamed Functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:95
+msgid "pgr_maxFlowPushRelabel - use pgr_pushRelabel instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:96
+msgid "pgr_maxFlowEdmondsKarp -use pgr_edmondsKarp instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:97
+msgid "pgr_maxFlowBoykovKolmogorov - use pgr_boykovKolmogorov instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:98
+msgid "pgr_maximumCardinalityMatching - use pgr_maxCardinalityMatch instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:101
+msgid "Deprecated function"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:102
+msgid "pgr_pointToEdgeNode"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:108
+msgid "pgRouting 2.4.2 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:110
+msgid ""
+"To see the issues closed by this release see the `Git closed milestone for "
+"2.4.2 "
+"<https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.4.2%22%20>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:113
+msgid "Improvement"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:114
+msgid "Works for postgreSQL 10"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:117 ../../build/doc/release_notes.rst:131
+#: ../../build/doc/release_notes.rst:168 ../../build/doc/release_notes.rst:522
+#: ../../build/doc/release_notes.rst:529 ../../build/doc/release_notes.rst:550
+#: ../../build/doc/release_notes.rst:557
+msgid "Bug fixes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:118
+msgid "Fixed: Unexpected error column \"cname\""
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:119
+msgid ""
+"Replace __linux__ with __GLIBC__ for glibc-specific headers and functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:126
+msgid "pgRouting 2.4.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:128
+msgid ""
+"To see the issues closed by this release see the `Git closed milestone for "
+"2.4.1 "
+"<https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.4.1%22%20>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:132
+msgid "Fixed compiling error on macOS"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:133
+msgid "Condition error on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:138
+msgid "pgRouting 2.4.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:140
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.4.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.4.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:143 ../../build/doc/release_notes.rst:213
+#: ../../build/doc/release_notes.rst:374
+msgid "New Signatures"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:144
+msgid "pgr_bdDijkstra"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:148
+msgid "New Proposed Signatures"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:149
+msgid "pgr_maxFlow"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:150
+msgid "pgr_astar(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:151
+msgid "pgr_astar(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:152
+msgid "pgr_astar(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:153
+msgid "pgr_astarCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:154
+msgid "pgr_astarCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:155
+msgid "pgr_astarCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:156
+msgid "pgr_astarCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:157
+msgid "pgr_astarCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:161
+msgid "pgr_bddijkstra - use pgr_bdDijkstra instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:164 ../../build/doc/release_notes.rst:253
+msgid "Deprecated Functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:165
+msgid "pgr_pointsToVids"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:169
+msgid "Bug fixes on proposed functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:171
+msgid "pgr_withPointsKSP: fixed ordering"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:173
+msgid "TRSP original code is used with no changes on the compilation warnings"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:178
+msgid "pgRouting 2.3.2 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:180
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.3.2 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.3.2%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:183 ../../build/doc/release_notes.rst:199
+#: ../../build/doc/release_notes.rst:269 ../../build/doc/release_notes.rst:282
+#: ../../build/doc/release_notes.rst:293 ../../build/doc/release_notes.rst:305
+#: ../../build/doc/release_notes.rst:424 ../../build/doc/release_notes.rst:455
+msgid "Bug Fixes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:184
+msgid "Fixed pgr_gsoc_vrppdtw crash when all orders fit on one truck."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:185
+msgid "Fixed pgr_trsp:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:187
+msgid "Alternate code is not executed when the point is in reality a vertex"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:188
+msgid "Fixed ambiguity on seq"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:194
+msgid "pgRouting 2.3.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:196
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.3.1 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.3.1%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:200
+msgid "Leaks on proposed max_flow functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:201
+msgid "Regression error on pgr_trsp"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:202
+msgid "Types discrepancy on pgr_createVerticesTable"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:208
+msgid "pgRouting 2.3.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:210
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.3.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.3.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:214
+msgid "pgr_TSP"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:215
+msgid "pgr_aStar"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:218 ../../build/doc/release_notes.rst:330
+msgid "New Functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:219
+msgid "pgr_eucledianTSP"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:224
+msgid "pgr_dijkstraCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:225
+msgid "pgr_withPointsCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:226
+msgid "pgr_maxFlowPushRelabel(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:227
+msgid "pgr_maxFlowPushRelabel(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:228
+msgid "pgr_maxFlowPushRelabel(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:229
+msgid "pgr_maxFlowPushRelabel(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:230
+msgid "pgr_maxFlowEdmondsKarp(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:231
+msgid "pgr_maxFlowEdmondsKarp(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:232
+msgid "pgr_maxFlowEdmondsKarp(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:233
+msgid "pgr_maxFlowEdmondsKarp(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:234
+msgid "pgr_maxFlowBoykovKolmogorov (one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:235
+msgid "pgr_maxFlowBoykovKolmogorov (one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:236
+msgid "pgr_maxFlowBoykovKolmogorov (many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:237
+msgid "pgr_maxFlowBoykovKolmogorov (many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:238
+msgid "pgr_maximumCardinalityMatching"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:239
+msgid "pgr_edgeDisjointPaths(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:240
+msgid "pgr_edgeDisjointPaths(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:241
+msgid "pgr_edgeDisjointPaths(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:242
+msgid "pgr_edgeDisjointPaths(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:243
+msgid "pgr_contractGraph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:248
+msgid "pgr_tsp - use pgr_TSP or pgr_eucledianTSP instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:249
+msgid "pgr_astar - use pgr_aStar instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:254
+msgid "pgr_flip_edges"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:255
+msgid "pgr_vidsToDmatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:256
+msgid "pgr_pointsToDMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:257
+msgid "pgr_textToPoints"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:264
+msgid "pgRouting 2.2.4 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:266
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.4 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.4%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:270
+msgid "Bogus uses of extern \"C\""
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:271
+msgid "Build error on Fedora 24 + GCC 6.0"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:272
+msgid "Regression error pgr_nodeNetwork"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:277
+msgid "pgRouting 2.2.3 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:279
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.3 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.3%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:283
+msgid "Fixed compatibility issues with PostgreSQL 9.6."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:288
+msgid "pgRouting 2.2.2 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:290
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.2 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.2%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:294
+msgid "Fixed regression error on pgr_drivingDistance"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:300
+msgid "pgRouting 2.2.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:302
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.1 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A2.2.1+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:306
+msgid "Server crash fix on pgr_alphaShape"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:307
+msgid "Bug fix on With Points family of functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:313
+msgid "pgRouting 2.2.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:315
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:319 ../../build/doc/release_notes.rst:387
+msgid "Improvements"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:320
+msgid "pgr_nodeNetwork"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:322
+msgid "Adding a row_where and outall optional parameters"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:324
+msgid "Signature fix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:326
+msgid "pgr_dijkstra  -- to match what is documented"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:331
+msgid "pgr_floydWarshall"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:332
+msgid "pgr_Johnson"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:333
+msgid "pgr_dijkstraCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:334
+msgid "pgr_dijkstraCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:335
+msgid "pgr_dijkstraCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:336
+msgid "pgr_dijkstraCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:339 ../../build/doc/release_notes.rst:391
+msgid "Proposed functionality"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:340
+msgid "pgr_withPoints(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:341
+msgid "pgr_withPoints(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:342
+msgid "pgr_withPoints(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:343
+msgid "pgr_withPoints(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:344
+msgid "pgr_withPointsCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:345
+msgid "pgr_withPointsCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:346
+msgid "pgr_withPointsCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:347
+msgid "pgr_withPointsCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:348
+msgid "pgr_withPointsDD(single vertex)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:349
+msgid "pgr_withPointsDD(multiple vertices)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:350
+msgid "pgr_withPointsKSP"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:351
+msgid "pgr_dijkstraVia"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:355
+msgid "Deprecated functions:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:356
+msgid "pgr_apspWarshall  use pgr_floydWarshall instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:357
+msgid "pgr_apspJohnson   use pgr_Johnson instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:358
+msgid "pgr_kDijkstraCost use pgr_dijkstraCost instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:359
+msgid "pgr_kDijkstraPath use pgr_dijkstra instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:362
+msgid "Renamed and deprecated function"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:363
+msgid "pgr_makeDistanceMatrix renamed to _pgr_makeDistanceMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:369
+msgid "pgRouting 2.1.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:371
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.1.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=is%3Aissue+milestone%3A%22Release+2.1.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:375
+msgid "pgr_dijkstra(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:376
+msgid "pgr_dijkstra(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:377
+msgid "pgr_dijkstra(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:378
+msgid "pgr_drivingDistance(multiple vertices)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:381
+msgid "Refactored"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:382
+msgid "pgr_dijkstra(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:383
+msgid "pgr_ksp"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:384
+msgid "pgr_drivingDistance(single vertex)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:388
+msgid ""
+"pgr_alphaShape function now can generate better (multi)polygon with holes "
+"and alpha parameter."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:392
+msgid ""
+"Proposed functions from Steve Woodbridge, (Classified as Convenience by the "
+"author.)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:394
+msgid ""
+"pgr_pointToEdgeNode - convert a point geometry to a vertex_id based on "
+"closest edge."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:395
+msgid ""
+"pgr_flipEdges - flip the edges in an array of geometries so the connect end "
+"to end."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:396
+msgid ""
+"pgr_textToPoints - convert a string of x,y;x,y;... locations into point "
+"geometries."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:397
+msgid ""
+"pgr_pointsToVids - convert an array of point geometries into vertex ids."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:398
+msgid ""
+"pgr_pointsToDMatrix - Create a distance matrix from an array of points."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:399 ../../build/doc/release_notes.rst:400
+msgid ""
+"pgr_vidsToDMatrix - Create a distance matrix from an array of vertix_id."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:402
+msgid "Added proposed functions from GSoc Projects:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:404
+msgid "pgr_vrppdtw"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:405
+msgid "pgr_vrponedepot"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:408
+msgid "Deprecated functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:409
+msgid "pgr_getColumnName"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:410
+msgid "pgr_getTableName"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:411
+msgid "pgr_isColumnCndexed"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:412
+msgid "pgr_isColumnInTable"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:413
+msgid "pgr_quote_ident"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:414
+msgid "pgr_versionless"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:415
+msgid "pgr_startPoint"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:416
+msgid "pgr_endPoint"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:417
+msgid "pgr_pointToId"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:420
+msgid "No longer supported"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:421
+msgid "Removed the 1.x legacy functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:425
+msgid "Some bug fixes in other functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:429
+msgid "Refactoring Internal Code"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:430
+msgid "A C and C++ library for developer was created"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:432
+msgid "encapsulates postgreSQL related functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:433
+msgid "encapsulates Boost.Graph graphs"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:435
+msgid "Directed Boost.Graph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:436
+msgid "Undirected Boost.graph."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:438
+msgid "allow any-integer in the id's"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:439
+msgid "allow any-numerical on the cost/reverse_cost columns"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:441
+msgid ""
+"Instead of generating many libraries: - All functions are encapsulated in "
+"one library - The library has the prefix 2-1-0"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:450
+msgid "pgRouting 2.0.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:452
+msgid "Minor bug fixes."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:456
+msgid "No track of the bug fixes were kept."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:462
+msgid "pgRouting 2.0.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:464
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.0.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.0.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:466
+msgid ""
+"With the release of pgRouting 2.0.0 the library has abandoned backwards "
+"compatibility to :ref:`pgRouting 1.x <changelog_1_x>` releases. The main "
+"Goals for this release are:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:469
+msgid "Major restructuring of pgRouting."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:470
+msgid "Standardization of the function naming"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:471
+msgid "Preparation of the project for future development."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:473
+msgid "As a result of this effort:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:475
+msgid "pgRouting has a simplified structure"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:476
+msgid "Significant new functionality has being added"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:477
+msgid "Documentation has being integrated"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:478
+msgid "Testing has being integrated"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:479
+msgid "And made it easier for multiple developers to make contributions."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:483
+msgid "Important Changes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:484
+msgid ""
+"Graph Analytics - tools for detecting and fixing connection some problems in"
+" a graph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:485
+msgid "A collection of useful utility functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:486
+msgid ""
+"Two new All Pairs Short Path algorithms (pgr_apspJohnson, pgr_apspWarshall)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:487
+msgid ""
+"Bi-directional Dijkstra and A-star search algorithms (pgr_bdAstar, "
+"pgr_bdDijkstra)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:488
+msgid "One to many nodes search (pgr_kDijkstra)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:489
+msgid "K alternate paths shortest path (pgr_ksp)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:490
+msgid ""
+"New TSP solver that simplifies the code and the build process (pgr_tsp), "
+"dropped \"Gaul Library\" dependency"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:491
+msgid "Turn Restricted shortest path (pgr_trsp) that replaces Shooting Star"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:492
+msgid "Dropped support for Shooting Star"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:493
+msgid ""
+"Built a test infrastructure that is run before major code changes are "
+"checked in"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:494
+msgid ""
+"Tested and fixed most all of the outstanding bugs reported against 1.x that "
+"existing in the 2.0-dev code base."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:495
+msgid "Improved build process for Windows"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:496
+msgid ""
+"Automated testing on Linux and Windows platforms trigger by every commit"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:497
+msgid "Modular library design"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:498
+msgid "Compatibility with PostgreSQL 9.1 or newer"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:499
+msgid "Compatibility with PostGIS 2.0 or newer"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:500
+msgid "Installs as PostgreSQL EXTENSION"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:501
+msgid "Return types re factored and unified"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:502
+msgid "Support for table SCHEMA in function parameters"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:503
+msgid "Support for ``st_`` PostGIS function prefix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:504
+msgid "Added ``pgr_`` prefix to functions and types"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:505
+msgid "Better documentation: http://docs.pgrouting.org"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:506
+msgid "shooting_star is discontinued"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:513
+msgid "pgRouting 1.x Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:515
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for 1.x "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+1.x%22+is%3Aclosed>`_"
+" on Github. The following release notes have been copied from the previous "
+"``RELEASE_NOTES`` file and are kept as a reference."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:520
+msgid "Changes for release 1.05"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:526
+msgid "Changes for release 1.03"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:528
+msgid "Much faster topology creation"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:533
+msgid "Changes for release 1.02"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:535 ../../build/doc/release_notes.rst:542
+msgid "Shooting* bug fixes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:536
+msgid "Compilation problems solved"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:540
+msgid "Changes for release 1.01"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:546
+msgid "Changes for release 1.0"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:548
+msgid "Core and extra functions are separated"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:549
+msgid "Cmake build process"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:554
+msgid "Changes for release 1.0.0b"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:556
+msgid "Additional SQL file with more simple names for wrapper functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:561
+msgid "Changes for release 1.0.0a"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:563
+msgid "Shooting* shortest path algorithm for real road networks"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:564
+msgid "Several SQL bugs were fixed"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:568
+msgid "Changes for release 0.9.9"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:570
+msgid "PostgreSQL 8.2 support"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:571
+msgid ""
+"Shortest path functions return empty result if they could not find any path"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:575
+msgid "Changes for release 0.9.8"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:577
+msgid "Renumbering scheme was added to shortest path functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:578
+msgid "Directed shortest path functions were added"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:579
+msgid "routing_postgis.sql was modified to use dijkstra in TSP search"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/routingFunctions.po b/locale/it/LC_MESSAGES/routingFunctions.po
new file mode 100644
index 0000000..3242809
--- /dev/null
+++ b/locale/it/LC_MESSAGES/routingFunctions.po
@@ -0,0 +1,134 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/routingFunctions.rst:15
+msgid "Routing Functions"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:21
+msgid ":ref:`all_pairs`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:23
+msgid ":ref:`pgr_floydWarshall` - Floyd-Warshall's Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:24
+msgid ":ref:`pgr_johnson`- Johnson’s Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:26
+msgid ":ref:`pgr_astar` - Shortest Path A*"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:28
+msgid ":ref:`pgr_bdAstar` - Bi-directional A* Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:30
+msgid ":ref:`pgr_bdDijkstra` - Bi-directional Dijkstra Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:33
+msgid ":ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:3
+msgid ":ref:`pgr_dijkstra` - Dijkstra's algorithm for the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:4
+msgid ""
+":ref:`pgr_dijkstraCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:5
+msgid ""
+":ref:`pgr_dijkstraCostMatrix` - Use pgr_dijkstra to create a costs matrix."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:6
+msgid ""
+":ref:`pgr_drivingDistance` - Use pgr_dijkstra to calculate catchament "
+"information."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:7
+msgid ""
+":ref:`pgr_ksp` - Use Yen algorithm with pgr_dijkstra to get the K shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:8
+msgid ":ref:`pgr_dijkstraVia` - Get a route of a seuence of vertices."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:39
+msgid ":ref:`pgr_ksp` - K-Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:41
+msgid ":ref:`pgr_trsp<trsp>` - Turn Restriction Shortest Path (TRSP)"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:43
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:3
+msgid ":ref:`pgr_TSP` - When input is given as matrix cell information."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:4
+msgid ":ref:`pgr_eucledianTSP` - When input are coordinates."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:49
+msgid ":ref:`drivingDistance`"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:3
+msgid ":ref:`pgr_drivingDistance` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:4
+msgid ":ref:`pgr_withPointsDD` - Driving Distance based on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:5
+msgid "Post pocessing"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:7
+msgid ":ref:`pgr_alphaShape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:8
+msgid ":ref:`pgr_points_as_polygon` - Polygon around a set of points"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:70
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:73
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:74
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:75
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/sampledata.po b/locale/it/LC_MESSAGES/sampledata.po
new file mode 100644
index 0000000..2ded9cd
--- /dev/null
+++ b/locale/it/LC_MESSAGES/sampledata.po
@@ -0,0 +1,152 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/sampledata.rst:11
+msgid "Sample Data"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:13
+msgid ""
+"The documentation provides very simple example queries based on a small "
+"sample network. To be able to execute the sample queries, run the following "
+"SQL commands to create a table with a small network data set."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:18
+msgid "Create table"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:25
+msgid "Insert data"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:32
+msgid "Topology"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:33
+msgid ""
+"Before you test a routing function use this query to create a topology "
+"(fills the ``source`` and ``target`` columns)."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:40
+msgid "Points of interest"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:41
+msgid "When points outside of the graph."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:42
+msgid "Used with the :ref:`withPoints` functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:49
+msgid "Restrictions"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:50
+msgid "Used with the :ref:`trsp` functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:57
+msgid "Categories"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:58
+msgid "Used with the :ref:`maxFlow` functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:65
+msgid "Vertex table"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:66
+msgid "Used in some deprecated signatures or deprecated functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:74
+msgid "Images"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:76
+msgid "Red arrows correspond when ``cost`` > 0 in the edge table."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:77
+msgid "Blue arrows correspond when ``reverse_cost`` > 0 in the edge table."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:78
+msgid "Points are outside the graph."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:79
+msgid "Click on the graph to enlarge."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:84
+msgid ""
+"Network for queries marked as ``directed`` and ``cost`` and ``reverse_cost``"
+" columns are used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:86
+msgid ""
+"When working with city networks, this is recommended for point of view of "
+"vehicles."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:91
+msgid "**Graph 1: Directed, with cost and reverse cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:96
+msgid ""
+"Network for queries marked as ``undirected`` and ``cost`` and "
+"``reverse_cost`` columns are used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:98
+msgid ""
+"When working with city networks, this is recommended for point of view of "
+"pedestrians."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:104
+msgid "**Graph 2: Undirected, with cost and reverse cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:109
+msgid ""
+"Network for queries marked as ``directed`` and only ``cost`` column is used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:116
+msgid "**Graph 3: Directed, with cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:121
+msgid ""
+"Network for queries marked as ``undirected`` and only ``cost`` column is "
+"used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:127
+msgid "**Graph 4: Undirected, with cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:134
+msgid "Pick & Deliver Data"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/support.po b/locale/it/LC_MESSAGES/support.po
new file mode 100644
index 0000000..4082646
--- /dev/null
+++ b/locale/it/LC_MESSAGES/support.po
@@ -0,0 +1,177 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/support.rst:13
+msgid "Support"
+msgstr ""
+
+#: ../../build/doc/support.rst:15
+msgid ""
+"pgRouting community support is available through the `pgRouting website "
+"<http://pgrouting.org/support.html>`_, `documentation "
+"<http://docs.pgrouting.org>`_, tutorials, mailing lists and others. If "
+"you’re looking for :ref:`commercial support <support_commercial>`, find "
+"below a list of companies providing pgRouting development and consulting "
+"services."
+msgstr ""
+
+#: ../../build/doc/support.rst:19
+msgid "Reporting Problems"
+msgstr ""
+
+#: ../../build/doc/support.rst:21
+msgid ""
+"Bugs are reported and managed in an `issue tracker "
+"<https://github.com/pgrouting/pgrouting/issues>`_. Please follow these "
+"steps:"
+msgstr ""
+
+#: ../../build/doc/support.rst:23
+msgid ""
+"Search the tickets to see if your problem has already been reported. If so, "
+"add any extra context you might have found, or at least indicate that you "
+"too are having the problem. This will help us prioritize common issues."
+msgstr ""
+
+#: ../../build/doc/support.rst:24
+msgid ""
+"If your problem is unreported, create a `new issue "
+"<https://github.com/pgRouting/pgrouting/issues/new>`_ for it."
+msgstr ""
+
+#: ../../build/doc/support.rst:25
+msgid ""
+"In your report include explicit instructions to replicate your issue. The "
+"best tickets include the exact SQL necessary to replicate a problem."
+msgstr ""
+
+#: ../../build/doc/support.rst:26
+msgid ""
+"If you can test older versions of PostGIS for your problem, please do. On "
+"your ticket, note the earliest version the problem appears."
+msgstr ""
+
+#: ../../build/doc/support.rst:27
+msgid ""
+"For the versions where you can replicate the problem, note the operating "
+"system and version of pgRouting, PostGIS and PostgreSQL."
+msgstr ""
+
+#: ../../build/doc/support.rst:28
+msgid ""
+"It is recommended to use the following wrapper on the problem to pin point "
+"the step that is causing the problem."
+msgstr ""
+
+#: ../../build/doc/support.rst:39
+msgid "Mailing List and GIS StackExchange"
+msgstr ""
+
+#: ../../build/doc/support.rst:41
+msgid ""
+"There are two mailing lists for pgRouting hosted on OSGeo mailing list "
+"server:"
+msgstr ""
+
+#: ../../build/doc/support.rst:43
+msgid ""
+"User mailing list: http://lists.osgeo.org/mailman/listinfo/pgrouting-users"
+msgstr ""
+
+#: ../../build/doc/support.rst:44
+msgid ""
+"Developer mailing list: http://lists.osgeo.org/mailman/listinfo/pgrouting-"
+"dev"
+msgstr ""
+
+#: ../../build/doc/support.rst:46
+msgid ""
+"For general questions and topics about how to use pgRouting, please write to"
+" the user mailing list."
+msgstr ""
+
+#: ../../build/doc/support.rst:48
+msgid ""
+"You can also ask at `GIS StackExchange <http://gis.stackexchange.com/>`_ and"
+" tag the question with ``pgrouting``. Find all questions tagged with "
+"``pgrouting`` under http://gis.stackexchange.com/questions/tagged/pgrouting "
+"or subscribe to the `pgRouting questions feed "
+"<http://gis.stackexchange.com/feeds/tag?tagnames=pgrouting&sort=newest>`_."
+msgstr ""
+
+#: ../../build/doc/support.rst:54
+msgid "Commercial Support"
+msgstr ""
+
+#: ../../build/doc/support.rst:56
+msgid ""
+"For users who require professional support, development and consulting "
+"services, consider contacting any of the following organizations, which have"
+" significantly contributed to the development of pgRouting:"
+msgstr ""
+
+#: ../../build/doc/support.rst:61
+msgid "**Company**"
+msgstr ""
+
+#: ../../build/doc/support.rst:62
+msgid "**Offices in**"
+msgstr ""
+
+#: ../../build/doc/support.rst:63
+msgid "**Website**"
+msgstr ""
+
+#: ../../build/doc/support.rst:64
+msgid "Georepublic"
+msgstr ""
+
+#: ../../build/doc/support.rst:65
+msgid "Germany, Japan"
+msgstr ""
+
+#: ../../build/doc/support.rst:66
+msgid "https://georepublic.info"
+msgstr ""
+
+#: ../../build/doc/support.rst:67
+msgid "iMaptools"
+msgstr ""
+
+#: ../../build/doc/support.rst:68 ../../build/doc/support.rst:71
+msgid "United States"
+msgstr ""
+
+#: ../../build/doc/support.rst:69
+msgid "http://imaptools.com"
+msgstr ""
+
+#: ../../build/doc/support.rst:70
+msgid "Paragon Corporation"
+msgstr ""
+
+#: ../../build/doc/support.rst:72
+msgid "http://www.paragoncorporation.com"
+msgstr ""
+
+#: ../../build/doc/support.rst:73
+msgid "Camptocamp"
+msgstr ""
+
+#: ../../build/doc/support.rst:74
+msgid "Switzerland, France"
+msgstr ""
+
+#: ../../build/doc/support.rst:75
+msgid "http://www.camptocamp.com"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/topology-functions.po b/locale/it/LC_MESSAGES/topology-functions.po
new file mode 100644
index 0000000..ac6a1b3
--- /dev/null
+++ b/locale/it/LC_MESSAGES/topology-functions.po
@@ -0,0 +1,66 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/topology-functions.rst:13
+msgid "Topology - Family of Functions"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:15
+msgid ""
+"The pgRouting's topology of a network, represented with an edge table with "
+"source and target attributes and a vertices table associated with it. "
+"Depending on the algorithm, you can create a topology or just reconstruct "
+"the vertices table, You can analyze the topology, We also provide a function"
+" to node an unoded network."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:19
+msgid ""
+":ref:`pgr_create_topology` -  to create a topology based on the geometry."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:20
+msgid ""
+":ref:`pgr_create_vert_table` - to reconstruct the vertices table based on "
+"the source and target information."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:21
+msgid ""
+":ref:`pgr_analyze_graph`  - to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:22
+msgid ":ref:`pgr_analyze_oneway` - to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:23
+msgid ":ref:`pgr_node_network`  -to create nodes to a not noded edge table."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:35
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:38
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:39
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:40
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/types_index.po b/locale/it/LC_MESSAGES/types_index.po
new file mode 100644
index 0000000..3f3faa7
--- /dev/null
+++ b/locale/it/LC_MESSAGES/types_index.po
@@ -0,0 +1,56 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/types_index.rst:13
+msgid "pgRouting Data Types"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:15
+msgid ""
+"The following are commonly used data types for some of the pgRouting "
+"functions."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:17
+msgid ""
+":ref:`type_cost_result` -  A set of records to describe a path result with "
+"cost attribute."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:18
+msgid ""
+":ref:`pgr_costResult3[] <type_cost_result3>` - A set of records to describe "
+"a path result with cost attribute."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:19
+msgid ""
+":ref:`pgr_geomResult <type_geom_result>` - A set of records to describe a "
+"path result with geometry attribute."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:30
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:33
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:34
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:35
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/it/LC_MESSAGES/withPoints-family.po b/locale/it/LC_MESSAGES/withPoints-family.po
new file mode 100644
index 0000000..3d4f303
--- /dev/null
+++ b/locale/it/LC_MESSAGES/withPoints-family.po
@@ -0,0 +1,395 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/withPoints-family.rst:14
+msgid "withPoints - Family of functions"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:16
+msgid "When points are also given as input:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:20
+msgid ":ref:`pgr_withPoints` - Route from/to points anywhere on the graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:21
+msgid ":ref:`pgr_withPointsCost` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:22
+msgid ":ref:`pgr_withPointsCostMatrix` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:23
+msgid ":ref:`pgr_withPointsKSP` - K shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:24
+msgid ":ref:`pgr_withPointsDD` - Driving distance."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:47
+msgid "Images"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:49
+msgid ""
+"The squared vertices are the temporary vertices, The temporary vertices are "
+"added acordng to the dirving side, The following images visualy show the "
+"diferences on how depending on the driving side the data is interpreted."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:53
+msgid "Right driving side"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:58
+msgid "Left driving side"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:63
+msgid "doesn't matter the driving side"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:68
+msgid "Introduction"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:70
+msgid ""
+"This famly of functions was thought for routing vehicles, but might as well "
+"work for some other application that we can not think of."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:73
+msgid ""
+"The with points family of function give you the ability to route between "
+"arbitrary points located outside the original graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:76
+msgid ""
+"When given a point identified with a `pid` that its being mapped to and edge"
+" with an identifier `edge_id`, with a `fraction` along that edge (from the "
+"source to the target of the edge) and some additional information about "
+"which `side` of the edge the point is on, then routing from arbitrary points"
+" more accurately reflect routing vehicles in road networks,"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:87
+msgid ""
+"I talk about a family of functions because it includes different "
+"functionalities."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:84
+msgid "pgr_withPoints is pgr_dijkstra based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:85
+msgid "pgr_withPointsCost is pgr_dijkstraCost based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:86
+msgid "pgr_withPointsKSP is pgr_ksp based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:87
+msgid "pgr_withPointsDD is pgr_drivingDistance based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:89
+msgid ""
+"In all this functions we have to take care of as many aspects as possible:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:91
+msgid "Must work for routing:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:93
+msgid "Cars (directed graph)"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:94
+msgid "Pedestrians (undirected graph)"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:96
+msgid "Arriving at the point:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:98
+msgid "In either side of the street."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:99
+msgid ""
+"Compulsory arrival on the side of the street where the point is located."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:101
+msgid "Countries with:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:103
+msgid "Right side driving"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:104
+msgid "Left side driving"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:106
+msgid "Some points are:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:108
+msgid ""
+"Permanent, for example the set of points of clients stored in a table in the"
+" data base"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:109
+msgid "Temporal, for example points given through a web application"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:111
+msgid "The numbering of the points are handled with negative sign."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:113
+msgid "Original point identifiers are to be positive."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:114
+msgid "Transformation to negative is done internally."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:115
+msgid "For results for involving vertices identifiers"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:117
+msgid "positive sign is a vertex of the original grpah"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:118
+msgid "negative sign is a point of the temporary points"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:120
+msgid ""
+"The reason for doing this is to avoid confusion when there is a vertex with "
+"the same number as identifier as the points identifier."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:123
+msgid "Graph & edges"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:125
+msgid ""
+"Let :math:`G_d(V,E)` where :math:`V` is the set of vertices and :math:`E` is"
+" the set of edges be the original directed graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:127
+msgid ""
+"An edge of the original `edges_sql` is :math:`(id, source, target, cost, "
+"reverse\\_cost)` will generate internally"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:129
+msgid ":math:`(id, source, target, cost)`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:130
+msgid ":math:`(id, target, source, reverse\\_cost)`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:133
+msgid "Point Definition"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:135
+msgid ""
+"A point is defined by the quadruplet: :math:`(pid, eid, fraction, side)`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:137
+msgid "**pid** is the point identifier"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:138
+msgid "**eid** is an edge id of the `edges_sql`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:139
+msgid "**fraction** represents where the edge `eid` will be cut."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:140
+msgid "**side** Indicates the side of the edge where the point is located."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:144
+msgid "Creating Temporary Vertices in the Graph"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:146
+msgid "For edge (15,  9,12  10, 20), & lets insert point (2, 12, 0.3, r)"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:149
+msgid "On a right hand side driving network"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:150
+msgid "From first image above:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:152
+msgid "We can arrive to the point only via vertex 9."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:153
+msgid "It only afects the edge (15, 9,12, 10) so that edge is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:154
+msgid "Edge (15, 12,9, 20) is kept."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:155
+#: ../../build/doc/withPoints-family.rst:167
+#: ../../build/doc/withPoints-family.rst:182
+msgid "Create new edges:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:157
+#: ../../build/doc/withPoints-family.rst:186
+msgid "(15, 9,-1, 3) edge from vertex 9 to point 1 has cost 3"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:158
+#: ../../build/doc/withPoints-family.rst:187
+msgid "(15, -1,12, 7) edge from point 1 to vertex 12 has cost 7"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:161
+msgid "On a left hand side driving network"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:162
+msgid "From second image above:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:164
+msgid "We can arrive to the point only via vertex 12."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:165
+msgid "It only afects the edge (15, 12,9 20) so that edge is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:166
+msgid "Edge (15, 9,12, 10) is kept."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:169
+#: ../../build/doc/withPoints-family.rst:184
+msgid "(15, 12,-1, 14) edge from vertex 12 to point 1 has cost 14"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:170
+#: ../../build/doc/withPoints-family.rst:185
+msgid "(15, -1,9, 6) edge from point 1 to vertex 9 has cost 6"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:172
+msgid "that fraction is from vertex 9 to vertex 12"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:176
+msgid "When driving side does not matter"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:177
+msgid "From third image above:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:179
+msgid "We can arrive to the point either via vertex 12 or via vertex 9"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:180
+msgid "Edge (15, 12,9 20) is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:181
+msgid "Edge (15, 9,12, 10) is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:190
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:193
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:194
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:195
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/KSP-category.po b/locale/ja/LC_MESSAGES/KSP-category.po
new file mode 100644
index 0000000..9232738
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/KSP-category.po
@@ -0,0 +1,36 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/KSP-category.rst:14
+msgid "KSP Category"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:18
+msgid ":ref:`pgr_KSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:19
+msgid ":ref:`pgr_withPointsKSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:26
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:27
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:28
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/TSP-family.po b/locale/ja/LC_MESSAGES/TSP-family.po
new file mode 100644
index 0000000..0f03653
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/TSP-family.po
@@ -0,0 +1,556 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/TSP-family.rst:13
+msgid "Traveling Sales Person - Family of functions"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:17
+msgid ":ref:`pgr_TSP` - When input is given as matrix cell information."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:18
+msgid ":ref:`pgr_eucledianTSP` - When input are coordinates."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:30
+msgid "General Information"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:33
+msgid "Origin"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:36
+msgid ""
+"The traveling sales person problem was studied in the 18th century by "
+"mathematicians"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:36
+msgid "**Sir William Rowam Hamilton** and **Thomas Penyngton  Kirkman**."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:38
+msgid ""
+"A discussion about the work of Hamilton & Kirkman can be found in the book "
+"**Graph Theory (Biggs et  al. 1976)**."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:41
+msgid "ISBN-13: 978-0198539162"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:42
+msgid "ISBN-10: 0198539169"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:44
+msgid ""
+"It is believed that the general form of the TSP have been first studied by "
+"Kalr Menger in Vienna and Harvard. The problem  was  later promoted by "
+"Hassler, Whitney  &  Merrill at Princeton. A detailed  description about the"
+" connection between Menger & Whitney, and the development of the TSP can be "
+"found in  `On the history of combinatorial optimization (till 1960) "
+"<http://www.cwi.nl/~lex/files/histco.ps>`_"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:50
+msgid "Problem Definition"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:52
+msgid ""
+"Given a collection of cities and travel cost between each pair, find the "
+"cheapest way for visiting all of the cities and returning to the starting "
+"point."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:56
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:58
+msgid "The travel costs are symmetric:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:60
+msgid ""
+"traveling costs from city A to city B are just as much as traveling from B "
+"to A."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:62
+msgid "This problem is an NP-hard optimization problem."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:64
+msgid "To calculate the number of different tours through :math:`n` cities:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:66
+msgid "Given a starting city,"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:67
+msgid "There are :math:`n-1` choices for the second city,"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:68
+msgid "And  :math:`n-2` choices for the third city, etc."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:69
+msgid ""
+"Multiplying these together we get :math:`(n-1)!  = (n-1) (n-2) . .  1`."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:70
+msgid ""
+"Now since our travel costs do not depend on the direction we take around the"
+" tour:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:72
+msgid "this number by 2"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:73
+msgid ":math:`(n-1)!/2`."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:76
+msgid "TSP & Simulated Annealing"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:78
+msgid ""
+"The simulated annealing algorithm was originally inspired from the process "
+"of annealing in metal work."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:81
+msgid ""
+"Annealing involves heating and cooling a material to alter its physical "
+"properties due to the changes in its internal structure. As the metal cools "
+"its new structure becomes fixed, consequently causing the metal to retain "
+"its newly obtained properties. [C001]_"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:88
+msgid "Pseudocode"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:89
+msgid ""
+"Given an initial solution, the simulated annealing process, will start with "
+"a high temperature and gradually cool down until the desired temperature is "
+"reached."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:92
+msgid ""
+"For each temperature, a neighbouring new solution **snew** is calculated. "
+"The higher the temperature the higher the probability of accepting the new "
+"solution as a possible bester solution."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:95
+msgid ""
+"Once the desired temperature is reached, the best solution found is returned"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:118
+msgid "pgRouting Implementation"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:120
+msgid ""
+"pgRouting's implementation adds some extra parameters to allow some exit "
+"controls within the simulated annealing process."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:123
+msgid "To cool down faster to the next temperature:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:125
+msgid ""
+"max_changes_per_temperature: limits the number of changes in the solution "
+"per temperature"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:126
+msgid ""
+"max_consecutive_non_changes: limits the number of consecutive non changes "
+"per temperature"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:128
+msgid ""
+"This is done by doing some book keeping on the times **solution = snew;** is"
+" executed."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:130
+msgid ""
+"max_changes_per_temperature: Increases by one when **solution** changes"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:131
+msgid ""
+"max_consecutive_non_changes: Reset to 0 when **solution** changes, and "
+"increased each **try**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:133
+msgid ""
+"Additionally to stop the algorithm at a higher temperature than the desired "
+"one:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:135
+msgid ""
+"max_processing_time: limits the time the simulated annealing is performed."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:136
+msgid ""
+"book keeping is done to see if there was a change in **solution** on the "
+"last temperature"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:138
+msgid ""
+"Note that, if no change was found in the first "
+"**max_consecutive_non_changes** tries, then the simulated annealing will "
+"stop."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:168
+msgid "Choosing parameters"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:170
+msgid ""
+"There is no exact rule on how the parameters have to be chose, it will "
+"depend on the special characteristics of the problem."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:173
+msgid ""
+"Your computational time is crucial, then put your time limit to "
+"**max_processing_time**."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:174
+msgid ""
+"Make the **tries_per_temperture** depending on the number of cities, for "
+"example:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:176
+msgid "Useful to estimate the time it takes to do one cycle: use `1`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:178
+msgid "this will help to set a reasonable **max_processing_time**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:180
+msgid ":math:`n * (n-1)`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:181
+msgid ":math:`500 * n`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:183
+msgid ""
+"For a faster decreasing the temperature set **cooling_factor** to a smaller "
+"number, and set to a higher number for a slower decrease."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:186
+msgid ""
+"When for the same given data the same results are needed, set **randomize** "
+"to `false`."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:188
+msgid "When estimating how long it takes to do one cycle: use `false`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:191
+msgid ""
+"A recommendation is to play with the values and see what fits to the "
+"particular data."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:196
+msgid "Description Of the Control parameters"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:198
+msgid "The control parameters are optional, and have a default value."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201 ../../build/doc/TSP-family.rst:230
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201 ../../build/doc/TSP-family.rst:230
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203 ../../build/doc/TSP-family.rst:204
+#: ../../build/doc/TSP-family.rst:233
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203 ../../build/doc/TSP-family.rst:204
+msgid "`0`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203
+msgid "The greedy part of the implementation will use this identifier."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:204
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:204
+msgid "Last visiting vertex before returning to start_vid."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205
+msgid "**max_processing_time**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205 ../../build/doc/TSP-family.rst:209
+#: ../../build/doc/TSP-family.rst:210 ../../build/doc/TSP-family.rst:211
+#: ../../build/doc/TSP-family.rst:234 ../../build/doc/TSP-family.rst:237
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205
+msgid "`+infinity`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205
+msgid "Stop the annealing processing when the value is reached."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206
+msgid "**tries_per_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206 ../../build/doc/TSP-family.rst:207
+#: ../../build/doc/TSP-family.rst:208 ../../build/doc/TSP-family.rst:232
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206
+msgid "`500`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206
+msgid "Maximum number of times a neighbor(s) is searched in each temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:207
+msgid "**max_changes_per_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:207
+msgid "`60`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:207
+msgid "Maximum number of times the solution is changed in each temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:208
+msgid "**max_consecutive_non_changes**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:208 ../../build/doc/TSP-family.rst:209
+msgid "`100`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:208
+msgid ""
+"Maximum number of consecutive times the solution is not changed in each "
+"temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:209
+msgid "**initial_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:209
+msgid "Starting temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:210
+msgid "**final_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:210
+msgid "`0.1`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:210
+msgid "Ending temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:211
+msgid "**cooling_factor**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:211
+msgid "`0.9`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:211
+msgid ""
+"Value between between 0 and 1 (not including) used to calculate the next "
+"temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "**randomize**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "`true`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "Choose the random seed"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:214
+msgid "true: Use current time as seed"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:215
+msgid ""
+"false: Use `1` as seed. Using this value will get the same results with the "
+"same data in each execution."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:225
+msgid "Description of the return columns"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:227
+msgid "Returns set of ``(seq, node, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:230
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:232
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:232
+msgid "Row sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:233
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:233
+msgid "Identifier of the node/coordinate/point."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:234
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:235
+msgid ""
+"Cost to traverse from the current ``node`` ito the next ``node`` in the path"
+" sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:235
+msgid "``0`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:237
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:238
+msgid "Aggregate cost from the ``node`` at ``seq = 1`` to the current node."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:238
+msgid "``0`` for the first row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:245
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:248
+msgid "References"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:249
+msgid ""
+"`Simulated annaeling algorithm for beginners <http://www.theprojectspot.com"
+"/tutorial-post/simulated-annealing-algorithm-for-beginners/6>`_"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:251
+msgid "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:252
+msgid "http://en.wikipedia.org/wiki/Simulated_annealing"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:255
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:256
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:257
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/aStar-family.po b/locale/ja/LC_MESSAGES/aStar-family.po
new file mode 100644
index 0000000..3364e02
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/aStar-family.po
@@ -0,0 +1,205 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/aStar-family.rst:13
+msgid "aStar - Family of functions"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:15
+msgid ""
+"The A* (pronounced \"A Star\") algorithm is based on Dijkstra's algorithm "
+"with a heuristic that allow it to solve most shortest path problems by "
+"evaluation only a sub-set of the overall graph."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:19
+msgid ":ref:`pgr_aStar` - A* algorithm for the shortest path."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:20
+msgid ":ref:`pgr_aStarCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:21
+msgid ""
+":ref:`pgr_aStarCostMatrix` - Get the cost matrix of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:34
+msgid "The problem definition (Advanced documentation)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:36
+msgid ""
+"The A* (pronounced \"A Star\") algorithm is based on Dijkstra's algorithm "
+"with a heuristic, that is an estimation of the remaining cost from the "
+"vertex to the goal, that allows to solve most shortest path problems by "
+"evaluation only a sub-set of the overall graph. Running time: :math:`O((E + "
+"V) * \\log V)`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:46
+msgid "Heuristic"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:48
+msgid "Currently the heuristic functions available are:"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:50
+msgid "0: :math:`h(v) = 0` (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:51
+msgid "1: :math:`h(v) = abs(max(\\Delta x, \\Delta y))`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:52
+msgid "2: :math:`h(v) = abs(min(\\Delta x, \\Delta y))`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:53
+msgid "3: :math:`h(v) = \\Delta x * \\Delta x + \\Delta y * \\Delta y`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:54
+msgid "4: :math:`h(v) = sqrt(\\Delta x * \\Delta x + \\Delta y * \\Delta y)`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:55
+msgid "5: :math:`h(v) = abs(\\Delta x) + abs(\\Delta y)`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:57
+msgid "where :math:`\\Delta x = x_1 - x_0` and :math:`\\Delta y = y_1 - y_0`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:63 ../../build/doc/aStar-family.rst:76
+#: ../../build/doc/aStar-family.rst:89
+msgid "Factor"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:66
+msgid "Analysis 1"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:67
+msgid ""
+"Working with cost/reverse_cost as length in degrees, x/y in lat/lon: Factor "
+"= 1   (no need to change units)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:71
+msgid "Analysis 2"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:72
+msgid ""
+"Working with cost/reverse_cost as length in meters, x/y in lat/lon: Factor ="
+"  would depend on the location of the points:"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:76 ../../build/doc/aStar-family.rst:89
+msgid "latitude"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:76 ../../build/doc/aStar-family.rst:89
+msgid "conversion"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:78 ../../build/doc/aStar-family.rst:91
+msgid "45"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:78
+msgid "1 longitude degree is  78846.81 m"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:78
+msgid "78846"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:79 ../../build/doc/aStar-family.rst:92
+msgid "0"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:79
+msgid "1 longitude degree is 111319.46 m"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:79
+msgid "111319"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:83
+msgid "Analysis 3"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:84
+msgid ""
+"Working with cost/reverse_cost as time in seconds, x/y in lat/lon: Factor: "
+"would depend on the location of the points and on the average speed say "
+"25m/s is the speed."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:91
+msgid "1 longitude degree is (78846.81m)/(25m/s)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:91
+msgid "3153 s"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:92
+msgid "1 longitude degree is (111319.46 m)/(25m/s)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:92
+msgid "4452 s"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:98
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:100
+msgid ":ref:`pgr_aStar`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:101
+msgid ":ref:`pgr_aStarCost`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:102
+msgid ":ref:`pgr_aStarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:103
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:104
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:107
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:108
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:109
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/allpairs-family.po b/locale/ja/LC_MESSAGES/allpairs-family.po
new file mode 100644
index 0000000..9749ed9
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/allpairs-family.po
@@ -0,0 +1,996 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/allpairs-family.rst:14
+msgid "All Pairs - Family of Functions"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:16
+msgid "The following functions work an all vertices pair combinations"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:33
+msgid "Performance"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:40
+msgid "The following tests:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:36
+msgid "non server computer"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:37
+msgid "with AMD 64 CPU"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:38
+msgid "4G memory"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:39
+msgid "trusty"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:40
+msgid "posgreSQL version 9.3"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:43
+msgid "Data"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:45
+msgid "The following data was used"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:53
+msgid "Data processing was done with osm2pgrouting-alpha"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:66
+msgid "Results"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:68
+msgid "One"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:70
+msgid ""
+"This test is not with a bounding box The density of the passed graph is "
+"extremely low. For each <SIZE> 30 tests were executed to get the average The"
+" tested query is:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:83
+#: ../../build/doc/allpairs-family.rst:140
+msgid "The results of this tests are presented as:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:85
+msgid "is the number of edges given as input."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:86
+#: ../../build/doc/allpairs-family.rst:143
+msgid "is the total number of records in the query."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:87
+#: ../../build/doc/allpairs-family.rst:144
+msgid "is the density of the data :math:`\\dfrac{E}{V \\times (V-1)}`."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:88
+#: ../../build/doc/allpairs-family.rst:145
+msgid "is the number of records returned by the queries."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:89
+#: ../../build/doc/allpairs-family.rst:146
+msgid "is the average execution time in seconds of pgr_floydWarshall."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:90
+#: ../../build/doc/allpairs-family.rst:147
+msgid "is the average execution time in seconds of pgr_johnson."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "SIZE"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "EDGES"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "DENSITY"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "OUT ROWS"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "Floyd-Warshall"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "Johnson"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+#: ../../build/doc/allpairs-family.rst:96
+msgid "500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "0.18E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "1346"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "0.14"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "0.13"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+#: ../../build/doc/allpairs-family.rst:97
+msgid "1000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "0.36E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "2655"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "0.23"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "0.18"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+#: ../../build/doc/allpairs-family.rst:98
+msgid "1500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+msgid "0.55E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+msgid "4110"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+#: ../../build/doc/allpairs-family.rst:99
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.37"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+msgid "0.34"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+#: ../../build/doc/allpairs-family.rst:99
+msgid "2000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+msgid "0.73E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+msgid "5676"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+msgid "0.56"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+#: ../../build/doc/allpairs-family.rst:100
+msgid "2500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "0.89E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "7177"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "0.84"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "0.51"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+#: ../../build/doc/allpairs-family.rst:101
+msgid "3000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "1.07E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "8778"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "1.28"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "0.68"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+#: ../../build/doc/allpairs-family.rst:102
+msgid "3500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "1.24E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "10526"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "2.08"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "0.95"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+#: ../../build/doc/allpairs-family.rst:103
+msgid "4000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "1.41E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "12484"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "3.16"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "1.24"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+#: ../../build/doc/allpairs-family.rst:104
+msgid "4500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "1.58E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "14354"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "4.49"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "1.47"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+#: ../../build/doc/allpairs-family.rst:105
+msgid "5000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "1.76E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "16503"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "6.05"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "1.78"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+#: ../../build/doc/allpairs-family.rst:106
+msgid "5500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "1.93E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "18623"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "7.53"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "2.03"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+#: ../../build/doc/allpairs-family.rst:107
+msgid "6000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "2.11E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "20710"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "8.47"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "2.37"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+#: ../../build/doc/allpairs-family.rst:108
+msgid "6500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "2.28E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "22752"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "9.99"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "2.68"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+#: ../../build/doc/allpairs-family.rst:109
+msgid "7000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "2.46E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "24687"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "11.82"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "3.12"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+#: ../../build/doc/allpairs-family.rst:110
+msgid "7500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "2.64E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "26861"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "13.94"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "3.60"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+#: ../../build/doc/allpairs-family.rst:111
+msgid "8000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "2.83E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "29050"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "15.61"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "4.09"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+#: ../../build/doc/allpairs-family.rst:112
+msgid "8500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "3.01E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "31693"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "17.43"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "4.63"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+#: ../../build/doc/allpairs-family.rst:113
+msgid "9000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "3.17E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "33879"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "19.19"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "5.34"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+#: ../../build/doc/allpairs-family.rst:114
+msgid "9500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "3.35E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "36287"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "20.77"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "6.24"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+#: ../../build/doc/allpairs-family.rst:115
+msgid "10000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "3.52E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "38491"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "23.26"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "6.51"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:119
+msgid "Two"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:121
+msgid ""
+"This test is with a bounding box The density of the passed graph higher than"
+" of the Test One. For each <SIZE> 30 tests were executed to get the average "
+"The tested edge query is:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:133
+msgid "The tested queries"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:142
+msgid "is the size of the bounding box."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "0.001"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "44"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "0.0608"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "1197"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+#: ../../build/doc/allpairs-family.rst:153
+#: ../../build/doc/allpairs-family.rst:154
+#: ../../build/doc/allpairs-family.rst:154
+msgid "0.10"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "0.002"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "99"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "0.0251"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "4330"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "0.003"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "223"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "0.0122"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "18849"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+#: ../../build/doc/allpairs-family.rst:155
+msgid "0.12"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "0.004"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "358"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "0.0085"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "71834"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+#: ../../build/doc/allpairs-family.rst:156
+msgid "0.16"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.005"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "470"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.0070"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "116290"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.22"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.19"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.006"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "639"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.0055"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "207030"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.27"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.007"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "843"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.0043"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "346930"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.64"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.38"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.008"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "996"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.0037"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "469936"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.90"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.49"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "0.009"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "1146"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "0.0032"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "613135"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "1.26"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "0.62"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "0.010"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "1360"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "0.0027"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "849304"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "1.87"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "0.82"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "0.011"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "1573"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "0.0024"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "1147101"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "2.65"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "1.04"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "0.012"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "1789"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "0.0021"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "1483629"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "3.72"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "1.35"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "0.013"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "1975"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "0.0019"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "1846897"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "4.86"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "1.68"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "0.014"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "2281"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "0.0017"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "2438298"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "7.08"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "2.28"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "0.015"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "2588"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "0.0015"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "3156007"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "10.28"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "2.80"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "0.016"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "2958"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "0.0013"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "4090618"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "14.67"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "3.76"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "0.017"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "3247"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "0.0012"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "4868919"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "18.12"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "4.48"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:174
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:176
+msgid ":ref:`pgr_johnson`"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:177
+msgid ":ref:`pgr_floydWarshall`"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:178
+msgid ""
+"`Boost floyd-Warshall "
+"<http://www.boost.org/libs/graph/doc/floyd_warshall_shortest.html>`_ "
+"algorithm"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:181
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:182
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:183
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/bdAstar-family.po b/locale/ja/LC_MESSAGES/bdAstar-family.po
new file mode 100644
index 0000000..b2bd16b
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/bdAstar-family.po
@@ -0,0 +1,394 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Bidirectional A* - Family of functions"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid ":ref:`pgr_bdAstar` - Bidirectional A* algorithm for obtaining paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:18
+msgid ""
+":ref:`pgr_bdAstarCost` - Bidirectional A* algorithm to calculate the cost of"
+" the paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid ""
+":ref:`pgr_bdAstarCostMatrix` - Bidirectional A* algorithm to calculate a "
+"cost matrix of paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:35
+msgid ""
+"Based on A* algorithm, the bidirectional search finds a shortest path from a"
+" starting vertex (``start_vid``) to an ending vertex (``end_vid``). It runs "
+"two simultaneous searches: one forward from the ``start_vid``, and one "
+"backward from the ``end_vid``, stopping when the two meet in the middle. "
+"This implementation can be used with a directed graph and an undirected "
+"graph."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:42
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:44
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:46
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:47
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:49
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:51
+msgid "The `agg_cost` the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:53
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path:"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:55
+msgid "The `agg_cost` the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:57
+msgid "Running time (worse case scenario): :math:`O((E + V) * \\log V)`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:58
+msgid ""
+"For large graphs where there is a path bewtween the starting vertex and "
+"ending vertex:"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:60
+msgid "It is expected to terminate faster than pgr_astar"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:63
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:75
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:75
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:78 ../../build/doc/bdAstar-family.rst:80
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:72
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:75
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:77
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:77
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:77
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:78
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:78
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:79
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:79 ../../build/doc/bdAstar-family.rst:81
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:79
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:80
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:80
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:81
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:81
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:82
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:82
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:82
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:84
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:85
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:87
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:87
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:87
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:89
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:90
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:91
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:92
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:93
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:94
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:96
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:96 ../../build/doc/bdAstar-family.rst:97
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:96
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:97
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:97
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:103
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:106
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:107
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:108
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/bdDijkstra-family.po b/locale/ja/LC_MESSAGES/bdDijkstra-family.po
new file mode 100644
index 0000000..67de3fa
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/bdDijkstra-family.po
@@ -0,0 +1,112 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/bdDijkstra-family.rst:13
+msgid "Bidirectional Dijkstra - Family of functions"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:17
+msgid ""
+":ref:`pgr_bdDijkstra` - Bidirectional Dijkstra algorithm for the shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:18
+msgid ""
+":ref:`pgr_bdDijkstraCost` - Bidirectional Dijkstra to calculate the cost of "
+"the shortest paths"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:19
+msgid ""
+":ref:`pgr_bdDijkstraCostMatrix` - Bidirectional Dijkstra algorithm  to "
+"create a matrix of costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:35
+msgid ""
+"Based on Dijkstra's algorithm, the bidirectional search finds a shortest "
+"path a starting vertex (``start_vid``) to an ending vertex (``end_vid``). It"
+" runs two simultaneous searches: one forward from the source, and one "
+"backward from the target, stopping when the two meet in the middle. This "
+"implementation can be used with a directed graph and an undirected graph."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:42
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:44
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:46
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:47
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:49
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:51
+msgid "The `agg_cost` the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:53
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path:"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:55
+msgid "The `agg_cost` the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:57
+msgid "Running time (worse case scenario): :math:`O((V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:58
+msgid ""
+"For large graphs where there is a path bewtween the starting vertex and "
+"ending vertex:"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:60
+msgid "It is expected to terminate faster than pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:63
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:66
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:67
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:68
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/components-family.po b/locale/ja/LC_MESSAGES/components-family.po
new file mode 100644
index 0000000..dbca49a
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/components-family.po
@@ -0,0 +1,750 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/components-family.rst:13
+msgid "Components - Family of functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:22
+msgid ""
+":ref:`pgr_connectedComponents` - Return the connected components of an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:23
+msgid ""
+":ref:`pgr_strongComponents` - Return the strongly connected components of a "
+"directed graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid ""
+":ref:`pgr_biconnectedComponents` - Return the biconnected components of an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:25
+msgid ""
+":ref:`pgr_articulationPoints` - Return the articulation points of an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid ":ref:`pgr_bridges` - Return the bridges of an undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:42
+msgid "The problem definition"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:45
+msgid "Connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:46
+msgid ""
+"A connected component of an undirected graph is a set of vertices that are "
+"all reachable from each other."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:49
+#: ../../build/doc/components-family.rst:183
+#: ../../build/doc/components-family.rst:252
+#: ../../build/doc/components-family.rst:312
+msgid "**Notice**: This problem defines on an undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:51
+#: ../../build/doc/components-family.rst:117
+#: ../../build/doc/components-family.rst:185
+#: ../../build/doc/components-family.rst:254
+#: ../../build/doc/components-family.rst:314
+msgid "Given the following query:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:54
+msgid "pgr_connectedComponentsV(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:56
+#: ../../build/doc/components-family.rst:122
+#: ../../build/doc/components-family.rst:190
+#: ../../build/doc/components-family.rst:259
+#: ../../build/doc/components-family.rst:319
+msgid ""
+"where  :math:`sql = \\{(id_i, source_i, target_i, cost_i, "
+"reverse\\_cost_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:58
+#: ../../build/doc/components-family.rst:124
+#: ../../build/doc/components-family.rst:192
+#: ../../build/doc/components-family.rst:261
+#: ../../build/doc/components-family.rst:321
+msgid "and"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:60
+#: ../../build/doc/components-family.rst:126
+#: ../../build/doc/components-family.rst:194
+#: ../../build/doc/components-family.rst:263
+#: ../../build/doc/components-family.rst:323
+msgid ":math:`source = \\bigcup source_i`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:61
+#: ../../build/doc/components-family.rst:127
+#: ../../build/doc/components-family.rst:195
+#: ../../build/doc/components-family.rst:264
+#: ../../build/doc/components-family.rst:324
+msgid ":math:`target = \\bigcup target_i`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:63
+#: ../../build/doc/components-family.rst:129
+#: ../../build/doc/components-family.rst:197
+#: ../../build/doc/components-family.rst:266
+#: ../../build/doc/components-family.rst:326
+msgid "The graphs are defined as follows:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:65
+#: ../../build/doc/components-family.rst:199
+#: ../../build/doc/components-family.rst:268
+#: ../../build/doc/components-family.rst:328
+msgid "The weighted undirected graph, :math:`G(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:67
+#: ../../build/doc/components-family.rst:133
+#: ../../build/doc/components-family.rst:201
+#: ../../build/doc/components-family.rst:270
+#: ../../build/doc/components-family.rst:330
+msgid "the set of vertices  :math:`V`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:69
+#: ../../build/doc/components-family.rst:203
+#: ../../build/doc/components-family.rst:272
+#: ../../build/doc/components-family.rst:332
+msgid ":math:`V = source \\cup target`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:72
+#: ../../build/doc/components-family.rst:137
+#: ../../build/doc/components-family.rst:206
+#: ../../build/doc/components-family.rst:275
+#: ../../build/doc/components-family.rst:335
+msgid "the set of edges :math:`E`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:74
+#: ../../build/doc/components-family.rst:208
+#: ../../build/doc/components-family.rst:277
+#: ../../build/doc/components-family.rst:337
+msgid ""
+":math:`E = \\begin{cases} &\\{(source_i, target_i, cost_i) \\text{ when } "
+"cost >=0 \\} \\\\ \\cup &\\{(target_i, source_i, cost_i) \\text{ when } cost"
+" >=0 \\}  &\\quad  \\text{ if } reverse\\_cost = \\varnothing \\\\ \\\\ "
+"&\\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} \\\\ \\cup "
+"&\\{(target_i, source_i, cost_i) \\text{ when } cost >=0 \\} \\\\ \\cup "
+"&\\{(target_i, source_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i "
+">=0)\\} \\\\ \\cup &\\{(source_i, target_i, reverse\\_cost_i) \\text{ when }"
+" reverse\\_cost_i >=0)\\} &\\quad \\text{ if } reverse\\_cost \\neq "
+"\\varnothing \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:77
+#: ../../build/doc/components-family.rst:142
+#: ../../build/doc/components-family.rst:211
+#: ../../build/doc/components-family.rst:280
+#: ../../build/doc/components-family.rst:340
+msgid "Given:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:79
+#: ../../build/doc/components-family.rst:144
+#: ../../build/doc/components-family.rst:213
+#: ../../build/doc/components-family.rst:282
+#: ../../build/doc/components-family.rst:342
+msgid ":math:`G(V,E)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:81
+#: ../../build/doc/components-family.rst:146
+#: ../../build/doc/components-family.rst:215
+#: ../../build/doc/components-family.rst:284
+#: ../../build/doc/components-family.rst:344
+msgid "Then:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:89
+#: ../../build/doc/components-family.rst:154
+#: ../../build/doc/components-family.rst:223
+msgid ":math:`\\boldsymbol{\\pi} = \\{(component_i, n\\_seq_i, node_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:98
+#: ../../build/doc/components-family.rst:163
+#: ../../build/doc/components-family.rst:232
+#: ../../build/doc/components-family.rst:298
+#: ../../build/doc/components-family.rst:358
+msgid "where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:92
+msgid ":math:`component_i = \\min \\{node_j | node_j \\in component_i\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:93
+#: ../../build/doc/components-family.rst:158
+#: ../../build/doc/components-family.rst:227
+msgid ""
+":math:`n\\_seq_i` is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:94
+#: ../../build/doc/components-family.rst:159
+msgid ":math:`node_i \\in component_i`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:95
+#: ../../build/doc/components-family.rst:160
+#: ../../build/doc/components-family.rst:229
+#: ../../build/doc/components-family.rst:296
+#: ../../build/doc/components-family.rst:356
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:97
+#: ../../build/doc/components-family.rst:162
+#: ../../build/doc/components-family.rst:231
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:98
+#: ../../build/doc/components-family.rst:163
+#: ../../build/doc/components-family.rst:298
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:103
+#: ../../build/doc/components-family.rst:170
+#: ../../build/doc/components-family.rst:239
+#: ../../build/doc/components-family.rst:301
+#: ../../build/doc/components-family.rst:361
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:101
+msgid "The first component is composed of nodes ``0``, ``1`` and ``4``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:102
+msgid "The second component is composed of node ``3``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:103
+msgid "The third component is composed of nodes ``2`` and ``5``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:111
+msgid "Strongly connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:112
+msgid ""
+"A strongly connected component of a directed graph is a set of vertices that"
+" are all reachable from each other."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:115
+msgid "**Notice**: This problem defines on a directed graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:120
+msgid "pgr_strongComponentsV(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:131
+msgid "The weighted directed graph, :math:`G_d(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:135
+msgid ":math:`V = source \\cup target \\cup {start_{vid}} \\cup  {end_{vid}}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:139
+msgid ""
+":math:`E = \\begin{cases} &\\{(source_i, target_i, cost_i) \\text{ when } "
+"cost >=0 \\} &\\quad  \\text{ if } reverse\\_cost = \\varnothing \\\\ \\\\ "
+"&\\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} \\\\ \\cup "
+"&\\{(target_i, source_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i "
+">=0)\\} &\\quad \\text{ if } reverse\\_cost \\neq \\varnothing \\\\ "
+"\\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:157
+#: ../../build/doc/components-family.rst:226
+msgid ":math:`component_i = \\min {node_j | node_j \\in component_i}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:166
+msgid "The first component is composed of nodes ``1``, ``2`` and ``4``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:167
+msgid "The second component is composed of node ``0``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:168
+msgid "The third component is composed of node ``3``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:169
+msgid "The fourth component is composed of node ``5``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:170
+msgid "The fifth component is composed of node ``6``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:177
+msgid "Biconnected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:178
+msgid ""
+"The biconnected components of an undirected graph are the maximal subsets of"
+" vertices such that the removal of a vertex from particular component will "
+"not disconnect the component. Unlike connected components, vertices may "
+"belong to multiple biconnected components. Vertices can be present in "
+"multiple biconnected components, but each edge can only be contained in a "
+"single biconnected component. So, the output only has edge version."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:188
+msgid "pgr_biconnectedComponents(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:228
+msgid ":math:`edge_i \\in component_i`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:232
+#: ../../build/doc/components-family.rst:358
+msgid "`edge` ascending"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:235
+msgid ""
+"The first component is composed of edges ``1 - 2``, ``0 - 1`` and ``0 - 2``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:236
+msgid ""
+"The second component is composed of edges ``2 - 4``, ``2 - 3`` and ``3 - "
+"4``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:237
+msgid "The third component is composed of edge ``5 - 6``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:238
+msgid "The fourth component is composed of edge ``6 - 7``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:239
+msgid ""
+"The fifth component is composed of edges ``8 - 9``, ``9 - 10`` and ``8 - "
+"10``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:246
+msgid "Articulation Points"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:247
+msgid ""
+"Those vertices that belong to more than one biconnected component are called"
+" articulation points or, equivalently, cut vertices. Articulation points are"
+" vertices whose removal would increase the number of connected components in"
+" the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:257
+msgid "pgr_articulationPoints(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:292
+msgid ":math:`\\boldsymbol{\\pi} = \\{node_i\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:295
+msgid ":math:`node_i` is an articulation point."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:301
+msgid "Articulation points are nodes ``2`` and ``6``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:308
+msgid "Bridges"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:309
+msgid ""
+"A bridge is an edge of an undirected graph whose deletion increases its "
+"number of connected components."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:317
+msgid "pgr_bridges(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:352
+msgid ":math:`\\boldsymbol{\\pi} = \\{edge_i\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:355
+msgid ":math:`edge_i` is an edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:361
+msgid "Bridges are edges ``5 <--> 6`` and ``6 <--> 7``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:370
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:372
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:421
+#: ../../build/doc/components-family.rst:440
+#: ../../build/doc/components-family.rst:458
+#: ../../build/doc/components-family.rst:474
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:405
+#: ../../build/doc/components-family.rst:421
+#: ../../build/doc/components-family.rst:440
+#: ../../build/doc/components-family.rst:458
+#: ../../build/doc/components-family.rst:474
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:405
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:405
+#: ../../build/doc/components-family.rst:421
+#: ../../build/doc/components-family.rst:440
+#: ../../build/doc/components-family.rst:458
+#: ../../build/doc/components-family.rst:474
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:377
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:377
+#: ../../build/doc/components-family.rst:378
+#: ../../build/doc/components-family.rst:379
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:377
+#: ../../build/doc/components-family.rst:445
+#: ../../build/doc/components-family.rst:477
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:378
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:378
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:379
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:379
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:380
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:380
+#: ../../build/doc/components-family.rst:384
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:380
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:382
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:384
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:384
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:384
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:386
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:390
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:392
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:393
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:402
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:405
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:407
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:407
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:407
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:416
+msgid ""
+"Description of the return values for connected components and strongly "
+"connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:418
+msgid "Returns set of ``(seq, component, n_seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:423
+#: ../../build/doc/components-family.rst:442
+#: ../../build/doc/components-family.rst:460
+#: ../../build/doc/components-family.rst:476
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:423
+#: ../../build/doc/components-family.rst:425
+#: ../../build/doc/components-family.rst:442
+#: ../../build/doc/components-family.rst:444
+#: ../../build/doc/components-family.rst:460
+#: ../../build/doc/components-family.rst:476
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:423
+#: ../../build/doc/components-family.rst:442
+#: ../../build/doc/components-family.rst:460
+#: ../../build/doc/components-family.rst:476
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:424
+#: ../../build/doc/components-family.rst:443
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:424
+#: ../../build/doc/components-family.rst:426
+#: ../../build/doc/components-family.rst:443
+#: ../../build/doc/components-family.rst:445
+#: ../../build/doc/components-family.rst:461
+#: ../../build/doc/components-family.rst:477
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:424
+msgid ""
+"Component identifier. It is equal to the minimum node identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:425
+#: ../../build/doc/components-family.rst:444
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:425
+#: ../../build/doc/components-family.rst:444
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:426
+#: ../../build/doc/components-family.rst:461
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:426
+#: ../../build/doc/components-family.rst:461
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:435
+msgid ""
+"Description of the return values for biconnected components, connected "
+"components (edge version) and strongly connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:437
+msgid "Returns set of ``(seq, component, n_seq, edge)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:443
+msgid ""
+"Component identifier. It is equal to the minimum edge identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:445
+#: ../../build/doc/components-family.rst:477
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:453
+msgid "Description of the return values for articulation points"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:455
+#: ../../build/doc/components-family.rst:471
+msgid "Returns set of ``(seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:469
+msgid "Description of the return values for bridges"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:483
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:486
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:487
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:488
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/contraction-family.po b/locale/ja/LC_MESSAGES/contraction-family.po
new file mode 100644
index 0000000..182343c
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/contraction-family.po
@@ -0,0 +1,745 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/contraction-family.rst:14
+msgid "Contraction - Family of functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:21
+msgid ":ref:`pgr_contractGraph`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:29
+msgid "Introduction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:31
+msgid ""
+"In big graphs, like the road graphs, or electric networks, graph contraction"
+" can be used to speed up some graph algorithms. Contraction reduces the size"
+" of the graph by removing some of the vertices and edges and, for example, "
+"might add edges that represent a sequence of original edges decreasing the "
+"total time and space used in graph algorithms."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:33
+msgid ""
+"This implementation gives a flexible framework for adding contraction "
+"algorithms in the future, currently, it supports two algorithms:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:35
+#: ../../build/doc/contraction-family.rst:46
+msgid "Dead end contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:36
+#: ../../build/doc/contraction-family.rst:166
+msgid "Linear contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:38
+msgid "Allowing the user to:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:40
+msgid "Forbid contraction on a set of nodes."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:41
+msgid ""
+"Decide the order of the contraction algorithms and set the maximum number of"
+" times they are to be executed."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:43
+msgid "UNDER DISCUSSION:  Forbid contraction on a set of edges"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:47
+msgid "In the algorithm, dead end contraction is represented by 1."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:50
+msgid "Dead end nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:52
+msgid ""
+"The definition of a dead end node is different for a directed and an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:54
+msgid "In case of a undirected graph, a node is considered a dead end node if"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:56
+msgid "The number of adjacent vertices is 1."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:58
+msgid "In case of an directed graph, a node is considered a dead end node if"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:60
+msgid "There are no outgoing edges and has at least one incoming edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:61
+msgid "There is one incoming and one outgoing edge with the same identifier."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:64
+#: ../../build/doc/contraction-family.rst:178
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:65
+msgid "The green node ``B`` represents a dead end node"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:66
+msgid "The node ``A`` is the only node connecting to ``B``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:67
+#: ../../build/doc/contraction-family.rst:181
+msgid ""
+"Node ``A`` is part of the rest of the graph and has an unlimited number of "
+"incoming and outgoing edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:68
+#: ../../build/doc/contraction-family.rst:183
+msgid "Directed graph"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:86
+msgid "Operation: Dead End Contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:88
+msgid ""
+"The dead end contraction will stop until there are no more dead end nodes. "
+"For example from the following graph:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:91
+#: ../../build/doc/contraction-family.rst:208
+msgid ""
+"Node ``A`` is connected to the rest of the graph by an unlimited number of "
+"edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:92
+msgid ""
+"Node ``B`` is connected to the rest of the graph with one incoming edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:93
+msgid "Node ``B`` is the only node connecting to ``C``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:94
+msgid "The green node ``C`` represents a `Dead End` node"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:113
+msgid ""
+"After contracting ``C``, node ``B`` is now a `Dead End` node and is "
+"contracted:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:129
+msgid "Node ``B`` gets contracted"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:143
+msgid "Nodes ``B`` and ``C`` belong to node ``A``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:148
+msgid "Not Dead End nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:150
+msgid "In this graph ``B`` is not a `dead end` node."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:167
+msgid "In the algorithm, linear contraction is represented by 2."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:170
+msgid "Linear nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:172
+msgid "A node is considered a linear node if satisfies the following:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:174
+msgid "The number of adjacent vertices are 2."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:175
+msgid "Should have at least one incoming edge and one outgoing edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:179
+msgid "The green node ``B`` represents a linear node"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:180
+msgid "The nodes ``A`` and ``C`` are the only nodes connecting to ``B``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:182
+msgid ""
+"Node ``C`` is part of the rest of the graph and has an unlimited number of "
+"incoming and outgoing edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:203
+msgid "Operation: Linear Contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:205
+msgid ""
+"The linear contraction will stop until there are no more linear nodes. For "
+"example from the following graph:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:209
+msgid ""
+"Node ``B`` is connected to the rest of the graph with one incoming edge and "
+"one outgoing edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:210
+msgid ""
+"Node ``C`` is connected to the rest of the graph with one incoming edge and "
+"one outgoing edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:211
+msgid ""
+"Node ``D`` is connected to the rest of the graph by an unlimited number of "
+"edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:212
+msgid "The green nodes ``B`` and ``C`` represents `Linear` nodes."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:234
+msgid ""
+"After contracting ``B``, a new edge gets inserted between ``A`` and ``C`` "
+"which is represented by red color."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:254
+msgid "Node ``C`` is `linear node` and gets contracted."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:272
+msgid ""
+"Nodes ``B`` and ``C`` belong to edge connecting ``A`` and ``D`` which is "
+"represented by red color."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:275
+msgid "Not Linear nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:277
+msgid "In this graph ``B`` is not a `linear` node."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:298
+msgid "The cycle"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:300
+msgid ""
+"Contracting a graph, can be done with more than one operation. The order of "
+"the operations affect the resulting contracted graph, after applying one "
+"operation, the set of vertices that can be contracted by another operation "
+"changes."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:302
+msgid ""
+"This implementation, cycles ``max_cycles`` times through "
+"``operations_order`` ."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:315
+msgid "Contracting Sample Data"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:317
+msgid ""
+"In this section, building and using a contracted graph will be shown by "
+"example."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:319
+msgid "The :doc:`sampledata` for an undirected graph is used"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:320
+msgid "a dead end operation first followed by a linear operation."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:322
+msgid "The original graph:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:326
+msgid "After doing a dead end contraction operation:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:330
+msgid "Doing a linear contraction operation to the graph above"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:335
+msgid ""
+"There are five cases, in this documentation, which arise when calculating "
+"the shortest path between a given source and target. In this examples, "
+"``pgr_dijkstra`` is used."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:338
+msgid "**Case 1**: Both source and target belong to the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:339
+msgid ""
+"**Case 2**: Source belongs to a contracted graph, while target belongs to a "
+"edge subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:340
+msgid ""
+"**Case 3**: Source belongs to a vertex subgraph, while target belongs to an "
+"edge subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:341
+msgid ""
+"**Case 4**: Source belongs to a contracted graph, while target belongs to an"
+" vertex subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:342
+msgid ""
+"**Case 5**: The path contains a new edge added by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:345
+msgid "Construction of the graph in the database"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:348
+msgid "Original Data"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:349
+msgid ""
+"The following query shows the original data involved in the contraction "
+"operation."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:356
+msgid "Contraction Results"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:361
+msgid ""
+"The above results do not represent the contracted graph. They represent the "
+"changes done to the graph after applying the contraction algorithm. We can "
+"see that vertices like 6 and 11 do not appear in the contraction results "
+"because they were not affected by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:364
+msgid "step 1"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:365
+msgid ""
+"Adding extra columns to the ``edge_table`` and ``edge_table_vertices_pgr`` "
+"tables:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:368
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:368
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:370
+msgid "**contracted_vertices**"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:370
+msgid "The vertices set belonging to the vertex/edge"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:371
+#: ../../build/doc/contraction-family.rst:372
+msgid "**is_contracted**"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:371
+msgid ""
+"On a `vertex` table: when ``true`` the vertex is contracted, so is not part "
+"of the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:372
+msgid ""
+"On an `edge` table: when ``true`` the edge was generated by the contraction "
+"algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:375
+msgid "Using the following queries:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:382
+msgid "step 2"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:383
+msgid ""
+"For simplicity, in this documentation, store the results of the call to "
+"pgr_contractGraph in a temporary table"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:390
+msgid "step 3"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:391
+msgid ""
+"Update the `vertex` and `edge` tables using the results of the call to "
+"pgr_contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:393
+msgid ""
+"In `edge_table_vertices_pgr.is_contracted` indicate the vertices that are "
+"contracted."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:399
+msgid ""
+"Add to `edge_table_vertices_pgr.contracted_vertices`  the contracted "
+"vertices belonging to the vertices."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:405
+msgid "Insert the new edges generated by  pgr_contractGraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:412
+msgid "step 3.1"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:413
+msgid "Verify visually the updates."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:415
+msgid "On the `edge_table_vertices_pgr`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:421
+msgid "On the `edge_table`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:427
+msgid ""
+"vertices that belong to the contracted graph are the non contracted vertices"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:434
+msgid "case 1: Both source and target belong to the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:435
+msgid ""
+"Inspecting the contracted graph above, vertex 3 and vertex 11 are part of "
+"the contracted graph. In the following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:437
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:438
+#: ../../build/doc/contraction-family.rst:452
+#: ../../build/doc/contraction-family.rst:469
+#: ../../build/doc/contraction-family.rst:485
+#: ../../build/doc/contraction-family.rst:507
+msgid ""
+"when selecting the edges, only edges that have the source and the target in "
+"that set are the edges belonging to the contracted graph, that is done in "
+"the WHERE clause."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:440
+msgid ""
+"Visually, looking at the original graph, going from 3 to 11: 3 -> 6 -> 11, "
+"and in the contracted graph, it is also 3 -> 6 -> 11. The results, on the "
+"contracted graph match the results as if it was done on the original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:448
+msgid ""
+"case 2: Source belongs to the contracted graph, while target belongs to a "
+"edge subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:452
+msgid ""
+"Inspecting the contracted graph above, vertex 3 is part of the contracted "
+"graph and vertex 1 belongs to the contracted subgraph of edge 19. In the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:450
+msgid ""
+"expand1 holds the contracted vertices of the edge where vertex 1 belongs. "
+"(belongs to edge 19)."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:451
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph and "
+"also the contracted vertices of edge 19."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:454
+msgid ""
+"Visually, looking at the original graph, going from 3 to 1: 3 -> 2 -> 1, and"
+" in the contracted graph, it is also 3 -> 2 -> 1. The results, on the "
+"contracted graph match the results as if it was done on the original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:463
+msgid ""
+"case 3: Source belongs to a vertex subgraph, while target belongs to an edge"
+" subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:464
+msgid ""
+"Inspecting the contracted graph above, vertex 7 belongs to the contracted "
+"subgraph of vertex 5 and vertex 13 belongs to the contracted subgraph of "
+"edge 21. In the following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:466
+#: ../../build/doc/contraction-family.rst:483
+msgid ""
+"expand7 holds the contracted vertices of vertex where vertex 7 belongs. "
+"(belongs to vertex 5)"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:467
+msgid ""
+"expand13 holds the contracted vertices of edge where vertex 13 belongs. "
+"(belongs to edge 21)"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:468
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph, "
+"contracted vertices of vertex 5 and contracted vertices of edge 21."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:471
+msgid ""
+"Visually, looking at the original graph, going from 7 to 13: 7 -> 8 -> 5 -> "
+"10 -> 13, and in the contracted graph, it is also 7 -> 8 -> 5 -> 10 -> 13. "
+"The results, on the contracted graph match the results as if it was done on "
+"the original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:480
+msgid ""
+"case 4: Source belongs to the contracted graph, while target belongs to an "
+"vertex subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:481
+msgid ""
+"Inspecting the contracted graph above, vertex 3 is part of the contracted "
+"graph and vertex 7 belongs to the contracted subgraph of vertex 5. In the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:484
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph and "
+"the contracted vertices of vertex 5."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:487
+msgid ""
+"Visually, looking at the original graph, going from 3 to 7: 3 -> 2 -> 5 -> 8"
+" -> 7, but in the contracted graph, it is 3 -> 5 -> 8 -> 7. The results, on "
+"the contracted graph do not match the results as if it was done on the "
+"original graph. This is because the path contains edge 19 which is added by "
+"the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:495
+msgid "case 5: The path contains an edge added by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:496
+msgid ""
+"In the previous example we can see that the path from vertex 3 to vertex 7 "
+"contains an edge which is added by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:502
+msgid ""
+"Inspecting the contracted graph above, edge 19 should be expanded. In the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:504
+msgid "first_dijkstra holds the results of the dijkstra query."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:505
+msgid ""
+"edges_to_expand holds the edges added by the contraction algorithm and "
+"included in the path."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:506
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph, "
+"vertices of the contracted solution and the contracted vertices of the edges"
+" added by the contraction algorithm and included in the contracted solution."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:509
+msgid ""
+"Visually, looking at the original graph, going from 3 to 7: 3 -> 2 -> 5 -> 8"
+" -> 7, and in the contracted graph, it is also 3 -> 2 -> 5 -> 8 -> 7. The "
+"results, on the contracted graph match the results as if it was done on the "
+"original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:517
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:519
+msgid ""
+"http://www.cs.cmu.edu/afs/cs/academic/class/15210-f12/www/lectures/lecture16.pdf"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:520
+msgid "http://algo2.iti.kit.edu/documents/routeplanning/geisberger_dipl.pdf"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:521
+msgid ""
+"The queries use :ref:`pgr_contractGraph` function and the :doc:`sampledata` "
+"network."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:524
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:525
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:526
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/cost-category.po b/locale/ja/LC_MESSAGES/cost-category.po
new file mode 100644
index 0000000..efea606
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/cost-category.po
@@ -0,0 +1,178 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/cost-category.rst:13
+msgid "Cost - Category"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:17
+msgid ":ref:`pgr_aStarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:18
+msgid ":ref:`pgr_bdAstarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:19
+msgid ":ref:`pgr_bdDijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:20
+msgid ":ref:`pgr_dijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:21
+msgid ":ref:`pgr_withPointsCost`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:30
+msgid "General Information"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:34
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:36
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:38
+msgid "Each function works as part of the family it belongs to."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:39
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:40
+msgid ""
+"Returns the sum of the costs of the resulting path(s) for pair combination "
+"of nodes in the graph."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:41
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:42
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:44
+msgid ""
+"The returned values are in the form of a set of `(start_vid, end_vid, "
+"agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:46
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:48
+msgid "The `agg_cost` int the non included values `(v, v)` is `0`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:50
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:52
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:54
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:56
+msgid ""
+"Depending on the function and its parameters, the results can be symmetric."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:58
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:60
+msgid "Any duplicated value in the `start_vids` or in `end_vids` are ignored."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:62
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:64
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:65
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:70
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:73
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:74
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:75
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/costMatrix-category.po b/locale/ja/LC_MESSAGES/costMatrix-category.po
new file mode 100644
index 0000000..ad36b5e
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/costMatrix-category.po
@@ -0,0 +1,237 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/costMatrix-category.rst:13
+msgid "Cost Matrix - Category"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:17
+msgid ":ref:`pgr_aStarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:18
+msgid ":ref:`pgr_bdAstarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:19
+msgid ":ref:`pgr_bdDijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:20
+msgid ":ref:`pgr_dijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:21
+msgid ":ref:`pgr_withPointsCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:40
+msgid "General Information"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:43
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:45
+msgid ""
+":ref:`tsp` needs as input a symmetric cost matrix and no edge `(u, v)` must "
+"value :math:`\\infty`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:47
+msgid ""
+"This collection of functions will return a cost matrix in form of a table."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:51
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:53
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:55
+msgid "Can be used as input to :ref:`pgr_tsp`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:57
+msgid ""
+"when the resulting matrix is symmetric and there is no :math:`\\infty` "
+"value."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:58
+msgid "It will be the users responsibility to make the matrix symmetric."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:60
+msgid "By using geometric or harmonic average of the non symmetric values."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:61
+msgid "By using max or min the non symmetric values."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:62
+msgid ""
+"By setting the upper triangle to be the mirror image of the lower triangle."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:63
+msgid ""
+"By setting the lower triangle to be the mirror image of the upper triangle."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:65
+msgid "It is also the users responsibility to fix an :math:`\\infty` value."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:67
+msgid "Each function works as part of the family it belongs to."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:68
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:69
+msgid ""
+"Returns the sum of the costs of the shortest path for pair combination of "
+"nodes in the graph."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:70
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:71
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:73
+msgid ""
+"The returned values are in the form of a set of `(start_vid, end_vid, "
+"agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:75
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:77
+msgid "The `agg_cost` int the non included values `(v, v)` is `0`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:79
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:81
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:83
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:85
+msgid ""
+"Depending on the function and its parameters, the results can be symmetric."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:87
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:89
+msgid "Any duplicated value in the `start_vids` are ignored."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:91
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:93
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:94
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:96
+msgid "Running time: approximately :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:101
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:103
+msgid ":ref:`pgr_tsp`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:106
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:107
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:108
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/cost_result.po b/locale/ja/LC_MESSAGES/cost_result.po
new file mode 100644
index 0000000..cfc1232
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/cost_result.po
@@ -0,0 +1,92 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/cost_result.rst:13
+msgid "pgr_costResult[]"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:19 ../../build/doc/cost_result.rst:52
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:21
+msgid ""
+"``pgr_costResult[]`` — A set of records to describe a path result with cost "
+"attribute."
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:25 ../../build/doc/cost_result.rst:58
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:37 ../../build/doc/cost_result.rst:71
+msgid "sequential ID indicating the path order"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:38 ../../build/doc/cost_result.rst:73
+msgid "generic name, to be specified by the function, typically the node id"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:39 ../../build/doc/cost_result.rst:74
+msgid "generic name, to be specified by the function, typically the edge id"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:40 ../../build/doc/cost_result.rst:75
+msgid "cost attribute"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:46
+msgid "pgr_costResult3[] - Multiple Path Results with Cost"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:54
+msgid ""
+"``pgr_costResult3[]`` — A set of records to describe a path result with cost"
+" attribute."
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:72
+msgid "generic name, to be specified by the function, typically the path id"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:79
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:80
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:81
+msgid "Replaces ``path_result``"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:85
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:87
+msgid ":ref:`introduction`"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:90
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:91
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:92
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/dijkstra-family.po b/locale/ja/LC_MESSAGES/dijkstra-family.po
new file mode 100644
index 0000000..a9fa495
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/dijkstra-family.po
@@ -0,0 +1,262 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/dijkstra-family.rst:13
+msgid "Dijkstra - Family of functions"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:17
+msgid ":ref:`pgr_dijkstra` - Dijkstra's algorithm for the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:18
+msgid ""
+":ref:`pgr_dijkstraCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:19
+msgid ""
+":ref:`pgr_dijkstraCostMatrix` - Use pgr_dijkstra to create a costs matrix."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:20
+msgid ""
+":ref:`pgr_drivingDistance` - Use pgr_dijkstra to calculate catchament "
+"information."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:21
+msgid ""
+":ref:`pgr_ksp` - Use Yen algorithm with pgr_dijkstra to get the K shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:22
+msgid ":ref:`pgr_dijkstraVia` - Get a route of a seuence of vertices."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:39
+msgid "The problem definition (Advanced documentation)"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:42
+msgid "Given the following query:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:45
+msgid "pgr_dijkstra(:math:`sql, start_{vid}, end_{vid}, directed`)"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:47
+msgid ""
+"where  :math:`sql = \\{(id_i, source_i, target_i, cost_i, "
+"reverse\\_cost_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:49
+msgid "and"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:51
+msgid ":math:`source = \\bigcup source_i`,"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:52
+msgid ":math:`target = \\bigcup target_i`,"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:54
+msgid "The graphs are defined as follows:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:57
+msgid "Directed graph"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:58
+msgid "The weighted directed graph, :math:`G_d(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:60
+#: ../../build/doc/dijkstra-family.rst:79
+msgid "the set of vertices  :math:`V`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:62
+msgid ":math:`V = source \\cup target \\cup {start_{vid}} \\cup  {end_{vid}}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:64
+#: ../../build/doc/dijkstra-family.rst:84
+msgid "the set of edges :math:`E`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:66
+msgid ""
+":math:`E = \\begin{cases} \\text{ }  \\{(source_i, target_i, cost_i) \\text{"
+" when } cost >=0 \\} & \\quad \\text{if } reverse\\_cost = \\varnothing \\\\"
+" \\text{ }  \\text{ }  & \\quad \\text{ } \\\\ \\text{ }  \\{(source_i, "
+"target_i, cost_i) \\text{ when } cost >=0 \\} &  \\quad \\text{ } \\\\ \\cup"
+"      \\{(target_i, source_i, reverse\\_cost_i) \\text{ when } "
+"reverse\\_cost_i>=0 \\} & \\quad \\text{if } reverse\\_cost \\neq "
+"\\varnothing \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:76
+msgid "Undirected graph"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:77
+msgid "The weighted undirected graph, :math:`G_u(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:81
+msgid ":math:`V = source \\cup target \\cup {start_v{vid}} \\cup  {end_{vid}}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:86
+msgid ""
+":math:`E = \\begin{cases} \\text{ }  \\{(source_i, target_i, cost_i) \\text{"
+" when } cost >=0 \\}  & \\quad \\text{ } \\\\ \\cup      \\{(target_i, "
+"source_i, cost_i) \\text{ when } cost >=0 \\}  & \\quad \\text{ if } "
+"reverse\\_cost = \\varnothing \\\\ \\text{ }  \\text{ }  & \\text{ } \\\\ "
+"\\text{ }  \\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & "
+"\\text{ } \\\\ \\cup  \\{(target_i, source_i, cost_i) \\text{ when } cost "
+">=0 \\} & \\text{ } \\\\ \\cup  \\{(target_i, source_i, reverse\\_cost_i) "
+"\\text{ when } reverse\\_cost_i >=0)\\} & \\text{ } \\\\ \\cup  "
+"\\{(source_i, target_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i "
+">=0)\\} & \\quad \\text{ if } reverse\\_cost \\neq \\varnothing \\\\ "
+"\\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:99
+msgid "The problem"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:100
+msgid "Given:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:102
+msgid ":math:`start_{vid} \\in V` a starting vertex"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:103
+msgid ":math:`end_{vid} \\in V` an ending vertex"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:104
+msgid ""
+":math:`G(V,E) = \\begin{cases} G_d(V,E) & \\quad \\text{ if6 } directed = "
+"true \\\\ G_u(V,E) & \\quad \\text{ if5 } directed = false \\\\ "
+"\\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:109
+msgid "Then:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:118
+msgid ""
+":math:`\\boldsymbol{\\pi} = \\{(path\\_seq_i, node_i, edge_i, cost_i, "
+"agg\\_cost_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:131
+msgid "where:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:121
+msgid ":math:`path\\_seq_i = i`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:122
+msgid ":math:`path\\_seq_{| \\pi |} = | \\pi |`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:123
+msgid ":math:`node_i \\in V`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:124
+msgid ":math:`node_1 = start_{vid}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:125
+msgid ":math:`node_{| \\pi |}  = end_{vid}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:126
+msgid ":math:`\\forall i \\neq | \\pi |, \\quad (node_i, node_{i+1}, cost_i) \\in E`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:127
+msgid ""
+":math:`edge_i  = \\begin{cases}  id_{(node_i, node_{i+1},cost_i)}  &\\quad  "
+"\\text{when } i \\neq | \\pi | \\\\ -1 &\\quad  \\text{when } i = | \\pi | "
+"\\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:128
+msgid ":math:`cost_i = cost_{(node_i, node_{i+1})}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:129
+msgid ""
+":math:`agg\\_cost_i  = \\begin{cases}  0   &\\quad  \\text{when } i = 1  "
+"\\\\ \\displaystyle\\sum_{k=1}^{i}  cost_{(node_{k-1}, node_k)}  &\\quad  "
+"\\text{when } i \\neq 1 \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:137
+msgid ""
+"In other words: The algorithm returns a the shortest path between "
+":math:`start_{vid}` and :math:`end_{vid}` , if it exists, in terms of a "
+"sequence of nodes  and of edges,"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:134
+msgid ""
+":math:`path\\_seq` indicates the relative position in the path of the "
+":math:`node` or :math:`edge`."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:135
+msgid ""
+":math:`cost` is the cost of the edge to be used to go to the next node."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:136
+msgid ""
+":math:`agg\\_cost` is the cost from the :math:`start_{vid}` up to the node."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:139
+msgid "If there is no path, the resulting set is empty."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:143
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:146
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:147
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:148
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/drivingDistance-category.po b/locale/ja/LC_MESSAGES/drivingDistance-category.po
new file mode 100644
index 0000000..a71b4c7
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/drivingDistance-category.po
@@ -0,0 +1,52 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/drivingDistance-category.rst:14
+msgid "Driving Distance - Category"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:18
+msgid ":ref:`pgr_drivingDistance` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:19
+msgid ":ref:`pgr_withPointsDD` - Driving Distance based on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:20
+msgid "Post pocessing"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:22
+msgid ":ref:`pgr_alphaShape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:23
+msgid ":ref:`pgr_points_as_polygon` - Polygon around a set of points"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:36
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:39
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:40
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:41
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/flow-family.po b/locale/ja/LC_MESSAGES/flow-family.po
new file mode 100644
index 0000000..a000199
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/flow-family.po
@@ -0,0 +1,331 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Flow - Family of functions"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid ""
+":ref:`pgr_maxFlow` - Only the Max flow calculation using Push and Relabel "
+"algorithm."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid ""
+":ref:`pgr_BoykovKolmogorov` - Boykov and Kolmogorov with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:19
+msgid ""
+":ref:`pgr_EdmondsKarp` - Edmonds and Karp algorithm with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid ""
+":ref:`pgr_PushRelabel` - Push and relabel algorithm with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "Applications"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:23
+msgid ""
+":ref:`pgr_edgeDisjointPaths` - Calculates edge disjoint paths between two "
+"groups of vertices."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:24
+msgid ""
+":ref:`pgr_maxCardinalityMatch` - Calculates a maximum cardinality matching "
+"in a graph."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:45
+msgid "Flow Functions General Information"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:51
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:52
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:53
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:54
+msgid ""
+"When the maximum flow is 0 then there is no flow and **EMPTY SET** is "
+"returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:56
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:58
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:59
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:61
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:63
+msgid ""
+"Creates a **super source** and edges to all the source(s), and a **super "
+"target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:64
+msgid ""
+"The maximum flow through the graph is guaranteed to be the value returned by"
+" :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and"
+" can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:66
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:67
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:72
+msgid ""
+":ref:`pgr_maxFlow <pgr_maxFlow>`  is the  maximum Flow and that maximum is "
+"guaranteed to be the same on the functions :ref:`pgr_pushRelabel "
+"<pgr_pushRelabel>`, :ref:`pgr_edmondsKarp <pgr_edmondsKarp>`, "
+":ref:`pgr_boykovKolmogorov <pgr_boykovKolmogorov>`, but the actual flow "
+"through each edge may vary."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:77
+msgid "Problem definition"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:79
+msgid ""
+"A flow network is a directed graph where each edge has a capacity and a "
+"flow. The flow through an edge must not exceed the capacity of the edge. "
+"Additionally, the incoming and outgoing flow of a node must be equal except "
+"the for source which only has outgoing flow, and the destination(sink) which"
+" only has incoming flow."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:83
+msgid ""
+"Maximum flow algorithms calculate the maximum flow through the graph and the"
+" flow of each edge."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:85
+msgid ""
+"The maximum flow through the graph is guaranteed to be the same with all "
+"implementations, but the actual flow through each edge may vary. Given the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:89
+msgid "pgr_maxFlow :math:`(edges\\_sql, source\\_vertex, sink\\_vertex)`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:91
+msgid ""
+"where :math:`edges\\_sql = \\{(id_i, source_i, target_i, capacity_i, "
+"reverse\\_capacity_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:94
+msgid "Graph definition"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:95
+msgid "The weighted directed graph, :math:`G(V,E)`, is defined as:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:97
+msgid "the set of vertices  :math:`V`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:99
+msgid ""
+":math:`source\\_vertex  \\cup  sink\\_vertex  \\bigcup  source_i  \\bigcup  "
+"target_i`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:101
+msgid "the set of edges :math:`E`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:103
+msgid ""
+":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, capacity_i) "
+"\\text{ when } capacity > 0 \\} & \\quad  \\text{ if } reverse\\_capacity = "
+"\\varnothing \\\\ \\text{ } & \\quad \\text{ } \\\\ \\{(source_i, target_i, "
+"capacity_i) \\text{ when } capacity > 0 \\} & \\text{ } \\\\ \\cup "
+"\\{(target_i, source_i, reverse\\_capacity_i) \\text{ when } "
+"reverse\\_capacity_i > 0)\\} & \\quad \\text{ if } reverse\\_capacity \\neq "
+"\\varnothing \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:111
+msgid "Maximum flow problem"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:112
+msgid "Given:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:115
+msgid ":math:`G(V,E)`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:116
+msgid ":math:`source\\_vertex \\in V` the source vertex"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:117
+msgid ":math:`sink\\_vertex \\in V` the sink vertex"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:119
+msgid "Then:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:121
+msgid ":math:`pgr\\_maxFlow(edges\\_sql, source, sink) = \\boldsymbol{\\Phi}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:123
+msgid ""
+":math:`\\boldsymbol{\\Phi} = {(id_i, edge\\_id_i, source_i, target_i, "
+"flow_i, residual\\_capacity_i)}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:125
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:127
+msgid ""
+":math:`\\boldsymbol{\\Phi}` is a subset of the original edges with their "
+"residual capacity and flow. The maximum flow through the graph can be "
+"obtained by aggregating on the source or sink and summing the flow from/to "
+"it. In particular:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:129
+msgid ":math:`id_i = i`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:130
+msgid ":math:`edge\\_id = id_i` in edges_sql"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:131
+msgid ":math:`residual\\_capacity_i = capacity_i - flow_i`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:135
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:137
+msgid "https://en.wikipedia.org/wiki/Maximum_flow_problem"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:140
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:141
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:142
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/geom_result.po b/locale/ja/LC_MESSAGES/geom_result.po
new file mode 100644
index 0000000..e2d89a1
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/geom_result.po
@@ -0,0 +1,74 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/geom_result.rst:13
+msgid "pgr_geomResult[]"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:21
+msgid ""
+"``pgr_geomResult[]`` — A set of records to describe a path result with "
+"geometry attribute."
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:25
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:37
+msgid "sequential ID indicating the path order"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:38 ../../build/doc/geom_result.rst:39
+msgid "generic name, to be specified by the function"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:40
+msgid "geometry attribute"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:44
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:45
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:46
+msgid "Replaces ``geoms``"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:50
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:52
+msgid ":ref:`introduction`"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:56
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:57
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:58
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/index.po b/locale/ja/LC_MESSAGES/index.po
new file mode 100644
index 0000000..44ac3e4
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/index.po
@@ -0,0 +1,306 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/index.rst:14
+msgid "Table of Contents"
+msgstr ""
+
+#: ../../build/doc/index.rst:16
+msgid ""
+"pgRouting extends the `PostGIS <http://postgis.net>`_/`PostgreSQL "
+"<http://postgresql.org>`_ geospatial database to provide geospatial routing "
+"and other network analysis functionality."
+msgstr ""
+
+#: ../../build/doc/index.rst:18
+msgid "This is the manual for pgRouting |release|."
+msgstr ""
+
+#: ../../build/doc/index.rst:24
+msgid ""
+"The pgRouting Manual is licensed under a `Creative Commons Attribution-Share"
+" Alike 3.0 License <http://creativecommons.org/licenses/by-sa/3.0/>`_. Feel "
+"free to use this material any way you like, but we ask that you attribute "
+"credit to the pgRouting Project and wherever possible, a link back to "
+"http://pgrouting.org. For other licenses used in pgRouting see the "
+":ref:`license` page."
+msgstr ""
+
+#: ../../build/doc/index.rst:27
+msgid "General"
+msgstr ""
+
+#: ../../build/doc/index.rst:37
+msgid ":doc:`sampledata` that is used in the examples of this manual."
+msgstr ""
+
+#: ../../build/doc/index.rst:45
+msgid "Pgrouting Concepts"
+msgstr ""
+
+#: ../../build/doc/index.rst:54
+msgid "Reference"
+msgstr ""
+
+#: ../../build/doc/index.rst:55
+msgid ":ref:`pgr_version` - to get pgRouting's version information."
+msgstr ""
+
+#: ../../build/doc/index.rst:64
+msgid ":ref:`Data Types <data_types>`"
+msgstr ""
+
+#: ../../build/doc/index.rst:67
+msgid ""
+":ref:`type_cost_result` -  A set of records to describe a path result with "
+"cost attribute."
+msgstr ""
+
+#: ../../build/doc/index.rst:68
+msgid ""
+":ref:`pgr_costResult3[]<type_cost_result3>` - A set of records to describe a"
+" path result with cost attribute."
+msgstr ""
+
+#: ../../build/doc/index.rst:69
+msgid ""
+":ref:`pgr_geomResult<type_geom_result>` - A set of records to describe a "
+"path result with geometry attribute."
+msgstr ""
+
+#: ../../build/doc/index.rst:78
+msgid ":ref:`Topology Functions <topology_functions>`"
+msgstr ""
+
+#: ../../build/doc/index.rst:80
+msgid ""
+":ref:`pgr_create_topology` -  to create a topology based on the geometry."
+msgstr ""
+
+#: ../../build/doc/index.rst:81
+msgid ""
+":ref:`pgr_create_vert_table` - to reconstruct the vertices table based on "
+"the source and target information."
+msgstr ""
+
+#: ../../build/doc/index.rst:82
+msgid ""
+":ref:`pgr_analyze_graph`  - to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/index.rst:83
+msgid ":ref:`pgr_analyze_oneway` - to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/index.rst:84
+msgid ":ref:`pgr_node_network`  -to create nodes to a not noded edge table."
+msgstr ""
+
+#: ../../build/doc/index.rst:93
+msgid ":ref:`Routing functions <routing_functions>`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:4
+msgid ":ref:`all_pairs`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:6
+msgid ":ref:`pgr_floydWarshall` - Floyd-Warshall's Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:7
+msgid ":ref:`pgr_johnson`- Johnson’s Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:9
+msgid ":ref:`pgr_astar` - Shortest Path A*"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:11
+msgid ":ref:`pgr_bdAstar` - Bi-directional A* Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:13
+msgid ":ref:`pgr_bdDijkstra` - Bi-directional Dijkstra Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:16
+msgid ":ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:3
+msgid ":ref:`pgr_dijkstra` - Dijkstra's algorithm for the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:4
+msgid ""
+":ref:`pgr_dijkstraCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:5
+msgid ""
+":ref:`pgr_dijkstraCostMatrix` - Use pgr_dijkstra to create a costs matrix."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:6
+msgid ""
+":ref:`pgr_drivingDistance` - Use pgr_dijkstra to calculate catchament "
+"information."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:7
+msgid ""
+":ref:`pgr_ksp` - Use Yen algorithm with pgr_dijkstra to get the K shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:8
+msgid ":ref:`pgr_dijkstraVia` - Get a route of a seuence of vertices."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:22
+msgid ":ref:`pgr_ksp` - K-Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:24
+msgid ":ref:`pgr_trsp<trsp>` - Turn Restriction Shortest Path (TRSP)"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:26
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:3
+msgid ":ref:`pgr_TSP` - When input is given as matrix cell information."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:4
+msgid ":ref:`pgr_eucledianTSP` - When input are coordinates."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:32
+msgid ":ref:`drivingDistance`"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:3
+msgid ":ref:`pgr_drivingDistance` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:4
+msgid ":ref:`pgr_withPointsDD` - Driving Distance based on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:5
+msgid "Post pocessing"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:7
+msgid ":ref:`pgr_alphaShape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:8
+msgid ":ref:`pgr_points_as_polygon` - Polygon around a set of points"
+msgstr ""
+
+#: ../../build/doc/index.rst:108
+msgid "Available Functions but not official pgRouting functions"
+msgstr ""
+
+#: ../../build/doc/index.rst:110
+msgid ":ref:`Stable`"
+msgstr ""
+
+#: ../../build/doc/index.rst:111
+msgid ":ref:`proposed`"
+msgstr ""
+
+#: ../../build/doc/index.rst:121
+msgid ":ref:`Change Log <change_log>`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:3
+msgid ":ref:`changelog_2_5_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:4
+msgid ":ref:`changelog_2_4_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:5
+msgid ":ref:`changelog_2_4_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:6
+msgid ":ref:`changelog_2_4_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:7
+msgid ":ref:`changelog_2_3_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:8
+msgid ":ref:`changelog_2_3_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:9
+msgid ":ref:`changelog_2_3_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:10
+msgid ":ref:`changelog_2_2_4`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:11
+msgid ":ref:`changelog_2_2_3`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:12
+msgid ":ref:`changelog_2_2_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:13
+msgid ":ref:`changelog_2_2_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:14
+msgid ":ref:`changelog_2_2_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:15
+msgid ":ref:`changelog_2_1_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:16
+msgid ":ref:`changelog_2_0_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:17
+msgid ":ref:`changelog_2_0_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:18
+msgid ":ref:`changelog_1_x`"
+msgstr ""
+
+#: ../../build/doc/index.rst:135
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/index.rst:136
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/index.rst:137
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgRouting-concepts.po b/locale/ja/LC_MESSAGES/pgRouting-concepts.po
new file mode 100644
index 0000000..34885ba
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgRouting-concepts.po
@@ -0,0 +1,1071 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "pgRouting Concepts"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:0
+msgid "Contents"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "Getting Started"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid ""
+"This is a simple guide to walk you through the steps of getting started with"
+" pgRouting. In this guide we will cover:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:32
+msgid "Create a routing Database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:34
+msgid ""
+"The first thing we need to do is create a database and load pgrouting in the"
+" database. Typically you will create a database for each project. Once you "
+"have a database to work in, your can load your data and build your "
+"application in that database. This makes it easy to move your project later "
+"if you want to to say a production server."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:40
+msgid "For Postgresql 9.2 and later versions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:51
+msgid "Load Data"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:53
+msgid ""
+"How you load your data will depend in what form it comes it. There are "
+"various OpenSource tools that can help you, like:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:56
+msgid ""
+"this is a tool for loading OSM data into postgresql with pgRouting "
+"requirements"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:57
+msgid "this is the postgresql shapefile loader"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:58
+msgid "this is a vector data conversion utility"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:59
+msgid "this is a tool for loading OSM data into postgresql"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:61
+msgid ""
+"So these tools and probably others will allow you to read vector data so "
+"that you may then load that data into your database as a table of some kind."
+" At this point you need to know a little about your data structure and "
+"content. One easy way to browse your new data table is with pgAdmin3 or "
+"phpPgAdmin."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:69
+msgid "Build a Routing Topology"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:71
+msgid ""
+"Next we need to build a topology for our street data. What this means is "
+"that for any given edge in your street data the ends of that edge will be "
+"connected to a unique node and to other edges that are also connected to "
+"that same unique node. Once all the edges are connected to nodes we have a "
+"graph that can be used for routing with pgrouting. We provide a tool that "
+"will help with this:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:77
+msgid "this step is not needed if data is loaded with `osm2pgrouting`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:83
+msgid ":ref:`pgr_create_topology`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:88
+msgid "Check the Routing Topology"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:90
+msgid ""
+"There are lots of possible sources for errors in a graph. The data that you "
+"started with may not have been designed with routing in mind. A graph has "
+"some very specific requirements. One is that it is *NODED*, this means that "
+"except for some very specific use cases, each road segment starts and ends "
+"at a node and that in general is does not cross another road segment that it"
+" should be connected to."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:97
+msgid ""
+"There can be other errors like the direction of a one-way street being "
+"entered in the wrong direction. We do not have tools to search for all "
+"possible errors but we have some basic tools that might help."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:109
+msgid ":ref:`pgr_analyze_graph`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:110
+msgid ":ref:`pgr_analyze_oneway`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:111
+msgid ":ref:`pgr_node_network`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:117
+msgid "Compute a Path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:119
+msgid ""
+"Once you have all the preparation work done above, computing a route is "
+"fairly easy. We have a lot of different algorithms that can work with your "
+"prepared road network. The general form of a route query is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:127
+msgid ""
+"As you can see this is fairly straight forward and you can look and the "
+"specific algorithms for the details of the signatures and how to use them. "
+"These results have information like edge id and/or the node id along with "
+"the cost or geometry for the step in the path from *start* to *end*. Using "
+"the ids you can join these result back to your edge table to get more "
+"information about each step in the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:134
+msgid ":ref:`pgr_dijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:141
+msgid "Inner Queries"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:146
+msgid ""
+"There are several kinds of valid inner queries and also the columns returned"
+" are depending of the function. Which kind of inner query will depend on the"
+" function(s) requirements. To simplify variety of types, ``ANY-INTEGER`` and"
+" ``ANY-NUMERICAL`` is used."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:152
+#: ../../build/doc/pgRouting-concepts.rst:182
+#: ../../build/doc/pgRouting-concepts.rst:212
+#: ../../build/doc/pgRouting-concepts.rst:269
+#: ../../build/doc/pgRouting-concepts.rst:300
+#: ../../build/doc/pgRouting-concepts.rst:334
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:154
+#: ../../build/doc/pgRouting-concepts.rst:184
+#: ../../build/doc/pgRouting-concepts.rst:214
+#: ../../build/doc/pgRouting-concepts.rst:271
+#: ../../build/doc/pgRouting-concepts.rst:302
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:155
+#: ../../build/doc/pgRouting-concepts.rst:185
+#: ../../build/doc/pgRouting-concepts.rst:215
+#: ../../build/doc/pgRouting-concepts.rst:272
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:162
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:164
+#: ../../build/doc/pgRouting-concepts.rst:195
+#: ../../build/doc/pgRouting-concepts.rst:247
+#: ../../build/doc/pgRouting-concepts.rst:282
+#: ../../build/doc/pgRouting-concepts.rst:314
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+#: ../../build/doc/pgRouting-concepts.rst:317
+#: ../../build/doc/pgRouting-concepts.rst:360
+#: ../../build/doc/pgRouting-concepts.rst:383
+#: ../../build/doc/pgRouting-concepts.rst:400
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:227
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+#: ../../build/doc/pgRouting-concepts.rst:317
+#: ../../build/doc/pgRouting-concepts.rst:360
+#: ../../build/doc/pgRouting-concepts.rst:383
+#: ../../build/doc/pgRouting-concepts.rst:400
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:227
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:227
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+#: ../../build/doc/pgRouting-concepts.rst:317
+#: ../../build/doc/pgRouting-concepts.rst:360
+#: ../../build/doc/pgRouting-concepts.rst:383
+#: ../../build/doc/pgRouting-concepts.rst:400
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:169
+#: ../../build/doc/pgRouting-concepts.rst:252
+#: ../../build/doc/pgRouting-concepts.rst:287
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:169
+#: ../../build/doc/pgRouting-concepts.rst:170
+#: ../../build/doc/pgRouting-concepts.rst:171
+#: ../../build/doc/pgRouting-concepts.rst:200
+#: ../../build/doc/pgRouting-concepts.rst:201
+#: ../../build/doc/pgRouting-concepts.rst:252
+#: ../../build/doc/pgRouting-concepts.rst:253
+#: ../../build/doc/pgRouting-concepts.rst:254
+#: ../../build/doc/pgRouting-concepts.rst:287
+#: ../../build/doc/pgRouting-concepts.rst:288
+#: ../../build/doc/pgRouting-concepts.rst:289
+#: ../../build/doc/pgRouting-concepts.rst:290
+#: ../../build/doc/pgRouting-concepts.rst:294
+#: ../../build/doc/pgRouting-concepts.rst:319
+#: ../../build/doc/pgRouting-concepts.rst:324
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:169
+#: ../../build/doc/pgRouting-concepts.rst:252
+#: ../../build/doc/pgRouting-concepts.rst:287
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:170
+#: ../../build/doc/pgRouting-concepts.rst:200
+#: ../../build/doc/pgRouting-concepts.rst:253
+#: ../../build/doc/pgRouting-concepts.rst:288
+#: ../../build/doc/pgRouting-concepts.rst:404
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:170
+#: ../../build/doc/pgRouting-concepts.rst:200
+#: ../../build/doc/pgRouting-concepts.rst:253
+#: ../../build/doc/pgRouting-concepts.rst:288
+#: ../../build/doc/pgRouting-concepts.rst:404
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:171
+#: ../../build/doc/pgRouting-concepts.rst:201
+#: ../../build/doc/pgRouting-concepts.rst:254
+#: ../../build/doc/pgRouting-concepts.rst:289
+#: ../../build/doc/pgRouting-concepts.rst:405
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:171
+#: ../../build/doc/pgRouting-concepts.rst:201
+#: ../../build/doc/pgRouting-concepts.rst:254
+#: ../../build/doc/pgRouting-concepts.rst:289
+#: ../../build/doc/pgRouting-concepts.rst:405
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:172
+#: ../../build/doc/pgRouting-concepts.rst:202
+#: ../../build/doc/pgRouting-concepts.rst:255
+#: ../../build/doc/pgRouting-concepts.rst:369
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:172
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:202
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:255
+#: ../../build/doc/pgRouting-concepts.rst:259
+#: ../../build/doc/pgRouting-concepts.rst:263
+#: ../../build/doc/pgRouting-concepts.rst:264
+#: ../../build/doc/pgRouting-concepts.rst:265
+#: ../../build/doc/pgRouting-concepts.rst:266
+#: ../../build/doc/pgRouting-concepts.rst:325
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:172
+#: ../../build/doc/pgRouting-concepts.rst:202
+#: ../../build/doc/pgRouting-concepts.rst:255
+#: ../../build/doc/pgRouting-concepts.rst:290
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:174
+#: ../../build/doc/pgRouting-concepts.rst:204
+#: ../../build/doc/pgRouting-concepts.rst:257
+#: ../../build/doc/pgRouting-concepts.rst:292
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:259
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:259
+#: ../../build/doc/pgRouting-concepts.rst:294
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:259
+#: ../../build/doc/pgRouting-concepts.rst:294
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:178
+#: ../../build/doc/pgRouting-concepts.rst:208
+#: ../../build/doc/pgRouting-concepts.rst:261
+#: ../../build/doc/pgRouting-concepts.rst:296
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:193
+msgid "Description of the edges_sql query (id is not necessary)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:224
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:227
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:229
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:229
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:229
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:230
+msgid "**via_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:230
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:230
+msgid "Array of ordered vertices identifiers that are going to be visited."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:233
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:232
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:233
+msgid "**strict**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:233
+msgid "``false``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:233
+msgid "When ``false`` ignores missing paths returning all paths found"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:234
+msgid "When ``true`` if a path is missing stops and returns `EMPTY SET`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid "**U_turn_on_edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid ""
+"When ``true`` departing from a visited vertex will not try to avoid using "
+"the edge used to reach it.  In other words, U turn using the edge with same "
+"`id` is allowed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:236
+msgid ""
+"When ``false`` when a departing from a visited vertex tries to avoid using "
+"the edge used to reach it.  In other words, U turn using the edge with same "
+"`id` is used when no other path is found."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:245
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:263
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:263
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:264
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:264
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:265
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:265
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:266
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:266
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:280
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:290
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:294
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:312
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:319
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:319
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:321
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:322
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:324
+#: ../../build/doc/pgRouting-concepts.rst:403
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:324
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:325
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:325
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:326
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:326
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:326
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:328
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:329
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:330
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:336
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:337
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:345
+msgid "Return columns & values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:350
+msgid ""
+"There are several kinds of columns returned are depending of the function."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:355
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:357
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:362
+#: ../../build/doc/pgRouting-concepts.rst:402
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:362
+#: ../../build/doc/pgRouting-concepts.rst:363
+#: ../../build/doc/pgRouting-concepts.rst:364
+#: ../../build/doc/pgRouting-concepts.rst:402
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:362
+#: ../../build/doc/pgRouting-concepts.rst:402
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:363
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:363
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:364
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:364
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:365
+#: ../../build/doc/pgRouting-concepts.rst:385
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:365
+#: ../../build/doc/pgRouting-concepts.rst:366
+#: ../../build/doc/pgRouting-concepts.rst:367
+#: ../../build/doc/pgRouting-concepts.rst:368
+#: ../../build/doc/pgRouting-concepts.rst:385
+#: ../../build/doc/pgRouting-concepts.rst:386
+#: ../../build/doc/pgRouting-concepts.rst:403
+#: ../../build/doc/pgRouting-concepts.rst:404
+#: ../../build/doc/pgRouting-concepts.rst:405
+#: ../../build/doc/pgRouting-concepts.rst:406
+#: ../../build/doc/pgRouting-concepts.rst:407
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:365
+#: ../../build/doc/pgRouting-concepts.rst:385
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:366
+#: ../../build/doc/pgRouting-concepts.rst:386
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:366
+#: ../../build/doc/pgRouting-concepts.rst:386
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:367
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:367
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:368
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:368
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:369
+#: ../../build/doc/pgRouting-concepts.rst:370
+#: ../../build/doc/pgRouting-concepts.rst:387
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:369
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:370
+#: ../../build/doc/pgRouting-concepts.rst:387
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:370
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:378
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:380
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:387
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:397
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:403
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:406
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:406
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:407
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:407
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:415
+msgid "Advanced Topics"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:423
+msgid "Routing Topology"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:427
+#: ../../build/doc/pgRouting-concepts.rst:528
+msgid "Overview"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:428
+msgid ""
+"Typically when GIS files are loaded into the data database for use with "
+"pgRouting they do not have topology information associated with them. To "
+"create a useful topology the data needs to be \"noded\". This means that "
+"where two or more roads form an intersection there it needs to be a node at "
+"the intersection and all the road segments need to be broken at the "
+"intersection, assuming that you can navigate from any of these segments to "
+"any other segment via that intersection."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:430
+msgid ""
+"You can use the :ref:`graph analysis functions <analytics>` to help you see "
+"where you might have topology problems in your data. If you need to node "
+"your data, we also have a function :ref:`pgr_nodeNetwork() "
+"<pgr_node_network>` that might work for you. This function splits ALL "
+"crossing segments and nodes them. There are some cases where this might NOT "
+"be the right thing to do."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:432
+msgid ""
+"For example, when you have an overpass and underpass intersection, you do "
+"not want these noded, but pgr_nodeNetwork does not know that is the case and"
+" will node them which is not good because then the router will be able to "
+"turn off the overpass onto the underpass like it was a flat 2D intersection."
+" To deal with this problem some data sets use z-levels at these types of "
+"intersections and other data might not node these intersection which would "
+"be ok."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:434
+msgid ""
+"For those cases where topology needs to be added the following functions may"
+" be useful. One way to prep the data for pgRouting is to add the following "
+"columns to your table and then populate them as appropriate. This example "
+"makes a lot of assumption like that you original data tables already has "
+"certain columns in it like ``one_way``, ``fcc``, and possibly others and "
+"that they contain specific data values. This is only to give you an idea of "
+"what you can do with your data."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:455
+msgid ""
+"The function :ref:`pgr_createTopology() <pgr_create_topology>` will create "
+"the ``vertices_tmp`` table and populate the ``source`` and ``target`` "
+"columns. The following example populated the remaining columns. In this "
+"example, the ``fcc`` column contains feature class code and the ``CASE`` "
+"statements converts it to an average speed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:518
+msgid ""
+"Now your database should be ready to use any (most?) of the pgRouting "
+"algorithms."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:524
+msgid "Graph Analytics"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:529
+msgid ""
+"It is common to find problems with graphs that have not been constructed "
+"fully noded or in graphs with z-levels at intersection that have been "
+"entered incorrectly. An other problem is one way streets that have been "
+"entered in the wrong direction. We can not detect errors with respect to "
+"\"ground\" truth, but we can look for inconsistencies and some anomalies in "
+"a graph and report them for additional inspections."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:531
+msgid ""
+"We do not current have any visualization tools for these problems, but I "
+"have used mapserver to render the graph and highlight potential problem "
+"areas. Someone familiar with graphviz might contribute tools for generating "
+"images with that."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:535
+msgid "Analyze a Graph"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:537
+msgid ""
+"With :ref:`pgr_analyze_graph` the graph can be checked for errors. For "
+"example for table \"mytab\" that has \"mytab_vertices_pgr\" as the vertices "
+"table:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:560
+msgid "In the vertices table \"mytab_vertices_pgr\":"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:562
+msgid "Deadends are identified by ``cnt=1``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:563
+msgid "Potencial gap problems are identified with ``chk=1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:581
+msgid ""
+"For isolated road segments, for example, a segment where both ends are "
+"deadends. you can find these with the following query:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:590
+msgid ""
+"If you want to visualize these on a graphic image, then you can use "
+"something like mapserver to render the edges and the vertices and style "
+"based on ``cnt`` or if they are isolated, etc. You can also do this with a "
+"tool like graphviz, or geoserver or other similar tools."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:594
+msgid "Analyze One Way Streets"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:596
+msgid ""
+":ref:`pgr_analyze_oneway` analyzes one way streets in a graph and identifies"
+" any flipped segments. Basically if you count the edges coming into a node "
+"and the edges exiting a node the number has to be greater than one."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:598
+msgid ""
+"This query will add two columns to the vertices_tmp table ``ein int`` and "
+"``eout int`` and populate it with the appropriate counts. After running this"
+" on a graph you can identify nodes with potential problems with the "
+"following query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:601
+msgid ""
+"The rules are defined as an array of text strings that if match the ``col`` "
+"value would be counted as true for the source or target in or out condition."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:605
+msgid "Example"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:607
+msgid ""
+"Lets assume we have a table \"st\" of edges and a column \"one_way\" that "
+"might have values like:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:609
+msgid "'FT'    - oneway from the source to the target node."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:610
+msgid "'TF'    - oneway from the target to the source node."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:611
+msgid "'B'     - two way street."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:612
+msgid "''      - empty field, assume twoway."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:613
+msgid "<NULL>  - NULL field, use two_way_if_null flag."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:615
+msgid ""
+"Then we could form the following query to analyze the oneway streets for "
+"errors."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:634
+msgid ""
+"Typically these problems are generated by a break in the network, the one "
+"way direction set wrong, maybe an error related to z-levels or a network "
+"that is not properly noded."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:636
+msgid ""
+"The above tools do not detect all network issues, but they will identify "
+"some common problems. There are other problems that are hard to detect "
+"because they are more global in nature like multiple disconnected networks. "
+"Think of an island with a road network that is not connected to the mainland"
+" network because the bridge or ferry routes are missing."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:644
+msgid "Performance Tips"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:651
+msgid "For the Routing functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:653
+msgid ""
+"To get faster results bound your queries to the area of interest of routing "
+"to have, for example, no more than one million rows."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:655
+msgid ""
+"Use an inner query SQL that does not include some edges in the routing "
+"function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:663
+msgid "Integrating the inner query to the pgRouting function:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:677
+msgid "For the topology functions:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:679
+msgid ""
+"When \"you know\" that you are going to remove a set of edges from the edges"
+" table, and without those edges you are going to use a routing function you "
+"can do the following:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:681
+msgid "Analize the new topology based on the actual topology:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:687
+msgid "Or create a new topology if the change is permanent:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:698
+msgid "How to contribute"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:701
+msgid "Wiki"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:702
+msgid ""
+"Edit an existing  `pgRouting Wiki "
+"<https://github.com/pgRouting/pgrouting/wiki>`_ page."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:703
+msgid "Or create a new Wiki page"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:705
+msgid ""
+"Create a page on the `pgRouting Wiki "
+"<https://github.com/pgRouting/pgrouting/wiki>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:706
+msgid "Give the title an appropriate name"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:709
+msgid ""
+"`Example <https://github.com/pgRouting/pgrouting/wiki/How-to:-Handle-"
+"parallel-edges-(KSP)>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:713
+msgid "Adding Functionaity to pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:714
+msgid ""
+"Consult the `developer's documentation "
+"<http://docs.pgrouting.org/doxy/2.4/index.html>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:719
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:720
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:721
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgRouting-installation.po b/locale/ja/LC_MESSAGES/pgRouting-installation.po
new file mode 100644
index 0000000..71b7f5f
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgRouting-installation.po
@@ -0,0 +1,418 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgRouting-installation.rst:13
+msgid "Installation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:16
+msgid "Table of Contents"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:17
+msgid ":ref:`install-short`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:18
+msgid ":ref:`install_get_sources`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:19
+msgid ":ref:`install_enable_db`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:20
+msgid ":ref:`install_dependencies`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:21
+msgid ":ref:`install_configuring`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:22
+msgid ":ref:`install_build`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:23
+msgid ":ref:`install_testing`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:25
+msgid ""
+"Instructions for downloading and installing binaries for different Operative"
+" systems instructions and additional notes and corrections not included in "
+"this documentation can be found in `Installation wiki "
+"<https://github.com/pgRouting/pgrouting/wiki/Notes-on-Download%2C-"
+"Installation-and-building-pgRouting>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:27
+msgid ""
+"To use pgRouting postGIS needs to be installed, please read the information "
+"about installation in this `Install Guide "
+"<http://www.postgis.us/presentations/postgis_install_guide_22.html>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:32
+msgid "Short Version"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:37
+msgid "Extracting the tar ball"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:44
+msgid "To compile assuming you have all the dependencies in your search path:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:54
+msgid ""
+"Once pgRouting is installed, it needs to be enabled in each individual "
+"database you want to use it in."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:66
+msgid "Get the sources"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:69
+msgid ""
+"The pgRouting latest release can be found in "
+"https://github.com/pgRouting/pgrouting/releases/latest"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:72
+msgid "wget"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:73
+msgid "To download this release:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:81
+msgid "Goto :ref:`install-short` to the extract and compile instructions."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:84
+msgid "git"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:85
+msgid "To download the repository"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:93
+msgid ""
+"Goto :ref:`install-short` to the compile instructions (there is no tar "
+"ball)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:100
+msgid "Enabling and upgrading in the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:103
+msgid "Enabling the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:104
+msgid ""
+"pgRouting is an extension and depends on postGIS. Enabling postGIS before "
+"enabling pgRouting in the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:113
+msgid "Upgrading the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:114
+msgid ""
+"To upgrade pgRouting in the database to version 2.4.0 use the following "
+"command:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:122
+msgid ""
+"More information can be found in "
+"https://www.postgresql.org/docs/current/static/sql-createextension.html"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:128
+msgid "Dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:131
+msgid "Compilation Dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:132
+msgid ""
+"To be able to compile pgRouting, make sure that the following dependencies "
+"are met:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:134
+msgid "C and C++0x compilers * g++ version >= 4.8"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:136
+msgid "Postgresql version >= 9.2"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:137
+msgid "PostGIS version >= 2.0"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:138
+msgid "The Boost Graph Library (BGL). Version >= 1.46"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:139
+msgid "CMake >= 2.8.8"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:140
+msgid "CGAL >=  4.2"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:144
+msgid "optional dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:145
+msgid "For user's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:147
+msgid "Sphinx >= 1.1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:148
+msgid "Latex"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:150
+msgid "For developer's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:152
+msgid "Doxygen >= 1.7"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:154
+msgid "For testing"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:156
+msgid "pgtap"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:157
+msgid "pg_prove"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:161
+msgid "Example: Installing dependencies on linux"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:162
+msgid "Installing the compilation dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:174
+msgid "Installing the optional dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:188
+msgid "Configuring"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:190
+msgid "pgRouting uses the `cmake` system to do the configuration."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:192
+msgid "The build directory is different from the source directory"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:194
+msgid "Create the build directory"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:201
+msgid "Configurable variables"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:205
+msgid "To see the variables that can be configured"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:213
+msgid "Configuring The Documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:214
+msgid ""
+"Most of the effort of the documentation has being on the HTML files. Some "
+"variables for the documentation:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:218
+msgid "Variable"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:218
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:218
+msgid "Comment"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:220
+msgid "WITH_DOC"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:220
+#: ../../build/doc/pgRouting-installation.rst:223
+#: ../../build/doc/pgRouting-installation.rst:224
+#: ../../build/doc/pgRouting-installation.rst:225
+msgid "BOOL=OFF"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:220
+msgid "Turn on/off building the documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:221
+msgid "BUILD_HTML"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:221
+#: ../../build/doc/pgRouting-installation.rst:222
+msgid "BOOL=ON"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:221
+msgid "If ON, turn on/off building HTML for user's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:222
+msgid "BUILD_DOXY"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:222
+msgid "If ON, turn on/off building HTML for developer's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:223
+msgid "BUILD_LATEX"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:223
+msgid "If ON, turn on/off building PDF"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:224
+msgid "BUILD_MAN"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:224
+msgid "If ON, turn on/off building MAN pages"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:225
+msgid "DOC_USE_BOOTSTRAP"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:225
+msgid "If ON, use sphinx-bootstrap for HTML pages of the users documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:228
+msgid "Configuring with documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:234
+msgid "Most of the effort of the documentation has being on the html files."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:240
+msgid "Building"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:242
+msgid "Using ``make`` to build the code and the documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:244
+msgid "The following instructions start from *path/to/pgrouting/build*"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:253
+msgid ""
+"We have tested on several platforms, For installing or reinstalling all the "
+"steps are needed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:255
+msgid "The sql signatures are configured and build in the ``cmake`` command."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:258
+msgid "MinGW on Windows"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:269
+msgid "Linux"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:270
+msgid "The following instructions start from *path/to/pgrouting*"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:280
+msgid "When the configuration changes:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:286
+msgid "and start the build process as mentioned above."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:291
+msgid "Testing"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:293
+msgid "Currently there is no :code:`make test` and testing is done as follows"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:295
+msgid "The following instructions start from *path/to/pgrouting/*"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:305
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:308
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:309
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:310
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgRouting-introduction.po b/locale/ja/LC_MESSAGES/pgRouting-introduction.po
new file mode 100644
index 0000000..2f5927b
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgRouting-introduction.po
@@ -0,0 +1,222 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgRouting-introduction.rst:13
+msgid "Introduction"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:15
+msgid ""
+"pgRouting is an extension of `PostGIS <http://postgis.net>`_ and `PostgreSQL"
+" <http://postgresql.org>`_ geospatial database and adds routing and other "
+"network analysis functionality. A predecessor of pgRouting – pgDijkstra, "
+"written by Sylvain Pasche from `Camptocamp <http://camptocamp.com>`_, was "
+"later extended by `Orkney <http://www.orkney.co.jp>`_ and renamed to "
+"pgRouting. The project is now supported and maintained by `Georepublic "
+"<http://georepublic.info>`_, `iMaptools <http://imaptools.com/>`__ and a "
+"broad user community."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:17
+msgid ""
+"pgRouting is an `OSGeo Labs <http://wiki.osgeo.org/wiki/OSGeo_Labs>`_ "
+"project of the `OSGeo Foundation <http://osgeo.org>`_ and included on `OSGeo"
+" Live <http://live.osgeo.org/>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:23
+msgid "License"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:25
+msgid "The following licenses can be found in pgRouting:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:30
+msgid "**License**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:32
+msgid "GNU General Public License, version 2"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:33
+msgid ""
+"Most features of pgRouting are available under `GNU General Public License, "
+"version 2 <http://www.gnu.org/licenses/gpl-2.0.html>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:34
+msgid "Boost Software License - Version 1.0"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:35
+msgid ""
+"Some Boost extensions are available under `Boost Software License - Version "
+"1.0 <http://www.boost.org/LICENSE_1_0.txt>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:36
+msgid "MIT-X License"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:37
+msgid ""
+"Some code contributed by iMaptools.com is available under MIT-X license."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:38
+msgid "Creative Commons Attribution-Share Alike 3.0 License"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:39
+msgid ""
+"The pgRouting Manual is licensed under a `Creative Commons Attribution-Share"
+" Alike 3.0 License <http://creativecommons.org/licenses/by-sa/3.0/>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:41
+msgid ""
+"In general license information should be included in the header of each "
+"source file."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:45
+msgid "Contributors"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:48
+msgid "This Release Contributors"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:51
+#: ../../build/doc/pgRouting-introduction.rst:71
+msgid "Individuals (in alphabetical order)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:53
+msgid "Maoguang Wang, Vidhan Jain, Virginia Vergara"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:55
+msgid ""
+"And all the people that give us a little of their time making comments, "
+"finding issues, making pull requests etc."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:58
+#: ../../build/doc/pgRouting-introduction.rst:76
+msgid "Corporate Sponsors (in alphabetical order)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:60
+#: ../../build/doc/pgRouting-introduction.rst:78
+msgid ""
+"These are corporate entities that have contributed developer time, hosting, "
+"or direct monetary funding to the pgRouting project:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:62
+msgid "`Georepublic <https://georepublic.info/en/>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:63
+msgid ""
+"`Google Summer of Code <https://developers.google.com/open-source/gsoc/>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:64
+msgid "`iMaptools <http://imaptools.com>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:65
+msgid "`Paragon Corporation <http://www.paragoncorporation.com/>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:68
+msgid "Contributors Past & Present:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:73
+msgid ""
+"Akio Takubo, Andrea Nardelli, Anton Patrushev, Ashraf Hossain, Christian "
+"Gonzalez, Daniel Kastl, Dave Potts, David Techer, Denis Rykov, Ema Miyawaki,"
+" Florian Thurkow, Frederic Junod, Gerald Fenoy, Jay Mahadeokar, Jinfu Leng, "
+"Kai Behncke, Kishore Kumar, Ko Nagase, Manikata Kondeti, Mario Basa, Martin "
+"Wiesenhaan,  Maxim Dubinin, Maoguang Wang, Mohamed Zia, Mukul Priya, Razequl"
+" Islam, Regina Obe, Rohith Reddy, Sarthak Agarwal, Stephen Woodbridge, "
+"Sylvain Housseman, Sylvain Pasche, Vidhan Jain, Virginia Vergara"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:80
+msgid "Camptocamp"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:81
+msgid "CSIS (University of Tokyo)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:82
+msgid "Georepublic"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:83
+msgid "Google Summer of Code"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:84
+msgid "iMaptools"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:85
+msgid "Orkney"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:86
+msgid "Paragon Corporation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:90
+msgid "More Information"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:92
+msgid ""
+"The latest software, documentation and news items are available at the "
+"pgRouting web site http://pgrouting.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:93
+msgid ""
+"PostgreSQL database server at the PostgreSQL main site "
+"http://www.postgresql.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:94
+msgid "PostGIS extension at the PostGIS project web site http://postgis.net."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:95
+msgid "Boost C++ source libraries at http://www.boost.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:96
+msgid ""
+"Computational Geometry Algorithms Library (CGAL) at http://www.cgal.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:97
+msgid ""
+"The Migration guide can be found at "
+"https://github.com/pgRouting/pgrouting/wiki/Migration-Guide."
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_KSP.po b/locale/ja/LC_MESSAGES/pgr_KSP.po
new file mode 100644
index 0000000..2ace271
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_KSP.po
@@ -0,0 +1,402 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_KSP.rst:13
+msgid "pgr_KSP"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:18
+msgid "``pgr_KSP`` — Returns the \"K\" shortest paths."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:27
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:28
+msgid "Signature change 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:32
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:34
+msgid ""
+"The K shortest path routing algorithm based on Yen's algorithm. \"K\" is the"
+" number of shortest paths desired."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:37
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:46
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:52
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:64
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:73
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_KSP.rst:83
+#: ../../build/doc/pgr_KSP.rst:103
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_KSP.rst:83
+#: ../../build/doc/pgr_KSP.rst:103
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_KSP.rst:83
+#: ../../build/doc/pgr_KSP.rst:103
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14 ../../build/doc/pgr_KSP.rst:110
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:80
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:85
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:85
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:85
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:86
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:86 ../../build/doc/pgr_KSP.rst:87
+#: ../../build/doc/pgr_KSP.rst:107 ../../build/doc/pgr_KSP.rst:108
+#: ../../build/doc/pgr_KSP.rst:109
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:86
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:87
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:87
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:88
+msgid "**k**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:88 ../../build/doc/pgr_KSP.rst:105
+#: ../../build/doc/pgr_KSP.rst:106
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:88
+msgid "The desiered number of paths."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:89
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:89 ../../build/doc/pgr_KSP.rst:90
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:89
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:90
+msgid "**heap_paths**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:90
+msgid ""
+"(optional). When ``true`` returns all the paths stored in the process heap. "
+"Default is ``false`` which only returns ``k`` paths."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:93
+msgid ""
+"Roughly, if the shortest path has ``N`` edges, the heap will contain about "
+"than ``N * k`` paths for small value of ``k`` and ``k > 1``."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:98
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:100
+msgid ""
+"Returns set of ``(seq, path_seq, path_id, node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:105
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:105
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:106
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:106
+msgid ""
+"Relative position in the path of ``node`` and ``edge``. Has value **1** for "
+"the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:107
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:107
+msgid ""
+"Path identifier. The ordering of the paths For two paths i, j if i < j then "
+"agg_cost(i) <= agg_cost(j)."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:108
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:108
+msgid "Identifier of the node in the path."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:109
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:109
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the route."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:110 ../../build/doc/pgr_KSP.rst:111
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:110
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:111
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:111
+msgid "Aggregate cost from ``start_vid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:115
+msgid ""
+"During the transition to 3.0, because pgr_ksp version 2.0 doesn't have "
+"defined a directed flag nor a heap_path flag, when pgr_ksp is used with only"
+" one flag version 2.0 signature will be used."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:119
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:122
+msgid "Examples to handle the one flag to choose signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:124 ../../build/doc/pgr_KSP.rst:134
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:132
+msgid ""
+"Examples for queries marked as ``directed`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:143
+msgid ""
+"Examples for queries marked as ``undirected`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:145
+msgid "The examples in this section use the following :ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:153
+msgid "Examples for queries marked as ``directed`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:155
+msgid "The examples in this section use the following :ref:`fig3`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:164
+msgid "Examples for queries marked as ``undirected`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:166
+msgid "The examples in this section use the following :ref:`fig4`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:173
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:175
+msgid "http://en.wikipedia.org/wiki/K_shortest_path_routing"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:176
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:179
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:180
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:181
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_TSP.po b/locale/ja/LC_MESSAGES/pgr_TSP.po
new file mode 100644
index 0000000..a9fecef
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_TSP.po
@@ -0,0 +1,224 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_TSP.rst:13
+msgid "pgr_TSP"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:18
+msgid "``pgr_TSP`` - Returns a route that visits all the nodes exactly once."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:21
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:22
+msgid "Signature changed 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:26
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:28
+msgid ""
+"The travelling salesman problem (TSP) or travelling salesperson problem asks"
+" the following question:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:30
+msgid ""
+"Given a list of cities and the distances between each pair of cities, what "
+"is the shortest possible route that visits each city exactly once and "
+"returns to the origin city?"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:32
+msgid ""
+"This implementation uses simulated annealing to return the approximate "
+"solution when the input is given in the form of matrix cell contents. The "
+"matrix information must be symmetrical."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:37
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:58
+msgid "Basic Use"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:67
+msgid ""
+"Because the documentation examples are auto generated and tested for non "
+"changing results, and the default is to have random execution, the example "
+"is wrapping the actual call."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:81
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:96
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:103
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:106
+msgid "Description of the Matrix Cell SQL query"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:109
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:109
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:109
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:111
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:111 ../../build/doc/pgr_TSP.rst:112
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:111
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:112
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:112
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:113
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:113
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:113
+msgid "Cost for going from start_vid to end_vid"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:116
+msgid "Can be Used with:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:118
+msgid ":ref:`pgr_dijkstraCostmatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:119
+msgid ":ref:`pgr_withPointsCostmatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:120
+msgid ":ref:`pgr_floydWarshall`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:121
+msgid ":ref:`pgr_johnson`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:123
+msgid "To generate a symmetric matrix"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:125
+msgid "directed := false."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:127
+msgid ""
+"If using directed := true, the resulting non symmetric matrix must be "
+"converted to symmetric by fixing the non symmetric values according to your "
+"application needs."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:145
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:147
+msgid "Using with points of interest."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:149
+msgid "To generate a symmetric matrix:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:151
+msgid ""
+"the **side** information of pointsOfInterset is ignored by not including it "
+"in the query"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:152
+msgid "and **directed := false**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:158
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:163
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:165
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:166
+msgid "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:167
+msgid "http://en.wikipedia.org/wiki/Simulated_annealing"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:170
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:171
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:172
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_aStar.po b/locale/ja/LC_MESSAGES/pgr_aStar.po
new file mode 100644
index 0000000..4e2ccb4
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_aStar.po
@@ -0,0 +1,642 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_aStar.rst:13
+msgid "pgr_aStar"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:18
+msgid "``pgr_aStar`` — Returns the shortest path using A* algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:26
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:27
+msgid "pgr_astar(one to one) 2.0.0, Signature changed 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:28
+msgid "pgr_astar(other signatures) 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:33
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:35
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:37
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:38
+msgid "Vertices of the graph are:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:40
+msgid "**positive** when it belongs to the edges_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:42
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:44
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:46
+msgid "The agg_cost the non included values (v, v) is 0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:48
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:50
+msgid "The agg_cost the non included values (u, v) is ∞"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:52
+msgid "When (x,y) coordinates for the same vertex identifier differ:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:54
+msgid "A random selection of the vertex's (x,y) coordinates is used."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:56
+msgid "Running time: :math:`O((E + V) * \\log V)`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:61
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:84
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:92
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:99
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:112
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:118
+msgid "Undirected using  Heuristic 2"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:130
+msgid "One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:139
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:138 ../../build/doc/pgr_aStar.rst:165
+#: ../../build/doc/pgr_aStar.rst:194
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:139 ../../build/doc/pgr_aStar.rst:166
+#: ../../build/doc/pgr_aStar.rst:195
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:141
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_astar` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:144
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_astar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:145
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:157
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:166
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:168
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_aStar` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:171
+msgid "The result is the union of the results of the one to one `pgr_aStar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:172 ../../build/doc/pgr_aStar.rst:201
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:186
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:195
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:197
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:200
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:203
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:217
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_aStar.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_aStar.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13 ../../build/doc/pgr_aStar.rst:234
+#: ../../build/doc/pgr_aStar.rst:235
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:228
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:231
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:233
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:233
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:233
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:234 ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:234
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:235 ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:235
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:236
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:236
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:236
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:238
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:239
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:241
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:241
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:241
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:243
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:244
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:245
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:246
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:247
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:248
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:250
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:250 ../../build/doc/pgr_aStar.rst:251
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:250
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:251
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:251
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:260
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:262
+msgid ":ref:`astar`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:263
+msgid ":doc:`sampledata`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:264
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:265
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:268
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:269
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:270
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_aStarCost.po b/locale/ja/LC_MESSAGES/pgr_aStarCost.po
new file mode 100644
index 0000000..41e1637
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_aStarCost.po
@@ -0,0 +1,528 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_aStarCost.rst:13
+msgid "pgr_aStarCost -- proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:18
+msgid ""
+"``pgr_aStarCost`` — Returns the aggregate cost shortest path using "
+":ref:`astar` algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:26
+msgid "Availability: 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:28
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:46
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:53
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:60
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:72
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:78
+msgid "Setting a Heuristic"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:90
+msgid "One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:99
+msgid ""
+"This signature finds a path from one ``start_vid`` to each ``end_vid`` in "
+"``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:98 ../../build/doc/pgr_aStarCost.rst:125
+#: ../../build/doc/pgr_aStarCost.rst:154
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:99 ../../build/doc/pgr_aStarCost.rst:126
+#: ../../build/doc/pgr_aStarCost.rst:155
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:101
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_astar` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:104
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_astar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:105
+msgid ""
+"The extra ``end_vid`` column in the result is used to distinguish to which "
+"path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:117
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:126
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:128
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_aStar` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:131
+msgid "The result is the union of the results of the one to one `pgr_aStar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:132
+msgid ""
+"The extra ``start_vid`` column  in the result is used to distinguish to "
+"which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:146
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:155
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:157
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:160
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:161
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:163
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:177
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCost.rst:191
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCost.rst:191
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_aStarCost.rst:194 ../../build/doc/pgr_aStarCost.rst:195
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:188
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:191
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:193
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:193
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:193
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:194
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:194
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:195
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:195
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:196
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:196
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:196
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:198
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:199
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:201
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:201
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:201
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:203
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:204
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:205
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:206
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:207
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:208
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:210
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:210 ../../build/doc/pgr_aStarCost.rst:211
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:210
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. See "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:211
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:211
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:224
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:226
+msgid ":ref:`astar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:227
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:228
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:229
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:232
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:233
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:234
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_aStarCostMatrix.po b/locale/ja/LC_MESSAGES/pgr_aStarCostMatrix.po
new file mode 100644
index 0000000..5193921
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_aStarCostMatrix.po
@@ -0,0 +1,457 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:13
+msgid "pgr_aStarCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:18
+msgid ""
+"``pgr_aStarCostMatrix`` - Calculates the a cost matrix using "
+":ref:`pgr_aStar`."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:33
+msgid "Availability: 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:37
+msgid "Using aStar algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:40
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:57
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:60
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:60
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:68
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:80
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:88
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:90
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:98
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:106
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:109
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:111
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:111
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:111
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:112
+msgid "**vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:112
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:112
+msgid "Array of vertices_identifiers."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:113
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:113
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:113
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:115
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:116
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:118
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:118
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:118
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:120
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:121
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:122
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:123
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:124
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:125
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:127
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:127
+#: ../../build/doc/pgr_aStarCostMatrix.rst:128
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:127
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:128
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:128
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:140
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:142
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:150
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:152
+msgid ":ref:`astar`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:153
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:154
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:155
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:158
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:159
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:160
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_alphaShape.po b/locale/ja/LC_MESSAGES/pgr_alphaShape.po
new file mode 100644
index 0000000..851cd18
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_alphaShape.po
@@ -0,0 +1,169 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_alphaShape.rst:13
+msgid "pgr_alphaShape"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:21
+msgid "``pgr_alphaShape`` — Core function for alpha shape computation."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:27
+msgid ""
+"Returns a table with (x, y) rows that describe the vertices of an alpha "
+"shape."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:35
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:37
+msgid ""
+"``text`` a SQL query, which should return a set of rows with the following "
+"columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:43
+msgid "``int4`` identifier of the vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:44
+msgid "``float8`` x-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:45
+msgid "``float8`` y-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:47
+msgid ""
+"(optional) ``float8`` alpha value. If specified alpha value equals 0 "
+"(default), then optimal alpha value is used. For more information, see `CGAL"
+" - 2D Alpha Shapes "
+"<http://doc.cgal.org/latest/Alpha_shapes_2/group__PkgAlphaShape2.html>`_."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:50
+msgid "Returns a vertex record for each row:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:52
+msgid "x-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:53
+msgid "y-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:55
+msgid ""
+"If a result includes multiple outer/inner rings, return those with separator"
+" row (x=NULL and y=NULL)."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:58
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:59
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:60
+msgid ""
+"Added alpha argument with default 0 (use optimal value) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:61
+msgid ""
+"Supported to return multiple outer/inner ring coordinates with separator row"
+" (x=NULL and y=NULL) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:64
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:65
+msgid ""
+"PgRouting's alpha shape implementation has no way to control the order of "
+"the output points, so the actual output might different for the same input "
+"data. The first query, has the output ordered, he second query shows an "
+"example usage:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:70
+msgid "Example: the (ordered) results"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:76
+msgid "Example: calculating the area"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:77
+msgid "Steps:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:79
+msgid "Calculates the alpha shape"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:80
+msgid "the :code:`ORDER BY` clause is not used."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:81
+msgid "constructs a polygon"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:82
+msgid "and computes the area"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:90
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:93
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:95
+msgid ":ref:`pgr_drivingDistance` - Driving Distance"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:96
+msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:99
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:100
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:101
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_analyzeGraph.po b/locale/ja/LC_MESSAGES/pgr_analyzeGraph.po
new file mode 100644
index 0000000..22237a6
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_analyzeGraph.po
@@ -0,0 +1,361 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_analyzeGraph.rst:13
+msgid "pgr_analyzeGraph"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:19
+msgid "``pgr_analyzeGraph`` — Analyzes the network topology."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:23
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:25
+#: ../../build/doc/pgr_analyzeGraph.rst:61
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:27
+#: ../../build/doc/pgr_analyzeGraph.rst:63
+msgid "``OK`` after the analysis has finished."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:28
+#: ../../build/doc/pgr_analyzeGraph.rst:69
+msgid "``FAIL`` when the analysis was not completed due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:43
+msgid "Prerequisites"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:44
+msgid ""
+"The  edge table to be analyzed must contain a source column and a target "
+"column filled with id's of the vertices of the segments and the "
+"corresponding vertices table <edge_table>_vertices_pgr that stores the "
+"vertices information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:46
+msgid ""
+"Use :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create the "
+"vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:47
+msgid ""
+"Use :ref:`pgr_createTopology <pgr_create_topology>` to create the topology "
+"and the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:50
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:51
+msgid "The analyze graph function accepts the following parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:53
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:54
+msgid ""
+"``float8`` Snapping tolerance of disconnected edges. (in projection unit)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:55
+msgid ""
+"``text``  Geometry column name of the network table. Default value is "
+"``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:56
+msgid ""
+"``text``  Primary key column name of the network table. Default value is "
+"``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:57
+msgid ""
+"``text`` Source column name of the network table. Default value is "
+"``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:58
+msgid ""
+"``text``  Target column name of the network table.  Default value is "
+"``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:59
+msgid ""
+"``text``   Condition to select  a subset or rows.  Default value is ``true``"
+" to indicate all rows."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:65
+msgid "Uses the vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:66
+msgid ""
+"Fills completely the ``cnt`` and ``chk`` columns of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:67
+msgid ""
+"Returns the analysis of the section of the network defined by  "
+"``rows_where``"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:71
+msgid "The vertices table is not found."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:72
+msgid ""
+"A required column of the Network table is not found or is not of the "
+"appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:73
+msgid "The condition is not well formed."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:74
+msgid "The names of source , target or id are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:75
+msgid "The SRID of the geometry could not be determined."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:79
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:80
+msgid ""
+"The vertices table can be created with :ref:`pgr_createVerticesTable "
+"<pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:82
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:84
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:85
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:86
+msgid "``integer``  Indicator that the vertex might have a problem."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:87
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:88
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:89
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:92
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:93
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:96
+msgid "Usage when the edge table's columns MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:99
+msgid "The simplest way to use pgr_analyzeGraph is:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:106
+msgid "When the arguments are given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:111
+msgid "We get the same result as the simplest way to use the function."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order: In this example, the column ``id`` of the table ``mytable`` is passed"
+" to the function as the geometry column, and the geometry column "
+"``the_geom`` is passed to the function as the id column."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:130
+#: ../../build/doc/pgr_analyzeGraph.rst:208
+msgid "When using the named notation"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:131
+#: ../../build/doc/pgr_analyzeGraph.rst:209
+msgid "The order of the parameters do not matter:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:141
+msgid ""
+"Parameters defined with a default value can be omitted, as long as the value"
+" matches the default:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:148
+#: ../../build/doc/pgr_analyzeGraph.rst:223
+msgid "Selecting rows using rows_where parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:149
+msgid ""
+"Selecting rows based on the id. Displays the analysis a the section of the "
+"network."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:155
+msgid ""
+"Selecting the rows where the geometry is near the geometry of row with "
+"``id`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:161
+msgid ""
+"Selecting the rows where the geometry is near the geometry of the row with "
+"``gid`` =100 of the table ``othertable``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:172
+msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:174
+msgid "For the following table"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:183
+msgid "Using positional notation:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:184
+msgid ""
+"The arguments need to be given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order: In this example, the column ``gid`` of the table ``mytable`` is "
+"passed to the function as the geometry column, and the geometry column "
+"``mygeom`` is passed to the function as the id column."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:219
+msgid ""
+"In this scenario omitting a parameter would create an error because the "
+"default values for the column names do not match the column names of the "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:224
+msgid "Selecting rows based on the id."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:234
+msgid ""
+"Selecting the rows WHERE the geometry is near the geometry of row with "
+"``id`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:246
+msgid ""
+"Selecting the rows WHERE the geometry is near the place='myhouse' of the "
+"table ``othertable``. (note the use of quote_literal)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:263
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:390
+msgid "The examples use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:394
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:396
+msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:397
+msgid ":ref:`pgr_analyze_oneway` to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:398
+msgid ""
+":ref:`pgr_createVerticesTable <pgr_create_vert_table>` to reconstruct the "
+"vertices table based on the source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:399
+msgid ""
+":ref:`pgr_nodeNetwork <pgr_node_network>` to create nodes to a not noded "
+"edge table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:402
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:403
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:404
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_analyzeOneWay.po b/locale/ja/LC_MESSAGES/pgr_analyzeOneWay.po
new file mode 100644
index 0000000..627da76
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_analyzeOneWay.po
@@ -0,0 +1,290 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:13
+msgid "pgr_analyzeOneway"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:19
+msgid ""
+"``pgr_analyzeOneway`` — Analyzes oneway Sstreets and identifies flipped "
+"segments."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:23
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:25
+msgid ""
+"This function analyzes oneway streets in a graph and identifies any flipped "
+"segments."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:42
+msgid ""
+"The analyses of one way segments is pretty simple but can be a powerful "
+"tools to identifying some the potential problems created by setting the "
+"direction of a segment the wrong way. A node is a `source` if it has edges "
+"the exit from that node and no edges enter that node. Conversely, a node is "
+"a `sink` if all edges enter the node but none exit that node. For a `source`"
+" type node it is logically impossible to exist because no vehicle can exit "
+"the node if no vehicle and enter the node. Likewise, if you had a `sink` "
+"node you would have an infinite number of vehicle piling up on this node "
+"because you can enter it but not leave it."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:44
+msgid ""
+"So why do we care if the are not feasible? Well if the direction of an edge "
+"was reversed by mistake we could generate exactly these conditions. Think "
+"about a divided highway and on the north bound lane one segment got entered "
+"wrong or maybe a sequence of multiple segments got entered wrong or maybe "
+"this happened on a round-about. The result would be potentially a `source` "
+"and/or a `sink` node."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:46
+msgid ""
+"So by counting the number of edges entering and exiting each node we can "
+"identify both `source` and `sink` nodes so that you can look at those areas "
+"of your network to make repairs and/or report the problem back to your data "
+"vendor."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:49
+msgid "Prerequisites"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:50
+msgid ""
+"The  edge table to be analyzed must contain a source column and a target "
+"column filled with id's of the vertices of the segments and the "
+"corresponding vertices table <edge_table>_vertices_pgr that stores the "
+"vertices information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:52
+msgid ""
+"Use :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create the "
+"vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:53
+msgid ""
+"Use :ref:`pgr_createTopology <pgr_create_topology>` to create the topology "
+"and the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:56
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:57
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:58
+msgid "``text[]`` source node **in** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:59
+msgid "``text[]`` source node **out** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:60
+msgid "``text[]`` target node **in** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:61
+msgid "``text[]`` target node **out** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:62
+msgid ""
+"``text`` oneway column name name of the network table. Default value is "
+"``oneway``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:63
+msgid ""
+"``text`` Source column name of the network table. Default value is "
+"``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:64
+msgid ""
+"``text``  Target column name of the network table.  Default value is "
+"``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:65
+msgid ""
+"``boolean`` flag to treat oneway NULL values as bi-directional.  Default "
+"value is ``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:67
+msgid ""
+"It is strongly recommended to use the named notation. See "
+":ref:`pgr_createVerticesTable <pgr_create_vert_table>` or "
+":ref:`pgr_createTopology <pgr_create_topology>` for examples."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:70
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:72
+msgid "``OK`` after the analysis has finished."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:74
+msgid "Uses the vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:75
+msgid ""
+"Fills completely the ``ein`` and ``eout`` columns of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:77
+msgid "``FAIL`` when the analysis was not completed due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:79
+msgid "The vertices table is not found."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:80
+msgid ""
+"A required column of the Network table is not found or is not of the "
+"appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:81
+msgid "The names of source , target or oneway are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:83
+msgid ""
+"The rules are defined as an array of text strings that if match the "
+"``oneway`` value would be counted as ``true`` for the source or target "
+"**in** or **out** condition."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:86
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:87
+msgid ""
+"The vertices table can be created with :ref:`pgr_createVerticesTable "
+"<pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:89
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:91
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:92
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex."
+" See :ref:`pgr_analyzeGgraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:93
+msgid ""
+"``integer``  Indicator that the vertex might have a problem. See "
+":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:94
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as incoming."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:95
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as outgoing."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:96
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:100
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:101
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:105
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:129
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:133
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:135
+msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:136
+msgid ":ref:`analytics` for an overview of the analysis of a graph."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:137
+msgid ""
+":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:138
+msgid ""
+":ref:`pgr_create_vert_table` to reconstruct the vertices table based on the "
+"source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:141
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:142
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:143
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_articulationPoints.po b/locale/ja/LC_MESSAGES/pgr_articulationPoints.po
new file mode 100644
index 0000000..225a3d6
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_articulationPoints.po
@@ -0,0 +1,316 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_articulationPoints.rst:13
+msgid "pgr_articulationPoints - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:16
+msgid ""
+"``pgr_articulationPoints`` - Return the articulation points of an undirected"
+" graph. In particular, the algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:22
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:30
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:32
+msgid ""
+"Those vertices that belong to more than one biconnected component are called"
+" articulation points or, equivalently, cut vertices. Articulation points are"
+" vertices whose removal would increase the number of connected components in"
+" the graph. This implementation can only be used with an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:39
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:41
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:43
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:45
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:47
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:62
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:75
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the return values for articulation points"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:91
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:93
+msgid "http://en.wikipedia.org/wiki/Biconnected_component"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:94
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:97
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:98
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:99
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_bdAstar.po b/locale/ja/LC_MESSAGES/pgr_bdAstar.po
new file mode 100644
index 0000000..fdfaa05
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_bdAstar.po
@@ -0,0 +1,669 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdAstar.rst:13
+msgid "pgr_bdAstar"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:18
+msgid "``pgr_bdAstar`` — Returns the shortest path using A* algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:26
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:27
+msgid "pgr_bdAstar(one to one) 2.0.0, Signature change on 2.5.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:28
+msgid "pgr_bdAstar(other signatures) 2.5.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:32
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:54
+msgid ""
+"Using these signatures, will load once the graph and perform several one to "
+"one `pgr_bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:56
+msgid ""
+"The result is the union of the results of the one to one `pgr_bdAStar`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:57
+msgid ""
+"The extra ``start_vid`` and/or ``end_vid`` in the result is used to "
+"distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:61
+msgid "Avaliability"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:62
+msgid "pgr_bdAstar(one to one) 2.0, signature change on 2.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:63
+msgid "pgr_bdAstar(other signatures) 2.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:68
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:76
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:87
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to the ``end_vid``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:84
+msgid "on a **directed** graph"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:85
+msgid "with **heuristic**'s value 5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:86
+msgid "with **factor**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:87
+msgid "with **epsilon**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:89
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:102
+msgid "pgr_bdAstar One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:111
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to the ``end_vid``"
+" allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:109
+msgid "**heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:110 ../../build/doc/pgr_bdAstar.rst:137
+#: ../../build/doc/pgr_bdAstar.rst:162 ../../build/doc/pgr_bdAstar.rst:186
+msgid "and/or **factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:111 ../../build/doc/pgr_bdAstar.rst:138
+#: ../../build/doc/pgr_bdAstar.rst:163 ../../build/doc/pgr_bdAstar.rst:187
+msgid "and/or **epsilon**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:114
+msgid ""
+"In the One to One signature, because of the deprecated signature existence, "
+"it is compulsory to indicate if the graph is **directed** or **undirected**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:116
+msgid "Directed using Heuristic 2"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:127
+msgid "pgr_bdAstar One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:139
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to each "
+"``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:135 ../../build/doc/pgr_bdAstar.rst:160
+#: ../../build/doc/pgr_bdAstar.rst:184
+msgid "if the graph is **directed** or **undirected**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:136 ../../build/doc/pgr_bdAstar.rst:161
+#: ../../build/doc/pgr_bdAstar.rst:185
+msgid "and/or **heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:141
+msgid "Directed using Heuristic 3 and a factor of 3.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:152
+msgid "pgr_bdAstar Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:163
+msgid ""
+"This usage finds the shortest path from each ``start_vid`` in ``start_vids``"
+" to the ``end_vid`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:165
+msgid "Undirected graph with Heuristic 4"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:176
+msgid "pgr_bdAstar Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:187
+msgid ""
+"This usage finds the shortest path from each ``start_vid`` in ``start_vids``"
+" to each ``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:189
+msgid "Directed graph with a factor of 0.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:196
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:10 ../../build/doc/bdAstar-family.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11 ../../build/doc/bdAstar-family.rst:13
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:16
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:21
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:22
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:23
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:24
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:25
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:26
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28 ../../build/doc/bdAstar-family.rst:29
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:213
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:215
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:216
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:217
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:218
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:221
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:222
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:223
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_bdAstarCost.po b/locale/ja/LC_MESSAGES/pgr_bdAstarCost.po
new file mode 100644
index 0000000..9b72e10
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_bdAstarCost.po
@@ -0,0 +1,594 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdAstarCost.rst:13
+msgid "pgr_bdAstarCost - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:18
+msgid "``pgr_bdAstarCost`` — Returns the shortest path using A* algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:26
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:32
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:46
+msgid ""
+"Using these signatures, will load once the graph and perform several one to "
+"one `pgr_bdAstarCost`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:48
+msgid ""
+"The result is the union of the results of the one to one `pgr_bdAstarCost`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:49
+msgid ""
+"The extra ``start_vid`` and/or ``end_vid`` in the result is used to "
+"distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:56
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:64
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:75
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to the ``end_vid``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:72
+msgid "on a **directed** graph"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:73
+msgid "with **heuristic**'s value 5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:74
+msgid "with **factor**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:75
+msgid "with **epsilon**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:77
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:90
+msgid "pgr_bdAstarCost One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:100
+#: ../../build/doc/pgr_bdAstarCost.rst:128
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to each "
+"``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:97
+#: ../../build/doc/pgr_bdAstarCost.rst:124
+#: ../../build/doc/pgr_bdAstarCost.rst:149
+#: ../../build/doc/pgr_bdAstarCost.rst:173
+msgid "if the graph is **directed** or **undirected**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:98
+msgid "**heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:99
+#: ../../build/doc/pgr_bdAstarCost.rst:126
+#: ../../build/doc/pgr_bdAstarCost.rst:151
+#: ../../build/doc/pgr_bdAstarCost.rst:175
+msgid "and/or **factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:100
+#: ../../build/doc/pgr_bdAstarCost.rst:127
+#: ../../build/doc/pgr_bdAstarCost.rst:152
+#: ../../build/doc/pgr_bdAstarCost.rst:176
+msgid "and/or **epsilon**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:103
+msgid ""
+"In the One to One signature, because of the deprecated signature existence, "
+"it is compulsory to indicate if the graph is **directed** or **undirected**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:105
+msgid "Directed using Heuristic 2"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:116
+msgid "pgr_bdAstarCost One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:125
+#: ../../build/doc/pgr_bdAstarCost.rst:150
+#: ../../build/doc/pgr_bdAstarCost.rst:174
+msgid "and/or **heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:130
+msgid "Directed using Heuristic 3 and a factor of 3.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:141
+msgid "pgr_bdAstarCost Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:152
+msgid ""
+"This usage finds the shortest path from each ``start_vid`` in ``start_vids``"
+" to the ``end_vid`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:154
+msgid "Undirected graph with Heuristic 4"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:165
+msgid "pgr_bdAstarCost Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:176
+msgid ""
+"This usage finds the shortest path from each ``start_vid`` in ``start_vids``"
+" to each ``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:178
+msgid "Directed graph with a factor of 0.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:185
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:10 ../../build/doc/bdAstar-family.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11 ../../build/doc/bdAstar-family.rst:13
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:16
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:21
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:22
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:23
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:24
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:25
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:26
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28 ../../build/doc/bdAstar-family.rst:29
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:202
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:204
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:205
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:206
+msgid ""
+"`Migration Guide <https://github.com/cvvergara/pgrouting/wiki/Migration-"
+"Guide#pgr_bdastar>`_"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:207
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:208
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:211
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:212
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:213
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_bdAstarCostMatrix.po b/locale/ja/LC_MESSAGES/pgr_bdAstarCostMatrix.po
new file mode 100644
index 0000000..c8738fa
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_bdAstarCostMatrix.po
@@ -0,0 +1,536 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:13
+msgid "pgr_bdAstarCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:18
+msgid ""
+"``pgr_bdAstarCostMatrix`` - Calculates the a cost matrix using "
+":ref:`pgr_bdAstar`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:27
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:35
+msgid "Using Dijkstra algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:38
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:49
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:55
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:68
+msgid ""
+"This usage calculates the cost from the each ``start_vid`` in ``start_vids``"
+" to  each ``start_vid`` in ``start_vids``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:64
+msgid "on a **directed** graph"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:65
+msgid "with **heuristic**'s value 5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:66
+msgid "with **factor**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:67
+msgid "with **epsilon**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:70
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:82
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:95
+msgid ""
+"This usage calculates the cost from the each ``start_vid`` in ``start_vids``"
+" to  each ``start_vid`` in ``start_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:91
+msgid "if the graph is **directed** or **undirected**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:92
+msgid "**heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:93
+msgid "and/or **factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:94
+msgid "and/or **epsilon**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:97
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:99
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:107
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:10 ../../build/doc/bdAstar-family.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11 ../../build/doc/bdAstar-family.rst:13
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:16
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:21
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:22
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:23
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:24
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:25
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:26
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28 ../../build/doc/bdAstar-family.rst:29
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:123
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:125
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:133
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:135
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:136
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:137
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:138
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:141
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:142
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:143
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_bdDijkstra.po b/locale/ja/LC_MESSAGES/pgr_bdDijkstra.po
new file mode 100644
index 0000000..b05e40f
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_bdDijkstra.po
@@ -0,0 +1,541 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdDijkstra.rst:13
+msgid "pgr_bdDijkstra"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:15
+msgid ""
+"``pgr_bdDijkstra`` — Returns the shortest path(s) using Bidirectional "
+"Dijkstra algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:23
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:24
+msgid "pgr_bdDijkstra(one to one) 2.0.0, Signature changed 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:25
+msgid "pgr_bdDijkstra(other signatures) 2.5.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:28
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:54
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:60
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:67
+msgid ""
+"The minimal signature is for a **directed** graph from one ``start_vid`` to "
+"one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:80
+msgid "pgr_bdDijkstra One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:87
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:89
+#: ../../build/doc/pgr_bdDijkstra.rst:112
+#: ../../build/doc/pgr_bdDijkstra.rst:141
+#: ../../build/doc/pgr_bdDijkstra.rst:170
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:90
+#: ../../build/doc/pgr_bdDijkstra.rst:113
+#: ../../build/doc/pgr_bdDijkstra.rst:142
+#: ../../build/doc/pgr_bdDijkstra.rst:171
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:103
+msgid "pgr_bdDijkstra One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:110
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:115
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_dijkstra` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:118
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:119
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:132
+msgid "pgr_bdDijkstra Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:139
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:144
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_dijkstra` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:147
+#: ../../build/doc/pgr_bdDijkstra.rst:176
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:148
+#: ../../build/doc/pgr_bdDijkstra.rst:177
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:161
+msgid "pgr_bdDijkstra Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:168
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:173
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:179
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:190
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10 ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11 ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:208
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:210
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:211
+msgid ":ref:`bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:212
+msgid ""
+"http://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/EPP%20shortest%20path%20algorithms.pdf"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:213
+msgid "https://en.wikipedia.org/wiki/Bidirectional_search"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:216
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:217
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:218
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_bdDijkstraCost.po b/locale/ja/LC_MESSAGES/pgr_bdDijkstraCost.po
new file mode 100644
index 0000000..0516529
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_bdDijkstraCost.po
@@ -0,0 +1,470 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:13
+msgid "pgr_bdDijkstraCost - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:15
+msgid ""
+"``pgr_bdDijkstraCost`` — Returns the shortest path(s)'s cost using "
+"Bidirectional Dijkstra algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:23
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:30
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:46
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:52
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:59
+msgid ""
+"The minimal signature is for a **directed** graph from one ``start_vid`` to "
+"one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:72
+msgid "pgr_bdDijkstraCost One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:81
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:80
+#: ../../build/doc/pgr_bdDijkstraCost.rst:102
+#: ../../build/doc/pgr_bdDijkstraCost.rst:130
+#: ../../build/doc/pgr_bdDijkstraCost.rst:158
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:81
+#: ../../build/doc/pgr_bdDijkstraCost.rst:103
+#: ../../build/doc/pgr_bdDijkstraCost.rst:131
+#: ../../build/doc/pgr_bdDijkstraCost.rst:159
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:94
+msgid "pgr_bdDijkstraCost One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:103
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:105
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_dijkstra` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:108
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:109
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:122
+msgid "pgr_bdDijkstraCost Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:131
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:133
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_dijkstra` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:136
+#: ../../build/doc/pgr_bdDijkstraCost.rst:164
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:137
+#: ../../build/doc/pgr_bdDijkstraCost.rst:165
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:150
+msgid "pgr_bdDijkstraCost Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:159
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:161
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:167
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:178
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10 ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11 ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:195
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:197
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:198
+msgid ":ref:`pgr_bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:199
+msgid ""
+"http://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/EPP%20shortest%20path%20algorithms.pdf"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:200
+msgid "https://en.wikipedia.org/wiki/Bidirectional_search"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:203
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:204
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:205
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_bdDijkstraCostMatrix.po b/locale/ja/LC_MESSAGES/pgr_bdDijkstraCostMatrix.po
new file mode 100644
index 0000000..0b0a2ae
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_bdDijkstraCostMatrix.po
@@ -0,0 +1,382 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:13
+msgid "pgr_bdDijkstraCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:18
+msgid ""
+"``pgr_bdDijkstraCostMatrix`` - Calculates the a cost matrix using "
+":ref:`pgr_bdDijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:27
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:35
+msgid "Using Dijkstra algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:38
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:49
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:55
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:58
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:58
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:66
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:78
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:86
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:88
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:96
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:108
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:108
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:105
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:108
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:110
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:110
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:110
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:111
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:111
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:111
+msgid "Array of identifiers of the vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:112
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:112
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:112
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:122
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:124
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:132
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:134
+msgid ":ref:`bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:135
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:136
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:137
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:140
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:141
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:142
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_biconnectedComponents.po b/locale/ja/LC_MESSAGES/pgr_biconnectedComponents.po
new file mode 100644
index 0000000..f4db188
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_biconnectedComponents.po
@@ -0,0 +1,349 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:13
+msgid "pgr_biconnectedComponents - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:15
+msgid ""
+"``pgr_biconnectedComponents`` — Return the biconnected components of an "
+"undirected graph. In particular, the algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:31
+msgid ""
+"The biconnected components of an undirected graph are the maximal subsets of"
+" vertices such that the removal of a vertex from particular component will "
+"not disconnect the component. Unlike connected components, vertices may "
+"belong to multiple biconnected components. Vertices can be present in "
+"multiple biconnected components, but each edge can only be contained in a "
+"single biconnected component. So, the output only has edge version."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:36
+msgid "This implementation can only be used with an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:39
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:41
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:43
+msgid "Components are described by edges"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:45
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:47
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:48
+msgid "`edge` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:50
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:53
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:65
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:78
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:14
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid ""
+"Description of the return values for biconnected components, connected "
+"components (edge version) and strongly connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, component, n_seq, edge)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid ""
+"Component identifier. It is equal to the minimum edge identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:94
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:96
+msgid "http://en.wikipedia.org/wiki/Biconnected_component"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:97
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:100
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:101
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:102
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_boykovKolmogorov.po b/locale/ja/LC_MESSAGES/pgr_boykovKolmogorov.po
new file mode 100644
index 0000000..84d76a4
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_boykovKolmogorov.po
@@ -0,0 +1,435 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:14
+msgid "pgr_boykovKolmogorov - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:18
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:20
+msgid ""
+"``pgr_boykovKolmogorov`` — Calculates the flow on the graph edges that "
+"maximizes the flow from the sources to the targets using Boykov Kolmogorov "
+"algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:29
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:30
+msgid "Renamed 2.5.0, Previous name pgr_maxFlowBoykovKolmogorov"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:31
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:8
+msgid ""
+"When the maximum flow is 0 then there is no flow and **EMPTY SET** is "
+"returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:12
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:15
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid ""
+"Creates a **super source** and edges to all the source(s), and a **super "
+"target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid ""
+"The maximum flow through the graph is guaranteed to be the value returned by"
+" :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and"
+" can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:42
+msgid "Running time: Polynomial"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:45
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:61
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:63
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:82
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:84
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:103
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:105
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:124
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:126
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:141
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:4
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10 ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11 ../../build/doc/pgr_maxFlow.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:12
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:159
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:161
+msgid ""
+":ref:`maxFlow`, :ref:`pgr_pushRelabel <pgr_pushRelabel>`, "
+":ref:`pgr_EdmondsKarp <pgr_edmondsKarp>`"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:162
+msgid "http://www.boost.org/libs/graph/doc/boykov_kolmogorov_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:165
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:166
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:167
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_bridges.po b/locale/ja/LC_MESSAGES/pgr_bridges.po
new file mode 100644
index 0000000..a80bf4e
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_bridges.po
@@ -0,0 +1,310 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bridges.rst:13
+msgid "pgr_bridges - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:16
+msgid "``pgr_bridges`` - Return the bridges of an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:31
+msgid ""
+"A bridge is an edge of an undirected graph whose deletion increases its "
+"number of connected components. This implementation can only be used with an"
+" undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:36
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:38
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:40
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:42
+msgid "`edge` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:44
+msgid "Running time: :math:`O(E * (V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:47
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:59
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:72
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the return values for bridges"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:88
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:90
+msgid "http://en.wikipedia.org/wiki/Bridge_%28graph_theory%29"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:91
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:94
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:95
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:96
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_connectedComponents.po b/locale/ja/LC_MESSAGES/pgr_connectedComponents.po
new file mode 100644
index 0000000..2474096
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_connectedComponents.po
@@ -0,0 +1,346 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_connectedComponents.rst:13
+msgid "pgr_connectedComponents - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:16
+msgid ""
+"``pgr_connectedComponents`` — Return the connected components of an "
+"undirected graph using a DFS-based approach. In particular, the algorithm "
+"implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:22
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:30
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:32
+msgid ""
+"A connected component of an undirected graph is a set of vertices that are "
+"all reachable from each other. This implementation can only be used with an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:37
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:39
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:41
+msgid "Components are described by vertices"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:43
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:45
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:46
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:48
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:63
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:76
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid ""
+"Description of the return values for connected components and strongly "
+"connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, component, n_seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid ""
+"Component identifier. It is equal to the minimum node identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:92
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:94
+msgid "http://en.wikipedia.org/wiki/Connected_component_%28graph_theory%29"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:95
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:98
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:99
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:100
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_contractGraph.po b/locale/ja/LC_MESSAGES/pgr_contractGraph.po
new file mode 100644
index 0000000..8d27664
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_contractGraph.po
@@ -0,0 +1,488 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_contractGraph.rst:13
+msgid "pgr_contractGraph - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:15
+msgid ""
+"``pgr_contractGraph`` — Performs graph contraction and returns the "
+"contracted vertices and edges."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:23
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:30
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:32
+msgid ""
+"Contraction reduces the size of the graph by removing some of the vertices "
+"and edges and, for example, might add edges that represent a sequence of "
+"original edges decreasing the total time and space used in graph algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:35
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:52
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:38
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:40
+msgid "There are two types of contraction methods used namely,"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:42
+msgid "Dead End Contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:43
+msgid "Linear Contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:45
+msgid "The values returned include the added edges and contracted vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:47
+msgid "The returned values are ordered as follows:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:49
+msgid "column `id` ascending when type = `v`"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:50
+msgid "column `id` descending when type = `e`"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:55
+msgid "Signature Summary:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:57
+msgid "The pgr_contractGraph function has the following signatures:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:68
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:74
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:80
+msgid "Making a dead end contraction and a linear contraction."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:87
+msgid "Complete signature"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:93
+msgid ""
+"Making a dead end contraction and a linear contraction and vertex 2 is "
+"forbidden from contraction"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_contractGraph.rst:109
+#: ../../build/doc/pgr_contractGraph.rst:130
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_contractGraph.rst:109
+#: ../../build/doc/pgr_contractGraph.rst:130
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_contractGraph.rst:109
+#: ../../build/doc/pgr_contractGraph.rst:130
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgr_contractGraph.rst:136
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_contractGraph.rst:146
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_contractGraph.rst:147
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_contractGraph.rst:148
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:106
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:111
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:111
+#: ../../build/doc/pgr_contractGraph.rst:133
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:111
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:112
+msgid "**contraction_order**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:112
+#: ../../build/doc/pgr_contractGraph.rst:115
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:113
+msgid "Ordered contraction operations."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:113
+msgid "1 = Dead end contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:114
+msgid "2 = Linear contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:115
+msgid "**forbidden_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:115
+msgid ""
+"(optional). Identifiers of vertices forbidden from contraction. Default is "
+"an empty array."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:116
+msgid "**max_cycles**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:116
+#: ../../build/doc/pgr_contractGraph.rst:132
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:116
+msgid ""
+"(optional). Number of times the contraction operations on "
+"`contraction_order` will be performed. Default is 1."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:117
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:117
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:117
+msgid "When ``true`` the graph is considered as `Directed`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:118
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:123
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:125
+msgid ""
+"RETURNS SETOF  (seq, type, id, contracted_vertices, source, target, cost)"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:127
+msgid "The function returns a single row. The columns of the row are:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:132
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:132
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:133
+msgid "**type**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:134
+msgid "Type of the `id`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:134
+msgid "'v' when `id` is an identifier of a vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:135
+msgid "'e' when `id` is an identifier of an edge."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:136
+#: ../../build/doc/pgr_contractGraph.rst:146
+#: ../../build/doc/pgr_contractGraph.rst:147
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:143
+msgid "Identifier of:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:137
+msgid "the  vertex when `type = 'v'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:139
+msgid "The vertex belongs to the edge_table passed as a parameter."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:140
+msgid "the edge when `type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:142
+msgid "The `id` is a decreasing sequence starting from **-1**."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:144
+msgid "Representing a pseudo `id` as is not incorporated into the edge_table."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:145
+msgid "**contracted_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:145
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:145
+msgid "Array of contracted vertex identifiers."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:146
+msgid ""
+"Identifier of the source vertex of the current edge `id`. Valid values when "
+"`type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:147
+msgid ""
+"Identifier of the target vertex of the current edge `id`. Valid values when "
+"`type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:148
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:148
+msgid ""
+"Weight of the edge (`source`, `target`). Valid values when `type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:152
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:154
+msgid "Only dead end contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:160
+msgid "Only linear contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:168
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:169
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:170
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_createTopology.po b/locale/ja/LC_MESSAGES/pgr_createTopology.po
new file mode 100644
index 0000000..44a282e
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_createTopology.po
@@ -0,0 +1,395 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_createTopology.rst:13
+msgid "pgr_createTopology"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:18
+msgid ""
+"``pgr_createTopology`` — Builds a network topology based on the geometry "
+"information."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:22
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:24
+#: ../../build/doc/pgr_createTopology.rst:72
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:26
+msgid ""
+"``OK`` after the network topology has been built and the vertices table "
+"created."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:27
+msgid "``FAIL`` when the network topology was not built due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:42
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:45
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:46
+msgid "The topology creation function accepts the following parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:48
+msgid "``text`` Network table name. (may contain the schema name AS well)"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:49
+msgid ""
+"``float8`` Snapping tolerance of disconnected edges. (in projection unit)"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:50
+msgid ""
+"``text``  Geometry column name of the network table. Default value is "
+"``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:51
+msgid ""
+"``text``  Primary key column name of the network table. Default value is "
+"``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:52
+msgid ""
+"``text`` Source column name of the network table. Default value is "
+"``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:53
+msgid ""
+"``text``  Target column name of the network table.  Default value is "
+"``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:54
+msgid ""
+"``text``   Condition to SELECT a subset or rows.  Default value is ``true`` "
+"to indicate all rows that where ``source`` or ``target`` have a null value, "
+"otherwise the condition is used."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:56
+msgid "``boolean`` Clean any previous topology.  Default value is ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:60
+msgid "The ``edge_table`` will be affected"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:62
+msgid "The ``source`` column values will change."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:63
+msgid "The ``target`` column values will change."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:65
+msgid ""
+"An index will be created, if it doesn't exists, to speed up the process to "
+"the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:67
+msgid "``id``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:68
+msgid "``the_geom``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:69
+msgid "``source``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:70
+msgid "``target``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:74
+msgid "``OK`` after the network topology has been built."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:76
+msgid "Creates a vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:77
+msgid "Fills ``id`` and ``the_geom`` columns of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:78
+msgid ""
+"Fills the source and target columns of the edge table referencing the ``id``"
+" of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:81
+msgid "``FAIL`` when the network topology was not built due to an error:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:83
+msgid ""
+"A required column of the Network table is not found or is not of the "
+"appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:84
+msgid "The condition is not well formed."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:85
+msgid "The names of source , target or id are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:86
+msgid "The SRID of the geometry could not be determined."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:90
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:91
+msgid ""
+"The vertices table is a requirement of the :ref:`pgr_analyzeGraph "
+"<pgr_analyze_graph>` and the :ref:`pgr_analyzeOneway <pgr_analyze_oneway>` "
+"functions."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:93
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:95
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:96
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex."
+" See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:97
+msgid ""
+"``integer``  Indicator that the vertex might have a problem. See "
+":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:98
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"AS incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:99
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"AS outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:100
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:103
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:104
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:107
+msgid "Usage when the edge table's columns MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:110
+msgid "The simplest way to use pgr_createTopology is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:118
+msgid "When the arguments are given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:119
+msgid "We get the same result AS the simplest way to use the function."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"In this example, the column ``id`` of the table ``ege_table`` is passed to "
+"the function as the geometry column,"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"and the geometry column ``the_geom`` is passed to the function as the id "
+"column."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:136
+#: ../../build/doc/pgr_createTopology.rst:205
+msgid "When using the named notation"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:137
+msgid ""
+"Parameters defined with a default value can be omitted, as long as the value"
+" matches the default And The order of the parameters would not matter."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:153
+#: ../../build/doc/pgr_createTopology.rst:219
+msgid "Selecting rows using rows_where parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:154
+msgid "Selecting rows based on the id."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:160
+msgid ""
+"Selecting the rows where the geometry is near the geometry of row with ``id "
+"= 5``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:166
+#: ../../build/doc/pgr_createTopology.rst:227
+msgid ""
+"Selecting the rows where the geometry is near the geometry of the row with "
+"``gid`` =100 of the table ``othertable``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:176
+msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:178
+msgid "For the following table"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:185
+msgid "Using positional notation:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:186
+msgid ""
+"The arguments need to be given in the order described in the parameters."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:188
+msgid ""
+"Note that this example uses clean flag. So it recreates the whole vertices "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropiriate "
+"order:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"In this example, the column ``gid`` of the table ``mytable`` is passed to "
+"the function AS the geometry column,"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"and the geometry column ``mygeom`` is passed to the function AS the id "
+"column."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:206
+msgid ""
+"In this scenario omitting a parameter would create an error because the "
+"default values for the column names do not match the column names of the "
+"table. The order of the parameters do not matter:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:220
+msgid "Based on id:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:235
+msgid "Examples with full output"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:237
+msgid ""
+"This example start a clean topology, with 5 edges, and then its incremented "
+"to the rest of the edges."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:243
+msgid "The example uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:247
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:249
+msgid ":ref:`topology` for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:250
+msgid ""
+":ref:`pgr_create_vert_table` to reconstruct the vertices table based on the "
+"source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:251
+msgid ""
+":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:254
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:255
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:256
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_createVerticesTable.po b/locale/ja/LC_MESSAGES/pgr_createVerticesTable.po
new file mode 100644
index 0000000..191059e
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_createVerticesTable.po
@@ -0,0 +1,341 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_createVerticesTable.rst:13
+msgid "pgr_createVerticesTable"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:18
+msgid ""
+"``pgr_createVerticesTable`` — Reconstructs the vertices table based on the "
+"source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:22
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:24
+#: ../../build/doc/pgr_createVerticesTable.rst:62
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:26
+#: ../../build/doc/pgr_createVerticesTable.rst:64
+msgid "``OK`` after the vertices table has been reconstructed."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:27
+#: ../../build/doc/pgr_createVerticesTable.rst:69
+msgid ""
+"``FAIL`` when the vertices table was not reconstructed due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:43
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:44
+msgid ""
+"The reconstruction of the vertices table  function accepts the following "
+"parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:46
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:47
+msgid ""
+"``text``  Geometry column name of the network table. Default value is "
+"``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:48
+msgid ""
+"``text`` Source column name of the network table. Default value is "
+"``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:49
+msgid ""
+"``text``  Target column name of the network table.  Default value is "
+"``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:50
+msgid ""
+"``text``   Condition to SELECT a subset or rows.  Default value is ``true`` "
+"to indicate all rows."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:54
+msgid "The ``edge_table`` will be affected"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:56
+msgid ""
+"An index will be created, if it doesn't exists, to speed up the process to "
+"the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:58
+msgid "``the_geom``"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:59
+msgid "``source``"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:60
+msgid "``target``"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:66
+msgid "Creates a vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:67
+msgid ""
+"Fills ``id`` and ``the_geom`` columns of the vertices table based on the "
+"source and target columns of the edge table."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:71
+msgid ""
+"A required column of the Network table is not found or is not of the "
+"appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:72
+msgid "The condition is not well formed."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:73
+msgid "The names of source, target are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:74
+msgid "The SRID of the geometry could not be determined."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:77
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:78
+msgid ""
+"The vertices table is a requierment of the :ref:`pgr_analyzeGraph "
+"<pgr_analyze_graph>` and the :ref:`pgr_analyzeOneway <pgr_analyze_oneway>` "
+"functions."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:80
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:82
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:83
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex."
+" See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:84
+msgid ""
+"``integer``  Indicator that the vertex might have a problem. See "
+":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:85
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:86
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:87
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:90
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:91
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:94
+msgid "Usage when the edge table's columns MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:97
+msgid "The simplest way to use pgr_createVerticesTable is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:104
+msgid "When the arguments are given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:109
+msgid "We get the same result as the simplest way to use the function."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:111
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order: In this example, the column source column ``source`` of the table "
+"``mytable`` is passed to the function as the geometry column, and the "
+"geometry column ``the_geom`` is passed to the function as the source column."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:128
+#: ../../build/doc/pgr_createVerticesTable.rst:205
+msgid "When using the named notation"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:129
+#: ../../build/doc/pgr_createVerticesTable.rst:206
+msgid "The order of the parameters do not matter:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:139
+msgid ""
+"Parameters defined with a default value can be omitted, as long as the value"
+" matches the default:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:146
+#: ../../build/doc/pgr_createVerticesTable.rst:220
+msgid "Selecting rows using rows_where parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:147
+msgid "Selecting rows based on the id."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:153
+msgid ""
+"Selecting the rows where the geometry is near the geometry of row with "
+"``id`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:159
+#: ../../build/doc/pgr_createVerticesTable.rst:243
+msgid ""
+"Selecting the rows where the geometry is near the geometry of the row with "
+"``gid`` =100 of the table ``othertable``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:170
+msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:172
+msgid "For the following table"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:180
+msgid "Using positional notation:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:181
+msgid ""
+"The arguments need to be given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order: In this example, the column ``src`` of the table ``mytable`` is "
+"passed to the function as the geometry column, and the geometry column "
+"``mygeom`` is passed to the function as the source column."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:216
+msgid ""
+"In this scenario omitting a parameter would create an error because the "
+"default values for the column names do not match the column names of the "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:221
+msgid "Selecting rows based on the gid."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:231
+msgid ""
+"Selecting the rows where the geometry is near the geometry of row with "
+"``gid`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:260
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:282
+msgid "The example uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:286
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:288
+msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:289
+msgid ""
+":ref:`pgr_createTopology <pgr_create_topology>` to create a topology based "
+"on the geometry."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:290
+msgid ""
+":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:291
+msgid ":ref:`pgr_analyze_oneway` to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:294
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:295
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:296
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_dijkstra.po b/locale/ja/LC_MESSAGES/pgr_dijkstra.po
new file mode 100644
index 0000000..45cbd10
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_dijkstra.po
@@ -0,0 +1,621 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid ""
+"``pgr_dijkstra`` — Returns the shortest path(s) using Dijkstra algorithm. In"
+" particular, the Dijkstra algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:24
+msgid "Availability"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:25
+msgid "pgr_dijkstra(one to one) 2.0.0, signature change 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:26
+msgid "pgr_dijkstra(other signatures) 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:31
+msgid ""
+"Dijkstra's algorithm, conceived by Dutch computer scientist Edsger Dijkstra "
+"in 1956. It is a graph search algorithm that solves the shortest path "
+"problem for a graph with non-negative edge path costs, producing a shortest "
+"path from a starting vertex (``start_vid``) to an ending vertex "
+"(``end_vid``). This implementation can be used with a directed graph and an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:38
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:60
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:41
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:42
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:44
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:46
+msgid "The `agg_cost` the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:48
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:50
+msgid "The `agg_cost` the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:52
+msgid ""
+"For optimization purposes, any duplicated value in the `start_vids` or "
+"`end_vids` are ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:54
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:56
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:57
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:59
+msgid "Running time: :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:63
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:78
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:84
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:91
+msgid ""
+"The minimal signature is for a **directed** graph from one ``start_vid`` to "
+"one ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:104
+msgid "pgr_dijkstra One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:114
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:113 ../../build/doc/pgr_dijkstra.rst:136
+#: ../../build/doc/pgr_dijkstra.rst:167 ../../build/doc/pgr_dijkstra.rst:197
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:114 ../../build/doc/pgr_dijkstra.rst:137
+#: ../../build/doc/pgr_dijkstra.rst:168 ../../build/doc/pgr_dijkstra.rst:198
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:127
+msgid "pgr_dijkstra One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:137
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:139
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_dijkstra` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:142
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:143
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:158
+msgid "pgr_dijkstra Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:168
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:170
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_dijkstra` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:173 ../../build/doc/pgr_dijkstra.rst:203
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:174 ../../build/doc/pgr_dijkstra.rst:204
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:188
+msgid "pgr_dijkstra Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:198
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:200
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:206
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:215
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:225
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:230
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:230
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:230
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:231 ../../build/doc/pgr_dijkstra.rst:233
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:231
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:232
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:232 ../../build/doc/pgr_dijkstra.rst:234
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:232
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:233
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:233
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:234
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:234
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:236
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:248
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:250
+msgid ""
+"The examples of this section are based on the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:252
+msgid ""
+"The examples include combinations from starting vertices 2 and 11 to ending "
+"vertices 3 and 5 in a directed and undirected graph with and with out "
+"reverse_cost."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:256
+msgid ""
+"Examples for queries marked as ``directed`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:258
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:267
+msgid ""
+"Examples for queries marked as ``undirected`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:269
+msgid "The examples in this section use the following :ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:277
+msgid "Examples for queries marked as ``directed`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:279
+msgid "The examples in this section use the following :ref:`fig3`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:287
+msgid "Examples for queries marked as ``undirected`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:289
+msgid "The examples in this section use the following :ref:`fig4`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:297
+msgid "Equvalences between signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:299
+msgid ""
+"For queries marked as ``directed`` with ``cost`` and ``reverse_cost`` "
+"columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:301 ../../build/doc/pgr_dijkstra.rst:313
+msgid "The examples in this section use the following:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:303
+msgid ":ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:311
+msgid ""
+"For queries marked as ``undirected`` with ``cost`` and ``reverse_cost`` "
+"columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:315
+msgid ":ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:324
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:326
+msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:327
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:330
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:331
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:332
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_dijkstraCost.po b/locale/ja/LC_MESSAGES/pgr_dijkstraCost.po
new file mode 100644
index 0000000..a9193fb
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_dijkstraCost.po
@@ -0,0 +1,473 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstraCost.rst:13
+msgid "pgr_dijkstraCost"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:17
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:19
+msgid "``pgr_dijkstraCost``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:21
+msgid ""
+"Using Dijkstra algorithm implemented by Boost.Graph, and extract only the "
+"aggregate cost of the shortest path(s) found, for the combination of "
+"vertices given."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:27
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:30
+msgid "Availability"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:31
+msgid "pgr_dijkstraCost(all signatures) 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:33
+msgid ""
+"The ``pgr_dijkstraCost`` algorithm, is a good choice to calculate the sum of"
+" the costs of the shortest path for a subset of pairs of nodes of the graph."
+" We make use of the Boost's implementation of dijkstra which runs in "
+":math:`O(V \\log V + E)` time."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:39
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:71
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:42
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:43
+msgid ""
+"Returns the sum of the costs of the shortest path for pair combination of "
+"nodes in the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:44
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:45
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:47
+msgid ""
+"The returned values are in the form of a set of `(start_vid, end_vid, "
+"agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:49
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:51
+msgid "The `agg_cost` int the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:53
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:55
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:57
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:60
+msgid "For undirected graphs, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:62
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:64
+msgid "Any duplicated value in the `start_vids` or `end_vids` is ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:66
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:68
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:69
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:71
+msgid "Running time: :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:74
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:89
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:95
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:97
+msgid ""
+"The minimal signature is for a **directed** graph from one ``start_vid`` to "
+"one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:106
+msgid "Example"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:117
+msgid "pgr_dijkstraCost One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:122
+msgid ""
+"This signature performs a Dijkstra from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:121
+#: ../../build/doc/pgr_dijkstraCost.rst:150
+#: ../../build/doc/pgr_dijkstraCost.rst:176
+#: ../../build/doc/pgr_dijkstraCost.rst:201
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:122
+#: ../../build/doc/pgr_dijkstraCost.rst:151
+#: ../../build/doc/pgr_dijkstraCost.rst:177
+#: ../../build/doc/pgr_dijkstraCost.rst:202
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:141
+msgid "pgr_dijkstraCost One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:152
+msgid ""
+"This signature performs a Dijkstra from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:167
+msgid "pgr_dijkstraCost Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:178
+msgid ""
+"This signature performs a Dijkstra from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:192
+msgid "pgr_dijkstraCost Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:202
+msgid ""
+"This signature performs a Dijkstra from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:213
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10 ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11 ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:229
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:231
+msgid "Demonstration of repeated values are ignored, and result is sorted."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:237
+msgid "Making `start_vids` the same as `end_vids`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:246
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:248
+msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:249
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:252
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:253
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:254
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_dijkstraCostMatrix.po b/locale/ja/LC_MESSAGES/pgr_dijkstraCostMatrix.po
new file mode 100644
index 0000000..95cf121
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_dijkstraCostMatrix.po
@@ -0,0 +1,358 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:13
+msgid "pgr_dijkstraCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:18
+msgid ""
+"``pgr_dijkstraCostMatrix`` - Calculates the a cost matrix using "
+"pgr_dijktras."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:29
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:32
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:34
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:36
+msgid "Using Dijkstra algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:39
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:56
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:59
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:59
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:67
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:79
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:87
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:89
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:97
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:106
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:109
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:111
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:111
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:111
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:112
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:112
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:112
+msgid "Array of identifiers of the vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:113
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:113
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:113
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:123
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:125
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:133
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:135
+msgid ":ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:136
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:137
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:138
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:141
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:142
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:143
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_dijkstraVia.po b/locale/ja/LC_MESSAGES/pgr_dijkstraVia.po
new file mode 100644
index 0000000..0a3c5f1
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_dijkstraVia.po
@@ -0,0 +1,480 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstraVia.rst:13
+msgid "pgr_dijkstraVia - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:19
+msgid ""
+"``pgr_dijkstraVia`` — Using dijkstra algorithm, it finds the route that goes"
+" through a list of vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:30
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:32
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:34
+msgid ""
+"Given a list of vertices and a graph, this function is equivalent to finding"
+" the shortest path between :math:`vertex_i` and :math:`vertex_{i+1}` for all"
+" :math:`i < size\\_of(vertex_via)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:37
+msgid "The paths represents the sections of the route."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:39
+msgid "This is a proposed function"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:42
+msgid "Signatrue Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:53
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:59
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:67
+msgid "Find the route that visits the vertices 1 3 9  in that order"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:77
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:86
+msgid ""
+"Find the route that visits the vertices 1 3 9  in that order on an "
+"undirected graph, avoiding U-turns when possible"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:94
+msgid "Description of the Signature"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:124
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:7
+#: ../../build/doc/pgr_dijkstraVia.rst:108
+#: ../../build/doc/pgr_dijkstraVia.rst:124
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:7
+#: ../../build/doc/pgr_dijkstraVia.rst:108
+#: ../../build/doc/pgr_dijkstraVia.rst:124
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_dijkstraVia.rst:133
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+#: ../../build/doc/pgr_dijkstraVia.rst:105
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:7
+#: ../../build/doc/pgr_dijkstraVia.rst:108
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:110
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:110
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:110
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgr_dijkstraVia.rst:111
+msgid "**via_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgr_dijkstraVia.rst:111
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Array of ordered vertices identifiers that are going to be visited."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgr_dijkstraVia.rst:112
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgr_dijkstraVia.rst:112
+#: ../../build/doc/pgr_dijkstraVia.rst:113
+#: ../../build/doc/pgr_dijkstraVia.rst:114
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_dijkstraVia.rst:113
+msgid "**strict**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``false``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "When ``false`` ignores missing paths returning all paths found"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "When ``true`` if a path is missing stops and returns `EMPTY SET`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgr_dijkstraVia.rst:114
+msgid "**U_turn_on_edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"When ``true`` departing from a visited vertex will not try to avoid using "
+"the edge used to reach it.  In other words, U turn using the edge with same "
+"`id` is allowed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When ``false`` when a departing from a visited vertex tries to avoid using "
+"the edge used to reach it.  In other words, U turn using the edge with same "
+"`id` is used when no other path is found."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:111
+msgid "Array of vertices identifiers"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:112
+#: ../../build/doc/pgr_dijkstraVia.rst:114
+msgid ""
+"(optional) Default is true (is directed). When set to false the graph is "
+"considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:113
+msgid ""
+"(optional) ignores if a subsection of the route is missing and returns "
+"everything it found Default is true (is directed). When set to false the "
+"graph is considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:119
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:121
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:126
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:126
+#: ../../build/doc/pgr_dijkstraVia.rst:127
+#: ../../build/doc/pgr_dijkstraVia.rst:128
+#: ../../build/doc/pgr_dijkstraVia.rst:129
+#: ../../build/doc/pgr_dijkstraVia.rst:130
+#: ../../build/doc/pgr_dijkstraVia.rst:131
+#: ../../build/doc/pgr_dijkstraVia.rst:132
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:126
+msgid "Sequential value starting from 1."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:127
+msgid "**path_pid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:127
+msgid "Identifier of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:128
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:128
+msgid "Sequential value starting from 1 for the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:129
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:129
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:130
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:130
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:131
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:131
+msgid "Identifier of the node in the path from start_vid to end_vid."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:132
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:132
+msgid ""
+"Identifier of the edge used to go from node to the next node in the path "
+"sequence. -1 for the last node of the path. -2 for the last node of the "
+"route."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:133
+#: ../../build/doc/pgr_dijkstraVia.rst:134
+#: ../../build/doc/pgr_dijkstraVia.rst:135
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:133
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the route "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:134
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:134
+msgid "Total cost from ``start_vid`` to ``end_vid`` of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:135
+msgid "**route_agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:135
+msgid ""
+"Total cost from ``start_vid`` of ``path_pid = 1`` to ``end_vid`` of the "
+"current ``path_pid`` ."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:140
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:142
+msgid "Find the route that visits the vertices 1 5 3 9 4 in that order"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:148
+msgid "What's the aggregate cost of the third path?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:154
+msgid ""
+"What's the route's aggregate cost of the route at the end of the third path?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:160
+msgid "How are the nodes visited in the route?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:166
+msgid ""
+"What are the aggregate costs of the route when the visited vertices are "
+"reached?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:172
+msgid ""
+"show the route's seq and aggregate cost and a status of \"passes in front\" "
+"or \"visits\" node 9"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:179
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:181
+msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:182
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:185
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:186
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:187
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_drivingDistance.po b/locale/ja/LC_MESSAGES/pgr_drivingDistance.po
new file mode 100644
index 0000000..77f7b8e
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_drivingDistance.po
@@ -0,0 +1,391 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_drivingDistance.rst:13
+msgid "pgr_drivingDistance"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:19
+msgid ""
+"``pgr_drivingDistance`` - Returns the driving distance from a start node."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:25
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:28
+msgid "Availability"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:29
+msgid "pgr_drivingDistance(single vertex) 2.0.0, signature change 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:30
+msgid "pgr_drivingDistance(multiple vertices) 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:35
+msgid ""
+"Using the Dijkstra algorithm, extracts all the nodes that have costs less "
+"than or equal to the value ``distance``. The edges extracted will conform to"
+" the corresponding spanning tree."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:39
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:57
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:70
+msgid "Driving Distance From A Single Starting Vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:82
+msgid "Driving Distance From Multiple Starting Vertices"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:90
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_drivingDistance.rst:101
+#: ../../build/doc/pgr_drivingDistance.rst:119
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_drivingDistance.rst:101
+#: ../../build/doc/pgr_drivingDistance.rst:119
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_drivingDistance.rst:101
+#: ../../build/doc/pgr_drivingDistance.rst:119
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_drivingDistance.rst:125
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:98
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:103
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:103
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:103
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:104
+#: ../../build/doc/pgr_drivingDistance.rst:122
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:104
+#: ../../build/doc/pgr_drivingDistance.rst:123
+#: ../../build/doc/pgr_drivingDistance.rst:124
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:104
+#: ../../build/doc/pgr_drivingDistance.rst:122
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:105
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:105
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:105
+msgid "Array of identifiers of the starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:106
+msgid "**distance**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:106
+#: ../../build/doc/pgr_drivingDistance.rst:125
+#: ../../build/doc/pgr_drivingDistance.rst:126
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:106
+msgid "Upper limit for the inclusion of the node in the result."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:107
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:107
+#: ../../build/doc/pgr_drivingDistance.rst:108
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:107
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:108
+msgid "**equicost**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:108
+msgid ""
+"(optional). When ``true`` the node will only appear in the closest "
+"``start_vid`` list.  Default is ``false`` which resembles several calls "
+"using the single starting point signatures. Tie brakes are arbitrary."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:114
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:116
+msgid "Returns set of ``(seq [, start_v], node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:121
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:121
+#: ../../build/doc/pgr_drivingDistance.rst:122
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:121
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:123
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:123
+msgid ""
+"Identifier of the node in the path within the limits from ``start_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:124
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:124
+msgid ""
+"Identifier of the edge used to arrive to ``node``. ``0`` when the ``node`` "
+"is the ``start_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:125
+msgid "Cost to traverse ``edge``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:126
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:126
+msgid "Aggregate cost from ``start_vid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:132
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:135
+msgid ""
+"Examples for queries marked as ``directed`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:137
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:144
+msgid ""
+"Examples for queries marked as ``undirected`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:146
+msgid "The examples in this section use the following :ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:154
+msgid "Examples for queries marked as ``directed`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:156
+msgid "The examples in this section use the following :ref:`fig3`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:165
+msgid "Examples for queries marked as ``undirected`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:167
+msgid "The examples in this section use the following :ref:`fig4`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:175
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:177
+msgid ":ref:`pgr_alphashape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:178
+msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:179
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:182
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:183
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:184
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_edgeDisjointPaths.po b/locale/ja/LC_MESSAGES/pgr_edgeDisjointPaths.po
new file mode 100644
index 0000000..54a0ffe
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_edgeDisjointPaths.po
@@ -0,0 +1,541 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:14
+msgid "pgr_edgeDisjointPaths - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:19
+msgid ""
+"``pgr_edgeDisjointPaths`` — Calculates edge disjoint paths between two "
+"groups of vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:25
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:28
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:36
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:38
+msgid ""
+"Calculates the edge disjoint paths between two groups of vertices. Utilizes "
+"underlying maximum flow algorithms to calculate the paths."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:42
+msgid "Characteristics:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:49
+msgid "The main characterics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:45
+msgid "Calculates the edge disjoint paths between any two groups of vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:46
+msgid ""
+"Returns EMPTY SET when source and destination are the same, or cannot be "
+"reached."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:47
+msgid "The graph can be directed or undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:48
+msgid "One to many, many to one, many to many versions are also supported."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:49
+msgid "Uses :ref:`pgr_boykovKolmogorov` to calculate the paths."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:52
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:67
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:73
+msgid "Minimal use"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:81
+msgid ""
+"The minimal use is for a **directed** graph from one ``start_vid`` to one "
+"``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:93
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:98
+msgid ""
+"This signature finds the set of dijoint paths from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:96
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:120
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:149
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:175
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:97
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:121
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:150
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:176
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:117
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:126
+msgid ""
+"This signature finds the sset of disjoint paths  from the ``start_vid`` to "
+"each one of the ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:122
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:151
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:177
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_edgeDisjointPaths`."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:123
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:146
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:152
+msgid ""
+"This signature finds the set of disjoint paths from each one of the "
+"``start_vid`` in ``start_vids`` to the ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:152
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:172
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:178
+msgid ""
+"This signature finds the set of disjoint paths from each one of the "
+"``start_vid`` in ``start_vids`` to each one of the ``end_vid`` in "
+"``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:178
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:195
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10 ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11 ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:212
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:214
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:217
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:218
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:219
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_edmondsKarp.po b/locale/ja/LC_MESSAGES/pgr_edmondsKarp.po
new file mode 100644
index 0000000..8523277
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_edmondsKarp.po
@@ -0,0 +1,438 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_edmondsKarp.rst:14
+msgid "pgr_edmondsKarp - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:18
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:20
+msgid ""
+"``pgr_edmondsKarp`` — Calculates the flow on the graph edges that maximizes "
+"the flow from the sources to the targets using Push Relabel Algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:29
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:30
+msgid "Renamed 2.5.0, Previous name pgr_maxFlowEdmondsKarp"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:31
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:8
+msgid ""
+"When the maximum flow is 0 then there is no flow and **EMPTY SET** is "
+"returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:12
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:15
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid ""
+"Creates a **super source** and edges to all the source(s), and a **super "
+"target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid ""
+"The maximum flow through the graph is guaranteed to be the value returned by"
+" :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and"
+" can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:42
+msgid "Running time: :math:`O( V * E ^ 2)`"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:45
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:62
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:64
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:83
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:85
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:104
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:106
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:125
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:127
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:142
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:4
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10 ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11 ../../build/doc/pgr_maxFlow.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:12
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:160
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:162
+msgid ""
+":ref:`maxFlow`, :ref:`pgr_boykovKolmogorov <pgr_boykovKolmogorov>`, "
+":ref:`pgr_PushRelabel <pgr_pushRelabel>`"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:163
+msgid "http://www.boost.org/libs/graph/doc/edmonds_karp_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:164
+msgid "https://en.wikipedia.org/wiki/Edmonds%E2%80%93Karp_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:167
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:168
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:169
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_eucledianTSP.po b/locale/ja/LC_MESSAGES/pgr_eucledianTSP.po
new file mode 100644
index 0000000..5b9be5e
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_eucledianTSP.po
@@ -0,0 +1,187 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_eucledianTSP.rst:13
+msgid "pgr_eucledianTSP"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:18
+msgid ""
+"``pgr_eucledianTSP`` - Returns a route that visits all the coordinates pairs"
+" exactly once."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:22
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:24
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:26
+msgid ""
+"The travelling salesman problem (TSP) or travelling salesperson problem asks"
+" the following question:"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:28
+msgid ""
+"Given a list of cities and the distances between each pair of cities, what "
+"is the shortest possible route that visits each city exactly once and "
+"returns to the origin city?"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:30
+msgid ""
+"This implementation uses simulated annealing to return the approximate "
+"solution when the input is given in the form of coordinates."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:33
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:48
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:54
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:63
+msgid ""
+"Because the documentation examples are auto generated and tested for non "
+"changing results, and the default is to have random execution, the example "
+"is wrapping the actual call."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:75
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:90
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:96
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:99
+msgid "Description of the coordinates SQL query"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:102
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:102
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:102
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:104
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:104
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:104
+msgid "Identifier of the coordinate. (optional)"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:105
+msgid "**x**"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:105
+#: ../../build/doc/pgr_eucledianTSP.rst:106
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:105
+msgid "X value of the coordinate."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:106
+msgid "**y**"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:106
+msgid "Y value of the coordinate."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:110
+msgid ""
+"When the value of **id** is not given then the coordinates will receive an "
+"**id** starting from 1, in the order given."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:125
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:127
+msgid "Skipping the Simulated Annealing & showing some process information"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:135
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:139
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:140
+msgid "New in version 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:145
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:147
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:148
+msgid "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:149
+msgid "http://en.wikipedia.org/wiki/Simulated_annealing"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:152
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:153
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:154
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_floydWarshall.po b/locale/ja/LC_MESSAGES/pgr_floydWarshall.po
new file mode 100644
index 0000000..4fe9ece
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_floydWarshall.po
@@ -0,0 +1,348 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_floydWarshall.rst:13
+msgid "pgr_floydWarshall"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:16
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:18
+msgid ""
+"``pgr_floydWarshall`` - Returns the sum of the costs of the shortest path "
+"for each pair of nodes in the graph using Floyd-Warshall algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:27
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:28
+msgid "Renamed on 2.2.0, previous name pgr_apspWarshall"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:31
+msgid ""
+"The Floyd-Warshall algorithm, also known as Floyd's algorithm, is a good "
+"choice to calculate the sum of the costs of the shortest path for each pair "
+"of nodes in the graph, for *dense graphs*. We make use of the  Boost's "
+"implementation which runs in :math:`\\Theta(V^3)` time,"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:38
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:58
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:41
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:42
+msgid ""
+"Returns the sum of the costs of the shortest path for each pair of nodes in "
+"the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:43
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:44
+msgid ""
+"Boost returns a :math:`V \\times V` matrix, where the infinity values. "
+"Represent the distance between vertices for which there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:47
+msgid ""
+"We return only the non infinity values in form of a set of `(start_vid, "
+"end_vid, agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:49
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:52
+msgid "For the undirected graph, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:54
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:56
+msgid "When  `start_vid` = `end_vid`, the `agg_cost` = 0."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:58
+msgid "**Recommended, use a bounding box of no more than 3500 edges.**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:61
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:70
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:77
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:84
+msgid "On a directed graph."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:95
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:103
+msgid "On an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:110
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query (id is not necessary)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_floydWarshall.rst:136
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_floydWarshall.rst:123
+#: ../../build/doc/pgr_floydWarshall.rst:136
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_floydWarshall.rst:123
+#: ../../build/doc/pgr_floydWarshall.rst:136
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:118
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:120
+msgid "Receives  ``(edges_sql, directed)``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:123
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:125
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:125
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:125
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:126
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:126
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:126
+msgid ""
+"(optional) Default is true (is directed). When set to false the graph is "
+"considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:131
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:133
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:138
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:138
+#: ../../build/doc/pgr_floydWarshall.rst:139
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:138
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:139
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:139
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:140
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:140
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:140
+msgid "Total cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:148
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:149
+msgid "Re-design of pgr_apspWarshall in Version 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:152
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:154
+msgid ":ref:`pgr_johnson`"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:155
+msgid ""
+"`Boost floyd-Warshall "
+"<http://www.boost.org/libs/graph/doc/floyd_warshall_shortest.html>`_ "
+"algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:156
+msgid "Queries uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:159
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:160
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:161
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_gsoc_vrppdtw.po b/locale/ja/LC_MESSAGES/pgr_gsoc_vrppdtw.po
new file mode 100644
index 0000000..7705842
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_gsoc_vrppdtw.po
@@ -0,0 +1,358 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:13
+msgid "pgr_gsoc_vrppdtw - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:19
+msgid ""
+"``pgr_gsoc_vrppdtw`` — Returns a solution for `Pick and Delivery` with `time"
+" windows` Vehicle Routing Problem"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:27
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:36
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:43
+msgid "Complete signature"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:52
+msgid "Example: Show the id1"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:59
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:62
+msgid "Description of the sql query"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:65
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:89
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:102
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:65
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:89
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:102
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:65
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:89
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:102
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:67
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:67
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:81
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:82
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:67
+msgid "Identifier of the customer."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:69
+msgid "A value of ``0`` identifies the starting location"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:71
+msgid "**x**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:71
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:72
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:73
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:78
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:79
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:80
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:71
+msgid "``X`` coordinate of the location."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:72
+msgid "**y**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:72
+msgid "``Y`` coordinate of the location."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:73
+msgid "**demand**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:73
+msgid "How much is added / removed from the vehicle."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:75
+msgid "Negative value is a delivery,"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:76
+msgid "Positive value is a pickup,"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:78
+msgid "**openTime**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:78
+msgid "The time relative to 0, when the customer opens."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:79
+msgid "**closeTime**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:79
+msgid "The time relative to 0, when the customer closes."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:80
+msgid "**serviceTime**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:80
+msgid "The duration of the loading / unloading."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:81
+msgid "**pIndex**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:81
+msgid ""
+"Value used when the current customer is a Delivery to find the corresponding"
+" Pickup"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:82
+msgid "**dIndex**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:82
+msgid ""
+"Value used when the current customer is a Pickup to find the corresponding "
+"Delivery"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:86
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:91
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:91
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:91
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:92
+msgid "**vehicle_num**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:92
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:93
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:104
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:105
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:106
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:92
+msgid "Maximum number of vehicles in the result. (currently is ignored)"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:93
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:93
+msgid "Capacity of the vehicle."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:97
+msgid "Description of the result"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:99
+msgid "RETURNS SET OF pgr_costResult[]:"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:104
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:104
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:105
+msgid "**id1**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:105
+msgid "Current vehicle identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:106
+msgid "**id2**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:106
+msgid "Customer identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:107
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:107
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:107
+msgid ""
+"Previous ``cost`` plus `travel time` plus `wait time` plus `service time`."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:108
+msgid ""
+"when ``id2 = 0`` for the second time for the same ``id1``, then has the "
+"total time for the current ``id1``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:114
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:117
+msgid "Example: Total number of rows returned"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:123
+msgid "Example: Results for only id1 values: 1, 5, and 9"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:130
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:132
+msgid "The examples use :ref:`pickDeliverData`"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:133
+msgid "http://en.wikipedia.org/wiki/Vehicle_routing_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:136
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:137
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:138
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_johnson.po b/locale/ja/LC_MESSAGES/pgr_johnson.po
new file mode 100644
index 0000000..d0ef00b
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_johnson.po
@@ -0,0 +1,341 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_johnson.rst:13
+msgid "pgr_johnson"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:16
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:18
+msgid ""
+"``pgr_johnson`` - Returns the sum of the costs of the shortest path for each"
+" pair of nodes in the graph using Floyd-Warshall algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:27
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:28
+msgid "Renamed on 2.2.0, previous name pgr_apspJohnson"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:31
+msgid ""
+"The Johnson algorithm, is a good choice to calculate the sum of the costs of"
+" the shortest path for each pair of nodes in the graph, for *sparse graphs*."
+" It usees the Boost's implementation which runs in :math:`O(V E \\log V)` "
+"time,"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:37
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:57
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:40
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:41
+msgid ""
+"Returns the sum of the costs of the shortest path for each pair of nodes in "
+"the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:42
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:43
+msgid ""
+"Boost returns a :math:`V \\times V` matrix, where the infinity values. "
+"Represent the distance between vertices for which there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:46
+msgid ""
+"We return only the non infinity values in form of a set of `(start_vid, "
+"end_vid, agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:48
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:51
+msgid "For the undirected graph, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:53
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:55
+msgid "When  `start_vid` = `end_vid`, the `agg_cost` = 0."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:60
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:69
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:76
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:83
+msgid "On a directed graph."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:94
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:102
+msgid "On an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:109
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query (id is not necessary)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_johnson.rst:135
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_johnson.rst:122 ../../build/doc/pgr_johnson.rst:135
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_johnson.rst:122 ../../build/doc/pgr_johnson.rst:135
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:117
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:119
+msgid "Receives  ``(edges_sql, directed)``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:122
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:124
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:124
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:124
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:125
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:125
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:125
+msgid ""
+"(optional) Default is true (is directed). When set to false the graph is "
+"considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:130
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:132
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:137
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:137 ../../build/doc/pgr_johnson.rst:138
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:137
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:138
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:138
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:139
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:139
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:139
+msgid "Total cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:147
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:148
+msgid "Re-design of pgr_apspJohnson in Version 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:151
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:153
+msgid ":ref:`pgr_floydWarshall`"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:154
+msgid ""
+"`Boost Johnson "
+"<http://www.boost.org/libs/graph/doc/johnson_all_pairs_shortest.html>`_ "
+"algorithm implementation."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:155
+msgid "Queries uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:158
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:159
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:160
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_labelGraph.po b/locale/ja/LC_MESSAGES/pgr_labelGraph.po
new file mode 100644
index 0000000..e5d6532
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_labelGraph.po
@@ -0,0 +1,233 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_labelGraph.rst:15
+msgid "pgr_labelGraph - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:18
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:20
+msgid ""
+"``pgr_labelGraph`` — Locates and labels sub-networks within a network which "
+"are not topologically connected."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:28
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:30
+msgid ""
+"Must be run after ``pgr_createTopology()``. No use of ``geometry`` column. "
+"Only ``id``, ``source`` and  ``target`` columns are required."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:32
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:34
+msgid ""
+"``OK`` when a column with provided name has been generated and populated "
+"successfully. All connected edges will have unique similar integer values. "
+"In case of ``rows_where`` condition, non participating rows will have -1 "
+"integer values."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:35
+msgid ""
+"``FAIL`` when the processing cannot be finished due to some error. Notice "
+"will be thrown accordingly."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:36
+msgid ""
+"``rows_where condition generated 0 rows`` when passed SQL condition has not "
+"been fulfilled by any row."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:48
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:50
+msgid ""
+"A network behind any routing query may consist of sub-networks completely "
+"isolated from each other. Possible reasons could be:"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:52
+msgid "An island with no bridge connecting to the mainland."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:53
+msgid ""
+"An edge or mesh of edges failed to connect to other networks because of "
+"human negligence during data generation."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:54
+msgid "The data is not properly noded."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:55
+msgid "Topology creation failed to succeed."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:57
+msgid ""
+"pgr_labelGraph() will create an integer column (with the name provided by "
+"the user) and will assign same integer values to all those edges in the "
+"network which are connected topologically. Thus better analysis regarding "
+"network structure is possible. In case of ``rows_where`` condition, non "
+"participating rows will have -1 integer values."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:59
+msgid ""
+"Prerequisites: Must run ``pgr_createTopology()`` in order to generate "
+"``source`` and ``target`` columns. Primary key column ``id`` should also be "
+"there in the network table."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:62
+msgid "Function accepts the following parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:64
+msgid "``text`` Network table name, with optional schema name."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:65
+msgid ""
+"``text`` Primary key column name of the network table. Default is ``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:66
+msgid ""
+"``text`` Source column name generated after ``pgr_createTopology()``. "
+"Default is ``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:67
+msgid ""
+"``text`` Target column name generated after ``pgr_createTopology()``. "
+"Default is ``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:68
+msgid ""
+"``text`` Column name which will hold the integer labels for each sub-graph. "
+"Default is ``subgraph``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:69
+msgid ""
+"``text`` The SQL where condition. Default is ``true``, means the processing "
+"will be done on the whole table."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:75
+msgid "Example Usage"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:77
+msgid "The sample data, has 3 subgraphs."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:85
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:87
+msgid ""
+"`pgr_createTopology "
+"<https://github.com/Zia-/pgrouting/blob/develop/src/common/sql/pgrouting_topology.sql>`_"
+" to create the topology of a table based on its geometry and tolerance "
+"value."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:90
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:91
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:92
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_lineGraph.po b/locale/ja/LC_MESSAGES/pgr_lineGraph.po
new file mode 100644
index 0000000..7b69209
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_lineGraph.po
@@ -0,0 +1,387 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_lineGraph.rst:13
+msgid "pgr_lineGraph - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:15
+msgid ""
+"``pgr_lineGraph`` — Transforms a given graph into its corresponding edge-"
+"based graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:31
+msgid "Given a graph G, its line graph L(G) is a graph such that:-"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:33
+msgid "each vertex of L(G) represents an edge of G"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:34
+msgid ""
+"two vertices of L(G) are adjacent if and only if their corresponding edges "
+"share a common endpoint in G."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:36
+msgid ""
+"The following figures show a graph (left, with blue vertices) and its Line "
+"Graph (right, with green vertices)."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:39
+msgid "|first|"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:45
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:55
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:61
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:68
+msgid "The minimal signature is for a **directed** graph:"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:81
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:90
+msgid "This signature returns the Line Graph of the current graph:"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:89
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:90
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:101
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_lineGraph.rst:112 ../../build/doc/pgr_lineGraph.rst:125
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_lineGraph.rst:112 ../../build/doc/pgr_lineGraph.rst:125
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_lineGraph.rst:112 ../../build/doc/pgr_lineGraph.rst:125
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_lineGraph.rst:129
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_lineGraph.rst:133
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_lineGraph.rst:137
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_lineGraph.rst:141
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:109
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:114
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:114
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:114
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:115
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:115
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:115
+msgid "When ``true`` the graph is considered as `Directed`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:116
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:120
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:122
+msgid "RETURNS SETOF  (seq, source, target, cost, reverse_cost)"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:127
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:127
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:127
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:129 ../../build/doc/pgr_lineGraph.rst:133
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:129
+msgid "Identifier of the source vertex of the current edge `id`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:131
+msgid "When `negative`: the source is the reverse edge in the original graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:133
+msgid "Identifier of the target vertex of the current edge `id`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:135
+msgid "When `negative`: the target is the reverse edge in the original graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:137 ../../build/doc/pgr_lineGraph.rst:141
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:137
+msgid "Weight of the edge (`source`, `target`)."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:139
+msgid ""
+"When `negative`: edge (`source`, `target`) does not exist, therefore it’s "
+"not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:141
+msgid "Weight of the edge (`target`, `source`)."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:143
+msgid ""
+"When `negative`: edge (`target`, `source`) does not exist, therefore it’s "
+"not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:147
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:154
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:156
+msgid "https://en.wikipedia.org/wiki/Line_graph"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:157
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:160
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:161
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:162
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_maxCardinalityMatch.po b/locale/ja/LC_MESSAGES/pgr_maxCardinalityMatch.po
new file mode 100644
index 0000000..4c6c884
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_maxCardinalityMatch.po
@@ -0,0 +1,357 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:13
+msgid "pgr_maxCardinalityMatch - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:17
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:19
+msgid ""
+"``pgr_maxCardinalityMatch`` — Calculates a maximum cardinality matching in a"
+" graph."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:29
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:32
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:33
+msgid "Renamed 2.5.0, Previous name pgr_maximumCardinalityMatching"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:34
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:38
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:39
+msgid ""
+"A matching or independent edge set in a graph is a set of edges without "
+"common vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:40
+msgid ""
+"A maximum matching is a matching that contains the largest possible number "
+"of edges."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:42
+msgid "There may be many maximum matchings."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:43
+msgid "Calculates **one** possible maximum cardinality matching in a graph."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:45
+msgid "The graph can be **directed** or **undirected**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:46
+msgid "Running time: :math:`O( E*V * \\alpha(E,V))`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:48
+msgid ":math:`\\alpha(E,V)` is the inverse of the `Ackermann function`_."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:54
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:71
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:78
+msgid ""
+"The minimal use calculates one possible maximum cardinality matching on a "
+"**directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:90
+msgid "Complete signature"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:98
+msgid ""
+"The complete signature calculates one possible maximum cardinality matching."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:109
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:113
+msgid "Description of the SQL query"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:115
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:118
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:136
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:146
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:118
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:136
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:146
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:118
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:136
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:146
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:120
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:120
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:121
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:122
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:120
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:121
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:150
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:121
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:122
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:151
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:122
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:123
+msgid "**going**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:123
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:124
+msgid "``ANY-NUMERIC``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:123
+msgid ""
+"A positive value represents the existence of the edge (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:124
+msgid "**coming**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:124
+msgid ""
+"A positive value represents the existence of the edge (target, source)."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:127
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:129
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:130
+msgid "SMALLINT, INTEGER, BIGINT, REAL, DOUBLE PRECISION"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:133
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:138
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:138
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:138
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:139
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:139
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:139
+msgid "(optional) Determines the type of the graph. Default TRUE."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:143
+msgid "Description of the Result"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:148
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:148
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:148
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:149
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:149
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:150
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:151
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:149
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:150
+msgid "Identifier of the first end point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:151
+msgid "Identifier of the second end point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:155
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:157
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:158
+msgid "http://www.boost.org/libs/graph/doc/maximum_matching.html"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:159
+msgid "https://en.wikipedia.org/wiki/Matching_%28graph_theory%29"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:160
+msgid "https://en.wikipedia.org/wiki/Ackermann_function"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:163
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:164
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:165
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_maxFlow.po b/locale/ja/LC_MESSAGES/pgr_maxFlow.po
new file mode 100644
index 0000000..0327a6f
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_maxFlow.po
@@ -0,0 +1,354 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "pgr_maxFlow - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:17
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:19
+msgid ""
+"``pgr_maxFlow`` — Calculates the maximum flow in a directed graph from the "
+"source(s) to the targets(s) using the Push Relabel algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:25
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:28
+msgid "Availability: 2.4.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:35
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:36
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:37
+msgid ""
+"When the maximum flow is 0 then there is no flow and **0** is returned."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:39
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:41
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:42
+msgid "Uses the :ref:`pgr_pushRelabel <pgr_pushRelabel>` algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:44
+msgid "Running time: :math:`O( V ^ 3)`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:47
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:62
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:64
+msgid "Calculates the maximum flow from the `source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:82
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:84
+msgid "Calculates the maximum flow from the `source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:102
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:104
+msgid "Calculates the maximum flow from all the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:122
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:124
+msgid ""
+"Calculates the maximum flow from all of the `sources` to all of the "
+"`targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:138
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152 ../../build/doc/pgr_maxFlow.rst:169
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152 ../../build/doc/pgr_maxFlow.rst:169
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:155
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:157
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:149
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:154
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:154
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:154
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:155 ../../build/doc/pgr_maxFlow.rst:157
+#: ../../build/doc/pgr_maxFlow.rst:171
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:155
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:156
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:156 ../../build/doc/pgr_maxFlow.rst:158
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:156
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:157
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:158
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:158
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:166
+msgid "Description of the return value"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:171
+msgid "Maximum flow possible from the source(s) to the target(s)"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:175
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:177
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:178
+msgid "http://www.boost.org/libs/graph/doc/push_relabel_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:179
+msgid ""
+"https://en.wikipedia.org/wiki/Push%E2%80%93relabel_maximum_flow_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:182
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:183
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:184
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_nodeNetwork.po b/locale/ja/LC_MESSAGES/pgr_nodeNetwork.po
new file mode 100644
index 0000000..b9b92db
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_nodeNetwork.po
@@ -0,0 +1,353 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_nodeNetwork.rst:13
+msgid "pgr_nodeNetwork"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:18
+msgid "``pgr_nodeNetwork`` - Nodes an network edge table."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:20
+msgid "Nicolas Ribot"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:21
+msgid "Nicolas Ribot, The source code is released under the MIT-X license."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:27
+msgid ""
+"The function reads edges from a not \"noded\" network table and writes the "
+"\"noded\" edges into a new table."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:39
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:41
+msgid ""
+"A common problem associated with bringing GIS data into pgRouting is the "
+"fact that the data is often not \"noded\" correctly. This will create "
+"invalid topologies, which will result in routes that are incorrect."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:43
+msgid ""
+"What we mean by \"noded\" is that at every intersection in the road network "
+"all the edges will be broken into separate road segments. There are cases "
+"like an over-pass and under-pass intersection where you can not traverse "
+"from the over-pass to the under-pass, but this function does not have the "
+"ability to detect and accommodate those situations."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:45
+msgid ""
+"This function reads the ``edge_table`` table, that has a primary key column "
+"``id`` and geometry column named ``the_geom`` and intersect all the segments"
+" in it against all the other segments and then creates a table "
+"``edge_table_noded``. It uses the ``tolerance`` for deciding that multiple "
+"nodes within the tolerance are considered the same node."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:47
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:49
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:50
+msgid "``float8`` tolerance for coincident points (in projection unit)dd"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:51
+msgid ""
+"``text`` Primary key column name of the network table. Default value is "
+"``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:52
+msgid ""
+"``text`` Geometry column name of the network table. Default value is "
+"``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:53
+msgid "``text`` Suffix for the new table's. Default value is ``noded``."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:55
+msgid "The output table will have for  ``edge_table_noded``"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:57
+msgid "``bigint`` Unique identifier for the table"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:58
+msgid "``bigint``  Identifier of the edge in original table"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:59
+msgid "``integer`` Segment number of the original edge"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:60
+msgid ""
+"``integer`` Empty source column to be used with  :ref:`pgr_create_topology` "
+"function"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:61
+msgid ""
+"``integer`` Empty target column to be used with  :ref:`pgr_create_topology` "
+"function"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:62
+msgid "``geometry`` Geometry column of the noded network"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:65
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:66
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:70
+msgid "Example"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:72
+msgid "Let's create the topology for the data in :doc:`sampledata`"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:90
+msgid "Now we can analyze the network."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:114
+msgid ""
+"The analysis tell us that the network has a gap and an intersection. We try "
+"to fix the problem using:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:136
+msgid ""
+"Inspecting the generated table, we can see that edges 13,14 and 18 has been "
+"segmented"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:166
+msgid "We can create the topology of the new network"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:184
+msgid "Now let's analyze the new topology"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:210
+msgid "Images"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:243
+msgid "Comparing the results"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:245
+msgid "Comparing with the Analysis in the original edge_table, we see that."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:248
+msgid "Before"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:248
+msgid "After"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:250
+msgid "Table name"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:250
+msgid "edge_table"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:250
+msgid "edge_table_noded"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:252
+msgid "Fields"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:252
+msgid "All original fields"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:252
+msgid "Has only basic fields to do a topology analysis"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:254
+msgid "Dead ends"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:254
+msgid "Edges with 1 dead end: 1,6,24"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:255
+msgid "Edges with 2 dead ends  17,18"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:257
+msgid ""
+"Edge 17's right node is a dead end because there is no other edge sharing "
+"that same node. (cnt=1)"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:254
+msgid "Edges with 1 dead end: 1-1 ,6-1,14-2, 18-1 17-1 18-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:261
+msgid "Isolated segments"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:261
+msgid "two isolated segments:  17 and 18 both they have 2 dead ends"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:262
+msgid "No Isolated segments"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:262
+msgid "Edge 17 now shares a node with edges 14-1 and 14-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:263
+msgid "Edges 18-1 and 18-2 share a node with edges 13-1 and 13-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:265
+msgid "Gaps"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:265
+msgid ""
+"There is a gap between edge 17 and 14 because edge 14 is near to the right "
+"node of edge 17"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:265
+msgid ""
+"Edge 14 was segmented Now edges: 14-1 14-2 17 share the same node The "
+"tolerance value was taken in account"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:269
+msgid "Intersections"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:269
+msgid "Edges 13 and 18 were intersecting"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:269
+msgid ""
+"Edges were segmented, So, now in the interection's point there is a node and"
+" the following edges share it: 13-1 13-2 18-1 18-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:274
+msgid ""
+"Now, we are going to include the segments 13-1, 13-2 14-1, 14-2 ,18-1 and "
+"18-2 into our edge-table, copying the data for dir,cost,and reverse cost "
+"with tho following steps:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:276
+msgid ""
+"Add a column old_id into edge_table, this column is going to keep track the "
+"id of the original edge"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:277
+msgid ""
+"Insert only the segmented edges, that is, the ones whose max(sub_id) >1"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:290
+msgid "We recreate the topology:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:310
+msgid ""
+"To get the same analysis results as the topology of edge_table_noded, we do "
+"the following query:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:337
+msgid ""
+"To get the same analysis results as the original edge_table, we do the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:362
+msgid ""
+"Or we can analyze everything because, maybe edge 18 is an overpass, edge 14 "
+"is an under pass and there is also a street level juction, and the same "
+"happens with edges 17 and 13."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:389
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:391
+msgid ""
+":ref:`topology` for an overview of a topology for routing algorithms. "
+":ref:`pgr_analyze_oneway` to analyze directionality of the edges. "
+":ref:`pgr_create_topology` to create a topology based on the geometry. "
+":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:397
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:398
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:399
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_pointsAsPolygon.po b/locale/ja/LC_MESSAGES/pgr_pointsAsPolygon.po
new file mode 100644
index 0000000..356d85b
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_pointsAsPolygon.po
@@ -0,0 +1,124 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:13
+msgid "pgr_pointsAsPolygon"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:21
+msgid ""
+"``pgr_pointsAsPolygon`` — Draws an alpha shape around given set of points."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:27
+msgid "Returns the alpha shape as (multi)polygon geometry."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:35
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:37
+msgid ""
+"``text`` a SQL query, which should return a set of rows with the following "
+"columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:43
+msgid "``int4`` identifier of the vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:44
+msgid "``float8`` x-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:45
+msgid "``float8`` y-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:47
+msgid ""
+"(optional) ``float8`` alpha value. If specified alpha value equals 0 "
+"(default), then optimal alpha value is used. For more information, see `CGAL"
+" - 2D Alpha Shapes "
+"<http://doc.cgal.org/latest/Alpha_shapes_2/group__PkgAlphaShape2.html>`_."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:50
+msgid "Returns a (multi)polygon geometry (with holes)."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:54
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:55
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:56
+msgid ""
+"Added alpha argument with default 0 (use optimal value) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:57
+msgid ""
+"Supported to return a (multi)polygon geometry (with holes) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:61
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:62
+msgid ""
+"In the following query there is no way to control which point in the polygon"
+" is the first in the list, so you may get similar but different results than"
+" the following which are also correct."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:69
+msgid "The query use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:73
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:75
+msgid ":ref:`pgr_drivingDistance` - Driving Distance"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:76
+msgid ":ref:`pgr_alphashape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:79
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:80
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:81
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_pushRelabel.po b/locale/ja/LC_MESSAGES/pgr_pushRelabel.po
new file mode 100644
index 0000000..13e8a04
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_pushRelabel.po
@@ -0,0 +1,439 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_pushRelabel.rst:14
+msgid "pgr_pushRelabel - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:18
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:20
+msgid ""
+"``pgr_pushRelabel`` — Calculates the flow on the graph edges that maximizes "
+"the flow from the sources to the targets using Push Relabel Algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:29
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:30
+msgid "Renamed 2.5.0, Previous name pgr_maxFlowPushRelabel"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:31
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:8
+msgid ""
+"When the maximum flow is 0 then there is no flow and **EMPTY SET** is "
+"returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:12
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:15
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid ""
+"Creates a **super source** and edges to all the source(s), and a **super "
+"target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid ""
+"The maximum flow through the graph is guaranteed to be the value returned by"
+" :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and"
+" can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:41
+msgid "Running time: :math:`O( V ^ 3)`"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:44
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:60
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:62
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:81
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:83
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:102
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:104
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:123
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:125
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:140
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:4
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10 ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11 ../../build/doc/pgr_maxFlow.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:12
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:158
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:160
+msgid ""
+":ref:`maxFlow`, :ref:`pgr_boykovKolmogorov <pgr_boykovKolmogorov>`, "
+":ref:`pgr_edmondsKarp <pgr_edmondsKarp>`"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:161
+msgid "http://www.boost.org/libs/graph/doc/push_relabel_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:162
+msgid ""
+"https://en.wikipedia.org/wiki/Push%E2%80%93relabel_maximum_flow_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:165
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:166
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:167
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_strongComponents.po b/locale/ja/LC_MESSAGES/pgr_strongComponents.po
new file mode 100644
index 0000000..6f6c0cf
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_strongComponents.po
@@ -0,0 +1,346 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_strongComponents.rst:13
+msgid "pgr_strongComponents - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:15
+msgid ""
+"``pgr_strongComponents`` — Return the strongly connected components of a "
+"directed graph using Tarjan's algorithm based on DFS. In particular, the "
+"algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:31
+msgid ""
+"A strongly connected component of a directed graph is a set of vertices that"
+" are all reachable from each other. This implementation can only be used "
+"with a directed graph."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:36
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:38
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:40
+msgid "Components are described by vertices"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:42
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:44
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:45
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:47
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:62
+msgid "The signature is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:75
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid ""
+"Description of the return values for connected components and strongly "
+"connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, component, n_seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid ""
+"Component identifier. It is equal to the minimum node identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:91
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:93
+msgid "http://en.wikipedia.org/wiki/Strongly_connected_component"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:94
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:97
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:98
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:99
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_trsp.po b/locale/ja/LC_MESSAGES/pgr_trsp.po
new file mode 100644
index 0000000..108f0f8
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_trsp.po
@@ -0,0 +1,281 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_trsp.rst:13
+msgid "pgr_trsp - Turn Restriction Shortest Path (TRSP)"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:22
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:24
+msgid ""
+"``pgr_trsp`` — Returns the shortest path with support for turn restrictions."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:28
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:30
+msgid ""
+"The turn restricted shorthest path (TRSP) is a shortest path algorithm that "
+"can optionally take into account complicated turn restrictions like those "
+"found in real world navigable road networks. Performamnce wise it is nearly "
+"as fast as the A* search but has many additional features like it works with"
+" edges rather than the nodes of the network. Returns a set of "
+":ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows, that "
+"make up a path."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:57
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:59
+msgid ""
+"The Turn Restricted Shortest Path algorithm (TRSP) is similar to the "
+"shooting star in that you can specify turn restrictions."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:61
+msgid ""
+"The TRSP setup is mostly the same as :ref:`Dijkstra shortest path "
+"<pgr_dijkstra>` with the addition of an optional turn restriction table. "
+"This provides an easy way of adding turn restrictions to a road network by "
+"placing them in a separate table."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:64 ../../build/doc/pgr_trsp.rst:120
+msgid ""
+"a SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:71 ../../build/doc/pgr_trsp.rst:127
+msgid "``int4`` identifier of the edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:72 ../../build/doc/pgr_trsp.rst:128
+msgid "``int4`` identifier of the source vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:73 ../../build/doc/pgr_trsp.rst:129
+msgid "``int4`` identifier of the target vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:74 ../../build/doc/pgr_trsp.rst:130
+msgid ""
+"``float8`` value, of the edge traversal cost. A negative cost will prevent "
+"the edge from being inserted in the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:75 ../../build/doc/pgr_trsp.rst:131
+msgid ""
+"(optional) the cost for the reverse traversal of the edge. This is only used"
+" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
+"above remark about negative costs)."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:77
+msgid "``int4`` **NODE id** of the start point"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:78
+msgid "``int4`` **NODE id** of the end point"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:79 ../../build/doc/pgr_trsp.rst:134
+msgid "``true`` if the graph is directed"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:80 ../../build/doc/pgr_trsp.rst:135
+msgid ""
+"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
+"will be used for the cost of the traversal of the edge in the opposite "
+"direction."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:82 ../../build/doc/pgr_trsp.rst:137
+msgid ""
+"(optional) a SQL query, which should return a set of rows with the following"
+" columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:88 ../../build/doc/pgr_trsp.rst:143
+msgid "``float8`` turn restriction cost"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:89 ../../build/doc/pgr_trsp.rst:144
+msgid "``int4`` target id"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:90
+msgid ""
+"``text`` comma separated list of edges in the reverse order of ``rule``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:92
+msgid ""
+"Another variant of TRSP allows to specify **EDGE id** of source and target "
+"together with a fraction to interpolate the position:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:94
+msgid "``int4`` **EDGE id** of the start edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:95
+msgid "``float8`` fraction of 1 defines the position on the start edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:96
+msgid "``int4`` **EDGE id** of the end edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:97
+msgid "``float8`` fraction of 1 defines the position on the end edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:99 ../../build/doc/pgr_trsp.rst:152
+msgid "Returns set of :ref:`type_cost_result`:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:101 ../../build/doc/pgr_trsp.rst:154
+msgid "row sequence"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:102 ../../build/doc/pgr_trsp.rst:156
+msgid "node ID"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:103 ../../build/doc/pgr_trsp.rst:157
+msgid "edge ID (``-1`` for the last row)"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:104
+msgid "cost to traverse from ``id1`` using ``id2``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:107 ../../build/doc/pgr_trsp.rst:162
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:108
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:111
+msgid "Support for Vias"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:113
+msgid ""
+"The Support for Vias functions are prototypes. Not all corner cases are "
+"being considered."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:116
+msgid ""
+"We also have support for vias where you can say generate a from A to B to C,"
+" etc. We support both methods above only you pass an array of vertices or "
+"and array of edges and percentage position along the edge in two arrays."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:133
+msgid ""
+"``int4[]`` An ordered array of **NODE id** the path will go through from "
+"start to end."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:145
+msgid ""
+"``text`` commar separated list of edges in the reverse order of ``rule``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:147
+msgid ""
+"Another variant of TRSP allows to specify **EDGE id** together with a "
+"fraction to interpolate the position:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:149
+msgid "``int4`` An ordered array of **EDGE id** that the path has to traverse"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:150
+msgid ""
+"``float8`` An array of fractional positions along the respective edges in "
+"``eids``, where 0.0 is the start of the edge and 1.0 is the end of the "
+"eadge."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:155
+msgid "route ID"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:158
+msgid "cost to traverse from ``id2`` using ``id3``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:163
+msgid "Via Support prototypes new in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:166
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:168
+msgid "**Without turn restrictions**"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:175
+msgid "**With turn restrictions**"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:177
+msgid "Then a query with turn restrictions is created as:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:184
+msgid "An example query using vertex ids and via points:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:191
+msgid "An example query using edge ids and vias:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:198
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:202
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:204
+msgid ":ref:`type_cost_result`"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:207
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:208
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:209
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_version.po b/locale/ja/LC_MESSAGES/pgr_version.po
new file mode 100644
index 0000000..5a6623a
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_version.po
@@ -0,0 +1,130 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_version.rst:13
+msgid "pgr_version"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:21
+msgid "``pgr_version`` — Query for pgRouting version information."
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:27
+msgid "Returns a table with pgRouting version information."
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:35 ../../build/doc/pgr_version.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:37
+msgid "Returns a table with:"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:40
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:40
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:42
+msgid "**version**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:42 ../../build/doc/pgr_version.rst:43
+#: ../../build/doc/pgr_version.rst:44 ../../build/doc/pgr_version.rst:45
+#: ../../build/doc/pgr_version.rst:46
+msgid "``varchar``"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:42
+msgid "pgRouting version"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:43
+msgid "**tag**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:43
+msgid "Git tag of pgRouting build"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:44
+msgid "**hash**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:44
+msgid "Git hash of pgRouting build"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:45
+msgid "**branch**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:45
+msgid "Git branch of pgRouting build"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:46
+msgid "**boost**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:46
+msgid "Boost version"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:51
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:52
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:56
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:58
+msgid "Query for full version string"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:66
+msgid "Query for ``version`` and ``boost`` attribute"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:78
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:81
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:82
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:83
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_vrpOneDepot.po b/locale/ja/LC_MESSAGES/pgr_vrpOneDepot.po
new file mode 100644
index 0000000..a0c5006
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_vrpOneDepot.po
@@ -0,0 +1,112 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:14
+msgid "pgr_vrpOneDepot - Experimental"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:21
+msgid "**No documentation available**"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:24
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:28
+msgid "Current Result"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:34
+msgid "Data"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:41
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:43
+msgid "http://en.wikipedia.org/wiki/Vehicle_routing_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:46
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:47
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:48
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_withPoints.po b/locale/ja/LC_MESSAGES/pgr_withPoints.po
new file mode 100644
index 0000000..be629d4
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_withPoints.po
@@ -0,0 +1,665 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPoints.rst:13
+msgid "pgr_withPoints - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:19
+msgid ""
+"``pgr_withPoints`` - Returns the shortest path in a graph with additional "
+"temporary vertices."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:33
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:37
+msgid ""
+"Modify the graph to include points defined by points_sql. Using Dijkstra "
+"algorithm, find the shortest path(s)"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:41
+msgid "Characteristics:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:43
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:45
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:46
+msgid "Vertices of the graph are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:48
+msgid "**positive** when it belongs to the edges_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:49
+msgid "**negative** when it belongs to the points_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:51
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:53
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path. -"
+" The agg_cost the non included values (v, v) is 0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:56
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path: - The agg_cost the non included values (u, v) is ∞"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:59
+msgid ""
+"For optimization purposes, any duplicated value in the start_vids or "
+"end_vids are ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:60
+msgid ""
+"The returned values are ordered: - start_vid ascending - end_vid ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:64
+msgid "Running time: :math:`O(|start\\_vids|\\times(V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:68
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:81
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:87
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:92
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:90
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:91
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:92
+msgid ""
+"No **details** are given about distance of other points of points_sql query."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:100
+msgid "From point 1 to point 3"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:110
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:120
+msgid "From point 1 to vertex 3"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:132
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:141
+msgid "From point 1 to point 3 and vertex 5"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:153
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:162
+msgid "From point 1 and vertex 2  to point 3"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:172
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:182
+msgid "From point 1 and vertex 2  to point 3 and vertex 7"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:192
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPoints.rst:236
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPoints.rst:211
+#: ../../build/doc/pgr_withPoints.rst:236
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPoints.rst:211
+#: ../../build/doc/pgr_withPoints.rst:236
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPoints.rst:215
+#: ../../build/doc/pgr_withPoints.rst:216
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_withPoints.rst:249
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPoints.rst:220
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPoints.rst:222
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPoints.rst:223
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:207
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:211
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:213
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:213
+#: ../../build/doc/pgr_withPoints.rst:214
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:213
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:214
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:214
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:215
+#: ../../build/doc/pgr_withPoints.rst:240
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:215
+msgid "Starting vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:216
+#: ../../build/doc/pgr_withPoints.rst:241
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:216
+msgid "Ending vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:217
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:217
+#: ../../build/doc/pgr_withPoints.rst:218
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:217
+msgid ""
+"Array of identifiers of starting vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:218
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:218
+msgid ""
+"Array of identifiers of ending vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:219
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:219
+#: ../../build/doc/pgr_withPoints.rst:225
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:219
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:220
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:223
+msgid ""
+"(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:221
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:225
+msgid "**details**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:225
+msgid ""
+"(optional). When ``true`` the results will include the points in points_sql "
+"that are in the path. Default is ``false`` which ignores other points of the"
+" points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:231
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:233
+msgid ""
+"Returns set of ``(seq, [path_seq,] [start_vid,] [end_vid,] node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:238
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:238
+#: ../../build/doc/pgr_withPoints.rst:239
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:238
+msgid "Row sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:239
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:239
+msgid "Path sequence that indicates the relative position on the path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:240
+#: ../../build/doc/pgr_withPoints.rst:241
+#: ../../build/doc/pgr_withPoints.rst:242
+#: ../../build/doc/pgr_withPoints.rst:246
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:240
+msgid "Identifier of the starting vertex. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:241
+msgid "Identifier of the ending vertex. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:242
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:244
+msgid "Identifier of the node:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:243
+msgid "A positive value indicates the node is a vertex of edges_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:244
+msgid "A negative value indicates the node is a point of points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:246
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:247
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:247
+msgid "``-1`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:249
+#: ../../build/doc/pgr_withPoints.rst:252
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:250
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next ``node`` in the "
+"path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:250
+msgid "``0`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:252
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:253
+msgid "Aggregate cost from ``start_pid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:253
+msgid "``0`` for the first row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:260
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:262
+msgid ""
+"Which path (if any) passes in front of point 6 or vertex 6 with **right** "
+"side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:268
+msgid ""
+"Which path (if any) passes in front of point 6 or vertex 6 with **left** "
+"side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:274
+msgid ""
+"Many to many example with a twist: on undirected graph and showing details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:281
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:286
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:287
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:291
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:293
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:296
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:297
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:298
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_withPointsCost.po b/locale/ja/LC_MESSAGES/pgr_withPointsCost.po
new file mode 100644
index 0000000..f478ccd
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_withPointsCost.po
@@ -0,0 +1,603 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsCost.rst:13
+msgid "pgr_withPointsCost - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:19
+msgid ""
+"``pgr_withPointsCost`` - Calculates the shortest path and returns only the "
+"aggregate cost of the shortest path(s) found, for the combination of points "
+"given."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:33
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:37
+msgid ""
+"Modify the graph to include points defined by points_sql. Using Dijkstra "
+"algorithm, return only the aggregate cost of the shortest path(s) found."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:41
+msgid "Characteristics:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:79
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:44
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:45
+msgid ""
+"Returns the sum of the costs of the shortest path for pair combination of "
+"vertices in the modified graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:46
+msgid "Vertices of the graph are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:48
+msgid "**positive** when it belongs to the edges_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:49
+msgid "**negative** when it belongs to the points_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:51
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:52
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:54
+msgid ""
+"The returned values are in the form of a set of `(start_vid, end_vid, "
+"agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:56
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:58
+msgid "The `agg_cost` in the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:60
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:62
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:64
+msgid ""
+"If the values returned are stored in a table, the unique index would be the "
+"pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:67
+msgid "For undirected graphs, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:69
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:71
+msgid ""
+"For optimization purposes, any duplicated value in the `start_vids` or "
+"`end_vids` is ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:73
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:75
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:76
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:78
+msgid "Running time: :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:82
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:92
+msgid ""
+"There is no **details** flag, unlike the other members of the withPoints "
+"family of functions."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:96
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:102
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:106
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:105
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:106
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:124
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:145
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:166
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:185
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:204
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCost.rst:246
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCost.rst:223
+#: ../../build/doc/pgr_withPointsCost.rst:246
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCost.rst:223
+#: ../../build/doc/pgr_withPointsCost.rst:246
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPointsCost.rst:227
+#: ../../build/doc/pgr_withPointsCost.rst:228
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsCost.rst:232
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsCost.rst:234
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsCost.rst:235
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:219
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:223
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:225
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:225
+#: ../../build/doc/pgr_withPointsCost.rst:226
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:225
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:226
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:226
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:227
+#: ../../build/doc/pgr_withPointsCost.rst:248
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:227
+msgid "Starting vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:228
+#: ../../build/doc/pgr_withPointsCost.rst:249
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:228
+msgid "Ending vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:229
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:229
+#: ../../build/doc/pgr_withPointsCost.rst:230
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:229
+msgid ""
+"Array of identifiers of starting vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:230
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:230
+msgid ""
+"Array of identifiers of ending vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:231
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:231
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:231
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:232
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:235
+msgid ""
+"(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:233
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:241
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:243
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:248
+#: ../../build/doc/pgr_withPointsCost.rst:249
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:248
+msgid "Identifier of the starting vertex. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:249
+msgid "Identifier of the ending point. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:250
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:250
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:250
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:256
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:258
+msgid "With **right** side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:264
+msgid "With **left** side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:270
+msgid "Does not matter driving side."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:277
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:282
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:283
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:287
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:289
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:292
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:293
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:294
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_withPointsCostMatrix.po b/locale/ja/LC_MESSAGES/pgr_withPointsCostMatrix.po
new file mode 100644
index 0000000..c9bb20f
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_withPointsCostMatrix.po
@@ -0,0 +1,472 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:13
+msgid "pgr_withPointsCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:19
+msgid ""
+"``pgr_withPointsCostMatrix`` - Calculates the shortest path and returns only"
+" the aggregate cost of the shortest path(s) found, for the combination of "
+"points given."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:31
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:35
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:37
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:45
+msgid ""
+"There is no **details** flag, unlike the other members of the withPoints "
+"family of functions."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:49
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:55
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:59
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:58
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:59
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:78
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:87
+msgid "returning a symmetrical cost matrix"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:89
+msgid "Using the default **side** value on the **points_sql** query"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:90
+msgid "Using an undirected graph"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:91
+msgid "Using the default **driving_side** value"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:100
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:120
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:120
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:126
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:128
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:129
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:116
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:120
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:122
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:122
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:123
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:122
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:123
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:123
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:124
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:124
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:124
+msgid ""
+"Array of identifiers of starting vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:125
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:125
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:125
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:126
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:129
+msgid ""
+"(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:127
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:140
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:142
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:151
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:153
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:154
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:155
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:156
+msgid "`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:159
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:160
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:161
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_withPointsDD.po b/locale/ja/LC_MESSAGES/pgr_withPointsDD.po
new file mode 100644
index 0000000..95b4be1
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_withPointsDD.po
@@ -0,0 +1,552 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsDD.rst:13
+msgid "pgr_withPointsDD - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:19
+msgid ""
+"``pgr_withPointsDD`` - Returns the driving distance from a starting point."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:33
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:37
+msgid ""
+"Modify the graph to include points and using Dijkstra algorithm, extracts "
+"all the nodes and points that have costs less than or equal to the value "
+"``distance`` from the starting point. The edges extracted will conform the "
+"corresponding spanning tree."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:44
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:54
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:60
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:65
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:63
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:64
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:65
+msgid "No **details** are given about distance of other points of the query."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:84
+msgid "Driving distance from a single point"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:86
+#: ../../build/doc/pgr_withPointsDD.rst:106
+msgid "Finds the driving distance depending on the optional parameters setup."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:94
+msgid "Right side driving topology"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:104
+msgid "Driving distance from many starting points"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:118
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsDD.rst:162
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsDD.rst:138
+#: ../../build/doc/pgr_withPointsDD.rst:162
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsDD.rst:138
+#: ../../build/doc/pgr_withPointsDD.rst:162
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPointsDD.rst:142
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_withPointsDD.rst:169
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+#: ../../build/doc/pgr_withPointsDD.rst:143
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsDD.rst:145
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsDD.rst:147
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsDD.rst:148
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:134
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:138
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:140
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:140
+#: ../../build/doc/pgr_withPointsDD.rst:141
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:140
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:141
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:141
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:142
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:142
+msgid "Starting point id"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:143
+msgid "**distance**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:143
+msgid "Distance from the start_pid"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:144
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:144
+#: ../../build/doc/pgr_withPointsDD.rst:150
+#: ../../build/doc/pgr_withPointsDD.rst:152
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:144
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:145
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:148
+msgid ""
+"(optional). Value in ['b', 'r', 'l', NULL] indicating if the driving side "
+"is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:146
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:150
+msgid "**details**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:150
+msgid ""
+"(optional). When ``true`` the results will include the driving distance to "
+"the points with in the ``distance``. Default is ``false`` which ignores "
+"other points of the points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:152
+msgid "**equicost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:152
+msgid ""
+"(optional). When ``true`` the nodes will only appear in the closest start_v "
+"list. Default is ``false`` which resembles several calls using the single "
+"starting point signatures. Tie brakes are arbitrary."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:157
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:159
+msgid "Returns set of ``(seq, node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:164
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:164
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:164
+msgid "row sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:165
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:165
+#: ../../build/doc/pgr_withPointsDD.rst:166
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:165
+msgid ""
+"Identifier of the node within the Distance from ``start_pid``. If ``details "
+"=: true`` a negative value is the identifier of a point."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:166
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:167
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:167
+msgid "``-1`` when ``start_vid`` = ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:169
+#: ../../build/doc/pgr_withPointsDD.rst:172
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:170
+msgid "Cost to traverse ``edge``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:170
+#: ../../build/doc/pgr_withPointsDD.rst:173
+msgid "``0`` when ``start_vid`` = ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:172
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:173
+msgid "Aggregate cost from ``start_vid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:180
+msgid ""
+"Examples for queries marked as ``directed`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:182
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:184
+msgid "Left side driving topology"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:190
+msgid "Does not matter driving side."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:199
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:204
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:205
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:209
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:211
+msgid ":ref:`pgr_drivingDistance` - Driving distance using dijkstra."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:212
+msgid ":ref:`pgr_alphashape` - Alpha shape computation."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:213
+msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:216
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:217
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:218
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/pgr_withPointsKSP.po b/locale/ja/LC_MESSAGES/pgr_withPointsKSP.po
new file mode 100644
index 0000000..8202877
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/pgr_withPointsKSP.po
@@ -0,0 +1,571 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsKSP.rst:13
+msgid "pgr_withPointsKSP - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:19
+msgid ""
+"``pgr_withPointsKSP`` - Find the K shortest paths using Yen's algorithm."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:29
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:32
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:34
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:36
+msgid ""
+"Modifies the graph to include the points defined in the ``points_sql`` and "
+"using Yen algorithm, finds the K shortest paths."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:41
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:56
+msgid "Minimal Usage"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:62
+msgid "The minimal usage:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:59
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:60
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:61
+msgid "No **details** are given about distance of other points of the query."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:62
+msgid "No **heap paths** are returned."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:80
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:82
+msgid "Finds the K shortest paths depending on the optional parameters setup."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:91
+msgid "With details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:98
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsKSP.rst:144
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsKSP.rst:119
+#: ../../build/doc/pgr_withPointsKSP.rst:144
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsKSP.rst:119
+#: ../../build/doc/pgr_withPointsKSP.rst:144
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPointsKSP.rst:123
+#: ../../build/doc/pgr_withPointsKSP.rst:124
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_withPointsKSP.rst:153
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsKSP.rst:128
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsKSP.rst:130
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsKSP.rst:131
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:115
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:119
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:121
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:121
+#: ../../build/doc/pgr_withPointsKSP.rst:122
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:121
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:122
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:122
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:123
+msgid "**start_pid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:123
+msgid "Starting point id."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:124
+msgid "**end_pid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:124
+msgid "Ending point id."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:125
+msgid "**K**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:125
+#: ../../build/doc/pgr_withPointsKSP.rst:146
+#: ../../build/doc/pgr_withPointsKSP.rst:147
+#: ../../build/doc/pgr_withPointsKSP.rst:148
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:125
+msgid "Number of shortest paths."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:126
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:126
+#: ../../build/doc/pgr_withPointsKSP.rst:127
+#: ../../build/doc/pgr_withPointsKSP.rst:133
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:126
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:127
+msgid "**heap_paths**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:127
+msgid ""
+"(optional). When ``true`` the paths calculated to get the shortests paths "
+"will be returned also. Default is ``false`` only the K shortest paths are "
+"returned."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:128
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:131
+msgid ""
+"(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:129
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:133
+msgid "**details**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:133
+msgid ""
+"(optional). When ``true`` the results will include the driving distance to "
+"the points with in the ``distance``. Default is ``false`` which ignores "
+"other points of the points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:139
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:141
+msgid ""
+"Returns set of ``(seq, path_id, path_seq, node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:146
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:146
+msgid "Row sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:147
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:147
+msgid ""
+"Relative position in the path of node and edge. Has value 1 for the "
+"beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:148
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:148
+msgid ""
+"Path identifier. The ordering of the paths: For two paths i, j if i < j then"
+" agg_cost(i) <= agg_cost(j)."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:149
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:149
+#: ../../build/doc/pgr_withPointsKSP.rst:150
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:149
+msgid ""
+"Identifier of the node in the path. Negative values are the identifiers of a"
+" point."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:150
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:151
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:151
+msgid "``-1`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:153
+#: ../../build/doc/pgr_withPointsKSP.rst:156
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:154
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next ``node`` in the "
+"path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:154
+msgid "``0`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:156
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:157
+msgid "Aggregate cost from ``start_pid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:157
+msgid "``0`` for the first row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:164
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:166
+msgid "Left side driving topology with details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:172
+msgid "Right side driving topology with heap paths and details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:178
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:181
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:182
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:186
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:188
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:191
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:192
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:193
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/proposed.po b/locale/ja/LC_MESSAGES/proposed.po
new file mode 100644
index 0000000..9f1a6f4
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/proposed.po
@@ -0,0 +1,410 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/proposed.rst:13
+msgid "Stable Proposed Functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:20
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:22
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:23
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:24
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:25
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:26
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:27
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:33
+msgid "As part of the :ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:35
+msgid ""
+":ref:`pgr_dijkstraCostMatrix` Use pgr_dijkstra to calculate a cost matrix."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:36
+msgid ""
+":ref:`pgr_dijkstraVia` - Use pgr_dijkstra to make a route via vertices."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:39
+msgid "Families"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:40
+msgid ":ref:`astar`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:3
+msgid ":ref:`pgr_aStar` - A* algorithm for the shortest path."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:4
+msgid ":ref:`pgr_aStarCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:5
+msgid ""
+":ref:`pgr_aStarCostMatrix` - Get the cost matrix of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:46
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:3
+msgid ":ref:`pgr_bdAstar` - Bidirectional A* algorithm for obtaining paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid ""
+":ref:`pgr_bdAstarCost` - Bidirectional A* algorithm to calculate the cost of"
+" the paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:5
+msgid ""
+":ref:`pgr_bdAstarCostMatrix` - Bidirectional A* algorithm to calculate a "
+"cost matrix of paths."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:52
+msgid ":ref:`bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:3
+msgid ""
+":ref:`pgr_bdDijkstra` - Bidirectional Dijkstra algorithm for the shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:4
+msgid ""
+":ref:`pgr_bdDijkstraCost` - Bidirectional Dijkstra to calculate the cost of "
+"the shortest paths"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:5
+msgid ""
+":ref:`pgr_bdDijkstraCostMatrix` - Bidirectional Dijkstra algorithm  to "
+"create a matrix of costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:58
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:3
+msgid ""
+":ref:`pgr_maxFlow` - Only the Max flow calculation using Push and Relabel "
+"algorithm."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:4
+msgid ""
+":ref:`pgr_BoykovKolmogorov` - Boykov and Kolmogorov with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid ""
+":ref:`pgr_EdmondsKarp` - Edmonds and Karp algorithm with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid ""
+":ref:`pgr_PushRelabel` - Push and relabel algorithm with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Applications"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:9
+msgid ""
+":ref:`pgr_edgeDisjointPaths` - Calculates edge disjoint paths between two "
+"groups of vertices."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid ""
+":ref:`pgr_maxCardinalityMatch` - Calculates a maximum cardinality matching "
+"in a graph."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:64
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:3
+msgid ":ref:`pgr_withPoints` - Route from/to points anywhere on the graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:4
+msgid ":ref:`pgr_withPointsCost` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:5
+msgid ":ref:`pgr_withPointsCostMatrix` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:6
+msgid ":ref:`pgr_withPointsKSP` - K shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:7
+msgid ":ref:`pgr_withPointsDD` - Driving distance."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:71
+msgid "categories"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:72
+msgid ":ref:`Cost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:3
+msgid ":ref:`pgr_aStarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:4
+msgid ":ref:`pgr_bdAstarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:5
+msgid ":ref:`pgr_bdDijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:6
+msgid ":ref:`pgr_dijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:7
+msgid ":ref:`pgr_withPointsCost`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:78
+msgid ":ref:`CostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:3
+msgid ":ref:`pgr_aStarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:4
+msgid ":ref:`pgr_bdAstarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:5
+msgid ":ref:`pgr_bdDijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:6
+msgid ":ref:`pgr_dijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:7
+msgid ":ref:`pgr_withPointsCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:84
+msgid ":ref:`KSP`"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:3
+msgid ":ref:`pgr_KSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:4
+msgid ":ref:`pgr_withPointsKSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:106
+msgid "Experimental Functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:111
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:113
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:114
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:116
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:117
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:118
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:119
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:120
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:121
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:122
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:123
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:124
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:125
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:126
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:127
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:132
+msgid ":ref:`contraction` - Reduce network size using contraction techniques"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:134
+msgid ""
+":ref:`pgr_contractgraph` - Reduce network size using contraction techniques"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:138
+msgid "Graph Analysis"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:139
+msgid ":ref:`pgr_labelGraph` - Analyze / label  subgraphs within a network"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:141
+msgid ":ref:`components` - Analyze components within a graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:143
+msgid ""
+":ref:`pgr_connectedComponents` - Return the connected components of an "
+"undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:144
+msgid ""
+":ref:`pgr_strongComponents` - Return the strongly connected components of a "
+"directed graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:145
+msgid ""
+":ref:`pgr_biconnectedComponents` - Return the biconnected components of an "
+"undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:146
+msgid ""
+":ref:`pgr_articulationPoints` - Return the articulation points of an "
+"undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:147
+msgid ":ref:`pgr_bridges` - Return the bridges of an undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:150
+msgid "VRP"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:151
+msgid ":ref:`pgr_gsocvrppdtw`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:152
+msgid ":ref:`pgr_vrp_basic`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:166
+msgid "Graph Transformation"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:167
+msgid ":doc:`pgr_lineGraph`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:175
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:178
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:179
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:180
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/release_notes.po b/locale/ja/LC_MESSAGES/release_notes.po
new file mode 100644
index 0000000..f4a09f7
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/release_notes.po
@@ -0,0 +1,1278 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/release_notes.rst:13
+msgid "Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:15
+msgid ""
+"To see the full list of changes check the list of `Git commits "
+"<https://github.com/pgRouting/pgrouting/commits>`_ on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:18
+msgid "Table of contents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:21
+msgid ":ref:`changelog_2_5_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:22
+msgid ":ref:`changelog_2_4_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:23
+msgid ":ref:`changelog_2_4_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:24
+msgid ":ref:`changelog_2_4_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:25
+msgid ":ref:`changelog_2_3_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:26
+msgid ":ref:`changelog_2_3_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:27
+msgid ":ref:`changelog_2_3_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:28
+msgid ":ref:`changelog_2_2_4`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:29
+msgid ":ref:`changelog_2_2_3`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:30
+msgid ":ref:`changelog_2_2_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:31
+msgid ":ref:`changelog_2_2_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:32
+msgid ":ref:`changelog_2_2_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:33
+msgid ":ref:`changelog_2_1_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:34
+msgid ":ref:`changelog_2_0_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:35
+msgid ":ref:`changelog_2_0_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:36
+msgid ":ref:`changelog_1_x`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:43
+msgid "pgRouting 2.5.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:45
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.5.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.5.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:49
+msgid "enhancement:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:50
+msgid "pgr_version is now on SQL language"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:53
+msgid "Breaking change on:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:54
+msgid "pgr_edgeDisjointPaths:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:56
+msgid "Added path_id, cost and agg_cost columns on the result"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:57
+msgid "Parameter names changed"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:58
+msgid "The many version results are the union of the one to one version"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:61
+msgid "New Signatures:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:62
+msgid "pgr_bdAstar(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:65 ../../build/doc/release_notes.rst:223
+msgid "New Proposed functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:66
+msgid "pgr_bdAstar(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:67
+msgid "pgr_bdAstar(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:68
+msgid "pgr_bdAstar(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:69
+msgid "pgr_bdAstarCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:70
+msgid "pgr_bdAstarCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:71
+msgid "pgr_bdAstarCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:72
+msgid "pgr_bdAstarCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:73
+msgid "pgr_bdAstarCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:74
+msgid "pgr_bdDijkstra(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:75
+msgid "pgr_bdDijkstra(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:76
+msgid "pgr_bdDijkstra(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:77
+msgid "pgr_bdDijkstraCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:78
+msgid "pgr_bdDijkstraCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:79
+msgid "pgr_bdDijkstraCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:80
+msgid "pgr_bdDijkstraCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:81
+msgid "pgr_bdDijkstraCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:82
+msgid "pgr_lineGraph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:83
+msgid "pgr_connectedComponents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:84
+msgid "pgr_strongComponents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:85
+msgid "pgr_biconnectedComponents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:86
+msgid "pgr_articulationPoints"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:87
+msgid "pgr_bridges"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:90 ../../build/doc/release_notes.rst:160
+#: ../../build/doc/release_notes.rst:247
+msgid "Deprecated Signatures"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:91
+msgid "pgr_bdastar - use pgr_bdAstar instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:94
+msgid "Renamed Functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:95
+msgid "pgr_maxFlowPushRelabel - use pgr_pushRelabel instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:96
+msgid "pgr_maxFlowEdmondsKarp -use pgr_edmondsKarp instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:97
+msgid "pgr_maxFlowBoykovKolmogorov - use pgr_boykovKolmogorov instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:98
+msgid "pgr_maximumCardinalityMatching - use pgr_maxCardinalityMatch instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:101
+msgid "Deprecated function"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:102
+msgid "pgr_pointToEdgeNode"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:108
+msgid "pgRouting 2.4.2 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:110
+msgid ""
+"To see the issues closed by this release see the `Git closed milestone for "
+"2.4.2 "
+"<https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.4.2%22%20>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:113
+msgid "Improvement"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:114
+msgid "Works for postgreSQL 10"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:117 ../../build/doc/release_notes.rst:131
+#: ../../build/doc/release_notes.rst:168 ../../build/doc/release_notes.rst:522
+#: ../../build/doc/release_notes.rst:529 ../../build/doc/release_notes.rst:550
+#: ../../build/doc/release_notes.rst:557
+msgid "Bug fixes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:118
+msgid "Fixed: Unexpected error column \"cname\""
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:119
+msgid ""
+"Replace __linux__ with __GLIBC__ for glibc-specific headers and functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:126
+msgid "pgRouting 2.4.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:128
+msgid ""
+"To see the issues closed by this release see the `Git closed milestone for "
+"2.4.1 "
+"<https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.4.1%22%20>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:132
+msgid "Fixed compiling error on macOS"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:133
+msgid "Condition error on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:138
+msgid "pgRouting 2.4.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:140
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.4.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.4.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:143 ../../build/doc/release_notes.rst:213
+#: ../../build/doc/release_notes.rst:374
+msgid "New Signatures"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:144
+msgid "pgr_bdDijkstra"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:148
+msgid "New Proposed Signatures"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:149
+msgid "pgr_maxFlow"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:150
+msgid "pgr_astar(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:151
+msgid "pgr_astar(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:152
+msgid "pgr_astar(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:153
+msgid "pgr_astarCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:154
+msgid "pgr_astarCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:155
+msgid "pgr_astarCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:156
+msgid "pgr_astarCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:157
+msgid "pgr_astarCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:161
+msgid "pgr_bddijkstra - use pgr_bdDijkstra instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:164 ../../build/doc/release_notes.rst:253
+msgid "Deprecated Functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:165
+msgid "pgr_pointsToVids"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:169
+msgid "Bug fixes on proposed functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:171
+msgid "pgr_withPointsKSP: fixed ordering"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:173
+msgid "TRSP original code is used with no changes on the compilation warnings"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:178
+msgid "pgRouting 2.3.2 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:180
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.3.2 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.3.2%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:183 ../../build/doc/release_notes.rst:199
+#: ../../build/doc/release_notes.rst:269 ../../build/doc/release_notes.rst:282
+#: ../../build/doc/release_notes.rst:293 ../../build/doc/release_notes.rst:305
+#: ../../build/doc/release_notes.rst:424 ../../build/doc/release_notes.rst:455
+msgid "Bug Fixes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:184
+msgid "Fixed pgr_gsoc_vrppdtw crash when all orders fit on one truck."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:185
+msgid "Fixed pgr_trsp:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:187
+msgid "Alternate code is not executed when the point is in reality a vertex"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:188
+msgid "Fixed ambiguity on seq"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:194
+msgid "pgRouting 2.3.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:196
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.3.1 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.3.1%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:200
+msgid "Leaks on proposed max_flow functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:201
+msgid "Regression error on pgr_trsp"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:202
+msgid "Types discrepancy on pgr_createVerticesTable"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:208
+msgid "pgRouting 2.3.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:210
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.3.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.3.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:214
+msgid "pgr_TSP"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:215
+msgid "pgr_aStar"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:218 ../../build/doc/release_notes.rst:330
+msgid "New Functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:219
+msgid "pgr_eucledianTSP"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:224
+msgid "pgr_dijkstraCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:225
+msgid "pgr_withPointsCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:226
+msgid "pgr_maxFlowPushRelabel(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:227
+msgid "pgr_maxFlowPushRelabel(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:228
+msgid "pgr_maxFlowPushRelabel(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:229
+msgid "pgr_maxFlowPushRelabel(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:230
+msgid "pgr_maxFlowEdmondsKarp(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:231
+msgid "pgr_maxFlowEdmondsKarp(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:232
+msgid "pgr_maxFlowEdmondsKarp(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:233
+msgid "pgr_maxFlowEdmondsKarp(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:234
+msgid "pgr_maxFlowBoykovKolmogorov (one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:235
+msgid "pgr_maxFlowBoykovKolmogorov (one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:236
+msgid "pgr_maxFlowBoykovKolmogorov (many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:237
+msgid "pgr_maxFlowBoykovKolmogorov (many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:238
+msgid "pgr_maximumCardinalityMatching"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:239
+msgid "pgr_edgeDisjointPaths(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:240
+msgid "pgr_edgeDisjointPaths(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:241
+msgid "pgr_edgeDisjointPaths(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:242
+msgid "pgr_edgeDisjointPaths(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:243
+msgid "pgr_contractGraph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:248
+msgid "pgr_tsp - use pgr_TSP or pgr_eucledianTSP instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:249
+msgid "pgr_astar - use pgr_aStar instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:254
+msgid "pgr_flip_edges"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:255
+msgid "pgr_vidsToDmatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:256
+msgid "pgr_pointsToDMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:257
+msgid "pgr_textToPoints"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:264
+msgid "pgRouting 2.2.4 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:266
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.4 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.4%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:270
+msgid "Bogus uses of extern \"C\""
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:271
+msgid "Build error on Fedora 24 + GCC 6.0"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:272
+msgid "Regression error pgr_nodeNetwork"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:277
+msgid "pgRouting 2.2.3 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:279
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.3 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.3%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:283
+msgid "Fixed compatibility issues with PostgreSQL 9.6."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:288
+msgid "pgRouting 2.2.2 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:290
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.2 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.2%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:294
+msgid "Fixed regression error on pgr_drivingDistance"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:300
+msgid "pgRouting 2.2.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:302
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.1 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A2.2.1+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:306
+msgid "Server crash fix on pgr_alphaShape"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:307
+msgid "Bug fix on With Points family of functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:313
+msgid "pgRouting 2.2.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:315
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:319 ../../build/doc/release_notes.rst:387
+msgid "Improvements"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:320
+msgid "pgr_nodeNetwork"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:322
+msgid "Adding a row_where and outall optional parameters"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:324
+msgid "Signature fix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:326
+msgid "pgr_dijkstra  -- to match what is documented"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:331
+msgid "pgr_floydWarshall"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:332
+msgid "pgr_Johnson"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:333
+msgid "pgr_dijkstraCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:334
+msgid "pgr_dijkstraCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:335
+msgid "pgr_dijkstraCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:336
+msgid "pgr_dijkstraCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:339 ../../build/doc/release_notes.rst:391
+msgid "Proposed functionality"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:340
+msgid "pgr_withPoints(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:341
+msgid "pgr_withPoints(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:342
+msgid "pgr_withPoints(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:343
+msgid "pgr_withPoints(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:344
+msgid "pgr_withPointsCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:345
+msgid "pgr_withPointsCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:346
+msgid "pgr_withPointsCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:347
+msgid "pgr_withPointsCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:348
+msgid "pgr_withPointsDD(single vertex)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:349
+msgid "pgr_withPointsDD(multiple vertices)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:350
+msgid "pgr_withPointsKSP"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:351
+msgid "pgr_dijkstraVia"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:355
+msgid "Deprecated functions:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:356
+msgid "pgr_apspWarshall  use pgr_floydWarshall instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:357
+msgid "pgr_apspJohnson   use pgr_Johnson instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:358
+msgid "pgr_kDijkstraCost use pgr_dijkstraCost instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:359
+msgid "pgr_kDijkstraPath use pgr_dijkstra instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:362
+msgid "Renamed and deprecated function"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:363
+msgid "pgr_makeDistanceMatrix renamed to _pgr_makeDistanceMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:369
+msgid "pgRouting 2.1.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:371
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.1.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=is%3Aissue+milestone%3A%22Release+2.1.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:375
+msgid "pgr_dijkstra(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:376
+msgid "pgr_dijkstra(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:377
+msgid "pgr_dijkstra(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:378
+msgid "pgr_drivingDistance(multiple vertices)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:381
+msgid "Refactored"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:382
+msgid "pgr_dijkstra(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:383
+msgid "pgr_ksp"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:384
+msgid "pgr_drivingDistance(single vertex)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:388
+msgid ""
+"pgr_alphaShape function now can generate better (multi)polygon with holes "
+"and alpha parameter."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:392
+msgid ""
+"Proposed functions from Steve Woodbridge, (Classified as Convenience by the "
+"author.)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:394
+msgid ""
+"pgr_pointToEdgeNode - convert a point geometry to a vertex_id based on "
+"closest edge."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:395
+msgid ""
+"pgr_flipEdges - flip the edges in an array of geometries so the connect end "
+"to end."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:396
+msgid ""
+"pgr_textToPoints - convert a string of x,y;x,y;... locations into point "
+"geometries."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:397
+msgid ""
+"pgr_pointsToVids - convert an array of point geometries into vertex ids."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:398
+msgid ""
+"pgr_pointsToDMatrix - Create a distance matrix from an array of points."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:399 ../../build/doc/release_notes.rst:400
+msgid ""
+"pgr_vidsToDMatrix - Create a distance matrix from an array of vertix_id."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:402
+msgid "Added proposed functions from GSoc Projects:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:404
+msgid "pgr_vrppdtw"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:405
+msgid "pgr_vrponedepot"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:408
+msgid "Deprecated functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:409
+msgid "pgr_getColumnName"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:410
+msgid "pgr_getTableName"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:411
+msgid "pgr_isColumnCndexed"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:412
+msgid "pgr_isColumnInTable"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:413
+msgid "pgr_quote_ident"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:414
+msgid "pgr_versionless"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:415
+msgid "pgr_startPoint"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:416
+msgid "pgr_endPoint"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:417
+msgid "pgr_pointToId"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:420
+msgid "No longer supported"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:421
+msgid "Removed the 1.x legacy functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:425
+msgid "Some bug fixes in other functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:429
+msgid "Refactoring Internal Code"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:430
+msgid "A C and C++ library for developer was created"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:432
+msgid "encapsulates postgreSQL related functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:433
+msgid "encapsulates Boost.Graph graphs"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:435
+msgid "Directed Boost.Graph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:436
+msgid "Undirected Boost.graph."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:438
+msgid "allow any-integer in the id's"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:439
+msgid "allow any-numerical on the cost/reverse_cost columns"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:441
+msgid ""
+"Instead of generating many libraries: - All functions are encapsulated in "
+"one library - The library has the prefix 2-1-0"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:450
+msgid "pgRouting 2.0.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:452
+msgid "Minor bug fixes."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:456
+msgid "No track of the bug fixes were kept."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:462
+msgid "pgRouting 2.0.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:464
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.0.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.0.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:466
+msgid ""
+"With the release of pgRouting 2.0.0 the library has abandoned backwards "
+"compatibility to :ref:`pgRouting 1.x <changelog_1_x>` releases. The main "
+"Goals for this release are:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:469
+msgid "Major restructuring of pgRouting."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:470
+msgid "Standardization of the function naming"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:471
+msgid "Preparation of the project for future development."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:473
+msgid "As a result of this effort:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:475
+msgid "pgRouting has a simplified structure"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:476
+msgid "Significant new functionality has being added"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:477
+msgid "Documentation has being integrated"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:478
+msgid "Testing has being integrated"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:479
+msgid "And made it easier for multiple developers to make contributions."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:483
+msgid "Important Changes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:484
+msgid ""
+"Graph Analytics - tools for detecting and fixing connection some problems in"
+" a graph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:485
+msgid "A collection of useful utility functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:486
+msgid ""
+"Two new All Pairs Short Path algorithms (pgr_apspJohnson, pgr_apspWarshall)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:487
+msgid ""
+"Bi-directional Dijkstra and A-star search algorithms (pgr_bdAstar, "
+"pgr_bdDijkstra)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:488
+msgid "One to many nodes search (pgr_kDijkstra)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:489
+msgid "K alternate paths shortest path (pgr_ksp)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:490
+msgid ""
+"New TSP solver that simplifies the code and the build process (pgr_tsp), "
+"dropped \"Gaul Library\" dependency"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:491
+msgid "Turn Restricted shortest path (pgr_trsp) that replaces Shooting Star"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:492
+msgid "Dropped support for Shooting Star"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:493
+msgid ""
+"Built a test infrastructure that is run before major code changes are "
+"checked in"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:494
+msgid ""
+"Tested and fixed most all of the outstanding bugs reported against 1.x that "
+"existing in the 2.0-dev code base."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:495
+msgid "Improved build process for Windows"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:496
+msgid ""
+"Automated testing on Linux and Windows platforms trigger by every commit"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:497
+msgid "Modular library design"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:498
+msgid "Compatibility with PostgreSQL 9.1 or newer"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:499
+msgid "Compatibility with PostGIS 2.0 or newer"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:500
+msgid "Installs as PostgreSQL EXTENSION"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:501
+msgid "Return types re factored and unified"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:502
+msgid "Support for table SCHEMA in function parameters"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:503
+msgid "Support for ``st_`` PostGIS function prefix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:504
+msgid "Added ``pgr_`` prefix to functions and types"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:505
+msgid "Better documentation: http://docs.pgrouting.org"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:506
+msgid "shooting_star is discontinued"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:513
+msgid "pgRouting 1.x Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:515
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for 1.x "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+1.x%22+is%3Aclosed>`_"
+" on Github. The following release notes have been copied from the previous "
+"``RELEASE_NOTES`` file and are kept as a reference."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:520
+msgid "Changes for release 1.05"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:526
+msgid "Changes for release 1.03"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:528
+msgid "Much faster topology creation"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:533
+msgid "Changes for release 1.02"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:535 ../../build/doc/release_notes.rst:542
+msgid "Shooting* bug fixes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:536
+msgid "Compilation problems solved"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:540
+msgid "Changes for release 1.01"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:546
+msgid "Changes for release 1.0"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:548
+msgid "Core and extra functions are separated"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:549
+msgid "Cmake build process"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:554
+msgid "Changes for release 1.0.0b"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:556
+msgid "Additional SQL file with more simple names for wrapper functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:561
+msgid "Changes for release 1.0.0a"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:563
+msgid "Shooting* shortest path algorithm for real road networks"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:564
+msgid "Several SQL bugs were fixed"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:568
+msgid "Changes for release 0.9.9"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:570
+msgid "PostgreSQL 8.2 support"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:571
+msgid ""
+"Shortest path functions return empty result if they could not find any path"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:575
+msgid "Changes for release 0.9.8"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:577
+msgid "Renumbering scheme was added to shortest path functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:578
+msgid "Directed shortest path functions were added"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:579
+msgid "routing_postgis.sql was modified to use dijkstra in TSP search"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/routingFunctions.po b/locale/ja/LC_MESSAGES/routingFunctions.po
new file mode 100644
index 0000000..3242809
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/routingFunctions.po
@@ -0,0 +1,134 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/routingFunctions.rst:15
+msgid "Routing Functions"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:21
+msgid ":ref:`all_pairs`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:23
+msgid ":ref:`pgr_floydWarshall` - Floyd-Warshall's Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:24
+msgid ":ref:`pgr_johnson`- Johnson’s Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:26
+msgid ":ref:`pgr_astar` - Shortest Path A*"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:28
+msgid ":ref:`pgr_bdAstar` - Bi-directional A* Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:30
+msgid ":ref:`pgr_bdDijkstra` - Bi-directional Dijkstra Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:33
+msgid ":ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:3
+msgid ":ref:`pgr_dijkstra` - Dijkstra's algorithm for the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:4
+msgid ""
+":ref:`pgr_dijkstraCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:5
+msgid ""
+":ref:`pgr_dijkstraCostMatrix` - Use pgr_dijkstra to create a costs matrix."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:6
+msgid ""
+":ref:`pgr_drivingDistance` - Use pgr_dijkstra to calculate catchament "
+"information."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:7
+msgid ""
+":ref:`pgr_ksp` - Use Yen algorithm with pgr_dijkstra to get the K shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:8
+msgid ":ref:`pgr_dijkstraVia` - Get a route of a seuence of vertices."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:39
+msgid ":ref:`pgr_ksp` - K-Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:41
+msgid ":ref:`pgr_trsp<trsp>` - Turn Restriction Shortest Path (TRSP)"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:43
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:3
+msgid ":ref:`pgr_TSP` - When input is given as matrix cell information."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:4
+msgid ":ref:`pgr_eucledianTSP` - When input are coordinates."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:49
+msgid ":ref:`drivingDistance`"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:3
+msgid ":ref:`pgr_drivingDistance` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:4
+msgid ":ref:`pgr_withPointsDD` - Driving Distance based on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:5
+msgid "Post pocessing"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:7
+msgid ":ref:`pgr_alphaShape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:8
+msgid ":ref:`pgr_points_as_polygon` - Polygon around a set of points"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:70
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:73
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:74
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:75
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/sampledata.po b/locale/ja/LC_MESSAGES/sampledata.po
new file mode 100644
index 0000000..2ded9cd
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/sampledata.po
@@ -0,0 +1,152 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/sampledata.rst:11
+msgid "Sample Data"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:13
+msgid ""
+"The documentation provides very simple example queries based on a small "
+"sample network. To be able to execute the sample queries, run the following "
+"SQL commands to create a table with a small network data set."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:18
+msgid "Create table"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:25
+msgid "Insert data"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:32
+msgid "Topology"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:33
+msgid ""
+"Before you test a routing function use this query to create a topology "
+"(fills the ``source`` and ``target`` columns)."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:40
+msgid "Points of interest"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:41
+msgid "When points outside of the graph."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:42
+msgid "Used with the :ref:`withPoints` functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:49
+msgid "Restrictions"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:50
+msgid "Used with the :ref:`trsp` functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:57
+msgid "Categories"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:58
+msgid "Used with the :ref:`maxFlow` functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:65
+msgid "Vertex table"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:66
+msgid "Used in some deprecated signatures or deprecated functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:74
+msgid "Images"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:76
+msgid "Red arrows correspond when ``cost`` > 0 in the edge table."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:77
+msgid "Blue arrows correspond when ``reverse_cost`` > 0 in the edge table."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:78
+msgid "Points are outside the graph."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:79
+msgid "Click on the graph to enlarge."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:84
+msgid ""
+"Network for queries marked as ``directed`` and ``cost`` and ``reverse_cost``"
+" columns are used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:86
+msgid ""
+"When working with city networks, this is recommended for point of view of "
+"vehicles."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:91
+msgid "**Graph 1: Directed, with cost and reverse cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:96
+msgid ""
+"Network for queries marked as ``undirected`` and ``cost`` and "
+"``reverse_cost`` columns are used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:98
+msgid ""
+"When working with city networks, this is recommended for point of view of "
+"pedestrians."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:104
+msgid "**Graph 2: Undirected, with cost and reverse cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:109
+msgid ""
+"Network for queries marked as ``directed`` and only ``cost`` column is used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:116
+msgid "**Graph 3: Directed, with cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:121
+msgid ""
+"Network for queries marked as ``undirected`` and only ``cost`` column is "
+"used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:127
+msgid "**Graph 4: Undirected, with cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:134
+msgid "Pick & Deliver Data"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/support.po b/locale/ja/LC_MESSAGES/support.po
new file mode 100644
index 0000000..4082646
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/support.po
@@ -0,0 +1,177 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/support.rst:13
+msgid "Support"
+msgstr ""
+
+#: ../../build/doc/support.rst:15
+msgid ""
+"pgRouting community support is available through the `pgRouting website "
+"<http://pgrouting.org/support.html>`_, `documentation "
+"<http://docs.pgrouting.org>`_, tutorials, mailing lists and others. If "
+"you’re looking for :ref:`commercial support <support_commercial>`, find "
+"below a list of companies providing pgRouting development and consulting "
+"services."
+msgstr ""
+
+#: ../../build/doc/support.rst:19
+msgid "Reporting Problems"
+msgstr ""
+
+#: ../../build/doc/support.rst:21
+msgid ""
+"Bugs are reported and managed in an `issue tracker "
+"<https://github.com/pgrouting/pgrouting/issues>`_. Please follow these "
+"steps:"
+msgstr ""
+
+#: ../../build/doc/support.rst:23
+msgid ""
+"Search the tickets to see if your problem has already been reported. If so, "
+"add any extra context you might have found, or at least indicate that you "
+"too are having the problem. This will help us prioritize common issues."
+msgstr ""
+
+#: ../../build/doc/support.rst:24
+msgid ""
+"If your problem is unreported, create a `new issue "
+"<https://github.com/pgRouting/pgrouting/issues/new>`_ for it."
+msgstr ""
+
+#: ../../build/doc/support.rst:25
+msgid ""
+"In your report include explicit instructions to replicate your issue. The "
+"best tickets include the exact SQL necessary to replicate a problem."
+msgstr ""
+
+#: ../../build/doc/support.rst:26
+msgid ""
+"If you can test older versions of PostGIS for your problem, please do. On "
+"your ticket, note the earliest version the problem appears."
+msgstr ""
+
+#: ../../build/doc/support.rst:27
+msgid ""
+"For the versions where you can replicate the problem, note the operating "
+"system and version of pgRouting, PostGIS and PostgreSQL."
+msgstr ""
+
+#: ../../build/doc/support.rst:28
+msgid ""
+"It is recommended to use the following wrapper on the problem to pin point "
+"the step that is causing the problem."
+msgstr ""
+
+#: ../../build/doc/support.rst:39
+msgid "Mailing List and GIS StackExchange"
+msgstr ""
+
+#: ../../build/doc/support.rst:41
+msgid ""
+"There are two mailing lists for pgRouting hosted on OSGeo mailing list "
+"server:"
+msgstr ""
+
+#: ../../build/doc/support.rst:43
+msgid ""
+"User mailing list: http://lists.osgeo.org/mailman/listinfo/pgrouting-users"
+msgstr ""
+
+#: ../../build/doc/support.rst:44
+msgid ""
+"Developer mailing list: http://lists.osgeo.org/mailman/listinfo/pgrouting-"
+"dev"
+msgstr ""
+
+#: ../../build/doc/support.rst:46
+msgid ""
+"For general questions and topics about how to use pgRouting, please write to"
+" the user mailing list."
+msgstr ""
+
+#: ../../build/doc/support.rst:48
+msgid ""
+"You can also ask at `GIS StackExchange <http://gis.stackexchange.com/>`_ and"
+" tag the question with ``pgrouting``. Find all questions tagged with "
+"``pgrouting`` under http://gis.stackexchange.com/questions/tagged/pgrouting "
+"or subscribe to the `pgRouting questions feed "
+"<http://gis.stackexchange.com/feeds/tag?tagnames=pgrouting&sort=newest>`_."
+msgstr ""
+
+#: ../../build/doc/support.rst:54
+msgid "Commercial Support"
+msgstr ""
+
+#: ../../build/doc/support.rst:56
+msgid ""
+"For users who require professional support, development and consulting "
+"services, consider contacting any of the following organizations, which have"
+" significantly contributed to the development of pgRouting:"
+msgstr ""
+
+#: ../../build/doc/support.rst:61
+msgid "**Company**"
+msgstr ""
+
+#: ../../build/doc/support.rst:62
+msgid "**Offices in**"
+msgstr ""
+
+#: ../../build/doc/support.rst:63
+msgid "**Website**"
+msgstr ""
+
+#: ../../build/doc/support.rst:64
+msgid "Georepublic"
+msgstr ""
+
+#: ../../build/doc/support.rst:65
+msgid "Germany, Japan"
+msgstr ""
+
+#: ../../build/doc/support.rst:66
+msgid "https://georepublic.info"
+msgstr ""
+
+#: ../../build/doc/support.rst:67
+msgid "iMaptools"
+msgstr ""
+
+#: ../../build/doc/support.rst:68 ../../build/doc/support.rst:71
+msgid "United States"
+msgstr ""
+
+#: ../../build/doc/support.rst:69
+msgid "http://imaptools.com"
+msgstr ""
+
+#: ../../build/doc/support.rst:70
+msgid "Paragon Corporation"
+msgstr ""
+
+#: ../../build/doc/support.rst:72
+msgid "http://www.paragoncorporation.com"
+msgstr ""
+
+#: ../../build/doc/support.rst:73
+msgid "Camptocamp"
+msgstr ""
+
+#: ../../build/doc/support.rst:74
+msgid "Switzerland, France"
+msgstr ""
+
+#: ../../build/doc/support.rst:75
+msgid "http://www.camptocamp.com"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/topology-functions.po b/locale/ja/LC_MESSAGES/topology-functions.po
new file mode 100644
index 0000000..ac6a1b3
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/topology-functions.po
@@ -0,0 +1,66 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/topology-functions.rst:13
+msgid "Topology - Family of Functions"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:15
+msgid ""
+"The pgRouting's topology of a network, represented with an edge table with "
+"source and target attributes and a vertices table associated with it. "
+"Depending on the algorithm, you can create a topology or just reconstruct "
+"the vertices table, You can analyze the topology, We also provide a function"
+" to node an unoded network."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:19
+msgid ""
+":ref:`pgr_create_topology` -  to create a topology based on the geometry."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:20
+msgid ""
+":ref:`pgr_create_vert_table` - to reconstruct the vertices table based on "
+"the source and target information."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:21
+msgid ""
+":ref:`pgr_analyze_graph`  - to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:22
+msgid ":ref:`pgr_analyze_oneway` - to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:23
+msgid ":ref:`pgr_node_network`  -to create nodes to a not noded edge table."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:35
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:38
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:39
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:40
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/types_index.po b/locale/ja/LC_MESSAGES/types_index.po
new file mode 100644
index 0000000..3f3faa7
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/types_index.po
@@ -0,0 +1,56 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/types_index.rst:13
+msgid "pgRouting Data Types"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:15
+msgid ""
+"The following are commonly used data types for some of the pgRouting "
+"functions."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:17
+msgid ""
+":ref:`type_cost_result` -  A set of records to describe a path result with "
+"cost attribute."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:18
+msgid ""
+":ref:`pgr_costResult3[] <type_cost_result3>` - A set of records to describe "
+"a path result with cost attribute."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:19
+msgid ""
+":ref:`pgr_geomResult <type_geom_result>` - A set of records to describe a "
+"path result with geometry attribute."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:30
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:33
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:34
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:35
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ja/LC_MESSAGES/withPoints-family.po b/locale/ja/LC_MESSAGES/withPoints-family.po
new file mode 100644
index 0000000..3d4f303
--- /dev/null
+++ b/locale/ja/LC_MESSAGES/withPoints-family.po
@@ -0,0 +1,395 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/withPoints-family.rst:14
+msgid "withPoints - Family of functions"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:16
+msgid "When points are also given as input:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:20
+msgid ":ref:`pgr_withPoints` - Route from/to points anywhere on the graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:21
+msgid ":ref:`pgr_withPointsCost` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:22
+msgid ":ref:`pgr_withPointsCostMatrix` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:23
+msgid ":ref:`pgr_withPointsKSP` - K shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:24
+msgid ":ref:`pgr_withPointsDD` - Driving distance."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:47
+msgid "Images"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:49
+msgid ""
+"The squared vertices are the temporary vertices, The temporary vertices are "
+"added acordng to the dirving side, The following images visualy show the "
+"diferences on how depending on the driving side the data is interpreted."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:53
+msgid "Right driving side"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:58
+msgid "Left driving side"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:63
+msgid "doesn't matter the driving side"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:68
+msgid "Introduction"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:70
+msgid ""
+"This famly of functions was thought for routing vehicles, but might as well "
+"work for some other application that we can not think of."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:73
+msgid ""
+"The with points family of function give you the ability to route between "
+"arbitrary points located outside the original graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:76
+msgid ""
+"When given a point identified with a `pid` that its being mapped to and edge"
+" with an identifier `edge_id`, with a `fraction` along that edge (from the "
+"source to the target of the edge) and some additional information about "
+"which `side` of the edge the point is on, then routing from arbitrary points"
+" more accurately reflect routing vehicles in road networks,"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:87
+msgid ""
+"I talk about a family of functions because it includes different "
+"functionalities."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:84
+msgid "pgr_withPoints is pgr_dijkstra based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:85
+msgid "pgr_withPointsCost is pgr_dijkstraCost based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:86
+msgid "pgr_withPointsKSP is pgr_ksp based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:87
+msgid "pgr_withPointsDD is pgr_drivingDistance based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:89
+msgid ""
+"In all this functions we have to take care of as many aspects as possible:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:91
+msgid "Must work for routing:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:93
+msgid "Cars (directed graph)"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:94
+msgid "Pedestrians (undirected graph)"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:96
+msgid "Arriving at the point:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:98
+msgid "In either side of the street."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:99
+msgid ""
+"Compulsory arrival on the side of the street where the point is located."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:101
+msgid "Countries with:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:103
+msgid "Right side driving"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:104
+msgid "Left side driving"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:106
+msgid "Some points are:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:108
+msgid ""
+"Permanent, for example the set of points of clients stored in a table in the"
+" data base"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:109
+msgid "Temporal, for example points given through a web application"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:111
+msgid "The numbering of the points are handled with negative sign."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:113
+msgid "Original point identifiers are to be positive."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:114
+msgid "Transformation to negative is done internally."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:115
+msgid "For results for involving vertices identifiers"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:117
+msgid "positive sign is a vertex of the original grpah"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:118
+msgid "negative sign is a point of the temporary points"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:120
+msgid ""
+"The reason for doing this is to avoid confusion when there is a vertex with "
+"the same number as identifier as the points identifier."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:123
+msgid "Graph & edges"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:125
+msgid ""
+"Let :math:`G_d(V,E)` where :math:`V` is the set of vertices and :math:`E` is"
+" the set of edges be the original directed graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:127
+msgid ""
+"An edge of the original `edges_sql` is :math:`(id, source, target, cost, "
+"reverse\\_cost)` will generate internally"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:129
+msgid ":math:`(id, source, target, cost)`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:130
+msgid ":math:`(id, target, source, reverse\\_cost)`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:133
+msgid "Point Definition"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:135
+msgid ""
+"A point is defined by the quadruplet: :math:`(pid, eid, fraction, side)`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:137
+msgid "**pid** is the point identifier"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:138
+msgid "**eid** is an edge id of the `edges_sql`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:139
+msgid "**fraction** represents where the edge `eid` will be cut."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:140
+msgid "**side** Indicates the side of the edge where the point is located."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:144
+msgid "Creating Temporary Vertices in the Graph"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:146
+msgid "For edge (15,  9,12  10, 20), & lets insert point (2, 12, 0.3, r)"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:149
+msgid "On a right hand side driving network"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:150
+msgid "From first image above:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:152
+msgid "We can arrive to the point only via vertex 9."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:153
+msgid "It only afects the edge (15, 9,12, 10) so that edge is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:154
+msgid "Edge (15, 12,9, 20) is kept."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:155
+#: ../../build/doc/withPoints-family.rst:167
+#: ../../build/doc/withPoints-family.rst:182
+msgid "Create new edges:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:157
+#: ../../build/doc/withPoints-family.rst:186
+msgid "(15, 9,-1, 3) edge from vertex 9 to point 1 has cost 3"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:158
+#: ../../build/doc/withPoints-family.rst:187
+msgid "(15, -1,12, 7) edge from point 1 to vertex 12 has cost 7"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:161
+msgid "On a left hand side driving network"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:162
+msgid "From second image above:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:164
+msgid "We can arrive to the point only via vertex 12."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:165
+msgid "It only afects the edge (15, 12,9 20) so that edge is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:166
+msgid "Edge (15, 9,12, 10) is kept."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:169
+#: ../../build/doc/withPoints-family.rst:184
+msgid "(15, 12,-1, 14) edge from vertex 12 to point 1 has cost 14"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:170
+#: ../../build/doc/withPoints-family.rst:185
+msgid "(15, -1,9, 6) edge from point 1 to vertex 9 has cost 6"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:172
+msgid "that fraction is from vertex 9 to vertex 12"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:176
+msgid "When driving side does not matter"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:177
+msgid "From third image above:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:179
+msgid "We can arrive to the point either via vertex 12 or via vertex 9"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:180
+msgid "Edge (15, 12,9 20) is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:181
+msgid "Edge (15, 9,12, 10) is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:190
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:193
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:194
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:195
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/pot/.gitignore b/locale/pot/.gitignore
new file mode 100644
index 0000000..b7e8e96
--- /dev/null
+++ b/locale/pot/.gitignore
@@ -0,0 +1 @@
+.doctrees
diff --git a/locale/pot/KSP-category.pot b/locale/pot/KSP-category.pot
new file mode 100644
index 0000000..f197f5f
--- /dev/null
+++ b/locale/pot/KSP-category.pot
@@ -0,0 +1,42 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/KSP-category.rst:14
+msgid "KSP Category"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:18
+msgid ":ref:`pgr_KSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:19
+msgid ":ref:`pgr_withPointsKSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:26
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:27
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:28
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/TSP-family.pot b/locale/pot/TSP-family.pot
new file mode 100644
index 0000000..e159794
--- /dev/null
+++ b/locale/pot/TSP-family.pot
@@ -0,0 +1,500 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/TSP-family.rst:13
+msgid "Traveling Sales Person - Family of functions"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:17
+msgid ":ref:`pgr_TSP` - When input is given as matrix cell information."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:18
+msgid ":ref:`pgr_eucledianTSP` - When input are coordinates."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:30
+msgid "General Information"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:33
+msgid "Origin"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:36
+msgid "The traveling sales person problem was studied in the 18th century by mathematicians"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:36
+msgid "**Sir William Rowam Hamilton** and **Thomas Penyngton  Kirkman**."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:38
+msgid "A discussion about the work of Hamilton & Kirkman can be found in the book **Graph Theory (Biggs et  al. 1976)**."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:41
+msgid "ISBN-13: 978-0198539162"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:42
+msgid "ISBN-10: 0198539169"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:44
+msgid "It is believed that the general form of the TSP have been first studied by Kalr Menger in Vienna and Harvard. The problem  was  later promoted by Hassler, Whitney  &  Merrill at Princeton. A detailed  description about the connection between Menger & Whitney, and the development of the TSP can be found in  `On the history of combinatorial optimization (till 1960) <http://www.cwi.nl/~lex/files/histco.ps>`_"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:50
+msgid "Problem Definition"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:52
+msgid "Given a collection of cities and travel cost between each pair, find the cheapest way for visiting all of the cities and returning to the starting point."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:56
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:58
+msgid "The travel costs are symmetric:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:60
+msgid "traveling costs from city A to city B are just as much as traveling from B to A."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:62
+msgid "This problem is an NP-hard optimization problem."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:64
+msgid "To calculate the number of different tours through :math:`n` cities:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:66
+msgid "Given a starting city,"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:67
+msgid "There are :math:`n-1` choices for the second city,"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:68
+msgid "And  :math:`n-2` choices for the third city, etc."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:69
+msgid "Multiplying these together we get :math:`(n-1)!  = (n-1) (n-2) . .  1`."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:70
+msgid "Now since our travel costs do not depend on the direction we take around the tour:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:72
+msgid "this number by 2"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:73
+msgid ":math:`(n-1)!/2`."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:76
+msgid "TSP & Simulated Annealing"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:78
+msgid "The simulated annealing algorithm was originally inspired from the process of annealing in metal work."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:81
+msgid "Annealing involves heating and cooling a material to alter its physical properties due to the changes in its internal structure. As the metal cools its new structure becomes fixed, consequently causing the metal to retain its newly obtained properties. [C001]_"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:88
+msgid "Pseudocode"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:89
+msgid "Given an initial solution, the simulated annealing process, will start with a high temperature and gradually cool down until the desired temperature is reached."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:92
+msgid "For each temperature, a neighbouring new solution **snew** is calculated. The higher the temperature the higher the probability of accepting the new solution as a possible bester solution."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:95
+msgid "Once the desired temperature is reached, the best solution found is returned"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:118
+msgid "pgRouting Implementation"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:120
+msgid "pgRouting's implementation adds some extra parameters to allow some exit controls within the simulated annealing process."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:123
+msgid "To cool down faster to the next temperature:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:125
+msgid "max_changes_per_temperature: limits the number of changes in the solution per temperature"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:126
+msgid "max_consecutive_non_changes: limits the number of consecutive non changes per temperature"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:128
+msgid "This is done by doing some book keeping on the times **solution = snew;** is executed."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:130
+msgid "max_changes_per_temperature: Increases by one when **solution** changes"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:131
+msgid "max_consecutive_non_changes: Reset to 0 when **solution** changes, and increased each **try**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:133
+msgid "Additionally to stop the algorithm at a higher temperature than the desired one:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:135
+msgid "max_processing_time: limits the time the simulated annealing is performed."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:136
+msgid "book keeping is done to see if there was a change in **solution** on the last temperature"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:138
+msgid "Note that, if no change was found in the first **max_consecutive_non_changes** tries, then the simulated annealing will stop."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:168
+msgid "Choosing parameters"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:170
+msgid "There is no exact rule on how the parameters have to be chose, it will depend on the special characteristics of the problem."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:173
+msgid "Your computational time is crucial, then put your time limit to **max_processing_time**."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:174
+msgid "Make the **tries_per_temperture** depending on the number of cities, for example:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:176
+msgid "Useful to estimate the time it takes to do one cycle: use `1`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:178
+msgid "this will help to set a reasonable **max_processing_time**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:180
+msgid ":math:`n * (n-1)`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:181
+msgid ":math:`500 * n`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:183
+msgid "For a faster decreasing the temperature set **cooling_factor** to a smaller number, and set to a higher number for a slower decrease."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:186
+msgid "When for the same given data the same results are needed, set **randomize** to `false`."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:188
+msgid "When estimating how long it takes to do one cycle: use `false`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:191
+msgid "A recommendation is to play with the values and see what fits to the particular data."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:196
+msgid "Description Of the Control parameters"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:198
+msgid "The control parameters are optional, and have a default value."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201
+#: ../../build/doc/TSP-family.rst:230
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201
+#: ../../build/doc/TSP-family.rst:230
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203
+#: ../../build/doc/TSP-family.rst:204
+#: ../../build/doc/TSP-family.rst:233
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203
+#: ../../build/doc/TSP-family.rst:204
+msgid "`0`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203
+msgid "The greedy part of the implementation will use this identifier."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:204
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:204
+msgid "Last visiting vertex before returning to start_vid."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205
+msgid "**max_processing_time**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205
+#: ../../build/doc/TSP-family.rst:209
+#: ../../build/doc/TSP-family.rst:210
+#: ../../build/doc/TSP-family.rst:211
+#: ../../build/doc/TSP-family.rst:234
+#: ../../build/doc/TSP-family.rst:237
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205
+msgid "`+infinity`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205
+msgid "Stop the annealing processing when the value is reached."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206
+msgid "**tries_per_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206
+#: ../../build/doc/TSP-family.rst:207
+#: ../../build/doc/TSP-family.rst:208
+#: ../../build/doc/TSP-family.rst:232
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206
+msgid "`500`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206
+msgid "Maximum number of times a neighbor(s) is searched in each temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:207
+msgid "**max_changes_per_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:207
+msgid "`60`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:207
+msgid "Maximum number of times the solution is changed in each temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:208
+msgid "**max_consecutive_non_changes**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:208
+#: ../../build/doc/TSP-family.rst:209
+msgid "`100`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:208
+msgid "Maximum number of consecutive times the solution is not changed in each temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:209
+msgid "**initial_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:209
+msgid "Starting temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:210
+msgid "**final_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:210
+msgid "`0.1`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:210
+msgid "Ending temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:211
+msgid "**cooling_factor**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:211
+msgid "`0.9`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:211
+msgid "Value between between 0 and 1 (not including) used to calculate the next temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "**randomize**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "`true`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "Choose the random seed"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:214
+msgid "true: Use current time as seed"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:215
+msgid "false: Use `1` as seed. Using this value will get the same results with the same data in each execution."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:225
+msgid "Description of the return columns"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:227
+msgid "Returns set of ``(seq, node, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:230
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:232
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:232
+msgid "Row sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:233
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:233
+msgid "Identifier of the node/coordinate/point."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:234
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:235
+msgid "Cost to traverse from the current ``node`` ito the next ``node`` in the path sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:235
+msgid "``0`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:237
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:238
+msgid "Aggregate cost from the ``node`` at ``seq = 1`` to the current node."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:238
+msgid "``0`` for the first row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:245
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:248
+msgid "References"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:249
+msgid "`Simulated annaeling algorithm for beginners <http://www.theprojectspot.com/tutorial-post/simulated-annealing-algorithm-for-beginners/6>`_"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:251
+msgid "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:252
+msgid "http://en.wikipedia.org/wiki/Simulated_annealing"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:255
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:256
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:257
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/aStar-family.pot b/locale/pot/aStar-family.pot
new file mode 100644
index 0000000..7d6d097
--- /dev/null
+++ b/locale/pot/aStar-family.pot
@@ -0,0 +1,200 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/aStar-family.rst:13
+msgid "aStar - Family of functions"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:15
+msgid "The A* (pronounced \"A Star\") algorithm is based on Dijkstra's algorithm with a heuristic that allow it to solve most shortest path problems by evaluation only a sub-set of the overall graph."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:19
+msgid ":ref:`pgr_aStar` - A* algorithm for the shortest path."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:20
+msgid ":ref:`pgr_aStarCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:21
+msgid ":ref:`pgr_aStarCostMatrix` - Get the cost matrix of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:34
+msgid "The problem definition (Advanced documentation)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:36
+msgid "The A* (pronounced \"A Star\") algorithm is based on Dijkstra's algorithm with a heuristic, that is an estimation of the remaining cost from the vertex to the goal, that allows to solve most shortest path problems by evaluation only a sub-set of the overall graph. Running time: :math:`O((E + V) * \\log V)`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:46
+msgid "Heuristic"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:48
+msgid "Currently the heuristic functions available are:"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:50
+msgid "0: :math:`h(v) = 0` (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:51
+msgid "1: :math:`h(v) = abs(max(\\Delta x, \\Delta y))`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:52
+msgid "2: :math:`h(v) = abs(min(\\Delta x, \\Delta y))`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:53
+msgid "3: :math:`h(v) = \\Delta x * \\Delta x + \\Delta y * \\Delta y`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:54
+msgid "4: :math:`h(v) = sqrt(\\Delta x * \\Delta x + \\Delta y * \\Delta y)`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:55
+msgid "5: :math:`h(v) = abs(\\Delta x) + abs(\\Delta y)`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:57
+msgid "where :math:`\\Delta x = x_1 - x_0` and :math:`\\Delta y = y_1 - y_0`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:63
+#: ../../build/doc/aStar-family.rst:76
+#: ../../build/doc/aStar-family.rst:89
+msgid "Factor"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:66
+msgid "Analysis 1"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:67
+msgid "Working with cost/reverse_cost as length in degrees, x/y in lat/lon: Factor = 1   (no need to change units)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:71
+msgid "Analysis 2"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:72
+msgid "Working with cost/reverse_cost as length in meters, x/y in lat/lon: Factor =  would depend on the location of the points:"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:76
+#: ../../build/doc/aStar-family.rst:89
+msgid "latitude"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:76
+#: ../../build/doc/aStar-family.rst:89
+msgid "conversion"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:78
+#: ../../build/doc/aStar-family.rst:91
+msgid "45"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:78
+msgid "1 longitude degree is  78846.81 m"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:78
+msgid "78846"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:79
+#: ../../build/doc/aStar-family.rst:92
+msgid "0"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:79
+msgid "1 longitude degree is 111319.46 m"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:79
+msgid "111319"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:83
+msgid "Analysis 3"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:84
+msgid "Working with cost/reverse_cost as time in seconds, x/y in lat/lon: Factor: would depend on the location of the points and on the average speed say 25m/s is the speed."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:91
+msgid "1 longitude degree is (78846.81m)/(25m/s)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:91
+msgid "3153 s"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:92
+msgid "1 longitude degree is (111319.46 m)/(25m/s)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:92
+msgid "4452 s"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:98
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:100
+msgid ":ref:`pgr_aStar`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:101
+msgid ":ref:`pgr_aStarCost`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:102
+msgid ":ref:`pgr_aStarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:103
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:104
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:107
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:108
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:109
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/allpairs-family.pot b/locale/pot/allpairs-family.pot
new file mode 100644
index 0000000..7c5644b
--- /dev/null
+++ b/locale/pot/allpairs-family.pot
@@ -0,0 +1,993 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/allpairs-family.rst:14
+msgid "All Pairs - Family of Functions"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:16
+msgid "The following functions work an all vertices pair combinations"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:33
+msgid "Performance"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:40
+msgid "The following tests:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:36
+msgid "non server computer"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:37
+msgid "with AMD 64 CPU"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:38
+msgid "4G memory"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:39
+msgid "trusty"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:40
+msgid "posgreSQL version 9.3"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:43
+msgid "Data"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:45
+msgid "The following data was used"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:53
+msgid "Data processing was done with osm2pgrouting-alpha"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:66
+msgid "Results"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:68
+msgid "One"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:70
+msgid "This test is not with a bounding box The density of the passed graph is extremely low. For each <SIZE> 30 tests were executed to get the average The tested query is:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:83
+#: ../../build/doc/allpairs-family.rst:140
+msgid "The results of this tests are presented as:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:85
+msgid "is the number of edges given as input."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:86
+#: ../../build/doc/allpairs-family.rst:143
+msgid "is the total number of records in the query."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:87
+#: ../../build/doc/allpairs-family.rst:144
+msgid "is the density of the data :math:`\\dfrac{E}{V \\times (V-1)}`."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:88
+#: ../../build/doc/allpairs-family.rst:145
+msgid "is the number of records returned by the queries."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:89
+#: ../../build/doc/allpairs-family.rst:146
+msgid "is the average execution time in seconds of pgr_floydWarshall."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:90
+#: ../../build/doc/allpairs-family.rst:147
+msgid "is the average execution time in seconds of pgr_johnson."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "SIZE"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "EDGES"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "DENSITY"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "OUT ROWS"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "Floyd-Warshall"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "Johnson"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+#: ../../build/doc/allpairs-family.rst:96
+msgid "500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "0.18E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "1346"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "0.14"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "0.13"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+#: ../../build/doc/allpairs-family.rst:97
+msgid "1000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "0.36E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "2655"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "0.23"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "0.18"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+#: ../../build/doc/allpairs-family.rst:98
+msgid "1500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+msgid "0.55E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+msgid "4110"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+#: ../../build/doc/allpairs-family.rst:99
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.37"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+msgid "0.34"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+#: ../../build/doc/allpairs-family.rst:99
+msgid "2000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+msgid "0.73E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+msgid "5676"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+msgid "0.56"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+#: ../../build/doc/allpairs-family.rst:100
+msgid "2500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "0.89E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "7177"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "0.84"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "0.51"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+#: ../../build/doc/allpairs-family.rst:101
+msgid "3000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "1.07E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "8778"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "1.28"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "0.68"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+#: ../../build/doc/allpairs-family.rst:102
+msgid "3500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "1.24E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "10526"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "2.08"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "0.95"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+#: ../../build/doc/allpairs-family.rst:103
+msgid "4000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "1.41E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "12484"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "3.16"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "1.24"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+#: ../../build/doc/allpairs-family.rst:104
+msgid "4500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "1.58E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "14354"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "4.49"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "1.47"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+#: ../../build/doc/allpairs-family.rst:105
+msgid "5000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "1.76E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "16503"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "6.05"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "1.78"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+#: ../../build/doc/allpairs-family.rst:106
+msgid "5500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "1.93E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "18623"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "7.53"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "2.03"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+#: ../../build/doc/allpairs-family.rst:107
+msgid "6000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "2.11E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "20710"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "8.47"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "2.37"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+#: ../../build/doc/allpairs-family.rst:108
+msgid "6500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "2.28E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "22752"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "9.99"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "2.68"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+#: ../../build/doc/allpairs-family.rst:109
+msgid "7000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "2.46E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "24687"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "11.82"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "3.12"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+#: ../../build/doc/allpairs-family.rst:110
+msgid "7500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "2.64E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "26861"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "13.94"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "3.60"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+#: ../../build/doc/allpairs-family.rst:111
+msgid "8000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "2.83E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "29050"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "15.61"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "4.09"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+#: ../../build/doc/allpairs-family.rst:112
+msgid "8500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "3.01E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "31693"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "17.43"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "4.63"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+#: ../../build/doc/allpairs-family.rst:113
+msgid "9000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "3.17E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "33879"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "19.19"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "5.34"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+#: ../../build/doc/allpairs-family.rst:114
+msgid "9500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "3.35E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "36287"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "20.77"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "6.24"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+#: ../../build/doc/allpairs-family.rst:115
+msgid "10000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "3.52E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "38491"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "23.26"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "6.51"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:119
+msgid "Two"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:121
+msgid "This test is with a bounding box The density of the passed graph higher than of the Test One. For each <SIZE> 30 tests were executed to get the average The tested edge query is:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:133
+msgid "The tested queries"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:142
+msgid "is the size of the bounding box."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "0.001"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "44"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "0.0608"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "1197"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+#: ../../build/doc/allpairs-family.rst:153
+#: ../../build/doc/allpairs-family.rst:154
+#: ../../build/doc/allpairs-family.rst:154
+msgid "0.10"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "0.002"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "99"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "0.0251"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "4330"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "0.003"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "223"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "0.0122"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "18849"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+#: ../../build/doc/allpairs-family.rst:155
+msgid "0.12"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "0.004"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "358"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "0.0085"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "71834"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+#: ../../build/doc/allpairs-family.rst:156
+msgid "0.16"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.005"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "470"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.0070"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "116290"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.22"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.19"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.006"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "639"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.0055"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "207030"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.27"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.007"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "843"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.0043"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "346930"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.64"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.38"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.008"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "996"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.0037"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "469936"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.90"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.49"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "0.009"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "1146"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "0.0032"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "613135"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "1.26"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "0.62"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "0.010"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "1360"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "0.0027"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "849304"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "1.87"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "0.82"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "0.011"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "1573"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "0.0024"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "1147101"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "2.65"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "1.04"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "0.012"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "1789"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "0.0021"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "1483629"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "3.72"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "1.35"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "0.013"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "1975"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "0.0019"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "1846897"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "4.86"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "1.68"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "0.014"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "2281"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "0.0017"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "2438298"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "7.08"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "2.28"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "0.015"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "2588"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "0.0015"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "3156007"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "10.28"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "2.80"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "0.016"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "2958"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "0.0013"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "4090618"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "14.67"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "3.76"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "0.017"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "3247"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "0.0012"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "4868919"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "18.12"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "4.48"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:174
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:176
+msgid ":ref:`pgr_johnson`"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:177
+msgid ":ref:`pgr_floydWarshall`"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:178
+msgid "`Boost floyd-Warshall <http://www.boost.org/libs/graph/doc/floyd_warshall_shortest.html>`_ algorithm"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:181
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:182
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:183
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/bdAstar-family.pot b/locale/pot/bdAstar-family.pot
new file mode 100644
index 0000000..e7da33c
--- /dev/null
+++ b/locale/pot/bdAstar-family.pot
@@ -0,0 +1,379 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Bidirectional A* - Family of functions"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid ":ref:`pgr_bdAstar` - Bidirectional A* algorithm for obtaining paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:18
+msgid ":ref:`pgr_bdAstarCost` - Bidirectional A* algorithm to calculate the cost of the paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid ":ref:`pgr_bdAstarCostMatrix` - Bidirectional A* algorithm to calculate a cost matrix of paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:35
+msgid "Based on A* algorithm, the bidirectional search finds a shortest path from a starting vertex (``start_vid``) to an ending vertex (``end_vid``). It runs two simultaneous searches: one forward from the ``start_vid``, and one backward from the ``end_vid``, stopping when the two meet in the middle. This implementation can be used with a directed graph and an undirected graph."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:42
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:44
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:46
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:47
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:49
+msgid "When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:51
+msgid "The `agg_cost` the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:53
+msgid "When the starting vertex and ending vertex are the different and there is no path:"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:55
+msgid "The `agg_cost` the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:57
+msgid "Running time (worse case scenario): :math:`O((E + V) * \\log V)`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:58
+msgid "For large graphs where there is a path bewtween the starting vertex and ending vertex:"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:60
+msgid "It is expected to terminate faster than pgr_astar"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:63
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:75
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:75
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:78
+#: ../../build/doc/bdAstar-family.rst:80
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:72
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:75
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:77
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:77
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:77
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:78
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:78
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:79
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:79
+#: ../../build/doc/bdAstar-family.rst:81
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:79
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:80
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:80
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:81
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:81
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:82
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:82
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:82
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:84
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:85
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:87
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:87
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:87
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:89
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:90
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:91
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:92
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:93
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:94
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:96
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:96
+#: ../../build/doc/bdAstar-family.rst:97
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:96
+msgid "(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see :ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:97
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:97
+msgid "(optional). For less restricted results. :math:`epsilon >= 1`.  Default ``1``."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:103
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:106
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:107
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:108
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/bdDijkstra-family.pot b/locale/pot/bdDijkstra-family.pot
new file mode 100644
index 0000000..a0650ad
--- /dev/null
+++ b/locale/pot/bdDijkstra-family.pot
@@ -0,0 +1,102 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/bdDijkstra-family.rst:13
+msgid "Bidirectional Dijkstra - Family of functions"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:17
+msgid ":ref:`pgr_bdDijkstra` - Bidirectional Dijkstra algorithm for the shortest paths."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:18
+msgid ":ref:`pgr_bdDijkstraCost` - Bidirectional Dijkstra to calculate the cost of the shortest paths"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:19
+msgid ":ref:`pgr_bdDijkstraCostMatrix` - Bidirectional Dijkstra algorithm  to create a matrix of costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:35
+msgid "Based on Dijkstra's algorithm, the bidirectional search finds a shortest path a starting vertex (``start_vid``) to an ending vertex (``end_vid``). It runs two simultaneous searches: one forward from the source, and one backward from the target, stopping when the two meet in the middle. This implementation can be used with a directed graph and an undirected graph."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:42
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:44
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:46
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:47
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:49
+msgid "When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:51
+msgid "The `agg_cost` the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:53
+msgid "When the starting vertex and ending vertex are the different and there is no path:"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:55
+msgid "The `agg_cost` the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:57
+msgid "Running time (worse case scenario): :math:`O((V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:58
+msgid "For large graphs where there is a path bewtween the starting vertex and ending vertex:"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:60
+msgid "It is expected to terminate faster than pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:63
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:66
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:67
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:68
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/components-family.pot b/locale/pot/components-family.pot
new file mode 100644
index 0000000..8d8e60d
--- /dev/null
+++ b/locale/pot/components-family.pot
@@ -0,0 +1,696 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/components-family.rst:13
+msgid "Components - Family of functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:22
+msgid ":ref:`pgr_connectedComponents` - Return the connected components of an undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:23
+msgid ":ref:`pgr_strongComponents` - Return the strongly connected components of a directed graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid ":ref:`pgr_biconnectedComponents` - Return the biconnected components of an undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:25
+msgid ":ref:`pgr_articulationPoints` - Return the articulation points of an undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid ":ref:`pgr_bridges` - Return the bridges of an undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:42
+msgid "The problem definition"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:45
+msgid "Connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:46
+msgid "A connected component of an undirected graph is a set of vertices that are all reachable from each other."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:49
+#: ../../build/doc/components-family.rst:183
+#: ../../build/doc/components-family.rst:252
+#: ../../build/doc/components-family.rst:312
+msgid "**Notice**: This problem defines on an undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:51
+#: ../../build/doc/components-family.rst:117
+#: ../../build/doc/components-family.rst:185
+#: ../../build/doc/components-family.rst:254
+#: ../../build/doc/components-family.rst:314
+msgid "Given the following query:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:54
+msgid "pgr_connectedComponentsV(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:56
+#: ../../build/doc/components-family.rst:122
+#: ../../build/doc/components-family.rst:190
+#: ../../build/doc/components-family.rst:259
+#: ../../build/doc/components-family.rst:319
+msgid "where  :math:`sql = \\{(id_i, source_i, target_i, cost_i, reverse\\_cost_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:58
+#: ../../build/doc/components-family.rst:124
+#: ../../build/doc/components-family.rst:192
+#: ../../build/doc/components-family.rst:261
+#: ../../build/doc/components-family.rst:321
+msgid "and"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:60
+#: ../../build/doc/components-family.rst:126
+#: ../../build/doc/components-family.rst:194
+#: ../../build/doc/components-family.rst:263
+#: ../../build/doc/components-family.rst:323
+msgid ":math:`source = \\bigcup source_i`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:61
+#: ../../build/doc/components-family.rst:127
+#: ../../build/doc/components-family.rst:195
+#: ../../build/doc/components-family.rst:264
+#: ../../build/doc/components-family.rst:324
+msgid ":math:`target = \\bigcup target_i`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:63
+#: ../../build/doc/components-family.rst:129
+#: ../../build/doc/components-family.rst:197
+#: ../../build/doc/components-family.rst:266
+#: ../../build/doc/components-family.rst:326
+msgid "The graphs are defined as follows:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:65
+#: ../../build/doc/components-family.rst:199
+#: ../../build/doc/components-family.rst:268
+#: ../../build/doc/components-family.rst:328
+msgid "The weighted undirected graph, :math:`G(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:67
+#: ../../build/doc/components-family.rst:133
+#: ../../build/doc/components-family.rst:201
+#: ../../build/doc/components-family.rst:270
+#: ../../build/doc/components-family.rst:330
+msgid "the set of vertices  :math:`V`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:69
+#: ../../build/doc/components-family.rst:203
+#: ../../build/doc/components-family.rst:272
+#: ../../build/doc/components-family.rst:332
+msgid ":math:`V = source \\cup target`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:72
+#: ../../build/doc/components-family.rst:137
+#: ../../build/doc/components-family.rst:206
+#: ../../build/doc/components-family.rst:275
+#: ../../build/doc/components-family.rst:335
+msgid "the set of edges :math:`E`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:74
+#: ../../build/doc/components-family.rst:208
+#: ../../build/doc/components-family.rst:277
+#: ../../build/doc/components-family.rst:337
+msgid ":math:`E = \\begin{cases} &\\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} \\\\ \\cup &\\{(target_i, source_i, cost_i) \\text{ when } cost >=0 \\}  &\\quad  \\text{ if } reverse\\_cost = \\varnothing \\\\ \\\\ &\\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} \\\\ \\cup &\\{(target_i, source_i, cost_i) \\text{ when } cost >=0 \\} \\\\ \\cup &\\{(target_i, source_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i >=0)\\} \\\\ \\cup &\\{(source_i, target_i,  [...]
+msgstr ""
+
+#: ../../build/doc/components-family.rst:77
+#: ../../build/doc/components-family.rst:142
+#: ../../build/doc/components-family.rst:211
+#: ../../build/doc/components-family.rst:280
+#: ../../build/doc/components-family.rst:340
+msgid "Given:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:79
+#: ../../build/doc/components-family.rst:144
+#: ../../build/doc/components-family.rst:213
+#: ../../build/doc/components-family.rst:282
+#: ../../build/doc/components-family.rst:342
+msgid ":math:`G(V,E)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:81
+#: ../../build/doc/components-family.rst:146
+#: ../../build/doc/components-family.rst:215
+#: ../../build/doc/components-family.rst:284
+#: ../../build/doc/components-family.rst:344
+msgid "Then:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:89
+#: ../../build/doc/components-family.rst:154
+#: ../../build/doc/components-family.rst:223
+msgid ":math:`\\boldsymbol{\\pi} = \\{(component_i, n\\_seq_i, node_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:98
+#: ../../build/doc/components-family.rst:163
+#: ../../build/doc/components-family.rst:232
+#: ../../build/doc/components-family.rst:298
+#: ../../build/doc/components-family.rst:358
+msgid "where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:92
+msgid ":math:`component_i = \\min \\{node_j | node_j \\in component_i\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:93
+#: ../../build/doc/components-family.rst:158
+#: ../../build/doc/components-family.rst:227
+msgid ":math:`n\\_seq_i` is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:94
+#: ../../build/doc/components-family.rst:159
+msgid ":math:`node_i \\in component_i`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:95
+#: ../../build/doc/components-family.rst:160
+#: ../../build/doc/components-family.rst:229
+#: ../../build/doc/components-family.rst:296
+#: ../../build/doc/components-family.rst:356
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:97
+#: ../../build/doc/components-family.rst:162
+#: ../../build/doc/components-family.rst:231
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:98
+#: ../../build/doc/components-family.rst:163
+#: ../../build/doc/components-family.rst:298
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:103
+#: ../../build/doc/components-family.rst:170
+#: ../../build/doc/components-family.rst:239
+#: ../../build/doc/components-family.rst:301
+#: ../../build/doc/components-family.rst:361
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:101
+msgid "The first component is composed of nodes ``0``, ``1`` and ``4``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:102
+msgid "The second component is composed of node ``3``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:103
+msgid "The third component is composed of nodes ``2`` and ``5``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:111
+msgid "Strongly connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:112
+msgid "A strongly connected component of a directed graph is a set of vertices that are all reachable from each other."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:115
+msgid "**Notice**: This problem defines on a directed graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:120
+msgid "pgr_strongComponentsV(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:131
+msgid "The weighted directed graph, :math:`G_d(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:135
+msgid ":math:`V = source \\cup target \\cup {start_{vid}} \\cup  {end_{vid}}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:139
+msgid ":math:`E = \\begin{cases} &\\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} &\\quad  \\text{ if } reverse\\_cost = \\varnothing \\\\ \\\\ &\\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} \\\\ \\cup &\\{(target_i, source_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i >=0)\\} &\\quad \\text{ if } reverse\\_cost \\neq \\varnothing \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:157
+#: ../../build/doc/components-family.rst:226
+msgid ":math:`component_i = \\min {node_j | node_j \\in component_i}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:166
+msgid "The first component is composed of nodes ``1``, ``2`` and ``4``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:167
+msgid "The second component is composed of node ``0``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:168
+msgid "The third component is composed of node ``3``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:169
+msgid "The fourth component is composed of node ``5``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:170
+msgid "The fifth component is composed of node ``6``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:177
+msgid "Biconnected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:178
+msgid "The biconnected components of an undirected graph are the maximal subsets of vertices such that the removal of a vertex from particular component will not disconnect the component. Unlike connected components, vertices may belong to multiple biconnected components. Vertices can be present in multiple biconnected components, but each edge can only be contained in a single biconnected component. So, the output only has edge version."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:188
+msgid "pgr_biconnectedComponents(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:228
+msgid ":math:`edge_i \\in component_i`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:232
+#: ../../build/doc/components-family.rst:358
+msgid "`edge` ascending"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:235
+msgid "The first component is composed of edges ``1 - 2``, ``0 - 1`` and ``0 - 2``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:236
+msgid "The second component is composed of edges ``2 - 4``, ``2 - 3`` and ``3 - 4``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:237
+msgid "The third component is composed of edge ``5 - 6``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:238
+msgid "The fourth component is composed of edge ``6 - 7``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:239
+msgid "The fifth component is composed of edges ``8 - 9``, ``9 - 10`` and ``8 - 10``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:246
+msgid "Articulation Points"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:247
+msgid "Those vertices that belong to more than one biconnected component are called articulation points or, equivalently, cut vertices. Articulation points are vertices whose removal would increase the number of connected components in the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:257
+msgid "pgr_articulationPoints(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:292
+msgid ":math:`\\boldsymbol{\\pi} = \\{node_i\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:295
+msgid ":math:`node_i` is an articulation point."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:301
+msgid "Articulation points are nodes ``2`` and ``6``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:308
+msgid "Bridges"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:309
+msgid "A bridge is an edge of an undirected graph whose deletion increases its number of connected components."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:317
+msgid "pgr_bridges(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:352
+msgid ":math:`\\boldsymbol{\\pi} = \\{edge_i\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:355
+msgid ":math:`edge_i` is an edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:361
+msgid "Bridges are edges ``5 <--> 6`` and ``6 <--> 7``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:370
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:372
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:421
+#: ../../build/doc/components-family.rst:440
+#: ../../build/doc/components-family.rst:458
+#: ../../build/doc/components-family.rst:474
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:405
+#: ../../build/doc/components-family.rst:421
+#: ../../build/doc/components-family.rst:440
+#: ../../build/doc/components-family.rst:458
+#: ../../build/doc/components-family.rst:474
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:405
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:405
+#: ../../build/doc/components-family.rst:421
+#: ../../build/doc/components-family.rst:440
+#: ../../build/doc/components-family.rst:458
+#: ../../build/doc/components-family.rst:474
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:377
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:377
+#: ../../build/doc/components-family.rst:378
+#: ../../build/doc/components-family.rst:379
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:377
+#: ../../build/doc/components-family.rst:445
+#: ../../build/doc/components-family.rst:477
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:378
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:378
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:379
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:379
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:380
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:380
+#: ../../build/doc/components-family.rst:384
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:380
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:382
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:384
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:384
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:384
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:386
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:390
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:392
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:393
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:402
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:405
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:407
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:407
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:407
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:416
+msgid "Description of the return values for connected components and strongly connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:418
+msgid "Returns set of ``(seq, component, n_seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:423
+#: ../../build/doc/components-family.rst:442
+#: ../../build/doc/components-family.rst:460
+#: ../../build/doc/components-family.rst:476
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:423
+#: ../../build/doc/components-family.rst:425
+#: ../../build/doc/components-family.rst:442
+#: ../../build/doc/components-family.rst:444
+#: ../../build/doc/components-family.rst:460
+#: ../../build/doc/components-family.rst:476
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:423
+#: ../../build/doc/components-family.rst:442
+#: ../../build/doc/components-family.rst:460
+#: ../../build/doc/components-family.rst:476
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:424
+#: ../../build/doc/components-family.rst:443
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:424
+#: ../../build/doc/components-family.rst:426
+#: ../../build/doc/components-family.rst:443
+#: ../../build/doc/components-family.rst:445
+#: ../../build/doc/components-family.rst:461
+#: ../../build/doc/components-family.rst:477
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:424
+msgid "Component identifier. It is equal to the minimum node identifier in the component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:425
+#: ../../build/doc/components-family.rst:444
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:425
+#: ../../build/doc/components-family.rst:444
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:426
+#: ../../build/doc/components-family.rst:461
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:426
+#: ../../build/doc/components-family.rst:461
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:435
+msgid "Description of the return values for biconnected components, connected components (edge version) and strongly connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:437
+msgid "Returns set of ``(seq, component, n_seq, edge)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:443
+msgid "Component identifier. It is equal to the minimum edge identifier in the component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:445
+#: ../../build/doc/components-family.rst:477
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:453
+msgid "Description of the return values for articulation points"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:455
+#: ../../build/doc/components-family.rst:471
+msgid "Returns set of ``(seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:469
+msgid "Description of the return values for bridges"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:483
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:486
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:487
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:488
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/contraction-family.pot b/locale/pot/contraction-family.pot
new file mode 100644
index 0000000..260435f
--- /dev/null
+++ b/locale/pot/contraction-family.pot
@@ -0,0 +1,614 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/contraction-family.rst:14
+msgid "Contraction - Family of functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:21
+msgid ":ref:`pgr_contractGraph`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:29
+msgid "Introduction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:31
+msgid "In big graphs, like the road graphs, or electric networks, graph contraction can be used to speed up some graph algorithms. Contraction reduces the size of the graph by removing some of the vertices and edges and, for example, might add edges that represent a sequence of original edges decreasing the total time and space used in graph algorithms."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:33
+msgid "This implementation gives a flexible framework for adding contraction algorithms in the future, currently, it supports two algorithms:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:35
+#: ../../build/doc/contraction-family.rst:46
+msgid "Dead end contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:36
+#: ../../build/doc/contraction-family.rst:166
+msgid "Linear contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:38
+msgid "Allowing the user to:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:40
+msgid "Forbid contraction on a set of nodes."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:41
+msgid "Decide the order of the contraction algorithms and set the maximum number of times they are to be executed."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:43
+msgid "UNDER DISCUSSION:  Forbid contraction on a set of edges"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:47
+msgid "In the algorithm, dead end contraction is represented by 1."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:50
+msgid "Dead end nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:52
+msgid "The definition of a dead end node is different for a directed and an undirected graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:54
+msgid "In case of a undirected graph, a node is considered a dead end node if"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:56
+msgid "The number of adjacent vertices is 1."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:58
+msgid "In case of an directed graph, a node is considered a dead end node if"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:60
+msgid "There are no outgoing edges and has at least one incoming edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:61
+msgid "There is one incoming and one outgoing edge with the same identifier."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:64
+#: ../../build/doc/contraction-family.rst:178
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:65
+msgid "The green node ``B`` represents a dead end node"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:66
+msgid "The node ``A`` is the only node connecting to ``B``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:67
+#: ../../build/doc/contraction-family.rst:181
+msgid "Node ``A`` is part of the rest of the graph and has an unlimited number of incoming and outgoing edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:68
+#: ../../build/doc/contraction-family.rst:183
+msgid "Directed graph"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:86
+msgid "Operation: Dead End Contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:88
+msgid "The dead end contraction will stop until there are no more dead end nodes. For example from the following graph:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:91
+#: ../../build/doc/contraction-family.rst:208
+msgid "Node ``A`` is connected to the rest of the graph by an unlimited number of edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:92
+msgid "Node ``B`` is connected to the rest of the graph with one incoming edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:93
+msgid "Node ``B`` is the only node connecting to ``C``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:94
+msgid "The green node ``C`` represents a `Dead End` node"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:113
+msgid "After contracting ``C``, node ``B`` is now a `Dead End` node and is contracted:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:129
+msgid "Node ``B`` gets contracted"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:143
+msgid "Nodes ``B`` and ``C`` belong to node ``A``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:148
+msgid "Not Dead End nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:150
+msgid "In this graph ``B`` is not a `dead end` node."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:167
+msgid "In the algorithm, linear contraction is represented by 2."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:170
+msgid "Linear nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:172
+msgid "A node is considered a linear node if satisfies the following:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:174
+msgid "The number of adjacent vertices are 2."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:175
+msgid "Should have at least one incoming edge and one outgoing edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:179
+msgid "The green node ``B`` represents a linear node"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:180
+msgid "The nodes ``A`` and ``C`` are the only nodes connecting to ``B``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:182
+msgid "Node ``C`` is part of the rest of the graph and has an unlimited number of incoming and outgoing edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:203
+msgid "Operation: Linear Contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:205
+msgid "The linear contraction will stop until there are no more linear nodes. For example from the following graph:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:209
+msgid "Node ``B`` is connected to the rest of the graph with one incoming edge and one outgoing edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:210
+msgid "Node ``C`` is connected to the rest of the graph with one incoming edge and one outgoing edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:211
+msgid "Node ``D`` is connected to the rest of the graph by an unlimited number of edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:212
+msgid "The green nodes ``B`` and ``C`` represents `Linear` nodes."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:234
+msgid "After contracting ``B``, a new edge gets inserted between ``A`` and ``C`` which is represented by red color."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:254
+msgid "Node ``C`` is `linear node` and gets contracted."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:272
+msgid "Nodes ``B`` and ``C`` belong to edge connecting ``A`` and ``D`` which is represented by red color."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:275
+msgid "Not Linear nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:277
+msgid "In this graph ``B`` is not a `linear` node."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:298
+msgid "The cycle"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:300
+msgid "Contracting a graph, can be done with more than one operation. The order of the operations affect the resulting contracted graph, after applying one operation, the set of vertices that can be contracted by another operation changes."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:302
+msgid "This implementation, cycles ``max_cycles`` times through ``operations_order`` ."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:315
+msgid "Contracting Sample Data"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:317
+msgid "In this section, building and using a contracted graph will be shown by example."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:319
+msgid "The :doc:`sampledata` for an undirected graph is used"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:320
+msgid "a dead end operation first followed by a linear operation."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:322
+msgid "The original graph:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:326
+msgid "After doing a dead end contraction operation:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:330
+msgid "Doing a linear contraction operation to the graph above"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:335
+msgid "There are five cases, in this documentation, which arise when calculating the shortest path between a given source and target. In this examples, ``pgr_dijkstra`` is used."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:338
+msgid "**Case 1**: Both source and target belong to the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:339
+msgid "**Case 2**: Source belongs to a contracted graph, while target belongs to a edge subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:340
+msgid "**Case 3**: Source belongs to a vertex subgraph, while target belongs to an edge subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:341
+msgid "**Case 4**: Source belongs to a contracted graph, while target belongs to an vertex subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:342
+msgid "**Case 5**: The path contains a new edge added by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:345
+msgid "Construction of the graph in the database"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:348
+msgid "Original Data"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:349
+msgid "The following query shows the original data involved in the contraction operation."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:356
+msgid "Contraction Results"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:361
+msgid "The above results do not represent the contracted graph. They represent the changes done to the graph after applying the contraction algorithm. We can see that vertices like 6 and 11 do not appear in the contraction results because they were not affected by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:364
+msgid "step 1"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:365
+msgid "Adding extra columns to the ``edge_table`` and ``edge_table_vertices_pgr`` tables:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:368
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:368
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:370
+msgid "**contracted_vertices**"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:370
+msgid "The vertices set belonging to the vertex/edge"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:371
+#: ../../build/doc/contraction-family.rst:372
+msgid "**is_contracted**"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:371
+msgid "On a `vertex` table: when ``true`` the vertex is contracted, so is not part of the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:372
+msgid "On an `edge` table: when ``true`` the edge was generated by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:375
+msgid "Using the following queries:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:382
+msgid "step 2"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:383
+msgid "For simplicity, in this documentation, store the results of the call to pgr_contractGraph in a temporary table"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:390
+msgid "step 3"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:391
+msgid "Update the `vertex` and `edge` tables using the results of the call to pgr_contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:393
+msgid "In `edge_table_vertices_pgr.is_contracted` indicate the vertices that are contracted."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:399
+msgid "Add to `edge_table_vertices_pgr.contracted_vertices`  the contracted vertices belonging to the vertices."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:405
+msgid "Insert the new edges generated by  pgr_contractGraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:412
+msgid "step 3.1"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:413
+msgid "Verify visually the updates."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:415
+msgid "On the `edge_table_vertices_pgr`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:421
+msgid "On the `edge_table`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:427
+msgid "vertices that belong to the contracted graph are the non contracted vertices"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:434
+msgid "case 1: Both source and target belong to the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:435
+msgid "Inspecting the contracted graph above, vertex 3 and vertex 11 are part of the contracted graph. In the following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:437
+msgid "vertices_in_graph hold the vertices that belong to the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:438
+#: ../../build/doc/contraction-family.rst:452
+#: ../../build/doc/contraction-family.rst:469
+#: ../../build/doc/contraction-family.rst:485
+#: ../../build/doc/contraction-family.rst:507
+msgid "when selecting the edges, only edges that have the source and the target in that set are the edges belonging to the contracted graph, that is done in the WHERE clause."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:440
+msgid "Visually, looking at the original graph, going from 3 to 11: 3 -> 6 -> 11, and in the contracted graph, it is also 3 -> 6 -> 11. The results, on the contracted graph match the results as if it was done on the original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:448
+msgid "case 2: Source belongs to the contracted graph, while target belongs to a edge subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:452
+msgid "Inspecting the contracted graph above, vertex 3 is part of the contracted graph and vertex 1 belongs to the contracted subgraph of edge 19. In the following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:450
+msgid "expand1 holds the contracted vertices of the edge where vertex 1 belongs. (belongs to edge 19)."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:451
+msgid "vertices_in_graph hold the vertices that belong to the contracted graph and also the contracted vertices of edge 19."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:454
+msgid "Visually, looking at the original graph, going from 3 to 1: 3 -> 2 -> 1, and in the contracted graph, it is also 3 -> 2 -> 1. The results, on the contracted graph match the results as if it was done on the original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:463
+msgid "case 3: Source belongs to a vertex subgraph, while target belongs to an edge subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:464
+msgid "Inspecting the contracted graph above, vertex 7 belongs to the contracted subgraph of vertex 5 and vertex 13 belongs to the contracted subgraph of edge 21. In the following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:466
+#: ../../build/doc/contraction-family.rst:483
+msgid "expand7 holds the contracted vertices of vertex where vertex 7 belongs. (belongs to vertex 5)"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:467
+msgid "expand13 holds the contracted vertices of edge where vertex 13 belongs. (belongs to edge 21)"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:468
+msgid "vertices_in_graph hold the vertices that belong to the contracted graph, contracted vertices of vertex 5 and contracted vertices of edge 21."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:471
+msgid "Visually, looking at the original graph, going from 7 to 13: 7 -> 8 -> 5 -> 10 -> 13, and in the contracted graph, it is also 7 -> 8 -> 5 -> 10 -> 13. The results, on the contracted graph match the results as if it was done on the original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:480
+msgid "case 4: Source belongs to the contracted graph, while target belongs to an vertex subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:481
+msgid "Inspecting the contracted graph above, vertex 3 is part of the contracted graph and vertex 7 belongs to the contracted subgraph of vertex 5. In the following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:484
+msgid "vertices_in_graph hold the vertices that belong to the contracted graph and the contracted vertices of vertex 5."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:487
+msgid "Visually, looking at the original graph, going from 3 to 7: 3 -> 2 -> 5 -> 8 -> 7, but in the contracted graph, it is 3 -> 5 -> 8 -> 7. The results, on the contracted graph do not match the results as if it was done on the original graph. This is because the path contains edge 19 which is added by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:495
+msgid "case 5: The path contains an edge added by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:496
+msgid "In the previous example we can see that the path from vertex 3 to vertex 7 contains an edge which is added by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:502
+msgid "Inspecting the contracted graph above, edge 19 should be expanded. In the following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:504
+msgid "first_dijkstra holds the results of the dijkstra query."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:505
+msgid "edges_to_expand holds the edges added by the contraction algorithm and included in the path."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:506
+msgid "vertices_in_graph hold the vertices that belong to the contracted graph, vertices of the contracted solution and the contracted vertices of the edges added by the contraction algorithm and included in the contracted solution."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:509
+msgid "Visually, looking at the original graph, going from 3 to 7: 3 -> 2 -> 5 -> 8 -> 7, and in the contracted graph, it is also 3 -> 2 -> 5 -> 8 -> 7. The results, on the contracted graph match the results as if it was done on the original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:517
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:519
+msgid "http://www.cs.cmu.edu/afs/cs/academic/class/15210-f12/www/lectures/lecture16.pdf"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:520
+msgid "http://algo2.iti.kit.edu/documents/routeplanning/geisberger_dipl.pdf"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:521
+msgid "The queries use :ref:`pgr_contractGraph` function and the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:524
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:525
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:526
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/cost-category.pot b/locale/pot/cost-category.pot
new file mode 100644
index 0000000..2912586
--- /dev/null
+++ b/locale/pot/cost-category.pot
@@ -0,0 +1,174 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/cost-category.rst:13
+msgid "Cost - Category"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:17
+msgid ":ref:`pgr_aStarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:18
+msgid ":ref:`pgr_bdAstarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:19
+msgid ":ref:`pgr_bdDijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:20
+msgid ":ref:`pgr_dijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:21
+msgid ":ref:`pgr_withPointsCost`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:30
+msgid "General Information"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:34
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:36
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:38
+msgid "Each function works as part of the family it belongs to."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:39
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:40
+msgid "Returns the sum of the costs of the resulting path(s) for pair combination of nodes in the graph."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:41
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:42
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:44
+msgid "The returned values are in the form of a set of `(start_vid, end_vid, agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:46
+msgid "When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:48
+msgid "The `agg_cost` int the non included values `(v, v)` is `0`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:50
+msgid "When the starting vertex and ending vertex are the different and there is no path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:52
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:54
+msgid "Let be the case the values returned are stored in a table, so the unique index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:56
+msgid "Depending on the function and its parameters, the results can be symmetric."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:58
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:60
+msgid "Any duplicated value in the `start_vids` or in `end_vids` are ignored."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:62
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:64
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:65
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:70
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:73
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:74
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:75
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/costMatrix-category.pot b/locale/pot/costMatrix-category.pot
new file mode 100644
index 0000000..b373d6d
--- /dev/null
+++ b/locale/pot/costMatrix-category.pot
@@ -0,0 +1,226 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/costMatrix-category.rst:13
+msgid "Cost Matrix - Category"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:17
+msgid ":ref:`pgr_aStarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:18
+msgid ":ref:`pgr_bdAstarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:19
+msgid ":ref:`pgr_bdDijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:20
+msgid ":ref:`pgr_dijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:21
+msgid ":ref:`pgr_withPointsCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:40
+msgid "General Information"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:43
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:45
+msgid ":ref:`tsp` needs as input a symmetric cost matrix and no edge `(u, v)` must value :math:`\\infty`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:47
+msgid "This collection of functions will return a cost matrix in form of a table."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:51
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:53
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:55
+msgid "Can be used as input to :ref:`pgr_tsp`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:57
+msgid "when the resulting matrix is symmetric and there is no :math:`\\infty` value."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:58
+msgid "It will be the users responsibility to make the matrix symmetric."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:60
+msgid "By using geometric or harmonic average of the non symmetric values."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:61
+msgid "By using max or min the non symmetric values."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:62
+msgid "By setting the upper triangle to be the mirror image of the lower triangle."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:63
+msgid "By setting the lower triangle to be the mirror image of the upper triangle."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:65
+msgid "It is also the users responsibility to fix an :math:`\\infty` value."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:67
+msgid "Each function works as part of the family it belongs to."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:68
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:69
+msgid "Returns the sum of the costs of the shortest path for pair combination of nodes in the graph."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:70
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:71
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:73
+msgid "The returned values are in the form of a set of `(start_vid, end_vid, agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:75
+msgid "When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:77
+msgid "The `agg_cost` int the non included values `(v, v)` is `0`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:79
+msgid "When the starting vertex and ending vertex are the different and there is no path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:81
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:83
+msgid "Let be the case the values returned are stored in a table, so the unique index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:85
+msgid "Depending on the function and its parameters, the results can be symmetric."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:87
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:89
+msgid "Any duplicated value in the `start_vids` are ignored."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:91
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:93
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:94
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:96
+msgid "Running time: approximately :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:101
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:103
+msgid ":ref:`pgr_tsp`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:106
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:107
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:108
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/cost_result.pot b/locale/pot/cost_result.pot
new file mode 100644
index 0000000..7127f27
--- /dev/null
+++ b/locale/pot/cost_result.pot
@@ -0,0 +1,100 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/cost_result.rst:13
+msgid "pgr_costResult[]"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:19
+#: ../../build/doc/cost_result.rst:52
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:21
+msgid "``pgr_costResult[]`` — A set of records to describe a path result with cost attribute."
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:25
+#: ../../build/doc/cost_result.rst:58
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:37
+#: ../../build/doc/cost_result.rst:71
+msgid "sequential ID indicating the path order"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:38
+#: ../../build/doc/cost_result.rst:73
+msgid "generic name, to be specified by the function, typically the node id"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:39
+#: ../../build/doc/cost_result.rst:74
+msgid "generic name, to be specified by the function, typically the edge id"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:40
+#: ../../build/doc/cost_result.rst:75
+msgid "cost attribute"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:46
+msgid "pgr_costResult3[] - Multiple Path Results with Cost"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:54
+msgid "``pgr_costResult3[]`` — A set of records to describe a path result with cost attribute."
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:72
+msgid "generic name, to be specified by the function, typically the path id"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:79
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:80
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:81
+msgid "Replaces ``path_result``"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:85
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:87
+msgid ":ref:`introduction`"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:90
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:91
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:92
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/dijkstra-family.pot b/locale/pot/dijkstra-family.pot
new file mode 100644
index 0000000..7fc8988
--- /dev/null
+++ b/locale/pot/dijkstra-family.pot
@@ -0,0 +1,224 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/dijkstra-family.rst:13
+msgid "Dijkstra - Family of functions"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:17
+msgid ":ref:`pgr_dijkstra` - Dijkstra's algorithm for the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:18
+msgid ":ref:`pgr_dijkstraCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:19
+msgid ":ref:`pgr_dijkstraCostMatrix` - Use pgr_dijkstra to create a costs matrix."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:20
+msgid ":ref:`pgr_drivingDistance` - Use pgr_dijkstra to calculate catchament information."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:21
+msgid ":ref:`pgr_ksp` - Use Yen algorithm with pgr_dijkstra to get the K shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:22
+msgid ":ref:`pgr_dijkstraVia` - Get a route of a seuence of vertices."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:39
+msgid "The problem definition (Advanced documentation)"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:42
+msgid "Given the following query:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:45
+msgid "pgr_dijkstra(:math:`sql, start_{vid}, end_{vid}, directed`)"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:47
+msgid "where  :math:`sql = \\{(id_i, source_i, target_i, cost_i, reverse\\_cost_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:49
+msgid "and"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:51
+msgid ":math:`source = \\bigcup source_i`,"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:52
+msgid ":math:`target = \\bigcup target_i`,"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:54
+msgid "The graphs are defined as follows:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:57
+msgid "Directed graph"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:58
+msgid "The weighted directed graph, :math:`G_d(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:60
+#: ../../build/doc/dijkstra-family.rst:79
+msgid "the set of vertices  :math:`V`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:62
+msgid ":math:`V = source \\cup target \\cup {start_{vid}} \\cup  {end_{vid}}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:64
+#: ../../build/doc/dijkstra-family.rst:84
+msgid "the set of edges :math:`E`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:66
+msgid ":math:`E = \\begin{cases} \\text{ }  \\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & \\quad \\text{if } reverse\\_cost = \\varnothing \\\\ \\text{ }  \\text{ }  & \\quad \\text{ } \\\\ \\text{ }  \\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} &  \\quad \\text{ } \\\\ \\cup      \\{(target_i, source_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i>=0 \\} & \\quad \\text{if } reverse\\_cost \\neq \\varnothing \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:76
+msgid "Undirected graph"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:77
+msgid "The weighted undirected graph, :math:`G_u(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:81
+msgid ":math:`V = source \\cup target \\cup {start_v{vid}} \\cup  {end_{vid}}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:86
+msgid ":math:`E = \\begin{cases} \\text{ }  \\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\}  & \\quad \\text{ } \\\\ \\cup      \\{(target_i, source_i, cost_i) \\text{ when } cost >=0 \\}  & \\quad \\text{ if } reverse\\_cost = \\varnothing \\\\ \\text{ }  \\text{ }  & \\text{ } \\\\ \\text{ }  \\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & \\text{ } \\\\ \\cup  \\{(target_i, source_i, cost_i) \\text{ when } cost >=0 \\} & \\text{ } \\\\ \\cup  \\{(target_i, so [...]
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:99
+msgid "The problem"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:100
+msgid "Given:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:102
+msgid ":math:`start_{vid} \\in V` a starting vertex"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:103
+msgid ":math:`end_{vid} \\in V` an ending vertex"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:104
+msgid ":math:`G(V,E) = \\begin{cases} G_d(V,E) & \\quad \\text{ if6 } directed = true \\\\ G_u(V,E) & \\quad \\text{ if5 } directed = false \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:109
+msgid "Then:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:118
+msgid ":math:`\\boldsymbol{\\pi} = \\{(path\\_seq_i, node_i, edge_i, cost_i, agg\\_cost_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:131
+msgid "where:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:121
+msgid ":math:`path\\_seq_i = i`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:122
+msgid ":math:`path\\_seq_{| \\pi |} = | \\pi |`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:123
+msgid ":math:`node_i \\in V`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:124
+msgid ":math:`node_1 = start_{vid}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:125
+msgid ":math:`node_{| \\pi |}  = end_{vid}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:126
+msgid ":math:`\\forall i \\neq | \\pi |, \\quad (node_i, node_{i+1}, cost_i) \\in E`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:127
+msgid ":math:`edge_i  = \\begin{cases}  id_{(node_i, node_{i+1},cost_i)}  &\\quad  \\text{when } i \\neq | \\pi | \\\\ -1 &\\quad  \\text{when } i = | \\pi | \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:128
+msgid ":math:`cost_i = cost_{(node_i, node_{i+1})}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:129
+msgid ":math:`agg\\_cost_i  = \\begin{cases}  0   &\\quad  \\text{when } i = 1  \\\\ \\displaystyle\\sum_{k=1}^{i}  cost_{(node_{k-1}, node_k)}  &\\quad  \\text{when } i \\neq 1 \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:137
+msgid "In other words: The algorithm returns a the shortest path between :math:`start_{vid}` and :math:`end_{vid}` , if it exists, in terms of a sequence of nodes  and of edges,"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:134
+msgid ":math:`path\\_seq` indicates the relative position in the path of the :math:`node` or :math:`edge`."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:135
+msgid ":math:`cost` is the cost of the edge to be used to go to the next node."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:136
+msgid ":math:`agg\\_cost` is the cost from the :math:`start_{vid}` up to the node."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:139
+msgid "If there is no path, the resulting set is empty."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:143
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:146
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:147
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:148
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/drivingDistance-category.pot b/locale/pot/drivingDistance-category.pot
new file mode 100644
index 0000000..4dd6646
--- /dev/null
+++ b/locale/pot/drivingDistance-category.pot
@@ -0,0 +1,58 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/drivingDistance-category.rst:14
+msgid "Driving Distance - Category"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:18
+msgid ":ref:`pgr_drivingDistance` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:19
+msgid ":ref:`pgr_withPointsDD` - Driving Distance based on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:20
+msgid "Post pocessing"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:22
+msgid ":ref:`pgr_alphaShape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:23
+msgid ":ref:`pgr_points_as_polygon` - Polygon around a set of points"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:36
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:39
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:40
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:41
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/flow-family.pot b/locale/pot/flow-family.pot
new file mode 100644
index 0000000..6498dc8
--- /dev/null
+++ b/locale/pot/flow-family.pot
@@ -0,0 +1,286 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Flow - Family of functions"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid ":ref:`pgr_maxFlow` - Only the Max flow calculation using Push and Relabel algorithm."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid ":ref:`pgr_BoykovKolmogorov` - Boykov and Kolmogorov with details of flow on edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:19
+msgid ":ref:`pgr_EdmondsKarp` - Edmonds and Karp algorithm with details of flow on edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid ":ref:`pgr_PushRelabel` - Push and relabel algorithm with details of flow on edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "Applications"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:23
+msgid ":ref:`pgr_edgeDisjointPaths` - Calculates edge disjoint paths between two groups of vertices."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:24
+msgid ":ref:`pgr_maxCardinalityMatch` - Calculates a maximum cardinality matching in a graph."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:45
+msgid "Flow Functions General Information"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:51
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:52
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:53
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:54
+msgid "When the maximum flow is 0 then there is no flow and **EMPTY SET** is returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:56
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:58
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:59
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:61
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:63
+msgid "Creates a **super source** and edges to all the source(s), and a **super target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:64
+msgid "The maximum flow through the graph is guaranteed to be the value returned by :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:66
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:67
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:72
+msgid ":ref:`pgr_maxFlow <pgr_maxFlow>`  is the  maximum Flow and that maximum is guaranteed to be the same on the functions :ref:`pgr_pushRelabel <pgr_pushRelabel>`, :ref:`pgr_edmondsKarp <pgr_edmondsKarp>`, :ref:`pgr_boykovKolmogorov <pgr_boykovKolmogorov>`, but the actual flow through each edge may vary."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:77
+msgid "Problem definition"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:79
+msgid "A flow network is a directed graph where each edge has a capacity and a flow. The flow through an edge must not exceed the capacity of the edge. Additionally, the incoming and outgoing flow of a node must be equal except the for source which only has outgoing flow, and the destination(sink) which only has incoming flow."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:83
+msgid "Maximum flow algorithms calculate the maximum flow through the graph and the flow of each edge."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:85
+msgid "The maximum flow through the graph is guaranteed to be the same with all implementations, but the actual flow through each edge may vary. Given the following query:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:89
+msgid "pgr_maxFlow :math:`(edges\\_sql, source\\_vertex, sink\\_vertex)`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:91
+msgid "where :math:`edges\\_sql = \\{(id_i, source_i, target_i, capacity_i, reverse\\_capacity_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:94
+msgid "Graph definition"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:95
+msgid "The weighted directed graph, :math:`G(V,E)`, is defined as:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:97
+msgid "the set of vertices  :math:`V`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:99
+msgid ":math:`source\\_vertex  \\cup  sink\\_vertex  \\bigcup  source_i  \\bigcup  target_i`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:101
+msgid "the set of edges :math:`E`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:103
+msgid ":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, capacity_i) \\text{ when } capacity > 0 \\} & \\quad  \\text{ if } reverse\\_capacity = \\varnothing \\\\ \\text{ } & \\quad \\text{ } \\\\ \\{(source_i, target_i, capacity_i) \\text{ when } capacity > 0 \\} & \\text{ } \\\\ \\cup \\{(target_i, source_i, reverse\\_capacity_i) \\text{ when } reverse\\_capacity_i > 0)\\} & \\quad \\text{ if } reverse\\_capacity \\neq \\varnothing \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:111
+msgid "Maximum flow problem"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:112
+msgid "Given:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:115
+msgid ":math:`G(V,E)`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:116
+msgid ":math:`source\\_vertex \\in V` the source vertex"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:117
+msgid ":math:`sink\\_vertex \\in V` the sink vertex"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:119
+msgid "Then:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:121
+msgid ":math:`pgr\\_maxFlow(edges\\_sql, source, sink) = \\boldsymbol{\\Phi}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:123
+msgid ":math:`\\boldsymbol{\\Phi} = {(id_i, edge\\_id_i, source_i, target_i, flow_i, residual\\_capacity_i)}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:125
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:127
+msgid ":math:`\\boldsymbol{\\Phi}` is a subset of the original edges with their residual capacity and flow. The maximum flow through the graph can be obtained by aggregating on the source or sink and summing the flow from/to it. In particular:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:129
+msgid ":math:`id_i = i`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:130
+msgid ":math:`edge\\_id = id_i` in edges_sql"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:131
+msgid ":math:`residual\\_capacity_i = capacity_i - flow_i`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:135
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:137
+msgid "https://en.wikipedia.org/wiki/Maximum_flow_problem"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:140
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:141
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:142
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/geom_result.pot b/locale/pot/geom_result.pot
new file mode 100644
index 0000000..a21668a
--- /dev/null
+++ b/locale/pot/geom_result.pot
@@ -0,0 +1,79 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/geom_result.rst:13
+msgid "pgr_geomResult[]"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:21
+msgid "``pgr_geomResult[]`` — A set of records to describe a path result with geometry attribute."
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:25
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:37
+msgid "sequential ID indicating the path order"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:38
+#: ../../build/doc/geom_result.rst:39
+msgid "generic name, to be specified by the function"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:40
+msgid "geometry attribute"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:44
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:45
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:46
+msgid "Replaces ``geoms``"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:50
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:52
+msgid ":ref:`introduction`"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:56
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:57
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:58
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/index.pot b/locale/pot/index.pot
new file mode 100644
index 0000000..fcc1651
--- /dev/null
+++ b/locale/pot/index.pot
@@ -0,0 +1,286 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/index.rst:14
+msgid "Table of Contents"
+msgstr ""
+
+#: ../../build/doc/index.rst:16
+msgid "pgRouting extends the `PostGIS <http://postgis.net>`_/`PostgreSQL <http://postgresql.org>`_ geospatial database to provide geospatial routing and other network analysis functionality."
+msgstr ""
+
+#: ../../build/doc/index.rst:18
+msgid "This is the manual for pgRouting |release|."
+msgstr ""
+
+#: ../../build/doc/index.rst:24
+msgid "The pgRouting Manual is licensed under a `Creative Commons Attribution-Share Alike 3.0 License <http://creativecommons.org/licenses/by-sa/3.0/>`_. Feel free to use this material any way you like, but we ask that you attribute credit to the pgRouting Project and wherever possible, a link back to http://pgrouting.org. For other licenses used in pgRouting see the :ref:`license` page."
+msgstr ""
+
+#: ../../build/doc/index.rst:27
+msgid "General"
+msgstr ""
+
+#: ../../build/doc/index.rst:37
+msgid ":doc:`sampledata` that is used in the examples of this manual."
+msgstr ""
+
+#: ../../build/doc/index.rst:45
+msgid "Pgrouting Concepts"
+msgstr ""
+
+#: ../../build/doc/index.rst:54
+msgid "Reference"
+msgstr ""
+
+#: ../../build/doc/index.rst:55
+msgid ":ref:`pgr_version` - to get pgRouting's version information."
+msgstr ""
+
+#: ../../build/doc/index.rst:64
+msgid ":ref:`Data Types <data_types>`"
+msgstr ""
+
+#: ../../build/doc/index.rst:67
+msgid ":ref:`type_cost_result` -  A set of records to describe a path result with cost attribute."
+msgstr ""
+
+#: ../../build/doc/index.rst:68
+msgid ":ref:`pgr_costResult3[]<type_cost_result3>` - A set of records to describe a path result with cost attribute."
+msgstr ""
+
+#: ../../build/doc/index.rst:69
+msgid ":ref:`pgr_geomResult<type_geom_result>` - A set of records to describe a path result with geometry attribute."
+msgstr ""
+
+#: ../../build/doc/index.rst:78
+msgid ":ref:`Topology Functions <topology_functions>`"
+msgstr ""
+
+#: ../../build/doc/index.rst:80
+msgid ":ref:`pgr_create_topology` -  to create a topology based on the geometry."
+msgstr ""
+
+#: ../../build/doc/index.rst:81
+msgid ":ref:`pgr_create_vert_table` - to reconstruct the vertices table based on the source and target information."
+msgstr ""
+
+#: ../../build/doc/index.rst:82
+msgid ":ref:`pgr_analyze_graph`  - to analyze the edges and vertices of the edge table."
+msgstr ""
+
+#: ../../build/doc/index.rst:83
+msgid ":ref:`pgr_analyze_oneway` - to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/index.rst:84
+msgid ":ref:`pgr_node_network`  -to create nodes to a not noded edge table."
+msgstr ""
+
+#: ../../build/doc/index.rst:93
+msgid ":ref:`Routing functions <routing_functions>`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:4
+msgid ":ref:`all_pairs`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:6
+msgid ":ref:`pgr_floydWarshall` - Floyd-Warshall's Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:7
+msgid ":ref:`pgr_johnson`- Johnson’s Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:9
+msgid ":ref:`pgr_astar` - Shortest Path A*"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:11
+msgid ":ref:`pgr_bdAstar` - Bi-directional A* Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:13
+msgid ":ref:`pgr_bdDijkstra` - Bi-directional Dijkstra Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:16
+msgid ":ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:3
+msgid ":ref:`pgr_dijkstra` - Dijkstra's algorithm for the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:4
+msgid ":ref:`pgr_dijkstraCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:5
+msgid ":ref:`pgr_dijkstraCostMatrix` - Use pgr_dijkstra to create a costs matrix."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:6
+msgid ":ref:`pgr_drivingDistance` - Use pgr_dijkstra to calculate catchament information."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:7
+msgid ":ref:`pgr_ksp` - Use Yen algorithm with pgr_dijkstra to get the K shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:8
+msgid ":ref:`pgr_dijkstraVia` - Get a route of a seuence of vertices."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:22
+msgid ":ref:`pgr_ksp` - K-Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:24
+msgid ":ref:`pgr_trsp<trsp>` - Turn Restriction Shortest Path (TRSP)"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:26
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:3
+msgid ":ref:`pgr_TSP` - When input is given as matrix cell information."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:4
+msgid ":ref:`pgr_eucledianTSP` - When input are coordinates."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:32
+msgid ":ref:`drivingDistance`"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:3
+msgid ":ref:`pgr_drivingDistance` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:4
+msgid ":ref:`pgr_withPointsDD` - Driving Distance based on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:5
+msgid "Post pocessing"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:7
+msgid ":ref:`pgr_alphaShape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:8
+msgid ":ref:`pgr_points_as_polygon` - Polygon around a set of points"
+msgstr ""
+
+#: ../../build/doc/index.rst:108
+msgid "Available Functions but not official pgRouting functions"
+msgstr ""
+
+#: ../../build/doc/index.rst:110
+msgid ":ref:`Stable`"
+msgstr ""
+
+#: ../../build/doc/index.rst:111
+msgid ":ref:`proposed`"
+msgstr ""
+
+#: ../../build/doc/index.rst:121
+msgid ":ref:`Change Log <change_log>`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:3
+msgid ":ref:`changelog_2_5_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:4
+msgid ":ref:`changelog_2_4_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:5
+msgid ":ref:`changelog_2_4_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:6
+msgid ":ref:`changelog_2_4_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:7
+msgid ":ref:`changelog_2_3_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:8
+msgid ":ref:`changelog_2_3_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:9
+msgid ":ref:`changelog_2_3_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:10
+msgid ":ref:`changelog_2_2_4`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:11
+msgid ":ref:`changelog_2_2_3`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:12
+msgid ":ref:`changelog_2_2_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:13
+msgid ":ref:`changelog_2_2_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:14
+msgid ":ref:`changelog_2_2_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:15
+msgid ":ref:`changelog_2_1_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:16
+msgid ":ref:`changelog_2_0_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:17
+msgid ":ref:`changelog_2_0_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:18
+msgid ":ref:`changelog_1_x`"
+msgstr ""
+
+#: ../../build/doc/index.rst:135
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/index.rst:136
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/index.rst:137
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgRouting-concepts.pot b/locale/pot/pgRouting-concepts.pot
new file mode 100644
index 0000000..c986999
--- /dev/null
+++ b/locale/pot/pgRouting-concepts.pot
@@ -0,0 +1,916 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "pgRouting Concepts"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:0
+msgid "Contents"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "Getting Started"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "This is a simple guide to walk you through the steps of getting started with pgRouting. In this guide we will cover:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:32
+msgid "Create a routing Database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:34
+msgid "The first thing we need to do is create a database and load pgrouting in the database. Typically you will create a database for each project. Once you have a database to work in, your can load your data and build your application in that database. This makes it easy to move your project later if you want to to say a production server."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:40
+msgid "For Postgresql 9.2 and later versions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:51
+msgid "Load Data"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:53
+msgid "How you load your data will depend in what form it comes it. There are various OpenSource tools that can help you, like:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:56
+msgid "this is a tool for loading OSM data into postgresql with pgRouting requirements"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:57
+msgid "this is the postgresql shapefile loader"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:58
+msgid "this is a vector data conversion utility"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:59
+msgid "this is a tool for loading OSM data into postgresql"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:61
+msgid "So these tools and probably others will allow you to read vector data so that you may then load that data into your database as a table of some kind. At this point you need to know a little about your data structure and content. One easy way to browse your new data table is with pgAdmin3 or phpPgAdmin."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:69
+msgid "Build a Routing Topology"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:71
+msgid "Next we need to build a topology for our street data. What this means is that for any given edge in your street data the ends of that edge will be connected to a unique node and to other edges that are also connected to that same unique node. Once all the edges are connected to nodes we have a graph that can be used for routing with pgrouting. We provide a tool that will help with this:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:77
+msgid "this step is not needed if data is loaded with `osm2pgrouting`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:83
+msgid ":ref:`pgr_create_topology`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:88
+msgid "Check the Routing Topology"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:90
+msgid "There are lots of possible sources for errors in a graph. The data that you started with may not have been designed with routing in mind. A graph has some very specific requirements. One is that it is *NODED*, this means that except for some very specific use cases, each road segment starts and ends at a node and that in general is does not cross another road segment that it should be connected to."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:97
+msgid "There can be other errors like the direction of a one-way street being entered in the wrong direction. We do not have tools to search for all possible errors but we have some basic tools that might help."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:109
+msgid ":ref:`pgr_analyze_graph`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:110
+msgid ":ref:`pgr_analyze_oneway`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:111
+msgid ":ref:`pgr_node_network`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:117
+msgid "Compute a Path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:119
+msgid "Once you have all the preparation work done above, computing a route is fairly easy. We have a lot of different algorithms that can work with your prepared road network. The general form of a route query is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:127
+msgid "As you can see this is fairly straight forward and you can look and the specific algorithms for the details of the signatures and how to use them. These results have information like edge id and/or the node id along with the cost or geometry for the step in the path from *start* to *end*. Using the ids you can join these result back to your edge table to get more information about each step in the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:134
+msgid ":ref:`pgr_dijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:141
+msgid "Inner Queries"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:146
+msgid "There are several kinds of valid inner queries and also the columns returned are depending of the function. Which kind of inner query will depend on the function(s) requirements. To simplify variety of types, ``ANY-INTEGER`` and ``ANY-NUMERICAL`` is used."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:152
+#: ../../build/doc/pgRouting-concepts.rst:182
+#: ../../build/doc/pgRouting-concepts.rst:212
+#: ../../build/doc/pgRouting-concepts.rst:269
+#: ../../build/doc/pgRouting-concepts.rst:300
+#: ../../build/doc/pgRouting-concepts.rst:334
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:154
+#: ../../build/doc/pgRouting-concepts.rst:184
+#: ../../build/doc/pgRouting-concepts.rst:214
+#: ../../build/doc/pgRouting-concepts.rst:271
+#: ../../build/doc/pgRouting-concepts.rst:302
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:155
+#: ../../build/doc/pgRouting-concepts.rst:185
+#: ../../build/doc/pgRouting-concepts.rst:215
+#: ../../build/doc/pgRouting-concepts.rst:272
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:162
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:164
+#: ../../build/doc/pgRouting-concepts.rst:195
+#: ../../build/doc/pgRouting-concepts.rst:247
+#: ../../build/doc/pgRouting-concepts.rst:282
+#: ../../build/doc/pgRouting-concepts.rst:314
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+#: ../../build/doc/pgRouting-concepts.rst:317
+#: ../../build/doc/pgRouting-concepts.rst:360
+#: ../../build/doc/pgRouting-concepts.rst:383
+#: ../../build/doc/pgRouting-concepts.rst:400
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:227
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+#: ../../build/doc/pgRouting-concepts.rst:317
+#: ../../build/doc/pgRouting-concepts.rst:360
+#: ../../build/doc/pgRouting-concepts.rst:383
+#: ../../build/doc/pgRouting-concepts.rst:400
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:227
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:227
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+#: ../../build/doc/pgRouting-concepts.rst:317
+#: ../../build/doc/pgRouting-concepts.rst:360
+#: ../../build/doc/pgRouting-concepts.rst:383
+#: ../../build/doc/pgRouting-concepts.rst:400
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:169
+#: ../../build/doc/pgRouting-concepts.rst:252
+#: ../../build/doc/pgRouting-concepts.rst:287
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:169
+#: ../../build/doc/pgRouting-concepts.rst:170
+#: ../../build/doc/pgRouting-concepts.rst:171
+#: ../../build/doc/pgRouting-concepts.rst:200
+#: ../../build/doc/pgRouting-concepts.rst:201
+#: ../../build/doc/pgRouting-concepts.rst:252
+#: ../../build/doc/pgRouting-concepts.rst:253
+#: ../../build/doc/pgRouting-concepts.rst:254
+#: ../../build/doc/pgRouting-concepts.rst:287
+#: ../../build/doc/pgRouting-concepts.rst:288
+#: ../../build/doc/pgRouting-concepts.rst:289
+#: ../../build/doc/pgRouting-concepts.rst:290
+#: ../../build/doc/pgRouting-concepts.rst:294
+#: ../../build/doc/pgRouting-concepts.rst:319
+#: ../../build/doc/pgRouting-concepts.rst:324
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:169
+#: ../../build/doc/pgRouting-concepts.rst:252
+#: ../../build/doc/pgRouting-concepts.rst:287
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:170
+#: ../../build/doc/pgRouting-concepts.rst:200
+#: ../../build/doc/pgRouting-concepts.rst:253
+#: ../../build/doc/pgRouting-concepts.rst:288
+#: ../../build/doc/pgRouting-concepts.rst:404
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:170
+#: ../../build/doc/pgRouting-concepts.rst:200
+#: ../../build/doc/pgRouting-concepts.rst:253
+#: ../../build/doc/pgRouting-concepts.rst:288
+#: ../../build/doc/pgRouting-concepts.rst:404
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:171
+#: ../../build/doc/pgRouting-concepts.rst:201
+#: ../../build/doc/pgRouting-concepts.rst:254
+#: ../../build/doc/pgRouting-concepts.rst:289
+#: ../../build/doc/pgRouting-concepts.rst:405
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:171
+#: ../../build/doc/pgRouting-concepts.rst:201
+#: ../../build/doc/pgRouting-concepts.rst:254
+#: ../../build/doc/pgRouting-concepts.rst:289
+#: ../../build/doc/pgRouting-concepts.rst:405
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:172
+#: ../../build/doc/pgRouting-concepts.rst:202
+#: ../../build/doc/pgRouting-concepts.rst:255
+#: ../../build/doc/pgRouting-concepts.rst:369
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:172
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:202
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:255
+#: ../../build/doc/pgRouting-concepts.rst:259
+#: ../../build/doc/pgRouting-concepts.rst:263
+#: ../../build/doc/pgRouting-concepts.rst:264
+#: ../../build/doc/pgRouting-concepts.rst:265
+#: ../../build/doc/pgRouting-concepts.rst:266
+#: ../../build/doc/pgRouting-concepts.rst:325
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:172
+#: ../../build/doc/pgRouting-concepts.rst:202
+#: ../../build/doc/pgRouting-concepts.rst:255
+#: ../../build/doc/pgRouting-concepts.rst:290
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:174
+#: ../../build/doc/pgRouting-concepts.rst:204
+#: ../../build/doc/pgRouting-concepts.rst:257
+#: ../../build/doc/pgRouting-concepts.rst:292
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:259
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:259
+#: ../../build/doc/pgRouting-concepts.rst:294
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:259
+#: ../../build/doc/pgRouting-concepts.rst:294
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:178
+#: ../../build/doc/pgRouting-concepts.rst:208
+#: ../../build/doc/pgRouting-concepts.rst:261
+#: ../../build/doc/pgRouting-concepts.rst:296
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:193
+msgid "Description of the edges_sql query (id is not necessary)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:224
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:227
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:229
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:229
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:229
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:230
+msgid "**via_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:230
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:230
+msgid "Array of ordered vertices identifiers that are going to be visited."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:233
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:232
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:233
+msgid "**strict**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:233
+msgid "``false``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:233
+msgid "When ``false`` ignores missing paths returning all paths found"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:234
+msgid "When ``true`` if a path is missing stops and returns `EMPTY SET`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid "**U_turn_on_edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid "When ``true`` departing from a visited vertex will not try to avoid using the edge used to reach it.  In other words, U turn using the edge with same `id` is allowed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:236
+msgid "When ``false`` when a departing from a visited vertex tries to avoid using the edge used to reach it.  In other words, U turn using the edge with same `id` is used when no other path is found."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:245
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:263
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:263
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:264
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:264
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:265
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:265
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:266
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:266
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:280
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:290
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:294
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:312
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:319
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:319
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:321
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:322
+msgid "If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:324
+#: ../../build/doc/pgRouting-concepts.rst:403
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:324
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:325
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:325
+msgid "Value in <0,1> that indicates the relative postition from the first end point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:326
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:326
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:326
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:328
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:329
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:330
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:336
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:337
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:345
+msgid "Return columns & values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:350
+msgid "There are several kinds of columns returned are depending of the function."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:355
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:357
+msgid "Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:362
+#: ../../build/doc/pgRouting-concepts.rst:402
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:362
+#: ../../build/doc/pgRouting-concepts.rst:363
+#: ../../build/doc/pgRouting-concepts.rst:364
+#: ../../build/doc/pgRouting-concepts.rst:402
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:362
+#: ../../build/doc/pgRouting-concepts.rst:402
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:363
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:363
+msgid "Path identifier. Has value **1** for the first of a path. Used when there are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:364
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:364
+msgid "Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:365
+#: ../../build/doc/pgRouting-concepts.rst:385
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:365
+#: ../../build/doc/pgRouting-concepts.rst:366
+#: ../../build/doc/pgRouting-concepts.rst:367
+#: ../../build/doc/pgRouting-concepts.rst:368
+#: ../../build/doc/pgRouting-concepts.rst:385
+#: ../../build/doc/pgRouting-concepts.rst:386
+#: ../../build/doc/pgRouting-concepts.rst:403
+#: ../../build/doc/pgRouting-concepts.rst:404
+#: ../../build/doc/pgRouting-concepts.rst:405
+#: ../../build/doc/pgRouting-concepts.rst:406
+#: ../../build/doc/pgRouting-concepts.rst:407
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:365
+#: ../../build/doc/pgRouting-concepts.rst:385
+msgid "Identifier of the starting vertex. Used when multiple starting vetrices are in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:366
+#: ../../build/doc/pgRouting-concepts.rst:386
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:366
+#: ../../build/doc/pgRouting-concepts.rst:386
+msgid "Identifier of the ending vertex. Used when multiple ending vertices are in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:367
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:367
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:368
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:368
+msgid "Identifier of the edge used to go from ``node`` to the next node in the path sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:369
+#: ../../build/doc/pgRouting-concepts.rst:370
+#: ../../build/doc/pgRouting-concepts.rst:387
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:369
+msgid "Cost to traverse from ``node`` using ``edge`` to the next node in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:370
+#: ../../build/doc/pgRouting-concepts.rst:387
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:370
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:378
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:380
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:387
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:397
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:403
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:406
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:406
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:407
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:407
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:415
+msgid "Advanced Topics"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:423
+msgid "Routing Topology"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:427
+#: ../../build/doc/pgRouting-concepts.rst:528
+msgid "Overview"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:428
+msgid "Typically when GIS files are loaded into the data database for use with pgRouting they do not have topology information associated with them. To create a useful topology the data needs to be \"noded\". This means that where two or more roads form an intersection there it needs to be a node at the intersection and all the road segments need to be broken at the intersection, assuming that you can navigate from any of these segments to any other segment via that intersection."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:430
+msgid "You can use the :ref:`graph analysis functions <analytics>` to help you see where you might have topology problems in your data. If you need to node your data, we also have a function :ref:`pgr_nodeNetwork() <pgr_node_network>` that might work for you. This function splits ALL crossing segments and nodes them. There are some cases where this might NOT be the right thing to do."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:432
+msgid "For example, when you have an overpass and underpass intersection, you do not want these noded, but pgr_nodeNetwork does not know that is the case and will node them which is not good because then the router will be able to turn off the overpass onto the underpass like it was a flat 2D intersection. To deal with this problem some data sets use z-levels at these types of intersections and other data might not node these intersection which would be ok."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:434
+msgid "For those cases where topology needs to be added the following functions may be useful. One way to prep the data for pgRouting is to add the following columns to your table and then populate them as appropriate. This example makes a lot of assumption like that you original data tables already has certain columns in it like ``one_way``, ``fcc``, and possibly others and that they contain specific data values. This is only to give you an idea of what you can do with your data."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:455
+msgid "The function :ref:`pgr_createTopology() <pgr_create_topology>` will create the ``vertices_tmp`` table and populate the ``source`` and ``target`` columns. The following example populated the remaining columns. In this example, the ``fcc`` column contains feature class code and the ``CASE`` statements converts it to an average speed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:518
+msgid "Now your database should be ready to use any (most?) of the pgRouting algorithms."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:524
+msgid "Graph Analytics"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:529
+msgid "It is common to find problems with graphs that have not been constructed fully noded or in graphs with z-levels at intersection that have been entered incorrectly. An other problem is one way streets that have been entered in the wrong direction. We can not detect errors with respect to \"ground\" truth, but we can look for inconsistencies and some anomalies in a graph and report them for additional inspections."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:531
+msgid "We do not current have any visualization tools for these problems, but I have used mapserver to render the graph and highlight potential problem areas. Someone familiar with graphviz might contribute tools for generating images with that."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:535
+msgid "Analyze a Graph"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:537
+msgid "With :ref:`pgr_analyze_graph` the graph can be checked for errors. For example for table \"mytab\" that has \"mytab_vertices_pgr\" as the vertices table:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:560
+msgid "In the vertices table \"mytab_vertices_pgr\":"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:562
+msgid "Deadends are identified by ``cnt=1``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:563
+msgid "Potencial gap problems are identified with ``chk=1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:581
+msgid "For isolated road segments, for example, a segment where both ends are deadends. you can find these with the following query:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:590
+msgid "If you want to visualize these on a graphic image, then you can use something like mapserver to render the edges and the vertices and style based on ``cnt`` or if they are isolated, etc. You can also do this with a tool like graphviz, or geoserver or other similar tools."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:594
+msgid "Analyze One Way Streets"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:596
+msgid ":ref:`pgr_analyze_oneway` analyzes one way streets in a graph and identifies any flipped segments. Basically if you count the edges coming into a node and the edges exiting a node the number has to be greater than one."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:598
+msgid "This query will add two columns to the vertices_tmp table ``ein int`` and ``eout int`` and populate it with the appropriate counts. After running this on a graph you can identify nodes with potential problems with the following query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:601
+msgid "The rules are defined as an array of text strings that if match the ``col`` value would be counted as true for the source or target in or out condition."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:605
+msgid "Example"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:607
+msgid "Lets assume we have a table \"st\" of edges and a column \"one_way\" that might have values like:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:609
+msgid "'FT'    - oneway from the source to the target node."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:610
+msgid "'TF'    - oneway from the target to the source node."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:611
+msgid "'B'     - two way street."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:612
+msgid "''      - empty field, assume twoway."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:613
+msgid "<NULL>  - NULL field, use two_way_if_null flag."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:615
+msgid "Then we could form the following query to analyze the oneway streets for errors."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:634
+msgid "Typically these problems are generated by a break in the network, the one way direction set wrong, maybe an error related to z-levels or a network that is not properly noded."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:636
+msgid "The above tools do not detect all network issues, but they will identify some common problems. There are other problems that are hard to detect because they are more global in nature like multiple disconnected networks. Think of an island with a road network that is not connected to the mainland network because the bridge or ferry routes are missing."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:644
+msgid "Performance Tips"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:651
+msgid "For the Routing functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:653
+msgid "To get faster results bound your queries to the area of interest of routing to have, for example, no more than one million rows."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:655
+msgid "Use an inner query SQL that does not include some edges in the routing function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:663
+msgid "Integrating the inner query to the pgRouting function:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:677
+msgid "For the topology functions:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:679
+msgid "When \"you know\" that you are going to remove a set of edges from the edges table, and without those edges you are going to use a routing function you can do the following:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:681
+msgid "Analize the new topology based on the actual topology:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:687
+msgid "Or create a new topology if the change is permanent:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:698
+msgid "How to contribute"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:701
+msgid "Wiki"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:702
+msgid "Edit an existing  `pgRouting Wiki <https://github.com/pgRouting/pgrouting/wiki>`_ page."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:703
+msgid "Or create a new Wiki page"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:705
+msgid "Create a page on the `pgRouting Wiki <https://github.com/pgRouting/pgrouting/wiki>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:706
+msgid "Give the title an appropriate name"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:709
+msgid "`Example <https://github.com/pgRouting/pgrouting/wiki/How-to:-Handle-parallel-edges-(KSP)>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:713
+msgid "Adding Functionaity to pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:714
+msgid "Consult the `developer's documentation <http://docs.pgrouting.org/doxy/2.4/index.html>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:719
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:720
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:721
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgRouting-installation.pot b/locale/pot/pgRouting-installation.pot
new file mode 100644
index 0000000..e0449f4
--- /dev/null
+++ b/locale/pot/pgRouting-installation.pot
@@ -0,0 +1,398 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgRouting-installation.rst:13
+msgid "Installation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:16
+msgid "Table of Contents"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:17
+msgid ":ref:`install-short`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:18
+msgid ":ref:`install_get_sources`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:19
+msgid ":ref:`install_enable_db`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:20
+msgid ":ref:`install_dependencies`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:21
+msgid ":ref:`install_configuring`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:22
+msgid ":ref:`install_build`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:23
+msgid ":ref:`install_testing`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:25
+msgid "Instructions for downloading and installing binaries for different Operative systems instructions and additional notes and corrections not included in this documentation can be found in `Installation wiki <https://github.com/pgRouting/pgrouting/wiki/Notes-on-Download%2C-Installation-and-building-pgRouting>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:27
+msgid "To use pgRouting postGIS needs to be installed, please read the information about installation in this `Install Guide <http://www.postgis.us/presentations/postgis_install_guide_22.html>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:32
+msgid "Short Version"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:37
+msgid "Extracting the tar ball"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:44
+msgid "To compile assuming you have all the dependencies in your search path:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:54
+msgid "Once pgRouting is installed, it needs to be enabled in each individual database you want to use it in."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:66
+msgid "Get the sources"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:69
+msgid "The pgRouting latest release can be found in https://github.com/pgRouting/pgrouting/releases/latest"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:72
+msgid "wget"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:73
+msgid "To download this release:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:81
+msgid "Goto :ref:`install-short` to the extract and compile instructions."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:84
+msgid "git"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:85
+msgid "To download the repository"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:93
+msgid "Goto :ref:`install-short` to the compile instructions (there is no tar ball)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:100
+msgid "Enabling and upgrading in the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:103
+msgid "Enabling the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:104
+msgid "pgRouting is an extension and depends on postGIS. Enabling postGIS before enabling pgRouting in the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:113
+msgid "Upgrading the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:114
+msgid "To upgrade pgRouting in the database to version 2.4.0 use the following command:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:122
+msgid "More information can be found in https://www.postgresql.org/docs/current/static/sql-createextension.html"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:128
+msgid "Dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:131
+msgid "Compilation Dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:132
+msgid "To be able to compile pgRouting, make sure that the following dependencies are met:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:134
+msgid "C and C++0x compilers * g++ version >= 4.8"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:136
+msgid "Postgresql version >= 9.2"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:137
+msgid "PostGIS version >= 2.0"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:138
+msgid "The Boost Graph Library (BGL). Version >= 1.46"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:139
+msgid "CMake >= 2.8.8"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:140
+msgid "CGAL >=  4.2"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:144
+msgid "optional dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:145
+msgid "For user's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:147
+msgid "Sphinx >= 1.1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:148
+msgid "Latex"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:150
+msgid "For developer's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:152
+msgid "Doxygen >= 1.7"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:154
+msgid "For testing"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:156
+msgid "pgtap"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:157
+msgid "pg_prove"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:161
+msgid "Example: Installing dependencies on linux"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:162
+msgid "Installing the compilation dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:174
+msgid "Installing the optional dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:188
+msgid "Configuring"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:190
+msgid "pgRouting uses the `cmake` system to do the configuration."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:192
+msgid "The build directory is different from the source directory"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:194
+msgid "Create the build directory"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:201
+msgid "Configurable variables"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:205
+msgid "To see the variables that can be configured"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:213
+msgid "Configuring The Documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:214
+msgid "Most of the effort of the documentation has being on the HTML files. Some variables for the documentation:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:218
+msgid "Variable"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:218
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:218
+msgid "Comment"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:220
+msgid "WITH_DOC"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:220
+#: ../../build/doc/pgRouting-installation.rst:223
+#: ../../build/doc/pgRouting-installation.rst:224
+#: ../../build/doc/pgRouting-installation.rst:225
+msgid "BOOL=OFF"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:220
+msgid "Turn on/off building the documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:221
+msgid "BUILD_HTML"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:221
+#: ../../build/doc/pgRouting-installation.rst:222
+msgid "BOOL=ON"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:221
+msgid "If ON, turn on/off building HTML for user's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:222
+msgid "BUILD_DOXY"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:222
+msgid "If ON, turn on/off building HTML for developer's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:223
+msgid "BUILD_LATEX"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:223
+msgid "If ON, turn on/off building PDF"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:224
+msgid "BUILD_MAN"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:224
+msgid "If ON, turn on/off building MAN pages"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:225
+msgid "DOC_USE_BOOTSTRAP"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:225
+msgid "If ON, use sphinx-bootstrap for HTML pages of the users documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:228
+msgid "Configuring with documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:234
+msgid "Most of the effort of the documentation has being on the html files."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:240
+msgid "Building"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:242
+msgid "Using ``make`` to build the code and the documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:244
+msgid "The following instructions start from *path/to/pgrouting/build*"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:253
+msgid "We have tested on several platforms, For installing or reinstalling all the steps are needed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:255
+msgid "The sql signatures are configured and build in the ``cmake`` command."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:258
+msgid "MinGW on Windows"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:269
+msgid "Linux"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:270
+msgid "The following instructions start from *path/to/pgrouting*"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:280
+msgid "When the configuration changes:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:286
+msgid "and start the build process as mentioned above."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:291
+msgid "Testing"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:293
+msgid "Currently there is no :code:`make test` and testing is done as follows"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:295
+msgid "The following instructions start from *path/to/pgrouting/*"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:305
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:308
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:309
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:310
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgRouting-introduction.pot b/locale/pot/pgRouting-introduction.pot
new file mode 100644
index 0000000..9926c65
--- /dev/null
+++ b/locale/pot/pgRouting-introduction.pot
@@ -0,0 +1,189 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgRouting-introduction.rst:13
+msgid "Introduction"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:15
+msgid "pgRouting is an extension of `PostGIS <http://postgis.net>`_ and `PostgreSQL <http://postgresql.org>`_ geospatial database and adds routing and other network analysis functionality. A predecessor of pgRouting – pgDijkstra, written by Sylvain Pasche from `Camptocamp <http://camptocamp.com>`_, was later extended by `Orkney <http://www.orkney.co.jp>`_ and renamed to pgRouting. The project is now supported and maintained by `Georepublic <http://georepublic.info>`_, `iMaptools <http:// [...]
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:17
+msgid "pgRouting is an `OSGeo Labs <http://wiki.osgeo.org/wiki/OSGeo_Labs>`_ project of the `OSGeo Foundation <http://osgeo.org>`_ and included on `OSGeo Live <http://live.osgeo.org/>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:23
+msgid "License"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:25
+msgid "The following licenses can be found in pgRouting:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:30
+msgid "**License**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:32
+msgid "GNU General Public License, version 2"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:33
+msgid "Most features of pgRouting are available under `GNU General Public License, version 2 <http://www.gnu.org/licenses/gpl-2.0.html>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:34
+msgid "Boost Software License - Version 1.0"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:35
+msgid "Some Boost extensions are available under `Boost Software License - Version 1.0 <http://www.boost.org/LICENSE_1_0.txt>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:36
+msgid "MIT-X License"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:37
+msgid "Some code contributed by iMaptools.com is available under MIT-X license."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:38
+msgid "Creative Commons Attribution-Share Alike 3.0 License"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:39
+msgid "The pgRouting Manual is licensed under a `Creative Commons Attribution-Share Alike 3.0 License <http://creativecommons.org/licenses/by-sa/3.0/>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:41
+msgid "In general license information should be included in the header of each source file."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:45
+msgid "Contributors"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:48
+msgid "This Release Contributors"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:51
+#: ../../build/doc/pgRouting-introduction.rst:71
+msgid "Individuals (in alphabetical order)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:53
+msgid "Maoguang Wang, Vidhan Jain, Virginia Vergara"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:55
+msgid "And all the people that give us a little of their time making comments, finding issues, making pull requests etc."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:58
+#: ../../build/doc/pgRouting-introduction.rst:76
+msgid "Corporate Sponsors (in alphabetical order)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:60
+#: ../../build/doc/pgRouting-introduction.rst:78
+msgid "These are corporate entities that have contributed developer time, hosting, or direct monetary funding to the pgRouting project:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:62
+msgid "`Georepublic <https://georepublic.info/en/>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:63
+msgid "`Google Summer of Code <https://developers.google.com/open-source/gsoc/>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:64
+msgid "`iMaptools <http://imaptools.com>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:65
+msgid "`Paragon Corporation <http://www.paragoncorporation.com/>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:68
+msgid "Contributors Past & Present:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:73
+msgid "Akio Takubo, Andrea Nardelli, Anton Patrushev, Ashraf Hossain, Christian Gonzalez, Daniel Kastl, Dave Potts, David Techer, Denis Rykov, Ema Miyawaki, Florian Thurkow, Frederic Junod, Gerald Fenoy, Jay Mahadeokar, Jinfu Leng, Kai Behncke, Kishore Kumar, Ko Nagase, Manikata Kondeti, Mario Basa, Martin Wiesenhaan,  Maxim Dubinin, Maoguang Wang, Mohamed Zia, Mukul Priya, Razequl Islam, Regina Obe, Rohith Reddy, Sarthak Agarwal, Stephen Woodbridge, Sylvain Housseman, Sylvain Pasche, Vi [...]
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:80
+msgid "Camptocamp"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:81
+msgid "CSIS (University of Tokyo)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:82
+msgid "Georepublic"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:83
+msgid "Google Summer of Code"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:84
+msgid "iMaptools"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:85
+msgid "Orkney"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:86
+msgid "Paragon Corporation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:90
+msgid "More Information"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:92
+msgid "The latest software, documentation and news items are available at the pgRouting web site http://pgrouting.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:93
+msgid "PostgreSQL database server at the PostgreSQL main site http://www.postgresql.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:94
+msgid "PostGIS extension at the PostGIS project web site http://postgis.net."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:95
+msgid "Boost C++ source libraries at http://www.boost.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:96
+msgid "Computational Geometry Algorithms Library (CGAL) at http://www.cgal.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:97
+msgid "The Migration guide can be found at https://github.com/pgRouting/pgrouting/wiki/Migration-Guide."
+msgstr ""
+
diff --git a/locale/pot/pgr_KSP.pot b/locale/pot/pgr_KSP.pot
new file mode 100644
index 0000000..93b1a28
--- /dev/null
+++ b/locale/pot/pgr_KSP.pot
@@ -0,0 +1,389 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_KSP.rst:13
+msgid "pgr_KSP"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:18
+msgid "``pgr_KSP`` — Returns the \"K\" shortest paths."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:27
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:28
+msgid "Signature change 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:32
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:34
+msgid "The K shortest path routing algorithm based on Yen's algorithm. \"K\" is the number of shortest paths desired."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:37
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:46
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:52
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:64
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:73
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_KSP.rst:83
+#: ../../build/doc/pgr_KSP.rst:103
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_KSP.rst:83
+#: ../../build/doc/pgr_KSP.rst:103
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_KSP.rst:83
+#: ../../build/doc/pgr_KSP.rst:103
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_KSP.rst:110
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:80
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:85
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:85
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:85
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:86
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:86
+#: ../../build/doc/pgr_KSP.rst:87
+#: ../../build/doc/pgr_KSP.rst:107
+#: ../../build/doc/pgr_KSP.rst:108
+#: ../../build/doc/pgr_KSP.rst:109
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:86
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:87
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:87
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:88
+msgid "**k**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:88
+#: ../../build/doc/pgr_KSP.rst:105
+#: ../../build/doc/pgr_KSP.rst:106
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:88
+msgid "The desiered number of paths."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:89
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:89
+#: ../../build/doc/pgr_KSP.rst:90
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:89
+msgid "(optional). When ``false`` the graph is considered as Undirected. Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:90
+msgid "**heap_paths**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:90
+msgid "(optional). When ``true`` returns all the paths stored in the process heap. Default is ``false`` which only returns ``k`` paths."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:93
+msgid "Roughly, if the shortest path has ``N`` edges, the heap will contain about than ``N * k`` paths for small value of ``k`` and ``k > 1``."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:98
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:100
+msgid "Returns set of ``(seq, path_seq, path_id, node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:105
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:105
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:106
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:106
+msgid "Relative position in the path of ``node`` and ``edge``. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:107
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:107
+msgid "Path identifier. The ordering of the paths For two paths i, j if i < j then agg_cost(i) <= agg_cost(j)."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:108
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:108
+msgid "Identifier of the node in the path."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:109
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:109
+msgid "Identifier of the edge used to go from ``node`` to the next node in the path sequence. ``-1`` for the last node of the route."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:110
+#: ../../build/doc/pgr_KSP.rst:111
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:110
+msgid "Cost to traverse from ``node`` using ``edge`` to the next node in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:111
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:111
+msgid "Aggregate cost from ``start_vid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:115
+msgid "During the transition to 3.0, because pgr_ksp version 2.0 doesn't have defined a directed flag nor a heap_path flag, when pgr_ksp is used with only one flag version 2.0 signature will be used."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:119
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:122
+msgid "Examples to handle the one flag to choose signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:124
+#: ../../build/doc/pgr_KSP.rst:134
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:132
+msgid "Examples for queries marked as ``directed`` with ``cost`` and ``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:143
+msgid "Examples for queries marked as ``undirected`` with ``cost`` and ``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:145
+msgid "The examples in this section use the following :ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:153
+msgid "Examples for queries marked as ``directed`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:155
+msgid "The examples in this section use the following :ref:`fig3`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:164
+msgid "Examples for queries marked as ``undirected`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:166
+msgid "The examples in this section use the following :ref:`fig4`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:173
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:175
+msgid "http://en.wikipedia.org/wiki/K_shortest_path_routing"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:176
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:179
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:180
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:181
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_TSP.pot b/locale/pot/pgr_TSP.pot
new file mode 100644
index 0000000..773fda8
--- /dev/null
+++ b/locale/pot/pgr_TSP.pot
@@ -0,0 +1,215 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_TSP.rst:13
+msgid "pgr_TSP"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:18
+msgid "``pgr_TSP`` - Returns a route that visits all the nodes exactly once."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:21
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:22
+msgid "Signature changed 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:26
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:28
+msgid "The travelling salesman problem (TSP) or travelling salesperson problem asks the following question:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:30
+msgid "Given a list of cities and the distances between each pair of cities, what is the shortest possible route that visits each city exactly once and returns to the origin city?"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:32
+msgid "This implementation uses simulated annealing to return the approximate solution when the input is given in the form of matrix cell contents. The matrix information must be symmetrical."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:37
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:58
+msgid "Basic Use"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:67
+msgid "Because the documentation examples are auto generated and tested for non changing results, and the default is to have random execution, the example is wrapping the actual call."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:81
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:96
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:103
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:106
+msgid "Description of the Matrix Cell SQL query"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:109
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:109
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:109
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:111
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:111
+#: ../../build/doc/pgr_TSP.rst:112
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:111
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:112
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:112
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:113
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:113
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:113
+msgid "Cost for going from start_vid to end_vid"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:116
+msgid "Can be Used with:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:118
+msgid ":ref:`pgr_dijkstraCostmatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:119
+msgid ":ref:`pgr_withPointsCostmatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:120
+msgid ":ref:`pgr_floydWarshall`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:121
+msgid ":ref:`pgr_johnson`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:123
+msgid "To generate a symmetric matrix"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:125
+msgid "directed := false."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:127
+msgid "If using directed := true, the resulting non symmetric matrix must be converted to symmetric by fixing the non symmetric values according to your application needs."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:145
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:147
+msgid "Using with points of interest."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:149
+msgid "To generate a symmetric matrix:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:151
+msgid "the **side** information of pointsOfInterset is ignored by not including it in the query"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:152
+msgid "and **directed := false**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:158
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:163
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:165
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:166
+msgid "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:167
+msgid "http://en.wikipedia.org/wiki/Simulated_annealing"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:170
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:171
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:172
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_aStar.pot b/locale/pot/pgr_aStar.pot
new file mode 100644
index 0000000..2706222
--- /dev/null
+++ b/locale/pot/pgr_aStar.pot
@@ -0,0 +1,608 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_aStar.rst:13
+msgid "pgr_aStar"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:18
+msgid "``pgr_aStar`` — Returns the shortest path using A* algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:26
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:27
+msgid "pgr_astar(one to one) 2.0.0, Signature changed 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:28
+msgid "pgr_astar(other signatures) 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:33
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:35
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:37
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:38
+msgid "Vertices of the graph are:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:40
+msgid "**positive** when it belongs to the edges_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:42
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:44
+msgid "When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:46
+msgid "The agg_cost the non included values (v, v) is 0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:48
+msgid "When the starting vertex and ending vertex are the different and there is no path:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:50
+msgid "The agg_cost the non included values (u, v) is ∞"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:52
+msgid "When (x,y) coordinates for the same vertex identifier differ:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:54
+msgid "A random selection of the vertex's (x,y) coordinates is used."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:56
+msgid "Running time: :math:`O((E + V) * \\log V)`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:61
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:84
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:92
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:99
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:112
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:118
+msgid "Undirected using  Heuristic 2"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:130
+msgid "One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:139
+msgid "This signature finds the shortest path from one ``start_vid`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:138
+#: ../../build/doc/pgr_aStar.rst:165
+#: ../../build/doc/pgr_aStar.rst:194
+msgid "on a **directed** graph when ``directed`` flag is missing or is set to ``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:139
+#: ../../build/doc/pgr_aStar.rst:166
+#: ../../build/doc/pgr_aStar.rst:195
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:141
+msgid "Using this signature, will load once the graph and perform a one to one `pgr_astar` where the starting vertex is fixed, and stop when all ``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:144
+msgid "The result is equivalent to the union of the results of the one to one `pgr_astar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:145
+msgid "The extra ``end_vid`` in the result is used to distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:157
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:166
+msgid "This signature finds the shortest path from each ``start_vid`` in  ``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:168
+msgid "Using this signature, will load once the graph and perform several one to one `pgr_aStar` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:171
+msgid "The result is the union of the results of the one to one `pgr_aStar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:172
+#: ../../build/doc/pgr_aStar.rst:201
+msgid "The extra ``start_vid`` in the result is used to distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:186
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:195
+msgid "This signature finds the shortest path from each ``start_vid`` in  ``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:197
+msgid "Using this signature, will load once the graph and perform several one to Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:200
+msgid "The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:203
+msgid "The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:217
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStar.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStar.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_aStar.rst:234
+#: ../../build/doc/pgr_aStar.rst:235
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:228
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:231
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:233
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:233
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:233
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:234
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:234
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:235
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:235
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:236
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:236
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:236
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:238
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:239
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:241
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:241
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:241
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:243
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:244
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:245
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:246
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:247
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:248
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:250
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:250
+#: ../../build/doc/pgr_aStar.rst:251
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:250
+msgid "(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see :ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:251
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:251
+msgid "(optional). For less restricted results. :math:`epsilon >= 1`.  Default ``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Path identifier. Has value **1** for the first of a path. Used when there are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Identifier of the starting vertex. Used when multiple starting vetrices are in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "Identifier of the ending vertex. Used when multiple ending vertices are in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "Identifier of the edge used to go from ``node`` to the next node in the path sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Cost to traverse from ``node`` using ``edge`` to the next node in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:260
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:262
+msgid ":ref:`astar`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:263
+msgid ":doc:`sampledata`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:264
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:265
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:268
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:269
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:270
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_aStarCost.pot b/locale/pot/pgr_aStarCost.pot
new file mode 100644
index 0000000..a8700a2
--- /dev/null
+++ b/locale/pot/pgr_aStarCost.pot
@@ -0,0 +1,497 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_aStarCost.rst:13
+msgid "pgr_aStarCost -- proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:18
+msgid "``pgr_aStarCost`` — Returns the aggregate cost shortest path using :ref:`astar` algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:26
+msgid "Availability: 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:28
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:46
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:53
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:60
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:72
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:78
+msgid "Setting a Heuristic"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:90
+msgid "One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:99
+msgid "This signature finds a path from one ``start_vid`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:98
+#: ../../build/doc/pgr_aStarCost.rst:125
+#: ../../build/doc/pgr_aStarCost.rst:154
+msgid "on a **directed** graph when ``directed`` flag is missing or is set to ``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:99
+#: ../../build/doc/pgr_aStarCost.rst:126
+#: ../../build/doc/pgr_aStarCost.rst:155
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:101
+msgid "Using this signature, will load once the graph and perform a one to one `pgr_astar` where the starting vertex is fixed, and stop when all ``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:104
+msgid "The result is equivalent to the union of the results of the one to one `pgr_astar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:105
+msgid "The extra ``end_vid`` column in the result is used to distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:117
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:126
+msgid "This signature finds the shortest path from each ``start_vid`` in  ``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:128
+msgid "Using this signature, will load once the graph and perform several one to one `pgr_aStar` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:131
+msgid "The result is the union of the results of the one to one `pgr_aStar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:132
+msgid "The extra ``start_vid`` column  in the result is used to distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:146
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:155
+msgid "This signature finds the shortest path from each ``start_vid`` in  ``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:157
+msgid "Using this signature, will load once the graph and perform several one to Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:160
+msgid "The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:161
+msgid "The extra ``start_vid`` in the result is used to distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:163
+msgid "The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:177
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCost.rst:191
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCost.rst:191
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_aStarCost.rst:194
+#: ../../build/doc/pgr_aStarCost.rst:195
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:188
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:191
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:193
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:193
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:193
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:194
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:194
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:195
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:195
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:196
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:196
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:196
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:198
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:199
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:201
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:201
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:201
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:203
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:204
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:205
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:206
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:207
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:208
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:210
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:210
+#: ../../build/doc/pgr_aStarCost.rst:211
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:210
+msgid "(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. See :ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:211
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:211
+msgid "(optional). For less restricted results. :math:`epsilon >= 1`.  Default ``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the starting vertex. Used when multiple starting vetrices are in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the ending vertex. Used when multiple ending vertices are in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:224
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:226
+msgid ":ref:`astar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:227
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:228
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:229
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:232
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:233
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:234
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_aStarCostMatrix.pot b/locale/pot/pgr_aStarCostMatrix.pot
new file mode 100644
index 0000000..7714393
--- /dev/null
+++ b/locale/pot/pgr_aStarCostMatrix.pot
@@ -0,0 +1,449 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:13
+msgid "pgr_aStarCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:18
+msgid "``pgr_aStarCostMatrix`` - Calculates the a cost matrix using :ref:`pgr_aStar`."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:33
+msgid "Availability: 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:37
+msgid "Using aStar algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:40
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:57
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:60
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:60
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:68
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:80
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:88
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:90
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:98
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:106
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:109
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:111
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:111
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:111
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:112
+msgid "**vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:112
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:112
+msgid "Array of vertices_identifiers."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:113
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:113
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:113
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:115
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:116
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:118
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:118
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:118
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:120
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:121
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:122
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:123
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:124
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:125
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:127
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:127
+#: ../../build/doc/pgr_aStarCostMatrix.rst:128
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:127
+msgid "(optional). For units manipulation. :math:`factor > 0`.  Default ``1``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:128
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:128
+msgid "(optional). For less restricted results. :math:`epsilon >= 1`.  Default ``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the starting vertex. Used when multiple starting vetrices are in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the ending vertex. Used when multiple ending vertices are in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:140
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:142
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:150
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:152
+msgid ":ref:`astar`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:153
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:154
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:155
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:158
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:159
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:160
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_alphaShape.pot b/locale/pot/pgr_alphaShape.pot
new file mode 100644
index 0000000..6fae172
--- /dev/null
+++ b/locale/pot/pgr_alphaShape.pot
@@ -0,0 +1,158 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_alphaShape.rst:13
+msgid "pgr_alphaShape"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:21
+msgid "``pgr_alphaShape`` — Core function for alpha shape computation."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:27
+msgid "Returns a table with (x, y) rows that describe the vertices of an alpha shape."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:35
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:37
+msgid "``text`` a SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:43
+msgid "``int4`` identifier of the vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:44
+msgid "``float8`` x-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:45
+msgid "``float8`` y-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:47
+msgid "(optional) ``float8`` alpha value. If specified alpha value equals 0 (default), then optimal alpha value is used. For more information, see `CGAL - 2D Alpha Shapes <http://doc.cgal.org/latest/Alpha_shapes_2/group__PkgAlphaShape2.html>`_."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:50
+msgid "Returns a vertex record for each row:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:52
+msgid "x-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:53
+msgid "y-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:55
+msgid "If a result includes multiple outer/inner rings, return those with separator row (x=NULL and y=NULL)."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:58
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:59
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:60
+msgid "Added alpha argument with default 0 (use optimal value) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:61
+msgid "Supported to return multiple outer/inner ring coordinates with separator row (x=NULL and y=NULL) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:64
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:65
+msgid "PgRouting's alpha shape implementation has no way to control the order of the output points, so the actual output might different for the same input data. The first query, has the output ordered, he second query shows an example usage:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:70
+msgid "Example: the (ordered) results"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:76
+msgid "Example: calculating the area"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:77
+msgid "Steps:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:79
+msgid "Calculates the alpha shape"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:80
+msgid "the :code:`ORDER BY` clause is not used."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:81
+msgid "constructs a polygon"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:82
+msgid "and computes the area"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:90
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:93
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:95
+msgid ":ref:`pgr_drivingDistance` - Driving Distance"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:96
+msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:99
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:100
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:101
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_analyzeGraph.pot b/locale/pot/pgr_analyzeGraph.pot
new file mode 100644
index 0000000..3f6ef52
--- /dev/null
+++ b/locale/pot/pgr_analyzeGraph.pot
@@ -0,0 +1,308 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_analyzeGraph.rst:13
+msgid "pgr_analyzeGraph"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:19
+msgid "``pgr_analyzeGraph`` — Analyzes the network topology."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:23
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:25
+#: ../../build/doc/pgr_analyzeGraph.rst:61
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:27
+#: ../../build/doc/pgr_analyzeGraph.rst:63
+msgid "``OK`` after the analysis has finished."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:28
+#: ../../build/doc/pgr_analyzeGraph.rst:69
+msgid "``FAIL`` when the analysis was not completed due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:43
+msgid "Prerequisites"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:44
+msgid "The  edge table to be analyzed must contain a source column and a target column filled with id's of the vertices of the segments and the corresponding vertices table <edge_table>_vertices_pgr that stores the vertices information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:46
+msgid "Use :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:47
+msgid "Use :ref:`pgr_createTopology <pgr_create_topology>` to create the topology and the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:50
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:51
+msgid "The analyze graph function accepts the following parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:53
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:54
+msgid "``float8`` Snapping tolerance of disconnected edges. (in projection unit)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:55
+msgid "``text``  Geometry column name of the network table. Default value is ``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:56
+msgid "``text``  Primary key column name of the network table. Default value is ``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:57
+msgid "``text`` Source column name of the network table. Default value is ``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:58
+msgid "``text``  Target column name of the network table.  Default value is ``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:59
+msgid "``text``   Condition to select  a subset or rows.  Default value is ``true`` to indicate all rows."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:65
+msgid "Uses the vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:66
+msgid "Fills completely the ``cnt`` and ``chk`` columns of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:67
+msgid "Returns the analysis of the section of the network defined by  ``rows_where``"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:71
+msgid "The vertices table is not found."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:72
+msgid "A required column of the Network table is not found or is not of the appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:73
+msgid "The condition is not well formed."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:74
+msgid "The names of source , target or id are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:75
+msgid "The SRID of the geometry could not be determined."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:79
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:80
+msgid "The vertices table can be created with :ref:`pgr_createVerticesTable <pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:82
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:84
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:85
+msgid "``integer`` Number of vertices in the edge_table that reference this vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:86
+msgid "``integer``  Indicator that the vertex might have a problem."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:87
+msgid "``integer`` Number of vertices in the edge_table that reference this vertex as incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:88
+msgid "``integer`` Number of vertices in the edge_table that reference this vertex as outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:89
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:92
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:93
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:96
+msgid "Usage when the edge table's columns MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:99
+msgid "The simplest way to use pgr_analyzeGraph is:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:106
+msgid "When the arguments are given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:111
+msgid "We get the same result as the simplest way to use the function."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:0
+msgid "An error would occur when the arguments are not given in the appropriate order: In this example, the column ``id`` of the table ``mytable`` is passed to the function as the geometry column, and the geometry column ``the_geom`` is passed to the function as the id column."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:130
+#: ../../build/doc/pgr_analyzeGraph.rst:208
+msgid "When using the named notation"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:131
+#: ../../build/doc/pgr_analyzeGraph.rst:209
+msgid "The order of the parameters do not matter:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:141
+msgid "Parameters defined with a default value can be omitted, as long as the value matches the default:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:148
+#: ../../build/doc/pgr_analyzeGraph.rst:223
+msgid "Selecting rows using rows_where parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:149
+msgid "Selecting rows based on the id. Displays the analysis a the section of the network."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:155
+msgid "Selecting the rows where the geometry is near the geometry of row with ``id`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:161
+msgid "Selecting the rows where the geometry is near the geometry of the row with ``gid`` =100 of the table ``othertable``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:172
+msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:174
+msgid "For the following table"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:183
+msgid "Using positional notation:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:184
+msgid "The arguments need to be given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:0
+msgid "An error would occur when the arguments are not given in the appropriate order: In this example, the column ``gid`` of the table ``mytable`` is passed to the function as the geometry column, and the geometry column ``mygeom`` is passed to the function as the id column."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:219
+msgid "In this scenario omitting a parameter would create an error because the default values for the column names do not match the column names of the table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:224
+msgid "Selecting rows based on the id."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:234
+msgid "Selecting the rows WHERE the geometry is near the geometry of row with ``id`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:246
+msgid "Selecting the rows WHERE the geometry is near the place='myhouse' of the table ``othertable``. (note the use of quote_literal)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:263
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:390
+msgid "The examples use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:394
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:396
+msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:397
+msgid ":ref:`pgr_analyze_oneway` to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:398
+msgid ":ref:`pgr_createVerticesTable <pgr_create_vert_table>` to reconstruct the vertices table based on the source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:399
+msgid ":ref:`pgr_nodeNetwork <pgr_node_network>` to create nodes to a not noded edge table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:402
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:403
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:404
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_analyzeOneWay.pot b/locale/pot/pgr_analyzeOneWay.pot
new file mode 100644
index 0000000..d1ea54e
--- /dev/null
+++ b/locale/pot/pgr_analyzeOneWay.pot
@@ -0,0 +1,234 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:13
+msgid "pgr_analyzeOneway"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:19
+msgid "``pgr_analyzeOneway`` — Analyzes oneway Sstreets and identifies flipped segments."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:23
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:25
+msgid "This function analyzes oneway streets in a graph and identifies any flipped segments."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:42
+msgid "The analyses of one way segments is pretty simple but can be a powerful tools to identifying some the potential problems created by setting the direction of a segment the wrong way. A node is a `source` if it has edges the exit from that node and no edges enter that node. Conversely, a node is a `sink` if all edges enter the node but none exit that node. For a `source` type node it is logically impossible to exist because no vehicle can exit the node if no vehicle and enter the no [...]
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:44
+msgid "So why do we care if the are not feasible? Well if the direction of an edge was reversed by mistake we could generate exactly these conditions. Think about a divided highway and on the north bound lane one segment got entered wrong or maybe a sequence of multiple segments got entered wrong or maybe this happened on a round-about. The result would be potentially a `source` and/or a `sink` node."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:46
+msgid "So by counting the number of edges entering and exiting each node we can identify both `source` and `sink` nodes so that you can look at those areas of your network to make repairs and/or report the problem back to your data vendor."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:49
+msgid "Prerequisites"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:50
+msgid "The  edge table to be analyzed must contain a source column and a target column filled with id's of the vertices of the segments and the corresponding vertices table <edge_table>_vertices_pgr that stores the vertices information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:52
+msgid "Use :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:53
+msgid "Use :ref:`pgr_createTopology <pgr_create_topology>` to create the topology and the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:56
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:57
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:58
+msgid "``text[]`` source node **in** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:59
+msgid "``text[]`` source node **out** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:60
+msgid "``text[]`` target node **in** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:61
+msgid "``text[]`` target node **out** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:62
+msgid "``text`` oneway column name name of the network table. Default value is ``oneway``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:63
+msgid "``text`` Source column name of the network table. Default value is ``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:64
+msgid "``text``  Target column name of the network table.  Default value is ``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:65
+msgid "``boolean`` flag to treat oneway NULL values as bi-directional.  Default value is ``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:67
+msgid "It is strongly recommended to use the named notation. See :ref:`pgr_createVerticesTable <pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>` for examples."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:70
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:72
+msgid "``OK`` after the analysis has finished."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:74
+msgid "Uses the vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:75
+msgid "Fills completely the ``ein`` and ``eout`` columns of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:77
+msgid "``FAIL`` when the analysis was not completed due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:79
+msgid "The vertices table is not found."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:80
+msgid "A required column of the Network table is not found or is not of the appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:81
+msgid "The names of source , target or oneway are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:83
+msgid "The rules are defined as an array of text strings that if match the ``oneway`` value would be counted as ``true`` for the source or target **in** or **out** condition."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:86
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:87
+msgid "The vertices table can be created with :ref:`pgr_createVerticesTable <pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:89
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:91
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:92
+msgid "``integer`` Number of vertices in the edge_table that reference this vertex. See :ref:`pgr_analyzeGgraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:93
+msgid "``integer``  Indicator that the vertex might have a problem. See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:94
+msgid "``integer`` Number of vertices in the edge_table that reference this vertex as incoming."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:95
+msgid "``integer`` Number of vertices in the edge_table that reference this vertex as outgoing."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:96
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:100
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:101
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:105
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:129
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:133
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:135
+msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:136
+msgid ":ref:`analytics` for an overview of the analysis of a graph."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:137
+msgid ":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:138
+msgid ":ref:`pgr_create_vert_table` to reconstruct the vertices table based on the source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:141
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:142
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:143
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_articulationPoints.pot b/locale/pot/pgr_articulationPoints.pot
new file mode 100644
index 0000000..8964b8e
--- /dev/null
+++ b/locale/pot/pgr_articulationPoints.pot
@@ -0,0 +1,311 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_articulationPoints.rst:13
+msgid "pgr_articulationPoints - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:16
+msgid "``pgr_articulationPoints`` - Return the articulation points of an undirected graph. In particular, the algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:22
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:30
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:32
+msgid "Those vertices that belong to more than one biconnected component are called articulation points or, equivalently, cut vertices. Articulation points are vertices whose removal would increase the number of connected components in the graph. This implementation can only be used with an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:39
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:41
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:43
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:45
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:47
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:62
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:75
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the return values for articulation points"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:91
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:93
+msgid "http://en.wikipedia.org/wiki/Biconnected_component"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:94
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:97
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:98
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:99
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_bdAstar.pot b/locale/pot/pgr_bdAstar.pot
new file mode 100644
index 0000000..85818b2
--- /dev/null
+++ b/locale/pot/pgr_bdAstar.pot
@@ -0,0 +1,646 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdAstar.rst:13
+msgid "pgr_bdAstar"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:18
+msgid "``pgr_bdAstar`` — Returns the shortest path using A* algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:26
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:27
+msgid "pgr_bdAstar(one to one) 2.0.0, Signature change on 2.5.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:28
+msgid "pgr_bdAstar(other signatures) 2.5.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:32
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:54
+msgid "Using these signatures, will load once the graph and perform several one to one `pgr_bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:56
+msgid "The result is the union of the results of the one to one `pgr_bdAStar`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:57
+msgid "The extra ``start_vid`` and/or ``end_vid`` in the result is used to distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:61
+msgid "Avaliability"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:62
+msgid "pgr_bdAstar(one to one) 2.0, signature change on 2.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:63
+msgid "pgr_bdAstar(other signatures) 2.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:68
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:76
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:87
+msgid "This usage finds the shortest path from the ``start_vid`` to the ``end_vid``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:84
+msgid "on a **directed** graph"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:85
+msgid "with **heuristic**'s value 5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:86
+msgid "with **factor**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:87
+msgid "with **epsilon**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:89
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:102
+msgid "pgr_bdAstar One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:111
+msgid "This usage finds the shortest path from the ``start_vid`` to the ``end_vid`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:109
+msgid "**heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:110
+#: ../../build/doc/pgr_bdAstar.rst:137
+#: ../../build/doc/pgr_bdAstar.rst:162
+#: ../../build/doc/pgr_bdAstar.rst:186
+msgid "and/or **factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:111
+#: ../../build/doc/pgr_bdAstar.rst:138
+#: ../../build/doc/pgr_bdAstar.rst:163
+#: ../../build/doc/pgr_bdAstar.rst:187
+msgid "and/or **epsilon**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:114
+msgid "In the One to One signature, because of the deprecated signature existence, it is compulsory to indicate if the graph is **directed** or **undirected**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:116
+msgid "Directed using Heuristic 2"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:127
+msgid "pgr_bdAstar One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:139
+msgid "This usage finds the shortest path from the ``start_vid`` to each ``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:135
+#: ../../build/doc/pgr_bdAstar.rst:160
+#: ../../build/doc/pgr_bdAstar.rst:184
+msgid "if the graph is **directed** or **undirected**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:136
+#: ../../build/doc/pgr_bdAstar.rst:161
+#: ../../build/doc/pgr_bdAstar.rst:185
+msgid "and/or **heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:141
+msgid "Directed using Heuristic 3 and a factor of 3.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:152
+msgid "pgr_bdAstar Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:163
+msgid "This usage finds the shortest path from each ``start_vid`` in ``start_vids`` to the ``end_vid`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:165
+msgid "Undirected graph with Heuristic 4"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:176
+msgid "pgr_bdAstar Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:187
+msgid "This usage finds the shortest path from each ``start_vid`` in ``start_vids`` to each ``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:189
+msgid "Directed graph with a factor of 0.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:196
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:10
+#: ../../build/doc/bdAstar-family.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:16
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:21
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:22
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:23
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:24
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:25
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:26
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+#: ../../build/doc/bdAstar-family.rst:29
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid "(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see :ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid "(optional). For less restricted results. :math:`epsilon >= 1`.  Default ``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Path identifier. Has value **1** for the first of a path. Used when there are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Identifier of the starting vertex. Used when multiple starting vetrices are in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "Identifier of the ending vertex. Used when multiple ending vertices are in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "Identifier of the edge used to go from ``node`` to the next node in the path sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Cost to traverse from ``node`` using ``edge`` to the next node in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:213
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:215
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:216
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:217
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:218
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:221
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:222
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:223
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_bdAstarCost.pot b/locale/pot/pgr_bdAstarCost.pot
new file mode 100644
index 0000000..4a7abed
--- /dev/null
+++ b/locale/pot/pgr_bdAstarCost.pot
@@ -0,0 +1,574 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdAstarCost.rst:13
+msgid "pgr_bdAstarCost - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:18
+msgid "``pgr_bdAstarCost`` — Returns the shortest path using A* algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:26
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:32
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:46
+msgid "Using these signatures, will load once the graph and perform several one to one `pgr_bdAstarCost`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:48
+msgid "The result is the union of the results of the one to one `pgr_bdAstarCost`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:49
+msgid "The extra ``start_vid`` and/or ``end_vid`` in the result is used to distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:56
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:64
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:75
+msgid "This usage finds the shortest path from the ``start_vid`` to the ``end_vid``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:72
+msgid "on a **directed** graph"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:73
+msgid "with **heuristic**'s value 5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:74
+msgid "with **factor**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:75
+msgid "with **epsilon**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:77
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:90
+msgid "pgr_bdAstarCost One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:100
+#: ../../build/doc/pgr_bdAstarCost.rst:128
+msgid "This usage finds the shortest path from the ``start_vid`` to each ``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:97
+#: ../../build/doc/pgr_bdAstarCost.rst:124
+#: ../../build/doc/pgr_bdAstarCost.rst:149
+#: ../../build/doc/pgr_bdAstarCost.rst:173
+msgid "if the graph is **directed** or **undirected**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:98
+msgid "**heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:99
+#: ../../build/doc/pgr_bdAstarCost.rst:126
+#: ../../build/doc/pgr_bdAstarCost.rst:151
+#: ../../build/doc/pgr_bdAstarCost.rst:175
+msgid "and/or **factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:100
+#: ../../build/doc/pgr_bdAstarCost.rst:127
+#: ../../build/doc/pgr_bdAstarCost.rst:152
+#: ../../build/doc/pgr_bdAstarCost.rst:176
+msgid "and/or **epsilon**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:103
+msgid "In the One to One signature, because of the deprecated signature existence, it is compulsory to indicate if the graph is **directed** or **undirected**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:105
+msgid "Directed using Heuristic 2"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:116
+msgid "pgr_bdAstarCost One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:125
+#: ../../build/doc/pgr_bdAstarCost.rst:150
+#: ../../build/doc/pgr_bdAstarCost.rst:174
+msgid "and/or **heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:130
+msgid "Directed using Heuristic 3 and a factor of 3.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:141
+msgid "pgr_bdAstarCost Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:152
+msgid "This usage finds the shortest path from each ``start_vid`` in ``start_vids`` to the ``end_vid`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:154
+msgid "Undirected graph with Heuristic 4"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:165
+msgid "pgr_bdAstarCost Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:176
+msgid "This usage finds the shortest path from each ``start_vid`` in ``start_vids`` to each ``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:178
+msgid "Directed graph with a factor of 0.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:185
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:10
+#: ../../build/doc/bdAstar-family.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:16
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:21
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:22
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:23
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:24
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:25
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:26
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+#: ../../build/doc/bdAstar-family.rst:29
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid "(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see :ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid "(optional). For less restricted results. :math:`epsilon >= 1`.  Default ``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the starting vertex. Used when multiple starting vetrices are in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the ending vertex. Used when multiple ending vertices are in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:202
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:204
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:205
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:206
+msgid "`Migration Guide <https://github.com/cvvergara/pgrouting/wiki/Migration-Guide#pgr_bdastar>`_"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:207
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:208
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:211
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:212
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:213
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_bdAstarCostMatrix.pot b/locale/pot/pgr_bdAstarCostMatrix.pot
new file mode 100644
index 0000000..492d6f8
--- /dev/null
+++ b/locale/pot/pgr_bdAstarCostMatrix.pot
@@ -0,0 +1,526 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:13
+msgid "pgr_bdAstarCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:18
+msgid "``pgr_bdAstarCostMatrix`` - Calculates the a cost matrix using :ref:`pgr_bdAstar`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:27
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:35
+msgid "Using Dijkstra algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:38
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:49
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:55
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:68
+msgid "This usage calculates the cost from the each ``start_vid`` in ``start_vids`` to  each ``start_vid`` in ``start_vids``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:64
+msgid "on a **directed** graph"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:65
+msgid "with **heuristic**'s value 5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:66
+msgid "with **factor**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:67
+msgid "with **epsilon**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:70
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:82
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:95
+msgid "This usage calculates the cost from the each ``start_vid`` in ``start_vids`` to  each ``start_vid`` in ``start_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:91
+msgid "if the graph is **directed** or **undirected**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:92
+msgid "**heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:93
+msgid "and/or **factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:94
+msgid "and/or **epsilon**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:97
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:99
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:107
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:10
+#: ../../build/doc/bdAstar-family.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:16
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:21
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:22
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:23
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:24
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:25
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:26
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+#: ../../build/doc/bdAstar-family.rst:29
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid "(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see :ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid "(optional). For less restricted results. :math:`epsilon >= 1`.  Default ``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the starting vertex. Used when multiple starting vetrices are in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the ending vertex. Used when multiple ending vertices are in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:123
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:125
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:133
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:135
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:136
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:137
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:138
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:141
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:142
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:143
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_bdDijkstra.pot b/locale/pot/pgr_bdDijkstra.pot
new file mode 100644
index 0000000..3163d66
--- /dev/null
+++ b/locale/pot/pgr_bdDijkstra.pot
@@ -0,0 +1,504 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdDijkstra.rst:13
+msgid "pgr_bdDijkstra"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:15
+msgid "``pgr_bdDijkstra`` — Returns the shortest path(s) using Bidirectional Dijkstra algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:23
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:24
+msgid "pgr_bdDijkstra(one to one) 2.0.0, Signature changed 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:25
+msgid "pgr_bdDijkstra(other signatures) 2.5.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:28
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:54
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:60
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:67
+msgid "The minimal signature is for a **directed** graph from one ``start_vid`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:80
+msgid "pgr_bdDijkstra One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:87
+msgid "This signature finds the shortest path from one ``start_vid`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:89
+#: ../../build/doc/pgr_bdDijkstra.rst:112
+#: ../../build/doc/pgr_bdDijkstra.rst:141
+#: ../../build/doc/pgr_bdDijkstra.rst:170
+msgid "on a **directed** graph when ``directed`` flag is missing or is set to ``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:90
+#: ../../build/doc/pgr_bdDijkstra.rst:113
+#: ../../build/doc/pgr_bdDijkstra.rst:142
+#: ../../build/doc/pgr_bdDijkstra.rst:171
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:103
+msgid "pgr_bdDijkstra One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:110
+msgid "This signature finds the shortest path from one ``start_vid`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:115
+msgid "Using this signature, will load once the graph and perform a one to one `pgr_dijkstra` where the starting vertex is fixed, and stop when all ``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:118
+msgid "The result is equivalent to the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:119
+msgid "The extra ``end_vid`` in the result is used to distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:132
+msgid "pgr_bdDijkstra Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:139
+msgid "This signature finds the shortest path from each ``start_vid`` in  ``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:144
+msgid "Using this signature, will load once the graph and perform several one to one `pgr_dijkstra` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:147
+#: ../../build/doc/pgr_bdDijkstra.rst:176
+msgid "The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:148
+#: ../../build/doc/pgr_bdDijkstra.rst:177
+msgid "The extra ``start_vid`` in the result is used to distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:161
+msgid "pgr_bdDijkstra Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:168
+msgid "This signature finds the shortest path from each ``start_vid`` in  ``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:173
+msgid "Using this signature, will load once the graph and perform several one to Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:179
+msgid "The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:190
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Path identifier. Has value **1** for the first of a path. Used when there are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Identifier of the starting vertex. Used when multiple starting vetrices are in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "Identifier of the ending vertex. Used when multiple ending vertices are in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "Identifier of the edge used to go from ``node`` to the next node in the path sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Cost to traverse from ``node`` using ``edge`` to the next node in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:208
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:210
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:211
+msgid ":ref:`bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:212
+msgid "http://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/EPP%20shortest%20path%20algorithms.pdf"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:213
+msgid "https://en.wikipedia.org/wiki/Bidirectional_search"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:216
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:217
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:218
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_bdDijkstraCost.pot b/locale/pot/pgr_bdDijkstraCost.pot
new file mode 100644
index 0000000..1fab30a
--- /dev/null
+++ b/locale/pot/pgr_bdDijkstraCost.pot
@@ -0,0 +1,442 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:13
+msgid "pgr_bdDijkstraCost - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:15
+msgid "``pgr_bdDijkstraCost`` — Returns the shortest path(s)'s cost using Bidirectional Dijkstra algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:23
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:30
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:46
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:52
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:59
+msgid "The minimal signature is for a **directed** graph from one ``start_vid`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:72
+msgid "pgr_bdDijkstraCost One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:81
+msgid "This signature finds the shortest path from one ``start_vid`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:80
+#: ../../build/doc/pgr_bdDijkstraCost.rst:102
+#: ../../build/doc/pgr_bdDijkstraCost.rst:130
+#: ../../build/doc/pgr_bdDijkstraCost.rst:158
+msgid "on a **directed** graph when ``directed`` flag is missing or is set to ``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:81
+#: ../../build/doc/pgr_bdDijkstraCost.rst:103
+#: ../../build/doc/pgr_bdDijkstraCost.rst:131
+#: ../../build/doc/pgr_bdDijkstraCost.rst:159
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:94
+msgid "pgr_bdDijkstraCost One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:103
+msgid "This signature finds the shortest path from one ``start_vid`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:105
+msgid "Using this signature, will load once the graph and perform a one to one `pgr_dijkstra` where the starting vertex is fixed, and stop when all ``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:108
+msgid "The result is equivalent to the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:109
+msgid "The extra ``end_vid`` in the result is used to distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:122
+msgid "pgr_bdDijkstraCost Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:131
+msgid "This signature finds the shortest path from each ``start_vid`` in  ``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:133
+msgid "Using this signature, will load once the graph and perform several one to one `pgr_dijkstra` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:136
+#: ../../build/doc/pgr_bdDijkstraCost.rst:164
+msgid "The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:137
+#: ../../build/doc/pgr_bdDijkstraCost.rst:165
+msgid "The extra ``start_vid`` in the result is used to distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:150
+msgid "pgr_bdDijkstraCost Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:159
+msgid "This signature finds the shortest path from each ``start_vid`` in  ``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:161
+msgid "Using this signature, will load once the graph and perform several one to Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:167
+msgid "The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:178
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the starting vertex. Used when multiple starting vetrices are in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the ending vertex. Used when multiple ending vertices are in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:195
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:197
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:198
+msgid ":ref:`pgr_bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:199
+msgid "http://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/EPP%20shortest%20path%20algorithms.pdf"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:200
+msgid "https://en.wikipedia.org/wiki/Bidirectional_search"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:203
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:204
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:205
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_bdDijkstraCostMatrix.pot b/locale/pot/pgr_bdDijkstraCostMatrix.pot
new file mode 100644
index 0000000..2c915f3
--- /dev/null
+++ b/locale/pot/pgr_bdDijkstraCostMatrix.pot
@@ -0,0 +1,375 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:13
+msgid "pgr_bdDijkstraCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:18
+msgid "``pgr_bdDijkstraCostMatrix`` - Calculates the a cost matrix using :ref:`pgr_bdDijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:27
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:35
+msgid "Using Dijkstra algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:38
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:49
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:55
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:58
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:58
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:66
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:78
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:86
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:88
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:96
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:108
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:108
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:105
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:108
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:110
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:110
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:110
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:111
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:111
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:111
+msgid "Array of identifiers of the vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:112
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:112
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:112
+msgid "(optional). When ``false`` the graph is considered as Undirected. Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the starting vertex. Used when multiple starting vetrices are in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the ending vertex. Used when multiple ending vertices are in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:122
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:124
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:132
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:134
+msgid ":ref:`bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:135
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:136
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:137
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:140
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:141
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:142
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_biconnectedComponents.pot b/locale/pot/pgr_biconnectedComponents.pot
new file mode 100644
index 0000000..d4979bc
--- /dev/null
+++ b/locale/pot/pgr_biconnectedComponents.pot
@@ -0,0 +1,338 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:13
+msgid "pgr_biconnectedComponents - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:15
+msgid "``pgr_biconnectedComponents`` — Return the biconnected components of an undirected graph. In particular, the algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:31
+msgid "The biconnected components of an undirected graph are the maximal subsets of vertices such that the removal of a vertex from particular component will not disconnect the component. Unlike connected components, vertices may belong to multiple biconnected components. Vertices can be present in multiple biconnected components, but each edge can only be contained in a single biconnected component. So, the output only has edge version."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:36
+msgid "This implementation can only be used with an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:39
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:41
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:43
+msgid "Components are described by edges"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:45
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:47
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:48
+msgid "`edge` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:50
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:53
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:65
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:78
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:14
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the return values for biconnected components, connected components (edge version) and strongly connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, component, n_seq, edge)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Component identifier. It is equal to the minimum edge identifier in the component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:94
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:96
+msgid "http://en.wikipedia.org/wiki/Biconnected_component"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:97
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:100
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:101
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:102
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_boykovKolmogorov.pot b/locale/pot/pgr_boykovKolmogorov.pot
new file mode 100644
index 0000000..abff37c
--- /dev/null
+++ b/locale/pot/pgr_boykovKolmogorov.pot
@@ -0,0 +1,422 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:14
+msgid "pgr_boykovKolmogorov - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:18
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:20
+msgid "``pgr_boykovKolmogorov`` — Calculates the flow on the graph edges that maximizes the flow from the sources to the targets using Boykov Kolmogorov algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:29
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:30
+msgid "Renamed 2.5.0, Previous name pgr_maxFlowBoykovKolmogorov"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:31
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:8
+msgid "When the maximum flow is 0 then there is no flow and **EMPTY SET** is returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:12
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:15
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid "Creates a **super source** and edges to all the source(s), and a **super target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid "The maximum flow through the graph is guaranteed to be the value returned by :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:42
+msgid "Running time: Polynomial"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:45
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:61
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:63
+msgid "Calculates the flow on the graph edges that maximizes the flow from the `source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:82
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:84
+msgid "Calculates the flow on the graph edges that maximizes the flow from the `source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:103
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:105
+msgid "Calculates the flow on the graph edges that maximizes the flow from all of the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:124
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:126
+msgid "Calculates the flow on the graph edges that maximizes the flow from all of the `sources` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:141
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:4
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10
+#: ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:12
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:159
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:161
+msgid ":ref:`maxFlow`, :ref:`pgr_pushRelabel <pgr_pushRelabel>`, :ref:`pgr_EdmondsKarp <pgr_edmondsKarp>`"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:162
+msgid "http://www.boost.org/libs/graph/doc/boykov_kolmogorov_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:165
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:166
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:167
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_bridges.pot b/locale/pot/pgr_bridges.pot
new file mode 100644
index 0000000..6cd0fa2
--- /dev/null
+++ b/locale/pot/pgr_bridges.pot
@@ -0,0 +1,308 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bridges.rst:13
+msgid "pgr_bridges - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:16
+msgid "``pgr_bridges`` - Return the bridges of an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:31
+msgid "A bridge is an edge of an undirected graph whose deletion increases its number of connected components. This implementation can only be used with an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:36
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:38
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:40
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:42
+msgid "`edge` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:44
+msgid "Running time: :math:`O(E * (V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:47
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:59
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:72
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the return values for bridges"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:88
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:90
+msgid "http://en.wikipedia.org/wiki/Bridge_%28graph_theory%29"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:91
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:94
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:95
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:96
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_connectedComponents.pot b/locale/pot/pgr_connectedComponents.pot
new file mode 100644
index 0000000..fa72c21
--- /dev/null
+++ b/locale/pot/pgr_connectedComponents.pot
@@ -0,0 +1,337 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_connectedComponents.rst:13
+msgid "pgr_connectedComponents - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:16
+msgid "``pgr_connectedComponents`` — Return the connected components of an undirected graph using a DFS-based approach. In particular, the algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:22
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:30
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:32
+msgid "A connected component of an undirected graph is a set of vertices that are all reachable from each other. This implementation can only be used with an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:37
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:39
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:41
+msgid "Components are described by vertices"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:43
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:45
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:46
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:48
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:63
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:76
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the return values for connected components and strongly connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, component, n_seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Component identifier. It is equal to the minimum node identifier in the component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:92
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:94
+msgid "http://en.wikipedia.org/wiki/Connected_component_%28graph_theory%29"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:95
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:98
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:99
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:100
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_contractGraph.pot b/locale/pot/pgr_contractGraph.pot
new file mode 100644
index 0000000..fc56a16
--- /dev/null
+++ b/locale/pot/pgr_contractGraph.pot
@@ -0,0 +1,472 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_contractGraph.rst:13
+msgid "pgr_contractGraph - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:15
+msgid "``pgr_contractGraph`` — Performs graph contraction and returns the contracted vertices and edges."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:23
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:30
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:32
+msgid "Contraction reduces the size of the graph by removing some of the vertices and edges and, for example, might add edges that represent a sequence of original edges decreasing the total time and space used in graph algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:35
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:52
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:38
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:40
+msgid "There are two types of contraction methods used namely,"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:42
+msgid "Dead End Contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:43
+msgid "Linear Contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:45
+msgid "The values returned include the added edges and contracted vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:47
+msgid "The returned values are ordered as follows:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:49
+msgid "column `id` ascending when type = `v`"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:50
+msgid "column `id` descending when type = `e`"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:55
+msgid "Signature Summary:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:57
+msgid "The pgr_contractGraph function has the following signatures:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:68
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:74
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:80
+msgid "Making a dead end contraction and a linear contraction."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:87
+msgid "Complete signature"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:93
+msgid "Making a dead end contraction and a linear contraction and vertex 2 is forbidden from contraction"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_contractGraph.rst:109
+#: ../../build/doc/pgr_contractGraph.rst:130
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_contractGraph.rst:109
+#: ../../build/doc/pgr_contractGraph.rst:130
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_contractGraph.rst:109
+#: ../../build/doc/pgr_contractGraph.rst:130
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgr_contractGraph.rst:136
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_contractGraph.rst:146
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_contractGraph.rst:147
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_contractGraph.rst:148
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:106
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:111
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:111
+#: ../../build/doc/pgr_contractGraph.rst:133
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:111
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:112
+msgid "**contraction_order**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:112
+#: ../../build/doc/pgr_contractGraph.rst:115
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:113
+msgid "Ordered contraction operations."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:113
+msgid "1 = Dead end contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:114
+msgid "2 = Linear contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:115
+msgid "**forbidden_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:115
+msgid "(optional). Identifiers of vertices forbidden from contraction. Default is an empty array."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:116
+msgid "**max_cycles**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:116
+#: ../../build/doc/pgr_contractGraph.rst:132
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:116
+msgid "(optional). Number of times the contraction operations on `contraction_order` will be performed. Default is 1."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:117
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:117
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:117
+msgid "When ``true`` the graph is considered as `Directed`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:118
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:123
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:125
+msgid "RETURNS SETOF  (seq, type, id, contracted_vertices, source, target, cost)"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:127
+msgid "The function returns a single row. The columns of the row are:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:132
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:132
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:133
+msgid "**type**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:134
+msgid "Type of the `id`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:134
+msgid "'v' when `id` is an identifier of a vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:135
+msgid "'e' when `id` is an identifier of an edge."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:136
+#: ../../build/doc/pgr_contractGraph.rst:146
+#: ../../build/doc/pgr_contractGraph.rst:147
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:143
+msgid "Identifier of:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:137
+msgid "the  vertex when `type = 'v'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:139
+msgid "The vertex belongs to the edge_table passed as a parameter."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:140
+msgid "the edge when `type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:142
+msgid "The `id` is a decreasing sequence starting from **-1**."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:144
+msgid "Representing a pseudo `id` as is not incorporated into the edge_table."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:145
+msgid "**contracted_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:145
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:145
+msgid "Array of contracted vertex identifiers."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:146
+msgid "Identifier of the source vertex of the current edge `id`. Valid values when `type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:147
+msgid "Identifier of the target vertex of the current edge `id`. Valid values when `type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:148
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:148
+msgid "Weight of the edge (`source`, `target`). Valid values when `type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:152
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:154
+msgid "Only dead end contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:160
+msgid "Only linear contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:168
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:169
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:170
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_createTopology.pot b/locale/pot/pgr_createTopology.pot
new file mode 100644
index 0000000..f067a1a
--- /dev/null
+++ b/locale/pot/pgr_createTopology.pot
@@ -0,0 +1,338 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_createTopology.rst:13
+msgid "pgr_createTopology"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:18
+msgid "``pgr_createTopology`` — Builds a network topology based on the geometry information."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:22
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:24
+#: ../../build/doc/pgr_createTopology.rst:72
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:26
+msgid "``OK`` after the network topology has been built and the vertices table created."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:27
+msgid "``FAIL`` when the network topology was not built due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:42
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:45
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:46
+msgid "The topology creation function accepts the following parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:48
+msgid "``text`` Network table name. (may contain the schema name AS well)"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:49
+msgid "``float8`` Snapping tolerance of disconnected edges. (in projection unit)"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:50
+msgid "``text``  Geometry column name of the network table. Default value is ``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:51
+msgid "``text``  Primary key column name of the network table. Default value is ``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:52
+msgid "``text`` Source column name of the network table. Default value is ``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:53
+msgid "``text``  Target column name of the network table.  Default value is ``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:54
+msgid "``text``   Condition to SELECT a subset or rows.  Default value is ``true`` to indicate all rows that where ``source`` or ``target`` have a null value, otherwise the condition is used."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:56
+msgid "``boolean`` Clean any previous topology.  Default value is ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:60
+msgid "The ``edge_table`` will be affected"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:62
+msgid "The ``source`` column values will change."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:63
+msgid "The ``target`` column values will change."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:65
+msgid "An index will be created, if it doesn't exists, to speed up the process to the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:67
+msgid "``id``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:68
+msgid "``the_geom``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:69
+msgid "``source``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:70
+msgid "``target``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:74
+msgid "``OK`` after the network topology has been built."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:76
+msgid "Creates a vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:77
+msgid "Fills ``id`` and ``the_geom`` columns of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:78
+msgid "Fills the source and target columns of the edge table referencing the ``id`` of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:81
+msgid "``FAIL`` when the network topology was not built due to an error:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:83
+msgid "A required column of the Network table is not found or is not of the appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:84
+msgid "The condition is not well formed."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:85
+msgid "The names of source , target or id are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:86
+msgid "The SRID of the geometry could not be determined."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:90
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:91
+msgid "The vertices table is a requirement of the :ref:`pgr_analyzeGraph <pgr_analyze_graph>` and the :ref:`pgr_analyzeOneway <pgr_analyze_oneway>` functions."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:93
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:95
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:96
+msgid "``integer`` Number of vertices in the edge_table that reference this vertex. See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:97
+msgid "``integer``  Indicator that the vertex might have a problem. See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:98
+msgid "``integer`` Number of vertices in the edge_table that reference this vertex AS incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:99
+msgid "``integer`` Number of vertices in the edge_table that reference this vertex AS outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:100
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:103
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:104
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:107
+msgid "Usage when the edge table's columns MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:110
+msgid "The simplest way to use pgr_createTopology is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:118
+msgid "When the arguments are given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:119
+msgid "We get the same result AS the simplest way to use the function."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid "An error would occur when the arguments are not given in the appropriate order:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid "In this example, the column ``id`` of the table ``ege_table`` is passed to the function as the geometry column,"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid "and the geometry column ``the_geom`` is passed to the function as the id column."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:136
+#: ../../build/doc/pgr_createTopology.rst:205
+msgid "When using the named notation"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:137
+msgid "Parameters defined with a default value can be omitted, as long as the value matches the default And The order of the parameters would not matter."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:153
+#: ../../build/doc/pgr_createTopology.rst:219
+msgid "Selecting rows using rows_where parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:154
+msgid "Selecting rows based on the id."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:160
+msgid "Selecting the rows where the geometry is near the geometry of row with ``id = 5``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:166
+#: ../../build/doc/pgr_createTopology.rst:227
+msgid "Selecting the rows where the geometry is near the geometry of the row with ``gid`` =100 of the table ``othertable``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:176
+msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:178
+msgid "For the following table"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:185
+msgid "Using positional notation:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:186
+msgid "The arguments need to be given in the order described in the parameters."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:188
+msgid "Note that this example uses clean flag. So it recreates the whole vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid "An error would occur when the arguments are not given in the appropiriate order:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid "In this example, the column ``gid`` of the table ``mytable`` is passed to the function AS the geometry column,"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid "and the geometry column ``mygeom`` is passed to the function AS the id column."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:206
+msgid "In this scenario omitting a parameter would create an error because the default values for the column names do not match the column names of the table. The order of the parameters do not matter:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:220
+msgid "Based on id:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:235
+msgid "Examples with full output"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:237
+msgid "This example start a clean topology, with 5 edges, and then its incremented to the rest of the edges."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:243
+msgid "The example uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:247
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:249
+msgid ":ref:`topology` for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:250
+msgid ":ref:`pgr_create_vert_table` to reconstruct the vertices table based on the source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:251
+msgid ":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:254
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:255
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:256
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_createVerticesTable.pot b/locale/pot/pgr_createVerticesTable.pot
new file mode 100644
index 0000000..bdcd7fd
--- /dev/null
+++ b/locale/pot/pgr_createVerticesTable.pot
@@ -0,0 +1,293 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_createVerticesTable.rst:13
+msgid "pgr_createVerticesTable"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:18
+msgid "``pgr_createVerticesTable`` — Reconstructs the vertices table based on the source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:22
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:24
+#: ../../build/doc/pgr_createVerticesTable.rst:62
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:26
+#: ../../build/doc/pgr_createVerticesTable.rst:64
+msgid "``OK`` after the vertices table has been reconstructed."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:27
+#: ../../build/doc/pgr_createVerticesTable.rst:69
+msgid "``FAIL`` when the vertices table was not reconstructed due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:43
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:44
+msgid "The reconstruction of the vertices table  function accepts the following parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:46
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:47
+msgid "``text``  Geometry column name of the network table. Default value is ``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:48
+msgid "``text`` Source column name of the network table. Default value is ``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:49
+msgid "``text``  Target column name of the network table.  Default value is ``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:50
+msgid "``text``   Condition to SELECT a subset or rows.  Default value is ``true`` to indicate all rows."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:54
+msgid "The ``edge_table`` will be affected"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:56
+msgid "An index will be created, if it doesn't exists, to speed up the process to the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:58
+msgid "``the_geom``"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:59
+msgid "``source``"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:60
+msgid "``target``"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:66
+msgid "Creates a vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:67
+msgid "Fills ``id`` and ``the_geom`` columns of the vertices table based on the source and target columns of the edge table."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:71
+msgid "A required column of the Network table is not found or is not of the appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:72
+msgid "The condition is not well formed."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:73
+msgid "The names of source, target are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:74
+msgid "The SRID of the geometry could not be determined."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:77
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:78
+msgid "The vertices table is a requierment of the :ref:`pgr_analyzeGraph <pgr_analyze_graph>` and the :ref:`pgr_analyzeOneway <pgr_analyze_oneway>` functions."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:80
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:82
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:83
+msgid "``integer`` Number of vertices in the edge_table that reference this vertex. See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:84
+msgid "``integer``  Indicator that the vertex might have a problem. See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:85
+msgid "``integer`` Number of vertices in the edge_table that reference this vertex as incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:86
+msgid "``integer`` Number of vertices in the edge_table that reference this vertex as outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:87
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:90
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:91
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:94
+msgid "Usage when the edge table's columns MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:97
+msgid "The simplest way to use pgr_createVerticesTable is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:104
+msgid "When the arguments are given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:109
+msgid "We get the same result as the simplest way to use the function."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:111
+msgid "An error would occur when the arguments are not given in the appropriate order: In this example, the column source column ``source`` of the table ``mytable`` is passed to the function as the geometry column, and the geometry column ``the_geom`` is passed to the function as the source column."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:128
+#: ../../build/doc/pgr_createVerticesTable.rst:205
+msgid "When using the named notation"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:129
+#: ../../build/doc/pgr_createVerticesTable.rst:206
+msgid "The order of the parameters do not matter:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:139
+msgid "Parameters defined with a default value can be omitted, as long as the value matches the default:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:146
+#: ../../build/doc/pgr_createVerticesTable.rst:220
+msgid "Selecting rows using rows_where parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:147
+msgid "Selecting rows based on the id."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:153
+msgid "Selecting the rows where the geometry is near the geometry of row with ``id`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:159
+#: ../../build/doc/pgr_createVerticesTable.rst:243
+msgid "Selecting the rows where the geometry is near the geometry of the row with ``gid`` =100 of the table ``othertable``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:170
+msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:172
+msgid "For the following table"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:180
+msgid "Using positional notation:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:181
+msgid "The arguments need to be given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:0
+msgid "An error would occur when the arguments are not given in the appropriate order: In this example, the column ``src`` of the table ``mytable`` is passed to the function as the geometry column, and the geometry column ``mygeom`` is passed to the function as the source column."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:216
+msgid "In this scenario omitting a parameter would create an error because the default values for the column names do not match the column names of the table."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:221
+msgid "Selecting rows based on the gid."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:231
+msgid "Selecting the rows where the geometry is near the geometry of row with ``gid`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:260
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:282
+msgid "The example uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:286
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:288
+msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:289
+msgid ":ref:`pgr_createTopology <pgr_create_topology>` to create a topology based on the geometry."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:290
+msgid ":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge table."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:291
+msgid ":ref:`pgr_analyze_oneway` to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:294
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:295
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:296
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_dijkstra.pot b/locale/pot/pgr_dijkstra.pot
new file mode 100644
index 0000000..8660ec1
--- /dev/null
+++ b/locale/pot/pgr_dijkstra.pot
@@ -0,0 +1,565 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "``pgr_dijkstra`` — Returns the shortest path(s) using Dijkstra algorithm. In particular, the Dijkstra algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:24
+msgid "Availability"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:25
+msgid "pgr_dijkstra(one to one) 2.0.0, signature change 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:26
+msgid "pgr_dijkstra(other signatures) 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:31
+msgid "Dijkstra's algorithm, conceived by Dutch computer scientist Edsger Dijkstra in 1956. It is a graph search algorithm that solves the shortest path problem for a graph with non-negative edge path costs, producing a shortest path from a starting vertex (``start_vid``) to an ending vertex (``end_vid``). This implementation can be used with a directed graph and an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:38
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:60
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:41
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:42
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:44
+msgid "When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:46
+msgid "The `agg_cost` the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:48
+msgid "When the starting vertex and ending vertex are the different and there is no path:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:50
+msgid "The `agg_cost` the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:52
+msgid "For optimization purposes, any duplicated value in the `start_vids` or `end_vids` are ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:54
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:56
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:57
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:59
+msgid "Running time: :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:63
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:78
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:84
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:91
+msgid "The minimal signature is for a **directed** graph from one ``start_vid`` to one ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:104
+msgid "pgr_dijkstra One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:114
+msgid "This signature finds the shortest path from one ``start_vid`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:113
+#: ../../build/doc/pgr_dijkstra.rst:136
+#: ../../build/doc/pgr_dijkstra.rst:167
+#: ../../build/doc/pgr_dijkstra.rst:197
+msgid "on a **directed** graph when ``directed`` flag is missing or is set to ``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:114
+#: ../../build/doc/pgr_dijkstra.rst:137
+#: ../../build/doc/pgr_dijkstra.rst:168
+#: ../../build/doc/pgr_dijkstra.rst:198
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:127
+msgid "pgr_dijkstra One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:137
+msgid "This signature finds the shortest path from one ``start_vid`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:139
+msgid "Using this signature, will load once the graph and perform a one to one `pgr_dijkstra` where the starting vertex is fixed, and stop when all ``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:142
+msgid "The result is equivalent to the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:143
+msgid "The extra ``end_vid`` in the result is used to distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:158
+msgid "pgr_dijkstra Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:168
+msgid "This signature finds the shortest path from each ``start_vid`` in  ``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:170
+msgid "Using this signature, will load once the graph and perform several one to one `pgr_dijkstra` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:173
+#: ../../build/doc/pgr_dijkstra.rst:203
+msgid "The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:174
+#: ../../build/doc/pgr_dijkstra.rst:204
+msgid "The extra ``start_vid`` in the result is used to distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:188
+msgid "pgr_dijkstra Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:198
+msgid "This signature finds the shortest path from each ``start_vid`` in  ``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:200
+msgid "Using this signature, will load once the graph and perform several one to Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:206
+msgid "The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:215
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:225
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:230
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:230
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:230
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:231
+#: ../../build/doc/pgr_dijkstra.rst:233
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:231
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:232
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:232
+#: ../../build/doc/pgr_dijkstra.rst:234
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:232
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:233
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:233
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:234
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:234
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:236
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Path identifier. Has value **1** for the first of a path. Used when there are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Identifier of the starting vertex. Used when multiple starting vetrices are in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "Identifier of the ending vertex. Used when multiple ending vertices are in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "Identifier of the edge used to go from ``node`` to the next node in the path sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Cost to traverse from ``node`` using ``edge`` to the next node in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:248
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:250
+msgid "The examples of this section are based on the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:252
+msgid "The examples include combinations from starting vertices 2 and 11 to ending vertices 3 and 5 in a directed and undirected graph with and with out reverse_cost."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:256
+msgid "Examples for queries marked as ``directed`` with ``cost`` and ``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:258
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:267
+msgid "Examples for queries marked as ``undirected`` with ``cost`` and ``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:269
+msgid "The examples in this section use the following :ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:277
+msgid "Examples for queries marked as ``directed`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:279
+msgid "The examples in this section use the following :ref:`fig3`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:287
+msgid "Examples for queries marked as ``undirected`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:289
+msgid "The examples in this section use the following :ref:`fig4`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:297
+msgid "Equvalences between signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:299
+msgid "For queries marked as ``directed`` with ``cost`` and ``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:301
+#: ../../build/doc/pgr_dijkstra.rst:313
+msgid "The examples in this section use the following:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:303
+msgid ":ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:311
+msgid "For queries marked as ``undirected`` with ``cost`` and ``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:315
+msgid ":ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:324
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:326
+msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:327
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:330
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:331
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:332
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_dijkstraCost.pot b/locale/pot/pgr_dijkstraCost.pot
new file mode 100644
index 0000000..28938ad
--- /dev/null
+++ b/locale/pot/pgr_dijkstraCost.pot
@@ -0,0 +1,448 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstraCost.rst:13
+msgid "pgr_dijkstraCost"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:17
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:19
+msgid "``pgr_dijkstraCost``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:21
+msgid "Using Dijkstra algorithm implemented by Boost.Graph, and extract only the aggregate cost of the shortest path(s) found, for the combination of vertices given."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:27
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:30
+msgid "Availability"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:31
+msgid "pgr_dijkstraCost(all signatures) 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:33
+msgid "The ``pgr_dijkstraCost`` algorithm, is a good choice to calculate the sum of the costs of the shortest path for a subset of pairs of nodes of the graph. We make use of the Boost's implementation of dijkstra which runs in :math:`O(V \\log V + E)` time."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:39
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:71
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:42
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:43
+msgid "Returns the sum of the costs of the shortest path for pair combination of nodes in the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:44
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:45
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:47
+msgid "The returned values are in the form of a set of `(start_vid, end_vid, agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:49
+msgid "When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:51
+msgid "The `agg_cost` int the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:53
+msgid "When the starting vertex and ending vertex are the different and there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:55
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:57
+msgid "Let be the case the values returned are stored in a table, so the unique index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:60
+msgid "For undirected graphs, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:62
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:64
+msgid "Any duplicated value in the `start_vids` or `end_vids` is ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:66
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:68
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:69
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:71
+msgid "Running time: :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:74
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:89
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:95
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:97
+msgid "The minimal signature is for a **directed** graph from one ``start_vid`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:106
+msgid "Example"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:117
+msgid "pgr_dijkstraCost One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:122
+msgid "This signature performs a Dijkstra from one ``start_vid`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:121
+#: ../../build/doc/pgr_dijkstraCost.rst:150
+#: ../../build/doc/pgr_dijkstraCost.rst:176
+#: ../../build/doc/pgr_dijkstraCost.rst:201
+msgid "on a **directed** graph when ``directed`` flag is missing or is set to ``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:122
+#: ../../build/doc/pgr_dijkstraCost.rst:151
+#: ../../build/doc/pgr_dijkstraCost.rst:177
+#: ../../build/doc/pgr_dijkstraCost.rst:202
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:141
+msgid "pgr_dijkstraCost One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:152
+msgid "This signature performs a Dijkstra from one ``start_vid`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:167
+msgid "pgr_dijkstraCost Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:178
+msgid "This signature performs a Dijkstra from each ``start_vid`` in  ``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:192
+msgid "pgr_dijkstraCost Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:202
+msgid "This signature performs a Dijkstra from each ``start_vid`` in  ``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:213
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the starting vertex. Used when multiple starting vetrices are in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the ending vertex. Used when multiple ending vertices are in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:229
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:231
+msgid "Demonstration of repeated values are ignored, and result is sorted."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:237
+msgid "Making `start_vids` the same as `end_vids`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:246
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:248
+msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:249
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:252
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:253
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:254
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_dijkstraCostMatrix.pot b/locale/pot/pgr_dijkstraCostMatrix.pot
new file mode 100644
index 0000000..29054cb
--- /dev/null
+++ b/locale/pot/pgr_dijkstraCostMatrix.pot
@@ -0,0 +1,351 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:13
+msgid "pgr_dijkstraCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:18
+msgid "``pgr_dijkstraCostMatrix`` - Calculates the a cost matrix using pgr_dijktras."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:29
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:32
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:34
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:36
+msgid "Using Dijkstra algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:39
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:56
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:59
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:59
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:67
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:79
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:87
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:89
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:97
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:106
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:109
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:111
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:111
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:111
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:112
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:112
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:112
+msgid "Array of identifiers of the vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:113
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:113
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:113
+msgid "(optional). When ``false`` the graph is considered as Undirected. Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the starting vertex. Used when multiple starting vetrices are in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the ending vertex. Used when multiple ending vertices are in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:123
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:125
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:133
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:135
+msgid ":ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:136
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:137
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:138
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:141
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:142
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:143
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_dijkstraVia.pot b/locale/pot/pgr_dijkstraVia.pot
new file mode 100644
index 0000000..73a1d68
--- /dev/null
+++ b/locale/pot/pgr_dijkstraVia.pot
@@ -0,0 +1,451 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstraVia.rst:13
+msgid "pgr_dijkstraVia - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:19
+msgid "``pgr_dijkstraVia`` — Using dijkstra algorithm, it finds the route that goes through a list of vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:30
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:32
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:34
+msgid "Given a list of vertices and a graph, this function is equivalent to finding the shortest path between :math:`vertex_i` and :math:`vertex_{i+1}` for all :math:`i < size\\_of(vertex_via)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:37
+msgid "The paths represents the sections of the route."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:39
+msgid "This is a proposed function"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:42
+msgid "Signatrue Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:53
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:59
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:67
+msgid "Find the route that visits the vertices 1 3 9  in that order"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:77
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:86
+msgid "Find the route that visits the vertices 1 3 9  in that order on an undirected graph, avoiding U-turns when possible"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:94
+msgid "Description of the Signature"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:124
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:7
+#: ../../build/doc/pgr_dijkstraVia.rst:108
+#: ../../build/doc/pgr_dijkstraVia.rst:124
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:7
+#: ../../build/doc/pgr_dijkstraVia.rst:108
+#: ../../build/doc/pgr_dijkstraVia.rst:124
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_dijkstraVia.rst:133
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+#: ../../build/doc/pgr_dijkstraVia.rst:105
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:7
+#: ../../build/doc/pgr_dijkstraVia.rst:108
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:110
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:110
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:110
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgr_dijkstraVia.rst:111
+msgid "**via_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgr_dijkstraVia.rst:111
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Array of ordered vertices identifiers that are going to be visited."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgr_dijkstraVia.rst:112
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgr_dijkstraVia.rst:112
+#: ../../build/doc/pgr_dijkstraVia.rst:113
+#: ../../build/doc/pgr_dijkstraVia.rst:114
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_dijkstraVia.rst:113
+msgid "**strict**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``false``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "When ``false`` ignores missing paths returning all paths found"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "When ``true`` if a path is missing stops and returns `EMPTY SET`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgr_dijkstraVia.rst:114
+msgid "**U_turn_on_edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "When ``true`` departing from a visited vertex will not try to avoid using the edge used to reach it.  In other words, U turn using the edge with same `id` is allowed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "When ``false`` when a departing from a visited vertex tries to avoid using the edge used to reach it.  In other words, U turn using the edge with same `id` is used when no other path is found."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:111
+msgid "Array of vertices identifiers"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:112
+#: ../../build/doc/pgr_dijkstraVia.rst:114
+msgid "(optional) Default is true (is directed). When set to false the graph is considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:113
+msgid "(optional) ignores if a subsection of the route is missing and returns everything it found Default is true (is directed). When set to false the graph is considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:119
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:121
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:126
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:126
+#: ../../build/doc/pgr_dijkstraVia.rst:127
+#: ../../build/doc/pgr_dijkstraVia.rst:128
+#: ../../build/doc/pgr_dijkstraVia.rst:129
+#: ../../build/doc/pgr_dijkstraVia.rst:130
+#: ../../build/doc/pgr_dijkstraVia.rst:131
+#: ../../build/doc/pgr_dijkstraVia.rst:132
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:126
+msgid "Sequential value starting from 1."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:127
+msgid "**path_pid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:127
+msgid "Identifier of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:128
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:128
+msgid "Sequential value starting from 1 for the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:129
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:129
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:130
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:130
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:131
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:131
+msgid "Identifier of the node in the path from start_vid to end_vid."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:132
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:132
+msgid "Identifier of the edge used to go from node to the next node in the path sequence. -1 for the last node of the path. -2 for the last node of the route."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:133
+#: ../../build/doc/pgr_dijkstraVia.rst:134
+#: ../../build/doc/pgr_dijkstraVia.rst:135
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:133
+msgid "Cost to traverse from ``node`` using ``edge`` to the next node in the route sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:134
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:134
+msgid "Total cost from ``start_vid`` to ``end_vid`` of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:135
+msgid "**route_agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:135
+msgid "Total cost from ``start_vid`` of ``path_pid = 1`` to ``end_vid`` of the current ``path_pid`` ."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:140
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:142
+msgid "Find the route that visits the vertices 1 5 3 9 4 in that order"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:148
+msgid "What's the aggregate cost of the third path?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:154
+msgid "What's the route's aggregate cost of the route at the end of the third path?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:160
+msgid "How are the nodes visited in the route?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:166
+msgid "What are the aggregate costs of the route when the visited vertices are reached?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:172
+msgid "show the route's seq and aggregate cost and a status of \"passes in front\" or \"visits\" node 9"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:179
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:181
+msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:182
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:185
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:186
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:187
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_drivingDistance.pot b/locale/pot/pgr_drivingDistance.pot
new file mode 100644
index 0000000..e7effde
--- /dev/null
+++ b/locale/pot/pgr_drivingDistance.pot
@@ -0,0 +1,376 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_drivingDistance.rst:13
+msgid "pgr_drivingDistance"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:19
+msgid "``pgr_drivingDistance`` - Returns the driving distance from a start node."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:25
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:28
+msgid "Availability"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:29
+msgid "pgr_drivingDistance(single vertex) 2.0.0, signature change 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:30
+msgid "pgr_drivingDistance(multiple vertices) 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:35
+msgid "Using the Dijkstra algorithm, extracts all the nodes that have costs less than or equal to the value ``distance``. The edges extracted will conform to the corresponding spanning tree."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:39
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:57
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:70
+msgid "Driving Distance From A Single Starting Vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:82
+msgid "Driving Distance From Multiple Starting Vertices"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:90
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_drivingDistance.rst:101
+#: ../../build/doc/pgr_drivingDistance.rst:119
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_drivingDistance.rst:101
+#: ../../build/doc/pgr_drivingDistance.rst:119
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_drivingDistance.rst:101
+#: ../../build/doc/pgr_drivingDistance.rst:119
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_drivingDistance.rst:125
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:98
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:103
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:103
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:103
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:104
+#: ../../build/doc/pgr_drivingDistance.rst:122
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:104
+#: ../../build/doc/pgr_drivingDistance.rst:123
+#: ../../build/doc/pgr_drivingDistance.rst:124
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:104
+#: ../../build/doc/pgr_drivingDistance.rst:122
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:105
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:105
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:105
+msgid "Array of identifiers of the starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:106
+msgid "**distance**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:106
+#: ../../build/doc/pgr_drivingDistance.rst:125
+#: ../../build/doc/pgr_drivingDistance.rst:126
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:106
+msgid "Upper limit for the inclusion of the node in the result."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:107
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:107
+#: ../../build/doc/pgr_drivingDistance.rst:108
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:107
+msgid "(optional). When ``false`` the graph is considered as Undirected. Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:108
+msgid "**equicost**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:108
+msgid "(optional). When ``true`` the node will only appear in the closest ``start_vid`` list.  Default is ``false`` which resembles several calls using the single starting point signatures. Tie brakes are arbitrary."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:114
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:116
+msgid "Returns set of ``(seq [, start_v], node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:121
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:121
+#: ../../build/doc/pgr_drivingDistance.rst:122
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:121
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:123
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:123
+msgid "Identifier of the node in the path within the limits from ``start_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:124
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:124
+msgid "Identifier of the edge used to arrive to ``node``. ``0`` when the ``node`` is the ``start_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:125
+msgid "Cost to traverse ``edge``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:126
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:126
+msgid "Aggregate cost from ``start_vid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:132
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:135
+msgid "Examples for queries marked as ``directed`` with ``cost`` and ``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:137
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:144
+msgid "Examples for queries marked as ``undirected`` with ``cost`` and ``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:146
+msgid "The examples in this section use the following :ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:154
+msgid "Examples for queries marked as ``directed`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:156
+msgid "The examples in this section use the following :ref:`fig3`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:165
+msgid "Examples for queries marked as ``undirected`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:167
+msgid "The examples in this section use the following :ref:`fig4`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:175
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:177
+msgid ":ref:`pgr_alphashape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:178
+msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:179
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:182
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:183
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:184
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_edgeDisjointPaths.pot b/locale/pot/pgr_edgeDisjointPaths.pot
new file mode 100644
index 0000000..8d271db
--- /dev/null
+++ b/locale/pot/pgr_edgeDisjointPaths.pot
@@ -0,0 +1,508 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:14
+msgid "pgr_edgeDisjointPaths - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:19
+msgid "``pgr_edgeDisjointPaths`` — Calculates edge disjoint paths between two groups of vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:25
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:28
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:36
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:38
+msgid "Calculates the edge disjoint paths between two groups of vertices. Utilizes underlying maximum flow algorithms to calculate the paths."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:42
+msgid "Characteristics:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:49
+msgid "The main characterics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:45
+msgid "Calculates the edge disjoint paths between any two groups of vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:46
+msgid "Returns EMPTY SET when source and destination are the same, or cannot be reached."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:47
+msgid "The graph can be directed or undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:48
+msgid "One to many, many to one, many to many versions are also supported."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:49
+msgid "Uses :ref:`pgr_boykovKolmogorov` to calculate the paths."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:52
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:67
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:73
+msgid "Minimal use"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:81
+msgid "The minimal use is for a **directed** graph from one ``start_vid`` to one ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:93
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:98
+msgid "This signature finds the set of dijoint paths from one ``start_vid`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:96
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:120
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:149
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:175
+msgid "on a **directed** graph when ``directed`` flag is missing or is set to ``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:97
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:121
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:150
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:176
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:117
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:126
+msgid "This signature finds the sset of disjoint paths  from the ``start_vid`` to each one of the ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:122
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:151
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:177
+msgid "The result is equivalent to the union of the results of the one to one `pgr_edgeDisjointPaths`."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:123
+msgid "The extra ``end_vid`` in the result is used to distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:146
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:152
+msgid "This signature finds the set of disjoint paths from each one of the ``start_vid`` in ``start_vids`` to the ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:152
+msgid "The extra ``start_vid`` in the result is used to distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:172
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:178
+msgid "This signature finds the set of disjoint paths from each one of the ``start_vid`` in ``start_vids`` to each one of the ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:178
+msgid "The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:195
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Path identifier. Has value **1** for the first of a path. Used when there are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Identifier of the starting vertex. Used when multiple starting vetrices are in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "Identifier of the ending vertex. Used when multiple ending vertices are in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "Identifier of the edge used to go from ``node`` to the next node in the path sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Cost to traverse from ``node`` using ``edge`` to the next node in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:212
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:214
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:217
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:218
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:219
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_edmondsKarp.pot b/locale/pot/pgr_edmondsKarp.pot
new file mode 100644
index 0000000..dc05961
--- /dev/null
+++ b/locale/pot/pgr_edmondsKarp.pot
@@ -0,0 +1,426 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_edmondsKarp.rst:14
+msgid "pgr_edmondsKarp - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:18
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:20
+msgid "``pgr_edmondsKarp`` — Calculates the flow on the graph edges that maximizes the flow from the sources to the targets using Push Relabel Algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:29
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:30
+msgid "Renamed 2.5.0, Previous name pgr_maxFlowEdmondsKarp"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:31
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:8
+msgid "When the maximum flow is 0 then there is no flow and **EMPTY SET** is returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:12
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:15
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid "Creates a **super source** and edges to all the source(s), and a **super target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid "The maximum flow through the graph is guaranteed to be the value returned by :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:42
+msgid "Running time: :math:`O( V * E ^ 2)`"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:45
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:62
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:64
+msgid "Calculates the flow on the graph edges that maximizes the flow from the `source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:83
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:85
+msgid "Calculates the flow on the graph edges that maximizes the flow from the `source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:104
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:106
+msgid "Calculates the flow on the graph edges that maximizes the flow from all of the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:125
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:127
+msgid "Calculates the flow on the graph edges that maximizes the flow from all of the `sources` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:142
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:4
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10
+#: ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:12
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:160
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:162
+msgid ":ref:`maxFlow`, :ref:`pgr_boykovKolmogorov <pgr_boykovKolmogorov>`, :ref:`pgr_PushRelabel <pgr_pushRelabel>`"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:163
+msgid "http://www.boost.org/libs/graph/doc/edmonds_karp_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:164
+msgid "https://en.wikipedia.org/wiki/Edmonds%E2%80%93Karp_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:167
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:168
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:169
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_eucledianTSP.pot b/locale/pot/pgr_eucledianTSP.pot
new file mode 100644
index 0000000..a4784c4
--- /dev/null
+++ b/locale/pot/pgr_eucledianTSP.pot
@@ -0,0 +1,179 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_eucledianTSP.rst:13
+msgid "pgr_eucledianTSP"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:18
+msgid "``pgr_eucledianTSP`` - Returns a route that visits all the coordinates pairs exactly once."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:22
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:24
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:26
+msgid "The travelling salesman problem (TSP) or travelling salesperson problem asks the following question:"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:28
+msgid "Given a list of cities and the distances between each pair of cities, what is the shortest possible route that visits each city exactly once and returns to the origin city?"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:30
+msgid "This implementation uses simulated annealing to return the approximate solution when the input is given in the form of coordinates."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:33
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:48
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:54
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:63
+msgid "Because the documentation examples are auto generated and tested for non changing results, and the default is to have random execution, the example is wrapping the actual call."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:75
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:90
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:96
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:99
+msgid "Description of the coordinates SQL query"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:102
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:102
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:102
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:104
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:104
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:104
+msgid "Identifier of the coordinate. (optional)"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:105
+msgid "**x**"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:105
+#: ../../build/doc/pgr_eucledianTSP.rst:106
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:105
+msgid "X value of the coordinate."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:106
+msgid "**y**"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:106
+msgid "Y value of the coordinate."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:110
+msgid "When the value of **id** is not given then the coordinates will receive an **id** starting from 1, in the order given."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:125
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:127
+msgid "Skipping the Simulated Annealing & showing some process information"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:135
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:139
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:140
+msgid "New in version 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:145
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:147
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:148
+msgid "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:149
+msgid "http://en.wikipedia.org/wiki/Simulated_annealing"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:152
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:153
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:154
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_floydWarshall.pot b/locale/pot/pgr_floydWarshall.pot
new file mode 100644
index 0000000..a65f33f
--- /dev/null
+++ b/locale/pot/pgr_floydWarshall.pot
@@ -0,0 +1,330 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_floydWarshall.rst:13
+msgid "pgr_floydWarshall"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:16
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:18
+msgid "``pgr_floydWarshall`` - Returns the sum of the costs of the shortest path for each pair of nodes in the graph using Floyd-Warshall algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:27
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:28
+msgid "Renamed on 2.2.0, previous name pgr_apspWarshall"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:31
+msgid "The Floyd-Warshall algorithm, also known as Floyd's algorithm, is a good choice to calculate the sum of the costs of the shortest path for each pair of nodes in the graph, for *dense graphs*. We make use of the  Boost's implementation which runs in :math:`\\Theta(V^3)` time,"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:38
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:58
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:41
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:42
+msgid "Returns the sum of the costs of the shortest path for each pair of nodes in the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:43
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:44
+msgid "Boost returns a :math:`V \\times V` matrix, where the infinity values. Represent the distance between vertices for which there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:47
+msgid "We return only the non infinity values in form of a set of `(start_vid, end_vid, agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:49
+msgid "Let be the case the values returned are stored in a table, so the unique index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:52
+msgid "For the undirected graph, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:54
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:56
+msgid "When  `start_vid` = `end_vid`, the `agg_cost` = 0."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:58
+msgid "**Recommended, use a bounding box of no more than 3500 edges.**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:61
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:70
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:77
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:84
+msgid "On a directed graph."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:95
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:103
+msgid "On an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:110
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query (id is not necessary)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_floydWarshall.rst:136
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_floydWarshall.rst:123
+#: ../../build/doc/pgr_floydWarshall.rst:136
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_floydWarshall.rst:123
+#: ../../build/doc/pgr_floydWarshall.rst:136
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:118
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:120
+msgid "Receives  ``(edges_sql, directed)``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:123
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:125
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:125
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:125
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:126
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:126
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:126
+msgid "(optional) Default is true (is directed). When set to false the graph is considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:131
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:133
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:138
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:138
+#: ../../build/doc/pgr_floydWarshall.rst:139
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:138
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:139
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:139
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:140
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:140
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:140
+msgid "Total cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:148
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:149
+msgid "Re-design of pgr_apspWarshall in Version 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:152
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:154
+msgid ":ref:`pgr_johnson`"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:155
+msgid "`Boost floyd-Warshall <http://www.boost.org/libs/graph/doc/floyd_warshall_shortest.html>`_ algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:156
+msgid "Queries uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:159
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:160
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:161
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_gsoc_vrppdtw.pot b/locale/pot/pgr_gsoc_vrppdtw.pot
new file mode 100644
index 0000000..a4d272f
--- /dev/null
+++ b/locale/pot/pgr_gsoc_vrppdtw.pot
@@ -0,0 +1,355 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:13
+msgid "pgr_gsoc_vrppdtw - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:19
+msgid "``pgr_gsoc_vrppdtw`` — Returns a solution for `Pick and Delivery` with `time windows` Vehicle Routing Problem"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:27
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:36
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:43
+msgid "Complete signature"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:52
+msgid "Example: Show the id1"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:59
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:62
+msgid "Description of the sql query"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:65
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:89
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:102
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:65
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:89
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:102
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:65
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:89
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:102
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:67
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:67
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:81
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:82
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:67
+msgid "Identifier of the customer."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:69
+msgid "A value of ``0`` identifies the starting location"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:71
+msgid "**x**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:71
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:72
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:73
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:78
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:79
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:80
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:71
+msgid "``X`` coordinate of the location."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:72
+msgid "**y**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:72
+msgid "``Y`` coordinate of the location."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:73
+msgid "**demand**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:73
+msgid "How much is added / removed from the vehicle."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:75
+msgid "Negative value is a delivery,"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:76
+msgid "Positive value is a pickup,"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:78
+msgid "**openTime**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:78
+msgid "The time relative to 0, when the customer opens."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:79
+msgid "**closeTime**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:79
+msgid "The time relative to 0, when the customer closes."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:80
+msgid "**serviceTime**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:80
+msgid "The duration of the loading / unloading."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:81
+msgid "**pIndex**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:81
+msgid "Value used when the current customer is a Delivery to find the corresponding Pickup"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:82
+msgid "**dIndex**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:82
+msgid "Value used when the current customer is a Pickup to find the corresponding Delivery"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:86
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:91
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:91
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:91
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:92
+msgid "**vehicle_num**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:92
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:93
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:104
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:105
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:106
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:92
+msgid "Maximum number of vehicles in the result. (currently is ignored)"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:93
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:93
+msgid "Capacity of the vehicle."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:97
+msgid "Description of the result"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:99
+msgid "RETURNS SET OF pgr_costResult[]:"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:104
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:104
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:105
+msgid "**id1**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:105
+msgid "Current vehicle identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:106
+msgid "**id2**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:106
+msgid "Customer identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:107
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:107
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:107
+msgid "Previous ``cost`` plus `travel time` plus `wait time` plus `service time`."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:108
+msgid "when ``id2 = 0`` for the second time for the same ``id1``, then has the total time for the current ``id1``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:114
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:117
+msgid "Example: Total number of rows returned"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:123
+msgid "Example: Results for only id1 values: 1, 5, and 9"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:130
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:132
+msgid "The examples use :ref:`pickDeliverData`"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:133
+msgid "http://en.wikipedia.org/wiki/Vehicle_routing_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:136
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:137
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:138
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_johnson.pot b/locale/pot/pgr_johnson.pot
new file mode 100644
index 0000000..74514e9
--- /dev/null
+++ b/locale/pot/pgr_johnson.pot
@@ -0,0 +1,326 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_johnson.rst:13
+msgid "pgr_johnson"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:16
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:18
+msgid "``pgr_johnson`` - Returns the sum of the costs of the shortest path for each pair of nodes in the graph using Floyd-Warshall algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:27
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:28
+msgid "Renamed on 2.2.0, previous name pgr_apspJohnson"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:31
+msgid "The Johnson algorithm, is a good choice to calculate the sum of the costs of the shortest path for each pair of nodes in the graph, for *sparse graphs*. It usees the Boost's implementation which runs in :math:`O(V E \\log V)` time,"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:37
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:57
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:40
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:41
+msgid "Returns the sum of the costs of the shortest path for each pair of nodes in the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:42
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:43
+msgid "Boost returns a :math:`V \\times V` matrix, where the infinity values. Represent the distance between vertices for which there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:46
+msgid "We return only the non infinity values in form of a set of `(start_vid, end_vid, agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:48
+msgid "Let be the case the values returned are stored in a table, so the unique index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:51
+msgid "For the undirected graph, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:53
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:55
+msgid "When  `start_vid` = `end_vid`, the `agg_cost` = 0."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:60
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:69
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:76
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:83
+msgid "On a directed graph."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:94
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:102
+msgid "On an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:109
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query (id is not necessary)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_johnson.rst:135
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_johnson.rst:122
+#: ../../build/doc/pgr_johnson.rst:135
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_johnson.rst:122
+#: ../../build/doc/pgr_johnson.rst:135
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:117
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:119
+msgid "Receives  ``(edges_sql, directed)``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:122
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:124
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:124
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:124
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:125
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:125
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:125
+msgid "(optional) Default is true (is directed). When set to false the graph is considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:130
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:132
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:137
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:137
+#: ../../build/doc/pgr_johnson.rst:138
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:137
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:138
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:138
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:139
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:139
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:139
+msgid "Total cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:147
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:148
+msgid "Re-design of pgr_apspJohnson in Version 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:151
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:153
+msgid ":ref:`pgr_floydWarshall`"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:154
+msgid "`Boost Johnson <http://www.boost.org/libs/graph/doc/johnson_all_pairs_shortest.html>`_ algorithm implementation."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:155
+msgid "Queries uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:158
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:159
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:160
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_labelGraph.pot b/locale/pot/pgr_labelGraph.pot
new file mode 100644
index 0000000..05b28c4
--- /dev/null
+++ b/locale/pot/pgr_labelGraph.pot
@@ -0,0 +1,202 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_labelGraph.rst:15
+msgid "pgr_labelGraph - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:18
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:20
+msgid "``pgr_labelGraph`` — Locates and labels sub-networks within a network which are not topologically connected."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:28
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:30
+msgid "Must be run after ``pgr_createTopology()``. No use of ``geometry`` column. Only ``id``, ``source`` and  ``target`` columns are required."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:32
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:34
+msgid "``OK`` when a column with provided name has been generated and populated successfully. All connected edges will have unique similar integer values. In case of ``rows_where`` condition, non participating rows will have -1 integer values."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:35
+msgid "``FAIL`` when the processing cannot be finished due to some error. Notice will be thrown accordingly."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:36
+msgid "``rows_where condition generated 0 rows`` when passed SQL condition has not been fulfilled by any row."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:48
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:50
+msgid "A network behind any routing query may consist of sub-networks completely isolated from each other. Possible reasons could be:"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:52
+msgid "An island with no bridge connecting to the mainland."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:53
+msgid "An edge or mesh of edges failed to connect to other networks because of human negligence during data generation."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:54
+msgid "The data is not properly noded."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:55
+msgid "Topology creation failed to succeed."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:57
+msgid "pgr_labelGraph() will create an integer column (with the name provided by the user) and will assign same integer values to all those edges in the network which are connected topologically. Thus better analysis regarding network structure is possible. In case of ``rows_where`` condition, non participating rows will have -1 integer values."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:59
+msgid "Prerequisites: Must run ``pgr_createTopology()`` in order to generate ``source`` and ``target`` columns. Primary key column ``id`` should also be there in the network table."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:62
+msgid "Function accepts the following parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:64
+msgid "``text`` Network table name, with optional schema name."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:65
+msgid "``text`` Primary key column name of the network table. Default is ``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:66
+msgid "``text`` Source column name generated after ``pgr_createTopology()``. Default is ``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:67
+msgid "``text`` Target column name generated after ``pgr_createTopology()``. Default is ``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:68
+msgid "``text`` Column name which will hold the integer labels for each sub-graph. Default is ``subgraph``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:69
+msgid "``text`` The SQL where condition. Default is ``true``, means the processing will be done on the whole table."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:75
+msgid "Example Usage"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:77
+msgid "The sample data, has 3 subgraphs."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:85
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:87
+msgid "`pgr_createTopology <https://github.com/Zia-/pgrouting/blob/develop/src/common/sql/pgrouting_topology.sql>`_ to create the topology of a table based on its geometry and tolerance value."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:90
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:91
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:92
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_lineGraph.pot b/locale/pot/pgr_lineGraph.pot
new file mode 100644
index 0000000..7af23a7
--- /dev/null
+++ b/locale/pot/pgr_lineGraph.pot
@@ -0,0 +1,381 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_lineGraph.rst:13
+msgid "pgr_lineGraph - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:15
+msgid "``pgr_lineGraph`` — Transforms a given graph into its corresponding edge-based graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:31
+msgid "Given a graph G, its line graph L(G) is a graph such that:-"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:33
+msgid "each vertex of L(G) represents an edge of G"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:34
+msgid "two vertices of L(G) are adjacent if and only if their corresponding edges share a common endpoint in G."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:36
+msgid "The following figures show a graph (left, with blue vertices) and its Line Graph (right, with green vertices)."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:39
+msgid "|first|"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:45
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:55
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:61
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:68
+msgid "The minimal signature is for a **directed** graph:"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:81
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:90
+msgid "This signature returns the Line Graph of the current graph:"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:89
+msgid "on a **directed** graph when ``directed`` flag is missing or is set to ``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:90
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:101
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_lineGraph.rst:112
+#: ../../build/doc/pgr_lineGraph.rst:125
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_lineGraph.rst:112
+#: ../../build/doc/pgr_lineGraph.rst:125
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_lineGraph.rst:112
+#: ../../build/doc/pgr_lineGraph.rst:125
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_lineGraph.rst:129
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_lineGraph.rst:133
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_lineGraph.rst:137
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_lineGraph.rst:141
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:109
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:114
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:114
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:114
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:115
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:115
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:115
+msgid "When ``true`` the graph is considered as `Directed`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:116
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:120
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:122
+msgid "RETURNS SETOF  (seq, source, target, cost, reverse_cost)"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:127
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:127
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:127
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:129
+#: ../../build/doc/pgr_lineGraph.rst:133
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:129
+msgid "Identifier of the source vertex of the current edge `id`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:131
+msgid "When `negative`: the source is the reverse edge in the original graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:133
+msgid "Identifier of the target vertex of the current edge `id`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:135
+msgid "When `negative`: the target is the reverse edge in the original graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:137
+#: ../../build/doc/pgr_lineGraph.rst:141
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:137
+msgid "Weight of the edge (`source`, `target`)."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:139
+msgid "When `negative`: edge (`source`, `target`) does not exist, therefore it’s not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:141
+msgid "Weight of the edge (`target`, `source`)."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:143
+msgid "When `negative`: edge (`target`, `source`) does not exist, therefore it’s not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:147
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:154
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:156
+msgid "https://en.wikipedia.org/wiki/Line_graph"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:157
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:160
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:161
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:162
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_maxCardinalityMatch.pot b/locale/pot/pgr_maxCardinalityMatch.pot
new file mode 100644
index 0000000..66c453d
--- /dev/null
+++ b/locale/pot/pgr_maxCardinalityMatch.pot
@@ -0,0 +1,351 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:13
+msgid "pgr_maxCardinalityMatch - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:17
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:19
+msgid "``pgr_maxCardinalityMatch`` — Calculates a maximum cardinality matching in a graph."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:29
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:32
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:33
+msgid "Renamed 2.5.0, Previous name pgr_maximumCardinalityMatching"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:34
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:38
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:39
+msgid "A matching or independent edge set in a graph is a set of edges without common vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:40
+msgid "A maximum matching is a matching that contains the largest possible number of edges."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:42
+msgid "There may be many maximum matchings."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:43
+msgid "Calculates **one** possible maximum cardinality matching in a graph."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:45
+msgid "The graph can be **directed** or **undirected**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:46
+msgid "Running time: :math:`O( E*V * \\alpha(E,V))`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:48
+msgid ":math:`\\alpha(E,V)` is the inverse of the `Ackermann function`_."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:54
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:71
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:78
+msgid "The minimal use calculates one possible maximum cardinality matching on a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:90
+msgid "Complete signature"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:98
+msgid "The complete signature calculates one possible maximum cardinality matching."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:109
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:113
+msgid "Description of the SQL query"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:115
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:118
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:136
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:146
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:118
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:136
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:146
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:118
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:136
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:146
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:120
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:120
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:121
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:122
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:120
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:121
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:150
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:121
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:122
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:151
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:122
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:123
+msgid "**going**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:123
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:124
+msgid "``ANY-NUMERIC``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:123
+msgid "A positive value represents the existence of the edge (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:124
+msgid "**coming**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:124
+msgid "A positive value represents the existence of the edge (target, source)."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:127
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:129
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:130
+msgid "SMALLINT, INTEGER, BIGINT, REAL, DOUBLE PRECISION"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:133
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:138
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:138
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:138
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:139
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:139
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:139
+msgid "(optional) Determines the type of the graph. Default TRUE."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:143
+msgid "Description of the Result"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:148
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:148
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:148
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:149
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:149
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:150
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:151
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:149
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:150
+msgid "Identifier of the first end point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:151
+msgid "Identifier of the second end point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:155
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:157
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:158
+msgid "http://www.boost.org/libs/graph/doc/maximum_matching.html"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:159
+msgid "https://en.wikipedia.org/wiki/Matching_%28graph_theory%29"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:160
+msgid "https://en.wikipedia.org/wiki/Ackermann_function"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:163
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:164
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:165
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_maxFlow.pot b/locale/pot/pgr_maxFlow.pot
new file mode 100644
index 0000000..c2a1566
--- /dev/null
+++ b/locale/pot/pgr_maxFlow.pot
@@ -0,0 +1,353 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "pgr_maxFlow - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:17
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:19
+msgid "``pgr_maxFlow`` — Calculates the maximum flow in a directed graph from the source(s) to the targets(s) using the Push Relabel algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:25
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:28
+msgid "Availability: 2.4.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:35
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:36
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:37
+msgid "When the maximum flow is 0 then there is no flow and **0** is returned."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:39
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:41
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:42
+msgid "Uses the :ref:`pgr_pushRelabel <pgr_pushRelabel>` algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:44
+msgid "Running time: :math:`O( V ^ 3)`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:47
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:62
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:64
+msgid "Calculates the maximum flow from the `source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:82
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:84
+msgid "Calculates the maximum flow from the `source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:102
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:104
+msgid "Calculates the maximum flow from all the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:122
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:124
+msgid "Calculates the maximum flow from all of the `sources` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:138
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152
+#: ../../build/doc/pgr_maxFlow.rst:169
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152
+#: ../../build/doc/pgr_maxFlow.rst:169
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:155
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:157
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:149
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:154
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:154
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:154
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:155
+#: ../../build/doc/pgr_maxFlow.rst:157
+#: ../../build/doc/pgr_maxFlow.rst:171
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:155
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:156
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:156
+#: ../../build/doc/pgr_maxFlow.rst:158
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:156
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:157
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:158
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:158
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:166
+msgid "Description of the return value"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:171
+msgid "Maximum flow possible from the source(s) to the target(s)"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:175
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:177
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:178
+msgid "http://www.boost.org/libs/graph/doc/push_relabel_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:179
+msgid "https://en.wikipedia.org/wiki/Push%E2%80%93relabel_maximum_flow_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:182
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:183
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:184
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_nodeNetwork.pot b/locale/pot/pgr_nodeNetwork.pot
new file mode 100644
index 0000000..321b052
--- /dev/null
+++ b/locale/pot/pgr_nodeNetwork.pot
@@ -0,0 +1,306 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_nodeNetwork.rst:13
+msgid "pgr_nodeNetwork"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:18
+msgid "``pgr_nodeNetwork`` - Nodes an network edge table."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:20
+msgid "Nicolas Ribot"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:21
+msgid "Nicolas Ribot, The source code is released under the MIT-X license."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:27
+msgid "The function reads edges from a not \"noded\" network table and writes the \"noded\" edges into a new table."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:39
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:41
+msgid "A common problem associated with bringing GIS data into pgRouting is the fact that the data is often not \"noded\" correctly. This will create invalid topologies, which will result in routes that are incorrect."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:43
+msgid "What we mean by \"noded\" is that at every intersection in the road network all the edges will be broken into separate road segments. There are cases like an over-pass and under-pass intersection where you can not traverse from the over-pass to the under-pass, but this function does not have the ability to detect and accommodate those situations."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:45
+msgid "This function reads the ``edge_table`` table, that has a primary key column ``id`` and geometry column named ``the_geom`` and intersect all the segments in it against all the other segments and then creates a table ``edge_table_noded``. It uses the ``tolerance`` for deciding that multiple nodes within the tolerance are considered the same node."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:47
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:49
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:50
+msgid "``float8`` tolerance for coincident points (in projection unit)dd"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:51
+msgid "``text`` Primary key column name of the network table. Default value is ``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:52
+msgid "``text`` Geometry column name of the network table. Default value is ``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:53
+msgid "``text`` Suffix for the new table's. Default value is ``noded``."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:55
+msgid "The output table will have for  ``edge_table_noded``"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:57
+msgid "``bigint`` Unique identifier for the table"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:58
+msgid "``bigint``  Identifier of the edge in original table"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:59
+msgid "``integer`` Segment number of the original edge"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:60
+msgid "``integer`` Empty source column to be used with  :ref:`pgr_create_topology` function"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:61
+msgid "``integer`` Empty target column to be used with  :ref:`pgr_create_topology` function"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:62
+msgid "``geometry`` Geometry column of the noded network"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:65
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:66
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:70
+msgid "Example"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:72
+msgid "Let's create the topology for the data in :doc:`sampledata`"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:90
+msgid "Now we can analyze the network."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:114
+msgid "The analysis tell us that the network has a gap and an intersection. We try to fix the problem using:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:136
+msgid "Inspecting the generated table, we can see that edges 13,14 and 18 has been segmented"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:166
+msgid "We can create the topology of the new network"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:184
+msgid "Now let's analyze the new topology"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:210
+msgid "Images"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:243
+msgid "Comparing the results"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:245
+msgid "Comparing with the Analysis in the original edge_table, we see that."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:248
+msgid "Before"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:248
+msgid "After"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:250
+msgid "Table name"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:250
+msgid "edge_table"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:250
+msgid "edge_table_noded"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:252
+msgid "Fields"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:252
+msgid "All original fields"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:252
+msgid "Has only basic fields to do a topology analysis"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:254
+msgid "Dead ends"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:254
+msgid "Edges with 1 dead end: 1,6,24"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:255
+msgid "Edges with 2 dead ends  17,18"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:257
+msgid "Edge 17's right node is a dead end because there is no other edge sharing that same node. (cnt=1)"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:254
+msgid "Edges with 1 dead end: 1-1 ,6-1,14-2, 18-1 17-1 18-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:261
+msgid "Isolated segments"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:261
+msgid "two isolated segments:  17 and 18 both they have 2 dead ends"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:262
+msgid "No Isolated segments"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:262
+msgid "Edge 17 now shares a node with edges 14-1 and 14-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:263
+msgid "Edges 18-1 and 18-2 share a node with edges 13-1 and 13-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:265
+msgid "Gaps"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:265
+msgid "There is a gap between edge 17 and 14 because edge 14 is near to the right node of edge 17"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:265
+msgid "Edge 14 was segmented Now edges: 14-1 14-2 17 share the same node The tolerance value was taken in account"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:269
+msgid "Intersections"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:269
+msgid "Edges 13 and 18 were intersecting"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:269
+msgid "Edges were segmented, So, now in the interection's point there is a node and the following edges share it: 13-1 13-2 18-1 18-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:274
+msgid "Now, we are going to include the segments 13-1, 13-2 14-1, 14-2 ,18-1 and 18-2 into our edge-table, copying the data for dir,cost,and reverse cost with tho following steps:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:276
+msgid "Add a column old_id into edge_table, this column is going to keep track the id of the original edge"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:277
+msgid "Insert only the segmented edges, that is, the ones whose max(sub_id) >1"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:290
+msgid "We recreate the topology:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:310
+msgid "To get the same analysis results as the topology of edge_table_noded, we do the following query:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:337
+msgid "To get the same analysis results as the original edge_table, we do the following query:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:362
+msgid "Or we can analyze everything because, maybe edge 18 is an overpass, edge 14 is an under pass and there is also a street level juction, and the same happens with edges 17 and 13."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:389
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:391
+msgid ":ref:`topology` for an overview of a topology for routing algorithms. :ref:`pgr_analyze_oneway` to analyze directionality of the edges. :ref:`pgr_create_topology` to create a topology based on the geometry. :ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge table."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:397
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:398
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:399
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_pointsAsPolygon.pot b/locale/pot/pgr_pointsAsPolygon.pot
new file mode 100644
index 0000000..e373ff9
--- /dev/null
+++ b/locale/pot/pgr_pointsAsPolygon.pot
@@ -0,0 +1,118 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:13
+msgid "pgr_pointsAsPolygon"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:21
+msgid "``pgr_pointsAsPolygon`` — Draws an alpha shape around given set of points."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:27
+msgid "Returns the alpha shape as (multi)polygon geometry."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:35
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:37
+msgid "``text`` a SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:43
+msgid "``int4`` identifier of the vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:44
+msgid "``float8`` x-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:45
+msgid "``float8`` y-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:47
+msgid "(optional) ``float8`` alpha value. If specified alpha value equals 0 (default), then optimal alpha value is used. For more information, see `CGAL - 2D Alpha Shapes <http://doc.cgal.org/latest/Alpha_shapes_2/group__PkgAlphaShape2.html>`_."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:50
+msgid "Returns a (multi)polygon geometry (with holes)."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:54
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:55
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:56
+msgid "Added alpha argument with default 0 (use optimal value) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:57
+msgid "Supported to return a (multi)polygon geometry (with holes) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:61
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:62
+msgid "In the following query there is no way to control which point in the polygon is the first in the list, so you may get similar but different results than the following which are also correct."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:69
+msgid "The query use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:73
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:75
+msgid ":ref:`pgr_drivingDistance` - Driving Distance"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:76
+msgid ":ref:`pgr_alphashape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:79
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:80
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:81
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_pushRelabel.pot b/locale/pot/pgr_pushRelabel.pot
new file mode 100644
index 0000000..b8cf3fe
--- /dev/null
+++ b/locale/pot/pgr_pushRelabel.pot
@@ -0,0 +1,426 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_pushRelabel.rst:14
+msgid "pgr_pushRelabel - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:18
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:20
+msgid "``pgr_pushRelabel`` — Calculates the flow on the graph edges that maximizes the flow from the sources to the targets using Push Relabel Algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:29
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:30
+msgid "Renamed 2.5.0, Previous name pgr_maxFlowPushRelabel"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:31
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:8
+msgid "When the maximum flow is 0 then there is no flow and **EMPTY SET** is returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:12
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:15
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid "Creates a **super source** and edges to all the source(s), and a **super target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid "The maximum flow through the graph is guaranteed to be the value returned by :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:41
+msgid "Running time: :math:`O( V ^ 3)`"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:44
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:60
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:62
+msgid "Calculates the flow on the graph edges that maximizes the flow from the `source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:81
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:83
+msgid "Calculates the flow on the graph edges that maximizes the flow from the `source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:102
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:104
+msgid "Calculates the flow on the graph edges that maximizes the flow from all of the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:123
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:125
+msgid "Calculates the flow on the graph edges that maximizes the flow from all of the `sources` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:140
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:4
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10
+#: ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:12
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:158
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:160
+msgid ":ref:`maxFlow`, :ref:`pgr_boykovKolmogorov <pgr_boykovKolmogorov>`, :ref:`pgr_edmondsKarp <pgr_edmondsKarp>`"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:161
+msgid "http://www.boost.org/libs/graph/doc/push_relabel_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:162
+msgid "https://en.wikipedia.org/wiki/Push%E2%80%93relabel_maximum_flow_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:165
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:166
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:167
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_strongComponents.pot b/locale/pot/pgr_strongComponents.pot
new file mode 100644
index 0000000..b024c15
--- /dev/null
+++ b/locale/pot/pgr_strongComponents.pot
@@ -0,0 +1,337 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_strongComponents.rst:13
+msgid "pgr_strongComponents - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:15
+msgid "``pgr_strongComponents`` — Return the strongly connected components of a directed graph using Tarjan's algorithm based on DFS. In particular, the algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:31
+msgid "A strongly connected component of a directed graph is a set of vertices that are all reachable from each other. This implementation can only be used with a directed graph."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:36
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:38
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:40
+msgid "Components are described by vertices"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:42
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:44
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:45
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:47
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:62
+msgid "The signature is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:75
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the return values for connected components and strongly connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, component, n_seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Component identifier. It is equal to the minimum node identifier in the component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:91
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:93
+msgid "http://en.wikipedia.org/wiki/Strongly_connected_component"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:94
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:97
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:98
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:99
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_trsp.pot b/locale/pot/pgr_trsp.pot
new file mode 100644
index 0000000..e9b4ac0
--- /dev/null
+++ b/locale/pot/pgr_trsp.pot
@@ -0,0 +1,262 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_trsp.rst:13
+msgid "pgr_trsp - Turn Restriction Shortest Path (TRSP)"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:22
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:24
+msgid "``pgr_trsp`` — Returns the shortest path with support for turn restrictions."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:28
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:30
+msgid "The turn restricted shorthest path (TRSP) is a shortest path algorithm that can optionally take into account complicated turn restrictions like those found in real world navigable road networks. Performamnce wise it is nearly as fast as the A* search but has many additional features like it works with edges rather than the nodes of the network. Returns a set of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows, that make up a path."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:57
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:59
+msgid "The Turn Restricted Shortest Path algorithm (TRSP) is similar to the shooting star in that you can specify turn restrictions."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:61
+msgid "The TRSP setup is mostly the same as :ref:`Dijkstra shortest path <pgr_dijkstra>` with the addition of an optional turn restriction table. This provides an easy way of adding turn restrictions to a road network by placing them in a separate table."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:64
+#: ../../build/doc/pgr_trsp.rst:120
+msgid "a SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:71
+#: ../../build/doc/pgr_trsp.rst:127
+msgid "``int4`` identifier of the edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:72
+#: ../../build/doc/pgr_trsp.rst:128
+msgid "``int4`` identifier of the source vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:73
+#: ../../build/doc/pgr_trsp.rst:129
+msgid "``int4`` identifier of the target vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:74
+#: ../../build/doc/pgr_trsp.rst:130
+msgid "``float8`` value, of the edge traversal cost. A negative cost will prevent the edge from being inserted in the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:75
+#: ../../build/doc/pgr_trsp.rst:131
+msgid "(optional) the cost for the reverse traversal of the edge. This is only used when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the above remark about negative costs)."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:77
+msgid "``int4`` **NODE id** of the start point"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:78
+msgid "``int4`` **NODE id** of the end point"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:79
+#: ../../build/doc/pgr_trsp.rst:134
+msgid "``true`` if the graph is directed"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:80
+#: ../../build/doc/pgr_trsp.rst:135
+msgid "if ``true``, the ``reverse_cost`` column of the SQL generated set of rows will be used for the cost of the traversal of the edge in the opposite direction."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:82
+#: ../../build/doc/pgr_trsp.rst:137
+msgid "(optional) a SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:88
+#: ../../build/doc/pgr_trsp.rst:143
+msgid "``float8`` turn restriction cost"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:89
+#: ../../build/doc/pgr_trsp.rst:144
+msgid "``int4`` target id"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:90
+msgid "``text`` comma separated list of edges in the reverse order of ``rule``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:92
+msgid "Another variant of TRSP allows to specify **EDGE id** of source and target together with a fraction to interpolate the position:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:94
+msgid "``int4`` **EDGE id** of the start edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:95
+msgid "``float8`` fraction of 1 defines the position on the start edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:96
+msgid "``int4`` **EDGE id** of the end edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:97
+msgid "``float8`` fraction of 1 defines the position on the end edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:99
+#: ../../build/doc/pgr_trsp.rst:152
+msgid "Returns set of :ref:`type_cost_result`:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:101
+#: ../../build/doc/pgr_trsp.rst:154
+msgid "row sequence"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:102
+#: ../../build/doc/pgr_trsp.rst:156
+msgid "node ID"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:103
+#: ../../build/doc/pgr_trsp.rst:157
+msgid "edge ID (``-1`` for the last row)"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:104
+msgid "cost to traverse from ``id1`` using ``id2``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:107
+#: ../../build/doc/pgr_trsp.rst:162
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:108
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:111
+msgid "Support for Vias"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:113
+msgid "The Support for Vias functions are prototypes. Not all corner cases are being considered."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:116
+msgid "We also have support for vias where you can say generate a from A to B to C, etc. We support both methods above only you pass an array of vertices or and array of edges and percentage position along the edge in two arrays."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:133
+msgid "``int4[]`` An ordered array of **NODE id** the path will go through from start to end."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:145
+msgid "``text`` commar separated list of edges in the reverse order of ``rule``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:147
+msgid "Another variant of TRSP allows to specify **EDGE id** together with a fraction to interpolate the position:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:149
+msgid "``int4`` An ordered array of **EDGE id** that the path has to traverse"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:150
+msgid "``float8`` An array of fractional positions along the respective edges in ``eids``, where 0.0 is the start of the edge and 1.0 is the end of the eadge."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:155
+msgid "route ID"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:158
+msgid "cost to traverse from ``id2`` using ``id3``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:163
+msgid "Via Support prototypes new in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:166
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:168
+msgid "**Without turn restrictions**"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:175
+msgid "**With turn restrictions**"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:177
+msgid "Then a query with turn restrictions is created as:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:184
+msgid "An example query using vertex ids and via points:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:191
+msgid "An example query using edge ids and vias:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:198
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:202
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:204
+msgid ":ref:`type_cost_result`"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:207
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:208
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:209
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_version.pot b/locale/pot/pgr_version.pot
new file mode 100644
index 0000000..67eb04b
--- /dev/null
+++ b/locale/pot/pgr_version.pot
@@ -0,0 +1,139 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_version.rst:13
+msgid "pgr_version"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:21
+msgid "``pgr_version`` — Query for pgRouting version information."
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:27
+msgid "Returns a table with pgRouting version information."
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:35
+#: ../../build/doc/pgr_version.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:37
+msgid "Returns a table with:"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:40
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:40
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:42
+msgid "**version**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:42
+#: ../../build/doc/pgr_version.rst:43
+#: ../../build/doc/pgr_version.rst:44
+#: ../../build/doc/pgr_version.rst:45
+#: ../../build/doc/pgr_version.rst:46
+msgid "``varchar``"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:42
+msgid "pgRouting version"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:43
+msgid "**tag**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:43
+msgid "Git tag of pgRouting build"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:44
+msgid "**hash**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:44
+msgid "Git hash of pgRouting build"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:45
+msgid "**branch**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:45
+msgid "Git branch of pgRouting build"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:46
+msgid "**boost**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:46
+msgid "Boost version"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:51
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:52
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:56
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:58
+msgid "Query for full version string"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:66
+msgid "Query for ``version`` and ``boost`` attribute"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:78
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:81
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:82
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:83
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_vrpOneDepot.pot b/locale/pot/pgr_vrpOneDepot.pot
new file mode 100644
index 0000000..737d43f
--- /dev/null
+++ b/locale/pot/pgr_vrpOneDepot.pot
@@ -0,0 +1,118 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:14
+msgid "pgr_vrpOneDepot - Experimental"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:21
+msgid "**No documentation available**"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:24
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:28
+msgid "Current Result"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:34
+msgid "Data"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:41
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:43
+msgid "http://en.wikipedia.org/wiki/Vehicle_routing_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:46
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:47
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:48
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_withPoints.pot b/locale/pot/pgr_withPoints.pot
new file mode 100644
index 0000000..5475882
--- /dev/null
+++ b/locale/pot/pgr_withPoints.pot
@@ -0,0 +1,630 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPoints.rst:13
+msgid "pgr_withPoints - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:19
+msgid "``pgr_withPoints`` - Returns the shortest path in a graph with additional temporary vertices."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:33
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:37
+msgid "Modify the graph to include points defined by points_sql. Using Dijkstra algorithm, find the shortest path(s)"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:41
+msgid "Characteristics:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:43
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:45
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:46
+msgid "Vertices of the graph are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:48
+msgid "**positive** when it belongs to the edges_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:49
+msgid "**negative** when it belongs to the points_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:51
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:53
+msgid "When the starting vertex and ending vertex are the same, there is no path. - The agg_cost the non included values (v, v) is 0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:56
+msgid "When the starting vertex and ending vertex are the different and there is no path: - The agg_cost the non included values (u, v) is ∞"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:59
+msgid "For optimization purposes, any duplicated value in the start_vids or end_vids are ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:60
+msgid "The returned values are ordered: - start_vid ascending - end_vid ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:64
+msgid "Running time: :math:`O(|start\\_vids|\\times(V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:68
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:81
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:87
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:92
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:90
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:91
+msgid "The driving side is set as **b** both. So arriving/departing to/from the point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:92
+msgid "No **details** are given about distance of other points of points_sql query."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:100
+msgid "From point 1 to point 3"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:110
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:120
+msgid "From point 1 to vertex 3"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:132
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:141
+msgid "From point 1 to point 3 and vertex 5"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:153
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:162
+msgid "From point 1 and vertex 2  to point 3"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:172
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:182
+msgid "From point 1 and vertex 2  to point 3 and vertex 7"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:192
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPoints.rst:236
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPoints.rst:211
+#: ../../build/doc/pgr_withPoints.rst:236
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPoints.rst:211
+#: ../../build/doc/pgr_withPoints.rst:236
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPoints.rst:215
+#: ../../build/doc/pgr_withPoints.rst:216
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_withPoints.rst:249
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "Value in <0,1> that indicates the relative postition from the first end point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPoints.rst:220
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPoints.rst:222
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPoints.rst:223
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:207
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:211
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:213
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:213
+#: ../../build/doc/pgr_withPoints.rst:214
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:213
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:214
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:214
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:215
+#: ../../build/doc/pgr_withPoints.rst:240
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:215
+msgid "Starting vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:216
+#: ../../build/doc/pgr_withPoints.rst:241
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:216
+msgid "Ending vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:217
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:217
+#: ../../build/doc/pgr_withPoints.rst:218
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:217
+msgid "Array of identifiers of starting vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:218
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:218
+msgid "Array of identifiers of ending vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:219
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:219
+#: ../../build/doc/pgr_withPoints.rst:225
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:219
+msgid "(optional). When ``false`` the graph is considered as Undirected. Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:220
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:223
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:221
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:225
+msgid "**details**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:225
+msgid "(optional). When ``true`` the results will include the points in points_sql that are in the path. Default is ``false`` which ignores other points of the points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:231
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:233
+msgid "Returns set of ``(seq, [path_seq,] [start_vid,] [end_vid,] node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:238
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:238
+#: ../../build/doc/pgr_withPoints.rst:239
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:238
+msgid "Row sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:239
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:239
+msgid "Path sequence that indicates the relative position on the path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:240
+#: ../../build/doc/pgr_withPoints.rst:241
+#: ../../build/doc/pgr_withPoints.rst:242
+#: ../../build/doc/pgr_withPoints.rst:246
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:240
+msgid "Identifier of the starting vertex. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:241
+msgid "Identifier of the ending vertex. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:242
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:244
+msgid "Identifier of the node:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:243
+msgid "A positive value indicates the node is a vertex of edges_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:244
+msgid "A negative value indicates the node is a point of points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:246
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:247
+msgid "Identifier of the edge used to go from ``node`` to the next node in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:247
+msgid "``-1`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:249
+#: ../../build/doc/pgr_withPoints.rst:252
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:250
+msgid "Cost to traverse from ``node`` using ``edge`` to the next ``node`` in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:250
+msgid "``0`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:252
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:253
+msgid "Aggregate cost from ``start_pid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:253
+msgid "``0`` for the first row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:260
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:262
+msgid "Which path (if any) passes in front of point 6 or vertex 6 with **right** side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:268
+msgid "Which path (if any) passes in front of point 6 or vertex 6 with **left** side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:274
+msgid "Many to many example with a twist: on undirected graph and showing details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:281
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:286
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:287
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:291
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:293
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:296
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:297
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:298
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_withPointsCost.pot b/locale/pot/pgr_withPointsCost.pot
new file mode 100644
index 0000000..021b895
--- /dev/null
+++ b/locale/pot/pgr_withPointsCost.pot
@@ -0,0 +1,576 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsCost.rst:13
+msgid "pgr_withPointsCost - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:19
+msgid "``pgr_withPointsCost`` - Calculates the shortest path and returns only the aggregate cost of the shortest path(s) found, for the combination of points given."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:33
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:37
+msgid "Modify the graph to include points defined by points_sql. Using Dijkstra algorithm, return only the aggregate cost of the shortest path(s) found."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:41
+msgid "Characteristics:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:79
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:44
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:45
+msgid "Returns the sum of the costs of the shortest path for pair combination of vertices in the modified graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:46
+msgid "Vertices of the graph are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:48
+msgid "**positive** when it belongs to the edges_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:49
+msgid "**negative** when it belongs to the points_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:51
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:52
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:54
+msgid "The returned values are in the form of a set of `(start_vid, end_vid, agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:56
+msgid "When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:58
+msgid "The `agg_cost` in the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:60
+msgid "When the starting vertex and ending vertex are the different and there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:62
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:64
+msgid "If the values returned are stored in a table, the unique index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:67
+msgid "For undirected graphs, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:69
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:71
+msgid "For optimization purposes, any duplicated value in the `start_vids` or `end_vids` is ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:73
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:75
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:76
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:78
+msgid "Running time: :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:82
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:92
+msgid "There is no **details** flag, unlike the other members of the withPoints family of functions."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:96
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:102
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:106
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:105
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:106
+msgid "The driving side is set as **b** both. So arriving/departing to/from the point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:124
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:145
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:166
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:185
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:204
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCost.rst:246
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCost.rst:223
+#: ../../build/doc/pgr_withPointsCost.rst:246
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCost.rst:223
+#: ../../build/doc/pgr_withPointsCost.rst:246
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPointsCost.rst:227
+#: ../../build/doc/pgr_withPointsCost.rst:228
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "Value in <0,1> that indicates the relative postition from the first end point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsCost.rst:232
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsCost.rst:234
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsCost.rst:235
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:219
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:223
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:225
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:225
+#: ../../build/doc/pgr_withPointsCost.rst:226
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:225
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:226
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:226
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:227
+#: ../../build/doc/pgr_withPointsCost.rst:248
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:227
+msgid "Starting vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:228
+#: ../../build/doc/pgr_withPointsCost.rst:249
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:228
+msgid "Ending vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:229
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:229
+#: ../../build/doc/pgr_withPointsCost.rst:230
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:229
+msgid "Array of identifiers of starting vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:230
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:230
+msgid "Array of identifiers of ending vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:231
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:231
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:231
+msgid "(optional). When ``false`` the graph is considered as Undirected. Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:232
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:235
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:233
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:241
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:243
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:248
+#: ../../build/doc/pgr_withPointsCost.rst:249
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:248
+msgid "Identifier of the starting vertex. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:249
+msgid "Identifier of the ending point. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:250
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:250
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:250
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:256
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:258
+msgid "With **right** side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:264
+msgid "With **left** side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:270
+msgid "Does not matter driving side."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:277
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:282
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:283
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:287
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:289
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:292
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:293
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:294
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_withPointsCostMatrix.pot b/locale/pot/pgr_withPointsCostMatrix.pot
new file mode 100644
index 0000000..a0e97dd
--- /dev/null
+++ b/locale/pot/pgr_withPointsCostMatrix.pot
@@ -0,0 +1,455 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:13
+msgid "pgr_withPointsCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:19
+msgid "``pgr_withPointsCostMatrix`` - Calculates the shortest path and returns only the aggregate cost of the shortest path(s) found, for the combination of points given."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:31
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:35
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:37
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:45
+msgid "There is no **details** flag, unlike the other members of the withPoints family of functions."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:49
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:55
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:59
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:58
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:59
+msgid "The driving side is set as **b** both. So arriving/departing to/from the point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:78
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:87
+msgid "returning a symmetrical cost matrix"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:89
+msgid "Using the default **side** value on the **points_sql** query"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:90
+msgid "Using an undirected graph"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:91
+msgid "Using the default **driving_side** value"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:100
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:120
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:120
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "Value in <0,1> that indicates the relative postition from the first end point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:126
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:128
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:129
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:116
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:120
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:122
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:122
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:123
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:122
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:123
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:123
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:124
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:124
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:124
+msgid "Array of identifiers of starting vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:125
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:125
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:125
+msgid "(optional). When ``false`` the graph is considered as Undirected. Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:126
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:129
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:127
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the starting vertex. Used when multiple starting vetrices are in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the ending vertex. Used when multiple ending vertices are in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:140
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:142
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:151
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:153
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:154
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:155
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:156
+msgid "`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:159
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:160
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:161
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_withPointsDD.pot b/locale/pot/pgr_withPointsDD.pot
new file mode 100644
index 0000000..b78f02b
--- /dev/null
+++ b/locale/pot/pgr_withPointsDD.pot
@@ -0,0 +1,527 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsDD.rst:13
+msgid "pgr_withPointsDD - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:19
+msgid "``pgr_withPointsDD`` - Returns the driving distance from a starting point."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:33
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:37
+msgid "Modify the graph to include points and using Dijkstra algorithm, extracts all the nodes and points that have costs less than or equal to the value ``distance`` from the starting point. The edges extracted will conform the corresponding spanning tree."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:44
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:54
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:60
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:65
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:63
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:64
+msgid "The driving side is set as **b** both. So arriving/departing to/from the point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:65
+msgid "No **details** are given about distance of other points of the query."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:84
+msgid "Driving distance from a single point"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:86
+#: ../../build/doc/pgr_withPointsDD.rst:106
+msgid "Finds the driving distance depending on the optional parameters setup."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:94
+msgid "Right side driving topology"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:104
+msgid "Driving distance from many starting points"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:118
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsDD.rst:162
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsDD.rst:138
+#: ../../build/doc/pgr_withPointsDD.rst:162
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsDD.rst:138
+#: ../../build/doc/pgr_withPointsDD.rst:162
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPointsDD.rst:142
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_withPointsDD.rst:169
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+#: ../../build/doc/pgr_withPointsDD.rst:143
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "Value in <0,1> that indicates the relative postition from the first end point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsDD.rst:145
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsDD.rst:147
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsDD.rst:148
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:134
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:138
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:140
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:140
+#: ../../build/doc/pgr_withPointsDD.rst:141
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:140
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:141
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:141
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:142
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:142
+msgid "Starting point id"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:143
+msgid "**distance**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:143
+msgid "Distance from the start_pid"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:144
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:144
+#: ../../build/doc/pgr_withPointsDD.rst:150
+#: ../../build/doc/pgr_withPointsDD.rst:152
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:144
+msgid "(optional). When ``false`` the graph is considered as Undirected. Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:145
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:148
+msgid "(optional). Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:146
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:150
+msgid "**details**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:150
+msgid "(optional). When ``true`` the results will include the driving distance to the points with in the ``distance``. Default is ``false`` which ignores other points of the points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:152
+msgid "**equicost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:152
+msgid "(optional). When ``true`` the nodes will only appear in the closest start_v list. Default is ``false`` which resembles several calls using the single starting point signatures. Tie brakes are arbitrary."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:157
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:159
+msgid "Returns set of ``(seq, node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:164
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:164
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:164
+msgid "row sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:165
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:165
+#: ../../build/doc/pgr_withPointsDD.rst:166
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:165
+msgid "Identifier of the node within the Distance from ``start_pid``. If ``details =: true`` a negative value is the identifier of a point."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:166
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:167
+msgid "Identifier of the edge used to go from ``node`` to the next node in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:167
+msgid "``-1`` when ``start_vid`` = ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:169
+#: ../../build/doc/pgr_withPointsDD.rst:172
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:170
+msgid "Cost to traverse ``edge``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:170
+#: ../../build/doc/pgr_withPointsDD.rst:173
+msgid "``0`` when ``start_vid`` = ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:172
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:173
+msgid "Aggregate cost from ``start_vid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:180
+msgid "Examples for queries marked as ``directed`` with ``cost`` and ``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:182
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:184
+msgid "Left side driving topology"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:190
+msgid "Does not matter driving side."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:199
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:204
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:205
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:209
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:211
+msgid ":ref:`pgr_drivingDistance` - Driving distance using dijkstra."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:212
+msgid ":ref:`pgr_alphashape` - Alpha shape computation."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:213
+msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:216
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:217
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:218
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/pgr_withPointsKSP.pot b/locale/pot/pgr_withPointsKSP.pot
new file mode 100644
index 0000000..a398e1f
--- /dev/null
+++ b/locale/pot/pgr_withPointsKSP.pot
@@ -0,0 +1,544 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsKSP.rst:13
+msgid "pgr_withPointsKSP - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:19
+msgid "``pgr_withPointsKSP`` - Find the K shortest paths using Yen's algorithm."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:29
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:32
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:34
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:36
+msgid "Modifies the graph to include the points defined in the ``points_sql`` and using Yen algorithm, finds the K shortest paths."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:41
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:56
+msgid "Minimal Usage"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:62
+msgid "The minimal usage:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:59
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:60
+msgid "The driving side is set as **b** both. So arriving/departing to/from the point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:61
+msgid "No **details** are given about distance of other points of the query."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:62
+msgid "No **heap paths** are returned."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:80
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:82
+msgid "Finds the K shortest paths depending on the optional parameters setup."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:91
+msgid "With details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:98
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsKSP.rst:144
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsKSP.rst:119
+#: ../../build/doc/pgr_withPointsKSP.rst:144
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsKSP.rst:119
+#: ../../build/doc/pgr_withPointsKSP.rst:144
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPointsKSP.rst:123
+#: ../../build/doc/pgr_withPointsKSP.rst:124
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_withPointsKSP.rst:153
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "When negative: edge `(source, target)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "When negative: edge `(target, source)` does not exist, therefore it's not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "Value in <0,1> that indicates the relative postition from the first end point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsKSP.rst:128
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsKSP.rst:130
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsKSP.rst:131
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:115
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:119
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:121
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:121
+#: ../../build/doc/pgr_withPointsKSP.rst:122
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:121
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:122
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:122
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:123
+msgid "**start_pid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:123
+msgid "Starting point id."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:124
+msgid "**end_pid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:124
+msgid "Ending point id."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:125
+msgid "**K**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:125
+#: ../../build/doc/pgr_withPointsKSP.rst:146
+#: ../../build/doc/pgr_withPointsKSP.rst:147
+#: ../../build/doc/pgr_withPointsKSP.rst:148
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:125
+msgid "Number of shortest paths."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:126
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:126
+#: ../../build/doc/pgr_withPointsKSP.rst:127
+#: ../../build/doc/pgr_withPointsKSP.rst:133
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:126
+msgid "(optional). When ``false`` the graph is considered as Undirected. Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:127
+msgid "**heap_paths**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:127
+msgid "(optional). When ``true`` the paths calculated to get the shortests paths will be returned also. Default is ``false`` only the K shortest paths are returned."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:128
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:131
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:129
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:133
+msgid "**details**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:133
+msgid "(optional). When ``true`` the results will include the driving distance to the points with in the ``distance``. Default is ``false`` which ignores other points of the points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:139
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:141
+msgid "Returns set of ``(seq, path_id, path_seq, node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:146
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:146
+msgid "Row sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:147
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:147
+msgid "Relative position in the path of node and edge. Has value 1 for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:148
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:148
+msgid "Path identifier. The ordering of the paths: For two paths i, j if i < j then agg_cost(i) <= agg_cost(j)."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:149
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:149
+#: ../../build/doc/pgr_withPointsKSP.rst:150
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:149
+msgid "Identifier of the node in the path. Negative values are the identifiers of a point."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:150
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:151
+msgid "Identifier of the edge used to go from ``node`` to the next node in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:151
+msgid "``-1`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:153
+#: ../../build/doc/pgr_withPointsKSP.rst:156
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:154
+msgid "Cost to traverse from ``node`` using ``edge`` to the next ``node`` in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:154
+msgid "``0`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:156
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:157
+msgid "Aggregate cost from ``start_pid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:157
+msgid "``0`` for the first row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:164
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:166
+msgid "Left side driving topology with details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:172
+msgid "Right side driving topology with heap paths and details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:178
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:181
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:182
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:186
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:188
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:191
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:192
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:193
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/proposed.pot b/locale/pot/proposed.pot
new file mode 100644
index 0000000..8d2ee99
--- /dev/null
+++ b/locale/pot/proposed.pot
@@ -0,0 +1,382 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/proposed.rst:13
+msgid "Stable Proposed Functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:20
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:22
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:23
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:24
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:25
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:26
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:27
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:33
+msgid "As part of the :ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:35
+msgid ":ref:`pgr_dijkstraCostMatrix` Use pgr_dijkstra to calculate a cost matrix."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:36
+msgid ":ref:`pgr_dijkstraVia` - Use pgr_dijkstra to make a route via vertices."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:39
+msgid "Families"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:40
+msgid ":ref:`astar`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:3
+msgid ":ref:`pgr_aStar` - A* algorithm for the shortest path."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:4
+msgid ":ref:`pgr_aStarCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:5
+msgid ":ref:`pgr_aStarCostMatrix` - Get the cost matrix of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:46
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:3
+msgid ":ref:`pgr_bdAstar` - Bidirectional A* algorithm for obtaining paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid ":ref:`pgr_bdAstarCost` - Bidirectional A* algorithm to calculate the cost of the paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:5
+msgid ":ref:`pgr_bdAstarCostMatrix` - Bidirectional A* algorithm to calculate a cost matrix of paths."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:52
+msgid ":ref:`bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:3
+msgid ":ref:`pgr_bdDijkstra` - Bidirectional Dijkstra algorithm for the shortest paths."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:4
+msgid ":ref:`pgr_bdDijkstraCost` - Bidirectional Dijkstra to calculate the cost of the shortest paths"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:5
+msgid ":ref:`pgr_bdDijkstraCostMatrix` - Bidirectional Dijkstra algorithm  to create a matrix of costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:58
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:3
+msgid ":ref:`pgr_maxFlow` - Only the Max flow calculation using Push and Relabel algorithm."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:4
+msgid ":ref:`pgr_BoykovKolmogorov` - Boykov and Kolmogorov with details of flow on edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid ":ref:`pgr_EdmondsKarp` - Edmonds and Karp algorithm with details of flow on edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid ":ref:`pgr_PushRelabel` - Push and relabel algorithm with details of flow on edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Applications"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:9
+msgid ":ref:`pgr_edgeDisjointPaths` - Calculates edge disjoint paths between two groups of vertices."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid ":ref:`pgr_maxCardinalityMatch` - Calculates a maximum cardinality matching in a graph."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:64
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:3
+msgid ":ref:`pgr_withPoints` - Route from/to points anywhere on the graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:4
+msgid ":ref:`pgr_withPointsCost` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:5
+msgid ":ref:`pgr_withPointsCostMatrix` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:6
+msgid ":ref:`pgr_withPointsKSP` - K shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:7
+msgid ":ref:`pgr_withPointsDD` - Driving distance."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:71
+msgid "categories"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:72
+msgid ":ref:`Cost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:3
+msgid ":ref:`pgr_aStarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:4
+msgid ":ref:`pgr_bdAstarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:5
+msgid ":ref:`pgr_bdDijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:6
+msgid ":ref:`pgr_dijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:7
+msgid ":ref:`pgr_withPointsCost`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:78
+msgid ":ref:`CostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:3
+msgid ":ref:`pgr_aStarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:4
+msgid ":ref:`pgr_bdAstarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:5
+msgid ":ref:`pgr_bdDijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:6
+msgid ":ref:`pgr_dijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:7
+msgid ":ref:`pgr_withPointsCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:84
+msgid ":ref:`KSP`"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:3
+msgid ":ref:`pgr_KSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:4
+msgid ":ref:`pgr_withPointsKSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:106
+msgid "Experimental Functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:111
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:113
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:114
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:116
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:117
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:118
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:119
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:120
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:121
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:122
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:123
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:124
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:125
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:126
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:127
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:132
+msgid ":ref:`contraction` - Reduce network size using contraction techniques"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:134
+msgid ":ref:`pgr_contractgraph` - Reduce network size using contraction techniques"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:138
+msgid "Graph Analysis"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:139
+msgid ":ref:`pgr_labelGraph` - Analyze / label  subgraphs within a network"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:141
+msgid ":ref:`components` - Analyze components within a graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:143
+msgid ":ref:`pgr_connectedComponents` - Return the connected components of an undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:144
+msgid ":ref:`pgr_strongComponents` - Return the strongly connected components of a directed graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:145
+msgid ":ref:`pgr_biconnectedComponents` - Return the biconnected components of an undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:146
+msgid ":ref:`pgr_articulationPoints` - Return the articulation points of an undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:147
+msgid ":ref:`pgr_bridges` - Return the bridges of an undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:150
+msgid "VRP"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:151
+msgid ":ref:`pgr_gsocvrppdtw`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:152
+msgid ":ref:`pgr_vrp_basic`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:166
+msgid "Graph Transformation"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:167
+msgid ":doc:`pgr_lineGraph`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:175
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:178
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:179
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:180
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/release_notes.pot b/locale/pot/release_notes.pot
new file mode 100644
index 0000000..ca762d4
--- /dev/null
+++ b/locale/pot/release_notes.pot
@@ -0,0 +1,1206 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/release_notes.rst:13
+msgid "Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:15
+msgid "To see the full list of changes check the list of `Git commits <https://github.com/pgRouting/pgrouting/commits>`_ on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:18
+msgid "Table of contents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:21
+msgid ":ref:`changelog_2_5_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:22
+msgid ":ref:`changelog_2_4_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:23
+msgid ":ref:`changelog_2_4_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:24
+msgid ":ref:`changelog_2_4_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:25
+msgid ":ref:`changelog_2_3_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:26
+msgid ":ref:`changelog_2_3_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:27
+msgid ":ref:`changelog_2_3_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:28
+msgid ":ref:`changelog_2_2_4`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:29
+msgid ":ref:`changelog_2_2_3`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:30
+msgid ":ref:`changelog_2_2_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:31
+msgid ":ref:`changelog_2_2_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:32
+msgid ":ref:`changelog_2_2_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:33
+msgid ":ref:`changelog_2_1_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:34
+msgid ":ref:`changelog_2_0_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:35
+msgid ":ref:`changelog_2_0_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:36
+msgid ":ref:`changelog_1_x`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:43
+msgid "pgRouting 2.5.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:45
+msgid "To see the issues closed by this release see the `Git closed issues for 2.5.0 <https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.5.0%22+is%3Aclosed>`_ on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:49
+msgid "enhancement:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:50
+msgid "pgr_version is now on SQL language"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:53
+msgid "Breaking change on:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:54
+msgid "pgr_edgeDisjointPaths:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:56
+msgid "Added path_id, cost and agg_cost columns on the result"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:57
+msgid "Parameter names changed"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:58
+msgid "The many version results are the union of the one to one version"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:61
+msgid "New Signatures:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:62
+msgid "pgr_bdAstar(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:65
+#: ../../build/doc/release_notes.rst:223
+msgid "New Proposed functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:66
+msgid "pgr_bdAstar(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:67
+msgid "pgr_bdAstar(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:68
+msgid "pgr_bdAstar(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:69
+msgid "pgr_bdAstarCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:70
+msgid "pgr_bdAstarCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:71
+msgid "pgr_bdAstarCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:72
+msgid "pgr_bdAstarCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:73
+msgid "pgr_bdAstarCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:74
+msgid "pgr_bdDijkstra(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:75
+msgid "pgr_bdDijkstra(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:76
+msgid "pgr_bdDijkstra(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:77
+msgid "pgr_bdDijkstraCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:78
+msgid "pgr_bdDijkstraCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:79
+msgid "pgr_bdDijkstraCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:80
+msgid "pgr_bdDijkstraCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:81
+msgid "pgr_bdDijkstraCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:82
+msgid "pgr_lineGraph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:83
+msgid "pgr_connectedComponents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:84
+msgid "pgr_strongComponents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:85
+msgid "pgr_biconnectedComponents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:86
+msgid "pgr_articulationPoints"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:87
+msgid "pgr_bridges"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:90
+#: ../../build/doc/release_notes.rst:160
+#: ../../build/doc/release_notes.rst:247
+msgid "Deprecated Signatures"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:91
+msgid "pgr_bdastar - use pgr_bdAstar instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:94
+msgid "Renamed Functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:95
+msgid "pgr_maxFlowPushRelabel - use pgr_pushRelabel instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:96
+msgid "pgr_maxFlowEdmondsKarp -use pgr_edmondsKarp instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:97
+msgid "pgr_maxFlowBoykovKolmogorov - use pgr_boykovKolmogorov instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:98
+msgid "pgr_maximumCardinalityMatching - use pgr_maxCardinalityMatch instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:101
+msgid "Deprecated function"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:102
+msgid "pgr_pointToEdgeNode"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:108
+msgid "pgRouting 2.4.2 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:110
+msgid "To see the issues closed by this release see the `Git closed milestone for 2.4.2 <https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.4.2%22%20>`_ on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:113
+msgid "Improvement"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:114
+msgid "Works for postgreSQL 10"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:117
+#: ../../build/doc/release_notes.rst:131
+#: ../../build/doc/release_notes.rst:168
+#: ../../build/doc/release_notes.rst:522
+#: ../../build/doc/release_notes.rst:529
+#: ../../build/doc/release_notes.rst:550
+#: ../../build/doc/release_notes.rst:557
+msgid "Bug fixes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:118
+msgid "Fixed: Unexpected error column \"cname\""
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:119
+msgid "Replace __linux__ with __GLIBC__ for glibc-specific headers and functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:126
+msgid "pgRouting 2.4.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:128
+msgid "To see the issues closed by this release see the `Git closed milestone for 2.4.1 <https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.4.1%22%20>`_ on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:132
+msgid "Fixed compiling error on macOS"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:133
+msgid "Condition error on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:138
+msgid "pgRouting 2.4.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:140
+msgid "To see the issues closed by this release see the `Git closed issues for 2.4.0 <https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.4.0%22+is%3Aclosed>`_ on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:143
+#: ../../build/doc/release_notes.rst:213
+#: ../../build/doc/release_notes.rst:374
+msgid "New Signatures"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:144
+msgid "pgr_bdDijkstra"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:148
+msgid "New Proposed Signatures"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:149
+msgid "pgr_maxFlow"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:150
+msgid "pgr_astar(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:151
+msgid "pgr_astar(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:152
+msgid "pgr_astar(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:153
+msgid "pgr_astarCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:154
+msgid "pgr_astarCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:155
+msgid "pgr_astarCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:156
+msgid "pgr_astarCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:157
+msgid "pgr_astarCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:161
+msgid "pgr_bddijkstra - use pgr_bdDijkstra instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:164
+#: ../../build/doc/release_notes.rst:253
+msgid "Deprecated Functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:165
+msgid "pgr_pointsToVids"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:169
+msgid "Bug fixes on proposed functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:171
+msgid "pgr_withPointsKSP: fixed ordering"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:173
+msgid "TRSP original code is used with no changes on the compilation warnings"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:178
+msgid "pgRouting 2.3.2 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:180
+msgid "To see the issues closed by this release see the `Git closed issues for 2.3.2 <https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.3.2%22+is%3Aclosed>`_ on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:183
+#: ../../build/doc/release_notes.rst:199
+#: ../../build/doc/release_notes.rst:269
+#: ../../build/doc/release_notes.rst:282
+#: ../../build/doc/release_notes.rst:293
+#: ../../build/doc/release_notes.rst:305
+#: ../../build/doc/release_notes.rst:424
+#: ../../build/doc/release_notes.rst:455
+msgid "Bug Fixes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:184
+msgid "Fixed pgr_gsoc_vrppdtw crash when all orders fit on one truck."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:185
+msgid "Fixed pgr_trsp:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:187
+msgid "Alternate code is not executed when the point is in reality a vertex"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:188
+msgid "Fixed ambiguity on seq"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:194
+msgid "pgRouting 2.3.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:196
+msgid "To see the issues closed by this release see the `Git closed issues for 2.3.1 <https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.3.1%22+is%3Aclosed>`_ on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:200
+msgid "Leaks on proposed max_flow functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:201
+msgid "Regression error on pgr_trsp"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:202
+msgid "Types discrepancy on pgr_createVerticesTable"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:208
+msgid "pgRouting 2.3.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:210
+msgid "To see the issues closed by this release see the `Git closed issues for 2.3.0 <https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.3.0%22+is%3Aclosed>`_ on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:214
+msgid "pgr_TSP"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:215
+msgid "pgr_aStar"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:218
+#: ../../build/doc/release_notes.rst:330
+msgid "New Functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:219
+msgid "pgr_eucledianTSP"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:224
+msgid "pgr_dijkstraCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:225
+msgid "pgr_withPointsCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:226
+msgid "pgr_maxFlowPushRelabel(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:227
+msgid "pgr_maxFlowPushRelabel(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:228
+msgid "pgr_maxFlowPushRelabel(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:229
+msgid "pgr_maxFlowPushRelabel(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:230
+msgid "pgr_maxFlowEdmondsKarp(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:231
+msgid "pgr_maxFlowEdmondsKarp(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:232
+msgid "pgr_maxFlowEdmondsKarp(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:233
+msgid "pgr_maxFlowEdmondsKarp(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:234
+msgid "pgr_maxFlowBoykovKolmogorov (one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:235
+msgid "pgr_maxFlowBoykovKolmogorov (one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:236
+msgid "pgr_maxFlowBoykovKolmogorov (many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:237
+msgid "pgr_maxFlowBoykovKolmogorov (many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:238
+msgid "pgr_maximumCardinalityMatching"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:239
+msgid "pgr_edgeDisjointPaths(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:240
+msgid "pgr_edgeDisjointPaths(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:241
+msgid "pgr_edgeDisjointPaths(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:242
+msgid "pgr_edgeDisjointPaths(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:243
+msgid "pgr_contractGraph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:248
+msgid "pgr_tsp - use pgr_TSP or pgr_eucledianTSP instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:249
+msgid "pgr_astar - use pgr_aStar instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:254
+msgid "pgr_flip_edges"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:255
+msgid "pgr_vidsToDmatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:256
+msgid "pgr_pointsToDMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:257
+msgid "pgr_textToPoints"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:264
+msgid "pgRouting 2.2.4 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:266
+msgid "To see the issues closed by this release see the `Git closed issues for 2.2.4 <https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.4%22+is%3Aclosed>`_ on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:270
+msgid "Bogus uses of extern \"C\""
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:271
+msgid "Build error on Fedora 24 + GCC 6.0"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:272
+msgid "Regression error pgr_nodeNetwork"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:277
+msgid "pgRouting 2.2.3 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:279
+msgid "To see the issues closed by this release see the `Git closed issues for 2.2.3 <https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.3%22+is%3Aclosed>`_ on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:283
+msgid "Fixed compatibility issues with PostgreSQL 9.6."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:288
+msgid "pgRouting 2.2.2 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:290
+msgid "To see the issues closed by this release see the `Git closed issues for 2.2.2 <https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.2%22+is%3Aclosed>`_ on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:294
+msgid "Fixed regression error on pgr_drivingDistance"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:300
+msgid "pgRouting 2.2.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:302
+msgid "To see the issues closed by this release see the `Git closed issues for 2.2.1 <https://github.com/pgRouting/pgrouting/issues?q=milestone%3A2.2.1+is%3Aclosed>`_ on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:306
+msgid "Server crash fix on pgr_alphaShape"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:307
+msgid "Bug fix on With Points family of functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:313
+msgid "pgRouting 2.2.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:315
+msgid "To see the issues closed by this release see the `Git closed issues for 2.2.0 <https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.0%22+is%3Aclosed>`_ on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:319
+#: ../../build/doc/release_notes.rst:387
+msgid "Improvements"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:320
+msgid "pgr_nodeNetwork"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:322
+msgid "Adding a row_where and outall optional parameters"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:324
+msgid "Signature fix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:326
+msgid "pgr_dijkstra  -- to match what is documented"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:331
+msgid "pgr_floydWarshall"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:332
+msgid "pgr_Johnson"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:333
+msgid "pgr_dijkstraCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:334
+msgid "pgr_dijkstraCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:335
+msgid "pgr_dijkstraCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:336
+msgid "pgr_dijkstraCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:339
+#: ../../build/doc/release_notes.rst:391
+msgid "Proposed functionality"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:340
+msgid "pgr_withPoints(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:341
+msgid "pgr_withPoints(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:342
+msgid "pgr_withPoints(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:343
+msgid "pgr_withPoints(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:344
+msgid "pgr_withPointsCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:345
+msgid "pgr_withPointsCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:346
+msgid "pgr_withPointsCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:347
+msgid "pgr_withPointsCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:348
+msgid "pgr_withPointsDD(single vertex)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:349
+msgid "pgr_withPointsDD(multiple vertices)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:350
+msgid "pgr_withPointsKSP"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:351
+msgid "pgr_dijkstraVia"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:355
+msgid "Deprecated functions:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:356
+msgid "pgr_apspWarshall  use pgr_floydWarshall instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:357
+msgid "pgr_apspJohnson   use pgr_Johnson instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:358
+msgid "pgr_kDijkstraCost use pgr_dijkstraCost instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:359
+msgid "pgr_kDijkstraPath use pgr_dijkstra instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:362
+msgid "Renamed and deprecated function"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:363
+msgid "pgr_makeDistanceMatrix renamed to _pgr_makeDistanceMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:369
+msgid "pgRouting 2.1.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:371
+msgid "To see the issues closed by this release see the `Git closed issues for 2.1.0 <https://github.com/pgRouting/pgrouting/issues?q=is%3Aissue+milestone%3A%22Release+2.1.0%22+is%3Aclosed>`_ on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:375
+msgid "pgr_dijkstra(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:376
+msgid "pgr_dijkstra(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:377
+msgid "pgr_dijkstra(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:378
+msgid "pgr_drivingDistance(multiple vertices)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:381
+msgid "Refactored"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:382
+msgid "pgr_dijkstra(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:383
+msgid "pgr_ksp"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:384
+msgid "pgr_drivingDistance(single vertex)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:388
+msgid "pgr_alphaShape function now can generate better (multi)polygon with holes and alpha parameter."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:392
+msgid "Proposed functions from Steve Woodbridge, (Classified as Convenience by the author.)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:394
+msgid "pgr_pointToEdgeNode - convert a point geometry to a vertex_id based on closest edge."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:395
+msgid "pgr_flipEdges - flip the edges in an array of geometries so the connect end to end."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:396
+msgid "pgr_textToPoints - convert a string of x,y;x,y;... locations into point geometries."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:397
+msgid "pgr_pointsToVids - convert an array of point geometries into vertex ids."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:398
+msgid "pgr_pointsToDMatrix - Create a distance matrix from an array of points."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:399
+#: ../../build/doc/release_notes.rst:400
+msgid "pgr_vidsToDMatrix - Create a distance matrix from an array of vertix_id."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:402
+msgid "Added proposed functions from GSoc Projects:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:404
+msgid "pgr_vrppdtw"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:405
+msgid "pgr_vrponedepot"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:408
+msgid "Deprecated functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:409
+msgid "pgr_getColumnName"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:410
+msgid "pgr_getTableName"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:411
+msgid "pgr_isColumnCndexed"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:412
+msgid "pgr_isColumnInTable"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:413
+msgid "pgr_quote_ident"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:414
+msgid "pgr_versionless"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:415
+msgid "pgr_startPoint"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:416
+msgid "pgr_endPoint"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:417
+msgid "pgr_pointToId"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:420
+msgid "No longer supported"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:421
+msgid "Removed the 1.x legacy functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:425
+msgid "Some bug fixes in other functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:429
+msgid "Refactoring Internal Code"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:430
+msgid "A C and C++ library for developer was created"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:432
+msgid "encapsulates postgreSQL related functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:433
+msgid "encapsulates Boost.Graph graphs"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:435
+msgid "Directed Boost.Graph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:436
+msgid "Undirected Boost.graph."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:438
+msgid "allow any-integer in the id's"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:439
+msgid "allow any-numerical on the cost/reverse_cost columns"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:441
+msgid "Instead of generating many libraries: - All functions are encapsulated in one library - The library has the prefix 2-1-0"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:450
+msgid "pgRouting 2.0.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:452
+msgid "Minor bug fixes."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:456
+msgid "No track of the bug fixes were kept."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:462
+msgid "pgRouting 2.0.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:464
+msgid "To see the issues closed by this release see the `Git closed issues for 2.0.0 <https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.0.0%22+is%3Aclosed>`_ on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:466
+msgid "With the release of pgRouting 2.0.0 the library has abandoned backwards compatibility to :ref:`pgRouting 1.x <changelog_1_x>` releases. The main Goals for this release are:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:469
+msgid "Major restructuring of pgRouting."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:470
+msgid "Standardization of the function naming"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:471
+msgid "Preparation of the project for future development."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:473
+msgid "As a result of this effort:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:475
+msgid "pgRouting has a simplified structure"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:476
+msgid "Significant new functionality has being added"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:477
+msgid "Documentation has being integrated"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:478
+msgid "Testing has being integrated"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:479
+msgid "And made it easier for multiple developers to make contributions."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:483
+msgid "Important Changes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:484
+msgid "Graph Analytics - tools for detecting and fixing connection some problems in a graph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:485
+msgid "A collection of useful utility functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:486
+msgid "Two new All Pairs Short Path algorithms (pgr_apspJohnson, pgr_apspWarshall)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:487
+msgid "Bi-directional Dijkstra and A-star search algorithms (pgr_bdAstar, pgr_bdDijkstra)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:488
+msgid "One to many nodes search (pgr_kDijkstra)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:489
+msgid "K alternate paths shortest path (pgr_ksp)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:490
+msgid "New TSP solver that simplifies the code and the build process (pgr_tsp), dropped \"Gaul Library\" dependency"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:491
+msgid "Turn Restricted shortest path (pgr_trsp) that replaces Shooting Star"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:492
+msgid "Dropped support for Shooting Star"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:493
+msgid "Built a test infrastructure that is run before major code changes are checked in"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:494
+msgid "Tested and fixed most all of the outstanding bugs reported against 1.x that existing in the 2.0-dev code base."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:495
+msgid "Improved build process for Windows"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:496
+msgid "Automated testing on Linux and Windows platforms trigger by every commit"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:497
+msgid "Modular library design"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:498
+msgid "Compatibility with PostgreSQL 9.1 or newer"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:499
+msgid "Compatibility with PostGIS 2.0 or newer"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:500
+msgid "Installs as PostgreSQL EXTENSION"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:501
+msgid "Return types re factored and unified"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:502
+msgid "Support for table SCHEMA in function parameters"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:503
+msgid "Support for ``st_`` PostGIS function prefix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:504
+msgid "Added ``pgr_`` prefix to functions and types"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:505
+msgid "Better documentation: http://docs.pgrouting.org"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:506
+msgid "shooting_star is discontinued"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:513
+msgid "pgRouting 1.x Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:515
+msgid "To see the issues closed by this release see the `Git closed issues for 1.x <https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+1.x%22+is%3Aclosed>`_ on Github. The following release notes have been copied from the previous ``RELEASE_NOTES`` file and are kept as a reference."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:520
+msgid "Changes for release 1.05"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:526
+msgid "Changes for release 1.03"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:528
+msgid "Much faster topology creation"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:533
+msgid "Changes for release 1.02"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:535
+#: ../../build/doc/release_notes.rst:542
+msgid "Shooting* bug fixes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:536
+msgid "Compilation problems solved"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:540
+msgid "Changes for release 1.01"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:546
+msgid "Changes for release 1.0"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:548
+msgid "Core and extra functions are separated"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:549
+msgid "Cmake build process"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:554
+msgid "Changes for release 1.0.0b"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:556
+msgid "Additional SQL file with more simple names for wrapper functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:561
+msgid "Changes for release 1.0.0a"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:563
+msgid "Shooting* shortest path algorithm for real road networks"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:564
+msgid "Several SQL bugs were fixed"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:568
+msgid "Changes for release 0.9.9"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:570
+msgid "PostgreSQL 8.2 support"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:571
+msgid "Shortest path functions return empty result if they could not find any path"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:575
+msgid "Changes for release 0.9.8"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:577
+msgid "Renumbering scheme was added to shortest path functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:578
+msgid "Directed shortest path functions were added"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:579
+msgid "routing_postgis.sql was modified to use dijkstra in TSP search"
+msgstr ""
+
diff --git a/locale/pot/routingFunctions.pot b/locale/pot/routingFunctions.pot
new file mode 100644
index 0000000..0fadcca
--- /dev/null
+++ b/locale/pot/routingFunctions.pot
@@ -0,0 +1,134 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/routingFunctions.rst:15
+msgid "Routing Functions"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:21
+msgid ":ref:`all_pairs`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:23
+msgid ":ref:`pgr_floydWarshall` - Floyd-Warshall's Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:24
+msgid ":ref:`pgr_johnson`- Johnson’s Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:26
+msgid ":ref:`pgr_astar` - Shortest Path A*"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:28
+msgid ":ref:`pgr_bdAstar` - Bi-directional A* Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:30
+msgid ":ref:`pgr_bdDijkstra` - Bi-directional Dijkstra Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:33
+msgid ":ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:3
+msgid ":ref:`pgr_dijkstra` - Dijkstra's algorithm for the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:4
+msgid ":ref:`pgr_dijkstraCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:5
+msgid ":ref:`pgr_dijkstraCostMatrix` - Use pgr_dijkstra to create a costs matrix."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:6
+msgid ":ref:`pgr_drivingDistance` - Use pgr_dijkstra to calculate catchament information."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:7
+msgid ":ref:`pgr_ksp` - Use Yen algorithm with pgr_dijkstra to get the K shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:8
+msgid ":ref:`pgr_dijkstraVia` - Get a route of a seuence of vertices."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:39
+msgid ":ref:`pgr_ksp` - K-Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:41
+msgid ":ref:`pgr_trsp<trsp>` - Turn Restriction Shortest Path (TRSP)"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:43
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:3
+msgid ":ref:`pgr_TSP` - When input is given as matrix cell information."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:4
+msgid ":ref:`pgr_eucledianTSP` - When input are coordinates."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:49
+msgid ":ref:`drivingDistance`"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:3
+msgid ":ref:`pgr_drivingDistance` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:4
+msgid ":ref:`pgr_withPointsDD` - Driving Distance based on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:5
+msgid "Post pocessing"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:7
+msgid ":ref:`pgr_alphaShape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:8
+msgid ":ref:`pgr_points_as_polygon` - Polygon around a set of points"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:70
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:73
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:74
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:75
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/sampledata.pot b/locale/pot/sampledata.pot
new file mode 100644
index 0000000..16a78d3
--- /dev/null
+++ b/locale/pot/sampledata.pot
@@ -0,0 +1,142 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/sampledata.rst:11
+msgid "Sample Data"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:13
+msgid "The documentation provides very simple example queries based on a small sample network. To be able to execute the sample queries, run the following SQL commands to create a table with a small network data set."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:18
+msgid "Create table"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:25
+msgid "Insert data"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:32
+msgid "Topology"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:33
+msgid "Before you test a routing function use this query to create a topology (fills the ``source`` and ``target`` columns)."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:40
+msgid "Points of interest"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:41
+msgid "When points outside of the graph."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:42
+msgid "Used with the :ref:`withPoints` functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:49
+msgid "Restrictions"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:50
+msgid "Used with the :ref:`trsp` functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:57
+msgid "Categories"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:58
+msgid "Used with the :ref:`maxFlow` functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:65
+msgid "Vertex table"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:66
+msgid "Used in some deprecated signatures or deprecated functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:74
+msgid "Images"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:76
+msgid "Red arrows correspond when ``cost`` > 0 in the edge table."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:77
+msgid "Blue arrows correspond when ``reverse_cost`` > 0 in the edge table."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:78
+msgid "Points are outside the graph."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:79
+msgid "Click on the graph to enlarge."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:84
+msgid "Network for queries marked as ``directed`` and ``cost`` and ``reverse_cost`` columns are used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:86
+msgid "When working with city networks, this is recommended for point of view of vehicles."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:91
+msgid "**Graph 1: Directed, with cost and reverse cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:96
+msgid "Network for queries marked as ``undirected`` and ``cost`` and ``reverse_cost`` columns are used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:98
+msgid "When working with city networks, this is recommended for point of view of pedestrians."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:104
+msgid "**Graph 2: Undirected, with cost and reverse cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:109
+msgid "Network for queries marked as ``directed`` and only ``cost`` column is used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:116
+msgid "**Graph 3: Directed, with cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:121
+msgid "Network for queries marked as ``undirected`` and only ``cost`` column is used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:127
+msgid "**Graph 4: Undirected, with cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:134
+msgid "Pick & Deliver Data"
+msgstr ""
+
diff --git a/locale/pot/support.pot b/locale/pot/support.pot
new file mode 100644
index 0000000..392ef81
--- /dev/null
+++ b/locale/pot/support.pot
@@ -0,0 +1,147 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/support.rst:13
+msgid "Support"
+msgstr ""
+
+#: ../../build/doc/support.rst:15
+msgid "pgRouting community support is available through the `pgRouting website <http://pgrouting.org/support.html>`_, `documentation <http://docs.pgrouting.org>`_, tutorials, mailing lists and others. If you’re looking for :ref:`commercial support <support_commercial>`, find below a list of companies providing pgRouting development and consulting services."
+msgstr ""
+
+#: ../../build/doc/support.rst:19
+msgid "Reporting Problems"
+msgstr ""
+
+#: ../../build/doc/support.rst:21
+msgid "Bugs are reported and managed in an `issue tracker <https://github.com/pgrouting/pgrouting/issues>`_. Please follow these steps:"
+msgstr ""
+
+#: ../../build/doc/support.rst:23
+msgid "Search the tickets to see if your problem has already been reported. If so, add any extra context you might have found, or at least indicate that you too are having the problem. This will help us prioritize common issues."
+msgstr ""
+
+#: ../../build/doc/support.rst:24
+msgid "If your problem is unreported, create a `new issue <https://github.com/pgRouting/pgrouting/issues/new>`_ for it."
+msgstr ""
+
+#: ../../build/doc/support.rst:25
+msgid "In your report include explicit instructions to replicate your issue. The best tickets include the exact SQL necessary to replicate a problem."
+msgstr ""
+
+#: ../../build/doc/support.rst:26
+msgid "If you can test older versions of PostGIS for your problem, please do. On your ticket, note the earliest version the problem appears."
+msgstr ""
+
+#: ../../build/doc/support.rst:27
+msgid "For the versions where you can replicate the problem, note the operating system and version of pgRouting, PostGIS and PostgreSQL."
+msgstr ""
+
+#: ../../build/doc/support.rst:28
+msgid "It is recommended to use the following wrapper on the problem to pin point the step that is causing the problem."
+msgstr ""
+
+#: ../../build/doc/support.rst:39
+msgid "Mailing List and GIS StackExchange"
+msgstr ""
+
+#: ../../build/doc/support.rst:41
+msgid "There are two mailing lists for pgRouting hosted on OSGeo mailing list server:"
+msgstr ""
+
+#: ../../build/doc/support.rst:43
+msgid "User mailing list: http://lists.osgeo.org/mailman/listinfo/pgrouting-users"
+msgstr ""
+
+#: ../../build/doc/support.rst:44
+msgid "Developer mailing list: http://lists.osgeo.org/mailman/listinfo/pgrouting-dev"
+msgstr ""
+
+#: ../../build/doc/support.rst:46
+msgid "For general questions and topics about how to use pgRouting, please write to the user mailing list."
+msgstr ""
+
+#: ../../build/doc/support.rst:48
+msgid "You can also ask at `GIS StackExchange <http://gis.stackexchange.com/>`_ and tag the question with ``pgrouting``. Find all questions tagged with ``pgrouting`` under http://gis.stackexchange.com/questions/tagged/pgrouting or subscribe to the `pgRouting questions feed <http://gis.stackexchange.com/feeds/tag?tagnames=pgrouting&sort=newest>`_."
+msgstr ""
+
+#: ../../build/doc/support.rst:54
+msgid "Commercial Support"
+msgstr ""
+
+#: ../../build/doc/support.rst:56
+msgid "For users who require professional support, development and consulting services, consider contacting any of the following organizations, which have significantly contributed to the development of pgRouting:"
+msgstr ""
+
+#: ../../build/doc/support.rst:61
+msgid "**Company**"
+msgstr ""
+
+#: ../../build/doc/support.rst:62
+msgid "**Offices in**"
+msgstr ""
+
+#: ../../build/doc/support.rst:63
+msgid "**Website**"
+msgstr ""
+
+#: ../../build/doc/support.rst:64
+msgid "Georepublic"
+msgstr ""
+
+#: ../../build/doc/support.rst:65
+msgid "Germany, Japan"
+msgstr ""
+
+#: ../../build/doc/support.rst:66
+msgid "https://georepublic.info"
+msgstr ""
+
+#: ../../build/doc/support.rst:67
+msgid "iMaptools"
+msgstr ""
+
+#: ../../build/doc/support.rst:68
+#: ../../build/doc/support.rst:71
+msgid "United States"
+msgstr ""
+
+#: ../../build/doc/support.rst:69
+msgid "http://imaptools.com"
+msgstr ""
+
+#: ../../build/doc/support.rst:70
+msgid "Paragon Corporation"
+msgstr ""
+
+#: ../../build/doc/support.rst:72
+msgid "http://www.paragoncorporation.com"
+msgstr ""
+
+#: ../../build/doc/support.rst:73
+msgid "Camptocamp"
+msgstr ""
+
+#: ../../build/doc/support.rst:74
+msgid "Switzerland, France"
+msgstr ""
+
+#: ../../build/doc/support.rst:75
+msgid "http://www.camptocamp.com"
+msgstr ""
+
diff --git a/locale/pot/topology-functions.pot b/locale/pot/topology-functions.pot
new file mode 100644
index 0000000..f35513d
--- /dev/null
+++ b/locale/pot/topology-functions.pot
@@ -0,0 +1,62 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/topology-functions.rst:13
+msgid "Topology - Family of Functions"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:15
+msgid "The pgRouting's topology of a network, represented with an edge table with source and target attributes and a vertices table associated with it. Depending on the algorithm, you can create a topology or just reconstruct the vertices table, You can analyze the topology, We also provide a function to node an unoded network."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:19
+msgid ":ref:`pgr_create_topology` -  to create a topology based on the geometry."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:20
+msgid ":ref:`pgr_create_vert_table` - to reconstruct the vertices table based on the source and target information."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:21
+msgid ":ref:`pgr_analyze_graph`  - to analyze the edges and vertices of the edge table."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:22
+msgid ":ref:`pgr_analyze_oneway` - to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:23
+msgid ":ref:`pgr_node_network`  -to create nodes to a not noded edge table."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:35
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:38
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:39
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:40
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/types_index.pot b/locale/pot/types_index.pot
new file mode 100644
index 0000000..4e2b841
--- /dev/null
+++ b/locale/pot/types_index.pot
@@ -0,0 +1,54 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/types_index.rst:13
+msgid "pgRouting Data Types"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:15
+msgid "The following are commonly used data types for some of the pgRouting functions."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:17
+msgid ":ref:`type_cost_result` -  A set of records to describe a path result with cost attribute."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:18
+msgid ":ref:`pgr_costResult3[] <type_cost_result3>` - A set of records to describe a path result with cost attribute."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:19
+msgid ":ref:`pgr_geomResult <type_geom_result>` - A set of records to describe a path result with geometry attribute."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:30
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:33
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:34
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:35
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/pot/withPoints-family.pot b/locale/pot/withPoints-family.pot
new file mode 100644
index 0000000..b805520
--- /dev/null
+++ b/locale/pot/withPoints-family.pot
@@ -0,0 +1,376 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) pgRouting Contributors - Version v2.5.0-alpha
+# This file is distributed under the same license as the pgRouting package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/withPoints-family.rst:14
+msgid "withPoints - Family of functions"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:16
+msgid "When points are also given as input:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:20
+msgid ":ref:`pgr_withPoints` - Route from/to points anywhere on the graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:21
+msgid ":ref:`pgr_withPointsCost` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:22
+msgid ":ref:`pgr_withPointsCostMatrix` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:23
+msgid ":ref:`pgr_withPointsKSP` - K shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:24
+msgid ":ref:`pgr_withPointsDD` - Driving distance."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:47
+msgid "Images"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:49
+msgid "The squared vertices are the temporary vertices, The temporary vertices are added acordng to the dirving side, The following images visualy show the diferences on how depending on the driving side the data is interpreted."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:53
+msgid "Right driving side"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:58
+msgid "Left driving side"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:63
+msgid "doesn't matter the driving side"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:68
+msgid "Introduction"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:70
+msgid "This famly of functions was thought for routing vehicles, but might as well work for some other application that we can not think of."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:73
+msgid "The with points family of function give you the ability to route between arbitrary points located outside the original graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:76
+msgid "When given a point identified with a `pid` that its being mapped to and edge with an identifier `edge_id`, with a `fraction` along that edge (from the source to the target of the edge) and some additional information about which `side` of the edge the point is on, then routing from arbitrary points more accurately reflect routing vehicles in road networks,"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:87
+msgid "I talk about a family of functions because it includes different functionalities."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:84
+msgid "pgr_withPoints is pgr_dijkstra based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:85
+msgid "pgr_withPointsCost is pgr_dijkstraCost based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:86
+msgid "pgr_withPointsKSP is pgr_ksp based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:87
+msgid "pgr_withPointsDD is pgr_drivingDistance based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:89
+msgid "In all this functions we have to take care of as many aspects as possible:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:91
+msgid "Must work for routing:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:93
+msgid "Cars (directed graph)"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:94
+msgid "Pedestrians (undirected graph)"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:96
+msgid "Arriving at the point:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:98
+msgid "In either side of the street."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:99
+msgid "Compulsory arrival on the side of the street where the point is located."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:101
+msgid "Countries with:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:103
+msgid "Right side driving"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:104
+msgid "Left side driving"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:106
+msgid "Some points are:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:108
+msgid "Permanent, for example the set of points of clients stored in a table in the data base"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:109
+msgid "Temporal, for example points given through a web application"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:111
+msgid "The numbering of the points are handled with negative sign."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:113
+msgid "Original point identifiers are to be positive."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:114
+msgid "Transformation to negative is done internally."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:115
+msgid "For results for involving vertices identifiers"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:117
+msgid "positive sign is a vertex of the original grpah"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:118
+msgid "negative sign is a point of the temporary points"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:120
+msgid "The reason for doing this is to avoid confusion when there is a vertex with the same number as identifier as the points identifier."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:123
+msgid "Graph & edges"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:125
+msgid "Let :math:`G_d(V,E)` where :math:`V` is the set of vertices and :math:`E` is the set of edges be the original directed graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:127
+msgid "An edge of the original `edges_sql` is :math:`(id, source, target, cost, reverse\\_cost)` will generate internally"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:129
+msgid ":math:`(id, source, target, cost)`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:130
+msgid ":math:`(id, target, source, reverse\\_cost)`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:133
+msgid "Point Definition"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:135
+msgid "A point is defined by the quadruplet: :math:`(pid, eid, fraction, side)`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:137
+msgid "**pid** is the point identifier"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:138
+msgid "**eid** is an edge id of the `edges_sql`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:139
+msgid "**fraction** represents where the edge `eid` will be cut."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:140
+msgid "**side** Indicates the side of the edge where the point is located."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:144
+msgid "Creating Temporary Vertices in the Graph"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:146
+msgid "For edge (15,  9,12  10, 20), & lets insert point (2, 12, 0.3, r)"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:149
+msgid "On a right hand side driving network"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:150
+msgid "From first image above:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:152
+msgid "We can arrive to the point only via vertex 9."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:153
+msgid "It only afects the edge (15, 9,12, 10) so that edge is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:154
+msgid "Edge (15, 12,9, 20) is kept."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:155
+#: ../../build/doc/withPoints-family.rst:167
+#: ../../build/doc/withPoints-family.rst:182
+msgid "Create new edges:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:157
+#: ../../build/doc/withPoints-family.rst:186
+msgid "(15, 9,-1, 3) edge from vertex 9 to point 1 has cost 3"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:158
+#: ../../build/doc/withPoints-family.rst:187
+msgid "(15, -1,12, 7) edge from point 1 to vertex 12 has cost 7"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:161
+msgid "On a left hand side driving network"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:162
+msgid "From second image above:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:164
+msgid "We can arrive to the point only via vertex 12."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:165
+msgid "It only afects the edge (15, 12,9 20) so that edge is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:166
+msgid "Edge (15, 9,12, 10) is kept."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:169
+#: ../../build/doc/withPoints-family.rst:184
+msgid "(15, 12,-1, 14) edge from vertex 12 to point 1 has cost 14"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:170
+#: ../../build/doc/withPoints-family.rst:185
+msgid "(15, -1,9, 6) edge from point 1 to vertex 9 has cost 6"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:172
+msgid "that fraction is from vertex 9 to vertex 12"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:176
+msgid "When driving side does not matter"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:177
+msgid "From third image above:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:179
+msgid "We can arrive to the point either via vertex 12 or via vertex 9"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:180
+msgid "Edge (15, 12,9 20) is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:181
+msgid "Edge (15, 9,12, 10) is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:190
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:193
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:194
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:195
+msgid ":ref:`search`"
+msgstr ""
+
diff --git a/locale/ru/LC_MESSAGES/KSP-category.po b/locale/ru/LC_MESSAGES/KSP-category.po
new file mode 100644
index 0000000..9232738
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/KSP-category.po
@@ -0,0 +1,36 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/KSP-category.rst:14
+msgid "KSP Category"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:18
+msgid ":ref:`pgr_KSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:19
+msgid ":ref:`pgr_withPointsKSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:26
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:27
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:28
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/TSP-family.po b/locale/ru/LC_MESSAGES/TSP-family.po
new file mode 100644
index 0000000..0f03653
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/TSP-family.po
@@ -0,0 +1,556 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/TSP-family.rst:13
+msgid "Traveling Sales Person - Family of functions"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:17
+msgid ":ref:`pgr_TSP` - When input is given as matrix cell information."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:18
+msgid ":ref:`pgr_eucledianTSP` - When input are coordinates."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:30
+msgid "General Information"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:33
+msgid "Origin"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:36
+msgid ""
+"The traveling sales person problem was studied in the 18th century by "
+"mathematicians"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:36
+msgid "**Sir William Rowam Hamilton** and **Thomas Penyngton  Kirkman**."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:38
+msgid ""
+"A discussion about the work of Hamilton & Kirkman can be found in the book "
+"**Graph Theory (Biggs et  al. 1976)**."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:41
+msgid "ISBN-13: 978-0198539162"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:42
+msgid "ISBN-10: 0198539169"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:44
+msgid ""
+"It is believed that the general form of the TSP have been first studied by "
+"Kalr Menger in Vienna and Harvard. The problem  was  later promoted by "
+"Hassler, Whitney  &  Merrill at Princeton. A detailed  description about the"
+" connection between Menger & Whitney, and the development of the TSP can be "
+"found in  `On the history of combinatorial optimization (till 1960) "
+"<http://www.cwi.nl/~lex/files/histco.ps>`_"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:50
+msgid "Problem Definition"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:52
+msgid ""
+"Given a collection of cities and travel cost between each pair, find the "
+"cheapest way for visiting all of the cities and returning to the starting "
+"point."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:56
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:58
+msgid "The travel costs are symmetric:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:60
+msgid ""
+"traveling costs from city A to city B are just as much as traveling from B "
+"to A."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:62
+msgid "This problem is an NP-hard optimization problem."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:64
+msgid "To calculate the number of different tours through :math:`n` cities:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:66
+msgid "Given a starting city,"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:67
+msgid "There are :math:`n-1` choices for the second city,"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:68
+msgid "And  :math:`n-2` choices for the third city, etc."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:69
+msgid ""
+"Multiplying these together we get :math:`(n-1)!  = (n-1) (n-2) . .  1`."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:70
+msgid ""
+"Now since our travel costs do not depend on the direction we take around the"
+" tour:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:72
+msgid "this number by 2"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:73
+msgid ":math:`(n-1)!/2`."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:76
+msgid "TSP & Simulated Annealing"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:78
+msgid ""
+"The simulated annealing algorithm was originally inspired from the process "
+"of annealing in metal work."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:81
+msgid ""
+"Annealing involves heating and cooling a material to alter its physical "
+"properties due to the changes in its internal structure. As the metal cools "
+"its new structure becomes fixed, consequently causing the metal to retain "
+"its newly obtained properties. [C001]_"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:88
+msgid "Pseudocode"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:89
+msgid ""
+"Given an initial solution, the simulated annealing process, will start with "
+"a high temperature and gradually cool down until the desired temperature is "
+"reached."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:92
+msgid ""
+"For each temperature, a neighbouring new solution **snew** is calculated. "
+"The higher the temperature the higher the probability of accepting the new "
+"solution as a possible bester solution."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:95
+msgid ""
+"Once the desired temperature is reached, the best solution found is returned"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:118
+msgid "pgRouting Implementation"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:120
+msgid ""
+"pgRouting's implementation adds some extra parameters to allow some exit "
+"controls within the simulated annealing process."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:123
+msgid "To cool down faster to the next temperature:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:125
+msgid ""
+"max_changes_per_temperature: limits the number of changes in the solution "
+"per temperature"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:126
+msgid ""
+"max_consecutive_non_changes: limits the number of consecutive non changes "
+"per temperature"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:128
+msgid ""
+"This is done by doing some book keeping on the times **solution = snew;** is"
+" executed."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:130
+msgid ""
+"max_changes_per_temperature: Increases by one when **solution** changes"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:131
+msgid ""
+"max_consecutive_non_changes: Reset to 0 when **solution** changes, and "
+"increased each **try**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:133
+msgid ""
+"Additionally to stop the algorithm at a higher temperature than the desired "
+"one:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:135
+msgid ""
+"max_processing_time: limits the time the simulated annealing is performed."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:136
+msgid ""
+"book keeping is done to see if there was a change in **solution** on the "
+"last temperature"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:138
+msgid ""
+"Note that, if no change was found in the first "
+"**max_consecutive_non_changes** tries, then the simulated annealing will "
+"stop."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:168
+msgid "Choosing parameters"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:170
+msgid ""
+"There is no exact rule on how the parameters have to be chose, it will "
+"depend on the special characteristics of the problem."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:173
+msgid ""
+"Your computational time is crucial, then put your time limit to "
+"**max_processing_time**."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:174
+msgid ""
+"Make the **tries_per_temperture** depending on the number of cities, for "
+"example:"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:176
+msgid "Useful to estimate the time it takes to do one cycle: use `1`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:178
+msgid "this will help to set a reasonable **max_processing_time**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:180
+msgid ":math:`n * (n-1)`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:181
+msgid ":math:`500 * n`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:183
+msgid ""
+"For a faster decreasing the temperature set **cooling_factor** to a smaller "
+"number, and set to a higher number for a slower decrease."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:186
+msgid ""
+"When for the same given data the same results are needed, set **randomize** "
+"to `false`."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:188
+msgid "When estimating how long it takes to do one cycle: use `false`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:191
+msgid ""
+"A recommendation is to play with the values and see what fits to the "
+"particular data."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:196
+msgid "Description Of the Control parameters"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:198
+msgid "The control parameters are optional, and have a default value."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201 ../../build/doc/TSP-family.rst:230
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:201 ../../build/doc/TSP-family.rst:230
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203 ../../build/doc/TSP-family.rst:204
+#: ../../build/doc/TSP-family.rst:233
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203 ../../build/doc/TSP-family.rst:204
+msgid "`0`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:203
+msgid "The greedy part of the implementation will use this identifier."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:204
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:204
+msgid "Last visiting vertex before returning to start_vid."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205
+msgid "**max_processing_time**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205 ../../build/doc/TSP-family.rst:209
+#: ../../build/doc/TSP-family.rst:210 ../../build/doc/TSP-family.rst:211
+#: ../../build/doc/TSP-family.rst:234 ../../build/doc/TSP-family.rst:237
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205
+msgid "`+infinity`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:205
+msgid "Stop the annealing processing when the value is reached."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206
+msgid "**tries_per_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206 ../../build/doc/TSP-family.rst:207
+#: ../../build/doc/TSP-family.rst:208 ../../build/doc/TSP-family.rst:232
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206
+msgid "`500`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:206
+msgid "Maximum number of times a neighbor(s) is searched in each temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:207
+msgid "**max_changes_per_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:207
+msgid "`60`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:207
+msgid "Maximum number of times the solution is changed in each temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:208
+msgid "**max_consecutive_non_changes**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:208 ../../build/doc/TSP-family.rst:209
+msgid "`100`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:208
+msgid ""
+"Maximum number of consecutive times the solution is not changed in each "
+"temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:209
+msgid "**initial_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:209
+msgid "Starting temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:210
+msgid "**final_temperature**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:210
+msgid "`0.1`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:210
+msgid "Ending temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:211
+msgid "**cooling_factor**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:211
+msgid "`0.9`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:211
+msgid ""
+"Value between between 0 and 1 (not including) used to calculate the next "
+"temperature."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "**randomize**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "`true`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:212
+msgid "Choose the random seed"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:214
+msgid "true: Use current time as seed"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:215
+msgid ""
+"false: Use `1` as seed. Using this value will get the same results with the "
+"same data in each execution."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:225
+msgid "Description of the return columns"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:227
+msgid "Returns set of ``(seq, node, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:230
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:232
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:232
+msgid "Row sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:233
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:233
+msgid "Identifier of the node/coordinate/point."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:234
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:235
+msgid ""
+"Cost to traverse from the current ``node`` ito the next ``node`` in the path"
+" sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:235
+msgid "``0`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:237
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:238
+msgid "Aggregate cost from the ``node`` at ``seq = 1`` to the current node."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:238
+msgid "``0`` for the first row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:245
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:248
+msgid "References"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:249
+msgid ""
+"`Simulated annaeling algorithm for beginners <http://www.theprojectspot.com"
+"/tutorial-post/simulated-annealing-algorithm-for-beginners/6>`_"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:251
+msgid "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:252
+msgid "http://en.wikipedia.org/wiki/Simulated_annealing"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:255
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:256
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:257
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/aStar-family.po b/locale/ru/LC_MESSAGES/aStar-family.po
new file mode 100644
index 0000000..3364e02
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/aStar-family.po
@@ -0,0 +1,205 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/aStar-family.rst:13
+msgid "aStar - Family of functions"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:15
+msgid ""
+"The A* (pronounced \"A Star\") algorithm is based on Dijkstra's algorithm "
+"with a heuristic that allow it to solve most shortest path problems by "
+"evaluation only a sub-set of the overall graph."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:19
+msgid ":ref:`pgr_aStar` - A* algorithm for the shortest path."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:20
+msgid ":ref:`pgr_aStarCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:21
+msgid ""
+":ref:`pgr_aStarCostMatrix` - Get the cost matrix of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:34
+msgid "The problem definition (Advanced documentation)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:36
+msgid ""
+"The A* (pronounced \"A Star\") algorithm is based on Dijkstra's algorithm "
+"with a heuristic, that is an estimation of the remaining cost from the "
+"vertex to the goal, that allows to solve most shortest path problems by "
+"evaluation only a sub-set of the overall graph. Running time: :math:`O((E + "
+"V) * \\log V)`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:46
+msgid "Heuristic"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:48
+msgid "Currently the heuristic functions available are:"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:50
+msgid "0: :math:`h(v) = 0` (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:51
+msgid "1: :math:`h(v) = abs(max(\\Delta x, \\Delta y))`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:52
+msgid "2: :math:`h(v) = abs(min(\\Delta x, \\Delta y))`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:53
+msgid "3: :math:`h(v) = \\Delta x * \\Delta x + \\Delta y * \\Delta y`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:54
+msgid "4: :math:`h(v) = sqrt(\\Delta x * \\Delta x + \\Delta y * \\Delta y)`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:55
+msgid "5: :math:`h(v) = abs(\\Delta x) + abs(\\Delta y)`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:57
+msgid "where :math:`\\Delta x = x_1 - x_0` and :math:`\\Delta y = y_1 - y_0`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:63 ../../build/doc/aStar-family.rst:76
+#: ../../build/doc/aStar-family.rst:89
+msgid "Factor"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:66
+msgid "Analysis 1"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:67
+msgid ""
+"Working with cost/reverse_cost as length in degrees, x/y in lat/lon: Factor "
+"= 1   (no need to change units)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:71
+msgid "Analysis 2"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:72
+msgid ""
+"Working with cost/reverse_cost as length in meters, x/y in lat/lon: Factor ="
+"  would depend on the location of the points:"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:76 ../../build/doc/aStar-family.rst:89
+msgid "latitude"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:76 ../../build/doc/aStar-family.rst:89
+msgid "conversion"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:78 ../../build/doc/aStar-family.rst:91
+msgid "45"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:78
+msgid "1 longitude degree is  78846.81 m"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:78
+msgid "78846"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:79 ../../build/doc/aStar-family.rst:92
+msgid "0"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:79
+msgid "1 longitude degree is 111319.46 m"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:79
+msgid "111319"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:83
+msgid "Analysis 3"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:84
+msgid ""
+"Working with cost/reverse_cost as time in seconds, x/y in lat/lon: Factor: "
+"would depend on the location of the points and on the average speed say "
+"25m/s is the speed."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:91
+msgid "1 longitude degree is (78846.81m)/(25m/s)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:91
+msgid "3153 s"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:92
+msgid "1 longitude degree is (111319.46 m)/(25m/s)"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:92
+msgid "4452 s"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:98
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:100
+msgid ":ref:`pgr_aStar`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:101
+msgid ":ref:`pgr_aStarCost`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:102
+msgid ":ref:`pgr_aStarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:103
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:104
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:107
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:108
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:109
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/allpairs-family.po b/locale/ru/LC_MESSAGES/allpairs-family.po
new file mode 100644
index 0000000..9749ed9
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/allpairs-family.po
@@ -0,0 +1,996 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/allpairs-family.rst:14
+msgid "All Pairs - Family of Functions"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:16
+msgid "The following functions work an all vertices pair combinations"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:33
+msgid "Performance"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:40
+msgid "The following tests:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:36
+msgid "non server computer"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:37
+msgid "with AMD 64 CPU"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:38
+msgid "4G memory"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:39
+msgid "trusty"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:40
+msgid "posgreSQL version 9.3"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:43
+msgid "Data"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:45
+msgid "The following data was used"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:53
+msgid "Data processing was done with osm2pgrouting-alpha"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:66
+msgid "Results"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:68
+msgid "One"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:70
+msgid ""
+"This test is not with a bounding box The density of the passed graph is "
+"extremely low. For each <SIZE> 30 tests were executed to get the average The"
+" tested query is:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:83
+#: ../../build/doc/allpairs-family.rst:140
+msgid "The results of this tests are presented as:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:85
+msgid "is the number of edges given as input."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:86
+#: ../../build/doc/allpairs-family.rst:143
+msgid "is the total number of records in the query."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:87
+#: ../../build/doc/allpairs-family.rst:144
+msgid "is the density of the data :math:`\\dfrac{E}{V \\times (V-1)}`."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:88
+#: ../../build/doc/allpairs-family.rst:145
+msgid "is the number of records returned by the queries."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:89
+#: ../../build/doc/allpairs-family.rst:146
+msgid "is the average execution time in seconds of pgr_floydWarshall."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:90
+#: ../../build/doc/allpairs-family.rst:147
+msgid "is the average execution time in seconds of pgr_johnson."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "SIZE"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "EDGES"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "DENSITY"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "OUT ROWS"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "Floyd-Warshall"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:94
+#: ../../build/doc/allpairs-family.rst:151
+msgid "Johnson"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+#: ../../build/doc/allpairs-family.rst:96
+msgid "500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "0.18E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "1346"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "0.14"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:96
+msgid "0.13"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+#: ../../build/doc/allpairs-family.rst:97
+msgid "1000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "0.36E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "2655"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "0.23"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:97
+msgid "0.18"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+#: ../../build/doc/allpairs-family.rst:98
+msgid "1500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+msgid "0.55E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+msgid "4110"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+#: ../../build/doc/allpairs-family.rst:99
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.37"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:98
+msgid "0.34"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+#: ../../build/doc/allpairs-family.rst:99
+msgid "2000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+msgid "0.73E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+msgid "5676"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:99
+msgid "0.56"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+#: ../../build/doc/allpairs-family.rst:100
+msgid "2500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "0.89E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "7177"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "0.84"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:100
+msgid "0.51"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+#: ../../build/doc/allpairs-family.rst:101
+msgid "3000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "1.07E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "8778"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "1.28"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:101
+msgid "0.68"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+#: ../../build/doc/allpairs-family.rst:102
+msgid "3500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "1.24E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "10526"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "2.08"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:102
+msgid "0.95"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+#: ../../build/doc/allpairs-family.rst:103
+msgid "4000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "1.41E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "12484"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "3.16"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:103
+msgid "1.24"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+#: ../../build/doc/allpairs-family.rst:104
+msgid "4500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "1.58E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "14354"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "4.49"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:104
+msgid "1.47"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+#: ../../build/doc/allpairs-family.rst:105
+msgid "5000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "1.76E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "16503"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "6.05"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:105
+msgid "1.78"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+#: ../../build/doc/allpairs-family.rst:106
+msgid "5500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "1.93E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "18623"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "7.53"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:106
+msgid "2.03"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+#: ../../build/doc/allpairs-family.rst:107
+msgid "6000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "2.11E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "20710"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "8.47"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:107
+msgid "2.37"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+#: ../../build/doc/allpairs-family.rst:108
+msgid "6500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "2.28E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "22752"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "9.99"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:108
+msgid "2.68"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+#: ../../build/doc/allpairs-family.rst:109
+msgid "7000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "2.46E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "24687"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "11.82"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:109
+msgid "3.12"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+#: ../../build/doc/allpairs-family.rst:110
+msgid "7500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "2.64E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "26861"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "13.94"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:110
+msgid "3.60"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+#: ../../build/doc/allpairs-family.rst:111
+msgid "8000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "2.83E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "29050"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "15.61"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:111
+msgid "4.09"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+#: ../../build/doc/allpairs-family.rst:112
+msgid "8500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "3.01E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "31693"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "17.43"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:112
+msgid "4.63"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+#: ../../build/doc/allpairs-family.rst:113
+msgid "9000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "3.17E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "33879"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "19.19"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:113
+msgid "5.34"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+#: ../../build/doc/allpairs-family.rst:114
+msgid "9500"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "3.35E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "36287"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "20.77"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:114
+msgid "6.24"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+#: ../../build/doc/allpairs-family.rst:115
+msgid "10000"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "3.52E-7"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "38491"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "23.26"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:115
+msgid "6.51"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:119
+msgid "Two"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:121
+msgid ""
+"This test is with a bounding box The density of the passed graph higher than"
+" of the Test One. For each <SIZE> 30 tests were executed to get the average "
+"The tested edge query is:"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:133
+msgid "The tested queries"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:142
+msgid "is the size of the bounding box."
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "0.001"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "44"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "0.0608"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+msgid "1197"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:153
+#: ../../build/doc/allpairs-family.rst:153
+#: ../../build/doc/allpairs-family.rst:154
+#: ../../build/doc/allpairs-family.rst:154
+msgid "0.10"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "0.002"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "99"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "0.0251"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:154
+msgid "4330"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "0.003"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "223"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "0.0122"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+msgid "18849"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:155
+#: ../../build/doc/allpairs-family.rst:155
+msgid "0.12"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "0.004"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "358"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "0.0085"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+msgid "71834"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:156
+#: ../../build/doc/allpairs-family.rst:156
+msgid "0.16"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.005"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "470"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.0070"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "116290"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.22"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:157
+msgid "0.19"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.006"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "639"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.0055"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "207030"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:158
+msgid "0.27"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.007"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "843"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.0043"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "346930"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.64"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:159
+msgid "0.38"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.008"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "996"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.0037"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "469936"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.90"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:160
+msgid "0.49"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "0.009"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "1146"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "0.0032"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "613135"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "1.26"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:161
+msgid "0.62"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "0.010"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "1360"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "0.0027"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "849304"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "1.87"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:162
+msgid "0.82"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "0.011"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "1573"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "0.0024"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "1147101"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "2.65"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:163
+msgid "1.04"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "0.012"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "1789"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "0.0021"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "1483629"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "3.72"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:164
+msgid "1.35"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "0.013"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "1975"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "0.0019"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "1846897"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "4.86"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:165
+msgid "1.68"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "0.014"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "2281"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "0.0017"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "2438298"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "7.08"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:166
+msgid "2.28"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "0.015"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "2588"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "0.0015"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "3156007"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "10.28"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:167
+msgid "2.80"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "0.016"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "2958"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "0.0013"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "4090618"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "14.67"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:168
+msgid "3.76"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "0.017"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "3247"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "0.0012"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "4868919"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "18.12"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:169
+msgid "4.48"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:174
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:176
+msgid ":ref:`pgr_johnson`"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:177
+msgid ":ref:`pgr_floydWarshall`"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:178
+msgid ""
+"`Boost floyd-Warshall "
+"<http://www.boost.org/libs/graph/doc/floyd_warshall_shortest.html>`_ "
+"algorithm"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:181
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:182
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/allpairs-family.rst:183
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/bdAstar-family.po b/locale/ru/LC_MESSAGES/bdAstar-family.po
new file mode 100644
index 0000000..b2bd16b
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/bdAstar-family.po
@@ -0,0 +1,394 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Bidirectional A* - Family of functions"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid ":ref:`pgr_bdAstar` - Bidirectional A* algorithm for obtaining paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:18
+msgid ""
+":ref:`pgr_bdAstarCost` - Bidirectional A* algorithm to calculate the cost of"
+" the paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid ""
+":ref:`pgr_bdAstarCostMatrix` - Bidirectional A* algorithm to calculate a "
+"cost matrix of paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:35
+msgid ""
+"Based on A* algorithm, the bidirectional search finds a shortest path from a"
+" starting vertex (``start_vid``) to an ending vertex (``end_vid``). It runs "
+"two simultaneous searches: one forward from the ``start_vid``, and one "
+"backward from the ``end_vid``, stopping when the two meet in the middle. "
+"This implementation can be used with a directed graph and an undirected "
+"graph."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:42
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:44
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:46
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:47
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:49
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:51
+msgid "The `agg_cost` the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:53
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path:"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:55
+msgid "The `agg_cost` the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:57
+msgid "Running time (worse case scenario): :math:`O((E + V) * \\log V)`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:58
+msgid ""
+"For large graphs where there is a path bewtween the starting vertex and "
+"ending vertex:"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:60
+msgid "It is expected to terminate faster than pgr_astar"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:63
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:75
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:75
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:78 ../../build/doc/bdAstar-family.rst:80
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:72
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:75
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:77
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:77
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:77
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:78
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:78
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:79
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:79 ../../build/doc/bdAstar-family.rst:81
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:79
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:80
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:80
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:81
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:81
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:82
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:82
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:82
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:84
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:85
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:87
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:87
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:87
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:89
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:90
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:91
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:92
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:93
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:94
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:96
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:96 ../../build/doc/bdAstar-family.rst:97
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:96
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:97
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:97
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:103
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:106
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:107
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:108
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/bdDijkstra-family.po b/locale/ru/LC_MESSAGES/bdDijkstra-family.po
new file mode 100644
index 0000000..67de3fa
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/bdDijkstra-family.po
@@ -0,0 +1,112 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/bdDijkstra-family.rst:13
+msgid "Bidirectional Dijkstra - Family of functions"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:17
+msgid ""
+":ref:`pgr_bdDijkstra` - Bidirectional Dijkstra algorithm for the shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:18
+msgid ""
+":ref:`pgr_bdDijkstraCost` - Bidirectional Dijkstra to calculate the cost of "
+"the shortest paths"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:19
+msgid ""
+":ref:`pgr_bdDijkstraCostMatrix` - Bidirectional Dijkstra algorithm  to "
+"create a matrix of costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:35
+msgid ""
+"Based on Dijkstra's algorithm, the bidirectional search finds a shortest "
+"path a starting vertex (``start_vid``) to an ending vertex (``end_vid``). It"
+" runs two simultaneous searches: one forward from the source, and one "
+"backward from the target, stopping when the two meet in the middle. This "
+"implementation can be used with a directed graph and an undirected graph."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:42
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:44
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:46
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:47
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:49
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:51
+msgid "The `agg_cost` the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:53
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path:"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:55
+msgid "The `agg_cost` the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:57
+msgid "Running time (worse case scenario): :math:`O((V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:58
+msgid ""
+"For large graphs where there is a path bewtween the starting vertex and "
+"ending vertex:"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:60
+msgid "It is expected to terminate faster than pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:63
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:66
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:67
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:68
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/components-family.po b/locale/ru/LC_MESSAGES/components-family.po
new file mode 100644
index 0000000..dbca49a
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/components-family.po
@@ -0,0 +1,750 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/components-family.rst:13
+msgid "Components - Family of functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:22
+msgid ""
+":ref:`pgr_connectedComponents` - Return the connected components of an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:23
+msgid ""
+":ref:`pgr_strongComponents` - Return the strongly connected components of a "
+"directed graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid ""
+":ref:`pgr_biconnectedComponents` - Return the biconnected components of an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:25
+msgid ""
+":ref:`pgr_articulationPoints` - Return the articulation points of an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid ":ref:`pgr_bridges` - Return the bridges of an undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:42
+msgid "The problem definition"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:45
+msgid "Connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:46
+msgid ""
+"A connected component of an undirected graph is a set of vertices that are "
+"all reachable from each other."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:49
+#: ../../build/doc/components-family.rst:183
+#: ../../build/doc/components-family.rst:252
+#: ../../build/doc/components-family.rst:312
+msgid "**Notice**: This problem defines on an undirected graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:51
+#: ../../build/doc/components-family.rst:117
+#: ../../build/doc/components-family.rst:185
+#: ../../build/doc/components-family.rst:254
+#: ../../build/doc/components-family.rst:314
+msgid "Given the following query:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:54
+msgid "pgr_connectedComponentsV(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:56
+#: ../../build/doc/components-family.rst:122
+#: ../../build/doc/components-family.rst:190
+#: ../../build/doc/components-family.rst:259
+#: ../../build/doc/components-family.rst:319
+msgid ""
+"where  :math:`sql = \\{(id_i, source_i, target_i, cost_i, "
+"reverse\\_cost_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:58
+#: ../../build/doc/components-family.rst:124
+#: ../../build/doc/components-family.rst:192
+#: ../../build/doc/components-family.rst:261
+#: ../../build/doc/components-family.rst:321
+msgid "and"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:60
+#: ../../build/doc/components-family.rst:126
+#: ../../build/doc/components-family.rst:194
+#: ../../build/doc/components-family.rst:263
+#: ../../build/doc/components-family.rst:323
+msgid ":math:`source = \\bigcup source_i`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:61
+#: ../../build/doc/components-family.rst:127
+#: ../../build/doc/components-family.rst:195
+#: ../../build/doc/components-family.rst:264
+#: ../../build/doc/components-family.rst:324
+msgid ":math:`target = \\bigcup target_i`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:63
+#: ../../build/doc/components-family.rst:129
+#: ../../build/doc/components-family.rst:197
+#: ../../build/doc/components-family.rst:266
+#: ../../build/doc/components-family.rst:326
+msgid "The graphs are defined as follows:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:65
+#: ../../build/doc/components-family.rst:199
+#: ../../build/doc/components-family.rst:268
+#: ../../build/doc/components-family.rst:328
+msgid "The weighted undirected graph, :math:`G(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:67
+#: ../../build/doc/components-family.rst:133
+#: ../../build/doc/components-family.rst:201
+#: ../../build/doc/components-family.rst:270
+#: ../../build/doc/components-family.rst:330
+msgid "the set of vertices  :math:`V`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:69
+#: ../../build/doc/components-family.rst:203
+#: ../../build/doc/components-family.rst:272
+#: ../../build/doc/components-family.rst:332
+msgid ":math:`V = source \\cup target`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:72
+#: ../../build/doc/components-family.rst:137
+#: ../../build/doc/components-family.rst:206
+#: ../../build/doc/components-family.rst:275
+#: ../../build/doc/components-family.rst:335
+msgid "the set of edges :math:`E`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:74
+#: ../../build/doc/components-family.rst:208
+#: ../../build/doc/components-family.rst:277
+#: ../../build/doc/components-family.rst:337
+msgid ""
+":math:`E = \\begin{cases} &\\{(source_i, target_i, cost_i) \\text{ when } "
+"cost >=0 \\} \\\\ \\cup &\\{(target_i, source_i, cost_i) \\text{ when } cost"
+" >=0 \\}  &\\quad  \\text{ if } reverse\\_cost = \\varnothing \\\\ \\\\ "
+"&\\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} \\\\ \\cup "
+"&\\{(target_i, source_i, cost_i) \\text{ when } cost >=0 \\} \\\\ \\cup "
+"&\\{(target_i, source_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i "
+">=0)\\} \\\\ \\cup &\\{(source_i, target_i, reverse\\_cost_i) \\text{ when }"
+" reverse\\_cost_i >=0)\\} &\\quad \\text{ if } reverse\\_cost \\neq "
+"\\varnothing \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:77
+#: ../../build/doc/components-family.rst:142
+#: ../../build/doc/components-family.rst:211
+#: ../../build/doc/components-family.rst:280
+#: ../../build/doc/components-family.rst:340
+msgid "Given:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:79
+#: ../../build/doc/components-family.rst:144
+#: ../../build/doc/components-family.rst:213
+#: ../../build/doc/components-family.rst:282
+#: ../../build/doc/components-family.rst:342
+msgid ":math:`G(V,E)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:81
+#: ../../build/doc/components-family.rst:146
+#: ../../build/doc/components-family.rst:215
+#: ../../build/doc/components-family.rst:284
+#: ../../build/doc/components-family.rst:344
+msgid "Then:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:89
+#: ../../build/doc/components-family.rst:154
+#: ../../build/doc/components-family.rst:223
+msgid ":math:`\\boldsymbol{\\pi} = \\{(component_i, n\\_seq_i, node_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:98
+#: ../../build/doc/components-family.rst:163
+#: ../../build/doc/components-family.rst:232
+#: ../../build/doc/components-family.rst:298
+#: ../../build/doc/components-family.rst:358
+msgid "where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:92
+msgid ":math:`component_i = \\min \\{node_j | node_j \\in component_i\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:93
+#: ../../build/doc/components-family.rst:158
+#: ../../build/doc/components-family.rst:227
+msgid ""
+":math:`n\\_seq_i` is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:94
+#: ../../build/doc/components-family.rst:159
+msgid ":math:`node_i \\in component_i`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:95
+#: ../../build/doc/components-family.rst:160
+#: ../../build/doc/components-family.rst:229
+#: ../../build/doc/components-family.rst:296
+#: ../../build/doc/components-family.rst:356
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:97
+#: ../../build/doc/components-family.rst:162
+#: ../../build/doc/components-family.rst:231
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:98
+#: ../../build/doc/components-family.rst:163
+#: ../../build/doc/components-family.rst:298
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:103
+#: ../../build/doc/components-family.rst:170
+#: ../../build/doc/components-family.rst:239
+#: ../../build/doc/components-family.rst:301
+#: ../../build/doc/components-family.rst:361
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:101
+msgid "The first component is composed of nodes ``0``, ``1`` and ``4``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:102
+msgid "The second component is composed of node ``3``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:103
+msgid "The third component is composed of nodes ``2`` and ``5``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:111
+msgid "Strongly connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:112
+msgid ""
+"A strongly connected component of a directed graph is a set of vertices that"
+" are all reachable from each other."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:115
+msgid "**Notice**: This problem defines on a directed graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:120
+msgid "pgr_strongComponentsV(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:131
+msgid "The weighted directed graph, :math:`G_d(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:135
+msgid ":math:`V = source \\cup target \\cup {start_{vid}} \\cup  {end_{vid}}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:139
+msgid ""
+":math:`E = \\begin{cases} &\\{(source_i, target_i, cost_i) \\text{ when } "
+"cost >=0 \\} &\\quad  \\text{ if } reverse\\_cost = \\varnothing \\\\ \\\\ "
+"&\\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} \\\\ \\cup "
+"&\\{(target_i, source_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i "
+">=0)\\} &\\quad \\text{ if } reverse\\_cost \\neq \\varnothing \\\\ "
+"\\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:157
+#: ../../build/doc/components-family.rst:226
+msgid ":math:`component_i = \\min {node_j | node_j \\in component_i}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:166
+msgid "The first component is composed of nodes ``1``, ``2`` and ``4``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:167
+msgid "The second component is composed of node ``0``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:168
+msgid "The third component is composed of node ``3``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:169
+msgid "The fourth component is composed of node ``5``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:170
+msgid "The fifth component is composed of node ``6``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:177
+msgid "Biconnected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:178
+msgid ""
+"The biconnected components of an undirected graph are the maximal subsets of"
+" vertices such that the removal of a vertex from particular component will "
+"not disconnect the component. Unlike connected components, vertices may "
+"belong to multiple biconnected components. Vertices can be present in "
+"multiple biconnected components, but each edge can only be contained in a "
+"single biconnected component. So, the output only has edge version."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:188
+msgid "pgr_biconnectedComponents(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:228
+msgid ":math:`edge_i \\in component_i`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:232
+#: ../../build/doc/components-family.rst:358
+msgid "`edge` ascending"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:235
+msgid ""
+"The first component is composed of edges ``1 - 2``, ``0 - 1`` and ``0 - 2``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:236
+msgid ""
+"The second component is composed of edges ``2 - 4``, ``2 - 3`` and ``3 - "
+"4``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:237
+msgid "The third component is composed of edge ``5 - 6``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:238
+msgid "The fourth component is composed of edge ``6 - 7``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:239
+msgid ""
+"The fifth component is composed of edges ``8 - 9``, ``9 - 10`` and ``8 - "
+"10``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:246
+msgid "Articulation Points"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:247
+msgid ""
+"Those vertices that belong to more than one biconnected component are called"
+" articulation points or, equivalently, cut vertices. Articulation points are"
+" vertices whose removal would increase the number of connected components in"
+" the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:257
+msgid "pgr_articulationPoints(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:292
+msgid ":math:`\\boldsymbol{\\pi} = \\{node_i\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:295
+msgid ":math:`node_i` is an articulation point."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:301
+msgid "Articulation points are nodes ``2`` and ``6``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:308
+msgid "Bridges"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:309
+msgid ""
+"A bridge is an edge of an undirected graph whose deletion increases its "
+"number of connected components."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:317
+msgid "pgr_bridges(:math:`sql`)"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:352
+msgid ":math:`\\boldsymbol{\\pi} = \\{edge_i\\}`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:355
+msgid ":math:`edge_i` is an edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:361
+msgid "Bridges are edges ``5 <--> 6`` and ``6 <--> 7``."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:370
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:372
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:421
+#: ../../build/doc/components-family.rst:440
+#: ../../build/doc/components-family.rst:458
+#: ../../build/doc/components-family.rst:474
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:405
+#: ../../build/doc/components-family.rst:421
+#: ../../build/doc/components-family.rst:440
+#: ../../build/doc/components-family.rst:458
+#: ../../build/doc/components-family.rst:474
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:405
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:375
+#: ../../build/doc/components-family.rst:405
+#: ../../build/doc/components-family.rst:421
+#: ../../build/doc/components-family.rst:440
+#: ../../build/doc/components-family.rst:458
+#: ../../build/doc/components-family.rst:474
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:377
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:377
+#: ../../build/doc/components-family.rst:378
+#: ../../build/doc/components-family.rst:379
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:377
+#: ../../build/doc/components-family.rst:445
+#: ../../build/doc/components-family.rst:477
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:378
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:378
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:379
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:379
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:380
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:380
+#: ../../build/doc/components-family.rst:384
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:380
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:382
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:384
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:384
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:384
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:386
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:390
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:392
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:393
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:402
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:405
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:407
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:407
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:407
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:416
+msgid ""
+"Description of the return values for connected components and strongly "
+"connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:418
+msgid "Returns set of ``(seq, component, n_seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:423
+#: ../../build/doc/components-family.rst:442
+#: ../../build/doc/components-family.rst:460
+#: ../../build/doc/components-family.rst:476
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:423
+#: ../../build/doc/components-family.rst:425
+#: ../../build/doc/components-family.rst:442
+#: ../../build/doc/components-family.rst:444
+#: ../../build/doc/components-family.rst:460
+#: ../../build/doc/components-family.rst:476
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:423
+#: ../../build/doc/components-family.rst:442
+#: ../../build/doc/components-family.rst:460
+#: ../../build/doc/components-family.rst:476
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:424
+#: ../../build/doc/components-family.rst:443
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:424
+#: ../../build/doc/components-family.rst:426
+#: ../../build/doc/components-family.rst:443
+#: ../../build/doc/components-family.rst:445
+#: ../../build/doc/components-family.rst:461
+#: ../../build/doc/components-family.rst:477
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:424
+msgid ""
+"Component identifier. It is equal to the minimum node identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:425
+#: ../../build/doc/components-family.rst:444
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:425
+#: ../../build/doc/components-family.rst:444
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:426
+#: ../../build/doc/components-family.rst:461
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:426
+#: ../../build/doc/components-family.rst:461
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:435
+msgid ""
+"Description of the return values for biconnected components, connected "
+"components (edge version) and strongly connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:437
+msgid "Returns set of ``(seq, component, n_seq, edge)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:443
+msgid ""
+"Component identifier. It is equal to the minimum edge identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:445
+#: ../../build/doc/components-family.rst:477
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:453
+msgid "Description of the return values for articulation points"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:455
+#: ../../build/doc/components-family.rst:471
+msgid "Returns set of ``(seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:469
+msgid "Description of the return values for bridges"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:483
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:486
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:487
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:488
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/contraction-family.po b/locale/ru/LC_MESSAGES/contraction-family.po
new file mode 100644
index 0000000..182343c
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/contraction-family.po
@@ -0,0 +1,745 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/contraction-family.rst:14
+msgid "Contraction - Family of functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:21
+msgid ":ref:`pgr_contractGraph`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:29
+msgid "Introduction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:31
+msgid ""
+"In big graphs, like the road graphs, or electric networks, graph contraction"
+" can be used to speed up some graph algorithms. Contraction reduces the size"
+" of the graph by removing some of the vertices and edges and, for example, "
+"might add edges that represent a sequence of original edges decreasing the "
+"total time and space used in graph algorithms."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:33
+msgid ""
+"This implementation gives a flexible framework for adding contraction "
+"algorithms in the future, currently, it supports two algorithms:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:35
+#: ../../build/doc/contraction-family.rst:46
+msgid "Dead end contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:36
+#: ../../build/doc/contraction-family.rst:166
+msgid "Linear contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:38
+msgid "Allowing the user to:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:40
+msgid "Forbid contraction on a set of nodes."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:41
+msgid ""
+"Decide the order of the contraction algorithms and set the maximum number of"
+" times they are to be executed."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:43
+msgid "UNDER DISCUSSION:  Forbid contraction on a set of edges"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:47
+msgid "In the algorithm, dead end contraction is represented by 1."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:50
+msgid "Dead end nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:52
+msgid ""
+"The definition of a dead end node is different for a directed and an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:54
+msgid "In case of a undirected graph, a node is considered a dead end node if"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:56
+msgid "The number of adjacent vertices is 1."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:58
+msgid "In case of an directed graph, a node is considered a dead end node if"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:60
+msgid "There are no outgoing edges and has at least one incoming edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:61
+msgid "There is one incoming and one outgoing edge with the same identifier."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:64
+#: ../../build/doc/contraction-family.rst:178
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:65
+msgid "The green node ``B`` represents a dead end node"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:66
+msgid "The node ``A`` is the only node connecting to ``B``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:67
+#: ../../build/doc/contraction-family.rst:181
+msgid ""
+"Node ``A`` is part of the rest of the graph and has an unlimited number of "
+"incoming and outgoing edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:68
+#: ../../build/doc/contraction-family.rst:183
+msgid "Directed graph"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:86
+msgid "Operation: Dead End Contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:88
+msgid ""
+"The dead end contraction will stop until there are no more dead end nodes. "
+"For example from the following graph:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:91
+#: ../../build/doc/contraction-family.rst:208
+msgid ""
+"Node ``A`` is connected to the rest of the graph by an unlimited number of "
+"edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:92
+msgid ""
+"Node ``B`` is connected to the rest of the graph with one incoming edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:93
+msgid "Node ``B`` is the only node connecting to ``C``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:94
+msgid "The green node ``C`` represents a `Dead End` node"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:113
+msgid ""
+"After contracting ``C``, node ``B`` is now a `Dead End` node and is "
+"contracted:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:129
+msgid "Node ``B`` gets contracted"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:143
+msgid "Nodes ``B`` and ``C`` belong to node ``A``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:148
+msgid "Not Dead End nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:150
+msgid "In this graph ``B`` is not a `dead end` node."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:167
+msgid "In the algorithm, linear contraction is represented by 2."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:170
+msgid "Linear nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:172
+msgid "A node is considered a linear node if satisfies the following:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:174
+msgid "The number of adjacent vertices are 2."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:175
+msgid "Should have at least one incoming edge and one outgoing edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:179
+msgid "The green node ``B`` represents a linear node"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:180
+msgid "The nodes ``A`` and ``C`` are the only nodes connecting to ``B``."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:182
+msgid ""
+"Node ``C`` is part of the rest of the graph and has an unlimited number of "
+"incoming and outgoing edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:203
+msgid "Operation: Linear Contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:205
+msgid ""
+"The linear contraction will stop until there are no more linear nodes. For "
+"example from the following graph:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:209
+msgid ""
+"Node ``B`` is connected to the rest of the graph with one incoming edge and "
+"one outgoing edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:210
+msgid ""
+"Node ``C`` is connected to the rest of the graph with one incoming edge and "
+"one outgoing edge."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:211
+msgid ""
+"Node ``D`` is connected to the rest of the graph by an unlimited number of "
+"edges."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:212
+msgid "The green nodes ``B`` and ``C`` represents `Linear` nodes."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:234
+msgid ""
+"After contracting ``B``, a new edge gets inserted between ``A`` and ``C`` "
+"which is represented by red color."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:254
+msgid "Node ``C`` is `linear node` and gets contracted."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:272
+msgid ""
+"Nodes ``B`` and ``C`` belong to edge connecting ``A`` and ``D`` which is "
+"represented by red color."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:275
+msgid "Not Linear nodes"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:277
+msgid "In this graph ``B`` is not a `linear` node."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:298
+msgid "The cycle"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:300
+msgid ""
+"Contracting a graph, can be done with more than one operation. The order of "
+"the operations affect the resulting contracted graph, after applying one "
+"operation, the set of vertices that can be contracted by another operation "
+"changes."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:302
+msgid ""
+"This implementation, cycles ``max_cycles`` times through "
+"``operations_order`` ."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:315
+msgid "Contracting Sample Data"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:317
+msgid ""
+"In this section, building and using a contracted graph will be shown by "
+"example."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:319
+msgid "The :doc:`sampledata` for an undirected graph is used"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:320
+msgid "a dead end operation first followed by a linear operation."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:322
+msgid "The original graph:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:326
+msgid "After doing a dead end contraction operation:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:330
+msgid "Doing a linear contraction operation to the graph above"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:335
+msgid ""
+"There are five cases, in this documentation, which arise when calculating "
+"the shortest path between a given source and target. In this examples, "
+"``pgr_dijkstra`` is used."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:338
+msgid "**Case 1**: Both source and target belong to the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:339
+msgid ""
+"**Case 2**: Source belongs to a contracted graph, while target belongs to a "
+"edge subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:340
+msgid ""
+"**Case 3**: Source belongs to a vertex subgraph, while target belongs to an "
+"edge subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:341
+msgid ""
+"**Case 4**: Source belongs to a contracted graph, while target belongs to an"
+" vertex subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:342
+msgid ""
+"**Case 5**: The path contains a new edge added by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:345
+msgid "Construction of the graph in the database"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:348
+msgid "Original Data"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:349
+msgid ""
+"The following query shows the original data involved in the contraction "
+"operation."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:356
+msgid "Contraction Results"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:361
+msgid ""
+"The above results do not represent the contracted graph. They represent the "
+"changes done to the graph after applying the contraction algorithm. We can "
+"see that vertices like 6 and 11 do not appear in the contraction results "
+"because they were not affected by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:364
+msgid "step 1"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:365
+msgid ""
+"Adding extra columns to the ``edge_table`` and ``edge_table_vertices_pgr`` "
+"tables:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:368
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:368
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:370
+msgid "**contracted_vertices**"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:370
+msgid "The vertices set belonging to the vertex/edge"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:371
+#: ../../build/doc/contraction-family.rst:372
+msgid "**is_contracted**"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:371
+msgid ""
+"On a `vertex` table: when ``true`` the vertex is contracted, so is not part "
+"of the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:372
+msgid ""
+"On an `edge` table: when ``true`` the edge was generated by the contraction "
+"algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:375
+msgid "Using the following queries:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:382
+msgid "step 2"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:383
+msgid ""
+"For simplicity, in this documentation, store the results of the call to "
+"pgr_contractGraph in a temporary table"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:390
+msgid "step 3"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:391
+msgid ""
+"Update the `vertex` and `edge` tables using the results of the call to "
+"pgr_contraction"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:393
+msgid ""
+"In `edge_table_vertices_pgr.is_contracted` indicate the vertices that are "
+"contracted."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:399
+msgid ""
+"Add to `edge_table_vertices_pgr.contracted_vertices`  the contracted "
+"vertices belonging to the vertices."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:405
+msgid "Insert the new edges generated by  pgr_contractGraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:412
+msgid "step 3.1"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:413
+msgid "Verify visually the updates."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:415
+msgid "On the `edge_table_vertices_pgr`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:421
+msgid "On the `edge_table`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:427
+msgid ""
+"vertices that belong to the contracted graph are the non contracted vertices"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:434
+msgid "case 1: Both source and target belong to the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:435
+msgid ""
+"Inspecting the contracted graph above, vertex 3 and vertex 11 are part of "
+"the contracted graph. In the following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:437
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:438
+#: ../../build/doc/contraction-family.rst:452
+#: ../../build/doc/contraction-family.rst:469
+#: ../../build/doc/contraction-family.rst:485
+#: ../../build/doc/contraction-family.rst:507
+msgid ""
+"when selecting the edges, only edges that have the source and the target in "
+"that set are the edges belonging to the contracted graph, that is done in "
+"the WHERE clause."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:440
+msgid ""
+"Visually, looking at the original graph, going from 3 to 11: 3 -> 6 -> 11, "
+"and in the contracted graph, it is also 3 -> 6 -> 11. The results, on the "
+"contracted graph match the results as if it was done on the original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:448
+msgid ""
+"case 2: Source belongs to the contracted graph, while target belongs to a "
+"edge subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:452
+msgid ""
+"Inspecting the contracted graph above, vertex 3 is part of the contracted "
+"graph and vertex 1 belongs to the contracted subgraph of edge 19. In the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:450
+msgid ""
+"expand1 holds the contracted vertices of the edge where vertex 1 belongs. "
+"(belongs to edge 19)."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:451
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph and "
+"also the contracted vertices of edge 19."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:454
+msgid ""
+"Visually, looking at the original graph, going from 3 to 1: 3 -> 2 -> 1, and"
+" in the contracted graph, it is also 3 -> 2 -> 1. The results, on the "
+"contracted graph match the results as if it was done on the original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:463
+msgid ""
+"case 3: Source belongs to a vertex subgraph, while target belongs to an edge"
+" subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:464
+msgid ""
+"Inspecting the contracted graph above, vertex 7 belongs to the contracted "
+"subgraph of vertex 5 and vertex 13 belongs to the contracted subgraph of "
+"edge 21. In the following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:466
+#: ../../build/doc/contraction-family.rst:483
+msgid ""
+"expand7 holds the contracted vertices of vertex where vertex 7 belongs. "
+"(belongs to vertex 5)"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:467
+msgid ""
+"expand13 holds the contracted vertices of edge where vertex 13 belongs. "
+"(belongs to edge 21)"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:468
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph, "
+"contracted vertices of vertex 5 and contracted vertices of edge 21."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:471
+msgid ""
+"Visually, looking at the original graph, going from 7 to 13: 7 -> 8 -> 5 -> "
+"10 -> 13, and in the contracted graph, it is also 7 -> 8 -> 5 -> 10 -> 13. "
+"The results, on the contracted graph match the results as if it was done on "
+"the original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:480
+msgid ""
+"case 4: Source belongs to the contracted graph, while target belongs to an "
+"vertex subgraph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:481
+msgid ""
+"Inspecting the contracted graph above, vertex 3 is part of the contracted "
+"graph and vertex 7 belongs to the contracted subgraph of vertex 5. In the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:484
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph and "
+"the contracted vertices of vertex 5."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:487
+msgid ""
+"Visually, looking at the original graph, going from 3 to 7: 3 -> 2 -> 5 -> 8"
+" -> 7, but in the contracted graph, it is 3 -> 5 -> 8 -> 7. The results, on "
+"the contracted graph do not match the results as if it was done on the "
+"original graph. This is because the path contains edge 19 which is added by "
+"the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:495
+msgid "case 5: The path contains an edge added by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:496
+msgid ""
+"In the previous example we can see that the path from vertex 3 to vertex 7 "
+"contains an edge which is added by the contraction algorithm."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:502
+msgid ""
+"Inspecting the contracted graph above, edge 19 should be expanded. In the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:504
+msgid "first_dijkstra holds the results of the dijkstra query."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:505
+msgid ""
+"edges_to_expand holds the edges added by the contraction algorithm and "
+"included in the path."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:506
+msgid ""
+"vertices_in_graph hold the vertices that belong to the contracted graph, "
+"vertices of the contracted solution and the contracted vertices of the edges"
+" added by the contraction algorithm and included in the contracted solution."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:509
+msgid ""
+"Visually, looking at the original graph, going from 3 to 7: 3 -> 2 -> 5 -> 8"
+" -> 7, and in the contracted graph, it is also 3 -> 2 -> 5 -> 8 -> 7. The "
+"results, on the contracted graph match the results as if it was done on the "
+"original graph."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:517
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:519
+msgid ""
+"http://www.cs.cmu.edu/afs/cs/academic/class/15210-f12/www/lectures/lecture16.pdf"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:520
+msgid "http://algo2.iti.kit.edu/documents/routeplanning/geisberger_dipl.pdf"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:521
+msgid ""
+"The queries use :ref:`pgr_contractGraph` function and the :doc:`sampledata` "
+"network."
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:524
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:525
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/contraction-family.rst:526
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/cost-category.po b/locale/ru/LC_MESSAGES/cost-category.po
new file mode 100644
index 0000000..efea606
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/cost-category.po
@@ -0,0 +1,178 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/cost-category.rst:13
+msgid "Cost - Category"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:17
+msgid ":ref:`pgr_aStarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:18
+msgid ":ref:`pgr_bdAstarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:19
+msgid ":ref:`pgr_bdDijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:20
+msgid ":ref:`pgr_dijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:21
+msgid ":ref:`pgr_withPointsCost`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:30
+msgid "General Information"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:34
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:36
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:38
+msgid "Each function works as part of the family it belongs to."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:39
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:40
+msgid ""
+"Returns the sum of the costs of the resulting path(s) for pair combination "
+"of nodes in the graph."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:41
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:42
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:44
+msgid ""
+"The returned values are in the form of a set of `(start_vid, end_vid, "
+"agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:46
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:48
+msgid "The `agg_cost` int the non included values `(v, v)` is `0`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:50
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:52
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:54
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:56
+msgid ""
+"Depending on the function and its parameters, the results can be symmetric."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:58
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:60
+msgid "Any duplicated value in the `start_vids` or in `end_vids` are ignored."
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:62
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:64
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:65
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:70
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:73
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:74
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:75
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/costMatrix-category.po b/locale/ru/LC_MESSAGES/costMatrix-category.po
new file mode 100644
index 0000000..ad36b5e
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/costMatrix-category.po
@@ -0,0 +1,237 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/costMatrix-category.rst:13
+msgid "Cost Matrix - Category"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:17
+msgid ":ref:`pgr_aStarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:18
+msgid ":ref:`pgr_bdAstarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:19
+msgid ":ref:`pgr_bdDijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:20
+msgid ":ref:`pgr_dijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:21
+msgid ":ref:`pgr_withPointsCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:40
+msgid "General Information"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:43
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:45
+msgid ""
+":ref:`tsp` needs as input a symmetric cost matrix and no edge `(u, v)` must "
+"value :math:`\\infty`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:47
+msgid ""
+"This collection of functions will return a cost matrix in form of a table."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:51
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:53
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:55
+msgid "Can be used as input to :ref:`pgr_tsp`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:57
+msgid ""
+"when the resulting matrix is symmetric and there is no :math:`\\infty` "
+"value."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:58
+msgid "It will be the users responsibility to make the matrix symmetric."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:60
+msgid "By using geometric or harmonic average of the non symmetric values."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:61
+msgid "By using max or min the non symmetric values."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:62
+msgid ""
+"By setting the upper triangle to be the mirror image of the lower triangle."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:63
+msgid ""
+"By setting the lower triangle to be the mirror image of the upper triangle."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:65
+msgid "It is also the users responsibility to fix an :math:`\\infty` value."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:67
+msgid "Each function works as part of the family it belongs to."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:68
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:69
+msgid ""
+"Returns the sum of the costs of the shortest path for pair combination of "
+"nodes in the graph."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:70
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:71
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:73
+msgid ""
+"The returned values are in the form of a set of `(start_vid, end_vid, "
+"agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:75
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:77
+msgid "The `agg_cost` int the non included values `(v, v)` is `0`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:79
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:81
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:83
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:85
+msgid ""
+"Depending on the function and its parameters, the results can be symmetric."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:87
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:89
+msgid "Any duplicated value in the `start_vids` are ignored."
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:91
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:93
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:94
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:96
+msgid "Running time: approximately :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:101
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:103
+msgid ":ref:`pgr_tsp`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:106
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:107
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:108
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/cost_result.po b/locale/ru/LC_MESSAGES/cost_result.po
new file mode 100644
index 0000000..cfc1232
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/cost_result.po
@@ -0,0 +1,92 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/cost_result.rst:13
+msgid "pgr_costResult[]"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:19 ../../build/doc/cost_result.rst:52
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:21
+msgid ""
+"``pgr_costResult[]`` — A set of records to describe a path result with cost "
+"attribute."
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:25 ../../build/doc/cost_result.rst:58
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:37 ../../build/doc/cost_result.rst:71
+msgid "sequential ID indicating the path order"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:38 ../../build/doc/cost_result.rst:73
+msgid "generic name, to be specified by the function, typically the node id"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:39 ../../build/doc/cost_result.rst:74
+msgid "generic name, to be specified by the function, typically the edge id"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:40 ../../build/doc/cost_result.rst:75
+msgid "cost attribute"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:46
+msgid "pgr_costResult3[] - Multiple Path Results with Cost"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:54
+msgid ""
+"``pgr_costResult3[]`` — A set of records to describe a path result with cost"
+" attribute."
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:72
+msgid "generic name, to be specified by the function, typically the path id"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:79
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:80
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:81
+msgid "Replaces ``path_result``"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:85
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:87
+msgid ":ref:`introduction`"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:90
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:91
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/cost_result.rst:92
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/dijkstra-family.po b/locale/ru/LC_MESSAGES/dijkstra-family.po
new file mode 100644
index 0000000..a9fa495
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/dijkstra-family.po
@@ -0,0 +1,262 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/dijkstra-family.rst:13
+msgid "Dijkstra - Family of functions"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:17
+msgid ":ref:`pgr_dijkstra` - Dijkstra's algorithm for the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:18
+msgid ""
+":ref:`pgr_dijkstraCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:19
+msgid ""
+":ref:`pgr_dijkstraCostMatrix` - Use pgr_dijkstra to create a costs matrix."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:20
+msgid ""
+":ref:`pgr_drivingDistance` - Use pgr_dijkstra to calculate catchament "
+"information."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:21
+msgid ""
+":ref:`pgr_ksp` - Use Yen algorithm with pgr_dijkstra to get the K shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:22
+msgid ":ref:`pgr_dijkstraVia` - Get a route of a seuence of vertices."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:39
+msgid "The problem definition (Advanced documentation)"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:42
+msgid "Given the following query:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:45
+msgid "pgr_dijkstra(:math:`sql, start_{vid}, end_{vid}, directed`)"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:47
+msgid ""
+"where  :math:`sql = \\{(id_i, source_i, target_i, cost_i, "
+"reverse\\_cost_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:49
+msgid "and"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:51
+msgid ":math:`source = \\bigcup source_i`,"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:52
+msgid ":math:`target = \\bigcup target_i`,"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:54
+msgid "The graphs are defined as follows:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:57
+msgid "Directed graph"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:58
+msgid "The weighted directed graph, :math:`G_d(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:60
+#: ../../build/doc/dijkstra-family.rst:79
+msgid "the set of vertices  :math:`V`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:62
+msgid ":math:`V = source \\cup target \\cup {start_{vid}} \\cup  {end_{vid}}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:64
+#: ../../build/doc/dijkstra-family.rst:84
+msgid "the set of edges :math:`E`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:66
+msgid ""
+":math:`E = \\begin{cases} \\text{ }  \\{(source_i, target_i, cost_i) \\text{"
+" when } cost >=0 \\} & \\quad \\text{if } reverse\\_cost = \\varnothing \\\\"
+" \\text{ }  \\text{ }  & \\quad \\text{ } \\\\ \\text{ }  \\{(source_i, "
+"target_i, cost_i) \\text{ when } cost >=0 \\} &  \\quad \\text{ } \\\\ \\cup"
+"      \\{(target_i, source_i, reverse\\_cost_i) \\text{ when } "
+"reverse\\_cost_i>=0 \\} & \\quad \\text{if } reverse\\_cost \\neq "
+"\\varnothing \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:76
+msgid "Undirected graph"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:77
+msgid "The weighted undirected graph, :math:`G_u(V,E)`, is definied by:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:81
+msgid ":math:`V = source \\cup target \\cup {start_v{vid}} \\cup  {end_{vid}}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:86
+msgid ""
+":math:`E = \\begin{cases} \\text{ }  \\{(source_i, target_i, cost_i) \\text{"
+" when } cost >=0 \\}  & \\quad \\text{ } \\\\ \\cup      \\{(target_i, "
+"source_i, cost_i) \\text{ when } cost >=0 \\}  & \\quad \\text{ if } "
+"reverse\\_cost = \\varnothing \\\\ \\text{ }  \\text{ }  & \\text{ } \\\\ "
+"\\text{ }  \\{(source_i, target_i, cost_i) \\text{ when } cost >=0 \\} & "
+"\\text{ } \\\\ \\cup  \\{(target_i, source_i, cost_i) \\text{ when } cost "
+">=0 \\} & \\text{ } \\\\ \\cup  \\{(target_i, source_i, reverse\\_cost_i) "
+"\\text{ when } reverse\\_cost_i >=0)\\} & \\text{ } \\\\ \\cup  "
+"\\{(source_i, target_i, reverse\\_cost_i) \\text{ when } reverse\\_cost_i "
+">=0)\\} & \\quad \\text{ if } reverse\\_cost \\neq \\varnothing \\\\ "
+"\\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:99
+msgid "The problem"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:100
+msgid "Given:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:102
+msgid ":math:`start_{vid} \\in V` a starting vertex"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:103
+msgid ":math:`end_{vid} \\in V` an ending vertex"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:104
+msgid ""
+":math:`G(V,E) = \\begin{cases} G_d(V,E) & \\quad \\text{ if6 } directed = "
+"true \\\\ G_u(V,E) & \\quad \\text{ if5 } directed = false \\\\ "
+"\\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:109
+msgid "Then:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:118
+msgid ""
+":math:`\\boldsymbol{\\pi} = \\{(path\\_seq_i, node_i, edge_i, cost_i, "
+"agg\\_cost_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:131
+msgid "where:"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:121
+msgid ":math:`path\\_seq_i = i`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:122
+msgid ":math:`path\\_seq_{| \\pi |} = | \\pi |`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:123
+msgid ":math:`node_i \\in V`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:124
+msgid ":math:`node_1 = start_{vid}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:125
+msgid ":math:`node_{| \\pi |}  = end_{vid}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:126
+msgid ":math:`\\forall i \\neq | \\pi |, \\quad (node_i, node_{i+1}, cost_i) \\in E`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:127
+msgid ""
+":math:`edge_i  = \\begin{cases}  id_{(node_i, node_{i+1},cost_i)}  &\\quad  "
+"\\text{when } i \\neq | \\pi | \\\\ -1 &\\quad  \\text{when } i = | \\pi | "
+"\\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:128
+msgid ":math:`cost_i = cost_{(node_i, node_{i+1})}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:129
+msgid ""
+":math:`agg\\_cost_i  = \\begin{cases}  0   &\\quad  \\text{when } i = 1  "
+"\\\\ \\displaystyle\\sum_{k=1}^{i}  cost_{(node_{k-1}, node_k)}  &\\quad  "
+"\\text{when } i \\neq 1 \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:137
+msgid ""
+"In other words: The algorithm returns a the shortest path between "
+":math:`start_{vid}` and :math:`end_{vid}` , if it exists, in terms of a "
+"sequence of nodes  and of edges,"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:134
+msgid ""
+":math:`path\\_seq` indicates the relative position in the path of the "
+":math:`node` or :math:`edge`."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:135
+msgid ""
+":math:`cost` is the cost of the edge to be used to go to the next node."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:136
+msgid ""
+":math:`agg\\_cost` is the cost from the :math:`start_{vid}` up to the node."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:139
+msgid "If there is no path, the resulting set is empty."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:143
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:146
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:147
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:148
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/drivingDistance-category.po b/locale/ru/LC_MESSAGES/drivingDistance-category.po
new file mode 100644
index 0000000..a71b4c7
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/drivingDistance-category.po
@@ -0,0 +1,52 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/drivingDistance-category.rst:14
+msgid "Driving Distance - Category"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:18
+msgid ":ref:`pgr_drivingDistance` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:19
+msgid ":ref:`pgr_withPointsDD` - Driving Distance based on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:20
+msgid "Post pocessing"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:22
+msgid ":ref:`pgr_alphaShape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:23
+msgid ":ref:`pgr_points_as_polygon` - Polygon around a set of points"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:36
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:39
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:40
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:41
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/flow-family.po b/locale/ru/LC_MESSAGES/flow-family.po
new file mode 100644
index 0000000..a000199
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/flow-family.po
@@ -0,0 +1,331 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Flow - Family of functions"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid ""
+":ref:`pgr_maxFlow` - Only the Max flow calculation using Push and Relabel "
+"algorithm."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid ""
+":ref:`pgr_BoykovKolmogorov` - Boykov and Kolmogorov with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:19
+msgid ""
+":ref:`pgr_EdmondsKarp` - Edmonds and Karp algorithm with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid ""
+":ref:`pgr_PushRelabel` - Push and relabel algorithm with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "Applications"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:23
+msgid ""
+":ref:`pgr_edgeDisjointPaths` - Calculates edge disjoint paths between two "
+"groups of vertices."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:24
+msgid ""
+":ref:`pgr_maxCardinalityMatch` - Calculates a maximum cardinality matching "
+"in a graph."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:45
+msgid "Flow Functions General Information"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:51
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:52
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:53
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:54
+msgid ""
+"When the maximum flow is 0 then there is no flow and **EMPTY SET** is "
+"returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:56
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:58
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:59
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:61
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:63
+msgid ""
+"Creates a **super source** and edges to all the source(s), and a **super "
+"target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:64
+msgid ""
+"The maximum flow through the graph is guaranteed to be the value returned by"
+" :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and"
+" can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:66
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:67
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:72
+msgid ""
+":ref:`pgr_maxFlow <pgr_maxFlow>`  is the  maximum Flow and that maximum is "
+"guaranteed to be the same on the functions :ref:`pgr_pushRelabel "
+"<pgr_pushRelabel>`, :ref:`pgr_edmondsKarp <pgr_edmondsKarp>`, "
+":ref:`pgr_boykovKolmogorov <pgr_boykovKolmogorov>`, but the actual flow "
+"through each edge may vary."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:77
+msgid "Problem definition"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:79
+msgid ""
+"A flow network is a directed graph where each edge has a capacity and a "
+"flow. The flow through an edge must not exceed the capacity of the edge. "
+"Additionally, the incoming and outgoing flow of a node must be equal except "
+"the for source which only has outgoing flow, and the destination(sink) which"
+" only has incoming flow."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:83
+msgid ""
+"Maximum flow algorithms calculate the maximum flow through the graph and the"
+" flow of each edge."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:85
+msgid ""
+"The maximum flow through the graph is guaranteed to be the same with all "
+"implementations, but the actual flow through each edge may vary. Given the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:89
+msgid "pgr_maxFlow :math:`(edges\\_sql, source\\_vertex, sink\\_vertex)`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:91
+msgid ""
+"where :math:`edges\\_sql = \\{(id_i, source_i, target_i, capacity_i, "
+"reverse\\_capacity_i)\\}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:94
+msgid "Graph definition"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:95
+msgid "The weighted directed graph, :math:`G(V,E)`, is defined as:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:97
+msgid "the set of vertices  :math:`V`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:99
+msgid ""
+":math:`source\\_vertex  \\cup  sink\\_vertex  \\bigcup  source_i  \\bigcup  "
+"target_i`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:101
+msgid "the set of edges :math:`E`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:103
+msgid ""
+":math:`E = \\begin{cases} \\text{ } \\{(source_i, target_i, capacity_i) "
+"\\text{ when } capacity > 0 \\} & \\quad  \\text{ if } reverse\\_capacity = "
+"\\varnothing \\\\ \\text{ } & \\quad \\text{ } \\\\ \\{(source_i, target_i, "
+"capacity_i) \\text{ when } capacity > 0 \\} & \\text{ } \\\\ \\cup "
+"\\{(target_i, source_i, reverse\\_capacity_i) \\text{ when } "
+"reverse\\_capacity_i > 0)\\} & \\quad \\text{ if } reverse\\_capacity \\neq "
+"\\varnothing \\\\ \\end{cases}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:111
+msgid "Maximum flow problem"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:112
+msgid "Given:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:115
+msgid ":math:`G(V,E)`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:116
+msgid ":math:`source\\_vertex \\in V` the source vertex"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:117
+msgid ":math:`sink\\_vertex \\in V` the sink vertex"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:119
+msgid "Then:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:121
+msgid ":math:`pgr\\_maxFlow(edges\\_sql, source, sink) = \\boldsymbol{\\Phi}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:123
+msgid ""
+":math:`\\boldsymbol{\\Phi} = {(id_i, edge\\_id_i, source_i, target_i, "
+"flow_i, residual\\_capacity_i)}`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:125
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:127
+msgid ""
+":math:`\\boldsymbol{\\Phi}` is a subset of the original edges with their "
+"residual capacity and flow. The maximum flow through the graph can be "
+"obtained by aggregating on the source or sink and summing the flow from/to "
+"it. In particular:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:129
+msgid ":math:`id_i = i`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:130
+msgid ":math:`edge\\_id = id_i` in edges_sql"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:131
+msgid ":math:`residual\\_capacity_i = capacity_i - flow_i`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:135
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:137
+msgid "https://en.wikipedia.org/wiki/Maximum_flow_problem"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:140
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:141
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:142
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/geom_result.po b/locale/ru/LC_MESSAGES/geom_result.po
new file mode 100644
index 0000000..e2d89a1
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/geom_result.po
@@ -0,0 +1,74 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/geom_result.rst:13
+msgid "pgr_geomResult[]"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:21
+msgid ""
+"``pgr_geomResult[]`` — A set of records to describe a path result with "
+"geometry attribute."
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:25
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:37
+msgid "sequential ID indicating the path order"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:38 ../../build/doc/geom_result.rst:39
+msgid "generic name, to be specified by the function"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:40
+msgid "geometry attribute"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:44
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:45
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:46
+msgid "Replaces ``geoms``"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:50
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:52
+msgid ":ref:`introduction`"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:56
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:57
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/geom_result.rst:58
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/index.po b/locale/ru/LC_MESSAGES/index.po
new file mode 100644
index 0000000..44ac3e4
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/index.po
@@ -0,0 +1,306 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/index.rst:14
+msgid "Table of Contents"
+msgstr ""
+
+#: ../../build/doc/index.rst:16
+msgid ""
+"pgRouting extends the `PostGIS <http://postgis.net>`_/`PostgreSQL "
+"<http://postgresql.org>`_ geospatial database to provide geospatial routing "
+"and other network analysis functionality."
+msgstr ""
+
+#: ../../build/doc/index.rst:18
+msgid "This is the manual for pgRouting |release|."
+msgstr ""
+
+#: ../../build/doc/index.rst:24
+msgid ""
+"The pgRouting Manual is licensed under a `Creative Commons Attribution-Share"
+" Alike 3.0 License <http://creativecommons.org/licenses/by-sa/3.0/>`_. Feel "
+"free to use this material any way you like, but we ask that you attribute "
+"credit to the pgRouting Project and wherever possible, a link back to "
+"http://pgrouting.org. For other licenses used in pgRouting see the "
+":ref:`license` page."
+msgstr ""
+
+#: ../../build/doc/index.rst:27
+msgid "General"
+msgstr ""
+
+#: ../../build/doc/index.rst:37
+msgid ":doc:`sampledata` that is used in the examples of this manual."
+msgstr ""
+
+#: ../../build/doc/index.rst:45
+msgid "Pgrouting Concepts"
+msgstr ""
+
+#: ../../build/doc/index.rst:54
+msgid "Reference"
+msgstr ""
+
+#: ../../build/doc/index.rst:55
+msgid ":ref:`pgr_version` - to get pgRouting's version information."
+msgstr ""
+
+#: ../../build/doc/index.rst:64
+msgid ":ref:`Data Types <data_types>`"
+msgstr ""
+
+#: ../../build/doc/index.rst:67
+msgid ""
+":ref:`type_cost_result` -  A set of records to describe a path result with "
+"cost attribute."
+msgstr ""
+
+#: ../../build/doc/index.rst:68
+msgid ""
+":ref:`pgr_costResult3[]<type_cost_result3>` - A set of records to describe a"
+" path result with cost attribute."
+msgstr ""
+
+#: ../../build/doc/index.rst:69
+msgid ""
+":ref:`pgr_geomResult<type_geom_result>` - A set of records to describe a "
+"path result with geometry attribute."
+msgstr ""
+
+#: ../../build/doc/index.rst:78
+msgid ":ref:`Topology Functions <topology_functions>`"
+msgstr ""
+
+#: ../../build/doc/index.rst:80
+msgid ""
+":ref:`pgr_create_topology` -  to create a topology based on the geometry."
+msgstr ""
+
+#: ../../build/doc/index.rst:81
+msgid ""
+":ref:`pgr_create_vert_table` - to reconstruct the vertices table based on "
+"the source and target information."
+msgstr ""
+
+#: ../../build/doc/index.rst:82
+msgid ""
+":ref:`pgr_analyze_graph`  - to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/index.rst:83
+msgid ":ref:`pgr_analyze_oneway` - to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/index.rst:84
+msgid ":ref:`pgr_node_network`  -to create nodes to a not noded edge table."
+msgstr ""
+
+#: ../../build/doc/index.rst:93
+msgid ":ref:`Routing functions <routing_functions>`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:4
+msgid ":ref:`all_pairs`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:6
+msgid ":ref:`pgr_floydWarshall` - Floyd-Warshall's Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:7
+msgid ":ref:`pgr_johnson`- Johnson’s Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:9
+msgid ":ref:`pgr_astar` - Shortest Path A*"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:11
+msgid ":ref:`pgr_bdAstar` - Bi-directional A* Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:13
+msgid ":ref:`pgr_bdDijkstra` - Bi-directional Dijkstra Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:16
+msgid ":ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:3
+msgid ":ref:`pgr_dijkstra` - Dijkstra's algorithm for the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:4
+msgid ""
+":ref:`pgr_dijkstraCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:5
+msgid ""
+":ref:`pgr_dijkstraCostMatrix` - Use pgr_dijkstra to create a costs matrix."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:6
+msgid ""
+":ref:`pgr_drivingDistance` - Use pgr_dijkstra to calculate catchament "
+"information."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:7
+msgid ""
+":ref:`pgr_ksp` - Use Yen algorithm with pgr_dijkstra to get the K shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:8
+msgid ":ref:`pgr_dijkstraVia` - Get a route of a seuence of vertices."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:22
+msgid ":ref:`pgr_ksp` - K-Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:24
+msgid ":ref:`pgr_trsp<trsp>` - Turn Restriction Shortest Path (TRSP)"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:26
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:3
+msgid ":ref:`pgr_TSP` - When input is given as matrix cell information."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:4
+msgid ":ref:`pgr_eucledianTSP` - When input are coordinates."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:32
+msgid ":ref:`drivingDistance`"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:3
+msgid ":ref:`pgr_drivingDistance` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:4
+msgid ":ref:`pgr_withPointsDD` - Driving Distance based on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:5
+msgid "Post pocessing"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:7
+msgid ":ref:`pgr_alphaShape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:8
+msgid ":ref:`pgr_points_as_polygon` - Polygon around a set of points"
+msgstr ""
+
+#: ../../build/doc/index.rst:108
+msgid "Available Functions but not official pgRouting functions"
+msgstr ""
+
+#: ../../build/doc/index.rst:110
+msgid ":ref:`Stable`"
+msgstr ""
+
+#: ../../build/doc/index.rst:111
+msgid ":ref:`proposed`"
+msgstr ""
+
+#: ../../build/doc/index.rst:121
+msgid ":ref:`Change Log <change_log>`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:3
+msgid ":ref:`changelog_2_5_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:4
+msgid ":ref:`changelog_2_4_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:5
+msgid ":ref:`changelog_2_4_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:6
+msgid ":ref:`changelog_2_4_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:7
+msgid ":ref:`changelog_2_3_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:8
+msgid ":ref:`changelog_2_3_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:9
+msgid ":ref:`changelog_2_3_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:10
+msgid ":ref:`changelog_2_2_4`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:11
+msgid ":ref:`changelog_2_2_3`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:12
+msgid ":ref:`changelog_2_2_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:13
+msgid ":ref:`changelog_2_2_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:14
+msgid ":ref:`changelog_2_2_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:15
+msgid ":ref:`changelog_2_1_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:16
+msgid ":ref:`changelog_2_0_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:17
+msgid ":ref:`changelog_2_0_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:18
+msgid ":ref:`changelog_1_x`"
+msgstr ""
+
+#: ../../build/doc/index.rst:135
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/index.rst:136
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/index.rst:137
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgRouting-concepts.po b/locale/ru/LC_MESSAGES/pgRouting-concepts.po
new file mode 100644
index 0000000..34885ba
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgRouting-concepts.po
@@ -0,0 +1,1071 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "pgRouting Concepts"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:0
+msgid "Contents"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "Getting Started"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid ""
+"This is a simple guide to walk you through the steps of getting started with"
+" pgRouting. In this guide we will cover:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:32
+msgid "Create a routing Database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:34
+msgid ""
+"The first thing we need to do is create a database and load pgrouting in the"
+" database. Typically you will create a database for each project. Once you "
+"have a database to work in, your can load your data and build your "
+"application in that database. This makes it easy to move your project later "
+"if you want to to say a production server."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:40
+msgid "For Postgresql 9.2 and later versions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:51
+msgid "Load Data"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:53
+msgid ""
+"How you load your data will depend in what form it comes it. There are "
+"various OpenSource tools that can help you, like:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:56
+msgid ""
+"this is a tool for loading OSM data into postgresql with pgRouting "
+"requirements"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:57
+msgid "this is the postgresql shapefile loader"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:58
+msgid "this is a vector data conversion utility"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:59
+msgid "this is a tool for loading OSM data into postgresql"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:61
+msgid ""
+"So these tools and probably others will allow you to read vector data so "
+"that you may then load that data into your database as a table of some kind."
+" At this point you need to know a little about your data structure and "
+"content. One easy way to browse your new data table is with pgAdmin3 or "
+"phpPgAdmin."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:69
+msgid "Build a Routing Topology"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:71
+msgid ""
+"Next we need to build a topology for our street data. What this means is "
+"that for any given edge in your street data the ends of that edge will be "
+"connected to a unique node and to other edges that are also connected to "
+"that same unique node. Once all the edges are connected to nodes we have a "
+"graph that can be used for routing with pgrouting. We provide a tool that "
+"will help with this:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:77
+msgid "this step is not needed if data is loaded with `osm2pgrouting`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:83
+msgid ":ref:`pgr_create_topology`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:88
+msgid "Check the Routing Topology"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:90
+msgid ""
+"There are lots of possible sources for errors in a graph. The data that you "
+"started with may not have been designed with routing in mind. A graph has "
+"some very specific requirements. One is that it is *NODED*, this means that "
+"except for some very specific use cases, each road segment starts and ends "
+"at a node and that in general is does not cross another road segment that it"
+" should be connected to."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:97
+msgid ""
+"There can be other errors like the direction of a one-way street being "
+"entered in the wrong direction. We do not have tools to search for all "
+"possible errors but we have some basic tools that might help."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:109
+msgid ":ref:`pgr_analyze_graph`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:110
+msgid ":ref:`pgr_analyze_oneway`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:111
+msgid ":ref:`pgr_node_network`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:117
+msgid "Compute a Path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:119
+msgid ""
+"Once you have all the preparation work done above, computing a route is "
+"fairly easy. We have a lot of different algorithms that can work with your "
+"prepared road network. The general form of a route query is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:127
+msgid ""
+"As you can see this is fairly straight forward and you can look and the "
+"specific algorithms for the details of the signatures and how to use them. "
+"These results have information like edge id and/or the node id along with "
+"the cost or geometry for the step in the path from *start* to *end*. Using "
+"the ids you can join these result back to your edge table to get more "
+"information about each step in the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:134
+msgid ":ref:`pgr_dijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:141
+msgid "Inner Queries"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:146
+msgid ""
+"There are several kinds of valid inner queries and also the columns returned"
+" are depending of the function. Which kind of inner query will depend on the"
+" function(s) requirements. To simplify variety of types, ``ANY-INTEGER`` and"
+" ``ANY-NUMERICAL`` is used."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:152
+#: ../../build/doc/pgRouting-concepts.rst:182
+#: ../../build/doc/pgRouting-concepts.rst:212
+#: ../../build/doc/pgRouting-concepts.rst:269
+#: ../../build/doc/pgRouting-concepts.rst:300
+#: ../../build/doc/pgRouting-concepts.rst:334
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:154
+#: ../../build/doc/pgRouting-concepts.rst:184
+#: ../../build/doc/pgRouting-concepts.rst:214
+#: ../../build/doc/pgRouting-concepts.rst:271
+#: ../../build/doc/pgRouting-concepts.rst:302
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:155
+#: ../../build/doc/pgRouting-concepts.rst:185
+#: ../../build/doc/pgRouting-concepts.rst:215
+#: ../../build/doc/pgRouting-concepts.rst:272
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:162
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:164
+#: ../../build/doc/pgRouting-concepts.rst:195
+#: ../../build/doc/pgRouting-concepts.rst:247
+#: ../../build/doc/pgRouting-concepts.rst:282
+#: ../../build/doc/pgRouting-concepts.rst:314
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+#: ../../build/doc/pgRouting-concepts.rst:317
+#: ../../build/doc/pgRouting-concepts.rst:360
+#: ../../build/doc/pgRouting-concepts.rst:383
+#: ../../build/doc/pgRouting-concepts.rst:400
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:227
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+#: ../../build/doc/pgRouting-concepts.rst:317
+#: ../../build/doc/pgRouting-concepts.rst:360
+#: ../../build/doc/pgRouting-concepts.rst:383
+#: ../../build/doc/pgRouting-concepts.rst:400
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:227
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:167
+#: ../../build/doc/pgRouting-concepts.rst:198
+#: ../../build/doc/pgRouting-concepts.rst:227
+#: ../../build/doc/pgRouting-concepts.rst:250
+#: ../../build/doc/pgRouting-concepts.rst:285
+#: ../../build/doc/pgRouting-concepts.rst:317
+#: ../../build/doc/pgRouting-concepts.rst:360
+#: ../../build/doc/pgRouting-concepts.rst:383
+#: ../../build/doc/pgRouting-concepts.rst:400
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:169
+#: ../../build/doc/pgRouting-concepts.rst:252
+#: ../../build/doc/pgRouting-concepts.rst:287
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:169
+#: ../../build/doc/pgRouting-concepts.rst:170
+#: ../../build/doc/pgRouting-concepts.rst:171
+#: ../../build/doc/pgRouting-concepts.rst:200
+#: ../../build/doc/pgRouting-concepts.rst:201
+#: ../../build/doc/pgRouting-concepts.rst:252
+#: ../../build/doc/pgRouting-concepts.rst:253
+#: ../../build/doc/pgRouting-concepts.rst:254
+#: ../../build/doc/pgRouting-concepts.rst:287
+#: ../../build/doc/pgRouting-concepts.rst:288
+#: ../../build/doc/pgRouting-concepts.rst:289
+#: ../../build/doc/pgRouting-concepts.rst:290
+#: ../../build/doc/pgRouting-concepts.rst:294
+#: ../../build/doc/pgRouting-concepts.rst:319
+#: ../../build/doc/pgRouting-concepts.rst:324
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:169
+#: ../../build/doc/pgRouting-concepts.rst:252
+#: ../../build/doc/pgRouting-concepts.rst:287
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:170
+#: ../../build/doc/pgRouting-concepts.rst:200
+#: ../../build/doc/pgRouting-concepts.rst:253
+#: ../../build/doc/pgRouting-concepts.rst:288
+#: ../../build/doc/pgRouting-concepts.rst:404
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:170
+#: ../../build/doc/pgRouting-concepts.rst:200
+#: ../../build/doc/pgRouting-concepts.rst:253
+#: ../../build/doc/pgRouting-concepts.rst:288
+#: ../../build/doc/pgRouting-concepts.rst:404
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:171
+#: ../../build/doc/pgRouting-concepts.rst:201
+#: ../../build/doc/pgRouting-concepts.rst:254
+#: ../../build/doc/pgRouting-concepts.rst:289
+#: ../../build/doc/pgRouting-concepts.rst:405
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:171
+#: ../../build/doc/pgRouting-concepts.rst:201
+#: ../../build/doc/pgRouting-concepts.rst:254
+#: ../../build/doc/pgRouting-concepts.rst:289
+#: ../../build/doc/pgRouting-concepts.rst:405
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:172
+#: ../../build/doc/pgRouting-concepts.rst:202
+#: ../../build/doc/pgRouting-concepts.rst:255
+#: ../../build/doc/pgRouting-concepts.rst:369
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:172
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:202
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:255
+#: ../../build/doc/pgRouting-concepts.rst:259
+#: ../../build/doc/pgRouting-concepts.rst:263
+#: ../../build/doc/pgRouting-concepts.rst:264
+#: ../../build/doc/pgRouting-concepts.rst:265
+#: ../../build/doc/pgRouting-concepts.rst:266
+#: ../../build/doc/pgRouting-concepts.rst:325
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:172
+#: ../../build/doc/pgRouting-concepts.rst:202
+#: ../../build/doc/pgRouting-concepts.rst:255
+#: ../../build/doc/pgRouting-concepts.rst:290
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:174
+#: ../../build/doc/pgRouting-concepts.rst:204
+#: ../../build/doc/pgRouting-concepts.rst:257
+#: ../../build/doc/pgRouting-concepts.rst:292
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:259
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:259
+#: ../../build/doc/pgRouting-concepts.rst:294
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:176
+#: ../../build/doc/pgRouting-concepts.rst:206
+#: ../../build/doc/pgRouting-concepts.rst:259
+#: ../../build/doc/pgRouting-concepts.rst:294
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:178
+#: ../../build/doc/pgRouting-concepts.rst:208
+#: ../../build/doc/pgRouting-concepts.rst:261
+#: ../../build/doc/pgRouting-concepts.rst:296
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:193
+msgid "Description of the edges_sql query (id is not necessary)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:224
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:227
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:229
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:229
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:229
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:230
+msgid "**via_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:230
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:230
+msgid "Array of ordered vertices identifiers that are going to be visited."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:233
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:231
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:232
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:233
+msgid "**strict**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:233
+msgid "``false``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:233
+msgid "When ``false`` ignores missing paths returning all paths found"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:234
+msgid "When ``true`` if a path is missing stops and returns `EMPTY SET`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid "**U_turn_on_edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:235
+msgid ""
+"When ``true`` departing from a visited vertex will not try to avoid using "
+"the edge used to reach it.  In other words, U turn using the edge with same "
+"`id` is allowed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:236
+msgid ""
+"When ``false`` when a departing from a visited vertex tries to avoid using "
+"the edge used to reach it.  In other words, U turn using the edge with same "
+"`id` is used when no other path is found."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:245
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:263
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:263
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:264
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:264
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:265
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:265
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:266
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:266
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:280
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:290
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:294
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:312
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:319
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:319
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:321
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:322
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:324
+#: ../../build/doc/pgRouting-concepts.rst:403
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:324
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:325
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:325
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:326
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:326
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:326
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:328
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:329
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:330
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:336
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:337
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:345
+msgid "Return columns & values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:350
+msgid ""
+"There are several kinds of columns returned are depending of the function."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:355
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:357
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:362
+#: ../../build/doc/pgRouting-concepts.rst:402
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:362
+#: ../../build/doc/pgRouting-concepts.rst:363
+#: ../../build/doc/pgRouting-concepts.rst:364
+#: ../../build/doc/pgRouting-concepts.rst:402
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:362
+#: ../../build/doc/pgRouting-concepts.rst:402
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:363
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:363
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:364
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:364
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:365
+#: ../../build/doc/pgRouting-concepts.rst:385
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:365
+#: ../../build/doc/pgRouting-concepts.rst:366
+#: ../../build/doc/pgRouting-concepts.rst:367
+#: ../../build/doc/pgRouting-concepts.rst:368
+#: ../../build/doc/pgRouting-concepts.rst:385
+#: ../../build/doc/pgRouting-concepts.rst:386
+#: ../../build/doc/pgRouting-concepts.rst:403
+#: ../../build/doc/pgRouting-concepts.rst:404
+#: ../../build/doc/pgRouting-concepts.rst:405
+#: ../../build/doc/pgRouting-concepts.rst:406
+#: ../../build/doc/pgRouting-concepts.rst:407
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:365
+#: ../../build/doc/pgRouting-concepts.rst:385
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:366
+#: ../../build/doc/pgRouting-concepts.rst:386
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:366
+#: ../../build/doc/pgRouting-concepts.rst:386
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:367
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:367
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:368
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:368
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:369
+#: ../../build/doc/pgRouting-concepts.rst:370
+#: ../../build/doc/pgRouting-concepts.rst:387
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:369
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:370
+#: ../../build/doc/pgRouting-concepts.rst:387
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:370
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:378
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:380
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:387
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:397
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:403
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:406
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:406
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:407
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:407
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:415
+msgid "Advanced Topics"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:423
+msgid "Routing Topology"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:427
+#: ../../build/doc/pgRouting-concepts.rst:528
+msgid "Overview"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:428
+msgid ""
+"Typically when GIS files are loaded into the data database for use with "
+"pgRouting they do not have topology information associated with them. To "
+"create a useful topology the data needs to be \"noded\". This means that "
+"where two or more roads form an intersection there it needs to be a node at "
+"the intersection and all the road segments need to be broken at the "
+"intersection, assuming that you can navigate from any of these segments to "
+"any other segment via that intersection."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:430
+msgid ""
+"You can use the :ref:`graph analysis functions <analytics>` to help you see "
+"where you might have topology problems in your data. If you need to node "
+"your data, we also have a function :ref:`pgr_nodeNetwork() "
+"<pgr_node_network>` that might work for you. This function splits ALL "
+"crossing segments and nodes them. There are some cases where this might NOT "
+"be the right thing to do."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:432
+msgid ""
+"For example, when you have an overpass and underpass intersection, you do "
+"not want these noded, but pgr_nodeNetwork does not know that is the case and"
+" will node them which is not good because then the router will be able to "
+"turn off the overpass onto the underpass like it was a flat 2D intersection."
+" To deal with this problem some data sets use z-levels at these types of "
+"intersections and other data might not node these intersection which would "
+"be ok."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:434
+msgid ""
+"For those cases where topology needs to be added the following functions may"
+" be useful. One way to prep the data for pgRouting is to add the following "
+"columns to your table and then populate them as appropriate. This example "
+"makes a lot of assumption like that you original data tables already has "
+"certain columns in it like ``one_way``, ``fcc``, and possibly others and "
+"that they contain specific data values. This is only to give you an idea of "
+"what you can do with your data."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:455
+msgid ""
+"The function :ref:`pgr_createTopology() <pgr_create_topology>` will create "
+"the ``vertices_tmp`` table and populate the ``source`` and ``target`` "
+"columns. The following example populated the remaining columns. In this "
+"example, the ``fcc`` column contains feature class code and the ``CASE`` "
+"statements converts it to an average speed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:518
+msgid ""
+"Now your database should be ready to use any (most?) of the pgRouting "
+"algorithms."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:524
+msgid "Graph Analytics"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:529
+msgid ""
+"It is common to find problems with graphs that have not been constructed "
+"fully noded or in graphs with z-levels at intersection that have been "
+"entered incorrectly. An other problem is one way streets that have been "
+"entered in the wrong direction. We can not detect errors with respect to "
+"\"ground\" truth, but we can look for inconsistencies and some anomalies in "
+"a graph and report them for additional inspections."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:531
+msgid ""
+"We do not current have any visualization tools for these problems, but I "
+"have used mapserver to render the graph and highlight potential problem "
+"areas. Someone familiar with graphviz might contribute tools for generating "
+"images with that."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:535
+msgid "Analyze a Graph"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:537
+msgid ""
+"With :ref:`pgr_analyze_graph` the graph can be checked for errors. For "
+"example for table \"mytab\" that has \"mytab_vertices_pgr\" as the vertices "
+"table:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:560
+msgid "In the vertices table \"mytab_vertices_pgr\":"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:562
+msgid "Deadends are identified by ``cnt=1``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:563
+msgid "Potencial gap problems are identified with ``chk=1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:581
+msgid ""
+"For isolated road segments, for example, a segment where both ends are "
+"deadends. you can find these with the following query:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:590
+msgid ""
+"If you want to visualize these on a graphic image, then you can use "
+"something like mapserver to render the edges and the vertices and style "
+"based on ``cnt`` or if they are isolated, etc. You can also do this with a "
+"tool like graphviz, or geoserver or other similar tools."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:594
+msgid "Analyze One Way Streets"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:596
+msgid ""
+":ref:`pgr_analyze_oneway` analyzes one way streets in a graph and identifies"
+" any flipped segments. Basically if you count the edges coming into a node "
+"and the edges exiting a node the number has to be greater than one."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:598
+msgid ""
+"This query will add two columns to the vertices_tmp table ``ein int`` and "
+"``eout int`` and populate it with the appropriate counts. After running this"
+" on a graph you can identify nodes with potential problems with the "
+"following query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:601
+msgid ""
+"The rules are defined as an array of text strings that if match the ``col`` "
+"value would be counted as true for the source or target in or out condition."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:605
+msgid "Example"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:607
+msgid ""
+"Lets assume we have a table \"st\" of edges and a column \"one_way\" that "
+"might have values like:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:609
+msgid "'FT'    - oneway from the source to the target node."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:610
+msgid "'TF'    - oneway from the target to the source node."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:611
+msgid "'B'     - two way street."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:612
+msgid "''      - empty field, assume twoway."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:613
+msgid "<NULL>  - NULL field, use two_way_if_null flag."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:615
+msgid ""
+"Then we could form the following query to analyze the oneway streets for "
+"errors."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:634
+msgid ""
+"Typically these problems are generated by a break in the network, the one "
+"way direction set wrong, maybe an error related to z-levels or a network "
+"that is not properly noded."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:636
+msgid ""
+"The above tools do not detect all network issues, but they will identify "
+"some common problems. There are other problems that are hard to detect "
+"because they are more global in nature like multiple disconnected networks. "
+"Think of an island with a road network that is not connected to the mainland"
+" network because the bridge or ferry routes are missing."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:644
+msgid "Performance Tips"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:651
+msgid "For the Routing functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:653
+msgid ""
+"To get faster results bound your queries to the area of interest of routing "
+"to have, for example, no more than one million rows."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:655
+msgid ""
+"Use an inner query SQL that does not include some edges in the routing "
+"function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:663
+msgid "Integrating the inner query to the pgRouting function:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:677
+msgid "For the topology functions:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:679
+msgid ""
+"When \"you know\" that you are going to remove a set of edges from the edges"
+" table, and without those edges you are going to use a routing function you "
+"can do the following:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:681
+msgid "Analize the new topology based on the actual topology:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:687
+msgid "Or create a new topology if the change is permanent:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:698
+msgid "How to contribute"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:701
+msgid "Wiki"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:702
+msgid ""
+"Edit an existing  `pgRouting Wiki "
+"<https://github.com/pgRouting/pgrouting/wiki>`_ page."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:703
+msgid "Or create a new Wiki page"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:705
+msgid ""
+"Create a page on the `pgRouting Wiki "
+"<https://github.com/pgRouting/pgrouting/wiki>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:706
+msgid "Give the title an appropriate name"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:709
+msgid ""
+"`Example <https://github.com/pgRouting/pgrouting/wiki/How-to:-Handle-"
+"parallel-edges-(KSP)>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:713
+msgid "Adding Functionaity to pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:714
+msgid ""
+"Consult the `developer's documentation "
+"<http://docs.pgrouting.org/doxy/2.4/index.html>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:719
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:720
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:721
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgRouting-installation.po b/locale/ru/LC_MESSAGES/pgRouting-installation.po
new file mode 100644
index 0000000..71b7f5f
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgRouting-installation.po
@@ -0,0 +1,418 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgRouting-installation.rst:13
+msgid "Installation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:16
+msgid "Table of Contents"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:17
+msgid ":ref:`install-short`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:18
+msgid ":ref:`install_get_sources`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:19
+msgid ":ref:`install_enable_db`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:20
+msgid ":ref:`install_dependencies`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:21
+msgid ":ref:`install_configuring`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:22
+msgid ":ref:`install_build`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:23
+msgid ":ref:`install_testing`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:25
+msgid ""
+"Instructions for downloading and installing binaries for different Operative"
+" systems instructions and additional notes and corrections not included in "
+"this documentation can be found in `Installation wiki "
+"<https://github.com/pgRouting/pgrouting/wiki/Notes-on-Download%2C-"
+"Installation-and-building-pgRouting>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:27
+msgid ""
+"To use pgRouting postGIS needs to be installed, please read the information "
+"about installation in this `Install Guide "
+"<http://www.postgis.us/presentations/postgis_install_guide_22.html>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:32
+msgid "Short Version"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:37
+msgid "Extracting the tar ball"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:44
+msgid "To compile assuming you have all the dependencies in your search path:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:54
+msgid ""
+"Once pgRouting is installed, it needs to be enabled in each individual "
+"database you want to use it in."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:66
+msgid "Get the sources"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:69
+msgid ""
+"The pgRouting latest release can be found in "
+"https://github.com/pgRouting/pgrouting/releases/latest"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:72
+msgid "wget"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:73
+msgid "To download this release:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:81
+msgid "Goto :ref:`install-short` to the extract and compile instructions."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:84
+msgid "git"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:85
+msgid "To download the repository"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:93
+msgid ""
+"Goto :ref:`install-short` to the compile instructions (there is no tar "
+"ball)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:100
+msgid "Enabling and upgrading in the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:103
+msgid "Enabling the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:104
+msgid ""
+"pgRouting is an extension and depends on postGIS. Enabling postGIS before "
+"enabling pgRouting in the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:113
+msgid "Upgrading the database"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:114
+msgid ""
+"To upgrade pgRouting in the database to version 2.4.0 use the following "
+"command:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:122
+msgid ""
+"More information can be found in "
+"https://www.postgresql.org/docs/current/static/sql-createextension.html"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:128
+msgid "Dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:131
+msgid "Compilation Dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:132
+msgid ""
+"To be able to compile pgRouting, make sure that the following dependencies "
+"are met:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:134
+msgid "C and C++0x compilers * g++ version >= 4.8"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:136
+msgid "Postgresql version >= 9.2"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:137
+msgid "PostGIS version >= 2.0"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:138
+msgid "The Boost Graph Library (BGL). Version >= 1.46"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:139
+msgid "CMake >= 2.8.8"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:140
+msgid "CGAL >=  4.2"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:144
+msgid "optional dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:145
+msgid "For user's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:147
+msgid "Sphinx >= 1.1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:148
+msgid "Latex"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:150
+msgid "For developer's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:152
+msgid "Doxygen >= 1.7"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:154
+msgid "For testing"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:156
+msgid "pgtap"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:157
+msgid "pg_prove"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:161
+msgid "Example: Installing dependencies on linux"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:162
+msgid "Installing the compilation dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:174
+msgid "Installing the optional dependencies"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:188
+msgid "Configuring"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:190
+msgid "pgRouting uses the `cmake` system to do the configuration."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:192
+msgid "The build directory is different from the source directory"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:194
+msgid "Create the build directory"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:201
+msgid "Configurable variables"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:205
+msgid "To see the variables that can be configured"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:213
+msgid "Configuring The Documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:214
+msgid ""
+"Most of the effort of the documentation has being on the HTML files. Some "
+"variables for the documentation:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:218
+msgid "Variable"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:218
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:218
+msgid "Comment"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:220
+msgid "WITH_DOC"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:220
+#: ../../build/doc/pgRouting-installation.rst:223
+#: ../../build/doc/pgRouting-installation.rst:224
+#: ../../build/doc/pgRouting-installation.rst:225
+msgid "BOOL=OFF"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:220
+msgid "Turn on/off building the documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:221
+msgid "BUILD_HTML"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:221
+#: ../../build/doc/pgRouting-installation.rst:222
+msgid "BOOL=ON"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:221
+msgid "If ON, turn on/off building HTML for user's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:222
+msgid "BUILD_DOXY"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:222
+msgid "If ON, turn on/off building HTML for developer's documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:223
+msgid "BUILD_LATEX"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:223
+msgid "If ON, turn on/off building PDF"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:224
+msgid "BUILD_MAN"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:224
+msgid "If ON, turn on/off building MAN pages"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:225
+msgid "DOC_USE_BOOTSTRAP"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:225
+msgid "If ON, use sphinx-bootstrap for HTML pages of the users documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:228
+msgid "Configuring with documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:234
+msgid "Most of the effort of the documentation has being on the html files."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:240
+msgid "Building"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:242
+msgid "Using ``make`` to build the code and the documentation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:244
+msgid "The following instructions start from *path/to/pgrouting/build*"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:253
+msgid ""
+"We have tested on several platforms, For installing or reinstalling all the "
+"steps are needed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:255
+msgid "The sql signatures are configured and build in the ``cmake`` command."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:258
+msgid "MinGW on Windows"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:269
+msgid "Linux"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:270
+msgid "The following instructions start from *path/to/pgrouting*"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:280
+msgid "When the configuration changes:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:286
+msgid "and start the build process as mentioned above."
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:291
+msgid "Testing"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:293
+msgid "Currently there is no :code:`make test` and testing is done as follows"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:295
+msgid "The following instructions start from *path/to/pgrouting/*"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:305
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:308
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:309
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-installation.rst:310
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgRouting-introduction.po b/locale/ru/LC_MESSAGES/pgRouting-introduction.po
new file mode 100644
index 0000000..2f5927b
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgRouting-introduction.po
@@ -0,0 +1,222 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgRouting-introduction.rst:13
+msgid "Introduction"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:15
+msgid ""
+"pgRouting is an extension of `PostGIS <http://postgis.net>`_ and `PostgreSQL"
+" <http://postgresql.org>`_ geospatial database and adds routing and other "
+"network analysis functionality. A predecessor of pgRouting – pgDijkstra, "
+"written by Sylvain Pasche from `Camptocamp <http://camptocamp.com>`_, was "
+"later extended by `Orkney <http://www.orkney.co.jp>`_ and renamed to "
+"pgRouting. The project is now supported and maintained by `Georepublic "
+"<http://georepublic.info>`_, `iMaptools <http://imaptools.com/>`__ and a "
+"broad user community."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:17
+msgid ""
+"pgRouting is an `OSGeo Labs <http://wiki.osgeo.org/wiki/OSGeo_Labs>`_ "
+"project of the `OSGeo Foundation <http://osgeo.org>`_ and included on `OSGeo"
+" Live <http://live.osgeo.org/>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:23
+msgid "License"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:25
+msgid "The following licenses can be found in pgRouting:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:30
+msgid "**License**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:32
+msgid "GNU General Public License, version 2"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:33
+msgid ""
+"Most features of pgRouting are available under `GNU General Public License, "
+"version 2 <http://www.gnu.org/licenses/gpl-2.0.html>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:34
+msgid "Boost Software License - Version 1.0"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:35
+msgid ""
+"Some Boost extensions are available under `Boost Software License - Version "
+"1.0 <http://www.boost.org/LICENSE_1_0.txt>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:36
+msgid "MIT-X License"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:37
+msgid ""
+"Some code contributed by iMaptools.com is available under MIT-X license."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:38
+msgid "Creative Commons Attribution-Share Alike 3.0 License"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:39
+msgid ""
+"The pgRouting Manual is licensed under a `Creative Commons Attribution-Share"
+" Alike 3.0 License <http://creativecommons.org/licenses/by-sa/3.0/>`_."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:41
+msgid ""
+"In general license information should be included in the header of each "
+"source file."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:45
+msgid "Contributors"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:48
+msgid "This Release Contributors"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:51
+#: ../../build/doc/pgRouting-introduction.rst:71
+msgid "Individuals (in alphabetical order)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:53
+msgid "Maoguang Wang, Vidhan Jain, Virginia Vergara"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:55
+msgid ""
+"And all the people that give us a little of their time making comments, "
+"finding issues, making pull requests etc."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:58
+#: ../../build/doc/pgRouting-introduction.rst:76
+msgid "Corporate Sponsors (in alphabetical order)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:60
+#: ../../build/doc/pgRouting-introduction.rst:78
+msgid ""
+"These are corporate entities that have contributed developer time, hosting, "
+"or direct monetary funding to the pgRouting project:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:62
+msgid "`Georepublic <https://georepublic.info/en/>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:63
+msgid ""
+"`Google Summer of Code <https://developers.google.com/open-source/gsoc/>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:64
+msgid "`iMaptools <http://imaptools.com>`__"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:65
+msgid "`Paragon Corporation <http://www.paragoncorporation.com/>`_"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:68
+msgid "Contributors Past & Present:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:73
+msgid ""
+"Akio Takubo, Andrea Nardelli, Anton Patrushev, Ashraf Hossain, Christian "
+"Gonzalez, Daniel Kastl, Dave Potts, David Techer, Denis Rykov, Ema Miyawaki,"
+" Florian Thurkow, Frederic Junod, Gerald Fenoy, Jay Mahadeokar, Jinfu Leng, "
+"Kai Behncke, Kishore Kumar, Ko Nagase, Manikata Kondeti, Mario Basa, Martin "
+"Wiesenhaan,  Maxim Dubinin, Maoguang Wang, Mohamed Zia, Mukul Priya, Razequl"
+" Islam, Regina Obe, Rohith Reddy, Sarthak Agarwal, Stephen Woodbridge, "
+"Sylvain Housseman, Sylvain Pasche, Vidhan Jain, Virginia Vergara"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:80
+msgid "Camptocamp"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:81
+msgid "CSIS (University of Tokyo)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:82
+msgid "Georepublic"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:83
+msgid "Google Summer of Code"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:84
+msgid "iMaptools"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:85
+msgid "Orkney"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:86
+msgid "Paragon Corporation"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:90
+msgid "More Information"
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:92
+msgid ""
+"The latest software, documentation and news items are available at the "
+"pgRouting web site http://pgrouting.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:93
+msgid ""
+"PostgreSQL database server at the PostgreSQL main site "
+"http://www.postgresql.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:94
+msgid "PostGIS extension at the PostGIS project web site http://postgis.net."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:95
+msgid "Boost C++ source libraries at http://www.boost.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:96
+msgid ""
+"Computational Geometry Algorithms Library (CGAL) at http://www.cgal.org."
+msgstr ""
+
+#: ../../build/doc/pgRouting-introduction.rst:97
+msgid ""
+"The Migration guide can be found at "
+"https://github.com/pgRouting/pgrouting/wiki/Migration-Guide."
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_KSP.po b/locale/ru/LC_MESSAGES/pgr_KSP.po
new file mode 100644
index 0000000..2ace271
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_KSP.po
@@ -0,0 +1,402 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_KSP.rst:13
+msgid "pgr_KSP"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:18
+msgid "``pgr_KSP`` — Returns the \"K\" shortest paths."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:27
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:28
+msgid "Signature change 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:32
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:34
+msgid ""
+"The K shortest path routing algorithm based on Yen's algorithm. \"K\" is the"
+" number of shortest paths desired."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:37
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:46
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:52
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:64
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:73
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_KSP.rst:83
+#: ../../build/doc/pgr_KSP.rst:103
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_KSP.rst:83
+#: ../../build/doc/pgr_KSP.rst:103
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_KSP.rst:83
+#: ../../build/doc/pgr_KSP.rst:103
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14 ../../build/doc/pgr_KSP.rst:110
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:80
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:85
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:85
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:85
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:86
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:86 ../../build/doc/pgr_KSP.rst:87
+#: ../../build/doc/pgr_KSP.rst:107 ../../build/doc/pgr_KSP.rst:108
+#: ../../build/doc/pgr_KSP.rst:109
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:86
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:87
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:87
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:88
+msgid "**k**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:88 ../../build/doc/pgr_KSP.rst:105
+#: ../../build/doc/pgr_KSP.rst:106
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:88
+msgid "The desiered number of paths."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:89
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:89 ../../build/doc/pgr_KSP.rst:90
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:89
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:90
+msgid "**heap_paths**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:90
+msgid ""
+"(optional). When ``true`` returns all the paths stored in the process heap. "
+"Default is ``false`` which only returns ``k`` paths."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:93
+msgid ""
+"Roughly, if the shortest path has ``N`` edges, the heap will contain about "
+"than ``N * k`` paths for small value of ``k`` and ``k > 1``."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:98
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:100
+msgid ""
+"Returns set of ``(seq, path_seq, path_id, node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:105
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:105
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:106
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:106
+msgid ""
+"Relative position in the path of ``node`` and ``edge``. Has value **1** for "
+"the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:107
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:107
+msgid ""
+"Path identifier. The ordering of the paths For two paths i, j if i < j then "
+"agg_cost(i) <= agg_cost(j)."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:108
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:108
+msgid "Identifier of the node in the path."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:109
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:109
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the route."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:110 ../../build/doc/pgr_KSP.rst:111
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:110
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:111
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:111
+msgid "Aggregate cost from ``start_vid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:115
+msgid ""
+"During the transition to 3.0, because pgr_ksp version 2.0 doesn't have "
+"defined a directed flag nor a heap_path flag, when pgr_ksp is used with only"
+" one flag version 2.0 signature will be used."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:119
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:122
+msgid "Examples to handle the one flag to choose signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:124 ../../build/doc/pgr_KSP.rst:134
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:132
+msgid ""
+"Examples for queries marked as ``directed`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:143
+msgid ""
+"Examples for queries marked as ``undirected`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:145
+msgid "The examples in this section use the following :ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:153
+msgid "Examples for queries marked as ``directed`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:155
+msgid "The examples in this section use the following :ref:`fig3`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:164
+msgid "Examples for queries marked as ``undirected`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:166
+msgid "The examples in this section use the following :ref:`fig4`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:173
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:175
+msgid "http://en.wikipedia.org/wiki/K_shortest_path_routing"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:176
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:179
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:180
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_KSP.rst:181
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_TSP.po b/locale/ru/LC_MESSAGES/pgr_TSP.po
new file mode 100644
index 0000000..a9fecef
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_TSP.po
@@ -0,0 +1,224 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_TSP.rst:13
+msgid "pgr_TSP"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:18
+msgid "``pgr_TSP`` - Returns a route that visits all the nodes exactly once."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:21
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:22
+msgid "Signature changed 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:26
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:28
+msgid ""
+"The travelling salesman problem (TSP) or travelling salesperson problem asks"
+" the following question:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:30
+msgid ""
+"Given a list of cities and the distances between each pair of cities, what "
+"is the shortest possible route that visits each city exactly once and "
+"returns to the origin city?"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:32
+msgid ""
+"This implementation uses simulated annealing to return the approximate "
+"solution when the input is given in the form of matrix cell contents. The "
+"matrix information must be symmetrical."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:37
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:58
+msgid "Basic Use"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:67
+msgid ""
+"Because the documentation examples are auto generated and tested for non "
+"changing results, and the default is to have random execution, the example "
+"is wrapping the actual call."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:81
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:96
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:103
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:106
+msgid "Description of the Matrix Cell SQL query"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:109
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:109
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:109
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:111
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:111 ../../build/doc/pgr_TSP.rst:112
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:111
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:112
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:112
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:113
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:113
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:113
+msgid "Cost for going from start_vid to end_vid"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:116
+msgid "Can be Used with:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:118
+msgid ":ref:`pgr_dijkstraCostmatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:119
+msgid ":ref:`pgr_withPointsCostmatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:120
+msgid ":ref:`pgr_floydWarshall`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:121
+msgid ":ref:`pgr_johnson`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:123
+msgid "To generate a symmetric matrix"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:125
+msgid "directed := false."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:127
+msgid ""
+"If using directed := true, the resulting non symmetric matrix must be "
+"converted to symmetric by fixing the non symmetric values according to your "
+"application needs."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:145
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:147
+msgid "Using with points of interest."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:149
+msgid "To generate a symmetric matrix:"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:151
+msgid ""
+"the **side** information of pointsOfInterset is ignored by not including it "
+"in the query"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:152
+msgid "and **directed := false**"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:158
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:163
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:165
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:166
+msgid "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:167
+msgid "http://en.wikipedia.org/wiki/Simulated_annealing"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:170
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:171
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_TSP.rst:172
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_aStar.po b/locale/ru/LC_MESSAGES/pgr_aStar.po
new file mode 100644
index 0000000..4e2ccb4
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_aStar.po
@@ -0,0 +1,642 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_aStar.rst:13
+msgid "pgr_aStar"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:18
+msgid "``pgr_aStar`` — Returns the shortest path using A* algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:26
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:27
+msgid "pgr_astar(one to one) 2.0.0, Signature changed 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:28
+msgid "pgr_astar(other signatures) 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:33
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:35
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:37
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:38
+msgid "Vertices of the graph are:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:40
+msgid "**positive** when it belongs to the edges_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:42
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:44
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:46
+msgid "The agg_cost the non included values (v, v) is 0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:48
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:50
+msgid "The agg_cost the non included values (u, v) is ∞"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:52
+msgid "When (x,y) coordinates for the same vertex identifier differ:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:54
+msgid "A random selection of the vertex's (x,y) coordinates is used."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:56
+msgid "Running time: :math:`O((E + V) * \\log V)`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:61
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:84
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:92
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:99
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:112
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:118
+msgid "Undirected using  Heuristic 2"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:130
+msgid "One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:139
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:138 ../../build/doc/pgr_aStar.rst:165
+#: ../../build/doc/pgr_aStar.rst:194
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:139 ../../build/doc/pgr_aStar.rst:166
+#: ../../build/doc/pgr_aStar.rst:195
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:141
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_astar` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:144
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_astar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:145
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:157
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:166
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:168
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_aStar` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:171
+msgid "The result is the union of the results of the one to one `pgr_aStar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:172 ../../build/doc/pgr_aStar.rst:201
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:186
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:195
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:197
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:200
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:203
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:217
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_aStar.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_aStar.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13 ../../build/doc/pgr_aStar.rst:234
+#: ../../build/doc/pgr_aStar.rst:235
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:228
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:231
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:233
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:233
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:233
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:234 ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:234
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:235 ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:235
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:236
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:236
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:236
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:238
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:239
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:241
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:241
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:241
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:243
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:244
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:245
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:246
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:247
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:248
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:250
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:250 ../../build/doc/pgr_aStar.rst:251
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:250
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:251
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:251
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:260
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:262
+msgid ":ref:`astar`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:263
+msgid ":doc:`sampledata`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:264
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:265
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:268
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:269
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStar.rst:270
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_aStarCost.po b/locale/ru/LC_MESSAGES/pgr_aStarCost.po
new file mode 100644
index 0000000..41e1637
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_aStarCost.po
@@ -0,0 +1,528 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_aStarCost.rst:13
+msgid "pgr_aStarCost -- proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:18
+msgid ""
+"``pgr_aStarCost`` — Returns the aggregate cost shortest path using "
+":ref:`astar` algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:26
+msgid "Availability: 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:28
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:46
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:53
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:60
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:72
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:78
+msgid "Setting a Heuristic"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:90
+msgid "One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:99
+msgid ""
+"This signature finds a path from one ``start_vid`` to each ``end_vid`` in "
+"``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:98 ../../build/doc/pgr_aStarCost.rst:125
+#: ../../build/doc/pgr_aStarCost.rst:154
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:99 ../../build/doc/pgr_aStarCost.rst:126
+#: ../../build/doc/pgr_aStarCost.rst:155
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:101
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_astar` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:104
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_astar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:105
+msgid ""
+"The extra ``end_vid`` column in the result is used to distinguish to which "
+"path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:117
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:126
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:128
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_aStar` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:131
+msgid "The result is the union of the results of the one to one `pgr_aStar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:132
+msgid ""
+"The extra ``start_vid`` column  in the result is used to distinguish to "
+"which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:146
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:155
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:157
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:160
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:161
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:163
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:177
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCost.rst:191
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCost.rst:191
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_aStarCost.rst:194 ../../build/doc/pgr_aStarCost.rst:195
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:188
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:191
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:193
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:193
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:193
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:194
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:194
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:195
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:195
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:196
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:196
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:196
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:198
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:199
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:201
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:201
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:201
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:203
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:204
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:205
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:206
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:207
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:208
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:210
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:210 ../../build/doc/pgr_aStarCost.rst:211
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:210
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. See "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:211
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:211
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:224
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:226
+msgid ":ref:`astar`."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:227
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:228
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:229
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:232
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:233
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCost.rst:234
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_aStarCostMatrix.po b/locale/ru/LC_MESSAGES/pgr_aStarCostMatrix.po
new file mode 100644
index 0000000..5193921
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_aStarCostMatrix.po
@@ -0,0 +1,457 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:13
+msgid "pgr_aStarCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:18
+msgid ""
+"``pgr_aStarCostMatrix`` - Calculates the a cost matrix using "
+":ref:`pgr_aStar`."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:33
+msgid "Availability: 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:37
+msgid "Using aStar algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:40
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:57
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:60
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:60
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:68
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:80
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:88
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:90
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:98
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_aStarCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:106
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:109
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:111
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:111
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:111
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:112
+msgid "**vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:112
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:112
+msgid "Array of vertices_identifiers."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:113
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:113
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:113
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:115
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:116
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:118
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:118
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:118
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:120
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:121
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:122
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:123
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:124
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:125
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:127
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:127
+#: ../../build/doc/pgr_aStarCostMatrix.rst:128
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:127
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:128
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:128
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:140
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:142
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:150
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:152
+msgid ":ref:`astar`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:153
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:154
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:155
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:158
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:159
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_aStarCostMatrix.rst:160
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_alphaShape.po b/locale/ru/LC_MESSAGES/pgr_alphaShape.po
new file mode 100644
index 0000000..851cd18
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_alphaShape.po
@@ -0,0 +1,169 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_alphaShape.rst:13
+msgid "pgr_alphaShape"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:21
+msgid "``pgr_alphaShape`` — Core function for alpha shape computation."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:27
+msgid ""
+"Returns a table with (x, y) rows that describe the vertices of an alpha "
+"shape."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:35
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:37
+msgid ""
+"``text`` a SQL query, which should return a set of rows with the following "
+"columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:43
+msgid "``int4`` identifier of the vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:44
+msgid "``float8`` x-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:45
+msgid "``float8`` y-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:47
+msgid ""
+"(optional) ``float8`` alpha value. If specified alpha value equals 0 "
+"(default), then optimal alpha value is used. For more information, see `CGAL"
+" - 2D Alpha Shapes "
+"<http://doc.cgal.org/latest/Alpha_shapes_2/group__PkgAlphaShape2.html>`_."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:50
+msgid "Returns a vertex record for each row:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:52
+msgid "x-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:53
+msgid "y-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:55
+msgid ""
+"If a result includes multiple outer/inner rings, return those with separator"
+" row (x=NULL and y=NULL)."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:58
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:59
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:60
+msgid ""
+"Added alpha argument with default 0 (use optimal value) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:61
+msgid ""
+"Supported to return multiple outer/inner ring coordinates with separator row"
+" (x=NULL and y=NULL) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:64
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:65
+msgid ""
+"PgRouting's alpha shape implementation has no way to control the order of "
+"the output points, so the actual output might different for the same input "
+"data. The first query, has the output ordered, he second query shows an "
+"example usage:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:70
+msgid "Example: the (ordered) results"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:76
+msgid "Example: calculating the area"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:77
+msgid "Steps:"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:79
+msgid "Calculates the alpha shape"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:80
+msgid "the :code:`ORDER BY` clause is not used."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:81
+msgid "constructs a polygon"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:82
+msgid "and computes the area"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:90
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:93
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:95
+msgid ":ref:`pgr_drivingDistance` - Driving Distance"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:96
+msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:99
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:100
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_alphaShape.rst:101
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_analyzeGraph.po b/locale/ru/LC_MESSAGES/pgr_analyzeGraph.po
new file mode 100644
index 0000000..22237a6
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_analyzeGraph.po
@@ -0,0 +1,361 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_analyzeGraph.rst:13
+msgid "pgr_analyzeGraph"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:19
+msgid "``pgr_analyzeGraph`` — Analyzes the network topology."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:23
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:25
+#: ../../build/doc/pgr_analyzeGraph.rst:61
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:27
+#: ../../build/doc/pgr_analyzeGraph.rst:63
+msgid "``OK`` after the analysis has finished."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:28
+#: ../../build/doc/pgr_analyzeGraph.rst:69
+msgid "``FAIL`` when the analysis was not completed due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:43
+msgid "Prerequisites"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:44
+msgid ""
+"The  edge table to be analyzed must contain a source column and a target "
+"column filled with id's of the vertices of the segments and the "
+"corresponding vertices table <edge_table>_vertices_pgr that stores the "
+"vertices information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:46
+msgid ""
+"Use :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create the "
+"vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:47
+msgid ""
+"Use :ref:`pgr_createTopology <pgr_create_topology>` to create the topology "
+"and the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:50
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:51
+msgid "The analyze graph function accepts the following parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:53
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:54
+msgid ""
+"``float8`` Snapping tolerance of disconnected edges. (in projection unit)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:55
+msgid ""
+"``text``  Geometry column name of the network table. Default value is "
+"``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:56
+msgid ""
+"``text``  Primary key column name of the network table. Default value is "
+"``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:57
+msgid ""
+"``text`` Source column name of the network table. Default value is "
+"``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:58
+msgid ""
+"``text``  Target column name of the network table.  Default value is "
+"``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:59
+msgid ""
+"``text``   Condition to select  a subset or rows.  Default value is ``true``"
+" to indicate all rows."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:65
+msgid "Uses the vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:66
+msgid ""
+"Fills completely the ``cnt`` and ``chk`` columns of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:67
+msgid ""
+"Returns the analysis of the section of the network defined by  "
+"``rows_where``"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:71
+msgid "The vertices table is not found."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:72
+msgid ""
+"A required column of the Network table is not found or is not of the "
+"appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:73
+msgid "The condition is not well formed."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:74
+msgid "The names of source , target or id are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:75
+msgid "The SRID of the geometry could not be determined."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:79
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:80
+msgid ""
+"The vertices table can be created with :ref:`pgr_createVerticesTable "
+"<pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:82
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:84
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:85
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:86
+msgid "``integer``  Indicator that the vertex might have a problem."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:87
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:88
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:89
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:92
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:93
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:96
+msgid "Usage when the edge table's columns MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:99
+msgid "The simplest way to use pgr_analyzeGraph is:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:106
+msgid "When the arguments are given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:111
+msgid "We get the same result as the simplest way to use the function."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order: In this example, the column ``id`` of the table ``mytable`` is passed"
+" to the function as the geometry column, and the geometry column "
+"``the_geom`` is passed to the function as the id column."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:130
+#: ../../build/doc/pgr_analyzeGraph.rst:208
+msgid "When using the named notation"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:131
+#: ../../build/doc/pgr_analyzeGraph.rst:209
+msgid "The order of the parameters do not matter:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:141
+msgid ""
+"Parameters defined with a default value can be omitted, as long as the value"
+" matches the default:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:148
+#: ../../build/doc/pgr_analyzeGraph.rst:223
+msgid "Selecting rows using rows_where parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:149
+msgid ""
+"Selecting rows based on the id. Displays the analysis a the section of the "
+"network."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:155
+msgid ""
+"Selecting the rows where the geometry is near the geometry of row with "
+"``id`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:161
+msgid ""
+"Selecting the rows where the geometry is near the geometry of the row with "
+"``gid`` =100 of the table ``othertable``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:172
+msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:174
+msgid "For the following table"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:183
+msgid "Using positional notation:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:184
+msgid ""
+"The arguments need to be given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order: In this example, the column ``gid`` of the table ``mytable`` is "
+"passed to the function as the geometry column, and the geometry column "
+"``mygeom`` is passed to the function as the id column."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:219
+msgid ""
+"In this scenario omitting a parameter would create an error because the "
+"default values for the column names do not match the column names of the "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:224
+msgid "Selecting rows based on the id."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:234
+msgid ""
+"Selecting the rows WHERE the geometry is near the geometry of row with "
+"``id`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:246
+msgid ""
+"Selecting the rows WHERE the geometry is near the place='myhouse' of the "
+"table ``othertable``. (note the use of quote_literal)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:263
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:390
+msgid "The examples use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:394
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:396
+msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:397
+msgid ":ref:`pgr_analyze_oneway` to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:398
+msgid ""
+":ref:`pgr_createVerticesTable <pgr_create_vert_table>` to reconstruct the "
+"vertices table based on the source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:399
+msgid ""
+":ref:`pgr_nodeNetwork <pgr_node_network>` to create nodes to a not noded "
+"edge table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:402
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:403
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeGraph.rst:404
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_analyzeOneWay.po b/locale/ru/LC_MESSAGES/pgr_analyzeOneWay.po
new file mode 100644
index 0000000..627da76
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_analyzeOneWay.po
@@ -0,0 +1,290 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:13
+msgid "pgr_analyzeOneway"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:19
+msgid ""
+"``pgr_analyzeOneway`` — Analyzes oneway Sstreets and identifies flipped "
+"segments."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:23
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:25
+msgid ""
+"This function analyzes oneway streets in a graph and identifies any flipped "
+"segments."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:42
+msgid ""
+"The analyses of one way segments is pretty simple but can be a powerful "
+"tools to identifying some the potential problems created by setting the "
+"direction of a segment the wrong way. A node is a `source` if it has edges "
+"the exit from that node and no edges enter that node. Conversely, a node is "
+"a `sink` if all edges enter the node but none exit that node. For a `source`"
+" type node it is logically impossible to exist because no vehicle can exit "
+"the node if no vehicle and enter the node. Likewise, if you had a `sink` "
+"node you would have an infinite number of vehicle piling up on this node "
+"because you can enter it but not leave it."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:44
+msgid ""
+"So why do we care if the are not feasible? Well if the direction of an edge "
+"was reversed by mistake we could generate exactly these conditions. Think "
+"about a divided highway and on the north bound lane one segment got entered "
+"wrong or maybe a sequence of multiple segments got entered wrong or maybe "
+"this happened on a round-about. The result would be potentially a `source` "
+"and/or a `sink` node."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:46
+msgid ""
+"So by counting the number of edges entering and exiting each node we can "
+"identify both `source` and `sink` nodes so that you can look at those areas "
+"of your network to make repairs and/or report the problem back to your data "
+"vendor."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:49
+msgid "Prerequisites"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:50
+msgid ""
+"The  edge table to be analyzed must contain a source column and a target "
+"column filled with id's of the vertices of the segments and the "
+"corresponding vertices table <edge_table>_vertices_pgr that stores the "
+"vertices information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:52
+msgid ""
+"Use :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create the "
+"vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:53
+msgid ""
+"Use :ref:`pgr_createTopology <pgr_create_topology>` to create the topology "
+"and the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:56
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:57
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:58
+msgid "``text[]`` source node **in** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:59
+msgid "``text[]`` source node **out** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:60
+msgid "``text[]`` target node **in** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:61
+msgid "``text[]`` target node **out** rules"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:62
+msgid ""
+"``text`` oneway column name name of the network table. Default value is "
+"``oneway``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:63
+msgid ""
+"``text`` Source column name of the network table. Default value is "
+"``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:64
+msgid ""
+"``text``  Target column name of the network table.  Default value is "
+"``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:65
+msgid ""
+"``boolean`` flag to treat oneway NULL values as bi-directional.  Default "
+"value is ``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:67
+msgid ""
+"It is strongly recommended to use the named notation. See "
+":ref:`pgr_createVerticesTable <pgr_create_vert_table>` or "
+":ref:`pgr_createTopology <pgr_create_topology>` for examples."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:70
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:72
+msgid "``OK`` after the analysis has finished."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:74
+msgid "Uses the vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:75
+msgid ""
+"Fills completely the ``ein`` and ``eout`` columns of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:77
+msgid "``FAIL`` when the analysis was not completed due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:79
+msgid "The vertices table is not found."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:80
+msgid ""
+"A required column of the Network table is not found or is not of the "
+"appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:81
+msgid "The names of source , target or oneway are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:83
+msgid ""
+"The rules are defined as an array of text strings that if match the "
+"``oneway`` value would be counted as ``true`` for the source or target "
+"**in** or **out** condition."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:86
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:87
+msgid ""
+"The vertices table can be created with :ref:`pgr_createVerticesTable "
+"<pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:89
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:91
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:92
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex."
+" See :ref:`pgr_analyzeGgraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:93
+msgid ""
+"``integer``  Indicator that the vertex might have a problem. See "
+":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:94
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as incoming."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:95
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as outgoing."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:96
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:100
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:101
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:105
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:129
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:133
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:135
+msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:136
+msgid ":ref:`analytics` for an overview of the analysis of a graph."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:137
+msgid ""
+":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:138
+msgid ""
+":ref:`pgr_create_vert_table` to reconstruct the vertices table based on the "
+"source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:141
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:142
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_analyzeOneWay.rst:143
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_articulationPoints.po b/locale/ru/LC_MESSAGES/pgr_articulationPoints.po
new file mode 100644
index 0000000..225a3d6
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_articulationPoints.po
@@ -0,0 +1,316 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_articulationPoints.rst:13
+msgid "pgr_articulationPoints - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:16
+msgid ""
+"``pgr_articulationPoints`` - Return the articulation points of an undirected"
+" graph. In particular, the algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:22
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:30
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:32
+msgid ""
+"Those vertices that belong to more than one biconnected component are called"
+" articulation points or, equivalently, cut vertices. Articulation points are"
+" vertices whose removal would increase the number of connected components in"
+" the graph. This implementation can only be used with an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:39
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:41
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:43
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:45
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:47
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:62
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:75
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the return values for articulation points"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:91
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:93
+msgid "http://en.wikipedia.org/wiki/Biconnected_component"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:94
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:97
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:98
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_articulationPoints.rst:99
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_bdAstar.po b/locale/ru/LC_MESSAGES/pgr_bdAstar.po
new file mode 100644
index 0000000..fdfaa05
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_bdAstar.po
@@ -0,0 +1,669 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdAstar.rst:13
+msgid "pgr_bdAstar"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:18
+msgid "``pgr_bdAstar`` — Returns the shortest path using A* algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:26
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:27
+msgid "pgr_bdAstar(one to one) 2.0.0, Signature change on 2.5.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:28
+msgid "pgr_bdAstar(other signatures) 2.5.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:32
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:54
+msgid ""
+"Using these signatures, will load once the graph and perform several one to "
+"one `pgr_bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:56
+msgid ""
+"The result is the union of the results of the one to one `pgr_bdAStar`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:57
+msgid ""
+"The extra ``start_vid`` and/or ``end_vid`` in the result is used to "
+"distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:61
+msgid "Avaliability"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:62
+msgid "pgr_bdAstar(one to one) 2.0, signature change on 2.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:63
+msgid "pgr_bdAstar(other signatures) 2.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:68
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:76
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:87
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to the ``end_vid``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:84
+msgid "on a **directed** graph"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:85
+msgid "with **heuristic**'s value 5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:86
+msgid "with **factor**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:87
+msgid "with **epsilon**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:89
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:102
+msgid "pgr_bdAstar One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:111
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to the ``end_vid``"
+" allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:109
+msgid "**heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:110 ../../build/doc/pgr_bdAstar.rst:137
+#: ../../build/doc/pgr_bdAstar.rst:162 ../../build/doc/pgr_bdAstar.rst:186
+msgid "and/or **factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:111 ../../build/doc/pgr_bdAstar.rst:138
+#: ../../build/doc/pgr_bdAstar.rst:163 ../../build/doc/pgr_bdAstar.rst:187
+msgid "and/or **epsilon**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:114
+msgid ""
+"In the One to One signature, because of the deprecated signature existence, "
+"it is compulsory to indicate if the graph is **directed** or **undirected**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:116
+msgid "Directed using Heuristic 2"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:127
+msgid "pgr_bdAstar One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:139
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to each "
+"``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:135 ../../build/doc/pgr_bdAstar.rst:160
+#: ../../build/doc/pgr_bdAstar.rst:184
+msgid "if the graph is **directed** or **undirected**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:136 ../../build/doc/pgr_bdAstar.rst:161
+#: ../../build/doc/pgr_bdAstar.rst:185
+msgid "and/or **heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:141
+msgid "Directed using Heuristic 3 and a factor of 3.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:152
+msgid "pgr_bdAstar Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:163
+msgid ""
+"This usage finds the shortest path from each ``start_vid`` in ``start_vids``"
+" to the ``end_vid`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:165
+msgid "Undirected graph with Heuristic 4"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:176
+msgid "pgr_bdAstar Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:187
+msgid ""
+"This usage finds the shortest path from each ``start_vid`` in ``start_vids``"
+" to each ``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:189
+msgid "Directed graph with a factor of 0.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:196
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:10 ../../build/doc/bdAstar-family.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11 ../../build/doc/bdAstar-family.rst:13
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:16
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:21
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:22
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:23
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:24
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:25
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:26
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28 ../../build/doc/bdAstar-family.rst:29
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:213
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:215
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:216
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:217
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:218
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:221
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:222
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstar.rst:223
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_bdAstarCost.po b/locale/ru/LC_MESSAGES/pgr_bdAstarCost.po
new file mode 100644
index 0000000..9b72e10
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_bdAstarCost.po
@@ -0,0 +1,594 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdAstarCost.rst:13
+msgid "pgr_bdAstarCost - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:18
+msgid "``pgr_bdAstarCost`` — Returns the shortest path using A* algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:23
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:26
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:32
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:46
+msgid ""
+"Using these signatures, will load once the graph and perform several one to "
+"one `pgr_bdAstarCost`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:48
+msgid ""
+"The result is the union of the results of the one to one `pgr_bdAstarCost`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:49
+msgid ""
+"The extra ``start_vid`` and/or ``end_vid`` in the result is used to "
+"distinguish to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:56
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:64
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:75
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to the ``end_vid``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:72
+msgid "on a **directed** graph"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:73
+msgid "with **heuristic**'s value 5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:74
+msgid "with **factor**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:75
+msgid "with **epsilon**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:77
+msgid "Using the defaults"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:90
+msgid "pgr_bdAstarCost One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:100
+#: ../../build/doc/pgr_bdAstarCost.rst:128
+msgid ""
+"This usage finds the shortest path from the ``start_vid`` to each "
+"``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:97
+#: ../../build/doc/pgr_bdAstarCost.rst:124
+#: ../../build/doc/pgr_bdAstarCost.rst:149
+#: ../../build/doc/pgr_bdAstarCost.rst:173
+msgid "if the graph is **directed** or **undirected**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:98
+msgid "**heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:99
+#: ../../build/doc/pgr_bdAstarCost.rst:126
+#: ../../build/doc/pgr_bdAstarCost.rst:151
+#: ../../build/doc/pgr_bdAstarCost.rst:175
+msgid "and/or **factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:100
+#: ../../build/doc/pgr_bdAstarCost.rst:127
+#: ../../build/doc/pgr_bdAstarCost.rst:152
+#: ../../build/doc/pgr_bdAstarCost.rst:176
+msgid "and/or **epsilon**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:103
+msgid ""
+"In the One to One signature, because of the deprecated signature existence, "
+"it is compulsory to indicate if the graph is **directed** or **undirected**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:105
+msgid "Directed using Heuristic 2"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:116
+msgid "pgr_bdAstarCost One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:125
+#: ../../build/doc/pgr_bdAstarCost.rst:150
+#: ../../build/doc/pgr_bdAstarCost.rst:174
+msgid "and/or **heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:130
+msgid "Directed using Heuristic 3 and a factor of 3.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:141
+msgid "pgr_bdAstarCost Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:152
+msgid ""
+"This usage finds the shortest path from each ``start_vid`` in ``start_vids``"
+" to the ``end_vid`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:154
+msgid "Undirected graph with Heuristic 4"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:165
+msgid "pgr_bdAstarCost Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:176
+msgid ""
+"This usage finds the shortest path from each ``start_vid`` in ``start_vids``"
+" to each ``end_vid`` in ``end_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:178
+msgid "Directed graph with a factor of 0.5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:185
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:10 ../../build/doc/bdAstar-family.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11 ../../build/doc/bdAstar-family.rst:13
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:16
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:21
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:22
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:23
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:24
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:25
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:26
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28 ../../build/doc/bdAstar-family.rst:29
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:202
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:204
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:205
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:206
+msgid ""
+"`Migration Guide <https://github.com/cvvergara/pgrouting/wiki/Migration-"
+"Guide#pgr_bdastar>`_"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:207
+msgid "http://www.boost.org/libs/graph/doc/astar_search.html"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:208
+msgid "http://en.wikipedia.org/wiki/A*_search_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:211
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:212
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCost.rst:213
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_bdAstarCostMatrix.po b/locale/ru/LC_MESSAGES/pgr_bdAstarCostMatrix.po
new file mode 100644
index 0000000..c8738fa
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_bdAstarCostMatrix.po
@@ -0,0 +1,536 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:13
+msgid "pgr_bdAstarCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:18
+msgid ""
+"``pgr_bdAstarCostMatrix`` - Calculates the a cost matrix using "
+":ref:`pgr_bdAstar`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:27
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:35
+msgid "Using Dijkstra algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:38
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:49
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:55
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:68
+msgid ""
+"This usage calculates the cost from the each ``start_vid`` in ``start_vids``"
+" to  each ``start_vid`` in ``start_vids``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:64
+msgid "on a **directed** graph"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:65
+msgid "with **heuristic**'s value 5"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:66
+msgid "with **factor**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:67
+msgid "with **epsilon**'s value 1"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:70
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:82
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:95
+msgid ""
+"This usage calculates the cost from the each ``start_vid`` in ``start_vids``"
+" to  each ``start_vid`` in ``start_vids`` allowing the user to choose"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:91
+msgid "if the graph is **directed** or **undirected**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:92
+msgid "**heuristic**,"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:93
+msgid "and/or **factor**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:94
+msgid "and/or **epsilon**."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:97
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:99
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:107
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for astar like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/bdAstar-family.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/bdAstar-family.rst:10 ../../build/doc/bdAstar-family.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgRouting-concepts.rst:23
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "**x1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+msgid "X coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "**y1**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Y coordinate of `source` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "**x2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "X coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "**y2**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "Y coordinate of `target` vertex."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:30
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:31
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:9
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:10
+msgid "Starting vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11 ../../build/doc/bdAstar-family.rst:13
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:11
+msgid "Starting vertices identifierers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:12
+msgid "Ending vertex identifier."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:13
+msgid "Ending vertices identifiers."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:14
+msgid "Optional."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:16
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:17
+msgid "Default is ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "**heuristic**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:19
+msgid "(optional). Heuristic number. Current valid values 0~5. Default ``5``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:21
+msgid "0: h(v) = 0 (Use this value to compare with pgr_dijkstra)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:22
+msgid "1: h(v) abs(max(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:23
+msgid "2: h(v) abs(min(dx, dy))"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:24
+msgid "3: h(v) = dx * dx + dy * dy"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:25
+msgid "4: h(v) = sqrt(dx * dx + dy * dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:26
+msgid "5: h(v) = abs(dx) + abs(dy)"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid "**factor**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28 ../../build/doc/bdAstar-family.rst:29
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:28
+msgid ""
+"(optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see "
+":ref:`astar_factor`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid "**epsilon**"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:29
+msgid ""
+"(optional). For less restricted results. :math:`epsilon >= 1`.  Default "
+"``1``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:123
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:125
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:133
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:135
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:136
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:137
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:138
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:141
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:142
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdAstarCostMatrix.rst:143
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_bdDijkstra.po b/locale/ru/LC_MESSAGES/pgr_bdDijkstra.po
new file mode 100644
index 0000000..b05e40f
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_bdDijkstra.po
@@ -0,0 +1,541 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdDijkstra.rst:13
+msgid "pgr_bdDijkstra"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:15
+msgid ""
+"``pgr_bdDijkstra`` — Returns the shortest path(s) using Bidirectional "
+"Dijkstra algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:23
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:24
+msgid "pgr_bdDijkstra(one to one) 2.0.0, Signature changed 2.4.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:25
+msgid "pgr_bdDijkstra(other signatures) 2.5.0"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:28
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:54
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:60
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:67
+msgid ""
+"The minimal signature is for a **directed** graph from one ``start_vid`` to "
+"one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:80
+msgid "pgr_bdDijkstra One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:87
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:89
+#: ../../build/doc/pgr_bdDijkstra.rst:112
+#: ../../build/doc/pgr_bdDijkstra.rst:141
+#: ../../build/doc/pgr_bdDijkstra.rst:170
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:90
+#: ../../build/doc/pgr_bdDijkstra.rst:113
+#: ../../build/doc/pgr_bdDijkstra.rst:142
+#: ../../build/doc/pgr_bdDijkstra.rst:171
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:103
+msgid "pgr_bdDijkstra One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:110
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:115
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_dijkstra` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:118
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:119
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:132
+msgid "pgr_bdDijkstra Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:139
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:144
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_dijkstra` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:147
+#: ../../build/doc/pgr_bdDijkstra.rst:176
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:148
+#: ../../build/doc/pgr_bdDijkstra.rst:177
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:161
+msgid "pgr_bdDijkstra Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:168
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:173
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:179
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:190
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10 ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11 ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:208
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:210
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:211
+msgid ":ref:`bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:212
+msgid ""
+"http://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/EPP%20shortest%20path%20algorithms.pdf"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:213
+msgid "https://en.wikipedia.org/wiki/Bidirectional_search"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:216
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:217
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstra.rst:218
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_bdDijkstraCost.po b/locale/ru/LC_MESSAGES/pgr_bdDijkstraCost.po
new file mode 100644
index 0000000..0516529
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_bdDijkstraCost.po
@@ -0,0 +1,470 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:13
+msgid "pgr_bdDijkstraCost - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:15
+msgid ""
+"``pgr_bdDijkstraCost`` — Returns the shortest path(s)'s cost using "
+"Bidirectional Dijkstra algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:23
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:30
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:46
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:52
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:59
+msgid ""
+"The minimal signature is for a **directed** graph from one ``start_vid`` to "
+"one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:72
+msgid "pgr_bdDijkstraCost One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:81
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:80
+#: ../../build/doc/pgr_bdDijkstraCost.rst:102
+#: ../../build/doc/pgr_bdDijkstraCost.rst:130
+#: ../../build/doc/pgr_bdDijkstraCost.rst:158
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:81
+#: ../../build/doc/pgr_bdDijkstraCost.rst:103
+#: ../../build/doc/pgr_bdDijkstraCost.rst:131
+#: ../../build/doc/pgr_bdDijkstraCost.rst:159
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:94
+msgid "pgr_bdDijkstraCost One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:103
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:105
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_dijkstra` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:108
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:109
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:122
+msgid "pgr_bdDijkstraCost Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:131
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:133
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_dijkstra` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:136
+#: ../../build/doc/pgr_bdDijkstraCost.rst:164
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:137
+#: ../../build/doc/pgr_bdDijkstraCost.rst:165
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:150
+msgid "pgr_bdDijkstraCost Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:159
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:161
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:167
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:178
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10 ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11 ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:195
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:197
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:198
+msgid ":ref:`pgr_bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:199
+msgid ""
+"http://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/EPP%20shortest%20path%20algorithms.pdf"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:200
+msgid "https://en.wikipedia.org/wiki/Bidirectional_search"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:203
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:204
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCost.rst:205
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_bdDijkstraCostMatrix.po b/locale/ru/LC_MESSAGES/pgr_bdDijkstraCostMatrix.po
new file mode 100644
index 0000000..0b0a2ae
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_bdDijkstraCostMatrix.po
@@ -0,0 +1,382 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:13
+msgid "pgr_bdDijkstraCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:18
+msgid ""
+"``pgr_bdDijkstraCostMatrix`` - Calculates the a cost matrix using "
+":ref:`pgr_bdDijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:27
+msgid "Availability: 2.5.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:35
+msgid "Using Dijkstra algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:38
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:49
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:55
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:58
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:58
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:66
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:78
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:86
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:88
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:96
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:108
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:108
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:105
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:108
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:110
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:110
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:110
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:111
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:111
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:111
+msgid "Array of identifiers of the vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:112
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:112
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:112
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:122
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:124
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:132
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:134
+msgid ":ref:`bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:135
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:136
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:137
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:140
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:141
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bdDijkstraCostMatrix.rst:142
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_biconnectedComponents.po b/locale/ru/LC_MESSAGES/pgr_biconnectedComponents.po
new file mode 100644
index 0000000..f4db188
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_biconnectedComponents.po
@@ -0,0 +1,349 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:13
+msgid "pgr_biconnectedComponents - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:15
+msgid ""
+"``pgr_biconnectedComponents`` — Return the biconnected components of an "
+"undirected graph. In particular, the algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:31
+msgid ""
+"The biconnected components of an undirected graph are the maximal subsets of"
+" vertices such that the removal of a vertex from particular component will "
+"not disconnect the component. Unlike connected components, vertices may "
+"belong to multiple biconnected components. Vertices can be present in "
+"multiple biconnected components, but each edge can only be contained in a "
+"single biconnected component. So, the output only has edge version."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:36
+msgid "This implementation can only be used with an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:39
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:41
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:43
+msgid "Components are described by edges"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:45
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:47
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:48
+msgid "`edge` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:50
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:53
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:65
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:78
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:14
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid ""
+"Description of the return values for biconnected components, connected "
+"components (edge version) and strongly connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, component, n_seq, edge)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid ""
+"Component identifier. It is equal to the minimum edge identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:94
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:96
+msgid "http://en.wikipedia.org/wiki/Biconnected_component"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:97
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:100
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:101
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_biconnectedComponents.rst:102
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_boykovKolmogorov.po b/locale/ru/LC_MESSAGES/pgr_boykovKolmogorov.po
new file mode 100644
index 0000000..84d76a4
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_boykovKolmogorov.po
@@ -0,0 +1,435 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:14
+msgid "pgr_boykovKolmogorov - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:18
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:20
+msgid ""
+"``pgr_boykovKolmogorov`` — Calculates the flow on the graph edges that "
+"maximizes the flow from the sources to the targets using Boykov Kolmogorov "
+"algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:29
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:30
+msgid "Renamed 2.5.0, Previous name pgr_maxFlowBoykovKolmogorov"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:31
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:8
+msgid ""
+"When the maximum flow is 0 then there is no flow and **EMPTY SET** is "
+"returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:12
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:15
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid ""
+"Creates a **super source** and edges to all the source(s), and a **super "
+"target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid ""
+"The maximum flow through the graph is guaranteed to be the value returned by"
+" :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and"
+" can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:42
+msgid "Running time: Polynomial"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:45
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:61
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:63
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:82
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:84
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:103
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:105
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:124
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:126
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:141
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:4
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10 ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11 ../../build/doc/pgr_maxFlow.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:12
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:159
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:161
+msgid ""
+":ref:`maxFlow`, :ref:`pgr_pushRelabel <pgr_pushRelabel>`, "
+":ref:`pgr_EdmondsKarp <pgr_edmondsKarp>`"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:162
+msgid "http://www.boost.org/libs/graph/doc/boykov_kolmogorov_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:165
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:166
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_boykovKolmogorov.rst:167
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_bridges.po b/locale/ru/LC_MESSAGES/pgr_bridges.po
new file mode 100644
index 0000000..a80bf4e
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_bridges.po
@@ -0,0 +1,310 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_bridges.rst:13
+msgid "pgr_bridges - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:16
+msgid "``pgr_bridges`` - Return the bridges of an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:31
+msgid ""
+"A bridge is an edge of an undirected graph whose deletion increases its "
+"number of connected components. This implementation can only be used with an"
+" undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:36
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:38
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:40
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:42
+msgid "`edge` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:44
+msgid "Running time: :math:`O(E * (V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:47
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:59
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:72
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the return values for bridges"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:88
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:90
+msgid "http://en.wikipedia.org/wiki/Bridge_%28graph_theory%29"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:91
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:94
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:95
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_bridges.rst:96
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_connectedComponents.po b/locale/ru/LC_MESSAGES/pgr_connectedComponents.po
new file mode 100644
index 0000000..2474096
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_connectedComponents.po
@@ -0,0 +1,346 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_connectedComponents.rst:13
+msgid "pgr_connectedComponents - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:16
+msgid ""
+"``pgr_connectedComponents`` — Return the connected components of an "
+"undirected graph using a DFS-based approach. In particular, the algorithm "
+"implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:22
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:30
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:32
+msgid ""
+"A connected component of an undirected graph is a set of vertices that are "
+"all reachable from each other. This implementation can only be used with an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:37
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:39
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:41
+msgid "Components are described by vertices"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:43
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:45
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:46
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:48
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:63
+msgid "The signature is for a **undirected** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:76
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid ""
+"Description of the return values for connected components and strongly "
+"connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, component, n_seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid ""
+"Component identifier. It is equal to the minimum node identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:92
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:94
+msgid "http://en.wikipedia.org/wiki/Connected_component_%28graph_theory%29"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:95
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:98
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:99
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_connectedComponents.rst:100
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_contractGraph.po b/locale/ru/LC_MESSAGES/pgr_contractGraph.po
new file mode 100644
index 0000000..8d27664
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_contractGraph.po
@@ -0,0 +1,488 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_contractGraph.rst:13
+msgid "pgr_contractGraph - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:15
+msgid ""
+"``pgr_contractGraph`` — Performs graph contraction and returns the "
+"contracted vertices and edges."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:23
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:30
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:32
+msgid ""
+"Contraction reduces the size of the graph by removing some of the vertices "
+"and edges and, for example, might add edges that represent a sequence of "
+"original edges decreasing the total time and space used in graph algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:35
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:52
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:38
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:40
+msgid "There are two types of contraction methods used namely,"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:42
+msgid "Dead End Contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:43
+msgid "Linear Contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:45
+msgid "The values returned include the added edges and contracted vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:47
+msgid "The returned values are ordered as follows:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:49
+msgid "column `id` ascending when type = `v`"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:50
+msgid "column `id` descending when type = `e`"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:55
+msgid "Signature Summary:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:57
+msgid "The pgr_contractGraph function has the following signatures:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:68
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:74
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:80
+msgid "Making a dead end contraction and a linear contraction."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:87
+msgid "Complete signature"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:93
+msgid ""
+"Making a dead end contraction and a linear contraction and vertex 2 is "
+"forbidden from contraction"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_contractGraph.rst:109
+#: ../../build/doc/pgr_contractGraph.rst:130
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_contractGraph.rst:109
+#: ../../build/doc/pgr_contractGraph.rst:130
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_contractGraph.rst:109
+#: ../../build/doc/pgr_contractGraph.rst:130
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgr_contractGraph.rst:136
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_contractGraph.rst:146
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_contractGraph.rst:147
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_contractGraph.rst:148
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:106
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:111
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:111
+#: ../../build/doc/pgr_contractGraph.rst:133
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:111
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:112
+msgid "**contraction_order**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:112
+#: ../../build/doc/pgr_contractGraph.rst:115
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:113
+msgid "Ordered contraction operations."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:113
+msgid "1 = Dead end contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:114
+msgid "2 = Linear contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:115
+msgid "**forbidden_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:115
+msgid ""
+"(optional). Identifiers of vertices forbidden from contraction. Default is "
+"an empty array."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:116
+msgid "**max_cycles**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:116
+#: ../../build/doc/pgr_contractGraph.rst:132
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:116
+msgid ""
+"(optional). Number of times the contraction operations on "
+"`contraction_order` will be performed. Default is 1."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:117
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:117
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:117
+msgid "When ``true`` the graph is considered as `Directed`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:118
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:123
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:125
+msgid ""
+"RETURNS SETOF  (seq, type, id, contracted_vertices, source, target, cost)"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:127
+msgid "The function returns a single row. The columns of the row are:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:132
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:132
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:133
+msgid "**type**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:134
+msgid "Type of the `id`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:134
+msgid "'v' when `id` is an identifier of a vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:135
+msgid "'e' when `id` is an identifier of an edge."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:136
+#: ../../build/doc/pgr_contractGraph.rst:146
+#: ../../build/doc/pgr_contractGraph.rst:147
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:143
+msgid "Identifier of:"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:137
+msgid "the  vertex when `type = 'v'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:139
+msgid "The vertex belongs to the edge_table passed as a parameter."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:140
+msgid "the edge when `type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:142
+msgid "The `id` is a decreasing sequence starting from **-1**."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:144
+msgid "Representing a pseudo `id` as is not incorporated into the edge_table."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:145
+msgid "**contracted_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:145
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:145
+msgid "Array of contracted vertex identifiers."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:146
+msgid ""
+"Identifier of the source vertex of the current edge `id`. Valid values when "
+"`type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:147
+msgid ""
+"Identifier of the target vertex of the current edge `id`. Valid values when "
+"`type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:148
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:148
+msgid ""
+"Weight of the edge (`source`, `target`). Valid values when `type = 'e'`."
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:152
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:154
+msgid "Only dead end contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:160
+msgid "Only linear contraction"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:168
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:169
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_contractGraph.rst:170
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_createTopology.po b/locale/ru/LC_MESSAGES/pgr_createTopology.po
new file mode 100644
index 0000000..44a282e
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_createTopology.po
@@ -0,0 +1,395 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_createTopology.rst:13
+msgid "pgr_createTopology"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:18
+msgid ""
+"``pgr_createTopology`` — Builds a network topology based on the geometry "
+"information."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:22
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:24
+#: ../../build/doc/pgr_createTopology.rst:72
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:26
+msgid ""
+"``OK`` after the network topology has been built and the vertices table "
+"created."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:27
+msgid "``FAIL`` when the network topology was not built due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:42
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:45
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:46
+msgid "The topology creation function accepts the following parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:48
+msgid "``text`` Network table name. (may contain the schema name AS well)"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:49
+msgid ""
+"``float8`` Snapping tolerance of disconnected edges. (in projection unit)"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:50
+msgid ""
+"``text``  Geometry column name of the network table. Default value is "
+"``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:51
+msgid ""
+"``text``  Primary key column name of the network table. Default value is "
+"``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:52
+msgid ""
+"``text`` Source column name of the network table. Default value is "
+"``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:53
+msgid ""
+"``text``  Target column name of the network table.  Default value is "
+"``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:54
+msgid ""
+"``text``   Condition to SELECT a subset or rows.  Default value is ``true`` "
+"to indicate all rows that where ``source`` or ``target`` have a null value, "
+"otherwise the condition is used."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:56
+msgid "``boolean`` Clean any previous topology.  Default value is ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:60
+msgid "The ``edge_table`` will be affected"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:62
+msgid "The ``source`` column values will change."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:63
+msgid "The ``target`` column values will change."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:65
+msgid ""
+"An index will be created, if it doesn't exists, to speed up the process to "
+"the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:67
+msgid "``id``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:68
+msgid "``the_geom``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:69
+msgid "``source``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:70
+msgid "``target``"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:74
+msgid "``OK`` after the network topology has been built."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:76
+msgid "Creates a vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:77
+msgid "Fills ``id`` and ``the_geom`` columns of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:78
+msgid ""
+"Fills the source and target columns of the edge table referencing the ``id``"
+" of the vertices table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:81
+msgid "``FAIL`` when the network topology was not built due to an error:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:83
+msgid ""
+"A required column of the Network table is not found or is not of the "
+"appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:84
+msgid "The condition is not well formed."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:85
+msgid "The names of source , target or id are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:86
+msgid "The SRID of the geometry could not be determined."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:90
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:91
+msgid ""
+"The vertices table is a requirement of the :ref:`pgr_analyzeGraph "
+"<pgr_analyze_graph>` and the :ref:`pgr_analyzeOneway <pgr_analyze_oneway>` "
+"functions."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:93
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:95
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:96
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex."
+" See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:97
+msgid ""
+"``integer``  Indicator that the vertex might have a problem. See "
+":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:98
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"AS incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:99
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"AS outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:100
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:103
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:104
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:107
+msgid "Usage when the edge table's columns MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:110
+msgid "The simplest way to use pgr_createTopology is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:118
+msgid "When the arguments are given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:119
+msgid "We get the same result AS the simplest way to use the function."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"In this example, the column ``id`` of the table ``ege_table`` is passed to "
+"the function as the geometry column,"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"and the geometry column ``the_geom`` is passed to the function as the id "
+"column."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:136
+#: ../../build/doc/pgr_createTopology.rst:205
+msgid "When using the named notation"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:137
+msgid ""
+"Parameters defined with a default value can be omitted, as long as the value"
+" matches the default And The order of the parameters would not matter."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:153
+#: ../../build/doc/pgr_createTopology.rst:219
+msgid "Selecting rows using rows_where parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:154
+msgid "Selecting rows based on the id."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:160
+msgid ""
+"Selecting the rows where the geometry is near the geometry of row with ``id "
+"= 5``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:166
+#: ../../build/doc/pgr_createTopology.rst:227
+msgid ""
+"Selecting the rows where the geometry is near the geometry of the row with "
+"``gid`` =100 of the table ``othertable``."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:176
+msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:178
+msgid "For the following table"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:185
+msgid "Using positional notation:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:186
+msgid ""
+"The arguments need to be given in the order described in the parameters."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:188
+msgid ""
+"Note that this example uses clean flag. So it recreates the whole vertices "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropiriate "
+"order:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"In this example, the column ``gid`` of the table ``mytable`` is passed to "
+"the function AS the geometry column,"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:0
+msgid ""
+"and the geometry column ``mygeom`` is passed to the function AS the id "
+"column."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:206
+msgid ""
+"In this scenario omitting a parameter would create an error because the "
+"default values for the column names do not match the column names of the "
+"table. The order of the parameters do not matter:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:220
+msgid "Based on id:"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:235
+msgid "Examples with full output"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:237
+msgid ""
+"This example start a clean topology, with 5 edges, and then its incremented "
+"to the rest of the edges."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:243
+msgid "The example uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:247
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:249
+msgid ":ref:`topology` for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:250
+msgid ""
+":ref:`pgr_create_vert_table` to reconstruct the vertices table based on the "
+"source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:251
+msgid ""
+":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:254
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:255
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_createTopology.rst:256
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_createVerticesTable.po b/locale/ru/LC_MESSAGES/pgr_createVerticesTable.po
new file mode 100644
index 0000000..191059e
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_createVerticesTable.po
@@ -0,0 +1,341 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_createVerticesTable.rst:13
+msgid "pgr_createVerticesTable"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:18
+msgid ""
+"``pgr_createVerticesTable`` — Reconstructs the vertices table based on the "
+"source and target information."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:22
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:24
+#: ../../build/doc/pgr_createVerticesTable.rst:62
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:26
+#: ../../build/doc/pgr_createVerticesTable.rst:64
+msgid "``OK`` after the vertices table has been reconstructed."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:27
+#: ../../build/doc/pgr_createVerticesTable.rst:69
+msgid ""
+"``FAIL`` when the vertices table was not reconstructed due to an error."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:43
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:44
+msgid ""
+"The reconstruction of the vertices table  function accepts the following "
+"parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:46
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:47
+msgid ""
+"``text``  Geometry column name of the network table. Default value is "
+"``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:48
+msgid ""
+"``text`` Source column name of the network table. Default value is "
+"``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:49
+msgid ""
+"``text``  Target column name of the network table.  Default value is "
+"``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:50
+msgid ""
+"``text``   Condition to SELECT a subset or rows.  Default value is ``true`` "
+"to indicate all rows."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:54
+msgid "The ``edge_table`` will be affected"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:56
+msgid ""
+"An index will be created, if it doesn't exists, to speed up the process to "
+"the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:58
+msgid "``the_geom``"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:59
+msgid "``source``"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:60
+msgid "``target``"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:66
+msgid "Creates a vertices table: <edge_table>_vertices_pgr."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:67
+msgid ""
+"Fills ``id`` and ``the_geom`` columns of the vertices table based on the "
+"source and target columns of the edge table."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:71
+msgid ""
+"A required column of the Network table is not found or is not of the "
+"appropriate type."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:72
+msgid "The condition is not well formed."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:73
+msgid "The names of source, target are the same."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:74
+msgid "The SRID of the geometry could not be determined."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:77
+msgid "The Vertices Table"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:78
+msgid ""
+"The vertices table is a requierment of the :ref:`pgr_analyzeGraph "
+"<pgr_analyze_graph>` and the :ref:`pgr_analyzeOneway <pgr_analyze_oneway>` "
+"functions."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:80
+msgid "The structure of the vertices table is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:82
+msgid "``bigint`` Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:83
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex."
+" See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:84
+msgid ""
+"``integer``  Indicator that the vertex might have a problem. See "
+":ref:`pgr_analyzeGraph <pgr_analyze_graph>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:85
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:86
+msgid ""
+"``integer`` Number of vertices in the edge_table that reference this vertex "
+"as outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:87
+msgid "``geometry`` Point geometry of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:90
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:91
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:94
+msgid "Usage when the edge table's columns MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:97
+msgid "The simplest way to use pgr_createVerticesTable is:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:104
+msgid "When the arguments are given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:109
+msgid "We get the same result as the simplest way to use the function."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:111
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order: In this example, the column source column ``source`` of the table "
+"``mytable`` is passed to the function as the geometry column, and the "
+"geometry column ``the_geom`` is passed to the function as the source column."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:128
+#: ../../build/doc/pgr_createVerticesTable.rst:205
+msgid "When using the named notation"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:129
+#: ../../build/doc/pgr_createVerticesTable.rst:206
+msgid "The order of the parameters do not matter:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:139
+msgid ""
+"Parameters defined with a default value can be omitted, as long as the value"
+" matches the default:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:146
+#: ../../build/doc/pgr_createVerticesTable.rst:220
+msgid "Selecting rows using rows_where parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:147
+msgid "Selecting rows based on the id."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:153
+msgid ""
+"Selecting the rows where the geometry is near the geometry of row with "
+"``id`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:159
+#: ../../build/doc/pgr_createVerticesTable.rst:243
+msgid ""
+"Selecting the rows where the geometry is near the geometry of the row with "
+"``gid`` =100 of the table ``othertable``."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:170
+msgid "Usage when the edge table's columns DO NOT MATCH the default values:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:172
+msgid "For the following table"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:180
+msgid "Using positional notation:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:181
+msgid ""
+"The arguments need to be given in the order described in the parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:0
+msgid ""
+"An error would occur when the arguments are not given in the appropriate "
+"order: In this example, the column ``src`` of the table ``mytable`` is "
+"passed to the function as the geometry column, and the geometry column "
+"``mygeom`` is passed to the function as the source column."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:216
+msgid ""
+"In this scenario omitting a parameter would create an error because the "
+"default values for the column names do not match the column names of the "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:221
+msgid "Selecting rows based on the gid."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:231
+msgid ""
+"Selecting the rows where the geometry is near the geometry of row with "
+"``gid`` =5 ."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:260
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:282
+msgid "The example uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:286
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:288
+msgid ":ref:`topology`  for an overview of a topology for routing algorithms."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:289
+msgid ""
+":ref:`pgr_createTopology <pgr_create_topology>` to create a topology based "
+"on the geometry."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:290
+msgid ""
+":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:291
+msgid ":ref:`pgr_analyze_oneway` to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:294
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:295
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_createVerticesTable.rst:296
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_dijkstra.po b/locale/ru/LC_MESSAGES/pgr_dijkstra.po
new file mode 100644
index 0000000..45cbd10
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_dijkstra.po
@@ -0,0 +1,621 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid ""
+"``pgr_dijkstra`` — Returns the shortest path(s) using Dijkstra algorithm. In"
+" particular, the Dijkstra algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:24
+msgid "Availability"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:25
+msgid "pgr_dijkstra(one to one) 2.0.0, signature change 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:26
+msgid "pgr_dijkstra(other signatures) 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:31
+msgid ""
+"Dijkstra's algorithm, conceived by Dutch computer scientist Edsger Dijkstra "
+"in 1956. It is a graph search algorithm that solves the shortest path "
+"problem for a graph with non-negative edge path costs, producing a shortest "
+"path from a starting vertex (``start_vid``) to an ending vertex "
+"(``end_vid``). This implementation can be used with a directed graph and an "
+"undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:38
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:60
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:41
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:42
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:44
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:46
+msgid "The `agg_cost` the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:48
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:50
+msgid "The `agg_cost` the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:52
+msgid ""
+"For optimization purposes, any duplicated value in the `start_vids` or "
+"`end_vids` are ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:54
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:56
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:57
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:59
+msgid "Running time: :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:63
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:78
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:84
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:91
+msgid ""
+"The minimal signature is for a **directed** graph from one ``start_vid`` to "
+"one ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:104
+msgid "pgr_dijkstra One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:114
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:113 ../../build/doc/pgr_dijkstra.rst:136
+#: ../../build/doc/pgr_dijkstra.rst:167 ../../build/doc/pgr_dijkstra.rst:197
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:114 ../../build/doc/pgr_dijkstra.rst:137
+#: ../../build/doc/pgr_dijkstra.rst:168 ../../build/doc/pgr_dijkstra.rst:198
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:127
+msgid "pgr_dijkstra One to many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:137
+msgid ""
+"This signature finds the shortest path from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:139
+msgid ""
+"Using this signature, will load once the graph and perform a one to one "
+"`pgr_dijkstra` where the starting vertex is fixed, and stop when all "
+"``end_vids`` are reached."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:142
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:143
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:158
+msgid "pgr_dijkstra Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:168
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:170
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"one `pgr_dijkstra` where the ending vertex is fixed."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:173 ../../build/doc/pgr_dijkstra.rst:203
+msgid ""
+"The result is the union of the results of the one to one `pgr_dijkstra`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:174 ../../build/doc/pgr_dijkstra.rst:204
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:188
+msgid "pgr_dijkstra Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:198
+msgid ""
+"This signature finds the shortest path from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:200
+msgid ""
+"Using this signature, will load once the graph and perform several one to "
+"Many `pgr_dijkstra` for all ``start_vids``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:206
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:215
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstra.rst:228
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:225
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:230
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:230
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:230
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:231
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:231 ../../build/doc/pgr_dijkstra.rst:233
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:231
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:232
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:232 ../../build/doc/pgr_dijkstra.rst:234
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:232
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:233
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:233
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:234
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:234
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:235
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:236
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:248
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:250
+msgid ""
+"The examples of this section are based on the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:252
+msgid ""
+"The examples include combinations from starting vertices 2 and 11 to ending "
+"vertices 3 and 5 in a directed and undirected graph with and with out "
+"reverse_cost."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:256
+msgid ""
+"Examples for queries marked as ``directed`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:258
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:267
+msgid ""
+"Examples for queries marked as ``undirected`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:269
+msgid "The examples in this section use the following :ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:277
+msgid "Examples for queries marked as ``directed`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:279
+msgid "The examples in this section use the following :ref:`fig3`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:287
+msgid "Examples for queries marked as ``undirected`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:289
+msgid "The examples in this section use the following :ref:`fig4`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:297
+msgid "Equvalences between signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:299
+msgid ""
+"For queries marked as ``directed`` with ``cost`` and ``reverse_cost`` "
+"columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:301 ../../build/doc/pgr_dijkstra.rst:313
+msgid "The examples in this section use the following:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:303
+msgid ":ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:311
+msgid ""
+"For queries marked as ``undirected`` with ``cost`` and ``reverse_cost`` "
+"columns"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:315
+msgid ":ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:324
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:326
+msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:327
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:330
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:331
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:332
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_dijkstraCost.po b/locale/ru/LC_MESSAGES/pgr_dijkstraCost.po
new file mode 100644
index 0000000..a9193fb
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_dijkstraCost.po
@@ -0,0 +1,473 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstraCost.rst:13
+msgid "pgr_dijkstraCost"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:17
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:19
+msgid "``pgr_dijkstraCost``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:21
+msgid ""
+"Using Dijkstra algorithm implemented by Boost.Graph, and extract only the "
+"aggregate cost of the shortest path(s) found, for the combination of "
+"vertices given."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:27
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:30
+msgid "Availability"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:31
+msgid "pgr_dijkstraCost(all signatures) 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:33
+msgid ""
+"The ``pgr_dijkstraCost`` algorithm, is a good choice to calculate the sum of"
+" the costs of the shortest path for a subset of pairs of nodes of the graph."
+" We make use of the Boost's implementation of dijkstra which runs in "
+":math:`O(V \\log V + E)` time."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:39
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:71
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:42
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:43
+msgid ""
+"Returns the sum of the costs of the shortest path for pair combination of "
+"nodes in the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:44
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:45
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:47
+msgid ""
+"The returned values are in the form of a set of `(start_vid, end_vid, "
+"agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:49
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:51
+msgid "The `agg_cost` int the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:53
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:55
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:57
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:60
+msgid "For undirected graphs, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:62
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:64
+msgid "Any duplicated value in the `start_vids` or `end_vids` is ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:66
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:68
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:69
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:71
+msgid "Running time: :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:74
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:89
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:95
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:97
+msgid ""
+"The minimal signature is for a **directed** graph from one ``start_vid`` to "
+"one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:106
+msgid "Example"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:117
+msgid "pgr_dijkstraCost One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:122
+msgid ""
+"This signature performs a Dijkstra from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:121
+#: ../../build/doc/pgr_dijkstraCost.rst:150
+#: ../../build/doc/pgr_dijkstraCost.rst:176
+#: ../../build/doc/pgr_dijkstraCost.rst:201
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:122
+#: ../../build/doc/pgr_dijkstraCost.rst:151
+#: ../../build/doc/pgr_dijkstraCost.rst:177
+#: ../../build/doc/pgr_dijkstraCost.rst:202
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:141
+msgid "pgr_dijkstraCost One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:152
+msgid ""
+"This signature performs a Dijkstra from one ``start_vid`` to each "
+"``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:167
+msgid "pgr_dijkstraCost Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:178
+msgid ""
+"This signature performs a Dijkstra from each ``start_vid`` in  "
+"``start_vids`` to one ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:192
+msgid "pgr_dijkstraCost Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:202
+msgid ""
+"This signature performs a Dijkstra from each ``start_vid`` in  "
+"``start_vids`` to each ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:213
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10 ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11 ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:229
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:231
+msgid "Demonstration of repeated values are ignored, and result is sorted."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:237
+msgid "Making `start_vids` the same as `end_vids`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:246
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:248
+msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:249
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:252
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:253
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCost.rst:254
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_dijkstraCostMatrix.po b/locale/ru/LC_MESSAGES/pgr_dijkstraCostMatrix.po
new file mode 100644
index 0000000..95cf121
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_dijkstraCostMatrix.po
@@ -0,0 +1,358 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:13
+msgid "pgr_dijkstraCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:18
+msgid ""
+"``pgr_dijkstraCostMatrix`` - Calculates the a cost matrix using "
+"pgr_dijktras."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:29
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:32
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:34
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:36
+msgid "Using Dijkstra algorithm, calculate and return a cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:39
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:56
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:59
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:59
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:67
+msgid "Cost matrix for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:79
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:87
+msgid "Cost matrix for an undirected graph for vertices 1, 2, 3, and 4."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:89
+msgid "This example returns a symmetric cost matrix."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:97
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:109
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:106
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:109
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:111
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:111
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:111
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:112
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:112
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:112
+msgid "Array of identifiers of the vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:113
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:113
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:113
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:123
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:125
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:133
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:135
+msgid ":ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:136
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:137
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:138
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:141
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:142
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraCostMatrix.rst:143
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_dijkstraVia.po b/locale/ru/LC_MESSAGES/pgr_dijkstraVia.po
new file mode 100644
index 0000000..0a3c5f1
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_dijkstraVia.po
@@ -0,0 +1,480 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_dijkstraVia.rst:13
+msgid "pgr_dijkstraVia - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:19
+msgid ""
+"``pgr_dijkstraVia`` — Using dijkstra algorithm, it finds the route that goes"
+" through a list of vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:30
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:32
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:34
+msgid ""
+"Given a list of vertices and a graph, this function is equivalent to finding"
+" the shortest path between :math:`vertex_i` and :math:`vertex_{i+1}` for all"
+" :math:`i < size\\_of(vertex_via)`."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:37
+msgid "The paths represents the sections of the route."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:39
+msgid "This is a proposed function"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:42
+msgid "Signatrue Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:53
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:59
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:67
+msgid "Find the route that visits the vertices 1 3 9  in that order"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:77
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:86
+msgid ""
+"Find the route that visits the vertices 1 3 9  in that order on an "
+"undirected graph, avoiding U-turns when possible"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:94
+msgid "Description of the Signature"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:124
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:7
+#: ../../build/doc/pgr_dijkstraVia.rst:108
+#: ../../build/doc/pgr_dijkstraVia.rst:124
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:7
+#: ../../build/doc/pgr_dijkstraVia.rst:108
+#: ../../build/doc/pgr_dijkstraVia.rst:124
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_dijkstraVia.rst:133
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+#: ../../build/doc/pgr_dijkstraVia.rst:105
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:7
+#: ../../build/doc/pgr_dijkstraVia.rst:108
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:110
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:110
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_dijkstraVia.rst:110
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgr_dijkstraVia.rst:111
+msgid "**via_vertices**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgr_dijkstraVia.rst:111
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Array of ordered vertices identifiers that are going to be visited."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgr_dijkstraVia.rst:112
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgr_dijkstraVia.rst:112
+#: ../../build/doc/pgr_dijkstraVia.rst:113
+#: ../../build/doc/pgr_dijkstraVia.rst:114
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "When ``false`` the graph is considered as Undirected."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_dijkstraVia.rst:113
+msgid "**strict**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``false``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "When ``false`` ignores missing paths returning all paths found"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "When ``true`` if a path is missing stops and returns `EMPTY SET`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgr_dijkstraVia.rst:114
+msgid "**U_turn_on_edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"When ``true`` departing from a visited vertex will not try to avoid using "
+"the edge used to reach it.  In other words, U turn using the edge with same "
+"`id` is allowed."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When ``false`` when a departing from a visited vertex tries to avoid using "
+"the edge used to reach it.  In other words, U turn using the edge with same "
+"`id` is used when no other path is found."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:111
+msgid "Array of vertices identifiers"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:112
+#: ../../build/doc/pgr_dijkstraVia.rst:114
+msgid ""
+"(optional) Default is true (is directed). When set to false the graph is "
+"considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:113
+msgid ""
+"(optional) ignores if a subsection of the route is missing and returns "
+"everything it found Default is true (is directed). When set to false the "
+"graph is considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:119
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:121
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:126
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:126
+#: ../../build/doc/pgr_dijkstraVia.rst:127
+#: ../../build/doc/pgr_dijkstraVia.rst:128
+#: ../../build/doc/pgr_dijkstraVia.rst:129
+#: ../../build/doc/pgr_dijkstraVia.rst:130
+#: ../../build/doc/pgr_dijkstraVia.rst:131
+#: ../../build/doc/pgr_dijkstraVia.rst:132
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:126
+msgid "Sequential value starting from 1."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:127
+msgid "**path_pid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:127
+msgid "Identifier of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:128
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:128
+msgid "Sequential value starting from 1 for the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:129
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:129
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:130
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:130
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:131
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:131
+msgid "Identifier of the node in the path from start_vid to end_vid."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:132
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:132
+msgid ""
+"Identifier of the edge used to go from node to the next node in the path "
+"sequence. -1 for the last node of the path. -2 for the last node of the "
+"route."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:133
+#: ../../build/doc/pgr_dijkstraVia.rst:134
+#: ../../build/doc/pgr_dijkstraVia.rst:135
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:133
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the route "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:134
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:134
+msgid "Total cost from ``start_vid`` to ``end_vid`` of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:135
+msgid "**route_agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:135
+msgid ""
+"Total cost from ``start_vid`` of ``path_pid = 1`` to ``end_vid`` of the "
+"current ``path_pid`` ."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:140
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:142
+msgid "Find the route that visits the vertices 1 5 3 9 4 in that order"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:148
+msgid "What's the aggregate cost of the third path?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:154
+msgid ""
+"What's the route's aggregate cost of the route at the end of the third path?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:160
+msgid "How are the nodes visited in the route?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:166
+msgid ""
+"What are the aggregate costs of the route when the visited vertices are "
+"reached?"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:172
+msgid ""
+"show the route's seq and aggregate cost and a status of \"passes in front\" "
+"or \"visits\" node 9"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:179
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:181
+msgid "http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:182
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:185
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:186
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstraVia.rst:187
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_drivingDistance.po b/locale/ru/LC_MESSAGES/pgr_drivingDistance.po
new file mode 100644
index 0000000..77f7b8e
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_drivingDistance.po
@@ -0,0 +1,391 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_drivingDistance.rst:13
+msgid "pgr_drivingDistance"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:19
+msgid ""
+"``pgr_drivingDistance`` - Returns the driving distance from a start node."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:25
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:28
+msgid "Availability"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:29
+msgid "pgr_drivingDistance(single vertex) 2.0.0, signature change 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:30
+msgid "pgr_drivingDistance(multiple vertices) 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:33
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:35
+msgid ""
+"Using the Dijkstra algorithm, extracts all the nodes that have costs less "
+"than or equal to the value ``distance``. The edges extracted will conform to"
+" the corresponding spanning tree."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:39
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:51
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:57
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:70
+msgid "Driving Distance From A Single Starting Vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:82
+msgid "Driving Distance From Multiple Starting Vertices"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:90
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_drivingDistance.rst:101
+#: ../../build/doc/pgr_drivingDistance.rst:119
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_drivingDistance.rst:101
+#: ../../build/doc/pgr_drivingDistance.rst:119
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_drivingDistance.rst:101
+#: ../../build/doc/pgr_drivingDistance.rst:119
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_drivingDistance.rst:125
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:98
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:103
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:103
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:103
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:104
+#: ../../build/doc/pgr_drivingDistance.rst:122
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:104
+#: ../../build/doc/pgr_drivingDistance.rst:123
+#: ../../build/doc/pgr_drivingDistance.rst:124
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:104
+#: ../../build/doc/pgr_drivingDistance.rst:122
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:105
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:105
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:105
+msgid "Array of identifiers of the starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:106
+msgid "**distance**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:106
+#: ../../build/doc/pgr_drivingDistance.rst:125
+#: ../../build/doc/pgr_drivingDistance.rst:126
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:106
+msgid "Upper limit for the inclusion of the node in the result."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:107
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:107
+#: ../../build/doc/pgr_drivingDistance.rst:108
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:107
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:108
+msgid "**equicost**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:108
+msgid ""
+"(optional). When ``true`` the node will only appear in the closest "
+"``start_vid`` list.  Default is ``false`` which resembles several calls "
+"using the single starting point signatures. Tie brakes are arbitrary."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:114
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:116
+msgid "Returns set of ``(seq [, start_v], node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:121
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:121
+#: ../../build/doc/pgr_drivingDistance.rst:122
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:121
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:123
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:123
+msgid ""
+"Identifier of the node in the path within the limits from ``start_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:124
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:124
+msgid ""
+"Identifier of the edge used to arrive to ``node``. ``0`` when the ``node`` "
+"is the ``start_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:125
+msgid "Cost to traverse ``edge``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:126
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:126
+msgid "Aggregate cost from ``start_vid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:132
+msgid "Additional Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:135
+msgid ""
+"Examples for queries marked as ``directed`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:137
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:144
+msgid ""
+"Examples for queries marked as ``undirected`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:146
+msgid "The examples in this section use the following :ref:`fig2`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:154
+msgid "Examples for queries marked as ``directed`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:156
+msgid "The examples in this section use the following :ref:`fig3`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:165
+msgid "Examples for queries marked as ``undirected`` with ``cost`` column"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:167
+msgid "The examples in this section use the following :ref:`fig4`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:175
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:177
+msgid ":ref:`pgr_alphashape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:178
+msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:179
+msgid ":doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:182
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:183
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_drivingDistance.rst:184
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_edgeDisjointPaths.po b/locale/ru/LC_MESSAGES/pgr_edgeDisjointPaths.po
new file mode 100644
index 0000000..54a0ffe
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_edgeDisjointPaths.po
@@ -0,0 +1,541 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:14
+msgid "pgr_edgeDisjointPaths - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:19
+msgid ""
+"``pgr_edgeDisjointPaths`` — Calculates edge disjoint paths between two "
+"groups of vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:25
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:28
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:36
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:38
+msgid ""
+"Calculates the edge disjoint paths between two groups of vertices. Utilizes "
+"underlying maximum flow algorithms to calculate the paths."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:42
+msgid "Characteristics:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:49
+msgid "The main characterics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:45
+msgid "Calculates the edge disjoint paths between any two groups of vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:46
+msgid ""
+"Returns EMPTY SET when source and destination are the same, or cannot be "
+"reached."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:47
+msgid "The graph can be directed or undirected."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:48
+msgid "One to many, many to one, many to many versions are also supported."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:49
+msgid "Uses :ref:`pgr_boykovKolmogorov` to calculate the paths."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:52
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:67
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:73
+msgid "Minimal use"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:81
+msgid ""
+"The minimal use is for a **directed** graph from one ``start_vid`` to one "
+"``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:93
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:98
+msgid ""
+"This signature finds the set of dijoint paths from one ``start_vid`` to one "
+"``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:96
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:120
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:149
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:175
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:97
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:121
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:150
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:176
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:117
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:126
+msgid ""
+"This signature finds the sset of disjoint paths  from the ``start_vid`` to "
+"each one of the ``end_vid`` in ``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:122
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:151
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:177
+msgid ""
+"The result is equivalent to the union of the results of the one to one "
+"`pgr_edgeDisjointPaths`."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:123
+msgid ""
+"The extra ``end_vid`` in the result is used to distinguish to which path it "
+"belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:146
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:152
+msgid ""
+"This signature finds the set of disjoint paths from each one of the "
+"``start_vid`` in ``start_vids`` to the ``end_vid``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:152
+msgid ""
+"The extra ``start_vid`` in the result is used to distinguish to which path "
+"it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:172
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:178
+msgid ""
+"This signature finds the set of disjoint paths from each one of the "
+"``start_vid`` in ``start_vids`` to each one of the ``end_vid`` in "
+"``end_vids``:"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:178
+msgid ""
+"The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish"
+" to which path it belongs."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:195
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_dijkstra.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10 ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:15
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:10
+msgid "Identifier of the starting vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11 ../../build/doc/pgr_dijkstra.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:11
+msgid "Array of identifiers of starting vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:12
+msgid "Identifier of the ending vertex of the path."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:13
+msgid "Array of identifiers of ending vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "``true``"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:14
+msgid "When ``true`` Graph is considered `Directed`"
+msgstr ""
+
+#: ../../build/doc/pgr_dijkstra.rst:15
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a path"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"Returns set of ``(seq, path_seq [, start_vid] [, end_vid], node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Path identifier. Has value **1** for the first of a path. Used when there "
+"are multiple paths for the same ``start_vid`` to ``end_vid`` combination."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid ""
+"Relative position in the path. Has value **1** for the beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the node in the path from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence. ``-1`` for the last node of the path."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next node in the path "
+"sequence."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid "Aggregate cost from ``start_v`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:212
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:214
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:217
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:218
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_edgeDisjointPaths.rst:219
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_edmondsKarp.po b/locale/ru/LC_MESSAGES/pgr_edmondsKarp.po
new file mode 100644
index 0000000..8523277
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_edmondsKarp.po
@@ -0,0 +1,438 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_edmondsKarp.rst:14
+msgid "pgr_edmondsKarp - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:18
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:20
+msgid ""
+"``pgr_edmondsKarp`` — Calculates the flow on the graph edges that maximizes "
+"the flow from the sources to the targets using Push Relabel Algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:29
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:30
+msgid "Renamed 2.5.0, Previous name pgr_maxFlowEdmondsKarp"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:31
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:8
+msgid ""
+"When the maximum flow is 0 then there is no flow and **EMPTY SET** is "
+"returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:12
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:15
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid ""
+"Creates a **super source** and edges to all the source(s), and a **super "
+"target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid ""
+"The maximum flow through the graph is guaranteed to be the value returned by"
+" :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and"
+" can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:42
+msgid "Running time: :math:`O( V * E ^ 2)`"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:45
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:62
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:64
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:83
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:85
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:104
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:106
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:125
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:127
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:142
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:4
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10 ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11 ../../build/doc/pgr_maxFlow.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:12
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:160
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:162
+msgid ""
+":ref:`maxFlow`, :ref:`pgr_boykovKolmogorov <pgr_boykovKolmogorov>`, "
+":ref:`pgr_PushRelabel <pgr_pushRelabel>`"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:163
+msgid "http://www.boost.org/libs/graph/doc/edmonds_karp_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:164
+msgid "https://en.wikipedia.org/wiki/Edmonds%E2%80%93Karp_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:167
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:168
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_edmondsKarp.rst:169
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_eucledianTSP.po b/locale/ru/LC_MESSAGES/pgr_eucledianTSP.po
new file mode 100644
index 0000000..5b9be5e
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_eucledianTSP.po
@@ -0,0 +1,187 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_eucledianTSP.rst:13
+msgid "pgr_eucledianTSP"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:18
+msgid ""
+"``pgr_eucledianTSP`` - Returns a route that visits all the coordinates pairs"
+" exactly once."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:22
+msgid "Availability: 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:24
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:26
+msgid ""
+"The travelling salesman problem (TSP) or travelling salesperson problem asks"
+" the following question:"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:28
+msgid ""
+"Given a list of cities and the distances between each pair of cities, what "
+"is the shortest possible route that visits each city exactly once and "
+"returns to the origin city?"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:30
+msgid ""
+"This implementation uses simulated annealing to return the approximate "
+"solution when the input is given in the form of coordinates."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:33
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:48
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:54
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:63
+msgid ""
+"Because the documentation examples are auto generated and tested for non "
+"changing results, and the default is to have random execution, the example "
+"is wrapping the actual call."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:75
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:90
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:96
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:99
+msgid "Description of the coordinates SQL query"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:102
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:102
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:102
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:104
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:104
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:104
+msgid "Identifier of the coordinate. (optional)"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:105
+msgid "**x**"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:105
+#: ../../build/doc/pgr_eucledianTSP.rst:106
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:105
+msgid "X value of the coordinate."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:106
+msgid "**y**"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:106
+msgid "Y value of the coordinate."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:110
+msgid ""
+"When the value of **id** is not given then the coordinates will receive an "
+"**id** starting from 1, in the order given."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:125
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:127
+msgid "Skipping the Simulated Annealing & showing some process information"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:135
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:139
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:140
+msgid "New in version 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:145
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:147
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:148
+msgid "http://en.wikipedia.org/wiki/Traveling_salesman_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:149
+msgid "http://en.wikipedia.org/wiki/Simulated_annealing"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:152
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:153
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_eucledianTSP.rst:154
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_floydWarshall.po b/locale/ru/LC_MESSAGES/pgr_floydWarshall.po
new file mode 100644
index 0000000..4fe9ece
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_floydWarshall.po
@@ -0,0 +1,348 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_floydWarshall.rst:13
+msgid "pgr_floydWarshall"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:16
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:18
+msgid ""
+"``pgr_floydWarshall`` - Returns the sum of the costs of the shortest path "
+"for each pair of nodes in the graph using Floyd-Warshall algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:27
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:28
+msgid "Renamed on 2.2.0, previous name pgr_apspWarshall"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:31
+msgid ""
+"The Floyd-Warshall algorithm, also known as Floyd's algorithm, is a good "
+"choice to calculate the sum of the costs of the shortest path for each pair "
+"of nodes in the graph, for *dense graphs*. We make use of the  Boost's "
+"implementation which runs in :math:`\\Theta(V^3)` time,"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:38
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:58
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:41
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:42
+msgid ""
+"Returns the sum of the costs of the shortest path for each pair of nodes in "
+"the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:43
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:44
+msgid ""
+"Boost returns a :math:`V \\times V` matrix, where the infinity values. "
+"Represent the distance between vertices for which there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:47
+msgid ""
+"We return only the non infinity values in form of a set of `(start_vid, "
+"end_vid, agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:49
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:52
+msgid "For the undirected graph, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:54
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:56
+msgid "When  `start_vid` = `end_vid`, the `agg_cost` = 0."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:58
+msgid "**Recommended, use a bounding box of no more than 3500 edges.**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:61
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:70
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:77
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:84
+msgid "On a directed graph."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:95
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:103
+msgid "On an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:110
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query (id is not necessary)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_floydWarshall.rst:136
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_floydWarshall.rst:123
+#: ../../build/doc/pgr_floydWarshall.rst:136
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_floydWarshall.rst:123
+#: ../../build/doc/pgr_floydWarshall.rst:136
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:118
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:120
+msgid "Receives  ``(edges_sql, directed)``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:123
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:125
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:125
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:125
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:126
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:126
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:126
+msgid ""
+"(optional) Default is true (is directed). When set to false the graph is "
+"considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:131
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:133
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:138
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:138
+#: ../../build/doc/pgr_floydWarshall.rst:139
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:138
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:139
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:139
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:140
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:140
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:140
+msgid "Total cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:148
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:149
+msgid "Re-design of pgr_apspWarshall in Version 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:152
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:154
+msgid ":ref:`pgr_johnson`"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:155
+msgid ""
+"`Boost floyd-Warshall "
+"<http://www.boost.org/libs/graph/doc/floyd_warshall_shortest.html>`_ "
+"algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:156
+msgid "Queries uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:159
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:160
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_floydWarshall.rst:161
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_gsoc_vrppdtw.po b/locale/ru/LC_MESSAGES/pgr_gsoc_vrppdtw.po
new file mode 100644
index 0000000..7705842
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_gsoc_vrppdtw.po
@@ -0,0 +1,358 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:13
+msgid "pgr_gsoc_vrppdtw - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:19
+msgid ""
+"``pgr_gsoc_vrppdtw`` — Returns a solution for `Pick and Delivery` with `time"
+" windows` Vehicle Routing Problem"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:27
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:36
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:43
+msgid "Complete signature"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:52
+msgid "Example: Show the id1"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:59
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:62
+msgid "Description of the sql query"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:65
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:89
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:102
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:65
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:89
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:102
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:65
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:89
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:102
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:67
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:67
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:81
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:82
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:67
+msgid "Identifier of the customer."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:69
+msgid "A value of ``0`` identifies the starting location"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:71
+msgid "**x**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:71
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:72
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:73
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:78
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:79
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:80
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:71
+msgid "``X`` coordinate of the location."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:72
+msgid "**y**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:72
+msgid "``Y`` coordinate of the location."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:73
+msgid "**demand**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:73
+msgid "How much is added / removed from the vehicle."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:75
+msgid "Negative value is a delivery,"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:76
+msgid "Positive value is a pickup,"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:78
+msgid "**openTime**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:78
+msgid "The time relative to 0, when the customer opens."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:79
+msgid "**closeTime**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:79
+msgid "The time relative to 0, when the customer closes."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:80
+msgid "**serviceTime**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:80
+msgid "The duration of the loading / unloading."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:81
+msgid "**pIndex**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:81
+msgid ""
+"Value used when the current customer is a Delivery to find the corresponding"
+" Pickup"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:82
+msgid "**dIndex**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:82
+msgid ""
+"Value used when the current customer is a Pickup to find the corresponding "
+"Delivery"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:86
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:91
+msgid "**sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:91
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:91
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:92
+msgid "**vehicle_num**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:92
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:93
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:104
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:105
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:106
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:92
+msgid "Maximum number of vehicles in the result. (currently is ignored)"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:93
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:93
+msgid "Capacity of the vehicle."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:97
+msgid "Description of the result"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:99
+msgid "RETURNS SET OF pgr_costResult[]:"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:104
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:104
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:105
+msgid "**id1**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:105
+msgid "Current vehicle identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:106
+msgid "**id2**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:106
+msgid "Customer identifier."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:107
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:107
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:107
+msgid ""
+"Previous ``cost`` plus `travel time` plus `wait time` plus `service time`."
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:108
+msgid ""
+"when ``id2 = 0`` for the second time for the same ``id1``, then has the "
+"total time for the current ``id1``"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:114
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:117
+msgid "Example: Total number of rows returned"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:123
+msgid "Example: Results for only id1 values: 1, 5, and 9"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:130
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:132
+msgid "The examples use :ref:`pickDeliverData`"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:133
+msgid "http://en.wikipedia.org/wiki/Vehicle_routing_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:136
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:137
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_gsoc_vrppdtw.rst:138
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_johnson.po b/locale/ru/LC_MESSAGES/pgr_johnson.po
new file mode 100644
index 0000000..d0ef00b
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_johnson.po
@@ -0,0 +1,341 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_johnson.rst:13
+msgid "pgr_johnson"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:16
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:18
+msgid ""
+"``pgr_johnson`` - Returns the sum of the costs of the shortest path for each"
+" pair of nodes in the graph using Floyd-Warshall algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:24
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:27
+msgid "Availability: 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:28
+msgid "Renamed on 2.2.0, previous name pgr_apspJohnson"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:31
+msgid ""
+"The Johnson algorithm, is a good choice to calculate the sum of the costs of"
+" the shortest path for each pair of nodes in the graph, for *sparse graphs*."
+" It usees the Boost's implementation which runs in :math:`O(V E \\log V)` "
+"time,"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:37
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:57
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:40
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:41
+msgid ""
+"Returns the sum of the costs of the shortest path for each pair of nodes in "
+"the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:42
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:43
+msgid ""
+"Boost returns a :math:`V \\times V` matrix, where the infinity values. "
+"Represent the distance between vertices for which there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:46
+msgid ""
+"We return only the non infinity values in form of a set of `(start_vid, "
+"end_vid, agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:48
+msgid ""
+"Let be the case the values returned are stored in a table, so the unique "
+"index would be the pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:51
+msgid "For the undirected graph, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:53
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:55
+msgid "When  `start_vid` = `end_vid`, the `agg_cost` = 0."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:60
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:69
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:76
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:83
+msgid "On a directed graph."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:94
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:102
+msgid "On an undirected graph."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:109
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query (id is not necessary)"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_johnson.rst:135
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_johnson.rst:122 ../../build/doc/pgr_johnson.rst:135
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_johnson.rst:122 ../../build/doc/pgr_johnson.rst:135
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:15
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:19
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:23
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:25
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:117
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:119
+msgid "Receives  ``(edges_sql, directed)``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:122
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:124
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:124
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:124
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:125
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:125
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:125
+msgid ""
+"(optional) Default is true (is directed). When set to false the graph is "
+"considered as Undirected"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:130
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:132
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:137
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:137 ../../build/doc/pgr_johnson.rst:138
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:137
+msgid "Identifier of the starting vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:138
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:138
+msgid "Identifier of the ending vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:139
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:139
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:139
+msgid "Total cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:147
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:148
+msgid "Re-design of pgr_apspJohnson in Version 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:151
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:153
+msgid ":ref:`pgr_floydWarshall`"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:154
+msgid ""
+"`Boost Johnson "
+"<http://www.boost.org/libs/graph/doc/johnson_all_pairs_shortest.html>`_ "
+"algorithm implementation."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:155
+msgid "Queries uses the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:158
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:159
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_johnson.rst:160
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_labelGraph.po b/locale/ru/LC_MESSAGES/pgr_labelGraph.po
new file mode 100644
index 0000000..e5d6532
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_labelGraph.po
@@ -0,0 +1,233 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_labelGraph.rst:15
+msgid "pgr_labelGraph - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:18
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:20
+msgid ""
+"``pgr_labelGraph`` — Locates and labels sub-networks within a network which "
+"are not topologically connected."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:28
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:30
+msgid ""
+"Must be run after ``pgr_createTopology()``. No use of ``geometry`` column. "
+"Only ``id``, ``source`` and  ``target`` columns are required."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:32
+msgid "The function returns:"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:34
+msgid ""
+"``OK`` when a column with provided name has been generated and populated "
+"successfully. All connected edges will have unique similar integer values. "
+"In case of ``rows_where`` condition, non participating rows will have -1 "
+"integer values."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:35
+msgid ""
+"``FAIL`` when the processing cannot be finished due to some error. Notice "
+"will be thrown accordingly."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:36
+msgid ""
+"``rows_where condition generated 0 rows`` when passed SQL condition has not "
+"been fulfilled by any row."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:48
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:50
+msgid ""
+"A network behind any routing query may consist of sub-networks completely "
+"isolated from each other. Possible reasons could be:"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:52
+msgid "An island with no bridge connecting to the mainland."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:53
+msgid ""
+"An edge or mesh of edges failed to connect to other networks because of "
+"human negligence during data generation."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:54
+msgid "The data is not properly noded."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:55
+msgid "Topology creation failed to succeed."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:57
+msgid ""
+"pgr_labelGraph() will create an integer column (with the name provided by "
+"the user) and will assign same integer values to all those edges in the "
+"network which are connected topologically. Thus better analysis regarding "
+"network structure is possible. In case of ``rows_where`` condition, non "
+"participating rows will have -1 integer values."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:59
+msgid ""
+"Prerequisites: Must run ``pgr_createTopology()`` in order to generate "
+"``source`` and ``target`` columns. Primary key column ``id`` should also be "
+"there in the network table."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:62
+msgid "Function accepts the following parameters:"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:64
+msgid "``text`` Network table name, with optional schema name."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:65
+msgid ""
+"``text`` Primary key column name of the network table. Default is ``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:66
+msgid ""
+"``text`` Source column name generated after ``pgr_createTopology()``. "
+"Default is ``source``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:67
+msgid ""
+"``text`` Target column name generated after ``pgr_createTopology()``. "
+"Default is ``target``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:68
+msgid ""
+"``text`` Column name which will hold the integer labels for each sub-graph. "
+"Default is ``subgraph``."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:69
+msgid ""
+"``text`` The SQL where condition. Default is ``true``, means the processing "
+"will be done on the whole table."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:75
+msgid "Example Usage"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:77
+msgid "The sample data, has 3 subgraphs."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:85
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:87
+msgid ""
+"`pgr_createTopology "
+"<https://github.com/Zia-/pgrouting/blob/develop/src/common/sql/pgrouting_topology.sql>`_"
+" to create the topology of a table based on its geometry and tolerance "
+"value."
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:90
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:91
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_labelGraph.rst:92
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_lineGraph.po b/locale/ru/LC_MESSAGES/pgr_lineGraph.po
new file mode 100644
index 0000000..7b69209
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_lineGraph.po
@@ -0,0 +1,387 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_lineGraph.rst:13
+msgid "pgr_lineGraph - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:15
+msgid ""
+"``pgr_lineGraph`` — Transforms a given graph into its corresponding edge-"
+"based graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:20
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:31
+msgid "Given a graph G, its line graph L(G) is a graph such that:-"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:33
+msgid "each vertex of L(G) represents an edge of G"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:34
+msgid ""
+"two vertices of L(G) are adjacent if and only if their corresponding edges "
+"share a common endpoint in G."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:36
+msgid ""
+"The following figures show a graph (left, with blue vertices) and its Line "
+"Graph (right, with green vertices)."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:39
+msgid "|first|"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:45
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:55
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:61
+msgid "Minimal signature"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:68
+msgid "The minimal signature is for a **directed** graph:"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:81
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:90
+msgid "This signature returns the Line Graph of the current graph:"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:89
+msgid ""
+"on a **directed** graph when ``directed`` flag is missing or is set to "
+"``true``."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:90
+msgid "on an **undirected** graph when ``directed`` flag is set to ``false``."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:101
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_lineGraph.rst:112 ../../build/doc/pgr_lineGraph.rst:125
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_lineGraph.rst:112 ../../build/doc/pgr_lineGraph.rst:125
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_lineGraph.rst:112 ../../build/doc/pgr_lineGraph.rst:125
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_lineGraph.rst:129
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_lineGraph.rst:133
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_lineGraph.rst:137
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_lineGraph.rst:141
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:109
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:114
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:114
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:114
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:115
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:115
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:115
+msgid "When ``true`` the graph is considered as `Directed`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:116
+msgid "When ``false`` the graph is considered as `Undirected`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:120
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:122
+msgid "RETURNS SETOF  (seq, source, target, cost, reverse_cost)"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:127
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:127
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:127
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:129 ../../build/doc/pgr_lineGraph.rst:133
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:129
+msgid "Identifier of the source vertex of the current edge `id`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:131
+msgid "When `negative`: the source is the reverse edge in the original graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:133
+msgid "Identifier of the target vertex of the current edge `id`."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:135
+msgid "When `negative`: the target is the reverse edge in the original graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:137 ../../build/doc/pgr_lineGraph.rst:141
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:137
+msgid "Weight of the edge (`source`, `target`)."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:139
+msgid ""
+"When `negative`: edge (`source`, `target`) does not exist, therefore it’s "
+"not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:141
+msgid "Weight of the edge (`target`, `source`)."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:143
+msgid ""
+"When `negative`: edge (`target`, `source`) does not exist, therefore it’s "
+"not part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:147
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:154
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:156
+msgid "https://en.wikipedia.org/wiki/Line_graph"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:157
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:160
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:161
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_lineGraph.rst:162
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_maxCardinalityMatch.po b/locale/ru/LC_MESSAGES/pgr_maxCardinalityMatch.po
new file mode 100644
index 0000000..4c6c884
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_maxCardinalityMatch.po
@@ -0,0 +1,357 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:13
+msgid "pgr_maxCardinalityMatch - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:17
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:19
+msgid ""
+"``pgr_maxCardinalityMatch`` — Calculates a maximum cardinality matching in a"
+" graph."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:29
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:32
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:33
+msgid "Renamed 2.5.0, Previous name pgr_maximumCardinalityMatching"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:34
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:38
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:39
+msgid ""
+"A matching or independent edge set in a graph is a set of edges without "
+"common vertices."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:40
+msgid ""
+"A maximum matching is a matching that contains the largest possible number "
+"of edges."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:42
+msgid "There may be many maximum matchings."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:43
+msgid "Calculates **one** possible maximum cardinality matching in a graph."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:45
+msgid "The graph can be **directed** or **undirected**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:46
+msgid "Running time: :math:`O( E*V * \\alpha(E,V))`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:48
+msgid ":math:`\\alpha(E,V)` is the inverse of the `Ackermann function`_."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:54
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:71
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:78
+msgid ""
+"The minimal use calculates one possible maximum cardinality matching on a "
+"**directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:90
+msgid "Complete signature"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:98
+msgid ""
+"The complete signature calculates one possible maximum cardinality matching."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:109
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:113
+msgid "Description of the SQL query"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:115
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:118
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:136
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:146
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:118
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:136
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:146
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:118
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:136
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:146
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:120
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:120
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:121
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:122
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:120
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:121
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:150
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:121
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:122
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:151
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:122
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:123
+msgid "**going**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:123
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:124
+msgid "``ANY-NUMERIC``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:123
+msgid ""
+"A positive value represents the existence of the edge (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:124
+msgid "**coming**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:124
+msgid ""
+"A positive value represents the existence of the edge (target, source)."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:127
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:129
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:130
+msgid "SMALLINT, INTEGER, BIGINT, REAL, DOUBLE PRECISION"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:133
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:138
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:138
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:138
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:139
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:139
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:139
+msgid "(optional) Determines the type of the graph. Default TRUE."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:143
+msgid "Description of the Result"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:148
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:148
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:148
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:149
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:149
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:150
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:151
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:149
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:150
+msgid "Identifier of the first end point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:151
+msgid "Identifier of the second end point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:155
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:157
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:158
+msgid "http://www.boost.org/libs/graph/doc/maximum_matching.html"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:159
+msgid "https://en.wikipedia.org/wiki/Matching_%28graph_theory%29"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:160
+msgid "https://en.wikipedia.org/wiki/Ackermann_function"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:163
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:164
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxCardinalityMatch.rst:165
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_maxFlow.po b/locale/ru/LC_MESSAGES/pgr_maxFlow.po
new file mode 100644
index 0000000..0327a6f
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_maxFlow.po
@@ -0,0 +1,354 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "pgr_maxFlow - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:17
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:19
+msgid ""
+"``pgr_maxFlow`` — Calculates the maximum flow in a directed graph from the "
+"source(s) to the targets(s) using the Push Relabel algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:25
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:28
+msgid "Availability: 2.4.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:35
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:36
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:37
+msgid ""
+"When the maximum flow is 0 then there is no flow and **0** is returned."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:39
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:41
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:42
+msgid "Uses the :ref:`pgr_pushRelabel <pgr_pushRelabel>` algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:44
+msgid "Running time: :math:`O( V ^ 3)`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:47
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:62
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:64
+msgid "Calculates the maximum flow from the `source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:82
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:84
+msgid "Calculates the maximum flow from the `source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:102
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:104
+msgid "Calculates the maximum flow from all the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:122
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:124
+msgid ""
+"Calculates the maximum flow from all of the `sources` to all of the "
+"`targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:138
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152 ../../build/doc/pgr_maxFlow.rst:169
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_maxFlow.rst:152 ../../build/doc/pgr_maxFlow.rst:169
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:155
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:157
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:149
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:154
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:154
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:154
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:155 ../../build/doc/pgr_maxFlow.rst:157
+#: ../../build/doc/pgr_maxFlow.rst:171
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:155
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:156
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:156 ../../build/doc/pgr_maxFlow.rst:158
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:156
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:157
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:158
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:158
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:166
+msgid "Description of the return value"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:171
+msgid "Maximum flow possible from the source(s) to the target(s)"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:175
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:177
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:178
+msgid "http://www.boost.org/libs/graph/doc/push_relabel_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:179
+msgid ""
+"https://en.wikipedia.org/wiki/Push%E2%80%93relabel_maximum_flow_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:182
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:183
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:184
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_nodeNetwork.po b/locale/ru/LC_MESSAGES/pgr_nodeNetwork.po
new file mode 100644
index 0000000..b9b92db
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_nodeNetwork.po
@@ -0,0 +1,353 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_nodeNetwork.rst:13
+msgid "pgr_nodeNetwork"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:16
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:18
+msgid "``pgr_nodeNetwork`` - Nodes an network edge table."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:20
+msgid "Nicolas Ribot"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:21
+msgid "Nicolas Ribot, The source code is released under the MIT-X license."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:27
+msgid ""
+"The function reads edges from a not \"noded\" network table and writes the "
+"\"noded\" edges into a new table."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:39
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:41
+msgid ""
+"A common problem associated with bringing GIS data into pgRouting is the "
+"fact that the data is often not \"noded\" correctly. This will create "
+"invalid topologies, which will result in routes that are incorrect."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:43
+msgid ""
+"What we mean by \"noded\" is that at every intersection in the road network "
+"all the edges will be broken into separate road segments. There are cases "
+"like an over-pass and under-pass intersection where you can not traverse "
+"from the over-pass to the under-pass, but this function does not have the "
+"ability to detect and accommodate those situations."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:45
+msgid ""
+"This function reads the ``edge_table`` table, that has a primary key column "
+"``id`` and geometry column named ``the_geom`` and intersect all the segments"
+" in it against all the other segments and then creates a table "
+"``edge_table_noded``. It uses the ``tolerance`` for deciding that multiple "
+"nodes within the tolerance are considered the same node."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:47
+msgid "Parameters"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:49
+msgid "``text`` Network table name. (may contain the schema name as well)"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:50
+msgid "``float8`` tolerance for coincident points (in projection unit)dd"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:51
+msgid ""
+"``text`` Primary key column name of the network table. Default value is "
+"``id``."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:52
+msgid ""
+"``text`` Geometry column name of the network table. Default value is "
+"``the_geom``."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:53
+msgid "``text`` Suffix for the new table's. Default value is ``noded``."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:55
+msgid "The output table will have for  ``edge_table_noded``"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:57
+msgid "``bigint`` Unique identifier for the table"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:58
+msgid "``bigint``  Identifier of the edge in original table"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:59
+msgid "``integer`` Segment number of the original edge"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:60
+msgid ""
+"``integer`` Empty source column to be used with  :ref:`pgr_create_topology` "
+"function"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:61
+msgid ""
+"``integer`` Empty target column to be used with  :ref:`pgr_create_topology` "
+"function"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:62
+msgid "``geometry`` Geometry column of the noded network"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:65
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:66
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:70
+msgid "Example"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:72
+msgid "Let's create the topology for the data in :doc:`sampledata`"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:90
+msgid "Now we can analyze the network."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:114
+msgid ""
+"The analysis tell us that the network has a gap and an intersection. We try "
+"to fix the problem using:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:136
+msgid ""
+"Inspecting the generated table, we can see that edges 13,14 and 18 has been "
+"segmented"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:166
+msgid "We can create the topology of the new network"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:184
+msgid "Now let's analyze the new topology"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:210
+msgid "Images"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:243
+msgid "Comparing the results"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:245
+msgid "Comparing with the Analysis in the original edge_table, we see that."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:248
+msgid "Before"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:248
+msgid "After"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:250
+msgid "Table name"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:250
+msgid "edge_table"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:250
+msgid "edge_table_noded"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:252
+msgid "Fields"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:252
+msgid "All original fields"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:252
+msgid "Has only basic fields to do a topology analysis"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:254
+msgid "Dead ends"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:254
+msgid "Edges with 1 dead end: 1,6,24"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:255
+msgid "Edges with 2 dead ends  17,18"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:257
+msgid ""
+"Edge 17's right node is a dead end because there is no other edge sharing "
+"that same node. (cnt=1)"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:254
+msgid "Edges with 1 dead end: 1-1 ,6-1,14-2, 18-1 17-1 18-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:261
+msgid "Isolated segments"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:261
+msgid "two isolated segments:  17 and 18 both they have 2 dead ends"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:262
+msgid "No Isolated segments"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:262
+msgid "Edge 17 now shares a node with edges 14-1 and 14-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:263
+msgid "Edges 18-1 and 18-2 share a node with edges 13-1 and 13-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:265
+msgid "Gaps"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:265
+msgid ""
+"There is a gap between edge 17 and 14 because edge 14 is near to the right "
+"node of edge 17"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:265
+msgid ""
+"Edge 14 was segmented Now edges: 14-1 14-2 17 share the same node The "
+"tolerance value was taken in account"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:269
+msgid "Intersections"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:269
+msgid "Edges 13 and 18 were intersecting"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:269
+msgid ""
+"Edges were segmented, So, now in the interection's point there is a node and"
+" the following edges share it: 13-1 13-2 18-1 18-2"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:274
+msgid ""
+"Now, we are going to include the segments 13-1, 13-2 14-1, 14-2 ,18-1 and "
+"18-2 into our edge-table, copying the data for dir,cost,and reverse cost "
+"with tho following steps:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:276
+msgid ""
+"Add a column old_id into edge_table, this column is going to keep track the "
+"id of the original edge"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:277
+msgid ""
+"Insert only the segmented edges, that is, the ones whose max(sub_id) >1"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:290
+msgid "We recreate the topology:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:310
+msgid ""
+"To get the same analysis results as the topology of edge_table_noded, we do "
+"the following query:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:337
+msgid ""
+"To get the same analysis results as the original edge_table, we do the "
+"following query:"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:362
+msgid ""
+"Or we can analyze everything because, maybe edge 18 is an overpass, edge 14 "
+"is an under pass and there is also a street level juction, and the same "
+"happens with edges 17 and 13."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:389
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:391
+msgid ""
+":ref:`topology` for an overview of a topology for routing algorithms. "
+":ref:`pgr_analyze_oneway` to analyze directionality of the edges. "
+":ref:`pgr_create_topology` to create a topology based on the geometry. "
+":ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:397
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:398
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_nodeNetwork.rst:399
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_pointsAsPolygon.po b/locale/ru/LC_MESSAGES/pgr_pointsAsPolygon.po
new file mode 100644
index 0000000..356d85b
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_pointsAsPolygon.po
@@ -0,0 +1,124 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:13
+msgid "pgr_pointsAsPolygon"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:21
+msgid ""
+"``pgr_pointsAsPolygon`` — Draws an alpha shape around given set of points."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:27
+msgid "Returns the alpha shape as (multi)polygon geometry."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:35
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:37
+msgid ""
+"``text`` a SQL query, which should return a set of rows with the following "
+"columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:43
+msgid "``int4`` identifier of the vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:44
+msgid "``float8`` x-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:45
+msgid "``float8`` y-coordinate"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:47
+msgid ""
+"(optional) ``float8`` alpha value. If specified alpha value equals 0 "
+"(default), then optimal alpha value is used. For more information, see `CGAL"
+" - 2D Alpha Shapes "
+"<http://doc.cgal.org/latest/Alpha_shapes_2/group__PkgAlphaShape2.html>`_."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:50
+msgid "Returns a (multi)polygon geometry (with holes)."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:54
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:55
+msgid "Renamed in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:56
+msgid ""
+"Added alpha argument with default 0 (use optimal value) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:57
+msgid ""
+"Supported to return a (multi)polygon geometry (with holes) in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:61
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:62
+msgid ""
+"In the following query there is no way to control which point in the polygon"
+" is the first in the list, so you may get similar but different results than"
+" the following which are also correct."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:69
+msgid "The query use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:73
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:75
+msgid ":ref:`pgr_drivingDistance` - Driving Distance"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:76
+msgid ":ref:`pgr_alphashape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:79
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:80
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_pointsAsPolygon.rst:81
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_pushRelabel.po b/locale/ru/LC_MESSAGES/pgr_pushRelabel.po
new file mode 100644
index 0000000..13e8a04
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_pushRelabel.po
@@ -0,0 +1,439 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_pushRelabel.rst:14
+msgid "pgr_pushRelabel - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:18
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:20
+msgid ""
+"``pgr_pushRelabel`` — Calculates the flow on the graph edges that maximizes "
+"the flow from the sources to the targets using Push Relabel Algorithm."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:26
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:29
+msgid "Availability:"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:30
+msgid "Renamed 2.5.0, Previous name pgr_maxFlowPushRelabel"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:31
+msgid "New in 2.3.0"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid "The graph is **directed**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Process is done only on edges with positive capacities."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:8
+msgid ""
+"When the maximum flow is 0 then there is no flow and **EMPTY SET** is "
+"returned."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid "There is no flow when a **source** is the same as a **target**."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:12
+msgid "Any duplicated value in the source(s) or target(s) are ignored."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:13
+msgid "Calculates the flow/residual capacity for each edge. In the output"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:15
+msgid "Edges with zero flow are omitted."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:17
+msgid ""
+"Creates a **super source** and edges to all the source(s), and a **super "
+"target** and the edges from all the targets(s)."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:18
+msgid ""
+"The maximum flow through the graph is guaranteed to be the value returned by"
+" :ref:`pgr_maxFlow <pgr_maxFlow>` when executed with the same parameters and"
+" can be calculated:"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:20
+msgid "By aggregation of the outgoing flow from the sources"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:21
+msgid "By aggregation of the incoming flow to the targets"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:41
+msgid "Running time: :math:`O( V ^ 3)`"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:44
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:60
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:62
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:81
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:83
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from the "
+"`source` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:102
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:104
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to the `target`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:123
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:125
+msgid ""
+"Calculates the flow on the graph edges that maximizes the flow from all of "
+"the `sources` to all of the `targets`."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:140
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for Max-flow like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9 ../../build/doc/pgr_maxFlow.rst:7
+#: ../../build/doc/pgRouting-concepts.rst:7
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgr_maxFlow.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:4
+msgid "Description of the Parameters of the Flow Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:9
+msgid "The edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10 ../../build/doc/pgr_maxFlow.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:10
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:10
+msgid "Identifier of the starting vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "**sources**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11 ../../build/doc/pgr_maxFlow.rst:13
+msgid "``ARRAY[BIGINT]``"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:11
+msgid "Array of identifiers of the starting vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:12
+msgid "Identifier of the ending vertex of the flow."
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "**targets**"
+msgstr ""
+
+#: ../../build/doc/pgr_maxFlow.rst:13
+msgid "Array of identifiers of the ending vertices of the flow."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Return Values"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:10
+msgid "Identifier of the edge in the original query(edges_sql)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**flow**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Flow through the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**residual_capacity**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Residual capacity of the edge in the direction (source, target)."
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:158
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:160
+msgid ""
+":ref:`maxFlow`, :ref:`pgr_boykovKolmogorov <pgr_boykovKolmogorov>`, "
+":ref:`pgr_edmondsKarp <pgr_edmondsKarp>`"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:161
+msgid "http://www.boost.org/libs/graph/doc/push_relabel_max_flow.html"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:162
+msgid ""
+"https://en.wikipedia.org/wiki/Push%E2%80%93relabel_maximum_flow_algorithm"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:165
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:166
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_pushRelabel.rst:167
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_strongComponents.po b/locale/ru/LC_MESSAGES/pgr_strongComponents.po
new file mode 100644
index 0000000..6f6c0cf
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_strongComponents.po
@@ -0,0 +1,346 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_strongComponents.rst:13
+msgid "pgr_strongComponents - Experimental"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:15
+msgid ""
+"``pgr_strongComponents`` — Return the strongly connected components of a "
+"directed graph using Tarjan's algorithm based on DFS. In particular, the "
+"algorithm implemented by Boost.Graph."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:21
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:29
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:31
+msgid ""
+"A strongly connected component of a directed graph is a set of vertices that"
+" are all reachable from each other. This implementation can only be used "
+"with a directed graph."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:36
+msgid "Characteristics"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:38
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:40
+msgid "Components are described by vertices"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:42
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:44
+msgid "`component` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:45
+msgid "`node` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:47
+msgid "Running time: :math:`O(V + E)`"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:62
+msgid "The signature is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:75
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the edges_sql query for components functions"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+#: ../../build/doc/components-family.rst:7
+#: ../../build/doc/components-family.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:13
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+#: ../../build/doc/components-family.rst:18
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:24
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:7
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:9
+msgid "SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:4
+msgid ""
+"Description of the return values for connected components and strongly "
+"connected components"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:6
+msgid "Returns set of ``(seq, component, n_seq, node)``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+#: ../../build/doc/components-family.rst:13
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:11
+msgid "Sequential value starting from **1**."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid "**component**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+#: ../../build/doc/components-family.rst:14
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:12
+msgid ""
+"Component identifier. It is equal to the minimum node identifier in the "
+"component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "**n_seq**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:13
+msgid "It is a sequential value starting from **1** in a component."
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/components-family.rst:14
+msgid "Identifier of the vertex."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:91
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:93
+msgid "http://en.wikipedia.org/wiki/Strongly_connected_component"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:94
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:97
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:98
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_strongComponents.rst:99
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_trsp.po b/locale/ru/LC_MESSAGES/pgr_trsp.po
new file mode 100644
index 0000000..108f0f8
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_trsp.po
@@ -0,0 +1,281 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_trsp.rst:13
+msgid "pgr_trsp - Turn Restriction Shortest Path (TRSP)"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:22
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:24
+msgid ""
+"``pgr_trsp`` — Returns the shortest path with support for turn restrictions."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:28
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:30
+msgid ""
+"The turn restricted shorthest path (TRSP) is a shortest path algorithm that "
+"can optionally take into account complicated turn restrictions like those "
+"found in real world navigable road networks. Performamnce wise it is nearly "
+"as fast as the A* search but has many additional features like it works with"
+" edges rather than the nodes of the network. Returns a set of "
+":ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows, that "
+"make up a path."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:57
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:59
+msgid ""
+"The Turn Restricted Shortest Path algorithm (TRSP) is similar to the "
+"shooting star in that you can specify turn restrictions."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:61
+msgid ""
+"The TRSP setup is mostly the same as :ref:`Dijkstra shortest path "
+"<pgr_dijkstra>` with the addition of an optional turn restriction table. "
+"This provides an easy way of adding turn restrictions to a road network by "
+"placing them in a separate table."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:64 ../../build/doc/pgr_trsp.rst:120
+msgid ""
+"a SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:71 ../../build/doc/pgr_trsp.rst:127
+msgid "``int4`` identifier of the edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:72 ../../build/doc/pgr_trsp.rst:128
+msgid "``int4`` identifier of the source vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:73 ../../build/doc/pgr_trsp.rst:129
+msgid "``int4`` identifier of the target vertex"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:74 ../../build/doc/pgr_trsp.rst:130
+msgid ""
+"``float8`` value, of the edge traversal cost. A negative cost will prevent "
+"the edge from being inserted in the graph."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:75 ../../build/doc/pgr_trsp.rst:131
+msgid ""
+"(optional) the cost for the reverse traversal of the edge. This is only used"
+" when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the "
+"above remark about negative costs)."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:77
+msgid "``int4`` **NODE id** of the start point"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:78
+msgid "``int4`` **NODE id** of the end point"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:79 ../../build/doc/pgr_trsp.rst:134
+msgid "``true`` if the graph is directed"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:80 ../../build/doc/pgr_trsp.rst:135
+msgid ""
+"if ``true``, the ``reverse_cost`` column of the SQL generated set of rows "
+"will be used for the cost of the traversal of the edge in the opposite "
+"direction."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:82 ../../build/doc/pgr_trsp.rst:137
+msgid ""
+"(optional) a SQL query, which should return a set of rows with the following"
+" columns:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:88 ../../build/doc/pgr_trsp.rst:143
+msgid "``float8`` turn restriction cost"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:89 ../../build/doc/pgr_trsp.rst:144
+msgid "``int4`` target id"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:90
+msgid ""
+"``text`` comma separated list of edges in the reverse order of ``rule``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:92
+msgid ""
+"Another variant of TRSP allows to specify **EDGE id** of source and target "
+"together with a fraction to interpolate the position:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:94
+msgid "``int4`` **EDGE id** of the start edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:95
+msgid "``float8`` fraction of 1 defines the position on the start edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:96
+msgid "``int4`` **EDGE id** of the end edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:97
+msgid "``float8`` fraction of 1 defines the position on the end edge"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:99 ../../build/doc/pgr_trsp.rst:152
+msgid "Returns set of :ref:`type_cost_result`:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:101 ../../build/doc/pgr_trsp.rst:154
+msgid "row sequence"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:102 ../../build/doc/pgr_trsp.rst:156
+msgid "node ID"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:103 ../../build/doc/pgr_trsp.rst:157
+msgid "edge ID (``-1`` for the last row)"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:104
+msgid "cost to traverse from ``id1`` using ``id2``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:107 ../../build/doc/pgr_trsp.rst:162
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:108
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:111
+msgid "Support for Vias"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:113
+msgid ""
+"The Support for Vias functions are prototypes. Not all corner cases are "
+"being considered."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:116
+msgid ""
+"We also have support for vias where you can say generate a from A to B to C,"
+" etc. We support both methods above only you pass an array of vertices or "
+"and array of edges and percentage position along the edge in two arrays."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:133
+msgid ""
+"``int4[]`` An ordered array of **NODE id** the path will go through from "
+"start to end."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:145
+msgid ""
+"``text`` commar separated list of edges in the reverse order of ``rule``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:147
+msgid ""
+"Another variant of TRSP allows to specify **EDGE id** together with a "
+"fraction to interpolate the position:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:149
+msgid "``int4`` An ordered array of **EDGE id** that the path has to traverse"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:150
+msgid ""
+"``float8`` An array of fractional positions along the respective edges in "
+"``eids``, where 0.0 is the start of the edge and 1.0 is the end of the "
+"eadge."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:155
+msgid "route ID"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:158
+msgid "cost to traverse from ``id2`` using ``id3``"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:163
+msgid "Via Support prototypes new in version 2.1.0"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:166
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:168
+msgid "**Without turn restrictions**"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:175
+msgid "**With turn restrictions**"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:177
+msgid "Then a query with turn restrictions is created as:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:184
+msgid "An example query using vertex ids and via points:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:191
+msgid "An example query using edge ids and vias:"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:198
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:202
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:204
+msgid ":ref:`type_cost_result`"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:207
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:208
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_trsp.rst:209
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_version.po b/locale/ru/LC_MESSAGES/pgr_version.po
new file mode 100644
index 0000000..5a6623a
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_version.po
@@ -0,0 +1,130 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_version.rst:13
+msgid "pgr_version"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:19
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:21
+msgid "``pgr_version`` — Query for pgRouting version information."
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:25
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:27
+msgid "Returns a table with pgRouting version information."
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:35 ../../build/doc/pgr_version.rst:40
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:37
+msgid "Returns a table with:"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:40
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:40
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:42
+msgid "**version**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:42 ../../build/doc/pgr_version.rst:43
+#: ../../build/doc/pgr_version.rst:44 ../../build/doc/pgr_version.rst:45
+#: ../../build/doc/pgr_version.rst:46
+msgid "``varchar``"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:42
+msgid "pgRouting version"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:43
+msgid "**tag**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:43
+msgid "Git tag of pgRouting build"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:44
+msgid "**hash**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:44
+msgid "Git hash of pgRouting build"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:45
+msgid "**branch**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:45
+msgid "Git branch of pgRouting build"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:46
+msgid "**boost**"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:46
+msgid "Boost version"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:51
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:52
+msgid "New in version 2.0.0"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:56
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:58
+msgid "Query for full version string"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:66
+msgid "Query for ``version`` and ``boost`` attribute"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:78
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:81
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:82
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_version.rst:83
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_vrpOneDepot.po b/locale/ru/LC_MESSAGES/pgr_vrpOneDepot.po
new file mode 100644
index 0000000..a0c5006
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_vrpOneDepot.po
@@ -0,0 +1,112 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:14
+msgid "pgr_vrpOneDepot - Experimental"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:14
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:15
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:16
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:18
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:21
+msgid "**No documentation available**"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:24
+msgid "Example:"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:28
+msgid "Current Result"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:34
+msgid "Data"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:41
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:43
+msgid "http://en.wikipedia.org/wiki/Vehicle_routing_problem"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:46
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:47
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_vrpOneDepot.rst:48
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_withPoints.po b/locale/ru/LC_MESSAGES/pgr_withPoints.po
new file mode 100644
index 0000000..be629d4
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_withPoints.po
@@ -0,0 +1,665 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPoints.rst:13
+msgid "pgr_withPoints - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:19
+msgid ""
+"``pgr_withPoints`` - Returns the shortest path in a graph with additional "
+"temporary vertices."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:33
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:37
+msgid ""
+"Modify the graph to include points defined by points_sql. Using Dijkstra "
+"algorithm, find the shortest path(s)"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:41
+msgid "Characteristics:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:43
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:45
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:46
+msgid "Vertices of the graph are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:48
+msgid "**positive** when it belongs to the edges_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:49
+msgid "**negative** when it belongs to the points_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:51
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:53
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path. -"
+" The agg_cost the non included values (v, v) is 0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:56
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path: - The agg_cost the non included values (u, v) is ∞"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:59
+msgid ""
+"For optimization purposes, any duplicated value in the start_vids or "
+"end_vids are ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:60
+msgid ""
+"The returned values are ordered: - start_vid ascending - end_vid ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:64
+msgid "Running time: :math:`O(|start\\_vids|\\times(V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:68
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:81
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:87
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:92
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:90
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:91
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:92
+msgid ""
+"No **details** are given about distance of other points of points_sql query."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:100
+msgid "From point 1 to point 3"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:110
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:120
+msgid "From point 1 to vertex 3"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:132
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:141
+msgid "From point 1 to point 3 and vertex 5"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:153
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:162
+msgid "From point 1 and vertex 2  to point 3"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:172
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:182
+msgid "From point 1 and vertex 2  to point 3 and vertex 7"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:192
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPoints.rst:236
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPoints.rst:211
+#: ../../build/doc/pgr_withPoints.rst:236
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPoints.rst:211
+#: ../../build/doc/pgr_withPoints.rst:236
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPoints.rst:215
+#: ../../build/doc/pgr_withPoints.rst:216
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_withPoints.rst:249
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPoints.rst:220
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPoints.rst:222
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPoints.rst:223
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:207
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:211
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:213
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:213
+#: ../../build/doc/pgr_withPoints.rst:214
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:213
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:214
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:214
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:215
+#: ../../build/doc/pgr_withPoints.rst:240
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:215
+msgid "Starting vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:216
+#: ../../build/doc/pgr_withPoints.rst:241
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:216
+msgid "Ending vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:217
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:217
+#: ../../build/doc/pgr_withPoints.rst:218
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:217
+msgid ""
+"Array of identifiers of starting vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:218
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:218
+msgid ""
+"Array of identifiers of ending vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:219
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:219
+#: ../../build/doc/pgr_withPoints.rst:225
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:219
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:220
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:223
+msgid ""
+"(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:221
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:225
+msgid "**details**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:225
+msgid ""
+"(optional). When ``true`` the results will include the points in points_sql "
+"that are in the path. Default is ``false`` which ignores other points of the"
+" points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:231
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:233
+msgid ""
+"Returns set of ``(seq, [path_seq,] [start_vid,] [end_vid,] node, edge, cost,"
+" agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:238
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:238
+#: ../../build/doc/pgr_withPoints.rst:239
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:238
+msgid "Row sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:239
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:239
+msgid "Path sequence that indicates the relative position on the path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:240
+#: ../../build/doc/pgr_withPoints.rst:241
+#: ../../build/doc/pgr_withPoints.rst:242
+#: ../../build/doc/pgr_withPoints.rst:246
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:240
+msgid "Identifier of the starting vertex. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:241
+msgid "Identifier of the ending vertex. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:242
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:244
+msgid "Identifier of the node:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:243
+msgid "A positive value indicates the node is a vertex of edges_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:244
+msgid "A negative value indicates the node is a point of points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:246
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:247
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:247
+msgid "``-1`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:249
+#: ../../build/doc/pgr_withPoints.rst:252
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:250
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next ``node`` in the "
+"path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:250
+msgid "``0`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:252
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:253
+msgid "Aggregate cost from ``start_pid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:253
+msgid "``0`` for the first row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:260
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:262
+msgid ""
+"Which path (if any) passes in front of point 6 or vertex 6 with **right** "
+"side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:268
+msgid ""
+"Which path (if any) passes in front of point 6 or vertex 6 with **left** "
+"side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:274
+msgid ""
+"Many to many example with a twist: on undirected graph and showing details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:281
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:286
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:287
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:291
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:293
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:296
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:297
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPoints.rst:298
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_withPointsCost.po b/locale/ru/LC_MESSAGES/pgr_withPointsCost.po
new file mode 100644
index 0000000..f478ccd
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_withPointsCost.po
@@ -0,0 +1,603 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsCost.rst:13
+msgid "pgr_withPointsCost - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:19
+msgid ""
+"``pgr_withPointsCost`` - Calculates the shortest path and returns only the "
+"aggregate cost of the shortest path(s) found, for the combination of points "
+"given."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:33
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:37
+msgid ""
+"Modify the graph to include points defined by points_sql. Using Dijkstra "
+"algorithm, return only the aggregate cost of the shortest path(s) found."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:41
+msgid "Characteristics:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:79
+msgid "The main Characteristics are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:44
+msgid "It does not return a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:45
+msgid ""
+"Returns the sum of the costs of the shortest path for pair combination of "
+"vertices in the modified graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:46
+msgid "Vertices of the graph are:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:48
+msgid "**positive** when it belongs to the edges_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:49
+msgid "**negative** when it belongs to the points_sql"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:51
+msgid "Process is done only on edges with positive costs."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:52
+msgid "Values are returned when there is a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:54
+msgid ""
+"The returned values are in the form of a set of `(start_vid, end_vid, "
+"agg_cost)`."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:56
+msgid ""
+"When the starting vertex and ending vertex are the same, there is no path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:58
+msgid "The `agg_cost` in the non included values `(v, v)` is `0`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:60
+msgid ""
+"When the starting vertex and ending vertex are the different and there is no"
+" path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:62
+msgid "The `agg_cost` in the non included values `(u, v)` is :math:`\\infty`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:64
+msgid ""
+"If the values returned are stored in a table, the unique index would be the "
+"pair: `(start_vid, end_vid)`."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:67
+msgid "For undirected graphs, the results are symmetric."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:69
+msgid "The  `agg_cost` of `(u, v)` is the same as for `(v, u)`."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:71
+msgid ""
+"For optimization purposes, any duplicated value in the `start_vids` or "
+"`end_vids` is ignored."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:73
+msgid "The returned values are ordered:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:75
+msgid "`start_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:76
+msgid "`end_vid` ascending"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:78
+msgid "Running time: :math:`O(| start\\_vids | * (V \\log V + E))`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:82
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:92
+msgid ""
+"There is no **details** flag, unlike the other members of the withPoints "
+"family of functions."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:96
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:102
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:106
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:105
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:106
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:124
+msgid "One to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:145
+msgid "One to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:166
+msgid "Many to One"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:185
+msgid "Many to Many"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:204
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCost.rst:246
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCost.rst:223
+#: ../../build/doc/pgr_withPointsCost.rst:246
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCost.rst:223
+#: ../../build/doc/pgr_withPointsCost.rst:246
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPointsCost.rst:227
+#: ../../build/doc/pgr_withPointsCost.rst:228
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsCost.rst:232
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsCost.rst:234
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsCost.rst:235
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:219
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:223
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:225
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:225
+#: ../../build/doc/pgr_withPointsCost.rst:226
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:225
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:226
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:226
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:227
+#: ../../build/doc/pgr_withPointsCost.rst:248
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:227
+msgid "Starting vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:228
+#: ../../build/doc/pgr_withPointsCost.rst:249
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:228
+msgid "Ending vertex identifier. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:229
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:229
+#: ../../build/doc/pgr_withPointsCost.rst:230
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:229
+msgid ""
+"Array of identifiers of starting vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:230
+msgid "**end_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:230
+msgid ""
+"Array of identifiers of ending vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:231
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:231
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:231
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:232
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:235
+msgid ""
+"(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:233
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:241
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:243
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:248
+#: ../../build/doc/pgr_withPointsCost.rst:249
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:248
+msgid "Identifier of the starting vertex. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:249
+msgid "Identifier of the ending point. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:250
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:250
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:250
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:256
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:258
+msgid "With **right** side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:264
+msgid "With **left** side driving topology."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:270
+msgid "Does not matter driving side."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:277
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:282
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:283
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:287
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:289
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:292
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:293
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCost.rst:294
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_withPointsCostMatrix.po b/locale/ru/LC_MESSAGES/pgr_withPointsCostMatrix.po
new file mode 100644
index 0000000..c9bb20f
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_withPointsCostMatrix.po
@@ -0,0 +1,472 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:13
+msgid "pgr_withPointsCostMatrix - proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:19
+msgid ""
+"``pgr_withPointsCostMatrix`` - Calculates the shortest path and returns only"
+" the aggregate cost of the shortest path(s) found, for the combination of "
+"points given."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:31
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:35
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:37
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:45
+msgid ""
+"There is no **details** flag, unlike the other members of the withPoints "
+"family of functions."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:49
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:55
+msgid "Minimal Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:59
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:58
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:59
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:78
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:87
+msgid "returning a symmetrical cost matrix"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:89
+msgid "Using the default **side** value on the **points_sql** query"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:90
+msgid "Using an undirected graph"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:91
+msgid "Using the default **driving_side** value"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:100
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:120
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:120
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:126
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:128
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:129
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:116
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:120
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:122
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:122
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:123
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:122
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:123
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:123
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:124
+msgid "**start_vids**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:124
+msgid "``ARRAY[ANY-INTEGER]``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:124
+msgid ""
+"Array of identifiers of starting vertices. When negative: is a point's pid."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:125
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:125
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:125
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:126
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:129
+msgid ""
+"(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:127
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the return values for a Cost function"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid "Returns set of ``(start_vid, end_vid, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid ""
+"Identifier of the starting vertex. Used when multiple starting vetrices are "
+"in the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**end_vid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid ""
+"Identifier of the ending vertex. Used when multiple ending vertices are in "
+"the query."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Aggregate cost from ``start_vid`` to ``end_vid``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:140
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:142
+msgid "Use with tsp"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:151
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:153
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:154
+msgid ":ref:`costMatrix`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:155
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:156
+msgid "`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:159
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:160
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsCostMatrix.rst:161
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_withPointsDD.po b/locale/ru/LC_MESSAGES/pgr_withPointsDD.po
new file mode 100644
index 0000000..95b4be1
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_withPointsDD.po
@@ -0,0 +1,552 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsDD.rst:13
+msgid "pgr_withPointsDD - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:19
+msgid ""
+"``pgr_withPointsDD`` - Returns the driving distance from a starting point."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:30
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:33
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:35
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:37
+msgid ""
+"Modify the graph to include points and using Dijkstra algorithm, extracts "
+"all the nodes and points that have costs less than or equal to the value "
+"``distance`` from the starting point. The edges extracted will conform the "
+"corresponding spanning tree."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:44
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:54
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:60
+msgid "Minimal Use"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:65
+msgid "The minimal signature:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:63
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:64
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:65
+msgid "No **details** are given about distance of other points of the query."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:84
+msgid "Driving distance from a single point"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:86
+#: ../../build/doc/pgr_withPointsDD.rst:106
+msgid "Finds the driving distance depending on the optional parameters setup."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:94
+msgid "Right side driving topology"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:104
+msgid "Driving distance from many starting points"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:118
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsDD.rst:162
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsDD.rst:138
+#: ../../build/doc/pgr_withPointsDD.rst:162
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsDD.rst:138
+#: ../../build/doc/pgr_withPointsDD.rst:162
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPointsDD.rst:142
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_withPointsDD.rst:169
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+#: ../../build/doc/pgr_withPointsDD.rst:143
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsDD.rst:145
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsDD.rst:147
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsDD.rst:148
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:134
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:138
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:140
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:140
+#: ../../build/doc/pgr_withPointsDD.rst:141
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:140
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:141
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:141
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:142
+msgid "**start_vid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:142
+msgid "Starting point id"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:143
+msgid "**distance**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:143
+msgid "Distance from the start_pid"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:144
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:144
+#: ../../build/doc/pgr_withPointsDD.rst:150
+#: ../../build/doc/pgr_withPointsDD.rst:152
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:144
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:145
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:148
+msgid ""
+"(optional). Value in ['b', 'r', 'l', NULL] indicating if the driving side "
+"is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:146
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:150
+msgid "**details**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:150
+msgid ""
+"(optional). When ``true`` the results will include the driving distance to "
+"the points with in the ``distance``. Default is ``false`` which ignores "
+"other points of the points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:152
+msgid "**equicost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:152
+msgid ""
+"(optional). When ``true`` the nodes will only appear in the closest start_v "
+"list. Default is ``false`` which resembles several calls using the single "
+"starting point signatures. Tie brakes are arbitrary."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:157
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:159
+msgid "Returns set of ``(seq, node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:164
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:164
+msgid "``INT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:164
+msgid "row sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:165
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:165
+#: ../../build/doc/pgr_withPointsDD.rst:166
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:165
+msgid ""
+"Identifier of the node within the Distance from ``start_pid``. If ``details "
+"=: true`` a negative value is the identifier of a point."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:166
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:167
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:167
+msgid "``-1`` when ``start_vid`` = ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:169
+#: ../../build/doc/pgr_withPointsDD.rst:172
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:170
+msgid "Cost to traverse ``edge``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:170
+#: ../../build/doc/pgr_withPointsDD.rst:173
+msgid "``0`` when ``start_vid`` = ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:172
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:173
+msgid "Aggregate cost from ``start_vid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:180
+msgid ""
+"Examples for queries marked as ``directed`` with ``cost`` and "
+"``reverse_cost`` columns"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:182
+msgid "The examples in this section use the following :ref:`fig1`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:184
+msgid "Left side driving topology"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:190
+msgid "Does not matter driving side."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:199
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:204
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:205
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:209
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:211
+msgid ":ref:`pgr_drivingDistance` - Driving distance using dijkstra."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:212
+msgid ":ref:`pgr_alphashape` - Alpha shape computation."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:213
+msgid ":ref:`pgr_points_as_polygon` - Polygon around set of points."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:216
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:217
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsDD.rst:218
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/pgr_withPointsKSP.po b/locale/ru/LC_MESSAGES/pgr_withPointsKSP.po
new file mode 100644
index 0000000..8202877
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/pgr_withPointsKSP.po
@@ -0,0 +1,571 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/pgr_withPointsKSP.rst:13
+msgid "pgr_withPointsKSP - Proposed"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:17
+msgid "Name"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:19
+msgid ""
+"``pgr_withPointsKSP`` - Find the K shortest paths using Yen's algorithm."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:29
+msgid "Boost Graph Inside"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:32
+msgid "Availability: 2.2.0"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:34
+msgid "Synopsis"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:36
+msgid ""
+"Modifies the graph to include the points defined in the ``points_sql`` and "
+"using Yen algorithm, finds the K shortest paths."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:41
+msgid "Signature Summary"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:50
+msgid "Signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:56
+msgid "Minimal Usage"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:62
+msgid "The minimal usage:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:59
+msgid "Is for a **directed** graph."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:60
+msgid ""
+"The driving side is set as **b** both. So arriving/departing to/from the "
+"point(s) can be in any direction."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:61
+msgid "No **details** are given about distance of other points of the query."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:62
+msgid "No **heap paths** are returned."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:80
+msgid "Complete Signature"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:82
+msgid "Finds the K shortest paths depending on the optional parameters setup."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:91
+msgid "With details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:98
+msgid "Description of the Signatures"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the edges_sql query for dijkstra like functions"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:6
+#: ../../build/doc/pgRouting-concepts.rst:6
+msgid ""
+"an SQL query, which should return a set of rows with the following columns:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsKSP.rst:144
+msgid "Column"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsKSP.rst:119
+#: ../../build/doc/pgr_withPointsKSP.rst:144
+msgid "Type"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+msgid "Default"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgRouting-concepts.rst:9
+#: ../../build/doc/pgr_withPointsKSP.rst:119
+#: ../../build/doc/pgr_withPointsKSP.rst:144
+msgid "Description"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:12
+#: ../../build/doc/pgRouting-concepts.rst:13
+#: ../../build/doc/pgRouting-concepts.rst:11
+#: ../../build/doc/pgRouting-concepts.rst:16
+#: ../../build/doc/pgr_withPointsKSP.rst:123
+#: ../../build/doc/pgr_withPointsKSP.rst:124
+msgid "``ANY-INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "Identifier of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "**source**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:12
+msgid "Identifier of the first end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "**target**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "Identifier of the second end point vertex of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgr_withPointsKSP.rst:153
+msgid "**cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "``ANY-NUMERICAL``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid "Weight of the edge  `(source, target)`"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid ""
+"When negative: edge `(source, target)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**reverse_cost**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "-1"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "Weight of the edge `(target, source)`,"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid ""
+"When negative: edge `(target, source)` does not exist, therefore it's not "
+"part of the graph."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:24
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "Where:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:26
+msgid "SMALLINT, INTEGER, BIGINT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:27
+msgid "SMALLINT, INTEGER, BIGINT, REAL, FLOAT"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:4
+msgid "Description of the Points SQL query"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "**pid**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:11
+msgid "(optional) Identifier of the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:13
+msgid "If column present, it can not be NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:14
+msgid ""
+"If column not present, a sequential identifier will be given automatically."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "**edge_id**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:16
+msgid "Identifier of the \"closest\" edge to the point."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid "**fraction**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:17
+msgid ""
+"Value in <0,1> that indicates the relative postition from the first end "
+"point of the edge."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "**side**"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+#: ../../build/doc/pgr_withPointsKSP.rst:128
+msgid "``CHAR``"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:18
+msgid "(optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:20
+msgid "In the right, left of the edge or"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:21
+#: ../../build/doc/pgr_withPointsKSP.rst:130
+msgid "If it doesn't matter with 'b' or NULL."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:22
+#: ../../build/doc/pgr_withPointsKSP.rst:131
+msgid "If column not present 'b' is considered."
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:28
+msgid "smallint, int, bigint"
+msgstr ""
+
+#: ../../build/doc/pgRouting-concepts.rst:29
+msgid "smallint, int, bigint, real, float"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:115
+msgid "Description of the parameters of the signatures"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:119
+msgid "Parameter"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:121
+msgid "**edges_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:121
+#: ../../build/doc/pgr_withPointsKSP.rst:122
+msgid "``TEXT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:121
+msgid "Edges SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:122
+msgid "**points_sql**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:122
+msgid "Points SQL query as described above."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:123
+msgid "**start_pid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:123
+msgid "Starting point id."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:124
+msgid "**end_pid**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:124
+msgid "Ending point id."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:125
+msgid "**K**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:125
+#: ../../build/doc/pgr_withPointsKSP.rst:146
+#: ../../build/doc/pgr_withPointsKSP.rst:147
+#: ../../build/doc/pgr_withPointsKSP.rst:148
+msgid "``INTEGER``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:125
+msgid "Number of shortest paths."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:126
+msgid "**directed**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:126
+#: ../../build/doc/pgr_withPointsKSP.rst:127
+#: ../../build/doc/pgr_withPointsKSP.rst:133
+msgid "``BOOLEAN``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:126
+msgid ""
+"(optional). When ``false`` the graph is considered as Undirected. Default is"
+" ``true`` which considers the graph as Directed."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:127
+msgid "**heap_paths**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:127
+msgid ""
+"(optional). When ``true`` the paths calculated to get the shortests paths "
+"will be returned also. Default is ``false`` only the K shortest paths are "
+"returned."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:128
+msgid "**driving_side**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:131
+msgid ""
+"(optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:129
+msgid "In the right or left or"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:133
+msgid "**details**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:133
+msgid ""
+"(optional). When ``true`` the results will include the driving distance to "
+"the points with in the ``distance``. Default is ``false`` which ignores "
+"other points of the points_sql."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:139
+msgid "Description of the return values"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:141
+msgid ""
+"Returns set of ``(seq, path_id, path_seq, node, edge, cost, agg_cost)``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:146
+msgid "**seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:146
+msgid "Row sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:147
+msgid "**path_seq**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:147
+msgid ""
+"Relative position in the path of node and edge. Has value 1 for the "
+"beginning of a path."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:148
+msgid "**path_id**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:148
+msgid ""
+"Path identifier. The ordering of the paths: For two paths i, j if i < j then"
+" agg_cost(i) <= agg_cost(j)."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:149
+msgid "**node**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:149
+#: ../../build/doc/pgr_withPointsKSP.rst:150
+msgid "``BIGINT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:149
+msgid ""
+"Identifier of the node in the path. Negative values are the identifiers of a"
+" point."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:150
+msgid "**edge**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:151
+msgid ""
+"Identifier of the edge used to go from ``node`` to the next node in the path"
+" sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:151
+msgid "``-1`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:153
+#: ../../build/doc/pgr_withPointsKSP.rst:156
+msgid "``FLOAT``"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:154
+msgid ""
+"Cost to traverse from ``node`` using ``edge`` to the next ``node`` in the "
+"path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:154
+msgid "``0`` for the last row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:156
+msgid "**agg_cost**"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:157
+msgid "Aggregate cost from ``start_pid`` to ``node``."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:157
+msgid "``0`` for the first row in the path sequence."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:164
+msgid "Examples"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:166
+msgid "Left side driving topology with details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:172
+msgid "Right side driving topology with heap paths and details."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:178
+msgid "The queries use the :doc:`sampledata` network."
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:181
+msgid "History"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:182
+msgid "Proposed in version 2.2"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:186
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:188
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:191
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:192
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/pgr_withPointsKSP.rst:193
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/proposed.po b/locale/ru/LC_MESSAGES/proposed.po
new file mode 100644
index 0000000..9f1a6f4
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/proposed.po
@@ -0,0 +1,410 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/proposed.rst:13
+msgid "Stable Proposed Functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:17
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:19
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:20
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:22
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:23
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:24
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:25
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:26
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:27
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:33
+msgid "As part of the :ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:35
+msgid ""
+":ref:`pgr_dijkstraCostMatrix` Use pgr_dijkstra to calculate a cost matrix."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:36
+msgid ""
+":ref:`pgr_dijkstraVia` - Use pgr_dijkstra to make a route via vertices."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:39
+msgid "Families"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:40
+msgid ":ref:`astar`"
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:3
+msgid ":ref:`pgr_aStar` - A* algorithm for the shortest path."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:4
+msgid ":ref:`pgr_aStarCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/aStar-family.rst:5
+msgid ""
+":ref:`pgr_aStarCostMatrix` - Get the cost matrix of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:46
+msgid ":ref:`bdAstar`"
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:3
+msgid ":ref:`pgr_bdAstar` - Bidirectional A* algorithm for obtaining paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:4
+msgid ""
+":ref:`pgr_bdAstarCost` - Bidirectional A* algorithm to calculate the cost of"
+" the paths."
+msgstr ""
+
+#: ../../build/doc/bdAstar-family.rst:5
+msgid ""
+":ref:`pgr_bdAstarCostMatrix` - Bidirectional A* algorithm to calculate a "
+"cost matrix of paths."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:52
+msgid ":ref:`bdDijkstra`"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:3
+msgid ""
+":ref:`pgr_bdDijkstra` - Bidirectional Dijkstra algorithm for the shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:4
+msgid ""
+":ref:`pgr_bdDijkstraCost` - Bidirectional Dijkstra to calculate the cost of "
+"the shortest paths"
+msgstr ""
+
+#: ../../build/doc/bdDijkstra-family.rst:5
+msgid ""
+":ref:`pgr_bdDijkstraCostMatrix` - Bidirectional Dijkstra algorithm  to "
+"create a matrix of costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:58
+msgid ":ref:`maxFlow`"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:3
+msgid ""
+":ref:`pgr_maxFlow` - Only the Max flow calculation using Push and Relabel "
+"algorithm."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:4
+msgid ""
+":ref:`pgr_BoykovKolmogorov` - Boykov and Kolmogorov with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:5
+msgid ""
+":ref:`pgr_EdmondsKarp` - Edmonds and Karp algorithm with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:6
+msgid ""
+":ref:`pgr_PushRelabel` - Push and relabel algorithm with details of flow on "
+"edges."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:7
+msgid "Applications"
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:9
+msgid ""
+":ref:`pgr_edgeDisjointPaths` - Calculates edge disjoint paths between two "
+"groups of vertices."
+msgstr ""
+
+#: ../../build/doc/flow-family.rst:10
+msgid ""
+":ref:`pgr_maxCardinalityMatch` - Calculates a maximum cardinality matching "
+"in a graph."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:64
+msgid ":ref:`withPoints`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:3
+msgid ":ref:`pgr_withPoints` - Route from/to points anywhere on the graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:4
+msgid ":ref:`pgr_withPointsCost` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:5
+msgid ":ref:`pgr_withPointsCostMatrix` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:6
+msgid ":ref:`pgr_withPointsKSP` - K shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:7
+msgid ":ref:`pgr_withPointsDD` - Driving distance."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:71
+msgid "categories"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:72
+msgid ":ref:`Cost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:3
+msgid ":ref:`pgr_aStarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:4
+msgid ":ref:`pgr_bdAstarCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:5
+msgid ":ref:`pgr_bdDijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:6
+msgid ":ref:`pgr_dijkstraCost`"
+msgstr ""
+
+#: ../../build/doc/cost-category.rst:7
+msgid ":ref:`pgr_withPointsCost`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:78
+msgid ":ref:`CostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:3
+msgid ":ref:`pgr_aStarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:4
+msgid ":ref:`pgr_bdAstarCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:5
+msgid ":ref:`pgr_bdDijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:6
+msgid ":ref:`pgr_dijkstraCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/costMatrix-category.rst:7
+msgid ":ref:`pgr_withPointsCostMatrix`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:84
+msgid ":ref:`KSP`"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:3
+msgid ":ref:`pgr_KSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/KSP-category.rst:4
+msgid ":ref:`pgr_withPointsKSP` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:106
+msgid "Experimental Functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:111
+msgid "Experimental functions"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:113
+msgid "They are not officially of the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:114
+msgid "They likely will not be officially be part of the next release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:116
+msgid "The functions might not make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:117
+msgid "Name might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:118
+msgid "Signature might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:119
+msgid "Functionality might change."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:120
+msgid "pgTap tests might be missing."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:121
+msgid "Might need c/c++ coding."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:122
+msgid "May lack documentation."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:123
+msgid "Documentation if any might need to be rewritten."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:124
+msgid "Documentation examples might need to be automatically generated."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:125
+msgid "Might need a lot of feedback from the comunity."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:126
+msgid "Might depend on a proposed function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:127
+msgid "Might depend on a deprecated function of pgRouting"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:132
+msgid ":ref:`contraction` - Reduce network size using contraction techniques"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:134
+msgid ""
+":ref:`pgr_contractgraph` - Reduce network size using contraction techniques"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:138
+msgid "Graph Analysis"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:139
+msgid ":ref:`pgr_labelGraph` - Analyze / label  subgraphs within a network"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:141
+msgid ":ref:`components` - Analyze components within a graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:143
+msgid ""
+":ref:`pgr_connectedComponents` - Return the connected components of an "
+"undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:144
+msgid ""
+":ref:`pgr_strongComponents` - Return the strongly connected components of a "
+"directed graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:145
+msgid ""
+":ref:`pgr_biconnectedComponents` - Return the biconnected components of an "
+"undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:146
+msgid ""
+":ref:`pgr_articulationPoints` - Return the articulation points of an "
+"undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:147
+msgid ":ref:`pgr_bridges` - Return the bridges of an undirected graph"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:150
+msgid "VRP"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:151
+msgid ":ref:`pgr_gsocvrppdtw`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:152
+msgid ":ref:`pgr_vrp_basic`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:166
+msgid "Graph Transformation"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:167
+msgid ":doc:`pgr_lineGraph`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:175
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:178
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:179
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:180
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/release_notes.po b/locale/ru/LC_MESSAGES/release_notes.po
new file mode 100644
index 0000000..f4a09f7
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/release_notes.po
@@ -0,0 +1,1278 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/release_notes.rst:13
+msgid "Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:15
+msgid ""
+"To see the full list of changes check the list of `Git commits "
+"<https://github.com/pgRouting/pgrouting/commits>`_ on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:18
+msgid "Table of contents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:21
+msgid ":ref:`changelog_2_5_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:22
+msgid ":ref:`changelog_2_4_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:23
+msgid ":ref:`changelog_2_4_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:24
+msgid ":ref:`changelog_2_4_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:25
+msgid ":ref:`changelog_2_3_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:26
+msgid ":ref:`changelog_2_3_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:27
+msgid ":ref:`changelog_2_3_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:28
+msgid ":ref:`changelog_2_2_4`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:29
+msgid ":ref:`changelog_2_2_3`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:30
+msgid ":ref:`changelog_2_2_2`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:31
+msgid ":ref:`changelog_2_2_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:32
+msgid ":ref:`changelog_2_2_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:33
+msgid ":ref:`changelog_2_1_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:34
+msgid ":ref:`changelog_2_0_1`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:35
+msgid ":ref:`changelog_2_0_0`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:36
+msgid ":ref:`changelog_1_x`"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:43
+msgid "pgRouting 2.5.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:45
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.5.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.5.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:49
+msgid "enhancement:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:50
+msgid "pgr_version is now on SQL language"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:53
+msgid "Breaking change on:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:54
+msgid "pgr_edgeDisjointPaths:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:56
+msgid "Added path_id, cost and agg_cost columns on the result"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:57
+msgid "Parameter names changed"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:58
+msgid "The many version results are the union of the one to one version"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:61
+msgid "New Signatures:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:62
+msgid "pgr_bdAstar(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:65 ../../build/doc/release_notes.rst:223
+msgid "New Proposed functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:66
+msgid "pgr_bdAstar(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:67
+msgid "pgr_bdAstar(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:68
+msgid "pgr_bdAstar(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:69
+msgid "pgr_bdAstarCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:70
+msgid "pgr_bdAstarCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:71
+msgid "pgr_bdAstarCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:72
+msgid "pgr_bdAstarCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:73
+msgid "pgr_bdAstarCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:74
+msgid "pgr_bdDijkstra(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:75
+msgid "pgr_bdDijkstra(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:76
+msgid "pgr_bdDijkstra(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:77
+msgid "pgr_bdDijkstraCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:78
+msgid "pgr_bdDijkstraCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:79
+msgid "pgr_bdDijkstraCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:80
+msgid "pgr_bdDijkstraCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:81
+msgid "pgr_bdDijkstraCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:82
+msgid "pgr_lineGraph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:83
+msgid "pgr_connectedComponents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:84
+msgid "pgr_strongComponents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:85
+msgid "pgr_biconnectedComponents"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:86
+msgid "pgr_articulationPoints"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:87
+msgid "pgr_bridges"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:90 ../../build/doc/release_notes.rst:160
+#: ../../build/doc/release_notes.rst:247
+msgid "Deprecated Signatures"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:91
+msgid "pgr_bdastar - use pgr_bdAstar instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:94
+msgid "Renamed Functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:95
+msgid "pgr_maxFlowPushRelabel - use pgr_pushRelabel instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:96
+msgid "pgr_maxFlowEdmondsKarp -use pgr_edmondsKarp instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:97
+msgid "pgr_maxFlowBoykovKolmogorov - use pgr_boykovKolmogorov instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:98
+msgid "pgr_maximumCardinalityMatching - use pgr_maxCardinalityMatch instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:101
+msgid "Deprecated function"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:102
+msgid "pgr_pointToEdgeNode"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:108
+msgid "pgRouting 2.4.2 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:110
+msgid ""
+"To see the issues closed by this release see the `Git closed milestone for "
+"2.4.2 "
+"<https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.4.2%22%20>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:113
+msgid "Improvement"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:114
+msgid "Works for postgreSQL 10"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:117 ../../build/doc/release_notes.rst:131
+#: ../../build/doc/release_notes.rst:168 ../../build/doc/release_notes.rst:522
+#: ../../build/doc/release_notes.rst:529 ../../build/doc/release_notes.rst:550
+#: ../../build/doc/release_notes.rst:557
+msgid "Bug fixes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:118
+msgid "Fixed: Unexpected error column \"cname\""
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:119
+msgid ""
+"Replace __linux__ with __GLIBC__ for glibc-specific headers and functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:126
+msgid "pgRouting 2.4.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:128
+msgid ""
+"To see the issues closed by this release see the `Git closed milestone for "
+"2.4.1 "
+"<https://github.com/pgRouting/pgrouting/issues?utf8=%E2%9C%93&q=milestone%3A%22Release%202.4.1%22%20>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:132
+msgid "Fixed compiling error on macOS"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:133
+msgid "Condition error on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:138
+msgid "pgRouting 2.4.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:140
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.4.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.4.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:143 ../../build/doc/release_notes.rst:213
+#: ../../build/doc/release_notes.rst:374
+msgid "New Signatures"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:144
+msgid "pgr_bdDijkstra"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:148
+msgid "New Proposed Signatures"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:149
+msgid "pgr_maxFlow"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:150
+msgid "pgr_astar(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:151
+msgid "pgr_astar(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:152
+msgid "pgr_astar(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:153
+msgid "pgr_astarCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:154
+msgid "pgr_astarCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:155
+msgid "pgr_astarCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:156
+msgid "pgr_astarCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:157
+msgid "pgr_astarCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:161
+msgid "pgr_bddijkstra - use pgr_bdDijkstra instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:164 ../../build/doc/release_notes.rst:253
+msgid "Deprecated Functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:165
+msgid "pgr_pointsToVids"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:169
+msgid "Bug fixes on proposed functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:171
+msgid "pgr_withPointsKSP: fixed ordering"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:173
+msgid "TRSP original code is used with no changes on the compilation warnings"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:178
+msgid "pgRouting 2.3.2 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:180
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.3.2 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.3.2%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:183 ../../build/doc/release_notes.rst:199
+#: ../../build/doc/release_notes.rst:269 ../../build/doc/release_notes.rst:282
+#: ../../build/doc/release_notes.rst:293 ../../build/doc/release_notes.rst:305
+#: ../../build/doc/release_notes.rst:424 ../../build/doc/release_notes.rst:455
+msgid "Bug Fixes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:184
+msgid "Fixed pgr_gsoc_vrppdtw crash when all orders fit on one truck."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:185
+msgid "Fixed pgr_trsp:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:187
+msgid "Alternate code is not executed when the point is in reality a vertex"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:188
+msgid "Fixed ambiguity on seq"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:194
+msgid "pgRouting 2.3.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:196
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.3.1 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.3.1%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:200
+msgid "Leaks on proposed max_flow functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:201
+msgid "Regression error on pgr_trsp"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:202
+msgid "Types discrepancy on pgr_createVerticesTable"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:208
+msgid "pgRouting 2.3.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:210
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.3.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.3.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:214
+msgid "pgr_TSP"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:215
+msgid "pgr_aStar"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:218 ../../build/doc/release_notes.rst:330
+msgid "New Functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:219
+msgid "pgr_eucledianTSP"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:224
+msgid "pgr_dijkstraCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:225
+msgid "pgr_withPointsCostMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:226
+msgid "pgr_maxFlowPushRelabel(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:227
+msgid "pgr_maxFlowPushRelabel(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:228
+msgid "pgr_maxFlowPushRelabel(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:229
+msgid "pgr_maxFlowPushRelabel(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:230
+msgid "pgr_maxFlowEdmondsKarp(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:231
+msgid "pgr_maxFlowEdmondsKarp(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:232
+msgid "pgr_maxFlowEdmondsKarp(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:233
+msgid "pgr_maxFlowEdmondsKarp(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:234
+msgid "pgr_maxFlowBoykovKolmogorov (one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:235
+msgid "pgr_maxFlowBoykovKolmogorov (one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:236
+msgid "pgr_maxFlowBoykovKolmogorov (many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:237
+msgid "pgr_maxFlowBoykovKolmogorov (many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:238
+msgid "pgr_maximumCardinalityMatching"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:239
+msgid "pgr_edgeDisjointPaths(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:240
+msgid "pgr_edgeDisjointPaths(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:241
+msgid "pgr_edgeDisjointPaths(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:242
+msgid "pgr_edgeDisjointPaths(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:243
+msgid "pgr_contractGraph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:248
+msgid "pgr_tsp - use pgr_TSP or pgr_eucledianTSP instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:249
+msgid "pgr_astar - use pgr_aStar instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:254
+msgid "pgr_flip_edges"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:255
+msgid "pgr_vidsToDmatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:256
+msgid "pgr_pointsToDMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:257
+msgid "pgr_textToPoints"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:264
+msgid "pgRouting 2.2.4 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:266
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.4 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.4%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:270
+msgid "Bogus uses of extern \"C\""
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:271
+msgid "Build error on Fedora 24 + GCC 6.0"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:272
+msgid "Regression error pgr_nodeNetwork"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:277
+msgid "pgRouting 2.2.3 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:279
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.3 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.3%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:283
+msgid "Fixed compatibility issues with PostgreSQL 9.6."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:288
+msgid "pgRouting 2.2.2 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:290
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.2 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.2%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:294
+msgid "Fixed regression error on pgr_drivingDistance"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:300
+msgid "pgRouting 2.2.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:302
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.1 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A2.2.1+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:306
+msgid "Server crash fix on pgr_alphaShape"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:307
+msgid "Bug fix on With Points family of functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:313
+msgid "pgRouting 2.2.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:315
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.2.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.2.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:319 ../../build/doc/release_notes.rst:387
+msgid "Improvements"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:320
+msgid "pgr_nodeNetwork"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:322
+msgid "Adding a row_where and outall optional parameters"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:324
+msgid "Signature fix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:326
+msgid "pgr_dijkstra  -- to match what is documented"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:331
+msgid "pgr_floydWarshall"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:332
+msgid "pgr_Johnson"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:333
+msgid "pgr_dijkstraCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:334
+msgid "pgr_dijkstraCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:335
+msgid "pgr_dijkstraCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:336
+msgid "pgr_dijkstraCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:339 ../../build/doc/release_notes.rst:391
+msgid "Proposed functionality"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:340
+msgid "pgr_withPoints(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:341
+msgid "pgr_withPoints(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:342
+msgid "pgr_withPoints(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:343
+msgid "pgr_withPoints(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:344
+msgid "pgr_withPointsCost(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:345
+msgid "pgr_withPointsCost(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:346
+msgid "pgr_withPointsCost(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:347
+msgid "pgr_withPointsCost(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:348
+msgid "pgr_withPointsDD(single vertex)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:349
+msgid "pgr_withPointsDD(multiple vertices)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:350
+msgid "pgr_withPointsKSP"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:351
+msgid "pgr_dijkstraVia"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:355
+msgid "Deprecated functions:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:356
+msgid "pgr_apspWarshall  use pgr_floydWarshall instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:357
+msgid "pgr_apspJohnson   use pgr_Johnson instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:358
+msgid "pgr_kDijkstraCost use pgr_dijkstraCost instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:359
+msgid "pgr_kDijkstraPath use pgr_dijkstra instead"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:362
+msgid "Renamed and deprecated function"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:363
+msgid "pgr_makeDistanceMatrix renamed to _pgr_makeDistanceMatrix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:369
+msgid "pgRouting 2.1.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:371
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.1.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=is%3Aissue+milestone%3A%22Release+2.1.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:375
+msgid "pgr_dijkstra(one to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:376
+msgid "pgr_dijkstra(many to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:377
+msgid "pgr_dijkstra(many to many)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:378
+msgid "pgr_drivingDistance(multiple vertices)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:381
+msgid "Refactored"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:382
+msgid "pgr_dijkstra(one to one)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:383
+msgid "pgr_ksp"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:384
+msgid "pgr_drivingDistance(single vertex)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:388
+msgid ""
+"pgr_alphaShape function now can generate better (multi)polygon with holes "
+"and alpha parameter."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:392
+msgid ""
+"Proposed functions from Steve Woodbridge, (Classified as Convenience by the "
+"author.)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:394
+msgid ""
+"pgr_pointToEdgeNode - convert a point geometry to a vertex_id based on "
+"closest edge."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:395
+msgid ""
+"pgr_flipEdges - flip the edges in an array of geometries so the connect end "
+"to end."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:396
+msgid ""
+"pgr_textToPoints - convert a string of x,y;x,y;... locations into point "
+"geometries."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:397
+msgid ""
+"pgr_pointsToVids - convert an array of point geometries into vertex ids."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:398
+msgid ""
+"pgr_pointsToDMatrix - Create a distance matrix from an array of points."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:399 ../../build/doc/release_notes.rst:400
+msgid ""
+"pgr_vidsToDMatrix - Create a distance matrix from an array of vertix_id."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:402
+msgid "Added proposed functions from GSoc Projects:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:404
+msgid "pgr_vrppdtw"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:405
+msgid "pgr_vrponedepot"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:408
+msgid "Deprecated functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:409
+msgid "pgr_getColumnName"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:410
+msgid "pgr_getTableName"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:411
+msgid "pgr_isColumnCndexed"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:412
+msgid "pgr_isColumnInTable"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:413
+msgid "pgr_quote_ident"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:414
+msgid "pgr_versionless"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:415
+msgid "pgr_startPoint"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:416
+msgid "pgr_endPoint"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:417
+msgid "pgr_pointToId"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:420
+msgid "No longer supported"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:421
+msgid "Removed the 1.x legacy functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:425
+msgid "Some bug fixes in other functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:429
+msgid "Refactoring Internal Code"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:430
+msgid "A C and C++ library for developer was created"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:432
+msgid "encapsulates postgreSQL related functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:433
+msgid "encapsulates Boost.Graph graphs"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:435
+msgid "Directed Boost.Graph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:436
+msgid "Undirected Boost.graph."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:438
+msgid "allow any-integer in the id's"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:439
+msgid "allow any-numerical on the cost/reverse_cost columns"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:441
+msgid ""
+"Instead of generating many libraries: - All functions are encapsulated in "
+"one library - The library has the prefix 2-1-0"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:450
+msgid "pgRouting 2.0.1 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:452
+msgid "Minor bug fixes."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:456
+msgid "No track of the bug fixes were kept."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:462
+msgid "pgRouting 2.0.0 Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:464
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for "
+"2.0.0 "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+2.0.0%22+is%3Aclosed>`_"
+" on Github."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:466
+msgid ""
+"With the release of pgRouting 2.0.0 the library has abandoned backwards "
+"compatibility to :ref:`pgRouting 1.x <changelog_1_x>` releases. The main "
+"Goals for this release are:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:469
+msgid "Major restructuring of pgRouting."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:470
+msgid "Standardization of the function naming"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:471
+msgid "Preparation of the project for future development."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:473
+msgid "As a result of this effort:"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:475
+msgid "pgRouting has a simplified structure"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:476
+msgid "Significant new functionality has being added"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:477
+msgid "Documentation has being integrated"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:478
+msgid "Testing has being integrated"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:479
+msgid "And made it easier for multiple developers to make contributions."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:483
+msgid "Important Changes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:484
+msgid ""
+"Graph Analytics - tools for detecting and fixing connection some problems in"
+" a graph"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:485
+msgid "A collection of useful utility functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:486
+msgid ""
+"Two new All Pairs Short Path algorithms (pgr_apspJohnson, pgr_apspWarshall)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:487
+msgid ""
+"Bi-directional Dijkstra and A-star search algorithms (pgr_bdAstar, "
+"pgr_bdDijkstra)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:488
+msgid "One to many nodes search (pgr_kDijkstra)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:489
+msgid "K alternate paths shortest path (pgr_ksp)"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:490
+msgid ""
+"New TSP solver that simplifies the code and the build process (pgr_tsp), "
+"dropped \"Gaul Library\" dependency"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:491
+msgid "Turn Restricted shortest path (pgr_trsp) that replaces Shooting Star"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:492
+msgid "Dropped support for Shooting Star"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:493
+msgid ""
+"Built a test infrastructure that is run before major code changes are "
+"checked in"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:494
+msgid ""
+"Tested and fixed most all of the outstanding bugs reported against 1.x that "
+"existing in the 2.0-dev code base."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:495
+msgid "Improved build process for Windows"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:496
+msgid ""
+"Automated testing on Linux and Windows platforms trigger by every commit"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:497
+msgid "Modular library design"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:498
+msgid "Compatibility with PostgreSQL 9.1 or newer"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:499
+msgid "Compatibility with PostGIS 2.0 or newer"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:500
+msgid "Installs as PostgreSQL EXTENSION"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:501
+msgid "Return types re factored and unified"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:502
+msgid "Support for table SCHEMA in function parameters"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:503
+msgid "Support for ``st_`` PostGIS function prefix"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:504
+msgid "Added ``pgr_`` prefix to functions and types"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:505
+msgid "Better documentation: http://docs.pgrouting.org"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:506
+msgid "shooting_star is discontinued"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:513
+msgid "pgRouting 1.x Release Notes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:515
+msgid ""
+"To see the issues closed by this release see the `Git closed issues for 1.x "
+"<https://github.com/pgRouting/pgrouting/issues?q=milestone%3A%22Release+1.x%22+is%3Aclosed>`_"
+" on Github. The following release notes have been copied from the previous "
+"``RELEASE_NOTES`` file and are kept as a reference."
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:520
+msgid "Changes for release 1.05"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:526
+msgid "Changes for release 1.03"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:528
+msgid "Much faster topology creation"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:533
+msgid "Changes for release 1.02"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:535 ../../build/doc/release_notes.rst:542
+msgid "Shooting* bug fixes"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:536
+msgid "Compilation problems solved"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:540
+msgid "Changes for release 1.01"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:546
+msgid "Changes for release 1.0"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:548
+msgid "Core and extra functions are separated"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:549
+msgid "Cmake build process"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:554
+msgid "Changes for release 1.0.0b"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:556
+msgid "Additional SQL file with more simple names for wrapper functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:561
+msgid "Changes for release 1.0.0a"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:563
+msgid "Shooting* shortest path algorithm for real road networks"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:564
+msgid "Several SQL bugs were fixed"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:568
+msgid "Changes for release 0.9.9"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:570
+msgid "PostgreSQL 8.2 support"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:571
+msgid ""
+"Shortest path functions return empty result if they could not find any path"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:575
+msgid "Changes for release 0.9.8"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:577
+msgid "Renumbering scheme was added to shortest path functions"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:578
+msgid "Directed shortest path functions were added"
+msgstr ""
+
+#: ../../build/doc/release_notes.rst:579
+msgid "routing_postgis.sql was modified to use dijkstra in TSP search"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/routingFunctions.po b/locale/ru/LC_MESSAGES/routingFunctions.po
new file mode 100644
index 0000000..3242809
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/routingFunctions.po
@@ -0,0 +1,134 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/routingFunctions.rst:15
+msgid "Routing Functions"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:21
+msgid ":ref:`all_pairs`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:23
+msgid ":ref:`pgr_floydWarshall` - Floyd-Warshall's Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:24
+msgid ":ref:`pgr_johnson`- Johnson’s Algorithm"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:26
+msgid ":ref:`pgr_astar` - Shortest Path A*"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:28
+msgid ":ref:`pgr_bdAstar` - Bi-directional A* Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:30
+msgid ":ref:`pgr_bdDijkstra` - Bi-directional Dijkstra Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:33
+msgid ":ref:`dijkstra`"
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:3
+msgid ":ref:`pgr_dijkstra` - Dijkstra's algorithm for the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:4
+msgid ""
+":ref:`pgr_dijkstraCost` - Get the aggregate cost of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:5
+msgid ""
+":ref:`pgr_dijkstraCostMatrix` - Use pgr_dijkstra to create a costs matrix."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:6
+msgid ""
+":ref:`pgr_drivingDistance` - Use pgr_dijkstra to calculate catchament "
+"information."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:7
+msgid ""
+":ref:`pgr_ksp` - Use Yen algorithm with pgr_dijkstra to get the K shortest "
+"paths."
+msgstr ""
+
+#: ../../build/doc/dijkstra-family.rst:8
+msgid ":ref:`pgr_dijkstraVia` - Get a route of a seuence of vertices."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:39
+msgid ":ref:`pgr_ksp` - K-Shortest Path"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:41
+msgid ":ref:`pgr_trsp<trsp>` - Turn Restriction Shortest Path (TRSP)"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:43
+msgid ":ref:`tsp`"
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:3
+msgid ":ref:`pgr_TSP` - When input is given as matrix cell information."
+msgstr ""
+
+#: ../../build/doc/TSP-family.rst:4
+msgid ":ref:`pgr_eucledianTSP` - When input are coordinates."
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:49
+msgid ":ref:`drivingDistance`"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:3
+msgid ":ref:`pgr_drivingDistance` - Driving Distance based on pgr_dijkstra"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:4
+msgid ":ref:`pgr_withPointsDD` - Driving Distance based on pgr_withPoints"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:5
+msgid "Post pocessing"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:7
+msgid ":ref:`pgr_alphaShape` - Alpha shape computation"
+msgstr ""
+
+#: ../../build/doc/drivingDistance-category.rst:8
+msgid ":ref:`pgr_points_as_polygon` - Polygon around a set of points"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:70
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:73
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:74
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/routingFunctions.rst:75
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/sampledata.po b/locale/ru/LC_MESSAGES/sampledata.po
new file mode 100644
index 0000000..2ded9cd
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/sampledata.po
@@ -0,0 +1,152 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/sampledata.rst:11
+msgid "Sample Data"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:13
+msgid ""
+"The documentation provides very simple example queries based on a small "
+"sample network. To be able to execute the sample queries, run the following "
+"SQL commands to create a table with a small network data set."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:18
+msgid "Create table"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:25
+msgid "Insert data"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:32
+msgid "Topology"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:33
+msgid ""
+"Before you test a routing function use this query to create a topology "
+"(fills the ``source`` and ``target`` columns)."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:40
+msgid "Points of interest"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:41
+msgid "When points outside of the graph."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:42
+msgid "Used with the :ref:`withPoints` functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:49
+msgid "Restrictions"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:50
+msgid "Used with the :ref:`trsp` functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:57
+msgid "Categories"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:58
+msgid "Used with the :ref:`maxFlow` functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:65
+msgid "Vertex table"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:66
+msgid "Used in some deprecated signatures or deprecated functions."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:74
+msgid "Images"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:76
+msgid "Red arrows correspond when ``cost`` > 0 in the edge table."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:77
+msgid "Blue arrows correspond when ``reverse_cost`` > 0 in the edge table."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:78
+msgid "Points are outside the graph."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:79
+msgid "Click on the graph to enlarge."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:84
+msgid ""
+"Network for queries marked as ``directed`` and ``cost`` and ``reverse_cost``"
+" columns are used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:86
+msgid ""
+"When working with city networks, this is recommended for point of view of "
+"vehicles."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:91
+msgid "**Graph 1: Directed, with cost and reverse cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:96
+msgid ""
+"Network for queries marked as ``undirected`` and ``cost`` and "
+"``reverse_cost`` columns are used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:98
+msgid ""
+"When working with city networks, this is recommended for point of view of "
+"pedestrians."
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:104
+msgid "**Graph 2: Undirected, with cost and reverse cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:109
+msgid ""
+"Network for queries marked as ``directed`` and only ``cost`` column is used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:116
+msgid "**Graph 3: Directed, with cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:121
+msgid ""
+"Network for queries marked as ``undirected`` and only ``cost`` column is "
+"used"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:127
+msgid "**Graph 4: Undirected, with cost**"
+msgstr ""
+
+#: ../../build/doc/sampledata.rst:134
+msgid "Pick & Deliver Data"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/support.po b/locale/ru/LC_MESSAGES/support.po
new file mode 100644
index 0000000..4082646
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/support.po
@@ -0,0 +1,177 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/support.rst:13
+msgid "Support"
+msgstr ""
+
+#: ../../build/doc/support.rst:15
+msgid ""
+"pgRouting community support is available through the `pgRouting website "
+"<http://pgrouting.org/support.html>`_, `documentation "
+"<http://docs.pgrouting.org>`_, tutorials, mailing lists and others. If "
+"you’re looking for :ref:`commercial support <support_commercial>`, find "
+"below a list of companies providing pgRouting development and consulting "
+"services."
+msgstr ""
+
+#: ../../build/doc/support.rst:19
+msgid "Reporting Problems"
+msgstr ""
+
+#: ../../build/doc/support.rst:21
+msgid ""
+"Bugs are reported and managed in an `issue tracker "
+"<https://github.com/pgrouting/pgrouting/issues>`_. Please follow these "
+"steps:"
+msgstr ""
+
+#: ../../build/doc/support.rst:23
+msgid ""
+"Search the tickets to see if your problem has already been reported. If so, "
+"add any extra context you might have found, or at least indicate that you "
+"too are having the problem. This will help us prioritize common issues."
+msgstr ""
+
+#: ../../build/doc/support.rst:24
+msgid ""
+"If your problem is unreported, create a `new issue "
+"<https://github.com/pgRouting/pgrouting/issues/new>`_ for it."
+msgstr ""
+
+#: ../../build/doc/support.rst:25
+msgid ""
+"In your report include explicit instructions to replicate your issue. The "
+"best tickets include the exact SQL necessary to replicate a problem."
+msgstr ""
+
+#: ../../build/doc/support.rst:26
+msgid ""
+"If you can test older versions of PostGIS for your problem, please do. On "
+"your ticket, note the earliest version the problem appears."
+msgstr ""
+
+#: ../../build/doc/support.rst:27
+msgid ""
+"For the versions where you can replicate the problem, note the operating "
+"system and version of pgRouting, PostGIS and PostgreSQL."
+msgstr ""
+
+#: ../../build/doc/support.rst:28
+msgid ""
+"It is recommended to use the following wrapper on the problem to pin point "
+"the step that is causing the problem."
+msgstr ""
+
+#: ../../build/doc/support.rst:39
+msgid "Mailing List and GIS StackExchange"
+msgstr ""
+
+#: ../../build/doc/support.rst:41
+msgid ""
+"There are two mailing lists for pgRouting hosted on OSGeo mailing list "
+"server:"
+msgstr ""
+
+#: ../../build/doc/support.rst:43
+msgid ""
+"User mailing list: http://lists.osgeo.org/mailman/listinfo/pgrouting-users"
+msgstr ""
+
+#: ../../build/doc/support.rst:44
+msgid ""
+"Developer mailing list: http://lists.osgeo.org/mailman/listinfo/pgrouting-"
+"dev"
+msgstr ""
+
+#: ../../build/doc/support.rst:46
+msgid ""
+"For general questions and topics about how to use pgRouting, please write to"
+" the user mailing list."
+msgstr ""
+
+#: ../../build/doc/support.rst:48
+msgid ""
+"You can also ask at `GIS StackExchange <http://gis.stackexchange.com/>`_ and"
+" tag the question with ``pgrouting``. Find all questions tagged with "
+"``pgrouting`` under http://gis.stackexchange.com/questions/tagged/pgrouting "
+"or subscribe to the `pgRouting questions feed "
+"<http://gis.stackexchange.com/feeds/tag?tagnames=pgrouting&sort=newest>`_."
+msgstr ""
+
+#: ../../build/doc/support.rst:54
+msgid "Commercial Support"
+msgstr ""
+
+#: ../../build/doc/support.rst:56
+msgid ""
+"For users who require professional support, development and consulting "
+"services, consider contacting any of the following organizations, which have"
+" significantly contributed to the development of pgRouting:"
+msgstr ""
+
+#: ../../build/doc/support.rst:61
+msgid "**Company**"
+msgstr ""
+
+#: ../../build/doc/support.rst:62
+msgid "**Offices in**"
+msgstr ""
+
+#: ../../build/doc/support.rst:63
+msgid "**Website**"
+msgstr ""
+
+#: ../../build/doc/support.rst:64
+msgid "Georepublic"
+msgstr ""
+
+#: ../../build/doc/support.rst:65
+msgid "Germany, Japan"
+msgstr ""
+
+#: ../../build/doc/support.rst:66
+msgid "https://georepublic.info"
+msgstr ""
+
+#: ../../build/doc/support.rst:67
+msgid "iMaptools"
+msgstr ""
+
+#: ../../build/doc/support.rst:68 ../../build/doc/support.rst:71
+msgid "United States"
+msgstr ""
+
+#: ../../build/doc/support.rst:69
+msgid "http://imaptools.com"
+msgstr ""
+
+#: ../../build/doc/support.rst:70
+msgid "Paragon Corporation"
+msgstr ""
+
+#: ../../build/doc/support.rst:72
+msgid "http://www.paragoncorporation.com"
+msgstr ""
+
+#: ../../build/doc/support.rst:73
+msgid "Camptocamp"
+msgstr ""
+
+#: ../../build/doc/support.rst:74
+msgid "Switzerland, France"
+msgstr ""
+
+#: ../../build/doc/support.rst:75
+msgid "http://www.camptocamp.com"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/topology-functions.po b/locale/ru/LC_MESSAGES/topology-functions.po
new file mode 100644
index 0000000..ac6a1b3
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/topology-functions.po
@@ -0,0 +1,66 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/topology-functions.rst:13
+msgid "Topology - Family of Functions"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:15
+msgid ""
+"The pgRouting's topology of a network, represented with an edge table with "
+"source and target attributes and a vertices table associated with it. "
+"Depending on the algorithm, you can create a topology or just reconstruct "
+"the vertices table, You can analyze the topology, We also provide a function"
+" to node an unoded network."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:19
+msgid ""
+":ref:`pgr_create_topology` -  to create a topology based on the geometry."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:20
+msgid ""
+":ref:`pgr_create_vert_table` - to reconstruct the vertices table based on "
+"the source and target information."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:21
+msgid ""
+":ref:`pgr_analyze_graph`  - to analyze the edges and vertices of the edge "
+"table."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:22
+msgid ":ref:`pgr_analyze_oneway` - to analyze directionality of the edges."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:23
+msgid ":ref:`pgr_node_network`  -to create nodes to a not noded edge table."
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:35
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:38
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:39
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/topology-functions.rst:40
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/types_index.po b/locale/ru/LC_MESSAGES/types_index.po
new file mode 100644
index 0000000..3f3faa7
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/types_index.po
@@ -0,0 +1,56 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/types_index.rst:13
+msgid "pgRouting Data Types"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:15
+msgid ""
+"The following are commonly used data types for some of the pgRouting "
+"functions."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:17
+msgid ""
+":ref:`type_cost_result` -  A set of records to describe a path result with "
+"cost attribute."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:18
+msgid ""
+":ref:`pgr_costResult3[] <type_cost_result3>` - A set of records to describe "
+"a path result with cost attribute."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:19
+msgid ""
+":ref:`pgr_geomResult <type_geom_result>` - A set of records to describe a "
+"path result with geometry attribute."
+msgstr ""
+
+#: ../../build/doc/types_index.rst:30
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:33
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:34
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/types_index.rst:35
+msgid ":ref:`search`"
+msgstr ""
diff --git a/locale/ru/LC_MESSAGES/withPoints-family.po b/locale/ru/LC_MESSAGES/withPoints-family.po
new file mode 100644
index 0000000..3d4f303
--- /dev/null
+++ b/locale/ru/LC_MESSAGES/withPoints-family.po
@@ -0,0 +1,395 @@
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: pgRouting v2.5.0-alpha\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2017-08-26 16:13-0500\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../build/doc/withPoints-family.rst:14
+msgid "withPoints - Family of functions"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:16
+msgid "When points are also given as input:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:20
+msgid ":ref:`pgr_withPoints` - Route from/to points anywhere on the graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:21
+msgid ":ref:`pgr_withPointsCost` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:22
+msgid ":ref:`pgr_withPointsCostMatrix` - Costs of the shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:23
+msgid ":ref:`pgr_withPointsKSP` - K shortest paths."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:24
+msgid ":ref:`pgr_withPointsDD` - Driving distance."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:3
+msgid "Proposed functions for next mayor release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:5
+msgid "They are not officially in the current release."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:6
+msgid "They will likely officially be part of the next mayor release:"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:8
+msgid "The functions make use of ANY-INTEGER and ANY-NUMERICAL"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:9
+msgid "Name might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:10
+msgid "Signature might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:11
+msgid "Functionality might not change. (But still can)"
+msgstr ""
+
+#: ../../build/doc/proposed.rst:12
+msgid "pgTap tests have being done. But might need more."
+msgstr ""
+
+#: ../../build/doc/proposed.rst:13
+msgid "Documentation might need refinement."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:47
+msgid "Images"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:49
+msgid ""
+"The squared vertices are the temporary vertices, The temporary vertices are "
+"added acordng to the dirving side, The following images visualy show the "
+"diferences on how depending on the driving side the data is interpreted."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:53
+msgid "Right driving side"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:58
+msgid "Left driving side"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:63
+msgid "doesn't matter the driving side"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:68
+msgid "Introduction"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:70
+msgid ""
+"This famly of functions was thought for routing vehicles, but might as well "
+"work for some other application that we can not think of."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:73
+msgid ""
+"The with points family of function give you the ability to route between "
+"arbitrary points located outside the original graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:76
+msgid ""
+"When given a point identified with a `pid` that its being mapped to and edge"
+" with an identifier `edge_id`, with a `fraction` along that edge (from the "
+"source to the target of the edge) and some additional information about "
+"which `side` of the edge the point is on, then routing from arbitrary points"
+" more accurately reflect routing vehicles in road networks,"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:87
+msgid ""
+"I talk about a family of functions because it includes different "
+"functionalities."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:84
+msgid "pgr_withPoints is pgr_dijkstra based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:85
+msgid "pgr_withPointsCost is pgr_dijkstraCost based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:86
+msgid "pgr_withPointsKSP is pgr_ksp based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:87
+msgid "pgr_withPointsDD is pgr_drivingDistance based"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:89
+msgid ""
+"In all this functions we have to take care of as many aspects as possible:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:91
+msgid "Must work for routing:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:93
+msgid "Cars (directed graph)"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:94
+msgid "Pedestrians (undirected graph)"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:96
+msgid "Arriving at the point:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:98
+msgid "In either side of the street."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:99
+msgid ""
+"Compulsory arrival on the side of the street where the point is located."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:101
+msgid "Countries with:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:103
+msgid "Right side driving"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:104
+msgid "Left side driving"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:106
+msgid "Some points are:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:108
+msgid ""
+"Permanent, for example the set of points of clients stored in a table in the"
+" data base"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:109
+msgid "Temporal, for example points given through a web application"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:111
+msgid "The numbering of the points are handled with negative sign."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:113
+msgid "Original point identifiers are to be positive."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:114
+msgid "Transformation to negative is done internally."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:115
+msgid "For results for involving vertices identifiers"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:117
+msgid "positive sign is a vertex of the original grpah"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:118
+msgid "negative sign is a point of the temporary points"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:120
+msgid ""
+"The reason for doing this is to avoid confusion when there is a vertex with "
+"the same number as identifier as the points identifier."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:123
+msgid "Graph & edges"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:125
+msgid ""
+"Let :math:`G_d(V,E)` where :math:`V` is the set of vertices and :math:`E` is"
+" the set of edges be the original directed graph."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:127
+msgid ""
+"An edge of the original `edges_sql` is :math:`(id, source, target, cost, "
+"reverse\\_cost)` will generate internally"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:129
+msgid ":math:`(id, source, target, cost)`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:130
+msgid ":math:`(id, target, source, reverse\\_cost)`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:133
+msgid "Point Definition"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:135
+msgid ""
+"A point is defined by the quadruplet: :math:`(pid, eid, fraction, side)`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:137
+msgid "**pid** is the point identifier"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:138
+msgid "**eid** is an edge id of the `edges_sql`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:139
+msgid "**fraction** represents where the edge `eid` will be cut."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:140
+msgid "**side** Indicates the side of the edge where the point is located."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:144
+msgid "Creating Temporary Vertices in the Graph"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:146
+msgid "For edge (15,  9,12  10, 20), & lets insert point (2, 12, 0.3, r)"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:149
+msgid "On a right hand side driving network"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:150
+msgid "From first image above:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:152
+msgid "We can arrive to the point only via vertex 9."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:153
+msgid "It only afects the edge (15, 9,12, 10) so that edge is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:154
+msgid "Edge (15, 12,9, 20) is kept."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:155
+#: ../../build/doc/withPoints-family.rst:167
+#: ../../build/doc/withPoints-family.rst:182
+msgid "Create new edges:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:157
+#: ../../build/doc/withPoints-family.rst:186
+msgid "(15, 9,-1, 3) edge from vertex 9 to point 1 has cost 3"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:158
+#: ../../build/doc/withPoints-family.rst:187
+msgid "(15, -1,12, 7) edge from point 1 to vertex 12 has cost 7"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:161
+msgid "On a left hand side driving network"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:162
+msgid "From second image above:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:164
+msgid "We can arrive to the point only via vertex 12."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:165
+msgid "It only afects the edge (15, 12,9 20) so that edge is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:166
+msgid "Edge (15, 9,12, 10) is kept."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:169
+#: ../../build/doc/withPoints-family.rst:184
+msgid "(15, 12,-1, 14) edge from vertex 12 to point 1 has cost 14"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:170
+#: ../../build/doc/withPoints-family.rst:185
+msgid "(15, -1,9, 6) edge from point 1 to vertex 9 has cost 6"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:172
+msgid "that fraction is from vertex 9 to vertex 12"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:176
+msgid "When driving side does not matter"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:177
+msgid "From third image above:"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:179
+msgid "We can arrive to the point either via vertex 12 or via vertex 9"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:180
+msgid "Edge (15, 12,9 20) is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:181
+msgid "Edge (15, 9,12, 10) is removed."
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:190
+msgid "See Also"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:193
+msgid "Indices and tables"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:194
+msgid ":ref:`genindex`"
+msgstr ""
+
+#: ../../build/doc/withPoints-family.rst:195
+msgid ":ref:`search`"
+msgstr ""
diff --git a/src/allpairs/test/pgtap/compare-directed.test.sql b/pgtap/allpairs/compare-directed.test.sql
similarity index 100%
rename from src/allpairs/test/pgtap/compare-directed.test.sql
rename to pgtap/allpairs/compare-directed.test.sql
diff --git a/src/allpairs/test/pgtap/compare-undirected.test.sql b/pgtap/allpairs/compare-undirected.test.sql
similarity index 100%
rename from src/allpairs/test/pgtap/compare-undirected.test.sql
rename to pgtap/allpairs/compare-undirected.test.sql
diff --git a/pgtap/allpairs/floydWarshall-innerQuery.sql b/pgtap/allpairs/floydWarshall-innerQuery.sql
new file mode 100644
index 0000000..d008b3e
--- /dev/null
+++ b/pgtap/allpairs/floydWarshall-innerQuery.sql
@@ -0,0 +1,18 @@
+\i setup.sql
+
+SELECT plan(82);
+
+
+SELECT has_function('pgr_floydwarshall',
+    ARRAY['text', 'boolean']);
+
+SELECT function_returns('pgr_floydwarshall',
+    ARRAY['text', 'boolean'],
+    'setof record');
+
+SELECT style_dijkstra_no_id('pgr_floydwarshall', ', true)');
+SELECT style_dijkstra('pgr_floydwarshall', ', true)');
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/allpairs/fw-types-check.sql b/pgtap/allpairs/fw-types-check.sql
new file mode 100644
index 0000000..aeb679d
--- /dev/null
+++ b/pgtap/allpairs/fw-types-check.sql
@@ -0,0 +1,52 @@
+
+\i setup.sql
+
+
+SELECT plan(4);
+
+PREPARE q1 AS
+SELECT * FROM pgr_floydWarshall(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
+
+PREPARE q2 AS
+SELECT * FROM pgr_floydWarshall(
+    'SELECT source, target, cost, reverse_cost FROM edge_table'
+);
+
+
+PREPARE q3 AS
+SELECT * FROM pgr_floydWarshall(
+    'SELECT source, target, cost FROM edge_table',
+    true
+);
+
+
+SELECT lives_ok('q1', 'SHOULD WORK: without flag & with id');
+SELECT lives_ok('q2', 'SHOULD WORK: without flag');
+SELECT lives_ok('q3', 'SHOULD WORK: with flag');
+
+
+-- CHECKING THE RETURN TYPES
+PREPARE v21q00 AS
+SELECT pg_typeof(start_vid)::text AS t1,
+    pg_typeof(end_vid)::text AS t2,
+    pg_typeof(agg_cost)::TEXT AS t3
+FROM (
+    SELECT * FROM pgr_floydWarshall(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+    ))  AS a
+LIMIT 1
+;
+
+PREPARE v21q01 AS
+SELECT  'bigint'::text AS t1,
+        'bigint'::text AS t2,
+        'double precision'::text AS t3;
+
+SELECT set_eq('v21q00', 'v21q01','Expected columns names & types');
+
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/allpairs/j-types-check.sql b/pgtap/allpairs/j-types-check.sql
new file mode 100644
index 0000000..afbb799
--- /dev/null
+++ b/pgtap/allpairs/j-types-check.sql
@@ -0,0 +1,52 @@
+
+\i setup.sql
+
+
+SELECT plan(4);
+
+PREPARE q1 AS
+SELECT * FROM pgr_johnson(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
+
+PREPARE q2 AS
+SELECT * FROM pgr_johnson(
+    'SELECT source, target, cost, reverse_cost FROM edge_table'
+);
+
+
+PREPARE q3 AS
+SELECT * FROM pgr_johnson(
+    'SELECT source, target, cost FROM edge_table',
+    true
+);
+
+
+SELECT lives_ok('q1', 'SHOULD WORK: without flag & with id');
+SELECT lives_ok('q2', 'SHOULD WORK: without flag');
+SELECT lives_ok('q3', 'SHOULD WORK: with flag');
+
+
+-- CHECKING THE RETURN TYPES
+PREPARE v21q00 AS
+SELECT pg_typeof(start_vid)::text AS t1,
+    pg_typeof(end_vid)::text AS t2,
+    pg_typeof(agg_cost)::TEXT AS t3
+FROM (
+    SELECT * FROM pgr_johnson(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+    ))  AS a
+LIMIT 1
+;
+
+PREPARE v21q01 AS
+SELECT  'bigint'::text AS t1,
+        'bigint'::text AS t2,
+        'double precision'::text AS t3;
+
+SELECT set_eq('v21q00', 'v21q01','Expected columns names & types');
+
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/allpairs/johnson-innerQuery.sql b/pgtap/allpairs/johnson-innerQuery.sql
new file mode 100644
index 0000000..6a5d8b5
--- /dev/null
+++ b/pgtap/allpairs/johnson-innerQuery.sql
@@ -0,0 +1,20 @@
+\i setup.sql
+
+SELECT plan(82);
+
+
+SELECT has_function('pgr_johnson',
+    ARRAY['text', 'boolean']);
+
+SELECT function_returns('pgr_johnson',
+    ARRAY['text', 'boolean'],
+    'setof record');
+
+
+SELECT style_dijkstra_no_id('pgr_johnson', ', true)');
+SELECT style_dijkstra('pgr_johnson', ', true)');
+
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/src/alpha_shape/test/pgtap/issue-544.sql b/pgtap/alpha_shape/issue-544.sql
similarity index 100%
rename from src/alpha_shape/test/pgtap/issue-544.sql
rename to pgtap/alpha_shape/issue-544.sql
diff --git a/pgtap/astar/aStar-group-innerQuery.sql b/pgtap/astar/aStar-group-innerQuery.sql
new file mode 100644
index 0000000..bb64433
--- /dev/null
+++ b/pgtap/astar/aStar-group-innerQuery.sql
@@ -0,0 +1,41 @@
+\i setup.sql
+
+SELECT plan(348);
+
+
+SELECT has_function('pgr_astar',
+    ARRAY['text', 'bigint', 'bigint', 'boolean', 'integer', 'double precision', 'double precision']);
+SELECT has_function('pgr_astar',
+    ARRAY['text', 'bigint', 'anyarray', 'boolean', 'integer', 'double precision', 'double precision']);
+SELECT has_function('pgr_astar',
+    ARRAY['text', 'anyarray', 'bigint', 'boolean', 'integer', 'double precision', 'double precision']);
+SELECT has_function('pgr_astar',
+    ARRAY['text', 'anyarray', 'anyarray', 'boolean', 'integer', 'double precision', 'double precision']);
+
+SELECT function_returns('pgr_astar',
+    ARRAY['text', 'bigint', 'bigint', 'boolean', 'integer', 'double precision', 'double precision'],
+    'setof record');
+SELECT function_returns('pgr_astar',
+    ARRAY['text', 'bigint', 'anyarray', 'boolean', 'integer', 'double precision', 'double precision'],
+    'setof record');
+SELECT function_returns('pgr_astar',
+    ARRAY['text', 'anyarray', 'bigint', 'boolean', 'integer', 'double precision', 'double precision'],
+    'setof record');
+SELECT function_returns('pgr_astar',
+    ARRAY['text', 'anyarray', 'anyarray', 'boolean', 'integer', 'double precision', 'double precision'],
+    'setof record');
+
+
+
+-- ONE TO ONE
+SELECT style_astar('pgr_astar', ', 2, 3, true)');
+-- ONE TO MANY
+SELECT style_astar('pgr_astar', ', 2, ARRAY[3], true)');
+-- MANY TO ONE
+SELECT style_astar('pgr_astar', ', ARRAY[2], 3, true)');
+-- MANY TO MANY
+SELECT style_astar('pgr_astar', ', ARRAY[2], ARRAY[3], true)');
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/astar/aStarCost-group-innerQuery.sql b/pgtap/astar/aStarCost-group-innerQuery.sql
new file mode 100644
index 0000000..028bf66
--- /dev/null
+++ b/pgtap/astar/aStarCost-group-innerQuery.sql
@@ -0,0 +1,39 @@
+\i setup.sql
+
+SELECT plan(348);
+
+
+SELECT has_function('pgr_astarcost',
+    ARRAY['text', 'bigint', 'bigint', 'boolean', 'integer', 'double precision', 'double precision']);
+SELECT has_function('pgr_astarcost',
+    ARRAY['text', 'bigint', 'anyarray', 'boolean', 'integer', 'double precision', 'double precision']);
+SELECT has_function('pgr_astarcost',
+    ARRAY['text', 'anyarray', 'bigint', 'boolean', 'integer', 'double precision', 'double precision']);
+SELECT has_function('pgr_astarcost',
+    ARRAY['text', 'anyarray', 'anyarray', 'boolean', 'integer', 'double precision', 'double precision']);
+
+SELECT function_returns('pgr_astarcost',
+    ARRAY['text', 'bigint', 'bigint', 'boolean', 'integer', 'double precision', 'double precision'],
+    'setof record');
+SELECT function_returns('pgr_astarcost',
+    ARRAY['text', 'bigint', 'anyarray', 'boolean', 'integer', 'double precision', 'double precision'],
+    'setof record');
+SELECT function_returns('pgr_astarcost',
+    ARRAY['text', 'anyarray', 'bigint', 'boolean', 'integer', 'double precision', 'double precision'],
+    'setof record');
+SELECT function_returns('pgr_astarcost',
+    ARRAY['text', 'anyarray', 'anyarray', 'boolean', 'integer', 'double precision', 'double precision'],
+    'setof record');
+
+-- ONE TO ONE
+SELECT style_astar('pgr_astarcost', ', 2, 3, true)');
+-- ONE TO MANY
+SELECT style_astar('pgr_astarcost', ', 2, ARRAY[3], true)');
+-- MANY TO ONE
+SELECT style_astar('pgr_astarcost', ', ARRAY[2], 3, true)');
+-- MANY TO MANY
+SELECT style_astar('pgr_astarcost', ', ARRAY[2], ARRAY[3], true)');
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/astar/astar_ManyToMany-compare-dijkstra.test.sql b/pgtap/astar/astar_ManyToMany-compare-dijkstra.test.sql
new file mode 100644
index 0000000..bda7909
--- /dev/null
+++ b/pgtap/astar/astar_ManyToMany-compare-dijkstra.test.sql
@@ -0,0 +1,94 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+\i setup.sql
+
+SELECT plan(4);
+
+UPDATE edge_table SET cost = cost + 0.001 * id * id, reverse_cost = reverse_cost + 0.001 * id * id;
+
+CREATE or REPLACE FUNCTION astarCompareDijkstra(cant INTEGER default 17)
+RETURNS SETOF TEXT AS
+$BODY$
+DECLARE
+inner_sql TEXT;
+dijkstra_sql TEXT;
+astar_sql TEXT;
+vids TEXT;
+data TEXT;
+BEGIN
+    data := ' path_seq, start_vid, end_vid, cost::text, agg_cost::text ';
+    vids := ' ARRAY[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18] ';
+
+
+        -----------------------
+        -- with reverse cost
+        -----------------------
+        -- DIRECTED
+        inner_sql := 'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table';
+        dijkstra_sql := 'SELECT ' || data || ' FROM pgr_dijkstra($$' || inner_sql || '$$, ' || vids
+            || ',' || vids || ',  true)';
+
+        astar_sql := 'SELECT ' || data || ' FROM pgr_astar($$' || inner_sql || '$$,  ' || vids
+            || ',' || vids || ',  true, heuristic := 0)';
+        RETURN query SELECT set_eq(astar_sql, dijkstra_sql, astar_sql);
+
+        -- UNDIRECTED
+        dijkstra_sql := 'SELECT ' || data || ' FROM pgr_dijkstra($$' || inner_sql || '$$,  ' || vids
+            || ',' || vids || ',  false)';
+
+        astar_sql := 'SELECT ' || data || ' FROM pgr_astar($$' || inner_sql || '$$,  ' || vids
+            || ', ' || vids || ', false, heuristic := 0)';
+        RETURN query SELECT set_eq(astar_sql, dijkstra_sql, astar_sql);
+
+        -----------------------
+        -- NO reverse cost
+        -----------------------
+        -- DIRECTED
+        inner_sql := 'SELECT id, source, target, cost, x1, y1, x2, y2 FROM edge_table';
+        dijkstra_sql := 'SELECT ' || data || ' FROM pgr_dijkstra($$' || inner_sql || '$$,  ' || vids
+            || ',' || vids || ',  true)';
+
+        astar_sql := 'SELECT ' || data || ' FROM pgr_astar($$' || inner_sql || '$$,  ' || vids
+            || ',' || vids || ',  true, heuristic := 0)';
+        RETURN query SELECT set_eq(astar_sql, dijkstra_sql, astar_sql);
+
+        -- UNDIRECTED
+        dijkstra_sql := 'SELECT ' || data || ' FROM pgr_dijkstra($$' || inner_sql || '$$,  ' || vids
+            || ',' || vids || ',  false)';
+
+        astar_sql := 'SELECT ' || data || ' FROM pgr_astar($$' || inner_sql || '$$,  ' || vids
+            || ', ' || vids || ', false, heuristic := 0)';
+        RETURN query SELECT set_eq(astar_sql, dijkstra_sql, astar_sql);
+
+    RETURN;
+END
+$BODY$
+language plpgsql;
+
+SELECT * from astarCompareDijkstra();
+
+
+SELECT * FROM finish();
+ROLLBACK;
+
diff --git a/src/astar/test/pgtap/astar_ManyToOne-compare-dijkstra.test.sql b/pgtap/astar/astar_ManyToOne-compare-dijkstra.test.sql
similarity index 100%
rename from src/astar/test/pgtap/astar_ManyToOne-compare-dijkstra.test.sql
rename to pgtap/astar/astar_ManyToOne-compare-dijkstra.test.sql
diff --git a/src/astar/test/pgtap/astar_oneToMany-compare-dijkstra.test.sql b/pgtap/astar/astar_oneToMany-compare-dijkstra.test.sql
similarity index 100%
rename from src/astar/test/pgtap/astar_oneToMany-compare-dijkstra.test.sql
rename to pgtap/astar/astar_oneToMany-compare-dijkstra.test.sql
diff --git a/pgtap/astar/astar_oneToOne-compare-dijkstra.test.sql b/pgtap/astar/astar_oneToOne-compare-dijkstra.test.sql
new file mode 100644
index 0000000..cdded62
--- /dev/null
+++ b/pgtap/astar/astar_oneToOne-compare-dijkstra.test.sql
@@ -0,0 +1,99 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+\i setup.sql
+
+SELECT plan(612);
+
+UPDATE edge_table SET cost = cost + 0.001 * id * id, reverse_cost = reverse_cost + 0.001 * id * id;
+
+CREATE or REPLACE FUNCTION astarCompareDijkstra(cant INTEGER default 17)
+RETURNS SETOF TEXT AS
+$BODY$
+DECLARE
+inner_sql TEXT;
+dijkstra_sql TEXT;
+astar_sql TEXT;
+result_columns TEXT;
+BEGIN
+    result_columns := ' seq, path_seq, cost::TEXT, agg_cost::TEXT ';
+
+    FOR i IN 1.. cant BY 2 LOOP
+        FOR j IN 1.. cant LOOP
+
+            -- DIRECTED WITH REVERSE COST
+            inner_sql := 'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table';
+            dijkstra_sql := 'SELECT ' || result_columns || ' FROM pgr_dijkstra($$' || inner_sql || '$$, ' || i || ', ' || j
+                || ', true)';
+
+            astar_sql := 'SELECT ' || result_columns || ' FROM pgr_astar($$' || inner_sql || '$$, ' || i || ', ' || j
+                || ', true, heuristic:=0)';
+            RETURN query SELECT set_eq(astar_sql, dijkstra_sql, astar_sql);
+
+
+            -- DIRECTED WITHOUT REVERSE COST
+            inner_sql := 'SELECT id, source, target, cost, x1, y1, x2, y2 FROM edge_table';
+            dijkstra_sql := 'SELECT ' || result_columns || ' FROM pgr_dijkstra($$' || inner_sql || '$$, ' || i || ', ' || j
+                || ', true)';
+
+            astar_sql := 'SELECT ' || result_columns || ' FROM pgr_astar($$' || inner_sql || '$$, ' || i || ', ' || j
+                || ', true, heuristic:=0)';
+            RETURN query SELECT set_eq(astar_sql, dijkstra_sql, astar_sql);
+
+
+            -- UNDIRECTED WITH REVERSE COST
+            inner_sql := 'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table';
+            dijkstra_sql := 'SELECT ' || result_columns || ' FROM pgr_dijkstra($$' || inner_sql || '$$, ' || i || ', ' || j
+                || ', false)';
+
+            astar_sql := 'SELECT ' || result_columns || ' FROM pgr_astar($$' || inner_sql || '$$, ' || i || ', ' || j
+                || ', false, heuristic:=0)';
+            RETURN query SELECT set_eq(astar_sql, dijkstra_sql, astar_sql);
+
+
+            -- UNDIRECTED WITHOUT REVERSE COST
+            inner_sql := 'SELECT id, source, target, cost, x1, y1, x2, y2 FROM edge_table';
+            dijkstra_sql := 'SELECT ' || result_columns || ' FROM pgr_dijkstra($$' || inner_sql || '$$, ' || i || ', ' || j
+                || ', false)';
+
+            astar_sql := 'SELECT ' || result_columns || ' FROM pgr_astar($$' || inner_sql || '$$, ' || i || ', ' || j
+                || ', false, heuristic:=0)';
+            RETURN query SELECT set_eq(astar_sql, dijkstra_sql, astar_sql);
+
+
+
+
+        END LOOP;
+    END LOOP;
+
+    RETURN;
+END
+$BODY$
+language plpgsql;
+
+SELECT * from astarCompareDijkstra();
+
+
+SELECT * FROM finish();
+ROLLBACK;
+
diff --git a/src/astar/test/pgtap/astar_oneToOne-compare-dijkstra1.test.sql b/pgtap/astar/astar_oneToOne-compare-dijkstra1.test.sql
similarity index 100%
rename from src/astar/test/pgtap/astar_oneToOne-compare-dijkstra1.test.sql
rename to pgtap/astar/astar_oneToOne-compare-dijkstra1.test.sql
diff --git a/src/astar/test/pgtap/astar_oneToOne-types-check.sql b/pgtap/astar/astar_oneToOne-types-check.sql
similarity index 100%
rename from src/astar/test/pgtap/astar_oneToOne-types-check.sql
rename to pgtap/astar/astar_oneToOne-types-check.sql
diff --git a/pgtap/bdAstar/bdAstar-compare-dijkstra.sql b/pgtap/bdAstar/bdAstar-compare-dijkstra.sql
new file mode 100644
index 0000000..421c41f
--- /dev/null
+++ b/pgtap/bdAstar/bdAstar-compare-dijkstra.sql
@@ -0,0 +1,79 @@
+\i setup.sql
+
+SET client_min_messages TO ERROR;
+
+SELECT plan(544);
+
+UPDATE edge_table SET cost = cost + 0.001 * id * id, reverse_cost = reverse_cost + 0.001 * id * id;
+
+
+CREATE or REPLACE FUNCTION bdastar_compare_dijkstra(cant INTEGER default 17)
+RETURNS SETOF TEXT AS
+$BODY$
+DECLARE
+inner_sql TEXT;
+dijkstra_sql TEXT;
+bdastar_sql TEXT;
+BEGIN
+
+    FOR i IN 1.. cant  LOOP
+        FOR j IN 2.. cant BY 2 LOOP
+
+            -- DIRECTED
+            -- with reverse_cost
+            inner_sql := 'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2 FROM edge_table';
+            dijkstra_sql := 'SELECT seq,node,edge,cost::text,agg_cost::text FROM pgr_dijkstra($$' || inner_sql || '$$, ' || i || ', ' || j
+                || ', true)';
+
+            bdastar_sql := 'SELECT seq,node,edge,cost::text,agg_cost::text FROM pgr_bdastar($$' || inner_sql || '$$, ' || i || ', ' || j
+                || ', true, 0)';
+            RETURN query SELECT set_eq(bdastar_sql, dijkstra_sql, bdastar_sql);
+
+
+            -- DIRECTED
+            -- NO reverse_cost
+            inner_sql := 'SELECT id, source, target, cost, x1,y1,x2,y2 FROM edge_table';
+            dijkstra_sql := 'SELECT  seq,node,edge,cost::text,agg_cost::text FROM pgr_dijkstra($$' || inner_sql || '$$, ' || i || ', ' || j
+                || ', true)';
+
+            bdastar_sql := 'SELECT  seq,node,edge,cost::text,agg_cost::text FROM pgr_bdastar($$' || inner_sql || '$$, ' || i || ', ' || j
+                || ', true, 0)';
+            RETURN query SELECT set_eq(bdastar_sql, dijkstra_sql, bdastar_sql);
+
+            -- UNDIRECTED
+            -- with reverse_cost
+            inner_sql := 'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2 FROM edge_table';
+            dijkstra_sql := 'SELECT  seq,node,edge,cost::text,agg_cost::text FROM pgr_dijkstra($$' || inner_sql || '$$, ' || i || ', ' || j
+                || ', false)';
+
+            bdastar_sql := 'SELECT  seq,node,edge,cost::text,agg_cost::text FROM pgr_bdastar($$' || inner_sql || '$$, ' || i || ', ' || j
+                || ', false, 0)';
+            RETURN query SELECT set_eq(bdastar_sql, dijkstra_sql, bdastar_sql);
+
+
+            -- UNDIRECTED
+            -- NO reverse_cost
+            inner_sql := 'SELECT id, source, target, cost, x1,y1,x2,y2 FROM edge_table';
+            dijkstra_sql := 'SELECT  seq,node,edge,cost::text,agg_cost::text FROM pgr_dijkstra($$' || inner_sql || '$$, ' || i || ', ' || j
+                || ', false)';
+
+            bdastar_sql := 'SELECT  seq,node,edge,cost::text,agg_cost::text FROM pgr_bdastar($$' || inner_sql || '$$, ' || i || ', ' || j
+                || ', false, 0)';
+            RETURN query SELECT set_eq(bdastar_sql, dijkstra_sql, bdastar_sql);
+
+
+        END LOOP;
+    END LOOP;
+
+    RETURN;
+END
+$BODY$
+language plpgsql;
+
+
+SELECT * from bdastar_compare_dijkstra();
+
+
+SELECT * FROM finish();
+ROLLBACK;
+
diff --git a/pgtap/bdAstar/bdAstar-innerQuery.sql b/pgtap/bdAstar/bdAstar-innerQuery.sql
new file mode 100644
index 0000000..5761ba9
--- /dev/null
+++ b/pgtap/bdAstar/bdAstar-innerQuery.sql
@@ -0,0 +1,26 @@
+\i setup.sql
+
+SELECT plan(348);
+
+
+SELECT has_function('pgr_bdastar', ARRAY['text', 'bigint', 'bigint', 'boolean', 'integer', 'numeric', 'numeric']);
+SELECT has_function('pgr_bdastar', ARRAY['text', 'bigint', 'anyarray', 'boolean', 'integer', 'numeric', 'numeric']);
+SELECT has_function('pgr_bdastar', ARRAY['text', 'anyarray', 'bigint', 'boolean', 'integer', 'numeric', 'numeric']);
+SELECT has_function('pgr_bdastar', ARRAY['text', 'anyarray', 'anyarray', 'boolean', 'integer', 'numeric', 'numeric']);
+
+SELECT function_returns('pgr_bdastar', ARRAY['text', 'bigint', 'bigint', 'boolean', 'integer', 'numeric', 'numeric'],
+    'setof record');
+SELECT function_returns('pgr_bdastar', ARRAY['text', 'bigint', 'anyarray', 'boolean', 'integer', 'numeric', 'numeric'],
+    'setof record');
+SELECT function_returns('pgr_bdastar', ARRAY['text', 'anyarray', 'bigint', 'boolean', 'integer', 'numeric', 'numeric'],
+    'setof record');
+SELECT function_returns('pgr_bdastar', ARRAY['text', 'anyarray', 'anyarray', 'boolean', 'integer', 'numeric', 'numeric'],
+    'setof record');
+
+SELECT style_astar('pgr_bdastar', ', 2, 3, true)');
+SELECT style_astar('pgr_bdastar', ', 2, ARRAY[3], true)');
+SELECT style_astar('pgr_bdastar', ', ARRAY[2], 3, true)');
+SELECT style_astar('pgr_bdastar', ', ARRAY[2], ARRAY[3], true)');
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/bdAstar/bdAstar-parameter-types-check.sql b/pgtap/bdAstar/bdAstar-parameter-types-check.sql
new file mode 100644
index 0000000..b30d05b
--- /dev/null
+++ b/pgtap/bdAstar/bdAstar-parameter-types-check.sql
@@ -0,0 +1,72 @@
+
+\i setup.sql
+
+SELECT plan(10);
+
+
+SELECT has_function('pgr_bdastar',
+    ARRAY['text', 'bigint', 'bigint', 'boolean', 'integer', 'numeric', 'numeric']);
+SELECT function_returns('pgr_bdastar',
+    ARRAY['text', 'bigint', 'bigint', 'boolean', 'integer', 'numeric', 'numeric'],
+    'setof record','Returns set record');
+
+SELECT has_function('pgr_bdastar',ARRAY['text', 'bigint', 'bigint']);
+SELECT function_returns('pgr_bdastar', ARRAY['text', 'bigint', 'bigint'], 'setof record','Returns set record');
+
+
+SELECT throws_ok(
+    $$SELECT * FROM pgr_bdastar('SELECT * FROM edge_table',
+        2, 3,
+        true, 6, 1, 1)$$,
+    'XX000',
+    'Unknown heuristic',
+        'SHOULD THROW because heuristic > 5'
+);
+
+SELECT throws_ok(
+    $$SELECT * FROM pgr_bdastar('SELECT * FROM edge_table',
+        2, 3,
+        true, -1, 1, 1)$$,
+    'XX000',
+    'Unknown heuristic',
+    'SHOULD THROW because heuristic < 0'
+);
+
+SELECT throws_ok(
+    $$SELECT * FROM pgr_bdastar('SELECT * FROM edge_table',
+        2, 3,
+        true, 0, 0, 1)$$,
+    'XX000',
+    'Factor value out of range',
+    'SHOULD THROW because factor = 0'
+);
+
+SELECT throws_ok(
+    $$SELECT * FROM pgr_bdastar('SELECT * FROM edge_table',
+        2, 3,
+        true, 0, -1.4, 1)$$,
+    'XX000',
+    'Factor value out of range',
+    'SHOULD THROW because factor < 0'
+);
+
+SELECT throws_ok(
+    $$SELECT * FROM pgr_bdastar('SELECT * FROM edge_table',
+        2, 3,
+        true, 0, 1, -3)$$,
+    'XX000',
+    'Epsilon value out of range',
+    'SHOULD THROW because epsilon < 0'
+);
+SELECT throws_ok(
+    $$SELECT * FROM pgr_bdastar('SELECT * FROM edge_table',
+        2, 3,
+        true, 0, 1, 0.9)$$,
+    'XX000',
+    'Epsilon value out of range',
+    'SHOULD THROW because epsilon < 1'
+);
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/bdAstar/bdAstar-return-types-check.sql b/pgtap/bdAstar/bdAstar-return-types-check.sql
new file mode 100644
index 0000000..9e43de8
--- /dev/null
+++ b/pgtap/bdAstar/bdAstar-return-types-check.sql
@@ -0,0 +1,54 @@
+\i setup.sql
+
+
+SELECT plan(6);
+
+SELECT can(ARRAY['pgr_bdastar']);
+
+
+--V2.4+
+SELECT has_function('pgr_bdastar',
+    ARRAY['text','bigint','bigint','boolean', 'integer', 'numeric', 'numeric']);
+SELECT function_returns('pgr_bdastar',
+    ARRAY['text','bigint','bigint','boolean', 'integer', 'numeric', 'numeric'],
+    'setof record');
+
+-- testing for the signature that they return the correct names & columns
+
+PREPARE v21q00 AS
+SELECT pg_typeof(seq)::text AS t1, pg_typeof(path_seq)::text AS t2,
+    pg_typeof(node)::text AS t5, pg_typeof(edge)::text AS t6,
+    pg_typeof(cost)::text AS t7, pg_typeof(agg_cost)::TEXT AS t8 
+    FROM ( 
+        SELECT * FROM pgr_bdastar(
+            'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2 FROM edge_table',
+            2, 3, true) ) AS a
+    limit 1
+;
+
+PREPARE v21q01 AS
+SELECT  'integer'::text AS t1,'integer'::text AS t2,
+    'bigint'::text AS t5, 'bigint'::text AS t6,
+    'double precision'::text AS t7, 'double precision'::text AS t8;
+
+SELECT set_eq('v21q00', 'v21q01','Expected columns names & types in version 2.5');
+
+
+-- CHECKING WORKS WITH & WITOUT REVERSE COST
+
+PREPARE v20q1 AS
+SELECT * FROM pgr_bdastar(
+    'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2 FROM edge_table',
+    2, 3, true);
+
+PREPARE v20q3 AS
+SELECT * FROM pgr_bdastar(
+    'SELECT id, source, target, cost, x1,y1,x2,y2 FROM edge_table',
+    2, 3, false);
+
+SELECT lives_ok('v20q1','with reverse cost');
+SELECT lives_ok('v20q3','with NO reverse cost');
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/bdAstar/bdAstarCost-innerQuery.sql b/pgtap/bdAstar/bdAstarCost-innerQuery.sql
new file mode 100644
index 0000000..e698e6a
--- /dev/null
+++ b/pgtap/bdAstar/bdAstarCost-innerQuery.sql
@@ -0,0 +1,26 @@
+\i setup.sql
+
+SELECT plan(348);
+
+
+SELECT has_function('pgr_bdastarcost', ARRAY['text', 'bigint', 'bigint', 'boolean', 'integer', 'numeric', 'numeric']);
+SELECT has_function('pgr_bdastarcost', ARRAY['text', 'bigint', 'anyarray', 'boolean', 'integer', 'numeric', 'numeric']);
+SELECT has_function('pgr_bdastarcost', ARRAY['text', 'anyarray', 'bigint', 'boolean', 'integer', 'numeric', 'numeric']);
+SELECT has_function('pgr_bdastarcost', ARRAY['text', 'anyarray', 'anyarray', 'boolean', 'integer', 'numeric', 'numeric']);
+
+SELECT function_returns('pgr_bdastarcost', ARRAY['text', 'bigint', 'bigint', 'boolean', 'integer', 'numeric', 'numeric'],
+    'setof record');
+SELECT function_returns('pgr_bdastarcost', ARRAY['text', 'bigint', 'anyarray', 'boolean', 'integer', 'numeric', 'numeric'],
+    'setof record');
+SELECT function_returns('pgr_bdastarcost', ARRAY['text', 'anyarray', 'bigint', 'boolean', 'integer', 'numeric', 'numeric'],
+    'setof record');
+SELECT function_returns('pgr_bdastarcost', ARRAY['text', 'anyarray', 'anyarray', 'boolean', 'integer', 'numeric', 'numeric'],
+    'setof record');
+
+SELECT style_astar('pgr_bdastarcost', ', 2, 3, true)');
+SELECT style_astar('pgr_bdastarcost', ', 2, ARRAY[3], true)');
+SELECT style_astar('pgr_bdastarcost', ', ARRAY[2], 3, true)');
+SELECT style_astar('pgr_bdastarcost', ', ARRAY[2], ARRAY[3], true)');
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/bdAstar/bdAstarCostMatrix-innerQuery.sql b/pgtap/bdAstar/bdAstarCostMatrix-innerQuery.sql
new file mode 100644
index 0000000..67d1c05
--- /dev/null
+++ b/pgtap/bdAstar/bdAstarCostMatrix-innerQuery.sql
@@ -0,0 +1,15 @@
+\i setup.sql
+
+SELECT plan(172);
+
+
+SELECT has_function('pgr_bdastarcostmatrix', ARRAY['text', 'anyarray', 'boolean', 'integer', 'numeric', 'numeric']);
+
+SELECT function_returns('pgr_bdastarcostmatrix', ARRAY['text', 'anyarray', 'boolean', 'integer', 'numeric', 'numeric'],
+    'setof record');
+
+SELECT style_astar('pgr_bdastarcostmatrix', ', ARRAY[2, 3], true)');
+SELECT style_astar('pgr_bdastarcostmatrix', ', ARRAY[2, 3], false)');
+
+SELECT finish();
+ROLLBACK;
diff --git a/src/bdDijkstra/test/pgtap/bdDijkstra-compare-dijkstra.sql b/pgtap/bdDijkstra/bdDijkstra-compare-dijkstra.sql
similarity index 100%
rename from src/bdDijkstra/test/pgtap/bdDijkstra-compare-dijkstra.sql
rename to pgtap/bdDijkstra/bdDijkstra-compare-dijkstra.sql
diff --git a/pgtap/bdDijkstra/bdDijkstra-innerQuery.sql b/pgtap/bdDijkstra/bdDijkstra-innerQuery.sql
new file mode 100644
index 0000000..6bde49f
--- /dev/null
+++ b/pgtap/bdDijkstra/bdDijkstra-innerQuery.sql
@@ -0,0 +1,37 @@
+\i setup.sql
+
+SELECT plan(548);
+
+SELECT has_function('pgr_bddijkstra', ARRAY['text', 'bigint', 'bigint', 'boolean']);
+SELECT has_function('pgr_bddijkstra', ARRAY['text', 'bigint', 'anyarray', 'boolean']);
+SELECT has_function('pgr_bddijkstra', ARRAY['text', 'anyarray', 'bigint', 'boolean']);
+SELECT has_function('pgr_bddijkstra', ARRAY['text', 'anyarray', 'anyarray', 'boolean']);
+
+SELECT function_returns('pgr_bddijkstra', ARRAY['text', 'bigint', 'bigint', 'boolean'],
+    'setof record');
+SELECT function_returns('pgr_bddijkstra', ARRAY['text', 'bigint', 'anyarray', 'boolean'],
+    'setof record');
+SELECT function_returns('pgr_bddijkstra', ARRAY['text', 'anyarray', 'bigint', 'boolean'],
+    'setof record');
+SELECT function_returns('pgr_bddijkstra', ARRAY['text', 'anyarray', 'anyarray', 'boolean'],
+    'setof record');
+
+
+
+SELECT style_dijkstra('pgr_bddijkstra', ', 2, 3, true)');
+SELECT style_dijkstra('pgr_bddijkstra', ', 2, ARRAY[3], true)');
+SELECT style_dijkstra('pgr_bddijkstra', ',  2, ARRAY[3], true)');
+SELECT style_dijkstra('pgr_bddijkstra', ',  ARRAY[2], ARRAY[3], true)');
+
+SELECT style_dijkstra('pgr_bddijkstra', ', 2, 3)');
+SELECT style_dijkstra('pgr_bddijkstra', ', 2, ARRAY[3])');
+SELECT style_dijkstra('pgr_bddijkstra', ',  2, ARRAY[3])');
+SELECT style_dijkstra('pgr_bddijkstra', ',  ARRAY[2], ARRAY[3])');
+
+SELECT style_dijkstra('pgr_bddijkstra', ', 2, 3, false)');
+SELECT style_dijkstra('pgr_bddijkstra', ', 2, ARRAY[3], false)');
+SELECT style_dijkstra('pgr_bddijkstra', ',  2, ARRAY[3], false)');
+SELECT style_dijkstra('pgr_bddijkstra', ',  ARRAY[2], ARRAY[3], false)');
+
+SELECT finish();
+ROLLBACK;
diff --git a/src/bdDijkstra/test/pgtap/bdDijkstra-types-check.sql b/pgtap/bdDijkstra/bdDijkstra-types-check.sql
similarity index 100%
rename from src/bdDijkstra/test/pgtap/bdDijkstra-types-check.sql
rename to pgtap/bdDijkstra/bdDijkstra-types-check.sql
diff --git a/pgtap/bdDijkstra/bdDijkstraCost-innerQuery.sql b/pgtap/bdDijkstra/bdDijkstraCost-innerQuery.sql
new file mode 100644
index 0000000..4ea2cf7
--- /dev/null
+++ b/pgtap/bdDijkstra/bdDijkstraCost-innerQuery.sql
@@ -0,0 +1,37 @@
+\i setup.sql
+
+SELECT plan(548);
+
+SELECT has_function('pgr_bddijkstracost', ARRAY['text', 'bigint', 'bigint', 'boolean']);
+SELECT has_function('pgr_bddijkstracost', ARRAY['text', 'anyarray', 'bigint', 'boolean']);
+SELECT has_function('pgr_bddijkstracost', ARRAY['text', 'bigint', 'anyarray', 'boolean']);
+SELECT has_function('pgr_bddijkstracost', ARRAY['text', 'anyarray', 'anyarray', 'boolean']);
+
+SELECT function_returns('pgr_bddijkstracost', ARRAY['text', 'bigint', 'bigint', 'boolean'],
+    'setof record');
+SELECT function_returns('pgr_bddijkstracost', ARRAY['text', 'bigint', 'anyarray', 'boolean'],
+    'setof record');
+SELECT function_returns('pgr_bddijkstracost', ARRAY['text', 'anyarray', 'bigint', 'boolean'],
+    'setof record');
+SELECT function_returns('pgr_bddijkstracost', ARRAY['text', 'anyarray', 'anyarray', 'boolean'],
+    'setof record');
+
+
+
+SELECT style_dijkstra('pgr_bddijkstracost', ', 2, 3, true)');
+SELECT style_dijkstra('pgr_bddijkstracost', ', 2, ARRAY[3], true)');
+SELECT style_dijkstra('pgr_bddijkstracost', ',  2, ARRAY[3], true)');
+SELECT style_dijkstra('pgr_bddijkstracost', ',  ARRAY[2], ARRAY[3], true)');
+
+SELECT style_dijkstra('pgr_bddijkstracost', ', 2, 3)');
+SELECT style_dijkstra('pgr_bddijkstracost', ', 2, ARRAY[3])');
+SELECT style_dijkstra('pgr_bddijkstracost', ',  2, ARRAY[3])');
+SELECT style_dijkstra('pgr_bddijkstracost', ',  ARRAY[2], ARRAY[3])');
+
+SELECT style_dijkstra('pgr_bddijkstracost', ', 2, 3, false)');
+SELECT style_dijkstra('pgr_bddijkstracost', ', 2, ARRAY[3], false)');
+SELECT style_dijkstra('pgr_bddijkstracost', ',  2, ARRAY[3], false)');
+SELECT style_dijkstra('pgr_bddijkstracost', ',  ARRAY[2], ARRAY[3], false)');
+
+SELECT finish();
+ROLLBACK;
diff --git a/src/common/test/pgtap/checkVertTab.test.sql b/pgtap/common/checkVertTab.test.sql
similarity index 100%
rename from src/common/test/pgtap/checkVertTab.test.sql
rename to pgtap/common/checkVertTab.test.sql
diff --git a/src/common/test/pgtap/getColumnName.test.sql b/pgtap/common/getColumnName.test.sql
similarity index 100%
rename from src/common/test/pgtap/getColumnName.test.sql
rename to pgtap/common/getColumnName.test.sql
diff --git a/src/common/test/pgtap/getColumnType.test.sql b/pgtap/common/getColumnType.test.sql
similarity index 100%
rename from src/common/test/pgtap/getColumnType.test.sql
rename to pgtap/common/getColumnType.test.sql
diff --git a/src/common/test/pgtap/getTableName.test.sql b/pgtap/common/getTableName.test.sql
similarity index 100%
rename from src/common/test/pgtap/getTableName.test.sql
rename to pgtap/common/getTableName.test.sql
diff --git a/pgtap/common/has_v3_signatures.sql b/pgtap/common/has_v3_signatures.sql
new file mode 100644
index 0000000..53e273a
--- /dev/null
+++ b/pgtap/common/has_v3_signatures.sql
@@ -0,0 +1,141 @@
+
+\i setup.sql
+
+SELECT plan(90);
+
+SELECT todo_start();
+
+-- testing names only
+SELECT has_function('pgr_pickdeliver');
+SELECT has_function('pgr_distribution');
+SELECT has_function('pgr_euclideantsp');
+SELECT has_function('pgr_withpointsvia');
+
+SELECT todo_end();
+
+-- testing names only
+SELECT has_function('pgr_floydwarshall');
+SELECT has_function('pgr_johnson');
+SELECT has_function('pgr_astar');
+SELECT has_function('pgr_astarcost');
+SELECT has_function('pgr_astarcostmatrix');
+SELECT has_function('pgr_bdastar');
+SELECT has_function('pgr_bddijkstra');
+SELECT has_function('pgr_dijkstra');
+SELECT has_function('pgr_dijkstracost');
+SELECT has_function('pgr_dijkstracostmatrix');
+SELECT has_function('pgr_dijkstravia');
+SELECT has_function('pgr_drivingdistance');
+SELECT has_function('pgr_ksp');
+SELECT has_function('pgr_withpoints');
+SELECT has_function('pgr_withpointscost');
+SELECT has_function('pgr_withpointscostmatrix');
+SELECT has_function('pgr_withpointsksp');
+SELECT has_function('pgr_withpointsdd');
+
+SELECT has_function('pgr_contractgraph');
+SELECT has_function('pgr_maxflow');
+SELECT has_function('pgr_pushrelabel');
+SELECT has_function('pgr_edmondskarp');
+SELECT has_function('pgr_boykovkolmogorov');
+SELECT has_function('pgr_maxcardinalitymatch');
+SELECT has_function('pgr_edgedisjointpaths');
+
+-- testing with parameters
+-- Dijkstra based
+
+-- DIJKSTRA
+SELECT has_function('pgr_dijkstra', ARRAY['text', 'bigint', 'bigint', 'boolean']);
+SELECT has_function('pgr_dijkstra', ARRAY['text', 'anyarray', 'bigint', 'boolean']);
+SELECT has_function('pgr_dijkstra', ARRAY['text', 'bigint', 'anyarray', 'boolean']);
+SELECT has_function('pgr_dijkstra', ARRAY['text', 'anyarray', 'anyarray', 'boolean']);
+
+SELECT has_function('pgr_dijkstracost', ARRAY['text', 'bigint', 'bigint', 'boolean']);
+SELECT has_function('pgr_dijkstracost', ARRAY['text', 'anyarray', 'bigint', 'boolean']);
+SELECT has_function('pgr_dijkstracost', ARRAY['text', 'bigint', 'anyarray', 'boolean']);
+SELECT has_function('pgr_dijkstracost', ARRAY['text', 'anyarray', 'anyarray', 'boolean']);
+
+SELECT has_function('pgr_dijkstracostmatrix', ARRAY['text', 'anyarray', 'boolean']);
+
+SELECT has_function('pgr_dijkstravia', ARRAY['text', 'anyarray', 'boolean', 'boolean', 'boolean']);
+
+SELECT has_function('pgr_drivingdistance',  ARRAY['text', 'anyarray', 'double precision', 'boolean', 'boolean']);
+SELECT has_function('pgr_drivingdistance',  ARRAY['text', 'bigint', 'double precision', 'boolean']);
+
+SELECT has_function('pgr_ksp', ARRAY['text','bigint','bigint','integer','boolean','boolean']);
+
+-- bd DIJKSTRA
+SELECT has_function('pgr_bddijkstra', ARRAY['text', 'bigint', 'bigint', 'boolean']);
+SELECT has_function('pgr_bddijkstra', ARRAY['text', 'anyarray', 'bigint', 'boolean']);
+SELECT has_function('pgr_bddijkstra', ARRAY['text', 'bigint', 'anyarray', 'boolean']);
+SELECT has_function('pgr_bddijkstra', ARRAY['text', 'anyarray', 'anyarray', 'boolean']);
+
+SELECT has_function('pgr_bddijkstracost', ARRAY['text', 'bigint', 'bigint', 'boolean']);
+SELECT has_function('pgr_bddijkstracost', ARRAY['text', 'anyarray', 'bigint', 'boolean']);
+SELECT has_function('pgr_bddijkstracost', ARRAY['text', 'bigint', 'anyarray', 'boolean']);
+SELECT has_function('pgr_bddijkstracost', ARRAY['text', 'anyarray', 'anyarray', 'boolean']);
+
+SELECT has_function('pgr_bddijkstracostmatrix', ARRAY['text', 'anyarray', 'boolean']);
+
+
+-- Astar based
+
+-- ASTAR
+SELECT has_function('pgr_astar', ARRAY['text', 'bigint', 'bigint', 'boolean', 'integer', 'double precision', 'double precision']);
+SELECT has_function('pgr_astar', ARRAY['text', 'anyarray', 'bigint', 'boolean', 'integer', 'double precision', 'double precision']);
+SELECT has_function('pgr_astar', ARRAY['text', 'bigint', 'anyarray', 'boolean', 'integer', 'double precision', 'double precision']);
+SELECT has_function('pgr_astar', ARRAY['text', 'anyarray', 'anyarray', 'boolean', 'integer', 'double precision', 'double precision']);
+
+SELECT has_function('pgr_astarcost', ARRAY['text', 'bigint', 'bigint', 'boolean', 'integer', 'double precision', 'double precision']);
+SELECT has_function('pgr_astarcost', ARRAY['text', 'anyarray', 'bigint', 'boolean', 'integer', 'double precision', 'double precision']);
+SELECT has_function('pgr_astarcost', ARRAY['text', 'bigint', 'anyarray', 'boolean', 'integer', 'double precision', 'double precision']);
+SELECT has_function('pgr_astarcost', ARRAY['text', 'anyarray', 'anyarray', 'boolean', 'integer', 'double precision', 'double precision']);
+
+SELECT has_function('pgr_astarcostmatrix', ARRAY['text', 'anyarray', 'boolean', 'integer', 'double precision', 'double precision']);
+
+-- bd ASTAR
+SELECT has_function('pgr_bdastar', ARRAY['text', 'bigint', 'bigint', 'boolean', 'integer', 'numeric', 'numeric']);
+SELECT has_function('pgr_bdastar', ARRAY['text', 'anyarray', 'bigint', 'boolean', 'integer', 'numeric', 'numeric']);
+SELECT has_function('pgr_bdastar', ARRAY['text', 'bigint', 'anyarray', 'boolean', 'integer', 'numeric', 'numeric']);
+SELECT has_function('pgr_bdastar', ARRAY['text', 'anyarray', 'anyarray', 'boolean', 'integer', 'numeric', 'numeric']);
+
+SELECT has_function('pgr_bdastarcost', ARRAY['text', 'bigint', 'bigint', 'boolean', 'integer', 'numeric', 'numeric']);
+SELECT has_function('pgr_bdastarcost', ARRAY['text', 'anyarray', 'bigint', 'boolean', 'integer', 'numeric', 'numeric']);
+SELECT has_function('pgr_bdastarcost', ARRAY['text', 'bigint', 'anyarray', 'boolean', 'integer', 'numeric', 'numeric']);
+SELECT has_function('pgr_bdastarcost', ARRAY['text', 'anyarray', 'anyarray', 'boolean', 'integer', 'numeric', 'numeric']);
+
+SELECT has_function('pgr_bdastarcostmatrix', ARRAY['text', 'anyarray', 'boolean', 'integer', 'numeric', 'numeric']);
+
+-- max flow
+SELECT has_function('pgr_maxflow', ARRAY[ 'text', 'bigint', 'bigint' ]);
+SELECT has_function('pgr_maxflow', ARRAY[ 'text', 'anyarray', 'bigint' ]);
+SELECT has_function('pgr_maxflow', ARRAY[ 'text', 'bigint', 'anyarray' ]);
+SELECT has_function('pgr_maxflow', ARRAY[ 'text', 'anyarray', 'anyarray' ]);
+
+SELECT has_function('pgr_boykovkolmogorov', ARRAY[ 'text', 'bigint', 'bigint' ]);
+SELECT has_function('pgr_boykovkolmogorov', ARRAY[ 'text', 'anyarray', 'bigint' ]);
+SELECT has_function('pgr_boykovkolmogorov', ARRAY[ 'text', 'bigint', 'anyarray' ]);
+SELECT has_function('pgr_boykovkolmogorov', ARRAY[ 'text', 'anyarray', 'anyarray' ]);
+
+SELECT has_function('pgr_edmondskarp', ARRAY[ 'text', 'bigint', 'bigint' ]);
+SELECT has_function('pgr_edmondskarp', ARRAY[ 'text', 'anyarray', 'bigint' ]);
+SELECT has_function('pgr_edmondskarp', ARRAY[ 'text', 'bigint', 'anyarray' ]);
+SELECT has_function('pgr_edmondskarp', ARRAY[ 'text', 'anyarray', 'anyarray' ]);
+
+SELECT has_function('pgr_pushrelabel', ARRAY[ 'text', 'bigint', 'bigint' ]);
+SELECT has_function('pgr_pushrelabel', ARRAY[ 'text', 'anyarray', 'bigint' ]);
+SELECT has_function('pgr_pushrelabel', ARRAY[ 'text', 'bigint', 'anyarray' ]);
+SELECT has_function('pgr_pushrelabel', ARRAY[ 'text', 'anyarray', 'anyarray' ]);
+
+SELECT has_function('pgr_maxcardinalitymatch', ARRAY['text', 'boolean']);
+
+SELECT has_function('pgr_edgedisjointpaths', ARRAY['text', 'bigint', 'bigint', 'boolean']);
+SELECT has_function('pgr_edgedisjointpaths', ARRAY['text', 'bigint', 'anyarray', 'boolean']);
+SELECT has_function('pgr_edgedisjointpaths', ARRAY['text', 'anyarray', 'bigint', 'boolean']);
+SELECT has_function('pgr_edgedisjointpaths', ARRAY['text', 'anyarray', 'anyarray', 'boolean']);
+
+
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/common/hasnt_v2_signatures.sql b/pgtap/common/hasnt_v2_signatures.sql
new file mode 100644
index 0000000..5b4042d
--- /dev/null
+++ b/pgtap/common/hasnt_v2_signatures.sql
@@ -0,0 +1,53 @@
+
+\i setup.sql
+
+SELECT plan(30);
+
+SELECT todo_start();
+
+-- auxiliary
+SELECT hasnt_function('pgr_flipedges');
+SELECT hasnt_function('pgr_endpoint');
+SELECT hasnt_function('pgr_startpoint');
+SELECT hasnt_function('pgr_versionless');
+SELECT hasnt_function('pgr_quote_ident');
+SELECT hasnt_function('pgr_iscolumnintable');
+SELECT hasnt_function('pgr_iscolumnindexed');
+SELECT hasnt_function('pgr_gettablename');
+SELECT hasnt_function('pgr_getcolumnname');
+
+-- convenience
+SELECT hasnt_function('pgr_texttopoints');
+SELECT hasnt_function('pgr_pointstodmatrix');
+SELECT hasnt_function('pgr_flipedges');
+SELECT hasnt_function('pgr_pointstovids');
+SELECT hasnt_function('pgr_pointtoedgenode');
+
+-- deprecated signatures
+SELECT hasnt_function('pgr_dijkstra',ARRAY['text', 'integer', 'integer', 'boolean', 'boolean']);
+SELECT hasnt_function('pgr_astar',ARRAY['text', 'integer', 'integer', 'boolean', 'boolean']);
+SELECT hasnt_function('pgr_ksp',ARRAY['text', 'integer', 'integer', 'integer', 'boolean']);
+SELECT hasnt_function('pgr_drivingdistance',ARRAY['text', 'integer', 'double precision', 'boolean', 'boolean']);
+SELECT hasnt_function('pgr_bdastar',ARRAY['text', 'integer', 'integer', 'boolean', 'boolean']);
+SELECT hasnt_function('pgr_bddijkstra',ARRAY['text', 'integer', 'integer', 'boolean', 'boolean']);
+SELECT hasnt_function('pgr_tsp',ARRAY['(double precision[]', 'integer', 'integer']);
+
+-- deprecated functions
+SELECT hasnt_function('pgr_kdijkstracost');
+SELECT hasnt_function('pgr_kdijkstrapath');
+SELECT hasnt_function('pgr_gsoc_vrppdtw');
+SELECT hasnt_function('pgr_apspjohnson');
+SELECT hasnt_function('pgr_apspwarshall');
+
+-- deprecated functions max-flow
+SELECT hasnt_function('pgr_maxflowboykovkolmogorov');
+SELECT hasnt_function('pgr_maxflowpushrelable');
+SELECT hasnt_function('pgr_maxflowedmondskarp');
+SELECT hasnt_function('pgr_maximumcardinalitymatching');
+
+SELECT todo_end();
+
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/src/common/test/pgtap/isColumnInTable.test.sql b/pgtap/common/isColumnInTable.test.sql
similarity index 100%
rename from src/common/test/pgtap/isColumnInTable.test.sql
rename to pgtap/common/isColumnInTable.test.sql
diff --git a/src/common/test/pgtap/isColumnIndexed.test.sql b/pgtap/common/isColumnIndexed.test.sql
similarity index 100%
rename from src/common/test/pgtap/isColumnIndexed.test.sql
rename to pgtap/common/isColumnIndexed.test.sql
diff --git a/src/contraction/test/pgtap/contraction-types-check.sql b/pgtap/contraction/contraction-types-check.sql
similarity index 100%
rename from src/contraction/test/pgtap/contraction-types-check.sql
rename to pgtap/contraction/contraction-types-check.sql
diff --git a/src/contraction/test/pgtap/contraction_cycle_directed.sql b/pgtap/contraction/contraction_cycle_directed.sql
similarity index 100%
rename from src/contraction/test/pgtap/contraction_cycle_directed.sql
rename to pgtap/contraction/contraction_cycle_directed.sql
diff --git a/src/contraction/test/pgtap/contraction_cycle_undirected.sql b/pgtap/contraction/contraction_cycle_undirected.sql
similarity index 100%
rename from src/contraction/test/pgtap/contraction_cycle_undirected.sql
rename to pgtap/contraction/contraction_cycle_undirected.sql
diff --git a/src/contraction/test/pgtap/directed_dead_end.sql b/pgtap/contraction/directed_dead_end.sql
similarity index 100%
rename from src/contraction/test/pgtap/directed_dead_end.sql
rename to pgtap/contraction/directed_dead_end.sql
diff --git a/src/contraction/test/pgtap/directed_linear.sql b/pgtap/contraction/directed_linear.sql
similarity index 100%
rename from src/contraction/test/pgtap/directed_linear.sql
rename to pgtap/contraction/directed_linear.sql
diff --git a/src/contraction/test/pgtap/undirected_dead_end.sql b/pgtap/contraction/undirected_dead_end.sql
similarity index 100%
rename from src/contraction/test/pgtap/undirected_dead_end.sql
rename to pgtap/contraction/undirected_dead_end.sql
diff --git a/src/contraction/test/pgtap/undirected_linear.sql b/pgtap/contraction/undirected_linear.sql
similarity index 100%
rename from src/contraction/test/pgtap/undirected_linear.sql
rename to pgtap/contraction/undirected_linear.sql
diff --git a/pgtap/costMatrix/aStarCostMatrix-innerQuery.sql b/pgtap/costMatrix/aStarCostMatrix-innerQuery.sql
new file mode 100644
index 0000000..803a32b
--- /dev/null
+++ b/pgtap/costMatrix/aStarCostMatrix-innerQuery.sql
@@ -0,0 +1,19 @@
+\i setup.sql
+
+SELECT plan(87);
+
+
+SELECT has_function('pgr_astarcostmatrix',
+    ARRAY['text', 'anyarray', 'boolean', 'integer', 'double precision', 'double precision']);
+
+SELECT function_returns('pgr_astarcostmatrix',
+    ARRAY['text', 'anyarray', 'boolean', 'integer', 'double precision', 'double precision'],
+    'setof record');
+
+
+SELECT style_astar('pgr_astarcostmatrix', ',ARRAY[2, 3], true)');
+
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/costMatrix/dijkstraCostMatrix-innerQuery.sql b/pgtap/costMatrix/dijkstraCostMatrix-innerQuery.sql
new file mode 100644
index 0000000..39eb8c8
--- /dev/null
+++ b/pgtap/costMatrix/dijkstraCostMatrix-innerQuery.sql
@@ -0,0 +1,18 @@
+\i setup.sql
+
+SELECT plan(47);
+
+
+SELECT has_function('pgr_dijkstracostmatrix',
+    ARRAY['text', 'anyarray', 'boolean']);
+
+SELECT function_returns('pgr_dijkstracostmatrix',
+    ARRAY['text', 'anyarray', 'boolean'],
+    'setof record');
+
+
+SELECT style_dijkstra('pgr_dijkstracostmatrix', ',ARRAY[2, 3], true)');
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/costMatrix/withPointsCostMatrix-innerQuery.sql b/pgtap/costMatrix/withPointsCostMatrix-innerQuery.sql
new file mode 100644
index 0000000..3a720e8
--- /dev/null
+++ b/pgtap/costMatrix/withPointsCostMatrix-innerQuery.sql
@@ -0,0 +1,19 @@
+\i setup.sql
+
+SELECT plan(47);
+
+
+SELECT has_function('pgr_withpointscostmatrix',
+    ARRAY['text', 'text', 'anyarray', 'boolean', 'character']);
+
+SELECT function_returns('pgr_withpointscostmatrix',
+    ARRAY['text', 'text', 'anyarray', 'boolean', 'character'],
+    'setof record');
+
+
+SELECT style_withpoints('pgr_withpointscostmatrix', ', ARRAY[2, 3], true)');
+
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/src/apsp_johnson/test/pgtap/apsp_johnson-any-00.test.sql b/pgtap/deprecated/apspJohnson-any-00.test.sql
similarity index 100%
rename from src/apsp_johnson/test/pgtap/apsp_johnson-any-00.test.sql
rename to pgtap/deprecated/apspJohnson-any-00.test.sql
diff --git a/pgtap/deprecated/apspJohnson-innerQuery.sql b/pgtap/deprecated/apspJohnson-innerQuery.sql
new file mode 100644
index 0000000..4f991c2
--- /dev/null
+++ b/pgtap/deprecated/apspJohnson-innerQuery.sql
@@ -0,0 +1,21 @@
+\i setup.sql
+
+SELECT plan(17);
+
+
+SELECT has_function('pgr_apspjohnson',
+    ARRAY['text']);
+
+SELECT function_returns('pgr_apspjohnson',
+    ARRAY['text'],
+    'setof pgr_costresult');
+
+
+-- only works with source, target, cost
+-- no reverse_cost and no id
+-- when reverse_cost or id are added they are ignored???
+
+SELECT style_old_dijkstra_no_id_no_reverse('pgr_apspjohnson', ')');
+
+SELECT finish();
+ROLLBACK;
diff --git a/src/apsp_johnson/test/pgtap/types-check.sql b/pgtap/deprecated/apspJohnson-types-check.sql
similarity index 100%
rename from src/apsp_johnson/test/pgtap/types-check.sql
rename to pgtap/deprecated/apspJohnson-types-check.sql
diff --git a/src/apsp_johnson/test/pgtap/v2-v3-equivalence.test.sql b/pgtap/deprecated/apspJohnson-v2-v3-equivalence.test.sql
similarity index 100%
rename from src/apsp_johnson/test/pgtap/v2-v3-equivalence.test.sql
rename to pgtap/deprecated/apspJohnson-v2-v3-equivalence.test.sql
diff --git a/src/apsp_warshall/test/pgtap/apsp_warshall-any-00.test.sql b/pgtap/deprecated/apspWarshall-any-00.test.sql
similarity index 100%
rename from src/apsp_warshall/test/pgtap/apsp_warshall-any-00.test.sql
rename to pgtap/deprecated/apspWarshall-any-00.test.sql
diff --git a/pgtap/deprecated/apspWarshall-innerQuery.sql b/pgtap/deprecated/apspWarshall-innerQuery.sql
new file mode 100644
index 0000000..2da2e46
--- /dev/null
+++ b/pgtap/deprecated/apspWarshall-innerQuery.sql
@@ -0,0 +1,18 @@
+\i setup.sql
+
+SELECT plan(47);
+
+
+SELECT has_function('pgr_apspwarshall',
+    ARRAY['text', 'boolean', 'boolean']);
+
+SELECT function_returns('pgr_apspwarshall',
+    ARRAY['text', 'boolean', 'boolean'],
+    'setof pgr_costresult');
+
+SELECT style_old_dijkstra_with('pgr_apspwarshall', ', true, true)');
+SELECT style_old_dijkstra_no_rev('pgr_apspwarshall', ', true, false)');
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/src/apsp_warshall/test/pgtap/types-check.sql b/pgtap/deprecated/apspWarshall-types-check.sql
similarity index 100%
rename from src/apsp_warshall/test/pgtap/types-check.sql
rename to pgtap/deprecated/apspWarshall-types-check.sql
diff --git a/src/apsp_warshall/test/pgtap/v2-v3-equivalence-directed.test.sql b/pgtap/deprecated/apspWarshall-v2-v3-equivalence-directed.test.sql
similarity index 100%
rename from src/apsp_warshall/test/pgtap/v2-v3-equivalence-directed.test.sql
rename to pgtap/deprecated/apspWarshall-v2-v3-equivalence-directed.test.sql
diff --git a/src/apsp_warshall/test/pgtap/v2-v3-equivalence-undirected.test.sql b/pgtap/deprecated/apspWarshall-v2-v3-equivalence-undirected.test.sql
similarity index 100%
rename from src/apsp_warshall/test/pgtap/v2-v3-equivalence-undirected.test.sql
rename to pgtap/deprecated/apspWarshall-v2-v3-equivalence-undirected.test.sql
diff --git a/src/astar/test/pgtap/astarV2.0-compare-dijkstra.test.sql b/pgtap/deprecated/astarV2.0-compare-dijkstra.test.sql
similarity index 100%
rename from src/astar/test/pgtap/astarV2.0-compare-dijkstra.test.sql
rename to pgtap/deprecated/astarV2.0-compare-dijkstra.test.sql
diff --git a/pgtap/deprecated/astarV2.0-innerQuery.sql b/pgtap/deprecated/astarV2.0-innerQuery.sql
new file mode 100644
index 0000000..6a631d0
--- /dev/null
+++ b/pgtap/deprecated/astarV2.0-innerQuery.sql
@@ -0,0 +1,22 @@
+\i setup.sql
+
+SELECT plan(87);
+
+
+SELECT has_function('pgr_astar',
+    ARRAY['text', 'integer', 'integer', 'boolean', 'boolean']);
+
+SELECT function_returns('pgr_astar',
+    ARRAY['text', 'integer', 'integer', 'boolean', 'boolean'],
+    'setof pgr_costresult');
+
+
+
+-- ONE TO ONE
+--with reverse cost
+SELECT style_old_astar_with('pgr_astar', ',2,3, true, true)');
+SELECT style_old_astar_no_rev('pgr_astar', ',2,3, true, false)');
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/src/astar/test/pgtap/astarV2.0-types-check.sql b/pgtap/deprecated/astarV2.0-types-check.sql
similarity index 100%
rename from src/astar/test/pgtap/astarV2.0-types-check.sql
rename to pgtap/deprecated/astarV2.0-types-check.sql
diff --git a/src/astar/test/pgtap/astarV2.0-types-check2.sql b/pgtap/deprecated/astarV2.0-types-check2.sql
similarity index 100%
rename from src/astar/test/pgtap/astarV2.0-types-check2.sql
rename to pgtap/deprecated/astarV2.0-types-check2.sql
diff --git a/pgtap/deprecated/bd_astar-innerQuery.sql b/pgtap/deprecated/bd_astar-innerQuery.sql
new file mode 100644
index 0000000..754acf0
--- /dev/null
+++ b/pgtap/deprecated/bd_astar-innerQuery.sql
@@ -0,0 +1,17 @@
+\i setup.sql
+
+SELECT plan(87);
+
+SELECT has_function('pgr_bdastar',
+    ARRAY['text', 'integer', 'integer', 'boolean', 'boolean']);
+
+SELECT function_returns('pgr_bdastar',
+    ARRAY['text', 'integer', 'integer', 'boolean', 'boolean'],
+    'setof pgr_costresult');
+
+SELECT style_old_astar_with('pgr_bdastar', ', 2, 3, true, true)');
+SELECT style_old_astar_no_rev('pgr_bdastar', ', 2, 3, true, false)');
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/deprecated/bd_astar-types-check.sql b/pgtap/deprecated/bd_astar-types-check.sql
new file mode 100644
index 0000000..35023a9
--- /dev/null
+++ b/pgtap/deprecated/bd_astar-types-check.sql
@@ -0,0 +1,162 @@
+
+\i setup.sql
+-- TESTING DOCUMNETATIONS INFORMATION
+
+SELECT plan(33);
+
+-- RECEIVES 5 PARAMETERS
+
+SELECT has_function('pgr_bdastar',ARRAY['text', 'integer', 'integer', 'boolean', 'boolean']);
+SELECT function_returns('pgr_bdastar', ARRAY['text', 'integer', 'integer', 'boolean', 'boolean'], 'setof pgr_costresult','Returns set of costResult[]');
+
+
+-- CHECKING THE INNER QUERY
+
+
+
+PREPARE q1 AS
+SELECT * FROM pgr_bdastar(
+    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, x1::FLOAT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table',
+    2, 3, true, true);
+SELECT lives_ok('q1', 'edges query accepts INTEGER & FLOAT');
+
+
+
+SELECT throws_ok(
+    'SELECT * FROM pgr_bdastar(
+        ''SELECT id::BIGINT, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, x1::FLOAT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
+        2, 3, true, true)');
+SELECT throws_ok(
+    'SELECT * FROM pgr_bdastar(
+        ''SELECT id::SMALLINT, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, x1::FLOAT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
+        2, 3, true, true)');
+
+SELECT throws_ok(
+    'SELECT * FROM pgr_bdastar(
+        ''SELECT id::INTEGER, source::BIGINT, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, x1::FLOAT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
+        2, 3, true, true)');
+SELECT throws_ok(
+    'SELECT * FROM pgr_bdastar(
+        ''SELECT id::INTEGER, source::SMALLINT, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, x1::FLOAT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
+        2, 3, true, true)');
+
+SELECT throws_ok(
+    'SELECT * FROM pgr_bdastar(
+        ''SELECT id::INTEGER, source::INTEGER, target::BIGINT, cost::FLOAT, reverse_cost::FLOAT, x1::FLOAT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
+        2, 3, true, true)');
+SELECT throws_ok(
+    'SELECT * FROM pgr_bdastar(
+        ''SELECT id::INTEGER, source::INTEGER, target::SMALLINT, cost::FLOAT, reverse_cost::FLOAT, x1::FLOAT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
+        2, 3, true, true)');
+
+SELECT throws_ok(
+    'SELECT * FROM pgr_bdastar(
+        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::BIGINT, reverse_cost::FLOAT, x1::FLOAT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
+        2, 3, true, true)');
+SELECT throws_ok(
+    'SELECT * FROM pgr_bdastar(
+        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::INTEGER, reverse_cost::FLOAT, x1::FLOAT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
+        2, 3, true, true)');
+SELECT throws_ok(
+    'SELECT * FROM pgr_bdastar(
+        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::SMALLINT, reverse_cost::FLOAT, x1::FLOAT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
+        2, 3, true, true)');
+SELECT throws_ok(
+    'SELECT * FROM pgr_bdastar(
+        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::REAL, reverse_cost::FLOAT, x1::FLOAT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
+        2, 3, true, true)');
+
+SELECT throws_ok(
+    'SELECT * FROM pgr_bdastar(
+        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::BIGINT, x1::FLOAT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
+        2, 3, true, true)');
+SELECT throws_ok(
+    'SELECT * FROM pgr_bdastar(
+        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::INTEGER, x1::FLOAT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
+        2, 3, true, true)');
+SELECT throws_ok(
+    'SELECT * FROM pgr_bdastar(
+        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::SMALLINT, x1::FLOAT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
+        2, 3, true, true)');
+SELECT throws_ok(
+    'SELECT * FROM pgr_bdastar(
+        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::REAL, x1::FLOAT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
+        2, 3, true, true)');
+
+-- x1
+SELECT throws_ok(
+    'SELECT * FROM pgr_bdastar(
+        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, x1::BIGINT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
+        2, 3, true, true)');
+SELECT throws_ok(
+    'SELECT * FROM pgr_bdastar(
+        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, x1::INTEGER, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
+        2, 3, true, true)');
+SELECT throws_ok(
+    'SELECT * FROM pgr_bdastar(
+        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, x1::SMALLINT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
+        2, 3, true, true)');
+SELECT throws_ok(
+    'SELECT * FROM pgr_bdastar(
+        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, x1::REAL, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
+        2, 3, true, true)');
+
+-- x2
+SELECT throws_ok(
+    'SELECT * FROM pgr_bdastar(
+        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, x2::BIGINT, y1::FLOAT, x1::FLOAT, y2::FLOAT FROM edge_table'',
+        2, 3, true, true)');
+SELECT throws_ok(
+    'SELECT * FROM pgr_bdastar(
+        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, x2::INTEGER, y1::FLOAT, x1::FLOAT, y2::FLOAT FROM edge_table'',
+        2, 3, true, true)');
+SELECT throws_ok(
+    'SELECT * FROM pgr_bdastar(
+        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, x2::SMALLINT, y1::FLOAT, x1::FLOAT, y2::FLOAT FROM edge_table'',
+        2, 3, true, true)');
+SELECT throws_ok(
+    'SELECT * FROM pgr_bdastar(
+        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, x2::REAL, y1::FLOAT, x1::FLOAT, y2::FLOAT FROM edge_table'',
+        2, 3, true, true)');
+
+
+-- y1
+SELECT throws_ok(
+    'SELECT * FROM pgr_bdastar(
+        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, y1::BIGINT, x1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
+        2, 3, true, true)');
+SELECT throws_ok(
+    'SELECT * FROM pgr_bdastar(
+        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, y1::INTEGER, x1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
+        2, 3, true, true)');
+SELECT throws_ok(
+    'SELECT * FROM pgr_bdastar(
+        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, y1::SMALLINT, x1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
+        2, 3, true, true)');
+SELECT throws_ok(
+    'SELECT * FROM pgr_bdastar(
+        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, y1::REAL, x1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
+        2, 3, true, true)');
+
+-- y2
+SELECT throws_ok(
+    'SELECT * FROM pgr_bdastar(
+        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, y2::BIGINT, y1::FLOAT, x1::FLOAT, x2::FLOAT FROM edge_table'',
+        2, 3, true, true)');
+SELECT throws_ok(
+    'SELECT * FROM pgr_bdastar(
+        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, y2::INTEGER, y1::FLOAT, x1::FLOAT, x2::FLOAT FROM edge_table'',
+        2, 3, true, true)');
+SELECT throws_ok(
+    'SELECT * FROM pgr_bdastar(
+        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, y2::SMALLINT, y1::FLOAT, x1::FLOAT, x2::FLOAT FROM edge_table'',
+        2, 3, true, true)');
+SELECT throws_ok(
+    'SELECT * FROM pgr_bdastar(
+        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, y2::REAL, y1::FLOAT, x1::FLOAT, x2::FLOAT FROM edge_table'',
+        2, 3, true, true)');
+
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/deprecated/bd_dijkstra-innerQuery.sql b/pgtap/deprecated/bd_dijkstra-innerQuery.sql
new file mode 100644
index 0000000..b3d30fa
--- /dev/null
+++ b/pgtap/deprecated/bd_dijkstra-innerQuery.sql
@@ -0,0 +1,22 @@
+\i setup.sql
+
+SELECT plan(47);
+
+
+SELECT has_function('pgr_bddijkstra',
+    ARRAY['text', 'integer', 'integer', 'boolean', 'boolean']);
+
+SELECT function_returns('pgr_bddijkstra',
+    ARRAY['text', 'integer', 'integer', 'boolean', 'boolean'],
+    'setof pgr_costresult');
+
+
+
+--with reverse cost
+SELECT style_old_dijkstra_with('pgr_bddijkstra', ',2,3, true, true)');
+SELECT style_old_dijkstra_no_rev('pgr_bddijkstra', ',2,3, true, false)');
+
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/src/bd_dijkstra/test/pgtap/bdDijkstra-types-check.sql b/pgtap/deprecated/bd_dijkstra-types-check.sql
similarity index 100%
rename from src/bd_dijkstra/test/pgtap/bdDijkstra-types-check.sql
rename to pgtap/deprecated/bd_dijkstra-types-check.sql
diff --git a/src/bd_dijkstra/test/pgtap/v2-bdDijkstra-compare-dijkstra.sql b/pgtap/deprecated/bd_dijkstra-v2-compare-dijkstra.sql
similarity index 100%
rename from src/bd_dijkstra/test/pgtap/v2-bdDijkstra-compare-dijkstra.sql
rename to pgtap/deprecated/bd_dijkstra-v2-compare-dijkstra.sql
diff --git a/src/convenience/test/pgtap/flipEdges-types-check.sql b/pgtap/deprecated/convenience-flipEdges-types-check.sql
similarity index 100%
rename from src/convenience/test/pgtap/flipEdges-types-check.sql
rename to pgtap/deprecated/convenience-flipEdges-types-check.sql
diff --git a/src/convenience/test/pgtap/pointToEdgeNode-types-check.sql b/pgtap/deprecated/convenience-pointToEdgeNode-types-check.sql
similarity index 100%
rename from src/convenience/test/pgtap/pointToEdgeNode-types-check.sql
rename to pgtap/deprecated/convenience-pointToEdgeNode-types-check.sql
diff --git a/src/convenience/test/pgtap/pointsToDMatrix-types-check.sql b/pgtap/deprecated/convenience-pointsToDMatrix-types-check.sql
similarity index 100%
rename from src/convenience/test/pgtap/pointsToDMatrix-types-check.sql
rename to pgtap/deprecated/convenience-pointsToDMatrix-types-check.sql
diff --git a/src/convenience/test/pgtap/pointsToVids-types-check.sql b/pgtap/deprecated/convenience-pointsToVids-types-check.sql
similarity index 100%
rename from src/convenience/test/pgtap/pointsToVids-types-check.sql
rename to pgtap/deprecated/convenience-pointsToVids-types-check.sql
diff --git a/src/convenience/test/pgtap/textToPoints-types-check.sql b/pgtap/deprecated/convenience-textToPoints-types-check.sql
similarity index 100%
rename from src/convenience/test/pgtap/textToPoints-types-check.sql
rename to pgtap/deprecated/convenience-textToPoints-types-check.sql
diff --git a/src/convenience/test/pgtap/vidsToDMatrix-types-check.sql b/pgtap/deprecated/convenience-vidsToDMatrix-types-check.sql
similarity index 100%
rename from src/convenience/test/pgtap/vidsToDMatrix-types-check.sql
rename to pgtap/deprecated/convenience-vidsToDMatrix-types-check.sql
diff --git a/src/dijkstra/test/pgtap/v2-equi-v3-directed-N-reverse.test.sql b/pgtap/deprecated/dijkstra-v2-equi-v3-directed-N-reverse.test.sql
similarity index 100%
rename from src/dijkstra/test/pgtap/v2-equi-v3-directed-N-reverse.test.sql
rename to pgtap/deprecated/dijkstra-v2-equi-v3-directed-N-reverse.test.sql
diff --git a/src/dijkstra/test/pgtap/v2-equi-v3-directed-W-reverse.test.sql b/pgtap/deprecated/dijkstra-v2-equi-v3-directed-W-reverse.test.sql
similarity index 100%
rename from src/dijkstra/test/pgtap/v2-equi-v3-directed-W-reverse.test.sql
rename to pgtap/deprecated/dijkstra-v2-equi-v3-directed-W-reverse.test.sql
diff --git a/src/dijkstra/test/pgtap/v2-equi-v3-undirected-N-reverse.test.sql b/pgtap/deprecated/dijkstra-v2-equi-v3-undirected-N-reverse.test.sql
similarity index 100%
rename from src/dijkstra/test/pgtap/v2-equi-v3-undirected-N-reverse.test.sql
rename to pgtap/deprecated/dijkstra-v2-equi-v3-undirected-N-reverse.test.sql
diff --git a/src/dijkstra/test/pgtap/v2-equi-v3-undirected-W-reverse.test.sql b/pgtap/deprecated/dijkstra-v2-equi-v3-undirected-W-reverse.test.sql
similarity index 100%
rename from src/dijkstra/test/pgtap/v2-equi-v3-undirected-W-reverse.test.sql
rename to pgtap/deprecated/dijkstra-v2-equi-v3-undirected-W-reverse.test.sql
diff --git a/pgtap/deprecated/dijkstra-v2-innerQuery.sql b/pgtap/deprecated/dijkstra-v2-innerQuery.sql
new file mode 100644
index 0000000..13909ba
--- /dev/null
+++ b/pgtap/deprecated/dijkstra-v2-innerQuery.sql
@@ -0,0 +1,21 @@
+\i setup.sql
+
+SELECT plan(47);
+
+
+SELECT has_function('pgr_dijkstra',
+    ARRAY['text', 'integer', 'integer', 'boolean', 'boolean']);
+
+SELECT function_returns('pgr_dijkstra',
+    ARRAY['text', 'integer', 'integer', 'boolean', 'boolean'],
+    'setof pgr_costresult');
+
+
+
+SELECT style_old_dijkstra_with('pgr_dijkstra', ',2,3, true, true)');
+SELECT style_old_dijkstra_no_rev('pgr_dijkstra', ',2,3, true, false)');
+
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/src/dijkstra/test/pgtap/dijkstraV2-types-check.sql b/pgtap/deprecated/dijkstraV2-types-check.sql
similarity index 100%
rename from src/dijkstra/test/pgtap/dijkstraV2-types-check.sql
rename to pgtap/deprecated/dijkstraV2-types-check.sql
diff --git a/pgtap/deprecated/drivingDistance-v2-innerQuery.sql b/pgtap/deprecated/drivingDistance-v2-innerQuery.sql
new file mode 100644
index 0000000..47fa9e5
--- /dev/null
+++ b/pgtap/deprecated/drivingDistance-v2-innerQuery.sql
@@ -0,0 +1,21 @@
+\i setup.sql
+
+SELECT plan(52);
+
+
+SELECT has_function('pgr_drivingdistance',
+    ARRAY['text', 'bigint', 'double precision', 'boolean', 'boolean']);
+
+SELECT function_returns('pgr_drivingdistance',
+    ARRAY['text', 'bigint', 'double precision', 'boolean', 'boolean'],
+    'setof pgr_costresult');
+
+
+-- ONE SOURCE
+SELECT style_old_dijkstra_with('pgr_drivingdistance', ',2,3, true, true)');
+SELECT style_old_dijkstra_with('pgr_drivingdistance', ',2,3, true, false)');
+
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/src/kdijkstra/test/pgtap/kdijkstra-any-01.test.sql b/pgtap/deprecated/kdijkstra-any-01.test.sql
similarity index 100%
rename from src/kdijkstra/test/pgtap/kdijkstra-any-01.test.sql
rename to pgtap/deprecated/kdijkstra-any-01.test.sql
diff --git a/src/kdijkstra/test/pgtap/issue229.test.sql b/pgtap/deprecated/kdijkstra-issue229.test.sql
similarity index 100%
rename from src/kdijkstra/test/pgtap/issue229.test.sql
rename to pgtap/deprecated/kdijkstra-issue229.test.sql
diff --git a/src/kdijkstra/test/pgtap/issue333.test.sql b/pgtap/deprecated/kdijkstra-issue333.test.sql
similarity index 100%
rename from src/kdijkstra/test/pgtap/issue333.test.sql
rename to pgtap/deprecated/kdijkstra-issue333.test.sql
diff --git a/src/kdijkstra/test/pgtap/compare-kdijstraCost-dijkstraCost.test.sql b/pgtap/deprecated/kdijkstraCost-dijkstraCost-compare.test.sql
similarity index 100%
rename from src/kdijkstra/test/pgtap/compare-kdijstraCost-dijkstraCost.test.sql
rename to pgtap/deprecated/kdijkstraCost-dijkstraCost-compare.test.sql
diff --git a/src/kdijkstra/test/pgtap/errors-exceptions-cost.test.sql b/pgtap/deprecated/kdijkstraCost-errors-exceptions-cost.test.sql
similarity index 100%
rename from src/kdijkstra/test/pgtap/errors-exceptions-cost.test.sql
rename to pgtap/deprecated/kdijkstraCost-errors-exceptions-cost.test.sql
diff --git a/pgtap/deprecated/kdijkstraCost-innerquery.sql b/pgtap/deprecated/kdijkstraCost-innerquery.sql
new file mode 100644
index 0000000..fd29edd
--- /dev/null
+++ b/pgtap/deprecated/kdijkstraCost-innerquery.sql
@@ -0,0 +1,21 @@
+\i setup.sql
+
+SELECT plan(47);
+
+
+SELECT has_function('pgr_kdijkstracost',
+    ARRAY['text', 'integer', 'integer[]', 'boolean', 'boolean']);
+
+SELECT function_returns('pgr_kdijkstracost',
+    ARRAY['text', 'integer', 'integer[]', 'boolean', 'boolean'],
+    'setof pgr_costresult');
+
+
+
+-- ONE TO MANY
+SELECT style_old_dijkstra_with('pgr_kdijkstracost', ',2,ARRAY[3], true, true)');
+SELECT style_old_dijkstra_no_rev('pgr_kdijkstracost', ',2,ARRAY[3], true, false)');
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/src/kdijkstra/test/pgtap/compare-kdijstraPath-dijkstra.test.sql b/pgtap/deprecated/kdijkstraPath-dijkstra-compare.test.sql
similarity index 100%
rename from src/kdijkstra/test/pgtap/compare-kdijstraPath-dijkstra.test.sql
rename to pgtap/deprecated/kdijkstraPath-dijkstra-compare.test.sql
diff --git a/src/kdijkstra/test/pgtap/errors-exceptions-path.test.sql b/pgtap/deprecated/kdijkstraPath-errors-exceptions-path.test.sql
similarity index 100%
rename from src/kdijkstra/test/pgtap/errors-exceptions-path.test.sql
rename to pgtap/deprecated/kdijkstraPath-errors-exceptions-path.test.sql
diff --git a/pgtap/deprecated/kdijkstraPath-innerquery.sql b/pgtap/deprecated/kdijkstraPath-innerquery.sql
new file mode 100644
index 0000000..2dc9808
--- /dev/null
+++ b/pgtap/deprecated/kdijkstraPath-innerquery.sql
@@ -0,0 +1,21 @@
+\i setup.sql
+
+SELECT plan(47);
+
+
+SELECT has_function('pgr_kdijkstrapath',
+    ARRAY['text', 'integer', 'integer[]', 'boolean', 'boolean']);
+
+SELECT function_returns('pgr_kdijkstrapath',
+    ARRAY['text', 'integer', 'integer[]', 'boolean', 'boolean'],
+    'setof pgr_costresult3');
+
+
+-- ONE TO MANY
+SELECT style_old_dijkstra_with('pgr_kdijkstrapath', ',2,ARRAY[3], true, true)');
+SELECT style_old_dijkstra_no_rev('pgr_kdijkstrapath', ',2,ARRAY[3], true, false)');
+
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/deprecated/maxflowboykovkolmogorov-group-innerQuery.sql b/pgtap/deprecated/maxflowboykovkolmogorov-group-innerQuery.sql
new file mode 100644
index 0000000..67c1682
--- /dev/null
+++ b/pgtap/deprecated/maxflowboykovkolmogorov-group-innerQuery.sql
@@ -0,0 +1,36 @@
+\i setup.sql
+
+SELECT plan(188);
+
+
+SELECT has_function('pgr_maxflowboykovkolmogorov',
+    ARRAY['text', 'bigint', 'bigint']);
+SELECT has_function('pgr_maxflowboykovkolmogorov',
+    ARRAY['text', 'bigint', 'anyarray']);
+SELECT has_function('pgr_maxflowboykovkolmogorov',
+    ARRAY['text', 'anyarray', 'bigint']);
+SELECT has_function('pgr_maxflowboykovkolmogorov',
+    ARRAY['text', 'anyarray', 'anyarray']);
+
+SELECT function_returns('pgr_maxflowboykovkolmogorov',
+    ARRAY['text', 'bigint', 'bigint'],
+    'setof record');
+SELECT function_returns('pgr_maxflowboykovkolmogorov',
+    ARRAY['text', 'bigint', 'anyarray'],
+    'setof record');
+SELECT function_returns('pgr_maxflowboykovkolmogorov',
+    ARRAY['text', 'anyarray', 'bigint'],
+    'setof record');
+SELECT function_returns('pgr_maxflowboykovkolmogorov',
+    ARRAY['text', 'anyarray', 'anyarray'],
+    'setof record');
+
+
+-- ONLY WORKS ON DIRECTED GRAPH
+SELECT style_max_flow('pgr_maxflowboykovkolmogorov', ', 2, 3)');
+SELECT style_max_flow('pgr_maxflowboykovkolmogorov', ', 2, ARRAY[3])');
+SELECT style_max_flow('pgr_maxflowboykovkolmogorov', ', ARRAY[2], 3)');
+SELECT style_max_flow('pgr_maxflowboykovkolmogorov', ', ARRAY[2], ARRAY[3])');
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/deprecated/maxflowboykovkolmogorov-types-check.sql b/pgtap/deprecated/maxflowboykovkolmogorov-types-check.sql
new file mode 100644
index 0000000..045cbdc
--- /dev/null
+++ b/pgtap/deprecated/maxflowboykovkolmogorov-types-check.sql
@@ -0,0 +1,139 @@
+\i setup.sql
+
+SELECT plan(21);
+
+SELECT has_function('pgr_maxflowboykovkolmogorov');
+
+SELECT has_function('pgr_maxflowboykovkolmogorov', ARRAY[ 'text', 'bigint', 'bigint' ]);
+SELECT has_function('pgr_maxflowboykovkolmogorov', ARRAY[ 'text', 'anyarray', 'bigint' ]);
+SELECT has_function('pgr_maxflowboykovkolmogorov', ARRAY[ 'text', 'bigint', 'anyarray' ]);
+SELECT has_function('pgr_maxflowboykovkolmogorov', ARRAY[ 'text', 'anyarray', 'anyarray' ]);
+
+SELECT function_returns('pgr_maxflowboykovkolmogorov', ARRAY[ 'text', 'bigint', 'bigint' ], 'setof record');
+SELECT function_returns('pgr_maxflowboykovkolmogorov', ARRAY[ 'text', 'bigint', 'anyarray' ], 'setof record');
+SELECT function_returns('pgr_maxflowboykovkolmogorov', ARRAY[ 'text', 'anyarray', 'bigint' ], 'setof record');
+SELECT function_returns('pgr_maxflowboykovkolmogorov', ARRAY[ 'text', 'anyarray', 'anyarray' ], 'setof record');
+
+-- testing column names
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_maxflowboykovkolmogorov'$$,
+    $$SELECT  '{"edges_sql","source_vertex","sink_vertex","seq","edge_id","source","target","flow","residual_capacity"}'::TEXT[] $$
+);
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_maxflowboykovkolmogorov'$$,
+    $$SELECT  '{"edges_sql","source_vertex","sink_vertices","seq","edge_id","source","target","flow","residual_capacity"}'::TEXT[] $$
+);
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_maxflowboykovkolmogorov'$$,
+    $$SELECT  '{"edges_sql","source_vertices","sink_vertex","seq","edge_id","source","target","flow","residual_capacity"}'::TEXT[] $$
+);
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_maxflowboykovkolmogorov'$$,
+    $$SELECT  '{"edges_sql","source_vertices","sink_vertices","seq","edge_id","source","target","flow","residual_capacity"}'::TEXT[] $$
+);
+
+
+-- pgr_maxFlowBoykovKolmogorov works
+PREPARE t1 AS
+SELECT * FROM pgr_maxFlowBoykovKolmogorov(
+    'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+    3, 5);
+PREPARE t2 AS
+SELECT * FROM pgr_maxFlowBoykovKolmogorov(
+    'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+    3, ARRAY[5]);
+PREPARE t3 AS
+SELECT * FROM pgr_maxFlowBoykovKolmogorov(
+    'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+    ARRAY[3], 5);
+PREPARE t4 AS
+SELECT * FROM pgr_maxFlowBoykovKolmogorov(
+    'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+    3, ARRAY[5]);
+
+SELECT lives_ok('t1','pgr_maxFlowBoykovKolmogorov(one to One)');
+SELECT lives_ok('t2','pgr_maxFlowBoykovKolmogorov(one to Many)');
+SELECT lives_ok('t3','pgr_maxFlowBoykovKolmogorov(Many to One)');
+SELECT lives_ok('t4','pgr_maxFlowBoykovKolmogorov(Many to Many)');
+
+
+-- preparing for testing return types
+PREPARE all_return AS
+SELECT  
+    'integer'::text AS t1,
+    'bigint'::text AS t2,
+    'bigint'::text AS t3,
+    'bigint'::text AS t4,
+    'bigint'::text AS t5,
+    'bigint'::text AS t6;
+
+
+PREPARE q1 AS
+SELECT pg_typeof(seq)::text AS t1,
+    pg_typeof(edge_id)::text AS t2,
+    pg_typeof(source)::text as t3,
+    pg_typeof(target)::text as t4,
+    pg_typeof(flow)::text AS t5,
+    pg_typeof(residual_capacity)::text AS t6
+    FROM (
+        SELECT * FROM pgr_maxFlowBoykovKolmogorov(
+            'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+        3, 5
+        ) ) AS a
+    limit 1;
+
+
+PREPARE q2 AS
+SELECT pg_typeof(seq)::text AS t1,
+    pg_typeof(edge_id)::text AS t2,
+    pg_typeof(source)::text as t3,
+    pg_typeof(target)::text as t4,
+    pg_typeof(flow)::text AS t5,
+    pg_typeof(residual_capacity)::text AS t6
+    FROM (
+        SELECT * FROM pgr_maxFlowBoykovKolmogorov(
+            'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+        3, ARRAY[5]
+        ) ) AS a
+    limit 1
+;
+
+PREPARE q3 AS
+SELECT pg_typeof(seq)::text AS t1,
+    pg_typeof(edge_id)::text AS t2,
+    pg_typeof(source)::text as t3,
+    pg_typeof(target)::text as t4,
+    pg_typeof(flow)::text AS t5,
+    pg_typeof(residual_capacity)::text AS t6
+    FROM (
+        SELECT * FROM pgr_maxFlowBoykovKolmogorov(
+            'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+        ARRAY[3], 5
+        ) ) AS a
+    limit 1;
+
+
+PREPARE q4 AS
+SELECT pg_typeof(seq)::text AS t1,
+    pg_typeof(edge_id)::text AS t2,
+    pg_typeof(source)::text as t3,
+    pg_typeof(target)::text as t4,
+    pg_typeof(flow)::text AS t5,
+    pg_typeof(residual_capacity)::text AS t6
+    FROM (
+        SELECT * FROM pgr_maxFlowBoykovKolmogorov(
+            'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+        ARRAY[3], ARRAY[5]
+        ) ) AS a
+    limit 1
+;
+
+-- testing return types
+SELECT set_eq('q1', 'all_return','1 to 1: Expected returning, columns names & types');
+SELECT set_eq('q2', 'all_return','1 to many: Expected returning, columns names & types');
+SELECT set_eq('q3', 'all_return','many to 1: Expected returning, columns names & types');
+SELECT set_eq('q4', 'all_return','many to many: Expected returning, columns names & types');
+
+
+SELECT * FROM finish();
+ROLLBACK;
diff --git a/pgtap/deprecated/maxflowedmondskarp-group-innerQuery.sql b/pgtap/deprecated/maxflowedmondskarp-group-innerQuery.sql
new file mode 100644
index 0000000..fa4fff0
--- /dev/null
+++ b/pgtap/deprecated/maxflowedmondskarp-group-innerQuery.sql
@@ -0,0 +1,36 @@
+\i setup.sql
+
+SELECT plan(188);
+
+
+SELECT has_function('pgr_maxflowedmondskarp',
+    ARRAY['text', 'bigint', 'bigint']);
+SELECT has_function('pgr_maxflowedmondskarp',
+    ARRAY['text', 'bigint', 'anyarray']);
+SELECT has_function('pgr_maxflowedmondskarp',
+    ARRAY['text', 'anyarray', 'bigint']);
+SELECT has_function('pgr_maxflowedmondskarp',
+    ARRAY['text', 'anyarray', 'anyarray']);
+
+SELECT function_returns('pgr_maxflowedmondskarp',
+    ARRAY['text', 'bigint', 'bigint'],
+    'setof record');
+SELECT function_returns('pgr_maxflowedmondskarp',
+    ARRAY['text', 'bigint', 'anyarray'],
+    'setof record');
+SELECT function_returns('pgr_maxflowedmondskarp',
+    ARRAY['text', 'anyarray', 'bigint'],
+    'setof record');
+SELECT function_returns('pgr_maxflowedmondskarp',
+    ARRAY['text', 'anyarray', 'anyarray'],
+    'setof record');
+
+
+-- ONLY WORKS ON DIRECTED GRAPH
+SELECT style_max_flow('pgr_maxflowedmondskarp', ', 2, 3)');
+SELECT style_max_flow('pgr_maxflowedmondskarp', ', 2, ARRAY[3])');
+SELECT style_max_flow('pgr_maxflowedmondskarp', ', ARRAY[2], 3)');
+SELECT style_max_flow('pgr_maxflowedmondskarp', ', ARRAY[2], ARRAY[3])');
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/deprecated/maxflowedmondskarp-types-check.sql b/pgtap/deprecated/maxflowedmondskarp-types-check.sql
new file mode 100644
index 0000000..48b98c8
--- /dev/null
+++ b/pgtap/deprecated/maxflowedmondskarp-types-check.sql
@@ -0,0 +1,143 @@
+\i setup.sql
+
+SELECT plan(21);
+
+SELECT has_function('pgr_maxflowedmondskarp');
+
+SELECT has_function('pgr_maxflowedmondskarp', ARRAY[ 'text', 'bigint', 'bigint' ]);
+SELECT has_function('pgr_maxflowedmondskarp', ARRAY[ 'text', 'anyarray', 'bigint' ]);
+SELECT has_function('pgr_maxflowedmondskarp', ARRAY[ 'text', 'bigint', 'anyarray' ]);
+SELECT has_function('pgr_maxflowedmondskarp', ARRAY[ 'text', 'anyarray', 'anyarray' ]);
+
+SELECT function_returns('pgr_maxflowedmondskarp', ARRAY[ 'text', 'bigint', 'bigint' ], 'setof record');
+SELECT function_returns('pgr_maxflowedmondskarp', ARRAY[ 'text', 'bigint', 'anyarray' ], 'setof record');
+SELECT function_returns('pgr_maxflowedmondskarp', ARRAY[ 'text', 'anyarray', 'bigint' ], 'setof record');
+SELECT function_returns('pgr_maxflowedmondskarp', ARRAY[ 'text', 'anyarray', 'anyarray' ], 'setof record');
+
+-- testing column names
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_maxflowedmondskarp'$$,
+    $$SELECT  '{"edges_sql","source_vertex","sink_vertex","seq","edge_id","source","target","flow","residual_capacity"}'::TEXT[] $$
+);
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_maxflowedmondskarp'$$,
+    $$SELECT  '{"edges_sql","source_vertex","sink_vertices","seq","edge_id","source","target","flow","residual_capacity"}'::TEXT[] $$
+);
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_maxflowedmondskarp'$$,
+    $$SELECT  '{"edges_sql","source_vertices","sink_vertex","seq","edge_id","source","target","flow","residual_capacity"}'::TEXT[] $$
+);
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_maxflowedmondskarp'$$,
+    $$SELECT  '{"edges_sql","source_vertices","sink_vertices","seq","edge_id","source","target","flow","residual_capacity"}'::TEXT[] $$
+);
+
+
+-- pgr_maxflowedmondskarp works
+PREPARE t1 AS
+SELECT * FROM pgr_maxflowedmondskarp(
+    'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+    3, 5
+);
+PREPARE t2 AS
+SELECT * FROM pgr_maxflowedmondskarp(
+    'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+    3, ARRAY[5]
+);
+PREPARE t3 AS
+SELECT * FROM pgr_maxflowedmondskarp(
+    'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+    ARRAY[3], 5
+);
+PREPARE t4 AS
+SELECT * FROM pgr_maxflowedmondskarp(
+    'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+    ARRAY[3], ARRAY[5]
+);
+
+SELECT lives_ok('t1','pgr_pgr_maxflowedmondskarp(one to one)');
+SELECT lives_ok('t2','pgr_pgr_maxflowedmondskarp(one to many)');
+SELECT lives_ok('t3','pgr_pgr_maxflowedmondskarp(many to one)');
+SELECT lives_ok('t4','pgr_pgr_maxflowedmondskarp(many to many)');
+
+
+-- preparing for testing return types
+PREPARE all_return AS
+SELECT  
+    'integer'::text AS t1,
+    'bigint'::text AS t2,
+    'bigint'::text AS t3,
+    'bigint'::text AS t4,
+    'bigint'::text AS t5,
+    'bigint'::text AS t6;
+
+
+PREPARE q1 AS
+SELECT pg_typeof(seq)::text AS t1,
+    pg_typeof(edge_id)::text AS t2,
+    pg_typeof(source)::text as t3,
+    pg_typeof(target)::text as t4,
+    pg_typeof(flow)::text AS t5,
+    pg_typeof(residual_capacity)::text AS t6
+    FROM (
+        SELECT * FROM pgr_maxflowedmondskarp(
+            'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+        3, 5
+        ) ) AS a
+    limit 1;
+
+
+PREPARE q2 AS
+SELECT pg_typeof(seq)::text AS t1,
+    pg_typeof(edge_id)::text AS t2,
+    pg_typeof(source)::text as t3,
+    pg_typeof(target)::text as t4,
+    pg_typeof(flow)::text AS t5,
+    pg_typeof(residual_capacity)::text AS t6
+    FROM (
+        SELECT * FROM pgr_maxflowedmondskarp(
+            'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+        3, ARRAY[5]
+        ) ) AS a
+    limit 1
+;
+
+PREPARE q3 AS
+SELECT pg_typeof(seq)::text AS t1,
+    pg_typeof(edge_id)::text AS t2,
+    pg_typeof(source)::text as t3,
+    pg_typeof(target)::text as t4,
+    pg_typeof(flow)::text AS t5,
+    pg_typeof(residual_capacity)::text AS t6
+    FROM (
+        SELECT * FROM pgr_maxflowedmondskarp(
+            'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+        ARRAY[3], 5
+        ) ) AS a
+    limit 1;
+
+
+PREPARE q4 AS
+SELECT pg_typeof(seq)::text AS t1,
+    pg_typeof(edge_id)::text AS t2,
+    pg_typeof(source)::text as t3,
+    pg_typeof(target)::text as t4,
+    pg_typeof(flow)::text AS t5,
+    pg_typeof(residual_capacity)::text AS t6
+    FROM (
+        SELECT * FROM pgr_maxflowedmondskarp(
+            'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+        ARRAY[3], ARRAY[5]
+        ) ) AS a
+    limit 1
+;
+
+-- testing return types
+SELECT set_eq('q1', 'all_return','1 to 1: Expected returning, columns names & types');
+SELECT set_eq('q2', 'all_return','1 to many: Expected returning, columns names & types');
+SELECT set_eq('q3', 'all_return','many to 1: Expected returning, columns names & types');
+SELECT set_eq('q4', 'all_return','many to many: Expected returning, columns names & types');
+
+
+SELECT * FROM finish();
+ROLLBACK;
diff --git a/pgtap/deprecated/maxflowpushrelabel-group-innerQuery.sql b/pgtap/deprecated/maxflowpushrelabel-group-innerQuery.sql
new file mode 100644
index 0000000..a42acb5
--- /dev/null
+++ b/pgtap/deprecated/maxflowpushrelabel-group-innerQuery.sql
@@ -0,0 +1,36 @@
+\i setup.sql
+
+SELECT plan(188);
+
+
+SELECT has_function('pgr_maxflowpushrelabel',
+    ARRAY['text', 'bigint', 'bigint']);
+SELECT has_function('pgr_maxflowpushrelabel',
+    ARRAY['text', 'bigint', 'anyarray']);
+SELECT has_function('pgr_maxflowpushrelabel',
+    ARRAY['text', 'anyarray', 'bigint']);
+SELECT has_function('pgr_maxflowpushrelabel',
+    ARRAY['text', 'anyarray', 'anyarray']);
+
+SELECT function_returns('pgr_maxflowpushrelabel',
+    ARRAY['text', 'bigint', 'bigint'],
+    'setof record');
+SELECT function_returns('pgr_maxflowpushrelabel',
+    ARRAY['text', 'bigint', 'anyarray'],
+    'setof record');
+SELECT function_returns('pgr_maxflowpushrelabel',
+    ARRAY['text', 'anyarray', 'bigint'],
+    'setof record');
+SELECT function_returns('pgr_maxflowpushrelabel',
+    ARRAY['text', 'anyarray', 'anyarray'],
+    'setof record');
+
+
+-- ONLY WORKS ON DIRECTED GRAPH
+SELECT style_max_flow('pgr_maxflowpushrelabel', ', 2, 3)');
+SELECT style_max_flow('pgr_maxflowpushrelabel', ', 2, ARRAY[3])');
+SELECT style_max_flow('pgr_maxflowpushrelabel', ', ARRAY[2], 3)');
+SELECT style_max_flow('pgr_maxflowpushrelabel', ', ARRAY[2], ARRAY[3])');
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/deprecated/maxflowpushrelabel-types-check.sql b/pgtap/deprecated/maxflowpushrelabel-types-check.sql
new file mode 100644
index 0000000..07f3d79
--- /dev/null
+++ b/pgtap/deprecated/maxflowpushrelabel-types-check.sql
@@ -0,0 +1,143 @@
+\i setup.sql
+
+SELECT plan(21);
+
+SELECT has_function('pgr_maxflowpushrelabel');
+
+SELECT has_function('pgr_maxflowpushrelabel', ARRAY[ 'text', 'bigint', 'bigint' ]);
+SELECT has_function('pgr_maxflowpushrelabel', ARRAY[ 'text', 'anyarray', 'bigint' ]);
+SELECT has_function('pgr_maxflowpushrelabel', ARRAY[ 'text', 'bigint', 'anyarray' ]);
+SELECT has_function('pgr_maxflowpushrelabel', ARRAY[ 'text', 'anyarray', 'anyarray' ]);
+
+SELECT function_returns('pgr_maxflowpushrelabel', ARRAY[ 'text', 'bigint', 'bigint' ], 'setof record');
+SELECT function_returns('pgr_maxflowpushrelabel', ARRAY[ 'text', 'bigint', 'anyarray' ], 'setof record');
+SELECT function_returns('pgr_maxflowpushrelabel', ARRAY[ 'text', 'anyarray', 'bigint' ], 'setof record');
+SELECT function_returns('pgr_maxflowpushrelabel', ARRAY[ 'text', 'anyarray', 'anyarray' ], 'setof record');
+
+-- testing column names
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_maxflowpushrelabel'$$,
+    $$SELECT  '{"edges_sql","source_vertex","sink_vertex","seq","edge_id","source","target","flow","residual_capacity"}'::TEXT[] $$
+);
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_maxflowpushrelabel'$$,
+    $$SELECT  '{"edges_sql","source_vertex","sink_vertices","seq","edge_id","source","target","flow","residual_capacity"}'::TEXT[] $$
+);
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_maxflowpushrelabel'$$,
+    $$SELECT  '{"edges_sql","source_vertices","sink_vertex","seq","edge_id","source","target","flow","residual_capacity"}'::TEXT[] $$
+);
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_maxflowpushrelabel'$$,
+    $$SELECT  '{"edges_sql","source_vertices","sink_vertices","seq","edge_id","source","target","flow","residual_capacity"}'::TEXT[] $$
+);
+
+
+-- pgr_maxflowpushrelabel works
+PREPARE t1 AS
+SELECT * FROM pgr_maxflowpushrelabel(
+    'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+    3, 5
+);
+PREPARE t2 AS
+SELECT * FROM pgr_maxflowpushrelabel(
+    'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+    3, ARRAY[5]
+);
+PREPARE t3 AS
+SELECT * FROM pgr_maxflowpushrelabel(
+    'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+    ARRAY[3], 5
+);
+PREPARE t4 AS
+SELECT * FROM pgr_maxflowpushrelabel(
+    'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+    ARRAY[3], ARRAY[5]
+);
+
+SELECT lives_ok('t1','pgr_pgr_maxflowpushrelabel(one to one)');
+SELECT lives_ok('t2','pgr_pgr_maxflowpushrelabel(one to many)');
+SELECT lives_ok('t3','pgr_pgr_maxflowpushrelabel(many to one)');
+SELECT lives_ok('t4','pgr_pgr_maxflowpushrelabel(many to many)');
+
+
+-- preparing for testing return types
+PREPARE all_return AS
+SELECT  
+    'integer'::text AS t1,
+    'bigint'::text AS t2,
+    'bigint'::text AS t3,
+    'bigint'::text AS t4,
+    'bigint'::text AS t5,
+    'bigint'::text AS t6;
+
+
+PREPARE q1 AS
+SELECT pg_typeof(seq)::text AS t1,
+    pg_typeof(edge_id)::text AS t2,
+    pg_typeof(source)::text as t3,
+    pg_typeof(target)::text as t4,
+    pg_typeof(flow)::text AS t5,
+    pg_typeof(residual_capacity)::text AS t6
+    FROM (
+        SELECT * FROM pgr_maxflowpushrelabel(
+            'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+        3, 5
+        ) ) AS a
+    limit 1;
+
+
+PREPARE q2 AS
+SELECT pg_typeof(seq)::text AS t1,
+    pg_typeof(edge_id)::text AS t2,
+    pg_typeof(source)::text as t3,
+    pg_typeof(target)::text as t4,
+    pg_typeof(flow)::text AS t5,
+    pg_typeof(residual_capacity)::text AS t6
+    FROM (
+        SELECT * FROM pgr_maxflowpushrelabel(
+            'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+        3, ARRAY[5]
+        ) ) AS a
+    limit 1
+;
+
+PREPARE q3 AS
+SELECT pg_typeof(seq)::text AS t1,
+    pg_typeof(edge_id)::text AS t2,
+    pg_typeof(source)::text as t3,
+    pg_typeof(target)::text as t4,
+    pg_typeof(flow)::text AS t5,
+    pg_typeof(residual_capacity)::text AS t6
+    FROM (
+        SELECT * FROM pgr_maxflowpushrelabel(
+            'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+        ARRAY[3], 5
+        ) ) AS a
+    limit 1;
+
+
+PREPARE q4 AS
+SELECT pg_typeof(seq)::text AS t1,
+    pg_typeof(edge_id)::text AS t2,
+    pg_typeof(source)::text as t3,
+    pg_typeof(target)::text as t4,
+    pg_typeof(flow)::text AS t5,
+    pg_typeof(residual_capacity)::text AS t6
+    FROM (
+        SELECT * FROM pgr_maxflowpushrelabel(
+            'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+        ARRAY[3], ARRAY[5]
+        ) ) AS a
+    limit 1
+;
+
+-- testing return types
+SELECT set_eq('q1', 'all_return','1 to 1: Expected returning, columns names & types');
+SELECT set_eq('q2', 'all_return','1 to many: Expected returning, columns names & types');
+SELECT set_eq('q3', 'all_return','many to 1: Expected returning, columns names & types');
+SELECT set_eq('q4', 'all_return','many to many: Expected returning, columns names & types');
+
+
+SELECT * FROM finish();
+ROLLBACK;
diff --git a/pgtap/deprecated/maximumcardinalitymatching-innerQuery.sql b/pgtap/deprecated/maximumcardinalitymatching-innerQuery.sql
new file mode 100644
index 0000000..961ac4b
--- /dev/null
+++ b/pgtap/deprecated/maximumcardinalitymatching-innerQuery.sql
@@ -0,0 +1,19 @@
+\i setup.sql
+
+SELECT plan(137);
+
+
+SELECT has_function('pgr_maximumcardinalitymatching',
+    ARRAY['text', 'boolean']);
+
+SELECT function_returns('pgr_maximumcardinalitymatching',
+    ARRAY['text', 'boolean'],
+    'setof record');
+
+
+SELECT style_cardinalitymatch('pgr_maximumcardinalitymatching', ')');
+SELECT style_cardinalitymatch('pgr_maximumcardinalitymatching', ', true)');
+SELECT style_cardinalitymatch('pgr_maximumcardinalitymatching', ', false)');
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/deprecated/maximumcardinalitymatching-types-check.sql b/pgtap/deprecated/maximumcardinalitymatching-types-check.sql
new file mode 100644
index 0000000..872990f
--- /dev/null
+++ b/pgtap/deprecated/maximumcardinalitymatching-types-check.sql
@@ -0,0 +1,52 @@
+\i setup.sql
+SET client_min_messages TO WARNING;
+
+SELECT plan(7);
+
+
+SELECT has_function('pgr_maximumcardinalitymatching');
+
+SELECT has_function('pgr_maximumcardinalitymatching', ARRAY['text', 'boolean']);
+
+SELECT function_returns('pgr_maximumcardinalitymatching', ARRAY['text', 'boolean'], 'setof record');
+
+-- Maximum cardinality matching
+PREPARE mcm_dir AS
+SELECT * FROM pgr_maximumCardinalityMatching(
+    'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table'
+);
+
+PREPARE mcm_undir AS
+SELECT * FROM pgr_maximumCardinalityMatching(
+    'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table',
+    directed := false
+);
+
+SELECT lives_ok('mcm_dir','directed');
+SELECT lives_ok('mcm_undir','undirected');
+
+PREPARE mcm_q AS
+SELECT pg_typeof(seq)::text AS t1, pg_typeof(edge_id)::text AS t2,
+    pg_typeof(source)::text AS t3, pg_typeof(target)::text AS t4
+    FROM (
+        SELECT * FROM pgr_maximumCardinalityMatching(
+        'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table'
+        ) ) AS a
+    limit 1
+;
+
+PREPARE mcm_v AS
+SELECT  'integer'::text AS t1,'bigint'::text AS t2,
+    'bigint'::text AS t3, 'bigint'::text AS t4;
+
+SELECT set_eq('mcm_q', 'mcm_v','Expected returning, columns names & types');
+
+-- testing column names
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_maximumcardinalitymatching'$$,
+    $$SELECT  '{"edges_sql","directed","seq","edge_id","source","target"}'::TEXT[] $$
+);
+
+
+SELECT * FROM finish();
+ROLLBACK;
diff --git a/pgtap/deprecated/no_underscored-2x.test.sql b/pgtap/deprecated/no_underscored-2x.test.sql
new file mode 100644
index 0000000..0eb73f4
--- /dev/null
+++ b/pgtap/deprecated/no_underscored-2x.test.sql
@@ -0,0 +1,63 @@
+
+\i setup.sql
+
+
+SELECT plan(18);
+
+set client_min_messages to WARNING;
+SELECT  results_eq('SELECT  1, sname, tname  FROM pgr_getTableName(''EDGe_table'')', 
+    'SELECT 1, ''public''::TEXT, ''edge_table''::TEXT ');
+SELECT  results_eq('SELECT  2, sname, tname FROM pgr_getTableName(''EDes2'')',
+    'SELECT 2, ''public''::TEXT, NULL::TEXT ');
+
+
+select todo(1);
+SELECT  results_eq('SELECT  3,  pgr_getColumnName(''EDGe_table'', ''SOuRce'')' ,
+    'SELECT 3, ''source''::TEXT ');
+SELECT  results_eq('SELECT  4,  pgr_getColumnName(''EDes2'', ''SOuRce'') ',
+    'SELECT 4,  NULL::TEXT ');
+SELECT  results_eq('SELECT  5,  pgr_getColumnName(''EDes2'', ''SOuce'') ',
+    'SELECT 5,  NULL::TEXT ');
+SELECT  results_eq('SELECT  6,  pgr_getColumnName(''EDes2'', ''SOuce'') ',
+    'SELECT 6,  NULL::TEXT ');
+
+
+select todo(1);
+SELECT  results_eq('SELECT  7, pgr_isColumnInTable(''EDGe_table'', ''SOuRce'') ',
+    'SELECT 7, true ');
+SELECT  results_eq('SELECT  8, pgr_isColumnInTable(''EDes2'', ''SOuRce'')',
+    'SELECT 8,  false ');
+SELECT  results_eq('SELECT  9, pgr_isColumnInTable(''EDes2'', ''SOuce'')',
+    'SELECT 9,  false ');
+SELECT  results_eq('SELECT  10, pgr_isColumnInTable(''EDes2'', ''SOuce'')',
+    'SELECT 10,  false ');
+
+
+SELECT  results_eq('SELECT  11, pgr_isColumnIndexed(''EDGe_table'', ''id'') ',
+    'SELECT 11, true ');
+SELECT  results_eq('SELECT  12, pgr_isColumnIndexed(''EDGe_table'', ''X1'') ',
+    'SELECT 12,  false ');
+
+
+SELECT  results_eq('SELECT  13, pgr_versionless(''2.1.0foobar23'', ''2.1'') ',
+    'SELECT 13,  true ');
+SELECT  results_eq('SELECT  14, pgr_versionless(''2.1.0foobar23'', ''2.1-rc1'') ',
+    'SELECT 14,  true ');
+SELECT  results_eq('SELECT  15, pgr_versionless(''2.1.0foobar23'', ''2.1-beta'') ',
+    'SELECT 15,  true ');
+
+
+select todo(1);
+SELECT  results_eq('SELECT  16, pgr_quote_ident(''idname.text'') ',
+    'SELECT 16,  ''idname.text''::TEXT ');
+
+SELECT  results_eq('SELECT  17, pgr_startPoint(the_geom)::TEXT  FROM edge_table where id = 1 ',
+    'SELECT 17, ''010100000000000000000000400000000000000000''::TEXT ');
+
+SELECT  results_eq('SELECT  18, pgr_endPoint(the_geom)::TEXT  FROM edge_table where id = 1 ', 
+    'SELECT 18, ''01010000000000000000000040000000000000F03F''::TEXT ');
+
+-- Finish the tests and clean up.
+SELECT * FROM finish();
+ROLLBACK;
+
diff --git a/pgtap/dijkstra/dijkstra-group-innerQuery.sql b/pgtap/dijkstra/dijkstra-group-innerQuery.sql
new file mode 100644
index 0000000..d09ff91
--- /dev/null
+++ b/pgtap/dijkstra/dijkstra-group-innerQuery.sql
@@ -0,0 +1,39 @@
+\i setup.sql
+
+SELECT plan(188);
+
+
+SELECT has_function('pgr_dijkstra',
+    ARRAY['text', 'bigint', 'bigint', 'boolean']);
+SELECT has_function('pgr_dijkstra',
+    ARRAY['text', 'bigint', 'anyarray', 'boolean']);
+SELECT has_function('pgr_dijkstra',
+    ARRAY['text', 'anyarray', 'bigint', 'boolean']);
+SELECT has_function('pgr_dijkstra',
+    ARRAY['text', 'anyarray', 'anyarray', 'boolean']);
+
+SELECT function_returns('pgr_dijkstra',
+    ARRAY['text', 'bigint', 'bigint', 'boolean'],
+    'setof record');
+SELECT function_returns('pgr_dijkstra',
+    ARRAY['text', 'bigint', 'anyarray', 'boolean'],
+    'setof record');
+SELECT function_returns('pgr_dijkstra',
+    ARRAY['text', 'anyarray', 'bigint', 'boolean'],
+    'setof record');
+SELECT function_returns('pgr_dijkstra',
+    ARRAY['text', 'anyarray', 'anyarray', 'boolean'],
+    'setof record');
+
+
+-- ONE TO ONE
+SELECT style_dijkstra('pgr_dijkstra', ', 2, 3, true)');
+-- ONE TO MANY
+SELECT style_dijkstra('pgr_dijkstra', ', 2, ARRAY[3], true)');
+-- MANY TO ONE
+SELECT style_dijkstra('pgr_dijkstra', ', ARRAY[2], 3, true)');
+-- MANY TO MANY
+SELECT style_dijkstra('pgr_dijkstra', ', ARRAY[2], ARRAY[3], true)');
+
+SELECT finish();
+ROLLBACK;
diff --git a/src/dijkstra/test/pgtap/issue-353.test.sql b/pgtap/dijkstra/dijkstra-issue-353.test.sql
similarity index 100%
rename from src/dijkstra/test/pgtap/issue-353.test.sql
rename to pgtap/dijkstra/dijkstra-issue-353.test.sql
diff --git a/src/dijkstra/test/pgtap/dijkstra-types-check.sql b/pgtap/dijkstra/dijkstra-types-check.sql
similarity index 100%
rename from src/dijkstra/test/pgtap/dijkstra-types-check.sql
rename to pgtap/dijkstra/dijkstra-types-check.sql
diff --git a/pgtap/dijkstra/dijkstraCost-group-innerQuery.sql b/pgtap/dijkstra/dijkstraCost-group-innerQuery.sql
new file mode 100644
index 0000000..a406a29
--- /dev/null
+++ b/pgtap/dijkstra/dijkstraCost-group-innerQuery.sql
@@ -0,0 +1,40 @@
+\i setup.sql
+
+SELECT plan(188);
+
+
+SELECT has_function('pgr_dijkstracost',
+    ARRAY['text', 'bigint', 'bigint', 'boolean']);
+SELECT has_function('pgr_dijkstracost',
+    ARRAY['text', 'bigint', 'anyarray', 'boolean']);
+SELECT has_function('pgr_dijkstracost',
+    ARRAY['text', 'anyarray', 'bigint', 'boolean']);
+SELECT has_function('pgr_dijkstracost',
+    ARRAY['text', 'anyarray', 'anyarray', 'boolean']);
+
+SELECT function_returns('pgr_dijkstracost',
+    ARRAY['text', 'bigint', 'bigint', 'boolean'],
+    'setof record');
+SELECT function_returns('pgr_dijkstracost',
+    ARRAY['text', 'bigint', 'anyarray', 'boolean'],
+    'setof record');
+SELECT function_returns('pgr_dijkstracost',
+    ARRAY['text', 'anyarray', 'bigint', 'boolean'],
+    'setof record');
+SELECT function_returns('pgr_dijkstracost',
+    ARRAY['text', 'anyarray', 'anyarray', 'boolean'],
+    'setof record');
+
+
+-- ONE TO ONE
+SELECT style_dijkstra('pgr_dijkstracost', ', 2, 3, true)');
+-- ONE TO MANY
+SELECT style_dijkstra('pgr_dijkstracost', ', 2, ARRAY[3], true)');
+-- MANY TO ONE
+SELECT style_dijkstra('pgr_dijkstracost', ', ARRAY[2], 3, true)');
+-- MANY TO MANY
+SELECT style_dijkstra('pgr_dijkstracost', ', ARRAY[2], ARRAY[3], true)');
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/src/dijkstra/test/pgtap/dijkstraCost-types-check.sql b/pgtap/dijkstra/dijkstraCost-types-check.sql
similarity index 100%
rename from src/dijkstra/test/pgtap/dijkstraCost-types-check.sql
rename to pgtap/dijkstra/dijkstraCost-types-check.sql
diff --git a/src/dijkstra/test/pgtap/dijkstraVia-equivalenceDijkstra.test.sql b/pgtap/dijkstra/dijkstraVia-equivalenceDijkstra.test.sql
similarity index 100%
rename from src/dijkstra/test/pgtap/dijkstraVia-equivalenceDijkstra.test.sql
rename to pgtap/dijkstra/dijkstraVia-equivalenceDijkstra.test.sql
diff --git a/pgtap/dijkstra/dijkstraVia-innerQuery.sql b/pgtap/dijkstra/dijkstraVia-innerQuery.sql
new file mode 100644
index 0000000..9d5f4e0
--- /dev/null
+++ b/pgtap/dijkstra/dijkstraVia-innerQuery.sql
@@ -0,0 +1,17 @@
+\i setup.sql
+
+SELECT plan(47);
+
+
+SELECT has_function('pgr_dijkstravia',
+    ARRAY['text', 'anyarray', 'boolean', 'boolean', 'boolean']);
+
+SELECT function_returns('pgr_dijkstravia',
+    ARRAY['text', 'anyarray', 'boolean', 'boolean', 'boolean'],
+    'setof record');
+
+SELECT style_dijkstra('pgr_dijkstravia', ', ARRAY[2, 3], true, true)');
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/src/dijkstra/test/pgtap/dijkstraVia-types-check.sql b/pgtap/dijkstra/dijkstraVia-types-check.sql
similarity index 100%
rename from src/dijkstra/test/pgtap/dijkstraVia-types-check.sql
rename to pgtap/dijkstra/dijkstraVia-types-check.sql
diff --git a/src/dijkstra/test/pgtap/oneToOne_equiv_manyToMany.test.sql b/pgtap/dijkstra/oneToOne_equiv_manyToMany.test.sql
similarity index 100%
rename from src/dijkstra/test/pgtap/oneToOne_equiv_manyToMany.test.sql
rename to pgtap/dijkstra/oneToOne_equiv_manyToMany.test.sql
diff --git a/src/dijkstra/test/pgtap/oneToOne_equiv_manyToOne.test.sql b/pgtap/dijkstra/oneToOne_equiv_manyToOne.test.sql
similarity index 100%
rename from src/dijkstra/test/pgtap/oneToOne_equiv_manyToOne.test.sql
rename to pgtap/dijkstra/oneToOne_equiv_manyToOne.test.sql
diff --git a/src/dijkstra/test/pgtap/oneToOne_equiv_oneToMany.test.sql b/pgtap/dijkstra/oneToOne_equiv_oneToMany.test.sql
similarity index 100%
rename from src/dijkstra/test/pgtap/oneToOne_equiv_oneToMany.test.sql
rename to pgtap/dijkstra/oneToOne_equiv_oneToMany.test.sql
diff --git a/src/dijkstra/test/pgtap/zero_one_edge_-1_rev.test.sql b/pgtap/dijkstra/zero_one_edge_-1_rev.test.sql
similarity index 100%
rename from src/dijkstra/test/pgtap/zero_one_edge_-1_rev.test.sql
rename to pgtap/dijkstra/zero_one_edge_-1_rev.test.sql
diff --git a/src/dijkstra/test/pgtap/zero_one_edge_has_rev.test.sql b/pgtap/dijkstra/zero_one_edge_has_rev.test.sql
similarity index 100%
rename from src/dijkstra/test/pgtap/zero_one_edge_has_rev.test.sql
rename to pgtap/dijkstra/zero_one_edge_has_rev.test.sql
diff --git a/src/dijkstra/test/pgtap/zero_one_edge_no_rev.test.sql b/pgtap/dijkstra/zero_one_edge_no_rev.test.sql
similarity index 100%
rename from src/dijkstra/test/pgtap/zero_one_edge_no_rev.test.sql
rename to pgtap/dijkstra/zero_one_edge_no_rev.test.sql
diff --git a/pgtap/driving_distance/dijkstraDD-innerQuery.sql b/pgtap/driving_distance/dijkstraDD-innerQuery.sql
new file mode 100644
index 0000000..b360724
--- /dev/null
+++ b/pgtap/driving_distance/dijkstraDD-innerQuery.sql
@@ -0,0 +1,28 @@
+\i setup.sql
+
+SELECT plan(94);
+
+
+SELECT has_function('pgr_drivingdistance',
+    ARRAY['text', 'bigint', 'double precision', 'boolean']);
+SELECT has_function('pgr_drivingdistance',
+    ARRAY['text', 'anyarray', 'double precision', 'boolean', 'boolean']);
+
+SELECT function_returns('pgr_drivingdistance',
+    ARRAY['text', 'bigint', 'double precision', 'boolean'],
+    'setof record');
+SELECT function_returns('pgr_drivingdistance',
+    ARRAY['text', 'anyarray', 'double precision', 'boolean', 'boolean'],
+    'setof record');
+
+
+-- ONE SOURCE
+SELECT style_dijkstra('pgr_drivingdistance', ',2, 1, true)');
+
+-- MANY SOURCES
+SELECT style_dijkstra('pgr_drivingdistance', ',ARRAY[2,3], 1, true)');
+
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/src/driving_distance/test/pgtap/issue-519.sql b/pgtap/driving_distance/issue-519.sql
similarity index 100%
rename from src/driving_distance/test/pgtap/issue-519.sql
rename to pgtap/driving_distance/issue-519.sql
diff --git a/pgtap/driving_distance/withPointsDD-group-innerQuery.sql b/pgtap/driving_distance/withPointsDD-group-innerQuery.sql
new file mode 100644
index 0000000..a9acbab
--- /dev/null
+++ b/pgtap/driving_distance/withPointsDD-group-innerQuery.sql
@@ -0,0 +1,29 @@
+\i setup.sql
+
+SELECT plan(94);
+
+
+SELECT has_function('pgr_withpointsdd',
+    ARRAY['text', 'text', 'bigint', 'double precision', 'boolean', 'character', 'boolean']);
+SELECT has_function('pgr_withpointsdd',
+    ARRAY['text', 'text', 'anyarray', 'double precision', 'boolean', 'character', 'boolean', 'boolean']);
+
+SELECT function_returns('pgr_withpointsdd',
+    ARRAY['text', 'text', 'bigint', 'double precision', 'boolean', 'character', 'boolean'],
+    'setof record');
+SELECT function_returns('pgr_withpointsdd',
+    ARRAY['text', 'text', 'anyarray', 'double precision', 'boolean', 'character', 'boolean', 'boolean'],
+    'setof record');
+
+
+-- ONE SOURCE
+SELECT style_withpoints('pgr_withpointsdd', ', 2, 3, true)');
+
+
+-- MANY SOURCES
+SELECT style_withpoints('pgr_withpointsdd', ', ARRAY[2], 3, true)');
+
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/ksp/ksp-innerQuery.sql b/pgtap/ksp/ksp-innerQuery.sql
new file mode 100644
index 0000000..964bc3c
--- /dev/null
+++ b/pgtap/ksp/ksp-innerQuery.sql
@@ -0,0 +1,19 @@
+\i setup.sql
+
+SELECT plan(47);
+
+
+SELECT has_function('pgr_ksp',
+    ARRAY['text', 'bigint', 'bigint', 'integer', 'boolean', 'boolean']);
+
+SELECT function_returns('pgr_ksp',
+    ARRAY['text', 'bigint', 'bigint', 'integer', 'boolean', 'boolean'],
+    'setof record');
+
+
+-- ONE TO ONE
+SELECT style_dijkstra('pgr_ksp', ',2,3,2, true, false)');
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/ksp/ksp-old-innerQuery.sql b/pgtap/ksp/ksp-old-innerQuery.sql
new file mode 100644
index 0000000..2e0bae3
--- /dev/null
+++ b/pgtap/ksp/ksp-old-innerQuery.sql
@@ -0,0 +1,20 @@
+\i setup.sql
+
+SELECT plan(47);
+
+
+SELECT has_function('pgr_ksp',
+    ARRAY['text', 'integer', 'integer', 'integer', 'boolean']);
+
+SELECT function_returns('pgr_ksp',
+    ARRAY['text', 'integer', 'integer', 'integer', 'boolean'],
+    'setof pgr_costresult3');
+
+
+-- ONE TO ONE
+SELECT style_old_dijkstra_with('pgr_ksp', ',2,3,2, true)');
+SELECT style_old_dijkstra_no_rev('pgr_ksp', ',2,3,2, false)');
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/src/ksp/test/pgtap/ksp-v3-1route.test.sql b/pgtap/ksp/ksp-v3-1route.test.sql
similarity index 100%
rename from src/ksp/test/pgtap/ksp-v3-1route.test.sql
rename to pgtap/ksp/ksp-v3-1route.test.sql
diff --git a/src/ksp/test/pgtap/parallel-v2.test.sql b/pgtap/ksp/parallel-v2.test.sql
similarity index 100%
rename from src/ksp/test/pgtap/parallel-v2.test.sql
rename to pgtap/ksp/parallel-v2.test.sql
diff --git a/src/ksp/test/pgtap/parallel.test.sql b/pgtap/ksp/parallel.test.sql
similarity index 100%
rename from src/ksp/test/pgtap/parallel.test.sql
rename to pgtap/ksp/parallel.test.sql
diff --git a/pgtap/ksp/withPointsKSP-innerQuery.sql b/pgtap/ksp/withPointsKSP-innerQuery.sql
new file mode 100644
index 0000000..8dabbfc
--- /dev/null
+++ b/pgtap/ksp/withPointsKSP-innerQuery.sql
@@ -0,0 +1,21 @@
+\i setup.sql
+
+SELECT plan(47);
+
+
+SELECT has_function('pgr_withpointsksp',
+    ARRAY['text', 'text', 'bigint', 'bigint', 'integer', 'boolean', 'boolean', 'character', 'boolean']);
+
+SELECT function_returns('pgr_withpointsksp',
+    ARRAY['text', 'text', 'bigint', 'bigint', 'integer', 'boolean', 'boolean', 'character', 'boolean'],
+    'setof record');
+
+
+
+-- ONE TO ONE
+SELECT style_withpoints('pgr_withpointsksp', ', 2, 3, 2, true)');
+
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/max_flow/boykovKolmogorov-innerQuery.sql b/pgtap/max_flow/boykovKolmogorov-innerQuery.sql
new file mode 100644
index 0000000..2835ce8
--- /dev/null
+++ b/pgtap/max_flow/boykovKolmogorov-innerQuery.sql
@@ -0,0 +1,36 @@
+\i setup.sql
+
+SELECT plan(188);
+
+
+SELECT has_function('pgr_boykovkolmogorov',
+    ARRAY['text', 'bigint', 'bigint']);
+SELECT has_function('pgr_boykovkolmogorov',
+    ARRAY['text', 'bigint', 'anyarray']);
+SELECT has_function('pgr_boykovkolmogorov',
+    ARRAY['text', 'anyarray', 'bigint']);
+SELECT has_function('pgr_boykovkolmogorov',
+    ARRAY['text', 'anyarray', 'anyarray']);
+
+SELECT function_returns('pgr_boykovkolmogorov',
+    ARRAY['text', 'bigint', 'bigint'],
+    'setof record');
+SELECT function_returns('pgr_boykovkolmogorov',
+    ARRAY['text', 'bigint', 'anyarray'],
+    'setof record');
+SELECT function_returns('pgr_boykovkolmogorov',
+    ARRAY['text', 'anyarray', 'bigint'],
+    'setof record');
+SELECT function_returns('pgr_boykovkolmogorov',
+    ARRAY['text', 'anyarray', 'anyarray'],
+    'setof record');
+
+
+-- ONLY WORKS ON DIRECTED GRAPH
+SELECT style_max_flow('pgr_boykovkolmogorov', ', 2, 3)');
+SELECT style_max_flow('pgr_boykovkolmogorov', ', 2, ARRAY[3])');
+SELECT style_max_flow('pgr_boykovkolmogorov', ', ARRAY[2], 3)');
+SELECT style_max_flow('pgr_boykovkolmogorov', ', ARRAY[2], ARRAY[3])');
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/max_flow/boykovKolmogorov-types-check.sql b/pgtap/max_flow/boykovKolmogorov-types-check.sql
new file mode 100644
index 0000000..7f485eb
--- /dev/null
+++ b/pgtap/max_flow/boykovKolmogorov-types-check.sql
@@ -0,0 +1,139 @@
+\i setup.sql
+
+SELECT plan(21);
+
+SELECT has_function('pgr_boykovkolmogorov');
+
+SELECT has_function('pgr_boykovkolmogorov', ARRAY[ 'text', 'bigint', 'bigint' ]);
+SELECT has_function('pgr_boykovkolmogorov', ARRAY[ 'text', 'anyarray', 'bigint' ]);
+SELECT has_function('pgr_boykovkolmogorov', ARRAY[ 'text', 'bigint', 'anyarray' ]);
+SELECT has_function('pgr_boykovkolmogorov', ARRAY[ 'text', 'anyarray', 'anyarray' ]);
+
+SELECT function_returns('pgr_boykovkolmogorov', ARRAY[ 'text', 'bigint', 'bigint' ], 'setof record');
+SELECT function_returns('pgr_boykovkolmogorov', ARRAY[ 'text', 'bigint', 'anyarray' ], 'setof record');
+SELECT function_returns('pgr_boykovkolmogorov', ARRAY[ 'text', 'anyarray', 'bigint' ], 'setof record');
+SELECT function_returns('pgr_boykovkolmogorov', ARRAY[ 'text', 'anyarray', 'anyarray' ], 'setof record');
+
+-- testing column names
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_boykovkolmogorov'$$,
+    $$SELECT  '{"","","","seq","edge","start_vid","end_vid","flow","residual_capacity"}'::TEXT[] $$
+);
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_boykovkolmogorov'$$,
+    $$SELECT  '{"","","","seq","edge","start_vid","end_vid","flow","residual_capacity"}'::TEXT[] $$
+);
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_boykovkolmogorov'$$,
+    $$SELECT  '{"","","","seq","edge","start_vid","end_vid","flow","residual_capacity"}'::TEXT[] $$
+);
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_boykovkolmogorov'$$,
+    $$SELECT  '{"","","","seq","edge","start_vid","end_vid","flow","residual_capacity"}'::TEXT[] $$
+);
+
+
+-- pgr_boykovKolmogorov works
+PREPARE t1 AS
+SELECT * FROM pgr_boykovKolmogorov(
+    'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+    3, 5);
+PREPARE t2 AS
+SELECT * FROM pgr_boykovKolmogorov(
+    'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+    3, ARRAY[5]);
+PREPARE t3 AS
+SELECT * FROM pgr_boykovKolmogorov(
+    'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+    ARRAY[3], 5);
+PREPARE t4 AS
+SELECT * FROM pgr_boykovKolmogorov(
+    'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+    3, ARRAY[5]);
+
+SELECT lives_ok('t1','pgr_boykovKolmogorov(one to One)');
+SELECT lives_ok('t2','pgr_boykovKolmogorov(one to Many)');
+SELECT lives_ok('t3','pgr_boykovKolmogorov(Many to One)');
+SELECT lives_ok('t4','pgr_boykovKolmogorov(Many to Many)');
+
+
+-- preparing for testing return types
+PREPARE all_return AS
+SELECT  
+    'integer'::text AS t1,
+    'bigint'::text AS t2,
+    'bigint'::text AS t3,
+    'bigint'::text AS t4,
+    'bigint'::text AS t5,
+    'bigint'::text AS t6;
+
+
+PREPARE q1 AS
+SELECT pg_typeof(seq)::text AS t1,
+    pg_typeof(edge)::text AS t2,
+    pg_typeof(start_vid)::text as t3,
+    pg_typeof(end_vid)::text as t4,
+    pg_typeof(flow)::text AS t5,
+    pg_typeof(residual_capacity)::text AS t6
+    FROM (
+        SELECT * FROM pgr_boykovKolmogorov(
+            'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+        3, 5
+        ) ) AS a
+    limit 1;
+
+
+PREPARE q2 AS
+SELECT pg_typeof(seq)::text AS t1,
+    pg_typeof(edge)::text AS t2,
+    pg_typeof(start_vid)::text as t3,
+    pg_typeof(end_vid)::text as t4,
+    pg_typeof(flow)::text AS t5,
+    pg_typeof(residual_capacity)::text AS t6
+    FROM (
+        SELECT * FROM pgr_boykovKolmogorov(
+            'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+        3, ARRAY[5]
+        ) ) AS a
+    limit 1
+;
+
+PREPARE q3 AS
+SELECT pg_typeof(seq)::text AS t1,
+    pg_typeof(edge)::text AS t2,
+    pg_typeof(start_vid)::text as t3,
+    pg_typeof(end_vid)::text as t4,
+    pg_typeof(flow)::text AS t5,
+    pg_typeof(residual_capacity)::text AS t6
+    FROM (
+        SELECT * FROM pgr_boykovKolmogorov(
+            'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+        ARRAY[3], 5
+        ) ) AS a
+    limit 1;
+
+
+PREPARE q4 AS
+SELECT pg_typeof(seq)::text AS t1,
+    pg_typeof(edge)::text AS t2,
+    pg_typeof(start_vid)::text as t3,
+    pg_typeof(end_vid)::text as t4,
+    pg_typeof(flow)::text AS t5,
+    pg_typeof(residual_capacity)::text AS t6
+    FROM (
+        SELECT * FROM pgr_boykovKolmogorov(
+            'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+        ARRAY[3], ARRAY[5]
+        ) ) AS a
+    limit 1
+;
+
+-- testing return types
+SELECT set_eq('q1', 'all_return','1 to 1: Expected returning, columns names & types');
+SELECT set_eq('q2', 'all_return','1 to many: Expected returning, columns names & types');
+SELECT set_eq('q3', 'all_return','many to 1: Expected returning, columns names & types');
+SELECT set_eq('q4', 'all_return','many to many: Expected returning, columns names & types');
+
+
+SELECT * FROM finish();
+ROLLBACK;
diff --git a/pgtap/max_flow/edgedisjointpaths-group-innerQuery.sql b/pgtap/max_flow/edgedisjointpaths-group-innerQuery.sql
new file mode 100644
index 0000000..a631cad
--- /dev/null
+++ b/pgtap/max_flow/edgedisjointpaths-group-innerQuery.sql
@@ -0,0 +1,45 @@
+\i setup.sql
+
+SELECT plan(548);
+
+
+SELECT has_function('pgr_edgedisjointpaths',
+    ARRAY['text', 'bigint', 'bigint', 'boolean']);
+SELECT has_function('pgr_edgedisjointpaths',
+    ARRAY['text', 'bigint', 'anyarray', 'boolean']);
+SELECT has_function('pgr_edgedisjointpaths',
+    ARRAY['text', 'anyarray', 'bigint', 'boolean']);
+SELECT has_function('pgr_edgedisjointpaths',
+    ARRAY['text', 'anyarray', 'anyarray', 'boolean']);
+
+SELECT function_returns('pgr_edgedisjointpaths',
+    ARRAY['text', 'bigint', 'bigint', 'boolean'],
+    'setof record');
+SELECT function_returns('pgr_edgedisjointpaths',
+    ARRAY['text', 'bigint', 'anyarray', 'boolean'],
+    'setof record');
+SELECT function_returns('pgr_edgedisjointpaths',
+    ARRAY['text', 'anyarray', 'bigint', 'boolean'],
+    'setof record');
+SELECT function_returns('pgr_edgedisjointpaths',
+    ARRAY['text', 'anyarray', 'anyarray', 'boolean'],
+    'setof record');
+
+
+-- DIRECTED
+SELECT style_dijkstra('pgr_edgedisjointpaths', ', 2, 3)');
+SELECT style_dijkstra('pgr_edgedisjointpaths', ', 2, ARRAY[3])');
+SELECT style_dijkstra('pgr_edgedisjointpaths', ', ARRAY[2], 3)');
+SELECT style_dijkstra('pgr_edgedisjointpaths', ', ARRAY[2], ARRAY[3])');
+SELECT style_dijkstra('pgr_edgedisjointpaths', ', 2, 3, true)');
+SELECT style_dijkstra('pgr_edgedisjointpaths', ', 2, ARRAY[3], true)');
+SELECT style_dijkstra('pgr_edgedisjointpaths', ', ARRAY[2], 3, true)');
+SELECT style_dijkstra('pgr_edgedisjointpaths', ', ARRAY[2], ARRAY[3], true)');
+-- UNDIRECTED
+SELECT style_dijkstra('pgr_edgedisjointpaths', ', 2, 3, false)');
+SELECT style_dijkstra('pgr_edgedisjointpaths', ', 2, ARRAY[3], false)');
+SELECT style_dijkstra('pgr_edgedisjointpaths', ', ARRAY[2], 3, false)');
+SELECT style_dijkstra('pgr_edgedisjointpaths', ', ARRAY[2], ARRAY[3], false)');
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/max_flow/edgedisjointpaths-types-check.sql b/pgtap/max_flow/edgedisjointpaths-types-check.sql
new file mode 100644
index 0000000..975b9cf
--- /dev/null
+++ b/pgtap/max_flow/edgedisjointpaths-types-check.sql
@@ -0,0 +1,155 @@
+\i setup.sql
+
+SELECT plan(10);
+
+
+-- Edge disjoint paths
+PREPARE edp_dir AS
+SELECT * FROM pgr_edgeDisjointPaths(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    3, 5
+);
+PREPARE edp_undir AS
+SELECT * FROM pgr_edgeDisjointPaths(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    3, 5,
+    directed := false
+);
+
+SELECT lives_ok('edp_dir','directed');
+SELECT lives_ok('edp_undir','undirected');
+
+
+-- preparing return types pgr_edgeDisjointPaths(One to One)
+PREPARE edp_v_o2o AS
+SELECT
+    'integer'::text AS t1,
+    'integer'::text AS t2,
+    'bigint'::text AS t3,
+    'bigint'::text AS t4,
+    'double precision'::text AS t5,
+    'double precision'::text AS t6,
+    'integer'::text AS t10;
+
+PREPARE edp_q_o2o AS
+SELECT pg_typeof(seq)::text AS t1,
+    pg_typeof(path_seq)::text AS t2,
+    pg_typeof(node)::text AS t3,
+    pg_typeof(edge)::text AS t4,
+    pg_typeof(cost)::text AS t5,
+    pg_typeof(agg_cost)::text AS t6,
+    pg_typeof(path_id)::text AS t10
+    FROM (
+        SELECT * FROM pgr_edgeDisjointPaths(
+            'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+        3, 5
+        ) ) AS a
+    limit 1;
+
+
+
+-- preparing return types for:
+--    pgr_edgeDisjointPaths(One to Many)
+--    pgr_edgeDisjointPaths(Many to One)
+PREPARE edp_v_o2m AS
+SELECT  
+    'integer'::text AS t1,
+    'integer'::text AS t2,
+    'bigint'::text AS t3,
+    'bigint'::text AS t4,
+    'bigint'::text AS t5,
+    'double precision'::text AS t6,
+    'double precision'::text AS t7,
+    'integer'::text AS t10;
+
+PREPARE edp_q_o2m AS
+SELECT pg_typeof(seq)::text AS t1,
+    pg_typeof(path_seq)::text AS t2,
+    pg_typeof(end_vid)::text as t3,
+    pg_typeof(node)::text AS t4,
+    pg_typeof(edge)::text AS t5,
+    pg_typeof(cost)::text AS t6,
+    pg_typeof(agg_cost)::text AS t7,
+    pg_typeof(path_id)::text AS t10
+    FROM (
+        SELECT * FROM pgr_edgeDisjointPaths(
+            'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+        3, ARRAY[5]
+        ) ) AS a
+    limit 1
+;
+
+PREPARE edp_q_m2o AS
+SELECT pg_typeof(seq)::text AS t1,
+    pg_typeof(path_seq)::text AS t2,
+    pg_typeof(start_vid)::text as t3,
+    pg_typeof(node)::text AS t4,
+    pg_typeof(edge)::text AS t5,
+    pg_typeof(cost)::text AS t6,
+    pg_typeof(agg_cost)::text AS t7,
+    pg_typeof(path_id)::text AS t10
+    FROM (
+        SELECT * FROM pgr_edgeDisjointPaths(
+            'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+        ARRAY[3], 5
+        ) ) AS a
+    limit 1;
+
+-- preparing return types pgr_edgeDisjointPaths(Many to Many)
+PREPARE edp_v_m2m AS
+SELECT
+    'integer'::text AS t1,
+    'integer'::text AS t2,
+    'bigint'::text AS t3,
+    'bigint'::text AS t4,
+    'bigint'::text AS t5,
+    'bigint'::text AS t6,
+    'double precision'::text AS t7,
+    'double precision'::text AS t8,
+    'integer'::text AS t10;
+
+PREPARE edp_q_m2m AS
+SELECT pg_typeof(seq)::text AS t1,
+    pg_typeof(path_seq)::text AS t2,
+    pg_typeof(start_vid)::text as t3,
+    pg_typeof(end_vid)::text as t4,
+    pg_typeof(node)::text AS t5,
+    pg_typeof(edge)::text AS t6,
+    pg_typeof(cost)::text AS t7,
+    pg_typeof(agg_cost)::text AS t8,
+    pg_typeof(path_id)::text AS t10
+    FROM (
+        SELECT * FROM pgr_edgeDisjointPaths(
+            'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+        ARRAY[3], ARRAY[5]
+        ) ) AS a
+    limit 1
+;
+
+-- testing return types
+SELECT set_eq('edp_v_o2o', 'edp_q_o2o','1 to 1: Expected returning, columns names & types');
+SELECT set_eq('edp_v_o2m', 'edp_q_o2m','1 to many: Expected returning, columns names & types');
+SELECT set_eq('edp_v_o2m', 'edp_q_m2o','many to 1: Expected returning, columns names & types');
+SELECT set_eq('edp_v_m2m', 'edp_q_m2m','many to many: Expected returning, columns names & types');
+
+
+-- testing column names
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_edgedisjointpaths'$$,
+    $$SELECT  '{"","","","directed","seq","path_id","path_seq","node","edge","cost","agg_cost"}'::TEXT[] $$
+);
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_edgedisjointpaths'$$,
+    $$SELECT  '{"","","","directed","seq","path_id","path_seq","end_vid","node","edge","cost","agg_cost"}'::TEXT[] $$
+);
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_edgedisjointpaths'$$,
+    $$SELECT  '{"","","","directed","seq","path_id","path_seq","start_vid","node","edge","cost","agg_cost"}'::TEXT[] $$
+);
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_edgedisjointpaths'$$,
+    $$SELECT  '{"","","","directed","seq","path_id","path_seq","start_vid","end_vid","node","edge","cost","agg_cost"}'::TEXT[] $$
+);
+
+SELECT * FROM finish();
+ROLLBACK;
diff --git a/pgtap/max_flow/edmondsKarp-innerQuery.sql b/pgtap/max_flow/edmondsKarp-innerQuery.sql
new file mode 100644
index 0000000..abb5374
--- /dev/null
+++ b/pgtap/max_flow/edmondsKarp-innerQuery.sql
@@ -0,0 +1,36 @@
+\i setup.sql
+
+SELECT plan(188);
+
+
+SELECT has_function('pgr_edmondskarp',
+    ARRAY['text', 'bigint', 'bigint']);
+SELECT has_function('pgr_edmondskarp',
+    ARRAY['text', 'bigint', 'anyarray']);
+SELECT has_function('pgr_edmondskarp',
+    ARRAY['text', 'anyarray', 'bigint']);
+SELECT has_function('pgr_edmondskarp',
+    ARRAY['text', 'anyarray', 'anyarray']);
+
+SELECT function_returns('pgr_edmondskarp',
+    ARRAY['text', 'bigint', 'bigint'],
+    'setof record');
+SELECT function_returns('pgr_edmondskarp',
+    ARRAY['text', 'bigint', 'anyarray'],
+    'setof record');
+SELECT function_returns('pgr_edmondskarp',
+    ARRAY['text', 'anyarray', 'bigint'],
+    'setof record');
+SELECT function_returns('pgr_edmondskarp',
+    ARRAY['text', 'anyarray', 'anyarray'],
+    'setof record');
+
+
+-- ONLY WORKS ON DIRECTED GRAPH
+SELECT style_max_flow('pgr_edmondskarp', ', 2, 3)');
+SELECT style_max_flow('pgr_edmondskarp', ', 2, ARRAY[3])');
+SELECT style_max_flow('pgr_edmondskarp', ', ARRAY[2], 3)');
+SELECT style_max_flow('pgr_edmondskarp', ', ARRAY[2], ARRAY[3])');
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/max_flow/edmondsKarp-types-check.sql b/pgtap/max_flow/edmondsKarp-types-check.sql
new file mode 100644
index 0000000..03eb5c0
--- /dev/null
+++ b/pgtap/max_flow/edmondsKarp-types-check.sql
@@ -0,0 +1,143 @@
+\i setup.sql
+
+SELECT plan(21);
+
+SELECT has_function('pgr_edmondskarp');
+
+SELECT has_function('pgr_edmondskarp', ARRAY[ 'text', 'bigint', 'bigint' ]);
+SELECT has_function('pgr_edmondskarp', ARRAY[ 'text', 'anyarray', 'bigint' ]);
+SELECT has_function('pgr_edmondskarp', ARRAY[ 'text', 'bigint', 'anyarray' ]);
+SELECT has_function('pgr_edmondskarp', ARRAY[ 'text', 'anyarray', 'anyarray' ]);
+
+SELECT function_returns('pgr_edmondskarp', ARRAY[ 'text', 'bigint', 'bigint' ], 'setof record');
+SELECT function_returns('pgr_edmondskarp', ARRAY[ 'text', 'bigint', 'anyarray' ], 'setof record');
+SELECT function_returns('pgr_edmondskarp', ARRAY[ 'text', 'anyarray', 'bigint' ], 'setof record');
+SELECT function_returns('pgr_edmondskarp', ARRAY[ 'text', 'anyarray', 'anyarray' ], 'setof record');
+
+-- testing column names
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_edmondskarp'$$,
+    $$SELECT  '{"","","","seq","edge","start_vid","end_vid","flow","residual_capacity"}'::TEXT[] $$
+);
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_edmondskarp'$$,
+    $$SELECT  '{"","","","seq","edge","start_vid","end_vid","flow","residual_capacity"}'::TEXT[] $$
+);
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_edmondskarp'$$,
+    $$SELECT  '{"","","","seq","edge","start_vid","end_vid","flow","residual_capacity"}'::TEXT[] $$
+);
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_edmondskarp'$$,
+    $$SELECT  '{"","","","seq","edge","start_vid","end_vid","flow","residual_capacity"}'::TEXT[] $$
+);
+
+
+-- pgr_edmondskarp works
+PREPARE t1 AS
+SELECT * FROM pgr_edmondskarp(
+    'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+    3, 5
+);
+PREPARE t2 AS
+SELECT * FROM pgr_edmondskarp(
+    'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+    3, ARRAY[5]
+);
+PREPARE t3 AS
+SELECT * FROM pgr_edmondskarp(
+    'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+    ARRAY[3], 5
+);
+PREPARE t4 AS
+SELECT * FROM pgr_edmondskarp(
+    'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+    ARRAY[3], ARRAY[5]
+);
+
+SELECT lives_ok('t1','pgr_pgr_edmondskarp(one to one)');
+SELECT lives_ok('t2','pgr_pgr_edmondskarp(one to many)');
+SELECT lives_ok('t3','pgr_pgr_edmondskarp(many to one)');
+SELECT lives_ok('t4','pgr_pgr_edmondskarp(many to many)');
+
+
+-- preparing for testing return types
+PREPARE all_return AS
+SELECT  
+    'integer'::text AS t1,
+    'bigint'::text AS t2,
+    'bigint'::text AS t3,
+    'bigint'::text AS t4,
+    'bigint'::text AS t5,
+    'bigint'::text AS t6;
+
+
+PREPARE q1 AS
+SELECT pg_typeof(seq)::text AS t1,
+    pg_typeof(edge)::text AS t2,
+    pg_typeof(start_vid)::text as t3,
+    pg_typeof(end_vid)::text as t4,
+    pg_typeof(flow)::text AS t5,
+    pg_typeof(residual_capacity)::text AS t6
+    FROM (
+        SELECT * FROM pgr_edmondskarp(
+            'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+        3, 5
+        ) ) AS a
+    limit 1;
+
+
+PREPARE q2 AS
+SELECT pg_typeof(seq)::text AS t1,
+    pg_typeof(edge)::text AS t2,
+    pg_typeof(start_vid)::text as t3,
+    pg_typeof(end_vid)::text as t4,
+    pg_typeof(flow)::text AS t5,
+    pg_typeof(residual_capacity)::text AS t6
+    FROM (
+        SELECT * FROM pgr_edmondskarp(
+            'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+        3, ARRAY[5]
+        ) ) AS a
+    limit 1
+;
+
+PREPARE q3 AS
+SELECT pg_typeof(seq)::text AS t1,
+    pg_typeof(edge)::text AS t2,
+    pg_typeof(start_vid)::text as t3,
+    pg_typeof(end_vid)::text as t4,
+    pg_typeof(flow)::text AS t5,
+    pg_typeof(residual_capacity)::text AS t6
+    FROM (
+        SELECT * FROM pgr_edmondskarp(
+            'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+        ARRAY[3], 5
+        ) ) AS a
+    limit 1;
+
+
+PREPARE q4 AS
+SELECT pg_typeof(seq)::text AS t1,
+    pg_typeof(edge)::text AS t2,
+    pg_typeof(start_vid)::text as t3,
+    pg_typeof(end_vid)::text as t4,
+    pg_typeof(flow)::text AS t5,
+    pg_typeof(residual_capacity)::text AS t6
+    FROM (
+        SELECT * FROM pgr_edmondskarp(
+            'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+        ARRAY[3], ARRAY[5]
+        ) ) AS a
+    limit 1
+;
+
+-- testing return types
+SELECT set_eq('q1', 'all_return','1 to 1: Expected returning, columns names & types');
+SELECT set_eq('q2', 'all_return','1 to many: Expected returning, columns names & types');
+SELECT set_eq('q3', 'all_return','many to 1: Expected returning, columns names & types');
+SELECT set_eq('q4', 'all_return','many to many: Expected returning, columns names & types');
+
+
+SELECT * FROM finish();
+ROLLBACK;
diff --git a/pgtap/max_flow/internet_example.sql b/pgtap/max_flow/internet_example.sql
new file mode 100644
index 0000000..0fef4aa
--- /dev/null
+++ b/pgtap/max_flow/internet_example.sql
@@ -0,0 +1,144 @@
+\i setup.sql
+
+SELECT plan(3);
+
+
+/**************************** BOOST EXAMPLE ****************/
+
+CREATE TABLE boost_example(
+    id SERIAL PRIMARY KEY,
+    source BIGINT,
+    target BIGINT,
+    capacity INTEGER
+);
+
+INSERT INTO boost_example (source, target, capacity)
+VALUES 
+(1, 7,3),
+(1, 2, 20),
+(1, 3, 20),
+(2, 6,1),
+(2, 1, 20),
+(2, 4, 20),
+(3, 5,4),
+(3, 4, 20),
+(3, 1, 20),
+(4, 8,5),
+(4, 3, 20),
+(4, 2, 20),
+(5, 6, 20),
+(5, 7, 20),
+(6, 5, 20),
+(6, 8, 20),
+(7, 8, 20),
+(7, 5, 20),
+(8, 7, 20),
+(8, 6, 20)
+;
+
+
+/* NOTE: what is equal between the three algorithms is the maximum flow achieved */
+
+PREPARE boostSample1 AS
+SELECT sum(flow) FROM pgr_EdmondsKarp(
+    'SELECT id, source, target,capacity
+    FROM boost_example'
+   ,1, 8) WHERE start_vid = 1;
+
+PREPARE boostSample2 AS
+SELECT * FROM pgr_BoykovKolmogorov(
+    'SELECT id, source, target,capacity
+    FROM boost_example'
+   ,1, 8) WHERE start_vid = 1;
+
+PREPARE boostSample3 AS
+SELECT * FROM pgr_PushRelabel(
+    'SELECT id, source, target,capacity
+    FROM boost_example'
+   ,1, 8) WHERE start_vid = 1;
+
+PREPARE boostSample4 AS
+SELECT sum(flow) FROM pgr_EdmondsKarp(
+    'SELECT id, source, target,capacity
+    FROM boost_example'
+    ,1, 8) WHERE end_vid = 8;
+
+PREPARE boostSample5 AS
+SELECT * FROM pgr_BoykovKolmogorov(
+    'SELECT id, source, target,capacity
+    FROM boost_example'
+    ,1, 8) WHERE end_vid = 8;
+
+PREPARE boostSample6 AS
+SELECT * FROM pgr_PushRelabel(
+    'SELECT id, source, target,capacity
+    FROM boost_example'
+    ,1, 8) WHERE end_vid = 8;
+
+SELECT ('boostSample1',13, 'BOOST: pgr_EdmondsKarp, flow from source is 13');
+SELECT ('boostSample4',13, 'BOOST: pgr_EdmondsKarp, flow from source is 13');
+SELECT ('boostSample2',13, 'BOOST: pgr_BoykovKolmogorov, flow from source is 13');
+SELECT ('boostSample5',13, 'BOOST: pgr_BoykovKolmogorov, flow from source is 13');
+SELECT ('boostSample3',13, 'BOOST: pgr_PushRelabel, flow from source is 13');
+SELECT ('boostSample6',13, 'BOOST: pgr_PushRelabel, flow from source is 13');
+
+/**************************** WIKI EXAMPLE ****************/
+
+CREATE TABLE wiki_example(
+    id SERIAL PRIMARY KEY,
+    source BIGINT,
+    target BIGINT,
+    capacity INTEGER
+);
+
+/*
+S = 1, O = 2, P = 3, Q = 4, R = 5, T = 6
+*/
+INSERT INTO wiki_example(source, target, capacity)
+VALUES 
+(1, 2, 3),
+(1, 3, 3),
+(2, 3, 2),
+(2, 4, 3),
+(3, 5, 2),
+(4, 5, 4),
+(4, 6, 2),
+(5, 6, 3)
+;
+
+
+PREPARE wikiSample1 AS
+SELECT * FROM pgr_EdmondsKarp(
+    'SELECT id, source, target,capacity
+    FROM wiki_example'
+   ,1, 6);
+
+PREPARE wikiSample2 AS
+SELECT * FROM pgr_BoykovKolmogorov(
+    'SELECT id, source, target,capacity
+    FROM wiki_example'
+   ,1, 6);
+
+PREPARE wikiSample3 AS
+SELECT * FROM pgr_PushRelabel(
+    'SELECT id, source, target,capacity
+    FROM wiki_example'
+   ,1, 6);
+
+PREPARE wikiresult AS
+SELECT *
+FROM (VALUES
+    (1, 1, 1, 2, 3, 0),
+    (2, 2, 1, 3, 2, 1),
+    (3, 4, 2, 4, 3, 0),
+    (4, 5, 3, 5, 2, 0),
+    (5, 6, 4, 5, 1, 3),
+    (6, 7, 4, 6, 2, 0),
+    (7, 8, 5, 6, 3, 0)
+) AS t(seq, edge_id, source, target, flow, residual_capacity);
+
+SELECT set_eq('wikiSample1', 'wikiresult', 'WIKI: pgr_EdmondsKarp');
+SELECT set_eq('wikiSample2', 'wikiresult', 'WIKI: pgr_BoykovKolmogorov');
+SELECT set_eq('wikiSample3', 'wikiresult', 'WIKI: pgr_PushRelabel');
+
+ROLLBACK;
diff --git a/pgtap/max_flow/maxCardinalityMatch-innerQuery.sql b/pgtap/max_flow/maxCardinalityMatch-innerQuery.sql
new file mode 100644
index 0000000..90bdb05
--- /dev/null
+++ b/pgtap/max_flow/maxCardinalityMatch-innerQuery.sql
@@ -0,0 +1,19 @@
+\i setup.sql
+
+SELECT plan(137);
+
+
+SELECT has_function('pgr_maxcardinalitymatch',
+    ARRAY['text', 'boolean']);
+
+SELECT function_returns('pgr_maxcardinalitymatch',
+    ARRAY['text', 'boolean'],
+    'setof record');
+
+
+SELECT style_cardinalitymatch('pgr_maxcardinalitymatch', ')');
+SELECT style_cardinalitymatch('pgr_maxcardinalitymatch', ', true)');
+SELECT style_cardinalitymatch('pgr_maxcardinalitymatch', ', false)');
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/max_flow/maxCardinalityMatch-types-check.sql b/pgtap/max_flow/maxCardinalityMatch-types-check.sql
new file mode 100644
index 0000000..565bd94
--- /dev/null
+++ b/pgtap/max_flow/maxCardinalityMatch-types-check.sql
@@ -0,0 +1,52 @@
+\i setup.sql
+SET client_min_messages TO WARNING;
+
+SELECT plan(7);
+
+
+SELECT has_function('pgr_maxcardinalitymatch');
+
+SELECT has_function('pgr_maxcardinalitymatch', ARRAY['text', 'boolean']);
+
+SELECT function_returns('pgr_maxcardinalitymatch', ARRAY['text', 'boolean'], 'setof record');
+
+-- Maximum cardinality matching
+PREPARE mcm_dir AS
+SELECT * FROM pgr_maxCardinalityMatch(
+    'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table'
+);
+
+PREPARE mcm_undir AS
+SELECT * FROM pgr_maxCardinalityMatch(
+    'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table',
+    directed := false
+);
+
+SELECT lives_ok('mcm_dir','directed');
+SELECT lives_ok('mcm_undir','undirected');
+
+PREPARE mcm_q AS
+SELECT pg_typeof(seq)::text AS t1, pg_typeof(edge)::text AS t2,
+    pg_typeof(source)::text AS t3, pg_typeof(target)::text AS t4
+    FROM (
+        SELECT * FROM pgr_maxCardinalityMatch(
+        'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table'
+        ) ) AS a
+    limit 1
+;
+
+PREPARE mcm_v AS
+SELECT  'integer'::text AS t1,'bigint'::text AS t2,
+    'bigint'::text AS t3, 'bigint'::text AS t4;
+
+SELECT set_eq('mcm_q', 'mcm_v','Expected returning, columns names & types');
+
+-- testing column names
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_maxcardinalitymatch'$$,
+    $$SELECT  '{"edges_sql","directed","seq","edge","source","target"}'::TEXT[] $$
+);
+
+
+SELECT * FROM finish();
+ROLLBACK;
diff --git a/pgtap/max_flow/maxflow-group-innerQuery.sql b/pgtap/max_flow/maxflow-group-innerQuery.sql
new file mode 100644
index 0000000..04f346f
--- /dev/null
+++ b/pgtap/max_flow/maxflow-group-innerQuery.sql
@@ -0,0 +1,36 @@
+\i setup.sql
+
+SELECT plan(188);
+
+
+SELECT has_function('pgr_maxflow',
+    ARRAY['text', 'bigint', 'bigint']);
+SELECT has_function('pgr_maxflow',
+    ARRAY['text', 'bigint', 'anyarray']);
+SELECT has_function('pgr_maxflow',
+    ARRAY['text', 'anyarray', 'bigint']);
+SELECT has_function('pgr_maxflow',
+    ARRAY['text', 'anyarray', 'anyarray']);
+
+SELECT function_returns('pgr_maxflow',
+    ARRAY['text', 'bigint', 'bigint'],
+    'bigint');
+SELECT function_returns('pgr_maxflow',
+    ARRAY['text', 'bigint', 'anyarray'],
+    'bigint');
+SELECT function_returns('pgr_maxflow',
+    ARRAY['text', 'anyarray', 'bigint'],
+    'bigint');
+SELECT function_returns('pgr_maxflow',
+    ARRAY['text', 'anyarray', 'anyarray'],
+    'bigint');
+
+
+-- ONLY WORKS ON DIRECTED GRAPH
+SELECT style_max_flow('pgr_maxflow', ', 2, 3)');
+SELECT style_max_flow('pgr_maxflow', ', 2, ARRAY[3])');
+SELECT style_max_flow('pgr_maxflow', ', ARRAY[2], 3)');
+SELECT style_max_flow('pgr_maxflow', ', ARRAY[2], ARRAY[3])');
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/max_flow/maxflow-types-check.sql b/pgtap/max_flow/maxflow-types-check.sql
new file mode 100644
index 0000000..52cfbf3
--- /dev/null
+++ b/pgtap/max_flow/maxflow-types-check.sql
@@ -0,0 +1,118 @@
+\i setup.sql
+
+SELECT plan(21);
+
+SELECT has_function('pgr_maxflow');
+
+SELECT has_function('pgr_maxflow', ARRAY[ 'text', 'bigint', 'bigint' ]);
+SELECT has_function('pgr_maxflow', ARRAY[ 'text', 'anyarray', 'bigint' ]);
+SELECT has_function('pgr_maxflow', ARRAY[ 'text', 'bigint', 'anyarray' ]);
+SELECT has_function('pgr_maxflow', ARRAY[ 'text', 'anyarray', 'anyarray' ]);
+
+SELECT function_returns('pgr_maxflow', ARRAY[ 'text', 'bigint', 'bigint' ], 'bigint');
+SELECT function_returns('pgr_maxflow', ARRAY[ 'text', 'bigint', 'anyarray' ], 'bigint');
+SELECT function_returns('pgr_maxflow', ARRAY[ 'text', 'anyarray', 'bigint' ], 'bigint');
+SELECT function_returns('pgr_maxflow', ARRAY[ 'text', 'anyarray', 'anyarray' ], 'bigint');
+
+-- testing column names
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_maxflow'$$,
+    $$SELECT  '{"edges_sql","source_vertices","sink_vertices"}'::TEXT[] $$
+);
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_maxflow'$$,
+    $$SELECT  '{"edges_sql","source_vertices","sink_vertices"}'::TEXT[] $$
+);
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_maxflow'$$,
+    $$SELECT  '{"edges_sql","source_vertices","sink_vertices"}'::TEXT[] $$
+);
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_maxflow'$$,
+    $$SELECT  '{"edges_sql","source_vertices","sink_vertices"}'::TEXT[] $$
+);
+
+
+-- pgr_maxflow works
+PREPARE t1 AS
+SELECT * FROM pgr_maxflow(
+    'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+    3, 5
+);
+PREPARE t2 AS
+SELECT * FROM pgr_maxflow(
+    'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+    3, ARRAY[5]
+);
+PREPARE t3 AS
+SELECT * FROM pgr_maxflow(
+    'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+    ARRAY[3], 5
+);
+PREPARE t4 AS
+SELECT * FROM pgr_maxflow(
+    'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+    ARRAY[3], ARRAY[5]
+);
+
+SELECT lives_ok('t1','pgr_pgr_maxflow(one to one)');
+SELECT lives_ok('t2','pgr_pgr_maxflow(one to many)');
+SELECT lives_ok('t3','pgr_pgr_maxflow(many to one)');
+SELECT lives_ok('t4','pgr_pgr_maxflow(many to many)');
+
+
+-- preparing for testing return types
+PREPARE all_return AS
+SELECT  
+    'bigint'::text AS t1;
+
+
+PREPARE q1 AS
+SELECT pg_typeof(pgr_maxflow)::text AS t1
+    FROM (
+        SELECT * FROM pgr_maxflow(
+            'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+        3, 5
+        ) ) AS a
+    limit 1;
+
+
+PREPARE q2 AS
+SELECT pg_typeof(pgr_maxflow)::text AS t1
+    FROM (
+        SELECT * FROM pgr_maxflow(
+            'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+        3, ARRAY[5]
+        ) ) AS a
+    limit 1
+;
+
+PREPARE q3 AS
+SELECT pg_typeof(pgr_maxflow)::text AS t1
+    FROM (
+        SELECT * FROM pgr_maxflow(
+            'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+        ARRAY[3], 5
+        ) ) AS a
+    limit 1;
+
+
+PREPARE q4 AS
+SELECT pg_typeof(pgr_maxflow)::text AS t1
+    FROM (
+        SELECT * FROM pgr_maxflow(
+            'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+        ARRAY[3], ARRAY[5]
+        ) ) AS a
+    limit 1
+;
+
+-- testing return types
+SELECT set_eq('q1', 'all_return','1 to 1: Expected returning, columns names & types');
+SELECT set_eq('q2', 'all_return','1 to many: Expected returning, columns names & types');
+SELECT set_eq('q3', 'all_return','many to 1: Expected returning, columns names & types');
+SELECT set_eq('q4', 'all_return','many to many: Expected returning, columns names & types');
+
+
+SELECT * FROM finish();
+ROLLBACK;
diff --git a/pgtap/max_flow/pushRelabel-innerQuery.sql b/pgtap/max_flow/pushRelabel-innerQuery.sql
new file mode 100644
index 0000000..10c3546
--- /dev/null
+++ b/pgtap/max_flow/pushRelabel-innerQuery.sql
@@ -0,0 +1,36 @@
+\i setup.sql
+
+SELECT plan(188);
+
+
+SELECT has_function('pgr_pushrelabel',
+    ARRAY['text', 'bigint', 'bigint']);
+SELECT has_function('pgr_pushrelabel',
+    ARRAY['text', 'bigint', 'anyarray']);
+SELECT has_function('pgr_pushrelabel',
+    ARRAY['text', 'anyarray', 'bigint']);
+SELECT has_function('pgr_pushrelabel',
+    ARRAY['text', 'anyarray', 'anyarray']);
+
+SELECT function_returns('pgr_pushrelabel',
+    ARRAY['text', 'bigint', 'bigint'],
+    'setof record');
+SELECT function_returns('pgr_pushrelabel',
+    ARRAY['text', 'bigint', 'anyarray'],
+    'setof record');
+SELECT function_returns('pgr_pushrelabel',
+    ARRAY['text', 'anyarray', 'bigint'],
+    'setof record');
+SELECT function_returns('pgr_pushrelabel',
+    ARRAY['text', 'anyarray', 'anyarray'],
+    'setof record');
+
+
+-- ONLY WORKS ON DIRECTED GRAPH
+SELECT style_max_flow('pgr_pushrelabel', ', 2, 3)');
+SELECT style_max_flow('pgr_pushrelabel', ', 2, ARRAY[3])');
+SELECT style_max_flow('pgr_pushrelabel', ', ARRAY[2], 3)');
+SELECT style_max_flow('pgr_pushrelabel', ', ARRAY[2], ARRAY[3])');
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/max_flow/pushRelabel-types-check.sql b/pgtap/max_flow/pushRelabel-types-check.sql
new file mode 100644
index 0000000..106aa5b
--- /dev/null
+++ b/pgtap/max_flow/pushRelabel-types-check.sql
@@ -0,0 +1,143 @@
+\i setup.sql
+
+SELECT plan(21);
+
+SELECT has_function('pgr_pushrelabel');
+
+SELECT has_function('pgr_pushrelabel', ARRAY[ 'text', 'bigint', 'bigint' ]);
+SELECT has_function('pgr_pushrelabel', ARRAY[ 'text', 'anyarray', 'bigint' ]);
+SELECT has_function('pgr_pushrelabel', ARRAY[ 'text', 'bigint', 'anyarray' ]);
+SELECT has_function('pgr_pushrelabel', ARRAY[ 'text', 'anyarray', 'anyarray' ]);
+
+SELECT function_returns('pgr_pushrelabel', ARRAY[ 'text', 'bigint', 'bigint' ], 'setof record');
+SELECT function_returns('pgr_pushrelabel', ARRAY[ 'text', 'bigint', 'anyarray' ], 'setof record');
+SELECT function_returns('pgr_pushrelabel', ARRAY[ 'text', 'anyarray', 'bigint' ], 'setof record');
+SELECT function_returns('pgr_pushrelabel', ARRAY[ 'text', 'anyarray', 'anyarray' ], 'setof record');
+
+-- testing column names
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_pushrelabel'$$,
+    $$SELECT  '{"","","","seq","edge","start_vid","end_vid","flow","residual_capacity"}'::TEXT[] $$
+);
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_pushrelabel'$$,
+    $$SELECT  '{"","","","seq","edge","start_vid","end_vid","flow","residual_capacity"}'::TEXT[] $$
+);
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_pushrelabel'$$,
+    $$SELECT  '{"","","","seq","edge","start_vid","end_vid","flow","residual_capacity"}'::TEXT[] $$
+);
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_pushrelabel'$$,
+    $$SELECT  '{"","","","seq","edge","start_vid","end_vid","flow","residual_capacity"}'::TEXT[] $$
+);
+
+
+-- pgr_pushrelabel works
+PREPARE t1 AS
+SELECT * FROM pgr_pushrelabel(
+    'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+    3, 5
+);
+PREPARE t2 AS
+SELECT * FROM pgr_pushrelabel(
+    'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+    3, ARRAY[5]
+);
+PREPARE t3 AS
+SELECT * FROM pgr_pushrelabel(
+    'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+    ARRAY[3], 5
+);
+PREPARE t4 AS
+SELECT * FROM pgr_pushrelabel(
+    'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+    ARRAY[3], ARRAY[5]
+);
+
+SELECT lives_ok('t1','pgr_pgr_pushrelabel(one to one)');
+SELECT lives_ok('t2','pgr_pgr_pushrelabel(one to many)');
+SELECT lives_ok('t3','pgr_pgr_pushrelabel(many to one)');
+SELECT lives_ok('t4','pgr_pgr_pushrelabel(many to many)');
+
+
+-- preparing for testing return types
+PREPARE all_return AS
+SELECT  
+    'integer'::text AS t1,
+    'bigint'::text AS t2,
+    'bigint'::text AS t3,
+    'bigint'::text AS t4,
+    'bigint'::text AS t5,
+    'bigint'::text AS t6;
+
+
+PREPARE q1 AS
+SELECT pg_typeof(seq)::text AS t1,
+    pg_typeof(edge)::text AS t2,
+    pg_typeof(start_vid)::text as t3,
+    pg_typeof(end_vid)::text as t4,
+    pg_typeof(flow)::text AS t5,
+    pg_typeof(residual_capacity)::text AS t6
+    FROM (
+        SELECT * FROM pgr_pushrelabel(
+            'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+        3, 5
+        ) ) AS a
+    limit 1;
+
+
+PREPARE q2 AS
+SELECT pg_typeof(seq)::text AS t1,
+    pg_typeof(edge)::text AS t2,
+    pg_typeof(start_vid)::text as t3,
+    pg_typeof(end_vid)::text as t4,
+    pg_typeof(flow)::text AS t5,
+    pg_typeof(residual_capacity)::text AS t6
+    FROM (
+        SELECT * FROM pgr_pushrelabel(
+            'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+        3, ARRAY[5]
+        ) ) AS a
+    limit 1
+;
+
+PREPARE q3 AS
+SELECT pg_typeof(seq)::text AS t1,
+    pg_typeof(edge)::text AS t2,
+    pg_typeof(start_vid)::text as t3,
+    pg_typeof(end_vid)::text as t4,
+    pg_typeof(flow)::text AS t5,
+    pg_typeof(residual_capacity)::text AS t6
+    FROM (
+        SELECT * FROM pgr_pushrelabel(
+            'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+        ARRAY[3], 5
+        ) ) AS a
+    limit 1;
+
+
+PREPARE q4 AS
+SELECT pg_typeof(seq)::text AS t1,
+    pg_typeof(edge)::text AS t2,
+    pg_typeof(start_vid)::text as t3,
+    pg_typeof(end_vid)::text as t4,
+    pg_typeof(flow)::text AS t5,
+    pg_typeof(residual_capacity)::text AS t6
+    FROM (
+        SELECT * FROM pgr_pushrelabel(
+            'SELECT id, source, target, capacity, reverse_capacity FROM edge_table',
+        ARRAY[3], ARRAY[5]
+        ) ) AS a
+    limit 1
+;
+
+-- testing return types
+SELECT set_eq('q1', 'all_return','1 to 1: Expected returning, columns names & types');
+SELECT set_eq('q2', 'all_return','1 to many: Expected returning, columns names & types');
+SELECT set_eq('q3', 'all_return','many to 1: Expected returning, columns names & types');
+SELECT set_eq('q4', 'all_return','many to many: Expected returning, columns names & types');
+
+
+SELECT * FROM finish();
+ROLLBACK;
diff --git a/pgtap/pickDeliver/order_id_is_neg1.sql b/pgtap/pickDeliver/order_id_is_neg1.sql
new file mode 100644
index 0000000..844e9e0
--- /dev/null
+++ b/pgtap/pickDeliver/order_id_is_neg1.sql
@@ -0,0 +1,30 @@
+
+\i setup.sql
+
+SELECT plan(2);
+
+SELECT * INTO results
+FROM _pgr_pickDeliverEuclidean(
+    $$SELECT * FROM orders$$,
+    $$SELECT * FROM vehicles$$);
+
+DECLARE q1 CURSOR FOR
+SELECT DISTINCT order_id
+FROM results
+WHERE stop_type IN (-1, 1, 6);
+
+SELECT results_eq(
+    'q1'::refcursor,
+    ARRAY[ -1 ]::BIGINT[]
+);
+
+DECLARE q2 CURSOR FOR
+SELECT DISTINCT stop_type FROM results ORDER BY stop_type;
+
+SELECT results_eq(
+    'q2'::refcursor,
+    ARRAY[ -1, 1, 2, 3, 6 ]::INTEGER[]
+);
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/pickDeliver/pickDeliver-VS-pickDeliverEuclidean.sql b/pgtap/pickDeliver/pickDeliver-VS-pickDeliverEuclidean.sql
new file mode 100644
index 0000000..bb94554
--- /dev/null
+++ b/pgtap/pickDeliver/pickDeliver-VS-pickDeliverEuclidean.sql
@@ -0,0 +1,37 @@
+
+\i setup.sql
+
+SELECT plan(1);
+SET client_min_messages TO ERROR;
+
+PREPARE pd AS
+SELECT seq, vehicle_seq, vehicle_id, stop_seq, stop_type,
+    order_id, cargo,
+    travel_time, arrival_time, wait_time, service_time, departure_time
+FROM _pgr_pickDeliver(
+    'SELECT * FROM orders ORDER BY id',
+    'SELECT * from vehicles',
+    -- matrix query
+    'WITH
+    A AS (
+        SELECT p_node_id AS id, p_x AS x, p_y AS y FROM orders
+        UNION
+        SELECT d_node_id AS id, d_x, d_y FROM orders
+        UNION
+        SELECT start_node_id, start_x, start_y FROM vehicles
+    )
+    SELECT A.id AS start_vid, B.id AS end_vid, sqrt( (a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y)) AS agg_cost
+    FROM A, A AS B WHERE A.id != B.id'
+    );
+
+PREPARE pd_e AS
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    'SELECT * FROM orders ORDER BY id',
+    'SELECT * from vehicles');
+
+SELECT set_eq('pd', 'pd_e');
+
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/pickDeliver/pickDeliverEuclidean-innerquery.sql b/pgtap/pickDeliver/pickDeliverEuclidean-innerquery.sql
new file mode 100644
index 0000000..63743f7
--- /dev/null
+++ b/pgtap/pickDeliver/pickDeliverEuclidean-innerquery.sql
@@ -0,0 +1,261 @@
+\i setup.sql
+
+SELECT plan(92);
+SET client_min_messages TO ERROR;
+
+/* A call looks like this
+TODO select a smaller test, because each passing test takes about 19 seconds
+SELECT * INTO pickDeliverResults FROM _pgr_pickdeliverEuclidean(
+    $$SELECT * FROM orders$$,
+    $$SELECT * FROM vehicles$$,
+    30);
+*/
+
+SELECT has_function('_pgr_pickdelivereuclidean',
+    ARRAY['text', 'text', 'double precision', 'integer', 'integer']);
+
+SELECT function_returns('_pgr_pickdelivereuclidean',
+    ARRAY['text', 'text', 'double precision', 'integer', 'integer'],
+    'setof record');
+
+/* testing the pick/deliver orders*/
+CREATE OR REPLACE FUNCTION test_anyInteger_orders(fn TEXT, params TEXT[], parameter TEXT) 
+RETURNS SETOF TEXT AS
+$BODY$
+DECLARE
+start_sql TEXT;
+end_sql TEXT;
+query TEXT;
+p TEXT;
+BEGIN
+    start_sql = 'select * from ' || fn || '($$ SELECT ';
+    FOREACH  p IN ARRAY params LOOP
+        IF p = parameter THEN CONTINUE;
+        END IF;
+        start_sql = start_sql || p || ', ';
+    END LOOP;
+    end_sql = ' FROM orders $$,  $$SELECT * FROM vehicles $$, max_cycles := 30)';
+    
+    query := start_sql || parameter || '::SMALLINT ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+    
+    query := start_sql || parameter || '::INTEGER ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+    
+    query := start_sql || parameter || '::BIGINT ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+
+    query := start_sql || parameter || '::REAL ' || end_sql;
+    RETURN query SELECT throws_ok(query);
+
+    query := start_sql || parameter || '::FLOAT8 ' || end_sql;
+    RETURN query SELECT throws_ok(query);
+END;
+$BODY$ LANGUAGE plpgsql;
+
+/* testing the pick/deliver orders*/
+CREATE OR REPLACE FUNCTION test_anyNumerical_orders(fn TEXT, params TEXT[], parameter TEXT) 
+RETURNS SETOF TEXT AS
+$BODY$
+DECLARE
+start_sql TEXT;
+end_sql TEXT;
+query TEXT;
+p TEXT;
+BEGIN
+    start_sql = 'select * from ' || fn || '($$ SELECT ';
+    FOREACH  p IN ARRAY params LOOP
+        IF p = parameter THEN CONTINUE;
+        END IF;
+        start_sql = start_sql || p || ', ';
+    END LOOP;
+    end_sql = ' FROM orders $$,  $$SELECT * FROM vehicles $$, max_cycles := 30)';
+    
+    query := start_sql || parameter || '::SMALLINT ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+    
+    query := start_sql || parameter || '::INTEGER ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+    
+    query := start_sql || parameter || '::BIGINT ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+
+    query := start_sql || parameter || '::REAL ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+
+    query := start_sql || parameter || '::FLOAT8 ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+END;
+$BODY$ LANGUAGE plpgsql;
+
+/*
+testing the pick/deliver vehicles
+*/
+CREATE OR REPLACE FUNCTION test_anyInteger_vehicles(fn TEXT, params TEXT[], parameter TEXT) 
+RETURNS SETOF TEXT AS
+$BODY$
+DECLARE
+start_sql TEXT;
+end_sql TEXT;
+query TEXT;
+p TEXT;
+BEGIN
+    start_sql = 'SELECT * FROM ' || fn || '($$ SELECT * FROM orders $$, $$SELECT ';
+
+    FOREACH  p IN ARRAY params LOOP
+        IF p = parameter THEN CONTINUE;
+        END IF;
+        start_sql = start_sql || p || ', ';
+    END LOOP;
+    end_sql = ' FROM  vehicles $$, max_cycles := 30)';
+    
+    query := start_sql || parameter || '::SMALLINT ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+    
+    query := start_sql || parameter || '::INTEGER ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+    
+    query := start_sql || parameter || '::BIGINT ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+
+    query := start_sql || parameter || '::REAL ' || end_sql;
+    RETURN query SELECT throws_ok(query);
+
+    query := start_sql || parameter || '::FLOAT8 ' || end_sql;
+    RETURN query SELECT throws_ok(query);
+END;
+$BODY$ LANGUAGE plpgsql;
+
+/*
+testing the pick/deliver vehicles
+ */
+CREATE OR REPLACE FUNCTION test_anyNumerical_vehicles(fn TEXT, params TEXT[], parameter TEXT) 
+RETURNS SETOF TEXT AS
+$BODY$
+DECLARE
+start_sql TEXT;
+end_sql TEXT;
+query TEXT;
+p TEXT;
+BEGIN
+    start_sql = 'SELECT * FROM ' || fn || '($$ SELECT * FROM orders $$, $$ SELECT ';
+    FOREACH  p IN ARRAY params LOOP
+        IF p = parameter THEN CONTINUE;
+        END IF;
+        start_sql = start_sql || p || ', ';
+    END LOOP;
+    end_sql = ' FROM vehicles $$, max_cycles := 30)';
+    
+    query := start_sql || parameter || '::SMALLINT ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+    
+    query := start_sql || parameter || '::INTEGER ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+    
+    query := start_sql || parameter || '::BIGINT ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+
+    query := start_sql || parameter || '::REAL ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+
+    query := start_sql || parameter || '::FLOAT8 ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+END;
+$BODY$ LANGUAGE plpgsql;
+
+SELECT test_anyInteger_orders('_pgr_pickdelivereuclidean',
+    ARRAY['id', 'demand',
+    'p_x', 'p_y', 'p_open', 'p_close', 'p_service',
+    'd_x', 'd_y', 'd_open', 'd_close', 'd_service'],
+    'id');
+
+SELECT test_anynumerical_orders('_pgr_pickdelivereuclidean',
+    ARRAY['id', 'demand',
+    'p_x', 'p_y', 'p_open', 'p_close', 'p_service',
+    'd_x', 'd_y', 'd_open', 'd_close', 'd_service'],
+    'demand');
+
+SELECT test_anynumerical_orders('_pgr_pickdelivereuclidean',
+    ARRAY['id', 'demand',
+    'p_x', 'p_y', 'p_open', 'p_close', 'p_service',
+    'd_x', 'd_y', 'd_open', 'd_close', 'd_service'],
+    'p_x');
+SELECT test_anynumerical_orders('_pgr_pickdelivereuclidean',
+    ARRAY['id', 'demand',
+    'p_x', 'p_y', 'p_open', 'p_close', 'p_service',
+    'd_x', 'd_y', 'd_open', 'd_close', 'd_service'],
+    'p_y');
+SELECT test_anynumerical_orders('_pgr_pickdelivereuclidean',
+    ARRAY['id', 'demand',
+    'p_x', 'p_y', 'p_open', 'p_close', 'p_service',
+    'd_x', 'd_y', 'd_open', 'd_close', 'd_service'],
+    'p_open');
+SELECT test_anynumerical_orders('_pgr_pickdelivereuclidean',
+    ARRAY['id', 'demand',
+    'p_x', 'p_y', 'p_open', 'p_close', 'p_service',
+    'd_x', 'd_y', 'd_open', 'd_close', 'd_service'],
+    'p_close');
+SELECT test_anynumerical_orders('_pgr_pickdelivereuclidean',
+    ARRAY['id', 'demand',
+    'p_x', 'p_y', 'p_open', 'p_close', 'p_service',
+    'd_x', 'd_y', 'd_open', 'd_close', 'd_service'],
+    'p_service');
+
+SELECT test_anynumerical_orders('_pgr_pickdelivereuclidean',
+    ARRAY['id', 'demand',
+    'p_x', 'p_y', 'p_open', 'p_close', 'p_service',
+    'd_x', 'd_y', 'd_open', 'd_close', 'd_service'],
+    'd_x');
+SELECT test_anynumerical_orders('_pgr_pickdelivereuclidean',
+    ARRAY['id', 'demand',
+    'p_x', 'p_y', 'p_open', 'p_close', 'p_service',
+    'd_x', 'd_y', 'd_open', 'd_close', 'd_service'],
+    'd_y');
+SELECT test_anynumerical_orders('_pgr_pickdelivereuclidean',
+    ARRAY['id', 'demand',
+    'p_x', 'p_y', 'p_open', 'p_close', 'p_service',
+    'd_x', 'd_y', 'd_open', 'd_close', 'd_service'],
+    'd_open');
+SELECT test_anynumerical_orders('_pgr_pickdelivereuclidean',
+    ARRAY['id', 'demand',
+    'p_x', 'p_y', 'p_open', 'p_close', 'p_service',
+    'd_x', 'd_y', 'd_open', 'd_close', 'd_service'],
+    'd_close');
+SELECT test_anynumerical_orders('_pgr_pickdelivereuclidean',
+    ARRAY['id', 'demand',
+    'p_x', 'p_y', 'p_open', 'p_close', 'p_service',
+    'd_x', 'd_y', 'd_open', 'd_close', 'd_service'],
+    'd_service');
+
+/* Currently this are not used TODO add when they are used
+    'end_x', 'end_y', 'end_open', 'end_close', 'end_service'],
+    'speed' is optional defaults to 1
+    'start_service' is optional defaults to 0
+*/
+SELECT test_anyInteger_vehicles('_pgr_pickdelivereuclidean',
+    ARRAY['id', 'capacity', 
+    'start_x', 'start_y', 'start_open', 'start_close'],
+    'id');
+SELECT test_anyNumerical_vehicles('_pgr_pickdelivereuclidean',
+    ARRAY['id', 'capacity', 
+    'start_x', 'start_y', 'start_open', 'start_close'],
+    'capacity');
+SELECT test_anyNumerical_vehicles('_pgr_pickdelivereuclidean',
+    ARRAY['id', 'capacity', 
+    'start_x', 'start_y', 'start_open', 'start_close'],
+    'start_x');
+SELECT test_anyNumerical_vehicles('_pgr_pickdelivereuclidean',
+    ARRAY['id', 'capacity', 
+    'start_x', 'start_y', 'start_open', 'start_close'],
+    'start_y');
+SELECT test_anyNumerical_vehicles('_pgr_pickdelivereuclidean',
+    ARRAY['id', 'capacity', 
+    'start_x', 'start_y', 'start_open', 'start_close'],
+    'start_open');
+SELECT test_anyNumerical_vehicles('_pgr_pickdelivereuclidean',
+    ARRAY['id', 'capacity', 
+    'start_x', 'start_y', 'start_open', 'start_close'],
+    'start_close');
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/pickDeliver/pickDeliverEuclidean_types_check.sql b/pgtap/pickDeliver/pickDeliverEuclidean_types_check.sql
new file mode 100644
index 0000000..6f6ba12
--- /dev/null
+++ b/pgtap/pickDeliver/pickDeliverEuclidean_types_check.sql
@@ -0,0 +1,65 @@
+
+\i setup.sql
+
+SELECT plan(4);
+
+
+SELECT has_function('_pgr_pickdelivereuclidean',
+    ARRAY['text','text', 'double precision', 'integer', 'integer']);
+SELECT function_returns('_pgr_pickdelivereuclidean',
+    ARRAY['text','text', 'double precision', 'integer', 'integer'],
+    'setof record');
+
+-- testing column names
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = '_pgr_pickdelivereuclidean'$$,
+    $$SELECT  '{"","","factor","max_cycles","initial_sol","seq","vehicle_seq","vehicle_id","stop_seq","stop_type","order_id","cargo",
+    "travel_time","arrival_time","wait_time","service_time","departure_time"}'::TEXT[] $$
+);
+
+
+PREPARE expected_types AS
+SELECT
+'integer'::text AS t1,
+'integer'::text AS t2,
+'bigint'::text AS t3,
+
+'integer'::text AS t4,
+'integer'::text AS t5,
+'bigint'::text AS t6,
+
+'double precision'::text AS t7,
+'double precision'::text AS t8,
+'double precision'::text AS t9,
+'double precision'::text AS t10,
+'double precision'::text AS t11,
+'double precision'::text AS t12;
+
+SELECT * INTO pickDeliverResults FROM _pgr_pickdeliverEuclidean(
+    $$SELECT * FROM orders $$,
+    $$SELECT * FROM vehicles $$
+    );
+
+
+PREPARE real_types AS
+SELECT
+    pg_typeof(seq)::text AS t1,
+    pg_typeof(vehicle_seq)::text AS t2,
+    pg_typeof(vehicle_id)::text AS t3,
+
+    pg_typeof(stop_seq)::text AS t4,
+    pg_typeof(stop_type)::text AS t5,
+    pg_typeof(order_id)::text AS t6,
+
+    pg_typeof(cargo)::text AS t7,
+    pg_typeof(travel_time)::text AS t8,
+    pg_typeof(arrival_time)::text AS t9,
+    pg_typeof(wait_time)::TEXT AS t10,
+    pg_typeof(service_time)::TEXT AS t11,
+    pg_typeof(departure_time)::TEXT AS t12
+FROM  pickdeliverResults LIMIT 1;
+
+SELECT set_eq('expected_types', 'real_types','_pgr_pickdeliverEuclidean: SHOULD RETURN expected columns names & types');
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/pickDeliver/wrong_data_pickDeliverEuclidean.sql b/pgtap/pickDeliver/wrong_data_pickDeliverEuclidean.sql
new file mode 100644
index 0000000..b5ba7a0
--- /dev/null
+++ b/pgtap/pickDeliver/wrong_data_pickDeliverEuclidean.sql
@@ -0,0 +1,284 @@
+
+\i setup.sql
+
+SELECT plan(23);
+
+PREPARE q1 AS
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    $$SELECT * FROM orders$$,
+    $$SELECT * FROM vehicles$$,
+    max_cycles := 30);
+
+
+SELECT lives_ok('q1', 'Original query should not fail');
+
+--------------------------------------
+-- testing wrong data on max_cycles 
+--------------------------------------
+PREPARE q6 AS
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    $$SELECT * FROM orders$$,
+    $$SELECT * FROM vehicles$$,
+    max_cycles := -1);
+
+PREPARE q61 AS
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    $$SELECT * FROM orders$$,
+    $$SELECT * FROM vehicles$$,
+    max_cycles := 0);
+
+SELECT throws_ok('q6',
+    'XX000',
+    'Illegal value in parameter: max_cycles',
+    'Should throw: max_cycles < 0');
+
+SELECT lives_ok('q61',
+    'Should live: max_cycles == 0');
+
+
+--------------------------------------
+-- testing wrong data on initial_sol 
+--------------------------------------
+PREPARE initsol1 AS
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    $$SELECT * FROM orders$$,
+    $$SELECT * FROM vehicles$$,
+    initial_sol := -1);
+
+PREPARE initsol2 AS
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    $$SELECT * FROM orders$$,
+    $$SELECT * FROM vehicles$$,
+    initial_sol := 7);
+
+PREPARE initsol3 AS
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    $$SELECT * FROM orders$$,
+    $$SELECT * FROM vehicles$$,
+    initial_sol := 0);
+
+
+
+SELECT throws_ok('initsol1',
+    'XX000',
+    'Illegal value in parameter: initial_sol',
+    'Should throw: initial_sol < 0');
+
+SELECT throws_ok('initsol2',
+    'XX000',
+    'Illegal value in parameter: initial_sol',
+    'Should throw: initial_sol > 6');
+
+SELECT throws_ok('initsol3',
+    'XX000',
+    'Illegal value in parameter: initial_sol',
+    'Should throw: initial_sol = 0');
+
+--------------------------------------
+-- testing wrong data on factor 
+--------------------------------------
+PREPARE factor1 AS
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    $$SELECT * FROM orders$$,
+    $$SELECT * FROM vehicles$$,
+    factor := -1);
+
+PREPARE factor2 AS
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    $$SELECT * FROM orders$$,
+    $$SELECT * FROM vehicles$$,
+    factor := 0);
+
+PREPARE factor3 AS
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    $$SELECT * FROM orders$$,
+    $$SELECT * FROM vehicles$$,
+    factor := 1);
+
+SELECT throws_ok('factor1',
+    'XX000',
+    'Illegal value in parameter: factor',
+    'Should throw: factor < 0');
+
+SELECT throws_ok('factor2',
+    'XX000',
+    'Illegal value in parameter: factor',
+    'Should throw: factor = 0');
+
+SELECT lives_ok('factor3',
+    'Should live: factor >= 1');
+
+-- id | capacity | start_x | start_y | start_open_t | start_close_t | start_service_t
+--                 | end_x | end_y   | end_open_t   |   end_close_t | end_service_t
+
+
+PREPARE vehiles0 AS
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    $$SELECT * FROM orders$$,
+    $$SELECT id AS vid FROM vehicles$$);
+
+PREPARE vehiles1 AS
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    $$SELECT * FROM orders$$,
+    $$SELECT id FROM vehicles$$);
+
+PREPARE vehiles2 AS
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    $$SELECT * FROM orders$$,
+    $$SELECT id, capacity FROM vehicles$$);
+
+PREPARE vehiles3 AS
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    $$SELECT * FROM orders$$,
+    $$SELECT id, capacity, start_x FROM vehicles$$);
+
+PREPARE vehiles4 AS
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    $$SELECT * FROM orders$$,
+    $$SELECT id, capacity, start_x, start_y FROM vehicles$$);
+
+SELECT throws_ok('vehiles0',
+    'XX000',
+    $$Column 'id' not Found$$,
+    'Should throw: id is not included in data');
+
+SELECT throws_ok('vehiles1',
+    'XX000',
+    $$Column 'capacity' not Found$$,
+    'Should throw: capacity is not included in data');
+
+SELECT throws_ok('vehiles2',
+    'XX000',
+    $$Column 'start_x' not Found$$,
+    'Should throw: start_x is not included in data');
+
+SELECT throws_ok('vehiles3',
+    'XX000',
+    $$Column 'start_y' not Found$$,
+    'Should throw: start_y is not included in data');
+
+SELECT lives_ok('vehiles4',
+    'Should live: rest of parameters are optional');
+
+-- end_open and end_close should exist together or not at all
+
+PREPARE vehiles5 AS
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    $$SELECT * FROM orders$$,
+    $$SELECT *, 10 AS end_close FROM vehicles$$);
+
+PREPARE vehiles6 AS
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    $$SELECT * FROM orders$$,
+    $$SELECT *, 10 AS end_open FROM vehicles$$);
+
+-- end_x and end_y should exist together or not at all
+
+PREPARE vehiles7 AS
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    $$SELECT * FROM orders$$,
+    $$SELECT *, 10 AS end_x FROM vehicles$$);
+
+PREPARE vehiles8 AS
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    $$SELECT * FROM orders$$,
+    $$SELECT *, 10 AS end_open FROM vehicles$$);
+
+SELECT throws_ok('vehiles5',
+    'XX000',
+    $$Column 'end_open' not Found$$,
+    'vehiles5, Should throw: end_close found, but not end_open');
+
+SELECT throws_ok('vehiles6',
+    'XX000',
+    $$Column 'end_close' not Found$$,
+    'vehiles6, Should throw: end_open found, but not end_close');
+
+SELECT throws_ok('vehiles7',
+    'XX000',
+    $$Column 'end_y' not Found$$,
+    'vehiles7, Should throw: end_x found, but not end_y');
+
+SELECT throws_ok('vehiles8',
+    'XX000',
+    $$Column 'end_close' not Found$$,
+    'vehiles8, Should throw: end_y found, but not end_x');
+
+---------------------
+--  start_open > start_close
+---------------------
+UPDATE vehicles SET start_open = 5, start_close = 4 WHERE id = 1;
+
+PREPARE vehicles9 AS
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    $$SELECT * FROM orders$$,
+    $$SELECT * FROM vehicles$$);
+
+SELECT throws_ok('vehicles9',
+    'XX000',
+    'Illegal values found on vehicle',
+    'vehicles9, Should throw: start_open > start_close');
+
+UPDATE vehicles SET start_open = 0, start_close = 50 WHERE id = 1;
+
+---------------------
+--  end_open > end_close
+---------------------
+PREPARE vehicles10 AS
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    $$SELECT * FROM orders$$,
+    $$SELECT *, 5 AS end_open, 4 AS end_close FROM vehicles$$);
+
+SELECT throws_ok('vehicles10',
+    'XX000',
+    'Illegal values found on vehicle',
+    'vehicles10, Should throw: end_open > end_close');
+
+--------------------------------------
+-- testing wrong data on orders 
+--------------------------------------
+
+---------------------
+--  d_open > d_close
+---------------------
+UPDATE orders SET d_close = 5 WHERE id = 1;
+
+PREPARE orders1 AS
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    $$SELECT * FROM orders$$,
+    $$SELECT * FROM vehicles$$);
+
+SELECT throws_ok('orders1',
+    'XX000',
+    'Order not feasible on any truck was found',
+    'orders1, Should throw: d_open > d_close');
+
+UPDATE orders SET d_close = 15 WHERE id = 1;
+
+---------------------
+--  p_open > p_close
+---------------------
+UPDATE orders SET p_close = 1 WHERE id = 1;
+
+SELECT throws_ok('orders1',
+    'XX000',
+    'Order not feasible on any truck was found',
+    'orders1, Should throw: p_open > p_close');
+
+UPDATE orders SET p_close = 10 WHERE id = 1;
+
+---------------------
+--  demand <= 0
+---------------------
+
+UPDATE orders SET demand= -20 WHERE id =1;
+
+SELECT throws_ok('orders1',
+    'XX000',
+    'Order not feasible on any truck was found',
+    'Should throw: demand(PICKUP) < 0');
+
+UPDATE orders SET demand= 10 WHERE id =11;
+
+SELECT finish();
+ROLLBACK;
diff --git a/src/topology/test/pgtap/analyzeGraph.test.sql b/pgtap/topology/analyzeGraph.test.sql
similarity index 100%
rename from src/topology/test/pgtap/analyzeGraph.test.sql
rename to pgtap/topology/analyzeGraph.test.sql
diff --git a/src/topology/test/pgtap/analyzeOneWay.test.sql b/pgtap/topology/analyzeOneWay.test.sql
similarity index 100%
rename from src/topology/test/pgtap/analyzeOneWay.test.sql
rename to pgtap/topology/analyzeOneWay.test.sql
diff --git a/src/topology/test/pgtap/createTopology.test.sql b/pgtap/topology/createTopology.test.sql
similarity index 100%
rename from src/topology/test/pgtap/createTopology.test.sql
rename to pgtap/topology/createTopology.test.sql
diff --git a/src/topology/test/pgtap/createVerticesTable.test.sql b/pgtap/topology/createVerticesTable.test.sql
similarity index 100%
rename from src/topology/test/pgtap/createVerticesTable.test.sql
rename to pgtap/topology/createVerticesTable.test.sql
diff --git a/src/topology/test/pgtap/incrementalCreateTopology.test.sql b/pgtap/topology/incrementalCreateTopology.test.sql
similarity index 100%
rename from src/topology/test/pgtap/incrementalCreateTopology.test.sql
rename to pgtap/topology/incrementalCreateTopology.test.sql
diff --git a/src/topology/test/pgtap/nodeNetwork.test.sql b/pgtap/topology/nodeNetwork.test.sql
similarity index 100%
rename from src/topology/test/pgtap/nodeNetwork.test.sql
rename to pgtap/topology/nodeNetwork.test.sql
diff --git a/src/trsp/test/pgtap/blank-restrictions-compare-dijkstra.test.sql b/pgtap/trsp/blank-restrictions-compare-dijkstra.test.sql
similarity index 100%
rename from src/trsp/test/pgtap/blank-restrictions-compare-dijkstra.test.sql
rename to pgtap/trsp/blank-restrictions-compare-dijkstra.test.sql
diff --git a/src/trsp/test/pgtap/emptyset-from-i-to-i.test.sql b/pgtap/trsp/emptyset-from-i-to-i.test.sql
similarity index 100%
rename from src/trsp/test/pgtap/emptyset-from-i-to-i.test.sql
rename to pgtap/trsp/emptyset-from-i-to-i.test.sql
diff --git a/src/trsp/test/pgtap/from1to3.test.sql b/pgtap/trsp/from1to3.test.sql
similarity index 100%
rename from src/trsp/test/pgtap/from1to3.test.sql
rename to pgtap/trsp/from1to3.test.sql
diff --git a/src/trsp/test/pgtap/from3to4-directed.test.sql b/pgtap/trsp/from3to4-directed.test.sql
similarity index 100%
rename from src/trsp/test/pgtap/from3to4-directed.test.sql
rename to pgtap/trsp/from3to4-directed.test.sql
diff --git a/src/trsp/test/pgtap/no-restrictions-compare-dijkstra-directed.test.sql b/pgtap/trsp/no-restrictions-compare-dijkstra-directed.test.sql
similarity index 100%
rename from src/trsp/test/pgtap/no-restrictions-compare-dijkstra-directed.test.sql
rename to pgtap/trsp/no-restrictions-compare-dijkstra-directed.test.sql
diff --git a/src/trsp/test/pgtap/no-restrictions-compare-dijkstra-undirected.test.sql b/pgtap/trsp/no-restrictions-compare-dijkstra-undirected.test.sql
similarity index 100%
rename from src/trsp/test/pgtap/no-restrictions-compare-dijkstra-undirected.test.sql
rename to pgtap/trsp/no-restrictions-compare-dijkstra-undirected.test.sql
diff --git a/src/trsp/test/pgtap/trsp-any-00.test.sql b/pgtap/trsp/trsp-any-00.test.sql
similarity index 100%
rename from src/trsp/test/pgtap/trsp-any-00.test.sql
rename to pgtap/trsp/trsp-any-00.test.sql
diff --git a/src/trsp/test/pgtap/trsp-any-01.test.sql b/pgtap/trsp/trsp-any-01.test.sql
similarity index 100%
rename from src/trsp/test/pgtap/trsp-any-01.test.sql
rename to pgtap/trsp/trsp-any-01.test.sql
diff --git a/src/trsp/test/pgtap/trsp-issue244.test.sql b/pgtap/trsp/trsp-issue244.test.sql
similarity index 100%
rename from src/trsp/test/pgtap/trsp-issue244.test.sql
rename to pgtap/trsp/trsp-issue244.test.sql
diff --git a/src/trsp/test/pgtap/viaV-no-restrictions-compare-dijkstra-directed.test.sql b/pgtap/trsp/viaV-no-restrictions-compare-dijkstra-directed.test.sql
similarity index 100%
rename from src/trsp/test/pgtap/viaV-no-restrictions-compare-dijkstra-directed.test.sql
rename to pgtap/trsp/viaV-no-restrictions-compare-dijkstra-directed.test.sql
diff --git a/src/trsp/test/pgtap/viaV-no-restrictions-compare-dijkstra-undirected.test.sql b/pgtap/trsp/viaV-no-restrictions-compare-dijkstra-undirected.test.sql
similarity index 100%
rename from src/trsp/test/pgtap/viaV-no-restrictions-compare-dijkstra-undirected.test.sql
rename to pgtap/trsp/viaV-no-restrictions-compare-dijkstra-undirected.test.sql
diff --git a/src/tsp/test/pgtap/pgr_TSP_types_check.sql b/pgtap/tsp/pgr_TSP_types_check.sql
similarity index 100%
rename from src/tsp/test/pgtap/pgr_TSP_types_check.sql
rename to pgtap/tsp/pgr_TSP_types_check.sql
diff --git a/src/tsp/test/pgtap/pgr_eucledianTSP_types_check.sql b/pgtap/tsp/pgr_eucledianTSP_types_check.sql
similarity index 100%
rename from src/tsp/test/pgtap/pgr_eucledianTSP_types_check.sql
rename to pgtap/tsp/pgr_eucledianTSP_types_check.sql
diff --git a/src/withPoints/test/pgtap/many_to_many_eq_one_to_one_withPoint.test.sql b/pgtap/withPoints/many_to_many_eq_one_to_one_withPoint.test.sql
similarity index 100%
rename from src/withPoints/test/pgtap/many_to_many_eq_one_to_one_withPoint.test.sql
rename to pgtap/withPoints/many_to_many_eq_one_to_one_withPoint.test.sql
diff --git a/src/withPoints/test/pgtap/many_to_one_eq_one_to_one_withPoint.test.sql b/pgtap/withPoints/many_to_one_eq_one_to_one_withPoint.test.sql
similarity index 100%
rename from src/withPoints/test/pgtap/many_to_one_eq_one_to_one_withPoint.test.sql
rename to pgtap/withPoints/many_to_one_eq_one_to_one_withPoint.test.sql
diff --git a/src/withPoints/test/pgtap/one_to_many_eq_one_to_one_withPoint.test.sql b/pgtap/withPoints/one_to_many_eq_one_to_one_withPoint.test.sql
similarity index 100%
rename from src/withPoints/test/pgtap/one_to_many_eq_one_to_one_withPoint.test.sql
rename to pgtap/withPoints/one_to_many_eq_one_to_one_withPoint.test.sql
diff --git a/src/withPoints/test/pgtap/one_to_many_withPoint.test.sql b/pgtap/withPoints/one_to_many_withPoint.test.sql
similarity index 100%
rename from src/withPoints/test/pgtap/one_to_many_withPoint.test.sql
rename to pgtap/withPoints/one_to_many_withPoint.test.sql
diff --git a/src/withPoints/test/pgtap/one_to_one_withPoint.test.sql b/pgtap/withPoints/one_to_one_withPoint.test.sql
similarity index 100%
rename from src/withPoints/test/pgtap/one_to_one_withPoint.test.sql
rename to pgtap/withPoints/one_to_one_withPoint.test.sql
diff --git a/pgtap/withPoints/withPoints-group-innerQuery.sql b/pgtap/withPoints/withPoints-group-innerQuery.sql
new file mode 100644
index 0000000..f5f625f
--- /dev/null
+++ b/pgtap/withPoints/withPoints-group-innerQuery.sql
@@ -0,0 +1,48 @@
+\i setup.sql
+
+SELECT plan(548);
+SET client_min_messages TO ERROR;
+
+
+SELECT has_function('pgr_withpoints',
+    ARRAY['text', 'text', 'bigint', 'bigint', 'boolean','character', 'boolean']);
+SELECT has_function('pgr_withpoints',
+    ARRAY['text', 'text', 'bigint', 'anyarray', 'boolean','character', 'boolean']);
+SELECT has_function('pgr_withpoints',
+    ARRAY['text', 'text', 'anyarray', 'bigint', 'boolean','character', 'boolean']);
+SELECT has_function('pgr_withpoints',
+    ARRAY['text', 'text', 'anyarray', 'anyarray', 'boolean','character', 'boolean']);
+
+SELECT function_returns('pgr_withpoints',
+    ARRAY['text', 'text', 'bigint', 'bigint', 'boolean','character', 'boolean'],
+    'setof record');
+SELECT function_returns('pgr_withpoints',
+    ARRAY['text', 'text', 'bigint', 'anyarray', 'boolean','character', 'boolean'],
+    'setof record');
+SELECT function_returns('pgr_withpoints',
+    ARRAY['text', 'text', 'anyarray', 'bigint', 'boolean','character', 'boolean'],
+    'setof record');
+SELECT function_returns('pgr_withpoints',
+    ARRAY['text', 'text', 'anyarray', 'anyarray', 'boolean','character', 'boolean'],
+    'setof record');
+
+
+-- DIRECTED
+SELECT style_withpoints('pgr_withpoints', ', 2, 3)');
+SELECT style_withpoints('pgr_withpoints', ', 2, ARRAY[3])');
+SELECT style_withpoints('pgr_withpoints', ', ARRAY[2], 3)');
+SELECT style_withpoints('pgr_withpoints', ', ARRAY[2], ARRAY[3])');
+SELECT style_withpoints('pgr_withpoints', ', 2, 3, true)');
+SELECT style_withpoints('pgr_withpoints', ', 2, ARRAY[3], true)');
+SELECT style_withpoints('pgr_withpoints', ', ARRAY[2], 3, true)');
+SELECT style_withpoints('pgr_withpoints', ', ARRAY[2], ARRAY[3], true)');
+-- UNDIRECTED
+SELECT style_withpoints('pgr_withpoints', ', 2, 3, false)');
+SELECT style_withpoints('pgr_withpoints', ', 2, ARRAY[3], false)');
+SELECT style_withpoints('pgr_withpoints', ', ARRAY[2], 3, false)');
+SELECT style_withpoints('pgr_withpoints', ', ARRAY[2], ARRAY[3], false)');
+
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/pgtap/withPoints/withPointsCost-group-innerQuery.sql b/pgtap/withPoints/withPointsCost-group-innerQuery.sql
new file mode 100644
index 0000000..29ed212
--- /dev/null
+++ b/pgtap/withPoints/withPointsCost-group-innerQuery.sql
@@ -0,0 +1,47 @@
+\i setup.sql
+
+SELECT plan(548);
+SET client_min_messages TO ERROR;
+
+
+SELECT has_function('pgr_withpointscost',
+    ARRAY['text', 'text', 'bigint', 'bigint', 'boolean','character']);
+SELECT has_function('pgr_withpointscost',
+    ARRAY['text', 'text', 'bigint', 'anyarray', 'boolean','character']);
+SELECT has_function('pgr_withpointscost',
+    ARRAY['text', 'text', 'anyarray', 'bigint', 'boolean','character']);
+SELECT has_function('pgr_withpointscost',
+    ARRAY['text', 'text', 'anyarray', 'anyarray', 'boolean','character']);
+
+SELECT function_returns('pgr_withpointscost',
+    ARRAY['text', 'text', 'bigint', 'bigint', 'boolean','character'],
+    'setof record');
+SELECT function_returns('pgr_withpointscost',
+    ARRAY['text', 'text', 'bigint', 'anyarray', 'boolean','character'],
+    'setof record');
+SELECT function_returns('pgr_withpointscost',
+    ARRAY['text', 'text', 'anyarray', 'bigint', 'boolean','character'],
+    'setof record');
+SELECT function_returns('pgr_withpointscost',
+    ARRAY['text', 'text', 'anyarray', 'anyarray', 'boolean','character'],
+    'setof record');
+
+
+-- DIRECTED
+SELECT style_withpoints('pgr_withpointscost', ', 2, 3)');
+SELECT style_withpoints('pgr_withpointscost', ', 2, ARRAY[3])');
+SELECT style_withpoints('pgr_withpointscost', ', ARRAY[2], 3)');
+SELECT style_withpoints('pgr_withpointscost', ', ARRAY[2], ARRAY[3])');
+SELECT style_withpoints('pgr_withpointscost', ', 2, 3, true)');
+SELECT style_withpoints('pgr_withpointscost', ', 2, ARRAY[3], true)');
+SELECT style_withpoints('pgr_withpointscost', ', ARRAY[2], 3, true)');
+SELECT style_withpoints('pgr_withpointscost', ', ARRAY[2], ARRAY[3], true)');
+-- UNDIRECTED
+SELECT style_withpoints('pgr_withpointscost', ', 2, 3, false)');
+SELECT style_withpoints('pgr_withpointscost', ', 2, ARRAY[3], false)');
+SELECT style_withpoints('pgr_withpointscost', ', ARRAY[2], 3, false)');
+SELECT style_withpoints('pgr_withpointscost', ', ARRAY[2], ARRAY[3], false)');
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/sql/CMakeLists.txt b/sql/CMakeLists.txt
new file mode 100644
index 0000000..3d9ac57
--- /dev/null
+++ b/sql/CMakeLists.txt
@@ -0,0 +1,102 @@
+#
+# Format convention
+# - command (lower case)
+# - VARIABLE (upper case)
+# (http://www.cmake.org/cmake/help/v2.8.12/cmake.html)
+#
+
+
+
+#set (PgRouting_DEBUG "1")
+
+#-------------------
+# add the signatrues subdirectory
+#-------------------
+
+add_subdirectory(sigs)
+
+
+#-------------------
+# From the parent get the subdirectories that have the SQL files
+#
+# configuring the PgRouting_SQL_FILES variable
+#-------------------
+
+set(MODULE_PATHNAME "$libdir/libpgrouting-${PGROUTING_VERSION_MAJOR}.${PGROUTING_VERSION_MINOR}")
+
+foreach (subdir ${PgRouting_SQL_DIRECTORIES})
+    add_subdirectory(${subdir})
+endforeach()
+
+if (PgRouting_DEBUG)
+    message(STATUS "PgRouting_SQL_FILES=")
+    foreach (f ${PgRouting_SQL_FILES})
+        message(STATUS ${f})
+    endforeach()
+endif()
+
+
+
+#-------------------
+# TARGET: PgRouting_SQL_FILE
+#
+# Builds:  pgrouting--${PGROUTING_VERSION}.sql
+# 
+# add the scripts subdirectory
+# the variable ${PgRouting_SQL_FILES} should already be set at this point
+#
+# has the perl for building the current sql file
+# has the perl for building the update files
+#-------------------
+
+set(PgRouting_CURRENT_SQL_FILE "pgrouting--${PGROUTING_VERSION}.sql")
+
+# subdirectory that has the perl files
+add_subdirectory(scripts)
+
+
+
+add_custom_command(
+    OUTPUT ${PgRouting_CURRENT_SQL_FILE}
+    COMMAND ${PERL_EXECUTABLE} ./scripts/build-extension-file.pl '${PgRouting_SQL_FILES}'
+    DEPENDS
+    scripts/build-extension-file.pl
+    ${PgRouting_SQL_FILES}
+    )
+
+add_custom_target(PgRouting_SQL_FILE ALL
+    DEPENDS
+    ${PgRouting_CURRENT_SQL_FILE}
+    )
+
+#-------------------
+# TARGET: update_files
+#-------------------
+
+if (PgRouting_DEBUG)
+    message(STATUS "OLD_SIGNATURES=")
+    foreach (s ${OLD_SIGNATURES})
+        message(STATUS ${s})
+    endforeach()
+endif()
+
+foreach (old_s ${OLD_SIGNATURES})
+    SET (UPDATE_FILES ${UPDATE_FILES} pgrouting--${old_s}--${PGROUTING_VERSION}.sql)
+    SET (PgRouting_SQL_FILES_TO_INSTALL ${PgRouting_SQL_FILES_TO_INSTALL} "${CMAKE_CURRENT_BINARY_DIR}/pgrouting--${old_s}--${PGROUTING_VERSION}.sql")
+    add_custom_command(
+        OUTPUT pgrouting--${old_s}--${PGROUTING_VERSION}.sql
+        COMMAND ${PERL_EXECUTABLE} ./scripts/build-extension-update-files1.pl ${old_s} ${PgRouting_DEBUG}
+        DEPENDS 
+        ./scripts/build-extension-update-files1.pl
+        ${PgRouting_CURRENT_SQL_FILE}
+        PgRouting_SQL_FILE
+        ./sigs/pgrouting--${old_s}.sig
+        )
+endforeach()
+
+add_custom_target(update_files ALL
+    DEPENDS
+    ${UPDATE_FILES}
+    )
+
+SET(PgRouting_SQL_FILES_TO_INSTALL  ${PgRouting_SQL_FILES_TO_INSTALL} ${CMAKE_CURRENT_BINARY_DIR}/${PgRouting_CURRENT_SQL_FILE} "${CMAKE_CURRENT_BINARY_DIR}/common/pgrouting.control" PARENT_SCOPE)
diff --git a/sql/allpairs/CMakeLists.txt b/sql/allpairs/CMakeLists.txt
new file mode 100644
index 0000000..3d57d17
--- /dev/null
+++ b/sql/allpairs/CMakeLists.txt
@@ -0,0 +1,12 @@
+
+SET(LOCAL_FILES
+    johnson.sql
+    floydWarshall.sql
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} ${f})
+    list(APPEND PACKAGE_SQL_FILES  ${CMAKE_CURRENT_BINARY_DIR}/${f})
+endforeach()
+
+set(PgRouting_SQL_FILES ${PgRouting_SQL_FILES} ${PACKAGE_SQL_FILES} PARENT_SCOPE)
diff --git a/sql/allpairs/floydWarshall.sql b/sql/allpairs/floydWarshall.sql
new file mode 100644
index 0000000..94514cb
--- /dev/null
+++ b/sql/allpairs/floydWarshall.sql
@@ -0,0 +1,36 @@
+/*PGR-GNU*****************************************************************
+
+File: floydWarshall.sql
+
+Template:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function developer:
+Copyright (c) 2013 Vicky Vergara
+vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+CREATE OR REPLACE FUNCTION pgr_floydWarshall(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '${MODULE_PATHNAME}', 'floydWarshall'
+    LANGUAGE c VOLATILE;
+
diff --git a/sql/allpairs/johnson.sql b/sql/allpairs/johnson.sql
new file mode 100644
index 0000000..211f320
--- /dev/null
+++ b/sql/allpairs/johnson.sql
@@ -0,0 +1,36 @@
+/*PGR-GNU*****************************************************************
+
+File: johnson.sql
+
+Template:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function developer:
+Copyright (c) 2013 Vicky Vergara
+vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+CREATE OR REPLACE FUNCTION pgr_johnson(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '${MODULE_PATHNAME}', 'johnson'
+    LANGUAGE c VOLATILE;
+
diff --git a/sql/alpha_shape/CMakeLists.txt b/sql/alpha_shape/CMakeLists.txt
new file mode 100644
index 0000000..12eb9a4
--- /dev/null
+++ b/sql/alpha_shape/CMakeLists.txt
@@ -0,0 +1,11 @@
+
+SET(LOCAL_FILES
+    alpha_shape.sql
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} ${f})
+    list(APPEND PACKAGE_SQL_FILES  ${CMAKE_CURRENT_BINARY_DIR}/${f})
+endforeach()
+
+set(PgRouting_SQL_FILES ${PgRouting_SQL_FILES} ${PACKAGE_SQL_FILES} PARENT_SCOPE)
diff --git a/sql/alpha_shape/alpha_shape.sql b/sql/alpha_shape/alpha_shape.sql
new file mode 100644
index 0000000..2b16411
--- /dev/null
+++ b/sql/alpha_shape/alpha_shape.sql
@@ -0,0 +1,100 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Copyright (c) 2006-2007 Anton A. Patrushev, Orkney, Inc.
+Copyright (c) 2005 Sylvain Pasche,
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+/*
+-----------------------------------------------------------------------
+-- Core function for alpha shape computation.
+-- The sql should return vertex ids and x,y values. Return ordered
+-- vertex ids.
+-----------------------------------------------------------------------
+*/
+CREATE OR REPLACE FUNCTION pgr_alphashape(sql text, alpha float8 DEFAULT 0, OUT x float8, OUT y float8)
+    RETURNS SETOF record
+    AS '${MODULE_PATHNAME}', 'alphashape'
+    LANGUAGE c VOLATILE;
+
+/*
+----------------------------------------------------------
+-- Draws an alpha shape around given set of points.
+-- ** This should be rewritten as an aggregate. **
+----------------------------------------------------------
+*/
+CREATE OR REPLACE FUNCTION pgr_pointsAsPolygon(query varchar, alpha float8 DEFAULT 0)
+	RETURNS geometry AS
+	$$
+	DECLARE
+		r record;
+		geoms geometry[];
+		vertex_result record;
+		i int;
+		n int;
+		spos int;
+		q text;
+		x float8[];
+		y float8[];
+
+	BEGIN
+		geoms := array[]::geometry[];
+		i := 1;
+
+		FOR vertex_result IN EXECUTE 'SELECT x, y FROM pgr_alphashape('''|| query || ''', ' || alpha || ')'
+		LOOP
+			x[i] = vertex_result.x;
+			y[i] = vertex_result.y;
+			i := i+1;
+		END LOOP;
+
+		n := i;
+		IF n = 1 THEN
+			RAISE NOTICE 'n = 1';
+			RETURN NULL;
+		END IF;
+
+		spos := 1;
+		q := 'SELECT ST_GeometryFromText(''POLYGON((';
+		FOR i IN 1..n LOOP
+			IF x[i] IS NULL AND y[i] IS NULL THEN
+				q := q || ', ' || x[spos] || ' ' || y[spos] || '))'',0) AS geom;';
+				EXECUTE q INTO r;
+				geoms := geoms || array[r.geom];
+				q := '';
+			ELSE
+				IF q = '' THEN
+					spos := i;
+					q := 'SELECT ST_GeometryFromText(''POLYGON((';
+				END IF;
+				IF i = spos THEN
+					q := q || x[spos] || ' ' || y[spos];
+				ELSE
+					q := q || ', ' || x[i] || ' ' || y[i];
+				END IF;
+			END IF;
+		END LOOP;
+
+		RETURN ST_BuildArea(ST_Collect(geoms));
+	END;
+	$$
+	LANGUAGE 'plpgsql' VOLATILE STRICT;
+
diff --git a/sql/astar/CMakeLists.txt b/sql/astar/CMakeLists.txt
new file mode 100644
index 0000000..6e70f96
--- /dev/null
+++ b/sql/astar/CMakeLists.txt
@@ -0,0 +1,13 @@
+
+SET(LOCAL_FILES
+    _astar.sql
+    astar.sql
+    astarCost.sql
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} ${f})
+    list(APPEND PACKAGE_SQL_FILES  ${CMAKE_CURRENT_BINARY_DIR}/${f})
+endforeach()
+
+set(PgRouting_SQL_FILES ${PgRouting_SQL_FILES} ${PACKAGE_SQL_FILES} PARENT_SCOPE)
diff --git a/sql/astar/_astar.sql b/sql/astar/_astar.sql
new file mode 100644
index 0000000..2b59f4e
--- /dev/null
+++ b/sql/astar/_astar.sql
@@ -0,0 +1,51 @@
+/*PGR-GNU*****************************************************************
+File: astarV3.0.sql
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail:
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+
+CREATE OR REPLACE FUNCTION _pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'${MODULE_PATHNAME}', 'astarManyToMany'
+LANGUAGE c VOLATILE;
diff --git a/sql/astar/astar.sql b/sql/astar/astar.sql
new file mode 100644
index 0000000..7abc805
--- /dev/null
+++ b/sql/astar/astar.sql
@@ -0,0 +1,137 @@
+/*PGR-GNU*****************************************************************
+File: astar.sql
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail:
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, normal:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to Many)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to Many)';
diff --git a/sql/astar/astarCost.sql b/sql/astar/astarCost.sql
new file mode 100644
index 0000000..a87e188
--- /dev/null
+++ b/sql/astar/astarCost.sql
@@ -0,0 +1,126 @@
+/*PGR-GNU*****************************************************************
+File: astar.sql
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail:
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true, normal:=false) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to Many)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to Many)';
diff --git a/sql/bdAstar/CMakeLists.txt b/sql/bdAstar/CMakeLists.txt
new file mode 100644
index 0000000..6989d1c
--- /dev/null
+++ b/sql/bdAstar/CMakeLists.txt
@@ -0,0 +1,13 @@
+
+SET(LOCAL_FILES
+    _bdAstar.sql
+    bdAstar.sql
+    bdAstarCost.sql
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} ${f})
+    list(APPEND PACKAGE_SQL_FILES  ${CMAKE_CURRENT_BINARY_DIR}/${f})
+endforeach()
+
+set(PgRouting_SQL_FILES ${PgRouting_SQL_FILES} ${PACKAGE_SQL_FILES} PARENT_SCOPE)
diff --git a/sql/bdAstar/_bdAstar.sql b/sql/bdAstar/_bdAstar.sql
new file mode 100644
index 0000000..12bc8d1
--- /dev/null
+++ b/sql/bdAstar/_bdAstar.sql
@@ -0,0 +1,49 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2016 pgRouting developers
+Mail: project at pgrouting.org
+
+Copyright (c) 2016 Celia Virginia Vergara Castillo
+mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+CREATE OR REPLACE FUNCTION _pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+    '${MODULE_PATHNAME}', 'bd_astar'
+LANGUAGE C VOLATILE;
+
+
diff --git a/sql/bdAstar/bdAstar.sql b/sql/bdAstar/bdAstar.sql
new file mode 100644
index 0000000..29a4d3d
--- /dev/null
+++ b/sql/bdAstar/bdAstar.sql
@@ -0,0 +1,156 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2017 pgRouting developers
+Mail: project at pgrouting.org
+
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed:=true, only_cost:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    BOOLEAN,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false);
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to Many)';
diff --git a/sql/bdAstar/bdAstarCost.sql b/sql/bdAstar/bdAstarCost.sql
new file mode 100644
index 0000000..dfbd964
--- /dev/null
+++ b/sql/bdAstar/bdAstarCost.sql
@@ -0,0 +1,118 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2017 pgRouting developers
+Mail: project at pgrouting.org
+
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+
+-- one to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to Many)';
diff --git a/sql/bdDijkstra/CMakeLists.txt b/sql/bdDijkstra/CMakeLists.txt
new file mode 100644
index 0000000..2e0ac2f
--- /dev/null
+++ b/sql/bdDijkstra/CMakeLists.txt
@@ -0,0 +1,13 @@
+
+SET(LOCAL_FILES
+    _bdDijkstra.sql
+    bdDijkstra.sql
+    bdDijkstraCost.sql
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} ${f})
+    list(APPEND PACKAGE_SQL_FILES  ${CMAKE_CURRENT_BINARY_DIR}/${f})
+endforeach()
+
+set(PgRouting_SQL_FILES ${PgRouting_SQL_FILES} ${PACKAGE_SQL_FILES} PARENT_SCOPE)
diff --git a/sql/bdDijkstra/_bdDijkstra.sql b/sql/bdDijkstra/_bdDijkstra.sql
new file mode 100644
index 0000000..4152a66
--- /dev/null
+++ b/sql/bdDijkstra/_bdDijkstra.sql
@@ -0,0 +1,45 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2017 pgRouting developers
+Mail: project at pgrouting.org
+
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+-- bdDijkstra MANY TO MANY
+CREATE OR REPLACE FUNCTION _pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'${MODULE_PATHNAME}', 'bdDijkstra'
+LANGUAGE c VOLATILE;
+
diff --git a/sql/bdDijkstra/bdDijkstra.sql b/sql/bdDijkstra/bdDijkstra.sql
new file mode 100644
index 0000000..b7dfea2
--- /dev/null
+++ b/sql/bdDijkstra/bdDijkstra.sql
@@ -0,0 +1,136 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2017 pgRouting developers
+Mail: project at pgrouting.org
+
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+-- ONE TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- TODO directed BOOLEAN DEFAULT TRUE,  on version 3
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, false) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
diff --git a/sql/bdDijkstra/bdDijkstraCost.sql b/sql/bdDijkstra/bdDijkstraCost.sql
new file mode 100644
index 0000000..41fee71
--- /dev/null
+++ b/sql/bdDijkstra/bdDijkstraCost.sql
@@ -0,0 +1,100 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2017 pgRouting developers
+Mail: project at pgrouting.org
+
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, true) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
diff --git a/sql/common/CMakeLists.txt b/sql/common/CMakeLists.txt
new file mode 100644
index 0000000..e2a8b77
--- /dev/null
+++ b/sql/common/CMakeLists.txt
@@ -0,0 +1,20 @@
+
+SET(LOCAL_FILES
+    pgRouting-header.sql
+    pgrouting-types.sql
+    pgrouting_version.sql
+    pgrouting_utilities.sql
+    pgr_parameter_check.sql
+    utilities_pgr.sql
+    createIndex.sql
+    _point_toId.sql
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} ${f})
+    list(APPEND PACKAGE_SQL_FILES  ${CMAKE_CURRENT_BINARY_DIR}/${f})
+endforeach()
+
+set(PgRouting_SQL_FILES ${PgRouting_SQL_FILES} ${PACKAGE_SQL_FILES} PARENT_SCOPE)
+
+configure_file(pgrouting.control pgrouting.control)
diff --git a/sql/common/_point_toId.sql b/sql/common/_point_toId.sql
new file mode 100644
index 0000000..02b332a
--- /dev/null
+++ b/sql/common/_point_toId.sql
@@ -0,0 +1,81 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Author: Stephen Woodbridge <woodbri at imaptools.com>
+Author: Vicky Vergara <vicky_vergara at hotmail,com>
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+/*
+.. function:: _pgr_pointToId(point geometry, tolerance double precision,vname text,srid integer)
+Using tolerance to determine if its an existing point:
+    - Inserts a point into the vertices table "vertname" with the srid "srid",
+and returns
+    - the id of the new point
+    - the id of the existing point.
+
+Tolerance is the minimal distance between existing points and the new point to create a new point.
+
+Last changes: 2013-03-22
+
+HISTORY
+Last changes: 2013-03-22
+2013-08-19: handling schemas
+*/
+
+CREATE OR REPLACE FUNCTION _pgr_pointToId(
+    point geometry,
+    tolerance double precision,
+    vertname text,
+    srid integer)
+
+  RETURNS bigint AS
+$BODY$
+DECLARE
+    rec record;
+    pid bigint;
+
+BEGIN
+    EXECUTE 'SELECT ST_Distance(
+        the_geom,
+        ST_GeomFromText(ST_AsText('
+                || quote_literal(point::text)
+                || '),'
+            || srid ||')) AS d, id, the_geom
+    FROM '||_pgr_quote_ident(vertname)||'
+    WHERE ST_DWithin(
+        the_geom,
+        ST_GeomFromText(
+            ST_AsText(' || quote_literal(point::text) ||'),
+            ' || srid || '),' || tolerance||')
+    ORDER BY d
+    LIMIT 1' INTO rec ;
+    IF rec.id IS NOT NULL THEN
+        pid := rec.id;
+    ELSE
+        execute 'INSERT INTO '||_pgr_quote_ident(vertname)||' (the_geom) VALUES ('||quote_literal(point::text)||')';
+        pid := lastval();
+END IF;
+
+RETURN pid;
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
diff --git a/sql/common/createIndex.sql b/sql/common/createIndex.sql
new file mode 100644
index 0000000..71fe2ef
--- /dev/null
+++ b/sql/common/createIndex.sql
@@ -0,0 +1,115 @@
+/*PGR-GNU*****************************************************************
+
+ FILE: createIndex.sql
+
+ Copyright (c) 2014 Celia Virginia Vergara Castillo
+ vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+
+
+/************************************************************************
+.. function:: _pgr_createIndex(tab, col,indextype)
+              _pgr_createIndex(sname,tname,colname,indextypes)
+
+   if the column is not indexed it creates a 'gist' index otherwise a 'btree' index
+   Examples:
+	* 	 select  _pgr_createIndex('tab','col','btree');
+	* 	 select  _pgr_createIndex('myschema','mytable','col','gist');
+	* 	 perform 'select _pgr_createIndex('||quote_literal('tab')||','||quote_literal('col')||','||quote_literal('btree'))' ;
+	* 	 perform 'select _pgr_createIndex('||quote_literal('myschema')||','||quote_literal('mytable')||','||quote_literal('col')||','||quote_literal('gist')')' ;
+   Precondition:
+      sname.tname.colname is a valid column on table tname in schema sname
+      indext  is the indexType btree or gist
+   Postcondition:
+      sname.tname.colname its indexed using the indextype
+
+
+   Author: Vicky Vergara <vicky_vergara at hotmail.com>>
+
+  HISTORY
+     Created: 2014/JUL/28
+************************************************************************/
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(
+    sname text, tname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    debuglevel text;
+    naming record;
+    tabname text;
+    query text;
+    msgKind int;
+BEGIN
+  msgKind = 0; -- debug_
+
+  execute 'show client_min_messages' into debuglevel;
+  tabname=_pgr_quote_ident(sname||'.'||tname);
+  perform _pgr_msg(msgKind, fnName, 'Checking ' || colname || ' column in ' || tabname || ' is indexed');
+    IF (_pgr_isColumnIndexed(sname,tname,colname, 0, fnName)) then
+       perform _pgr_msg(msgKind, fnName);
+    else
+      if indext = 'gist' then
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using gist('||quote_ident(colname)||')';
+      else
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using btree('||quote_ident(colname)||')';
+      end if;
+      perform _pgr_msg(msgKind, fnName, 'Adding index ' || tabname || '_' ||  colname || '_idx');
+      perform _pgr_msg(msgKind, fnName, ' Using ' ||  query);
+      set client_min_messages  to warning;
+      BEGIN
+        execute query;
+        EXCEPTION WHEN others THEN
+          perform _pgr_onError( true, reportErrs, fnName,
+            'Could not create index on:' || colname, SQLERRM);
+      END;
+      execute 'set client_min_messages  to '|| debuglevel;
+      perform _pgr_msg(msgKind, fnName);
+    END IF;
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(tabname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    naming record;
+    sname text;
+    tname text;
+
+BEGIN
+    select * from _pgr_getTableName(tabname, 2, fnName)  into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    execute _pgr_createIndex(sname, tname, colname, indext, reportErrs, fnName);
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
diff --git a/sql/common/findClosestEdge.sql b/sql/common/findClosestEdge.sql
new file mode 100644
index 0000000..562cd02
--- /dev/null
+++ b/sql/common/findClosestEdge.sql
@@ -0,0 +1,100 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+/*
+ *  pgr_findClosestEdge(edges_sql text, pnt geometry, tol float8)
+ *
+ *  Given and table of edges with a spatial index on the_geom
+ *  and a point geometry search for the closest edge within tol distance to the edges
+ *  then compute the projection of the point onto the line segment and select source or target
+ *  based on whether the projected point is closer to the respective end and return source or target.
+ *  If no edge is within tol distance then return -1
+  IF az > pi()/2 AND az < pi() OR az > 3 * pi()/2 THEN - then to the right
+*/
+
+CREATE OR REPLACE FUNCTION pgr_findClosestEdge(
+    edges_sql text,
+    point_geom geometry,
+    tolerance float8,
+
+    OUT edge_id BIGINT,
+    OUT fraction FLOAT,
+    OUT side CHAR)
+    returns SETOF RECORD AS
+$body$
+DECLARE
+    safe_sql text;
+    sql text;
+    rec RECORD;
+BEGIN
+
+    IF (tolerance < 0 ) THEN
+        RAISE EXCEPTION 'Invalid value for tolerance';
+    END IF;
+
+    safe_sql =  'SELECT * from ('|| edges_sql ||' ) AS __a__';
+
+    BEGIN
+        EXECUTE safe_sql || ' LIMIT 1' into rec;
+        EXCEPTION WHEN OTHERS THEN
+            RAISE EXCEPTION 'Could not execute query please verify syntax of: '
+            USING HINT = edges_sql;
+    END;
+
+    BEGIN
+        EXECUTE 'SELECT id, the_geom  from ('||safe_sql||') as __b__' into rec;
+        EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING HINT = 'Please veryfy the column names: id, the_geom';
+    END;
+
+    sql ='
+    WITH
+    safesql AS (' || safe_sql || '),
+    close_ones AS
+    (SELECT id, the_geom AS line,
+        ST_Distance(the_geom,' || quote_literal(point_geom::TEXT) ||'::geometry ) AS distance,
+        ST_ClosestPoint(the_geom,' || quote_literal(point_geom::TEXT) || '::geometry) AS blade
+        FROM  safesql
+        WHERE ST_DWithin(the_geom,' || quote_literal(point_geom::TEXT) ||'::geometry, ' || tolerance || ')),
+    closest_ones AS
+    (SELECT min(distance) min_dist FROM close_ones),
+    third_q AS
+    (SELECT DISTINCT(id) id, distance, line, blade FROM close_ones WHERE distance = (select min_dist from closest_ones) ORDER BY id LIMIT 1),
+    dump_values AS
+    (SELECT id,
+        (ST_length(ST_GeometryN(st_split(line, blade),1))/ST_length(line))::FLOAT AS fraction,
+        (line << ' || quote_literal(point_geom::TEXT) || '::geometry) as rightSide
+        FROM third_q)
+    SELECT id::BIGINT,
+           fraction::FLOAT,
+           (CASE WHEN rightSide THEN ''r'' ELSE ''l'' END)::char FROM dump_values';
+
+    RETURN query EXECUTE sql;
+
+END;
+$body$
+  language plpgsql volatile
+  cost 5;
+
diff --git a/sql/common/pgRouting-header.sql b/sql/common/pgRouting-header.sql
new file mode 100644
index 0000000..df60227
--- /dev/null
+++ b/sql/common/pgRouting-header.sql
@@ -0,0 +1,37 @@
+\echo Use "CREATE EXTENSION pgrouting" to load this file. \quit
+
+
+
+
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+--- pgRouting provides geospatial routing functionality.
+--- http://pgrouting.org
+--- copyright
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+---
+--- This is free software; you can redistribute and/or modify it:
+--- the terms of the GNU General Public Licence. See the COPYING file.
+--- the terms of the MIT-X Licence. See the COPYING file.
+---
+--- The following functions have MIT-X licence:
+---     pgr_version()
+---     pgr_tsp(matrix float8[][], startpt integer, endpt integer DEFAULT -1, OUT seq integer, OUT id integer)
+---     _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+---     pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
+---
+---
+--- All other functions are under GNU General Public Licence.
+---
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+--
+-- WARNING: Any change in this file must be evaluated for compatibility.
+--          Changes cleanly handled by postgis_upgrade.sql are fine,
+--          other changes will require a bump in Major version.
+--          Currently only function replaceble by CREATE OR REPLACE
+--          are cleanly handled.
+--
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
diff --git a/sql/common/pgr_parameter_check.sql b/sql/common/pgr_parameter_check.sql
new file mode 100644
index 0000000..004e579
--- /dev/null
+++ b/sql/common/pgr_parameter_check.sql
@@ -0,0 +1,164 @@
+/*PGR-GNU*****************************************************************
+
+File: pgr_parameter_check.sql
+
+Copyright (c) 2014 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+
+/*
+-----------------------------------------------------------------------
+-- Function _pgr_parameter_check
+-- Check's the parameters type of the sql input
+-----------------------------------------------------------------------
+
+-- change the default to true when all the functions will use the bigint
+-- put TRUE when it uses BGINT
+-- Query styles:
+-- dijkstra (id, source, target, cost, [reverse_cost])
+-- johnson (source, target, cost, [reverse_cost])
+*/
+
+CREATE OR REPLACE FUNCTION _pgr_parameter_check(fn text, sql text, big boolean default false)
+  RETURNS bool AS
+  $BODY$
+
+  DECLARE
+  rec record;
+  rec1 record;
+  has_rcost boolean;
+  safesql text;
+  BEGIN
+    IF (big) THEN
+       RAISE EXCEPTION 'This function is for old style functions';
+    END IF;
+
+    -- checking query is executable
+    BEGIN
+      safesql =  'select * from ('||sql||' ) AS __a__ limit 1';
+      execute safesql into rec;
+      EXCEPTION
+        WHEN OTHERS THEN
+            RAISE EXCEPTION 'Could not execute query please verify syntax of: '
+              USING HINT = sql;
+    END;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('dijkstra','astar') THEN
+        BEGIN
+          execute 'select id,source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: id, source, target, cost';
+        END;
+        execute 'select pg_typeof(id)::text as id_type, pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.id_type in ('integer'::text))
+              AND (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Error, columns ''source'', ''target'' must be of type int4, ''cost'' must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    IF fn IN ('astar') THEN
+        BEGIN
+          execute 'select x1,y1,x2,y2  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: x1,y1, x2,y2';
+        END;
+        execute 'select pg_typeof(x1)::text as x1_type, pg_typeof(y1)::text as y1_type, pg_typeof(x2)::text as x2_type, pg_typeof(y2)::text as y2_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.x1_type = 'double precision'::text)
+              AND (rec.y1_type = 'double precision'::text)
+              AND (rec.x2_type = 'double precision'::text)
+              AND (rec.y2_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Columns: x1, y1, x2, y2 must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('johnson') THEN
+        BEGIN
+          execute 'select source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING HINT = 'Please veryfy the column names: id, source, target, cost',
+                         ERRCODE = 'XX000';
+        END;
+
+        execute 'select pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Support for source,target columns only of type: integer. Support for Cost: double precision'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    -- Checking the data types of the optional reverse_cost";
+    has_rcost := false;
+    IF fn IN ('johnson','dijkstra','astar') THEN
+      BEGIN
+        execute 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||safesql||' ) AS __b__ limit 1 ' into rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+            return has_rcost;
+      END;
+      if (has_rcost) then
+        IF (big) then
+           IF  not (rec1.rev_type in ('bigint'::text, 'integer'::text, 'smallint'::text, 'double precision'::text, 'real'::text)) then
+             RAISE EXCEPTION 'Illegar type in optional parameter reverse_cost.'
+             USING ERRCODE = 'XX000';
+           END IF;
+        ELSE -- Version 2.0.0 is more restrictive
+           IF (rec1.rev_type != 'double precision') then
+             RAISE EXCEPTION 'Illegal type in optional parameter reverse_cost, must be of type float8'
+             USING ERRCODE = 'XX000';
+           END IF;
+        END IF;
+      end if;
+      return true;
+    END IF;
+    -- just for keeps
+    return true;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+
diff --git a/sql/common/pgrouting-types.sql b/sql/common/pgrouting-types.sql
new file mode 100644
index 0000000..d51f727
--- /dev/null
+++ b/sql/common/pgrouting-types.sql
@@ -0,0 +1,49 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+--  pgRouting 2.0 types
+
+CREATE TYPE pgr_costResult AS
+(
+    seq integer,
+    id1 integer,
+    id2 integer,
+    cost float8
+);
+
+CREATE TYPE pgr_costResult3 AS
+(
+    seq integer,
+    id1 integer,
+    id2 integer,
+    id3 integer,
+    cost float8
+);
+
+CREATE TYPE pgr_geomResult AS
+(
+    seq integer,
+    id1 integer,
+    id2 integer,
+    geom geometry
+);
diff --git a/src/common/sql/pgrouting.control.in b/sql/common/pgrouting.control
similarity index 100%
rename from src/common/sql/pgrouting.control.in
rename to sql/common/pgrouting.control
diff --git a/sql/common/pgrouting_utilities.sql b/sql/common/pgrouting_utilities.sql
new file mode 100644
index 0000000..c37aceb
--- /dev/null
+++ b/sql/common/pgrouting_utilities.sql
@@ -0,0 +1,471 @@
+/*PGR-GNU*****************************************************************
+
+FILE: pgrouting_utilities.sql
+
+Copyright (c) 2015 Celia Vriginia Vergara Castillo
+Copyright (c) 2015 REgina Obe
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+
+
+/*
+.. function:: _pgr_getTableName(tab)
+
+   Examples:
+        *          select * from  _pgr_getTableName('tab');
+        *        naming record;
+                 execute 'select * from  _pgr_getTableName('||quote_literal(tab)||')' INTO naming;
+                 schema=naming.sname; table=naming.tname
+
+
+   Returns (schema,name) of table "tab" considers Caps and when not found considers lowercases
+           (schema,NULL) when table was not found
+           (NULL,NULL) when schema was not found.
+
+   Author: Vicky Vergara <vicky_vergara at hotmail.com>>
+
+  HISTORY
+     2015/11/01 Changed to handle views and refactored
+     Created: 2013/08/19  for handling schemas
+
+*/
+
+
+CREATE OR REPLACE FUNCTION _pgr_getTableName(IN tab text, IN reportErrs int default 0, IN fnName text default '_pgr_getTableName', OUT sname text,OUT tname text)
+  RETURNS RECORD AS
+$$
+DECLARE
+        naming record;
+        i integer;
+        query text;
+        sn text; -- schema name
+        tn text; -- table name
+        ttype text; --table type for future use
+        err boolean;
+        debuglevel text;
+        var_types text[] = ARRAY['BASE TABLE', 'VIEW'];
+BEGIN
+
+    execute 'show client_min_messages' into debuglevel;
+
+
+    perform _pgr_msg( 0, fnName, 'Checking table ' || tab || ' exists');
+    --RAISE DEBUG 'Checking % exists',tab;
+
+    i := strpos(tab,'.');
+    IF (i <> 0) THEN
+        sn := split_part(tab, '.',1);
+        tn := split_part(tab, '.',2);
+    ELSE
+        sn := current_schema;
+        tn := tab;
+    END IF;
+
+
+   SELECT schema_name INTO sname
+   FROM information_schema.schemata WHERE schema_name = sn;
+
+    IF sname IS NOT NULL THEN -- found schema (as is)
+       SELECT table_name, table_type INTO tname, ttype
+       FROM information_schema.tables
+       WHERE
+                table_type = ANY(var_types) and
+                table_schema = sname and
+                table_name = tn ;
+        IF tname is NULL THEN
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  = ANY(var_types) and
+                table_schema = sname and
+                table_name = lower(tn) ORDER BY table_name;
+        END IF;
+    END IF;
+    IF sname is NULL or tname is NULL THEN --schema not found or table not found
+        SELECT schema_name INTO sname
+        FROM information_schema.schemata
+        WHERE schema_name = lower(sn) ;
+
+        IF sname IS NOT NULL THEN -- found schema (with lower caps)
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  =  ANY(var_types) and
+                table_schema = sname and
+                table_name= tn ;
+
+           IF tname IS NULL THEN
+                SELECT table_name, table_type INTO tname, ttype
+                FROM information_schema.tables
+                WHERE
+                    table_type  =  ANY(var_types) and
+                    table_schema = sname and
+                    table_name= lower(tn) ;
+           END IF;
+        END IF;
+    END IF;
+   err = (sname IS NULL OR tname IS NULL);
+   perform _pgr_onError(err, reportErrs, fnName, 'Table ' || tab ||' not found',' Check your table name', 'Table '|| tab || ' found');
+
+END;
+$$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+/*
+.. function:: _pgr_getColumnName(sname,tname,col,reportErrs default 1) returns text
+.. function:: _pgr_getColumnName(tab,col,reportErrs default 1) returns text
+
+    Returns:
+          cname  registered column "col" in table "tab" or "sname.tname" considers Caps and when not found considers lowercases
+          NULL   when "tab"/"sname"/"tname" is not found or when "col" is not in table "tab"/"sname.tname"
+    unless otherwise indicated raises notices on errors
+
+ Examples:
+        *          select  _pgr_getColumnName('tab','col');
+        *          select  _pgr_getColumnName('myschema','mytable','col');
+                 execute 'select _pgr_getColumnName('||quote_literal('tab')||','||quote_literal('col')||')' INTO column;
+                 execute 'select _pgr_getColumnName('||quote_literal(sname)||','||quote_literal(sname)||','||quote_literal('col')||')' INTO column;
+
+   Author: Vicky Vergara <vicky_vergara at hotmail.com>>
+
+  HISTORY
+     Created: 2013/08/19  for handling schemas
+     Modified: 2014/JUL/28 added overloadig
+*/
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(sname text, tname text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(col) into cname;
+
+    IF cname is null  THEN
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(lower(col))  into cname;
+    END if;
+
+    err = cname is null;
+
+    perform _pgr_onError(err, reportErrs, fnName,  'Column '|| col ||' not found', ' Check your column name','Column '|| col || ' found');
+    RETURN cname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(tab text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+
+    select * into cname from _pgr_getColumnName(sname,tname,col,reportErrs, fnName);
+    RETURN cname;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+/*
+.. function:: _pgr_isColumnInTable(tab, col)
+
+   Examples:
+        *          select  _pgr_isColumnName('tab','col');
+        *        flag boolean;
+                 execute 'select _pgr_getColumnName('||quote_literal('tab')||','||quote_literal('col')||')' INTO flag;
+
+   Returns true  if column "col" exists in table "tab"
+           false when "tab" doesn't exist or when "col" is not in table "tab"
+
+   Author: Stephen Woodbridge <woodbri at imaptools.com>
+
+   Modified by: Vicky Vergara <vicky_vergara at hotmail.com>>
+
+  HISTORY
+     Modified: 2013/08/19  for handling schemas
+*/
+CREATE OR REPLACE FUNCTION _pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    select * from _pgr_getColumnName(tab,col,0, '_pgr_isColumnInTable') into cname;
+    return cname is not null;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+/*
+.. function:: _pgr_isColumnIndexed(tab, col)
+
+   Examples:
+        *          select  _pgr_isColumnIndexed('tab','col');
+        *        flag boolean;
+                 execute 'select _pgr_getColumnIndexed('||quote_literal('tab')||','||quote_literal('col')||')' INTO flag;
+
+   Author: Stephen Woodbridge <woodbri at imaptools.com>
+
+   Modified by: Vicky Vergara <vicky_vergara at hotmail.com>>
+
+   Returns true  when column "col" in table "tab" is indexed.
+           false when table "tab"  is not found or
+                 when column "col" is nor found in table "tab" or
+                   when column "col" is not indexed
+*/
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(sname text, tname text, cname text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    pkey text;
+BEGIN
+    SELECT
+          pg_attribute.attname into pkey
+         --  format_type(pg_attribute.atttypid, pg_attribute.atttypmod)
+          FROM pg_index, pg_class, pg_attribute
+          WHERE
+                  pg_class.oid = _pgr_quote_ident(sname||'.'||tname)::regclass AND
+                  indrelid = pg_class.oid AND
+                  pg_attribute.attrelid = pg_class.oid AND
+                  pg_attribute.attnum = any(pg_index.indkey)
+                  AND indisprimary;
+
+    IF pkey=cname then
+          RETURN TRUE;
+    END IF;
+
+    SELECT a.index_name,
+           b.attname,
+           b.attnum,
+           a.indisunique,
+           a.indisprimary
+      INTO rec
+      FROM ( SELECT a.indrelid,
+                    a.indisunique,
+                    a.indisprimary,
+                    c.relname index_name,
+                    unnest(a.indkey) index_num
+               FROM pg_index a,
+                    pg_class b,
+                    pg_class c,
+                    pg_namespace d
+              WHERE b.relname=tname
+                AND b.relnamespace=d.oid
+                AND d.nspname=sname
+                AND b.oid=a.indrelid
+                AND a.indexrelid=c.oid
+           ) a,
+           pg_attribute b
+     WHERE a.indrelid = b.attrelid
+       AND a.index_num = b.attnum
+       AND b.attname = cname
+  ORDER BY a.index_name,
+           a.index_num;
+
+  RETURN FOUND;
+  EXCEPTION WHEN OTHERS THEN
+    perform _pgr_onError( true, reportErrs, fnName,
+    'Error when checking for the postgres system attributes', SQLERR);
+    RETURN FALSE;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(tab text, col text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    sname text;
+    tname text;
+    cname text;
+    pkey text;
+    value boolean;
+BEGIN
+    SELECT * into naming FROM _pgr_getTableName(tab, 0, fnName);
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    SELECT * into cname from _pgr_getColumnName(sname, tname, col, 0, fnName) ;
+    IF cname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    select * into value  from _pgr_isColumnIndexed(sname, tname, cname, reportErrs, fnName);
+    return value;
+END
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+/*
+.. function:: _pgr_quote_ident(text)
+
+   Author: Stephen Woodbridge <woodbri at imaptools.com>
+
+   Function to split a string on '.' characters and then quote the
+   components as postgres identifiers and then join them back together
+   with '.' characters. multile '.' will get collapsed into a single
+   '.' so 'schema...table' till get returned as 'schema."table"' and
+   'Schema.table' becomes '"Schema'.'table"'
+
+*/
+
+create or replace function _pgr_quote_ident(idname text)
+    returns text as
+$body$
+declare
+    t text[];
+    pgver text;
+
+begin
+    pgver := regexp_replace(version(), E'^PostgreSQL ([^ ]+)[ ,].*$', E'\\1');
+
+    if _pgr_versionless(pgver, '9.2') then
+        select into t array_agg(quote_ident(term)) from
+            (select nullif(unnest, '') as term
+               from unnest(string_to_array(idname, '.'))) as foo;
+    else
+        select into t array_agg(quote_ident(term)) from
+            (select unnest(string_to_array(idname, '.', '')) as term) as foo;
+    end if;
+    return array_to_string(t, '.');
+end;
+$body$
+language plpgsql immutable;
+
+/*
+ * function for comparing version strings.
+ * Ex: select _pgr_version_less(postgis_lib_version(), '2.1');
+
+   Author: Stephen Woodbridge <woodbri at imaptools.com>
+ *
+ * needed because postgis 2.1 deprecates some function names and
+ * we need to detect the version at runtime
+*/
+CREATE OR REPLACE FUNCTION _pgr_versionless(v1 text, v2 text)
+  RETURNS boolean AS
+$BODY$
+
+
+declare
+    v1a text[];
+    v2a text[];
+    nv1 integer;
+    nv2 integer;
+    ne1 integer;
+    ne2 integer;
+
+begin
+    -- separate components into an array, like:
+    -- '2.1.0-beta3dev'  =>  {2,1,0,beta3dev}
+    v1a := regexp_matches(v1, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+    v2a := regexp_matches(v2, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+
+    -- convert modifiers to numbers for comparison
+    -- we do not delineate between alpha1, alpha2, alpha3, etc
+    ne1 := case when v1a[4] is null or v1a[4]='' then 5
+                when v1a[4] ilike 'rc%' then 4
+                when v1a[4] ilike 'beta%' then 3
+                when v1a[4] ilike 'alpha%' then 2
+                when v1a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    ne2 := case when v2a[4] is null or v2a[4]='' then 5
+                when v2a[4] ilike 'rc%' then 4
+                when v2a[4] ilike 'beta%' then 3
+                when v2a[4] ilike 'alpha%' then 2
+                when v2a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    nv1 := v1a[1]::integer * 10000 +
+           coalesce(v1a[2], '0')::integer * 1000 +
+           coalesce(v1a[3], '0')::integer *  100 + ne1;
+    nv2 := v2a[1]::integer * 10000 +
+           coalesce(v2a[2], '0')::integer * 1000 +
+           coalesce(v2a[3], '0')::integer *  100 + ne2;
+
+    --raise notice 'nv1: %, nv2: %, ne1: %, ne2: %', nv1, nv2, ne1, ne2;
+
+    return nv1 < nv2;
+end;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+create or replace function _pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_startpoint(st_geometryn(g,1));
+    else
+        return st_startpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function _pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_endpoint(st_geometryn(g,1));
+    else
+        return st_endpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
diff --git a/sql/common/pgrouting_version.sql b/sql/common/pgrouting_version.sql
new file mode 100644
index 0000000..1aef84c
--- /dev/null
+++ b/sql/common/pgrouting_version.sql
@@ -0,0 +1,34 @@
+/*
+-- -------------------------------------------------------------------
+-- pgrouting_version.sql
+-- AuthorL Stephen Woodbridge <woodbri at imaptools.com>
+-- Copyright 2013 Stephen Woodbridge
+-- This file is release unde an MIT-X license.
+-- -------------------------------------------------------------------
+*/
+
+/*
+.. function:: pgr_version()
+
+   Author: Stephen Woodbridge <woodbri at imaptools.com>
+
+   Returns the version of pgrouting,Git build,Git hash, Git branch and boost
+*/
+
+
+CREATE OR REPLACE FUNCTION pgr_version()
+RETURNS TABLE(
+        "version" varchar,
+        tag varchar,
+        hash varchar,
+        branch varchar,
+        boost varchar
+    ) AS
+$BODY$
+    SELECT '${PGROUTING_VERSION}'::varchar AS version,
+        '${PGROUTING_FULL_VERSION}'::varchar AS tag,
+        '${PGROUTING_GIT_HASH}'::varchar AS hash,
+        '${PGROUTING_GIT_BRANCH}'::varchar AS branch,
+        '${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}'::varchar AS boost;
+$BODY$
+LANGUAGE sql IMMUTABLE;
diff --git a/sql/common/utilities_pgr.sql b/sql/common/utilities_pgr.sql
new file mode 100644
index 0000000..6acbfd0
--- /dev/null
+++ b/sql/common/utilities_pgr.sql
@@ -0,0 +1,288 @@
+/*PGR-GNU*****************************************************************
+
+ utilities_pgr.sql
+
+ Copyright (c) 2014 Celia Virginia Vergara Castillo
+ vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+
+/************************************************************************
+.. function:: _pgr_onError(errCond,reportErrs,functionname,msgerr,hinto,msgok)
+
+  If the error condition is is true, i.e., there is an error,
+   it will raise a message based on the reportErrs:
+  0: debug_      raise debug_
+  1: report     raise notice
+  2: abort      throw a raise_exception
+   Examples:
+
+	*	preforn _pgr_onError( idname=gname, 2, 'pgr_createToplogy',
+                     'Two columns share the same name');
+	*	preforn _pgr_onError( idname=gname, 2, 'pgr_createToplogy',
+                     'Two columns share the same name', 'Idname and gname must be different');
+    *	preforn _pgr_onError( idname=gname, 2, 'pgr_createToplogy',
+                     'Two columns share the same name', 'Idname and gname must be different',
+                     'Column names are OK');
+
+
+   Author: Vicky Vergara <vicky_vergara at hotmail.com>>
+
+  HISTORY
+     Created: 2014/JUl/28  handling the errors, and have a more visual output
+
+************************************************************************/
+
+CREATE OR REPLACE FUNCTION _pgr_onError(
+  IN errCond boolean,  -- true there is an error
+  IN reportErrs int,   -- 0, 1 or 2
+  IN fnName text,      -- function name that generates the error
+  IN msgerr text,      -- error message
+  IN hinto text default 'No hint', -- hint help
+  IN msgok text default 'OK')      -- message if everything is ok
+  RETURNS void AS
+$BODY$
+BEGIN
+  if errCond=true then
+     if reportErrs=0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+     else
+       if reportErrs = 2 then
+         raise notice '----> PGR ERROR in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+         raise raise_exception;
+       else
+         raise notice '----> PGR NOTICE in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+       end if;
+     end if;
+  else
+       raise debug 'PGR ----> %: %',fnName,msgok;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+/************************************************************************
+.. function:: _pgr_msg(msgKind, fnName, msg)
+
+  It will raise a message based on the msgKind:
+  0: debug_      raise debug_
+  1: notice     raise notice
+  anything else: report     raise notice
+
+   Examples:
+
+	*	preforn _pgr_msg( 1, 'pgr_createToplogy', 'Starting a long process... ');
+	*	preforn _pgr_msg( 1, 'pgr_createToplogy');
+
+
+   Author: Vicky Vergara <vicky_vergara at hotmail.com>>
+
+  HISTORY
+     Created: 2014/JUl/28  handling the errors, and have a more visual output
+
+************************************************************************/
+
+CREATE OR REPLACE FUNCTION _pgr_msg(IN msgKind int, IN fnName text, IN msg text default '---->OK')
+  RETURNS void AS
+$BODY$
+BEGIN
+  if msgKind = 0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msg;
+  else
+       raise notice '----> PGR NOTICE in %: %',fnName,msg;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+/************************************************************************
+.. function:: _pgr_getColumnType(sname,tname,col,reportErrs,fnName) returns text
+.. function:: _pgr_getColumnType(tab,col,reportErrs,fname) returns text
+
+    Returns:
+          type   the types of the registered column "col" in table "tab" or "sname.tname"
+          NULL   when "tab"/"sname"/"tname" is not found or when "col" is not in table "tab"/"sname.tname"
+    unless otherwise indicated raises debug_  on errors
+
+ Examples:
+	* 	 select  _pgr_getColumnType('tab','col');
+	* 	 select  _pgr_getColumnType('myschema','mytable','col');
+        	 execute 'select _pgr_getColumnType('||quote_literal('tab')||','||quote_literal('col')||')' INTO column;
+        	 execute 'select _pgr_getColumnType('||quote_literal(sname)||','||quote_literal(sname)||','||quote_literal('col')||')' INTO column;
+
+   Author: Vicky Vergara <vicky_vergara at hotmail.com>>
+
+  HISTORY
+     Created: 2014/JUL/28
+************************************************************************/
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(sname text, tname text, cname text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    EXECUTE 'select data_type  from information_schema.columns '
+            || 'where table_name = '||quote_literal(tname)
+                 || ' and table_schema=' || quote_literal(sname)
+                 || ' and column_name='||quote_literal(cname)
+       into ctype;
+    err = ctype is null;
+    perform _pgr_onError(err, reportErrs, fnName,
+            'Type of Column '|| cname ||' not found',
+            'Check your column name',
+            'OK: Type of Column '|| cname || ' is ' || ctype);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(tab text, col text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+    select * into cname from _pgr_getColumnName(tab,col,reportErrs, fnName) ;
+    select * into ctype from _pgr_getColumnType(sname,tname,cname,reportErrs, fnName);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+/************************************************************************
+.. function:: _pgr_get_statement( sql ) returns the original statement if its a prepared statement
+
+    Returns:
+          sname,vname  registered schemaname, vertices table name
+
+
+ Examples:
+    select * from _pgr_dijkstra(_pgr_get_statament($1),$2,$3,$4);
+
+   Author: Vicky Vergara <vicky_vergara at hotmail.com>>
+
+  HISTORY
+     Created: 2014/JUL/27
+************************************************************************/
+CREATE OR REPLACE FUNCTION _pgr_get_statement(o_sql text)
+RETURNS text AS
+$BODY$
+DECLARE
+sql TEXT;
+BEGIN
+    EXECUTE 'SELECT statement FROM pg_prepared_statements WHERE name ='  || quote_literal(o_sql) || ' limit 1 ' INTO sql;
+    IF (sql IS NULL) THEN
+      RETURN   o_sql;
+    ELSE
+      RETURN  regexp_replace(sql, '(.)* as ', '', 'i');
+    END IF;
+END
+$BODY$
+LANGUAGE plpgsql STABLE STRICT;
+
+
+/************************************************************************
+.. function:: _pgr_checkVertTab(vertname,columnsArr,reportErrs) returns record of sname,vname
+
+    Returns:
+          sname,vname  registered schemaname, vertices table name
+
+    if the table is not found will stop any further checking.
+    if a column is missing, then its added as integer ---  (id also as integer but is bigserial when the vertices table is created with the pgr functions)
+
+ Examples:
+	* 	execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","cnt","chk"}''::text[])' into naming;
+	* 	execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","ein","eout"}''::text[])' into naming;
+
+   Author: Vicky Vergara <vicky_vergara at hotmail.com>>
+
+  HISTORY
+     Created: 2014/JUL/27
+************************************************************************/
+CREATE OR REPLACE FUNCTION _pgr_checkVertTab(vertname text, columnsArr  text[],
+    IN reportErrs int default 1, IN fnName text default '_pgr_checkVertTab',
+    OUT sname text,OUT vname text)
+RETURNS record AS
+$BODY$
+DECLARE
+    cname text;
+    colname text;
+    naming record;
+    debuglevel text;
+    err  boolean;
+    msgKind int;
+
+BEGIN
+    msgKind = 0; -- debug_
+    execute 'show client_min_messages' into debuglevel;
+
+    perform _pgr_msg(msgKind, fnName, 'Checking table ' || vertname || ' exists');
+       select * from _pgr_getTableName(vertname, 0, fnName) into naming;
+       sname=naming.sname;
+       vname=naming.tname;
+       err = sname is NULL or vname is NULL;
+    perform _pgr_onError( err, 2, fnName,
+          'Vertex Table: ' || vertname || ' not found',
+          'Please create ' || vertname || ' using  _pgr_createTopology() or pgr_createVerticesTable()',
+          'Vertex Table: ' || vertname || ' found');
+
+
+    perform _pgr_msg(msgKind, fnName, 'Checking columns of ' || vertname);
+      FOREACH cname IN ARRAY columnsArr
+      loop
+         select _pgr_getcolumnName(vertname, cname, 0, fnName) into colname;
+         if colname is null then
+           perform _pgr_msg(msgKind, fnName, 'Adding column ' || cname || ' in ' || vertname);
+           set client_min_messages  to warning;
+                execute 'ALTER TABLE '||_pgr_quote_ident(vertname)||' ADD COLUMN '||cname|| ' integer';
+           execute 'set client_min_messages  to '|| debuglevel;
+           perform _pgr_msg(msgKind, fnName);
+         end if;
+      end loop;
+    perform _pgr_msg(msgKind, fnName, 'Finished checking columns of ' || vertname);
+
+    perform _pgr_createIndex(vertname , 'id' , 'btree', reportErrs, fnName);
+ END
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
diff --git a/sql/components/CMakeLists.txt b/sql/components/CMakeLists.txt
new file mode 100644
index 0000000..1fe7bf0
--- /dev/null
+++ b/sql/components/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+SET(LOCAL_FILES
+    connectedComponents.sql
+    strongComponents.sql
+    biconnectedComponents.sql
+    articulationPoints.sql
+    bridges.sql
+    )
+
+# Do not modify below this line
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} ${f})
+    list(APPEND PACKAGE_SQL_FILES  ${CMAKE_CURRENT_BINARY_DIR}/${f})
+endforeach()
+
+set(PgRouting_SQL_FILES ${PgRouting_SQL_FILES} ${PACKAGE_SQL_FILES} PARENT_SCOPE)
diff --git a/sql/components/articulationPoints.sql b/sql/components/articulationPoints.sql
new file mode 100644
index 0000000..ebf58df
--- /dev/null
+++ b/sql/components/articulationPoints.sql
@@ -0,0 +1,38 @@
+/*PGR-GNU*****************************************************************
+File: articulationPoints.sql
+
+Generated with Template by:
+Copyright (c) 2016 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer: 
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+CREATE OR REPLACE FUNCTION pgr_articulationPoints(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/${PGROUTING_LIBRARY_NAME}', 'articulationPoints'
+LANGUAGE c IMMUTABLE STRICT;
+
diff --git a/sql/components/biconnectedComponents.sql b/sql/components/biconnectedComponents.sql
new file mode 100644
index 0000000..3734bff
--- /dev/null
+++ b/sql/components/biconnectedComponents.sql
@@ -0,0 +1,40 @@
+/*PGR-GNU*****************************************************************
+File: biconnectedComponents.sql
+
+Generated with Template by:
+Copyright (c) 2016 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer: 
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+CREATE OR REPLACE FUNCTION pgr_biconnectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the edge in the component
+    OUT n_seq INTEGER,          -- nth_seq of the edge in the component
+    OUT edge BIGINT)            -- the number of the edge
+
+RETURNS SETOF RECORD AS
+'$libdir/${PGROUTING_LIBRARY_NAME}', 'biconnectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
diff --git a/sql/components/bridges.sql b/sql/components/bridges.sql
new file mode 100644
index 0000000..59c9398
--- /dev/null
+++ b/sql/components/bridges.sql
@@ -0,0 +1,38 @@
+/*PGR-GNU*****************************************************************
+File: bridges.sql
+
+Generated with Template by:
+Copyright (c) 2016 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer: 
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+CREATE OR REPLACE FUNCTION pgr_bridges(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT edge BIGINT)            -- the number of the edge 
+
+RETURNS SETOF RECORD AS
+'$libdir/${PGROUTING_LIBRARY_NAME}', 'bridges'
+LANGUAGE c IMMUTABLE STRICT;
+
diff --git a/sql/components/connectedComponents.sql b/sql/components/connectedComponents.sql
new file mode 100644
index 0000000..db36ff2
--- /dev/null
+++ b/sql/components/connectedComponents.sql
@@ -0,0 +1,40 @@
+/*PGR-GNU*****************************************************************
+File: connectedComponents.sql
+
+Generated with Template by:
+Copyright (c) 2016 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer: 
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+CREATE OR REPLACE FUNCTION pgr_connectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/${PGROUTING_LIBRARY_NAME}', 'connectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
diff --git a/sql/components/strongComponents.sql b/sql/components/strongComponents.sql
new file mode 100644
index 0000000..79e00c1
--- /dev/null
+++ b/sql/components/strongComponents.sql
@@ -0,0 +1,40 @@
+/*PGR-GNU*****************************************************************
+File: strongComponents.sql
+
+Generated with Template by:
+Copyright (c) 2016 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer: 
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+CREATE OR REPLACE FUNCTION pgr_strongComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/${PGROUTING_LIBRARY_NAME}', 'strongComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
diff --git a/sql/contraction/CMakeLists.txt b/sql/contraction/CMakeLists.txt
new file mode 100644
index 0000000..a73fc52
--- /dev/null
+++ b/sql/contraction/CMakeLists.txt
@@ -0,0 +1,11 @@
+
+SET(LOCAL_FILES
+    contractGraph.sql
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} ${f})
+    list(APPEND PACKAGE_SQL_FILES  ${CMAKE_CURRENT_BINARY_DIR}/${f})
+endforeach()
+
+set(PgRouting_SQL_FILES ${PgRouting_SQL_FILES} ${PACKAGE_SQL_FILES} PARENT_SCOPE)
diff --git a/sql/contraction/contractGraph.sql b/sql/contraction/contractGraph.sql
new file mode 100644
index 0000000..331b6df
--- /dev/null
+++ b/sql/contraction/contractGraph.sql
@@ -0,0 +1,47 @@
+/*PGR-GNU*****************************************************************
+File: contractGraph.sql
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2016 Rohith Reddy
+Mail:
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+CREATE OR REPLACE FUNCTION pgr_contractGraph(
+    edges_sql TEXT,
+    contraction_order BIGINT[],
+    max_cycles integer DEFAULT 1,
+    forbidden_vertices BIGINT[] DEFAULT ARRAY[]::BIGINT[],
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT type TEXT,
+    OUT id BIGINT,
+    OUT contracted_vertices BIGINT[],
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost float)
+
+  RETURNS SETOF RECORD AS
+ '${MODULE_PATHNAME}', 'contractGraph'
+    LANGUAGE c VOLATILE;
+
diff --git a/sql/costMatrix/CMakeLists.txt b/sql/costMatrix/CMakeLists.txt
new file mode 100644
index 0000000..91a104a
--- /dev/null
+++ b/sql/costMatrix/CMakeLists.txt
@@ -0,0 +1,15 @@
+
+SET(LOCAL_FILES
+    withPointsCostMatrix.sql
+    dijkstraCostMatrix.sql
+    bdDijkstraCostMatrix.sql
+    astarCostMatrix.sql
+    bdAstarCostMatrix.sql
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} ${f})
+    list(APPEND PACKAGE_SQL_FILES  ${CMAKE_CURRENT_BINARY_DIR}/${f})
+endforeach()
+
+set(PgRouting_SQL_FILES ${PgRouting_SQL_FILES} ${PACKAGE_SQL_FILES} PARENT_SCOPE)
diff --git a/sql/costMatrix/astarCostMatrix.sql b/sql/costMatrix/astarCostMatrix.sql
new file mode 100644
index 0000000..4672d71
--- /dev/null
+++ b/sql/costMatrix/astarCostMatrix.sql
@@ -0,0 +1,51 @@
+/*PGR-GNU*****************************************************************
+File: astar.sql
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail:
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+CREATE OR REPLACE FUNCTION pgr_astarCostMatrix(
+    edges_sql TEXT, -- XY edges sql
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2, $2, $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
diff --git a/sql/costMatrix/bdAstarCostMatrix.sql b/sql/costMatrix/bdAstarCostMatrix.sql
new file mode 100644
index 0000000..e39b938
--- /dev/null
+++ b/sql/costMatrix/bdAstarCostMatrix.sql
@@ -0,0 +1,53 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+
+--  BIDIRECTIONAL ASTAR Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdAstarCostMatrix(
+    edges_sql TEXT,
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_bdAstarCostMatrix(TEXT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCostMatrix';
+
+
+
diff --git a/sql/costMatrix/bdDijkstraCostMatrix.sql b/sql/costMatrix/bdDijkstraCostMatrix.sql
new file mode 100644
index 0000000..6c6fce7
--- /dev/null
+++ b/sql/costMatrix/bdDijkstraCostMatrix.sql
@@ -0,0 +1,43 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+
+--  BIDIRECTIONAL DIJKSTRA Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCostMatrix(edges_sql TEXT, vids ANYARRAY, directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
diff --git a/src/costMatrix/sql/dijkstraCostMatrix.sql b/sql/costMatrix/dijkstraCostMatrix.sql
similarity index 100%
rename from src/costMatrix/sql/dijkstraCostMatrix.sql
rename to sql/costMatrix/dijkstraCostMatrix.sql
diff --git a/sql/costMatrix/withPointsCostMatrix.sql b/sql/costMatrix/withPointsCostMatrix.sql
new file mode 100644
index 0000000..20302ec
--- /dev/null
+++ b/sql/costMatrix/withPointsCostMatrix.sql
@@ -0,0 +1,53 @@
+/*PGR-GNU*****************************************************************
+File: withPointsCost.sql
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail:
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+/*
+MANY TO MANY
+*/
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCostMatrix(
+    edges_sql TEXT,
+    points_sql TEXT,
+    pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_pid, a.end_pid, a.agg_cost
+        FROM _pgr_withPoints($1, $2, $3, $3, $4,  $5, TRUE, TRUE) AS a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
diff --git a/sql/deprecated/CMakeLists.txt b/sql/deprecated/CMakeLists.txt
new file mode 100644
index 0000000..9e85650
--- /dev/null
+++ b/sql/deprecated/CMakeLists.txt
@@ -0,0 +1,25 @@
+
+SET(LOCAL_FILES
+    noUnderUtilities.sql
+    apsp_johnson_v2.2.sql
+    apsp_warshall_v2.2.sql
+    astarV2.0.sql
+    bd_astar_v2.sql
+    bdDijkstra-v2.sql
+    kdijkstra-V2.2.sql
+    pgrouting_conversion_tools.sql
+    pgrouting_dmatrix_tools.sql
+    pgr_vidsToDMatrix.sql
+    dijkstra_v2.sql
+    routing_dd.sql
+    maximum_cardinality_matching.sql
+    max_flow-deprecated.sql
+    deprecated-comments.sql
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} ${f})
+    list(APPEND PACKAGE_SQL_FILES  ${CMAKE_CURRENT_BINARY_DIR}/${f})
+endforeach()
+
+set(PgRouting_SQL_FILES ${PgRouting_SQL_FILES} ${PACKAGE_SQL_FILES} PARENT_SCOPE)
diff --git a/src/apsp_johnson/sql/apsp_johnson_v2.2.sql b/sql/deprecated/apsp_johnson_v2.2.sql
similarity index 100%
rename from src/apsp_johnson/sql/apsp_johnson_v2.2.sql
rename to sql/deprecated/apsp_johnson_v2.2.sql
diff --git a/src/apsp_warshall/sql/apsp_warshall_v2.2.sql b/sql/deprecated/apsp_warshall_v2.2.sql
similarity index 100%
rename from src/apsp_warshall/sql/apsp_warshall_v2.2.sql
rename to sql/deprecated/apsp_warshall_v2.2.sql
diff --git a/sql/deprecated/astarV2.0.sql b/sql/deprecated/astarV2.0.sql
new file mode 100644
index 0000000..67639c8
--- /dev/null
+++ b/sql/deprecated/astarV2.0.sql
@@ -0,0 +1,50 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_astar(edges_sql TEXT, source_id INTEGER, target_id INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated signature pgr_astar(text, integer, integer, boolean, boolean)';
+    has_reverse =_pgr_parameter_check('astar', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost, x1,y1, x2, y2 FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+    FROM pgr_astar(sql, ARRAY[$2], ARRAY[$3], directed);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
diff --git a/sql/deprecated/bdDijkstra-v2.sql b/sql/deprecated/bdDijkstra-v2.sql
new file mode 100644
index 0000000..5c4cacf
--- /dev/null
+++ b/sql/deprecated/bdDijkstra-v2.sql
@@ -0,0 +1,53 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2016 pgRouting developers
+Mail: project at pgrouting.org
+
+Copyright (c) 2016 Celia Virginia Vergara Castillo
+mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(edges_sql TEXT, start_vid INTEGER, end_vid INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdDijkstra';
+    has_reverse =_pgr_parameter_check('dijkstra', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdDijkstra(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
diff --git a/sql/deprecated/bd_astar_v2.sql b/sql/deprecated/bd_astar_v2.sql
new file mode 100644
index 0000000..59795bc
--- /dev/null
+++ b/sql/deprecated/bd_astar_v2.sql
@@ -0,0 +1,59 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2016 pgRouting developers
+Mail: project at pgrouting.org
+
+Copyright (c) 2016 Celia Virginia Vergara Castillo
+mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    sql TEXT,
+    source_vid INTEGER,
+    target_vid INTEGER,
+    directed BOOLEAN,
+    has_reverse_cost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdAstar';
+    has_reverse =_pgr_parameter_check('astar', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdAstar(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
diff --git a/sql/deprecated/deprecated-comments.sql b/sql/deprecated/deprecated-comments.sql
new file mode 100644
index 0000000..917ba3f
--- /dev/null
+++ b/sql/deprecated/deprecated-comments.sql
@@ -0,0 +1,145 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2017 pgRouting developers
+Mail: project at pgrouting.org
+
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+
+------------------------
+-- deprecated signatures
+-----------------------
+
+COMMENT ON FUNCTION pgr_astar(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_astar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdAstar( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdAstar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdDijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdDijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_dijkstra(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_dijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_drivingDistance(text,  BIGINT,  FLOAT8,  BOOLEAN,  BOOLEAN)
+    IS 'pgr_drivingDistance(Deprecated signature)';
+
+------------------------
+-- Renamed /deprecated
+-----------------------
+COMMENT ON FUNCTION pgr_apspJohnson(TEXT)
+    IS 'pgr_apspJohnson(Renamed function) use pgr_Johnson instead';
+
+COMMENT ON FUNCTION pgr_apspWarshall(text, boolean, boolean)
+    IS 'pgr_apspWarshall(Renamed function) use pgr_floydWarshall instead';
+
+COMMENT ON FUNCTION pgr_kdijkstraPath( text, INTEGER, INTEGER ARRAY, BOOLEAN, BOOLEAN)
+    IS 'pgr_kdijkstraPath(Renamed function) use pgr_dijkstra instead';
+
+COMMENT ON FUNCTION pgr_kdijkstracost( text, INTEGER, INTEGER array, BOOLEAN, BOOLEAN)
+    IS 'pgr_kDijkstraCost(Renamed function) use pgr_dijkstraCost instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+
+
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+
+
+COMMENT ON FUNCTION pgr_gsoc_vrppdtw( text, INTEGER, INTEGER)
+    IS 'pgr_gsoc_vrppdtw(Renamed function) use pgr_pickDeliverEuclidean instead';
+
+------------------------
+-- Deprecated functions
+-----------------------
+
+COMMENT ON FUNCTION pgr_flipedges(geometry[])
+    IS 'pgr_flipedges(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_texttopoints(text,  integer)
+    IS 'pgr_texttopoints(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstovids(pnts geometry[], edges text, tol float8)
+    IS 'pgr_pointstovids(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    IS 'pgr_pointtoedgenode(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstodmatrix(geometry[], integer)
+    IS 'pgr_pointstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidstodmatrix( integer[],  geometry[],  text, float8)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidsToDMatrix(TEXT,  INTEGER[], BOOLEAN, BOOLEAN, BOOLEAN)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+
+
+
+COMMENT ON FUNCTION pgr_getTableName(IN tab text)
+    IS 'pgr_getTableName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_getColumnName(tab text, col text)
+    IS 'pgr_getColumnName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnInTable(tab text, col text)
+    IS 'pgr_isColumnInTable(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnIndexed(tab text, col text)
+    IS 'pgr_isColumnIndexed(Deprecated function)';
+
+
+COMMENT ON FUNCTION pgr_quote_ident(idname text)
+    IS 'pgr_quote_ident(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_versionless(v1 text, v2 text)
+    IS 'pgr_versionless(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_startPoint(g geometry)
+    IS 'pgr_startPoint(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_endPoint(g geometry)
+    IS 'pgr_endPoint(Deprecated function)';
diff --git a/sql/deprecated/dijkstra_v2.sql b/sql/deprecated/dijkstra_v2.sql
new file mode 100644
index 0000000..f3e01b4
--- /dev/null
+++ b/sql/deprecated/dijkstra_v2.sql
@@ -0,0 +1,59 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated function';
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_dijkstra(sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_dijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN) IS 'pgr_dijkstra(Deprecated signature)';
+
diff --git a/sql/deprecated/kdijkstra-V2.2.sql b/sql/deprecated/kdijkstra-V2.2.sql
new file mode 100644
index 0000000..d74e35a
--- /dev/null
+++ b/sql/deprecated/kdijkstra-V2.2.sql
@@ -0,0 +1,195 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; IF not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstraPath(
+    sql text,
+    source INTEGER,
+    targets INTEGER ARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+    RETURNS SETOF pgr_costResult3 AS
+    $BODY$
+    DECLARE
+    has_reverse BOOLEAN;
+    new_sql TEXT;
+    result pgr_costResult3;
+    tmp pgr_costResult3;
+    sseq INTEGER;
+    i INTEGER;
+    BEGIN
+        RAISE NOTICE 'Deprecated function: Use pgr_dijkstra instead.';
+        has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+        new_sql = sql;
+        IF (array_ndims(targets) != 1) THEN
+            raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+
+        IF (has_reverse != has_rcost) THEN
+            IF (has_reverse) THEN
+                new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+            ELSE
+                raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+                USING ERRCODE = 'XX000';
+            END IF;
+        END IF;
+        SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+        sseq = 0; i = 1;
+        FOR result IN
+            SELECT seq, a.end_vid::INTEGER AS id1, a.node::INTEGER AS i2, a.edge::INTEGER AS id3, cost
+            FROM pgr_dijkstra(new_sql, source, targets, directed) a ORDER BY a.end_vid, seq LOOP
+            WHILE (result.id1 != targets[i]) LOOP
+                tmp.seq = sseq;
+                tmp.id1 = targets[i];
+                IF (targets[i] = source) THEN
+                    tmp.id2 = source;
+                    tmp.cost =0;
+                ELSE
+                    tmp.id2 = 0;
+                    tmp.cost = -1;
+                END IF;
+                tmp.id3 = -1;
+                RETURN next tmp;
+                i = i + 1;
+                sseq = sseq + 1;
+            END LOOP;
+        IF (result.id1 = targets[i] AND result.id3 != -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+        IF (result.id1 = targets[i] AND result.id3 = -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.id2 = source;
+            tmp.cost = 0;
+        ELSE
+            tmp.id2 = 0;
+            tmp.cost = -1;
+        END IF;
+        tmp.id3 = -1;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstracost(
+    sql text,
+    source INTEGER,
+    targets INTEGER array,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+result pgr_costResult;
+tmp pgr_costResult;
+sseq INTEGER;
+i INTEGER;
+BEGIN
+    RAISE NOTICE 'Deprecated function. Use pgr_dijkstraCost instead.';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    new_sql = sql;
+    IF (array_ndims(targets) != 1) THEN
+        raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+        USING ERRCODE = 'XX000';
+    END IF;
+
+
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+    sseq = 0; i = 1;
+    FOR result IN
+        SELECT ((row_number() over()) -1)::INTEGER, a.start_vid::INTEGER, a.end_vid::INTEGER, agg_cost
+        FROM pgr_dijkstraCost(new_sql, source, targets, directed) a ORDER BY end_vid LOOP
+        WHILE (result.id2 != targets[i]) LOOP
+            tmp.seq = sseq;
+            tmp.id1 = source;
+            tmp.id2 = targets[i];
+            IF (targets[i] = source) THEN
+                tmp.cost = 0;
+            ELSE
+                tmp.cost = -1;
+            END IF;
+            RETURN next tmp;
+            i = i + 1;
+            sseq = sseq + 1;
+        END LOOP;
+        IF (result.id2 = targets[i]) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = source;
+        tmp.id2 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.cost = 0;
+        ELSE
+            tmp.cost = -1;
+        END IF;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
diff --git a/sql/deprecated/legacy-developers.sql b/sql/deprecated/legacy-developers.sql
new file mode 100644
index 0000000..dad1040
--- /dev/null
+++ b/sql/deprecated/legacy-developers.sql
@@ -0,0 +1,446 @@
+-------------------------------------------------------------------------------
+-- Legacy FUNCTIONs that were meant to be used by
+-- pgRouting developers
+-- These FUNCTIONs wer used on the plpgsql FUNCTIONs
+
+
+-- FILE intended to be used on 3.0
+-------------------------------------------------------------------------------
+
+------------------------------------------------------------------------------
+-- Deprecated on 2.3
+--
+-- pgr_getColumnName
+-- pgr_getTableName
+-- pgr_isColumnIndexed
+-- pgr_isColumnInTable
+-- pgr_quote_ident
+-- pgr_versionless
+-- pgr_startPoint
+-- pgr_endPoint
+-- pgr_pointToid RENAMED and deprecated and never announced no one has complained
+------------------------------------------------------------------------------
+
+
+-- deprecated on 2.1.0
+CREATE OR REPLACE FUNCTION pgr_getColumnName(tab text, col text)
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    table_name text;
+BEGIN
+    IF pgr_isColumnInTable(tab, col) THEN RETURN NULL;
+    END IF;
+    SELECT pgr_getTableName($1) into sname, tname;
+    table_name := sname || '.' || tname;
+    EXECUTE 'SELECT ' || quote_ident(col) || ' FROM ' || table_name || ' LIMIT 1';
+    RETURN col;
+    EXCEPTION WHEN others THEN
+    BEGIN
+        EXECUTE 'SELECT ' || quote_ident(lower(col)) || ' FROM ' || table_name || ' LIMIT 1';
+        RETURN lower(col);
+        EXCEPTION WHEN others THEN
+            RETURN NULL;
+    END;
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+-- deprecated on 2.1.0
+CREATE OR REPLACE FUNCTION pgr_getTableName(IN tab text,OUT sname text,OUT tname text)
+RETURNS RECORD AS
+$BODY$
+DECLARE
+    table_oid regclass;
+    table_name text;
+BEGIN
+    table_oid := $1::regclass;
+    -- $1 := replace($1, '"', '');
+    SELECT * FROM _pgr_getTableName($1, 0, 'pgr_getTableName') into sname,tname;
+    EXCEPTION WHEN others THEN
+    BEGIN
+        table_oid := lower($1)::regclass;
+        SELECT * FROM _pgr_getTableName(lower($1), 0, 'pgr_getTableName') into sname,tname;
+        EXCEPTION WHEN others THEN
+        sname = 'public';
+        tname = NULL;
+    END;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+-- deprecated on 2.1.0
+CREATE OR REPLACE FUNCTION pgr_isColumnIndexed(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE table_oid regclass;
+BEGIN
+    table_oid := $1::regclass;
+    $1 := replace(tab, '"', '');
+    RETURN  _pgr_isColumnIndexed($1, $2);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+-- deprecated on 2.1.0
+CREATE OR REPLACE FUNCTION pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+    sname text;
+    tname text;
+    table_name text;
+BEGIN
+    SELECT pgr_getTableName($1) into sname, tname;
+    table_name := sname || '.' || tname;
+    EXECUTE 'SELECT ' || quote_ident(col) || ' FROM ' || table_name || ' LIMIT 1';
+    RETURN true;
+    EXCEPTION WHEN others THEN
+        BEGIN
+            EXECUTE 'SELECT ' || quote_ident(lower(col)) || ' FROM ' || table_name || ' LIMIT 1';
+            RETURN true;
+            EXCEPTION WHEN others THEN
+            RETURN false;
+        END;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+-- deprecated on 2.1.0
+CREATE OR REPLACE FUNCTION pgr_quote_ident(idname text)
+RETURNS text as
+$BODY$
+    SELECT  quote_ident($1);
+$BODY$
+LANGUAGE sql IMMUTABLE;
+
+
+
+
+
+-- deprecated on 2.1.0
+CREATE OR REPLACE FUNCTION pgr_versionless(v1 text, v2 text)
+RETURNS boolean AS
+$BODY$
+    SELECT _pgr_versionless($1, $2);
+$BODY$
+LANGUAGE sql VOLATILE STRICT;
+
+
+
+
+-- deprecated on 2.1.0
+CREATE OR REPLACE FUNCTION pgr_startPoint(g geometry)
+    RETURNS geometry as
+$BODY$
+    SELECT  ST_startPoint($1);
+$BODY$
+LANGUAGE sql IMMUTABLE;
+
+
+
+
+-- deprecated on 2.1.0
+CREATE OR REPLACE FUNCTION pgr_endPoint(g geometry)
+    RETURNS geometry as
+$BODY$
+    SELECT  ST_endPoint($1);
+$BODY$
+LANGUAGE sql IMMUTABLE;
+
+
+
+/* RENAMED and deprecated and never announced no one has complained
+-- deprecated on 2.1.0
+CREATE OR REPLACE FUNCTION pgr_pointToId(point geometry, tolerance double precision, vertname text, srid integer)
+RETURNS bigint AS
+$BODY$
+    SELECT _pgr_pointToId($1, $2, $3, $4);
+$BODY$
+LANGUAGE sql VOLATILE STRICT;
+*/
+
+------------------------------------------------------------------------------
+-- Deprecated on 2.3
+--
+-- pgr_flipedges
+-- pgr_texttopoints
+-- pgr_vidsToDMatrix
+-- pgr_vidsToDMatrix
+-- pgr_pointstodmatrix
+------------------------------------------------------------------------------
+
+-- Added on 2.1.0
+-- deprecated on 2.3.0
+CREATE OR REPLACE FUNCTION pgr_flipedges(ga geometry[])
+    RETURNS geometry[] as
+$BODY$
+DECLARE
+    nn integer;
+    i integer;
+    g geometry;
+
+BEGIN
+    nn := array_length(ga, 1);
+    IF nn = 1 THEN
+        RETURN ga;
+    END IF;
+
+    g := ST_StartPoint(ga[1]);
+
+    IF ST_StartPoint(ga[2]) = g or ST_EndPoint(ga[2]) = g THEN
+        ga[1] := ST_Reverse(ga[1]);
+    END IF;
+
+    g := ST_EndPoint(ga[1]);
+
+    FOR i in 2 .. nn LOOP
+        IF g = ST_EndPoint(ga[i]) THEN
+            ga[i] := ST_Reverse(ga[i]);
+        END IF;
+        g := ST_EndPoint(ga[i]);
+    END LOOP;
+
+    RETURN ga;
+end;
+$BODY$
+LANGUAGE plpgsql immutable;
+
+
+
+-- Added on 2.1.0
+-- deprecated on 2.3.0
+CREATE OR REPLACE FUNCTION pgr_texttopoints(pnts text, srid integer DEFAULT(4326))
+    RETURNS geometry[] as
+$BODY$
+DECLARE
+    a text[];
+    t text;
+    p geometry;
+    g geometry[];
+
+BEGIN
+    a := string_to_array(replace(pnts, ',', ' '), ';');
+    FOR t in SELECT unnest(a) LOOP
+        p := ST_pointfromtext('POINT(' || t || ')', srid);
+        g := g || p;
+    END LOOP;
+
+    RETURN g;
+end;
+$BODY$
+LANGUAGE plpgsql immutable;
+
+
+
+-- Added on 2.1.0
+-- deprecated on 2.3.0
+CREATE OR REPLACE FUNCTION pgr_vidsToDMatrix(sql TEXT, vids  INTEGER[], dir BOOLEAN, has_rcost BOOLEAN, want_symmetric BOOLEAN)
+RETURNS float8[] AS
+$BODY$
+DECLARE
+dmatrix_row float8[];
+dmatrix float8[];
+rr RECORD;
+ids INTEGER[];
+total BIGINT;
+BEGIN
+    ids :=  ARRAY(SELECT DISTINCT UNNEST(vids) ORDER BY 1);
+
+    IF want_symmetric THEN
+        dir = false;
+    END IF;
+
+    total := array_length(ids, 1);
+
+    FOR i in 1 .. total LOOP
+        dmatrix_row := dmatrix_row || '+Infinity'::float8;
+    END LOOP;
+
+    FOR i in 1 .. total LOOP
+    dmatrix := dmatrix || ARRAY[dmatrix_row];
+    dmatrix[i][i] = 0;
+    END LOOP;
+
+    FOR rr IN EXECUTE
+        'SELECT start_vid, end_vid, agg_cost FROM pgr_dijkstraCostMatrix($1, $2, $3)'
+        USING
+            sql, ids, dir
+    LOOP
+        dmatrix[(SELECT idx FROM generate_subscripts(ids, 1) AS idx WHERE ids[idx] = rr.start_vid)]
+            [(SELECT idx FROM generate_subscripts(ids, 1) AS idx WHERE ids[idx] = rr.end_vid)] := rr.agg_cost;
+    END LOOP;
+
+    RETURN dmatrix;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100;
+
+
+-- Added on 2.1.0
+-- deprecated on 2.3.0
+CREATE OR REPLACE FUNCTION pgr_vidstodmatrix(
+    IN vids integer[],
+    IN pnts geometry[],
+    IN edges text,
+    tol float8 DEFAULT(0.1),
+    OUT dmatrix double precision[],
+    OUT ids integer[])
+    RETURNS record as
+$BODY$
+DECLARE
+    dmatrix_row float8[];
+    nn integer;
+    rr record;
+    t float8[];
+
+BEGIN
+    ids := array(SELECT DISTINCT unnest(vids::integer[]) ORDER BY 1);
+
+    nn := array_length(ids, 1);
+
+    FOR i in 1 .. nn LOOP
+        dmatrix_row := dmatrix_row || '+Infinity'::float8;
+    END LOOP;
+
+    FOR i in 1 .. nn LOOP
+    dmatrix := dmatrix || ARRAY[dmatrix_row];
+    dmatrix[i][i] = 0;
+    END LOOP;
+
+    FOR i in 1 .. nn LOOP
+        dmatrix := dmatrix || ARRAY[t];
+    END LOOP;
+
+    FOR rr IN EXECUTE
+        'SELECT start_vid, end_vid, agg_cost FROM pgr_dijkstraCostMatrix($1, $2, false)'
+        USING
+            'SELECT id, source, target, cost FROM ' || edges,
+            ids
+    LOOP
+        dmatrix[(SELECT idx FROM generate_subscripts(ids, 1) AS idx WHERE ids[idx] = rr.start_vid)]
+            [(SELECT idx FROM generate_subscripts(ids, 1) AS idx WHERE ids[idx] = rr.end_vid)] := rr.agg_cost;
+    END LOOP;
+
+    RETURN;
+end;
+$BODY$
+LANGUAGE plpgsql STABLE cost 200;
+
+
+
+-- Added on 2.1.0
+-- deprecated on 2.3.0
+CREATE OR REPLACE FUNCTION pgr_pointstodmatrix(pnts geometry[], mode integer default (0), OUT dmatrix double precision[], OUT ids integer[])
+    RETURNS record as
+$BODY$
+DECLARE
+    r record;
+
+BEGIN
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    FOR r in with nodes AS (SELECT row_number() over()::integer AS id, p FROM (select unnest(pnts) AS p) AS foo)
+        SELECT i, array_agg(dist) AS arow FROM (
+            SELECT a.id AS i, b.id AS j,
+                case when mode=0
+                    THEN ST_distance(a.p, b.p)
+                    ELSE ST_distance_sphere(a.p, b.p)
+                END AS dist
+              FROM nodes a, nodes b
+             ORDER BY a.id, b.id
+           ) AS foo group by i ORDER BY i LOOP
+
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    END LOOP;
+end;
+$BODY$
+LANGUAGE plpgsql STABLE;
+
+-----------------------------------------------------------------------
+
+-- Added on 2.1.0
+-- deprecated on 2.4.0
+CREATE OR REPLACE FUNCTION pgr_pointstovids(pnts geometry[], edges text, tol float8 DEFAULT(0.01))
+    RETURNS integer[] as
+$BODY$
+DECLARE
+    v integer[];
+    g geometry;
+BEGIN
+    FOR g in SELECT unnest(pnts) LOOP
+        v := v || pgr_pointtoedgenode(edges, g, tol);
+    END LOOP;
+
+    RETURN v;
+end;
+$BODY$
+LANGUAGE plpgsql STABLE;
+
+
+
+-----------------------------------------------------------------------
+
+-- Added on 2.1.0
+-- deprecated on 2.5.0
+CREATE OR REPLACE FUNCTION pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    RETURNS integer as
+$BODY$
+DECLARE
+    rr record;
+    pct float;
+    debuglevel text;
+
+BEGIN
+    execute 'SELECT * FROM ' || quote_ident(edges) ||
+            ' where ST_dwithin(''' || pnt::text ||
+            '''::geometry, the_geom, ' || tol || ') ORDER BY ST_distance(''' || pnt::text ||
+            '''::geometry, the_geom) asc limit 1' into rr;
+
+    IF rr.the_geom IS NOT null THEN
+        IF geometrytype(rr.the_geom)='MULTILINESTRING' THEN
+            rr.the_geom := ST_GeometryN(rr.the_geom, 1);
+        END IF;
+
+        IF _pgr_versionless(postgis_version(), '2.0') THEN
+            pct := ST_line_locate_point(rr.the_geom, pnt);
+        ELSE
+            pct := ST_lineLocatePoint(rr.the_geom, pnt);
+        END IF;
+
+        IF pct < 0.5 THEN
+            RETURN rr.source;
+        ELSE
+            RETURN rr.target;
+        END IF;
+    ELSE
+        RETURN -1;
+    END IF;
+end;
+$BODY$
+LANGUAGE plpgsql VOLATILE
+cost 5;
+
+
+
+------------------------------------------------------------------------------
diff --git a/sql/deprecated/legacy.sql b/sql/deprecated/legacy.sql
new file mode 100644
index 0000000..7790ab1
--- /dev/null
+++ b/sql/deprecated/legacy.sql
@@ -0,0 +1,438 @@
+-------------------------------------------------------------------------------
+-- Legacy FUNCTIONs that were meant to be used by
+-- Temporarily while the rewrite of 2.0
+-- These FUNCTIONs wer used on the plpgsql functions
+
+
+-- FILE intended to be used on 3.0
+-------------------------------------------------------------------------------
+
+-- I do not know yet if they will create a conflict when putting the legacy
+
+-- Deprecated signature on 2.1.0
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+    SELECT seq-1 , node::integer, edge::integer, cost
+    FROM pgr_dijkstra($1, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed);
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+-- Deprecated signature on 2.1.0
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(edges_sql text, source INTEGER, distance FLOAT8, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+    SELECT seq - 1, node::integer, edge::integer, agg_cost
+    FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4);
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+-- Deprecated signature on 2.1.0
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid integer, end_vid integer, k integer, has_rcost boolean)
+RETURNS SETOF pgr_costresult3 AS
+$BODY$
+    SELECT ((row_number() over()) -1)::integer,  (path_id - 1)::integer, node::integer, edge::integer, cost
+    FROM _pgr_ksp($1::text, $2, $3, $4, TRUE, FALSE) WHERE path_id <= k;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+------------------------------------------------------------------------------
+
+-- Deprecated on 2.2.0
+CREATE OR REPLACE FUNCTION pgr_apspJohnson(edges_sql text)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+    SELECT (row_number() over () - 1)::integer, start_vid::integer, end_vid::integer, agg_cost
+    FROM  pgr_johnson($1, TRUE);
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+-- Deprecated on 2.2.0
+CREATE OR REPLACE FUNCTION pgr_apspWarshall(edges_sql text, directed boolean, has_rcost boolean)
+    RETURNS SETOF pgr_costResult AS
+$BODY$
+    SELECT (row_number() over () -1)::integer, start_vid::integer, end_vid::integer, agg_cost
+    FROM  pgr_floydWarshall($1, $2);
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- Deprecated on 2.2.0
+CREATE OR REPLACE FUNCTION pgr_kdijkstraPath(
+    sql text,
+    source INTEGER,
+    targets INTEGER ARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costResult3 AS
+$BODY$
+    SELECT (row_number() over () -1)::integer, end_vid::INTEGER, node::INTEGER, edge::INTEGER, cost
+    FROM pgr_dijkstra($1, $2, $3, $4);
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- Deprecated on 2.2.0
+CREATE OR REPLACE FUNCTION pgr_kdijkstracost(
+    sql text,
+    source INTEGER,
+    targets INTEGER array,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+    SELECT (row_number() over () -1)::integer, start_vid::integer, end_vid::INTEGER, agg_cost
+    FROM pgr_dijkstraCost($1, $2, $3, $4);
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+-- Deprecated on 2.3.0
+CREATE OR REPLACE FUNCTION pgr_astar(edges_sql TEXT, source_id INTEGER, target_id INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+    SELECT seq - 1, node::INTEGER, edge::INTEGER, cost
+    FROM pgr_astar($1, ARRAY[$2], ARRAY[$3], $4);
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- Deprecated on 2.4.0
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(edges_sql TEXT, start_vid INTEGER, end_vid INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    SELECT seq - 1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM pgr_bdDijkstra($1, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- included on 2.3.0
+-- Deprecated on 2.5.0
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT * FROM pgr_PushRelabel($1, $2, $3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+
+-- included on 2.3.0
+-- Deprecated on 2.5.0
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT * FROM pgr_boykovKolmogorov($1, $2, $3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+-- included on 2.3.0
+-- Deprecated on 2.5.0
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT * FROM pgr_edmondsKarp($1, $2, $3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+-- included on 2.3.0
+-- Deprecated on 2.5.0
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT * FROM pgr_PushRelabel($1, $2, $3);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+-- included on 2.3.0
+-- Deprecated on 2.5.0
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT * FROM pgr_boykovKolmogorov($1, $2, $3);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+-- included on 2.3.0
+-- Deprecated on 2.5.0
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+       SELECT * FROM pgr_edmondsKarp($1, $2, $3);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+
+-- included on 2.3.0
+-- Deprecated on 2.5.0
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT * FROM pgr_PushRelabel($1, $2, $3);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+-- included on 2.3.0
+-- Deprecated on 2.5.0
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT * FROM pgr_boykovKolmogorov($1, $2, $3);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+-- included on 2.3.0
+-- Deprecated on 2.5.0
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT * FROM pgr_edmondsKarp($1, $2, $3);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+
+-- included on 2.3.0
+-- Deprecated on 2.5.0
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT * FROM pgr_PushRelabel($1, $2, $3);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+-- included on 2.3.0
+-- Deprecated on 2.5.0
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT * FROM pgr_boykovKolmogorov($1, $2, $3);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+-- included on 2.3.0
+-- Deprecated on 2.5.0
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT * FROM pgr_edmondsKarp($1, $2, $3);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+-- included on 2.3.0
+-- Deprecated on 2.5.0
+CREATE OR REPLACE FUNCTION pgr_maximumcardinalitymatching(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT * FROM pgr_maxCardinalityMatch($1, $2);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+-- Deprecated on 2.5.0
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+    SELECT seq - 1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdAstar($1, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4);
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
diff --git a/sql/deprecated/max_flow-deprecated.sql b/sql/deprecated/max_flow-deprecated.sql
new file mode 100644
index 0000000..1039d14
--- /dev/null
+++ b/sql/deprecated/max_flow-deprecated.sql
@@ -0,0 +1,292 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Copyright (c) 2016 Andrea Nardelli
+mail: nrd.nardelli at gmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+/***********************************
+        ONE TO ONE
+***********************************/
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+/***********************************
+        ONE TO MANY
+***********************************/
+
+--INTERNAL FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+/***********************************
+        MANY TO ONE
+***********************************/
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+/***********************************
+        MANY TO MANY
+***********************************/
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
diff --git a/sql/deprecated/maximum_cardinality_matching.sql b/sql/deprecated/maximum_cardinality_matching.sql
new file mode 100644
index 0000000..202c0d0
--- /dev/null
+++ b/sql/deprecated/maximum_cardinality_matching.sql
@@ -0,0 +1,39 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Copyright (c) 2016 Andrea Nardelli
+mail: nrd.nardelli at gmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maximumcardinalitymatching(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '${MODULE_PATHNAME}', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
diff --git a/sql/deprecated/noUnderUtilities.sql b/sql/deprecated/noUnderUtilities.sql
new file mode 100644
index 0000000..de9ba79
--- /dev/null
+++ b/sql/deprecated/noUnderUtilities.sql
@@ -0,0 +1,111 @@
+/*PGR-GNU*****************************************************************
+
+FILE: noUnderUtilities.sql
+
+Copyright (c) 2015 Celia Vriginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+
+CREATE OR REPLACE FUNCTION pgr_getTableName(IN tab text,OUT sname text,OUT tname text)
+RETURNS RECORD AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getTableName: This function will no longer be soported';
+    select * from _pgr_getTableName(tab, 0, 'pgr_getTableName') into sname,tname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_getColumnName(tab text, col text)
+RETURNS text AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getColumnName: This function will no longer be soported';
+    return _pgr_getColumnName(tab,col, 0, 'pgr_getColumnName');
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    select * from _pgr_getColumnName(tab,col,0, 'pgr_isColumnInTable') into cname;
+    return  cname IS not NULL;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnIndexed(tab text, col text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnIndexed: This function will no longer be soported';
+    return  _pgr_isColumnIndexed(tab,col);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+create or replace function pgr_quote_ident(idname text)
+returns text as
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    return  _pgr_quote_ident(idname);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_versionless(v1 text, v2 text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_versionless: This function will no longer be soported';
+    return  _pgr_versionless(v1,v2);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+create or replace function pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_startPoint: This function will no longer be soported';
+    return  _pgr_startPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_endPoint: This function will no longer be soported';
+    return  _pgr_endPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
diff --git a/sql/deprecated/pgr_vidsToDMatrix.sql b/sql/deprecated/pgr_vidsToDMatrix.sql
new file mode 100644
index 0000000..121785e
--- /dev/null
+++ b/sql/deprecated/pgr_vidsToDMatrix.sql
@@ -0,0 +1,92 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; IF not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+CREATE OR REPLACE FUNCTION pgr_vidsToDMatrix(sql TEXT, vids  INTEGER[], dir BOOLEAN, has_rcost BOOLEAN, want_symmetric BOOLEAN)
+RETURNS float8[] AS
+$BODY$
+DECLARE
+directed BOOLEAN;
+has_reverse BOOLEAN;
+edges_sql TEXT;
+dmatrix_row float8[];
+dmatrix float8[];
+cell RECORD;
+unique_vids INTEGER[];
+total BIGINT;
+from_v BIGINT;
+to_v BIGINT;
+BEGIN
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql = sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    unique_vids :=  ARRAY(SELECT DISTINCT UNNEST(vids) ORDER BY 1);
+
+    IF want_symmetric THEN
+        directed = false;
+    ELSE
+        directed = dir;
+    END IF;
+
+    total := array_length(unique_vids, 1);
+
+    -- initializing dmatrix
+    FOR i in 1 .. total LOOP
+        dmatrix_row := dmatrix_row || '+Infinity'::float8;
+    END LOOP;
+    FOR i in 1 .. total LOOP
+    dmatrix := dmatrix || ARRAY[dmatrix_row];
+    dmatrix[i][i] = 0;
+    END LOOP;
+
+    CREATE TEMP TABLE __x___y____temp AS
+        WITH result AS
+            (SELECT unnest(unique_vids) AS vid)
+        SELECT row_number() OVER() AS idx, vid FROM result;
+
+    FOR cell IN SELECT * FROM pgr_dijkstraCostMatrix(sql, unique_vids, directed) LOOP
+        SELECT idx INTO from_v FROM __x___y____temp WHERE vid =  cell.start_vid;
+        SELECT idx INTO to_v FROM __x___y____temp WHERE vid =  cell.end_vid;
+
+        dmatrix[from_v][to_v] = cell.agg_cost;
+        dmatrix[to_v][from_v] = cell.agg_cost;
+    END LOOP;
+
+    DROP TABLE IF EXISTS __x___y____temp;
+    RETURN dmatrix;
+
+    EXCEPTION WHEN others THEN
+       DROP TABLE IF EXISTS __x___y____temp;
+       raise exception '% %', SQLERRM, SQLSTATE;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100;
+
diff --git a/sql/deprecated/pgrouting_conversion_tools.sql b/sql/deprecated/pgrouting_conversion_tools.sql
new file mode 100644
index 0000000..a1091f4
--- /dev/null
+++ b/sql/deprecated/pgrouting_conversion_tools.sql
@@ -0,0 +1,186 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+create or replace function pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    returns integer as
+$body$
+/*
+ *  pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+ *
+ *  Given and table of edges with a spatial index on the_geom
+ *  and a point geometry search for the closest edge within tol distance to the edges
+ *  then compute the projection of the point onto the line segment and select source or target
+ *  based on whether the projected point is closer to the respective end and return source or target.
+ *  If no edge is within tol distance then return -1
+*/
+declare
+    rr record;
+    pct float;
+    debuglevel text;
+
+begin
+    -- find the closest edge within tol distance
+    execute 'select * from ' || _pgr_quote_ident(edges) ||
+            ' where st_dwithin(''' || pnt::text ||
+            '''::geometry, the_geom, ' || tol || ') order by st_distance(''' || pnt::text ||
+            '''::geometry, the_geom) asc limit 1' into rr;
+
+    if rr.the_geom is not null then
+        -- deal with MULTILINESTRINGS
+        if geometrytype(rr.the_geom)='MULTILINESTRING' THEN
+            rr.the_geom := ST_GeometryN(rr.the_geom, 1);
+        end if;
+
+        -- project the point onto the linestring
+        execute 'show client_min_messages' into debuglevel;
+        SET client_min_messages='ERROR';
+        pct := st_line_locate_point(rr.the_geom, pnt);
+        execute 'set client_min_messages  to '|| debuglevel;
+
+        -- return the node we are closer to
+        if pct < 0.5 then
+            return rr.source;
+        else
+            return rr.target;
+        end if;
+    else
+        -- return a failure to find an edge within tol distance
+        return -1;
+    end if;
+end;
+$body$
+  language plpgsql volatile
+  cost 5;
+
+
+----------------------------------------------------------------------------
+
+create or replace function pgr_flipedges(ga geometry[])
+    returns geometry[] as
+$body$
+/*
+ *  pgr_flipedges(ga geometry[])
+ *
+ *  Given an array of linestrings that are supposedly connected end to end like the results
+ *  of a route, check the edges and flip any end for end if they do not connect with the
+ *  previous seegment and return the array with the segments flipped as appropriate.
+ *
+ *  NOTE: no error checking is done for conditions like adjacent edges are not connected.
+*/
+declare
+    nn integer;
+    i integer;
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_flipEdges';
+    -- get the count of edges, and return if only one edge
+    nn := array_length(ga, 1);
+    if nn=1 then
+        return ga;
+    end if;
+
+    -- determine if first needs to be flipped
+    g := _pgr_startpoint(ga[1]);
+
+    -- if the start of the first is connected to the second then it needs to be flipped
+    if _pgr_startpoint(ga[2])=g or _pgr_endpoint(ga[2])=g then
+        ga[1] := st_reverse(ga[1]);
+    end if;
+    g := _pgr_endpoint(ga[1]);
+
+    -- now if  the end of the last edge matchs the end of the current edge we need to flip it
+    for i in 2 .. nn loop
+        if _pgr_endpoint(ga[i])=g then
+            ga[i] := st_reverse(ga[i]);
+        end if;
+        -- save the end of this edge into the last end for the next cycle
+        g := _pgr_endpoint(ga[i]);
+    end loop;
+
+    return ga;
+end;
+$body$
+    language plpgsql immutable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_texttopoints(pnts text, srid integer DEFAULT(4326))
+    returns geometry[] as
+$body$
+/*
+ *  pgr_texttopoints(pnts text, srid integer DEFAULT(4326))
+ *
+ *  Given a text string of the format "x,y;x,y;x,y;..." and the srid to use,
+ *  split the string and create and array point geometries
+*/
+declare
+    a text[];
+    t text;
+    p geometry;
+    g geometry[];
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_textToPoints';
+    -- convert commas to space and split on ';'
+    a := string_to_array(replace(pnts, ',', ' '), ';');
+    -- convert each 'x y' into a point geometry and concattenate into a new array
+    for t in select unnest(a) loop
+        p := st_pointfromtext('POINT(' || t || ')', srid);
+        g := g || p;
+    end loop;
+
+    return g;
+end;
+$body$
+    language plpgsql immutable;
+
+-----------------------------------------------------------------------
+
+create or replace function pgr_pointstovids(pnts geometry[], edges text, tol float8 DEFAULT(0.01))
+    returns integer[] as
+$body$
+/*
+ *  pgr_pointstovids(pnts geometry[], edges text, tol float8 DEFAULT(0.01))
+ *
+ *  Given an array of point geometries and an edge table and a max search tol distance
+ *  convert points into vertex ids using pgr_pointtoedgenode()
+ *
+ *  NOTE: You need to check the results for any vids=-1 which indicates if failed to locate an edge
+*/
+declare
+    v integer[];
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_pointsToVids';
+    -- cycle through each point and locate the nearest edge and vertex on that edge
+    for g in select unnest(pnts) loop
+        v := v || pgr_pointtoedgenode(edges, g, tol);
+    end loop;
+
+    return v;
+end;
+$body$
+    language plpgsql stable;
+
diff --git a/sql/deprecated/pgrouting_dmatrix_tools.sql b/sql/deprecated/pgrouting_dmatrix_tools.sql
new file mode 100644
index 0000000..4e365cb
--- /dev/null
+++ b/sql/deprecated/pgrouting_dmatrix_tools.sql
@@ -0,0 +1,144 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+create or replace function pgr_pointstodmatrix(pnts geometry[], mode integer default (0), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+/*
+ *  pgr_pointstodmatrix(pnts geometry[], OUT dmatrix double precision[], OUT ids integer[])
+ *
+ *  Create a distance symmetric distance matrix suitable for TSP using Euclidean distances
+ *  based on the st_distance(). You might want to create a variant of this the uses st_distance_sphere()
+ *  or st_distance_spheriod() or some other function.
+ *
+*/
+declare
+    r record;
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_pointsToDMatrix';
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    -- create an id for each point in the array and unnest it into a table nodes in the with clause
+    for r in with nodes as (select row_number() over()::integer as id, p from (select unnest(pnts) as p) as foo)
+        -- compute a row of distances
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j,
+                case when mode=0
+                    then st_distance(a.p, b.p)
+                    else st_distance_sphere(a.p, b.p)
+                end as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i loop
+
+        -- you must concat an array[array[]] to make dmatrix[][]
+        -- concat the row of distances to the dmatrix
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+end;
+$body$
+    language plpgsql stable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_vidstodmatrix(IN vids integer[], IN pnts geometry[], IN edges text, tol float8 DEFAULT(0.1), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+/*
+ *  pgr_vidstodmatrix(IN vids integer[], IN pnts geometry[], IN edges text, tol float8 DEFAULT(0.1),
+ *                    OUT dmatrix double precision[], OUT ids integer[])
+ *
+ *  This function that's an array vertex ids, the original array of points, the edge table name and a tol.
+ *  It then computes kdijkstra() distances for each vertex to all the other vertices and creates a symmetric
+ *  distances matrix suitable for TSP. The pnt array and the tol are used to establish a BBOX for limiteding
+ *  selection of edges.the extents of the points is expanded by tol.
+ *
+ *  NOTES:
+ *  1. we compute a symmetric matrix because TSP requires that so the distances are better the Euclidean but
+ *     but are not perfect
+ *  2. kdijkstra() can fail to find a path between some of the vertex ids. We to not detect this other than
+ *     the cost might get set to -1.0, so the dmatrix should be checked for this as it makes it invalid for TSP
+ *
+*/
+declare
+    i integer;
+    j integer;
+    nn integer;
+    rr record;
+    bbox geometry;
+    t float8[];
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    -- check if the input arrays has any -1 values, maybe this whould be a raise exception
+    if vids @> ARRAY[-1] then
+    raise notice 'Some vids are undefined (-1)!';
+    dmatrix := null;
+    ids := null;
+    return;
+    end if;
+
+    ids := vids;
+
+    -- get the count of nodes
+    nn := array_length(vids,1);
+
+    -- zero out a dummy row
+    for i in 1 .. nn loop
+        t := t || 0.0::float8;
+    end loop;
+
+    -- using the dummy row, zero out the whole matrix
+    for i in 1 .. nn loop
+    dmatrix := dmatrix || ARRAY[t];
+    end loop;
+
+    for i in 1 .. nn-1 loop
+        j := i;
+        -- compute the bbox for the point needed for this row
+        select st_expand(st_collect(pnts[id]), tol) into bbox
+          from (select generate_series as id from generate_series(i, nn)) as foo;
+
+        -- compute kdijkstra() for this row
+        for rr in execute 'select * from pgr_dijkstracost($1, $2, $3, false)'
+                  using 'select id, source, target, cost from ' || edges ||
+                        ' where the_geom && ''' || bbox::text || '''::geometry'::text, vids[i], vids[i+1:nn] loop
+
+            -- TODO need to check that all node were reachable from source
+            -- I think unreachable paths between nodes returns cost=-1.0
+
+            -- populate the matrix with the cost values, remember this is symmetric
+            j := j + 1;
+            -- raise notice 'cost(%,%)=%', i, j, rr.agg_cost;
+            dmatrix[i][j] := rr.agg_cost;
+            dmatrix[j][i] := rr.agg_cost;
+        end loop;
+    end loop;
+
+end;
+$body$
+    language plpgsql stable cost 200;
+
diff --git a/sql/deprecated/routing_dd.sql b/sql/deprecated/routing_dd.sql
new file mode 100644
index 0000000..da48c4b
--- /dev/null
+++ b/sql/deprecated/routing_dd.sql
@@ -0,0 +1,59 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+
+
+-- OLD SIGNATURE
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(edges_sql text, source BIGINT, distance FLOAT, directed BOOLEAN, has_rcost BOOLEAN)
+  RETURNS SETOF pgr_costresult AS
+  $BODY$
+  DECLARE
+  has_reverse BOOLEAN;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function';
+
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, FALSE);
+
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_reverse) THEN
+             -- the user says it doesn't have reverse cost but its false
+             -- removing from query
+             RAISE NOTICE 'Contradiction found: has_rcost set to false but reverse_cost column found';
+             sql = 'SELECT id, source, target, cost, -1 as reverse_cost FROM (' || edges_sql || ') __q ';
+         ELSE
+             -- the user says it has reverse cost but its false
+             -- can't do anything
+             RAISE EXCEPTION 'has_rcost set to true but reverse_cost not found';
+         END IF;
+      END IF;
+
+      RETURN query SELECT seq - 1 AS seq, node::integer AS id1, edge::integer AS id2, agg_cost AS cost
+                FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
diff --git a/sql/dijkstra/CMakeLists.txt b/sql/dijkstra/CMakeLists.txt
new file mode 100644
index 0000000..98ccb27
--- /dev/null
+++ b/sql/dijkstra/CMakeLists.txt
@@ -0,0 +1,14 @@
+
+SET(LOCAL_FILES
+    _dijkstra.sql
+    dijkstra.sql
+    dijkstraCost.sql
+    dijkstraVia.sql
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} ${f})
+    list(APPEND PACKAGE_SQL_FILES  ${CMAKE_CURRENT_BINARY_DIR}/${f})
+endforeach()
+
+set(PgRouting_SQL_FILES ${PgRouting_SQL_FILES} ${PACKAGE_SQL_FILES} PARENT_SCOPE)
diff --git a/sql/dijkstra/_dijkstra.sql b/sql/dijkstra/_dijkstra.sql
new file mode 100644
index 0000000..5277257
--- /dev/null
+++ b/sql/dijkstra/_dijkstra.sql
@@ -0,0 +1,45 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+CREATE OR REPLACE FUNCTION _pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+'${MODULE_PATHNAME}', 'many_to_many_dijkstra'
+LANGUAGE c VOLATILE;
diff --git a/sql/dijkstra/dijkstra.sql b/sql/dijkstra/dijkstra.sql
new file mode 100644
index 0000000..e3723dd
--- /dev/null
+++ b/sql/dijkstra/dijkstra.sql
@@ -0,0 +1,149 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer, OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstra(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(Many to Many)';
diff --git a/sql/dijkstra/dijkstraCost.sql b/sql/dijkstra/dijkstraCost.sql
new file mode 100644
index 0000000..ce630ad
--- /dev/null
+++ b/sql/dijkstra/dijkstraCost.sql
@@ -0,0 +1,111 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(Many to Many)';
diff --git a/sql/dijkstra/dijkstraVia.sql b/sql/dijkstra/dijkstraVia.sql
new file mode 100644
index 0000000..05379c1
--- /dev/null
+++ b/sql/dijkstra/dijkstraVia.sql
@@ -0,0 +1,51 @@
+/*PGR-GNU*****************************************************************
+File: dijkstraViaVertex.sql
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+
+Function's developer:
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraVia(
+    edges_sql TEXT,
+    via_vertices ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    strict BOOLEAN DEFAULT FALSE,
+    U_turn_on_edge BOOLEAN DEFAULT TRUE,
+
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+ '${MODULE_PATHNAME}', 'dijkstraVia'
+    LANGUAGE c VOLATILE;
+
+
diff --git a/sql/dijkstraTRSP/CMakeLists.txt b/sql/dijkstraTRSP/CMakeLists.txt
new file mode 100644
index 0000000..b8d26b3
--- /dev/null
+++ b/sql/dijkstraTRSP/CMakeLists.txt
@@ -0,0 +1,13 @@
+
+SET(LOCAL_FILES
+    dijkstraTRSP.sql
+    )
+
+# Do not modify below this line
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} ${f})
+    list(APPEND PACKAGE_SQL_FILES  ${CMAKE_CURRENT_BINARY_DIR}/${f})
+endforeach()
+
+set(PgRouting_SQL_FILES ${PgRouting_SQL_FILES} ${PACKAGE_SQL_FILES} PARENT_SCOPE)
diff --git a/sql/dijkstraTRSP/dijkstraTRSP.sql b/sql/dijkstraTRSP/dijkstraTRSP.sql
new file mode 100644
index 0000000..083bf2d
--- /dev/null
+++ b/sql/dijkstraTRSP/dijkstraTRSP.sql
@@ -0,0 +1,47 @@
+/*PGR-GNU*****************************************************************
+File: dijkstraTRSP.sql
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2017 Vidhan Jain
+Mail: vidhanj1307 at gmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraTRSP(
+    TEXT,
+    TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    strict BOOLEAN DEFAULT true,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+'$libdir/${PGROUTING_LIBRARY_NAME}', 'dijkstraTRSP'
+LANGUAGE c IMMUTABLE STRICT;
diff --git a/sql/driving_distance/CMakeLists.txt b/sql/driving_distance/CMakeLists.txt
new file mode 100644
index 0000000..eecfff8
--- /dev/null
+++ b/sql/driving_distance/CMakeLists.txt
@@ -0,0 +1,12 @@
+
+SET(LOCAL_FILES
+    withPoints_dd.sql
+    dijkstraDD.sql
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} ${f})
+    list(APPEND PACKAGE_SQL_FILES  ${CMAKE_CURRENT_BINARY_DIR}/${f})
+endforeach()
+
+set(PgRouting_SQL_FILES ${PgRouting_SQL_FILES} ${PACKAGE_SQL_FILES} PARENT_SCOPE)
diff --git a/sql/driving_distance/dijkstraDD.sql b/sql/driving_distance/dijkstraDD.sql
new file mode 100644
index 0000000..20551c5
--- /dev/null
+++ b/sql/driving_distance/dijkstraDD.sql
@@ -0,0 +1,61 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vids anyarray,
+    distance FLOAT,
+    directed BOOLEAN DEFAULT TRUE,
+    equicost BOOLEAN DEFAULT FALSE,
+    OUT seq integer,
+    OUT from_v  bigint,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '${MODULE_PATHNAME}', 'driving_many_to_dist'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vid bigint,
+    distance FLOAT8,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq integer,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
diff --git a/sql/driving_distance/withPoints_dd.sql b/sql/driving_distance/withPoints_dd.sql
new file mode 100644
index 0000000..bf290f7
--- /dev/null
+++ b/sql/driving_distance/withPoints_dd.sql
@@ -0,0 +1,71 @@
+/*PGR-GNU*****************************************************************
+File: withPoints_dd.sql
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid ANYARRAY,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+    equicost BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '${MODULE_PATHNAME}', 'many_withPointsDD'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_withPointsDD($1, $2, ARRAY[$3]::BIGINT[], $4, $5, $6, $7, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
diff --git a/sql/ksp/CMakeLists.txt b/sql/ksp/CMakeLists.txt
new file mode 100644
index 0000000..d611133
--- /dev/null
+++ b/sql/ksp/CMakeLists.txt
@@ -0,0 +1,12 @@
+
+SET(LOCAL_FILES
+    routing_ksp.sql
+    withPoints_ksp.sql
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} ${f})
+    list(APPEND PACKAGE_SQL_FILES  ${CMAKE_CURRENT_BINARY_DIR}/${f})
+endforeach()
+
+set(PgRouting_SQL_FILES ${PgRouting_SQL_FILES} ${PACKAGE_SQL_FILES} PARENT_SCOPE)
diff --git a/sql/ksp/routing_ksp.sql b/sql/ksp/routing_ksp.sql
new file mode 100644
index 0000000..20d39f4
--- /dev/null
+++ b/sql/ksp/routing_ksp.sql
@@ -0,0 +1,78 @@
+/*PGR-GNU*****************************************************************
+File: routing_ksp.sql
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+
+CREATE OR REPLACE FUNCTION _pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer, directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+    '${MODULE_PATHNAME}', 'kshortest_path'
+    LANGUAGE c STABLE STRICT;
+
+-- V2 the graph is directed and there are no heap paths
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid integer, end_vid integer, k integer, has_rcost boolean)
+  RETURNS SETOF pgr_costresult3 AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated signature of pgr_ksp';
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql::text, false);
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_rcost) THEN
+           -- user says that it has reverse_cost but its not true
+           RAISE EXCEPTION 'has_reverse_cost set to true but reverse_cost not found';
+         ELSE
+           -- user says that it does not have reverse_cost but it does have it
+           -- to ignore we remove reverse_cost from the query
+           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+         END IF;
+      END IF;
+
+      RETURN query SELECT ((row_number() over()) -1)::integer  AS seq,  (path_id - 1)::integer AS id1, node::integer AS id2, edge::integer AS id3, cost
+            FROM _pgr_ksp(sql::text, start_vid, end_vid, k, TRUE, FALSE) WHERE path_id <= k;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer,
+  directed boolean default true, heap_paths boolean default false,
+  --directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  BEGIN
+         RETURN query SELECT *
+                FROM _pgr_ksp(edges_sql::text, start_vid, end_vid, k, directed, heap_paths);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
diff --git a/sql/ksp/withPoints_ksp.sql b/sql/ksp/withPoints_ksp.sql
new file mode 100644
index 0000000..f94f2fe
--- /dev/null
+++ b/sql/ksp/withPoints_ksp.sql
@@ -0,0 +1,44 @@
+/*PGR-GNU*****************************************************************
+File: withPoints_ksp.sql
+
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsKSP(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    k INTEGER,
+
+    directed BOOLEAN DEFAULT TRUE,
+    heap_paths BOOLEAN DEFAULT FALSE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER, OUT path_id INTEGER, OUT path_seq INTEGER,
+    OUT node BIGINT, OUT edge BIGINT,
+    OUT cost FLOAT, OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+    '${MODULE_PATHNAME}', 'withPoints_ksp'
+    LANGUAGE c STABLE STRICT;
+
diff --git a/sql/label_graph/CMakeLists.txt b/sql/label_graph/CMakeLists.txt
new file mode 100644
index 0000000..3e91a16
--- /dev/null
+++ b/sql/label_graph/CMakeLists.txt
@@ -0,0 +1,11 @@
+
+SET(LOCAL_FILES
+    label_graph.sql
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} ${f})
+    list(APPEND PACKAGE_SQL_FILES  ${CMAKE_CURRENT_BINARY_DIR}/${f})
+endforeach()
+
+set(PgRouting_SQL_FILES ${PgRouting_SQL_FILES} ${PACKAGE_SQL_FILES} PARENT_SCOPE)
diff --git a/sql/label_graph/label_graph.sql b/sql/label_graph/label_graph.sql
new file mode 100644
index 0000000..86a4fc3
--- /dev/null
+++ b/sql/label_graph/label_graph.sql
@@ -0,0 +1,194 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+CREATE OR REPLACE FUNCTION pgr_labelGraph(
+                edge_table text,
+                id text default 'id',
+                source text default 'source',
+                target text default 'target',
+                subgraph text default 'subgraph',
+                rows_where text default 'true'
+        )
+        RETURNS character varying AS
+$BODY$
+
+DECLARE
+        naming record;
+        schema_name text;
+        table_name text;
+        garbage text;
+        incre integer;
+        table_schema_name text;
+        query text;
+        ecnt integer;
+        sql1 text;
+        rec1 record;
+        sql2 text;
+        rec2 record;
+        rec_count record;
+        rec_single record;
+        graph_id integer;
+        gids int [];
+
+BEGIN
+        raise notice 'Processing:';
+        raise notice 'pgr_brokenGraph(''%'',''%'',''%'',''%'',''%'',''%'')', edge_table,id,source,target,subgraph,rows_where;
+        raise notice 'Performing initial checks, please hold on ...';
+
+        Raise Notice 'Starting - Checking table ...';
+        BEGIN
+                raise debug 'Checking % table existance', edge_table;
+                execute 'select * from pgr_getTableName('|| quote_literal(edge_table) ||')' into naming;
+                schema_name = naming.sname;
+                table_name = naming.tname;
+                table_schema_name = schema_name||'.'||table_name;
+                IF schema_name is null then
+                        raise notice 'no schema';
+                        return 'FAIL';
+                else
+                        if table_name is null then
+                                raise notice 'no table';
+                                return 'FAIL';
+                        end if;
+                end if;
+        END;
+        Raise Notice 'Ending - Checking table';
+
+        Raise Notice 'Starting - Checking columns';
+        BEGIN
+                raise debug 'Checking exitance of necessary columns inside % table', edge_table;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(id) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no id column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(source) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no source column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(target) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no target column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(subgraph) ||')' into naming;
+                if naming.pgr_iscolumnintable = 't' then
+                        raise notice 'subgraph column already in the table';
+                        return 'FAIL';
+                end if;
+        END;
+        Raise Notice 'Ending - Checking columns';
+
+        Raise Notice 'Starting - Checking rows_where condition';
+        BEGIN
+                raise debug 'Checking rows_where condition';
+                query='select count(*) from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where;
+                execute query into ecnt;
+                raise debug '-->Rows where condition: OK';
+                raise debug '    --> OK';
+                EXCEPTION WHEN OTHERS THEN
+                        raise notice 'Got %', SQLERRM;
+                        Raise notice 'ERROR: Condition is not correct. Please execute the following query to test your condition';
+                        Raise notice '%', query;
+                        return 'FAIL';
+        END;
+        Raise Notice 'Ending - Checking rows_where condition';
+
+        garbage := 'garbage001';
+        incre := 1;
+        Raise Notice 'Starting - Checking temporary column';
+        Begin
+                raise debug 'Checking Checking temporary columns existance';
+
+                While True
+                        Loop
+                                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(garbage) ||')' into naming;
+                                If naming.pgr_iscolumnintable = 't' THEN
+                                        incre := incre + 1;
+                                        garbage := 'garbage00'||incre||'';
+                                ELSE
+                                        EXIT;
+                                END IF;
+                        End Loop;
+        End;
+        Raise Notice 'Ending - Checking temporary column';
+
+        Raise Notice 'Starting - Calculating subgraphs';
+        BEGIN
+                --------- Add necessary columns ----------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(subgraph) || ' INTEGER DEFAULT -1';
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(garbage) || ' INTEGER DEFAULT 0';
+                graph_id := 1;
+
+                EXECUTE 'select count(*) as count from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where ||'' into rec_count;
+                if rec_count.count = 0 then
+                        RETURN 'rows_where condition generated 0 rows';
+                end if;
+
+                WHILE TRUE
+                        LOOP
+                                ---------- Assign the very first -1 row graph_id ----------
+                                EXECUTE 'SELECT ' || pgr_quote_ident(id) || ' AS gid FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1 LIMIT 1' INTO rec_single;
+                                EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec_single.gid || '';
+
+                                --------- Search other rows with that particular graph_id -----------
+                                WHILE TRUE
+                                        LOOP
+                                                EXECUTE 'SELECT COUNT(*) FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0' into rec_count;
+                                                ----------- The following if else will check those rows which already have entertained ------------
+                                                IF (rec_count.count > 0) THEN
+                                                        sql1 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0';
+                                                        FOR rec1 IN EXECUTE sql1
+                                                                LOOP
+                                                                        sql2 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| pgr_quote_ident(source) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(source) ||' = '|| rec1.target ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.target ||'';
+                                                                        FOR rec2 IN EXECUTE sql2
+                                                                                LOOP
+                                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec2.gid || '';
+                                                                                END LOOP;
+                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(garbage) || ' = 1 WHERE ' || pgr_quote_ident(id) || ' = ' || rec1.gid || '';
+                                                                END LOOP;
+                                                ELSE
+                                                        EXIT;
+                                                END IF;
+                                        END LOOP;
+
+                                ------ Following is to exit the while loop. 0 means no more -1 id.
+                                EXECUTE 'SELECT COUNT(*) AS count FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1' INTO rec_count;
+                                If (rec_count.count = 0) THEN
+                                        EXIT;
+                                ELSE
+                                        graph_id := graph_id + 1;
+                                END IF;
+                        END LOOP;
+
+                ----------- Drop garbage column ------------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' DROP COLUMN ' || pgr_quote_ident(garbage) ||'';
+                Raise Notice 'Successfully complicated calculating subgraphs';
+        END;
+        Raise Notice 'Ending - Calculating subgraphs';
+
+        RETURN 'OK';
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
diff --git a/sql/lineGraph/CMakeLists.txt b/sql/lineGraph/CMakeLists.txt
new file mode 100644
index 0000000..80b58e5
--- /dev/null
+++ b/sql/lineGraph/CMakeLists.txt
@@ -0,0 +1,13 @@
+
+SET(LOCAL_FILES
+    lineGraph.sql
+    )
+
+# Do not modify below this line
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} ${f})
+    list(APPEND PACKAGE_SQL_FILES  ${CMAKE_CURRENT_BINARY_DIR}/${f})
+endforeach()
+
+set(PgRouting_SQL_FILES ${PgRouting_SQL_FILES} ${PACKAGE_SQL_FILES} PARENT_SCOPE)
diff --git a/sql/lineGraph/lineGraph.sql b/sql/lineGraph/lineGraph.sql
new file mode 100644
index 0000000..a087b11
--- /dev/null
+++ b/sql/lineGraph/lineGraph.sql
@@ -0,0 +1,41 @@
+/*PGR-GNU*****************************************************************
+File: lineGraph.sql
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2017 Vidhan Jain
+Mail: vidhanj1307 at gmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+CREATE OR REPLACE FUNCTION pgr_lineGraph(
+    TEXT, -- edges_sql
+    directed BOOLEAN DEFAULT true,
+    OUT seq INTEGER,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost FLOAT,
+    OUT reverse_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+'$libdir/${PGROUTING_LIBRARY_NAME}', 'lineGraph'
+LANGUAGE c IMMUTABLE STRICT;
diff --git a/sql/max_flow/CMakeLists.txt b/sql/max_flow/CMakeLists.txt
new file mode 100644
index 0000000..e36dfab
--- /dev/null
+++ b/sql/max_flow/CMakeLists.txt
@@ -0,0 +1,17 @@
+
+SET(LOCAL_FILES
+    _max_flow.sql
+    edmondsKarp.sql
+    boykovKolmogorov.sql
+    pushRelabel.sql
+    maxFlow.sql
+    maxCardinalityMatch.sql
+    edge_disjoint_paths.sql
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} ${f})
+    list(APPEND PACKAGE_SQL_FILES  ${CMAKE_CURRENT_BINARY_DIR}/${f})
+endforeach()
+
+set(PgRouting_SQL_FILES ${PgRouting_SQL_FILES} ${PACKAGE_SQL_FILES} PARENT_SCOPE)
diff --git a/sql/max_flow/_max_flow.sql b/sql/max_flow/_max_flow.sql
new file mode 100644
index 0000000..ec08676
--- /dev/null
+++ b/sql/max_flow/_max_flow.sql
@@ -0,0 +1,50 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Copyright (c) 2016 Andrea Nardelli
+mail: nrd.nardelli at gmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+
+----------------------------
+--    MANY TO MANY
+----------------------------
+
+
+CREATE OR REPLACE FUNCTION _pgr_maxflow(
+    edges_sql TEXT,
+    sources ANYARRAY,
+    targets ANYARRAY,
+    algorithm INTEGER DEFAULT 1,
+    only_flow BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '${MODULE_PATHNAME}', 'max_flow_many_to_many'
+    LANGUAGE c VOLATILE;
+
+
diff --git a/sql/max_flow/boykovKolmogorov.sql b/sql/max_flow/boykovKolmogorov.sql
new file mode 100644
index 0000000..690be5d
--- /dev/null
+++ b/sql/max_flow/boykovKolmogorov.sql
@@ -0,0 +1,108 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Copyright (c) 2016 Andrea Nardelli
+mail: nrd.nardelli at gmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+------------------------------------
+-- 2 boykov_kolmogorov
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
diff --git a/sql/max_flow/edge_disjoint_paths.sql b/sql/max_flow/edge_disjoint_paths.sql
new file mode 100644
index 0000000..4390269
--- /dev/null
+++ b/sql/max_flow/edge_disjoint_paths.sql
@@ -0,0 +1,124 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Copyright (c) 2016 Andrea Nardelli
+mail: nrd.nardelli at gmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+
+
+/***********************************
+        MANY TO MANY
+***********************************/
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+ '${MODULE_PATHNAME}', 'edge_disjoint_paths_many_to_many'
+    LANGUAGE c VOLATILE;
+
+/***********************************
+        ONE TO ONE
+***********************************/
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    bigint,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+/***********************************
+        ONE TO MANY
+***********************************/
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+/***********************************
+        MANY TO ONE
+***********************************/
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    IN directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
diff --git a/sql/max_flow/edmondsKarp.sql b/sql/max_flow/edmondsKarp.sql
new file mode 100644
index 0000000..a6473dc
--- /dev/null
+++ b/sql/max_flow/edmondsKarp.sql
@@ -0,0 +1,108 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Copyright (c) 2016 Andrea Nardelli
+mail: nrd.nardelli at gmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+------------------------------------
+-- 3 pgr_edmondsKarp
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
diff --git a/sql/max_flow/maxCardinalityMatch.sql b/sql/max_flow/maxCardinalityMatch.sql
new file mode 100644
index 0000000..2c79c4c
--- /dev/null
+++ b/sql/max_flow/maxCardinalityMatch.sql
@@ -0,0 +1,39 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Copyright (c) 2016 Andrea Nardelli
+mail: nrd.nardelli at gmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxCardinalityMatch(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '${MODULE_PATHNAME}', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
diff --git a/sql/max_flow/maxFlow.sql b/sql/max_flow/maxFlow.sql
new file mode 100644
index 0000000..c66e2ba
--- /dev/null
+++ b/sql/max_flow/maxFlow.sql
@@ -0,0 +1,87 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+/***********************************
+        MANY TO MANY
+***********************************/
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT flow
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], algorithm := 1, only_flow := true);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+/***********************************
+        ONE TO ONE
+***********************************/
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+/***********************************
+        ONE TO MANY
+***********************************/
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], $3::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+/***********************************
+        MANY TO ONE
+***********************************/
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, $2::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
diff --git a/sql/max_flow/pushRelabel.sql b/sql/max_flow/pushRelabel.sql
new file mode 100644
index 0000000..c1985a4
--- /dev/null
+++ b/sql/max_flow/pushRelabel.sql
@@ -0,0 +1,108 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Copyright (c) 2016 Andrea Nardelli
+mail: nrd.nardelli at gmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+------------------------------------
+-- 1 pgr_pushRelabel
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
diff --git a/sql/pickDeliver/CMakeLists.txt b/sql/pickDeliver/CMakeLists.txt
new file mode 100644
index 0000000..7d8968c
--- /dev/null
+++ b/sql/pickDeliver/CMakeLists.txt
@@ -0,0 +1,12 @@
+
+SET(LOCAL_FILES
+    pickDeliver.sql
+    pickDeliverEuclidean.sql
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} ${f})
+    list(APPEND PACKAGE_SQL_FILES  ${CMAKE_CURRENT_BINARY_DIR}/${f})
+endforeach()
+
+set(PgRouting_SQL_FILES ${PgRouting_SQL_FILES} ${PACKAGE_SQL_FILES} PARENT_SCOPE)
diff --git a/sql/pickDeliver/pickDeliver.sql b/sql/pickDeliver/pickDeliver.sql
new file mode 100644
index 0000000..1d556e2
--- /dev/null
+++ b/sql/pickDeliver/pickDeliver.sql
@@ -0,0 +1,57 @@
+/*PGR-GNU*****************************************************************
+File: pickDeliver.sql
+
+Generated with Template by:
+Copyright (c) 2016 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+Mail:
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliver(
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_cell_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+RETURNS SETOF RECORD AS
+ '${MODULE_PATHNAME}', 'pickDeliver'
+LANGUAGE c VOLATILE;
+
+
diff --git a/sql/pickDeliver/pickDeliverEuclidean.sql b/sql/pickDeliver/pickDeliverEuclidean.sql
new file mode 100644
index 0000000..d9ffb3e
--- /dev/null
+++ b/sql/pickDeliver/pickDeliverEuclidean.sql
@@ -0,0 +1,54 @@
+/*PGR-GNU*****************************************************************
+File: pickDeliver.sql
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail:
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliverEuclidean (
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+  RETURNS SETOF RECORD AS
+ '${MODULE_PATHNAME}', 'pickDeliverEuclidean'
+    LANGUAGE c VOLATILE;
+
diff --git a/sql/scripts/CMakeLists.txt b/sql/scripts/CMakeLists.txt
new file mode 100644
index 0000000..b53b2ce
--- /dev/null
+++ b/sql/scripts/CMakeLists.txt
@@ -0,0 +1,3 @@
+
+configure_file(build-extension-update-files1.pl build-extension-update-files1.pl @ONLY)
+configure_file(build-extension-file.pl build-extension-file.pl @ONLY)
diff --git a/sql/scripts/build-extension-file.pl b/sql/scripts/build-extension-file.pl
new file mode 100755
index 0000000..f368131
--- /dev/null
+++ b/sql/scripts/build-extension-file.pl
@@ -0,0 +1,91 @@
+#!/usr/bin/perl -w
+eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
+    if 0; #$running_under_some_shell
+
+# Extension files almost do not change
+# Almost files in the src/*/sql are part of the extension
+# The files indicated on the CMakelists of the subdirectory:
+# Are going to be included (when not commented out)
+# The generated file is going to be used to compare VS the generated file on cmake
+
+use strict;
+use Data::Dumper;
+use File::Find();
+
+my $DEBUG="@PgRouting_DEBUG@";
+
+use vars qw/*name *dir *prune/;
+*name   = *File::Find::name;
+*dir    = *File::Find::dir;
+*prune  = *File::Find::prune;
+
+
+sub Usage {
+    die "Usage:\nFrom the root of the repository:
+    build-extension-file.pl version \n";
+}
+
+
+my $version = "@PGROUTING_VERSION@";
+my $working_directory = "@CMAKE_CURRENT_BINARY_DIR@/..";
+my $PgRouting_SQL_FILES =  "@PgRouting_SQL_FILES@";
+my @sql_file = split(/;/, $PgRouting_SQL_FILES);
+my $out_file_name = "$working_directory/@PgRouting_CURRENT_SQL_FILE@";
+
+print "Working_directory $working_directory\n"      if $DEBUG;
+print "out_file_name $out_file_name\n"      if $DEBUG;
+ 
+open(OUT, ">", "$out_file_name")
+    || die "@PgRouting_CURRENT_SQL_FILE@ ERROR: failed to create: '$out_file_name' : $!\n";
+
+foreach my $f (@sql_file) {
+    print "--  $f\n" if $DEBUG;
+    my $contents = get_contents($f);
+    $contents = eliminate_license($contents);
+    print OUT "$contents";
+}
+
+close (OUT);
+
+exit 0;
+
+
+
+sub get_contents {
+    my ($file) = @_;
+    local $/=undef;
+    die "ERROR: Failed to find: $file\n" unless -f $file;
+    open(IN, $file) || die "pgrouting--$version.sql ERROR: Failed to open $file\n";
+    my @contents = <IN>;
+    close(IN);
+    my $contents = join('', @contents);
+
+    return $contents;
+}
+
+sub eliminate_license {
+    my ($contents) = @_;
+
+    $contents =~ s{
+        /\*PGR-(GNU|MIT)
+        .*?
+        PGR-(GNU|MIT)\*/
+    }[]gsxi;
+
+    $contents =~ s{
+        /\*FOR
+        .*?
+        USER\*/
+    }[]gsxi;
+
+    $contents =~ s{
+        /\*
+        .*?
+        \*/
+    }[]gsxi;
+
+
+
+    return $contents;
+}
+
diff --git a/sql/scripts/build-extension-update-files1.pl b/sql/scripts/build-extension-update-files1.pl
new file mode 100755
index 0000000..80b628e
--- /dev/null
+++ b/sql/scripts/build-extension-update-files1.pl
@@ -0,0 +1,712 @@
+#!/usr/bin/perl -w
+eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
+    if 0; #$running_under_some_shell
+
+
+use strict;
+use Data::Dumper;
+use File::Find ();
+
+
+use vars qw/*name *dir *prune/;
+*name   = *File::Find::name;
+*dir    = *File::Find::dir;
+*prune  = *File::Find::prune;
+
+my $version_2_0 = qr/(2.0.[\d+])/;
+my $version_2_1 = qr/(2.1.[\d+])/;
+my $version_2_2 = qr/(2.2.[\d+])/;
+my $version_2_3 = qr/(2.3.[\d+])/;
+my $version_2_4 = qr/(2.4.[\d+])/;
+my $version_2_5 = qr/(2.5.[\d+])/;
+my $version_2 = qr/(2.[\d+].[\d+])/;
+
+
+sub Usage {
+    die "Usage:\nFrom the cmake:
+    build-extension-update-files1 <old_version>";
+}
+
+my $old_version = shift @ARGV || die "Missing: old version to convert";
+my $DEBUG = "@PgRouting_DEBUG@";
+my $version = "@PGROUTING_VERSION@";
+my $signature_dir = '@CMAKE_CURRENT_BINARY_DIR@/../sigs';
+my $output_directory = '@CMAKE_CURRENT_BINARY_DIR@/..';
+my $curr_signature_file_name = "$signature_dir/pgrouting--$version.sig";
+my $old_signature_file_name = "$signature_dir/pgrouting--$old_version.sig";
+my $curr_sql_file_name = "$output_directory/pgrouting--$version.sql";
+
+
+
+######################################################
+#VERIFICATION SECTION
+######################################################
+
+# Verify Currently accepted old and new versions
+die "ERROR: 'build-extension-update-files1.pl' expected old version: 2.0.x ~~ 2.5.x\nHINT: Please check:\n  file: sql/CMakeLists.txt\n  Section: 'TARGET: update_files'"
+    unless $old_version =~ /$version_2_0|$version_2_1|$version_2_2|$version_2_3|$version_2_4|$version_2_5/;
+
+die "ERROR: 'build-extension-update-files1.pl' expected version: 2.5.x\nHINT: ERROR on PGROUTING_VERSION variable\nor File sql/scripts/build-extension-update-files1.pl needs to be reviewed"
+    unless $version =~ /$version_2_5/;
+
+die "ERROR: 'build-extension-update-files1.pl' can not upgrade from $old_version to $version\nHINT: Please check:\n  file: sql/CMakeLists.txt\n  Section: 'TARGET: update_files'" unless $version !~ $old_version;
+
+
+# Verify directories exist
+die "ERROR: Failed to find: input directory: '$signature_dir'\nHINT: 'sql/sigs' must exist in the repository" unless -d $signature_dir;
+die "ERROR: Failed to find: output directory: '$output_directory'\nHINT: unexpected error, this should not happen" unless -d $output_directory;
+
+
+# Verify current $version files exist.
+die "ERROR: Failed to find: old signature file: '$old_signature_file_name'\n" unless -f $old_signature_file_name;
+die "ERROR: Failed to find: current signature file: '$curr_signature_file_name'\n" unless -f $curr_signature_file_name;
+die "ERROR: Failed to find: current sql file: '$curr_sql_file_name'\n" unless -f $curr_sql_file_name;
+
+######################################################
+# process section 
+######################################################
+#
+print "Building the updating files\n" if $DEBUG;
+
+my $curr_signature = read_and_parse_signature_file($curr_signature_file_name);
+my $old_signatures = read_and_parse_signature_file($old_signature_file_name);
+
+print "\ngenerating $old_version upgrade file\n" if $DEBUG;
+generate_upgrade_script($curr_signature, $old_signatures);
+
+exit 0;
+
+
+######################################################
+# subroutines
+######################################################
+
+# read_and_parse_signature_file
+# generate_upgrade_script
+#
+# Special case functions
+# underscored($old_version, $new_version);
+# deprecated_on_2_1($old_version, $new_version);
+# deprecated_on_2_2($old_version, $new_version);
+# pgr_version($old_version, $new_version);
+# pgr_trsp($old_version, $new_version);
+# pgr_bddijkstra($old_version, $new_version);
+# pgr_gsoc_vrppdtw($old_version, $new_version);
+# pgr_astar($old_version, $new_version);
+# pgr_ksp($old_version, $new_version);
+# pgr_drivingdistance($old_version, $new_version);
+# pgr_edgedisjointpaths($old_version, $new_version);
+
+
+# read and parse the .sig file and store the results in a hash
+sub read_and_parse_signature_file {
+    my $file = shift;
+
+    my %hash = ();
+
+    open(IN, $file) || die "ERROR: Failed to open '$file'\n";
+
+    # state:
+    # 0 - starting process
+    # 1 - processing types
+    # 2 - processing functions
+    # Other kinds of postgres objctes are not used in 2.x version of pgRouting
+    my $state = 0;
+    while (my $line = <IN>) {
+        if ($line =~ /^#VERSION pgrouting (\d+\.\d+\.\d+)\s*$/i) {
+            my $content_version = $1;
+
+            $hash{VERSION} = $content_version;
+
+            #check that the version is the same as the file
+            die "ERROR file $file has the version $1\n" unless $file =~ m/$content_version/
+        }
+        elsif ($line =~ /^#TYPES\s*/i) {
+            $state = 1;
+            next;
+        }
+        elsif ($line =~ /^#FUNCTIONS\s*/i) {
+            $state = 2;
+            next;
+        }
+        elsif ($line =~ /^#/) {
+            next;
+        }
+
+        # Remove spaces from the line
+        $line =~ s/\s*$//;
+
+        if ($state == 1) {
+            push @{$hash{types}}, $line;
+        }
+        elsif ($state == 2) {
+            push @{$hash{funcs}}, $line;
+        }
+    }
+    close(IN);
+
+    return \%hash;
+}
+
+
+
+# analyze the old signatures compared to the new signatures hash
+# and create an update script file for its version.
+sub generate_upgrade_script {
+    my ($new, $old) = @_;
+
+    my $err = 0;
+    my @types2remove = ();
+    my @commands = ();
+
+    # fetch the VERSION numbers
+    my $new_version = $new->{VERSION};
+    my $old_version = $old->{VERSION};
+
+    #------------------------------------
+    # analyze function signatures
+    #------------------------------------
+
+    my $new_signatures = $new->{funcs};
+    my $old_signatures = $old->{funcs};
+
+    # create an unique hash map of the new signatures
+    # to quickly determine if an old signature exists or not
+    # in the new signatures.
+    my %function_map = map { $_ => 1 } @{$new_signatures};
+
+
+    for my $old_function (sort @{$old_signatures}) {
+
+        # check if the old signature is in the new signature map
+        my $exists = $function_map{$old_function} || '0';
+        print "$old_version  **WARN: DROP $old_function (does not exists on $new_version)\n"
+              if $DEBUG and not $exists and $old_function !~ /^_/;
+        print "$old_version    INFO: DROP $old_function (does not exists on $new_version)\n"
+              if $DEBUG and not $exists and $old_function =~ /^_/;
+
+        # Nothing to do, the signature is valid on the current version
+        # Might not be the case because signature changes include
+        #  - parameter names
+        #  - different types of out parameters
+        #  but the signature files do not catch that information (yet)
+        next if $function_map{$old_function};
+
+        # The function does NOT exist in the current version
+        # -- Remove from the extension
+        push @commands, "\n\nALTER EXTENSION pgrouting DROP FUNCTION $old_function;\n";
+        push @commands, "DROP FUNCTION IF EXISTS $old_function;\n";
+    }
+
+    #------------------------------------
+    # Special cases
+    #------------------------------------
+
+    push @commands, underscored($old_version, $new_version);
+    push @commands, deprecated_on_2_1($old_version, $new_version);
+    push @commands, deprecated_on_2_2($old_version, $new_version);
+    push @commands, pgr_version($old_version, $new_version);
+    push @commands, pgr_trsp($old_version, $new_version);
+    push @commands, pgr_bddijkstra($old_version, $new_version);
+    push @commands, pgr_gsoc_vrppdtw($old_version, $new_version);
+    push @commands, pgr_astar($old_version, $new_version);
+    push @commands, pgr_ksp($old_version, $new_version);
+    push @commands, pgr_drivingdistance($old_version, $new_version);
+    push @commands, pgr_edgedisjointpaths($old_version, $new_version);
+
+
+    # analyze types
+
+    my $ntype = $new->{types};
+    my $otype = $old->{types};
+
+    # create a hash like <name> => <column_list> for new types
+    my %ntype_h = ();
+    for my $x (@{$ntype}) {
+        #$x =~ m/(\w+)(\([^\)]+\))$/;
+        $ntype_h{lc($x)} = lc($x);
+    }
+
+    # check if old type exists with different column types
+    for my $x (@{$otype}) {
+        my $name = lc($x);
+        if (!exists $ntype_h{$name}) {
+            #types no longer used are dropped form the extension
+            push @commands, "ALTER EXTENSION pgrouting DROP TYPE $name;\n";
+            push @commands, "DROP TYPE $name;\n";
+        } else {
+            push @types2remove, $name;
+        }
+    }
+
+    # UGH! someone change the definition of the TYPE or reused an existing
+    # TYPE name which is VERY BAD because other poeple might be dependent
+    # on the old TYPE so we can DROP TYPE <type> CASCADE; or we might drop
+    # a user's function. So juse DIE and maybe someone can resolve this
+    die "ERROR: pgrouting TYPE changed! Cannot continue!\n" if $err;
+
+    write_script($old_version, $new_version, \@types2remove, join('', @commands));
+}
+
+
+sub deprecated_on_2_1 {
+    my ($old_version, $new_version) = @_;
+    my @commands = ();
+
+    # This deprecated functions from so long ago should not being used by now
+    # Dropping
+
+    # file tested for 2.4 & 2.5
+    if ($old_version =~ /$version_2_0/
+            and $new_version !~ /$version_2_0/
+            and $new_version =~ /$version_2/) {
+        push @commands,  "\n\n ------------------------------------------\n";
+        push @commands,  "--    New functions:  2.0\n";
+        push @commands,  "-- Signature change:  2.1\n";
+        push @commands,  "--       Deprecated:  2.1\n";
+        push @commands,  "------------------------------------------\n";
+
+        push @commands, "-- pgr_dijkstra:\n";
+        push @commands, "-- $old_version: {      sql, source_id, target_id, directed, has_reverse_cost}\n";
+        push @commands, "-- $new_version: {edges_sql, start_vid,   end_vid, directed, has_rcost}\n";
+        push @commands, drop_special_case_function("pgr_dijkstra(text,integer,integer,boolean,boolean)",  $old_version, $new_version);
+    }
+
+
+    if ($old_version =~ /$version_2_0|$version_2_1/
+            and $new_version !~ /$version_2_0|$version_2_1/
+            and $new_version =~ /$version_2/) {
+        push @commands,  "\n\n------------------------------------------\n";
+        push @commands,  "--    New functions:  2.0\n";
+        push @commands,  "--       Deprecated:  2.1\n";
+        push @commands,  "--       Deprecated:  2.1 & 2.2\n";
+        push @commands,  "------------------------------------------\n";
+
+        push @commands, "-- pgr_ksp\n";
+        push @commands, "-- $old_version: {      sql, source_id, target_id, no_paths,has_reverse_cost}\n" if $old_version  =~ /$version_2_0/;
+        push @commands, "-- $old_version: {      sql, start_vid,   end_vid, k,       has_rcost}\n"        if $old_version  =~ /$version_2_1/;
+        push @commands, "-- $new_version: {edges_sql, start_vid,   end_vid, k,       has_rcost}\n";
+        push @commands, drop_special_case_function("pgr_ksp(text,integer,integer,integer,boolean)",  $old_version, $new_version);
+    }
+
+    return @commands;
+}
+
+
+
+sub deprecated_on_2_2 {
+    my ($old_version, $new_version) = @_;
+    my @commands = ();
+
+    # This deprecated functions from so long ago should not being used by now
+    # Dropping
+
+    if ($old_version =~ /$version_2_0|$version_2_1/
+            and $new_version !~ /$version_2_0|$version_2_1/
+            and $new_version =~ /$version_2/) {
+        push @commands,  "\n\n------------------------------------------\n";
+        push @commands,  "--    New functions:  2.0\n";
+        push @commands,  "-- Signature change:  2.2\n";
+        push @commands,  "--       Deprecated:  2.2\n";
+        push @commands,  "------------------------------------------\n";
+
+        push @commands, "-- pgr_apspjohnson\n";
+        push @commands, "-- $old_version: {      sql}\n";
+        push @commands, "-- $new_version: {edges_sql}\n";
+        push @commands, drop_special_case_function("pgr_apspjohnson(text)", $old_version, $new_version);
+
+        push @commands, "-- pgr_apspwarshall\n";
+        push @commands, "-- $old_version: {      sql, directed, has_reverse_cost}\n";
+        push @commands, "-- $new_version: {edges_sql, directed, has_rcost}\n";
+        push @commands, drop_special_case_function("pgr_apspwarshall(text,boolean,boolean)",  $old_version, $new_version);
+
+        push @commands, "-- pgr_kdijkstrapath\n";
+        push @commands, "-- $old_version: {sql,source_vid, target_vid, directed, has_reverse_cost}\n";
+        push @commands, "-- $new_version: {sql,    source,    targets, directed, has_rcost} \n";
+        push @commands, drop_special_case_function("pgr_kdijkstrapath(text,integer,integer[],boolean,boolean)",  $old_version, $new_version);
+
+        push @commands, "-- pgr_kdijkstracost\n";
+        push @commands, "-- $old_version: {sql,source_vid, target_vid, directed, has_reverse_cost}\n";
+        push @commands, "-- $new_version: {sql,    source,    targets, directed, has_rcost} \n";
+        push @commands, drop_special_case_function("pgr_kdijkstracost(text,integer,integer[],boolean,boolean)",  $old_version, $new_version);
+    }
+
+
+    return @commands;
+}
+
+
+
+sub pgr_version {
+    my ($old_version, $new_version) = @_;
+    my @commands = ();
+
+    # Out parameter changes:
+    # Dropping
+
+    if ($old_version =~ /$version_2_0|$version_2_1/
+            and $new_version !~ /$version_2_0|$version_2_1/) {
+        push @commands,  "\n\n------------------------------------------\n";
+        push @commands,  "--    New functions:  2.0\n";
+        push @commands,  "-- Signature change:  2.2\n";
+        push @commands,  "------------------------------------------\n";
+
+        push @commands, "-- pgr_version\n";
+        push @commands, "-- $old_version:  {version,tag,build,hash,branch,boost}\n";
+        push @commands, "-- $new_version:  {version,tag,hash,branch,boost}\n";
+        push @commands, drop_special_case_function("pgr_version()",  $old_version, $new_version);
+    }
+
+    return @commands;
+}
+
+
+sub pgr_trsp {
+    my ($old_version, $new_version) = @_;
+    my @commands = ();
+
+    # changes were so long ago and trsp is going to be deprecated eventually
+
+    if ($old_version =~ /$version_2_0|$version_2_1/
+            and $new_version !~ /$version_2_0|$version_2_1/
+            and $new_version =~ /$version_2/) {
+        push @commands,  "\n\n------------------------------------------\n";
+        push @commands,  "--    New functions:  2.0\n";
+        push @commands,  "-- Signature change:  2.2\n";
+        push @commands,  "------------------------------------------\n";
+
+        push @commands, "-- pgr_trsp\n";
+        push @commands, "-- $old_version:  {      sql, source_vid, target_vid, directed, has_reverse_cost, turn_restrict_sql}\n";
+        push @commands, "-- $new_version:  {edges_sql,  start_vid,    end_vid, directed, has_rcost,        restrictions_sql}\n";
+        my $update_command = "
+UPDATE pg_proc SET
+proargnames = '{\"edges_sql\",\"start_vid\",\"end_vid\",\"directed\",\"has_rcost\",\"restrictions_sql\"}'
+WHERE proname = 'pgr_trsp'
+    AND proargnames = '{\"sql\",\"source_vid\",\"target_vid\",\"directed\",\"has_reverse_cost\",\"turn_restrict_sql\"}';
+";
+
+        push @commands, $update_command;
+        #push @commands, drop_special_case_function("pgr_trsp(text,integer,integer,boolean,boolean,text)",  $old_version, $new_version);
+    }
+
+    if ($old_version =~ /$version_2_1/
+            and $new_version !~ /$version_2_1/
+            and $new_version =~ /$version_2/) {
+        push @commands,  "\n\n------------------------------------------\n";
+        push @commands,  "--    New functions:  2.0\n";
+        push @commands,  "-- Signature (types) change:  2.2\n";
+        push @commands,  "------------------------------------------\n";
+
+        push @commands, "-- pgr_trspviaedges\n";
+        push @commands, "-- $old_version:  {sql, eids, pcts, directed, has_reverse_cost,turn_restrict_sql} \n";
+        push @commands, "-- $new_version:  {sql, eids, pcts, directed, has_rcost,       turn_restrict_sql}\n"; 
+        push @commands, drop_special_case_function("pgr_trspviaedges(text,integer[],double precision[],boolean,boolean,text)", $old_version, $new_version);
+    }
+
+    return @commands;
+}
+
+
+sub pgr_bddijkstra {
+    my ($old_version, $new_version) = @_;
+    my @commands = ();
+
+    # too recent, updating
+
+    if ($old_version =~ /$version_2_0|$version_2_1|$version_2_2|$version_2_3/
+            and $new_version !~ /$version_2_0|$version_2_1|$version_2_2|$version_2_3/
+            and $new_version =~ /$version_2/) {
+        push @commands,  "\n\n------------------------------------------\n";
+        push @commands,  "--    New functions:  2.0\n";
+        push @commands,  "-- Signature change:  2.4\n";
+        push @commands,  "--       Deprecated:  2.4\n";
+        push @commands,  "------------------------------------------\n";
+
+        push @commands, "-- pgr_bddijkstra\n";
+        push @commands, "-- $old_version: {      sql, source_vid, target_vid, directed, has_reverse_cost}   \n";
+        push @commands, "-- $new_version: {edges_sql,  start_vid,    end_vid, directed, has_rcost}\n"; 
+        my $update_command = "
+UPDATE pg_proc SET
+proargnames = '{\"edges_sql\",\"start_vid\",\"end_vid\",\"directed\",\"has_rcost\"}'
+WHERE proname = 'pgr_bddijkstra'
+    AND proargnames = '{\"sql\",\"source_vid\",\"target_vid\",\"directed\",\"has_reverse_cost\"}';
+";
+
+        push @commands, $update_command;
+        #push @commands, drop_special_case_function("pgr_bddijkstra(text,integer,integer,boolean,boolean)",  $old_version, $new_version);
+    }
+
+    return @commands;
+}
+
+
+
+sub pgr_ksp {
+    my ($old_version, $new_version) = @_;
+    my @commands = ();
+
+    if ($old_version =~ /$version_2_1/ and $new_version !~ /$version_2_1/) {
+        push @commands,  "\n\n------------------------------------------\n";
+        push @commands,  "--    New functions:  2.1\n";
+        push @commands,  "-- Signature change:  2.2\n";
+        push @commands,  "------------------------------------------\n";
+
+        push @commands, "-- pgr_ksp\n";
+        push @commands, "-- $old_version:  {      sql, start_vid, end_vid, k, directed, heap_paths, seq, path_id, path_seq, node,edge, cost, agg_cost}\n";
+        push @commands, "-- $new_version:  {edges_sql, start_vid, end_vid, k, directed, heap_paths, seq, path_id, path_seq, node,edge, cost, agg_cost}\n"; 
+        push @commands, drop_special_case_function("pgr_ksp(text,bigint,bigint,integer,boolean,boolean)",  $old_version, $new_version);
+    }
+
+    return @commands;
+}
+
+
+sub underscored {
+    my ($old_version, $new_version) = @_;
+    my @commands = ();
+
+    # underscored are dropped
+    # Users should not be using this functions
+
+    if ($old_version =~ /$version_2_1/ and $new_version !~ /$version_2_1/) {
+        push @commands,  "\n\n------------------------------------------\n";
+        push @commands,  "--    New functions:  2.1\n";
+        push @commands,  "-- Signature change:  2.2\n";
+        push @commands,  "------------------------------------------\n";
+
+        push @commands, drop_special_case_function("_pgr_ksp(text,bigint,bigint,integer,boolean,boolean)", $old_version, $new_version);
+    }
+
+    if ($old_version =~ /$version_2_1/ and $new_version =~ /$version_2_4/) {
+        push @commands,  "\n\n------------------------------------------\n";
+        push @commands,  "--    New functions:  2.1\n";
+        push @commands,  "-- Signature change:  2.4\n";
+        push @commands,  "------------------------------------------\n";
+        push @commands, drop_special_case_function("_pgr_dijkstra(text,bigint,bigint,boolean,boolean)",    $old_version, $new_version);
+        push @commands, drop_special_case_function("_pgr_dijkstra(text,bigint,anyarray,boolean,boolean)",  $old_version, $new_version);
+        push @commands, drop_special_case_function("_pgr_dijkstra(text,anyarray,bigint,boolean,boolean)",  $old_version, $new_version);
+        push @commands, drop_special_case_function("_pgr_dijkstra(text,anyarray,anyarray,boolean,boolean)",$old_version, $new_version);
+    }
+
+
+    return @commands;
+}
+
+
+sub pgr_gsoc_vrppdtw {
+    my ($old_version, $new_version) = @_;
+    my @commands = ();
+
+    # too long ago
+    # dropping
+
+    if ($old_version =~ /$version_2_1|$version_2_2/) {
+        push @commands,  "\n\n------------------------------------------\n";
+        push @commands,  "--   New function: 2.1\n";
+        push @commands,  "-- (types) change: 2.3\n";
+        push @commands,  "------------------------------------------\n";
+
+        push @commands, drop_special_case_function("pgr_gsoc_vrppdtw(text,integer,integer)", $old_version, $new_version);
+    }
+
+
+    return @commands;
+}
+
+sub pgr_astar {
+    my ($old_version, $new_version) = @_;
+    my @commands = ();
+
+    if ($old_version =~ /$version_2_0|$version_2_1|$version_2_2/) {
+        push @commands,  "\n\n------------------------------------------\n";
+        push @commands,  "-- New functions on 2.0\n";
+        push @commands,  "-- Signature change on 2.3\n";
+        push @commands,  "-- Deprecated on 2.4\n";
+        push @commands,  "------------------------------------------\n";
+
+        push @commands, drop_special_case_function("pgr_astar(text,integer,integer,boolean,boolean)",  $old_version, $new_version);
+    }
+
+    return @commands;
+}
+
+
+
+sub pgr_drivingdistance {
+    my ($old_version, $new_version) = @_;
+    my @commands = ();
+
+
+    if ($old_version =~ /$version_2_1/) {
+        push @commands,  "\n\n------------------------------------------\n";
+        push @commands,  "--       New functions:  2.0\n";
+        push @commands,  "--    Signature change:  2.1\n";
+        push @commands,  "------------------------------------------\n";
+        push @commands, "-- $old_version: {sql,source,distance,directed,has_rcost}\n";
+        push @commands, "-- $new_version: {edges_sql,source,distance,directed,has_rcost}\n";
+
+        my $update_command = "
+UPDATE pg_proc SET
+proargnames = '{\"edges_sql\",\"source\",\"distance\",\"directed\",\"has_rcost\"}'
+WHERE proname = 'pgr_drivingdistance'
+    AND proargnames = '{\"sql\",\"source\",\"distance\",\"directed\",\"has_rcost\"}';
+";
+
+        push @commands, $update_command;
+
+        #push @commands, drop_special_case_function("pgr_drivingdistance(text,bigint,double precision,boolean,boolean)",  $old_version, $new_version);
+    }
+
+
+    if ($old_version =~ /$version_2_1|$version_2_2|$version_2_3/) {
+        push @commands,  "\n\n------------------------------------------\n";
+        push @commands,  "--       New functions:  2.1\n";
+        push @commands,  "--    Signature change:  2.4\n";
+        push @commands,  "------------------------------------------\n";
+        push @commands, "-- $old_version: {      sql,start_v,  distance,directed,seq,node,edge,cost,agg_cost}\n" if $old_version =~ /$version_2_1/;
+        push @commands, "-- $old_version: {edges_sql,start_v,  distance,directed,seq,node,edge,cost,agg_cost}\n" if $old_version =~ /$version_2_2|$version_2_3/;
+        push @commands, "-- $new_version: {edges_sql,start_vid,distance,directed,seq,node,edge,cost,agg_cost}\n";
+
+        my $update_command = "
+UPDATE pg_proc SET
+proargnames = '{\"edges_sql\",\"start_vid\",\"distance\",\"directed\",\"seq\",\"node\",\"edge\",\"cost\",\"agg_cost\"}'
+WHERE proname = 'pgr_drivingdistance'";
+        push @commands, $update_command;
+
+        $update_command = "
+    AND proargnames = '{\"sql\",\"start_v\",\"distance\",\"directed\",\"seq\",\"node\",\"edge\",\"cost\",\"agg_cost\"}';
+" if $old_version =~ /$version_2_1/;
+
+        $update_command = "
+    AND proargnames = '{\"edges_sql\",\"start_v\",\"distance\",\"directed\",\"seq\",\"node\",\"edge\",\"cost\",\"agg_cost\"}';
+" if $old_version =~ /$version_2_2|$version_2_3/;
+
+        push @commands, $update_command;
+
+        #push @commands, drop_special_case_function("pgr_drivingdistance(text,bigint,double precision,boolean)",  $old_version, $new_version);
+    }
+
+
+    if ($old_version =~ /$version_2_1|$version_2_2|$version_2_3/) {
+        push @commands,  "\n\n------------------------------------------\n";
+        push @commands,  "--       New functions:  2.1\n";
+        push @commands,  "--    Signature change:  2.4\n";
+        push @commands,  "------------------------------------------\n";
+        push @commands, "-- $old_version: {sql,      start_v,   distance,directed,equicost,seq,from_v,node,edge,cost,agg_cost}\n";
+        push @commands, "-- $new_version: {edges_sql,start_vids,distance,directed,equicost,seq,from_v,node,edge,cost,agg_cost}\n";
+
+        my $update_command = "
+UPDATE pg_proc SET
+proargnames = '{\"edges_sql\",\"start_vids\",\"distance\",\"directed\",\"equicost\",\"seq\",\"from_v\",\"node\",\"edge\",\"cost\",\"agg_cost\"}'
+WHERE proname = 'pgr_drivingdistance'
+    AND proargnames = '{\"sql\",\"start_v\",\"distance\",\"directed\",\"equicost\",\"seq\",\"from_v\",\"node\",\"edge\",\"cost\",\"agg_cost\"}';
+";
+
+        push @commands, $update_command;
+
+        #push @commands, drop_special_case_function("pgr_drivingdistance(text,anyarray,double precision,boolean,boolean)",  $old_version, $new_version);
+    }
+    return @commands;
+}
+
+
+
+
+sub pgr_edgedisjointpaths {
+    my ($old_version, $new_version) = @_;
+    my @commands = ();
+
+    if ($old_version =~ /$version_2_3|$version_2_4/
+            and $new_version !~ /$version_2_3|$version_2_4/) {
+
+        push @commands,  "\n\n------------------------------------------\n";
+        push @commands,  "--       New functions:  2.3\n";
+        push @commands,  "--    Signature change:  2.5\n";
+        push @commands,  "-- Inner query changed:  2.5\n";
+        push @commands,  "------------------------------------------\n";
+
+        push @commands, drop_special_case_function("pgr_edgedisjointpaths(text,bigint,bigint,boolean)",     $old_version, $new_version);
+        push @commands, drop_special_case_function("pgr_edgedisjointpaths(text,bigint,anyarray,boolean)",   $old_version, $new_version);
+        push @commands, drop_special_case_function("pgr_edgedisjointpaths(text,anyarray,bigint,boolean)",   $old_version, $new_version);
+        push @commands, drop_special_case_function("pgr_edgedisjointpaths(text,anyarray,anyarray,boolean)", $old_version, $new_version);
+    }
+
+    return @commands;
+}
+
+
+
+sub drop_special_case_function {
+    my ($function, $old_version, $new_version) = @_;
+    my @commands = ();
+
+    print "$old_version  **WARN: DROP $function (something changed for $new_version)\n"
+              if $DEBUG;
+    push @commands, "\nALTER EXTENSION pgrouting DROP FUNCTION $function;\n";
+    push @commands, "DROP FUNCTION IF EXISTS $function;\n\n\n";
+    return @commands;
+}
+
+
+sub write_script {
+    my ($old_version, $new_version, $types, $commands) = @_;
+
+    my $contents = get_current_sql($types);
+
+    open(OUT, ">$output_directory/pgrouting--$old_version--$new_version.sql")
+    || die "ERROR: failed to create '$output_directory/pgrouting-pgrouting--$old_version--$new_version.sql' : $!\n";
+
+
+    # write out the header and the commands to clean up the old extension
+    print OUT <<EOF;
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-- pgRouting extension upgrade from $old_version to $new_version
+-- generated by tools/build-extension-update-files
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+\\echo Use "ALTER extension pgrouting update to '$new_version'" to load this file. \\quit
+
+
+-------------------------------------
+-- remove functions no longer in the $new_version extension
+-------------------------------------
+
+
+$commands
+
+$contents
+
+EOF
+
+    close(OUT);
+    print "  -- Created lib/pgrouting--$old_version--$new_version.sql.in\n" if $DEBUG;
+}
+
+
+sub get_current_sql {
+    my ($types) = @_;
+
+    open(IN, $curr_sql_file_name) ||
+    die "ERROR: Failed to find '$curr_sql_file_name' : $!\n";
+    my @file = <IN>;
+    close(IN);
+    my $contents = join('', @file);
+
+    #remove existing types
+    for my $type (@{$types}) {
+        $contents =~ s{
+            create\s+type\s+$type
+            .*?
+            \);
+        }[]gsxi;
+    }
+
+
+    $contents =~ s/\\echo Use "CREATE EXTENSION pgrouting" to load this file. \\quit//;
+        
+    return $contents
+}
+
+
diff --git a/sql/sigs/CMakeLists.txt b/sql/sigs/CMakeLists.txt
new file mode 100644
index 0000000..6018cf7
--- /dev/null
+++ b/sql/sigs/CMakeLists.txt
@@ -0,0 +1,24 @@
+SET(OLD_SIGNATURES
+    2.0.0
+    2.0.1
+    2.1.0
+    2.2.0
+    2.2.1
+    2.2.2
+    2.2.3
+    2.2.4
+    2.3.0
+    2.3.1
+    2.3.2
+    2.4.0
+    2.4.1
+    2.4.2
+    )
+
+foreach (f ${OLD_SIGNATURES})
+    configure_file(pgrouting--${f}.sig pgrouting--${f}.sig COPYONLY)
+    list(APPEND SIGNATURE_FILES pgrouting--${f}.sig)
+endforeach()
+configure_file(pgrouting--${PGROUTING_VERSION}.sig pgrouting--${PGROUTING_VERSION}.sig COPYONLY)
+
+set(OLD_SIGNATURES ${OLD_SIGNATURES} PARENT_SCOPE)
diff --git a/tools/sigs/pgrouting--2.0.0.sig b/sql/sigs/pgrouting--2.0.0.sig
similarity index 100%
rename from tools/sigs/pgrouting--2.0.0.sig
rename to sql/sigs/pgrouting--2.0.0.sig
diff --git a/tools/sigs/pgrouting--2.0.1.sig b/sql/sigs/pgrouting--2.0.1.sig
similarity index 100%
rename from tools/sigs/pgrouting--2.0.1.sig
rename to sql/sigs/pgrouting--2.0.1.sig
diff --git a/tools/sigs/pgrouting--2.1.0.sig b/sql/sigs/pgrouting--2.1.0.sig
similarity index 100%
rename from tools/sigs/pgrouting--2.1.0.sig
rename to sql/sigs/pgrouting--2.1.0.sig
diff --git a/tools/sigs/pgrouting--2.2.0.sig b/sql/sigs/pgrouting--2.2.0.sig
similarity index 100%
rename from tools/sigs/pgrouting--2.2.0.sig
rename to sql/sigs/pgrouting--2.2.0.sig
diff --git a/tools/sigs/pgrouting--2.2.1.sig b/sql/sigs/pgrouting--2.2.1.sig
similarity index 100%
rename from tools/sigs/pgrouting--2.2.1.sig
rename to sql/sigs/pgrouting--2.2.1.sig
diff --git a/tools/sigs/pgrouting--2.2.2.sig b/sql/sigs/pgrouting--2.2.2.sig
similarity index 100%
rename from tools/sigs/pgrouting--2.2.2.sig
rename to sql/sigs/pgrouting--2.2.2.sig
diff --git a/tools/sigs/pgrouting--2.2.3.sig b/sql/sigs/pgrouting--2.2.3.sig
similarity index 100%
rename from tools/sigs/pgrouting--2.2.3.sig
rename to sql/sigs/pgrouting--2.2.3.sig
diff --git a/tools/sigs/pgrouting--2.2.4.sig b/sql/sigs/pgrouting--2.2.4.sig
similarity index 100%
rename from tools/sigs/pgrouting--2.2.4.sig
rename to sql/sigs/pgrouting--2.2.4.sig
diff --git a/tools/sigs/pgrouting--2.3.0.sig b/sql/sigs/pgrouting--2.3.0.sig
similarity index 100%
rename from tools/sigs/pgrouting--2.3.0.sig
rename to sql/sigs/pgrouting--2.3.0.sig
diff --git a/tools/sigs/pgrouting--2.3.1.sig b/sql/sigs/pgrouting--2.3.1.sig
similarity index 100%
rename from tools/sigs/pgrouting--2.3.1.sig
rename to sql/sigs/pgrouting--2.3.1.sig
diff --git a/tools/sigs/pgrouting--2.3.2.sig b/sql/sigs/pgrouting--2.3.2.sig
similarity index 100%
rename from tools/sigs/pgrouting--2.3.2.sig
rename to sql/sigs/pgrouting--2.3.2.sig
diff --git a/tools/sigs/pgrouting--2.4.0.sig b/sql/sigs/pgrouting--2.4.0.sig
similarity index 100%
rename from tools/sigs/pgrouting--2.4.0.sig
rename to sql/sigs/pgrouting--2.4.0.sig
diff --git a/tools/sigs/pgrouting--2.4.1.sig b/sql/sigs/pgrouting--2.4.1.sig
similarity index 100%
rename from tools/sigs/pgrouting--2.4.1.sig
rename to sql/sigs/pgrouting--2.4.1.sig
diff --git a/tools/curr-sig/pgrouting--2.4.2.sig b/sql/sigs/pgrouting--2.4.2.sig
similarity index 100%
rename from tools/curr-sig/pgrouting--2.4.2.sig
rename to sql/sigs/pgrouting--2.4.2.sig
diff --git a/sql/sigs/pgrouting--2.5.0.sig b/sql/sigs/pgrouting--2.5.0.sig
new file mode 100644
index 0000000..54f05b9
--- /dev/null
+++ b/sql/sigs/pgrouting--2.5.0.sig
@@ -0,0 +1,185 @@
+#VERSION pgrouting 2.5.0
+#TYPES
+pgr_costresult
+pgr_costresult3
+pgr_geomresult
+#FUNCTIONS
+pgr_alphashape(text,double precision)
+pgr_analyzegraph(text,double precision,text,text,text,text,text)
+pgr_analyzeoneway(text,text[],text[],text[],text[],boolean,text,text,text)
+pgr_apspjohnson(text)
+pgr_apspwarshall(text,boolean,boolean)
+pgr_articulationpoints(text)
+pgr_astarcostmatrix(text,anyarray,boolean,integer,double precision,double precision)
+pgr_astarcost(text,anyarray,anyarray,boolean,integer,double precision,double precision)
+pgr_astarcost(text,anyarray,bigint,boolean,integer,double precision,double precision)
+pgr_astarcost(text,bigint,anyarray,boolean,integer,double precision,double precision)
+pgr_astarcost(text,bigint,bigint,boolean,integer,double precision,double precision)
+pgr_astar(text,anyarray,anyarray,boolean,integer,double precision,double precision)
+_pgr_astar(text,anyarray,anyarray,boolean,integer,double precision,double precision,boolean,boolean)
+pgr_astar(text,anyarray,bigint,boolean,integer,double precision,double precision)
+pgr_astar(text,bigint,anyarray,boolean,integer,double precision,double precision)
+pgr_astar(text,bigint,bigint,boolean,integer,double precision,double precision)
+pgr_astar(text,integer,integer,boolean,boolean)
+pgr_bdastarcostmatrix(text,anyarray,boolean,integer,numeric,numeric)
+pgr_bdastarcost(text,anyarray,anyarray,boolean,integer,numeric,numeric)
+pgr_bdastarcost(text,anyarray,bigint,boolean,integer,numeric,numeric)
+pgr_bdastarcost(text,bigint,anyarray,boolean,integer,numeric,numeric)
+pgr_bdastarcost(text,bigint,bigint,boolean,integer,numeric,numeric)
+_pgr_bdastar(text,anyarray,anyarray,boolean,integer,double precision,double precision,boolean)
+pgr_bdastar(text,anyarray,anyarray,boolean,integer,numeric,numeric)
+pgr_bdastar(text,anyarray,bigint,boolean,integer,numeric,numeric)
+pgr_bdastar(text,bigint,anyarray,boolean,integer,numeric,numeric)
+pgr_bdastar(text,bigint,bigint)
+pgr_bdastar(text,bigint,bigint,boolean,integer,numeric,numeric)
+pgr_bdastar(text,integer,integer,boolean,boolean)
+pgr_bddijkstracostmatrix(text,anyarray,boolean)
+pgr_bddijkstracost(text,anyarray,anyarray,boolean)
+pgr_bddijkstracost(text,anyarray,bigint,boolean)
+pgr_bddijkstracost(text,bigint,anyarray,boolean)
+pgr_bddijkstracost(text,bigint,bigint,boolean)
+pgr_bddijkstra(text,anyarray,anyarray,boolean)
+_pgr_bddijkstra(text,anyarray,anyarray,boolean,boolean)
+pgr_bddijkstra(text,anyarray,bigint,boolean)
+pgr_bddijkstra(text,bigint,anyarray,boolean)
+pgr_bddijkstra(text,bigint,bigint)
+pgr_bddijkstra(text,bigint,bigint,boolean)
+pgr_bddijkstra(text,integer,integer,boolean,boolean)
+pgr_biconnectedcomponents(text)
+pgr_boykovkolmogorov(text,anyarray,anyarray)
+pgr_boykovkolmogorov(text,anyarray,bigint)
+pgr_boykovkolmogorov(text,bigint,anyarray)
+pgr_boykovkolmogorov(text,bigint,bigint)
+pgr_bridges(text)
+_pgr_checkverttab(text,text[],integer,text)
+pgr_connectedcomponents(text)
+pgr_contractgraph(text,bigint[],integer,bigint[],boolean)
+_pgr_createindex(text,text,text,integer,text)
+_pgr_createindex(text,text,text,text,integer,text)
+pgr_createtopology(text,double precision,text,text,text,text,text,boolean)
+pgr_createverticestable(text,text,text,text,text)
+pgr_dijkstracostmatrix(text,anyarray,boolean)
+pgr_dijkstracost(text,anyarray,anyarray,boolean)
+pgr_dijkstracost(text,anyarray,bigint,boolean)
+pgr_dijkstracost(text,bigint,anyarray,boolean)
+pgr_dijkstracost(text,bigint,bigint,boolean)
+pgr_dijkstra(text,anyarray,anyarray,boolean)
+_pgr_dijkstra(text,anyarray,anyarray,boolean,boolean,boolean)
+pgr_dijkstra(text,anyarray,bigint,boolean)
+pgr_dijkstra(text,bigint,anyarray,boolean)
+pgr_dijkstra(text,bigint,bigint)
+pgr_dijkstra(text,bigint,bigint,boolean)
+pgr_dijkstra(text,integer,integer,boolean,boolean)
+pgr_dijkstravia(text,anyarray,boolean,boolean,boolean)
+pgr_drivingdistance(text,anyarray,double precision,boolean,boolean)
+pgr_drivingdistance(text,bigint,double precision,boolean)
+pgr_drivingdistance(text,bigint,double precision,boolean,boolean)
+pgr_edgedisjointpaths(text,anyarray,anyarray,boolean)
+pgr_edgedisjointpaths(text,anyarray,bigint,boolean)
+pgr_edgedisjointpaths(text,bigint,anyarray,boolean)
+pgr_edgedisjointpaths(text,bigint,bigint,boolean)
+pgr_edmondskarp(text,anyarray,anyarray)
+pgr_edmondskarp(text,anyarray,bigint)
+pgr_edmondskarp(text,bigint,anyarray)
+pgr_edmondskarp(text,bigint,bigint)
+_pgr_endpoint(geometry)
+pgr_endpoint(geometry)
+pgr_euclediantsp(text,bigint,bigint,double precision,integer,integer,integer,double precision,double precision,double precision,boolean)
+pgr_flipedges(geometry[])
+pgr_floydwarshall(text,boolean)
+pgr_getcolumnname(text,text)
+_pgr_getcolumnname(text,text,integer,text)
+_pgr_getcolumnname(text,text,text,integer,text)
+_pgr_getcolumntype(text,text,integer,text)
+_pgr_getcolumntype(text,text,text,integer,text)
+_pgr_get_statement(text)
+pgr_gettablename(text)
+_pgr_gettablename(text,integer,text)
+_pgr_gsoc_vrppdtw(text,integer,double precision,double precision,integer)
+pgr_gsoc_vrppdtw(text,integer,integer)
+pgr_iscolumnindexed(text,text)
+_pgr_iscolumnindexed(text,text,integer,text)
+_pgr_iscolumnindexed(text,text,text,integer,text)
+_pgr_iscolumnintable(text,text)
+pgr_iscolumnintable(text,text)
+pgr_johnson(text,boolean)
+pgr_kdijkstracost(text,integer,integer[],boolean,boolean)
+pgr_kdijkstrapath(text,integer,integer[],boolean,boolean)
+_pgr_ksp(text,bigint,bigint,integer,boolean,boolean)
+pgr_ksp(text,bigint,bigint,integer,boolean,boolean)
+pgr_ksp(text,integer,integer,integer,boolean)
+pgr_labelgraph(text,text,text,text,text,text)
+pgr_linegraph(text,boolean)
+_pgr_makedistancematrix(text)
+pgr_maxcardinalitymatch(text,boolean)
+pgr_maxflowboykovkolmogorov(text,anyarray,anyarray)
+pgr_maxflowboykovkolmogorov(text,anyarray,bigint)
+pgr_maxflowboykovkolmogorov(text,bigint,anyarray)
+pgr_maxflowboykovkolmogorov(text,bigint,bigint)
+pgr_maxflowedmondskarp(text,anyarray,anyarray)
+pgr_maxflowedmondskarp(text,anyarray,bigint)
+pgr_maxflowedmondskarp(text,bigint,anyarray)
+pgr_maxflowedmondskarp(text,bigint,bigint)
+pgr_maxflowpushrelabel(text,anyarray,anyarray)
+pgr_maxflowpushrelabel(text,anyarray,bigint)
+pgr_maxflowpushrelabel(text,bigint,anyarray)
+pgr_maxflowpushrelabel(text,bigint,bigint)
+pgr_maxflow(text,anyarray,anyarray)
+_pgr_maxflow(text,anyarray,anyarray,integer,boolean)
+pgr_maxflow(text,anyarray,bigint)
+pgr_maxflow(text,bigint,anyarray)
+pgr_maxflow(text,bigint,bigint)
+pgr_maximumcardinalitymatching(text,boolean)
+_pgr_msg(integer,text,text)
+pgr_nodenetwork(text,double precision,text,text,text,text,boolean)
+_pgr_onerror(boolean,integer,text,text,text,text)
+_pgr_parameter_check(text,text,boolean)
+_pgr_pickdelivereuclidean(text,text,double precision,integer,integer)
+_pgr_pickdeliver(text,text,text,double precision,integer,integer)
+pgr_pointsaspolygon(character varying,double precision)
+pgr_pointstodmatrix(geometry[],integer)
+pgr_pointstovids(geometry[],text,double precision)
+pgr_pointtoedgenode(text,geometry,double precision)
+_pgr_pointtoid(geometry,double precision,text,integer)
+pgr_pushrelabel(text,anyarray,anyarray)
+pgr_pushrelabel(text,anyarray,bigint)
+pgr_pushrelabel(text,bigint,anyarray)
+pgr_pushrelabel(text,bigint,bigint)
+_pgr_quote_ident(text)
+pgr_quote_ident(text)
+_pgr_startpoint(geometry)
+pgr_startpoint(geometry)
+pgr_strongcomponents(text)
+pgr_texttopoints(text,integer)
+_pgr_trsp(text,integer,double precision,integer,double precision,boolean,boolean,text)
+pgr_trsp(text,integer,double precision,integer,double precision,boolean,boolean,text)
+_pgr_trsp(text,integer,integer,boolean,boolean,text)
+pgr_trsp(text,integer,integer,boolean,boolean,text)
+pgr_trspviaedges(text,integer[],double precision[],boolean,boolean,text)
+pgr_trspviavertices(text,anyarray,boolean,boolean,text)
+_pgr_trspviavertices(text,integer[],boolean,boolean,text)
+pgr_tsp(double precision[],integer,integer)
+pgr_tsp(text,bigint,bigint,double precision,integer,integer,integer,double precision,double precision,double precision,boolean)
+pgr_tsp(text,integer,integer)
+_pgr_unnest_matrix(double precision[])
+pgr_version()
+_pgr_versionless(text,text)
+pgr_versionless(text,text)
+pgr_vidstodmatrix(integer[],geometry[],text,double precision)
+pgr_vidstodmatrix(text,integer[],boolean,boolean,boolean)
+_pgr_vrponedepot(text,text,text,integer)
+pgr_vrponedepot(text,text,text,integer)
+pgr_withpointscostmatrix(text,text,anyarray,boolean,character)
+pgr_withpointscost(text,text,anyarray,anyarray,boolean,character)
+pgr_withpointscost(text,text,anyarray,bigint,boolean,character)
+pgr_withpointscost(text,text,bigint,anyarray,boolean,character)
+pgr_withpointscost(text,text,bigint,bigint,boolean,character)
+pgr_withpointsdd(text,text,anyarray,double precision,boolean,character,boolean,boolean)
+pgr_withpointsdd(text,text,bigint,double precision,boolean,character,boolean)
+pgr_withpointsksp(text,text,bigint,bigint,integer,boolean,boolean,character,boolean)
+pgr_withpoints(text,text,anyarray,anyarray,boolean,character,boolean)
+_pgr_withpoints(text,text,anyarray,anyarray,boolean,character,boolean,boolean,boolean)
+pgr_withpoints(text,text,anyarray,bigint,boolean,character,boolean)
+pgr_withpoints(text,text,bigint,anyarray,boolean,character,boolean)
+pgr_withpoints(text,text,bigint,bigint,boolean,character,boolean)
+_pgr_withpointsvia(text,bigint[],double precision[],boolean)
diff --git a/sql/topology/CMakeLists.txt b/sql/topology/CMakeLists.txt
new file mode 100644
index 0000000..cb1f02d
--- /dev/null
+++ b/sql/topology/CMakeLists.txt
@@ -0,0 +1,14 @@
+
+SET(LOCAL_FILES
+    pgrouting_topology.sql
+    pgrouting_analytics.sql
+    create_vertices_table.sql
+    nodeNetwork.sql
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} ${f})
+    list(APPEND PACKAGE_SQL_FILES  ${CMAKE_CURRENT_BINARY_DIR}/${f})
+endforeach()
+
+set(PgRouting_SQL_FILES ${PgRouting_SQL_FILES} ${PACKAGE_SQL_FILES} PARENT_SCOPE)
diff --git a/sql/topology/create_vertices_table.sql b/sql/topology/create_vertices_table.sql
new file mode 100644
index 0000000..a6f0e56
--- /dev/null
+++ b/sql/topology/create_vertices_table.sql
@@ -0,0 +1,254 @@
+/*PGR-GNU*****************************************************************
+File: create_vertices_table.sql
+
+Copyright (c) 2013 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+/*
+
+This function should not be used directly. Use assign_vertex_id instead
+Inserts a point into the vertices tablei "vname" with the srid "srid", and return an id
+of a new point or an existing point. Tolerance is the minimal distance
+between existing points and the new point to create a new point.
+
+Modified by: Vicky Vergara <vicky_vergara at hotmail,com>
+
+HISTORY
+Last changes: 2013-03-22
+2013-08-19: handling schemas
+*/
+
+
+
+/*
+.. function:: pgr_createVerticesTable(edge_table text, the_geom text, source text default 'source', target text default 'target')
+
+  Based on "source" and "target" columns creates the vetrices_pgr table for edge_table
+  Ignores rows where "source" or "target" have NULL values
+
+  Author: Vicky Vergara <vicky_vergara at hotmail,com>
+
+ HISTORY
+    Created 2013-08-19
+*/
+
+CREATE OR REPLACE FUNCTION pgr_createverticestable(
+   edge_table text,
+   the_geom text DEFAULT 'the_geom'::text,
+   source text DEFAULT 'source'::text,
+   target text DEFAULT 'target'::text,
+    rows_where text DEFAULT 'true'::text
+)
+  RETURNS text AS
+$BODY$
+DECLARE
+    naming record;
+    sridinfo record;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    sourcename text;
+    targetname text;
+    query text;
+    ecnt bigint;
+    srid integer;
+    sourcetype text;
+    targettype text;
+    sql text;
+    totcount integer;
+    i integer;
+    notincluded integer;
+    included integer;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+
+
+BEGIN
+  fnName = 'pgr_createVerticesTable';
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_createVerticesTable(''%'',''%'',''%'',''%'',''%'')',edge_table,the_geom,source,target,rows_where;
+  execute 'show client_min_messages' into debuglevel;
+
+  raise notice 'Performing checks, please wait .....';
+
+  RAISE DEBUG 'Checking % exists',edge_table;
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    rows_where = ' AND ('||rows_where||')';
+  raise debug '--> Edge table exists: OK';
+
+  raise debug 'Checking column names';
+    select * into sourcename from _pgr_getColumnName(sname, tname,source,2, fnName);
+    select * into targetname from _pgr_getColumnName(sname, tname,target,2, fnName);
+    select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2, fnName);
+
+
+    err = sourcename in (targetname,gname) or  targetname=gname;
+    perform _pgr_onError(err, 2, fnName,
+        'Two columns share the same name', 'Parameter names for the_geom,source and target  must be different');
+  raise debug '--> Column names: OK';
+
+  raise debug 'Checking column types in edge table';
+    select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+    select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+
+
+    err = sourcetype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column source: '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+    err = targettype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column target: '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found');
+
+  raise debug '-->Column types:OK';
+
+  raise debug 'Checking SRID of geometry column';
+     query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+        || ' FROM ' || _pgr_quote_ident(tabname)
+        || ' WHERE ' || quote_ident(gname)
+        || ' IS NOT NULL LIMIT 1';
+     raise debug '%',query;
+     EXECUTE query INTO sridinfo;
+
+     err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+     perform _pgr_onError(err, 2, fnName,
+         'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+     srid := sridinfo.srid;
+  raise DEBUG '     --> OK';
+
+  raise debug 'Checking and creating Indices';
+     perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+  raise DEBUG '-->Check and create indices: OK';
+
+     gname=quote_ident(gname);
+     sourcename=quote_ident(sourcename);
+     targetname=quote_ident(targetname);
+
+
+  BEGIN
+  raise debug 'Checking Condition';
+    -- issue #193 & issue #210 & #213
+    -- this sql is for trying out the where clause
+    -- the select * is to avoid any column name conflicts
+    -- limit 1, just try on first record
+    -- if the where clasuse is ill formed it will be caught in the exception
+    sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+    EXECUTE sql into dummyRec;
+    -- end
+
+    -- if above where clasue works this one should work
+    -- any error will be caught by the exception also
+    sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NULL or '||
+		sourcename||' is null or '||targetname||' is null)=true '||rows_where;
+    raise debug '%',sql;
+    EXECUTE SQL  into notincluded;
+    EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+
+
+
+  BEGIN
+     raise DEBUG 'initializing %',vertname;
+       execute 'select * from _pgr_getTableName('||quote_literal(vertname)||',0)' into naming;
+       IF sname=naming.sname  AND vname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+       ELSE
+           set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+       END IF;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+                quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+       execute 'CREATE INDEX '||quote_ident(vname||'_the_geom_idx')||' ON '||_pgr_quote_ident(vertname)||'  USING GIST (the_geom)';
+       execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+       EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Initializing vertex table';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise notice 'Populating %, please wait...',vertname;
+       sql= 'with
+		lines as ((select distinct '||sourcename||' as id, _pgr_startpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+		                  ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||')
+			union (select distinct '||targetname||' as id,_pgr_endpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+			          ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||'))
+		,numberedLines as (select row_number() OVER (ORDER BY id) AS i,* from lines )
+		,maxid as (select id,max(i) as maxi from numberedLines group by id)
+		insert into '||_pgr_quote_ident(vertname)||'(id,the_geom)  (select id,the_geom  from numberedLines join maxid using(id) where i=maxi order by id)';
+       RAISE debug '%',sql;
+       execute sql;
+       GET DIAGNOSTICS totcount = ROW_COUNT;
+
+       sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' a, '||_pgr_quote_ident(vertname)||' b
+            where '||sourcename||'=b.id and '|| targetname||' in (select id from '||_pgr_quote_ident(vertname)||')';
+       RAISE debug '%',sql;
+       execute sql into included;
+
+
+
+       execute 'select max(id) from '||_pgr_quote_ident(vertname) into ecnt;
+       execute 'SELECT setval('||quote_literal(vertname||'_id_seq')||','||coalesce(ecnt,1)||' , false)';
+       raise notice '  ----->   VERTICES TABLE CREATED WITH  % VERTICES', totcount;
+       raise notice '                                       FOR   %  EDGES', included+notincluded;
+       RAISE NOTICE '  Edges with NULL geometry,source or target: %',notincluded;
+       RAISE NOTICE '                            Edges processed: %',included;
+       Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname),_pgr_quote_ident(vertname);
+       raise notice '----------------------------------------------';
+    END;
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+COMMENT ON FUNCTION pgr_createVerticesTable(text,text,text,text,text)
+IS 'args: edge_table, the_geom:=''the_geom'',source:=''source'', target:=''target'' rows_where:=''true'' - creates a vertices table based on the source and target identifiers for selected rows';
diff --git a/sql/topology/nodeNetwork.sql b/sql/topology/nodeNetwork.sql
new file mode 100644
index 0000000..d5e6edd
--- /dev/null
+++ b/sql/topology/nodeNetwork.sql
@@ -0,0 +1,289 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Author: Nicolas Ribot, 2013
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+CREATE OR REPLACE FUNCTION pgr_nodeNetwork(edge_table text, tolerance double precision,
+			id text default 'id', the_geom text default 'the_geom', table_ending text default 'noded',
+            rows_where text DEFAULT ''::text, outall boolean DEFAULT false) RETURNS text AS
+$BODY$
+DECLARE
+	/*
+	 * Author: Nicolas Ribot, 2013
+	*/
+	p_num int := 0;
+	p_ret text := '';
+    pgis_ver_old boolean := _pgr_versionless(postgis_lib_version(), '2.1.0.0');
+    vst_line_substring text;
+    vst_line_locate_point text;
+    intab text;
+    outtab text;
+    n_pkey text;
+    n_geom text;
+    naming record;
+    sname text;
+    tname text;
+    outname text;
+    srid integer;
+    sridinfo record;
+    splits bigint;
+    touched bigint;
+    untouched bigint;
+    geomtype text;
+    debuglevel text;
+    rows_where text;
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_nodeNetwork(''%'', %, ''%'', ''%'', ''%'', ''%'',  %)',
+    edge_table, tolerance, id,  the_geom, table_ending, rows_where, outall;
+  raise notice 'Performing checks, please wait .....';
+  execute 'show client_min_messages' into debuglevel;
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',0)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+	RAISE NOTICE '-------> % not found',edge_table;
+        RETURN 'FAIL';
+    ELSE
+	RAISE DEBUG '  -----> OK';
+    END IF;
+
+    intab=sname||'.'||tname;
+    outname=tname||'_'||table_ending;
+    outtab= sname||'.'||outname;
+    rows_where = CASE WHEN length(rows_where) > 2 and not outall THEN ' AND (' || rows_where || ')' ELSE '' END;
+    rows_where = CASE WHEN length(rows_where) > 2 THEN ' WHERE (' || rows_where || ')' ELSE '' END;
+  END;
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',id,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(id)||')' INTO n_pkey;
+       IF n_pkey is NULL then
+          raise notice  'ERROR: id column "%"  not found in %',id,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',the_geom,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(the_geom)||')' INTO n_geom;
+       IF n_geom is NULL then
+          raise notice  'ERROR: the_geom  column "%"  not found in %',the_geom,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+  IF n_pkey=n_geom THEN
+	raise notice  'ERROR: id and the_geom columns have the same name "%" in %',n_pkey,intab;
+        RETURN 'FAIL';
+  END IF;
+
+  BEGIN
+       	raise DEBUG 'Checking the SRID of the geometry "%"', n_geom;
+       	EXECUTE 'SELECT ST_SRID(' || quote_ident(n_geom) || ') as srid '
+          		|| ' FROM ' || _pgr_quote_ident(intab)
+          		|| ' WHERE ' || quote_ident(n_geom)
+          		|| ' IS NOT NULL LIMIT 1' INTO sridinfo;
+       	IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
+        	RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           	RETURN 'FAIL';
+       	END IF;
+       	srid := sridinfo.srid;
+       	raise DEBUG '  -----> SRID found %',srid;
+       	EXCEPTION WHEN OTHERS THEN
+           		RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           		RETURN 'FAIL';
+  END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_pkey,intab;
+      if (_pgr_isColumnIndexed(intab,n_pkey)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding  index "%_%_idx".',n_pkey,intab;
+
+	set client_min_messages  to warning;
+        execute 'create  index '||tname||'_'||n_pkey||'_idx on '||_pgr_quote_ident(intab)||' using btree('||quote_ident(n_pkey)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_geom,intab;
+      if (_pgr_iscolumnindexed(intab,n_geom)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding unique index "%_%_gidx".',intab,n_geom;
+	set client_min_messages  to warning;
+        execute 'CREATE INDEX '
+            || quote_ident(tname || '_' || n_geom || '_gidx' )
+            || ' ON ' || _pgr_quote_ident(intab)
+            || ' USING gist (' || quote_ident(n_geom) || ')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+---------------
+    BEGIN
+       raise DEBUG 'initializing %',outtab;
+       execute 'select * from _pgr_getTableName('||quote_literal(outtab)||',0)' into naming;
+       IF sname=naming.sname  AND outname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(outtab)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(outname)||','||quote_literal(n_geom)||')';
+       ELSE
+	   set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(outtab)||' (id bigserial PRIMARY KEY,old_id integer,sub_id integer,
+								source bigint,target bigint)';
+       END IF;
+       execute 'select geometrytype('||quote_ident(n_geom)||') from  '||_pgr_quote_ident(intab)||' limit 1' into geomtype;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(outname)||','||
+                quote_literal(n_geom)||','|| srid||', '||quote_literal(geomtype)||', 2)';
+       execute 'CREATE INDEX '||quote_ident(outname||'_'||n_geom||'_idx')||' ON '||_pgr_quote_ident(outtab)||'  USING GIST ('||quote_ident(n_geom)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+    END;
+----------------
+
+
+  raise notice 'Processing, please wait .....';
+
+
+    if pgis_ver_old then
+        vst_line_substring    := 'st_line_substring';
+        vst_line_locate_point := 'st_line_locate_point';
+    else
+        vst_line_substring    := 'st_linesubstring';
+        vst_line_locate_point := 'st_linelocatepoint';
+    end if;
+
+--    -- First creates temp table with intersection points
+    p_ret = 'create temp table intergeom on commit drop as (
+        select l1.' || quote_ident(n_pkey) || ' as l1id,
+               l2.' || quote_ident(n_pkey) || ' as l2id,
+	       l1.' || quote_ident(n_geom) || ' as line,
+	       _pgr_startpoint(l2.' || quote_ident(n_geom) || ') as source,
+	       _pgr_endpoint(l2.' || quote_ident(n_geom) || ') as target,
+               st_intersection(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ') as geom
+        from (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l1
+             join (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l2
+             on (st_dwithin(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ', ' || tolerance || '))'||
+        'where l1.' || quote_ident(n_pkey) || ' <> l2.' || quote_ident(n_pkey)||' and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false  )';
+    raise debug '%',p_ret;
+    EXECUTE p_ret;
+
+    -- second temp table with locus (index of intersection point on the line)
+    -- to avoid updating the previous table
+    -- we keep only intersection points occurring onto the line, not at one of its ends
+--    drop table if exists inter_loc;
+
+--HAD TO CHANGE THIS QUERY
+-- p_ret= 'create temp table inter_loc on commit drop as (
+--        select l1id, l2id, ' || vst_line_locate_point || '(line,point) as locus from (
+--        select DISTINCT l1id, l2id, line, (ST_DumpPoints(geom)).geom as point from intergeom) as foo
+--        where ' || vst_line_locate_point || '(line,point)<>0 and ' || vst_line_locate_point || '(line,point)<>1)';
+    p_ret= 'create temp table inter_loc on commit drop as ( select * from (
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,source) as locus from intergeom)
+         union
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,target) as locus from intergeom)) as foo
+        where locus<>0 and locus<>1)';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+
+    -- index on l1id
+    create index inter_loc_id_idx on inter_loc(l1id);
+
+    -- Then computes the intersection on the lines subset, which is much smaller than full set
+    -- as there are very few intersection points
+
+--- outab needs to be formally created with id, old_id, subid,the_geom, source,target
+---  so it can be inmediatly be used with createTopology
+
+--   EXECUTE 'drop table if exists ' || _pgr_quote_ident(outtab);
+--   EXECUTE 'create table ' || _pgr_quote_ident(outtab) || ' as
+     P_RET = 'insert into '||_pgr_quote_ident(outtab)||' (old_id,sub_id,'||quote_ident(n_geom)||') (  with cut_locations as (
+           select l1id as lid, locus
+           from inter_loc
+           -- then generates start and end locus for each line that have to be cut buy a location point
+           UNION ALL
+           select i.l1id  as lid, 0 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           UNION ALL
+           select i.l1id  as lid, 1 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           order by lid, locus
+       ),
+       -- we generate a row_number index column for each input line
+       -- to be able to self-join the table to cut a line between two consecutive locations
+       loc_with_idx as (
+           select lid, locus, row_number() over (partition by lid order by locus) as idx
+           from cut_locations
+       )
+       -- finally, each original line is cut with consecutive locations using linear referencing functions
+       select l.' || quote_ident(n_pkey) || ', loc1.idx as sub_id, ' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus) as ' || quote_ident(n_geom) || '
+       from loc_with_idx loc1 join loc_with_idx loc2 using (lid) join ' || _pgr_quote_ident(intab) || ' l on (l.' || quote_ident(n_pkey) || ' = loc1.lid)
+       where loc2.idx = loc1.idx+1
+           -- keeps only linestring geometries
+           and geometryType(' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus)) = ''LINESTRING'') ';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+	GET DIAGNOSTICS splits = ROW_COUNT;
+        execute 'with diff as (select distinct old_id from '||_pgr_quote_ident(outtab)||' )
+                 select count(*) from diff' into touched;
+	-- here, it misses all original line that did not need to be cut by intersection points: these lines
+	-- are already clean
+	-- inserts them in the final result: all lines which gid is not in the res table.
+	EXECUTE 'insert into ' || _pgr_quote_ident(outtab) || ' (old_id , sub_id, ' || quote_ident(n_geom) || ')
+                ( with used as (select distinct old_id from '|| _pgr_quote_ident(outtab)||')
+		select ' ||  quote_ident(n_pkey) || ', 1 as sub_id, ' ||  quote_ident(n_geom) ||
+		' from '|| _pgr_quote_ident(intab) ||' where  '||quote_ident(n_pkey)||' not in (select * from used)' || rows_where || ')';
+	GET DIAGNOSTICS untouched = ROW_COUNT;
+
+	raise NOTICE '  Split Edges: %', touched;
+	raise NOTICE ' Untouched Edges: %', untouched;
+	raise NOTICE '     Total original Edges: %', touched+untouched;
+        RAISE NOTICE ' Edges generated: %', splits;
+	raise NOTICE ' Untouched Edges: %',untouched;
+	raise NOTICE '       Total New segments: %', splits+untouched;
+        RAISE NOTICE ' New Table: %', outtab;
+        RAISE NOTICE '----------------------------------';
+
+    drop table  if exists intergeom;
+    drop table if exists inter_loc;
+    RETURN 'OK';
+END;
+$BODY$
+    LANGUAGE 'plpgsql' VOLATILE STRICT COST 100;
+
+
+COMMENT ON FUNCTION pgr_nodeNetwork(text, double precision, text, text, text, text, boolean )
+ IS  'edge_table, tolerance, id:=''id'', the_geom:=''the_geom'', table_ending:=''noded'' ';
+
diff --git a/src/topology/sql/pgrouting_analytics.sql b/sql/topology/pgrouting_analytics.sql
similarity index 100%
rename from src/topology/sql/pgrouting_analytics.sql
rename to sql/topology/pgrouting_analytics.sql
diff --git a/sql/topology/pgrouting_topology.sql b/sql/topology/pgrouting_topology.sql
new file mode 100644
index 0000000..0f47a87
--- /dev/null
+++ b/sql/topology/pgrouting_topology.sql
@@ -0,0 +1,289 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Author: Christian Gonzalez
+Author: Stephen Woodbridge <woodbri at imaptools.com>
+Author: Vicky Vergara <vicky_vergara at hotmail,com>
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+/*
+.. function:: _pgr_createtopology(edge_table, tolerance,the_geom,id,source,target,rows_where)
+
+Based on the geometry:
+Fill the source and target column for all lines.
+All line end points within a distance less than tolerance, are assigned the same id
+
+Author: Christian Gonzalez <christian.gonzalez at sigis.com.ve>
+Author: Stephen Woodbridge <woodbri at imaptools.com>
+Modified by: Vicky Vergara <vicky_vergara at hotmail,com>
+
+HISTORY
+Last changes: 2013-03-22
+2013-08-19:  handling schemas
+2014-july: fixes issue 211
+*/
+
+CREATE OR REPLACE FUNCTION pgr_createtopology(edge_table text, tolerance double precision,
+		   the_geom text default 'the_geom', id text default 'id',
+		   source text default 'source', target text default 'target',rows_where text default 'true',
+		   clean boolean default FALSE)
+RETURNS VARCHAR AS
+$BODY$
+
+DECLARE
+    points record;
+    sridinfo record;
+    source_id bigint;
+    target_id bigint;
+    totcount bigint;
+    rowcount bigint;
+    srid integer;
+    sql text;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    idname text;
+    sourcename text;
+    targetname text;
+    notincluded integer;
+    i integer;
+    naming record;
+    info record;
+    flag boolean;
+    query text;
+    idtype text;
+    gtype text;
+    sourcetype text;
+    targettype text;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+    msgKind int;
+    emptied BOOLEAN;
+
+BEGIN
+    msgKind = 1; -- notice
+    fnName = 'pgr_createTopology';
+    raise notice 'PROCESSING:';
+    raise notice 'pgr_createTopology(''%'', %, ''%'', ''%'', ''%'', ''%'', rows_where := ''%'', clean := %)',edge_table,tolerance,the_geom,id,source,target,rows_where, clean;
+    execute 'show client_min_messages' into debuglevel;
+
+
+    raise notice 'Performing checks, please wait .....';
+
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+        sname=naming.sname;
+        tname=naming.tname;
+        tabname=sname||'.'||tname;
+        vname=tname||'_vertices_pgr';
+        vertname= sname||'.'||vname;
+        rows_where = ' AND ('||rows_where||')';
+      raise DEBUG '     --> OK';
+
+
+      raise debug 'Checking column names in edge table';
+        select * into idname     from _pgr_getColumnName(sname, tname,id,2,fnName);
+        select * into sourcename from _pgr_getColumnName(sname, tname,source,2,fnName);
+        select * into targetname from _pgr_getColumnName(sname, tname,target,2,fnName);
+        select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2,fnName);
+
+
+        err = sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname;
+        perform _pgr_onError( err, 2, fnName,
+               'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
+	       'Column names are OK');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking column types in edge table';
+        select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+        select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+        select * into idtype from _pgr_getColumnType(sname,tname,idname,1, fnName);
+
+        err = idtype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column id:'|| idname, ' Expected type of '|| idname || ' is integer,smallint or bigint but '||idtype||' was found');
+
+        err = sourcetype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column source:'|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+        err = targettype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column target:'|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or bigint but '||targettype||' was found');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking SRID of geometry column';
+         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+            || ' FROM ' || _pgr_quote_ident(tabname)
+            || ' WHERE ' || quote_ident(gname)
+            || ' IS NOT NULL LIMIT 1';
+         raise debug '%',query;
+         EXECUTE query INTO sridinfo;
+
+         err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+         perform _pgr_onError(err, 2, fnName,
+	     'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+
+         srid := sridinfo.srid;
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking and creating indices in edge table';
+        perform _pgr_createIndex(sname, tname , idname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+
+        gname=quote_ident(gname);
+        idname=quote_ident(idname);
+        sourcename=quote_ident(sourcename);
+        targetname=quote_ident(targetname);
+      raise DEBUG '     --> OK';
+
+
+
+
+
+    BEGIN
+        -- issue #193 & issue #210 & #213
+        -- this sql is for trying out the where clause
+        -- the select * is to avoid any column name conflicts
+        -- limit 1, just try on first record
+        -- if the where clasuse is ill formed it will be caught in the exception
+        sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+        EXECUTE sql into dummyRec;
+        -- end
+
+        -- if above where clasue works this one should work
+        -- any error will be caught by the exception also
+        sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NOT NULL AND '||
+	    idname||' IS NOT NULL)=false '||rows_where;
+        EXECUTE SQL  into notincluded;
+
+        if clean then
+            raise debug 'Cleaning previous Topology ';
+               execute 'UPDATE ' || _pgr_quote_ident(tabname) ||
+               ' SET '||sourcename||' = NULL,'||targetname||' = NULL';
+        else
+            raise debug 'Creating topology for edges with non assigned topology';
+            if rows_where=' AND (true)' then
+                rows_where=  ' and ('||quote_ident(sourcename)||' is null or '||quote_ident(targetname)||' is  null)';
+            end if;
+        end if;
+        -- my thoery is that the select Count(*) will never go through here
+        EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+             RAISE NOTICE '%',sql;
+             RETURN 'FAIL';
+    END;
+
+    BEGIN
+         raise DEBUG 'initializing %',vertname;
+         execute 'select * from _pgr_getTableName('||quote_literal(vertname)
+                                                  || ',0,' || quote_literal(fnName) ||' )' into naming;
+         emptied = false;
+         set client_min_messages  to warning;
+         IF sname=naming.sname AND vname=naming.tname  THEN
+            if clean then
+                execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+                execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+                emptied = true;
+            end if;
+         ELSE -- table doesn't exist
+            execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+            emptied = true;
+         END IF;
+         IF (emptied) THEN
+             execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+	         quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+             perform _pgr_createIndex(vertname , 'the_geom'::text , 'gist'::text);
+         END IF;
+         execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id"}''::text[])' into naming;
+         execute 'set client_min_messages  to '|| debuglevel;
+         raise DEBUG  '  ------>OK';
+         EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: something went wrong when initializing the verties table';
+             RETURN 'FAIL';
+    END;
+
+
+
+    raise notice 'Creating Topology, Please wait...';
+        rowcount := 0;
+        FOR points IN EXECUTE 'SELECT ' || idname || '::bigint AS id,'
+            || ' _pgr_StartPoint(' || gname || ') AS source,'
+            || ' _pgr_EndPoint('   || gname || ') AS target'
+            || ' FROM '  || _pgr_quote_ident(tabname)
+            || ' WHERE ' || gname || ' IS NOT NULL AND ' || idname||' IS NOT NULL '||rows_where
+        LOOP
+
+            rowcount := rowcount + 1;
+            IF rowcount % 1000 = 0 THEN
+                RAISE NOTICE '% edges processed', rowcount;
+            END IF;
+
+
+            source_id := _pgr_pointToId(points.source, tolerance,vertname,srid);
+            target_id := _pgr_pointToId(points.target, tolerance,vertname,srid);
+            BEGIN
+                sql := 'UPDATE ' || _pgr_quote_ident(tabname) ||
+                    ' SET '||sourcename||' = '|| source_id::text || ','||targetname||' = ' || target_id::text ||
+                    ' WHERE ' || idname || ' =  ' || points.id::text;
+
+                IF sql IS NULL THEN
+                    RAISE NOTICE 'WARNING: UPDATE % SET source = %, target = % WHERE % = % ', tabname, source_id::text, target_id::text, idname,  points.id::text;
+                ELSE
+                    EXECUTE sql;
+                END IF;
+                EXCEPTION WHEN OTHERS THEN
+                    RAISE NOTICE '%', SQLERRM;
+                    RAISE NOTICE '%',sql;
+                    RETURN 'FAIL';
+            end;
+        END LOOP;
+        raise notice '-------------> TOPOLOGY CREATED FOR  % edges', rowcount;
+        RAISE NOTICE 'Rows with NULL geometry or NULL id: %',notincluded;
+        Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname), _pgr_quote_ident(vertname);
+        raise notice '----------------------------------------------';
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+COMMENT ON FUNCTION pgr_createTopology(text, double precision,text,text,text,text,text,boolean)
+IS 'args: edge_table,tolerance, the_geom:=''the_geom'',source:=''source'', target:=''target'',rows_where:=''true'' - fills columns source and target in the geometry table and creates a vertices table for selected rows';
+
+
+
+
diff --git a/sql/trsp/CMakeLists.txt b/sql/trsp/CMakeLists.txt
new file mode 100644
index 0000000..9d31e56
--- /dev/null
+++ b/sql/trsp/CMakeLists.txt
@@ -0,0 +1,12 @@
+
+SET(LOCAL_FILES
+    trsp_V2.2.sql
+    vias_trsp_V2.2.sql
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} ${f})
+    list(APPEND PACKAGE_SQL_FILES  ${CMAKE_CURRENT_BINARY_DIR}/${f})
+endforeach()
+
+set(PgRouting_SQL_FILES ${PgRouting_SQL_FILES} ${PACKAGE_SQL_FILES} PARENT_SCOPE)
diff --git a/sql/trsp/routing_trsp_vias.sql b/sql/trsp/routing_trsp_vias.sql
new file mode 100644
index 0000000..9169fc3
--- /dev/null
+++ b/sql/trsp/routing_trsp_vias.sql
@@ -0,0 +1,165 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2013 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+create or replace function _pgr_trspViaVertices(sql text, vids integer[], directed boolean, has_reverse_cost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+/*
+ *  pgr_trsp(sql text, vids integer[], directed boolean, has_reverse_cost boolean, turn_restrict_sql text DEFAULT NULL::text)
+ *
+ *  Compute TRSP with via points. We compute the path between vids[i] and vids[i+1] and chain the results together.
+ *
+ *  NOTE: this is a prototype function, we can gain a lot of efficiencies by implementing this in C/C++
+ *
+*/
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    lrra boolean := false;
+    seq integer := 0;
+    seq2 integer := 0;
+
+begin
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(vids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from pgr_trsp(sql, vids[i], vids[i+1], directed, has_reverse_cost, turn_restrict_sql) as a loop
+            -- filter out the individual path ends except the last one
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --raise notice 'rr: %', rr;
+            if rr.id3 = -1 then
+                lrr := rr;
+                lrra := true;
+            else
+                seq := seq + 1;
+                rr.seq := seq;
+                return next rr;
+            end if;
+        end loop;
+    end loop;
+
+    if lrra then
+        seq := seq + 1;
+        lrr.seq := seq;
+        return next lrr;
+    end if;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+
+----------------------------------------------------------------------------------------------------------
+
+create or replace function _pgr_trspViaEdges(sql text, eids integer[], pcts float8[], directed boolean, has_reverse_cost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+/*
+ *  pgr_trsp(sql text, eids integer[], pcts float8[], directed boolean, has_reverse_cost boolean, turn_restrict_sql text DEFAULT NULL::text)
+ *
+ *  Compute TRSP with edge_ids and pposition along edge. We compute the path between eids[i], pcts[i] and eids[i+1], pcts[i+1]
+ *  and chain the results together.
+ *
+ *  NOTE: this is a prototype function, we can gain a lot of efficiencies by implementing this in C/C++
+ *
+*/
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    first boolean := true;
+    seq integer := 0;
+    seq2 integer :=0;
+
+begin
+    if array_length(eids, 1) != array_length(pcts, 1) then
+        raise exception 'The length of arrays eids and pcts must be the same!';
+    end if;
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(eids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from _pgr_trsp(sql,
+                                  eids[i], pcts[i],
+                                  eids[i+1], pcts[i+1],
+                                  directed,
+                                  has_reverse_cost,
+                                  turn_restrict_sql) as a loop
+            -- combine intermediate via costs when cost is split across
+            -- two parts of a segment because it stops it and
+            -- restarts the next leg also on it
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --
+            -- there are multiple condition we have to deal with
+            -- between the end of one leg and start of the next
+            -- 1. same vertex_id. edge_id=-1; drop record with edge_id=-1
+            -- means: path ends on vertex
+            -- NOTICE:  rr: (19,1,44570022,-1,0)
+            -- NOTICE:  rr: (0,2,44570022,1768045,2.89691196717448)
+            -- 2. vertex_id=-1; sum cost components
+            -- means: path end/starts with the segment
+            -- NOTICE:  rr: (11,2,44569628,1775909,9.32885885148532)
+            -- NOTICE:  rr: (0,3,-1,1775909,0.771386350984395)
+
+            --raise notice 'rr: %', rr;
+            if first then
+                lrr := rr;
+                first := false;
+            else
+                if lrr.id3 = -1 then
+                    lrr := rr;
+                elsif lrr.id3 = rr.id3 then
+                    lrr.cost := lrr.cost + rr.cost;
+                    if rr.id2 = -1 then
+                        rr.id2 := lrr.id2;
+                    end if;
+                else
+                    seq := seq + 1;
+                    lrr.seq := seq;
+                    return next lrr;
+                    lrr := rr;
+                end if;
+            end if;
+        end loop;
+    end loop;
+
+    seq := seq + 1;
+    lrr.seq := seq;
+    return next lrr;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
diff --git a/sql/trsp/trsp_V2.2.sql b/sql/trsp/trsp_V2.2.sql
new file mode 100644
index 0000000..406bbcf
--- /dev/null
+++ b/sql/trsp/trsp_V2.2.sql
@@ -0,0 +1,216 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+/*
+-----------------------------------------------------------------------
+-- Core function for time_dependent_shortest_path computation
+-- See README for description
+-----------------------------------------------------------------------
+--TODO - Do we need to add another sql text for the query on time-dependent-weights table?
+--     - For now just checking with static data, so the query is similar to shortest_paths.
+*/
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_vid integer,
+    target_vid integer,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '${MODULE_PATHNAME}', 'turn_restrict_shortest_path_vertex'
+LANGUAGE 'c' IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '${MODULE_PATHNAME}', 'turn_restrict_shortest_path_edge'
+LANGUAGE 'c' IMMUTABLE;
+
+
+
+
+/*  pgr_trsp    VERTEX
+
+ - if size of restrictions_sql  is Zero or no restrictions_sql are given
+     then call to pgr_dijkstra is made
+
+ - because it reads the data wrong, when there is a reverse_cost column:
+   - put all data costs in one cost column and
+   - a call is made to trsp without only the positive values
+*/
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || edges_sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        -- no restrictions then its a dijkstra
+        RETURN query SELECT a.seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_dijkstra(new_sql, start_vid, end_vid, directed) a;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, start_vid, end_vid, directed, has_rcost, restrictions_sql);
+    RETURN;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+/* pgr_trspVia Vertices
+ - if size of restrictions_sql  is Zero or no restrictions_sql are given
+     then call to pgr_dijkstra is made
+
+ - because it reads the data wrong, when there is a reverse_cost column:
+   - put all data costs in one cost column and
+   - a call is made to trspViaVertices without only the positive values
+*/
+CREATE OR REPLACE FUNCTION pgr_trspViaVertices(
+    edges_sql TEXT,
+    via_vids ANYARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult3 AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            new_sql :=
+               'WITH old_sql AS (' || edges_sql || ')' ||
+                '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        RETURN query SELECT (row_number() over())::INTEGER, path_id:: INTEGER, node::INTEGER,
+            (CASE WHEN edge = -2 THEN -1 ELSE edge END)::INTEGER, cost
+            FROM pgr_dijkstraVia(new_sql, via_vids, directed, strict:=true) WHERE edge != -1;
+        RETURN;
+    END IF;
+
+
+    -- make the call without contradiction from part of the user
+    RETURN query SELECT * FROM _pgr_trspViaVertices(new_sql, via_vids::INTEGER[], directed, has_rcost, restrictions_sql);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+
+    new_sql := sql;
+    IF (has_reverse != has_reverse_cost) THEN  -- user contradiction
+        IF (has_reverse) THEN
+            -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) THEN
+        -- no restrictions then its a with points
+        RETURN query SELECT a.seq-1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_withpoints(new_sql,
+            '(SELECT 1 as pid, ' || source_eid || 'as edge_id, ' || source_pos || '::float8 as fraction)'
+            || ' UNION '
+            || '(SELECT 2, ' || target_eid || ', ' || target_pos || ')' ::TEXT,
+            -1, -2, directed) a;
+        -- WHERE node != -2;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, source_eid, source_pos, target_eid, target_pos, directed, has_reverse_cost, turn_restrict_sql);
+    RETURN;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
diff --git a/sql/trsp/viaEdges_v2.2.sql b/sql/trsp/viaEdges_v2.2.sql
new file mode 100644
index 0000000..d246445
--- /dev/null
+++ b/sql/trsp/viaEdges_v2.2.sql
@@ -0,0 +1,87 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2016 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+/* trspViaEdges
+
+ - when contradiction (has rcost but does not want it):
+   - the call is made to trsp only with cost column
+
+ - When there are no restrictions:
+   a call to _pgr_withPointsVia
+ - Else
+   a call to _pgr_trspViaEdges
+     - which calls repetedly the original C/C++ code
+*/
+
+
+/*
+------------------------------
+-- pgr_trspViaEdges Wrapper
+------------------------------
+*/
+CREATE OR REPLACE FUNCTION pgr_trspViaEdges(
+    sql TEXT,
+    eids INTEGER[],
+    pcts float[],
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    turn_restrict_sql text DEFAULT NULL::TEXT)
+    RETURNS SETOF pgr_costresult3 AS
+$BODY$
+DECLARE
+    i INTEGER;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    first BOOLEAN := true;
+    seq INTEGER := 0;
+    seq2 INTEGER :=0;
+    has_reverse BOOLEAN;
+    edges_sql TEXT;
+
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql := sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            edges_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) THEN
+        -- no restrictions then its a _pgr_withPointsVia
+        RETURN query SELECT seq-1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM _pgr_withPointsVia(edges_sql, eids, pcts, directed)
+        RETURN;
+    END IF;
+
+
+    -- make the call to the original code
+    RETURN query SELECT * FROM _pgr_trspViaEdges(edges_sql, eids, pcts, directed, has_rcost, turn_restrict_sql);
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE
+cost 100
+rows 1000;
diff --git a/sql/trsp/viaVertices_v2.2.sql b/sql/trsp/viaVertices_v2.2.sql
new file mode 100644
index 0000000..6434c47
--- /dev/null
+++ b/sql/trsp/viaVertices_v2.2.sql
@@ -0,0 +1,82 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2016 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+/* trspViaVertices
+
+ - when contradiction (has rcost but does not want it):
+   - the call is made to trsp only with cost column
+
+ - When there are no restrictions:
+   a call to pgr_dijkstraVia
+ - Else
+   a call to _pgr_trspViaVertices
+     - which calls repetedly the original C/C++ code
+
+------------------------------
+-- pgr_trspViaVertices Wrapper
+------------------------------
+*/
+CREATE OR REPLACE FUNCTION pgr_trspViaVertices(
+    edges_sql TEXT,
+    via_vids ANYARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult3 AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            new_sql :=
+               'WITH old_sql AS (' || edges_sql || ')' ||
+                '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        RETURN query SELECT (row_number() over())::INTEGER, path_id:: INTEGER, node::INTEGER,
+            (CASE WHEN edge = -2 THEN -1 ELSE edge END)::INTEGER, cost
+            FROM pgr_dijkstraVia(new_sql, via_vids, directed, strict:=true) WHERE edge != -1;
+        RETURN;
+    END IF;
+
+
+    -- make the call without contradiction from part of the user
+    RETURN query SELECT * FROM _pgr_trspViaVertices(new_sql, via_vids::INTEGER[], directed, has_rcost, restrictions_sql);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
diff --git a/sql/trsp/vias_trsp_V2.2.sql b/sql/trsp/vias_trsp_V2.2.sql
new file mode 100644
index 0000000..7b9eb44
--- /dev/null
+++ b/sql/trsp/vias_trsp_V2.2.sql
@@ -0,0 +1,191 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+create or replace function _pgr_trspViaVertices(sql text, vids integer[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+/*
+ *  pgr_trsp(sql text, vids integer[], directed boolean, has_reverse_cost boolean, turn_restrict_sql text DEFAULT NULL::text)
+ *
+ *  Compute TRSP with via points. We compute the path between vids[i] and vids[i+1] and chain the results together.
+ *
+ *  NOTE: this is a prototype function, we can gain a lot of efficiencies by implementing this in C/C++
+ *
+*/
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    lrra boolean := false;
+    seq integer := 0;
+    seq2 integer := 0;
+
+begin
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(vids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from _pgr_trsp(sql, vids[i], vids[i+1], directed, has_rcost, turn_restrict_sql) as a loop
+            -- filter out the individual path ends except the last one
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --raise notice 'rr: %', rr;
+            if rr.id3 = -1 then
+                lrr := rr;
+                lrra := true;
+            else
+                seq := seq + 1;
+                rr.seq := seq;
+                return next rr;
+            end if;
+        end loop;
+    end loop;
+
+    if lrra then
+        seq := seq + 1;
+        lrr.seq := seq;
+        return next lrr;
+    end if;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+
+----------------------------------------------------------------------------------------------------------
+
+create or replace function pgr_trspViaEdges(sql text, eids integer[], pcts float8[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+/*
+ *  pgr_trsp(sql text, eids integer[], pcts float8[], directed boolean, has_reverse_cost boolean, turn_restrict_sql text DEFAULT NULL::text)
+ *
+ *  Compute TRSP with edge_ids and pposition along edge. We compute the path between eids[i], pcts[i] and eids[i+1], pcts[i+1]
+ *  and chain the results together.
+ *
+ *  NOTE: this is a prototype function, we can gain a lot of efficiencies by implementing this in C/C++
+ *
+*/
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    first boolean := true;
+    seq integer := 0;
+    seq2 integer :=0;
+    has_reverse BOOLEAN;
+    point_is_vertex BOOLEAN := false;
+    edges_sql TEXT;
+    f float;
+
+begin
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql := sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (NOT has_rcost) THEN
+            -- user does not want to use reverse cost column
+            edges_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    FOREACH f IN ARRAY pcts LOOP
+        IF f in (0,1) THEN
+           point_is_vertex := true;
+        END IF;
+    END LOOP;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) AND NOT point_is_vertex THEN
+        -- no restrictions then its a _pgr_withPointsVia
+        RETURN query SELECT a.seq::INTEGER, path_id::INTEGER AS id1, node::INTEGER AS id2, edge::INTEGER AS id3, cost
+        FROM _pgr_withPointsVia(edges_sql, eids, pcts, directed) a;
+        RETURN;
+    END IF;
+
+    if array_length(eids, 1) != array_length(pcts, 1) then
+        raise exception 'The length of arrays eids and pcts must be the same!';
+    end if;
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(eids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from pgr_trsp(edges_sql,
+                                  eids[i], pcts[i],
+                                  eids[i+1], pcts[i+1],
+                                  directed,
+                                  has_rcost,
+                                  turn_restrict_sql) as a loop
+            -- combine intermediate via costs when cost is split across
+            -- two parts of a segment because it stops it and
+            -- restarts the next leg also on it
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --
+            -- there are multiple condition we have to deal with
+            -- between the end of one leg and start of the next
+            -- 1. same vertex_id. edge_id=-1; drop record with edge_id=-1
+            -- means: path ends on vertex
+            -- NOTICE:  rr: (19,1,44570022,-1,0)
+            -- NOTICE:  rr: (0,2,44570022,1768045,2.89691196717448)
+            -- 2. vertex_id=-1; sum cost components
+            -- means: path end/starts with the segment
+            -- NOTICE:  rr: (11,2,44569628,1775909,9.32885885148532)
+            -- NOTICE:  rr: (0,3,-1,1775909,0.771386350984395)
+
+            --raise notice 'rr: %', rr;
+            if first then
+                lrr := rr;
+                first := false;
+            else
+                if lrr.id3 = -1 then
+                    lrr := rr;
+                elsif lrr.id3 = rr.id3 then
+                    lrr.cost := lrr.cost + rr.cost;
+                    if rr.id2 = -1 then
+                        rr.id2 := lrr.id2;
+                    end if;
+                else
+                    seq := seq + 1;
+                    lrr.seq := seq;
+                    return next lrr;
+                    lrr := rr;
+                end if;
+            end if;
+        end loop;
+    end loop;
+
+    seq := seq + 1;
+    lrr.seq := seq;
+    return next lrr;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
diff --git a/sql/tsp/CMakeLists.txt b/sql/tsp/CMakeLists.txt
new file mode 100644
index 0000000..9c8dc98
--- /dev/null
+++ b/sql/tsp/CMakeLists.txt
@@ -0,0 +1,15 @@
+
+SET(LOCAL_FILES
+    tsp_v2.0_matrix.sql
+    tsp_v2.0_coordinates.sql
+    routing_tsp_wrappers.sql
+    TSP.sql
+    eucledianTSP.sql
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} ${f})
+    list(APPEND PACKAGE_SQL_FILES  ${CMAKE_CURRENT_BINARY_DIR}/${f})
+endforeach()
+
+set(PgRouting_SQL_FILES ${PgRouting_SQL_FILES} ${PACKAGE_SQL_FILES} PARENT_SCOPE)
diff --git a/sql/tsp/TSP.sql b/sql/tsp/TSP.sql
new file mode 100644
index 0000000..605c5e1
--- /dev/null
+++ b/sql/tsp/TSP.sql
@@ -0,0 +1,50 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2016 pgRouting developers
+Mail: project at pgrouting.org
+
+Copyright (c) 2016 Celia Virginia Vergara Castillo
+mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+CREATE OR REPLACE FUNCTION pgr_TSP(
+    matrix_row_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '${MODULE_PATHNAME}', 'newTSP'
+LANGUAGE c VOLATILE STRICT;
+
diff --git a/sql/tsp/eucledianTSP.sql b/sql/tsp/eucledianTSP.sql
new file mode 100644
index 0000000..a06b475
--- /dev/null
+++ b/sql/tsp/eucledianTSP.sql
@@ -0,0 +1,51 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2016 pgRouting developers
+Mail: project at pgrouting.org
+
+Copyright (c) 2016 Celia Virginia Vergara Castillo
+mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+CREATE OR REPLACE FUNCTION pgr_eucledianTSP(
+    coordinates_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '${MODULE_PATHNAME}', 'eucledianTSP'
+LANGUAGE c VOLATILE STRICT;
+
+
diff --git a/sql/tsp/routing_tsp_wrappers.sql b/sql/tsp/routing_tsp_wrappers.sql
new file mode 100644
index 0000000..42b19d0
--- /dev/null
+++ b/sql/tsp/routing_tsp_wrappers.sql
@@ -0,0 +1,63 @@
+/*PGR-MIT*****************************************************************
+
+--
+-- Copyright (c) 2013 Stephen Woodbridge
+--
+-- This files is released under an MIT-X license.
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+MIT/X license
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+********************************************************************PGR-MIT*/
+
+
+
+create or replace function _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+  as
+$body$
+declare
+    sql text;
+    r record;
+
+begin
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    sql := 'with nodes as (' || sqlin || ')
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j, st_distance(st_makepoint(a.x, a.y), st_makepoint(b.x, b.y)) as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i';
+
+    for r in execute sql loop
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+
+end;
+$body$
+language plpgsql stable cost 10;
+
diff --git a/src/tsp/sql/tsp_v2.0_coordinates.sql b/sql/tsp/tsp_v2.0_coordinates.sql
similarity index 100%
rename from src/tsp/sql/tsp_v2.0_coordinates.sql
rename to sql/tsp/tsp_v2.0_coordinates.sql
diff --git a/sql/tsp/tsp_v2.0_matrix.sql b/sql/tsp/tsp_v2.0_matrix.sql
new file mode 100644
index 0000000..15dbccc
--- /dev/null
+++ b/sql/tsp/tsp_v2.0_matrix.sql
@@ -0,0 +1,95 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2016 pgRouting developers
+Mail: project at pgrouting.org
+
+Copyright (c) 2016 Celia Virginia Vergara Castillo
+mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+CREATE OR REPLACE FUNCTION _pgr_unnest_matrix(matrix float8[][], OUT start_vid integer, OUT end_vid integer, out agg_cost float8)
+RETURNS SETOF record AS
+
+$body$
+DECLARE
+
+m float8[];
+
+BEGIN
+    start_vid = 1;
+    foreach m slice 1 in  ARRAY matrix
+    LOOP
+        end_vid = 1;
+        foreach agg_cost in  ARRAY m
+        LOOP
+            RETURN next;
+            end_vid = end_vid + 1;
+        END LOOP;
+        start_vid = start_vid + 1;
+    END LOOP;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_tsp(
+    matrix float8[][],
+    startpt INTEGER,
+    endpt INTEGER DEFAULT -1,
+    OUT seq INTEGER,
+    OUT id INTEGER)
+RETURNS SETOF record AS
+$body$
+DECLARE
+table_sql TEXT;
+debuglevel TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature pgr_tsp(float8[][], integer, integer)';
+
+    CREATE TEMP TABLE ___tmp2 ON COMMIT DROP AS SELECT * FROM _pgr_unnest_matrix( matrix );
+
+
+    startpt := startpt + 1;
+    IF endpt = -1 THEN endpt := startpt;
+    END IF;
+
+
+    RETURN QUERY
+    WITH
+    result AS (
+        SELECT * FROM pgr_TSP(
+        $$SELECT * FROM ___tmp2 $$,
+        startpt, endpt,
+
+        tries_per_temperature :=  500 :: INTEGER,
+        max_changes_per_temperature := 30 :: INTEGER,
+        max_consecutive_non_changes := 500 :: INTEGER,
+
+        randomize:=false)
+    )
+    SELECT (row_number() over(ORDER BY result.seq) - 1)::INTEGER AS seq, (result.node - 1)::INTEGER AS id
+
+    FROM result WHERE NOT(result.node = startpt AND result.seq != 1);
+
+    DROP TABLE ___tmp2;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
diff --git a/sql/vrp_basic/CMakeLists.txt b/sql/vrp_basic/CMakeLists.txt
new file mode 100644
index 0000000..16bf118
--- /dev/null
+++ b/sql/vrp_basic/CMakeLists.txt
@@ -0,0 +1,13 @@
+
+SET(LOCAL_FILES
+    #routing_vrp.sql
+    _pgr_vrpOneDepot.sql
+    pgr_vrpOneDepot.sql
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} ${f})
+    list(APPEND PACKAGE_SQL_FILES  ${CMAKE_CURRENT_BINARY_DIR}/${f})
+endforeach()
+
+set(PgRouting_SQL_FILES ${PgRouting_SQL_FILES} ${PACKAGE_SQL_FILES} PARENT_SCOPE)
diff --git a/sql/vrp_basic/_pgr_vrpOneDepot.sql b/sql/vrp_basic/_pgr_vrpOneDepot.sql
new file mode 100644
index 0000000..358fe2f
--- /dev/null
+++ b/sql/vrp_basic/_pgr_vrpOneDepot.sql
@@ -0,0 +1,101 @@
+/*PGR-GNU*****************************************************************
+File: _pgr_vrpOneDepot.sql
+
+Generated with Template by:
+Copyright (c) 2017 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+Mail:
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+
+CREATE OR REPLACE FUNCTION _pgr_vrpOneDepot(
+    TEXT, -- customers_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_sql
+    INTEGER, -- depot_id
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+orders_sql TEXT;
+trucks_sql TEXT;
+matrix_sql TEXT;
+final_sql TEXT;
+BEGIN
+
+    orders_sql = $$WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    pickups AS (
+        SELECT id, x AS p_x, y AS p_y, open_time AS p_open, close_time AS p_close, service_time AS p_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vrp_orders.id AS id, order_unit AS demand, pickups.id AS p_node_id, p_x, p_y, p_open, p_close, p_service,
+    vrp_orders.id AS d_node_id, x AS d_x, y AS d_y, open_time AS d_open, close_time AS d_close, service_time AS d_service
+    FROM vrp_orders, pickups
+    WHERE vrp_orders.id != $$ || $4;
+
+
+    trucks_sql = $$ WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    vrp_vehicles AS ($$ || $2 || $$ ),
+    starts AS (
+        SELECT id AS start_node_id, x AS start_x, y AS start_y, open_time AS start_open, close_time AS start_close, service_time AS start_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vehicle_id AS id, capacity, starts.* FROM vrp_vehicles, starts;
+    $$;
+
+    final_sql = '
+    SELECT * FROM _pgr_pickDeliver(
+            $$' || orders_sql || '$$,
+            $$' || trucks_sql || '$$,
+            $$' || $3 || '$$,
+            max_cycles := 2,
+            initial_sol := 4 ); ';
+
+    RAISE DEBUG '%', orders_sql;
+    RAISE DEBUG '%', trucks_sql;
+    RAISE DEBUG '%', $3;
+    RAISE DEBUG '%', final_sql;
+
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
diff --git a/sql/vrp_basic/pgr_vrpOneDepot.sql b/sql/vrp_basic/pgr_vrpOneDepot.sql
new file mode 100644
index 0000000..d787be3
--- /dev/null
+++ b/sql/vrp_basic/pgr_vrpOneDepot.sql
@@ -0,0 +1,56 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+-----------------------------------------------------------------------
+-- Core function for vrp with sigle depot computation
+-- See README for description
+-----------------------------------------------------------------------
+--
+--
+
+create or replace function pgr_vrpOneDepot(
+	order_sql text,
+	vehicle_sql text,
+	cost_sql text,
+	depot_id integer,
+
+	OUT oid integer,
+	OUT opos integer,
+	OUT vid integer,
+	OUT tarrival integer,
+	OUT tdepart integer)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT order_id::INTEGER, stop_seq::INTEGER, vehicle_id::INTEGER, arrival_time::INTEGER, departure_time::INTEGER
+    FROM _pgr_vrpOneDepot($1, $2,
+       '
+            SELECT src_id AS start_vid, dest_id AS end_vid, traveltime AS agg_cost FROM ('||$3||') AS a
+       ',
+        $4
+    ) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
diff --git a/sql/vrp_basic/routing_vrp.sql b/sql/vrp_basic/routing_vrp.sql
new file mode 100644
index 0000000..125ab12
--- /dev/null
+++ b/sql/vrp_basic/routing_vrp.sql
@@ -0,0 +1,45 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+-----------------------------------------------------------------------
+-- Core function for vrp with sigle depot computation
+-- See README for description
+-----------------------------------------------------------------------
+--
+--
+
+create or replace function pgr_vrpOneDepot(
+	order_sql text,
+	vehicle_sql text,
+	cost_sql text,
+	depot_id integer,
+
+	OUT oid integer,
+	OUT opos integer,
+	OUT vid integer,
+	OUT tarrival integer,
+	OUT tdepart integer)
+returns setof record as
+'${MODULE_PATHNAME}', 'vrp'
+LANGUAGE c VOLATILE STRICT;
+
+
diff --git a/sql/vrppdtw/CMakeLists.txt b/sql/vrppdtw/CMakeLists.txt
new file mode 100644
index 0000000..33dee5c
--- /dev/null
+++ b/sql/vrppdtw/CMakeLists.txt
@@ -0,0 +1,12 @@
+
+SET(LOCAL_FILES
+    _gsoc_vrppdtw.sql
+    gsoc_vrppdtw.sql
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} ${f})
+    list(APPEND PACKAGE_SQL_FILES  ${CMAKE_CURRENT_BINARY_DIR}/${f})
+endforeach()
+
+set(PgRouting_SQL_FILES ${PgRouting_SQL_FILES} ${PACKAGE_SQL_FILES} PARENT_SCOPE)
diff --git a/sql/vrppdtw/_gsoc_vrppdtw.sql b/sql/vrppdtw/_gsoc_vrppdtw.sql
new file mode 100644
index 0000000..1156534
--- /dev/null
+++ b/sql/vrppdtw/_gsoc_vrppdtw.sql
@@ -0,0 +1,90 @@
+/*PGR-GNU*****************************************************************
+File: reginabook.sql
+
+Generated with Template by:
+Copyright (c) 2017 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+Mail:
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+
+CREATE OR REPLACE FUNCTION _pgr_gsoc_vrppdtw(
+    customers_sql TEXT,
+    max_vehicles INTEGER,
+    capacity FLOAT,
+    speed FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+
+    OUT seq INTEGER,
+    OUT vehicle_id INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT stop_id BIGINT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+    orders_sql TEXT;
+    vehicles_sql TEXT;
+    final_sql TEXT;
+BEGIN
+    orders_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        pickups AS (
+            SELECT id, demand, x as p_x, y as p_y, opentime as p_open, closetime as p_close, servicetime as p_service
+            FROM  customer_data WHERE pindex = 0 AND id != 0
+        ),
+        deliveries AS (
+            SELECT pindex AS id, x as d_x, y as d_y, opentime as d_open, closetime as d_close, servicetime as d_service
+            FROM  customer_data WHERE dindex = 0 AND id != 0
+        )
+        SELECT * FROM pickups JOIN deliveries USING(id) ORDER BY pickups.id
+    $$;
+
+    vehicles_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ )
+        SELECT id, x AS start_x, y AS start_y,
+            opentime AS start_open, closetime AS start_close, $$ ||
+            capacity || $$ AS capacity, $$ || max_vehicles || $$ AS number, $$ || speed || $$ AS speed
+            FROM customer_data WHERE id = 0 LIMIT 1
+        $$;
+--  seq | vehicle_id | vehicle_seq | stop_id | travel_time | arrival_time | wait_time | service_time | departure_time
+    final_sql = $$ WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        p_deliver AS (SELECT * FROM _pgr_pickDeliverEuclidean('$$ || orders_sql || $$',  '$$ || vehicles_sql || $$',  1, $$ || max_cycles || $$ )),
+        picks AS (SELECT p_deliver.*, pindex, dindex, id AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 2)),
+        delivers AS (SELECT p_deliver.*, pindex, dindex, dindex AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 3)),
+        depots AS (SELECT p_deliver.*, 0 as pindex, 0 as dindex, 0 AS the_id FROM p_deliver WHERE (stop_type IN (-1,1,6))),
+        the_union AS (SELECT * FROM picks UNION SELECT * FROM delivers UNION SELECT * from depots)
+
+        SELECT (row_number() over(ORDER BY a.seq))::INTEGER, vehicle_seq, a.stop_seq, the_id::BIGINT, a.travel_time, a.arrival_time, a.wait_time, a.service_time, a.departure_time
+        FROM (SELECT * FROM the_union) AS a ORDER BY a.seq
+        $$;
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
diff --git a/sql/vrppdtw/gsoc_vrppdtw.sql b/sql/vrppdtw/gsoc_vrppdtw.sql
new file mode 100644
index 0000000..2f1487c
--- /dev/null
+++ b/sql/vrppdtw/gsoc_vrppdtw.sql
@@ -0,0 +1,19 @@
+CREATE OR REPLACE FUNCTION pgr_gsoc_vrppdtw(
+    sql text,
+    vehicle_num INTEGER,
+    capacity INTEGER
+)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+customers_sql TEXT;
+BEGIN
+    RETURN query
+         SELECT a.seq, vehicle_id::INTEGER AS id1, stop_id::INTEGER AS id2, departure_time AS cost
+        FROM _pgr_gsoc_vrppdtw($1, $2, $3, 1, 30) AS a WHERE vehicle_id NOT IN (-2);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
diff --git a/sql/withPoints/CMakeLists.txt b/sql/withPoints/CMakeLists.txt
new file mode 100644
index 0000000..8f3adab
--- /dev/null
+++ b/sql/withPoints/CMakeLists.txt
@@ -0,0 +1,14 @@
+
+SET(LOCAL_FILES
+    _withPoints.sql
+    withPoints.sql
+    withPointsCost.sql
+    withPointsVia.sql
+    )
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} ${f})
+    list(APPEND PACKAGE_SQL_FILES  ${CMAKE_CURRENT_BINARY_DIR}/${f})
+endforeach()
+
+set(PgRouting_SQL_FILES ${PgRouting_SQL_FILES} ${PACKAGE_SQL_FILES} PARENT_SCOPE)
diff --git a/sql/withPoints/_withPoints.sql b/sql/withPoints/_withPoints.sql
new file mode 100644
index 0000000..484d83e
--- /dev/null
+++ b/sql/withPoints/_withPoints.sql
@@ -0,0 +1,54 @@
+/*PGR-GNU*****************************************************************
+File: withPoints.sql
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail:
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+CREATE OR REPLACE FUNCTION _pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN,
+    driving_side CHAR,
+    details BOOLEAN,
+
+    only_cost BOOLEAN DEFAULT false, -- gets path
+    normal BOOLEAN DEFAULT true, -- false for many to onu
+
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'${MODULE_PATHNAME}', 'withPoints'
+LANGUAGE c VOLATILE;
+
diff --git a/sql/withPoints/withPoints.sql b/sql/withPoints/withPoints.sql
new file mode 100644
index 0000000..59422ca
--- /dev/null
+++ b/sql/withPoints/withPoints.sql
@@ -0,0 +1,141 @@
+/*PGR-GNU*****************************************************************
+File: withPoints.sql
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail:
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+/*
+ONE TO ONE
+*/
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], ARRAY[$4]::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+/*
+ONE TO MANY
+*/
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+/*
+MANY TO ONE
+*/
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], ARRAY[$4]::bigint[], $5, $6, $7, FALSE, FALSE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+/*
+MANY TO MANY
+*/
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
diff --git a/sql/withPoints/withPointsCost.sql b/sql/withPoints/withPointsCost.sql
new file mode 100644
index 0000000..6220418
--- /dev/null
+++ b/sql/withPoints/withPointsCost.sql
@@ -0,0 +1,124 @@
+/*PGR-GNU*****************************************************************
+File: withPointsCost.sql
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail:
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+/*
+ONE TO ONE
+*/
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+/*
+ONE TO MANY
+*/
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], $4::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+/*
+MANY TO ONE
+*/
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+/*
+MANY TO MANY
+*/
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], $4::BIGINT[], $5,  $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
diff --git a/sql/withPoints/withPointsVia.sql b/sql/withPoints/withPointsVia.sql
new file mode 100644
index 0000000..e5d723a
--- /dev/null
+++ b/sql/withPoints/withPointsVia.sql
@@ -0,0 +1,165 @@
+/*PGR-GNU*****************************************************************
+
+Template:
+Copyright (c) 2015 pgRouting developers
+
+Function developer:
+Copyright (c) 2015 Vicky Vergara
+vicky_vergara at hotmail.com
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+
+
+CREATE OR REPLACE FUNCTION  _pgr_withPointsVia(
+    sql text,
+    via_edges bigint[],
+    fraction float[],
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  has_rcost boolean;
+  sql_new_vertices text := ' ';
+  sql_on_vertex text;
+  v_union text := ' ';
+  dummyrec record;
+  rec1 record;
+  via_vertices int[];
+  sql_safe text;
+  new_edges text;
+  BEGIN
+     BEGIN
+        sql_safe = 'SELECT id, source, target, cost, reverse_cost FROM ('|| sql || ') AS __a';
+
+        EXECUTE 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||sql_safe||' ) AS __b__ limit 1 ' INTO rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+     END;
+
+
+      IF array_length(via_edges, 1) != array_length(fraction, 1) then
+        RAISE EXCEPTION 'The length of via_edges is different of length of via_edges';
+      END IF;
+
+      FOR i IN 1 .. array_length(via_edges, 1)
+      LOOP
+          IF fraction[i] = 0 THEN
+              sql_on_vertex := 'SELECT source FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.source;
+          ELSE IF fraction[i] = 1 THEN
+              sql_on_vertex := 'SELECT target FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.target;
+          ELSE
+              via_vertices[i] = -i;
+              IF has_rcost THEN
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost,
+                              reverse_cost * (1 - ' || fraction[i] || ')  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost,
+                              reverse_cost *  ' || fraction[i] || '  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' where id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               ELSE
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               END IF;
+          END IF;
+          END IF;
+     END LOOP;
+
+     IF sql_new_vertices = ' ' THEN
+         new_edges := sql;
+     ELSE
+         IF has_rcost THEN
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost,
+                         lead(cost) OVER w  - cost AS reverse_cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL),
+                   second_part AS ( SELECT * FROM (SELECT id, lead(source) OVER w  AS source, source as target,
+                         reverse_cost - lead(reverse_cost) OVER w  AS cost,
+                         reverse_cost - lead(reverse_cost) OVER w  AS reverse_cost
+                      FROM  the_union  WHERE target > 0 and reverse_cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY reverse_cost ASC) ) as n2
+                      WHERE source IS NOT NULL),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part)
+                             UNION
+                       (SELECT * FROM second_part) ) _union )
+                  SELECT *  FROM more_union';
+         ELSE
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL ),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part) ) _union )
+                  SELECT *  FROM more_union';
+          END IF;
+      END IF;
+
+ -- raise notice '%', new_edges;
+     sql_new_vertices := sql_new_vertices || v_union || ' (' || sql || ')';
+     RETURN query SELECT *
+         FROM pgr_dijkstraVia(new_edges, via_vertices, directed, has_rcost);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
diff --git a/src/allpairs/doc/pgr_floydWarshall.rst b/src/allpairs/doc/pgr_floydWarshall.rst
deleted file mode 100644
index 2271446..0000000
--- a/src/allpairs/doc/pgr_floydWarshall.rst
+++ /dev/null
@@ -1,162 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_floydWarshall:
-
-pgr_floydWarshall
-===============================================================================
-
-Synopsis
--------------------------------------------------------------------------------
-
-``pgr_floydWarshall`` - Returns the sum of the costs of the shortest path for each
-pair of nodes in the graph using Floyd-Warshall algorithm.
-
-.. figure:: images/boost-inside.jpeg
-   :target: http://www.boost.org/libs/graph/doc/floyd_warshall_shortest.html
-
-   Boost Graph Inside
-
-.. rubric:: Availability: 2.0.0
-
-* Renamed on 2.2.0, previous name pgr_apspWarshall
-
-
-The Floyd-Warshall algorithm, also known as Floyd's algorithm,
-is a good choice to calculate the sum of the costs of the shortest path for each
-pair of nodes in the graph, for *dense graphs*. We make use of the  Boost's
-implementation which runs in :math:`\Theta(V^3)` time,
-
-
-Characteristics
-----------------
-
-The main Characteristics are:
-  - It does not return a path.
-  - Returns the sum of the costs of the shortest path for each pair of nodes in the graph.
-  - Process is done only on edges with positive costs.
-  - Boost returns a :math:`V \times V` matrix, where the infinity values.
-    Represent the distance between vertices for which there is no path.
-
-    - We return only the non infinity values in form of a set of `(start_vid, end_vid, agg_cost)`.
-
-  - Let be the case the values returned are stored in a table, so the unique index would be the pair:
-    `(start_vid, end_vid)`.
-
-  - For the undirected graph, the results are symmetric.
-
-    - The  `agg_cost` of `(u, v)` is the same as for `(v, u)`.
-
-  - When  `start_vid` = `end_vid`, the `agg_cost` = 0.
-
-  - **Recommended, use a bounding box of no more than 3500 edges.**
-
-Signature Summary
---------------------------------------------
-
-.. code-block:: none
-
-    pgr_floydWarshall(edges_sql)
-    pgr floydWarshall(edges_sql, directed)
-    RETURNS SET OF (start_vid, end_vid,  agg_cost) or EMPTY SET
-
-Signatures
---------------------------------------------
-
-
-.. index::
-    single: floydWarshall(Minimal Signature)
-
-Minimal Signature
-...................
-
-.. code-block:: none
-
-    pgr_floydWarshall(edges_sql)
-    RETURNS SET OF (start_vid, end_vid,  agg_cost) or EMPTY SET
-
-:Example 1: On a directed graph.
-
-.. literalinclude:: doc-floydWarshall.queries
-   :start-after: -- q1
-   :end-before: -- q2
-
-
-.. index::
-    single: floydWarshall(Complete Signature)
-
-Complete Signature
-...................
-
-.. code-block:: none
-
-    pgr_floydWarshall(edges_sql, directed)
-    RETURNS SET OF (start_vid, end_vid,  agg_cost) or EMPTY SET
-
-
-:Example 2: On an undirected graph.
-
-.. literalinclude:: doc-floydWarshall.queries
-   :start-after: -- q2
-   :end-before: -- q3
-
-Description of the Signatures
-------------------------------
-
-.. include:: pgRouting-concepts.rst
-    :start-after: no_id_edges_sql_start
-    :end-before: no_id_edges_sql_end
-
-
-Description of the parameters of the signatures
-................................................
-
-Receives  ``(edges_sql, directed)``
-
-============= ============= =================================================
-Parameter     Type          Description
-============= ============= =================================================
-**edges_sql** ``TEXT``      SQL query as described above.
-**directed**  ``BOOLEAN``   (optional) Default is true (is directed). When set to false the graph is considered as Undirected
-============= ============= =================================================
-
-
-Description of the return values
-..................................
-
-Returns set of ``(start_vid, end_vid, agg_cost)``
-
-============= ============= =================================================
-Column        Type          Description
-============= ============= =================================================
-**start_vid** ``BIGINT``    Identifier of the starting vertex.
-**end_vid**   ``BIGINT``    Identifier of the ending vertex.
-**agg_cost**  ``FLOAT``     Total cost from ``start_vid`` to ``end_vid``.
-============= ============= =================================================
-
-
-
-
-
-.. rubric:: History
-
-* Re-design of pgr_apspWarshall in Version 2.2.0
-
-See Also
--------------------------------------------------------------------------------
-
-* :ref:`pgr_johnson`
-* `Boost floyd-Warshall <http://www.boost.org/libs/graph/doc/floyd_warshall_shortest.html>`_ algorithm
-* Queries uses the :ref:`sampledata` network.
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
-
diff --git a/src/allpairs/doc/pgr_johnson.rst b/src/allpairs/doc/pgr_johnson.rst
deleted file mode 100644
index 4a81289..0000000
--- a/src/allpairs/doc/pgr_johnson.rst
+++ /dev/null
@@ -1,161 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_johnson:
-
-pgr_johnson
-===============================================================================
-
-Synopsis
--------------------------------------------------------------------------------
-
-``pgr_johnson`` - Returns the sum of the costs of the shortest path for each
-pair of nodes in the graph using Floyd-Warshall algorithm.
-
-.. figure:: images/boost-inside.jpeg
-   :target: http://www.boost.org/libs/graph/doc/johnson_all_pairs_shortest.html
-
-   Boost Graph Inside
-
-.. rubric:: Availability: 2.0.0
-
-* Renamed on 2.2.0, previous name pgr_apspJohnson
-
-
-The Johnson algorithm, is a good choice to calculate the sum of the costs
-of the shortest path for each pair of nodes in the graph, for *sparse graphs*.
-It usees the Boost's implementation which runs in :math:`O(V E \log V)` time,
-
-
-Characteristics
-----------------
-
-The main Characteristics are:
-  - It does not return a path.
-  - Returns the sum of the costs of the shortest path for each pair of nodes in the graph.
-  - Process is done only on edges with positive costs.
-  - Boost returns a :math:`V \times V` matrix, where the infinity values.
-    Represent the distance between vertices for which there is no path.
-
-    - We return only the non infinity values in form of a set of `(start_vid, end_vid, agg_cost)`.
-
-  - Let be the case the values returned are stored in a table, so the unique index would be the pair:
-    `(start_vid, end_vid)`.
-
-  - For the undirected graph, the results are symmetric.
-
-    - The  `agg_cost` of `(u, v)` is the same as for `(v, u)`.
-
-  - When  `start_vid` = `end_vid`, the `agg_cost` = 0.
-
-
-
-Signature Summary
---------------------------------------------
-
-.. code-block:: none
-
-    pgr_johnson(edges_sql)
-    pgr johnson(edges_sql, directed)
-    RETURNS SET OF (start_vid, end_vid,  agg_cost) or EMPTY SET
-
-Signatures
---------------------------------------------
-
-
-.. index::
-    single: johnson(Minimal Signature)
-
-Minimal Signature
-...................
-
-.. code-block:: none
-
-    pgr_johnson(edges_sql)
-    RETURNS SET OF (start_vid, end_vid,  agg_cost) or EMPTY SET
-
-:Example 1: On a directed graph.
-
-.. literalinclude:: doc-johnson.queries
-   :start-after: -- q1
-   :end-before: -- q2
-
-
-.. index::
-    single: johnson(Complete Signature)
-
-Complete Signature
-...................
-
-.. code-block:: none
-
-    pgr_johnson(edges_sql, directed)
-    RETURNS SET OF (start_vid, end_vid,  agg_cost) or EMPTY SET
-
-
-:Example 2: On an undirected graph.
-
-.. literalinclude:: doc-johnson.queries
-   :start-after: -- q2
-   :end-before: -- q3
-
-Description of the Signatures
-------------------------------
-
-.. include:: pgRouting-concepts.rst
-    :start-after: no_id_edges_sql_start
-    :end-before: no_id_edges_sql_end
-
-
-Description of the parameters of the signatures
-................................................
-
-Receives  ``(edges_sql, directed)``
-
-============= ============= =================================================
-Parameter     Type          Description
-============= ============= =================================================
-**edges_sql** ``TEXT``      SQL query as described above.
-**directed**  ``BOOLEAN``   (optional) Default is true (is directed). When set to false the graph is considered as Undirected
-============= ============= =================================================
-
-
-Description of the return values
-..................................
-
-Returns set of ``(start_vid, end_vid, agg_cost)``
-
-============= ============= =================================================
-Column        Type          Description
-============= ============= =================================================
-**start_vid** ``BIGINT``    Identifier of the starting vertex.
-**end_vid**   ``BIGINT``    Identifier of the ending vertex.
-**agg_cost**  ``FLOAT``     Total cost from ``start_vid`` to ``end_vid``.
-============= ============= =================================================
-
-
-
-
-
-.. rubric:: History
-
-* Re-design of pgr_apspJohnson in Version 2.2.0
-
-See Also
--------------------------------------------------------------------------------
-
-* :ref:`pgr_floydWarshall`
-* `Boost Johnson <http://www.boost.org/libs/graph/doc/johnson_all_pairs_shortest.html>`_ algorithm implementation.
-* Queries uses the :ref:`sampledata` network.
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
-
diff --git a/src/allpairs/sql/CMakeLists.txt b/src/allpairs/sql/CMakeLists.txt
deleted file mode 100644
index 1ef45d9..0000000
--- a/src/allpairs/sql/CMakeLists.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-# Append in local scope
-LIST(APPEND PACKAGE_SQL_FILES
-    ${CMAKE_CURRENT_SOURCE_DIR}/johnson.sql
-    ${CMAKE_CURRENT_SOURCE_DIR}/floydWarshall.sql
-    )
-
-# set in parent scope
-SET(PACKAGE_SQL_FILES "${PACKAGE_SQL_FILES}" PARENT_SCOPE)
diff --git a/src/allpairs/sql/floydWarshall.sql b/src/allpairs/sql/floydWarshall.sql
deleted file mode 100644
index 169ea46..0000000
--- a/src/allpairs/sql/floydWarshall.sql
+++ /dev/null
@@ -1,36 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-File: floydWarshall.sql
-
-Template:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function developer:
-Copyright (c) 2013 Vicky Vergara
-vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-CREATE OR REPLACE FUNCTION pgr_floydWarshall(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE, 
-  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
-  RETURNS SETOF RECORD AS
- '$libdir/${PGROUTING_LIBRARY_NAME}', 'floydWarshall'  
-    LANGUAGE c IMMUTABLE STRICT;
-
diff --git a/src/allpairs/sql/johnson.sql b/src/allpairs/sql/johnson.sql
deleted file mode 100644
index 819980e..0000000
--- a/src/allpairs/sql/johnson.sql
+++ /dev/null
@@ -1,36 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-File: johnson.sql
-
-Template:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function developer:
-Copyright (c) 2013 Vicky Vergara
-vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-CREATE OR REPLACE FUNCTION pgr_johnson(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
-  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
-  RETURNS SETOF RECORD AS
- '$libdir/${PGROUTING_LIBRARY_NAME}', 'johnson'
-    LANGUAGE c IMMUTABLE STRICT;
-
diff --git a/src/allpairs/src/floydWarshall.c b/src/allpairs/src/floydWarshall.c
index bc80773..0267a7f 100644
--- a/src/allpairs/src/floydWarshall.c
+++ b/src/allpairs/src/floydWarshall.c
@@ -27,15 +27,14 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#include "./../../common/src/postgres_connection.h"
+#include "c_common/postgres_connection.h"
 
 
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/edges_input.h"
+#include "c_common/debug_macro.h"
+#include "c_common/time_msg.h"
+#include "c_common/edges_input.h"
 
-#include "./floydWarshall_driver.h"
+#include "drivers/allpairs/floydWarshall_driver.h"
 
 PGDLLEXPORT Datum floydWarshall(PG_FUNCTION_ARGS);
 PG_FUNCTION_INFO_V1(floydWarshall);
diff --git a/src/allpairs/src/floydWarshall_driver.cpp b/src/allpairs/src/floydWarshall_driver.cpp
index 542725d..d498c4b 100644
--- a/src/allpairs/src/floydWarshall_driver.cpp
+++ b/src/allpairs/src/floydWarshall_driver.cpp
@@ -27,16 +27,15 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#include "./floydWarshall_driver.h"
+#include "drivers/allpairs/floydWarshall_driver.h"
 
 #include <sstream>
 #include <deque>
 #include <vector>
 
-#include "./pgr_allpairs.hpp"
+#include "allpairs/pgr_allpairs.hpp"
 
-#include "./../../common/src/pgr_assert.h"
-#include "./../../common/src/pgr_types.h"
+#include "cpp_common/pgr_assert.h"
 
 
 void
diff --git a/src/allpairs/src/floydWarshall_driver.h b/src/allpairs/src/floydWarshall_driver.h
deleted file mode 100644
index fe2a90d..0000000
--- a/src/allpairs/src/floydWarshall_driver.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: floydWarshall_driver.h
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer: 
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifndef SRC_ALLPAIRS_SRC_FLOYDWARSHALL_DRIVER_H_
-#define SRC_ALLPAIRS_SRC_FLOYDWARSHALL_DRIVER_H_
-#pragma once
-
-#include "./../../common/src/pgr_types.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void
-do_pgr_floydWarshall(
-    pgr_edge_t  *data_edges,
-    size_t total_tuples,
-    bool directedFlag,
-
-    // return values
-    Matrix_cell_t **ret_matrix,
-    size_t *return_tuple_count,
-    char ** log_msg,
-    char ** err_msg);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif  // SRC_ALLPAIRS_SRC_FLOYDWARSHALL_DRIVER_H_
diff --git a/src/allpairs/src/johnson.c b/src/allpairs/src/johnson.c
index f252b41..f7dfae2 100644
--- a/src/allpairs/src/johnson.c
+++ b/src/allpairs/src/johnson.c
@@ -27,14 +27,13 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#include "./../../common/src/postgres_connection.h"
+#include "c_common/postgres_connection.h"
 
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/edges_input.h"
+#include "c_common/debug_macro.h"
+#include "c_common/time_msg.h"
+#include "c_common/edges_input.h"
 
-#include "./johnson_driver.h"
+#include "drivers/allpairs/johnson_driver.h"
 
 PGDLLEXPORT Datum johnson(PG_FUNCTION_ARGS);
 
diff --git a/src/allpairs/src/johnson_driver.cpp b/src/allpairs/src/johnson_driver.cpp
index b2a014a..15d3352 100644
--- a/src/allpairs/src/johnson_driver.cpp
+++ b/src/allpairs/src/johnson_driver.cpp
@@ -27,15 +27,14 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#include "./johnson_driver.h"
+#include "drivers/allpairs/johnson_driver.h"
 
 #include <sstream>
 #include <deque>
 #include <vector>
 
-#include "./pgr_allpairs.hpp"
+#include "allpairs/pgr_allpairs.hpp"
 
-#include "./../../common/src/pgr_types.h"
 
 // CREATE OR REPLACE FUNCTION pgr_johnson(edges_sql TEXT, directed BOOLEAN,
 void
diff --git a/src/allpairs/src/johnson_driver.h b/src/allpairs/src/johnson_driver.h
deleted file mode 100644
index 350d561..0000000
--- a/src/allpairs/src/johnson_driver.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: johnson_driver.h
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer: 
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-#ifndef SRC_ALLPAIRS_SRC_JOHNSON_DRIVER_H_
-#define SRC_ALLPAIRS_SRC_JOHNSON_DRIVER_H_
-
-#pragma once
-
-#include "./../../common/src/pgr_types.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-//  CREATE OR REPLACE FUNCTION pgr_johnson(edges_sql TEXT, directed BOOLEAN,
-void
-do_pgr_johnson(
-        pgr_edge_t  *data_edges,
-        size_t total_tuples,
-        bool directed,
-        Matrix_cell_t **return_tuples,
-        size_t *return_count,
-        char ** err_msg);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif  // SRC_ALLPAIRS_SRC_JOHNSON_DRIVER_H_
diff --git a/src/allpairs/src/pgr_allpairs.hpp b/src/allpairs/src/pgr_allpairs.hpp
deleted file mode 100644
index ce43547..0000000
--- a/src/allpairs/src/pgr_allpairs.hpp
+++ /dev/null
@@ -1,317 +0,0 @@
-/*PGR-GNU*****************************************************************
-File:  pgr_allpairs.hpp
-
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-// http://www.cs.rpi.edu/~musser/archive/2005/gsd/restricted/FloydWarshall/FloydWarshall.pdf
-
-#ifndef SRC_ALLPAIRS_SRC_PGR_ALLPAIRS_HPP_
-#define SRC_ALLPAIRS_SRC_PGR_ALLPAIRS_HPP_
-#pragma once
-
-
-#include <boost/config.hpp>
-#include <boost/graph/adjacency_list.hpp>
-#include <boost/property_map/property_map.hpp>
-#include <boost/graph/johnson_all_pairs_shortest.hpp>
-#include <boost/graph/floyd_warshall_shortest.hpp>
-
-
-#include <deque>
-#include <vector>
-#include <set>
-#include <limits>
-
-
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/basePath_SSEC.hpp"
-#include "./../../common/src/pgr_base_graph.hpp"
-
-// TODO(vicky) don't keep it here
-#include "../../common/src/pgr_alloc.hpp"
-
-template < class G > class Pgr_allpairs;
-
-// user's functions
-template < class G >
-void
-pgr_johnson(G &graph, std::vector< Matrix_cell_t> &rows) {
-    Pgr_allpairs< G > fn_johnson;
-    fn_johnson.johnson(graph, rows);
-}
-
-template < class G >
-void
-pgr_floydWarshall(G &graph, std::vector< Matrix_cell_t> &rows) {
-    Pgr_allpairs< G > fn_floydWarshall;
-    fn_floydWarshall.floydWarshall(graph, rows);
-}
-
-// for postgres
-template < class G >
-void
-pgr_johnson(
-        G &graph,
-        size_t &result_tuple_count,
-        Matrix_cell_t **postgres_rows) {
-    Pgr_allpairs< G > fn_johnson;
-    fn_johnson.johnson(graph, result_tuple_count, postgres_rows);
-}
-
-
-template < class G >
-void
-pgr_floydWarshall(
-        G &graph,
-        size_t &result_tuple_count,
-        Matrix_cell_t **postgres_rows) {
-    Pgr_allpairs< G > fn_floydWarshall;
-    fn_floydWarshall.floydWarshall(graph, result_tuple_count, postgres_rows);
-}
-
-
-// template class
-template < class G >
-class Pgr_allpairs {
-    // default constructors and destructors
-    /*
-       Matrix_cell_t description:
-       int64_t from_vid;
-       int64_t to_vid;
-       float8 cost;
-       */
- public:
-     void floydWarshall(
-             G &graph,
-             size_t &result_tuple_count,
-             Matrix_cell_t **postgres_rows);
-
-
-     void floydWarshall(
-             G &graph,
-             std::vector< Matrix_cell_t> &rows);
-
-     void johnson(
-             G &graph,
-             size_t &result_tuple_count,
-             Matrix_cell_t **postgres_rows);
-
-
-     void johnson(
-             G &graph,
-             std::vector< Matrix_cell_t> &rows);
-
- private:
-     void make_matrix(
-             size_t v_size,
-             std::vector< std::vector<double>> &matrix) const;
-
-     void make_result(
-             const G &graph,
-             const std::vector< std::vector<double> > &matrix,
-             size_t &result_tuple_count,
-             Matrix_cell_t **postgres_rows) const;
-
-     size_t count_rows(
-             const G &graph,
-             const std::vector< std::vector<double> > &matrix) const;
-
-     void make_result(
-             G &graph,
-             std::vector< std::vector<double> > &matrix,
-             std::vector< Matrix_cell_t> &rows);
-
-     template <typename T>
-         struct inf_plus {
-             T operator()(const T& a, const T& b) const {
-                 T inf = (std::numeric_limits<T>::max)();
-                 if (a == inf || b == inf)
-                     return inf;
-                 return a + b;
-             }
-         };
-};
-
-/*
- * PUBLIC FUNCTIONS
- */
-
-template < class G >
-void Pgr_allpairs< G >::floydWarshall(
-        G &graph,
-        size_t &result_tuple_count,
-        Matrix_cell_t **postgres_rows) {
-    std::vector< std::vector<double>> matrix;
-    make_matrix(graph.num_vertices(), matrix);
-    inf_plus<double> combine;
-    boost::floyd_warshall_all_pairs_shortest_paths(
-            graph.graph,
-            matrix,
-            weight_map(get(&pgrouting::Basic_edge::cost, graph.graph)).
-            distance_combine(combine).
-            distance_inf((std::numeric_limits<double>::max)()).
-            distance_zero(0));
-
-    make_result(graph, matrix, result_tuple_count, postgres_rows);
-}
-
-
-template < class G >
-void Pgr_allpairs< G >::floydWarshall(
-        G &graph,
-        std::vector< Matrix_cell_t> &rows) {
-    std::vector< std::vector<double>> matrix;
-    make_matrix(graph.num_vertices(), matrix);
-    inf_plus<double> combine;
-    boost::floyd_warshall_all_pairs_shortest_paths(
-            graph.graph,
-            matrix,
-            weight_map(get(&pgrouting::Basic_edge::cost, graph.graph)).
-            distance_combine(combine).
-            distance_inf((std::numeric_limits<double>::max)()).
-            distance_zero(0));
-
-    make_result(graph, matrix, rows);
-}
-
-template < class G >
-void Pgr_allpairs< G >::johnson(
-        G &graph,
-        size_t &result_tuple_count,
-        Matrix_cell_t **postgres_rows) {
-    std::vector< std::vector<double>> matrix;
-    make_matrix(graph.num_vertices(), matrix);
-    inf_plus<double> combine;
-    boost::johnson_all_pairs_shortest_paths(
-            graph.graph,
-            matrix,
-            weight_map(get(&pgrouting::Basic_edge::cost, graph.graph)).
-            distance_combine(combine).
-            distance_inf((std::numeric_limits<double>::max)()).
-            distance_zero(0));
-
-    make_result(graph, matrix, result_tuple_count, postgres_rows);
-}
-
-
-template < class G >
-void Pgr_allpairs< G >::johnson(
-        G &graph,
-        std::vector< Matrix_cell_t> &rows) {
-    std::vector< std::vector<double>> matrix;
-    make_matrix(graph.num_vertices(), matrix);
-    inf_plus<double> combine;
-    boost::johnson_all_pairs_shortest_paths(
-            graph.graph,
-            matrix,
-            weight_map(get(&pgrouting::Basic_edge::cost, graph.graph)).
-            distance_combine(combine).
-            distance_inf((std::numeric_limits<double>::max)()).
-            distance_zero(0));
-
-    make_result(graph, matrix, rows);
-}
-
-
-
-
-/*
- * PRIVATE FUNCTIONS
- */
-
-template < class G >
-void
-Pgr_allpairs< G >::make_matrix(
-        size_t v_size,
-        std::vector< std::vector<double>> &matrix) const {
-    // TODO(vicky) in one step
-    matrix.resize(v_size);
-    for (size_t i=0; i < v_size; i++)
-        matrix[i].resize(v_size);
-}
-
-template < class G >
-size_t
-Pgr_allpairs< G >::count_rows(
-        const G &graph,
-        const std::vector< std::vector<double> > &matrix) const {
-    size_t result_tuple_count = 0;
-    for (size_t i = 0; i < graph.num_vertices(); i++) {
-        for (size_t j = 0; j < graph.num_vertices(); j++) {
-            if (i == j) continue;
-            if (matrix[i][j] != (std::numeric_limits<double>::max)()) {
-                result_tuple_count++;
-            }  // if
-        }  // for j
-    }  // for i
-    return result_tuple_count;
-}
-
-// TODO(vicky) don't keep it here for postgres
-template < class G >
-void
-Pgr_allpairs< G >::make_result(
-        const G &graph,
-        const std::vector< std::vector<double> > &matrix,
-        size_t &result_tuple_count,
-        Matrix_cell_t **postgres_rows) const {
-    result_tuple_count = count_rows(graph, matrix);
-    *postgres_rows = pgr_alloc(result_tuple_count, (*postgres_rows));
-
-
-    size_t seq = 0;
-    for (typename G::V v_i = 0; v_i < graph.num_vertices(); v_i++) {
-        for (typename G::V v_j = 0; v_j < graph.num_vertices(); v_j++) {
-            if (v_i == v_j) continue;
-            if (matrix[v_i][v_j] != (std::numeric_limits<double>::max)()) {
-                (*postgres_rows)[seq].from_vid = graph[v_i].id;
-                (*postgres_rows)[seq].to_vid = graph[v_j].id;
-                (*postgres_rows)[seq].cost =  matrix[v_i][v_j];
-                seq++;
-            }  // if
-        }  // for j
-    }  // for i
-}
-
-
-template < class G >
-void
-Pgr_allpairs< G >::make_result(
-        G &graph,
-        std::vector< std::vector<double> > &matrix,
-        std::vector< Matrix_cell_t> &rows) {
-    size_t count = count_rows(graph, matrix);
-    rows.resize(count);
-    size_t seq = 0;
-
-    for (typename G::V v_i = 0; v_i < graph.num_vertices(); v_i++) {
-        for (typename G::V v_j = 0; v_j < graph.num_vertices(); v_j++) {
-            if (matrix[v_i][v_j] != (std::numeric_limits<double>::max)()) {
-                rows[seq] =
-                    {graph[v_i].id, graph[v_j].id, matrix[v_i][v_j]};
-                seq++;
-            }  // if
-        }  // for j
-    }  // for i
-}
-
-#endif  // SRC_ALLPAIRS_SRC_PGR_ALLPAIRS_HPP_
diff --git a/src/allpairs/test/doc-floydWarshall.result b/src/allpairs/test/doc-floydWarshall.result
index ea5e596..4d2f2b8 100644
--- a/src/allpairs/test/doc-floydWarshall.result
+++ b/src/allpairs/test/doc-floydWarshall.result
@@ -1,12 +1,33 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 -- q1
-1|2|1
-1|5|2
-2|5|1
+SELECT * FROM pgr_floydWarshall(
+    'SELECT id, source, target, cost FROM edge_table where id < 5'
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         1 |       2 |        1
+         1 |       5 |        2
+         2 |       5 |        1
+(3 rows)
+
 -- q2
-1|2|1
-1|5|2
-2|1|1
-2|5|1
-5|1|2
-5|2|1
+SELECT * FROM pgr_floydWarshall(
+    'SELECT id, source, target, cost FROM edge_table where id < 5',
+    false
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         1 |       2 |        1
+         1 |       5 |        2
+         2 |       1 |        1
+         2 |       5 |        1
+         5 |       1 |        2
+         5 |       2 |        1
+(6 rows)
+
 -- q3
+ROLLBACK;
+ROLLBACK
diff --git a/src/allpairs/test/doc-johnson.result b/src/allpairs/test/doc-johnson.result
index ea5e596..5c9f684 100644
--- a/src/allpairs/test/doc-johnson.result
+++ b/src/allpairs/test/doc-johnson.result
@@ -1,12 +1,35 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 -- q1
-1|2|1
-1|5|2
-2|5|1
+SELECT * FROM pgr_johnson(
+    'SELECT source, target, cost FROM edge_table WHERE id < 5
+         ORDER BY id'
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         1 |       2 |        1
+         1 |       5 |        2
+         2 |       5 |        1
+(3 rows)
+
 -- q2
-1|2|1
-1|5|2
-2|1|1
-2|5|1
-5|1|2
-5|2|1
+SELECT * FROM pgr_johnson(
+    'SELECT source, target, cost FROM edge_table WHERE id < 5
+         ORDER BY id',
+    false
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         1 |       2 |        1
+         1 |       5 |        2
+         2 |       1 |        1
+         2 |       5 |        1
+         5 |       1 |        2
+         5 |       2 |        1
+(6 rows)
+
 -- q3
+ROLLBACK;
+ROLLBACK
diff --git a/src/allpairs/test/pgtap/fw-types-check.sql b/src/allpairs/test/pgtap/fw-types-check.sql
deleted file mode 100644
index 4095bb6..0000000
--- a/src/allpairs/test/pgtap/fw-types-check.sql
+++ /dev/null
@@ -1,85 +0,0 @@
-
-\i setup.sql
-
-
-SELECT plan(10);
-
-PREPARE q1 AS
-SELECT * FROM pgr_floydWarshall(
-    'SELECT id::BIGINT, source::SMALLINT, target::BIGINT, cost::INTEGER, reverse_cost::SMALLINT FROM edge_table'
-);
-
-PREPARE q2 AS
-SELECT * FROM pgr_floydWarshall(
-    'SELECT source, target, cost, reverse_cost FROM edge_table'
-);
-
-PREPARE q3 AS
-SELECT * FROM pgr_floydWarshall(
-    'SELECT source, target, cost, reverse_cost FROM edge_table',
-    false
-);
-
-PREPARE q4 AS
-SELECT * FROM pgr_floydWarshall(
-    'SELECT source, target, cost, reverse_cost FROM edge_table',
-    true
-);
-
-
-SELECT lives_ok('q1', 'edges query accepts ANY-INTEGER & ANY NUMERICAL');
-SELECT lives_ok('q2', 'without id it works');
-SELECT lives_ok('q3', 'directed flag works ok with false');
-SELECT lives_ok('q4', 'directed flag works ok with true');
-
-
-PREPARE q10 AS
-SELECT * FROM pgr_floydWarshall(
-    'SELECT id::FLOAT, source, target, cost, reverse_cost FROM edge_table',
-    true);
-
-PREPARE q11 AS
-SELECT * FROM pgr_floydWarshall(
-    'SELECT id::REAL, source, target, cost, reverse_cost FROM edge_table',
-    true);
-
-SELECT throws_ok('q10', 'XX000', 'Unexpected Column ''id'' type. Expected ANY-INTEGER',
-    'Throws because id is FLOAT');
-SELECT throws_ok('q11', 'XX000', 'Unexpected Column ''id'' type. Expected ANY-INTEGER',
-    'Throws because id is REAL');
-
-PREPARE q12 AS
-SELECT * FROM pgr_floydWarshall(
-    'SELECT id, source::FLOAT, target, cost, reverse_cost FROM edge_table',
-    true);
-
-PREPARE q13 AS
-SELECT * FROM pgr_floydWarshall(
-    'SELECT id, source::REAL, target, cost, reverse_cost FROM edge_table',
-    true);
-
-SELECT throws_ok('q12', 'XX000', 'Unexpected Column ''source'' type. Expected ANY-INTEGER',
-    'Throws because source is FLOAT');
-SELECT throws_ok('q13', 'XX000', 'Unexpected Column ''source'' type. Expected ANY-INTEGER',
-    'Throws because source is REAL');
-
-PREPARE q14 AS
-SELECT * FROM pgr_floydWarshall(
-    'SELECT id, source, target::FLOAT, cost, reverse_cost FROM edge_table',
-    true);
-
-PREPARE q15 AS
-SELECT * FROM pgr_floydWarshall(
-    'SELECT id, source, target::REAL, cost, reverse_cost FROM edge_table',
-    true);
-
-SELECT throws_ok('q14', 'XX000', 'Unexpected Column ''target'' type. Expected ANY-INTEGER',
-    'Throws because source is FLOAT');
-SELECT throws_ok('q15', 'XX000', 'Unexpected Column ''target'' type. Expected ANY-INTEGER',
-    'Throws because source is REAL');
-
-
-
-
-SELECT finish();
-ROLLBACK;
diff --git a/src/allpairs/test/pgtap/j-types-check.sql b/src/allpairs/test/pgtap/j-types-check.sql
deleted file mode 100644
index 9966e84..0000000
--- a/src/allpairs/test/pgtap/j-types-check.sql
+++ /dev/null
@@ -1,85 +0,0 @@
-
-\i setup.sql
-
-
-SELECT plan(10);
-
-PREPARE q1 AS
-SELECT * FROM pgr_johnson(
-    'SELECT id::BIGINT, source::SMALLINT, target::BIGINT, cost::INTEGER, reverse_cost::SMALLINT FROM edge_table'
-);
-
-PREPARE q2 AS
-SELECT * FROM pgr_johnson(
-    'SELECT source, target, cost, reverse_cost FROM edge_table'
-);
-
-PREPARE q3 AS
-SELECT * FROM pgr_johnson(
-    'SELECT source, target, cost, reverse_cost FROM edge_table',
-    false
-);
-
-PREPARE q4 AS
-SELECT * FROM pgr_johnson(
-    'SELECT source, target, cost, reverse_cost FROM edge_table',
-    true
-);
-
-
-SELECT lives_ok('q1', 'edges query accepts ANY-INTEGER & ANY NUMERICAL');
-SELECT lives_ok('q2', 'without id it works');
-SELECT lives_ok('q3', 'directed flag works ok with false');
-SELECT lives_ok('q4', 'directed flag works ok with true');
-
-
-PREPARE q10 AS
-SELECT * FROM pgr_johnson(
-    'SELECT id::FLOAT, source, target, cost, reverse_cost FROM edge_table',
-    true);
-
-PREPARE q11 AS
-SELECT * FROM pgr_johnson(
-    'SELECT id::REAL, source, target, cost, reverse_cost FROM edge_table',
-    true);
-
-SELECT throws_ok('q10', 'XX000', 'Unexpected Column ''id'' type. Expected ANY-INTEGER',
-    'Throws because id is FLOAT');
-SELECT throws_ok('q11', 'XX000', 'Unexpected Column ''id'' type. Expected ANY-INTEGER',
-    'Throws because id is REAL');
-
-PREPARE q12 AS
-SELECT * FROM pgr_johnson(
-    'SELECT id, source::FLOAT, target, cost, reverse_cost FROM edge_table',
-    true);
-
-PREPARE q13 AS
-SELECT * FROM pgr_johnson(
-    'SELECT id, source::REAL, target, cost, reverse_cost FROM edge_table',
-    true);
-
-SELECT throws_ok('q12', 'XX000', 'Unexpected Column ''source'' type. Expected ANY-INTEGER',
-    'Throws because source is FLOAT');
-SELECT throws_ok('q13', 'XX000', 'Unexpected Column ''source'' type. Expected ANY-INTEGER',
-    'Throws because source is REAL');
-
-PREPARE q14 AS
-SELECT * FROM pgr_johnson(
-    'SELECT id, source, target::FLOAT, cost, reverse_cost FROM edge_table',
-    true);
-
-PREPARE q15 AS
-SELECT * FROM pgr_johnson(
-    'SELECT id, source, target::REAL, cost, reverse_cost FROM edge_table',
-    true);
-
-SELECT throws_ok('q14', 'XX000', 'Unexpected Column ''target'' type. Expected ANY-INTEGER',
-    'Throws because source is FLOAT');
-SELECT throws_ok('q15', 'XX000', 'Unexpected Column ''target'' type. Expected ANY-INTEGER',
-    'Throws because source is REAL');
-
-
-
-
-SELECT finish();
-ROLLBACK;
diff --git a/src/alpha_shape/doc/pgr_alphaShape.rst b/src/alpha_shape/doc/pgr_alphaShape.rst
deleted file mode 100644
index 5b3b66e..0000000
--- a/src/alpha_shape/doc/pgr_alphaShape.rst
+++ /dev/null
@@ -1,96 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_alphashape:
-
-pgr_alphaShape
-===============================================================================
-
-.. index::
-	single: pgr_alphashape(text,float8)
-
-Name
--------------------------------------------------------------------------------
-
-``pgr_alphaShape`` — Core function for alpha shape computation.
-
-
-Synopsis
--------------------------------------------------------------------------------
-
-Returns a table with (x, y) rows that describe the vertices of an alpha shape.
-
-.. code-block:: sql
-
-	table() pgr_alphaShape(text sql [, float8 alpha]);
-
-
-Description
--------------------------------------------------------------------------------
-
-:sql: ``text`` a SQL query, which should return a set of rows with the following columns:
-
-    .. code-block:: sql
-
-        SELECT id, x, y FROM vertex_table
-
-    :id: ``int4`` identifier of the vertex
-    :x: ``float8`` x-coordinate
-    :y: ``float8`` y-coordinate
-
-:alpha: (optional) ``float8`` alpha value. If specified alpha value equals 0 (default), then optimal alpha value is used.
-    For more information, see `CGAL - 2D Alpha Shapes <http://doc.cgal.org/latest/Alpha_shapes_2/group__PkgAlphaShape2.html>`_.
-
-Returns a vertex record for each row:
-
-:x: x-coordinate
-:y: y-coordinate
-
-If a result includes multiple outer/inner rings, return those with separator row (x=NULL and y=NULL).
-
-.. rubric:: History
-
-* Renamed in version 2.0.0
-* Added alpha argument with default 0 (use optimal value) in version 2.1.0
-* Supported to return multiple outer/inner ring coordinates with separator row (x=NULL and y=NULL) in version 2.1.0
-
-Examples
--------------------------------------------------------------------------------
-PgRouting's alpha shape implementation has no way to control the order of the output points, so the actual output might different for the same input data.
-The first query, has the output ordered, he second query shows an example usage:
-
-
-.. rubric:: Example: the (ordered) results
-
-.. literalinclude:: doc-pgr_alphashape.queries
-   :start-after: -- q1
-   :end-before: -- q2
-
-.. rubric:: Example: calculating the area
-
-Steps:
-
-  - Calculates the alpha shape
-    - the :code:`ORDER BY` clause is not used.
-  - constructs a polygon
-  - and computes the area
-
-.. literalinclude:: doc-pgr_alphashape.queries
-   :start-after: -- q2
-   :end-before: -- q3
-
-
-
-The queries use the :ref:`sampledata` network.
-
-See Also
--------------------------------------------------------------------------------
-
-* :ref:`pgr_drivingDistance` - Driving Distance
-* :ref:`pgr_points_as_polygon` - Polygon around set of points
diff --git a/src/alpha_shape/doc/pgr_pointsAsPolygon.rst b/src/alpha_shape/doc/pgr_pointsAsPolygon.rst
deleted file mode 100644
index e39d84b..0000000
--- a/src/alpha_shape/doc/pgr_pointsAsPolygon.rst
+++ /dev/null
@@ -1,76 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_points_as_polygon:
-
-pgr_pointsAsPolygon
-===============================================================================
-
-.. index::
-    single: pgr_pointsAsPolygon(text,float8)
-
-Name
--------------------------------------------------------------------------------
-
-``pgr_pointsAsPolygon`` — Draws an alpha shape around given set of points.
-
-
-Synopsis
--------------------------------------------------------------------------------
-
-Returns the alpha shape as (multi)polygon geometry.
-
-.. code-block:: sql
-
-    geometry pgr_pointsAsPolygon(text sql [, float8 alpha]);
-
-
-Description
--------------------------------------------------------------------------------
-
-:sql: ``text`` a SQL query, which should return a set of rows with the following columns:
-
-    .. code-block:: sql
-
-        SELECT id, x, y FROM vertex_result;
-
-    :id: ``int4`` identifier of the vertex
-    :x: ``float8`` x-coordinate
-    :y: ``float8`` y-coordinate
-
-:alpha: (optional) ``float8`` alpha value. If specified alpha value equals 0 (default), then optimal alpha value is used.
-    For more information, see `CGAL - 2D Alpha Shapes <http://doc.cgal.org/latest/Alpha_shapes_2/group__PkgAlphaShape2.html>`_.
-
-Returns a (multi)polygon geometry (with holes).
-
-
-.. rubric:: History
-
-* Renamed in version 2.0.0
-* Added alpha argument with default 0 (use optimal value) in version 2.1.0
-* Supported to return a (multi)polygon geometry (with holes) in version 2.1.0
-
-
-Examples
--------------------------------------------------------------------------------
-In the following query there is no way to control which point in the polygon is the first in the list, so you may get similar but different results than the following which are also correct.
-
-.. literalinclude:: doc-pgr_pointsAsPolygon.queries
-   :start-after: --q1
-   :end-before: --q2
-
-
-The query use the :ref:`sampledata` network.
-
-
-See Also
--------------------------------------------------------------------------------
-
-* :ref:`pgr_drivingDistance` - Driving Distance
-* :ref:`pgr_alphashape` - Alpha shape computation
diff --git a/src/alpha_shape/sql/CMakeLists.txt b/src/alpha_shape/sql/CMakeLists.txt
deleted file mode 100644
index 05cbe17..0000000
--- a/src/alpha_shape/sql/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-# Append in local scope
-LIST(APPEND PACKAGE_SQL_FILES
-    ${CMAKE_CURRENT_SOURCE_DIR}/alpha_shape.sql
-    )
-
-# set in parent scope
-SET(PACKAGE_SQL_FILES "${PACKAGE_SQL_FILES}" PARENT_SCOPE)
diff --git a/src/alpha_shape/sql/alpha_shape.sql b/src/alpha_shape/sql/alpha_shape.sql
deleted file mode 100644
index d89a0b3..0000000
--- a/src/alpha_shape/sql/alpha_shape.sql
+++ /dev/null
@@ -1,97 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Copyright (c) 2006-2007 Anton A. Patrushev, Orkney, Inc.
-Copyright (c) 2005 Sylvain Pasche,
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-
------------------------------------------------------------------------
--- Core function for alpha shape computation.
--- The sql should return vertex ids and x,y values. Return ordered
--- vertex ids. 
------------------------------------------------------------------------
-CREATE OR REPLACE FUNCTION pgr_alphashape(sql text, alpha float8 DEFAULT 0, OUT x float8, OUT y float8)
-    RETURNS SETOF record
-    AS '$libdir/${PGROUTING_LIBRARY_NAME}', 'alphashape'
-    LANGUAGE c IMMUTABLE STRICT;
-
-----------------------------------------------------------
--- Draws an alpha shape around given set of points.
--- ** This should be rewritten as an aggregate. **
-----------------------------------------------------------
-CREATE OR REPLACE FUNCTION pgr_pointsAsPolygon(query varchar, alpha float8 DEFAULT 0)
-	RETURNS geometry AS
-	$$
-	DECLARE
-		r record;
-		geoms geometry[];
-		vertex_result record;
-		i int;
-		n int;
-		spos int;
-		q text;
-		x float8[];
-		y float8[];
-
-	BEGIN
-		geoms := array[]::geometry[];
-		i := 1;
-
-		FOR vertex_result IN EXECUTE 'SELECT x, y FROM pgr_alphashape('''|| query || ''', ' || alpha || ')' 
-		LOOP
-			x[i] = vertex_result.x;
-			y[i] = vertex_result.y;
-			i := i+1;
-		END LOOP;
-
-		n := i;
-		IF n = 1 THEN
-			RAISE NOTICE 'n = 1';
-			RETURN NULL;
-		END IF;
-
-		spos := 1;
-		q := 'SELECT ST_GeometryFromText(''POLYGON((';
-		FOR i IN 1..n LOOP
-			IF x[i] IS NULL AND y[i] IS NULL THEN
-				q := q || ', ' || x[spos] || ' ' || y[spos] || '))'',0) AS geom;';
-				EXECUTE q INTO r;
-				geoms := geoms || array[r.geom];
-				q := '';
-			ELSE
-				IF q = '' THEN
-					spos := i;
-					q := 'SELECT ST_GeometryFromText(''POLYGON((';
-				END IF;
-				IF i = spos THEN
-					q := q || x[spos] || ' ' || y[spos];
-				ELSE
-					q := q || ', ' || x[i] || ' ' || y[i];
-				END IF;
-			END IF;
-		END LOOP;
-
-		RETURN ST_BuildArea(ST_Collect(geoms));
-	END;
-	$$
-	LANGUAGE 'plpgsql' VOLATILE STRICT;
-
diff --git a/src/alpha_shape/src/alpha.c b/src/alpha_shape/src/alpha.c
index 940901f..34af757 100644
--- a/src/alpha_shape/src/alpha.c
+++ b/src/alpha_shape/src/alpha.c
@@ -22,7 +22,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#include "./../../common/src/postgres_connection.h"
+#include "c_common/postgres_connection.h"
 #if PGSQL_VERSION == 100
 #include <float.h>
 #endif
@@ -30,7 +30,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 #include "catalog/pg_type.h"
 
-#include "../../common/src/pgr_types.h"
+#include <stdint.h>
 #include "alpha_driver.h"
 
 
@@ -44,7 +44,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 PGDLLEXPORT Datum alphashape(PG_FUNCTION_ARGS);
 
 #undef DEBUG
-#include "../../common/src/debug_macro.h"
+#include "c_common/debug_macro.h"
 
 // The number of tuples to fetch from the SPI cursor at each iteration
 #define TUPLIMIT 1000
diff --git a/src/alpha_shape/src/alpha_driver.cpp b/src/alpha_shape/src/alpha_driver.cpp
index ba68459..0043d0c 100644
--- a/src/alpha_shape/src/alpha_driver.cpp
+++ b/src/alpha_shape/src/alpha_driver.cpp
@@ -59,7 +59,7 @@ corresponding to the Alpha shape.
 #include <algorithm>
 #include <set>
 
-#include "./../../common/src/pgr_alloc.hpp"
+#include "cpp_common/pgr_alloc.hpp"
 
 typedef double coord_type;
 
diff --git a/src/alpha_shape/src/alpha_driver.h b/src/alpha_shape/src/alpha_driver.h
index 38f23a5..30b06c3 100644
--- a/src/alpha_shape/src/alpha_driver.h
+++ b/src/alpha_shape/src/alpha_driver.h
@@ -28,8 +28,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 #include <stddef.h>
 
-#include "../../common/src/pgr_types.h"
-
 typedef struct vertex {
   double x;
   double y;
diff --git a/src/alpha_shape/test/doc-pgr_alphashape.result b/src/alpha_shape/test/doc-pgr_alphashape.result
index 66f7a5f..0b4282a 100644
--- a/src/alpha_shape/test/doc-pgr_alphashape.result
+++ b/src/alpha_shape/test/doc-pgr_alphashape.result
@@ -1,12 +1,39 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 -- q1
-0|2
-0.5|3.5
-2|0
-2|4
-3.5|4
-4|1
-4|2
-4|3
+SELECT * FROM pgr_alphaShape(
+    'SELECT id::integer, ST_X(the_geom)::float AS x, ST_Y(the_geom)::float AS y
+    FROM edge_table_vertices_pgr') ORDER BY x, y;
+  x  |  y  
+-----+-----
+   0 |   2
+ 0.5 | 3.5
+   2 |   0
+   2 |   4
+ 3.5 |   4
+   4 |   1
+   4 |   2
+   4 |   3
+(8 rows)
+
 -- q2
-11.75
+SELECT round(ST_Area(ST_MakePolygon(ST_AddPoint(foo.openline, ST_StartPoint(foo.openline))))::numeric, 2) AS st_area
+FROM (
+    SELECT ST_MakeLine(points ORDER BY id) AS openline
+    FROM (
+        SELECT ST_MakePoint(x, y) AS points, row_number() over() AS id
+        FROM pgr_alphaShape(
+            'SELECT id::integer, ST_X(the_geom)::float AS x, ST_Y(the_geom)::float AS y
+            FROM edge_table_vertices_pgr')
+        ) AS a
+   ) AS foo;
+ st_area 
+---------
+   11.75
+(1 row)
+
 -- q3
+ROLLBACK;
+ROLLBACK
diff --git a/src/alpha_shape/test/doc-pgr_pointsAsPolygon.result b/src/alpha_shape/test/doc-pgr_pointsAsPolygon.result
index 47a1a81..c6c0a7b 100644
--- a/src/alpha_shape/test/doc-pgr_pointsAsPolygon.result
+++ b/src/alpha_shape/test/doc-pgr_pointsAsPolygon.result
@@ -1,3 +1,15 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 --q1
-POLYGON((2 4,3.5 4,4 3,4 2,4 1,2 0,0 2,0.5 3.5,2 4))
+SELECT ST_AsText(pgr_pointsAsPolygon('SELECT id::integer, ST_X(the_geom)::float AS x, ST_Y(the_geom)::float AS y
+        FROM edge_table_vertices_pgr'));
+                      st_astext                       
+------------------------------------------------------
+ POLYGON((2 4,3.5 4,4 3,4 2,4 1,2 0,0 2,0.5 3.5,2 4))
+(1 row)
+
 --q2
+ROLLBACK;
+ROLLBACK
diff --git a/src/apsp_johnson/doc/doc-apspJohnson.queries b/src/apsp_johnson/doc/doc-apspJohnson.queries
deleted file mode 100644
index 1116eb4..0000000
--- a/src/apsp_johnson/doc/doc-apspJohnson.queries
+++ /dev/null
@@ -1,19 +0,0 @@
-BEGIN;
-BEGIN
-SET client_min_messages TO NOTICE;
-SET
---q1
-SELECT * FROM pgr_apspJohnson(
-        'SELECT source::INTEGER, target::INTEGER, cost FROM edge_table WHERE id < 5'
-    );
-NOTICE:  Deprecated function: Use pgr_johnson instead
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |   1 |   2 |    1
-   1 |   1 |   5 |    2
-   2 |   2 |   5 |    1
-(3 rows)
-
---q2
-ROLLBACK;
-ROLLBACK
diff --git a/src/apsp_johnson/sql/CMakeLists.txt b/src/apsp_johnson/sql/CMakeLists.txt
deleted file mode 100644
index ce719b5..0000000
--- a/src/apsp_johnson/sql/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-# Append in local scope
-LIST(APPEND PACKAGE_SQL_FILES
-    ${CMAKE_CURRENT_SOURCE_DIR}/apsp_johnson_v2.2.sql
-    )
-
-# set in parent scope
-SET(PACKAGE_SQL_FILES "${PACKAGE_SQL_FILES}" PARENT_SCOPE)
diff --git a/src/apsp_johnson/test/doc-apspJohnson.result b/src/apsp_johnson/test/doc-apspJohnson.result
deleted file mode 100644
index baed04f..0000000
--- a/src/apsp_johnson/test/doc-apspJohnson.result
+++ /dev/null
@@ -1,6 +0,0 @@
---q1
-NOTICE:  Deprecated function: Use pgr_johnson instead
-0|1|2|1
-1|1|5|2
-2|2|5|1
---q2
diff --git a/src/apsp_johnson/test/doc-apspJohnson.test.sql b/src/apsp_johnson/test/doc-apspJohnson.test.sql
deleted file mode 100644
index 1d48764..0000000
--- a/src/apsp_johnson/test/doc-apspJohnson.test.sql
+++ /dev/null
@@ -1,10 +0,0 @@
-------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
---              PGR_apspJohnson
-------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
-\echo --q1
-SELECT * FROM pgr_apspJohnson(
-        'SELECT source::INTEGER, target::INTEGER, cost FROM edge_table WHERE id < 5'
-    ); 
-\echo --q2
diff --git a/src/apsp_johnson/test/test.conf b/src/apsp_johnson/test/test.conf
deleted file mode 100644
index ae455cc..0000000
--- a/src/apsp_johnson/test/test.conf
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/perl -w
-
-%main::tests = (
-    'any' => {
-        'comment' => 'APSP Johnson test for any versions.',
-        'data' => [],
-        'tests' => [qw(
-            doc-apspJohnson
-            )],
-        'documentation' => [qw(
-            doc-apspJohnson
-            )],
-
-
-        },
-#    'vpg-vpgis' => {}, # for version specific tests
-#    '8-1' => {},       # for pg 8.x and postgis 1.x
-#    '9.2-2.1' => {},   # for pg 9.2 and postgis 2.1
-);
-
-1;
diff --git a/src/apsp_warshall/doc/doc-apspWarshall.queries b/src/apsp_warshall/doc/doc-apspWarshall.queries
deleted file mode 100644
index fd61fb6..0000000
--- a/src/apsp_warshall/doc/doc-apspWarshall.queries
+++ /dev/null
@@ -1,23 +0,0 @@
-BEGIN;
-BEGIN
-SET client_min_messages TO NOTICE;
-SET
---q1
-SELECT * FROM pgr_apspWarshall(
-        'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost FROM edge_table WHERE id < 5',
-        false, false
-    );
-NOTICE:  Deprecated function: Use pgr_floydWarshall instead
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |   1 |   2 |    1
-   1 |   1 |   5 |    2
-   2 |   2 |   1 |    1
-   3 |   2 |   5 |    1
-   4 |   5 |   1 |    2
-   5 |   5 |   2 |    1
-(6 rows)
-
---q2
-ROLLBACK;
-ROLLBACK
diff --git a/src/apsp_warshall/sql/CMakeLists.txt b/src/apsp_warshall/sql/CMakeLists.txt
deleted file mode 100644
index c1f52f5..0000000
--- a/src/apsp_warshall/sql/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-# Append in local scope
-LIST(APPEND PACKAGE_SQL_FILES
-    ${CMAKE_CURRENT_SOURCE_DIR}/apsp_warshall_v2.2.sql
-    )
-
-# set in parent scope
-SET(PACKAGE_SQL_FILES "${PACKAGE_SQL_FILES}" PARENT_SCOPE)
diff --git a/src/apsp_warshall/test/doc-apspWarshall.result b/src/apsp_warshall/test/doc-apspWarshall.result
deleted file mode 100644
index ef25591..0000000
--- a/src/apsp_warshall/test/doc-apspWarshall.result
+++ /dev/null
@@ -1,9 +0,0 @@
---q1
-NOTICE:  Deprecated function: Use pgr_floydWarshall instead
-0|1|2|1
-1|1|5|2
-2|2|1|1
-3|2|5|1
-4|5|1|2
-5|5|2|1
---q2
diff --git a/src/apsp_warshall/test/doc-apspWarshall.test.sql b/src/apsp_warshall/test/doc-apspWarshall.test.sql
deleted file mode 100644
index 892e55f..0000000
--- a/src/apsp_warshall/test/doc-apspWarshall.test.sql
+++ /dev/null
@@ -1,12 +0,0 @@
-------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
---              PGR_apspWarshall
-------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
-\echo --q1
-SELECT * FROM pgr_apspWarshall(
-        'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost FROM edge_table WHERE id < 5',
-        false, false
-    );
-
-\echo --q2
diff --git a/src/apsp_warshall/test/test.conf b/src/apsp_warshall/test/test.conf
deleted file mode 100644
index 4f3c351..0000000
--- a/src/apsp_warshall/test/test.conf
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/usr/bin/perl -w
-
-%main::tests = (
-    'any' => {
-        'comment' => 'APSP Warshall test for any versions.',
-        'data' => [],
-        'tests' => [qw(
-            doc-apspWarshall
-            )],
-        'documentation' => [qw(
-            doc-apspWarshall
-            )]
-        },
-#    'vpg-vpgis' => {}, # for version specific tests
-#    '8-1' => {},       # for pg 8.x and postgis 1.x
-#    '9.2-2.1' => {},   # for pg 9.2 and postgis 2.1
-);
-
-1;
diff --git a/src/astar/doc/doc-astar-v2.queries b/src/astar/doc/doc-astar-v2.queries
deleted file mode 100644
index 31b594d..0000000
--- a/src/astar/doc/doc-astar-v2.queries
+++ /dev/null
@@ -1,37 +0,0 @@
-BEGIN;
-BEGIN
-SET client_min_messages TO NOTICE;
-SET
--- q1
-SELECT * FROM pgr_astar(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, x1, y1, x2, y2
-     FROM edge_table',
-    4, 1, false, false);
-NOTICE:  Deprecated signature pgr_astar(text, integer, integer, boolean, boolean)
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |   4 |  16 |    1
-   1 |   9 |   9 |    1
-   2 |   6 |   8 |    1
-   3 |   5 |   4 |    1
-   4 |   2 |   1 |    1
-   5 |   1 |  -1 |    0
-(6 rows)
-
--- q2
-SELECT * FROM pgr_astar(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, x1, y1, x2, y2, reverse_cost
-      FROM edge_table ',
-    4, 1, true, true);
-NOTICE:  Deprecated signature pgr_astar(text, integer, integer, boolean, boolean)
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |   4 |   3 |    1
-   1 |   3 |   2 |    1
-   2 |   2 |   1 |    1
-   3 |   1 |  -1 |    0
-(4 rows)
-
--- q3
-ROLLBACK;
-ROLLBACK
diff --git a/src/astar/doc/doc-astar.queries b/src/astar/doc/doc-astar.queries
deleted file mode 100644
index b0032bc..0000000
--- a/src/astar/doc/doc-astar.queries
+++ /dev/null
@@ -1,118 +0,0 @@
-BEGIN;
-BEGIN
-SET client_min_messages TO NOTICE;
-SET
---q1
-SELECT * FROM pgr_astar(
-    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
-    2, 12);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |    2 |    4 |    1 |        0
-   2 |        2 |    5 |    8 |    1 |        1
-   3 |        3 |    6 |    9 |    1 |        2
-   4 |        4 |    9 |   15 |    1 |        3
-   5 |        5 |   12 |   -1 |    0 |        4
-(5 rows)
-
---q2
-SELECT * FROM pgr_astar(
-    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
-    2, 12,
-    directed := false, heuristic := 2);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |    2 |    4 |    1 |        0
-   2 |        2 |    5 |   10 |    1 |        1
-   3 |        3 |   10 |   12 |    1 |        2
-   4 |        4 |   11 |   13 |    1 |        3
-   5 |        5 |   12 |   -1 |    0 |        4
-(5 rows)
-
---q3
-SELECT * FROM pgr_astar(
-    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
-    2, ARRAY[3, 12], heuristic := 2);
- seq | path_seq | end_vid | node | edge | cost | agg_cost 
------+----------+---------+------+------+------+----------
-   1 |        1 |       3 |    2 |    4 |    1 |        0
-   2 |        2 |       3 |    5 |    8 |    1 |        1
-   3 |        3 |       3 |    6 |    9 |    1 |        2
-   4 |        4 |       3 |    9 |   16 |    1 |        3
-   5 |        5 |       3 |    4 |    3 |    1 |        4
-   6 |        6 |       3 |    3 |   -1 |    0 |        5
-   7 |        1 |      12 |    2 |    4 |    1 |        0
-   8 |        2 |      12 |    5 |    8 |    1 |        1
-   9 |        3 |      12 |    6 |    9 |    1 |        2
-  10 |        4 |      12 |    9 |   15 |    1 |        3
-  11 |        5 |      12 |   12 |   -1 |    0 |        4
-(11 rows)
-
---q4
-SELECT * FROM pgr_astar(
-    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
-    ARRAY[7, 2], 12, heuristic := 0);
- seq | path_seq | start_vid | node | edge | cost | agg_cost 
------+----------+-----------+------+------+------+----------
-   1 |        1 |         2 |    2 |    4 |    1 |        0
-   2 |        2 |         2 |    5 |   10 |    1 |        1
-   3 |        3 |         2 |   10 |   12 |    1 |        2
-   4 |        4 |         2 |   11 |   13 |    1 |        3
-   5 |        5 |         2 |   12 |   -1 |    0 |        4
-   6 |        1 |         7 |    7 |    6 |    1 |        0
-   7 |        2 |         7 |    8 |    7 |    1 |        1
-   8 |        3 |         7 |    5 |   10 |    1 |        2
-   9 |        4 |         7 |   10 |   12 |    1 |        3
-  10 |        5 |         7 |   11 |   13 |    1 |        4
-  11 |        6 |         7 |   12 |   -1 |    0 |        5
-(11 rows)
-
---q5
-SELECT * FROM pgr_astar(
-    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
-    ARRAY[7, 2], ARRAY[3, 12], heuristic := 2);
- seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
------+----------+-----------+---------+------+------+------+----------
-   1 |        1 |         2 |       3 |    2 |    4 |    1 |        0
-   2 |        2 |         2 |       3 |    5 |    8 |    1 |        1
-   3 |        3 |         2 |       3 |    6 |    9 |    1 |        2
-   4 |        4 |         2 |       3 |    9 |   16 |    1 |        3
-   5 |        5 |         2 |       3 |    4 |    3 |    1 |        4
-   6 |        6 |         2 |       3 |    3 |   -1 |    0 |        5
-   7 |        1 |         2 |      12 |    2 |    4 |    1 |        0
-   8 |        2 |         2 |      12 |    5 |    8 |    1 |        1
-   9 |        3 |         2 |      12 |    6 |    9 |    1 |        2
-  10 |        4 |         2 |      12 |    9 |   15 |    1 |        3
-  11 |        5 |         2 |      12 |   12 |   -1 |    0 |        4
-  12 |        1 |         7 |       3 |    7 |    6 |    1 |        0
-  13 |        2 |         7 |       3 |    8 |    7 |    1 |        1
-  14 |        3 |         7 |       3 |    5 |    8 |    1 |        2
-  15 |        4 |         7 |       3 |    6 |    9 |    1 |        3
-  16 |        5 |         7 |       3 |    9 |   16 |    1 |        4
-  17 |        6 |         7 |       3 |    4 |    3 |    1 |        5
-  18 |        7 |         7 |       3 |    3 |   -1 |    0 |        6
-  19 |        1 |         7 |      12 |    7 |    6 |    1 |        0
-  20 |        2 |         7 |      12 |    8 |    7 |    1 |        1
-  21 |        3 |         7 |      12 |    5 |    8 |    1 |        2
-  22 |        4 |         7 |      12 |    6 |    9 |    1 |        3
-  23 |        5 |         7 |      12 |    9 |   15 |    1 |        4
-  24 |        6 |         7 |      12 |   12 |   -1 |    0 |        5
-(24 rows)
-
---q6
-SELECT * FROM pgr_astar(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
-    2, 12, true, true);
-NOTICE:  Deprecated signature pgr_astar(text, integer, integer, boolean, boolean)
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |   2 |   4 |    1
-   1 |   5 |   8 |    1
-   2 |   6 |   9 |    1
-   3 |   9 |  15 |    1
-   4 |  12 |  -1 |    0
-(5 rows)
-
---q7
-ROLLBACK;
-ROLLBACK
diff --git a/src/astar/doc/pgr_aStar.rst b/src/astar/doc/pgr_aStar.rst
deleted file mode 100644
index 89bb5ee..0000000
--- a/src/astar/doc/pgr_aStar.rst
+++ /dev/null
@@ -1,296 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_aStar:
-
-pgr_aStar
-===============================================================================
-
-Name
--------------------------------------------------------------------------------
-
-``pgr_aStar`` — Returns the shortest path using A* algorithm.
-
-.. figure:: images/boost-inside.jpeg
-   :target: http://www.boost.org//libs/graph/doc/astar_search.html
-
-   Boost Graph Inside
-
-.. rubric:: Availability:
-
-* pgr_astar(one to one) 2.0.0, Signature changed 2.3.0
-* pgr_astar(other signatures) 2.4.0
-
-
-
-Characteristics
--------------------------------------------------------------------------------
-
-The main Characteristics are:
-
-  - Process is done only on edges with positive costs.
-  - Vertices of the graph are:
-
-    - **positive** when it belongs to the edges_sql
-
-  - Values are returned when there is a path.
-
-    - When the starting vertex and ending vertex are the same, there is no path.
-
-      - The agg_cost the non included values (v, v) is 0
-
-    - When the starting vertex and ending vertex are the different and there is no path:
-
-      - The agg_cost the non included values (u, v) is ∞
-
-  - When (x,y) coordinates for the same vertex identifier differ:
-
-    - A random selection of the vertex's (x,y) coordinates is used.
-
-  - Running time: :math:`O((E + V) * \log V)`
-
-
-
-Signature Summary
------------------
-
-.. code-block:: none
-
-    pgr_aStar(edges_sql, start_vid, end_vid)
-    pgr_aStar(edges_sql, start_vid, end_vid, directed, heuristic, factor, epsilon)
-
-
-.. include:: proposed.rst
-   :start-after: begin-warning
-   :end-before: end-warning
-
-
-.. code-block:: none
-
-    pgr_aStar(edges_sql, start_vid, end_vids, directed, heuristic, factor, epsilon) -- proposed
-    pgr_aStar(edges_sql, starts_vid, end_vid, directed, heuristic, factor, epsilon) -- proposed
-    pgr_aStar(edges_sql, starts_vid, end_vids, directed, heuristic, factor, epsilon) -- proposed
-    RETURNS SET OF (seq, path_seq [, start_vid] [, end_vid], node, edge, cost, agg_cost)
-      OR EMPTY SET
-
-
-Signatures
------------------
-
-
-.. index::
-    single: aStar(Minimal Use) -- New Signature
-
-
-Minimal Signature
-...............................................................................
-
-.. code-block:: none
-
-    pgr_aStar(edges_sql, start_vid, end_vid)
-    RETURNS SET OF (seq, path_seq, node, edge, cost, agg_cost)
-
-:Example: Using the defaults
-
-.. literalinclude:: doc-astar.queries
-   :start-after: --q1
-   :end-before: --q2
-
-
-
-.. index::
-    single: aStar(One to One) -- New Signature
-
-
-One to One
-...............................................................................
-.. code-block:: none
-
-    pgr_aStar(edges_sql, start_vid, end_vid, directed, heuristic, factor, epsilon)
-    RETURNS SET OF (seq, path_seq, node, edge, cost, agg_cost)
-
-:Example: Undirected using  Heuristic 2
-
-.. literalinclude:: doc-astar.queries
-   :start-after: --q2
-   :end-before: --q3
-
-
-
-.. index::
-    single: astar(One to Many) -- Proposed
-
-One to many
-.......................................
-
-.. code-block:: none
-
-    pgr_aStar(edges_sql, start_vid, end_vids, directed, heuristic, factor, epsilon) -- Proposed
-    RETURNS SET OF (seq, path_seq, end_vid, node, edge, cost, agg_cost) or EMPTY SET
-
-This signature finds the shortest path from one ``start_vid`` to each ``end_vid`` in ``end_vids``:
-  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
-  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
-
-Using this signature, will load once the graph and perform a one to one `pgr_astar`
-where the starting vertex is fixed, and stop when all ``end_vids`` are reached.
-
-  - The result is equivalent to the union of the results of the one to one `pgr_astar`.
-  - The extra ``end_vid`` in the result is used to distinguish to which path it belongs.
-
-:Example:
-
-.. literalinclude:: doc-astar.queries
-   :start-after: --q3
-   :end-before: --q4
-
-.. index::
-    single: aStar(Many to One) -- Proposed
-
-Many to One
-.......................................
-
-.. code-block:: none
-
-    pgr_aStar(edges_sql, starts_vid, end_vid, directed, heuristic, factor, epsilon) -- Proposed
-    RETURNS SET OF (seq, path_seq, start_vid, node, edge, cost, agg_cost) or EMPTY SET
-
-This signature finds the shortest path from each ``start_vid`` in  ``start_vids`` to one ``end_vid``:
-  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
-  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
-
-Using this signature, will load once the graph and perform several one to one `pgr_aStar`
-where the ending vertex is fixed.
-
-  - The result is the union of the results of the one to one `pgr_aStar`.
-  - The extra ``start_vid`` in the result is used to distinguish to which path it belongs.
-
-:Example:
-
-.. literalinclude:: doc-astar.queries
-   :start-after: --q4
-   :end-before: --q5
-
-
-
-.. index::
-    single: aStar(Many to Many) -- Proposed
-
-Many to Many
-.......................................
-
-.. code-block:: none
-
-    pgr_aStar(edges_sql, starts_vid, end_vids, directed, heuristic, factor, epsilon) -- Proposed
-    RETURNS SET OF (seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost) or EMPTY SET
-
-This signature finds the shortest path from each ``start_vid`` in  ``start_vids`` to each ``end_vid`` in ``end_vids``:
-  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
-  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
-
-Using this signature, will load once the graph and perform several one to Many `pgr_dijkstra`
-for all ``start_vids``.
-
-  - The result is the union of the results of the one to one `pgr_dijkstra`.
-  - The extra ``start_vid`` in the result is used to distinguish to which path it belongs.
-
-The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish to which path it belongs.
-
-:Example:
-
-.. literalinclude:: doc-astar.queries
-   :start-after: --q5
-   :end-before: --q6
-
-
-
-
-
-
-Description of the Signatures
---------------------------------
-
-..
-    description of the edges_sql queries
-
-.. include:: pgRouting-concepts.rst
-    :start-after: xy_edges_sql_start
-    :end-before: xy_edges_sql_end
-
-
-Description of the parameters of the signatures
-.................................................
-
-================ ====================== =================================================
-Parameter        Type                   Description
-================ ====================== =================================================
-**edges_sql**    ``TEXT``               Edges SQL query as described above.
-**start_vid**    ``ANY-INTEGER``        Starting vertex identifier.
-**end_vid**      ``ANY-INTEGER``        Ending vertex identifier.
-**directed**     ``BOOLEAN``            - Optional.
-
-                                          - When ``false`` the graph is considered as Undirected.
-                                          - Default is ``true`` which considers the graph as Directed.
-
-**heuristic**    ``INTEGER``            (optional). Heuristic number. Current valid values 0~5. Default ``5``
-
-                                          - 0: h(v) = 0 (Use this value to compare with pgr_dijkstra)
-                                          - 1: h(v) abs(max(dx, dy))
-                                          - 2: h(v) abs(min(dx, dy))
-                                          - 3: h(v) = dx * dx + dy * dy
-                                          - 4: h(v) = sqrt(dx * dx + dy * dy)
-                                          - 5: h(v) = abs(dx) + abs(dy)
-
-**factor**       ``FLOAT``              (optional). For units manipulation. :math:`factor > 0`.  Default ``1``. see :ref:`astar_factor`
-**epsilon**      ``FLOAT``              (optional). For less restricted results. :math:`epsilon >= 1`.  Default ``1``.
-================ ====================== =================================================
-
-
-
-
-Description of the return values
-.................................................
-
-Returns set of ``(seq, path_seq, node, edge, cost, agg_cost)``
-
-============= =========== =================================================
-Column           Type              Description
-============= =========== =================================================
-**seq**       ``INTEGER`` Row sequence.
-**path_seq**  ``INTEGER`` Path sequence that indicates the relative position on the path.
-**node**      ``BIGINT``  Identifier of the node:
-                            - A positive value indicates the node is a vertex of edges_sql.
-                            - A negative value indicates the node is a point of points_sql.
-
-**edge**      ``BIGINT``  Identifier of the edge used to go from ``node`` to the next node in the path sequence.
-                            - ``-1`` for the last row in the path sequence.
-
-**cost**      ``FLOAT``   Cost to traverse from ``node`` using ``edge`` to the next ``node`` in the path sequence.
-                            - ``0`` for the last row in the path sequence.
-
-**agg_cost**  ``FLOAT``   Aggregate cost from ``start_vid`` to ``node``.
-                            - ``0`` for the first row in the path sequence.
-
-============= =========== =================================================
-
-
-
-See Also
--------------------------------------------------------------------------------
-
-* :ref:`astar`
-* :ref:`sampledata`
-* http://www.boost.org/libs/graph/doc/astar_search.html
-* http://en.wikipedia.org/wiki/A*_search_algorithm
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
-
diff --git a/src/astar/doc/pgr_aStarCost.rst b/src/astar/doc/pgr_aStarCost.rst
deleted file mode 100644
index 28c08cd..0000000
--- a/src/astar/doc/pgr_aStarCost.rst
+++ /dev/null
@@ -1,239 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_aStarCost:
-
-pgr_aStarCost -- proposed
-===============================================================================
-
-Name
--------------------------------------------------------------------------------
-
-``pgr_aStarCost`` — Returns the aggregate cost shortest path using :ref:`astar` algorithm.
-
-.. figure:: images/boost-inside.jpeg
-   :target: http://www.boost.org//libs/graph/doc/astar_search.html
-
-   Boost Graph Inside
-
-.. rubric:: Availability: 2.4.0
-
-Signature Summary
------------------
-
-.. include:: proposed.rst
-   :start-after: begin-warning
-   :end-before: end-warning
-
-.. code-block:: none
-
-    pgr_aStarCost(edges_sql, start_vid, end_vid) -- Proposed
-    pgr_aStarCost(edges_sql, start_vid, end_vid, directed, heuristic, factor, epsilon) -- Proposed
-    pgr_aStarCost(edges_sql, start_vid, end_vids, directed, heuristic, factor, epsilon) -- Proposed
-    pgr_aStarCost(edges_sql, starts_vid, end_vid, directed, heuristic, factor, epsilon) -- Proposed
-    pgr_aStarCost(edges_sql, starts_vid, end_vids, directed, heuristic, factor, epsilon) -- Proposed
-
-    RETURNS SET OF (start_vid, end_vid, agg_cost) OR EMPTY SET
-
-
-Signatures
------------------
-
-
-.. index::
-    single: aStarCost(Minimal Signature) -- Proposed
-
-Minimal Signature
-...............................................................................
-
-.. code-block:: none
-
-    pgr_aStarCost(edges_sql, start_vid, end_vid)
-    RETURNS SET OF (start_vid, end_vid, agg_cost) OR EMPTY SET
-
-:Example: Using the defaults
-
-.. literalinclude:: doc-aStarCost.queries
-   :start-after: --q1
-   :end-before: --q2
-
-
-
-.. index::
-    single: aStarCost(One to One) -- Proposed
-
-One to One
-...............................................................................
-.. code-block:: none
-
-    pgr_aStarCost(edges_sql, start_vid, end_vid, directed, heuristic, factor, epsilon)
-    RETURNS SET OF (start_vid, end_vid, agg_cost) OR EMPTY SET
-
-:Example: Setting a Heuristic
-
-.. literalinclude:: doc-aStarCost.queries
-   :start-after: --q2
-   :end-before: --q3
-
-
-
-.. index::
-    single: aStarCost(One to Many) -- Proposed
-
-One to many
-.......................................
-
-.. code-block:: none
-
-    pgr_aStarCost(edges_sql, start_vid, end_vids, directed, heuristic, factor, epsilon) -- Proposed
-    RETURNS SET OF (start_vid, end_vid, agg_cost) OR EMPTY SET
-
-This signature finds a path from one ``start_vid`` to each ``end_vid`` in ``end_vids``:
-  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
-  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
-
-Using this signature, will load once the graph and perform a one to one `pgr_astar`
-where the starting vertex is fixed, and stop when all ``end_vids`` are reached.
-
-  - The result is equivalent to the union of the results of the one to one `pgr_astar`.
-  - The extra ``end_vid`` column in the result is used to distinguish to which path it belongs.
-
-:Example:
-
-.. literalinclude:: doc-aStarCost.queries
-   :start-after: --q3
-   :end-before: --q4
-
-.. index::
-    single: aStarCost(Many to One) -- Proposed
-
-Many to One
-.......................................
-
-.. code-block:: none
-
-    pgr_aStarCost(edges_sql, starts_vid, end_vid, directed, heuristic, factor, epsilon) -- Proposed
-    RETURNS SET OF (start_vid, end_vid, agg_cost) OR EMPTY SET
-
-This signature finds the shortest path from each ``start_vid`` in  ``start_vids`` to one ``end_vid``:
-  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
-  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
-
-Using this signature, will load once the graph and perform several one to one `pgr_aStar`
-where the ending vertex is fixed.
-
-  - The result is the union of the results of the one to one `pgr_aStar`.
-  - The extra ``start_vid`` column  in the result is used to distinguish to which path it belongs.
-
-:Example:
-
-.. literalinclude:: doc-aStarCost.queries
-   :start-after: --q4
-   :end-before: --q5
-
-
-
-.. index::
-    single: aStarCost(Many to Many) -- Proposed
-
-Many to Many
-.......................................
-
-.. code-block:: none
-
-    pgr_aStarCost(edges_sql, starts_vid, end_vids, directed, heuristic, factor, epsilon) -- Proposed
-    RETURNS SET OF (start_vid, end_vid, agg_cost) OR EMPTY SET
-
-This signature finds the shortest path from each ``start_vid`` in  ``start_vids`` to each ``end_vid`` in ``end_vids``:
-  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
-  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
-
-Using this signature, will load once the graph and perform several one to Many `pgr_dijkstra`
-for all ``start_vids``.
-
-  - The result is the union of the results of the one to one `pgr_dijkstra`.
-  - The extra ``start_vid`` in the result is used to distinguish to which path it belongs.
-
-The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish to which path it belongs.
-
-:Example:
-
-.. literalinclude:: doc-aStarCost.queries
-   :start-after: --q5
-   :end-before: --q6
-
-
-
-
-
-
-Description of the Signatures
---------------------------------
-
-..
-    description of the edges_sql queries
-
-.. include:: pgRouting-concepts.rst
-    :start-after: xy_edges_sql_start
-    :end-before: xy_edges_sql_end
-
-
-Description of the parameters of the signatures
-.................................................
-
-================ ====================== =================================================
-Parameter        Type                   Description
-================ ====================== =================================================
-**edges_sql**    ``TEXT``               Edges SQL query as described above.
-**start_vid**    ``ANY-INTEGER``        Starting vertex identifier.
-**end_vid**      ``ANY-INTEGER``        Ending vertex identifier.
-**directed**     ``BOOLEAN``            - Optional.
-
-                                          - When ``false`` the graph is considered as Undirected.
-                                          - Default is ``true`` which considers the graph as Directed.
-
-**heuristic**    ``INTEGER``            (optional). Heuristic number. Current valid values 0~5. Default ``5``
-
-                                          - 0: h(v) = 0 (Use this value to compare with pgr_dijkstra)
-                                          - 1: h(v) abs(max(dx, dy))
-                                          - 2: h(v) abs(min(dx, dy))
-                                          - 3: h(v) = dx * dx + dy * dy
-                                          - 4: h(v) = sqrt(dx * dx + dy * dy)
-                                          - 5: h(v) = abs(dx) + abs(dy)
-
-**factor**       ``FLOAT``              (optional). For units manipulation. :math:`factor > 0`.  Default ``1``. See :ref:`astar_factor`
-**epsilon**      ``FLOAT``              (optional). For less restricted results. :math:`epsilon >= 1`.  Default ``1``.
-================ ====================== =================================================
-
-
-
-
-Description of the return values
-.................................................
-
-Returns set of ``(start_vid, end_vid, agg_cost)``
-
-============= ============= =================================================
-Column        Type          Description
-============= ============= =================================================
-**start_vid** ``BIGINT``    Identifier of the starting vertex.
-**end_vid**   ``BIGINT``    Identifier of the ending vertex.
-**agg_cost**  ``FLOAT``     Aggregate cost of the shortest path from ``start_vid`` to ``end_vid``.
-============= ============= =================================================
-
-
-
-
-See Also
--------------------------------------------------------------------------------
-
-* :ref:`astar`.
-* :ref:`sampledata` network.
-* http://www.boost.org/libs/graph/doc/astar_search.html
-* http://en.wikipedia.org/wiki/A*_search_algorithm
diff --git a/src/astar/sql/CMakeLists.txt b/src/astar/sql/CMakeLists.txt
deleted file mode 100644
index ba8b329..0000000
--- a/src/astar/sql/CMakeLists.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-# Append in local scope
-LIST(APPEND PACKAGE_SQL_FILES
-    ${CMAKE_CURRENT_SOURCE_DIR}/astarV2.0.sql
-    #${CMAKE_CURRENT_SOURCE_DIR}/astarOneToOne.sql
-
-    ${CMAKE_CURRENT_SOURCE_DIR}/_astar.sql
-    ${CMAKE_CURRENT_SOURCE_DIR}/astar.sql
-    ${CMAKE_CURRENT_SOURCE_DIR}/astarCost.sql
-    )
-
-# set in parent scope
-SET(PACKAGE_SQL_FILES "${PACKAGE_SQL_FILES}" PARENT_SCOPE)
diff --git a/src/astar/sql/_astar.sql b/src/astar/sql/_astar.sql
deleted file mode 100644
index 1888c8c..0000000
--- a/src/astar/sql/_astar.sql
+++ /dev/null
@@ -1,108 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: astarV3.0.sql
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer: 
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: 
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-CREATE OR REPLACE FUNCTION _pgr_astar(
-    edges_sql TEXT, -- XY edges sql
-    start_vid BIGINT,
-    end_vid BIGINT,
-    directed BOOLEAN DEFAULT true,
-    heuristic INTEGER DEFAULT 5,
-    factor FLOAT DEFAULT 1.0,
-    epsilon FLOAT DEFAULT 1.0,
-    only_cost BOOLEAN DEFAULT false,
-    OUT seq INTEGER,
-    OUT path_seq INTEGER,
-    OUT node BIGINT,
-    OUT edge BIGINT,
-    OUT cost FLOAT,
-    OUT agg_cost FLOAT)
-RETURNS SETOF RECORD AS
-'$libdir/${PGROUTING_LIBRARY_NAME}', 'astarOneToOne'
-LANGUAGE c IMMUTABLE STRICT;
-
-
-CREATE OR REPLACE FUNCTION _pgr_astar(
-    edges_sql TEXT, -- XY edges sql
-    start_vid BIGINT,
-    end_vids anyarray,
-    directed BOOLEAN DEFAULT true,
-    heuristic INTEGER DEFAULT 5,
-    factor FLOAT DEFAULT 1.0,
-    epsilon FLOAT DEFAULT 1.0,
-    only_cost BOOLEAN DEFAULT false,
-    OUT seq INTEGER,
-    OUT path_seq INTEGER,
-    OUT end_vid BIGINT,
-    OUT node BIGINT,
-    OUT edge BIGINT,
-    OUT cost FLOAT,
-    OUT agg_cost FLOAT)
-RETURNS SETOF RECORD AS
-'$libdir/${PGROUTING_LIBRARY_NAME}', 'astarOneToMany'
-LANGUAGE c IMMUTABLE STRICT;
-
-CREATE OR REPLACE FUNCTION _pgr_astar(
-    edges_sql TEXT, -- XY edges sql
-    start_vids anyarray,
-    end_vid BIGINT,
-    directed BOOLEAN DEFAULT true,
-    heuristic INTEGER DEFAULT 5,
-    factor FLOAT DEFAULT 1.0,
-    epsilon FLOAT DEFAULT 1.0,
-    only_cost BOOLEAN DEFAULT false,
-    OUT seq INTEGER,
-    OUT path_seq INTEGER,
-    OUT start_vid BIGINT,
-    OUT node BIGINT,
-    OUT edge BIGINT,
-    OUT cost FLOAT,
-    OUT agg_cost FLOAT)
-RETURNS SETOF RECORD AS
-'$libdir/${PGROUTING_LIBRARY_NAME}', 'astarManyToOne'
-LANGUAGE c IMMUTABLE STRICT;
-
-CREATE OR REPLACE FUNCTION _pgr_astar(
-    edges_sql TEXT, -- XY edges sql
-    start_vids anyarray,
-    end_vids anyarray,
-    directed BOOLEAN DEFAULT true,
-    heuristic INTEGER DEFAULT 5,
-    factor FLOAT DEFAULT 1.0,
-    epsilon FLOAT DEFAULT 1.0,
-    only_cost BOOLEAN DEFAULT false,
-    OUT seq INTEGER,
-    OUT path_seq INTEGER,
-    OUT start_vid BIGINT,
-    OUT end_vid BIGINT,
-    OUT node BIGINT,
-    OUT edge BIGINT,
-    OUT cost FLOAT,
-    OUT agg_cost FLOAT)
-RETURNS SETOF RECORD AS
-'$libdir/${PGROUTING_LIBRARY_NAME}', 'astarManyToMany'
-LANGUAGE c IMMUTABLE STRICT;
diff --git a/src/astar/sql/astar.sql b/src/astar/sql/astar.sql
deleted file mode 100644
index 7c71375..0000000
--- a/src/astar/sql/astar.sql
+++ /dev/null
@@ -1,136 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: astar.sql
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer: 
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: 
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-CREATE OR REPLACE FUNCTION pgr_astar(
-    edges_sql TEXT, -- XY edges sql
-    start_vid BIGINT,
-    end_vid BIGINT,
-    directed BOOLEAN DEFAULT true,
-    heuristic INTEGER DEFAULT 5,
-    factor FLOAT DEFAULT 1.0,
-    epsilon FLOAT DEFAULT 1.0,
-    OUT seq INTEGER,
-    OUT path_seq INTEGER,
-    OUT node BIGINT,
-    OUT edge BIGINT,
-    OUT cost FLOAT,
-    OUT agg_cost FLOAT)
-
-RETURNS SETOF RECORD AS
-$BODY$
-BEGIN
-    RETURN query SELECT *
-    FROM _pgr_astar(_pgr_get_statement($1), $2, $3, $4, $5, $6, $7);
-END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
-
-CREATE OR REPLACE FUNCTION pgr_astar(
-    edges_sql TEXT, -- XY edges sql
-    start_vid BIGINT,
-    end_vids ANYARRAY,
-    directed BOOLEAN DEFAULT true,
-    heuristic INTEGER DEFAULT 5,
-    factor FLOAT DEFAULT 1.0,
-    epsilon FLOAT DEFAULT 1.0,
-    OUT seq INTEGER,
-    OUT path_seq INTEGER,
-    OUT end_vid BIGINT,
-    OUT node BIGINT,
-    OUT edge BIGINT,
-    OUT cost FLOAT,
-    OUT agg_cost FLOAT)
-
-RETURNS SETOF RECORD AS
-$BODY$
-BEGIN
-    RETURN query SELECT *
-    FROM _pgr_astar(_pgr_get_statement($1), $2, $3, $4, $5, $6, $7);
-END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
-
-CREATE OR REPLACE FUNCTION pgr_astar(
-    edges_sql TEXT, -- XY edges sql
-    start_vids ANYARRAY,
-    end_vid BIGINT,
-    directed BOOLEAN DEFAULT true,
-    heuristic INTEGER DEFAULT 5,
-    factor FLOAT DEFAULT 1.0,
-    epsilon FLOAT DEFAULT 1.0,
-    OUT seq INTEGER,
-    OUT path_seq INTEGER,
-    OUT start_vid BIGINT,
-    OUT node BIGINT,
-    OUT edge BIGINT,
-    OUT cost FLOAT,
-    OUT agg_cost FLOAT)
-
-RETURNS SETOF RECORD AS
-$BODY$
-BEGIN
-    RETURN query SELECT *
-    FROM _pgr_astar(_pgr_get_statement($1), $2, $3, $4, $5, $6, $7);
-END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
-
-CREATE OR REPLACE FUNCTION pgr_astar(
-    edges_sql TEXT, -- XY edges sql
-    start_vids ANYARRAY,
-    end_vids ANYARRAY,
-    directed BOOLEAN DEFAULT true,
-    heuristic INTEGER DEFAULT 5,
-    factor FLOAT DEFAULT 1.0,
-    epsilon FLOAT DEFAULT 1.0,
-    OUT seq INTEGER,
-    OUT path_seq INTEGER,
-    OUT start_vid BIGINT,
-    OUT end_vid BIGINT,
-    OUT node BIGINT,
-    OUT edge BIGINT,
-    OUT cost FLOAT,
-    OUT agg_cost FLOAT)
-
-RETURNS SETOF RECORD AS
-$BODY$
-BEGIN
-    RETURN query SELECT *
-    FROM _pgr_astar(_pgr_get_statement($1), $2, $3, $4, $5, $6, $7);
-END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
-
diff --git a/src/astar/sql/astarCost.sql b/src/astar/sql/astarCost.sql
deleted file mode 100644
index 719dfd1..0000000
--- a/src/astar/sql/astarCost.sql
+++ /dev/null
@@ -1,130 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: astar.sql
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer: 
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: 
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-
---
--- pgr_astarCost subfamily of functions
---
-
--- one to one
-CREATE OR REPLACE FUNCTION pgr_astarCost(
-    edges_sql TEXT, -- XY edges sql
-    BIGINT, -- start_id
-    BIGINT, -- end_id
-    directed BOOLEAN DEFAULT true,
-    heuristic INTEGER DEFAULT 5,
-    factor FLOAT DEFAULT 1.0,
-    epsilon FLOAT DEFAULT 1.0,
-    OUT start_vid BIGINT,
-    OUT end_vid BIGINT,
-    OUT agg_cost FLOAT)
-
-RETURNS SETOF RECORD AS
-$BODY$
-BEGIN
-    RETURN query SELECT $2, $3, a.agg_cost
-    FROM _pgr_astar(_pgr_get_statement($1), $2, $3, $4, $5, $6, $7, true) a;
-END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
-
--- one to many
-CREATE OR REPLACE FUNCTION pgr_astarCost(
-    edges_sql TEXT, -- XY edges sql
-    BIGINT,
-    end_vids ANYARRAY,
-    directed BOOLEAN DEFAULT true,
-    heuristic INTEGER DEFAULT 5,
-    factor FLOAT DEFAULT 1.0,
-    epsilon FLOAT DEFAULT 1.0,
-    OUT start_vid BIGINT,
-    OUT end_vid BIGINT,
-    OUT agg_cost FLOAT)
-
-RETURNS SETOF RECORD AS
-$BODY$
-BEGIN
-    RETURN query SELECT $2, a.end_vid, a.agg_cost 
-    FROM _pgr_astar(_pgr_get_statement($1), $2, $3, $4, $5, $6, $7, true) a;
-END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
-
--- many to one
-CREATE OR REPLACE FUNCTION pgr_astarCost(
-    edges_sql TEXT, -- XY edges sql
-    start_vids ANYARRAY,
-    BIGINT,
-    directed BOOLEAN DEFAULT true,
-    heuristic INTEGER DEFAULT 5,
-    factor FLOAT DEFAULT 1.0,
-    epsilon FLOAT DEFAULT 1.0,
-    OUT start_vid BIGINT,
-    OUT end_vid BIGINT,
-    OUT agg_cost FLOAT)
-
-RETURNS SETOF RECORD AS
-$BODY$
-BEGIN
-    RETURN query SELECT  a.start_vid, $3, a.agg_cost
-    FROM _pgr_astar(_pgr_get_statement($1), $2, $3, $4, $5, $6, $7, true) a;
-END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
-
--- many to many
-CREATE OR REPLACE FUNCTION pgr_astarCost(
-    edges_sql TEXT, -- XY edges sql
-    start_vids ANYARRAY,
-    end_vids ANYARRAY,
-    directed BOOLEAN DEFAULT true,
-    heuristic INTEGER DEFAULT 5,
-    factor FLOAT DEFAULT 1.0,
-    epsilon FLOAT DEFAULT 1.0,
-    OUT start_vid BIGINT,
-    OUT end_vid BIGINT,
-    OUT agg_cost FLOAT)
-
-RETURNS SETOF RECORD AS
-$BODY$
-BEGIN
-    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
-    FROM _pgr_astar(_pgr_get_statement($1), $2, $3, $4, $5, $6, $7, true) a;
-END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
-
diff --git a/src/astar/sql/astarOneToOne.sql b/src/astar/sql/astarOneToOne.sql
deleted file mode 100644
index ab9cd2e..0000000
--- a/src/astar/sql/astarOneToOne.sql
+++ /dev/null
@@ -1,75 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: astarOneToOne.sql
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer: 
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: 
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-CREATE OR REPLACE FUNCTION _pgr_astar(
-    edges_sql TEXT, -- XY edges sql
-    start_vid BIGINT,
-    end_vid BIGINT,
-    directed BOOLEAN DEFAULT true,
-    heuristic INTEGER DEFAULT 5,
-    factor FLOAT DEFAULT 1.0,
-    epsilon FLOAT DEFAULT 1.0,
-    only_cost BOOLEAN DEFAULT false,
-    OUT seq INTEGER,
-    OUT path_seq INTEGER,
-    OUT node BIGINT,
-    OUT edge BIGINT,
-    OUT cost FLOAT,
-    OUT agg_cost FLOAT)
-
-RETURNS SETOF RECORD AS
-'$libdir/${PGROUTING_LIBRARY_NAME}', 'astarOneToOne'
-LANGUAGE c IMMUTABLE STRICT;
-
-CREATE OR REPLACE FUNCTION pgr_astar(
-    edges_sql TEXT, -- XY edges sql
-    start_vid BIGINT,
-    end_vid BIGINT,
-    directed BOOLEAN DEFAULT true,
-    heuristic INTEGER DEFAULT 5,
-    factor FLOAT DEFAULT 1.0,
-    epsilon FLOAT DEFAULT 1.0,
-    OUT seq INTEGER,
-    OUT path_seq INTEGER,
-    OUT node BIGINT,
-    OUT edge BIGINT,
-    OUT cost FLOAT,
-    OUT agg_cost FLOAT)
-
-RETURNS SETOF RECORD AS
-$BODY$
-BEGIN
-    RETURN query SELECT *
-    FROM _pgr_astar(_pgr_get_statement($1), $2, $3, $4, $5, $6, $7);
-END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
-
diff --git a/src/astar/sql/astarV2.0.sql b/src/astar/sql/astarV2.0.sql
deleted file mode 100644
index 3bdc6ae..0000000
--- a/src/astar/sql/astarV2.0.sql
+++ /dev/null
@@ -1,50 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-
--- V2 signature
-CREATE OR REPLACE FUNCTION pgr_astar(edges_sql TEXT, source_id INTEGER, target_id INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
-RETURNS SETOF pgr_costresult AS
-$BODY$
-DECLARE
-has_reverse BOOLEAN;
-sql TEXT;
-BEGIN
-    RAISE NOTICE 'Deprecated signature pgr_astar(text, integer, integer, boolean, boolean)';
-    has_reverse =_pgr_parameter_check('astar', edges_sql, false);
-    sql = edges_sql;
-    IF (has_reverse != has_rcost) THEN
-        IF (has_reverse) THEN
-            sql = 'SELECT id, source, target, cost, x1,y1, x2, y2 FROM (' || edges_sql || ') a';
-        ELSE
-            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
-        END IF;
-    END IF;
-
-    RETURN query SELECT seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost 
-    FROM pgr_astar(sql, source_id, target_id, directed);
-END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
diff --git a/src/astar/src/CMakeLists.txt b/src/astar/src/CMakeLists.txt
index 61e9dc7..3efa0e7 100644
--- a/src/astar/src/CMakeLists.txt
+++ b/src/astar/src/CMakeLists.txt
@@ -1,8 +1,5 @@
 ADD_LIBRARY(astar OBJECT
-    many_to_many_astar.c
-    many_to_one_astar.c
-    one_to_many_astar.c
-    one_to_one_astar.c
+    astar.c
 
-    astar_many_to_many_driver.cpp
+    astar_driver.cpp
     )
diff --git a/src/astar/src/astar.c b/src/astar/src/astar.c
new file mode 100644
index 0000000..26814a0
--- /dev/null
+++ b/src/astar/src/astar.c
@@ -0,0 +1,246 @@
+/*PGR-GNU*****************************************************************
+File: astarOneToOne.c
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer: 
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: 
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#include "c_common/postgres_connection.h"
+#include "utils/array.h"
+
+#include "c_common/debug_macro.h"
+#include "c_common/e_report.h"
+#include "c_common/time_msg.h"
+#include "c_common/edges_input.h"
+#include "c_common/arrays_input.h"
+
+#include "drivers/astar/astar_driver.h"
+
+PGDLLEXPORT Datum astarManyToMany(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(astarManyToMany);
+
+
+static
+void
+process(char* edges_sql,
+        ArrayType *starts,
+        ArrayType *ends,
+        bool directed,
+        int heuristic,
+        double factor,
+        double epsilon,
+        bool only_cost,
+        bool normal,
+        General_path_element_t **result_tuples,
+        size_t *result_count) {
+    check_parameters(heuristic, factor, epsilon);
+
+    pgr_SPI_connect();
+
+    int64_t* start_vidsArr = NULL;
+    size_t size_start_vidsArr = 0;
+
+    int64_t* end_vidsArr = NULL;
+    size_t size_end_vidsArr = 0;
+
+    Pgr_edge_xy_t *edges = NULL;
+    size_t total_edges = 0;
+
+    if (normal) {
+        pgr_get_edges_xy(edges_sql, &edges, &total_edges);
+        start_vidsArr = (int64_t*)
+            pgr_get_bigIntArray(&size_start_vidsArr, starts);
+        end_vidsArr = (int64_t*)
+            pgr_get_bigIntArray(&size_end_vidsArr, ends);
+    } else {
+        pgr_get_edges_xy_reversed(edges_sql, &edges, &total_edges);
+        end_vidsArr = (int64_t*)
+            pgr_get_bigIntArray(&size_end_vidsArr, starts);
+        start_vidsArr = (int64_t*)
+            pgr_get_bigIntArray(&size_start_vidsArr, ends);
+    }
+
+    if (total_edges == 0) {
+        PGR_DBG("No edges found");
+        (*result_count) = 0;
+        (*result_tuples) = NULL;
+        pgr_SPI_finish();
+        return;
+    }
+
+    PGR_DBG("Starting processing");
+    char *log_msg = NULL;
+    char *notice_msg = NULL;
+    char *err_msg = NULL;
+    clock_t start_t = clock();
+    do_pgr_astarManyToMany(
+            edges, total_edges,
+            start_vidsArr, size_start_vidsArr,
+            end_vidsArr, size_end_vidsArr,
+            directed,
+            heuristic,
+            factor,
+            epsilon,
+            only_cost,
+            normal,
+            result_tuples, result_count,
+            &log_msg,
+            &notice_msg,
+            &err_msg);
+
+    if (only_cost) {
+        time_msg("processing pgr_astarCost(many to many)", start_t, clock());
+    } else {
+        time_msg("processing pgr_astar(many to many)", start_t, clock());
+    }
+
+
+    if (err_msg && (*result_tuples)) {
+        pfree(*result_tuples);
+        (*result_tuples) = NULL;
+        (*result_count) = 0;
+    }
+
+    pgr_global_report(log_msg, notice_msg, err_msg);
+
+    if (log_msg) pfree(log_msg);
+    if (notice_msg) pfree(notice_msg);
+    if (err_msg) pfree(err_msg);
+    if (edges) pfree(edges);
+    if (start_vidsArr) pfree(start_vidsArr);
+    if (end_vidsArr) pfree(end_vidsArr);
+
+    pgr_SPI_finish();
+}
+
+PGDLLEXPORT Datum
+astarManyToMany(PG_FUNCTION_ARGS) {
+    FuncCallContext     *funcctx;
+    TupleDesc           tuple_desc;
+
+    /**********************************************************************/
+    General_path_element_t  *result_tuples = NULL;
+    size_t result_count = 0;
+    /**********************************************************************/
+
+    if (SRF_IS_FIRSTCALL()) {
+        MemoryContext   oldcontext;
+        funcctx = SRF_FIRSTCALL_INIT();
+        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
+
+
+        /**********************************************************************/
+        /*
+           edges_sql TEXT,
+           start_vids ARRAY[ANY_INTEGER], -- anyarray
+           end_vids ARRAY[ANY_INTEGER], -- anyarray
+           directed BOOLEAN DEFAULT true,
+           heuristic INTEGER DEFAULT 0,
+           factor FLOAT DEFAULT 1.0,
+           epsilon FLOAT DEFAULT 1.0,
+
+         **********************************************************************/
+
+        process(
+                text_to_cstring(PG_GETARG_TEXT_P(0)),
+                PG_GETARG_ARRAYTYPE_P(1),
+                PG_GETARG_ARRAYTYPE_P(2),
+                PG_GETARG_BOOL(3),
+                PG_GETARG_INT32(4),
+                PG_GETARG_FLOAT8(5),
+                PG_GETARG_FLOAT8(6),
+                PG_GETARG_BOOL(7),
+                PG_GETARG_BOOL(8),
+                &result_tuples,
+                &result_count);
+
+
+#if PGSQL_VERSION > 95
+        funcctx->max_calls = result_count;
+#else
+        funcctx->max_calls = (uint32_t)result_count;
+#endif
+        funcctx->max_calls = (uint32_t) result_count;
+        funcctx->user_fctx = result_tuples;
+        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
+                != TYPEFUNC_COMPOSITE)
+            ereport(ERROR,
+                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+                     errmsg("function returning record called in context "
+                         "that cannot accept type record")));
+
+        funcctx->tuple_desc = tuple_desc;
+        MemoryContextSwitchTo(oldcontext);
+    }
+
+    funcctx = SRF_PERCALL_SETUP();
+    tuple_desc = funcctx->tuple_desc;
+    result_tuples = (General_path_element_t*) funcctx->user_fctx;
+
+    if (funcctx->call_cntr < funcctx->max_calls) {
+        HeapTuple    tuple;
+        Datum        result;
+        Datum        *values;
+        bool*        nulls;
+
+        /*********************************************************************
+          OUT seq INTEGER,
+          OUT path_seq INTEGER,
+          OUT start_vid BIGINT,
+          OUT end_vid BIGINT,
+          OUT node BIGINT,
+          OUT edge BIGINT,
+          OUT cost FLOAT,
+          OUT agg_cost FLOAT
+         **********************************************************************/
+
+
+        size_t numb = 8;
+        values = palloc(numb * sizeof(Datum));
+        nulls = palloc(numb * sizeof(bool));
+
+        size_t i;
+        for (i = 0; i < numb; ++i) {
+            nulls[i] = false;
+        }
+
+
+        values[0] = Int32GetDatum(funcctx->call_cntr + 1);
+        values[1] = Int32GetDatum(result_tuples[funcctx->call_cntr].seq);
+        values[2] = Int64GetDatum(result_tuples[funcctx->call_cntr].start_id);
+        values[3] = Int64GetDatum(result_tuples[funcctx->call_cntr].end_id);
+        values[4] = Int64GetDatum(result_tuples[funcctx->call_cntr].node);
+        values[5] = Int64GetDatum(result_tuples[funcctx->call_cntr].edge);
+        values[6] = Float8GetDatum(result_tuples[funcctx->call_cntr].cost);
+        values[7] = Float8GetDatum(result_tuples[funcctx->call_cntr].agg_cost);
+
+
+        tuple = heap_form_tuple(tuple_desc, values, nulls);
+        result = HeapTupleGetDatum(tuple);
+        SRF_RETURN_NEXT(funcctx, result);
+    } else {
+        SRF_RETURN_DONE(funcctx);
+    }
+}
diff --git a/src/astar/src/astar_driver.cpp b/src/astar/src/astar_driver.cpp
new file mode 100644
index 0000000..2bee248
--- /dev/null
+++ b/src/astar/src/astar_driver.cpp
@@ -0,0 +1,203 @@
+/*PGR-GNU*****************************************************************
+File: astarOneToOne_driver.cpp
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer: 
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: 
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#include "drivers/astar/astar_driver.h"
+
+#include <sstream>
+#include <deque>
+#include <algorithm>
+#include <vector>
+
+#include "astar/pgr_astar.hpp"
+
+#include "cpp_common/pgr_alloc.hpp"
+#include "cpp_common/pgr_assert.h"
+
+
+void
+check_parameters(
+        int heuristic,
+        double factor,
+        double epsilon) {
+    if (heuristic > 5 || heuristic < 0) {
+        ereport(ERROR,
+                (errmsg("Unknown heuristic"),
+                 errhint("Valid values: 0~5")));
+    }
+    if (factor <= 0) {
+        ereport(ERROR,
+                (errmsg("Factor value out of range"),
+                 errhint("Valid values: positive non zero")));
+    }
+    if (epsilon < 1) {
+        ereport(ERROR,
+                (errmsg("Epsilon value out of range"),
+                 errhint("Valid values: 1 or greater than 1")));
+    }
+}
+
+template < class G >
+std::deque<Path>
+pgr_astar(
+        G &graph,
+        std::vector<int64_t> sources,
+        std::vector<int64_t> targets,
+        int heuristic,
+        double factor,
+        double epsilon,
+        bool only_cost,
+        bool normal) {
+    std::sort(sources.begin(), sources.end());
+    sources.erase(
+            std::unique(sources.begin(), sources.end()),
+            sources.end());
+
+    std::sort(targets.begin(), targets.end());
+    targets.erase(
+            std::unique(targets.begin(), targets.end()),
+            targets.end());
+
+    pgrouting::algorithms::Pgr_astar< G > fn_astar;
+    auto paths = fn_astar.astar(graph, sources, targets,
+            heuristic, factor, epsilon, only_cost);
+
+    if (!normal) {
+        for (auto &path : paths) {
+            path.reverse();
+        }
+    }
+    return paths;
+}
+
+
+/************************************************************
+  edges_sql TEXT,
+  vertex_table TEXT,
+  start_vid BIGINT,
+  end_vid BIGINT  directed BOOLEAN DEFAULT true,
+ ***********************************************************/
+void do_pgr_astarManyToMany(
+        Pgr_edge_xy_t *edges, size_t total_edges,
+        int64_t  *start_vidsArr, size_t size_start_vidsArr,
+        int64_t  *end_vidsArr, size_t size_end_vidsArr,
+        bool directed,
+        int heuristic,
+        double factor,
+        double epsilon,
+        bool only_cost,
+        bool normal,
+        General_path_element_t **return_tuples,
+        size_t *return_count,
+        char** log_msg,
+        char** notice_msg,
+        char** err_msg) {
+    std::ostringstream log;
+    std::ostringstream notice;
+    std::ostringstream err;
+    try {
+        pgassert(!(*log_msg));
+        pgassert(!(*err_msg));
+        pgassert(!(*return_tuples));
+        pgassert(*return_count == 0);
+        pgassert(total_edges != 0);
+
+
+        log << "Inserting target vertices into a c++ vector structure\n";
+        std::vector< int64_t > end_vids(
+                end_vidsArr,
+                end_vidsArr + size_end_vidsArr);
+        std::vector< int64_t > start_vids(
+                start_vidsArr,
+                start_vidsArr + size_start_vidsArr);
+
+        graphType gType = directed? DIRECTED: UNDIRECTED;
+
+        std::deque< Path >paths;
+        if (directed) {
+            log << "Working with directed Graph\n";
+            pgrouting::xyDirectedGraph digraph(
+                    pgrouting::extract_vertices(edges, total_edges),
+                    gType);
+            digraph.insert_edges(edges, total_edges);
+            paths = pgr_astar(digraph, start_vids, end_vids,
+                    heuristic, factor, epsilon, only_cost, normal);
+        } else {
+            log << "Working with Undirected Graph\n";
+            pgrouting::xyUndirectedGraph undigraph(
+                    pgrouting::extract_vertices(edges, total_edges),
+                    gType);
+            undigraph.insert_edges(edges, total_edges);
+            paths = pgr_astar(undigraph, start_vids, end_vids,
+                    heuristic, factor, epsilon, only_cost, normal);
+        }
+
+        size_t count(0);
+        count = count_tuples(paths);
+
+
+        if (count == 0) {
+            (*return_tuples) = NULL;
+            (*return_count) = 0;
+            notice <<
+                "No paths found\n";
+            *log_msg = pgr_msg(notice.str().c_str());
+            return;
+        }
+
+        (*return_tuples) = pgr_alloc(count, (*return_tuples));
+        log << "Converting a set of paths into the tuples\n";
+        (*return_count) = (collapse_paths(return_tuples, paths));
+
+        *log_msg = log.str().empty()?
+            *log_msg :
+            pgr_msg(log.str().c_str());
+        *notice_msg = notice.str().empty()?
+            *notice_msg :
+            pgr_msg(notice.str().c_str());
+    } catch (AssertFailedException &except) {
+        (*return_tuples) = pgr_free(*return_tuples);
+        (*return_count) = 0;
+        err << except.what();
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    } catch (std::exception &except) {
+        (*return_tuples) = pgr_free(*return_tuples);
+        (*return_count) = 0;
+        err << except.what();
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    } catch(...) {
+        (*return_tuples) = pgr_free(*return_tuples);
+        (*return_count) = 0;
+        err << "Caught unknown exception!";
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    }
+}
+
diff --git a/src/astar/src/astar_many_to_many_driver.cpp b/src/astar/src/astar_many_to_many_driver.cpp
deleted file mode 100644
index 5150f72..0000000
--- a/src/astar/src/astar_many_to_many_driver.cpp
+++ /dev/null
@@ -1,204 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: astarOneToOne_driver.cpp
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer: 
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: 
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#include "./astar_many_to_many_driver.h"
-
-#include <sstream>
-#include <deque>
-#include <algorithm>
-#include <vector>
-
-#include "./pgr_astar.hpp"
-
-#include "./../../common/src/pgr_alloc.hpp"
-#include "./../../common/src/pgr_assert.h"
-#include "./../../common/src/pgr_types.h"
-
-
-void
-check_parameters(
-        int heuristic,
-        double factor,
-        double epsilon) {
-    if (heuristic > 5 || heuristic < 0) {
-        ereport(ERROR,
-                (errmsg("Unknown heuristic"),
-                 errhint("Valid values: 0~5")));
-    }
-    if (factor <= 0) {
-        ereport(ERROR,
-                (errmsg("Factor value out of range"),
-                 errhint("Valid values: positive non zero")));
-    }
-    if (epsilon < 1) {
-        ereport(ERROR,
-                (errmsg("Epsilon value out of range"),
-                 errhint("Valid values: 1 or greater than 1")));
-    }
-}
-
-template < class G >
-std::deque<Path>
-pgr_astar(
-        G &graph,
-        std::vector<int64_t> sources,
-        std::vector<int64_t> targets,
-        int heuristic,
-        double factor,
-        double epsilon,
-        bool only_cost,
-        bool normal) {
-    std::sort(sources.begin(), sources.end());
-    sources.erase(
-            std::unique(sources.begin(), sources.end()),
-            sources.end());
-
-    std::sort(targets.begin(), targets.end());
-    targets.erase(
-            std::unique(targets.begin(), targets.end()),
-            targets.end());
-
-    pgrouting::algorithms::Pgr_astar< G > fn_astar;
-    auto paths = fn_astar.astar(graph, sources, targets,
-            heuristic, factor, epsilon, only_cost);
-
-    if (!normal) {
-        for (auto &path : paths) {
-            path.reverse();
-        }
-    }
-    return paths;
-}
-
-
-/************************************************************
-  edges_sql TEXT,
-  vertex_table TEXT,
-  start_vid BIGINT,
-  end_vid BIGINT  directed BOOLEAN DEFAULT true,
- ***********************************************************/
-void do_pgr_astarManyToMany(
-        Pgr_edge_xy_t  *edges, size_t total_edges,
-        int64_t  *start_vidsArr, size_t size_start_vidsArr,
-        int64_t  *end_vidsArr, size_t size_end_vidsArr,
-        bool directed,
-        int heuristic,
-        double factor,
-        double epsilon,
-        bool only_cost,
-        bool normal,
-        General_path_element_t **return_tuples,
-        size_t *return_count,
-        char** log_msg,
-        char** notice_msg,
-        char** err_msg) {
-    std::ostringstream log;
-    std::ostringstream notice;
-    std::ostringstream err;
-    try {
-        pgassert(!(*log_msg));
-        pgassert(!(*err_msg));
-        pgassert(!(*return_tuples));
-        pgassert(*return_count == 0);
-        pgassert(total_edges != 0);
-
-
-        log << "Inserting target vertices into a c++ vector structure\n";
-        std::vector< int64_t > end_vids(
-                end_vidsArr,
-                end_vidsArr + size_end_vidsArr);
-        std::vector< int64_t > start_vids(
-                start_vidsArr,
-                start_vidsArr + size_start_vidsArr);
-
-        graphType gType = directed? DIRECTED: UNDIRECTED;
-
-        std::deque< Path >paths;
-        if (directed) {
-            log << "Working with directed Graph\n";
-            pgrouting::xyDirectedGraph digraph(
-                    pgrouting::extract_vertices(edges, total_edges),
-                    gType);
-            digraph.insert_edges(edges, total_edges);
-            paths = pgr_astar(digraph, start_vids, end_vids,
-                    heuristic, factor, epsilon, only_cost, normal);
-        } else {
-            log << "Working with Undirected Graph\n";
-            pgrouting::xyUndirectedGraph undigraph(
-                    pgrouting::extract_vertices(edges, total_edges),
-                    gType);
-            undigraph.insert_edges(edges, total_edges);
-            paths = pgr_astar(undigraph, start_vids, end_vids,
-                    heuristic, factor, epsilon, only_cost, normal);
-        }
-
-        size_t count(0);
-        count = count_tuples(paths);
-
-
-        if (count == 0) {
-            (*return_tuples) = NULL;
-            (*return_count) = 0;
-            log <<
-                "No paths found\n";
-            *log_msg = pgr_msg(log.str().c_str());
-            return;
-        }
-
-        (*return_tuples) = pgr_alloc(count, (*return_tuples));
-        log << "Converting a set of paths into the tuples\n";
-        (*return_count) = (collapse_paths(return_tuples, paths));
-
-        *log_msg = log.str().empty()?
-            *log_msg :
-            pgr_msg(log.str().c_str());
-        *notice_msg = notice.str().empty()?
-            *notice_msg :
-            pgr_msg(notice.str().c_str());
-    } catch (AssertFailedException &except) {
-        (*return_tuples) = pgr_free(*return_tuples);
-        (*return_count) = 0;
-        err << except.what();
-        *err_msg = pgr_msg(err.str().c_str());
-        *log_msg = pgr_msg(log.str().c_str());
-    } catch (std::exception &except) {
-        (*return_tuples) = pgr_free(*return_tuples);
-        (*return_count) = 0;
-        err << except.what();
-        *err_msg = pgr_msg(err.str().c_str());
-        *log_msg = pgr_msg(log.str().c_str());
-    } catch(...) {
-        (*return_tuples) = pgr_free(*return_tuples);
-        (*return_count) = 0;
-        err << "Caught unknown exception!";
-        *err_msg = pgr_msg(err.str().c_str());
-        *log_msg = pgr_msg(log.str().c_str());
-    }
-}
-
diff --git a/src/astar/src/astar_many_to_many_driver.h b/src/astar/src/astar_many_to_many_driver.h
deleted file mode 100644
index d028fb1..0000000
--- a/src/astar/src/astar_many_to_many_driver.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: astarOneToMany_driver.h
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer: 
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: 
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifndef SRC_ASTAR_SRC_ASTAR_MANY_TO_MANY_DRIVER_H_
-#define SRC_ASTAR_SRC_ASTAR_MANY_TO_MANY_DRIVER_H_
-#pragma once
-
-#include "./../../common/src/pgr_types.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-    void check_parameters(
-            int heuristic,
-            double factor,
-            double epsilon);
-
-    /*********************************************************
-      edges_sql TEXT,
-      vertex_table TEXT,
-      start_vid BIGINT,
-      end_vid BIGINT  directed BOOLEAN DEFAULT true,
-     ********************************************************/
-    void do_pgr_astarManyToMany(
-            Pgr_edge_xy_t  *data_edges,
-            size_t total_edges,
-            int64_t  *start_vidsArr, size_t size_start_vidsArr,
-            int64_t  *end_vidsArr, size_t size_end_vidsArr,
-            bool directed,
-            int heuristic,
-            double factor,
-            double epsilon,
-            bool only_cost,
-            bool normal,
-            General_path_element_t **return_tuples,
-            size_t *return_count,
-            char** log_msg,
-            char** notice_msg,
-            char** err_msg);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif  // SRC_ASTAR_SRC_ASTAR_MANY_TO_MANY_DRIVER_H_
diff --git a/src/astar/src/many_to_many_astar.c b/src/astar/src/many_to_many_astar.c
deleted file mode 100644
index 2449bd4..0000000
--- a/src/astar/src/many_to_many_astar.c
+++ /dev/null
@@ -1,238 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: astarOneToOne.c
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer: 
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: 
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#include "./../../common/src/postgres_connection.h"
-#include "utils/array.h"
-
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/e_report.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/edges_input.h"
-#include "./../../common/src/arrays_input.h"
-
-#include "./astar_many_to_many_driver.h"
-
-PGDLLEXPORT Datum astarManyToMany(PG_FUNCTION_ARGS);
-PG_FUNCTION_INFO_V1(astarManyToMany);
-
-
-static
-void
-process(char* edges_sql,
-        ArrayType *starts,
-        ArrayType *ends,
-        bool directed,
-        int heuristic,
-        double factor,
-        double epsilon,
-        bool only_cost,
-        General_path_element_t **result_tuples,
-        size_t *result_count) {
-    check_parameters(heuristic, factor, epsilon);
-
-    pgr_SPI_connect();
-
-    int64_t* start_vidsArr = NULL;
-    size_t size_start_vidsArr = 0;
-    start_vidsArr = (int64_t*)
-        pgr_get_bigIntArray(&size_start_vidsArr, starts);
-
-    int64_t* end_vidsArr = NULL;
-    size_t size_end_vidsArr = 0;
-    end_vidsArr = (int64_t*)
-        pgr_get_bigIntArray(&size_end_vidsArr, ends);
-
-
-    Pgr_edge_xy_t *edges = NULL;
-    size_t total_edges = 0;
-
-    pgr_get_edges_xy(edges_sql, &edges, &total_edges);
-
-    if (total_edges == 0) {
-        PGR_DBG("No edges found");
-        (*result_count) = 0;
-        (*result_tuples) = NULL;
-        pgr_SPI_finish();
-        return;
-    }
-
-    PGR_DBG("Starting processing");
-    char *log_msg = NULL;
-    char *notice_msg = NULL;
-    char *err_msg = NULL;
-    clock_t start_t = clock();
-    do_pgr_astarManyToMany(
-            edges, total_edges,
-            start_vidsArr, size_start_vidsArr,
-            end_vidsArr, size_end_vidsArr,
-            directed,
-            heuristic,
-            factor,
-            epsilon,
-            only_cost,
-            true,
-            result_tuples, result_count,
-            &log_msg,
-            &notice_msg,
-            &err_msg);
-
-    if (only_cost) {
-        time_msg("processing pgr_astarCost(many to many)", start_t, clock());
-    } else {
-        time_msg("processing pgr_astar(many to many)", start_t, clock());
-    }
-
-
-    if (err_msg && (*result_tuples)) {
-        pfree(*result_tuples);
-        (*result_tuples) = NULL;
-        (*result_count) = 0;
-    }
-
-    pgr_global_report(log_msg, notice_msg, err_msg);
-
-    if (log_msg) pfree(log_msg);
-    if (notice_msg) pfree(notice_msg);
-    if (err_msg) pfree(err_msg);
-    if (edges) pfree(edges);
-    if (start_vidsArr) pfree(start_vidsArr);
-    if (end_vidsArr) pfree(end_vidsArr);
-
-    pgr_SPI_finish();
-}
-
-PGDLLEXPORT Datum
-astarManyToMany(PG_FUNCTION_ARGS) {
-    FuncCallContext     *funcctx;
-    TupleDesc           tuple_desc;
-
-    /**********************************************************************/
-    General_path_element_t  *result_tuples = NULL;
-    size_t result_count = 0;
-    /**********************************************************************/
-
-    if (SRF_IS_FIRSTCALL()) {
-        MemoryContext   oldcontext;
-        funcctx = SRF_FIRSTCALL_INIT();
-        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
-
-
-        /**********************************************************************/
-        /*
-           edges_sql TEXT,
-           start_vids ARRAY[ANY_INTEGER], -- anyarray
-           end_vids ARRAY[ANY_INTEGER], -- anyarray
-           directed BOOLEAN DEFAULT true,
-           heuristic INTEGER DEFAULT 0,
-           factor FLOAT DEFAULT 1.0,
-           epsilon FLOAT DEFAULT 1.0,
-
-         **********************************************************************/
-
-        process(
-                text_to_cstring(PG_GETARG_TEXT_P(0)),
-                PG_GETARG_ARRAYTYPE_P(1),
-                PG_GETARG_ARRAYTYPE_P(2),
-                PG_GETARG_BOOL(3),
-                PG_GETARG_INT32(4),
-                PG_GETARG_FLOAT8(5),
-                PG_GETARG_FLOAT8(6),
-                PG_GETARG_BOOL(7),
-                &result_tuples,
-                &result_count);
-
-
-#if PGSQL_VERSION > 95
-        funcctx->max_calls = result_count;
-#else
-        funcctx->max_calls = (uint32_t)result_count;
-#endif
-        funcctx->max_calls = (uint32_t) result_count;
-        funcctx->user_fctx = result_tuples;
-        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
-                != TYPEFUNC_COMPOSITE)
-            ereport(ERROR,
-                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-                     errmsg("function returning record called in context "
-                         "that cannot accept type record")));
-
-        funcctx->tuple_desc = tuple_desc;
-        MemoryContextSwitchTo(oldcontext);
-    }
-
-    funcctx = SRF_PERCALL_SETUP();
-    tuple_desc = funcctx->tuple_desc;
-    result_tuples = (General_path_element_t*) funcctx->user_fctx;
-
-    if (funcctx->call_cntr < funcctx->max_calls) {
-        HeapTuple    tuple;
-        Datum        result;
-        Datum        *values;
-        bool*        nulls;
-
-        /*********************************************************************
-          OUT seq INTEGER,
-          OUT path_seq INTEGER,
-          OUT start_vid BIGINT,
-          OUT end_vid BIGINT,
-          OUT node BIGINT,
-          OUT edge BIGINT,
-          OUT cost FLOAT,
-          OUT agg_cost FLOAT
-         **********************************************************************/
-
-
-        size_t numb = 8;
-        values = palloc(numb * sizeof(Datum));
-        nulls = palloc(numb * sizeof(bool));
-
-        size_t i;
-        for (i = 0; i < numb; ++i) {
-            nulls[i] = false;
-        }
-
-
-        values[0] = Int32GetDatum(funcctx->call_cntr + 1);
-        values[1] = Int32GetDatum(result_tuples[funcctx->call_cntr].seq);
-        values[2] = Int64GetDatum(result_tuples[funcctx->call_cntr].start_id);
-        values[3] = Int64GetDatum(result_tuples[funcctx->call_cntr].end_id);
-        values[4] = Int64GetDatum(result_tuples[funcctx->call_cntr].node);
-        values[5] = Int64GetDatum(result_tuples[funcctx->call_cntr].edge);
-        values[6] = Float8GetDatum(result_tuples[funcctx->call_cntr].cost);
-        values[7] = Float8GetDatum(result_tuples[funcctx->call_cntr].agg_cost);
-
-
-        tuple = heap_form_tuple(tuple_desc, values, nulls);
-        result = HeapTupleGetDatum(tuple);
-        SRF_RETURN_NEXT(funcctx, result);
-    } else {
-        SRF_RETURN_DONE(funcctx);
-    }
-}
diff --git a/src/astar/src/many_to_one_astar.c b/src/astar/src/many_to_one_astar.c
deleted file mode 100644
index 08cfebf..0000000
--- a/src/astar/src/many_to_one_astar.c
+++ /dev/null
@@ -1,225 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: astarOneToOne.c
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer: 
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: 
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#include "./../../common/src/postgres_connection.h"
-#include "utils/array.h"
-
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/e_report.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/edges_input.h"
-#include "./../../common/src/arrays_input.h"
-
-#include "./astar_many_to_many_driver.h"
-
-PGDLLEXPORT Datum astarManyToOne(PG_FUNCTION_ARGS);
-PG_FUNCTION_INFO_V1(astarManyToOne);
-
-
-static
-void
-process(char* edges_sql,
-        ArrayType *starts,
-        int64_t end_vid,
-        bool directed,
-        int heuristic,
-        double factor,
-        double epsilon,
-        bool only_cost,
-        General_path_element_t **result_tuples,
-        size_t *result_count) {
-    check_parameters(heuristic, factor, epsilon);
-
-    pgr_SPI_connect();
-
-    size_t size_start_vidsArr = 0;
-    int64_t* start_vidsArr = pgr_get_bigIntArray(&size_start_vidsArr, starts);
-
-    Pgr_edge_xy_t *edges = NULL;
-    size_t total_edges = 0;
-
-    pgr_get_edges_xy_reversed(edges_sql, &edges, &total_edges);
-
-    if (total_edges == 0) {
-        PGR_DBG("No edges found");
-        (*result_count) = 0;
-        (*result_tuples) = NULL;
-        pgr_SPI_finish();
-        return;
-    }
-
-    PGR_DBG("Starting processing");
-    char* log_msg = NULL;
-    char* notice_msg = NULL;
-    char* err_msg = NULL;
-    clock_t start_t = clock();
-    do_pgr_astarManyToMany(
-            edges, total_edges,
-            &end_vid, 1,
-            start_vidsArr, size_start_vidsArr,
-            directed,
-            heuristic,
-            factor,
-            epsilon,
-            only_cost,
-            false,
-            result_tuples,
-            result_count,
-            &log_msg,
-            &notice_msg,
-            &err_msg);
-
-    if (only_cost) {
-        time_msg("processing pgr_astarCost(one to many)", start_t, clock());
-    } else {
-        time_msg("processing pgr_astar(one to many)", start_t, clock());
-    }
-
-
-    if (err_msg && (*result_tuples)) {
-        pfree(*result_tuples);
-        (*result_tuples) = NULL;
-        (*result_count) = 0;
-    }
-
-    pgr_global_report(log_msg, notice_msg, err_msg);
-
-    if (log_msg) pfree(log_msg);
-    if (notice_msg) pfree(notice_msg);
-    if (err_msg) pfree(err_msg);
-    if (edges) pfree(edges);
-    if (start_vidsArr) pfree(start_vidsArr);
-
-    pgr_SPI_finish();
-}
-
-PGDLLEXPORT Datum
-astarManyToOne(PG_FUNCTION_ARGS) {
-    FuncCallContext     *funcctx;
-    TupleDesc           tuple_desc;
-
-    General_path_element_t  *result_tuples = 0;
-    size_t result_count = 0;
-
-    if (SRF_IS_FIRSTCALL()) {
-        MemoryContext   oldcontext;
-        funcctx = SRF_FIRSTCALL_INIT();
-        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
-
-
-        /**********************************************************************
-          edges_sql TEXT,
-          start_vid BIGINT,
-          end_vids ARRAY[ANY_INTEGER], -- anyarray
-          directed BOOLEAN DEFAULT true,
-          heuristic INTEGER DEFAULT 0,
-          factor FLOAT DEFAULT 1.0,
-          epsilon FLOAT DEFAULT 1.0,
-
-         **********************************************************************/
-
-        process(
-                text_to_cstring(PG_GETARG_TEXT_P(0)),
-                PG_GETARG_ARRAYTYPE_P(1),
-                PG_GETARG_INT64(2),
-                PG_GETARG_BOOL(3),
-                PG_GETARG_INT32(4),
-                PG_GETARG_FLOAT8(5),
-                PG_GETARG_FLOAT8(6),
-                PG_GETARG_BOOL(7),
-                &result_tuples,
-                &result_count);
-
-
-
-#if PGSQL_VERSION > 95
-        funcctx->max_calls = result_count;
-#else
-        funcctx->max_calls = (uint32_t)result_count;
-#endif
-        funcctx->user_fctx = result_tuples;
-        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
-                != TYPEFUNC_COMPOSITE)
-            ereport(ERROR,
-                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-                     errmsg("function returning record called in context "
-                         "that cannot accept type record")));
-
-        funcctx->tuple_desc = tuple_desc;
-        MemoryContextSwitchTo(oldcontext);
-    }
-
-    funcctx = SRF_PERCALL_SETUP();
-    tuple_desc = funcctx->tuple_desc;
-    result_tuples = (General_path_element_t*) funcctx->user_fctx;
-
-    if (funcctx->call_cntr < funcctx->max_calls) {
-        HeapTuple    tuple;
-        Datum        result;
-        Datum        *values;
-        bool*        nulls;
-
-        /*********************************************************************
-          OUT seq INTEGER,
-          OUT path_seq INTEGER,
-          OUT end_vid BIGINT,
-          OUT node BIGINT,
-          OUT edge BIGINT,
-          OUT cost FLOAT,
-          OUT agg_cost FLOAT
-         **********************************************************************/
-
-
-        values = palloc(7 * sizeof(Datum));
-        nulls = palloc(7 * sizeof(bool));
-
-        size_t i;
-        for (i = 0; i < 7; ++i) {
-            nulls[i] = false;
-        }
-
-
-        values[0] = Int32GetDatum(funcctx->call_cntr + 1);
-        values[1] = Int32GetDatum(result_tuples[funcctx->call_cntr].seq);
-        values[2] = Int64GetDatum(result_tuples[funcctx->call_cntr].start_id);
-        values[3] = Int64GetDatum(result_tuples[funcctx->call_cntr].node);
-        values[4] = Int64GetDatum(result_tuples[funcctx->call_cntr].edge);
-        values[5] = Float8GetDatum(result_tuples[funcctx->call_cntr].cost);
-        values[6] = Float8GetDatum(result_tuples[funcctx->call_cntr].agg_cost);
-
-
-        tuple = heap_form_tuple(tuple_desc, values, nulls);
-        result = HeapTupleGetDatum(tuple);
-        SRF_RETURN_NEXT(funcctx, result);
-    } else {
-        SRF_RETURN_DONE(funcctx);
-    }
-}
-
diff --git a/src/astar/src/one_to_many_astar.c b/src/astar/src/one_to_many_astar.c
deleted file mode 100644
index fe298b4..0000000
--- a/src/astar/src/one_to_many_astar.c
+++ /dev/null
@@ -1,225 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: astarOneToOne.c
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer: 
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: 
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#include "./../../common/src/postgres_connection.h"
-#include "utils/array.h"
-
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/e_report.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/edges_input.h"
-#include "./../../common/src/arrays_input.h"
-#include "./astar_many_to_many_driver.h"
-
-PGDLLEXPORT Datum astarOneToMany(PG_FUNCTION_ARGS);
-PG_FUNCTION_INFO_V1(astarOneToMany);
-
-static
-void
-process(char* edges_sql,
-        int64_t start_vid,
-        ArrayType *ends,
-        bool directed,
-        int heuristic,
-        double factor,
-        double epsilon,
-        bool only_cost,
-        General_path_element_t **result_tuples,
-        size_t *result_count) {
-    check_parameters(heuristic, factor, epsilon);
-
-    size_t size_end_vidsArr = 0;
-    int64_t* end_vidsArr = pgr_get_bigIntArray(&size_end_vidsArr, ends);
-
-    pgr_SPI_connect();
-
-    Pgr_edge_xy_t *edges = NULL;
-    size_t total_edges = 0;
-
-    pgr_get_edges_xy(edges_sql, &edges, &total_edges);
-
-    if (total_edges == 0) {
-        PGR_DBG("No edges found");
-        (*result_count) = 0;
-        (*result_tuples) = NULL;
-        pgr_SPI_finish();
-        return;
-    }
-
-    PGR_DBG("Starting processing");
-    char* log_msg = NULL;
-    char* notice_msg = NULL;
-    char* err_msg = NULL;
-    clock_t start_t = clock();
-    do_pgr_astarManyToMany(
-            edges, total_edges,
-            &start_vid, 1,
-            end_vidsArr, size_end_vidsArr,
-            directed,
-            heuristic,
-            factor,
-            epsilon,
-            only_cost,
-            true,
-            result_tuples,
-            result_count,
-            &log_msg,
-            &notice_msg,
-            &err_msg);
-
-    if (only_cost) {
-        time_msg("processing pgr_astarCost(one to many)", start_t, clock());
-    } else {
-        time_msg("processing pgr_astar(one to many)", start_t, clock());
-    }
-
-
-    if (err_msg && (*result_tuples)) {
-        pfree(*result_tuples);
-        (*result_tuples) = NULL;
-        (*result_count) = 0;
-    }
-
-    pgr_global_report(log_msg, notice_msg, err_msg);
-
-    if (log_msg) pfree(log_msg);
-    if (notice_msg) pfree(notice_msg);
-    if (err_msg) pfree(err_msg);
-    if (edges) pfree(edges);
-    if (end_vidsArr) pfree(end_vidsArr);
-
-    pgr_SPI_finish();
-}
-
-PGDLLEXPORT Datum
-astarOneToMany(PG_FUNCTION_ARGS) {
-    FuncCallContext     *funcctx;
-    TupleDesc           tuple_desc;
-
-    General_path_element_t  *result_tuples = 0;
-    size_t result_count = 0;
-
-    if (SRF_IS_FIRSTCALL()) {
-        MemoryContext   oldcontext;
-        funcctx = SRF_FIRSTCALL_INIT();
-        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
-
-
-        /*****************************************************************
-          edges_sql TEXT,
-          start_vid BIGINT,
-          end_vids ARRAY[ANY_INTEGER], -- anyarray
-          directed BOOLEAN DEFAULT true,
-          heuristic INTEGER DEFAULT 0,
-          factor FLOAT DEFAULT 1.0,
-          epsilon FLOAT DEFAULT 1.0,
-
-         ****************************************************************/
-
-
-        process(
-                text_to_cstring(PG_GETARG_TEXT_P(0)),
-                PG_GETARG_INT64(1),
-                PG_GETARG_ARRAYTYPE_P(2),
-                PG_GETARG_BOOL(3),
-                PG_GETARG_INT32(4),
-                PG_GETARG_FLOAT8(5),
-                PG_GETARG_FLOAT8(6),
-                PG_GETARG_BOOL(7),
-                &result_tuples,
-                &result_count);
-
-
-
-#if PGSQL_VERSION > 95
-        funcctx->max_calls = result_count;
-#else
-        funcctx->max_calls = (uint32_t)result_count;
-#endif
-
-        funcctx->user_fctx = result_tuples;
-        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
-                != TYPEFUNC_COMPOSITE)
-            ereport(ERROR,
-                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-                     errmsg("function returning record called in context "
-                         "that cannot accept type record")));
-
-        funcctx->tuple_desc = tuple_desc;
-        MemoryContextSwitchTo(oldcontext);
-    }
-
-    funcctx = SRF_PERCALL_SETUP();
-    tuple_desc = funcctx->tuple_desc;
-    result_tuples = (General_path_element_t*) funcctx->user_fctx;
-
-    if (funcctx->call_cntr < funcctx->max_calls) {
-        HeapTuple    tuple;
-        Datum        result;
-        Datum        *values;
-        bool*        nulls;
-
-        /*********************************************************************
-          OUT seq INTEGER,
-          OUT path_seq INTEGER,
-          OUT end_vid BIGINT,
-          OUT node BIGINT,
-          OUT edge BIGINT,
-          OUT cost FLOAT,
-          OUT agg_cost FLOAT
-         *********************************************************************/
-
-
-        values = palloc(7 * sizeof(Datum));
-        nulls = palloc(7 * sizeof(bool));
-
-        size_t i;
-        for (i = 0; i < 7; ++i) {
-            nulls[i] = false;
-        }
-
-
-        values[0] = Int32GetDatum(funcctx->call_cntr + 1);
-        values[1] = Int32GetDatum(result_tuples[funcctx->call_cntr].seq);
-        values[2] = Int64GetDatum(result_tuples[funcctx->call_cntr].end_id);
-        values[3] = Int64GetDatum(result_tuples[funcctx->call_cntr].node);
-        values[4] = Int64GetDatum(result_tuples[funcctx->call_cntr].edge);
-        values[5] = Float8GetDatum(result_tuples[funcctx->call_cntr].cost);
-        values[6] = Float8GetDatum(result_tuples[funcctx->call_cntr].agg_cost);
-
-
-        tuple = heap_form_tuple(tuple_desc, values, nulls);
-        result = HeapTupleGetDatum(tuple);
-        SRF_RETURN_NEXT(funcctx, result);
-    } else {
-        SRF_RETURN_DONE(funcctx);
-    }
-}
-
diff --git a/src/astar/src/one_to_one_astar.c b/src/astar/src/one_to_one_astar.c
deleted file mode 100644
index 213fb95..0000000
--- a/src/astar/src/one_to_one_astar.c
+++ /dev/null
@@ -1,218 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: astarOneToOne.c
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer:
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail:
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#include "./../../common/src/postgres_connection.h"
-#include "utils/array.h"
-
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/e_report.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/edges_input.h"
-
-#include "./astar_many_to_many_driver.h"
-
-PGDLLEXPORT Datum astarOneToOne(PG_FUNCTION_ARGS);
-PG_FUNCTION_INFO_V1(astarOneToOne);
-
-
-static
-void
-process(char* edges_sql,
-        int64_t start_vid,
-        int64_t end_vid,
-        bool directed,
-        int heuristic,
-        double factor,
-        double epsilon,
-        bool only_cost,
-        General_path_element_t **result_tuples,
-        size_t *result_count) {
-    check_parameters(heuristic, factor, epsilon);
-
-    pgr_SPI_connect();
-
-    PGR_DBG("Load data");
-    Pgr_edge_xy_t *edges = NULL;
-    size_t total_edges = 0;
-
-    pgr_get_edges_xy(edges_sql, &edges, &total_edges);
-    PGR_DBG("Total %ld edges in query:", total_edges);
-
-    if (total_edges == 0) {
-        PGR_DBG("No edges found");
-        (*result_count) = 0;
-        (*result_tuples) = NULL;
-        pgr_SPI_finish();
-        return;
-    }
-
-    PGR_DBG("Starting processing");
-    char* log_msg = NULL;
-    char* notice_msg = NULL;
-    char* err_msg = NULL;
-    clock_t start_t = clock();
-    do_pgr_astarManyToMany(
-            edges, total_edges,
-            &start_vid, 1,
-            &end_vid, 1,
-            directed,
-            heuristic,
-            factor,
-            epsilon,
-            only_cost,
-            true,
-            result_tuples,
-            result_count,
-            &log_msg,
-            &notice_msg,
-            &err_msg);
-
-    if (only_cost) {
-        time_msg("processing pgr_astarCost(one to one)", start_t, clock());
-    } else {
-        time_msg("processing pgr_astar(one to one)", start_t, clock());
-    }
-
-    if (err_msg && (*result_tuples)) {
-        pfree(*result_tuples);
-        (*result_count) = 0;
-        (*result_tuples) = NULL;
-    }
-
-    pgr_global_report(log_msg, notice_msg, err_msg);
-
-    if (log_msg) pfree(log_msg);
-    if (notice_msg) pfree(notice_msg);
-    if (err_msg) pfree(err_msg);
-    if (edges) pfree(edges);
-
-    pgr_SPI_finish();
-}
-
-PGDLLEXPORT Datum
-astarOneToOne(PG_FUNCTION_ARGS) {
-    FuncCallContext     *funcctx;
-    TupleDesc           tuple_desc;
-
-    General_path_element_t  *result_tuples = 0;
-    size_t result_count = 0;
-
-    if (SRF_IS_FIRSTCALL()) {
-        MemoryContext   oldcontext;
-        funcctx = SRF_FIRSTCALL_INIT();
-        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
-
-
-        /**********************************************************************
-          edges_sql TEXT,
-          start_vid BIGINT,
-          end_vid BIGINT,
-          directed BOOLEAN DEFAULT true,
-          heuristic INTEGER DEFAULT 0,
-          factor FLOAT DEFAULT 1.0,
-          epsilon FLOAT DEFAULT 1.0,
-
-         **********************************************************************/
-
-        PGR_DBG("Calling process");
-        process(
-                text_to_cstring(PG_GETARG_TEXT_P(0)),
-                PG_GETARG_INT64(1),
-                PG_GETARG_INT64(2),
-                PG_GETARG_BOOL(3),
-                PG_GETARG_INT32(4),
-                PG_GETARG_FLOAT8(5),
-                PG_GETARG_FLOAT8(6),
-                PG_GETARG_BOOL(7),
-                &result_tuples,
-                &result_count);
-
-
-#if PGSQL_VERSION > 95
-        funcctx->max_calls = result_count;
-#else
-        funcctx->max_calls = (uint32_t)result_count;
-#endif
-        funcctx->user_fctx = result_tuples;
-        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
-                != TYPEFUNC_COMPOSITE)
-            ereport(ERROR,
-                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-                     errmsg("function returning record called in context "
-                         "that cannot accept type record")));
-
-        funcctx->tuple_desc = tuple_desc;
-        MemoryContextSwitchTo(oldcontext);
-    }
-
-    funcctx = SRF_PERCALL_SETUP();
-    tuple_desc = funcctx->tuple_desc;
-    result_tuples = (General_path_element_t*) funcctx->user_fctx;
-
-    if (funcctx->call_cntr < funcctx->max_calls) {
-        HeapTuple    tuple;
-        Datum        result;
-        Datum        *values;
-        bool*        nulls;
-
-        /**********************************************************************
-          OUT seq INTEGER,
-          OUT path_seq INTEGER,
-          OUT node BIGINT,
-          OUT edge BIGINT,
-          OUT cost FLOAT,
-          OUT agg_cost FLOAT
-         *********************************************************************/
-
-
-        values = palloc(6 * sizeof(Datum));
-        nulls = palloc(6 * sizeof(bool));
-
-        size_t i;
-        for (i = 0; i < 6; ++i) {
-            nulls[i] = false;
-        }
-
-        values[0] = Int32GetDatum(funcctx->call_cntr + 1);
-        values[1] = Int32GetDatum(result_tuples[funcctx->call_cntr].seq);
-        values[2] = Int64GetDatum(result_tuples[funcctx->call_cntr].node);
-        values[3] = Int64GetDatum(result_tuples[funcctx->call_cntr].edge);
-        values[4] = Float8GetDatum(result_tuples[funcctx->call_cntr].cost);
-        values[5] = Float8GetDatum(result_tuples[funcctx->call_cntr].agg_cost);
-
-
-        tuple = heap_form_tuple(tuple_desc, values, nulls);
-        result = HeapTupleGetDatum(tuple);
-        SRF_RETURN_NEXT(funcctx, result);
-    } else {
-        SRF_RETURN_DONE(funcctx);
-    }
-}
-
diff --git a/src/astar/src/pgr_astar.hpp b/src/astar/src/pgr_astar.hpp
deleted file mode 100644
index 0f0d5bd..0000000
--- a/src/astar/src/pgr_astar.hpp
+++ /dev/null
@@ -1,359 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-File: pgr_astar.hpp
-
-Copyright (c) 2015 Vicky Vergara
-Mail: vicky_vergara at hotmail.com
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifndef SRC_ASTAR_SRC_PGR_ASTAR_HPP_
-#define SRC_ASTAR_SRC_PGR_ASTAR_HPP_
-#pragma once
-
-#include <boost/config.hpp>
-#include <boost/graph/graph_traits.hpp>
-#include <boost/graph/adjacency_list.hpp>
-#include <boost/graph/astar_search.hpp>
-
-#include <cmath>
-
-
-#include <deque>
-#include <limits>
-#include <algorithm>
-#include <vector>
-#include <set>
-
-#include "./../../common/src/basePath_SSEC.hpp"
-#include "./../../common/src/pgr_base_graph.hpp"
-
-namespace pgrouting {
-namespace algorithms {
-
-template < class G >
-class Pgr_astar {
- public:
-     typedef typename G::V V;
-     typedef typename G::B_G B_G;
-
-
-     void clear() {
-         predecessors.clear();
-         distances.clear();
-     }
-
-     //! @name Astar
-     //@{
-     //! one to one
-     //! astar 1 to 1
-     Path astar(
-             G &graph,
-             int64_t start_vertex,
-             int64_t end_vertex,
-             int heuristic,
-             double factor,
-             double epsilon,
-             bool only_cost) {
-         clear();
-
-         predecessors.resize(graph.num_vertices());
-         distances.resize(graph.num_vertices());
-
-         if (!graph.has_vertex(start_vertex)
-                 || !graph.has_vertex(end_vertex)) {
-             return Path(start_vertex, end_vertex);
-         }
-
-         auto v_source(graph.get_V(start_vertex));
-         auto v_target(graph.get_V(end_vertex));
-
-         // perform the algorithm
-         astar_1_to_1(graph, v_source, v_target, heuristic, factor, epsilon);
-
-         return  Path(graph,
-                 v_source, v_target,
-                 predecessors, distances,
-                 only_cost);
-     }
-
-     //! astar 1 to many
-     std::deque<Path> astar(
-             G &graph,
-             int64_t start_vertex,
-             std::vector<int64_t> end_vertex,
-             int heuristic,
-             double factor,
-             double epsilon,
-             bool only_cost) {
-         clear();
-
-         predecessors.resize(graph.num_vertices());
-         distances.resize(graph.num_vertices());
-
-         if (!graph.has_vertex(start_vertex)) return std::deque<Path>();
-         auto v_source(graph.get_V(start_vertex));
-
-         std::vector<V> v_targets;
-         for (const auto &vertex : end_vertex) {
-             if (graph.has_vertex(vertex)) {
-                 v_targets.push_back(graph.get_V(vertex));
-             }
-         }
-
-         astar_1_to_many(graph,
-                 v_source,
-                 v_targets,
-                 heuristic,
-                 factor,
-                 epsilon);
-
-         auto paths = get_paths(graph, v_source, v_targets, only_cost);
-
-         std::stable_sort(paths.begin(), paths.end(),
-                 [](const Path &e1, const Path &e2)->bool {
-                 return e1.end_id() < e2.end_id();
-                 });
-
-         return paths;
-     }
-
-     // preparation for many to many
-     std::deque<Path> astar(
-             G &graph,
-             std::vector<int64_t> start_vertex,
-             std::vector<int64_t> end_vertex,
-             int heuristic,
-             double factor,
-             double epsilon,
-             bool only_cost) {
-         std::deque<Path> paths;
-         for (const auto &start : start_vertex) {
-             auto r_paths = astar(graph, start, end_vertex,
-                     heuristic, factor, epsilon, only_cost);
-              paths.insert(paths.begin(), r_paths.begin(), r_paths.end());
-         }
-
-         std::sort(paths.begin(), paths.end(),
-                 [](const Path &e1, const Path &e2)->bool {
-                 return e1.end_id() < e2.end_id();
-                 });
-         std::stable_sort(paths.begin(), paths.end(),
-                 [](const Path &e1, const Path &e2)->bool {
-                 return e1.start_id() < e2.start_id();
-                 });
-         return paths;
-     }
-     //@}
-
-
-
- private:
-     //! @name members;
-     //@{
-     struct found_goals{};  //!< exception for termination
-     std::vector< V > predecessors;
-     std::vector< double > distances;
-     std::deque< V > nodesInDistance;
-     //@}
-
-     // euclidean distance heuristic for one goal
-     class distance_heuristic : public boost::astar_heuristic< B_G, double > {
-      public:
-          distance_heuristic(B_G &g, V goal, int heuristic, double factor)
-              : m_g(g),
-              m_factor(factor),
-              m_heuristic(heuristic) {
-                  m_goals.insert(goal);
-              }
-          distance_heuristic(
-                  B_G &g,
-                  std::vector< V > goals,
-                  int heuristic,
-                  double factor)
-              : m_g(g),
-              m_goals(goals.begin(), goals.end()),
-              m_factor(factor),
-              m_heuristic(heuristic) {}
-
-          double operator()(V u) {
-              if (m_heuristic == 0) return 0;
-              if (m_goals.empty()) return 0;
-              double best_h((std::numeric_limits<double>::max)());
-              for (auto goal : m_goals) {
-                  double current((std::numeric_limits<double>::max)());
-                  double dx = m_g[goal].x() - m_g[u].x();
-                  double dy = m_g[goal].y() - m_g[u].y();
-                  switch (m_heuristic) {
-                      case 0:
-                          current = 0;
-                      case 1:
-                          current = std::fabs((std::max)(dx, dy)) * m_factor;
-                      case 2:
-                          current = std::fabs((std::min)(dx, dy)) * m_factor;
-                      case 3:
-                          current = (dx * dx + dy * dy) * m_factor * m_factor;
-                      case 4:
-                          current = std::sqrt(dx * dx + dy * dy) * m_factor;
-                      case 5:
-                          current = (std::fabs(dx) + std::fabs(dy)) * m_factor;
-                      default:
-                          current = 0;
-                  }
-                  if (current < best_h) {
-                      best_h = current;
-                  }
-              }
-              {
-                  auto s_it = m_goals.find(u);
-                  if (!(s_it == m_goals.end())) {
-                      // found one more goal
-                      m_goals.erase(s_it);
-                  }
-              }
-              return best_h;
-          }
-
-      private:
-          B_G &m_g;
-          std::set< V > m_goals;
-          double m_factor;
-          int m_heuristic;
-     };  // class distance_heuristic
-
-
-     //! visitor that terminates when we find the goal
-     class astar_one_goal_visitor : public boost::default_astar_visitor {
-      public:
-          explicit astar_one_goal_visitor(V goal) : m_goal(goal) {}
-          template <class B_G>
-              void examine_vertex(V u, B_G &g) {
-                  if (u == m_goal)
-                      throw found_goals();
-                  // using g, otherwise is throws a warning
-                  num_edges(g);
-              }
-      private:
-          V m_goal;
-     };  // class astar_one_goal_visitor
-
-     //! class for stopping when all targets are found
-     class astar_many_goals_visitor : public boost::default_astar_visitor {
-      public:
-          explicit astar_many_goals_visitor(std::vector< V > goals)
-              :m_goals(goals.begin(), goals.end()) {}
-          template <class B_G>
-              void examine_vertex(V u, B_G &g) {
-                  auto s_it = m_goals.find(u);
-                  if (s_it == m_goals.end()) return;
-                  // found one more goal
-                  m_goals.erase(s_it);
-                  if (m_goals.size() == 0) throw found_goals();
-                  num_edges(g);
-              }
-      private:
-          std::set< V > m_goals;
-     };
-
-     /******************** IMPLEMENTTION ******************/
-
-
-
-     //! Call to Astar  1 source to 1 target
-     bool astar_1_to_1(
-             G &graph,
-             V source,
-             V target,
-             int heuristic,
-             double factor,
-             double epsilon) {
-         bool found = false;
-         try {
-             // Call A* named parameter interface
-             boost::astar_search(
-                     graph.graph, source,
-                     distance_heuristic(graph.graph, target,
-                         heuristic, factor * epsilon),
-                     boost::predecessor_map(&predecessors[0])
-                     .weight_map(get(&pgrouting::Basic_edge::cost, graph.graph))
-                     .distance_map(&distances[0])
-                     .visitor(astar_one_goal_visitor(target)));
-         }
-         catch(found_goals &) {
-             found = true;  // Target vertex found
-         }
-         return found;
-     }
-
-
-     //! Call to astar  1 source to many targets
-     bool astar_1_to_many(
-             G &graph,
-             V source,
-             const std::vector< V > &targets,
-             int heuristic,
-             double factor,
-             double epsilon) {
-         bool found = false;
-         try {
-             boost::astar_search(
-                     graph.graph, source,
-                     distance_heuristic(
-                         graph.graph, targets,
-                         heuristic, factor * epsilon),
-                     boost::predecessor_map(&predecessors[0])
-                     .weight_map(get(&pgrouting::Basic_edge::cost, graph.graph))
-                     .distance_map(&distances[0])
-                     .visitor(astar_many_goals_visitor(targets)));
-         }
-         catch(found_goals &) {
-             found = true;  // Target vertex found
-         }
-         return found;
-     }
-
-
-     /*
-      * GET_PATHS
-      */
-
-
-     std::deque<Path> get_paths(
-             const G &graph,
-             V source,
-             const std::vector<V> &targets,
-             bool only_cost) const {
-         std::deque<Path> paths;
-         for (const auto &target : targets) {
-             paths.push_back(
-                     Path(graph,
-                         source, target,
-                         predecessors, distances,
-                         only_cost));
-         }
-         return paths;
-     }
-};
-
-
-}  // namespace algorithms
-}  // namespace pgrouting
-
-#endif  // SRC_ASTAR_SRC_PGR_ASTAR_HPP_
diff --git a/src/astar/test/doc-aStarCost.result b/src/astar/test/doc-aStarCost.result
index 5010704..0b95a8e 100644
--- a/src/astar/test/doc-aStarCost.result
+++ b/src/astar/test/doc-aStarCost.result
@@ -1,16 +1,58 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 --q1
-2|12|4
+SELECT * FROM pgr_aStarCost(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    2, 12);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |      12 |        4
+(1 row)
+
 --q2
-2|12|4
+SELECT * FROM pgr_aStarCost(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    2, 12,
+    directed := false, heuristic := 2);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |      12 |        4
+(1 row)
+
 --q3
-2|3|5
-2|12|4
+SELECT * FROM pgr_aStarCost(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    2, ARRAY[3, 12], heuristic := 2);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       3 |        5
+         2 |      12 |        4
+(2 rows)
+
 --q4
-2|12|4
-7|12|5
+SELECT * FROM pgr_aStarCost(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    ARRAY[7, 2], 12, heuristic := 0);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |      12 |        4
+         7 |      12 |        5
+(2 rows)
+
 --q5
-2|3|5
-2|12|4
-7|3|6
-7|12|5
+SELECT * FROM pgr_aStarCost(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    ARRAY[7, 2], ARRAY[3, 12], heuristic := 2);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       3 |        5
+         2 |      12 |        4
+         7 |       3 |        6
+         7 |      12 |        5
+(4 rows)
+
 --q6
+ROLLBACK;
+ROLLBACK
diff --git a/src/astar/test/doc-astar-v2.result b/src/astar/test/doc-astar-v2.result
deleted file mode 100644
index 62ec16c..0000000
--- a/src/astar/test/doc-astar-v2.result
+++ /dev/null
@@ -1,15 +0,0 @@
--- q1
-NOTICE:  Deprecated signature pgr_astar(text, integer, integer, boolean, boolean)
-0|4|16|1
-1|9|9|1
-2|6|8|1
-3|5|4|1
-4|2|1|1
-5|1|-1|0
--- q2
-NOTICE:  Deprecated signature pgr_astar(text, integer, integer, boolean, boolean)
-0|4|3|1
-1|3|2|1
-2|2|1|1
-3|1|-1|0
--- q3
diff --git a/src/astar/test/doc-astar-v2.test.sql b/src/astar/test/doc-astar-v2.test.sql
deleted file mode 100644
index ad44338..0000000
--- a/src/astar/test/doc-astar-v2.test.sql
+++ /dev/null
@@ -1,11 +0,0 @@
-\echo -- q1
-SELECT * FROM pgr_astar(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, x1, y1, x2, y2
-     FROM edge_table',
-    4, 1, false, false);
-\echo -- q2
-SELECT * FROM pgr_astar(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, x1, y1, x2, y2, reverse_cost
-      FROM edge_table ',
-    4, 1, true, true);
-\echo -- q3
diff --git a/src/astar/test/doc-astar.result b/src/astar/test/doc-astar.result
index bdc2c79..ef7b622 100644
--- a/src/astar/test/doc-astar.result
+++ b/src/astar/test/doc-astar.result
@@ -1,69 +1,104 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 --q1
-1|1|2|4|1|0
-2|2|5|8|1|1
-3|3|6|9|1|2
-4|4|9|15|1|3
-5|5|12|-1|0|4
+SELECT * FROM pgr_astar(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    2, 12);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    4 |    1 |        0
+   2 |        2 |    5 |   10 |    1 |        1
+   3 |        3 |   10 |   12 |    1 |        2
+   4 |        4 |   11 |   13 |    1 |        3
+   5 |        5 |   12 |   -1 |    0 |        4
+(5 rows)
+
 --q2
-1|1|2|4|1|0
-2|2|5|10|1|1
-3|3|10|12|1|2
-4|4|11|13|1|3
-5|5|12|-1|0|4
+SELECT * FROM pgr_astar(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    2, 12,
+    directed := false, heuristic := 2);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    2 |    1 |        0
+   2 |        2 |    3 |    3 |    1 |        1
+   3 |        3 |    4 |   16 |    1 |        2
+   4 |        4 |    9 |   15 |    1 |        3
+   5 |        5 |   12 |   -1 |    0 |        4
+(5 rows)
+
 --q3
-1|1|3|2|4|1|0
-2|2|3|5|8|1|1
-3|3|3|6|9|1|2
-4|4|3|9|16|1|3
-5|5|3|4|3|1|4
-6|6|3|3|-1|0|5
-7|1|12|2|4|1|0
-8|2|12|5|8|1|1
-9|3|12|6|9|1|2
-10|4|12|9|15|1|3
-11|5|12|12|-1|0|4
+SELECT * FROM pgr_astar(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    2, ARRAY[3, 12], heuristic := 2);
+ seq | path_seq | end_vid | node | edge | cost | agg_cost 
+-----+----------+---------+------+------+------+----------
+   1 |        1 |       3 |    2 |    4 |    1 |        0
+   2 |        2 |       3 |    5 |    8 |    1 |        1
+   3 |        3 |       3 |    6 |    9 |    1 |        2
+   4 |        4 |       3 |    9 |   16 |    1 |        3
+   5 |        5 |       3 |    4 |    3 |    1 |        4
+   6 |        6 |       3 |    3 |   -1 |    0 |        5
+   7 |        1 |      12 |    2 |    4 |    1 |        0
+   8 |        2 |      12 |    5 |   10 |    1 |        1
+   9 |        3 |      12 |   10 |   12 |    1 |        2
+  10 |        4 |      12 |   11 |   13 |    1 |        3
+  11 |        5 |      12 |   12 |   -1 |    0 |        4
+(11 rows)
+
 --q4
-1|1|2|2|4|1|0
-2|2|2|5|10|1|1
-3|3|2|10|12|1|2
-4|4|2|11|13|1|3
-5|5|2|12|-1|0|4
-6|1|7|7|6|1|0
-7|2|7|8|7|1|1
-8|3|7|5|10|1|2
-9|4|7|10|12|1|3
-10|5|7|11|13|1|4
-11|6|7|12|-1|0|5
+SELECT * FROM pgr_astar(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    ARRAY[7, 2], 12, heuristic := 0);
+ seq | path_seq | start_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+------+------+------+----------
+   1 |        1 |         2 |    2 |    4 |    1 |        0
+   2 |        2 |         2 |    5 |   10 |    1 |        1
+   3 |        3 |         2 |   10 |   12 |    1 |        2
+   4 |        4 |         2 |   11 |   13 |    1 |        3
+   5 |        5 |         2 |   12 |   -1 |    0 |        4
+   6 |        1 |         7 |    7 |    6 |    1 |        0
+   7 |        2 |         7 |    8 |    7 |    1 |        1
+   8 |        3 |         7 |    5 |   10 |    1 |        2
+   9 |        4 |         7 |   10 |   12 |    1 |        3
+  10 |        5 |         7 |   11 |   13 |    1 |        4
+  11 |        6 |         7 |   12 |   -1 |    0 |        5
+(11 rows)
+
 --q5
-1|1|2|3|2|4|1|0
-2|2|2|3|5|8|1|1
-3|3|2|3|6|9|1|2
-4|4|2|3|9|16|1|3
-5|5|2|3|4|3|1|4
-6|6|2|3|3|-1|0|5
-7|1|2|12|2|4|1|0
-8|2|2|12|5|8|1|1
-9|3|2|12|6|9|1|2
-10|4|2|12|9|15|1|3
-11|5|2|12|12|-1|0|4
-12|1|7|3|7|6|1|0
-13|2|7|3|8|7|1|1
-14|3|7|3|5|8|1|2
-15|4|7|3|6|9|1|3
-16|5|7|3|9|16|1|4
-17|6|7|3|4|3|1|5
-18|7|7|3|3|-1|0|6
-19|1|7|12|7|6|1|0
-20|2|7|12|8|7|1|1
-21|3|7|12|5|8|1|2
-22|4|7|12|6|9|1|3
-23|5|7|12|9|15|1|4
-24|6|7|12|12|-1|0|5
+SELECT * FROM pgr_astar(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    ARRAY[7, 2], ARRAY[3, 12], heuristic := 2);
+ seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+---------+------+------+------+----------
+   1 |        1 |         2 |       3 |    2 |    4 |    1 |        0
+   2 |        2 |         2 |       3 |    5 |    8 |    1 |        1
+   3 |        3 |         2 |       3 |    6 |    9 |    1 |        2
+   4 |        4 |         2 |       3 |    9 |   16 |    1 |        3
+   5 |        5 |         2 |       3 |    4 |    3 |    1 |        4
+   6 |        6 |         2 |       3 |    3 |   -1 |    0 |        5
+   7 |        1 |         7 |       3 |    7 |    6 |    1 |        0
+   8 |        2 |         7 |       3 |    8 |    7 |    1 |        1
+   9 |        3 |         7 |       3 |    5 |    8 |    1 |        2
+  10 |        4 |         7 |       3 |    6 |    9 |    1 |        3
+  11 |        5 |         7 |       3 |    9 |   16 |    1 |        4
+  12 |        6 |         7 |       3 |    4 |    3 |    1 |        5
+  13 |        7 |         7 |       3 |    3 |   -1 |    0 |        6
+  14 |        1 |         2 |      12 |    2 |    4 |    1 |        0
+  15 |        2 |         2 |      12 |    5 |   10 |    1 |        1
+  16 |        3 |         2 |      12 |   10 |   12 |    1 |        2
+  17 |        4 |         2 |      12 |   11 |   13 |    1 |        3
+  18 |        5 |         2 |      12 |   12 |   -1 |    0 |        4
+  19 |        1 |         7 |      12 |    7 |    6 |    1 |        0
+  20 |        2 |         7 |      12 |    8 |    7 |    1 |        1
+  21 |        3 |         7 |      12 |    5 |   10 |    1 |        2
+  22 |        4 |         7 |      12 |   10 |   12 |    1 |        3
+  23 |        5 |         7 |      12 |   11 |   13 |    1 |        4
+  24 |        6 |         7 |      12 |   12 |   -1 |    0 |        5
+(24 rows)
+
 --q6
-NOTICE:  Deprecated signature pgr_astar(text, integer, integer, boolean, boolean)
-0|2|4|1
-1|5|8|1
-2|6|9|1
-3|9|15|1
-4|12|-1|0
---q7
+ROLLBACK;
+ROLLBACK
diff --git a/src/astar/test/doc-astar.test.sql b/src/astar/test/doc-astar.test.sql
index 464a6c5..a66419e 100644
--- a/src/astar/test/doc-astar.test.sql
+++ b/src/astar/test/doc-astar.test.sql
@@ -20,7 +20,3 @@ SELECT * FROM pgr_astar(
     'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
     ARRAY[7, 2], ARRAY[3, 12], heuristic := 2);
 \echo --q6
-SELECT * FROM pgr_astar(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
-    2, 12, true, true);
-\echo --q7
diff --git a/src/astar/test/pgtap/astar_ManyToMany-compare-dijkstra.test.sql b/src/astar/test/pgtap/astar_ManyToMany-compare-dijkstra.test.sql
deleted file mode 100644
index 8b3e10c..0000000
--- a/src/astar/test/pgtap/astar_ManyToMany-compare-dijkstra.test.sql
+++ /dev/null
@@ -1,97 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-\i setup.sql
-
-SELECT plan(4);
-
-SET client_min_messages TO ERROR;
-
-UPDATE edge_table SET cost = cost + 0.001 * id * id, reverse_cost = reverse_cost + 0.001 * id * id;
-
-CREATE or REPLACE FUNCTION astarCompareDijkstra(cant INTEGER default 17)
-RETURNS SETOF TEXT AS
-$BODY$
-DECLARE
-inner_sql TEXT;
-dijkstra_sql TEXT;
-astar_sql TEXT;
-vids TEXT;
-data TEXT;
-BEGIN
-    data := ' seq, start_vid, cost::text, agg_cost::text ';
-    vids := ' ARRAY[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18] ';
-
-
-        -----------------------
-        -- with reverse cost
-        -----------------------
-        -- DIRECTED
-        inner_sql := 'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table';
-        dijkstra_sql := 'SELECT ' || data || ' FROM pgr_dijkstra($$' || inner_sql || '$$, ' || vids
-            || ',' || vids || ',  true)';
-
-        astar_sql := 'SELECT ' || data || ' FROM pgr_astar($$' || inner_sql || '$$,  ' || vids
-            || ',' || vids || ',  true, heuristic := 0)';
-        RETURN query SELECT set_eq(astar_sql, dijkstra_sql, astar_sql);
-
-        -- UNDIRECTED
-        dijkstra_sql := 'SELECT ' || data || ' FROM pgr_dijkstra($$' || inner_sql || '$$,  ' || vids
-            || ',' || vids || ',  false)';
-
-        astar_sql := 'SELECT ' || data || ' FROM pgr_astar($$' || inner_sql || '$$,  ' || vids
-            || ', ' || vids || ', false, heuristic := 0)';
-        RETURN query SELECT set_eq(astar_sql, dijkstra_sql, astar_sql);
-
-        -----------------------
-        -- NO reverse cost
-        -----------------------
-        -- DIRECTED
-        inner_sql := 'SELECT id, source, target, cost, x1, y1, x2, y2 FROM edge_table';
-        dijkstra_sql := 'SELECT ' || data || ' FROM pgr_dijkstra($$' || inner_sql || '$$,  ' || vids
-            || ',' || vids || ',  true)';
-
-        astar_sql := 'SELECT ' || data || ' FROM pgr_astar($$' || inner_sql || '$$,  ' || vids
-            || ',' || vids || ',  true, heuristic := 0)';
-        RETURN query SELECT set_eq(astar_sql, dijkstra_sql, astar_sql);
-
-        -- UNDIRECTED
-        dijkstra_sql := 'SELECT ' || data || ' FROM pgr_dijkstra($$' || inner_sql || '$$,  ' || vids
-            || ',' || vids || ',  false)';
-
-        astar_sql := 'SELECT ' || data || ' FROM pgr_astar($$' || inner_sql || '$$,  ' || vids
-            || ', ' || vids || ', false, heuristic := 0)';
-        RETURN query SELECT set_eq(astar_sql, dijkstra_sql, astar_sql);
-
-
-    RETURN;
-END
-$BODY$
-language plpgsql;
-
-SELECT * from astarCompareDijkstra();
-
-
-SELECT * FROM finish();
-ROLLBACK;
-
diff --git a/src/astar/test/pgtap/astar_oneToOne-compare-dijkstra.test.sql b/src/astar/test/pgtap/astar_oneToOne-compare-dijkstra.test.sql
deleted file mode 100644
index 589acf9..0000000
--- a/src/astar/test/pgtap/astar_oneToOne-compare-dijkstra.test.sql
+++ /dev/null
@@ -1,112 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-\i setup.sql
-
-SELECT plan(1734);
-
-SET client_min_messages TO ERROR;
-
-UPDATE edge_table SET cost = cost + 0.001 * id * id, reverse_cost = reverse_cost + 0.001 * id * id;
-
-CREATE or REPLACE FUNCTION astarCompareDijkstra(cant INTEGER default 17)
-RETURNS SETOF TEXT AS
-$BODY$
-DECLARE
-inner_sql TEXT;
-dijkstra_sql TEXT;
-astar_sql TEXT;
-BEGIN
-
-    FOR i IN 1.. cant LOOP
-        FOR j IN 1.. cant LOOP
-
-            -- DIRECTED
-            inner_sql := 'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table';
-            dijkstra_sql := 'SELECT * FROM pgr_dijkstra($$' || inner_sql || '$$, ' || i || ', ' || j
-                || ', true)';
-
-            astar_sql := 'SELECT * FROM pgr_astar($$' || inner_sql || '$$, ' || i || ', ' || j
-                || ', true)';
-            RETURN query SELECT set_eq(astar_sql, dijkstra_sql, astar_sql);
-
-            dijkstra_sql := 'SELECT * FROM pgr_dijkstra($$' || inner_sql || '$$, ' || i || ', ' || j
-                || ', true)';
-
-            astar_sql := 'SELECT * FROM pgr_astar($$' || inner_sql || '$$, ' || i || ', ' || j
-                || ', true)';
-            RETURN query SELECT set_eq(astar_sql, dijkstra_sql, astar_sql);
-
-
-
-            inner_sql := 'SELECT id, source, target, cost, x1, y1, x2, y2 FROM edge_table';
-            dijkstra_sql := 'SELECT * FROM pgr_dijkstra($$' || inner_sql || '$$, ' || i || ', ' || j
-                || ', true)';
-
-            astar_sql := 'SELECT * FROM pgr_astar($$' || inner_sql || '$$, ' || i || ', ' || j
-                || ', true)';
-            RETURN query SELECT set_eq(astar_sql, dijkstra_sql, astar_sql);
-
-
-
-            -- UNDIRECTED
-            inner_sql := 'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table';
-            dijkstra_sql := 'SELECT * FROM pgr_dijkstra($$' || inner_sql || '$$, ' || i || ', ' || j
-                || ', false)';
-
-            astar_sql := 'SELECT * FROM pgr_astar($$' || inner_sql || '$$, ' || i || ', ' || j
-                || ', false)';
-            RETURN query SELECT set_eq(astar_sql, dijkstra_sql, astar_sql);
-
-            dijkstra_sql := 'SELECT * FROM pgr_dijkstra($$' || inner_sql || '$$, ' || i || ', ' || j
-                || ', false)';
-
-            astar_sql := 'SELECT * FROM pgr_astar($$' || inner_sql || '$$, ' || i || ', ' || j
-                || ', false)';
-            RETURN query SELECT set_eq(astar_sql, dijkstra_sql, astar_sql);
-
-
-
-            inner_sql := 'SELECT id, source, target, cost, x1, y1, x2, y2 FROM edge_table';
-            dijkstra_sql := 'SELECT * FROM pgr_dijkstra($$' || inner_sql || '$$, ' || i || ', ' || j
-                || ', false)';
-
-            astar_sql := 'SELECT * FROM pgr_astar($$' || inner_sql || '$$, ' || i || ', ' || j
-                || ', false)';
-            RETURN query SELECT set_eq(astar_sql, dijkstra_sql, astar_sql);
-
-
-        END LOOP;
-    END LOOP;
-
-    RETURN;
-END
-$BODY$
-language plpgsql;
-
-SELECT * from astarCompareDijkstra();
-
-
-SELECT * FROM finish();
-ROLLBACK;
-
diff --git a/src/astar/test/test.conf b/src/astar/test/test.conf
index 5756152..86f9506 100644
--- a/src/astar/test/test.conf
+++ b/src/astar/test/test.conf
@@ -5,12 +5,10 @@
         'comment' => 'astar test for any versions.',
         'data' => [''],
         'tests' => [qw(
-            doc-astar-v2
             doc-astar
             doc-aStarCost
             )],
         'documentation' => [qw(
-            doc-astar-v2
             doc-astar
             doc-aStarCost
             )]
diff --git a/src/bdAstar/src/CMakeLists.txt b/src/bdAstar/src/CMakeLists.txt
new file mode 100644
index 0000000..7537079
--- /dev/null
+++ b/src/bdAstar/src/CMakeLists.txt
@@ -0,0 +1,4 @@
+ADD_LIBRARY(bdAstar OBJECT
+    bdAstar.c
+    bdAstar_driver.cpp
+    )
diff --git a/src/bdAstar/src/bdAstar.c b/src/bdAstar/src/bdAstar.c
new file mode 100644
index 0000000..74330a6
--- /dev/null
+++ b/src/bdAstar/src/bdAstar.c
@@ -0,0 +1,238 @@
+/*PGR-GNU*****************************************************************
+File: bdAstar.c
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail:
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#include "c_common/postgres_connection.h"
+#include "utils/array.h"
+
+#include "c_common/debug_macro.h"
+#include "c_common/e_report.h"
+#include "c_common/time_msg.h"
+
+#include "c_common/edges_input.h"
+#include "c_common/arrays_input.h"
+
+
+#include "drivers/astar/astar_driver.h" // for check_parameters
+#include "drivers/bdAstar/bdAstar_driver.h"
+
+PGDLLEXPORT Datum bd_astar(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(bd_astar);
+
+
+static
+void
+process(char* edges_sql,
+        ArrayType *starts,
+        ArrayType *ends,
+        bool directed,
+        int heuristic,
+        double factor,
+        double epsilon,
+        bool only_cost,
+        General_path_element_t **result_tuples,
+        size_t *result_count) {
+    check_parameters(heuristic, factor, epsilon);
+
+    pgr_SPI_connect();
+
+    int64_t* start_vidsArr = NULL;
+    size_t size_start_vidsArr = 0;
+    start_vidsArr = (int64_t*)
+        pgr_get_bigIntArray(&size_start_vidsArr, starts);
+
+    int64_t* end_vidsArr = NULL;
+    size_t size_end_vidsArr = 0;
+    end_vidsArr = (int64_t*)
+        pgr_get_bigIntArray(&size_end_vidsArr, ends);
+
+    PGR_DBG("Load data");
+    Pgr_edge_xy_t *edges = NULL;
+    size_t total_edges = 0;
+
+    pgr_get_edges_xy(edges_sql, &edges, &total_edges);
+    PGR_DBG("Total %ld edges in query:", total_edges);
+
+    if (total_edges == 0) {
+        PGR_DBG("No edges found");
+        (*result_count) = 0;
+        (*result_tuples) = NULL;
+        pgr_SPI_finish();
+        return;
+    }
+
+    PGR_DBG("Starting processing");
+    char* log_msg = NULL;
+    char* notice_msg = NULL;
+    char* err_msg = NULL;
+    clock_t start_t = clock();
+    do_pgr_bdAstar(
+            edges, total_edges,
+            start_vidsArr, size_start_vidsArr,
+            end_vidsArr, size_end_vidsArr,
+
+            directed,
+            heuristic,
+            factor,
+            epsilon,
+            only_cost,
+
+            result_tuples,
+            result_count,
+            &log_msg,
+            &notice_msg,
+            &err_msg);
+
+    if (only_cost) {
+        time_msg("pgr_bdAstarCost()", start_t, clock());
+    } else {
+        time_msg("pgr_bdAstar()", start_t, clock());
+    }
+
+    if (err_msg && (*result_tuples)) {
+        pfree(*result_tuples);
+        (*result_count) = 0;
+        (*result_tuples) = NULL;
+    }
+
+    pgr_global_report(log_msg, notice_msg, err_msg);
+
+    if (log_msg) pfree(log_msg);
+    if (notice_msg) pfree(notice_msg);
+    if (err_msg) pfree(err_msg);
+    if (edges) pfree(edges);
+
+    pgr_SPI_finish();
+}
+
+PGDLLEXPORT Datum
+bd_astar(PG_FUNCTION_ARGS) {
+    FuncCallContext     *funcctx;
+    TupleDesc           tuple_desc;
+
+    General_path_element_t  *result_tuples = 0;
+    size_t result_count = 0;
+
+    if (SRF_IS_FIRSTCALL()) {
+        MemoryContext   oldcontext;
+        funcctx = SRF_FIRSTCALL_INIT();
+        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
+
+
+        /**********************************************************************
+          edges_sql TEXT,
+          start_vid BIGINT,
+          end_vid BIGINT,
+          directed BOOLEAN DEFAULT true,
+          heuristic INTEGER DEFAULT 0,
+          factor FLOAT DEFAULT 1.0,
+          epsilon FLOAT DEFAULT 1.0,
+
+         **********************************************************************/
+
+        PGR_DBG("Calling process");
+        process(
+                text_to_cstring(PG_GETARG_TEXT_P(0)),
+                PG_GETARG_ARRAYTYPE_P(1),
+                PG_GETARG_ARRAYTYPE_P(2),
+
+                PG_GETARG_BOOL(3),
+                PG_GETARG_INT32(4),
+                PG_GETARG_FLOAT8(5),
+                PG_GETARG_FLOAT8(6),
+                PG_GETARG_BOOL(7),
+                &result_tuples,
+                &result_count);
+
+
+#if PGSQL_VERSION > 95
+        funcctx->max_calls = result_count;
+#else
+        funcctx->max_calls = (uint32_t)result_count;
+#endif
+        funcctx->user_fctx = result_tuples;
+        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
+                != TYPEFUNC_COMPOSITE)
+            ereport(ERROR,
+                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+                     errmsg("function returning record called in context "
+                         "that cannot accept type record")));
+
+        funcctx->tuple_desc = tuple_desc;
+        MemoryContextSwitchTo(oldcontext);
+    }
+
+    funcctx = SRF_PERCALL_SETUP();
+    tuple_desc = funcctx->tuple_desc;
+    result_tuples = (General_path_element_t*) funcctx->user_fctx;
+
+    if (funcctx->call_cntr < funcctx->max_calls) {
+        HeapTuple    tuple;
+        Datum        result;
+        Datum        *values;
+        bool*        nulls;
+        size_t       call_cntr = funcctx->call_cntr;
+
+
+        /**********************************************************************
+          OUT seq INTEGER,
+          OUT path_seq INTEGER,
+          OUT node BIGINT,
+          OUT edge BIGINT,
+          OUT cost FLOAT,
+          OUT agg_cost FLOAT
+         *********************************************************************/
+
+        size_t numb = 8;
+        values = palloc(numb * sizeof(Datum));
+        nulls = palloc(numb * sizeof(bool));
+
+
+        size_t i;
+        for (i = 0; i < numb; ++i) {
+            nulls[i] = false;
+        }
+
+        values[0] = Int32GetDatum(call_cntr + 1);
+        values[1] = Int32GetDatum(result_tuples[call_cntr].seq);
+        values[2] = Int64GetDatum(result_tuples[call_cntr].start_id);
+        values[3] = Int64GetDatum(result_tuples[call_cntr].end_id);
+        values[4] = Int64GetDatum(result_tuples[call_cntr].node);
+        values[5] = Int64GetDatum(result_tuples[call_cntr].edge);
+        values[6] = Float8GetDatum(result_tuples[call_cntr].cost);
+        values[7] = Float8GetDatum(result_tuples[call_cntr].agg_cost);
+
+
+        tuple = heap_form_tuple(tuple_desc, values, nulls);
+        result = HeapTupleGetDatum(tuple);
+        SRF_RETURN_NEXT(funcctx, result);
+    } else {
+        SRF_RETURN_DONE(funcctx);
+    }
+}
+
diff --git a/src/bdAstar/src/bdAstar_driver.cpp b/src/bdAstar/src/bdAstar_driver.cpp
new file mode 100644
index 0000000..e30431b
--- /dev/null
+++ b/src/bdAstar/src/bdAstar_driver.cpp
@@ -0,0 +1,232 @@
+/*PGR-GNU*****************************************************************
+File: bdAstar_driver.cpp
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer: 
+Copyright (c) 2016 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#include "drivers/bdAstar/bdAstar_driver.h"
+
+#include <sstream>
+#include <deque>
+#include <vector>
+#include <algorithm>
+
+#include "bdAstar/pgr_bdAstar.hpp"
+
+#include "cpp_common/pgr_alloc.hpp"
+#include "cpp_common/pgr_assert.h"
+
+
+
+
+
+/************************************************************
+  edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+ ***********************************************************/
+
+template < class G >
+static
+std::deque<Path>
+pgr_bdAstar(
+        G &graph,
+        std::vector < int64_t > sources,
+        std::vector < int64_t > targets,
+
+        int heuristic,
+        double factor,
+        double epsilon,
+        std::ostream &log,
+        bool only_cost) {
+    log << "entering static function\n";
+    std::sort(sources.begin(), sources.end());
+    sources.erase(
+            std::unique(sources.begin(), sources.end()),
+            sources.end());
+
+    std::sort(targets.begin(), targets.end());
+    targets.erase(
+            std::unique(targets.begin(), targets.end()),
+            targets.end());
+
+
+    pgrouting::bidirectional::Pgr_bdAstar<G> fn_bdAstar(graph);
+    std::deque<Path> paths;
+    for (const auto source : sources) {
+        for (const auto target : targets) {
+            fn_bdAstar.clear();
+
+            paths.push_back(fn_bdAstar.pgr_bdAstar(
+            graph.get_V(source), graph.get_V(target),
+            heuristic, factor, epsilon, only_cost));
+        }
+    }
+    log << fn_bdAstar.log();
+
+    return paths;
+}
+
+
+void
+do_pgr_bdAstar(
+        Pgr_edge_xy_t *edges,
+        size_t total_edges,
+        int64_t  *start_vidsArr,
+        size_t size_start_vidsArr,
+        int64_t  *end_vidsArr,
+        size_t size_end_vidsArr,
+
+
+        bool directed,
+        int heuristic,
+        double factor,
+        double epsilon,
+        bool only_cost,
+
+        General_path_element_t **return_tuples,
+        size_t *return_count,
+
+        char ** log_msg,
+        char ** notice_msg,
+        char ** err_msg) {
+    std::ostringstream log;
+    std::ostringstream err;
+    std::ostringstream notice;
+    try {
+        pgassert(!(*log_msg));
+        pgassert(!(*notice_msg));
+        pgassert(!(*err_msg));
+        pgassert(!(*return_tuples));
+        pgassert(*return_count == 0);
+        pgassert(total_edges != 0);
+
+
+        log << "Inserting vertices into a c++ vector structure";
+        std::vector<int64_t>
+            start_vertices(start_vidsArr, start_vidsArr + size_start_vidsArr);
+        std::vector< int64_t >
+            end_vertices(end_vidsArr, end_vidsArr + size_end_vidsArr);
+
+        graphType gType = directed? DIRECTED: UNDIRECTED;
+
+        std::deque<Path> paths;
+        log << "starting process\n";
+        if (directed) {
+            log << "Working with directed Graph\n";
+            pgrouting::xyDirectedGraph digraph(
+                    pgrouting::extract_vertices(edges, total_edges),
+                    gType);
+            digraph.insert_edges(edges, total_edges);
+
+            paths = pgr_bdAstar(digraph,
+                    start_vertices,
+                    end_vertices,
+                    heuristic,
+                    factor,
+                    epsilon,
+                    log,
+                    only_cost);
+        } else {
+            log << "Working with Undirected Graph\n";
+            pgrouting::xyUndirectedGraph undigraph(
+                    pgrouting::extract_vertices(edges, total_edges),
+                    gType);
+            undigraph.insert_edges(edges, total_edges);
+
+            paths = pgr_bdAstar(
+                    undigraph,
+                    start_vertices,
+                    end_vertices,
+                    heuristic,
+                    factor,
+                    epsilon,
+                    log,
+                    only_cost);
+        }
+
+        size_t count(0);
+        count = count_tuples(paths);
+
+        if (count == 0) {
+            (*return_tuples) = NULL;
+            (*return_count) = 0;
+            notice <<
+                "No paths found";
+            *log_msg = pgr_msg(notice.str().c_str());
+            return;
+        }
+
+        (*return_tuples) = pgr_alloc(count, (*return_tuples));
+        log << "\nConverting a set of paths into the tuples";
+        (*return_count) = (collapse_paths(return_tuples, paths));
+
+
+#if 0
+        auto count = path.size();
+
+        if (count == 0) {
+            (*return_tuples) = NULL;
+            (*return_count) = 0;
+            notice <<
+                "No paths found between start_vid and end_vid vertices";
+        } else {
+            (*return_tuples) = pgr_alloc(count, (*return_tuples));
+            size_t sequence = 0;
+            path.generate_postgres_data(return_tuples, sequence);
+            (*return_count) = sequence;
+        }
+#endif
+
+        pgassert(*err_msg == NULL);
+        *log_msg = log.str().empty()?
+            nullptr :
+            pgr_msg(log.str().c_str());
+        *notice_msg = notice.str().empty()?
+            nullptr :
+            pgr_msg(notice.str().c_str());
+    } catch (AssertFailedException &except) {
+        if (*return_tuples) free(*return_tuples);
+        (*return_count) = 0;
+        err << except.what();
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    } catch (std::exception& except) {
+        if (*return_tuples) free(*return_tuples);
+        (*return_count) = 0;
+        err << except.what();
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    } catch(...) {
+        if (*return_tuples) free(*return_tuples);
+        (*return_count) = 0;
+        err << "Caught unknown exception!";
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    }
+}
diff --git a/src/bdAstar/test/doc-pgr_bdAstar.result b/src/bdAstar/test/doc-pgr_bdAstar.result
new file mode 100644
index 0000000..3940236
--- /dev/null
+++ b/src/bdAstar/test/doc-pgr_bdAstar.result
@@ -0,0 +1,112 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_bdAstar(
+    'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2
+    FROM edge_table',
+    2, 3
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    4 |    1 |        0
+   2 |        2 |    5 |    8 |    1 |        1
+   3 |        3 |    6 |    9 |    1 |        2
+   4 |        4 |    9 |   16 |    1 |        3
+   5 |        5 |    4 |    3 |    1 |        4
+   6 |        6 |    3 |   -1 |    0 |        5
+(6 rows)
+
+-- q2
+SELECT * FROM pgr_bdAstar(
+    'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2
+    FROM edge_table',
+    2, 3,
+    true, heuristic := 2
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    4 |    1 |        0
+   2 |        2 |    5 |    8 |    1 |        1
+   3 |        3 |    6 |    9 |    1 |        2
+   4 |        4 |    9 |   16 |    1 |        3
+   5 |        5 |    4 |    3 |    1 |        4
+   6 |        6 |    3 |   -1 |    0 |        5
+(6 rows)
+
+-- q3
+SELECT * FROM pgr_bdAstar(
+    'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2
+    FROM edge_table',
+    2, ARRAY[3, 11],
+    heuristic := 3, factor := 3.5
+);
+ seq | path_seq | end_vid | node | edge | cost | agg_cost 
+-----+----------+---------+------+------+------+----------
+   1 |        1 |       3 |    2 |    4 |    1 |        0
+   2 |        2 |       3 |    5 |    8 |    1 |        1
+   3 |        3 |       3 |    6 |    9 |    1 |        2
+   4 |        4 |       3 |    9 |   16 |    1 |        3
+   5 |        5 |       3 |    4 |    3 |    1 |        4
+   6 |        6 |       3 |    3 |   -1 |    0 |        5
+   7 |        1 |      11 |    2 |    4 |    1 |        0
+   8 |        2 |      11 |    5 |    8 |    1 |        1
+   9 |        3 |      11 |    6 |   11 |    1 |        2
+  10 |        4 |      11 |   11 |   -1 |    0 |        3
+(10 rows)
+
+-- q4
+SELECT * FROM pgr_bdAstar(
+    'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2
+    FROM edge_table',
+    ARRAY[2, 7], 3,
+    false, heuristic := 4
+);
+ seq | path_seq | start_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+------+------+------+----------
+   1 |        1 |         2 |    2 |    2 |    1 |        0
+   2 |        2 |         2 |    3 |   -1 |    0 |        1
+   3 |        1 |         7 |    7 |    6 |    1 |        0
+   4 |        2 |         7 |    8 |    7 |    1 |        1
+   5 |        3 |         7 |    5 |    4 |    1 |        2
+   6 |        4 |         7 |    2 |    2 |    1 |        3
+   7 |        5 |         7 |    3 |   -1 |    0 |        4
+(7 rows)
+
+-- q5
+SELECT * FROM pgr_bdAstar(
+    'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2
+    FROM edge_table',
+    ARRAY[2, 7], ARRAY[3, 11],
+    factor := 0.5
+);
+ seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+---------+------+------+------+----------
+   1 |        1 |         2 |       3 |    2 |    4 |    1 |        0
+   2 |        2 |         2 |       3 |    5 |    8 |    1 |        1
+   3 |        3 |         2 |       3 |    6 |    9 |    1 |        2
+   4 |        4 |         2 |       3 |    9 |   16 |    1 |        3
+   5 |        5 |         2 |       3 |    4 |    3 |    1 |        4
+   6 |        6 |         2 |       3 |    3 |   -1 |    0 |        5
+   7 |        1 |         2 |      11 |    2 |    4 |    1 |        0
+   8 |        2 |         2 |      11 |    5 |    8 |    1 |        1
+   9 |        3 |         2 |      11 |    6 |   11 |    1 |        2
+  10 |        4 |         2 |      11 |   11 |   -1 |    0 |        3
+  11 |        1 |         7 |       3 |    7 |    6 |    1 |        0
+  12 |        2 |         7 |       3 |    8 |    7 |    1 |        1
+  13 |        3 |         7 |       3 |    5 |    8 |    1 |        2
+  14 |        4 |         7 |       3 |    6 |    9 |    1 |        3
+  15 |        5 |         7 |       3 |    9 |   16 |    1 |        4
+  16 |        6 |         7 |       3 |    4 |    3 |    1 |        5
+  17 |        7 |         7 |       3 |    3 |   -1 |    0 |        6
+  18 |        1 |         7 |      11 |    7 |    6 |    1 |        0
+  19 |        2 |         7 |      11 |    8 |    7 |    1 |        1
+  20 |        3 |         7 |      11 |    5 |   10 |    1 |        2
+  21 |        4 |         7 |      11 |   10 |   12 |    1 |        3
+  22 |        5 |         7 |      11 |   11 |   -1 |    0 |        4
+(22 rows)
+
+-- q6
+ROLLBACK;
+ROLLBACK
diff --git a/src/bdAstar/test/doc-pgr_bdAstar.test.sql b/src/bdAstar/test/doc-pgr_bdAstar.test.sql
new file mode 100644
index 0000000..3aca178
--- /dev/null
+++ b/src/bdAstar/test/doc-pgr_bdAstar.test.sql
@@ -0,0 +1,38 @@
+
+\echo -- q1
+SELECT * FROM pgr_bdAstar(
+    'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2
+    FROM edge_table',
+    2, 3
+);
+
+\echo -- q2
+SELECT * FROM pgr_bdAstar(
+    'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2
+    FROM edge_table',
+    2, 3,
+    true, heuristic := 2
+);
+\echo -- q3
+SELECT * FROM pgr_bdAstar(
+    'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2
+    FROM edge_table',
+    2, ARRAY[3, 11],
+    heuristic := 3, factor := 3.5
+);
+\echo -- q4
+SELECT * FROM pgr_bdAstar(
+    'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2
+    FROM edge_table',
+    ARRAY[2, 7], 3,
+    false, heuristic := 4
+);
+\echo -- q5
+SELECT * FROM pgr_bdAstar(
+    'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2
+    FROM edge_table',
+    ARRAY[2, 7], ARRAY[3, 11],
+    factor := 0.5
+);
+\echo -- q6
+
diff --git a/src/bdAstar/test/doc-pgr_bdAstarCost.result b/src/bdAstar/test/doc-pgr_bdAstarCost.result
new file mode 100644
index 0000000..f22ab6d
--- /dev/null
+++ b/src/bdAstar/test/doc-pgr_bdAstarCost.result
@@ -0,0 +1,71 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_bdAstarCost(
+    'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2
+    FROM edge_table',
+    2, 3
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       3 |        5
+(1 row)
+
+-- q2
+SELECT * FROM pgr_bdAstarCost(
+    'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2
+    FROM edge_table',
+    2, 3,
+    true, heuristic := 2
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       3 |        5
+(1 row)
+
+-- q3
+SELECT * FROM pgr_bdAstarCost(
+    'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2
+    FROM edge_table',
+    2, ARRAY[3, 11],
+    heuristic := 3, factor := 3.5
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       3 |        5
+         2 |      11 |        3
+(2 rows)
+
+-- q4
+SELECT * FROM pgr_bdAstarCost(
+    'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2
+    FROM edge_table',
+    ARRAY[2, 7], 3,
+    false, heuristic := 4
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       3 |        1
+         7 |       3 |        4
+(2 rows)
+
+-- q5
+SELECT * FROM pgr_bdAstarCost(
+    'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2
+    FROM edge_table',
+    ARRAY[2, 7], ARRAY[3, 11],
+    factor := 0.5
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       3 |        5
+         2 |      11 |        3
+         7 |       3 |        6
+         7 |      11 |        4
+(4 rows)
+
+-- q6
+ROLLBACK;
+ROLLBACK
diff --git a/src/bdAstar/test/doc-pgr_bdAstarCost.test.sql b/src/bdAstar/test/doc-pgr_bdAstarCost.test.sql
new file mode 100644
index 0000000..1a49bfc
--- /dev/null
+++ b/src/bdAstar/test/doc-pgr_bdAstarCost.test.sql
@@ -0,0 +1,37 @@
+
+\echo -- q1
+SELECT * FROM pgr_bdAstarCost(
+    'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2
+    FROM edge_table',
+    2, 3
+);
+
+\echo -- q2
+SELECT * FROM pgr_bdAstarCost(
+    'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2
+    FROM edge_table',
+    2, 3,
+    true, heuristic := 2
+);
+\echo -- q3
+SELECT * FROM pgr_bdAstarCost(
+    'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2
+    FROM edge_table',
+    2, ARRAY[3, 11],
+    heuristic := 3, factor := 3.5
+);
+\echo -- q4
+SELECT * FROM pgr_bdAstarCost(
+    'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2
+    FROM edge_table',
+    ARRAY[2, 7], 3,
+    false, heuristic := 4
+);
+\echo -- q5
+SELECT * FROM pgr_bdAstarCost(
+    'SELECT id, source, target, cost, reverse_cost, x1,y1,x2,y2
+    FROM edge_table',
+    ARRAY[2, 7], ARRAY[3, 11],
+    factor := 0.5
+);
+\echo -- q6
diff --git a/src/bdAstar/test/test.conf b/src/bdAstar/test/test.conf
new file mode 100644
index 0000000..7502f3f
--- /dev/null
+++ b/src/bdAstar/test/test.conf
@@ -0,0 +1,18 @@
+#!/usr/bin/perl -w
+
+%main::tests = (
+    'any' => {
+        'comment' => 'pgr_pdAstar (new signature)',
+        'data' => [],
+        'tests' => [qw(
+            doc-pgr_bdAstar
+            doc-pgr_bdAstarCost
+            )],
+        'documentation' => [qw(
+            doc-pgr_bdAstar
+            doc-pgr_bdAstarCost
+            )]
+    },
+);
+
+1;
diff --git a/src/bdDijkstra/doc/doc-pgr_bdDijkstra.queries b/src/bdDijkstra/doc/doc-pgr_bdDijkstra.queries
deleted file mode 100644
index e25a292..0000000
--- a/src/bdDijkstra/doc/doc-pgr_bdDijkstra.queries
+++ /dev/null
@@ -1,52 +0,0 @@
-BEGIN;
-BEGIN
-SET client_min_messages TO NOTICE;
-SET
--- q1
-SELECT * FROM pgr_bdDijkstra(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    2, 3
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |    2 |    4 |    1 |        0
-   2 |        2 |    5 |    8 |    1 |        1
-   3 |        3 |    6 |    9 |    1 |        2
-   4 |        4 |    9 |   16 |    1 |        3
-   5 |        5 |    4 |    3 |    1 |        4
-   6 |        6 |    3 |   -1 |    0 |        5
-(6 rows)
-
--- q2
-SELECT * FROM pgr_bdDijkstra(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    2, 3,
-    false
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |    2 |    2 |    1 |        0
-   2 |        2 |    3 |   -1 |    0 |        1
-(2 rows)
-
--- q3
-SET client_min_messages TO notice;
-SET
-SELECT * FROM pgr_bdDijkstra(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT FROM edge_table',
-    2, 3,
-    false, 
-    false  
-);
-NOTICE:  Deprecated Signature of pgr_bdDijkstra
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |   2 |   4 |    1
-   1 |   5 |   8 |    1
-   2 |   6 |   5 |    1
-   3 |   3 |  -1 |    0
-(4 rows)
-
--- q4
-ROLLBACK;
-ROLLBACK
diff --git a/src/bdDijkstra/doc/pgr_bdDijkstra.rst b/src/bdDijkstra/doc/pgr_bdDijkstra.rst
deleted file mode 100644
index f924208..0000000
--- a/src/bdDijkstra/doc/pgr_bdDijkstra.rst
+++ /dev/null
@@ -1,113 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_bdDijkstra:
-
-pgr_bdDijkstra
-===============================================================================
-
-``pgr_bdDijkstra`` — Returns the shortest path(s) using Bidirectional Dijkstra algorithm.
-
-.. figure:: images/boost-inside.jpeg
-   :target: http://www.boost.org/libs/graph/doc
-
-   Boost Graph Inside
-
-.. rubric:: Availability:
-
-* pgr_bdDijkstra(one to one) 2.0.0, Signature changed 2.4.0
-
-Signature Summary
------------------
-
-.. code-block:: none
-
-    pgr_dijkstra(edges_sql, start_vid,  end_vid)
-    pgr_bdDijkstra(edges_sql, start_vid, end_vid, directed)
-    RETURNS SET OF (seq, path_seq, node, edge, cost, agg_cost)
-    OR EMPTY SET
-
-
-
-Signatures
--------------------------------------------------------------------------------
-
-.. index::
-    single: bdDijkstra(Minimal Use)
-
-Minimal signature
-.......................................
-
-.. code-block:: none
-
-    pgr_bdDijkstra(edges_sql, start_vid, end_vid)
-    RETURNS SET OF (seq, path_seq, node, edge, cost, agg_cost) or EMPTY SET
-
-The minimal signature is for a **directed** graph from one ``start_vid`` to one ``end_vid``:
-
-:Example:
-
-.. literalinclude:: doc-pgr_bdDijkstra.queries
-   :start-after: -- q1
-   :end-before: -- q2
-
-
-.. index::
-    single: bdDijkstra(One to One)
-
-pgr_bdDijkstra One to One
-.......................................
-
-.. code-block:: none
-
-    pgr_bdDijkstra(edges_sql, start_vid, end_vid, directed)
-    RETURNS SET OF (seq, path_seq, node, edge, cost, agg_cost) or EMPTY SET
-
-This signature finds the shortest path from one ``start_vid`` to one ``end_vid``:
-  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
-  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
-
-:Example:
-
-.. literalinclude:: doc-pgr_bdDijkstra.queries
-   :start-after: -- q2
-   :end-before: -- q3
-
-
-
-Description of the Signatures
--------------------------------------------------------------------------------
-
-.. include:: pgRouting-concepts.rst
-    :start-after: basic_edges_sql_start
-    :end-before: basic_edges_sql_end
-
-.. include:: pgr_dijkstra.rst
-    :start-after: pgr_dijkstra_parameters_start
-    :end-before: pgr_dijkstra_parameters_end
-
-.. include:: pgRouting-concepts.rst
-    :start-after: return_path_start
-    :end-before: return_path_end
-
-
-
-
-See Also
--------------------------------------------------------------------------------
-
-* The queries use the :ref:`sampledata` network.
-* http://www.cs.princeton.edu/courses/archive/spr06/cos423/Handouts/EPP%20shortest%20path%20algorithms.pdf
-* https://en.wikipedia.org/wiki/Bidirectional_search
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
-
diff --git a/src/bdDijkstra/sql/CMakeLists.txt b/src/bdDijkstra/sql/CMakeLists.txt
deleted file mode 100644
index 45b9942..0000000
--- a/src/bdDijkstra/sql/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-# Append in local scope
-LIST(APPEND PACKAGE_SQL_FILES
-    ${CMAKE_CURRENT_SOURCE_DIR}/bdDijkstra.sql
-)
-
-# set in parent scope
-SET(PACKAGE_SQL_FILES "${PACKAGE_SQL_FILES}" PARENT_SCOPE)
diff --git a/src/bdDijkstra/sql/bdDijkstra.sql b/src/bdDijkstra/sql/bdDijkstra.sql
deleted file mode 100644
index 55d666c..0000000
--- a/src/bdDijkstra/sql/bdDijkstra.sql
+++ /dev/null
@@ -1,93 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2016 pgRouting developers
-Mail: project at pgrouting.org
-
-Copyright (c) 2016 Celia Virginia Vergara Castillo
-mail: vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-
-CREATE OR REPLACE FUNCTION _pgr_bdDijkstra(
-    edges_sql TEXT,
-    start_vid BIGINT,
-    end_vid BIGINT,
-    directed BOOLEAN,
-    only_cost BOOLEAN DEFAULT false,
-    OUT seq INTEGER,
-    OUT path_seq INTEGER,
-    OUT node BIGINT,
-    OUT edge BIGINT,
-    OUT cost FLOAT,
-    OUT agg_cost FLOAT)
-RETURNS SETOF RECORD AS
-'$libdir/${PGROUTING_LIBRARY_NAME}', 'bdDijkstra'
-LANGUAGE c IMMUTABLE STRICT;
-
-
--- V3 signature
-CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
-    edges_sql TEXT,
-    start_vid BIGINT,
-    end_vid BIGINT,
-    OUT seq INTEGER,
-    OUT path_seq INTEGER,
-    OUT node BIGINT,
-    OUT edge BIGINT,
-    OUT cost FLOAT,
-    OUT agg_cost FLOAT)
-RETURNS SETOF RECORD AS
-$BODY$
-DECLARE
-statement_txt record;
-sql TEXT;
-BEGIN
-    RETURN query
-    SELECT * FROM _pgr_bdDijkstra(_pgr_get_statement($1), start_vid, end_vid, true, false);
-  END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
-
-
--- V3
-CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
-    edges_sql TEXT,
-    start_vid BIGINT,
-    end_vid BIGINT,
-    directed BOOLEAN,
-    OUT seq INTEGER,
-    OUT path_seq INTEGER,
-    OUT node BIGINT,
-    OUT edge BIGINT,
-    OUT cost FLOAT,
-    OUT agg_cost FLOAT)
-RETURNS SETOF RECORD AS
-$BODY$
-DECLARE
-BEGIN
-    RETURN query SELECT *
-    FROM _pgr_bdDijkstra(_pgr_get_statement($1), start_vid, end_vid, directed, false);
-  END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
diff --git a/src/bdDijkstra/src/bdDijkstra.c b/src/bdDijkstra/src/bdDijkstra.c
index d0f1234..cad4ec3 100644
--- a/src/bdDijkstra/src/bdDijkstra.c
+++ b/src/bdDijkstra/src/bdDijkstra.c
@@ -28,15 +28,18 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#include "./../../common/src/postgres_connection.h"
+#include "c_common/postgres_connection.h"
+#include "utils/array.h"
 
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/e_report.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/edges_input.h"
 
-#include "./bdDijkstra_driver.h"
+#include "c_common/debug_macro.h"
+#include "c_common/e_report.h"
+#include "c_common/time_msg.h"
+
+#include "c_common/edges_input.h"
+#include "c_common/arrays_input.h"
+
+#include "drivers/bdDijkstra/bdDijkstra_driver.h"
 
 PGDLLEXPORT Datum bdDijkstra(PG_FUNCTION_ARGS);
 PG_FUNCTION_INFO_V1(bdDijkstra);
@@ -48,23 +51,27 @@ static
 void
 process(
         char* edges_sql,
-        int64_t start_vid,
-        int64_t end_vid,
+        ArrayType *starts,
+        ArrayType *ends,
         bool directed,
         bool only_cost,
         General_path_element_t **result_tuples,
         size_t *result_count) {
     pgr_SPI_connect();
 
-    PGR_DBG("Load data");
+    int64_t* start_vidsArr = NULL;
+    size_t size_start_vidsArr = 0;
+    start_vidsArr = (int64_t*)
+        pgr_get_bigIntArray(&size_start_vidsArr, starts);
+
+    int64_t* end_vidsArr = NULL;
+    size_t size_end_vidsArr = 0;
+    end_vidsArr = (int64_t*)
+        pgr_get_bigIntArray(&size_end_vidsArr, ends);
+
     pgr_edge_t *edges = NULL;
     size_t total_edges = 0;
 
-    if (start_vid == end_vid) {
-        pgr_SPI_finish();
-        return;
-    }
-
     pgr_get_edges(edges_sql, &edges, &total_edges);
     PGR_DBG("Total %ld edges in query:", total_edges);
 
@@ -80,12 +87,13 @@ process(
     char *notice_msg = NULL;
     char *err_msg = NULL;
     do_pgr_bdDijkstra(
-            edges,
-            total_edges,
-            start_vid,
-            end_vid,
+            edges, total_edges,
+            start_vidsArr, size_start_vidsArr,
+            end_vidsArr, size_end_vidsArr,
+
             directed,
             only_cost,
+
             result_tuples,
             result_count,
             &log_msg,
@@ -137,8 +145,8 @@ PGDLLEXPORT Datum bdDijkstra(PG_FUNCTION_ARGS) {
 
         process(
                 text_to_cstring(PG_GETARG_TEXT_P(0)),
-                PG_GETARG_INT64(1),
-                PG_GETARG_INT64(2),
+                PG_GETARG_ARRAYTYPE_P(1),
+                PG_GETARG_ARRAYTYPE_P(2),
                 PG_GETARG_BOOL(3),
                 PG_GETARG_BOOL(4),
                 &result_tuples,
@@ -175,6 +183,8 @@ PGDLLEXPORT Datum bdDijkstra(PG_FUNCTION_ARGS) {
         Datum        result;
         Datum        *values;
         bool*        nulls;
+        size_t       call_cntr = funcctx->call_cntr;
+
 
         /**********************************************************************/
         /*                          MODIFY AS NEEDED                          */
@@ -187,22 +197,25 @@ PGDLLEXPORT Datum bdDijkstra(PG_FUNCTION_ARGS) {
            OUT agg_cost FLOAT
          ***********************************************************************/
 
-        values = palloc(6 * sizeof(Datum));
-        nulls = palloc(6 * sizeof(bool));
+        size_t numb = 8;
+        values = palloc(numb * sizeof(Datum));
+        nulls = palloc(numb * sizeof(bool));
 
 
         size_t i;
-        for (i = 0; i < 6; ++i) {
+        for (i = 0; i < numb; ++i) {
             nulls[i] = false;
         }
 
-        // postgres starts counting from 1
-        values[0] = Int32GetDatum(funcctx->call_cntr + 1);
-        values[1] = Int32GetDatum(result_tuples[funcctx->call_cntr].seq);
-        values[2] = Int64GetDatum(result_tuples[funcctx->call_cntr].node);
-        values[3] = Int64GetDatum(result_tuples[funcctx->call_cntr].edge);
-        values[4] = Float8GetDatum(result_tuples[funcctx->call_cntr].cost);
-        values[5] = Float8GetDatum(result_tuples[funcctx->call_cntr].agg_cost);
+        values[0] = Int32GetDatum(call_cntr + 1);
+        values[1] = Int32GetDatum(result_tuples[call_cntr].seq);
+        values[2] = Int64GetDatum(result_tuples[call_cntr].start_id);
+        values[3] = Int64GetDatum(result_tuples[call_cntr].end_id);
+        values[4] = Int64GetDatum(result_tuples[call_cntr].node);
+        values[5] = Int64GetDatum(result_tuples[call_cntr].edge);
+        values[6] = Float8GetDatum(result_tuples[call_cntr].cost);
+        values[7] = Float8GetDatum(result_tuples[call_cntr].agg_cost);
+
         /**********************************************************************/
 
         tuple = heap_form_tuple(tuple_desc, values, nulls);
diff --git a/src/bdDijkstra/src/bdDijkstra_driver.cpp b/src/bdDijkstra/src/bdDijkstra_driver.cpp
index 4e263b7..9864840 100644
--- a/src/bdDijkstra/src/bdDijkstra_driver.cpp
+++ b/src/bdDijkstra/src/bdDijkstra_driver.cpp
@@ -27,49 +27,59 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
+#include "drivers/bdDijkstra/bdDijkstra_driver.h"
 
 #include <sstream>
 #include <deque>
 #include <vector>
+#include <algorithm>
 
-#include "./pgr_bdDijkstra.hpp"
-#include "./bdDijkstra_driver.h"
+#include "bdDijkstra/pgr_bdDijkstra.hpp"
 
 
-#include "./../../common/src/pgr_alloc.hpp"
-#include "./../../common/src/pgr_assert.h"
-#include "./../../common/src/pgr_types.h"
+#include "cpp_common/pgr_alloc.hpp"
+#include "cpp_common/pgr_assert.h"
 
-#include "./../../common/src/pgr_base_graph.hpp"
+#include "cpp_common/pgr_base_graph.hpp"
 
 
 
 
-/************************************************************
-  edges_sql TEXT,
-    start_vid BIGINT,
-    end_vid BIGINT,
-    directed BOOLEAN DEFAULT true,
-    only_cost BOOLEAN DEFAULT false,
- ***********************************************************/
-
 template < class G >
 static
-Path
+std::deque<Path>
 pgr_bdDijkstra(
         G &graph,
-        int64_t source,
-        int64_t target,
+        std::vector < int64_t > sources,
+        std::vector < int64_t > targets,
+
         std::ostream &log,
-        bool only_cost = false) {
+        bool only_cost) {
     log << "entering static function\n";
-    Pgr_bdDijkstra<G> fn_bdDijkstra(graph);
+    std::sort(sources.begin(), sources.end());
+    sources.erase(
+            std::unique(sources.begin(), sources.end()),
+            sources.end());
+
+    std::sort(targets.begin(), targets.end());
+    targets.erase(
+            std::unique(targets.begin(), targets.end()),
+            targets.end());
+
+    pgrouting::bidirectional::Pgr_bdDijkstra<G> fn_bdDijkstra(graph);
+
+    std::deque<Path> paths;
+    for (const auto source : sources) {
+        for (const auto target : targets) {
+            fn_bdDijkstra.clear();
+            paths.push_back(fn_bdDijkstra.pgr_bdDijkstra(
+                        graph.get_V(source), graph.get_V(target), only_cost));
+        }
+    }
 
-    auto path = fn_bdDijkstra.pgr_bdDijkstra(
-            graph.get_V(source), graph.get_V(target), only_cost);
     log << fn_bdDijkstra.log();
 
-    return path;
+    return paths;
 }
 
 
@@ -77,52 +87,82 @@ void
 do_pgr_bdDijkstra(
         pgr_edge_t  *data_edges,
         size_t total_edges,
-        int64_t start_vid,
-        int64_t end_vid,
+        int64_t  *start_vidsArr,
+        size_t size_start_vidsArr,
+        int64_t  *end_vidsArr,
+        size_t size_end_vidsArr,
+
         bool directed,
         bool only_cost,
+
         General_path_element_t **return_tuples,
         size_t *return_count,
-        char ** log_msg,
-        char ** notice_msg,
-        char ** err_msg) {
+        char **log_msg,
+        char **notice_msg,
+        char **err_msg) {
     std::ostringstream log;
     std::ostringstream err;
     std::ostringstream notice;
     try {
+        pgassert(total_edges != 0);
+        pgassert(size_start_vidsArr != 0);
+        pgassert(size_end_vidsArr != 0);
+
         pgassert(!(*log_msg));
         pgassert(!(*notice_msg));
         pgassert(!(*err_msg));
         pgassert(!(*return_tuples));
         pgassert(*return_count == 0);
-        pgassert(total_edges != 0);
+
+        log << "Inserting vertices into a c++ vector structure";
+        std::vector<int64_t>
+            start_vertices(start_vidsArr, start_vidsArr + size_start_vidsArr);
+        std::vector< int64_t >
+            end_vertices(end_vidsArr, end_vidsArr + size_end_vidsArr);
 
         graphType gType = directed? DIRECTED: UNDIRECTED;
 
-        Path path;
+        std::deque<Path> paths;
 
         log << "starting process\n";
         if (directed) {
             log << "Working with directed Graph\n";
             pgrouting::DirectedGraph digraph(gType);
             digraph.insert_edges(data_edges, total_edges);
-            path = pgr_bdDijkstra(digraph,
-                    start_vid,
-                    end_vid,
+            paths = pgr_bdDijkstra(digraph,
+                    start_vertices,
+                    end_vertices,
                     log,
                     only_cost);
         } else {
             log << "Working with Undirected Graph\n";
             pgrouting::UndirectedGraph undigraph(gType);
             undigraph.insert_edges(data_edges, total_edges);
-            path = pgr_bdDijkstra(
+            paths = pgr_bdDijkstra(
                     undigraph,
-                    start_vid,
-                    end_vid,
+                    start_vertices,
+                    end_vertices,
                     log,
                     only_cost);
         }
 
+        size_t count(0);
+        count = count_tuples(paths);
+
+        if (count == 0) {
+            (*return_tuples) = NULL;
+            (*return_count) = 0;
+            notice <<
+                "No paths found";
+            *log_msg = pgr_msg(notice.str().c_str());
+            return;
+        }
+
+        (*return_tuples) = pgr_alloc(count, (*return_tuples));
+        log << "\nConverting a set of paths into the tuples";
+        (*return_count) = (collapse_paths(return_tuples, paths));
+
+#if 0
         auto count = path.size();
 
         if (count == 0) {
@@ -136,7 +176,7 @@ do_pgr_bdDijkstra(
             path.generate_postgres_data(return_tuples, sequence);
             (*return_count) = sequence;
         }
-
+#endif
         pgassert(*err_msg == NULL);
         *log_msg = log.str().empty()?
             nullptr :
diff --git a/src/bdDijkstra/src/bdDijkstra_driver.h b/src/bdDijkstra/src/bdDijkstra_driver.h
deleted file mode 100644
index adca119..0000000
--- a/src/bdDijkstra/src/bdDijkstra_driver.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: bdDijkstra_driver.h
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer: 
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifndef SRC_BDDIJKSTRA_SRC_BDDIJKSTRA_DRIVER_H_
-#define SRC_BDDIJKSTRA_SRC_BDDIJKSTRA_DRIVER_H_
-#pragma once
-
-#include "./../../common/src/pgr_types.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-    /*********************************************************
-      edges_sql TEXT,
-    start_vid BIGINT,
-    end_vid BIGINT,
-    directed BOOLEAN DEFAULT true,
-    only_cost BOOLEAN DEFAULT false,
-     ********************************************************/
-
-
-    void
-        do_pgr_bdDijkstra(
-                pgr_edge_t  *data_edges,
-                size_t total_edges,
-                int64_t start_vid,
-                int64_t end_vid,
-                bool directed,
-                bool only_cost,
-                General_path_element_t **return_tuples,
-                size_t *return_count,
-                char ** log_msg,
-                char ** notice_msg,
-                char ** err_msg);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif  // SRC_BDDIJKSTRA_SRC_BDDIJKSTRA_DRIVER_H_
diff --git a/src/bdDijkstra/src/pgr_bdDijkstra.hpp b/src/bdDijkstra/src/pgr_bdDijkstra.hpp
deleted file mode 100644
index f792deb..0000000
--- a/src/bdDijkstra/src/pgr_bdDijkstra.hpp
+++ /dev/null
@@ -1,281 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-File: pgr_bdDijkstra.hpp 
-
-Copyright (c) 2016 Celia Virginia Vergara Castillo
-vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- ********************************************************************PGR-GNU*/
-
-#ifndef SRC_BDDIJKSTRA_SRC_PGR_BDDIJKSTRA_HPP_
-#define SRC_BDDIJKSTRA_SRC_PGR_BDDIJKSTRA_HPP_
-#pragma once
-
-
-#include <boost/config.hpp>
-#include <boost/graph/adjacency_list.hpp>
-#include <boost/graph/dijkstra_shortest_paths.hpp>
-
-#include <string>
-#include <queue>
-#include <utility>
-#include <vector>
-#include <limits>
-#include <functional>
-
-
-#include "./../../common/src/pgr_assert.h"
-#include "./../../common/src/basePath_SSEC.hpp"
-#include "./../../common/src/pgr_base_graph.hpp"
-
-
-
-
-template < typename G >
-class Pgr_bdDijkstra {
-     typedef typename G::V V;
-     typedef typename G::E E;
-
-     typedef std::pair<double, V> Cost_Vertex_pair;
-     typedef typename std::priority_queue<
-         Cost_Vertex_pair,
-         std::vector<Cost_Vertex_pair>,
-         std::greater<Cost_Vertex_pair> > Priority_queue;
-
-
- public:
-     explicit Pgr_bdDijkstra(G &pgraph):
-         graph(pgraph),
-         INF((std::numeric_limits<double>::max)()) {
-             m_log << "constructor\n";
-         };
-
-     ~Pgr_bdDijkstra() = default;
-
-
-     Path pgr_bdDijkstra(V start_vertex, V end_vertex, bool only_cost) {
-         m_log << "pgr_bdDijkstra\n";
-         v_source = start_vertex;
-         v_target = end_vertex;
-
-         if (v_source == v_target) {
-            return Path(v_source, v_target);
-         }
-         return bidir_dijkstra(only_cost);
-     }
-
-     std::string log() const {return m_log.str();}
-     void clean_log() {m_log.clear();}
-     void clear() {
-         while (!forward_queue.empty()) forward_queue.pop();
-         while (!backward_queue.empty()) backward_queue.pop();
-
-         backward_finished.clear();
-         backward_edge.clear();
-         backward_predecessor.clear();
-         backward_cost.clear();
-
-         forward_finished.clear();
-         forward_edge.clear();
-         forward_predecessor.clear();
-         forward_cost.clear();
-     }
-
-
- private:
-     void initialize() {
-         m_log << "initializing\n";
-         clear();
-         forward_predecessor.resize(graph.num_vertices());
-         forward_finished.resize(graph.num_vertices(), false);
-         forward_edge.resize(graph.num_vertices(), -1);
-         forward_cost.resize(graph.num_vertices(), INF);
-         std::iota(forward_predecessor.begin(), forward_predecessor.end(), 0);
-
-         backward_predecessor.resize(graph.num_vertices());
-         backward_finished.resize(graph.num_vertices(), false);
-         backward_edge.resize(graph.num_vertices(), -1);
-         backward_cost.resize(graph.num_vertices(), INF);
-         std::iota(backward_predecessor.begin(), backward_predecessor.end(), 0);
-
-         v_min_node = -1;
-         best_cost = INF;
-     }
-
-     Path bidir_dijkstra(bool only_cost) {
-         m_log << "bidir_dijkstra\n";
-
-         Pgr_bdDijkstra< G >::initialize();
-
-         forward_cost[v_source] = 0;
-         forward_queue.push(std::make_pair(0.0, v_source));
-
-         backward_cost[v_target] = 0;
-         backward_queue.push(std::make_pair(0.0, v_target));
-
-         while (!forward_queue.empty() &&  !backward_queue.empty()) {
-             auto forward_node = forward_queue.top();
-             auto backward_node = backward_queue.top();
-             /*
-              *  done: there is no path with lower cost
-              */
-             if (forward_node.first == INF || backward_node.first == INF) {
-                 break;
-             }
-
-             /*
-              * Explore from the cheapest side
-              */
-             if (backward_node.first < forward_node.first) {
-                 backward_queue.pop();
-                 if (!backward_finished[backward_node.second]) {
-                     explore_backward(backward_node);
-                 }
-                 if (found(backward_node.second)) {
-                     break;
-                 }
-             } else {
-                 forward_queue.pop();
-                 if (!forward_finished[forward_node.second]) {
-                     explore_forward(forward_node);
-                 }
-                 if (found(forward_node.second)) {
-                     break;
-                 }
-             }
-         }
-
-         if (best_cost == INF) return Path();
-
-         Path forward_path(
-                 graph,
-                 v_source,
-                 v_min_node,
-                 forward_predecessor,
-                 forward_cost,
-                 only_cost,
-                 true);
-         Path backward_path(
-                 graph,
-                 v_target,
-                 v_min_node,
-                 backward_predecessor,
-                 backward_cost,
-                 only_cost,
-                 false);
-         m_log << forward_path;
-         backward_path.reverse();
-         m_log << backward_path;
-         forward_path.append(backward_path);
-         m_log << forward_path;
-         return forward_path;
-     }
-
-
-
-     bool found(const V &node) {
-         /*
-          * Update common node
-          */
-         if (forward_finished[node] && backward_finished[node]) {
-             if (best_cost >= forward_cost[node] + backward_cost[node]) {
-                 v_min_node = node;
-                 best_cost =  forward_cost[node] + backward_cost[node];
-                 return false;
-             } else {
-                 return true;
-             }
-         }
-         return false;
-     }
-
-     void explore_forward(const Cost_Vertex_pair &node) {
-         typename G::EO_i out, out_end;
-
-         auto current_cost = node.first;
-         auto current_node = node.second;
-
-         for (boost::tie(out, out_end) = out_edges(current_node, graph.graph);
-                 out != out_end; ++out) {
-             auto edge_cost = graph[*out].cost;
-             auto next_node = graph.adjacent(current_node, *out);
-
-             if (forward_finished[next_node]) continue;
-
-             if (edge_cost + current_cost < forward_cost[next_node]) {
-                 forward_cost[next_node] = edge_cost + current_cost;
-                 forward_predecessor[next_node] = current_node;
-                 forward_edge[next_node] = graph[*out].id;
-                 forward_queue.push({forward_cost[next_node], next_node});
-             }
-         }
-         forward_finished[current_node] = true;
-     }
-
-     void explore_backward(const Cost_Vertex_pair &node) {
-         typename G::EI_i in, in_end;
-
-         auto current_cost = node.first;
-         auto current_node = node.second;
-
-         for (boost::tie(in, in_end) = in_edges(current_node, graph.graph);
-                 in != in_end; ++in) {
-             auto edge_cost = graph[*in].cost;
-             auto next_node = graph.adjacent(current_node, *in);
-
-             if (backward_finished[next_node]) continue;
-
-             if (edge_cost + current_cost < backward_cost[next_node]) {
-                 backward_cost[next_node] = edge_cost + current_cost;
-                 backward_predecessor[next_node] = current_node;
-                 backward_edge[next_node] = graph[*in].id;
-                 backward_queue.push({backward_cost[next_node], next_node});
-             }
-         }
-         backward_finished[current_node] = true;
-     }
-
-
- private:
-     G &graph;
-     V v_source;  //!< source descriptor
-     V v_target;  //!< target descriptor
-     V v_min_node;  //!< target descriptor
-
-     double INF;  //!< infinity
-
-     mutable std::ostringstream m_log;
-     Priority_queue forward_queue;
-     Priority_queue backward_queue;
-
-     double best_cost;
-     bool cost_only;
-
-     std::vector<bool> backward_finished;
-     std::vector<int64_t> backward_edge;
-     std::vector<V> backward_predecessor;
-     std::vector<double> backward_cost;
-
-     std::vector<bool> forward_finished;
-     std::vector<int64_t> forward_edge;
-     std::vector<V> forward_predecessor;
-     std::vector<double> forward_cost;
-};
-
-#endif  // SRC_BDDIJKSTRA_SRC_PGR_BDDIJKSTRA_HPP_
diff --git a/src/bdDijkstra/test/bdDijkstra-large.result b/src/bdDijkstra/test/bdDijkstra-large.result
index 73fd1f1..54c6ddd 100644
--- a/src/bdDijkstra/test/bdDijkstra-large.result
+++ b/src/bdDijkstra/test/bdDijkstra-large.result
@@ -1,332 +1,396 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 --q1
-1|5700|20787|0.006774
-2|10932|20756|0.040876
-3|10931|20797|0.002564
-4|7661|20796|0.002581
-5|10943|20776|0.040800
-6|10941|20772|0.005720
-7|3415|20771|0.007463
-8|10940|20841|0.187594
-9|10952|20812|0.005045
-10|7034|20811|0.004532
-11|10951|20833|0.177477
-12|10944|20779|0.008539
-13|8910|20778|0.006447
-14|10929|20835|0.071114
-15|10948|20794|0.013276
-16|8908|12990|0.013157
-17|8325|13831|0.009169
-18|3753|13830|0.196045
-19|6774|13829|0.032840
-20|8304|13828|0.117213
-21|9205|13827|0.010639
-22|8994|13165|0.012931
-23|8977|13164|0.008029
-24|8976|13163|0.069895
-25|8993|13162|0.009638
-26|8351|13161|0.099016
-27|8992|13160|0.187353
-28|8991|13159|0.018649
-29|2962|13158|0.071931
-30|1285|13157|0.118340
-31|8989|13156|0.006317
-32|8988|13155|0.079185
-33|21|13154|0.057101
-34|6436|13153|0.083288
-35|637|13152|0.099744
-36|8987|13151|0.057786
-37|398|13150|0.120005
-38|8496|13149|0.069498
-39|8986|13148|0.014323
-40|8985|13167|0.070884
-41|8451|11869|0.006925
-42|476|11868|0.196533
-43|529|11867|0.005677
-44|8450|11871|0.118857
-45|8452|11878|0.083250
-46|8455|11880|0.048821
-47|8456|11883|0.064572
-48|1807|11882|0.101185
-49|8457|11894|0.046805
-50|8465|15481|0.180992
-51|8522|15480|0.016198
-52|9621|15479|0.209882
-53|2808|15478|0.019312
-54|8311|15477|0.113487
-55|8583|16981|0.045667
-56|10046|16982|0.022635
-57|8467|16983|0.022924
-58|9624|15487|0.034042
-59|8468|11899|0.018103
-60|3170|19357|0.047698
-61|9949|19358|0.059093
-62|10479|19359|0.051651
-63|9948|19360|0.051709
-64|8509|19374|0.106794
-65|9595|19375|0.102428
-66|8634|19376|0.107643
-67|10174|19377|0.096140
-68|10482|19378|0.009782
-69|9194|19379|0.102702
-70|4397|19380|0.108243
-71|3002|19381|0.098919
-72|10484|19382|0.006171
-73|5962|19383|0.005429
-74|10485|19384|0.047276
-75|10459|19385|0.052864
-76|7579|19386|0.052378
-77|10455|19387|0.052414
-78|5805|19388|0.081956
-79|10462|19389|0.016974
-80|8768|12598|0.059630
-81|8767|19290|0.117748
-82|10470|19289|0.065769
-83|10469|19288|0.066230
-84|10468|19287|0.111281
-85|9967|16642|0.029056
-86|9956|16621|0.014614
-87|9938|16626|0.007036
-88|9960|16649|0.081206
-89|9968|16650|0.012230
-90|9969|16647|0.012368
-91|5457|6266|0.055134
-92|5458|6267|0.053860
-93|5459|6268|0.109859
-94|5460|6269|0.104952
-95|5461|6270|0.053766
-96|5462|6271|0.046800
-97|5463|12897|0.170300
-98|8880|15060|0.049014
-99|7101|15059|0.047811
-100|9313|15058|0.044674
-101|6733|-1|0.000000
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2016 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+SELECT seq, node, edge, round(cost::numeric, 6)  FROM
+  pgr_bdDijkstra('SELECT * FROM bdd_ways', 5700, 6733, true);
+ seq | node  | edge  |  round   
+-----+-------+-------+----------
+   1 |  5700 | 20787 | 0.006774
+   2 | 10932 | 20756 | 0.040876
+   3 | 10931 | 20797 | 0.002564
+   4 |  7661 | 20796 | 0.002581
+   5 | 10943 | 20776 | 0.040800
+   6 | 10941 | 20772 | 0.005720
+   7 |  3415 | 20771 | 0.007463
+   8 | 10940 | 20841 | 0.187594
+   9 | 10952 | 20812 | 0.005045
+  10 |  7034 | 20811 | 0.004532
+  11 | 10951 | 20833 | 0.177477
+  12 | 10944 | 20779 | 0.008539
+  13 |  8910 | 20778 | 0.006447
+  14 | 10929 | 20835 | 0.071114
+  15 | 10948 | 20794 | 0.013276
+  16 |  8908 | 12990 | 0.013157
+  17 |  8325 | 13831 | 0.009169
+  18 |  3753 | 13830 | 0.196045
+  19 |  6774 | 13829 | 0.032840
+  20 |  8304 | 13828 | 0.117213
+  21 |  9205 | 13827 | 0.010639
+  22 |  8994 | 13165 | 0.012931
+  23 |  8977 | 13164 | 0.008029
+  24 |  8976 | 13163 | 0.069895
+  25 |  8993 | 13162 | 0.009638
+  26 |  8351 | 13161 | 0.099016
+  27 |  8992 | 13160 | 0.187353
+  28 |  8991 | 13159 | 0.018649
+  29 |  2962 | 13158 | 0.071931
+  30 |  1285 | 13157 | 0.118340
+  31 |  8989 | 13156 | 0.006317
+  32 |  8988 | 13155 | 0.079185
+  33 |    21 | 13154 | 0.057101
+  34 |  6436 | 13153 | 0.083288
+  35 |   637 | 13152 | 0.099744
+  36 |  8987 | 13151 | 0.057786
+  37 |   398 | 13150 | 0.120005
+  38 |  8496 | 13149 | 0.069498
+  39 |  8986 | 13148 | 0.014323
+  40 |  8985 | 13167 | 0.070884
+  41 |  8451 | 11869 | 0.006925
+  42 |   476 | 11868 | 0.196533
+  43 |   529 | 11867 | 0.005677
+  44 |  8450 | 11871 | 0.118857
+  45 |  8452 | 11878 | 0.083250
+  46 |  8455 | 11880 | 0.048821
+  47 |  8456 | 11883 | 0.064572
+  48 |  1807 | 11882 | 0.101185
+  49 |  8457 | 11894 | 0.046805
+  50 |  8465 | 15481 | 0.180992
+  51 |  8522 | 15480 | 0.016198
+  52 |  9621 | 15479 | 0.209882
+  53 |  2808 | 15478 | 0.019312
+  54 |  8311 | 15477 | 0.113487
+  55 |  8583 | 16981 | 0.045667
+  56 | 10046 | 16982 | 0.022635
+  57 |  8467 | 16983 | 0.022924
+  58 |  9624 | 15487 | 0.034042
+  59 |  8468 | 11899 | 0.018103
+  60 |  3170 | 19357 | 0.047698
+  61 |  9949 | 19358 | 0.059093
+  62 | 10479 | 19359 | 0.051651
+  63 |  9948 | 19360 | 0.051709
+  64 |  8509 | 19374 | 0.106794
+  65 |  9595 | 19375 | 0.102428
+  66 |  8634 | 19376 | 0.107643
+  67 | 10174 | 19377 | 0.096140
+  68 | 10482 | 19378 | 0.009782
+  69 |  9194 | 19379 | 0.102702
+  70 |  4397 | 19380 | 0.108243
+  71 |  3002 | 19381 | 0.098919
+  72 | 10484 | 19382 | 0.006171
+  73 |  5962 | 19383 | 0.005429
+  74 | 10485 | 19384 | 0.047276
+  75 | 10459 | 19385 | 0.052864
+  76 |  7579 | 19386 | 0.052378
+  77 | 10455 | 19387 | 0.052414
+  78 |  5805 | 19388 | 0.081956
+  79 | 10462 | 19389 | 0.016974
+  80 |  8768 | 12598 | 0.059630
+  81 |  8767 | 19290 | 0.117748
+  82 | 10470 | 19289 | 0.065769
+  83 | 10469 | 19288 | 0.066230
+  84 | 10468 | 19287 | 0.111281
+  85 |  9967 | 16642 | 0.029056
+  86 |  9956 | 16621 | 0.014614
+  87 |  9938 | 16626 | 0.007036
+  88 |  9960 | 16649 | 0.081206
+  89 |  9968 | 16650 | 0.012230
+  90 |  9969 | 16647 | 0.012368
+  91 |  5457 |  6266 | 0.055134
+  92 |  5458 |  6267 | 0.053860
+  93 |  5459 |  6268 | 0.109859
+  94 |  5460 |  6269 | 0.104952
+  95 |  5461 |  6270 | 0.053766
+  96 |  5462 |  6271 | 0.046800
+  97 |  5463 | 12897 | 0.170300
+  98 |  8880 | 15060 | 0.049014
+  99 |  7101 | 15059 | 0.047811
+ 100 |  9313 | 15058 | 0.044674
+ 101 |  6733 |    -1 | 0.000000
+(101 rows)
+
 --q2
-1|6585|17975|0.200230
-2|5367|17976|0.155428
-3|7125|17977|0.178581
-4|613|17978|0.175712
-5|10025|17979|0.173776
-6|5802|6758|0.013489
-7|5803|6759|0.065176
-8|5804|6760|0.008679
-9|5805|6761|0.145097
-10|5806|6762|0.146807
-11|5807|6763|0.097186
-12|5808|6764|0.050569
-13|5809|20663|0.169650
-14|4620|20662|0.023243
-15|5774|20661|0.120390
-16|6482|20660|0.002769
-17|5957|20659|0.087952
-18|8289|20658|0.048701
-19|10884|20657|0.009212
-20|10883|20656|0.080500
-21|9954|20655|0.075280
-22|4390|16876|0.147691
-23|9203|17805|0.063931
-24|7892|17804|0.015429
-25|8417|17803|0.069119
-26|10171|17802|0.075825
-27|9953|17801|0.045079
-28|8859|17800|0.029389
-29|8536|17799|0.072658
-30|10180|17798|0.076558
-31|9592|17797|0.027637
-32|9318|17796|0.114755
-33|10179|17795|0.007150
-34|10178|17794|0.087467
-35|8402|17793|0.062258
-36|6179|17792|0.109483
-37|8508|17791|0.036248
-38|3305|17790|0.069816
-39|8512|17789|0.064158
-40|998|17807|0.471312
-41|2698|2743|0.102019
-42|2563|9039|0.341756
-43|2043|9040|0.587619
-44|4280|9041|0.145996
-45|2317|9042|0.268754
-46|7135|9043|0.121251
-47|4276|9044|0.145396
-48|6167|9045|0.583394
-49|7136|9046|0.043099
-50|7137|19345|0.053510
-51|10475|19344|0.015153
-52|10142|19343|0.064475
-53|10140|17566|0.135370
-54|8539|17565|0.057338
-55|10138|17558|0.064893
-56|6943|17559|0.201703
-57|8140|17560|0.469613
-58|10139|20189|0.060217
-59|10705|20185|0.055053
-60|8247|-1|0.000000
+SELECT seq, node, edge, round(cost::numeric, 6)  FROM
+  pgr_bdDijkstra('SELECT * FROM bdd_ways', 6585, 8247, true);
+ seq | node  | edge  |  round   
+-----+-------+-------+----------
+   1 |  6585 | 17975 | 0.200230
+   2 |  5367 | 17976 | 0.155428
+   3 |  7125 | 17977 | 0.178581
+   4 |   613 | 17978 | 0.175712
+   5 | 10025 | 17979 | 0.173776
+   6 |  5802 |  6758 | 0.013489
+   7 |  5803 |  6759 | 0.065176
+   8 |  5804 |  6760 | 0.008679
+   9 |  5805 |  6761 | 0.145097
+  10 |  5806 |  6762 | 0.146807
+  11 |  5807 |  6763 | 0.097186
+  12 |  5808 |  6764 | 0.050569
+  13 |  5809 | 20663 | 0.169650
+  14 |  4620 | 20662 | 0.023243
+  15 |  5774 | 20661 | 0.120390
+  16 |  6482 | 20660 | 0.002769
+  17 |  5957 | 20659 | 0.087952
+  18 |  8289 | 20658 | 0.048701
+  19 | 10884 | 20657 | 0.009212
+  20 | 10883 | 20656 | 0.080500
+  21 |  9954 | 20655 | 0.075280
+  22 |  4390 | 16876 | 0.147691
+  23 |  9203 | 17805 | 0.063931
+  24 |  7892 | 17804 | 0.015429
+  25 |  8417 | 17803 | 0.069119
+  26 | 10171 | 17802 | 0.075825
+  27 |  9953 | 17801 | 0.045079
+  28 |  8859 | 17800 | 0.029389
+  29 |  8536 | 17799 | 0.072658
+  30 | 10180 | 17798 | 0.076558
+  31 |  9592 | 17797 | 0.027637
+  32 |  9318 | 17796 | 0.114755
+  33 | 10179 | 17795 | 0.007150
+  34 | 10178 | 17794 | 0.087467
+  35 |  8402 | 17793 | 0.062258
+  36 |  6179 | 17792 | 0.109483
+  37 |  8508 | 17791 | 0.036248
+  38 |  3305 | 17790 | 0.069816
+  39 |  8512 | 17789 | 0.064158
+  40 |   998 | 17807 | 0.471312
+  41 |  2698 |  2743 | 0.102019
+  42 |  2563 |  9039 | 0.341756
+  43 |  2043 |  9040 | 0.587619
+  44 |  4280 |  9041 | 0.145996
+  45 |  2317 |  9042 | 0.268754
+  46 |  7135 |  9043 | 0.121251
+  47 |  4276 |  9044 | 0.145396
+  48 |  6167 |  9045 | 0.583394
+  49 |  7136 |  9046 | 0.043099
+  50 |  7137 | 19345 | 0.053510
+  51 | 10475 | 19344 | 0.015153
+  52 | 10142 | 19343 | 0.064475
+  53 | 10140 | 17566 | 0.135370
+  54 |  8539 | 17565 | 0.057338
+  55 | 10138 | 17558 | 0.064893
+  56 |  6943 | 17559 | 0.201703
+  57 |  8140 | 17560 | 0.469613
+  58 | 10139 | 20189 | 0.060217
+  59 | 10705 | 20185 | 0.055053
+  60 |  8247 |    -1 | 0.000000
+(60 rows)
+
 --q3
-1|9426|14822|0.060319
-2|3606|-1|0.000000
+SELECT seq, node, edge, round(cost::numeric, 6)  FROM
+  pgr_bdDijkstra('SELECT * FROM bdd_ways', 9426, 3606, true);
+ seq | node | edge  |  round   
+-----+------+-------+----------
+   1 | 9426 | 14822 | 0.060319
+   2 | 3606 |    -1 | 0.000000
+(2 rows)
+
 --q4
-1|3606|14822|0.060319
-2|9426|-1|0.000000
+SELECT seq, node, edge, round(cost::numeric, 6)  FROM
+  pgr_bdDijkstra('SELECT * FROM bdd_ways', 3606, 9426, true);
+ seq | node | edge  |  round   
+-----+------+-------+----------
+   1 | 3606 | 14822 | 0.060319
+   2 | 9426 |    -1 | 0.000000
+(2 rows)
+
 --q5
-1|6733|15058|0.044674
-2|9313|15059|0.047811
-3|7101|15060|0.049014
-4|8880|12897|0.170300
-5|5463|6271|0.046800
-6|5462|6270|0.053766
-7|5461|6269|0.104952
-8|5460|6268|0.109859
-9|5459|6267|0.053860
-10|5458|6266|0.055134
-11|5457|16647|0.012368
-12|9969|16650|0.012230
-13|9968|16649|0.081206
-14|9960|16626|0.007036
-15|9938|16621|0.014614
-16|9956|16642|0.029056
-17|9967|19287|0.111281
-18|10468|19288|0.066230
-19|10469|19289|0.065769
-20|10470|19290|0.117748
-21|8767|12598|0.059630
-22|8768|19389|0.016974
-23|10462|19388|0.081956
-24|5805|19387|0.052414
-25|10455|19386|0.052378
-26|7579|19385|0.052864
-27|10459|19384|0.047276
-28|10485|19383|0.005429
-29|5962|19382|0.006171
-30|10484|19381|0.098919
-31|3002|19380|0.108243
-32|4397|19379|0.102702
-33|9194|19378|0.009782
-34|10482|19377|0.096140
-35|10174|19376|0.107643
-36|8634|19375|0.102428
-37|9595|19374|0.106794
-38|8509|19360|0.051709
-39|9948|19359|0.051651
-40|10479|19358|0.059093
-41|9949|19357|0.047698
-42|3170|11899|0.018103
-43|8468|15487|0.034042
-44|9624|16983|0.022924
-45|8467|16982|0.022635
-46|10046|16981|0.045667
-47|8583|15477|0.113487
-48|8311|15478|0.019312
-49|2808|15479|0.209882
-50|9621|15480|0.016198
-51|8522|15481|0.180992
-52|8465|11894|0.046805
-53|8457|11882|0.101185
-54|1807|11883|0.064572
-55|8456|11880|0.048821
-56|8455|11878|0.083250
-57|8452|11871|0.118857
-58|8450|11867|0.005677
-59|529|11868|0.196533
-60|476|11869|0.006925
-61|8451|13167|0.070884
-62|8985|13148|0.014323
-63|8986|13149|0.069498
-64|8496|13150|0.120005
-65|398|13151|0.057786
-66|8987|13152|0.099744
-67|637|13153|0.083288
-68|6436|13154|0.057101
-69|21|13155|0.079185
-70|8988|13156|0.006317
-71|8989|13157|0.118340
-72|1285|13158|0.071931
-73|2962|13159|0.018649
-74|8991|13160|0.187353
-75|8992|13161|0.099016
-76|8351|13162|0.009638
-77|8993|13163|0.069895
-78|8976|13164|0.008029
-79|8977|13165|0.012931
-80|8994|13827|0.010639
-81|9205|13828|0.117213
-82|8304|13829|0.032840
-83|6774|13830|0.196045
-84|3753|13831|0.009169
-85|8325|12990|0.013157
-86|8908|20794|0.013276
-87|10948|20835|0.071114
-88|10929|20778|0.006447
-89|8910|20779|0.008539
-90|10944|20833|0.177477
-91|10951|20811|0.004532
-92|7034|20812|0.005045
-93|10952|20841|0.187594
-94|10940|20771|0.007463
-95|3415|20772|0.005720
-96|10941|20776|0.040800
-97|10943|20796|0.002581
-98|7661|20797|0.002564
-99|10931|20756|0.040876
-100|10932|20787|0.006774
-101|5700|-1|0.000000
+SELECT seq, node, edge, round(cost::numeric, 6)  FROM
+  pgr_bdDijkstra('SELECT * FROM bdd_ways', 6733, 5700, true);
+ seq | node  | edge  |  round   
+-----+-------+-------+----------
+   1 |  6733 | 15058 | 0.044674
+   2 |  9313 | 15059 | 0.047811
+   3 |  7101 | 15060 | 0.049014
+   4 |  8880 | 12897 | 0.170300
+   5 |  5463 |  6271 | 0.046800
+   6 |  5462 |  6270 | 0.053766
+   7 |  5461 |  6269 | 0.104952
+   8 |  5460 |  6268 | 0.109859
+   9 |  5459 |  6267 | 0.053860
+  10 |  5458 |  6266 | 0.055134
+  11 |  5457 | 16647 | 0.012368
+  12 |  9969 | 16650 | 0.012230
+  13 |  9968 | 16649 | 0.081206
+  14 |  9960 | 16626 | 0.007036
+  15 |  9938 | 16621 | 0.014614
+  16 |  9956 | 16642 | 0.029056
+  17 |  9967 | 19287 | 0.111281
+  18 | 10468 | 19288 | 0.066230
+  19 | 10469 | 19289 | 0.065769
+  20 | 10470 | 19290 | 0.117748
+  21 |  8767 | 12598 | 0.059630
+  22 |  8768 | 19389 | 0.016974
+  23 | 10462 | 19388 | 0.081956
+  24 |  5805 | 19387 | 0.052414
+  25 | 10455 | 19386 | 0.052378
+  26 |  7579 | 19385 | 0.052864
+  27 | 10459 | 19384 | 0.047276
+  28 | 10485 | 19383 | 0.005429
+  29 |  5962 | 19382 | 0.006171
+  30 | 10484 | 19381 | 0.098919
+  31 |  3002 | 19380 | 0.108243
+  32 |  4397 | 19379 | 0.102702
+  33 |  9194 | 19378 | 0.009782
+  34 | 10482 | 19377 | 0.096140
+  35 | 10174 | 19376 | 0.107643
+  36 |  8634 | 19375 | 0.102428
+  37 |  9595 | 19374 | 0.106794
+  38 |  8509 | 19360 | 0.051709
+  39 |  9948 | 19359 | 0.051651
+  40 | 10479 | 19358 | 0.059093
+  41 |  9949 | 19357 | 0.047698
+  42 |  3170 | 11899 | 0.018103
+  43 |  8468 | 15487 | 0.034042
+  44 |  9624 | 16983 | 0.022924
+  45 |  8467 | 16982 | 0.022635
+  46 | 10046 | 16981 | 0.045667
+  47 |  8583 | 15477 | 0.113487
+  48 |  8311 | 15478 | 0.019312
+  49 |  2808 | 15479 | 0.209882
+  50 |  9621 | 15480 | 0.016198
+  51 |  8522 | 15481 | 0.180992
+  52 |  8465 | 11894 | 0.046805
+  53 |  8457 | 11882 | 0.101185
+  54 |  1807 | 11883 | 0.064572
+  55 |  8456 | 11880 | 0.048821
+  56 |  8455 | 11878 | 0.083250
+  57 |  8452 | 11871 | 0.118857
+  58 |  8450 | 11867 | 0.005677
+  59 |   529 | 11868 | 0.196533
+  60 |   476 | 11869 | 0.006925
+  61 |  8451 | 13167 | 0.070884
+  62 |  8985 | 13148 | 0.014323
+  63 |  8986 | 13149 | 0.069498
+  64 |  8496 | 13150 | 0.120005
+  65 |   398 | 13151 | 0.057786
+  66 |  8987 | 13152 | 0.099744
+  67 |   637 | 13153 | 0.083288
+  68 |  6436 | 13154 | 0.057101
+  69 |    21 | 13155 | 0.079185
+  70 |  8988 | 13156 | 0.006317
+  71 |  8989 | 13157 | 0.118340
+  72 |  1285 | 13158 | 0.071931
+  73 |  2962 | 13159 | 0.018649
+  74 |  8991 | 13160 | 0.187353
+  75 |  8992 | 13161 | 0.099016
+  76 |  8351 | 13162 | 0.009638
+  77 |  8993 | 13163 | 0.069895
+  78 |  8976 | 13164 | 0.008029
+  79 |  8977 | 13165 | 0.012931
+  80 |  8994 | 13827 | 0.010639
+  81 |  9205 | 13828 | 0.117213
+  82 |  8304 | 13829 | 0.032840
+  83 |  6774 | 13830 | 0.196045
+  84 |  3753 | 13831 | 0.009169
+  85 |  8325 | 12990 | 0.013157
+  86 |  8908 | 20794 | 0.013276
+  87 | 10948 | 20835 | 0.071114
+  88 | 10929 | 20778 | 0.006447
+  89 |  8910 | 20779 | 0.008539
+  90 | 10944 | 20833 | 0.177477
+  91 | 10951 | 20811 | 0.004532
+  92 |  7034 | 20812 | 0.005045
+  93 | 10952 | 20841 | 0.187594
+  94 | 10940 | 20771 | 0.007463
+  95 |  3415 | 20772 | 0.005720
+  96 | 10941 | 20776 | 0.040800
+  97 | 10943 | 20796 | 0.002581
+  98 |  7661 | 20797 | 0.002564
+  99 | 10931 | 20756 | 0.040876
+ 100 | 10932 | 20787 | 0.006774
+ 101 |  5700 |    -1 | 0.000000
+(101 rows)
+
 --q6
-1|8247|20185|0.055053
-2|10705|20189|0.060217
-3|10139|17560|0.469613
-4|8140|17559|0.201703
-5|6943|17558|0.064893
-6|10138|17565|0.057338
-7|8539|17566|0.135370
-8|10140|19343|0.064475
-9|10142|19344|0.015153
-10|10475|19345|0.053510
-11|7137|9046|0.043099
-12|7136|9045|0.583394
-13|6167|9044|0.145396
-14|4276|9043|0.121251
-15|7135|9042|0.268754
-16|2317|9041|0.145996
-17|4280|9040|0.587619
-18|2043|9039|0.341756
-19|2563|2743|0.102019
-20|2698|17807|0.471312
-21|998|17789|0.064158
-22|8512|17790|0.069816
-23|3305|17791|0.036248
-24|8508|17792|0.109483
-25|6179|17793|0.062258
-26|8402|17794|0.087467
-27|10178|17795|0.007150
-28|10179|17796|0.114755
-29|9318|17797|0.027637
-30|9592|17798|0.076558
-31|10180|17799|0.072658
-32|8536|17800|0.029389
-33|8859|17801|0.045079
-34|9953|17802|0.075825
-35|10171|17803|0.069119
-36|8417|17804|0.015429
-37|7892|17805|0.063931
-38|9203|16876|0.147691
-39|4390|20655|0.075280
-40|9954|20656|0.080500
-41|10883|20657|0.009212
-42|10884|20658|0.048701
-43|8289|20659|0.087952
-44|5957|20660|0.002769
-45|6482|20661|0.120390
-46|5774|20662|0.023243
-47|4620|20663|0.169650
-48|5809|6764|0.050569
-49|5808|6763|0.097186
-50|5807|6762|0.146807
-51|5806|6761|0.145097
-52|5805|6760|0.008679
-53|5804|6759|0.065176
-54|5803|6758|0.013489
-55|5802|17979|0.173776
-56|10025|17978|0.175712
-57|613|17977|0.178581
-58|7125|17976|0.155428
-59|5367|17975|0.200230
-60|6585|-1|0.000000
+SELECT seq, node, edge, round(cost::numeric, 6)  FROM
+  pgr_bdDijkstra('SELECT * FROM bdd_ways', 8247, 6585, true);
+ seq | node  | edge  |  round   
+-----+-------+-------+----------
+   1 |  8247 | 20185 | 0.055053
+   2 | 10705 | 20189 | 0.060217
+   3 | 10139 | 17560 | 0.469613
+   4 |  8140 | 17559 | 0.201703
+   5 |  6943 | 17558 | 0.064893
+   6 | 10138 | 17565 | 0.057338
+   7 |  8539 | 17566 | 0.135370
+   8 | 10140 | 19343 | 0.064475
+   9 | 10142 | 19344 | 0.015153
+  10 | 10475 | 19345 | 0.053510
+  11 |  7137 |  9046 | 0.043099
+  12 |  7136 |  9045 | 0.583394
+  13 |  6167 |  9044 | 0.145396
+  14 |  4276 |  9043 | 0.121251
+  15 |  7135 |  9042 | 0.268754
+  16 |  2317 |  9041 | 0.145996
+  17 |  4280 |  9040 | 0.587619
+  18 |  2043 |  9039 | 0.341756
+  19 |  2563 |  2743 | 0.102019
+  20 |  2698 | 17807 | 0.471312
+  21 |   998 | 17789 | 0.064158
+  22 |  8512 | 17790 | 0.069816
+  23 |  3305 | 17791 | 0.036248
+  24 |  8508 | 17792 | 0.109483
+  25 |  6179 | 17793 | 0.062258
+  26 |  8402 | 17794 | 0.087467
+  27 | 10178 | 17795 | 0.007150
+  28 | 10179 | 17796 | 0.114755
+  29 |  9318 | 17797 | 0.027637
+  30 |  9592 | 17798 | 0.076558
+  31 | 10180 | 17799 | 0.072658
+  32 |  8536 | 17800 | 0.029389
+  33 |  8859 | 17801 | 0.045079
+  34 |  9953 | 17802 | 0.075825
+  35 | 10171 | 17803 | 0.069119
+  36 |  8417 | 17804 | 0.015429
+  37 |  7892 | 17805 | 0.063931
+  38 |  9203 | 16876 | 0.147691
+  39 |  4390 | 20655 | 0.075280
+  40 |  9954 | 20656 | 0.080500
+  41 | 10883 | 20657 | 0.009212
+  42 | 10884 | 20658 | 0.048701
+  43 |  8289 | 20659 | 0.087952
+  44 |  5957 | 20660 | 0.002769
+  45 |  6482 | 20661 | 0.120390
+  46 |  5774 | 20662 | 0.023243
+  47 |  4620 | 20663 | 0.169650
+  48 |  5809 |  6764 | 0.050569
+  49 |  5808 |  6763 | 0.097186
+  50 |  5807 |  6762 | 0.146807
+  51 |  5806 |  6761 | 0.145097
+  52 |  5805 |  6760 | 0.008679
+  53 |  5804 |  6759 | 0.065176
+  54 |  5803 |  6758 | 0.013489
+  55 |  5802 | 17979 | 0.173776
+  56 | 10025 | 17978 | 0.175712
+  57 |   613 | 17977 | 0.178581
+  58 |  7125 | 17976 | 0.155428
+  59 |  5367 | 17975 | 0.200230
+  60 |  6585 |    -1 | 0.000000
+(60 rows)
+
+ROLLBACK;
+ROLLBACK
diff --git a/src/bdDijkstra/test/doc-pgr_bdDijkstra.result b/src/bdDijkstra/test/doc-pgr_bdDijkstra.result
index cfe9136..203ae8b 100644
--- a/src/bdDijkstra/test/doc-pgr_bdDijkstra.result
+++ b/src/bdDijkstra/test/doc-pgr_bdDijkstra.result
@@ -1,17 +1,119 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 -- q1
-1|1|2|4|1|0
-2|2|5|8|1|1
-3|3|6|9|1|2
-4|4|9|16|1|3
-5|5|4|3|1|4
-6|6|3|-1|0|5
+SELECT * FROM pgr_bdDijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, 3
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    4 |    1 |        0
+   2 |        2 |    5 |    8 |    1 |        1
+   3 |        3 |    6 |    9 |    1 |        2
+   4 |        4 |    9 |   16 |    1 |        3
+   5 |        5 |    4 |    3 |    1 |        4
+   6 |        6 |    3 |   -1 |    0 |        5
+(6 rows)
+
 -- q2
-1|1|2|2|1|0
-2|2|3|-1|0|1
+SELECT * FROM pgr_bdDijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, 3,
+    false
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    2 |    1 |        0
+   2 |        2 |    3 |   -1 |    0 |        1
+(2 rows)
+
 -- q3
-NOTICE:  Deprecated Signature of pgr_bdDijkstra
-0|2|4|1
-1|5|8|1
-2|6|5|1
-3|3|-1|0
+SELECT * FROM pgr_bdDijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, ARRAY[3, 11]);
+ seq | path_seq | end_vid | node | edge | cost | agg_cost 
+-----+----------+---------+------+------+------+----------
+   1 |        1 |       3 |    2 |    4 |    1 |        0
+   2 |        2 |       3 |    5 |    8 |    1 |        1
+   3 |        3 |       3 |    6 |    9 |    1 |        2
+   4 |        4 |       3 |    9 |   16 |    1 |        3
+   5 |        5 |       3 |    4 |    3 |    1 |        4
+   6 |        6 |       3 |    3 |   -1 |    0 |        5
+   7 |        1 |      11 |    2 |    4 |    1 |        0
+   8 |        2 |      11 |    5 |    8 |    1 |        1
+   9 |        3 |      11 |    6 |   11 |    1 |        2
+  10 |        4 |      11 |   11 |   -1 |    0 |        3
+(10 rows)
+
 -- q4
+SELECT * FROM pgr_bdDijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2, 7], 3);
+ seq | path_seq | start_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+------+------+------+----------
+   1 |        1 |         2 |    2 |    4 |    1 |        0
+   2 |        2 |         2 |    5 |    8 |    1 |        1
+   3 |        3 |         2 |    6 |    9 |    1 |        2
+   4 |        4 |         2 |    9 |   16 |    1 |        3
+   5 |        5 |         2 |    4 |    3 |    1 |        4
+   6 |        6 |         2 |    3 |   -1 |    0 |        5
+   7 |        1 |         7 |    7 |    6 |    1 |        0
+   8 |        2 |         7 |    8 |    7 |    1 |        1
+   9 |        3 |         7 |    5 |    8 |    1 |        2
+  10 |        4 |         7 |    6 |    9 |    1 |        3
+  11 |        5 |         7 |    9 |   16 |    1 |        4
+  12 |        6 |         7 |    4 |    3 |    1 |        5
+  13 |        7 |         7 |    3 |   -1 |    0 |        6
+(13 rows)
+
+-- q5
+SELECT * FROM pgr_bdDijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2, 7], ARRAY[3, 11]);
+ seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+---------+------+------+------+----------
+   1 |        1 |         2 |       3 |    2 |    4 |    1 |        0
+   2 |        2 |         2 |       3 |    5 |    8 |    1 |        1
+   3 |        3 |         2 |       3 |    6 |    9 |    1 |        2
+   4 |        4 |         2 |       3 |    9 |   16 |    1 |        3
+   5 |        5 |         2 |       3 |    4 |    3 |    1 |        4
+   6 |        6 |         2 |       3 |    3 |   -1 |    0 |        5
+   7 |        1 |         2 |      11 |    2 |    4 |    1 |        0
+   8 |        2 |         2 |      11 |    5 |    8 |    1 |        1
+   9 |        3 |         2 |      11 |    6 |   11 |    1 |        2
+  10 |        4 |         2 |      11 |   11 |   -1 |    0 |        3
+  11 |        1 |         7 |       3 |    7 |    6 |    1 |        0
+  12 |        2 |         7 |       3 |    8 |    7 |    1 |        1
+  13 |        3 |         7 |       3 |    5 |    8 |    1 |        2
+  14 |        4 |         7 |       3 |    6 |    9 |    1 |        3
+  15 |        5 |         7 |       3 |    9 |   16 |    1 |        4
+  16 |        6 |         7 |       3 |    4 |    3 |    1 |        5
+  17 |        7 |         7 |       3 |    3 |   -1 |    0 |        6
+  18 |        1 |         7 |      11 |    7 |    6 |    1 |        0
+  19 |        2 |         7 |      11 |    8 |    7 |    1 |        1
+  20 |        3 |         7 |      11 |    5 |   10 |    1 |        2
+  21 |        4 |         7 |      11 |   10 |   12 |    1 |        3
+  22 |        5 |         7 |      11 |   11 |   -1 |    0 |        4
+(22 rows)
+
+-- q6
+SELECT * FROM pgr_bdDijkstra(
+    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT FROM edge_table',
+    2, 3,
+    false, 
+    false  
+);
+NOTICE:  Deprecated Signature of pgr_bdDijkstra
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |   2 |   4 |    1
+   1 |   5 |   8 |    1
+   2 |   6 |   5 |    1
+   3 |   3 |  -1 |    0
+(4 rows)
+
+-- q7
+ROLLBACK;
+ROLLBACK
diff --git a/src/bdDijkstra/test/doc-pgr_bdDijkstra.test.sql b/src/bdDijkstra/test/doc-pgr_bdDijkstra.test.sql
index ef2e1af..11a987a 100644
--- a/src/bdDijkstra/test/doc-pgr_bdDijkstra.test.sql
+++ b/src/bdDijkstra/test/doc-pgr_bdDijkstra.test.sql
@@ -12,12 +12,22 @@ SELECT * FROM pgr_bdDijkstra(
     false
 );
 \echo -- q3
-SET client_min_messages TO notice;
+SELECT * FROM pgr_bdDijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, ARRAY[3, 11]);
+\echo -- q4
+SELECT * FROM pgr_bdDijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2, 7], 3);
+\echo -- q5
+SELECT * FROM pgr_bdDijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2, 7], ARRAY[3, 11]);
+\echo -- q6
 SELECT * FROM pgr_bdDijkstra(
     'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT FROM edge_table',
     2, 3,
     false, -- undirected
     false  -- no reverse_cost
 );
-\echo -- q4
-
+\echo -- q7
diff --git a/src/bdDijkstra/test/doc-pgr_bdDijkstraCost.result b/src/bdDijkstra/test/doc-pgr_bdDijkstraCost.result
new file mode 100644
index 0000000..fa75c07
--- /dev/null
+++ b/src/bdDijkstra/test/doc-pgr_bdDijkstraCost.result
@@ -0,0 +1,60 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_bdDijkstraCost(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, 3
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       3 |        5
+(1 row)
+
+-- q2
+SELECT * FROM pgr_bdDijkstraCost(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, 3,
+    false
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       3 |        1
+(1 row)
+
+-- q3
+SELECT * FROM pgr_bdDijkstraCost(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, ARRAY[3, 11]);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       3 |        5
+         2 |      11 |        3
+(2 rows)
+
+-- q4
+SELECT * FROM pgr_bdDijkstraCost(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2, 7], 3);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       3 |        5
+         7 |       3 |        6
+(2 rows)
+
+-- q5
+SELECT * FROM pgr_bdDijkstraCost(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2, 7], ARRAY[3, 11]);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       3 |        5
+         2 |      11 |        3
+         7 |       3 |        6
+         7 |      11 |        4
+(4 rows)
+
+-- q6
+ROLLBACK;
+ROLLBACK
diff --git a/src/bdDijkstra/test/doc-pgr_bdDijkstraCost.test.sql b/src/bdDijkstra/test/doc-pgr_bdDijkstraCost.test.sql
new file mode 100644
index 0000000..d9f6919
--- /dev/null
+++ b/src/bdDijkstra/test/doc-pgr_bdDijkstraCost.test.sql
@@ -0,0 +1,26 @@
+
+\echo -- q1
+SELECT * FROM pgr_bdDijkstraCost(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, 3
+);
+
+\echo -- q2
+SELECT * FROM pgr_bdDijkstraCost(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, 3,
+    false
+);
+\echo -- q3
+SELECT * FROM pgr_bdDijkstraCost(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, ARRAY[3, 11]);
+\echo -- q4
+SELECT * FROM pgr_bdDijkstraCost(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2, 7], 3);
+\echo -- q5
+SELECT * FROM pgr_bdDijkstraCost(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2, 7], ARRAY[3, 11]);
+\echo -- q6
diff --git a/src/bdDijkstra/test/pgtap/bdDijkstra-innerQuery.sql b/src/bdDijkstra/test/pgtap/bdDijkstra-innerQuery.sql
deleted file mode 100644
index d4af4b4..0000000
--- a/src/bdDijkstra/test/pgtap/bdDijkstra-innerQuery.sql
+++ /dev/null
@@ -1,116 +0,0 @@
-\i setup.sql
-
-SELECT plan(47);
-SET client_min_messages TO ERROR;
-
-
-SELECT has_function('pgr_bddijkstra',
-    ARRAY['text', 'bigint', 'bigint', 'boolean']);
-
-SELECT function_returns('pgr_bddijkstra',
-    ARRAY['text', 'bigint', 'bigint', 'boolean'],
-    'setof record');
-
-CREATE OR REPLACE FUNCTION test_anyInteger(fn TEXT, params TEXT[], parameter TEXT) 
-RETURNS SETOF TEXT AS
-$BODY$
-DECLARE
-start_sql TEXT;
-end_sql TEXT;
-query TEXT;
-p TEXT;
-BEGIN
-    start_sql = 'select * from ' || fn || '($$ SELECT ';
-    FOREACH  p IN ARRAY params LOOP
-        IF p = parameter THEN CONTINUE;
-        END IF;
-        start_sql = start_sql || p || ', ';
-    END LOOP;
-    end_sql = ' FROM edge_table $$, 2, 3, true)';
-    
-    query := start_sql || parameter || '::SMALLINT ' || end_sql;
-    RETURN query SELECT lives_ok(query);
-    
-    query := start_sql || parameter || '::INTEGER ' || end_sql;
-    RETURN query SELECT lives_ok(query);
-    
-    query := start_sql || parameter || '::BIGINT ' || end_sql;
-    RETURN query SELECT lives_ok(query);
-
-    query := start_sql || parameter || '::REAL ' || end_sql;
-    RETURN query SELECT throws_ok(query);
-
-    query := start_sql || parameter || '::FLOAT8 ' || end_sql;
-    RETURN query SELECT throws_ok(query);
-END;
-$BODY$ LANGUAGE plpgsql;
-
-CREATE OR REPLACE FUNCTION test_anyNumerical(fn TEXT, params TEXT[], parameter TEXT) 
-RETURNS SETOF TEXT AS
-$BODY$
-DECLARE
-start_sql TEXT;
-end_sql TEXT;
-query TEXT;
-p TEXT;
-BEGIN
-    start_sql = 'select * from ' || fn || '($$ SELECT ';
-    FOREACH  p IN ARRAY params LOOP
-        IF p = parameter THEN CONTINUE;
-        END IF;
-        start_sql = start_sql || p || ', ';
-    END LOOP;
-    end_sql = ' FROM edge_table $$, 2, 3, true)';
-    
-    query := start_sql || parameter || '::SMALLINT ' || end_sql;
-    RETURN query SELECT lives_ok(query);
-    
-    query := start_sql || parameter || '::INTEGER ' || end_sql;
-    RETURN query SELECT lives_ok(query);
-    
-    query := start_sql || parameter || '::BIGINT ' || end_sql;
-    RETURN query SELECT lives_ok(query);
-
-    query := start_sql || parameter || '::REAL ' || end_sql;
-    RETURN query SELECT lives_ok(query);
-
-    query := start_sql || parameter || '::FLOAT8 ' || end_sql;
-    RETURN query SELECT lives_ok(query);
-END;
-$BODY$ LANGUAGE plpgsql;
-
---with reverse cost
-SELECT test_anyInteger('pgr_bddijkstra',
-    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost'],
-    'id');
-SELECT test_anyInteger('pgr_bddijkstra',
-    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost'],
-    'source');
-SELECT test_anyInteger('pgr_bddijkstra',
-    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost'],
-    'target');
-SELECT test_anyNumerical('pgr_bddijkstra',
-    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost'],
-    'cost');
-SELECT test_anyNumerical('pgr_bddijkstra',
-    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost'],
-    'reverse_cost');
-
-
---without reverse cost
-SELECT test_anyInteger('pgr_bddijkstra',
-    ARRAY['id', 'source', 'target', 'cost'],
-    'id');
-SELECT test_anyInteger('pgr_bddijkstra',
-    ARRAY['id', 'source', 'target', 'cost'],
-    'source');
-SELECT test_anyInteger('pgr_bddijkstra',
-    ARRAY['id', 'source', 'target', 'cost'],
-    'target');
-SELECT test_anyNumerical('pgr_bddijkstra',
-    ARRAY['id', 'source', 'target', 'cost'],
-    'cost');
-
-
-SELECT finish();
-ROLLBACK;
diff --git a/src/bdDijkstra/test/test.conf b/src/bdDijkstra/test/test.conf
index eece83e..f9ade81 100644
--- a/src/bdDijkstra/test/test.conf
+++ b/src/bdDijkstra/test/test.conf
@@ -7,9 +7,11 @@
         'tests' => [qw(
             bdDijkstra-large
             doc-pgr_bdDijkstra
+            doc-pgr_bdDijkstraCost
             )],
         'documentation' => [qw(
             doc-pgr_bdDijkstra
+            doc-pgr_bdDijkstraCost
             )]
     },
 );
diff --git a/src/bd_astar/doc/CMakeLists.txt b/src/bd_astar/doc/CMakeLists.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/src/bd_astar/doc/doc-bdAstar.queries b/src/bd_astar/doc/doc-bdAstar.queries
deleted file mode 100644
index 7c3f360..0000000
--- a/src/bd_astar/doc/doc-bdAstar.queries
+++ /dev/null
@@ -1,35 +0,0 @@
-BEGIN;
-BEGIN
-SET client_min_messages TO NOTICE;
-SET
---q1
-SELECT * FROM pgr_bdAStar(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, x1, y1, x2, y2
-     FROM edge_table',
-    4, 10, false, false);
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |   4 |   3 |    0
-   1 |   3 |   5 |    1
-   2 |   6 |  11 |    1
-   3 |  11 |  12 |    0
-   4 |  10 |  -1 |    0
-(5 rows)
-
---q2
-SELECT * FROM pgr_bdAStar(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, x1, y1, x2, y2, reverse_cost
-     FROM edge_table ',
-    4, 10, true, true);
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |   4 |   3 |    1
-   1 |   3 |   5 |    1
-   2 |   6 |   8 |    1
-   3 |   5 |  10 |    1
-   4 |  10 |  -1 |    0
-(5 rows)
-
---q3
-ROLLBACK;
-ROLLBACK
diff --git a/src/bd_astar/doc/pgr_bdAstar.rst b/src/bd_astar/doc/pgr_bdAstar.rst
deleted file mode 100644
index c4bdd05..0000000
--- a/src/bd_astar/doc/pgr_bdAstar.rst
+++ /dev/null
@@ -1,102 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _bd_astar:
-
-pgr_bdAstar - Bi-directional A* Shortest Path
-===============================================================================
-
-.. index::
-	single: bdAstar(Complete Signaature)
-
-Name
--------------------------------------------------------------------------------
-
-``pgr_bdAstar`` - Returns the shortest path using Bidirectional A* algorithm.
-
-
-Synopsis
--------------------------------------------------------------------------------
-
-This is a bi-directional A* search algorithm. It searches from the source toward the distination and at the same time from the destination to the source and terminates whe these to searches meet in the middle. Returns a set of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows, that make up a path.
-
-.. code-block:: sql
-
-  pgr_costResult[] pgr_bdAstar(sql text, source integer, target integer,
-                               directed boolean, has_rcost boolean);
-
-
-Description
--------------------------------------------------------------------------------
-
-:sql: a SQL query, which should return a set of rows with the following columns:
-
-  .. code-block:: sql
-
-    SELECT id, source, target, cost, x1, y1, x2, y2 [,reverse_cost] FROM edge_table
-
-
-  :id: ``int4`` identifier of the edge
-  :source: ``int4`` identifier of the source vertex
-  :target: ``int4`` identifier of the target vertex
-  :cost: ``float8`` value, of the edge traversal cost. A negative cost will prevent the edge from being inserted in the graph.
-  :x1: ``x`` coordinate of the start point of the edge
-  :y1: ``y`` coordinate of the start point of the edge
-  :x2: ``x`` coordinate of the end point of the edge
-  :y2: ``y`` coordinate of the end point of the edge
-  :reverse_cost: (optional) the cost for the reverse traversal of the edge. This is only used when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the above remark about negative costs).
-
-:source: ``int4`` id of the start point
-:target: ``int4`` id of the end point
-:directed: ``true`` if the graph is directed
-:has_rcost: if ``true``, the ``reverse_cost`` column of the SQL generated set of rows will be used for the cost of the traversal of the edge in the opposite direction.
-
-Returns set of :ref:`type_cost_result`:
-
-:seq:   row sequence
-:id1:   node ID
-:id2:   edge ID (``-1`` for the last row)
-:cost:  cost to traverse from ``id1`` using ``id2``
-
-.. warning::
-
-  You must reconnect to the database after ``CREATE EXTENSION pgrouting``. Otherwise the function will return ``Error computing path: std::bad_alloc``.
-
-
-.. rubric:: History
-
-* New in version 2.0.0
-
-
-Examples
--------------------------------------------------------------------------------
-
-* Without ``reverse_cost``
-
-.. literalinclude:: doc-bdAstar.queries
-   :start-after: --q1
-   :end-before: --q2
-
-* With ``reverse_cost``
-
-.. literalinclude:: doc-bdAstar.queries
-   :start-after: --q2
-   :end-before: --q3
-
-
-The queries use the :ref:`sampledata` network.
-
-
-See Also
--------------------------------------------------------------------------------
-
-* :ref:`type_cost_result`
-* :ref:`pgr_bddijkstra`
-* http://en.wikipedia.org/wiki/Bidirectional_search
-* http://en.wikipedia.org/wiki/A*_search_algorithm
diff --git a/src/bd_astar/sql/CMakeLists.txt b/src/bd_astar/sql/CMakeLists.txt
deleted file mode 100644
index 979df91..0000000
--- a/src/bd_astar/sql/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-# Append in local scope
-list(APPEND PACKAGE_SQL_FILES
-    ${CMAKE_CURRENT_SOURCE_DIR}/routing_bd_astar.sql)
-
-# set in parent scope
-set(PACKAGE_SQL_FILES "${PACKAGE_SQL_FILES}" PARENT_SCOPE)
-
diff --git a/src/bd_astar/sql/routing_bd_astar.sql b/src/bd_astar/sql/routing_bd_astar.sql
deleted file mode 100644
index 362e060..0000000
--- a/src/bd_astar/sql/routing_bd_astar.sql
+++ /dev/null
@@ -1,41 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Bi Directional A* Shortest path algorithm for PostgreSQL
-
-Copyright (c) 2006 Anton A. Patrushev, Orkney, Inc.
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
------------------------------------------------------------------------
--- Core function for bi_directional_astar_shortest_path computation
--- See README for description
------------------------------------------------------------------------
---
---
-
-CREATE OR REPLACE FUNCTION pgr_bdAstar(
-		sql text, 
-		source_vid integer, 
-        target_vid integer, 
-        directed boolean, 
-        has_reverse_cost boolean)
-        RETURNS SETOF pgr_costResult
-        AS '$libdir/${PGROUTING_LIBRARY_NAME}', 'bidir_astar_shortest_path'
-        LANGUAGE 'c' IMMUTABLE STRICT;
-
diff --git a/src/bd_astar/src/BiDirAStar.cpp b/src/bd_astar/src/BiDirAStar.cpp
deleted file mode 100644
index af6f634..0000000
--- a/src/bd_astar/src/BiDirAStar.cpp
+++ /dev/null
@@ -1,473 +0,0 @@
-/*PGR-MIT*****************************************************************
-
-* $Id$
-*
-* Project: pgRouting bdsp and bdastar algorithms
-* Purpose:
-* Author:   Razequl Islam <ziboncsedu at gmail.com>
-*
-
-------
-MIT/X license
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-********************************************************************PGR-MIT*/
-
-#include "./BiDirAStar.h"
-
-#include <math.h>
-
-#include "./../../common/src/pgr_alloc.hpp"
-
-BiDirAStar::BiDirAStar(void) {
-}
-
-BiDirAStar::~BiDirAStar(void) {
-}
-
-void BiDirAStar::init() {
-    // max_edge_id = 0;
-    // max_node_id = 0;
-}
-
-/*
-   Initialization and allocation of memories.
-   */
-
-void BiDirAStar::initall(int maxNode) {
-    int i;
-
-    // DBG("BiDirAStar::initall(%d) called\n", maxNode);
-
-    m_pFParent = new PARENT_PATH[maxNode + 1];
-    m_pRParent = new PARENT_PATH[maxNode + 1];
-
-    m_pFCost = new double[maxNode + 1];
-    m_pRCost = new double[maxNode + 1];
-
-    for (i = 0; i <= maxNode; i++) {
-        m_pFParent[i].par_Node = -2;
-        m_pRParent[i].par_Node = -2;
-        m_pFCost[i] = INF;
-        m_pRCost[i] = INF;
-    }
-    m_MinCost = INF;
-    m_MidNode = -1;
-
-    // reserve space for nodes and edges
-    m_vecNodeVector.reserve(maxNode + 1);
-
-    // DBG("Leaving BiDirAStar::initall\n");
-}
-
-/*
-   Delete the allocated memories to avoid memory leak.
-   */
-
-void BiDirAStar::deleteall() {
-    // DBG("Calling BiDirAStar::deleteall\n");
-    delete m_pFParent;
-    delete m_pRParent;
-    delete m_pFCost;
-    delete m_pRCost;
-    // DBG("Leaving BiDirAStar::deleteall\n");
-}
-
-/*
-   Get the current cost from source to the current node if direction is 1 else the cost to reach target from the current node.
-   */
-
-double BiDirAStar::getcost(int node_id, int dir) {
-    if (dir == 1) {
-        return(m_pFCost[node_id]);
-    } else {
-        return(m_pRCost[node_id]);
-    }
-}
-
-
-double BiDirAStar::dist(double x1, double y1, double x2, double y2) {
-    double ret = fabs((x1 - x2) + fabs(y1 - y2));
-    // double ret = sqrt(x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
-    return(ret * 10);
-}
-
-/*
-   Get the heuristic cost of the node depending on dir (1 for forward search and -1 for reverse search).
-   */
-double BiDirAStar::gethcost(int node_id, int dir) {
-    if (dir == -1) {
-        return(dist(m_vecNodeVector[node_id].xpos, m_vecNodeVector[node_id].ypos, m_vecNodeVector[m_lStartNodeId].xpos, m_vecNodeVector[m_lStartNodeId].ypos));
-    } else {
-        return(dist(m_vecNodeVector[node_id].xpos, m_vecNodeVector[node_id].ypos, m_vecNodeVector[m_lEndNodeId].xpos, m_vecNodeVector[m_lEndNodeId].ypos));
-    }
-}
-
-/*
-   Set the forward or reverse cost list depending on dir (1 for forward search and -1 for reverse search).
-   */
-
-
-void BiDirAStar::setcost(int node_id, int dir, double c) {
-    if (dir == 1) {
-        m_pFCost[node_id] = c;
-    } else {
-        m_pRCost[node_id] = c;
-    }
-}
-
-void BiDirAStar::setparent(int node_id, int dir, int parnode, int paredge) {
-    if (dir == 1) {
-        m_pFParent[node_id].par_Node = parnode;
-        m_pFParent[node_id].par_Edge = paredge;
-    } else {
-        m_pRParent[node_id].par_Node = parnode;
-        m_pRParent[node_id].par_Edge = paredge;
-    }
-}
-
-/*
-   Reconstruct path for forward search. It is like normal dijkstra. The parent array contains the parent of the current node and there is a -1 in the source.
-   So one need to recurse up to the source and then add the current node and edge to the list.
-   */
-
-void BiDirAStar::fconstruct_path(int node_id) {
-    if (m_pFParent[node_id].par_Node == -1)
-        return;
-    fconstruct_path(m_pFParent[node_id].par_Node);
-    path_element_t pt;
-    pt.vertex_id = m_pFParent[node_id].par_Node;
-    pt.edge_id = m_pFParent[node_id].par_Edge;
-    pt.cost = m_pFCost[node_id] - m_pFCost[m_pFParent[node_id].par_Node];
-    m_vecPath.push_back(pt);
-}
-
-/*
-   Reconstruct path for the reverse search. In this case the subsequent node is stored in the parent and the target contains a -1. So one need to add the node
-   and edge to the list and then recurse through the parent up to hitting a -1.
-   */
-
-void BiDirAStar::rconstruct_path(int node_id) {
-    path_element_t pt;
-    if (m_pRParent[node_id].par_Node == -1) {
-        pt.vertex_id = node_id;
-        pt.edge_id = -1;
-        pt.cost = 0.0;
-        return;
-    }
-    pt.vertex_id = node_id;
-    pt.cost = m_pRCost[node_id] - m_pRCost[m_pRParent[node_id].par_Node];
-    pt.edge_id = m_pRParent[node_id].par_Edge;
-    m_vecPath.push_back(pt);
-    rconstruct_path(m_pRParent[node_id].par_Node);
-}
-
-/*
-   This is the main exploration module. The parameter dir indicates whether the exploration will be in forward or reverser direction. The reference to the corresponding
-   que is also passed as parameter que. The current node and the current costs are also available as parameter.
-   */
-
-// void BiDirAStar::explore(int cur_node, double cur_cost, int dir, std::priority_queue<PDI, std::vector<PDI>, std::greater<PDI> > &que)
-void BiDirAStar::explore(int cur_node, double cur_cost, int dir, MinHeap &que) {
-    size_t i;
-    // Number of connected edges
-    auto con_edge = m_vecNodeVector[cur_node].Connected_Edges_Index.size();
-    double edge_cost;
-    for (i = 0; i < con_edge; i++) {
-        auto edge_index = m_vecNodeVector[cur_node].Connected_Edges_Index[i];
-        // Get the edge from the edge list.
-        GraphEdgeInfo edge = m_vecEdgeVector[edge_index];
-        // Get the connected node
-        int new_node = m_vecNodeVector[cur_node].Connected_Nodes[i];
-#if 0  //  mult is set but not used
-        int mult;
-
-        if (edge.Direction == 0)
-            mult = 1;
-        else
-            mult = dir;
-#endif
-        if (cur_node == edge.StartNode) {
-            // Current node is the startnode of the edge. For forward search it should use forward cost, otherwise it should use the reverse cost,
-            // i.e. if the reverse direction is valid then this node may be visited from the end node.
-            if (dir > 0)
-                edge_cost = edge.Cost;
-            else
-                edge_cost = edge.ReverseCost;
-            // Check if the direction is valid for exploration
-            if (edge.Direction == 0 ||  edge_cost >= 0.0) {
-                // edge_cost = edge.Cost * mult;
-                // Check if the current edge gives better result
-                if (cur_cost + edge_cost < getcost(new_node, dir)) {
-                    // explore the node, and push it in the queue. the value in the queue will also contain the heuristic cost
-                    setcost(new_node, dir, cur_cost + edge_cost);
-                    setparent(new_node, dir, cur_node, edge.EdgeID);
-                    que.push(std::make_pair(cur_cost + edge_cost + gethcost(new_node, dir), new_node));
-
-                    // Update the minimum cost found so far.
-                    if (getcost(new_node, dir) + getcost(new_node, dir * -1) < m_MinCost) {
-                        m_MinCost = getcost(new_node, dir) + getcost(new_node, dir * -1);
-                        m_MidNode = new_node;
-                    }
-                }
-            }
-        } else {
-            // Current node is the endnode of the edge. For forward search it should use reverse cost, otherwise it should use the forward cost,
-            // i.e. if the forward direction is valid then this node may be visited from the start node.
-            if (dir > 0)
-                edge_cost = edge.ReverseCost;
-            else
-                edge_cost = edge.Cost;
-            // Check if the direction is valid for exploration
-            if (edge.Direction == 0 ||  edge_cost >= 0.0) {
-                // edge_cost = edge.ReverseCost * mult;
-
-                // Check if the current edge gives better result
-                if (cur_cost + edge_cost < getcost(new_node, dir)) {
-                    // explore the node, and push it in the queue. the value in the queue will also contain the heuristic cost
-                    setcost(new_node, dir, cur_cost + edge_cost);
-                    setparent(new_node, dir, cur_node, edge.EdgeID);
-                    que.push(std::make_pair(cur_cost + edge_cost + gethcost(new_node, dir), new_node));
-                    // Update the minimum cost found so far.
-                    if (getcost(new_node, dir) + getcost(new_node, dir * -1) < m_MinCost) {
-                        m_MinCost = getcost(new_node, dir) + getcost(new_node, dir * -1);
-                        m_MidNode = new_node;
-                    }
-                }
-            }
-        }
-    }
-}
-
-/*
-   This is the entry function that the wrappers should call. Most of the parameters are trivial. maxNode refers to Maximum
-   node id. As we run node based exploration cost, parent etc will be based on maximam node id.
-   */
-
-int BiDirAStar:: bidir_astar(edge_astar_t *edges, size_t edge_count, int maxNode, int start_vertex, int end_vertex,
-        path_element_t **path, size_t *path_count, char **err_msg) {
-    max_node_id = maxNode;
-    max_edge_id = -1;
-
-    // Allocate memory for local storage like cost and parent holder
-    initall(maxNode);
-
-    // construct the graph from the edge list, i.e. populate node and edge data structures
-    construct_graph(edges, edge_count, maxNode);
-
-    m_lStartNodeId = start_vertex;
-    m_lEndNodeId = end_vertex;
-
-    // int nodeCount = m_vecNodeVector.size();
-
-    MinHeap fque(maxNode + 2);
-    MinHeap rque(maxNode + 2);
-    // std::priority_queue<PDI, std::vector<PDI>, std::greater<PDI> > fque;
-    // std::priority_queue<PDI, std::vector<PDI>, std::greater<PDI> > rque;
-
-    m_vecPath.clear();
-
-    // Initialize the forward search
-    m_pFParent[start_vertex].par_Node = -1;
-    m_pFParent[start_vertex].par_Edge = -1;
-    m_pFCost[start_vertex] = 0.0;
-    fque.push(std::make_pair(0.0, start_vertex));
-
-    // Initialize the reverse search
-    m_pRParent[end_vertex].par_Node = -1;
-    m_pRParent[end_vertex].par_Edge = -1;
-    m_pRCost[end_vertex] = 0.0;
-    rque.push(std::make_pair(0.0, end_vertex));
-
-    // int new_node;
-    int cur_node;
-    // int dir;
-    /*
-       The main loop. The algorithm is as follows:
-       1. IF the sum of the current minimum of both heap is greater than so far found path, we cannot get any better, so break the loop.
-       2. IF the reverse heap minimum is lower than the forward heap minimum, explore from reverse direction.
-       3. ELSE explore from the forward directtion.
-       */
-
-    while (!fque.empty() &&  !rque.empty()) {
-        PDI fTop = fque.top();
-        PDI rTop = rque.top();
-        if (m_pFCost[fTop.second] + m_pRCost[rTop.second] > m_MinCost)  // We are done, there is no path with lower cost
-            break;
-
-        if (rTop.first < fTop.first) {
-            //  Explore from reverse queue
-            if (rTop.first > m_MinCost)
-                break;
-            cur_node = rTop.second;
-            int dir = -1;
-            rque.pop();
-            explore(cur_node, m_pRCost[rTop.second], dir, rque);
-        } else {
-            // Explore from forward queue
-            if (fTop.first > m_MinCost)
-                break;
-            cur_node = fTop.second;
-            int dir = 1;
-            fque.pop();
-            explore(cur_node, m_pFCost[fTop.second], dir, fque);
-        }
-    }
-
-    /*
-       Path reconstruction part. m_MidNode is the joining point where two searches meet to make a shortest path. It is updated in explore.
-       If it contains -1, then no path is found. Other wise we have a shortest path and that is reconstructed in the m_vecPath.
-       */
-
-    if (m_MidNode == -1) {
-        *err_msg = (char *)"Path Not Found";
-        deleteall();
-        return -1;
-    } else {
-        // reconstruct path from forward search
-        fconstruct_path(m_MidNode);
-        // reconstruct path from backward search
-        rconstruct_path(m_MidNode);
-
-        // insert the last row in the path trace (having edge_id = -1 and cost = 0.0)
-        path_element_t pelement;
-        pelement.vertex_id = end_vertex;
-        pelement.edge_id = -1;
-        pelement.cost = 0.0;
-        m_vecPath.push_back(pelement);
-
-        // Transfer data path to path_element_t format and allocate memory and populate the pointer
-        *path = pgr_alloc(m_vecPath.size(), *path);
-        *path_count = m_vecPath.size();
-
-        for (size_t i = 0; i < *path_count; i++) {
-            (*path)[i].vertex_id = m_vecPath[i].vertex_id;
-            (*path)[i].edge_id = m_vecPath[i].edge_id;
-            (*path)[i].cost = m_vecPath[i].cost;
-        }
-    }
-    deleteall();
-    return 0;
-}
-
-/*
-   Populate the member variables of the class using the edge list. Basically there is a node list and an edge list. Each node contains the list of adjacent nodes and
-   corresponding edge indices from edge list that connect this node with the adjacent nodes.
-   */
-
-bool BiDirAStar::construct_graph(edge_astar_t* edges, size_t edge_count, int maxNode) {
-    int i;
-
-    // DBG("Calling BiDirAStar::construct_graph(edges, ecnt:%d, maxNode:%d)\n", edge_count, maxNode);
-
-    // Create a dummy node
-    GraphNodeInfo nodeInfo;
-    nodeInfo.Connected_Edges_Index.clear();
-    nodeInfo.Connected_Nodes.clear();
-
-    // Insert the dummy node into the node list. This acts as place holder. Also change the nodeId so that nodeId and node index in the vector are same.
-    // There may be some nodes here that does not appear in the edge list. The size of the list is up to maxNode which is equal to maximum node id.
-    // DBG("    Adding nodes to m_vecNodeVector\n");
-    for (i = 0; i <= maxNode; i++) {
-        nodeInfo.NodeID = i;
-        m_vecNodeVector.push_back(nodeInfo);
-    }
-
-    // Process each edge from the edge list and update the member data structures accordingly.
-    // DBG("    Reserving edges for graph(%d)\n", edge_count);
-    m_vecEdgeVector.reserve(edge_count);
-    // DBG("    Adding edges to graph\n");
-    for (size_t i = 0; i < edge_count; i++) {
-        addEdge(edges[i]);
-    }
-
-    // DBG("Leaving BiDirAStar::construct_graph\n");
-    return true;
-}
-
-/*
-   Process the edge and populate the member nodelist and edgelist. The nodelist already contains up to maxNode dummy entries with nodeId same as index. Now the
-   connectivity information needs to be updated.
-   */
-
-bool BiDirAStar::addEdge(edge_astar_t edgeIn) {
-    // long lTest;
-    // Check if the edge is already processed.
-    Long2LongMap::iterator itMap = m_mapEdgeId2Index.find(edgeIn.id);
-    if (itMap != m_mapEdgeId2Index.end())
-        return false;
-
-    // Create a GraphEdgeInfo using the information of the current edge
-    GraphEdgeInfo newEdge;
-    newEdge.EdgeID = edgeIn.id;
-    newEdge.EdgeIndex = m_vecEdgeVector.size();
-    newEdge.StartNode = edgeIn.source;
-    newEdge.EndNode = edgeIn.target;
-    newEdge.Cost = edgeIn.cost;
-    newEdge.ReverseCost = edgeIn.reverse_cost;
-
-    // Set the direction. If both cost and reverse cost has positive value the edge is bidirectional and direction field is 0. If cost is positive and reverse cost
-    // negative then the edge is unidirectional with direction = 1 (goes from source to target) otherwise it is unidirectional with direction = -1 (goes from target
-    // to source). Another way of creating unidirectional edge is assigning big values in cost or reverse_cost. In that case the direction is still zero and this case
-    // is handled in the algorithm automatically.
-    if (newEdge.Cost >= 0.0 &&  newEdge.ReverseCost >= 0) {
-        newEdge.Direction = 0;
-    } else if (newEdge.Cost >= 0.0) {
-        newEdge.Direction = 1;
-    } else {
-        newEdge.Direction = -1;
-    }
-
-    if (edgeIn.id > max_edge_id) {
-        max_edge_id = edgeIn.id;
-    }
-
-    // Update max_edge_id
-    if (newEdge.StartNode > max_node_id) {
-        return false;  // max_node_id = newEdge.StartNode;
-    }
-    if (newEdge.EndNode > max_node_id) {
-        return false;  // max_node_id = newEdge.EdgeIndex;
-    }
-
-    m_vecNodeVector[newEdge.StartNode].xpos = edgeIn.s_x;
-    m_vecNodeVector[newEdge.StartNode].ypos = edgeIn.s_y;
-
-    m_vecNodeVector[newEdge.EndNode].xpos = edgeIn.t_x;
-    m_vecNodeVector[newEdge.EndNode].ypos = edgeIn.t_y;
-
-    // update connectivity information for the start node.
-    m_vecNodeVector[newEdge.StartNode].Connected_Nodes.push_back(newEdge.EndNode);
-    m_vecNodeVector[newEdge.StartNode].Connected_Edges_Index.push_back(newEdge.EdgeIndex);
-
-    // update connectivity information for the end node.
-    m_vecNodeVector[newEdge.EndNode].Connected_Nodes.push_back(newEdge.StartNode);
-    m_vecNodeVector[newEdge.EndNode].Connected_Edges_Index.push_back(newEdge.EdgeIndex);
-
-
-
-    // Adding edge to the list
-    m_mapEdgeId2Index.insert(std::make_pair(newEdge.EdgeID, m_vecEdgeVector.size()));
-    m_vecEdgeVector.push_back(newEdge);
-
-    return true;
-}
diff --git a/src/bd_astar/src/BiDirAStar.h b/src/bd_astar/src/BiDirAStar.h
deleted file mode 100644
index 9e371ba..0000000
--- a/src/bd_astar/src/BiDirAStar.h
+++ /dev/null
@@ -1,127 +0,0 @@
-/*PGR-MIT*****************************************************************
-
-* $Id$
-*
-* Project:  pgRouting bdsp and bdastar algorithms
-* Purpose:
-* Author:   Razequl Islam <ziboncsedu at gmail.com>
-*
-
-------
-MIT/X license
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-********************************************************************PGR-MIT*/
-#ifndef SRC_BD_ASTAR_SRC_BIDIRASTAR_H_
-#define SRC_BD_ASTAR_SRC_BIDIRASTAR_H_
-#pragma once
-
-#include <vector>
-#include <map>
-#include <utility>
-
-#include "./MinHeap.h"
-#include "./bdastar_driver.h"
-
-#define INF 1e15
-
-
-
-typedef std::vector<size_t> LongVector;
-typedef std::vector<LongVector> VectorOfLongVector;
-typedef std::pair<double, int> PDI;
-
-typedef struct {
-    int par_Node;
-    int par_Edge;
-} PARENT_PATH;
-
-typedef struct {
-    int NodeID;
-    double xpos;
-    double ypos;
-    std::vector<int> Connected_Nodes;
-    std::vector<size_t> Connected_Edges_Index;
-} GraphNodeInfo;
-
-struct GraphEdgeInfo {
- public:
-     int EdgeID;
-     size_t EdgeIndex;
-     int Direction;
-     double Cost;
-     double ReverseCost;
-     int StartNode;
-     int EndNode;
-};
-
-typedef std::vector<GraphEdgeInfo> GraphEdgeVector;
-typedef std::map<size_t, LongVector> Long2LongVectorMap;
-typedef std::map<size_t, size_t> Long2LongMap;
-typedef std::vector<GraphNodeInfo> GraphNodeVector;
-
-
-class BiDirAStar {
- public:
-     BiDirAStar(void);
-     ~BiDirAStar(void);
-
-     int bidir_astar(edge_astar_t *edges, size_t edge_count, int maxNode, int start_vertex, int end_vertex,
-             path_element_t **path, size_t *path_count, char **err_msg);
-
- private:
-     bool construct_graph(edge_astar_t *edges, size_t edge_count, int maxNode);
-     void fconstruct_path(int node_id);
-     void rconstruct_path(int node_id);
-     bool addEdge(edge_astar_t edgeIn);
-     bool connectEdge(GraphEdgeInfo& firstEdge, GraphEdgeInfo& secondEdge, bool bIsStartNodeSame);
-     void init();
-     void initall(int maxNode);
-     void deleteall();
-     // void explore(int cur_node, double cur_cost, int dir, std::priority_queue<PDI, std::vector<PDI>, std::greater<PDI> > &que);
-     void explore(int cur_node, double cur_cost, int dir, MinHeap &que);
-     double getcost(int node_id, int dir);
-     void setcost(int node_id, int dir, double c);
-     void setparent(int node_id, int dir, int parnode, int paredge);
-     double gethcost(int node_id, int dir);
-     double dist(double x1, double y1, double x2, double y2);
-
- private:
-     GraphEdgeVector m_vecEdgeVector;
-     Long2LongMap m_mapEdgeId2Index;
-     Long2LongVectorMap m_mapNodeId2Edge;
-     GraphNodeVector m_vecNodeVector;
-     int max_node_id;
-     int max_edge_id;
-     int m_lStartNodeId;
-     int m_lEndNodeId;
-
-     double m_MinCost;
-     int m_MidNode;
-     std::vector <path_element_t> m_vecPath;
-     PARENT_PATH *m_pFParent;
-     PARENT_PATH *m_pRParent;
-     double *m_pFCost;
-     double *m_pRCost;
-};
-
-#endif  // SRC_BD_ASTAR_SRC_BIDIRASTAR_H_
diff --git a/src/bd_astar/src/CMakeLists.txt b/src/bd_astar/src/CMakeLists.txt
deleted file mode 100644
index 0c700ab..0000000
--- a/src/bd_astar/src/CMakeLists.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-add_library(bd_astar OBJECT 
-    bdastar.c 
-    MinHeap.cpp 
-    bdastar_driver.cpp
-    BiDirAStar.cpp)
diff --git a/src/bd_astar/src/MinHeap.cpp b/src/bd_astar/src/MinHeap.cpp
deleted file mode 100644
index 992606a..0000000
--- a/src/bd_astar/src/MinHeap.cpp
+++ /dev/null
@@ -1,151 +0,0 @@
-/*PGR-MIT*****************************************************************
-
-* $Id$
-*
-* Project: pgRouting bdsp and bdastar algorithms
-* Purpose:
-* Author:   Razequl Islam <ziboncsedu at gmail.com>
-*
-
-------
-MIT/X license
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-********************************************************************PGR-MIT*/
-
-#include "./MinHeap.h"
-#include <string.h>
-#include <utility>
-
-
-MinHeap::MinHeap(int maxNode) {
-    init(maxNode);
-}
-
-MinHeap::~MinHeap(void) {
-    reset();
-}
-
-bool MinHeap::reset(void) {
-    if (m_HeapTree != NULL) {
-        delete [] m_HeapTree;
-        m_HeapTree = NULL;
-    }
-    if (m_Index != NULL) {
-        delete [] m_Index;
-        m_Index = NULL;
-    }
-    return true;
-}
-
-bool MinHeap::init(int maxNode) {
-    m_HeapTree = new PDI[maxNode + 1];
-    m_Index = new int[maxNode + 1];
-    memset(m_Index, -1, sizeof(int) * (maxNode + 1));
-    m_MaxNodeID = maxNode;
-    m_CurrentSize = 0;
-    return true;
-}
-
-void MinHeap::push(PDI node) {
-    int nid = node.second;
-    double ncost = node.first;
-    if (m_Index[nid] != -1) {
-        int pos = m_Index[nid];
-        if (ncost < m_HeapTree[pos].first) {
-            m_HeapTree[pos].first = ncost;
-            shift_up(pos);
-        } else {
-            return;
-        }
-    } else {
-        m_CurrentSize++;
-        m_HeapTree[m_CurrentSize] = node;
-        m_Index[nid] = m_CurrentSize;
-        shift_up(m_CurrentSize);
-    }
-}
-
-PDI MinHeap::top(void) {
-    return(m_HeapTree[1]);
-}
-
-bool MinHeap::empty(void) {
-    if (m_CurrentSize == 0)
-        return true;
-    return false;
-}
-
-void MinHeap::pop(void) {
-    if (m_CurrentSize == 0)
-        return;
-    int nid = m_HeapTree[1].second;
-    m_Index[nid] = -1;
-    m_HeapTree[1] = m_HeapTree[m_CurrentSize];
-    m_Index[m_HeapTree[1].second] = 1;
-    m_CurrentSize--;
-    shift_down(1);
-}
-
-void MinHeap::shift_up(int node) {
-    while (node > 1) {
-        int par_node = node / 2;
-        if (m_HeapTree[par_node].first <= m_HeapTree[node].first) {
-            return;
-        }
-        PDI temp = m_HeapTree[par_node];
-        m_HeapTree[par_node] = m_HeapTree[node];
-        m_HeapTree[node] = temp;
-        m_Index[m_HeapTree[node].second] = node;
-        m_Index[m_HeapTree[par_node].second] = par_node;
-        node = par_node;
-    }
-    return;
-}
-
-void MinHeap::shift_down(int node) {
-    while (node < m_CurrentSize) {
-        int left_child = node * 2;
-        int right_child = node * 2 + 1;
-        if (left_child > m_CurrentSize) {
-            return;
-        }
-        int smallest = node;
-        if (m_HeapTree[left_child] < m_HeapTree[smallest]) {
-            smallest = left_child;
-        }
-        if (right_child <= m_CurrentSize) {
-            if (m_HeapTree[right_child] < m_HeapTree[smallest]) {
-                smallest = right_child;
-            }
-        }
-        if (node == smallest)
-            return;
-        PDI temp = m_HeapTree[node];
-        m_HeapTree[node] = m_HeapTree[smallest];
-        m_HeapTree[smallest] = temp;
-        m_Index[m_HeapTree[node].second] = node;
-        m_Index[m_HeapTree[smallest].second] = smallest;
-        node = smallest;
-    }
-    return;
-}
diff --git a/src/bd_astar/src/MinHeap.h b/src/bd_astar/src/MinHeap.h
deleted file mode 100644
index 804bbdc..0000000
--- a/src/bd_astar/src/MinHeap.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*PGR-MIT*****************************************************************
-
-* $Id$
-*
-* Project:  pgRouting bdsp and bdastar algorithms
-* Purpose:
-* Author:   Razequl Islam <ziboncsedu at gmail.com>
-*
-
-------
-MIT/X license
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-********************************************************************PGR-MIT*/
-
-#ifndef SRC_BD_ASTAR_SRC_MINHEAP_H_
-#define SRC_BD_ASTAR_SRC_MINHEAP_H_
-#pragma once
-
-#include <utility>
-
-typedef std::pair<double, int> PDI;
-
-class MinHeap {
- public:
-     explicit MinHeap(int maxNode);
-     ~MinHeap(void);
-
-     bool reset(void);
-     bool init(int maxNode);
-     void push(PDI node);
-     PDI top();
-     void pop();
-     bool empty();
-
- private:
-     void shift_up(int node);
-     void shift_down(int node);
-
- private:
-     PDI *m_HeapTree;
-     int *m_Index;
-     int m_MaxNodeID;
-     int m_CurrentSize;
-};
-
-#endif  // SRC_BD_ASTAR_SRC_MINHEAP_H_
diff --git a/src/bd_astar/src/bdastar.c b/src/bd_astar/src/bdastar.c
deleted file mode 100644
index 4d64e05..0000000
--- a/src/bd_astar/src/bdastar.c
+++ /dev/null
@@ -1,442 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Bi Directional A* Shortest path algorithm for PostgreSQL
-
-Copyright (c) 2006 Anton A. Patrushev, Orkney, Inc.
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#include "./../../common/src/postgres_connection.h"
-#include "catalog/pg_type.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <search.h>
-
-#include "../../common/src/pgr_types.h"
-#include "./bdastar_driver.h"
-
-
-//-------------------------------------------------------------------------
-
-PGDLLEXPORT
-Datum bidir_astar_shortest_path(PG_FUNCTION_ARGS);
-
-#undef DEBUG
-#include "../../common/src/debug_macro.h"
-
-// The number of tuples to fetch from the SPI cursor at each iteration
-#define TUPLIMIT 1000
-
-typedef struct edge_astar_columns {
-  int id;
-  int source;
-  int target;
-  int cost;
-  int reverse_cost;
-  int s_x;
-  int s_y;
-  int t_x;
-  int t_y;
-} edge_astar_columns_t;
-
-
-static int
-fetch_edge_astar_columns(SPITupleTable *tuptable,
-             edge_astar_columns_t *edge_columns,
-             bool has_reverse_cost) {
-    if (tuptable) {}
-  edge_columns->id = SPI_fnumber(SPI_tuptable->tupdesc, "id");
-  edge_columns->source = SPI_fnumber(SPI_tuptable->tupdesc, "source");
-  edge_columns->target = SPI_fnumber(SPI_tuptable->tupdesc, "target");
-  edge_columns->cost = SPI_fnumber(SPI_tuptable->tupdesc, "cost");
-
-  if (edge_columns->id == SPI_ERROR_NOATTRIBUTE ||
-      edge_columns->source == SPI_ERROR_NOATTRIBUTE ||
-      edge_columns->target == SPI_ERROR_NOATTRIBUTE ||
-      edge_columns->cost == SPI_ERROR_NOATTRIBUTE) {
-      elog(ERROR, "Error, query must return columns "
-            "'id', 'source', 'target' and 'cost'");
-      return -1;
-  }
-
-  if (SPI_gettypeid(SPI_tuptable->tupdesc,
-            edge_columns->source) != INT4OID ||
-      SPI_gettypeid(SPI_tuptable->tupdesc,
-            edge_columns->target) != INT4OID ||
-      SPI_gettypeid(SPI_tuptable->tupdesc, edge_columns->cost) != FLOAT8OID) {
-      elog(ERROR, "Error, columns 'source', 'target' must be of type int4, "
-            "'cost' must be of type float8");
-      return -1;
-    }
-
-  PGR_DBG("columns: id %i source %i target %i cost %i",
-      edge_columns->id, edge_columns->source,
-      edge_columns->target, edge_columns->cost);
-
-  if (has_reverse_cost) {
-      edge_columns->reverse_cost = SPI_fnumber(SPI_tuptable->tupdesc,
-                           "reverse_cost");
-
-      if (edge_columns->reverse_cost == SPI_ERROR_NOATTRIBUTE) {
-          elog(ERROR, "Error, reverse_cost is used, but query did't return "
-               "'reverse_cost' column");
-          return -1;
-      }
-
-      if (SPI_gettypeid(SPI_tuptable->tupdesc,
-            edge_columns->reverse_cost) != FLOAT8OID) {
-          elog(ERROR, "Error, columns 'reverse_cost' must be of type float8");
-          return -1;
-      }
-
-      PGR_DBG("columns: reverse_cost cost %i", edge_columns->reverse_cost);
-  }
-
-  edge_columns->s_x = SPI_fnumber(SPI_tuptable->tupdesc, "x1");
-  edge_columns->s_y = SPI_fnumber(SPI_tuptable->tupdesc, "y1");
-  edge_columns->t_x = SPI_fnumber(SPI_tuptable->tupdesc, "x2");
-  edge_columns->t_y = SPI_fnumber(SPI_tuptable->tupdesc, "y2");
-
-  if (edge_columns->s_x == SPI_ERROR_NOATTRIBUTE ||
-      edge_columns->s_y == SPI_ERROR_NOATTRIBUTE ||
-      edge_columns->t_x == SPI_ERROR_NOATTRIBUTE ||
-      edge_columns->t_y == SPI_ERROR_NOATTRIBUTE) {
-      elog(ERROR, "Error, query must return columns "
-       "'x1', 'x2', 'y1' and 'y2'");
-      return -1;
-  }
-
-  PGR_DBG("columns: x1 %i y1 %i x2 %i y2 %i",
-      edge_columns->s_x, edge_columns->s_y,
-      edge_columns->t_x, edge_columns->t_y);
-
-  return 0;
-}
-
-static void
-fetch_edge_astar(HeapTuple *tuple, TupleDesc *tupdesc,
-         edge_astar_columns_t *edge_columns,
-         edge_astar_t *target_edge) {
-  Datum binval;
-  bool isnull;
-
-  binval = SPI_getbinval(*tuple, *tupdesc, edge_columns->id, &isnull);
-  if (isnull) elog(ERROR, "id contains a null value");
-  target_edge->id = DatumGetInt32(binval);
-
-  binval = SPI_getbinval(*tuple, *tupdesc, edge_columns->source, &isnull);
-  if (isnull) elog(ERROR, "source contains a null value");
-  target_edge->source = DatumGetInt32(binval);
-
-  binval = SPI_getbinval(*tuple, *tupdesc, edge_columns->target, &isnull);
-  if (isnull) elog(ERROR, "target contains a null value");
-  target_edge->target = DatumGetInt32(binval);
-
-  binval = SPI_getbinval(*tuple, *tupdesc, edge_columns->cost, &isnull);
-  if (isnull) elog(ERROR, "cost contains a null value");
-  target_edge->cost = DatumGetFloat8(binval);
-
-  if (edge_columns->reverse_cost != -1) {
-      binval = SPI_getbinval(*tuple, *tupdesc,
-                 edge_columns->reverse_cost, &isnull);
-      if (isnull)
-        elog(ERROR, "reverse_cost contains a null value");
-      target_edge->reverse_cost =  DatumGetFloat8(binval);
-  }
-
-  binval = SPI_getbinval(*tuple, *tupdesc, edge_columns->s_x, &isnull);
-  if (isnull) elog(ERROR, "source x contains a null value");
-  target_edge->s_x = DatumGetFloat8(binval);
-
-  binval = SPI_getbinval(*tuple, *tupdesc, edge_columns->s_y, &isnull);
-  if (isnull) elog(ERROR, "source y contains a null value");
-  target_edge->s_y = DatumGetFloat8(binval);
-
-  binval = SPI_getbinval(*tuple, *tupdesc, edge_columns->t_x, &isnull);
-  if (isnull) elog(ERROR, "target x contains a null value");
-  target_edge->t_x = DatumGetFloat8(binval);
-
-  binval = SPI_getbinval(*tuple, *tupdesc, edge_columns->t_y, &isnull);
-  if (isnull) elog(ERROR, "target y contains a null value");
-  target_edge->t_y = DatumGetFloat8(binval);
-}
-
-
-static int compute_shortest_path_astar(char* sql, int source_vertex_id,
-                       int target_vertex_id, bool directed,
-                       bool has_reverse_cost,
-                       path_element_t **path, size_t *path_count) {
-  void *SPIplan;
-  Portal SPIportal;
-  bool moredata = TRUE;
-  size_t ntuples;
-  edge_astar_t *edges = NULL;
-  size_t total_tuples = 0;
-
-  int v_max_id = 0;
-  int v_min_id = INT_MAX;
-
-#ifndef _MSC_VER
-  edge_astar_columns_t edge_columns = {.id =  -1, .source =  -1, .target =  -1,
-                       .cost =  -1, .reverse_cost =  -1,
-                       .s_x =  -1, .s_y =  -1, .t_x =  -1, .t_y =  -1};
-#else  // _MSC_VER
-  edge_astar_columns_t edge_columns = {-1, -1, -1, -1, -1, -1, -1, -1, -1};
-#endif  // _MSC_VER
-  char *err_msg;
-  int ret = -1;
-  size_t z;
-
-  int s_count = 0;
-  int t_count = 0;
-
-  struct vItem {
-    int id;
-    int key;
-  };
-
-  PGR_DBG("start shortest_path_astar\n");
-
-  pgr_SPI_connect();
-  SPIplan = pgr_SPI_prepare(sql);
-  SPIportal = pgr_SPI_cursor_open(SPIplan);
-
-  while (moredata == TRUE) {
-      SPI_cursor_fetch(SPIportal, TRUE, TUPLIMIT);
-
-      if (edge_columns.id == -1) {
-          if (fetch_edge_astar_columns(SPI_tuptable, &edge_columns,
-                           has_reverse_cost) == -1) {
-            pgr_SPI_finish();
-            return -1;
-          }
-      }
-
-      ntuples = SPI_processed;
-      total_tuples += ntuples;
-      if (!edges)
-        edges = palloc(total_tuples * sizeof(edge_astar_t));
-      else
-        edges = repalloc(edges, total_tuples * sizeof(edge_astar_t));
-
-      if (edges == NULL) {
-          elog(ERROR, "Out of memory");
-            pgr_SPI_finish();
-            return -1;
-      }
-
-      if (ntuples > 0) {
-          size_t t;
-          SPITupleTable *tuptable = SPI_tuptable;
-          TupleDesc tupdesc = SPI_tuptable->tupdesc;
-
-          for (t = 0; t < ntuples; t++) {
-              HeapTuple tuple = tuptable->vals[t];
-              fetch_edge_astar(&tuple, &tupdesc, &edge_columns,
-                       &edges[total_tuples - ntuples + t]);
-          }
-          SPI_freetuptable(tuptable);
-      } else {
-          moredata = FALSE;
-      }
-  }
-
-  // defining min and max vertex id
-
-  PGR_DBG("Total %lu tuples", total_tuples);
-
-  for (z = 0; z < total_tuples; z++) {
-    if (edges[z].source < v_min_id) v_min_id = edges[z].source;
-    if (edges[z].source > v_max_id) v_max_id = edges[z].source;
-    if (edges[z].target < v_min_id) v_min_id = edges[z].target;
-    if (edges[z].target > v_max_id) v_max_id = edges[z].target;
-    PGR_DBG("%i <-> %i", v_min_id, v_max_id);
-  }
-
-  //::::::::::::::::::::::::::::::::::::
-  //:: reducing vertex id (renumbering)
-  //::::::::::::::::::::::::::::::::::::
-  for (z=0; z < total_tuples; z++) {
-    // check if edges[] contains source and target
-    if (edges[z].source == source_vertex_id ||
-       edges[z].target == source_vertex_id)
-      ++s_count;
-    if (edges[z].source == target_vertex_id ||
-       edges[z].target == target_vertex_id)
-      ++t_count;
-
-    edges[z].source -= v_min_id;
-    edges[z].target -= v_min_id;
-    PGR_DBG("%i - %i", edges[z].source, edges[z].target);
-  }
-
-  PGR_DBG("Total %lu tuples", total_tuples);
-
-  if (s_count == 0) {
-    elog(ERROR, "Start vertex was not found.");
-    return -1;
-  }
-
-  if (t_count == 0) {
-    elog(ERROR, "Target vertex was not found.");
-    return -1;
-  }
-
-  PGR_DBG("Total %lu tuples", total_tuples);
-
-  PGR_DBG("Calling bidir_astar <%lu>\n", total_tuples);
-
-  // calling C++ A* function
-  ret = bdastar_wrapper(edges, total_tuples, v_max_id + 1, source_vertex_id-v_min_id,
-            target_vertex_id-v_min_id,
-            directed, has_reverse_cost,
-            path, path_count, &err_msg);
-
-  PGR_DBG("SIZE %lu\n", *path_count);
-
-  PGR_DBG("ret =  %i\n", ret);
-
-  //::::::::::::::::::::::::::::::::
-  //:: restoring original vertex id
-  //::::::::::::::::::::::::::::::::
-  for (z = 0; z < *path_count; z++) {
-    // PGR_DBG("vetex %i\n",(*path)[z].vertex_id);
-    (*path)[z].vertex_id += v_min_id;
-  }
-  if (ret < 0) {
-      pfree(path);
-      elog(ERROR, "Error computing path: %s", err_msg);
-  }
-  pgr_SPI_finish();
-  return ret;
-}
-
-
-PG_FUNCTION_INFO_V1(bidir_astar_shortest_path);
-PGDLLEXPORT Datum
-bidir_astar_shortest_path(PG_FUNCTION_ARGS) {
-  FuncCallContext     *funcctx;
-  TupleDesc            tuple_desc;
-  path_element_t      *path;
-  path = NULL;
-
-  /* stuff done only on the first call of the function */
-  if (SRF_IS_FIRSTCALL()) {
-      MemoryContext   oldcontext;
-      size_t path_count = 0;
-#ifdef DEBUG
-      int ret;
-#endif
-
-      /* create a function context for cross-call persistence */
-      funcctx = SRF_FIRSTCALL_INIT();
-
-      /* switch to memory context appropriate for multiple function calls */
-      oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
-
-
-#ifdef DEBUG
-      ret =
-#endif
-         compute_shortest_path_astar(text_to_cstring(PG_GETARG_TEXT_P(0)),
-                    PG_GETARG_INT32(1),
-                    PG_GETARG_INT32(2),
-                    PG_GETARG_BOOL(3),
-                    PG_GETARG_BOOL(4),
-                    &path, &path_count);
-
-#ifdef DEBUG
-      PGR_DBG("Ret is %i", ret);
-      if (ret >= 0) {
-          size_t i;
-          for (i = 0; i < path_count; i++) {
-              PGR_DBG("Step # %ld vertex_id  %ld ", i, path[i].vertex_id);
-              PGR_DBG("        edge_id    %ld ", path[i].edge_id);
-              PGR_DBG("        cost       %f ", path[i].cost);
-          }
-      }
-#endif
-
-      /* total number of tuples to be returned */
-      PGR_DBG("Conting tuples number\n");
-#if PGSQL_VERSION > 95
-      funcctx->max_calls = path_count;
-#else
-      funcctx->max_calls = (uint32_t)path_count;
-#endif
-      funcctx->user_fctx = path;
-
-      PGR_DBG("Path count %lu", path_count);
-
-      funcctx->tuple_desc =
-            BlessTupleDesc(RelationNameGetTupleDesc("pgr_costResult"));
-
-      MemoryContextSwitchTo(oldcontext);
-  }
-
-  /* stuff done on every call of the function */
-  PGR_DBG("Strange stuff doing\n");
-
-  funcctx = SRF_PERCALL_SETUP();
-
-  tuple_desc = funcctx->tuple_desc;
-  path = (path_element_t*) funcctx->user_fctx;
-
-
-  if (funcctx->call_cntr < funcctx->max_calls) {   /* do when there is more left to send */
-      HeapTuple    tuple;
-      Datum        result;
-      Datum *values;
-      bool* nulls;
-
-      values = palloc(4 * sizeof(Datum));
-      nulls = palloc(4 * sizeof(bool));
-
-      values[0] = Int32GetDatum(funcctx->call_cntr);
-      nulls[0] = false;
-      values[1] = Int32GetDatum(path[funcctx->call_cntr].vertex_id);
-      nulls[1] = false;
-      values[2] = Int32GetDatum(path[funcctx->call_cntr].edge_id);
-      nulls[2] = false;
-      values[3] = Float8GetDatum(path[funcctx->call_cntr].cost);
-      nulls[3] = false;
-
-      PGR_DBG("Heap making\n");
-
-      tuple = heap_form_tuple(tuple_desc, values, nulls);
-
-      PGR_DBG("Datum making\n");
-
-      /* make the tuple into a datum */
-      result = HeapTupleGetDatum(tuple);
-
-
-      PGR_DBG("Trying to free some memory\n");
-
-      /* clean up (this is not really necessary) */
-      pfree(values);
-      pfree(nulls);
-
-      SRF_RETURN_NEXT(funcctx, result);
-  } else {   /* do when there is no more left */
-      SRF_RETURN_DONE(funcctx);
-  }
-}
diff --git a/src/bd_astar/src/bdastar_driver.cpp b/src/bd_astar/src/bdastar_driver.cpp
deleted file mode 100644
index c8dcac3..0000000
--- a/src/bd_astar/src/bdastar_driver.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-/*PGR-MIT*****************************************************************
-
-* $Id$
-*
-* Project: pgRouting bdsp and bdastar algorithms
-* Purpose:
-* Author:   Razequl Islam <ziboncsedu at gmail.com>
-*
-
-------
-MIT/X license
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-********************************************************************PGR-MIT*/
-
-
-
-#include "./bdastar_driver.h"
-#include <exception>
-#include "./BiDirAStar.h"
-
-int bdastar_wrapper(edge_astar_t *edges, size_t edge_count, int maxnode,
-                  int source_vertex_id, int target_vertex_id,
-                  bool directed, bool has_reverse_cost,
-                  path_element_t **path, size_t *path_count, char **err_msg) {
-    int res;
-
-    try {
-        BiDirAStar bdastar;
-        res = bdastar.bidir_astar(edges, edge_count, maxnode, source_vertex_id, target_vertex_id, path, path_count, err_msg);
-        // TODO(someone) this are an unused parameters have to be used
-        if (has_reverse_cost) {}
-        if (directed) {}
-    }
-    catch(std::exception& e) {
-        *err_msg = (char *) e.what();
-        return -1;
-    }
-    catch(...) {
-        *err_msg = (char *) "Caught unknown exception!";
-        return -1;
-    }
-
-    if (res < 0)
-        return res;
-    else
-        return EXIT_SUCCESS;
-}
-
diff --git a/src/bd_astar/src/bdastar_driver.h b/src/bd_astar/src/bdastar_driver.h
deleted file mode 100644
index 386f402..0000000
--- a/src/bd_astar/src/bdastar_driver.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*PGR-GNU*****************************************************************
- *
- * Bi Directional A* Shortest path algorithm for PostgreSQL
- *
- * Copyright (c) 2006 Anton A. Patrushev, Orkney, Inc.
-
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifndef SRC_BD_ASTAR_SRC_BDASTAR_DRIVER_H_
-#define SRC_BD_ASTAR_SRC_BDASTAR_DRIVER_H_
-#pragma once
-
-#include "stdlib.h"
-#include "../../common/src/pgr_types.h"
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-  int bdastar_wrapper(edge_astar_t *edges, size_t count, int maxnode,
-                  int source_vertex_id, int target_vertex_id,
-                  bool directed, bool has_reverse_cost,
-                  path_element_t **path, size_t *path_count, char **err_msg);
-#ifdef __cplusplus
-}
-#endif
-
-#endif  // SRC_BD_ASTAR_SRC_BDASTAR_DRIVER_H_
diff --git a/src/bd_astar/test/bd_astar-any-00.data b/src/bd_astar/test/bd_astar-any-00.data
deleted file mode 100644
index 87f4df2..0000000
--- a/src/bd_astar/test/bd_astar-any-00.data
+++ /dev/null
@@ -1,17284 +0,0 @@
-
-drop table if exists bdaways cascade;
-create table bdaways (
-    id integer not null primary key,
-    source integer,
-    target integer,
-    cost float8,
-    reverse_cost float8,
-    x1 float8,
-    y1 float8,
-    x2 float8,
-    y2 float8
-);
-
-copy bdaways (id, source, target, cost, reverse_cost, x1, y1, x2, y2) from stdin;
-18129	10271	10265	0.407629542119694	0.407629542119694	-105.0222175	39.7910979	-105.0222149	39.787432
-14822	9426	3606	0.0603186413824967	0.0603186413824967	-105.0236131	39.7548297	-105.0243187	39.7548283
-16176	5812	7719	0.198519002375015	0.198519002375015	-104.9868503	39.6911967	-104.9868624	39.6894114
-16177	7719	9841	1.21182332618964	1.21182332618964	-104.9868624	39.6894114	-104.9869458	39.6785134
-16178	137	1482	0.199034161669709	0.199034161669709	-104.990773	39.6930188	-104.9907544	39.6948087
-16179	1482	3758	0.20606858724026	0.20606858724026	-104.9907544	39.6948087	-104.9907434	39.6966619
-16217	7903	7844	0.0651768093591436	0.0651768093591436	-105.0105038	39.7592382	-105.0110496	39.7596475
-16218	7844	6725	0.105799860394335	0.105799860394335	-105.0110496	39.7596475	-105.0111475	39.760596
-15793	2298	2322	0.00529554982932783	0.00529554982932783	-105.0218722	39.7380446	-105.0218662	39.7379972
-14854	9432	9433	0.00987428384236239	0.00987428384236239	-105.0069697	39.7566591	-105.0068808	39.7566024
-19732	4490	10638	0.0159213769578026	0.0159213769578026	-105.0052486	39.7360678	-105.0050796	39.7360077
-19734	10639	10640	0.115517684408379	0.115517684408379	-104.9689526	39.7383918	-104.9684353	39.7374321
-19736	10643	5491	0.200611432022914	0.200611432022914	-104.9456446	39.7401427	-104.9456286	39.7383386
-19737	5491	9472	0.173586542348893	0.173586542348893	-104.9456286	39.7383386	-104.9456312	39.7367775
-16211	7730	9848	1.41098736584228	1.41098736584228	-104.9786837	39.6894012	-104.9787084	39.6767119
-19766	8868	3770	0.15451665559366	0.15451665559366	-104.9434398	39.7304973	-104.9434426	39.7291077
-19767	3770	10249	0.199225315153312	0.199225315153312	-104.9434426	39.7291077	-104.9434211	39.7273161
-19769	9471	4895	0.183643472400882	0.183643472400882	-104.9445503	39.7367663	-104.9445218	39.7351149
-19770	4895	9419	0.162738965694015	0.162738965694015	-104.9445218	39.7351149	-104.944537	39.7336514
-16694	9991	9992	0.00824975577533471	0.00824975577533471	-105.0009011	39.745286	-105.0008221	39.7453286
-16253	9862	7741	0.405750287416545	0.405750287416545	-104.9552615	39.6856875	-104.9552614	39.6893365
-16254	7741	5836	0.199719306282583	0.199719306282583	-104.9552614	39.6893365	-104.9552507	39.6911326
-16255	5836	9863	0.20307644815808	0.20307644815808	-104.9552507	39.6911326	-104.9552587	39.6929589
-445	449	450	0.199450473576153	0.199450473576153	-104.9423777	39.727311	-104.942375	39.7291047
-20724	9339	9399	0.00989025456720925	0.00989025456720925	-105.0251698	39.7619441	-105.0252855	39.7619451
-20725	9399	10912	0.0075300269970097	0.0075300269970097	-105.0252855	39.7619451	-105.0253734	39.7619406
-20727	10911	9342	0.00831469236711343	0.00831469236711343	-105.0250813	39.7632958	-105.02517	39.7633265
-18403	7778	10286	0.0505898966958872	0.0505898966958872	-105.0393109	39.7554232	-105.0387191	39.7554242
-273	283	284	0.0964719650645454	0.0964719650645454	-104.9824285	39.7794055	-104.9813127	39.7792736
-275	285	286	0.0574345831683482	0.0574345831683482	-105.0375561	39.7104672	-105.0376076	39.7109822
-276	286	287	0.00381671595135443	0.00381671595135443	-105.0376076	39.7109822	-105.037589	39.710951
-277	288	286	0.0749798421316384	0.0749798421316384	-105.0384831	39.7110152	-105.0376076	39.7109822
-267	277	278	0.026080790494895	0.026080790494895	-104.9875916	39.7783304	-104.9876105	39.7785645
-19535	10550	10547	0.0727126892007364	0.0727126892007364	-104.9890324	39.7101818	-104.9890392	39.7095279
-240	247	248	0.0772679392991742	0.0772679392991742	-104.9672584	39.6865375	-104.966468	39.6862015
-242	249	250	0.0969982430766615	0.0969982430766615	-104.998368	39.698242	-104.998399	39.69737
-19500	10527	10528	0.0180139213913488	0.0180139213913488	-104.9883695	39.7068128	-104.9883708	39.7066508
-16008	9778	9779	0.0944640625920965	0.0944640625920965	-104.9996367	39.6880494	-104.9993937	39.6888781
-15463	8882	1361	0.00984596954833585	0.00984596954833585	-105.0018196	39.7432597	-105.0019226	39.7432201
-11520	658	713	0.150268576052698	0.150268576052698	-105.0299141	39.7589753	-105.0281562	39.7589668
-270	280	281	0.0978981798906238	0.0978981798906238	-104.9858487	39.7794049	-104.9847034	39.7794255
-16247	7743	5838	0.199906773104335	0.199906773104335	-104.952944	39.68933	-104.9529386	39.6911278
-505	499	500	0.0224810261782308	0.0224810261782308	-105.0019139	39.7130364	-105.0016511	39.7130338
-19508	10448	10534	0.00643702567875165	0.00643702567875165	-104.9883503	39.7088103	-104.9882751	39.7088082
-16434	9896	3281	0.0340559329983669	0.0340559329983669	-104.9713614	39.7025858	-104.9710667	39.7027917
-19458	10492	10506	0.00750267115612711	0.00750267115612711	-104.991144	39.7108499	-104.9910563	39.7108489
-16700	9995	9996	0.0459960991438913	0.0459960991438913	-105.0002467	39.7468596	-104.9999838	39.7464987
-17222	5174	8210	0.200775724104805	0.200775724104805	-104.9774882	39.7165195	-104.9774991	39.7183251
-17224	4240	7299	0.0119914556826953	0.0119914556826953	-104.9774946	39.7019203	-104.9774985	39.7020281
-345	346	347	0.130802492327731	0.130802492327731	-105.0077031	39.726667	-105.0087846	39.7258352
-347	348	349	0.135557185972568	0.135557185972568	-105.0167349	39.7741306	-105.0166897	39.7753492
-348	349	350	0.136845365159024	0.136845365159024	-105.0166897	39.7753492	-105.0166327	39.7765791
-355	357	358	0.388256388951567	0.388256388951567	-105.0040637	39.6822107	-105.0034646	39.6856718
-356	358	359	0.410677079496879	0.410677079496879	-105.0034646	39.6856718	-105.0015512	39.6890589
-18458	10297	6395	0.0910083144293941	0.0910083144293941	-105.03052	39.7468559	-105.0300459	39.7475887
-18424	8333	10290	0.150248967925867	0.150248967925867	-105.0410618	39.76212	-105.0410717	39.7607688
-18426	8331	7848	0.20002866768649	0.20002866768649	-105.0387149	39.7621204	-105.0387174	39.7603215
-16185	9843	7721	1.49406009526399	1.49406009526399	-104.9846521	39.6759732	-104.9845556	39.6894094
-18230	2552	10281	0.408042509102773	0.408042509102773	-105.0421454	39.7874345	-105.0421588	39.7911041
-568	561	562	0.0238735645312088	0.0238735645312088	-104.984845	39.7400568	-104.9848447	39.7398421
-509	503	504	0.0378269387886271	0.0378269387886271	-104.9454639	39.7487815	-104.9458317	39.7485924
-510	504	505	0.131422581642966	0.131422581642966	-104.9458317	39.7485924	-104.9471759	39.748019
-511	505	506	0.13298824931129	0.13298824931129	-104.9471759	39.748019	-104.9486568	39.747653
-512	506	507	0.0469418788297666	0.0469418788297666	-104.9486568	39.747653	-104.9492017	39.7477049
-513	507	508	0.00800396830514923	0.00800396830514923	-104.9492017	39.7477049	-104.9492875	39.7477337
-514	508	509	0.189986229051577	0.189986229051577	-104.9492875	39.7477337	-104.9514881	39.747496
-521	516	517	0.0463139600038384	0.0463139600038384	-104.968998	39.788144	-104.968456	39.788149
-12956	1507	1599	0.174395269936236	0.174395269936236	-105.0003423	39.7408556	-105.0021858	39.7415267
-19854	9521	10661	0.207011877470032	0.207011877470032	-105.04459	39.7403388	-105.044594	39.7384771
-11687	773	774	0.0194846935551434	0.0194846935551434	-105.0019256	39.7530472	-105.0018298	39.7532062
-20577	10865	10866	0.00985918265048112	0.00985918265048112	-105.024575	39.7609374	-105.0244598	39.760933
-15197	3400	9212	0.0496967641825266	0.0496967641825266	-105.0346118	39.7499915	-105.0351931	39.7499892
-3594	3445	1174	0.142771364790872	0.142771364790872	-104.9462568	39.7619224	-104.9462747	39.7632063
-3595	1174	897	0.139794356108886	0.139794356108886	-104.9462747	39.7632063	-104.9462766	39.7644635
-19561	10564	10565	0.0196154846965349	0.0196154846965349	-104.9892825	39.7091533	-104.9895118	39.7091548
-16270	6159	9867	0.121531820960243	0.121531820960243	-104.9571463	39.7006474	-104.955726	39.700668
-11805	8417	8418	0.134805848745127	0.134805848745127	-104.9873865	39.7509603	-104.986246	39.7517975
-18434	8357	10291	0.154597709113849	0.154597709113849	-105.0387283	39.763957	-105.0387163	39.7625667
-15269	8698	8458	0.108561000163296	0.108561000163296	-104.9293068	39.7060799	-104.9284834	39.705337
-16600	3169	9952	0.143650464740249	0.143650464740249	-105.0010939	39.7483839	-104.9999037	39.7492958
-971	982	983	0.153004941982632	0.153004941982632	-104.9740839	39.7304453	-104.9740784	39.7290693
-19467	10511	10512	0.0226507231527583	0.0226507231527583	-104.9902675	39.7093534	-104.9902689	39.7091497
-19468	10512	10513	0.0195038602641882	0.0195038602641882	-104.9902689	39.7091497	-104.9902701	39.7089743
-16605	9954	9955	0.0548421550272179	0.0548421550272179	-104.9873941	39.7482417	-104.98691	39.7485653
-16733	5003	10004	0.0399314883998924	0.0399314883998924	-104.9542392	39.7014907	-104.9539532	39.7012069
-16677	9979	9980	0.023537846703909	0.023537846703909	-105.0090565	39.7415049	-105.0092872	39.7413894
-15811	9714	9715	0.0297752747528411	0.0297752747528411	-105.0287669	39.734998	-105.0286408	39.7352476
-12949	1304	1330	0.0581647037716416	0.0581647037716416	-105.0024118	39.7438801	-105.0020771	39.7434247
-11964	5499	7073	0.148280923478534	0.148280923478534	-104.978687	39.7590038	-104.9774602	39.7599466
-18453	9427	4296	0.104102993198957	0.104102993198957	-105.0410753	39.7548663	-105.0410672	39.7539301
-20603	10836	10820	0.0118777812250081	0.0118777812250081	-105.0188782	39.7585174	-105.0188943	39.7586235
-20604	10820	10827	0.0109415807816948	0.0109415807816948	-105.0188943	39.7586235	-105.0188943	39.7587219
-318	326	327	0.287313248528131	0.287313248528131	-104.9969556	39.7087095	-104.9987289	39.7109039
-919	933	934	0.0476774715690845	0.0476774715690845	-104.9758289	39.7320426	-104.9752714	39.7320373
-920	934	935	0.0499176342652801	0.0499176342652801	-104.9752714	39.7320373	-104.9746877	39.7320425
-921	935	936	0.0512339711733563	0.0512339711733563	-104.9746877	39.7320425	-104.9740886	39.7320473
-12002	6577	5507	0.29282736629382	0.29282736629382	-104.9845851	39.7598337	-104.9821628	39.7616959
-2397	2072	2388	0.0939943538292093	0.0939943538292093	-104.9530584	39.7738703	-104.9519586	39.7738777
-17363	7241	3255	0.194151227318962	0.194151227318962	-104.9786816	39.7057151	-104.9786655	39.7039691
-3612	954	3458	0.174654702147255	0.174654702147255	-104.9461808	39.7320927	-104.9461745	39.7336634
-3613	3458	3459	0.161855899930502	0.161855899930502	-104.9461745	39.7336634	-104.9461795	39.735119
-3614	3459	3460	0.184505780617563	0.184505780617563	-104.9461795	39.735119	-104.9461809	39.7367783
-3615	3460	3461	0.174076203888655	0.174076203888655	-104.9461809	39.7367783	-104.9461758	39.7383438
-12954	1477	1478	0.162422090556836	0.162422090556836	-105.002429	39.7428637	-105.0010729	39.7418408
-16746	6830	10008	0.0662012224002346	0.0662012224002346	-104.9512088	39.6979166	-104.9506165	39.6975335
-19537	10551	4704	0.0179029738053875	0.0179029738053875	-104.9890395	39.7095019	-104.9890412	39.7093409
-16747	10008	3664	0.0562861796352498	0.0562861796352498	-104.9506165	39.6975335	-104.9507	39.6970314
-12008	8513	4459	0.0575373844976813	0.0575373844976813	-104.9847187	39.7610718	-104.9842417	39.7614369
-12009	4459	5508	0.146438493557302	0.146438493557302	-104.9842417	39.7614369	-104.9830521	39.7623846
-11575	1594	1595	0.149695612752929	0.149695612752929	-105.0340269	39.7566757	-105.0340012	39.7553296
-18383	8920	8960	0.0494721849144557	0.0494721849144557	-105.0258859	39.7720013	-105.0258905	39.7724462
-19652	10605	10528	0.00763160148090486	0.00763160148090486	-104.9882816	39.7066519	-104.9883708	39.7066508
-1706	1727	204	0.0785826238386085	0.0785826238386085	-105.0194505	39.690822	-105.0203689	39.690822
-11578	1595	1767	0.0524448615311058	0.0524448615311058	-105.0340012	39.7553296	-105.0346147	39.7553296
-351	353	354	0.0783794642996216	0.0783794642996216	-104.9345948	39.720897	-104.9346635	39.7201941
-16749	53	10005	0.150239248303575	0.150239248303575	-104.9519712	39.7002191	-104.9531164	39.6991948
-20036	7837	816	0.140917505829302	0.140917505829302	-104.9739674	39.7519707	-104.9739648	39.753238
-20637	10876	10878	0.031770930566573	0.031770930566573	-105.0137702	39.7627689	-105.0137749	39.7624832
-16183	1702	133	0.201630131124766	0.201630131124766	-104.9881579	39.6911836	-104.9881082	39.6929965
-16753	6829	10009	0.0465845830870589	0.0465845830870589	-104.9506246	39.6983982	-104.9506326	39.6988171
-18737	2600	1858	0.180581857071932	0.180581857071932	-105.0403183	39.7229556	-105.0403103	39.7213316
-14686	1987	2318	0.198940266900504	0.198940266900504	-104.9711608	39.7219572	-104.9711696	39.7237463
-1928	1941	1942	0.123855031305308	0.123855031305308	-104.9873753	39.7384618	-104.9888238	39.7384602
-18741	8070	7651	0.262731372814963	0.262731372814963	-105.0389316	39.730617	-105.0389317	39.7282542
-14685	1546	1987	0.20778014181537	0.20778014181537	-104.9711694	39.7200886	-104.9711608	39.7219572
-12334	8656	8657	0.0212762444700433	0.0212762444700433	-105.0073545	39.7547272	-105.0074107	39.7549136
-18873	7825	7987	0.015602795644656	0.015602795644656	-104.9875714	39.7007878	-104.9874076	39.7007261
-12352	8668	8669	0.00723037090372959	0.00723037090372959	-105.0125278	39.7524187	-105.0124521	39.7523897
-18669	9460	1818	0.156714358591483	0.156714358591483	-105.0282321	39.7288662	-105.028093	39.7274609
-18185	5799	6059	0.199739960113703	0.199739960113703	-105.0328002	39.7874226	-105.0327949	39.7856263
-18862	9131	9178	0.0368320416365925	0.0368320416365925	-105.016012	39.7307001	-105.0164243	39.7306043
-16606	9955	7890	0.148662937956551	0.148662937956551	-104.98691	39.7485653	-104.9856992	39.7495249
-12197	424	2296	0.092590985158808	0.092590985158808	-105.0237982	39.7396264	-105.0235583	39.7404384
-328	329	330	0.0301965908229701	0.0301965908229701	-104.951939	39.7453698	-104.9522566	39.7454886
-329	330	331	0.00308879550687601	0.00308879550687601	-104.9522566	39.7454886	-104.9522901	39.745499
-15797	2324	2349	0.0197202421063636	0.0197202421063636	-105.0223618	39.737766	-105.0225811	39.7377111
-16293	2377	2409	0.0804076908745063	0.0804076908745063	-104.9707298	39.6964161	-104.9698358	39.6961931
-17370	3254	7297	0.216186214827155	0.216186214827155	-104.9787191	39.7039689	-104.9786923	39.7020248
-18195	8107	9376	0.183361036437535	0.183361036437535	-105.0363465	39.77838	-105.036341	39.776731
-17371	7297	40	0.193403542976089	0.193403542976089	-104.9786923	39.7020248	-104.9786815	39.7002855
-389	391	392	0.10291889633356	0.10291889633356	-104.931634	39.702187	-104.932837	39.702182
-18880	1927	7249	0.20098536077548	0.20098536077548	-104.9611322	39.7074867	-104.9611376	39.7056792
-12842	2658	461	0.235239531220745	0.235239531220745	-104.9890044	39.7762796	-104.9888564	39.7783921
-18457	7020	10297	0.095413640203737	0.095413640203737	-105.0315108	39.746461	-105.03052	39.7468559
-14684	1545	1546	0.195783826439231	0.195783826439231	-104.9711569	39.7183279	-104.9711694	39.7200886
-16302	2721	2722	0.0283898956128369	0.0283898956128369	-104.9693989	39.6953759	-104.96971	39.6952871
-18674	1569	1570	0.17732367890712	0.17732367890712	-105.0399837	39.7229516	-105.0399911	39.7245463
-19651	10604	10605	0.00569731320684084	0.00569731320684084	-104.988215	39.7066518	-104.9882816	39.7066519
-12365	8674	8675	0.00395306971093599	0.00395306971093599	-105.011632	39.7531718	-105.0116148	39.7532048
-18885	80	7308	0.203338584644882	0.203338584644882	-104.9634174	39.7002277	-104.9634496	39.7020562
-18462	9528	9293	0.135413968590027	0.135413968590027	-105.0387229	39.7499763	-105.0387175	39.7511941
-17073	8133	10070	0.277242310734424	0.277242310734424	-104.9615993	39.7482178	-104.9615992	39.7507111
-18887	3267	7247	0.200784680682105	0.200784680682105	-104.9634713	39.7038687	-104.963471	39.7056744
-16306	2851	2852	0.0109060813984903	0.0109060813984903	-104.9722098	39.6978689	-104.972242	39.697774
-18803	8953	10352	0.0713096059986916	0.0713096059986916	-104.9925416	39.768912	-104.9919121	39.7693329
-12360	8670	8671	0.0527368404826503	0.0527368404826503	-105.0123272	39.7529475	-105.0117521	39.7531191
-19915	8054	8774	0.178101620538173	0.178101620538173	-104.9981194	39.7305074	-104.9980954	39.7289058
-19027	10418	8995	0.822032321709027	0.822032321709027	-104.9421303	39.7909863	-104.9472908	39.7847471
-16313	2929	2636	0.0522503580010493	0.0522503580010493	-104.9698519	39.6952562	-104.970433	39.6951117
-18123	10266	7936	0.0422734852594549	0.0422734852594549	-105.0106756	39.7890735	-105.0106854	39.7894536
-11696	1005	1006	0.0249036708868205	0.0249036708868205	-105.0014074	39.7532864	-105.0016257	39.7531381
-19031	9820	9825	0.141867922710985	0.141867922710985	-104.9518785	39.7803129	-104.9535187	39.7801156
-17076	828	3568	0.137092229325187	0.137092229325187	-104.9616093	39.7532223	-104.9616097	39.7544552
-20641	10879	4802	0.0562973461233787	0.0562973461233787	-105.0134384	39.762482	-105.0127798	39.7624768
-19035	9497	9495	0.0285635113459611	0.0285635113459611	-104.949868	39.7793088	-104.9496974	39.7795297
-2071	2074	2075	0.135495947312548	0.135495947312548	-104.953735	39.7545002	-104.9536922	39.7557183
-15936	9757	6254	0.229061306545615	0.229061306545615	-104.9945244	39.7005048	-104.9939504	39.6984927
-3229	3143	3144	0.198651066611581	0.198651066611581	-104.9647761	39.721983	-104.9647846	39.7237695
-3231	3145	1186	0.167106782855451	0.167106782855451	-104.9648025	39.7256	-104.9648143	39.7271028
-20275	10725	6473	0.00777253007071417	0.00777253007071417	-105.0450582	39.7746915	-105.0450583	39.7747614
-20276	6473	10726	0.00774087009692378	0.00774087009692378	-105.0450583	39.7747614	-105.0450564	39.774831
-20277	10710	5573	0.00807679050419555	0.00807679050419555	-105.0441026	39.7735162	-105.0440081	39.7735153
-16287	1363	2160	0.150908240771596	0.150908240771596	-104.9708258	39.6964243	-104.9704959	39.6950911
-18901	10379	10378	0.00446883067059111	0.00446883067059111	-105.0125991	39.750475	-105.0125479	39.7504669
-18181	6056	4071	0.17853957848987	0.17853957848987	-105.030464	39.7856261	-105.0304275	39.7840207
-16288	2160	2273	0.031688963076218	0.031688963076218	-104.9704959	39.6950911	-104.970858	39.6950312
-15792	2131	2298	0.0834787229201596	0.0834787229201596	-105.0228299	39.7378988	-105.0218722	39.7380446
-17362	1905	7241	0.196305657515643	0.196305657515643	-104.9786923	39.7074805	-104.9786816	39.7057151
-20796	10943	7661	0.00258138052005919	0.00258138052005919	-105.0351465	39.7621945	-105.0351767	39.7621945
-20797	7661	10931	0.00256438171506516	0.00256438171506516	-105.0351767	39.7621945	-105.0352067	39.7621947
-17367	3197	6112	0.203543642625323	0.203543642625323	-104.9786527	39.7111042	-104.9786441	39.7092737
-19564	10566	10567	0.0877791462313442	0.0877791462313442	-104.9897479	39.7084105	-104.9897546	39.7076211
-17839	9059	10189	0.106477983280495	0.106477983280495	-104.9784966	39.7791336	-104.9772538	39.7792023
-17124	42	4240	0.19030237977338	0.19030237977338	-104.9775311	39.7002091	-104.9774946	39.7019203
-15941	9758	9759	0.0631588158295344	0.0631588158295344	-104.9982473	39.7053729	-104.9977092	39.704984
-17151	4781	4823	0.202239291799058	0.202239291799058	-104.9751707	39.7038491	-104.9751483	39.7056678
-14110	421	3623	0.253988429085779	0.253988429085779	-104.9424633	39.7443997	-104.9448677	39.7457412
-20309	10730	10731	0.0277808040232953	0.0277808040232953	-105.0250776	39.7585876	-105.0247591	39.7586373
-19606	10584	10500	0.00674103787689334	0.00674103787689334	-104.9910734	39.7091553	-104.9911522	39.7091559
-18677	2800	2801	0.105225983369234	0.105225983369234	-105.0367483	39.7254828	-105.0367403	39.7245365
-17096	3720	3721	0.196415457175175	0.196415457175175	-104.9604079	39.7368138	-104.9604142	39.7350474
-19914	6599	8054	0.176409123849899	0.176409123849899	-104.9981408	39.7320938	-104.9981194	39.7305074
-14113	3767	3768	0.109524379066099	0.109524379066099	-104.9431585	39.7464851	-104.9443957	39.7462296
-19575	10571	10572	0.0878577106463745	0.0878577106463745	-104.98929	39.7084071	-104.9892979	39.707617
-19578	7458	10573	0.00838425457343401	0.00838425457343401	-104.9885959	39.7075353	-104.9885953	39.7076107
-13363	6192	9050	0.200728781748151	0.200728781748151	-104.9818752	39.7795506	-104.9795353	39.7793923
-18684	3608	1316	0.176123680044276	0.176123680044276	-105.036708	39.7149602	-105.0366981	39.7133763
-16406	9888	9885	0.103994018141439	0.103994018141439	-104.9706065	39.7033361	-104.9695415	39.703787
-20348	10747	10734	0.124798183375822	0.124798183375822	-105.0235111	39.7585885	-105.0220514	39.7585674
-13367	487	9053	0.0916792010447841	0.0916792010447841	-104.9845022	39.7800173	-104.985575	39.7800251
-17112	3776	3932	0.0318567386044335	0.0318567386044335	-104.9578598	39.7475843	-104.9574881	39.7475642
-18472	7703	9005	0.191779872148763	0.191779872148763	-105.0398923	39.7567045	-105.0399025	39.7549798
-13566	4	3088	0.053682748576131	0.053682748576131	-105.0151369	39.7295685	-105.0149714	39.7291028
-14690	2868	3129	0.152693011202245	0.152693011202245	-104.9712042	39.7290823	-104.9712066	39.7304555
-19632	10519	10594	0.0691883113691504	0.0691883113691504	-104.9902831	39.708118	-104.9910918	39.7081283
-16442	9898	9900	0.0593229160576478	0.0593229160576478	-104.9681189	39.6930432	-104.9688122	39.6930484
-19557	10561	10562	0.0114115661676901	0.0114115661676901	-104.9884504	39.7091486	-104.9885838	39.7091493
-17140	3200	3089	0.200962427212495	0.200962427212495	-104.976351	39.7110879	-104.9763937	39.7128949
-19588	10578	7459	0.00830641959761081	0.00830641959761081	-104.9888246	39.7076128	-104.9888252	39.7075381
-19590	10509	10579	0.0688000441577074	0.0688000441577074	-104.9902632	39.7097378	-104.9910674	39.7097471
-4371	4093	4094	0.0474398468296831	0.0474398468296831	-105.016444	39.7839662	-105.0169973	39.7839311
-14821	4531	9426	0.131844452515128	0.131844452515128	-105.0220708	39.7548328	-105.0236131	39.7548297
-20313	10734	10735	0.135778003167023	0.135778003167023	-105.0220514	39.7585674	-105.0233062	39.7593161
-16512	8896	9922	0.103245634213484	0.103245634213484	-105.0048016	39.7429839	-105.0040915	39.7422329
-19627	10592	10501	0.0068017037739497	0.0068017037739497	-104.9910751	39.7089846	-104.9911546	39.7089857
-3432	3319	3320	0.201627360859163	0.201627360859163	-104.9570312	39.7819252	-104.9569981	39.7837383
-3631	1572	3475	0.135693159195378	0.135693159195378	-104.9464121	39.7776877	-104.9464207	39.778908
-3632	3475	3476	0.119283891700122	0.119283891700122	-104.9464207	39.778908	-104.9464336	39.7799807
-3634	3211	3477	0.201273972346718	0.201273972346718	-104.9640093	39.7111011	-104.9640079	39.709291
-3635	3477	1922	0.201175175309244	0.201175175309244	-104.9640079	39.709291	-104.9639994	39.7074818
-17122	4176	3542	0.20232729922556	0.20232729922556	-104.9775098	39.6966104	-104.977531	39.6984299
-16444	9901	9902	0.179094898504736	0.179094898504736	-104.9711673	39.6931206	-104.9732597	39.6931641
-20287	9383	6472	0.201518688053588	0.201518688053588	-105.0445781	39.7765737	-105.0445755	39.7747614
-20014	8858	10180	0.0735203760297937	0.0735203760297937	-104.988003	39.7531189	-104.9873951	39.7535866
-19233	10457	10420	0.0372086096742178	0.0372086096742178	-104.991294	39.7429942	-104.9910563	39.7427139
-4657	4299	3840	0.0473685540434106	0.0473685540434106	-105.0422855	39.7539305	-105.0428396	39.7539325
-14125	3659	3925	0.129261803351535	0.129261803351535	-104.9461809	39.7460646	-104.9455321	39.7450146
-3623	3469	3470	0.140706278566204	0.140706278566204	-104.9464912	39.7544409	-104.9464883	39.7557063
-18908	10386	10387	0.0302347602157808	0.0302347602157808	-105.0126981	39.7501431	-105.0127236	39.7498719
-15943	9760	8085	0.0293664602336856	0.0293664602336856	-104.9988776	39.705053	-104.9991901	39.7049437
-18142	10269	6300	0.0570177692907992	0.0570177692907992	-105.0151755	39.7886103	-105.0158404	39.7886539
-17020	10057	10058	0.15155359133236	0.15155359133236	-105.0168578	39.7546147	-105.0171608	39.7532718
-17158	5010	5011	0.0757362739800239	0.0757362739800239	-104.9728277	39.6904527	-104.9728223	39.6911338
-16649	9960	9968	0.0812055546813917	0.0812055546813917	-104.9855516	39.7391519	-104.9849991	39.7385579
-17022	10055	10058	0.0158274438461504	0.0158274438461504	-105.0169757	39.7532749	-105.0171608	39.7532718
-20617	10793	10829	0.0486626332146345	0.0486626332146345	-105.023633	39.7596708	-105.0230688	39.7597292
-17292	7745	7192	0.403926945097788	0.403926945097788	-104.944774	39.68931	-104.9447793	39.6929426
-17953	8781	10225	0.0170107340919314	0.0170107340919314	-104.9874899	39.7236088	-104.987291	39.7236088
-17142	4509	4616	0.202021015829292	0.202021015829292	-104.9763295	39.7146995	-104.9763402	39.7165163
-14706	5161	5162	0.0515278311632085	0.0515278311632085	-104.9746885	39.7400066	-104.9746897	39.7395432
-17293	7192	8754	0.202354446551741	0.202354446551741	-104.9447793	39.6929426	-104.944769	39.6947624
-16653	9971	9972	0.0159150831985239	0.0159150831985239	-104.9875004	39.7399598	-104.9876865	39.7399625
-17955	10229	10228	0.0205875980561605	0.0205875980561605	-104.9870009	39.7240152	-104.98712	39.7238543
-16775	9905	10011	0.0628512846047373	0.0628512846047373	-104.9731684	39.7001285	-104.9726726	39.6997114
-20430	10790	10791	0.0319464035455711	0.0319464035455711	-105.0228403	39.759346	-105.0231621	39.7594921
-17144	4683	4684	0.183413882011105	0.183413882011105	-104.9751813	39.691337	-104.9751601	39.6929864
-17482	367	368	0.0073956069596753	0.0073956069596753	-104.9589982	39.7796654	-104.9589875	39.7795994
-17483	368	4274	0.0740383655738795	0.0740383655738795	-104.9589875	39.7795994	-104.9589559	39.778934
-18131	6045	4102	0.143663826029319	0.143663826029319	-105.0222109	39.785625	-105.0222318	39.7843331
-17166	3547	48	0.197940166378652	0.197940166378652	-104.9739907	39.6984301	-104.9740013	39.7002102
-17957	10231	10232	0.0468160398694911	0.0468160398694911	-104.9876908	39.725221	-104.9882382	39.7252241
-19584	10563	10576	0.0699872416467849	0.0699872416467849	-104.9888131	39.7091506	-104.9888178	39.7085212
-19587	10577	10578	0.0879343964012276	0.0879343964012276	-104.9888187	39.7084036	-104.9888246	39.7076128
-16540	7834	812	0.139228180638449	0.139228180638449	-104.9763093	39.7519986	-104.9763308	39.7532506
-20323	10742	10732	0.00891011779971553	0.00891011779971553	-105.0237259	39.7589011	-105.0237565	39.7589777
-14118	3946	4047	0.0370997345222532	0.0370997345222532	-104.9449549	39.7480018	-104.9449621	39.7476682
-20325	10743	10744	0.00292597509729593	0.00292597509729593	-105.0236223	39.7590808	-105.0235881	39.7590797
-17681	9050	9814	0.396292789359983	0.396292789359983	-104.9795353	39.7793923	-104.974902	39.7795432
-17683	10165	9814	0.392184725428778	0.392184725428778	-104.9794908	39.7794867	-104.974902	39.7795432
-17303	3516	4258	0.201418622589808	0.201418622589808	-104.9634676	39.6983891	-104.9634703	39.6965777
-17690	6173	6191	0.0979652724466413	0.0979652724466413	-104.9843627	39.779576	-104.9832163	39.7795774
-17305	8744	8715	0.198903931890441	0.198903931890441	-104.9634565	39.6947677	-104.9634793	39.692979
-19815	6602	8057	0.177734109816075	0.177734109816075	-105.0021882	39.7320975	-105.0021856	39.7304991
-20432	10754	10792	0.00161805170064806	0.00161805170064806	-105.0232175	39.7595165	-105.0232345	39.7595229
-5752	4838	5081	0.0155515271366432	0.0155515271366432	-104.9964173	39.7083799	-104.9962546	39.7083175
-14703	5104	5105	0.188886837572701	0.188886837572701	-104.973501	39.7255812	-104.9735001	39.7272799
-19833	10653	10654	0.205572346227123	0.205572346227123	-105.0399056	39.7384617	-105.0398868	39.736613
-4807	4413	4414	0.0998668735468864	0.0998668735468864	-105.0298142	39.704914	-105.0298228	39.7058121
-3650	3488	3106	0.174737901377497	0.174737901377497	-104.9293331	39.7146644	-104.9293159	39.713093
-3651	3106	3491	0.194747174928978	0.194747174928978	-104.9293159	39.713093	-104.9293114	39.7113416
-17379	5746	5747	0.00818765310677506	0.00818765310677506	-104.9676388	39.6930381	-104.9676964	39.6930969
-20468	10818	10755	0.173765546097308	0.173765546097308	-105.0193121	39.758524	-105.0213448	39.7585398
-17164	1802	4242	0.207580745712203	0.207580745712203	-104.9740336	39.6947447	-104.9740228	39.6966115
-6015	5267	5268	0.103281094663511	0.103281094663511	-104.9487209	39.7680993	-104.9475125	39.7680963
-18137	10263	10272	0.406284221439373	0.406284221439373	-105.0198897	39.7874342	-105.019885	39.791088
-17291	10085	7745	0.543012306463268	0.543012306463268	-104.9447951	39.6844266	-104.944774	39.68931
-14709	5330	4870	0.190973371939833	0.190973371939833	-104.9746992	39.7368668	-104.9746798	39.7351494
-18138	4093	6038	0.184675507720467	0.184675507720467	-105.016444	39.7839662	-105.0164173	39.7856269
-16651	9969	9970	0.100708681464822	0.100708681464822	-104.9848573	39.7385435	-104.9836795	39.7385414
-14710	4870	2220	0.162414391352976	0.162414391352976	-104.9746798	39.7351494	-104.9746915	39.7336888
-18505	6386	17	0.132879414135856	0.132879414135856	-105.0363788	39.7475676	-105.0363574	39.7463727
-14727	6220	6303	0.0511187399227223	0.0511187399227223	-104.9752801	39.7395432	-104.9758778	39.7395535
-17176	5390	5408	0.208329703574267	0.208329703574267	-104.9692808	39.6910982	-104.9693344	39.6929713
-20791	8358	10898	0.00761490800516594	0.00761490800516594	-105.039401	39.7639563	-105.0393945	39.7640246
-17146	1801	4241	0.206257539278646	0.206257539278646	-104.9751816	39.6947545	-104.9751708	39.6966094
-14731	6303	5467	0.125799145673022	0.125799145673022	-104.9758778	39.7395535	-104.97589	39.7384222
-18536	5557	10309	0.366989977501724	0.366989977501724	-105.0440105	39.7607636	-105.0483038	39.7607426
-14723	6016	5469	0.171433952660857	0.171433952660857	-104.9735459	39.7368668	-104.9735608	39.7384085
-18516	2412	10295	0.0120882825664803	0.0120882825664803	-105.041094	39.7530159	-105.041069	39.7531229
-17153	1911	4839	0.199025256937054	0.199025256937054	-104.9751493	39.7074845	-104.9751709	39.7092743
-17154	4839	3202	0.202009935716231	0.202009935716231	-104.9751709	39.7092743	-104.9751601	39.711091
-18288	6762	6873	0.146634632629247	0.146634632629247	-105.0276181	39.7698189	-105.025904	39.7697621
-20338	10735	10738	0.035049164748108	0.035049164748108	-105.0233062	39.7593161	-105.0235235	39.7590488
-18690	5770	5771	0.102556159708994	0.102556159708994	-105.0415039	39.7197378	-105.0414984	39.7188155
-20424	10785	10786	0.0731561229415083	0.0731561229415083	-105.0187626	39.7585641	-105.0188457	39.7592189
-5740	1710	5071	0.202613094112382	0.202613094112382	-105.0378737	39.6912834	-105.037844	39.6894614
-14744	2216	4866	0.159742631617364	0.159742631617364	-104.9770059	39.7337051	-104.9770059	39.7351417
-18148	6033	4087	0.198416361234407	0.198416361234407	-105.0117918	39.7856148	-105.0117891	39.7838304
-17476	4654	473	0.0704097319033273	0.0704097319033273	-105.0189639	39.7475939	-105.0185991	39.7470262
-18150	4100	6044	0.175955927487578	0.175955927487578	-105.0210503	39.7840434	-105.0210575	39.7856258
-6851	5860	5861	0.109631940187014	0.109631940187014	-105.0311875	39.7149636	-105.0324691	39.7149773
-14841	7164	7777	0.0983349446501409	0.0983349446501409	-105.0381551	39.754855	-105.0393054	39.7548506
-18242	6768	3993	0.201258062688176	0.201258062688176	-105.0275913	39.7725071	-105.029945	39.772565
-18273	6645	6666	0.202152498738845	0.202152498738845	-105.0398253	39.77838	-105.0398227	39.780198
-20386	10770	10771	0.0535943445752728	0.0535943445752728	-105.0244499	39.7607064	-105.0250699	39.7607782
-6983	5958	5959	0.149650557500517	0.149650557500517	-104.9891839	39.7447837	-104.9904219	39.7438323
-18306	3982	7041	0.200503190670894	0.200503190670894	-105.0299336	39.7678829	-105.0322795	39.7678767
-20438	10796	10797	0.0670860233753639	0.0670860233753639	-105.0226193	39.761283	-105.0218716	39.7614664
-20500	10838	10824	0.0121125751150814	0.0121125751150814	-105.0210227	39.7583868	-105.0208891	39.7583505
-14725	977	5162	0.0458445478179373	0.0458445478179373	-104.9741536	39.7395367	-104.9746897	39.7395432
-6627	5707	1851	0.181903999460801	0.181903999460801	-105.0361257	39.7196961	-105.036129	39.721332
-3671	3508	3509	0.00436333612190551	0.00436333612190551	-104.9681486	39.6983823	-104.9680976	39.6983824
-3672	3509	3510	0.046781667512879	0.046781667512879	-104.9680976	39.6983824	-104.9675508	39.6983827
-7657	3346	6356	0.257422789129267	0.257422789129267	-104.9571645	39.7728928	-104.9541524	39.7728932
-14872	3240	5733	0.139141273161543	0.139141273161543	-105.0054318	39.7718056	-105.005421	39.7730569
-18469	9138	10300	0.19595637710121	0.19595637710121	-105.0432544	39.7511117	-105.0450359	39.7522206
-18266	1691	6545	0.203809181046432	0.203809181046432	-105.039903	39.7676176	-105.039903	39.7694505
-18272	6629	6645	0.186774688365716	0.186774688365716	-105.0398199	39.7767003	-105.0398253	39.77838
-8163	6669	2301	0.106319016804013	0.106319016804013	-105.0065809	39.6967302	-105.0067097	39.6957792
-14130	9280	9279	0.186364690747119	0.186364690747119	-104.9512562	39.7473041	-104.9490944	39.7475193
-14771	2209	923	0.186974313150198	0.186974313150198	-104.9816406	39.7337091	-104.9816421	39.7320276
-18247	9377	8108	0.184107753412847	0.184107753412847	-105.0374998	39.776721	-105.0375106	39.7783767
-18704	7871	4059	0.176577842625336	0.176577842625336	-105.0426986	39.7197333	-105.0426948	39.7181453
-15923	9752	9072	0.0836347230210634	0.0836347230210634	-105.0166514	39.7287142	-105.0172266	39.7293225
-18541	7538	8363	0.0639425794382817	0.0639425794382817	-105.0449269	39.7643759	-105.0444735	39.7639185
-14134	509	9280	0.0291273215905741	0.0291273215905741	-104.9514881	39.747496	-104.9512562	39.7473041
-15926	498	9102	0.0623752088587868	0.0623752088587868	-105.0153507	39.7256437	-105.0160728	39.7255648
-11651	8350	4542	0.134464503460642	0.134464503460642	-105.0236355	39.7578502	-105.0220625	39.7578568
-18291	6752	3975	0.201306126180051	0.201306126180051	-105.0275758	39.7651202	-105.029931	39.765114
-14752	5933	6903	0.0776419963986988	0.0776419963986988	-104.9781588	39.7304487	-104.9781698	39.7297505
-15930	9755	8063	0.0157417186886108	0.0157417186886108	-105.0172761	39.7312819	-105.01746	39.7312756
-8622	3936	5625	0.097083190357132	0.097083190357132	-105.0005802	39.7765663	-105.0017162	39.7765726
-14891	9021	8103	0.0999072642817978	0.0999072642817978	-105.0324149	39.7040028	-105.0324492	39.7031047
-11386	8241	8242	0.105664996309114	0.105664996309114	-104.9455738	39.7799622	-104.9443373	39.7799663
-11647	7709	8347	0.0834163322393992	0.0834163322393992	-105.019873	39.7560486	-105.0198419	39.7552988
-12254	8618	8619	0.0216515691565663	0.0216515691565663	-105.0084208	39.7577001	-105.0083242	39.7578801
-20225	8757	10713	0.181625832679021	0.181625832679021	-104.9413115	39.694755	-104.9413101	39.6963884
-11373	437	8225	0.0125774855889878	0.0125774855889878	-105.0053491	39.7612975	-105.0052234	39.7612387
-20018	6572	4453	0.146908325275574	0.146908325275574	-104.981987	39.757826	-104.980759	39.7587503
-20512	10063	10060	0.007549583111055	0.007549583111055	-105.0192332	39.7576336	-105.0193133	39.7576622
-12048	8527	8528	0.0740401240439702	0.0740401240439702	-105.0054168	39.751192	-105.0061613	39.7515322
-14785	7957	5458	0.175576789379919	0.175576789379919	-104.9842157	39.7368542	-104.9842156	39.7384332
-12271	8518	8628	0.0787132719056346	0.0787132719056346	-105.0071312	39.7555112	-105.0077112	39.7549614
-11383	8239	8240	0.0842941433278933	0.0842941433278933	-104.9502774	39.7799784	-104.949291	39.7799729
-11370	7971	7972	0.0117965527041302	0.0117965527041302	-105.0053146	39.761583	-105.0052958	39.7614779
-11414	7984	7985	0.287379755335746	0.287379755335746	-105.0218262	39.7840053	-105.025085	39.7846442
-11432	415	8254	0.452015989776023	0.452015989776023	-105.0212787	39.7837465	-105.0159925	39.7835953
-20350	10730	2968	0.0120941619304981	0.0120941619304981	-105.0250776	39.7585876	-105.0250854	39.758479
-8748	5336	6979	0.175571360985687	0.175571360985687	-105.0408719	39.7054957	-105.0408435	39.7039169
-3691	3527	3528	0.0472108481996503	0.0472108481996503	-104.956949	39.698399	-104.9563972	39.6983957
-3692	3528	2737	0.0483230367668469	0.0483230367668469	-104.9563972	39.6983957	-104.9558324	39.6983924
-3697	3532	3533	0.0559788343200402	0.0559788343200402	-104.9827863	39.6984066	-104.982132	39.6984066
-15221	3833	8055	0.052921136155694	0.052921136155694	-105.0428186	39.7485544	-105.0428529	39.7480792
-12311	8645	8476	0.144977480276504	0.144977480276504	-105.0040083	39.7506996	-105.0028542	39.7497443
-12312	8476	8646	0.198472144343311	0.198472144343311	-105.0028542	39.7497443	-105.0012593	39.7484473
-12314	8643	8559	0.0228329493898265	0.0228329493898265	-105.0079172	39.7541523	-105.0076796	39.7542461
-20367	10748	10749	0.0037547184046713	0.0037547184046713	-105.0235917	39.7589758	-105.0236241	39.7589986
-9843	7548	7549	0.124919366653633	0.124919366653633	-105.0451568	39.7282934	-105.0451467	39.7294168
-12301	4845	8524	0.0473127526043962	0.0473127526043962	-105.0049838	39.7515411	-105.0053655	39.751233
-18331	7594	6751	0.14027973854483	0.14027973854483	-105.0259281	39.764212	-105.0275693	39.7642092
-11791	8037	2687	0.147733787935878	0.147733787935878	-104.9796416	39.7541805	-104.9808835	39.7532566
-15865	8762	8763	0.0396940145175954	0.0396940145175954	-105.0451798	39.7355292	-105.0447184	39.7355684
-20529	10029	10846	0.0100359682174695	0.0100359682174695	-105.015835	39.7583097	-105.0157176	39.7583088
-17959	6241	5194	0.169083036600962	0.169083036600962	-104.9883794	39.7256429	-104.9883782	39.7241223
-18370	6889	5250	0.0518724586298984	0.0518724586298984	-105.0259388	39.7651274	-105.0259394	39.7646609
-15225	8180	5297	0.041720314716376	0.041720314716376	-105.0389047	39.7441394	-105.039323	39.7439462
-9071	2781	7147	0.103689348353689	0.103689348353689	-104.9721138	39.7669682	-104.9721123	39.7679007
-3710	3546	1524	0.0515313284334221	0.0515313284334221	-104.9751709	39.6984277	-104.9745686	39.6984311
-20305	10728	8110	0.168482747904973	0.168482747904973	-105.0445532	39.7768578	-105.0445502	39.778373
-3711	1524	3547	0.0494425170647519	0.0494425170647519	-104.9745686	39.6984311	-104.9739907	39.6984301
-14739	6538	6607	0.183986331427456	0.183986331427456	-104.976974	39.7256103	-104.9769867	39.7272649
-11372	290	437	0.0112130207438012	0.0112130207438012	-105.0053845	39.7613946	-105.0053491	39.7612975
-18381	8535	8919	0.0499954488007408	0.0499954488007408	-105.0258888	39.7711084	-105.0258833	39.771558
-12246	8615	4817	0.146110905108578	0.146110905108578	-104.9995731	39.7508881	-104.9983798	39.7518288
-11425	8251	8078	0.7456254172446	0.7456254172446	-105.0348524	39.7834646	-105.043577	39.7835803
-12247	4817	5788	0.143910603528138	0.143910603528138	-104.9983798	39.7518288	-104.9971819	39.7527381
-12818	299	8256	0.476082599329394	0.476082599329394	-105.0099714	39.7835424	-105.0155373	39.7837344
-20410	8976	9207	0.0123297683183119	0.0123297683183119	-105.0250886	39.760233	-105.0250726	39.7601228
-12263	8621	8622	0.00671006625102598	0.00671006625102598	-105.0070186	39.7566114	-105.0070785	39.7566504
-11559	8319	7714	0.15000222129108	0.15000222129108	-105.0316875	39.7580245	-105.0316842	39.7566755
-15229	8334	8335	0.02937581800825	0.02937581800825	-104.9244842	39.6961248	-104.9241409	39.696129
-18377	6069	2549	0.201785565265125	0.201785565265125	-105.039828	39.7856193	-105.0398307	39.787434
-11447	387	8258	0.356209179582772	0.356209179582772	-105.0028212	39.783461	-104.9988487	39.78249
-11812	1881	8316	0.0255940628377938	0.0255940628377938	-105.0074729	39.746365	-105.007603	39.7465723
-14781	921	2207	0.190721648601815	0.190721648601815	-104.9828787	39.7320413	-104.9828811	39.7337565
-20233	10711	10715	0.00692211182471866	0.00692211182471866	-104.9413123	39.6937735	-104.9412314	39.693774
-20363	9209	8991	0.0223079019168015	0.0223079019168015	-105.0216966	39.7585487	-105.0214364	39.7585333
-18388	8990	9001	0.0110856339057274	0.0110856339057274	-105.0252879	39.7604305	-105.0253805	39.7605003
-20651	10033	10881	0.0461798387778834	0.0461798387778834	-105.014357	39.7669687	-105.0148973	39.7669673
-13366	9052	487	0.0981014313599177	0.0981014313599177	-104.9833542	39.7800156	-104.9845022	39.7800173
-12303	8639	8640	0.0320591977276875	0.0320591977276875	-105.0081633	39.7540481	-105.0078019	39.7541251
-20243	10716	10713	0.0141769281388351	0.0141769281388351	-104.9411444	39.6963884	-104.9413101	39.6963884
-14749	4864	2214	0.160302668775638	0.160302668775638	-104.9781817	39.7351466	-104.9781559	39.7337051
-13468	309	9094	0.0506545738820493	0.0506545738820493	-105.0183133	39.7254091	-105.0189056	39.7254091
-18336	1689	7624	0.203108569942922	0.203108569942922	-105.0387013	39.7676285	-105.0387364	39.7694549
-12937	1303	1970	0.0130832107015757	0.0130832107015757	-105.0017368	39.7441763	-105.0018024	39.7442826
-20525	10839	1286	0.00844906120646156	0.00844906120646156	-105.0206127	39.7582168	-105.020542	39.7581637
-10918	8035	5970	0.0219813767800627	0.0219813767800627	-104.9781265	39.7531137	-104.9783626	39.753192
-14913	7600	2016	0.104505986927597	0.104505986927597	-104.936219	39.7208978	-104.9349971	39.720897
-20351	2968	10750	0.0147633294839236	0.0147633294839236	-105.0250854	39.758479	-105.0250798	39.7583463
-15880	8763	8762	0.0396940145175954	0.0396940145175954	-105.0447184	39.7355684	-105.0451798	39.7355292
-20353	9401	9336	0.00949287140929792	0.00949287140929792	-105.025278	39.7585714	-105.0251673	39.7585782
-12244	8613	8614	0.00356038865266788	0.00356038865266788	-104.9996308	39.7508515	-104.9995987	39.7508719
-11216	8164	8165	0.0796169077304663	0.0796169077304663	-104.9269465	39.7030424	-104.9269411	39.7037584
-14132	9279	507	0.0225847659450503	0.0225847659450503	-104.9490944	39.7475193	-104.9492017	39.7477049
-15875	8940	8978	0.0300860996423522	0.0300860996423522	-105.0405047	39.7348341	-105.0408265	39.7349435
-11429	8253	319	0.299890155674121	0.299890155674121	-105.0342653	39.7832999	-105.0307715	39.7835551
-20371	2707	10756	0.00655605333712087	0.00655605333712087	-105.0229167	39.7612913	-105.0229933	39.7612883
-14677	3794	9330	0.199283554137764	0.199283554137764	-104.9700349	39.7290815	-104.9700355	39.7272893
-18476	4295	2411	0.100910451832155	0.100910451832155	-105.0399031	39.7539235	-105.0398977	39.753016
-18478	5542	9039	0.101169435731023	0.101169435731023	-105.0399084	39.7521049	-105.0398975	39.7511951
-11770	3014	8406	0.0500338703103734	0.0500338703103734	-104.9810635	39.7524708	-104.9814866	39.7527817
-11823	8421	8424	0.377719915283211	0.377719915283211	-105.0127281	39.7431253	-105.0160769	39.7409098
-10669	7915	6847	0.0947158385157811	0.0947158385157811	-105.0275397	39.7111407	-105.0275397	39.7102889
-3731	3565	3566	0.0486546976993217	0.0486546976993217	-104.9653106	39.7544428	-104.9647415	39.7544367
-3732	3566	3567	0.109486664803565	0.109486664803565	-104.9647415	39.7544367	-104.9634611	39.75446
-3733	3567	1037	0.105564006595596	0.105564006595596	-104.9634611	39.75446	-104.9622266	39.7544367
-11897	8466	8467	0.103343928827087	0.103343928827087	-105.0020778	39.7486652	-105.0015391	39.7478332
-11947	397	8496	0.0965081758273934	0.0965081758273934	-105.0131625	39.7564763	-105.013905	39.7558225
-18380	8494	8535	0.0492964457876769	0.0492964457876769	-105.0258959	39.7706651	-105.0258888	39.7711084
-20364	8991	10755	0.00786332111355482	0.00786332111355482	-105.0214364	39.7585333	-105.0213448	39.7585398
-12162	8315	8569	0.02262255215678	0.02262255215678	-105.0053848	39.7476354	-105.00526	39.747456
-12218	8594	2290	0.0213925904868369	0.0213925904868369	-105.0035802	39.740886	-105.0033485	39.7409586
-14931	3354	2767	0.0942765011393086	0.0942765011393086	-104.9338255	39.7274243	-104.9327231	39.7274245
-18498	9212	9220	0.133514882064815	0.133514882064815	-105.0351931	39.7499892	-105.0352038	39.7511899
-20706	9190	10885	0.00984120017613085	0.00984120017613085	-105.0253671	39.7620045	-105.0253682	39.762093
-12373	8677	8678	0.0486250060422128	0.0486250060422128	-104.99064	39.7765283	-104.9912089	39.7765361
-14967	7610	7264	0.0940136459475559	0.0940136459475559	-104.9383462	39.7510533	-104.9372465	39.7510554
-15895	9441	5377	0.102059140746775	0.102059140746775	-105.0429186	39.7342294	-105.044041	39.7339173
-13974	9251	9129	0.169864606266652	0.169864606266652	-105.0147648	39.729613	-105.0154242	39.731054
-20368	10749	10733	0.00357512667889407	0.00357512667889407	-105.0236241	39.7589986	-105.0236546	39.7589766
-14674	2227	943	0.182649781226047	0.182649781226047	-104.9700793	39.733704	-104.9700547	39.7320615
-14178	3784	8864	0.153337805989006	0.153337805989006	-104.9546474	39.7291228	-104.9546471	39.7305018
-19290	10470	8767	0.117748080941626	0.117748080941626	-104.988856	39.7394681	-104.9902331	39.7394681
-12575	8759	8760	0.0168627139608601	0.0168627139608601	-104.9407346	39.6947488	-104.9405376	39.6947443
-14983	8789	8796	0.105952161931752	0.105952161931752	-104.9835757	39.7432682	-104.9823365	39.7432723
-14984	8796	8878	0.106413855851218	0.106413855851218	-104.9823365	39.7432723	-104.9810919	39.7432682
-20419	10774	3587	0.00984290685312232	0.00984290685312232	-105.0243795	39.760698	-105.0243209	39.7607742
-15867	8770	8771	0.0147638851882813	0.0147638851882813	-105.0445575	39.7355437	-105.0444126	39.7356159
-11263	8195	8196	0.0967030898556648	0.0967030898556648	-104.9363825	39.6984629	-104.9352522	39.6984625
-16192	5817	7723	0.19660431304726	0.19660431304726	-104.983413	39.6911761	-104.9834185	39.689408
-20360	8992	10754	0.00404589397436802	0.00404589397436802	-105.0232439	39.7594863	-105.0232175	39.7595165
-19297	10471	1942	0.0559273520312209	0.0559273520312209	-104.9888451	39.7389629	-104.9888238	39.7384602
-15868	8833	5588	0.0188635032964949	0.0188635032964949	-105.0441417	39.7353828	-105.0439294	39.7354289
-19299	9959	564	0.00433589917958362	0.00433589917958362	-104.9854926	39.739222	-104.9854426	39.7392155
-20814	10936	7168	0.0050166121287054	0.0050166121287054	-105.0380601	39.7621908	-105.0381187	39.7621933
-20823	10780	9337	0.0124085195369407	0.0124085195369407	-105.0250471	39.7600231	-105.0251662	39.7600869
-19301	1942	10467	0.0736734316331574	0.0736734316331574	-104.9888238	39.7384602	-104.9888355	39.7377977
-12854	4133	6696	0.093947304456844	0.093947304456844	-104.9505787	39.7305216	-104.9494801	39.7305216
-15004	6269	9466	0.0522837092305697	0.0522837092305697	-104.960998	39.7432181	-104.9603865	39.7432158
-19305	10464	10461	0.0144782338635936	0.0144782338635936	-104.9888814	39.740512	-104.9888698	39.7406419
-19307	10467	611	0.103622552493386	0.103622552493386	-104.9888355	39.7377977	-104.9888354	39.7368658
-11685	8366	1032	0.0209886592874132	0.0209886592874132	-105.0020448	39.7527599	-105.0019469	39.752933
-20820	10919	8330	0.00776069150921458	0.00776069150921458	-105.0382104	39.7621908	-105.0382057	39.7621211
-11643	8347	4658	0.0580128250256257	0.0580128250256257	-105.0198419	39.7552988	-105.0191633	39.7552936
-12924	8890	8891	0.0884309215437497	0.0884309215437497	-105.0029709	39.7443191	-105.0038584	39.7439107
-15230	8360	8248	0.0379210675749848	0.0379210675749848	-104.9248705	39.6964922	-104.9245969	39.6962239
-13013	8916	2892	0.160989403082392	0.160989403082392	-104.9907275	39.7728705	-104.9912536	39.7714803
-12051	8531	8529	0.0116601753914343	0.0116601753914343	-105.0041475	39.7504135	-105.0041786	39.7503114
-20828	9205	8443	0.0104227726118747	0.0104227726118747	-105.0253893	39.7603981	-105.0254023	39.7603049
-18615	7410	5865	0.176922387553379	0.176922387553379	-105.0355064	39.7165547	-105.0355038	39.7149636
-14852	8621	9432	0.00675320800603643	0.00675320800603643	-105.0070186	39.7566114	-105.0069697	39.7566591
-18616	5865	9447	0.157075160700523	0.157075160700523	-105.0355038	39.7149636	-105.0354966	39.713551
-18618	1314	9447	0.0196279343381406	0.0196279343381406	-105.0354933	39.7133745	-105.0354966	39.713551
-11994	8505	8048	0.149802391835517	0.149802391835517	-104.9861441	39.7573027	-104.9849005	39.7582519
-18621	2586	5181	0.176412393215512	0.176412393215512	-105.0356522	39.7229391	-105.0356433	39.7245256
-18622	5181	5649	0.1069372720504	0.1069372720504	-105.0356433	39.7245256	-105.035649	39.7254873
-19473	7476	10517	0.0101658403815209	0.0101658403815209	-104.9902755	39.708471	-104.9902782	39.7083796
-19474	10517	10518	0.00993077177126307	0.00993077177126307	-104.9902782	39.7083796	-104.9902799	39.7082903
-18480	9040	9120	0.135103567036488	0.135103567036488	-105.0398922	39.7499655	-105.0398842	39.7487505
-20833	10944	10951	0.17747662532422	0.17747662532422	-105.0301334	39.7621946	-105.0322095	39.7622183
-19475	10518	10519	0.0191608413173093	0.0191608413173093	-104.9902799	39.7082903	-104.9902831	39.708118
-19512	10537	10447	0.00647615513057594	0.00647615513057594	-104.9882735	39.7089787	-104.9883492	39.7089795
-2	2	3	0.283463280100036	0.283463280100036	-105.0158228	39.7323669	-105.0152478	39.7298563
-3	3	4	0.0333775918694363	0.0333775918694363	-105.0152478	39.7298563	-105.0151369	39.7295685
-18628	1310	9484	0.175555113641419	0.175555113641419	-105.033071	39.7133691	-105.0330762	39.7149479
-12242	8611	8612	0.0998376585619669	0.0998376585619669	-105.0016014	39.7493354	-105.0007767	39.7499711
-5	5	6	0.348594358341424	0.348594358341424	-104.9373334	39.780183	-104.941411	39.7800918
-15909	9104	9105	0.0387441124726526	0.0387441124726526	-105.0421714	39.7165106	-105.0426052	39.7164103
-15903	6134	8603	0.0260893170771595	0.0260893170771595	-105.0288059	39.7222213	-105.0285111	39.7222816
-15878	8833	8770	0.0398025148628561	0.0398025148628561	-105.0441417	39.7353828	-105.0445575	39.7355437
-13625	7013	2274	0.0942922296438968	0.0942922296438968	-104.9316269	39.729236	-104.9305243	39.7292319
-15024	4136	2663	0.0946854927112821	0.0946854927112821	-104.9505787	39.7367922	-104.9516859	39.7368054
-13651	9159	1177	0.0568269678125187	0.0568269678125187	-104.9961123	39.7031752	-104.9966621	39.703462
-6	6	7	0.250747670173169	0.250747670173169	-104.941411	39.7800918	-104.9443453	39.7800941
-20837	10949	10945	0.0947762411619158	0.0947762411619158	-105.0269444	39.7610308	-105.0279522	39.7613862
-15887	8842	9619	0.0119243513569086	0.0119243513569086	-105.0381819	39.7339575	-105.0382355	39.7340565
-19481	10511	10486	0.0687637700371023	0.0687637700371023	-104.9902675	39.7093534	-104.9910713	39.7093611
-13777	9191	292	0.0113408171424215	0.0113408171424215	-105.0041591	39.7607716	-105.0040727	39.760849
-19493	10463	10523	0.0181472136448415	0.0181472136448415	-104.9883506	39.7087649	-104.9883516	39.7086017
-13799	9195	5081	0.0314508853846434	0.0314508853846434	-104.9963084	39.7080377	-104.9962546	39.7083175
-19487	10426	10427	0.0081618196829418	0.0081618196829418	-104.9883452	39.7095935	-104.9883457	39.7095201
-18570	10325	10322	0.0277653060168724	0.0277653060168724	-105.0344788	39.7803826	-105.0341731	39.7804672
-15042	6787	4718	0.0916704601824836	0.0916704601824836	-104.9684521	39.7368249	-104.9695224	39.7368723
-15043	4718	9414	0.0490846601218478	0.0490846601218478	-104.9695224	39.7368723	-104.9700963	39.736882
-19494	10523	7469	0.0159566577035026	0.0159566577035026	-104.9883516	39.7086017	-104.9883525	39.7084582
-13814	4934	9200	0.0155640797101011	0.0155640797101011	-104.9993415	39.7423284	-104.9994716	39.7422305
-13008	8914	2891	0.0117402105605065	0.0117402105605065	-104.9904906	39.7730255	-104.9905111	39.7729211
-17570	10143	10144	0.0307556488479174	0.0307556488479174	-105.0097169	39.7209239	-105.0093573	39.7209238
-20841	10952	10940	0.18759449218266	0.18759449218266	-105.0323215	39.7622208	-105.0345162	39.7622208
-15726	7317	9449	0.0375532628709029	0.0375532628709029	-104.9558194	39.7180363	-104.9558247	39.7176986
-15904	8603	9697	0.00690416936559141	0.00690416936559141	-105.0285111	39.7222816	-105.0284331	39.7222976
-13877	4478	2804	0.135897648680331	0.135897648680331	-104.9451778	39.765712	-104.9452104	39.7669339
-18633	4044	4045	0.00275409212275412	0.00275409212275412	-105.0330924	39.7181593	-105.0331246	39.7181593
-15057	9477	6733	0.054468335249091	0.054468335249091	-104.9775705	39.7368798	-104.9782075	39.7368798
-15058	6733	9313	0.0446744870999848	0.0446744870999848	-104.9782075	39.7368798	-104.9787299	39.7368736
-13910	9228	3317	0.0850892170141282	0.0850892170141282	-104.9592628	39.7812194	-104.9602584	39.7812326
-12689	2057	8805	0.133235184271089	0.133235184271089	-104.9534081	39.7194172	-104.9534009	39.718219
-18656	6223	7657	0.27620827404325	0.27620827404325	-105.0445138	39.725796	-105.0445162	39.72828
-15858	9732	9739	0.0147062242308904	0.0147062242308904	-105.0415588	39.7301641	-105.0415695	39.7300321
-20843	10954	10751	0.181296524715589	0.181296524715589	-105.0254122	39.760199	-105.0253759	39.7585688
-16082	366	255	0.573997033805984	0.573997033805984	-104.9601224	39.7799975	-104.9534054	39.7800114
-16084	9817	9818	0.0154245817929875	0.0154245817929875	-104.9497096	39.7811391	-104.9498899	39.7811457
-16127	4555	9122	0.0381695434595099	0.0381695434595099	-105.0221186	39.7238843	-105.0222205	39.7242185
-14675	943	5941	0.178224321703034	0.178224321703034	-104.9700547	39.7320615	-104.9700474	39.7304587
-15285	8799	3187	0.00972670306222712	0.00972670306222712	-104.9464054	39.7113917	-104.946376	39.7114762
-15873	8879	8889	0.108518344615814	0.108518344615814	-105.0382757	39.7341411	-105.0393045	39.7347125
-15405	9585	9582	0.0323190665796029	0.0323190665796029	-105.0108295	39.7535903	-105.0104647	39.7536666
-16246	9859	7743	0.402195232762633	0.402195232762633	-104.9529627	39.685713	-104.952944	39.68933
-13026	1537	4265	0.200987668621859	0.200987668621859	-104.9869861	39.7765493	-104.9869736	39.7783568
-3749	3578	3579	0.097584814173116	0.097584814173116	-104.9452895	39.7544277	-104.944148	39.7544343
-3750	3579	848	0.0994883860112991	0.0994883860112991	-104.944148	39.7544343	-104.9429842	39.7544341
-3752	3580	3581	0.0190511917089631	0.0190511917089631	-104.9407092	39.754494	-104.9405163	39.7545798
-19488	10427	4703	0.0206936304458077	0.0206936304458077	-104.9883457	39.7095201	-104.9883469	39.709334
-20829	8443	10954	0.0118059106132393	0.0118059106132393	-105.0254023	39.7603049	-105.0254122	39.760199
-16351	7009	2285	0.0978474396198024	0.0978474396198024	-104.9317039	39.7618388	-104.9305592	39.7618327
-16382	9879	9771	0.00992783408407401	0.00992783408407401	-104.9716243	39.7032379	-104.9717383	39.7032546
-16432	9894	9895	0.0235353492080929	0.0235353492080929	-104.9716111	39.6985449	-104.9718554	39.6986422
-14329	9328	602	0.0664699646577648	0.0664699646577648	-104.9959868	39.7692435	-104.9952229	39.7691313
-20848	10950	10953	0.0184888911494772	0.0184888911494772	-105.0289678	39.7620075	-105.0291765	39.7620512
-13445	9078	9079	0.200451693111106	0.200451693111106	-104.9941364	39.7021826	-104.9930943	39.7037972
-16391	3033	9847	0.0236566168850551	0.0236566168850551	-104.9700513	39.702674	-104.9699755	39.7028786
-15437	9602	9603	0.109740104543279	0.109740104543279	-105.0014283	39.740268	-105.0027104	39.7402226
-18475	9005	4295	0.117455212214086	0.117455212214086	-105.0399025	39.7549798	-105.0399031	39.7539235
-19609	10585	10503	0.00693839845805758	0.00693839845805758	-104.9910787	39.7086267	-104.9911598	39.7086277
-16644	564	565	0.0167681949380125	0.0167681949380125	-104.9854426	39.7392155	-104.9854426	39.7390647
-18641	5875	7416	0.178910174745805	0.178910174745805	-105.0450642	39.7149556	-105.0450953	39.7165644
-16758	7565	10010	0.0537198584701325	0.0537198584701325	-104.9506273	39.6992608	-104.950646	39.6997437
-13557	9032	9033	0.185435393968361	0.185435393968361	-105.0131311	39.7236048	-105.0111765	39.722883
-19028	8995	7690	0.0430021373921601	0.0430021373921601	-104.9472908	39.7847471	-104.9475732	39.784427
-17062	10068	2247	0.0643618782275657	0.0643618782275657	-104.9616428	39.7328861	-104.9616491	39.7334649
-16833	593	9915	0.00807834974542274	0.00807834974542274	-104.9689126	39.70386	-104.9689488	39.7037929
-18614	4049	7410	0.176200842798068	0.176200842798068	-105.0355145	39.7181393	-105.0355064	39.7165547
-16902	74	7306	0.205595181095446	0.205595181095446	-104.9657864	39.7002174	-104.9657546	39.7020662
-17068	10069	675	0.181147813198563	0.181147813198563	-104.9616202	39.7399794	-104.961623	39.7416085
-17009	4847	10051	0.0109841519151342	0.0109841519151342	-105.0034718	39.7526101	-105.003564	39.7526789
-13581	9133	9134	0.0795179133195768	0.0795179133195768	-104.9958777	39.7048581	-104.9951647	39.7043993
-17207	9891	234	0.00951110757861507	0.00951110757861507	-104.9688482	39.696672	-104.9688514	39.6965865
-19644	10601	10602	0.00459389199037625	0.00459389199037625	-104.9879279	39.7066512	-104.9878742	39.7066509
-14887	7456	5693	0.103533596199028	0.103533596199028	-105.0324406	39.7076676	-105.0324406	39.7067365
-15073	9480	8706	0.0156808972883418	0.0156808972883418	-104.9406528	39.7656775	-104.9404758	39.7656404
-18617	9447	1314	0.0196279343381406	0.0196279343381406	-105.0354966	39.713551	-105.0354933	39.7133745
-19477	10520	10521	0.0112440070511006	0.0112440070511006	-104.9902917	39.7076531	-104.9902943	39.707552
-19479	1872	10522	0.0183337010143588	0.0183337010143588	-104.9900015	39.7093504	-104.9902158	39.7093529
-18629	9484	5862	0.00360275623818702	0.00360275623818702	-105.0330762	39.7149479	-105.0330764	39.7149803
-17406	3210	6122	0.199774981063921	0.199774981063921	-104.9645976	39.7110977	-104.9645867	39.7093011
-15450	9609	9610	0.118608570416781	0.118608570416781	-105.0003045	39.7431574	-105.000479	39.7442156
-14988	9309	9464	0.101172548296122	0.101172548296122	-104.9787417	39.7432641	-104.9775584	39.7432677
-15965	1443	7623	0.202446963416806	0.202446963416806	-105.0038795	39.7112064	-105.0062462	39.7112115
-13793	4819	8514	0.148483674564771	0.148483674564771	-105.0080831	39.7592475	-105.0068857	39.7602149
-3766	2339	3595	0.17591583054365	0.17591583054365	-104.9293022	39.7193963	-104.929286	39.7209783
-3767	3595	3596	0.243702533330372	0.243702533330372	-104.929286	39.7209783	-104.9293972	39.7231683
-15851	5596	9735	0.0497175089074512	0.0497175089074512	-105.0438933	39.7301146	-105.0444693	39.7300539
-15124	6515	226	0.0653425651240956	0.0653425651240956	-104.9407009	39.7803199	-104.940692	39.7797323
-15449	9608	9609	0.0645563810419252	0.0645563810419252	-104.9999385	39.7426496	-105.0003045	39.7431574
-13914	4840	9230	0.275162192340763	0.275162192340763	-104.9965817	39.7075224	-104.9961257	39.7050728
-13922	9137	9233	0.0899935621999505	0.0899935621999505	-104.9868714	39.7007074	-104.9861692	39.7001048
-3788	1148	1821	0.103455086525091	0.103455086525091	-104.9293749	39.7637905	-104.9293577	39.7647208
-18632	7408	4044	0.178025429971464	0.178025429971464	-105.0330817	39.7165583	-105.0330924	39.7181593
-15247	9542	8177	0.0166658349694615	0.0166658349694615	-104.936117	39.7051637	-104.9362135	39.7050335
-15460	9613	9614	0.039786363249444	0.039786363249444	-105.0004503	39.7442368	-105.0001215	39.74449
-15461	8882	9615	0.0277165465497567	0.0277165465497567	-105.0018196	39.7432597	-105.0015275	39.7433678
-15546	9646	9647	0.0122997635777285	0.0122997635777285	-104.9868344	39.726681	-104.98691	39.7265869
-15889	8978	1101	0.0278428503732722	0.0278428503732722	-105.0408265	39.7349435	-105.040518	39.7350236
-236	30	31	0.0623462807475453	0.0623462807475453	-104.9707346	39.6882416	-104.9701337	39.6879245
-239	246	247	0.10870569104286	0.10870569104286	-104.9683485	39.6870395	-104.9672584	39.6865375
-19602	10483	10583	0.0688347644552014	0.0688347644552014	-104.9902592	39.7100937	-104.9910639	39.7100946
-19497	7457	10525	0.0182919034833847	0.0182919034833847	-104.9883639	39.7075324	-104.9883652	39.7073679
-15292	9561	9562	0.0285639174620334	0.0285639174620334	-104.941269	39.7069549	-104.9409364	39.7069322
-16011	9781	9782	0.0666625832869129	0.0666625832869129	-104.9994018	39.6890498	-104.9992186	39.6896325
-204	216	217	0.0495486567174314	0.0495486567174314	-105.0105654	39.7229262	-105.0109346	39.7232696
-16105	9825	9826	0.769429574289864	0.769429574289864	-104.9535187	39.7801156	-104.9625227	39.7801333
-19504	10531	10532	0.00490376342058079	0.00490376342058079	-104.9883756	39.7060143	-104.9883759	39.7059702
-19505	10532	10533	0.0113536336982688	0.0113536336982688	-104.9883759	39.7059702	-104.9883745	39.7058681
-15983	4420	7372	0.10794760335784	0.10794760335784	-105.0299687	39.7111671	-105.0312304	39.7111869
-16336	6683	8026	0.0934572989494279	0.0934572989494279	-104.9499154	39.7618255	-104.9488251	39.7617626
-15146	8245	9501	0.259647287125597	0.259647287125597	-104.9495723	39.7819108	-104.9477699	39.7837907
-16378	2678	4127	0.105747053096561	0.105747053096561	-104.9524232	39.761844	-104.9511861	39.7618358
-15168	9509	3381	0.0515085102071127	0.0515085102071127	-105.0340019	39.7403161	-105.0346043	39.7403194
-14670	9413	5473	0.178785252044424	0.178785252044424	-104.9701307	39.740015	-104.9701135	39.7384072
-15438	9603	2287	0.0101078833454114	0.0101078833454114	-105.0027104	39.7402226	-105.0028286	39.7402211
-16618	7974	3673	0.0581937370992888	0.0581937370992888	-104.9775516	39.7469781	-104.9775423	39.7475014
-16393	9876	3281	0.0515999951055545	0.0515999951055545	-104.9705085	39.7029675	-104.9710667	39.7027917
-11613	742	743	0.188831137780044	0.188831137780044	-105.0322639	39.7634453	-105.0300547	39.7634496
-16792	6964	10013	0.15953431348719	0.15953431348719	-105.0105704	39.7464447	-105.0114923	39.7476921
-16830	9911	10017	0.00322492509560211	0.00322492509560211	-104.972319	39.7074031	-104.9722814	39.707401
-17016	10055	10056	0.150978646033743	0.150978646033743	-105.0169757	39.7532749	-105.0167598	39.7546225
-17201	10074	6392	0.100421160552702	0.100421160552702	-105.0207767	39.7466992	-105.0207714	39.7476023
-19702	10621	10622	0.0560876276790842	0.0560876276790842	-105.0051625	39.7337963	-105.0045066	39.7337938
-17391	10095	8785	0.114852910416621	0.114852910416621	-104.9842414	39.72728	-104.9836046	39.7263706
-18648	4053	10111	0.195636353938149	0.195636353938149	-105.0379043	39.7181459	-105.0379043	39.7199053
-17545	8264	8929	0.192238762103777	0.192238762103777	-104.9897645	39.7839357	-104.9903693	39.7822705
-19596	10507	10581	0.0688892384795374	0.0688892384795374	-104.9902528	39.7106611	-104.9910581	39.7106676
-18652	8072	7653	0.262512305989993	0.262512305989993	-105.040042	39.7306132	-105.0400098	39.7282525
-18119	4085	6030	0.181292795599691	0.181292795599691	-105.0106908	39.7838273	-105.0106854	39.7854577
-17647	8242	223	0.0953499590487046	0.0953499590487046	-104.9443373	39.7799663	-104.9432215	39.7799643
-17960	5194	10233	0.0515871143302905	0.0515871143302905	-104.9883782	39.7241223	-104.9883637	39.7236585
-17964	10236	10232	0.0350820368831285	0.0350820368831285	-104.9882388	39.7255396	-104.9882382	39.7252241
-17785	8986	8497	0.0646311177616063	0.0646311177616063	-105.0131588	39.7555744	-105.0139116	39.7556283
-17753	10173	8485	0.0489434224402369	0.0489434224402369	-104.9947299	39.745901	-104.995128	39.7455847
-11535	1543	1544	0.137939265537406	0.137939265537406	-105.0270328	39.7572752	-105.0270414	39.7560347
-17819	8676	10186	0.0370735665978641	0.0370735665978641	-105.000985	39.7632181	-105.0007327	39.7634893
-17777	6508	6993	0.160336610713707	0.160336610713707	-104.9298124	39.7801232	-104.9316377	39.7804571
-3801	3083	3195	0.200442064419022	0.200442064419022	-104.9803943	39.7129167	-104.9803836	39.7111141
-3802	3195	3622	0.204398520601987	0.204398520601987	-104.9803836	39.7111141	-104.980383	39.7092759
-3803	3622	1902	0.199020966616341	0.199020966616341	-104.980383	39.7092759	-104.9804345	39.7074865
-3804	1902	3624	0.19721596773449	0.19721596773449	-104.9804345	39.7074865	-104.9804286	39.7057129
-17851	10193	10194	0.0260169590696429	0.0260169590696429	-104.9775879	39.7757765	-104.9773559	39.775625
-12958	1630	1631	0.127437048321071	0.127437048321071	-105.0040598	39.7420982	-105.0033016	39.7411115
-18661	10206	7647	0.17872352996795	0.17872352996795	-105.0345139	39.726102	-105.0345838	39.7277084
-19942	10671	4953	0.0511372085610231	0.0511372085610231	-104.9957933	39.726791	-104.9951981	39.7268351
-12964	1770	1771	0.0893785434926153	0.0893785434926153	-105.0062914	39.746863	-105.0057764	39.7461635
-18602	7656	6222	0.275287629645573	0.275287629645573	-105.0432633	39.7282706	-105.04325	39.7257949
-18232	2550	6070	0.201831098039417	0.201831098039417	-105.0409813	39.787434	-105.0409894	39.7856189
-18761	10339	10340	0.0412859123428405	0.0412859123428405	-105.0047672	39.7397925	-105.0043791	39.7395716
-4425	950	4134	0.165887036500793	0.165887036500793	-104.9505701	39.7320992	-104.950553	39.733591
-4426	4134	4135	0.171020798065652	0.171020798065652	-104.950553	39.733591	-104.9505787	39.7351289
-4427	4135	4136	0.184950521487565	0.184950521487565	-104.9505787	39.7351289	-104.9505787	39.7367922
-18817	10355	8431	0.088262856016995	0.088262856016995	-105.015729	39.7431732	-105.0163799	39.7437893
-4447	4149	4150	0.111495530172709	0.111495530172709	-104.9607278	39.7209872	-104.9594242	39.720981
-4448	4150	4151	0.101644653962629	0.101644653962629	-104.9594242	39.720981	-104.9582358	39.7209729
-19603	10583	10496	0.00675773327585877	0.00675773327585877	-104.9910639	39.7100946	-104.9911429	39.7100947
-19855	10661	10662	0.203042057763788	0.203042057763788	-105.044594	39.7384771	-105.0445966	39.7366511
-20643	10879	10877	0.0314570447479651	0.0314570447479651	-105.0134384	39.762482	-105.0134384	39.7627649
-19158	8423	8388	0.0601966609853944	0.0601966609853944	-105.013871	39.7414246	-105.0138882	39.7419658
-19615	10587	10502	0.00686995556939521	0.00686995556939521	-104.9910769	39.7088041	-104.9911572	39.7088051
-12339	8656	2501	0.0156699758852849	0.0156699758852849	-105.0073545	39.7547272	-105.0073403	39.7545867
-19328	9895	10473	0.0277673159561869	0.0277673159561869	-104.9718554	39.6986422	-104.971721	39.6984149
-19490	10441	10447	0.0184697170100914	0.0184697170100914	-104.9883481	39.7091456	-104.9883492	39.7089795
-19492	10448	10463	0.00504831489789659	0.00504831489789659	-104.9883503	39.7088103	-104.9883506	39.7087649
-19428	10489	7287	0.156514421452779	0.156514421452779	-104.9833961	39.7033795	-104.9833604	39.7019722
-19286	563	9967	0.0537140867907163	0.0537140867907163	-104.9854438	39.7392378	-104.986072	39.7392385
-19621	10589	10590	0.0274773310120508	0.0274773310120508	-104.988288	39.70828	-104.9879668	39.708282
-19441	10492	10493	0.0201930874558464	0.0201930874558464	-104.991144	39.7108499	-104.9911447	39.7106683
-19789	9476	4873	0.191586478139089	0.191586478139089	-104.9724291	39.7368742	-104.9724077	39.7351513
-19805	2619	10411	0.177645225629424	0.177645225629424	-104.9969572	39.7225317	-104.9969604	39.7209341
-18409	10287	10288	0.0734556316276251	0.0734556316276251	-105.0292196	39.7613906	-105.0292173	39.7620512
-20191	462	10707	0.132640175005266	0.132640175005266	-104.9880253	39.7800584	-104.9886248	39.7811587
-14823	3606	9335	0.071748078170483	0.071748078170483	-105.0243187	39.7548283	-105.025158	39.7548266
-14824	9335	9402	0.00997675672475066	0.00997675672475066	-105.025158	39.7548266	-105.0252747	39.7548256
-14825	9402	8301	0.0653806855821323	0.0653806855821323	-105.0252747	39.7548256	-105.0260395	39.7548296
-14830	4022	8322	0.0483334251113916	0.0483334251113916	-105.0299425	39.7548206	-105.0305079	39.754821
-14832	5668	7026	0.0386007852757077	0.0386007852757077	-105.0310864	39.7548296	-105.0315379	39.7548347
-4468	4163	4164	0.0480674059146442	0.0480674059146442	-104.975216	39.7201302	-104.974654	39.7201321
-4469	4164	991	0.0502312521862823	0.0502312521862823	-104.974654	39.7201321	-104.9740667	39.720134
-14857	8907	9435	0.0508107102861791	0.0508107102861791	-105.0079847	39.7554777	-105.0075169	39.7557596
-14859	9436	9437	0.0520105887104481	0.0520105887104481	-105.0090881	39.7546132	-105.0094073	39.7550114
-15729	9448	9449	0.154385795199696	0.154385795199696	-104.9554224	39.7163451	-104.9558247	39.7176986
-18619	9447	9452	0.260663192513491	0.260663192513491	-105.0354966	39.713551	-105.0354984	39.7112068
-14936	5495	8700	0.014007087915999	0.014007087915999	-104.9407458	39.7383041	-104.9405826	39.7382932
-20590	2705	10795	0.0154885940353102	0.0154885940353102	-105.022918	39.7610959	-105.0227368	39.7610963
-14972	2754	7005	0.0961416158900631	0.0961416158900631	-104.9328183	39.7510492	-104.931694	39.751069
-15045	5118	4946	0.0490898990370342	0.0490898990370342	-104.9706897	39.7368921	-104.9712638	39.7368921
-15046	4946	7151	0.0490351349560296	0.0490351349560296	-104.9712638	39.7368921	-104.9718371	39.7368817
-15963	6397	4362	0.0791794536243071	0.0791794536243071	-105.0006291	39.7111959	-105.0015545	39.7112124
-15989	9452	4506	0.0512507321563124	0.0512507321563124	-105.0354984	39.7112068	-105.036097	39.7112265
-16056	308	4648	0.208884022844132	0.208884022844132	-105.0162105	39.7255543	-105.0186498	39.72565
-15158	9504	7749	0.203686953618576	0.203686953618576	-104.9383033	39.6874943	-104.9383055	39.6893261
-16076	8934	9417	0.0908088237702457	0.0908088237702457	-104.9901787	39.7746982	-104.9903058	39.7738874
-16106	9826	214	0.019707054216564	0.019707054216564	-104.9625227	39.7801333	-104.9627533	39.7801312
-19536	10547	10551	0.00289118198627037	0.00289118198627037	-104.9890392	39.7095279	-104.9890395	39.7095019
-16257	8751	9267	0.200818549492747	0.200818549492747	-104.9552399	39.6947809	-104.9552346	39.6965869
-16332	5124	7146	0.105923351259383	0.105923351259383	-104.9708846	39.7620022	-104.9721238	39.7620063
-3817	3633	3634	0.395318196729382	0.395318196729382	-104.9408419	39.7060696	-104.9444999	39.7082421
-16359	2326	5997	0.152345269926906	0.152345269926906	-104.9240294	39.7620162	-104.9258117	39.7620121
-5101	4522	4624	0.135948680255943	0.135948680255943	-105.0189635	39.7632145	-105.0189554	39.7644371
-18688	2602	1859	0.181461056809498	0.181461056809498	-105.0415146	39.7229572	-105.0415045	39.7213253
-16455	9910	8957	0.00642990572974513	0.00642990572974513	-104.9724845	39.7074076	-104.9724094	39.7074052
-16456	8957	9911	0.00773671564019088	0.00773671564019088	-104.9724094	39.7074052	-104.972319	39.7074031
-16715	132	1701	0.201952446468105	0.201952446468105	-104.9874659	39.6930068	-104.9875011	39.6911908
-17236	31	134	0.108163538194537	0.108163538194537	-104.9701337	39.6879245	-104.969078	39.6873895
-17237	134	246	0.0735610173824186	0.0735610173824186	-104.969078	39.6873895	-104.9683485	39.6870395
-17521	3940	6651	0.0163911525787958	0.0163911525787958	-105.000152	39.7400197	-104.9999603	39.7400202
-18097	10256	2169	0.0491222602233141	0.0491222602233141	-105.0141119	39.7874307	-105.0146868	39.7874303
-18207	8329	7847	0.200166859157176	0.200166859157176	-105.0363384	39.7621278	-105.036368	39.7603278
-18394	5586	2554	0.157693803770027	0.157693803770027	-105.0439435	39.7860953	-105.0433255	39.7874316
-18972	7756	3621	0.0947044796448553	0.0947044796448553	-104.9814659	39.7146886	-104.9803587	39.7146886
-19237	10458	10457	0.00406582159548868	0.00406582159548868	-104.9913293	39.7430187	-104.991294	39.7429942
-19229	10453	10454	0.0676096530689986	0.0676096530689986	-104.9908874	39.7414826	-104.9914445	39.7410511
-3858	3667	3668	0.0415319443079903	0.0415319443079903	-104.9746946	39.7474748	-104.9751801	39.7474876
-3859	3668	3669	0.0482985746708946	0.0482985746708946	-104.9751801	39.7474876	-104.9757447	39.7475025
-19322	2203	916	0.200210598103272	0.200210598103272	-104.9873753	39.7338548	-104.9874133	39.7320545
-15203	7160	9528	0.0514241954874698	0.0514241954874698	-105.0381214	39.7499794	-105.0387229	39.7499763
-19690	10616	10397	0.0495068144600769	0.0495068144600769	-105.0112484	39.7498792	-105.011825	39.749838
-19692	10617	10398	0.0503641661598134	0.0503641661598134	-105.0116614	39.749343	-105.0118932	39.7497594
-19879	5198	10672	0.124230342536198	0.124230342536198	-104.9957805	39.7241162	-104.9957912	39.722999
-19967	10686	9720	0.110372440140764	0.110372440140764	-105.0340046	39.7384634	-105.0334112	39.7375819
-19969	9505	1931	0.205435822074821	0.205435822074821	-105.0305094	39.7403332	-105.030496	39.7384857
-19971	9711	1933	0.17400772229687	0.17400772229687	-105.0322666	39.7399826	-105.0316836	39.7384833
-19972	1933	10306	0.208946577187585	0.208946577187585	-105.0316836	39.7384833	-105.0316869	39.7366042
-3875	3685	3686	0.109844105363612	0.109844105363612	-104.9647396	39.7469477	-104.9634548	39.7469475
-17510	10120	10119	0.158859506306984	0.158859506306984	-105.0136579	39.737681	-105.0129247	39.7389937
-676	669	670	0.102292085856109	0.102292085856109	-104.9684201	39.7416394	-104.9672238	39.7416291
-3893	3696	3697	0.200080946502272	0.200080946502272	-104.961742	39.6947762	-104.9617212	39.6929769
-3894	3697	3698	0.204567969900071	0.204567969900071	-104.9617212	39.6929769	-104.9617334	39.6911372
-3896	3699	3700	0.197370997762066	0.197370997762066	-104.9617151	39.6892951	-104.9617155	39.6875201
-20255	5749	10704	0.00800649085379587	0.00800649085379587	-105.0445791	39.7729494	-105.0445781	39.7730214
-20320	10739	10740	0.00883881362478868	0.00883881362478868	-105.0234882	39.7589777	-105.0235185	39.7589017
-15207	1113	9529	0.0508930389416975	0.0508930389416975	-105.0404745	39.7499577	-105.0410698	39.7499582
-15251	9544	9536	0.0327374869648338	0.0327374869648338	-104.9360582	39.7058553	-104.9358729	39.7061129
-15379	8806	2642	0.105298522418053	0.105298522418053	-104.953405	39.7180338	-104.9521739	39.7180386
-18635	7865	1846	0.175356787311383	0.175356787311383	-105.0331005	39.7197556	-105.0330898	39.7213326
-15485	9612	9616	0.0684703360070514	0.0684703360070514	-105.0005861	39.7432358	-105.0011333	39.7436854
-15516	9635	3736	0.0550573183727317	0.0550573183727317	-105.0021668	39.7384727	-105.0028107	39.7384712
-19480	10522	10511	0.00442285695753415	0.00442285695753415	-104.9902158	39.7093529	-104.9902675	39.7093534
-15574	9660	9464	0.175338544663329	0.175338544663329	-104.9775409	39.7416909	-104.9775584	39.7432677
-15598	7585	2003	0.0946559616738872	0.0946559616738872	-104.9360971	39.758301	-104.9349898	39.7583076
-15618	9679	9680	0.101799223111765	0.101799223111765	-104.918758	39.7583757	-104.9175671	39.7583757
-15640	9666	9667	0.00676039634627663	0.00676039634627663	-104.9412242	39.7582683	-104.941147	39.7582815
-15683	8023	7680	0.104281288426574	0.104281288426574	-104.9485858	39.7178178	-104.9473666	39.7178126
-15704	7666	2329	0.100028756753634	0.100028756753634	-104.9245961	39.7178332	-104.9234266	39.7178332
-15755	3356	2760	0.0982705119459115	0.0982705119459115	-104.9339641	39.7162382	-104.9328153	39.7162508
-1110	1126	1127	0.154576986104079	0.154576986104079	-105.0405383	39.7639496	-105.0404877	39.7653392
-2347	2338	2265	0.095819812257735	0.095819812257735	-104.9316115	39.7193956	-104.9304912	39.7194002
-12348	8664	8665	0.0099818469883938	0.0099818469883938	-105.0123703	39.7528644	-105.0124819	39.7528908
-20799	10928	6772	0.00617692305613739	0.00617692305613739	-105.0267992	39.7609759	-105.0268634	39.7610014
-1176	1191	1192	0.0992884317332444	0.0992884317332444	-104.9578631	39.7271192	-104.9567021	39.7271202
-20800	6772	10949	0.00765667567444528	0.00765667567444528	-105.0268634	39.7610014	-105.0269444	39.7610308
-441	439	440	0.131394781189403	0.131394781189403	-104.9691656	39.702165	-104.969326	39.7033402
-2798	2750	2752	0.210544806502819	0.210544806502819	-104.9326406	39.738234	-104.9326896	39.7401271
-20666	10888	10889	0.0790962373353106	0.0790962373353106	-105.0396012	39.7648471	-105.0403834	39.764467
-19518	6854	10540	0.00704975834948009	0.00704975834948009	-104.9885677	39.7102439	-104.9885677	39.7101805
-17074	10070	7842	0.137917824166884	0.137917824166884	-104.9615992	39.7507111	-104.9616094	39.7519514
-320	63	64	0.0374489603047296	0.0374489603047296	-105.0203119	39.7717265	-105.01999	39.771498
-62	68	69	0.0422209546479027	0.0422209546479027	-104.9680761	39.7002293	-104.9675826	39.7002312
-12003	5507	7080	0.146738996592278	0.146738996592278	-104.9821628	39.7616959	-104.9809567	39.762635
-109	116	117	0.143188450690636	0.143188450690636	-105.023457	39.730286	-105.0251312	39.7303064
-18456	10296	7020	0.00773615182989558	0.00773615182989558	-105.0316008	39.7464538	-105.0315108	39.746461
-134	142	143	0.102085903671524	0.102085903671524	-104.9980358	39.6930742	-104.9992288	39.6930874
-18414	7445	8376	0.0994737732965907	0.0994737732965907	-105.0369668	39.7543695	-105.0358032	39.7543633
-153	162	163	0.0752431334530451	0.0752431334530451	-105.0166181	39.6931468	-105.0174975	39.6931459
-18417	10289	8332	0.15046170994065	0.15046170994065	-105.0398915	39.7607667	-105.0398789	39.7621198
-323	206	207	0.0117249781899754	0.0117249781899754	-104.9566644	39.7445134	-104.9565607	39.7445824
-222	233	234	0.0133914034588106	0.0133914034588106	-104.968695	39.6965912	-104.9688514	39.6965865
-269	279	280	0.111130387977042	0.111130387977042	-104.987002	39.7789431	-104.9858487	39.7794049
-304	312	313	0.0760674046765663	0.0760674046765663	-104.971535	39.780386	-104.970735	39.780686
-378	380	381	0.042583144928967	0.042583144928967	-105.03278	39.74748	-105.0323033	39.747591
-334	335	336	0.0838277836552233	0.0838277836552233	-104.9400719	39.7824771	-104.9390909	39.7824749
-18422	6881	8361	0.201914074104345	0.201914074104345	-105.0410645	39.7657635	-105.0410832	39.7639477
-367	368	369	0.0822344709508681	0.0822344709508681	-104.9589875	39.7795994	-104.9593952	39.7789295
-541	535	536	0.186883681615866	0.186883681615866	-105.0155504	39.7561618	-105.0151149	39.7545148
-11516	528	591	0.200155681159152	0.200155681159152	-105.0322618	39.7598749	-105.0346033	39.7598894
-15254	9538	9539	0.0173547475022314	0.0173547475022314	-104.9352077	39.7057044	-104.9351084	39.7058405
-659	649	650	0.011039314445329	0.011039314445329	-104.9873881	39.7417114	-104.9872612	39.7417297
-11464	701	5	0.465980985000995	0.465980985000995	-104.9318804	39.7801737	-104.9373334	39.780183
-16702	9996	9629	0.03889405892702	0.03889405892702	-104.9999838	39.7464987	-105.0003179	39.7462613
-12966	1824	1825	0.0102076592436785	0.0102076592436785	-105.0068707	39.7455494	-105.0069351	39.7456267
-18427	7848	2983	0.204332357907837	0.204332357907837	-105.0387174	39.7603215	-105.038723	39.7584839
-16420	3283	3331	0.0144926793767328	0.0144926793767328	-104.9691419	39.7020399	-104.9693109	39.7020309
-794	799	800	0.10010177351148	0.10010177351148	-104.9293286	39.7528556	-104.9281577	39.7528638
-11695	896	1005	0.0164907467236235	0.0164907467236235	-105.0012741	39.7533936	-105.0014074	39.7532864
-18433	6878	8357	0.204690873329425	0.204690873329425	-105.0387418	39.7657978	-105.0387283	39.763957
-863	876	877	0.10476487069157	0.10476487069157	-104.968419	39.7645054	-104.9671933	39.7645034
-883	898	899	0.104753841122432	0.104753841122432	-104.9450302	39.764473	-104.9438047	39.7644833
-884	899	864	0.0807039229442354	0.0807039229442354	-104.9438047	39.7644833	-104.9428605	39.7644833
-927	941	942	0.0494985310502231	0.0494985310502231	-104.9712147	39.7320508	-104.9706365	39.7320717
-16705	9999	9629	0.0289087737479417	0.0289087737479417	-105.0005573	39.7460777	-105.0003179	39.7462613
-17026	3489	3490	0.0719959563000755	0.0719959563000755	-105.0251569	39.7553551	-105.0243147	39.7553581
-18682	3408	3539	0.176214327588196	0.176214327588196	-105.0367215	39.7181427	-105.0367081	39.716558
-18442	8299	10294	0.012207810422513	0.012207810422513	-105.0260753	39.7595725	-105.026081	39.7596822
-1076	1092	1093	0.17117547982738	0.17117547982738	-105.0405917	39.7314737	-105.040582	39.7330131
-15790	2105	2106	0.167962867985551	0.167962867985551	-105.0249129	39.7371906	-105.0232102	39.7379438
-1100	1116	1117	0.101443140583253	0.101443140583253	-105.0404808	39.7530145	-105.0404813	39.7539268
-1122	1138	1139	0.131688298285365	0.131688298285365	-105.040403	39.7820828	-105.0404053	39.7832671
-2171	2170	2171	0.00661609813602913	0.00661609813602913	-105.0146867	39.7884025	-105.0146867	39.788462
-19434	10489	10109	0.051734430819511	0.051734430819511	-104.9833961	39.7033795	-104.9827914	39.7033844
-16849	9890	3358	0.0252874452199061	0.0252874452199061	-104.9695728	39.7019278	-104.9695281	39.7021526
-16171	7732	6631	0.170999473020786	0.170999473020786	-104.9763378	39.6893855	-104.9763643	39.6909232
-1145	1163	1164	0.10638131618854	0.10638131618854	-104.9609775	39.7632277	-104.959733	39.7632393
-2233	2234	2235	0.107325767093377	0.107325767093377	-104.937292	39.7328682	-104.936037	39.7328568
-16734	10004	5726	0.044310348629928	0.044310348629928	-104.9539532	39.7012069	-104.9536931	39.7008623
-19574	7473	10571	0.0063271995041771	0.0063271995041771	-104.9892894	39.708464	-104.98929	39.7084071
-1286	1311	1312	0.0523154141859772	0.0523154141859772	-105.0336852	39.7133658	-105.0342968	39.7133689
-18191	5793	6053	0.200818759010255	0.200818759010255	-105.0281574	39.7874261	-105.0281511	39.7856201
-12198	2296	2417	0.0275462737865406	0.0275462737865406	-105.0235583	39.7404384	-105.0238493	39.7405447
-1335	1360	142	0.202746839209369	0.202746839209369	-104.9980058	39.6948974	-104.9980358	39.6930742
-1357	1386	1387	0.204107383179499	0.204107383179499	-105.0038695	39.7121354	-105.0062556	39.7121476
-1384	1411	1412	0.132938489820146	0.132938489820146	-105.0079981	39.7813836	-105.0095538	39.781386
-1385	1412	1413	0.131234196689436	0.131234196689436	-105.0095538	39.781386	-105.0110892	39.7813605
-16835	10018	10019	0.00449297276091322	0.00449297276091322	-104.9700592	39.7032461	-104.9700539	39.7032059
-1459	1481	1482	0.0508965659313026	0.0508965659313026	-104.9901596	39.6948019	-104.9907544	39.6948087
-533	397	398	0.176353791704941	0.176353791704941	-105.0131625	39.7564763	-105.0152017	39.756236
-1483	1503	1504	0.10868886965133	0.10868886965133	-105.0297284	39.6949225	-105.0309987	39.6949159
-17373	3540	4236	0.201662628453229	0.201662628453229	-104.9786521	39.6984298	-104.9786279	39.6966163
-1505	47	1524	0.198761508803526	0.198761508803526	-104.974563	39.7002186	-104.9745686	39.6984311
-16510	9930	8899	0.028599893322584	0.028599893322584	-105.0053557	39.7432318	-105.0050563	39.7433465
-19459	10506	10507	0.0718336837694179	0.0718336837694179	-104.9910563	39.7108489	-104.9902528	39.7106611
-16953	10037	10038	0.0209544596641532	0.0209544596641532	-105.0167413	39.7559349	-105.0168024	39.7557524
-1573	1601	1602	0.162785877407261	0.162785877407261	-105.013927	39.6982179	-105.0138578	39.6967549
-1622	1650	1651	0.0538894092860146	0.0538894092860146	-105.0156911	39.6895077	-105.0156831	39.6890231
-1645	1672	1673	0.130835848827306	0.130835848827306	-105.0096516	39.7680424	-105.0111824	39.7680416
-1667	1692	1693	0.050088176287895	0.050088176287895	-105.0410724	39.7676025	-105.0416583	39.7675928
-1694	1718	1719	0.0873988319892153	0.0873988319892153	-105.0097345	39.6908484	-105.0107559	39.690855
-1719	1738	1456	0.0837159374419676	0.0837159374419676	-105.0067562	39.6912909	-105.0077346	39.6912909
-1750	1769	1772	0.200154711336709	0.200154711336709	-104.9769412	39.7092561	-104.9769267	39.7074561
-1772	1790	1791	0.0243124544354895	0.0243124544354895	-104.9810045	39.694799	-104.9807204	39.6948034
-12976	2866	2867	0.0166252705046511	0.0166252705046511	-104.9893706	39.7368276	-104.9894148	39.7369732
-1804	1817	1818	0.0911976784518576	0.0911976784518576	-105.02745	39.7281152	-105.028093	39.7274609
-11690	836	837	0.0102634119335747	0.0102634119335747	-105.00135	39.7536153	-105.0012532	39.7536699
-1854	1868	1869	0.0969507802969199	0.0969507802969199	-104.9899631	39.7147612	-104.9899974	39.7138897
-18890	6123	3212	0.200920158955186	0.200920158955186	-104.963455	39.709291	-104.9634444	39.7110979
-13010	2892	2956	0.114118910643116	0.114118910643116	-104.9912536	39.7714803	-104.9919912	39.7706248
-1900	1913	1087	0.0825040978126541	0.0825040978126541	-104.9733715	39.707477	-104.9724071	39.7074855
-11531	1232	1233	0.136649469135664	0.136649469135664	-105.028183	39.7572752	-105.0281917	39.7560463
-3101	3032	3035	0.0672642720958143	0.0672642720958143	-104.9476453	39.759056	-104.9468584	39.7590562
-16771	7290	7418	0.177711115784665	0.177711115784665	-104.9546694	39.7017867	-104.9529866	39.7027237
-2076	2079	2080	0.00320241388686281	0.00320241388686281	-104.9536567	39.7606977	-104.9536567	39.7607265
-20267	7552	10721	0.0076233085405271	0.0076233085405271	-105.0451456	39.7730203	-105.0450564	39.7730205
-2099	2101	2102	0.0617614998037007	0.0617614998037007	-104.9269881	39.7795759	-104.9269671	39.7801311
-2178	2178	2179	0.133414657501795	0.133414657501795	-105.01465	39.7765593	-105.0146727	39.777759
-20703	10902	10893	0.0137674602252582	0.0137674602252582	-105.0400838	39.7654891	-105.0400814	39.7656129
-18186	6059	4074	0.199239203137735	0.199239203137735	-105.0327949	39.7856263	-105.0327922	39.7838345
-2271	2271	2274	0.132133232701666	0.132133232701666	-104.9305276	39.7280436	-104.9305243	39.7292319
-2297	2295	2044	0.383761223862801	0.383761223862801	-104.9885127	39.7658379	-104.9843229	39.7670786
-2323	2315	2316	0.330214470935474	0.330214470935474	-104.9499657	39.7059775	-104.9472534	39.7038645
-12347	8663	8664	0.0257805479932851	0.0257805479932851	-105.0123961	39.7526334	-105.0123703	39.7528644
-2391	2374	2380	0.0606466728888714	0.0606466728888714	-104.954137	39.710527	-104.9540512	39.7099856
-17368	6112	1906	0.199361824625973	0.199361824625973	-104.9786441	39.7092737	-104.9786392	39.7074808
-2461	2451	2452	0.13645541326163	0.13645541326163	-105.0064532	39.7705389	-105.0080496	39.7705191
-2505	2485	2486	0.101289554682704	0.101289554682704	-105.0158508	39.7789597	-105.0170359	39.7789761
-2559	1939	371	0.224011572183979	0.224011572183979	-105.0273088	39.7386104	-105.0298176	39.7380301
-19236	5960	10458	0.00935537130778975	0.00935537130778975	-104.9914093	39.7430761	-104.9913293	39.7430187
-20487	10833	10834	0.0146368261080025	0.0146368261080025	-105.0248283	39.7608934	-105.0246593	39.7608722
-17152	4823	1911	0.202007841348173	0.202007841348173	-104.9751483	39.7056678	-104.9751493	39.7074845
-15939	9756	1179	0.0444859500137061	0.0444859500137061	-104.9962839	39.7001148	-104.9967738	39.7002489
-3746	3576	3577	0.10159835449875	0.10159835449875	-104.9488635	39.7544629	-104.9476756	39.7544343
-3791	2772	3612	0.203936793927218	0.203936793927218	-104.9293492	39.7674126	-104.929332	39.7692466
-3792	3612	3613	0.107839344756473	0.107839344756473	-104.929332	39.7692466	-104.9293234	39.7702164
-2787	2741	2742	0.198829139661659	0.198829139661659	-104.9558357	39.6911246	-104.9558447	39.6893365
-15945	9761	9759	0.0391671909462338	0.0391671909462338	-104.997609	39.7046403	-104.9977092	39.704984
-2831	2780	2781	0.0528298940705434	0.0528298940705434	-104.9727319	39.7669657	-104.9721138	39.7669682
-19569	10568	10569	0.0878244193957737	0.0878244193957737	-104.9895159	39.7084088	-104.9895239	39.707619
-2880	2824	2825	0.0974259616864288	0.0974259616864288	-105.0158414	39.7801872	-105.0169815	39.7801864
-2902	2845	2846	0.808353421265405	0.808353421265405	-104.9305098	39.6893437	-104.9307139	39.6820757
-17512	10121	10120	0.0252089130538733	0.0252089130538733	-105.0137025	39.7374569	-105.0136579	39.737681
-18124	7936	10267	0.178836603986638	0.178836603986638	-105.0106854	39.7894536	-105.010676	39.7910619
-17213	3773	3774	0.00322537908461904	0.00322537908461904	-104.9774877	39.7022422	-104.9774885	39.7022712
-4010	3797	3798	0.0496772635509661	0.0496772635509661	-104.9723623	39.729076	-104.9729432	39.7290745
-20618	10829	10811	0.00710063413803192	0.00710063413803192	-105.0230688	39.7597292	-105.022998	39.7596958
-4056	3836	542	0.0542189434563804	0.0542189434563804	-105.042838	39.751186	-105.0428359	39.7516736
-16431	9893	9894	0.0272038809490012	0.0272038809490012	-104.9715317	39.698308	-104.9716111	39.6985449
-4079	3854	3855	0.107248137237127	0.107248137237127	-105.0427103	39.7245555	-105.0427146	39.72552
-4105	3874	1534	0.0983074346464974	0.0983074346464974	-104.944148	39.7565195	-104.944148	39.7574036
-4130	3892	3893	0.176077888960898	0.176077888960898	-104.9634634	39.7416479	-104.9634575	39.7432314
-3140	2139	3065	0.10712340392365	0.10712340392365	-104.9269888	39.7601749	-104.9257357	39.7601617
-14117	3945	3946	0.0482205385893945	0.0482205385893945	-104.9450651	39.7484271	-104.9449549	39.7480018
-19586	7471	10577	0.00638268050836497	0.00638268050836497	-104.9888183	39.708461	-104.9888187	39.7084036
-18680	1852	3185	0.180570803347185	0.180570803347185	-105.0367134	39.7213291	-105.0367216	39.7197052
-4350	4077	4078	0.0772510249569655	0.0772510249569655	-104.9901174	39.7840727	-104.9910214	39.7840807
-4372	4094	4095	0.0479505811649138	0.0479505811649138	-105.0169973	39.7839311	-105.0175565	39.7838951
-19591	10579	10498	0.00651919101450697	0.00651919101450697	-104.9910674	39.7097471	-104.9911436	39.7097481
-3306	3214	3215	0.0471079000187924	0.0471079000187924	-104.9622425	39.711098	-104.9616918	39.7111011
-3328	3230	3231	0.132391302135547	0.132391302135547	-105.0330468	39.7719096	-105.0345947	39.7719562
-19626	10513	10592	0.0688709903222838	0.0688709903222838	-104.9902701	39.7089743	-104.9910751	39.7089846
-3398	3295	3296	0.0155356242142858	0.0155356242142858	-104.9407838	39.7038199	-104.9406022	39.7038199
-19230	10454	10455	0.0118389292817843	0.0118389292817843	-104.9914445	39.7410511	-104.9915438	39.7409769
-20315	10736	10737	0.159656650881409	0.159656650881409	-105.0233746	39.7593437	-105.0250397	39.7599942
-18079	6355	10255	0.0661057533214939	0.0661057533214939	-105.0105212	39.7255767	-105.0097514	39.7256305
-3483	3361	3362	0.201966263198038	0.201966263198038	-104.9339125	39.7546702	-104.9338998	39.7564865
-4636	4280	4281	0.102934268159845	0.102934268159845	-104.97885	39.7703237	-104.9797003	39.7709793
-16647	9969	5457	0.0123677166569097	0.0123677166569097	-104.9848573	39.7385435	-104.9848604	39.7384323
-16903	7306	3263	0.199172661453728	0.199172661453728	-104.9657546	39.7020662	-104.9657587	39.7038574
-19484	6853	10408	0.00698312522129821	0.00698312522129821	-104.9883411	39.7102427	-104.9883415	39.7101799
-19234	10420	10457	0.0372086096742178	0.0372086096742178	-104.9910563	39.7427139	-104.991294	39.7429942
-19820	10648	3951	0.0619393226511354	0.0619393226511354	-105.0009089	39.7300077	-105.0001846	39.7300077
-20630	10847	10760	0.0141138073557462	0.0141138073557462	-105.0229893	39.7608356	-105.0229928	39.7607087
-4772	4383	4384	0.143358020264065	0.143358020264065	-104.9788891	39.7554321	-104.9800877	39.7545304
-4773	4384	2688	0.1475761156103	0.1475761156103	-104.9800877	39.7545304	-104.9813184	39.7535997
-19822	10648	9252	0.121899654224586	0.121899654224586	-105.0009089	39.7300077	-105.0008928	39.7289115
-17019	10054	10057	0.00913318334502991	0.00913318334502991	-105.0167692	39.7546606	-105.0168578	39.7546147
-19885	7405	10416	0.200852838610439	0.200852838610439	-104.9957689	39.7166071	-104.9957778	39.7148008
-18259	7775	9395	0.0553851197391209	0.0553851197391209	-105.0259595	39.7688086	-105.0253115	39.7688045
-4859	3019	4445	0.0478223869342914	0.0478223869342914	-104.9768843	39.7557372	-104.9772635	39.7560534
-20466	10753	10817	0.0682187434932547	0.0682187434932547	-105.0250779	39.761939	-105.0250744	39.7613255
-19877	10671	6237	0.122419389056498	0.122419389056498	-104.9957933	39.726791	-104.9957805	39.7256901
-19878	6237	5198	0.175009695046305	0.175009695046305	-104.9957805	39.7256901	-104.9957805	39.7241162
-18518	10303	10304	0.0239997630410034	0.0239997630410034	-105.0374978	39.7440972	-105.0372296	39.7441609
-4902	3446	4478	0.091694374773876	0.091694374773876	-104.9462506	39.7657138	-104.9451778	39.765712
-19966	9509	10686	0.206010969949978	0.206010969949978	-105.0340019	39.7403161	-105.0340046	39.7384634
-19567	10565	7474	0.0766585847384353	0.0766585847384353	-104.9895118	39.7091548	-104.9895159	39.7084654
-14126	3925	419	0.00806156942685905	0.00806156942685905	-104.9455321	39.7450146	-104.94552	39.7449427
-3723	3558	2895	0.0536764980359733	0.0536764980359733	-104.9739683	39.7546244	-104.9733531	39.7545278
-3795	3615	3616	0.170284963942666	0.170284963942666	-104.9804114	39.6945392	-104.9804184	39.6930078
-20220	9234	6625	0.292333005384616	0.292333005384616	-104.9818516	39.6960736	-104.9797753	39.6939857
-14111	3623	3659	0.11789221451213	0.11789221451213	-104.9448677	39.7457412	-104.9461809	39.7460646
-3861	3670	3671	0.0217628748782358	0.0217628748782358	-104.976114	39.7474946	-104.9763685	39.7474986
-17030	3607	3490	0.0408681491476405	0.0408681491476405	-105.0243214	39.7549906	-105.0243147	39.7553581
-15948	9763	9764	0.10655007034609	0.10655007034609	-104.9987026	39.7066196	-104.9984431	39.7056824
-17086	504	3946	0.0996587778769702	0.0996587778769702	-104.9458317	39.7485924	-104.9449549	39.7480018
-20151	8263	8850	0.190160460059289	0.190160460059289	-104.9903301	39.7785853	-104.9897894	39.7769264
-17097	3721	2249	0.175979650666522	0.175979650666522	-104.9604142	39.7350474	-104.9604253	39.7334648
-3955	2834	3751	0.211238280484951	0.211238280484951	-105.0263725	39.7802711	-105.0263639	39.7821708
-4024	3809	3810	0.0544429181408591	0.0544429181408591	-104.9835982	39.729065	-104.9842348	39.7290698
-20310	10731	10732	0.0936889543382987	0.0936889543382987	-105.0247591	39.7586373	-105.0237565	39.7589777
-4047	2945	3827	0.152861408667566	0.152861408667566	-104.9251435	39.7065053	-104.9269304	39.7065091
-20433	10792	10793	0.0378257433013547	0.0378257433013547	-105.0232345	39.7595229	-105.023633	39.7596708
-4179	3929	3930	0.138165941069034	0.138165941069034	-105.0010599	39.7656602	-105.0005956	39.7668504
-18286	6824	3986	0.13302202745972	0.13302202745972	-105.0315024	39.7699322	-105.0299471	39.7698868
-20336	10747	10740	0.0348319951594156	0.0348319951594156	-105.0235111	39.7585885	-105.0235185	39.7589017
-5524	4925	4926	0.124694107926995	0.124694107926995	-104.9945592	39.735263	-104.9952734	39.7362407
-4269	4013	4014	0.135510024687662	0.135510024687662	-105.0299387	39.7439361	-105.0299558	39.7451547
-20344	10743	10749	0.0091415179335324	0.0091415179335324	-105.0236223	39.7590808	-105.0236241	39.7589986
-17114	3959	582	0.020964645373322	0.020964645373322	-104.957513	39.7479253	-104.9577579	39.7479349
-14696	4947	5018	0.17692836025714	0.17692836025714	-104.9712638	39.7384111	-104.9712466	39.7400022
-4361	4085	4086	0.0439979039927832	0.0439979039927832	-105.0106908	39.7838273	-105.0112057	39.7838279
-20443	10800	10797	0.0184411605361648	0.0184411605361648	-105.0218874	39.7616318	-105.0218716	39.7614664
-4436	1838	4143	0.106284873443858	0.106284873443858	-104.9874805	39.7209443	-104.9862384	39.7209146
-4437	4143	4144	0.0526768909687255	0.0526768909687255	-104.9862384	39.7209146	-104.9856225	39.7209124
-4456	4154	4155	0.103915690256788	0.103915690256788	-104.9497951	39.7209768	-104.9485801	39.7209768
-4457	4155	4156	0.103695542240372	0.103695542240372	-104.9485801	39.7209768	-104.9473677	39.7209707
-4476	4169	727	0.0512571810638195	0.0512571810638195	-104.9706014	39.7200889	-104.9700021	39.7200889
-4477	727	4170	0.0478531500173987	0.0478531500173987	-104.9700021	39.7200889	-104.9694426	39.7200889
-5818	5133	5134	0.102145042918239	0.102145042918239	-104.9395046	39.7345681	-104.9384246	39.7341756
-5912	5193	5194	0.024083404138801	0.024083404138801	-104.9880966	39.7241225	-104.9883782	39.7241223
-20491	10835	10836	0.00603667118796414	0.00603667118796414	-105.0188076	39.7585187	-105.0188782	39.7585174
-15862	9742	9737	0.126226895338302	0.126226895338302	-105.0409204	39.7309501	-105.0423956	39.7309893
-5931	5209	5210	0.693210396806986	0.693210396806986	-105.0451039	39.7239541	-105.0532075	39.7240888
-16531	9230	9133	0.0319382574203035	0.0319382574203035	-104.9961257	39.7050728	-104.9958777	39.7048581
-4627	1616	4276	0.105592921129571	0.105592921129571	-104.973572	39.7730583	-104.9744288	39.7737425
-20628	10756	10873	0.0143552752086545	0.0143552752086545	-105.0229933	39.7612883	-105.0229935	39.7611592
-20696	10910	4524	0.00942218117840877	0.00942218117840877	-105.0250813	39.7631194	-105.0250845	39.7632041
-18136	6043	10263	0.201163508503498	0.201163508503498	-105.0198962	39.7856251	-105.0198897	39.7874342
-4695	4331	808	0.139418137507802	0.139418137507802	-104.9769247	39.7519986	-104.9769333	39.7532524
-4698	4332	4333	0.161361651356291	0.161361651356291	-104.9771769	39.7840807	-104.9771941	39.7855318
-6050	4013	5293	0.134925136075026	0.134925136075026	-105.0299387	39.7439361	-105.0315166	39.7439551
-18073	6354	6355	0.0448917156923931	0.0448917156923931	-105.0110405	39.7255178	-105.0105212	39.7255767
-4744	4362	4363	0.107836470275357	0.107836470275357	-105.0015545	39.7112124	-105.0015367	39.7102427
-4765	4378	4379	0.183602249353544	0.183602249353544	-105.0263037	39.6939714	-105.0284495	39.6939582
-20634	10876	10877	0.0283642470117633	0.0283642470117633	-105.0137702	39.7627689	-105.0134384	39.7627649
-18170	5801	6061	0.198751914750946	0.198751914750946	-105.0339455	39.7874133	-105.0339562	39.7856259
-4835	4430	4431	0.145138896688942	0.145138896688942	-104.9874697	39.7174659	-104.9891666	39.7174681
-4862	4446	4447	0.0474277072247471	0.0474277072247471	-104.9781251	39.7567372	-104.9785209	39.7570361
-18509	9355	10301	0.00184585558113331	0.00184585558113331	-105.0410672	39.7487502	-105.0410673	39.7487336
-6260	174	1704	0.202197382513594	0.202197382513594	-105.0250478	39.6931151	-105.0250424	39.6912967
-4958	4516	4517	0.0491656169358357	0.0491656169358357	-105.012785	39.7632228	-105.0133602	39.7632209
-4983	4534	4535	0.0998419246339525	0.0998419246339525	-105.0227761	39.719354	-105.0227761	39.7202519
-19921	10413	7869	0.176021720356684	0.176021720356684	-104.9980711	39.720935	-104.9980684	39.719352
-5064	4589	4590	0.0154062452430768	0.0154062452430768	-104.9408036	39.744932	-104.9406235	39.7449365
-5086	4607	4608	0.119245405144689	0.119245405144689	-104.9747635	39.7448376	-104.9761582	39.7448434
-5111	4630	4631	0.139104857432868	0.139104857432868	-105.0189411	39.7753479	-105.0189415	39.7765989
-20788	5700	10925	0.00572872738726038	0.00572872738726038	-105.035764	39.7622008	-105.035831	39.7621995
-3915	2811	3713	0.0582509515897595	0.0582509515897595	-104.9921559	39.7183774	-104.9928366	39.7183943
-3917	3714	3715	0.0974014881112134	0.0974014881112134	-104.9940184	39.7183972	-104.995157	39.7184133
-20790	10947	8358	0.00657767070033128	0.00657767070033128	-105.0393977	39.7638972	-105.039401	39.7639563
-5221	4709	4710	0.122314419308335	0.122314419308335	-104.970235	39.782186	-104.970235	39.783286
-5243	875	4463	0.138237545752752	0.138237545752752	-104.9696488	39.7645085	-104.9696481	39.7657517
-18318	7366	7442	0.0771284931905011	0.0771284931905011	-105.0267891	39.7634203	-105.0275322	39.7638138
-5315	4770	4771	0.0488277782804066	0.0488277782804066	-104.97698	39.7224773	-104.9764091	39.7224805
-5336	2332	4786	0.0940516760159238	0.0940516760159238	-104.9238853	39.7231807	-104.9227856	39.7231786
-5388	4825	97	0.199068637854245	0.199068637854245	-104.9446221	39.7019764	-104.9442146	39.7002138
-17092	4597	9466	0.17373336205738	0.17373336205738	-104.9603758	39.7447782	-104.9603865	39.7432158
-5437	4857	4858	0.0515825872815672	0.0515825872815672	-104.9822782	39.7351518	-104.981675	39.7351569
-5483	4893	4894	0.046048954675788	0.046048954675788	-104.9456205	39.7351177	-104.945082	39.7351139
-5531	4931	4932	0.018084718359645	0.018084718359645	-104.9988399	39.7414088	-104.9989204	39.7415592
-6850	4421	5860	0.102045619820979	0.102045619820979	-105.0299945	39.7149702	-105.0311875	39.7149636
-6892	5894	5697	0.0947186956045014	0.0947186956045014	-105.0109744	39.7074034	-105.010983	39.7065516
-5585	1550	4269	0.196429076934968	0.196429076934968	-104.9801772	39.7765679	-104.980164	39.7783344
-3934	3732	3733	0.121703755972038	0.121703755972038	-105.0028207	39.7326047	-105.0028152	39.7336992
-3936	3734	3735	0.176733819603511	0.176733819603511	-105.0028252	39.7352849	-105.0028198	39.7368743
-5609	4988	4989	0.201206746854351	0.201206746854351	-104.9850453	39.7165375	-104.9850107	39.7147282
-6912	5908	1999	0.0940717232862836	0.0940717232862836	-104.9361363	39.7492673	-104.9350364	39.749243
-5705	932	2217	0.184097423724296	0.184097423724296	-104.9764282	39.7320463	-104.9764407	39.7337019
-5753	5081	5082	0.054538974474369	0.054538974474369	-104.9962546	39.7083175	-104.9957853	39.7079855
-5760	5088	1840	0.180073513278395	0.180073513278395	-104.9908341	39.719328	-104.9908489	39.7209474
-5785	2782	5108	0.132016677253578	0.132016677253578	-104.9708506	39.7669659	-104.9708358	39.7681531
-18555	7706	2990	0.19846083928125	0.19846083928125	-105.0434221	39.7567041	-105.0434248	39.7584889
-18352	3981	7040	0.199881951179414	0.199881951179414	-105.0299345	39.7669593	-105.0322731	39.7669531
-5885	5176	130	0.21663995111842	0.21663995111842	-105.0117034	39.6967417	-105.010718	39.694947
-14774	5924	3807	0.151382817559166	0.151382817559166	-104.9817146	39.7304273	-104.9817238	39.7290659
-17792	8508	6179	0.109482524773714	0.109482524773714	-104.9873985	39.757951	-104.9873985	39.7569664
-5955	5228	5229	0.0697529045378229	0.0697529045378229	-104.9565077	39.7110219	-104.9556923	39.7110153
-5977	1247	4556	0.132973381558885	0.132973381558885	-105.0205098	39.764433	-105.0220655	39.7644258
-20546	10755	2961	0.0206004250178228	0.0206004250178228	-105.0213448	39.7585398	-105.021139	39.7584434
-6055	3817	5296	0.100909929183789	0.100909929183789	-105.0369844	39.7439438	-105.0381646	39.7439521
-6076	172	1729	0.256606586411632	0.256606586411632	-105.022228	39.6931165	-105.02224	39.6908088
-6122	5349	4219	0.225702767955147	0.225702767955147	-104.9274952	39.692974	-104.928034	39.690987
-6172	5388	1958	0.131227861001577	0.131227861001577	-104.926934	39.709287	-104.9269593	39.708107
-20555	10853	10028	0.0104514157116194	0.0104514157116194	-105.015713	39.7584957	-105.015835	39.7585019
-6194	3028	5401	0.132618210317087	0.132618210317087	-104.9659386	39.7594982	-104.9659547	39.7606908
-18508	10301	9355	0.00184585558113331	0.00184585558113331	-105.0410673	39.7487336	-105.0410672	39.7487502
-6264	1941	5456	0.107892445399082	0.107892445399082	-104.9873753	39.7384618	-104.9861136	39.7384486
-6308	2067	5487	0.0160838439354733	0.0160838439354733	-104.9529898	39.7383752	-104.952802	39.738367
-6329	5502	5503	0.0544715490547718	0.0544715490547718	-104.9799824	39.7600071	-104.9804313	39.7603548
-20506	10834	10840	0.00711722931583218	0.00711722931583218	-105.0246593	39.7608722	-105.0245771	39.760862
-7656	5012	3346	0.092992178848436	0.092992178848436	-104.9582526	39.7728926	-104.9571645	39.7728928
-20397	10758	10759	0.00383951895664098	0.00383951895664098	-105.0243956	39.7608382	-105.0243509	39.7608348
-19830	10649	10650	0.203375176962632	0.203375176962632	-105.0422444	39.7384617	-105.0422095	39.7366329
-18258	6760	7775	0.140758515508444	0.140758515508444	-105.0276064	39.7688141	-105.0259595	39.7688086
-6495	3928	5619	0.089155871041537	0.089155871041537	-105.0017582	39.7648586	-105.0018152	39.7656592
-6517	963	5279	0.100667730658223	0.100667730658223	-104.9838018	39.7183372	-104.9826249	39.7183267
-7856	6469	6470	0.161667024351427	0.161667024351427	-104.9948277	39.7755094	-104.9967193	39.7755268
-14751	929	5933	0.176747364710656	0.176747364710656	-104.9781467	39.7320382	-104.9781588	39.7304487
-6673	3933	5622	0.0990284128542063	0.0990284128542063	-105.0006222	39.7730028	-105.0017809	39.7730094
-14716	5687	933	0.176256990051995	0.176256990051995	-104.9758385	39.7304575	-104.9758289	39.7320426
-20475	10824	10825	0.0252031422821514	0.0252031422821514	-105.0208891	39.7583505	-105.0205943	39.7583468
-6694	5571	5749	0.0485856779635153	0.0485856779635153	-105.0440106	39.7729501	-105.0445791	39.7729494
-6695	5749	5750	0.0408085368300434	0.0408085368300434	-105.0445791	39.7729494	-105.0450566	39.7729489
-3964	1865	3758	0.048211663801055	0.048211663801055	-104.9901799	39.6966614	-104.9907434	39.6966619
-3965	3758	3759	0.0426076537269238	0.0426076537269238	-104.9907434	39.6966619	-104.9912414	39.6966624
-11217	443	444	0.0957304857475106	0.0957304857475106	-104.932837	39.701282	-104.933949	39.701378
-6741	5790	5791	0.0533877005590012	0.0533877005590012	-105.0252043	39.7874266	-105.0258291	39.7874305
-6764	5808	5809	0.0505689128275476	0.0505689128275476	-104.9878972	39.7431235	-104.9873953	39.7433641
-6788	5828	5829	0.0547714293876055	0.0547714293876055	-104.9629082	39.6911444	-104.9622681	39.6911405
-18151	6044	10264	0.200762745716695	0.200762745716695	-105.0210575	39.7856258	-105.0210534	39.7874313
-6809	365	4683	0.0475091694046952	0.0475091694046952	-104.9756534	39.6915619	-104.9751813	39.691337
-6832	5852	1635	0.119748990570207	0.119748990570207	-105.014337	39.714787	-105.015737	39.714787
-18333	7291	3229	0.082496713136994	0.082496713136994	-105.0324737	39.7711548	-105.0324789	39.7718967
-6884	4667	1334	0.0975135676636165	0.0975135676636165	-105.011015	39.7139241	-105.0110016	39.7130472
-6901	5900	2304	0.084800082911027	0.084800082911027	-105.0127248	39.6967417	-105.0127167	39.6959791
-6971	5951	5952	0.0992113626066069	0.0992113626066069	-104.9292349	39.7310503	-104.9280748	39.7310598
-14748	6733	4864	0.192735673325504	0.192735673325504	-104.9782075	39.7368798	-104.9781817	39.7351466
-18279	6738	6739	0.202843884763896	0.202843884763896	-105.0386585	39.7802009	-105.0386693	39.7783767
-7077	898	4479	0.137748361044457	0.137748361044457	-104.9450302	39.764473	-104.945032	39.7657118
-18284	6793	6794	0.0655358337845971	0.0655358337845971	-105.0330596	39.769961	-105.0322928	39.76996
-7099	5645	4359	0.0906469204279695	0.0906469204279695	-104.9452967	39.7557043	-104.9453012	39.7565195
-7124	6037	6038	0.0494419955897028	0.0494419955897028	-105.0158387	39.7856226	-105.0164173	39.7856269
-7168	6071	6072	0.0522594599242274	0.0522594599242274	-105.0415553	39.7856202	-105.0421669	39.7856198
-11649	8349	7711	0.138715670988872	0.138715670988872	-105.0244311	39.7572827	-105.0244311	39.7560352
-11989	8046	6574	0.143315424684023	0.143315424684023	-104.9840288	39.7575763	-104.9828432	39.7584876
-11652	4542	1283	0.131430485325992	0.131430485325992	-105.0220625	39.7578568	-105.0205326	39.7577392
-17217	1908	6114	0.200603968094547	0.200603968094547	-104.9774775	39.7074592	-104.9775313	39.7092628
-20549	10805	10854	0.0404087571222208	0.0404087571222208	-105.0159721	39.7585081	-105.0159697	39.7588715
-11385	8240	8241	0.317652248043028	0.317652248043028	-104.949291	39.7799729	-104.9455738	39.7799622
-15924	9072	9753	0.0703936306326387	0.0703936306326387	-105.0172266	39.7293225	-105.0172454	39.7299554
-18551	9428	7705	0.2040983825575	0.2040983825575	-105.0422446	39.7548692	-105.0422469	39.7567047
-20556	10028	10805	0.0117396717425925	0.0117396717425925	-105.015835	39.7585019	-105.0159721	39.7585081
-20452	10807	10808	0.0757678652544946	0.0757678652544946	-105.0219538	39.7619476	-105.0228402	39.7619433
-7529	6285	2831	0.200979085137746	0.200979085137746	-105.0228094	39.7784186	-105.0227922	39.780226
-15928	9754	5382	0.011733427647939	0.011733427647939	-105.0172883	39.7338911	-105.0174251	39.7338829
-7553	4092	6302	0.0803403744103832	0.0803403744103832	-105.0158347	39.7839964	-105.015828	39.7832739
-7580	6315	3820	0.130703255177956	0.130703255177956	-105.0085636	39.7055461	-105.009791	39.7062461
-7677	1716	6365	0.197561364927668	0.197561364927668	-105.0442424	39.6912702	-105.0442509	39.6894935
-7751	5773	6410	0.160605281527339	0.160605281527339	-104.96707	39.7894676	-104.9686008	39.7903058
-18359	7774	7775	0.0541753575171131	0.0541753575171131	-105.0259637	39.7692958	-105.0259595	39.7688086
-7777	6426	2486	0.134234515445665	0.134234515445665	-105.0170359	39.7777689	-105.0170359	39.7789761
-12252	122	8617	0.0393889261650165	0.0393889261650165	-105.0080327	39.7574052	-105.0083585	39.7576557
-7883	6494	6495	0.00940457999056201	0.00940457999056201	-104.9672196	39.746075	-104.9671096	39.746075
-7884	6495	5423	0.0969372989858353	0.0969372989858353	-104.9671096	39.746075	-104.9659758	39.7460698
-3980	3771	3772	0.0481390459121498	0.0481390459121498	-104.9439848	39.7291098	-104.9445477	39.7291131
-3981	3772	3777	0.0470016129182315	0.0470016129182315	-104.9445477	39.7291131	-104.9450973	39.7291163
-7927	1795	6524	0.13760350708633	0.13760350708633	-104.9792579	39.6947744	-104.9782122	39.6938342
-8001	6561	6562	0.0546858550544455	0.0546858550544455	-104.9862601	39.7241317	-104.9856207	39.7241273
-11445	8257	385	0.474417191747682	0.474417191747682	-105.0155286	39.7835973	-105.009982	39.7834091
-8048	6593	6594	0.0289242599655845	0.0289242599655845	-105.0369834	39.7329675	-105.0373216	39.7329718
-18526	9154	9352	0.0531084744773735	0.0531084744773735	-105.0338562	39.7492256	-105.0336669	39.7487707
-8069	6605	6606	1.2681000346061	1.2681000346061	-104.9246358	39.778404	-104.9098059	39.7780011
-8092	4244	6622	0.082630423756929	0.082630423756929	-104.9827699	39.6966096	-104.9821284	39.6960541
-8093	6622	6623	0.0749027437652235	0.0749027437652235	-104.9821284	39.6960541	-104.9815624	39.6955402
-3996	3787	3788	0.0979026300528609	0.0979026300528609	-104.9590433	39.7291134	-104.9601881	39.7291071
-3997	3788	3789	0.0995935295086316	0.0995935295086316	-104.9601881	39.7291071	-104.9613527	39.7291055
-9386	7325	7326	0.0119980817003928	0.0119980817003928	-104.9541227	39.7800179	-104.954122	39.7801258
-20477	10789	10826	0.0103983863250137	0.0103983863250137	-105.0223762	39.7591046	-105.0223089	39.7591825
-20507	10840	10823	0.00612377712997262	0.00612377712997262	-105.0245771	39.760862	-105.0245064	39.7608531
-8262	841	6717	0.175943907281508	0.175943907281508	-104.9425503	39.7162314	-104.9425532	39.7146491
-9533	7395	7396	0.139422525474238	0.139422525474238	-105.0331	39.7535942	-105.0330742	39.7548479
-20405	10779	8354	0.0261167106000956	0.0261167106000956	-105.02337	39.7605759	-105.0236698	39.7606212
-8335	6764	6765	0.0503863905918892	0.0503863905918892	-105.0276005	39.7707095	-105.0275931	39.7711626
-8336	6765	6766	0.0491492877930629	0.0491492877930629	-105.0275931	39.7711626	-105.0275892	39.7716046
-4013	983	3800	0.100500044528257	0.100500044528257	-104.9740784	39.7290693	-104.9752536	39.7290708
-4014	3800	3801	0.0985249152645202	0.0985249152645202	-104.9752536	39.7290708	-104.9764057	39.7290681
-15231	8248	8334	0.0146425177596963	0.0146425177596963	-104.9245969	39.6962239	-104.9244842	39.6961248
-8409	3830	6807	0.0888447463890759	0.0888447463890759	-104.9241221	39.7061949	-104.9241221	39.7053959
-18321	6063	2543	0.201974991797574	0.201974991797574	-105.0363465	39.7856148	-105.0363411	39.7874312
-8457	6832	1495	0.201208565152389	0.201208565152389	-105.0402255	39.6967584	-105.0402341	39.6949489
-19836	2624	5204	0.178927982846839	0.178927982846839	-105.0008976	39.7225155	-105.000925	39.7241245
-18379	8493	8494	0.0504160144523199	0.0504160144523199	-105.0258941	39.7702117	-105.0258959	39.7706651
-8503	6860	6861	0.0162922756173271	0.0162922756173271	-104.9499587	39.714645	-104.9497683	39.7146491
-8527	3425	6874	0.0494311548712974	0.0494311548712974	-105.034629	39.7657398	-105.0351985	39.7658172
-8599	1237	4811	0.0968243021950299	0.0968243021950299	-105.0123583	39.7765593	-105.0134913	39.7765593
-8699	1327	6954	0.11293333226081	0.11293333226081	-105.0452398	39.7129907	-105.045038	39.711987
-8743	6978	6843	0.0844431261667327	0.0844431261667327	-105.040895	39.7112397	-105.0408778	39.7104804
-8770	6990	6991	0.0486520030390688	0.0486520030390688	-104.931754	39.771293	-104.9317465	39.7717305
-8791	7006	4358	0.202474203830337	0.202474203830337	-104.9316943	39.7546764	-104.9317184	39.7564972
-8792	4358	7007	0.00688683462760985	0.00688683462760985	-104.9317184	39.7564972	-104.9317157	39.7565591
-8840	7032	6092	0.0997655880788332	0.0997655880788332	-105.032262	39.7603311	-105.0322556	39.7612283
-12243	8612	8613	0.138493887289201	0.138493887289201	-105.0007767	39.7499711	-104.9996308	39.7508515
-8862	2493	2840	0.128352303826166	0.128352303826166	-105.0314566	39.7791188	-105.0314566	39.7802731
-8889	7059	4436	0.0844445583973766	0.0844445583973766	-104.9500388	39.7020179	-104.9500303	39.7012585
-15879	8770	8763	0.0140298928163018	0.0140298928163018	-105.0445575	39.7355437	-105.0447184	39.7355684
-12248	5788	8274	0.146502988080446	0.146502988080446	-104.9971819	39.7527381	-104.9959856	39.7536815
-20224	10712	8757	0.0605456526720602	0.0605456526720602	-104.941312	39.6942105	-104.9413115	39.694755
-15789	9625	2105	0.0133775626084498	0.0133775626084498	-105.0249286	39.7370709	-105.0249129	39.7371906
-9093	4150	2344	0.174578433496429	0.174578433496429	-104.9594242	39.720981	-104.9594135	39.719411
-12934	8900	8688	0.0533584685274483	0.0533584685274483	-105.0027294	39.7457477	-105.0030556	39.7453386
-18558	10316	10317	0.318647498327865	0.318647498327865	-105.0343233	39.7828561	-105.03063	39.7832519
-9165	7197	7198	0.272798906116362	0.272798906116362	-104.9405457	39.6929325	-104.9373575	39.6929534
-9189	7209	3616	0.0495666126691076	0.0495666126691076	-104.9809977	39.6930099	-104.9804184	39.6930078
-10453	3743	5856	0.10095556193443	0.10095556193443	-104.9874858	39.7156689	-104.9875046	39.7147611
-20231	10714	10715	0.0286157939247338	0.0286157939247338	-104.9409313	39.6936604	-104.9412314	39.693774
-20392	10774	10770	0.00608971066273246	0.00608971066273246	-105.0243795	39.760698	-105.0244499	39.7607064
-9337	4780	1523	0.0520500965787765	0.0520500965787765	-104.9751815	39.7020519	-104.9745731	39.702049
-20017	8044	6572	0.144143863155146	0.144143863155146	-104.9831794	39.7569094	-104.981987	39.757826
-20561	10856	10798	0.00573758430075899	0.00573758430075899	-105.0218184	39.7619476	-105.0218855	39.7619462
-10672	7485	7454	0.0961864249467466	0.0961864249467466	-105.0275311	39.708526	-105.0275397	39.707661
-15863	9737	9743	0.0881669372882309	0.0881669372882309	-105.0423956	39.7309893	-105.0434068	39.731144
-9436	7346	4173	0.192934476657366	0.192934476657366	-104.9667331	39.7183519	-104.966736	39.720087
-10721	7452	5690	0.129238470693044	0.129238470693044	-105.0420537	39.7080307	-105.0420279	39.7068686
-20510	638	10782	0.00926383363589588	0.00926383363589588	-105.0180723	39.7583468	-105.0179661	39.7583302
-18479	9039	9040	0.136726032574097	0.136726032574097	-105.0398975	39.7511951	-105.0398922	39.7499655
-9591	7412	5066	0.050234753132255	0.050234753132255	-105.0379016	39.716558	-105.0384889	39.7165547
-9612	2128	5998	0.154063403679123	0.154063403679123	-104.9275725	39.7628734	-104.9257702	39.7628567
-16186	7721	5815	0.197248711738883	0.197248711738883	-104.9845556	39.6894094	-104.9845543	39.6911833
-9637	1423	7186	0.128478917444104	0.128478917444104	-105.0369066	39.7820848	-105.0369189	39.7832402
-11449	8259	8260	0.319737139262779	0.319737139262779	-104.9757153	39.7797326	-104.9794547	39.7798315
-9690	1895	7457	0.0666302144465139	0.0666302144465139	-104.9875851	39.7075228	-104.9883639	39.7075324
-9691	7457	7458	0.0198488245240688	0.0198488245240688	-104.9883639	39.7075324	-104.9885959	39.7075353
-19476	10519	10520	0.0516997558936505	0.0516997558936505	-104.9902831	39.708118	-104.9902917	39.7076531
-9736	7494	5544	0.102560827713484	0.102560827713484	-105.0416791	39.7511831	-105.0416664	39.7521054
-16038	9802	9796	0.0179822727083053	0.0179822727083053	-105.0123441	39.6891881	-105.0121361	39.6892112
-11790	6564	8037	0.143771757250665	0.143771757250665	-104.9784697	39.7551079	-104.9796416	39.7541805
-9810	7528	7529	0.208257062216787	0.208257062216787	-104.9281699	39.7546826	-104.9282316	39.7565549
-9836	7542	7543	0.0265476903097887	0.0265476903097887	-105.0449552	39.7669613	-105.0449615	39.7672
-18631	9484	7408	0.179068927816078	0.179068927816078	-105.0330762	39.7149479	-105.0330817	39.7165583
-15241	9537	9539	0.0227628365288052	0.0227628365288052	-104.935374	39.7058529	-104.9351084	39.7058405
-20526	1286	10810	0.0112823826001832	0.0112823826001832	-105.020542	39.7581637	-105.0204422	39.7580973
-9968	7619	7620	0.0778364486506147	0.0778364486506147	-104.939234	39.787086	-104.939234	39.787786
-9969	7620	7621	0.111522724623373	0.111522724623373	-104.939234	39.787786	-104.939134	39.788786
-9988	7625	1491	0.204666735578584	0.204666735578584	-105.0061725	39.696731	-105.0061812	39.6948904
-10072	7660	2775	0.203041970554709	0.203041970554709	-104.9246105	39.7656064	-104.9245856	39.7674323
-10073	2775	6897	0.203220599619524	0.203220599619524	-104.9245856	39.7674323	-104.9246113	39.7692598
-10091	7671	690	0.200329217944331	0.200329217944331	-104.9246387	39.7401205	-104.9246436	39.7419221
-10115	2354	4156	0.173430880829093	0.173430880829093	-104.947365	39.719411	-104.9473677	39.7209707
-10138	3577	5644	0.141664156461633	0.141664156461633	-104.9476756	39.7544343	-104.9476672	39.7557083
-10164	7702	7703	0.0486413772868685	0.0486413772868685	-105.0393233	39.756708	-105.0398923	39.7567045
-10187	7030	7715	0.0498024158316235	0.0498024158316235	-105.0322599	39.7566691	-105.0328425	39.7566691
-12249	8274	8295	0.153451254229228	0.153451254229228	-104.9959856	39.7536815	-104.9947185	39.754659
-11642	1281	8347	0.0589263897659084	0.0589263897659084	-105.0205312	39.7553029	-105.0198419	39.7552988
-10281	7757	2638	0.20261361621015	0.20261361621015	-105.0151648	39.7202486	-105.015182	39.7220707
-12251	8616	122	0.0306511482720316	0.0306511482720316	-105.0077835	39.757207	-105.0080327	39.7574052
-10351	5524	6462	0.155650660428743	0.155650660428743	-105.0392946	39.7738629	-105.0392949	39.7752627
-11777	5360	8407	0.147060404896327	0.147060404896327	-104.9803323	39.7509836	-104.9815533	39.750052
-20362	10734	9209	0.0303997458302742	0.0303997458302742	-105.0220514	39.7585674	-105.0216966	39.7585487
-10404	4224	7568	0.0462000499013743	0.0462000499013743	-104.9869346	39.7873956	-104.9863939	39.7873956
-10427	5696	6320	0.173275054190131	0.173275054190131	-105.0371184	39.7071789	-105.0371184	39.7056206
-16041	9802	9797	0.0106947269448384	0.0106947269448384	-105.0123441	39.6891881	-105.0122561	39.6891198
-10504	1036	7842	0.0544400914304572	0.0544400914304572	-104.9622462	39.751954	-104.9616094	39.7519514
-12047	8526	8527	0.0840721683590618	0.0840721683590618	-105.0049596	39.7505226	-105.0054168	39.751192
-10550	4923	5368	0.0856922507743825	0.0856922507743825	-104.9929606	39.7331034	-104.9929409	39.7338739
-16085	9818	9819	0.0412898984205639	0.0412898984205639	-104.9498899	39.7811457	-104.950362	39.7810666
-10600	7873	7874	0.202540822887829	0.202540822887829	-104.9558976	39.7801127	-104.9558736	39.7819341
-10623	7886	1192	0.167316235534945	0.167316235534945	-104.9566946	39.7256155	-104.9567021	39.7271202
-20558	10845	2957	0.00878460299692283	0.00878460299692283	-105.0187438	39.7583413	-105.0187431	39.7584203
-10644	7563	7901	0.105394463133352	0.105394463133352	-104.9922506	39.7545528	-104.9931346	39.7552135
-12237	1599	8609	0.00546433627657245	0.00546433627657245	-105.0021858	39.7415267	-105.0022412	39.7415022
-20564	10825	1287	0.00477901915260098	0.00477901915260098	-105.0205943	39.7583468	-105.0205384	39.7583461
-10749	6942	7958	0.162394709841225	0.162394709841225	-104.9677319	39.7819277	-104.967835	39.783386
-10796	7983	947	0.174677658409185	0.174677658409185	-104.9540572	39.7305236	-104.9540658	39.7320945
-10817	6492	4607	0.147058520431446	0.147058520431446	-104.9747749	39.7461601	-104.9747635	39.7448376
-12476	5450	5427	0.050269770055972	0.050269770055972	-104.9704932	39.6929632	-104.9699057	39.6929673
-10839	6220	8004	0.052907543789053	0.052907543789053	-104.9752801	39.7395432	-104.9752839	39.740019
-15731	7157	8801	0.0199400844261404	0.0199400844261404	-104.9592821	39.716079	-104.9590492	39.7160869
-16956	10040	9425	0.0116537581995054	0.0116537581995054	-105.0167064	39.7549204	-105.0167051	39.7548156
-10942	4686	4956	0.099446723287275	0.099446723287275	-104.9940692	39.730515	-104.9952321	39.7305115
-16188	7203	1784	0.197361998677517	0.197361998677517	-104.9845476	39.6930151	-104.9845583	39.69479
-10964	6721	4791	0.136892276030183	0.136892276030183	-105.0112289	39.7310568	-105.0128297	39.7310587
-10986	5402	3133	0.105232928623448	0.105232928623448	-104.9659547	39.7607434	-104.9647236	39.7607393
-20369	10733	10746	0.00402873670536954	0.00402873670536954	-105.0236546	39.7589766	-105.0236226	39.75895
-12735	8822	7751	0.202267643963295	0.202267643963295	-104.9371703	39.6875009	-104.9371553	39.6893199
-16205	7728	5823	0.195806305910918	0.195806305910918	-104.9798585	39.6893971	-104.9798455	39.691158
-15885	9619	8879	0.0100154912435563	0.0100154912435563	-105.0382355	39.7340565	-105.0382757	39.7341411
-16189	1784	4247	0.203808666270494	0.203808666270494	-104.9845583	39.69479	-104.984534	39.6966228
-11109	8035	807	0.0159273560245565	0.0159273560245565	-104.9781265	39.7531137	-104.9781222	39.7532569
-11132	8133	6270	0.051417429454822	0.051417429454822	-104.9615993	39.7482178	-104.960998	39.748227
-11156	2087	2654	0.0953557861022671	0.0953557861022671	-104.9530315	39.7837193	-104.9519157	39.7837325
-11157	2654	4115	0.0506170186006763	0.0506170186006763	-104.9519157	39.7837325	-104.9513234	39.7837391
-11208	8161	8162	0.355822290917686	0.355822290917686	-104.9406062	39.7114203	-104.936452	39.711255
-11220	8169	106	0.241259609778708	0.241259609778708	-104.928834	39.700221	-104.931654	39.700221
-11240	8178	8182	0.0195790567337129	0.0195790567337129	-104.9340806	39.7042496	-104.9340007	39.7044146
-20821	8330	10923	0.00839528658401215	0.00839528658401215	-105.0382057	39.7621211	-105.0382061	39.7620456
-17791	3305	8508	0.0362477709828647	0.0362477709828647	-104.9874361	39.7582757	-104.9873985	39.757951
-11322	8214	5950	0.203024250253409	0.203024250253409	-104.9304515	39.7292344	-104.9304356	39.7310602
-13061	8944	8945	0.0479106655937031	0.0479106655937031	-104.9951643	39.7677183	-104.9946559	39.7678998
-11349	1754	4801	0.0245317247967943	0.0245317247967943	-105.0124896	39.7620198	-105.0127766	39.7620198
-11390	8244	8245	0.0389791405679458	0.0389791405679458	-104.9498727	39.781647	-104.9495723	39.7819108
-17817	9286	10185	0.00969626713044654	0.00969626713044654	-105.0165836	39.7450617	-105.0166938	39.7450411
-11462	8270	701	0.039999373678842	0.039999373678842	-104.9314164	39.7801263	-104.9318804	39.7801737
-11492	8281	8282	0.00503511807894305	0.00503511807894305	-104.9929142	39.7513421	-104.9928753	39.7513081
-11538	8302	8303	0.0107298944611382	0.0107298944611382	-105.0266827	39.760929	-105.0265595	39.7609475
-11571	7713	8322	0.206137749537799	0.206137749537799	-105.0304918	39.7566748	-105.0305079	39.754821
-11573	1766	7715	0.157141019260281	0.157141019260281	-105.0334284	39.7553296	-105.0328425	39.7566691
-13237	9010	4325	0.222509982407309	0.222509982407309	-105.0324492	39.7058187	-105.0350499	39.7058517
-11632	1278	4529	0.134276517370514	0.134276517370514	-105.0205102	39.7524035	-105.0220809	39.7524035
-11724	8374	8375	0.133513247237079	0.133513247237079	-105.0357895	39.7499869	-105.0357821	39.7511876
-11797	8414	4446	0.0913151320718964	0.0913151320718964	-104.9779515	39.7575475	-104.9781251	39.7567372
-11798	4446	6565	0.148651456771305	0.148651456771305	-104.9781251	39.7567372	-104.9793644	39.7557994
-11799	6565	8038	0.145022863674794	0.145022863674794	-104.9793644	39.7557994	-104.9805458	39.7548634
-13411	4426	9064	0.0342337858603608	0.0342337858603608	-104.998467	39.7666069	-104.9980982	39.766727
-11882	8457	1807	0.101184879886606	0.101184879886606	-105.0067213	39.7517064	-105.0073479	39.7524784
-13518	7635	7602	0.0983630321096794	0.0983630321096794	-105.025114	39.7275076	-105.025114	39.7283922
-11995	8048	6576	0.143165005086162	0.143165005086162	-104.9849005	39.7582519	-104.9837118	39.7591589
-12062	8532	3932	0.283100338690813	0.283100338690813	-104.9548313	39.7460446	-104.9574881	39.7475642
-12064	8532	3745	0.0315839509500456	0.0315839509500456	-104.9548313	39.7460446	-104.9546644	39.7457912
-12065	3745	8533	0.0402006397458181	0.0402006397458181	-104.9546644	39.7457912	-104.9542138	39.7458945
-16198	1788	6622	0.140253824514813	0.140253824514813	-104.9821522	39.6947929	-104.9821284	39.6960541
-12143	2334	7677	0.0942814693046897	0.0942814693046897	-104.9238826	39.7256356	-104.924985	39.7256294
-13771	2561	9189	0.0689861433647756	0.0689861433647756	-104.9942282	39.6920823	-104.9938171	39.6915486
-18571	10322	10326	0.0103554459054315	0.0103554459054315	-105.0341731	39.7804672	-105.0340524	39.7804589
-15556	9654	9655	0.107168580692288	0.107168580692288	-104.9768244	39.7184001	-104.9773908	39.7192598
-12220	8596	8597	0.100597506592905	0.100597506592905	-105.007127	39.7436106	-105.0075587	39.7444522
-12284	8235	7279	0.114584410389232	0.114584410389232	-105.002653	39.7588064	-105.0017875	39.7595933
-12290	8634	8488	0.146216431524827	0.146216431524827	-104.9972254	39.7453524	-104.9959984	39.7462684
-15445	9605	9606	0.0107985098434616	0.0107985098434616	-105.000722	39.7440195	-105.0007281	39.7441165
-12402	8686	2352	0.174110261708509	0.174110261708509	-104.9497874	39.7178534	-104.9497951	39.7194192
-12403	2352	4154	0.17319721774215	0.17319721774215	-104.9497951	39.7194192	-104.9497951	39.7209768
-12445	8705	902	0.277961591263562	0.277961591263562	-104.9404928	39.7619574	-104.9404687	39.7644571
-16201	7209	5822	0.204832695484964	0.204832695484964	-104.9809977	39.6930099	-104.9810031	39.6911678
-14071	3116	6673	0.099476803467174	0.099476803467174	-104.9350959	39.7113475	-104.9362583	39.7113747
-12563	729	7060	0.0981255480039199	0.0981255480039199	-104.9511904	39.6947719	-104.9500436	39.6947813
-12670	8793	5460	0.173942223750684	0.173942223750684	-104.9823009	39.7368732	-104.9823009	39.7384375
-12698	8808	8810	0.00713796130621387	0.00713796130621387	-104.9500032	39.7176723	-104.9500622	39.7177177
-12701	2643	8805	0.104981962462916	0.104981962462916	-104.9521735	39.7182139	-104.9534009	39.718219
-12721	3633	3295	0.250204598549556	0.250204598549556	-104.9408419	39.7060696	-104.9407838	39.7038199
-16683	9985	9930	0.0816514509832002	0.0816514509832002	-105.0060701	39.7427445	-105.0053557	39.7432318
-12762	3506	8170	0.201022944642928	0.201022944642928	-104.9406406	39.6983765	-104.9405886	39.7001839
-15870	8842	8843	0.0221571458561984	0.0221571458561984	-105.0381819	39.7339575	-105.0382728	39.7337709
-15950	9765	9766	0.0194093177763062	0.0194093177763062	-104.9988186	39.7053295	-104.9990439	39.7053089
-12930	3167	8897	0.107237063498964	0.107237063498964	-105.00401	39.7438456	-105.0051222	39.7433998
-14520	3985	7053	0.133213475028965	0.133213475028965	-105.0299452	39.769416	-105.0315035	39.7694414
-15337	9564	9565	0.0333323202761363	0.0333323202761363	-104.9659399	39.7170729	-104.965948	39.7173726
-15952	9765	9758	0.0491105082028732	0.0491105082028732	-104.9988186	39.7053295	-104.9982473	39.7053729
-13016	8918	8921	0.143291466888449	0.143291466888449	-104.9947937	39.769857	-104.9945399	39.7685832
-13097	8917	8959	0.032086215385934	0.032086215385934	-104.9949225	39.7698636	-104.9949911	39.7695799
-13121	640	8968	0.045462010282231	0.045462010282231	-104.9875489	39.7695895	-104.9879458	39.7698617
-13175	4472	2794	0.133415072213096	0.133415072213096	-104.9559081	39.7657294	-104.9559387	39.766929
-13447	9080	4647	0.227691913723815	0.227691913723815	-105.0212418	39.7253265	-105.0186451	39.7248745
-19029	7690	8144	0.0861073402797158	0.0861073402797158	-104.9475732	39.784427	-104.9481599	39.7837974
-13280	4312	7812	0.197562058294396	0.197562058294396	-105.0344662	39.7021142	-105.0367751	39.7021472
-20373	10757	10758	0.0390214492856105	0.0390214492856105	-105.0243898	39.7611891	-105.0243956	39.7608382
-13466	9093	9091	0.0528525628364664	0.0528525628364664	-105.0183719	39.7253071	-105.0189899	39.7253071
-15458	1970	8766	0.0532545399938913	0.0532545399938913	-105.0018024	39.7442826	-105.0021048	39.7447013
-13600	2311	6580	0.108271978342533	0.108271978342533	-105.0112958	39.7314875	-105.0113223	39.732461
-13622	3355	9148	0.0901126087179192	0.0901126087179192	-104.9338318	39.7292375	-104.9327781	39.7292306
-15127	8268	225	0.129419996314042	0.129419996314042	-104.9407004	39.7790485	-104.9407032	39.7778846
-15855	9737	9738	0.0422997339419691	0.0422997339419691	-105.0423956	39.7309893	-105.0423031	39.7306156
-15953	9758	9764	0.0382745737843307	0.0382745737843307	-104.9982473	39.7053729	-104.9984431	39.7056824
-13641	9152	327	0.371274069669657	0.371274069669657	-104.9968785	39.7078836	-104.9987289	39.7109039
-13690	6833	6976	0.085342873664165	0.085342873664165	-105.0400351	39.6894654	-105.0410323	39.6894803
-15860	9707	9741	0.0544957036472965	0.0544957036472965	-105.039492	39.7313626	-105.038896	39.7315361
-13709	6929	3818	0.116035215256342	0.116035215256342	-105.0093602	39.6967483	-105.0107164	39.6967417
-15411	7964	9590	0.052042549974644	0.052042549974644	-105.0005794	39.7440362	-105.0001457	39.7443646
-18495	15	6384	0.132622389900901	0.132622389900901	-105.0351824	39.7463725	-105.0351851	39.7475652
-18578	10319	10327	0.0490398009212077	0.0490398009212077	-105.0275696	39.7818193	-105.0271244	39.7820976
-13818	8483	6705	0.147706661087796	0.147706661087796	-104.9942509	39.7449031	-104.9930306	39.7458434
-13972	9250	9251	0.0609360549506678	0.0609360549506678	-105.0144838	39.7291094	-105.0147648	39.729613
-20378	10761	10762	0.0703070927126279	0.0703070927126279	-105.0250806	39.7603661	-105.0243849	39.7600288
-14062	6351	2574	0.0264285559063396	0.0264285559063396	-104.9499571	39.7092328	-104.949965	39.7089952
-4057	542	3837	0.0481841661951123	0.0481841661951123	-105.0428359	39.7516736	-105.0428292	39.7521069
-20619	10811	10850	0.0311826470096292	0.0311826470096292	-105.022998	39.7596958	-105.0226484	39.7596157
-14143	9286	9287	0.00349243594701226	0.00349243594701226	-105.0165836	39.7450617	-105.0165756	39.7450309
-15782	2533	9708	0.0671466764878958	0.0671466764878958	-105.0240058	39.7380698	-105.0237619	39.7374958
-18700	1376	9773	0.0602159412724284	0.0602159412724284	-105.0390952	39.7117746	-105.0390872	39.7112331
-19501	10528	10529	0.0145223093781074	0.0145223093781074	-104.9883708	39.7066508	-104.9883718	39.7065202
-16094	9821	9496	0.0522797219291825	0.0522797219291825	-104.9498895	39.7799931	-104.9498734	39.7795231
-16682	9984	9985	0.111071610148866	0.111071610148866	-105.0071843	39.7422309	-105.0060701	39.7427445
-16220	9022	9008	0.10706671130041	0.10706671130041	-105.0274035	39.6987105	-105.0261751	39.6985266
-16222	9850	7740	0.404338691233817	0.404338691233817	-104.9564159	39.6856969	-104.9564079	39.6893332
-16223	7740	5835	0.200008410058821	0.200008410058821	-104.9564079	39.6893332	-104.9563972	39.6911319
-14438	6143	4017	0.133566629484228	0.133566629484228	-105.0283819	39.7487852	-105.0299442	39.7487903
-14458	9168	3834	0.0502958887489777	0.0502958887489777	-105.0422474	39.7487571	-105.0428357	39.748759
-16499	8709	8890	0.00781309402153006	0.00781309402153006	-105.0028925	39.7443552	-105.0029709	39.7443191
-14504	9364	2172	0.0261972288759813	0.0261972288759813	-105.0143742	39.7692739	-105.0146807	39.7692764
-16631	9312	9964	0.536418418139307	0.536418418139307	-104.9787525	39.7399405	-104.9850261	39.7399281
-16632	9964	9965	0.081644512591407	0.081644512591407	-104.9850261	39.7399281	-104.9859809	39.7399196
-15472	8892	1971	0.0354218020701201	0.0354218020701201	-105.0008068	39.745167	-105.0012102	39.7450944
-14617	9402	9350	0.13375643872535	0.13375643872535	-105.0252747	39.7548256	-105.0252762	39.7536227
-14954	7265	7584	0.0944614970989242	0.0944614970989242	-104.937233	39.7546682	-104.936128	39.7546682
-4076	3852	3853	0.00162344592902021	0.00162344592902021	-105.0428243	39.7765465	-105.0428243	39.7765611
-15099	7228	2370	0.054925658104601	0.054925658104601	-104.9964723	39.7592924	-104.9971148	39.759299
-16381	9878	9879	0.0338421848775343	0.0338421848775343	-104.971336	39.7034463	-104.9716243	39.7032379
-16508	9928	9929	0.0170279633676167	0.0170279633676167	-105.0062945	39.7430132	-105.0061216	39.7430892
-16525	5158	7669	0.0405110122092171	0.0405110122092171	-104.9248331	39.7295029	-104.9245319	39.7297841
-16594	9950	9951	0.140650325269802	0.140650325269802	-104.9990547	39.7486029	-104.9979162	39.749516
-17419	10101	10102	0.0281887857345848	0.0281887857345848	-104.9831564	39.6890637	-104.9832476	39.6893073
-16852	9866	6519	0.0479747206312546	0.0479747206312546	-104.9586795	39.6929681	-104.9581188	39.6929673
-16968	10038	10045	0.00348952632939911	0.00348952632939911	-105.0168024	39.7557524	-105.0168432	39.7557514
-17638	10159	9498	0.0561256700305383	0.0561256700305383	-104.9503671	39.7793277	-104.949868	39.7789996
-17642	8238	524	0.198799957504709	0.198799957504709	-104.9470651	39.7802508	-104.9493835	39.780399
-17105	331	10064	0.12693044123038	0.12693044123038	-104.9522901	39.745499	-104.9521145	39.7466325
-17422	10082	10083	0.0318734478115971	0.0318734478115971	-104.9834085	39.6888408	-104.9836553	39.6886261
-17268	4260	3518	0.200851927356296	0.200851927356296	-104.9623073	39.6965813	-104.9623127	39.6983876
-17398	7305	3261	0.198983160217956	0.198983160217956	-104.9669227	39.7020659	-104.9668678	39.7038549
-17400	3509	4251	0.199228485757107	0.199228485757107	-104.9680976	39.6983824	-104.968103	39.6965907
-17911	4835	9197	0.134589353492833	0.134589353492833	-105.0001358	39.7148074	-104.9985624	39.7147937
-17544	8941	8264	0.168906883412351	0.168906883412351	-104.9897554	39.7854547	-104.9897645	39.7839357
-18155	10135	10136	0.408197365852498	0.408197365852498	-105.023387	39.7874357	-105.0233776	39.7911067
-17572	10145	10146	0.0800519816931861	0.0800519816931861	-105.0183186	39.7308259	-105.0192547	39.73083
-17628	2882	8136	0.162489310093733	0.162489310093733	-104.9592584	39.7852492	-104.9592611	39.7837879
-18601	10335	7656	0.178628836370645	0.178628836370645	-105.0432472	39.729877	-105.0432633	39.7282706
-17816	9287	10184	0.0350560568035198	0.0350560568035198	-105.0165756	39.7450309	-105.0162526	39.7452251
-17966	6242	10236	0.0113656789072773	0.0113656789072773	-104.9882366	39.7256418	-104.9882388	39.7255396
-17886	9955	4390	0.0561034767074801	0.0561034767074801	-104.98691	39.7485653	-104.9873785	39.7489186
-17918	5173	6867	0.199959252458115	0.199959252458115	-104.9856359	39.7165436	-104.9856575	39.7147454
-17919	6867	5276	0.0971272913038605	0.0971272913038605	-104.9856575	39.7147454	-104.9856735	39.713872
-19066	5495	9469	0.177422724680083	0.177422724680083	-104.9407458	39.7383041	-104.9407436	39.7367085
-19037	9496	9494	0.0281063525870562	0.0281063525870562	-104.9498734	39.7795231	-104.9496925	39.779312
-18774	9642	7121	0.176777734913143	0.176777734913143	-105.0008766	39.7368756	-105.000878	39.7352858
-19101	10429	10049	0.0400790686743565	0.0400790686743565	-105.0000136	39.7493831	-105.0003395	39.7496422
-19617	10477	10588	0.0688805182452796	0.0688805182452796	-104.9902547	39.7104857	-104.9910599	39.7104919
-19314	6700	5030	0.15289416238876	0.15289416238876	-104.9873849	39.7414911	-104.987378	39.7401161
-19425	36	3535	0.208182345564595	0.208182345564595	-104.9809867	39.7002821	-104.9809732	39.6984099
-19426	3535	4231	0.197905943796208	0.197905943796208	-104.9809732	39.6984099	-104.9809651	39.6966301
-19462	10478	10483	0.0205384885375563	0.0205384885375563	-104.9902571	39.7102784	-104.9902592	39.7100937
-19725	4489	10627	0.00886289645656064	0.00886289645656064	-105.0052547	39.734614	-105.0051511	39.7346116
-19764	5140	5153	0.0242552277861381	0.0242552277861381	-104.9325581	39.7331296	-104.9324587	39.7333339
-20136	2752	6988	0.0528412012093399	0.0528412012093399	-104.9326896	39.7401271	-104.9320716	39.7401271
-19927	4579	8367	0.130318576605927	0.130318576605927	-105.0358145	39.741514	-105.035848	39.7426857
-20000	10690	8645	0.0319530891427096	0.0319530891427096	-105.0042718	39.7504958	-105.0040083	39.7506996
-4106	1534	3875	0.0874992877759652	0.0874992877759652	-104.944148	39.7574036	-104.944148	39.7581905
-20047	9078	9193	0.27590001979893	0.27590001979893	-104.9941364	39.7021826	-104.9954572	39.7044462
-397	400	401	0.186988741368815	0.186988741368815	-105.00936	39.7403456	-105.0115284	39.740564
-398	401	402	0.0834459188949902	0.0834459188949902	-105.0115284	39.740564	-105.0124556	39.7407982
-400	403	313	0.0512719310633618	0.0512719310633618	-104.970135	39.780686	-104.970735	39.780686
-402	404	405	0.135745743044228	0.135745743044228	-105.0090936	39.725822	-105.0106325	39.7261211
-404	406	407	0.304825723005793	0.304825723005793	-105.0107416	39.7261622	-105.0123607	39.72372
-406	408	409	0.43926972528011	0.43926972528011	-105.0014039	39.7148758	-104.9995495	39.7111919
-408	410	411	0.386425449179561	0.386425449179561	-105.0296018	39.7254255	-105.0251128	39.7250295
-410	412	413	0.296429557961552	0.296429557961552	-105.0287256	39.7838921	-105.0252567	39.7839187
-411	413	414	0.0146716283322865	0.0146716283322865	-105.0252567	39.7839187	-105.025085	39.7839187
-412	414	415	0.325808855480319	0.325808855480319	-105.025085	39.7839187	-105.0212787	39.7837465
-414	416	328	0.121195048255912	0.121195048255912	-104.9487461	39.7445647	-104.9500765	39.7441885
-416	329	416	0.287289513548727	0.287289513548727	-104.951939	39.7453698	-104.9487461	39.7445647
-417	416	417	0.245312696429149	0.245312696429149	-104.9487461	39.7445647	-104.9458794	39.7444723
-20053	1955	8185	0.122183214039011	0.122183214039011	-104.9375707	39.7122386	-104.936636	39.7114077
-20198	8571	5783	0.145694845246542	0.145694845246542	-104.9953197	39.7494633	-104.9941411	39.7504097
-14833	7026	8320	0.0139341057083995	0.0139341057083995	-105.0315379	39.7548347	-105.0317009	39.7548347
-14834	8320	7029	0.0476978989477955	0.0476978989477955	-105.0317009	39.7548347	-105.0322588	39.7548413
-15442	9600	8606	0.035907314389173	0.035907314389173	-105.0002179	39.7415263	-105.0005878	39.7413734
-19656	10607	10531	0.00409092160847847	0.00409092160847847	-104.9883278	39.7060132	-104.9883756	39.7060143
-20737	10917	10886	0.0142612706482701	0.0142612706482701	-105.0397934	39.7652927	-105.0396293	39.7653159
-14870	9363	2450	0.140513945011527	0.140513945011527	-105.0053953	39.7692764	-105.0054661	39.7705389
-11514	269	270	0.151462432210479	0.151462432210479	-105.0281511	39.7598548	-105.029923	39.7598619
-12364	8672	8674	0.0109017354569362	0.0109017354569362	-105.011589	39.7530795	-105.011632	39.7531718
-12	12	13	0.134681710739383	0.134681710739383	-105.0299361	39.7463759	-105.0315114	39.7463778
-14892	8103	9009	0.099173697837006	0.099173697837006	-105.0324492	39.7031047	-105.0324149	39.7022132
-14893	9009	8146	0.0976735888216106	0.0976735888216106	-105.0324149	39.7022132	-105.0324321	39.7013349
-33	36	37	0.0487053100188426	0.0487053100188426	-104.9809867	39.7002821	-104.9804174	39.7002821
-14912	7271	7600	0.0956539249415721	0.0956539249415721	-104.9373374	39.7208988	-104.936219	39.7208978
-18874	7987	218	0.124810113553517	0.124810113553517	-104.9874076	39.7007261	-104.9862918	39.700003
-18876	3520	84	0.204554290109371	0.204554290109371	-104.961154	39.6983849	-104.9611564	39.7002245
-15454	8884	9611	0.0785818613777641	0.0785818613777641	-105.0010815	39.7421312	-105.0002927	39.7424939
-322	154	206	0.0287029588335131	0.0287029588335131	-104.9570001	39.7445158	-104.9566644	39.7445134
-18627	9483	1310	0.220178764490314	0.220178764490314	-105.0332559	39.7113941	-105.033071	39.7133691
-18894	10375	10376	0.00936614397970835	0.00936614397970835	-105.0119408	39.7500586	-105.0120158	39.75012
-15122	8269	9491	0.0542877044701678	0.0542877044701678	-104.9404976	39.7792513	-104.9405035	39.7797395
-18715	7650	8069	0.263314494448216	0.263314494448216	-105.0378319	39.7282456	-105.0378507	39.7306136
-15971	8998	4214	0.0961806119218467	0.0961806119218467	-105.0168967	39.7111539	-105.0180211	39.7111539
-551	544	545	0.0205710614294522	0.0205710614294522	-105.034963	39.736586	-105.034963	39.736401
-15166	7386	9508	0.0293624650986513	0.0293624650986513	-105.0330679	39.7403194	-105.0334112	39.7403128
-18679	2589	1852	0.179197761430995	0.179197761430995	-105.0367321	39.7229406	-105.0367134	39.7213291
-602	593	594	0.0187536593392831	0.0187536593392831	-104.9689126	39.70386	-104.9686935	39.7038655
-16091	9818	526	0.0930965533879819	0.0930965533879819	-104.9498899	39.7811457	-104.9499002	39.7803085
-13959	448	9111	0.0841767201213853	0.0841767201213853	-105.0126579	39.7258229	-105.0136091	39.7256283
-16119	427	4010	0.113680084788302	0.113680084788302	-105.028564	39.7403785	-105.0298922	39.7403326
-17947	10226	10227	0.0385043082181171	0.0385043082181171	-104.9872048	39.7236101	-104.9869878	39.7233067
-16175	7201	5812	0.201274753121947	0.201274753121947	-104.9868436	39.6930068	-104.9868503	39.6911967
-699	693	694	0.0993204992661042	0.0993204992661042	-104.9535885	39.7419889	-104.9524269	39.7419829
-16265	9865	7738	0.345896015945794	0.345896015945794	-104.958709	39.6862164	-104.9586954	39.6893271
-16341	9873	8704	0.014474001055321	0.014474001055321	-104.9406644	39.7617801	-104.9404955	39.7617894
-11688	774	775	0.0224766779818413	0.0224766779818413	-105.0018298	39.7532062	-105.0016626	39.7533622
-16464	1081	9912	0.0130855777393443	0.0130855777393443	-104.972547	39.7069966	-104.9726409	39.7070895
-18428	2983	10286	0.340223280394145	0.340223280394145	-105.038723	39.7584839	-105.0387191	39.7554242
-16719	485	10003	0.0666623735199971	0.0666623735199971	-104.9862761	39.7027725	-104.9862718	39.703372
-18212	2988	7850	0.201655156198778	0.201655156198778	-105.0422605	39.7584955	-105.0422473	39.760309
-18213	7850	6382	0.201197176818258	0.201197176818258	-105.0422473	39.760309	-105.042255	39.7621184
-17132	1799	4238	0.205173852791716	0.205173852791716	-104.9763617	39.694761	-104.9763404	39.6966061
-268	278	279	0.0669047721045728	0.0669047721045728	-104.9876105	39.7785645	-104.987002	39.7789431
-18436	10287	10292	0.102997198003519	0.102997198003519	-105.0292196	39.7613906	-105.0280151	39.7614164
-17134	3543	44	0.198313047920784	0.198313047920784	-104.9763295	39.6984254	-104.9763617	39.7002087
-15194	7392	9524	0.0521516926212219	0.0521516926212219	-105.0330703	39.7500019	-105.0336803	39.7499978
-19559	10563	10553	0.0196751082256841	0.0196751082256841	-104.9888131	39.7091506	-104.9890431	39.7091518
-19864	10666	10667	0.12344950946071	0.12344950946071	-105.03696	39.7374437	-105.0363945	39.7384652
-1022	827	1037	0.134288205933024	0.134288205933024	-104.9622082	39.7532291	-104.9622266	39.7544367
-19991	10682	10649	0.0504069045792634	0.0504069045792634	-105.0416549	39.7384584	-105.0422444	39.7384617
-327	328	329	0.206425005842362	0.206425005842362	-104.9500765	39.7441885	-104.951939	39.7453698
-15245	9540	9541	0.00803794786000152	0.00803794786000152	-104.9356634	39.7056506	-104.93572	39.7055929
-14681	446	727	0.207769052846247	0.207769052846247	-104.9699934	39.7219574	-104.9700021	39.7200889
-18636	1846	2580	0.177268272488638	0.177268272488638	-105.0330898	39.7213326	-105.0330978	39.7229268
-15883	9594	8842	0.0247081602797847	0.0247081602797847	-105.0379029	39.7340153	-105.0381819	39.7339575
-18445	1124	10289	0.0496295455281554	0.0496295455281554	-105.0404721	39.7607638	-105.0398915	39.7607667
-15483	9622	9623	0.0434553081653394	0.0434553081653394	-105.0002589	39.7457416	-105.0006156	39.7454632
-15784	9596	2105	0.0159980383240888	0.0159980383240888	-105.0247945	39.7370792	-105.0249129	39.7371906
-18450	7849	2986	0.202541671618508	0.202541671618508	-105.0410779	39.7603102	-105.0410754	39.7584887
-15540	1221	8429	0.105180771417586	0.105180771417586	-105.0123509	39.7369148	-105.0135809	39.7369043
-17095	3719	3720	0.174398206796096	0.174398206796096	-104.9604099	39.7383822	-104.9604079	39.7368138
-12950	1330	1331	0.0133918888831226	0.0133918888831226	-105.0020771	39.7434247	-105.0019226	39.7434049
-19570	10569	7462	0.00803939319633032	0.00803939319633032	-104.9895239	39.707619	-104.9895239	39.7075467
-1312	1338	1339	0.0991205046552405	0.0991205046552405	-105.016828	39.7130093	-105.0179868	39.7130093
-15958	9768	9769	0.0623405517746533	0.0623405517746533	-105.0005192	39.711198	-105.0002214	39.7106863
-325	268	153	0.064083026712354	0.064083026712354	-104.9564977	39.7449464	-104.9572293	39.7448211
-386	388	389	0.0751873239589982	0.0751873239589982	-104.9994213	39.713266	-105.0001337	39.7136621
-1392	1419	1420	0.399589215327938	0.399589215327938	-105.0017224	39.7819937	-105.0063986	39.7819993
-16282	9096	9098	0.0807475840805468	0.0807475840805468	-105.0171656	39.7251183	-105.0162316	39.725012
-391	393	394	0.185819928048464	0.185819928048464	-105.0075703	39.7588771	-105.0057374	39.7597756
-15753	6671	2023	0.100119371100459	0.100119371100459	-104.9362703	39.7162376	-104.9350998	39.7162443
-18126	6042	10262	0.201564202628959	0.201564202628959	-105.0187387	39.7856192	-105.0187307	39.7874319
-17137	4425	1909	0.200241543203617	0.200241543203617	-104.9763417	39.7056707	-104.9763514	39.7074715
-16013	9783	9784	0.0337977814282775	0.0337977814282775	-104.9993276	39.6890403	-104.9989876	39.689195
-12006	8049	6578	0.147083508160087	0.147083508160087	-104.9866649	39.7595656	-104.9854669	39.7605151
-2343	2334	2335	0.271393460830069	0.271393460830069	-104.9238826	39.7256356	-104.9238831	39.7280763
-19952	4670	7857	0.100774147000306	0.100774147000306	-104.9940093	39.7230042	-104.992831	39.7230021
-20659	8289	5957	0.0879515292456205	0.0879515292456205	-104.9873968	39.7469971	-104.9873834	39.7462062
-12349	8665	8666	0.0489645255680358	0.0489645255680358	-105.0124819	39.7528908	-105.0129797	39.752673
-1536	1559	1560	0.0937807122385258	0.0937807122385258	-104.9582585	39.7776672	-104.9571611	39.7776691
-2410	2115	2401	0.446933916798798	0.446933916798798	-104.9270004	39.7731311	-104.9317412	39.7748279
-19581	7470	10575	0.00667183269883622	0.00667183269883622	-104.988589	39.7084596	-104.9885885	39.7085196
-1557	1582	1583	0.0811305260417956	0.0811305260417956	-105.0442642	39.6882131	-105.0452106	39.6881689
-469	472	473	0.100239678379349	0.100239678379349	-105.0184425	39.7479196	-105.0185991	39.7470262
-569	562	563	0.0844940522055572	0.0844940522055572	-104.9848447	39.7398421	-104.9854438	39.7392378
-12010	5508	7081	0.146350144860015	0.146350144860015	-104.9830521	39.7623846	-104.9818287	39.7633054
-2663	2621	2622	0.0420400210402162	0.0420400210402162	-104.9980629	39.7225275	-104.9985544	39.7225221
-16696	9597	7094	0.00600769898364912	0.00600769898364912	-105.0002485	39.7423649	-105.00026	39.7424182
-18883	7310	84	0.202570183098447	0.202570183098447	-104.9611376	39.7020462	-104.9611564	39.7002245
-16736	7419	10004	0.204798388413466	0.204798388413466	-104.9519684	39.7022366	-104.9539532	39.7012069
-1623	1651	1652	0.0452674748546477	0.0452674748546477	-105.0156831	39.6890231	-105.0156826	39.688616
-12948	1303	1304	0.066448544071591	0.066448544071591	-105.0017368	39.7441763	-105.0024118	39.7438801
-20711	10885	10914	0.126940460926274	0.126940460926274	-105.0253682	39.762093	-105.0253716	39.7632346
-20712	10914	5881	0.00554916008288024	0.00554916008288024	-105.0253716	39.7632346	-105.0253707	39.7632845
-16509	9929	9930	0.0673766892433469	0.0673766892433469	-105.0061216	39.7430892	-105.0053557	39.7432318
-1643	1670	1671	0.136647738333876	0.136647738333876	-105.0064415	39.7680441	-105.0080403	39.7680432
-19534	6856	10550	0.00719456093421717	0.00719456093421717	-104.9890317	39.7102465	-104.9890324	39.7101818
-19538	4704	10552	0.0168576392161317	0.0168576392161317	-104.9890412	39.7093409	-104.9890427	39.7091893
-19539	10552	10553	0.00416995013524246	0.00416995013524246	-104.9890427	39.7091893	-104.9890431	39.7091518
-11689	775	836	0.0388095868373909	0.0388095868373909	-105.0016626	39.7533622	-105.00135	39.7536153
-20	21	22	0.0174708821601448	0.0174708821601448	-105.0184092	39.7572776	-105.0186135	39.7572732
-16449	9906	9907	0.130469688472308	0.130469688472308	-104.9731572	39.7002179	-104.9730961	39.7013903
-41	44	45	0.0507831501846365	0.0507831501846365	-104.9763617	39.7002087	-104.9757682	39.7002165
-17298	7736	5829	0.204153885319898	0.204153885319898	-104.9622681	39.6893045	-104.9622681	39.6911405
-64	70	71	0.046163806906163	0.046163806906163	-104.9674891	39.7002337	-104.9669496	39.700226
-18467	10299	10298	0.126605139952982	0.126605139952982	-105.0434286	39.7498153	-105.0431907	39.7509391
-18685	1316	1372	0.177012768030012	0.177012768030012	-105.0366981	39.7133763	-105.0366894	39.7117844
-1826	1842	1843	0.155652098486701	0.155652098486701	-105.0186351	39.7211578	-105.020455	39.721152
-19783	3732	10633	0.0548138207459151	0.0548138207459151	-105.0028207	39.7326047	-105.0021797	39.732604
-1846	1861	1862	0.0495211888216282	0.0495211888216282	-105.0427108	39.7213283	-105.0432898	39.7213253
-177	186	187	0.102075274690852	0.102075274690852	-105.0425601	39.6931327	-105.0437531	39.6931327
-202	214	215	0.233063347854791	0.233063347854791	-104.9627533	39.7801312	-104.9654677	39.7803353
-271	281	282	0.0968799942510371	0.0968799942510371	-104.9847034	39.7794255	-104.98357	39.7794055
-335	336	337	0.26926308578439	0.26926308578439	-104.9390909	39.7824749	-104.9373307	39.7804664
-14122	3945	503	0.0521094341958735	0.0521094341958735	-104.9450651	39.7484271	-104.9454639	39.7487815
-1949	1964	1965	0.100541047482359	0.100541047482359	-104.9246161	39.743742	-104.925792	39.7437354
-503	497	498	0.332501427216364	0.332501427216364	-105.0147909	39.7286028	-105.0153507	39.7256437
-508	502	503	0.0804669922754196	0.0804669922754196	-104.9447772	39.7492764	-104.9454639	39.7487815
-19271	10424	10425	0.0133101789702176	0.0133101789702176	-104.9949557	39.7460704	-104.9948429	39.7459879
-19460	10507	10477	0.0195042673008727	0.0195042673008727	-104.9902528	39.7106611	-104.9902547	39.7104857
-12962	1631	1599	0.105987129966341	0.105987129966341	-105.0033016	39.7411115	-105.0021858	39.7415267
-11814	2150	2151	0.12777055976042	0.12777055976042	-105.0101838	39.745904	-105.0100859	39.7447574
-18730	7649	8066	0.263509830967107	0.263509830967107	-105.0367537	39.7282406	-105.0367563	39.7306104
-18671	2605	1538	0.176823430683456	0.176823430683456	-105.0421532	39.7229647	-105.042161	39.7245549
-20037	816	3558	0.154160936652516	0.154160936652516	-104.9739648	39.753238	-104.9739683	39.7546244
-20700	10894	10895	0.0022719801727208	0.0022719801727208	-105.0400807	39.765692	-105.0400542	39.7656936
-17029	3606	3607	0.0180484124991241	0.0180484124991241	-105.0243187	39.7548283	-105.0243214	39.7549906
-850	863	864	0.0616242283467915	0.0616242283467915	-104.9428605	39.7639291	-104.9428605	39.7644833
-18683	3539	3608	0.177667253998454	0.177667253998454	-105.0367081	39.716558	-105.036708	39.7149602
-20825	9400	10954	0.0122123114573311	0.0122123114573311	-105.0252875	39.7601454	-105.0254122	39.760199
-872	885	886	0.105399149486358	0.105399149486358	-104.9585659	39.7644817	-104.9573328	39.7644759
-19920	2621	10413	0.177079309456246	0.177079309456246	-104.9980629	39.7225275	-104.9980711	39.720935
-892	906	907	0.104783494637697	0.104783494637697	-104.9356148	39.7644767	-104.934389	39.7644899
-12344	8660	8661	0.0179171962919351	0.0179171962919351	-105.012233	39.7522705	-105.0123532	39.7524025
-17141	3089	4509	0.200737491088575	0.200737491088575	-104.9763937	39.7128949	-104.9763295	39.7146995
-16291	2376	2377	0.00482087191216397	0.00482087191216397	-104.9707858	39.6964209	-104.9707298	39.6964161
-963	974	975	0.202802632214452	0.202802632214452	-104.9840335	39.7873956	-104.9840507	39.7892194
-17135	44	4412	0.404761668333185	0.404761668333185	-104.9763617	39.7002087	-104.9763723	39.7038488
-17088	10071	9940	0.138093381903903	0.138093381903903	-104.9603859	39.7507127	-104.960382	39.7494708
-16845	10022	10018	0.0055152683612349	0.0055152683612349	-104.9700592	39.7032957	-104.9700592	39.7032461
-17952	10226	10230	0.0192923880160408	0.0192923880160408	-104.9872048	39.7236101	-104.9872054	39.7237836
-20322	10741	10742	0.00907488670500163	0.00907488670500163	-105.0236254	39.7588748	-105.0237259	39.7589011
-1113	1129	1130	0.204124873969403	0.204124873969403	-105.0404692	39.7676124	-105.0404986	39.769448
-16607	7890	9325	0.145145340110648	0.145145340110648	-104.9856992	39.7495249	-104.9845026	39.7504509
-15260	9550	9551	0.0630135708366092	0.0630135708366092	-104.9336788	39.7049326	-104.9343788	39.705109
-19433	10110	10489	0.0489242953920304	0.0489242953920304	-104.9839674	39.7033596	-104.9833961	39.7033795
-16954	10038	10039	0.0207511303582817	0.0207511303582817	-105.0168024	39.7557524	-105.0167989	39.7555658
-12357	8669	8668	0.00723037090372959	0.00723037090372959	-105.0124521	39.7523897	-105.0125278	39.7524187
-1183	1198	1199	0.0305943034250603	0.0305943034250603	-104.9520847	39.7271285	-104.951727	39.7271329
-19442	10493	10494	0.0196148764551294	0.0196148764551294	-104.9911447	39.7106683	-104.9911454	39.7104919
-19443	10494	10495	0.0228284210093234	0.0228284210093234	-104.9911454	39.7104919	-104.9911462	39.7102866
-2633	2594	2595	0.0115937480855902	0.0115937480855902	-105.0383715	39.7229322	-105.038507	39.7229353
-1205	1220	1221	0.0900481853791487	0.0900481853791487	-105.0123588	39.736105	-105.0123509	39.7369148
-18180	5796	6056	0.200195877654712	0.200195877654712	-105.0304694	39.7874265	-105.030464	39.7856261
-11707	1245	1246	0.0231530055304531	0.0231530055304531	-105.001931	39.7490887	-105.0017374	39.7492343
-19444	10495	10496	0.0213401735101805	0.0213401735101805	-104.9911462	39.7102866	-104.9911429	39.7100947
-19445	10496	10497	0.0182367704590367	0.0182367704590367	-104.9911429	39.7100947	-104.9911409	39.7099307
-2703	2659	2660	0.155649282617483	0.155649282617483	-104.9517329	39.7291286	-104.9517031	39.7305282
-19446	10497	10498	0.0203055071588043	0.0203055071588043	-104.9911409	39.7099307	-104.9911436	39.7097481
-2724	107	2679	0.0450807290855188	0.0450807290855188	-104.930428	39.700221	-104.930452	39.700626
-1266	1286	1287	0.0202842890457172	0.0202842890457172	-105.020542	39.7581637	-105.0205384	39.7583461
-18451	2986	7704	0.199650644692106	0.199650644692106	-105.0410754	39.7584887	-105.0410725	39.7566932
-16289	1363	2376	0.00344312944616261	0.00344312944616261	-104.9708258	39.6964243	-104.9707858	39.6964209
-19447	10498	10499	0.0196160459333464	0.0196160459333464	-104.9911436	39.7097481	-104.9911462	39.7095717
-14693	2225	4875	0.162113763012991	0.162113763012991	-104.9712038	39.7337071	-104.9712147	39.735165
-1308	1334	1335	0.129255645714035	0.129255645714035	-105.0110016	39.7130472	-105.012511	39.712992
-14695	4946	4947	0.168905093573288	0.168905093573288	-104.9712638	39.7368921	-104.9712638	39.7384111
-1332	1357	1358	0.136424467862451	0.136424467862451	-104.992658	39.7824897	-104.9942545	39.7824831
-19448	10499	10487	0.023296750596408	0.023296750596408	-104.9911462	39.7095717	-104.9911492	39.7093622
-2841	2789	2790	0.0523852002781698	0.0523852002781698	-104.9615875	39.7669517	-104.9609746	39.7669537
-15843	7795	9723	0.020416694003674	0.020416694003674	-105.0393113	39.734237	-105.0393086	39.7344206
-18886	7308	3267	0.201549354300641	0.201549354300641	-104.9634496	39.7020562	-104.9634713	39.7038687
-19449	10487	10500	0.022940948763835	0.022940948763835	-104.9911492	39.7093622	-104.9911522	39.7091559
-17307	5827	7735	0.20365816745981	0.20365816745981	-104.963474	39.6911476	-104.9634901	39.6893161
-2499	2480	2481	0.265342544498994	0.265342544498994	-105.0064445	39.779418	-105.0095495	39.7794028
-19450	10500	10501	0.0189264900266028	0.0189264900266028	-104.9911522	39.7091559	-104.9911546	39.7089857
-18889	1923	6123	0.200475462008098	0.200475462008098	-104.9634658	39.7074881	-104.963455	39.709291
-1428	1451	1452	0.107578729884622	0.107578729884622	-105.0038258	39.7039943	-105.003594	39.7030434
-18647	7412	4053	0.176566575042864	0.176566575042864	-105.0379016	39.716558	-105.0379043	39.7181459
-1452	1471	1472	0.147622384612895	0.147622384612895	-105.0231842	39.6908088	-105.0231842	39.6894812
-19451	10501	10502	0.0200830353316625	0.0200830353316625	-104.9911546	39.7089857	-104.9911572	39.7088051
-2953	2897	2898	0.0472912053919854	0.0472912053919854	-104.9733528	39.7553064	-104.9733526	39.7557317
-16310	2439	2721	0.0812562615874829	0.0812562615874829	-104.9697532	39.6960539	-104.9693989	39.6953759
-12320	1302	1603	0.00893905362813633	0.00893905362813633	-105.0032204	39.7501518	-105.0031242	39.7501833
-19452	10502	10503	0.0197272337869401	0.0197272337869401	-104.9911572	39.7088051	-104.9911598	39.7086277
-19453	10503	7482	0.0181814350817939	0.0181814350817939	-104.9911598	39.7086277	-104.9911621	39.7084642
-19038	9494	229	0.0588468541295868	0.0588468541295868	-104.9496925	39.779312	-104.9490058	39.7793516
-1498	1517	1518	0.199413272863754	0.199413272863754	-104.9745809	39.7128876	-104.9745407	39.7110945
-15846	9732	1098	0.0848710138660927	0.0848710138660927	-105.0415588	39.7301641	-105.0405664	39.7301724
-19454	7482	10504	0.0196839111368948	0.0196839111368948	-104.9911621	39.7084642	-104.9911657	39.7082872
-19455	10504	10505	0.017559948119168	0.017559948119168	-104.9911657	39.7082872	-104.991169	39.7081293
-13365	9051	9052	0.103390283727961	0.103390283727961	-104.9821447	39.7799919	-104.9833542	39.7800156
-2998	1652	2935	0.112349122861115	0.112349122861115	-105.0156826	39.688616	-105.0169377	39.6883193
-17375	1796	4235	0.206436210016501	0.206436210016501	-104.9786977	39.6947606	-104.9786601	39.6966169
-13963	9247	9102	0.0619095710643366	0.0619095710643366	-105.0153507	39.7256041	-105.0160728	39.7255648
-1534	1557	1558	0.0743776380849984	0.0743776380849984	-104.9602842	39.7776637	-104.959414	39.7776762
-19916	8774	7640	0.176934657107496	0.176934657107496	-104.9980954	39.7289058	-104.9981033	39.7273146
-19917	7640	6233	0.179269287981755	0.179269287981755	-104.9981033	39.7273146	-104.9980791	39.7257025
-1556	1581	1582	0.0903340712116846	0.0903340712116846	-105.0432085	39.6882131	-105.0442642	39.6882131
-18461	9354	9528	0.135770728089025	0.135770728089025	-105.0387149	39.7487553	-105.0387229	39.7499763
-19456	10505	7464	0.0643341844968674	0.0643341844968674	-104.991169	39.7081293	-104.9911808	39.7075508
-19919	5202	2621	0.177194532329155	0.177194532329155	-104.9980791	39.724121	-104.9980629	39.7225275
-1603	1634	1635	0.0667169559865797	0.0667169559865797	-105.015737	39.715387	-105.015737	39.714787
-15911	9239	9240	0.00759910247117962	0.00759910247117962	-105.0423752	39.716622	-105.042453	39.716655
-3133	2004	3061	0.0946875314878615	0.0946875314878615	-104.9350741	39.7601485	-104.9339669	39.7601749
-1648	1675	1676	0.0232219414191173	0.0232219414191173	-105.0143702	39.7680596	-105.0146419	39.76806
-1649	1676	1677	0.104810655650978	0.104810655650978	-105.0146419	39.76806	-105.0158682	39.7680616
-18412	7776	7163	0.0985154391997448	0.0985154391997448	-105.0393033	39.7543708	-105.0381509	39.7543757
-3153	3077	3078	0.0921654003892753	0.0921654003892753	-104.9850625	39.7129392	-104.9839851	39.7129498
-1666	1129	1692	0.0515669276869657	0.0515669276869657	-105.0404692	39.7676124	-105.0410724	39.7676025
-256	264	265	0.00881331069899833	0.00881331069899833	-104.9479356	39.6896766	-104.9480386	39.6896766
-19580	10574	7470	0.0064160385090956	0.0064160385090956	-104.9885894	39.7084019	-104.988589	39.7084596
-1690	1714	1715	0.111918529606987	0.111918529606987	-105.0420365	39.6912966	-105.0433411	39.691224
-12366	8674	8671	0.0118216471510326	0.0118216471510326	-105.011632	39.7531718	-105.0117521	39.7531191
-18801	10352	9812	0.039652100920871	0.039652100920871	-104.9919121	39.7693329	-104.9915921	39.7695911
-379	381	382	0.0684082960066799	0.0684082960066799	-105.0323033	39.747591	-105.0315032	39.7475841
-16308	2827	2851	0.00473328951361683	0.00473328951361683	-104.9721964	39.6979102	-104.9722098	39.6978689
-20640	10878	10879	0.0287629224507079	0.0287629224507079	-105.0137749	39.7624832	-105.0134384	39.762482
-20278	5573	10727	0.00799925463089475	0.00799925463089475	-105.0440081	39.7735153	-105.0439145	39.7735153
-18122	2538	10266	0.180269607102109	0.180269607102109	-105.01068	39.7874523	-105.0106756	39.7890735
-1907	1919	1920	0.101419584890654	0.101419584890654	-104.966335	39.707486	-104.9651495	39.7074752
-16419	3282	3283	0.0297579469637327	0.0297579469637327	-104.9687946	39.7020548	-104.9691419	39.7020399
-11533	1234	1235	0.136499599599558	0.136499599599558	-105.0293502	39.757272	-105.0293331	39.7560445
-18135	4099	6043	0.191045620861521	0.191045620861521	-105.0199054	39.783907	-105.0198962	39.7856251
-16763	4439	9868	0.0469300202486105	0.0469300202486105	-104.9546886	39.6984458	-104.9551011	39.698724
-257	265	257	0.0618021904449226	0.0618021904449226	-104.9480386	39.6896766	-104.9487596	39.6897096
-3413	3306	3307	0.147259003832799	0.147259003832799	-104.9862237	39.7592221	-104.985009	39.7601612
-1997	2009	2010	0.0436503011483876	0.0436503011483876	-104.9345766	39.7253138	-104.9349064	39.7256134
-381	383	384	0.174765079599045	0.174765079599045	-104.9934396	39.7273502	-104.9934388	39.7289219
-3437	3324	3325	0.13969071524798	0.13969071524798	-104.9573671	39.7557244	-104.95735	39.7569806
-2020	2029	2030	0.0536884532048604	0.0536884532048604	-104.9801901	39.7638953	-104.9806366	39.7642349
-14708	5223	5330	0.173633760067415	0.173633760067415	-104.9747109	39.7384283	-104.9746992	39.7368668
-17179	5410	5449	0.194891408787823	0.194891408787823	-104.9704709	39.6893522	-104.9704727	39.6911049
-2041	2049	2050	0.203224924896292	0.203224924896292	-104.9675091	39.7056815	-104.9674629	39.7038542
-15894	9255	9441	0.0812248966226341	0.0812248966226341	-105.0419691	39.7342088	-105.0429186	39.7342294
-2068	2071	2072	0.108635365611271	0.108635365611271	-104.953042	39.7728934	-104.9530584	39.7738703
-383	385	386	0.313694212518365	0.313694212518365	-105.009982	39.7834091	-105.0063891	39.78283
-15938	9757	9756	0.156652526688463	0.156652526688463	-104.9945244	39.7005048	-104.9962839	39.7001148
-2092	1220	2094	0.120498651922126	0.120498651922126	-105.0123588	39.736105	-105.013768	39.7361049
-16738	725	51	0.242028173240196	0.242028173240196	-104.9512072	39.7016443	-104.953347	39.7002205
-19560	10553	10564	0.0204794292027182	0.0204794292027182	-104.9890431	39.7091518	-104.9892825	39.7091533
-2166	2165	2166	0.0846335919696035	0.0846335919696035	-105.0140457	39.7285578	-105.0140055	39.7293183
-19638	10597	10526	0.00694709641094844	0.00694709641094844	-104.9882854	39.7071884	-104.9883666	39.7071894
-3597	3446	2803	0.137873345883867	0.137873345883867	-104.9462506	39.7657138	-104.9462404	39.7669537
-16317	2510	3005	0.00592207877923616	0.00592207877923616	-104.9709885	39.6970925	-104.9710275	39.6970485
-17174	5326	5327	0.109586213492937	0.109586213492937	-104.9693021	39.6883439	-104.9693125	39.6893294
-16740	4437	10005	0.047793833799427	0.047793833799427	-104.9534368	39.6995469	-104.9531164	39.6991948
-3644	3483	3484	0.202897902969007	0.202897902969007	-104.9640501	39.6929756	-104.9640755	39.691151
-2231	2232	2233	0.0942717670146639	0.0942717670146639	-104.9395024	39.7328547	-104.9384001	39.7328678
-2232	2233	2234	0.0947564865992517	0.0947564865992517	-104.9384001	39.7328678	-104.937292	39.7328682
-16741	10005	4510	0.0465117651564764	0.0465117651564764	-104.9531164	39.6991948	-104.9527144	39.6989132
-2248	2251	2252	0.0515208780131149	0.0515208780131149	-104.9592063	39.733462	-104.9586038	39.733462
-16742	4510	10006	0.0392105126712721	0.0392105126712721	-104.9527144	39.6989132	-104.9523627	39.6986871
-3687	3523	3524	0.057537938641533	0.057537938641533	-104.9593466	39.6983911	-104.9586741	39.6983954
-2276	2276	2277	0.201064010739015	0.201064010739015	-104.930959	39.7455899	-104.9309504	39.7473981
-18183	6051	5769	0.201340675613812	0.201340675613812	-105.0269948	39.7856221	-105.0269959	39.7874328
-18863	9178	2185	0.000908525082812035	0.000908525082812035	-105.0164243	39.7306043	-105.0164339	39.7306008
-14108	502	3544	0.223192299132	0.223192299132	-104.9447772	39.7492764	-104.9457557	39.7511373
-16417	3130	3281	0.0400386431725339	0.0400386431725339	-104.970947	39.7024436	-104.9710667	39.7027917
-16286	1362	1363	0.0694355006798695	0.0694355006798695	-104.9710484	39.6970248	-104.9708258	39.6964243
-3729	3563	3564	0.1023601599905	0.1023601599905	-104.9671659	39.7544703	-104.9659688	39.7544499
-13961	9112	9247	0.133632751867418	0.133632751867418	-105.0137882	39.7256148	-105.0153507	39.7256041
-2325	1348	1614	0.104366499106977	0.104366499106977	-104.9759324	39.769905	-104.9767564	39.7705977
-18909	10388	10381	0.014813120492833	0.014813120492833	-105.0124728	39.7502617	-105.0125841	39.7503638
-18903	10381	10380	0.00882005349877488	0.00882005349877488	-105.0125841	39.7503638	-105.0126123	39.7504401
-18454	4296	10295	0.0897566766881454	0.0897566766881454	-105.0410672	39.7539301	-105.041069	39.7531229
-14692	941	2225	0.184174515609916	0.184174515609916	-104.9712147	39.7320508	-104.9712038	39.7337071
-19558	10562	10563	0.0196153093677919	0.0196153093677919	-104.9885838	39.7091493	-104.9888131	39.7091506
-16743	10006	7566	0.0419162617939555	0.0419162617939555	-104.9523627	39.6986871	-104.9519988	39.6984347
-19568	7474	10568	0.0062936328481519	0.0062936328481519	-104.9895159	39.7084654	-104.9895159	39.7084088
-18905	10382	10383	0.00831887899673018	0.00831887899673018	-105.0125197	39.7501462	-105.0124996	39.7502194
-17147	4241	3546	0.202185735299221	0.202185735299221	-104.9751708	39.6966094	-104.9751709	39.6984277
-14720	937	2221	0.184339220920538	0.184339220920538	-104.9735126	39.732045	-104.9735163	39.7337028
-18637	2580	7383	0.244324669292135	0.244324669292135	-105.0330978	39.7229268	-105.0336341	39.725085
-2484	2467	2468	0.0154146632189528	0.0154146632189528	-104.9339464	39.7474085	-104.9337661	39.7474085
-17183	5608	5658	0.149882473899379	0.149882473899379	-104.9716303	39.6911179	-104.9716542	39.6897701
-3908	3707	3708	0.138080579549583	0.138080579549583	-105.0030264	39.7742905	-105.002935	39.7755303
-2555	2532	2533	0.191131540477931	0.191131540477931	-105.0217751	39.73818	-105.0240058	39.7380698
-2556	2533	254	0.098486007419044	0.098486007419044	-105.0240058	39.7380698	-105.0251543	39.7380028
-19573	10570	7473	0.00674972719310255	0.00674972719310255	-104.9892888	39.7085247	-104.9892894	39.708464
-2577	1090	2550	0.0509764502640852	0.0509764502640852	-105.0403847	39.7874333	-105.0409813	39.787434
-17311	5685	5705	0.205154639659543	0.205154639659543	-104.9611673	39.6929737	-104.9611673	39.6911287
-20594	10852	10864	0.00559477666444464	0.00559477666444464	-105.0249031	39.7609028	-105.0249015	39.7609531
-2602	2568	2565	0.0838899757725962	0.0838899757725962	-104.9535373	39.7090785	-104.9525578	39.7090414
-13584	9079	9135	0.0736016285399027	0.0736016285399027	-104.9930943	39.7037972	-104.9922711	39.7036048
-3952	3748	3749	0.123087650580437	0.123087650580437	-105.0264583	39.7729227	-105.026537	39.774028
-2626	2587	2588	0.00484286584971978	0.00484286584971978	-105.0361228	39.7229454	-105.0361794	39.7229441
-2627	2588	2589	0.0472712028951763	0.0472712028951763	-105.0361794	39.7229441	-105.0367321	39.7229406
-18404	10286	7165	0.0480937532986949	0.0480937532986949	-105.0387191	39.7554242	-105.0381565	39.7554232
-18406	9349	8340	0.136218529796162	0.136218529796162	-105.0259368	39.7560399	-105.0259235	39.7572649
-13586	9135	9136	0.116423294527986	0.116423294527986	-104.9922711	39.7036048	-104.9910031	39.7032246
-14719	5893	937	0.0748599535472642	0.0748599535472642	-104.9735211	39.7313718	-104.9735126	39.732045
-2721	2676	2677	0.00391406141859358	0.00391406141859358	-104.9524392	39.7606894	-104.9524392	39.7607246
-18735	4002	7603	0.202077020511888	0.202077020511888	-105.0300499	39.727056	-105.0294393	39.7288116
-17677	6029	10165	0.522362145407342	0.522362145407342	-104.9855966	39.7797106	-104.9794908	39.7794867
-17480	344	5940	0.0510780896194201	0.0510780896194201	-105.0150427	39.753956	-105.0154315	39.7536072
-2823	2771	2261	0.100546651913918	0.100546651913918	-104.9317009	39.7674455	-104.930525	39.7674191
-18144	10275	10261	0.405650212701817	0.405650212701817	-105.0175785	39.7910801	-105.0175788	39.787432
-12350	8663	8667	0.00958750951684791	0.00958750951684791	-105.0123961	39.7526334	-105.0124751	39.7525722
-4125	3888	3889	0.19728512260693	0.19728512260693	-104.9634642	39.7350462	-104.9634771	39.7368204
-2839	2788	1047	0.105687024742303	0.105687024742303	-104.9634422	39.7669465	-104.9622057	39.7669537
-2840	1047	2789	0.0528381886609336	0.0528381886609336	-104.9622057	39.7669537	-104.9615875	39.7669517
-12351	8667	8668	0.0176529909929813	0.0176529909929813	-105.0124751	39.7525722	-105.0125278	39.7524187
-19572	10564	10570	0.0698992084212194	0.0698992084212194	-104.9892825	39.7091533	-104.9892888	39.7085247
-16413	9458	9887	0.0468003057153474	0.0468003057153474	-104.9711616	39.7030276	-104.9708237	39.7033586
-2910	785	2854	0.0936375066158938	0.0936375066158938	-105.0042571	39.7018586	-105.0038253	39.7010848
-12361	8671	8672	0.0146217858658369	0.0146217858658369	-105.0117521	39.7531191	-105.011589	39.7530795
-2955	2899	2900	0.139071498957734	0.139071498957734	-104.9733522	39.7569824	-104.9733518	39.7582331
-20621	10800	10799	0.0197706815366264	0.0197706815366264	-105.0218874	39.7616318	-105.0218863	39.7618096
-16441	5747	9898	0.0366397439833697	0.0366397439833697	-104.9676964	39.6930969	-104.9681189	39.6930432
-3003	2938	2939	0.343360355018568	0.343360355018568	-104.9247744	39.7038309	-104.92577	39.7008395
-20697	4524	10911	0.0102002426471616	0.0102002426471616	-105.0250845	39.7632041	-105.0250813	39.7632958
-20441	10798	10799	0.0151893809033584	0.0151893809033584	-105.0218855	39.7619462	-105.0218863	39.7618096
-3052	2983	2984	0.049669116788992	0.049669116788992	-105.038723	39.7584839	-105.039304	39.7584901
-17130	4371	4372	0.0862019013563638	0.0862019013563638	-104.976372	39.6922088	-104.9763628	39.692984
-3072	3004	3006	0.148595619798792	0.148595619798792	-104.9912932	39.744504	-104.9900832	39.7454633
-20009	9620	10046	0.0380951574175552	0.0380951574175552	-105.0020353	39.747495	-105.001796	39.747784
-4390	4106	695	0.201687631399372	0.201687631399372	-104.9512775	39.7401701	-104.9512663	39.7419839
-18702	2606	1861	0.182749323037212	0.182749323037212	-105.042706	39.7229718	-105.0427108	39.7213283
-3122	2901	3051	0.104668558602022	0.104668558602022	-104.9733513	39.7594897	-104.9721269	39.7594785
-20265	5574	10723	0.0117861788911356	0.0117861788911356	-105.0440065	39.7739591	-105.0438686	39.7739577
-20266	10724	7552	0.00870010659628447	0.00870010659628447	-105.0452474	39.7730203	-105.0451456	39.7730203
-19624	10591	10497	0.00644185269782912	0.00644185269782912	-104.9910656	39.7099299	-104.9911409	39.7099307
-19579	10573	10574	0.0879788736402366	0.0879788736402366	-104.9885953	39.7076107	-104.9885894	39.7084019
-18895	10376	10377	0.0641298068195797	0.0641298068195797	-105.0120158	39.75012	-105.0124804	39.7505728
-20011	10694	10695	0.0242395353024572	0.0242395353024572	-105.0045347	39.7529806	-105.0047359	39.752827
-17687	6171	6172	0.0391351463481426	0.0391351463481426	-104.9860994	39.7796015	-104.9856415	39.7795956
-3160	3084	3085	0.0490903700114876	0.0490903700114876	-104.9792501	39.712914	-104.9786762	39.712912
-19594	10580	10495	0.00720293691626167	0.00720293691626167	-104.991062	39.7102859	-104.9911462	39.7102866
-3180	3100	3101	0.129889039932712	0.129889039932712	-104.9377781	39.7130688	-104.9362596	39.7130732
-17168	5241	5262	0.201125324676422	0.201125324676422	-104.9740116	39.7038551	-104.9739919	39.7056638
-17121	1798	4176	0.205688375484509	0.205688375484509	-104.9775097	39.6947606	-104.9775098	39.6966104
-3202	3118	3119	0.112364882779035	0.112364882779035	-104.9350589	39.6929564	-104.9350503	39.6919459
-14726	5162	6220	0.0504817306174529	0.0504817306174529	-104.9746897	39.7395432	-104.9752801	39.7395432
-3225	3140	3141	0.161478257380345	0.161478257380345	-104.964537	39.7804755	-104.9645304	39.7819277
-13781	438	3176	0.297045355127737	0.297045355127737	-105.0062729	39.7603999	-105.0085577	39.7583871
-19813	5371	10633	0.121358837066421	0.121358837066421	-105.0021749	39.7336954	-105.0021797	39.732604
-3298	3207	2047	0.106039987596014	0.106039987596014	-104.9687078	39.7111105	-104.9674682	39.7111011
-17169	5262	1912	0.201876443466571	0.201876443466571	-104.9739919	39.7056638	-104.9739477	39.707479
-4605	3695	4261	0.0511463408235916	0.0511463408235916	-104.9617464	39.6965839	-104.9611486	39.6965834
-3320	3225	3226	0.12416264535459	0.12416264535459	-105.0174873	39.7717281	-105.0189401	39.7717271
-19269	10421	10423	0.00254934916501421	0.00254934916501421	-104.9951815	39.7462368	-104.9951604	39.7462206
-18686	1372	4116	0.0631464225691973	0.0631464225691973	-105.0366894	39.7117844	-105.0367025	39.7112166
-20456	10811	10791	0.0266421174352104	0.0266421174352104	-105.022998	39.7596958	-105.0231621	39.7594921
-20624	10873	10804	0.10579809531994	0.10579809531994	-105.0229935	39.7611592	-105.0242305	39.7611919
-18140	10260	10273	0.404128367861769	0.404128367861769	-105.0164142	39.7874331	-105.0164012	39.7910675
-4673	4035	4316	0.0606123696093501	0.0606123696093501	-105.0344405	39.6976368	-105.03444	39.6970917
-3387	3285	3286	0.00355897702027561	0.00355897702027561	-104.9500244	39.7038338	-104.9499828	39.7038341
-3388	3286	3287	0.0772193168955733	0.0772193168955733	-104.9499828	39.7038341	-104.9490802	39.7038404
-18146	10276	10258	0.404206655907194	0.404206655907194	-105.0117797	39.791059	-105.0117945	39.7874239
-4696	808	3552	0.152717552993661	0.152717552993661	-104.9769333	39.7532524	-104.9769434	39.7546258
-3410	3303	3304	0.147141483236073	0.147141483236073	-104.9898413	39.756424	-104.9886307	39.7573647
-20283	10722	10688	0.0815558763222832	0.0815558763222832	-105.044096	39.7739592	-105.0440849	39.7746926
-20448	10804	10757	0.0136201124223367	0.0136201124223367	-105.0242305	39.7611919	-105.0243898	39.7611891
-20785	10292	10946	0.00447271282341959	0.00447271282341959	-105.0280151	39.7614164	-105.0280565	39.761441
-19630	10593	10504	0.00657829834277663	0.00657829834277663	-104.9910888	39.7082874	-104.9911657	39.7082872
-3431	3318	3319	0.157091916454475	0.157091916454475	-104.957059	39.7805126	-104.9570312	39.7819252
-20450	10805	10806	0.0327940652155406	0.0327940652155406	-105.0159721	39.7585081	-105.0163557	39.7585125
-4743	1385	4362	0.103327121803573	0.103327121803573	-105.0016028	39.7121409	-105.0015545	39.7112124
-18254	6754	8093	0.140439193425512	0.140439193425512	-105.0275819	39.7660439	-105.0259388	39.766049
-18250	9369	6873	0.0520299718080319	0.0520299718080319	-105.0258904	39.7692943	-105.025904	39.7697621
-20787	10932	5700	0.00677435562999442	0.00677435562999442	-105.0356849	39.762197	-105.035764	39.7622008
-3475	3354	3355	0.201619360833214	0.201619360833214	-104.9338255	39.7274243	-104.9338318	39.7292375
-14728	6303	5053	0.0505955795491821	0.0505955795491821	-104.9758778	39.7395535	-104.9764695	39.7395488
-3501	59	3374	0.0977645612190622	0.0977645612190622	-104.9247401	39.6995385	-104.9240963	39.6988121
-4808	4414	4415	0.102078381821333	0.102078381821333	-105.0298228	39.7058121	-105.0297971	39.7067299
-3525	3393	3394	0.0602077843108352	0.0602077843108352	-105.0351232	39.7277059	-105.0351404	39.7282472
-18251	6873	8493	0.0500003986375519	0.0500003986375519	-105.025904	39.7697621	-105.0258941	39.7702117
-3545	656	1887	0.0518725917476049	0.0518725917476049	-105.0346018	39.7589808	-105.0346033	39.7594473
-14732	5467	6342	0.17284299485541	0.17284299485541	-104.97589	39.7384222	-104.9758813	39.7368678
-3566	1664	1683	0.0314909646044893	0.0314909646044893	-105.034629	39.767391	-105.0346312	39.7676742
-17138	1909	4488	0.199449310001805	0.199449310001805	-104.9763514	39.7074715	-104.9762867	39.7092645
-18256	7043	3984	0.199449230757582	0.199449230757582	-105.0322741	39.7687942	-105.0299405	39.7688003
-4925	3762	2559	0.0885452473584724	0.0885452473584724	-105.0051409	39.7854596	-105.0051367	39.7862559
-18261	6496	2547	0.410253746717568	0.410253746717568	-105.0386639	39.7911236	-105.0386666	39.7874341
-3637	3478	3266	0.200452444377038	0.200452444377038	-104.9639908	39.7056725	-104.9639994	39.7038698
-3638	3266	3479	0.201663130575812	0.201663130575812	-104.9639994	39.7038698	-104.9639986	39.7020562
-20636	4518	10876	0.0502632727704227	0.0502632727704227	-105.0137768	39.7632209	-105.0137702	39.7627689
-3656	1794	3493	0.171297280470528	0.171297280470528	-104.9284394	39.6945392	-104.9285338	39.6930004
-18171	6061	4076	0.198476287736927	0.198476287736927	-105.0339562	39.7856259	-105.0339181	39.7838412
-20376	10759	10760	0.116931333825994	0.116931333825994	-105.0243509	39.7608348	-105.0229928	39.7607087
-3702	3537	3538	0.048566556365416	0.048566556365416	-104.9798091	39.6984199	-104.9792415	39.6984264
-20385	10293	10769	0.0538892457987372	0.0538892457987372	-105.0260789	39.759245	-105.0254485	39.7592401
-18174	6420	6455	0.4094647827628	0.4094647827628	-105.0245269	39.7874302	-105.024535	39.7911126
-5048	4577	4578	0.133343896044873	0.133343896044873	-105.0315052	39.7415025	-105.0330646	39.7415188
-3745	3575	3576	0.0911473636959273	0.0911473636959273	-104.9499292	39.7544371	-104.9488635	39.7544629
-3747	3577	3469	0.101252045857741	0.101252045857741	-104.9476756	39.7544343	-104.9464912	39.7544409
-20384	10767	10768	0.0160296914364663	0.0160296914364663	-105.0239411	39.7605037	-105.0241099	39.7605665
-17309	4261	5684	0.20074031502923	0.20074031502923	-104.9611486	39.6965834	-104.9611511	39.6947781
-18311	7054	7244	0.0289643230302344	0.0289643230302344	-105.0315008	39.7711217	-105.0311621	39.7711127
-20470	10819	10820	0.0323669425461701	0.0323669425461701	-105.0192728	39.7586316	-105.0188943	39.7586235
-14736	4161	4770	0.262098569801346	0.262098569801346	-104.9769715	39.7201202	-104.97698	39.7224773
-5118	4637	4638	0.0862888373921514	0.0862888373921514	-105.0198922	39.7331309	-105.0201418	39.7338828
-18265	6532	1691	0.20439620202731	0.20439620202731	-105.0398808	39.7657795	-105.039903	39.7676176
-20472	10821	10822	0.0473810496096361	0.0473810496096361	-105.0191892	39.758896	-105.0191858	39.7593221
-5168	2615	4670	0.0537518017226415	0.0537518017226415	-104.9940077	39.7225208	-104.9940093	39.7230042
-18530	9153	9524	0.0561612407510351	0.0561612407510351	-105.0338511	39.7495101	-105.0336803	39.7499978
-17081	882	4467	0.138148999917071	0.138148999917071	-104.9615915	39.7644962	-104.9615875	39.7657386
-20012	10207	7896	0.145636470907972	0.145636470907972	-104.9904003	39.7512676	-104.9891984	39.7521958
-20423	10784	10785	0.00445123207828982	0.00445123207828982	-105.0187393	39.7585283	-105.0187626	39.7585641
-19137	10436	10430	0.0315234230528839	0.0315234230528839	-105.0130548	39.7409589	-105.0132616	39.7411936
-17145	4684	1801	0.196612355705575	0.196612355705575	-104.9751601	39.6929864	-104.9751816	39.6947545
-3889	3694	83	0.201794860941248	0.201794860941248	-104.9616812	39.702043	-104.961704	39.7002283
-18574	10316	10323	0.0808271649311999	0.0808271649311999	-105.0343233	39.7828561	-105.0341543	39.7821409
-17148	3546	46	0.198774198414449	0.198774198414449	-104.9751709	39.6984277	-104.9751601	39.7002153
-3912	3710	3711	0.148294717491307	0.148294717491307	-104.9874523	39.7183509	-104.9891861	39.7183575
-20615	10786	10857	0.0479734082124594	0.0479734082124594	-105.0188457	39.7592189	-105.0184643	39.7595354
-18267	6545	2438	0.164157220604829	0.164157220604829	-105.039903	39.7694505	-105.0399004	39.7709268
-17099	332	3745	0.0956275481171213	0.0956275481171213	-104.9554298	39.7451641	-104.9546644	39.7457912
-14740	6607	3802	0.199799384709315	0.199799384709315	-104.9769867	39.7272649	-104.9769713	39.7290617
-18269	5736	5525	0.155855016610815	0.155855016610815	-105.0398843	39.7724635	-105.0398709	39.7738651
-5281	4748	4749	0.0137701294893219	0.0137701294893219	-104.9856194	39.7225378	-104.9854584	39.7225389
-3961	3755	3756	0.201785607236284	0.201785607236284	-105.0264145	39.7856195	-105.0264176	39.7874342
-3963	3757	1865	0.238183107088451	0.238183107088451	-104.9873962	39.696636	-104.9901799	39.6966614
-18538	10309	10310	0.222695826046938	0.222695826046938	-105.0483038	39.7607426	-105.0509091	39.7607413
-4053	3833	3834	0.0227974048946719	0.0227974048946719	-105.0428186	39.7485544	-105.0428357	39.748759
-18576	10324	10320	0.158325840757882	0.158325840757882	-105.0327262	39.781661	-105.0313943	39.7806712
-5401	3070	4833	0.174791291148441	0.174791291148441	-104.9437655	39.7130666	-104.9437517	39.7114947
-20827	9001	9205	0.0113889892669974	0.0113889892669974	-105.0253805	39.7605003	-105.0253893	39.7603981
-16010	9780	9781	0.00910284197008254	0.00910284197008254	-104.9993976	39.688968	-104.9994018	39.6890498
-18606	8065	6592	0.262343816062173	0.262343816062173	-105.0356674	39.7306063	-105.0356782	39.7329656
-18608	2631	5208	0.201029440504885	0.201029440504885	-105.0445241	39.7221383	-105.0445268	39.7239462
-20328	10745	10742	0.0339039031846942	0.0339039031846942	-105.0237282	39.7585962	-105.0237259	39.7589011
-4098	1552	3870	0.130787042699874	0.130787042699874	-104.944264	39.777781	-104.9440689	39.7789476
-16079	9815	9284	0.0214365694827313	0.0214365694827313	-104.9728236	39.7796294	-104.9725733	39.7796422
-18703	1861	7871	0.177358977412927	0.177358977412927	-105.0427108	39.7213283	-105.0426986	39.7197333
-5445	4865	4866	0.0483753395839426	0.0483753395839426	-104.9775716	39.7351373	-104.9770059	39.7351417
-4124	2246	3888	0.176179418850458	0.176179418850458	-104.9634985	39.733462	-104.9634642	39.7350462
-18692	1856	5978	0.157563244482301	0.157563244482301	-105.0391086	39.721333	-105.0391098	39.719916
-5513	4918	1222	0.0334183748575429	0.0334183748575429	-105.0119518	39.7375725	-105.0123423	39.7375848
-4193	3941	3942	0.10150841538758	0.10150841538758	-105.000152	39.7393746	-105.0001356	39.7384618
-18280	6739	6757	0.185196443942793	0.185196443942793	-105.0386693	39.7783767	-105.0386612	39.7767112
-18287	3986	6762	0.199195011240905	0.199195011240905	-105.0299471	39.7698868	-105.0276181	39.7698189
-4211	3961	3962	0.203354581445588	0.203354581445588	-105.0001766	39.7184091	-105.0001681	39.7165803
-18282	6460	6792	0.289344591592559	0.289344591592559	-105.0386826	39.775685	-105.038701	39.7730829
-18709	7654	7506	0.191266971634704	0.191266971634704	-105.0411042	39.7282537	-105.0410987	39.7299738
-4258	4004	4005	0.0557864946968893	0.0557864946968893	-105.0300506	39.7288149	-105.0300506	39.7293166
-18293	6900	6901	0.125065642459057	0.125065642459057	-105.0409865	39.7832584	-105.0409738	39.7821337
-4279	4022	4023	0.136471513645059	0.136471513645059	-105.0299425	39.7548206	-105.0299339	39.7560479
-18285	6794	6824	0.0676234540262284	0.0676234540262284	-105.0322928	39.76996	-105.0315024	39.7699322
-20412	10780	10737	0.00327519593576582	0.00327519593576582	-105.0250471	39.7600231	-105.0250397	39.7599942
-5639	1165	885	0.138504687840451	0.138504687840451	-104.9585626	39.7632361	-104.9585659	39.7644817
-18705	4059	9745	0.17218742858343	0.17218742858343	-105.0426948	39.7181453	-105.0428433	39.716601
-5680	5036	5037	0.13925145495263	0.13925145495263	-104.9757455	39.7507464	-104.9757231	39.7519986
-4340	4070	4006	0.0527657969561626	0.0527657969561626	-105.0293098	39.784231	-105.0299104	39.7841207
-4341	4006	4071	0.045563339939639	0.045563339939639	-105.0299104	39.7841207	-105.0304275	39.7840207
-18706	9745	3863	0.0360430655172132	0.0360430655172132	-105.0428433	39.716601	-105.0432639	39.7165811
-4363	4087	1214	0.050228703045046	0.050228703045046	-105.0117891	39.7838304	-105.0123769	39.7838268
-18708	6218	7654	0.273874816557472	0.273874816557472	-105.0410732	39.7257908	-105.0411042	39.7282537
-14701	5065	986	0.133961657579708	0.133961657579708	-104.9746455	39.7240692	-104.9740817	39.7251932
-4385	4078	4080	0.499220390775423	0.499220390775423	-104.9910214	39.7840807	-104.9968637	39.7840925
-17161	5086	5087	0.0305453434226413	0.0305453434226413	-104.9740443	39.690895	-104.9740434	39.6911697
-4410	4124	3048	0.142041157035339	0.142041157035339	-104.9512246	39.7581873	-104.9511947	39.7594645
-18547	10315	7542	0.326789019301198	0.326789019301198	-105.0487786	39.766951	-105.0449552	39.7669613
-5780	4917	5106	0.0912724900005868	0.0912724900005868	-104.9558286	39.7101945	-104.9558382	39.7110153
-4431	4139	2389	0.109327413388579	0.109327413388579	-104.9508399	39.7728937	-104.950844	39.7738769
-5754	5082	5083	0.0244848814587712	0.0244848814587712	-104.9957853	39.7079855	-104.9957531	39.7077667
-18548	7542	5567	0.0788647232749776	0.0788647232749776	-105.0449552	39.7669613	-105.0440325	39.7669654
-5829	5144	5145	0.0718528722690416	0.0718528722690416	-104.9280639	39.7313625	-104.9273197	39.7310625
-4478	4170	4171	0.114300734663783	0.114300734663783	-104.9694426	39.7200889	-104.9681062	39.7200857
-14104	421	3767	0.239382300921688	0.239382300921688	-104.9424633	39.7443997	-104.9431585	39.7464851
-5849	1966	5160	0.213373795201997	0.213373795201997	-104.9270076	39.7437306	-104.9270451	39.7456493
-4498	1369	4184	0.105991036166523	0.105991036166523	-104.9923595	39.7121202	-104.9923849	39.7111672
-17123	3542	42	0.197838013671145	0.197838013671145	-104.977531	39.6984299	-104.9775311	39.7002091
-18295	1428	6901	0.00619376962359973	0.00619376962359973	-105.0409732	39.782078	-105.0409738	39.7821337
-18296	6901	6968	0.214788257098635	0.214788257098635	-105.0409738	39.7821337	-105.0409894	39.7802021
-5920	5198	5199	0.0509206897939403	0.0509206897939403	-104.9957805	39.7241162	-104.9963759	39.7241168
-4576	4176	1777	0.0501165848501884	0.0501165848501884	-104.9775098	39.6966104	-104.9769241	39.6966037
-20629	10873	10847	0.0359844691550279	0.0359844691550279	-105.0229935	39.7611592	-105.0229893	39.7608356
-18356	7764	7765	0.203486837058476	0.203486837058476	-105.035177	39.7783841	-105.0351796	39.7802141
-18353	7040	3427	0.201724758100166	0.201724758100166	-105.0322731	39.7669531	-105.0346332	39.7669387
-6017	3447	5269	0.0916999906376171	0.0916999906376171	-104.9462338	39.7680932	-104.9451609	39.7680906
-4669	4312	4313	0.0844811623232087	0.0844811623232087	-105.0344662	39.7021142	-105.0344405	39.7013547
-18355	7763	7764	0.18255985476615	0.18255985476615	-105.0351781	39.7767423	-105.035177	39.7783841
-20388	10772	10773	0.00806462172146812	0.00806462172146812	-105.0237551	39.7606258	-105.0238489	39.7606336
-4690	1574	4327	0.172428634063548	0.172428634063548	-105.0360845	39.6869978	-105.0362476	39.6854522
-14761	7128	660	0.183084210873309	0.183084210873309	-104.9793265	39.7400224	-104.9793171	39.7416689
-18307	7041	3428	0.200871545358079	0.200871545358079	-105.0322795	39.7678767	-105.0346296	39.7678582
-4768	2038	4380	0.146902820961905	0.146902820961905	-104.9740667	39.759206	-104.9752846	39.7582739
-18357	7765	7253	0.0959812077322034	0.0959812077322034	-105.0351796	39.7802141	-105.0351261	39.7810763
-17178	5409	5410	0.041431272963648	0.041431272963648	-104.9704716	39.6889796	-104.9704709	39.6893522
-4841	4434	4435	0.0243817622036277	0.0243817622036277	-104.957527	39.709294	-104.957697	39.709118
-19636	10595	10596	0.0236895488952709	0.0236895488952709	-104.9882841	39.7073658	-104.9881372	39.7071852
-20494	10814	10837	0.00453902687683386	0.00453902687683386	-105.0192222	39.758524	-105.0192753	39.758524
-12316	8640	8559	0.0170391288088959	0.0170391288088959	-105.0078019	39.7541251	-105.0076796	39.7542461
-4864	4448	4449	0.051463626660104	0.051463626660104	-104.9785732	39.7570722	-104.9789969	39.757401
-14105	3767	490	0.17231974049998	0.17231974049998	-104.9431585	39.7464851	-104.9415277	39.7473958
-18310	7244	7054	0.0289643230302344	0.0289643230302344	-105.0311621	39.7711127	-105.0315008	39.7711217
-4906	3886	865	0.080856531304005	0.080856531304005	-104.9437961	39.7657098	-104.9428501	39.7657082
-14762	660	7162	0.177556995744578	0.177556995744578	-104.9793171	39.7416689	-104.9793413	39.7432656
-14106	490	492	0.200841500024827	0.200841500024827	-104.9415277	39.7473958	-104.9415359	39.749202
-6278	5468	5223	0.0507325637005759	0.0507325637005759	-104.9753042	39.7384242	-104.9747109	39.7384283
-20498	2955	10783	0.00926966063781334	0.00926966063781334	-105.0159686	39.7584009	-105.0159618	39.7583177
-18511	9529	10302	0.134870017545438	0.134870017545438	-105.0410698	39.7499582	-105.0410619	39.7511711
-18559	10317	10318	0.0818849597364774	0.0818849597364774	-105.03063	39.7832519	-105.0297002	39.7834301
-5006	4551	4552	0.0605833275140723	0.0605833275140723	-105.0217216	39.7338931	-105.0217376	39.7344378
-20497	10805	2955	0.011923850145444	0.011923850145444	-105.0159721	39.7585081	-105.0159686	39.7584009
-6365	1258	377	0.0777271141684953	0.0777271141684953	-105.0204854	39.7741292	-105.0213949	39.7741289
-5032	3218	4567	0.203476554448063	0.203476554448063	-104.9605331	39.7111143	-104.9605404	39.7092844
-18309	3989	7244	0.103816807067418	0.103816807067418	-105.0299481	39.7710804	-105.0311621	39.7711127
-6389	5536	5537	0.0941709460297732	0.0941709460297732	-104.9948277	39.7742296	-104.9959296	39.7742339
-5052	4580	4581	0.0994044886957745	0.0994044886957745	-105.0369879	39.7415159	-105.0381505	39.741515
-19827	9253	7642	0.176656738058614	0.176656738058614	-105.0022016	39.7289106	-105.0022097	39.7273219
-18315	7190	1430	0.126827993445383	0.126827993445383	-105.0421451	39.7832183	-105.0421723	39.7820779
-18691	2597	1856	0.178902858758576	0.178902858758576	-105.0391167	39.7229419	-105.0391086	39.721333
-6529	1038	5638	0.106710156184621	0.106710156184621	-104.9622461	39.7557325	-104.9609978	39.7557305
-5211	4703	4704	0.0593965930317325	0.0593965930317325	-104.9883469	39.709334	-104.9890412	39.7093409
-18320	7455	6063	0.193748278871749	0.193748278871749	-105.0363356	39.7838724	-105.0363465	39.7856148
-5307	4763	4764	0.0623737801227747	0.0623737801227747	-104.9601753	39.7225386	-104.959446	39.7225375
-20402	10771	10761	0.045832556045337	0.045832556045337	-105.0250699	39.7607782	-105.0250806	39.7603661
-6659	5732	716	0.0227471694550216	0.0227471694550216	-105.0039126	39.7730596	-105.0041786	39.7730524
-5331	3596	4783	0.0944705655668644	0.0944705655668644	-104.9293972	39.7231683	-104.9282926	39.7231695
-14107	492	502	0.277229511676695	0.277229511676695	-104.9415359	39.749202	-104.9447772	39.7492764
-6732	5783	5784	0.103949862025848	0.103949862025848	-104.9941411	39.7504097	-104.9949995	39.7510718
-14767	7420	4860	0.190666070334235	0.190666070334235	-104.9804389	39.7368731	-104.9804415	39.7351584
-20406	8354	10772	0.00730920335045724	0.00730920335045724	-105.0236698	39.7606212	-105.0237551	39.7606258
-6754	5799	5800	0.0473962648551068	0.0473962648551068	-105.0328002	39.7874226	-105.0333549	39.7874228
-14769	7430	4858	0.18998910813567	0.18998910813567	-104.9816663	39.7368655	-104.981675	39.7351569
-5443	4863	4864	0.0452091651037792	0.0452091651037792	-104.9787104	39.7351477	-104.9781817	39.7351466
-19834	10654	9725	0.196434640947063	0.196434640947063	-105.0398868	39.736613	-105.0393021	39.7349046
-6799	2741	5836	0.0500630331544159	0.0500630331544159	-104.9558357	39.6911246	-104.9552507	39.6911326
-20523	2708	10752	0.00659207654644855	0.00659207654644855	-105.0229124	39.7619341	-105.0229895	39.7619327
-18323	7479	7480	0.203575671880267	0.203575671880267	-105.0433631	39.7802085	-105.043363	39.7783777
-18329	6073	7593	0.194237102947714	0.194237102947714	-105.0433238	39.7856121	-105.0433336	39.7838653
-5506	4912	2121	0.0993922299820147	0.0993922299820147	-104.9280548	39.7346813	-104.9268925	39.7346889
-19837	5204	5602	0.169326060361496	0.169326060361496	-105.000925	39.7241245	-105.0016002	39.725556
-6868	3299	5873	0.0385426751655708	0.0385426751655708	-105.0432684	39.7149673	-105.043719	39.7149652
-5529	4929	4930	0.0186787878300106	0.0186787878300106	-104.9980335	39.7400187	-104.9981378	39.7401663
-5530	4930	4931	0.150638241291928	0.150638241291928	-104.9981378	39.7401663	-104.9988399	39.7414088
-20519	10815	10845	0.0426977620157165	0.0426977620157165	-105.0192433	39.7583417	-105.0187438	39.7583413
-6909	5905	5906	0.0925705753401188	0.0925705753401188	-104.9394475	39.7492413	-104.9383649	39.7492571
-5581	4968	4969	0.19364655602673	0.19364655602673	-104.9800866	39.7801495	-104.9800922	39.781891
-20802	10942	606	0.00932539286509621	0.00932539286509621	-105.0279694	39.7630233	-105.0278867	39.763078
-20522	10808	2708	0.0062556157491122	0.0062556157491122	-105.0228402	39.7619433	-105.0229124	39.7619341
-5631	3571	5004	0.140817256140417	0.140817256140417	-104.9585602	39.75446	-104.9585604	39.7557264
-18338	2435	7632	0.201752260263955	0.201752260263955	-105.0387198	39.7712682	-105.038723	39.7730826
-20016	2696	8044	0.148197142125826	0.148197142125826	-104.984388	39.7559539	-104.9831794	39.7569094
-5653	2345	4151	0.175358365382788	0.175358365382788	-104.9585534	39.7194149	-104.9582358	39.7209729
-18327	1432	7191	0.123062885737589	0.123062885737589	-105.0433255	39.7820793	-105.0433363	39.783186
-6998	2684	5970	0.144359466732262	0.144359466732262	-104.9795298	39.7522538	-104.9783626	39.753192
-5670	679	5028	0.00422540721209624	0.00422540721209624	-104.9591758	39.7416126	-104.9591758	39.7416506
-5671	5028	5029	0.199984733552555	0.199984733552555	-104.9591758	39.7416506	-104.9591698	39.7434491
-20382	10765	10766	0.0345648031474255	0.0345648031474255	-105.023905	39.7606411	-105.0243045	39.7606892
-18350	7716	6756	0.141149359906032	0.141149359906032	-105.0259442	39.7669727	-105.0275956	39.7669634
-5748	5078	5079	0.20268033504505	0.20268033504505	-105.0378651	39.6985745	-105.0378823	39.6967518
-18163	10259	6036	0.2014076606309	0.2014076606309	-105.0152653	39.7874334	-105.0152693	39.7856221
-14704	5105	3799	0.199599075644316	0.199599075644316	-104.9735001	39.7272799	-104.9734712	39.7290748
-18162	2170	10259	0.118558518008842	0.118558518008842	-105.0146867	39.7884025	-105.0152653	39.7874334
-20019	4453	5501	0.145746885757253	0.145746885757253	-104.980759	39.7587503	-104.9796104	39.759719
-5830	5145	2118	0.0459910302398271	0.0459910302398271	-104.9273197	39.7310625	-104.9268844	39.7308196
-20020	5501	7075	0.147873409818305	0.147873409818305	-104.9796104	39.759719	-104.9783828	39.760656
-14776	5927	3806	0.151596310173331	0.151596310173331	-104.9804991	39.7304325	-104.9805124	39.7290692
-5853	4622	5163	0.10255879316328	0.10255879316328	-104.9274625	39.7446677	-104.9274829	39.7455899
-18343	7662	5247	0.110734380038432	0.110734380038432	-105.0351663	39.7639675	-105.0351958	39.7649631
-20022	8291	7898	0.145585163841291	0.145585163841291	-104.9912817	39.7519386	-104.9900722	39.7528603
-7192	6084	6085	0.188916282974339	0.188916282974339	-105.0300536	39.7630057	-105.0322636	39.7629835
-18345	6874	1684	0.205522453761373	0.205522453761373	-105.0351985	39.7658172	-105.0352055	39.7676655
-20542	2953	10853	0.0105529318413212	0.0105529318413212	-105.0157188	39.7584009	-105.015713	39.7584957
-18348	2429	7700	0.202520445331427	0.202520445331427	-105.0352091	39.7713194	-105.0352012	39.7731407
-20024	8856	9319	0.148299248554164	0.148299248554164	-104.988892	39.7538026	-104.9876534	39.7547364
-7238	4839	1519	0.0519761467059316	0.0519761467059316	-104.9751709	39.7092743	-104.9745633	39.7092771
-14772	923	5925	0.177924520685585	0.177924520685585	-104.9816421	39.7320276	-104.9816081	39.7304277
-20544	10831	10809	0.07258379165013	0.07258379165013	-105.0193747	39.7583443	-105.0193936	39.7576917
-5934	4646	3645	0.198637387669602	0.198637387669602	-105.0186425	39.7238822	-105.0209651	39.7238828
-20537	10850	10851	0.00393462806086889	0.00393462806086889	-105.0226484	39.7596157	-105.0226242	39.7596458
-7284	6141	11	0.135513694564746	0.135513694564746	-105.0283644	39.7451504	-105.0283851	39.746369
-5958	5230	5231	0.202816769336327	0.202816769336327	-104.9546568	39.6947809	-104.9546783	39.692957
-20538	10764	10852	0.00745697116010785	0.00745697116010785	-105.0249892	39.7609136	-105.0249031	39.7609028
-7311	5071	6157	0.164940273242935	0.164940273242935	-105.037844	39.6894614	-105.0390628	39.6883122
-5976	4624	1247	0.13286062727511	0.13286062727511	-105.0189554	39.7644371	-105.0205098	39.764433
-5978	4556	2725	0.132159028738313	0.132159028738313	-105.0220655	39.7644258	-105.0236117	39.7644248
-20539	10852	10833	0.00647861100893927	0.00647861100893927	-105.0249031	39.7609028	-105.0248283	39.7608934
-7339	6169	6170	0.0619567458929491	0.0619567458929491	-104.9601619	39.7241291	-104.9594375	39.7241351
-5998	5256	5257	0.103904946256075	0.103904946256075	-104.9671812	39.7681442	-104.9659655	39.7681412
-19289	10469	10470	0.0657689911002152	0.0657689911002152	-104.9881479	39.7392371	-104.988856	39.7394681
-20550	10854	10842	0.00418096419493106	0.00418096419493106	-105.0159697	39.7588715	-105.0159695	39.7589091
-6016	5268	3447	0.109289564409357	0.109289564409357	-104.9475125	39.7680963	-104.9462338	39.7680932
-20541	10846	2953	0.0102415664506872	0.0102415664506872	-105.0157176	39.7583088	-105.0157188	39.7584009
-6042	2870	5284	0.0497761483323909	0.0497761483323909	-104.9829275	39.7855836	-104.982919	39.785136
-20446	10802	10794	0.010877497210246	0.010877497210246	-105.0218433	39.761098	-105.0218405	39.7610002
-6066	1342	5306	0.205811743638723	0.205811743638723	-105.0226989	39.7129828	-105.0226912	39.7111319
-20547	2961	10838	0.0117661269256179	0.0117661269256179	-105.021139	39.7584434	-105.0210227	39.7583868
-7483	6261	1188	0.16816674729097	0.16816674729097	-104.9613184	39.7256069	-104.9613359	39.7271192
-6138	3644	4554	0.0976185559336041	0.0976185559336041	-105.0209565	39.7228992	-105.0220979	39.7228967
-18364	7802	1660	0.0598129332818693	0.0598129332818693	-105.0259573	39.7679612	-105.0259529	39.7674233
-7554	6302	1356	0.0804502555219789	0.0804502555219789	-105.015828	39.7832739	-105.015824	39.7825504
-6209	5412	1185	0.167137462035015	0.167137462035015	-104.9658624	39.7255988	-104.9658583	39.7271019
-6210	1185	5413	0.0233182677092941	0.0233182677092941	-104.9658583	39.7271019	-104.9658604	39.7273116
-14730	6318	6303	0.0522173167652759	0.0522173167652759	-104.9758794	39.7400231	-104.9758778	39.7395535
-20234	10715	10714	0.0286157939247338	0.0286157939247338	-104.9412314	39.693774	-104.9409313	39.6936604
-20565	1287	10855	0.00858462136960439	0.00858462136960439	-105.0205384	39.7583461	-105.020438	39.7583443
-6251	5443	779	0.0160681132894306	0.0160681132894306	-105.0250652	39.7022173	-105.0250638	39.7020728
-14783	4856	7862	0.182896538603858	0.182896538603858	-104.9828985	39.7352253	-104.982911	39.7368701
-6272	5463	5464	0.0498340640254978	0.0498340640254978	-104.9798976	39.7384177	-104.9793148	39.7384144
-20235	10714	8820	0.0168131405425372	0.0168131405425372	-104.9409313	39.6936604	-104.9407348	39.6936614
-6293	5477	3890	0.10549800375505	0.10549800375505	-104.964716	39.7383814	-104.9634822	39.7383772
-16545	7835	9934	0.137971408959184	0.137971408959184	-104.975145	39.7519832	-104.9751503	39.7507424
-6362	351	5522	0.0335008525021526	0.0335008525021526	-105.0171199	39.7741304	-105.0175119	39.7741304
-16018	9787	9788	0.0995758326234823	0.0995758326234823	-105.0053015	39.6892589	-105.0062451	39.6887348
-6387	5535	2028	0.107888528337289	0.107888528337289	-104.9923558	39.7742164	-104.9936175	39.7741835
-20242	10717	10716	0.029516495512001	0.029516495512001	-104.9410012	39.6961469	-104.9411444	39.6963884
-7774	5212	6424	0.109568567873903	0.109568567873903	-105.0174804	39.7238894	-105.0175106	39.7248745
-16546	9934	9935	0.139302196645357	0.139302196645357	-104.9751503	39.7507424	-104.9751681	39.7494897
-20562	10798	10807	0.0058401189840652	0.0058401189840652	-105.0218855	39.7619462	-105.0219538	39.7619476
-15113	3050	7229	0.0133472139691031	0.0133472139691031	-104.9963681	39.7597212	-104.996479	39.7596367
-20245	8372	6959	0.0489264341729089	0.0489264341729089	-105.0357622	39.7454303	-105.0353181	39.7451528
-11422	8078	8079	0.0484137060021889	0.0484137060021889	-105.043577	39.7835803	-105.0441387	39.7836373
-6473	5599	5600	0.108658521887425	0.108658521887425	-105.0015794	39.7184418	-105.0015966	39.7194189
-15115	7996	7997	0.209391166364433	0.209391166364433	-104.9977757	39.7584584	-104.9977757	39.7603415
-18367	7754	8093	0.0507390772270922	0.0507390772270922	-105.0259422	39.7665053	-105.0259388	39.766049
-20352	10751	9401	0.00837355044160468	0.00837355044160468	-105.0253759	39.7585688	-105.025278	39.7585714
-6492	5616	5617	0.0720767157725574	0.0720767157725574	-105.0015651	39.7393715	-105.0015669	39.7400197
-14721	2221	4871	0.160443069505019	0.160443069505019	-104.9735163	39.7337028	-104.9735383	39.7351456
-18368	8093	6894	0.0518148786998363	0.0518148786998363	-105.0259388	39.766049	-105.0259502	39.7655831
-16020	9789	9788	0.073636854952175	0.073636854952175	-105.0063551	39.6893916	-105.0062451	39.6887348
-7896	6503	6504	0.201046575537805	0.201046575537805	-104.9503891	39.7819179	-104.9503707	39.7837259
-16547	9935	3668	0.222625726498778	0.222625726498778	-104.9751681	39.7494897	-104.9751801	39.7474876
-11416	8000	8034	0.303468507056762	0.303468507056762	-105.0252653	39.7846442	-105.0287237	39.7840235
-6579	5669	5670	0.150406237761818	0.150406237761818	-105.0311012	39.7566748	-105.0310884	39.7580274
-20845	10954	10937	0.131662909083966	0.131662909083966	-105.0254122	39.760199	-105.0266441	39.7609098
-6604	5693	4324	0.222481680681729	0.222481680681729	-105.0324406	39.7067365	-105.0350413	39.7067233
-18371	5250	7594	0.0499247461563453	0.0499247461563453	-105.0259394	39.7646609	-105.0259281	39.764212
-15222	8101	8102	0.077833708774634	0.077833708774634	-105.0417114	39.7441064	-105.0426126	39.7442054
-18372	7594	5883	0.083286408265142	0.083286408265142	-105.0259281	39.764212	-105.025945	39.7634631
-6714	5766	2843	0.181402526618843	0.181402526618843	-104.9316752	39.6938788	-104.9295552	39.693859
-14742	5935	931	0.176525948040391	0.176525948040391	-104.9769887	39.7304575	-104.9770026	39.732045
-20409	8971	8976	0.00824136098890487	0.00824136098890487	-105.0250832	39.760307	-105.0250886	39.760233
-17573	10146	4643	0.00925827675066928	0.00925827675066928	-105.0192547	39.73083	-105.0192742	39.7307481
-8175	6672	3101	0.17546713620256	0.17546713620256	-104.9362682	39.7146512	-104.9362596	39.7130732
-11210	300	106	0.00724031766776508	0.00724031766776508	-104.931659	39.700286	-104.931654	39.700221
-8223	6696	951	0.177624298281023	0.177624298281023	-104.9494801	39.7305216	-104.9494887	39.732119
-6856	4317	5865	0.0513037576080921	0.0513037576080921	-105.034904	39.7149636	-105.0355038	39.7149636
-18335	7611	1689	0.102723820359578	0.102723820359578	-105.0387087	39.7667047	-105.0387013	39.7676285
-20356	10752	10753	0.178510491347886	0.178510491347886	-105.0229895	39.7619327	-105.0250779	39.761939
-6873	5878	5879	0.686284794666677	0.686284794666677	-105.045238	39.6917061	-105.0531962	39.6924757
-11609	3416	7035	0.200128365503357	0.200128365503357	-105.0346041	39.7625399	-105.0322628	39.7625513
-11610	7035	8338	0.189938999172283	0.189938999172283	-105.0322628	39.7625513	-105.0300407	39.7625615
-6895	5896	4960	0.0956843495121368	0.0956843495121368	-105.0109828	39.7056561	-105.0109882	39.7047956
-11335	8218	251	0.176906123725318	0.176906123725318	-104.9994384	39.7289153	-104.9994212	39.7305062
-17668	10162	10161	0.0392525789715303	0.0392525789715303	-104.9861062	39.7795141	-104.9856475	39.7795327
-8321	6751	5251	0.0499574491010493	0.0499574491010493	-105.0275693	39.7642092	-105.0275802	39.7646584
-17670	8260	9051	0.230562637224967	0.230562637224967	-104.9794547	39.7798315	-104.9821447	39.7799919
-8340	6769	5533	0.120999789974565	0.120999789974565	-105.0275913	39.7729556	-105.027737	39.774038
-11366	7971	1892	0.0488719799669425	0.0488719799669425	-105.0053146	39.761583	-105.0052777	39.7620216
-6977	4442	5511	0.147695461409276	0.147695461409276	-104.9759203	39.7550431	-104.974688	39.7559741
-14750	2214	929	0.185352492811126	0.185352492811126	-104.9781559	39.7337051	-104.9781467	39.7320382
-7030	4913	5988	0.198333075719104	0.198333075719104	-104.9257471	39.7346951	-104.9257168	39.7364786
-18693	5978	6025	0.00688297127309608	0.00688297127309608	-105.0391098	39.719916	-105.0391099	39.7198541
-11612	3418	742	0.19996057055502	0.19996057055502	-105.0346033	39.763439	-105.0322639	39.7634453
-20437	10795	10796	0.0230619881865373	0.0230619881865373	-105.0227368	39.7610963	-105.0226193	39.761283
-11948	8496	8497	0.0216014239716138	0.0216014239716138	-105.013905	39.7558225	-105.0139116	39.7556283
-7132	1290	6044	0.0502638300231986	0.0502638300231986	-105.0204693	39.7856314	-105.0210575	39.7856258
-11686	1032	773	0.0128283485920152	0.0128283485920152	-105.0019469	39.752933	-105.0019256	39.7530472
-8554	4804	6890	0.135875328970406	0.135875328970406	-105.0127751	39.765645	-105.0143648	39.7656412
-11767	2687	8406	0.0738017906986337	0.0738017906986337	-104.9808835	39.7532566	-104.9814866	39.7527817
-8601	2178	596	0.0528183519637533	0.0528183519637533	-105.01465	39.7765593	-105.015268	39.7765659
-7225	6106	6107	0.101643082422806	0.101643082422806	-104.9863727	39.7093097	-104.9851845	39.7093159
-11821	8422	8423	0.175711465733647	0.175711465733647	-105.0135792	39.7398604	-105.013871	39.7414246
-8624	109	720	0.104166949267626	0.104166949267626	-105.002935	39.7765792	-105.0041538	39.776566
-18552	7705	2988	0.199131268231619	0.199131268231619	-105.0422469	39.7567047	-105.0422605	39.7584955
-14770	4858	2209	0.16101488662795	0.16101488662795	-104.981675	39.7351569	-104.9816406	39.7337091
-7328	6165	6166	0.0995968460919669	0.0995968460919669	-104.9688892	39.7713666	-104.9697218	39.7719933
-12286	8526	8525	0.0214801658544325	0.0214801658544325	-105.0049596	39.7505226	-105.0047107	39.7504962
-7376	337	6196	0.0756391181616623	0.0756391181616623	-104.9373307	39.7804664	-104.9364456	39.7804736
-12217	8592	8593	0.114913209514243	0.114913209514243	-105.0036056	39.7454327	-105.0029536	39.744529
-12317	8559	2500	0.0435792910401613	0.0435792910401613	-105.0076796	39.7542461	-105.0073403	39.7545386
-8839	528	7032	0.050727128416239	0.050727128416239	-105.0322618	39.7598749	-105.032262	39.7603311
-7478	6259	1180	0.207751884347626	0.207751884347626	-104.999187	39.6994545	-104.9967587	39.6994606
-18554	9429	7706	0.20403157089995	0.20403157089995	-105.0434221	39.7548692	-105.0434221	39.7567041
-15821	8564	8565	0.0641361466923926	0.0641361466923926	-105.0273775	39.7358643	-105.0275518	39.7353033
-8860	7045	7046	0.134234542647931	0.134234542647931	-105.0314642	39.7767176	-105.0314652	39.7779248
-7498	4598	3688	0.240872387579393	0.240872387579393	-104.9610007	39.7447808	-104.9609894	39.746947
-7499	3688	6270	0.142331405185985	0.142331405185985	-104.9609894	39.746947	-104.960998	39.748227
-20649	10880	1676	0.0578550543011222	0.0578550543011222	-105.0146396	39.7675397	-105.0146419	39.76806
-12236	8586	1599	0.0967599085697604	0.0967599085697604	-105.0012044	39.74196	-105.0021858	39.7415267
-7572	5861	1309	0.178473387298321	0.178473387298321	-105.0324691	39.7149773	-105.0324406	39.7133724
-18324	7480	7524	0.15130858595047	0.15130858595047	-105.043363	39.7783777	-105.0433477	39.777017
-7598	6323	6324	0.205483069278936	0.205483069278936	-104.9663246	39.7020694	-104.9663063	39.7002215
-17836	9362	1627	0.0523901213643909	0.0523901213643909	-104.9999965	39.7692821	-104.9994072	39.7691524
-14759	7101	5464	0.170276074046912	0.170276074046912	-104.9792889	39.7368832	-104.9793148	39.7384144
-14760	5464	7128	0.178804240685068	0.178804240685068	-104.9793148	39.7384144	-104.9793265	39.7400224
-7640	6024	3875	0.0993805589791004	0.0993805589791004	-104.9453106	39.7581922	-104.944148	39.7581905
-16021	9788	9790	0.320911397883896	0.320911397883896	-105.0062451	39.6887348	-105.0063095	39.6858492
-9035	7131	7132	0.0496921831493493	0.0496921831493493	-105.0375424	39.7347779	-105.0381234	39.7347872
-18491	9168	9169	0.133423914370859	0.133423914370859	-105.0422474	39.7487571	-105.0422538	39.749957
-17837	1627	5679	0.10292857902181	0.10292857902181	-104.9994072	39.7691524	-104.9982029	39.7691518
-9059	2896	5632	0.0842038197459281	0.0842038197459281	-104.9733529	39.7551547	-104.9727182	39.7557338
-20806	7427	10935	0.00559704943884798	0.00559704943884798	-105.0369381	39.7621971	-105.0370035	39.7621946
-12938	1970	8709	0.0935507240006809	0.0935507240006809	-105.0018024	39.7442826	-105.0028925	39.7443552
-11439	511	8252	0.25940626826434	0.25940626826434	-105.0312479	39.7836347	-105.0342719	39.7834294
-7695	5168	6377	0.177825109084943	0.177825109084943	-104.9449622	39.716238	-104.9449725	39.7146388
-20708	7442	10913	0.0784445493600802	0.0784445493600802	-105.0275322	39.7638138	-105.0277761	39.7631337
-9099	6388	7159	0.131345505242465	0.131345505242465	-105.0381277	39.7475739	-105.0381363	39.7487551
-11441	8256	8255	0.0395721958074786	0.0395721958074786	-105.0155373	39.7837344	-105.0160004	39.7837363
-19809	5615	9635	0.105426130739244	0.105426130739244	-105.0015645	39.7393	-105.0021668	39.7384727
-9145	5720	7186	0.100417695742859	0.100417695742859	-105.0357487	39.7831573	-105.0369189	39.7832402
-11443	8254	8257	0.03964069530807	0.03964069530807	-105.0159925	39.7835953	-105.0155286	39.7835973
-7788	6432	6433	0.0533345329573706	0.0533345329573706	-105.0177887	39.7548225	-105.0178088	39.7553019
-12939	8709	8766	0.0775671350558112	0.0775671350558112	-105.0028925	39.7443552	-105.0021048	39.7447013
-9187	7207	7208	0.0500116374722849	0.0500116374722849	-104.9821537	39.693012	-104.9815692	39.6930097
-7811	838	6446	0.0830965282034823	0.0830965282034823	-104.9427798	39.7746589	-104.9423252	39.7753195
-7816	6449	2813	0.0739587262737054	0.0739587262737054	-104.9904536	39.7751772	-104.9913173	39.7752191
-12260	8617	8618	0.00726192949201925	0.00726192949201925	-105.0083585	39.7576557	-105.0084208	39.7577001
-20803	606	10913	0.0113017508087441	0.0113017508087441	-105.0278867	39.763078	-105.0277761	39.7631337
-9235	7240	7241	0.0498075431237363	0.0498075431237363	-104.9792633	39.7057342	-104.9786816	39.7057151
-7861	6474	6475	0.692905896897531	0.692905896897531	-105.0451381	39.7747614	-105.053246	39.7747583
-12942	8804	1331	0.0594619846778877	0.0594619846778877	-105.0013561	39.7437151	-105.0019226	39.7434049
-12264	8622	8616	0.0863852743591186	0.0863852743591186	-105.0070785	39.7566504	-105.0077835	39.757207
-7908	6511	6512	0.107336468131195	0.107336468131195	-104.940586	39.787473	-104.9405864	39.7865077
-20811	10951	7034	0.00453220039269765	0.00453220039269765	-105.0322095	39.7622183	-105.0322625	39.7622195
-13006	8912	8913	0.031616887141609	0.031616887141609	-104.9956858	39.7676849	-104.9953476	39.7678001
-7929	4175	6525	0.0337195393803404	0.0337195393803404	-104.9775465	39.6932215	-104.9772938	39.6929888
-20394	10762	10775	0.00651572160316994	0.00651572160316994	-105.0243849	39.7600288	-105.0243213	39.7599965
-20400	3591	10771	0.0086403574168429	0.0086403574168429	-105.025071	39.7608559	-105.0250699	39.7607782
-8000	6560	6561	0.05117078549911	0.05117078549911	-104.9868584	39.7241275	-104.9862601	39.7241317
-18914	10389	10392	0.00619620469246147	0.00619620469246147	-105.0126265	39.7501937	-105.0126753	39.7502349
-8024	6580	6581	0.135411748293681	0.135411748293681	-105.0113223	39.732461	-105.0128679	39.7321961
-8047	5711	6593	0.0649690182450408	0.0649690182450408	-105.0362237	39.7329601	-105.0369834	39.7329675
-20509	10841	638	0.00591881170263726	0.00591881170263726	-105.0181411	39.7583408	-105.0180723	39.7583468
-12270	8627	8518	0.0752716608672627	0.0752716608672627	-105.0066278	39.7560666	-105.0071312	39.7555112
-15918	9104	9746	0.00764030702792677	0.00764030702792677	-105.0421714	39.7165106	-105.0421231	39.7165684
-8143	6654	1583	0.150966803397046	0.150966803397046	-105.0452294	39.6895265	-105.0452106	39.6881689
-18477	2411	5542	0.101313827089111	0.101313827089111	-105.0398977	39.753016	-105.0399084	39.7521049
-15876	8978	9002	0.0205305754568531	0.0205305754568531	-105.0408265	39.7349435	-105.0410599	39.7349868
-8295	6735	6736	0.0734967400485445	0.0734967400485445	-105.0196661	39.7603379	-105.0202265	39.7608392
-12273	8629	8517	0.0368940227401467	0.0368940227401467	-105.0068222	39.7549438	-105.0069509	39.7552605
-8322	5251	6752	0.0513511942917184	0.0513511942917184	-105.0275802	39.7646584	-105.0275758	39.7651202
-17214	3774	8403	0.176505403414048	0.176505403414048	-104.9774885	39.7022712	-104.9775319	39.7038582
-11789	4445	6564	0.147259159007996	0.147259159007996	-104.9772635	39.7560534	-104.9784697	39.7551079
-8396	516	6411	0.245438474982929	0.245438474982929	-104.968998	39.788144	-104.9688032	39.7903462
-19810	9635	9643	0.17762409301406	0.17762409301406	-105.0021668	39.7384727	-105.0021748	39.7368753
-19811	9643	7122	0.176833292049994	0.176833292049994	-105.0021748	39.7368753	-105.0021749	39.735285
-9834	7540	7541	0.0505839701248518	0.0505839701248518	-105.0449514	39.7661904	-105.044947	39.7666453
-8443	1465	5441	0.103147915206822	0.103147915206822	-105.0238576	39.7038839	-105.0250601	39.7039517
-13470	9094	9095	0.186249123099868	0.186249123099868	-105.0189056	39.7254091	-105.0210758	39.7255489
-9909	7585	3060	0.206196737198557	0.206196737198557	-104.9360971	39.758301	-104.9361384	39.7601551
-8516	6868	4142	0.0958725861464383	0.0958725861464383	-104.9838262	39.7147216	-104.9827054	39.7147303
-18481	9120	6391	0.130087180946324	0.130087180946324	-105.0398842	39.7487505	-105.0398871	39.7475806
-8559	1248	4557	0.13273864991069	0.13273864991069	-105.0205165	39.7656381	-105.0220695	39.765634
-18488	9153	9154	0.0316379611455697	0.0316379611455697	-105.0338511	39.7495101	-105.0338562	39.7492256
-10040	7380	7647	0.073513516250253	0.073513516250253	-105.0337242	39.7277125	-105.0345838	39.7277084
-8638	6926	6927	0.0519431626477688	0.0519431626477688	-104.9982022	39.7580108	-104.9980305	39.7584589
-8640	6928	2302	0.107037203280329	0.107037203280329	-105.0086993	39.6967351	-105.0087181	39.6957726
-18492	9169	9170	0.136492159060533	0.136492159060533	-105.0422538	39.749957	-105.04225	39.7511845
-8683	1000	4222	0.0557449369548998	0.0557449369548998	-104.9875739	39.7819524	-104.9869216	39.781959
-15905	8603	8604	0.0748338508215397	0.0748338508215397	-105.0285111	39.7222816	-105.0283446	39.7216209
-13757	8439	9181	0.0861617636196398	0.0861617636196398	-105.0164414	39.7435744	-105.0158598	39.7429416
-10162	2158	7701	0.118289099292956	0.118289099292956	-105.0144627	39.756468	-105.0158374	39.7565896
-8752	6982	6983	0.20266520881126	0.20266520881126	-105.040852	39.7021868	-105.0408606	39.7003642
-12326	8650	8651	0.106050821827968	0.106050821827968	-105.005782	39.7481919	-105.0047136	39.7486765
-18298	6995	6996	0.187375849458261	0.187375849458261	-105.0409786	39.77838	-105.0409867	39.7766949
-14103	418	421	0.212232135618177	0.212232135618177	-104.9449438	39.7443271	-104.9424633	39.7443997
-11436	8255	7984	0.498708139076575	0.498708139076575	-105.0160004	39.7837363	-105.0218262	39.7840053
-18497	9201	9212	0.134547599555241	0.134547599555241	-105.0352011	39.7487792	-105.0351931	39.7499892
-19881	2617	10410	0.177201589274352	0.177201589274352	-104.9957832	39.7225228	-104.9957751	39.7209292
-8821	13	7020	0.00925156011318802	0.00925156011318802	-105.0315114	39.7463778	-105.0315108	39.746461
-14676	5941	3794	0.153141383772443	0.153141383772443	-104.9700474	39.7304587	-104.9700349	39.7290815
-8846	6085	742	0.0513498235273795	0.0513498235273795	-105.0322636	39.7629835	-105.0322639	39.7634453
-19287	9967	10468	0.111280897910296	0.111280897910296	-104.986072	39.7392385	-104.9873734	39.7392289
-8898	267	7062	0.0377688740912094	0.0377688740912094	-104.9500299	39.6896634	-104.9500436	39.6893239
-20847	10946	10950	0.100177888201708	0.100177888201708	-105.0280565	39.761441	-105.0289678	39.7620075
-18612	1850	9261	0.181237135841786	0.181237135841786	-105.0355172	39.72133	-105.0355223	39.7197001
-18361	7374	7802	0.0447005696877022	0.0447005696877022	-105.0259557	39.7683632	-105.0259573	39.7679612
-8973	7099	900	0.0469763030340631	0.0469763030340631	-104.9417431	39.7640544	-104.9417276	39.7644767
-14047	4836	389	0.0490717904305928	0.0490717904305928	-104.9997732	39.7140054	-105.0001337	39.7136621
-12310	8644	8645	0.447909393812679	0.447909393812679	-105.0077069	39.7535527	-105.0040083	39.7506996
-8996	7110	7111	0.00729890302499032	0.00729890302499032	-105.027555	39.7347529	-105.0276403	39.7347505
-8997	7111	7112	0.0821157489631964	0.0821157489631964	-105.0276403	39.7347505	-105.0286006	39.7347486
-19296	10470	10471	0.0561834077462884	0.0561834077462884	-104.988856	39.7394681	-104.9888451	39.7389629
-9018	7120	3944	0.0625799505809278	0.0625799505809278	-104.9994256	39.7352803	-105.0001574	39.7352867
-20228	8758	8818	0.0478043651923457	0.0478043651923457	-104.9412322	39.6947542	-104.9407334	39.6945605
-14140	9284	9285	0.260183964007922	0.260183964007922	-104.9725733	39.7796422	-104.9695286	39.7796372
-10472	1612	7829	0.00870018444151776	0.00870018444151776	-104.9918236	39.7578438	-104.9917479	39.7578961
-9067	7146	1144	0.138617590256283	0.138617590256283	-104.9721238	39.7620063	-104.9721151	39.7632529
-9068	1144	873	0.140306927162159	0.140306927162159	-104.9721151	39.7632529	-104.9721084	39.7645147
-16081	9816	366	0.168828958006928	0.168828958006928	-104.962098	39.7800102	-104.9601224	39.7799975
-19882	10410	7867	0.175655958248639	0.175655958248639	-104.9957751	39.7209292	-104.9957671	39.7193495
-9135	5185	5653	0.105406920017136	0.105406920017136	-105.0383678	39.7245391	-105.0383801	39.725487
-19292	10469	10471	0.0669585268555214	0.0669585268555214	-104.9881479	39.7392371	-104.9888451	39.7389629
-14789	9417	9415	0.0546470920616291	0.0546470920616291	-104.9903058	39.7738874	-104.9903152	39.773396
-14678	9330	9301	0.189092694124095	0.189092694124095	-104.9700355	39.7272893	-104.9700183	39.7255888
-16087	9493	9819	0.0602377998698223	0.0602377998698223	-104.9498899	39.7814689	-104.950362	39.7810666
-9262	5135	5150	0.0243532262877801	0.0243532262877801	-104.9373097	39.7338382	-104.9373129	39.7340572
-14663	9300	6543	0.20364721866244	0.20364721866244	-104.9723445	39.725579	-104.9723281	39.7237476
-9311	4256	7276	0.202152573812647	0.202152573812647	-104.9652055	39.6965834	-104.9652088	39.6947654
-20396	10777	10758	0.00300729649615889	0.00300729649615889	-105.0244301	39.7608435	-105.0243956	39.7608382
-16088	9819	9820	0.154328326827327	0.154328326827327	-104.950362	39.7810666	-104.9518785	39.7803129
-9435	7345	7346	0.0190810494123846	0.0190810494123846	-104.9667331	39.7181803	-104.9667331	39.7183519
-18624	6136	9460	0.0524172265643075	0.0524172265643075	-105.0288404	39.7288083	-105.0282321	39.7288662
-20568	10857	10787	0.0362929048752591	0.0362929048752591	-105.0184643	39.7595354	-105.0188651	39.7596431
-18625	9460	2258	0.0501132934741927	0.0501132934741927	-105.0282321	39.7288662	-105.0276461	39.7288658
-15897	9441	9042	0.0240046794304529	0.0240046794304529	-105.0429186	39.7342294	-105.0428737	39.7340163
-16387	9458	9459	0.0276860712412084	0.0276860712412084	-104.9711616	39.7030276	-104.9714714	39.7030996
-11214	8163	391	0.128403364715461	0.128403364715461	-104.9314767	39.7033354	-104.931634	39.702187
-9803	6610	7523	0.196894261944695	0.196894261944695	-104.9280463	39.7365084	-104.9280376	39.7382791
-15456	9612	9605	0.0879146885908635	0.0879146885908635	-105.0005861	39.7432358	-105.000722	39.7440195
-18630	5862	9484	0.00360275623818702	0.00360275623818702	-105.0330764	39.7149803	-105.0330762	39.7149479
-11351	4798	8227	0.0561921807720747	0.0561921807720747	-105.0131467	39.7620198	-105.0138041	39.7620198
-9936	4537	7602	0.2557209782077	0.2557209782077	-105.0221238	39.7283783	-105.025114	39.7283922
-11457	8266	8267	0.4367852597313	0.4367852597313	-104.9731431	39.7798728	-104.9782529	39.7799692
-11491	6185	8281	0.106123839405449	0.106123839405449	-104.993798	39.7520123	-104.9929142	39.7513421
-11244	8185	8162	0.0231522248365289	0.0231522248365289	-104.936636	39.7114077	-104.936452	39.711255
-18634	4045	7865	0.17751242949901	0.17751242949901	-105.0331246	39.7181593	-105.0331005	39.7197556
-18698	5868	1320	0.176912291429695	0.176912291429695	-105.0390984	39.7149619	-105.0391059	39.7133709
-10141	6347	3032	0.0935494731718596	0.0935494731718596	-104.9476508	39.7582147	-104.9476453	39.759056
-11771	8406	4385	0.0534654755495647	0.0534654755495647	-104.9814866	39.7527817	-104.9819456	39.7531083
-19883	7867	3716	0.104069204828323	0.104069204828323	-104.9957671	39.7193495	-104.9957744	39.7184136
-11834	8430	8431	0.087830432319228	0.087830432319228	-105.0156397	39.7432416	-105.0163799	39.7437893
-10212	7733	7734	0.0513578872611552	0.0513578872611552	-104.9757679	39.6893761	-104.9751677	39.6893788
-19884	3716	7405	0.200874185823139	0.200874185823139	-104.9957744	39.7184136	-104.9957689	39.7166071
-11852	8443	8444	0.0120541689820552	0.0120541689820552	-105.0254023	39.7603049	-105.0252881	39.7602413
-10235	2742	7741	0.0499109655825577	0.0499109655825577	-104.9558447	39.6893365	-104.9552614	39.6893365
-19913	10244	6599	0.17675930412674	0.17675930412674	-104.9981677	39.7336833	-104.9981408	39.7320938
-15270	8458	8459	0.0175633548114394	0.0175633548114394	-104.9284834	39.705337	-104.9284002	39.7051926
-10253	1700	7749	0.00587012913148048	0.00587012913148048	-104.9383741	39.6893266	-104.9383055	39.6893261
-20002	10691	10692	0.0226226455892357	0.0226226455892357	-105.0053729	39.7533322	-105.0051878	39.7534776
-11911	8472	8473	0.00378078844043477	0.00378078844043477	-105.0000361	39.7512121	-105.0000669	39.7511877
-10274	3194	6110	0.20159656533977	0.20159656533977	-104.9815359	39.7111143	-104.9815389	39.7093013
-11953	8041	6568	0.145503350739709	0.145503350739709	-104.981415	39.7555288	-104.9802246	39.7564641
-10298	6399	3614	0.133348580117153	0.133348580117153	-104.9308332	39.7717367	-104.9293312	39.771412
-11992	5503	7077	0.147510556806948	0.147510556806948	-104.9804313	39.7603548	-104.9792067	39.7612895
-19496	10524	7457	0.0831219334199701	0.0831219334199701	-104.9883547	39.7082799	-104.9883639	39.7075324
-10398	7619	7807	0.0285985320629965	0.0285985320629965	-104.939234	39.787086	-104.9388993	39.787086
-15922	1816	9751	0.110608853519784	0.110608853519784	-105.0268596	39.7287066	-105.0270382	39.7277214
-11917	8476	1302	0.0550753650708828	0.0550753650708828	-105.0028542	39.7497443	-105.0032204	39.7501518
-20647	10880	10034	0.0300539000602635	0.0300539000602635	-105.0146396	39.7675397	-105.0143619	39.7673739
-10474	6225	7658	0.277054905467397	0.277054905467397	-105.0462701	39.7258018	-105.0462812	39.7282934
-11996	6576	4457	0.148175074796056	0.148175074796056	-104.9837118	39.7591589	-104.9824777	39.7600947
-12215	8590	8591	0.0896761056675667	0.0896761056675667	-105.0062495	39.7427207	-105.0069168	39.7433429
-12240	1246	8611	0.0161729384224601	0.0161729384224601	-105.0017374	39.7492343	-105.0016014	39.7493354
-10602	7875	741	0.0900908109241702	0.0900908109241702	-104.9564659	39.7755986	-104.9564618	39.7764088
-16451	9903	9904	0.00638068663878895	0.00638068663878895	-104.9732302	39.6979873	-104.9731712	39.6980224
-12161	8568	8315	0.127606752812743	0.127606752812743	-105.0063682	39.7484987	-105.0053848	39.7476354
-16022	9791	9792	0.180221045869865	0.180221045869865	-105.0045854	39.6893105	-105.0031651	39.6881137
-12376	7853	4674	0.113693675785271	0.113693675785271	-104.9923076	39.7766218	-104.993638	39.7766218
-12377	4674	8679	0.101029871301971	0.101029871301971	-104.993638	39.7766218	-104.9948199	39.7766009
-19472	10516	7476	0.0110661304777454	0.0110661304777454	-104.9902729	39.7085705	-104.9902755	39.708471
-16024	363	9793	0.0338194849383131	0.0338194849383131	-105.0049362	39.6874613	-105.0047404	39.6877255
-12518	5916	3788	0.153505057727295	0.153505057727295	-104.960135	39.730487	-104.9601881	39.7291071
-10815	3667	7993	0.06101955432425	0.06101955432425	-104.9746946	39.7474748	-104.9747549	39.746928
-17063	2247	4880	0.17655557289719	0.17655557289719	-104.9616491	39.7334649	-104.9616527	39.7350527
-18644	1374	1318	0.176938793518256	0.176938793518256	-105.0378774	39.7117812	-105.0378936	39.7133724
-20668	1127	10890	0.00915451265400173	0.00915451265400173	-105.0404877	39.7653392	-105.0403806	39.7653384
-15804	1934	9711	0.166526724215667	0.166526724215667	-105.0322592	39.738485	-105.0322666	39.7399826
-15805	9711	9506	0.0388070303408929	0.0388070303408929	-105.0322666	39.7399826	-105.0322667	39.7403316
-15809	9713	7112	0.0121509406944637	0.0121509406944637	-105.0286059	39.7348578	-105.0286006	39.7347486
-17109	4052	8135	0.162752784015343	0.162752784015343	-104.9579299	39.7478129	-104.9597582	39.7482207
-12609	7223	8772	0.0487324288024552	0.0487324288024552	-104.9964257	39.7289087	-104.9969955	39.7289027
-10935	6177	3306	0.106502895543558	0.106502895543558	-104.9853166	39.7585655	-104.9862237	39.7592221
-10936	3306	8049	0.0536769065211004	0.0536769065211004	-104.9862237	39.7592221	-104.9866649	39.7595656
-16203	7727	9845	1.20908168114497	1.20908168114497	-104.9810119	39.6894094	-104.9810466	39.6785359
-10955	8058	8059	0.079137340429329	0.079137340429329	-105.0040758	39.7305164	-105.0050012	39.7305205
-16612	9327	9942	0.147120185144049	0.147120185144049	-104.9836296	39.7497738	-104.9824158	39.7507117
-17066	5478	9963	0.164315977100666	0.164315977100666	-104.9616347	39.7383964	-104.9616093	39.739874
-17067	9963	10069	0.0117569437064922	0.0117569437064922	-104.9616093	39.739874	-104.9616202	39.7399794
-12661	6331	6548	0.107973460603441	0.107973460603441	-104.9824024	39.7231556	-104.9823535	39.7241259
-12679	3638	8797	0.0132415259966435	0.0132415259966435	-104.9499674	39.712765	-104.9499588	39.7128839
-16962	10044	10040	0.011239967337662	0.011239967337662	-105.0165756	39.7549307	-105.0167064	39.7549204
-12708	6861	5165	0.179825321478717	0.179825321478717	-104.9497683	39.7146491	-104.9497617	39.7162663
-11020	1485	143	0.200555984903635	0.200555984903635	-104.9991903	39.6948908	-104.9992288	39.6930874
-11021	143	8087	0.297571119969413	0.297571119969413	-104.9992288	39.6930874	-104.9992149	39.6904113
-17011	9424	10052	0.0266755832635793	0.0266755832635793	-105.0159208	39.7548693	-105.0157808	39.7546549
-12731	8820	7196	0.0815503609966838	0.0815503609966838	-104.9407348	39.6936614	-104.940735	39.692928
-17038	10062	9210	0.00792923279445615	0.00792923279445615	-105.0192815	39.7574299	-105.0192694	39.7575006
-11062	3436	7764	0.0490279707439403	0.0490279707439403	-105.0346033	39.7783879	-105.035177	39.7783841
-16025	9793	9792	0.141538634561804	0.141538634561804	-105.0047404	39.6877255	-105.0031651	39.6881137
-12773	8830	4166	0.0867031847297172	0.0867031847297172	-104.9732562	39.7194083	-104.972908	39.7201406
-16209	6627	5825	0.203615270524375	0.203615270524375	-104.9787159	39.6929842	-104.9786761	39.6911533
-16207	7210	6624	0.114867174949551	0.114867174949551	-104.9798457	39.6930109	-104.9798363	39.6940439
-16210	5825	7730	0.194825716270604	0.194825716270604	-104.9786761	39.6911533	-104.9786837	39.6894012
-13015	8917	8918	0.0110325419879542	0.0110325419879542	-104.9949225	39.7698636	-104.9947937	39.769857
-13019	8923	8924	0.0459300988872919	0.0459300988872919	-104.9942478	39.7699708	-104.9947852	39.7699691
-11247	8187	5274	0.160867422208887	0.160867422208887	-104.9332506	39.7096719	-104.93153	39.709088
-19514	10535	10538	0.0037920381346196	0.0037920381346196	-104.9882297	39.7088075	-104.9881977	39.7087839
-13024	6190	280	0.0860979970314494	0.0860979970314494	-104.9857782	39.7801773	-104.9858487	39.7794049
-11276	8174	8198	0.367460344283523	0.367460344283523	-104.9406492	39.7073573	-104.9363539	39.7073938
-18156	4088	6034	0.199039273787356	0.199039273787356	-105.0129501	39.7838266	-105.0129545	39.7856166
-13094	1749	8958	0.0802223716795591	0.0802223716795591	-104.9721944	39.7142027	-104.9728651	39.714707
-11325	5154	2237	0.0295446835402977	0.0295446835402977	-104.930434	39.732587	-104.9303867	39.7328502
-18719	4048	7409	0.17730031135953	0.17730031135953	-105.0343046	39.7181492	-105.0343048	39.7165547
-13118	8967	1742	0.0145216501585431	0.0145216501585431	-104.9850034	39.7676171	-104.9851236	39.7677094
-18386	8971	8972	0.00871865668631088	0.00871865668631088	-105.0250832	39.760307	-105.025167	39.7603517
-13072	8913	8952	0.0749880743663527	0.0749880743663527	-104.9953476	39.7678001	-104.9945443	39.7680713
-17640	230	8241	0.144923812025645	0.144923812025645	-104.9472475	39.7797519	-104.9455738	39.7799622
-13560	9033	578	0.049912950240993	0.049912950240993	-105.0111825	39.7228848	-105.0107342	39.7225974
-11377	8237	4850	0.0778446846789704	0.0778446846789704	-104.9963555	39.757081	-104.9969821	39.757589
-18720	7409	5864	0.175843787012913	0.175843787012913	-105.0343048	39.7165547	-105.0343073	39.7149733
-11410	2864	7808	0.201887571458386	0.201887571458386	-104.9858115	39.7855801	-104.9857845	39.7873956
-11526	8300	809	0.0681077085457417	0.0681077085457417	-105.0260499	39.7560402	-105.026046	39.7554277
-18653	7653	10176	0.157020875630107	0.157020875630107	-105.0400098	39.7282525	-105.0399856	39.7268405
-13241	7916	4418	0.196768399976565	0.196768399976565	-105.0275054	39.7094042	-105.0298056	39.7094174
-11566	7031	7379	0.100426092571383	0.100426092571383	-105.0322607	39.7580218	-105.0334355	39.7580283
-11568	7379	1594	0.158671241159827	0.158671241159827	-105.0334355	39.7580283	-105.0340269	39.7566757
-17820	10186	10187	0.0184687744290435	0.0184687744290435	-105.0007327	39.7634893	-105.0006185	39.7636303
-13263	4963	6826	0.0748897830948627	0.0748897830948627	-105.0432124	39.7049338	-105.0432124	39.7042603
-11599	7782	8332	0.0501574795892601	0.0501574795892601	-105.0392921	39.7621196	-105.0398789	39.7621198
-11600	8332	1125	0.0495676895406725	0.0495676895406725	-105.0398789	39.7621198	-105.0404588	39.7621199
-11644	4658	8348	0.011012895464713	0.011012895464713	-105.0191633	39.7552936	-105.0190347	39.7552995
-18918	10397	10398	0.0105062475981655	0.0105062475981655	-105.011825	39.749838	-105.0118932	39.7497594
-17913	6562	4748	0.176744370871331	0.176744370871331	-104.9856207	39.7241273	-104.9856194	39.7225378
-11715	8369	8370	0.101679025311835	0.101679025311835	-105.0381422	39.7427432	-105.0393314	39.7427374
-11747	8387	8388	0.0596706311453888	0.0596706311453888	-105.0139458	39.741431	-105.0138882	39.7419658
-11775	8121	2683	0.119321215072029	0.119321215072029	-104.9781346	39.7526951	-104.9790985	39.751919
-13389	8267	9048	0.0706232625221708	0.0706232625221708	-104.9782529	39.7799692	-104.9790788	39.7799923
-11997	4457	5505	0.144543593212435	0.144543593212435	-104.9824777	39.7600947	-104.9812949	39.7610237
-19642	10599	10600	0.00461558236551731	0.00461558236551731	-104.9879173	39.7068487	-104.9879279	39.706808
-12058	153	3776	0.311946607437041	0.311946607437041	-104.9572293	39.7448211	-104.9578598	39.7475843
-13750	6895	9177	0.1538081352177	0.1538081352177	-104.9317267	39.7692334	-104.931781	39.770616
-12164	4818	7560	0.10615031357403	0.10615031357403	-104.9979466	39.7514927	-104.9970625	39.7508224
-15934	6257	9756	0.181030993335028	0.181030993335028	-104.9961632	39.6984894	-104.9962839	39.7001148
-18568	10324	10321	0.144976741381278	0.144976741381278	-105.0327262	39.781661	-105.0330975	39.7803888
-20260	6471	10699	0.00720326005355295	0.00720326005355295	-105.0440839	39.7747614	-105.0440797	39.7748261
-12382	440	8680	0.0360714923590191	0.0360714923590191	-104.969326	39.7033402	-104.9691913	39.7036476
-13919	482	483	0.00751372921095178	0.00751372921095178	-104.9858803	39.7012654	-104.9859077	39.7013296
-20414	3586	10773	0.00983155874827391	0.00983155874827391	-105.0238257	39.7607202	-105.0238489	39.7606336
-12480	8712	8713	0.0991407463070431	0.0991407463070431	-104.9675147	39.6929637	-104.966356	39.6929637
-15455	9611	9612	0.086225314993736	0.086225314993736	-105.0002927	39.7424939	-105.0005861	39.7432358
-20417	8993	10775	0.0123681069665026	0.0123681069665026	-105.0243946	39.7599006	-105.0243213	39.7599965
-19623	10508	10591	0.0688242418092362	0.0688242418092362	-104.9902611	39.7099214	-104.9910656	39.7099299
-14087	6816	2943	0.102402811156445	0.102402811156445	-104.9246085	39.7113484	-104.9258054	39.711367
-12571	8755	8756	0.0991408859101036	0.0991408859101036	-104.9430353	39.6947545	-104.9418766	39.6947611
-18658	9831	7643	0.17655772025733	0.17655772025733	-105.0306678	39.7293074	-105.030657	39.7277196
-16026	9792	9793	0.141538634561804	0.141538634561804	-105.0031651	39.6881137	-105.0047404	39.6877255
-14200	5104	8831	0.0500819471783367	0.0500819471783367	-104.973501	39.7255812	-104.9729154	39.7255792
-16028	9794	9795	0.0352990859554557	0.0352990859554557	-105.0152372	39.6892461	-105.0155912	39.6894091
-12690	8805	8806	0.0205962859747724	0.0205962859747724	-104.9534009	39.718219	-104.953405	39.7180338
-14297	1952	9317	0.0799385706307454	0.0799385706307454	-104.9402458	39.7146371	-104.9406062	39.7153004
-12747	5350	4220	0.0793424677909429	0.0793424677909429	-104.928405	39.689348	-104.9274781	39.6893679
-16029	9796	9797	0.0144472492683917	0.0144472492683917	-105.0121361	39.6892112	-105.0122561	39.6891198
-20288	6472	10687	0.0642398609947935	0.0642398609947935	-105.0445755	39.7747614	-105.0445822	39.7741837
-14311	8859	8501	0.0340924315859818	0.0340924315859818	-104.9873914	39.7526692	-104.9871043	39.7524564
-14330	602	8973	0.0577848630730138	0.0577848630730138	-104.9952229	39.7691313	-104.9948538	39.7695667
-16030	9797	9798	0.0484390320890552	0.0484390320890552	-105.0122561	39.6891198	-105.012394	39.6886973
-16031	9798	9799	0.00754569346896809	0.00754569346896809	-105.012394	39.6886973	-105.0124128	39.688631
-14334	2420	8925	0.0583291679544673	0.0583291679544673	-104.9948281	39.7704903	-104.9949053	39.7699691
-12784	8834	5470	0.171286135301765	0.171286135301765	-104.9730073	39.7368668	-104.9730156	39.7384072
-12785	5470	8835	0.178924287864237	0.178924287864237	-104.9730156	39.7384072	-104.9730207	39.7400163
-16033	9799	9800	0.00706845342179734	0.00706845342179734	-105.0124128	39.688631	-105.0124316	39.6885691
-14357	513	9331	0.0549879463430077	0.0549879463430077	-105.0345487	39.7837339	-105.0351853	39.7838062
-12804	3763	2560	0.0898130023336766	0.0898130023336766	-105.0064169	39.7854508	-105.0064215	39.7862585
-12820	8849	8848	0.188203677867594	0.188203677867594	-104.9966205	39.782197	-104.9987337	39.782674
-16035	9800	6871	0.0378217549395311	0.0378217549395311	-105.0124316	39.6885691	-105.0125152	39.6882351
-20159	6155	10163	0.0614761289722609	0.0614761289722609	-104.9848557	39.7798784	-104.9855751	39.7798803
-12915	967	5281	0.138474892352542	0.138474892352542	-104.9838014	39.7234262	-104.982597	39.7225939
-16687	9988	8314	0.0384286340006129	0.0384286340006129	-105.0043843	39.7477818	-105.0042918	39.74812
-12991	8908	306	0.0182421240862306	0.0182421240862306	-105.0289792	39.7622112	-105.029097	39.762348
-13032	8926	8928	0.185901221322606	0.185901221322606	-104.989367	39.779071	-104.9872354	39.7794049
-16689	1824	9989	0.0121513664645164	0.0121513664645164	-105.0068707	39.7455494	-105.00675	39.7456071
-13107	8963	8964	0.0484369444463125	0.0484369444463125	-104.9950178	39.7638741	-104.9950202	39.7634385
-19516	10539	10536	0.00249155177103479	0.00249155177103479	-104.9878821	39.7087971	-104.9879104	39.7088024
-19470	10514	10515	0.0196261730033966	0.0196261730033966	-104.9902714	39.7087938	-104.9902726	39.7086173
-13156	8988	8989	0.00631722030409862	0.00631722030409862	-105.0192467	39.7575819	-105.0193135	39.7576062
-19649	10600	10601	0.0174353644977756	0.0174353644977756	-104.9879279	39.706808	-104.9879279	39.7066512
-18928	10405	10396	0.00112670264684339	0.00112670264684339	-105.0109524	39.7503673	-105.0109587	39.7503762
-18410	10288	8327	0.00700530123739539	0.00700530123739539	-105.0292173	39.7620512	-105.0292171	39.7621142
-14672	9414	4877	0.190941051800692	0.190941051800692	-104.9700963	39.736882	-104.9700645	39.735165
-14673	4877	2227	0.162460717202061	0.162460717202061	-104.9700645	39.735165	-104.9700793	39.733704
-13231	4409	9009	0.223227137223831	0.223227137223831	-105.0298056	39.7022132	-105.0324149	39.7022132
-237	31	134	0.108163538194537	0.108163538194537	-104.9701337	39.6879245	-104.969078	39.6873895
-14831	8322	5668	0.0494625040984646	0.0494625040984646	-105.0305079	39.754821	-105.0310864	39.7548296
-18415	8376	3409	0.101754880454598	0.101754880454598	-105.0358032	39.7543633	-105.0346129	39.7543674
-15848	9733	9731	0.0169747446876837	0.0169747446876837	-105.0423259	39.7305643	-105.0422615	39.7304199
-13335	3971	7017	0.0998321056196178	0.0998321056196178	-105.0298103	39.7311516	-105.0309776	39.7311384
-18626	2258	9475	0.0453120140623152	0.0453120140623152	-105.0276461	39.7288658	-105.0271164	39.7288559
-13471	9095	9092	0.294331677800491	0.294331677800491	-105.0210758	39.7255489	-105.0245174	39.7255447
-13512	7797	9114	0.0647363210214912	0.0647363210214912	-105.013565	39.7254886	-105.0128101	39.7255315
-15901	9499	9500	0.157325995690783	0.157325995690783	-105.023521	39.7294033	-105.0253342	39.729164
-13697	9167	7423	0.127782150083045	0.127782150083045	-104.9929494	39.6966756	-104.9944429	39.6966822
-20289	10687	10697	0.00276887237539732	0.00276887237539732	-105.0445822	39.7741837	-105.0445825	39.7741588
-13718	8097	9171	0.00881240787098174	0.00881240787098174	-105.019205	39.6967483	-105.019308	39.6967483
-13751	9178	9130	0.0262505906254233	0.0262505906254233	-105.0164243	39.7306043	-105.0161204	39.730571
-15391	9259	9571	0.107861175514815	0.107861175514815	-104.9593096	39.7144759	-104.9605702	39.7144511
-15783	2106	9596	0.166115711722291	0.166115711722291	-105.0232102	39.7379438	-105.0247945	39.7370792
-13852	1774	4412	0.0465225826542141	0.0465225826542141	-104.9769161	39.7038457	-104.9763723	39.7038488
-20380	10763	10764	0.00723047037301379	0.00723047037301379	-105.0250727	39.760924	-105.0249892	39.7609136
-15452	9609	9598	0.128875611115748	0.128875611115748	-105.0003045	39.7431574	-104.9998109	39.7420623
-14144	9287	4651	0.182099578171645	0.182099578171645	-105.0165756	39.7450309	-105.0171429	39.7434524
-15807	9712	7111	0.0179279183487844	0.0179279183487844	-105.0276269	39.7349114	-105.0276403	39.7347505
-14230	8860	4113	0.0915086936553939	0.0915086936553939	-104.9520697	39.7256077	-104.9509997	39.7256047
-15819	9705	8564	0.0112418070831931	0.0112418070831931	-105.0273775	39.7359654	-105.0273775	39.7358643
-14250	8157	7606	0.0899264482990573	0.0899264482990573	-104.9393188	39.7253022	-104.9382673	39.7253035
-19499	10526	10527	0.0418767441965843	0.0418767441965843	-104.9883666	39.7071894	-104.9883695	39.7068128
-16078	9814	9815	0.177867255933272	0.177867255933272	-104.974902	39.7795432	-104.9728236	39.7796294
-14354	5520	6454	0.134959237439496	0.134959237439496	-105.0112082	39.7741318	-105.0112167	39.7753455
-16224	5835	9851	0.203722282298932	0.203722282298932	-104.9563972	39.6911319	-104.9563865	39.692964
-14425	1233	6137	0.0491477874140339	0.0491477874140339	-105.0281917	39.7560463	-105.0287666	39.7560413
-16468	9914	9902	0.117059110726511	0.117059110726511	-104.9726489	39.6941061	-104.9732597	39.6931641
-16500	8890	8891	0.0884309215437497	0.0884309215437497	-105.0029709	39.7443191	-105.0038584	39.7439107
-16591	9948	8492	0.14561270804365	0.14561270804365	-104.9993873	39.7470087	-104.998183	39.7479347
-16470	9915	3282	0.193717589764618	0.193717589764618	-104.9689488	39.7037929	-104.9687946	39.7020548
-14541	6915	9375	0.0102720812466755	0.0102720812466755	-105.0251451	39.7766366	-105.0252653	39.7766366
-16501	8891	3167	0.0148460110144783	0.0148460110144783	-105.0038584	39.7439107	-105.00401	39.7438456
-16593	9949	9950	0.145366288858291	0.145366288858291	-105.0003016	39.7477141	-104.9990547	39.7486029
-14609	8990	8994	0.00979628795431279	0.00979628795431279	-105.0252879	39.7604305	-105.0252881	39.7603424
-14794	3335	7882	0.0961603685796077	0.0961603685796077	-104.9574452	39.7336966	-104.9563208	39.7337098
-17101	332	10014	0.240821045601335	0.240821045601335	-104.9554298	39.7451641	-104.952676	39.7456193
-14816	9424	9425	0.0673114946358147	0.0673114946358147	-105.0159208	39.7548693	-105.0167051	39.7548156
-17065	9474	5478	0.175247470145414	0.175247470145414	-104.9616204	39.7368204	-104.9616347	39.7383964
-15103	3050	9489	0.102745543982247	0.102745543982247	-104.9963681	39.7597212	-104.9963423	39.760645
-16898	8714	8743	0.201991786328297	0.201991786328297	-104.9657828	39.6929687	-104.9658013	39.6947852
-16402	9880	9878	0.04752967411177	0.04752967411177	-104.9718617	39.7035846	-104.971336	39.7034463
-16959	10041	10042	0.0119234352124219	0.0119234352124219	-105.0159755	39.75567	-105.0160419	39.7555757
-16556	9939	2889	0.0528287697048915	0.0528287697048915	-104.9739728	39.7494793	-104.9733549	39.749474
-18646	5867	7412	0.177003576876814	0.177003576876814	-105.0378886	39.7149662	-105.0379016	39.716558
-16623	9957	9958	0.00927766896119108	0.00927766896119108	-104.9856428	39.7393293	-104.9855355	39.7393169
-17017	10056	10054	0.00431206144532878	0.00431206144532878	-105.0167598	39.7546225	-105.0167692	39.7546606
-16635	9967	9937	0.0755376260933099	0.0755376260933099	-104.986072	39.7392385	-104.9859915	39.738562
-16636	9937	9968	0.0848568890148885	0.0848568890148885	-104.9859915	39.738562	-104.9849991	39.7385579
-17507	8389	10114	0.0670519033214907	0.0670519033214907	-105.0124419	39.7396939	-105.0124916	39.7402957
-17069	675	9465	0.179146976203574	0.179146976203574	-104.961623	39.7416085	-104.9615988	39.7432195
-17040	8988	10063	0.00586346085648923	0.00586346085648923	-105.0192467	39.7575819	-105.0192332	39.7576336
-18726	6207	7644	0.18227085937915	0.18227085937915	-105.0318828	39.7260783	-105.0318854	39.7277175
-18724	4060	7415	0.175525264809921	0.175525264809921	-105.0439098	39.7181494	-105.0438828	39.716571
-16759	10010	55	0.0502605990705626	0.0502605990705626	-104.950646	39.6997437	-104.9506434	39.7001957
-17565	10138	8539	0.0573375717149566	0.0573375717149566	-104.9667127	39.7813542	-104.9669081	39.7808609
-17283	8717	8746	0.200951019692623	0.200951019692623	-104.9599663	39.6929697	-104.9599905	39.6947768
-17285	76	3515	0.20373476556842	0.20373476556842	-104.9646375	39.7002188	-104.9646237	39.6983866
-17286	3515	4257	0.200873634983474	0.200873634983474	-104.9646237	39.6983866	-104.9646237	39.6965801
-17288	10023	5839	0.200541247802215	0.200541247802215	-104.9517951	39.692944	-104.9518032	39.6911405
-18744	6227	5190	0.106449102002429	0.106449102002429	-105.0433385	39.72552	-105.0433305	39.7245627
-17655	10140	480	0.0210901662616695	0.0210901662616695	-104.967225	39.7796681	-104.9669782	39.7796681
-17657	8540	9827	0.194565529373187	0.194565529373187	-104.969601	39.7801972	-104.9718556	39.7799532
-17427	10105	10106	0.0219929458534896	0.0219929458534896	-104.9828833	39.6888958	-104.9831403	39.6888986
-17857	10200	10197	0.0144828525731025	0.0144828525731025	-104.9731394	39.7883607	-104.9732548	39.7884561
-18236	7037	3424	0.201298115256081	0.201298115256081	-105.0322649	39.7652109	-105.0346199	39.7651924
-17786	8497	9214	0.0149001836759509	0.0149001836759509	-105.0139116	39.7556283	-105.0140859	39.7556275
-18667	5188	2601	0.176856921267491	0.176856921267491	-105.0410909	39.7245488	-105.0410827	39.7229583
-15257	8538	9547	0.0461864635130014	0.0461864635130014	-104.9283761	39.7065112	-104.927837	39.7065339
-15834	9727	4582	0.339362052888466	0.339362052888466	-105.039304	39.7384682	-105.0393281	39.7415201
-18239	6764	3988	0.20124356936137	0.20124356936137	-105.0276005	39.7707095	-105.0299532	39.7707836
-17648	223	227	0.245258634538467	0.245258634538467	-104.9432215	39.7799643	-104.9403515	39.7799498
-19708	10627	10621	0.090662464616454	0.090662464616454	-105.0051511	39.7346116	-105.0051625	39.7337963
-17961	10234	10235	0.0087318555012696	0.0087318555012696	-104.988102	39.7243341	-104.9880993	39.7242556
-19710	10623	10628	0.0762458230270849	0.0762458230270849	-105.0031654	39.7337887	-105.0039101	39.7341658
-17727	3328	7879	0.104097845117031	0.104097845117031	-104.9573341	39.760728	-104.9561163	39.7607348
-18725	7415	10336	0.0555461867275064	0.0555461867275064	-105.0438828	39.716571	-105.0438909	39.7160715
-17748	10172	8285	0.147249823900369	0.147249823900369	-104.9890951	39.7502672	-104.9903025	39.7493228
-19600	10582	10478	0.00442384590255706	0.00442384590255706	-104.9902054	39.7102774	-104.9902571	39.7102784
-16294	2409	2439	0.0170153678743566	0.0170153678743566	-104.9698358	39.6961931	-104.9697532	39.6960539
-18663	2592	5184	0.178895247307371	0.178895247307371	-105.0378588	39.7229259	-105.0378224	39.7245345
-15835	4582	8370	0.135357878279395	0.135357878279395	-105.0393281	39.7415201	-105.0393314	39.7427374
-17987	10240	7225	0.133765909115813	0.133765909115813	-104.9949413	39.7336839	-104.9965056	39.7336859
-18776	10123	3737	0.13151506607382	0.13151506607382	-105.0041704	39.7400311	-105.0028068	39.7394839
-19243	10420	8480	0.0202782525837911	0.0202782525837911	-104.9910563	39.7427139	-104.9912213	39.7425829
-18831	10359	10360	0.0341232753962164	0.0341232753962164	-105.0141666	39.7374377	-105.0142282	39.7371345
-19553	6857	10560	0.00726201622420357	0.00726201622420357	-104.9892637	39.7102478	-104.9892651	39.7101825
-19940	9641	6649	0.164927985335569	0.164927985335569	-104.9994122	39.7368744	-104.9992032	39.7383489
-18941	4644	1269	0.146851000824624	0.146851000824624	-105.018682	39.7183967	-105.0203986	39.7184231
-19118	10431	8430	0.136066207456442	0.136066207456442	-105.0144289	39.7424475	-105.0156397	39.7432416
-19278	10421	6707	0.0993066662474356	0.0993066662474356	-104.9951815	39.7462368	-104.9943683	39.7468745
-15836	8370	5297	0.134414346058358	0.134414346058358	-105.0393314	39.7427374	-105.039323	39.7439462
-19047	901	9486	0.27949052314451	0.27949052314451	-104.9406492	39.7644637	-104.9406618	39.7619502
-19612	10586	10499	0.00658715235564877	0.00658715235564877	-104.9910692	39.709571	-104.9911462	39.7095717
-15838	9728	7437	0.0439886907558265	0.0439886907558265	-105.0374547	39.7337049	-105.0369779	39.7338534
-19065	10422	5495	0.202007910819525	0.202007910819525	-104.9407436	39.7401208	-104.9407458	39.7383041
-15840	9729	9702	0.0777181684296862	0.0777181684296862	-105.038439	39.7323043	-105.0382565	39.732989
-15841	9702	9730	0.0351380099433058	0.0351380099433058	-105.0382565	39.732989	-105.038423	39.7332779
-19273	10425	10173	0.013664079145809	0.013664079145809	-104.9948429	39.7459879	-104.9947299	39.745901
-19160	10429	10050	0.0518274489533285	0.0518274489533285	-105.0000136	39.7493831	-105.0006176	39.749423
-20574	10861	10862	0.011368530817607	0.011368530817607	-105.0248964	39.7611186	-105.0250294	39.7611184
-19554	10560	10548	0.0725121719316359	0.0725121719316359	-104.9892651	39.7101825	-104.9892812	39.7095305
-19461	10477	10478	0.0230516224965269	0.0230516224965269	-104.9902547	39.7104857	-104.9902571	39.7102784
-19438	10491	6859	0.0113764020129076	0.0113764020129076	-104.9897225	39.7103526	-104.9897244	39.7102503
-19277	8487	10421	0.0474605500221532	0.0474605500221532	-104.9955701	39.745932	-104.9951815	39.7462368
-19226	8479	10451	0.0120282782230604	0.0120282782230604	-104.9903554	39.7419081	-104.9904508	39.7418286
-19482	10486	10487	0.00666482250083992	0.00666482250083992	-104.9910713	39.7093611	-104.9911492	39.7093622
-19412	1903	7239	0.197394669243537	0.197394669243537	-104.9798636	39.7074913	-104.9798548	39.7057161
-19323	916	5917	0.178370202088171	0.178370202088171	-104.9874133	39.7320545	-104.987439	39.7304505
-19329	10473	9894	0.0172442514416892	0.0172442514416892	-104.971721	39.6984149	-104.9716111	39.6985449
-19662	10608	10609	0.151226661870126	0.151226661870126	-105.0228937	39.7697604	-105.0211243	39.7697539
-19357	3170	9949	0.0476976092634506	0.0476976092634506	-105.0006969	39.7480168	-105.0003016	39.7477141
-19703	10622	10623	0.11468932159706	0.11468932159706	-105.0045066	39.7337938	-105.0031654	39.7337887
-19379	9194	4397	0.102701543160846	0.102701543160846	-104.9954622	39.743992	-104.9946157	39.7433367
-19846	10657	10658	0.207612047714745	0.207612047714745	-105.0387332	39.7384666	-105.0387333	39.7365995
-19735	10641	10642	0.0869223005082275	0.0869223005082275	-104.968958	39.7392065	-104.9689526	39.7384248
-423	422	423	0.0170753331475834	0.0170753331475834	-104.958788	39.708906	-104.95889	39.708774
-18892	3649	3275	0.147518961348099	0.147518961348099	-104.9575638	39.7025228	-104.9575461	39.7038494
-20076	6318	8004	0.0509194903724274	0.0509194903724274	-104.9758794	39.7400231	-104.9752839	39.740019
-20104	8546	2065	0.048454988097841	0.048454988097841	-104.9541798	39.7401771	-104.9536131	39.740176
-20204	9321	10178	0.0841675532676054	0.0841675532676054	-104.9880818	39.7550779	-104.9873945	39.7556199
-20205	10178	8401	0.0611444527276629	0.0611444527276629	-104.9873945	39.7556199	-104.9868716	39.7559951
-259	266	267	0.0502803318432383	0.0502803318432383	-104.9494463	39.6897162	-104.9500299	39.6896634
-14829	6148	4022	0.133340280271954	0.133340280271954	-105.0283827	39.754823	-105.0299425	39.7548206
-20293	10704	10700	0.011586826540776	0.011586826540776	-105.0445781	39.7730214	-105.0445771	39.7731256
-14835	7029	7396	0.0697085759052968	0.0697085759052968	-105.0322588	39.7548413	-105.0330742	39.7548479
-20259	10688	6471	0.00765068827927408	0.00765068827927408	-105.0440849	39.7746926	-105.0440839	39.7747614
-17971	10234	10239	0.0311817416438077	0.0311817416438077	-104.988102	39.7243341	-104.9877374	39.7243341
-20294	10700	10709	0.0186270421112036	0.0186270421112036	-105.0445771	39.7731256	-105.0445556	39.7732923
-14868	8305	8308	0.0233992723150567	0.0233992723150567	-105.0036573	39.7541187	-105.0038599	39.7542602
-421	420	421	0.0887343803029098	0.0887343803029098	-104.9418594	39.7437507	-104.9424633	39.7443997
-424	254	424	0.214565868461505	0.214565868461505	-105.0251543	39.7380028	-105.0237982	39.7396264
-425	424	425	0.179345861037356	0.179345861037356	-105.0237982	39.7396264	-105.0219946	39.7404498
-18900	10380	10379	0.00404144992313864	0.00404144992313864	-105.0126123	39.7504401	-105.0125991	39.750475
-312	320	321	0.234451594909332	0.234451594909332	-105.0174336	39.7493151	-105.0159659	39.7510962
-14897	6102	8202	0.215105101107824	0.215105101107824	-104.9408208	39.7092854	-104.9408446	39.707351
-19648	10603	10600	0.0301818413703728	0.0301818413703728	-104.9882807	39.7068108	-104.9879279	39.706808
-176	185	186	0.0998871295042773	0.0998871295042773	-105.0413928	39.6931195	-105.0425601	39.6931327
-20301	9381	10729	0.0209062182463086	0.0209062182463086	-105.0435596	39.7766165	-105.0435566	39.7764285
-196	205	208	0.198149371104724	0.198149371104724	-105.0203775	39.6894945	-105.0203767	39.6877125
-16280	9869	4511	0.0441265369006206	0.0441265369006206	-104.9543259	39.6981771	-104.9541278	39.6978107
-15850	9734	5596	0.0497405541513423	0.0497405541513423	-105.0433666	39.7303044	-105.0438933	39.7301146
-19563	7475	10566	0.00626126200522767	0.00626126200522767	-104.9897492	39.7084668	-104.9897479	39.7084105
-248	255	256	0.148914456277168	0.148914456277168	-104.9534054	39.7800114	-104.9516897	39.7797769
-14938	8158	7604	0.0947062136756459	0.0947062136756459	-104.9394819	39.7382793	-104.9383746	39.7382991
-305	313	314	0.0701186694040595	0.0701186694040595	-104.970735	39.780686	-104.970235	39.781186
-14691	3129	941	0.177390618833456	0.177390618833456	-104.9712066	39.7304555	-104.9712147	39.7320508
-371	263	372	0.159425481094297	0.159425481094297	-104.9473177	39.68967	-104.9473692	39.6911032
-372	262	373	0.154271040601459	0.154271040601459	-104.9458929	39.6897096	-104.9459358	39.6910966
-373	374	375	0.0498842542371797	0.0498842542371797	-105.0251537	39.7734966	-105.02457	39.7734966
-20302	6466	9378	0.155873782837014	0.155873782837014	-105.042271	39.7752905	-105.0422654	39.7766923
-315	323	324	0.151711567725454	0.151711567725454	-105.0156986	39.7518215	-105.0152472	39.753141
-554	548	549	0.0392699857827163	0.0392699857827163	-104.999646	39.701424	-104.999187	39.7014274
-14993	7973	7142	0.0462138706300854	0.0462138706300854	-104.9726808	39.7432422	-104.9721403	39.7432453
-17218	6114	3199	0.202944002497817	0.202944002497817	-104.9775313	39.7092628	-104.9775204	39.7110879
-317	325	326	0.0648164274191724	0.0648164274191724	-104.9964344	39.7091326	-104.9969556	39.7087095
-17027	3490	3584	0.0598495371899439	0.0598495371899439	-105.0243147	39.7553581	-105.0236148	39.7553716
-652	642	643	0.0146721427737165	0.0146721427737165	-104.9407521	39.7413879	-104.9405805	39.7413879
-18423	8361	8333	0.20323919891824	0.20323919891824	-105.0410832	39.7639477	-105.0410618	39.76212
-15011	9469	459	0.0480419410466021	0.0480419410466021	-104.9407436	39.7367085	-104.9413035	39.7367444
-15012	459	7107	0.043866666346984	0.043866666346984	-104.9413035	39.7367444	-104.9418165	39.7367415
-11803	8415	8416	0.145780714117446	0.145780714117446	-104.9841796	39.7520575	-104.9853609	39.751112
-18731	8066	10337	0.199884513966678	0.199884513966678	-105.0367563	39.7306104	-105.0367616	39.732408
-17082	4467	2789	0.134890565512634	0.134890565512634	-104.9615875	39.7657386	-104.9615875	39.7669517
-788	793	794	0.093857943582342	0.093857943582342	-104.9361307	39.7528412	-104.9350328	39.7528375
-15029	7883	3337	0.0968744267307773	0.0968744267307773	-104.9562673	39.7368072	-104.9574002	39.7368138
-18907	10384	10385	0.0177708173335528	0.0177708173335528	-105.0122864	39.7504906	-105.0124942	39.7504865
-11693	868	895	0.0109449511220029	0.0109449511220029	-105.0011145	39.7535929	-105.0011439	39.7534971
-16597	8570	5785	0.145695604703312	0.145695604703312	-104.9966174	39.7504686	-104.9954256	39.7514052
-17133	4238	3543	0.202299079539728	0.202299079539728	-104.9763404	39.6966061	-104.9763295	39.6984254
-18439	7914	2971	0.147770970542825	0.147770970542825	-105.027595	39.7578708	-105.0260575	39.7584783
-16408	9882	9889	0.0253610023428754	0.0253610023428754	-104.9710939	39.7032035	-104.9713896	39.7031873
-16601	9952	7558	0.0955122170701592	0.0955122170701592	-104.9999037	39.7492958	-104.9988113	39.7494758
-15050	6016	979	0.0500664854607423	0.0500664854607423	-104.9735459	39.7368668	-104.9741314	39.7368706
-16409	9889	9879	0.0208518700779087	0.0208518700779087	-104.9713896	39.7031873	-104.9716243	39.7032379
-995	753	1009	0.150380388134057	0.150380388134057	-104.9875955	39.7752036	-104.9875916	39.776556
-15070	9479	610	0.10571035032404	0.10571035032404	-104.9861222	39.7368448	-104.9873582	39.7368646
-16411	9459	9889	0.012002862934972	0.012002862934972	-104.9714714	39.7030996	-104.9713896	39.7031873
-1016	1028	1029	0.0655213058855568	0.0655213058855568	-104.9622408	39.7488417	-104.9622186	39.7494307
-15964	4362	1443	0.198880292667991	0.198880292667991	-105.0015545	39.7112124	-105.0038795	39.7112064
-16695	9599	9597	0.0527492023482324	0.0527492023482324	-105.0000258	39.7419225	-105.0002485	39.7423649
-19585	10576	7471	0.00669407122815783	0.00669407122815783	-104.9888178	39.7085212	-104.9888183	39.708461
-1119	1135	1136	0.187278154980764	0.187278154980764	-105.0404138	39.7766958	-105.0404001	39.77838
-15144	9498	6689	0.0114561417292809	0.0114561417292809	-104.949868	39.7789996	-104.9497884	39.7789167
-15795	2323	2324	0.0158381890637799	0.0158381890637799	-105.0223537	39.7376237	-105.0223618	39.737766
-20623	2706	10873	0.00650373799697247	0.00650373799697247	-105.0229176	39.7611551	-105.0229935	39.7611592
-1164	558	1182	0.0726820398635713	0.0726820398635713	-104.996796	39.697349	-104.996786	39.6966954
-15984	7372	5328	0.126515384088506	0.126515384088506	-105.0312304	39.7111869	-105.0327094	39.7111941
-16002	9775	6870	0.0380746194857137	0.0380746194857137	-105.0106552	39.688359	-105.0108215	39.6880414
-11807	8419	8395	0.147975384561768	0.147975384561768	-104.9850687	39.7527297	-104.9838316	39.7536605
-16009	9779	9780	0.0100019925159617	0.0100019925159617	-104.9993937	39.6888781	-104.9993976	39.688968
-331	207	332	0.116329690490202	0.116329690490202	-104.9565607	39.7445824	-104.9554298	39.7451641
-20314	10735	10736	0.00660332250129021	0.00660332250129021	-105.0233062	39.7593161	-105.0233746	39.7593437
-1412	1265	1438	0.0988256135069692	0.0988256135069692	-105.0204691	39.7820002	-105.0216256	39.7820039
-15147	9501	1753	0.946728932771196	0.946728932771196	-104.9477699	39.7837907	-104.9414956	39.7908082
-542	536	537	0.223575651807191	0.223575651807191	-105.0151149	39.7545148	-105.0159762	39.7526163
-1437	1457	1458	0.00733898986406934	0.00733898986406934	-105.0078201	39.6894653	-105.0078206	39.6893993
-15845	9731	9732	0.0664836940914448	0.0664836940914448	-105.0422615	39.7304199	-105.0415588	39.7301641
-15172	9512	9513	0.0495248806719176	0.0495248806719176	-105.0364026	39.7403227	-105.0369818	39.740326
-15173	9513	9514	0.0500036838355924	0.0500036838355924	-105.0369818	39.740326	-105.0375666	39.7403293
-16841	10021	9876	0.0316463232135525	0.0316463232135525	-104.9706319	39.7032358	-104.9705085	39.7029675
-12011	7081	2030	0.145136996076302	0.145136996076302	-104.9818287	39.7633054	-104.9806366	39.7642349
-12961	1633	1631	0.0197483532588124	0.0197483532588124	-105.0035017	39.7410228	-105.0033016	39.7411115
-16037	9801	9802	0.187730927470077	0.187730927470077	-105.0145291	39.6890356	-105.0123441	39.6891881
-1680	1705	1706	0.200641448140145	0.200641448140145	-105.0297026	39.69129	-105.0320475	39.6912817
-15255	9539	9533	0.0958097111651336	0.0958097111651336	-104.9351084	39.7058405	-104.9349851	39.7066969
-16278	9869	3639	0.110423900704732	0.110423900704732	-104.9543259	39.6981771	-104.953288	39.6987674
-1701	1648	1723	0.062496099688971	0.062496099688971	-105.0157083	39.6917929	-105.0164379	39.6918193
-16118	8309	427	0.26882010834223	0.26882010834223	-105.0254224	39.7404725	-105.028564	39.7403785
-250	257	258	0.156601202821138	0.156601202821138	-104.9487596	39.6897096	-104.9488454	39.6911164
-1726	1744	1745	1.09817431556355	1.09817431556355	-104.9722383	39.6883787	-104.9722634	39.6785026
-16141	9831	7016	0.0255913598249866	0.0255913598249866	-105.0306678	39.7293074	-105.030967	39.729303
-16142	7016	7028	0.027160195994677	0.027160195994677	-105.030967	39.729303	-105.0312846	39.729303
-251	259	260	0.154968238345174	0.154968238345174	-104.9465795	39.6897096	-104.9465967	39.6911032
-1778	1796	1797	0.0510193327806952	0.0510193327806952	-104.9786977	39.6947606	-104.9781014	39.6947603
-15256	9533	9546	0.0701631467931239	0.0701631467931239	-104.9349851	39.7066969	-104.9348965	39.7073242
-4282	4025	4026	0.0836518662560613	0.0836518662560613	-105.0299339	39.7572686	-105.029918	39.7580208
-4283	4026	2975	0.0536630317560949	0.0536630317560949	-105.029918	39.7580208	-105.0299157	39.7585034
-252	261	262	0.0449524282619667	0.0449524282619667	-104.9453693	39.6896766	-104.9458929	39.6897096
-17948	10228	8780	0.031808150523084	0.031808150523084	-104.98712	39.7238543	-104.9874919	39.7238512
-1803	1816	1817	0.0829077522721667	0.0829077522721667	-105.0268596	39.7287066	-105.02745	39.7281152
-4294	2858	4032	0.190837980669502	0.190837980669502	-105.0043357	39.6975452	-105.0065466	39.6973179
-4296	4033	4034	0.0984313521955559	0.0984313521955559	-105.0318398	39.697683	-105.03299	39.6977028
-4297	4034	4035	0.124316100856361	0.124316100856361	-105.03299	39.6977028	-105.0344405	39.6976368
-4299	1488	135	0.200939910778157	0.200939910778157	-104.988737	39.694787	-104.9886673	39.6929807
-4300	135	1703	0.200530915425065	0.200530915425065	-104.9886673	39.6929807	-104.9887113	39.6911776
-253	262	259	0.0587496721634218	0.0587496721634218	-104.9458929	39.6897096	-104.9465795	39.6897096
-1830	1846	1847	0.0521892409260155	0.0521892409260155	-105.0330898	39.7213326	-105.0337	39.7213301
-4310	4043	1394	0.105949182025439	0.105949182025439	-105.031239	39.7181657	-105.0324777	39.7181596
-4311	1394	4044	0.0525758001653233	0.0525758001653233	-105.0324777	39.7181596	-105.0330924	39.7181593
-4312	4044	4045	0.00275409212275412	0.00275409212275412	-105.0330924	39.7181593	-105.0331246	39.7181593
-4313	4045	4046	0.048684142933598	0.048684142933598	-105.0331246	39.7181593	-105.0336938	39.7181591
-4314	4046	4048	0.0522538202962548	0.0522538202962548	-105.0336938	39.7181591	-105.0343046	39.7181492
-11581	1889	1890	0.200726535096683	0.200726535096683	-105.0322578	39.7616855	-105.0299096	39.7616676
-254	259	263	0.0633181950748288	0.0633181950748288	-104.9465795	39.6897096	-104.9473177	39.68967
-1901	1087	1914	0.0231926567105046	0.0231926567105046	-104.9724071	39.7074855	-104.972136	39.707488
-4323	4055	4056	0.0506868932206778	0.0506868932206778	-105.0391007	39.7181492	-105.0396933	39.7181525
-4324	4056	4057	0.0525415825536361	0.0525415825536361	-105.0396933	39.7181525	-105.0403076	39.7181525
-4325	4057	1106	0.049505238452812	0.049505238452812	-105.0403076	39.7181525	-105.0408864	39.7181525
-4326	1106	4058	0.103487473030962	0.103487473030962	-105.0408864	39.7181525	-105.0420963	39.7181446
-255	263	264	0.0528764032574804	0.0528764032574804	-104.9473177	39.68967	-104.9479356	39.6896766
-1921	1933	1934	0.0492173865000396	0.0492173865000396	-105.0316836	39.7384833	-105.0322592	39.738485
-1929	1942	1943	0.119118027307007	0.119118027307007	-104.9888238	39.7384602	-104.9902169	39.7384586
-4337	4067	4068	0.0478289627129219	0.0478289627129219	-105.0276017	39.7844198	-105.0281513	39.7843383
-4338	4068	4069	0.0505441496304245	0.0505441496304245	-105.0281513	39.7843383	-105.0287428	39.7843351
-4339	4069	4070	0.0498130318292156	0.0498130318292156	-105.0287428	39.7843351	-105.0293098	39.784231
-4342	4071	4072	0.0561534117303384	0.0561534117303384	-105.0304275	39.7840207	-105.0310648	39.7838975
-4343	4072	4073	0.0484769480819301	0.0484769480819301	-105.0310648	39.7838975	-105.0316273	39.7838408
-18384	8960	8961	0.0519015690499355	0.0519015690499355	-105.0258905	39.7724462	-105.0258806	39.7729129
-544	538	539	0.0154777376492066	0.0154777376492066	-105.0462947	39.7530417	-105.0461157	39.7530208
-2042	2050	2051	0.199194779708592	0.199194779708592	-104.9674629	39.7038542	-104.9674661	39.7020628
-12337	8654	8655	0.0104809427005404	0.0104809427005404	-105.0075431	39.754727	-105.0074206	39.7547231
-4355	3965	4081	0.411489005127648	0.411489005127648	-105.0003399	39.7837825	-105.005155	39.7838353
-4356	4081	4082	0.106344190536588	0.106344190536588	-105.005155	39.7838353	-105.0063995	39.7838419
-4358	4083	1074	0.0829286899836406	0.0829286899836406	-105.0082472	39.7838436	-105.0092177	39.7838422
-4359	1074	2497	0.0840300949352524	0.0840300949352524	-105.0092177	39.7838422	-105.0102009	39.7838273
-16773	3182	3277	0.192234323904948	0.192234323904948	-104.9552273	39.7021149	-104.9552326	39.7038437
-2067	2069	2070	0.202510221820354	0.202510221820354	-104.9534962	39.7873923	-104.9534692	39.7892134
-19432	8707	10110	0.0968673163006813	0.0968673163006813	-104.9850997	39.7033596	-104.9839674	39.7033596
-4370	4092	4093	0.0521723369054183	0.0521723369054183	-105.0158347	39.7839964	-105.016444	39.7839662
-4373	4095	4096	0.0511584997280867	0.0511584997280867	-105.0175565	39.7838951	-105.0181552	39.7838945
-4374	4096	4097	0.0510055304226098	0.0510055304226098	-105.0181552	39.7838945	-105.0187521	39.7838972
-14753	6934	5930	0.0358835820845479	0.0358835820845479	-104.9793301	39.7301101	-104.979327	39.7304328
-545	539	540	0.260599478311813	0.260599478311813	-105.0461157	39.7530208	-105.0433843	39.7519802
-2113	2114	2115	0.0866449228578761	0.0866449228578761	-104.9269938	39.7723519	-104.9270004	39.7731311
-12341	2501	8642	0.0589286767766051	0.0589286767766051	-105.0073403	39.7545867	-105.0079921	39.7544142
-4383	4104	2729	0.0487767884709024	0.0487767884709024	-105.0233734	39.7846136	-105.0239366	39.7846851
-4387	748	1566	0.142516569011717	0.142516569011717	-104.9508345	39.7763985	-104.9507995	39.7776799
-16443	9900	9901	0.201666693845683	0.201666693845683	-104.9688122	39.6930484	-104.9711673	39.6931206
-546	540	541	0.0326517480806501	0.0326517480806501	-105.0433843	39.7519802	-105.0430648	39.7518193
-547	541	542	0.0254047336234174	0.0254047336234174	-105.0430648	39.7518193	-105.0428359	39.7516736
-2158	2156	2157	0.218243127550759	0.218243127550759	-105.0139707	39.7293204	-105.0141188	39.7312798
-2160	2158	2159	0.0821511858388999	0.0821511858388999	-105.0144627	39.756468	-105.0144598	39.7572068
-16173	4250	9840	0.39197341800201	0.39197341800201	-104.9867926	39.6966289	-104.9868416	39.693104
-19464	10508	10509	0.0204161788330557	0.0204161788330557	-104.9902611	39.7099214	-104.9902632	39.7097378
-18178	5791	6050	0.202074681821779	0.202074681821779	-105.0258291	39.7874305	-105.0258319	39.7856132
-20702	10891	10902	0.0170035110425561	0.0170035110425561	-105.0400867	39.7653362	-105.0400838	39.7654891
-16216	8620	7903	0.142599898878985	0.142599898878985	-105.0093075	39.7583444	-105.0105038	39.7592382
-11816	2201	2202	0.15535054028393	0.15535054028393	-105.0146775	39.7403403	-105.0128922	39.7400809
-17089	9940	8134	0.138649146182337	0.138649146182337	-104.960382	39.7494708	-104.9603847	39.7482239
-17090	8134	3689	0.141996254884573	0.141996254884573	-104.9603847	39.7482239	-104.9603811	39.7469469
-2222	2222	2223	0.0488100805647676	0.0488100805647676	-104.9729758	39.7337087	-104.972405	39.7337096
-2223	2223	2224	0.0512642786009998	0.0512642786009998	-104.972405	39.7337096	-104.9718055	39.7337106
-14639	2243	2244	0.0354564943031107	0.0354564943031107	-105.0051802	39.7575225	-105.0050086	39.7572322
-17091	3689	4597	0.241148863142693	0.241148863142693	-104.9603811	39.7469469	-104.9603758	39.7447782
-2264	2264	2265	0.176035436319457	0.176035436319457	-104.9304797	39.7178171	-104.9304912	39.7194002
-14641	2244	2272	0.0187003459565438	0.0187003459565438	-105.0050086	39.7572322	-105.0048152	39.7571536
-16312	2722	2929	0.0126176772334624	0.0126176772334624	-104.96971	39.6952871	-104.9698519	39.6952562
-14127	419	417	0.0606641044076811	0.0606641044076811	-104.94552	39.7449427	-104.9458794	39.7444723
-2285	2284	2285	0.184338950183701	0.184338950183701	-104.9305594	39.7601749	-104.9305592	39.7618327
-17024	10059	6431	0.0170040072643452	0.0170040072643452	-105.0176702	39.753311	-105.0178463	39.7532399
-20326	10744	10738	0.00650370546328925	0.00650370546328925	-105.0235881	39.7590797	-105.0235235	39.7590488
-2307	2304	1995	0.0793159537973265	0.0793159537973265	-105.0127167	39.6959791	-105.0136437	39.6959725
-16363	7010	2769	0.112453696268037	0.112453696268037	-104.9318494	39.7619997	-104.933165	39.7620038
-16364	2769	3365	0.103853901930967	0.103853901930967	-104.933165	39.7620038	-104.93438	39.7620028
-20334	2967	10745	0.0137335338280324	0.0137335338280324	-105.0237301	39.7584727	-105.0237282	39.7585962
-2375	2363	964	0.101155075878388	0.101155075878388	-104.9849833	39.7193599	-104.9838008	39.7193434
-16463	9886	1081	0.198408324686945	0.198408324686945	-104.9705756	39.7060566	-104.972547	39.7069966
-16466	9913	9912	0.00925208668760351	0.00925208668760351	-104.9725631	39.7070317	-104.9726409	39.7070895
-17365	10091	3085	0.200980490545583	0.200980490545583	-104.9786569	39.7147194	-104.9786762	39.712912
-17304	4258	8744	0.201266280518922	0.201266280518922	-104.9634703	39.6965777	-104.9634565	39.6947677
-2443	2434	2435	0.0498096064689081	0.0498096064689081	-105.038137	39.7712705	-105.0387198	39.7712682
-18192	6053	4068	0.142529657997643	0.142529657997643	-105.0281511	39.7856201	-105.0281513	39.7843383
-16717	5546	10002	2.41636756690016	2.41636756690016	-104.9874887	39.6894093	-104.9875808	39.6676785
-14694	4875	4946	0.19209064576365	0.19209064576365	-104.9712147	39.735165	-104.9712638	39.7368921
-2465	1228	2455	0.0986019921641189	0.0986019921641189	-105.0123662	39.7704857	-105.0135199	39.7704859
-17232	243	244	0.123936016070967	0.123936016070967	-104.9728142	39.6892191	-104.9715783	39.6886379
-17233	244	245	0.0423914167747626	0.0423914167747626	-104.9715783	39.6886379	-104.9711551	39.6884397
-17234	245	30	0.0421885133223055	0.0421885133223055	-104.9711551	39.6884397	-104.9707346	39.6882416
-17235	30	31	0.0623462807475453	0.0623462807475453	-104.9707346	39.6882416	-104.9701337	39.6879245
-20321	10740	10741	0.00961494122957245	0.00961494122957245	-105.0235185	39.7589017	-105.0236254	39.7588748
-20520	10845	10841	0.0515194041185215	0.0515194041185215	-105.0187438	39.7583413	-105.0181411	39.7583408
-19715	10630	10631	0.0208944523636977	0.0208944523636977	-105.0042609	39.7342602	-105.0042586	39.7344481
-14699	4164	4773	0.260608636385053	0.260608636385053	-104.974654	39.7201321	-104.9746628	39.7224758
-2587	2559	2560	0.109781786773584	0.109781786773584	-105.0051367	39.7862559	-105.0064215	39.7862585
-18391	7038	3425	0.202488499072253	0.202488499072253	-105.0322651	39.7656196	-105.034629	39.7657398
-18395	2554	3861	0.207477450927098	0.207477450927098	-105.0433255	39.7874316	-105.0427456	39.7892435
-20741	10913	7366	0.0901821833329384	0.0901821833329384	-105.0277761	39.7631337	-105.0267891	39.7634203
-2613	2576	2373	0.0436228403965834	0.0436228403965834	-104.9558107	39.7098997	-104.9553043	39.709946
-19620	10524	10589	0.00570573305761744	0.00570573305761744	-104.9883547	39.7082799	-104.988288	39.70828
-18401	1425	7176	0.174145888646233	0.174145888646233	-105.0386719	39.7820847	-105.0380731	39.7805877
-20347	10745	10747	0.0185775892434006	0.0185775892434006	-105.0237282	39.7585962	-105.0235111	39.7585885
-2677	2638	2639	0.294941945704345	0.294941945704345	-105.015182	39.7220707	-105.0186305	39.7220872
-19655	10606	10607	0.00514986150833142	0.00514986150833142	-104.9882676	39.7060132	-104.9883278	39.7060132
-18881	7249	3271	0.203031342103983	0.203031342103983	-104.9611376	39.7056792	-104.9611322	39.7038533
-20742	7366	10907	0.0328095866921768	0.0328095866921768	-105.0267891	39.7634203	-105.026532	39.7636394
-2729	2684	2685	0.0539600310135124	0.0539600310135124	-104.9795298	39.7522538	-104.9799803	39.7525937
-17508	10114	10116	0.025112430125901	0.025112430125901	-105.0124916	39.7402957	-105.0127369	39.7404199
-17946	10225	10226	0.00737359034109891	0.00737359034109891	-104.987291	39.7236088	-104.9872048	39.7236101
-14688	2393	2798	0.189312144234638	0.189312144234638	-104.971187	39.7255843	-104.971199	39.7272868
-18130	10265	6045	0.200929523136355	0.200929523136355	-105.0222149	39.787432	-105.0222109	39.785625
-2876	2499	2821	0.136005417598284	0.136005417598284	-105.0095409	39.7801481	-105.0111319	39.7801807
-12974	2797	2822	0.0772628603550689	0.0772628603550689	-105.0069887	39.7454751	-105.0076937	39.7450404
-19658	9394	8493	0.0491161384071996	0.0491161384071996	-105.0253203	39.7701872	-105.0258941	39.7702117
-19659	8493	6763	0.145715875084599	0.145715875084599	-105.0258941	39.7702117	-105.0275974	39.7702694
-14698	5033	4164	0.121872885708228	0.121872885708228	-104.9746644	39.7190361	-104.974654	39.7201321
-17172	3092	5304	0.202230215982892	0.202230215982892	-104.9739802	39.7128965	-104.9739798	39.7147152
-3021	2953	2954	0.00990774005844554	0.00990774005844554	-105.0157188	39.7584009	-105.0158347	39.7584
-19694	10618	8145	0.956513774549446	0.956513774549446	-104.9416501	39.7908808	-104.9480016	39.7837973
-19803	5200	10646	0.12476083696761	0.12476083696761	-104.9969602	39.7241241	-104.9969581	39.7230021
-14722	4871	6016	0.191389811056615	0.191389811056615	-104.9735383	39.7351456	-104.9735459	39.7368668
-20794	8908	10948	0.0132755925041989	0.0132755925041989	-105.0289792	39.7622112	-105.0291285	39.7622441
-19880	10672	2617	0.0529554442967168	0.0529554442967168	-104.9957912	39.722999	-104.9957832	39.7225228
-19918	6233	5202	0.175854776488408	0.175854776488408	-104.9980791	39.7257025	-104.9980791	39.724121
-18502	9278	9526	0.133752339971597	0.133752339971597	-105.0363599	39.7511906	-105.036376	39.7499878
-3064	2995	2996	0.132712872312529	0.132712872312529	-104.9953975	39.759713	-104.9954583	39.7585204
-19901	10663	10676	0.0513919786820835	0.0513919786820835	-105.0428156	39.736637	-105.0434166	39.7366408
-19973	10306	619	0.00429215823862154	0.00429215823862154	-105.0316869	39.7366042	-105.0316871	39.7365656
-17075	7842	828	0.141317632530522	0.141317632530522	-104.9616094	39.7519514	-104.9616093	39.7532223
-17970	10238	10234	0.0188321983270746	0.0188321983270746	-104.9883222	39.7243341	-104.988102	39.7243341
-18897	10377	10378	0.0131134839493858	0.0131134839493858	-105.0124804	39.7505728	-105.0125479	39.7504669
-17180	5449	5450	0.206640976814444	0.206640976814444	-104.9704727	39.6911049	-104.9704932	39.6929632
-17113	3932	3959	0.0402088808240704	0.0402088808240704	-104.9574881	39.7475642	-104.957513	39.7479253
-19990	10684	10682	0.0498254818797545	0.0498254818797545	-105.0410722	39.7384617	-105.0416549	39.7384584
-18513	9294	10302	0.00151227516682341	0.00151227516682341	-105.0410618	39.7511847	-105.0410619	39.7511711
-3252	2365	3163	0.175456016528149	0.175456016528149	-104.98145	39.7193208	-104.9814586	39.7208987
-19267	10446	8486	0.0130023858176566	0.0130023858176566	-104.9952471	39.7458453	-104.9953533	39.7457616
-15217	9530	539	0.0270882933911684	0.0270882933911684	-105.0461917	39.7527843	-105.0461157	39.7530208
-18503	9526	9353	0.135313261796309	0.135313261796309	-105.036376	39.7499878	-105.0363784	39.7487709
-18902	10378	10381	0.0118745691698922	0.0118745691698922	-105.0125479	39.7504669	-105.0125841	39.7503638
-20282	10710	10722	0.0492625817369533	0.0492625817369533	-105.0441026	39.7735162	-105.044096	39.7739592
-19437	10490	10491	0.0516785382045006	0.0516785382045006	-104.9897131	39.7108173	-104.9897225	39.7103526
-16422	3358	3034	0.0480216533576434	0.0480216533576434	-104.9695281	39.7021526	-104.9699305	39.7024537
-17185	5659	5660	0.024871407903781	0.024871407903781	-104.9687309	39.6883933	-104.9684404	39.6883858
-18512	10302	9294	0.00151227516682341	0.00151227516682341	-105.0410619	39.7511711	-105.0410618	39.7511847
-18681	3185	3408	0.173742073092489	0.173742073092489	-105.0367216	39.7197052	-105.0367215	39.7181427
-15235	9533	9534	0.025845258726166	0.025845258726166	-104.9349851	39.7066969	-104.9352855	39.7067217
-15243	9534	9535	0.0751513734309232	0.0751513734309232	-104.9352855	39.7067217	-104.9359493	39.706279
-14715	5686	5687	0.105315223547906	0.105315223547906	-104.97583	39.7295104	-104.9758385	39.7304575
-19826	10647	9253	0.122215184303521	0.122215184303521	-105.0021963	39.7300097	-105.0022016	39.7289106
-20299	10728	5578	0.0498927645754841	0.0498927645754841	-105.0445532	39.7768578	-105.0439694	39.7768534
-15281	9557	9556	0.01686832436596	0.01686832436596	-104.9466791	39.7112633	-104.9468185	39.711156
-15283	9557	9558	0.0154433036380546	0.0154433036380546	-104.9466791	39.7112633	-104.9465426	39.7113542
-17312	5705	5706	0.401673875470838	0.401673875470838	-104.9611673	39.6911287	-104.9611029	39.6875167
-3564	3426	3427	0.0516847701108369	0.0516847701108369	-105.0346376	39.7664739	-105.0346332	39.7669387
-15400	9579	3315	0.0326402169295471	0.0326402169295471	-105.0157258	39.7437753	-105.0155552	39.7435127
-15402	9580	9581	0.331383974435327	0.331383974435327	-105.0162851	39.7457849	-105.0162939	39.7487651
-15403	9582	9583	0.0120173707764648	0.0120173707764648	-105.0104647	39.7536666	-105.0103359	39.7536233
-18689	1859	5770	0.176521953507317	0.176521953507317	-105.0415045	39.7213253	-105.0415039	39.7197378
-3659	3496	3497	0.100604510338319	0.100604510338319	-104.9500131	39.6983858	-104.9488372	39.6983858
-15426	8637	4935	0.0862034738049073	0.0862034738049073	-104.9993008	39.7450562	-104.9999815	39.7444843
-15429	9597	8608	0.0815311130388188	0.0815311130388188	-105.0002485	39.7423649	-105.0009845	39.7418987
-14717	933	5818	0.11375652775637	0.11375652775637	-104.9758289	39.7320426	-104.9752659	39.7329695
-3704	3540	3541	0.0487079158287504	0.0487079158287504	-104.9786521	39.6984298	-104.9780828	39.698433
-20304	9382	10728	0.0315682813160642	0.0315682813160642	-105.0445538	39.7765739	-105.0445532	39.7768578
-15490	9618	8464	0.061043367869745	0.061043367869745	-105.0008107	39.746683	-105.0014282	39.7464074
-15492	9627	9626	0.0311123551122936	0.0311123551122936	-105.0003825	39.746907	-105.0006793	39.7467451
-17382	5814	2314	0.0781390219671105	0.0781390219671105	-105.0151443	39.7320016	-105.0146392	39.731416
-20431	10791	10754	0.00545772790966665	0.00545772790966665	-105.0231621	39.7594921	-105.0232175	39.7595165
-3935	3733	3734	0.176323868665952	0.176323868665952	-105.0028152	39.7336992	-105.0028252	39.7352849
-20425	10786	10787	0.0471980291688183	0.0471980291688183	-105.0188457	39.7592189	-105.0188651	39.7596431
-16275	9868	3657	0.128315234485653	0.128315234485653	-104.9551011	39.698724	-104.9539423	39.6994566
-17111	3775	3776	0.0186255054019669	0.0186255054019669	-104.957947	39.7477378	-104.9578598	39.7475843
-20436	10794	10795	0.0773551964908624	0.0773551964908624	-105.0218405	39.7610002	-105.0227368	39.7610963
-4030	3814	3815	0.205898323776278	0.205898323776278	-105.039412	39.7472161	-105.0374612	39.7461303
-14114	3768	3623	0.0676593021490157	0.0676593021490157	-104.9443957	39.7462296	-104.9448677	39.7457412
-20311	10732	10733	0.00871128803713245	0.00871128803713245	-105.0237565	39.7589777	-105.0236546	39.7589766
-17485	321	4992	0.0357053960194593	0.0357053960194593	-105.0159659	39.7510962	-105.0161841	39.75137
-4135	1293	3896	0.0646203690871901	0.0646203690871901	-104.9634588	39.7488413	-104.9634682	39.7494224
-16181	9842	5547	0.812121023854291	0.812121023854291	-104.9882243	39.682101	-104.9881577	39.6894044
-15562	9299	9657	0.183361943567776	0.183361943567776	-104.9775506	39.725614	-104.9775593	39.727263
-15563	9657	3803	0.198879262059456	0.198879262059456	-104.9775593	39.727263	-104.977579	39.7290515
-18244	9371	2433	0.198605382792158	0.198605382792158	-105.0375615	39.7694949	-105.0375589	39.771281
-20442	10799	10800	0.0197706815366264	0.0197706815366264	-105.0218863	39.7618096	-105.0218874	39.7616318
-4153	2788	3908	0.132166336514103	0.132166336514103	-104.9634422	39.7669465	-104.9634409	39.7681351
-19582	10575	10562	0.0700205995742609	0.0700205995742609	-104.9885885	39.7085196	-104.9885838	39.7091493
-16266	7738	5831	0.20157737543677	0.20157737543677	-104.9586954	39.6893271	-104.9586821	39.6911399
-17685	6154	6155	0.459645187119716	0.459645187119716	-104.9794838	39.7796685	-104.9848557	39.7798784
-4242	3991	3227	0.0177155969329486	0.0177155969329486	-105.0299548	39.7716681	-105.0299581	39.7718274
-4243	3227	3992	0.0329982706824684	0.0329982706824684	-105.0299581	39.7718274	-105.0299454	39.772124
-19465	10509	10510	0.0192818852758557	0.0192818852758557	-104.9902632	39.7097378	-104.9902651	39.7095644
-20445	10801	10802	0.0205768304881295	0.0205768304881295	-105.021849	39.761283	-105.0218433	39.761098
-4285	658	1885	0.048605694225596	0.048605694225596	-105.0299141	39.7589753	-105.0299322	39.7594122
-14724	5469	977	0.135303141818757	0.135303141818757	-104.9735608	39.7384085	-104.9741536	39.7395367
-4308	4042	3999	0.107188720026654	0.107188720026654	-105.0287585	39.7181591	-105.0300116	39.7181459
-15626	9687	9688	0.091295408872665	0.091295408872665	-104.9105005	39.7584038	-104.9094325	39.758409
-18437	10292	8442	0.00675422790693776	0.00675422790693776	-105.0280151	39.7614164	-105.0279677	39.761465
-20447	10794	10803	0.118731077964576	0.118731077964576	-105.0218405	39.7610002	-105.0217149	39.7599368
-4347	4075	4076	0.0470687599943484	0.0470687599943484	-105.0333673	39.7838362	-105.0339181	39.7838412
-4349	1002	4077	0.216843974938131	0.216843974938131	-104.9875798	39.7840554	-104.9901174	39.7840727
-20454	10809	10810	0.100342747602662	0.100342747602662	-105.0193936	39.7576917	-105.0204422	39.7580973
-4420	4130	4131	0.121697779505431	0.121697779505431	-104.9511844	39.7681053	-104.9511702	39.7691997
-19593	10478	10580	0.068856662719705	0.068856662719705	-104.9902571	39.7102784	-104.991062	39.7102859
-20625	10804	10874	0.0625386897444795	0.0625386897444795	-105.0242305	39.7611919	-105.0235366	39.7610136
-18253	3979	6754	0.201867515357413	0.201867515357413	-105.0299437	39.7660501	-105.0275819	39.7660439
-4514	4194	4195	0.10298973821829	0.10298973821829	-105.0077638	39.7343613	-105.0077585	39.7352875
-15674	9685	9686	0.0593326737516342	0.0593326737516342	-104.9123877	39.7583821	-104.9116936	39.758384
-20460	10813	10814	0.0263810628539784	0.0263810628539784	-105.0189136	39.7585213	-105.0192222	39.758524
-4540	1339	4214	0.206331927913881	0.206331927913881	-105.0179868	39.7130093	-105.0180211	39.7111539
-15694	7269	2024	0.188168800569156	0.188168800569156	-104.937334	39.717787	-104.935134	39.717787
-19466	10510	10511	0.0234630277187848	0.0234630277187848	-104.9902651	39.7095644	-104.9902675	39.7093534
-20626	10788	10875	0.12707186988651	0.12707186988651	-105.0218514	39.7587986	-105.0215131	39.7599114
-14733	6342	4868	0.191023303912105	0.191023303912105	-104.9758813	39.7368678	-104.9758386	39.7351502
-18638	7383	5180	0.100367385774354	0.100367385774354	-105.0336341	39.725085	-105.0345542	39.7245247
-15713	1050	3913	0.111080496528689	0.111080496528689	-104.9620183	39.718346	-104.963317	39.7183519
-18173	6048	6420	0.20192046475531	0.20192046475531	-105.0245363	39.7856143	-105.0245269	39.7874302
-4662	1707	4301	0.203353286347824	0.203353286347824	-105.0343547	39.691257	-105.0343542	39.6894282
-15737	3771	8867	0.1545281811215	0.1545281811215	-104.9439848	39.7291098	-104.9439798	39.7304995
-18694	6025	5978	0.00688297127309608	0.00688297127309608	-105.0391099	39.7198541	-105.0391098	39.719916
-18468	10298	9138	0.0199498887128462	0.0199498887128462	-105.0431907	39.7509391	-105.0432544	39.7511117
-17131	4372	1799	0.197593407061799	0.197593407061799	-104.9763628	39.692984	-104.9763617	39.694761
-15759	3487	5346	0.100946337054167	0.100946337054167	-104.9293078	39.7162471	-104.9281276	39.716246
-20632	8227	6090	0.135158757751447	0.135158757751447	-105.0138041	39.7620198	-105.0138111	39.7608043
-18263	6067	6514	0.193791754137247	0.193791754137247	-105.038672	39.7856168	-105.0386639	39.783874
-4805	4410	4411	0.102107994490615	0.102107994490615	-105.0297971	39.7030981	-105.0298314	39.704016
-19823	9252	7641	0.177252004679102	0.177252004679102	-105.0008928	39.7289115	-105.0009116	39.7273175
-15778	9119	9707	0.0214606208419429	0.0214606208419429	-105.039492	39.7311696	-105.039492	39.7313626
-15780	9707	9703	0.181325566879256	0.181325566879256	-105.039492	39.7313626	-105.039492	39.7329933
-14737	4770	6526	0.178169149120729	0.178169149120729	-104.97698	39.7224773	-104.9769714	39.7240796
-4824	534	475	0.0459278377034575	0.0459278377034575	-105.0126456	39.7551939	-105.0122615	39.7554827
-15830	7134	9724	0.00382519149625338	0.00382519149625338	-105.0393032	39.7348018	-105.0393035	39.7348362
-434	433	364	0.11596793090747	0.11596793090747	-104.9692608	39.6879972	-104.9703166	39.6886511
-17139	4488	3200	0.20282742100359	0.20282742100359	-104.9762867	39.7092645	-104.976351	39.7110879
-20710	7365	10885	0.00202939174918317	0.00202939174918317	-105.0253917	39.7620904	-105.0253682	39.762093
-20738	10886	10887	0.038658244493302	0.038658244493302	-105.0396293	39.7653159	-105.0397062	39.7656585
-4921	4492	4493	0.0619945774719425	0.0619945774719425	-105.0052379	39.7395355	-105.0052303	39.740093
-18268	2438	5736	0.170878783790289	0.170878783790289	-105.0399004	39.7709268	-105.0398843	39.7724635
-4947	3640	4511	0.128546240241841	0.128546240241841	-104.9529616	39.6985396	-104.9541278	39.6978107
-2413	2403	2404	0.136554071110129	0.136554071110129	-105.017566	39.7530336	-105.0191633	39.7530233
-11806	8418	8419	0.144478674207108	0.144478674207108	-104.986246	39.7517975	-104.9850687	39.7527297
-470	473	474	0.189801845816516	0.189801845816516	-105.0185991	39.7470262	-105.0180056	39.7453814
-14741	3802	5935	0.15521301123556	0.15521301123556	-104.9769713	39.7290617	-104.9769887	39.7304575
-4998	4544	4545	0.135440573029242	0.135440573029242	-105.0220369	39.7741287	-105.0220798	39.7753463
-2670	2628	2629	0.199951181775354	0.199951181775354	-105.0227761	39.7220608	-105.025114	39.7220614
-18532	10307	7540	0.709454997862857	0.709454997862857	-105.0532518	39.7661573	-105.0449514	39.7661904
-5075	4599	1025	0.0544629152641776	0.0544629152641776	-104.9615991	39.7447832	-104.9622361	39.7447859
-17143	4616	4617	0.200408905820063	0.200408905820063	-104.9763402	39.7165163	-104.9763514	39.7183186
-20669	10890	10891	0.0251214927041886	0.0251214927041886	-105.0403806	39.7653384	-105.0400867	39.7653362
-14743	931	2216	0.184594913416957	0.184594913416957	-104.9770026	39.732045	-104.9770059	39.7337051
-5094	4615	4618	0.110635552941058	0.110635552941058	-104.9835591	39.744874	-104.9848531	39.7448793
-19633	10594	10505	0.00660487490366482	0.00660487490366482	-104.9910918	39.7081283	-104.991169	39.7081293
-20709	10913	7365	0.234512277592806	0.234512277592806	-105.0277761	39.7631337	-105.0253917	39.7620904
-20713	5881	10915	0.0114767201911695	0.0114767201911695	-105.0253707	39.7632845	-105.0253686	39.7633877
-18275	6667	1427	0.0124761175920816	0.0124761175920816	-105.0398176	39.7819709	-105.0398172	39.7820831
-18575	10323	10324	0.133190640971179	0.133190640971179	-105.0341543	39.7821409	-105.0327262	39.781661
-19540	10553	10554	0.069921649249612	0.069921649249612	-104.9890431	39.7091518	-104.9890497	39.708523
-19541	10554	7472	0.00672748885261455	0.00672748885261455	-104.9890497	39.708523	-104.9890503	39.7084625
-19542	7472	10555	0.00636055689076091	0.00636055689076091	-104.9890503	39.7084625	-104.9890509	39.7084053
-20479	10827	10828	0.0321786032396296	0.0321786032396296	-105.0188943	39.7587219	-105.0192706	39.7587299
-5172	3232	4672	0.135963226577445	0.135963226577445	-104.993638	39.7717733	-104.9936519	39.772996
-17294	8754	10015	0.202671913712405	0.202671913712405	-104.944769	39.6947624	-104.9447901	39.696585
-23	24	25	0.131395177842502	0.131395177842502	-105.0205339	39.7572526	-105.0220707	39.7572761
-24	25	26	0.132981987743145	0.132981987743145	-105.0220707	39.7572761	-105.0236259	39.7572468
-18535	5555	10308	0.537923452261619	0.537923452261619	-105.0440136	39.7598585	-105.0503066	39.7598409
-5196	4693	4694	0.101324047402986	0.101324047402986	-105.038526	39.7094438	-105.0397105	39.7094438
-17084	505	4047	0.193244409170512	0.193244409170512	-104.9471759	39.748019	-104.9449621	39.7476682
-20013	7896	8858	0.144841565186615	0.144841565186615	-104.9891984	39.7521958	-104.988003	39.7531189
-18281	6757	6460	0.11412288805936	0.11412288805936	-105.0386612	39.7767112	-105.0386826	39.775685
-5239	4723	4724	0.173697663092072	0.173697663092072	-104.9696767	39.7416775	-104.9696749	39.7432396
-57	61	62	0.0954500024095661	0.0954500024095661	-104.931714	39.700208	-104.932829	39.700178
-18609	5208	6228	0.175202487961463	0.175202487961463	-105.0445268	39.7239462	-105.0445535	39.7255217
-18543	10313	5554	0.549870500653692	0.549870500653692	-105.050446	39.7589461	-105.0440133	39.7589595
-5310	4766	3155	0.0172249530452766	0.0172249530452766	-104.9813252	39.7224891	-104.9811238	39.7224897
-78	84	85	0.0505639086324271	0.0505639086324271	-104.9611564	39.7002245	-104.9605654	39.7002204
-19778	10632	5380	0.0979518829901303	0.0979518829901303	-105.0008955	39.7325996	-105.0008982	39.7334805
-20481	10792	10829	0.0269599370404467	0.0269599370404467	-105.0232345	39.7595229	-105.0230688	39.7597292
-5457	4876	4877	0.0499120224253174	0.0499120224253174	-104.9706482	39.735165	-104.9700645	39.735165
-96	101	102	0.0321305027576107	0.0321305027576107	-104.9418857	39.7001887	-104.9415109	39.7002071
-97	102	103	0.0620448910426151	0.0620448910426151	-104.9415109	39.7002071	-104.940786	39.7001905
-18782	10348	10344	0.0162360672802701	0.0162360672802701	-105.0006804	39.7393818	-105.0008699	39.7393725
-5478	4135	4890	0.0934025271750886	0.0934025271750886	-104.9505787	39.7351289	-104.9494864	39.7351307
-121	128	129	0.177008602394702	0.177008602394702	-105.0065998	39.7352916	-105.0065273	39.7368825
-244	251	252	0.175978023607631	0.175978023607631	-104.9994212	39.7305062	-104.9994279	39.7320888
-18294	6901	1428	0.00619376962359973	0.00619376962359973	-105.0409738	39.7821337	-105.0409732	39.782078
-5500	4907	4908	0.100175479072509	0.100175479072509	-104.935013	39.7346788	-104.9338415	39.7346803
-140	148	149	0.0975727004199176	0.0975727004199176	-105.0050494	39.6930773	-105.0061897	39.6930874
-393	395	396	0.169106051700542	0.169106051700542	-104.9367017	39.7800737	-104.9347437	39.7798532
-18784	10348	10349	0.00525970147109288	0.00525970147109288	-105.0006804	39.7393818	-105.0006189	39.7393808
-5522	4924	4677	0.103650586835971	0.103650586835971	-104.9935332	39.7338673	-104.9941264	39.7346802
-18546	7539	10314	0.65633531431652	0.65633531431652	-105.0449396	39.7652893	-105.0526184	39.7652564
-18297	6968	6995	0.202610377838011	0.202610377838011	-105.0409894	39.7802021	-105.0409786	39.77838
-5676	3669	5032	0.215322761034264	0.215322761034264	-104.9757447	39.7475025	-104.9757617	39.7494389
-173	182	183	0.0984047094047537	0.0984047094047537	-105.0379081	39.6931063	-105.0390582	39.6931063
-174	183	184	0.100655002347226	0.100655002347226	-105.0390582	39.6931063	-105.0402341	39.6931327
-16515	5454	5455	0.104997960992542	0.104997960992542	-104.9857094	39.7569105	-104.984841	39.7562427
-20485	10832	10763	0.0351600114003883	0.0351600114003883	-105.025074	39.7612402	-105.0250727	39.760924
-5779	2576	4917	0.032816005995912	0.032816005995912	-104.9558107	39.7098997	-104.9558286	39.7101945
-192	202	203	0.199740801936021	0.199740801936021	-105.0203557	39.6985481	-105.0203643	39.6967518
-193	203	169	0.402428218597258	0.402428218597258	-105.0203643	39.6967518	-105.0203814	39.6931327
-14755	5931	927	0.177893389603082	0.177893389603082	-104.9792436	39.7304339	-104.9792571	39.7320337
-5803	5121	5122	0.103540820168727	0.103540820168727	-104.970912	39.7597791	-104.9708892	39.7607101
-225	49	236	0.00807621055546913	0.00807621055546913	-104.9733927	39.700201	-104.9732983	39.700201
-18672	1538	1539	0.106836085520251	0.106836085520251	-105.042161	39.7245549	-105.042161	39.7255157
-14756	927	2212	0.186014347432929	0.186014347432929	-104.9792571	39.7320337	-104.9792376	39.7337065
-5852	1967	4622	0.105142035615429	0.105142035615429	-104.9275397	39.743724	-104.9274625	39.7446677
-282	292	293	0.038589084717098	0.038589084717098	-105.0040727	39.760849	-105.0037495	39.7610913
-283	293	294	0.0763501630731075	0.0763501630731075	-105.0037495	39.7610913	-105.0030853	39.7615504
-285	295	296	0.17581051150028	0.17581051150028	-104.9946201	39.7273342	-104.9946233	39.7289153
-14758	4862	7101	0.190667289560019	0.190667289560019	-104.9792634	39.7351686	-104.9792889	39.7368832
-5875	4334	5174	0.0464101693595893	0.0464101693595893	-104.9780308	39.7165201	-104.9774882	39.7165195
-350	351	352	0.0901523030384508	0.0901523030384508	-105.0171199	39.7741304	-105.017099	39.774941
-353	355	356	0.108591561133878	0.108591561133878	-104.9475022	39.7793961	-104.9486062	39.7789125
-369	370	371	0.00989155289209397	0.00989155289209397	-105.0298446	39.7379436	-105.0298176	39.7380301
-18304	7116	6758	0.139614208847036	0.139614208847036	-105.0259576	39.7678922	-105.0275911	39.7678891
-517	511	512	0.231881303387922	0.231881303387922	-105.0312479	39.7836347	-105.03396	39.7837055
-518	512	513	0.0504031171767775	0.0504031171767775	-105.03396	39.7837055	-105.0345487	39.7837339
-12256	8620	8618	0.1042966231246	0.1042966231246	-105.0093075	39.7583444	-105.0084208	39.7577001
-6051	5293	5294	0.1322760806231	0.1322760806231	-105.0315166	39.7439551	-105.0330637	39.7439508
-18305	6758	3982	0.20021257935936	0.20021257935936	-105.0275911	39.7678891	-105.0299336	39.7678829
-574	248	567	0.654270176053915	0.654270176053915	-104.966468	39.6862015	-104.9595276	39.6837329
-575	264	568	0.0404038185731676	0.0404038185731676	-104.9479356	39.6896766	-104.9479442	39.6893133
-19637	10596	10597	0.0126826750829723	0.0126826750829723	-104.9881372	39.7071852	-104.9882854	39.7071884
-20403	10761	10778	0.00417068578422797	0.00417068578422797	-105.0250806	39.7603661	-105.0250816	39.7603286
-6437	2444	5569	0.02055703905507	0.02055703905507	-105.0440363	39.7709406	-105.0440431	39.7711254
-614	605	606	0.0427456634033912	0.0427456634033912	-105.0276669	39.7627327	-105.0278867	39.763078
-11697	1006	1032	0.0356944242966225	0.0356944242966225	-105.0016257	39.7531381	-105.0019469	39.752933
-18485	7779	9146	0.0491523501803915	0.0491523501803915	-105.0393085	39.7589141	-105.0398835	39.7589172
-19922	7869	3723	0.102610678307364	0.102610678307364	-104.9980684	39.719352	-104.9980684	39.7184292
-20528	10783	10029	0.0108754318867703	0.0108754318867703	-105.0159618	39.7583177	-105.015835	39.7583097
-6839	2922	5305	0.104995892978265	0.104995892978265	-105.021523	39.7147919	-105.0227504	39.7148051
-634	544	624	0.0671323040254876	0.0671323040254876	-105.034963	39.736586	-105.0357481	39.7365857
-635	624	625	0.00434381837571047	0.00434381837571047	-105.0357481	39.7365857	-105.0357989	39.7365856
-20428	10788	10789	0.0563042197472527	0.0563042197472527	-105.0218514	39.7587986	-105.0223762	39.7591046
-18340	7633	7634	0.201343863199868	0.201343863199868	-105.0351904	39.7603234	-105.0351771	39.7621341
-20531	2704	10847	0.00595682994262844	0.00595682994262844	-105.0229197	39.7608329	-105.0229893	39.7608356
-18337	7624	2435	0.20163475178063	0.20163475178063	-105.0387364	39.7694549	-105.0387198	39.7712682
-655	645	646	0.15124021105117	0.15124021105117	-104.9372542	39.7414009	-104.9354861	39.7413613
-11518	656	657	0.200075413530476	0.200075413530476	-105.0346018	39.7589808	-105.0322612	39.758985
-18341	7634	7661	0.00671626059696149	0.00671626059696149	-105.0351771	39.7621341	-105.0351767	39.7621945
-18342	7661	7662	0.197150609042501	0.197150609042501	-105.0351767	39.7621945	-105.0351663	39.7639675
-6951	5687	5936	0.0500693590985736	0.0500693590985736	-104.9758385	39.7304575	-104.975253	39.7304575
-6952	5936	5453	0.049749026364738	0.049749026364738	-104.975253	39.7304575	-104.9746713	39.7304514
-18121	10257	2538	0.176222237628552	0.176222237628552	-105.010685	39.7858675	-105.01068	39.7874523
-18344	5247	6874	0.0949718672307841	0.0949718672307841	-105.0351958	39.7649631	-105.0351985	39.7658172
-20408	10778	8971	0.00240570116723256	0.00240570116723256	-105.0250816	39.7603286	-105.0250832	39.760307
-7025	5987	5146	0.0839973170950687	0.0839973170950687	-104.9257006	39.7292726	-104.9257328	39.7300276
-687	680	681	0.00253308666004397	0.00253308666004397	-104.9569831	39.7416105	-104.9569536	39.7416084
-688	681	682	0.0177686502456197	0.0177686502456197	-104.9569536	39.7416084	-104.9567458	39.7416064
-20536	10790	10850	0.034182335159618	0.034182335159618	-105.0228403	39.759346	-105.0226484	39.7596157
-18351	6756	3981	0.199906908242653	0.199906908242653	-105.0275956	39.7669634	-105.0299345	39.7669593
-7046	5996	5997	0.0183612294578931	0.0183612294578931	-104.9257688	39.7618503	-104.9258117	39.7620121
-7047	5997	5998	0.0939822022965603	0.0939822022965603	-104.9258117	39.7620121	-104.9257702	39.7628567
-16701	9996	9997	0.0529811614609842	0.0529811614609842	-104.9999838	39.7464987	-104.9999731	39.7460223
-20223	10711	10712	0.0485921897229188	0.0485921897229188	-104.9413123	39.6937735	-104.941312	39.6942105
-7066	4209	6007	0.100592936440223	0.100592936440223	-105.0180383	39.7004566	-105.0192141	39.7004566
-719	715	716	0.14011322934495	0.14011322934495	-105.0041615	39.7717924	-105.0041786	39.7730524
-18164	6036	4091	0.184872985391224	0.184872985391224	-105.0152693	39.7856221	-105.0152654	39.7839595
-18360	7775	7374	0.049527285222362	0.049527285222362	-105.0259595	39.7688086	-105.0259557	39.7683632
-7242	1086	6117	0.0183572728116315	0.0183572728116315	-104.9723899	39.7092881	-104.9721753	39.7092881
-20444	10797	10801	0.0204844414155983	0.0204844414155983	-105.0218716	39.7614664	-105.021849	39.761283
-14778	5928	925	0.176931188736704	0.176931188736704	-104.9803886	39.7304366	-104.9804094	39.7320277
-7325	6163	6164	0.404282808510336	0.404282808510336	-104.9569776	39.6893298	-104.9569833	39.685694
-757	756	757	0.0403523543057396	0.0403523543057396	-104.9853038	39.7752036	-104.9848317	39.775197
-758	758	759	0.10406364243601	0.10406364243601	-104.9258629	39.7765766	-104.9246452	39.7765808
-20552	10810	10855	0.0274674933149076	0.0274674933149076	-105.0204422	39.7580973	-105.020438	39.7583443
-7375	340	337	0.0516827997381363	0.0516827997381363	-104.9379355	39.7804643	-104.9373307	39.7804664
-778	783	784	0.143355100800641	0.143355100800641	-105.001524	39.702453	-105.0031735	39.702226
-18365	1660	7716	0.0501099513590678	0.0501099513590678	-105.0259529	39.7674233	-105.0259442	39.7669727
-7418	5550	6228	0.0493634763375772	0.0493634763375772	-105.0439763	39.72552	-105.0445535	39.7255217
-798	803	806	1.01502432527974	1.01502432527974	-104.9246129	39.752877	-104.9127396	39.7528988
-20237	10712	8819	0.0494540965066323	0.0494540965066323	-104.941312	39.6942105	-104.940734	39.6942095
-7441	1600	1601	0.0713701116113288	0.0713701116113288	-105.0133862	39.6987066	-105.013927	39.6982179
-814	825	826	0.10637782371988	0.10637782371988	-104.9647057	39.7532062	-104.9634614	39.7531961
-815	826	827	0.107195537700229	0.107195537700229	-104.9634614	39.7531961	-104.9622082	39.7532291
-20239	10716	10717	0.029516495512001	0.029516495512001	-104.9411444	39.6963884	-104.9410012	39.6961469
-7466	2930	5311	0.101596891275597	0.101596891275597	-105.021523	39.6985217	-105.0227074	39.6985877
-836	849	850	0.0925483728292225	0.0925483728292225	-104.9429772	39.7557004	-104.9429726	39.7565327
-837	850	851	0.184151560988971	0.184151560988971	-104.9429726	39.7565327	-104.9429635	39.7581888
-20241	8817	10717	0.0237033604501814	0.0237033604501814	-104.9407242	39.6961507	-104.9410012	39.6961469
-7541	6292	65	0.186329349943054	0.186329349943054	-104.933901	39.698515	-104.934135	39.700181
-857	870	871	0.202831473953724	0.202831473953724	-104.9428589	39.7710708	-104.9428522	39.7728949
-14121	4084	3945	0.0818484712615532	0.0818484712615532	-104.9441124	39.7484997	-104.9450651	39.7484271
-18787	10347	10345	0.045081440573134	0.045081440573134	-105.0006789	39.7395014	-105.0006728	39.7399068
-7826	2505	6454	0.100016861256994	0.100016861256994	-105.0100464	39.7753527	-105.0112167	39.7753455
-876	889	890	0.105571186658179	0.105571186658179	-104.9536454	39.7644642	-104.9524103	39.764457
-877	890	891	0.105688383652669	0.105688383652669	-104.9524103	39.764457	-104.9511738	39.7644539
-11418	8067	8068	0.0483239948134963	0.0483239948134963	-105.0441378	39.7835013	-105.043576	39.7834515
-7848	6464	6465	0.0519215197465546	0.0519215197465546	-105.041027	39.7752745	-105.0416343	39.775288
-894	908	909	0.110040792413973	0.110040792413973	-104.9331257	39.7644965	-104.9318383	39.7645031
-896	910	911	0.148938852784508	0.148938852784508	-104.9998754	39.7567199	-104.998644	39.7576675
-11420	8068	8077	0.744996900508782	0.744996900508782	-105.043576	39.7834515	-105.0348588	39.7833346
-7872	6484	6485	0.109350713693358	0.109350713693358	-104.9848486	39.7462103	-104.9835697	39.7461971
-914	928	929	0.0454506765778274	0.0454506765778274	-104.9786778	39.7320223	-104.9781467	39.7320382
-15223	8102	5299	0.0276921695746079	0.0276921695746079	-105.0426126	39.7442054	-105.042522	39.7439663
-16761	10006	10010	0.188081556068426	0.188081556068426	-104.9523627	39.6986871	-104.950646	39.6997437
-20354	9336	10730	0.00773852906846938	0.00773852906846938	-105.0251673	39.7585782	-105.0250776	39.7585876
-7965	6543	6544	0.0483732045653669	0.0483732045653669	-104.9723281	39.7237476	-104.9717626	39.7237562
-954	966	967	0.0990431305437434	0.0990431305437434	-104.9838084	39.7225355	-104.9838014	39.7234262
-19650	10601	10604	0.0245600833310456	0.0245600833310456	-104.9879279	39.7066512	-104.988215	39.7066518
-18271	6463	6629	0.159535181156963	0.159535181156963	-105.0398602	39.7752659	-105.0398199	39.7767003
-20358	10736	9208	0.00987870578899212	0.00987870578899212	-105.0233746	39.7593437	-105.0233093	39.759417
-11333	3953	8218	0.0887906096153549	0.0887906096153549	-105.0001937	39.7283674	-104.9994384	39.7289153
-976	987	988	0.0367128135573791	0.0367128135573791	-104.9740753	39.7240686	-104.9740667	39.7237385
-18911	10389	10390	0.0499832893351177	0.0499832893351177	-105.0126283	39.7501885	-105.0126243	39.749739
-8132	6646	6647	0.176189320777164	0.176189320777164	-104.9986572	39.7336891	-104.998664	39.7352736
-20359	9208	8992	0.00952006614931064	0.00952006614931064	-105.0233093	39.759417	-105.0232439	39.7594863
-18533	7540	5565	0.0799101067174197	0.0799101067174197	-105.0449514	39.7661904	-105.0440165	39.7661967
-15227	8248	1474	0.0211145699437457	0.0211145699437457	-104.9245969	39.6962239	-104.9247632	39.6960836
-11427	8252	8251	0.0497577863871374	0.0497577863871374	-105.0342719	39.7834294	-105.0348524	39.7834646
-8228	5488	6699	0.203871251538877	0.203871251538877	-104.9494922	39.738334	-104.9494732	39.7401674
-1013	1025	1026	0.240326237485559	0.240326237485559	-104.9622361	39.7447859	-104.9622426	39.7469472
-1014	1026	1027	0.140197604091005	0.140197604091005	-104.9622426	39.7469472	-104.9622318	39.748208
-11524	8299	6771	0.0679188084680006	0.0679188084680006	-105.0260753	39.7595725	-105.0268698	39.7595648
-8280	6724	1837	0.0673898837011532	0.0673898837011532	-105.0120852	39.72025	-105.0120749	39.720856
-16769	3180	3279	0.131366088579917	0.131366088579917	-104.9540885	39.7026636	-104.9540847	39.703845
-11560	7714	8320	0.204692599225755	0.204692599225755	-105.0316842	39.7566755	-105.0317009	39.7548347
-18785	10349	3941	0.0399279993421446	0.0399279993421446	-105.0006189	39.7393808	-105.000152	39.7393746
-1055	1071	1072	0.193562714729093	0.193562714729093	-105.0090259	39.7765399	-105.009231	39.7782735
-18374	2425	6794	0.0832162654729584	0.0832162654729584	-105.0324788	39.7706946	-105.0322928	39.76996
-8378	6787	5475	0.176557126416642	0.176557126416642	-104.9684521	39.7368249	-104.9684271	39.7384126
-1079	1095	1096	0.106445830238736	0.106445830238736	-105.0405345	39.724543	-105.0405516	39.7255002
-1081	1097	1098	0.0486277340974482	0.0486277340974482	-105.040561	39.7306097	-105.0405664	39.7301724
-18378	2549	8381	0.409599255943821	0.409599255943821	-105.0398307	39.787434	-105.0398172	39.7911176
-8425	4370	2496	0.102227972652095	0.102227972652095	-105.0014826	39.7040009	-105.0026756	39.7039481
-1101	1117	1118	0.104134759343337	0.104134759343337	-105.0404813	39.7539268	-105.0404858	39.7548633
-19670	9361	9367	0.104968988119014	0.104968988119014	-105.0246491	39.770221	-105.0246438	39.769277
-11768	8406	8391	0.072368398733761	0.072368398733761	-104.9814866	39.7527817	-104.982081	39.7523183
-11405	6191	577	0.346853696348124	0.346853696348124	-104.9832163	39.7795774	-104.979193	39.7791651
-11711	2125	2126	0.0693722119224359	0.0693722119224359	-105.0057953	39.756766	-105.0056493	39.7573797
-1121	1137	1138	0.209246619241212	0.209246619241212	-105.0404024	39.780201	-105.040403	39.7820828
-11896	1345	8466	0.0539854948645785	0.0539854948645785	-105.0025087	39.7490201	-105.0020778	39.7486652
-8519	3823	6870	0.0122276886226055	0.0122276886226055	-105.0106786	39.6880414	-105.0108215	39.6880414
-1142	1161	1045	0.106182749069371	0.106182749069371	-104.9634876	39.7632183	-104.9622462	39.763254
-1143	1045	1162	0.0572035723632033	0.0572035723632033	-104.9622462	39.763254	-104.9615772	39.7632401
-11949	8497	8498	0.0157235898061176	0.0157235898061176	-105.0139116	39.7556283	-105.0137949	39.755519
-8563	6893	6894	0.0563604312984052	0.0563604312984052	-105.0252908	39.7655845	-105.0259502	39.7655831
-1161	1180	1181	0.108807320753836	0.108807320753836	-104.9967587	39.6994606	-104.9967963	39.6984825
-1162	1181	555	0.0264412731929892	0.0264412731929892	-104.9967963	39.6984825	-104.9967877	39.6982448
-11990	6574	4455	0.147936408791814	0.147936408791814	-104.9828432	39.7584876	-104.9816151	39.759425
-8587	6905	6906	0.00825706398143248	0.00825706398143248	-104.9475756	39.7692051	-104.947479	39.769204
-1181	1196	1197	0.0308045840002764	0.0308045840002764	-104.9532393	39.7271307	-104.9528791	39.7271293
-16676	9978	9979	0.0911222888155273	0.0911222888155273	-105.0081875	39.7419793	-105.0090565	39.7415049
-12046	8525	8526	0.0214801658544325	0.0214801658544325	-105.0047107	39.7504962	-105.0049596	39.7505226
-8609	4639	1260	0.0990232299326886	0.0990232299326886	-105.0193449	39.7766055	-105.0205036	39.7766121
-20366	10746	10748	0.00389959559054649	0.00389959559054649	-105.0236226	39.75895	-105.0235917	39.7589758
-8754	6984	6985	0.142274771709776	0.142274771709776	-105.008704	39.7588217	-105.0098936	39.7597166
-15273	8632	8698	0.0321488809830426	0.0321488809830426	-104.9291888	39.7063544	-104.9293068	39.7060799
-12327	8651	8462	0.0863896937468126	0.0863896937468126	-105.0047136	39.7486765	-105.003842	39.7490696
-8825	7022	7023	0.132397309217195	0.132397309217195	-105.0315597	39.7499887	-105.0315207	39.751179
-15906	8604	1831	0.0312706435771371	0.0312706435771371	-105.0283446	39.7216209	-105.0282669	39.7213461
-8982	704	420	0.200616718436647	0.200616718436647	-104.9419371	39.7419475	-104.9418594	39.7437507
-1261	1282	24	0.134590345997008	0.134590345997008	-105.0205344	39.7560422	-105.0205339	39.7572526
-18452	7704	9427	0.203142152499049	0.203142152499049	-105.0410725	39.7566932	-105.0410753	39.7548663
-12940	8766	1971	0.0880952038111177	0.0880952038111177	-105.0021048	39.7447013	-105.0012102	39.7450944
-12050	8529	8530	0.0322062217802774	0.0322062217802774	-105.0041786	39.7503114	-105.0045096	39.7501731
-1281	1306	1307	0.102064457561207	0.102064457561207	-105.0288014	39.7133724	-105.0299945	39.7133592
-12052	8529	8412	0.0524928623134227	0.0524928623134227	-105.0041786	39.7503114	-105.0036942	39.7500213
-20805	10934	7427	0.00626540347624637	0.00626540347624637	-105.0368648	39.7621971	-105.0369381	39.7621971
-9106	7163	7164	0.0532969377049032	0.0532969377049032	-105.0381509	39.7543757	-105.0381551	39.754855
-1301	1326	1327	0.0908036524111016	0.0908036524111016	-105.0442903	39.7133559	-105.0452398	39.7129907
-1302	1327	1328	0.187321516717609	0.187321516717609	-105.0452398	39.7129907	-105.0473907	39.7133074
-20389	10773	10765	0.00486729953892219	0.00486729953892219	-105.0238489	39.7606336	-105.023905	39.7606411
-20812	7034	10952	0.00504516380305115	0.00504516380305115	-105.0322625	39.7622195	-105.0323215	39.7622208
-12945	8883	8884	0.0693524767029838	0.0693524767029838	-105.0014849	39.7426723	-105.0010815	39.7421312
-9177	1813	7200	0.0899820045120437	0.0899820045120437	-104.923341	39.6929674	-104.9222894	39.6929759
-12258	8619	8617	0.025123815719297	0.025123815719297	-105.0083242	39.7578801	-105.0083585	39.7576557
-9178	132	7201	0.0532452299195118	0.0532452299195118	-104.9874659	39.6930068	-104.9868436	39.6930068
-13064	8946	8947	0.0850173355126965	0.0850173355126965	-104.9938162	39.7672158	-104.9948109	39.7672181
-9301	7274	6989	0.145898107890786	0.145898107890786	-104.9337866	39.742569	-104.9320802	39.742569
-1340	1368	1369	0.19896343011117	0.19896343011117	-104.9900335	39.7121268	-104.9923595	39.7121202
-20815	7168	10919	0.00784309361436635	0.00784309361436635	-105.0381187	39.7621933	-105.0382104	39.7621908
-9323	7286	7287	0.0531798537803958	0.0531798537803958	-104.983982	39.7019687	-104.9833604	39.7019722
-18312	7244	7291	0.112193704343122	0.112193704343122	-105.0311621	39.7711127	-105.0324737	39.7711548
-20817	10953	10288	0.00348743524444471	0.00348743524444471	-105.0291765	39.7620512	-105.0292173	39.7620512
-20818	10288	10921	0.00283999263123215	0.00283999263123215	-105.0292173	39.7620512	-105.0292505	39.7620502
-9345	7305	6323	0.0511693918815177	0.0511693918815177	-104.9669227	39.7020659	-104.9663246	39.7020694
-20831	10939	10947	0.189387199061175	0.189387199061175	-105.0393977	39.762194	-105.0393977	39.7638972
-20504	10061	10815	0.00579629159172248	0.00579629159172248	-105.0193111	39.7583425	-105.0192433	39.7583417
-12268	8625	8626	0.00924470302738606	0.00924470302738606	-105.0063297	39.755277	-105.0062526	39.7553353
-18317	7365	7366	0.190091232151663	0.190091232151663	-105.0253917	39.7620904	-105.0267891	39.7634203
-18915	10393	10394	0.0257178211457629	0.0257178211457629	-105.0122186	39.7502302	-105.0124855	39.7503369
-9548	5843	7400	0.197969196756037	0.197969196756037	-104.9687193	39.6910999	-104.9687412	39.6893196
-1402	1428	1429	0.0514192906451236	0.0514192906451236	-105.0409732	39.782078	-105.0415749	39.7820729
-19551	10559	10558	0.0350073244923259	0.0350073244923259	-104.9881037	39.7097761	-104.9880982	39.7100909
-20372	10756	10757	0.119877702556756	0.119877702556756	-105.0229933	39.7612883	-105.0243898	39.7611891
-18474	9006	9005	0.01365486811001	0.01365486811001	-105.0399032	39.754857	-105.0399025	39.7549798
-9618	6255	7423	0.201105238361345	0.201105238361345	-104.9944654	39.6984907	-104.9944429	39.6966822
-1423	1446	1447	0.102065186535373	0.102065186535373	-105.0038944	39.7084713	-105.0038773	39.7075535
-12355	8667	8662	0.00824054620763183	0.00824054620763183	-105.0124751	39.7525722	-105.0123789	39.7525675
-13473	9096	9097	0.0791788196488147	0.0791788196488147	-105.0171656	39.7251183	-105.0162433	39.7250562
-13558	9033	9033	0.000550802138422688	0.000550802138422688	-105.0111765	39.722883	-105.0111825	39.7228848
-9720	5436	7485	0.210597915191446	0.210597915191446	-105.0250692	39.7085234	-105.0275311	39.708526
-1445	1465	778	0.201931327083159	0.201931327083159	-105.0238576	39.7038839	-105.023849	39.7020679
-16745	10007	6830	0.0463356709963923	0.0463356709963923	-104.9516233	39.6981848	-104.9512088	39.6979166
-18484	9139	9145	0.0170083591694009	0.0170083591694009	-105.0431263	39.7511062	-105.0429278	39.7510959
-18486	9146	1121	0.0502889247784144	0.0502889247784144	-105.0398835	39.7589172	-105.0404718	39.7589145
-13588	9137	9132	0.0916872062208973	0.0916872062208973	-104.9868714	39.7007074	-104.9861015	39.7001338
-18564	10320	10321	0.148893183386122	0.148893183386122	-105.0313943	39.7806712	-105.0330975	39.7803888
-1470	1490	1454	0.0984270848036789	0.0984270848036789	-105.0026792	39.6948706	-105.0038293	39.6948507
-11793	8412	1301	0.0102820603565046	0.0102820603565046	-105.0036942	39.7500213	-105.0035821	39.7499878
-13649	9157	9158	0.11057157733623	0.11057157733623	-104.9952014	39.7022895	-104.9960034	39.7030693
-9923	7595	5945	0.197471792675123	0.197471792675123	-104.9362843	39.7292429	-104.9363272	39.7310185
-1492	1512	1513	0.240760864140441	0.240760864140441	-104.931734	39.696087	-104.92892	39.6960846
-1493	1513	1514	0.0903356876724302	0.0903356876724302	-104.92892	39.6960846	-104.9278643	39.6960978
-18489	9154	9164	0.0526957444463644	0.0526957444463644	-105.0338562	39.7492256	-105.034029	39.7487707
-9949	7606	7607	0.0349507847949759	0.0349507847949759	-104.9382673	39.7253035	-104.9382968	39.725617
-1512	1531	1532	0.421840818868262	0.421840818868262	-104.9909332	39.7613911	-104.9909417	39.7651848
-1514	1533	1534	0.0990053945754622	0.0990053945754622	-104.9453062	39.7574036	-104.944148	39.7574036
-18920	10391	10399	0.0111591670236662	0.0111591670236662	-105.0127316	39.7492235	-105.0126923	39.7491278
-10025	6642	3954	0.137704462550789	0.137704462550789	-104.9985895	39.7273172	-105.0001997	39.7273124
-1533	1556	1557	0.0904418216599082	0.0904418216599082	-104.9613425	39.77767	-104.9602842	39.7776637
-1535	1558	1559	0.0987505899129773	0.0987505899129773	-104.959414	39.7776762	-104.9582585	39.7776672
-19486	10409	10426	0.0202821728904968	0.0202821728904968	-104.9883441	39.7097759	-104.9883452	39.7095935
-10050	7651	7652	0.0462326431468639	0.0462326431468639	-105.0389317	39.7282542	-105.0394723	39.7282575
-1552	1577	1578	0.0904564264247089	0.0904564264247089	-105.0390628	39.6875658	-105.0401129	39.6876594
-1554	1579	1580	0.0903173650147356	0.0903173650147356	-105.0411657	39.6879819	-105.0421871	39.6881867
-18611	2585	1850	0.178619647699559	0.178619647699559	-105.035536	39.7229363	-105.0355172	39.72133
-19139	479	10436	0.0608772998887891	0.0608772998887891	-105.0124432	39.7406786	-105.0130548	39.7409589
-10147	7693	7694	0.00731957097451548	0.00731957097451548	-104.9475739	39.7873593	-104.947581	39.7874249
-1571	1598	1600	0.0527554061663716	0.0527554061663716	-105.0137725	39.6990764	-105.0133862	39.6987066
-18460	6389	9354	0.131365686337894	0.131365686337894	-105.0387149	39.7475739	-105.0387149	39.7487553
-13942	9095	9242	0.111189675764469	0.111189675764469	-105.0210758	39.7255489	-105.0223459	39.7257626
-10218	6638	5410	0.0525082825873588	0.0525082825873588	-104.9710843	39.6893658	-104.9704709	39.6893522
-11529	809	810	0.133518358438394	0.133518358438394	-105.026046	39.7554277	-105.0276079	39.7554276
-16258	9267	3529	0.187765741537081	0.187765741537081	-104.9552346	39.6965869	-104.9552447	39.6982755
-10288	7759	7760	0.0990614933501691	0.0990614933501691	-104.9475555	39.7710608	-104.9463967	39.7710806
-1610	1640	1641	0.0829769157452624	0.0829769157452624	-105.0156865	39.706479	-105.0156951	39.7057328
-1611	1641	1642	0.0110107206173314	0.0110107206173314	-105.0156951	39.7057328	-105.0156924	39.7056338
-14142	478	9286	0.110440686979957	0.110440686979957	-105.0170811	39.7459783	-105.0165836	39.7450617
-10359	6835	4056	0.176947127899101	0.176947127899101	-105.0397191	39.7165613	-105.0396933	39.7181525
-10360	4056	7791	0.153314942388554	0.153314942388554	-105.0396933	39.7181525	-105.0397234	39.7195311
-16039	9796	9803	0.17034831343451	0.17034831343451	-105.0121361	39.6892112	-105.0101617	39.6894076
-20229	8818	8827	0.0165504595782256	0.0165504595782256	-104.9407334	39.6945605	-104.94054	39.6945576
-15466	9616	9605	0.0511543414269977	0.0511543414269977	-105.0011333	39.7436854	-105.000722	39.7440195
-10664	7914	2973	0.0665734173113744	0.0665734173113744	-105.027595	39.7578708	-105.0275907	39.7584695
-1646	1673	1674	0.136622102626379	0.136622102626379	-105.0111824	39.7680416	-105.0127809	39.7680407
-1647	1674	1675	0.135851990536989	0.135851990536989	-105.0127809	39.7680407	-105.0143702	39.7680596
-15467	9605	7963	0.0172079120084978	0.0172079120084978	-105.000722	39.7440195	-105.0005879	39.7441349
-1668	1693	1694	0.101380870701686	0.101380870701686	-105.0416583	39.7675928	-105.0428441	39.7675702
-11218	3630	8166	0.0456744230751041	0.0456744230751041	-104.9286229	39.7018847	-104.9290225	39.7016123
-15788	9639	9625	0.0212057259943503	0.0212057259943503	-105.0250842	39.7369224	-105.0249286	39.7370709
-11369	8219	7971	0.0335395055556045	0.0335395055556045	-105.0056833	39.7616862	-105.0053146	39.761583
-16195	7725	5820	0.195527635044049	0.195527635044049	-104.9821706	39.6894094	-104.9821591	39.6911678
-16196	5820	7207	0.20506620423787	0.20506620423787	-104.9821591	39.6911678	-104.9821537	39.693012
-11659	7036	3421	0.201375612760589	0.201375612760589	-105.0322644	39.7643359	-105.0346204	39.7643363
-11773	2681	5358	0.147201059924865	0.147201059924865	-104.9782507	39.7512619	-104.979461	39.7503203
-17216	8420	1908	0.199697066538748	0.199697066538748	-104.9774882	39.7056633	-104.9774775	39.7074592
-16157	9835	9836	0.024879986991164	0.024879986991164	-105.0143087	39.7379669	-105.0142819	39.7377441
-18699	1320	1376	0.177502821070015	0.177502821070015	-105.0391059	39.7133709	-105.0390952	39.7117746
-12115	8553	8554	0.175311002200187	0.175311002200187	-104.9647683	39.7416548	-104.9647611	39.7432314
-19503	10530	10531	0.0385295444601748	0.0385295444601748	-104.9883733	39.7063608	-104.9883756	39.7060143
-16538	9932	9933	0.139509514048293	0.139509514048293	-104.9763549	39.7494877	-104.9763678	39.7507423
-1717	1736	1737	0.0422973816408655	0.0422973816408655	-105.0057005	39.6912645	-105.0061947	39.6912734
-17220	3087	9830	0.198791677003679	0.198791677003679	-104.9775097	39.7129054	-104.9774882	39.7146931
-12205	8587	7095	0.0103763001462627	0.0103763001462627	-105.0011631	39.7420804	-105.0010418	39.7420775
-1748	1765	1768	0.20159496635188	0.20159496635188	-104.9769241	39.7129008	-104.976901	39.7110879
-12332	8654	8655	0.0104809427005404	0.0104809427005404	-105.0075431	39.754727	-105.0074206	39.7547231
-19506	10533	7232	0.00927443019901883	0.00927443019901883	-104.9883745	39.7058681	-104.9883759	39.7057847
-12444	8704	8705	0.0186821732215156	0.0186821732215156	-104.9404955	39.7617894	-104.9404928	39.7619574
-1767	1785	1786	0.049264963521636	0.049264963521636	-104.9839616	39.6947869	-104.9833861	39.6948011
-16454	9909	9910	0.124306713488191	0.124306713488191	-104.9730512	39.7063782	-104.9724845	39.7074076
-12491	8717	8718	0.055230353030641	0.055230353030641	-104.9599663	39.6929697	-104.9593208	39.692969
-12493	8719	8720	0.118556931073074	0.118556931073074	-104.9792566	39.6946845	-104.979262	39.6936183
-16535	4328	8117	0.102336137979151	0.102336137979151	-104.976953	39.748636	-104.97815	39.7486401
-1810	1826	1827	0.198453556780362	0.198453556780362	-104.9791466	39.7165069	-104.9791916	39.7147225
-18642	7416	4062	0.177070510498962	0.177070510498962	-105.0450953	39.7165644	-105.0451087	39.7181568
-12605	384	4685	0.0512286127934627	0.0512286127934627	-104.9934388	39.7289219	-104.9940378	39.7289164
-1838	1854	1855	0.0513002538457751	0.0513002538457751	-105.0379177	39.7213314	-105.0385175	39.7213346
-1839	1855	1856	0.0505552484656801	0.0505552484656801	-105.0385175	39.7213346	-105.0391086	39.721333
-16789	8649	10013	0.223567773525098	0.223567773525098	-105.0092259	39.7486951	-105.0114923	39.7476921
-12632	2360	3710	0.110712951608372	0.110712951608372	-104.9874759	39.7193464	-104.9874523	39.7183509
-1858	1870	1871	0.100377935012122	0.100377935012122	-104.9899993	39.7111545	-104.9899914	39.7102518
-17014	10053	10054	0.0101091220768254	0.0101091220768254	-105.0167611	39.7547513	-105.0167692	39.7546606
-12810	8258	8846	0.197578956532281	0.197578956532281	-104.9988487	39.78249	-104.9966683	39.7818987
-12812	8846	6028	0.064250785290107	0.064250785290107	-104.9966683	39.7818987	-104.9959579	39.7817094
-12814	8847	8848	0.169735694825716	0.169735694825716	-104.9968592	39.782169	-104.9987337	39.782674
-12816	8848	297	0.081779930762806	0.081779930762806	-104.9987337	39.782674	-104.999633	39.7829256
-16613	9942	2685	0.29520243699611	0.29520243699611	-104.9824158	39.7507117	-104.9799803	39.7525937
-12926	8892	8893	0.0723033727126927	0.0723033727126927	-105.0008068	39.745167	-105.001108	39.7457746
-13020	8924	8925	0.0102645296363106	0.0102645296363106	-104.9947852	39.7699691	-104.9949053	39.7699691
-13048	8934	8935	0.109609070074496	0.109609070074496	-104.9901787	39.7746982	-104.9904048	39.7737279
-14679	9301	445	0.205255827063182	0.205255827063182	-104.9700183	39.7255888	-104.9700104	39.7237429
-17965	10232	10237	0.0287772787854116	0.0287772787854116	-104.9882382	39.7252241	-104.9882377	39.7249653
-18916	10395	10396	0.0665707610088623	0.0665707610088623	-105.0103557	39.7499974	-105.0109587	39.7503762
-17673	8930	8847	0.0672232407607821	0.0672232407607821	-104.9961216	39.7819588	-104.9968592	39.782169
-19611	10510	10586	0.0687878070750461	0.0687878070750461	-104.9902651	39.7095644	-104.9910692	39.709571
-1895	1909	1910	0.0533681732492523	0.0533681732492523	-104.9763514	39.7074715	-104.9757282	39.7074937
-18738	1858	7870	0.177701929540755	0.177701929540755	-105.0403103	39.7213316	-105.0403023	39.7197335
-18722	1312	9772	0.242272496904356	0.242272496904356	-105.0342968	39.7133689	-105.0342887	39.7111901
-13294	4282	4326	0.048552671008238	0.048552671008238	-105.0344834	39.703983	-105.0350499	39.7039565
-1916	1928	1929	0.105818779358726	0.105818779358726	-104.9605576	39.7074884	-104.9593208	39.7074709
-18739	7870	4057	0.175799763463846	0.175799763463846	-105.0403023	39.7197335	-105.0403076	39.7181525
-18654	6221	7655	0.275174189153955	0.275174189153955	-105.0421663	39.7257919	-105.0421691	39.7282666
-1942	1956	1957	0.0270768788779568	0.0270768788779568	-104.9295943	39.7085824	-104.9292853	39.7085296
-13392	311	9059	0.0124055357740245	0.0124055357740245	-104.9786416	39.779139	-104.9784966	39.7791336
-18659	7643	6205	0.176055293755678	0.176055293755678	-105.030657	39.7277196	-105.0306528	39.7261363
-13405	8942	9061	0.112337222040467	0.112337222040467	-104.9969401	39.7675503	-104.9981155	39.7670982
-19275	10446	10424	0.0353155595120025	0.0353155595120025	-104.9952471	39.7458453	-104.9949557	39.7460704
-1960	1977	1978	0.0139641936224905	0.0139641936224905	-104.9406062	39.7437573	-104.9407693	39.7437639
-13485	9102	308	0.0118340647108347	0.0118340647108347	-105.0160728	39.7255648	-105.0162105	39.7255543
-20374	10758	3588	0.00620515380678302	0.00620515380678302	-105.0243956	39.7608382	-105.0243965	39.7607824
-18262	2547	6067	0.202075066970098	0.202075066970098	-105.0386666	39.7874341	-105.038672	39.7856168
-13520	9073	117	0.110830423506594	0.110830423506594	-105.0251226	39.7293097	-105.0251312	39.7303064
-13529	5647	9088	0.177768687230353	0.177768687230353	-105.0347769	39.7254226	-105.0327002	39.7254916
-19599	1871	10582	0.0185256932684462	0.0185256932684462	-104.9899914	39.7102518	-104.9902054	39.7102774
-13548	447	2999	0.0894668373271695	0.0894668373271695	-105.0132294	39.7256673	-105.0136746	39.7263954
-13553	9126	579	0.319404247396224	0.319404247396224	-105.0106484	39.7227756	-105.0080855	39.7206863
-18657	7657	10331	0.158775443026926	0.158775443026926	-105.0445162	39.72828	-105.0445132	39.7297079
-13716	6715	4211	0.0895901111539728	0.0895901111539728	-105.0169992	39.6967549	-105.0180463	39.6967483
-2012	2021	2022	0.202353267688237	0.202353267688237	-104.9349346	39.7274171	-104.9349282	39.7292369
-18846	10364	10366	0.0360011605118072	0.0360011605118072	-105.0140112	39.7371325	-105.0139219	39.7374489
-13805	9197	6639	0.199762828560815	0.199762828560815	-104.9985624	39.7147937	-104.9985703	39.7165902
-18572	10317	10318	0.0818849597364774	0.0818849597364774	-105.03063	39.7832519	-105.0297002	39.7834301
-2037	2046	2047	0.202843850092204	0.202843850092204	-104.9674789	39.7129253	-104.9674682	39.7111011
-2038	2047	2048	0.202089258953368	0.202089258953368	-104.9674682	39.7111011	-104.9674823	39.7092837
-19239	8480	10459	0.145581432505511	0.145581432505511	-104.9912213	39.7425829	-104.9924125	39.7416474
-13871	2282	3603	0.0995034643784278	0.0995034643784278	-104.9305543	39.7565508	-104.9293903	39.7565549
-2058	746	1564	0.142548749521321	0.142548749521321	-104.9530366	39.7763944	-104.9530639	39.7776762
-12345	8661	8662	0.0184782413605156	0.0184782413605156	-105.0123532	39.7524025	-105.0123789	39.7525675
-13933	9117	9237	0.0487812750222334	0.0487812750222334	-105.0252112	39.7363992	-105.0252103	39.7368379
-13946	9243	9109	0.0432001724914345	0.0432001724914345	-105.005875	39.7256239	-105.0053716	39.7256561
-20415	10773	10767	0.0164543942872072	0.0164543942872072	-105.0238489	39.7606336	-105.0239411	39.7605037
-15289	7065	9559	0.00979064512162057	0.00979064512162057	-104.9499634	39.7145233	-104.9500777	39.714528
-15406	9582	9586	0.261696459707034	0.261696459707034	-105.0104647	39.7536666	-105.009826	39.7559683
-14374	512	3439	0.0820413167433817	0.0820413167433817	-105.03396	39.7837055	-105.0345546	39.7842848
-15291	9560	9561	0.0474312472960203	0.0474312472960203	-104.9418174	39.706892	-104.941269	39.7069549
-20033	3666	9939	0.222490979962601	0.222490979962601	-104.9739808	39.7474784	-104.9739728	39.7494793
-14436	9351	6743	0.133828356760244	0.133828356760244	-105.0252652	39.7487792	-105.0268304	39.7487612
-2083	2084	2085	0.132628008561016	0.132628008561016	-104.9536401	39.7669187	-104.9536649	39.7681113
-20269	10721	10704	0.0408769490843711	0.0408769490843711	-105.0450564	39.7730205	-105.0445781	39.7730214
-20257	7553	10687	0.047722995184739	0.047722995184739	-105.0451406	39.774187	-105.0445822	39.7741837
-14596	9395	7373	0.0500503806511319	0.0500503806511319	-105.0253115	39.7688045	-105.0253069	39.7683544
-2107	1822	2109	0.0984259671843471	0.0984259671843471	-104.9269459	39.7647142	-104.9269682	39.7655992
-18860	10369	10362	0.0840816587742034	0.0840816587742034	-105.0144214	39.7366716	-105.0146327	39.7359331
-20253	10719	5572	0.00788824170654016	0.00788824170654016	-105.0441026	39.7730223	-105.0440103	39.7730225
-16690	9989	9990	0.0859897279747206	0.0859897279747206	-105.00675	39.7456071	-105.005945	39.7460707
-2125	1981	1966	0.0405441466490896	0.0405441466490896	-104.926882	39.743379	-104.9270076	39.7437306
-16692	8314	8651	0.0716207548906764	0.0716207548906764	-105.0042918	39.74812	-105.0047136	39.7486765
-16847	3130	9896	0.0388183147420438	0.0388183147420438	-104.970947	39.7024436	-104.9713614	39.7025858
-12343	8658	8659	0.0326641917954917	0.0326641917954917	-105.0059172	39.7565338	-105.0062583	39.7566662
-16277	4438	9869	0.0429816129844846	0.0429816129844846	-104.9546419	39.6984776	-104.9543259	39.6981771
-2254	2256	2257	0.179026041725141	0.179026041725141	-105.0275483	39.7181459	-105.0275587	39.7197559
-18714	6214	7650	0.274890248386652	0.274890248386652	-105.037867	39.7257736	-105.0378319	39.7282456
-2282	2281	2282	0.208433952181449	0.208433952181449	-104.9305302	39.7546764	-104.9305543	39.7565508
-18413	7163	7445	0.101226183618457	0.101226183618457	-105.0381509	39.7543757	-105.0369668	39.7543695
-2309	1585	1646	0.0852956059582778	0.0852956059582778	-105.0145707	39.6959461	-105.0155663	39.6959857
-17366	3085	3197	0.201028238760753	0.201028238760753	-104.9786762	39.712912	-104.9786527	39.7111042
-16424	3406	3407	0.0260120249027955	0.0260120249027955	-104.9701665	39.6972637	-104.9699417	39.6974212
-487	487	488	0.0915902876023465	0.0915902876023465	-104.9845022	39.7800173	-104.9855724	39.7800624
-2504	2153	2485	0.135805715389887	0.135805715389887	-105.0142616	39.7789608	-105.0158508	39.7789597
-15259	9549	9550	0.0733424963845631	0.0733424963845631	-104.9329305	39.7046107	-104.9336788	39.7049326
-17078	8074	9872	0.138360291064547	0.138360291064547	-104.9615934	39.7607445	-104.9615975	39.7619888
-604	595	596	0.135530584935403	0.135530584935403	-105.0153765	39.7753499	-105.015268	39.7765659
-2561	2534	2535	0.131236307359374	0.131236307359374	-105.0217592	39.7380884	-105.0202276	39.7381648
-11701	1064	1065	0.0735266946881119	0.0735266946881119	-105.0022669	39.7501498	-105.0016675	39.750624
-11702	1065	1066	0.144526540080904	0.144526540080904	-105.0016675	39.750624	-105.000472	39.751543
-2641	1094	1110	0.0327560682713917	0.0327560682713917	-105.0405328	39.7229583	-105.0409158	39.7229588
-12965	1823	1824	0.115786401746133	0.115786401746133	-105.0061735	39.7446567	-105.0068707	39.7455494
-2716	2671	2672	0.137037719250731	0.137037719250731	-104.9524691	39.7544839	-104.9524477	39.7557162
-16268	9866	8748	0.200740333998757	0.200740333998757	-104.9586795	39.6929681	-104.9586768	39.6947734
-2739	2694	2695	0.0520216844496084	0.0520216844496084	-104.9834919	39.7552636	-104.9839243	39.7555928
-18678	2801	2589	0.177457369167133	0.177457369167133	-105.0367403	39.7245365	-105.0367321	39.7229406
-11691	837	867	0.00774513207370433	0.00774513207370433	-105.0012532	39.7536699	-105.0011626	39.7536701
-11692	867	868	0.00951825440201693	0.00951825440201693	-105.0011626	39.7536701	-105.0011145	39.7535929
-2894	2838	2839	0.0194790124967281	0.0194790124967281	-105.0298986	39.7802977	-105.0301265	39.7802941
-16704	9998	9999	0.0072772776659045	0.0072772776659045	-105.0006022	39.7460221	-105.0005573	39.7460777
-16598	5785	8280	0.146209128325821	0.146209128325821	-104.9954256	39.7514052	-104.994215	39.752334
-2965	1143	2908	0.0621246078682317	0.0621246078682317	-104.97335	39.7632488	-104.9733498	39.7638075
-16603	7894	9953	0.113998968091224	0.113998968091224	-104.9883251	39.7515332	-104.9873896	39.7522638
-3043	2974	2975	0.149630303255577	0.149630303255577	-105.0281658	39.7584695	-105.0299157	39.7585034
-18440	2971	10293	0.0852727734364054	0.0852727734364054	-105.0260575	39.7584783	-105.0260789	39.759245
-3066	2997	2998	0.0208518874255557	0.0208518874255557	-104.9971271	39.7400109	-104.9969577	39.7401458
-18441	10293	8299	0.0364176386342536	0.0364176386342536	-105.0260789	39.759245	-105.0260753	39.7595725
-3086	3018	3019	0.14545556926134	0.14545556926134	-104.9780672	39.7547969	-104.9768843	39.7557372
-18443	7498	10290	0.0505394400731725	0.0505394400731725	-105.0416627	39.7607554	-105.0410717	39.7607688
-3112	3044	3045	0.100624292928738	0.100624292928738	-104.95856	39.7594391	-104.9573829	39.7594492
-18471	2985	7703	0.198649870528673	0.198649870528673	-105.039895	39.758491	-105.0398923	39.7567045
-16707	9623	9998	0.0621574034637008	0.0621574034637008	-105.0006156	39.7454632	-105.0006022	39.7460221
-3136	3062	2284	0.0981125078289405	0.0981125078289405	-104.9317072	39.760176	-104.9305594	39.7601749
-19669	10610	9361	0.0491952199145155	0.0491952199145155	-105.0246432	39.7697786	-105.0246491	39.770221
-3158	3082	3083	0.0983700193882712	0.0983700193882712	-104.9815443	39.7129225	-104.9803943	39.7129167
-11703	1066	1158	0.148869854474817	0.148869854474817	-105.000472	39.751543	-104.9992501	39.7524969
-3181	3101	3102	0.0962927982103224	0.0962927982103224	-104.9362596	39.7130732	-104.935134	39.713087
-18133	4095	6040	0.192431028537818	0.192431028537818	-105.0175565	39.7838951	-105.0175773	39.7856256
-18446	10289	7781	0.0503825451517732	0.0503825451517732	-105.0398915	39.7607667	-105.0393022	39.7607575
-3230	3144	3145	0.203548069983679	0.203548069983679	-104.9647846	39.7237695	-104.9648025	39.7256
-18448	9292	9527	0.134072690600401	0.134072690600401	-105.0375481	39.7511898	-105.0375346	39.7499841
-11705	1159	1244	0.147081474347396	0.147081474347396	-104.9980616	39.7534124	-104.9968584	39.7543579
-3281	3193	3194	0.106476946636896	0.106476946636896	-104.9827804	39.7111342	-104.9815359	39.7111143
-16416	3034	3130	0.0869691229324941	0.0869691229324941	-104.9699305	39.7024537	-104.970947	39.7024436
-3302	3210	3211	0.0503243467464606	0.0503243467464606	-104.9645976	39.7110977	-104.9640093	39.7111011
-18899	10379	10380	0.00404144992313864	0.00404144992313864	-105.0125991	39.750475	-105.0126123	39.7504401
-11709	1301	1302	0.0358989065327031	0.0358989065327031	-105.0035821	39.7499878	-105.0032204	39.7501518
-3325	3227	3228	0.131949141660574	0.131949141660574	-105.0299581	39.7718274	-105.0315008	39.7718744
-12952	1330	1361	0.0263074187615997	0.0263074187615997	-105.0020771	39.7434247	-105.0019226	39.7432201
-3400	3297	3298	0.0238019064284447	0.0238019064284447	-104.9269572	39.7038988	-104.9266917	39.7038348
-3489	1140	907	0.140863651036277	0.140863651036277	-104.9343976	39.7632231	-104.934389	39.7644899
-16744	7566	10007	0.0424762897679241	0.0424762897679241	-104.9519988	39.6984347	-104.9516233	39.6981848
-18732	9833	7646	0.178089933314901	0.178089933314901	-105.0331086	39.7293141	-105.0331112	39.7277125
-3516	3387	3388	0.0211650011658898	0.0211650011658898	-105.0351109	39.725318	-105.0349134	39.7254327
-12955	1478	1507	0.126108135430878	0.126108135430878	-105.0010729	39.7418408	-105.0003423	39.7408556
-3561	3424	3425	0.0612760168169184	0.0612760168169184	-105.0346199	39.7651924	-105.0346312	39.7657434
-16837	10019	9847	0.0370069651425935	0.0370069651425935	-104.9700539	39.7032059	-104.9699755	39.7028786
-3583	3438	1421	0.115878563365398	0.115878563365398	-105.0345914	39.7810741	-105.0345828	39.7821162
-12960	1632	1633	0.128348569926215	0.128348569926215	-105.0042744	39.7420124	-105.0035017	39.7410228
-3684	3520	3521	0.0506146313810284	0.0506146313810284	-104.961154	39.6983849	-104.9605624	39.6983858
-18464	10298	9139	0.0193791784570559	0.0193791784570559	-105.0431907	39.7509391	-105.0431263	39.7511062
-3734	1037	3568	0.052776292073227	0.052776292073227	-104.9622266	39.7544367	-104.9616097	39.7544552
-19333	2826	10473	0.01148052310696	0.01148052310696	-104.9718283	39.6983529	-104.971721	39.6984149
-18465	9139	541	0.0794672162259436	0.0794672162259436	-105.0431263	39.7511062	-105.0430648	39.7518193
-3755	3585	3586	0.0186262558199583	0.0186262558199583	-105.0236106	39.7606934	-105.0238257	39.7607202
-17071	4599	3687	0.240616539690475	0.240616539690475	-104.9615991	39.7447832	-104.9615881	39.7469471
-3805	3624	3250	0.195616461429944	0.195616461429944	-104.9804286	39.7057129	-104.9804174	39.7039537
-11577	1766	1595	0.0489656343684566	0.0489656343684566	-105.0334284	39.7553296	-105.0340012	39.7553296
-3825	3641	3642	0.0193156490955763	0.0193156490955763	-104.9590835	39.7152814	-104.9593067	39.715255
-17299	5829	8716	0.20447937601548	0.20447937601548	-104.9622681	39.6911405	-104.9622811	39.6929794
-3847	3658	3639	0.0475522464454704	0.0475522464454704	-104.9536997	39.6990547	-104.953288	39.6987674
-18869	10144	10372	0.0637708443692985	0.0637708443692985	-105.0093573	39.7209238	-105.0086117	39.7209279
-16541	812	3553	0.152482276035164	0.152482276035164	-104.9763308	39.7532506	-104.9763361	39.7546219
-20222	7195	10711	0.0935594253631277	0.0935594253631277	-104.9413129	39.6929321	-104.9413123	39.6937735
-19431	10003	8707	0.100281643377189	0.100281643377189	-104.9862718	39.703372	-104.9850997	39.7033596
-3891	3519	3695	0.200167523328644	0.200167523328644	-104.961729	39.698384	-104.9617464	39.6965839
-16751	6829	10008	0.0961527504424716	0.0961527504424716	-104.9506246	39.6983982	-104.9506165	39.6975335
-3916	3713	3714	0.1010804805974	0.1010804805974	-104.9928366	39.7183943	-104.9940184	39.7183972
-15272	8538	8632	0.0716756500086966	0.0716756500086966	-104.9283761	39.7065112	-104.9291888	39.7063544
-3938	3736	3737	0.112607595972795	0.112607595972795	-105.0028107	39.7384712	-105.0028068	39.7394839
-18125	4097	6042	0.191481087124581	0.191481087124581	-105.0187521	39.7838972	-105.0187387	39.7856192
-19576	10572	7461	0.00811745051204977	0.00811745051204977	-104.9892979	39.707617	-104.9892986	39.707544
-12969	1970	1971	0.103498330022734	0.103498330022734	-105.0018024	39.7442826	-105.0012102	39.7450944
-4039	3819	3820	0.147623529549067	0.147623529549067	-105.0098339	39.7075733	-105.009791	39.7062461
-18745	5190	2608	0.176866790100876	0.176866790100876	-105.0433305	39.7245627	-105.0433279	39.7229721
-4127	3890	3891	0.179468370845182	0.179468370845182	-104.9634822	39.7383772	-104.9634356	39.7399908
-12335	8652	8653	0.0109021010822668	0.0109021010822668	-105.0077772	39.7547483	-105.0076516	39.7547313
-4149	3906	1161	0.136761513456038	0.136761513456038	-104.9634455	39.7619888	-104.9634876	39.7632183
-17950	6559	10229	0.0124761805379247	0.0124761805379247	-104.9869835	39.7241266	-104.9870009	39.7240152
-4173	1891	706	0.0588353275400914	0.0588353275400914	-105.0046254	39.7620612	-105.0041014	39.7624043
-14115	3623	3925	0.0987645160792797	0.0987645160792797	-104.9448677	39.7457412	-104.9455321	39.7450146
-16843	10020	10021	0.00337377443816097	0.00337377443816097	-104.9706252	39.7032657	-104.9706319	39.7032358
-4194	3942	3943	0.176445012103913	0.176445012103913	-105.0001356	39.7384618	-105.0001422	39.736875
-18245	2433	9358	0.201879495148218	0.201879495148218	-105.0375589	39.771281	-105.0375421	39.7730965
-18189	6055	5795	0.200795798534704	0.200795798534704	-105.0293078	39.7856235	-105.0293078	39.7874293
-4450	3345	4152	0.10312101394972	0.10312101394972	-104.957017	39.7209795	-104.9558113	39.720983
-18872	9232	7825	0.160805002055775	0.160805002055775	-104.9889072	39.7018052	-104.9875714	39.7007878
-4529	4204	4205	0.278098742346476	0.278098742346476	-105.0080809	39.7765386	-105.0078446	39.779033
-18399	2541	10285	0.412599954612644	0.412599954612644	-105.0351796	39.7874285	-105.035177	39.7911391
-4637	4281	913	0.111497113872301	0.111497113872301	-104.9797003	39.7709793	-104.9806193	39.771691
-16900	4255	3513	0.200996147699506	0.200996147699506	-104.9658026	39.6965779	-104.9657993	39.6983855
-15919	9746	7414	0.0221971015175522	0.0221971015175522	-105.0421231	39.7165684	-105.0418648	39.7165877
-4682	4322	4323	0.0558862625971893	0.0558862625971893	-105.0350241	39.707661	-105.0350585	39.7071591
-16298	2636	2637	0.0033759355903552	0.0033759355903552	-104.970433	39.6951117	-104.9704693	39.6950998
-18879	6125	1927	0.199518260048308	0.199518260048308	-104.9611403	39.709281	-104.9611322	39.7074867
-4761	1489	145	0.199750566224671	0.199750566224671	-105.0015377	39.694864	-105.0015377	39.6930676
-18696	4055	6400	0.176933507030136	0.176933507030136	-105.0391007	39.7181492	-105.0391033	39.716558
-16300	2637	2160	0.00247295077408309	0.00247295077408309	-104.9704693	39.6950998	-104.9704959	39.6950911
-4832	1268	4428	0.206285087175769	0.206285087175769	-105.0203557	39.7175319	-105.0227675	39.7175319
-18888	7247	1923	0.201674729042946	0.201674729042946	-104.963471	39.7056744	-104.9634658	39.7074881
-4997	4543	4544	0.132688906239847	0.132688906239847	-105.022037	39.7729354	-105.0220369	39.7741287
-16650	9968	9969	0.0122299544992289	0.0122299544992289	-104.9849991	39.7385579	-104.9848573	39.7385435
-13009	2891	2892	0.172319187220424	0.172319187220424	-104.9905111	39.7729211	-104.9912536	39.7714803
-5024	4562	4563	0.200718931282707	0.200718931282707	-105.0216379	39.7856202	-105.0216452	39.7874253
-16315	3005	1362	0.00318470714397005	0.00318470714397005	-104.9710275	39.6970485	-104.9710484	39.6970248
-5188	4685	4686	0.177776490265982	0.177776490265982	-104.9940378	39.7289164	-104.9940692	39.730515
-17297	10086	7736	0.198049290500642	0.198049290500642	-104.9622687	39.6875234	-104.9622681	39.6893045
-20272	10721	10703	0.0411977345042915	0.0411977345042915	-105.0450564	39.7730205	-105.0450568	39.773391
-5368	3223	4808	0.133968729582188	0.133968729582188	-105.0135136	39.7717296	-105.0135073	39.7729344
-18898	10378	10379	0.00446883067059111	0.00446883067059111	-105.0125479	39.7504669	-105.0125991	39.750475
-5393	4828	4829	0.40282604477454	0.40282604477454	-104.9441889	39.692936	-104.9441934	39.6893133
-20273	10703	10725	0.144609051598102	0.144609051598102	-105.0450568	39.773391	-105.0450582	39.7746915
-5414	4842	1486	0.202708226253938	0.202708226253938	-105.0002975	39.6967069	-105.0003404	39.6948842
-5490	458	4898	0.0468723555946229	0.0468723555946229	-104.9412914	39.7350999	-104.9407436	39.7350848
-19112	8424	10118	0.19768851226159	0.19768851226159	-105.0160769	39.7409098	-105.0183374	39.7405364
-5515	1212	4920	0.232222389672051	0.232222389672051	-104.9874175	39.7272691	-104.9894816	39.7286261
-19281	10466	8768	0.124416605605605	0.124416605605605	-104.988856	39.7399993	-104.9903111	39.740001
-5542	2537	4941	0.438197641658083	0.438197641658083	-104.994984	39.7872452	-104.994975	39.791186
-20340	10739	10748	0.00884971981393432	0.00884971981393432	-105.0234882	39.7589777	-105.0235917	39.7589758
-19231	10455	10456	0.1184623603546	0.1184623603546	-104.9915438	39.7409769	-104.9923896	39.7401331
-5626	3284	1058	0.0983991410952824	0.0983991410952824	-104.9523742	39.7038339	-104.9523656	39.702949
-18347	7686	2429	0.200029751476084	0.200029751476084	-105.0352172	39.7695205	-105.0352091	39.7713194
-17080	1162	882	0.139677295386473	0.139677295386473	-104.9615772	39.7632401	-104.9615915	39.7644962
-6004	5259	5260	0.066486526131314	0.066486526131314	-104.9597331	39.7681261	-104.9589552	39.7681242
-14136	9281	509	0.032133360210872	0.032133360210872	-104.9517626	39.7476934	-104.9514881	39.747496
-17116	4052	3775	0.00847774353709404	0.00847774353709404	-104.9579299	39.7478129	-104.957947	39.7477378
-6616	5699	5700	0.00800603928165774	0.00800603928165774	-105.0357639	39.7621288	-105.035764	39.7622008
-19812	7122	5371	0.176755455393693	0.176755455393693	-105.0021749	39.735285	-105.0021749	39.7336954
-6777	5820	5821	0.0499181980722273	0.0499181980722273	-104.9821591	39.6911678	-104.9815757	39.6911678
-4400	4114	4115	0.202509931844666	0.202509931844666	-104.9513332	39.7819179	-104.9513234	39.7837391
-11451	8258	8261	0.200629988067775	0.200629988067775	-104.9988487	39.78249	-104.9966971	39.7817678
-19818	10647	5606	0.0519771701713562	0.0519771701713562	-105.0021963	39.7300097	-105.0015885	39.7300077
-6974	2119	5953	0.0979282440578051	0.0979282440578051	-104.9268735	39.7310598	-104.9257284	39.7310507
-4402	4117	2874	0.134125988252719	0.134125988252719	-104.9508084	39.7837325	-104.9508183	39.7849387
-4403	2874	4118	0.140174877049639	0.140174877049639	-104.9508183	39.7849387	-104.9508084	39.7861993
-17149	46	4780	0.204228808601968	0.204228808601968	-104.9751601	39.7002153	-104.9751815	39.7020519
-7674	1498	187	0.203419998803368	0.203419998803368	-105.0437531	39.6949621	-105.0437531	39.6931327
-7719	6393	6394	0.135380647167761	0.135380647167761	-105.0252309	39.747573	-105.0268144	39.7475701
-20324	10732	10743	0.016217938211146	0.016217938211146	-105.0237565	39.7589777	-105.0236223	39.7590808
-7749	6408	6409	0.240033624288878	0.240033624288878	-104.9634692	39.7854929	-104.9640263	39.7876087
-20330	10744	10736	0.0345659354386547	0.0345659354386547	-105.0235881	39.7590797	-105.0233746	39.7593437
-7835	4630	1259	0.131787660470127	0.131787660470127	-105.0189411	39.7753479	-105.0204832	39.7753471
-5519	4922	2815	0.0131824278657025	0.0131824278657025	-104.9919185	39.7316877	-104.9919925	39.7317917
-7914	3652	89	0.238216692287668	0.238216692287668	-104.9565993	39.7020271	-104.9580983	39.7002217
-17155	3202	3091	0.199774901839453	0.199774901839453	-104.9751601	39.711091	-104.9751708	39.7128876
-7937	6530	6531	0.246221323543984	0.246221323543984	-104.9709294	39.6879413	-104.9734286	39.6890388
-20342	2965	10747	0.0130500853290149	0.0130500853290149	-105.0235213	39.7584714	-105.0235111	39.7585885
-7957	3453	6015	0.103911955569673	0.103911955569673	-104.9461741	39.7241209	-104.9449591	39.7241168
-17306	8715	5827	0.20364289358169	0.20364289358169	-104.9634793	39.692979	-104.963474	39.6911476
-7981	6550	6526	0.0499792827976588	0.0499792827976588	-104.9775557	39.7240716	-104.9769714	39.7240796
-18128	10269	10270	0.123006178444702	0.123006178444702	-105.0151755	39.7886103	-105.0151844	39.7897165
-8007	6565	6566	0.0461778743400118	0.0461778743400118	-104.9793644	39.7557994	-104.9797454	39.7560938
-12262	8500	8621	0.00391508697358849	0.00391508697358849	-105.0069837	39.7565886	-105.0070186	39.7566114
-20346	10731	10745	0.0882403942542692	0.0882403942542692	-105.0247591	39.7586373	-105.0237282	39.7585962
-8080	6611	6612	0.10285099566632	0.10285099566632	-104.9291809	39.7364935	-104.9303837	39.7364879
-20503	10831	10061	0.00544027190297384	0.00544027190297384	-105.0193747	39.7583443	-105.0193111	39.7583425
-17159	5011	5064	0.204989668883762	0.204989668883762	-104.9728223	39.6911338	-104.9728324	39.6929773
-14700	4773	5065	0.177184173799166	0.177184173799166	-104.9746628	39.7224758	-104.9746455	39.7240692
-8102	6628	6630	0.0733305516170216	0.0733305516170216	-104.9775188	39.6919873	-104.9769745	39.6914779
-14712	935	5453	0.176927806170623	0.176927806170623	-104.9746877	39.7320425	-104.9746713	39.7304514
-8148	6658	1326	0.126702346827637	0.126702346827637	-105.0443368	39.7144948	-105.0442903	39.7133559
-14707	5162	5223	0.123984475685155	0.123984475685155	-104.9746897	39.7395432	-104.9747109	39.7384283
-8332	6761	6762	0.0544299595372282	0.0544299595372282	-105.0276173	39.7693294	-105.0276181	39.7698189
-17167	48	5241	0.405295346029575	0.405295346029575	-104.9740013	39.7002102	-104.9740116	39.7038551
-8384	6791	4603	0.174075741649446	0.174075741649446	-104.9684196	39.7432459	-104.9684176	39.7448114
-20516	6731	10843	0.0163123315737135	0.0163123315737135	-105.0159724	39.7589742	-105.015972	39.7591209
-17171	5280	3092	0.401948502237413	0.401948502237413	-104.9739693	39.7092817	-104.9739802	39.7128965
-8434	6821	1593	0.0969711334947841	0.0969711334947841	-105.0121846	39.7039499	-105.0133176	39.7039764
-14711	2220	935	0.183060496140458	0.183060496140458	-104.9746915	39.7336888	-104.9746877	39.7320425
-8536	6880	1128	0.0335501177019022	0.0335501177019022	-105.0400799	39.7657742	-105.0404722	39.7657639
-19635	10525	10595	0.00694156278564008	0.00694156278564008	-104.9883652	39.7073679	-104.9882841	39.7073658
-18504	9353	6386	0.133800859600802	0.133800859600802	-105.0363784	39.7487709	-105.0363788	39.7475676
-8556	6891	6418	0.133199850282798	0.133199850282798	-105.0158561	39.7656402	-105.0174145	39.7656433
-8557	6418	4625	0.132396793169127	0.132396793169127	-105.0174145	39.7656433	-105.0189635	39.7656391
-17175	5327	5390	0.196700288812187	0.196700288812187	-104.9693125	39.6893294	-104.9692808	39.6910982
-18507	8379	10301	0.115242670596916	0.115242670596916	-105.0410701	39.7476972	-105.0410673	39.7487336
-8578	6280	6899	0.103595480205117	0.103595480205117	-104.9609549	39.7692782	-104.9597428	39.769281
-4404	4118	4119	0.131974592337134	0.131974592337134	-104.9508084	39.7861993	-104.950835	39.787386
-18510	10301	9529	0.136169474903607	0.136169474903607	-105.0410673	39.7487336	-105.0410698	39.7499582
-4406	4120	4121	0.394524879292727	0.394524879292727	-104.951135	39.787386	-104.9510929	39.7909339
-19640	10596	10598	0.0045286617175965	0.0045286617175965	-104.9881372	39.7071852	-104.9881774	39.7071587
-8728	3385	6959	0.0627894298641218	0.0627894298641218	-105.0345837	39.7451514	-105.0353181	39.7451528
-18496	6384	9201	0.134997571408585	0.134997571408585	-105.0351851	39.7475652	-105.0352011	39.7487792
-18514	10302	5543	0.103400383164669	0.103400383164669	-105.0410619	39.7511711	-105.0410644	39.752101
-8779	6999	7000	0.178967474513147	0.178967474513147	-104.9318001	39.7894487	-104.931649	39.791054
-18515	5543	2412	0.101763704229338	0.101763704229338	-105.0410644	39.752101	-105.041094	39.7530159
-8803	5141	2236	0.0248346840292332	0.0248346840292332	-104.931599	39.732778	-104.9314966	39.732987
-19831	10650	10651	0.138361801446117	0.138361801446117	-105.0422095	39.7366329	-105.0422009	39.7353886
-8887	3285	1059	0.0976623415502941	0.0976623415502941	-104.9500244	39.7038338	-104.9500415	39.7029556
-17182	5607	5608	0.205054564403698	0.205054564403698	-104.9716302	39.692962	-104.9716303	39.6911179
-8909	3021	7068	0.0519035642154067	0.0519035642154067	-104.974418	39.7576075	-104.9748473	39.7579376
-4407	3574	4122	0.137780007377075	0.137780007377075	-104.951246	39.7544757	-104.9511924	39.7557141
-14713	5453	5664	0.115365301333729	0.115365301333729	-104.9746713	39.7304514	-104.9752576	39.729517
-9019	3944	7121	0.0616182757003265	0.0616182757003265	-105.0001574	39.7352867	-105.000878	39.7352858
-18655	7655	10305	0.198541985736116	0.198541985736116	-105.0421691	39.7282666	-105.0421244	39.7300518
-9043	7135	4276	0.121250513345306	0.121250513345306	-104.9754213	39.7729633	-104.9744288	39.7737425
-18147	10258	6033	0.201162874084808	0.201162874084808	-105.0117945	39.7874239	-105.0117918	39.7856148
-9226	7232	7233	0.0701236279353194	0.0701236279353194	-104.9883759	39.7057847	-104.9875581	39.7057416
-18152	10264	10277	0.407566866193853	0.407566866193853	-105.0210534	39.7874313	-105.021032	39.7910966
-9304	6121	1920	0.204110733126185	0.204110733126185	-104.9651409	39.7093108	-104.9651495	39.7074752
-18153	4104	6047	0.112519690969595	0.112519690969595	-105.0233734	39.7846136	-105.0233803	39.7856255
-11446	385	387	0.611916175000286	0.611916175000286	-105.009982	39.7834091	-105.0028212	39.783461
-17478	5886	323	0.0446797516163588	0.0446797516163588	-105.015177	39.7517962	-105.0156986	39.7518215
-9352	6077	7309	0.0481617931874556	0.0481617931874556	-104.9628485	39.7020562	-104.9622856	39.7020498
-20395	10775	10776	0.00739420688081638	0.00739420688081638	-105.0243213	39.7599965	-105.0242462	39.7599635
-18154	6047	10135	0.201285870335585	0.201285870335585	-105.0233803	39.7856255	-105.023387	39.7874357
-20429	10789	10790	0.0478990795077935	0.0478990795077935	-105.0223762	39.7591046	-105.0228403	39.759346
-9375	7320	1193	0.16722266002845	0.16722266002845	-104.955535	39.7256145	-104.9555538	39.7271183
-18274	6666	6667	0.19713796716552	0.19713796716552	-105.0398227	39.780198	-105.0398176	39.7819709
-9396	4346	6344	0.137277828740194	0.137277828740194	-104.9549522	39.7569718	-104.9549352	39.7582063
-7038	2477	5911	0.20568880939919	0.20568880939919	-104.9258057	39.7474177	-104.9257802	39.7492674
-9526	7390	6591	0.199950723674749	0.199950723674749	-105.0332849	39.7311446	-105.0332843	39.7329428
-9527	6591	7113	0.204992725577621	0.204992725577621	-105.0332843	39.7329428	-105.033238	39.734786
-4408	4122	4123	0.139283771950412	0.139283771950412	-104.9511924	39.7557141	-104.9512139	39.7569666
-20440	8230	10798	0.00724995456680097	0.00724995456680097	-105.0218852	39.7620114	-105.0218855	39.7619462
-9657	7441	7443	0.137227628583058	0.137227628583058	-105.0369584	39.7487546	-105.036967	39.7499887
-17487	4652	4653	0.0539741907357585	0.0539741907357585	-105.018965	39.7469089	-105.0189634	39.7473943
-9708	7472	7473	0.0204539718039878	0.0204539718039878	-104.9890503	39.7084625	-104.9892894	39.708464
-18246	9358	9377	0.403042223701425	0.403042223701425	-105.0375421	39.7730965	-105.0374998	39.776721
-9812	7530	3064	0.202502418308833	0.202502418308833	-104.9282076	39.7583604	-104.9282248	39.7601815
-17689	6172	6173	0.109301053367223	0.109301053367223	-104.9856415	39.7795956	-104.9843627	39.779576
-9839	7545	7546	0.200378656030458	0.200378656030458	-105.0451654	39.7312441	-105.0451482	39.7330461
-17691	6191	6192	0.114641917935369	0.114641917935369	-104.9832163	39.7795774	-104.9818752	39.7795506
-9862	7563	7564	0.144864127295822	0.144864127295822	-104.9922506	39.7545528	-104.9910557	39.7554766
-18248	8108	10283	0.203688042743378	0.203688042743378	-105.0375106	39.7783767	-105.0375025	39.7802085
-9912	7587	7588	0.0177693522294632	0.0177693522294632	-104.9356138	39.7618347	-104.9356152	39.7619945
-12245	8614	8615	0.00283454394049719	0.00283454394049719	-104.9995987	39.7508719	-104.9995731	39.7508881
-20023	7898	8856	0.145457290364043	0.145457290364043	-104.9900722	39.7528603	-104.988892	39.7538026
-20462	10063	10815	0.0787418608501839	0.0787418608501839	-105.0192332	39.7576336	-105.0192433	39.7583417
-10159	5268	6906	0.123203894056526	0.123203894056526	-104.9475125	39.7680963	-104.947479	39.769204
-20464	10816	10812	0.0195704583026571	0.0195704583026571	-105.0185279	39.7585307	-105.018527	39.7587067
-11511	8294	8295	0.0520431495126935	0.0520431495126935	-104.9942907	39.754326	-104.9947185	39.754659
-18214	6382	6383	0.202997553277811	0.202997553277811	-105.042255	39.7621184	-105.0422527	39.763944
-10231	6520	7739	0.0500835268559568	0.0500835268559568	-104.9581278	39.6893365	-104.9575425	39.6893331
-18257	3984	6760	0.19949668413334	0.19949668413334	-105.0299405	39.7688003	-105.0276064	39.7688141
-10280	7447	7757	0.470575008371913	0.470575008371913	-105.0151992	39.7160167	-105.0151648	39.7202486
-11783	8122	8036	0.0779413781888185	0.0779413781888185	-104.9781363	39.7540082	-104.9787817	39.7535131
-14738	6526	6538	0.170206219459847	0.170206219459847	-104.9769714	39.7240796	-104.976974	39.7256103
-10497	4733	6800	0.110360790137427	0.110360790137427	-104.9696568	39.7519733	-104.968366	39.7519878
-20473	10823	10777	0.00660874071248581	0.00660874071248581	-105.0245064	39.7608531	-105.0244301	39.7608435
-10520	7847	7425	0.0489570822105033	0.0489570822105033	-105.036368	39.7603278	-105.0369407	39.7603225
-18522	4015	10297	0.0710067813209419	0.0710067813209419	-105.0299362	39.7464017	-105.03052	39.7468559
-10541	7855	7856	0.177133627375528	0.177133627375528	-104.9928366	39.7193449	-104.9928343	39.7209379
-10542	7856	2614	0.178768427477815	0.178768427477815	-104.9928343	39.7209379	-104.9928302	39.7225456
-18524	1880	9146	0.0581549975210073	0.0581549975210073	-105.0398844	39.7594402	-105.0398835	39.7589172
-10589	7869	6640	0.0423030177562977	0.0423030177562977	-104.9980684	39.719352	-104.998563	39.7193532
-18270	5525	6463	0.15576453739372	0.15576453739372	-105.0398709	39.7738651	-105.0398602	39.7752659
-10616	7882	4885	0.155749664880603	0.155749664880603	-104.9563208	39.7337098	-104.9562778	39.7351101
-18528	9272	9525	0.133068770502091	0.133068770502091	-105.0340317	39.7511922	-105.0340236	39.7499955
-10639	7897	7898	0.052238135352395	0.052238135352395	-104.9896341	39.7525328	-104.9900722	39.7528603
-10663	7913	7914	0.0662287183378057	0.0662287183378057	-105.0275993	39.7572752	-105.027595	39.7578708
-18276	1427	6667	0.0124761175920816	0.0124761175920816	-105.0398172	39.7820831	-105.0398176	39.7819709
-14745	4866	6690	0.193273433165028	0.193273433165028	-104.9770059	39.7351417	-104.977023	39.7368798
-12385	1624	3930	0.0974730336125312	0.0974730336125312	-104.9994552	39.7668568	-105.0005956	39.7668504
-18277	6667	6720	0.144754021853131	0.144754021853131	-105.0398176	39.7819709	-105.0398219	39.7832727
-10816	7993	6492	0.0854037034050773	0.0854037034050773	-104.9747549	39.746928	-104.9747749	39.7461601
-14747	6732	6733	0.0789150394398201	0.0789150394398201	-104.9782075	39.7375895	-104.9782075	39.7368798
-12453	3191	6107	0.202925463206431	0.202925463206431	-104.9851665	39.7111408	-104.9851845	39.7093159
-16202	5822	7727	0.19552660887524	0.19552660887524	-104.9810031	39.6911678	-104.9810119	39.6894094
-18539	5559	10311	0.589298128069539	0.589298128069539	-105.0440122	39.7616564	-105.0509064	39.7616379
-10890	3025	8025	0.123630898552104	0.123630898552104	-104.9488309	39.7600818	-104.9487313	39.761191
-15899	9255	7490	0.0311439652684609	0.0311439652684609	-105.0419691	39.7342088	-105.0416893	39.7340295
-18550	4298	9428	0.104368579037722	0.104368579037722	-105.04225	39.7539306	-105.0422446	39.7548692
-11283	8190	8201	0.0778576783996018	0.0778576783996018	-104.937302	39.696603	-104.936392	39.696601
-4409	4123	4124	0.135738728632571	0.135738728632571	-104.9512139	39.7569666	-104.9512246	39.7581873
-13171	7691	8995	0.0242708657605628	0.0242708657605628	-104.9475747	39.784754	-104.9472908	39.7847471
-11527	809	8301	0.0665080068102908	0.0665080068102908	-105.026046	39.7554277	-105.0260395	39.7548296
-15908	9084	9085	0.0343875506043555	0.0343875506043555	-105.0294148	39.7240512	-105.029624	39.7237871
-14757	2212	4862	0.162593070375603	0.162593070375603	-104.9792376	39.7337065	-104.9792634	39.7351686
-11742	8382	8383	0.00390317600089655	0.00390317600089655	-104.972113	39.7494781	-104.9721125	39.7495132
-18302	5737	2440	0.171112285574699	0.171112285574699	-105.0410242	39.7724702	-105.0410403	39.7709314
-11766	8404	8405	0.0591205771532174	0.0591205771532174	-104.9894933	39.7580303	-104.9899962	39.7583953
-11998	5505	7079	0.147126356992669	0.147126356992669	-104.9812949	39.7610237	-104.9800778	39.7619593
-12060	332	268	0.0944572536860071	0.0944572536860071	-104.9554298	39.7451641	-104.9564977	39.7449464
-4411	3048	4125	0.136438064344983	0.136438064344983	-104.9511947	39.7594645	-104.9511863	39.7606915
-20391	10766	10774	0.00648510043864555	0.00648510043864555	-105.0243045	39.7606892	-105.0243795	39.760698
-4412	4125	4126	0.00355827872013668	0.00355827872013668	-104.9511863	39.7606915	-104.9511861	39.7607235
-19845	9516	10657	0.207937764412144	0.207937764412144	-105.0387468	39.7403366	-105.0387332	39.7384666
-16200	1790	7209	0.198939694041251	0.198939694041251	-104.9810045	39.694799	-104.9809977	39.6930099
-20399	10763	3591	0.00757376863172981	0.00757376863172981	-105.0250727	39.760924	-105.025071	39.7608559
-12520	8729	1189	0.0214820993457698	0.0214820993457698	-104.9601841	39.7273144	-104.9601763	39.7271213
-20644	10877	4517	0.0511435578342218	0.0511435578342218	-105.0134384	39.7627649	-105.0133602	39.7632209
-12620	8775	4920	0.0124622300083447	0.0124622300083447	-104.9895915	39.7285525	-104.9894816	39.7286261
-20646	10035	10880	0.0235473019855852	0.0235473019855852	-105.0143641	39.767541	-105.0146396	39.7675397
-12646	5921	920	0.178961176893159	0.178961176893159	-104.9835955	39.730436	-104.9835814	39.7320454
-12691	8806	8807	0.0113998193117656	0.0113998193117656	-104.953405	39.7180338	-104.9534077	39.7179313
-12822	8261	493	0.226877195561116	0.226877195561116	-104.9966971	39.7817678	-104.994193	39.7810897
-13034	8927	585	0.0555278029535648	0.0555278029535648	-104.9887446	39.7818256	-104.9889526	39.7822987
-14668	6327	4166	0.169217141640748	0.169217141640748	-104.9729137	39.7186188	-104.972908	39.7201406
-14856	9434	8907	0.112945329265115	0.112945329265115	-105.0089007	39.7547457	-105.0079847	39.7554777
-20835	10948	10929	0.0711141044607233	0.0711141044607233	-105.0291285	39.7622441	-105.0299581	39.7621958
-13572	2184	9130	0.046228028674551	0.046228028674551	-105.0163101	39.7301817	-105.0161204	39.730571
-4413	4126	4127	0.123682116907034	0.123682116907034	-104.9511861	39.7607235	-104.9511861	39.7618358
-4414	4127	4128	0.0151340374611755	0.0151340374611755	-104.9511861	39.7618358	-104.9511874	39.7619719
-14780	5922	921	0.178257163080484	0.178257163080484	-104.9828734	39.7304382	-104.9828787	39.7320413
-13824	9203	7891	0.0449920400202888	0.0449920400202888	-104.9873873	39.7502468	-104.9870145	39.7505324
-13970	9249	9250	0.0321739674064664	0.0321739674064664	-105.0143117	39.7288521	-105.0144838	39.7291094
-20559	2957	10784	0.0120134443189883	0.0120134443189883	-105.0187431	39.7584203	-105.0187393	39.7585283
-14029	9262	6653	0.100609617198747	0.100609617198747	-105.0437097	39.6967153	-105.0448856	39.6967219
-15915	9746	9747	0.0832769023011374	0.0832769023011374	-105.0421231	39.7165684	-105.0417682	39.7172658
-11415	7985	8000	0.0154063290418794	0.0154063290418794	-105.025085	39.7846442	-105.0252653	39.7846442
-14233	8687	6694	0.0247755996269239	0.0247755996269239	-104.9497898	39.7256083	-104.9495001	39.7256083
-20569	10787	10858	0.0193290169195346	0.0193290169195346	-105.0188651	39.7596431	-105.0190584	39.7597333
-14464	6149	3994	0.0989127437299345	0.0989127437299345	-105.0287889	39.7729931	-105.029945	39.7730349
-14635	9387	9388	0.0403809617749613	0.0403809617749613	-105.0032834	39.7589279	-105.0032916	39.759291
-11212	391	392	0.10291889633356	0.10291889633356	-104.931634	39.702187	-104.932837	39.702182
-14604	9397	9398	0.123826706008273	0.123826706008273	-105.0252842	39.7632064	-105.0252853	39.7620928
-14637	9406	2243	0.00956376056529555	0.00956376056529555	-105.0052833	39.7574891	-105.0051802	39.7575225
-15410	9588	9589	0.0190893984820006	0.0190893984820006	-105.0043197	39.7412126	-105.0041373	39.7413116
-15440	9601	1507	0.00768187987530518	0.00768187987530518	-105.0002535	39.7408661	-105.0003423	39.7408556
-16383	9771	9880	0.0381827012246672	0.0381827012246672	-104.9717383	39.7032546	-104.9718617	39.7035846
-16620	9937	9938	0.0704692374785171	0.0704692374785171	-104.9859915	39.738562	-104.9856294	39.7391313
-11802	8392	8415	0.148179257170155	0.148179257170155	-104.9829471	39.7529945	-104.9841796	39.7520575
-16809	4996	728	0.102190274976312	0.102190274976312	-104.9523584	39.6965806	-104.951164	39.6965829
-11640	8346	4530	0.131615785848543	0.131615785848543	-105.0236119	39.7542144	-105.0220723	39.7542199
-16853	6519	9854	0.0497714413737895	0.0497714413737895	-104.9581188	39.6929673	-104.9575371	39.6929673
-4415	4128	1171	0.138086753058786	0.138086753058786	-104.9511874	39.7619719	-104.9511738	39.7632137
-17269	3518	82	0.205066129886621	0.205066129886621	-104.9623127	39.6983876	-104.9623177	39.7002318
-11951	8499	8500	0.0607548345173342	0.0607548345173342	-105.0064874	39.7561975	-105.0069837	39.7565886
-17324	6799	7351	0.103019517606604	0.103019517606604	-104.968374	39.7507196	-104.967169	39.7507119
-11991	4455	5503	0.144667643977852	0.144667643977852	-104.9816151	39.759425	-104.9804313	39.7603548
-17388	5920	3810	0.153093198888871	0.153093198888871	-104.9842358	39.7304466	-104.9842348	39.7290698
-17389	3810	10095	0.199017480070308	0.199017480070308	-104.9842348	39.7290698	-104.9842414	39.72728
-17407	6122	1921	0.202694690919031	0.202694690919031	-104.9645867	39.7093011	-104.9646085	39.7074783
-17408	1921	7246	0.200797963530598	0.200797963530598	-104.9646085	39.7074783	-104.9645976	39.7056725
-12044	8523	8524	0.0621486337289915	0.0621486337289915	-105.0057364	39.7517137	-105.0053655	39.751233
-17448	3247	10109	0.0544983800214201	0.0544983800214201	-104.9827863	39.7038745	-104.9827914	39.7033844
-4416	1171	891	0.137903948024362	0.137903948024362	-104.9511738	39.7632137	-104.9511738	39.7644539
-12113	8552	672	0.00266902064060136	0.00266902064060136	-104.9647683	39.7415931	-104.9647688	39.7416171
-17549	10132	10133	2.25328864155446	2.25328864155446	-104.9893554	39.7854595	-104.9832781	39.8051785
-17666	8928	10162	0.0972564668123919	0.0972564668123919	-104.9872354	39.7794049	-104.9861062	39.7795141
-12288	8528	8526	0.152174217990106	0.152174217990106	-105.0061613	39.7515322	-105.0049596	39.7505226
-17729	7332	2080	0.104548139781884	0.104548139781884	-104.9548798	39.7607265	-104.9536567	39.7607265
-12329	8641	8652	0.00987690479251785	0.00987690479251785	-105.0078924	39.7547551	-105.0077772	39.7547483
-12331	8653	8654	0.00928748638267964	0.00928748638267964	-105.0076516	39.7547313	-105.0075431	39.754727
-17751	8575	6706	0.145927899456713	0.145927899456713	-104.9927205	39.7474627	-104.99393	39.7465367
-12936	8688	8689	0.0364958929125483	0.0364958929125483	-105.0030556	39.7453386	-105.0031672	39.7450218
-17774	7679	5984	0.100495969018847	0.100495969018847	-104.9246153	39.7801377	-104.9257912	39.7801245
-17787	9214	536	0.151808926625465	0.151808926625465	-105.0140859	39.7556275	-105.0151149	39.7545148
-17822	10188	10186	0.041401555151972	0.041401555151972	-105.000993	39.7638033	-105.0007327	39.7634893
-17852	10195	5678	0.0176253194989635	0.0176253194989635	-104.9980666	39.7674272	-104.9982133	39.7675386
-17170	1912	5280	0.200459610115248	0.200459610115248	-104.9739477	39.707479	-104.9739693	39.7092817
-4417	891	4129	0.140986849802137	0.140986849802137	-104.9511738	39.7644539	-104.9511842	39.7657218
-12947	1304	1303	0.066448544071591	0.066448544071591	-105.0024118	39.7438801	-105.0017368	39.7441763
-18995	3958	5601	0.119729821294068	0.119729821294068	-105.0002015	39.7209321	-105.0016014	39.7209311
-18382	8919	8920	0.0492932118239397	0.0492932118239397	-105.0258833	39.771558	-105.0258859	39.7720013
-19080	4746	4159	0.17797879706873	0.17797879706873	-104.9407779	39.7225362	-104.9407748	39.7209356
-13065	8947	8948	0.014693528299895	0.014693528299895	-104.9948109	39.7672181	-104.9949826	39.7672115
-19135	3168	8470	0.0222426676149063	0.0222426676149063	-105.0012883	39.7488943	-105.0014824	39.7487611
-20824	9337	9400	0.0122401419030242	0.0122401419030242	-105.0251662	39.7600869	-105.0252875	39.7601454
-19172	6804	7956	0.0915174498096421	0.0915174498096421	-104.9688098	39.7807867	-104.9677476	39.7808918
-19618	10588	10494	0.00731369728944242	0.00731369728944242	-104.9910599	39.7104919	-104.9911454	39.7104919
-19331	9893	10473	0.0200896227314349	0.0200896227314349	-104.9715317	39.698308	-104.971721	39.6984149
-15874	8889	8940	0.103516223202584	0.103516223202584	-105.0393045	39.7347125	-105.0405047	39.7348341
-19358	9949	10479	0.0590930811213136	0.0590930811213136	-105.0003016	39.7477141	-104.9998192	39.7473335
-19413	7239	3251	0.195270640148282	0.195270640148282	-104.9798548	39.7057161	-104.9798629	39.70396
-19962	10674	10685	0.14613727594919	0.14613727594919	-105.0410696	39.7366244	-105.0410556	39.7353102
-18473	9005	9006	0.01365486811001	0.01365486811001	-105.0399025	39.7549798	-105.0399032	39.754857
-20041	9172	140	0.204724385208342	0.204724385208342	-104.9923108	39.6911873	-104.9924893	39.6930233
-18917	10396	10397	0.0952180129620757	0.0952180129620757	-105.0109587	39.7503762	-105.011825	39.749838
-20063	2998	4930	0.100928455718765	0.100928455718765	-104.9969577	39.7401458	-104.9981378	39.7401663
-20587	10865	10840	0.00838601883021894	0.00838601883021894	-105.024575	39.7609374	-105.0245771	39.760862
-4418	4129	2776	0.133433939347385	0.133433939347385	-104.9511842	39.7657218	-104.9511832	39.7669218
-14836	7396	7377	0.030817448743492	0.030817448743492	-105.0330742	39.7548479	-105.0334347	39.7548479
-14837	7377	3410	0.100816825455254	0.100816825455254	-105.0334347	39.7548479	-105.034614	39.754856
-15447	9607	9608	0.0162401698909022	0.0162401698909022	-104.9997573	39.7426934	-104.9999385	39.7426496
-309	317	318	0.0119735018205437	0.0119735018205437	-105.0345742	39.7830397	-105.0344342	39.7830352
-13531	5648	3387	0.0436500601039895	0.0436500601039895	-105.0355748	39.7254817	-105.0351109	39.725318
-14946	8215	8212	0.101284367879663	0.101284367879663	-104.9303979	39.7382593	-104.9292134	39.7382659
-13555	408	9127	0.613912488305853	0.613912488305853	-105.0014039	39.7148758	-104.9983536	39.7098782
-14981	9463	7091	0.107883940343108	0.107883940343108	-104.9861093	39.7432784	-104.9848475	39.7432813
-14982	7091	8789	0.108748219147477	0.108748219147477	-104.9848475	39.7432813	-104.9835757	39.7432682
-13650	9158	9159	0.0150152429008076	0.0150152429008076	-104.9960034	39.7030693	-104.9961123	39.7031752
-15063	8874	7430	0.0504536590179092	0.0504536590179092	-104.9810766	39.7368811	-104.9816663	39.7368655
-17072	3687	8133	0.141298637785039	0.141298637785039	-104.9615881	39.7469471	-104.9615993	39.7482178
-18493	9170	5545	0.102571946583037	0.102571946583037	-105.04225	39.7511845	-105.0422627	39.7521069
-15171	9511	9512	0.0502858420296349	0.0502858420296349	-105.0358145	39.7403194	-105.0364026	39.7403227
-15174	9514	9515	0.0498070291463972	0.0498070291463972	-105.0375666	39.7403293	-105.0381491	39.7403326
-18566	10322	10323	0.186113882409967	0.186113882409967	-105.0341731	39.7804672	-105.0341543	39.7821409
-16100	9824	9817	0.0308009946802063	0.0308009946802063	-104.9497096	39.7808621	-104.9497096	39.7811391
-16101	9817	8245	0.0866075022072335	0.0866075022072335	-104.9497096	39.7811391	-104.9495723	39.7819108
-15444	8607	9604	0.0180426861021608	0.0180426861021608	-105.0006617	39.7414743	-105.0004869	39.7415652
-16161	3728	722	0.106535324504203	0.106535324504203	-105.0028395	39.7289078	-105.004084	39.7289511
-16174	9840	7201	0.0108095014749508	0.0108095014749508	-104.9868416	39.693104	-104.9868436	39.6930068
-16239	9856	7742	0.4032601166124	0.4032601166124	-104.9541161	39.6857099	-104.954108	39.6893365
-16240	7742	5837	0.199863858168715	0.199863858168715	-104.954108	39.6893365	-104.9540973	39.6911339
-15881	8762	9238	0.022425928034548	0.022425928034548	-105.0451798	39.7355292	-105.0454319	39.7354736
-16327	3906	3134	0.109247651866168	0.109247651866168	-104.9634455	39.7619888	-104.9647236	39.7619908
-16328	3134	5403	0.105230091275359	0.105230091275359	-104.9647236	39.7619908	-104.9659547	39.7619898
-17203	10075	10076	0.206234100938924	0.206234100938924	-104.9688448	39.6965282	-104.9687509	39.6946749
-17253	5918	917	0.179236073493399	0.179236073493399	-104.9861275	39.730436	-104.9861344	39.7320479
-18223	1695	6884	0.201956855870188	0.201956855870188	-105.0434467	39.7675662	-105.0434307	39.76575
-15286	3187	9268	0.0103389762120735	0.0103389762120735	-104.946376	39.7114762	-104.946452	39.7115485
-19421	34	3533	0.2073108703911	0.2073108703911	-104.982156	39.7002709	-104.982132	39.6984066
-19436	6852	10490	0.151686039209942	0.151686039209942	-104.9881056	39.7102414	-104.9897131	39.7108173
-19663	10609	9366	0.0532084205099813	0.0532084205099813	-105.0211243	39.7697539	-105.0211194	39.7692754
-19847	10658	7133	0.20071321213787	0.20071321213787	-105.0387333	39.7365995	-105.0387146	39.7347945
-19953	7857	10414	0.0579007631193554	0.0579007631193554	-104.992831	39.7230021	-104.992154	39.7230042
-19293	10471	8765	0.117981892754207	0.117981892754207	-104.9888451	39.7389629	-104.9902249	39.7389566
-19987	9727	10653	0.0514452608394938	0.0514452608394938	-105.039304	39.7384682	-105.0399056	39.7384617
-19988	10653	1103	0.0505009558673589	0.0505009558673589	-105.0399056	39.7384617	-105.0404962	39.738465
-15432	9598	7965	0.00918826645895189	0.00918826645895189	-104.9998109	39.7420623	-104.999898	39.7420139
-15465	9615	9616	0.0488173542586425	0.0488173542586425	-105.0015275	39.7433678	-105.0011333	39.7436854
-15505	2286	4494	0.207036482148074	0.207036482148074	-105.0028141	39.740161	-105.0052335	39.7402363
-18430	7784	10291	0.0493825781706533	0.0493825781706533	-105.039294	39.7625616	-105.0387163	39.7625667
-15468	7963	9610	0.0129310975383002	0.0129310975383002	-105.0005879	39.7441349	-105.000479	39.7442156
-15643	9669	8703	0.0154036792176203	0.0154036792176203	-104.9406749	39.7582947	-104.9404947	39.7582947
-15293	9561	9563	0.0354006218838869	0.0354006218838869	-104.941269	39.7069549	-104.9409901	39.7071901
-15662	5995	7675	0.101107003151938	0.101107003151938	-104.9257668	39.7583774	-104.924584	39.7583757
-15469	9610	9613	0.00340267268464027	0.00340267268464027	-105.000479	39.7442156	-105.0004503	39.7442368
-15685	3450	6014	0.102083800598865	0.102083800598865	-104.9461569	39.7178084	-104.9449634	39.7178023
-18613	9261	4049	0.17355432372221	0.17355432372221	-105.0355223	39.7197001	-105.0355145	39.7181393
-15707	8686	8810	0.0279306326987703	0.0279306326987703	-104.9497874	39.7178534	-104.9500622	39.7177177
-15471	9606	8892	0.117003908235376	0.117003908235376	-105.0007281	39.7441165	-105.0008068	39.745167
-15762	2940	6814	0.0992967316903301	0.0992967316903301	-104.9257898	39.7162499	-104.9246289	39.7162454
-15764	6595	9701	0.0232598991470647	0.0232598991470647	-105.0377569	39.7329864	-105.0380289	39.7329878
-14656	9410	9411	0.19733052173904	0.19733052173904	-105.015841	39.75954	-105.0180024	39.7601634
-20261	10720	5750	0.00799491979378441	0.00799491979378441	-105.0450567	39.772877	-105.0450566	39.7729489
-2336	1153	2328	0.201597448584961	0.201597448584961	-104.9240347	39.7637955	-104.9240271	39.7656085
-17300	8716	8745	0.199099643459498	0.199099643459498	-104.9622811	39.6929794	-104.9622978	39.6947699
-19471	10515	10516	0.00520398584376517	0.00520398584376517	-104.9902726	39.7086173	-104.9902729	39.7085705
-20611	10819	10828	0.0109320789190355	0.0109320789190355	-105.0192728	39.7586316	-105.0192706	39.7587299
-20612	10828	10821	0.0197366861798755	0.0197366861798755	-105.0192706	39.7587299	-105.0191892	39.758896
-20613	10821	10870	0.0252155503065758	0.0252155503065758	-105.0191892	39.758896	-105.0188943	39.7588905
-478	480	212	0.0356029775534751	0.0356029775534751	-104.9669782	39.7796681	-104.9665616	39.779672
-15859	9740	9707	0.0569780852958723	0.0569780852958723	-105.0401452	39.7312615	-105.039492	39.7313626
-515	509	510	0.286655598001641	0.286655598001641	-104.9514881	39.747496	-104.9547886	39.7479501
-520	514	515	0.226862534758366	0.226862534758366	-105.0251054	39.7238769	-105.0224999	39.7242598
-15253	9545	9538	0.0260796874031177	0.0260796874031177	-104.9353544	39.7054988	-104.9352077	39.7057044
-624	614	615	0.101063162513791	0.101063162513791	-104.9929396	39.7368669	-104.9941215	39.7368616
-19463	10483	10508	0.019159575222575	0.019159575222575	-104.9902592	39.7100937	-104.9902611	39.7099214
-17219	3199	3087	0.202098851695834	0.202098851695834	-104.9775204	39.7110879	-104.9775097	39.7129054
-702	696	697	0.1055651557861	0.1055651557861	-104.9500677	39.7419774	-104.9488331	39.7419679
-15544	9645	9646	0.00692347068679982	0.00692347068679982	-104.9867889	39.7267325	-104.9868344	39.726681
-776	778	779	0.103928492069641	0.103928492069641	-105.023849	39.7020679	-105.0250638	39.7020728
-15955	6396	500	0.195346208359328	0.195346208359328	-105.0022548	39.7147281	-105.0016511	39.7130338
-913	927	928	0.0495542499145439	0.0495542499145439	-104.9792571	39.7320337	-104.9786778	39.7320223
-915	929	930	0.0493548663548942	0.0493548663548942	-104.9781467	39.7320382	-104.9775696	39.7320445
-15957	9767	9768	0.0474477023795114	0.0474477023795114	-105.0006962	39.7116024	-105.0005192	39.711198
-932	947	948	0.100759864187185	0.100759864187185	-104.9540658	39.7320945	-104.9528876	39.7321058
-15960	9770	7450	0.0160716244910599	0.0160716244910599	-104.999001	39.7075478	-104.9991888	39.7075519
-955	967	968	0.0165679791310418	0.0165679791310418	-104.9838014	39.7234262	-104.9837585	39.7235715
-957	969	970	0.197449816642368	0.197449816642368	-104.9835112	39.7801693	-104.9835185	39.781945
-15913	9240	9745	0.0339191222144473	0.0339191222144473	-105.042453	39.716655	-105.0428433	39.716601
-980	991	992	0.138684932577873	0.138684932577873	-104.9740667	39.720134	-104.974036	39.718887
-15891	9002	7513	0.0667178592447727	0.0667178592447727	-105.0410599	39.7349868	-105.0416463	39.7353826
-1003	1016	1017	0.039629871856248	0.039629871856248	-104.9622539	39.7331056	-104.9622539	39.733462
-1004	1017	1018	0.176155002789907	0.176155002789907	-104.9622539	39.733462	-104.9622539	39.7350462
-19469	10513	10514	0.0200709923319022	0.0200709923319022	-104.9902701	39.7089743	-104.9902714	39.7087938
-16388	9459	9771	0.0286077698371324	0.0286077698371324	-104.9714714	39.7030996	-104.9717383	39.7032546
-1087	1103	1104	0.338644304966299	0.338644304966299	-105.0404962	39.738465	-105.0404924	39.7415105
-17156	3091	4971	0.202252452796884	0.202252452796884	-104.9751708	39.7128876	-104.9751706	39.7147065
-16103	255	8239	0.267325536990832	0.267325536990832	-104.9534054	39.7800114	-104.9502774	39.7799784
-1170	1186	1187	0.0990780990020656	0.0990780990020656	-104.9648143	39.7271028	-104.9636558	39.7271103
-16337	8026	3444	0.219522804846043	0.219522804846043	-104.9488251	39.7617626	-104.9462569	39.7617553
-1298	1323	1324	0.104021267127805	0.104021267127805	-105.0408805	39.7133731	-105.0420966	39.7133724
-1299	1324	1325	0.0988550932780109	0.0988550932780109	-105.0420966	39.7133724	-105.0432523	39.7133745
-16392	9847	9876	0.0466572032639634	0.0466572032639634	-104.9699755	39.7028786	-104.9705085	39.7029675
-1322	1347	1348	0.145300158256776	0.145300158256776	-104.9771684	39.7690078	-104.9759324	39.769905
-387	389	390	0.101909828504342	0.101909828504342	-105.0001337	39.7136621	-105.0008375	39.7144016
-19511	10536	10537	0.0367294544686212	0.0367294544686212	-104.9879104	39.7088024	-104.9882735	39.7089787
-1469	1489	1490	0.0976691429125615	0.0976691429125615	-105.0015377	39.694864	-105.0026792	39.6948706
-12005	8512	8049	0.105397118565585	0.105397118565585	-104.9875407	39.7588984	-104.9866649	39.7595656
-18733	7646	6209	0.175022021354251	0.175022021354251	-105.0331112	39.7277125	-105.0331036	39.7261385
-16766	5003	7290	0.0493746723595829	0.0493746723595829	-104.9542392	39.7014907	-104.9546694	39.7017867
-1495	1515	1473	0.1629816039782	0.1629816039782	-104.9267914	39.6961177	-104.9248865	39.6961248
-1497	1516	1517	0.202642438735294	0.202642438735294	-104.9746066	39.7147099	-104.9745809	39.7128876
-16788	10012	8649	0.310114997807766	0.310114997807766	-105.0057345	39.7494516	-105.0092259	39.7486951
-1549	1574	1575	0.0819858846366358	0.0819858846366358	-105.0360845	39.6869978	-105.0369943	39.687229
-1550	1575	1576	0.0787364050378914	0.0787364050378914	-105.0369943	39.687229	-105.0378698	39.6874469
-12359	8664	8670	0.00994780391809775	0.00994780391809775	-105.0123703	39.7528644	-105.0123272	39.7529475
-16806	9858	3171	0.0510524682713306	0.0510524682713306	-104.9540893	39.6965849	-104.9534926	39.6965864
-1570	1597	1598	0.101896558922667	0.101896558922667	-105.0140815	39.6999614	-105.0137725	39.6990764
-2686	2646	2647	0.164307180037452	0.164307180037452	-104.9522198	39.7241312	-104.952204	39.7256088
-17103	9923	330	0.250512453112542	0.250512453112542	-104.9542113	39.7438103	-104.9522566	39.7454886
-1650	1677	1678	0.13227170643909	0.13227170643909	-105.0158682	39.7680616	-105.0174158	39.7680606
-11530	810	811	0.199368445906152	0.199368445906152	-105.0276079	39.7554276	-105.0299401	39.7554211
-16952	10036	10037	0.00823596195269871	0.00823596195269871	-105.0167198	39.7560071	-105.0167413	39.7559349
-1704	1725	1726	0.0532102629650272	0.0532102629650272	-105.0179828	39.6910268	-105.0185407	39.6908154
-17039	9210	8988	0.00924605732532601	0.00924605732532601	-105.0192694	39.7575006	-105.0192467	39.7575819
-1762	1487	1782	0.108567137541803	0.108567137541803	-104.9874337	39.6948003	-104.986165	39.6947828
-14689	2798	2868	0.199650986040528	0.199650986040528	-104.971199	39.7272868	-104.9712042	39.7290823
-17136	4412	4425	0.202602949014775	0.202602949014775	-104.9763723	39.7038488	-104.9763417	39.7056707
-17489	472	4654	0.0574342005254488	0.0574342005254488	-105.0184425	39.7479196	-105.0189639	39.7475939
-1935	1949	1223	0.041131087786823	0.041131087786823	-105.012837	39.738513	-105.012356	39.7385086
-1937	1950	1951	0.0773266220673917	0.0773266220673917	-105.005245	39.7384018	-105.006149	39.738421
-16304	2826	2827	0.0584380832256012	0.0584380832256012	-104.9718283	39.6983529	-104.9721964	39.6979102
-17962	10235	5193	0.0148018460000789	0.0148018460000789	-104.9880993	39.7242556	-104.9880966	39.7241225
-2187	2187	2188	0.0698088769426891	0.0698088769426891	-105.0159723	39.7369102	-105.0159468	39.7375377
-17834	10187	10188	0.0373456729353608	0.0373456729353608	-105.0006185	39.7636303	-105.000993	39.7638033
-17023	10058	10059	0.043764797810192	0.043764797810192	-105.0171608	39.7532718	-105.0176702	39.753311
-2261	2261	2262	0.20174624930555	0.20174624930555	-104.930525	39.7674191	-104.9305079	39.7692334
-20285	10701	10709	0.0172154433985116	0.0172154433985116	-105.0447555	39.7732732	-105.0445556	39.7732923
-16421	3331	3358	0.0229870189622456	0.0229870189622456	-104.9693109	39.7020309	-104.9695281	39.7021526
-20297	5579	7524	0.0531120067375217	0.0531120067375217	-105.0439692	39.777017	-105.0433477	39.777017
-12353	8669	8661	0.00857375962495721	0.00857375962495721	-105.0124521	39.7523897	-105.0123532	39.7524025
-16657	3462	3464	0.173665424327281	0.173665424327281	-104.9862758	39.7399191	-104.9872522	39.7385496
-19565	10567	7463	0.00795043725476521	0.00795043725476521	-104.9897546	39.7076211	-104.9897546	39.7075496
-17162	5087	5107	0.202243070877092	0.202243070877092	-104.9740434	39.6911697	-104.9740336	39.6929885
-19034	10159	9497	0.0427022948506461	0.0427022948506461	-104.9503671	39.7793277	-104.949868	39.7793088
-20744	9001	10918	0.332184959452437	0.332184959452437	-105.0253805	39.7605003	-105.0286822	39.762076
-20748	10921	10922	0.0509227801768603	0.0509227801768603	-105.0292505	39.7620502	-105.0298462	39.7620563
-20749	10923	10924	0.18669804780169	0.18669804780169	-105.0382061	39.7620456	-105.0382156	39.7603666
-20750	10925	10926	0.0392592111051346	0.0392592111051346	-105.035831	39.7621995	-105.0362903	39.7621997
-20752	10927	10928	0.00711510327217607	0.00711510327217607	-105.0267252	39.7609466	-105.0267992	39.7609759
-20754	10929	10930	0.0834966641757845	0.0834966641757845	-105.0299581	39.7621958	-105.0299611	39.7629467
-20756	10931	10932	0.0408755067283247	0.0408755067283247	-105.0352067	39.7621947	-105.0356849	39.762197
-20758	10933	10934	0.0399346912680156	0.0399346912680156	-105.0363976	39.7621959	-105.0368648	39.7621971
-20760	10935	10936	0.0903151185359097	0.0903151185359097	-105.0370035	39.7621946	-105.0380601	39.7621908
-20762	10937	8302	0.00392992290489043	0.00392992290489043	-105.0266441	39.7609098	-105.0266827	39.760929
-20763	8302	10927	0.00412640673301695	0.00412640673301695	-105.0266827	39.760929	-105.0267252	39.7609466
-20765	10918	3754	0.00609979968071289	0.00609979968071289	-105.0286822	39.762076	-105.028727	39.7621187
-20766	3754	10938	0.00661123306657495	0.00661123306657495	-105.028727	39.7621187	-105.028778	39.7621634
-20768	10920	7783	0.00949225948867298	0.00949225948867298	-105.0391814	39.7621915	-105.0392924	39.7621941
-20769	7783	10939	0.00900064827794335	0.00900064827794335	-105.0392924	39.7621941	-105.0393977	39.762194
-20771	10940	3415	0.00746326017722055	0.00746326017722055	-105.0345162	39.7622208	-105.0346035	39.762222
-20772	3415	10941	0.00571991053425525	0.00571991053425525	-105.0346035	39.762222	-105.0346704	39.7622208
-20774	10938	10942	0.117980886182769	0.117980886182769	-105.028778	39.7621634	-105.0279694	39.7630233
-20776	10941	10943	0.040800141538403	0.040800141538403	-105.0346704	39.7622208	-105.0351465	39.7621945
-20778	10929	8910	0.00644678344686978	0.00644678344686978	-105.0299581	39.7621958	-105.0300335	39.7621944
-20779	8910	10944	0.00853909895805364	0.00853909895805364	-105.0300335	39.7621944	-105.0301334	39.7621946
-20781	10926	10280	0.00413065470277064	0.00413065470277064	-105.0362903	39.7621997	-105.0363386	39.7622009
-20782	10280	10933	0.00507364819278473	0.00507364819278473	-105.0363386	39.7622009	-105.0363976	39.7621959
-16513	9922	1630	0.0152212141119797	0.0152212141119797	-105.0040915	39.7422329	-105.0040598	39.7420982
-16537	3671	9932	0.221180884679333	0.221180884679333	-104.9763685	39.7474986	-104.9763549	39.7494877
-16539	9933	7834	0.139783679739911	0.139783679739911	-104.9763678	39.7507423	-104.9763093	39.7519986
-16790	10013	7828	0.227723092786938	0.227723092786938	-105.0114923	39.7476921	-105.0134825	39.746331
-18645	1318	5867	0.177222990129465	0.177222990129465	-105.0378936	39.7133724	-105.0378886	39.7149662
-16960	10042	10043	0.0112267703364208	0.0112267703364208	-105.0160419	39.7555757	-105.0160494	39.7554749
-17266	3520	4261	0.200318193124263	0.200318193124263	-104.961154	39.6983849	-104.9611486	39.6965834
-18444	10290	1124	0.0512555936349529	0.0512555936349529	-105.0410717	39.7607688	-105.0404721	39.7607638
-17645	7	9825	0.783906819132393	0.783906819132393	-104.9443453	39.7800941	-104.9535187	39.7801156
-18721	5864	1312	0.178403401011926	0.178403401011926	-105.0343073	39.7149733	-105.0342968	39.7133689
-18408	6096	10287	0.0607868213781131	0.0607868213781131	-105.0292309	39.760844	-105.0292196	39.7613906
-17821	10187	10188	0.0373456729353608	0.0373456729353608	-105.0006185	39.7636303	-105.000993	39.7638033
-17849	2817	1418	0.198773063708036	0.198773063708036	-104.9993302	39.7801544	-104.9993559	39.7819419
-17914	4748	4144	0.180736428235498	0.180736428235498	-104.9856194	39.7225378	-104.9856225	39.7209124
-17915	4144	2362	0.17239723292509	0.17239723292509	-104.9856225	39.7209124	-104.9856171	39.719362
-18664	5184	5652	0.105551381348891	0.105551381348891	-105.0378224	39.7245345	-105.0378346	39.7254837
-18600	10333	10334	0.176228489643034	0.176228489643034	-105.0255419	39.7245857	-105.027524	39.725019
-18763	10341	10340	0.0478284118767837	0.0478284118767837	-105.0049362	39.7395329	-105.0043791	39.7395716
-18822	10356	10117	0.120644655146847	0.120644655146847	-105.0153708	39.7415577	-105.0153883	39.7404728
-12967	1825	1881	0.094094502294363	0.094094502294363	-105.0069351	39.7456267	-105.0074729	39.746365
-19280	10465	10466	0.126391742395325	0.126391742395325	-104.9873778	39.7399976	-104.988856	39.7399993
-19156	8422	10431	0.296704595839795	0.296704595839795	-105.0135792	39.7398604	-105.0144289	39.7424475
-19440	7907	10492	0.0345487307061229	0.0345487307061229	-104.9911419	39.7111606	-104.991144	39.7108499
-20295	10709	10710	0.0460287189373458	0.0460287189373458	-105.0445556	39.7732923	-105.0441026	39.7735162
-3578	3435	3436	0.0484142710611121	0.0484142710611121	-105.0346033	39.7779525	-105.0346033	39.7783879
-3579	3436	2495	0.0837858518069818	0.0837858518069818	-105.0346033	39.7783879	-105.0346	39.7791414
-3580	2495	3437	0.120116992356444	0.120116992356444	-105.0346	39.7791414	-105.0346118	39.7802216
-3581	3437	2842	0.00242442592962248	0.00242442592962248	-105.0346118	39.7802216	-105.0346113	39.7802434
-14124	506	3659	0.275685944218073	0.275685944218073	-104.9486568	39.747653	-104.9461809	39.7460646
-16901	3513	74	0.203700975919817	0.203700975919817	-104.9657993	39.6983855	-104.9657864	39.7002174
-18139	6038	10260	0.200840451178757	0.200840451178757	-105.0164173	39.7856269	-105.0164142	39.7874331
-19824	7641	5603	0.172193293465978	0.172193293465978	-105.0009116	39.7273175	-105.0016041	39.7258634
-19832	10652	10653	0.149094174776889	0.149094174776889	-105.0399184	39.7398025	-105.0399056	39.7384617
-16543	3555	814	0.153171011691858	0.153171011691858	-104.9751506	39.7546225	-104.9751505	39.753245
-20427	10755	10788	0.051994279761698	0.051994279761698	-105.0213448	39.7585398	-105.0218514	39.7587986
-11503	6094	2973	0.264851184287827	0.264851184287827	-105.027568	39.7608513	-105.0275907	39.7584695
-11438	8034	511	0.21998121248842	0.21998121248842	-105.0287237	39.7840235	-105.0312479	39.7836347
-16767	7290	3183	0.0591297362625136	0.0591297362625136	-104.9546694	39.7017867	-104.955269	39.7020512
-20517	10806	10844	0.0093521291785604	0.0093521291785604	-105.0163557	39.7585125	-105.0164651	39.7585116
-18290	6889	6752	0.139920838374264	0.139920838374264	-105.0259388	39.7651274	-105.0275758	39.7651202
-11434	8077	8253	0.0508611139110148	0.0508611139110148	-105.0348588	39.7833346	-105.0342653	39.7832999
-20513	10060	10809	0.00760770059759869	0.00760770059759869	-105.0193133	39.7576622	-105.0193936	39.7576917
-18366	7716	7754	0.0519727898310098	0.0519727898310098	-105.0259442	39.7669727	-105.0259422	39.7665053
-11784	8036	2685	0.144743408596787	0.144743408596787	-104.9787817	39.7535131	-104.9799803	39.7525937
-11570	8321	7713	0.150502362587478	0.150502362587478	-105.0304907	39.7580283	-105.0304918	39.7566748
-18376	8353	6069	0.193914067776721	0.193914067776721	-105.0398199	39.7838754	-105.039828	39.7856193
-12066	8533	8534	0.0445577347958965	0.0445577347958965	-104.9542138	39.7458945	-104.9544306	39.7462589
-16678	9979	9981	0.0909471727810372	0.0909471727810372	-105.0090565	39.7415049	-105.0080856	39.741839
-20808	10948	8326	0.017351380837649	0.017351380837649	-105.0291285	39.7622441	-105.029018	39.7621132
-13031	590	8926	0.147745966959296	0.147745966959296	-104.9910794	39.7792543	-104.989367	39.779071
-18483	9138	9139	0.0109683239632665	0.0109683239632665	-105.0432544	39.7511117	-105.0431263	39.7511062
-16502	3167	9925	0.137835608828632	0.137835608828632	-105.00401	39.7438456	-105.004838	39.7449092
-16961	10043	10044	0.075399787572802	0.075399787572802	-105.0160494	39.7554749	-105.0165756	39.7549307
-17393	67	3508	0.205321571793414	0.205321571793414	-104.9681458	39.7002288	-104.9681486	39.6983823
-17395	68	7304	0.202979892499458	0.202979892499458	-104.9680761	39.7002293	-104.9680922	39.7020547
-17650	303	395	0.11664951410225	0.11664951410225	-104.9380643	39.7800108	-104.9367017	39.7800737
-18596	10330	1845	0.0286669821878414	0.0286669821878414	-105.0312337	39.7211002	-105.031231	39.721358
-18996	5601	9265	0.00587624613864547	0.00587624613864547	-105.0016014	39.7209311	-105.0016701	39.7209304
-19117	402	10431	0.249198506812358	0.249198506812358	-105.0124556	39.7407982	-105.0144289	39.7424475
-19489	4703	10441	0.0209493756701814	0.0209493756701814	-104.9883469	39.709334	-104.9883481	39.7091456
-19929	9514	10680	0.206733607617385	0.206733607617385	-105.0375666	39.7403293	-105.0375666	39.7384701
-20583	10849	9338	0.00790665036605531	0.00790665036605531	-105.0250742	39.7612881	-105.0251667	39.7612881
-20193	10707	9813	0.31051590829715	0.31051590829715	-104.9886248	39.7811587	-104.9922437	39.7814112
-19738	9472	4893	0.184563607099297	0.184563607099297	-104.9456312	39.7367775	-104.9456205	39.7351177
-19739	4893	9418	0.161581410791365	0.161581410791365	-104.9456205	39.7351177	-104.9456339	39.7336646
-19740	9418	955	0.17512104217346	0.17512104217346	-104.9456339	39.7336646	-104.9456366	39.7320897
-19741	955	8865	0.17730267158364	0.17730267158364	-104.9456366	39.7320897	-104.9456473	39.7304952
-19745	4908	6614	0.202025102521769	0.202025102521769	-104.9338415	39.7346803	-104.9338724	39.736497
-19746	6614	9456	0.193906231686937	0.193906231686937	-104.9338724	39.736497	-104.9338436	39.7382407
-19747	9456	10644	0.207835763228408	0.207835763228408	-104.9338436	39.7382407	-104.933817	39.7401097
-19748	10644	647	0.139231068042996	0.139231068042996	-104.933817	39.7401097	-104.9337694	39.7413613
-19807	7868	3718	0.103509284327612	0.103509284327612	-104.9969607	39.7193475	-104.9969447	39.7184167
-19756	9305	1209	0.168197350020426	0.168197350020426	-104.942383	39.7256045	-104.9423696	39.7271171
-19906	9507	10678	0.206369047895258	0.206369047895258	-105.0328316	39.7403209	-105.0328432	39.738465
-17115	582	4052	0.0200066549889732	0.0200066549889732	-104.9577579	39.7479349	-104.9579299	39.7478129
-20290	10700	10701	0.0224013855081139	0.0224013855081139	-105.0445771	39.7731256	-105.0447555	39.7732732
-15856	9738	9733	0.00602831355714784	0.00602831355714784	-105.0423031	39.7306156	-105.0423259	39.7305643
-16390	9811	3033	0.00758642111179705	0.00758642111179705	-104.9701397	39.7026686	-104.9700513	39.702674
-17208	234	10075	0.0065072113132931	0.0065072113132931	-104.9688514	39.6965865	-104.9688448	39.6965282
-18209	3991	6766	0.202297976338321	0.202297976338321	-105.0299548	39.7716681	-105.0275892	39.7716046
-314	322	323	0.0362830323344	0.0362830323344	-105.0158044	39.7515055	-105.0156986	39.7518215
-17944	10224	7938	0.0484797623817722	0.0484797623817722	-104.9867731	39.7252057	-104.9868244	39.7256399
-11519	657	658	0.200633396770054	0.200633396770054	-105.0322612	39.758985	-105.0299141	39.7589753
-18400	7187	1425	0.131517435591527	0.131517435591527	-105.0386558	39.7832674	-105.0386719	39.7820847
-16448	9905	9906	0.00998689980616885	0.00998689980616885	-104.9731684	39.7001285	-104.9731572	39.7002179
-1705	1726	1727	0.0778502303245676	0.0778502303245676	-105.0185407	39.6908154	-105.0194505	39.690822
-19817	3729	10647	0.0543545423636727	0.0543545423636727	-105.0028319	39.7300118	-105.0021963	39.7300097
-20793	10938	8908	0.0180004191395181	0.0180004191395181	-105.028778	39.7621634	-105.0289792	39.7622112
-19241	8221	10460	0.0833729876311698	0.0833729876311698	-104.9936301	39.74071	-104.9942613	39.7401385
-18639	5180	2582	0.17723417320802	0.17723417320802	-105.0345542	39.7245247	-105.0345489	39.7229308
-20291	10701	10703	0.028889965052559	0.028889965052559	-105.0447555	39.7732732	-105.0450568	39.773391
-19963	4945	7404	0.157747728004848	0.157747728004848	-104.9951594	39.7179476	-104.9945842	39.7165997
-5109	4628	4629	0.132844583260552	0.132844583260552	-105.0189404	39.7729351	-105.0189408	39.7741298
-13926	8916	8922	0.136369708465648	0.136369708465648	-104.9907275	39.7728705	-104.9912716	39.7717176
-19964	7404	10415	0.200029723937468	0.200029723937468	-104.9945842	39.7165997	-104.9945762	39.7148008
-12274	8517	8518	0.0318537260898596	0.0318537260898596	-105.0069509	39.7552605	-105.0071312	39.7555112
-302	310	311	0.0714603355500818	0.0714603355500818	-104.9792332	39.7786848	-104.9786416	39.779139
-307	315	316	0.0430385391585726	0.0430385391585726	-105.0132442	39.7253524	-105.0137199	39.7254787
-333	333	334	0.130005791781119	0.130005791781119	-104.9270337	39.7763519	-104.9284284	39.775885
-501	338	339	0.0809671757461818	0.0809671757461818	-104.9880444	39.7401037	-104.9873725	39.7395906
-337	340	336	0.244398847800565	0.244398847800565	-104.9379355	39.7804643	-104.9390909	39.7824749
-339	341	342	0.368758396632831	0.368758396632831	-105.0154562	39.7336245	-105.0138715	39.7367088
-341	343	344	0.267836247641829	0.267836247641829	-105.0125925	39.7554572	-105.0150427	39.753956
-1553	1578	1579	0.0969614959298273	0.0969614959298273	-105.0401129	39.6876594	-105.0411657	39.6879819
-360	362	363	0.19757055700413	0.19757055700413	-105.0051577	39.6892299	-105.0049362	39.6874613
-361	363	358	0.235481235248911	0.235481235248911	-105.0049362	39.6874613	-105.0034646	39.6856718
-365	366	367	0.102920688901431	0.102920688901431	-104.9601224	39.7799975	-104.9589982	39.7796654
-374	376	377	0.135433574317766	0.135433574317766	-105.0213674	39.7753467	-105.0213949	39.7741289
-376	378	379	0.134391053348824	0.134391053348824	-105.019844	39.7729352	-105.019823	39.7717267
-485	478	486	0.209563350313202	0.209563350313202	-105.0170811	39.7459783	-105.0180607	39.7477059
-489	489	490	0.0633762863456435	0.0633762863456435	-104.9407865	39.7473869	-104.9415277	39.7473958
-491	491	492	0.0663732872105415	0.0663732872105415	-104.9407607	39.7492347	-104.9415359	39.749202
-493	493	494	0.169203096380544	0.169203096380544	-104.994193	39.7810897	-104.992407	39.7804327
-495	5	495	0.258130691528307	0.258130691528307	-104.9373334	39.780183	-104.9399882	39.7812905
-496	495	496	0.152370734557831	0.152370734557831	-104.9399882	39.7812905	-104.9404434	39.7826154
-523	518	519	0.337507977198885	0.337507977198885	-104.9409175	39.7837817	-104.9416292	39.7807961
-525	520	521	0.106662672722042	0.106662672722042	-105.0028259	39.7312673	-105.0040731	39.7312549
-527	522	523	0.0555974633225448	0.0555974633225448	-104.947535	39.703187	-104.947535	39.702687
-529	524	525	0.0282350762510443	0.0282350762510443	-104.9493835	39.780399	-104.9497096	39.7804399
-530	525	526	0.0218806529722405	0.0218806529722405	-104.9497096	39.7804399	-104.9499002	39.7803085
-532	527	397	0.320431501428441	0.320431501428441	-105.009688	39.7575578	-105.0131625	39.7564763
-11515	270	528	0.19992365959325	0.19992365959325	-105.029923	39.7598619	-105.0322618	39.7598749
-535	529	530	0.455513641378482	0.455513641378482	-105.0102365	39.7542807	-105.0085506	39.7581668
-537	531	532	0.375956762810707	0.375956762810707	-105.0148477	39.7535401	-105.010541	39.7542249
-11371	7972	290	0.0119699038475456	0.0119699038475456	-105.0052958	39.7614779	-105.0053845	39.7613946
-14734	4868	2218	0.161837248854237	0.161837248854237	-104.9758386	39.7351502	-104.9758646	39.7336949
-6872	5877	5878	0.0844725820315708	0.0844725820315708	-105.0442509	39.6917193	-105.045238	39.6917061
-16249	9860	8753	0.202765718025687	0.202765718025687	-104.9529332	39.6929471	-104.9529431	39.6947706
-16250	8753	9861	0.201364638358659	0.201364638358659	-104.9529431	39.6947706	-104.9529333	39.6965815
-16251	9861	3662	0.165177264018871	0.165177264018871	-104.9529333	39.6965815	-104.9517941	39.6977808
-20720	9398	9340	0.00984702702877527	0.00984702702877527	-105.0252853	39.7620928	-105.0251701	39.7620923
-16256	9863	8751	0.202603541868936	0.202603541868936	-104.9552587	39.6929589	-104.9552399	39.6947809
-16260	3650	88	0.266027674120579	0.266027674120579	-104.957148	39.7023062	-104.9586741	39.7002217
-16261	88	3524	0.203075294530693	0.203075294530693	-104.9586741	39.7002217	-104.9586741	39.6983954
-16262	3524	9864	0.20046430405241	0.20046430405241	-104.9586741	39.6983954	-104.9586848	39.6965926
-16263	9864	6517	0.135079896017257	0.135079896017257	-104.9586848	39.6965926	-104.9581176	39.6954589
-19523	6855	10544	0.00712022213135496	0.00712022213135496	-104.9888037	39.7102452	-104.9888064	39.7101812
-19524	10544	10545	0.0729342151704198	0.0729342151704198	-104.9888064	39.7101812	-104.9888118	39.7095253
-19526	10427	10546	0.0076995400840501	0.0076995400840501	-104.9883457	39.7095201	-104.9884357	39.7095211
-19527	10546	10545	0.0321755552809886	0.0321755552809886	-104.9884357	39.7095211	-104.9888118	39.7095253
-19528	10545	10547	0.0194542890583841	0.0194542890583841	-104.9888118	39.7095253	-104.9890392	39.7095279
-19529	10547	10548	0.0207030648178635	0.0207030648178635	-104.9890392	39.7095279	-104.9892812	39.7095305
-19530	10548	10543	0.0190435691175833	0.0190435691175833	-104.9892812	39.7095305	-104.9895038	39.709533
-19531	10543	10549	0.0747704686946873	0.0747704686946873	-104.9895038	39.709533	-104.9897237	39.7101838
-19532	10549	6859	0.00739470505760699	0.00739470505760699	-104.9897237	39.7101838	-104.9897244	39.7102503
-19543	10555	10556	0.0878912692065361	0.0878912692065361	-104.9890509	39.7084053	-104.9890591	39.7076149
-19544	10556	7460	0.0082175900444136	0.0082175900444136	-104.9890591	39.7076149	-104.9890599	39.707541
-11808	8395	2692	0.146729521611774	0.146729521611774	-104.9838316	39.7536605	-104.9826233	39.7545977
-19546	6852	10557	0.00689466829919516	0.00689466829919516	-104.9881056	39.7102414	-104.9880964	39.7101798
-19547	10557	10558	0.00988642805887056	0.00988642805887056	-104.9880964	39.7101798	-104.9880982	39.7100909
-19548	10558	10559	0.0350073244923259	0.0350073244923259	-104.9880982	39.7100909	-104.9881037	39.7097761
-19550	10409	10559	0.0205641181514586	0.0205641181514586	-104.9883441	39.7097759	-104.9881037	39.7097761
-343	345	346	0.0953881878570937	0.0953881878570937	-105.0067949	39.727165	-105.0077031	39.726667
-357	359	360	0.0408490640041322	0.0408490640041322	-105.0015512	39.6890589	-105.0016107	39.6894234
-359	361	362	0.026041104546106	0.026041104546106	-105.0051297	39.6894631	-105.0051577	39.6892299
-19800	8772	7638	0.176309543452907	0.176309543452907	-104.9969955	39.7289027	-104.9969636	39.7273173
-19802	6235	5200	0.174765267300994	0.174765267300994	-104.9969633	39.7256958	-104.9969602	39.7241241
-14862	8517	9439	0.0489472304938478	0.0489472304938478	-105.0069509	39.7552605	-105.0065078	39.7555393
-14864	9387	9440	0.0279990514780242	0.0279990514780242	-105.0032834	39.7589279	-105.0029559	39.7589235
-206	104	218	0.105140809305177	0.105140809305177	-104.9874778	39.7002508	-104.9862918	39.700003
-207	218	219	0.425726992195474	0.425726992195474	-104.9862918	39.700003	-104.9829912	39.6971378
-208	219	220	0.341194420964085	0.341194420964085	-104.9829912	39.6971378	-104.9801989	39.6949471
-564	250	558	0.137167107757782	0.137167107757782	-104.998399	39.69737	-104.996796	39.697349
-566	559	560	0.116737480647973	0.116737480647973	-104.9838121	39.7666622	-104.9837994	39.767712
-570	563	564	0.00248176882120935	0.00248176882120935	-104.9854438	39.7392378	-104.9854426	39.7392155
-571	564	565	0.0167681949380125	0.0167681949380125	-104.9854426	39.7392155	-104.9854426	39.7390647
-573	566	248	0.898480310845601	0.898480310845601	-104.9751917	39.6906986	-104.966468	39.6862015
-577	569	570	0.20355346310439	0.20355346310439	-104.985642	39.6966206	-104.9856433	39.69479
-578	570	571	0.196730394721169	0.196730394721169	-104.9856433	39.69479	-104.9857141	39.6930216
-579	571	572	0.203615183123948	0.203615183123948	-104.9857141	39.6930216	-104.9856956	39.6911905
-580	572	573	0.198181200751108	0.198181200751108	-104.9856956	39.6911905	-104.9857184	39.6894083
-14119	4047	3768	0.167133877022618	0.167133877022618	-104.9449621	39.7476682	-104.9443957	39.7462296
-16964	10030	10041	0.01368783886441	0.01368783886441	-105.0158154	39.755672	-105.0159755	39.75567
-17397	72	7305	0.205159206156883	0.205159206156883	-104.9669067	39.7002209	-104.9669227	39.7020659
-18238	8494	6764	0.145768349374275	0.145768349374275	-105.0258959	39.7706651	-105.0276005	39.7707095
-19608	10515	10585	0.0689638415978994	0.0689638415978994	-104.9902726	39.7086173	-104.9910787	39.7086267
-18764	10340	10339	0.0412859123428405	0.0412859123428405	-105.0043791	39.7395716	-105.0047672	39.7397925
-18823	10117	10113	0.0135016334010227	0.0135016334010227	-105.0153883	39.7404728	-105.0153589	39.7403535
-19106	10358	10371	0.165108727109845	0.165108727109845	-105.0144967	39.7392041	-105.0142451	39.7377319
-19491	10447	10448	0.0188144168916081	0.0188144168916081	-104.9883492	39.7089795	-104.9883503	39.7088103
-20034	9939	10087	0.139116164222915	0.139116164222915	-104.9739728	39.7494793	-104.9739701	39.7507304
-20585	10868	10860	0.0191301130167572	0.0191301130167572	-105.0245651	39.7612868	-105.02457	39.7611148
-16225	9851	8750	0.201618763717288	0.201618763717288	-104.9563865	39.692964	-104.9563891	39.6947772
-16226	8750	9852	0.201631838787549	0.201631838787549	-104.9563891	39.6947772	-104.9563784	39.6965905
-16227	9852	3528	0.200735525849656	0.200735525849656	-104.9563784	39.6965905	-104.9563972	39.6983957
-16228	3528	92	0.203732802229698	0.203732802229698	-104.9563972	39.6983957	-104.9565605	39.7002236
-16230	9853	7739	0.398547510805713	0.398547510805713	-104.9575595	39.6857489	-104.9575425	39.6893331
-16231	7739	5833	0.201507956367007	0.201507956367007	-104.9575425	39.6893331	-104.9575478	39.6911453
-16232	5833	9854	0.202599224942483	0.202599224942483	-104.9575478	39.6911453	-104.9575371	39.6929673
-16233	9854	8749	0.200829688485991	0.200829688485991	-104.9575371	39.6929673	-104.9575317	39.6947734
-16234	8749	9855	0.20199683583572	0.20199683583572	-104.9575317	39.6947734	-104.9575344	39.69659
-16235	9855	3526	0.201154889365918	0.201154889365918	-104.9575344	39.69659	-104.9575478	39.698399
-16236	3526	90	0.202910490655376	0.202910490655376	-104.9575478	39.698399	-104.9575583	39.7002238
-16237	90	3653	0.220628466219896	0.220628466219896	-104.9575583	39.7002238	-104.956048	39.7018321
-16241	5837	9857	0.2019855844315	0.2019855844315	-104.9540973	39.6911339	-104.9540974	39.6929504
-16242	9857	8752	0.20368896268505	0.20368896268505	-104.9540974	39.6929504	-104.9540866	39.6947822
-16243	8752	9858	0.200451227373991	0.200451227373991	-104.9540866	39.6947822	-104.9540893	39.6965849
-16244	9858	3660	0.230907711206458	0.230907711206458	-104.9540893	39.6965849	-104.9525869	39.69831
-16248	5838	9860	0.202297457689378	0.202297457689378	-104.9529386	39.6911278	-104.9529332	39.6929471
-19645	10602	7824	0.0258612340137364	0.0258612340137364	-104.9878742	39.7066509	-104.9875719	39.7066529
-363	364	365	0.559719374351914	0.559719374351914	-104.9703166	39.6886511	-104.9756534	39.6915619
-19907	10678	9721	0.0996291174385701	0.0996291174385701	-105.0328432	39.738465	-105.0334117	39.7376829
-506	500	501	0.0135415609654236	0.0135415609654236	-105.0016511	39.7130338	-105.0014928	39.7130323
-561	555	249	0.135203722470136	0.135203722470136	-104.9967877	39.6982448	-104.998368	39.698242
-11580	1888	1889	0.200666363671928	0.200666363671928	-105.0346054	39.7616798	-105.0322578	39.7616855
-15798	2349	2131	0.0298025813439396	0.0298025813439396	-105.0225811	39.7377111	-105.0228299	39.7378988
-539	533	534	0.0326127113197712	0.0326127113197712	-105.0123604	39.7549991	-105.0126456	39.7551939
-19790	4873	2223	0.160309891999679	0.160309891999679	-104.9724077	39.7351513	-104.972405	39.7337096
-19791	2223	939	0.184480311036498	0.184480311036498	-104.972405	39.7337096	-104.972385	39.7320506
-19793	6601	8056	0.176023947078255	0.176023947078255	-105.0008954	39.7320882	-105.0009061	39.7305052
-18090	1076	4197	0.0860162512015724	0.0860162512015724	-105.009052	39.7857306	-105.0081572	39.7853762
-19867	5588	10668	0.0462472353637014	0.0462472353637014	-105.0439294	39.7354289	-105.0433886	39.7354236
-19868	10668	3867	0.0484404910203503	0.0484404910203503	-105.0433886	39.7354236	-105.0428222	39.7354157
-16756	10007	10009	0.110124788745591	0.110124788745591	-104.9516233	39.6981848	-104.9506326	39.6988171
-20270	10704	10719	0.0406376536123098	0.0406376536123098	-105.0445781	39.7730214	-105.0441026	39.7730223
-20705	10912	9190	0.00712573261129369	0.00712573261129369	-105.0253734	39.7619406	-105.0253671	39.7620045
-18194	10279	8107	0.203288621260674	0.203288621260674	-105.0363572	39.7802082	-105.0363465	39.77838
-20434	10793	8352	0.0594105399024928	0.0594105399024928	-105.023633	39.7596708	-105.024257	39.7599061
-458	461	462	0.198429530791892	0.198429530791892	-104.9888564	39.7783921	-104.9880253	39.7800584
-460	463	464	0.0462542784573108	0.0462542784573108	-104.9733885	39.7038655	-104.9728479	39.7038584
-462	465	466	0.144675049024067	0.144675049024067	-104.939057	39.6947168	-104.9373661	39.6947234
-17120	4175	1798	0.171169073462998	0.171169073462998	-104.9775465	39.6932215	-104.9775097	39.6947606
-464	265	467	0.159364568867095	0.159364568867095	-104.9480386	39.6896766	-104.9480386	39.6911098
-18157	6034	6309	0.201831068920315	0.201831068920315	-105.0129545	39.7856166	-105.0129465	39.7874317
-4816	4421	3998	0.17545447475176	0.17545447475176	-105.0299945	39.7149702	-105.0299945	39.7165481
-4922	4493	4494	0.0159365819430951	0.0159365819430951	-105.0052303	39.740093	-105.0052335	39.7402363
-5210	4702	4703	0.066548442936564	0.066548442936564	-104.987569	39.7093263	-104.9883469	39.709334
-7813	6447	2400	0.0150551554736642	0.0150551554736642	-104.9404516	39.7737178	-104.9404255	39.7738517
-16544	814	7835	0.140306546265127	0.140306546265127	-104.9751505	39.753245	-104.975145	39.7519832
-12308	8643	8644	0.0690537561530006	0.0690537561530006	-105.0079172	39.7541523	-105.0077069	39.7535527
-17649	227	303	0.195568266331611	0.195568266331611	-104.9403515	39.7799498	-104.9380643	39.7800108
-7918	6517	6518	0.0762261509888863	0.0762261509888863	-104.9581176	39.6954589	-104.9581241	39.6947734
-17937	10218	10222	0.0404413602972235	0.0404413602972235	-104.9865379	39.7248787	-104.9867449	39.7252057
-17938	10222	10219	0.0368645715567014	0.0368645715567014	-104.9867449	39.7252057	-104.986739	39.7248742
-8128	6642	6643	0.177723704306915	0.177723704306915	-104.9985895	39.7273172	-104.998623	39.7289153
-17941	10223	10220	0.00249551892827132	0.00249551892827132	-104.9868558	39.7248491	-104.9868576	39.7248715
-17943	10222	10224	0.00241172243246435	0.00241172243246435	-104.9867449	39.7252057	-104.9867731	39.7252057
-8312	6745	6746	0.136482587401898	0.136482587401898	-105.0268172	39.7511856	-105.0268257	39.752413
-18754	7413	5870	0.17727401445854	0.17727401445854	-105.0403103	39.7165576	-105.0402918	39.7149634
-18755	5870	1322	0.17769011554913	0.17769011554913	-105.0402918	39.7149634	-105.0402863	39.7133654
-19718	10634	10631	0.0223829659698328	0.0223829659698328	-105.0040521	39.7345718	-105.0042586	39.7344481
-19728	5372	10636	0.0113147577104563	0.0113147577104563	-105.0036801	39.7337035	-105.0036962	39.7338045
-11655	8352	8354	0.0940321887930874	0.0940321887930874	-105.024257	39.7599061	-105.0236698	39.7606212
-12943	1331	8882	0.0183910567310257	0.0183910567310257	-105.0019226	39.7434049	-105.0018196	39.7432597
-13038	8921	8931	0.0826069320981336	0.0826069320981336	-104.9945399	39.7685832	-104.9953405	39.768167
-15877	9002	8833	0.267177283911404	0.267177283911404	-105.0410599	39.7349868	-105.0441417	39.7353828
-13924	219	9234	0.1533276461132	0.1533276461132	-104.9829912	39.6971378	-104.9818516	39.6960736
-14664	6543	4752	0.198706695176553	0.198706695176553	-104.9723281	39.7237476	-104.9723195	39.7219606
-14064	5103	7930	0.0939071679637344	0.0939071679637344	-104.9499914	39.7083084	-104.949883	39.707468
-15409	9587	9588	0.102439715732603	0.102439715732603	-105.0050252	39.740468	-105.0043197	39.7412126
-17271	7309	3269	0.20118551117184	0.20118551117184	-104.9622856	39.7020498	-104.962291	39.7038591
-19597	10581	10493	0.00740818165509206	0.00740818165509206	-104.9910581	39.7106676	-104.9911447	39.7106683
-17856	10198	10199	0.0985751913110846	0.0985751913110846	-104.9752368	39.7863791	-104.9742929	39.7858694
-17916	2362	5630	0.113519118424065	0.113519118424065	-104.9856171	39.719362	-104.9856145	39.7183411
-17920	5276	3075	0.102745112375949	0.102745112375949	-104.9856735	39.713872	-104.9856788	39.712948
-19227	10451	10452	0.0446144989444803	0.0446144989444803	-104.9904508	39.7418286	-104.9908137	39.7415403
-20035	10087	7837	0.13791526067504	0.13791526067504	-104.9739701	39.7507304	-104.9739674	39.7519707
-418	417	418	0.0816052997413777	0.0816052997413777	-104.9458794	39.7444723	-104.9449438	39.7443271
-20262	5750	10721	0.00796157509542264	0.00796157509542264	-105.0450566	39.7729489	-105.0450564	39.7730205
-3789	1821	3611	0.0958389453890581	0.0958389453890581	-104.9293577	39.7647208	-104.9293567	39.7655827
-3790	3611	2772	0.203476606019223	0.203476606019223	-104.9293567	39.7655827	-104.9293492	39.7674126
-3793	3613	3614	0.132946325644283	0.132946325644283	-104.9293234	39.7702164	-104.9293312	39.771412
-3796	3616	3617	0.204716112848492	0.204716112848492	-104.9804184	39.6930078	-104.9804371	39.6911668
-3797	3617	3618	0.195623928497501	0.195623928497501	-104.9804371	39.6911668	-104.98046	39.6894076
-427	426	427	0.387676950856037	0.387676950856037	-105.0252144	39.7427283	-105.028564	39.7403785
-429	428	429	0.0146752084107322	0.0146752084107322	-104.9949826	39.7671257	-104.9948109	39.7671257
-430	429	430	0.036859949213086	0.036859949213086	-104.9948109	39.7671257	-104.9943797	39.7671201
-431	430	431	0.0704161362424121	0.0704161362424121	-104.9943797	39.7671201	-104.9935559	39.7671283
-432	431	432	0.590519007108071	0.590519007108071	-104.9935559	39.7671283	-104.9902144	39.7717766
-4284	2975	658	0.052473064124837	0.052473064124837	-105.0299157	39.7585034	-105.0299141	39.7589753
-4286	1885	270	0.0500105419976734	0.0500105419976734	-105.0299322	39.7594122	-105.029923	39.7598619
-4287	270	4027	0.0498040073250557	0.0498040073250557	-105.029923	39.7598619	-105.0299108	39.7603097
-4288	4027	4028	0.0589001114271481	0.0589001114271481	-105.0299108	39.7603097	-105.0299124	39.7608394
-4289	4028	4029	0.0431017175700998	0.0431017175700998	-105.0299124	39.7608394	-105.0299179	39.761227
-4360	2497	4085	0.0418616206629569	0.0418616206629569	-105.0102009	39.7838273	-105.0106908	39.7838273
-4362	4086	4087	0.0498519055829618	0.0498519055829618	-105.0112057	39.7838279	-105.0117891	39.7838304
-4375	4097	4098	0.0489802870312836	0.0489802870312836	-105.0187521	39.7838972	-105.0193253	39.7838997
-4376	4098	4099	0.0495757400917575	0.0495757400917575	-105.0193253	39.7838997	-105.0199054	39.783907
-4377	4099	1289	0.0496665540814756	0.0496665540814756	-105.0199054	39.783907	-105.0204845	39.7839453
-4388	1566	4105	0.137573017409453	0.137573017409453	-104.9507995	39.7776799	-104.9507895	39.7789171
-4391	695	4107	0.201385149795677	0.201385149795677	-104.9512663	39.7419839	-104.9512653	39.743795
-4393	4108	4109	0.0199664273987825	0.0199664273987825	-104.9512465	39.7179366	-104.9511309	39.7180926
-14838	3410	8377	0.101986580237	0.101986580237	-105.034614	39.754856	-105.035807	39.7548626
-14839	8377	7446	0.0983251649921582	0.0983251649921582	-105.035807	39.7548626	-105.0369572	39.7548626
-14840	7446	7164	0.102406305295689	0.102406305295689	-105.0369572	39.7548626	-105.0381551	39.754855
-14842	7777	9006	0.0511080596626327	0.0511080596626327	-105.0393054	39.7548506	-105.0399032	39.754857
-14843	9006	1118	0.0498086503332092	0.0498086503332092	-105.0399032	39.754857	-105.0404858	39.7548633
-14844	1118	9427	0.0503946729534928	0.0503946729534928	-105.0404858	39.7548633	-105.0410753	39.7548663
-14845	9427	7495	0.0500441160343634	0.0500441160343634	-105.0410753	39.7548663	-105.0416607	39.7548692
-14846	7495	9428	0.0499148481472719	0.0499148481472719	-105.0416607	39.7548692	-105.0422446	39.7548692
-16340	8082	9873	0.204288977647072	0.204288977647072	-104.9430328	39.7615337	-104.9406644	39.7617801
-16284	2160	2852	0.333640243849923	0.333640243849923	-104.9704959	39.6950911	-104.972242	39.697774
-16319	7334	9870	0.105486497466828	0.105486497466828	-104.9548825	39.7619805	-104.9561166	39.7619811
-16320	9870	3330	0.104529154175209	0.104529154175209	-104.9561166	39.7619811	-104.9573395	39.7619816
-16321	3330	5008	0.105000246042652	0.105000246042652	-104.9573395	39.7619816	-104.9585679	39.7619857
-16322	5008	9871	0.101110660676404	0.101110660676404	-104.9585679	39.7619857	-104.9597508	39.7619888
-16323	9871	6279	0.105691817248501	0.105691817248501	-104.9597508	39.7619888	-104.9609873	39.7619907
-16324	6279	9872	0.052158145666091	0.052158145666091	-104.9609873	39.7619907	-104.9615975	39.7619888
-16325	9872	1044	0.0524997416021315	0.0524997416021315	-104.9615975	39.7619888	-104.9622117	39.7619898
-16326	1044	3906	0.105460879039182	0.105460879039182	-104.9622117	39.7619898	-104.9634455	39.7619888
-16329	5403	7356	0.10569318364656	0.10569318364656	-104.9659547	39.7619898	-104.9671912	39.761995
-16330	7356	6784	0.104889107310835	0.104889107310835	-104.9671912	39.761995	-104.9684183	39.7619991
-16331	6784	5124	0.210810768544514	0.210810768544514	-104.9684183	39.7619991	-104.9708846	39.7620022
-20721	9340	10905	0.00789820611305507	0.00789820611305507	-105.0251701	39.7620923	-105.0250777	39.7620918
-20723	10753	9339	0.007875732855517	0.007875732855517	-105.0250779	39.761939	-105.0251698	39.7619441
-20728	9342	9396	0.0106743790650573	0.0106743790650573	-105.02517	39.7633265	-105.0252844	39.763365
-20729	9396	10915	0.00762676803615786	0.00762676803615786	-105.0252844	39.763365	-105.0253686	39.7633877
-20731	10886	10916	0.00379288018005415	0.00379288018005415	-105.0396293	39.7653159	-105.0396012	39.7652895
-20732	10916	10888	0.0491926355480291	0.0491926355480291	-105.0396012	39.7652895	-105.0396012	39.7648471
-20733	10888	10897	0.0175392611655491	0.0175392611655491	-105.0396012	39.7648471	-105.039396	39.7648479
-20735	5884	5882	0.0407543500383345	0.0407543500383345	-105.026131	39.7635199	-105.0256867	39.7633869
-20739	10916	10896	0.0428179717864665	0.0428179717864665	-105.0396012	39.7652895	-105.0393975	39.7656413
-19515	10538	10539	0.0270370607457707	0.0270370607457707	-104.9881977	39.7087839	-104.9878821	39.7087971
-19519	10540	10541	0.0721562499053708	0.0721562499053708	-104.9885677	39.7101805	-104.9885837	39.7095317
-19520	6858	10542	0.00731747119062453	0.00731747119062453	-104.9894917	39.710249	-104.9894904	39.7101832
-19521	10542	10543	0.072308027249243	0.072308027249243	-104.9894904	39.7101832	-104.9895038	39.709533
-19641	10598	10599	0.0410277962156296	0.0410277962156296	-104.9881774	39.7071587	-104.9879173	39.7068487
-19647	10527	10603	0.00759964014854772	0.00759964014854772	-104.9883695	39.7068128	-104.9882807	39.7068108
-8	8	9	0.136291899256532	0.136291899256532	-105.0236282	39.746344	-105.0252223	39.7463521
-9	9	10	0.137589063327607	0.137589063327607	-105.0252223	39.7463521	-105.0268316	39.7463558
-10	10	11	0.132825874246234	0.132825874246234	-105.0268316	39.7463558	-105.0283851	39.746369
-18420	9372	1692	0.204432374496239	0.204432374496239	-105.0410671	39.769441	-105.0410724	39.7676025
-18421	1692	6881	0.204488584881531	0.204488584881531	-105.0410724	39.7676025	-105.0410645	39.7657635
-279	289	290	0.0346246156131069	0.0346246156131069	-105.0056941	39.7615954	-105.0053845	39.7613946
-280	290	291	0.0090342150661118	0.0090342150661118	-105.0053845	39.7613946	-105.0052999	39.7613459
-287	297	298	0.583705095697001	0.583705095697001	-104.999633	39.7829256	-105.0063925	39.7836829
-288	298	299	0.306214311798175	0.306214311798175	-105.0063925	39.7836829	-105.0099714	39.7835424
-290	300	106	0.00724031766776508	0.00724031766776508	-104.931659	39.700286	-104.931654	39.700221
-16839	9888	10020	0.0079899169832474	0.0079899169832474	-104.9706065	39.7033361	-104.9706252	39.7032657
-292	301	302	0.137922345506014	0.137922345506014	-104.9405292	39.7778793	-104.939982	39.7790462
-293	302	303	0.195856797695859	0.195856797695859	-104.939982	39.7790462	-104.9380643	39.7800108
-295	304	305	0.071509984134022	0.071509984134022	-105.0045998	39.7618374	-105.0052248	39.7614099
-296	305	291	0.00958395052624692	0.00958395052624692	-105.0052248	39.7614099	-105.0052999	39.7613459
-298	306	307	0.132706668323714	0.132706668323714	-105.029097	39.762348	-105.0279141	39.763121
-300	308	309	0.180558406302622	0.180558406302622	-105.0162105	39.7255543	-105.0183133	39.7254091
-13564	3088	497	0.0577004807279618	0.0577004807279618	-105.0149714	39.7291028	-105.0147909	39.7286028
-549	543	426	0.352446625998258	0.352446625998258	-105.0222025	39.7405643	-105.0252144	39.7427283
-552	546	547	0.162031197296959	0.162031197296959	-104.9250834	39.7051054	-104.926976	39.7050482
-555	549	550	0.0907371722674166	0.0907371722674166	-104.999187	39.7014274	-104.998222	39.701766
-16080	9284	9816	0.896094060874208	0.896094060874208	-104.9725733	39.7796422	-104.962098	39.7800102
-922	936	937	0.0492564901299232	0.0492564901299232	-104.9740886	39.7320473	-104.9735126	39.732045
-923	937	938	0.0472982580528762	0.0472982580528762	-104.9735126	39.732045	-104.9729595	39.7320427
-924	938	939	0.0491354084196454	0.0491354084196454	-104.9729595	39.7320427	-104.972385	39.7320506
-925	939	940	0.0508720309451131	0.0508720309451131	-104.972385	39.7320506	-104.9717901	39.7320505
-926	940	941	0.0492045261244582	0.0492045261244582	-104.9717901	39.7320505	-104.9712147	39.7320508
-928	942	943	0.0497647165539241	0.0497647165539241	-104.9706365	39.7320717	-104.9700547	39.7320615
-929	943	944	0.0490705088651407	0.0490705088651407	-104.9700547	39.7320615	-104.969481	39.732052
-930	944	945	0.0603455693296164	0.0603455693296164	-104.969481	39.732052	-104.9687757	39.7320341
-931	946	947	0.0401316151990327	0.0401316151990327	-104.954535	39.732087	-104.9540658	39.7320945
-933	948	949	0.0998226264147839	0.0998226264147839	-104.9528876	39.7321058	-104.9517203	39.7320992
-934	949	950	0.0983576522120727	0.0983576522120727	-104.9517203	39.7320992	-104.9505701	39.7320992
-15935	9756	9757	0.156652526688463	0.156652526688463	-104.9962839	39.7001148	-104.9945244	39.7005048
-2725	2680	2681	0.0108684198063562	0.0108684198063562	-104.9781521	39.7512002	-104.9782507	39.7512619
-2726	2681	2682	0.048953084737917	0.048953084737917	-104.9782507	39.7512619	-104.9786543	39.7515742
-2727	2682	2683	0.0539629704453868	0.0539629704453868	-104.9786543	39.7515742	-104.9790985	39.751919
-2728	2683	2684	0.0523967582185389	0.0523967582185389	-104.9790985	39.751919	-104.9795298	39.7522538
-2730	2685	2686	0.0561874543205358	0.0561874543205358	-104.9799803	39.7525937	-104.9804627	39.7529369
-2731	2686	2687	0.0505746825733151	0.0505746825733151	-104.9804627	39.7529369	-104.9808835	39.7532566
-2732	2687	2688	0.0532702991765301	0.0532702991765301	-104.9808835	39.7532566	-104.9813184	39.7535997
-2733	2688	2689	0.0520434204860384	0.0520434204860384	-104.9813184	39.7535997	-104.9817462	39.7539327
-2734	2689	2690	0.0469426670134342	0.0469426670134342	-104.9817462	39.7539327	-104.9821311	39.7542338
-2735	2690	2691	0.0055983554055492	0.0055983554055492	-104.9821311	39.7542338	-104.9821794	39.7542678
-2736	2691	2692	0.0527791994653692	0.0527791994653692	-104.9821794	39.7542678	-104.9826233	39.7545977
-2737	2692	2693	0.0530982869497539	0.0530982869497539	-104.9826233	39.7545977	-104.9830605	39.7549369
-2738	2693	2694	0.0517656440902012	0.0517656440902012	-104.9830605	39.7549369	-104.9834919	39.7552636
-2740	2695	2696	0.0564222695417846	0.0564222695417846	-104.9839243	39.7555928	-104.984388	39.7559539
-2741	2696	2697	0.0491123681137852	0.0491123681137852	-104.984388	39.7559539	-104.9847927	39.7562674
-2743	2698	2563	0.102019026624601	0.102019026624601	-104.9872963	39.7637011	-104.9865077	39.7643898
-2745	2699	2700	0.132875620799413	0.132875620799413	-105.023737	39.7729356	-105.0236369	39.7741281
-2746	2700	2701	0.135383174760531	0.135383174760531	-105.0236369	39.7741281	-105.0236677	39.7753454
-2747	2701	2702	0.142428760025563	0.142428760025563	-105.0236677	39.7753454	-105.0236021	39.7766253
-2749	2703	2704	0.0110418183352839	0.0110418183352839	-105.0229204	39.7607336	-105.0229197	39.7608329
-3232	1186	3146	0.0222724242580952	0.0222724242580952	-104.9648143	39.7271028	-104.9648136	39.7273031
-3233	3146	3147	0.199414112058729	0.199414112058729	-104.9648136	39.7273031	-104.9648461	39.7290963
-3235	3148	3149	0.202164772668483	0.202164772668483	-104.9651624	39.7219764	-104.9651708	39.7201583
-3236	3149	3150	0.200873635711822	0.200873635711822	-104.9651708	39.7201583	-104.9651706	39.7183518
-3238	1549	3151	0.20099284178908	0.20099284178908	-104.9813041	39.7765427	-104.9812831	39.7783502
-3239	3151	284	0.102708547785912	0.102708547785912	-104.9812831	39.7783502	-104.9813127	39.7792736
-3241	3152	3153	0.190699299195112	0.190699299195112	-104.981211	39.7801495	-104.981211	39.7818645
-3242	3153	3154	0.20682256355895	0.20682256355895	-104.981211	39.7818645	-104.981211	39.7837245
-3244	3155	3156	0.180582058742099	0.180582058742099	-104.9811238	39.7224897	-104.9811324	39.7241137
-3245	3156	3157	0.169576673169674	0.169576673169674	-104.9811324	39.7241137	-104.9811181	39.7256387
-3246	3157	3158	0.182296097160239	0.182296097160239	-104.9811181	39.7256387	-104.9811306	39.7272781
-3247	3158	3159	0.198872141197801	0.198872141197801	-104.9811306	39.7272781	-104.9811297	39.7290666
-3248	3159	3160	0.150969541792736	0.150969541792736	-104.9811297	39.7290666	-104.9811325	39.7304243
-3250	3161	3162	0.20389937284006	0.20389937284006	-104.9814586	39.7164952	-104.9814669	39.7183289
-14826	8301	6748	0.0667725814392886	0.0667725814392886	-105.0260395	39.7548296	-105.0268206	39.7548296
-14827	6748	7911	0.0672145953526644	0.0672145953526644	-105.0268206	39.7548296	-105.0276068	39.7548215
-14828	7911	6148	0.0663282745787247	0.0663282745787247	-105.0276068	39.7548215	-105.0283827	39.754823
-258	257	266	0.0587628088830451	0.0587628088830451	-104.9487596	39.6897096	-104.9494463	39.6897162
-19749	647	7274	0.134298165118703	0.134298165118703	-104.9337694	39.7413613	-104.9337866	39.742569
-19750	7274	1989	0.0916188684792704	0.0916188684792704	-104.9337866	39.742569	-104.933775	39.7433929
-19751	1989	1973	0.0380843237979454	0.0380843237979454	-104.933775	39.7433929	-104.9337742	39.7437354
-19752	1973	4593	0.133556226393108	0.133556226393108	-104.9337742	39.7437354	-104.9337742	39.7449365
-19753	4593	6480	0.132288869732613	0.132288869732613	-104.9337742	39.7449365	-104.9337711	39.7461262
-19754	6480	2468	0.142585895231316	0.142585895231316	-104.9337711	39.7461262	-104.9337661	39.7474085
-19758	9421	959	0.172665861332853	0.172665861332853	-104.9434425	39.7336457	-104.9434319	39.7320929
-19759	959	10645	0.13147788241291	0.13147788241291	-104.9434319	39.7320929	-104.9434259	39.7309105
-19760	1208	9304	0.168127340065809	0.168127340065809	-104.9434426	39.7271196	-104.9434479	39.7256076
-20582	10869	10849	0.0156424449925145	0.0156424449925145	-105.0248912	39.7612876	-105.0250742	39.7612881
-19762	9148	5948	0.203948884455816	0.203948884455816	-104.9327781	39.7292306	-104.9327968	39.7310647
-19763	5948	5140	0.230511938313211	0.230511938313211	-104.9327968	39.7310647	-104.9325581	39.7331296
-19771	9419	957	0.173152824232778	0.173152824232778	-104.944537	39.7336514	-104.944539	39.7320942
-19772	957	8866	0.177567389214567	0.177567389214567	-104.944539	39.7320942	-104.9445422	39.7304973
-19773	8866	3772	0.153916736097948	0.153916736097948	-104.9445422	39.7304973	-104.9445477	39.7291131
-19774	3772	10250	0.199306990270457	0.199306990270457	-104.9445477	39.7291131	-104.9445396	39.7273207
-19776	5481	9962	0.172319939483889	0.172319939483889	-104.9592702	39.7383938	-104.9592628	39.7399435
-19784	10633	5611	0.0523352586472612	0.0523352586472612	-105.0021797	39.732604	-105.0015677	39.7326006
-19785	5611	10632	0.0574818788883128	0.0574818788883128	-105.0015677	39.7326006	-105.0008955	39.7325996
-19786	10632	3948	0.0628606527024246	0.0628606527024246	-105.0008955	39.7325996	-105.0001604	39.7325985
-19788	5471	9476	0.170862748175182	0.170862748175182	-104.9724345	39.7384108	-104.9724291	39.7368742
-19795	10242	7118	0.176747024157438	0.176747024157438	-104.9976043	39.7336771	-104.9975929	39.7352666
-19797	10241	6597	0.176287163937986	0.176287163937986	-104.9971028	39.7336811	-104.9970197	39.732097
-19798	6597	8052	0.177501084527478	0.177501084527478	-104.9970197	39.732097	-104.9970142	39.7305007
-19799	8052	8772	0.17769668863416	0.17769668863416	-104.9970142	39.7305007	-104.9969955	39.7289027
-20115	7697	7687	0.0337511699796145	0.0337511699796145	-104.9476781	39.7401632	-104.9472834	39.7401592
-19903	5589	10662	0.0571161687994488	0.0571161687994488	-105.0439287	39.736644	-105.0445966	39.7366511
-19904	10662	7532	0.0504117571952022	0.0504117571952022	-105.0445966	39.7366511	-105.0451861	39.7366574
-19905	7532	10677	0.0997820208770486	0.0997820208770486	-105.0451861	39.7366574	-105.0463515	39.7367034
-19909	2313	6581	0.0799825399923036	0.0799825399923036	-105.0128687	39.7314768	-105.0128679	39.7321961
-19911	9640	7119	0.178268282456568	0.178268282456568	-104.998165	39.7368735	-104.9981597	39.7352703
-19912	7119	10244	0.176467674531692	0.176467674531692	-104.9981597	39.7352703	-104.9981677	39.7336833
-19924	625	10679	0.208701850480872	0.208701850480872	-105.0357989	39.7365856	-105.0358012	39.7384625
-3596	897	3446	0.139044776802754	0.139044776802754	-104.9462766	39.7644635	-104.9462506	39.7657138
-3598	2803	3447	0.126707874592684	0.126707874592684	-104.9462404	39.7669537	-104.9462338	39.7680932
-3599	3447	3448	0.123301295397385	0.123301295397385	-104.9462338	39.7680932	-104.9462506	39.769202
-3601	3449	3450	0.173676950071542	0.173676950071542	-104.9461482	39.7162465	-104.9461569	39.7178084
-3602	3450	2355	0.178205364659248	0.178205364659248	-104.9461569	39.7178084	-104.9461715	39.719411
-3603	2355	3451	0.173197360497638	0.173197360497638	-104.9461715	39.719411	-104.9461741	39.7209686
-19562	10565	7475	0.0791516149409225	0.0791516149409225	-104.9895118	39.7091548	-104.9897492	39.7084668
-3604	3451	3452	0.173541943088937	0.173541943088937	-104.9461741	39.7209686	-104.9461731	39.7225293
-17079	9872	1162	0.139149030623918	0.139149030623918	-104.9615975	39.7619888	-104.9615772	39.7632401
-3605	3452	3453	0.1769778659128	0.1769778659128	-104.9461731	39.7225293	-104.9461741	39.7241209
-3606	3453	3454	0.165627970000561	0.165627970000561	-104.9461741	39.7241209	-104.946186	39.7256104
-3607	3454	1205	0.168543363105219	0.168543363105219	-104.946186	39.7256104	-104.9462015	39.7271261
-3608	1205	3455	0.0221544930319224	0.0221544930319224	-104.9462015	39.7271261	-104.9461963	39.7273253
-3609	3455	3456	0.199430319568372	0.199430319568372	-104.9461963	39.7273253	-104.9461853	39.7291188
-3610	3456	3457	0.153671457388635	0.153671457388635	-104.9461853	39.7291188	-104.946187	39.7305008
-3611	3457	954	0.177011997745418	0.177011997745418	-104.946187	39.7305008	-104.9461808	39.7320927
-3616	3461	3023	0.066721008314693	0.066721008314693	-104.9461758	39.7383438	-104.9461672	39.7389438
-3617	3023	609	0.0626815132610695	0.0626815132610695	-104.9461672	39.7389438	-104.9461712	39.7395075
-3618	609	3465	0.0706324711687883	0.0706324711687883	-104.9461712	39.7395075	-104.9461659	39.7401427
-3620	3466	3467	0.0872559719077514	0.0872559719077514	-104.9459057	39.7609696	-104.9459001	39.7617543
-3621	3467	3468	0.0185752884131515	0.0185752884131515	-104.9459001	39.7617543	-104.9458947	39.7619213
-3624	3470	3471	0.137381540377109	0.137381540377109	-104.9464883	39.7557063	-104.9464855	39.7569418
-3625	3471	3472	0.139227388345715	0.139227388345715	-104.9464855	39.7569418	-104.9464826	39.7581939
-3627	3473	2394	0.0888475437763938	0.0888475437763938	-104.9464666	39.7730919	-104.9464482	39.7738908
-3628	2394	3474	0.138668820339117	0.138668820339117	-104.9464482	39.7738908	-104.9464139	39.7751376
-3630	752	1572	0.142095074047717	0.142095074047717	-104.9464409	39.77641	-104.9464121	39.7776877
-3636	1922	3478	0.201186325897418	0.201186325897418	-104.9639994	39.7074818	-104.9639908	39.7056725
-3639	3479	78	0.204132972246117	0.204132972246117	-104.9639986	39.7020562	-104.9640072	39.7002204
-3640	78	3480	0.203867249894849	0.203867249894849	-104.9640072	39.7002204	-104.9640443	39.6983872
-3641	3480	3481	0.201309535256297	0.201309535256297	-104.9640443	39.6983872	-104.9640554	39.6965768
-3642	3481	3482	0.20059690465602	0.20059690465602	-104.9640554	39.6965768	-104.9640471	39.6947728
-3643	3482	3483	0.19983968701354	0.19983968701354	-104.9640471	39.6947728	-104.9640501	39.6929756
-3645	3484	3485	0.206291326448342	0.206291326448342	-104.9640755	39.691151	-104.9637153	39.6893166
-17801	8859	9953	0.0450786858997054	0.0450786858997054	-104.9873914	39.7526692	-104.9873896	39.7522638
-3647	1956	3486	0.372627158727207	0.372627158727207	-104.9295943	39.7085824	-104.9294222	39.7052339
-3649	3487	3488	0.176001514646942	0.176001514646942	-104.9293078	39.7162471	-104.9293331	39.7146644
-3652	3491	3492	0.0183360753269697	0.0183360753269697	-104.9293114	39.7113416	-104.929311	39.7111767
-3653	3492	1957	0.294352299971408	0.294352299971408	-104.929311	39.7111767	-104.9292853	39.7085296
-3655	1514	1794	0.180158106731211	0.180158106731211	-104.9278643	39.6960978	-104.9284394	39.6945392
-3657	3493	3494	0.410250831833552	0.410250831833552	-104.9285338	39.6930004	-104.9293234	39.6893613
-3658	3494	3495	0.80930180387284	0.80930180387284	-104.9293234	39.6893613	-104.929634	39.682087
-3660	3497	3498	0.0969369694749486	0.0969369694749486	-104.9488372	39.6983858	-104.9477042	39.6983792
-3661	3498	3499	0.0991356893770485	0.0991356893770485	-104.9477042	39.6983792	-104.9465455	39.6983726
-3662	3499	3500	0.0998795294298673	0.0998795294298673	-104.9465455	39.6983726	-104.9453782	39.6983858
-3663	3500	3501	0.0512305304785401	0.0512305304785401	-104.9453782	39.6983858	-104.9447794	39.6983858
-3664	3501	3502	0.04790242821524	0.04790242821524	-104.9447794	39.6983858	-104.9442195	39.6983858
-3665	3502	3503	0.0976724268185372	0.0976724268185372	-104.9442195	39.6983858	-104.943078	39.698399
-3666	3503	3504	0.099556042023676	0.099556042023676	-104.943078	39.698399	-104.9419144	39.6983911
-3667	3504	3505	0.0928685437479174	0.0928685437479174	-104.9419144	39.6983911	-104.940829	39.698381
-3668	3505	3506	0.0161263903021828	0.0161263903021828	-104.940829	39.698381	-104.9406406	39.6983765
-3670	3507	3508	0.0452502277318962	0.0452502277318962	-104.9686775	39.698382	-104.9681486	39.6983823
-3673	3510	3511	0.00276384344441178	0.00276384344441178	-104.9675508	39.6983827	-104.9675186	39.6983807
-3674	3511	3512	0.10075109326777	0.10075109326777	-104.9675186	39.6983807	-104.966341	39.698385
-3675	3512	3513	0.0463453549611142	0.0463453549611142	-104.966341	39.698385	-104.9657993	39.6983855
-3676	3513	3514	0.0488777906121745	0.0488777906121745	-104.9657993	39.6983855	-104.965228	39.698386
-3677	3514	3515	0.0517011274556552	0.0517011274556552	-104.965228	39.698386	-104.9646237	39.6983866
-3678	3515	3480	0.0495708012211316	0.0495708012211316	-104.9646237	39.6983866	-104.9640443	39.6983872
-3679	3480	3516	0.0493402083699287	0.0493402083699287	-104.9640443	39.6983872	-104.9634676	39.6983891
-3680	3516	3517	0.0507690156276584	0.0507690156276584	-104.9634676	39.6983891	-104.9628742	39.6983911
-3681	3517	3518	0.0480408906902884	0.0480408906902884	-104.9628742	39.6983911	-104.9623127	39.6983876
-3682	3518	3519	0.0499402493817724	0.0499402493817724	-104.9623127	39.6983876	-104.961729	39.698384
-3683	3519	3520	0.0491944164243011	0.0491944164243011	-104.961729	39.698384	-104.961154	39.6983849
-3685	3521	3522	0.048707440700188	0.048707440700188	-104.9605624	39.6983858	-104.9599931	39.6983883
-3686	3522	3523	0.0553123927733894	0.0553123927733894	-104.9599931	39.6983883	-104.9593466	39.6983911
-3688	3524	3525	0.0491959341758901	0.0491959341758901	-104.9586741	39.6983954	-104.9580991	39.698399
-3689	3525	3526	0.0471666433723512	0.0471666433723512	-104.9580991	39.698399	-104.9575478	39.698399
-3690	3526	3527	0.0512305206815533	0.0512305206815533	-104.9575478	39.698399	-104.956949	39.698399
-3693	2737	3529	0.051933950168584	0.051933950168584	-104.9558324	39.6983924	-104.9552447	39.6982755
-3694	3529	3530	0.02212553176718	0.02212553176718	-104.9552447	39.6982755	-104.9550292	39.6981655
-3695	3530	3531	0.0926927616463166	0.0926927616463166	-104.9550292	39.6981655	-104.954611	39.6973965
-3698	3533	3534	0.0505032949697016	0.0505032949697016	-104.982132	39.6984066	-104.9815417	39.6984066
-3699	3534	3535	0.0486395723695605	0.0486395723695605	-104.9815417	39.6984066	-104.9809732	39.6984099
-3700	3535	3536	0.0490245580059416	0.0490245580059416	-104.9809732	39.6984099	-104.9804002	39.6984132
-3701	3536	3537	0.0505772192147856	0.0505772192147856	-104.9804002	39.6984132	-104.9798091	39.6984199
-3703	3538	3540	0.0504276967004131	0.0504276967004131	-104.9792415	39.6984264	-104.9786521	39.6984298
-3705	3541	3542	0.0472106572615262	0.0472106572615262	-104.9780828	39.698433	-104.977531	39.6984299
-3706	3542	1776	0.0526607102662498	0.0526607102662498	-104.977531	39.6984299	-104.9769155	39.6984264
-3707	1776	3543	0.0501355164587406	0.0501355164587406	-104.9769155	39.6984264	-104.9763295	39.6984254
-3708	3543	3545	0.0479683302933595	0.0479683302933595	-104.9763295	39.6984254	-104.9757691	39.698412
-3709	3545	3546	0.0512089379810606	0.0512089379810606	-104.9757691	39.698412	-104.9751709	39.6984277
-3712	3547	3548	0.0501783172118128	0.0501783172118128	-104.9739907	39.6984301	-104.9734042	39.698429
-3714	3549	3550	0.0951894457465396	0.0951894457465396	-104.932762	39.698444	-104.931651	39.698398
-3716	3374	3551	0.137804864391147	0.137804864391147	-104.9240963	39.6988121	-104.9226973	39.6994263
-3717	3552	3553	0.0519171995444708	0.0519171995444708	-104.9769434	39.7546258	-104.9763361	39.7546219
-3718	3553	3554	0.0504125238991067	0.0504125238991067	-104.9763361	39.7546219	-104.9757464	39.7546182
-3719	3554	3555	0.0509345511135035	0.0509345511135035	-104.9757464	39.7546182	-104.9751506	39.7546225
-3720	3555	3556	0.0352813695033733	0.0352813695033733	-104.9751506	39.7546225	-104.9747379	39.7546254
-3721	3556	3557	0.0165592866582096	0.0165592866582096	-104.9747379	39.7546254	-104.9745442	39.7546268
-3722	3557	3558	0.0492318634139881	0.0492318634139881	-104.9745442	39.7546268	-104.9739683	39.7546244
-3724	2895	3559	0.10435477566087	0.10435477566087	-104.9733531	39.7545278	-104.9721334	39.7544893
-3725	3559	3560	0.106943183049813	0.106943183049813	-104.9721334	39.7544893	-104.9708824	39.7544863
-3726	3560	3561	0.104660660979737	0.104660660979737	-104.9708824	39.7544863	-104.9696581	39.7544835
-3727	3561	3562	0.110121719044693	0.110121719044693	-104.9696581	39.7544835	-104.9683703	39.7544592
-3728	3562	3563	0.102966459525542	0.102966459525542	-104.9683703	39.7544592	-104.9671659	39.7544703
-3730	3564	3565	0.0562722873891167	0.0562722873891167	-104.9659688	39.7544499	-104.9653106	39.7544428
-3735	3568	3569	0.0531044201649232	0.0531044201649232	-104.9616097	39.7544552	-104.9609889	39.7544725
-3736	3569	3570	0.106391147104451	0.106391147104451	-104.9609889	39.7544725	-104.9597446	39.7544534
-3737	3570	3571	0.101252017782574	0.101252017782574	-104.9597446	39.7544534	-104.9585602	39.75446
-3738	3571	3323	0.106405710576167	0.106405710576167	-104.9585602	39.75446	-104.9573156	39.7544732
-3739	3323	3572	0.102008288172629	0.102008288172629	-104.9573156	39.7544732	-104.9561226	39.7544534
-3740	3572	3573	0.10165616841443	0.10165616841443	-104.9561226	39.7544534	-104.954935	39.7545002
-3741	3573	2074	0.102582871487582	0.102582871487582	-104.954935	39.7545002	-104.953735	39.7545002
-3742	2074	2671	0.108231570849142	0.108231570849142	-104.953735	39.7545002	-104.9524691	39.7544839
-3743	2671	3574	0.10456159833902	0.10456159833902	-104.9524691	39.7544839	-104.951246	39.7544757
-5002	115	4548	0.0219059413647985	0.0219059413647985	-105.0217118	39.7303058	-105.0217136	39.7305028
-3744	3574	3575	0.112649473969198	0.112649473969198	-104.951246	39.7544757	-104.9499292	39.7544371
-3748	3469	3578	0.102738780677217	0.102738780677217	-104.9464912	39.7544409	-104.9452895	39.7544277
-3751	848	3580	0.194594151891157	0.194594151891157	-104.9429842	39.7544341	-104.9407092	39.754494
-3780	799	3582	0.202016106794537	0.202016106794537	-104.9293286	39.7528556	-104.92935	39.7546723
-3753	3581	3583	0.0933177632696428	0.0933177632696428	-104.9405163	39.7545798	-104.9394304	39.7546656
-3756	3586	3587	0.0427524561216555	0.0427524561216555	-105.0238257	39.7607202	-105.0243209	39.7607742
-20307	3851	3852	0.0199150113624835	0.0199150113624835	-105.0428243	39.7763674	-105.0428243	39.7765465
-3757	3587	3588	0.00652614157776479	0.00652614157776479	-105.0243209	39.7607742	-105.0243965	39.7607824
-3758	3588	3589	0.0165416326790114	0.0165416326790114	-105.0243965	39.7607824	-105.0245881	39.7608033
-3759	3589	3590	0.0292914453635219	0.0292914453635219	-105.0245881	39.7608033	-105.0249274	39.7608402
-3760	3590	3591	0.012398142936734	0.012398142936734	-105.0249274	39.7608402	-105.025071	39.7608559
-3761	3591	3592	0.00808918004643223	0.00808918004643223	-105.025071	39.7608559	-105.0251647	39.7608661
-3762	3592	3593	0.0105968786869326	0.0105968786869326	-105.0251647	39.7608661	-105.0252868	39.7608826
-3764	3487	3594	0.175200690864457	0.175200690864457	-104.9293078	39.7162471	-104.9293175	39.7178227
-17310	5684	5685	0.200644913348264	0.200644913348264	-104.9611511	39.6947781	-104.9611673	39.6929737
-3765	3594	2339	0.174981229925885	0.174981229925885	-104.9293175	39.7178227	-104.9293022	39.7193963
-3768	3596	3597	0.239259126523314	0.239259126523314	-104.9293972	39.7231683	-104.9294053	39.72532
-3770	1985	1969	0.0388238770836811	0.0388238770836811	-104.9301272	39.7433797	-104.930135	39.7437288
-3771	1969	3598	0.103685036459381	0.103685036459381	-104.930135	39.7437288	-104.9301576	39.7446611
-3772	3598	3599	0.103278210249803	0.103278210249803	-104.9301576	39.7446611	-104.9301608	39.7455899
-3774	3600	685	0.204822140654993	0.204822140654993	-104.9297917	39.7401253	-104.9297839	39.7419673
-3775	685	1984	0.157051714392723	0.157051714392723	-104.9297839	39.7419673	-104.9297839	39.7433797
-3777	2473	3601	0.204732098938096	0.204732098938096	-104.9293385	39.7474063	-104.9293385	39.7492475
-3778	3601	3602	0.203258463693205	0.203258463693205	-104.9293385	39.7492475	-104.9293214	39.7510754
-3779	3602	799	0.197950165384785	0.197950165384785	-104.9293214	39.7510754	-104.9293286	39.7528556
-3781	3582	3603	0.209363914186111	0.209363914186111	-104.92935	39.7546723	-104.9293903	39.7565549
-3782	3603	3604	0.202974468009462	0.202974468009462	-104.9293903	39.7565549	-104.9293663	39.7583802
-3783	3604	3063	0.201030651985273	0.201030651985273	-104.9293663	39.7583802	-104.9293577	39.7601881
-3784	3063	3605	0.183452467298283	0.183452467298283	-104.9293577	39.7601881	-104.9293844	39.7618378
-3785	3605	3609	0.0173247613422977	0.0173247613422977	-104.9293844	39.7618378	-104.9293603	39.7619925
-3786	3609	3610	0.100167424900963	0.100167424900963	-104.9293603	39.7619925	-104.9293406	39.7628932
-3787	3610	1148	0.0998182719974527	0.0998182719974527	-104.9293406	39.7628932	-104.9293749	39.7637905
-3798	3618	3619	1.41244277904247	1.41244277904247	-104.98046	39.6894076	-104.9804715	39.6767052
-3799	3620	3621	0.200419085699923	0.200419085699923	-104.9803501	39.716491	-104.9803587	39.7146886
-3800	3621	3083	0.197049820413636	0.197049820413636	-104.9803587	39.7146886	-104.9803943	39.7129167
-3806	3250	3625	0.214852973763206	0.214852973763206	-104.9804174	39.7039537	-104.9804286	39.7020215
-3807	3625	37	0.19341482884534	0.19341482884534	-104.9804286	39.7020215	-104.9804174	39.7002821
-3808	37	3536	0.207817408343139	0.207817408343139	-104.9804174	39.7002821	-104.9804002	39.6984132
-3809	3536	3626	0.197537787183869	0.197537787183869	-104.9804002	39.6984132	-104.9804002	39.6966367
-3810	3626	3627	0.0725803332096263	0.0725803332096263	-104.9804002	39.6966367	-104.9805353	39.6959923
-3812	3628	3629	0.0377891893344826	0.0377891893344826	-104.9558725	39.7153466	-104.9554348	39.7153004
-3814	3630	108	0.222508950073657	0.222508950073657	-104.9286229	39.7018847	-104.9272013	39.700209
-3815	108	3631	0.48374336677931	0.48374336677931	-104.9272013	39.700209	-104.9237198	39.6967811
-3816	3631	3632	1.29923590650812	1.29923590650812	-104.9237198	39.6967811	-104.9115603	39.6897825
-17118	3959	510	0.232935824119298	0.232935824119298	-104.957513	39.7479253	-104.9547886	39.7479501
-4428	4136	4137	0.173313517100692	0.173313517100692	-104.9505787	39.7367922	-104.9506214	39.7383505
-4429	4137	4138	0.202530185785573	0.202530185785573	-104.9506214	39.7383505	-104.9506563	39.7401717
-18158	6309	10170	0.40356001102466	0.40356001102466	-105.0129465	39.7874317	-105.0129519	39.791061
-4432	2389	4140	0.139183902890425	0.139183902890425	-104.950844	39.7738769	-104.9508372	39.7751286
-4434	4141	4142	0.197054107936505	0.197054107936505	-104.982643	39.7165018	-104.9827054	39.7147303
-4438	4144	4145	0.0537117632250494	0.0537117632250494	-104.9856225	39.7209124	-104.9849945	39.7209102
-4439	4145	965	0.101471161400112	0.101471161400112	-104.9849945	39.7209102	-104.9838084	39.7209313
-4440	965	4146	0.104100628512796	0.104100628512796	-104.9838084	39.7209313	-104.9825915	39.7209119
-4441	4146	3163	0.0969051144320847	0.0969051144320847	-104.9825915	39.7209119	-104.9814586	39.7208987
-4442	3163	4147	0.101372524256092	0.101372524256092	-104.9814586	39.7208987	-104.9802738	39.7209242
-4443	4147	4148	0.0308326213261154	0.0308326213261154	-104.9802738	39.7209242	-104.9799133	39.7209242
-4445	3914	1051	0.113795014444698	0.113795014444698	-104.9633401	39.7209669	-104.9620097	39.7209801
-4446	1051	4149	0.10964029932362	0.10964029932362	-104.9620097	39.7209801	-104.9607278	39.7209872
-4449	4151	3345	0.104243278330047	0.104243278330047	-104.9582358	39.7209729	-104.957017	39.7209795
-4451	4152	4153	0.102419695022811	0.102419695022811	-104.9558113	39.720983	-104.9546138	39.7209795
-4452	4153	2058	0.103354746635848	0.103354746635848	-104.9546138	39.7209795	-104.9534054	39.7209872
-4453	2058	2644	0.104156201229462	0.104156201229462	-104.9534054	39.7209872	-104.9521876	39.720983
-4454	2644	4110	0.102077109293643	0.102077109293643	-104.9521876	39.720983	-104.9509941	39.7209851
-5804	5122	5123	0.00520045876973269	0.00520045876973269	-104.9708892	39.7607101	-104.9708859	39.7607568
-4455	4110	4154	0.102551400025576	0.102551400025576	-104.9509941	39.7209851	-104.9497951	39.7209768
-4458	4156	3451	0.102085683319337	0.102085683319337	-104.9473677	39.7209707	-104.9461741	39.7209686
-4459	3451	4157	0.103915702611829	0.103915702611829	-104.9461741	39.7209686	-104.9449591	39.7209686
-4460	4157	3881	0.104147627332173	0.104147627332173	-104.9449591	39.7209686	-104.9437414	39.7209645
-4461	3881	844	0.102547271473588	0.102547271473588	-104.9437414	39.7209645	-104.9425424	39.7209645
-4462	844	4158	0.103915708789956	0.103915708789956	-104.9425424	39.7209645	-104.9413274	39.7209645
-4463	4158	4159	0.0473715373473714	0.0473715373473714	-104.9413274	39.7209645	-104.9407748	39.7209356
-4465	4160	4161	0.0487952389865543	0.0487952389865543	-104.977542	39.720117	-104.9769715	39.7201202
-4466	4161	4162	0.0503092120983125	0.0503092120983125	-104.9769715	39.7201202	-104.9763833	39.7201236
-4467	4162	4163	0.0998399649224705	0.0998399649224705	-104.9763833	39.7201236	-104.975216	39.7201302
-4470	991	4165	0.0616573964011522	0.0616573964011522	-104.9740667	39.720134	-104.9733458	39.720134
-4471	4165	4166	0.0374515064164708	0.0374515064164708	-104.9733458	39.720134	-104.972908	39.7201406
-4472	4166	4167	0.0500586202169859	0.0500586202169859	-104.972908	39.7201406	-104.9723279	39.7200808
-4473	4167	4168	0.0490747432154895	0.0490747432154895	-104.9723279	39.7200808	-104.9717542	39.7200883
-4474	4168	1546	0.0500170304502106	0.0500170304502106	-104.9717542	39.7200883	-104.9711694	39.7200886
-4475	1546	4169	0.0485801531295538	0.0485801531295538	-104.9711694	39.7200886	-104.9706014	39.7200889
-5773	5098	5099	0.136491222225544	0.136491222225544	-104.9779272	39.6923695	-104.9781101	39.6911501
-4479	4171	4172	0.0171013114970861	0.0171013114970861	-104.9681062	39.7200857	-104.9679063	39.7200823
-4480	4172	4173	0.100095278405447	0.100095278405447	-104.9679063	39.7200823	-104.966736	39.720087
-4481	4173	4174	0.0193707742575379	0.0193707742575379	-104.966736	39.720087	-104.9665271	39.7201543
-4482	4174	3125	0.0983746933912928	0.0983746933912928	-104.9665271	39.7201543	-104.9653769	39.7201543
-4483	3125	3149	0.017633000291927	0.017633000291927	-104.9653769	39.7201543	-104.9651708	39.7201583
-4485	3759	1483	0.205504619788951	0.205504619788951	-104.9912414	39.6966624	-104.9913183	39.6948152
-4486	1483	139	0.199306955290764	0.199306955290764	-104.9913183	39.6948152	-104.991354	39.693023
-3818	3634	3635	0.193271661183235	0.193271661183235	-104.9444999	39.7082421	-104.9460363	39.7095165
-3844	50	2744	0.0297683374213274	0.0297683374213274	-104.9541194	39.7002037	-104.9541587	39.6999377
-3819	3635	3636	0.259071020170312	0.259071020170312	-104.9460363	39.7095165	-104.9481992	39.7111474
-3820	3636	3637	0.220352934884474	0.220352934884474	-104.9481992	39.7111474	-104.9498644	39.7126594
-3821	3637	3638	0.0146799692899151	0.0146799692899151	-104.9498644	39.7126594	-104.9499674	39.712765
-3822	3638	3629	0.546064092681382	0.546064092681382	-104.9499674	39.712765	-104.9554348	39.7153004
-3823	3629	3628	0.0377891893344826	0.0377891893344826	-104.9554348	39.7153004	-104.9558725	39.7153466
-3848	3639	3640	0.0377019004254023	0.0377019004254023	-104.953288	39.6987674	-104.9529616	39.6985396
-3824	3628	3641	0.274746435577415	0.274746435577415	-104.9558725	39.7153466	-104.9590835	39.7152814
-3827	3643	3630	0.145379834812045	0.145379834812045	-104.9299023	39.7027452	-104.9286229	39.7018847
-3829	3644	3645	0.10937380292523	0.10937380292523	-105.0209565	39.7228992	-105.0209651	39.7238828
-3831	3646	3647	0.118367900276814	0.118367900276814	-105.0208928	39.7275233	-105.0208982	39.7264588
-3833	3648	3649	0.0133410304783532	0.0133410304783532	-104.9576929	39.7025901	-104.9575638	39.7025228
-3834	3649	3650	0.0429585103622675	0.0429585103622675	-104.9575638	39.7025228	-104.957148	39.7023062
-3835	3650	3651	0.0204151163658954	0.0204151163658954	-104.957148	39.7023062	-104.9569509	39.7022027
-3836	3651	3652	0.035861428044368	0.035861428044368	-104.9569509	39.7022027	-104.9565993	39.7020271
-3837	3652	3653	0.0519097060940613	0.0519097060940613	-104.9565993	39.7020271	-104.956048	39.7018321
-3838	3653	2733	0.0215181506261361	0.0215181506261361	-104.956048	39.7018321	-104.9558149	39.7017594
-3839	2733	3184	0.0284884125498342	0.0284884125498342	-104.9558149	39.7017594	-104.9555361	39.7016193
-3840	3184	3654	0.0523000942930375	0.0523000942930375	-104.9555361	39.7016193	-104.9550095	39.7013804
-3841	3654	3655	0.0449577371290542	0.0449577371290542	-104.9550095	39.7013804	-104.9546075	39.70112
-3842	3655	3656	0.0854917295991763	0.0854917295991763	-104.9546075	39.70112	-104.9541489	39.7004369
-3843	3656	50	0.0260531877334927	0.0260531877334927	-104.9541489	39.7004369	-104.9541194	39.7002037
-3845	2744	3657	0.0566089274642789	0.0566089274642789	-104.9541587	39.6999377	-104.9539423	39.6994566
-3846	3657	3658	0.0492739020617726	0.0492739020617726	-104.9539423	39.6994566	-104.9536997	39.6990547
-3849	3640	3660	0.0409815373213546	0.0409815373213546	-104.9529616	39.6985396	-104.9525869	39.69831
-3850	3660	3661	0.0430567519340905	0.0430567519340905	-104.9525869	39.69831	-104.9521932	39.6980688
-3851	3661	3662	0.0468129367556475	0.0468129367556475	-104.9521932	39.6980688	-104.9517941	39.6977808
-3852	3662	3663	0.0487340718514498	0.0487340718514498	-104.9517941	39.6977808	-104.9513786	39.697481
-3853	3663	3664	0.0766168893066023	0.0766168893066023	-104.9513786	39.697481	-104.9507	39.6970314
-3854	3664	3665	0.0775543535398568	0.0775543535398568	-104.9507	39.6970314	-104.9500131	39.6965763
-3856	2887	3666	0.0966953683989245	0.0966953683989245	-104.9729638	39.7478589	-104.9739808	39.7474784
-3857	3666	3667	0.0610272459393337	0.0610272459393337	-104.9739808	39.7474784	-104.9746946	39.7474748
-3860	3669	3670	0.0315853053568594	0.0315853053568594	-104.9757447	39.7475025	-104.976114	39.7474946
-3862	3671	3672	0.0504610774094253	0.0504610774094253	-104.9763685	39.7474986	-104.9769586	39.747508
-3863	3672	3673	0.0499084817958282	0.0499084817958282	-104.9769586	39.747508	-104.9775423	39.7475014
-3864	3673	3674	0.0598581313257637	0.0598581313257637	-104.9775423	39.7475014	-104.9782423	39.7475122
-3865	3674	3675	0.0415918035714469	0.0415918035714469	-104.9782423	39.7475122	-104.9787278	39.747536
-3866	3675	3676	0.0971838117715375	0.0971838117715375	-104.9787278	39.747536	-104.9798645	39.7475421
-3867	3676	3677	0.0757910145140814	0.0757910145140814	-104.9798645	39.7475421	-104.980751	39.7475439
-3868	3677	3678	0.0241351496511796	0.0241351496511796	-104.980751	39.7475439	-104.9810333	39.7475445
-3869	3678	3679	0.10921148844503	0.10921148844503	-104.9810333	39.7475445	-104.9823107	39.7475487
-3870	3679	3680	0.0604791133362521	0.0604791133362521	-104.9823107	39.7475487	-104.9830181	39.7475507
-3871	3680	3681	0.0497662614550786	0.0497662614550786	-104.9830181	39.7475507	-104.9836002	39.7475507
-3872	3681	3682	0.0284371260175335	0.0284371260175335	-104.9836002	39.7475507	-104.9839328	39.7475479
-3873	3682	3683	0.0775136719631998	0.0775136719631998	-104.9839328	39.7475479	-104.9848394	39.7475404
-3874	3683	3684	0.0986272672973807	0.0986272672973807	-104.9848394	39.7475404	-104.9859927	39.7475198
-3876	3686	1026	0.103637164673652	0.103637164673652	-104.9634548	39.7469475	-104.9622426	39.7469472
-5148	4657	4658	0.0518173498658282	0.0518173498658282	-105.0191606	39.7548276	-105.0191633	39.7552936
-3877	1026	3687	0.0559565437232701	0.0559565437232701	-104.9622426	39.7469472	-104.9615881	39.7469471
-3878	3687	3688	0.0511859173489266	0.0511859173489266	-104.9615881	39.7469471	-104.9609894	39.746947
-3879	3688	3689	0.0520066703615513	0.0520066703615513	-104.9609894	39.746947	-104.9603811	39.7469469
-3880	3689	3690	0.049253728288425	0.049253728288425	-104.9603811	39.7469469	-104.959805	39.7469468
-3882	2886	3691	0.113429848834015	0.113429848834015	-104.9722001	39.7469535	-104.970874	39.7469218
-3884	3215	3692	0.202752541360657	0.202752541360657	-104.9616918	39.7111011	-104.9617163	39.7092778
-3885	3692	1926	0.199353224720545	0.199353224720545	-104.9617163	39.7092778	-104.961729	39.707485
-3886	1926	3693	0.200351682125873	0.200351682125873	-104.961729	39.707485	-104.9617036	39.7056833
-3887	3693	3270	0.203854022504707	0.203854022504707	-104.9617036	39.7056833	-104.9616991	39.70385
-3888	3270	3694	0.200935067748901	0.200935067748901	-104.9616991	39.70385	-104.9616812	39.702043
-3890	83	3519	0.205087956532059	0.205087956532059	-104.961704	39.7002283	-104.961729	39.698384
-3892	3695	3696	0.201007421421966	0.201007421421966	-104.9617464	39.6965839	-104.961742	39.6947762
-3897	3217	3701	0.1352188342505	0.1352188342505	-104.9611082	39.7111011	-104.96184	39.712179
-3898	131	1718	0.251512260994622	0.251512260994622	-105.0097289	39.6931103	-105.0097345	39.6908484
-15946	9759	9762	0.240661719520644	0.240661719520644	-104.9977092	39.704984	-104.9986577	39.7070216
-3900	3702	3703	0.0933150678138448	0.0933150678138448	-105.0029777	39.7635862	-105.002975	39.7644254
-3901	3703	3704	0.137025546490973	0.137025546490973	-105.002975	39.7644254	-105.0029738	39.7656577
-3902	3704	3705	0.132801372713675	0.132801372713675	-105.0029738	39.7656577	-105.002967	39.766852
-3903	3705	1668	0.132757296812598	0.132757296812598	-105.002967	39.766852	-105.0029592	39.7680459
-3904	1668	3706	0.138337667643286	0.138337667643286	-105.0029592	39.7680459	-105.0029577	39.76929
-3905	3706	2449	0.137198901653783	0.137198901653783	-105.0029577	39.76929	-105.0029835	39.7705237
-3906	2449	3239	0.137027047572602	0.137027047572602	-105.0029835	39.7705237	-105.0029911	39.771756
-3909	3708	3709	0.0594114493059888	0.0594114493059888	-105.002935	39.7755303	-105.002935	39.7760646
-3910	3709	109	0.057220909251565	0.057220909251565	-105.002935	39.7760646	-105.002935	39.7765792
-3913	3711	3712	0.139485170169946	0.139485170169946	-104.9891861	39.7183575	-104.9908169	39.7183641
-3914	3712	2811	0.114534953425458	0.114534953425458	-104.9908169	39.7183641	-104.9921559	39.7183774
-3918	3715	3716	0.0528065388297546	0.0528065388297546	-104.995157	39.7184133	-104.9957744	39.7184136
-3919	3716	3717	0.0498986148500866	0.0498986148500866	-104.9957744	39.7184136	-104.9963578	39.7184146
-3920	3717	3718	0.0501983896755627	0.0501983896755627	-104.9963578	39.7184146	-104.9969447	39.7184167
-3921	3718	3722	0.0513311819624353	0.0513311819624353	-104.9969447	39.7184167	-104.9975448	39.7184227
-3922	3722	3723	0.0447895916462849	0.0447895916462849	-104.9975448	39.7184227	-104.9980684	39.7184292
-3923	3723	3724	0.0431436061631746	0.0431436061631746	-104.9980684	39.7184292	-104.9985724	39.7184133
-3924	3724	3725	0.0306469500311329	0.0306469500311329	-104.9985724	39.7184133	-104.9989294	39.7183897
-3926	3726	3727	0.194057523355391	0.194057523355391	-105.0028483	39.7255761	-105.0028456	39.7273213
-3927	3727	723	0.155998303022368	0.155998303022368	-105.0028456	39.7273213	-105.0028344	39.7287242
-3928	723	3728	0.0204200466887832	0.0204200466887832	-105.0028344	39.7287242	-105.0028395	39.7289078
-3929	3728	3729	0.122760919468851	0.122760919468851	-105.0028395	39.7289078	-105.0028319	39.7300118
-3930	3729	3730	0.0554195837686694	0.0554195837686694	-105.0028319	39.7300118	-105.0028312	39.7305102
-3931	3730	520	0.0841868989778494	0.0841868989778494	-105.0028312	39.7305102	-105.0028259	39.7312673
-3932	520	3731	0.0926590200371809	0.0926590200371809	-105.0028259	39.7312673	-105.0028232	39.7321006
-3933	3731	3732	0.0560537701957185	0.0560537701957185	-105.0028232	39.7321006	-105.0028207	39.7326047
-3937	3735	3736	0.177568883213635	0.177568883213635	-105.0028198	39.7368743	-105.0028107	39.7384712
-3939	3737	3738	0.0596027628340358	0.0596027628340358	-105.0028068	39.7394839	-105.0028007	39.7400199
-3940	3738	2286	0.015731383207611	0.015731383207611	-105.0028007	39.7400199	-105.0028141	39.740161
-3942	191	3739	0.20409229769904	0.20409229769904	-105.02039	39.7157163	-105.0227761	39.7157163
-3943	3739	3740	0.196754914184827	0.196754914184827	-105.0227761	39.7157163	-105.0250764	39.7157096
-3945	3741	3742	0.0963531048469524	0.0963531048469524	-105.0170254	39.7158747	-105.0181498	39.7158219
-3947	3743	1867	0.211893481628119	0.211893481628119	-104.9874858	39.7156689	-104.9899631	39.7156724
-3948	1867	3744	0.190309691295086	0.190309691295086	-104.9899631	39.7156724	-104.9921878	39.7156987
-3949	3744	3369	0.156379911113779	0.156379911113779	-104.9921878	39.7156987	-104.994016	39.7156855
-3951	3746	3747	0.0084501441528746	0.0084501441528746	-105.006247	39.715647	-105.006163	39.715687
-3953	3749	3750	0.291896586304336	0.291896586304336	-105.026537	39.774028	-105.0264259	39.7766517
-3957	3752	3753	0.00678737857974005	0.00678737857974005	-105.0288682	39.7620406	-105.0288005	39.7620725
-3958	3753	3754	0.00811546596932882	0.00811546596932882	-105.0288005	39.7620725	-105.028727	39.7621187
-3959	3754	605	0.11345488105994	0.11345488105994	-105.028727	39.7621187	-105.0276669	39.7627327
-3966	3759	3760	0.0543424988109601	0.0543424988109601	-104.9912414	39.6966624	-104.9918765	39.696669
-3967	3760	3761	0.0124828328696103	0.0124828328696103	-104.9918765	39.696669	-104.9920224	39.696669
-3969	3762	3763	0.109035140401267	0.109035140401267	-105.0051409	39.7854596	-105.0064169	39.7854508
-3970	3763	3764	0.13451246019454	0.13451246019454	-105.0064169	39.7854508	-105.0079576	39.7856991
-3971	3764	1077	0.0751290727356026	0.0751290727356026	-105.0079576	39.7856991	-105.0087381	39.7860102
-3972	1077	2521	0.125841042831383	0.125841042831383	-105.0087381	39.7860102	-105.0101778	39.7862486
-3974	3765	3766	0.0155018141702848	0.0155018141702848	-104.9406029	39.7291831	-104.9407704	39.7291298
-3975	3766	3769	0.0925922303926536	0.0925922303926536	-104.9407704	39.7291298	-104.9418526	39.7291037
-3976	3769	450	0.0446743427321934	0.0446743427321934	-104.9418526	39.7291037	-104.942375	39.7291047
-3977	450	855	0.0454696499518695	0.0454696499518695	-104.942375	39.7291047	-104.9429067	39.7291057
-3978	855	3770	0.0458292249661059	0.0458292249661059	-104.9429067	39.7291057	-104.9434426	39.7291077
-5269	4111	4741	0.0999126780220414	0.0999126780220414	-104.9509907	39.7225605	-104.9498232	39.7225289
-3979	3770	3771	0.0463680305523856	0.0463680305523856	-104.9434426	39.7291077	-104.9439848	39.7291098
-3982	3777	3778	0.0472655889206378	0.0472655889206378	-104.9450973	39.7291163	-104.94565	39.7291176
-3983	3778	3456	0.0457775618734605	0.0457775618734605	-104.94565	39.7291176	-104.9461853	39.7291188
-3984	3456	3779	0.0949352444381587	0.0949352444381587	-104.9461853	39.7291188	-104.9472954	39.7291251
-3985	3779	3780	0.0949175907228116	0.0949175907228116	-104.9472954	39.7291251	-104.9484053	39.7291307
-3986	3780	3781	0.0934360991992659	0.0934360991992659	-104.9484053	39.7291307	-104.9494979	39.7291309
-3987	3781	3782	0.0927263272279538	0.0927263272279538	-104.9494979	39.7291309	-104.9505822	39.7291315
-3988	3782	2659	0.0984051754942233	0.0984051754942233	-104.9505822	39.7291315	-104.9517329	39.7291286
-3989	2659	2053	0.0987467204032972	0.0987467204032972	-104.9517329	39.7291286	-104.9528876	39.7291288
-3990	2053	3783	0.0990728400130522	0.0990728400130522	-104.9528876	39.7291288	-104.9540461	39.7291245
-3991	3783	3784	0.0514218472521816	0.0514218472521816	-104.9540461	39.7291245	-104.9546474	39.7291228
-3992	3784	3785	0.0779176889813446	0.0779176889813446	-104.9546474	39.7291228	-104.9555585	39.7291167
-3993	3785	3786	0.0982592928032825	0.0982592928032825	-104.9555585	39.7291167	-104.9567075	39.7291164
-3994	3786	3344	0.100047583059044	0.100047583059044	-104.9567075	39.7291164	-104.9578774	39.7291204
-3995	3344	3787	0.0997075658602957	0.0997075658602957	-104.9578774	39.7291204	-104.9590433	39.7291134
-3998	3789	1013	0.0991145515008367	0.0991145515008367	-104.9613527	39.7291055	-104.9625117	39.7291044
-3999	1013	3790	0.0988154439008836	0.0988154439008836	-104.9625117	39.7291044	-104.9636672	39.7291023
-4000	3790	3147	0.100818484811759	0.100818484811759	-104.9636672	39.7291023	-104.9648461	39.7290963
-4001	3147	3128	0.0882379333310365	0.0882379333310365	-104.9648461	39.7290963	-104.9658779	39.7290921
-4002	3128	3791	0.10924064572907	0.10924064572907	-104.9658779	39.7290921	-104.9671553	39.7290881
-4003	3791	3792	0.0990892368110052	0.0990892368110052	-104.9671553	39.7290881	-104.968314	39.7290856
-4004	3792	3793	0.0983279071551189	0.0983279071551189	-104.968314	39.7290856	-104.9694638	39.729084
-4005	3793	3794	0.0488397000978433	0.0488397000978433	-104.9694638	39.729084	-104.9700349	39.7290815
-4006	3794	3795	0.0500279563406491	0.0500279563406491	-104.9700349	39.7290815	-104.9706199	39.7290832
-4007	3795	2868	0.0499678370514067	0.0499678370514067	-104.9706199	39.7290832	-104.9712042	39.7290823
-4008	2868	3796	0.048583428681526	0.048583428681526	-104.9712042	39.7290823	-104.9717723	39.7290794
-4009	3796	3797	0.0504566053315115	0.0504566053315115	-104.9717723	39.7290794	-104.9723623	39.729076
-4011	3798	3799	0.0451531325504455	0.0451531325504455	-104.9729432	39.7290745	-104.9734712	39.7290748
-4012	3799	983	0.0519296915637561	0.0519296915637561	-104.9734712	39.7290748	-104.9740784	39.7290693
-4015	3801	3802	0.0483738114958222	0.0483738114958222	-104.9764057	39.7290681	-104.9769713	39.7290617
-4016	3802	3803	0.0519812355103751	0.0519812355103751	-104.9769713	39.7290617	-104.977579	39.7290515
-4017	3803	3804	0.101642680761132	0.101642680761132	-104.977579	39.7290515	-104.9787675	39.7290609
-4018	3804	3805	0.100202026962745	0.100202026962745	-104.9787675	39.7290609	-104.9799392	39.7290657
-4019	3805	3806	0.0490200510242293	0.0490200510242293	-104.9799392	39.7290657	-104.9805124	39.7290692
-4020	3806	3159	0.0527906095396228	0.0527906095396228	-104.9805124	39.7290692	-104.9811297	39.7290666
-4021	3159	3807	0.0508058777981011	0.0508058777981011	-104.9811297	39.7290666	-104.9817238	39.7290659
-4022	3807	3808	0.0547154240766913	0.0547154240766913	-104.9817238	39.7290659	-104.9823636	39.7290623
-4023	3808	3809	0.105580069148102	0.105580069148102	-104.9823636	39.7290623	-104.9835982	39.729065
-4025	3810	3811	0.0543737037127348	0.0543737037127348	-104.9842348	39.7290698	-104.9848706	39.7290738
-16058	9242	237	0.236847878323095	0.236847878323095	-105.0223459	39.7257626	-105.0251054	39.7259431
-4026	3811	3812	0.108778018122892	0.108778018122892	-104.9848706	39.7290738	-104.9861426	39.7290747
-4027	3812	1620	0.10920973774803	0.10920973774803	-104.9861426	39.7290747	-104.9874196	39.7290833
-4029	3813	3814	0.083969278056869	0.083969278056869	-105.0403593	39.7474155	-105.039412	39.7472161
-4031	3815	3816	0.139162136479248	0.139162136479248	-105.0374612	39.7461303	-105.0366061	39.7450654
-4032	3816	3817	0.128842029582485	0.128842029582485	-105.0366061	39.7450654	-105.0369844	39.7439438
-4034	3818	2303	0.104861015321702	0.104861015321702	-105.0107164	39.6967417	-105.0106836	39.695799
-4035	2303	130	0.0947837852263858	0.0947837852263858	-105.0106836	39.695799	-105.010718	39.694947
-4036	130	155	0.2039982188818	0.2039982188818	-105.010718	39.694947	-105.0107186	39.6931124
-4037	155	1719	0.251031715971117	0.251031715971117	-105.0107186	39.6931124	-105.0107559	39.690855
-4040	3820	3821	0.253858034970465	0.253858034970465	-105.009791	39.7062461	-105.0097899	39.7039631
-4041	3821	765	0.158798770965753	0.158798770965753	-105.0097899	39.7039631	-105.0097824	39.702535
-4042	765	3822	0.38766252452626	0.38766252452626	-105.0097824	39.702535	-105.0105281	39.6990962
-4044	3823	3824	0.6423341602363	0.6423341602363	-105.0106786	39.6880414	-105.0099887	39.6822892
-4045	3825	3826	0.0763938085811643	0.0763938085811643	-105.0104126	39.6901747	-105.0104297	39.6894878
-5338	4787	4788	0.201919584850824	0.201919584850824	-105.0135283	39.7856151	-105.013522	39.787431
-4049	3828	3829	0.0709013283805701	0.0709013283805701	-104.9277565	39.7065566	-104.9269277	39.7065525
-4051	3830	3831	0.161299122027925	0.161299122027925	-104.9241221	39.7061949	-104.9222367	39.7061777
-4052	3832	3833	0.0520709463921909	0.0520709463921909	-105.042608	39.748115	-105.0428186	39.7485544
-4054	3834	3835	0.133913000116738	0.133913000116738	-105.0428357	39.748759	-105.0428416	39.7499633
-4055	3835	3836	0.135958385150602	0.135958385150602	-105.0428416	39.7499633	-105.042838	39.751186
-4059	3838	3839	0.195689058153451	0.195689058153451	-105.042617	39.731277	-105.0427707	39.7330329
-4061	3840	3841	0.104161008191779	0.104161008191779	-105.0428396	39.7539325	-105.042828	39.7548692
-4062	3841	3842	0.204332097790775	0.204332097790775	-105.042828	39.7548692	-105.0428239	39.7567068
-4063	3842	2989	0.198305038809848	0.198305038809848	-105.0428239	39.7567068	-105.0428245	39.7584902
-4064	2989	3843	0.202007841321225	0.202007841321225	-105.0428245	39.7584902	-105.0428235	39.7603069
-4065	3843	3844	0.201085745402869	0.201085745402869	-105.0428235	39.7603069	-105.0428303	39.7621153
-4066	3844	3845	0.203153756914823	0.203153756914823	-105.0428303	39.7621153	-105.0428244	39.7639423
-4067	3845	3846	0.201463782012409	0.201463782012409	-105.0428244	39.7639423	-105.0428311	39.7657541
-4068	3846	1694	0.201944163047273	0.201944163047273	-105.0428311	39.7657541	-105.0428441	39.7675702
-4069	1694	3847	0.201007884572681	0.201007884572681	-105.0428441	39.7675702	-105.0428508	39.7693779
-4070	3847	2442	0.173966646957408	0.173966646957408	-105.0428508	39.7693779	-105.042861	39.7709424
-4071	2442	3848	0.171462594138623	0.171462594138623	-105.042861	39.7709424	-105.0428601	39.7724844
-5362	4804	4805	0.138916058502817	0.138916058502817	-105.0127751	39.765645	-105.0127781	39.7668943
-4072	3848	3849	0.15641185610528	0.15641185610528	-105.0428601	39.7724844	-105.0428259	39.7738908
-4073	3849	3850	0.155873108146064	0.155873108146064	-105.0428259	39.7738908	-105.0428243	39.7752926
-4074	3850	3851	0.11951230715733	0.11951230715733	-105.0428243	39.7752926	-105.0428243	39.7763674
-4075	3851	3852	0.0199150113624835	0.0199150113624835	-105.0428243	39.7763674	-105.0428243	39.7765465
-4078	2606	3854	0.176099789319583	0.176099789319583	-105.042706	39.7229718	-105.0427103	39.7245555
-4081	3856	3857	0.204451648584923	0.204451648584923	-105.042767	39.7301122	-105.042745	39.7282736
-4082	3857	3858	0.27633741171005	0.27633741171005	-105.042745	39.7282736	-105.0427081	39.7257886
-4084	3859	3860	0.194935828897222	0.194935828897222	-105.0427473	39.7838664	-105.0427469	39.7856195
-4085	3860	2553	0.201807589121279	0.201807589121279	-105.0427469	39.7856195	-105.0427222	39.7874343
-4086	2553	3861	0.201183796555208	0.201183796555208	-105.0427222	39.7874343	-105.0427456	39.7892435
-4087	3861	3862	0.206144933368939	0.206144933368939	-105.0427456	39.7892435	-105.0427395	39.7910974
-4088	3863	3864	0.174004040356707	0.174004040356707	-105.0432639	39.7165811	-105.0432811	39.7181459
-4089	3864	3865	0.176177241775495	0.176177241775495	-105.0432811	39.7181459	-105.0432811	39.7197303
-4090	3865	3866	0.0719661295510201	0.0719661295510201	-105.0432811	39.7197303	-105.043285	39.7203775
-4091	3866	1862	0.105391351050826	0.105391351050826	-105.043285	39.7203775	-105.0432898	39.7213253
-4092	1862	2607	0.183084733810089	0.183084733810089	-105.0432898	39.7213253	-105.0433005	39.7229718
-4094	3867	3868	0.135844661693153	0.135844661693153	-105.0428222	39.7354157	-105.0427949	39.7366372
-4096	1431	3869	0.122681533981215	0.122681533981215	-105.0427404	39.7820827	-105.042738	39.783186
-4099	3870	3871	0.0814181379314414	0.0814181379314414	-104.9440689	39.7789476	-104.9440637	39.7796798
-4101	3038	3872	0.194090812408951	0.194090812408951	-104.9440088	39.7590496	-104.9440107	39.7607951
-4103	3579	3873	0.140995166985651	0.140995166985651	-104.944148	39.7544343	-104.944148	39.7557023
-4104	3873	3874	0.0908684940539539	0.0908684940539539	-104.944148	39.7557023	-104.944148	39.7565195
-4108	2397	3876	0.142303739641396	0.142303739641396	-104.9440793	39.7738645	-104.9440965	39.7751442
-4110	3877	702	0.203534713775632	0.203534713775632	-104.9442025	39.7401262	-104.9442165	39.7419566
-4111	702	3878	0.201204188260029	0.201204188260029	-104.9442165	39.7419566	-104.9441954	39.743766
-4113	3879	3880	0.176189861258557	0.176189861258557	-104.9437605	39.7162182	-104.943752	39.7178027
-4114	3880	2357	0.178601291381029	0.178601291381029	-104.943752	39.7178027	-104.9437521	39.7194089
-4115	2357	3881	0.172977248757485	0.172977248757485	-104.9437521	39.7194089	-104.9437414	39.7209645
-4116	3881	3882	0.173963704924205	0.173963704924205	-104.9437414	39.7209645	-104.9437636	39.7225289
-4117	3882	3883	0.177248873598787	0.177248873598787	-104.9437636	39.7225289	-104.9437494	39.7241229
-4118	3883	3884	0.165174683174039	0.165174683174039	-104.9437494	39.7241229	-104.9437333	39.7256083
-4120	3885	899	0.068233075024198	0.068233075024198	-104.9438132	39.7638697	-104.9438047	39.7644833
-4121	899	3886	0.136382558439915	0.136382558439915	-104.9438047	39.7644833	-104.9437961	39.7657098
-4123	3887	2246	0.064586200340924	0.064586200340924	-104.9634899	39.7328812	-104.9634985	39.733462
-4126	3889	3890	0.173108811078515	0.173108811078515	-104.9634771	39.7368204	-104.9634822	39.7383772
-4128	3891	673	0.180805922237936	0.180805922237936	-104.9634356	39.7399908	-104.963462	39.7416167
-4129	673	3892	0.00347134617206091	0.00347134617206091	-104.963462	39.7416167	-104.9634634	39.7416479
-4131	3893	3894	0.173412160606882	0.173412160606882	-104.9634575	39.7432314	-104.9634443	39.7447909
-4132	3894	3686	0.239804659108201	0.239804659108201	-104.9634443	39.7447909	-104.9634548	39.7469475
-4133	3686	3895	0.139339505088047	0.139339505088047	-104.9634548	39.7469475	-104.9634614	39.7482006
-4134	3895	1293	0.0712429362693845	0.0712429362693845	-104.9634614	39.7482006	-104.9634588	39.7488413
-4136	3896	3897	0.00461464942878269	0.00461464942878269	-104.9634682	39.7494224	-104.9634629	39.7494637
-4137	3897	3898	0.00296969221564957	0.00296969221564957	-104.9634629	39.7494637	-104.9634621	39.7494904
-4138	3898	3899	0.135099018741423	0.135099018741423	-104.9634621	39.7494904	-104.9634285	39.7507051
-4139	3899	3900	0.133736401013675	0.133736401013675	-104.9634285	39.7507051	-104.9634376	39.7519078
-4140	3900	826	0.1432668721319	0.1432668721319	-104.9634376	39.7519078	-104.9634614	39.7531961
-4141	826	3567	0.140539270126583	0.140539270126583	-104.9634614	39.7531961	-104.9634611	39.75446
-4142	3567	3901	0.141736858580205	0.141736858580205	-104.9634611	39.75446	-104.9634785	39.7557346
-4143	3901	3902	0.138513379846183	0.138513379846183	-104.9634785	39.7557346	-104.9634441	39.75698
-4144	3902	3903	0.137738276341516	0.137738276341516	-104.9634441	39.75698	-104.9634376	39.7582187
-4145	3903	3041	0.133834213982	0.133834213982	-104.9634376	39.7582187	-104.9634377	39.7594223
-4146	3041	3904	0.143195912483998	0.143195912483998	-104.9634377	39.7594223	-104.9634577	39.76071
-4147	3904	3905	0.00371612313723013	0.00371612313723013	-104.9634577	39.76071	-104.9634562	39.7607434
-4148	3905	3906	0.138485181869722	0.138485181869722	-104.9634562	39.7607434	-104.9634455	39.7619888
-4150	1161	880	0.143460648556329	0.143460648556329	-104.9634876	39.7632183	-104.9634376	39.7645079
-4151	880	3907	0.137181190587279	0.137181190587279	-104.9634376	39.7645079	-104.9634382	39.7657416
-4152	3907	2788	0.133979203320047	0.133979203320047	-104.9634382	39.7657416	-104.9634422	39.7669465
-4154	3908	3909	0.11929025073176	0.11929025073176	-104.9634409	39.7681351	-104.9634376	39.7692079
-4155	3909	3910	0.092551367353814	0.092551367353814	-104.9634376	39.7692079	-104.9634764	39.7700397
-4157	734	1555	0.128698646905998	0.128698646905998	-104.9634771	39.7765229	-104.9634695	39.7776803
-4158	1555	3911	0.10223670466325	0.10223670466325	-104.9634695	39.7776803	-104.9634588	39.7785997
-4159	3911	3912	0.0209102658501846	0.0209102658501846	-104.9634588	39.7785997	-104.9632656	39.7787151
-4160	3913	3914	0.290781445277807	0.290781445277807	-104.963317	39.7183519	-104.9633401	39.7209669
-4161	3914	3915	0.112536676265492	0.112536676265492	-104.9633401	39.7209669	-104.963325	39.7219789
-4162	3915	3916	0.199777886092506	0.199777886092506	-104.963325	39.7219789	-104.9634696	39.7237721
-4163	3916	3917	0.0912727874005277	0.0912727874005277	-104.9634696	39.7237721	-104.963416	39.7245919
-4164	3917	3918	0.112620851967747	0.112620851967747	-104.963416	39.7245919	-104.963425	39.7256047
-4166	3919	1187	0.167283340526576	0.167283340526576	-104.963647	39.7256059	-104.9636558	39.7271103
-4167	1187	3920	0.0212753866211399	0.0212753866211399	-104.9636558	39.7271103	-104.9636605	39.7273016
-4168	3920	3790	0.200229524215252	0.200229524215252	-104.9636605	39.7273016	-104.9636672	39.7291023
-4169	3790	3921	0.153151160013799	0.153151160013799	-104.9636672	39.7291023	-104.9636772	39.7304796
-4170	3921	3922	0.0549370836226997	0.0549370836226997	-104.9636772	39.7304796	-104.9636873	39.7309736
-4171	3923	3924	0.0360721076371334	0.0360721076371334	-104.9635686	39.7725675	-104.9635579	39.7728918
-4174	706	3926	0.117999308023824	0.117999308023824	-105.0041014	39.7624043	-105.0032486	39.7632388
-4175	3926	3702	0.0450373928319521	0.0450373928319521	-105.0032486	39.7632388	-105.0029777	39.7635862
-4176	3702	3927	0.114850773809758	0.114850773809758	-105.0029777	39.7635862	-105.0021843	39.7644198
-4177	3927	3928	0.0608860897951607	0.0608860897951607	-105.0021843	39.7644198	-105.0017582	39.7648586
-4178	3928	3929	0.107271550927247	0.107271550927247	-105.0017582	39.7648586	-105.0010599	39.7656602
-4180	3930	1666	0.1330788885459	0.1330788885459	-105.0005956	39.7668504	-105.0005902	39.7680472
-4181	1666	3931	0.137468360449037	0.137468360449037	-105.0005902	39.7680472	-105.0005716	39.7692834
-4182	3931	2447	0.134834989989903	0.134834989989903	-105.0005716	39.7692834	-105.0005707	39.770496
-4183	2447	3237	0.140199730422516	0.140199730422516	-105.0005707	39.770496	-105.0006308	39.771756
-4184	3237	3933	0.138639782785987	0.138639782785987	-105.0006308	39.771756	-105.0006222	39.7730028
-4185	3933	3934	0.138811739329711	0.138811739329711	-105.0006222	39.7730028	-105.0005888	39.7742509
-4186	3934	3935	0.134204059449961	0.134204059449961	-105.0005888	39.7742509	-105.0005661	39.7754577
-4187	3935	3936	0.123276584845079	0.123276584845079	-105.0005661	39.7754577	-105.0005802	39.7765663
-4189	3937	3938	0.126045478045544	0.126045478045544	-104.9998498	39.7419149	-105.0001475	39.7408047
-4190	3938	3939	0.0651492893105391	0.0651492893105391	-105.0001475	39.7408047	-105.0001493	39.7402188
-4191	3939	3940	0.0221401135391512	0.0221401135391512	-105.0001493	39.7402188	-105.000152	39.7400197
-4192	3940	3941	0.0717318471783874	0.0717318471783874	-105.000152	39.7400197	-105.000152	39.7393746
-4195	3943	3944	0.176615684469352	0.176615684469352	-105.0001422	39.736875	-105.0001574	39.7352867
-4196	3944	3947	0.176604135108539	0.176604135108539	-105.0001574	39.7352867	-105.0001429	39.7336985
-4197	3947	3948	0.122323573259462	0.122323573259462	-105.0001429	39.7336985	-105.0001604	39.7325985
-4198	3948	3949	0.0559214984515419	0.0559214984515419	-105.0001604	39.7325985	-105.0001653	39.7320956
-5481	4892	3459	0.0941890822437752	0.0941890822437752	-104.947281	39.73512	-104.9461795	39.735119
-4199	3949	3950	0.176269184745743	0.176269184745743	-105.0001653	39.7320956	-105.0001773	39.7305104
-4200	3950	3951	0.05590117541301	0.05590117541301	-105.0001773	39.7305104	-105.0001846	39.7300077
-4201	3951	3952	0.122088386939327	0.122088386939327	-105.0001846	39.7300077	-105.0002004	39.7289098
-4202	3952	3953	0.0603148497739477	0.0603148497739477	-105.0002004	39.7289098	-105.0001937	39.7283674
-4203	3953	3954	0.117311769773874	0.117311769773874	-105.0001937	39.7283674	-105.0001997	39.7273124
-4204	3954	3955	0.0719490460324168	0.0719490460324168	-105.0001997	39.7273124	-105.0001889	39.7266654
-4205	3955	3956	0.106538056002006	0.106538056002006	-105.0001889	39.7266654	-105.0001441	39.7257079
-4206	3956	3957	0.177243078500478	0.177243078500478	-105.0001441	39.7257079	-105.0001757	39.7241141
-4207	3957	2623	0.176288453506598	0.176288453506598	-105.0001757	39.7241141	-105.0001766	39.7225287
-4208	2623	3958	0.177546592271005	0.177546592271005	-105.0001766	39.7225287	-105.0002015	39.7209321
-4209	3958	3960	0.168966442415293	0.168966442415293	-105.0002015	39.7209321	-105.0001852	39.7194126
-4210	3960	3961	0.111586533238696	0.111586533238696	-105.0001852	39.7194126	-105.0001766	39.7184091
-4213	3963	3964	0.265623714493738	0.265623714493738	-105.0016187	39.7886302	-105.0017217	39.7910177
-4214	3965	3966	0.511616430940774	0.511616430940774	-105.0003399	39.7837825	-105.0005888	39.7883796
-4216	1726	3967	0.0896760315303362	0.0896760315303362	-105.0185407	39.6908154	-105.0184978	39.6900096
-4217	3967	3968	0.0558858522230369	0.0558858522230369	-105.0184978	39.6900096	-105.0184635	39.6895077
-4218	3968	3969	0.109150490871186	0.109150490871186	-105.0184635	39.6895077	-105.0184567	39.6885261
-4219	3970	3971	0.202576252334461	0.202576252334461	-105.0298017	39.7293298	-105.0298103	39.7311516
-4220	3971	3972	0.199655908563659	0.199655908563659	-105.0298103	39.7311516	-105.0298275	39.7329471
-4221	3972	3973	0.201550568367269	0.201550568367269	-105.0298275	39.7329471	-105.0298507	39.7347596
-4223	3974	3975	0.0432784618651284	0.0432784618651284	-105.0299675	39.7647258	-105.029931	39.765114
-4224	3975	3976	0.0119312921672435	0.0119312921672435	-105.029931	39.765114	-105.0299305	39.7652213
-4225	3976	3977	0.0412856988441699	0.0412856988441699	-105.0299305	39.7652213	-105.029946	39.7655924
-4226	3977	3978	0.00523979822286268	0.00523979822286268	-105.029946	39.7655924	-105.0299479	39.7656395
-4227	3978	3979	0.0456580481243959	0.0456580481243959	-105.0299479	39.7656395	-105.0299437	39.7660501
-4228	3979	3980	0.0491163050630244	0.0491163050630244	-105.0299437	39.7660501	-105.0299392	39.7664918
-4229	3980	3981	0.0519851803283443	0.0519851803283443	-105.0299392	39.7664918	-105.0299345	39.7669593
-4230	3981	1662	0.0500503143032265	0.0500503143032265	-105.0299345	39.7669593	-105.02993	39.7674094
-4231	1662	3982	0.0526516968240738	0.0526516968240738	-105.02993	39.7674094	-105.0299336	39.7678829
-4232	3982	3983	0.0511950181994891	0.0511950181994891	-105.0299336	39.7678829	-105.0299371	39.7683433
-4233	3983	3984	0.0508169123465841	0.0508169123465841	-105.0299371	39.7683433	-105.0299405	39.7688003
-16267	5831	9866	0.203286686616951	0.203286686616951	-104.9586821	39.6911399	-104.9586795	39.6929681
-4234	3984	3985	0.0684638947838088	0.0684638947838088	-105.0299405	39.7688003	-105.0299452	39.769416
-4235	3985	3986	0.0523508233196537	0.0523508233196537	-105.0299452	39.769416	-105.0299471	39.7698868
-4236	3986	3987	0.0497154897229056	0.0497154897229056	-105.0299471	39.7698868	-105.0299489	39.7703339
-4237	3987	2423	0.0326188031399601	0.0326188031399601	-105.0299489	39.7703339	-105.0299558	39.7706272
-4238	2423	3988	0.017392306107988	0.017392306107988	-105.0299558	39.7706272	-105.0299532	39.7707836
-4239	3988	3989	0.0330055324383025	0.0330055324383025	-105.0299532	39.7707836	-105.0299481	39.7710804
-4240	3989	3990	0.0159023099545875	0.0159023099545875	-105.0299481	39.7710804	-105.0299456	39.7712234
-4241	3990	3991	0.049454634736183	0.049454634736183	-105.0299456	39.7712234	-105.0299548	39.7716681
-4244	3992	3993	0.049036974566433	0.049036974566433	-105.0299454	39.772124	-105.029945	39.772565
-4245	3993	3994	0.0522504960301449	0.0522504960301449	-105.029945	39.772565	-105.029945	39.7730349
-4246	3994	3995	0.113779671004445	0.113779671004445	-105.029945	39.7730349	-105.0298909	39.7740573
-4247	3995	3996	0.292866933952659	0.292866933952659	-105.0298909	39.7740573	-105.0298791	39.7766911
-4248	3996	3997	0.135719788812757	0.135719788812757	-105.0298791	39.7766911	-105.0298945	39.7779116
-4249	3997	2492	0.131298969381918	0.131298969381918	-105.0298945	39.7779116	-105.0298945	39.7790924
-4250	2492	2838	0.134023703042734	0.134023703042734	-105.0298945	39.7790924	-105.0298986	39.7802977
-4252	3998	3999	0.177673273882055	0.177673273882055	-105.0299945	39.7165481	-105.0300116	39.7181459
-4253	3999	4000	0.178724202369687	0.178724202369687	-105.0300116	39.7181459	-105.0300062	39.7197532
-4254	4000	4001	0.0914256352612055	0.0914256352612055	-105.0300062	39.7197532	-105.0300116	39.7205754
-4255	1820	4002	0.0854127756728086	0.0854127756728086	-105.0299828	39.7262896	-105.0300499	39.727056
-4256	4002	4003	0.0734940058422204	0.0734940058422204	-105.0300499	39.727056	-105.0300602	39.7277169
-4257	4003	4004	0.122094789640982	0.122094789640982	-105.0300602	39.7277169	-105.0300506	39.7288149
-4260	4006	4007	0.167588698662527	0.167588698662527	-105.0299104	39.7841207	-105.0298927	39.7856278
-4261	4007	4008	0.199884724997956	0.199884724997956	-105.0298927	39.7856278	-105.0298864	39.7874254
-4262	4008	4009	0.0119868161378673	0.0119868161378673	-105.0298864	39.7874254	-105.0298863	39.7875332
-4263	371	1930	0.0503613323391642	0.0503613323391642	-105.0298176	39.7380301	-105.0298394	39.7384827
-4264	1930	1940	0.0838300296248713	0.0838300296248713	-105.0298394	39.7384827	-105.0298414	39.7392366
-4265	1940	4010	0.121947021037263	0.121947021037263	-105.0298414	39.7392366	-105.0298922	39.7403326
-4266	4010	4011	0.132309346356631	0.132309346356631	-105.0298922	39.7403326	-105.0299552	39.7415215
-4267	4011	4012	0.135165905730987	0.135165905730987	-105.0299552	39.7415215	-105.0299375	39.742737
-4268	4012	4013	0.133333876014397	0.133333876014397	-105.0299375	39.742737	-105.0299387	39.7439361
-4270	4014	12	0.13580168948729	0.13580168948729	-105.0299558	39.7451547	-105.0299361	39.7463759
-4271	12	4015	0.00286884184731271	0.00286884184731271	-105.0299361	39.7463759	-105.0299362	39.7464017
-4272	4015	4016	0.132033234839576	0.132033234839576	-105.0299362	39.7464017	-105.0299399	39.7475891
-4273	4016	4017	0.133567851795101	0.133567851795101	-105.0299399	39.7475891	-105.0299442	39.7487903
-4274	4017	4018	0.134726706981619	0.134726706981619	-105.0299442	39.7487903	-105.0299546	39.7500019
-4275	4018	4019	0.130892412762661	0.130892412762661	-105.0299546	39.7500019	-105.0299414	39.751179
-4276	4019	4020	0.134212591203429	0.134212591203429	-105.0299414	39.751179	-105.029938	39.752386
-4277	4020	4021	0.133433911973159	0.133433911973159	-105.029938	39.752386	-105.029938	39.753586
-4278	4021	4022	0.137281795417315	0.137281795417315	-105.029938	39.753586	-105.0299425	39.7548206
-4280	4023	4024	0.0689781307016059	0.0689781307016059	-105.0299339	39.7560479	-105.0299253	39.7566682
-4281	4024	4025	0.0667654814327236	0.0667654814327236	-105.0299253	39.7566682	-105.0299339	39.7572686
-5576	4965	4966	0.209377126181678	0.209377126181678	-105.0250665	39.7049175	-105.027514	39.7049206
-4290	4029	1890	0.0489976212541555	0.0489976212541555	-105.0299179	39.761227	-105.0299096	39.7616676
-4291	1890	4030	0.050071397214541	0.050071397214541	-105.0299096	39.7616676	-105.0299117	39.7621179
-4293	4031	2858	0.24990384929118	0.24990384929118	-105.0014483	39.6972057	-105.0043357	39.6975452
-4301	1703	4036	0.19686036595886	0.19686036595886	-104.9887113	39.6911776	-104.9887542	39.6894075
-4302	4036	4037	2.41616418836648	2.41616418836648	-104.9887542	39.6894075	-104.9888339	39.6676785
-4303	4038	4039	0.0356847858191414	0.0356847858191414	-105.0175833	39.7177827	-105.0178323	39.7180402
-4305	4040	4041	0.105425319125276	0.105425319125276	-105.0250969	39.7181465	-105.0263295	39.7181459
-4306	4041	2256	0.104244973047941	0.104244973047941	-105.0263295	39.7181459	-105.0275483	39.7181459
-4307	2256	4042	0.103519804078257	0.103519804078257	-105.0275483	39.7181459	-105.0287585	39.7181591
-4309	3999	4043	0.105003607246795	0.105003607246795	-105.0300116	39.7181459	-105.031239	39.7181657
-17679	10164	8262	0.207810693253635	0.207810693253635	-104.9860095	39.7800376	-104.9882873	39.7806922
-4315	4048	3390	0.0527412463264476	0.0527412463264476	-105.0343046	39.7181492	-105.0349211	39.7181393
-4316	3390	4049	0.0507539981345734	0.0507539981345734	-105.0349211	39.7181393	-105.0355145	39.7181393
-4317	4049	4050	0.0520284075919789	0.0520284075919789	-105.0355145	39.7181393	-105.0361228	39.7181393
-4318	4050	3408	0.0512087059000605	0.0512087059000605	-105.0361228	39.7181393	-105.0367215	39.7181427
-4319	3408	4051	0.0486341315555791	0.0486341315555791	-105.0367215	39.7181427	-105.0372901	39.7181459
-4320	4051	4053	0.052533034496925	0.052533034496925	-105.0372901	39.7181459	-105.0379043	39.7181459
-4321	4053	4054	0.0524475036704537	0.0524475036704537	-105.0379043	39.7181459	-105.0385175	39.7181459
-4322	4054	4055	0.0498829272923159	0.0498829272923159	-105.0385175	39.7181459	-105.0391007	39.7181492
-4327	4058	4059	0.051190260382352	0.051190260382352	-105.0420963	39.7181446	-105.0426948	39.7181453
-4328	4059	3864	0.0501467689985101	0.0501467689985101	-105.0426948	39.7181453	-105.0432811	39.7181459
-4329	3864	4060	0.0537746384669306	0.0537746384669306	-105.0432811	39.7181459	-105.0439098	39.7181494
-4330	4060	4061	0.0463502740457097	0.0463502740457097	-105.0439098	39.7181494	-105.0444517	39.7181523
-4331	4061	4062	0.0561959746447094	0.0561959746447094	-105.0444517	39.7181523	-105.0451087	39.7181568
-4357	4082	4083	0.157884781724872	0.157884781724872	-105.0063995	39.7838419	-105.0082472	39.7838436
-4332	4062	4063	0.69866413721226	0.69866413721226	-105.0451087	39.7181568	-105.0532725	39.7183717
-4333	1273	4064	0.135036752261437	0.135036752261437	-105.0204988	39.7487979	-105.0220781	39.7487781
-4334	4064	4065	0.129590074598046	0.129590074598046	-105.0220781	39.7487781	-105.0235939	39.7487791
-4335	4065	4066	0.132616575444838	0.132616575444838	-105.0235939	39.7487791	-105.0251451	39.7487806
-4344	4073	1390	0.0502435222683857	0.0502435222683857	-105.0316273	39.7838408	-105.0322152	39.7838328
-4345	1390	4074	0.0493046140403362	0.0493046140403362	-105.0322152	39.7838328	-105.0327922	39.7838345
-4346	4074	4075	0.0491422603337744	0.0491422603337744	-105.0327922	39.7838345	-105.0333673	39.7838362
-4351	4078	4079	0.241190031557862	0.241190031557862	-104.9910214	39.7840807	-104.9938425	39.7841519
-4352	4079	4080	0.258242852029617	0.258242852029617	-104.9938425	39.7841519	-104.9968637	39.7840925
-4353	4080	1629	0.215143938153131	0.215143938153131	-104.9968637	39.7840925	-104.9993614	39.7838485
-4354	1629	3965	0.0839336295727996	0.0839336295727996	-104.9993614	39.7838485	-105.0003399	39.7837825
-4364	1214	4088	0.0489795542886091	0.0489795542886091	-105.0123769	39.7838268	-105.0129501	39.7838266
-4365	4088	4089	0.0498843047924572	0.0498843047924572	-105.0129501	39.7838266	-105.0135338	39.7838344
-4366	4089	4090	0.0487540785114809	0.0487540785114809	-105.0135338	39.7838344	-105.0141021	39.7838734
-4367	4090	2167	0.0506698655714413	0.0506698655714413	-105.0141021	39.7838734	-105.014692	39.7839198
-4368	2167	4091	0.0491950203791528	0.0491950203791528	-105.014692	39.7839198	-105.0152654	39.7839595
-4369	4091	4092	0.0488189222411035	0.0488189222411035	-105.0152654	39.7839595	-105.0158347	39.7839964
-4378	1289	4100	0.0495624053047352	0.0495624053047352	-105.0204845	39.7839453	-105.0210503	39.7840434
-4379	4100	4101	0.0531970268279652	0.0531970268279652	-105.0210503	39.7840434	-105.0216462	39.7841819
-4380	4101	4102	0.0527877658733148	0.0527877658733148	-105.0216462	39.7841819	-105.0222318	39.7843331
-4381	4102	4103	0.0491029186922276	0.0491029186922276	-105.0222318	39.7843331	-105.0227805	39.7844643
-4382	4103	4104	0.053313065445571	0.053313065445571	-105.0227805	39.7844643	-105.0233734	39.7846136
-18127	10262	10268	0.40641745688608	0.40641745688608	-105.0187307	39.7874319	-105.0187307	39.7910869
-4394	4109	2351	0.147790101003017	0.147790101003017	-104.9511309	39.7180926	-104.9509887	39.7194172
-4395	2351	4110	0.174343137234229	0.174343137234229	-104.9509887	39.7194172	-104.9509941	39.7209851
-4396	4110	4111	0.175176728788125	0.175176728788125	-104.9509941	39.7209851	-104.9509907	39.7225605
-4397	4111	4112	0.174887842567366	0.174887842567366	-104.9509907	39.7225605	-104.950986	39.7241333
-4398	4112	4113	0.163616410243985	0.163616410243985	-104.950986	39.7241333	-104.9509997	39.7256047
-14847	9428	3841	0.049872105512027	0.049872105512027	-105.0422446	39.7548692	-105.042828	39.7548692
-14848	3841	9429	0.0507867978829422	0.0507867978829422	-105.042828	39.7548692	-105.0434221	39.7548692
-14849	9429	5551	0.0504705023896622	0.0504705023896622	-105.0434221	39.7548692	-105.0440125	39.7548692
-14850	5551	9430	0.0160626819091423	0.0160626819091423	-105.0440125	39.7548692	-105.0442004	39.7548692
-324	207	268	0.0408317858918375	0.0408317858918375	-104.9565607	39.7445824	-104.9564977	39.7449464
-14851	9430	9431	0.771810690268124	0.771810690268124	-105.0442004	39.7548692	-105.0532289	39.7548401
-14860	2500	9438	0.0367185859571526	0.0367185859571526	-105.0073403	39.7545386	-105.0069699	39.7547058
-14866	8307	6350	0.0205009601935279	0.0205009601935279	-105.0043265	39.7546417	-105.0044986	39.7547701
-14871	2450	3240	0.14088111565627	0.14088111565627	-105.0054661	39.7705389	-105.0054318	39.7718056
-14873	5733	5517	0.138655367104914	0.138655367104914	-105.005421	39.7730569	-105.0054468	39.7743037
-14874	5517	9442	0.136397019838813	0.136397019838813	-105.0054468	39.7743037	-105.0054327	39.7755303
-14875	9442	6920	0.112250527906817	0.112250527906817	-105.0054327	39.7755303	-105.005407	39.7765396
-14877	6505	9443	0.246198454475103	0.246198454475103	-104.9400719	39.7833944	-104.9371907	39.7833908
-14878	9443	9444	0.0254384620147021	0.0254384620147021	-104.9371907	39.7833908	-104.936893	39.7833912
-14879	9444	6994	0.4499142851013	0.4499142851013	-104.936893	39.7833912	-104.9316278	39.7834077
-14880	6994	9445	0.29050322706034	0.29050322706034	-104.9316278	39.7834077	-104.9282294	39.7834798
-14881	9445	2104	0.111341186723118	0.111341186723118	-104.9282294	39.7834798	-104.9269661	39.7837251
-14882	2104	9446	1.81122771510753	1.81122771510753	-104.9269661	39.7837251	-104.90577	39.783825
-14883	5328	6848	0.0996617587695029	0.0996617587695029	-105.0327094	39.7111941	-105.0324406	39.710322
-14884	6848	9012	0.0991299503198925	0.0991299503198925	-105.0324406	39.710322	-105.0324235	39.7094306
-14886	7486	7456	0.0976540916227753	0.0976540916227753	-105.0324321	39.7085458	-105.0324406	39.7076676
-14888	5693	9010	0.102057355365657	0.102057355365657	-105.0324406	39.7067365	-105.0324492	39.7058187
-14889	9010	4967	0.099866873546368	0.099866873546368	-105.0324492	39.7058187	-105.0324406	39.7049206
-14890	4967	9021	0.10207838306375	0.10207838306375	-105.0324406	39.7049206	-105.0324149	39.7040028
-14894	8146	9004	0.111615935651551	0.111615935651551	-105.0324321	39.7013349	-105.0324492	39.7003312
-14896	8691	6102	0.204110733056615	0.204110733056615	-104.9408122	39.711121	-104.9408208	39.7092854
-14898	8202	8814	0.0690569326601991	0.0690569326601991	-104.9408446	39.707351	-104.940835	39.70673
-14900	8175	8161	0.034748414576393	0.034748414576393	-104.9406062	39.7111078	-104.9406062	39.7114203
-14901	8161	9450	0.0195282497941032	0.0195282497941032	-104.9406062	39.7114203	-104.9405977	39.7115958
-14902	9450	9315	0.339258874320837	0.339258874320837	-104.9405977	39.7115958	-104.9406148	39.7146468
-14904	8694	8155	0.0907837492404858	0.0907837492404858	-104.9405987	39.7193935	-104.9395373	39.7193869
-14905	8155	7617	0.0954335805182596	0.0954335805182596	-104.9395373	39.7193869	-104.9384215	39.7193869
-14906	7617	7270	0.0932816974435063	0.0932816974435063	-104.9384215	39.7193869	-104.9373314	39.7193605
-14908	4159	8695	0.0152616593160753	0.0152616593160753	-104.9407748	39.7209356	-104.9405977	39.7209188
-14909	8695	8156	0.0918092963851245	0.0918092963851245	-104.9405977	39.7209188	-104.9395248	39.7208924
-14910	8156	7618	0.0923894575376538	0.0923894575376538	-104.9395248	39.7208924	-104.9384446	39.7208988
-14911	7618	7271	0.0946959525813305	0.0946959525813305	-104.9384446	39.7208988	-104.9373374	39.7208988
-14914	2016	353	0.0344076794786212	0.0344076794786212	-104.9349971	39.720897	-104.9345948	39.720897
-14915	353	9451	0.0583270070041971	0.0583270070041971	-104.9345948	39.720897	-104.933915	39.7209388
-14916	9451	2762	0.099099248852826	0.099099248852826	-104.933915	39.7209388	-104.9327571	39.7209716
-14917	2762	7003	0.098484917717332	0.098484917717332	-104.9327571	39.7209716	-104.9316056	39.7209698
-14918	7003	2266	0.0978645165955224	0.0978645165955224	-104.9316056	39.7209698	-104.9304614	39.7209617
-14919	2266	3595	0.100545762919748	0.100545762919748	-104.9304614	39.7209617	-104.929286	39.7209783
-14920	3595	7518	0.100532638471033	0.100532638471033	-104.929286	39.7209783	-104.9281106	39.7209862
-14921	7518	2095	0.100840428744565	0.100840428744565	-104.9281106	39.7209862	-104.9269316	39.7209784
-14922	2095	5977	0.100495257348787	0.100495257348787	-104.9269316	39.7209784	-104.9257568	39.7209954
-14923	5977	7667	0.098120652849283	0.098120652849283	-104.9257568	39.7209954	-104.9246096	39.7209877
-14924	7667	2331	0.102096265330692	0.102096265330692	-104.9246096	39.7209877	-104.9234159	39.7209939
-14925	2331	9453	0.0789173504157379	0.0789173504157379	-104.9234159	39.7209939	-104.9224932	39.720998
-14926	8149	7608	0.0961605881004872	0.0961605881004872	-104.9394514	39.727421	-104.9383271	39.7274078
-14927	7608	7261	0.102411721946463	0.102411721946463	-104.9383271	39.7274078	-104.93713	39.7274324
-14928	7261	7598	0.095880146438169	0.095880146438169	-104.93713	39.7274324	-104.9360089	39.7274241
-14929	7598	2021	0.09187670783236	0.09187670783236	-104.9360089	39.7274241	-104.9349346	39.7274171
-14930	2021	3354	0.0948528618506519	0.0948528618506519	-104.9349346	39.7274171	-104.9338255	39.7274243
-14932	2767	7012	0.0931566808998339	0.0931566808998339	-104.9327231	39.7274245	-104.9316338	39.7274218
-14934	9454	9455	0.0975625637539845	0.0975625637539845	-104.9405378	39.7758344	-104.9405397	39.7767118
-14937	8700	8158	0.0941289748217691	0.0941289748217691	-104.9405826	39.7382932	-104.9394819	39.7382793
-14939	7604	7255	0.0976568291897231	0.0976568291897231	-104.9383746	39.7382991	-104.937234	39.738254
-14940	7255	7591	0.0955299991432501	0.0955299991432501	-104.937234	39.738254	-104.9361168	39.7382474
-14941	7591	9173	0.0963387600574313	0.0963387600574313	-104.9361168	39.7382474	-104.9349904	39.7382277
-14942	9173	9456	0.0980688321229376	0.0980688321229376	-104.9349904	39.7382277	-104.9338436	39.7382407
-14943	9456	2750	0.102866303298183	0.102866303298183	-104.9338436	39.7382407	-104.9326406	39.738234
-14944	2750	7014	0.0961030844605866	0.0961030844605866	-104.9326406	39.738234	-104.9315168	39.7382474
-14945	7014	8215	0.0956816865795296	0.0956816865795296	-104.9315168	39.7382474	-104.9303979	39.7382593
-14947	8212	7523	0.100548507087909	0.100548507087909	-104.9292134	39.7382659	-104.9280376	39.7382791
-14948	7523	2123	0.0946806328213609	0.0946806328213609	-104.9280376	39.7382791	-104.9269303	39.7382791
-14949	2123	5989	0.102767406722396	0.102767406722396	-104.9269303	39.7382791	-104.9257287	39.7382989
-14950	5989	7670	0.0976490581696009	0.0976490581696009	-104.9257287	39.7382989	-104.9245872	39.7382725
-15962	9768	6397	0.0094036846623539	0.0094036846623539	-105.0005192	39.711198	-105.0006291	39.7111959
-14968	7264	7583	0.0956208531243363	0.0956208531243363	-104.9372465	39.7510554	-104.936128	39.7510533
-14969	7583	2000	0.0924757762963627	0.0924757762963627	-104.936128	39.7510533	-104.9350463	39.751049
-14970	2000	3360	0.0937229366395869	0.0937229366395869	-104.9350463	39.751049	-104.93395	39.7510471
-14971	3360	2754	0.0967493265415074	0.0967493265415074	-104.93395	39.7510471	-104.9328183	39.7510492
-14973	7005	2280	0.0993735606220099	0.0993735606220099	-104.931694	39.751069	-104.9305316	39.7510688
-14974	2280	3602	0.103462577447113	0.103462577447113	-104.9305316	39.7510688	-104.9293214	39.7510754
-14975	3602	7527	0.0995273521026476	0.0995273521026476	-104.9293214	39.7510754	-104.9281577	39.7510492
-14976	7527	2135	0.0983330050282197	0.0983330050282197	-104.9281577	39.7510492	-104.9270076	39.7510624
-14977	2135	5992	0.103459989161242	0.103459989161242	-104.9270076	39.7510624	-104.9257974	39.7510624
-14978	5992	7672	0.100271460506145	0.100271460506145	-104.9257974	39.7510624	-104.9246245	39.7510604
-14979	7672	9462	3.03786386467958	3.03786386467958	-104.9246245	39.7510604	-104.889248	39.7536411
-14980	5809	9463	0.110364660453643	0.110364660453643	-104.9873953	39.7433641	-104.9861093	39.7432784
-14989	9464	5043	0.119299198506528	0.119299198506528	-104.9775584	39.7432677	-104.9761631	39.7432623
-14990	5043	7994	0.118519999914902	0.118519999914902	-104.9761631	39.7432623	-104.9747769	39.7432597
-14991	7994	9236	0.117759209590851	0.117759209590851	-104.9747769	39.7432597	-104.9733996	39.7432566
-14992	9236	7973	0.0614780310106107	0.0614780310106107	-104.9733996	39.7432566	-104.9726808	39.7432422
-14994	7142	5131	0.10575888699282	0.10575888699282	-104.9721403	39.7432453	-104.9709034	39.7432539
-14995	5131	4724	0.10504840556341	0.10504840556341	-104.9709034	39.7432539	-104.9696749	39.7432396
-14996	4724	6791	0.107330054626072	0.107330054626072	-104.9696749	39.7432396	-104.9684196	39.7432459
-14997	6791	7363	0.103200510788566	0.103200510788566	-104.9684196	39.7432459	-104.9672126	39.7432396
-14998	7363	5422	0.104113985923971	0.104113985923971	-104.9672126	39.7432396	-104.9659949	39.7432355
-14999	5422	8554	0.105490524385859	0.105490524385859	-104.9659949	39.7432355	-104.9647611	39.7432314
-15000	8554	3893	0.111457422157238	0.111457422157238	-104.9647611	39.7432314	-104.9634575	39.7432314
-15001	3893	1024	0.103888468957379	0.103888468957379	-104.9634575	39.7432314	-104.9622425	39.7432211
-15002	1024	9465	0.0550364598534795	0.0550364598534795	-104.9622425	39.7432211	-104.9615988	39.7432195
-15003	9465	6269	0.0513684711391166	0.0513684711391166	-104.9615988	39.7432195	-104.960998	39.7432181
-15006	9467	9468	0.0801572222360596	0.0801572222360596	-104.9851948	39.7400592	-104.9861285	39.7401238
-15007	9468	5030	0.106840142374901	0.106840142374901	-104.9861285	39.7401238	-104.987378	39.7401161
-18579	3437	7765	0.0485278339531173	0.0485278339531173	-105.0346118	39.7802216	-105.0351796	39.7802141
-15009	6619	8699	0.0954507670467869	0.0954507670467869	-104.9394962	39.7364792	-104.9405829	39.7366755
-15010	8699	9469	0.014222614535116	0.014222614535116	-104.9405829	39.7366755	-104.9407436	39.7367085
-15013	7107	455	0.0456695914542558	0.0456695914542558	-104.9418165	39.7367415	-104.9423505	39.7367494
-15015	860	9470	0.0919474974486486	0.0919474974486486	-104.9428903	39.736756	-104.9439656	39.7367599
-15016	9470	9471	0.0500014374448159	0.0500014374448159	-104.9439656	39.7367599	-104.9445503	39.7367663
-15017	9471	6021	0.0453621576916579	0.0453621576916579	-104.9445503	39.7367663	-104.9450808	39.7367678
-15018	6021	9472	0.0470758089061738	0.0470758089061738	-104.9450808	39.7367678	-104.9456312	39.7367775
-15019	9472	3460	0.0470036762545936	0.0470036762545936	-104.9456312	39.7367775	-104.9461809	39.7367783
-15020	3460	7685	0.0954954207572325	0.0954954207572325	-104.9461809	39.7367783	-104.9472977	39.7367808
-15021	7685	8021	0.0933841388460347	0.0933841388460347	-104.9472977	39.7367808	-104.9483898	39.736785
-15022	8021	6698	0.0960778131259482	0.0960778131259482	-104.9483898	39.736785	-104.9495133	39.7367726
-15023	6698	4136	0.0911259816816344	0.0911259816816344	-104.9495133	39.7367726	-104.9505787	39.7367922
-15025	2663	8548	0.0930424439627818	0.0930424439627818	-104.9516859	39.7368054	-104.952774	39.7368006
-15026	8548	8547	0.100542623889621	0.100542623889621	-104.952774	39.7368006	-104.9539498	39.736794
-15027	8547	7338	0.099089032401214	0.099089032401214	-104.9539498	39.736794	-104.9551086	39.7368006
-15028	7338	7883	0.0990804723784167	0.0990804723784167	-104.9551086	39.7368006	-104.9562673	39.7368072
-15030	3337	5025	0.101286501750056	0.101286501750056	-104.9574002	39.7368138	-104.9585847	39.7368072
-15031	5025	9473	0.0504081121726349	0.0504081121726349	-104.9585847	39.7368072	-104.9591742	39.7368105
-15032	9473	8728	0.0508783896228212	0.0508783896228212	-104.9591742	39.7368105	-104.9597692	39.7368138
-15033	8728	3720	0.054613750451979	0.054613750451979	-104.9597692	39.7368138	-104.9604079	39.7368138
-16212	9849	7734	1.41107486941703	1.41107486941703	-104.9751748	39.6766887	-104.9751677	39.6893788
-15034	3720	6265	0.0510651820396187	0.0510651820396187	-104.9604079	39.7368138	-104.9610051	39.7368138
-15035	6265	9474	0.0526179865653065	0.0526179865653065	-104.9610051	39.7368138	-104.9616204	39.7368204
-15036	9474	1019	0.0530796783692756	0.0530796783692756	-104.9616204	39.7368204	-104.9622411	39.736827
-15037	1019	3889	0.105690016076173	0.105690016076173	-104.9622411	39.736827	-104.9634771	39.7368204
-15038	3889	8550	0.11082035773048	0.11082035773048	-104.9634771	39.7368204	-104.9647731	39.736827
-15039	8550	5418	0.102756492849076	0.102756492849076	-104.9647731	39.736827	-104.9659747	39.7368138
-15040	5418	7359	0.109377907466232	0.109377907466232	-104.9659747	39.7368138	-104.9672536	39.7368336
-15041	7359	6787	0.102485488457906	0.102485488457906	-104.9672536	39.7368336	-104.9684521	39.7368249
-15044	9414	5118	0.0507526262754685	0.0507526262754685	-104.9700963	39.736882	-104.9706897	39.7368921
-15047	7151	9476	0.0506273642355044	0.0506273642355044	-104.9718371	39.7368817	-104.9724291	39.7368742
-15048	9476	8834	0.0494473424354765	0.0494473424354765	-104.9724291	39.7368742	-104.9730073	39.7368668
-15049	8834	6016	0.046054397015081	0.046054397015081	-104.9730073	39.7368668	-104.9735459	39.7368668
-15051	979	5330	0.0485530564436786	0.0485530564436786	-104.9741314	39.7368706	-104.9746992	39.7368668
-15052	5330	8003	0.0503217691422663	0.0503217691422663	-104.9746992	39.7368668	-104.9752877	39.7368647
-15053	8003	6342	0.0507584862620106	0.0507584862620106	-104.9752877	39.7368647	-104.9758813	39.7368678
-15054	6342	5051	0.0488177307212986	0.0488177307212986	-104.9758813	39.7368678	-104.976452	39.7368799
-15055	5051	6690	0.0488248354973201	0.0488248354973201	-104.976452	39.7368799	-104.977023	39.7368798
-15056	6690	9477	0.0468154058850837	0.0468154058850837	-104.977023	39.7368798	-104.9775705	39.7368798
-15059	9313	7101	0.0478106623792446	0.0478106623792446	-104.9787299	39.7368736	-104.9792889	39.7368832
-15060	7101	8880	0.0490142389962295	0.0490142389962295	-104.9792889	39.7368832	-104.9798621	39.7368864
-15061	8880	7420	0.0493429457759385	0.0493429457759385	-104.9798621	39.7368864	-104.9804389	39.7368731
-15062	7420	8874	0.0545354482418663	0.0545354482418663	-104.9804389	39.7368731	-104.9810766	39.7368811
-15064	7430	8793	0.0542698797022772	0.0542698797022772	-104.9816663	39.7368655	-104.9823009	39.7368732
-15065	8793	7862	0.0521693260437922	0.0521693260437922	-104.9823009	39.7368732	-104.982911	39.7368701
-395	399	5	0.209508946543956	0.209508946543956	-104.9349127	39.7804818	-104.9373334	39.780183
-15066	7862	8787	0.05844527692302	0.05844527692302	-104.982911	39.7368701	-104.9835945	39.7368673
-15067	8787	7957	0.0531372993824669	0.0531372993824669	-104.9835945	39.7368673	-104.9842157	39.7368542
-15068	7957	9478	0.0541270300244316	0.0541270300244316	-104.9842157	39.7368542	-104.9848486	39.7368452
-15069	9478	9479	0.108902531529915	0.108902531529915	-104.9848486	39.7368452	-104.9861222	39.7368448
-15072	4481	9480	0.0910756678915429	0.0910756678915429	-104.9417177	39.7657064	-104.9406528	39.7656775
-15074	8706	9481	0.10111000413597	0.10111000413597	-104.9404758	39.7656404	-104.9392929	39.7656311
-15075	9481	9175	0.105113918003998	0.105113918003998	-104.9392929	39.7656311	-104.9380631	39.7656342
-15076	9175	7259	0.105567381342615	0.105567381342615	-104.9380631	39.7656342	-104.936828	39.7656384
-15077	7259	7589	0.103856965848258	0.103856965848258	-104.936828	39.7656384	-104.9356129	39.7656394
-15079	3366	2770	0.104765166628809	0.104765166628809	-104.9343764	39.7656425	-104.9331507	39.7656487
-15080	2770	9176	0.11373488606323	0.11373488606323	-104.9331507	39.7656487	-104.9318203	39.7656281
-15081	9176	2260	0.11073804654165	0.11073804654165	-104.9318203	39.7656281	-104.9305261	39.7655817
-15082	2260	3611	0.0999509846289259	0.0999509846289259	-104.9305261	39.7655817	-104.9293567	39.7655827
-15083	3611	7516	0.100649754002954	0.100649754002954	-104.9293567	39.7655827	-104.9281792	39.765593
-15084	7516	2109	0.103508831759163	0.103508831759163	-104.9281792	39.765593	-104.9269682	39.7655992
-15085	2109	5999	0.10202033489304	0.10202033489304	-104.9269682	39.7655992	-104.9257746	39.7656033
-15086	5999	7660	0.0994984857017093	0.0994984857017093	-104.9257746	39.7656033	-104.9246105	39.7656064
-15087	7660	2328	0.04986487628669	0.04986487628669	-104.9246105	39.7656064	-104.9240271	39.7656085
-15118	9482	9225	0.0953635356752473	0.0953635356752473	-104.9407267	39.776725	-104.9407352	39.7758674
-15120	9455	301	0.129823177853557	0.129823177853557	-104.9405397	39.7767118	-104.9405292	39.7778793
-15116	9490	8276	0.218414071885788	0.218414071885788	-104.9975705	39.7571365	-104.9977757	39.7551786
-15121	301	8269	0.152583336977896	0.152583336977896	-104.9405292	39.7778793	-104.9404976	39.7792513
-15126	226	8268	0.0760384791094216	0.0760384791094216	-104.940692	39.7797323	-104.9407004	39.7790485
-15128	225	9482	0.128957275100235	0.128957275100235	-104.9407032	39.7778846	-104.9407267	39.776725
-15130	9491	460	0.0667391949721685	0.0667391949721685	-104.9405035	39.7797395	-104.9405035	39.7803397
-15132	460	575	0.113707068563865	0.113707068563865	-104.9405035	39.7803397	-104.9404777	39.7813621
-15133	575	6199	0.0290617477448439	0.0290617477448439	-104.9404777	39.7813621	-104.9404705	39.7816234
-15135	9492	8244	0.032549465488295	0.032549465488295	-104.9497268	39.7819174	-104.9498727	39.781647
-15136	8244	9493	0.0198582826309584	0.0198582826309584	-104.9498727	39.781647	-104.9498899	39.7814689
-15138	6689	228	0.0134361080204136	0.0134361080204136	-104.9497884	39.7789167	-104.949699	39.7790161
-15139	228	9494	0.0329072670561094	0.0329072670561094	-104.949699	39.7790161	-104.9496925	39.779312
-15140	9494	9495	0.0242107567854742	0.0242107567854742	-104.9496925	39.779312	-104.9496974	39.7795297
-15142	9496	9497	0.0238335404645399	0.0238335404645399	-104.9498734	39.7795231	-104.949868	39.7793088
-15143	9497	9498	0.0343814713189183	0.0343814713189183	-104.949868	39.7793088	-104.949868	39.7789996
-15966	7623	6935	0.205023089639109	0.205023089639109	-105.0062462	39.7112115	-105.008643	39.711203
-15967	6935	5889	0.201769701232267	0.201769701232267	-105.008643	39.711203	-105.0110016	39.7111799
-15968	5889	7449	0.284161489263658	0.284161489263658	-105.0110016	39.7111799	-105.014321	39.711079
-15969	7449	1636	0.117888722564013	0.117888722564013	-105.014321	39.711079	-105.0156951	39.7111605
-15970	1636	8998	0.102786876242831	0.102786876242831	-105.0156951	39.7111605	-105.0168967	39.7111539
-15972	4214	8094	0.0961834163674376	0.0961834163674376	-105.0180211	39.7111539	-105.0191455	39.7111473
-15973	8094	194	0.104992906429488	0.104992906429488	-105.0191455	39.7111473	-105.0203728	39.7111341
-15974	194	2923	0.0991259111035959	0.0991259111035959	-105.0203728	39.7111341	-105.0215316	39.7111407
-15975	2923	5306	0.0991964539292107	0.0991964539292107	-105.0215316	39.7111407	-105.0226912	39.7111319
-15976	5306	1461	0.0983899476582488	0.0983899476582488	-105.0226912	39.7111319	-105.0238413	39.7111451
-15977	1461	5434	0.104614166406686	0.104614166406686	-105.0238413	39.7111451	-105.0250638	39.7111718
-15978	5434	5973	0.107640436770916	0.107640436770916	-105.0250638	39.7111718	-105.0263219	39.7111517
-15979	5973	9014	0.00660364948230504	0.00660364948230504	-105.0263219	39.7111517	-105.0263991	39.7111517
-15980	9014	7915	0.0975740293794765	0.0975740293794765	-105.0263991	39.7111517	-105.0275397	39.7111407
-15981	7915	6437	0.105749746230322	0.105749746230322	-105.0275397	39.7111407	-105.0287757	39.7111605
-16016	9786	9159	0.00790012825467591	0.00790012825467591	-104.9960586	39.703233	-104.9961123	39.7031752
-15982	6437	4420	0.102051245715481	0.102051245715481	-105.0287757	39.7111605	-105.0299687	39.7111671
-15985	5328	7056	0.0812625038007973	0.0812625038007973	-105.0327094	39.7111941	-105.0336594	39.7111935
-15986	7056	9772	0.0538313043287529	0.0538313043287529	-105.0336594	39.7111935	-105.0342887	39.7111901
-15987	9772	4318	0.0518980074233638	0.0518980074233638	-105.0342887	39.7111901	-105.0348954	39.7111869
-15988	4318	9452	0.0516277273460522	0.0516277273460522	-105.0348954	39.7111869	-105.0354984	39.7112068
-15990	4506	4116	0.0518058126204102	0.0518058126204102	-105.036097	39.7112265	-105.0367025	39.7112166
-15991	4116	7809	0.0517374039809394	0.0517374039809394	-105.0367025	39.7112166	-105.0373072	39.7112067
-15992	7809	5068	0.0991665346425536	0.0991665346425536	-105.0373072	39.7112067	-105.038466	39.7112331
-15993	5068	9773	0.0531370753578357	0.0531370753578357	-105.038466	39.7112331	-105.0390872	39.7112331
-15994	9773	6836	0.0533167080983746	0.0533167080983746	-105.0390872	39.7112331	-105.0397105	39.7112331
-15995	6836	6978	0.101324072393449	0.101324072393449	-105.0397105	39.7112331	-105.040895	39.7112397
-15996	6978	7941	0.102826343168107	0.102826343168107	-105.040895	39.7112397	-105.0420966	39.7112662
-15997	7941	9015	0.0975512129036908	0.0975512129036908	-105.0420966	39.7112662	-105.043237	39.711272
-15998	9015	6780	0.448938989090037	0.448938989090037	-105.043237	39.711272	-105.0484853	39.7112864
-15999	6780	9774	0.408854845876832	0.408854845876832	-105.0484853	39.7112864	-105.0532648	39.7113225
-16000	9076	9768	0.0663101767153915	0.0663101767153915	-104.999744	39.711198	-105.0005192	39.711198
-16004	9776	1455	0.0526013194004238	0.0526013194004238	-105.004167	39.6923239	-105.0039409	39.6927638
-16006	9777	1736	0.0786842572590025	0.0786842572590025	-105.0060257	39.6906026	-105.0057005	39.6912645
-16092	526	9805	0.0239836164906123	0.0239836164906123	-104.9499002	39.7803085	-104.9498921	39.7800929
-16044	9806	9807	0.10708389115039	0.10708389115039	-105.0037663	39.6918863	-105.0050077	39.6920085
-16046	9808	9779	0.598201231733375	0.598201231733375	-104.9924203	39.68926	-104.9993937	39.6888781
-16048	9809	8448	0.00611949423172489	0.00611949423172489	-104.9828551	39.6889832	-104.9827836	39.688982
-16050	497	315	0.38487204905166	0.38487204905166	-105.0147909	39.7286028	-105.0132442	39.7253524
-16051	315	9125	0.309277404563432	0.309277404563432	-105.0132442	39.7253524	-105.0111017	39.7231117
-16053	9092	238	0.378305028269765	0.378305028269765	-105.0245174	39.7255447	-105.0289409	39.7255444
-14687	2318	2393	0.204381692629994	0.204381692629994	-104.9711696	39.7237463	-104.971187	39.7255843
-16054	238	599	0.20185675523074	0.20185675523074	-105.0289409	39.7255444	-105.0313012	39.7255444
-16055	599	9810	1.85367980178975	1.85367980178975	-105.0313012	39.7255444	-105.0529735	39.7258084
-16057	4648	9242	0.316343707887743	0.316343707887743	-105.0186498	39.72565	-105.0223459	39.7257626
-16530	9931	9230	0.37930803087461	0.37930803087461	-104.9975856	39.7082938	-104.9961257	39.7050728
-16060	8979	9416	0.148643981954463	0.148643981954463	-104.9905824	39.7719014	-104.99143	39.7707341
-16062	9129	442	0.133338694466943	0.133338694466943	-105.0154242	39.731054	-105.01561	39.7322446
-16063	442	341	0.15400049730887	0.15400049730887	-105.01561	39.7322446	-105.0154562	39.7336245
-16064	341	8432	0.0419891636299648	0.0419891636299648	-105.0154562	39.7336245	-105.0153422	39.7339918
-16066	8912	8951	0.033170976893888	0.033170976893888	-104.9956858	39.7676849	-104.9953492	39.7678334
-16068	9812	8911	0.0471463735469582	0.0471463735469582	-104.9915921	39.7695911	-104.9912548	39.7699266
-16070	8259	6154	0.322113932922047	0.322113932922047	-104.9757153	39.7797326	-104.9794838	39.7796685
-16072	8262	9813	0.347409770060633	0.347409770060633	-104.9882873	39.7806922	-104.9922437	39.7814112
-16073	9813	8849	0.384076686987265	0.384076686987265	-104.9922437	39.7814112	-104.9966205	39.782197
-16075	8850	8934	0.249988221702048	0.249988221702048	-104.9897894	39.7769264	-104.9901787	39.7746982
-15149	1055	2652	0.0975577285651678	0.0975577285651678	-104.9529111	39.7804333	-104.951864	39.7807829
-15178	9518	9519	0.0502534780761684	0.0502534780761684	-105.0416701	39.740356	-105.0422578	39.7403509
-15150	2652	6953	0.198623612037648	0.198623612037648	-104.951864	39.7807829	-104.9500616	39.7819108
-15152	9492	9502	0.376572648781266	0.376572648781266	-104.9497268	39.7819174	-104.9534622	39.7801206
-15156	3293	102	0.41551161582069	0.41551161582069	-104.9427803	39.703814	-104.9415109	39.7002071
-15160	4010	9505	0.052772682936521	0.052772682936521	-105.0298922	39.7403326	-105.0305094	39.7403332
-15161	9505	7047	0.0525680538450832	0.0525680538450832	-105.0305094	39.7403332	-105.0311242	39.7403355
-15162	7047	7019	0.0303888581356532	0.0303888581356532	-105.0311242	39.7403355	-105.0314796	39.7403377
-15163	7019	9506	0.0673030688563473	0.0673030688563473	-105.0314796	39.7403377	-105.0322667	39.7403316
-15164	9506	9507	0.0483154741652978	0.0483154741652978	-105.0322667	39.7403316	-105.0328316	39.7403209
-15165	9507	7386	0.0202051235057141	0.0202051235057141	-105.0328316	39.7403209	-105.0330679	39.7403194
-16629	9962	9963	0.200783522780218	0.200783522780218	-104.9592628	39.7399435	-104.9616093	39.739874
-15167	9508	9509	0.0505081496090435	0.0505081496090435	-105.0334112	39.7403128	-105.0340019	39.7403161
-15169	3381	9510	0.054679375210741	0.054679375210741	-105.0346043	39.7403194	-105.0352438	39.7403194
-15170	9510	9511	0.0487967465713328	0.0487967465713328	-105.0352438	39.7403194	-105.0358145	39.7403194
-15175	9515	9516	0.0511072604930319	0.0511072604930319	-105.0381491	39.7403326	-105.0387468	39.7403366
-15176	9516	9517	0.199298430530572	0.199298430530572	-105.0387468	39.7403366	-105.0410776	39.740352
-15177	9517	9518	0.0506626460359665	0.0506626460359665	-105.0410776	39.740352	-105.0416701	39.740356
-15179	9519	9520	0.0992839733792875	0.0992839733792875	-105.0422578	39.7403509	-105.0434189	39.740341
-2659	2617	2618	0.0492730897550554	0.0492730897550554	-104.9957832	39.7225228	-104.9963593	39.7225267
-15180	9520	5591	0.0515928611698618	0.0515928611698618	-105.0434189	39.740341	-105.0440223	39.7403422
-15181	5591	9521	0.0485416940170638	0.0485416940170638	-105.0440223	39.7403422	-105.04459	39.7403388
-15182	9521	7534	0.0495967074681937	0.0495967074681937	-105.04459	39.7403388	-105.04517	39.7403326
-15183	7534	9522	0.687013260502188	0.687013260502188	-105.04517	39.7403326	-105.0532048	39.7403683
-15184	4010	253	0.115254186613677	0.115254186613677	-105.0298922	39.7403326	-105.0285448	39.740303
-15185	253	9523	0.265666797076755	0.265666797076755	-105.0285448	39.740303	-105.0254385	39.740357
-16090	9493	9818	0.0359382002911722	0.0359382002911722	-104.9498899	39.7814689	-104.9498899	39.7811457
-16093	9805	9821	0.0110994776170347	0.0110994776170347	-104.9498921	39.7800929	-104.9498895	39.7799931
-16096	9495	9822	0.0517988653877033	0.0517988653877033	-104.9496974	39.7795297	-104.9497205	39.7799952
-16097	9822	9823	0.0110663007110829	0.0110663007110829	-104.9497205	39.7799952	-104.9497178	39.7800947
-16098	9823	525	0.0383908840803154	0.0383908840803154	-104.9497178	39.7800947	-104.9497096	39.7804399
-16099	525	9824	0.0469464980296333	0.0469464980296333	-104.9497096	39.7804399	-104.9497096	39.7808621
-16107	214	9827	0.778079889437356	0.778079889437356	-104.9627533	39.7801312	-104.9718556	39.7799532
-16108	9827	8266	0.110384878461573	0.110384878461573	-104.9718556	39.7799532	-104.9731431	39.7798728
-16109	8266	8259	0.22035773346297	0.22035773346297	-104.9731431	39.7798728	-104.9757153	39.7797326
-16111	426	5290	0.135279903383581	0.135279903383581	-105.0252144	39.7427283	-105.0252168	39.7439449
-16112	5290	6969	0.13394711160262	0.13394711160262	-105.0252168	39.7439449	-105.0252247	39.7451495
-16113	6969	9	0.133723176212026	0.133723176212026	-105.0252247	39.7451495	-105.0252223	39.7463521
-12362	8672	8673	0.0280927507040958	0.0280927507040958	-105.011589	39.7530795	-105.0113745	39.7528881
-16114	9	6393	0.135759876984547	0.135759876984547	-105.0252223	39.7463521	-105.0252309	39.747573
-16116	543	2417	0.140823258017981	0.140823258017981	-105.0222025	39.7405643	-105.0238493	39.7405447
-16117	2417	8309	0.134744289641959	0.134744289641959	-105.0238493	39.7405447	-105.0254224	39.7404725
-16121	9523	8323	0.0490645159279825	0.0490645159279825	-105.0254385	39.740357	-105.0248659	39.7403859
-16122	8323	2296	0.111956296963114	0.111956296963114	-105.0248659	39.7403859	-105.0235583	39.7404384
-16123	2296	425	0.133707313641353	0.133707313641353	-105.0235583	39.7404384	-105.0219946	39.7404498
-16125	8580	9121	0.223068039429751	0.223068039429751	-105.0251093	39.7234923	-105.022529	39.7237852
-16129	4649	7955	0.0999111170250792	0.0999111170250792	-105.0186468	39.7257296	-105.0198149	39.7257444
-16130	7955	9828	0.0800171872297717	0.0800171872297717	-105.0198149	39.7257444	-105.0207505	39.725751
-16131	9829	8581	0.047687571765354	0.047687571765354	-105.0256672	39.7245362	-105.0251096	39.7245361
-16133	9073	1815	0.113861635058861	0.113861635058861	-105.0251226	39.7293097	-105.0264272	39.7291051
-16134	1815	9030	0.0294613091189667	0.0294613091189667	-105.0264272	39.7291051	-105.0266512	39.7293064
-16135	9030	9035	0.0740720067279475	0.0740720067279475	-105.0266512	39.7293064	-105.0275173	39.7293147
-16136	9035	2259	0.0101253625653209	0.0101253625653209	-105.0275173	39.7293147	-105.0276357	39.7293142
-16137	2259	6127	0.0869883467865613	0.0869883467865613	-105.0276357	39.7293142	-105.0286529	39.7293168
-16138	6127	3970	0.0982525233162176	0.0982525233162176	-105.0286529	39.7293168	-105.0298017	39.7293298
-16139	3970	4005	0.0213357195383616	0.0213357195383616	-105.0298017	39.7293298	-105.0300506	39.7293166
-16170	9839	7732	1.81004213705151	1.81004213705151	-104.9763369	39.6731074	-104.9763378	39.6893855
-16140	4005	9831	0.0527909920856998	0.0527909920856998	-105.0300506	39.7293166	-105.0306678	39.7293074
-16143	7028	9832	0.0518403992809488	0.0518403992809488	-105.0312846	39.729303	-105.0318908	39.729303
-16144	9832	1405	0.0193610465151665	0.0193610465151665	-105.0318908	39.729303	-105.0321172	39.729303
-16145	1405	9086	0.0330290864914803	0.0330290864914803	-105.0321172	39.729303	-105.0325034	39.7293066
-16146	9086	9833	0.0517615954401031	0.0517615954401031	-105.0325034	39.7293066	-105.0331086	39.7293141
-16147	9833	7389	0.013992344500971	0.013992344500971	-105.0331086	39.7293141	-105.0332722	39.7293161
-16148	7389	7381	0.039974198258354	0.039974198258354	-105.0332722	39.7293161	-105.0337396	39.7293113
-16149	7381	5215	0.0612246627137571	0.0612246627137571	-105.0337396	39.7293113	-105.0344555	39.7293058
-16150	5215	3395	0.05711231452959	0.05711231452959	-105.0344555	39.7293058	-105.0351232	39.7293166
-16152	7953	9834	0.0172080507351113	0.0172080507351113	-105.0198924	39.7392785	-105.019887	39.7394332
-16154	9834	274	0.0658337540289098	0.0658337540289098	-105.019887	39.7394332	-105.0198763	39.7400252
-16156	2189	9835	0.248404343096233	0.248404343096233	-105.0159036	39.7398341	-105.0143087	39.7379669
-16214	8735	9837	1.99433693652165	1.99433693652165	-104.9740308	39.6892204	-104.9740442	39.6712849
-16215	8737	9838	0.871081020569746	0.871081020569746	-104.9716711	39.6881426	-104.9716482	39.6803088
-4419	2776	4130	0.131599235651272	0.131599235651272	-104.9511832	39.7669218	-104.9511844	39.7681053
-16159	9143	9028	0.680206597840058	0.680206597840058	-105.0032713	39.7288521	-105.0112026	39.7293142
-16163	722	8058	0.174054831255352	0.174054831255352	-105.004084	39.7289511	-105.0040758	39.7305164
-16164	8058	521	0.0821177779256467	0.0821177779256467	-105.0040758	39.7305164	-105.0040731	39.7312549
-16165	521	6603	0.0924366308750619	0.0924366308750619	-105.0040731	39.7312549	-105.0040758	39.7320862
-16166	6603	5373	0.180047417371753	0.180047417371753	-105.0040758	39.7320862	-105.0040704	39.7337054
-16168	1948	2528	0.0688038536836977	0.0688038536836977	-105.0095234	39.7384742	-105.010328	39.7384824
-16333	7146	2907	0.104983935013538	0.104983935013538	-104.9721238	39.7620063	-104.9733504	39.7620548
-16334	2907	7925	0.0494998939900097	0.0494998939900097	-104.9733504	39.7620548	-104.9739262	39.7620073
-16338	3444	3467	0.0304982971000002	0.0304982971000002	-104.9462569	39.7617553	-104.9459001	39.7617543
-16339	3467	8082	0.246312262462312	0.246312262462312	-104.9459001	39.7617543	-104.9430328	39.7615337
-16342	8704	8153	0.0931754474511838	0.0931754474511838	-104.9404955	39.7617894	-104.9394065	39.7618265
-16343	8153	7614	0.0941189496630448	0.0941189496630448	-104.9394065	39.7618265	-104.9383054	39.7618296
-16344	7614	7267	0.0948021938707784	0.0948021938707784	-104.9383054	39.7618296	-104.9371963	39.7618306
-16345	7267	7586	0.0921634745405222	0.0921634745405222	-104.9371963	39.7618306	-104.9361181	39.7618368
-16346	7586	7587	0.0431064926802277	0.0431064926802277	-104.9361181	39.7618368	-104.9356138	39.7618347
-16347	7587	2005	0.0500940428381568	0.0500940428381568	-104.9356138	39.7618347	-104.9350278	39.7618409
-16348	2005	3364	0.0956080752868491	0.0956080752868491	-104.9350278	39.7618409	-104.9339093	39.7618471
-16349	3364	2759	0.0936601356465838	0.0936601356465838	-104.9339093	39.7618471	-104.9328136	39.7618543
-16350	2759	7009	0.0948690491965415	0.0948690491965415	-104.9328136	39.7618543	-104.9317039	39.7618388
-16352	2285	3605	0.100419536914451	0.100419536914451	-104.9305592	39.7618327	-104.9293844	39.7618378
-16353	3605	7531	0.0985834303955712	0.0985834303955712	-104.9293844	39.7618378	-104.9282311	39.761845
-16354	7531	2140	0.105692387990087	0.105692387990087	-104.9282311	39.761845	-104.9269946	39.7618481
-16355	2140	5996	0.104777507715381	0.104777507715381	-104.9269946	39.7618481	-104.9257688	39.7618503
-16356	5996	7676	0.0990116406010299	0.0990116406010299	-104.9257688	39.7618503	-104.9246105	39.7618584
-16357	7676	9874	1.60848579675559	1.60848579675559	-104.9246105	39.7618584	-104.9057927	39.7618262
-17199	2711	10073	0.10997712384001	0.10997712384001	-105.0233999	39.7473921	-105.0225148	39.7466744
-16358	9875	2326	1.55889022258017	1.55889022258017	-104.9057918	39.7619791	-104.9240294	39.7620162
-16360	5997	2127	0.151773007567564	0.151773007567564	-104.9258117	39.7620121	-104.9275873	39.7620069
-16361	2127	3609	0.151558147644208	0.151558147644208	-104.9275873	39.7620069	-104.9293603	39.7619925
-16362	3609	7010	0.212760869396779	0.212760869396779	-104.9293603	39.7619925	-104.9318494	39.7619997
-16365	3365	2006	0.0553745270182344	0.0553745270182344	-104.93438	39.7620028	-104.9350278	39.7619977
-16366	2006	7588	0.0502101113635407	0.0502101113635407	-104.9350278	39.7619977	-104.9356152	39.7619945
-16367	7588	7258	0.104315488387994	0.104315488387994	-104.9356152	39.7619945	-104.9368356	39.7619935
-16368	7258	7615	0.106145187491952	0.106145187491952	-104.9368356	39.7619935	-104.9380774	39.7619904
-16369	7615	9877	0.104437372352784	0.104437372352784	-104.9380774	39.7619904	-104.9392992	39.7619966
-16429	9892	3407	0.0665957848901693	0.0665957848901693	-104.9695204	39.6969176	-104.9699417	39.6974212
-16430	3407	9893	0.16801404607557	0.16801404607557	-104.9699417	39.6974212	-104.9715317	39.698308
-16433	9895	9896	0.440540235104303	0.440540235104303	-104.9718554	39.6986422	-104.9713614	39.7025858
-16436	9897	9898	0.0704932318773383	0.0704932318773383	-104.968823	39.6933724	-104.9681189	39.6930432
-16438	95	3655	0.111235679997702	0.111235679997702	-104.9551461	39.7002095	-104.9546075	39.70112
-16440	9899	5747	0.0711149911978779	0.0711149911978779	-104.9676535	39.6937356	-104.9676964	39.6930969
-16445	9902	9903	0.536321309295718	0.536321309295718	-104.9732597	39.6931641	-104.9732302	39.6979873
-16453	9908	9909	0.550826257700494	0.550826257700494	-104.9731739	39.7014254	-104.9730512	39.7063782
-16458	9907	9908	0.00771583659604379	0.00771583659604379	-104.9730961	39.7013903	-104.9731739	39.7014254
-16460	9909	9912	0.0865311626257968	0.0865311626257968	-104.9730512	39.7063782	-104.9726409	39.7070895
-16461	9912	9910	0.0378168798460609	0.0378168798460609	-104.9726409	39.7070895	-104.9724845	39.7074076
-16471	3282	9916	0.18653100874984	0.18653100874984	-104.9687946	39.7020548	-104.9687858	39.7003773
-16473	9917	8680	0.0249041944601551	0.0249041944601551	-104.9694498	39.7035446	-104.9691913	39.7036476
-19510	10535	10536	0.0273195782326388	0.0273195782326388	-104.9882297	39.7088075	-104.9879104	39.7088024
-16475	8507	9918	0.021850852998121	0.021850852998121	-104.9777748	39.7546175	-104.9779759	39.7547388
-16476	9918	3018	0.0101317448895217	0.0101317448895217	-104.9779759	39.7547388	-104.9780672	39.7547969
-16478	9919	9920	0.0829003664734834	0.0829003664734834	-104.9871822	39.7475219	-104.9862126	39.7475301
-16479	9921	3681	0.0300651916457247	0.0300651916457247	-104.9835546	39.7478188	-104.9836002	39.7475507
-16668	9926	9974	0.105582813458159	0.105582813458159	-105.005919	39.7444156	-105.0070019	39.7439592
-16669	9588	1633	0.0730557533632891	0.0730557533632891	-105.0043197	39.7412126	-105.0035017	39.7410228
-16671	9928	9975	0.0177169257267767	0.0177169257267767	-105.0062945	39.7430132	-105.0061758	39.7428826
-117	124	125	0.0336263849765442	0.0336263849765442	-105.0043775	39.7602205	-105.0040777	39.7604163
-16672	9975	9929	0.0234356081852519	0.0234356081852519	-105.0061758	39.7428826	-105.0061216	39.7430892
-16674	9976	9977	0.0468170562405583	0.0468170562405583	-105.0075867	39.7422556	-105.0080641	39.7420494
-16710	104	7825	0.0602462277844684	0.0602462277844684	-104.9874778	39.7002508	-104.9875714	39.7007878
-16712	104	3757	0.402008044434906	0.402008044434906	-104.9874778	39.7002508	-104.9873962	39.696636
-16713	3757	1487	0.204145741130723	0.204145741130723	-104.9873962	39.696636	-104.9874337	39.6948003
-16714	1487	132	0.199447130341484	0.199447130341484	-104.9874337	39.6948003	-104.9874659	39.6930068
-16716	1701	5546	0.198096603236586	0.198096603236586	-104.9875011	39.6911908	-104.9874887	39.6894093
-16777	69	3510	0.205561826495526	0.205561826495526	-104.9675826	39.7002312	-104.9675508	39.6983827
-4421	1201	4132	0.0220332988005433	0.0220332988005433	-104.9505615	39.7271353	-104.9505673	39.7273334
-16718	7283	485	0.11761309283436	0.11761309283436	-104.9871988	39.7019884	-104.9862761	39.7027725
-16720	10003	3244	0.0554692551325786	0.0554692551325786	-104.9862718	39.703372	-104.9862629	39.7038708
-16721	3244	7234	0.20486059291662	0.20486059291662	-104.9862629	39.7038708	-104.9862815	39.7057131
-16722	7234	1896	0.200393401337734	0.200393401337734	-104.9862815	39.7057131	-104.9863459	39.7075146
-16723	1896	6106	0.199619177779868	0.199619177779868	-104.9863459	39.7075146	-104.9863727	39.7093097
-16724	6106	3190	0.204209613390108	0.204209613390108	-104.9863727	39.7093097	-104.98637	39.7111462
-16725	3190	3074	0.20155062603718	0.20155062603718	-104.98637	39.7111462	-104.9862922	39.7129578
-17204	10076	9899	0.140445516840247	0.140445516840247	-104.9687509	39.6946749	-104.9676535	39.6937356
-17206	10077	9891	0.365702001724341	0.365702001724341	-104.968787	39.6999605	-104.9688482	39.696672
-17210	9916	551	0.0168353379628002	0.0168353379628002	-104.9687858	39.7003773	-104.9687844	39.7002259
-17211	551	10077	0.029511971826839	0.029511971826839	-104.9687844	39.7002259	-104.968787	39.6999605
-17221	9830	5174	0.203086414023487	0.203086414023487	-104.9774882	39.7146931	-104.9774882	39.7165195
-17225	7299	3774	0.0270450210392685	0.0270450210392685	-104.9774985	39.7020281	-104.9774885	39.7022712
-17227	10078	240	0.11490035547177	0.11490035547177	-104.9763987	39.6910611	-104.9752801	39.6904894
-17229	240	241	0.0697724132050665	0.0697724132050665	-104.9752801	39.6904894	-104.9745995	39.6901438
-17230	241	242	0.0623380559401012	0.0623380559401012	-104.9745995	39.6901438	-104.9739987	39.6898267
-17231	242	243	0.121807717540091	0.121807717540091	-104.9739987	39.6898267	-104.9728142	39.6892191
-17238	246	247	0.10870569104286	0.10870569104286	-104.9683485	39.6870395	-104.9672584	39.6865375
-17239	247	248	0.0772679392991742	0.0772679392991742	-104.9672584	39.6865375	-104.966468	39.6862015
-17241	235	3406	0.0743704107751119	0.0743704107751119	-104.9695743	39.6967741	-104.9701665	39.6972637
-17242	3406	10079	0.167074762801468	0.167074762801468	-104.9701665	39.6972637	-104.9716804	39.6982128
-17244	331	10014	0.0356018290483491	0.0356018290483491	-104.9522901	39.745499	-104.952676	39.7456193
-17245	10014	8533	0.134990804356131	0.134990804356131	-104.952676	39.7456193	-104.9542138	39.7458945
-17247	510	8534	0.190527366373376	0.190527366373376	-104.9547886	39.7479501	-104.9544306	39.7462589
-17249	9649	6335	0.0185334131201332	0.0185334131201332	-104.98616	39.7263757	-104.9861535	39.7265423
-17250	6335	10080	0.0823637888630556	0.0823637888630556	-104.9861535	39.7265423	-104.9861473	39.727283
-17251	10080	3812	0.199228355515768	0.199228355515768	-104.9861473	39.727283	-104.9861426	39.7290747
-17252	3812	5918	0.151375161417453	0.151375161417453	-104.9861426	39.7290747	-104.9861275	39.730436
-17254	917	2204	0.201707005619294	0.201707005619294	-104.9861344	39.7320479	-104.9861103	39.7338618
-17255	2204	4853	0.158074944552835	0.158074944552835	-104.9861103	39.7338618	-104.9861135	39.7352834
-17506	10119	8389	0.0881257330115891	0.0881257330115891	-105.0129247	39.7389937	-105.0124419	39.7396939
-17514	10115	4493	0.0857000040414071	0.0857000040414071	-105.0062313	39.7401322	-105.0052303	39.740093
-17515	4493	10122	0.00789608138487867	0.00789608138487867	-105.0052303	39.740093	-105.0051382	39.7400878
-17516	10122	10123	0.0829902602540724	0.0829902602540724	-105.0051382	39.7400878	-105.0041704	39.7400311
-17517	10123	3738	0.117121022748715	0.117121022748715	-105.0041704	39.7400311	-105.0028007	39.7400199
-16415	3033	3034	0.026586968802262	0.026586968802262	-104.9700513	39.702674	-104.9699305	39.7024537
-17518	3738	5617	0.105494461178937	0.105494461178937	-105.0028007	39.7400199	-105.0015669	39.7400197
-17519	5617	10124	0.0771328841888806	0.0771328841888806	-105.0015669	39.7400197	-105.0006648	39.7400196
-18717	1848	7866	0.175365518810985	0.175365518810985	-105.0343209	39.721329	-105.0343209	39.7197519
-17520	10124	3940	0.0438462962781839	0.0438462962781839	-105.0006648	39.7400196	-105.000152	39.7400197
-18649	10111	1854	0.1585792263447	0.1585792263447	-105.0379043	39.7199053	-105.0379177	39.7213314
-17522	6651	7970	0.100526894140491	0.100526894140491	-104.9999603	39.7400202	-104.9987846	39.7400184
-17523	7970	10125	0.0156643759566378	0.0156643759566378	-104.9987846	39.7400184	-104.9986014	39.7400179
-17525	342	10126	0.0436005942347808	0.0436005942347808	-105.0138715	39.7367088	-105.0137696	39.737093
-17527	10126	10121	0.0408685827486489	0.0408685827486489	-105.0137696	39.737093	-105.0137025	39.7374569
-17529	8016	10127	0.0296331396909763	0.0296331396909763	-104.9993111	39.7412509	-104.9989934	39.7413574
-17533	9200	10128	0.0316360066553629	0.0316360066553629	-104.9994716	39.7422305	-104.9997264	39.7420242
-17535	10128	3937	0.0160944313012695	0.0160944313012695	-104.9997264	39.7420242	-104.9998498	39.7419149
-17537	10125	10129	0.0323384241188202	0.0323384241188202	-104.9986014	39.7400179	-104.9982232	39.7400157
-17540	8937	10130	0.0382349269331771	0.0382349269331771	-104.9891177	39.7851166	-104.9891097	39.7854604
-18160	6035	10256	0.201529974874074	0.201529974874074	-105.0141159	39.7856183	-105.0141119	39.7874307
-18081	3725	3961	0.10669546577579	0.10669546577579	-104.9989294	39.7183897	-105.0001766	39.7184091
-18082	3961	5599	0.120037242247265	0.120037242247265	-105.0001766	39.7184091	-105.0015794	39.7184418
-18083	5599	10212	0.0720417181829305	0.0720417181829305	-105.0015794	39.7184418	-105.0024206	39.7184748
-18085	6582	8060	0.177813026382298	0.177813026382298	-104.9881664	39.732053	-104.9881587	39.7304539
-18087	79	3516	0.204359090736991	0.204359090736991	-104.9634844	39.7002269	-104.9634676	39.6983891
-18089	10257	1076	0.140362637117951	0.140362637117951	-105.010685	39.7858675	-105.009052	39.7857306
-18092	8839	10258	0.0505579939719693	0.0505579939719693	-105.0112028	39.7874224	-105.0117945	39.7874239
-18093	10258	1216	0.0474392361763922	0.0474392361763922	-105.0117945	39.7874239	-105.0123497	39.7874253
-18094	1216	6309	0.0509984491369365	0.0509984491369365	-105.0123497	39.7874253	-105.0129465	39.7874317
-18095	6309	4788	0.0491735679878017	0.0491735679878017	-105.0129465	39.7874317	-105.013522	39.787431
-18418	8332	8359	0.203675131612914	0.203675131612914	-105.0398789	39.7621198	-105.0399031	39.7639514
-18096	4788	10256	0.0504039235105897	0.0504039235105897	-105.013522	39.787431	-105.0141119	39.7874307
-18098	2169	10259	0.0494310424509836	0.0494310424509836	-105.0146868	39.7874303	-105.0152653	39.7874334
-18099	10259	6301	0.0486534339401342	0.0486534339401342	-105.0152653	39.7874334	-105.0158347	39.7874364
-18100	6301	10260	0.0495166429402865	0.0495166429402865	-105.0158347	39.7874364	-105.0164142	39.7874331
-18101	10260	6428	0.0494555977491468	0.0494555977491468	-105.0164142	39.7874331	-105.016993	39.7874341
-18102	6428	10261	0.0500541316962619	0.0500541316962619	-105.016993	39.7874341	-105.0175788	39.787432
-18103	10261	8837	0.049703265213276	0.049703265213276	-105.0175788	39.787432	-105.0181605	39.7874319
-18104	8837	10262	0.0487206483354329	0.0487206483354329	-105.0181605	39.7874319	-105.0187307	39.7874319
-18105	10262	4661	0.0502842889238415	0.0502842889238415	-105.0187307	39.7874319	-105.0193192	39.7874319
-18210	6766	8919	0.14588598272053	0.14588598272053	-105.0275892	39.7716046	-105.0258833	39.771558
-18215	6383	6883	0.201049789723751	0.201049789723751	-105.0422527	39.763944	-105.04223	39.765752
-18217	9380	6467	0.149037633666744	0.149037633666744	-105.0434002	39.7766311	-105.0434114	39.7752908
-18218	6467	5528	0.155039270882985	0.155039270882985	-105.0434114	39.7752908	-105.0434142	39.7738965
-18219	5528	5739	0.157509840329179	0.157509840329179	-105.0434142	39.7738965	-105.043424	39.77248
-18220	5739	2443	0.171457541049395	0.171457541049395	-105.043424	39.77248	-105.0434409	39.7709381
-18221	2443	9373	0.174175733096206	0.174175733096206	-105.0434409	39.7709381	-105.0434409	39.7693717
-18222	9373	1695	0.20076305206058	0.20076305206058	-105.0434409	39.7693717	-105.0434467	39.7675662
-18224	6884	8362	0.203398590237467	0.203398590237467	-105.0434307	39.76575	-105.0434239	39.7639208
-18225	8362	8336	0.20070690829837	0.20070690829837	-105.0434239	39.7639208	-105.043422	39.7621158
-18226	8336	7851	0.201718717149991	0.201718717149991	-105.043422	39.7621158	-105.0434222	39.7603017
-18228	9334	6072	0.194542227529238	0.194542227529238	-105.042148	39.7838703	-105.0421669	39.7856198
-18229	6072	2552	0.201793795787929	0.201793795787929	-105.0421669	39.7856198	-105.0421454	39.7874345
-18231	10282	2550	0.408975962052575	0.408975962052575	-105.0409706	39.791112	-105.0409813	39.787434
-18233	6070	9333	0.193859431649891	0.193859431649891	-105.0409894	39.7856189	-105.0409786	39.7838755
-18235	3976	7037	0.199530180994258	0.199530180994258	-105.0299305	39.7652213	-105.0322649	39.7652109
-200	212	213	0.0847562945477418	0.0847562945477418	-104.9665616	39.779672	-104.9655888	39.7798206
-18390	3978	7038	0.19806787554915	0.19806787554915	-105.0299479	39.7656395	-105.0322651	39.7656196
-18392	3425	3425	0.000442266584977921	0.000442266584977921	-105.034629	39.7657398	-105.0346312	39.7657434
-18397	9331	6062	0.201652000193759	0.201652000193759	-105.0351853	39.7838062	-105.0351851	39.7856197
-18398	6062	2541	0.201129932352607	0.201129932352607	-105.0351851	39.7856197	-105.0351796	39.7874285
-18581	5716	10279	0.0494611669239994	0.0494611669239994	-105.0357784	39.7802062	-105.0363572	39.7802082
-18582	10279	7436	0.0477007849303031	0.0477007849303031	-105.0363572	39.7802082	-105.0369154	39.7802101
-18583	7436	10283	0.0501702475316452	0.0501702475316452	-105.0369154	39.7802101	-105.0375025	39.7802085
-17420	10101	10103	0.0112555006692224	0.0112555006692224	-104.9831564	39.6890637	-104.9831832	39.6889646
-18584	10283	7175	0.0483500943699416	0.0483500943699416	-105.0375025	39.7802085	-105.0380683	39.7802069
-18585	7175	6738	0.0504392554289189	0.0504392554289189	-105.0380683	39.7802069	-105.0386585	39.7802009
-18586	6738	7790	0.0494479351051842	0.0494479351051842	-105.0386585	39.7802009	-105.0392371	39.780195
-18587	7790	6666	0.0500428725179926	0.0500428725179926	-105.0392371	39.780195	-105.0398227	39.780198
-19485	10408	10409	0.0449233009136641	0.0449233009136641	-104.9883415	39.7101799	-104.9883441	39.7097759
-18958	4669	4949	0.0991091352300086	0.0991091352300086	-104.994016	39.720921	-104.9951748	39.720921
-18959	4949	10410	0.051350182738824	0.051350182738824	-104.9951748	39.720921	-104.9957751	39.7209292
-18961	7220	10411	0.0512063955237151	0.0512063955237151	-104.9963617	39.7209372	-104.9969604	39.7209341
-18962	10411	5674	0.0503168586815151	0.0503168586815151	-104.9969604	39.7209341	-104.9975487	39.7209311
-18964	5851	1441	0.115857091100705	0.115857091100705	-105.0025228	39.7148211	-105.0038773	39.7148211
-18965	1441	10412	0.122824478936007	0.122824478936007	-105.0038773	39.7148211	-105.0053132	39.7148113
-18966	10412	7622	0.0791461153811418	0.0791461153811418	-105.0053132	39.7148113	-105.0062385	39.7148085
-18967	7622	6933	0.202629079077677	0.202629079077677	-105.0062385	39.7148085	-105.0086074	39.7148217
-18968	6933	5888	0.202049147826104	0.202049147826104	-105.0086074	39.7148217	-105.0109694	39.7148443
-18969	5888	10407	0.149951393120126	0.149951393120126	-105.0109694	39.7148443	-105.0127225	39.7148426
-18971	4142	7756	0.106122091000002	0.106122091000002	-104.9827054	39.7147303	-104.9814659	39.7146886
-18973	3621	1827	0.0998991515255571	0.0998991515255571	-104.9803587	39.7146886	-104.9791916	39.7147225
-18974	1827	10091	0.0457369036734835	0.0457369036734835	-104.9791916	39.7147225	-104.9786569	39.7147194
-18975	10091	10090	0.0485102588443954	0.0485102588443954	-104.9786569	39.7147194	-104.9780898	39.7147143
-18976	10090	5102	0.00428121670773934	0.00428121670773934	-104.9780898	39.7147143	-104.9780399	39.7147113
-18977	5102	9830	0.0472330884345854	0.0472330884345854	-104.9780399	39.7147113	-104.9774882	39.7146931
-18978	9830	1764	0.0499536922707767	0.0499536922707767	-104.9774882	39.7146931	-104.9769042	39.7146962
-19245	5031	10461	0.0349404698955745	0.0349404698955745	-104.9884893	39.7405273	-104.9888698	39.7406419
-19246	10461	10462	0.146091635323691	0.146091635323691	-104.9888698	39.7406419	-104.9904372	39.7401189
-19247	10462	5803	0.103032761304249	0.103032761304249	-104.9904372	39.7401189	-104.9916422	39.7401229
-19249	10129	4929	0.0162234814669486	0.0162234814669486	-104.9982232	39.7400157	-104.9980335	39.7400187
-19250	4929	2997	0.0775054077358341	0.0775054077358341	-104.9980335	39.7400187	-104.9971271	39.7400109
-19251	2997	7215	0.0556994645707447	0.0556994645707447	-104.9971271	39.7400109	-104.9964757	39.7400063
-19252	7215	4943	0.101417024663026	0.101417024663026	-104.9964757	39.7400063	-104.9952896	39.7400105
-19253	4943	4680	0.100527034724402	0.100527034724402	-104.9952896	39.7400105	-104.9941139	39.7400082
-19254	4680	7861	0.10148450975115	0.10148450975115	-104.9941139	39.7400082	-104.992927	39.7400066
-19255	7861	5802	0.109659923162335	0.109659923162335	-104.992927	39.7400066	-104.9916445	39.7400016
-19256	5802	8768	0.114010676979814	0.114010676979814	-104.9916445	39.7400016	-104.9903111	39.740001
-19257	8768	10464	0.134804410176221	0.134804410176221	-104.9903111	39.740001	-104.9888814	39.740512
-19258	10464	338	0.0847524339031626	0.0847524339031626	-104.9888814	39.740512	-104.9880444	39.7401037
-19259	338	10465	0.0582049460436449	0.0582049460436449	-104.9880444	39.7401037	-104.9873778	39.7399976
-19261	9467	561	0.02991036647086	0.02991036647086	-104.9851948	39.7400592	-104.984845	39.7400568
-15187	8324	9523	0.0327715210342319	0.0327715210342319	-105.0252084	39.7401213	-105.0254385	39.740357
-15189	9403	6744	0.131603339182178	0.131603339182178	-105.0252739	39.7499939	-105.0268132	39.7499821
-15190	6744	6144	0.131367316381262	0.131367316381262	-105.0268132	39.7499821	-105.0283496	39.7500019
-15191	6144	4018	0.137213550559119	0.137213550559119	-105.0283496	39.7500019	-105.0299546	39.7500019
-15192	4018	7022	0.137229962505115	0.137229962505115	-105.0299546	39.7500019	-105.0315597	39.7499887
-15193	7022	7392	0.129151524081427	0.129151524081427	-105.0315597	39.7499887	-105.0330703	39.7500019
-15195	9524	9525	0.0293502828068984	0.0293502828068984	-105.0336803	39.7499978	-105.0340236	39.7499955
-15196	9525	3400	0.0502879609443278	0.0502879609443278	-105.0340236	39.7499955	-105.0346118	39.7499915
-15198	9212	8374	0.0509876682022625	0.0509876682022625	-105.0351931	39.7499892	-105.0357895	39.7499869
-15199	8374	9526	0.0501407630476736	0.0501407630476736	-105.0357895	39.7499869	-105.036376	39.7499878
-15201	7443	9527	0.0485275735168955	0.0485275735168955	-105.036967	39.7499887	-105.0375346	39.7499841
-15202	9527	7160	0.0501690368011668	0.0501690368011668	-105.0375346	39.7499841	-105.0381214	39.7499794
-15204	9528	7772	0.0491757515961192	0.0491757515961192	-105.0387229	39.7499763	-105.0392981	39.7499733
-19414	3251	7295	0.215557365491205	0.215557365491205	-104.9798629	39.70396	-104.9798441	39.7020215
-19415	7295	38	0.193056632398898	0.193056632398898	-104.9798441	39.7020215	-104.9798443	39.7002853
-19416	38	3537	0.207444876530122	0.207444876530122	-104.9798443	39.7002853	-104.9798091	39.6984199
-19417	3537	4232	0.199406339345135	0.199406339345135	-104.9798091	39.6984199	-104.979804	39.6966266
-19419	3248	7289	0.216790622749105	0.216790622749105	-104.9821867	39.7039406	-104.9821695	39.701991
-19420	7289	34	0.19126988034169	0.19126988034169	-104.9821695	39.701991	-104.982156	39.7002709
-19660	6763	3987	0.201101495268523	0.201101495268523	-105.0275974	39.7702694	-105.0299489	39.7703339
-19664	9366	9360	0.104402218346712	0.104402218346712	-105.0211194	39.7692754	-105.0211255	39.7702143
-19665	9360	10609	0.0511942469588291	0.0511942469588291	-105.0211255	39.7702143	-105.0211243	39.7697539
-19666	10609	10608	0.151226661870126	0.151226661870126	-105.0211243	39.7697539	-105.0228937	39.7697604
-19668	10608	10610	0.149537813443153	0.149537813443153	-105.0228937	39.7697604	-105.0246432	39.7697786
-19674	1809	10611	0.33816836736717	0.33816836736717	-105.0077397	39.7522023	-105.0097356	39.7495766
-19676	10376	10403	0.0245741855053009	0.0245741855053009	-105.0120158	39.75012	-105.0122636	39.750008
-19678	10612	1810	0.127204321184034	0.127204321184034	-105.0098938	39.7498133	-105.0094107	39.7508953
-19681	10613	10400	0.0511661482023126	0.0511661482023126	-105.0138421	39.7489553	-105.0134743	39.7485923
-16697	7094	9611	0.00886963723885407	0.00886963723885407	-105.00026	39.7424182	-105.0002927	39.7424939
-19683	10614	10404	0.0688061700167682	0.0688061700167682	-105.0100065	39.7499782	-105.0107841	39.7498186
-19873	9513	4580	0.132311871209248	0.132311871209248	-105.0369818	39.740326	-105.0369879	39.7415159
-19684	10404	10611	0.093589959625359	0.093589959625359	-105.0107841	39.7498186	-105.0097356	39.7495766
-17421	10103	10082	0.0236886540751766	0.0236886540751766	-104.9831832	39.6889646	-104.9834085	39.6888408
-19685	10611	10612	0.0295914472405657	0.0295914472405657	-105.0097356	39.7495766	-105.0098938	39.7498133
-19686	10612	10614	0.0207133170517971	0.0207133170517971	-105.0098938	39.7498133	-105.0100065	39.7499782
-19688	10615	10399	0.0680853608411523	0.0680853608411523	-105.0130481	39.74858	-105.0126923	39.7491278
-19742	8865	3778	0.153182304960692	0.153182304960692	-104.9456473	39.7304952	-104.94565	39.7291176
-19743	3778	10251	0.199472712546792	0.199472712546792	-104.94565	39.7291176	-104.9456527	39.7273237
-20418	10775	10774	0.0781617215430941	0.0781617215430941	-105.0243213	39.7599965	-105.0243795	39.760698
-19804	10646	2619	0.0523061501297365	0.0523061501297365	-104.9969581	39.7230021	-104.9969572	39.7225317
-19839	10655	10656	0.208642261382715	0.208642261382715	-105.0381325	39.7365924	-105.0381528	39.7384687
-19840	10656	9515	0.207256465232075	0.207256465232075	-105.0381528	39.7384687	-105.0381491	39.7403326
-19841	9515	4581	0.131476935756536	0.131476935756536	-105.0381491	39.7403326	-105.0381505	39.741515
-19842	4581	8369	0.136571452698726	0.136571452698726	-105.0381505	39.741515	-105.0381422	39.7427432
-19843	8369	5296	0.134437189399661	0.134437189399661	-105.0381422	39.7427432	-105.0381646	39.7439521
-19849	9510	10659	0.196832023994668	0.196832023994668	-105.0352438	39.7403194	-105.035226	39.7385493
-19850	10659	10660	0.00933491084100046	0.00933491084100046	-105.035226	39.7385493	-105.0352222	39.7384654
-19857	10663	10664	0.203268481110854	0.203268481110854	-105.0428156	39.736637	-105.0428308	39.738465
-19858	10664	4584	0.340902950197611	0.340902950197611	-105.0428308	39.738465	-105.0428428	39.7415308
-19859	4584	6443	0.133958738324445	0.133958738324445	-105.0428428	39.7415308	-105.0428338	39.7427355
-19860	6443	5300	0.13749324562242	0.13749324562242	-105.0428338	39.7427355	-105.042839	39.743972
-19862	10665	7406	0.149893826243372	0.149893826243372	-104.9969526	39.7179403	-104.9969848	39.7165925
-19865	10667	9512	0.206545737430627	0.206545737430627	-105.0363945	39.7384652	-105.0364026	39.7403227
-608	599	600	0.326867712180581	0.326867712180581	-105.0313012	39.7255444	-105.0351121	39.7257688
-19870	10669	10666	0.0946602410525992	0.0946602410525992	-105.03696	39.7365924	-105.03696	39.7374437
-19871	10666	10670	0.114297265097593	0.114297265097593	-105.03696	39.7374437	-105.03696	39.7384716
-19872	10670	9513	0.206208296842551	0.206208296842551	-105.03696	39.7384716	-105.0369818	39.740326
-20654	6734	10882	0.0587106683934502	0.0587106683934502	-105.0187898	39.7597001	-105.0184964	39.7601775
-19874	4580	8368	0.136014360939856	0.136014360939856	-105.0369879	39.7415159	-105.0369827	39.7427391
-19875	8368	3817	0.133956606983629	0.133956606983629	-105.0369827	39.7427391	-105.0369844	39.7439438
-19887	627	10669	0.00369254651812945	0.00369254651812945	-105.0369171	39.7365886	-105.03696	39.7365924
-19888	10669	10673	0.0509541857454109	0.0509541857454109	-105.03696	39.7365924	-105.0375559	39.7365924
-19889	10673	7185	0.0463624089792375	0.0463624089792375	-105.0375559	39.7365924	-105.0380981	39.7365924
-19890	7185	10655	0.00294147338451417	0.00294147338451417	-105.0380981	39.7365924	-105.0381325	39.7365924
-19891	10655	10658	0.0513792379314705	0.0513792379314705	-105.0381325	39.7365924	-105.0387333	39.7365995
-19892	10658	9726	0.0479329871824602	0.0479329871824602	-105.0387333	39.7365995	-105.0392938	39.7366062
-19893	9726	10654	0.050711837363241	0.050711837363241	-105.0392938	39.7366062	-105.0398868	39.736613
-19894	10654	1102	0.049608905570541	0.049608905570541	-105.0398868	39.736613	-105.0404669	39.7366198
-19895	1102	10674	0.051538155846358	0.051538155846358	-105.0404669	39.7366198	-105.0410696	39.7366244
-19896	10674	7514	0.0472454257465845	0.0472454257465845	-105.0410696	39.7366244	-105.0416221	39.7366286
-19897	7514	10675	0.00204366911425749	0.00204366911425749	-105.0416221	39.7366286	-105.041646	39.7366287
-19898	10675	10650	0.0481859646371305	0.0481859646371305	-105.041646	39.7366287	-105.0422095	39.7366329
-19899	10650	3868	0.0500586048613679	0.0500586048613679	-105.0422095	39.7366329	-105.0427949	39.7366372
-16182	5547	1702	0.197838014226301	0.197838014226301	-104.9881577	39.6894044	-104.9881579	39.6911836
-19900	3868	10663	0.00177015306197821	0.00177015306197821	-105.0427949	39.7366372	-105.0428156	39.736637
-19902	10676	5589	0.0437900336804139	0.0437900336804139	-105.0434166	39.7366408	-105.0439287	39.736644
-19975	9710	10678	0.0499234178433857	0.0499234178433857	-105.0322594	39.7384585	-105.0328432	39.738465
-19976	10678	9722	0.0489092169162438	0.0489092169162438	-105.0328432	39.738465	-105.0334152	39.738465
-19977	9722	10686	0.0503973293919778	0.0503973293919778	-105.0334152	39.738465	-105.0340046	39.7384634
-19978	10686	3380	0.0518081278246911	0.0518081278246911	-105.0340046	39.7384634	-105.0346105	39.7384619
-19979	3380	10660	0.0523052391085021	0.0523052391085021	-105.0346105	39.7384619	-105.0352222	39.7384654
-19980	10660	10679	0.0495088072044065	0.0495088072044065	-105.0352222	39.7384654	-105.0358012	39.7384625
-19981	10679	10667	0.0507313759263116	0.0507313759263116	-105.0358012	39.7384625	-105.0363945	39.7384652
-19982	10667	10670	0.0483586645716411	0.0483586645716411	-105.0363945	39.7384652	-105.03696	39.7384716
-19983	10670	10680	0.0518679752837857	0.0518679752837857	-105.03696	39.7384716	-105.0375666	39.7384701
-19984	10680	10656	0.050123635320888	0.050123635320888	-105.0375666	39.7384701	-105.0381528	39.7384687
-19985	10656	10657	0.0496280116055878	0.0496280116055878	-105.0381528	39.7384687	-105.0387332	39.7384666
-19986	10657	9727	0.0488069327339047	0.0488069327339047	-105.0387332	39.7384666	-105.039304	39.7384682
-19989	1103	10684	0.0492526075164636	0.0492526075164636	-105.0404962	39.738465	-105.0410722	39.7384617
-656	646	647	0.146781335789774	0.146781335789774	-104.9354861	39.7413613	-104.9337694	39.7413613
-20153	9416	8943	0.363005134814212	0.363005134814212	-104.99143	39.7707341	-104.9945316	39.7685038
-20155	9241	426	0.0770893533882784	0.0770893533882784	-105.0252006	39.7420351	-105.0252144	39.7427283
-20157	461	6171	0.271278721099677	0.271278721099677	-104.9888564	39.7783921	-104.9860994	39.7796015
-20161	1795	8719	0.00999704268874585	0.00999704268874585	-104.9792579	39.6947744	-104.9792566	39.6946845
-20163	4233	1795	0.205432809418909	0.205432809418909	-104.9792547	39.6966219	-104.9792579	39.6947744
-20165	3252	7296	0.216277689734072	0.216277689734072	-104.9792822	39.7039665	-104.9792677	39.7020215
-20166	7296	39	0.192678596239665	0.192678596239665	-104.9792677	39.7020215	-104.9792689	39.7002887
-20167	39	3538	0.207091579860447	0.207091579860447	-104.9792689	39.7002887	-104.9792415	39.6984264
-20168	3538	4234	0.200695550258567	0.200695550258567	-104.9792415	39.6984264	-104.979217	39.6966216
-20170	6489	3675	0.150803028705812	0.150803028705812	-104.9787322	39.7461798	-104.9787278	39.747536
-20172	9313	4863	0.191918567433925	0.191918567433925	-104.9787299	39.7368736	-104.9787104	39.7351477
-20173	4863	2213	0.160028953629168	0.160028953629168	-104.9787104	39.7351477	-104.9786913	39.7337086
-20174	2213	928	0.187511558441934	0.187511558441934	-104.9786913	39.7337086	-104.9786778	39.7320223
-17423	10083	10104	0.109040593432451	0.109040593432451	-104.9836553	39.6886261	-104.9838931	39.6876627
-20175	928	5932	0.175834480120689	0.175834480120689	-104.9786778	39.7320223	-104.9787119	39.7304412
-20176	5932	3804	0.153555987473657	0.153555987473657	-104.9787119	39.7304412	-104.9787675	39.7290609
-20178	3804	10247	0.200040701273324	0.200040701273324	-104.9787675	39.7290609	-104.978775	39.7272619
-20181	6549	4768	0.17858020416066	0.17858020416066	-104.9787573	39.7240931	-104.9787498	39.7224871
-20185	10705	8247	0.0550533285282311	0.0550533285282311	-104.9639599	39.787996	-104.963496	39.7883396
-15205	7772	9040	0.0507978153373748	0.0507978153373748	-105.0392981	39.7499733	-105.0398922	39.7499655
-15206	9040	1113	0.0497891730866418	0.0497891730866418	-105.0398922	39.7499655	-105.0404745	39.7499577
-15208	9529	7493	0.0494909698776819	0.0494909698776819	-105.0410698	39.7499582	-105.0416487	39.7499586
-15209	7493	9169	0.051731129981418	0.051731129981418	-105.0416487	39.7499586	-105.0422538	39.749957
-15210	9169	3835	0.0502567043103765	0.0502567043103765	-105.0422538	39.749957	-105.0428416	39.7499633
-15212	5624	3708	0.103423232464888	0.103423232464888	-105.0017248	39.7755303	-105.002935	39.7755303
-15213	3708	718	0.104893137935114	0.104893137935114	-105.002935	39.7755303	-105.0041624	39.7755303
-15214	718	9442	0.108559355644902	0.108559355644902	-105.0041624	39.7755303	-105.0054327	39.7755303
-15215	9442	8519	0.0865482797270432	0.0865482797270432	-105.0054327	39.7755303	-105.0064452	39.7755134
-15218	539	540	0.260599478311813	0.260599478311813	-105.0461157	39.7530208	-105.0433843	39.7519802
-15220	9430	9531	0.0962600395709663	0.0962600395709663	-105.0442004	39.7548692	-105.0443549	39.7540117
-15232	8334	8360	0.0525484415568663	0.0525484415568663	-104.9244842	39.6961248	-104.9248705	39.6964922
-15234	9532	9533	0.00803607126282377	0.00803607126282377	-104.9348912	39.7066948	-104.9349851	39.7066969
-16285	2852	1362	0.131790180095648	0.131790180095648	-104.972242	39.697774	-104.9710484	39.6970248
-15236	9534	9535	0.0751513734309232	0.0751513734309232	-104.9352855	39.7067217	-104.9359493	39.706279
-15237	9535	9536	0.0195917533971332	0.0195917533971332	-104.9359493	39.706279	-104.9358729	39.7061129
-15238	9536	9537	0.0515491230280822	0.0515491230280822	-104.9358729	39.7061129	-104.935374	39.7058529
-18878	3216	6125	0.202386413121619	0.202386413121619	-104.9611349	39.7111011	-104.9611403	39.709281
-15239	9537	9538	0.0217956250277941	0.0217956250277941	-104.935374	39.7058529	-104.9352077	39.7057044
-15248	8177	9543	0.0137987617761691	0.0137987617761691	-104.9362135	39.7050335	-104.9363074	39.7049326
-15249	9541	9542	0.0585754347953461	0.0585754347953461	-104.93572	39.7055929	-104.936117	39.7051637
-15262	9552	9550	0.00461416645458039	0.00461416645458039	-104.9337027	39.7048954	-104.9336788	39.7049326
-15263	9550	8208	0.00942903742084459	0.00942903742084459	-104.9336788	39.7049326	-104.9336074	39.7049972
-15264	8208	8203	0.268586250441468	0.268586250441468	-104.9336074	39.7049972	-104.9333927	39.707407
-15265	8203	8187	0.252138571661244	0.252138571661244	-104.9333927	39.707407	-104.9332506	39.7096719
-15267	8182	9552	0.0592295781497915	0.0592295781497915	-104.9340007	39.7044146	-104.9337027	39.7048954
-15275	9553	392	0.159342904018314	0.159342904018314	-104.932842	39.703615	-104.932837	39.702182
-15276	392	443	0.100075433980265	0.100075433980265	-104.932837	39.702182	-104.932837	39.701282
-15277	443	8209	0.110751336507506	0.110751336507506	-104.932837	39.701282	-104.932831	39.700286
-15278	3258	9554	0.029060284587417	0.029060284587417	-104.9296823	39.7037068	-104.9294517	39.7035149
-15279	9555	9556	0.0194857519875014	0.0194857519875014	-104.9469862	39.7110374	-104.9468185	39.711156
-15280	9556	9557	0.01686832436596	0.01686832436596	-104.9468185	39.711156	-104.9466791	39.7112633
-15284	9558	8799	0.0124547414515574	0.0124547414515574	-104.9465426	39.7113542	-104.9464054	39.7113917
-15287	9268	8812	0.43752637477907	0.43752637477907	-104.946452	39.7115485	-104.9497656	39.714546
-15372	9568	7345	0.407049578137861	0.407049578137861	-104.9714922	39.7181793	-104.9667331	39.7181803
-15373	7345	7369	0.0183549065123627	0.0183549065123627	-104.9667331	39.7181803	-104.9665185	39.7181803
-15374	7369	7156	0.617874851338927	0.617874851338927	-104.9665185	39.7181803	-104.9592945	39.7181873
-15375	7156	8802	0.0193374199518318	0.0193374199518318	-104.9592945	39.7181873	-104.9590692	39.7181728
-15376	8802	7317	0.278372348360029	0.278372348360029	-104.9590692	39.7181728	-104.9558194	39.7180363
-15377	7317	7975	0.104085714382657	0.104085714382657	-104.9558194	39.7180363	-104.9546025	39.7180291
-15378	7975	8806	0.102424669696849	0.102424669696849	-104.9546025	39.7180291	-104.953405	39.7180338
-20689	10900	10890	0.00428101320774671	0.00428101320774671	-105.0403805	39.7652999	-105.0403806	39.7653384
-15380	2642	4108	0.0801282359532547	0.0801282359532547	-104.9521739	39.7180386	-104.9512465	39.7179366
-15882	9238	9569	0.375213941828735	0.375213941828735	-105.0454319	39.7354736	-105.0498174	39.7355873
-4422	4132	3782	0.199943657895071	0.199943657895071	-104.9505673	39.7273334	-104.9505822	39.7291315
-15381	4108	7064	0.0951259934580263	0.0951259934580263	-104.9512465	39.7179366	-104.95025	39.7175567
-15383	993	9570	0.0346111476896159	0.0346111476896159	-104.9740165	39.7187595	-104.973941	39.7184537
-15385	9570	2914	0.0185752046128979	0.0185752046128979	-104.973941	39.7184537	-104.9738264	39.7183118
-15393	9572	9573	0.0529385333780706	0.0529385333780706	-104.9582883	39.716017	-104.9589072	39.716013
-15394	9574	9575	0.235820407161737	0.235820407161737	-104.9560321	39.7160129	-104.9533095	39.7156787
-15395	8031	9576	0.0470934184180165	0.0470934184180165	-104.9461768	39.7127943	-104.9467273	39.7128005
-15396	9577	9578	0.0233972200853265	0.0233972200853265	-104.9499594	39.7134958	-104.9499628	39.7137062
-15398	8797	9577	0.0680401949692739	0.0680401949692739	-104.9499588	39.7128839	-104.9499594	39.7134958
-15404	9583	9584	0.0189997554494897	0.0189997554494897	-105.0103359	39.7536233	-105.0101428	39.7537079
-15413	8399	9591	0.147004287358107	0.147004287358107	-104.9860118	39.7553389	-104.9872304	39.7544061
-15414	9591	9592	0.0201167087704522	0.0201167087704522	-104.9872304	39.7544061	-104.9873927	39.7542751
-15415	9592	8857	0.127975925737851	0.127975925737851	-104.9873927	39.7542751	-104.9884337	39.753448
-15416	8857	7897	0.144523217943683	0.144523217943683	-104.9884337	39.753448	-104.9896341	39.7525328
-15864	9238	9744	0.017876559138977	0.017876559138977	-105.0454319	39.7354736	-105.0455901	39.7355787
-765	765	766	0.102953430637808	0.102953430637808	-105.0097824	39.702535	-105.0109855	39.7025566
-15417	7897	8290	0.14604137147811	0.14604137147811	-104.9896341	39.7525328	-104.9908493	39.7516097
-15418	8290	8283	0.146330295926468	0.146330295926468	-104.9908493	39.7516097	-104.9920377	39.7506626
-15419	8283	9593	0.142033870447888	0.142033870447888	-104.9920377	39.7506626	-104.9932078	39.7497558
-15420	9593	5781	0.00569268198805717	0.00569268198805717	-104.9932078	39.7497558	-104.9932554	39.74972
-15421	5781	8573	0.144843439528192	0.144843439528192	-104.9932554	39.74972	-104.9944322	39.7487829
-15422	8573	6709	0.145981160506706	0.145981160506706	-104.9944322	39.7487829	-104.9956475	39.7478607
-15423	6709	8489	0.147059173742998	0.147059173742998	-104.9956475	39.7478607	-104.9968701	39.7469304
-20690	10890	10906	0.00389182243300479	0.00389182243300479	-105.0403806	39.7653384	-105.0403806	39.7653734
-15424	8489	9595	0.146421765893647	0.146421765893647	-104.9968701	39.7469304	-104.9980797	39.7459982
-15425	9595	8637	0.147888642293711	0.147888642293711	-104.9980797	39.7459982	-104.9993008	39.7450562
-15427	4935	9590	0.0193454164735318	0.0193454164735318	-104.9999815	39.7444843	-105.0001457	39.7443646
-15430	8608	1478	0.0099286705971119	0.0099286705971119	-105.0009845	39.7418987	-105.0010729	39.7418408
-15433	7965	9599	0.0149228575371813	0.0149228575371813	-104.999898	39.7420139	-105.0000258	39.7419225
-15434	9599	9600	0.0470176213777162	0.0470176213777162	-105.0000258	39.7419225	-105.0002179	39.7415263
-16271	9867	94	0.0502509464237392	0.0502509464237392	-104.955726	39.700668	-104.9557126	39.7002162
-16273	9867	3654	0.100162413874862	0.100162413874862	-104.955726	39.700668	-104.9550095	39.7013804
-15435	9600	9601	0.0734739685688771	0.0734739685688771	-105.0002179	39.7415263	-105.0002535	39.7408661
-15436	9601	9602	0.120469898327734	0.120469898327734	-105.0002535	39.7408661	-105.0014283	39.740268
-15474	9617	9618	0.0309123358720865	0.0309123358720865	-105.0006163	39.7464486	-105.0008107	39.746683
-15475	9618	9620	0.138252717835719	0.138252717835719	-105.0008107	39.746683	-105.0020353	39.747495
-15476	9620	8583	0.0318418680569216	0.0318418680569216	-105.0020353	39.747495	-105.0023143	39.7476847
-15477	8583	8311	0.113486958547973	0.113486958547973	-105.0023143	39.7476847	-105.0031123	39.7485003
-15478	8311	2808	0.019311822890669	0.019311822890669	-105.0031123	39.7485003	-105.0032328	39.7486472
-15479	2808	9621	0.209882261055166	0.209882261055166	-105.0032328	39.7486472	-105.0046936	39.7501642
-15480	9621	8522	0.0161981079077479	0.0161981079077479	-105.0046936	39.7501642	-105.0048268	39.7502678
-15481	8522	8465	0.180991531047255	0.180991531047255	-105.0048268	39.7502678	-105.0063608	39.7513896
-15487	9624	8468	0.0340418553637742	0.0340418553637742	-105.0012783	39.7478811	-105.0008907	39.7479512
-15786	9625	9596	0.0115036173464072	0.0115036173464072	-105.0249286	39.7370709	-105.0247945	39.7370792
-15489	9626	9618	0.0131866115872677	0.0131866115872677	-105.0006793	39.7467451	-105.0008107	39.746683
-15494	4937	9617	0.0698272217766147	0.0698272217766147	-105.0002133	39.7459024	-105.0006163	39.7464486
-15496	9628	9607	0.229575641341845	0.229575641341845	-104.9987907	39.7407672	-104.9997573	39.7426934
-15497	9607	9629	0.399617180847297	0.399617180847297	-104.9997573	39.7426934	-105.0003179	39.7462613
-15498	9629	8646	0.256050430773093	0.256050430773093	-105.0003179	39.7462613	-105.0012593	39.7484473
-15500	9630	7969	0.0158758080194332	0.0158758080194332	-104.9987212	39.7401977	-104.9989064	39.7402079
-20692	10907	5885	0.00586950671491746	0.00586950671491746	-105.026532	39.7636394	-105.0264783	39.7636723
-20693	5885	10908	0.00728749668565428	0.00728749668565428	-105.0264783	39.7636723	-105.0264211	39.7637209
-15501	7969	6652	0.0898251140375734	0.0898251140375734	-104.9989064	39.7402079	-104.9999567	39.7402253
-15502	6652	3939	0.0164838165497055	0.0164838165497055	-104.9999567	39.7402253	-105.0001493	39.7402188
-15504	5618	2286	0.10606737169151	0.10606737169151	-105.0015736	39.7401631	-105.0028141	39.740161
-15506	4494	9631	0.0855716406365801	0.0855716406365801	-105.0052335	39.7402363	-105.0062339	39.740258
-15508	9632	9630	0.0305358161263308	0.0305358161263308	-104.998365	39.7401779	-104.9987212	39.7401977
-15510	9633	4938	0.00998098524134014	0.00998098524134014	-104.997523	39.7384588	-104.9976397	39.7384568
-15511	4938	6650	0.146459053749354	0.146459053749354	-104.9976397	39.7384568	-104.9993525	39.7384677
-15512	6650	3942	0.0669626682021978	0.0669626682021978	-104.9993525	39.7384677	-105.0001356	39.7384618
-15513	3942	9634	0.0625685122990456	0.0625685122990456	-105.0001356	39.7384618	-105.0008673	39.7384682
-15514	9634	5614	0.0589940973382129	0.0589940973382129	-105.0008673	39.7384682	-105.0015572	39.7384742
-15515	5614	9635	0.0521244888471325	0.0521244888471325	-105.0015572	39.7384742	-105.0021668	39.7384727
-15518	9636	9633	0.0394950652718853	0.0394950652718853	-104.9970611	39.7384591	-104.997523	39.7384588
-15520	9637	4687	0.0148908622684888	0.0148908622684888	-104.9939487	39.7336881	-104.9941176	39.7336555
-15522	5369	9637	0.0293813837370069	0.0293813837370069	-104.9936509	39.7338199	-104.9939487	39.7336881
-15524	9638	4939	0.016179725599566	0.016179725599566	-104.9962859	39.7368624	-104.9964751	39.7368603
-15525	4939	7226	0.0545709952111213	0.0545709952111213	-104.9964751	39.7368603	-104.9971131	39.7368726
-15526	7226	9640	0.0899454990944897	0.0899454990944897	-104.9971131	39.7368726	-104.998165	39.7368735
-15527	9640	6648	0.0447546990135401	0.0447546990135401	-104.998165	39.7368735	-104.9986884	39.7368739
-15528	6648	9641	0.0618904241631349	0.0618904241631349	-104.9986884	39.7368739	-104.9994122	39.7368744
-15529	9641	3943	0.062420581454241	0.062420581454241	-104.9994122	39.7368744	-105.0001422	39.736875
-15530	3943	9642	0.0627968141202241	0.0627968141202241	-105.0001422	39.736875	-105.0008766	39.7368756
-15531	9642	5613	0.0612320254822175	0.0612320254822175	-105.0008766	39.7368756	-105.0015927	39.7368762
-15532	5613	9643	0.0497740720528068	0.0497740720528068	-105.0015927	39.7368762	-105.0021748	39.7368753
-15533	9643	3735	0.0551525120669933	0.0551525120669933	-105.0021748	39.7368753	-105.0028198	39.7368743
-15534	3735	4491	0.207391837271035	0.207391837271035	-105.0028198	39.7368743	-105.0052452	39.7368819
-15535	4491	129	0.109629298465467	0.109629298465467	-105.0052452	39.7368819	-105.0065273	39.7368825
-15536	129	7948	0.0410521986313786	0.0410521986313786	-105.0065273	39.7368825	-105.0070074	39.7368827
-15537	7948	2527	0.287151637527745	0.287151637527745	-105.0070074	39.7368827	-105.0103656	39.7368844
-15538	2527	9644	0.066959748271427	0.066959748271427	-105.0103656	39.7368844	-105.0111486	39.7368933
-15539	9644	1221	0.102833533420687	0.102833533420687	-105.0111486	39.7368933	-105.0123509	39.7369148
-16595	9951	6712	0.00734129639736197	0.00734129639736197	-104.9979162	39.749516	-104.9978555	39.7495627
-15542	618	9638	0.0309196803723069	0.0309196803723069	-104.9959243	39.7368632	-104.9962859	39.7368624
-15548	9647	9648	0.0291957554146951	0.0291957554146951	-104.98691	39.7265869	-104.9872502	39.7266088
-15549	7572	9649	0.0425327114545183	0.0425327114545183	-104.9861902	39.7259939	-104.98616	39.7263757
-15551	9650	9651	0.00414955523410263	0.00414955523410263	-104.9818746	39.7225925	-104.9818965	39.7225592
-15553	9651	9652	0.0110054302366685	0.0110054302366685	-104.9818965	39.7225592	-104.9819635	39.7224747
-15555	9652	9653	0.018743029705938	0.018743029705938	-104.9819635	39.7224747	-104.981824	39.7223447
-15558	9656	4160	0.0156451635843959	0.0156451635843959	-104.9775416	39.7199763	-104.977542	39.720117
-15559	4160	4769	0.262100180691146	0.262100180691146	-104.977542	39.720117	-104.9775557	39.7224741
-15560	4769	6550	0.17763389531497	0.17763389531497	-104.9775557	39.7224741	-104.9775557	39.7240716
-15561	6550	9299	0.171507609467602	0.171507609467602	-104.9775557	39.7240716	-104.9775506	39.725614
-15564	3803	5934	0.15587305192408	0.15587305192408	-104.977579	39.7290515	-104.9775786	39.7304533
-15565	5934	930	0.176935041153743	0.176935041153743	-104.9775786	39.7304533	-104.9775696	39.7320445
-15566	930	2215	0.185037322727603	0.185037322727603	-104.9775696	39.7320445	-104.9775909	39.7337085
-15567	2215	4865	0.15888388268895	0.15888388268895	-104.9775909	39.7337085	-104.9775716	39.7351373
-15568	4865	9477	0.193757182508649	0.193757182508649	-104.9775716	39.7351373	-104.9775705	39.7368798
-15569	9477	5466	0.16958064463752	0.16958064463752	-104.9775705	39.7368798	-104.9776145	39.7384045
-15570	5466	9658	0.179556785798918	0.179556785798918	-104.9776145	39.7384045	-104.9775745	39.740019
-15571	9658	9659	0.177338892845698	0.177338892845698	-104.9775745	39.740019	-104.977538	39.7416136
-15572	9659	662	0.00516539932395329	0.00516539932395329	-104.977538	39.7416136	-104.9775409	39.74166
-18431	10291	7169	0.0508784288394603	0.0508784288394603	-105.0387163	39.7625667	-105.0381211	39.7625719
-15573	662	9660	0.00343592323317494	0.00343592323317494	-104.9775409	39.74166	-104.9775409	39.7416909
-15575	9464	4609	0.17585408606	0.17585408606	-104.9775584	39.7432677	-104.977536	39.7448491
-15576	4609	6490	0.148161596916065	0.148161596916065	-104.977536	39.7448491	-104.9775509	39.7461815
-15577	6490	7974	0.0885778987826885	0.0885778987826885	-104.9775509	39.7461815	-104.9775516	39.7469781
-15579	4336	9656	0.0458791064556152	0.0458791064556152	-104.9775406	39.7195637	-104.9775416	39.7199763
-15581	7573	3556	0.0299599314208067	0.0299599314208067	-104.9744777	39.7548059	-104.9747379	39.7546254
-15583	851	7096	0.0990470064031014	0.0990470064031014	-104.9429635	39.7581888	-104.9418048	39.7581888
-15584	7096	9661	0.0107677923604542	0.0107677923604542	-104.9418048	39.7581888	-104.9416791	39.7581825
-15585	9661	9662	0.0081027242638239	0.0081027242638239	-104.9416791	39.7581825	-104.9415847	39.7581891
-15586	9662	9663	0.00747970901198794	0.00747970901198794	-104.9415847	39.7581891	-104.9414989	39.7582023
-15587	9663	9664	0.00836437719840195	0.00836437719840195	-104.9414989	39.7582023	-104.9414045	39.7582221
-15588	9664	9665	0.00928103292942469	0.00928103292942469	-104.9414045	39.7582221	-104.9413015	39.7582485
-15589	9665	9666	0.00696482735297281	0.00696482735297281	-104.9413015	39.7582485	-104.9412242	39.7582683
-15590	9666	9667	0.00676039634627663	0.00676039634627663	-104.9412242	39.7582683	-104.941147	39.7582815
-15591	9667	9668	0.00737940382126904	0.00737940382126904	-104.941147	39.7582815	-104.9410611	39.7582881
-15592	9668	9669	0.0330209265296029	0.0330209265296029	-104.9410611	39.7582881	-104.9406749	39.7582947
-15593	9669	8703	0.0154036792176203	0.0154036792176203	-104.9406749	39.7582947	-104.9404947	39.7582947
-15594	8703	8152	0.0935877668611654	0.0935877668611654	-104.9404947	39.7582947	-104.9393999	39.7582878
-15595	8152	7613	0.0937841622026169	0.0937841622026169	-104.9393999	39.7582878	-104.9383029	39.758301
-15596	7613	7266	0.0918493440897444	0.0918493440897444	-104.9383029	39.758301	-104.9372284	39.758301
-15597	7266	7585	0.0967046653962524	0.0967046653962524	-104.9372284	39.758301	-104.9360971	39.758301
-15599	2003	3363	0.0896469251714999	0.0896469251714999	-104.9349898	39.7583076	-104.9339411	39.7583142
-15600	3363	2757	0.0953909752557553	0.0953909752557553	-104.9339411	39.7583142	-104.9328253	39.7583274
-15601	2757	9670	0.0852737689905025	0.0852737689905025	-104.9328253	39.7583274	-104.9318279	39.758313
-15602	9670	9671	0.00427910266137011	0.00427910266137011	-104.9318279	39.758313	-104.9317783	39.7583182
-15603	9671	7008	0.00522846022655691	0.00522846022655691	-104.9317783	39.7583182	-104.9317193	39.7583306
-15604	7008	9672	0.00318311155269209	0.00318311155269209	-104.9317193	39.7583306	-104.9316858	39.7583431
-15605	9672	9673	0.00446550904917084	0.00446550904917084	-104.9316858	39.7583431	-104.9316375	39.7583584
-15606	9673	9674	0.0041674932546887	0.0041674932546887	-104.9316375	39.7583584	-104.9315892	39.7583635
-15607	9674	2283	0.0902343315694916	0.0902343315694916	-104.9315892	39.7583635	-104.9305336	39.7583604
-15608	2283	3604	0.0998061678618656	0.0998061678618656	-104.9305336	39.7583604	-104.9293663	39.7583802
-15609	3604	7530	0.0990712121378624	0.0990712121378624	-104.9293663	39.7583802	-104.9282076	39.7583604
-15610	7530	2138	0.109343720002506	0.109343720002506	-104.9282076	39.7583604	-104.9269287	39.7583802
-15611	2138	5995	0.0993207600682094	0.0993207600682094	-104.9269287	39.7583802	-104.9257668	39.7583774
-15612	5995	7675	0.101107003151938	0.101107003151938	-104.9257668	39.7583774	-104.924584	39.7583757
-15613	7675	9675	0.0981911301047578	0.0981911301047578	-104.924584	39.7583757	-104.9234354	39.7583868
-15614	9675	9676	0.100210056589884	0.100210056589884	-104.9234354	39.7583868	-104.9222632	39.7583745
-15615	9676	9677	0.100165741773797	0.100165741773797	-104.9222632	39.7583745	-104.9210915	39.7583633
-15616	9677	9678	0.100142214318315	0.100142214318315	-104.9210915	39.7583633	-104.91992	39.7583679
-15617	9678	9679	0.0993326168253197	0.0993326168253197	-104.91992	39.7583679	-104.918758	39.7583757
-899	913	914	0.147143450226327	0.147143450226327	-104.9806193	39.771691	-104.9793447	39.7725806
-20715	10914	9397	0.00810191720556871	0.00810191720556871	-105.0253716	39.7632346	-105.0252842	39.7632064
-15619	9680	9681	0.102717909771226	0.102717909771226	-104.9175671	39.7583757	-104.9163655	39.7583839
-15620	9681	9682	0.100023276858498	0.100023276858498	-104.9163655	39.7583839	-104.9151955	39.7583708
-15621	9682	9683	0.100843312370816	0.100843312370816	-104.9151955	39.7583708	-104.9140158	39.7583757
-15622	9683	9684	0.101658088937986	0.101658088937986	-104.9140158	39.7583757	-104.9128266	39.758384
-15623	9684	9685	0.0375181649725389	0.0375181649725389	-104.9128266	39.758384	-104.9123877	39.7583821
-15624	9685	9686	0.0593326737516342	0.0593326737516342	-104.9123877	39.7583821	-104.9116936	39.758384
-15625	9686	9687	0.102011015676098	0.102011015676098	-104.9116936	39.758384	-104.9105005	39.7584038
-15627	9688	9689	0.110065273053945	0.110065273053945	-104.9094325	39.758409	-104.908145	39.7583966
-15628	9689	9690	0.109733851792721	0.109733851792721	-104.908145	39.7583966	-104.9068613	39.7583906
-15629	9690	9691	0.0939207749458389	0.0939207749458389	-104.9068613	39.7583906	-104.9057627	39.7584038
-15630	9691	9692	0.102876500148466	0.102876500148466	-104.9057627	39.7584038	-104.9045594	39.7584208
-15631	9692	9693	0.0940860472810003	0.0940860472810003	-104.9045594	39.7584208	-104.9034588	39.7584114
-15633	851	7096	0.0990470064031014	0.0990470064031014	-104.9429635	39.7581888	-104.9418048	39.7581888
-15634	7096	9661	0.0107677923604542	0.0107677923604542	-104.9418048	39.7581888	-104.9416791	39.7581825
-15635	9661	9662	0.0081027242638239	0.0081027242638239	-104.9416791	39.7581825	-104.9415847	39.7581891
-15636	9662	9663	0.00747970901198794	0.00747970901198794	-104.9415847	39.7581891	-104.9414989	39.7582023
-15637	9663	9664	0.00836437719840195	0.00836437719840195	-104.9414989	39.7582023	-104.9414045	39.7582221
-15638	9664	9665	0.00928103292942469	0.00928103292942469	-104.9414045	39.7582221	-104.9413015	39.7582485
-15639	9665	9666	0.00696482735297281	0.00696482735297281	-104.9413015	39.7582485	-104.9412242	39.7582683
-15641	9667	9668	0.00737940382126904	0.00737940382126904	-104.941147	39.7582815	-104.9410611	39.7582881
-15642	9668	9669	0.0330209265296029	0.0330209265296029	-104.9410611	39.7582881	-104.9406749	39.7582947
-15644	8703	8152	0.0935877668611654	0.0935877668611654	-104.9404947	39.7582947	-104.9393999	39.7582878
-20716	9397	9341	0.0111932287865196	0.0111932287865196	-105.0252842	39.7632064	-105.0251701	39.763157
-15645	8152	7613	0.0937841622026169	0.0937841622026169	-104.9393999	39.7582878	-104.9383029	39.758301
-15646	7613	7266	0.0918493440897444	0.0918493440897444	-104.9383029	39.758301	-104.9372284	39.758301
-15647	7266	7585	0.0967046653962524	0.0967046653962524	-104.9372284	39.758301	-104.9360971	39.758301
-15648	7585	2003	0.0946559616738872	0.0946559616738872	-104.9360971	39.758301	-104.9349898	39.7583076
-15649	2003	3363	0.0896469251714999	0.0896469251714999	-104.9349898	39.7583076	-104.9339411	39.7583142
-15650	3363	2757	0.0953909752557553	0.0953909752557553	-104.9339411	39.7583142	-104.9328253	39.7583274
-15651	2757	9670	0.0852737689905025	0.0852737689905025	-104.9328253	39.7583274	-104.9318279	39.758313
-15652	9670	9671	0.00427910266137011	0.00427910266137011	-104.9318279	39.758313	-104.9317783	39.7583182
-15653	9671	7008	0.00522846022655691	0.00522846022655691	-104.9317783	39.7583182	-104.9317193	39.7583306
-15654	7008	9672	0.00318311155269209	0.00318311155269209	-104.9317193	39.7583306	-104.9316858	39.7583431
-15655	9672	9673	0.00446550904917084	0.00446550904917084	-104.9316858	39.7583431	-104.9316375	39.7583584
-15656	9673	9674	0.0041674932546887	0.0041674932546887	-104.9316375	39.7583584	-104.9315892	39.7583635
-15657	9674	2283	0.0902343315694916	0.0902343315694916	-104.9315892	39.7583635	-104.9305336	39.7583604
-15658	2283	3604	0.0998061678618656	0.0998061678618656	-104.9305336	39.7583604	-104.9293663	39.7583802
-15659	3604	7530	0.0990712121378624	0.0990712121378624	-104.9293663	39.7583802	-104.9282076	39.7583604
-940	955	956	0.0467857248690536	0.0467857248690536	-104.9456366	39.7320897	-104.9450895	39.7320866
-15660	7530	2138	0.109343720002506	0.109343720002506	-104.9282076	39.7583604	-104.9269287	39.7583802
-15661	2138	5995	0.0993207600682094	0.0993207600682094	-104.9269287	39.7583802	-104.9257668	39.7583774
-15663	7675	9675	0.0981911301047578	0.0981911301047578	-104.924584	39.7583757	-104.9234354	39.7583868
-15664	9675	9676	0.100210056589884	0.100210056589884	-104.9234354	39.7583868	-104.9222632	39.7583745
-15665	9676	9677	0.100165741773797	0.100165741773797	-104.9222632	39.7583745	-104.9210915	39.7583633
-15666	9677	9678	0.100142214318315	0.100142214318315	-104.9210915	39.7583633	-104.91992	39.7583679
-20717	9341	10910	0.0086655068036058	0.0086655068036058	-105.0251701	39.763157	-105.0250813	39.7631194
-15667	9678	9679	0.0993326168253197	0.0993326168253197	-104.91992	39.7583679	-104.918758	39.7583757
-15668	9679	9680	0.101799223111765	0.101799223111765	-104.918758	39.7583757	-104.9175671	39.7583757
-15669	9680	9681	0.102717909771226	0.102717909771226	-104.9175671	39.7583757	-104.9163655	39.7583839
-15670	9681	9682	0.100023276858498	0.100023276858498	-104.9163655	39.7583839	-104.9151955	39.7583708
-15671	9682	9683	0.100843312370816	0.100843312370816	-104.9151955	39.7583708	-104.9140158	39.7583757
-15672	9683	9684	0.101658088937986	0.101658088937986	-104.9140158	39.7583757	-104.9128266	39.758384
-15673	9684	9685	0.0375181649725389	0.0375181649725389	-104.9128266	39.758384	-104.9123877	39.7583821
-15675	9686	9687	0.102011015676098	0.102011015676098	-104.9116936	39.758384	-104.9105005	39.7584038
-15676	9687	9688	0.091295408872665	0.091295408872665	-104.9105005	39.7584038	-104.9094325	39.758409
-15677	9688	9689	0.110065273053945	0.110065273053945	-104.9094325	39.758409	-104.908145	39.7583966
-15678	9689	9690	0.109733851792721	0.109733851792721	-104.908145	39.7583966	-104.9068613	39.7583906
-15679	9690	9691	0.0939207749458389	0.0939207749458389	-104.9068613	39.7583906	-104.9057627	39.7584038
-15680	9691	9692	0.102876500148466	0.102876500148466	-104.9057627	39.7584038	-104.9045594	39.7584208
-15681	9692	9693	0.0940860472810003	0.0940860472810003	-104.9045594	39.7584208	-104.9034588	39.7584114
-15684	7680	3450	0.103468199661171	0.103468199661171	-104.9473666	39.7178126	-104.9461569	39.7178084
-15686	6014	3880	0.103612570358144	0.103612570358144	-104.9449634	39.7178023	-104.943752	39.7178027
-15687	3880	842	0.103458609408344	0.103458609408344	-104.943752	39.7178027	-104.9425424	39.717803
-15688	842	7097	0.103202015659942	0.103202015659942	-104.9425424	39.717803	-104.9413358	39.7178027
-15689	7097	9694	0.047717886337947	0.047717886337947	-104.9413358	39.7178027	-104.9407779	39.7178027
-15690	9694	8693	0.0153273459011852	0.0153273459011852	-104.9407779	39.7178027	-104.9405987	39.7178021
-15691	8693	8154	0.0909950973067502	0.0909950973067502	-104.9405987	39.7178021	-104.939535	39.717787
-15692	8154	7616	0.0940844002869557	0.0940844002869557	-104.939535	39.717787	-104.938435	39.717787
-20719	10885	9398	0.0070860203578635	0.0070860203578635	-105.0253682	39.762093	-105.0252853	39.7620928
-15693	7616	7269	0.0941699315585107	0.0941699315585107	-104.938435	39.717787	-104.937334	39.717787
-15695	2024	3357	0.101537173300766	0.101537173300766	-104.935134	39.717787	-104.9339472	39.7178087
-15696	3357	2761	0.09936727049288	0.09936727049288	-104.9339472	39.7178087	-104.9327855	39.7177992
-15697	2761	7002	0.0992423706702366	0.0992423706702366	-104.9327855	39.7177992	-104.9316252	39.7178019
-15698	7002	2264	0.0979906184711561	0.0979906184711561	-104.9316252	39.7178019	-104.9304797	39.7178171
-15699	2264	3594	0.0994063483699449	0.0994063483699449	-104.9304797	39.7178171	-104.9293175	39.7178227
-15700	3594	7517	0.101662572945496	0.101662572945496	-104.9293175	39.7178227	-104.9281289	39.7178243
-15701	7517	2099	0.100157096238172	0.100157096238172	-104.9281289	39.7178243	-104.9269579	39.717825
-15702	2099	5976	0.101294873446063	0.101294873446063	-104.9269579	39.717825	-104.9257736	39.717827
-15703	5976	7666	0.100715370574341	0.100715370574341	-104.9257736	39.717827	-104.9245961	39.7178332
-15705	2329	9695	0.166702045988164	0.166702045988164	-104.9234266	39.7178332	-104.9214776	39.71784
-15706	8023	8686	0.102850512121315	0.102850512121315	-104.9485858	39.7178178	-104.9497874	39.7178534
-15708	8810	7064	0.0240522165973304	0.0240522165973304	-104.9500622	39.7177177	-104.95025	39.7175567
-15710	8803	7155	0.0191394427517654	0.0191394427517654	-104.9590745	39.7183523	-104.9592982	39.7183567
-15711	7155	6281	0.12107437233707	0.12107437233707	-104.9592982	39.7183567	-104.9607137	39.718346
-15712	6281	1050	0.111583194341316	0.111583194341316	-104.9607137	39.718346	-104.9620183	39.718346
-15714	3913	3150	0.158539469564201	0.158539469564201	-104.963317	39.7183519	-104.9651706	39.7183518
-15715	3150	3124	0.0198304894474349	0.0198304894474349	-104.9651706	39.7183518	-104.9654024	39.718348
-15716	3124	7370	0.0954616596060542	0.0954616596060542	-104.9654024	39.718348	-104.9665185	39.7183519
-15717	7370	7346	0.018354860843617	0.018354860843617	-104.9665185	39.7183519	-104.9667331	39.7183519
-15718	7346	6806	0.0981383819816197	0.0981383819816197	-104.9667331	39.7183519	-104.9678805	39.718355
-15719	6806	6802	0.0198184437093697	0.0198184437093697	-104.9678805	39.718355	-104.9681122	39.7183532
-15720	6802	4711	0.111589534373845	0.111589534373845	-104.9681122	39.7183532	-104.9694168	39.7183425
-15721	4711	782	0.0471200606837116	0.0471200606837116	-104.9694168	39.7183425	-104.9699677	39.7183394
-15722	782	5113	0.0527296074626885	0.0527296074626885	-104.9699677	39.7183394	-104.9705842	39.7183394
-15723	5113	1545	0.0490000601275782	0.0490000601275782	-104.9705842	39.7183394	-104.9711569	39.7183279
-15724	1545	6325	0.0500984428583215	0.0500984428583215	-104.9711569	39.7183279	-104.9717416	39.7183547
-15728	9449	9696	0.165726699390797	0.165726699390797	-104.9558247	39.7176986	-104.9554143	39.716242
-15732	8801	5164	0.779026857141219	0.779026857141219	-104.9590492	39.7160869	-104.9499442	39.7162631
-15734	9303	1207	0.168708605950551	0.168708605950551	-104.9439908	39.7256083	-104.9439778	39.7271255
-15735	1207	9698	0.0215813490172367	0.0215813490172367	-104.9439778	39.7271255	-104.9439853	39.7273195
-15736	9698	3771	0.199072281764282	0.199072281764282	-104.9439853	39.7273195	-104.9439848	39.7291098
-15738	8867	958	0.177734005515433	0.177734005515433	-104.9439798	39.7304995	-104.9439811	39.7320979
-15739	958	9420	0.172099550054797	0.172099550054797	-104.9439811	39.7320979	-104.9439933	39.7336456
-15740	9420	4896	0.162799282631442	0.162799282631442	-104.9439933	39.7336456	-104.9439627	39.7351095
-15741	4896	9470	0.183516274472291	0.183516274472291	-104.9439627	39.7351095	-104.9439656	39.7367599
-15742	9470	5493	0.174731799993968	0.174731799993968	-104.9439656	39.7367599	-104.9439677	39.7383313
-15743	5493	9699	0.19822011575815	0.19822011575815	-104.9439677	39.7383313	-104.9439825	39.7401139
-15745	6718	4833	0.101679501011927	0.101679501011927	-104.9425631	39.711506	-104.9437517	39.7114947
-15746	4833	6378	0.103648655421083	0.103648655421083	-104.9437517	39.7114947	-104.9449634	39.7114907
-15747	6378	3188	0.103521991883946	0.103521991883946	-104.9449634	39.7114907	-104.9461736	39.7114973
-15749	8692	1060	0.0921643567251203	0.0921643567251203	-104.9406148	39.716237	-104.9395373	39.7162311
-15750	1060	1697	0.0932426366322247	0.0932426366322247	-104.9395373	39.7162311	-104.9384472	39.7162245
-15751	1697	7268	0.0954492333486145	0.0954492333486145	-104.9384472	39.7162245	-104.9373314	39.7162377
-15752	7268	6671	0.0907592732101769	0.0907592732101769	-104.9373314	39.7162377	-104.9362703	39.7162376
-15754	2023	3356	0.0971424118361729	0.0971424118361729	-104.9350998	39.7162443	-104.9339641	39.7162382
-15756	2760	7001	0.10039029368168	0.10039029368168	-104.9328153	39.7162508	-104.9316416	39.7162506
-15757	7001	2263	0.0995790205304853	0.0995790205304853	-104.9316416	39.7162506	-104.9304775	39.7162632
-15758	2263	3487	0.100064167822274	0.100064167822274	-104.9304775	39.7162632	-104.9293078	39.7162471
-15760	5346	2098	0.0987082712844417	0.0987082712844417	-104.9281276	39.716246	-104.9269736	39.7162529
-15761	2098	2940	0.101254724790906	0.101254724790906	-104.9269736	39.7162529	-104.9257898	39.7162499
-15763	6814	9700	0.201962621208867	0.201962621208867	-104.9246289	39.7162454	-104.9222677	39.7162528
-15766	9701	9702	0.01946308379228	0.01946308379228	-105.0380289	39.7329878	-105.0382565	39.732989
-15767	9702	7793	0.0917115184551997	0.0917115184551997	-105.0382565	39.732989	-105.0393289	39.7329999
-15768	7793	9703	0.0139663687397926	0.0139663687397926	-105.0393289	39.7329999	-105.039492	39.7329933
-15769	9703	9044	0.0844498524584079	0.0844498524584079	-105.039492	39.7329933	-105.0404793	39.7330112
-15770	9044	1093	0.00878466321187049	0.00878466321187049	-105.0404793	39.7330112	-105.040582	39.7330131
-15771	1093	7489	0.0946907062423257	0.0946907062423257	-105.040582	39.7330131	-105.0416893	39.7330197
-15772	7489	3839	0.0924847260791552	0.0924847260791552	-105.0416893	39.7330197	-105.0427707	39.7330329
-15773	3839	9041	0.00820472152594153	0.00820472152594153	-105.0427707	39.7330329	-105.0428651	39.7330461
-15774	9041	5598	0.0888252595207534	0.0888252595207534	-105.0428651	39.7330461	-105.0439037	39.7330329
-15775	5598	9038	0.0124773684874939	0.0124773684874939	-105.0439037	39.7330329	-105.0440496	39.7330344
-15776	9038	7546	0.0939528798953845	0.0939528798953845	-105.0440496	39.7330344	-105.0451482	39.7330461
-15817	9704	9705	0.0108623818240175	0.0108623818240175	-105.0273936	39.7360623	-105.0273775	39.7359654
-15777	7546	9706	0.691905770916309	0.691905770916309	-105.0451482	39.7330461	-105.0532391	39.733108
-15800	1403	9709	0.0705866891174833	0.0705866891174833	-105.0321575	39.73505	-105.0321558	39.7356848
-15801	9709	620	0.0978636674417251	0.0978636674417251	-105.0321558	39.7356848	-105.0322182	39.7365636
-15802	620	9710	0.210732715068668	0.210732715068668	-105.0322182	39.7365636	-105.0322594	39.7384585
-15803	9710	1934	0.00294671517895333	0.00294671517895333	-105.0322594	39.7384585	-105.0322592	39.738485
-15812	9716	2323	0.0248152326425255	0.0248152326425255	-105.0223349	39.737401	-105.0223537	39.7376237
-15814	9717	9718	0.0914794540174667	0.0914794540174667	-105.0311809	39.7378898	-105.0303789	39.7373453
-15815	9718	9719	0.0447183943765151	0.0447183943765151	-105.0303789	39.7373453	-105.0302877	39.7369493
-19498	10525	10526	0.0198486557174526	0.0198486557174526	-104.9883652	39.7073679	-104.9883666	39.7071894
-15816	9719	9704	0.266399501314719	0.266399501314719	-105.0302877	39.7369493	-105.0273936	39.7360623
-15823	622	9720	0.114642644128587	0.114642644128587	-105.0334066	39.7365509	-105.0334112	39.7375819
-15824	9720	9721	0.0112307689682394	0.0112307689682394	-105.0334112	39.7375819	-105.0334117	39.7376829
-15825	9721	9722	0.0869660670624723	0.0869660670624723	-105.0334117	39.7376829	-105.0334152	39.738465
-15826	9722	9508	0.205466270114504	0.205466270114504	-105.0334152	39.738465	-105.0334112	39.7403128
-15828	9723	8889	0.0324596924967659	0.0324596924967659	-105.0393086	39.7344206	-105.0393045	39.7347125
-15829	8889	7134	0.00993032916751998	0.00993032916751998	-105.0393045	39.7347125	-105.0393032	39.7348018
-15831	9724	9725	0.00760667507368999	0.00760667507368999	-105.0393035	39.7348362	-105.0393021	39.7349046
-15832	9725	9726	0.189210618262835	0.189210618262835	-105.0393021	39.7349046	-105.0392938	39.7366062
-15833	9726	9727	0.207046790394153	0.207046790394153	-105.0392938	39.7366062	-105.039304	39.7384682
-19270	10423	10424	0.0241914475611954	0.0241914475611954	-104.9951604	39.7462206	-104.9949557	39.7460704
-435	364	434	0.342302602243315	0.342302602243315	-104.9703166	39.6886511	-104.973423	39.6905908
-437	435	436	0.251313063977777	0.251313063977777	-104.9400813	39.7837417	-104.939734	39.785986
-438	291	437	0.00683009618704691	0.00683009618704691	-105.0052999	39.7613459	-105.0053491	39.7612975
-439	437	438	0.127267952892383	0.127267952892383	-105.0053491	39.7612975	-105.0062729	39.7603999
-18188	4070	6055	0.154839029661679	0.154839029661679	-105.0293098	39.784231	-105.0293078	39.7856235
-2329	914	2297	0.0421335193471221	0.0421335193471221	-104.9793447	39.7725806	-104.9797146	39.7728311
-2331	2320	2321	0.0970544429847538	0.0970544429847538	-104.9733543	39.7679348	-104.9741575	39.7685518
-2332	2321	2325	0.106348268281835	0.106348268281835	-104.9741575	39.7685518	-104.9750376	39.7692279
-2334	2326	2327	0.097322097365987	0.097322097365987	-104.9240294	39.7620162	-104.9240401	39.7628914
-2335	2327	1153	0.100532392748858	0.100532392748858	-104.9240401	39.7628914	-104.9240347	39.7637955
-2338	2329	2330	0.176644411418714	0.176644411418714	-104.9234266	39.7178332	-104.9234239	39.7194218
-2339	2330	2331	0.174810883246149	0.174810883246149	-104.9234239	39.7194218	-104.9234159	39.7209939
-2340	2331	2332	0.246452825481674	0.246452825481674	-104.9234159	39.7209939	-104.9238853	39.7231807
-12346	8662	8663	0.00747381550039305	0.00747381550039305	-105.0123789	39.7525675	-105.0123961	39.7526334
-15258	8632	9548	0.0273148076656665	0.0273148076656665	-104.9291888	39.7063544	-104.929508	39.7063606
-2341	2332	2333	0.239714451404855	0.239714451404855	-104.9238853	39.7231807	-104.9238906	39.7253365
-2342	2333	2334	0.0332654390408316	0.0332654390408316	-104.9238906	39.7253365	-104.9238826	39.7256356
-2344	2335	2336	0.129842641397919	0.129842641397919	-104.9238831	39.7280763	-104.9238797	39.729244
-2346	2337	2338	0.0990445311811364	0.0990445311811364	-104.9327695	39.7193905	-104.9316115	39.7193956
-2348	2265	2339	0.101695232363891	0.101695232363891	-104.9304912	39.7194002	-104.9293022	39.7193963
-2349	2339	2340	0.100657111492997	0.100657111492997	-104.9293022	39.7193963	-104.9281254	39.7194064
-2350	2340	2100	0.0993531902440497	0.0993531902440497	-104.9281254	39.7194064	-104.9269638	39.7194002
-20593	3590	10852	0.00726410078461852	0.00726410078461852	-105.0249274	39.7608402	-105.0249031	39.7609028
-20595	10864	10861	0.0184079229928756	0.0184079229928756	-105.0249015	39.7609531	-105.0248964	39.7611186
-20596	10861	10869	0.0187971985012912	0.0187971985012912	-105.0248964	39.7611186	-105.0248912	39.7612876
-20598	10844	10816	0.176342451403751	0.176342451403751	-105.0164651	39.7585116	-105.0185279	39.7585307
-20599	10816	10784	0.0180725957817606	0.0180725957817606	-105.0185279	39.7585307	-105.0187393	39.7585283
-18882	3271	7310	0.200940882978518	0.200940882978518	-104.9611322	39.7038533	-104.9611376	39.7020462
-20600	10784	10835	0.00593511915863137	0.00593511915863137	-105.0187393	39.7585283	-105.0188076	39.7585187
-20602	2958	10836	0.0107685222165634	0.0107685222165634	-105.0188637	39.7584212	-105.0188782	39.7585174
-20605	10827	10870	0.0187474646325031	0.0187474646325031	-105.0188943	39.7587219	-105.0188943	39.7588905
-20606	10870	10871	0.0569206829492766	0.0569206829492766	-105.0188943	39.7588905	-105.0188943	39.7594024
-20746	10919	10920	0.0829974075948199	0.0829974075948199	-105.0382104	39.7621908	-105.0391814	39.7621915
-20607	10872	10858	0.118628394955246	0.118628394955246	-105.0193556	39.7586912	-105.0190584	39.7597333
-20609	2959	10837	0.0110654933350888	0.0110654933350888	-105.0192775	39.7584245	-105.0192753	39.758524
-20610	10837	10819	0.0119664824389379	0.0119664824389379	-105.0192753	39.758524	-105.0192728	39.7586316
-11704	1158	1159	0.143826308402294	0.143826308402294	-104.9992501	39.7524969	-104.9980616	39.7534124
-16709	10000	10001	0.0457062376473756	0.0457062376473756	-105.0005739	39.745251	-105.0002374	39.7455704
-20652	9411	7929	0.0718148143148174	0.0718148143148174	-105.0180024	39.7601634	-105.0179546	39.7608082
-20655	4390	9954	0.0752796609482001	0.0752796609482001	-104.9873785	39.7489186	-104.9873941	39.7482417
-20656	9954	10883	0.0805000116188462	0.0805000116188462	-104.9873941	39.7482417	-104.9873826	39.7475178
-20657	10883	10884	0.00921180121982239	0.00921180121982239	-104.9873826	39.7475178	-104.9873861	39.747435
-20658	10884	8289	0.0487008508548274	0.0487008508548274	-104.9873861	39.747435	-104.9873968	39.7469971
-20660	5957	6482	0.0027689648671592	0.0027689648671592	-104.9873834	39.7462062	-104.9873838	39.7461813
-20661	6482	5774	0.120389794748458	0.120389794748458	-104.9873838	39.7461813	-104.9874021	39.7450987
-20662	5774	4620	0.0232425190443662	0.0232425190443662	-104.9874021	39.7450987	-104.9873927	39.7448898
-20663	4620	5809	0.169650245221728	0.169650245221728	-104.9873927	39.7448898	-104.9873953	39.7433641
-20664	5809	10472	0.013534248318244	0.013534248318244	-104.9873953	39.7433641	-104.9873927	39.7432424
-2394	2385	2386	0.330871173224232	0.330871173224232	-104.9496422	39.7136072	-104.9468949	39.7115125
-2396	2387	2072	0.091718253525282	0.091718253525282	-104.9541313	39.7738901	-104.9530584	39.7738703
-2398	2388	2389	0.0952556218940292	0.0952556218940292	-104.9519586	39.7738777	-104.950844	39.7738769
-2399	2389	2390	0.088517954558777	0.088517954558777	-104.950844	39.7738769	-104.9498085	39.773859
-2400	2390	2391	0.100075566647637	0.100075566647637	-104.9498085	39.773859	-104.9486382	39.7738901
-2401	2391	2392	0.0940014926636224	0.0940014926636224	-104.9486382	39.7738901	-104.9475383	39.7738843
-2402	2392	2394	0.0931645591460492	0.0931645591460492	-104.9475383	39.7738843	-104.9464482	39.7738908
-2403	2394	2395	0.0490422843236324	0.0490422843236324	-104.9464482	39.7738908	-104.9458744	39.7738967
-2404	2396	2397	0.101232025457682	0.101232025457682	-104.9452638	39.7738711	-104.9440793	39.7738645
-2405	2397	835	0.0985806787691326	0.0985806787691326	-104.9440793	39.7738645	-104.942926	39.7738477
-2406	835	2398	0.196049611343252	0.196049611343252	-104.942926	39.7738477	-104.940632	39.7738515
-2407	2398	2399	0.0153233199302382	0.0153233199302382	-104.940632	39.7738515	-104.9404527	39.7738518
-2408	2399	2400	0.00232458495354821	0.00232458495354821	-104.9404527	39.7738518	-104.9404255	39.7738517
-2412	2402	2403	0.0775441054784182	0.0775441054784182	-105.016659	39.7530243	-105.017566	39.7530336
-2415	2405	2406	0.101142772155656	0.101142772155656	-105.0346118	39.7530072	-105.0357948	39.7530206
-498	441	442	0.0937180388509973	0.0937180388509973	-105.01516	39.7314761	-105.01561	39.7322446
-500	443	444	0.0957304857475106	0.0957304857475106	-104.932837	39.701282	-104.933949	39.701378
-14680	445	446	0.198543865097556	0.198543865097556	-104.9700104	39.7237429	-104.9699934	39.7219574
-443	447	448	0.0518475604896436	0.0518475604896436	-105.0132294	39.7256673	-105.0126579	39.7258229
-446	450	451	0.1546192530483	0.1546192530483	-104.942375	39.7291047	-104.9423643	39.7304952
-310	318	319	0.318271935051083	0.318271935051083	-105.0344342	39.7830352	-105.0307715	39.7835551
-447	451	452	0.176746748854474	0.176746748854474	-104.9423643	39.7304952	-104.9423751	39.7320847
-448	452	453	0.173946054533759	0.173946054533759	-104.9423751	39.7320847	-104.9423616	39.733649
-449	453	454	0.161145911336434	0.161145911336434	-104.9423616	39.733649	-104.9423517	39.7350982
-450	454	455	0.183605091547984	0.183605091547984	-104.9423517	39.7350982	-104.9423505	39.7367494
-452	456	457	0.174314536622101	0.174314536622101	-104.9413102	39.732075	-104.9412942	39.7336426
-453	457	458	0.162044543484691	0.162044543484691	-104.9412942	39.7336426	-104.9412914	39.7350999
-454	458	459	0.182862983981988	0.182862983981988	-104.9412914	39.7350999	-104.9413035	39.7367444
-456	460	6	0.0823027301557762	0.0823027301557762	-104.9405035	39.7803397	-104.941411	39.7800918
-1198	1212	1213	0.0683736094322978	0.0683736094322978	-104.9874175	39.7272691	-104.986618	39.727272
-465	266	468	0.155710664946604	0.155710664946604	-104.9494463	39.6897162	-104.949472	39.6911164
-466	469	470	0.0207613766308904	0.0207613766308904	-104.9681294	39.7190458	-104.9678891	39.7190194
-468	471	472	0.378751941435673	0.378751941435673	-105.017379	39.7512262	-105.0184425	39.7479196
-472	475	476	0.0306017516715067	0.0306017516715067	-105.0122615	39.7554827	-105.0121896	39.7552131
-474	477	478	0.142331986757376	0.142331986757376	-105.0173303	39.7447127	-105.0170811	39.7459783
-476	401	479	0.0792493107270532	0.0792493107270532	-105.0115284	39.740564	-105.0124432	39.7406786
-480	481	482	0.61054856130416	0.61054856130416	-104.9818608	39.6967284	-104.9858803	39.7012654
-481	482	483	0.00751372921095178	0.00751372921095178	-104.9858803	39.7012654	-104.9859077	39.7013296
-482	483	484	0.0775332394520986	0.0775332394520986	-104.9859077	39.7013296	-104.9862665	39.7019699
-483	484	485	0.089248827005011	0.089248827005011	-104.9862665	39.7019699	-104.9862761	39.7027725
-17372	40	3540	0.206359755216492	0.206359755216492	-104.9786815	39.7002855	-104.9786521	39.6984298
-19502	10529	10530	0.0177249357864871	0.0177249357864871	-104.9883718	39.7065202	-104.9883733	39.7063608
-2653	2611	2612	0.141657164390576	0.141657164390576	-104.9891783	39.722537	-104.9908346	39.7225312
-2654	2612	2613	0.112637909268372	0.112637909268372	-104.9908346	39.7225312	-104.9921516	39.722527
-2655	2613	2614	0.0580743648208686	0.0580743648208686	-104.9921516	39.722527	-104.9928302	39.7225456
-17439	9901	10107	0.0190863480039502	0.0190863480039502	-104.9711673	39.6931206	-104.9711512	39.6932918
-2656	2614	2615	0.100743891980042	0.100743891980042	-104.9928302	39.7225456	-104.9940077	39.7225208
-2657	2615	2616	0.100475490032633	0.100475490032633	-104.9940077	39.7225208	-104.9951825	39.7225188
-2658	2616	2617	0.0513770343819779	0.0513770343819779	-104.9951825	39.7225188	-104.9957832	39.7225228
-2660	2618	2619	0.0511386540650187	0.0511386540650187	-104.9963593	39.7225267	-104.9969572	39.7225317
-2661	2619	2620	0.0507766966271612	0.0507766966271612	-104.9969572	39.7225317	-104.9975509	39.7225332
-2662	2620	2621	0.0437935865590098	0.0437935865590098	-104.9975509	39.7225332	-104.9980629	39.7225275
-2664	2622	2623	0.138741239129278	0.138741239129278	-104.9985544	39.7225221	-105.0001766	39.7225287
-2665	2623	2624	0.0616812798954739	0.0616812798954739	-105.0001766	39.7225287	-105.0008976	39.7225155
-2666	2624	2625	0.041735581046466	0.041735581046466	-105.0008976	39.7225155	-105.0013439	39.7226673
-2668	2626	2627	0.080053274568439	0.080053274568439	-105.0211539	39.7220542	-105.0220898	39.7220653
-2669	2627	2628	0.0586986059075718	0.0586986059075718	-105.0220898	39.7220653	-105.0227761	39.7220608
-2672	2630	2631	0.0511347279443915	0.0511347279443915	-105.0439263	39.7221305	-105.0445241	39.7221383
-2673	2631	2632	0.0473711830288774	0.0473711830288774	-105.0445241	39.7221383	-105.0450779	39.7221456
-2701	1199	2633	0.0222472727939579	0.0222472727939579	-104.951727	39.7271329	-104.9517199	39.7273329
-2800	2469	2753	0.205232670024875	0.205232670024875	-104.932822	39.7474019	-104.9328253	39.7492476
-2801	2753	2754	0.200329673691245	0.200329673691245	-104.9328253	39.7492476	-104.9328183	39.7510492
-2802	2754	796	0.200317660350865	0.200317660350865	-104.9328183	39.7510492	-104.9328183	39.7528507
-2803	796	2755	0.202508246596186	0.202508246596186	-104.9328183	39.7528507	-104.9328167	39.7546719
-2804	2755	2756	0.202966691897007	0.202966691897007	-104.9328167	39.7546719	-104.9328047	39.7564972
-2805	2756	2757	0.203516573136303	0.203516573136303	-104.9328047	39.7564972	-104.9328253	39.7583274
-2806	2757	2758	0.206901705972361	0.206901705972361	-104.9328253	39.7583274	-104.9328167	39.7601881
-2807	2758	2759	0.18527317626533	0.18527317626533	-104.9328167	39.7601881	-104.9328136	39.7618543
-2809	2760	2761	0.172193089993048	0.172193089993048	-104.9328153	39.7162508	-104.9327855	39.7177992
-2810	2761	2337	0.176949778602699	0.176949778602699	-104.9327855	39.7177992	-104.9327695	39.7193905
-2811	2337	2762	0.175813497300624	0.175813497300624	-104.9327695	39.7193905	-104.9327571	39.7209716
-2812	2762	2763	0.241500363205236	0.241500363205236	-104.9327571	39.7209716	-104.9327223	39.7231433
-2813	2763	2764	0.135070479950714	0.135070479950714	-104.9327223	39.7231433	-104.9327137	39.724358
-2814	2764	2765	0.106502558770285	0.106502558770285	-104.9327137	39.724358	-104.9327124	39.7253158
-2815	2765	2766	0.0334927078919062	0.0334927078919062	-104.9327124	39.7253158	-104.9327097	39.725617
-2816	2766	2767	0.200988096936329	0.200988096936329	-104.9327097	39.725617	-104.9327231	39.7274245
-2817	2767	2768	0.200799068465386	0.200799068465386	-104.9327231	39.7274245	-104.9327365	39.7292303
-2819	2769	1141	0.136317655493671	0.136317655493671	-104.933165	39.7620038	-104.9331531	39.7632297
-2820	1141	908	0.140881200888928	0.140881200888928	-104.9331531	39.7632297	-104.9331257	39.7644965
-1246	190	1268	0.101376125490378	0.101376125490378	-105.0203986	39.7166208	-105.0203557	39.7175319
-20670	10891	10892	0.0391113232197559	0.0391113232197559	-105.0400867	39.7653362	-105.0396698	39.7654812
-20671	10892	10893	0.0381065586329798	0.0381065586329798	-105.0396698	39.7654812	-105.0400814	39.7656129
-20672	10893	10894	0.00879572218910387	0.00879572218910387	-105.0400814	39.7656129	-105.0400807	39.765692
-20673	10894	6880	0.00914047873035344	0.00914047873035344	-105.0400807	39.765692	-105.0400799	39.7657742
-20675	10895	10896	0.0564298376836357	0.0564298376836357	-105.0400542	39.7656936	-105.0393975	39.7656413
-20676	10896	10897	0.0882221479591311	0.0882221479591311	-105.0393975	39.7656413	-105.039396	39.7648479
-20677	10897	10898	0.0915468728847566	0.0915468728847566	-105.039396	39.7648479	-105.0393945	39.7640246
-20678	10898	10889	0.0977975944203811	0.0977975944203811	-105.0393945	39.7640246	-105.0403834	39.764467
-12368	8665	8670	0.0146509072378509	0.0146509072378509	-105.0124819	39.7528908	-105.0123272	39.7529475
-20679	10889	10899	0.0863988642991602	0.0863988642991602	-105.0403834	39.764467	-105.0403803	39.765244
-20680	10899	10900	0.00621581990565306	0.00621581990565306	-105.0403803	39.765244	-105.0403805	39.7652999
-20682	10899	10901	0.0272487435286037	0.0272487435286037	-105.0403803	39.765244	-105.0400615	39.7652432
-20683	10902	10892	0.0353963477419812	0.0353963477419812	-105.0400838	39.7654891	-105.0396698	39.7654812
-20685	10903	10904	0.0311951245060147	0.0311951245060147	-105.0402411	39.7653473	-105.0402346	39.7656278
-20686	10905	8231	0.00978569112678673	0.00978569112678673	-105.0250777	39.7620918	-105.0250765	39.7620038
-20687	8231	10753	0.00720642488718956	0.00720642488718956	-105.0250765	39.7620038	-105.0250779	39.761939
-11	11	12	0.132606225003913	0.132606225003913	-105.0283851	39.746369	-105.0299361	39.7463759
-13	13	14	0.261405445974353	0.261405445974353	-105.0315114	39.7463778	-105.0345689	39.7463686
-14	14	15	0.0524534751729061	0.0524534751729061	-105.0345689	39.7463686	-105.0351824	39.7463725
-15	15	16	0.0498286567506269	0.0498286567506269	-105.0351824	39.7463725	-105.0357652	39.7463762
-16	16	17	0.0506321145105979	0.0506321145105979	-105.0357652	39.7463762	-105.0363574	39.7463727
-17	17	18	0.0480115772672805	0.0480115772672805	-105.0363574	39.7463727	-105.0369187	39.746386
-19	19	20	0.586520216245135	0.586520216245135	-105.044038	39.757286	-105.0508993	39.7572779
-21	22	23	0.0471109050306669	0.0471109050306669	-105.0186135	39.7572732	-105.0191645	39.7572644
-22	23	24	0.117066818844753	0.117066818844753	-105.0191645	39.7572644	-105.0205339	39.7572526
-25	26	27	0.131659873107185	0.131659873107185	-105.0236259	39.7572468	-105.0251661	39.7572464
-27	28	29	0.0945023300061256	0.0945023300061256	-104.9850866	39.7002557	-104.983982	39.7002584
-28	29	32	0.0547795902237084	0.0547795902237084	-104.983982	39.7002584	-104.9833417	39.7002584
-29	32	33	0.0472851468321661	0.0472851468321661	-104.9833417	39.7002584	-104.982789	39.7002584
-30	33	34	0.0541728824006047	0.0541728824006047	-104.982789	39.7002584	-104.982156	39.7002709
-1	1	2	0.182682884421833	0.182682884421833	-105.0155597	39.7339973	-105.0158228	39.7323669
-31	34	35	0.0481653228438301	0.0481653228438301	-104.982156	39.7002709	-104.9815932	39.7002821
-32	35	36	0.0518878807765827	0.0518878807765827	-104.9815932	39.7002821	-104.9809867	39.7002821
-34	37	38	0.0490317013211587	0.0490317013211587	-104.9804174	39.7002821	-104.9798443	39.7002853
-35	38	39	0.0492286314169291	0.0492286314169291	-104.9798443	39.7002853	-104.9792689	39.7002887
-36	39	40	0.0502550749626562	0.0502550749626562	-104.9792689	39.7002887	-104.9786815	39.7002855
-37	40	41	0.0504947813294015	0.0504947813294015	-104.9786815	39.7002855	-104.9780913	39.7002821
-19671	9367	10610	0.0557753987785757	0.0557753987785757	-105.0246438	39.769277	-105.0246432	39.7697786
-38	41	42	0.0486093395250147	0.0486093395250147	-104.9780913	39.7002821	-104.9775311	39.7002091
-39	42	43	0.0502383575999221	0.0502383575999221	-104.9775311	39.7002091	-104.9769439	39.7002055
-40	43	44	0.0498102685006676	0.0498102685006676	-104.9769439	39.7002055	-104.9763617	39.7002087
-42	45	46	0.0520249865615885	0.0520249865615885	-104.9757682	39.7002165	-104.9751601	39.7002153
-43	46	47	0.0510850489044332	0.0510850489044332	-104.9751601	39.7002153	-104.974563	39.7002186
-44	47	48	0.0480642310133195	0.0480642310133195	-104.974563	39.7002186	-104.9740013	39.7002102
-45	48	49	0.0520776483582305	0.0520776483582305	-104.9740013	39.7002102	-104.9733927	39.700201
-47	50	51	0.0661075861419648	0.0661075861419648	-104.9541194	39.7002037	-104.953347	39.7002205
-48	51	52	0.0568810950926816	0.0568810950926816	-104.953347	39.7002205	-104.9526824	39.7002349
-49	52	53	0.0608706853363099	0.0608706853363099	-104.9526824	39.7002349	-104.9519712	39.7002191
-50	53	54	0.0662114802606989	0.0662114802606989	-104.9519712	39.7002191	-104.9511976	39.7002019
-51	54	55	0.0474185291403829	0.0474185291403829	-104.9511976	39.7002019	-104.9506434	39.7001957
-52	55	56	0.0539297292184645	0.0539297292184645	-104.9506434	39.7001957	-104.9500131	39.7001887
-53	56	57	0.108686747732496	0.108686747732496	-104.9500131	39.7001887	-104.9487429	39.7002061
-54	57	58	0.187258749990905	0.187258749990905	-104.9487429	39.7002061	-104.9465541	39.7002085
-56	59	60	1.21682866156064	1.21682866156064	-104.9247401	39.6995385	-104.9105465	39.700242
-58	62	65	0.111732852527499	0.111732852527499	-104.932829	39.700178	-104.934135	39.700181
-60	66	67	0.0462182288009238	0.0462182288009238	-104.968686	39.7002245	-104.9681458	39.7002288
-61	67	68	0.0059633062869109	0.0059633062869109	-104.9681458	39.7002288	-104.9680761	39.7002293
-63	69	70	0.0080040379689871	0.0080040379689871	-104.9675826	39.7002312	-104.9674891	39.7002337
-65	71	72	0.00371377887510826	0.00371377887510826	-104.9669496	39.700226	-104.9669067	39.7002209
-66	72	73	0.0481593874311522	0.0481593874311522	-104.9669067	39.7002209	-104.9663438	39.7002174
-67	73	74	0.0476872742951146	0.0476872742951146	-104.9663438	39.7002174	-104.9657864	39.7002174
-68	74	75	0.050981067010882	0.050981067010882	-104.9657864	39.7002174	-104.9651905	39.7002174
-69	75	76	0.047311096476864	0.047311096476864	-104.9651905	39.7002174	-104.9646375	39.7002188
-70	76	77	0.00343925081784597	0.00343925081784597	-104.9646375	39.7002188	-104.9645973	39.7002189
-71	77	78	0.0504851331557092	0.0504851331557092	-104.9645973	39.7002189	-104.9640072	39.7002204
-72	78	79	0.0447329738384301	0.0447329738384301	-104.9640072	39.7002204	-104.9634844	39.7002269
-73	79	80	0.00573274424924571	0.00573274424924571	-104.9634844	39.7002269	-104.9634174	39.7002277
-74	80	81	0.048934333458383	0.048934333458383	-104.9634174	39.7002277	-104.9628455	39.7002349
-75	81	82	0.0451562090400863	0.0451562090400863	-104.9628455	39.7002349	-104.9623177	39.7002318
-76	82	83	0.0525053441886158	0.0525053441886158	-104.9623177	39.7002318	-104.961704	39.7002283
-77	83	84	0.0468507536792171	0.0468507536792171	-104.961704	39.7002283	-104.9611564	39.7002245
-79	85	86	0.0489620579654281	0.0489620579654281	-104.9605654	39.7002204	-104.9599931	39.700221
-80	86	87	0.056293962476598	0.056293962476598	-104.9599931	39.700221	-104.9593351	39.7002217
-81	87	88	0.0565505675369976	0.0565505675369976	-104.9593351	39.7002217	-104.9586741	39.7002217
-82	88	89	0.049261447484153	0.049261447484153	-104.9586741	39.7002217	-104.9580983	39.7002217
-83	89	90	0.0461992376398338	0.0461992376398338	-104.9580983	39.7002217	-104.9575583	39.7002238
-84	90	91	0.0452410545911285	0.0452410545911285	-104.9575583	39.7002238	-104.9570295	39.7002259
-85	91	92	0.040125194779582	0.040125194779582	-104.9570295	39.7002259	-104.9565605	39.7002236
-86	92	93	0.0417705541366205	0.0417705541366205	-104.9565605	39.7002236	-104.9560723	39.7002187
-87	93	94	0.0307746903425865	0.0307746903425865	-104.9560723	39.7002187	-104.9557126	39.7002162
-88	94	95	0.0484715360122363	0.0484715360122363	-104.9557126	39.7002162	-104.9551461	39.7002095
-90	58	96	0.0988139178735054	0.0988139178735054	-104.9465541	39.7002085	-104.9453991	39.7002071
-91	96	97	0.101340345409915	0.101340345409915	-104.9453991	39.7002071	-104.9442146	39.7002138
-92	97	98	0.0883916436599661	0.0883916436599661	-104.9442146	39.7002138	-104.9431816	39.700199
-93	98	99	0.0102766637725455	0.0102766637725455	-104.9431816	39.700199	-104.9430615	39.7001973
-94	99	100	0.0815080239205417	0.0815080239205417	-104.9430615	39.7001973	-104.9421088	39.7002019
-95	100	101	0.0191432455952872	0.0191432455952872	-104.9421088	39.7002019	-104.9418857	39.7001887
-99	104	105	0.149790406602899	0.149790406602899	-104.9874778	39.7002508	-104.9890384	39.7008615
-100	106	107	0.104888043119077	0.104888043119077	-104.931654	39.700221	-104.930428	39.700221
-101	107	108	0.276057285299863	0.276057285299863	-104.930428	39.700221	-104.9272013	39.700209
-103	109	110	0.318041485575751	0.318041485575751	-105.002935	39.7765792	-105.0016991	39.7792771
-105	111	112	0.0487653491195207	0.0487653491195207	-104.929111	39.709605	-104.929063	39.710042
-106	113	114	0.160343090933149	0.160343090933149	-105.0174031	39.7302926	-105.0192781	39.7302978
-107	114	115	0.208121584183608	0.208121584183608	-105.0192781	39.7302978	-105.0217118	39.7303058
-111	118	119	0.137350395143796	0.137350395143796	-105.0112228	39.7301878	-105.0128289	39.7301964
-113	120	121	0.356240759753107	0.356240759753107	-105.011137	39.753586	-105.0092699	39.7564502
-114	121	122	0.149871853701347	0.149871853701347	-105.0092699	39.7564502	-105.0080327	39.7574052
-115	122	123	0.148228608040365	0.148228608040365	-105.0080327	39.7574052	-105.0068372	39.7583708
-116	123	124	0.294126045752515	0.294126045752515	-105.0068372	39.7583708	-105.0043775	39.7602205
-118	125	126	0.131313615022207	0.131313615022207	-105.0040777	39.7604163	-105.0030317	39.7612812
-119	126	127	0.263795049720844	0.263795049720844	-105.0030317	39.7612812	-105.001255	39.763221
-123	130	131	0.221071288024568	0.221071288024568	-105.010718	39.694947	-105.0097289	39.6931103
-125	132	133	0.0549684068983719	0.0549684068983719	-104.9874659	39.6930068	-104.9881082	39.6929965
-126	133	135	0.0478699749630446	0.0478699749630446	-104.9881082	39.6929965	-104.9886673	39.6929807
-127	135	136	0.130706329520293	0.130706329520293	-104.9886673	39.6929807	-104.9901944	39.6930114
-128	136	137	0.0495130025200929	0.0495130025200929	-104.9901944	39.6930114	-104.990773	39.6930188
-129	137	138	0.0194653537975714	0.0194653537975714	-104.990773	39.6930188	-104.9910005	39.6930189
-130	138	139	0.0302495949579548	0.0302495949579548	-104.9910005	39.6930189	-104.991354	39.693023
-131	139	140	0.097138516429268	0.097138516429268	-104.991354	39.693023	-104.9924893	39.6930233
-133	141	142	0.0984160429772276	0.0984160429772276	-104.9968856	39.6930808	-104.9980358	39.6930742
-1414	1439	1440	0.0969799596597411	0.0969799596597411	-105.0228009	39.7820131	-105.0239358	39.7820092
-135	143	144	0.094779584184767	0.094779584184767	-104.9992288	39.6930874	-105.000336	39.6931138
-136	144	145	0.102947980955417	0.102947980955417	-105.000336	39.6931138	-105.0015377	39.6930676
-137	145	146	0.0998791210708115	0.0998791210708115	-105.0015377	39.6930676	-105.002705	39.6930742
-138	146	147	0.10354963170018	0.10354963170018	-105.002705	39.6930742	-105.0039152	39.6930676
-139	147	148	0.0970503169891706	0.0970503169891706	-105.0039152	39.6930676	-105.0050494	39.6930773
-141	149	150	0.0462633170535789	0.0462633170535789	-105.0061897	39.6930874	-105.0067304	39.6930874
-142	150	151	0.0859494466376985	0.0859494466376985	-105.0067304	39.6930874	-105.0077346	39.6931072
-143	151	152	0.084056042435147	0.084056042435147	-105.0077346	39.6931072	-105.008717	39.6931063
-144	152	131	0.0865811985903579	0.0865811985903579	-105.008717	39.6931063	-105.0097289	39.6931103
-145	131	155	0.0846809008371401	0.0846809008371401	-105.0097289	39.6931103	-105.0107186	39.6931124
-146	155	156	0.0860732350550831	0.0860732350550831	-105.0107186	39.6931124	-105.0117244	39.6930979
-147	156	157	0.0810260254286054	0.0810260254286054	-105.0117244	39.6930979	-105.0126712	39.6931124
-148	157	158	0.0821650587696609	0.0821650587696609	-105.0126712	39.6931124	-105.0136315	39.6931124
-149	158	159	0.0810216994355951	0.0810216994355951	-105.0136315	39.6931124	-105.0145783	39.6931248
-150	159	160	0.0856058417834562	0.0856058417834562	-105.0145783	39.6931248	-105.0155788	39.6931289
-151	160	161	0.0815928873404902	0.0815928873404902	-105.0155788	39.6931289	-105.0165323	39.6931402
-152	161	162	0.00737779613210769	0.00737779613210769	-105.0165323	39.6931402	-105.0166181	39.6931468
-154	163	164	0.00763240627009494	0.00763240627009494	-105.0174975	39.6931459	-105.0175867	39.6931453
-155	164	165	0.0713522613021865	0.0713522613021865	-105.0175867	39.6931453	-105.0184206	39.6931402
-156	165	166	0.00987473687183569	0.00987473687183569	-105.0184206	39.6931402	-105.018536	39.693139
-157	166	167	0.0668981585963986	0.0668981585963986	-105.018536	39.693139	-105.0193178	39.693131
-158	167	168	0.0113627652096004	0.0113627652096004	-105.0193178	39.693131	-105.0194505	39.693127
-159	168	169	0.0796520415458163	0.0796520415458163	-105.0194505	39.693127	-105.0203814	39.6931327
-160	169	170	0.0789939822174276	0.0789939822174276	-105.0203814	39.6931327	-105.0213045	39.6931204
-161	170	171	0.0216393201096419	0.0216393201096419	-105.0213045	39.6931204	-105.0215573	39.6931261
-162	171	172	0.05739626274334	0.05739626274334	-105.0215573	39.6931261	-105.022228	39.6931165
-163	172	173	0.0799414498698892	0.0799414498698892	-105.022228	39.6931165	-105.0231623	39.6931129
-164	173	174	0.161327077814812	0.161327077814812	-105.0231623	39.6931129	-105.0250478	39.6931151
-165	174	175	0.292992058630926	0.292992058630926	-105.0250478	39.6931151	-105.0284721	39.6931041
-166	175	176	0.108231632340063	0.108231632340063	-105.0284721	39.6931041	-105.029737	39.6931129
-167	176	177	0.106370208061557	0.106370208061557	-105.029737	39.6931129	-105.03098	39.6930959
-168	177	178	0.0920329418240447	0.0920329418240447	-105.03098	39.6930959	-105.0320556	39.6931021
-169	178	179	0.199657740223053	0.199657740223053	-105.0320556	39.6931021	-105.034389	39.6930864
-170	179	180	0.100614906430247	0.100614906430247	-105.034389	39.6930864	-105.0355649	39.693093
-1461	1483	1484	0.0976853528091841	0.0976853528091841	-104.9913183	39.6948152	-104.99246	39.6948099
-171	180	181	0.0991515808605787	0.0991515808605787	-105.0355649	39.693093	-105.0367236	39.6931063
-172	181	182	0.101348037813126	0.101348037813126	-105.0367236	39.6931063	-105.0379081	39.6931063
-175	184	185	0.0991513776470571	0.0991513776470571	-105.0402341	39.6931327	-105.0413928	39.6931195
-178	187	188	0.0984378662868895	0.0984378662868895	-105.0437531	39.6931327	-105.0449033	39.6931129
-179	188	189	0.709590130188447	0.709590130188447	-105.0449033	39.6931129	-105.0531962	39.6931758
-180	190	191	0.100578501060841	0.100578501060841	-105.0203986	39.7166208	-105.02039	39.7157163
-181	191	192	0.0991218871214513	0.0991218871214513	-105.02039	39.7157163	-105.0203814	39.7148249
-182	192	193	0.20342936542853	0.20342936542853	-105.0203814	39.7148249	-105.0203213	39.712996
-183	193	194	0.207080695389682	0.207080695389682	-105.0203213	39.712996	-105.0203728	39.7111341
-184	194	195	0.202642969626672	0.202642969626672	-105.0203728	39.7111341	-105.0203814	39.7093117
-185	195	196	0.201913108682536	0.201913108682536	-105.0203814	39.7093117	-105.0203986	39.7074959
-186	196	197	0.201920207523846	0.201920207523846	-105.0203986	39.7074959	-105.02039	39.70568
-187	197	198	0.201206377797867	0.201206377797867	-105.02039	39.70568	-105.0203557	39.7038707
-188	198	199	0.199728327239083	0.199728327239083	-105.0203557	39.7038707	-105.0203557	39.7020745
-189	199	200	0.179903776297828	0.179903776297828	-105.0203557	39.7020745	-105.0203471	39.7004566
-190	200	201	0.00513723410606708	0.00513723410606708	-105.0203471	39.7004566	-105.0203473	39.7004104
-191	201	202	0.207079558909688	0.207079558909688	-105.0203473	39.7004104	-105.0203557	39.6985481
-194	169	204	0.256940343045097	0.256940343045097	-105.0203814	39.6931327	-105.0203689	39.690822
-195	204	205	0.14761309930181	0.14761309930181	-105.0203689	39.690822	-105.0203775	39.6894945
-384	386	387	0.312847187378026	0.312847187378026	-105.0063891	39.78283	-105.0028212	39.783461
-197	208	209	0.0482198776992404	0.0482198776992404	-105.0203767	39.6877125	-105.0203575	39.6872791
-198	209	210	1.36238336075367	1.36238336075367	-105.0203575	39.6872791	-105.0203756	39.6750269
-199	211	212	0.0762056360151952	0.0762056360151952	-104.9672465	39.7792331	-104.9665616	39.779672
-210	221	222	0.10839564681744	0.10839564681744	-104.9863694	39.7019694	-104.9874359	39.7014431
-212	223	224	0.197685755221764	0.197685755221764	-104.9432215	39.7799643	-104.9412461	39.7790391
-213	224	225	0.136500664002185	0.136500664002185	-104.9412461	39.7790391	-104.9407032	39.7778846
-215	226	227	0.0378358956085511	0.0378358956085511	-104.940692	39.7797323	-104.9403515	39.7799498
-217	228	229	0.0700057652168164	0.0700057652168164	-104.949699	39.7790161	-104.9490058	39.7793516
-218	229	230	0.156709235598665	0.156709235598665	-104.9490058	39.7793516	-104.9472475	39.7797519
-220	231	232	0.0710636642555904	0.0710636642555904	-104.9941166	39.693522	-104.9943741	39.6929144
-223	234	235	0.0652725377045483	0.0652725377045483	-104.9688514	39.6965865	-104.9695743	39.6967741
-227	237	238	0.33099974682308	0.33099974682308	-105.0251054	39.7259431	-105.0289409	39.7255444
-19951	4950	4670	0.10032168356836	0.10032168356836	-104.9951823	39.723	-104.9940093	39.7230042
-229	239	240	0.145321847286165	0.145321847286165	-104.9766938	39.6912137	-104.9752801	39.6904894
-230	240	241	0.0697724132050665	0.0697724132050665	-104.9752801	39.6904894	-104.9745995	39.6901438
-231	241	242	0.0623380559401012	0.0623380559401012	-104.9745995	39.6901438	-104.9739987	39.6898267
-232	242	243	0.121807717540091	0.121807717540091	-104.9739987	39.6898267	-104.9728142	39.6892191
-233	243	244	0.123936016070967	0.123936016070967	-104.9728142	39.6892191	-104.9715783	39.6886379
-234	244	245	0.0423914167747626	0.0423914167747626	-104.9715783	39.6886379	-104.9711551	39.6884397
-235	245	30	0.0421885133223055	0.0421885133223055	-104.9711551	39.6884397	-104.9707346	39.6882416
-238	134	246	0.0735610173824186	0.0735610173824186	-104.969078	39.6873895	-104.9683485	39.6870395
-246	253	254	0.386604280856974	0.386604280856974	-105.0285448	39.740303	-105.0251543	39.7380028
-261	271	272	0.0791195509987444	0.0791195509987444	-105.0214373	39.7400355	-105.020512	39.7400417
-262	272	273	0.0178978198366689	0.0178978198366689	-105.020512	39.7400417	-105.0203028	39.7400362
-263	273	274	0.0364878269996901	0.0364878269996901	-105.0203028	39.7400362	-105.0198763	39.7400252
-264	274	275	0.130636800507014	0.130636800507014	-105.0198763	39.7400252	-105.0183528	39.7401138
-265	275	276	0.0381201943550558	0.0381201943550558	-105.0183528	39.7401138	-105.0179907	39.7399138
-272	282	283	0.097546663905458	0.097546663905458	-104.98357	39.7794055	-104.9824285	39.7794055
-556	66	551	0.00841985913797999	0.00841985913797999	-104.968686	39.7002245	-104.9687844	39.7002259
-557	551	552	0.04510313602044	0.04510313602044	-104.9687844	39.7002259	-104.9693115	39.7002336
-559	553	554	0.116858726253731	0.116858726253731	-105.0084451	39.7357701	-105.0077561	39.7366777
-562	249	556	0.0347143242166075	0.0347143242166075	-104.998368	39.698242	-104.998773	39.698261
-563	557	250	0.0320475892789012	0.0320475892789012	-104.998773	39.697354	-104.998399	39.69737
-581	573	574	3.62449911588374	3.62449911588374	-104.9857184	39.6894083	-104.9858252	39.6568125
-582	495	575	0.042579905853808	0.042579905853808	-104.9399882	39.7812905	-104.9404777	39.7813621
-583	575	576	0.0263063929759334	0.0263063929759334	-104.9404777	39.7813621	-104.940659	39.7811709
-585	577	311	0.0472092453507094	0.0472092453507094	-104.979193	39.7791651	-104.9786416	39.779139
-587	578	579	0.310605662522472	0.310605662522472	-105.0107342	39.7225974	-105.0080855	39.7206863
-589	580	206	0.0784574482758401	0.0784574482758401	-104.9566854	39.743808	-104.9566644	39.7445134
-591	581	582	0.323379230044806	0.323379230044806	-104.9583963	39.7508014	-104.9577579	39.7479349
-593	583	584	0.18304036244052	0.18304036244052	-104.957601	39.708926	-104.957575	39.70728
-595	585	586	0.0719402278196197	0.0719402278196197	-104.9889526	39.7822987	-104.9889771	39.7829454
-597	587	588	0.0168822192889414	0.0168822192889414	-105.0297456	39.724543	-105.029943	39.724543
-599	589	590	0.0668977161070656	0.0668977161070656	-104.9917474	39.779568	-104.9910794	39.7792543
-601	592	593	0.00991684169352972	0.00991684169352972	-104.9690283	39.7038655	-104.9689126	39.70386
-606	597	598	0.0427315746706827	0.0427315746706827	-104.9464074	39.7019764	-104.9468452	39.7017914
-610	601	602	0.0635315500234909	0.0635315500234909	-104.9947852	39.7686695	-104.9952229	39.7691313
-611	602	603	0.0528935910157463	0.0528935910157463	-104.9952229	39.7691313	-104.9958065	39.7692896
-16699	9993	9994	0.012991856325609	0.012991856325609	-105.0002198	39.7467956	-105.0002735	39.7466863
-612	603	604	0.0535739683641864	0.0535739683641864	-104.9958065	39.7692896	-104.9964331	39.7692764
-615	606	307	0.0053241575287587	0.0053241575287587	-105.0278867	39.763078	-105.0279141	39.763121
-616	307	607	0.210415758379136	0.210415758379136	-105.0279141	39.763121	-105.0300516	39.7640597
-618	608	609	0.0943257357645838	0.0943257357645838	-104.9472743	39.739517	-104.9461712	39.7395075
-620	610	611	0.12631191015444	0.12631191015444	-104.9873582	39.7368646	-104.9888354	39.7368658
-621	611	612	0.121362330065702	0.121362330065702	-104.9888354	39.7368658	-104.9902547	39.7368606
-11699	1033	1034	0.0933842207119007	0.0933842207119007	-104.9992823	39.7531544	-105.0000465	39.7525543
-622	612	613	0.120087101438352	0.120087101438352	-104.9902547	39.7368606	-104.9916591	39.7368586
-623	613	614	0.109496386514743	0.109496386514743	-104.9916591	39.7368586	-104.9929396	39.7368669
-625	615	616	0.099485158811405	0.099485158811405	-104.9941215	39.7368616	-104.9952849	39.7368711
-626	616	617	0.0380723765849069	0.0380723765849069	-104.9952849	39.7368711	-104.9957301	39.7368659
-627	617	618	0.0166082915806853	0.0166082915806853	-104.9957301	39.7368659	-104.9959243	39.7368632
-629	619	620	0.0454138336035488	0.0454138336035488	-105.0316871	39.7365656	-105.0322182	39.7365636
-630	620	621	0.0942731398582661	0.0942731398582661	-105.0322182	39.7365636	-105.0333206	39.7365518
-631	621	622	0.00735436876666859	0.00735436876666859	-105.0333206	39.7365518	-105.0334066	39.7365509
-632	622	623	0.102647301082546	0.102647301082546	-105.0334066	39.7365509	-105.0346068	39.7365694
-633	623	544	0.0305138174261522	0.0305138174261522	-105.0346068	39.7365694	-105.034963	39.736586
-636	625	626	0.0461061908767262	0.0461061908767262	-105.0357989	39.7365856	-105.0363381	39.7365871
-637	626	627	0.0495093856599813	0.0495093856599813	-105.0363381	39.7365871	-105.0369171	39.7365886
-639	628	629	0.00822721040716169	0.00822721040716169	-104.9733503	39.7623867	-104.9734189	39.7624386
-640	629	630	0.102896638771385	0.102896638771385	-104.9734189	39.7624386	-104.9743045	39.7630654
-641	630	631	0.106879933016847	0.106879933016847	-104.9743045	39.7630654	-104.9751714	39.7637581
-642	631	632	0.103715813554019	0.103715813554019	-104.9751714	39.7637581	-104.976027	39.7644195
-643	632	633	0.10692744992309	0.10692744992309	-104.976027	39.7644195	-104.9769309	39.7650843
-644	633	634	0.103895780437174	0.103895780437174	-104.9769309	39.7650843	-104.9777895	39.7657457
-645	634	635	0.10514306949893	0.10514306949893	-104.9777895	39.7657457	-104.9786451	39.7664251
-647	636	637	0.00886536795801057	0.00886536795801057	-105.0169344	39.7566577	-105.016925	39.7567371
-648	637	638	0.204097990393348	0.204097990393348	-105.016925	39.7567371	-105.0180723	39.7583468
-649	638	639	0.00993994545767469	0.00993994545767469	-105.0180723	39.7583468	-105.0181467	39.7584155
-651	640	641	0.322116221139114	0.322116221139114	-104.9875489	39.7695895	-104.9847379	39.7715192
-653	643	644	0.14058289547664	0.14058289547664	-104.9405805	39.7413879	-104.9389365	39.7413679
-654	644	645	0.143886814663415	0.143886814663415	-104.9389365	39.7413679	-104.9372542	39.7414009
-657	647	648	0.1449055455771	0.1449055455771	-104.9337694	39.7413613	-104.9320748	39.7413793
-660	650	651	0.0986374455510098	0.0986374455510098	-104.9872612	39.7417297	-104.9861093	39.7416811
-661	651	652	0.109870142544629	0.109870142544629	-104.9861093	39.7416811	-104.9848243	39.741678
-662	652	653	0.107278100090415	0.107278100090415	-104.9848243	39.741678	-104.9835697	39.7416896
-663	653	654	0.105274765421146	0.105274765421146	-104.9835697	39.7416896	-104.9823388	39.7416667
-664	654	655	0.107321673078917	0.107321673078917	-104.9823388	39.7416667	-104.9810836	39.7416667
-665	655	659	0.103426909396494	0.103426909396494	-104.9810836	39.7416667	-104.979874	39.741675
-666	659	660	0.0476206970204551	0.0476206970204551	-104.979874	39.741675	-104.9793171	39.7416689
-667	660	661	0.0487580750629072	0.0487580750629072	-104.9793171	39.7416689	-104.9787469	39.7416626
-668	661	662	0.103115405190933	0.103115405190933	-104.9787469	39.7416626	-104.9775409	39.74166
-669	662	663	0.118337011744519	0.118337011744519	-104.9775409	39.74166	-104.9761569	39.7416528
-670	663	664	0.118107974454135	0.118107974454135	-104.9761569	39.7416528	-104.9747756	39.7416621
-671	664	665	0.223948343500364	0.223948343500364	-104.9747756	39.7416621	-104.9721564	39.7416528
-672	665	666	0.106040631048838	0.106040631048838	-104.9721564	39.7416528	-104.9709162	39.7416478
-673	666	667	0.0256000736542961	0.0256000736542961	-104.9709162	39.7416478	-104.9706168	39.7416459
-674	667	668	0.0803036973488277	0.0803036973488277	-104.9706168	39.7416459	-104.9696776	39.7416433
-675	668	669	0.107519240980512	0.107519240980512	-104.9696776	39.7416433	-104.9684201	39.7416394
-1662	1688	1689	0.0492594246995293	0.0492594246995293	-105.038125	39.7676337	-105.0387013	39.7676285
-677	670	671	0.106757477563009	0.106757477563009	-104.9672238	39.7416291	-104.9659752	39.7416301
-678	671	672	0.103159385358598	0.103159385358598	-104.9659752	39.7416301	-104.9647688	39.7416171
-679	672	673	0.111733647900791	0.111733647900791	-104.9647688	39.7416171	-104.963462	39.7416167
-680	673	674	0.10480806031483	0.10480806031483	-104.963462	39.7416167	-104.9622362	39.7416157
-681	674	675	0.0524357665703955	0.0524357665703955	-104.9622362	39.7416157	-104.961623	39.7416085
-682	675	676	0.0522607419390769	0.0522607419390769	-104.961623	39.7416085	-104.9610118	39.7416043
-683	676	677	0.0516311575112871	0.0516311575112871	-104.9610118	39.7416043	-104.960408	39.7416109
-684	677	678	0.0529566114294976	0.0529566114294976	-104.960408	39.7416109	-104.9597887	39.7416177
-685	678	679	0.0524070698016137	0.0524070698016137	-104.9597887	39.7416177	-104.9591758	39.7416126
-686	679	680	0.187479766906081	0.187479766906081	-104.9591758	39.7416126	-104.9569831	39.7416105
-690	683	684	0.0954023275162926	0.0954023275162926	-104.9320748	39.7419667	-104.930959	39.7419667
-691	684	685	0.100472575096637	0.100472575096637	-104.930959	39.7419667	-104.9297839	39.7419673
-692	685	686	0.0954830683114717	0.0954830683114717	-104.9297839	39.7419673	-104.9286673	39.7419535
-693	686	687	0.0981912656165647	0.0981912656165647	-104.9286673	39.7419535	-104.9275189	39.7419485
-694	687	688	0.0529127579061837	0.0529127579061837	-104.9275189	39.7419485	-104.926901	39.7419221
-695	688	689	0.097652475318391	0.097652475318391	-104.926901	39.7419221	-104.9257594	39.7418957
-696	689	690	0.0954475604442949	0.0954475604442949	-104.9257594	39.7418957	-104.9246436	39.7419221
-697	690	691	1.04422795392214	1.04422795392214	-104.9246436	39.7419221	-104.9124306	39.7419176
-698	692	693	0.101491505067343	0.101491505067343	-104.9547755	39.7419939	-104.9535885	39.7419889
-700	694	695	0.0992328230839297	0.0992328230839297	-104.9524269	39.7419829	-104.9512663	39.7419839
-701	695	696	0.102484361376735	0.102484361376735	-104.9512663	39.7419839	-104.9500677	39.7419774
-703	697	698	0.0986965284486813	0.0986965284486813	-104.9488331	39.7419679	-104.9476788	39.7419741
-704	698	699	0.0994466333494717	0.0994466333494717	-104.9476788	39.7419741	-104.9465157	39.7419728
-705	699	700	0.0997814367951755	0.0997814367951755	-104.9465157	39.7419728	-104.9453488	39.7419601
-706	700	702	0.0968138925983087	0.0968138925983087	-104.9453488	39.7419601	-104.9442165	39.7419566
-707	702	703	0.100377700728806	0.100377700728806	-104.9442165	39.7419566	-104.9430426	39.7419454
-708	703	704	0.0945219805489684	0.0945219805489684	-104.9430426	39.7419454	-104.9419371	39.7419475
-709	704	705	0.101319162842739	0.101319162842739	-104.9419371	39.7419475	-104.9407521	39.7419489
-711	706	707	0.0929527445510612	0.0929527445510612	-105.0041014	39.7624043	-105.0041326	39.7632399
-712	707	708	0.132514897770158	0.132514897770158	-105.0041326	39.7632399	-105.0041445	39.7644316
-713	708	709	0.136169309583257	0.136169309583257	-105.0041445	39.7644316	-105.0041442	39.7656562
-714	709	710	0.133600704636896	0.133600704636896	-105.0041442	39.7656562	-105.0041443	39.7668577
-715	710	711	0.131877184107974	0.131877184107974	-105.0041443	39.7668577	-105.0041445	39.7680437
-716	711	712	0.137129048962243	0.137129048962243	-105.0041445	39.7680437	-105.0041679	39.7692768
-717	712	714	0.139625593223683	0.139625593223683	-105.0041679	39.7692768	-105.0041958	39.7705323
-718	714	715	0.140147388874583	0.140147388874583	-105.0041958	39.7705323	-105.0041615	39.7717924
-720	716	717	0.139181895573122	0.139181895573122	-105.0041786	39.7730524	-105.0042194	39.7743037
-721	717	718	0.136478657719685	0.136478657719685	-105.0042194	39.7743037	-105.0041624	39.7755303
-722	718	719	0.0608836584293049	0.0608836584293049	-105.0041624	39.7755303	-105.004171	39.7760778
-723	719	720	0.0543052596791692	0.0543052596791692	-105.004171	39.7760778	-105.0041538	39.776566
-724	720	721	0.402215107963206	0.402215107963206	-105.0041538	39.776566	-105.0041443	39.7801832
-726	722	723	0.109800761131151	0.109800761131151	-105.004084	39.7289511	-105.0028344	39.7287242
-728	724	725	0.0404933936313706	0.0404933936313706	-104.9512162	39.7020084	-104.9512072	39.7016443
-729	725	726	0.0429068637575149	0.0429068637575149	-104.9512072	39.7016443	-104.9511976	39.7012585
-730	726	54	0.117488559492451	0.117488559492451	-104.9511976	39.7012585	-104.9511976	39.7002019
-732	728	729	0.201386679597364	0.201386679597364	-104.951164	39.6965829	-104.9511904	39.6947719
-733	729	730	0.204011830144653	0.204011830144653	-104.9511904	39.6947719	-104.9512022	39.6929372
-734	730	731	0.199761692314281	0.199761692314281	-104.9512022	39.6929372	-104.9512028	39.6911407
-17425	10099	10083	0.0366406616748247	0.0366406616748247	-104.9835426	39.688944	-104.9836553	39.6886261
-735	731	732	0.201563131430502	0.201563131430502	-104.9512028	39.6911407	-104.951205	39.689328
-736	732	733	0.402282143818784	0.402282143818784	-104.951205	39.689328	-104.9512417	39.6857103
-737	734	735	0.0902645098486118	0.0902645098486118	-104.9634771	39.7765229	-104.9624209	39.7765159
-738	735	736	0.0928507623233121	0.0928507623233121	-104.9624209	39.7765159	-104.9613344	39.7765177
-739	736	737	0.0900332912586976	0.0900332912586976	-104.9613344	39.7765177	-104.960283	39.7764662
-740	737	738	0.0739532182409675	0.0739532182409675	-104.960283	39.7764662	-104.9594193	39.7764249
-741	738	739	0.100409435325613	0.100409435325613	-104.9594193	39.7764249	-104.9582445	39.7764105
-742	739	740	0.0918337393875257	0.0918337393875257	-104.9582445	39.7764105	-104.9571699	39.7764108
-743	740	741	0.0605135925040139	0.0605135925040139	-104.9571699	39.7764108	-104.9564618	39.7764088
-744	741	744	0.09764928319827	0.09764928319827	-104.9564618	39.7764088	-104.9553192	39.7764005
-745	744	745	0.100176801141236	0.100176801141236	-104.9553192	39.7764005	-104.954147	39.7763944
-746	745	746	0.0948931710062943	0.0948931710062943	-104.954147	39.7763944	-104.9530366	39.7763944
-747	746	747	0.0932950961705344	0.0932950961705344	-104.9530366	39.7763944	-104.9519449	39.7763944
-748	747	748	0.0948942633213168	0.0948942633213168	-104.9519449	39.7763944	-104.9508345	39.7763985
-749	748	749	0.0880271421463829	0.0880271421463829	-104.9508345	39.7763985	-104.9498045	39.7763902
-750	749	750	0.101773658707536	0.101773658707536	-104.9498045	39.7763902	-104.9486136	39.7763944
-751	750	751	0.094781491782375	0.094781491782375	-104.9486136	39.7763944	-104.9475049	39.7764171
-752	751	752	0.0909312964030863	0.0909312964030863	-104.9475049	39.7764171	-104.9464409	39.77641
-754	753	754	0.0476837940219257	0.0476837940219257	-104.9875955	39.7752036	-104.9870376	39.7752102
-755	754	755	0.0476837940207114	0.0476837940207114	-104.9870376	39.7752102	-104.9864797	39.7752036
-756	755	756	0.100492444483886	0.100492444483886	-104.9864797	39.7752036	-104.9853038	39.7752036
-760	760	761	0.278292588595779	0.278292588595779	-105.0070586	39.7765312	-105.0069691	39.779033
-18241	8960	6768	0.145513824807152	0.145513824807152	-105.0258905	39.7724462	-105.0275913	39.7725071
-762	762	763	0.102174293003021	0.102174293003021	-105.0062581	39.7024674	-105.0074463	39.7025603
-763	763	764	0.0992571756698332	0.0992571756698332	-105.0074463	39.7025603	-105.0086065	39.7025548
-764	764	765	0.100622536912342	0.100622536912342	-105.0086065	39.7025548	-105.0097824	39.702535
-766	766	767	0.101850111631528	0.101850111631528	-105.0109855	39.7025566	-105.012176	39.70255
-767	767	768	0.0961954013729948	0.0961954013729948	-105.012176	39.70255	-105.0133004	39.7025566
-768	768	769	0.207085640087389	0.207085640087389	-105.0133004	39.7025566	-105.0156693	39.7029396
-769	769	770	0.1068825400281	0.1068825400281	-105.0156693	39.7029396	-105.0168881	39.7027283
-770	770	771	0.105967528573409	0.105967528573409	-105.0168881	39.7027283	-105.0180297	39.7023585
-771	771	772	0.107278769323728	0.107278769323728	-105.0180297	39.7023585	-105.0192227	39.7020613
-772	772	199	0.0969401274978018	0.0969401274978018	-105.0192227	39.7020613	-105.0203557	39.7020745
-773	199	776	0.101328977128045	0.101328977128045	-105.0203557	39.7020745	-105.0215401	39.7020679
-774	776	777	0.0984004881984158	0.0984004881984158	-105.0215401	39.7020679	-105.0226903	39.7020679
-775	777	778	0.0991276696889056	0.0991276696889056	-105.0226903	39.7020679	-105.023849	39.7020679
-779	784	785	0.101305408476756	0.101305408476756	-105.0031735	39.702226	-105.0042571	39.7018586
-780	785	786	0.0976265458519536	0.0976265458519536	-105.0042571	39.7018586	-105.0053032	39.7015078
-781	786	787	0.0966903245975086	0.0966903245975086	-105.0053032	39.7015078	-105.0063481	39.7011764
-783	788	789	0.0146697046803596	0.0146697046803596	-104.9407607	39.7528377	-104.9405891	39.7528377
-784	789	790	0.0984239882007814	0.0984239882007814	-104.9405891	39.7528377	-104.9394378	39.7528432
-785	790	791	0.0942419953953979	0.0942419953953979	-104.9394378	39.7528432	-104.9383354	39.7528412
-786	791	792	0.0942417343682122	0.0942417343682122	-104.9383354	39.7528412	-104.937233	39.7528412
-787	792	793	0.0942331855902031	0.0942331855902031	-104.937233	39.7528412	-104.9361307	39.7528412
-789	794	795	0.0937138545964453	0.0937138545964453	-104.9350328	39.7528375	-104.9339366	39.7528432
-790	795	796	0.0956046195795482	0.0956046195795482	-104.9339366	39.7528432	-104.9328183	39.7528507
-791	796	797	0.0946549122760597	0.0946549122760597	-104.9328183	39.7528507	-104.9317111	39.7528441
-792	797	798	0.100527766007763	0.100527766007763	-104.9317111	39.7528441	-104.9305352	39.7528375
-793	798	799	0.10316918665	0.10316918665	-104.9305352	39.7528375	-104.9293286	39.7528556
-795	800	801	0.103459881633314	0.103459881633314	-104.9281577	39.7528638	-104.9269475	39.7528704
-796	801	802	0.0997925526863961	0.0997925526863961	-104.9269475	39.7528704	-104.9257802	39.7528638
-797	802	803	0.0998006432146063	0.0998006432146063	-104.9257802	39.7528638	-104.9246129	39.752877
-854	804	805	0.1238606801811	0.1238606801811	-104.9428502	39.768085	-104.9428549	39.7691989
-799	807	808	0.10163704947704	0.10163704947704	-104.9781222	39.7532569	-104.9769333	39.7532524
-800	808	812	0.0515064726572222	0.0515064726572222	-104.9769333	39.7532524	-104.9763308	39.7532506
-801	812	813	0.0494547954602067	0.0494547954602067	-104.9763308	39.7532506	-104.9757523	39.7532488
-802	813	814	0.051447981297694	0.051447981297694	-104.9757523	39.7532488	-104.9751505	39.753245
-803	814	815	0.0525679212147471	0.0525679212147471	-104.9751505	39.753245	-104.9745356	39.7532411
-804	815	816	0.0487973630951461	0.0487973630951461	-104.9745356	39.7532411	-104.9739648	39.753238
-805	816	817	0.0522598325196538	0.0522598325196538	-104.9739648	39.753238	-104.9733535	39.7532345
-806	817	818	0.103406751654374	0.103406751654374	-104.9733535	39.7532345	-104.9721439	39.7532392
-807	818	819	0.10785615815132	0.10785615815132	-104.9721439	39.7532392	-104.9708825	39.7532194
-808	819	820	0.10473605712406	0.10473605712406	-104.9708825	39.7532194	-104.9696574	39.7532291
-809	820	821	0.112264494558786	0.112264494558786	-104.9696574	39.7532291	-104.9683443	39.7532149
-810	821	822	0.0974128787334051	0.0974128787334051	-104.9683443	39.7532149	-104.9672048	39.753216
-811	822	823	0.107993299539667	0.107993299539667	-104.9672048	39.753216	-104.9659416	39.753226
-812	823	824	0.0548178827467902	0.0548178827467902	-104.9659416	39.753226	-104.9653005	39.7532157
-17428	10106	10103	0.0082057240713584	0.0082057240713584	-104.9831403	39.6888986	-104.9831832	39.6889646
-1819	1835	1836	0.0691383900190408	0.0691383900190408	-105.0109162	39.7209352	-105.0117245	39.7209266
-813	824	825	0.0508588332180354	0.0508588332180354	-104.9653005	39.7532157	-104.9647057	39.7532062
-816	827	828	0.0512039318870449	0.0512039318870449	-104.9622082	39.7532291	-104.9616093	39.7532223
-817	828	829	0.0518718595198435	0.0518718595198435	-104.9616093	39.7532223	-104.9610026	39.7532148
-818	829	830	0.106833526059922	0.106833526059922	-104.9610026	39.7532148	-104.9597529	39.7532154
-820	831	832	0.385745696022263	0.385745696022263	-104.9429184	39.780325	-104.9428851	39.783794
-821	832	833	0.404856481972801	0.404856481972801	-104.9428851	39.783794	-104.942994	39.787434
-823	834	835	0.105948732119107	0.105948732119107	-104.942934	39.7728949	-104.942926	39.7738477
-824	835	838	0.0910625591495108	0.0910625591495108	-104.942926	39.7738477	-104.9427798	39.7746589
-826	839	840	0.0919963536570051	0.0919963536570051	-104.942936	39.7789146	-104.942905	39.7797416
-828	841	842	0.174755253051921	0.174755253051921	-104.9425503	39.7162314	-104.9425424	39.717803
-829	842	843	0.178568082023164	0.178568082023164	-104.9425424	39.717803	-104.9425451	39.7194089
-830	843	844	0.17297498203528	0.17297498203528	-104.9425451	39.7194089	-104.9425424	39.7209645
-831	844	845	0.173265495891133	0.173265495891133	-104.9425424	39.7209645	-104.942551	39.7225227
-832	845	846	0.177949551875208	0.177949551875208	-104.942551	39.7225227	-104.9425236	39.7241229
-833	846	847	0.164704515205255	0.164704515205255	-104.9425236	39.7241229	-104.9425344	39.7256041
-835	848	849	0.140807407128784	0.140807407128784	-104.9429842	39.7544341	-104.9429772	39.7557004
-839	852	853	0.167627273627897	0.167627273627897	-104.9429072	39.7256062	-104.9429137	39.7271137
-840	853	854	0.0221861617364752	0.0221861617364752	-104.9429137	39.7271137	-104.9428989	39.7273129
-841	854	855	0.199351380476648	0.199351380476648	-104.9428989	39.7273129	-104.9429067	39.7291057
-842	855	856	0.154506611729302	0.154506611729302	-104.9429067	39.7291057	-104.942914	39.7304952
-843	856	857	0.177121299660486	0.177121299660486	-104.942914	39.7304952	-104.942882	39.7320879
-844	857	858	0.173233506037634	0.173233506037634	-104.942882	39.7320879	-104.9429078	39.7336457
-845	858	859	0.161447290254498	0.161447290254498	-104.9429078	39.7336457	-104.9428825	39.7350975
-846	859	860	0.184417991926907	0.184417991926907	-104.9428825	39.7350975	-104.9428903	39.736756
-847	860	861	0.174097913655798	0.174097913655798	-104.9428903	39.736756	-104.9428912	39.7383217
-848	861	862	0.200651350067359	0.200651350067359	-104.9428912	39.7383217	-104.9428936	39.7401262
-851	864	865	0.136205566327931	0.136205566327931	-104.9428605	39.7644833	-104.9428501	39.7657082
-852	865	866	0.134098020570816	0.134098020570816	-104.9428501	39.7657082	-104.9428673	39.7669141
-853	866	804	0.130206342500308	0.130206342500308	-104.9428673	39.7669141	-104.9428502	39.768085
-855	805	869	0.151636521465058	0.151636521465058	-104.9428549	39.7691989	-104.9428549	39.7705626
-856	869	870	0.0565102957854785	0.0565102957854785	-104.9428549	39.7705626	-104.9428589	39.7710708
-859	872	873	0.106081890543097	0.106081890543097	-104.9733495	39.7645106	-104.9721084	39.7645147
-860	873	874	0.104885275538693	0.104885275538693	-104.9721084	39.7645147	-104.9708813	39.7645106
-861	874	875	0.105346104071406	0.105346104071406	-104.9708813	39.7645106	-104.9696488	39.7645085
-862	875	876	0.105115636520032	0.105115636520032	-104.9696488	39.7645085	-104.968419	39.7645054
-16596	6712	8570	0.146117658845452	0.146117658845452	-104.9978555	39.7495627	-104.9966174	39.7504686
-864	877	878	0.106492224339564	0.106492224339564	-104.9671933	39.7645034	-104.9659474	39.7644992
-865	878	879	0.105226257982301	0.105226257982301	-104.9659474	39.7644992	-104.9647163	39.7644982
-866	879	880	0.109300044149485	0.109300044149485	-104.9647163	39.7644982	-104.9634376	39.7645079
-867	880	881	0.105305755069531	0.105305755069531	-104.9634376	39.7645079	-104.9622057	39.7644941
-868	881	882	0.0524982326673818	0.0524982326673818	-104.9622057	39.7644941	-104.9615915	39.7644962
-869	882	883	0.0527289587191423	0.0527289587191423	-104.9615915	39.7644962	-104.9609746	39.7644982
-870	883	884	0.104777165086199	0.104777165086199	-104.9609746	39.7644982	-104.9597488	39.76449
-871	884	885	0.101110616467656	0.101110616467656	-104.9597488	39.76449	-104.9585659	39.7644817
-873	886	887	0.105175290472485	0.105175290472485	-104.9573328	39.7644759	-104.9561023	39.7644735
-874	887	888	0.105460060240618	0.105460060240618	-104.9561023	39.7644735	-104.9548685	39.7644663
-875	888	889	0.104542724277831	0.104542724277831	-104.9548685	39.7644663	-104.9536454	39.7644642
-878	891	892	0.107871242081588	0.107871242081588	-104.9511738	39.7644539	-104.9499118	39.7644621
-879	892	893	0.100327397599291	0.100327397599291	-104.9499118	39.7644621	-104.9487381	39.764473
-880	893	894	0.10715921423401	0.10715921423401	-104.9487381	39.764473	-104.9474844	39.7644683
-11694	895	896	0.0160104862378167	0.0160104862378167	-105.0011439	39.7534971	-105.0012741	39.7533936
-881	894	897	0.103236099875311	0.103236099875311	-104.9474844	39.7644683	-104.9462766	39.7644635
-882	897	898	0.106539225146671	0.106539225146671	-104.9462766	39.7644635	-104.9450302	39.764473
-16754	10009	7565	0.0493392725986542	0.0493392725986542	-104.9506326	39.6988171	-104.9506273	39.6992608
-20639	10032	10878	0.0503841615701827	0.0503841615701827	-105.0143643	39.7624894	-105.0137749	39.7624832
-885	864	900	0.0968355268957622	0.0968355268957622	-104.9428605	39.7644833	-104.9417276	39.7644767
-886	900	901	0.0921857962021889	0.0921857962021889	-104.9417276	39.7644767	-104.9406492	39.7644637
-887	901	902	0.0154453872411826	0.0154453872411826	-104.9406492	39.7644637	-104.9404687	39.7644571
-888	902	903	0.099023611112339	0.099023611112339	-104.9404687	39.7644571	-104.9393102	39.7644637
-889	903	904	0.106658816969038	0.106658816969038	-104.9393102	39.7644637	-104.9380626	39.7644833
-890	904	905	0.102850064051981	0.102850064051981	-104.9380626	39.7644833	-104.9368593	39.7644833
-891	905	906	0.106374102165022	0.106374102165022	-104.9368593	39.7644833	-104.9356148	39.7644767
-893	907	908	0.107980942566683	0.107980942566683	-104.934389	39.7644899	-104.9331257	39.7644965
-897	911	912	0.0137000260099873	0.0137000260099873	-104.998644	39.7576675	-104.9985313	39.7577551
-900	914	915	0.266296417735211	0.266296417735211	-104.9793447	39.7725806	-104.9771733	39.7742982
-902	916	917	0.109365780913081	0.109365780913081	-104.9874133	39.7320545	-104.9861344	39.7320479
-903	917	918	0.110688879788924	0.110688879788924	-104.9861344	39.7320479	-104.98484	39.7320466
-904	918	919	0.0528048087506356	0.0528048087506356	-104.98484	39.7320466	-104.9842225	39.7320454
-905	919	920	0.0548227612983216	0.0548227612983216	-104.9842225	39.7320454	-104.9835814	39.7320454
-1909	1921	1922	0.0521063364540888	0.0521063364540888	-104.9646085	39.7074783	-104.9639994	39.7074818
-12333	8655	8656	0.00566894958463717	0.00566894958463717	-105.0074206	39.7547231	-105.0073545	39.7547272
-906	920	921	0.0600921295133805	0.0600921295133805	-104.9835814	39.7320454	-104.9828787	39.7320413
-907	921	922	0.0524145297386554	0.0524145297386554	-104.9828787	39.7320413	-104.9822659	39.7320313
-908	922	923	0.0533449751273277	0.0533449751273277	-104.9822659	39.7320313	-104.9816421	39.7320276
-909	923	924	0.0522830317618348	0.0522830317618348	-104.9816421	39.7320276	-104.9810307	39.7320279
-910	924	925	0.0531296104749593	0.0531296104749593	-104.9810307	39.7320279	-104.9804094	39.7320277
-911	925	926	0.0494870453453698	0.0494870453453698	-104.9804094	39.7320277	-104.9798307	39.7320293
-912	926	927	0.0490530439973252	0.0490530439973252	-104.9798307	39.7320293	-104.9792571	39.7320337
-916	930	931	0.0484862367563559	0.0484862367563559	-104.9775696	39.7320445	-104.9770026	39.732045
-917	931	932	0.0491192175023229	0.0491192175023229	-104.9770026	39.732045	-104.9764282	39.7320463
-918	932	933	0.0512499454427793	0.0512499454427793	-104.9764282	39.7320463	-104.9758289	39.7320426
-935	950	951	0.0925005138771614	0.0925005138771614	-104.9505701	39.7320992	-104.9494887	39.732119
-936	951	952	0.09155937925052	0.09155937925052	-104.9494887	39.732119	-104.9484181	39.7321077
-937	952	953	0.096647434304121	0.096647434304121	-104.9484181	39.7321077	-104.947288	39.7320961
-938	953	954	0.0946813321937467	0.0946813321937467	-104.947288	39.7320961	-104.9461808	39.7320927
-939	954	955	0.0465376592907314	0.0465376592907314	-104.9461808	39.7320927	-104.9456366	39.7320897
-941	956	957	0.0470827842175089	0.0470827842175089	-104.9450895	39.7320866	-104.944539	39.7320942
-942	957	958	0.0477097696809632	0.0477097696809632	-104.944539	39.7320942	-104.9439811	39.7320979
-943	958	959	0.0469673192776546	0.0469673192776546	-104.9439811	39.7320979	-104.9434319	39.7320929
-944	959	857	0.0470271779665272	0.0470271779665272	-104.9434319	39.7320929	-104.942882	39.7320879
-945	857	452	0.0433482724753884	0.0433482724753884	-104.942882	39.7320879	-104.9423751	39.7320847
-946	452	960	0.0461959621064724	0.0461959621064724	-104.9423751	39.7320847	-104.9418349	39.7320813
-947	960	456	0.0448744265859584	0.0448744265859584	-104.9418349	39.7320813	-104.9413102	39.732075
-948	456	961	0.0477309298676521	0.0477309298676521	-104.9413102	39.732075	-104.9407521	39.7320683
-950	962	963	0.203057783136815	0.203057783136815	-104.983818	39.7165111	-104.9838018	39.7183372
-951	963	964	0.111884367881333	0.111884367881333	-104.9838018	39.7183372	-104.9838008	39.7193434
-952	964	965	0.176567620505235	0.176567620505235	-104.9838008	39.7193434	-104.9838084	39.7209313
-953	965	966	0.178378901323504	0.178378901323504	-104.9838084	39.7209313	-104.9838084	39.7225355
-958	970	971	0.205957142551392	0.205957142551392	-104.9835185	39.781945	-104.9835456	39.7837971
-960	972	973	0.204078625402165	0.204078625402165	-104.9835456	39.7765347	-104.9835576	39.77837
-961	973	282	0.115147222371539	0.115147222371539	-104.9835576	39.77837	-104.98357	39.7794055
-964	976	977	0.0518319225146996	0.0518319225146996	-104.9741611	39.7400028	-104.9741536	39.7395367
-965	977	978	0.124228855322375	0.124228855322375	-104.9741536	39.7395367	-104.9741456	39.7384195
-966	978	979	0.172234101769625	0.172234101769625	-104.9741456	39.7384195	-104.9741314	39.7368706
-967	979	980	0.191895457064314	0.191895457064314	-104.9741314	39.7368706	-104.9741011	39.735145
-968	980	981	0.160844607226305	0.160844607226305	-104.9741011	39.735145	-104.9741082	39.7336985
-969	981	936	0.183612712644296	0.183612712644296	-104.9741082	39.7336985	-104.9740886	39.7320473
-18742	7651	6216	0.274731695307389	0.274731695307389	-105.0389317	39.7282542	-105.0389183	39.7257835
-970	936	982	0.178134725901618	0.178134725901618	-104.9740886	39.7320473	-104.9740839	39.7304453
-972	983	984	0.199061323006722	0.199061323006722	-104.9740784	39.7290693	-104.9740814	39.7272791
-973	984	985	0.188587247900735	0.188587247900735	-104.9740814	39.7272791	-104.9740756	39.7255831
-974	985	986	0.0433580404548831	0.0433580404548831	-104.9740756	39.7255831	-104.9740817	39.7251932
-975	986	987	0.125051012370851	0.125051012370851	-104.9740817	39.7251932	-104.9740753	39.7240686
-977	988	989	0.141681092806979	0.141681092806979	-104.9740667	39.7237385	-104.9740839	39.7224644
-978	989	990	0.0574887447164737	0.0574887447164737	-104.9740839	39.7224644	-104.97408	39.7219474
-979	990	991	0.201644088462744	0.201644088462744	-104.97408	39.7219474	-104.9740667	39.720134
-981	992	993	0.0142751187411164	0.0142751187411164	-104.974036	39.718887	-104.9740165	39.7187595
-983	994	995	0.198087310718341	0.198087310718341	-104.9745719	39.7165069	-104.9745878	39.7182883
-984	995	996	0.021294324874815	0.021294324874815	-104.9745878	39.7182883	-104.9745895	39.7184798
-986	997	998	0.477759831198138	0.477759831198138	-104.9873902	39.763763	-104.9876372	39.7594706
-988	999	1000	0.107359092710075	0.107359092710075	-104.9876054	39.7809872	-104.9875739	39.7819524
-989	1000	1001	0.213427542201395	0.213427542201395	-104.9875739	39.7819524	-104.9875739	39.7838718
-990	1001	1002	0.0204216124756694	0.0204216124756694	-104.9875739	39.7838718	-104.9875798	39.7840554
-991	1002	1003	0.169295945736254	0.169295945736254	-104.9875798	39.7840554	-104.987571	39.7855779
-992	1003	1004	0.202119044170343	0.202119044170343	-104.987571	39.7855779	-104.9875698	39.7873956
-993	1004	1007	0.405136142942317	0.405136142942317	-104.9875698	39.7873956	-104.987539	39.791039
-994	1008	753	0.128100004965855	0.128100004965855	-104.9879427	39.7740829	-104.9875955	39.7752036
-996	1009	277	0.197304277838347	0.197304277838347	-104.9875916	39.776556	-104.9875916	39.7783304
-998	1010	1011	0.168461631075683	0.168461631075683	-104.9624581	39.7255985	-104.9625093	39.727113
-999	1011	1012	0.0217275963794507	0.0217275963794507	-104.9625093	39.727113	-104.9625101	39.7273084
-1000	1012	1013	0.199706135128057	0.199706135128057	-104.9625101	39.7273084	-104.9625117	39.7291044
-1001	1013	1014	0.154996233446664	0.154996233446664	-104.9625117	39.7291044	-104.96252	39.7304983
-1002	1014	1015	0.0484476295387052	0.0484476295387052	-104.96252	39.7304983	-104.96252	39.730934
-1005	1018	1019	0.198018950245581	0.198018950245581	-104.9622539	39.7350462	-104.9622411	39.736827
-1006	1019	1020	0.173297369328456	0.173297369328456	-104.9622411	39.736827	-104.962243	39.7383855
-1007	1020	1021	0.177035115256862	0.177035115256862	-104.962243	39.7383855	-104.962234	39.7399776
-1008	1021	1022	0.17859043694682	0.17859043694682	-104.962234	39.7399776	-104.9622376	39.7415837
-1009	1022	674	0.00356025053355106	0.00356025053355106	-104.9622376	39.7415837	-104.9622362	39.7416157
-1010	674	1023	0.00366943257948706	0.00366943257948706	-104.9622362	39.7416157	-104.9622362	39.7416487
-1011	1023	1024	0.17484373239475	0.17484373239475	-104.9622362	39.7416487	-104.9622425	39.7432211
-1012	1024	1025	0.173998681621435	0.173998681621435	-104.9622425	39.7432211	-104.9622361	39.7447859
-1015	1027	1028	0.0704684258530158	0.0704684258530158	-104.9622318	39.748208	-104.9622408	39.7488417
-1017	1029	1030	0.0048505404615695	0.0048505404615695	-104.9622186	39.7494307	-104.9622168	39.7494743
-1018	1030	1031	0.00340295138148338	0.00340295138148338	-104.9622168	39.7494743	-104.9622174	39.7495049
-1019	1031	1035	0.134848566335067	0.134848566335067	-104.9622174	39.7495049	-104.9622398	39.7507175
-1020	1035	1036	0.137493615415566	0.137493615415566	-104.9622398	39.7507175	-104.9622462	39.751954
-16764	9868	2745	0.0490633016235184	0.0490633016235184	-104.9551011	39.698724	-104.9556601	39.6988225
-1021	1036	827	0.141821861187588	0.141821861187588	-104.9622462	39.751954	-104.9622082	39.7532291
-1023	1037	1038	0.144096028267239	0.144096028267239	-104.9622266	39.7544367	-104.9622461	39.7557325
-1024	1038	1039	0.13873602575008	0.13873602575008	-104.9622461	39.7557325	-104.9622183	39.75698
-1025	1039	1040	0.137557829611355	0.137557829611355	-104.9622183	39.75698	-104.9622463	39.7582169
-1026	1040	1041	0.134490266221638	0.134490266221638	-104.9622463	39.7582169	-104.962246	39.7594264
-1027	1041	1042	0.141541481862683	0.141541481862683	-104.962246	39.7594264	-104.9622157	39.7606991
-1028	1042	1043	0.00492593525103261	0.00492593525103261	-104.9622157	39.7606991	-104.9622157	39.7607434
-1029	1043	1044	0.138593778312369	0.138593778312369	-104.9622157	39.7607434	-104.9622117	39.7619898
-1030	1044	1045	0.140603553737706	0.140603553737706	-104.9622117	39.7619898	-104.9622462	39.763254
-1031	1045	881	0.137936273445967	0.137936273445967	-104.9622462	39.763254	-104.9622057	39.7644941
-1032	881	1046	0.138493298016227	0.138493298016227	-104.9622057	39.7644941	-104.9622049	39.7657396
-1033	1046	1047	0.135001777755027	0.135001777755027	-104.9622049	39.7657396	-104.9622057	39.7669537
-1034	1047	1048	0.131055322767976	0.131055322767976	-104.9622057	39.7669537	-104.9621706	39.768132
-1035	1048	1049	0.124939018757432	0.124939018757432	-104.9621706	39.768132	-104.9622462	39.7692541
-1037	1050	1051	0.292899479856136	0.292899479856136	-104.9620183	39.718346	-104.9620097	39.7209801
-1038	1051	1052	0.166422260927488	0.166422260927488	-104.9620097	39.7209801	-104.9620287	39.7224767
-1040	735	1053	0.129020329518136	0.129020329518136	-104.9624209	39.7765159	-104.9624154	39.7776762
-1042	1054	1055	0.104556386299221	0.104556386299221	-104.9541213	39.7802948	-104.9529111	39.7804333
-1044	1056	1057	0.0821976961903273	0.0821976961903273	-105.0423884	39.7011038	-105.043349	39.701089
-1046	1058	1059	0.198827335717405	0.198827335717405	-104.9523656	39.702949	-104.9500415	39.7029556
-1048	1060	1061	0.168836903384636	0.168836903384636	-104.9395373	39.7162311	-104.9395162	39.7147128
-1050	1062	1063	0.404705159588638	0.404705159588638	-104.9394384	39.6893266	-104.939435	39.685687
-1051	1067	1068	0.132512985213334	0.132512985213334	-105.0088199	39.7729339	-105.0088114	39.7741256
-1052	1068	1069	0.13497040303733	0.13497040303733	-105.0088114	39.7741256	-105.0088028	39.7753394
-1053	1069	1070	0.132768776601327	0.132768776601327	-105.0088028	39.7753394	-105.0087942	39.7765334
-1056	1072	1073	0.0939030414376985	0.0939030414376985	-105.009231	39.7782735	-105.0096773	39.7790452
-1058	1074	1075	0.180616569310233	0.180616569310233	-105.0092177	39.7838422	-105.0092438	39.7854664
-1059	1075	1076	0.0336398662027363	0.0336398662027363	-105.0092438	39.7854664	-105.009052	39.7857306
-1060	1076	1077	0.0410609349522483	0.0410609349522483	-105.009052	39.7857306	-105.0087381	39.7860102
-1061	1077	1078	0.0827433862317427	0.0827433862317427	-105.0087381	39.7860102	-105.0081209	39.7865836
-1062	1078	1079	0.0826887112506465	0.0826887112506465	-105.0081209	39.7865836	-105.0074815	39.7871418
-1064	1080	464	0.0761353371210495	0.0761353371210495	-104.972278	39.7033325	-104.9728479	39.7038584
-1065	464	1081	0.349900041786437	0.349900041786437	-104.9728479	39.7038584	-104.972547	39.7069966
-1066	1081	1082	0.00956876487693368	0.00956876487693368	-104.972547	39.7069966	-104.9724743	39.707062
-1068	1083	1084	0.207455473901342	0.207455473901342	-104.9730883	39.714707	-104.972397	39.7129187
-1069	1084	1085	0.20253048003379	0.20253048003379	-104.972397	39.7129187	-104.9723985	39.7110973
-1070	1085	1086	0.20117520633799	0.20117520633799	-104.9723985	39.7110973	-104.9723899	39.7092881
-1071	1086	1087	0.200445374909098	0.200445374909098	-104.9723899	39.7092881	-104.9724071	39.7074855
-1073	1088	1089	0.193552555847569	0.193552555847569	-105.0404004	39.7838769	-105.0403816	39.7856175
-1074	1089	1090	0.201907921550129	0.201907921550129	-105.0403816	39.7856175	-105.0403847	39.7874333
-1075	1090	1091	0.409168814751628	0.409168814751628	-105.0403847	39.7874333	-105.040408	39.791113
-1078	1094	1095	0.176210660233647	0.176210660233647	-105.0405328	39.7229583	-105.0405345	39.724543
-1082	1098	1099	0.214073333831546	0.214073333831546	-105.0405664	39.7301724	-105.0405735	39.7282472
-1083	1099	1100	0.273059176292595	0.273059176292595	-105.0405735	39.7282472	-105.0405477	39.7257916
-1085	1101	1102	0.177543118890406	0.177543118890406	-105.040518	39.7350236	-105.0404669	39.7366198
-1086	1102	1103	0.205192174072119	0.205192174072119	-105.0404669	39.7366198	-105.0404962	39.738465
-1089	1105	1106	0.177750162727048	0.177750162727048	-105.0409021	39.716554	-105.0408864	39.7181525
-1090	1106	1107	0.0539560094135977	0.0539560094135977	-105.0408864	39.7181525	-105.0408943	39.7186377
-1091	1107	1108	0.122234944576301	0.122234944576301	-105.0408943	39.7186377	-105.0409121	39.7197369
-1092	1108	1109	0.177333676437683	0.177333676437683	-105.0409121	39.7197369	-105.0409127	39.7213317
-1093	1109	1110	0.180925459405873	0.180925459405873	-105.0409127	39.7213317	-105.0409158	39.7229588
-1095	1111	1112	0.128811671442731	0.128811671442731	-105.0404537	39.7475871	-105.0404838	39.7487453
-1096	1112	1113	0.134815073580703	0.134815073580703	-105.0404838	39.7487453	-105.0404745	39.7499577
-1097	1113	1114	0.136688571742098	0.136688571742098	-105.0404745	39.7499577	-105.040538	39.751186
-1098	1114	1115	0.101403665812315	0.101403665812315	-105.040538	39.751186	-105.0404736	39.7520966
-1099	1115	1116	0.102067679100378	0.102067679100378	-105.0404736	39.7520966	-105.0404808	39.7530145
-1102	1118	1119	0.204345080233058	0.204345080233058	-105.0404858	39.7548633	-105.0404748	39.756701
-1103	1119	1120	0.199139333361331	0.199139333361331	-105.0404748	39.756701	-105.0404705	39.7584919
-1104	1120	1121	0.0469911073941159	0.0469911073941159	-105.0404705	39.7584919	-105.0404718	39.7589145
-1105	1121	1122	0.0592169845475301	0.0592169845475301	-105.0404718	39.7589145	-105.0404814	39.759447
-1106	1122	1123	0.0953718885827498	0.0953718885827498	-105.0404814	39.759447	-105.0404814	39.7603047
-1107	1123	1124	0.0510557799357253	0.0510557799357253	-105.0404814	39.7603047	-105.0404721	39.7607638
-1108	1124	1125	0.150795725410384	0.150795725410384	-105.0404721	39.7607638	-105.0404588	39.7621199
-1109	1125	1126	0.203566805558282	0.203566805558282	-105.0404588	39.7621199	-105.0405383	39.7639496
-1111	1127	1128	0.0472430646130033	0.0472430646130033	-105.0404877	39.7653392	-105.0404722	39.7657639
-1112	1128	1129	0.205543981836037	0.205543981836037	-105.0404722	39.7657639	-105.0404692	39.7676124
-1114	1130	1131	0.164841461931526	0.164841461931526	-105.0404986	39.769448	-105.0404564	39.7709301
-1115	1131	1132	0.171242319742711	0.171242319742711	-105.0404564	39.7709301	-105.0404464	39.7724701
-1116	1132	1133	0.15535130673221	0.15535130673221	-105.0404464	39.7724701	-105.0404403	39.7738672
-1117	1133	1134	0.155906924058663	0.155906924058663	-105.0404403	39.7738672	-105.040445	39.7752693
-1118	1134	1135	0.158641971110509	0.158641971110509	-105.040445	39.7752693	-105.0404138	39.7766958
-1120	1136	1137	0.202486056810199	0.202486056810199	-105.0404001	39.77838	-105.0404024	39.780201
-1124	1140	1141	0.106376038726262	0.106376038726262	-104.9343976	39.7632231	-104.9331531	39.7632297
-1125	1141	1142	0.11299023410348	0.11299023410348	-104.9331531	39.7632297	-104.9318313	39.7632429
-1127	1143	1144	0.105553895231553	0.105553895231553	-104.97335	39.7632488	-104.9721151	39.7632529
-1128	1144	1145	0.104117784384988	0.104117784384988	-104.9721151	39.7632529	-104.970897	39.7632567
-1129	1145	1146	0.103483298103444	0.103483298103444	-104.970897	39.7632567	-104.9696868	39.7632831
-1131	1147	1148	0.20922373460901	0.20922373460901	-104.9318227	39.7637905	-104.9293749	39.7637905
-1132	1148	1149	0.150393643985841	0.150393643985841	-104.9293749	39.7637905	-104.9276154	39.7637839
-1133	1149	1150	0.0550246362758013	0.0550246362758013	-104.9276154	39.7637839	-104.9269717	39.7637905
-1134	1150	1151	0.102697719375893	0.102697719375893	-104.9269717	39.7637905	-104.9257702	39.7637877
-1135	1151	1152	0.0983530643806034	0.0983530643806034	-104.9257702	39.7637877	-104.9246199	39.7638103
-1136	1152	1153	0.0500465548413358	0.0500465548413358	-104.9246199	39.7638103	-104.9240347	39.7637955
-1137	1153	1154	0.957298194837815	0.957298194837815	-104.9240347	39.7637955	-104.9128351	39.7638537
-1138	1155	1156	0.108691319059022	0.108691319059022	-104.9684118	39.7632474	-104.9671402	39.7632525
-1139	1156	1157	0.102249102579738	0.102249102579738	-104.9671402	39.7632525	-104.965944	39.7632443
-1140	1157	1160	0.108168549451273	0.108168549451273	-104.965944	39.7632443	-104.9646785	39.763243
-1141	1160	1161	0.101829092464478	0.101829092464478	-104.9646785	39.763243	-104.9634876	39.7632183
-1144	1162	1163	0.0512778300683452	0.0512778300683452	-104.9615772	39.7632401	-104.9609775	39.7632277
-1146	1164	1165	0.100040433804019	0.100040433804019	-104.959733	39.7632393	-104.9585626	39.7632361
-1147	1165	1166	0.107579273983848	0.107579273983848	-104.9585626	39.7632361	-104.957304	39.7632393
-1148	1166	1167	0.103452121653836	0.103452121653836	-104.957304	39.7632393	-104.9560938	39.7632261
-1149	1167	1168	0.102717798897395	0.102717798897395	-104.9560938	39.7632261	-104.9548921	39.7632327
-1150	1168	1169	0.106376023896376	0.106376023896376	-104.9548921	39.7632327	-104.9536476	39.7632393
-1151	1169	1170	0.105583034841699	0.105583034841699	-104.9536476	39.7632393	-104.9524125	39.7632244
-1152	1170	1171	0.105884448878202	0.105884448878202	-104.9524125	39.7632244	-104.9511738	39.7632137
-1153	1171	1172	0.107984392656028	0.107984392656028	-104.9511738	39.7632137	-104.9499105	39.763222
-1154	1172	1173	0.100211807661524	0.100211807661524	-104.9499105	39.763222	-104.9487381	39.7632261
-1156	1174	1175	0.0651406407561477	0.0651406407561477	-104.9462747	39.7632063	-104.9455127	39.7631967
-1157	1176	1177	0.0916420940843904	0.0916420940843904	-104.9973407	39.7040997	-104.9966621	39.703462
-1158	1177	1178	0.317057086238115	0.317057086238115	-104.9966621	39.703462	-104.9967808	39.7006121
-1159	1178	1179	0.0403904373250439	0.0403904373250439	-104.9967808	39.7006121	-104.9967738	39.7002489
-1160	1179	1180	0.087664479851631	0.087664479851631	-104.9967738	39.7002489	-104.9967587	39.6994606
-1163	555	558	0.0996109464859662	0.0996109464859662	-104.9967877	39.6982448	-104.996796	39.697349
-1165	1182	1183	0.200712633020301	0.200712633020301	-104.996786	39.6966954	-104.9968385	39.6948908
-1166	1183	141	0.201303158931495	0.201303158931495	-104.9968385	39.6948908	-104.9968856	39.6930808
-1167	141	1184	0.160264959796536	0.160264959796536	-104.9968856	39.6930808	-104.9968546	39.6916397
-1169	1185	1186	0.0892826433471673	0.0892826433471673	-104.9658583	39.7271019	-104.9648143	39.7271028
-16608	9325	9944	0.146983175121654	0.146983175121654	-104.9845026	39.7504509	-104.9832891	39.7513873
-1171	1187	1011	0.0980488049438762	0.0980488049438762	-104.9636558	39.7271103	-104.9625093	39.727113
-1172	1011	1188	0.100351187096818	0.100351187096818	-104.9625093	39.727113	-104.9613359	39.7271192
-1173	1188	1189	0.0991689160182861	0.0991689160182861	-104.9613359	39.7271192	-104.9601763	39.7271213
-1174	1189	1190	0.0985624561842153	0.0985624561842153	-104.9601763	39.7271213	-104.9590238	39.7271173
-1175	1190	1191	0.0992629404802966	0.0992629404802966	-104.9590238	39.7271173	-104.9578631	39.7271192
-1177	1192	1193	0.0982024972051538	0.0982024972051538	-104.9567021	39.7271202	-104.9555538	39.7271183
-1178	1193	1194	0.0979660824445765	0.0979660824445765	-104.9555538	39.7271183	-104.9544083	39.7271255
-1179	1194	1195	0.0324477724054976	0.0324477724054976	-104.9544083	39.7271255	-104.9540289	39.7271284
-1180	1195	1196	0.0675268282620706	0.0675268282620706	-104.9540289	39.7271284	-104.9532393	39.7271307
-1182	1197	1198	0.0679368973278076	0.0679368973278076	-104.9528791	39.7271293	-104.9520847	39.7271285
-1184	1199	1200	0.0686815112230977	0.0686815112230977	-104.951727	39.7271329	-104.9509239	39.7271356
-1185	1200	1201	0.0309923494566171	0.0309923494566171	-104.9509239	39.7271356	-104.9505615	39.7271353
-1186	1201	1202	0.0899174664521967	0.0899174664521967	-104.9505615	39.7271353	-104.9495101	39.7271408
-1187	1202	1203	0.0945518763756908	0.0945518763756908	-104.9495101	39.7271408	-104.9484045	39.7271363
-1188	1203	1204	0.0933113340782308	0.0933113340782308	-104.9484045	39.7271363	-104.9473134	39.7271328
-1189	1204	1205	0.09509225728821	0.09509225728821	-104.9473134	39.7271328	-104.9462015	39.7271261
-1190	1205	1206	0.0947055520559319	0.0947055520559319	-104.9462015	39.7271261	-104.9450941	39.7271221
-1191	1206	1207	0.0954663818870976	0.0954663818870976	-104.9450941	39.7271221	-104.9439778	39.7271255
-1192	1207	1208	0.0457748420522195	0.0457748420522195	-104.9439778	39.7271255	-104.9434426	39.7271196
-1193	1208	853	0.0452361278424885	0.0452361278424885	-104.9434426	39.7271196	-104.9429137	39.7271137
-1194	853	1209	0.0465328064656566	0.0465328064656566	-104.9429137	39.7271137	-104.9423696	39.7271171
-1195	1209	1210	0.0443349306457526	0.0443349306457526	-104.9423696	39.7271171	-104.9418512	39.7271204
-1196	1210	1211	0.0926255737985973	0.0926255737985973	-104.9418512	39.7271204	-104.940806	39.726902
-1200	1214	1215	0.199187167786165	0.199187167786165	-105.0123769	39.7838268	-105.0123627	39.7856181
-1201	1215	1216	0.200954541481784	0.200954541481784	-105.0123627	39.7856181	-105.0123497	39.7874253
-1202	1216	1217	0.405030982441888	0.405030982441888	-105.0123497	39.7874253	-105.0123693	39.7910678
-1203	1218	1219	0.0492032479248998	0.0492032479248998	-105.0123634	39.7348021	-105.0123463	39.7352444
-1204	1219	1220	0.0957003230509211	0.0957003230509211	-105.0123463	39.7352444	-105.0123588	39.736105
-1206	1221	1222	0.0745042299709739	0.0745042299709739	-105.0123509	39.7369148	-105.0123423	39.7375848
-1207	1222	1223	0.102728552500243	0.102728552500243	-105.0123423	39.7375848	-105.012356	39.7385086
-1208	1223	1224	0.112933078893132	0.112933078893132	-105.012356	39.7385086	-105.0123175	39.7395238
-1210	1225	1226	0.132646861758746	0.132646861758746	-105.0118006	39.7583774	-105.01181	39.7571845
-1212	1227	1228	0.133737749967366	0.133737749967366	-105.0123547	39.769283	-105.0123662	39.7704857
-1213	1228	1229	0.138340301298334	0.138340301298334	-105.0123662	39.7704857	-105.0123561	39.7717298
-1214	1229	1230	0.133937469551528	0.133937469551528	-105.0123561	39.7717298	-105.0123669	39.7729343
-1215	1230	1231	0.133215122537399	0.133215122537399	-105.0123669	39.7729343	-105.0123362	39.7741321
-1216	1231	1236	0.135593895539884	0.135593895539884	-105.0123362	39.7741321	-105.012326	39.7753515
-1217	1236	1237	0.134329596288595	0.134329596288595	-105.012326	39.7753515	-105.0123583	39.7765593
-1218	1237	1238	0.133838756927755	0.133838756927755	-105.0123583	39.7765593	-105.0123072	39.7777623
-1220	1239	1240	0.201119608536246	0.201119608536246	-105.0121506	39.7275003	-105.0121592	39.729309
-1222	1241	1242	0.0687159203588902	0.0687159203588902	-105.0205242	39.7613979	-105.0205115	39.7620158
-1223	1242	1243	0.133400908392016	0.133400908392016	-105.0205115	39.7620158	-105.0205151	39.7632155
-1224	1243	1247	0.135380581131659	0.135380581131659	-105.0205151	39.7632155	-105.0205098	39.764433
-1225	1247	1248	0.134002229768192	0.134002229768192	-105.0205098	39.764433	-105.0205165	39.7656381
-1226	1248	1249	0.133545106900313	0.133545106900313	-105.0205165	39.7656381	-105.0205165	39.7668391
-1227	1249	1250	0.135368900396577	0.135368900396577	-105.0205165	39.7668391	-105.0205192	39.7680565
-1228	1250	1251	0.135024432224222	0.135024432224222	-105.0205192	39.7680565	-105.0205232	39.7692708
-1229	1251	1252	0.104469760585228	0.104469760585228	-105.0205232	39.7692708	-105.020531	39.7702103
-1230	1252	1253	0.0306570001135196	0.0306570001135196	-105.020531	39.7702103	-105.0205211	39.7704859
-1231	1253	1254	0.0720522950545032	0.0720522950545032	-105.0205211	39.7704859	-105.0205077	39.7711338
-1232	1254	1255	0.0658986376594475	0.0658986376594475	-105.0205077	39.7711338	-105.0204909	39.7717263
-1233	1255	1256	0.0399746208950617	0.0399746208950617	-105.0204909	39.7717263	-105.0204902	39.7720858
-1234	1256	1257	0.0944491578366609	0.0944491578366609	-105.0204902	39.7720858	-105.020488	39.7729352
-1235	1257	1258	0.132766928353997	0.132766928353997	-105.020488	39.7729352	-105.0204854	39.7741292
-1236	1258	1259	0.135424431672451	0.135424431672451	-105.0204854	39.7741292	-105.0204832	39.7753471
-1237	1259	1260	0.140672385455392	0.140672385455392	-105.0204832	39.7753471	-105.0205036	39.7766121
-1238	1260	1261	0.134975501941172	0.134975501941172	-105.0205036	39.7766121	-105.0204874	39.7778259
-1239	1261	1262	0.0645486549169547	0.0645486549169547	-105.0204874	39.7778259	-105.0204874	39.7784064
-1240	1262	1263	0.0682069680036474	0.0682069680036474	-105.0204874	39.7784064	-105.0204874	39.7790198
-1241	1263	1264	0.132661334326961	0.132661334326961	-105.0204874	39.7790198	-105.0204729	39.7802128
-1242	1264	1265	0.198750077150319	0.198750077150319	-105.0204729	39.7802128	-105.0204691	39.7820002
-1243	1265	1266	0.153240793837705	0.153240793837705	-105.0204691	39.7820002	-105.0204447	39.7833782
-1245	273	1267	0.0675767060379672	0.0675767060379672	-105.0203028	39.7400362	-105.0202947	39.7406439
-1247	1268	1269	0.0991648269688332	0.0991648269688332	-105.0203557	39.7175319	-105.0203986	39.7184231
-1248	1269	1270	0.105715575753422	0.105715575753422	-105.0203986	39.7184231	-105.0204072	39.7193738
-1249	1270	1271	0.096909170039208	0.096909170039208	-105.0204072	39.7193738	-105.0204158	39.7202453
-1251	1272	1273	0.132822339876578	0.132822339876578	-105.0204988	39.7476034	-105.0204988	39.7487979
-1252	1273	1274	0.108602805332053	0.108602805332053	-105.0204988	39.7487979	-105.0204817	39.7497745
-1253	1274	1275	0.0271637528935803	0.0271637528935803	-105.0204817	39.7497745	-105.0204903	39.7500187
-1254	1275	1276	0.112230208152067	0.112230208152067	-105.0204903	39.7500187	-105.0205429	39.7510272
-1255	1276	1277	0.0176649567962355	0.0176649567962355	-105.0205429	39.7510272	-105.020537	39.751186
-1256	1277	1278	0.135399208639876	0.135399208639876	-105.020537	39.751186	-105.0205102	39.7524035
-1257	1278	1279	0.134958357098824	0.134958357098824	-105.0205102	39.7524035	-105.0205165	39.7536172
-1258	1279	1280	0.13471438954866	0.13471438954866	-105.0205165	39.7536172	-105.0205245	39.7548287
-1259	1280	1281	0.0527317447874755	0.0527317447874755	-105.0205245	39.7548287	-105.0205312	39.7553029
-1260	1281	1282	0.0822068643990868	0.0822068643990868	-105.0205312	39.7553029	-105.0205344	39.7560422
-1262	24	1283	0.0541075654220215	0.0541075654220215	-105.0205339	39.7572526	-105.0205326	39.7577392
-1263	1283	1284	0.0277584904979192	0.0277584904979192	-105.0205326	39.7577392	-105.0205218	39.7579887
-1264	1284	1285	0.0119510600074318	0.0119510600074318	-105.0205218	39.7579887	-105.0205433	39.7580949
-1265	1285	1286	0.00765101800505865	0.00765101800505865	-105.0205433	39.7580949	-105.020542	39.7581637
-1267	1287	1288	0.0102422085479252	0.0102422085479252	-105.0205384	39.7583461	-105.0205366	39.7584382
-1269	1289	1290	0.18749026453307	0.18749026453307	-105.0204845	39.7839453	-105.0204693	39.7856314
-1270	1290	1291	0.200784792674354	0.200784792674354	-105.0204693	39.7856314	-105.0204718	39.7874371
-1271	1291	1292	0.406662337861329	0.406662337861329	-105.0204718	39.7874371	-105.0204665	39.7910943
-1272	1293	1028	0.104130177494266	0.104130177494266	-104.9634588	39.7488413	-104.9622408	39.7488417
-1274	1294	1295	0.209580478517529	0.209580478517529	-104.9875234	39.7129763	-104.9899734	39.7129983
-1275	1295	1296	0.202179673681852	0.202179673681852	-104.9899734	39.7129983	-104.992337	39.712987
-1276	1296	1297	0.102644670381459	0.102644670381459	-104.992337	39.712987	-104.993537	39.712987
-1277	1297	1298	0.08553722531747	0.08553722531747	-104.993537	39.712987	-104.994537	39.712987
-1278	1299	1300	0.10911250090994	0.10911250090994	-105.0250625	39.7133847	-105.0263381	39.713379
-1279	1300	1305	0.103516561820708	0.103516561820708	-105.0263381	39.713379	-105.0275483	39.713379
-1280	1305	1306	0.107188605435255	0.107188605435255	-105.0275483	39.713379	-105.0288014	39.7133724
-1282	1307	1308	0.104254785791266	0.104254785791266	-105.0299945	39.7133592	-105.0312133	39.7133658
-1283	1308	1309	0.104981820314566	0.104981820314566	-105.0312133	39.7133658	-105.0324406	39.7133724
-1284	1309	1310	0.0539236153779667	0.0539236153779667	-105.0324406	39.7133724	-105.033071	39.7133691
-1285	1310	1311	0.0525379554780919	0.0525379554780919	-105.033071	39.7133691	-105.0336852	39.7133658
-1287	1312	1313	0.0516652738700608	0.0516652738700608	-105.0342968	39.7133689	-105.0349008	39.7133719
-1288	1313	1314	0.0506813468547144	0.0506813468547144	-105.0349008	39.7133719	-105.0354933	39.7133745
-1289	1314	1315	0.0508976456987324	0.0508976456987324	-105.0354933	39.7133745	-105.0360883	39.7133797
-1290	1315	1316	0.0521616744394787	0.0521616744394787	-105.0360883	39.7133797	-105.0366981	39.7133763
-1291	1316	1317	0.0506396099336441	0.0506396099336441	-105.0366981	39.7133763	-105.0372901	39.7133724
-1292	1317	1318	0.0516214270666003	0.0516214270666003	-105.0372901	39.7133724	-105.0378936	39.7133724
-1293	1318	1319	0.0518951446578895	0.0518951446578895	-105.0378936	39.7133724	-105.0385003	39.7133724
-1294	1319	1320	0.0518013233234396	0.0518013233234396	-105.0385003	39.7133724	-105.0391059	39.7133709
-1295	1320	1321	0.0498510970504219	0.0498510970504219	-105.0391059	39.7133709	-105.0396887	39.7133694
-1296	1321	1322	0.0511186989957182	0.0511186989957182	-105.0396887	39.7133694	-105.0402863	39.7133654
-1297	1322	1323	0.0508331487974254	0.0508331487974254	-105.0402863	39.7133654	-105.0408805	39.7133731
-1300	1325	1326	0.08881123864976	0.08881123864976	-105.0432523	39.7133745	-105.0442903	39.7133559
-1304	499	1329	0.167484239247501	0.167484239247501	-105.0019139	39.7130364	-105.0038719	39.7130446
-1305	1329	1332	0.203905657642638	0.203905657642638	-105.0038719	39.7130446	-105.0062556	39.7130258
-1306	1332	1333	0.204847680679676	0.204847680679676	-105.0062556	39.7130258	-105.0086503	39.7130456
-1307	1333	1334	0.201123583387407	0.201123583387407	-105.0086503	39.7130456	-105.0110016	39.7130472
-1309	1335	1336	0.157474175144751	0.157474175144751	-105.012511	39.712992	-105.014352	39.712994
-1310	1336	1337	0.117575441930224	0.117575441930224	-105.014352	39.712994	-105.015726	39.713024
-1311	1337	1338	0.0942761529447682	0.0942761529447682	-105.015726	39.713024	-105.016828	39.7130093
-1313	1339	1340	0.0991229934735866	0.0991229934735866	-105.0179868	39.7130093	-105.0191455	39.712996
-1314	1340	193	0.100574656408132	0.100574656408132	-105.0191455	39.712996	-105.0203213	39.712996
-1315	193	1341	0.102057084030905	0.102057084030905	-105.0203213	39.712996	-105.0215144	39.7130026
-1316	1341	1342	0.101342753238197	0.101342753238197	-105.0215144	39.7130026	-105.0226989	39.7129828
-1317	1342	1343	0.0983873083767276	0.0983873083767276	-105.0226989	39.7129828	-105.023849	39.712996
-1318	1343	1344	0.103799446896886	0.103799446896886	-105.023849	39.712996	-105.0250625	39.7129968
-1320	1345	1346	0.0125938712274396	0.0125938712274396	-105.0025087	39.7490201	-105.0024538	39.7491252
-1323	1348	1349	0.273909093656176	0.273909093656176	-104.9759324	39.769905	-104.9740676	39.7719084
-1325	1350	1351	0.136546503712986	0.136546503712986	-105.0063979	39.7825483	-105.007995	39.7825082
-1326	1351	1352	0.134960662965356	0.134960662965356	-105.007995	39.7825082	-105.0095743	39.7825214
-1327	1352	1353	0.12926179848792	0.12926179848792	-105.0095743	39.7825214	-105.0110864	39.7825542
-1328	1353	1354	0.137757238088674	0.137757238088674	-105.0110864	39.7825542	-105.0126985	39.7825478
-1329	1354	1355	0.134312853283448	0.134312853283448	-105.0126985	39.7825478	-105.0142702	39.7825623
-1330	1355	1356	0.132780195397846	0.132780195397846	-105.0142702	39.7825623	-105.015824	39.7825504
-1334	1359	1360	0.200708631878513	0.200708631878513	-104.9979619	39.6967021	-104.9980058	39.6948974
-1336	142	1364	0.213116678885437	0.213116678885437	-104.9980358	39.6930742	-104.9980305	39.6911576
-1338	1365	1366	0.152775417186349	0.152775417186349	-105.0337367	39.6912702	-105.0337624	39.6898964
-1339	1367	1368	0.213588518747439	0.213588518747439	-104.9875368	39.7120974	-104.9900335	39.7121268
-1341	1369	1370	0.0932290478454428	0.0932290478454428	-104.9923595	39.7121202	-104.993449	39.7121432
-1342	1371	1372	0.0501807359890933	0.0501807359890933	-105.0361028	39.7117899	-105.0366894	39.7117844
-1343	1372	1373	0.0506488838331464	0.0506488838331464	-105.0366894	39.7117844	-105.0372815	39.7117878
-1344	1373	1374	0.0509778039678037	0.0509778039678037	-105.0372815	39.7117878	-105.0378774	39.7117812
-1345	1374	1375	0.0510804446988023	0.0510804446988023	-105.0378774	39.7117812	-105.0384745	39.7117746
-1346	1375	1376	0.0530938888935116	0.0530938888935116	-105.0384745	39.7117746	-105.0390952	39.7117746
-1347	1376	1377	0.0533676128248485	0.0533676128248485	-105.0390952	39.7117746	-105.0397191	39.7117746
-1348	1377	1378	0.0492215264037076	0.0492215264037076	-105.0397191	39.7117746	-105.0402944	39.711784
-1349	1378	1379	0.0493909004241748	0.0493909004241748	-105.0402944	39.711784	-105.0408718	39.7117866
-1350	1379	1380	0.102775081126436	0.102775081126436	-105.0408718	39.7117866	-105.0420733	39.7117889
-1351	1380	1381	0.100172308119327	0.100172308119327	-105.0420733	39.7117889	-105.0432442	39.7117733
-1353	1382	1383	0.0341877559991377	0.0341877559991377	-104.9972593	39.7123952	-104.9976275	39.7122756
-1354	1383	1384	0.104577694208817	0.104577694208817	-104.9976275	39.7122756	-104.998769	39.7119388
-1356	1385	1386	0.193890579001187	0.193890579001187	-105.0016028	39.7121409	-105.0038695	39.7121354
-2459	714	2450	0.108569713532818	0.108569713532818	-105.0041958	39.7705323	-105.0054661	39.7705389
-1358	1387	1388	0.203368582544414	0.203368582544414	-105.0062556	39.7121476	-105.0086331	39.7121543
-1359	1388	1389	0.203745939128333	0.203745939128333	-105.0086331	39.7121543	-105.011015	39.7121455
-1361	1390	1391	0.199208620541168	0.199208620541168	-105.0322152	39.7838328	-105.0322278	39.7856243
-1362	1391	1392	0.199941300123434	0.199941300123434	-105.0322278	39.7856243	-105.0322013	39.7874223
-1364	1393	1394	0.177657657089983	0.177657657089983	-105.0324691	39.7165619	-105.0324777	39.7181596
-1365	1394	1395	0.177656134299769	0.177656134299769	-105.0324777	39.7181596	-105.0324777	39.7197573
-1366	1395	1396	0.0721099099294465	0.0721099099294465	-105.0324777	39.7197573	-105.0324777	39.7204058
-1367	1396	1397	0.103333445330309	0.103333445330309	-105.0324777	39.7204058	-105.0324777	39.7213351
-1368	1397	1398	0.177111308895875	0.177111308895875	-105.0324777	39.7213351	-105.0324765	39.7229279
-1369	1398	1399	0.177390305757292	0.177390305757292	-105.0324765	39.7229279	-105.0324836	39.7245232
-1370	1399	1400	0.0617135848764214	0.0617135848764214	-105.0324836	39.7245232	-105.0324862	39.7250782
-1371	1400	1401	0.0203196347458361	0.0203196347458361	-105.0324862	39.7250782	-105.0324911	39.7252609
-1373	1402	1403	0.0235752242204257	0.0235752242204257	-105.032154	39.734838	-105.0321575	39.73505
-1375	1404	1402	0.00627534757508794	0.00627534757508794	-105.0321449	39.734782	-105.032154	39.734838
-1377	1405	1406	0.205561430653916	0.205561430653916	-105.0321172	39.729303	-105.0321363	39.7311516
-1378	1406	1407	0.198211407371417	0.198211407371417	-105.0321363	39.7311516	-105.032155	39.7329341
-1379	1407	1404	0.205478920022626	0.205478920022626	-105.032155	39.7329341	-105.0321449	39.734782
-1381	1408	1409	0.100293396704139	0.100293396704139	-105.032238	39.773186	-105.032333	39.774085
-2482	2015	1998	0.0374209544699414	0.0374209544699414	-104.9354827	39.7474085	-104.935045	39.7474085
-1382	1409	1410	0.293581023203639	0.293581023203639	-105.032333	39.774085	-105.0322367	39.7767242
-1386	1413	1414	0.135399373352711	0.135399373352711	-105.0110892	39.7813605	-105.0126737	39.7813618
-1387	1414	1415	0.134222064866511	0.134222064866511	-105.0126737	39.7813618	-105.0142444	39.7813552
-1388	1415	1416	0.135554703950228	0.135554703950228	-105.0142444	39.7813552	-105.0158307	39.7813611
-1390	1417	1418	0.0459508709120374	0.0459508709120374	-104.9988224	39.7819937	-104.9993559	39.7819419
-1391	1418	1419	0.202303287973101	0.202303287973101	-104.9993559	39.7819419	-105.0017224	39.7819937
-1394	1421	1422	0.101428183167069	0.101428183167069	-105.0345828	39.7821162	-105.0357695	39.7820968
-1395	1422	1423	0.0971760324958247	0.0971760324958247	-105.0357695	39.7820968	-105.0369066	39.7820848
-1396	1423	1424	0.100465380366459	0.100465380366459	-105.0369066	39.7820848	-105.0380823	39.7820859
-1397	1424	1425	0.0503823697773718	0.0503823697773718	-105.0380823	39.7820859	-105.0386719	39.7820847
-1398	1425	1426	0.0484682644313395	0.0484682644313395	-105.0386719	39.7820847	-105.0392391	39.7820835
-1399	1426	1427	0.0493995225121813	0.0493995225121813	-105.0392391	39.7820835	-105.0398172	39.7820831
-1400	1427	1138	0.0500574902796296	0.0500574902796296	-105.0398172	39.7820831	-105.040403	39.7820828
-1401	1138	1428	0.0487273610513856	0.0487273610513856	-105.040403	39.7820828	-105.0409732	39.782078
-1403	1429	1430	0.0510517494638005	0.0510517494638005	-105.0415749	39.7820729	-105.0421723	39.7820779
-1404	1430	1431	0.0485479238043371	0.0485479238043371	-105.0421723	39.7820779	-105.0427404	39.7820827
-1405	1431	1432	0.0499990939034271	0.0499990939034271	-105.0427404	39.7820827	-105.0433255	39.7820793
-1406	1432	1433	0.0540496336498359	0.0540496336498359	-105.0433255	39.7820793	-105.043958	39.7820756
-1408	1434	1435	0.101502735016485	0.101502735016485	-105.015828	39.7819929	-105.0170158	39.7820003
-1409	1435	1436	0.0975542961638382	0.0975542961638382	-105.0170158	39.7820003	-105.0181574	39.7819937
-1410	1436	1437	0.099750341261668	0.099750341261668	-105.0181574	39.7819937	-105.0193247	39.7820003
-1411	1437	1265	0.0977907961309881	0.0977907961309881	-105.0193247	39.7820003	-105.0204691	39.7820002
-1413	1438	1439	0.100436447451859	0.100436447451859	-105.0216256	39.7820039	-105.0228009	39.7820131
-1416	1441	1442	0.100952147732681	0.100952147732681	-105.0038773	39.7148211	-105.0038934	39.7139133
-1417	1442	1329	0.0966125375658313	0.0966125375658313	-105.0038934	39.7139133	-105.0038719	39.7130446
-1418	1329	1386	0.101098635736807	0.101098635736807	-105.0038719	39.7130446	-105.0038695	39.7121354
-1419	1386	1443	0.103303628365074	0.103303628365074	-105.0038695	39.7121354	-105.0038795	39.7112064
-1420	1443	1444	0.105351454494942	0.105351454494942	-105.0038795	39.7112064	-105.0039077	39.7102592
-1421	1444	1445	0.104823988220675	0.104823988220675	-105.0039077	39.7102592	-105.0039116	39.7093165
-1422	1445	1446	0.0939934684249721	0.0939934684249721	-105.0039116	39.7093165	-105.0038944	39.7084713
-1424	1447	1448	0.0986593061594928	0.0986593061594928	-105.0038773	39.7075535	-105.0037914	39.7066687
-1425	1448	1449	0.102799709683289	0.102799709683289	-105.0037914	39.7066687	-105.0037914	39.7057442
-1426	1449	1450	0.0947158385157811	0.0947158385157811	-105.0037914	39.7057442	-105.0037914	39.7048924
-1427	1450	1451	0.0999075147918272	0.0999075147918272	-105.0037914	39.7048924	-105.0038258	39.7039943
-1429	1452	784	0.0977509062908684	0.0977509062908684	-105.003594	39.7030434	-105.0031735	39.702226
-1431	1453	1454	0.0719801500300486	0.0719801500300486	-105.0038208	39.695498	-105.0038293	39.6948507
-1432	1454	147	0.198407848383786	0.198407848383786	-105.0038293	39.6948507	-105.0039152	39.6930676
-1433	147	1455	0.0338525123105229	0.0338525123105229	-105.0039152	39.6930676	-105.0039409	39.6927638
-1435	151	1456	0.201963345264684	0.201963345264684	-105.0077346	39.6931072	-105.0077346	39.6912909
-1438	1458	1459	0.393387760227334	0.393387760227334	-105.0078206	39.6893993	-105.007872	39.6858617
-1439	1460	1343	0.203476082408649	0.203476082408649	-105.0238542	39.7148259	-105.023849	39.712996
-1440	1343	1461	0.205811743637529	0.205811743637529	-105.023849	39.712996	-105.0238413	39.7111451
-1441	1461	1462	0.203884797606556	0.203884797606556	-105.0238413	39.7111451	-105.0238747	39.7093117
-1442	1462	1463	0.199707411933497	0.199707411933497	-105.0238747	39.7093117	-105.0238662	39.7075157
-1443	1463	1464	0.202654089186264	0.202654089186264	-105.0238662	39.7075157	-105.0238576	39.7056932
-1444	1464	1465	0.201184980777767	0.201184980777767	-105.0238576	39.7056932	-105.0238576	39.7038839
-1446	778	1466	0.187246918966658	0.187246918966658	-105.023849	39.7020679	-105.0238662	39.700384
-1447	1466	1467	0.197539000166948	0.197539000166948	-105.0238662	39.700384	-105.0238404	39.6986076
-1448	1467	1468	0.208212504536917	0.208212504536917	-105.0238404	39.6986076	-105.0238399	39.6967351
-1450	1469	1470	0.186875447219802	0.186875447219802	-105.0235652	39.6967351	-105.0235572	39.6950545
-1451	173	1471	0.256211082856798	0.256211082856798	-105.0231623	39.6931129	-105.0231842	39.6908088
-1454	1473	1474	0.0115011236026218	0.0115011236026218	-104.9248865	39.6961248	-104.9247632	39.6960836
-1455	1474	1475	0.0782239536830869	0.0782239536830869	-104.9247632	39.6960836	-104.9241194	39.6955841
-1456	1475	1476	0.086773238144748	0.086773238144748	-104.9241194	39.6955841	-104.9233668	39.695061
-1457	1476	1479	0.0924870142175924	0.0924870142175924	-104.9233668	39.695061	-104.9226286	39.6944534
-1458	1479	1480	0.37958729242533	0.37958729242533	-104.9226286	39.6944534	-104.9194549	39.6920681
-1460	1482	1483	0.0482525610515095	0.0482525610515095	-104.9907544	39.6948087	-104.9913183	39.6948152
-1463	1183	1360	0.0998764831880159	0.0998764831880159	-104.9968385	39.6948908	-104.9980058	39.6948974
-1464	1360	1485	0.101348070124559	0.101348070124559	-104.9980058	39.6948974	-104.9991903	39.6948908
-1465	1485	1486	0.0984049068298888	0.0984049068298888	-104.9991903	39.6948908	-105.0003404	39.6948842
-1467	1487	1488	0.111519868825334	0.111519868825334	-104.9874337	39.6948003	-104.988737	39.694787
-1471	1454	1491	0.201276239535877	0.201276239535877	-105.0038293	39.6948507	-105.0061812	39.6948904
-1473	1492	1493	0.102671300709598	0.102671300709598	-105.036538	39.695087	-105.037738	39.695087
-1474	1493	1494	0.114201675013651	0.114201675013651	-105.037738	39.695087	-105.0390582	39.6949357
-1475	1494	1495	0.100620235623392	0.100620235623392	-105.0390582	39.6949357	-105.0402341	39.6949489
-1476	1495	1496	0.0991406161889474	0.0991406161889474	-105.0402341	39.6949489	-105.0413928	39.6949423
-1477	1496	1497	0.0998844924107287	0.0998844924107287	-105.0413928	39.6949423	-105.0425601	39.6949555
-1478	1497	1498	0.102075212599034	0.102075212599034	-105.0425601	39.6949555	-105.0437531	39.6949621
-1479	1498	1499	0.0984215743592215	0.0984215743592215	-105.0437531	39.6949621	-105.0449033	39.6949489
-1480	1499	1500	0.710275264674714	0.710275264674714	-105.0449033	39.6949489	-105.0532048	39.6949656
-1481	1501	1502	0.109574036549915	0.109574036549915	-105.0250491	39.694923	-105.0263295	39.6949026
-1482	1502	1503	0.290817056726042	0.290817056726042	-105.0263295	39.6949026	-105.0297284	39.6949225
-1484	1504	1505	0.0925327391334129	0.0925327391334129	-105.0309987	39.6949159	-105.0320802	39.6949159
-1485	1505	1506	0.0984021297067109	0.0984021297067109	-105.0320802	39.6949159	-105.0332303	39.6949159
-1486	1506	1508	0.0976913946915281	0.0976913946915281	-105.0332303	39.6949159	-105.0343718	39.694896
-1489	1509	1510	0.0972031962531711	0.0972031962531711	-104.9520771	39.704954	-104.9532101	39.7050201
-1490	1510	1511	0.029446204772298	0.029446204772298	-104.9532101	39.7050201	-104.9534977	39.7051656
-1494	1514	1515	0.0918220075397064	0.0918220075397064	-104.9278643	39.6960978	-104.9267914	39.6961177
-1499	1518	1519	0.202094906389576	0.202094906389576	-104.9745407	39.7110945	-104.9745633	39.7092771
-1500	1519	1520	0.199707443263373	0.199707443263373	-104.9745633	39.7092771	-104.9745719	39.7074811
-1501	1520	1521	0.202063984146535	0.202063984146535	-104.9745719	39.7074811	-104.9745465	39.705664
-1502	1521	1522	0.20219834838932	0.20219834838932	-104.9745465	39.705664	-104.9745729	39.7038457
-1503	1522	1523	0.199783925434931	0.199783925434931	-104.9745729	39.7038457	-104.9745731	39.702049
-1504	1523	47	0.203533027899534	0.203533027899534	-104.9745731	39.702049	-104.974563	39.7002186
-2599	2565	2566	0.0719878134592224	0.0719878134592224	-104.9525578	39.7090414	-104.9525835	39.7096885
-1506	1524	1525	0.202471618520659	0.202471618520659	-104.9745686	39.6984311	-104.9745895	39.6966103
-1507	1525	1526	0.207090708341307	0.207090708341307	-104.9745895	39.6966103	-104.974598	39.6947479
-1508	1526	1527	0.19569314849173	0.19569314849173	-104.974598	39.6947479	-104.974606	39.692988
-1509	1527	1528	0.200397251106195	0.200397251106195	-104.974606	39.692988	-104.9746158	39.6911858
-1511	1529	1530	2.00893755060013	2.00893755060013	-104.9745995	39.6893814	-104.9746235	39.6713146
-1516	1535	1536	0.100586492660266	0.100586492660266	-104.95706	39.7213954	-104.9582358	39.7214152
-1518	1009	1537	0.0517503943444181	0.0517503943444181	-104.9875916	39.776556	-104.9869861	39.7765493
-1519	1537	1540	0.0418405299236717	0.0418405299236717	-104.9869861	39.7765493	-104.9864968	39.7765361
-1520	1540	1541	0.0515572086033239	0.0515572086033239	-104.9864968	39.7765361	-104.9858935	39.7765349
-1521	1541	1542	0.0506297333875711	0.0506297333875711	-104.9858935	39.7765349	-104.9853013	39.7765217
-1522	1542	1547	0.050402272284143	0.050402272284143	-104.9853013	39.7765217	-104.9847116	39.7765295
-1523	1547	972	0.0996461444866795	0.0996461444866795	-104.9847116	39.7765295	-104.9835456	39.7765347
-1524	972	1548	0.0962022319753865	0.0962022319753865	-104.9835456	39.7765347	-104.9824199	39.7765295
-1525	1548	1549	0.0953657467513535	0.0953657467513535	-104.9824199	39.7765295	-104.9813041	39.7765427
-1526	1549	1550	0.0963437695650725	0.0963437695650725	-104.9813041	39.7765427	-104.9801772	39.7765679
-1528	1551	1552	0.142721374587541	0.142721374587541	-104.945934	39.777795	-104.944264	39.777781
-1529	1552	1553	0.0277011537567162	0.0277011537567162	-104.944264	39.777781	-104.943941	39.77776
-1530	1554	1555	0.0435488620803952	0.0435488620803952	-104.9639791	39.7776803	-104.9634695	39.7776803
-1531	1555	1053	0.0900813280777187	0.0900813280777187	-104.9634695	39.7776803	-104.9624154	39.7776762
-1532	1053	1556	0.091689363858679	0.091689363858679	-104.9624154	39.7776762	-104.9613425	39.77767
-1537	1560	1561	0.060529314582724	0.060529314582724	-104.9571611	39.7776691	-104.9564528	39.7776703
-1538	1561	1562	0.0982757577888809	0.0982757577888809	-104.9564528	39.7776703	-104.9553028	39.7776723
-16447	9904	9905	0.234187757526107	0.234187757526107	-104.9731712	39.6980224	-104.9731684	39.7001285
-1539	1562	1563	0.0964555264462913	0.0964555264462913	-104.9553028	39.7776723	-104.9541741	39.7776743
-1540	1563	1564	0.0948745488688521	0.0948745488688521	-104.9541741	39.7776743	-104.9530639	39.7776762
-1541	1564	1565	0.0967033454927318	0.0967033454927318	-104.9530639	39.7776762	-104.9519323	39.7776782
-1542	1565	1566	0.0968058200777679	0.0968058200777679	-104.9519323	39.7776782	-104.9507995	39.7776799
-1543	1566	1567	0.0857541821683109	0.0857541821683109	-104.9507995	39.7776799	-104.9497965	39.7776561
-1544	1567	1568	0.099340207555012	0.099340207555012	-104.9497965	39.7776561	-104.9486346	39.7776838
-1545	1568	1571	0.0938405349536985	0.0938405349536985	-104.9486346	39.7776838	-104.9475365	39.7776858
-1546	1571	1572	0.0960880186310076	0.0960880186310076	-104.9475365	39.7776858	-104.9464121	39.7776877
-1548	1573	1574	0.0687509395523497	0.0687509395523497	-105.0353206	39.6868062	-105.0360845	39.6869978
-1551	1576	1577	0.102936179368501	0.102936179368501	-105.0378698	39.6874469	-105.0390628	39.6875658
-1555	1580	1581	0.0874483930882581	0.0874483930882581	-105.0421871	39.6881867	-105.0432085	39.6882131
-1558	1583	1584	0.322225767594647	0.322225767594647	-105.0452106	39.6881689	-105.0489763	39.6881801
-1559	1585	158	0.325178498041831	0.325178498041831	-105.0145707	39.6959461	-105.0136315	39.6931124
-1560	158	1586	0.248813969770461	0.248813969770461	-105.0136315	39.6931124	-105.0136484	39.6908748
-1562	1587	1588	0.682458212363131	0.682458212363131	-105.0138115	39.6884179	-105.0128935	39.6823212
-1563	1589	1590	0.093984831401002	0.093984831401002	-105.0133261	39.7073704	-105.0133347	39.7065252
-1564	1590	1591	0.0969174980637894	0.0969174980637894	-105.0133347	39.7065252	-105.0133347	39.7056536
-1565	1591	1592	0.0961947351154639	0.0961947351154639	-105.0133347	39.7056536	-105.0133176	39.7047886
-1566	1592	1593	0.0903125194205546	0.0903125194205546	-105.0133176	39.7047886	-105.0133176	39.7039764
-1567	1593	768	0.157881413911052	0.157881413911052	-105.0133176	39.7039764	-105.0133004	39.7025566
-1568	768	1596	0.172691061788589	0.172691061788589	-105.0133004	39.7025566	-105.0135751	39.701018
-1569	1596	1597	0.125221889854682	0.125221889854682	-105.0135751	39.701018	-105.0140815	39.6999614
-11466	780	781	0.0395520182900152	0.0395520182900152	-104.9318858	39.7800449	-104.9314271	39.7799974
-14682	727	782	0.194557772372847	0.194557772372847	-104.9700021	39.7200889	-104.9699677	39.7183394
-1575	1603	1604	0.122808892568626	0.122808892568626	-105.0031242	39.7501833	-105.002095	39.7509538
-1576	1604	1605	0.14134447308364	0.14134447308364	-105.002095	39.7509538	-105.0009256	39.7518524
-1577	1605	1606	0.00315234288642188	0.00315234288642188	-105.0009256	39.7518524	-105.000898	39.7518712
-1578	1606	1607	0.00237760055681402	0.00237760055681402	-105.000898	39.7518712	-105.00088	39.7518875
-1579	1607	1034	0.102833271602923	0.102833271602923	-105.00088	39.7518875	-105.0000465	39.7525543
-1580	1034	1608	0.043468513404088	0.043468513404088	-105.0000465	39.7525543	-104.9996914	39.7528341
-1581	1608	1033	0.049915824892393	0.049915824892393	-104.9996914	39.7528341	-104.9992823	39.7531544
-1582	1033	1609	0.0942592902205972	0.0942592902205972	-104.9992823	39.7531544	-104.9985176	39.7537651
-1583	1609	1610	0.146590259158182	0.146590259158182	-104.9985176	39.7537651	-104.9973103	39.7547013
-1585	1611	1612	0.124755429872932	0.124755429872932	-104.9928744	39.7570652	-104.9918236	39.7578438
-1587	1613	1614	0.146275547777326	0.146275547777326	-104.9779666	39.7696675	-104.9767564	39.7705977
-1588	1614	1615	0.26514479082652	0.26514479082652	-104.9767564	39.7705977	-104.9745571	39.7722795
-1589	1615	1616	0.120777633356172	0.120777633356172	-104.9745571	39.7722795	-104.973572	39.7730583
-1590	1616	1617	0.146979440780155	0.146979440780155	-104.973572	39.7730583	-104.9723691	39.774003
-1591	1617	1618	0.586436662116935	0.586436662116935	-104.9723691	39.774003	-104.9670562	39.7773409
-10219	5410	5429	0.0496147818599398	0.0496147818599398	-104.9704709	39.6893522	-104.9698913	39.6893394
-1592	1618	1619	0.120318550023187	0.120318550023187	-104.9670562	39.7773409	-104.9660606	39.778106
-1593	1620	1621	0.123170513487948	0.123170513487948	-104.9874196	39.7290833	-104.9888599	39.7290834
-1594	1621	1622	0.0891128334653611	0.0891128334653611	-104.9888599	39.7290834	-104.9899006	39.7290427
-1595	1622	1623	0.0126945079405001	0.0126945079405001	-104.9899006	39.7290427	-104.990046	39.7290197
-1597	1624	1625	0.0361628363016983	0.0361628363016983	-104.9994552	39.7668568	-104.9994016	39.7671794
-1598	1625	1626	0.0965078268867085	0.0965078268867085	-104.9994016	39.7671794	-104.9994084	39.7680473
-1599	1626	1627	0.122881556236448	0.122881556236448	-104.9994084	39.7680473	-104.9994072	39.7691524
-1601	1628	1629	0.0514694071076013	0.0514694071076013	-104.9994043	39.7833868	-104.9993614	39.7838485
-1604	1635	1337	0.196038913624896	0.196038913624896	-105.015737	39.714787	-105.015726	39.713024
-1605	1337	1636	0.207228602655476	0.207228602655476	-105.015726	39.713024	-105.0156951	39.7111605
-1606	1636	1637	0.20264296962565	0.20264296962565	-105.0156951	39.7111605	-105.0156865	39.7093381
-1607	1637	1638	0.203387402917304	0.203387402917304	-105.0156865	39.7093381	-105.0157122	39.7075091
-1608	1638	1639	0.0190931929940632	0.0190931929940632	-105.0157122	39.7075091	-105.0156968	39.7073378
-1609	1639	1640	0.0954982678568342	0.0954982678568342	-105.0156968	39.7073378	-105.0156865	39.706479
-1612	1642	1643	0.0969376424953903	0.0969376424953903	-105.0156924	39.7056338	-105.0156693	39.7047622
-1613	1643	1644	0.0932591849763066	0.0932591849763066	-105.0156693	39.7047622	-105.0156693	39.7039235
-1614	1644	769	0.109404688325734	0.109404688325734	-105.0156693	39.7039235	-105.0156693	39.7029396
-1616	1645	1646	0.0870106428010285	0.0870106428010285	-105.015583	39.6967681	-105.0155663	39.6959857
-1617	1646	1647	0.21369947718983	0.21369947718983	-105.0155663	39.6959857	-105.0155835	39.6940639
-1618	1647	160	0.103968034130831	0.103968034130831	-105.0155835	39.6940639	-105.0155788	39.6931289
-1619	160	1648	0.148969074067601	0.148969074067601	-105.0155788	39.6931289	-105.0157083	39.6917929
-1620	1648	1649	0.102090714125769	0.102090714125769	-105.0157083	39.6917929	-105.0156997	39.6908748
-1621	1649	1650	0.152016365267068	0.152016365267068	-105.0156997	39.6908748	-105.0156911	39.6895077
-1624	1652	1653	3.12548314855053	3.12548314855053	-105.0156826	39.688616	-105.0158	39.660508
-1625	1654	1655	0.099787477314555	0.099787477314555	-105.015638	39.699987	-105.0156436	39.6990896
-1626	1655	1656	0.0573939833292015	0.0573939833292015	-105.0156436	39.6990896	-105.0156865	39.6985745
-1627	1656	1657	0.0412244638452508	0.0412244638452508	-105.0156865	39.6985745	-105.0156522	39.6982047
-1628	1657	1658	0.159748945001355	0.159748945001355	-105.0156522	39.6982047	-105.0156688	39.6967681
-1630	1659	1660	0.0562485254553907	0.0562485254553907	-105.0252948	39.7674204	-105.0259529	39.7674233
-1631	1660	1661	0.140693983223782	0.140693983223782	-105.0259529	39.7674233	-105.027599	39.7674306
-1632	1661	1662	0.199243791884909	0.199243791884909	-105.027599	39.7674306	-105.02993	39.7674094
-1633	1662	1663	0.200873345889282	0.200873345889282	-105.02993	39.7674094	-105.0322802	39.7674005
-1634	1663	1664	0.200754056548572	0.200754056548572	-105.0322802	39.7674005	-105.034629	39.767391
-1636	1665	1626	0.102716653811918	0.102716653811918	-104.9982066	39.7680487	-104.9994084	39.7680473
-1637	1626	1666	0.1010071593638	0.1010071593638	-104.9994084	39.7680473	-105.0005902	39.7680472
-1638	1666	1667	0.101237955319616	0.101237955319616	-105.0005902	39.7680472	-105.0017747	39.7680465
-1639	1667	1668	0.101237948338119	0.101237948338119	-105.0017747	39.7680465	-105.0029592	39.7680459
-1640	1668	711	0.101306598900241	0.101306598900241	-105.0029592	39.7680459	-105.0041445	39.7680437
-1641	711	1669	0.10042603616611	0.10042603616611	-105.0041445	39.7680437	-105.0053195	39.7680447
-1642	1669	1670	0.0958961450641524	0.0958961450641524	-105.0053195	39.7680447	-105.0064415	39.7680441
-1644	1671	1672	0.137716093557474	0.137716093557474	-105.0080403	39.7680432	-105.0096516	39.7680424
-2762	2714	2715	0.0991860693431078	0.0991860693431078	-105.0228875	39.7720427	-105.0228852	39.7729347
-1651	1678	1679	0.133306617824866	0.133306617824866	-105.0174158	39.7680606	-105.0189755	39.7680565
-1652	1679	1250	0.131938339831678	0.131938339831678	-105.0189755	39.7680565	-105.0205192	39.7680565
-1653	1250	1680	0.132959450261057	0.132959450261057	-105.0205192	39.7680565	-105.0220748	39.7680472
-1654	1680	1681	0.132733669106231	0.132733669106231	-105.0220748	39.7680472	-105.0236278	39.7680441
-1655	1681	1682	0.132964768190064	0.132964768190064	-105.0236278	39.7680441	-105.0251835	39.7680482
-1657	1683	1684	0.0490945965896849	0.0490945965896849	-105.0346312	39.7676742	-105.0352055	39.7676655
-1658	1684	1685	0.0490108159838641	0.0490108159838641	-105.0352055	39.7676655	-105.0357789	39.7676609
-1659	1685	1686	0.0499458328019049	0.0499458328019049	-105.0357789	39.7676609	-105.0363632	39.7676539
-1660	1686	1687	0.0506073899683783	0.0506073899683783	-105.0363632	39.7676539	-105.0369553	39.7676511
-1661	1687	1688	0.0999922931051382	0.0999922931051382	-105.0369553	39.7676511	-105.038125	39.7676337
-1663	1689	1690	0.0532341368396536	0.0532341368396536	-105.0387013	39.7676285	-105.0393241	39.7676228
-1664	1690	1691	0.0494816378016481	0.0494816378016481	-105.0393241	39.7676228	-105.039903	39.7676176
-1665	1691	1129	0.0483962553320354	0.0483962553320354	-105.039903	39.7676176	-105.0404692	39.7676124
-2786	2740	2741	0.204165004811902	0.204165004811902	-104.9558357	39.6929607	-104.9558357	39.6911246
-1669	1694	1695	0.0515058444916569	0.0515058444916569	-105.0428441	39.7675702	-105.0434467	39.7675662
-1670	1695	1696	0.049583388064832	0.049583388064832	-105.0434467	39.7675662	-105.0440268	39.7675617
-1672	1697	1698	0.164817053327799	0.164817053327799	-104.9384472	39.7162245	-104.9384005	39.7147427
-1674	1699	1700	0.200184975462711	0.200184975462711	-104.9383805	39.6911269	-104.9383741	39.6893266
-1676	1701	1702	0.0562043024646792	0.0562043024646792	-104.9875011	39.6911908	-104.9881579	39.6911836
-1677	1702	1703	0.0473559609478773	0.0473559609478773	-104.9881579	39.6911836	-104.9887113	39.6911776
-1679	1704	1705	0.398746605392666	0.398746605392666	-105.0250424	39.6912967	-105.0297026	39.69129
-1681	1706	1365	0.144540603588288	0.144540603588288	-105.0320475	39.6912817	-105.0337367	39.6912702
-1682	1365	1707	0.0528990154558718	0.0528990154558718	-105.0337367	39.6912702	-105.0343547	39.691257
-1683	1707	1708	0.10134484884037	0.10134484884037	-105.0343547	39.691257	-105.0355391	39.6912636
-1684	1708	1709	0.0991459088544214	0.0991459088544214	-105.0355391	39.6912636	-105.0366978	39.691257
-1685	1709	1710	0.100657696530189	0.100657696530189	-105.0366978	39.691257	-105.0378737	39.6912834
-1686	1710	1711	0.102825031241611	0.102825031241611	-105.0378737	39.6912834	-105.0390754	39.69129
-1687	1711	1712	0.0822822408497534	0.0822822408497534	-105.0390754	39.69129	-105.0400367	39.6913098
-1688	1712	1713	0.0873989484445677	0.0873989484445677	-105.0400367	39.6913098	-105.041058	39.6912966
-1689	1713	1714	0.083724486939572	0.083724486939572	-105.041058	39.6912966	-105.0420365	39.6912966
-1691	1715	1716	0.0772899080720762	0.0772899080720762	-105.0433411	39.691224	-105.0442424	39.6912702
-1693	1717	1718	0.0829924152482612	0.0829924152482612	-105.0087646	39.690855	-105.0097345	39.6908484
-12973	1824	2797	0.01303984476973	0.01303984476973	-105.0068707	39.7455494	-105.0069887	39.7454751
-1695	1719	1720	0.0851881782403355	0.0851881782403355	-105.0107559	39.690855	-105.0117515	39.690855
-1696	1720	1721	0.0815306594337643	0.0815306594337643	-105.0117515	39.690855	-105.0127042	39.6908682
-1697	1721	1586	0.0807934684584117	0.0807934684584117	-105.0127042	39.6908682	-105.0136484	39.6908748
-1698	1586	1722	0.0815207303880199	0.0815207303880199	-105.0136484	39.6908748	-105.0146011	39.6908814
-1699	1722	1649	0.0940041718050458	0.0940041718050458	-105.0146011	39.6908814	-105.0156997	39.6908748
-1702	1723	1724	0.079056501466603	0.079056501466603	-105.0164379	39.6918193	-105.0171932	39.6914098
-1703	1724	1725	0.0798640413181071	0.0798640413181071	-105.0171932	39.6914098	-105.0179828	39.6910268
-1707	204	1728	0.0808035328564148	0.0808035328564148	-105.0203689	39.690822	-105.0213131	39.6908088
-1708	1728	1729	0.0793099389847985	0.0793099389847985	-105.0213131	39.6908088	-105.02224	39.6908088
-1709	1729	1471	0.0807902086419881	0.0807902086419881	-105.02224	39.6908088	-105.0231842	39.6908088
-1710	1471	1730	0.159227595521595	0.159227595521595	-105.0231842	39.6908088	-105.0250451	39.6908065
-1712	1731	1732	0.00918106235729301	0.00918106235729301	-105.0015625	39.6912528	-105.0016698	39.6912526
-1713	1732	1733	0.0904244628649386	0.0904244628649386	-105.0016698	39.6912526	-105.0027266	39.6912507
-1714	1733	1734	0.1024374483727	0.1024374483727	-105.0027266	39.6912507	-105.0039238	39.6912513
-1715	1734	1735	0.102816532682191	0.102816532682191	-105.0039238	39.6912513	-105.0051254	39.6912447
-1716	1735	1736	0.0492571813589573	0.0492571813589573	-105.0051254	39.6912447	-105.0057005	39.6912645
-1718	1737	1738	0.0480836518232765	0.0480836518232765	-105.0061947	39.6912734	-105.0067562	39.6912909
-1720	1456	1739	0.0851993535054976	0.0851993535054976	-105.0077346	39.6912909	-105.0087303	39.6912975
-1722	1740	1741	0.0851913863702705	0.0851913863702705	-104.9900263	39.6908136	-104.9910219	39.6908202
-1724	1742	1743	1.05721580006997	1.05721580006997	-104.9851236	39.7677094	-104.9787558	39.7758607
-1727	1746	1747	0.203318990561603	0.203318990561603	-104.9722045	39.6929651	-104.9722389	39.6911368
-1728	1747	1748	0.105159616756228	0.105159616756228	-104.9722389	39.6911368	-104.9722475	39.6901911
-1730	1749	1750	0.0560818664301058	0.0560818664301058	-104.9721944	39.7142027	-104.9722042	39.714707
-1732	1751	1752	0.478248386364013	0.478248386364013	-104.9472549	39.7837973	-104.944277	39.787439
-1733	1752	1753	0.443656760721259	0.443656760721259	-104.944277	39.787439	-104.9414956	39.7908082
-1735	1754	1755	0.1348267792147	0.1348267792147	-105.0124896	39.7620198	-105.0124792	39.7608073
-1736	1755	1756	0.129877519863856	0.129877519863856	-105.0124792	39.7608073	-105.0124873	39.7596393
-1738	1757	1758	0.139572444331893	0.139572444331893	-105.0085894	39.7075535	-105.0078426	39.7064375
-1740	1759	151	0.222068972422621	0.222068972422621	-105.0067133	39.6949432	-105.0077346	39.6931072
-1742	1760	1761	0.217075886587119	0.217075886587119	-105.0074982	39.7009717	-105.0081893	39.6990933
-1744	95	1762	0.0857577538793466	0.0857577538793466	-104.9551461	39.7002095	-104.9546893	39.699523
-1746	1763	1764	0.202675621070888	0.202675621070888	-104.9768983	39.7165189	-104.9769042	39.7146962
-1747	1764	1765	0.199646627713467	0.199646627713467	-104.9769042	39.7146962	-104.9769241	39.7129008
-1749	1768	1769	0.203715891739879	0.203715891739879	-104.976901	39.7110879	-104.9769412	39.7092561
-18799	8969	430	0.0787540687567586	0.0787540687567586	-104.9948199	39.7664979	-104.9943797	39.7671201
-1751	1772	1773	0.1980611092504	0.1980611092504	-104.9769267	39.7074561	-104.9769014	39.705675
-1752	1773	1774	0.203412766578772	0.203412766578772	-104.9769014	39.705675	-104.9769161	39.7038457
-1753	1774	1775	0.202109933054243	0.202109933054243	-104.9769161	39.7038457	-104.9769267	39.7020281
-1754	1775	43	0.202669215310678	0.202669215310678	-104.9769267	39.7020281	-104.9769439	39.7002055
-1755	43	1776	0.197841814631247	0.197841814631247	-104.9769439	39.7002055	-104.9769155	39.6984264
-1756	1776	1777	0.202676328377112	0.202676328377112	-104.9769155	39.6984264	-104.9769241	39.6966037
-1757	1777	1778	0.204936151058667	0.204936151058667	-104.9769241	39.6966037	-104.9769531	39.6947608
-1758	1778	1779	0.1977714314521	0.1977714314521	-104.9769531	39.6947608	-104.9769504	39.6929822
-1759	1779	1780	0.0315877327413917	0.0315877327413917	-104.9769504	39.6929822	-104.9769419	39.6926982
-1760	1780	1781	0.0188253963586558	0.0188253963586558	-104.9769419	39.6926982	-104.9769412	39.6925289
-1763	1782	570	0.0446437216270623	0.0446437216270623	-104.986165	39.6947828	-104.9856433	39.69479
-1764	570	1783	0.0483070548371257	0.0483070548371257	-104.9856433	39.69479	-104.9850787	39.69479
-1765	1783	1784	0.0445253123220399	0.0445253123220399	-104.9850787	39.69479	-104.9845583	39.69479
-1766	1784	1785	0.0510546887722961	0.0510546887722961	-104.9845583	39.69479	-104.9839616	39.6947869
-1768	1786	1787	0.0533839966500878	0.0533839966500878	-104.9833861	39.6948011	-104.9827622	39.6947958
-1769	1787	1788	0.0521924619717138	0.0521924619717138	-104.9827622	39.6947958	-104.9821522	39.6947929
-1770	1788	1789	0.0490694542852552	0.0490694542852552	-104.9821522	39.6947929	-104.9815787	39.6947902
-1771	1789	1790	0.0491381693257593	0.0491381693257593	-104.9815787	39.6947902	-104.9810045	39.694799
-1774	1792	1793	0.188232081449375	0.188232081449375	-104.931734	39.694587	-104.929534	39.694587
-1775	1793	1794	0.0938047512624172	0.0938047512624172	-104.929534	39.694587	-104.9284394	39.6945392
-1777	1795	1796	0.0479551643273822	0.0479551643273822	-104.9792579	39.6947744	-104.9786977	39.6947606
-1779	1797	1798	0.0506257576844139	0.0506257576844139	-104.9781014	39.6947603	-104.9775097	39.6947606
-1780	1798	1778	0.0476226019606038	0.0476226019606038	-104.9775097	39.6947606	-104.9769531	39.6947608
-1781	1778	1799	0.0506000833049729	0.0506000833049729	-104.9769531	39.6947608	-104.9763617	39.694761
-1782	1799	1800	0.0489339836382716	0.0489339836382716	-104.9763617	39.694761	-104.97579	39.6947486
-1783	1800	1801	0.0520587364066008	0.0520587364066008	-104.97579	39.6947486	-104.9751816	39.6947545
-1784	1801	1526	0.0499381116869285	0.0499381116869285	-104.9751816	39.6947545	-104.974598	39.6947479
-1785	1526	1802	0.0482912843745838	0.0482912843745838	-104.974598	39.6947479	-104.9740336	39.6947447
-1786	1802	1803	0.052312654556816	0.052312654556816	-104.9740336	39.6947447	-104.9734222	39.6947413
-1788	466	1804	0.00820558552351573	0.00820558552351573	-104.9373661	39.6947234	-104.9373232	39.6947894
-1789	1804	1805	0.0939988504660162	0.0939988504660162	-104.9373232	39.6947894	-104.9362246	39.6947828
-1790	1805	1806	0.0853375028247139	0.0853375028247139	-104.9362246	39.6947828	-104.935235	39.694687
-1792	1807	1808	0.0203438851658787	0.0203438851658787	-105.0073479	39.7524784	-105.0075333	39.7523637
-1793	1808	1809	0.0251680266073563	0.0251680266073563	-105.0075333	39.7523637	-105.0077397	39.7522023
-1794	1809	1810	0.203784780502352	0.203784780502352	-105.0077397	39.7522023	-105.0094107	39.7508953
-1795	1810	1811	0.245267310527272	0.245267310527272	-105.0094107	39.7508953	-105.0082177	39.7529013
-1797	1812	1513	0.252426666173968	0.252426666173968	-104.9317181	39.6953648	-104.92892	39.6960846
-1799	1479	1813	0.176119796231885	0.176119796231885	-104.9226286	39.6944534	-104.923341	39.6929674
-1800	1813	1814	0.410709550491308	0.410709550491308	-104.923341	39.6929674	-104.9243796	39.6893613
-1802	1815	1816	0.0577133885110317	0.0577133885110317	-105.0264272	39.7291051	-105.0268596	39.7287066
-1805	1818	1819	0.0740878722178254	0.0740878722178254	-105.028093	39.7274609	-105.0286551	39.7269539
-1806	1819	1820	0.135457901381645	0.135457901381645	-105.0286551	39.7269539	-105.0299828	39.7262896
-1808	1821	1822	0.206145194610924	0.206145194610924	-104.9293577	39.7647208	-104.9269459	39.7647142
-1812	1828	1829	0.106425576539939	0.106425576539939	-105.0251054	39.7213616	-105.0263496	39.7213466
-1813	1829	1830	0.105266693821804	0.105266693821804	-105.0263496	39.7213466	-105.0275804	39.7213446
-1814	1830	1831	0.0587144262982408	0.0587144262982408	-105.0275804	39.7213446	-105.0282669	39.7213461
-1815	1831	1832	0.0458724352500271	0.0458724352500271	-105.0282669	39.7213461	-105.0288032	39.7213404
-1817	1833	1834	0.199229532947629	0.199229532947629	-105.0227761	39.7211827	-105.0251054	39.7211636
-1820	1836	1837	0.0309799563804686	0.0309799563804686	-105.0117245	39.7209266	-105.0120749	39.720856
-1822	1838	1839	0.146418601014837	0.146418601014837	-104.9874805	39.7209443	-104.9891924	39.7209342
-1823	1839	1840	0.141683677614281	0.141683677614281	-104.9891924	39.7209342	-104.9908489	39.7209474
-1824	1840	1841	0.111588649653809	0.111588649653809	-104.9908489	39.7209474	-104.9921535	39.7209342
-1827	1844	1845	0.101354924922083	0.101354924922083	-105.030046	39.7213676	-105.031231	39.721358
-1828	1845	1397	0.106656735273228	0.106656735273228	-105.031231	39.721358	-105.0324777	39.7213351
-1829	1397	1846	0.052351737797171	0.052351737797171	-105.0324777	39.7213351	-105.0330898	39.7213326
-1831	1847	1848	0.0531037804059208	0.0531037804059208	-105.0337	39.7213301	-105.0343209	39.721329
-1832	1848	1849	0.0506063775898189	0.0506063775898189	-105.0343209	39.721329	-105.0349126	39.721328
-1833	1849	1850	0.0517100300362486	0.0517100300362486	-105.0349126	39.721328	-105.0355172	39.72133
-1834	1850	1851	0.0523258164287328	0.0523258164287328	-105.0355172	39.72133	-105.036129	39.721332
-1835	1851	1852	0.0499829479152778	0.0499829479152778	-105.036129	39.721332	-105.0367134	39.7213291
-1836	1852	1853	0.051505297770613	0.051505297770613	-105.0367134	39.7213291	-105.0373156	39.7213262
-1837	1853	1854	0.051498980863322	0.051498980863322	-105.0373156	39.7213262	-105.0379177	39.7213314
-1840	1856	1857	0.051410475877809	0.051410475877809	-105.0391086	39.721333	-105.0397097	39.7213315
-1841	1857	1858	0.0513674435994921	0.0513674435994921	-105.0397097	39.7213315	-105.0403103	39.7213316
-1842	1858	1109	0.0515213919005775	0.0515213919005775	-105.0403103	39.7213316	-105.0409127	39.7213317
-1843	1109	1859	0.0506198107739765	0.0506198107739765	-105.0409127	39.7213317	-105.0415045	39.7213253
-1844	1859	1860	0.0511967416282439	0.0511967416282439	-105.0415045	39.7213253	-105.0421031	39.721327
-1845	1860	1861	0.0519748871795966	0.0519748871795966	-105.0421031	39.721327	-105.0427108	39.7213283
-1847	1862	1863	0.0554265580601903	0.0554265580601903	-105.0432898	39.7213253	-105.0439342	39.7212724
-1848	1863	1864	0.397067534239407	0.397067534239407	-105.0439342	39.7212724	-105.0485768	39.7212752
-1849	1865	1481	0.206774260684103	0.206774260684103	-104.9901799	39.6966614	-104.9901596	39.6948019
-1850	1481	136	0.199116779757445	0.199116779757445	-104.9901596	39.6948019	-104.9901944	39.6930114
-1852	1866	1867	0.100566373592942	0.100566373592942	-104.9899563	39.7165768	-104.9899631	39.7156724
-1853	1867	1868	0.101320817159016	0.101320817159016	-104.9899631	39.7156724	-104.9899631	39.7147612
-1855	1869	1295	0.0991404141660552	0.0991404141660552	-104.9899974	39.7138897	-104.9899734	39.7129983
-1856	1295	1368	0.0970426412791379	0.0970426412791379	-104.9899734	39.7129983	-104.9900335	39.7121268
-1857	1368	1870	0.108154398880898	0.108154398880898	-104.9900335	39.7121268	-104.9899993	39.7111545
-1859	1871	1872	0.100234830388367	0.100234830388367	-104.9899914	39.7102518	-104.9900015	39.7093504
-1860	1872	1873	0.0980754533399867	0.0980754533399867	-104.9900015	39.7093504	-104.9900079	39.7084684
-1861	1873	1874	0.101854943741879	0.101854943741879	-104.9900079	39.7084684	-104.98999	39.7075525
-1862	1874	1875	0.0125795021137856	0.0125795021137856	-104.98999	39.7075525	-104.9899702	39.7074404
-1863	1875	1876	0.0797821176517698	0.0797821176517698	-104.9899702	39.7074404	-104.9899856	39.706723
-1864	1876	1877	0.103719210283603	0.103719210283603	-104.9899856	39.706723	-104.9899153	39.7057918
-1866	1740	1878	0.161887620550325	0.161887620550325	-104.9900263	39.6908136	-104.9904039	39.689387
-1868	1879	1880	0.0487542093720633	0.0487542093720633	-105.0393141	39.7594338	-105.0398844	39.7594402
-1869	1880	1122	0.0510369170722426	0.0510369170722426	-105.0398844	39.7594402	-105.0404814	39.759447
-1871	1882	1883	0.588595740779303	0.588595740779303	-105.044015	39.7594009	-105.0509008	39.7594001
-1872	1884	1885	0.152111272923972	0.152111272923972	-105.0281527	39.7594148	-105.0299322	39.7594122
-1873	1885	1886	0.199118819593963	0.199118819593963	-105.0299322	39.7594122	-105.0322615	39.7593933
-1874	1886	1887	0.200266209543398	0.200266209543398	-105.0322615	39.7593933	-105.0346033	39.7594473
-1876	1891	1892	0.0559298383062073	0.0559298383062073	-105.0046254	39.7620612	-105.0052777	39.7620216
-2989	776	2928	0.18503947742992	0.18503947742992	-105.0215401	39.7020679	-105.0215401	39.7004038
-1878	1893	1894	0.32823055853467	0.32823055853467	-104.9497942	39.7070048	-104.9460234	39.7064591
-1880	1895	1896	0.106010053095039	0.106010053095039	-104.9875851	39.7075228	-104.9863459	39.7075146
-1881	1896	1897	0.0966039225045284	0.0966039225045284	-104.9863459	39.7075146	-104.985217	39.7074918
-1882	1897	1898	0.101329648076306	0.101329648076306	-104.985217	39.7074918	-104.9840325	39.7074985
-1883	1898	1899	0.105723867542497	0.105723867542497	-104.9840325	39.7074985	-104.9827966	39.7074985
-1884	1899	1900	0.100059117952088	0.100059117952088	-104.9827966	39.7074985	-104.981627	39.707488
-1885	1900	1901	0.0102909725043749	0.0102909725043749	-104.981627	39.707488	-104.9815067	39.7074878
-1886	1901	1902	0.0917204387150709	0.0917204387150709	-104.9815067	39.7074878	-104.9804345	39.7074865
-1887	1902	1903	0.0488400104067164	0.0488400104067164	-104.9804345	39.7074865	-104.9798636	39.7074913
-1888	1903	1904	0.0516943831129701	0.0516943831129701	-104.9798636	39.7074913	-104.9792593	39.7074903
-1889	1904	1905	0.0485157141379251	0.0485157141379251	-104.9792593	39.7074903	-104.9786923	39.7074805
-1890	1905	1906	0.00454251169325352	0.00454251169325352	-104.9786923	39.7074805	-104.9786392	39.7074808
-1891	1906	1907	0.0474170350841876	0.0474170350841876	-104.9786392	39.7074808	-104.9780854	39.7074627
-1892	1907	1908	0.0520037008543052	0.0520037008543052	-104.9780854	39.7074627	-104.9774775	39.7074592
-1893	1908	1772	0.0471189408868131	0.0471189408868131	-104.9774775	39.7074592	-104.9769267	39.7074561
-1894	1772	1909	0.0492432884260358	0.0492432884260358	-104.9769267	39.7074561	-104.9763514	39.7074715
-1896	1910	1911	0.0495320112775386	0.0495320112775386	-104.9757282	39.7074937	-104.9751493	39.7074845
-1897	1911	1520	0.0493945814205325	0.0493945814205325	-104.9751493	39.7074845	-104.9745719	39.7074811
-1898	1520	1912	0.0533971088216985	0.0533971088216985	-104.9745719	39.7074811	-104.9739477	39.707479
-1899	1912	1913	0.0492909868241652	0.0492909868241652	-104.9739477	39.707479	-104.9733715	39.707477
-1902	1914	1915	0.0940987095228026	0.0940987095228026	-104.972136	39.707488	-104.971036	39.70749
-1903	1915	1916	0.102901306177953	0.102901306177953	-104.971036	39.70749	-104.9698332	39.7075022
-1904	1916	1917	0.099610911557729	0.099610911557729	-104.9698332	39.7075022	-104.9686689	39.7074883
-1905	1917	1918	0.102910577647033	0.102910577647033	-104.9686689	39.7074883	-104.9674661	39.7074709
-1906	1918	1919	0.0967734482498666	0.0967734482498666	-104.9674661	39.7074709	-104.966335	39.707486
-1908	1920	1921	0.0462806189179572	0.0462806189179572	-104.9651495	39.7074752	-104.9646085	39.7074783
-1910	1922	1923	0.0456516788886206	0.0456516788886206	-104.9639994	39.7074818	-104.9634658	39.7074881
-1911	1923	1924	0.0505452419126903	0.0505452419126903	-104.9634658	39.7074881	-104.962875	39.707495
-1912	1924	1925	0.0504057374799388	0.0504057374799388	-104.962875	39.707495	-104.9622858	39.7074899
-1913	1925	1926	0.0476340401482501	0.0476340401482501	-104.9622858	39.7074899	-104.961729	39.707485
-1914	1926	1927	0.051053036843087	0.051053036843087	-104.961729	39.707485	-104.9611322	39.7074867
-1915	1927	1928	0.049153971321488	0.049153971321488	-104.9611322	39.7074867	-104.9605576	39.7074884
-1918	1930	1931	0.0561439680866497	0.0561439680866497	-105.0298394	39.7384827	-105.030496	39.7384857
-1919	1931	1932	0.053826281457259	0.053826281457259	-105.030496	39.7384857	-105.0311255	39.7384836
-3034	2965	2966	0.00876223324596343	0.00876223324596343	-105.0235213	39.7584714	-105.0236238	39.7584722
-1920	1932	1933	0.0477206876272752	0.0477206876272752	-105.0311255	39.7384836	-105.0316836	39.7384833
-1923	1935	1936	0.066876205689997	0.066876205689997	-105.0218644	39.7389424	-105.0226443	39.738897
-1924	1937	1938	0.0446617758397252	0.0446617758397252	-105.0260468	39.738001	-105.0265344	39.738145
-1925	1938	1939	0.0840391912235338	0.0840391912235338	-105.0265344	39.738145	-105.0273088	39.7386104
-1926	1939	1940	0.227469383602409	0.227469383602409	-105.0273088	39.7386104	-105.0298414	39.7392366
-1931	1944	1945	0.0952703264542464	0.0952703264542464	-105.0148152	39.7384942	-105.0159294	39.7384943
-1932	1945	1946	0.0974265293580338	0.0974265293580338	-105.0159294	39.7384943	-105.0170684	39.7384706
-1933	1947	1948	0.151605873109213	0.151605873109213	-105.0077504	39.7384638	-105.0095234	39.7384742
-1938	1952	1953	0.109258836266427	0.109258836266427	-104.9402458	39.7146371	-104.9394047	39.7138976
-1939	1953	1954	0.122481399421688	0.122481399421688	-104.9394047	39.7138976	-104.9384863	39.7130525
-1940	1954	1955	0.119684093740802	0.119684093740802	-104.9384863	39.7130525	-104.9375707	39.7122386
-1943	1957	1958	0.204446635842756	0.204446635842756	-104.9292853	39.7085296	-104.9269593	39.708107
-1944	1958	1959	0.0997279110592744	0.0997279110592744	-104.9269593	39.708107	-104.9258263	39.7078957
-1945	1959	1960	1.05168738215655	1.05168738215655	-104.9258263	39.7078957	-104.9147112	39.7038545
-1946	1960	1961	1.71048983577162	1.71048983577162	-104.9147112	39.7038545	-104.8973332	39.6962481
-1947	1962	1963	2.33567129984142	2.33567129984142	-104.884649	39.743794	-104.9119671	39.7437801
-1948	1963	1964	1.08148581800227	1.08148581800227	-104.9119671	39.7437801	-104.9246161	39.743742
-1950	1965	1966	0.103934061554546	0.103934061554546	-104.925792	39.7437354	-104.9270076	39.7437306
-1951	1966	1967	0.0454999873171455	0.0454999873171455	-104.9270076	39.7437306	-104.9275397	39.743724
-1952	1967	1968	0.0964089929828049	0.0964089929828049	-104.9275397	39.743724	-104.9286673	39.7437222
-1953	1968	1969	0.125489170754965	0.125489170754965	-104.9286673	39.7437222	-104.930135	39.7437288
-1954	1969	1972	0.165851140560008	0.165851140560008	-104.930135	39.7437288	-104.9320748	39.7437288
-1955	1972	1973	0.145299005046435	0.145299005046435	-104.9320748	39.7437288	-104.9337742	39.7437354
-1956	1973	1974	0.145772913358701	0.145772913358701	-104.9337742	39.7437354	-104.9354791	39.743724
-1957	1974	1975	0.149974913959851	0.149974913959851	-104.9354791	39.743724	-104.9372332	39.7437288
-1958	1975	1976	0.145057930633755	0.145057930633755	-104.9372332	39.7437288	-104.9389295	39.7437042
-1959	1976	1977	0.143477867614704	0.143477867614704	-104.9389295	39.7437042	-104.9406062	39.7437573
-1961	1978	420	0.0932140793920545	0.0932140793920545	-104.9407693	39.7437639	-104.9418594	39.7437507
-1963	1963	1979	1.08603450886527	1.08603450886527	-104.9119671	39.7437801	-104.924659	39.7433856
-1964	1979	1980	0.0983329965983175	0.0983329965983175	-104.924659	39.7433856	-104.9258091	39.7433856
-1965	1980	1981	0.0917353737473226	0.0917353737473226	-104.9258091	39.7433856	-104.926882	39.743379
-1966	1981	1982	0.055771341470748	0.055771341470748	-104.926882	39.743379	-104.9275343	39.743379
-1967	1982	1983	0.0968737393586206	0.0968737393586206	-104.9275343	39.743379	-104.9286673	39.7433856
-1968	1983	1984	0.0954710209286709	0.0954710209286709	-104.9286673	39.7433856	-104.9297839	39.7433797
-1969	1984	1985	0.0293519873253464	0.0293519873253464	-104.9297839	39.7433797	-104.9301272	39.7433797
-1970	1985	1986	0.0704554284720801	0.0704554284720801	-104.9301272	39.7433797	-104.9309512	39.7433863
-1971	1986	1988	0.095403189447009	0.095403189447009	-104.9309512	39.7433863	-104.932067	39.7433797
-1972	1988	1989	0.146040552740524	0.146040552740524	-104.932067	39.7433797	-104.933775	39.7433929
-1973	1989	1990	0.147511070915923	0.147511070915923	-104.933775	39.7433929	-104.9355002	39.7433797
-1974	1990	1991	0.147511070914708	0.147511070914708	-104.9355002	39.7433797	-104.9372254	39.7433929
-1975	1991	1992	0.145306416846094	0.145306416846094	-104.9372254	39.7433929	-104.9389249	39.7433929
-1976	1992	1993	0.143786568306041	0.143786568306041	-104.9389249	39.7433929	-104.9405891	39.7435791
-1977	1993	1994	0.0151225768059817	0.0151225768059817	-104.9405891	39.7435791	-104.9407521	39.7436319
-1978	1994	420	0.0955903616259906	0.0955903616259906	-104.9407521	39.7436319	-104.9418594	39.7437507
-1980	1995	157	0.328733376766768	0.328733376766768	-105.0136437	39.6959725	-105.0126712	39.6931124
-1981	157	1721	0.24955962831592	0.24955962831592	-105.0126712	39.6931124	-105.0127042	39.6908682
-1983	1996	1997	0.475009767293493	0.475009767293493	-105.0128845	39.6882924	-105.0119747	39.6840783
-1984	1998	1999	0.203988417966153	0.203988417966153	-104.935045	39.7474085	-104.9350364	39.749243
-1985	1999	2000	0.200819821039785	0.200819821039785	-104.9350364	39.749243	-104.9350463	39.751049
-1986	2000	794	0.198875475027904	0.198875475027904	-104.9350463	39.751049	-104.9350328	39.7528375
-1987	794	2001	0.203566311480143	0.203566311480143	-104.9350328	39.7528375	-104.9350229	39.7546682
-1988	2001	2002	0.201451879254481	0.201451879254481	-104.9350229	39.7546682	-104.9350242	39.7564799
-1989	2002	2003	0.203252240244887	0.203252240244887	-104.9350242	39.7564799	-104.9349898	39.7583076
-1990	2003	2004	0.204825535738971	0.204825535738971	-104.9349898	39.7583076	-104.9350741	39.7601485
-1991	2004	2005	0.188227904196053	0.188227904196053	-104.9350741	39.7601485	-104.9350278	39.7618409
-1992	2005	2006	0.0174353644977756	0.0174353644977756	-104.9350278	39.7618409	-104.9350278	39.7619977
-1994	353	2007	0.251582112428801	0.251582112428801	-104.9345948	39.720897	-104.9345373	39.7231591
-1995	2007	2008	0.132634173204781	0.132634173204781	-104.9345373	39.7231591	-104.9345317	39.7243519
-1996	2008	2009	0.107027307843563	0.107027307843563	-104.9345317	39.7243519	-104.9345766	39.7253138
-1999	2011	646	0.139457974349072	0.139457974349072	-104.9355134	39.7401073	-104.9354861	39.7413613
-2000	646	2012	0.135033465549491	0.135033465549491	-104.9354861	39.7413613	-104.9355048	39.7425756
-2001	2012	1990	0.089412705524254	0.089412705524254	-104.9355048	39.7425756	-104.9355002	39.7433797
-2002	1990	1974	0.0383268944933106	0.0383268944933106	-104.9355002	39.7433797	-104.9354791	39.743724
-2003	1974	2013	0.133766034901227	0.133766034901227	-104.9354791	39.743724	-104.9354979	39.7449269
-2004	2013	2014	0.133581539638141	0.133581539638141	-104.9354979	39.7449269	-104.9355085	39.7461282
-2005	2014	2015	0.142379951799733	0.142379951799733	-104.9355085	39.7461282	-104.9354827	39.7474085
-2007	2016	2017	0.251899237124673	0.251899237124673	-104.9349971	39.720897	-104.9348905	39.7231609
-2008	2017	2018	0.133367826813466	0.133367826813466	-104.9348905	39.7231609	-104.9348857	39.7243603
-2009	2018	2019	0.10602884511386	0.10602884511386	-104.9348857	39.7243603	-104.9348743	39.7253138
-2010	2019	2020	0.0337181930055553	0.0337181930055553	-104.9348743	39.7253138	-104.9349199	39.725615
-2011	2020	2021	0.200388320757191	0.200388320757191	-104.9349199	39.725615	-104.9349346	39.7274171
-2014	2023	2024	0.171565352607288	0.171565352607288	-104.9350998	39.7162443	-104.935134	39.717787
-2016	2025	2026	0.0477258088803687	0.0477258088803687	-104.9916778	39.7726992	-104.9920812	39.772996
-2017	2026	2027	0.0809138557734271	0.0809138557734271	-104.9920812	39.772996	-104.9927506	39.7735106
-2018	2027	2028	0.105296432652635	0.105296432652635	-104.9927506	39.7735106	-104.9936175	39.7741835
-2021	2030	2031	0.0518714690593594	0.0518714690593594	-104.9806366	39.7642349	-104.981068	39.764563
-2023	2032	2033	0.10377665457529	0.10377665457529	-104.9767057	39.7612194	-104.9775611	39.7618817
-2024	2033	2034	0.105027724692891	0.105027724692891	-104.9775611	39.7618817	-104.9784268	39.762552
-2025	2034	2035	0.0547353150471903	0.0547353150471903	-104.9784268	39.762552	-104.978878	39.7629013
-2026	2035	2036	0.0513505470015755	0.0513505470015755	-104.978878	39.7629013	-104.9793013	39.763229
-2027	2036	2037	0.0518915831567366	0.0518915831567366	-104.9793013	39.763229	-104.979729	39.7635602
-2028	2038	2039	0.101144662033058	0.101144662033058	-104.9740667	39.759206	-104.9749143	39.7598407
-2029	2039	2040	0.00469012569566242	0.00469012569566242	-104.9749143	39.7598407	-104.9749522	39.7598712
-2030	2040	2041	0.105219334964384	0.105219334964384	-104.9749522	39.7598712	-104.9758158	39.7605455
-2032	2042	2043	0.0933903014689556	0.0933903014689556	-104.9829001	39.7659839	-104.983686	39.7665674
-2033	2043	559	0.0150758315973471	0.0150758315973471	-104.983686	39.7665674	-104.9838121	39.7666622
-2034	559	2044	0.0636386622186814	0.0636386622186814	-104.9838121	39.7666622	-104.9843229	39.7670786
-2035	2044	2045	0.0177005397698663	0.0177005397698663	-104.9843229	39.7670786	-104.984465	39.7671944
-2039	2048	1918	0.201578926546004	0.201578926546004	-104.9674823	39.7092837	-104.9674661	39.7074709
-2040	1918	2049	0.199006200917286	0.199006200917286	-104.9674661	39.7074709	-104.9675091	39.7056815
-2043	2051	70	0.203396158473628	0.203396158473628	-104.9674661	39.7020628	-104.9674891	39.7002337
-2045	1197	2052	0.0220081346494975	0.0220081346494975	-104.9528791	39.7271293	-104.9528751	39.7273272
-2046	2052	2053	0.200331631924477	0.200331631924477	-104.9528751	39.7273272	-104.9528876	39.7291288
-2047	2053	2054	0.154360922478377	0.154360922478377	-104.9528876	39.7291288	-104.9528899	39.730517
-2048	2054	948	0.176666608936966	0.176666608936966	-104.9528899	39.730517	-104.9528876	39.7321058
-2049	948	2055	0.165719712872644	0.165719712872644	-104.9528876	39.7321058	-104.9529569	39.7335952
-2050	2055	2056	0.169383792792816	0.169383792792816	-104.9529569	39.7335952	-104.9529894	39.7351183
-2052	2057	2058	0.174576187564815	0.174576187564815	-104.9534081	39.7194172	-104.9534054	39.7209872
-2053	2058	2059	0.172745648066703	0.172745648066703	-104.9534054	39.7209872	-104.9534197	39.7225407
-2054	2059	2060	0.176912657229173	0.176912657229173	-104.9534197	39.7225407	-104.9534111	39.7241317
-2055	2060	2061	0.164650081589568	0.164650081589568	-104.9534111	39.7241317	-104.9534241	39.7256124
-2057	2062	746	0.0627806188777907	0.0627806188777907	-104.9530057	39.7758303	-104.9530366	39.7763944
-2059	1564	2063	0.138541795103745	0.138541795103745	-104.9530639	39.7776762	-104.953021	39.7789217
-2060	2063	2064	0.12093608528602	0.12093608528602	-104.953021	39.7789217	-104.953025	39.7800093
-2062	2065	693	0.201596255528806	0.201596255528806	-104.9536131	39.740176	-104.9535885	39.7419889
-2063	693	2066	0.202309385780635	0.202309385780635	-104.9535885	39.7419889	-104.9535799	39.7438083
-2065	2067	2068	0.201208296937256	0.201208296937256	-104.9529898	39.7383752	-104.9529821	39.7401847
-2069	2072	2073	0.141581011374908	0.141581011374908	-104.9530584	39.7738703	-104.9530756	39.7751435
-2072	2075	2076	0.13960716604907	0.13960716604907	-104.9536922	39.7557183	-104.9536836	39.7569738
-2073	2076	2077	0.137352432815083	0.137352432815083	-104.9536836	39.7569738	-104.9536594	39.7582089
-2074	2077	2078	0.139172335676639	0.139172335676639	-104.9536594	39.7582089	-104.953654	39.7594605
-2075	2078	2079	0.137570556837278	0.137570556837278	-104.953654	39.7594605	-104.9536567	39.7606977
-2077	2080	2081	0.124260733003778	0.124260733003778	-104.9536567	39.7607265	-104.953653	39.761844
-2078	2081	2082	0.0143334567754311	0.0143334567754311	-104.953653	39.761844	-104.9536517	39.7619729
-2079	2082	1169	0.140817691182502	0.140817691182502	-104.9536517	39.7619729	-104.9536476	39.7632393
-2080	1169	889	0.136202795453782	0.136202795453782	-104.9536476	39.7632393	-104.9536454	39.7644642
-2081	889	2083	0.140272589797925	0.140272589797925	-104.9536454	39.7644642	-104.9536427	39.7657257
-2082	2083	2084	0.132655733622477	0.132655733622477	-104.9536427	39.7657257	-104.9536401	39.7669187
-2084	2085	2086	0.130758013034065	0.130758013034065	-104.9536649	39.7681113	-104.953735	39.769286
-2085	1055	2087	0.365531347335866	0.365531347335866	-104.9529111	39.7804333	-104.9530315	39.7837193
-2086	2087	2088	0.13568199350655	0.13568199350655	-104.9530315	39.7837193	-104.95304	39.7849395
-2087	2088	2089	0.14074386927803	0.14074386927803	-104.95304	39.7849395	-104.9530155	39.7862051
-2088	2089	2090	0.132744503428598	0.132744503428598	-104.9530155	39.7862051	-104.9530155	39.7873989
-2090	2091	2092	0.0599168224199403	0.0599168224199403	-105.0431866	39.707344	-105.043887	39.707348
-2091	2093	1220	0.0866154902836551	0.0866154902836551	-105.011346	39.7361182	-105.0123588	39.736105
-2093	2095	2096	0.243872573445978	0.243872573445978	-104.9269316	39.7209784	-104.9271953	39.7231622
-2094	2096	2097	0.241082179338788	0.241082179338788	-104.9271953	39.7231622	-104.9271898	39.7253303
-2096	2098	2099	0.174814701889178	0.174814701889178	-104.9269736	39.7162529	-104.9269579	39.717825
-2097	2099	2100	0.175154975379932	0.175154975379932	-104.9269579	39.717825	-104.9269638	39.7194002
-2100	2102	2103	0.114419579517541	0.114419579517541	-104.9269671	39.7801311	-104.9269671	39.7811601
-2101	2103	2104	0.285214999643623	0.285214999643623	-104.9269671	39.7811601	-104.9269661	39.7837251
-2102	2104	2107	0.394315301182406	0.394315301182406	-104.9269661	39.7837251	-104.9273336	39.78726
-2104	333	2108	0.278529398579064	0.278529398579064	-104.9270337	39.7763519	-104.9269854	39.7788565
-2106	1150	1822	0.102734424254821	0.102734424254821	-104.9269717	39.7637905	-104.9269459	39.7647142
-2108	2109	2110	0.202389435684367	0.202389435684367	-104.9269682	39.7655992	-104.927006	39.7674191
-2109	2110	2111	0.203214045748693	0.203214045748693	-104.927006	39.7674191	-104.9269888	39.7692466
-2110	2111	2112	0.241815761631872	0.241815761631872	-104.9269888	39.7692466	-104.9269856	39.7714213
-2111	2112	2113	0.100823640639482	0.100823640639482	-104.9269856	39.7714213	-104.926995	39.772328
-2112	2113	2114	0.00265953685516916	0.00265953685516916	-104.926995	39.772328	-104.9269938	39.7723519
-2114	2115	2116	0.238307263458502	0.238307263458502	-104.9270004	39.7731311	-104.9269816	39.7752742
-2116	2117	2118	0.172019623051487	0.172019623051487	-104.9268915	39.7292726	-104.9268844	39.7308196
-2117	2118	2119	0.0267252812490126	0.0267252812490126	-104.9268844	39.7308196	-104.9268735	39.7310598
-2118	2119	2120	0.200138632498134	0.200138632498134	-104.9268735	39.7310598	-104.9268969	39.7328596
-2119	2120	2121	0.20340922729078	0.20340922729078	-104.9268969	39.7328596	-104.9268925	39.7346889
-2120	2121	2122	0.197749465935997	0.197749465935997	-104.9268925	39.7346889	-104.9268972	39.7364673
-2121	2122	2123	0.20148284791492	0.20148284791492	-104.9268972	39.7364673	-104.9269303	39.7382791
-2122	2123	2124	0.206967663578278	0.206967663578278	-104.9269303	39.7382791	-104.9269046	39.7401403
-2123	2124	688	0.198127359399408	0.198127359399408	-104.9269046	39.7401403	-104.926901	39.7419221
-2124	688	1981	0.162008033573987	0.162008033573987	-104.926901	39.7419221	-104.926882	39.743379
-2127	2127	2128	0.0963587083366664	0.0963587083366664	-104.9275873	39.7620069	-104.9275725	39.7628734
-2128	2128	1149	0.101309363144821	0.101309363144821	-104.9275725	39.7628734	-104.9276154	39.7637839
-2130	2129	2130	0.268413747321973	0.268413747321973	-104.9271924	39.7256294	-104.9271876	39.7280433
-15791	2106	2131	0.0329007751166605	0.0329007751166605	-105.0232102	39.7379438	-105.0228299	39.7378988
-2131	2130	2132	0.135315648859656	0.135315648859656	-104.9271876	39.7280433	-104.9271973	39.7292602
-2133	2133	2134	0.206936888424913	0.206936888424913	-104.9269818	39.7474065	-104.9269439	39.7492673
-2134	2134	2135	0.199680286737687	0.199680286737687	-104.9269439	39.7492673	-104.9270076	39.7510624
-2135	2135	801	0.201106069676904	0.201106069676904	-104.9270076	39.7510624	-104.9269475	39.7528704
-2136	801	2136	0.201743876713814	0.201743876713814	-104.9269475	39.7528704	-104.9269602	39.7546847
-2137	2136	2137	0.208870260631958	0.208870260631958	-104.9269602	39.7546847	-104.9269972	39.7565629
-2138	2137	2138	0.202159360168084	0.202159360168084	-104.9269972	39.7565629	-104.9269287	39.7583802
-2139	2138	2139	0.199627649413879	0.199627649413879	-104.9269287	39.7583802	-104.9269888	39.7601749
-2140	2139	2140	0.186052011799078	0.186052011799078	-104.9269888	39.7601749	-104.9269946	39.7618481
-2142	2141	2142	0.0396569310433899	0.0396569310433899	-105.0086114	39.7398829	-105.008237	39.7400934
-2168	2167	2168	0.189234637777307	0.189234637777307	-105.014692	39.7839198	-105.0147047	39.7856216
-2143	2142	2143	0.0683760552809121	0.0683760552809121	-105.008237	39.7400934	-105.0077357	39.7405725
-2144	2143	2144	0.00806043179372478	0.00806043179372478	-105.0077357	39.7405725	-105.00765	39.7406027
-2145	2144	2145	0.00436074705638217	0.00436074705638217	-105.00765	39.7406027	-105.0076051	39.7406213
-2146	2145	2146	0.00359181344508779	0.00359181344508779	-105.0076051	39.7406213	-105.0075693	39.7406382
-2147	2146	2147	0.00395340009925433	0.00395340009925433	-105.0075693	39.7406382	-105.0075292	39.7406559
-2148	2147	2148	0.136610372293043	0.136610372293043	-105.0075292	39.7406559	-105.0061384	39.7412606
-2149	2148	2149	0.180604844053974	0.180604844053974	-105.0061384	39.7412606	-105.0043355	39.7421069
-2152	2152	2153	0.132023781927159	0.132023781927159	-105.0142702	39.7777735	-105.0142616	39.7789608
-2153	2153	2154	0.135708940609739	0.135708940609739	-105.0142616	39.7789608	-105.0142359	39.7801811
-2154	2154	1415	0.130555983926377	0.130555983926377	-105.0142359	39.7801811	-105.0142444	39.7813552
-2155	1415	1355	0.134241500709378	0.134241500709378	-105.0142444	39.7813552	-105.0142702	39.7825623
-2156	1355	2155	0.0746101236889861	0.0746101236889861	-105.0142702	39.7825623	-105.0142907	39.7832331
-2161	2159	2161	0.133841125283574	0.133841125283574	-105.0144598	39.7572068	-105.0144855	39.7584103
-2162	2161	2162	0.1372260849468	0.1372260849468	-105.0144855	39.7584103	-105.0144815	39.7596444
-2163	2162	2163	0.128741940100472	0.128741940100472	-105.0144815	39.7596444	-105.0144855	39.7608022
-2164	2163	2164	0.135391700615332	0.135391700615332	-105.0144855	39.7608022	-105.0144802	39.7620198
-2169	2168	2169	0.201124079513876	0.201124079513876	-105.0147047	39.7856216	-105.0146868	39.7874303
-2170	2169	2170	0.108103708021473	0.108103708021473	-105.0146868	39.7874303	-105.0146867	39.7884025
-2172	2172	2173	0.13444261016809	0.13444261016809	-105.0146807	39.7692764	-105.0146978	39.7704854
-2173	2173	2174	0.13827137965728	0.13827137965728	-105.0146978	39.7704854	-105.0146935	39.7717289
-2174	2174	2175	0.134068324786893	0.134068324786893	-105.0146935	39.7717289	-105.0146888	39.7729346
-2175	2175	2176	0.133067365005956	0.133067365005956	-105.0146888	39.7729346	-105.014685	39.7741313
-2176	2176	2177	0.135535927176987	0.135535927176987	-105.014685	39.7741313	-105.014681	39.7753502
-2177	2177	2178	0.134471884610529	0.134471884610529	-105.014681	39.7753502	-105.01465	39.7765593
-2180	2180	2181	0.201420608111328	0.201420608111328	-105.0141827	39.72025	-105.0141719	39.7220614
-2182	2182	2183	0.0166632573599522	0.0166632573599522	-105.0158823	39.7291678	-105.0159426	39.7293103
-2183	2183	2184	0.101864448677803	0.101864448677803	-105.0159426	39.7293103	-105.0163101	39.7301817
-2184	2184	2185	0.047789206759145	0.047789206759145	-105.0163101	39.7301817	-105.0164339	39.7306008
-2185	2185	2186	0.0423227378750124	0.0423227378750124	-105.0164339	39.7306008	-105.0164597	39.7309809
-4423	3782	4133	0.154572357311794	0.154572357311794	-104.9505822	39.7291315	-104.9505787	39.7305216
-2186	2186	2187	0.66062410841751	0.66062410841751	-105.0164597	39.7309809	-105.0159723	39.7369102
-2188	2188	1945	0.10637947146537	0.10637947146537	-105.0159468	39.7375377	-105.0159294	39.7384943
-2189	1945	2189	0.148995294788127	0.148995294788127	-105.0159294	39.7384943	-105.0159036	39.7398341
-2211	2212	2213	0.0467155303221573	0.0467155303221573	-104.9792376	39.7337065	-104.9786913	39.7337086
-2190	2189	2190	0.327169136665339	0.327169136665339	-105.0159036	39.7398341	-105.0139689	39.7423726
-2192	2191	2192	0.0188299118027414	0.0188299118027414	-104.9936227	39.759356	-104.9937863	39.7592426
-2193	2192	2193	0.210910851782462	0.210910851782462	-104.9937863	39.7592426	-104.9954278	39.7578265
-2195	2194	2195	0.365278744815015	0.365278744815015	-104.999248	39.7553456	-105.0025939	39.7533024
-2196	2195	2196	0.0130424738912125	0.0130424738912125	-105.0025939	39.7533024	-105.0026791	39.7532051
-2197	2196	2197	0.0449464311286017	0.0449464311286017	-105.0026791	39.7532051	-105.0028674	39.7528277
-2198	2197	2198	0.0030293307914236	0.0030293307914236	-105.0028674	39.7528277	-105.0028654	39.7528005
-2199	2198	2199	0.128682754082238	0.128682754082238	-105.0028654	39.7528005	-105.0029976	39.7516477
-2200	2199	2200	0.110573702095649	0.110573702095649	-105.0029976	39.7516477	-105.0039004	39.7509356
-2202	2203	2204	0.10817464433389	0.10817464433389	-104.9873753	39.7338548	-104.9861103	39.7338618
-2203	2204	2205	0.107622599984834	0.107622599984834	-104.9861103	39.7338618	-104.9848518	39.7338511
-2204	2205	2206	0.108403921870099	0.108403921870099	-104.9848518	39.7338511	-104.9835843	39.7338332
-2205	2206	2207	0.060733439657354	0.060733439657354	-104.9835843	39.7338332	-104.9828811	39.7337565
-2206	2207	2208	0.0534350684854931	0.0534350684854931	-104.9828811	39.7337565	-104.9822597	39.7337058
-2207	2208	2209	0.0529414575701877	0.0529414575701877	-104.9822597	39.7337058	-104.9816406	39.7337091
-2208	2209	2210	0.0527447832774698	0.0527447832774698	-104.9816406	39.7337091	-104.9810238	39.7337124
-2209	2210	2211	0.102434337721347	0.102434337721347	-104.9810238	39.7337124	-104.9798259	39.7337112
-2210	2211	2212	0.0503091444283059	0.0503091444283059	-104.9798259	39.7337112	-104.9792376	39.7337065
-2212	2213	2214	0.0457845256573543	0.0457845256573543	-104.9786913	39.7337086	-104.9781559	39.7337051
-2213	2214	2215	0.0483154919494593	0.0483154919494593	-104.9781559	39.7337051	-104.9775909	39.7337085
-2214	2215	2216	0.0500256719211907	0.0500256719211907	-104.9775909	39.7337085	-104.9770059	39.7337051
-2215	2216	2217	0.0483324272045254	0.0483324272045254	-104.9770059	39.7337051	-104.9764407	39.7337019
-2216	2217	2218	0.0492693454756351	0.0492693454756351	-104.9764407	39.7337019	-104.9758646	39.7336949
-2217	2218	2219	0.0514417765088717	0.0514417765088717	-104.9758646	39.7336949	-104.9752631	39.7336875
-2218	2219	2220	0.0488786158333744	0.0488786158333744	-104.9752631	39.7336875	-104.9746915	39.7336888
-2219	2220	981	0.0498905437062621	0.0498905437062621	-104.9746915	39.7336888	-104.9741082	39.7336985
-2220	981	2221	0.0506165357374516	0.0506165357374516	-104.9741082	39.7336985	-104.9735163	39.7337028
-2221	2221	2222	0.046223636949906	0.046223636949906	-104.9735163	39.7337028	-104.9729758	39.7337087
-2224	2224	2225	0.051453756147013	0.051453756147013	-104.9718055	39.7337106	-104.9712038	39.7337071
-2225	2225	2226	0.0468957891600155	0.0468957891600155	-104.9712038	39.7337071	-104.9706554	39.733704
-2226	2226	2227	0.0492631927304953	0.0492631927304953	-104.9706554	39.733704	-104.9700793	39.733704
-2227	2227	2228	0.0520252151650071	0.0520252151650071	-104.9700793	39.733704	-104.9694709	39.733704
-2228	2228	2229	0.0550486617142997	0.0550486617142997	-104.9694709	39.733704	-104.9688272	39.7337106
-2229	2230	2231	0.0139385553943917	0.0139385553943917	-104.9407521	39.732834	-104.9405891	39.732834
-2230	2231	2232	0.0929550410270359	0.0929550410270359	-104.9405891	39.732834	-104.9395024	39.7328547
-2234	2236	2237	0.0961215858652653	0.0961215858652653	-104.9314966	39.732987	-104.9303867	39.7328502
-2235	2237	2238	0.0993231725885536	0.0993231725885536	-104.9303867	39.7328502	-104.9292252	39.7328524
-19654	10604	10606	0.0711515052063537	0.0711515052063537	-104.988215	39.7066518	-104.9882676	39.7060132
-2236	2238	2239	0.0986901078011995	0.0986901078011995	-104.9292252	39.7328524	-104.9280711	39.7328517
-2237	2239	2120	0.100412717366674	0.100412717366674	-104.9280711	39.7328517	-104.9268969	39.7328596
-2238	2120	2240	0.0994425769829808	0.0994425769829808	-104.9268969	39.7328596	-104.925734	39.7328596
-2239	2240	2241	0.0986741447066025	0.0986741447066025	-104.925734	39.7328596	-104.9245804	39.7328803
-2240	2241	2242	0.196986803845301	0.196986803845301	-104.9245804	39.7328803	-104.9222768	39.732882
-2241	2245	2246	0.0853554831080311	0.0853554831080311	-104.9644966	39.7334712	-104.9634985	39.733462
-2242	2246	1017	0.10642802452306	0.10642802452306	-104.9634985	39.733462	-104.9622539	39.733462
-2243	1017	2247	0.0517185594306615	0.0517185594306615	-104.9622539	39.733462	-104.9616491	39.7334649
-2244	2247	2248	0.0530774886579764	0.0530774886579764	-104.9616491	39.7334649	-104.9610284	39.7334665
-16655	3462	3463	0.083025520087948	0.083025520087948	-104.9862758	39.7399191	-104.9872468	39.7399233
-2245	2248	2249	0.0515725288155829	0.0515725288155829	-104.9610284	39.7334665	-104.9604253	39.7334648
-2246	2249	2250	0.0550106406637853	0.0550106406637853	-104.9604253	39.7334648	-104.959782	39.733462
-2247	2250	2251	0.0492291609495858	0.0492291609495858	-104.959782	39.733462	-104.9592063	39.733462
-2250	2253	2254	0.068064098421736	0.068064098421736	-105.0323128	39.7487906	-105.0323072	39.7481785
-2251	2254	381	0.0653278702953464	0.0653278702953464	-105.0323072	39.7481785	-105.0323033	39.747591
-2253	2255	2256	0.176933367276823	0.176933367276823	-105.0275483	39.7165547	-105.0275483	39.7181459
-2255	2257	1830	0.176665129086282	0.176665129086282	-105.0275587	39.7197559	-105.0275804	39.7213446
-2257	1817	2258	0.0851310356517557	0.0851310356517557	-105.02745	39.7281152	-105.0276461	39.7288658
-2258	2258	2259	0.0498677366751348	0.0498677366751348	-105.0276461	39.7288658	-105.0276357	39.7293142
-2260	2260	2261	0.20430957984894	0.20430957984894	-104.9305261	39.7655817	-104.930525	39.7674191
-2263	2263	2264	0.172785898975569	0.172785898975569	-104.9304775	39.7162632	-104.9304797	39.7178171
-2265	2265	2266	0.17364958356586	0.17364958356586	-104.9304912	39.7194002	-104.9304614	39.7209617
-2266	2266	2267	0.245119251352525	0.245119251352525	-104.9304614	39.7209617	-104.9305167	39.7231657
-2267	2267	2268	0.132589695523512	0.132589695523512	-104.9305167	39.7231657	-104.9305223	39.7243581
-2268	2268	2269	0.106738596174206	0.106738596174206	-104.9305223	39.7243581	-104.9305023	39.7253179
-2269	2269	2270	0.0337285830402062	0.0337285830402062	-104.9305023	39.7253179	-104.9305077	39.7256212
-20279	7555	7554	0.0146999916602211	0.0146999916602211	-105.0451391	39.7751943	-105.0451388	39.7750621
-2270	2270	2271	0.269363966522552	0.269363966522552	-104.9305077	39.7256212	-104.9305276	39.7280436
-2273	2275	684	0.204569111503518	0.204569111503518	-104.9309301	39.7401271	-104.930959	39.7419667
-2274	684	1986	0.157853726642528	0.157853726642528	-104.930959	39.7419667	-104.9309512	39.7433863
-2278	2278	2279	0.207434558661452	0.207434558661452	-104.9304788	39.7474019	-104.9304837	39.7492674
-2279	2279	2280	0.20034839537718	0.20034839537718	-104.9304837	39.7492674	-104.9305316	39.7510688
-2280	2280	798	0.19667070755531	0.19667070755531	-104.9305316	39.7510688	-104.9305352	39.7528375
-2281	798	2281	0.204476797355414	0.204476797355414	-104.9305352	39.7528375	-104.9305302	39.7546764
-2283	2282	2283	0.201226119347201	0.201226119347201	-104.9305543	39.7565508	-104.9305336	39.7583604
-2284	2283	2284	0.201775247020165	0.201775247020165	-104.9305336	39.7583604	-104.9305594	39.7601749
-2287	2286	2287	0.00679684653457476	0.00679684653457476	-105.0028141	39.740161	-105.0028286	39.7402211
-2288	2287	2288	0.00351717235619697	0.00351717235619697	-105.0028286	39.7402211	-105.0028395	39.7402516
-2289	2288	2289	0.00475072672267961	0.00475072672267961	-105.0028395	39.7402516	-105.0028564	39.7402923
-2290	2289	2290	0.085203263947135	0.085203263947135	-105.0028564	39.7402923	-105.0033485	39.7409586
-2292	2291	2292	0.21658567369152	0.21658567369152	-105.0192055	39.7355863	-105.0217377	39.7356319
-2293	2292	2293	0.294285406846423	0.294285406846423	-105.0217377	39.7356319	-105.025179	39.7356649
-2295	1532	2294	0.0895735364116296	0.0895735364116296	-104.9909417	39.7651848	-104.9899657	39.7654782
-2296	2294	2295	0.130472447344756	0.130472447344756	-104.9899657	39.7654782	-104.9885127	39.7658379
-2298	2044	560	0.0834414685220809	0.0834414685220809	-104.9843229	39.7670786	-104.9837994	39.767712
-2299	560	913	0.519257886958262	0.519257886958262	-104.9837994	39.767712	-104.9806193	39.771691
-2300	913	2297	0.14849143076931	0.14849143076931	-104.9806193	39.771691	-104.9797146	39.7728311
-2301	2297	2299	0.276635413291223	0.276635413291223	-104.9797146	39.7728311	-104.9780262	39.7749537
-2356	2345	2346	0.126022029068994	0.126022029068994	-104.9585534	39.7194149	-104.95708	39.7194068
-2302	2299	2300	0.882147486934507	0.882147486934507	-104.9780262	39.7749537	-104.9691692	39.7790284
-2304	2301	2302	0.171837385748798	0.171837385748798	-105.0067097	39.6957792	-105.0087181	39.6957726
-2305	2302	2303	0.168190952055295	0.168190952055295	-105.0087181	39.6957726	-105.0106836	39.695799
-2308	1995	1585	0.0793668846267203	0.0793668846267203	-105.0136437	39.6959725	-105.0145707	39.6959461
-2310	1646	2305	0.0800618116658591	0.0800618116658591	-105.0155663	39.6959857	-105.0165019	39.6959725
-2311	2305	2306	0.0800532572745142	0.0800532572745142	-105.0165019	39.6959725	-105.0174374	39.6959857
-2312	2306	2307	0.0808374839403145	0.0808374839403145	-105.0174374	39.6959857	-105.0183816	39.6959593
-2313	2307	2308	0.0793040216351705	0.0793040216351705	-105.0183816	39.6959593	-105.0193085	39.6959593
-2315	2309	2310	0.0976846110372701	0.0976846110372701	-105.0379252	39.6958338	-105.0390668	39.6958206
-2317	2311	2312	0.131380688058575	0.131380688058575	-105.0112958	39.7314875	-105.0128321	39.7314771
-2318	2312	2313	0.00313000089825153	0.00313000089825153	-105.0128321	39.7314771	-105.0128687	39.7314768
-2319	2313	2157	0.109122831884578	0.109122831884578	-105.0128687	39.7314768	-105.0141188	39.7312798
-2320	2157	2314	0.0470081550211631	0.0470081550211631	-105.0141188	39.7312798	-105.0146392	39.731416
-2321	2314	441	0.0450344666647882	0.0450344666647882	-105.0146392	39.731416	-105.01516	39.7314761
-2326	1614	2317	0.105832922283753	0.105832922283753	-104.9767564	39.7705977	-104.977649	39.7712574
-2327	2317	2319	0.101211119794553	0.101211119794553	-104.977649	39.7712574	-104.9784558	39.7719237
-2328	2319	914	0.105388128978222	0.105388128978222	-104.9784558	39.7719237	-104.9793447	39.7725806
-2351	2100	2341	0.101951720072048	0.101951720072048	-104.9269638	39.7194002	-104.9257718	39.7194039
-2352	2341	2342	0.101030261985598	0.101030261985598	-104.9257718	39.7194039	-104.9245907	39.7194177
-2353	2342	2330	0.0997965680595524	0.0997965680595524	-104.9245907	39.7194177	-104.9234239	39.7194218
-2354	2330	2343	0.101856778567858	0.101856778567858	-104.9234239	39.7194218	-104.922233	39.7194218
-2355	2344	2345	0.0735649917770033	0.0735649917770033	-104.9594135	39.719411	-104.9585534	39.7194149
-2357	2346	2347	0.106673075682264	0.106673075682264	-104.95708	39.7194068	-104.9558328	39.7194027
-2358	2347	2348	0.104262034499471	0.104262034499471	-104.9558328	39.7194027	-104.9546138	39.7194083
-2359	2348	2057	0.103127373430199	0.103127373430199	-104.9546138	39.7194083	-104.9534081	39.7194172
-2360	2057	2350	0.104860273903505	0.104860273903505	-104.9534081	39.7194172	-104.9521821	39.7194221
-2361	2350	2351	0.102072059078566	0.102072059078566	-104.9521821	39.7194221	-104.9509887	39.7194172
-2362	2351	2352	0.10208795508847	0.10208795508847	-104.9509887	39.7194172	-104.9497951	39.7194192
-2363	2352	2353	0.103003886322398	0.103003886322398	-104.9497951	39.7194192	-104.9485908	39.7194151
-2364	2353	2354	0.104842753763622	0.104842753763622	-104.9485908	39.7194151	-104.947365	39.719411
-2365	2354	2355	0.102079170592138	0.102079170592138	-104.947365	39.719411	-104.9461715	39.719411
-2366	2355	2356	0.104157794922069	0.104157794922069	-104.9461715	39.719411	-104.9449537	39.7194089
-2367	2356	2357	0.102771960719463	0.102771960719463	-104.9449537	39.7194089	-104.9437521	39.7194089
-2368	2357	843	0.10323381873133	0.10323381873133	-104.9437521	39.7194089	-104.9425451	39.7194089
-2369	843	2358	0.104166303367793	0.104166303367793	-104.9425451	39.7194089	-104.9413272	39.719407
-2370	2358	2359	0.04678514768012	0.04678514768012	-104.9413272	39.719407	-104.9407802	39.7194048
-2372	2360	2361	0.106536201799638	0.106536201799638	-104.9874759	39.7193464	-104.9862305	39.719364
-2373	2361	2362	0.0524641553188961	0.0524641553188961	-104.9862305	39.719364	-104.9856171	39.719362
-2374	2362	2363	0.0542089866141956	0.0542089866141956	-104.9856171	39.719362	-104.9849833	39.7193599
-2376	964	2364	0.101990510698998	0.101990510698998	-104.9838008	39.7193434	-104.9826087	39.7193208
-2377	2364	2365	0.0991028819964669	0.0991028819964669	-104.9826087	39.7193208	-104.98145	39.7193208
-2378	2365	2366	0.101583146356588	0.101583146356588	-104.98145	39.7193208	-104.9802624	39.7193326
-2379	2366	2367	0.0976663347579885	0.0976663347579885	-104.9802624	39.7193326	-104.9791205	39.719335
-2380	2367	2368	0.137463391512845	0.137463391512845	-104.9791205	39.719335	-104.9775163	39.7194106
-2382	2369	2370	0.0935927888835794	0.0935927888835794	-104.9971141	39.7584573	-104.9971148	39.759299
-2383	2370	2371	0.22137940675351	0.22137940675351	-104.9971148	39.759299	-104.9971055	39.7612899
-2384	93	2372	0.144113051799641	0.144113051799641	-104.9560723	39.7002187	-104.9555234	39.6989934
-2386	2373	2374	0.118928753039855	0.118928753039855	-104.9553043	39.709946	-104.954137	39.710527
-18871	9233	10374	0.171083495652578	0.171083495652578	-104.9861692	39.7001048	-104.9849567	39.6988813
-2387	2374	2375	0.0543464584708682	0.0543464584708682	-104.954137	39.710527	-104.9535019	39.7105138
-2389	2378	2379	0.0407086995566738	0.0407086995566738	-104.9510557	39.7104412	-104.9506866	39.7102101
-2392	2381	2382	0.0375038196347678	0.0375038196347678	-104.9519054	39.7105204	-104.9518797	39.7101837
-2393	2383	2384	0.0259773773232023	0.0259773773232023	-104.9506695	39.7101903	-104.9508926	39.7100318
-2416	2406	2407	0.0997923351013975	0.0997923351013975	-105.0357948	39.7530206	-105.0369621	39.753014
-2417	2407	2408	0.102411248163046	0.102411248163046	-105.0369621	39.753014	-105.03816	39.7530043
-2418	2408	2410	0.102005785733823	0.102005785733823	-105.03816	39.7530043	-105.0393531	39.7530175
-2419	2410	2411	0.0465568279250156	0.0465568279250156	-105.0393531	39.7530175	-105.0398977	39.753016
-2420	2411	1116	0.0498480806250605	0.0498480806250605	-105.0398977	39.753016	-105.0404808	39.7530145
-2421	1116	2412	0.0524212085974951	0.0524212085974951	-105.0404808	39.7530145	-105.041094	39.7530159
-2422	2412	2413	0.00643722349691115	0.00643722349691115	-105.041094	39.7530159	-105.0411693	39.753016
-2423	2413	2414	0.0569639986120168	0.0569639986120168	-105.0411693	39.753016	-105.0416538	39.7526643
-2424	2414	2415	0.054429107165009	0.054429107165009	-105.0416538	39.7526643	-105.0422764	39.7527667
-2426	1254	2416	0.203595366987771	0.203595366987771	-105.0205077	39.7711338	-105.0228899	39.7711377
-2427	2416	2418	0.194946286421225	0.194946286421225	-105.0228899	39.7711377	-105.0251709	39.7711415
-2429	2419	2420	0.10553685574305	0.10553685574305	-104.9960628	39.7705047	-104.9948281	39.7704903
-2430	2420	2421	0.100987191369147	0.100987191369147	-104.9948281	39.7704903	-104.9936465	39.7704869
-2431	2421	2422	0.140456845404627	0.140456845404627	-104.9936465	39.7704869	-104.9920897	39.7708916
-2432	2423	2424	0.132127040761259	0.132127040761259	-105.0299558	39.7706272	-105.0315008	39.7706692
-2433	2424	2425	0.0836330996531634	0.0836330996531634	-105.0315008	39.7706692	-105.0324788	39.7706946
-2434	2425	2426	0.048846065804279	0.048846065804279	-105.0324788	39.7706946	-105.03305	39.7707095
-2435	2426	2427	0.133578105271454	0.133578105271454	-105.03305	39.7707095	-105.0346118	39.7707555
-2437	2428	2429	0.0517867804859422	0.0517867804859422	-105.0346033	39.7713295	-105.0352091	39.7713194
-2438	2429	2430	0.0498462274807045	0.0498462274807045	-105.0352091	39.7713194	-105.0357922	39.7713097
-2439	2430	2431	0.0505796838521555	0.0505796838521555	-105.0357922	39.7713097	-105.0363839	39.7713006
-2440	2431	2432	0.04930585188023	0.04930585188023	-105.0363839	39.7713006	-105.0369607	39.7712918
-2441	2432	2433	0.0511391992663707	0.0511391992663707	-105.0369607	39.7712918	-105.0375589	39.771281
-2442	2433	2434	0.049421053488602	0.049421053488602	-105.0375589	39.771281	-105.038137	39.7712705
-2444	2435	2436	0.0499548965774192	0.0499548965774192	-105.0387198	39.7712682	-105.0393043	39.7712659
-2446	2437	2438	0.0498278119665032	0.0498278119665032	-105.0393174	39.7709233	-105.0399004	39.7709268
-2447	2438	1131	0.0475201423687532	0.0475201423687532	-105.0399004	39.7709268	-105.0404564	39.7709301
-2448	1131	2440	0.0499034161165238	0.0499034161165238	-105.0404564	39.7709301	-105.0410403	39.7709314
-2449	2440	2441	0.0519460604074748	0.0519460604074748	-105.0410403	39.7709314	-105.0416481	39.7709328
-2450	2441	2442	0.103666385736129	0.103666385736129	-105.0416481	39.7709328	-105.042861	39.7709424
-2451	2442	2443	0.0495636449318867	0.0495636449318867	-105.042861	39.7709424	-105.0434409	39.7709381
-2452	2443	2444	0.0508868110117968	0.0508868110117968	-105.0434409	39.7709381	-105.0440363	39.7709406
-2454	2445	2446	0.0992414144632343	0.0992414144632343	-104.9982447	39.770496	-104.9994058	39.7705066
-2455	2446	2447	0.0995661619141735	0.0995661619141735	-104.9994058	39.7705066	-105.0005707	39.770496
-2456	2447	2448	0.102918667647187	0.102918667647187	-105.0005707	39.770496	-105.0017747	39.7705132
-2457	2448	2449	0.103317708000917	0.103317708000917	-105.0017747	39.7705132	-105.0029835	39.7705237
-2458	2449	714	0.103614639817309	0.103614639817309	-105.0029835	39.7705237	-105.0041958	39.7705323
-2460	2450	2451	0.0843633084104915	0.0843633084104915	-105.0054661	39.7705389	-105.0064532	39.7705389
-2462	2452	2453	0.133209824518529	0.133209824518529	-105.0080496	39.7705191	-105.0096081	39.7705035
-2463	2453	2454	0.136026824487267	0.136026824487267	-105.0096081	39.7705035	-105.0111996	39.7705167
-2464	2454	1228	0.0997640460624544	0.0997640460624544	-105.0111996	39.7705167	-105.0123662	39.7704857
-2466	2455	2173	0.100670279604477	0.100670279604477	-105.0135199	39.7704859	-105.0146978	39.7704854
-2467	2173	2456	0.101681998391895	0.101681998391895	-105.0146978	39.7704854	-105.015887	39.7705129
-2468	2456	2457	0.135717601546705	0.135717601546705	-105.015887	39.7705129	-105.0174746	39.7704864
-2469	2457	2458	0.125216072912334	0.125216072912334	-105.0174746	39.7704864	-105.0189397	39.770486
-2470	2458	1253	0.13515574813911	0.13515574813911	-105.0189397	39.770486	-105.0205211	39.7704859
-2472	1811	2459	0.0528114155967436	0.0528114155967436	-105.0082177	39.7529013	-105.0078361	39.7532748
-2474	489	2460	0.0154146680516237	0.0154146680516237	-104.9407865	39.7473869	-104.9406062	39.7473869
-2475	2460	2461	0.0956622199995578	0.0956622199995578	-104.9406062	39.7473869	-104.9394874	39.7473999
-2476	2461	2462	0.050324686032827	0.050324686032827	-104.9394874	39.7473999	-104.9388988	39.7473953
-2477	2462	2463	0.0440541436649478	0.0440541436649478	-104.9388988	39.7473953	-104.9383838	39.7474085
-2478	2463	2464	0.09025955144498	0.09025955144498	-104.9383838	39.7474085	-104.9373281	39.7474151
-2479	2464	2465	0.00954118829962817	0.00954118829962817	-104.9373281	39.7474151	-104.9372165	39.7474151
-2480	2465	2466	0.0924623221003645	0.0924623221003645	-104.9372165	39.7474151	-104.936135	39.7474151
-2481	2466	2015	0.0557729059183765	0.0557729059183765	-104.936135	39.7474151	-104.9354827	39.7474085
-2483	1998	2467	0.0939242873690555	0.0939242873690555	-104.935045	39.7474085	-104.9339464	39.7474085
-2485	2468	2469	0.0807187230923558	0.0807187230923558	-104.9337661	39.7474085	-104.932822	39.7474019
-2486	2469	2470	0.0660886283093114	0.0660886283093114	-104.932822	39.7474019	-104.932049	39.7473981
-2487	2470	2471	0.0307524582434291	0.0307524582434291	-104.932049	39.7473981	-104.9316893	39.7473987
-2488	2471	2277	0.0631719504961159	0.0631719504961159	-104.9316893	39.7473987	-104.9309504	39.7473981
-2489	2277	2278	0.040321437937915	0.040321437937915	-104.9309504	39.7473981	-104.9304788	39.7474019
-2490	2278	2472	0.0579924273198359	0.0579924273198359	-104.9304788	39.7474019	-104.9298007	39.7473887
-2491	2472	2473	0.039564008523498	0.039564008523498	-104.9298007	39.7473887	-104.9293385	39.7474063
-2492	2473	2474	0.0566191459993118	0.0566191459993118	-104.9293385	39.7474063	-104.9286764	39.7473953
-2493	2474	2475	0.0461657995077916	0.0461657995077916	-104.9286764	39.7473953	-104.9281369	39.7474129
-2494	2475	2476	0.0573841993244499	0.0573841993244499	-104.9281369	39.7474129	-104.9274657	39.7474113
-2495	2476	2133	0.0413742441677564	0.0413742441677564	-104.9274657	39.7474113	-104.9269818	39.7474065
-2496	2133	2477	0.100557820130683	0.100557820130683	-104.9269818	39.7474065	-104.9258057	39.7474177
-2497	2477	2478	0.100232094382669	0.100232094382669	-104.9258057	39.7474177	-104.924634	39.747387
-2523	1412	1352	0.126262872161581	0.126262872161581	-105.0095538	39.781386	-105.0095743	39.7825214
-2498	2478	2479	3.80416722159948	3.80416722159948	-104.924634	39.747387	-104.880138	39.747428
-17380	5747	2721	0.292296181002999	0.292296181002999	-104.9676964	39.6930969	-104.9693989	39.6953759
-2500	2481	2482	0.133762433378551	0.133762433378551	-105.0095495	39.7794028	-105.0111147	39.7793892
-2502	2483	2484	0.132763004680832	0.132763004680832	-105.0111233	39.7789604	-105.0126768	39.7789736
-2503	2484	2153	0.135437121880425	0.135437121880425	-105.0126768	39.7789736	-105.0142616	39.7789608
-2506	2486	2487	0.0976687527368442	0.0976687527368442	-105.0170359	39.7789761	-105.0181786	39.7789934
-2507	2487	2488	0.100497620432408	0.100497620432408	-105.0181786	39.7789934	-105.0193545	39.7790066
-2508	2488	1263	0.0968234302487817	0.0968234302487817	-105.0193545	39.7790066	-105.0204874	39.7790198
-2510	2489	2490	0.129998303918767	0.129998303918767	-105.0252567	39.7790442	-105.0267778	39.7790603
-2511	2490	2491	0.131427328920895	0.131427328920895	-105.0267778	39.7790603	-105.0283152	39.7790924
-2512	2491	2492	0.134959393077107	0.134959393077107	-105.0283152	39.7790924	-105.0298945	39.7790924
-2513	2492	2493	0.13352181172892	0.13352181172892	-105.0298945	39.7790924	-105.0314566	39.7791188
-2514	2493	2494	0.134977098269894	0.134977098269894	-105.0314566	39.7791188	-105.0330359	39.7791385
-2515	2494	2495	0.133660770711518	0.133660770711518	-105.0330359	39.7791385	-105.0346	39.7791414
-2517	2496	1452	0.127643758305543	0.127643758305543	-105.0026756	39.7039481	-105.003594	39.7030434
-2519	2497	2498	0.181370133617083	0.181370133617083	-105.0102009	39.7838273	-105.0101988	39.7854584
-2521	2481	2499	0.0828768372746742	0.0828768372746742	-105.0095495	39.7794028	-105.0095409	39.7801481
-2522	2499	1412	0.137652613646732	0.137652613646732	-105.0095409	39.7801481	-105.0095538	39.781386
-2524	1352	2502	0.0676943813373141	0.0676943813373141	-105.0095743	39.7825214	-105.0095013	39.7831276
-2526	2503	2504	0.133817315449894	0.133817315449894	-105.010138	39.772934	-105.0100035	39.774133
-2527	2504	2505	0.135673996947998	0.135673996947998	-105.0100035	39.774133	-105.0100464	39.7753527
-2528	2505	2506	0.131966049224978	0.131966049224978	-105.0100464	39.7753527	-105.0099863	39.7765386
-2529	2506	2507	0.147529903316466	0.147529903316466	-105.0099863	39.7765386	-105.0105528	39.7777919
-2530	2507	2508	0.139391603159038	0.139391603159038	-105.0105528	39.7777919	-105.0105184	39.7790452
-16296	2509	2510	0.0284493842376544	0.0284493842376544	-104.9707856	39.6972952	-104.9709885	39.6970925
-2532	2511	2512	0.0269759988952267	0.0269759988952267	-105.0096048	39.7617977	-105.0096039	39.7620403
-2533	2512	2513	0.0303785309203703	0.0303785309203703	-105.0096039	39.7620403	-105.0096031	39.7623135
-2534	2513	2514	0.100988065805353	0.100988065805353	-105.0096031	39.7623135	-105.0096079	39.7632217
-2535	2514	2515	0.134258813820628	0.134258813820628	-105.0096079	39.7632217	-105.0095992	39.7644291
-2536	2515	2516	0.1356600895436	0.1356600895436	-105.0095992	39.7644291	-105.0096084	39.7656491
-2537	2516	2517	0.13329676442141	0.13329676442141	-105.0096084	39.7656491	-105.0096344	39.7668477
-2538	2517	1672	0.132852712666159	0.132852712666159	-105.0096344	39.7668477	-105.0096516	39.7680424
-2539	1672	2518	0.137264898504848	0.137264898504848	-105.0096516	39.7680424	-105.0096081	39.7692764
-2540	2518	2453	0.136447294484888	0.136447294484888	-105.0096081	39.7692764	-105.0096081	39.7705035
-2541	2453	2519	0.136891385699314	0.136891385699314	-105.0096081	39.7705035	-105.0097234	39.7717314
-2542	2519	2520	0.134024921907499	0.134024921907499	-105.0097234	39.7717314	-105.0096182	39.772934
-2544	2521	2522	0.0902887501429021	0.0902887501429021	-105.0101778	39.7862486	-105.0101932	39.7870605
-2545	2522	2523	0.0432770654501463	0.0432770654501463	-105.0101932	39.7870605	-105.0101932	39.7874497
-2546	2523	2524	0.0452800647802491	0.0452800647802491	-105.0101932	39.7874497	-105.0101975	39.7878569
-2547	2524	2525	0.0887962039212883	0.0887962039212883	-105.0101975	39.7878569	-105.0101844	39.7886554
-2549	2526	2527	0.14861247431244	0.14861247431244	-105.0103699	39.7355479	-105.0103656	39.7368844
-2550	2527	2528	0.177718576341635	0.177718576341635	-105.0103656	39.7368844	-105.010328	39.7384824
-2552	2529	2530	0.0550007858390758	0.0550007858390758	-105.0298418	39.737929	-105.0304849	39.7379392
-2553	2530	2531	0.0537231597686698	0.0537231597686698	-105.0304849	39.7379392	-105.0311131	39.7379476
-2557	254	1937	0.0763145446596447	0.0763145446596447	-105.0251543	39.7380028	-105.0260468	39.738001
-2562	2536	2537	0.0969383510155091	0.0969383510155091	-104.9938854	39.7870276	-104.994984	39.7872452
-2564	2523	2538	0.041595541767366	0.041595541767366	-105.0101932	39.7874497	-105.01068	39.7874523
-2565	2538	2539	0.0446801019224323	0.0446801019224323	-105.01068	39.7874523	-105.0112029	39.787455
-2567	2540	2541	0.0535606711091096	0.0535606711091096	-105.0345536	39.7874035	-105.0351796	39.7874285
-2568	2541	2542	0.0510376050613383	0.0510376050613383	-105.0351796	39.7874285	-105.0357769	39.7874319
-2569	2542	2543	0.048208042370787	0.048208042370787	-105.0357769	39.7874319	-105.0363411	39.7874312
-2570	2543	2544	0.0495068215823226	0.0495068215823226	-105.0363411	39.7874312	-105.0369205	39.7874304
-2571	2544	2545	0.0497291777137453	0.0497291777137453	-105.0369205	39.7874304	-105.0375025	39.7874319
-2572	2545	2546	0.0482680412228731	0.0482680412228731	-105.0375025	39.7874319	-105.0380674	39.7874333
-2573	2546	2547	0.0511986246623993	0.0511986246623993	-105.0380674	39.7874333	-105.0386666	39.7874341
-2574	2547	2548	0.0481311400848056	0.0481311400848056	-105.0386666	39.7874341	-105.0392299	39.7874348
-2575	2548	2549	0.05133533567668	0.05133533567668	-105.0392299	39.7874348	-105.0398307	39.787434
-2576	2549	1090	0.0473365047010202	0.0473365047010202	-105.0398307	39.787434	-105.0403847	39.7874333
-2578	2550	2551	0.0490112208554607	0.0490112208554607	-105.0409813	39.787434	-105.0415549	39.7874347
-2579	2551	2552	0.0504551815276218	0.0504551815276218	-105.0415549	39.7874347	-105.0421454	39.7874345
-2580	2552	2553	0.0492845875119232	0.0492845875119232	-105.0421454	39.7874345	-105.0427222	39.7874343
-2581	2553	2554	0.0515497460521136	0.0515497460521136	-105.0427222	39.7874343	-105.0433255	39.7874316
-2582	2554	2555	0.0526862102053863	0.0526862102053863	-105.0433255	39.7874316	-105.0439421	39.7874288
-2583	2555	2556	0.0982237295878	0.0982237295878	-105.0439421	39.7874288	-105.0450916	39.78742
-2584	2556	2557	0.264254691363992	0.264254691363992	-105.0450916	39.78742	-105.0481811	39.787528
-2585	1004	2558	0.099742520234474	0.099742520234474	-104.9875698	39.7873956	-104.9887371	39.787389
-2588	2560	1078	0.149639182772472	0.149639182772472	-105.0064215	39.7862585	-105.0081209	39.7865836
-2589	1078	2522	0.184839011544187	0.184839011544187	-105.0081209	39.7865836	-105.0101932	39.7870605
-2591	1484	2561	0.33893453481304	0.33893453481304	-104.99246	39.6948099	-104.9942282	39.6920823
-2592	2561	2562	0.36930331062994	0.36930331062994	-104.9942282	39.6920823	-104.9965885	39.6893017
-2594	2563	2295	0.235151876914131	0.235151876914131	-104.9865077	39.7643898	-104.9885127	39.7658379
-2596	2141	2564	0.0808696846181639	0.0808696846181639	-105.0086114	39.7398829	-105.0095126	39.7396622
-2628	2589	2590	0.046646895086832	0.046646895086832	-105.0367321	39.7229406	-105.0372775	39.7229371
-2597	2564	1224	0.24032404212478	0.24032404212478	-105.0095126	39.7396622	-105.0123175	39.7395238
-2600	2373	2567	0.1712601795962	0.1712601795962	-104.9553043	39.709946	-104.9536478	39.709081
-2601	2567	2568	0.00945648555666562	0.00945648555666562	-104.9536478	39.709081	-104.9535373	39.7090785
-2603	2565	2569	0.0807956808253844	0.0807956808253844	-104.9525578	39.7090414	-104.9516163	39.7090994
-2604	2569	2570	0.076951583144574	0.076951583144574	-104.9516163	39.7090994	-104.950721	39.7091668
-2605	2570	2571	0.0476131935554626	0.0476131935554626	-104.950721	39.7091668	-104.9505579	39.7095762
-2607	2572	2568	0.0312593605711727	0.0312593605711727	-104.9535019	39.7093583	-104.9535373	39.7090785
-2609	2569	2573	0.0486149705677772	0.0486149705677772	-104.9516163	39.7090994	-104.9516136	39.7095366
-2610	2570	2574	0.0674260333743846	0.0674260333743846	-104.950721	39.7091668	-104.949965	39.7089952
-2612	2567	2575	0.0505261001159507	0.0505261001159507	-104.9536478	39.709081	-104.953694	39.708628
-2615	2577	2578	0.10424034664628	0.10424034664628	-105.0288186	39.7229124	-105.0300374	39.722919
-2616	2578	2579	0.103512640883379	0.103512640883379	-105.0300374	39.722919	-105.0312476	39.7229322
-2617	2579	1398	0.105102630546257	0.105102630546257	-105.0312476	39.7229322	-105.0324765	39.7229279
-2618	1398	2580	0.0531367598624707	0.0531367598624707	-105.0324765	39.7229279	-105.0330978	39.7229268
-2619	2580	2581	0.0517085263170068	0.0517085263170068	-105.0330978	39.7229268	-105.0337024	39.7229256
-2620	2581	2582	0.0723991341895349	0.0723991341895349	-105.0337024	39.7229256	-105.0345489	39.7229308
-2621	2582	2583	0.0331676268132885	0.0331676268132885	-105.0345489	39.7229308	-105.0349367	39.7229332
-2622	2583	2584	0.0138525911142565	0.0138525911142565	-105.0349367	39.7229332	-105.0350986	39.7229295
-2623	2584	2585	0.037416228202987	0.037416228202987	-105.0350986	39.7229295	-105.035536	39.7229363
-2624	2585	2586	0.00994286750486891	0.00994286750486891	-105.035536	39.7229363	-105.0356522	39.7229391
-2625	2586	2587	0.040254104254433	0.040254104254433	-105.0356522	39.7229391	-105.0361228	39.7229454
-2629	2590	2591	0.00335375549834044	0.00335375549834044	-105.0372775	39.7229371	-105.0373167	39.7229363
-2630	2591	2592	0.0463774647105825	0.0463774647105825	-105.0373167	39.7229363	-105.0378588	39.7229259
-2631	2592	2593	0.00549997045042586	0.00549997045042586	-105.0378588	39.7229259	-105.0379231	39.7229267
-2632	2593	2594	0.0383542392436341	0.0383542392436341	-105.0379231	39.7229267	-105.0383715	39.7229322
-2634	2595	2596	0.0344869484873441	0.0344869484873441	-105.038507	39.7229353	-105.0389102	39.7229396
-2635	2596	2597	0.0176627396467139	0.0176627396467139	-105.0389102	39.7229396	-105.0391167	39.7229419
-2636	2597	2598	0.0280292044334563	0.0280292044334563	-105.0391167	39.7229419	-105.0394444	39.7229454
-2637	2598	2599	0.0242403080070769	0.0242403080070769	-105.0394444	39.7229454	-105.0397277	39.722952
-2638	2599	1569	0.0218944112855232	0.0218944112855232	-105.0397277	39.722952	-105.0399837	39.7229516
-2639	1569	2600	0.0286200762867591	0.0286200762867591	-105.0399837	39.7229516	-105.0403183	39.7229556
-2640	2600	1094	0.018347539243156	0.018347539243156	-105.0403183	39.7229556	-105.0405328	39.7229583
-2642	1110	2601	0.0142742072830798	0.0142742072830798	-105.0409158	39.7229588	-105.0410827	39.7229583
-2643	2601	2602	0.0369383896439539	0.0369383896439539	-105.0410827	39.7229583	-105.0415146	39.7229572
-2644	2602	2603	0.00917687822572764	0.00917687822572764	-105.0415146	39.7229572	-105.0416219	39.7229569
-2645	2603	2604	0.0430608643022986	0.0430608643022986	-105.0416219	39.7229569	-105.0421253	39.7229642
-2646	2604	2605	0.00238679099543715	0.00238679099543715	-105.0421253	39.7229642	-105.0421532	39.7229647
-2647	2605	2606	0.0472847267591164	0.0472847267591164	-105.0421532	39.7229647	-105.042706	39.7229718
-2648	2606	2607	0.0508445190476207	0.0508445190476207	-105.042706	39.7229718	-105.0433005	39.7229718
-2649	2607	2608	0.00234361810734104	0.00234361810734104	-105.0433005	39.7229718	-105.0433279	39.7229721
-2650	2608	2609	0.0517900277245267	0.0517900277245267	-105.0433279	39.7229721	-105.0439334	39.7229784
-2652	2610	2611	0.145180979465517	0.145180979465517	-104.9874808	39.7225308	-104.9891783	39.722537
-2674	2632	2634	0.599531015097949	0.599531015097949	-105.0450779	39.7221456	-105.0520873	39.7222126
-2675	2635	2181	0.0871692653780363	0.0871692653780363	-105.0131527	39.7220573	-105.0141719	39.7220614
-2676	2181	2638	0.0863959675292808	0.0863959675292808	-105.0141719	39.7220614	-105.015182	39.7220707
-2679	2640	2641	0.121944822987822	0.121944822987822	-104.9524652	39.7427196	-104.9524082	39.7438154
-2681	2642	2643	0.0194925006650245	0.0194925006650245	-104.9521739	39.7180386	-104.9521735	39.7182139
-2682	2643	2350	0.134347723988409	0.134347723988409	-104.9521735	39.7182139	-104.9521821	39.7194221
-2683	2350	2644	0.173564798460366	0.173564798460366	-104.9521821	39.7194221	-104.9521876	39.720983
-2684	2644	2645	0.174686152075606	0.174686152075606	-104.9521876	39.720983	-104.9522095	39.7225539
-2685	2645	2646	0.175389969986131	0.175389969986131	-104.9522095	39.7225539	-104.9522198	39.7241312
-2688	2648	747	0.0612580153194998	0.0612580153194998	-104.9519414	39.7758435	-104.9519449	39.7763944
-2689	747	1565	0.142756107755667	0.142756107755667	-104.9519449	39.7763944	-104.9519323	39.7776782
-2690	1565	2649	0.138016127389502	0.138016127389502	-104.9519323	39.7776782	-104.9519262	39.7789194
-2691	2649	2650	0.12023627946696	0.12023627946696	-104.9519262	39.7789194	-104.9519199	39.7800007
-2693	2651	694	0.200802439501944	0.200802439501944	-104.952446	39.7401771	-104.9524269	39.7419829
-2695	2652	2653	0.127019992895419	0.127019992895419	-104.951864	39.7807829	-104.9518556	39.7819252
-2696	2653	2654	0.201028199806741	0.201028199806741	-104.9518556	39.7819252	-104.9519157	39.7837325
-2697	2654	2655	0.134212276460076	0.134212276460076	-104.9519157	39.7837325	-104.9519157	39.7849395
-2698	2655	2656	0.140083368586782	0.140083368586782	-104.9519157	39.7849395	-104.9519157	39.7861993
-2699	2656	2657	0.13046105136647	0.13046105136647	-104.9519157	39.7861993	-104.9518997	39.7873725
-2702	2633	2659	0.199675824720705	0.199675824720705	-104.9517199	39.7273329	-104.9517329	39.7291286
-2704	2660	949	0.174693421852154	0.174693421852154	-104.9517031	39.7305282	-104.9517203	39.7320992
-2705	949	2661	0.165148304595761	0.165148304595761	-104.9517203	39.7320992	-104.9517288	39.7335844
-2706	2661	2662	0.173966950291824	0.173966950291824	-104.9517288	39.7335844	-104.9516945	39.7351487
-2707	2662	2663	0.184218102738583	0.184218102738583	-104.9516945	39.7351487	-104.9516859	39.7368054
-2708	2663	2664	0.172496811774092	0.172496811774092	-104.9516859	39.7368054	-104.9516835	39.7383567
-2710	2665	2666	0.394651095737645	0.394651095737645	-104.9523031	39.7873791	-104.9522001	39.7909274
-2711	2667	2668	0.201414903082426	0.201414903082426	-104.9517882	39.7383629	-104.9518287	39.740174
-17301	8745	4260	0.201420130125937	0.201420130125937	-104.9622978	39.6947699	-104.9623073	39.6965813
-2713	2669	2388	0.109456559825348	0.109456559825348	-104.9519288	39.7728936	-104.9519586	39.7738777
-2714	2388	2670	0.140828374595316	0.140828374595316	-104.9519586	39.7738777	-104.9519586	39.7751442
-2717	2672	2673	0.139177577172101	0.139177577172101	-104.9524477	39.7557162	-104.9524149	39.7569676
-2718	2673	2674	0.137352749762486	0.137352749762486	-104.9524149	39.7569676	-104.9524283	39.7582028
-2719	2674	2675	0.139830667816654	0.139830667816654	-104.9524283	39.7582028	-104.9524391	39.7594603
-2720	2675	2676	0.136669684605715	0.136669684605715	-104.9524391	39.7594603	-104.9524392	39.7606894
-2722	2677	2678	0.12447911414286	0.12447911414286	-104.9524392	39.7607246	-104.9524232	39.761844
-2750	2704	2705	0.0292446267270126	0.0292446267270126	-105.0229197	39.7608329	-105.022918	39.7610959
-2751	2705	2706	0.00658282845173238	0.00658282845173238	-105.022918	39.7610959	-105.0229176	39.7611551
-2752	2706	2707	0.0151449443945988	0.0151449443945988	-105.0229176	39.7611551	-105.0229167	39.7612913
-2753	2707	2708	0.0714770438658631	0.0714770438658631	-105.0229167	39.7612913	-105.0229124	39.7619341
-2754	2708	2709	0.00822853556213401	0.00822853556213401	-105.0229124	39.7619341	-105.0229119	39.7620081
-2756	2710	8	0.130042568169854	0.130042568169854	-105.0236301	39.7451745	-105.0236282	39.746344
-2757	8	2711	0.118166571537094	0.118166571537094	-105.0236282	39.746344	-105.0233999	39.7473921
-2759	2712	2713	0.102388493919056	0.102388493919056	-105.0228947	39.7692896	-105.0228923	39.7702104
-2760	2713	2416	0.103111259495513	0.103111259495513	-105.0228923	39.7702104	-105.0228899	39.7711377
-2761	2416	2714	0.100631617654013	0.100631617654013	-105.0228899	39.7711377	-105.0228875	39.7720427
-2764	2716	2717	0.200655449563851	0.200655449563851	-105.0239484	39.7766282	-105.0239636	39.7784327
-2765	2717	2718	0.200753725915124	0.200753725915124	-105.0239636	39.7784327	-105.0239521	39.7802381
-2766	2718	1440	0.196942260224429	0.196942260224429	-105.0239521	39.7802381	-105.0239358	39.7820092
-2767	1440	2719	0.00947384243402213	0.00947384243402213	-105.0239358	39.7820092	-105.0239361	39.7820944
-2768	2719	2720	0.190389032049707	0.190389032049707	-105.0239361	39.7820944	-105.0239436	39.7838066
-2770	2723	2724	0.133138466543617	0.133138466543617	-105.0235985	39.7620059	-105.0236117	39.7632032
-2771	2724	2725	0.135835722389097	0.135835722389097	-105.0236117	39.7632032	-105.0236117	39.7644248
-2772	2725	2726	0.133534041022806	0.133534041022806	-105.0236117	39.7644248	-105.0236131	39.7656257
-2773	2726	2727	0.134234713813183	0.134234713813183	-105.0236131	39.7656257	-105.0236104	39.7668329
-2774	2727	1681	0.134687505819062	0.134687505819062	-105.0236104	39.7668329	-105.0236278	39.7680441
-2775	1681	2728	0.137316317225174	0.137316317225174	-105.0236278	39.7680441	-105.0236198	39.769279
-2777	2729	2730	0.104120921025978	0.104120921025978	-105.0239366	39.7846851	-105.0239665	39.7856212
-2778	2730	2731	0.201486044854047	0.201486044854047	-105.0239665	39.7856212	-105.0239597	39.7874332
-2779	2731	2732	0.409054627036075	0.409054627036075	-105.0239597	39.7874332	-105.0239453	39.7911119
-2780	2733	2734	0.231399786377778	0.231399786377778	-104.9558149	39.7017594	-104.9558008	39.7038404
-2781	2734	2735	0.0901704059113055	0.0901704059113055	-104.9558008	39.7038404	-104.9558537	39.7046503
-2782	2735	2736	0.0825094909725568	0.0825094909725568	-104.9558537	39.7046503	-104.9563257	39.7052974
-2783	2737	2738	0.200363396709187	0.200363396709187	-104.9558324	39.6983924	-104.9558241	39.6965905
-2784	2738	2739	0.20121833925615	0.20121833925615	-104.9558241	39.6965905	-104.9558241	39.6947809
-2785	2739	2740	0.202399438971847	0.202399438971847	-104.9558241	39.6947809	-104.9558357	39.6929607
-2788	2742	2743	0.404396545451488	0.404396545451488	-104.9558447	39.6893365	-104.9558624	39.6856997
-2789	2744	1762	0.0647074290459755	0.0647074290459755	-104.9541587	39.6999377	-104.9546893	39.699523
-2790	1762	2372	0.0925216625359094	0.0925216625359094	-104.9546893	39.699523	-104.9555234	39.6989934
-2791	2372	2745	0.0223137340397398	0.0223137340397398	-104.9555234	39.6989934	-104.9556601	39.6988225
-2792	2745	2737	0.050045237249892	0.050045237249892	-104.9556601	39.6988225	-104.9558324	39.6983924
-2794	2746	2747	0.14840065064165	0.14840065064165	-105.001474	39.6998539	-105.0031992	39.6997152
-2796	2748	2749	0.200822547172327	0.200822547172327	-104.9326658	39.7346911	-104.9326365	39.736497
-2797	2749	2750	0.193145905748916	0.193145905748916	-104.9326365	39.736497	-104.9326406	39.738234
-2821	908	2770	0.128136612557408	0.128136612557408	-104.9331257	39.7644965	-104.9331507	39.7656487
-2824	2261	2772	0.10049786598023	0.10049786598023	-104.930525	39.7674191	-104.9293492	39.7674126
-2825	2772	2773	0.106378037300959	0.106378037300959	-104.9293492	39.7674126	-104.9281046	39.7674191
-2826	2773	2110	0.093897002068377	0.093897002068377	-104.9281046	39.7674191	-104.927006	39.7674191
-2827	2110	2774	0.107389868338328	0.107389868338328	-104.927006	39.7674191	-104.9257496	39.7674291
-2828	2774	2775	0.0994873393877801	0.0994873393877801	-104.9257496	39.7674291	-104.9245856	39.7674323
-2850	2776	2777	0.10879749556538	0.10879749556538	-104.9511832	39.7669218	-104.9499105	39.7669403
-2855	2804	866	0.20027757395038	0.20027757395038	-104.9452104	39.7669339	-104.9428673	39.7669141
-2829	2775	2778	1.00147658782101	1.00147658782101	-104.9245856	39.7674323	-104.9128683	39.7674541
-2830	2779	2780	0.0530172029480301	0.0530172029480301	-104.9733522	39.7669655	-104.9727319	39.7669657
-2832	2781	2782	0.107966324930259	0.107966324930259	-104.9721138	39.7669682	-104.9708506	39.7669659
-2833	2782	2783	0.103296913871679	0.103296913871679	-104.9708506	39.7669659	-104.9696421	39.7669558
-2834	2783	2784	0.105735267915707	0.105735267915707	-104.9696421	39.7669558	-104.968405	39.766956
-2835	2784	2785	0.104367827383757	0.104367827383757	-104.968405	39.766956	-104.9671839	39.7669548
-2836	2785	2786	0.106026097865505	0.106026097865505	-104.9671839	39.7669548	-104.9659434	39.7669568
-2837	2786	2787	0.104661406473263	0.104661406473263	-104.9659434	39.7669568	-104.9647189	39.7669496
-2838	2787	2788	0.109120444986171	0.109120444986171	-104.9647189	39.7669496	-104.9634422	39.7669465
-2842	2790	2791	0.105111335997404	0.105111335997404	-104.9609746	39.7669537	-104.9597448	39.7669537
-2843	2791	2792	0.100650542913524	0.100650542913524	-104.9597448	39.7669537	-104.9585673	39.7669414
-2844	2792	2793	0.105228706955749	0.105228706955749	-104.9585673	39.7669414	-104.9573362	39.7669311
-2845	2793	2794	0.119444969275907	0.119444969275907	-104.9573362	39.7669311	-104.9559387	39.766929
-2846	2794	2795	0.0942235633572651	0.0942235633572651	-104.9559387	39.766929	-104.9548363	39.7669249
-2847	2795	2084	0.102241906689643	0.102241906689643	-104.9548363	39.7669249	-104.9536401	39.7669187
-2848	2084	2796	0.105000278025472	0.105000278025472	-104.9536401	39.7669187	-104.9524116	39.7669187
-2849	2796	2776	0.104992294488636	0.104992294488636	-104.9524116	39.7669187	-104.9511832	39.7669218
-2851	2777	2799	0.102990536508203	0.102990536508203	-104.9499105	39.7669403	-104.9487061	39.7669692
-2852	2799	2802	0.104419262818378	0.104419262818378	-104.9487061	39.7669692	-104.9474844	39.7669713
-3832	3274	3648	0.198107670536066	0.198107670536066	-104.9593216	39.7038566	-104.9576929	39.7025901
-2853	2802	2803	0.106343009363166	0.106343009363166	-104.9474844	39.7669713	-104.9462404	39.7669537
-2854	2803	2804	0.0880619154851023	0.0880619154851023	-104.9462404	39.7669537	-104.9452104	39.7669339
-2856	866	2805	0.0997722055250997	0.0997722055250997	-104.9428673	39.7669141	-104.9417	39.7669075
-2857	2805	2806	0.0898296288997372	0.0898296288997372	-104.9417	39.7669075	-104.9406492	39.7668916
-2858	2806	2807	0.0154103032800591	0.0154103032800591	-104.9406492	39.7668916	-104.9404689	39.7668916
-2860	1345	2808	0.0745089191630195	0.0745089191630195	-105.0025087	39.7490201	-105.0032328	39.7486472
-2862	2809	2810	0.0999390470653334	0.0999390470653334	-104.9921793	39.7165966	-104.9921278	39.7174945
-2863	2810	2811	0.098203415750831	0.098203415750831	-104.9921278	39.7174945	-104.9921559	39.7183774
-2864	2811	2812	0.105704456533214	0.105704456533214	-104.9921559	39.7183774	-104.9921473	39.719328
-2865	2812	1841	0.178602078382633	0.178602078382633	-104.9921473	39.719328	-104.9921535	39.7209342
-2867	2813	2814	0.147059691176011	0.147059691176011	-104.9913173	39.7752191	-104.9912923	39.7765415
-2869	2815	2816	0.0358929050784097	0.0358929050784097	-104.9919925	39.7317917	-104.9916596	39.7319883
-2871	2817	2818	0.202436914455554	0.202436914455554	-104.9993302	39.7801544	-105.0016991	39.7801675
-2872	2818	721	0.208959052889522	0.208959052889522	-105.0016991	39.7801675	-105.0041443	39.7801832
-2873	721	2819	0.195578398743409	0.195578398743409	-105.0041443	39.7801832	-105.0064329	39.7801666
-2874	2819	2820	0.132104447079437	0.132104447079437	-105.0064329	39.7801666	-105.0079788	39.7801613
-2875	2820	2499	0.133495572380704	0.133495572380704	-105.0079788	39.7801613	-105.0095409	39.7801481
-2877	2821	2823	0.131028201505055	0.131028201505055	-105.0111319	39.7801807	-105.0126652	39.7801745
-2878	2823	2154	0.134224367729179	0.134224367729179	-105.0126652	39.7801745	-105.0142359	39.7801811
-2879	2154	2824	0.137197819412826	0.137197819412826	-105.0142359	39.7801811	-105.0158414	39.7801872
-2881	2825	2828	0.100509300133652	0.100509300133652	-105.0169815	39.7801864	-105.0181574	39.7801666
-2882	2828	2829	0.098379052864586	0.098379052864586	-105.0181574	39.7801666	-105.0193075	39.7802062
-2883	2829	1264	0.0995905743898471	0.0995905743898471	-105.0193075	39.7802062	-105.0204729	39.7802128
-2884	1264	2830	0.0991885382845514	0.0991885382845514	-105.0204729	39.7802128	-105.0216335	39.780226
-2885	2830	2831	0.0990153060665791	0.0990153060665791	-105.0216335	39.780226	-105.0227922	39.780226
-2886	2831	2718	0.0991269733313679	0.0991269733313679	-105.0227922	39.780226	-105.0239521	39.7802381
-2887	2718	2832	0.100500652429342	0.100500652429342	-105.0239521	39.7802381	-105.0251279	39.7802579
-2888	2832	2833	0.0102715407543069	0.0102715407543069	-105.0251279	39.7802579	-105.0252481	39.7802579
-2889	2833	2834	0.0960953974534679	0.0960953974534679	-105.0252481	39.7802579	-105.0263725	39.7802711
-2890	2834	2835	0.0326867749280955	0.0326867749280955	-105.0263725	39.7802711	-105.0267549	39.7802781
-2891	2835	2836	0.134256786764763	0.134256786764763	-105.0267549	39.7802781	-105.028326	39.7802812
-2892	2836	2837	0.113988792124523	0.113988792124523	-105.028326	39.7802812	-105.0296598	39.7802952
-2893	2837	2838	0.0204082374430359	0.0204082374430359	-105.0296598	39.7802952	-105.0298986	39.7802977
-2895	2839	2840	0.113685974247049	0.113685974247049	-105.0301265	39.7802941	-105.0314566	39.7802731
-2896	2840	2841	0.132754406259035	0.132754406259035	-105.0314566	39.7802731	-105.0330101	39.7802665
-2897	2841	2842	0.136852657742897	0.136852657742897	-105.0330101	39.7802665	-105.0346113	39.7802434
-2899	1793	2843	0.0809702263007341	0.0809702263007341	-104.929534	39.694587	-104.9295552	39.693859
-2900	2843	2844	0.0969425296921621	0.0969425296921621	-104.9295552	39.693859	-104.9295466	39.6929872
-2901	2844	2845	0.413436446480526	0.413436446480526	-104.9295466	39.6929872	-104.9305098	39.6893437
-2903	2263	2847	0.179984264422638	0.179984264422638	-104.9304775	39.7162632	-104.9304918	39.7146446
-2904	2847	2848	0.174004040987329	0.174004040987329	-104.9304918	39.7146446	-104.930509	39.7130798
-2905	2848	2849	0.194108624427032	0.194108624427032	-104.930509	39.7130798	-104.9304782	39.7113343
-2907	2850	1276	0.172413086756907	0.172413086756907	-105.0186375	39.7505191	-105.0205429	39.7510272
-2909	2853	785	0.245123885631009	0.245123885631009	-105.0050712	39.7039722	-105.0042571	39.7018586
-2911	2854	2855	0.0854841952170884	0.0854841952170884	-105.0038253	39.7010848	-105.0034418	39.7003749
-2912	2855	2747	0.0762350203886263	0.0762350203886263	-105.0034418	39.7003749	-105.0031992	39.6997152
-2913	2747	2856	0.0859704175448271	0.0859704175448271	-105.0031992	39.6997152	-105.0031649	39.6989425
-2914	2856	2857	0.100779098585589	0.100779098585589	-105.0031649	39.6989425	-105.0035425	39.698084
-2915	2857	2858	0.0905252463288938	0.0905252463288938	-105.0035425	39.698084	-105.0043357	39.6975452
-2917	2859	2860	0.0227727209766704	0.0227727209766704	-105.0050773	39.6967285	-105.0050773	39.6965237
-2918	361	1735	0.198105222979832	0.198105222979832	-105.0051297	39.6894631	-105.0051254	39.6912447
-2919	1735	2861	0.0382126884100893	0.0382126884100893	-105.0051254	39.6912447	-105.0051426	39.6915881
-2920	148	2862	0.0438716250050412	0.0438716250050412	-105.0050494	39.6930773	-105.0050709	39.6926831
-2921	1003	2863	0.0520715649387988	0.0520715649387988	-104.987571	39.7855779	-104.9869616	39.7855787
-2922	2863	2864	0.0982728809134093	0.0982728809134093	-104.9869616	39.7855787	-104.9858115	39.7855801
-2923	2864	2865	0.0994946507259965	0.0994946507259965	-104.9858115	39.7855801	-104.9846471	39.7855801
-3895	3698	3699	0.204838159377623	0.204838159377623	-104.9617334	39.6911372	-104.9617151	39.6892951
-2924	2865	2869	0.090463384362138	0.090463384362138	-104.9846471	39.7855801	-104.9835884	39.7855828
-2925	2869	2870	0.0564720828613131	0.0564720828613131	-104.9835884	39.7855828	-104.9829275	39.7855836
-2926	2870	2871	0.0608640771597173	0.0608640771597173	-104.9829275	39.7855836	-104.9822152	39.7855845
-2927	2872	2873	0.044011799999607	0.044011799999607	-104.9546451	39.7849527	-104.9541301	39.7849461
-2928	2873	2088	0.0931496819660856	0.0931496819660856	-104.9541301	39.7849461	-104.95304	39.7849395
-2929	2088	2655	0.0960691148224413	0.0960691148224413	-104.95304	39.7849395	-104.9519157	39.7849395
-2930	2655	2874	0.0937706080748846	0.0937706080748846	-104.9519157	39.7849395	-104.9508183	39.7849387
-2931	2874	2875	0.0828791997484075	0.0828791997484075	-104.9508183	39.7849387	-104.9498484	39.7849453
-2932	2875	2876	0.093218621711434	0.093218621711434	-104.9498484	39.7849453	-104.9487583	39.7849124
-2933	2876	2877	0.0704167162147941	0.0704167162147941	-104.9487583	39.7849124	-104.9479343	39.7849217
-2935	2878	2879	0.0887403720940643	0.0887403720940643	-104.9645156	39.7852099	-104.9634771	39.7852033
-2936	2879	2880	0.0909098673154509	0.0909098673154509	-104.9634771	39.7852033	-104.962414	39.7852355
-2937	2880	2881	0.0882058988614067	0.0882058988614067	-104.962414	39.7852355	-104.961384	39.7851828
-2938	2881	2882	0.181777411929199	0.181777411929199	-104.961384	39.7851828	-104.9592584	39.7852492
-2940	2883	2884	0.115661337881372	0.115661337881372	-104.9733956	39.7437918	-104.9733802	39.7448319
-2941	2884	2885	0.14826485880128	0.14826485880128	-104.9733802	39.7448319	-104.9724659	39.7459649
-2942	2885	2886	0.112251623213379	0.112251623213379	-104.9724659	39.7459649	-104.9722001	39.7469535
-2943	2886	2887	0.119994591224275	0.119994591224275	-104.9722001	39.7469535	-104.9729638	39.7478589
-2944	2887	2888	0.178622958928809	0.178622958928809	-104.9729638	39.7478589	-104.9733549	39.7494369
-2945	2888	2889	0.00412533177852682	0.00412533177852682	-104.9733549	39.7494369	-104.9733549	39.749474
-2946	2889	2890	0.00481474032387871	0.00481474032387871	-104.9733549	39.749474	-104.9733549	39.7495173
-2947	2890	2893	0.135290874001292	0.135290874001292	-104.9733549	39.7495173	-104.9733544	39.750734
-2948	2893	2894	0.137892832771659	0.137892832771659	-104.9733544	39.750734	-104.973354	39.7519741
-2949	2894	817	0.140150092060959	0.140150092060959	-104.973354	39.7519741	-104.9733535	39.7532345
-2950	817	2895	0.143808402694827	0.143808402694827	-104.9733535	39.7532345	-104.9733531	39.7545278
-2951	2895	2896	0.0697081016101773	0.0697081016101773	-104.9733531	39.7545278	-104.9733529	39.7551547
-2952	2896	2897	0.0168682725384664	0.0168682725384664	-104.9733529	39.7551547	-104.9733528	39.7553064
-2954	2898	2899	0.139071498957887	0.139071498957887	-104.9733526	39.7557317	-104.9733522	39.7569824
-2956	2900	2901	0.139727551358826	0.139727551358826	-104.9733518	39.7582331	-104.9733513	39.7594897
-2957	2901	2902	0.00293554606295758	0.00293554606295758	-104.9733513	39.7594897	-104.9733513	39.7595161
-2958	2902	2903	0.102721876435386	0.102721876435386	-104.9733513	39.7595161	-104.973351	39.7604399
-2959	2903	2904	0.0305452475451112	0.0305452475451112	-104.973351	39.7604399	-104.9733509	39.7607146
-2960	2904	2905	0.00503713742922791	0.00503713742922791	-104.9733509	39.7607146	-104.9733508	39.7607599
-2961	2905	2906	0.0458567885450819	0.0458567885450819	-104.9733508	39.7607599	-104.9733507	39.7611723
-2962	2906	2907	0.0981295261146626	0.0981295261146626	-104.9733507	39.7611723	-104.9733504	39.7620548
-2963	2907	628	0.0369055971430695	0.0369055971430695	-104.9733504	39.7620548	-104.9733503	39.7623867
-2964	628	1143	0.0958611496898419	0.0958611496898419	-104.9733503	39.7623867	-104.97335	39.7632488
-2966	2908	2909	0.0463126901024473	0.0463126901024473	-104.9733498	39.7638075	-104.9733496	39.764224
-2967	2909	872	0.0318684671228471	0.0318684671228471	-104.9733496	39.764224	-104.9733495	39.7645106
-2968	872	2910	0.0711758745978235	0.0711758745978235	-104.9733495	39.7645106	-104.9733493	39.7651507
-2969	2910	2911	0.067495322638235	0.067495322638235	-104.9733493	39.7651507	-104.9733491	39.7657577
-2970	2911	2912	0.033747661319103	0.033747661319103	-104.9733491	39.7657577	-104.973349	39.7660612
-2971	2912	2913	0.0475024757380027	0.0475024757380027	-104.973349	39.7660612	-104.9733488	39.7664884
-2973	2914	2915	0.202578999998173	0.202578999998173	-104.9738264	39.7183118	-104.9733801	39.7165226
-2975	2916	2917	0.184685764171195	0.184685764171195	-104.9731398	39.7165226	-104.9732076	39.7181827
-2976	2917	2918	0.00737265767013589	0.00737265767013589	-104.9732076	39.7181827	-104.9732171	39.7182486
-2978	2919	2920	0.110148820147866	0.110148820147866	-104.9593201	39.7073167	-104.9580338	39.7072718
-2979	2920	584	0.039258317875865	0.039258317875865	-104.9580338	39.7072718	-104.957575	39.70728
-2980	584	2921	0.228363185041033	0.228363185041033	-104.957575	39.70728	-104.954906	39.707321
-2982	2922	1341	0.198962442111046	0.198962442111046	-105.021523	39.7147919	-105.0215144	39.7130026
-2983	1341	2923	0.207039061514662	0.207039061514662	-105.0215144	39.7130026	-105.0215316	39.7111407
-2984	2923	2924	0.201175175238786	0.201175175238786	-105.0215316	39.7111407	-105.0215401	39.7093315
-2985	2924	2925	0.203376851393596	0.203376851393596	-105.0215401	39.7093315	-105.0215487	39.7075025
-2986	2925	2926	0.201920207523594	0.201920207523594	-105.0215487	39.7075025	-105.0215401	39.7056866
-2987	2926	2927	0.200452413161122	0.200452413161122	-105.0215401	39.7056866	-105.0215316	39.7038839
-2988	2927	776	0.201931296094781	0.201931296094781	-105.0215316	39.7038839	-105.0215401	39.7020679
-2990	2928	2930	0.209285084837907	0.209285084837907	-105.0215401	39.7004038	-105.021523	39.6985217
-2991	2930	2931	0.197960209647655	0.197960209647655	-105.021523	39.6985217	-105.0215654	39.6967417
-2992	2931	171	0.402036974102358	0.402036974102358	-105.0215654	39.6967417	-105.0215573	39.6931261
-2994	2932	2933	0.200508042098485	0.200508042098485	-105.0213817	39.6895011	-105.0213903	39.6876979
-2995	170	1728	0.257039245710078	0.257039245710078	-105.0213045	39.6931204	-105.0213131	39.6908088
-2996	1728	2934	0.145411467525923	0.145411467525923	-105.0213131	39.6908088	-105.0213045	39.6895011
-2999	2935	2936	0.0880513532781809	0.0880513532781809	-105.0169377	39.6883193	-105.0178175	39.6879086
-3025	2957	2958	0.01030947748559	0.01030947748559	-105.0187431	39.7584203	-105.0188637	39.7584212
-3000	2936	209	0.228338005511316	0.228338005511316	-105.0178175	39.6879086	-105.0203575	39.6872791
-3002	2937	2938	0.107611509993879	0.107611509993879	-104.9251387	39.7047572	-104.9247744	39.7038309
-3005	2940	2941	0.175855452328419	0.175855452328419	-104.9257898	39.7162499	-104.9257841	39.7146684
-3006	2941	2942	0.174909636552997	0.174909636552997	-104.9257841	39.7146684	-104.925785	39.7130954
-3007	2942	2943	0.192197232795451	0.192197232795451	-104.925785	39.7130954	-104.9258054	39.711367
-3009	2944	546	0.0293283601170504	0.0293283601170504	-104.9250716	39.7048418	-104.9250834	39.7051054
-3010	546	2945	0.155746660532693	0.155746660532693	-104.9250834	39.7051054	-104.9251435	39.7065053
-3012	1475	2946	0.311303155924368	0.311303155924368	-104.9241194	39.6955841	-104.9254353	39.692974
-3013	2946	2947	0.184883982264712	0.184883982264712	-104.9254353	39.692974	-104.9259674	39.6913625
-3014	2947	2948	0.224685205653341	0.224685205653341	-104.9259674	39.6913625	-104.9264824	39.6893811
-3016	2949	2950	0.0888669853746646	0.0888669853746646	-104.9258215	39.6893679	-104.9258215	39.6885687
-3017	2950	2951	0.114577615588497	0.114577615588497	-104.9258215	39.6885687	-104.9258129	39.6875383
-3018	1225	2952	0.114132076273042	0.114132076273042	-105.0118006	39.7583774	-105.013135	39.7584124
-3019	2952	2161	0.115442153745618	0.115442153745618	-105.013135	39.7584124	-105.0144855	39.7584103
-3020	2161	2953	0.105428749590907	0.105428749590907	-105.0144855	39.7584103	-105.0157188	39.7584009
-3022	2954	2955	0.0114463280554541	0.0114463280554541	-105.0158347	39.7584	-105.0159686	39.7584009
-3023	2955	639	0.18619297340356	0.18619297340356	-105.0159686	39.7584009	-105.0181467	39.7584155
-3024	639	2957	0.0509835810434449	0.0509835810434449	-105.0181467	39.7584155	-105.0187431	39.7584203
-3026	2958	2959	0.0353738821651235	0.0353738821651235	-105.0188637	39.7584212	-105.0192775	39.7584245
-3027	2959	2960	0.00284670794487764	0.00284670794487764	-105.0192775	39.7584245	-105.0193108	39.7584248
-3028	2960	1288	0.104793015683124	0.104793015683124	-105.0193108	39.7584248	-105.0205366	39.7584382
-3029	1288	2961	0.051496901479137	0.051496901479137	-105.0205366	39.7584382	-105.021139	39.7584434
-3030	2961	2962	0.00960868888037157	0.00960868888037157	-105.021139	39.7584434	-105.0212514	39.7584444
-3031	2962	2963	0.0208687174266634	0.0208687174266634	-105.0212514	39.7584444	-105.0214955	39.7584475
-3032	2963	2964	0.0498882614596582	0.0498882614596582	-105.0214955	39.7584475	-105.0220789	39.7584598
-3033	2964	2965	0.123304259264834	0.123304259264834	-105.0220789	39.7584598	-105.0235213	39.7584714
-3035	2966	2967	0.00908677871596767	0.00908677871596767	-105.0236238	39.7584722	-105.0237301	39.7584727
-3036	2967	2968	0.115854235202851	0.115854235202851	-105.0237301	39.7584727	-105.0250854	39.758479
-3037	2968	2969	0.00700956571064615	0.00700956571064615	-105.0250854	39.758479	-105.0251674	39.7584794
-3038	2969	2970	0.00940368205913038	0.00940368205913038	-105.0251674	39.7584794	-105.0252774	39.7584805
-3039	2970	2971	0.0666840110355875	0.0666840110355875	-105.0252774	39.7584805	-105.0260575	39.7584783
-3040	2971	2972	0.0679662165544488	0.0679662165544488	-105.0260575	39.7584783	-105.0268526	39.7584761
-3041	2972	2973	0.0630976433471776	0.0630976433471776	-105.0268526	39.7584761	-105.0275907	39.7584695
-3042	2973	2974	0.0491600079555241	0.0491600079555241	-105.0275907	39.7584695	-105.0281658	39.7584695
-3044	2975	2976	0.0997731403964804	0.0997731403964804	-105.0299157	39.7585034	-105.0310829	39.7585034
-3045	2976	2977	0.100715566829797	0.100715566829797	-105.0310829	39.7585034	-105.032261	39.7585166
-3046	2977	2978	0.0996876914159973	0.0996876914159973	-105.032261	39.7585166	-105.0334272	39.7585157
-3047	2978	2979	0.10126058971698	0.10126058971698	-105.0334272	39.7585157	-105.0346118	39.758517
-3048	2979	2980	0.103346225532192	0.103346225532192	-105.0346118	39.758517	-105.0358208	39.7585166
-3049	2980	2981	0.0983114005972926	0.0983114005972926	-105.0358208	39.7585166	-105.0369709	39.7585166
-3050	2981	2982	0.09874223460454	0.09874223460454	-105.0369709	39.7585166	-105.0381258	39.7584985
-3051	2982	2983	0.0510749251490339	0.0510749251490339	-105.0381258	39.7584985	-105.038723	39.7584839
-3053	2984	2985	0.0505192363533637	0.0505192363533637	-105.039304	39.7584901	-105.039895	39.758491
-3054	2985	1120	0.0491942863881514	0.0491942863881514	-105.039895	39.758491	-105.0404705	39.7584919
-3055	1120	2986	0.0517085444587275	0.0517085444587275	-105.0404705	39.7584919	-105.0410754	39.7584887
-3056	2986	2987	0.0504766444323722	0.0504766444323722	-105.0410754	39.7584887	-105.0416657	39.7585006
-3057	2987	2988	0.0508471211122413	0.0508471211122413	-105.0416657	39.7585006	-105.0422605	39.7584955
-3058	2988	2989	0.0482147566017866	0.0482147566017866	-105.0422605	39.7584955	-105.0428245	39.7584902
-3059	2989	2990	0.0513143127772338	0.0513143127772338	-105.0428245	39.7584902	-105.0434248	39.7584889
-3060	2990	2991	0.0501432318630803	0.0501432318630803	-105.0434248	39.7584889	-105.0440114	39.7584876
-3061	2991	2992	0.788648410502006	0.788648410502006	-105.0440114	39.7584876	-105.0532374	39.7584692
-3062	2993	2994	0.01555628530979	0.01555628530979	-104.9953923	39.7608178	-104.995393	39.7606779
-3063	2994	2995	0.10729267423115	0.10729267423115	-104.995393	39.7606779	-104.9953975	39.759713
-13562	2999	2165	0.242533262128423	0.242533262128423	-105.0136746	39.7263954	-105.0140457	39.7285578
-3067	2998	3000	0.0998948824480635	0.0998948824480635	-104.9969577	39.7401458	-104.9961353	39.7407839
-3068	3000	3001	0.145910673725247	0.145910673725247	-104.9961353	39.7407839	-104.99492	39.7417051
-3069	3001	3002	0.147264770664277	0.147264770664277	-104.99492	39.7417051	-104.9937158	39.742652
-3070	3002	3003	0.145706831644125	0.145706831644125	-104.9937158	39.742652	-104.9925155	39.7435822
-3071	3003	3004	0.146381189481243	0.146381189481243	-104.9925155	39.7435822	-104.9912932	39.744504
-3073	3006	3007	0.143637545441942	0.143637545441942	-104.9900832	39.7454633	-104.9889069	39.7463856
-3074	3007	3008	0.14139337588105	0.14139337588105	-104.9889069	39.7463856	-104.9876315	39.7471951
-3075	3008	3009	0.0340034784472366	0.0340034784472366	-104.9876315	39.7471951	-104.9873284	39.7473931
-3076	3009	3010	0.117637494210671	0.117637494210671	-104.9873284	39.7473931	-104.9864574	39.7482121
-3077	3010	3011	0.1483412167568	0.1483412167568	-104.9864574	39.7482121	-104.9852889	39.7491983
-3078	3011	3012	0.146200597856632	0.146200597856632	-104.9852889	39.7491983	-104.9840976	39.7501416
-3079	3012	3013	0.146656153847153	0.146656153847153	-104.9840976	39.7501416	-104.9828772	39.7510685
-3080	3013	3014	0.219897120549826	0.219897120549826	-104.9828772	39.7510685	-104.9810635	39.7524708
-3081	3014	2686	0.0729664723843293	0.0729664723843293	-104.9810635	39.7524708	-104.9804627	39.7529369
-3082	2686	3015	0.146055074464899	0.146055074464899	-104.9804627	39.7529369	-104.9792691	39.7538767
-3083	3015	3016	0.115984680072215	0.115984680072215	-104.9792691	39.7538767	-104.9783073	39.7546124
-3084	3016	3017	0.0102106792826024	0.0102106792826024	-104.9783073	39.7546124	-104.9782228	39.7546773
-3085	3017	3018	0.0188093561808277	0.0188093561808277	-104.9782228	39.7546773	-104.9780672	39.7547969
-3087	3019	3020	0.14624208166964	0.14624208166964	-104.9768843	39.7557372	-104.9756854	39.7566754
-3088	3020	3021	0.149932974568378	0.149932974568378	-104.9756854	39.7566754	-104.974418	39.7576075
-3089	3021	2900	0.114654486829615	0.114654486829615	-104.974418	39.7576075	-104.9733518	39.7582331
-3091	3022	3023	0.0936947193853168	0.0936947193853168	-104.9472629	39.738954	-104.9461672	39.7389438
-3093	3024	3025	0.0922829109447797	0.0922829109447797	-104.9499105	39.7600818	-104.9488309	39.7600818
-3095	3026	3027	0.10419715248802	0.10419715248802	-104.9684276	39.7595114	-104.9672089	39.7594916
-3096	3027	3028	0.108587123231645	0.108587123231645	-104.9672089	39.7594916	-104.9659386	39.7594982
-3097	3028	3029	0.103455866634876	0.103455866634876	-104.9659386	39.7594982	-104.9647283	39.7594982
-3099	3030	3031	0.0828114972096423	0.0828114972096423	-104.9487906	39.7590818	-104.9478224	39.759056
-3100	3031	3032	0.0151385207198175	0.0151385207198175	-104.9478224	39.759056	-104.9476453	39.759056
-3102	3035	3036	0.131928682141755	0.131928682141755	-104.9468584	39.7590562	-104.9453153	39.7590334
-3103	3036	3037	0.0286281442546585	0.0286281442546585	-104.9453153	39.7590334	-104.9449805	39.75904
-3104	3037	3038	0.0830678583996061	0.0830678583996061	-104.9449805	39.75904	-104.9440088	39.7590496
-3105	3038	3039	0.0820487800074757	0.0820487800074757	-104.9440088	39.7590496	-104.9430494	39.7590268
-3107	3040	3041	0.0592379768525999	0.0592379768525999	-104.9641307	39.7594199	-104.9634377	39.7594223
-3108	3041	1041	0.101867076922678	0.101867076922678	-104.9634377	39.7594223	-104.962246	39.7594264
-3109	1041	3042	0.108431988254042	0.108431988254042	-104.962246	39.7594264	-104.9609775	39.7594308
-3110	3042	3043	0.103209130509255	0.103209130509255	-104.9609775	39.7594308	-104.9597701	39.759435
-3111	3043	3044	0.103439867243447	0.103439867243447	-104.9597701	39.759435	-104.95856	39.7594391
-3113	3045	3046	0.1080426022678	0.1080426022678	-104.9573829	39.7594492	-104.956119	39.7594399
-3114	3046	3047	0.106399445317148	0.106399445317148	-104.956119	39.7594399	-104.9548745	39.7594585
-3115	3047	2078	0.104328053424176	0.104328053424176	-104.9548745	39.7594585	-104.953654	39.7594605
-3116	2078	2675	0.103849131822114	0.103849131822114	-104.953654	39.7594605	-104.9524391	39.7594603
-3117	2675	3048	0.106371798877004	0.106371798877004	-104.9524391	39.7594603	-104.9511947	39.7594645
-3118	3048	3049	0.1089909908922	0.1089909908922	-104.9511947	39.7594645	-104.9499198	39.7594797
-3120	2995	3050	0.0829711714500804	0.0829711714500804	-104.9953975	39.759713	-104.9963681	39.7597212
-3123	3051	3052	0.0304368475861105	0.0304368475861105	-104.9721269	39.7594785	-104.971771	39.759487
-19556	10441	10561	0.00875730102663828	0.00875730102663828	-104.9883481	39.7091456	-104.9884504	39.7091486
-3124	3053	3054	0.10469695146486	0.10469695146486	-104.9708822	39.7594411	-104.9696608	39.7595114
-3125	3054	3026	0.105413327506124	0.105413327506124	-104.9696608	39.7595114	-104.9684276	39.7595114
-3127	3055	3056	0.0146859459125862	0.0146859459125862	-104.9406663	39.7601421	-104.9404947	39.7601356
-3128	3056	3057	0.0899179636493607	0.0899179636493607	-104.9404947	39.7601356	-104.9394429	39.7601485
-3129	3057	3058	0.0968918459632465	0.0968918459632465	-104.9394429	39.7601485	-104.9383099	39.7601749
-3130	3058	3059	0.0931803123592361	0.0931803123592361	-104.9383099	39.7601749	-104.9372198	39.7601749
-3131	3059	3060	0.0924628769882567	0.0924628769882567	-104.9372198	39.7601749	-104.9361384	39.7601551
-3132	3060	2004	0.0909779529022995	0.0909779529022995	-104.9361384	39.7601551	-104.9350741	39.7601485
-3134	3061	2758	0.0983285272926963	0.0983285272926963	-104.9339669	39.7601749	-104.9328167	39.7601881
-3135	2758	3062	0.094848132376921	0.094848132376921	-104.9328167	39.7601881	-104.9317072	39.760176
-3137	2284	3063	0.10273020958756	0.10273020958756	-104.9305594	39.7601749	-104.9293577	39.7601881
-3138	3063	3064	0.09684156688728	0.09684156688728	-104.9293577	39.7601881	-104.9282248	39.7601815
-3139	3064	2139	0.105654196010103	0.105654196010103	-104.9282248	39.7601815	-104.9269888	39.7601749
-3141	3065	3066	0.101995188106893	0.101995188106893	-104.9257357	39.7601617	-104.9245426	39.7601749
-4424	4133	950	0.17542265784203	0.17542265784203	-104.9505787	39.7305216	-104.9505701	39.7320992
-3142	3066	3067	1.00083609181461	1.00083609181461	-104.9245426	39.7601749	-104.912834	39.7601834
-3143	3068	3069	0.10392860568863	0.10392860568863	-104.9461768	39.7130666	-104.9449618	39.7130707
-3144	3069	3070	0.10232907709913	0.10232907709913	-104.9449618	39.7130707	-104.9437655	39.7130666
-3145	3070	3071	0.103927869583062	0.103927869583062	-104.9437655	39.7130666	-104.9425505	39.7130687
-3146	3071	3072	0.102097379803977	0.102097379803977	-104.9425505	39.7130687	-104.9413569	39.7130666
-3147	3072	3073	0.0487909895079958	0.0487909895079958	-104.9413569	39.7130666	-104.9407865	39.7130688
-3149	1294	3074	0.105333551259412	0.105333551259412	-104.9875234	39.7129763	-104.9862922	39.7129578
-3150	3074	3075	0.0524798747272766	0.0524798747272766	-104.9862922	39.7129578	-104.9856788	39.712948
-3151	3075	3076	0.0475858963921332	0.0475858963921332	-104.9856788	39.712948	-104.9851226	39.7129392
-3152	3076	3077	0.00514079080382434	0.00514079080382434	-104.9851226	39.7129392	-104.9850625	39.7129392
-3154	3078	3079	0.0117186508515134	0.0117186508515134	-104.9839851	39.7129498	-104.9838483	39.7129555
-3155	3079	3080	0.0860074021370197	0.0860074021370197	-104.9838483	39.7129555	-104.9828429	39.7129448
-3156	3080	3081	0.0112654570741388	0.0112654570741388	-104.9828429	39.7129448	-104.9827112	39.7129442
-3157	3081	3082	0.0998426271509478	0.0998426271509478	-104.9827112	39.7129442	-104.9815443	39.7129225
-3159	3083	3084	0.0978722553449722	0.0978722553449722	-104.9803943	39.7129167	-104.9792501	39.712914
-3161	3085	3086	0.0498003240048994	0.0498003240048994	-104.9786762	39.712912	-104.978094	39.71291
-3162	3086	3087	0.0499820755044021	0.0499820755044021	-104.978094	39.71291	-104.9775097	39.7129054
-3163	3087	1765	0.0500932715547668	0.0500932715547668	-104.9775097	39.7129054	-104.9769241	39.7129008
-3164	1765	3089	0.0453737460403596	0.0453737460403596	-104.9769241	39.7129008	-104.9763937	39.7128949
-3165	3089	3090	0.0566344564433548	0.0566344564433548	-104.9763937	39.7128949	-104.9757316	39.7128962
-3166	3090	3091	0.0479788729039099	0.0479788729039099	-104.9757316	39.7128962	-104.9751708	39.7128876
-3167	3091	1517	0.0504584819239423	0.0504584819239423	-104.9751708	39.7128876	-104.9745809	39.7128876
-3168	1517	3092	0.0513918113913408	0.0513918113913408	-104.9745809	39.7128876	-104.9739802	39.7128965
-3169	3092	3093	0.0524695902697227	0.0524695902697227	-104.9739802	39.7128965	-104.9733669	39.7129055
-3170	3093	1084	0.0829756278031258	0.0829756278031258	-104.9733669	39.7129055	-104.972397	39.7129187
-3171	1084	3094	0.018362425266723	0.018362425266723	-104.972397	39.7129187	-104.9721825	39.7129121
-3172	3094	3095	0.100037197959638	0.100037197959638	-104.9721825	39.7129121	-104.971013	39.7129167
-3173	3095	3096	0.0986501993185581	0.0986501993185581	-104.971013	39.7129167	-104.9698598	39.7129284
-3174	3096	3097	0.100130714805898	0.100130714805898	-104.9698598	39.7129284	-104.9686892	39.7129319
-3175	3097	2046	0.103528392648025	0.103528392648025	-104.9686892	39.7129319	-104.9674789	39.7129253
-3176	2046	3098	0.0976518708062817	0.0976518708062817	-104.9674789	39.7129253	-104.9663374	39.7129121
-3177	3098	3099	0.0995509890492463	0.0995509890492463	-104.9663374	39.7129121	-104.9652044	39.7127074
-3179	1954	3100	0.060604506910361	0.060604506910361	-104.9384863	39.7130525	-104.9377781	39.7130688
-3182	3102	3103	0.0990114382918269	0.0990114382918269	-104.935134	39.713087	-104.9339765	39.713093
-3183	3103	3104	0.100593787088956	0.100593787088956	-104.9339765	39.713093	-104.9328006	39.7130798
-3184	3104	3105	0.0983789631442794	0.0983789631442794	-104.9328006	39.7130798	-104.9316505	39.7130864
-3185	3105	2848	0.0976433646550276	0.0976433646550276	-104.9316505	39.7130864	-104.930509	39.7130798
-3186	2848	3106	0.102064870879311	0.102064870879311	-104.930509	39.7130798	-104.9293159	39.713093
-3187	3106	3107	0.10100271733246	0.10100271733246	-104.9293159	39.713093	-104.9281351	39.7130901
-3188	3107	3108	0.0995828832367363	0.0995828832367363	-104.9281351	39.7130901	-104.9269709	39.7130932
-3189	3108	2942	0.101438732689929	0.101438732689929	-104.9269709	39.7130932	-104.925785	39.7130954
-3190	2942	3109	0.100378814460195	0.100378814460195	-104.925785	39.7130954	-104.9246115	39.7130913
-3191	3109	3110	1.25206634961555	1.25206634961555	-104.9246115	39.7130913	-104.9101331	39.7147489
-3192	3111	3112	0.015422388825789	0.015422388825789	-104.9593153	39.7129376	-104.959135	39.7129374
-3193	3112	3113	0.11412427509118	0.11412427509118	-104.959135	39.7129374	-104.9578008	39.7129346
-3194	3113	3114	0.468645573431598	0.468645573431598	-104.9578008	39.7129346	-104.9523224	39.712881
-3196	2023	3115	0.177146580591063	0.177146580591063	-104.9350998	39.7162443	-104.9351095	39.7146512
-3197	3115	3102	0.173943728587952	0.173943728587952	-104.9351095	39.7146512	-104.935134	39.713087
-3198	3102	3116	0.193451028525805	0.193451028525805	-104.935134	39.713087	-104.9350959	39.7113475
-3200	3117	1806	0.211443534426126	0.211443534426126	-104.935335	39.696587	-104.935235	39.694687
-3201	1806	3118	0.193022911848757	0.193022911848757	-104.935235	39.694687	-104.9350589	39.6929564
-3203	3119	3120	0.0940041909856305	0.0940041909856305	-104.9350503	39.6919459	-104.9350503	39.6911005
-3204	3120	3121	0.197561396619787	0.197561396619787	-104.9350503	39.6911005	-104.9350417	39.6893238
-3206	3122	3123	0.200799900699528	0.200799900699528	-104.9348207	39.6893133	-104.9348357	39.6875075
-3207	3124	3125	0.200863237154928	0.200863237154928	-104.9654024	39.718348	-104.9653769	39.7201543
-3208	3125	3126	0.201874389323119	0.201874389323119	-104.9653769	39.7201543	-104.9653769	39.7219698
-3210	3127	3128	0.0750470474178356	0.0750470474178356	-104.9663652	39.7296534	-104.9658779	39.7290921
-3211	3128	3131	0.0761135403806392	0.0761135403806392	-104.9658779	39.7290921	-104.9654579	39.7296956
-3213	3029	3132	0.132611387982682	0.132611387982682	-104.9647283	39.7594982	-104.9647249	39.7606908
-3214	3132	3133	0.00539409864485362	0.00539409864485362	-104.9647249	39.7606908	-104.9647236	39.7607393
-3215	3133	3134	0.139160450695908	0.139160450695908	-104.9647236	39.7607393	-104.9647236	39.7619908
-3216	3134	1160	0.139291641031025	0.139291641031025	-104.9647236	39.7619908	-104.9646785	39.763243
-3217	1160	879	0.139609262878975	0.139609262878975	-104.9646785	39.763243	-104.9647163	39.7644982
-3218	879	3135	0.138493325710101	0.138493325710101	-104.9647163	39.7644982	-104.9647176	39.7657437
-3219	3135	2787	0.134090008076189	0.134090008076189	-104.9647176	39.7657437	-104.9647189	39.7669496
-3220	2787	3136	0.1321642245327	0.1321642245327	-104.9647189	39.7669496	-104.9647008	39.7681381
-3221	3136	3137	0.21408080552497	0.21408080552497	-104.9647008	39.7681381	-104.9647229	39.7700633
-3222	3137	3138	0.144895915790921	0.144895915790921	-104.9647229	39.7700633	-104.9646947	39.7713662
-3223	3138	3139	0.169628584853264	0.169628584853264	-104.9646947	39.7713662	-104.9647005	39.7728917
-3226	3141	3142	0.202888440515448	0.202888440515448	-104.9645304	39.7819277	-104.9645414	39.7837523
-3227	3142	2878	0.162092717607055	0.162092717607055	-104.9645414	39.7837523	-104.9645156	39.7852099
-3251	3162	2365	0.110303719018863	0.110303719018863	-104.9814669	39.7183289	-104.98145	39.7193208
-3254	3164	3165	0.240177393696762	0.240177393696762	-105.0017005	39.7407804	-105.0030875	39.7426587
-3255	3165	3166	0.102768151984011	0.102768151984011	-105.0030875	39.7426587	-105.0037031	39.7434525
-3256	3166	3167	0.0509818546092244	0.0509818546092244	-105.0037031	39.7434525	-105.00401	39.7438456
-3258	3168	3169	0.0591373244934598	0.0591373244934598	-105.0012883	39.7488943	-105.0010939	39.7483839
-3259	3169	3170	0.0530870196657507	0.0530870196657507	-105.0010939	39.7483839	-105.0006969	39.7480168
-3261	3171	3172	0.201914360897617	0.201914360897617	-104.9534926	39.6965864	-104.9535117	39.6947706
-3262	3172	3173	0.203130900823478	0.203130900823478	-104.9535117	39.6947706	-104.953511	39.6929438
-3263	3173	3174	0.201562825315852	0.201562825315852	-104.953511	39.6929438	-104.9535355	39.6911312
-3264	3174	3175	0.19958273918251	0.19958273918251	-104.9535355	39.6911312	-104.9535015	39.6893365
-3265	3175	3177	0.402921101557674	0.402921101557674	-104.9535015	39.6893365	-104.9535278	39.685713
-3266	3178	3179	0.0905536808669309	0.0905536808669309	-104.9535191	39.7038314	-104.9535963	39.7030192
-3267	3179	3180	0.0577627490058349	0.0577627490058349	-104.9535963	39.7030192	-104.9540885	39.7026636
-3268	3180	3181	0.0505235668696686	0.0505235668696686	-104.9540885	39.7026636	-104.9546249	39.7024735
-3269	3181	3182	0.065160532538722	0.065160532538722	-104.9546249	39.7024735	-104.9552273	39.7021149
-3270	3182	3183	0.00793078546182679	0.00793078546182679	-104.9552273	39.7021149	-104.955269	39.7020512
-3271	3183	3184	0.0531842364372946	0.0531842364372946	-104.955269	39.7020512	-104.9555361	39.7016193
-3273	2386	3186	0.0378622155960126	0.0378622155960126	-104.9468949	39.7115125	-104.9464561	39.7114678
-3274	3186	3187	0.0069150542380481	0.0069150542380481	-104.9464561	39.7114678	-104.946376	39.7114762
-3275	3187	3188	0.0174713630038869	0.0174713630038869	-104.946376	39.7114762	-104.9461736	39.7114973
-3277	3189	3190	0.10095397068423	0.10095397068423	-104.9875502	39.7111482	-104.98637	39.7111462
-3278	3190	3191	0.102948552858793	0.102948552858793	-104.98637	39.7111462	-104.9851665	39.7111408
-3279	3191	3192	0.099117357243018	0.099117357243018	-104.9851665	39.7111408	-104.9840078	39.7111342
-3280	3192	3193	0.10499121023248	0.10499121023248	-104.9840078	39.7111342	-104.9827804	39.7111342
-3282	3194	3195	0.0985672231580753	0.0985672231580753	-104.9815359	39.7111143	-104.9803836	39.7111141
-3283	3195	3196	0.0975023503923766	0.0975023503923766	-104.9803836	39.7111141	-104.9792438	39.7111058
-16511	8899	8896	0.0458243741253751	0.0458243741253751	-105.0050563	39.7433465	-105.0048016	39.7429839
-3284	3196	3197	0.0505627463090716	0.0505627463090716	-104.9792438	39.7111058	-104.9786527	39.7111042
-3285	3197	3198	0.0500221717072617	0.0500221717072617	-104.9786527	39.7111042	-104.9780683	39.7110879
-3286	3198	3199	0.046867135973938	0.046867135973938	-104.9780683	39.7110879	-104.9775204	39.7110879
-3287	3199	1768	0.0529832159562647	0.0529832159562647	-104.9775204	39.7110879	-104.976901	39.7110879
-3288	1768	3200	0.0470467690925653	0.0470467690925653	-104.976901	39.7110879	-104.976351	39.7110879
-3289	3200	3201	0.0524586560775799	0.0524586560775799	-104.976351	39.7110879	-104.9757389	39.711117
-3290	3201	3202	0.0495946350720587	0.0495946350720587	-104.9757389	39.711117	-104.9751601	39.711091
-3291	3202	1518	0.052984641558086	0.052984641558086	-104.9751601	39.711091	-104.9745407	39.7110945
-3292	1518	3203	0.100125608990258	0.100125608990258	-104.9745407	39.7110945	-104.9733702	39.7110995
-3293	3203	1085	0.0831191573838339	0.0831191573838339	-104.9733702	39.7110995	-104.9723985	39.7110973
-3294	1085	3204	0.01719627237498	0.01719627237498	-104.9723985	39.7110973	-104.9721975	39.7110945
-3295	3204	3205	0.100278521536605	0.100278521536605	-104.9721975	39.7110945	-104.9710252	39.7110973
-3296	3205	3206	0.100159169300764	0.100159169300764	-104.9710252	39.7110973	-104.9698543	39.7111011
-3297	3206	3207	0.0980766730481921	0.0980766730481921	-104.9698543	39.7111011	-104.9687078	39.7111105
-3299	2047	3208	0.0998503328239714	0.0998503328239714	-104.9674682	39.7111011	-104.9663009	39.7111011
-3300	3208	3209	0.0991174142787685	0.0991174142787685	-104.9663009	39.7111011	-104.9651422	39.7110945
-3301	3209	3210	0.0465862087261248	0.0465862087261248	-104.9651422	39.7110945	-104.9645976	39.7110977
-3303	3211	3212	0.0483226107842397	0.0483226107842397	-104.9640093	39.7111011	-104.9634444	39.7110979
-3304	3212	3213	0.0508033572812722	0.0508033572812722	-104.9634444	39.7110979	-104.9628505	39.7110945
-3305	3213	3214	0.0520095145740976	0.0520095145740976	-104.9628505	39.7110945	-104.9622425	39.711098
-3307	3215	3216	0.047636983079693	0.047636983079693	-104.9616918	39.7111011	-104.9611349	39.7111011
-3308	3216	3217	0.00228390635402469	0.00228390635402469	-104.9611349	39.7111011	-104.9611082	39.7111011
-3309	3217	3218	0.0492156902021281	0.0492156902021281	-104.9611082	39.7111011	-104.9605331	39.7111143
-3310	3218	3219	0.105720878983862	0.105720878983862	-104.9605331	39.7111143	-104.9592972	39.7111077
-3312	3220	3221	0.135734479783406	0.135734479783406	-105.0064274	39.771733	-105.0080156	39.7717323
-3313	3221	2519	0.14595602798476	0.14595602798476	-105.0080156	39.7717323	-105.0097234	39.7717314
-3314	2519	3222	0.126165217374209	0.126165217374209	-105.0097234	39.7717314	-105.0111996	39.7717239
-3315	3222	1229	0.098841689459618	0.098841689459618	-105.0111996	39.7717239	-105.0123561	39.7717298
-3316	1229	3223	0.098924974953348	0.098924974953348	-105.0123561	39.7717298	-105.0135136	39.7717296
-3317	3223	2174	0.100839404349716	0.100839404349716	-105.0135136	39.7717296	-105.0146935	39.7717289
-3318	2174	3224	0.101432888438354	0.101432888438354	-105.0146935	39.7717289	-105.0158803	39.771721
-3319	3224	3225	0.137343472225008	0.137343472225008	-105.0158803	39.771721	-105.0174873	39.7717281
-3321	3226	379	0.0754564811292303	0.0754564811292303	-105.0189401	39.7717271	-105.019823	39.7717267
-3322	379	63	0.0417835231628563	0.0417835231628563	-105.019823	39.7717267	-105.0203119	39.7717265
-3323	63	1255	0.0152981335887719	0.0152981335887719	-105.0203119	39.7717265	-105.0204909	39.7717263
-3326	3228	3229	0.0836292502069327	0.0836292502069327	-105.0315008	39.7718744	-105.0324789	39.7718967
-3327	3229	3230	0.0485562677029858	0.0485562677029858	-105.0324789	39.7718967	-105.0330468	39.7719096
-3330	3232	3233	0.105369806952797	0.105369806952797	-104.993638	39.7717733	-104.9948707	39.7717558
-3331	3233	3234	0.0244901910381055	0.0244901910381055	-104.9948707	39.7717558	-104.9951572	39.7717601
-3332	3235	3236	0.101967463967826	0.101967463967826	-104.9982618	39.771756	-104.9994549	39.771756
-3333	3236	3237	0.10049747789636	0.10049747789636	-104.9994549	39.771756	-105.0006308	39.771756
-3334	3237	3238	0.0983034665163014	0.0983034665163014	-105.0006308	39.771756	-105.0017809	39.7717428
-3335	3238	3239	0.103439327677052	0.103439327677052	-105.0017809	39.7717428	-105.0029911	39.771756
-3336	3239	715	0.100109252929192	0.100109252929192	-105.0029911	39.771756	-105.0041615	39.7717924
-3337	715	3240	0.10857516210103	0.10857516210103	-105.0041615	39.7717924	-105.0054318	39.7718056
-3338	3240	3241	0.0836693243428755	0.0836693243428755	-105.0054318	39.7718056	-105.0064102	39.7718319
-3340	1256	2714	0.204938708369458	0.204938708369458	-105.0204902	39.7720858	-105.0228875	39.7720427
-3341	2714	3242	0.194775016549959	0.194775016549959	-105.0228875	39.7720427	-105.0251665	39.7720519
-3343	3243	3244	0.104619278832535	0.104619278832535	-104.9874858	39.7038766	-104.9862629	39.7038708
-3344	3244	3245	0.0999091629456622	0.0999091629456622	-104.9862629	39.7038708	-104.9850951	39.7038613
-3345	3245	3246	0.0969207243261653	0.0969207243261653	-104.9850951	39.7038613	-104.9839622	39.7038547
-3346	3246	3247	0.100620613481727	0.100620613481727	-104.9839622	39.7038547	-104.9827863	39.7038745
-3347	3247	3248	0.051818780315465	0.051818780315465	-104.9827863	39.7038745	-104.9821867	39.7039406
-3348	3248	3249	0.0493068623564548	0.0493068623564548	-104.9821867	39.7039406	-104.9816104	39.7039471
-3349	3249	3250	0.102061915203609	0.102061915203609	-104.9816104	39.7039471	-104.9804174	39.7039537
-3350	3250	3251	0.0474417721331526	0.0474417721331526	-104.9804174	39.7039537	-104.9798629	39.70396
-3351	3251	3252	0.0496832213808208	0.0496832213808208	-104.9798629	39.70396	-104.9792822	39.7039665
-3352	3252	3253	0.00274646412019378	0.00274646412019378	-104.9792822	39.7039665	-104.9792501	39.7039669
-3353	3253	3254	0.0454267490135207	0.0454267490135207	-104.9792501	39.7039669	-104.9787191	39.7039689
-3354	3254	3255	0.00458544852460102	0.00458544852460102	-104.9787191	39.7039689	-104.9786655	39.7039691
-3355	3255	3256	0.0483268582508211	0.0483268582508211	-104.9786655	39.7039691	-104.9781006	39.7039712
-3357	3257	3258	0.0459440862493274	0.0459440862493274	-104.9302161	39.7037522	-104.9296823	39.7037068
-3358	3258	3259	0.236332489020417	0.236332489020417	-104.9296823	39.7037068	-104.9269572	39.7040556
-3360	3260	2735	0.173472989255867	0.173472989255867	-104.9578793	39.7047229	-104.9558537	39.7046503
-3362	594	2050	0.105283533842597	0.105283533842597	-104.9686935	39.7038655	-104.9674629	39.7038542
-3363	2050	3261	0.0509100007310826	0.0509100007310826	-104.9674629	39.7038542	-104.9668678	39.7038549
-3364	3261	3262	0.0467523465641757	0.0467523465641757	-104.9668678	39.7038549	-104.9663213	39.7038542
-3365	3262	3263	0.0481309278210478	0.0481309278210478	-104.9663213	39.7038542	-104.9657587	39.7038574
-3366	3263	3264	0.051732585346973	0.051732585346973	-104.9657587	39.7038574	-104.965154	39.7038608
-3367	3264	3265	0.0457622961694799	0.0457622961694799	-104.965154	39.7038608	-104.9646191	39.703865
-3368	3265	3266	0.0530171123380122	0.0530171123380122	-104.9646191	39.703865	-104.9639994	39.7038698
-3369	3266	3267	0.0451783444295864	0.0451783444295864	-104.9639994	39.7038698	-104.9634713	39.7038687
-3370	3267	3268	0.0542978455447466	0.0542978455447466	-104.9634713	39.7038687	-104.9628366	39.7038674
-3371	3268	3269	0.0466844058034087	0.0466844058034087	-104.9628366	39.7038674	-104.962291	39.7038591
-3372	3269	3270	0.050646295110284	0.050646295110284	-104.962291	39.7038591	-104.9616991	39.70385
-3373	3270	3271	0.0484988623690369	0.0484988623690369	-104.9616991	39.70385	-104.9611322	39.7038533
-3374	3271	3272	0.0498932625841468	0.0498932625841468	-104.9611322	39.7038533	-104.960549	39.7038566
-3375	3272	3273	0.0470944745658083	0.0470944745658083	-104.960549	39.7038566	-104.9599985	39.7038566
-3376	3273	3274	0.0579078107783869	0.0579078107783869	-104.9599985	39.7038566	-104.9593216	39.7038566
-3377	3274	3275	0.151893561253266	0.151893561253266	-104.9593216	39.7038566	-104.9575461	39.7038494
-3378	3275	3276	0.0516549077274405	0.0516549077274405	-104.9575461	39.7038494	-104.9569423	39.703847
-3379	3276	2734	0.0976564411094966	0.0976564411094966	-104.9569423	39.703847	-104.9558008	39.7038404
-3380	2734	3277	0.0486100790727351	0.0486100790727351	-104.9558008	39.7038404	-104.9552326	39.7038437
-3381	3277	3278	0.0497906140365211	0.0497906140365211	-104.9552326	39.7038437	-104.9546506	39.703847
-3382	3278	3279	0.0484124404037645	0.0484124404037645	-104.9546506	39.703847	-104.9540847	39.703845
-3383	3279	3280	0.00653599515433254	0.00653599515433254	-104.9540847	39.703845	-104.9540083	39.7038447
-3384	3280	3178	0.0418764820732136	0.0418764820732136	-104.9540083	39.7038447	-104.9535191	39.7038314
-3385	3178	3284	0.0979449587868123	0.0979449587868123	-104.9535191	39.7038314	-104.9523742	39.7038339
-3386	3284	3285	0.201022039935831	0.201022039935831	-104.9523742	39.7038339	-104.9500244	39.7038338
-3389	3287	2316	0.156303067302058	0.156303067302058	-104.9490802	39.7038404	-104.9472534	39.7038645
-20281	10719	10710	0.0549191742699874	0.0549191742699874	-105.0441026	39.7730223	-105.0441026	39.7735162
-3390	2316	3288	0.10952595107857	0.10952595107857	-104.9472534	39.7038645	-104.9459732	39.7038536
-3391	3288	3289	0.0403941356128906	0.0403941356128906	-104.9459732	39.7038536	-104.9455011	39.7038602
-3392	3289	3290	0.0912238346425634	0.0912238346425634	-104.9455011	39.7038602	-104.9444349	39.7038735
-3393	3290	3291	0.0816082032445177	0.0816082032445177	-104.9444349	39.7038735	-104.9434841	39.703814
-3394	3291	3292	0.0169509581328033	0.0169509581328033	-104.9434841	39.703814	-104.9432867	39.7038272
-3395	3292	3293	0.0433466637454668	0.0433466637454668	-104.9432867	39.7038272	-104.9427803	39.703814
-3396	3293	3294	0.0186582685984772	0.0186582685984772	-104.9427803	39.703814	-104.9425622	39.7038146
-3397	3294	3295	0.152140762364393	0.152140762364393	-104.9425622	39.7038146	-104.9407838	39.7038199
-3403	3299	1325	0.177116632986756	0.177116632986756	-105.0432684	39.7149673	-105.0432523	39.7133745
-3404	1325	1381	0.178046664647513	0.178046664647513	-105.0432523	39.7133745	-105.0432442	39.7117733
-3406	1057	3300	0.119136901138604	0.119136901138604	-105.043349	39.701089	-105.0433583	39.7021604
-3408	3301	1581	0.141640668502809	0.141640668502809	-105.0432038	39.6894869	-105.0432085	39.6882131
-3409	1581	3302	0.308989164663259	0.308989164663259	-105.0432085	39.6882131	-105.0432162	39.6854343
-3411	3304	3305	0.143837220516125	0.143837220516125	-104.9886307	39.7573647	-104.9874361	39.7582757
-3412	3305	3306	0.147698693465714	0.147698693465714	-104.9874361	39.7582757	-104.9862237	39.7592221
-3414	3307	3308	0.146426311775338	0.146426311775338	-104.985009	39.7601612	-104.983803	39.7610964
-3415	3308	3309	0.146463761248984	0.146463761248984	-104.983803	39.7610964	-104.9825927	39.7620288
-3416	3309	3310	0.146549783304075	0.146549783304075	-104.9825927	39.7620288	-104.9813837	39.7629633
-3417	3310	2029	0.145425360285073	0.145425360285073	-104.9813837	39.7629633	-104.9801901	39.7638953
-3418	2029	3311	0.146713513284486	0.146713513284486	-104.9801901	39.7638953	-104.9789777	39.7648293
-3419	3311	634	0.143866210964815	0.143866210964815	-104.9789777	39.7648293	-104.9777895	39.7657457
-3420	634	3312	0.147112545494359	0.147112545494359	-104.9777895	39.7657457	-104.9765745	39.7666828
-3421	3312	3313	0.145900102395242	0.145900102395242	-104.9765745	39.7666828	-104.9753728	39.7676147
-3422	3313	2321	0.147128656269274	0.147128656269274	-104.9753728	39.7676147	-104.9741575	39.7685518
-3424	3314	3315	0.0970240945457023	0.0970240945457023	-105.0159395	39.7426917	-105.0155552	39.7435127
-3425	3315	2190	0.185651929243496	0.185651929243496	-105.0155552	39.7435127	-105.0139689	39.7423726
-3427	737	1557	0.13315596414531	0.13315596414531	-104.960283	39.7764662	-104.9602842	39.7776637
-3429	3316	3317	0.0821429797668101	0.0821429797668101	-104.960267	39.7804939	-104.9602584	39.7812326
-3434	3321	3322	0.579886710164932	0.579886710164932	-104.957135	39.788086	-104.9570057	39.7933001
-3436	3323	3324	0.139196729808835	0.139196729808835	-104.9573156	39.7544732	-104.9573671	39.7557244
-3438	3325	3326	0.13668278082176	0.13668278082176	-104.95735	39.7569806	-104.9573414	39.7582098
-3439	3326	3045	0.137860640994287	0.137860640994287	-104.9573414	39.7582098	-104.9573829	39.7594492
-3440	3045	3327	0.13778919161955	0.13778919161955	-104.9573829	39.7594492	-104.9573341	39.7606878
-3441	3327	3328	0.00447003605120276	0.00447003605120276	-104.9573341	39.7606878	-104.9573341	39.760728
-3442	3328	3329	0.0233867925544547	0.0233867925544547	-104.9573341	39.760728	-104.9573301	39.7609383
-3443	3329	3330	0.116012449407873	0.116012449407873	-104.9573301	39.7609383	-104.9573395	39.7619816
-3444	3330	1166	0.139882774592672	0.139882774592672	-104.9573395	39.7619816	-104.957304	39.7632393
-3445	1166	886	0.137525679366119	0.137525679366119	-104.957304	39.7632393	-104.9573328	39.7644759
-3446	886	3332	0.139657446365043	0.139657446365043	-104.9573328	39.7644759	-104.95735	39.7657318
-3447	3332	2793	0.133361291612613	0.133361291612613	-104.95735	39.7657318	-104.9573362	39.7669311
-3448	2793	3333	0.132228102569741	0.132228102569741	-104.9573362	39.7669311	-104.9573212	39.7681202
-3450	3334	3335	0.0903059057199572	0.0903059057199572	-104.9574709	39.7328847	-104.9574452	39.7336966
-3451	3335	3336	0.154418186694308	0.154418186694308	-104.9574452	39.7336966	-104.9574365	39.7350853
-3452	3336	3337	0.192225493046604	0.192225493046604	-104.9574365	39.7350853	-104.9574002	39.7368138
-3453	3337	3338	0.174660133594583	0.174660133594583	-104.9574002	39.7368138	-104.9574371	39.7383843
-3454	3338	3339	0.202477883587996	0.202477883587996	-104.9574371	39.7383843	-104.9573922	39.7402049
-3455	3339	3340	0.0759856229646665	0.0759856229646665	-104.9573922	39.7402049	-104.9569483	39.7407969
-3456	3340	3341	0.00965813264254578	0.00965813264254578	-104.9569483	39.7407969	-104.9568365	39.7408093
-3458	3342	1191	0.166878049186437	0.166878049186437	-104.9578337	39.7256186	-104.9578631	39.7271192
-3459	1191	3343	0.0216063183857929	0.0216063183857929	-104.9578631	39.7271192	-104.9578657	39.7273135
-3460	3343	3344	0.200920604325059	0.200920604325059	-104.9578657	39.7273135	-104.9578774	39.7291204
-3462	2346	3345	0.174959253236807	0.174959253236807	-104.95708	39.7194068	-104.957017	39.7209795
-3463	3345	1535	0.0463919707335885	0.0463919707335885	-104.957017	39.7209795	-104.95706	39.7213954
-3465	3346	3347	0.27909963341584	0.27909963341584	-104.9571645	39.7728928	-104.9571698	39.7754028
-3466	3347	740	0.112084486383373	0.112084486383373	-104.9571698	39.7754028	-104.9571699	39.7764108
-3467	740	1560	0.139918597194563	0.139918597194563	-104.9571699	39.7764108	-104.9571611	39.7776691
-3468	1560	3348	0.140278682022104	0.140278682022104	-104.9571611	39.7776691	-104.9571942	39.7789304
-3469	3348	3349	0.121438604958881	0.121438604958881	-104.9571942	39.7789304	-104.9571502	39.780022
-3471	3350	3351	0.173966017570494	0.173966017570494	-104.9570341	39.7225614	-104.9570255	39.7241259
-3472	3351	3352	0.16543284170321	0.16543284170321	-104.9570255	39.7241259	-104.9570447	39.7256136
-3474	3353	3354	0.201189633952299	0.201189633952299	-104.9338095	39.725615	-104.9338255	39.7274243
-3477	3356	3357	0.174637614655306	0.174637614655306	-104.9339641	39.7162382	-104.9339472	39.7178087
-3479	2467	3359	0.203720276949683	0.203720276949683	-104.9339464	39.7474085	-104.9339447	39.7492406
-3480	3359	3360	0.200874146006411	0.200874146006411	-104.9339447	39.7492406	-104.93395	39.7510471
-3481	3360	795	0.199720493083652	0.199720493083652	-104.93395	39.7510471	-104.9339366	39.7528432
-3482	795	3361	0.203163577363555	0.203163577363555	-104.9339366	39.7528432	-104.9339125	39.7546702
-3484	3362	3363	0.203261629260278	0.203261629260278	-104.9338998	39.7564865	-104.9339411	39.7583142
-3485	3363	3061	0.206912153397241	0.206912153397241	-104.9339411	39.7583142	-104.9339669	39.7601749
-3486	3061	3364	0.186005329793712	0.186005329793712	-104.9339669	39.7601749	-104.9339093	39.7618471
-3488	3365	1140	0.135699508009882	0.135699508009882	-104.93438	39.7620028	-104.9343976	39.7632231
-3490	907	3366	0.12816779719188	0.12816779719188	-104.934389	39.7644899	-104.9343764	39.7656425
-3492	3367	1297	0.200952363448705	0.200952363448705	-104.993544	39.7147942	-104.993537	39.712987
-3494	3368	3369	0.101405416836813	0.101405416836813	-104.9939645	39.7165966	-104.994016	39.7156855
-3495	3369	3370	0.0983850243457341	0.0983850243457341	-104.994016	39.7156855	-104.9939989	39.7148008
-3497	3371	3372	0.0654246270475212	0.0654246270475212	-104.9267742	39.7019885	-104.9262421	39.7015659
-3498	3372	2939	0.0903071880553539	0.0903071880553539	-104.9262421	39.7015659	-104.92577	39.7008395
-3499	2939	3373	0.0855248234583031	0.0855248234583031	-104.92577	39.7008395	-104.9252722	39.7001725
-3500	3373	59	0.083918142781954	0.083918142781954	-104.9252722	39.7001725	-104.9247401	39.6995385
-3502	3374	3375	0.253631602277532	0.253631602277532	-104.9240963	39.6988121	-104.9216081	39.6975721
-3503	3376	3377	0.201161683466984	0.201161683466984	-105.0346426	39.7329669	-105.0345825	39.7347754
-3505	3378	623	0.0117822953093903	0.0117822953093903	-105.0345825	39.7364651	-105.0346068	39.7365694
-3506	623	3379	0.132533255410588	0.132533255410588	-105.0346068	39.7365694	-105.0346077	39.7377613
-3507	3379	3380	0.0779035335014782	0.0779035335014782	-105.0346077	39.7377613	-105.0346105	39.7384619
-3508	3380	3381	0.206545256567466	0.206545256567466	-105.0346105	39.7384619	-105.0346043	39.7403194
-20694	10906	10909	0.0421787313564029	0.0421787313564029	-105.0403806	39.7653734	-105.0401144	39.7656928
-3509	3381	3382	0.13283549460514	0.13283549460514	-105.0346043	39.7403194	-105.0345957	39.741514
-3510	3382	3383	0.135569425081515	0.135569425081515	-105.0345957	39.741514	-105.0346003	39.7427332
-3511	3383	3384	0.136156970349478	0.136156970349478	-105.0346003	39.7427332	-105.0345657	39.7439574
-3512	3384	3385	0.132775661568888	0.132775661568888	-105.0345657	39.7439574	-105.0345837	39.7451514
-3514	2584	3386	0.177011208890761	0.177011208890761	-105.0350986	39.7229295	-105.0350981	39.7245214
-3515	3386	3387	0.0885846426355864	0.0885846426355864	-105.0350981	39.7245214	-105.0351109	39.725318
-3518	3389	3390	0.176205550995696	0.176205550995696	-105.034904	39.7165547	-105.0349211	39.7181393
-3519	3390	3391	0.169210992899206	0.169210992899206	-105.0349211	39.7181393	-105.0349049	39.719661
-3520	3391	3392	0.0099077669914251	0.0099077669914251	-105.0349049	39.719661	-105.034904	39.7197501
-3521	3392	1849	0.175456016508954	0.175456016508954	-105.034904	39.7197501	-105.0349126	39.721328
-3522	1849	2583	0.178501996899051	0.178501996899051	-105.0349126	39.721328	-105.0349367	39.7229332
-3524	600	3393	0.2153977841733	0.2153977841733	-105.0351121	39.7257688	-105.0351232	39.7277059
-3526	3394	3395	0.118920951518272	0.118920951518272	-105.0351404	39.7282472	-105.0351232	39.7293166
-3527	3395	3396	0.142989811640976	0.142989811640976	-105.0351232	39.7293166	-105.0351361	39.7306025
-3528	3396	3397	0.262177718796624	0.262177718796624	-105.0351361	39.7306025	-105.0351232	39.7329603
-3530	14	3398	0.133564321671034	0.133564321671034	-105.0345689	39.7463686	-105.0345861	39.7475697
-3531	3398	3399	0.133563180552006	0.133563180552006	-105.0345861	39.7475697	-105.0346118	39.7487707
-3532	3399	3400	0.135746766447532	0.135746766447532	-105.0346118	39.7487707	-105.0346118	39.7499915
-3533	3400	3401	0.133513247236878	0.133513247236878	-105.0346118	39.7499915	-105.0346192	39.7511922
-3534	3401	3402	0.0998328095575455	0.0998328095575455	-105.0346192	39.7511922	-105.0346118	39.75209
-3535	3402	3403	0.0352154332682272	0.0352154332682272	-105.0346118	39.75209	-105.0346118	39.7524067
-3536	3403	2405	0.0667725534497617	0.0667725534497617	-105.0346118	39.7524067	-105.0346118	39.7530072
-3537	2405	3404	0.0682403264820305	0.0682403264820305	-105.0346118	39.7530072	-105.0346118	39.7536209
-3538	3404	3405	0.033013773721009	0.033013773721009	-105.0346118	39.7536209	-105.0346118	39.7539178
-3539	3405	3409	0.0499933274562477	0.0499933274562477	-105.0346118	39.7539178	-105.0346129	39.7543674
-3540	3409	3410	0.0543299225353451	0.0543299225353451	-105.0346129	39.7543674	-105.034614	39.754856
-3541	3410	1767	0.0526619512572465	0.0526619512572465	-105.034614	39.754856	-105.0346147	39.7553296
-3542	1767	3411	0.150417295173728	0.150417295173728	-105.0346147	39.7553296	-105.034602	39.7566823
-3543	3411	2979	0.204011051874628	0.204011051874628	-105.034602	39.7566823	-105.0346118	39.758517
-3544	2979	656	0.0515792906446319	0.0515792906446319	-105.0346118	39.758517	-105.0346018	39.7589808
-3546	1887	591	0.0491592770696459	0.0491592770696459	-105.0346033	39.7594473	-105.0346033	39.7598894
-3547	591	3412	0.0481379602388448	0.0481379602388448	-105.0346033	39.7598894	-105.034608	39.7603223
-3548	3412	3413	0.102266489872996	0.102266489872996	-105.034608	39.7603223	-105.0346118	39.761242
-3549	3413	1888	0.0486842125387167	0.0486842125387167	-105.0346118	39.761242	-105.0346054	39.7616798
-3550	1888	3414	0.0510943840977224	0.0510943840977224	-105.0346054	39.7616798	-105.0346033	39.7621393
-3551	3414	3415	0.00919583632372114	0.00919583632372114	-105.0346033	39.7621393	-105.0346035	39.762222
-3552	3415	3416	0.0353489043837471	0.0353489043837471	-105.0346035	39.762222	-105.0346041	39.7625399
-17077	3568	8074	0.699339640197117	0.699339640197117	-104.9616097	39.7544552	-104.9615934	39.7607445
-3553	3416	3417	0.050093361124945	0.050093361124945	-105.0346041	39.7625399	-105.0346033	39.7629904
-3554	3417	3418	0.0498820440925909	0.0498820440925909	-105.0346033	39.7629904	-105.0346033	39.763439
-3555	3418	3419	0.0498984530952944	0.0498984530952944	-105.0346033	39.763439	-105.0346118	39.7638877
-3556	3419	3420	0.00880663819045291	0.00880663819045291	-105.0346118	39.7638877	-105.0346118	39.7639669
-3557	3420	3421	0.0410819827191675	0.0410819827191675	-105.0346118	39.7639669	-105.0346204	39.7643363
-3558	3421	3422	0.0491592770696459	0.0491592770696459	-105.0346204	39.7643363	-105.0346204	39.7647784
-3559	3422	3423	0.0205377029518591	0.0205377029518591	-105.0346204	39.7647784	-105.0346204	39.7649631
-3560	3423	3424	0.02549703249469	0.02549703249469	-105.0346204	39.7649631	-105.0346199	39.7651924
-3562	3425	3425	0.000442266584977921	0.000442266584977921	-105.0346312	39.7657434	-105.034629	39.7657398
-3563	3425	3426	0.0816315051221547	0.0816315051221547	-105.034629	39.7657398	-105.0346376	39.7664739
-3565	3427	1664	0.0502947464100412	0.0502947464100412	-105.0346332	39.7669387	-105.034629	39.767391
-3567	1683	3428	0.020460323508623	0.020460323508623	-105.0346312	39.7676742	-105.0346296	39.7678582
-3568	3428	3429	0.0515955226949506	0.0515955226949506	-105.0346296	39.7678582	-105.0346257	39.7683222
-3569	3429	3430	0.133978887334031	0.133978887334031	-105.0346257	39.7683222	-105.0346278	39.7695271
-3570	3430	2427	0.13659869274501	0.13659869274501	-105.0346278	39.7695271	-105.0346118	39.7707555
-3571	2427	2428	0.063830021941611	0.063830021941611	-105.0346118	39.7707555	-105.0346033	39.7713295
-3572	2428	3231	0.0696897365044123	0.0696897365044123	-105.0346033	39.7713295	-105.0345947	39.7719562
-3573	3231	3431	0.132766742414187	0.132766742414187	-105.0345947	39.7719562	-105.0345947	39.7731502
-3574	3431	3432	0.106360486773292	0.106360486773292	-105.0345947	39.7731502	-105.0346033	39.7741067
-3575	3432	3433	0.0970117847237812	0.0970117847237812	-105.0346033	39.7741067	-105.0345914	39.7749791
-3576	3433	3434	0.1971376871667	0.1971376871667	-105.0345914	39.7749791	-105.0345947	39.776752
-19819	5606	10648	0.0581167522759965	0.0581167522759965	-105.0015885	39.7300077	-105.0009089	39.7300077
-3577	3434	3435	0.133491532527273	0.133491532527273	-105.0345947	39.776752	-105.0346033	39.7779525
-3582	2842	3438	0.0923852774741301	0.0923852774741301	-105.0346113	39.7802434	-105.0345914	39.7810741
-3584	1421	317	0.102691144252484	0.102691144252484	-105.0345828	39.7821162	-105.0345742	39.7830397
-3585	317	513	0.0772222660891488	0.0772222660891488	-105.0345742	39.7830397	-105.0345487	39.7837339
-3586	513	3439	0.0612593596381532	0.0612593596381532	-105.0345487	39.7837339	-105.0345546	39.7842848
-3587	3439	3440	0.148872782400453	0.148872782400453	-105.0345546	39.7842848	-105.0345689	39.7856236
-3588	3440	2540	0.197920167618774	0.197920167618774	-105.0345689	39.7856236	-105.0345536	39.7874035
-3589	2540	3441	0.415850973508269	0.415850973508269	-105.0345536	39.7874035	-105.034619	39.791143
-3590	3442	699	0.201963508155417	0.201963508155417	-104.9465187	39.7401565	-104.9465157	39.7419728
-3591	699	3443	0.200352700158165	0.200352700158165	-104.9465157	39.7419728	-104.9465253	39.7437746
-3593	3444	3445	0.0185806742090463	0.0185806742090463	-104.9462569	39.7617553	-104.9462568	39.7619224
-20212	5504	7078	0.147322900830237	0.147322900830237	-104.9808533	39.7606816	-104.9796366	39.76162
-20213	7078	2034	0.146401533431931	0.146401533431931	-104.9796366	39.76162	-104.9784268	39.762552
-20214	2034	5323	0.145002332578884	0.145002332578884	-104.9784268	39.762552	-104.9772313	39.7634772
-20215	5323	632	0.146882687938452	0.146882687938452	-104.9772313	39.7634772	-104.976027	39.7644195
-4488	138	4177	0.203369481928684	0.203369481928684	-104.9910005	39.6930189	-104.9910305	39.6911901
-4489	4177	1741	0.0411375852444616	0.0411375852444616	-104.9910305	39.6911901	-104.9910219	39.6908202
-4490	1741	4178	0.159371364409943	0.159371364409943	-104.9910219	39.6908202	-104.9910391	39.689387
-4492	4179	4180	0.471114595558298	0.471114595558298	-104.9951206	39.7057312	-104.9922008	39.7021389
-4493	4180	4181	0.219268705400549	0.219268705400549	-104.9922008	39.7021389	-104.9925156	39.7001819
-4495	4182	4183	0.0994268923770179	0.0994268923770179	-104.9923595	39.714781	-104.992337	39.713887
-4496	4183	1296	0.100075433980265	0.100075433980265	-104.992337	39.713887	-104.992337	39.712987
-4497	1296	1369	0.0964029757899856	0.0964029757899856	-104.992337	39.712987	-104.9923595	39.7121202
-5794	5116	3795	0.199284062960758	0.199284062960758	-104.9706146	39.727291	-104.9706199	39.7290832
-18557	318	10316	0.0220547227626022	0.0220547227626022	-105.0344342	39.7830352	-105.0343233	39.7828561
-4499	4184	4185	0.301634217878433	0.301634217878433	-104.9923849	39.7111672	-104.9924234	39.7084547
-4501	2809	3744	0.0998445716696615	0.0998445716696615	-104.9921793	39.7165966	-104.9921878	39.7156987
-4502	3744	4186	0.10131230641957	0.10131230641957	-104.9921878	39.7156987	-104.9921793	39.7147876
-4504	4187	4188	0.132156563746112	0.132156563746112	-105.008021	39.7620353	-105.0080281	39.7632238
-4505	4188	4189	0.132402395077485	0.132402395077485	-105.0080281	39.7632238	-105.0080378	39.7644145
-4506	4189	4190	0.137552756241722	0.137552756241722	-105.0080378	39.7644145	-105.0080808	39.7656511
-4507	4190	4191	0.13379771872617	0.13379771872617	-105.0080808	39.7656511	-105.0080637	39.7668543
-4508	4191	1671	0.132214775902914	0.132214775902914	-105.0080637	39.7668543	-105.0080403	39.7680432
-4509	1671	4192	0.137147368544834	0.137147368544834	-105.0080403	39.7680432	-105.0080117	39.7692764
-4510	4192	2452	0.138219895716206	0.138219895716206	-105.0080117	39.7692764	-105.0080496	39.7705191
-4511	2452	3221	0.134932977312539	0.134932977312539	-105.0080496	39.7705191	-105.0080156	39.7717323
-4512	3221	4193	0.133628518122145	0.133628518122145	-105.0080156	39.7717323	-105.0080475	39.7729338
-4515	4195	554	0.154583323244677	0.154583323244677	-105.0077585	39.7352875	-105.0077561	39.7366777
-4516	554	4196	0.0224725093154139	0.0224725093154139	-105.0077561	39.7366777	-105.0077558	39.7368798
-4517	4083	4197	0.170590775930264	0.170590775930264	-105.0082472	39.7838436	-105.0081572	39.7853762
-4518	4197	3764	0.0397497113610314	0.0397497113610314	-105.0081572	39.7853762	-105.0079576	39.7856991
-4520	2820	1411	0.135923564862653	0.135923564862653	-105.0079788	39.7801613	-105.0079981	39.7813836
-4521	1411	1351	0.125050095081124	0.125050095081124	-105.0079981	39.7813836	-105.007995	39.7825082
-4523	4198	4199	0.454148647656551	0.454148647656551	-105.007437	39.721279	-105.0075072	39.7253629
-4525	4200	4201	0.133477223659273	0.133477223659273	-105.007629	39.7729337	-105.0075947	39.7741338
-4526	4201	4202	0.132617384077965	0.132617384077965	-105.0075947	39.7741338	-105.0076269	39.7753262
-4527	4202	4203	0.134214836424706	0.134214836424706	-105.0076269	39.7753262	-105.0076366	39.7765332
-4531	4206	1274	0.135021280032386	0.135021280032386	-105.0189551	39.7494633	-105.0204817	39.7497745
-4533	4207	4208	0.280988389053987	0.280988389053987	-105.0146092	39.7516734	-105.0166519	39.7496937
-4534	4209	4210	0.209285084830873	0.209285084830873	-105.0180383	39.7004566	-105.0180554	39.6985745
-4535	4210	4211	0.203065667561202	0.203065667561202	-105.0180554	39.6985745	-105.0180463	39.6967483
-4537	4212	3742	0.11682398880887	0.11682398880887	-105.018373	39.7168584	-105.0181498	39.7158219
-4538	3742	4213	0.111567725645095	0.111567725645095	-105.0181498	39.7158219	-105.018014	39.714824
-4539	4213	1339	0.201798845648163	0.201798845648163	-105.018014	39.714824	-105.0179868	39.7130093
-4541	4214	4215	0.203408625976642	0.203408625976642	-105.0180211	39.7111539	-105.018064	39.7093249
-4542	4215	4216	0.204114710404745	0.204114710404745	-105.018064	39.7093249	-105.0180812	39.7074893
-4543	4216	4217	0.199718562750948	0.199718562750948	-105.0180812	39.7074893	-105.0180726	39.7056932
-4544	4217	4218	0.198271148516705	0.198271148516705	-105.0180726	39.7056932	-105.0180383	39.7039103
-4545	4218	771	0.17255385564489	0.17255385564489	-105.0180383	39.7039103	-105.0180297	39.7023585
-4547	2307	165	0.313487377331004	0.313487377331004	-105.0183816	39.6959593	-105.0184206	39.6931402
-4549	4219	4220	0.186213228977795	0.186213228977795	-104.928034	39.690987	-104.9274781	39.6893679
-4551	754	1537	0.148966155582635	0.148966155582635	-104.9870376	39.7752102	-104.9869861	39.7765493
-4553	4221	4222	0.161148121345995	0.161148121345995	-104.9868954	39.7805099	-104.9869216	39.781959
-4554	4222	4223	0.216135114601666	0.216135114601666	-104.9869216	39.781959	-104.986953	39.7839026
-4555	4223	2863	0.186375265274556	0.186375265274556	-104.986953	39.7839026	-104.9869616	39.7855787
-4556	2863	4224	0.202043234198664	0.202043234198664	-104.9869616	39.7855787	-104.9869346	39.7873956
-4558	2306	163	0.315813218507964	0.315813218507964	-105.0174374	39.6959857	-105.0174975	39.6931459
-4560	2936	4225	0.221837398274975	0.221837398274975	-105.0178175	39.6879086	-105.01767	39.6859168
-4561	4226	4227	0.032037204481033	0.032037204481033	-104.9365695	39.6966812	-104.936211	39.696598
-4562	4227	3117	0.0749583948430369	0.0749583948430369	-104.936211	39.696598	-104.935335	39.696587
-4563	3117	4228	0.116878015161696	0.116878015161696	-104.935335	39.696587	-104.933969	39.696598
-4564	4228	4229	0.198835732908948	0.198835732908948	-104.933969	39.696598	-104.931645	39.696598
-4565	4229	3631	0.67836534857008	0.67836534857008	-104.931645	39.696598	-104.9237198	39.6967811
-4567	4230	4231	0.0278521738101303	0.0278521738101303	-104.9812906	39.6966263	-104.9809651	39.6966301
-4568	4231	3626	0.0483370034898742	0.0483370034898742	-104.9809651	39.6966301	-104.9804002	39.6966367
-4569	3626	4232	0.0510217447847317	0.0510217447847317	-104.9804002	39.6966367	-104.979804	39.6966266
-4570	4232	4233	0.0469996469262497	0.0469996469262497	-104.979804	39.6966266	-104.9792547	39.6966219
-4571	4233	4234	0.00322569080192639	0.00322569080192639	-104.9792547	39.6966219	-104.979217	39.6966216
-4572	4234	4235	0.0476498478152495	0.0476498478152495	-104.979217	39.6966216	-104.9786601	39.6966169
-4573	4235	4236	0.00275575991011001	0.00275575991011001	-104.9786601	39.6966169	-104.9786279	39.6966163
-4574	4236	4237	0.0466374525425622	0.0466374525425622	-104.9786279	39.6966163	-104.9780828	39.6966169
-4575	4237	4176	0.0490297893404984	0.0490297893404984	-104.9780828	39.6966169	-104.9775098	39.6966104
-4577	1777	4238	0.0499406466420926	0.0499406466420926	-104.9769241	39.6966037	-104.9763404	39.6966061
-4578	4238	4239	0.0481565861804565	0.0481565861804565	-104.9763404	39.6966061	-104.9757777	39.6965959
-4579	4239	4241	0.0519465642125291	0.0519465642125291	-104.9757777	39.6965959	-104.9751708	39.6966094
-4580	4241	1525	0.0497346926389818	0.0497346926389818	-104.9751708	39.6966094	-104.9745895	39.6966103
-4581	1525	4242	0.0484856348902157	0.0484856348902157	-104.9745895	39.6966103	-104.9740228	39.6966115
-4582	4242	4243	0.0507187078501555	0.0507187078501555	-104.9740228	39.6966115	-104.97343	39.6966128
-4584	4244	4245	0.0527177379947323	0.0527177379947323	-104.9827699	39.6966096	-104.983386	39.6966166
-4585	4245	4246	0.0464286276535365	0.0464286276535365	-104.983386	39.6966166	-104.9839286	39.6966228
-4586	4246	4247	0.0517965186978674	0.0517965186978674	-104.9839286	39.6966228	-104.984534	39.6966228
-4587	4247	4248	0.0444043495278385	0.0444043495278385	-104.984534	39.6966228	-104.985053	39.6966228
-4588	4248	569	0.0503939700372948	0.0503939700372948	-104.985053	39.6966228	-104.985642	39.6966206
-4589	569	4249	0.0487604458581461	0.0487604458581461	-104.985642	39.6966206	-104.9862119	39.6966237
-4590	4249	4250	0.049686610105401	0.049686610105401	-104.9862119	39.6966237	-104.9867926	39.6966289
-4591	4250	3757	0.0516485422129312	0.0516485422129312	-104.9867926	39.6966289	-104.9873962	39.696636
-4593	233	4251	0.0506501019029544	0.0506501019029544	-104.968695	39.6965912	-104.968103	39.6965907
-4594	4251	4252	0.049085285550805	0.049085285550805	-104.968103	39.6965907	-104.9675293	39.6965934
-4595	4252	4253	0.0509968613887819	0.0509968613887819	-104.9675293	39.6965934	-104.9669334	39.696583
-4596	4253	4254	0.0502265448038836	0.0502265448038836	-104.9669334	39.696583	-104.9663465	39.6965728
-4597	4254	4255	0.0465382189133341	0.0465382189133341	-104.9663465	39.6965728	-104.9658026	39.6965779
-4598	4255	4256	0.0510900830663337	0.0510900830663337	-104.9658026	39.6965779	-104.9652055	39.6965834
-4599	4256	4257	0.0497787434592631	0.0497787434592631	-104.9652055	39.6965834	-104.9646237	39.6965801
-4600	4257	3481	0.048623750791878	0.048623750791878	-104.9646237	39.6965801	-104.9640554	39.6965768
-4601	3481	4258	0.0500598342416855	0.0500598342416855	-104.9640554	39.6965768	-104.9634703	39.6965777
-4602	4258	4259	0.0490673464291656	0.0490673464291656	-104.9634703	39.6965777	-104.9628968	39.6965785
-4603	4259	4260	0.0504371465498466	0.0504371465498466	-104.9628968	39.6965785	-104.9623073	39.6965813
-4604	4260	3695	0.0479901081376225	0.0479901081376225	-104.9623073	39.6965813	-104.9617464	39.6965839
-4606	4261	4262	0.0501538740654185	0.0501538740654185	-104.9611486	39.6965834	-104.9605624	39.6965829
-4607	4262	4263	0.0491706548036751	0.0491706548036751	-104.9605624	39.6965829	-104.9599877	39.6965853
-4608	4263	4264	0.0565833994828839	0.0565833994828839	-104.9599877	39.6965853	-104.9593265	39.6965961
-4610	277	4265	0.0528934097089145	0.0528934097089145	-104.9875916	39.7783304	-104.9869736	39.7783568
-4611	4265	4266	0.0968160140004115	0.0968160140004115	-104.9869736	39.7783568	-104.9858407	39.7783502
-20627	10752	10756	0.0716547469239426	0.0716547469239426	-105.0229895	39.7619327	-105.0229933	39.7612883
-4612	4266	4267	0.0968245593658874	0.0968245593658874	-104.9858407	39.7783502	-104.9847077	39.7783568
-4613	4267	973	0.0982940228399724	0.0982940228399724	-104.9847077	39.7783568	-104.9835576	39.77837
-4614	973	4268	0.0961120665100732	0.0961120665100732	-104.9835576	39.77837	-104.9824332	39.7783502
-4615	4268	3151	0.0982830823377853	0.0982830823377853	-104.9824332	39.7783502	-104.9812831	39.7783502
-4616	3151	4269	0.0956500899819903	0.0956500899819903	-104.9812831	39.7783502	-104.980164	39.7783344
-4617	4269	4270	0.0774758788411222	0.0774758788411222	-104.980164	39.7783344	-104.9792574	39.7783303
-4619	4271	3870	0.115440404669678	0.115440404669678	-104.945419	39.778983	-104.9440689	39.7789476
-4620	3870	839	0.0968819352907846	0.0968819352907846	-104.9440689	39.7789476	-104.942936	39.7789146
-4621	839	4272	0.0909531666656291	0.0909531666656291	-104.942936	39.7789146	-104.9418717	39.778908
-4623	3911	4273	0.0389706485750465	0.0389706485750465	-104.9634588	39.7785997	-104.9630028	39.7785955
-4624	369	4274	0.037543890411303	0.037543890411303	-104.9593952	39.7789295	-104.9589559	39.778934
-4625	4274	4275	0.0617087098520115	0.0617087098520115	-104.9589559	39.778934	-104.9582338	39.7789377
-4629	2912	4277	0.0342245606725147	0.0342245606725147	-104.973349	39.7660612	-104.9736331	39.7662781
-4630	4277	4278	0.104948893572031	0.104948893572031	-104.9736331	39.7662781	-104.9745038	39.7669436
-4631	4278	3313	0.105285822276279	0.105285822276279	-104.9745038	39.7669436	-104.9753728	39.7676147
-4632	3313	4279	0.10593807567588	0.10593807567588	-104.9753728	39.7676147	-104.9762513	39.7682868
-4634	1347	1613	0.100174688565551	0.100174688565551	-104.9771684	39.7690078	-104.9779666	39.7696675
-4635	1613	4280	0.104997472753206	0.104997472753206	-104.9779666	39.7696675	-104.97885	39.7703237
-4665	4282	4283	0.0977314379471645	0.0977314379471645	-105.0344834	39.703983	-105.0344405	39.7031047
-4639	4284	4285	0.190476396365953	0.190476396365953	-104.9683885	39.7728911	-104.9705937	39.7726427
-4640	4285	4286	0.254383171783508	0.254383171783508	-104.9705937	39.7726427	-104.972693	39.7710209
-4642	4287	1279	0.116253581720056	0.116253581720056	-105.0191566	39.7536182	-105.0205165	39.7536172
-4643	1279	4288	0.133001385838575	0.133001385838575	-105.0205165	39.7536172	-105.0220723	39.7536126
-4644	4288	4289	0.132041969489344	0.132041969489344	-105.0220723	39.7536126	-105.0236168	39.7535999
-4645	4289	4290	0.131385678442372	0.131385678442372	-105.0236168	39.7535999	-105.0251537	39.7536044
-4647	3405	4291	0.101549832168715	0.101549832168715	-105.0346118	39.7539178	-105.0357997	39.753915
-4648	4291	4292	0.100523519517599	0.100523519517599	-105.0357997	39.753915	-105.0369756	39.753915
-4649	4292	4293	0.100138462817161	0.100138462817161	-105.0369756	39.753915	-105.0381466	39.7538916
-5953	5195	5227	0.170006104257124	0.170006104257124	-104.9891824	39.7241217	-104.9891795	39.7256506
-4650	4293	4294	0.099847555472709	0.099847555472709	-105.0381466	39.7538916	-105.039314	39.7539202
-4651	4294	4295	0.0503614009997415	0.0503614009997415	-105.039314	39.7539202	-105.0399031	39.7539235
-4652	4295	1117	0.0494296215921	0.0494296215921	-105.0399031	39.7539235	-105.0404813	39.7539268
-4653	1117	4296	0.050087846881447	0.050087846881447	-105.0404813	39.7539268	-105.0410672	39.7539301
-4654	4296	4297	0.0495578429804187	0.0495578429804187	-105.0410672	39.7539301	-105.0416469	39.7539334
-4655	4297	4298	0.0515578068709943	0.0515578068709943	-105.0416469	39.7539334	-105.04225	39.7539306
-20458	10785	10812	0.0256322806680483	0.0256322806680483	-105.0187626	39.7585641	-105.018527	39.7587067
-4656	4298	4299	0.00303478875120781	0.00303478875120781	-105.04225	39.7539306	-105.0422855	39.7539305
-4659	4300	1508	0.0639307257992365	0.0639307257992365	-105.0343976	39.6954706	-105.0343718	39.694896
-4660	1508	179	0.201223720751325	0.201223720751325	-105.0343718	39.694896	-105.034389	39.6930864
-4661	179	1707	0.203441168484602	0.203441168484602	-105.034389	39.6930864	-105.0343547	39.691257
-4663	4301	4302	0.143365965722663	0.143365965722663	-105.0343542	39.6894282	-105.0344062	39.6881395
-4686	4303	4304	0.0764005624211503	0.0764005624211503	-105.0350499	39.705614	-105.0350241	39.7049272
-4664	4302	4305	2.47136733106287	2.47136733106287	-105.0344062	39.6881395	-105.034943	39.6659178
-17126	4306	4307	0.198891077653185	0.198891077653185	-104.9751709	39.7165103	-104.975203	39.7182988
-17128	4308	4309	0.137004722426324	0.137004722426324	-104.974055	39.717746	-104.9740333	39.716514
-4666	4283	4310	0.00807297378678342	0.00807297378678342	-105.0344405	39.7031047	-105.0344398	39.7030321
-4667	4310	4311	0.088125570928718	0.088125570928718	-105.0344398	39.7030321	-105.0344491	39.7022396
-4668	4311	4312	0.0140203745468903	0.0140203745468903	-105.0344491	39.7022396	-105.0344662	39.7021142
-19629	10518	10593	0.0691965251351115	0.0691965251351115	-104.9902799	39.7082903	-104.9910888	39.7082874
-4670	4313	4314	0.114544256923558	0.114544256923558	-105.0344405	39.7013547	-105.0344491	39.7003246
-4671	4314	4315	0.197539157423005	0.197539157423005	-105.0344491	39.7003246	-105.0344405	39.6985481
-4672	4315	4035	0.10133193665102	0.10133193665102	-105.0344405	39.6985481	-105.0344405	39.6976368
-4675	3389	4317	0.176922247784819	0.176922247784819	-105.034904	39.7165547	-105.034904	39.7149636
-4676	4317	1313	0.17698917639034	0.17698917639034	-105.034904	39.7149636	-105.0349008	39.7133719
-4677	1313	4318	0.2429613537943	0.2429613537943	-105.0349008	39.7133719	-105.0348954	39.7111869
-4678	4318	4319	0.0830631503019858	0.0830631503019858	-105.0348954	39.7111869	-105.0350327	39.7104474
-4679	4319	4320	0.0977203133854136	0.0977203133854136	-105.0350327	39.7104474	-105.0350756	39.7095692
-4680	4320	4321	0.113818121601187	0.113818121601187	-105.0350756	39.7095692	-105.0350499	39.7085458
-4681	4321	4322	0.0984100223094627	0.0984100223094627	-105.0350499	39.7085458	-105.0350241	39.707661
-4683	4323	4324	0.0484810817232728	0.0484810817232728	-105.0350585	39.7071591	-105.0350413	39.7067233
-4684	4324	4325	0.0969202903062125	0.0969202903062125	-105.0350413	39.7067233	-105.0350499	39.7058517
-4685	4325	4303	0.026431034063363	0.026431034063363	-105.0350499	39.7058517	-105.0350499	39.705614
-4687	4304	4326	0.107959479077584	0.107959479077584	-105.0350241	39.7049272	-105.0350499	39.7039565
-4689	4302	1574	0.191677995814021	0.191677995814021	-105.0344062	39.6881395	-105.0360845	39.6869978
-4691	3672	4328	0.125428790986072	0.125428790986072	-104.9769586	39.747508	-104.976953	39.748636
-4692	4328	4329	0.0951720176425212	0.0951720176425212	-104.976953	39.748636	-104.9769503	39.7494919
-4693	4329	4330	0.139038263486678	0.139038263486678	-104.9769503	39.7494919	-104.9769525	39.7507423
-4694	4330	4331	0.139714401472726	0.139714401472726	-104.9769525	39.7507423	-104.9769247	39.7519986
-4700	4334	4335	0.200429884058467	0.200429884058467	-104.9780308	39.7165201	-104.9780566	39.7183225
-4702	2368	4336	0.0171503416673458	0.0171503416673458	-104.9775163	39.7194106	-104.9775406	39.7195637
-4704	2899	4337	0.105099867009157	0.105099867009157	-104.9733522	39.7569824	-104.9721228	39.7569937
-4705	4337	4338	0.106056680315678	0.106056680315678	-104.9721228	39.7569937	-104.9708823	39.75701
-4706	4338	4339	0.104589847143113	0.104589847143113	-104.9708823	39.75701	-104.9696595	39.7569777
-4707	4339	4340	0.370832351150224	0.370832351150224	-104.9696595	39.7569777	-104.9653214	39.7569797
-4708	4340	4341	0.0529480373416704	0.0529480373416704	-104.9653214	39.7569797	-104.9647021	39.7569883
-4709	4341	3902	0.107541125657943	0.107541125657943	-104.9647021	39.7569883	-104.9634441	39.75698
-4710	3902	1039	0.104784630542914	0.104784630542914	-104.9634441	39.75698	-104.9622183	39.75698
-4711	1039	4342	0.104777071004161	0.104777071004161	-104.9622183	39.75698	-104.9609926	39.7569841
-4712	4342	4343	0.105248493254523	0.105248493254523	-104.9609926	39.7569841	-104.9597614	39.7569779
-4713	4343	4344	0.101108879740712	0.101108879740712	-104.9597614	39.7569779	-104.9585786	39.7569779
-4714	4344	3325	0.105024412220906	0.105024412220906	-104.9585786	39.7569779	-104.95735	39.7569806
-4715	3325	4345	0.102246237774905	0.102246237774905	-104.95735	39.7569806	-104.9561539	39.7569779
-4716	4345	4346	0.102726745739932	0.102726745739932	-104.9561539	39.7569779	-104.9549522	39.7569718
-4717	4346	2076	0.108443527267173	0.108443527267173	-104.9549522	39.7569718	-104.9536836	39.7569738
-4718	2076	2673	0.108454042008862	0.108454042008862	-104.9536836	39.7569738	-104.9524149	39.7569676
-6026	4668	5275	0.106680903376796	0.106680903376796	-104.9875126	39.713878	-104.9862654	39.7138801
-20495	10837	10818	0.00314569094185422	0.00314569094185422	-105.0192753	39.758524	-105.0193121	39.758524
-4719	2673	4123	0.102664740305431	0.102664740305431	-104.9524149	39.7569676	-104.9512139	39.7569666
-4720	4123	4347	0.110043125382133	0.110043125382133	-104.9512139	39.7569666	-104.9499266	39.7569714
-4721	4347	4348	0.0925868711229396	0.0925868711229396	-104.9499266	39.7569714	-104.9488435	39.7569684
-4722	4348	4349	0.101256639304288	0.101256639304288	-104.9488435	39.7569684	-104.9476591	39.756955
-4723	4349	3471	0.100333218908324	0.100333218908324	-104.9476591	39.756955	-104.9464855	39.7569418
-4724	3471	4350	0.101033713236321	0.101033713236321	-104.9464855	39.7569418	-104.9453036	39.7569471
-4726	850	4351	0.101364060095961	0.101364060095961	-104.9429726	39.7565327	-104.9417876	39.7564997
-4727	4351	4352	0.0951618291875102	0.0951618291875102	-104.9417876	39.7564997	-104.9406749	39.7564735
-4728	4352	4353	0.0166431794757682	0.0166431794757682	-104.9406749	39.7564735	-104.9404804	39.7564802
-4729	4353	4354	0.0900251519018866	0.0900251519018866	-104.9404804	39.7564802	-104.9394273	39.7564865
-4730	4354	4355	0.0948464364966571	0.0948464364966571	-104.9394273	39.7564865	-104.9383178	39.75648
-4731	4355	4356	0.0929916889983271	0.0929916889983271	-104.9383178	39.75648	-104.93723	39.7564733
-4732	4356	4357	0.0946584559856625	0.0946584559856625	-104.93723	39.7564733	-104.9361228	39.7564865
-4733	4357	2002	0.0939147825318954	0.0939147825318954	-104.9361228	39.7564865	-104.9350242	39.7564799
-4734	2002	3362	0.0961201849767339	0.0961201849767339	-104.9350242	39.7564799	-104.9338998	39.7564865
-4735	3362	2756	0.0936202724465644	0.0936202724465644	-104.9338998	39.7564865	-104.9328047	39.7564972
-4736	2756	4358	0.0928604520153806	0.0928604520153806	-104.9328047	39.7564972	-104.9317184	39.7564972
-4738	4359	3874	0.0985792493705747	0.0985792493705747	-104.9453012	39.7565195	-104.944148	39.7565195
-4740	4360	4361	0.589746493190754	0.589746493190754	-105.0055932	39.7209068	-105.0015929	39.7165869
-4742	501	1385	0.0995647502781281	0.0995647502781281	-105.0014928	39.7130323	-105.0016028	39.7121409
-4745	4363	4364	0.205829363021429	0.205829363021429	-105.0015367	39.7102427	-105.0014826	39.7083921
-4746	4364	4365	0.0921122756854079	0.0921122756854079	-105.0014826	39.7083921	-105.0015264	39.7075644
-4747	4365	4366	0.00988128080256074	0.00988128080256074	-105.0015264	39.7075644	-105.001522	39.7074756
-4748	4366	4367	0.0897681081567516	0.0897681081567516	-105.001522	39.7074756	-105.0015253	39.7066683
-4749	4367	4368	0.098598628932225	0.098598628932225	-105.0015253	39.7066683	-105.0015178	39.7057816
-4750	4368	4369	0.0959412440063823	0.0959412440063823	-105.0015178	39.7057816	-105.0015255	39.7049188
-4751	4369	4370	0.102131783313602	0.102131783313602	-105.0015255	39.7049188	-105.0014826	39.7040009
-4752	4370	783	0.172155062898013	0.172155062898013	-105.0014826	39.7040009	-105.001524	39.702453
-4753	783	4373	0.095162556755669	0.095162556755669	-105.001524	39.702453	-105.0015169	39.7015972
-4754	4373	4374	0.0961947364240104	0.0961947364240104	-105.0015169	39.7015972	-105.0014998	39.7007322
-4755	4374	2746	0.0976874440589729	0.0976874440589729	-105.0014998	39.7007322	-105.001474	39.6998539
-4756	2746	4375	0.105035684135392	0.105035684135392	-105.001474	39.6998539	-105.0014998	39.6989095
-4757	4375	4376	0.0939930714928361	0.0939930714928361	-105.0014998	39.6989095	-105.0014998	39.6980642
-4758	4376	4031	0.0955624767971731	0.0955624767971731	-105.0014998	39.6980642	-105.0014483	39.6972057
-4759	4031	4377	0.0560443290529964	0.0560443290529964	-105.0014483	39.6972057	-105.0015083	39.6967038
-4760	4377	1489	0.204591889958277	0.204591889958277	-105.0015083	39.6967038	-105.0015377	39.694864
-4762	145	1731	0.201807709171719	0.201807709171719	-105.0015377	39.6930676	-105.0015625	39.6912528
-4763	1731	360	0.203461803126836	0.203461803126836	-105.0015625	39.6912528	-105.0016107	39.6894234
-4767	2902	2038	0.0702037411311871	0.0702037411311871	-104.9733513	39.7595161	-104.9740667	39.759206
-4769	4380	4381	0.147155318321419	0.147155318321419	-104.9752846	39.7582739	-104.9764694	39.7573138
-4770	4381	4382	0.144957308053315	0.144957308053315	-104.9764694	39.7573138	-104.9776844	39.7564044
-4771	4382	4383	0.149312485085308	0.149312485085308	-104.9776844	39.7564044	-104.9788891	39.7554321
-4774	2688	4385	0.0765539017627299	0.0765539017627299	-104.9813184	39.7535997	-104.9819456	39.7531083
-4775	4385	4386	0.0705753548513159	0.0705753548513159	-104.9819456	39.7531083	-104.9825253	39.7526564
-4776	4386	4387	0.146933743759007	0.146933743759007	-104.9825253	39.7526564	-104.9837317	39.7517152
-4777	4387	4388	0.145923980731529	0.145923980731529	-104.9837317	39.7517152	-104.9849232	39.7507755
-4778	4388	4389	0.144339759907671	0.144339759907671	-104.9849232	39.7507755	-104.9861204	39.7498602
-4779	4389	4390	0.150103166473839	0.150103166473839	-104.9861204	39.7498602	-104.9873785	39.7489186
-4780	4390	4391	0.137983810664432	0.137983810664432	-104.9873785	39.7489186	-104.9885184	39.7480401
-4781	4391	4392	0.0104056356944031	0.0104056356944031	-104.9885184	39.7480401	-104.9886052	39.7479745
-4782	4392	4393	0.140241416108271	0.140241416108271	-104.9886052	39.7479745	-104.9897603	39.747079
-4783	4393	4394	0.1481833156111	0.1481833156111	-104.9897603	39.747079	-104.9909615	39.7461183
-4784	4394	4395	0.146837535132845	0.146837535132845	-104.9909615	39.7461183	-104.9921721	39.7451816
-4785	4395	4396	0.147176845167591	0.147176845167591	-104.9921721	39.7451816	-104.993398	39.7442524
-4786	4396	4397	0.145625871999305	0.145625871999305	-104.993398	39.7442524	-104.9946157	39.7433367
-4788	1072	4398	0.0934237929296376	0.0934237929296376	-105.009231	39.7782735	-105.0087458	39.7790264
-4790	4399	4400	0.1229191337931	0.1229191337931	-104.9607224	39.7225056	-104.961317	39.723512
-4791	4400	4401	0.117696624021516	0.117696624021516	-104.961317	39.723512	-104.9626217	39.7238487
-4792	4401	3916	0.0730141443209756	0.0730141443209756	-104.9626217	39.7238487	-104.9634696	39.7237721
-4794	4402	4403	3.26030129970045	3.26030129970045	-105.0326599	39.6602355	-105.0296941	39.6894671
-4795	4403	1705	0.202698536609182	0.202698536609182	-105.0296941	39.6894671	-105.0297026	39.69129
-4796	1705	176	0.202718600973581	0.202718600973581	-105.0297026	39.69129	-105.029737	39.6931129
-4797	176	1503	0.201219684641614	0.201219684641614	-105.029737	39.6931129	-105.0297284	39.6949225
-4798	1503	4404	0.202286968554481	0.202286968554481	-105.0297284	39.6949225	-105.0297364	39.6967417
-4799	4404	4405	0.200141278145387	0.200141278145387	-105.0297364	39.6967417	-105.0297627	39.6985415
-4800	4405	4406	0.0308542467827185	0.0308542467827185	-105.0297627	39.6985415	-105.0297541	39.6988189
-4801	4406	4407	0.168200323230532	0.168200323230532	-105.0297541	39.6988189	-105.0297971	39.7003312
-4802	4407	4408	0.11307645922142	0.11307645922142	-105.0297971	39.7003312	-105.0298056	39.7013481
-4803	4408	4409	0.0961947310408444	0.0961947310408444	-105.0298056	39.7013481	-105.0298056	39.7022132
-4804	4409	4410	0.0983990775592717	0.0983990775592717	-105.0298056	39.7022132	-105.0297971	39.7030981
-4806	4411	4413	0.099863884884034	0.099863884884034	-105.0298314	39.704016	-105.0298142	39.704914
-4809	4415	4416	0.102810116828889	0.102810116828889	-105.0297971	39.7067299	-105.0298142	39.7076544
-4810	4416	4417	0.0991628298509216	0.0991628298509216	-105.0298142	39.7076544	-105.0298486	39.7085458
-4811	4417	4418	0.0969872745595907	0.0969872745595907	-105.0298486	39.7085458	-105.0298056	39.7094174
-4812	4418	4419	0.0998556913489604	0.0998556913489604	-105.0298056	39.7094174	-105.0297971	39.7103154
-4813	4419	4420	0.0958355207238061	0.0958355207238061	-105.0297971	39.7103154	-105.0299687	39.7111671
-4814	4420	1307	0.243760388907656	0.243760388907656	-105.0299687	39.7111671	-105.0299945	39.7133592
-4815	1307	4421	0.179135026824832	0.179135026824832	-105.0299945	39.7133592	-105.0299945	39.7149702
-4818	4422	477	0.0591204183570981	0.0591204183570981	-105.0169124	39.7442891	-105.0173303	39.7447127
-4819	477	486	0.338636165035717	0.338636165035717	-105.0173303	39.7447127	-105.0180607	39.7477059
-4820	486	320	0.186794052108965	0.186794052108965	-105.0180607	39.7477059	-105.0174336	39.7493151
-4821	320	324	0.464671835959624	0.464671835959624	-105.0174336	39.7493151	-105.0152472	39.753141
-4822	324	531	0.0559979023034973	0.0559979023034973	-105.0152472	39.753141	-105.0148477	39.7535401
-4823	531	534	0.263162604733165	0.263162604733165	-105.0148477	39.7535401	-105.0126456	39.7551939
-4825	475	530	0.435551136576821	0.435551136576821	-105.0122615	39.7554827	-105.0085506	39.7581668
-4826	530	393	0.115152140819887	0.115152140819887	-105.0085506	39.7581668	-105.0075703	39.7588771
-4827	393	4423	0.203655322253385	0.203655322253385	-105.0075703	39.7588771	-105.0057667	39.7600738
-4828	4423	4424	0.538171924126244	0.538171924126244	-105.0057667	39.7600738	-105.0016238	39.7637183
-4829	4424	4426	0.419488421877639	0.419488421877639	-105.0016238	39.7637183	-104.998467	39.7666069
-4830	4426	4427	0.0323139283448777	0.0323139283448777	-104.998467	39.7666069	-104.9981322	39.7667419
-4833	4428	4429	0.198930926845217	0.198930926845217	-105.0227675	39.7175319	-105.0250933	39.717539
-4837	4432	4433	0.200460087837485	0.200460087837485	-105.0086074	39.7174296	-105.0109506	39.7174666
-4839	2920	3260	0.28373274915572	0.28373274915572	-104.9580338	39.7072718	-104.9578793	39.7047229
-4842	4436	726	0.0998645775500999	0.0998645775500999	-104.9500303	39.7012585	-104.9511976	39.7012585
-4843	726	52	0.170560718436498	0.170560718436498	-104.9511976	39.7012585	-104.9526824	39.7002349
-4844	52	4437	0.100090869280248	0.100090869280248	-104.9526824	39.7002349	-104.9534368	39.6995469
-4845	4437	3658	0.0591716781283333	0.0591716781283333	-104.9534368	39.6995469	-104.9536997	39.6990547
-4846	3658	4438	0.103033016475492	0.103033016475492	-104.9536997	39.6990547	-104.9546419	39.6984776
-4847	4438	4439	0.00533542340358722	0.00533542340358722	-104.9546419	39.6984776	-104.9546886	39.6984458
-4848	4439	3530	0.0426683766285225	0.0426683766285225	-104.9546886	39.6984458	-104.9550292	39.6981655
-4850	4440	1490	0.0653862418347059	0.0653862418347059	-105.0026535	39.6954583	-105.0026792	39.6948706
-4851	1490	146	0.199762763358791	0.199762763358791	-105.0026792	39.6948706	-105.002705	39.6930742
-4853	1733	4441	0.200262923415945	0.200262923415945	-105.0027266	39.6912507	-105.0027522	39.6894498
-4855	3554	4442	0.0495302719350299	0.0495302719350299	-104.9757464	39.7546182	-104.9759203	39.7550431
-4856	4442	4443	0.0498850541236187	0.0498850541236187	-104.9759203	39.7550431	-104.9763376	39.7553567
-4857	4443	4444	0.0512856921549244	0.0512856921549244	-104.9763376	39.7553567	-104.9767844	39.7556645
-4858	4444	3019	0.0117591853989501	0.0117591853989501	-104.9767844	39.7556645	-104.9768843	39.7557372
-4860	4445	4382	0.0530835076360593	0.0530835076360593	-104.9772635	39.7560534	-104.9776844	39.7564044
-4861	4382	4446	0.0528074946120117	0.0528074946120117	-104.9776844	39.7564044	-104.9781251	39.7567372
-4863	4447	4448	0.00600839331926655	0.00600839331926655	-104.9785209	39.7570361	-104.9785732	39.7570722
-4865	4449	4450	0.0531891993832321	0.0531891993832321	-104.9789969	39.757401	-104.9794422	39.7577351
-4866	4450	4451	0.0546720224408421	0.0546720224408421	-104.9794422	39.7577351	-104.9798733	39.7580983
-4867	4451	4452	0.0492877204975977	0.0492877204975977	-104.9798733	39.7580983	-104.9802783	39.7584138
-4868	4452	4453	0.0555740263590881	0.0555740263590881	-104.9802783	39.7584138	-104.980759	39.7587503
-4869	4453	4454	0.0508522899950145	0.0508522899950145	-104.980759	39.7587503	-104.981171	39.7590802
-4870	4454	4455	0.0539540438907939	0.0539540438907939	-104.981171	39.7590802	-104.9816151	39.759425
-4871	4455	4456	0.05278127500741	0.05278127500741	-104.9816151	39.759425	-104.9820633	39.7597515
-4872	4456	4457	0.0520682148022883	0.0520682148022883	-104.9820633	39.7597515	-104.9824777	39.7600947
-4873	4457	4458	0.0535945839553328	0.0535945839553328	-104.9824777	39.7600947	-104.9829353	39.7604242
-4874	4458	3308	0.105299206866662	0.105299206866662	-104.9829353	39.7604242	-104.983803	39.7610964
-4875	3308	4459	0.0532887340145185	0.0532887340145185	-104.983803	39.7610964	-104.9842417	39.7614369
-4876	4459	4460	0.0519293867850164	0.0519293867850164	-104.9842417	39.7614369	-104.9846721	39.7617665
-4878	2911	4461	0.104626210772024	0.104626210772024	-104.9733491	39.7657577	-104.972125	39.7657557
-4879	4461	4462	0.107626289516013	0.107626289516013	-104.972125	39.7657557	-104.9708658	39.7657536
-4880	4462	4463	0.104079175744358	0.104079175744358	-104.9708658	39.7657536	-104.9696481	39.7657517
-4881	4463	4464	0.104771521557699	0.104771521557699	-104.9696481	39.7657517	-104.9684223	39.7657497
-4882	4464	4465	0.105968126634263	0.105968126634263	-104.9684223	39.7657497	-104.9671825	39.7657477
-6192	5399	5400	0.276164012064383	0.276164012064383	-104.9659557	39.7557387	-104.9659604	39.7582223
-4883	4465	4466	0.105797186557688	0.105797186557688	-104.9671825	39.7657477	-104.9659447	39.7657457
-4884	4466	3135	0.104882643737148	0.104882643737148	-104.9659447	39.7657457	-104.9647176	39.7657437
-4885	3135	3907	0.109352834062615	0.109352834062615	-104.9647176	39.7657437	-104.9634382	39.7657416
-4886	3907	1046	0.105412573797977	0.105412573797977	-104.9634382	39.7657416	-104.9622049	39.7657396
-4887	1046	4467	0.052770391738213	0.052770391738213	-104.9622049	39.7657396	-104.9615875	39.7657386
-4888	4467	4468	0.0520438840305316	0.0520438840305316	-104.9615875	39.7657386	-104.9609786	39.7657376
-4889	4468	4469	0.10568608900916	0.10568608900916	-104.9609786	39.7657376	-104.9597421	39.7657356
-4890	4469	4470	0.101335564568208	0.101335564568208	-104.9597421	39.7657356	-104.9585565	39.7657337
-4891	4470	3332	0.103121923835041	0.103121923835041	-104.9585565	39.7657337	-104.95735	39.7657318
-4892	3332	4471	0.106386988921342	0.106386988921342	-104.95735	39.7657318	-104.9561053	39.7657297
-4893	4471	4472	0.0168550696022494	0.0168550696022494	-104.9561053	39.7657297	-104.9559081	39.7657294
-4894	4472	4473	0.0917114246562582	0.0917114246562582	-104.9559081	39.7657294	-104.9548351	39.7657277
-4895	4473	2083	0.101916806851718	0.101916806851718	-104.9548351	39.7657277	-104.9536427	39.7657257
-4896	2083	4474	0.104993787286419	0.104993787286419	-104.9536427	39.7657257	-104.9524143	39.7657237
-4897	4474	4129	0.105139069056382	0.105139069056382	-104.9524143	39.7657237	-104.9511842	39.7657218
-4898	4129	4475	0.108754567624091	0.108754567624091	-104.9511842	39.7657218	-104.9499118	39.7657197
-4899	4475	4476	0.10144670106953	0.10144670106953	-104.9499118	39.7657197	-104.9487249	39.7657178
-4900	4476	4477	0.106139118962841	0.106139118962841	-104.9487249	39.7657178	-104.9474831	39.7657158
-4901	4477	3446	0.105344236005182	0.105344236005182	-104.9474831	39.7657158	-104.9462506	39.7657138
-4903	4478	4479	0.0124618097268169	0.0124618097268169	-104.9451778	39.765712	-104.945032	39.7657118
-4904	4479	4480	0.085822453683645	0.085822453683645	-104.945032	39.7657118	-104.9440279	39.7657101
-4905	4480	3886	0.0198123941785865	0.0198123941785865	-104.9440279	39.7657101	-104.9437961	39.7657098
-4907	865	4481	0.0967884909448593	0.0967884909448593	-104.9428501	39.7657082	-104.9417177	39.7657064
-4909	345	4482	0.111183183932549	0.111183183932549	-105.0067949	39.727165	-105.007537	39.727986
-4910	4483	1892	0.0285476317873184	0.0285476317873184	-105.0055781	39.7619094	-105.0052777	39.7620216
-4912	4360	4484	0.465117334225162	0.465117334225162	-105.0055932	39.7209068	-105.0055963	39.7250897
-4913	4484	4485	0.0326010116755978	0.0326010116755978	-105.0055963	39.7250897	-105.0056478	39.7253802
-4915	4486	4487	0.175931100170174	0.175931100170174	-105.0052345	39.7321295	-105.005256	39.7337116
-4916	4487	4489	0.100342363380826	0.100342363380826	-105.005256	39.7337116	-105.0052547	39.734614
-4917	4489	4490	0.161656025882071	0.161656025882071	-105.0052547	39.734614	-105.0052486	39.7360678
-4918	4490	4491	0.0905242566324277	0.0905242566324277	-105.0052486	39.7360678	-105.0052452	39.7368819
-4919	4491	1950	0.169005169872083	0.169005169872083	-105.0052452	39.7368819	-105.005245	39.7384018
-4920	1950	4492	0.126063150124326	0.126063150124326	-105.005245	39.7384018	-105.0052379	39.7395355
-4924	4081	3762	0.180617937803326	0.180617937803326	-105.005155	39.7838353	-105.0051409	39.7854596
-4926	2559	4495	0.0875396307338273	0.0875396307338273	-105.0051367	39.7862559	-105.0051056	39.7870428
-4927	4495	4496	0.0902282586364627	0.0902282586364627	-105.0051056	39.7870428	-105.0051314	39.787854
-4928	4496	4497	0.0878475091612825	0.0878475091612825	-105.0051314	39.787854	-105.0051406	39.788644
-4929	4497	4498	0.266301743580547	0.266301743580547	-105.0051406	39.788644	-105.005132	39.7910389
-4930	180	1708	0.203431976552675	0.203431976552675	-105.0355649	39.693093	-105.0355391	39.6912636
-4931	1708	4499	0.201230804203475	0.201230804203475	-105.0355391	39.6912636	-105.0355305	39.6894539
-4932	4499	1575	0.27729796539772	0.27729796539772	-105.0355305	39.6894539	-105.0369943	39.687229
-4933	1575	4500	0.182259795470885	0.182259795470885	-105.0369943	39.687229	-105.0371589	39.6855948
-4934	4501	4502	0.199005560216138	0.199005560216138	-105.0355649	39.7003312	-105.0355649	39.6985415
-4935	4502	4503	0.153202263597584	0.153202263597584	-105.0355649	39.6985415	-105.0355129	39.6971643
-4937	4504	4505	0.176923776962641	0.176923776962641	-105.0361142	39.7165547	-105.0361056	39.7149636
-4938	4505	1315	0.176127860687443	0.176127860687443	-105.0361056	39.7149636	-105.0360883	39.7133797
-4939	1315	1371	0.176782045374234	0.176782045374234	-105.0360883	39.7133797	-105.0361028	39.7117899
-4940	1371	4506	0.0626491861453163	0.0626491861453163	-105.0361028	39.7117899	-105.036097	39.7112265
-4941	4506	4507	0.0851767549198192	0.0851767549198192	-105.036097	39.7112265	-105.0360799	39.7104606
-4943	3035	4508	0.210570172682267	0.210570172682267	-104.9468584	39.7590562	-104.9468841	39.7609498
-4945	54	4510	0.19332295953062	0.19332295953062	-104.9511976	39.7002019	-104.9527144	39.6989132
-4946	4510	3640	0.0466160975278989	0.0466160975278989	-104.9527144	39.6989132	-104.9529616	39.6985396
-4948	4511	3531	0.0618894465423491	0.0618894465423491	-104.9541278	39.6978107	-104.954611	39.6973965
-4949	3531	4512	0.0905408166059636	0.0905408166059636	-104.954611	39.6973965	-104.9546673	39.6965834
-4951	3926	707	0.0755598922064861	0.0755598922064861	-105.0032486	39.7632388	-105.0041326	39.7632399
-4952	707	4513	0.0978688769552162	0.0978688769552162	-105.0041326	39.7632399	-105.0052776	39.7632414
-4953	4513	4514	0.0992771410926943	0.0992771410926943	-105.0052776	39.7632414	-105.0064389	39.7632258
-4954	4514	4188	0.135836888761709	0.135836888761709	-105.0064389	39.7632258	-105.0080281	39.7632238
-4955	4188	2514	0.135033448601963	0.135033448601963	-105.0080281	39.7632238	-105.0096079	39.7632217
-4956	2514	4515	0.13515296788921	0.13515296788921	-105.0096079	39.7632217	-105.0111891	39.7632228
-4957	4515	4516	0.136409392488761	0.136409392488761	-105.0111891	39.7632228	-105.012785	39.7632228
-4959	4517	4518	0.0356088442137805	0.0356088442137805	-105.0133602	39.7632209	-105.0137768	39.7632209
-4960	4518	4519	0.0503802448307333	0.0503802448307333	-105.0137768	39.7632209	-105.0143662	39.7632176
-4961	4519	4520	0.127581150438839	0.127581150438839	-105.0143662	39.7632176	-105.0158588	39.7632228
-4962	4520	4521	0.132742519290442	0.132742519290442	-105.0158588	39.7632228	-105.0174118	39.7632228
-4963	4521	4522	0.13263462094456	0.13263462094456	-105.0174118	39.7632228	-105.0189635	39.7632145
-4964	4522	1243	0.132622916068163	0.132622916068163	-105.0189635	39.7632145	-105.0205151	39.7632155
-4965	1243	4523	0.132744954601011	0.132744954601011	-105.0205151	39.7632155	-105.0220681	39.7632083
-4966	4523	2724	0.131940306625131	0.131940306625131	-105.0220681	39.7632083	-105.0236117	39.7632032
-4967	2724	4524	0.125887507119952	0.125887507119952	-105.0236117	39.7632032	-105.0250845	39.7632041
-4968	4524	4525	0.0073166618478819	0.0073166618478819	-105.0250845	39.7632041	-105.0251701	39.7632042
-4970	4526	4527	0.188224997765616	0.188224997765616	-105.030062	39.7638851	-105.0322641	39.7638939
-4971	4527	3419	0.20066865963842	0.20066865963842	-105.0322641	39.7638939	-105.0346118	39.7638877
-4973	4528	4529	0.132643815391647	0.132643815391647	-105.022041	39.751211	-105.0220809	39.7524035
-4974	4529	4288	0.134447795927953	0.134447795927953	-105.0220809	39.7524035	-105.0220723	39.7536126
-4975	4288	4530	0.0675286789518799	0.0675286789518799	-105.0220723	39.7536126	-105.0220723	39.7542199
-4976	4530	4531	0.0681514911729941	0.0681514911729941	-105.0220723	39.7542199	-105.0220708	39.7548328
-4978	1833	2628	0.0976402650867344	0.0976402650867344	-105.0227761	39.7211827	-105.0227761	39.7220608
-4980	4532	4428	0.101312368020336	0.101312368020336	-105.0227589	39.7166208	-105.0227675	39.7175319
-4981	4428	4533	0.0998335149833254	0.0998335149833254	-105.0227675	39.7175319	-105.0227761	39.7184297
-4982	4533	4534	0.1027774706977	0.1027774706977	-105.0227761	39.7184297	-105.0227761	39.719354
-4984	4535	1833	0.103500237720645	0.103500237720645	-105.0227761	39.7202519	-105.0227761	39.7211827
-4986	4536	4537	0.0953225774659935	0.0953225774659935	-105.0221025	39.7275212	-105.0221238	39.7283783
-4988	4538	4539	0.19878482816443	0.19878482816443	-105.0216452	39.7766253	-105.0216547	39.778413
-4989	4539	2830	0.201604542004037	0.201604542004037	-105.0216547	39.778413	-105.0216335	39.780226
-4990	2830	1438	0.197694612690532	0.197694612690532	-105.0216335	39.780226	-105.0216256	39.7820039
-4991	1438	4540	0.179002123409013	0.179002123409013	-105.0216256	39.7820039	-105.0216205	39.7836137
-4993	4541	25	0.138059623303707	0.138059623303707	-105.022071	39.7560345	-105.0220707	39.7572761
-4994	25	4542	0.0645746983944002	0.0645746983944002	-105.0220707	39.7572761	-105.0220625	39.7578568
-4995	4542	2964	0.0670651945252806	0.0670651945252806	-105.0220625	39.7578568	-105.0220789	39.7584598
-4999	4545	4546	0.142258977482996	0.142258977482996	-105.0220798	39.7753463	-105.02204	39.7766253
-5001	4547	115	0.110830423505847	0.110830423505847	-105.0217032	39.7293091	-105.0217118	39.7303058
-5003	4548	4549	0.0776585367690646	0.0776585367690646	-105.0217136	39.7305028	-105.0217136	39.7312012
-5004	4549	4550	0.199094650034446	0.199094650034446	-105.0217136	39.7312012	-105.0217163	39.7329917
-5005	4550	4551	0.100232131513911	0.100232131513911	-105.0217163	39.7329917	-105.0217216	39.7338931
-5007	4552	2292	0.132777862181536	0.132777862181536	-105.0217376	39.7344378	-105.0217377	39.7356319
-5008	2292	4553	0.0918166647273585	0.0918166647273585	-105.0217377	39.7356319	-105.021729	39.7364576
-5009	4553	2534	0.18135507208955	0.18135507208955	-105.021729	39.7364576	-105.0217592	39.7380884
-5011	2627	4554	0.0924500575644084	0.0924500575644084	-105.0220898	39.7220653	-105.0220979	39.7228967
-5012	4554	4555	0.10983037862614	0.10983037862614	-105.0220979	39.7228967	-105.0221186	39.7238843
-5014	4523	4556	0.135380005592348	0.135380005592348	-105.0220681	39.7632083	-105.0220655	39.7644258
-5015	4556	4557	0.134346145402708	0.134346145402708	-105.0220655	39.7644258	-105.0220695	39.765634
-5016	4557	4558	0.133189336887005	0.133189336887005	-105.0220695	39.765634	-105.0220681	39.7668318
-5017	4558	1680	0.13514752705788	0.13514752705788	-105.0220681	39.7668318	-105.0220748	39.7680472
-5018	1680	4559	0.137419251565084	0.137419251565084	-105.0220748	39.7680472	-105.0220879	39.769283
-5020	4560	4064	0.13135456684589	0.13135456684589	-105.0220781	39.7475968	-105.0220781	39.7487781
-5021	4064	4561	0.134278993416053	0.134278993416053	-105.0220781	39.7487781	-105.0220781	39.7499857
-5023	4101	4562	0.159933235501875	0.159933235501875	-105.0216462	39.7841819	-105.0216379	39.7856202
-5025	4563	4564	0.407964486856081	0.407964486856081	-105.0216452	39.7874253	-105.0216326	39.7910942
-5026	4565	2188	0.10962848253063	0.10962848253063	-105.0146647	39.7375398	-105.0159468	39.7375377
-17150	4780	4781	0.199841658014134	0.199841658014134	-104.9751815	39.7020519	-104.9751707	39.7038491
-5028	4566	687	0.202530686471354	0.202530686471354	-104.9275226	39.7401271	-104.9275189	39.7419485
-5029	687	1982	0.159069792202276	0.159069792202276	-104.9275189	39.7419485	-104.9275343	39.743379
-5030	1982	1967	0.0383650278893233	0.0383650278893233	-104.9275343	39.743379	-104.9275397	39.743724
-5033	4567	1928	0.199711508236703	0.199711508236703	-104.9605404	39.7092844	-104.9605576	39.7074884
-5034	1928	4568	0.201653602761609	0.201653602761609	-104.9605576	39.7074884	-104.9605482	39.7056749
-5035	4568	3272	0.202185746700204	0.202185746700204	-104.9605482	39.7056749	-104.960549	39.7038566
-5036	3272	4569	0.20093413075273	0.20093413075273	-104.960549	39.7038566	-104.9605654	39.7020496
-5037	4569	85	0.20339775981857	0.20339775981857	-104.9605654	39.7020496	-104.9605654	39.7002204
-5038	85	3521	0.203998373883698	0.203998373883698	-104.9605654	39.7002204	-104.9605624	39.6983858
-5039	3521	4262	0.200473333246826	0.200473333246826	-104.9605624	39.6983858	-104.9605624	39.6965829
-5040	4262	4570	0.200485802986416	0.200485802986416	-104.9605624	39.6965829	-104.960571	39.6947799
-5041	4570	4571	0.201223720769428	0.201223720769428	-104.960571	39.6947799	-104.9605882	39.6929703
-5042	4571	4572	0.205786578364508	0.205786578364508	-104.9605882	39.6929703	-104.9605654	39.6911197
-5043	4572	4573	0.200686081138238	0.200686081138238	-104.9605654	39.6911197	-104.9605564	39.6893149
-5044	4573	4574	0.200311699167283	0.200311699167283	-104.9605564	39.6893149	-104.9605396	39.6875135
-5045	4575	4576	0.13275170286213	0.13275170286213	-105.0268099	39.7414867	-105.0283618	39.741523
-5046	4576	4011	0.136238719327193	0.136238719327193	-105.0283618	39.741523	-105.0299552	39.7415215
-5049	4578	3382	0.130912952312419	0.130912952312419	-105.0330646	39.7415188	-105.0345957	39.741514
-5050	3382	4579	0.10420964387947	0.10420964387947	-105.0345957	39.741514	-105.0358145	39.741514
-5051	4579	4580	0.100328081358343	0.100328081358343	-105.0358145	39.741514	-105.0369879	39.7415159
-5053	4581	4582	0.100688559836452	0.100688559836452	-105.0381505	39.741515	-105.0393281	39.7415201
-5054	4582	1104	0.099555514740453	0.099555514740453	-105.0393281	39.7415201	-105.0404924	39.7415105
-5055	1104	4583	0.100465419279427	0.100465419279427	-105.0404924	39.7415105	-105.0416673	39.7415228
-5056	4583	4584	0.100511332021349	0.100511332021349	-105.0416673	39.7415228	-105.0428428	39.7415308
-5057	4584	4585	0.0999153218838928	0.0999153218838928	-105.0428428	39.7415308	-105.0440113	39.7415206
-5059	3498	4586	0.198271673699608	0.198271673699608	-104.9477042	39.6983792	-104.9477042	39.6965961
-5060	4586	4587	0.203313884946152	0.203313884946152	-104.9477042	39.6965961	-104.9476874	39.6947677
-5062	4588	3598	0.162446986671654	0.162446986671654	-104.9320576	39.744666	-104.9301576	39.7446611
-5065	4590	4591	0.145581982651648	0.145581982651648	-104.9406235	39.7449365	-104.9389209	39.7449185
-20699	10909	10894	0.00288177410229764	0.00288177410229764	-105.0401144	39.7656928	-105.0400807	39.765692
-5066	4591	4592	0.145302049591696	0.145302049591696	-104.9389209	39.7449185	-104.9372215	39.7449317
-5067	4592	2013	0.147364635735888	0.147364635735888	-104.9372215	39.7449317	-104.9354979	39.7449269
-5068	2013	4593	0.147376079792043	0.147376079792043	-104.9354979	39.7449269	-104.9337742	39.7449365
-5069	4593	4594	0.146031742389181	0.146031742389181	-104.9337742	39.7449365	-104.9320662	39.7449299
-5071	4595	4596	0.179128666689522	0.179128666689522	-104.9581328	39.7438013	-104.9598011	39.7447758
-5072	4596	4597	0.0491363059718978	0.0491363059718978	-104.9598011	39.7447758	-104.9603758	39.7447782
-5073	4597	4598	0.0534283507033442	0.0534283507033442	-104.9603758	39.7447782	-104.9610007	39.7447808
-5074	4598	4599	0.051162571237203	0.051162571237203	-104.9610007	39.7447808	-104.9615991	39.7447832
-5076	1025	3894	0.103299911807114	0.103299911807114	-104.9622361	39.7447859	-104.9634443	39.7447909
-5077	3894	4600	0.113012549862716	0.113012549862716	-104.9634443	39.7447909	-104.9647661	39.7447963
-5078	4600	4601	0.103445240313361	0.103445240313361	-104.9647661	39.7447963	-104.965976	39.7448013
-5079	4601	4602	0.110216736617757	0.110216736617757	-104.965976	39.7448013	-104.9672651	39.7448066
-5080	4602	4603	0.098537605440947	0.098537605440947	-104.9672651	39.7448066	-104.9684176	39.7448114
-5081	4603	4604	0.10689939615188	0.10689939615188	-104.9684176	39.7448114	-104.9696679	39.7448166
-5082	4604	4605	0.104556664577465	0.104556664577465	-104.9696679	39.7448166	-104.9708908	39.7448216
-5083	4605	4606	0.106796784548208	0.106796784548208	-104.9708908	39.7448216	-104.9721399	39.7448268
-5084	4606	2884	0.106044347623682	0.106044347623682	-104.9721399	39.7448268	-104.9733802	39.7448319
-5085	2884	4607	0.118270695339941	0.118270695339941	-104.9733802	39.7448319	-104.9747635	39.7448376
-6370	5524	5525	0.0492521789985846	0.0492521789985846	-105.0392946	39.7738629	-105.0398709	39.7738651
-5087	4608	4609	0.117800444995037	0.117800444995037	-104.9761582	39.7448434	-104.977536	39.7448491
-5088	4609	4610	0.102641376464428	0.102641376464428	-104.977536	39.7448491	-104.9787365	39.7448539
-5089	4610	4611	0.0494099001663831	0.0494099001663831	-104.9787365	39.7448539	-104.9793144	39.7448564
-5090	4611	4612	0.0461096147761951	0.0461096147761951	-104.9793144	39.7448564	-104.9798537	39.7448587
-5091	4612	4613	0.102709817700352	0.102709817700352	-104.9798537	39.7448587	-104.981055	39.7448636
-5092	4613	4614	0.107788478157863	0.107788478157863	-104.981055	39.7448636	-104.9823157	39.7448688
-5093	4614	4615	0.106309381819152	0.106309381819152	-104.9823157	39.7448688	-104.9835591	39.744874
-5095	4618	4619	0.107514865026302	0.107514865026302	-104.9848531	39.7448793	-104.9861106	39.7448845
-5096	4619	4620	0.109618128547838	0.109618128547838	-104.9861106	39.7448845	-104.9873927	39.7448898
-5098	4621	4622	0.0890723635550207	0.0890723635550207	-104.9285042	39.7446792	-104.9274625	39.7446677
-5100	4623	4522	0.133190665745901	0.133190665745901	-105.0189564	39.7620167	-105.0189635	39.7632145
-5102	4624	4625	0.133658094916269	0.133658094916269	-105.0189554	39.7644371	-105.0189635	39.7656391
-5103	4625	4626	0.133656501053085	0.133656501053085	-105.0189635	39.7656391	-105.0189608	39.7668411
-5104	4626	1679	0.135152153872346	0.135152153872346	-105.0189608	39.7668411	-105.0189755	39.7680565
-5105	1679	4627	0.135024432224219	0.135024432224219	-105.0189755	39.7680565	-105.0189715	39.7692708
-5106	4627	2458	0.13515140493347	0.13515140493347	-105.0189715	39.7692708	-105.0189397	39.770486
-5107	2458	3226	0.138004027692966	0.138004027692966	-105.0189397	39.770486	-105.0189401	39.7717271
-5108	3226	4628	0.134323473833378	0.134323473833378	-105.0189401	39.7717271	-105.0189404	39.7729351
-5110	4629	4630	0.135446542572512	0.135446542572512	-105.0189408	39.7741298	-105.0189411	39.7753479
-19829	9519	10649	0.210072579992032	0.210072579992032	-105.0422578	39.7403509	-105.0422444	39.7384617
-5113	4632	4633	0.0947313767183171	0.0947313767183171	-105.0192808	39.733891	-105.0192915	39.7347429
-5115	4634	4635	0.0557913419625853	0.0557913419625853	-105.0192656	39.7311969	-105.0192742	39.7316986
-5116	4635	4636	0.0662366225916723	0.0662366225916723	-105.0192742	39.7316986	-105.0191455	39.732286
-5117	4636	4637	0.113593419326123	0.113593419326123	-105.0191455	39.732286	-105.0198922	39.7331309
-5120	4639	4640	0.132773960128622	0.132773960128622	-105.0193449	39.7766055	-105.0193287	39.7777995
-5121	4640	2488	0.134241502580257	0.134241502580257	-105.0193287	39.7777995	-105.0193545	39.7790066
-5122	2488	2829	0.133449886794901	0.133449886794901	-105.0193545	39.7790066	-105.0193075	39.7802062
-5123	2829	1437	0.199500232175966	0.199500232175966	-105.0193075	39.7802062	-105.0193247	39.7820003
-5124	1437	4641	0.151025004831673	0.151025004831673	-105.0193247	39.7820003	-105.0193032	39.7833584
-5126	4642	114	0.107737280643715	0.107737280643715	-105.0192742	39.7293289	-105.0192781	39.7302978
-5127	114	4643	0.05007218616811	0.05007218616811	-105.0192781	39.7302978	-105.0192742	39.7307481
-5129	4644	4645	0.207043620739087	0.207043620739087	-105.018682	39.7183967	-105.0186476	39.7202585
-5130	4645	1842	0.100003312332805	0.100003312332805	-105.0186476	39.7202585	-105.0186351	39.7211578
-5131	1842	2639	0.103345313678593	0.103345313678593	-105.0186351	39.7211578	-105.0186305	39.7220872
-5132	2639	4646	0.199597531872746	0.199597531872746	-105.0186305	39.7220872	-105.0186425	39.7238822
-5133	4646	4647	0.110338949764664	0.110338949764664	-105.0186425	39.7238822	-105.0186451	39.7248745
-5134	4647	4648	0.0862326024249021	0.0862326024249021	-105.0186451	39.7248745	-105.0186498	39.72565
-5135	4648	4649	0.00885483385456902	0.00885483385456902	-105.0186498	39.72565	-105.0186468	39.7257296
-5136	4649	4650	0.198772614686204	0.198772614686204	-105.0186468	39.7257296	-105.018672	39.7275171
-5138	275	4651	0.385379364010995	0.385379364010995	-105.0183528	39.7401138	-105.0171429	39.7434524
-5139	4651	4652	0.41471692527459	0.41471692527459	-105.0171429	39.7434524	-105.018965	39.7469089
-5140	4652	4653	0.0539741907357585	0.0539741907357585	-105.018965	39.7469089	-105.0189634	39.7473943
-5141	4653	4654	0.022194548523775	0.022194548523775	-105.0189634	39.7473943	-105.0189639	39.7475939
-5142	4654	4206	0.207869157343365	0.207869157343365	-105.0189639	39.7475939	-105.0189551	39.7494633
-5144	4655	4656	0.134281006104493	0.134281006104493	-105.0191439	39.7512186	-105.0191525	39.7524262
-5145	4656	2404	0.0664009097985413	0.0664009097985413	-105.0191525	39.7524262	-105.0191633	39.7530233
-5146	2404	4287	0.0661523414774278	0.0661523414774278	-105.0191633	39.7530233	-105.0191566	39.7536182
-5147	4287	4657	0.134479579019433	0.134479579019433	-105.0191566	39.7536182	-105.0191606	39.7548276
-5149	4658	4659	0.0841530151799317	0.0841530151799317	-105.0191633	39.7552936	-105.0191593	39.7560504
-5150	4659	23	0.134991372812694	0.134991372812694	-105.0191593	39.7560504	-105.0191645	39.7572644
-5152	4098	4660	0.191146561014702	0.191146561014702	-105.0193253	39.7838997	-105.0193139	39.7856187
-5153	4660	4661	0.201619149588839	0.201619149588839	-105.0193139	39.7856187	-105.0193192	39.7874319
-5154	4661	4662	0.406108499193961	0.406108499193961	-105.0193192	39.7874319	-105.0193029	39.7910841
-5155	1948	2564	0.13210280054913	0.13210280054913	-105.0095234	39.7384742	-105.0095126	39.7396622
-5157	4663	388	0.102051980712047	0.102051980712047	-104.9982624	39.7134841	-104.9994213	39.713266
-5159	1442	4664	0.0822712120832148	0.0822712120832148	-105.0038934	39.7139133	-105.0048549	39.7139327
-5160	4664	4665	0.119816357959701	0.119816357959701	-105.0048549	39.7139327	-105.0062556	39.7139435
-5161	4665	4666	0.204097543225869	0.204097543225869	-105.0062556	39.7139435	-105.0086417	39.7139435
-5162	4666	4667	0.203014171650501	0.203014171650501	-105.0086417	39.7139435	-105.011015	39.7139241
-5164	4668	1869	0.212544115775742	0.212544115775742	-104.9875126	39.713878	-104.9899974	39.7138897
-5165	1869	4183	0.200120502606903	0.200120502606903	-104.9899974	39.7138897	-104.992337	39.713887
-5167	4669	2615	0.177891060007606	0.177891060007606	-104.994016	39.720921	-104.9940077	39.7225208
-5169	4670	4671	0.124038366426802	0.124038366426802	-104.9940093	39.7230042	-104.9940131	39.7241197
-5171	2421	3232	0.143042998317255	0.143042998317255	-104.9936465	39.7704869	-104.993638	39.7717733
-5173	4672	2028	0.132076698976753	0.132076698976753	-104.9936519	39.772996	-104.9936175	39.7741835
-5174	2028	4673	0.145972981302679	0.145972981302679	-104.9936175	39.7741835	-104.9936347	39.7754962
-5175	4673	4674	0.125161327150552	0.125161327150552	-104.9936347	39.7754962	-104.993638	39.7766218
-5177	3368	4675	0.102054188376367	0.102054188376367	-104.9939645	39.7165966	-104.9939817	39.7175143
-5178	4675	3714	0.0982241705421038	0.0982241705421038	-104.9939817	39.7175143	-104.9940184	39.7183972
-5179	3714	4676	0.103510692140635	0.103510692140635	-104.9940184	39.7183972	-104.9940356	39.719328
-5181	4677	4678	0.0648734285683964	0.0648734285683964	-104.9941264	39.7346802	-104.99412	39.7352636
-5182	4678	615	0.177689539069832	0.177689539069832	-104.99412	39.7352636	-104.9941215	39.7368616
-5183	615	4679	0.176110549937417	0.176110549937417	-104.9941215	39.7368616	-104.9941204	39.7384454
-5184	4679	4680	0.173776320124656	0.173776320124656	-104.9941204	39.7384454	-104.9941139	39.7400082
-5186	4681	4682	0.184513059882878	0.184513059882878	-104.9939973	39.7256815	-104.9940278	39.7273407
-5187	4682	4685	0.175211932943401	0.175211932943401	-104.9940278	39.7273407	-104.9940378	39.7289164
-5189	4686	4687	0.349232193394911	0.349232193394911	-104.9940692	39.730515	-104.9941176	39.7336555
-5191	1357	4688	0.13277378561117	0.13277378561117	-104.992658	39.7824897	-104.9926323	39.7836836
-5193	4689	4690	0.459634230640815	0.459634230640815	-105.043221	39.7097211	-105.048594	39.7097607
-5194	4691	4692	0.0991279407871357	0.0991279407871357	-105.0362258	39.7094372	-105.0373845	39.7094504
-5195	4692	4693	0.0976485109623955	0.0976485109623955	-105.0373845	39.7094504	-105.038526	39.7094438
-5197	4694	4695	0.0991197857977998	0.0991197857977998	-105.0397105	39.7094438	-105.0408692	39.7094504
-5198	4695	4696	0.10132403770971	0.10132403770971	-105.0408692	39.7094504	-105.0420537	39.7094504
-5199	4696	4697	0.0991849406088648	0.0991849406088648	-105.0420537	39.7094504	-105.0432124	39.7094834
-5201	1637	4698	0.104258284661182	0.104258284661182	-105.0156865	39.7093381	-105.0169053	39.7093381
-5202	4698	4215	0.0991281021081487	0.0991281021081487	-105.0169053	39.7093381	-105.018064	39.7093249
-5203	4215	4699	0.0976569662788289	0.0976569662788289	-105.018064	39.7093249	-105.0192055	39.7093117
-5204	4699	195	0.10058858208642	0.10058858208642	-105.0192055	39.7093117	-105.0203814	39.7093117
-5205	195	2924	0.0991416985641161	0.0991416985641161	-105.0203814	39.7093117	-105.0215401	39.7093315
-5206	2924	4700	0.0991366648288655	0.0991366648288655	-105.0215401	39.7093315	-105.0226989	39.7093183
-5207	4700	1462	0.100582700478246	0.100582700478246	-105.0226989	39.7093183	-105.0238747	39.7093117
-5208	1462	4701	0.102418321557774	0.102418321557774	-105.0238747	39.7093117	-105.0250719	39.709323
-5212	4704	1872	0.0821525251365273	0.0821525251365273	-104.9890412	39.7093409	-104.9900015	39.7093504
-17295	10015	3501	0.20024191652091	0.20024191652091	-104.9447901	39.696585	-104.9447794	39.6983858
-5214	1445	4705	0.199727367553687	0.199727367553687	-105.0039116	39.7093165	-105.0062462	39.7093429
-5215	4705	4706	0.203375496003776	0.203375496003776	-105.0062462	39.7093429	-105.0086237	39.7093429
-5216	4706	4707	0.201909493723453	0.201909493723453	-105.0086237	39.7093429	-105.010984	39.7093561
-5218	4708	403	0.0454257390325356	0.0454257390325356	-104.9701293	39.7802775	-104.970135	39.780686
-5219	403	314	0.0562503326449317	0.0562503326449317	-104.970135	39.780686	-104.970235	39.781186
-5220	314	4709	0.11119492664509	0.11119492664509	-104.970235	39.781186	-104.970235	39.782186
-5222	4711	4170	0.194203357035268	0.194203357035268	-104.9694168	39.7183425	-104.9694426	39.7200889
-5223	4170	4712	0.208127290131148	0.208127290131148	-104.9694426	39.7200889	-104.969428	39.7219606
-5224	4712	4713	0.198927723766577	0.198927723766577	-104.969428	39.7219606	-104.969428	39.7237496
-5225	4713	4714	0.204935128047674	0.204935128047674	-104.969428	39.7237496	-104.9694407	39.7255926
-5226	4714	4715	0.188520271439654	0.188520271439654	-104.9694407	39.7255926	-104.9694452	39.727288
-5227	4715	3793	0.199712422815397	0.199712422815397	-104.9694452	39.727288	-104.9694638	39.729084
-5228	3793	4716	0.152617432717184	0.152617432717184	-104.9694638	39.729084	-104.9694538	39.7304565
-5229	4716	944	0.17742675257367	0.17742675257367	-104.9694538	39.7304565	-104.969481	39.732052
-5230	944	2228	0.183696049186415	0.183696049186415	-104.969481	39.732052	-104.9694709	39.733704
-5231	2228	4717	0.162619098965448	0.162619098965448	-104.9694709	39.733704	-104.9695136	39.7351661
-5232	4717	4718	0.189722276081874	0.189722276081874	-104.9695136	39.7351661	-104.9695224	39.7368723
-5233	4718	4719	0.171945095410338	0.171945095410338	-104.9695224	39.7368723	-104.9695494	39.7384185
-5234	4719	4720	0.177429725627003	0.177429725627003	-104.9695494	39.7384185	-104.9696136	39.7400134
-5235	4720	4721	0.102690706769844	0.102690706769844	-104.9696136	39.7400134	-104.9696847	39.7409353
-5236	4721	4722	0.0746285232074726	0.0746285232074726	-104.9696847	39.7409353	-104.969674	39.7416064
-5237	4722	668	0.00411462210691817	0.00411462210691817	-104.969674	39.7416064	-104.9696776	39.7416433
-5238	668	4723	0.00380364497345728	0.00380364497345728	-104.9696776	39.7416433	-104.9696767	39.7416775
-5240	4724	4604	0.175355420651263	0.175355420651263	-104.9696749	39.7432396	-104.9696679	39.7448166
-5242	1146	875	0.136296969384937	0.136296969384937	-104.9696868	39.7632831	-104.9696488	39.7645085
-5244	4463	2783	0.133890793284356	0.133890793284356	-104.9696481	39.7657517	-104.9696421	39.7669558
-5245	2783	4725	0.132805963492264	0.132805963492264	-104.9696421	39.7669558	-104.9696275	39.7681501
-5246	4725	4726	0.129702593554695	0.129702593554695	-104.9696275	39.7681501	-104.9698076	39.7693083
-5247	4726	4727	0.147549019452937	0.147549019452937	-104.9698076	39.7693083	-104.9683879	39.7700633
-5249	4728	4729	0.134556994040934	0.134556994040934	-104.9696547	39.7482082	-104.9696554	39.7494183
-5250	4729	4730	0.00403637583696172	0.00403637583696172	-104.9696554	39.7494183	-104.9696554	39.7494546
-5251	4730	4731	0.00537071495727797	0.00537071495727797	-104.9696554	39.7494546	-104.9696554	39.7495029
-5252	4731	4732	0.135502150823282	0.135502150823282	-104.9696554	39.7495029	-104.9696561	39.7507215
-5253	4732	4733	0.139193822038205	0.139193822038205	-104.9696561	39.7507215	-104.9696568	39.7519733
-5254	4733	820	0.139638598300339	0.139638598300339	-104.9696568	39.7519733	-104.9696574	39.7532291
-5255	820	3561	0.13948292881931	0.13948292881931	-104.9696574	39.7532291	-104.9696581	39.7544835
-5256	3561	4734	0.140172337301063	0.140172337301063	-104.9696581	39.7544835	-104.9696588	39.7557441
-5257	4734	4339	0.137170074560425	0.137170074560425	-104.9696588	39.7557441	-104.9696595	39.7569777
-5258	4339	4735	0.138982548276464	0.138982548276464	-104.9696595	39.7569777	-104.9696601	39.7582276
-5259	4735	3054	0.142752059367152	0.142752059367152	-104.9696601	39.7582276	-104.9696608	39.7595114
-5260	3054	4736	0.133100340642693	0.133100340642693	-104.9696608	39.7595114	-104.9696615	39.7607084
-5261	4736	4737	0.00492593525024253	0.00492593525024253	-104.9696615	39.7607084	-104.9696615	39.7607527
-5263	4738	3350	0.0528651873534889	0.0528651873534889	-104.9576522	39.7225573	-104.9570341	39.7225614
-5264	3350	4739	0.10426363885095	0.10426363885095	-104.9570341	39.7225614	-104.9558154	39.7225375
-5265	4739	4740	0.102034414473958	0.102034414473958	-104.9558154	39.7225375	-104.9546224	39.7225441
-14766	5462	7420	0.173120091654239	0.173120091654239	-104.9804447	39.73843	-104.9804389	39.7368731
-5266	4740	2059	0.102862063735102	0.102862063735102	-104.9546224	39.7225441	-104.9534197	39.7225407
-5267	2059	2645	0.103513208640623	0.103513208640623	-104.9534197	39.7225407	-104.9522095	39.7225539
-5268	2645	4111	0.104240888550753	0.104240888550753	-104.9522095	39.7225539	-104.9509907	39.7225605
-5270	4741	4742	0.102769926646245	0.102769926646245	-104.9498232	39.7225289	-104.9486216	39.7225355
-5271	4742	4743	0.104240916363933	0.104240916363933	-104.9486216	39.7225355	-104.9474028	39.7225421
-5272	4743	3452	0.105180194746781	0.105180194746781	-104.9474028	39.7225421	-104.9461731	39.7225293
-5273	3452	4744	0.10036641032569	0.10036641032569	-104.9461731	39.7225293	-104.9449996	39.7225355
-5274	4744	3882	0.105711927066125	0.105711927066125	-104.9449996	39.7225355	-104.9437636	39.7225289
-5275	3882	845	0.10371038656759	0.10371038656759	-104.9437636	39.7225289	-104.942551	39.7225227
-5276	845	4745	0.104689829390385	0.104689829390385	-104.942551	39.7225227	-104.9413272	39.7225428
-5277	4745	4746	0.0469848225431211	0.0469848225431211	-104.9413272	39.7225428	-104.9407779	39.7225362
-5279	2610	4747	0.106209148179485	0.106209148179485	-104.9874808	39.7225308	-104.986239	39.7225388
-5280	4747	4748	0.0529916423937814	0.0529916423937814	-104.986239	39.7225388	-104.9856194	39.7225378
-5282	4749	4750	0.0385383772070312	0.0385383772070312	-104.9854584	39.7225389	-104.9850078	39.7225409
-5283	4750	966	0.102580898845139	0.102580898845139	-104.9850078	39.7225409	-104.9838084	39.7225355
-5285	990	4751	0.0998368598850094	0.0998368598850094	-104.97408	39.7219474	-104.9729128	39.7219606
-5286	4751	4752	0.0507426333200071	0.0507426333200071	-104.9729128	39.7219606	-104.9723195	39.7219606
-5287	4752	4753	0.0483650078238011	0.0483650078238011	-104.9723195	39.7219606	-104.971754	39.7219606
-5288	4753	1987	0.0507354905741477	0.0507354905741477	-104.971754	39.7219606	-104.9711608	39.7219572
-5289	1987	4754	0.0483663202205498	0.0483663202205498	-104.9711608	39.7219572	-104.9705953	39.721954
-5290	4754	446	0.051479549664384	0.051479549664384	-104.9705953	39.721954	-104.9699934	39.7219574
-5291	446	4712	0.0483577654581108	0.0483577654581108	-104.9699934	39.7219574	-104.969428	39.7219606
-5292	4712	4755	0.101297109225192	0.101297109225192	-104.969428	39.7219606	-104.9682436	39.7219606
-5293	4755	4756	0.0117741801721385	0.0117741801721385	-104.9682436	39.7219606	-104.9681062	39.721954
-5294	4756	4757	0.0826634733388868	0.0826634733388868	-104.9681062	39.721954	-104.9671402	39.7219786
-5295	4757	4758	0.0342509974874732	0.0342509974874732	-104.9671402	39.7219786	-104.96674	39.72199
-5296	4758	4759	0.0175268141449879	0.0175268141449879	-104.96674	39.72199	-104.9665355	39.7220002
-5297	4759	4760	0.0234785463070149	0.0234785463070149	-104.9665355	39.7220002	-104.966261	39.7219977
-5298	4760	4761	0.0484972333709921	0.0484972333709921	-104.966261	39.7219977	-104.9656944	39.7219804
-5299	4761	3126	0.0271800985558075	0.0271800985558075	-104.9656944	39.7219804	-104.9653769	39.7219698
-5300	3126	3148	0.0183600177870361	0.0183600177870361	-104.9653769	39.7219698	-104.9651624	39.7219764
-5301	3148	3143	0.0330468719768483	0.0330468719768483	-104.9651624	39.7219764	-104.9647761	39.721983
-5302	3143	4762	0.0646645186035183	0.0646645186035183	-104.9647761	39.721983	-104.9640208	39.7219566
-5303	4762	3915	0.0595606911380279	0.0595606911380279	-104.9640208	39.7219566	-104.963325	39.7219789
-5304	3915	1052	0.123917065152439	0.123917065152439	-104.963325	39.7219789	-104.9620287	39.7224767
-5305	1052	4399	0.111768087862579	0.111768087862579	-104.9620287	39.7224767	-104.9607224	39.7225056
-5306	4399	4763	0.0469346079446244	0.0469346079446244	-104.9607224	39.7225056	-104.9601753	39.7225386
-5308	4764	4765	0.103730937833073	0.103730937833073	-104.959446	39.7225375	-104.9582333	39.722553
-5311	3155	4767	0.101587564129846	0.101587564129846	-104.9811238	39.7224897	-104.979936	39.722487
-5312	4767	4768	0.101450282305199	0.101450282305199	-104.979936	39.722487	-104.9787498	39.7224871
-5313	4768	4769	0.102136172096814	0.102136172096814	-104.9787498	39.7224871	-104.9775557	39.7224741
-5314	4769	4770	0.0492382919352757	0.0492382919352757	-104.9775557	39.7224741	-104.97698	39.7224773
-5316	4771	4772	0.100332506519832	0.100332506519832	-104.9764091	39.7224805	-104.975236	39.722487
-5317	4772	4773	0.0490390048099826	0.0490390048099826	-104.975236	39.722487	-104.9746628	39.7224758
-5318	4773	989	0.0495269165196006	0.0495269165196006	-104.9746628	39.7224758	-104.9740839	39.7224644
-5320	4774	4775	0.110656269548842	0.110656269548842	-104.9406125	39.7231655	-104.9393188	39.7231502
-5321	4775	4776	0.0922568863786424	0.0922568863786424	-104.9393188	39.7231502	-104.9382401	39.7231549
-5322	4776	4777	0.0968744294941002	0.0968744294941002	-104.9382401	39.7231549	-104.9371074	39.7231516
-5323	4777	4778	0.0933681364009737	0.0933681364009737	-104.9371074	39.7231516	-104.9360157	39.7231479
-5324	4778	2017	0.096243154582377	0.096243154582377	-104.9360157	39.7231479	-104.9348905	39.7231609
-5325	2017	2007	0.0302079551181684	0.0302079551181684	-104.9348905	39.7231609	-104.9345373	39.7231591
-5326	2007	4779	0.0612998845077431	0.0612998845077431	-104.9345373	39.7231591	-104.9338206	39.7231525
-5327	4779	2763	0.0939372654248904	0.0939372654248904	-104.9338206	39.7231525	-104.9327223	39.7231433
-5328	2763	4782	0.0939831368366747	0.0939831368366747	-104.9327223	39.7231433	-104.9316237	39.7231631
-5329	4782	2267	0.0946761779636641	0.0946761779636641	-104.9316237	39.7231631	-104.9305167	39.7231657
-5330	2267	3596	0.0957452269737562	0.0957452269737562	-104.9305167	39.7231657	-104.9293972	39.7231683
-5332	4783	2096	0.0938496563543502	0.0938496563543502	-104.9282926	39.7231695	-104.9271953	39.7231622
-5333	2096	4784	0.0942585077375453	0.0942585077375453	-104.9271953	39.7231622	-104.9260932	39.7231675
-5334	4784	4785	0.0947863905236846	0.0947863905236846	-104.9260932	39.7231675	-104.924985	39.7231786
-5335	4785	2332	0.0940516760171392	0.0940516760171392	-104.924985	39.7231786	-104.9238853	39.7231807
-6607	5694	5695	0.0154325675938591	0.0154325675938591	-105.0360627	39.7071657	-105.0362429	39.7071723
-5337	4089	4787	0.198005363606862	0.198005363606862	-105.0135338	39.7838344	-105.0135283	39.7856151
-5339	4788	4789	0.404049086255387	0.404049086255387	-105.013522	39.787431	-105.013525	39.7910647
-5340	4790	119	0.0976422064224313	0.0976422064224313	-105.0128361	39.7293183	-105.0128289	39.7301964
-5341	119	4791	0.0958834096516534	0.0958834096516534	-105.0128289	39.7301964	-105.0128297	39.7310587
-5342	4791	2312	0.0465244099907656	0.0465244099907656	-105.0128297	39.7310587	-105.0128321	39.7314771
-5344	4792	2484	0.133450471266853	0.133450471266853	-105.0126909	39.7777735	-105.0126768	39.7789736
-5345	2484	2823	0.13353766665554	0.13353766665554	-105.0126768	39.7789736	-105.0126652	39.7801745
-5346	2823	1414	0.132023734494372	0.132023734494372	-105.0126652	39.7801745	-105.0126737	39.7813618
-5347	1414	1354	0.131894209152808	0.131894209152808	-105.0126737	39.7813618	-105.0126985	39.7825478
-5348	1354	4793	0.0769784662870068	0.0769784662870068	-105.0126985	39.7825478	-105.0126685	39.7832397
-5350	4794	4795	0.0387509077758481	0.0387509077758481	-105.0131497	39.7568505	-105.0131391	39.7571989
-5351	4795	2952	0.134935498636386	0.134935498636386	-105.0131391	39.7571989	-105.013135	39.7584124
-5352	2952	4796	0.136197421914805	0.136197421914805	-105.013135	39.7584124	-105.0131498	39.7596372
-5353	4796	4797	0.129998438382796	0.129998438382796	-105.0131498	39.7596372	-105.0131458	39.7608063
-5354	4797	4798	0.134935065412598	0.134935065412598	-105.0131458	39.7608063	-105.0131467	39.7620198
-5356	2635	4799	0.200962590925039	0.200962590925039	-105.0131527	39.7220573	-105.0131527	39.72025
-5357	4799	4800	0.183883066303689	0.183883066303689	-105.0131527	39.72025	-105.0131518	39.7185963
-5358	4801	4802	0.0508168176081005	0.0508168176081005	-105.0127766	39.7620198	-105.0127798	39.7624768
-5359	4802	4516	0.0829526060571819	0.0829526060571819	-105.0127798	39.7624768	-105.012785	39.7632228
-6631	5709	5710	0.263510763458761	0.263510763458761	-105.0362218	39.7282406	-105.0362304	39.7306104
-5360	4516	4803	0.133849874797103	0.133849874797103	-105.012785	39.7632228	-105.0127721	39.7644265
-5361	4803	4804	0.135491260752817	0.135491260752817	-105.0127721	39.7644265	-105.0127751	39.765645
-5363	4805	1674	0.127474088546245	0.127474088546245	-105.0127781	39.7668943	-105.0127809	39.7680407
-5364	1674	4806	0.138137679733803	0.138137679733803	-105.0127809	39.7680407	-105.0127838	39.769283
-5366	4807	2455	0.134491411129426	0.134491411129426	-105.0135134	39.7692764	-105.0135199	39.7704859
-5367	2455	3223	0.138294178425788	0.138294178425788	-105.0135199	39.7704859	-105.0135136	39.7717296
-5369	4808	4809	0.133134706345954	0.133134706345954	-105.0135073	39.7729344	-105.0135012	39.7741317
-5370	4809	4810	0.135569856870466	0.135569856870466	-105.0135012	39.7741317	-105.0134951	39.7753509
-5371	4810	4811	0.134368341783309	0.134368341783309	-105.0134951	39.7753509	-105.0134913	39.7765593
-5372	4811	4812	0.133035455825063	0.133035455825063	-105.0134913	39.7765593	-105.0134831	39.7777557
-5374	4813	4814	0.201931453578911	0.201931453578911	-105.0131892	39.7275003	-105.0131982	39.7293163
-5376	123	4815	0.0586808902574419	0.0586808902574419	-105.0068372	39.7583708	-105.0073436	39.7587271
-5377	1608	1158	0.0531893778682351	0.0531893778682351	-104.9996914	39.7528341	-104.9992501	39.7524969
-5378	1158	4816	0.0522853387259307	0.0522853387259307	-104.9992501	39.7524969	-104.9988196	39.7521629
-5379	4816	4817	0.0528559175260399	0.0528559175260399	-104.9988196	39.7521629	-104.9983798	39.7518288
-5380	4817	4818	0.0526139267336242	0.0526139267336242	-104.9983798	39.7518288	-104.9979466	39.7514927
-5382	4819	4820	0.146802081972091	0.146802081972091	-105.0080831	39.7592475	-105.0093022	39.7601774
-5383	4820	4821	0.146390170205012	0.146390170205012	-105.0093022	39.7601774	-105.0105051	39.7611145
-5384	4821	4822	0.0767990953688077	0.0767990953688077	-105.0105051	39.7611145	-105.0111481	39.7615969
-5386	3289	4824	0.0733337823028737	0.0733337823028737	-104.9455011	39.7038602	-104.9453876	39.7032065
-5387	4824	4825	0.151650147757225	0.151650147757225	-104.9453876	39.7032065	-104.9446221	39.7019764
-5389	97	3502	0.20326475820455	0.20326475820455	-104.9442146	39.7002138	-104.9442195	39.6983858
-5390	3502	4826	0.200021830134173	0.200021830134173	-104.9442195	39.6983858	-104.944235	39.696587
-5391	4826	4827	0.204558997826367	0.204558997826367	-104.944235	39.696587	-104.9441769	39.6947479
-5392	4827	4828	0.201476703732084	0.201476703732084	-104.9441769	39.6947479	-104.9441889	39.692936
-5394	4829	4830	0.558813274805265	0.558813274805265	-104.9441934	39.6893133	-104.9442154	39.6842878
-5395	3635	1894	0.33996915967689	0.33996915967689	-104.9460363	39.7095165	-104.9460234	39.7064591
-5396	1894	4831	0.234959433855918	0.234959433855918	-104.9460234	39.7064591	-104.9460063	39.7043461
-5397	4831	3288	0.0548366602436518	0.0548366602436518	-104.9460063	39.7043461	-104.9459732	39.7038536
-5399	3879	4832	0.175154251791819	0.175154251791819	-104.9437605	39.7162182	-104.9437601	39.714643
-5400	4832	3070	0.175288290924905	0.175288290924905	-104.9437601	39.714643	-104.9437655	39.7130666
-5402	4833	4834	0.239573627081124	0.239573627081124	-104.9437517	39.7114947	-104.9437682	39.7093402
-5404	3962	4835	0.197156843459588	0.197156843459588	-105.0001681	39.7165803	-105.0001358	39.7148074
-5405	4835	4836	0.094417767822886	0.094417767822886	-105.0001358	39.7148074	-104.9997732	39.7140054
-5406	4836	388	0.087554257922167	0.087554257922167	-104.9997732	39.7140054	-104.9994213	39.713266
-5407	388	1384	0.157773442883539	0.157773442883539	-104.9994213	39.713266	-104.998769	39.7119388
-5408	1384	4837	0.0895725883825947	0.0895725883825947	-104.998769	39.7119388	-104.9983742	39.7111927
-5409	4837	325	0.282856295391869	0.282856295391869	-104.9983742	39.7111927	-104.9964344	39.7091326
-6684	2175	5744	0.101148378971839	0.101148378971839	-105.0146888	39.7729346	-105.0158722	39.7729208
-5410	325	4838	0.0837092029011689	0.0837092029011689	-104.9964344	39.7091326	-104.9964173	39.7083799
-5411	4838	4840	0.0963811879451104	0.0963811879451104	-104.9964173	39.7083799	-104.9965817	39.7075224
-5412	4840	4841	0.421707851811283	0.421707851811283	-104.9965817	39.7075224	-104.995653	39.7037978
-5415	1486	144	0.196859858102641	0.196859858102641	-105.0003404	39.6948842	-105.000336	39.6931138
-5417	2194	4843	0.069400098080988	0.069400098080988	-104.999248	39.7553456	-104.9986941	39.7558019
-5418	4843	4844	0.128982538897387	0.128982538897387	-104.9986941	39.7558019	-104.9974984	39.7565094
-5420	4845	4846	0.127385402005959	0.127385402005959	-105.0049838	39.7515411	-105.0038505	39.7522849
-5421	4846	4847	0.0485354577138893	0.0485354577138893	-105.0038505	39.7522849	-105.0034718	39.7526101
-5422	4847	2197	0.0570536883887032	0.0570536883887032	-105.0034718	39.7526101	-105.0028674	39.7528277
-5423	2197	2198	0.0030293307914236	0.0030293307914236	-105.0028674	39.7528277	-105.0028654	39.7528005
-5425	2191	4848	0.228805525488878	0.228805525488878	-104.9936227	39.759356	-104.9915939	39.7606983
-5427	4281	2319	0.149466526420244	0.149466526420244	-104.9797003	39.7709793	-104.9784558	39.7719237
-5428	2319	4849	0.264070561759483	0.264070561759483	-104.9784558	39.7719237	-104.9763149	39.7736361
-5430	4850	4851	0.124106376215018	0.124106376215018	-104.9969821	39.757589	-104.996067	39.7584555
-5432	4852	4853	0.107373531206162	0.107373531206162	-104.987369	39.7352666	-104.9861135	39.7352834
-5433	4853	4854	0.108589473424165	0.108589473424165	-104.9861135	39.7352834	-104.9848436	39.7352795
-5434	4854	4855	0.105767467639199	0.105767467639199	-104.9848436	39.7352795	-104.9836067	39.7352829
-5435	4855	4856	0.0608956612626877	0.0608956612626877	-104.9836067	39.7352829	-104.9828985	39.7352253
-5436	4856	4857	0.0536676140413411	0.0536676140413411	-104.9828985	39.7352253	-104.9822782	39.7351518
-5438	4858	4859	0.053767328384899	0.053767328384899	-104.981675	39.7351569	-104.9810463	39.7351489
-5439	4859	4860	0.0517270733374725	0.0517270733374725	-104.9810463	39.7351489	-104.9804415	39.7351584
-5440	4860	4861	0.0506527251945452	0.0506527251945452	-104.9804415	39.7351584	-104.9798492	39.735165
-5441	4861	4862	0.0500931909858678	0.0500931909858678	-104.9798492	39.735165	-104.9792634	39.7351686
-5442	4862	4863	0.0473439516711298	0.0473439516711298	-104.9792634	39.7351686	-104.9787104	39.7351477
-5444	4864	4865	0.0521797446029276	0.0521797446029276	-104.9781817	39.7351466	-104.9775716	39.7351373
-17093	9466	677	0.17846620541914	0.17846620541914	-104.9603865	39.7432158	-104.960408	39.7416109
-17094	677	3719	0.359015096413943	0.359015096413943	-104.960408	39.7416109	-104.9604099	39.7383822
-5446	4866	4867	0.0492134016241179	0.0492134016241179	-104.9770059	39.7351417	-104.9764304	39.7351462
-5447	4867	4868	0.0506066180898924	0.0506066180898924	-104.9764304	39.7351462	-104.9758386	39.7351502
-5448	4868	4869	0.0483319487475015	0.0483319487475015	-104.9758386	39.7351502	-104.9752734	39.735154
-5449	4869	4870	0.0507611555520018	0.0507611555520018	-104.9752734	39.735154	-104.9746798	39.7351494
-5450	4870	980	0.0494869052239766	0.0494869052239766	-104.9746798	39.7351494	-104.9741011	39.735145
-5451	980	4871	0.0481249293188332	0.0481249293188332	-104.9741011	39.735145	-104.9735383	39.7351456
-5452	4871	4872	0.0462779203242365	0.0462779203242365	-104.9735383	39.7351456	-104.9729971	39.7351462
-20332	10741	10746	0.00836528320993219	0.00836528320993219	-105.0236254	39.7588748	-105.0236226	39.75895
-5453	4872	4873	0.0504026300689218	0.0504026300689218	-104.9729971	39.7351462	-104.9724077	39.7351513
-5454	4873	4874	0.0485554829183078	0.0485554829183078	-104.9724077	39.7351513	-104.9718399	39.7351562
-5455	4874	4875	0.0534696334958417	0.0534696334958417	-104.9718399	39.7351562	-104.9712147	39.735165
-6731	5782	5783	0.00425137254991275	0.00425137254991275	-104.9941044	39.7503839	-104.9941411	39.7504097
-5456	4875	4876	0.0484412552758981	0.0484412552758981	-104.9712147	39.735165	-104.9706482	39.735165
-5458	4877	4717	0.0471074620934606	0.0471074620934606	-104.9700645	39.735165	-104.9695136	39.7351661
-5459	4717	4878	0.132709338239974	0.132709338239974	-104.9695136	39.7351661	-104.9679617	39.7351782
-5461	4879	3888	0.0983476297531957	0.0983476297531957	-104.9646143	39.7350528	-104.9634642	39.7350462
-5462	3888	1018	0.103492590132028	0.103492590132028	-104.9634642	39.7350462	-104.9622539	39.7350462
-5463	1018	4880	0.0514136092144711	0.0514136092144711	-104.9622539	39.7350462	-104.9616527	39.7350527
-5464	4880	4881	0.0525893579522226	0.0525893579522226	-104.9616527	39.7350527	-104.9610377	39.7350501
-5465	4881	3721	0.0533162444253223	0.0533162444253223	-104.9610377	39.7350501	-104.9604142	39.7350474
-5466	3721	4882	0.0519823122660099	0.0519823122660099	-104.9604142	39.7350474	-104.9598063	39.7350501
-5467	4882	4883	0.0522344210852062	0.0522344210852062	-104.9598063	39.7350501	-104.9591955	39.7350566
-5468	4883	4884	0.0505876398657049	0.0505876398657049	-104.9591955	39.7350566	-104.9586039	39.7350563
-5469	4884	3336	0.0998762512001326	0.0998762512001326	-104.9586039	39.7350563	-104.9574365	39.7350853
-5470	3336	4885	0.0991185753255084	0.0991185753255084	-104.9574365	39.7350853	-104.9562778	39.7351101
-5471	4885	4886	0.0963539908668941	0.0963539908668941	-104.9562778	39.7351101	-104.9551513	39.7351307
-5472	4886	4887	0.0885379825241657	0.0885379825241657	-104.9551513	39.7351307	-104.9541159	39.7351266
-5473	4887	4888	0.0119373214867398	0.0119373214867398	-104.9541159	39.7351266	-104.9539764	39.7351225
-5474	4888	2056	0.0843994384439808	0.0843994384439808	-104.9539764	39.7351225	-104.9529894	39.7351183
-5475	2056	4889	0.0133131298111966	0.0133131298111966	-104.9529894	39.7351183	-104.9528338	39.7351142
-5476	4889	2662	0.0974967707832978	0.0974967707832978	-104.9528338	39.7351142	-104.9516945	39.7351487
-5477	2662	4135	0.0954371783119999	0.0954371783119999	-104.9516945	39.7351487	-104.9505787	39.7351289
-5479	4890	4891	0.0937877451974264	0.0937877451974264	-104.9494864	39.7351307	-104.9483898	39.7351143
-5480	4891	4892	0.0948153596322219	0.0948153596322219	-104.9483898	39.7351143	-104.947281	39.73512
-5482	3459	4893	0.0478001833146321	0.0478001833146321	-104.9461795	39.735119	-104.9456205	39.7351177
-5484	4894	4895	0.0479027082737571	0.0479027082737571	-104.945082	39.7351139	-104.9445218	39.7351149
-5485	4895	4896	0.0478122905377956	0.0478122905377956	-104.9445218	39.7351149	-104.9439627	39.7351095
-5486	4896	859	0.0923773172496592	0.0923773172496592	-104.9439627	39.7351095	-104.9428825	39.7350975
-5487	859	454	0.0453886692992681	0.0453886692992681	-104.9428825	39.7350975	-104.9423517	39.7350982
-5488	454	4897	0.0453208554339034	0.0453208554339034	-104.9423517	39.7350982	-104.9418217	39.735096
-5489	4897	458	0.0453479211780813	0.0453479211780813	-104.9418217	39.735096	-104.9412914	39.7350999
-5492	4899	4900	0.0139467367099566	0.0139467367099566	-104.9407436	39.7346624	-104.9405805	39.7346624
-5493	4900	4901	0.0360421538971705	0.0360421538971705	-104.9405805	39.7346624	-104.9401595	39.7346781
-5494	4901	4902	0.0578381423218813	0.0578381423218813	-104.9401595	39.7346781	-104.9394839	39.7347032
-5495	4902	4903	0.00552719826630604	0.00552719826630604	-104.9394839	39.7347032	-104.9394193	39.7347015
-5496	4903	4904	0.0875768226675012	0.0875768226675012	-104.9394193	39.7347015	-104.9383957	39.7346753
-5497	4904	4905	0.0943606682528015	0.0943606682528015	-104.9383957	39.7346753	-104.9372922	39.7346747
-5498	4905	4906	0.0967192189659533	0.0967192189659533	-104.9372922	39.7346747	-104.9361612	39.7346852
-5499	4906	4907	0.098185525305783	0.098185525305783	-104.9361612	39.7346852	-104.935013	39.7346788
-5501	4908	2748	0.100541646868693	0.100541646868693	-104.9338415	39.7346803	-104.9326658	39.7346911
-5502	2748	4909	0.0966275722613029	0.0966275722613029	-104.9326658	39.7346911	-104.9315358	39.7346873
-5503	4909	4910	0.0992689355907326	0.0992689355907326	-104.9315358	39.7346873	-104.9303749	39.7346868
-5504	4910	4911	0.101479918551735	0.101479918551735	-104.9303749	39.7346868	-104.9291882	39.7346779
-6779	5822	3617	0.0484295076881561	0.0484295076881561	-104.9810031	39.6911678	-104.9804371	39.6911668
-5505	4911	4912	0.0969181343296834	0.0969181343296834	-104.9291882	39.7346779	-104.9280548	39.7346813
-5507	2121	4913	0.0979459294550903	0.0979459294550903	-104.9268925	39.7346889	-104.9257471	39.7346951
-5508	4913	4914	0.0979869433285632	0.0979869433285632	-104.9257471	39.7346951	-104.9246012	39.7346918
-5509	4914	4915	0.197888030311115	0.197888030311115	-104.9246012	39.7346918	-104.922287	39.7346902
-5510	3113	4916	0.205521796352519	0.205521796352519	-104.9578008	39.7129346	-104.9580269	39.7110945
-5511	4916	4917	0.213014583006008	0.213014583006008	-104.9580269	39.7110945	-104.9558286	39.7101945
-5514	1222	4919	0.098914174918745	0.098914174918745	-105.0123423	39.7375848	-105.0134991	39.7375845
-5516	4920	1622	0.0585646429204787	0.0585646429204787	-104.9894816	39.7286261	-104.9899006	39.7290427
-5517	1622	4921	0.122620409777708	0.122620409777708	-104.9899006	39.7290427	-104.9906535	39.7299812
-5518	4921	4922	0.218423462474676	0.218423462474676	-104.9906535	39.7299812	-104.9919185	39.7316877
-5520	2815	4923	0.167710746898946	0.167710746898946	-104.9919925	39.7317917	-104.9929606	39.7331034
-5521	4923	4924	0.0980438120983448	0.0980438120983448	-104.9929606	39.7331034	-104.9935332	39.7338673
-5523	4677	4925	0.0746274432259007	0.0746274432259007	-104.9941264	39.7346802	-104.9945592	39.735263
-5525	4926	617	0.0797365701263369	0.0797365701263369	-104.9952734	39.7362407	-104.9957301	39.7368659
-5526	617	4927	0.125187481931903	0.125187481931903	-104.9957301	39.7368659	-104.9964542	39.7378444
-5527	4927	4928	0.0778528067673226	0.0778528067673226	-104.9964542	39.7378444	-104.9968967	39.7384563
-5528	4928	4929	0.199074396611122	0.199074396611122	-104.9968967	39.7384563	-104.9980335	39.7400187
-5532	4932	4933	0.00438034032424269	0.00438034032424269	-104.9989204	39.7415592	-104.9989403	39.7415955
-5533	4933	4934	0.0884200199820011	0.0884200199820011	-104.9989403	39.7415955	-104.9993415	39.7423284
-5534	4934	4935	0.245891005874257	0.245891005874257	-104.9993415	39.7423284	-104.9999815	39.7444843
-5535	4935	4936	0.142250751986944	0.142250751986944	-104.9999815	39.7444843	-105.0001355	39.7457581
-5536	4936	4937	0.0173695104401488	0.0173695104401488	-105.0001355	39.7457581	-105.0002133	39.7459024
-5538	4938	4939	0.203545296385478	0.203545296385478	-104.9976397	39.7384568	-104.9964751	39.7368603
-5540	1358	4940	0.12982829991663	0.12982829991663	-104.9942545	39.7824831	-104.9942716	39.7836506
-5543	4079	2536	0.319784261068233	0.319784261068233	-104.9938425	39.7841519	-104.9938854	39.7870276
-5545	4926	616	0.0701041786984163	0.0701041786984163	-104.9952734	39.7362407	-104.9952849	39.7368711
-5546	616	4942	0.177022653633518	0.177022653633518	-104.9952849	39.7368711	-104.9952889	39.7384631
-5547	4942	4943	0.172063039899941	0.172063039899941	-104.9952889	39.7384631	-104.9952896	39.7400105
-5549	4944	4945	0.149558307265757	0.149558307265757	-104.9951662	39.7166026	-104.9951594	39.7179476
-5550	4945	3715	0.0517838841978355	0.0517838841978355	-104.9951594	39.7179476	-104.995157	39.7184133
-5551	3715	4948	0.104024626392335	0.104024626392335	-104.995157	39.7184133	-104.9951641	39.7193488
-5552	4948	4949	0.174823058982553	0.174823058982553	-104.9951641	39.7193488	-104.9951748	39.720921
-5553	4949	2616	0.177668474307762	0.177668474307762	-104.9951748	39.720921	-104.9951825	39.7225188
-5554	2616	4950	0.0535070014349516	0.0535070014349516	-104.9951825	39.7225188	-104.9951823	39.723
-5555	4950	4951	0.124049062817869	0.124049062817869	-104.9951823	39.723	-104.995182	39.7241156
-5556	4951	4952	0.174777210980769	0.174777210980769	-104.995182	39.7241156	-104.995189	39.7256874
-5557	4952	4953	0.127620790205472	0.127620790205472	-104.995189	39.7256874	-104.9951981	39.7268351
-5558	4953	4954	0.0551759306609038	0.0551759306609038	-104.9951981	39.7268351	-104.995202	39.7273313
-5559	4954	4955	0.176133032867453	0.176133032867453	-104.995202	39.7273313	-104.9951984	39.7289153
-5560	4955	4956	0.177512737206305	0.177512737206305	-104.9951984	39.7289153	-104.9952321	39.7305115
-5562	4406	4957	0.277669971565855	0.277669971565855	-105.0297541	39.6988189	-105.0329814	39.6985547
-5564	4958	4959	0.199658223163124	0.199658223163124	-105.0250687	39.6992129	-105.0274024	39.6992151
-5566	1598	1655	0.160087686125488	0.160087686125488	-105.0137725	39.6990764	-105.0156436	39.6990896
-5568	4960	1592	0.199275601482479	0.199275601482479	-105.0109882	39.7047956	-105.0133176	39.7047886
-5569	1592	1643	0.201203252625689	0.201203252625689	-105.0133176	39.7047886	-105.0156693	39.7047622
-5571	4961	4369	0.0888591183295397	0.0888591183295397	-105.0004878	39.7048835	-105.0015255	39.7049188
-5572	4369	1450	0.193863730230332	0.193863730230332	-105.0015255	39.7049188	-105.0037914	39.7048924
-5573	1450	4962	0.20633144077854	0.20633144077854	-105.0037914	39.7048924	-105.0062033	39.7048924
-5575	4963	4964	0.865026893272847	0.865026893272847	-105.0432124	39.7049338	-105.0532477	39.7039798
-5577	4966	4413	0.196777109156883	0.196777109156883	-105.027514	39.7049206	-105.0298142	39.704914
-5578	4413	4967	0.224682445917882	0.224682445917882	-105.0298142	39.704914	-105.0324406	39.7049206
-5579	4967	4304	0.221012468473467	0.221012468473467	-105.0324406	39.7049206	-105.0350241	39.7049272
-5582	4969	4970	0.107069922554974	0.107069922554974	-104.9800922	39.781891	-104.9800953	39.7828539
-5583	4970	4972	0.0948495530272937	0.0948495530272937	-104.9800953	39.7828539	-104.980098	39.7837069
-5586	4269	4973	0.080198786030782	0.080198786030782	-104.980164	39.7783344	-104.9800837	39.779053
-5587	4974	4767	0.0973607348320062	0.0973607348320062	-104.9799651	39.7216117	-104.979936	39.722487
-5588	4767	4975	0.179413565332346	0.179413565332346	-104.979936	39.722487	-104.9799308	39.7241005
-5589	4975	4976	0.169917329199621	0.169917329199621	-104.9799308	39.7241005	-104.9799349	39.7256286
-5590	4976	4977	0.181948721536683	0.181948721536683	-104.9799349	39.7256286	-104.9799397	39.7272649
-5591	4977	3805	0.200239828466703	0.200239828466703	-104.9799397	39.7272649	-104.9799392	39.7290657
-5592	3805	4978	0.152216995314545	0.152216995314545	-104.9799392	39.7290657	-104.9799295	39.7304346
-5594	3620	4979	0.203157103314032	0.203157103314032	-104.9803501	39.716491	-104.9802827	39.7183173
-5595	4979	2366	0.112909559408727	0.112909559408727	-104.9802827	39.7183173	-104.9802624	39.7193326
-5596	2366	4147	0.176980531073324	0.176980531073324	-104.9802624	39.7193326	-104.9802738	39.7209242
-5597	4147	4980	0.0231632311908037	0.0231632311908037	-104.9802738	39.7209242	-104.9802767	39.7211325
-5599	4981	4982	0.122490029160582	0.122490029160582	-104.9800351	39.7844962	-104.9800523	39.7855977
-5600	4982	4983	0.198021379234554	0.198021379234554	-104.9800523	39.7855977	-104.9800351	39.7873785
-5602	4831	3290	0.14433688220634	0.14433688220634	-104.9460063	39.7043461	-104.9444349	39.7038735
-5604	4248	1783	0.203809923376497	0.203809923376497	-104.985053	39.6966228	-104.9850787	39.69479
-5605	1783	4984	0.197266471488896	0.197266471488896	-104.9850787	39.69479	-104.9851312	39.6930164
-5606	4984	4985	0.203487572214077	0.203487572214077	-104.9851312	39.6930164	-104.9851243	39.6911864
-5607	4985	4986	0.197825547248631	0.197825547248631	-104.9851243	39.6911864	-104.9851579	39.6894075
-5608	4986	4987	2.41542068401941	2.41542068401941	-104.9851579	39.6894075	-104.9851604	39.6676851
-5610	4989	4990	0.0962172324904451	0.0962172324904451	-104.9850107	39.7147282	-104.985045	39.7138633
-5611	4990	3077	0.102766134165042	0.102766134165042	-104.985045	39.7138633	-104.9850625	39.7129392
-5613	4991	322	0.0217232354992756	0.0217232354992756	-105.0155876	39.7516074	-105.0158044	39.7515055
-5614	322	4992	0.0357866971477297	0.0357866971477297	-105.0158044	39.7515055	-105.0161841	39.75137
-5615	4992	4993	0.0111993418256192	0.0111993418256192	-105.0161841	39.75137	-105.0163127	39.7513508
-5618	4994	3114	0.0796924849623814	0.0796924849623814	-104.9518573	39.713502	-104.9523224	39.712881
-5619	3114	4995	0.20745656668227	0.20745656668227	-104.9523224	39.712881	-104.9523191	39.7110153
-5621	4996	4997	0.202175143533063	0.202175143533063	-104.9523584	39.6965806	-104.952353	39.6947624
-5622	4997	4998	0.201486340865611	0.201486340865611	-104.952353	39.6947624	-104.9523609	39.6929504
-5623	4998	4999	0.201289887939002	0.201289887939002	-104.9523609	39.6929504	-104.9523772	39.6911402
-5624	4999	5000	0.201274447612783	0.201274447612783	-104.9523772	39.6911402	-104.9523825	39.6893301
-5625	5000	5001	0.402211090441065	0.402211090441065	-104.9523825	39.6893301	-104.952412	39.685713
-5627	1058	5002	0.0523412516567849	0.0523412516567849	-104.9523656	39.702949	-104.9525063	39.7024909
-5628	5002	5003	0.185331167798599	0.185331167798599	-104.9525063	39.7024909	-104.9542392	39.7014907
-5629	5003	3655	0.0518833582791727	0.0518833582791727	-104.9542392	39.7014907	-104.9546075	39.70112
-5632	5004	4344	0.139169147250759	0.139169147250759	-104.9585604	39.7557264	-104.9585786	39.7569779
-5633	4344	5005	0.13717907888566	0.13717907888566	-104.9585786	39.7569779	-104.9585602	39.7582115
-5634	5005	3044	0.136502893019444	0.136502893019444	-104.9585602	39.7582115	-104.95856	39.7594391
-5635	3044	5006	0.140687498507325	0.140687498507325	-104.95856	39.7594391	-104.9585719	39.7607043
-5636	5006	5007	0.0045870406114538	0.0045870406114538	-104.9585719	39.7607043	-104.9585692	39.7607455
-5637	5007	5008	0.137903992793689	0.137903992793689	-104.9585692	39.7607455	-104.9585679	39.7619857
-5638	5008	1165	0.1390388743026	0.1390388743026	-104.9585679	39.7619857	-104.9585626	39.7632361
-5640	885	4470	0.139218366547603	0.139218366547603	-104.9585659	39.7644817	-104.9585565	39.7657337
-5641	4470	2792	0.134293285442621	0.134293285442621	-104.9585565	39.7657337	-104.9585673	39.7669414
-5642	2792	5009	0.131431211174063	0.131431211174063	-104.9585673	39.7669414	-104.9585862	39.7681233
-5644	5012	739	0.391173244940122	0.391173244940122	-104.9582526	39.7728926	-104.9582445	39.7764105
-5645	739	1559	0.139743785900176	0.139743785900176	-104.9582445	39.7764105	-104.9582585	39.7776672
-5646	1559	4275	0.141288921951359	0.141288921951359	-104.9582585	39.7776672	-104.9582338	39.7789377
-5647	4275	5013	0.120791048813674	0.120791048813674	-104.9582338	39.7789377	-104.9582338	39.780024
-5648	5013	5014	0.0105624832499152	0.0105624832499152	-104.9582338	39.780024	-104.9582392	39.7801189
-5649	5014	5015	0.0438951959332696	0.0438951959332696	-104.9582392	39.7801189	-104.9582016	39.7805126
-5650	5015	5016	0.160752036464104	0.160752036464104	-104.9582016	39.7805126	-104.9581399	39.7819575
-5652	5017	2345	0.117820938280592	0.117820938280592	-104.9590772	39.7184349	-104.9585534	39.7194149
-5654	4151	1536	0.0491815160552347	0.0491815160552347	-104.9582358	39.7209729	-104.9582358	39.7214152
-5655	1536	4765	0.126517768209698	0.126517768209698	-104.9582358	39.7214152	-104.9582333	39.722553
-5656	4765	5019	0.175921623374803	0.175921623374803	-104.9582333	39.722553	-104.9582358	39.7241351
-5657	5019	5020	0.0764689744574068	0.0764689744574068	-104.9582358	39.7241351	-104.9582512	39.7248227
-5658	5020	5021	0.102480731304504	0.102480731304504	-104.9582512	39.7248227	-104.958869	39.7256124
-5659	5021	1190	0.167860102396295	0.167860102396295	-104.958869	39.7256124	-104.9590238	39.7271173
-5660	1190	5022	0.022286088803945	0.022286088803945	-104.9590238	39.7271173	-104.9590198	39.7273177
-5661	5022	3787	0.1996828431131	0.1996828431131	-104.9590198	39.7273177	-104.9590433	39.7291134
-5662	3787	5023	0.154628071522294	0.154628071522294	-104.9590433	39.7291134	-104.9592069	39.7304983
-5687	5040	1763	0.201152967219908	0.201152967219908	-104.9768897	39.7183279	-104.9768983	39.7165189
-5663	5023	2252	0.333559522830682	0.333559522830682	-104.9592069	39.7304983	-104.9586038	39.733462
-5664	2252	5024	0.0290309763494638	0.0290309763494638	-104.9586038	39.733462	-104.9585953	39.733723
-5665	5024	4884	0.148258019557603	0.148258019557603	-104.9585953	39.733723	-104.9586039	39.7350563
-5666	4884	5025	0.194698119191853	0.194698119191853	-104.9586039	39.7350563	-104.9585847	39.7368072
-5667	5025	5026	0.176313474196241	0.176313474196241	-104.9585847	39.7368072	-104.9586987	39.7383904
-5668	5026	5027	0.192373972114261	0.192373972114261	-104.9586987	39.7383904	-104.9587811	39.7401193
-5669	5027	679	0.169442185038323	0.169442185038323	-104.9587811	39.7401193	-104.9591758	39.7416126
-5672	5029	4596	0.157086480064782	0.157086480064782	-104.9591698	39.7434491	-104.9598011	39.7447758
-5674	5030	5031	0.105448542276863	0.105448542276863	-104.987378	39.7401161	-104.9884893	39.7405273
-5677	5032	5034	0.00520403492524916	0.00520403492524916	-104.9757617	39.7494389	-104.9757621	39.7494857
-5678	5034	5035	0.00442576451440448	0.00442576451440448	-104.9757621	39.7494857	-104.9757616	39.7495255
-5679	5035	5036	0.135764863246336	0.135764863246336	-104.9757616	39.7495255	-104.9757455	39.7507464
-5681	5037	813	0.139038307562208	0.139038307562208	-104.9757231	39.7519986	-104.9757523	39.7532488
-5682	813	3554	0.152271167865336	0.152271167865336	-104.9757523	39.7532488	-104.9757464	39.7546182
-5684	5038	5039	0.16037248823512	0.16037248823512	-104.9760611	39.7840873	-104.976207	39.7855252
-5686	2368	5040	0.131780679502724	0.131780679502724	-104.9775163	39.7194106	-104.9768897	39.7183279
-5689	5041	5042	0.178235693488978	0.178235693488978	-104.9761583	39.7400231	-104.9761502	39.741626
-5690	5042	663	0.00303458618342364	0.00303458618342364	-104.9761502	39.741626	-104.9761569	39.7416528
-5691	663	5043	0.17896901951739	0.17896901951739	-104.9761569	39.7416528	-104.9761631	39.7432623
-5692	5043	4608	0.175810797673871	0.175810797673871	-104.9761631	39.7432623	-104.9761582	39.7448434
-5693	4608	5044	0.116588664300191	0.116588664300191	-104.9761582	39.7448434	-104.9761532	39.7458919
-5694	5044	5045	0.0312349930548565	0.0312349930548565	-104.9761532	39.7458919	-104.9761515	39.7461728
-5695	5045	3670	0.147012417470316	0.147012417470316	-104.9761515	39.7461728	-104.976114	39.7474946
-5697	5046	4162	0.0660609059196111	0.0660609059196111	-104.9763833	39.7195295	-104.9763833	39.7201236
-5698	4162	4771	0.262084611870375	0.262084611870375	-104.9763833	39.7201236	-104.9764091	39.7224805
-5699	4771	5047	0.17859412824458	0.17859412824458	-104.9764091	39.7224805	-104.9763952	39.7240866
-5700	5047	5048	0.1691727396202	0.1691727396202	-104.9763952	39.7240866	-104.9764012	39.725608
-5701	5048	5049	0.184472749838431	0.184472749838431	-104.9764012	39.725608	-104.9764055	39.727267
-5702	5049	3801	0.20027318311003	0.20027318311003	-104.9764055	39.727267	-104.9764057	39.7290681
-5703	3801	5050	0.154503416019497	0.154503416019497	-104.9764057	39.7290681	-104.976386	39.7304575
-5704	5050	932	0.176703352691921	0.176703352691921	-104.976386	39.7304575	-104.9764282	39.7320463
-5706	2217	4867	0.160601247675141	0.160601247675141	-104.9764407	39.7337019	-104.9764304	39.7351462
-5707	4867	5051	0.19278749199245	0.19278749199245	-104.9764304	39.7351462	-104.976452	39.7368799
-5708	5051	5052	0.171738832244774	0.171738832244774	-104.976452	39.7368799	-104.976473	39.7384243
-5709	5052	5053	0.125039053144726	0.125039053144726	-104.976473	39.7384243	-104.9764695	39.7395488
-5710	5053	5054	0.0536646579213684	0.0536646579213684	-104.9764695	39.7395488	-104.9764641	39.7400314
-5712	2413	5055	0.0539797182371141	0.0539797182371141	-105.0411693	39.753016	-105.04162	39.753356
-5713	5055	5056	0.0555511846145791	0.0555511846145791	-105.04162	39.753356	-105.0422607	39.7532726
-5714	5056	5057	0.0564985233788716	0.0564985233788716	-105.0422607	39.7532726	-105.0429216	39.7532726
-5715	5058	5059	0.0116997793337229	0.0116997793337229	-104.9592906	39.7801271	-104.9592971	39.780022
-5716	5059	369	0.121769364056454	0.121769364056454	-104.9592971	39.780022	-104.9593952	39.7789295
-5717	369	1558	0.13936986171661	0.13936986171661	-104.9593952	39.7789295	-104.959414	39.7776762
-5718	1558	738	0.139138948896028	0.139138948896028	-104.959414	39.7776762	-104.9594193	39.7764249
-5719	738	5060	0.392796141218442	0.392796141218442	-104.9594193	39.7764249	-104.9594167	39.7728924
-5721	5061	5062	0.12142771399357	0.12142771399357	-104.9586363	39.7111011	-104.958436	39.71002
-5722	5062	5063	0.0553958184996893	0.0553958184996893	-104.958436	39.71002	-104.957987	39.709661
-5723	5063	4434	0.0566894209705876	0.0566894209705876	-104.957987	39.709661	-104.957527	39.709294
-5724	4434	2921	0.313688166061769	0.313688166061769	-104.957527	39.709294	-104.954906	39.707321
-5726	5062	422	0.127478280907992	0.127478280907992	-104.958436	39.71002	-104.958788	39.708906
-5727	422	5063	0.108364291033736	0.108364291033736	-104.958788	39.708906	-104.957987	39.709661
-5729	5066	5067	0.177224259300569	0.177224259300569	-105.0384889	39.7165547	-105.0384982	39.7149609
-5730	5067	1319	0.176633232309172	0.176633232309172	-105.0384982	39.7149609	-105.0385003	39.7133724
-5731	1319	1375	0.177680959479223	0.177680959479223	-105.0385003	39.7133724	-105.0384745	39.7117746
-5732	1375	5068	0.0602164425054291	0.0602164425054291	-105.0384745	39.7117746	-105.038466	39.7112331
-5733	5068	288	0.02427348670764	0.02427348670764	-105.038466	39.7112331	-105.0384831	39.7110152
-5734	288	5069	0.0611513015273674	0.0611513015273674	-105.0384831	39.7110152	-105.0385432	39.7104672
-5735	5069	4693	0.113806398942027	0.113806398942027	-105.0385432	39.7104672	-105.038526	39.7094438
-5736	4693	5070	0.156397394554719	0.156397394554719	-105.038526	39.7094438	-105.0385346	39.7080373
-5738	1493	182	0.220724132280051	0.220724132280051	-105.037738	39.695087	-105.0379081	39.6931063
-5739	182	1710	0.202718600976859	0.202718600976859	-105.0379081	39.6931063	-105.0378737	39.6912834
-5742	5072	5073	0.0235981208081862	0.0235981208081862	-105.0381596	39.707404	-105.0381339	39.7071927
-5743	5073	5074	0.173346209176791	0.173346209176791	-105.0381339	39.7071927	-105.0381484	39.7056338
-5744	5074	5075	0.183560584904857	0.183560584904857	-105.0381484	39.7056338	-105.0381484	39.703983
-5746	5076	5077	0.201201481229781	0.201201481229781	-105.037951	39.7021472	-105.0379338	39.7003378
-5747	5077	5078	0.196158089713223	0.196158089713223	-105.0379338	39.7003378	-105.0378651	39.6985745
-5750	5080	304	0.450334409862505	0.450334409862505	-105.001279	39.7649816	-105.0045998	39.7618374
-5755	5083	4179	0.23271473726582	0.23271473726582	-104.9957531	39.7077667	-104.9951206	39.7057312
-5757	5084	5085	0.100586570089845	0.100586570089845	-104.9908575	39.7165834	-104.9908403	39.7174879
-5758	5085	3712	0.0974495496468689	0.0974495496468689	-104.9908403	39.7174879	-104.9908169	39.7183641
-5759	3712	5088	0.107190885250137	0.107190885250137	-104.9908169	39.7183641	-104.9908341	39.719328
-5761	1840	2612	0.176114771519943	0.176114771519943	-104.9908489	39.7209474	-104.9908346	39.7225312
-5762	2612	5089	0.0532850041931226	0.0532850041931226	-104.9908346	39.7225312	-104.990837	39.7230104
-5763	5089	5090	0.123805391077944	0.123805391077944	-104.990837	39.7230104	-104.9908427	39.7241238
-5764	5090	5091	0.0921824286504112	0.0921824286504112	-104.9908427	39.7241238	-104.9908359	39.7249528
-5765	5091	5092	0.0849604613604367	0.0849604613604367	-104.9908359	39.7249528	-104.9904446	39.7256551
-5767	5093	4077	0.0433656831085181	0.0433656831085181	-104.9901518	39.7836836	-104.9901174	39.7840727
-5768	4077	5094	0.807132686207363	0.807132686207363	-104.9901174	39.7840727	-104.989017	39.791282
-5769	5092	5095	0.184721084541763	0.184721084541763	-104.9904446	39.7256551	-104.9902684	39.7273108
-5770	5095	5096	0.112121546650621	0.112121546650621	-104.9902684	39.7273108	-104.9899868	39.7282956
-5771	5096	5097	0.012405493892182	0.012405493892182	-104.9899868	39.7282956	-104.9898761	39.7283677
-12067	8534	8532	0.0417307390941294	0.0417307390941294	-104.9544306	39.7462589	-104.9548313	39.7460446
-5774	5099	5100	0.195348601056539	0.195348601056539	-104.9781101	39.6911501	-104.9781016	39.6893933
-5775	5100	5101	1.61385249170336	1.61385249170336	-104.9781016	39.6893933	-104.978136	39.6748796
-5776	4334	5102	0.201130889411283	0.201130889411283	-104.9780308	39.7165201	-104.9780399	39.7147113
-5778	5103	2576	0.52830768269949	0.52830768269949	-104.9499914	39.7083084	-104.9558107	39.7098997
-5782	1145	874	0.139433776255124	0.139433776255124	-104.970897	39.7632567	-104.9708813	39.7645106
-5783	874	4462	0.13822164303959	0.13822164303959	-104.9708813	39.7645106	-104.9708658	39.7657536
-5784	4462	2782	0.134807869792579	0.134807869792579	-104.9708658	39.7657536	-104.9708506	39.7669659
-5786	5108	5109	0.136531475414142	0.136531475414142	-104.9708358	39.7681531	-104.9708204	39.7693809
-5787	5110	5111	0.166792389966844	0.166792389966844	-104.971535	39.780686	-104.971535	39.782186
-5788	5111	5112	0.0444779706577198	0.0444779706577198	-104.971535	39.782186	-104.971535	39.782586
-5789	5113	4169	0.194541086455447	0.194541086455447	-104.9705842	39.7183394	-104.9706014	39.7200889
-5790	4169	4754	0.20739031390672	0.20739031390672	-104.9706014	39.7200889	-104.9705953	39.721954
-5791	4754	5114	0.19819923300798	0.19819923300798	-104.9705953	39.721954	-104.9705782	39.7237364
-5792	5114	5115	0.205574207946515	0.205574207946515	-104.9705782	39.7237364	-104.9705996	39.7255851
-5793	5115	5116	0.18969176296687	0.18969176296687	-104.9705996	39.7255851	-104.9706146	39.727291
-5795	3795	5117	0.153449380032665	0.153449380032665	-104.9706199	39.7290832	-104.9706239	39.7304632
-5796	5117	942	0.178860285004076	0.178860285004076	-104.9706239	39.7304632	-104.9706365	39.7320717
-5797	942	2226	0.181510674241125	0.181510674241125	-104.9706365	39.7320717	-104.9706554	39.733704
-5798	2226	4876	0.162456954471732	0.162456954471732	-104.9706554	39.733704	-104.9706482	39.735165
-5799	4876	5118	0.192077540660028	0.192077540660028	-104.9706482	39.735165	-104.9706897	39.7368921
-5800	5118	5119	0.169639680241679	0.169639680241679	-104.9706897	39.7368921	-104.9706954	39.7384177
-5801	5119	5120	0.176431836448169	0.176431836448169	-104.9706954	39.7384177	-104.9707273	39.7400042
-5805	5123	5124	0.138482206224941	0.138482206224941	-104.9708859	39.7607568	-104.9708846	39.7620022
-5807	5125	5126	0.196467690434778	0.196467690434778	-104.970211	39.7696514	-104.9683965	39.7707362
-5809	5127	5128	0.177236972666439	0.177236972666439	-104.9709293	39.7400169	-104.9709165	39.7416108
-5810	5128	666	0.00411429224620583	0.00411429224620583	-104.9709165	39.7416108	-104.9709162	39.7416478
-5811	666	5129	0.00398081510277296	0.00398081510277296	-104.9709162	39.7416478	-104.970916	39.7416836
-5812	5129	5130	0.0219503048251099	0.0219503048251099	-104.970916	39.7416836	-104.9709144	39.741881
-5813	5130	5131	0.152662411900591	0.152662411900591	-104.9709144	39.741881	-104.9709034	39.7432539
-5814	5131	4605	0.174323615227633	0.174323615227633	-104.9709034	39.7432539	-104.9708908	39.7448216
-5815	4605	3691	0.233536002014651	0.233536002014651	-104.9708908	39.7448216	-104.970874	39.7469218
-5816	3691	5132	0.0578224768050087	0.0578224768050087	-104.970874	39.7469218	-104.9708698	39.7474418
-5817	4901	5133	0.0573209620432963	0.0573209620432963	-104.9401595	39.7346781	-104.9395046	39.7345681
-5819	5134	5135	0.102452742724465	0.102452742724465	-104.9384246	39.7341756	-104.9373097	39.7338382
-5820	5135	5136	0.101180875593513	0.101180875593513	-104.9373097	39.7338382	-104.9361524	39.7336487
-5821	5136	5137	0.0993172550227887	0.0993172550227887	-104.9361524	39.7336487	-104.935004	39.7335152
-5822	5137	5138	0.0973174615516026	0.0973174615516026	-104.935004	39.7335152	-104.933879	39.733383
-5823	5138	5139	0.0592813821516456	0.0592813821516456	-104.933879	39.733383	-104.9331993	39.7332781
-5824	5139	5140	0.0572628386692297	0.0572628386692297	-104.9331993	39.7332781	-104.9325581	39.7331296
-5825	5140	5141	0.0908568563064313	0.0908568563064313	-104.9325581	39.7331296	-104.931599	39.732778
-5826	5141	5142	0.108696465338082	0.108696465338082	-104.931599	39.732778	-104.930434	39.732387
-5827	5142	5143	0.117446225438567	0.117446225438567	-104.930434	39.732387	-104.9292349	39.731872
-5828	5143	5144	0.115052510861077	0.115052510861077	-104.9292349	39.731872	-104.9280639	39.7313625
-5831	2118	5146	0.132113404680538	0.132113404680538	-104.9268844	39.7308196	-104.9257328	39.7300276
-5832	5146	5147	0.0733188328504862	0.0733188328504862	-104.9257328	39.7300276	-104.925132	39.7295572
-5833	5147	5148	0.0348417204507369	0.0348417204507369	-104.925132	39.7295572	-104.9250676	39.7292478
-5860	3449	5168	0.101446764740706	0.101446764740706	-104.9461482	39.7162465	-104.9449622	39.716238
-5835	4903	5149	0.0928559279225574	0.0928559279225574	-104.9394193	39.7347015	-104.9384043	39.7344047
-5836	5149	5150	0.101009488468598	0.101009488468598	-104.9384043	39.7344047	-104.9373129	39.7340572
-5837	5150	5151	0.101494340144734	0.101494340144734	-104.9373129	39.7340572	-104.9361564	39.7338519
-12222	8597	8598	0.00932829170104997	0.00932829170104997	-105.0075587	39.7444522	-105.0076164	39.7445234
-12223	8598	8599	0.0244824521093208	0.0244824521093208	-105.0076164	39.7445234	-105.0077602	39.7447138
-5838	5151	5152	0.100261540674961	0.100261540674961	-104.9361564	39.7338519	-104.9349958	39.7337238
-5839	5152	5153	0.221241395423211	0.221241395423211	-104.9349958	39.7337238	-104.9324587	39.7333339
-5840	5153	2236	0.0908651857276488	0.0908651857276488	-104.9324587	39.7333339	-104.9314966	39.732987
-5841	2236	5154	0.10116756602451	0.10116756602451	-104.9314966	39.732987	-104.930434	39.732587
-5842	5154	5155	0.114191873365342	0.114191873365342	-104.930434	39.732587	-104.9292584	39.7320999
-5843	5155	5156	0.113038208940698	0.113038208940698	-104.9292584	39.7320999	-104.9280694	39.7316557
-5844	5156	2119	0.121856512679973	0.121856512679973	-104.9280694	39.7316557	-104.9268735	39.7310598
-5845	2119	5157	0.125333022212683	0.125333022212683	-104.9268735	39.7310598	-104.9257489	39.730337
-5846	5157	5158	0.121389833666029	0.121389833666029	-104.9257489	39.730337	-104.9248331	39.7295029
-5847	5158	5159	0.0390946612702668	0.0390946612702668	-104.9248331	39.7295029	-104.9245238	39.729244
-5850	5160	2133	0.195466658548015	0.195466658548015	-104.9270451	39.7456493	-104.9269818	39.7474065
-5854	5163	2476	0.202535777887142	0.202535777887142	-104.9274829	39.7455899	-104.9274657	39.7474113
-5856	5164	5165	0.0156138568041909	0.0156138568041909	-104.9499442	39.7162631	-104.9497617	39.7162663
-5857	5165	5166	0.100589160353206	0.100589160353206	-104.9497617	39.7162663	-104.9485858	39.7162531
-5858	5166	5167	0.104247833927165	0.104247833927165	-104.9485858	39.7162531	-104.947367	39.7162531
-5859	5167	3449	0.104250422099089	0.104250422099089	-104.947367	39.7162531	-104.9461482	39.7162465
-5861	5168	3879	0.102808830950679	0.102808830950679	-104.9449622	39.716238	-104.9437605	39.7162182
-5862	3879	841	0.103522696858037	0.103522696858037	-104.9437605	39.7162182	-104.9425503	39.7162314
-5863	841	5169	0.102719682704035	0.102719682704035	-104.9425503	39.7162314	-104.9413494	39.7162383
-5864	5169	5170	0.0474110701835865	0.0474110701835865	-104.9413494	39.7162383	-104.9407951	39.7162379
-5866	5171	5172	0.106685417852495	0.106685417852495	-104.9874858	39.7165623	-104.9862386	39.7165499
-5867	5172	5173	0.0515553847760644	0.0515553847760644	-104.9862386	39.7165499	-104.9856359	39.7165436
-5868	5173	4988	0.0505202363313306	0.0505202363313306	-104.9856359	39.7165436	-104.9850453	39.7165375
-17163	5107	1802	0.195280530173469	0.195280530173469	-104.9740336	39.6929885	-104.9740336	39.6947447
-5869	4988	962	0.105015490507221	0.105015490507221	-104.9850453	39.7165375	-104.983818	39.7165111
-5870	962	4141	0.100506431839732	0.100506431839732	-104.983818	39.7165111	-104.982643	39.7165018
-5871	4141	3161	0.101307790482977	0.101307790482977	-104.982643	39.7165018	-104.9814586	39.7164952
-5872	3161	3620	0.0948143449717999	0.0948143449717999	-104.9814586	39.7164952	-104.9803501	39.716491
-5873	3620	1826	0.102953991217456	0.102953991217456	-104.9803501	39.716491	-104.9791466	39.7165069
-5874	1826	4334	0.0954488426398559	0.0954488426398559	-104.9791466	39.7165069	-104.9780308	39.7165201
-5876	5174	1763	0.050455869495655	0.050455869495655	-104.9774882	39.7165195	-104.9768983	39.7165189
-5877	1763	4616	0.0477367574799653	0.0477367574799653	-104.9768983	39.7165189	-104.9763402	39.7165163
-5878	4616	5175	0.0514444022852647	0.0514444022852647	-104.9763402	39.7165163	-104.9757389	39.7165269
-5879	5175	4306	0.0486177089369888	0.0486177089369888	-104.9757389	39.7165269	-104.9751709	39.7165103
-5880	4306	994	0.0512355770161431	0.0512355770161431	-104.9751709	39.7165103	-104.9745719	39.7165069
-5881	994	4309	0.0460747606120818	0.0460747606120818	-104.9745719	39.7165069	-104.9740333	39.716514
-5882	4309	2915	0.0558782384698847	0.0558782384698847	-104.9740333	39.716514	-104.9733801	39.7165226
-5883	2915	2916	0.0205535416898751	0.0205535416898751	-104.9733801	39.7165226	-104.9731398	39.7165226
-5909	5190	5191	0.0526195895778432	0.0526195895778432	-105.0433305	39.7245627	-105.0439457	39.7245698
-5887	587	588	0.0168822192889414	0.0168822192889414	-105.0297456	39.724543	-105.029943	39.724543
-5888	588	5177	0.110837670707715	0.110837670707715	-105.029943	39.724543	-105.031239	39.724543
-5889	5177	1399	0.106464576541899	0.106464576541899	-105.031239	39.724543	-105.0324836	39.7245232
-5890	1399	5178	0.00837287829367045	0.00837287829367045	-105.0324836	39.7245232	-105.0325815	39.7245237
-5891	5178	5179	0.0973274399582508	0.0973274399582508	-105.0325815	39.7245237	-105.0337195	39.7245298
-5892	5179	5180	0.0713882284598403	0.0713882284598403	-105.0337195	39.7245298	-105.0345542	39.7245247
-5893	5180	3386	0.0465173628433736	0.0465173628433736	-105.0345542	39.7245247	-105.0350981	39.7245214
-5894	3386	5181	0.0466294338105993	0.0466294338105993	-105.0350981	39.7245214	-105.0356433	39.7245256
-5895	5181	5182	0.0461505269276214	0.0461505269276214	-105.0356433	39.7245256	-105.0361829	39.7245298
-5896	5182	2801	0.0476762891770853	0.0476762891770853	-105.0361829	39.7245298	-105.0367403	39.7245365
-5897	2801	5183	0.0462906353191723	0.0462906353191723	-105.0367403	39.7245365	-105.0372815	39.724543
-5898	5183	5184	0.0462689908237556	0.0462689908237556	-105.0372815	39.724543	-105.0378224	39.7245345
-5899	5184	5185	0.0466469950505128	0.0466469950505128	-105.0378224	39.7245345	-105.0383678	39.7245391
-5900	5185	5186	0.0471146492559741	0.0471146492559741	-105.0383678	39.7245391	-105.0389187	39.7245383
-5901	5186	5187	0.045278465180898	0.045278465180898	-105.0389187	39.7245383	-105.0394481	39.7245427
-5902	5187	1570	0.0464406557272166	0.0464406557272166	-105.0394481	39.7245427	-105.0399911	39.7245463
-5903	1570	1095	0.0464745881593838	0.0464745881593838	-105.0399911	39.7245463	-105.0405345	39.724543
-5904	1095	5188	0.0475893065083787	0.0475893065083787	-105.0405345	39.724543	-105.0410909	39.7245488
-7153	6059	6060	0.0479619125752321	0.0479619125752321	-105.0327949	39.7856263	-105.0333562	39.7856282
-5905	5188	5189	0.0454253204645735	0.0454253204645735	-105.0410909	39.7245488	-105.041622	39.7245543
-5906	5189	1538	0.0460968804258839	0.0460968804258839	-105.041622	39.7245543	-105.042161	39.7245549
-5907	1538	3854	0.04697776477365	0.04697776477365	-105.042161	39.7245549	-105.0427103	39.7245555
-5908	3854	5190	0.0530473283120516	0.0530473283120516	-105.0427103	39.7245555	-105.0433305	39.7245627
-5911	5192	5193	0.0515193353777817	0.0515193353777817	-104.9874942	39.724123	-104.9880966	39.7241225
-5913	5194	5195	0.0687779636933597	0.0687779636933597	-104.9883782	39.7241223	-104.9891824	39.7241217
-5914	5195	5090	0.141994718426853	0.141994718426853	-104.9891824	39.7241217	-104.9908427	39.7241238
-5915	5090	5196	0.112634336237225	0.112634336237225	-104.9908427	39.7241238	-104.9921597	39.7241238
-5916	5196	5197	0.0575743623042855	0.0575743623042855	-104.9921597	39.7241238	-104.9928329	39.7241238
-5917	5197	4671	0.100935765794822	0.100935765794822	-104.9928329	39.7241238	-104.9940131	39.7241197
-5918	4671	4951	0.0999693670841652	0.0999693670841652	-104.9940131	39.7241197	-104.995182	39.7241156
-5919	4951	5198	0.0511858126232579	0.0511858126232579	-104.995182	39.7241156	-104.9957805	39.7241162
-5921	5199	5200	0.0499779255146796	0.0499779255146796	-104.9963759	39.7241168	-104.9969602	39.7241241
-5922	5200	5201	0.0499920394458099	0.0499920394458099	-104.9969602	39.7241241	-104.9975447	39.7241295
-5923	5201	5202	0.0457134833999458	0.0457134833999458	-104.9975447	39.7241295	-104.9980791	39.724121
-5924	5202	5203	0.0421294446780762	0.0421294446780762	-104.9980791	39.724121	-104.9985716	39.7241131
-5925	5203	3957	0.137188173752203	0.137188173752203	-104.9985716	39.7241131	-105.0001757	39.7241141
-5926	3957	5204	0.0640931318030062	0.0640931318030062	-105.0001757	39.7241141	-105.000925	39.7241245
-5927	5204	5205	0.0544857674041209	0.0544857674041209	-105.000925	39.7241245	-105.001561	39.7241531
-5928	5205	5206	0.0521757463337926	0.0521757463337926	-105.001561	39.7241531	-105.002171	39.7241605
-5929	5207	5208	0.0487730947754618	0.0487730947754618	-105.0439566	39.7239385	-105.0445268	39.7239462
-5930	5208	5209	0.0493635031974476	0.0493635031974476	-105.0445268	39.7239462	-105.0451039	39.7239541
-5932	5211	5212	0.207489392195287	0.207489392195287	-105.015182	39.723292	-105.0174804	39.7238894
-5933	5212	4646	0.099390326989904	0.099390326989904	-105.0174804	39.7238894	-105.0186425	39.7238822
-5935	3645	4555	0.0986517427687235	0.0986517427687235	-105.0209651	39.7238828	-105.0221186	39.7238843
-5937	5213	5214	0.322259629928437	0.322259629928437	-104.9870231	39.769169	-104.9896839	39.7671156
-5938	5215	5216	0.143730822686287	0.143730822686287	-105.0344555	39.7293058	-105.0344587	39.7305984
-5939	5216	5217	0.0599126619694891	0.0599126619694891	-105.0344587	39.7305984	-105.034455	39.7311372
-5940	5217	5218	0.202016907937226	0.202016907937226	-105.034455	39.7311372	-105.0344966	39.7329537
-5942	5219	5220	0.186576382334646	0.186576382334646	-104.9888684	39.7256475	-104.9888573	39.7273254
-5944	5221	5222	0.13343391197395	0.13343391197395	-104.988836	39.784386	-104.988836	39.785586
-5945	5222	2558	0.200662474351154	0.200662474351154	-104.988836	39.785586	-104.9887371	39.787389
-5946	2558	5224	0.208372800213582	0.208372800213582	-104.9887371	39.787389	-104.9886598	39.789262
-5947	5225	4431	0.102067442103011	0.102067442103011	-104.9891924	39.7165504	-104.9891666	39.7174681
-5948	4431	3711	0.0989108306469789	0.0989108306469789	-104.9891666	39.7174681	-104.9891861	39.7183575
-5949	3711	5226	0.107183313746265	0.107183313746265	-104.9891861	39.7183575	-104.9891947	39.7193214
-5950	5226	1839	0.179335285582576	0.179335285582576	-104.9891947	39.7193214	-104.9891924	39.7209342
-17165	4242	3547	0.202237742052361	0.202237742052361	-104.9740228	39.6966115	-104.9739907	39.6984301
-5951	1839	2611	0.178227308228011	0.178227308228011	-104.9891924	39.7209342	-104.9891783	39.722537
-5952	2611	5195	0.176210949140518	0.176210949140518	-104.9891783	39.722537	-104.9891824	39.7241217
-20492	10836	10813	0.00305693422510609	0.00305693422510609	-105.0188782	39.7585174	-105.0189136	39.7585213
-7198	6089	1755	0.0565523921918465	0.0565523921918465	-105.0118176	39.7608059	-105.0124792	39.7608073
-18301	5526	5737	0.156444459924747	0.156444459924747	-105.0410378	39.7738771	-105.0410242	39.7724702
-5957	4512	5230	0.200430868604248	0.200430868604248	-104.9546673	39.6965834	-104.9546568	39.6947809
-5959	5231	5232	0.20240814685365	0.20240814685365	-104.9546783	39.692957	-104.9546794	39.6911367
-5960	5232	5233	0.200177276698155	0.200177276698155	-104.9546794	39.6911367	-104.9546945	39.6893365
-5961	5233	5234	0.403649470879027	0.403649470879027	-104.9546945	39.6893365	-104.9547037	39.6857064
-5962	3278	3181	0.152742056397443	0.152742056397443	-104.9546506	39.703847	-104.9546249	39.7024735
-5964	3927	3703	0.0675866941557576	0.0675866941557576	-105.0021843	39.7644198	-105.002975	39.7644254
-5965	3703	708	0.0999635221991015	0.0999635221991015	-105.002975	39.7644254	-105.0041445	39.7644316
-5966	708	5235	0.0981118109963614	0.0981118109963614	-105.0041445	39.7644316	-105.0052923	39.7644409
-5967	5235	5236	0.0989915986442654	0.0989915986442654	-105.0052923	39.7644409	-105.00645	39.7644159
-5968	5236	4189	0.135714784882046	0.135714784882046	-105.00645	39.7644159	-105.0080378	39.7644145
-5969	4189	2515	0.133468058331593	0.133468058331593	-105.0080378	39.7644145	-105.0095992	39.7644291
-5970	2515	5237	0.135326951582466	0.135326951582466	-105.0095992	39.7644291	-105.0111823	39.7644116
-5971	5237	4803	0.135895734874124	0.135895734874124	-105.0111823	39.7644116	-105.0127721	39.7644265
-5972	4803	5238	0.136371570616542	0.136371570616542	-105.0127721	39.7644265	-105.0143675	39.7644392
-5973	5238	5239	0.126834347813211	0.126834347813211	-105.0143675	39.7644392	-105.0158514	39.7644364
-5974	5239	5240	0.133492367602304	0.133492367602304	-105.0158514	39.7644364	-105.0174132	39.7644371
-5975	5240	4624	0.131817065741689	0.131817065741689	-105.0174132	39.7644371	-105.0189554	39.7644371
-7224	4702	6106	0.102350270818551	0.102350270818551	-104.987569	39.7093263	-104.9863727	39.7093097
-5979	2725	5242	0.133090700331069	0.133090700331069	-105.0236117	39.7644248	-105.0251688	39.7644237
-5981	5243	5244	0.0777207800874593	0.0777207800874593	-105.0440231	39.7648201	-105.0449324	39.7648219
-5982	5244	5245	0.710188326706697	0.710188326706697	-105.0449324	39.7648219	-105.0532413	39.7648055
-5983	3974	5246	0.196425810260379	0.196425810260379	-105.0299675	39.7647258	-105.0322646	39.764778
-5984	5246	3422	0.201357225192724	0.201357225192724	-105.0322646	39.764778	-105.0346204	39.7647784
-5986	3423	5247	0.0491810142725505	0.0491810142725505	-105.0346204	39.7649631	-105.0351958	39.7649631
-5987	5247	5248	0.0477450735797267	0.0477450735797267	-105.0351958	39.7649631	-105.0357544	39.764963
-5989	5249	5250	0.055676102895211	0.055676102895211	-105.0252881	39.7646691	-105.0259394	39.7646609
-5990	5250	5251	0.140244564447974	0.140244564447974	-105.0259394	39.7646609	-105.0275802	39.7646584
-5991	5251	5252	0.170294636723478	0.170294636723478	-105.0275802	39.7646584	-105.0295723	39.7646329
-5993	5253	5254	0.106323677730181	0.106323677730181	-104.9733576	39.7681592	-104.9721136	39.7681562
-5994	5254	5108	0.109212547805518	0.109212547805518	-104.9721136	39.7681562	-104.9708358	39.7681531
-5995	5108	4725	0.103272467122344	0.103272467122344	-104.9708358	39.7681531	-104.9696275	39.7681501
-5996	4725	5255	0.103742512264204	0.103742512264204	-104.9696275	39.7681501	-104.9684137	39.7681472
-5997	5255	5256	0.105340810076794	0.105340810076794	-104.9684137	39.7681472	-104.9671812	39.7681442
-5999	5257	3136	0.108092936006134	0.108092936006134	-104.9659655	39.7681412	-104.9647008	39.7681381
-6000	3136	3908	0.107682657630117	0.107682657630117	-104.9647008	39.7681381	-104.9634409	39.7681351
-7243	6117	6118	0.0967566510311658	0.0967566510311658	-104.9721753	39.7092881	-104.9710442	39.7092903
-6001	3908	1048	0.108571568461532	0.108571568461532	-104.9634409	39.7681351	-104.9621706	39.768132
-6002	1048	5258	0.101973343920372	0.101973343920372	-104.9621706	39.768132	-104.9609775	39.7681291
-6003	5258	5259	0.106357911571636	0.106357911571636	-104.9609775	39.7681291	-104.9597331	39.7681261
-6005	5260	5009	0.0315381518095178	0.0315381518095178	-104.9589552	39.7681242	-104.9585862	39.7681233
-6006	5009	3333	0.108118604625977	0.108118604625977	-104.9585862	39.7681233	-104.9573212	39.7681202
-6007	3333	5261	0.119315074925742	0.119315074925742	-104.9573212	39.7681202	-104.9559252	39.7681168
-6008	5261	5263	0.0963665691070474	0.0963665691070474	-104.9559252	39.7681168	-104.9547977	39.7681141
-6009	5263	5264	0.0432816561908272	0.0432816561908272	-104.9547977	39.7681141	-104.9542913	39.7681128
-6010	5264	2085	0.0535379351296007	0.0535379351296007	-104.9542913	39.7681128	-104.9536649	39.7681113
-6011	2085	5265	0.105640004427027	0.105640004427027	-104.9536649	39.7681113	-104.9524289	39.7681083
-6012	5265	4130	0.106366490545515	0.106366490545515	-104.9524289	39.7681083	-104.9511844	39.7681053
-6013	4130	5266	0.109451940113279	0.109451940113279	-104.9511844	39.7681053	-104.9499038	39.7681022
-6014	5266	5267	0.101101610243622	0.101101610243622	-104.9499038	39.7681022	-104.9487209	39.7680993
-6018	5269	5270	0.0982982274574071	0.0982982274574071	-104.9451609	39.7680906	-104.9440108	39.7680878
-6019	5270	804	0.0991956500472809	0.0991956500472809	-104.9440108	39.7680878	-104.9428502	39.768085
-6020	804	5271	0.0978879869631794	0.0978879869631794	-104.9428502	39.768085	-104.9417049	39.7680822
-6021	5271	5272	0.0909649766992318	0.0909649766992318	-104.9417049	39.7680822	-104.9406406	39.7680796
-6022	5272	5273	0.0146836193769648	0.0146836193769648	-104.9406406	39.7680796	-104.9404688	39.7680792
-6024	5274	1956	0.174868207801427	0.174868207801427	-104.93153	39.709088	-104.9295943	39.7085824
-6027	5275	5276	0.0506368419660478	0.0506368419660478	-104.9862654	39.7138801	-104.9856735	39.713872
-6028	5276	4990	0.0537681631666927	0.0537681631666927	-104.9856735	39.713872	-104.985045	39.7138633
-6029	4990	5277	0.102832227368728	0.102832227368728	-104.985045	39.7138633	-104.9838429	39.7138757
-6030	5277	5278	0.0856095541145101	0.0856095541145101	-104.9838429	39.7138757	-104.9828424	39.7138551
-6032	1548	4268	0.202455793335308	0.202455793335308	-104.9824199	39.7765295	-104.9824332	39.7783502
-6033	4268	283	0.117344693446838	0.117344693446838	-104.9824332	39.7783502	-104.9824285	39.7794055
-6035	4141	5279	0.202925527060843	0.202925527060843	-104.982643	39.7165018	-104.9826249	39.7183267
-6036	5279	2364	0.110547560275979	0.110547560275979	-104.9826249	39.7183267	-104.9826087	39.7193208
-6037	2364	4146	0.176928363643229	0.176928363643229	-104.9826087	39.7193208	-104.9825915	39.7209119
-6038	4146	5281	0.187030458155785	0.187030458155785	-104.9825915	39.7209119	-104.982597	39.7225939
-6039	5281	5282	0.011246856594195	0.011246856594195	-104.982597	39.7225939	-104.9825741	39.7226935
-6041	5283	2870	0.194705331985994	0.194705331985994	-104.9834597	39.7872862	-104.9829275	39.7855836
-6043	5285	5286	0.301111320410511	0.301111320410511	-104.983146	39.78834	-104.982876	39.79104
-6044	5287	5288	0.185724938270304	0.185724938270304	-104.9823268	39.7801891	-104.9823077	39.7818593
-6045	5288	5289	0.213285003773079	0.213285003773079	-104.9823077	39.7818593	-104.9823354	39.7837773
-6047	5290	5291	0.13629389839255	0.13629389839255	-105.0252168	39.7439449	-105.0268109	39.7439427
-6048	5291	5292	0.13355771854799	0.13355771854799	-105.0268109	39.7439427	-105.028373	39.7439427
-6049	5292	4013	0.133867532403999	0.133867532403999	-105.028373	39.7439427	-105.0299387	39.7439361
-6052	5294	3384	0.128421314744864	0.128421314744864	-105.0330637	39.7439508	-105.0345657	39.7439574
-6053	3384	5295	0.104229219478348	0.104229219478348	-105.0345657	39.7439574	-105.0357845	39.7439376
-6054	5295	3817	0.102592362577248	0.102592362577248	-105.0357845	39.7439376	-105.0369844	39.7439438
-6056	5296	5297	0.0990440053907464	0.0990440053907464	-105.0381646	39.7439521	-105.039323	39.7439462
-6057	5297	5298	0.00501097787172802	0.00501097787172802	-105.039323	39.7439462	-105.0393814	39.74395
-6058	5298	5299	0.26852367463784	0.26852367463784	-105.0393814	39.74395	-105.042522	39.7439663
-6059	5299	5300	0.02711052781377	0.02711052781377	-105.042522	39.7439663	-105.042839	39.743972
-6060	5300	5301	0.101042477184366	0.101042477184366	-105.042839	39.743972	-105.0440208	39.7439717
-6061	5301	5302	0.0980158544732548	0.0980158544732548	-105.0440208	39.7439717	-105.0451672	39.7439725
-6062	5302	5303	0.68853335666363	0.68853335666363	-105.0451672	39.7439725	-105.0532203	39.7439912
-6063	4532	3739	0.10058657036035	0.10058657036035	-105.0227589	39.7166208	-105.0227761	39.7157163
-6064	3739	5305	0.101344660556636	0.101344660556636	-105.0227761	39.7157163	-105.0227504	39.7148051
-6065	5305	1342	0.202678391855073	0.202678391855073	-105.0227504	39.7148051	-105.0226989	39.7129828
-6067	5306	4700	0.20166419460726	0.20166419460726	-105.0226912	39.7111319	-105.0226989	39.7093183
-6068	4700	5307	0.201175175307418	0.201175175307418	-105.0226989	39.7093183	-105.0227074	39.7075091
-6069	5307	5308	0.201920176537304	0.201920176537304	-105.0227074	39.7075091	-105.0226989	39.7056932
-6070	5308	5309	0.201920207593883	0.201920207593883	-105.0226989	39.7056932	-105.0226903	39.7038773
-6071	5309	777	0.201196100270561	0.201196100270561	-105.0226903	39.7038773	-105.0226903	39.7020679
-6072	777	5310	0.185040940142678	0.185040940142678	-105.0226903	39.7020679	-105.0226989	39.7004038
-6073	5310	5311	0.201942415647541	0.201942415647541	-105.0226989	39.7004038	-105.0227074	39.6985877
-6074	5311	5312	0.206000886771111	0.206000886771111	-105.0227074	39.6985877	-105.0227155	39.6967351
-7322	6161	6162	0.200977808302969	0.200977808302969	-104.9569665	39.6947747	-104.9569515	39.6929673
-6077	1729	5313	0.145417053241999	0.145417053241999	-105.02224	39.6908088	-105.0222572	39.6895011
-6079	5314	5315	0.262924523321611	0.262924523321611	-105.0227207	39.6894812	-105.0227035	39.6871167
-6080	5316	3497	0.142809169887552	0.142809169887552	-104.9500303	39.699284	-104.9488372	39.6983858
-6082	2903	5317	0.0402215187360589	0.0402215187360589	-104.973351	39.7604399	-104.9736634	39.7607104
-6083	5317	5318	0.00632191300841853	0.00632191300841853	-104.9736634	39.7607104	-104.9737157	39.7607506
-6084	5318	5319	0.00945274881783772	0.00945274881783772	-104.9737157	39.7607506	-104.9737854	39.7608166
-6085	5319	5320	0.102488283152376	0.102488283152376	-104.9737854	39.7608166	-104.9746129	39.7614836
-6086	5320	5321	0.105737259840933	0.105737259840933	-104.9746129	39.7614836	-104.9754804	39.7621615
-6087	5321	5322	0.104280118546109	0.104280118546109	-104.9754804	39.7621615	-104.9763558	39.7628147
-6088	5322	5323	0.105008595801197	0.105008595801197	-104.9763558	39.7628147	-104.9772313	39.7634772
-6089	5323	5324	0.107079302112312	0.107079302112312	-104.9772313	39.7634772	-104.9781151	39.7641597
-6090	5324	3311	0.104784168499708	0.104784168499708	-104.9781151	39.7641597	-104.9789777	39.7648293
-6091	3311	5325	0.104972132929345	0.104972132929345	-104.9789777	39.7648293	-104.9798548	39.7654901
-6093	5328	5329	0.148443179384572	0.148443179384572	-105.0327094	39.7111941	-105.0340312	39.7103291
-6094	5329	4320	0.122968314186663	0.122968314186663	-105.0340312	39.7103291	-105.0350756	39.7095692
-6095	4320	5331	0.133138685881437	0.133138685881437	-105.0350756	39.7095692	-105.0362199	39.7087576
-6096	5331	5332	0.129500346452113	0.129500346452113	-105.0362199	39.7087576	-105.0373528	39.7079851
-6097	5332	5072	0.094543402764425	0.094543402764425	-105.0373528	39.7079851	-105.0381596	39.707404
-6098	5072	5333	0.0140267468815188	0.0140267468815188	-105.0381596	39.707404	-105.0382798	39.7073182
-7348	5506	4458	0.146478928082641	0.146478928082641	-104.9817097	39.7613449	-104.9829353	39.7604242
-6099	5333	5334	0.0971985352126134	0.0971985352126134	-105.0382798	39.7073182	-105.0391209	39.7067305
-6100	5334	5335	0.0675695345311337	0.0675695345311337	-105.0391209	39.7067305	-105.0397046	39.7063211
-6101	5335	5336	0.135628949553031	0.135628949553031	-105.0397046	39.7063211	-105.0408719	39.7054957
-6102	5336	5337	0.134096180080561	0.134096180080561	-105.0408719	39.7054957	-105.0420306	39.7046835
-6103	5337	5338	0.121603742223712	0.121603742223712	-105.0420306	39.7046835	-105.0430777	39.7039439
-6104	5338	5339	0.288999775625269	0.288999775625269	-105.0430777	39.7039439	-105.0455771	39.7021954
-6105	5339	5340	0.295278488962845	0.295278488962845	-105.0455771	39.7021954	-105.0481332	39.700411
-6106	5340	5341	0.386769671992271	0.386769671992271	-105.0481332	39.700411	-105.0514806	39.6980732
-6107	5341	5342	0.199175415622423	0.199175415622423	-105.0514806	39.6980732	-105.0532275	39.6968892
-18500	9718	6670	0.0335166183519053	0.0335166183519053	-105.0303789	39.7373453	-105.029987	39.7373512
-6108	272	2532	0.233490999842372	0.233490999842372	-105.020512	39.7400417	-105.0217751	39.73818
-6109	2532	2534	0.010275790210419	0.010275790210419	-105.0217751	39.73818	-105.0217592	39.7380884
-6111	5343	5344	0.134883731263317	0.134883731263317	-105.0181862	39.7765857	-105.0182175	39.7777985
-6112	5344	2487	0.132908396505932	0.132908396505932	-105.0182175	39.7777985	-105.0181786	39.7789934
-6113	2487	2828	0.130466466605355	0.130466466605355	-105.0181786	39.7789934	-105.0181574	39.7801666
-6114	2828	1436	0.203164250472258	0.203164250472258	-105.0181574	39.7801666	-105.0181574	39.7819937
-6115	1436	5345	0.151025004833817	0.151025004833817	-105.0181574	39.7819937	-105.0181359	39.7833518
-6117	5346	5347	0.17552323432827	0.17552323432827	-104.9281276	39.716246	-104.9281375	39.7146675
-6118	5347	3107	0.175398997422213	0.175398997422213	-104.9281375	39.7146675	-104.9281351	39.7130901
-6119	3107	5348	0.192385063711178	0.192385063711178	-104.9281351	39.7130901	-104.9281539	39.71136
-6121	1515	5349	0.354712199012844	0.354712199012844	-104.9267914	39.6961177	-104.9274952	39.692974
-6123	4219	5350	0.184992548254205	0.184992548254205	-104.928034	39.690987	-104.928405	39.689348
-6124	5350	5351	0.809194581386362	0.809194581386362	-104.928405	39.689348	-104.9286924	39.6820741
-6125	3828	5352	0.158319505042179	0.158319505042179	-104.9277565	39.7065566	-104.9277592	39.7051328
-6127	3683	5353	0.00756991430853718	0.00756991430853718	-104.9848394	39.7475404	-104.9849272	39.7475492
-6128	5353	5354	0.0600900021718448	0.0600900021718448	-104.9849272	39.7475492	-104.9856252	39.7476126
-6129	5354	5355	0.0486030977669072	0.0486030977669072	-104.9856252	39.7476126	-104.986046	39.7479065
-6130	5355	5356	0.00770962942235081	0.00770962942235081	-104.986046	39.7479065	-104.9861098	39.7479555
-6132	5357	5358	0.0529187112553076	0.0529187112553076	-104.9790225	39.7499844	-104.979461	39.7503203
-6133	5358	5359	0.0513821813874635	0.0513821813874635	-104.979461	39.7503203	-104.9798903	39.7506437
-6134	5359	5360	0.0534444522847469	0.0534444522847469	-104.9798903	39.7506437	-104.9803323	39.7509836
-6135	5360	5361	0.0503260757639254	0.0503260757639254	-104.9803323	39.7509836	-104.9807486	39.7513036
-6137	5362	5363	0.199678713236371	0.199678713236371	-105.0450749	39.7228662	-105.0474095	39.722886
-6139	4554	5364	0.257952059435159	0.257952059435159	-105.0220979	39.7228967	-105.025114	39.7228932
-6141	2203	5365	0.125513593247199	0.125513593247199	-104.9873753	39.7338548	-104.988843	39.7338416
-6142	5365	5366	0.121103405669087	0.121103405669087	-104.988843	39.7338416	-104.9902592	39.7338482
-6143	5366	5367	0.118905793541669	0.118905793541669	-104.9902592	39.7338482	-104.9916497	39.7338548
-6144	5367	5368	0.110432655754222	0.110432655754222	-104.9916497	39.7338548	-104.9929409	39.7338739
-7394	6208	6209	0.0520019237828089	0.0520019237828089	-105.0324968	39.7261084	-105.0331036	39.7261385
-6145	5368	4924	0.050653673780936	0.050653673780936	-104.9929409	39.7338739	-104.9935332	39.7338673
-6146	4924	5369	0.0113612305905717	0.0113612305905717	-104.9935332	39.7338673	-104.9936509	39.7338199
-6148	5370	5371	0.0511886893302135	0.0511886893302135	-105.0015763	39.7336919	-105.0021749	39.7336954
-6149	5371	3733	0.0547546687048594	0.0547546687048594	-105.0021749	39.7336954	-105.0028152	39.7336992
-6150	3733	5372	0.0739604711312813	0.0739604711312813	-105.0028152	39.7336992	-105.0036801	39.7337035
-6151	5372	5373	0.0333758188249575	0.0333758188249575	-105.0036801	39.7337035	-105.0040704	39.7337054
-6152	5373	5374	0.0326832624474652	0.0326832624474652	-105.0040704	39.7337054	-105.0044526	39.7337074
-6153	5374	4487	0.0687015455014252	0.0687015455014252	-105.0044526	39.7337074	-105.005256	39.7337116
-6155	5375	5376	0.083676019608772	0.083676019608772	-105.0141162	39.7338913	-105.0150947	39.7338979
-6157	5377	5378	0.539527941615599	0.539527941615599	-105.044041	39.7339173	-105.0503496	39.7339965
-6158	5379	5380	0.024339909926927	0.024339909926927	-105.0008725	39.7336985	-105.0008982	39.7334805
-6159	5380	5381	0.0572545808576417	0.0572545808576417	-105.0008982	39.7334805	-105.0015677	39.7334741
-6161	5382	5383	0.0919429478923695	0.0919429478923695	-105.0174251	39.7338829	-105.0185003	39.7338787
-6162	5383	4632	0.0667555867186957	0.0667555867186957	-105.0185003	39.7338787	-105.0192808	39.733891
-6163	4632	4638	0.073630878201174	0.073630878201174	-105.0192808	39.733891	-105.0201418	39.7338828
-6164	4638	4551	0.135095610306562	0.135095610306562	-105.0201418	39.7338828	-105.0217216	39.7338931
-6165	4551	5384	0.293762175707744	0.293762175707744	-105.0217216	39.7338931	-105.0251569	39.7338774
-6167	2098	5385	0.176238767515036	0.176238767515036	-104.9269736	39.7162529	-104.9269567	39.714668
-6168	5385	3108	0.175113982885218	0.175113982885218	-104.9269567	39.714668	-104.9269709	39.7130932
-6169	3108	5386	0.213105615274275	0.213105615274275	-104.9269709	39.7130932	-104.9269765	39.7111767
-6170	5386	5387	0.16568697132589	0.16568697132589	-104.9269765	39.7111767	-104.926934	39.709687
-6171	5387	5388	0.0444779706577198	0.0444779706577198	-104.926934	39.709687	-104.926934	39.709287
-6173	1958	3829	0.172873649500925	0.172873649500925	-104.9269593	39.708107	-104.9269277	39.7065525
-6174	3829	3827	0.0048313839727239	0.0048313839727239	-104.9269277	39.7065525	-104.9269304	39.7065091
-6175	3827	5389	0.152170039924714	0.152170039924714	-104.9269304	39.7065091	-104.9269733	39.705141
-6176	5389	547	0.0103214739502372	0.0103214739502372	-104.9269733	39.705141	-104.926976	39.7050482
-6177	547	3259	0.110383801281946	0.110383801281946	-104.926976	39.7050482	-104.9269572	39.7040556
-6178	3259	3297	0.0174353644977756	0.0174353644977756	-104.9269572	39.7040556	-104.9269572	39.7038988
-6180	4220	5391	0.40468883776866	0.40468883776866	-104.9274781	39.6893679	-104.9274523	39.6857285
-6181	1473	5392	0.374922653008132	0.374922653008132	-104.9248865	39.6961248	-104.926491	39.6929872
-6182	5392	2947	0.18613051410303	0.18613051410303	-104.926491	39.6929872	-104.9259674	39.6913625
-6184	5393	5394	0.133683449538656	0.133683449538656	-104.9659493	39.748214	-104.9659359	39.7494162
-6185	5394	5395	0.00436494876438714	0.00436494876438714	-104.9659359	39.7494162	-104.9659386	39.7494554
-6186	5395	5396	0.00413948116283948	0.00413948116283948	-104.9659386	39.7494554	-104.9659346	39.7494925
-6187	5396	5397	0.135591162545584	0.135591162545584	-104.9659346	39.7494925	-104.965933	39.7507119
-6188	5397	5398	0.140883972058497	0.140883972058497	-104.965933	39.7507119	-104.965933	39.7519789
-6189	5398	823	0.138673141914839	0.138673141914839	-104.965933	39.7519789	-104.9659416	39.753226
-6190	823	3564	0.136111333534187	0.136111333534187	-104.9659416	39.753226	-104.9659688	39.7544499
-6191	3564	5399	0.14331239683406	0.14331239683406	-104.9659688	39.7544499	-104.9659557	39.7557387
-6193	5400	3028	0.141885844467344	0.141885844467344	-104.9659604	39.7582223	-104.9659386	39.7594982
-7436	5227	5219	0.0266079784612615	0.0266079784612615	-104.9891795	39.7256506	-104.9888684	39.7256475
-6195	5401	5402	0.00584885314190653	0.00584885314190653	-104.9659547	39.7606908	-104.9659547	39.7607434
-6196	5402	5403	0.138593356569714	0.138593356569714	-104.9659547	39.7607434	-104.9659547	39.7619898
-6197	5403	1157	0.139497033685325	0.139497033685325	-104.9659547	39.7619898	-104.965944	39.7632443
-6198	1157	878	0.139538816070218	0.139538816070218	-104.965944	39.7632443	-104.9659474	39.7644992
-6199	878	4466	0.138604668182001	0.138604668182001	-104.9659474	39.7644992	-104.9659447	39.7657457
-6200	4466	2786	0.1346682214983	0.1346682214983	-104.9659447	39.7657457	-104.9659434	39.7669568
-6201	2786	5257	0.131712815882714	0.131712815882714	-104.9659434	39.7669568	-104.9659655	39.7681412
-6202	5257	5404	0.212033227364557	0.212033227364557	-104.9659655	39.7681412	-104.9659333	39.7700479
-6203	5404	5405	0.140381205630714	0.140381205630714	-104.9659333	39.7700479	-104.9658988	39.7713101
-6204	5405	5406	0.175882952103236	0.175882952103236	-104.9658988	39.7713101	-104.9659423	39.7728915
-6206	4761	5407	0.0777628340765697	0.0777628340765697	-104.9656944	39.7219804	-104.9658146	39.7226736
-6207	5407	5411	0.121860688460736	0.121860688460736	-104.9658146	39.7226736	-104.9658231	39.7237695
-6208	5411	5412	0.203436645645446	0.203436645645446	-104.9658231	39.7237695	-104.9658624	39.7255988
-6211	5413	3128	0.197988223180436	0.197988223180436	-104.9658604	39.7273116	-104.9658779	39.7290921
-6213	5414	5415	0.127346625489507	0.127346625489507	-104.9656118	39.7807932	-104.9655971	39.7819384
-6214	5415	5416	0.202431697844534	0.202431697844534	-104.9655971	39.7819384	-104.9656057	39.7837589
-6216	5417	5418	0.0360920642856509	0.0360920642856509	-104.9659605	39.7364894	-104.9659747	39.7368138
-18249	10283	10284	0.0379598203284706	0.0379598203284706	-105.0375025	39.7802085	-105.0376009	39.7805414
-6217	5418	5419	0.175688258529037	0.175688258529037	-104.9659747	39.7368138	-104.9659981	39.7383937
-6218	5419	5420	0.176513424391556	0.176513424391556	-104.9659981	39.7383937	-104.9659869	39.7399811
-6219	5420	671	0.183363162969023	0.183363162969023	-104.9659869	39.7399811	-104.9659752	39.7416301
-6220	671	5421	0.00332688246962709	0.00332688246962709	-104.9659752	39.7416301	-104.9659766	39.74166
-6221	5421	5422	0.175194594065608	0.175194594065608	-104.9659766	39.74166	-104.9659949	39.7432355
-6222	5422	4601	0.174116514777802	0.174116514777802	-104.9659949	39.7432355	-104.965976	39.7448013
-6223	4601	5423	0.141050765485302	0.141050765485302	-104.965976	39.7448013	-104.9659758	39.7460698
-6225	2950	5424	0.133468479991587	0.133468479991587	-104.9258215	39.6885687	-104.9265768	39.6875185
-6226	5425	3096	0.198372842511786	0.198372842511786	-104.9698675	39.7147124	-104.9698598	39.7129284
-6227	3096	3206	0.203187034114148	0.203187034114148	-104.9698598	39.7129284	-104.9698543	39.7111011
-6228	3206	5426	0.199398136177365	0.199398136177365	-104.9698543	39.7111011	-104.9698407	39.7093079
-6229	5426	1916	0.200785704053696	0.200785704053696	-104.9698407	39.7093079	-104.9698332	39.7075022
-6231	5427	5428	0.208049356186156	0.208049356186156	-104.9699057	39.6929673	-104.9698913	39.6910963
-6232	5428	5429	0.195358366621449	0.195358366621449	-104.9698913	39.6910963	-104.9698913	39.6893394
-6233	5429	5430	0.0822508872394256	0.0822508872394256	-104.9698913	39.6893394	-104.9698913	39.6885997
-6234	5431	3740	0.099853044127537	0.099853044127537	-105.0250764	39.7166076	-105.0250764	39.7157096
-6235	3740	5432	0.079904711368683	0.079904711368683	-105.0250764	39.7157096	-105.0250773	39.714991
-6236	5432	5433	0.0177357578673254	0.0177357578673254	-105.0250773	39.714991	-105.0250764	39.7148315
-6237	5433	1299	0.160881213225809	0.160881213225809	-105.0250764	39.7148315	-105.0250625	39.7133847
-6238	1299	1344	0.0431325120453993	0.0431325120453993	-105.0250625	39.7133847	-105.0250625	39.7129968
-6239	1344	5434	0.202930771593003	0.202930771593003	-105.0250625	39.7129968	-105.0250638	39.7111718
-6240	5434	5435	0.195937805328833	0.195937805328833	-105.0250638	39.7111718	-105.0250719	39.7094097
-6241	5435	4701	0.00964060014055181	0.00964060014055181	-105.0250719	39.7094097	-105.0250719	39.709323
-6242	4701	5436	0.088911763330732	0.088911763330732	-105.0250719	39.709323	-105.0250692	39.7085234
-6243	5436	5437	0.105079205678488	0.105079205678488	-105.0250692	39.7085234	-105.0250692	39.7075784
-6244	5437	5438	0.0943047001329777	0.0943047001329777	-105.0250692	39.7075784	-105.0250719	39.7067303
-6245	5438	5439	0.100620360394738	0.100620360394738	-105.0250719	39.7067303	-105.0250705	39.7058254
-6246	5439	5440	0.0146794154501444	0.0146794154501444	-105.0250705	39.7058254	-105.0250679	39.7056934
-6247	5440	4965	0.086276226710605	0.086276226710605	-105.0250679	39.7056934	-105.0250665	39.7049175
-6248	4965	5441	0.10739345579216	0.10739345579216	-105.0250665	39.7049175	-105.0250601	39.7039517
-6249	5441	5442	0.0951717377148208	0.0951717377148208	-105.0250601	39.7039517	-105.0250601	39.7030958
-6250	5442	5443	0.0976857174224503	0.0976857174224503	-105.0250601	39.7030958	-105.0250652	39.7022173
-6252	779	5444	0.0823735255229089	0.0823735255229089	-105.0250638	39.7020728	-105.0250665	39.701332
-6253	5444	5445	0.102122427250782	0.102122427250782	-105.0250665	39.701332	-105.0250612	39.7004136
-6254	5445	4958	0.133513290288167	0.133513290288167	-105.0250612	39.7004136	-105.0250687	39.6992129
-6255	4958	5446	0.0684224753039321	0.0684224753039321	-105.0250687	39.6992129	-105.0250598	39.6985976
-6256	5446	5447	0.00769468892365438	0.00769468892365438	-105.0250598	39.6985976	-105.0250598	39.6985284
-6257	5447	5448	0.199639504943165	0.199639504943165	-105.0250598	39.6985284	-105.0250571	39.696733
-6258	5448	1501	0.201263981115328	0.201263981115328	-105.0250571	39.696733	-105.0250491	39.694923
-6259	1501	174	0.201029338652354	0.201029338652354	-105.0250491	39.694923	-105.0250478	39.6931151
-6261	1704	1730	0.0545082426213867	0.0545082426213867	-105.0250424	39.6912967	-105.0250451	39.6908065
-6262	1730	5451	0.146076957823045	0.146076957823045	-105.0250451	39.6908065	-105.0250424	39.6894928
-6263	5451	5452	1.20615427321132	1.20615427321132	-105.0250424	39.6894928	-105.0250276	39.6786456
-6265	5456	5457	0.107171013555617	0.107171013555617	-104.9861136	39.7384486	-104.9848604	39.7384323
-6266	5457	5458	0.0551341429674013	0.0551341429674013	-104.9848604	39.7384323	-104.9842156	39.7384332
-6267	5458	5459	0.053860211885536	0.053860211885536	-104.9842156	39.7384332	-104.9835857	39.7384319
-6268	5459	5460	0.109859438734606	0.109859438734606	-104.9835857	39.7384319	-104.9823009	39.7384375
-6269	5460	5461	0.104952215686531	0.104952215686531	-104.9823009	39.7384375	-104.9810735	39.7384309
-6270	5461	5462	0.0537660564474852	0.0537660564474852	-104.9810735	39.7384309	-104.9804447	39.73843
-6271	5462	5463	0.0468001440268365	0.0468001440268365	-104.9804447	39.73843	-104.9798976	39.7384177
-6273	5464	5465	0.0487076064705391	0.0487076064705391	-104.9793148	39.7384144	-104.9787452	39.7384091
-6274	5465	5466	0.096682643717806	0.096682643717806	-104.9787452	39.7384091	-104.9776145	39.7384045
-6275	5466	5052	0.0976295695745084	0.0976295695745084	-104.9776145	39.7384045	-104.976473	39.7384243
-6276	5052	5467	0.0498503558842522	0.0498503558842522	-104.976473	39.7384243	-104.97589	39.7384222
-6277	5467	5468	0.0500897185974344	0.0500897185974344	-104.97589	39.7384222	-104.9753042	39.7384242
-6279	5223	978	0.0483462615206691	0.0483462615206691	-104.9747109	39.7384283	-104.9741456	39.7384195
-6280	978	5469	0.0500186833718628	0.0500186833718628	-104.9741456	39.7384195	-104.9735608	39.7384085
-6281	5469	5470	0.0466179289686935	0.0466179289686935	-104.9735608	39.7384085	-104.9730156	39.7384072
-6282	5470	5471	0.0496889709391185	0.0496889709391185	-104.9730156	39.7384072	-104.9724345	39.7384108
-6283	5471	5472	0.0500395303728477	0.0500395303728477	-104.9724345	39.7384108	-104.9718493	39.7384144
-6284	5472	4947	0.0500649255411997	0.0500649255411997	-104.9718493	39.7384144	-104.9712638	39.7384111
-6285	4947	5119	0.0486069729184005	0.0486069729184005	-104.9712638	39.7384111	-104.9706954	39.7384177
-6286	5119	5473	0.0497694572157541	0.0497694572157541	-104.9706954	39.7384177	-104.9701135	39.7384072
-6287	5473	4719	0.0482501223288259	0.0482501223288259	-104.9701135	39.7384072	-104.9695494	39.7384185
-6288	4719	5474	0.0825694493004343	0.0825694493004343	-104.9695494	39.7384185	-104.9685838	39.7384102
-6289	5474	5475	0.013401399089124	0.013401399089124	-104.9685838	39.7384102	-104.9684271	39.7384126
-6290	5475	5476	0.103889728134339	0.103889728134339	-104.9684271	39.7384126	-104.9672122	39.7384004
-6291	5476	5419	0.103815153646491	0.103815153646491	-104.9672122	39.7384004	-104.9659981	39.7383937
-6292	5419	5477	0.109635415021011	0.109635415021011	-104.9659981	39.7383937	-104.964716	39.7383814
-6294	3890	1020	0.105962717150938	0.105962717150938	-104.9634822	39.7383772	-104.962243	39.7383855
-6295	1020	5478	0.052027246508575	0.052027246508575	-104.962243	39.7383855	-104.9616347	39.7383964
-6296	5478	5479	0.0524872333525023	0.0524872333525023	-104.9616347	39.7383964	-104.9610209	39.7383907
-6297	5479	3719	0.052252544610622	0.052252544610622	-104.9610209	39.7383907	-104.9604099	39.7383822
-6298	3719	5480	0.0538013756911254	0.0538013756911254	-104.9604099	39.7383822	-104.9597808	39.7383914
-6299	5480	5481	0.0436600330786078	0.0436600330786078	-104.9597808	39.7383914	-104.9592702	39.7383938
-6300	5481	5482	0.00837974421686285	0.00837974421686285	-104.9592702	39.7383938	-104.9591722	39.7383943
-14763	7162	4611	0.176903840452458	0.176903840452458	-104.9793413	39.7432656	-104.9793144	39.7448564
-6301	5482	5026	0.040489278057912	0.040489278057912	-104.9591722	39.7383943	-104.9586987	39.7383904
-6302	5026	3338	0.107876149200874	0.107876149200874	-104.9586987	39.7383904	-104.9574371	39.7383843
-6303	3338	5483	0.0990429074228521	0.0990429074228521	-104.9574371	39.7383843	-104.9562788	39.7383792
-6304	5483	5484	0.0966066822218646	0.0966066822218646	-104.9562788	39.7383792	-104.955149	39.7383732
-6305	5484	5485	0.085086759759281	0.085086759759281	-104.955149	39.7383732	-104.9541539	39.7383732
-6306	5485	5486	0.0169728889677259	0.0169728889677259	-104.9541539	39.7383732	-104.9539554	39.7383732
-6307	5486	2067	0.0825646387998858	0.0825646387998858	-104.9539554	39.7383732	-104.9529898	39.7383752
-6309	5487	2667	0.0866869262626222	0.0866869262626222	-104.952802	39.738367	-104.9517882	39.7383629
-6310	2667	2664	0.00897895817052901	0.00897895817052901	-104.9517882	39.7383629	-104.9516835	39.7383567
-6311	2664	4137	0.0908182867369719	0.0908182867369719	-104.9516835	39.7383567	-104.9506214	39.7383505
-6312	4137	5488	0.0965705527653259	0.0965705527653259	-104.9506214	39.7383505	-104.9494922	39.738334
-6313	5488	5489	0.0942751679467969	0.0942751679467969	-104.9494922	39.738334	-104.9483898	39.7383484
-6314	5489	5490	0.0959916716400224	0.0959916716400224	-104.9483898	39.7383484	-104.9472672	39.7383417
-6315	5490	3461	0.0933212956911074	0.0933212956911074	-104.9472672	39.7383417	-104.9461758	39.7383438
-6316	3461	5491	0.0467923341231575	0.0467923341231575	-104.9461758	39.7383438	-104.9456286	39.7383386
-6317	5491	5492	0.0479894648111637	0.0479894648111637	-104.9456286	39.7383386	-104.9450674	39.7383333
-6318	5492	5493	0.094030978726141	0.094030978726141	-104.9450674	39.7383333	-104.9439677	39.7383313
-6319	5493	861	0.0920531787302436	0.0920531787302436	-104.9439677	39.7383313	-104.9428912	39.7383217
-6320	861	5494	0.092346282981082	0.092346282981082	-104.9428912	39.7383217	-104.9418112	39.7383212
-6321	5494	5495	0.091117734759624	0.091117734759624	-104.9418112	39.7383212	-104.9407458	39.7383041
-20501	10824	10839	0.0279151158292869	0.0279151158292869	-105.0208891	39.7583505	-105.0206127	39.7582168
-6323	5496	5497	0.0512308809047994	0.0512308809047994	-104.9773755	39.757988	-104.9777977	39.758315
-6324	5497	5498	0.0547050066584288	0.0547050066584288	-104.9777977	39.758315	-104.9782485	39.7586642
-6325	5498	5499	0.0532065647068504	0.0532065647068504	-104.9782485	39.7586642	-104.978687	39.7590038
-6326	5499	5500	0.0520026026999989	0.0520026026999989	-104.978687	39.7590038	-104.9791156	39.7593357
-6327	5500	5501	0.0600453089722235	0.0600453089722235	-104.9791156	39.7593357	-104.9796104	39.759719
-6328	5501	5502	0.0451373924487277	0.0451373924487277	-104.9796104	39.759719	-104.9799824	39.7600071
-7588	6319	6320	0.0874047970677394	0.0874047970677394	-105.036097	39.7056008	-105.0371184	39.7056206
-6330	5503	5504	0.0512021800904844	0.0512021800904844	-104.9804313	39.7603548	-104.9808533	39.7606816
-6331	5504	5505	0.0535897595927606	0.0535897595927606	-104.9808533	39.7606816	-104.9812949	39.7610237
-6332	5505	5506	0.0503264318858696	0.0503264318858696	-104.9812949	39.7610237	-104.9817097	39.7613449
-6333	5506	5507	0.0549843628648472	0.0549843628648472	-104.9817097	39.7613449	-104.9821628	39.7616959
-6334	5507	3309	0.0521587927419047	0.0521587927419047	-104.9821628	39.7616959	-104.9825927	39.7620288
-6335	3309	5508	0.0557422576502987	0.0557422576502987	-104.9825927	39.7620288	-104.9830521	39.7623846
-6336	5508	5509	0.0498065817995712	0.0498065817995712	-104.9830521	39.7623846	-104.9834626	39.7627025
-6338	5510	5511	0.10273263586878	0.10273263586878	-104.9738469	39.7553142	-104.974688	39.7559741
-6339	5511	5512	0.103095987250104	0.103095987250104	-104.974688	39.7559741	-104.975568	39.7566081
-6340	5512	3020	0.0125186689867189	0.0125186689867189	-104.975568	39.7566081	-104.9756854	39.7566754
-6341	3020	5513	0.0466432236195876	0.0466432236195876	-104.9756854	39.7566754	-104.97606	39.7569804
-6342	5513	4381	0.0509815437370977	0.0509815437370977	-104.97606	39.7569804	-104.9764694	39.7573138
-6344	5514	5515	0.103259680904514	0.103259680904514	-104.998222	39.7742728	-104.9994301	39.7742575
-6345	5515	3934	0.0990266173550878	0.0990266173550878	-104.9994301	39.7742575	-105.0005888	39.7742509
-6346	3934	5516	0.10122291130851	0.10122291130851	-105.0005888	39.7742509	-105.0017732	39.7742575
-6347	5516	3707	0.107162793104657	0.107162793104657	-105.0017732	39.7742575	-105.0030264	39.7742905
-6348	3707	717	0.101965718351369	0.101965718351369	-105.0030264	39.7742905	-105.0042194	39.7743037
-6349	717	5517	0.10489500722876	0.10489500722876	-105.0042194	39.7743037	-105.0054468	39.7743037
-6350	5517	5518	0.0880249775504832	0.0880249775504832	-105.0054468	39.7743037	-105.0064768	39.7743037
-6352	5519	4201	0.0955388621117037	0.0955388621117037	-105.0064768	39.7741388	-105.0075947	39.7741338
-6353	4201	1068	0.10398483351111	0.10398483351111	-105.0075947	39.7741338	-105.0088114	39.7741256
-6354	1068	2504	0.101881809876575	0.101881809876575	-105.0088114	39.7741256	-105.0100035	39.774133
-6355	2504	5520	0.10295538196753	0.10295538196753	-105.0100035	39.774133	-105.0112082	39.7741318
-6356	5520	1231	0.0964004159007037	0.0964004159007037	-105.0112082	39.7741318	-105.0123362	39.7741321
-6357	1231	4809	0.0995624903271375	0.0995624903271375	-105.0123362	39.7741321	-105.0135012	39.7741317
-6358	4809	2176	0.101169164261142	0.101169164261142	-105.0135012	39.7741317	-105.014685	39.7741313
-6359	2176	5521	0.102032335854251	0.102032335854251	-105.014685	39.7741313	-105.0158789	39.7741319
-6360	5521	348	0.0731550647240869	0.0731550647240869	-105.0158789	39.7741319	-105.0167349	39.7741306
-6361	348	351	0.0329026304601732	0.0329026304601732	-105.0167349	39.7741306	-105.0171199	39.7741304
-6363	5522	4629	0.122115753805888	0.122115753805888	-105.0175119	39.7741304	-105.0189408	39.7741298
-6364	4629	1258	0.132003632804436	0.132003632804436	-105.0189408	39.7741298	-105.0204854	39.7741292
-6366	377	4544	0.0548661978897115	0.0548661978897115	-105.0213949	39.7741289	-105.0220369	39.7741287
-6367	4544	2700	0.136738193723685	0.136738193723685	-105.0220369	39.7741287	-105.0236369	39.7741281
-6368	2700	5523	0.130559333935347	0.130559333935347	-105.0236369	39.7741281	-105.0251646	39.7741276
-6371	5525	1133	0.0486624445582808	0.0486624445582808	-105.0398709	39.7738651	-105.0404403	39.7738672
-6372	1133	5526	0.0510752177714687	0.0510752177714687	-105.0404403	39.7738672	-105.0410378	39.7738771
-6373	5526	5527	0.0534768474459495	0.0534768474459495	-105.0410378	39.7738771	-105.0416634	39.7738873
-6374	5527	3849	0.0993499397911337	0.0993499397911337	-105.0416634	39.7738873	-105.0428259	39.7738908
-20247	6972	10718	0.0278784612667637	0.0278784612667637	-105.0336248	39.7451433	-105.033621	39.745394
-6375	3849	5528	0.0502810849564127	0.0502810849564127	-105.0428259	39.7738908	-105.0434142	39.7738965
-6376	5528	5529	0.0506206995449551	0.0506206995449551	-105.0434142	39.7738965	-105.0440065	39.7738927
-6378	3432	5530	0.0954898525843842	0.0954898525843842	-105.0346033	39.7741067	-105.033486	39.774099
-6379	5530	1409	0.0985492973952367	0.0985492973952367	-105.033486	39.774099	-105.032333	39.774085
-6380	1409	5531	0.102140021124127	0.102140021124127	-105.032333	39.774085	-105.031138	39.77407
-6381	5531	3995	0.106588318724824	0.106588318724824	-105.031138	39.77407	-105.0298909	39.7740573
-6382	3995	5532	0.089989655098645	0.089989655098645	-105.0298909	39.7740573	-105.028838	39.774047
-6383	5532	5533	0.0940983975381981	0.0940983975381981	-105.028838	39.774047	-105.027737	39.774038
-6384	5533	3749	0.102559803256087	0.102559803256087	-105.027737	39.774038	-105.026537	39.774028
-6385	3749	5534	0.132377311804748	0.132377311804748	-105.026537	39.774028	-105.0252738	39.774717
-6388	2028	5536	0.103552176267271	0.103552176267271	-104.9936175	39.7741835	-104.9948277	39.7742296
-6391	3402	5538	0.101285303038309	0.101285303038309	-105.0346118	39.75209	-105.0357963	39.7521098
-6392	5538	5539	0.0982612440798091	0.0982612440798091	-105.0357963	39.7521098	-105.0369449	39.7521429
-6393	5539	5540	0.104203916508807	0.104203916508807	-105.0369449	39.7521429	-105.0381637	39.7521297
-6394	5540	5541	0.0994909347746214	0.0994909347746214	-105.0381637	39.7521297	-105.0393273	39.7521135
-6395	5541	5542	0.0496866830167122	0.0496866830167122	-105.0393273	39.7521135	-105.0399084	39.7521049
-6396	5542	1115	0.0483270289965061	0.0483270289965061	-105.0399084	39.7521049	-105.0404736	39.7520966
-6397	1115	5543	0.0505090974663915	0.0505090974663915	-105.0404736	39.7520966	-105.0410644	39.752101
-6398	5543	5544	0.051466523607823	0.051466523607823	-105.0410644	39.752101	-105.0416664	39.7521054
-6399	5544	5545	0.0509771831188889	0.0509771831188889	-105.0416664	39.7521054	-105.0422627	39.7521069
-18369	6894	6889	0.0506808956189271	0.0506808956189271	-105.0259502	39.7655831	-105.0259388	39.7651274
-6400	5545	3837	0.0484293465449961	0.0484293465449961	-105.0422627	39.7521069	-105.0428292	39.7521069
-6402	5546	5547	0.0572465530818606	0.0572465530818606	-104.9874887	39.6894093	-104.9881577	39.6894044
-6403	5547	4036	0.051041556606541	0.051041556606541	-104.9881577	39.6894044	-104.9887542	39.6894075
-6404	4036	5548	0.0609619584955507	0.0609619584955507	-104.9887542	39.6894075	-104.9894666	39.6894141
-6405	1878	4178	0.0543518295000293	0.0543518295000293	-104.9904039	39.689387	-104.9910391	39.689387
-6406	4178	5549	0.0885356562805968	0.0885356562805968	-104.9910391	39.689387	-104.9920738	39.6893875
-6408	1863	2630	0.0954187587481574	0.0954187587481574	-105.0439342	39.7212724	-105.0439263	39.7221305
-6409	2630	2609	0.0942841337329746	0.0942841337329746	-105.0439263	39.7221305	-105.0439334	39.7229784
-6410	2609	5207	0.106776685868403	0.106776685868403	-105.0439334	39.7229784	-105.0439566	39.7239385
-6411	5207	5191	0.0702035466323056	0.0702035466323056	-105.0439566	39.7239385	-105.0439457	39.7245698
-6412	5191	5550	0.105689823753241	0.105689823753241	-105.0439457	39.7245698	-105.0439763	39.72552
-6414	5551	5552	0.13548002915508	0.13548002915508	-105.0440125	39.7548692	-105.0440147	39.7560876
-6415	5552	5553	0.0682592832885596	0.0682592832885596	-105.0440147	39.7560876	-105.0440268	39.7567014
-6416	5553	19	0.0650116042038798	0.0650116042038798	-105.0440268	39.7567014	-105.044038	39.757286
-6417	19	2991	0.133631170313494	0.133631170313494	-105.044038	39.757286	-105.0440114	39.7584876
-6418	2991	5554	0.0524731372315077	0.0524731372315077	-105.0440114	39.7584876	-105.0440133	39.7589595
-6419	5554	1882	0.0490816557393864	0.0490816557393864	-105.0440133	39.7589595	-105.044015	39.7594009
-6420	1882	5555	0.0508829391590993	0.0508829391590993	-105.044015	39.7594009	-105.0440136	39.7598585
-6421	5555	5556	0.0494818870663145	0.0494818870663145	-105.0440136	39.7598585	-105.0440122	39.7603035
-6422	5556	5557	0.0511609921162368	0.0511609921162368	-105.0440122	39.7603035	-105.0440105	39.7607636
-6423	5557	5558	0.0498069369814246	0.0498069369814246	-105.0440105	39.7607636	-105.0440044	39.7612115
-6424	5558	5559	0.0494751154031395	0.0494751154031395	-105.0440044	39.7612115	-105.0440122	39.7616564
-6425	5559	5560	0.0510095826256232	0.0510095826256232	-105.0440122	39.7616564	-105.0440201	39.7621151
-18695	5978	4055	0.196460738141722	0.196460738141722	-105.0391098	39.719916	-105.0391007	39.7181492
-6426	5560	5561	0.100658038986824	0.100658038986824	-105.0440201	39.7621151	-105.0440091	39.7630203
-6427	5561	5562	0.100189919501299	0.100189919501299	-105.0440091	39.7630203	-105.0439996	39.7639213
-6428	5562	5243	0.0999621826427635	0.0999621826427635	-105.0439996	39.7639213	-105.0440231	39.7648201
-6429	5243	5563	0.0514845629022423	0.0514845629022423	-105.0440231	39.7648201	-105.0440188	39.7652831
-6430	5563	5564	0.0509507800422364	0.0509507800422364	-105.0440188	39.7652831	-105.0440146	39.7657413
-6431	5564	5565	0.0506384299937204	0.0506384299937204	-105.0440146	39.7657413	-105.0440165	39.7661967
-6432	5565	5566	0.0502094012018427	0.0502094012018427	-105.0440165	39.7661967	-105.0440247	39.7666482
-6433	5566	5567	0.0352773306402212	0.0352773306402212	-105.0440247	39.7666482	-105.0440325	39.7669654
-6434	5567	1696	0.0663073245001768	0.0663073245001768	-105.0440325	39.7669654	-105.0440268	39.7675617
-6435	1696	5568	0.200475700974595	0.200475700974595	-105.0440268	39.7675617	-105.0440382	39.7693646
-6436	5568	2444	0.175243279627828	0.175243279627828	-105.0440382	39.7693646	-105.0440363	39.7709406
-6438	5569	5570	0.150878938410471	0.150878938410471	-105.0440431	39.7711254	-105.0440138	39.7724821
-6439	5570	5571	0.0520399442807291	0.0520399442807291	-105.0440138	39.7724821	-105.0440106	39.7729501
-6440	5571	5572	0.00805055351559969	0.00805055351559969	-105.0440106	39.7729501	-105.0440103	39.7730225
-6441	5572	5573	0.0547971824088202	0.0547971824088202	-105.0440103	39.7730225	-105.0440081	39.7735153
-6442	5573	5529	0.0419651880906561	0.0419651880906561	-105.0440081	39.7735153	-105.0440065	39.7738927
-6443	5529	5574	0.00738334312936163	0.00738334312936163	-105.0440065	39.7738927	-105.0440065	39.7739591
-6444	5574	5575	0.0892116998808573	0.0892116998808573	-105.0440065	39.7739591	-105.044007	39.7747614
-6445	5575	5576	0.0587189734757016	0.0587189734757016	-105.044007	39.7747614	-105.0439812	39.7752891
-6446	5576	5577	0.143444822058071	0.143444822058071	-105.0439812	39.7752891	-105.0439697	39.7765791
-6447	5577	5578	0.0305007791534936	0.0305007791534936	-105.0439697	39.7765791	-105.0439694	39.7768534
-6448	5578	5579	0.0181914980281834	0.0181914980281834	-105.0439694	39.7768534	-105.0439692	39.777017
-6449	5579	5580	0.150469022298562	0.150469022298562	-105.0439692	39.777017	-105.0439678	39.7783702
-6450	5580	5581	0.204922214354376	0.204922214354376	-105.0439678	39.7783702	-105.04396	39.7802131
-6451	5581	5582	0.0983186744589269	0.0983186744589269	-105.04396	39.7802131	-105.0439618	39.7810973
-6452	5582	1433	0.108782481382419	0.108782481382419	-105.0439618	39.7810973	-105.043958	39.7820756
-6453	1433	5583	0.123482673613688	0.123482673613688	-105.043958	39.7820756	-105.043938	39.783186
-6454	5583	5584	0.0754033254163114	0.0754033254163114	-105.043938	39.783186	-105.0439445	39.7838641
-6455	5584	5585	0.194791277181441	0.194791277181441	-105.0439445	39.7838641	-105.043944	39.7856159
-6456	5585	5586	0.0533068649535537	0.0533068649535537	-105.043944	39.7856159	-105.0439435	39.7860953
-6457	5586	2555	0.14827848293408	0.14827848293408	-105.0439435	39.7860953	-105.0439421	39.7874288
-6458	2555	5587	0.408042656170713	0.408042656170713	-105.0439421	39.7874288	-105.0439281	39.7910984
-6459	5588	5589	0.135112968623698	0.135112968623698	-105.0439294	39.7354289	-105.0439287	39.736644
-6460	5589	5590	0.203702085134274	0.203702085134274	-105.0439287	39.736644	-105.0440007	39.7384751
-6461	5590	5591	0.207620262278034	0.207620262278034	-105.0440007	39.7384751	-105.0440223	39.7403422
-6462	5591	4585	0.131035476997682	0.131035476997682	-105.0440223	39.7403422	-105.0440113	39.7415206
-6463	4585	5592	0.072769358589151	0.072769358589151	-105.0440113	39.7415206	-105.0440283	39.7421749
-6464	5592	5593	0.0625746572307696	0.0625746572307696	-105.0440283	39.7421749	-105.0440188	39.7427376
-6465	5593	5301	0.137225765514935	0.137225765514935	-105.0440188	39.7427376	-105.0440208	39.7439717
-6467	5594	5595	0.274145349571988	0.274145349571988	-105.0438496	39.7258018	-105.0438951	39.728267
-6468	5595	5596	0.205443804135366	0.205443804135366	-105.0438951	39.728267	-105.0438933	39.7301146
-6469	5596	5597	0.121926623756206	0.121926623756206	-105.0438933	39.7301146	-105.0438865	39.7312111
-6470	5597	5598	0.202580256912195	0.202580256912195	-105.0438865	39.7312111	-105.0439037	39.7330329
-6472	4361	5599	0.206258701511779	0.206258701511779	-105.0015929	39.7165869	-105.0015794	39.7184418
-6474	5600	5601	0.168149469233138	0.168149469233138	-105.0015966	39.7194189	-105.0016014	39.7209311
-6476	2625	5205	0.166253482314503	0.166253482314503	-105.0013439	39.7226673	-105.001561	39.7241531
-6502	5622	5516	0.138783948073856	0.138783948073856	-105.0017809	39.7730094	-105.0017732	39.7742575
-6477	5205	5602	0.15603138237828	0.15603138237828	-105.001561	39.7241531	-105.0016002	39.725556
-6478	5602	5603	0.0341829476854199	0.0341829476854199	-105.0016002	39.725556	-105.0016041	39.7258634
-6479	5603	5604	0.162233690102157	0.162233690102157	-105.0016041	39.7258634	-105.0016005	39.7273224
-6480	5604	5605	0.176890418224524	0.176890418224524	-105.0016005	39.7273224	-105.0015919	39.7289132
-6481	5605	5606	0.121703194532156	0.121703194532156	-105.0015919	39.7289132	-105.0015885	39.7300077
-6482	5606	5609	0.0547747917576354	0.0547747917576354	-105.0015885	39.7300077	-105.0015869	39.7305003
-6483	5609	5610	0.177274555583034	0.177274555583034	-105.0015869	39.7305003	-105.0015677	39.7320945
-6484	5610	5611	0.0562757523743122	0.0562757523743122	-105.0015677	39.7320945	-105.0015677	39.7326006
-6485	5611	5381	0.0971287684245127	0.0971287684245127	-105.0015677	39.7326006	-105.0015677	39.7334741
-6486	5381	5370	0.0242294178668139	0.0242294178668139	-105.0015677	39.7334741	-105.0015763	39.7336919
-6487	5370	5612	0.177146422666141	0.177146422666141	-105.0015763	39.7336919	-105.001567	39.735285
-6488	5612	5613	0.176947014024794	0.176947014024794	-105.001567	39.735285	-105.0015927	39.7368762
-6489	5613	5614	0.177715418603807	0.177715418603807	-105.0015927	39.7368762	-105.0015572	39.7384742
-6490	5614	5615	0.0918268918834614	0.0918268918834614	-105.0015572	39.7384742	-105.0015645	39.7393
-6491	5615	5616	0.00795060277662081	0.00795060277662081	-105.0015645	39.7393	-105.0015651	39.7393715
-6493	5617	5618	0.0159556400855116	0.0159556400855116	-105.0015669	39.7400197	-105.0015736	39.7401631
-6496	5619	5620	0.132547309025511	0.132547309025511	-105.0018152	39.7656592	-105.0017926	39.7668511
-6497	5620	1667	0.132931219459218	0.132931219459218	-105.0017926	39.7668511	-105.0017747	39.7680465
-6498	1667	5621	0.138273532739947	0.138273532739947	-105.0017747	39.7680465	-105.0017647	39.76929
-6499	5621	2448	0.13601631946961	0.13601631946961	-105.0017647	39.76929	-105.0017747	39.7705132
-6500	2448	3238	0.136726308588665	0.136726308588665	-105.0017747	39.7705132	-105.0017809	39.7717428
-6501	3238	5622	0.14083949408811	0.14083949408811	-105.0017809	39.7717428	-105.0017809	39.7730094
-6503	5516	5623	0.135704638458681	0.135704638458681	-105.0017732	39.7742575	-105.0017268	39.7754774
-6504	5623	5624	0.00588469429500613	0.00588469429500613	-105.0017268	39.7754774	-105.0017248	39.7755303
-6505	5624	5625	0.115900802279231	0.115900802279231	-105.0017248	39.7755303	-105.0017162	39.7765726
-6506	5625	5626	0.19877742240622	0.19877742240622	-105.0017162	39.7765726	-105.0016991	39.7783602
-6507	5626	110	0.101954628240396	0.101954628240396	-105.0016991	39.7783602	-105.0016991	39.7792771
-6508	110	2818	0.0990079626838536	0.0990079626838536	-105.0016991	39.7792771	-105.0016991	39.7801675
-6509	2818	1419	0.203073935940985	0.203073935940985	-105.0016991	39.7801675	-105.0017224	39.7819937
-6510	1419	5627	0.11954884298017	0.11954884298017	-105.0017224	39.7819937	-105.0017122	39.7830688
-6511	2917	5628	0.0366435746314918	0.0366435746314918	-104.9732076	39.7181827	-104.9727792	39.7181791
-6513	3710	5629	0.104723848956837	0.104723848956837	-104.9874523	39.7183509	-104.9862279	39.718349
-6514	5629	5630	0.0524718119166661	0.0524718119166661	-104.9862279	39.718349	-104.9856145	39.7183411
-6515	5630	5631	0.0523604583661445	0.0523604583661445	-104.9856145	39.7183411	-104.9850024	39.7183333
-6516	5631	963	0.102688945741692	0.102688945741692	-104.9850024	39.7183333	-104.9838018	39.7183372
-6519	2898	5632	0.0542316769914945	0.0542316769914945	-104.9733526	39.7557317	-104.9727182	39.7557338
-6520	5632	5633	0.0508977749431617	0.0508977749431617	-104.9727182	39.7557338	-104.9721228	39.7557358
-6521	5633	5634	0.106035617894042	0.106035617894042	-104.9721228	39.7557358	-104.9708824	39.75574
-6522	5634	4734	0.104599442261749	0.104599442261749	-104.9708824	39.75574	-104.9696588	39.7557441
-6524	5635	5399	0.0949731678048623	0.0949731678048623	-104.9670667	39.7557406	-104.9659557	39.7557387
-6525	5399	5636	0.053273863098243	0.053273863098243	-104.9659557	39.7557387	-104.9653325	39.7557377
-6526	5636	5637	0.0532054766684841	0.0532054766684841	-104.9653325	39.7557377	-104.9647101	39.7557367
-6527	5637	3901	0.105282590951624	0.105282590951624	-104.9647101	39.7557367	-104.9634785	39.7557346
-6528	3901	1038	0.105350981348288	0.105350981348288	-104.9634785	39.7557346	-104.9622461	39.7557325
-6530	5638	5639	0.103436146317209	0.103436146317209	-104.9609978	39.7557305	-104.9597878	39.7557284
-6531	5639	5004	0.104923546637106	0.104923546637106	-104.9597878	39.7557284	-104.9585604	39.7557264
-6532	5004	3324	0.10200854500581	0.10200854500581	-104.9585604	39.7557264	-104.9573671	39.7557244
-20515	10842	6731	0.00724303302685487	0.00724303302685487	-105.0159695	39.7589091	-105.0159724	39.7589742
-6533	3324	5640	0.105949384946318	0.105949384946318	-104.9573671	39.7557244	-104.9561277	39.7557223
-6534	5640	5641	0.102726616753478	0.102726616753478	-104.9561277	39.7557223	-104.954926	39.7557203
-6535	5641	2075	0.105470656717315	0.105470656717315	-104.954926	39.7557203	-104.9536922	39.7557183
-6536	2075	2672	0.106385362776241	0.106385362776241	-104.9536922	39.7557183	-104.9524477	39.7557162
-6537	2672	4122	0.107308593371936	0.107308593371936	-104.9524477	39.7557162	-104.9511924	39.7557141
-6538	4122	5642	0.107983920400391	0.107983920400391	-104.9511924	39.7557141	-104.9499292	39.755712
-6539	5642	5643	0.0919555733248638	0.0919555733248638	-104.9499292	39.755712	-104.9488535	39.7557103
-7832	6456	349	0.0697483782641925	0.0697483782641925	-105.0158736	39.775342	-105.0166897	39.7753492
-6540	5643	5644	0.101410180701687	0.101410180701687	-104.9488535	39.7557103	-104.9476672	39.7557083
-6541	5644	3470	0.100777601888944	0.100777601888944	-104.9476672	39.7557083	-104.9464883	39.7557063
-6542	3470	5645	0.101863251928372	0.101863251928372	-104.9464883	39.7557063	-104.9452967	39.7557043
-6543	5645	3873	0.0981959903542781	0.0981959903542781	-104.9452967	39.7557043	-104.944148	39.7557023
-6544	3873	849	0.100085165894781	0.100085165894781	-104.944148	39.7557023	-104.9429772	39.7557004
-6546	1400	5646	0.00898751016812899	0.00898751016812899	-105.0324862	39.7250782	-105.0325885	39.7250967
-6547	5646	5647	0.190632434837625	0.190632434837625	-105.0325885	39.7250967	-105.0347769	39.7254226
-6548	5647	3388	0.011727623160982	0.011727623160982	-105.0347769	39.7254226	-105.0349134	39.7254327
-6549	3388	5648	0.0568259028608414	0.0568259028608414	-105.0349134	39.7254327	-105.0355748	39.7254817
-6550	5648	5649	0.00637619061562419	0.00637619061562419	-105.0355748	39.7254817	-105.035649	39.7254873
-6551	5649	5650	0.0463019954871414	0.0463019954871414	-105.035649	39.7254873	-105.0361904	39.7254853
-6552	5650	2800	0.0477133812275841	0.0477133812275841	-105.0361904	39.7254853	-105.0367483	39.7254828
-6553	2800	5651	0.0470719166287448	0.0470719166287448	-105.0367483	39.7254828	-105.0372987	39.7254804
-6554	5651	5652	0.0458325636837201	0.0458325636837201	-105.0372987	39.7254804	-105.0378346	39.7254837
-6555	5652	5653	0.046653544202397	0.046653544202397	-105.0378346	39.7254837	-105.0383801	39.725487
-6556	5653	5654	0.0464726377537293	0.0464726377537293	-105.0383801	39.725487	-105.0389235	39.725486
-6557	5654	5655	0.0469344544346564	0.0469344544346564	-105.0389235	39.725486	-105.0394723	39.725485
-6558	5655	2751	0.046215112991852	0.046215112991852	-105.0394723	39.725485	-105.0400126	39.7254926
-6559	2751	1096	0.0461039483088431	0.0461039483088431	-105.0400126	39.7254926	-105.0405516	39.7255002
-6560	1096	5656	0.0452023576254509	0.0452023576254509	-105.0405516	39.7255002	-105.0410801	39.7255057
-6561	5656	5657	0.0460150379661812	0.0460150379661812	-105.0410801	39.7255057	-105.0416181	39.7255114
-6562	5657	1539	0.0464321875423527	0.0464321875423527	-105.0416181	39.7255114	-105.042161	39.7255157
-6563	1539	3855	0.0473472190950861	0.0473472190950861	-105.042161	39.7255157	-105.0427146	39.72552
-6565	4485	345	0.22138299033862	0.22138299033862	-105.0056478	39.7253802	-105.0067949	39.727165
-6566	345	5661	0.163308085042962	0.163308085042962	-105.0067949	39.727165	-105.008697	39.727035
-6567	5661	5662	0.065819748510902	0.065819748510902	-105.008697	39.727035	-105.008885	39.726461
-6568	5661	5663	0.0801840013229962	0.0801840013229962	-105.008697	39.727035	-105.00953	39.727366
-6569	3287	5665	0.0688755620206119	0.0688755620206119	-104.9490802	39.7038404	-104.9486082	39.7033386
-6570	5665	5666	0.0427865432685629	0.0427865432685629	-104.9486082	39.7033386	-104.9482219	39.7030942
-6571	5666	523	0.0741847082758752	0.0741847082758752	-104.9482219	39.7030942	-104.947535	39.702687
-6572	523	5667	0.0513515905827488	0.0513515905827488	-104.947535	39.702687	-104.947235	39.702287
-6573	5667	597	0.0787762757947461	0.0787762757947461	-104.947235	39.702287	-104.9464074	39.7019764
-6574	597	4825	0.152733980621547	0.152733980621547	-104.9464074	39.7019764	-104.9446221	39.7019764
-6576	2530	1931	0.0607754389242505	0.0607754389242505	-105.0304849	39.7379392	-105.030496	39.7384857
-6578	5668	5669	0.20518077925237	0.20518077925237	-105.0310864	39.7548296	-105.0311012	39.7566748
-6580	5670	2976	0.052930873102536	0.052930873102536	-105.0310884	39.7580274	-105.0310829	39.7585034
-6582	5671	5672	0.0669604143503768	0.0669604143503768	-104.9976172	39.7173382	-104.997538	39.7179373
-6583	5672	3722	0.0539771509338677	0.0539771509338677	-104.997538	39.7179373	-104.9975448	39.7184227
-6584	3722	5673	0.103203771462203	0.103203771462203	-104.9975448	39.7184227	-104.9975345	39.7193508
-6585	5673	5674	0.175725539559539	0.175725539559539	-104.9975345	39.7193508	-104.9975487	39.7209311
-6587	5675	5676	0.204879915807757	0.204879915807757	-104.998391	39.7584595	-104.9984194	39.7603019
-6588	5677	5678	0.00677682168687122	0.00677682168687122	-104.998198	39.7674788	-104.9982133	39.7675386
-6589	5678	1665	0.0567234226799308	0.0567234226799308	-104.9982133	39.7675386	-104.9982066	39.7680487
-6590	1665	5679	0.122659531226911	0.122659531226911	-104.9982066	39.7680487	-104.9982029	39.7691518
-6592	5680	5681	0.862768870925976	0.862768870925976	-105.0432124	39.7065384	-105.0532533	39.7058097
-6593	5682	5683	0.164927546324728	0.164927546324728	-104.9991817	39.7066718	-105.0011096	39.70666
-6594	5683	4367	0.0355730578333277	0.0355730578333277	-105.0011096	39.70666	-105.0015253	39.7066683
-6595	4367	1448	0.193853665061985	0.193853665061985	-105.0015253	39.7066683	-105.0037914	39.7066687
-6596	1448	5688	0.205590441563944	0.205590441563944	-105.0037914	39.7066687	-105.0061947	39.7066687
-6598	5689	5690	0.100594816308247	0.100594816308247	-105.040852	39.7068752	-105.0420279	39.7068686
-6599	5690	5691	0.0991234853564762	0.0991234853564762	-105.0420279	39.7068686	-105.0431866	39.7068752
-6601	5438	5692	0.211107914724763	0.211107914724763	-105.0250719	39.7067303	-105.0275397	39.7067299
-6602	5692	4415	0.193109246091061	0.193109246091061	-105.0275397	39.7067299	-105.0297971	39.7067299
-6603	4415	5693	0.226139344299967	0.226139344299967	-105.0297971	39.7067299	-105.0324406	39.7067365
-6606	4323	5694	0.0859068688818743	0.0859068688818743	-105.0350585	39.7071591	-105.0360627	39.7071657
-6608	5695	5696	0.0748977449692987	0.0748977449692987	-105.0362429	39.7071723	-105.0371184	39.7071789
-6609	5696	5073	0.0868839085552243	0.0868839085552243	-105.0371184	39.7071789	-105.0381339	39.7071927
-6610	5073	5333	0.0187220275557185	0.0187220275557185	-105.0381339	39.7071927	-105.0382798	39.7073182
-6612	5697	1590	0.201198112839976	0.201198112839976	-105.010983	39.7065516	-105.0133347	39.7065252
-18141	10274	10269	0.134684266769083	0.134684266769083	-105.0136006	39.7885593	-105.0151755	39.7886103
-6613	1590	1640	0.20125093456728	0.20125093456728	-105.0133347	39.7065252	-105.0156865	39.706479
-6615	5698	5699	0.200385663675414	0.200385663675414	-105.0357723	39.7603267	-105.0357639	39.7621288
-6617	5700	5701	0.196514919519562	0.196514919519562	-105.035764	39.7622008	-105.0357666	39.7639681
-6618	5701	5248	0.110632746994	0.110632746994	-105.0357666	39.7639681	-105.0357544	39.764963
-6619	5248	5702	0.0945616875172071	0.0945616875172071	-105.0357544	39.764963	-105.0357792	39.7658132
-6620	5702	1685	0.205454867561864	0.205454867561864	-105.0357792	39.7658132	-105.0357789	39.7676609
-6621	1685	5703	0.206063854698429	0.206063854698429	-105.0357789	39.7676609	-105.0358122	39.7695139
-6622	5703	2430	0.199691165132387	0.199691165132387	-105.0358122	39.7695139	-105.0357922	39.7713097
-6623	2430	5704	0.202603259150386	0.202603259150386	-105.0357922	39.7713097	-105.0357738	39.7731317
-6625	4504	4050	0.176201016140026	0.176201016140026	-105.0361142	39.7165547	-105.0361228	39.7181393
-6626	4050	5707	0.173108439499024	0.173108439499024	-105.0361228	39.7181393	-105.0361257	39.7196961
-6628	1851	2587	0.179402678295732	0.179402678295732	-105.036129	39.721332	-105.0361228	39.7229454
-6630	5708	5709	0.275624196707738	0.275624196707738	-105.0361678	39.7257622	-105.0362218	39.7282406
-6632	5710	5711	0.261275347332411	0.261275347332411	-105.0362304	39.7306104	-105.0362237	39.7329601
-6634	5712	5713	0.0444779706577198	0.0444779706577198	-105.0357542	39.7810788	-105.0357542	39.7814788
-6635	5714	5715	0.183336097782058	0.183336097782058	-105.0357506	39.7767314	-105.0357824	39.77838
-6636	5715	5716	0.203064462732684	0.203064462732684	-105.0357824	39.77838	-105.0357784	39.7802062
-6638	5717	5718	0.153081250432522	0.153081250432522	-105.0358099	39.7329669	-105.0356487	39.734338
-6639	5718	5719	0.011675447758709	0.011675447758709	-105.0356487	39.734338	-105.0355549	39.7344143
-6641	1422	5720	0.117935613657917	0.117935613657917	-105.0357695	39.7820968	-105.0357487	39.7831573
-6643	5721	5722	0.194099197890973	0.194099197890973	-105.0357498	39.7838704	-105.035771	39.7856159
-6644	5722	2542	0.201930616083342	0.201930616083342	-105.035771	39.7856159	-105.0357769	39.7874319
-6645	2542	5723	0.411877202316789	0.411877202316789	-105.0357769	39.7874319	-105.035774	39.791136
-6646	5724	624	0.116891424974631	0.116891424974631	-105.0357584	39.7355345	-105.0357481	39.7365857
-6648	5725	5726	0.225973303098124	0.225973303098124	-104.9515323	39.7020311	-104.9536931	39.7008623
-6649	5726	3656	0.0613034024300807	0.0613034024300807	-104.9536931	39.7008623	-104.9541489	39.7004369
-6651	5727	5728	0.116763945302488	0.116763945302488	-105.0444167	39.7021543	-105.0443995	39.7011043
-6652	3634	5729	0.249262670016259	0.249262670016259	-104.9444999	39.7082421	-104.9447703	39.7060101
-6653	5729	5730	0.0886979206005476	0.0886979206005476	-104.9447703	39.7060101	-104.9441523	39.7053696
-6654	5730	5731	0.061003880318824	0.061003880318824	-104.9441523	39.7053696	-104.9434927	39.7051611
-6655	5731	3294	0.169569384240282	0.169569384240282	-104.9434927	39.7051611	-104.9425622	39.7038146
-6657	5730	5729	0.0886979206005476	0.0886979206005476	-104.9441523	39.7053696	-104.9447703	39.7060101
-18322	2543	7478	0.411854888798545	0.411854888798545	-105.0363411	39.7874312	-105.0363411	39.7911351
-6660	716	5733	0.106180030125168	0.106180030125168	-105.0041786	39.7730524	-105.005421	39.7730569
-6661	5733	5734	0.0889628078792179	0.0889628078792179	-105.005421	39.7730569	-105.0064617	39.7730392
-6663	5735	5736	0.0499420076759338	0.0499420076759338	-105.0393	39.7724567	-105.0398843	39.7724635
-6664	5736	1132	0.0480445960055664	0.0480445960055664	-105.0398843	39.7724635	-105.0404464	39.7724701
-6665	1132	5737	0.0493807651843696	0.0493807651843696	-105.0404464	39.7724701	-105.0410242	39.7724702
-6666	5737	5738	0.0542607296398929	0.0542607296398929	-105.0410242	39.7724702	-105.0416591	39.7724704
-6667	5738	3848	0.102653360815707	0.102653360815707	-105.0416591	39.7724704	-105.0428601	39.7724844
-6668	3848	5739	0.0481952973910705	0.0481952973910705	-105.0428601	39.7724844	-105.043424	39.77248
-6669	5739	5570	0.0504068578554883	0.0504068578554883	-105.043424	39.77248	-105.0440138	39.7724821
-6671	5740	5741	0.102055279401325	0.102055279401325	-104.9982189	39.7729896	-104.9994129	39.7730041
-6672	5741	3933	0.103350213888063	0.103350213888063	-104.9994129	39.7730041	-105.0006222	39.7730028
-6675	5742	4200	0.0968208569301817	0.0968208569301817	-105.0064961	39.7729336	-105.007629	39.7729337
-6676	4200	4193	0.0357662020116287	0.0357662020116287	-105.007629	39.7729337	-105.0080475	39.7729338
-6677	4193	1067	0.0660115016724451	0.0660115016724451	-105.0080475	39.7729338	-105.0088199	39.7729339
-6678	1067	2520	0.0682249892032966	0.0682249892032966	-105.0088199	39.7729339	-105.0096182	39.772934
-6679	2520	2503	0.0444235862340648	0.0444235862340648	-105.0096182	39.772934	-105.010138	39.772934
-6680	2503	5743	0.0929237526477458	0.0929237526477458	-105.010138	39.772934	-105.0112253	39.7729342
-6681	5743	1230	0.097564382820973	0.097564382820973	-105.0112253	39.7729342	-105.0123669	39.7729343
-6682	1230	4808	0.0974618272678182	0.0974618272678182	-105.0123669	39.7729343	-105.0135073	39.7729344
-6683	4808	2175	0.100974351727253	0.100974351727253	-105.0135073	39.7729344	-105.0146888	39.7729346
-6685	5744	5745	0.139227813146129	0.139227813146129	-105.0158722	39.7729208	-105.0175012	39.7729349
-20421	10782	10783	0.171335167034037	0.171335167034037	-105.0179661	39.7583302	-105.0159618	39.7583177
-6686	5745	4628	0.122998125096167	0.122998125096167	-105.0175012	39.7729349	-105.0189404	39.7729351
-6687	4628	378	0.0772242252157125	0.0772242252157125	-105.0189404	39.7729351	-105.019844	39.7729352
-6688	378	1257	0.0550380704812319	0.0550380704812319	-105.019844	39.7729352	-105.020488	39.7729352
-6689	1257	4543	0.132381944494249	0.132381944494249	-105.020488	39.7729352	-105.022037	39.7729354
-6690	4543	2715	0.0724896248395526	0.0724896248395526	-105.022037	39.7729354	-105.0228852	39.7729347
-7972	6547	5411	0.11011441218455	0.11011441218455	-104.9671106	39.7237629	-104.9658231	39.7237695
-6691	2715	2699	0.0727973179644107	0.0727973179644107	-105.0228852	39.7729347	-105.023737	39.7729356
-6692	2699	5748	0.121810190364873	0.121810190364873	-105.023737	39.7729356	-105.0251623	39.7729358
-6696	5750	5751	0.00763183841002978	0.00763183841002978	-105.0450566	39.7729489	-105.0451459	39.7729488
-6697	5751	5752	0.692257458082336	0.692257458082336	-105.0451459	39.7729488	-105.053246	39.7729508
-6698	2026	4672	0.134236367930218	0.134236367930218	-104.9920812	39.772996	-104.9936519	39.772996
-6699	4672	5753	0.102239429594337	0.102239429594337	-104.9936519	39.772996	-104.9948482	39.7729937
-6700	5753	5754	0.100506379378587	0.100506379378587	-104.9948482	39.7729937	-104.9960241	39.7730069
-6702	5755	5756	0.2002287044093	0.2002287044093	-104.9551441	39.7819442	-104.9551441	39.7837449
-6704	5757	5758	0.173042563926175	0.173042563926175	-104.9547567	39.7803553	-104.9547235	39.7819113
-6706	5759	744	0.063721377479395	0.063721377479395	-104.9553084	39.7758275	-104.9553192	39.7764005
-6707	744	1562	0.141424652289019	0.141424652289019	-104.9553192	39.7764005	-104.9553028	39.7776723
-6708	1562	5760	0.139452228533295	0.139452228533295	-104.9553028	39.7776723	-104.9553129	39.7789264
-6709	5760	5761	0.121153404070921	0.121153404070921	-104.9553129	39.7789264	-104.9552887	39.7800158
-6710	5761	5762	0.0103214683330101	0.0103214683330101	-104.9552887	39.7800158	-104.9552914	39.7801086
-6711	5762	5763	0.04652452941841	0.04652452941841	-104.9552914	39.7801086	-104.9552887	39.780527
-6712	5764	5765	0.155984788161682	0.155984788161682	-105.0047699	39.6984076	-105.0065723	39.6981963
-6716	5767	5768	0.200784793626825	0.200784793626825	-104.9758538	39.7800585	-104.974836	39.781686
-6743	3756	5769	0.0494129956173261	0.0494129956173261	-105.0264176	39.7874342	-105.0269959	39.7874328
-7994	6557	2764	0.0940480727939324	0.0940480727939324	-104.9338133	39.7243478	-104.9327137	39.724358
-6717	5768	5772	0.846413211947238	0.846413211947238	-104.974836	39.781686	-104.969071	39.787876
-6718	5772	517	0.0606861281340196	0.0606861281340196	-104.969071	39.787876	-104.968456	39.788149
-6719	517	5773	0.188473310975888	0.188473310975888	-104.968456	39.788149	-104.96707	39.7894676
-6721	5774	5775	0.0796153059223016	0.0796153059223016	-104.9874021	39.7450987	-104.9879817	39.7456591
-6722	5775	5776	0.00646390558051832	0.00646390558051832	-104.9879817	39.7456591	-104.9880305	39.7457035
-6723	5776	3007	0.1066159594542	0.1066159594542	-104.9880305	39.7457035	-104.9889069	39.7463856
-6724	3007	5777	0.100407769542541	0.100407769542541	-104.9889069	39.7463856	-104.989708	39.7470459
-6725	5777	4393	0.00579135202620092	0.00579135202620092	-104.989708	39.7470459	-104.9897603	39.747079
-6726	4393	5778	0.102044175747327	0.102044175747327	-104.9897603	39.747079	-104.990623	39.7477132
-6727	5778	5779	0.107668499777307	0.107668499777307	-104.990623	39.7477132	-104.9915202	39.7483927
-6728	5779	5780	0.108043382155599	0.108043382155599	-104.9915202	39.7483927	-104.9924092	39.7490833
-6729	5780	5781	0.101222003009649	0.101222003009649	-104.9924092	39.7490833	-104.9932554	39.74972
-6730	5781	5782	0.103527244594317	0.103527244594317	-104.9932554	39.74972	-104.9941044	39.7503839
-6733	5784	5785	0.0519740547318723	0.0519740547318723	-104.9949995	39.7510718	-104.9954256	39.7514052
-6734	5785	5786	0.0540518378903488	0.0540518378903488	-104.9954256	39.7514052	-104.995889	39.7517359
-6735	5786	5787	0.105403398355375	0.105403398355375	-104.995889	39.7517359	-104.99675	39.7524144
-6736	5787	5788	0.0515636589786252	0.0515636589786252	-104.99675	39.7524144	-104.9971819	39.7527381
-6737	5788	5789	0.0542361941294726	0.0542361941294726	-104.9971819	39.7527381	-104.9976271	39.7530856
-6738	5789	1159	0.0519632563805573	0.0519632563805573	-104.9976271	39.7530856	-104.9980616	39.7534124
-6739	1159	1609	0.055296326623055	0.055296326623055	-104.9980616	39.7534124	-104.9985176	39.7537651
-6742	5791	3756	0.0502859716725157	0.0502859716725157	-105.0258291	39.7874305	-105.0264176	39.7874342
-6744	5769	5792	0.0505152652453619	0.0505152652453619	-105.0269959	39.7874328	-105.0275871	39.7874313
-6745	5792	5793	0.0487326254633791	0.0487326254633791	-105.0275871	39.7874313	-105.0281574	39.7874261
-6746	5793	5794	0.0492772484970981	0.0492772484970981	-105.0281574	39.7874261	-105.0287341	39.7874292
-6747	5794	5795	0.0490197084274457	0.0490197084274457	-105.0287341	39.7874292	-105.0293078	39.7874293
-6748	5795	4008	0.0494402902066907	0.0494402902066907	-105.0293078	39.7874293	-105.0298864	39.7874254
-6749	4008	5796	0.0498144967732103	0.0498144967732103	-105.0298864	39.7874254	-105.0304694	39.7874265
-6750	5796	5797	0.0492676243070722	0.0492676243070722	-105.0304694	39.7874265	-105.031046	39.7874275
-6751	5797	5798	0.0496699296957128	0.0496699296957128	-105.031046	39.7874275	-105.0316273	39.7874301
-6752	5798	1392	0.0490530110641543	0.0490530110641543	-105.0316273	39.7874301	-105.0322013	39.7874223
-6753	1392	5799	0.0511729331725758	0.0511729331725758	-105.0322013	39.7874223	-105.0328002	39.7874226
-6755	5800	5801	0.0504747882864981	0.0504747882864981	-105.0333549	39.7874228	-105.0339455	39.7874133
-6756	5801	2540	0.0519704512694329	0.0519704512694329	-105.0339455	39.7874133	-105.0345536	39.7874035
-6758	5802	5803	0.0134893781959873	0.0134893781959873	-104.9916445	39.7400016	-104.9916422	39.7401229
-6759	5803	5804	0.0651761990637723	0.0651761990637723	-104.9916422	39.7401229	-104.99118	39.740589
-6760	5804	5805	0.00867856878189995	0.00867856878189995	-104.99118	39.740589	-104.9911089	39.7406447
-6761	5805	5806	0.145096674327765	0.145096674327765	-104.9911089	39.7406447	-104.989913	39.7415705
-6762	5806	5807	0.146807263740651	0.146807263740651	-104.989913	39.7415705	-104.9886895	39.7424968
-6763	5807	5808	0.0971857772299024	0.0971857772299024	-104.9886895	39.7424968	-104.9878972	39.7431235
-8041	6591	5218	0.10367384999594	0.10367384999594	-105.0332843	39.7329428	-105.0344966	39.7329537
-6766	5810	5811	0.146768415759705	0.146768415759705	-104.9814347	39.7480847	-104.9802084	39.7490084
-6768	1701	5812	0.0556890737408001	0.0556890737408001	-104.9875011	39.6911908	-104.9868503	39.6911967
-6769	5812	5813	0.0500299056894462	0.0500299056894462	-104.9868503	39.6911967	-104.9862656	39.6911947
-6770	5813	572	0.048773855210923	0.048773855210923	-104.9862656	39.6911947	-104.9856956	39.6911905
-6771	572	4985	0.0488849816155661	0.0488849816155661	-104.9856956	39.6911905	-104.9851243	39.6911864
-6772	4985	5815	0.0487728428614096	0.0487728428614096	-104.9851243	39.6911864	-104.9845543	39.6911833
-6773	5815	5816	0.0486567223604475	0.0486567223604475	-104.9845543	39.6911833	-104.9839857	39.6911771
-6774	5816	5817	0.0490027802416811	0.0490027802416811	-104.9839857	39.6911771	-104.983413	39.6911761
-6775	5817	5819	0.0533578755133891	0.0533578755133891	-104.983413	39.6911761	-104.9827894	39.6911761
-6776	5819	5820	0.0539390556466382	0.0539390556466382	-104.9827894	39.6911761	-104.9821591	39.6911678
-6778	5821	5822	0.0489941039004867	0.0489941039004867	-104.9815757	39.6911678	-104.9810031	39.6911678
-6780	3617	5823	0.0506292858836976	0.0506292858836976	-104.9804371	39.6911668	-104.9798455	39.691158
-6781	5823	5824	0.0500724300001191	0.0500724300001191	-104.9798455	39.691158	-104.9792603	39.6911567
-6782	5824	5825	0.0499880884355422	0.0499880884355422	-104.9792603	39.6911567	-104.9786761	39.6911533
-6783	5825	5099	0.0484306981291016	0.0484306981291016	-104.9786761	39.6911533	-104.9781101	39.6911501
-6784	5099	5826	0.0978349213689401	0.0978349213689401	-104.9781101	39.6911501	-104.9769668	39.691138
-8066	6604	2108	0.411848469661871	0.411848469661871	-104.9316605	39.7797563	-104.9269854	39.7788565
-6786	3484	5827	0.0514683137992155	0.0514683137992155	-104.9640755	39.691151	-104.963474	39.6911476
-6787	5827	5828	0.0484135897290906	0.0484135897290906	-104.963474	39.6911476	-104.9629082	39.6911444
-6789	5829	3698	0.0457527085543311	0.0457527085543311	-104.9622681	39.6911405	-104.9617334	39.6911372
-6790	3698	5705	0.0484471809833024	0.0484471809833024	-104.9617334	39.6911372	-104.9611673	39.6911287
-6791	5705	4572	0.0515108919391295	0.0515108919391295	-104.9611673	39.6911287	-104.9605654	39.6911197
-6792	4572	5830	0.105767692426024	0.105767692426024	-104.9605654	39.6911197	-104.9593294	39.6911329
-6793	5830	5831	0.0553912495449553	0.0553912495449553	-104.9593294	39.6911329	-104.9586821	39.6911399
-6794	5831	5832	0.0496407969110197	0.0496407969110197	-104.9586821	39.6911399	-104.958102	39.6911462
-6795	5832	5833	0.0474198419855964	0.0474198419855964	-104.958102	39.6911462	-104.9575478	39.6911453
-6796	5833	5834	0.0495588851512039	0.0495588851512039	-104.9575478	39.6911453	-104.9569687	39.691137
-6797	5834	5835	0.0489032950107884	0.0489032950107884	-104.9569687	39.691137	-104.9563972	39.6911319
-6798	5835	2741	0.0480512246257303	0.0480512246257303	-104.9563972	39.6911319	-104.9558357	39.6911246
-6800	5836	5232	0.0488850197079726	0.0488850197079726	-104.9552507	39.6911326	-104.9546794	39.6911367
-6801	5232	5837	0.0498079610709467	0.0498079610709467	-104.9546794	39.6911367	-104.9540973	39.6911339
-6802	5837	3174	0.0480709718129458	0.0480709718129458	-104.9540973	39.6911339	-104.9535355	39.6911312
-6803	3174	5838	0.0510747433773575	0.0510747433773575	-104.9535355	39.6911312	-104.9529386	39.6911278
-6804	5838	4999	0.0480555922075882	0.0480555922075882	-104.9529386	39.6911278	-104.9523772	39.6911402
-8084	6614	6615	0.0939591856631224	0.0939591856631224	-104.9338724	39.736497	-104.9349711	39.7364838
-6805	4999	5839	0.0491139247433474	0.0491139247433474	-104.9523772	39.6911402	-104.9518032	39.6911405
-6806	5839	731	0.0513728158017048	0.0513728158017048	-104.9518032	39.6911405	-104.9512028	39.6911407
-18529	9525	9153	0.0559524577768326	0.0559524577768326	-105.0340236	39.7499955	-105.0338511	39.7495101
-6807	731	5840	0.100363141472313	0.100363141472313	-104.9512028	39.6911407	-104.9500299	39.6911495
-6810	4683	1528	0.0512242368793757	0.0512242368793757	-104.9751813	39.691337	-104.9746158	39.6911858
-6811	1528	5087	0.0490096920376181	0.0490096920376181	-104.9746158	39.6911858	-104.9740434	39.6911697
-6812	5087	5841	0.0531197353238214	0.0531197353238214	-104.9740434	39.6911697	-104.973423	39.6911522
-6813	5841	5011	0.0514391840217863	0.0514391840217863	-104.973423	39.6911522	-104.9728223	39.6911338
-6814	5011	1747	0.0499193361712115	0.0499193361712115	-104.9728223	39.6911338	-104.9722389	39.6911368
-6815	1747	5608	0.0521168381912245	0.0521168381912245	-104.9722389	39.6911368	-104.9716303	39.6911179
-6816	5608	5842	0.0474458476070982	0.0474458476070982	-104.9716303	39.6911179	-104.9710758	39.6911161
-6817	5842	5449	0.0516188826793533	0.0516188826793533	-104.9710758	39.6911161	-104.9704727	39.6911049
-6818	5449	5428	0.0497563082276933	0.0497563082276933	-104.9704727	39.6911049	-104.9698913	39.6910963
-6819	5428	5390	0.0522374705433985	0.0522374705433985	-104.9698913	39.6910963	-104.9692808	39.6910982
-6820	5390	5843	0.0480447601658553	0.0480447601658553	-104.9692808	39.6910982	-104.9687193	39.6910999
-6822	5844	5845	0.0146913941785162	0.0146913941785162	-104.9407088	39.6911295	-104.9405371	39.6911295
-6823	5845	1699	0.184528247922268	0.184528247922268	-104.9405371	39.6911295	-104.9383805	39.6911269
-6824	1699	5846	0.0932680068963059	0.0932680068963059	-104.9383805	39.6911269	-104.9372905	39.6911203
-6825	5846	5847	0.0932852372069282	0.0932852372069282	-104.9372905	39.6911203	-104.9362004	39.6911071
-6826	5847	3120	0.098410300465854	0.098410300465854	-104.9362004	39.6911071	-104.9350503	39.6911005
-6827	3120	5848	0.0905968964383526	0.0905968964383526	-104.9350503	39.6911005	-104.9339926	39.6911379
-6828	5848	5849	0.19461602791519	0.19461602791519	-104.9339926	39.6911379	-104.9317181	39.6911379
-8104	239	6631	0.0428753899381976	0.0428753899381976	-104.9766938	39.6912137	-104.9763643	39.6909232
-6830	5850	5851	0.0206820775273506	0.0206820775273506	-105.0022921	39.7147654	-105.0025228	39.7148211
-6833	1635	5853	0.0933590693142476	0.0933590693142476	-105.015737	39.714787	-105.016828	39.7148117
-6834	5853	5854	0.015431953306933	0.015431953306933	-105.016828	39.7148117	-105.0170084	39.7148136
-6835	5854	4213	0.0860217230993429	0.0860217230993429	-105.0170084	39.7148136	-105.018014	39.714824
-6836	4213	5855	0.0995731813164872	0.0995731813164872	-105.018014	39.714824	-105.019178	39.714811
-6837	5855	192	0.102944368273924	0.102944368273924	-105.019178	39.714811	-105.0203814	39.7148249
-6838	192	2922	0.0977156398673512	0.0977156398673512	-105.0203814	39.7148249	-105.021523	39.7147919
-6840	5305	1460	0.094441811393562	0.094441811393562	-105.0227504	39.7148051	-105.0238542	39.7148259
-6841	1460	5433	0.104542660065313	0.104542660065313	-105.0238542	39.7148259	-105.0250764	39.7148315
-6843	5856	1868	0.210287860037949	0.210287860037949	-104.9875046	39.7147611	-104.9899631	39.7147612
-6844	1868	4186	0.189585415099738	0.189585415099738	-104.9899631	39.7147612	-104.9921793	39.7147876
-6846	5432	5857	0.104903215241116	0.104903215241116	-105.0250773	39.714991	-105.0263037	39.7149834
-6847	5857	5858	0.105720950651237	0.105720950651237	-105.0263037	39.7149834	-105.0275397	39.7149834
-6848	5858	5859	0.105743888331652	0.105743888331652	-105.0275397	39.7149834	-105.0287757	39.7149636
-6849	5859	4421	0.104252361029944	0.104252361029944	-105.0287757	39.7149636	-105.0299945	39.7149702
-6852	5861	5862	0.0519463280728807	0.0519463280728807	-105.0324691	39.7149773	-105.0330764	39.7149803
-6853	5862	5863	0.0520746976816124	0.0520746976816124	-105.0330764	39.7149803	-105.0336852	39.7149834
-6854	5863	5864	0.053223022054701	0.053223022054701	-105.0336852	39.7149834	-105.0343073	39.7149733
-6855	5864	4317	0.0510499917933612	0.0510499917933612	-105.0343073	39.7149733	-105.034904	39.7149636
-8127	6232	6642	0.179146147134138	0.179146147134138	-104.9985893	39.7257061	-104.9985895	39.7273172
-6857	5865	4505	0.0514748271562017	0.0514748271562017	-105.0355038	39.7149636	-105.0361056	39.7149636
-6858	4505	3608	0.0515275362522861	0.0515275362522861	-105.0361056	39.7149636	-105.036708	39.7149602
-6859	3608	5866	0.050240952107019	0.050240952107019	-105.036708	39.7149602	-105.0372953	39.7149674
-6860	5866	5867	0.0507479546434346	0.0507479546434346	-105.0372953	39.7149674	-105.0378886	39.7149662
-6861	5867	5067	0.0521453287858806	0.0521453287858806	-105.0378886	39.7149662	-105.0384982	39.7149609
-6862	5067	5868	0.051338093574988	0.051338093574988	-105.0384982	39.7149609	-105.0390984	39.7149619
-6863	5868	5869	0.0516032507649761	0.0516032507649761	-105.0390984	39.7149619	-105.0397017	39.7149609
-6864	5869	5870	0.0504748368648883	0.0504748368648883	-105.0397017	39.7149609	-105.0402918	39.7149634
-6865	5870	5871	0.0517263613465763	0.0517263613465763	-105.0402918	39.7149634	-105.0408965	39.7149688
-6866	5871	5872	0.102624635673	0.102624635673	-105.0408965	39.7149688	-105.0420963	39.7149694
-6867	5872	3299	0.100255573957512	0.100255573957512	-105.0420963	39.7149694	-105.0432684	39.7149673
-6869	5873	5874	0.0663164411935832	0.0663164411935832	-105.043719	39.7149652	-105.0444942	39.7149755
-6870	5874	5875	0.0488050085545576	0.0488050085545576	-105.0444942	39.7149755	-105.0450642	39.7149556
-6871	5875	5876	0.702184603750594	0.702184603750594	-105.0450642	39.7149556	-105.0532734	39.7149935
-6874	4525	5880	0.0113022768719971	0.0113022768719971	-105.0251701	39.7632042	-105.0252841	39.7632557
-6875	5880	5881	0.00806516295239482	0.00806516295239482	-105.0252841	39.7632557	-105.0253707	39.7632845
-6876	5881	5882	0.0293119532501538	0.0293119532501538	-105.0253707	39.7632845	-105.0256867	39.7633869
-6877	5882	5883	0.0236481545130312	0.0236481545130312	-105.0256867	39.7633869	-105.025945	39.7634631
-6878	5883	5884	0.0171068759325808	0.0171068759325808	-105.025945	39.7634631	-105.026131	39.7635199
-6879	5884	5885	0.034181660212992	0.034181660212992	-105.026131	39.7635199	-105.0264783	39.7636723
-6880	5885	5887	0.100387180512852	0.100387180512852	-105.0264783	39.7636723	-105.0276119	39.7639084
-6882	4433	5888	0.29159089003557	0.29159089003557	-105.0109506	39.7174666	-105.0109694	39.7148443
-6883	5888	4667	0.102395884967111	0.102395884967111	-105.0109694	39.7148443	-105.011015	39.7139241
-6885	1334	1389	0.100271016747699	0.100271016747699	-105.0110016	39.7130472	-105.011015	39.7121455
-6886	1389	5889	0.10737593920352	0.10737593920352	-105.011015	39.7121455	-105.0110016	39.7111799
-6887	5889	5890	0.105882607972477	0.105882607972477	-105.0110016	39.7111799	-105.0109926	39.7102277
-6888	5890	4707	0.0969202900217867	0.0969202900217867	-105.0109926	39.7102277	-105.010984	39.7093561
-6889	4707	5891	0.0993764614715991	0.0993764614715991	-105.010984	39.7093561	-105.0109775	39.7084624
-6890	5891	5892	0.0973957865151901	0.0973957865151901	-105.0109775	39.7084624	-105.0109755	39.7075865
-6891	5892	5894	0.0203600085186263	0.0203600085186263	-105.0109755	39.7075865	-105.0109744	39.7074034
-6893	5697	5895	0.0355610028885881	0.0355610028885881	-105.010983	39.7065516	-105.0109801	39.7062318
-6894	5895	5896	0.0640153359599377	0.0640153359599377	-105.0109801	39.7062318	-105.0109828	39.7056561
-6896	4960	5897	0.0913255616395888	0.0913255616395888	-105.0109882	39.7047956	-105.0109828	39.7039743
-6897	5897	766	0.157641216727225	0.157641216727225	-105.0109828	39.7039743	-105.0109855	39.7025566
-6898	766	5898	0.395381245817633	0.395381245817633	-105.0109855	39.7025566	-105.0121335	39.6991123
-6899	5898	5899	0.0981801741162947	0.0981801741162947	-105.0121335	39.6991123	-105.0126138	39.6983104
-6900	5899	5900	0.174689811260162	0.174689811260162	-105.0126138	39.6983104	-105.0127248	39.6967417
-6902	2304	156	0.331433636002878	0.331433636002878	-105.0127167	39.6959791	-105.0117244	39.6930979
-6903	156	1720	0.249409879986366	0.249409879986366	-105.0117244	39.6930979	-105.0117515	39.690855
-6904	1720	5901	0.152027484629828	0.152027484629828	-105.0117515	39.690855	-105.0117601	39.6894878
-6906	5902	5903	1.05455714042968	1.05455714042968	-105.0117344	39.688114	-105.011022	39.678646
-6907	491	5904	0.0146888160266615	0.0146888160266615	-104.9407607	39.7492347	-104.9405891	39.7492413
-6908	5904	5905	0.0975979556077691	0.0975979556077691	-104.9405891	39.7492413	-104.9394475	39.7492413
-6910	5906	5907	0.0945117172125904	0.0945117172125904	-104.9383649	39.7492571	-104.9372594	39.7492562
-6911	5907	5908	0.096024253167286	0.096024253167286	-104.9372594	39.7492562	-104.9361363	39.7492673
-6913	1999	3359	0.0933322730569792	0.0933322730569792	-104.9350364	39.749243	-104.9339447	39.7492406
-6914	3359	2753	0.0957031890234733	0.0957031890234733	-104.9339447	39.7492406	-104.9328253	39.7492476
-6915	2753	5909	0.0964098595755736	0.0964098595755736	-104.9328253	39.7492476	-104.9316976	39.7492496
-6916	5909	2279	0.103797892128295	0.103797892128295	-104.9316976	39.7492496	-104.9304837	39.7492674
-6917	2279	3601	0.0979307072208472	0.0979307072208472	-104.9304837	39.7492674	-104.9293385	39.7492475
-6918	3601	5910	0.101687049589159	0.101687049589159	-104.9293385	39.7492475	-104.9281491	39.749241
-6919	5910	2134	0.103076736979193	0.103076736979193	-104.9281491	39.749241	-104.9269439	39.7492673
-6920	2134	5911	0.0994872973933105	0.0994872973933105	-104.9269439	39.7492673	-104.9257802	39.7492674
-6921	5911	5912	0.098205073412404	0.098205073412404	-104.9257802	39.7492674	-104.9246315	39.749269
-6944	5930	5931	0.00713304879374381	0.00713304879374381	-104.979327	39.7304328	-104.9792436	39.7304339
-6922	5912	5913	1.00880972234204	1.00880972234204	-104.9246315	39.749269	-104.9128315	39.7492855
-6923	5914	3921	0.0830806742363044	0.0830806742363044	-104.9646486	39.7304917	-104.9636772	39.7304796
-6924	3921	1014	0.0989804018365723	0.0989804018365723	-104.9636772	39.7304796	-104.96252	39.7304983
-6925	1014	5915	0.0998222515540108	0.0998222515540108	-104.96252	39.7304983	-104.9613527	39.7304983
-6926	5915	5916	0.104139822117371	0.104139822117371	-104.9613527	39.7304983	-104.960135	39.730487
-6927	5916	5023	0.0793768943130485	0.0793768943130485	-104.960135	39.730487	-104.9592069	39.7304983
-6929	5917	5918	0.112165266092601	0.112165266092601	-104.987439	39.7304505	-104.9861275	39.730436
-6930	5918	5919	0.108065845165718	0.108065845165718	-104.9861275	39.730436	-104.9848641	39.7304571
-6931	5919	5920	0.0537421133423824	0.0537421133423824	-104.9848641	39.7304571	-104.9842358	39.7304466
-6932	5920	5921	0.0547683090118863	0.0547683090118863	-104.9842358	39.7304466	-104.9835955	39.730436
-6933	5921	5922	0.0617512871216813	0.0617512871216813	-104.9835955	39.730436	-104.9828734	39.7304382
-6934	5922	5923	0.0505486132029595	0.0505486132029595	-104.9828734	39.7304382	-104.9822823	39.7304399
-6935	5923	5924	0.0485674117985671	0.0485674117985671	-104.9822823	39.7304399	-104.9817146	39.7304273
-6936	5924	5925	0.00910751947845144	0.00910751947845144	-104.9817146	39.7304273	-104.9816081	39.7304277
-6937	5925	3160	0.040672974998317	0.040672974998317	-104.9816081	39.7304277	-104.9811325	39.7304243
-6938	3160	5926	0.0119123696733134	0.0119123696733134	-104.9811325	39.7304243	-104.9809932	39.730424
-6939	5926	5927	0.0422638247579918	0.0422638247579918	-104.9809932	39.730424	-104.9804991	39.7304325
-6940	5927	5928	0.00946046354749371	0.00946046354749371	-104.9804991	39.7304325	-104.9803886	39.7304366
-6941	5928	4978	0.0392608349230605	0.0392608349230605	-104.9803886	39.7304366	-104.9799295	39.7304346
-6942	4978	5929	0.00830374951839601	0.00830374951839601	-104.9799295	39.7304346	-104.9798324	39.7304351
-6943	5929	5930	0.04322033436118	0.04322033436118	-104.9798324	39.7304351	-104.979327	39.7304328
-12307	8642	8643	0.0298175315684779	0.0298175315684779	-105.0079921	39.7544142	-105.0079172	39.7541523
-6945	5931	5932	0.0454758802600548	0.0454758802600548	-104.9792436	39.7304339	-104.9787119	39.7304412
-6946	5932	5933	0.0473060152011751	0.0473060152011751	-104.9787119	39.7304412	-104.9781588	39.7304487
-6947	5933	5934	0.0496187677804403	0.0496187677804403	-104.9781588	39.7304487	-104.9775786	39.7304533
-6948	5934	5935	0.0504477908402203	0.0504477908402203	-104.9775786	39.7304533	-104.9769887	39.7304575
-6949	5935	5050	0.0515402266931002	0.0515402266931002	-104.9769887	39.7304575	-104.976386	39.7304575
-6950	5050	5687	0.0468197679026621	0.0468197679026621	-104.976386	39.7304575	-104.9758385	39.7304575
-6953	5453	982	0.0502364246424336	0.0502364246424336	-104.9746713	39.7304514	-104.9740839	39.7304453
-6954	982	5937	0.0968891441459385	0.0968891441459385	-104.9740839	39.7304453	-104.9729509	39.7304453
-6955	5937	5938	0.0503259455718068	0.0503259455718068	-104.9729509	39.7304453	-104.9723624	39.7304448
-6956	5938	5939	0.0502893520356679	0.0502893520356679	-104.9723624	39.7304448	-104.9717744	39.7304519
-6957	5939	3129	0.0485573864514234	0.0485573864514234	-104.9717744	39.7304519	-104.9712066	39.7304555
-6958	3129	5117	0.0498372694791184	0.0498372694791184	-104.9712066	39.7304555	-104.9706239	39.7304632
-6959	5117	5941	0.0493022558846739	0.0493022558846739	-104.9706239	39.7304632	-104.9700474	39.7304587
-6960	5941	4716	0.0507626244890517	0.0507626244890517	-104.9700474	39.7304587	-104.9694538	39.7304565
-6961	4716	5942	0.142284142826663	0.142284142826663	-104.9694538	39.7304565	-104.96779	39.7304653
-6963	5943	5944	0.01393899602166	0.01393899602166	-104.9407521	39.7310056	-104.9405891	39.731006
-6964	5944	5945	0.364458473389243	0.364458473389243	-104.9405891	39.731006	-104.9363272	39.7310185
-6965	5945	5946	0.0993153072226578	0.0993153072226578	-104.9363272	39.7310185	-104.9351663	39.7310442
-6966	5946	5947	0.101492282005104	0.101492282005104	-104.9351663	39.7310442	-104.9339798	39.731066
-6967	5947	5948	0.101164116161519	0.101164116161519	-104.9339798	39.731066	-104.9327968	39.7310647
-6968	5948	5949	0.102917574680079	0.102917574680079	-104.9327968	39.7310647	-104.9315933	39.7310618
-6969	5949	5950	0.099000654458151	0.099000654458151	-104.9315933	39.7310618	-104.9304356	39.7310602
-6970	5950	5951	0.102683540906436	0.102683540906436	-104.9304356	39.7310602	-104.9292349	39.7310503
-6972	5952	5145	0.0645729302199529	0.0645729302199529	-104.9280748	39.7310598	-104.9273197	39.7310625
-6973	5145	2119	0.0381578888853594	0.0381578888853594	-104.9273197	39.7310625	-104.9268735	39.7310598
-6975	5953	5954	0.100685153983508	0.100685153983508	-104.9257284	39.7310507	-104.924551	39.7310505
-6976	5954	5955	0.195476970380349	0.195476970380349	-104.924551	39.7310505	-104.9222652	39.7310656
-6978	5511	5956	0.144816938742182	0.144816938742182	-104.974688	39.7559741	-104.9735293	39.7569242
-6979	5956	2899	0.0164641943336492	0.0164641943336492	-104.9735293	39.7569242	-104.9733522	39.7569824
-6981	5957	5776	0.0786471324555583	0.0786471324555583	-104.9873834	39.7462062	-104.9880305	39.7457035
-6982	5776	5958	0.142074016754489	0.142074016754489	-104.9880305	39.7457035	-104.9891839	39.7447837
-6984	5959	5960	0.119153206354199	0.119153206354199	-104.9904219	39.7438323	-104.9914093	39.7430761
-6985	5960	5961	0.0270871445537288	0.0270871445537288	-104.9914093	39.7430761	-104.9916357	39.7429057
-6986	5961	5962	0.145839788109516	0.145839788109516	-104.9916357	39.7429057	-104.9928478	39.7419829
-6987	5962	5963	0.00712354730707594	0.00712354730707594	-104.9928478	39.7419829	-104.9929071	39.7419379
-6988	5963	5964	0.140131025523345	0.140131025523345	-104.9929071	39.7419379	-104.9940638	39.7410451
-6989	5964	5965	0.140225597174846	0.140225597174846	-104.9940638	39.7410451	-104.9952082	39.7401418
-6990	5965	4943	0.0161740048379517	0.0161740048379517	-104.9952082	39.7401418	-104.9952896	39.7400105
-6992	5354	5966	0.0365984296224293	0.0365984296224293	-104.9856252	39.7476126	-104.9852928	39.74782
-8275	6722	2311	0.00867549185460531	0.00867549185460531	-105.0112278	39.7314296	-105.0112958	39.7314875
-6993	5966	5967	0.107476511645453	0.107476511645453	-104.9852928	39.74782	-104.9844118	39.7485095
-6994	5967	5968	0.147256677185358	0.147256677185358	-104.9844118	39.7485095	-104.9831894	39.7494425
-6995	5968	5969	0.146721278462678	0.146721278462678	-104.9831894	39.7494425	-104.98198	39.7503787
-6996	5969	5361	0.147170892096024	0.147170892096024	-104.98198	39.7503787	-104.9807486	39.7513036
-6997	5361	2684	0.148391053722383	0.148391053722383	-104.9807486	39.7513036	-104.9795298	39.7522538
-6999	5970	807	0.0217813759552713	0.0217813759552713	-104.9783626	39.753192	-104.9781222	39.7532569
-7001	5971	4332	0.0931508534748433	0.0931508534748433	-104.978267	39.7840741	-104.9771769	39.7840807
-7002	4332	5038	0.0953468172233397	0.0953468172233397	-104.9771769	39.7840807	-104.9760611	39.7840873
-7004	5972	5857	0.176936009900748	0.176936009900748	-105.0263295	39.7165745	-105.0263037	39.7149834
-7005	5857	1300	0.178425403895618	0.178425403895618	-105.0263037	39.7149834	-105.0263381	39.713379
-7006	1300	5973	0.247668336727678	0.247668336727678	-105.0263381	39.713379	-105.0263219	39.7111517
-7008	5974	5975	0.19695744936537	0.19695744936537	-105.0263476	39.6984996	-105.0263805	39.6967285
-7010	1502	4378	0.103568243200344	0.103568243200344	-105.0263295	39.6949026	-105.0263037	39.6939714
-7012	5976	2341	0.175343347413509	0.175343347413509	-104.9257736	39.717827	-104.9257718	39.7194039
-7013	2341	5977	0.176971375987128	0.176971375987128	-104.9257718	39.7194039	-104.9257568	39.7209954
-7014	5977	4784	0.243234077821538	0.243234077821538	-104.9257568	39.7209954	-104.9260932	39.7231675
-7015	4784	5979	0.240492752461347	0.240492752461347	-104.9260932	39.7231675	-104.9260981	39.7253303
-7016	5979	5980	0.0330257004550899	0.0330257004550899	-104.9260981	39.7253303	-104.9261008	39.7256273
-7017	5980	5981	0.271622774119548	0.271622774119548	-104.9261008	39.7256273	-104.9260461	39.7280697
-7018	5981	5982	0.132843712894559	0.132843712894559	-104.9260461	39.7280697	-104.9260654	39.7292643
-7020	5983	5984	0.0865708728240205	0.0865708728240205	-104.9258169	39.7793462	-104.9257912	39.7801245
-7021	5984	5985	0.115162845747273	0.115162845747273	-104.9257912	39.7801245	-104.9258084	39.7811601
-7023	758	5986	0.228351368086018	0.228351368086018	-104.9258629	39.7765766	-104.9258093	39.7786298
-7026	5146	5157	0.0344312485594002	0.0344312485594002	-104.9257328	39.7300276	-104.9257489	39.730337
-7027	5157	5953	0.0793791794144798	0.0793791794144798	-104.9257489	39.730337	-104.9257284	39.7310507
-7028	5953	2240	0.201141072863101	0.201141072863101	-104.9257284	39.7310507	-104.925734	39.7328596
-7029	2240	4913	0.204101361959596	0.204101361959596	-104.925734	39.7328596	-104.9257471	39.7346951
-7031	5988	5989	0.202410682591791	0.202410682591791	-104.9257168	39.7364786	-104.9257287	39.7382989
-7032	5989	5990	0.204104998697393	0.204104998697393	-104.9257287	39.7382989	-104.9257974	39.7401337
-7033	5990	689	0.195952399265096	0.195952399265096	-104.9257974	39.7401337	-104.9257594	39.7418957
-7034	689	1980	0.165723809852799	0.165723809852799	-104.9257594	39.7418957	-104.9258091	39.7433856
-7035	1980	1965	0.0389234534803582	0.0389234534803582	-104.9258091	39.7433856	-104.925792	39.7437354
-7036	1965	5991	0.211595737081182	0.211595737081182	-104.925792	39.7437354	-104.9258205	39.7456382
-7037	5991	2477	0.19787541766453	0.19787541766453	-104.9258205	39.7456382	-104.9258057	39.7474177
-7039	5911	5992	0.199600309761125	0.199600309761125	-104.9257802	39.7492674	-104.9257974	39.7510624
-7040	5992	802	0.200311937766574	0.200311937766574	-104.9257974	39.7510624	-104.9257802	39.7528638
-7041	802	5993	0.204076160777324	0.204076160777324	-104.9257802	39.7528638	-104.9257827	39.7546991
-7042	5993	5994	0.207502868601311	0.207502868601311	-104.9257827	39.7546991	-104.925772	39.7565652
-7043	5994	5995	0.201507936335064	0.201507936335064	-104.925772	39.7565652	-104.9257668	39.7583774
-18161	10256	2170	0.118696748630409	0.118696748630409	-105.0141119	39.7874307	-105.0146867	39.7884025
-7044	5995	3065	0.198422916856477	0.198422916856477	-104.9257668	39.7583774	-104.9257357	39.7601617
-7045	3065	5996	0.187785068593932	0.187785068593932	-104.9257357	39.7601617	-104.9257688	39.7618503
-7048	5998	1151	0.103522476706234	0.103522476706234	-104.9257702	39.7628567	-104.9257702	39.7637877
-7049	1151	5999	0.201885859106491	0.201885859106491	-104.9257702	39.7637877	-104.9257746	39.7656033
-7050	5999	2774	0.203030941446461	0.203030941446461	-104.9257746	39.7656033	-104.9257496	39.7674291
-7051	2774	6000	0.200151361396455	0.200151361396455	-104.9257496	39.7674291	-104.9257444	39.7692291
-7053	4375	2856	0.142504312909228	0.142504312909228	-105.0014998	39.6989095	-105.0031649	39.6989425
-7054	2856	6001	0.0983652484533134	0.0983652484533134	-105.0031649	39.6989425	-105.0043064	39.6990482
-7055	6001	6002	0.0964239306891795	0.0964239306891795	-105.0043064	39.6990482	-105.0054308	39.6991076
-7056	6002	6003	0.098310599923513	0.098310599923513	-105.0054308	39.6991076	-105.0065799	39.6991077
-7057	6003	1761	0.137700629072643	0.137700629072643	-105.0065799	39.6991077	-105.0081893	39.6990933
-7058	1761	6004	0.100513600298964	0.100513600298964	-105.0081893	39.6990933	-105.0093641	39.6991016
-7059	6004	3822	0.0995871831820294	0.0995871831820294	-105.0093641	39.6991016	-105.0105281	39.6990962
-7060	3822	5898	0.137360760654976	0.137360760654976	-105.0105281	39.6990962	-105.0121335	39.6991123
-7061	5898	6005	0.132447355715672	0.132447355715672	-105.0121335	39.6991123	-105.0128712	39.7001595
-7063	1597	1654	0.133194225128182	0.133194225128182	-105.0140815	39.6999614	-105.015638	39.699987
-7064	1654	6006	0.125247640008909	0.125247640008909	-105.015638	39.699987	-105.0169911	39.700417
-7065	6006	4209	0.0896990215886268	0.0896990215886268	-105.0169911	39.700417	-105.0180383	39.7004566
-7067	6007	200	0.0969312782671765	0.0969312782671765	-105.0192141	39.7004566	-105.0203471	39.7004566
-7069	6008	6009	0.237519218216988	0.237519218216988	-104.930634	39.692987	-104.9317136	39.6910191
-7071	6010	700	0.202130694041649	0.202130694041649	-104.9453987	39.7401427	-104.9453488	39.7419601
-7072	700	6011	0.200920157017241	0.200920157017241	-104.9453488	39.7419601	-104.9453382	39.743767
-7074	1752	6012	0.41064210801689	0.41064210801689	-104.944277	39.787439	-104.9452877	39.7838286
-7076	6013	898	0.069285729612221	0.069285729612221	-104.945032	39.7638499	-104.9450302	39.764473
-7079	5168	6014	0.173942254032852	0.173942254032852	-104.9449622	39.716238	-104.9449634	39.7178023
-7080	6014	2356	0.178647695597581	0.178647695597581	-104.9449634	39.7178023	-104.9449537	39.7194089
-7081	2356	4157	0.173431342052579	0.173431342052579	-104.9449537	39.7194089	-104.9449591	39.7209686
-7082	4157	4744	0.174265758482508	0.174265758482508	-104.9449591	39.7209686	-104.9449996	39.7225355
-7083	4744	6015	0.17586665041424	0.17586665041424	-104.9449996	39.7225355	-104.9449591	39.7241168
-7084	6015	6017	0.166030537226764	0.166030537226764	-104.9449591	39.7241168	-104.9450503	39.7256083
-7085	6017	1206	0.168368552768231	0.168368552768231	-104.9450503	39.7256083	-104.9450941	39.7271221
-7086	1206	6018	0.0222310506019077	0.0222310506019077	-104.9450941	39.7271221	-104.9450985	39.727322
-7087	6018	3777	0.199517083270274	0.199517083270274	-104.9450985	39.727322	-104.9450973	39.7291163
-7088	3777	6019	0.15332994885881	0.15332994885881	-104.9450973	39.7291163	-104.9450856	39.7304952
-7089	6019	956	0.176955920540622	0.176955920540622	-104.9450856	39.7304952	-104.9450895	39.7320866
-7090	956	6020	0.174665514088028	0.174665514088028	-104.9450895	39.7320866	-104.9450945	39.7336574
-7091	6020	4894	0.161958937862416	0.161958937862416	-104.9450945	39.7336574	-104.945082	39.7351139
-7092	4894	6021	0.18390531780345	0.18390531780345	-104.945082	39.7351139	-104.9450808	39.7367678
-7093	6021	5492	0.174079428498661	0.174079428498661	-104.9450808	39.7367678	-104.9450674	39.7383333
-7094	5492	6022	0.20029370655809	0.20029370655809	-104.9450674	39.7383333	-104.9450447	39.7401345
-7096	3037	6023	0.213499262828813	0.213499262828813	-104.9449805	39.75904	-104.9449634	39.76096
-7098	3578	5645	0.141952777714747	0.141952777714747	-104.9452895	39.7544277	-104.9452967	39.7557043
-8369	876	4464	0.138360134725968	0.138360134725968	-104.968419	39.7645054	-104.9684223	39.7657497
-7100	4359	4350	0.0475473932483631	0.0475473932483631	-104.9453012	39.7565195	-104.9453036	39.7569471
-7101	4350	1533	0.0507609705805194	0.0507609705805194	-104.9453036	39.7569471	-104.9453062	39.7574036
-7102	1533	6024	0.087689125787215	0.087689125787215	-104.9453062	39.7574036	-104.9453106	39.7581922
-7103	6024	3036	0.0935380351023268	0.0935380351023268	-104.9453106	39.7581922	-104.9453153	39.7590334
-7105	2396	6026	0.14381066174273	0.14381066174273	-104.9452638	39.7738711	-104.9453067	39.775164
-7107	1270	4534	0.202622361744701	0.202622361744701	-105.0204072	39.7193738	-105.0227761	39.719354
-7108	4534	6027	0.199229442979025	0.199229442979025	-105.0227761	39.719354	-105.0251054	39.7193679
-7110	6028	6029	0.912875631293974	0.912875631293974	-104.9959579	39.7817094	-104.9855966	39.7797106
-7112	1075	2498	0.0816070075181441	0.0816070075181441	-105.0092438	39.7854664	-105.0101988	39.7854584
-7113	2498	6030	0.0415787253165096	0.0415787253165096	-105.0101988	39.7854584	-105.0106854	39.7854577
-7114	6030	6031	0.0433303737265817	0.0433303737265817	-105.0106854	39.7854577	-105.0111925	39.7854571
-7116	6032	6033	0.0508682336735258	0.0508682336735258	-105.0111965	39.7856112	-105.0117918	39.7856148
-7117	6033	1215	0.0487831269807967	0.0487831269807967	-105.0117918	39.7856148	-105.0123627	39.7856181
-7118	1215	6034	0.0505678656124617	0.0505678656124617	-105.0123627	39.7856181	-105.0129545	39.7856166
-7119	6034	4787	0.0490298276079548	0.0490298276079548	-105.0129545	39.7856166	-105.0135283	39.7856151
-7120	4787	6035	0.0502099740409632	0.0502099740409632	-105.0135283	39.7856151	-105.0141159	39.7856183
-7121	6035	2168	0.0503125854793333	0.0503125854793333	-105.0141159	39.7856183	-105.0147047	39.7856216
-7122	2168	6036	0.0482434584483166	0.0482434584483166	-105.0147047	39.7856216	-105.0152693	39.7856221
-17215	8403	8420	0.200752773596098	0.200752773596098	-104.9775319	39.7038582	-104.9774882	39.7056633
-7123	6036	6037	0.0486536038515005	0.0486536038515005	-105.0152693	39.7856221	-105.0158387	39.7856226
-7125	6038	6039	0.0499795151912972	0.0499795151912972	-105.0164173	39.7856269	-105.0170022	39.7856234
-7126	6039	6040	0.0491412278477837	0.0491412278477837	-105.0170022	39.7856234	-105.0175773	39.7856256
-7127	6040	6041	0.0497771068440158	0.0497771068440158	-105.0175773	39.7856256	-105.0181598	39.7856198
-7128	6041	6042	0.0494653664650395	0.0494653664650395	-105.0181598	39.7856198	-105.0187387	39.7856192
-7129	6042	4660	0.0491491990718702	0.0491491990718702	-105.0187387	39.7856192	-105.0193139	39.7856187
-7130	4660	6043	0.0497609288638681	0.0497609288638681	-105.0193139	39.7856187	-105.0198962	39.7856251
-7131	6043	1290	0.0489747324983769	0.0489747324983769	-105.0198962	39.7856251	-105.0204693	39.7856314
-7133	6044	4562	0.0495973986652376	0.0495973986652376	-105.0210575	39.7856258	-105.0216379	39.7856202
-7134	4562	6045	0.0489640905184848	0.0489640905184848	-105.0216379	39.7856202	-105.0222109	39.785625
-7135	6045	6046	0.0491691479666822	0.0491691479666822	-105.0222109	39.785625	-105.0227863	39.7856298
-7136	6046	6047	0.0507578186257211	0.0507578186257211	-105.0227863	39.7856298	-105.0233803	39.7856255
-7137	6047	2730	0.0500913644840885	0.0500913644840885	-105.0233803	39.7856255	-105.0239665	39.7856212
-7138	2730	6048	0.0486937991070737	0.0486937991070737	-105.0239665	39.7856212	-105.0245363	39.7856143
-7139	6048	6049	0.0563508416708434	0.0563508416708434	-105.0245363	39.7856143	-105.0251957	39.7856063
-7140	6049	6050	0.0543668616299433	0.0543668616299433	-105.0251957	39.7856063	-105.0258319	39.7856132
-7141	6050	3755	0.049786406684993	0.049786406684993	-105.0258319	39.7856132	-105.0264145	39.7856195
-7142	3755	6051	0.0495857892809515	0.0495857892809515	-105.0264145	39.7856195	-105.0269948	39.7856221
-7143	6051	6052	0.0496881410470813	0.0496881410470813	-105.0269948	39.7856221	-105.0275763	39.7856198
-7144	6052	6053	0.0491149994031363	0.0491149994031363	-105.0275763	39.7856198	-105.0281511	39.7856201
-18545	5563	7539	0.0787059485791879	0.0787059485791879	-105.0440188	39.7652831	-105.0449396	39.7652893
-7145	6053	6054	0.0498540025598143	0.0498540025598143	-105.0281511	39.7856201	-105.0287345	39.7856259
-7146	6054	6055	0.0489875409651698	0.0489875409651698	-105.0287345	39.7856259	-105.0293078	39.7856235
-7147	6055	4007	0.0499802866726516	0.0499802866726516	-105.0293078	39.7856235	-105.0298927	39.7856278
-7148	4007	6056	0.0488162842829032	0.0488162842829032	-105.0298927	39.7856278	-105.030464	39.7856261
-7149	6056	6057	0.0489359547659716	0.0489359547659716	-105.030464	39.7856261	-105.0310367	39.7856243
-7150	6057	6058	0.0509862761511403	0.0509862761511403	-105.0310367	39.7856243	-105.0316334	39.7856243
-7151	6058	1391	0.0507897478531174	0.0507897478531174	-105.0316334	39.7856243	-105.0322278	39.7856243
-7152	1391	6059	0.0484575520219378	0.0484575520219378	-105.0322278	39.7856243	-105.0327949	39.7856263
-7154	6060	6061	0.051268887373703	0.051268887373703	-105.0333562	39.7856282	-105.0339562	39.7856259
-7155	6061	3440	0.0523540538479921	0.0523540538479921	-105.0339562	39.7856259	-105.0345689	39.7856236
-7156	3440	6062	0.0526542821957606	0.0526542821957606	-105.0345689	39.7856236	-105.0351851	39.7856197
-7157	6062	5722	0.0500652354639954	0.0500652354639954	-105.0351851	39.7856197	-105.035771	39.7856159
-7158	5722	6063	0.0491749564449066	0.0491749564449066	-105.035771	39.7856159	-105.0363465	39.7856148
-7159	6063	6064	0.0490553316653512	0.0490553316653512	-105.0363465	39.7856148	-105.0369206	39.7856137
-7160	6064	6065	0.0504053225202572	0.0504053225202572	-105.0369206	39.7856137	-105.0375105	39.7856129
-7161	6065	6066	0.0491577785316978	0.0491577785316978	-105.0375105	39.7856129	-105.0380858	39.7856122
-7162	6066	6067	0.0500917004504544	0.0500917004504544	-105.0380858	39.7856122	-105.038672	39.7856168
-7163	6067	6068	0.0487330457346556	0.0487330457346556	-105.038672	39.7856168	-105.0392423	39.7856213
-7164	6068	6069	0.0500468552276867	0.0500468552276867	-105.0392423	39.7856213	-105.039828	39.7856193
-7165	6069	1089	0.0473039342434908	0.0473039342434908	-105.039828	39.7856193	-105.0403816	39.7856175
-7166	1089	6070	0.0519349767204956	0.0519349767204956	-105.0403816	39.7856175	-105.0409894	39.7856189
-7167	6070	6071	0.0483547253107021	0.0483547253107021	-105.0409894	39.7856189	-105.0415553	39.7856202
-7169	6072	3860	0.0495593243927177	0.0495593243927177	-105.0421669	39.7856198	-105.0427469	39.7856195
-7170	3860	6073	0.0493012970703545	0.0493012970703545	-105.0427469	39.7856195	-105.0433238	39.7856121
-7171	6073	5585	0.0529959751032204	0.0529959751032204	-105.0433238	39.7856121	-105.043944	39.7856159
-7173	1003	5222	0.108094382628624	0.108094382628624	-104.987571	39.7855779	-104.988836	39.785586
-7175	6074	3213	0.169273308004073	0.169273308004073	-104.962329	39.712563	-104.9628505	39.7110945
-7176	3213	6075	0.200540081035548	0.200540081035548	-104.9628505	39.7110945	-104.9628492	39.709291
-7177	6075	1924	0.199718283006537	0.199718283006537	-104.9628492	39.709291	-104.962875	39.707495
-7178	1924	6076	0.202212418704144	0.202212418704144	-104.962875	39.707495	-104.9628366	39.7056767
-7179	6076	3268	0.201184980777767	0.201184980777767	-104.9628366	39.7056767	-104.9628366	39.7038674
-7180	3268	6077	0.201398824177077	0.201398824177077	-104.9628366	39.7038674	-104.9628485	39.7020562
-7181	6077	81	0.202519482529809	0.202519482529809	-104.9628485	39.7020562	-104.9628455	39.7002349
-7182	81	3517	0.205035908609294	0.205035908609294	-104.9628455	39.7002349	-104.9628742	39.6983911
-7183	3517	4259	0.201561198640626	0.201561198640626	-104.9628742	39.6983911	-104.9628968	39.6965785
-7184	4259	6078	0.201877222241407	0.201877222241407	-104.9628968	39.6965785	-104.9629093	39.694763
-7185	6078	6079	0.198020897047098	0.198020897047098	-104.9629093	39.694763	-104.9629257	39.6929822
-7186	6079	5828	0.204359521871182	0.204359521871182	-104.9629257	39.6929822	-104.9629082	39.6911444
-7187	5828	6080	0.203452288011347	0.203452288011347	-104.9629082	39.6911444	-104.9628739	39.6893149
-7188	6080	6081	0.199577893436046	0.199577893436046	-104.9628739	39.6893149	-104.962857	39.6875201
-7189	6082	4198	0.0554105901874734	0.0554105901874734	-105.007037	39.720887	-105.007437	39.721279
-8462	1578	6834	0.296770354889592	0.296770354889592	-105.0401129	39.6876594	-105.0401263	39.6849905
-7190	4198	6083	0.479532197769768	0.479532197769768	-105.007437	39.721279	-105.0092748	39.7253533
-7193	6085	3417	0.199987779646285	0.199987779646285	-105.0322636	39.7629835	-105.0346033	39.7629904
-7195	5561	6086	0.0785728419075768	0.0785728419075768	-105.0440091	39.7630203	-105.0449283	39.7630131
-7196	6086	6087	0.711200705359908	0.711200705359908	-105.0449283	39.7630131	-105.0532488	39.7629903
-7197	6088	6089	0.0569381576865727	0.0569381576865727	-105.0111515	39.7608094	-105.0118176	39.7608059
-7199	1755	4797	0.0569796757564415	0.0569796757564415	-105.0124792	39.7608073	-105.0131458	39.7608063
-7200	4797	6090	0.0568688820659326	0.0568688820659326	-105.0131458	39.7608063	-105.0138111	39.7608043
-7201	6090	2163	0.0576467707798926	0.0576467707798926	-105.0138111	39.7608043	-105.0144855	39.7608022
-7202	2163	6091	0.115287318699314	0.115287318699314	-105.0144855	39.7608022	-105.0158342	39.7607944
-7204	4029	6092	0.199820514844545	0.199820514844545	-105.0299179	39.761227	-105.0322556	39.7612283
-7205	6092	3413	0.201407533266255	0.201407533266255	-105.0322556	39.7612283	-105.0346118	39.761242
-7207	6093	6094	0.0604203300865654	0.0604203300865654	-105.0268612	39.760858	-105.027568	39.7608513
-7208	6094	6095	0.0494745769978518	0.0494745769978518	-105.027568	39.7608513	-105.0281468	39.7608514
-7209	6095	6096	0.0926701881064251	0.0926701881064251	-105.0281468	39.7608514	-105.0292309	39.760844
-7210	6096	4028	0.05825540400242	0.05825540400242	-105.0292309	39.760844	-105.0299124	39.7608394
-7212	5558	6097	0.589453817263917	0.589453817263917	-105.0440044	39.7612115	-105.0509004	39.761199
-7213	111	6098	0.0840698350347185	0.0840698350347185	-104.929111	39.709605	-104.928134	39.709687
-7214	6098	5387	0.102649580636379	0.102649580636379	-104.928134	39.709687	-104.926934	39.709687
-7216	6099	4834	0.0618019179836103	0.0618019179836103	-104.9444906	39.7093483	-104.9437682	39.7093402
-7217	4834	6100	0.103506880889302	0.103506880889302	-104.9437682	39.7093402	-104.9425586	39.7093158
-7218	6100	6101	0.102436270515026	0.102436270515026	-104.9425586	39.7093158	-104.9413615	39.709292
-7219	6101	6102	0.0462582791506537	0.0462582791506537	-104.9413615	39.709292	-104.9408208	39.7092854
-7221	5388	6103	0.0951666989097628	0.0951666989097628	-104.926934	39.709287	-104.9258215	39.7092917
-7222	6103	6104	0.103533109860882	0.103533109860882	-104.9258215	39.7092917	-104.9246113	39.7092785
-17793	6179	8402	0.062258154453335	0.062258154453335	-104.9873985	39.7569664	-104.9873999	39.7564065
-7223	6104	6105	1.01266363478673	1.01266363478673	-104.9246113	39.7092785	-104.9127732	39.7093215
-7226	6107	6108	0.0985711721031886	0.0985711721031886	-104.9851845	39.7093159	-104.9840322	39.7093206
-7227	6108	6109	0.106459269312792	0.106459269312792	-104.9840322	39.7093206	-104.9827877	39.709314
-7228	6109	6110	0.106833918076069	0.106833918076069	-104.9827877	39.709314	-104.9815389	39.7093013
-7229	6110	3622	0.0989181087898918	0.0989181087898918	-104.9815389	39.7093013	-104.980383	39.7092759
-7230	3622	6111	0.098886772683552	0.098886772683552	-104.980383	39.7092759	-104.979227	39.7092785
-7231	6111	6112	0.0498651872917774	0.0498651872917774	-104.979227	39.7092785	-104.9786441	39.7092737
-7232	6112	6113	0.0465544361472323	0.0465544361472323	-104.9786441	39.7092737	-104.9780999	39.7092693
-7233	6113	6114	0.048644459525012	0.048644459525012	-104.9780999	39.7092693	-104.9775313	39.7092628
-7234	6114	1769	0.0504837415599517	0.0504837415599517	-104.9775313	39.7092628	-104.9769412	39.7092561
-7235	1769	4488	0.0559949291466801	0.0559949291466801	-104.9769412	39.7092561	-104.9762867	39.7092645
-7236	4488	6115	0.0469382916231929	0.0469382916231929	-104.9762867	39.7092645	-104.9757389	39.7092889
-7237	6115	4839	0.0486148679353184	0.0486148679353184	-104.9757389	39.7092889	-104.9751709	39.7092743
-7239	1519	5280	0.0508144170388461	0.0508144170388461	-104.9745633	39.7092771	-104.9739693	39.7092817
-7240	5280	6116	0.0496680994860777	0.0496680994860777	-104.9739693	39.7092817	-104.9733887	39.7092862
-7241	6116	1086	0.0854394240121282	0.0854394240121282	-104.9733887	39.7092862	-104.9723899	39.7092881
-7244	6118	5426	0.102968153598516	0.102968153598516	-104.9710442	39.7092903	-104.9698407	39.7093079
-7245	5426	6119	0.101169119900675	0.101169119900675	-104.9698407	39.7093079	-104.9686581	39.7092969
-7246	6119	2048	0.10059076820208	0.10059076820208	-104.9686581	39.7092969	-104.9674823	39.7092837
-7247	2048	6120	0.0997250287478783	0.0997250287478783	-104.9674823	39.7092837	-104.9663168	39.7093042
-7248	6120	6121	0.100591265363907	0.100591265363907	-104.9663168	39.7093042	-104.9651409	39.7093108
-7249	6121	6122	0.0474195280765072	0.0474195280765072	-104.9651409	39.7093108	-104.9645867	39.7093011
-7250	6122	3477	0.0495243305794908	0.0495243305794908	-104.9645867	39.7093011	-104.9640079	39.709291
-7251	3477	6123	0.0472960657562571	0.0472960657562571	-104.9640079	39.709291	-104.963455	39.709291
-7252	6123	6075	0.0518212274102399	0.0518212274102399	-104.963455	39.709291	-104.9628492	39.709291
-7253	6075	6124	0.0477720158174774	0.0477720158174774	-104.9628492	39.709291	-104.9622908	39.7092845
-7254	6124	3692	0.0491494225474026	0.0491494225474026	-104.9622908	39.7092845	-104.9617163	39.7092778
-7255	3692	6125	0.0492733746042409	0.0492733746042409	-104.9617163	39.7092778	-104.9611403	39.709281
-7256	6125	4567	0.0513179295413005	0.0513179295413005	-104.9611403	39.709281	-104.9605404	39.7092844
-7257	4567	6126	0.104996585237884	0.104996585237884	-104.9605404	39.7092844	-104.959313	39.709291
-7259	6127	6128	0.202552708883543	0.202552708883543	-105.0286529	39.7293168	-105.0286516	39.7311384
-7260	6128	6129	0.200575382409089	0.200575382409089	-105.0286516	39.7311384	-105.0286784	39.7329421
-7261	6129	6130	0.200851528697639	0.200851528697639	-105.0286784	39.7329421	-105.0286757	39.7347484
-7263	6131	4042	0.178407205955933	0.178407205955933	-105.0287757	39.7165547	-105.0287585	39.7181591
-7264	4042	6132	0.176658257473219	0.176658257473219	-105.0287585	39.7181591	-105.0287845	39.7197477
-7265	6132	6133	0.173893747367395	0.173893747367395	-105.0287845	39.7197477	-105.0288029	39.7213115
-7266	6133	1832	0.00321363581065808	0.00321363581065808	-105.0288029	39.7213115	-105.0288032	39.7213404
-7267	1832	6134	0.0979518830790181	0.0979518830790181	-105.0288032	39.7213404	-105.0288059	39.7222213
-7268	6134	2577	0.0768544895315019	0.0768544895315019	-105.0288059	39.7222213	-105.0288186	39.7229124
-7270	2974	713	0.0553033256449361	0.0553033256449361	-105.0281658	39.7584695	-105.0281562	39.7589668
-7271	713	1884	0.049816225531446	0.049816225531446	-105.0281562	39.7589668	-105.0281527	39.7594148
-7272	1884	269	0.0489259588819734	0.0489259588819734	-105.0281527	39.7594148	-105.0281511	39.7598548
-7273	269	6135	0.049929244786193	0.049929244786193	-105.0281511	39.7598548	-105.0281572	39.7603038
-7274	6135	6095	0.0608968307992014	0.0608968307992014	-105.0281572	39.7603038	-105.0281468	39.7608514
-7276	1819	6136	0.206807888451467	0.206807888451467	-105.0286551	39.7269539	-105.0288404	39.7288083
-7278	6137	6138	0.137211297869344	0.137211297869344	-105.0287666	39.7560413	-105.0287838	39.7572752
-7280	6139	4576	0.0888580713995718	0.0888580713995718	-105.0283324	39.7407242	-105.0283618	39.741523
-7281	4576	6140	0.134023429450374	0.134023429450374	-105.0283618	39.741523	-105.0283644	39.7427283
-7282	6140	5292	0.135037120828343	0.135037120828343	-105.0283644	39.7427283	-105.028373	39.7439427
-7283	5292	6141	0.134292125855752	0.134292125855752	-105.028373	39.7439427	-105.0283644	39.7451504
-7285	11	6142	0.134290112908847	0.134290112908847	-105.0283851	39.746369	-105.0283851	39.7475767
-7286	6142	6143	0.134379347336523	0.134379347336523	-105.0283851	39.7475767	-105.0283819	39.7487852
-7287	6143	6144	0.135319045428869	0.135319045428869	-105.0283819	39.7487852	-105.0283496	39.7500019
-7288	6144	6145	0.133823509557072	0.133823509557072	-105.0283496	39.7500019	-105.0283535	39.7512054
-7289	6145	6146	0.133595456488811	0.133595456488811	-105.0283535	39.7512054	-105.0283964	39.7524064
-7290	6146	6147	0.132813208199385	0.132813208199385	-105.0283964	39.7524064	-105.0283879	39.7536008
-7291	6147	6148	0.135903166352965	0.135903166352965	-105.0283879	39.7536008	-105.0283827	39.754823
-7293	6149	5532	0.117263436099258	0.117263436099258	-105.0287889	39.7729931	-105.028838	39.774047
-7294	5532	6150	0.292646155170772	0.292646155170772	-105.028838	39.774047	-105.028752	39.776678
-7296	4069	6054	0.143532163506992	0.143532163506992	-105.0287428	39.7843351	-105.0287345	39.7856259
-7297	6054	5794	0.200517814130868	0.200517814130868	-105.0287345	39.7856259	-105.0287341	39.7874292
-7299	6151	6152	0.134234537479531	0.134234537479531	-105.0283314	39.7766715	-105.0283323	39.7778787
-7300	6152	2491	0.134965193585355	0.134965193585355	-105.0283323	39.7778787	-105.0283152	39.7790924
-7301	2491	2836	0.132191750515313	0.132191750515313	-105.0283152	39.7790924	-105.028326	39.7802812
-7303	2760	6153	0.17786816992516	0.17786816992516	-104.9328153	39.7162508	-104.9328092	39.7146512
-7304	6153	3104	0.174733256162163	0.174733256162163	-104.9328092	39.7146512	-104.9328006	39.7130798
-7305	3104	6156	0.194828104098244	0.194828104098244	-104.9328006	39.7130798	-104.932787	39.7113277
-7307	62	3549	0.192897189560382	0.192897189560382	-104.932829	39.700178	-104.932762	39.698444
-7309	191	5855	0.144500472019434	0.144500472019434	-105.02039	39.7157163	-105.019178	39.714811
-7313	1335	6158	0.164940728280041	0.164940728280041	-105.012511	39.712992	-105.01431	39.712458
-7315	3709	719	0.105637457999026	0.105637457999026	-105.002935	39.7760646	-105.004171	39.7760778
-7317	3184	6159	0.175088076753778	0.175088076753778	-104.9555361	39.7016193	-104.9571463	39.7006474
-7318	6159	91	0.0479220492178455	0.0479220492178455	-104.9571463	39.7006474	-104.9570295	39.7002259
-7319	91	3527	0.203258724621779	0.203258724621779	-104.9570295	39.7002259	-104.956949	39.698399
-7320	3527	6160	0.201096029386997	0.201096029386997	-104.956949	39.698399	-104.9569485	39.6965905
-7321	6160	6161	0.201913621123293	0.201913621123293	-104.9569485	39.6965905	-104.9569665	39.6947747
-7323	6162	5834	0.203525395170747	0.203525395170747	-104.9569515	39.6929673	-104.9569687	39.691137
-7324	5834	6163	0.200952914390398	0.200952914390398	-104.9569687	39.691137	-104.9569776	39.6893298
-7326	3276	3651	0.182839298131176	0.182839298131176	-104.9569423	39.703847	-104.9569509	39.7022027
-7329	6166	4285	0.103763551261197	0.103763551261197	-104.9697218	39.7719933	-104.9705937	39.7726427
-7331	1617	6167	0.103830241851319	0.103830241851319	-104.9723691	39.774003	-104.9732245	39.7746661
-7333	6168	2159	0.117895446926253	0.117895446926253	-105.0158387	39.7571855	-105.0144598	39.7572068
-7334	2159	4795	0.11289998607803	0.11289998607803	-105.0144598	39.7572068	-105.0131391	39.7571989
-7335	4795	1226	0.113625921506999	0.113625921506999	-105.0131391	39.7571989	-105.01181	39.7571845
-7337	4401	4400	0.117696624021516	0.117696624021516	-104.9626217	39.7238487	-104.961317	39.723512
-7341	2320	4278	0.147648925220672	0.147648925220672	-104.9733543	39.7679348	-104.9745038	39.7669436
-7342	4278	6174	0.145039413918761	0.145039413918761	-104.9745038	39.7669436	-104.9757035	39.7660211
-7343	6174	633	0.147839808469135	0.147839808469135	-104.9757035	39.7660211	-104.9769309	39.7650843
-7344	633	5324	0.144274087604939	0.144274087604939	-104.9769309	39.7650843	-104.9781151	39.7641597
-7345	5324	2036	0.144878759704946	0.144878759704946	-104.9781151	39.7641597	-104.9793013	39.763229
-7346	2036	6175	0.146765627629388	0.146765627629388	-104.9793013	39.763229	-104.9805241	39.7623024
-7347	6175	5506	0.146988764364424	0.146988764364424	-104.9805241	39.7623024	-104.9817097	39.7613449
-7349	4458	6176	0.146285529633972	0.146285529633972	-104.9829353	39.7604242	-104.9841486	39.7594964
-7350	6176	6177	0.143815084290611	0.143815084290611	-104.9841486	39.7594964	-104.9853166	39.7585655
-7351	6177	6178	0.149072223288683	0.149072223288683	-104.9853166	39.7585655	-104.9865554	39.7576219
-7352	6178	6179	0.102502676747671	0.102502676747671	-104.9865554	39.7576219	-104.9873985	39.7569664
-7353	6179	6180	0.0433701075577025	0.0433701075577025	-104.9873985	39.7569664	-104.9877579	39.7566911
-7354	6180	6181	0.146972104646326	0.146972104646326	-104.9877579	39.7566911	-104.9889487	39.7557377
-7355	6181	6182	0.147344314502621	0.147344314502621	-104.9889487	39.7557377	-104.990176	39.7548073
-7356	6182	6183	0.145754933885852	0.145754933885852	-104.990176	39.7548073	-104.9913748	39.7538752
-7357	6183	6184	0.147948446924155	0.147948446924155	-104.9913748	39.7538752	-104.9925969	39.7529331
-7358	6184	6185	0.145005273136899	0.145005273136899	-104.9925969	39.7529331	-104.993798	39.7520123
-7359	6185	6186	0.141478743986661	0.141478743986661	-104.993798	39.7520123	-104.9949606	39.7511068
-7360	6186	5784	0.0051191432185562	0.0051191432185562	-104.9949606	39.7511068	-104.9949995	39.7510718
-7361	5784	6187	0.145606807182671	0.145606807182671	-104.9949995	39.7510718	-104.9961984	39.7501417
-7362	6187	6188	0.145777030768037	0.145777030768037	-104.9961984	39.7501417	-104.9973988	39.7492106
-7363	6188	6189	0.147177496711371	0.147177496711371	-104.9973988	39.7492106	-104.9986323	39.7482873
-7365	999	4221	0.0806091686632927	0.0806091686632927	-104.9876054	39.7809872	-104.9868954	39.7805099
-7366	4221	6190	0.102381971527348	0.102381971527348	-104.9868954	39.7805099	-104.9857782	39.7801773
-7367	6190	6193	0.0984965085324321	0.0984965085324321	-104.9857782	39.7801773	-104.9846257	39.7801641
-7368	6193	969	0.0952400858484175	0.0952400858484175	-104.9846257	39.7801641	-104.9835112	39.7801693
-7369	969	6194	0.0506536388127553	0.0506536388127553	-104.9835112	39.7801693	-104.982919	39.7801891
-7370	6194	5287	0.0506057613654141	0.0506057613654141	-104.982919	39.7801891	-104.9823268	39.7801891
-7371	5287	3152	0.0954510374534177	0.0954510374534177	-104.9823268	39.7801891	-104.981211	39.7801495
-7372	3152	4968	0.0960843478924756	0.0960843478924756	-104.981211	39.7801495	-104.9800866	39.7801495
-7373	4968	6195	0.0415654887010154	0.0415654887010154	-104.9800866	39.7801495	-104.9796002	39.7801517
-15921	9749	9750	0.0318908811678005	0.0318908811678005	-105.0271669	39.7276925	-105.0269255	39.7274739
-7401	6213	6214	0.0495719593537107	0.0495719593537107	-105.0372874	39.7257681	-105.037867	39.7257736
-7374	335	340	0.288826145863276	0.288826145863276	-104.9400719	39.7824771	-104.9379355	39.7804643
-7378	519	6197	0.0784497798176465	0.0784497798176465	-104.9416292	39.7807961	-104.9410596	39.7813494
-7379	6197	6198	0.0395399248279629	0.0395399248279629	-104.9410596	39.7813494	-104.9406408	39.7815006
-7380	6198	6199	0.019955626672929	0.019955626672929	-104.9406408	39.7815006	-104.9404705	39.7816234
-7382	6200	6201	0.0919482301684137	0.0919482301684137	-104.9634695	39.7803971	-104.9623939	39.7803745
-7383	6201	6202	0.111020276961071	0.111020276961071	-104.9623939	39.7803745	-104.961346	39.7809647
-7385	4485	6203	0.0919528384362936	0.0919528384362936	-105.0056478	39.7253802	-105.0067229	39.7253691
-7386	6203	4199	0.0670783480641165	0.0670783480641165	-105.0067229	39.7253691	-105.0075072	39.7253629
-7387	4199	6204	0.129739883939344	0.129739883939344	-105.0075072	39.7253629	-105.0090242	39.7253711
-7388	6204	6083	0.021522983414344	0.021522983414344	-105.0090242	39.7253711	-105.0092748	39.7253533
-7390	1820	6205	0.059780784078693	0.059780784078693	-105.0299828	39.7262896	-105.0306528	39.7261363
-7391	6205	6206	0.0520794903588436	0.0520794903588436	-105.0306528	39.7261363	-105.0312569	39.7260772
-7392	6206	6207	0.0535277276856965	0.0535277276856965	-105.0312569	39.7260772	-105.0318828	39.7260783
-7393	6207	6208	0.052616435606338	0.052616435606338	-105.0318828	39.7260783	-105.0324968	39.7261084
-7395	6209	6210	0.054197774205049	0.054197774205049	-105.0331036	39.7261385	-105.0337279	39.7260547
-7396	6210	600	0.122572832169608	0.122572832169608	-105.0337279	39.7260547	-105.0351121	39.7257688
-7397	600	6211	0.0472521628905724	0.0472521628905724	-105.0351121	39.7257688	-105.0356646	39.7257653
-7398	6211	5708	0.0430357389006543	0.0430357389006543	-105.0356646	39.7257653	-105.0361678	39.7257622
-7399	5708	6212	0.0495085394583916	0.0495085394583916	-105.0361678	39.7257622	-105.0367467	39.7257609
-7400	6212	6213	0.0462483397604104	0.0462483397604104	-105.0367467	39.7257609	-105.0372874	39.7257681
-7402	6214	6215	0.0428153220943109	0.0428153220943109	-105.037867	39.7257736	-105.0383676	39.7257784
-7403	6215	6216	0.0471000262746752	0.0471000262746752	-105.0383676	39.7257784	-105.0389183	39.7257835
-7404	6216	6217	0.0473822229177533	0.0473822229177533	-105.0389183	39.7257835	-105.0394723	39.7257886
-7405	6217	1100	0.091970261814681	0.091970261814681	-105.0394723	39.7257886	-105.0405477	39.7257916
-7406	1100	6218	0.0449415553049736	0.0449415553049736	-105.0405477	39.7257916	-105.0410732	39.7257908
-7407	6218	6219	0.0480654852744355	0.0480654852744355	-105.0410732	39.7257908	-105.0416352	39.7257952
-7408	6219	6221	0.0454218674668918	0.0454218674668918	-105.0416352	39.7257952	-105.0421663	39.7257919
-7409	6221	3858	0.0463369187822574	0.0463369187822574	-105.0421663	39.7257919	-105.0427081	39.7257886
-7410	3858	6222	0.0463493111972249	0.0463493111972249	-105.0427081	39.7257886	-105.04325	39.7257949
-7411	6222	5594	0.0512843332286284	0.0512843332286284	-105.04325	39.7257949	-105.0438496	39.7258018
-7412	5594	6223	0.0568069326737853	0.0568069326737853	-105.0438496	39.7258018	-105.0445138	39.725796
-7413	6223	6224	0.0525700432289869	0.0525700432289869	-105.0445138	39.725796	-105.0451285	39.7257952
-7414	6224	6225	0.0976339163821139	0.0976339163821139	-105.0451285	39.7257952	-105.0462701	39.7258018
-7439	6242	6243	0.0662881511283164	0.0662881511283164	-104.9882366	39.7256418	-104.9874615	39.7256397
-7415	6225	6226	0.598121759063317	0.598121759063317	-105.0462701	39.7258018	-105.0531438	39.7267947
-7416	3855	6227	0.0533569775705536	0.0533569775705536	-105.0427146	39.72552	-105.0433385	39.72552
-7417	6227	5550	0.054545728952838	0.054545728952838	-105.0433385	39.72552	-105.0439763	39.72552
-7419	6228	6229	0.0491582246006862	0.0491582246006862	-105.0445535	39.7255217	-105.0451283	39.7255234
-7420	6229	6230	0.632851875022697	0.632851875022697	-105.0451283	39.7255234	-105.0525271	39.7254255
-7421	4649	6231	0.0998318489902405	0.0998318489902405	-105.0186468	39.7257296	-105.0174795	39.7257362
-7423	3956	6232	0.132968901609209	0.132968901609209	-105.0001441	39.7257079	-104.9985893	39.7257061
-7424	6232	6233	0.0436348818689085	0.0436348818689085	-104.9985893	39.7257061	-104.9980791	39.7257025
-7425	6233	6234	0.0454822742996404	0.0454822742996404	-104.9980791	39.7257025	-104.9975473	39.7256987
-7426	6234	6235	0.049945575036802	0.049945575036802	-104.9975473	39.7256987	-104.9969633	39.7256958
-7427	6235	6236	0.0503304157761669	0.0503304157761669	-104.9969633	39.7256958	-104.9963748	39.7256929
-7428	6236	6237	0.0508263629674458	0.0508263629674458	-104.9963748	39.7256929	-104.9957805	39.7256901
-7429	6237	4952	0.0505868421691217	0.0505868421691217	-104.9957805	39.7256901	-104.995189	39.7256874
-7430	4952	4681	0.10191805721873	0.10191805721873	-104.995189	39.7256874	-104.9939973	39.7256815
-7431	4681	6238	0.099594470461032	0.099594470461032	-104.9939973	39.7256815	-104.9928328	39.7256728
-7432	6238	6239	0.057251122773958	0.057251122773958	-104.9928328	39.7256728	-104.9921634	39.7256675
-7433	6239	6240	0.108863184827896	0.108863184827896	-104.9921634	39.7256675	-104.9908905	39.7256604
-7434	6240	5092	0.0381385955203522	0.0381385955203522	-104.9908905	39.7256604	-104.9904446	39.7256551
-7435	5092	5227	0.108194428858344	0.108194428858344	-104.9904446	39.7256551	-104.9891795	39.7256506
-7437	5219	6241	0.0418231546106276	0.0418231546106276	-104.9888684	39.7256475	-104.9883794	39.7256429
-7438	6241	6242	0.0122130870650471	0.0122130870650471	-104.9883794	39.7256429	-104.9882366	39.7256418
-7442	1601	1657	0.147607723017958	0.147607723017958	-105.013927	39.6982179	-105.0156522	39.6982047
-7444	5765	6244	0.238854062350574	0.238854062350574	-105.0065723	39.6981963	-105.0093641	39.6981976
-7445	6244	5899	0.278312459096762	0.278312459096762	-105.0093641	39.6981976	-105.0126138	39.6983104
-7446	5899	1600	0.0794217837629518	0.0794217837629518	-105.0126138	39.6983104	-105.0133862	39.6987066
-7448	4405	4957	0.275380198668453	0.275380198668453	-105.0297627	39.6985415	-105.0329814	39.6985547
-7450	4315	4502	0.0962009886521744	0.0962009886521744	-105.0344405	39.6985481	-105.0355649	39.6985415
-7451	4502	6245	0.0998685092157526	0.0998685092157526	-105.0355649	39.6985415	-105.0367322	39.6985415
-7452	6245	5078	0.0969948238046964	0.0969948238046964	-105.0367322	39.6985415	-105.0378651	39.6985745
-7453	5078	6246	0.102086344844989	0.102086344844989	-105.0378651	39.6985745	-105.0390582	39.6985613
-7454	6246	6247	0.102069890156656	0.102069890156656	-105.0390582	39.6985613	-105.0402512	39.6985547
-7455	6247	6248	0.0998684901150858	0.0998684901150858	-105.0402512	39.6985547	-105.0414185	39.6985547
-7456	6248	6249	0.099157147424293	0.099157147424293	-105.0414185	39.6985547	-105.0425772	39.6985745
-7457	6249	6250	0.0998927126402804	0.0998927126402804	-105.0425772	39.6985745	-105.0437445	39.6985943
-7459	4376	2857	0.174778525570848	0.174778525570848	-105.0014998	39.6980642	-105.0035425	39.698084
-7461	1656	6251	0.113089099397014	0.113089099397014	-105.0156865	39.6985745	-105.0170083	39.6985811
-7462	6251	4210	0.0895877408394824	0.0895877408394824	-105.0170083	39.6985811	-105.0180554	39.6985745
-7463	4210	6252	0.0984078699260149	0.0984078699260149	-105.0180554	39.6985745	-105.0192055	39.6985613
-7464	6252	202	0.0984164433029134	0.0984164433029134	-105.0192055	39.6985613	-105.0203557	39.6985481
-7465	202	2930	0.0999116533304243	0.0999116533304243	-105.0203557	39.6985481	-105.021523	39.6985217
-7467	5311	1467	0.0969591422712861	0.0969591422712861	-105.0227074	39.6985877	-105.0238404	39.6986076
-7468	1467	5446	0.104331765041419	0.104331765041419	-105.0238404	39.6986076	-105.0250598	39.6985976
-7470	6253	6254	0.108544830855141	0.108544830855141	-104.9926817	39.6984968	-104.9939504	39.6984927
-7471	6254	6255	0.0440614876081187	0.0440614876081187	-104.9939504	39.6984927	-104.9944654	39.6984907
-7472	6255	6256	0.10258169252724	0.10258169252724	-104.9944654	39.6984907	-104.9956644	39.6984948
-7473	6256	6257	0.0426791560290334	0.0426791560290334	-104.9956644	39.6984948	-104.9961632	39.6984894
-7474	6257	1181	0.0541704333597994	0.0541704333597994	-104.9961632	39.6984894	-104.9967963	39.6984825
-7476	6258	5341	0.664349456749629	0.664349456749629	-105.0437445	39.6975575	-105.0514806	39.6980732
-7480	1556	736	0.1281317837441	0.1281317837441	-104.9613425	39.77767	-104.9613344	39.7765177
-7482	6260	6261	0.0586102720745076	0.0586102720745076	-104.9613314	39.7250799	-104.9613184	39.7256069
-7484	1188	6262	0.0214828666370953	0.0214828666370953	-104.9613359	39.7271192	-104.9613357	39.7273124
-7485	6262	3789	0.199388923153335	0.199388923153335	-104.9613357	39.7273124	-104.9613527	39.7291055
-7486	3789	5915	0.154872293830304	0.154872293830304	-104.9613527	39.7291055	-104.9613527	39.7304983
-7487	5915	6263	0.0506492890867135	0.0506492890867135	-104.9613527	39.7304983	-104.9613527	39.7309538
-7488	6264	2248	0.0665325760000431	0.0665325760000431	-104.9610192	39.7328682	-104.9610284	39.7334665
-7489	2248	4881	0.176090081583566	0.176090081583566	-104.9610284	39.7334665	-104.9610377	39.7350501
-7490	4881	6265	0.19613430259676	0.19613430259676	-104.9610377	39.7350501	-104.9610051	39.7368138
-7491	6265	5479	0.175348484443179	0.175348484443179	-104.9610051	39.7368138	-104.9610209	39.7383907
-7492	5479	6266	0.176845636908204	0.176845636908204	-104.9610209	39.7383907	-104.9610132	39.7399811
-7493	6266	6267	0.178089834743743	0.178089834743743	-104.9610132	39.7399811	-104.9610118	39.7415827
-7494	6267	676	0.00240181041514711	0.00240181041514711	-104.9610118	39.7415827	-104.9610118	39.7416043
-7495	676	6268	0.00459391026290071	0.00459391026290071	-104.9610118	39.7416043	-104.9610132	39.7416456
-7496	6268	6269	0.174858851790528	0.174858851790528	-104.9610132	39.7416456	-104.960998	39.7432181
-7497	6269	4598	0.173764465207871	0.173764465207871	-104.960998	39.7432181	-104.9610007	39.7447808
-7500	6270	6271	0.133612621428605	0.133612621428605	-104.960998	39.748227	-104.9609926	39.7494286
-7501	6271	6272	0.00412533177852682	0.00412533177852682	-104.9609926	39.7494286	-104.9609926	39.7494657
-7502	6272	6273	0.00367565176707242	0.00367565176707242	-104.9609926	39.7494657	-104.9609901	39.7494987
-7503	6273	6274	0.134146296121319	0.134146296121319	-104.9609901	39.7494987	-104.9609953	39.7507051
-20534	10849	10832	0.00532626442143788	0.00532626442143788	-105.0250742	39.7612881	-105.025074	39.7612402
-7504	6274	6275	0.138338671785307	0.138338671785307	-104.9609953	39.7507051	-104.961025	39.751949
-7505	6275	829	0.140763564032817	0.140763564032817	-104.961025	39.751949	-104.9610026	39.7532148
-7506	829	3569	0.13985476308825	0.13985476308825	-104.9610026	39.7532148	-104.9609889	39.7544725
-7507	3569	5638	0.139885286720423	0.139885286720423	-104.9609889	39.7544725	-104.9609978	39.7557305
-7508	5638	4342	0.139394668795268	0.139394668795268	-104.9609978	39.7557305	-104.9609926	39.7569841
-7509	4342	6276	0.136887040523289	0.136887040523289	-104.9609926	39.7569841	-104.9609775	39.7582151
-7510	6276	3042	0.135179672321338	0.135179672321338	-104.9609775	39.7582151	-104.9609775	39.7594308
-7511	3042	6277	0.141328751765533	0.141328751765533	-104.9609775	39.7594308	-104.9609775	39.7607018
-7512	6277	6278	0.0048613905607292	0.0048613905607292	-104.9609775	39.7607018	-104.9609792	39.7607455
-7513	6278	6279	0.138461653724603	0.138461653724603	-104.9609792	39.7607455	-104.9609873	39.7619907
-7514	6279	1163	0.137550674895164	0.137550674895164	-104.9609873	39.7619907	-104.9609775	39.7632277
-7515	1163	883	0.14127337175944	0.14127337175944	-104.9609775	39.7632277	-104.9609746	39.7644982
-7516	883	4468	0.137815416161984	0.137815416161984	-104.9609746	39.7644982	-104.9609786	39.7657376
-7517	4468	2790	0.135224582480649	0.135224582480649	-104.9609786	39.7657376	-104.9609746	39.7669537
-7518	2790	5258	0.130698751805084	0.130698751805084	-104.9609746	39.7669537	-104.9609775	39.7681291
-7519	5258	6280	0.127788689349157	0.127788689349157	-104.9609775	39.7681291	-104.9609549	39.7692782
-7521	6281	4149	0.293690516229792	0.293690516229792	-104.9607137	39.718346	-104.9607278	39.7209872
-7522	4149	4399	0.168839008279682	0.168839008279682	-104.9607278	39.7209872	-104.9607224	39.7225056
-7524	6202	6282	0.107543949920042	0.107543949920042	-104.961346	39.7809647	-104.9613313	39.7819318
-7525	6282	6283	0.203165579542053	0.203165579542053	-104.9613313	39.7819318	-104.9613399	39.7837589
-7526	6283	2881	0.158375292404745	0.158375292404745	-104.9613399	39.7837589	-104.961384	39.7851828
-7528	6284	6285	0.199406415880408	0.199406415880408	-105.0228039	39.7766253	-105.0228094	39.7784186
-7530	2831	1439	0.198717844078091	0.198717844078091	-105.0227922	39.780226	-105.0228009	39.7820131
-7531	1439	6286	0.198972452931936	0.198972452931936	-105.0228009	39.7820131	-105.0227972	39.7838025
-7533	4103	6046	0.129598634612641	0.129598634612641	-105.0227805	39.7844643	-105.0227863	39.7856298
-7534	6046	6287	0.200664408696912	0.200664408696912	-105.0227863	39.7856298	-105.0227969	39.7874344
-7535	6287	6288	0.407763176533057	0.407763176533057	-105.0227969	39.7874344	-105.0227915	39.7911015
-7536	3356	6289	0.17574244534878	0.17574244534878	-104.9339641	39.7162382	-104.9339422	39.7146578
-7537	6289	3103	0.174022554549137	0.174022554549137	-104.9339422	39.7146578	-104.9339765	39.713093
-7538	3103	6290	0.195576263268451	0.195576263268451	-104.9339765	39.713093	-104.9339457	39.7113343
-7539	6290	6291	0.0184164625226683	0.0184164625226683	-104.9339457	39.7113343	-104.9339286	39.7111692
-7543	5848	6293	0.0908806324614032	0.0908806324614032	-104.9339926	39.6911379	-104.9339516	39.6903212
-7544	6293	6294	0.111642131539399	0.111642131539399	-104.9339516	39.6903212	-104.9339602	39.6893172
-7546	6295	6296	0.199763041133193	0.199763041133193	-104.9337199	39.6893172	-104.9337113	39.6875207
-7547	6297	4228	0.205146518268072	0.205146518268072	-104.933893	39.698442	-104.933969	39.696598
-7548	4228	6298	0.220075142380819	0.220075142380819	-104.933969	39.696598	-104.934287	39.694634
-7549	6299	6300	0.269225278413762	0.269225278413762	-105.0158374	39.7910751	-105.0158404	39.7886539
-7550	6300	6301	0.135380699238895	0.135380699238895	-105.0158404	39.7886539	-105.0158347	39.7874364
-7551	6301	6037	0.201685647547083	0.201685647547083	-105.0158347	39.7874364	-105.0158387	39.7856226
-7552	6037	4092	0.180825512734332	0.180825512734332	-105.0158387	39.7856226	-105.0158347	39.7839964
-8788	5909	7005	0.202308283638507	0.202308283638507	-104.9316976	39.7492496	-104.931694	39.751069
-7555	1356	1434	0.0619921139139986	0.0619921139139986	-105.015824	39.7825504	-105.015828	39.7819929
-7556	1434	1416	0.0702533335118034	0.0702533335118034	-105.015828	39.7819929	-105.0158307	39.7813611
-7557	1416	2824	0.130534926760632	0.130534926760632	-105.0158307	39.7813611	-105.0158414	39.7801872
-7558	2824	2485	0.13649413612348	0.13649413612348	-105.0158414	39.7801872	-105.0158508	39.7789597
-7559	2485	6304	0.132600390611243	0.132600390611243	-105.0158508	39.7789597	-105.0158468	39.7777672
-7560	6304	6305	0.13375224687231	0.13375224687231	-105.0158468	39.7777672	-105.0158628	39.7765644
-7562	6293	6306	0.193932773048905	0.193932773048905	-104.9339516	39.6903212	-104.9316857	39.6902815
-7564	6307	4033	0.1068931298406	0.1068931298406	-105.0318135	39.6967219	-105.0318398	39.697683
-7566	6308	1505	0.201208565153675	0.201208565153675	-105.0320716	39.6967254	-105.0320802	39.6949159
-7567	1505	178	0.201696340498873	0.201696340498873	-105.0320802	39.6949159	-105.0320556	39.6931021
-7568	178	1706	0.202420430939935	0.202420430939935	-105.0320556	39.6931021	-105.0320475	39.6912817
-7569	1706	6310	0.205872571954156	0.205872571954156	-105.0320475	39.6912817	-105.0320287	39.6894303
-7571	1393	5861	0.176199480761084	0.176199480761084	-105.0324691	39.7165619	-105.0324691	39.7149773
-7573	1309	5328	0.243304763536767	0.243304763536767	-105.0324406	39.7133724	-105.0327094	39.7111941
-17643	524	9824	0.0585508481458027	0.0585508481458027	-104.9493835	39.780399	-104.9497096	39.7808621
-7575	6311	6312	0.480549704702292	0.480549704702292	-105.0324954	39.6894303	-105.0325311	39.6851087
-7576	4368	1449	0.194542255499986	0.194542255499986	-105.0015178	39.7057816	-105.0037914	39.7057442
-7577	1449	6313	0.208609985343506	0.208609985343506	-105.0037914	39.7057442	-105.006229	39.705797
-7578	6313	6314	0.103555170544593	0.103555170544593	-105.006229	39.705797	-105.0074307	39.7056848
-7579	6314	6315	0.0981349608621905	0.0981349608621905	-105.0074307	39.7056848	-105.0085636	39.7055461
-7581	3820	5895	0.101734690953305	0.101734690953305	-105.009791	39.7062461	-105.0109801	39.7062318
-7583	6316	6317	0.456743307850688	0.456743307850688	-105.0432381	39.7057328	-105.0485768	39.7057857
-7584	5896	1591	0.201196573887444	0.201196573887444	-105.0109828	39.7056561	-105.0133347	39.7056536
-7585	1591	1642	0.201704599280981	0.201704599280981	-105.0133347	39.7056536	-105.0156924	39.7056338
-7587	4303	6319	0.0895876341901528	0.0895876341901528	-105.0350499	39.705614	-105.036097	39.7056008
-7589	6320	5074	0.0881249654942257	0.0881249654942257	-105.0371184	39.7056206	-105.0381484	39.7056338
-7590	5074	6321	0.0822356991688935	0.0822356991688935	-105.0381484	39.7056338	-105.0391097	39.7056338
-7592	3098	3208	0.20139821402018	0.20139821402018	-104.9663374	39.7129121	-104.9663009	39.7111011
-7593	3208	6120	0.199810792778826	0.199810792778826	-104.9663009	39.7111011	-104.9663168	39.7093042
-7594	6120	1919	0.202180610053987	0.202180610053987	-104.9663168	39.7093042	-104.966335	39.707486
-7595	1919	6322	0.202387552164505	0.202387552164505	-104.966335	39.707486	-104.9663254	39.7056659
-7596	6322	3262	0.201452153939087	0.201452153939087	-104.9663254	39.7056659	-104.9663213	39.7038542
-7597	3262	6323	0.198460905873661	0.198460905873661	-104.9663213	39.7038542	-104.9663246	39.7020694
-7599	6325	6326	0.0490995020648654	0.0490995020648654	-104.9717416	39.7183547	-104.9722942	39.7184743
-7600	6326	6327	0.055368676730927	0.055368676730927	-104.9722942	39.7184743	-104.9729137	39.7186188
-7601	6327	6328	0.0309445801475025	0.0309445801475025	-104.9729137	39.7186188	-104.9732624	39.718693
-7602	6328	992	0.0695937269558986	0.0695937269558986	-104.9732624	39.718693	-104.974036	39.718887
-7603	992	5033	0.0562459052664965	0.0562459052664965	-104.974036	39.718887	-104.9746644	39.7190361
-8836	2977	657	0.0520837064464313	0.0520837064464313	-105.032261	39.7585166	-105.0322612	39.758985
-7604	5033	6329	0.0516777216994855	0.0516777216994855	-104.9746644	39.7190361	-104.9752418	39.719173
-7605	6329	5046	0.105372499364086	0.105372499364086	-104.9752418	39.719173	-104.9763833	39.7195295
-7606	5046	4160	0.118696493530277	0.118696493530277	-104.9763833	39.7195295	-104.977542	39.720117
-7607	4160	6330	0.136699581092316	0.136699581092316	-104.977542	39.720117	-104.9787889	39.7208861
-7608	6330	4974	0.128955324206818	0.128955324206818	-104.9787889	39.7208861	-104.9799651	39.7216117
-7609	4974	4766	0.151821196012923	0.151821196012923	-104.9799651	39.7216117	-104.9813252	39.7224891
-7610	4766	6331	0.118237006648706	0.118237006648706	-104.9813252	39.7224891	-104.9824024	39.7231556
-7611	6331	6332	0.150079343538278	0.150079343538278	-104.9824024	39.7231556	-104.9836195	39.7241279
-7612	6332	6333	0.165501031184984	0.165501031184984	-104.9836195	39.7241279	-104.9848045	39.7253046
-7613	6333	6334	0.0461738747625761	0.0461738747625761	-104.9848045	39.7253046	-104.9851351	39.7256329
-7614	6334	6335	0.133457305058149	0.133457305058149	-104.9851351	39.7256329	-104.9861535	39.7265423
-7615	6335	1212	0.134967826650912	0.134967826650912	-104.9861535	39.7265423	-104.9874175	39.7272691
-7617	2900	6336	0.106167707809224	0.106167707809224	-104.9733518	39.7582331	-104.9721098	39.7582313
-7618	6336	6337	0.104928236912142	0.104928236912142	-104.9721098	39.7582313	-104.9708823	39.7582295
-7619	6337	4735	0.104475212628964	0.104475212628964	-104.9708823	39.7582295	-104.9696601	39.7582276
-7620	4735	6338	0.102406513567036	0.102406513567036	-104.9696601	39.7582276	-104.9684621	39.758226
-7621	6338	6339	0.111236760215522	0.111236760215522	-104.9684621	39.758226	-104.9671608	39.7582241
-7622	6339	5400	0.102611714232847	0.102611714232847	-104.9671608	39.7582241	-104.9659604	39.7582223
-7623	5400	6340	0.108937307551118	0.108937307551118	-104.9659604	39.7582223	-104.964686	39.7582205
-7624	6340	3903	0.106714805368354	0.106714805368354	-104.964686	39.7582205	-104.9634376	39.7582187
-7625	3903	1040	0.101833845648583	0.101833845648583	-104.9634376	39.7582187	-104.9622463	39.7582169
-7626	1040	6276	0.108458622663871	0.108458622663871	-104.9622463	39.7582169	-104.9609775	39.7582151
-7627	6276	6341	0.106851583282394	0.106851583282394	-104.9609775	39.7582151	-104.9597275	39.7582133
-7628	6341	5005	0.0997823108241272	0.0997823108241272	-104.9597275	39.7582133	-104.9585602	39.7582115
-7629	5005	3326	0.104184561842385	0.104184561842385	-104.9585602	39.7582115	-104.9573414	39.7582098
-7630	3326	6343	0.103107525114489	0.103107525114489	-104.9573414	39.7582098	-104.9561352	39.758208
-7631	6343	6344	0.102577524667858	0.102577524667858	-104.9561352	39.758208	-104.9549352	39.7582063
-7632	6344	2077	0.109057202290834	0.109057202290834	-104.9549352	39.7582063	-104.9536594	39.7582089
-7633	2077	2674	0.105238001385814	0.105238001385814	-104.9536594	39.7582089	-104.9524283	39.7582028
-7634	2674	4124	0.102908082653388	0.102908082653388	-104.9524283	39.7582028	-104.9512246	39.7581873
-7635	4124	6345	0.111237019236159	0.111237019236159	-104.9512246	39.7581873	-104.9499239	39.7582178
-7636	6345	6346	0.0932071004983952	0.0932071004983952	-104.9499239	39.7582178	-104.9488336	39.7582075
-7637	6346	6347	0.101110239024215	0.101110239024215	-104.9488336	39.7582075	-104.9476508	39.7582147
-7638	6347	3472	0.0998858354760893	0.0998858354760893	-104.9476508	39.7582147	-104.9464826	39.7581939
-7639	3472	6024	0.100184077827119	0.100184077827119	-104.9464826	39.7581939	-104.9453106	39.7581922
-7641	3875	6348	0.0931831682605449	0.0931831682605449	-104.944148	39.7581905	-104.9430579	39.7581889
-7642	6348	851	0.00806942804368034	0.00806942804368034	-104.9430579	39.7581889	-104.9429635	39.7581888
-7644	6349	6350	0.122741608307903	0.122741608307903	-105.0059317	39.7547022	-105.0044986	39.7547701
-7646	6351	6352	0.0367221312616467	0.0367221312616467	-104.9499571	39.7092328	-104.9495279	39.7092395
-7648	6353	6352	0.031587926861642	0.031587926861642	-104.9495193	39.7089555	-104.9495279	39.7092395
-7649	6352	6353	0.031587926861642	0.031587926861642	-104.9495279	39.7092395	-104.9495193	39.7089555
-7651	4284	5406	0.209059343043956	0.209059343043956	-104.9683885	39.7728911	-104.9659423	39.7728915
-7652	5406	3139	0.106127827196287	0.106127827196287	-104.9659423	39.7728915	-104.9647005	39.7728917
-7653	3139	3924	0.0976499059560775	0.0976499059560775	-104.9647005	39.7728917	-104.9635579	39.7728918
-7654	3924	5060	0.353918950652385	0.353918950652385	-104.9635579	39.7728918	-104.9594167	39.7728924
-7655	5060	5012	0.0994873589954365	0.0994873589954365	-104.9594167	39.7728924	-104.9582526	39.7728926
-7658	6356	2071	0.094898000530225	0.094898000530225	-104.9541524	39.7728932	-104.953042	39.7728934
-7659	2071	2669	0.0951372963506741	0.0951372963506741	-104.953042	39.7728934	-104.9519288	39.7728936
-7660	2669	4139	0.0930605458860926	0.0930605458860926	-104.9519288	39.7728936	-104.9508399	39.7728937
-7661	4139	6357	0.0866508308410144	0.0866508308410144	-104.9508399	39.7728937	-104.949826	39.7728939
-7662	6357	6358	0.100153967379628	0.100153967379628	-104.949826	39.7728939	-104.9486541	39.7728941
-7663	6358	6359	0.094521960675225	0.094521960675225	-104.9486541	39.7728941	-104.9475481	39.7728942
-7664	6359	834	0.394334341459341	0.394334341459341	-104.9475481	39.7728942	-104.942934	39.7728949
-7665	834	871	0.00699086459728944	0.00699086459728944	-104.942934	39.7728949	-104.9428522	39.7728949
-7666	871	6360	0.0985643561678323	0.0985643561678323	-104.9428522	39.7728949	-104.9416989	39.7728951
-7667	6360	6361	0.0919153430634884	0.0919153430634884	-104.9416989	39.7728951	-104.9406234	39.7728953
-7668	6361	6362	0.0142210252134503	0.0142210252134503	-104.9406234	39.7728953	-104.940457	39.7728953
-7670	6363	6250	0.198277134301598	0.198277134301598	-105.0437617	39.7003774	-105.0437445	39.6985943
-7671	6250	6258	0.115286899945233	0.115286899945233	-105.0437445	39.6985943	-105.0437445	39.6975575
-7672	6258	6364	0.0878557774552784	0.0878557774552784	-105.0437445	39.6975575	-105.0437011	39.6967681
-7673	6364	1498	0.200867314778576	0.200867314778576	-105.0437011	39.6967681	-105.0437531	39.6949621
-7675	187	5877	0.162832287710312	0.162832287710312	-105.0437531	39.6931327	-105.0442509	39.6917193
-7676	5877	1716	0.0499429374304698	0.0499429374304698	-105.0442509	39.6917193	-105.0442424	39.6912702
-7678	6365	1582	0.142378532382676	0.142378532382676	-105.0442509	39.6894935	-105.0442642	39.6882131
-7679	1582	6366	1.28806099537571	1.28806099537571	-105.0442642	39.6882131	-105.0417039	39.6767981
-7680	6367	2271	0.093525872105216	0.093525872105216	-104.9316211	39.7280567	-104.9305276	39.7280436
-7681	2271	6368	0.0953526699152847	0.0953526699152847	-104.9305276	39.7280436	-104.9294128	39.7280596
-7682	6368	6369	0.0956103425754401	0.0956103425754401	-104.9294128	39.7280596	-104.9282948	39.7280565
-7683	6369	2130	0.0946975078442247	0.0946975078442247	-104.9282948	39.7280565	-104.9271876	39.7280433
-7684	2130	5981	0.0976635368625979	0.0976635368625979	-104.9271876	39.7280433	-104.9260461	39.7280697
-7685	5981	6370	0.0910203235542429	0.0910203235542429	-104.9260461	39.7280697	-104.9249818	39.7280631
-7686	6370	2335	0.0939706612325521	0.0939706612325521	-104.9249818	39.7280631	-104.9238831	39.7280763
-7687	2335	6371	1.7470149025737	1.7470149025737	-104.9238831	39.7280763	-104.9034546	39.7280769
-7688	96	3500	0.202527213410831	0.202527213410831	-104.9453991	39.7002071	-104.9453782	39.6983858
-7689	3500	6372	0.200485391157046	0.200485391157046	-104.9453782	39.6983858	-104.9453525	39.6965829
-7690	6372	6373	0.200744473183588	0.200744473183588	-104.9453525	39.6965829	-104.9454196	39.6947783
-7691	6373	6374	0.203425216522523	0.203425216522523	-104.9454196	39.6947783	-104.9453733	39.6929492
-7692	6374	261	0.363896677888795	0.363896677888795	-104.9453733	39.6929492	-104.9453693	39.6896766
-7693	261	6375	0.041137585532266	0.041137585532266	-104.9453693	39.6896766	-104.9453607	39.6893067
-7694	6375	6376	0.527231991542063	0.527231991542063	-104.9453607	39.6893067	-104.9453741	39.6845652
-8934	2865	7087	0.201874708309178	0.201874708309178	-104.9846471	39.7855801	-104.9846429	39.7873956
-7696	6377	3069	0.174367166483664	0.174367166483664	-104.9449725	39.7146388	-104.9449618	39.7130707
-7697	3069	6378	0.175688037406208	0.175688037406208	-104.9449618	39.7130707	-104.9449634	39.7114907
-7698	6378	6379	0.195293035214527	0.195293035214527	-104.9449634	39.7114907	-104.9449548	39.7097344
-7700	5015	6380	0.0917013339896307	0.0917013339896307	-104.9582016	39.7805126	-104.9592745	39.7805291
-7702	380	6381	0.0601450697094338	0.0601450697094338	-105.03278	39.74748	-105.0334738	39.7475695
-7703	6381	3398	0.0950953426294514	0.0950953426294514	-105.0334738	39.7475695	-105.0345861	39.7475697
-7704	3398	6384	0.0512135480319707	0.0512135480319707	-105.0345861	39.7475697	-105.0351851	39.7475652
-7705	6384	6385	0.0512477474787707	0.0512477474787707	-105.0351851	39.7475652	-105.0357845	39.7475607
-7706	6385	6386	0.0508150751685789	0.0508150751685789	-105.0357845	39.7475607	-105.0363788	39.7475676
-7707	6386	6387	0.0467877396177586	0.0467877396177586	-105.0363788	39.7475676	-105.036926	39.7475739
-7708	6387	6388	0.102738526459791	0.102738526459791	-105.036926	39.7475739	-105.0381277	39.7475739
-7709	6388	6389	0.0502022657375815	0.0502022657375815	-105.0381277	39.7475739	-105.0387149	39.7475739
-7710	6389	6390	0.0495952560526731	0.0495952560526731	-105.0387149	39.7475739	-105.039295	39.7475739
-7711	6390	6391	0.0506266673865361	0.0506266673865361	-105.039295	39.7475739	-105.0398871	39.7475806
-7712	6391	1111	0.0484464674507555	0.0484464674507555	-105.0398871	39.7475806	-105.0404537	39.7475871
-7714	4654	1272	0.131229439030854	0.131229439030854	-105.0189639	39.7475939	-105.0204988	39.7476034
-7715	1272	6392	0.0233060632854453	0.0233060632854453	-105.0204988	39.7476034	-105.0207714	39.7476023
-7716	6392	4560	0.111717062627726	0.111717062627726	-105.0207714	39.7476023	-105.0220781	39.7475968
-7717	4560	2711	0.115276038939543	0.115276038939543	-105.0220781	39.7475968	-105.0233999	39.7473921
-7718	2711	6393	0.157827401374253	0.157827401374253	-105.0233999	39.7473921	-105.0252309	39.747573
-7720	6394	6142	0.134287937529063	0.134287937529063	-105.0268144	39.7475701	-105.0283851	39.7475767
-7721	6142	4016	0.132933704994743	0.132933704994743	-105.0283851	39.7475767	-105.0299399	39.7475891
-7722	4016	6395	0.00906250528140326	0.00906250528140326	-105.0299399	39.7475891	-105.0300459	39.7475887
-7723	6395	382	0.124591902443133	0.124591902443133	-105.0300459	39.7475887	-105.0315032	39.7475841
-7725	5850	6396	0.00523272011597534	0.00523272011597534	-105.0022921	39.7147654	-105.0022548	39.7147281
-7726	6396	501	0.199511293598505	0.199511293598505	-105.0022548	39.7147281	-105.0014928	39.7130323
-7727	501	6397	0.217152349025227	0.217152349025227	-105.0014928	39.7130323	-105.0006291	39.7111959
-7728	6397	6398	0.36755359975324	0.36755359975324	-105.0006291	39.7111959	-104.9991941	39.7080802
-7730	3613	6399	0.21266860576331	0.21266860576331	-104.9293234	39.7702164	-104.9308332	39.7717367
-7732	6401	6402	0.038551456513769	0.038551456513769	-104.9719701	39.7702406	-104.9722075	39.7705354
-7733	6402	6403	0.01171446339475	0.01171446339475	-104.9722075	39.7705354	-104.9723255	39.770589
-7735	2909	6404	0.0724414530545414	0.0724414530545414	-104.9733496	39.764224	-104.973944	39.7646884
-7736	6404	6405	0.105070094163828	0.105070094163828	-104.973944	39.7646884	-104.9748213	39.7653503
-7737	6405	6174	0.106062498124406	0.106062498124406	-104.9748213	39.7653503	-104.9757035	39.7660211
-7738	6174	3312	0.104669820520163	0.104669820520163	-104.9757035	39.7660211	-104.9765745	39.7666828
-7739	3312	6406	0.105292804834109	0.105292804834109	-104.9765745	39.7666828	-104.9774556	39.7673446
-7741	5545	2415	0.0733757601851338	0.0733757601851338	-105.0422627	39.7521069	-105.0422764	39.7527667
-7743	5056	4299	0.0731858562049149	0.0731858562049149	-105.0422607	39.7532726	-105.0422855	39.7539305
-7745	5093	6407	0.0155546054802435	0.0155546054802435	-104.9901518	39.7836836	-104.990332	39.7836638
-7747	3914	4762	0.124500033165113	0.124500033165113	-104.9633401	39.7209669	-104.9640208	39.7219566
-7750	6409	5773	0.332202382721644	0.332202382721644	-104.9640263	39.7876087	-104.96707	39.7894676
-7752	6410	6411	0.0178672618817003	0.0178672618817003	-104.9686008	39.7903058	-104.9688032	39.7903462
-7754	6409	6412	0.0520862922994697	0.0520862922994697	-104.9640263	39.7876087	-104.963535	39.787886
-7756	6231	6413	0.198055274582402	0.198055274582402	-105.0174795	39.7257362	-105.0175186	39.7275171
-7758	6414	6415	0.189433856898839	0.189433856898839	-105.0169053	39.7202585	-105.0168624	39.7185552
-7759	6416	4038	0.0834324728266378	0.0834324728266378	-105.0172314	39.7170829	-105.0175833	39.7177827
-7761	6417	4521	0.134579982196382	0.134579982196382	-105.0174065	39.7620125	-105.0174118	39.7632228
-7762	4521	5240	0.13502405245006	0.13502405245006	-105.0174118	39.7632228	-105.0174132	39.7644371
-7763	5240	6418	0.13412336654487	0.13412336654487	-105.0174132	39.7644371	-105.0174145	39.7656433
-7764	6418	6419	0.133878890575632	0.133878890575632	-105.0174145	39.7656433	-105.0174118	39.7668473
-7765	6419	1678	0.134913237668999	0.134913237668999	-105.0174118	39.7668473	-105.0174158	39.7680606
-7766	1678	6421	0.134568146094945	0.134568146094945	-105.0174158	39.7680606	-105.0174145	39.7692708
-7767	6421	2457	0.135266114631303	0.135266114631303	-105.0174145	39.7692708	-105.0174746	39.7704864
-7768	2457	3225	0.138075006668938	0.138075006668938	-105.0174746	39.7704864	-105.0174873	39.7717281
-7769	3225	5745	0.134195295626898	0.134195295626898	-105.0174873	39.7717281	-105.0175012	39.7729349
-7770	5745	5522	0.132936679979251	0.132936679979251	-105.0175012	39.7729349	-105.0175119	39.7741304
-7771	5522	6422	0.135417328130375	0.135417328130375	-105.0175119	39.7741304	-105.0175243	39.7753482
-7772	6422	6423	0.137879539043021	0.137879539043021	-105.0175243	39.7753482	-105.0174223	39.7765857
-7776	6425	6426	0.131565838315989	0.131565838315989	-105.0170361	39.7765857	-105.0170359	39.7777689
-9014	7117	7118	0.0653478278832396	0.0653478278832396	-104.9968556	39.7354212	-104.9975929	39.7352666
-7778	2486	2825	0.134659485620958	0.134659485620958	-105.0170359	39.7789761	-105.0169815	39.7801864
-7779	2825	1435	0.20171777298344	0.20171777298344	-105.0169815	39.7801864	-105.0170158	39.7820003
-7780	1435	6427	0.150355567395556	0.150355567395556	-105.0170158	39.7820003	-105.01696	39.7833518
-7782	4094	6039	0.18817564016619	0.18817564016619	-105.0169973	39.7839311	-105.0170022	39.7856234
-7783	6039	6428	0.201342188276825	0.201342188276825	-105.0170022	39.7856234	-105.016993	39.7874341
-7784	6428	6429	0.404705192201308	0.404705192201308	-105.016993	39.7874341	-105.0169891	39.7910737
-7785	6430	2403	0.202864038761159	0.202864038761159	-105.0175669	39.7512092	-105.017566	39.7530336
-7786	2403	6431	0.0331723473682169	0.0331723473682169	-105.017566	39.7530336	-105.0178463	39.7532399
-7787	6431	6432	0.176045966759895	0.176045966759895	-105.0178463	39.7532399	-105.0177887	39.7548225
-7789	6433	6434	0.0826623084672878	0.0826623084672878	-105.0178088	39.7553019	-105.0178088	39.7560453
-7790	6434	6435	0.102944521823956	0.102944521823956	-105.0178088	39.7560453	-105.0178061	39.7569711
-7791	6435	6436	0.00978588535341196	0.00978588535341196	-105.0178061	39.7569711	-105.0178047	39.7570591
-7793	6131	5859	0.176922247784819	0.176922247784819	-105.0287757	39.7165547	-105.0287757	39.7149636
-7794	5859	1306	0.176947022701008	0.176947022701008	-105.0287757	39.7149636	-105.0288014	39.7133724
-7795	1306	6437	0.245961882429388	0.245961882429388	-105.0288014	39.7133724	-105.0287757	39.7111605
-7797	4379	175	0.0949912703955897	0.0949912703955897	-105.0284495	39.6939582	-105.0284721	39.6931041
-7799	6438	6439	0.118265132463411	0.118265132463411	-105.0288833	39.6876517	-105.0288576	39.6887151
-7800	426	6440	0.136068759302944	0.136068759302944	-105.0252144	39.7427283	-105.0268058	39.7427195
-7801	6440	6140	0.13326442219696	0.13326442219696	-105.0268058	39.7427195	-105.0283644	39.7427283
-7802	6140	4012	0.134504046499466	0.134504046499466	-105.0283644	39.7427283	-105.0299375	39.742737
-7803	4012	6441	0.132430300578831	0.132430300578831	-105.0299375	39.742737	-105.0314863	39.7427496
-7804	6441	6442	0.13523718007968	0.13523718007968	-105.0314863	39.7427496	-105.0330679	39.7427349
-7805	6442	3383	0.131020837855346	0.131020837855346	-105.0330679	39.7427349	-105.0346003	39.7427332
-7807	6443	5593	0.101318153214668	0.101318153214668	-105.0428338	39.7427355	-105.0440188	39.7427376
-7809	5592	6444	0.0976166388579658	0.0976166388579658	-105.0440283	39.7421749	-105.04517	39.7421763
-7810	6444	6445	0.491425863708822	0.491425863708822	-105.04517	39.7421763	-105.0509176	39.7421724
-7814	2400	6448	0.282522157819803	0.282522157819803	-104.9404255	39.7738517	-104.9389896	39.7761403
-7817	2813	6450	0.086833012009872	0.086833012009872	-104.9913173	39.7752191	-104.9923333	39.7752102
-7819	6451	6452	0.0978256934477298	0.0978256934477298	-104.9982284	39.7754911	-104.9993731	39.7754907
-7820	6452	3935	0.102019422492613	0.102019422492613	-104.9993731	39.7754907	-105.0005661	39.7754577
-7821	3935	5623	0.0992172562512715	0.0992172562512715	-105.0005661	39.7754577	-105.0017268	39.7754774
-7823	6453	4202	0.100516365940058	0.100516365940058	-105.006451	39.775346	-105.0076269	39.7753262
-7824	4202	1069	0.100502974298411	0.100502974298411	-105.0076269	39.7753262	-105.0088028	39.7753394
-7825	1069	2505	0.106288157429336	0.106288157429336	-105.0088028	39.7753394	-105.0100464	39.7753527
-7827	6454	1236	0.0948029547901802	0.0948029547901802	-105.0112167	39.7753455	-105.012326	39.7753515
-7828	1236	4810	0.0999111243280575	0.0999111243280575	-105.012326	39.7753515	-105.0134951	39.7753509
-7829	4810	2177	0.101346858256007	0.101346858256007	-105.0134951	39.7753509	-105.014681	39.7753502
-7830	2177	595	0.0594373309242362	0.0594373309242362	-105.014681	39.7753502	-105.0153765	39.7753499
-7831	595	6456	0.0424911721972826	0.0424911721972826	-105.0153765	39.7753499	-105.0158736	39.775342
-7833	349	6422	0.0713248739505624	0.0713248739505624	-105.0166897	39.7753492	-105.0175243	39.7753482
-7834	6422	4630	0.121079515215535	0.121079515215535	-105.0175243	39.7753482	-105.0189411	39.7753479
-7836	1259	376	0.0755636106904258	0.0755636106904258	-105.0204832	39.7753471	-105.0213674	39.7753467
-7837	376	4545	0.0608816123146845	0.0608816123146845	-105.0213674	39.7753467	-105.0220798	39.7753463
-7838	4545	2701	0.135701731606855	0.135701731606855	-105.0220798	39.7753463	-105.0236677	39.7753454
-7839	2701	6457	0.126994454068005	0.126994454068005	-105.0236677	39.7753454	-105.0251537	39.7753502
-7841	6458	6459	0.0454788769710747	0.0454788769710747	-105.0375697	39.7756981	-105.0381018	39.7756915
-7842	6459	6460	0.0496400956308302	0.0496400956308302	-105.0381018	39.7756915	-105.0386826	39.775685
-7843	6460	6461	0.0515972381206	0.0515972381206	-105.0386826	39.775685	-105.0392863	39.7756783
-7845	6462	6463	0.0483118204156802	0.0483118204156802	-105.0392949	39.7752627	-105.0398602	39.7752659
-7846	6463	1134	0.0499784066419261	0.0499784066419261	-105.0398602	39.7752659	-105.040445	39.7752693
-7847	1134	6464	0.0497410465605515	0.0497410465605515	-105.040445	39.7752693	-105.041027	39.7752745
-7849	6465	6466	0.0544130408961272	0.0544130408961272	-105.0416343	39.775288	-105.042271	39.7752905
-7850	6466	3850	0.0472855484942146	0.0472855484942146	-105.042271	39.7752905	-105.0428243	39.7752926
-7851	3850	6467	0.0501739162143614	0.0501739162143614	-105.0428243	39.7752926	-105.0434114	39.7752908
-7852	6467	5576	0.0486954285842123	0.0486954285842123	-105.0434114	39.7752908	-105.0439812	39.7752891
-7854	6468	4673	0.110758148850492	0.110758148850492	-104.9923387	39.7755028	-104.9936347	39.7754962
-7855	4673	6469	0.101963932591745	0.101963932591745	-104.9936347	39.7754962	-104.9948277	39.7755094
-7857	5575	6471	0.0065719182159958	0.0065719182159958	-105.044007	39.7747614	-105.0440839	39.7747614
-7858	6471	6472	0.0420124186537075	0.0420124186537075	-105.0440839	39.7747614	-105.0445755	39.7747614
-7859	6472	6473	0.0412603655949121	0.0412603655949121	-105.0445755	39.7747614	-105.0450583	39.7747614
-7860	6473	6474	0.00681975388326533	0.00681975388326533	-105.0450583	39.7747614	-105.0451381	39.7747614
-7862	6476	3433	0.101986471383689	0.101986471383689	-105.0333983	39.7749593	-105.0345914	39.7749791
-7864	6477	6478	0.14533158628719	0.14533158628719	-104.9406153	39.7461001	-104.9389155	39.7461112
-7865	6478	6479	0.146043976986052	0.146043976986052	-104.9389155	39.7461112	-104.9372075	39.746131
-7866	6479	2014	0.145258231311968	0.145258231311968	-104.9372075	39.746131	-104.9355085	39.7461282
-7867	2014	6480	0.148541120069898	0.148541120069898	-104.9355085	39.7461282	-104.9337711	39.7461262
-7868	6480	6481	0.146497737165933	0.146497737165933	-104.9337711	39.7461262	-104.9320576	39.7461244
-7870	6482	6483	0.108282286689265	0.108282286689265	-104.9873838	39.7461813	-104.9861174	39.7461946
-7871	6483	6484	0.108491401341724	0.108491401341724	-104.9861174	39.7461946	-104.9848486	39.7462103
-7873	6485	6486	0.107588206878742	0.107588206878742	-104.9835697	39.7461971	-104.9823113	39.7461969
-7874	6486	6487	0.108152480667507	0.108152480667507	-104.9823113	39.7461969	-104.9810463	39.7461971
-7875	6487	6488	0.101444382501879	0.101444382501879	-104.9810463	39.7461971	-104.9798598	39.7461897
-7876	6488	6489	0.0964116258051976	0.0964116258051976	-104.9798598	39.7461897	-104.9787322	39.7461798
-7877	6489	6490	0.100996661509111	0.100996661509111	-104.9787322	39.7461798	-104.9775509	39.7461815
-7878	6490	6491	0.0875395650093709	0.0875395650093709	-104.9775509	39.7461815	-104.976527	39.74618
-7879	6491	5045	0.0321137501610987	0.0321137501610987	-104.976527	39.74618	-104.9761515	39.7461728
-7880	5045	6492	0.117702359393688	0.117702359393688	-104.9761515	39.7461728	-104.9747749	39.7461601
-7882	6493	6494	0.102121868544675	0.102121868544675	-104.968414	39.7460843	-104.9672196	39.746075
-7885	5423	6497	0.104998299985498	0.104998299985498	-104.9659758	39.7460698	-104.9647477	39.7460671
-7887	6498	2276	0.0954001386196214	0.0954001386196214	-104.9320748	39.7455833	-104.930959	39.7455899
-7888	2276	3599	0.06824353272523	0.06824353272523	-104.930959	39.7455899	-104.9301608	39.7455899
-7889	3599	6499	0.0293198911712676	0.0293198911712676	-104.9301608	39.7455899	-104.9298179	39.7455937
-7890	6499	6500	0.100538255640661	0.100538255640661	-104.9298179	39.7455937	-104.928642	39.7456002
-7891	6500	5163	0.0991059325809468	0.0991059325809468	-104.928642	39.7456002	-104.9274829	39.7455899
-7892	5163	5160	0.0380087655441681	0.0380087655441681	-104.9274829	39.7455899	-104.9270451	39.7456493
-7893	5160	5991	0.104706554354607	0.104706554354607	-104.9270451	39.7456493	-104.9258205	39.7456382
-7894	5991	6501	0.100402260808534	0.100402260808534	-104.9258205	39.7456382	-104.9246462	39.7456457
-7895	6501	6502	1.04365943145138	1.04365943145138	-104.9246462	39.7456457	-104.9124392	39.7456596
-7898	435	6505	0.0386263503887606	0.0386263503887606	-104.9400813	39.7837417	-104.9400719	39.7833944
-7899	6505	335	0.101999106210783	0.101999106210783	-104.9400719	39.7833944	-104.9400719	39.7824771
-18520	9719	10306	0.125645609854682	0.125645609854682	-105.0302877	39.7369493	-105.0316869	39.7366042
-7901	6506	6507	1.29783680025226	1.29783680025226	-104.9094652	39.7786813	-104.924642	39.7791151
-7902	6507	5983	0.103637474886707	0.103637474886707	-104.924642	39.7791151	-104.9258169	39.7793462
-7903	5983	2101	0.103292266259067	0.103292266259067	-104.9258169	39.7793462	-104.9269881	39.7795759
-9126	1424	7178	0.131577423131136	0.131577423131136	-105.0380823	39.7820859	-105.0380864	39.7832692
-7904	2101	6508	0.248902894245049	0.248902894245049	-104.9269881	39.7795759	-104.9298124	39.7801232
-7906	6509	6510	0.360508984578831	0.360508984578831	-104.9400658	39.7910048	-104.9405839	39.7877872
-7907	6510	6511	0.0349379067210739	0.0349379067210739	-104.9405839	39.7877872	-104.940586	39.787473
-7909	6512	6513	0.304262851034051	0.304262851034051	-104.9405864	39.7865077	-104.9405902	39.7837714
-7910	6513	6198	0.252538456966519	0.252538456966519	-104.9405902	39.7837714	-104.9406408	39.7815006
-7911	6198	576	0.0366939406022336	0.0366939406022336	-104.9406408	39.7815006	-104.940659	39.7811709
-7912	576	6515	0.0946945974761285	0.0946945974761285	-104.940659	39.7811709	-104.9407009	39.7803199
-7915	89	3525	0.202675004351493	0.202675004351493	-104.9580983	39.7002217	-104.9580991	39.698399
-7916	3525	6516	0.201208326437589	0.201208326437589	-104.9580991	39.698399	-104.9581069	39.6965895
-7917	6516	6517	0.125720317267139	0.125720317267139	-104.9581069	39.6965895	-104.9581176	39.6954589
-7919	6518	6519	0.200829668984099	0.200829668984099	-104.9581241	39.6947734	-104.9581188	39.6929673
-7920	6519	5832	0.202502182884777	0.202502182884777	-104.9581188	39.6929673	-104.958102	39.6911462
-7921	5832	6520	0.201241567556278	0.201241567556278	-104.958102	39.6911462	-104.9581278	39.6893365
-7922	6520	6521	0.396923547399649	0.396923547399649	-104.9581278	39.6893365	-104.957636	39.685787
-7923	6522	6523	0.133027344486413	0.133027344486413	-104.982762	39.6978313	-104.9817185	39.6969444
-7924	6523	4230	0.0509058477475031	0.0509058477475031	-104.9817185	39.6969444	-104.9812906	39.6966263
-7925	4230	3627	0.095634183764131	0.095634183764131	-104.9812906	39.6966263	-104.9805353	39.6959923
-7926	3627	1795	0.17402508350424	0.17402508350424	-104.9805353	39.6959923	-104.9792579	39.6947744
-7928	6524	4175	0.0888021060703878	0.0888021060703878	-104.9782122	39.6938342	-104.9775465	39.6932215
-17651	395	780	0.411550362143881	0.411550362143881	-104.9367017	39.7800737	-104.9318858	39.7800449
-7930	6525	1780	0.0441669339202922	0.0441669339202922	-104.9772938	39.6929888	-104.9769419	39.6926982
-7931	1780	4371	0.0730695211007641	0.0730695211007641	-104.9769419	39.6926982	-104.976372	39.6922088
-7932	4371	6527	0.0615136660388587	0.0615136660388587	-104.976372	39.6922088	-104.9759135	39.6917827
-7933	6527	365	0.0331373286455635	0.0331373286455635	-104.9759135	39.6917827	-104.9756534	39.6915619
-7935	6528	6529	0.918393000112345	0.918393000112345	-104.9593753	39.6828563	-104.9687115	39.6869299
-7936	6529	6530	0.220602612202271	0.220602612202271	-104.9687115	39.6869299	-104.9709294	39.6879413
-7938	6531	6533	0.0857049610334614	0.0857049610334614	-104.9734286	39.6890388	-104.9743231	39.6893856
-7940	5175	3090	0.40371590303619	0.40371590303619	-104.9757389	39.7165269	-104.9757316	39.7128962
-7941	3090	3201	0.197838998920199	0.197838998920199	-104.9757316	39.7128962	-104.9757389	39.711117
-7943	6407	4688	0.196571833896643	0.196571833896643	-104.990332	39.7836638	-104.9926323	39.7836836
-7944	4688	4940	0.140125445900248	0.140125445900248	-104.9926323	39.7836836	-104.9942716	39.7836506
-7946	6170	5019	0.102773469761832	0.102773469761832	-104.9594375	39.7241351	-104.9582358	39.7241351
-7947	5019	3351	0.103514032973499	0.103514032973499	-104.9582358	39.7241351	-104.9570255	39.7241259
-7948	3351	6534	0.103149871890818	0.103149871890818	-104.9570255	39.7241259	-104.9558194	39.7241271
-7949	6534	6535	0.102775789327764	0.102775789327764	-104.9558194	39.7241271	-104.9546177	39.7241333
-9173	5349	5392	0.0859339245649361	0.0859339245649361	-104.9274952	39.692974	-104.926491	39.6929872
-7950	6535	2060	0.103192691678964	0.103192691678964	-104.9546177	39.7241333	-104.9534111	39.7241317
-7951	2060	2646	0.101884046964041	0.101884046964041	-104.9534111	39.7241317	-104.9522198	39.7241312
-7952	2646	4112	0.105519033634909	0.105519033634909	-104.9522198	39.7241312	-104.950986	39.7241333
-7953	4112	6536	0.103005071327601	0.103005071327601	-104.950986	39.7241333	-104.9497817	39.7241209
-7954	6536	6537	0.102995851811127	0.102995851811127	-104.9497817	39.7241209	-104.9485774	39.7241209
-7955	6537	6539	0.1029998815793	0.1029998815793	-104.9485774	39.7241209	-104.9473731	39.7241291
-7956	6539	3453	0.102546625331303	0.102546625331303	-104.9473731	39.7241291	-104.9461741	39.7241209
-7958	6015	3883	0.103459903316916	0.103459903316916	-104.9449591	39.7241168	-104.9437494	39.7241229
-7959	3883	846	0.104834602248929	0.104834602248929	-104.9437494	39.7241229	-104.9425236	39.7241229
-7960	846	6540	0.101388253991195	0.101388253991195	-104.9425236	39.7241229	-104.9413381	39.7241209
-7961	6540	6541	0.0479102302548626	0.0479102302548626	-104.9413381	39.7241209	-104.9407779	39.7241206
-7963	988	6542	0.0976255225844962	0.0976255225844962	-104.9740667	39.7237385	-104.9729252	39.7237385
-7964	6542	6543	0.0510763365802728	0.0510763365802728	-104.9729252	39.7237385	-104.9723281	39.7237476
-7966	6544	2318	0.0507276043625414	0.0507276043625414	-104.9717626	39.7237562	-104.9711696	39.7237463
-7967	2318	5114	0.0505908057304328	0.0505908057304328	-104.9711696	39.7237463	-104.9705782	39.7237364
-7968	5114	445	0.0485658434846568	0.0485658434846568	-104.9705782	39.7237364	-104.9700104	39.7237429
-7969	445	4713	0.0498146803357513	0.0498146803357513	-104.9700104	39.7237429	-104.969428	39.7237496
-7970	4713	6546	0.0983637452954902	0.0983637452954902	-104.969428	39.7237496	-104.9682779	39.7237562
-7971	6546	6547	0.0998347883215936	0.0998347883215936	-104.9682779	39.7237562	-104.9671106	39.7237629
-7973	5411	3144	0.088816521791746	0.088816521791746	-104.9658231	39.7237695	-104.9647846	39.7237695
-7974	3144	3916	0.112464236744585	0.112464236744585	-104.9647846	39.7237695	-104.9634696	39.7237721
-7976	6332	6548	0.108272865647673	0.108272865647673	-104.9836195	39.7241279	-104.9823535	39.7241259
-7977	6548	3156	0.104441457482765	0.104441457482765	-104.9823535	39.7241259	-104.9811324	39.7241137
-7978	3156	4975	0.102775440582403	0.102775440582403	-104.9811324	39.7241137	-104.9799308	39.7241005
-7979	4975	6549	0.100365138716245	0.100365138716245	-104.9799308	39.7241005	-104.9787573	39.7240931
-7980	6549	6550	0.102792800397101	0.102792800397101	-104.9787573	39.7240931	-104.9775557	39.7240716
-7982	6526	5047	0.0492847670519182	0.0492847670519182	-104.9769714	39.7240796	-104.9763952	39.7240866
-7983	5047	6551	0.0975745067522553	0.0975745067522553	-104.9763952	39.7240866	-104.9752545	39.7240698
-17653	9285	10141	0.0935043743671756	0.0935043743671756	-104.9695286	39.7796372	-104.9684346	39.7796533
-7984	6551	5065	0.0520838428726065	0.0520838428726065	-104.9752545	39.7240698	-104.9746455	39.7240692
-7985	5065	987	0.0487655351272014	0.0487655351272014	-104.9746455	39.7240692	-104.9740753	39.7240686
-7987	6552	6553	0.11141163822183	0.11141163822183	-104.9406129	39.7243416	-104.9393102	39.724345
-7988	6553	6554	0.0931288050453943	0.0931288050453943	-104.9393102	39.724345	-104.9382214	39.724358
-7989	6554	6555	0.0954267012259227	0.0954267012259227	-104.9382214	39.724358	-104.9371056	39.724358
-7990	6555	6556	0.0932230978560399	0.0932230978560399	-104.9371056	39.724358	-104.9360156	39.7243514
-7991	6556	2018	0.096637647678534	0.096637647678534	-104.9360156	39.7243514	-104.9348857	39.7243603
-7992	2018	2008	0.0302895913994428	0.0302895913994428	-104.9348857	39.7243603	-104.9345317	39.7243519
-7993	2008	6557	0.0614415106208342	0.0614415106208342	-104.9345317	39.7243519	-104.9338133	39.7243478
-7995	2764	6558	0.0940583318372542	0.0940583318372542	-104.9327137	39.724358	-104.9316139	39.7243581
-7996	6558	2268	0.0933570415002435	0.0933570415002435	-104.9316139	39.7243581	-104.9305223	39.7243581
-7998	5192	6559	0.0436786412585742	0.0436786412585742	-104.9874942	39.724123	-104.9869835	39.7241266
-7999	6559	6560	0.0106994466158069	0.0106994466158069	-104.9869835	39.7241266	-104.9868584	39.7241275
-8002	6562	6563	0.0505000952437127	0.0505000952437127	-104.9856207	39.7241273	-104.9850303	39.7241197
-8004	3018	6564	0.0487830282291943	0.0487830282291943	-104.9780672	39.7547969	-104.9784697	39.7551079
-8005	6564	4383	0.0508423763728808	0.0508423763728808	-104.9784697	39.7551079	-104.9788891	39.7554321
-8006	4383	6565	0.0576100244421376	0.0576100244421376	-104.9788891	39.7554321	-104.9793644	39.7557994
-8008	6566	6567	0.00412306976586438	0.00412306976586438	-104.9797454	39.7560938	-104.9797794	39.7561201
-8009	6567	6568	0.0539582974681531	0.0539582974681531	-104.9797794	39.7561201	-104.9802246	39.7564641
-8010	6568	6569	0.0519961096093482	0.0519961096093482	-104.9802246	39.7564641	-104.9806536	39.7567956
-8011	6569	6570	0.0542246799430147	0.0542246799430147	-104.9806536	39.7567956	-104.981101	39.7571413
-8012	6570	6571	0.0518803862854092	0.0518803862854092	-104.981101	39.7571413	-104.981529	39.7574721
-17654	10141	10140	0.10337885268614	0.10337885268614	-104.9684346	39.7796533	-104.967225	39.7796681
-8013	6571	6572	0.0555098728995741	0.0555098728995741	-104.981529	39.7574721	-104.981987	39.757826
-8014	6572	6573	0.0518861583127315	0.0518861583127315	-104.981987	39.757826	-104.9824151	39.7581568
-8015	6573	6574	0.0518860343451018	0.0518860343451018	-104.9824151	39.7581568	-104.9828432	39.7584876
-8016	6574	6575	0.0508332520538339	0.0508332520538339	-104.9828432	39.7584876	-104.9832626	39.7588117
-8017	6575	6576	0.0544506518702307	0.0544506518702307	-104.9832626	39.7588117	-104.9837118	39.7591589
-8018	6576	6176	0.0529383120108553	0.0529383120108553	-104.9837118	39.7591589	-104.9841486	39.7594964
-8019	6176	6577	0.0529043310628525	0.0529043310628525	-104.9841486	39.7594964	-104.9845851	39.7598337
-8020	6577	3307	0.0513720664630444	0.0513720664630444	-104.9845851	39.7598337	-104.985009	39.7601612
-8021	3307	6578	0.0555027664653656	0.0555027664653656	-104.985009	39.7601612	-104.9854669	39.7605151
-8022	6578	6579	0.0497858933197237	0.0497858933197237	-104.9854669	39.7605151	-104.9858777	39.7608325
-8026	916	6582	0.0644004913493865	0.0644004913493865	-104.9874133	39.7320545	-104.9881664	39.732053
-8027	6582	6583	0.0568408799781512	0.0568408799781512	-104.9881664	39.732053	-104.9888311	39.7320532
-8028	6583	6584	0.122686442934717	0.122686442934717	-104.9888311	39.7320532	-104.9902658	39.7320547
-8029	6584	6585	0.119086225858405	0.119086225858405	-104.9902658	39.7320547	-104.9916584	39.7320541
-8031	4637	6586	0.0681807162053014	0.0681807162053014	-105.0198922	39.7331309	-105.0206647	39.7329791
-8032	6586	4550	0.0899357767109733	0.0899357767109733	-105.0206647	39.7329791	-105.0217163	39.7329917
-8033	4550	6587	0.293817867332518	0.293817867332518	-105.0217163	39.7329917	-105.0251522	39.7329752
-8034	6587	6588	0.104136881172081	0.104136881172081	-105.0251522	39.7329752	-105.0263693	39.7329435
-8035	6588	6589	0.0983651040648428	0.0983651040648428	-105.0263693	39.7329435	-105.0275196	39.7329448
-8036	6589	6129	0.0990923096855932	0.0990923096855932	-105.0275196	39.7329448	-105.0286784	39.7329421
-8037	6129	3972	0.0982639550962464	0.0982639550962464	-105.0286784	39.7329421	-105.0298275	39.7329471
-8038	3972	6590	0.099057650475641	0.099057650475641	-105.0298275	39.7329471	-105.0309859	39.7329468
-17935	10221	8779	0.0167456719913715	0.0167456719913715	-104.9872787	39.7248713	-104.9874745	39.7248723
-8039	6590	1407	0.099982611141039	0.099982611141039	-105.0309859	39.7329468	-105.032155	39.7329341
-8040	1407	6591	0.096574089288832	0.096574089288832	-105.032155	39.7329341	-105.0332843	39.7329428
-8042	5218	3376	0.0125708011673062	0.0125708011673062	-105.0344966	39.7329537	-105.0346426	39.7329669
-8043	3376	3397	0.0411038350876113	0.0411038350876113	-105.0346426	39.7329669	-105.0351232	39.7329603
-8044	3397	6592	0.0474630685655207	0.0474630685655207	-105.0351232	39.7329603	-105.0356782	39.7329656
-8045	6592	5717	0.0112629167716475	0.0112629167716475	-105.0356782	39.7329656	-105.0358099	39.7329669
-8046	5717	5711	0.0353931291626462	0.0353931291626462	-105.0358099	39.7329669	-105.0362237	39.7329601
-8049	6594	6595	0.0372589458613009	0.0372589458613009	-105.0373216	39.7329718	-105.0377569	39.7329864
-8051	6596	6597	0.0491446235593822	0.0491446235593822	-104.996445	39.7320969	-104.9970197	39.732097
-8052	6597	6598	0.0512739101828601	0.0512739101828601	-104.9970197	39.732097	-104.9976193	39.7320971
-8053	6598	6599	0.0445968134228137	0.0445968134228137	-104.9976193	39.7320971	-104.9981408	39.7320938
-8054	6599	6600	0.0456401369039379	0.0456401369039379	-104.9981408	39.7320938	-104.9986745	39.7320904
-8055	6600	252	0.0644261415780049	0.0644261415780049	-104.9986745	39.7320904	-104.9994279	39.7320888
-8056	252	3949	0.0630622102110069	0.0630622102110069	-104.9994279	39.7320888	-105.0001653	39.7320956
-8057	3949	6601	0.0624388506180743	0.0624388506180743	-105.0001653	39.7320956	-105.0008954	39.7320882
-8058	6601	5610	0.057495014751868	0.057495014751868	-105.0008954	39.7320882	-105.0015677	39.7320945
-8059	5610	6602	0.0530621910173341	0.0530621910173341	-105.0015677	39.7320945	-105.0021882	39.7320975
-8060	6602	3731	0.0543021802328704	0.0543021802328704	-105.0021882	39.7320975	-105.0028232	39.7321006
-8061	3731	6603	0.107126213030051	0.107126213030051	-105.0028232	39.7321006	-105.0040758	39.7320862
-8062	6603	4486	0.0992014153017681	0.0992014153017681	-105.0040758	39.7320862	-105.0052345	39.7321295
-8064	302	396	0.456543205648827	0.456543205648827	-104.939982	39.7790462	-104.9347437	39.7798532
-8065	396	6604	0.263692963912388	0.263692963912388	-104.9347437	39.7798532	-104.9316605	39.7797563
-8067	2108	5986	0.103617400145952	0.103617400145952	-104.9269854	39.7788565	-104.9258093	39.7786298
-8068	5986	6605	0.103377873268697	0.103377873268697	-104.9258093	39.7786298	-104.9246358	39.778404
-9343	7304	2051	0.0535709121596095	0.0535709121596095	-104.9680922	39.7020547	-104.9674661	39.7020628
-8070	4763	6169	0.176859243925992	0.176859243925992	-104.9601753	39.7225386	-104.9601619	39.7241291
-8123	6640	6641	0.17629957299909	0.17629957299909	-104.998563	39.7193532	-104.9985621	39.7209387
-8071	6169	6260	0.145538243855646	0.145538243855646	-104.9601619	39.7241291	-104.9613314	39.7250799
-8072	6260	3917	0.186355414418251	0.186355414418251	-104.9613314	39.7250799	-104.963416	39.7245919
-8075	6608	6609	0.216668843775513	0.216668843775513	-104.9221011	39.7367646	-104.9246118	39.7365015
-8076	6609	5988	0.0945207273969085	0.0945207273969085	-104.9246118	39.7365015	-104.9257168	39.7364786
-8077	5988	2122	0.100941576479339	0.100941576479339	-104.9257168	39.7364786	-104.9268972	39.7364673
-8078	2122	6610	0.0983635555045419	0.0983635555045419	-104.9268972	39.7364673	-104.9280463	39.7365084
-8079	6610	6611	0.0970315915473971	0.0970315915473971	-104.9280463	39.7365084	-104.9291809	39.7364935
-8081	6612	6613	0.0935811526066721	0.0935811526066721	-104.9303837	39.7364879	-104.9314781	39.7364838
-8082	6613	2749	0.0990634268639465	0.0990634268639465	-104.9314781	39.7364838	-104.9326365	39.736497
-8083	2749	6614	0.105679418235948	0.105679418235948	-104.9326365	39.736497	-104.9338724	39.736497
-8085	6615	6616	0.101635566171867	0.101635566171867	-104.9349711	39.7364838	-104.9361597	39.7364871
-8086	6616	6617	0.0962607674133666	0.0962607674133666	-104.9361597	39.7364871	-104.9372854	39.7364789
-8087	6617	6618	0.0951534169408166	0.0951534169408166	-104.9372854	39.7364789	-104.9383982	39.7364784
-8088	6618	6619	0.0938879229278784	0.0938879229278784	-104.9383982	39.7364784	-104.9394962	39.7364792
-17940	6560	10223	0.0802385671723254	0.0802385671723254	-104.9868584	39.7241275	-104.9868558	39.7248491
-8090	6620	6621	0.160330485968093	0.160330485968093	-104.9325634	39.6893199	-104.9316943	39.6880425
-8094	6623	1791	0.109097036983099	0.109097036983099	-104.9815624	39.6955402	-104.9807204	39.6948034
-8095	1791	3615	0.039522374569603	0.039522374569603	-104.9807204	39.6948034	-104.9804114	39.6945392
-8096	3615	6624	0.0738542372087066	0.0738542372087066	-104.9804114	39.6945392	-104.9798363	39.6940439
-8097	6624	6625	0.00831390386589708	0.00831390386589708	-104.9798363	39.6940439	-104.9797753	39.6939857
-8098	6625	6626	0.070757439886615	0.070757439886615	-104.9797753	39.6939857	-104.9792691	39.6934825
-8099	6626	6627	0.0728730586061825	0.0728730586061825	-104.9792691	39.6934825	-104.9787159	39.6929842
-8100	6627	5098	0.0960515227378026	0.0960515227378026	-104.9787159	39.6929842	-104.9779272	39.6923695
-8101	5098	6628	0.0550201636939116	0.0550201636939116	-104.9779272	39.6923695	-104.9775188	39.6919873
-8103	6630	239	0.0379460853943731	0.0379460853943731	-104.9769745	39.6914779	-104.9766938	39.6912137
-13573	9130	3	0.109013561390269	0.109013561390269	-105.0161204	39.730571	-105.0152478	39.7298563
-8105	6631	6632	0.0782857815609104	0.0782857815609104	-104.9763643	39.6909232	-104.9757688	39.6903887
-8106	6632	6533	0.166563544591406	0.166563544591406	-104.9757688	39.6903887	-104.9743231	39.6893856
-8108	4496	6633	0.110872689467253	0.110872689467253	-105.0051314	39.787854	-105.006429	39.7878524
-8109	6633	2525	0.333067333185797	0.333067333185797	-105.006429	39.7878524	-105.0101844	39.7886554
-8111	6530	6634	0.0105197308884475	0.0105197308884475	-104.9709294	39.6879413	-104.9709852	39.687857
-9336	7300	4780	0.0501146245066156	0.0501146245066156	-104.9757669	39.7020355	-104.9751815	39.7020519
-8112	6634	6635	2.4458667171276	2.4458667171276	-104.9709852	39.687857	-104.9711364	39.6658611
-8113	6636	3095	0.197330202512711	0.197330202512711	-104.9710271	39.7146913	-104.971013	39.7129167
-8114	3095	3205	0.202310741049047	0.202310741049047	-104.971013	39.7129167	-104.9710252	39.7110973
-8115	3205	6118	0.200935805580311	0.200935805580311	-104.9710252	39.7110973	-104.9710442	39.7092903
-8116	6118	1915	0.200185455389542	0.200185455389542	-104.9710442	39.7092903	-104.971036	39.70749
-8118	6637	5842	0.204932644380513	0.204932644380513	-104.9710805	39.6929591	-104.9710758	39.6911161
-8119	5842	6638	0.194625839062785	0.194625839062785	-104.9710758	39.6911161	-104.9710843	39.6893658
-8121	6639	3724	0.202719550339155	0.202719550339155	-104.9985703	39.7165902	-104.9985724	39.7184133
-8122	3724	6640	0.104515203903702	0.104515203903702	-104.9985724	39.7184133	-104.998563	39.7193532
-8124	6641	2622	0.176067278462879	0.176067278462879	-104.9985621	39.7209387	-104.9985544	39.7225221
-8125	2622	5203	0.176917243967006	0.176917243967006	-104.9985544	39.7225221	-104.9985716	39.7241131
-8126	5203	6232	0.177139986115085	0.177139986115085	-104.9985716	39.7241131	-104.9985893	39.7257061
-8129	6643	6644	0.177268373064057	0.177268373064057	-104.998623	39.7289153	-104.9986313	39.7305095
-8130	6644	6600	0.175826872766799	0.175826872766799	-104.9986313	39.7305095	-104.9986745	39.7320904
-8131	6600	6646	0.177773484713149	0.177773484713149	-104.9986745	39.7320904	-104.9986572	39.7336891
-8133	6647	6648	0.177957472274986	0.177957472274986	-104.998664	39.7352736	-104.9986884	39.7368739
-8134	6648	6649	0.169816854222751	0.169816854222751	-104.9986884	39.7368739	-104.9992032	39.7383489
-8135	6649	6650	0.0183704581232897	0.0183704581232897	-104.9992032	39.7383489	-104.9993525	39.7384677
-8136	6650	6651	0.180283145370232	0.180283145370232	-104.9993525	39.7384677	-104.9999603	39.7400202
-8137	6651	6652	0.0228081566299403	0.0228081566299403	-104.9999603	39.7400202	-104.9999567	39.7402253
-8139	6653	1499	0.197154421185115	0.197154421185115	-105.0448856	39.6967219	-105.0449033	39.6949489
-8140	1499	188	0.204153885319108	0.204153885319108	-105.0449033	39.6949489	-105.0449033	39.6931129
-8141	188	5878	0.159028819712238	0.159028819712238	-105.0449033	39.6931129	-105.045238	39.6917061
-8142	5878	6654	0.24236157922448	0.24236157922448	-105.045238	39.6917061	-105.0452294	39.6895265
-8144	1583	6655	0.303396334779096	0.303396334779096	-105.0452106	39.6881689	-105.0452196	39.6854404
-8145	6656	5874	0.176427569810156	0.176427569810156	-105.0444508	39.7165618	-105.0444942	39.7149755
-8146	5874	6657	0.00810609260917888	0.00810609260917888	-105.0444942	39.7149755	-105.0444802	39.7149034
-8147	6657	6658	0.0470608013663409	0.0470608013663409	-105.0444802	39.7149034	-105.0443368	39.7144948
-8150	6659	6660	0.255748331282284	0.255748331282284	-105.045239	39.700587	-105.045239	39.698287
-8151	6661	6662	0.00688301382680834	0.00688301382680834	-105.0068679	39.6894571	-105.0068682	39.6893952
-8152	6662	6663	0.392909871907801	0.392909871907801	-105.0068682	39.6893952	-105.0068849	39.6858617
-8153	6664	1758	0.130752459577202	0.130752459577202	-105.0073877	39.7075601	-105.0078426	39.7064375
-8154	1758	6314	0.0908112834588078	0.0908112834588078	-105.0078426	39.7064375	-105.0074307	39.7056848
-8155	6314	6665	0.191679756807403	0.191679756807403	-105.0074307	39.7056848	-105.0073877	39.7039613
-8156	6665	763	0.155864734453911	0.155864734453911	-105.0073877	39.7039613	-105.0074463	39.7025603
-8157	763	6668	0.0989081569703109	0.0989081569703109	-105.0074463	39.7025603	-105.007449	39.7016708
-8158	6668	1760	0.0778502447443476	0.0778502447443476	-105.007449	39.7016708	-105.0074982	39.7009717
-8159	1760	6003	0.221657363761595	0.221657363761595	-105.0074982	39.7009717	-105.0065799	39.6991077
-8160	6003	5765	0.101345142024656	0.101345142024656	-105.0065799	39.6991077	-105.0065723	39.6981963
-8161	5765	4032	0.0976983696193598	0.0976983696193598	-105.0065723	39.6981963	-105.0065466	39.6973179
-8162	4032	6669	0.0654151166199609	0.0654151166199609	-105.0065466	39.6973179	-105.0065809	39.6967302
-8164	2301	1759	0.0929594689620956	0.0929594689620956	-105.0067097	39.6957792	-105.0067133	39.6949432
-8165	1759	150	0.2063607315498	0.2063607315498	-105.0067133	39.6949432	-105.0067304	39.6930874
-8166	150	1738	0.199773882802826	0.199773882802826	-105.0067304	39.6930874	-105.0067562	39.6912909
-8168	1953	3100	0.166887359049361	0.166887359049361	-104.9394047	39.7138976	-104.9377781	39.7130688
-8170	370	2529	0.0016410050164606	0.0016410050164606	-105.0298446	39.7379436	-105.0298418	39.737929
-8171	2529	6670	0.0654370448512421	0.0654370448512421	-105.0298418	39.737929	-105.029987	39.7373512
-8200	6684	1172	0.140728922414785	0.140728922414785	-104.9499154	39.7619564	-104.9499105	39.763222
-8172	6670	1937	0.344573874886115	0.344573874886115	-105.029987	39.7373512	-105.0260468	39.738001
-8174	6671	6672	0.176399723080376	0.176399723080376	-104.9362703	39.7162376	-104.9362682	39.7146512
-8176	3101	6673	0.188864615641403	0.188864615641403	-104.9362596	39.7130732	-104.9362583	39.7113747
-8178	4227	1805	0.201844384843532	0.201844384843532	-104.936211	39.696598	-104.9362246	39.6947828
-8179	1805	6674	0.203096969054999	0.203096969054999	-104.9362246	39.6947828	-104.9362004	39.6929564
-8180	6674	5847	0.205632777843381	0.205632777843381	-104.9362004	39.6929564	-104.9362004	39.6911071
-8181	5847	6675	0.197984723567939	0.197984723567939	-104.9362004	39.6911071	-104.9362112	39.6893266
-8183	6676	4226	0.190839047917349	0.190839047917349	-104.936428	39.698394	-104.9365695	39.6966812
-8185	4212	1268	0.185384243862507	0.185384243862507	-105.018373	39.7168584	-105.0203557	39.7175319
-8187	6677	2875	0.129732620530101	0.129732620530101	-104.9498557	39.7837786	-104.9498484	39.7849453
-8188	2875	6678	0.138723736947104	0.138723736947104	-104.9498484	39.7849453	-104.9498214	39.7861927
-8189	6678	6679	0.13144235424121	0.13144235424121	-104.9498214	39.7861927	-104.9498986	39.7873733
-8190	6679	6680	0.782596772143326	0.782596772143326	-104.9498986	39.7873733	-104.948752	39.794356
-8191	3575	5642	0.141762411979774	0.141762411979774	-104.9499292	39.7544371	-104.9499292	39.755712
-8192	5642	4347	0.140039066988463	0.140039066988463	-104.9499292	39.755712	-104.9499266	39.7569714
-8193	4347	6345	0.13859354874742	0.13859354874742	-104.9499266	39.7569714	-104.9499239	39.7582178
-8194	6345	3049	0.140317315615912	0.140317315615912	-104.9499239	39.7582178	-104.9499198	39.7594797
-8195	3049	3024	0.0669551847418331	0.0669551847418331	-104.9499198	39.7594797	-104.9499105	39.7600818
-8196	3024	6681	0.0663747225163875	0.0663747225163875	-104.9499105	39.7600818	-104.9499172	39.7606787
-8197	6681	6682	0.00550527045183645	0.00550527045183645	-104.9499172	39.7606787	-104.9499185	39.7607282
-8198	6682	6683	0.122014480736259	0.122014480736259	-104.9499185	39.7607282	-104.9499154	39.7618255
-8199	6683	6684	0.0145554158979999	0.0145554158979999	-104.9499154	39.7618255	-104.9499154	39.7619564
-8201	1172	892	0.137892873302074	0.137892873302074	-104.9499105	39.763222	-104.9499118	39.7644621
-8202	892	4475	0.139838739747675	0.139838739747675	-104.9499118	39.7644621	-104.9499118	39.7657197
-8203	4475	2777	0.135724572944392	0.135724572944392	-104.9499118	39.7657197	-104.9499105	39.7669403
-8204	2777	5266	0.129198654341627	0.129198654341627	-104.9499105	39.7669403	-104.9499038	39.7681022
-8205	5266	6685	0.122514628608539	0.122514628608539	-104.9499038	39.7681022	-104.9499024	39.769204
-8206	6685	6686	0.20769100942942	0.20769100942942	-104.9499024	39.769204	-104.9498944	39.7710718
-8207	6686	6357	0.202692590161251	0.202692590161251	-104.9498944	39.7710718	-104.949826	39.7728939
-8208	6357	2390	0.107324644883127	0.107324644883127	-104.949826	39.7728939	-104.9498085	39.773859
-8209	2390	6687	0.139594845742255	0.139594845742255	-104.9498085	39.773859	-104.9498032	39.7751144
-8210	6687	6688	0.0752686220951058	0.0752686220951058	-104.9498032	39.7751144	-104.9497992	39.7757913
-8211	6688	749	0.0665961818211898	0.0665961818211898	-104.9497992	39.7757913	-104.9498045	39.7763902
-8212	749	1567	0.140763317861176	0.140763317861176	-104.9498045	39.7763902	-104.9497965	39.7776561
-8213	1567	6689	0.140174033607804	0.140174033607804	-104.9497965	39.7776561	-104.9497884	39.7789167
-8215	6691	696	0.200953877059722	0.200953877059722	-104.9500562	39.7401702	-104.9500677	39.7419774
-8216	696	6692	0.202493921890496	0.202493921890496	-104.9500677	39.7419774	-104.9500467	39.7437984
-8218	508	6693	0.0440506867837982	0.0440506867837982	-104.9492875	39.7477337	-104.9494162	39.7481173
-8219	6694	1202	0.170408371052522	0.170408371052522	-104.9495001	39.7256083	-104.9495101	39.7271408
-8220	1202	6695	0.022095029398504	0.022095029398504	-104.9495101	39.7271408	-104.9495082	39.7273395
-8221	6695	3781	0.199196539116323	0.199196539116323	-104.9495082	39.7273395	-104.9494979	39.7291309
-8222	3781	6696	0.154646276165852	0.154646276165852	-104.9494979	39.7291309	-104.9494801	39.7305216
-8224	951	6697	0.162889491053556	0.162889491053556	-104.9494887	39.732119	-104.949511	39.7335838
-8225	6697	4890	0.17202029430472	0.17202029430472	-104.949511	39.7335838	-104.9494864	39.7351307
-8226	4890	6698	0.182585439334225	0.182585439334225	-104.9494864	39.7351307	-104.9495133	39.7367726
-8227	6698	5488	0.173629132461636	0.173629132461636	-104.9495133	39.7367726	-104.9494922	39.738334
-8230	6700	6701	0.054263196932367	0.054263196932367	-104.9873849	39.7414911	-104.9878331	39.7418366
-8231	6701	5807	0.103685962200744	0.103685962200744	-104.9878331	39.7418366	-104.9886895	39.7424968
-8232	5807	6702	0.106632774624389	0.106632774624389	-104.9886895	39.7424968	-104.9895702	39.7431758
-8233	6702	6703	0.0962060876195832	0.0962060876195832	-104.9895702	39.7431758	-104.9903648	39.7437884
-8234	6703	5959	0.00690380150934747	0.00690380150934747	-104.9903648	39.7437884	-104.9904219	39.7438323
-8235	5959	6704	0.00415729025946559	0.00415729025946559	-104.9904219	39.7438323	-104.9904562	39.7438588
-8236	6704	3004	0.101332185729619	0.101332185729619	-104.9904562	39.7438588	-104.9912932	39.744504
-8237	3004	4395	0.106412326585027	0.106412326585027	-104.9912932	39.744504	-104.9921721	39.7451816
-8238	4395	6705	0.103936208820228	0.103936208820228	-104.9921721	39.7451816	-104.9930306	39.7458434
-8239	6705	6706	0.108885043469445	0.108885043469445	-104.9930306	39.7458434	-104.99393	39.7465367
-8240	6706	6707	0.0530572853327784	0.0530572853327784	-104.99393	39.7465367	-104.9943683	39.7468745
-8241	6707	6708	0.0508918154467618	0.0508918154467618	-104.9943683	39.7468745	-104.9947886	39.7471986
-8242	6708	6709	0.103982459974641	0.103982459974641	-104.9947886	39.7471986	-104.9956475	39.7478607
-8243	6709	6710	0.100220871190445	0.100220871190445	-104.9956475	39.7478607	-104.9964754	39.7484988
-8244	6710	6711	0.00631643031082491	0.00631643031082491	-104.9964754	39.7484988	-104.9965276	39.748539
-8245	6711	6188	0.105471969629518	0.105471969629518	-104.9965276	39.748539	-104.9973988	39.7492106
-8246	6188	6712	0.0552929480053166	0.0552929480053166	-104.9973988	39.7492106	-104.9978555	39.7495627
-8247	6712	6713	0.051155648874288	0.051155648874288	-104.9978555	39.7495627	-104.9982781	39.7498884
-8249	4495	6714	0.112097289917407	0.112097289917407	-105.0051056	39.7870428	-105.0064173	39.7870612
-8250	6714	1079	0.0913714399600763	0.0913714399600763	-105.0064173	39.7870612	-105.0074815	39.7871418
-8251	1079	2524	0.245312559433029	0.245312559433029	-105.0074815	39.7871418	-105.0101975	39.7878569
-8253	6006	6251	0.204148069385731	0.204148069385731	-105.0169911	39.700417	-105.0170083	39.6985811
-8254	6251	6715	0.203065667560916	0.203065667560916	-105.0170083	39.6985811	-105.0169992	39.6967549
-8256	2935	6716	0.266313303297407	0.266313303297407	-105.0169377	39.6883193	-105.0167173	39.6859303
-8257	6416	3741	0.135496222887927	0.135496222887927	-105.0172314	39.7170829	-105.0170254	39.7158747
-8258	3741	5854	0.117997896305679	0.117997896305679	-105.0170254	39.7158747	-105.0170084	39.7148136
-8260	2305	161	0.314948131318509	0.314948131318509	-105.0165019	39.6959725	-105.0165323	39.6931402
-8263	6717	3071	0.175732613824838	0.175732613824838	-104.9425532	39.7146491	-104.9425505	39.7130687
-8264	3071	6718	0.173767654321711	0.173767654321711	-104.9425505	39.7130687	-104.9425631	39.711506
-8265	6718	6100	0.243539432543733	0.243539432543733	-104.9425631	39.711506	-104.9425586	39.7093158
-8267	3290	98	0.422419964097428	0.422419964097428	-104.9444349	39.7038735	-104.9431816	39.700199
-8269	4373	2854	0.205542196291208	0.205542196291208	-105.0015169	39.7015972	-105.0038253	39.7010848
-8271	6719	1596	0.0969388330111528	0.0969388330111528	-105.0125794	39.7006019	-105.0135751	39.701018
-8273	118	6721	0.0966297992771619	0.0966297992771619	-105.0112228	39.7301878	-105.0112289	39.7310568
-8274	6721	6722	0.0414535753801991	0.0414535753801991	-105.0112289	39.7310568	-105.0112278	39.7314296
-8276	2311	6580	0.108271978342533	0.108271978342533	-105.0112958	39.7314875	-105.0113223	39.732461
-8277	6580	6723	0.0197325066377101	0.0197325066377101	-105.0113223	39.732461	-105.0113508	39.7326371
-8301	4041	6740	0.178573713835442	0.178573713835442	-105.0263295	39.7181459	-105.0263463	39.7197518
-8302	6740	1829	0.177333893618754	0.177333893618754	-105.0263463	39.7197518	-105.0263496	39.7213466
-8279	4433	6724	0.324356944785499	0.324356944785499	-105.0109506	39.7174666	-105.0120852	39.72025
-8282	6725	6088	0.0237314605310015	0.0237314605310015	-105.0111475	39.760596	-105.0111515	39.7608094
-8283	6088	4822	0.0875664870066569	0.0875664870066569	-105.0111515	39.7608094	-105.0111481	39.7615969
-8284	4822	6726	0.0475371228844605	0.0475371228844605	-105.0111481	39.7615969	-105.0111753	39.7620239
-8285	6726	4515	0.133316815943664	0.133316815943664	-105.0111753	39.7620239	-105.0111891	39.7632228
-8286	4515	5237	0.132189806591607	0.132189806591607	-105.0111891	39.7632228	-105.0111823	39.7644116
-9507	2581	5179	0.178384896285487	0.178384896285487	-105.0337024	39.7229256	-105.0337195	39.7245298
-8287	5237	6727	0.137381332135233	0.137381332135233	-105.0111823	39.7644116	-105.0111822	39.7656471
-8288	6727	6728	0.132866818946611	0.132866818946611	-105.0111822	39.7656471	-105.0111824	39.766842
-8289	6728	1673	0.133389434002772	0.133389434002772	-105.0111824	39.766842	-105.0111824	39.7680416
-8290	1673	6729	0.137304160443328	0.137304160443328	-105.0111824	39.7680416	-105.0111874	39.7692764
-8292	6730	6731	0.0127908749904874	0.0127908749904874	-105.015836	39.7589269	-105.0159724	39.7589742
-8324	6753	6754	0.0516246355995179	0.0516246355995179	-105.0275713	39.7655797	-105.0275819	39.7660439
-8293	6731	6734	0.253997048781863	0.253997048781863	-105.0159724	39.7589742	-105.0187898	39.7597001
-8294	6734	6735	0.103152527560213	0.103152527560213	-105.0187898	39.7597001	-105.0196661	39.7603379
-8296	6736	6737	0.0131672047429292	0.0131672047429292	-105.0202265	39.7608392	-105.0203579	39.760901
-8298	4636	5383	0.185495216645111	0.185495216645111	-105.0191455	39.732286	-105.0185003	39.7338787
-8300	5972	4041	0.174731707729605	0.174731707729605	-105.0263295	39.7165745	-105.0263295	39.7181459
-8303	1829	6741	0.102538685907791	0.102538685907791	-105.0263496	39.7213466	-105.0263624	39.7222687
-8304	4575	6440	0.137081553799117	0.137081553799117	-105.0268099	39.7414867	-105.0268058	39.7427195
-8305	6440	5291	0.136014333235461	0.136014333235461	-105.0268058	39.7427195	-105.0268109	39.7439427
-8306	5291	6742	0.135023999424587	0.135023999424587	-105.0268109	39.7439427	-105.0268109	39.745157
-8307	6742	10	0.133312225882616	0.133312225882616	-105.0268109	39.745157	-105.0268316	39.7463558
-8308	10	6394	0.135032006709	0.135032006709	-105.0268316	39.7463558	-105.0268144	39.7475701
-8309	6394	6743	0.132451340826744	0.132451340826744	-105.0268144	39.7475701	-105.0268304	39.7487612
-8310	6743	6744	0.135765849385072	0.135765849385072	-105.0268304	39.7487612	-105.0268132	39.7499821
-8311	6744	6745	0.133823531129847	0.133823531129847	-105.0268132	39.7499821	-105.0268172	39.7511856
-8313	6746	6747	0.134513077577228	0.134513077577228	-105.0268257	39.752413	-105.0268211	39.7536227
-8314	6747	6748	0.134201163774105	0.134201163774105	-105.0268211	39.7536227	-105.0268206	39.7548296
-8316	6749	1938	0.0948580215175547	0.0948580215175547	-105.0267907	39.738975	-105.0265344	39.738145
-8318	307	5887	0.0912856383131267	0.0912856383131267	-105.0279141	39.763121	-105.0276119	39.7639084
-8319	5887	6750	0.00721526462075332	0.00721526462075332	-105.0276119	39.7639084	-105.0275762	39.7639672
-8320	6750	6751	0.0269156344716724	0.0269156344716724	-105.0275762	39.7639672	-105.0275693	39.7642092
-8323	6752	6753	0.0510955164610192	0.0510955164610192	-105.0275758	39.7651202	-105.0275713	39.7655797
-8325	6754	6755	0.0510906826304937	0.0510906826304937	-105.0275819	39.7660439	-105.0275923	39.7665033
-8326	6755	6756	0.0511615632316368	0.0511615632316368	-105.0275923	39.7665033	-105.0275956	39.7669634
-8327	6756	1661	0.0519510824904343	0.0519510824904343	-105.0275956	39.7669634	-105.027599	39.7674306
-8328	1661	6758	0.0509873448397052	0.0509873448397052	-105.027599	39.7674306	-105.0275911	39.7678891
-8329	6758	6759	0.0522106080921687	0.0522106080921687	-105.0275911	39.7678891	-105.027583	39.7683586
-8330	6759	6760	0.0506887592311432	0.0506887592311432	-105.027583	39.7683586	-105.0276064	39.7688141
-18752	5186	5654	0.105380231545906	0.105380231545906	-105.0389187	39.7245383	-105.0389235	39.725486
-8331	6760	6761	0.0573063184317804	0.0573063184317804	-105.0276064	39.7688141	-105.0276173	39.7693294
-8333	6762	6763	0.0501245455122697	0.0501245455122697	-105.0276181	39.7698189	-105.0275974	39.7702694
-8334	6763	6764	0.0489376044154541	0.0489376044154541	-105.0275974	39.7702694	-105.0276005	39.7707095
-8337	6766	6767	0.0490039328328154	0.0490039328328154	-105.0275892	39.7716046	-105.0275913	39.7720453
-8338	6767	6768	0.0513498171240697	0.0513498171240697	-105.0275913	39.7720453	-105.0275913	39.7725071
-8339	6768	6769	0.0498709246005866	0.0498709246005866	-105.0275913	39.7725071	-105.0275913	39.7729556
-8341	5533	6770	0.292387787290413	0.292387787290413	-105.027737	39.774038	-105.0275847	39.7766649
-8343	2972	6771	0.121066844508317	0.121066844508317	-105.0268526	39.7584761	-105.0268698	39.7595648
-8344	6771	6093	0.143799158144466	0.143799158144466	-105.0268698	39.7595648	-105.0268612	39.760858
-8345	6093	6772	0.01594646132934	0.01594646132934	-105.0268612	39.760858	-105.0268634	39.7610014
-8346	6772	6773	0.00797333604469033	0.00797333604469033	-105.0268634	39.7610014	-105.0268646	39.7610731
-8347	6773	6774	0.00589372782719237	0.00589372782719237	-105.0268646	39.7610731	-105.0268654	39.7611261
-8349	6775	6776	0.135681018337986	0.135681018337986	-105.0267779	39.7766583	-105.0267719	39.7778785
-8350	6776	2490	0.131411131535027	0.131411131535027	-105.0267719	39.7778785	-105.0267778	39.7790603
-8351	2490	2835	0.135427320939223	0.135427320939223	-105.0267778	39.7790603	-105.0267549	39.7802781
-8353	4067	6052	0.133451561970317	0.133451561970317	-105.0276017	39.7844198	-105.0275763	39.7856198
-8354	6052	5792	0.201431723471221	0.201431723471221	-105.0275763	39.7856198	-105.0275871	39.7874313
-8356	6777	6778	0.137939265537406	0.137939265537406	-105.0265007	39.7560347	-105.0265093	39.7572752
-8358	6658	6779	0.0952206682824548	0.0952206682824548	-105.0443368	39.7144948	-105.0454279	39.7143249
-8359	6779	1328	0.20245506080321	0.20245506080321	-105.0454279	39.7143249	-105.0473907	39.7133074
-9582	1393	7408	0.0523989189771459	0.0523989189771459	-105.0324691	39.7165619	-105.0330817	39.7165583
-8360	1328	6780	0.24344994454685	0.24344994454685	-105.0473907	39.7133074	-105.0484853	39.7112864
-8362	6781	6338	0.132299767169153	0.132299767169153	-104.9684019	39.7570371	-104.9684621	39.758226
-18540	10312	7538	0.710682259466036	0.710682259466036	-105.0532415	39.7643533	-105.0449269	39.7643759
-8363	6338	3026	0.142960379522958	0.142960379522958	-104.9684621	39.758226	-104.9684276	39.7595114
-8364	3026	6782	0.131957413991529	0.131957413991529	-104.9684276	39.7595114	-104.9684183	39.7606981
-8365	6782	6783	0.00572653872195823	0.00572653872195823	-104.9684183	39.7606981	-104.9684183	39.7607496
-8366	6783	6784	0.13893806084239	0.13893806084239	-104.9684183	39.7607496	-104.9684183	39.7619991
-8367	6784	1155	0.138805738856212	0.138805738856212	-104.9684183	39.7619991	-104.9684118	39.7632474
-8368	1155	876	0.139884571461894	0.139884571461894	-104.9684118	39.7632474	-104.968419	39.7645054
-8370	4464	2784	0.134142589801556	0.134142589801556	-104.9684223	39.7657497	-104.968405	39.766956
-8371	2784	5255	0.132457483790055	0.132457483790055	-104.968405	39.766956	-104.9684137	39.7681472
-8372	5255	4727	0.21307200925813	0.21307200925813	-104.9684137	39.7681472	-104.9683879	39.7700633
-8373	4727	5126	0.0748266761428759	0.0748266761428759	-104.9683879	39.7700633	-104.9683965	39.7707362
-8374	5126	6785	0.0660204248306932	0.0660204248306932	-104.9683965	39.7707362	-104.968405	39.7713299
-8375	6785	4284	0.173603246809035	0.173603246809035	-104.968405	39.7713299	-104.9683885	39.7728911
-8377	6786	6787	0.142696164770821	0.142696164770821	-104.9677841	39.7356489	-104.9684521	39.7368249
-8379	5475	6788	0.1766899367412	0.1766899367412	-104.9684271	39.7384126	-104.9684027	39.7400015
-8380	6788	6789	0.178262795240798	0.178262795240798	-104.9684027	39.7400015	-104.9684201	39.7416046
-8381	6789	669	0.0038695834466259	0.0038695834466259	-104.9684201	39.7416046	-104.9684201	39.7416394
-8382	669	6790	0.00298242718157566	0.00298242718157566	-104.9684201	39.7416394	-104.9684215	39.7416662
-8383	6790	6791	0.175654700740653	0.175654700740653	-104.9684215	39.7416662	-104.9684196	39.7432459
-8385	4603	6493	0.141540356779896	0.141540356779896	-104.9684176	39.7448114	-104.968414	39.7460843
-8386	6493	6795	0.235592097571248	0.235592097571248	-104.968414	39.7460843	-104.9683834	39.7482029
-8387	6795	6796	0.135380255100289	0.135380255100289	-104.9683834	39.7482029	-104.9683794	39.7494204
-8388	6796	6797	0.00458123097756658	0.00458123097756658	-104.9683794	39.7494204	-104.9683794	39.7494616
-8389	6797	6798	0.00459235047115107	0.00459235047115107	-104.9683794	39.7494616	-104.9683794	39.7495029
-8390	6798	6799	0.135291654892361	0.135291654892361	-104.9683794	39.7495029	-104.968374	39.7507196
-8391	6799	6800	0.141019064418211	0.141019064418211	-104.968374	39.7507196	-104.968366	39.7519878
-8392	6800	821	0.136459904501488	0.136459904501488	-104.968366	39.7519878	-104.9683443	39.7532149
-8393	821	3562	0.138377698701616	0.138377698701616	-104.9683443	39.7532149	-104.9683703	39.7544592
-8395	5772	516	0.0304460136124682	0.0304460136124682	-104.969071	39.787876	-104.968998	39.788144
-8397	6411	6801	0.0202183008206165	0.0202183008206165	-104.9688032	39.7903462	-104.968859	39.7905229
-8398	6802	469	0.0770276556079661	0.0770276556079661	-104.9681122	39.7183532	-104.9681294	39.7190458
-8399	469	4171	0.115648628347006	0.115648628347006	-104.9681294	39.7190458	-104.9681062	39.7200857
-8400	4171	6803	0.135804309767261	0.135804309767261	-104.9681062	39.7200857	-104.9680977	39.721307
-8401	6803	4756	0.071946790437269	0.071946790437269	-104.9680977	39.721307	-104.9681062	39.721954
-8403	6804	6805	0.127899734301329	0.127899734301329	-104.9688098	39.7807867	-104.968799	39.7819369
-8405	6803	4172	0.13716080109606	0.13716080109606	-104.9680977	39.721307	-104.9679063	39.7200823
-8406	4172	470	0.118198242572908	0.118198242572908	-104.9679063	39.7200823	-104.9678891	39.7190194
-8407	470	6806	0.0738815709398357	0.0738815709398357	-104.9678891	39.7190194	-104.9678805	39.718355
-8410	6807	6808	0.0966312020179035	0.0966312020179035	-104.9241221	39.7053959	-104.9237959	39.7045639
-8411	6808	6809	0.078738376832051	0.078738376832051	-104.9237959	39.7045639	-104.9237358	39.7038573
-8412	6809	3373	0.430297684252256	0.430297684252256	-104.9237358	39.7038573	-104.9252722	39.7001725
-8414	6810	6811	0.203442237788957	0.203442237788957	-104.9246456	39.6893613	-104.9246456	39.6875317
-8415	1476	6812	0.245653934383614	0.245653934383614	-104.9233668	39.695061	-104.9243796	39.6929938
-8416	6812	6813	0.412460631108446	0.412460631108446	-104.9243796	39.6929938	-104.9254353	39.6893745
-8418	6814	6815	0.174359151043162	0.174359151043162	-104.9246289	39.7162454	-104.9246127	39.7146774
-8419	6815	3109	0.176366303019304	0.176366303019304	-104.9246127	39.7146774	-104.9246115	39.7130913
-8420	3109	6816	0.193801807541949	0.193801807541949	-104.9246115	39.7130913	-104.9246085	39.7113484
-8421	6816	6817	0.0198367109802725	0.0198367109802725	-104.9246085	39.7113484	-104.9246161	39.7111701
-8422	6817	6104	0.210336723998741	0.210336723998741	-104.9246161	39.7111701	-104.9246113	39.7092785
-8424	6818	4370	0.0431318765981996	0.0431318765981996	-105.001122	39.704272	-105.0014826	39.7040009
-8426	2496	1451	0.0985317859583251	0.0985317859583251	-105.0026756	39.7039481	-105.0038258	39.7039943
-8427	1451	2853	0.10657030011201	0.10657030011201	-105.0038258	39.7039943	-105.0050712	39.7039722
-8428	2853	6819	0.0983314928072937	0.0983314928072937	-105.0050712	39.7039722	-105.0062204	39.7039547
-8429	6819	6665	0.0998633676523793	0.0998633676523793	-105.0062204	39.7039547	-105.0073877	39.7039613
-8430	6665	6820	0.100599054724802	0.100599054724802	-105.0073877	39.7039613	-105.0085636	39.7039679
-8431	6820	3821	0.10490937410086	0.10490937410086	-105.0085636	39.7039679	-105.0097899	39.7039631
-8432	3821	5897	0.102058293498771	0.102058293498771	-105.0097899	39.7039631	-105.0109828	39.7039743
-9656	6387	7441	0.131317068143471	0.131317068143471	-105.036926	39.7475739	-105.0369584	39.7487546
-8433	5897	6821	0.102847878519627	0.102847878519627	-105.0109828	39.7039743	-105.0121846	39.7039499
-8435	1593	1644	0.201270216910902	0.201270216910902	-105.0133176	39.7039764	-105.0156693	39.7039235
-8436	1644	6822	0.105737900324602	0.105737900324602	-105.0156693	39.7039235	-105.0169053	39.7039235
-8437	6822	4218	0.0969375306307301	0.0969375306307301	-105.0169053	39.7039235	-105.0180383	39.7039103
-8438	4218	6823	0.101326281592707	0.101326281592707	-105.0180383	39.7039103	-105.0192227	39.7039037
-8439	6823	198	0.0969958932624718	0.0969958932624718	-105.0192227	39.7039037	-105.0203557	39.7038707
-8440	198	2927	0.100607212393453	0.100607212393453	-105.0203557	39.7038707	-105.0215316	39.7038839
-8441	2927	5309	0.0991277824360909	0.0991277824360909	-105.0215316	39.7038839	-105.0226903	39.7038773
-8442	5309	1465	0.0998634796625755	0.0998634796625755	-105.0226903	39.7038773	-105.0238576	39.7038839
-8445	1176	6825	0.181656671362534	0.181656671362534	-104.9973407	39.7040997	-104.9991903	39.7049022
-8447	6826	6827	0.865493060175873	0.865493060175873	-105.0432124	39.7042603	-105.0532477	39.7032733
-8448	3119	6828	0.283790323154486	0.283790323154486	-104.9350503	39.6919459	-104.931734	39.691987
-8450	3496	6829	0.0523352446605108	0.0523352446605108	-104.9500131	39.6983858	-104.9506246	39.6983982
-8451	6829	6830	0.0732524388814314	0.0732524388814314	-104.9506246	39.6983982	-104.9512088	39.6979166
-8452	6830	3663	0.0505681915693724	0.0505681915693724	-104.9512088	39.6979166	-104.9513786	39.697481
-8453	3663	4996	0.130580462322132	0.130580462322132	-104.9513786	39.697481	-104.9523584	39.6965806
-8455	6831	6247	0.199011000686174	0.199011000686174	-105.0402684	39.7003444	-105.0402512	39.6985547
-8456	6247	6832	0.199751548882436	0.199751548882436	-105.0402512	39.6985547	-105.0402255	39.6967584
-8458	1495	184	0.20195222577189	0.20195222577189	-105.0402341	39.6949489	-105.0402341	39.6931327
-8459	184	1712	0.203399715506048	0.203399715506048	-105.0402341	39.6931327	-105.0400367	39.6913098
-8460	1712	6833	0.205087968397347	0.205087968397347	-105.0400367	39.6913098	-105.0400351	39.6894654
-8461	6833	1578	0.200928350075194	0.200928350075194	-105.0400351	39.6894654	-105.0401129	39.6876594
-8463	6835	5869	0.177962583931279	0.177962583931279	-105.0397191	39.7165613	-105.0397017	39.7149609
-8464	5869	1321	0.176970219219333	0.176970219219333	-105.0397017	39.7149609	-105.0396887	39.7133694
-8465	1321	1377	0.177352733194459	0.177352733194459	-105.0396887	39.7133694	-105.0397191	39.7117746
-8466	1377	6836	0.0602165463968322	0.0602165463968322	-105.0397191	39.7117746	-105.0397105	39.7112331
-8467	6836	6837	0.0823104914192672	0.0823104914192672	-105.0397105	39.7112331	-105.0397534	39.7104936
-8468	6837	4694	0.116790101887087	0.116790101887087	-105.0397534	39.7104936	-105.0397105	39.7094438
-18756	1322	1378	0.175845021978343	0.175845021978343	-105.0402863	39.7133654	-105.0402944	39.711784
-8469	4694	6838	0.160065096905242	0.160065096905242	-105.0397105	39.7094438	-105.0397105	39.7080043
-8470	6838	5335	0.187163981040998	0.187163981040998	-105.0397105	39.7080043	-105.0397046	39.7063211
-8471	5335	6839	0.265241255095212	0.265241255095212	-105.0397046	39.7063211	-105.0396161	39.7039367
-8473	4319	4507	0.0895898957022207	0.0895898957022207	-105.0350327	39.7104474	-105.0360799	39.7104606
-8474	4507	6840	0.0124803827841914	0.0124803827841914	-105.0360799	39.7104606	-105.0362258	39.7104609
-8475	6840	6841	0.091716588631721	0.091716588631721	-105.0362258	39.7104609	-105.037298	39.7104627
-8476	6841	6842	0.00740292454463184	0.00740292454463184	-105.037298	39.7104627	-105.0373845	39.7104606
-8477	6842	285	0.0146970591982782	0.0146970591982782	-105.0373845	39.7104606	-105.0375561	39.7104672
-8478	285	5069	0.0844368792913957	0.0844368792913957	-105.0375561	39.7104672	-105.0385432	39.7104672
-13551	9125	9126	0.0538488930045225	0.0538488930045225	-105.0111017	39.7231117	-105.0106484	39.7227756
-8479	5069	6837	0.103562524850142	0.103562524850142	-105.0385432	39.7104672	-105.0397534	39.7104936
-8480	6837	6843	0.0961927404969427	0.0961927404969427	-105.0397534	39.7104936	-105.0408778	39.7104804
-8481	6843	6844	0.0998943541512786	0.0998943541512786	-105.0408778	39.7104804	-105.0420451	39.7105068
-8482	6844	6845	0.102052212683234	0.102052212683234	-105.0420451	39.7105068	-105.0432381	39.7105134
-8483	6845	6846	0.456427940885819	0.456427940885819	-105.0432381	39.7105134	-105.0485738	39.7105415
-8484	6847	4419	0.193121729151288	0.193121729151288	-105.0275397	39.7102889	-105.0297971	39.7103154
-8485	4419	6848	0.226127592349504	0.226127592349504	-105.0297971	39.7103154	-105.0324406	39.710322
-8486	6848	5329	0.136063050211474	0.136063050211474	-105.0324406	39.710322	-105.0340312	39.7103291
-8488	4363	1444	0.202825103543368	0.202825103543368	-105.0015367	39.7102427	-105.0039077	39.7102592
-8489	1444	6849	0.200067420030691	0.200067420030691	-105.0039077	39.7102592	-105.0062462	39.7102277
-8490	6849	6850	0.207042581432814	0.207042581432814	-105.0062462	39.7102277	-105.0086666	39.7102277
-8491	6850	5890	0.198967544378973	0.198967544378973	-105.0086666	39.7102277	-105.0109926	39.7102277
-8493	6851	6852	0.0470486102019036	0.0470486102019036	-104.9875556	39.7102383	-104.9881056	39.7102414
-8494	6852	6853	0.0201453367541323	0.0201453367541323	-104.9881056	39.7102414	-104.9883411	39.7102427
-8495	6853	6854	0.0193839654418635	0.0193839654418635	-104.9883411	39.7102427	-104.9885677	39.7102439
-8496	6854	6855	0.0201881052382051	0.0201881052382051	-104.9885677	39.7102439	-104.9888037	39.7102452
-8497	6855	6856	0.0195037980214848	0.0195037980214848	-104.9888037	39.7102452	-104.9890317	39.7102465
-8498	6856	6857	0.0198459509091597	0.0198459509091597	-104.9890317	39.7102465	-104.9892637	39.7102478
-8499	6857	6858	0.0195037180586887	0.0195037180586887	-104.9892637	39.7102478	-104.9894917	39.710249
-8500	6858	6859	0.0199058270401761	0.0199058270401761	-104.9894917	39.710249	-104.9897244	39.7102503
-8501	6859	1871	0.0228399539785669	0.0228399539785669	-104.9897244	39.7102503	-104.9899914	39.7102518
-8504	6861	6862	0.100580939051626	0.100580939051626	-104.9497683	39.7146491	-104.9485924	39.7146476
-8505	6862	6863	0.206622253376394	0.206622253376394	-104.9485924	39.7146476	-104.9461768	39.7146368
-8506	6863	6377	0.103010255262607	0.103010255262607	-104.9461768	39.7146368	-104.9449725	39.7146388
-8507	6377	4832	0.10370389707419	0.10370389707419	-104.9449725	39.7146388	-104.9437601	39.714643
-8508	4832	6717	0.103234622646169	0.103234622646169	-104.9437601	39.714643	-104.9425532	39.7146491
-8509	6717	6864	0.103703073117676	0.103703073117676	-104.9425532	39.7146491	-104.9413408	39.7146471
-8510	6864	6865	0.0481477570236711	0.0481477570236711	-104.9413408	39.7146471	-104.9407779	39.7146468
-8512	5856	6866	0.107372117361429	0.107372117361429	-104.9875046	39.7147611	-104.9862493	39.7147611
-8513	6866	6867	0.050649728561771	0.050649728561771	-104.9862493	39.7147611	-104.9856575	39.7147454
-8514	6867	4989	0.0553571225017631	0.0553571225017631	-104.9856575	39.7147454	-104.9850107	39.7147282
-8515	4989	6868	0.101318948663251	0.101318948663251	-104.9850107	39.7147282	-104.9838262	39.7147216
-8518	6869	3823	0.172685696470764	0.172685696470764	-105.0087904	39.6885896	-105.0106786	39.6880414
-8520	6870	5902	0.0785311515160625	0.0785311515160625	-105.0108215	39.6880414	-105.0117344	39.688114
-8521	5902	6871	0.0681549663304684	0.0681549663304684	-105.0117344	39.688114	-105.0125152	39.6882351
-8522	6871	1996	0.0322361485277902	0.0322361485277902	-105.0125152	39.6882351	-105.0128845	39.6882924
-8523	1996	1587	0.080539505433719	0.080539505433719	-105.0128845	39.6882924	-105.0138115	39.6884179
-8524	1587	6872	0.0787299872144713	0.0787299872144713	-105.0138115	39.6884179	-105.0147213	39.6885235
-8525	6872	1652	0.0828966049530784	0.0828966049530784	-105.0147213	39.6885235	-105.0156826	39.688616
-9751	2441	5738	0.170975903813153	0.170975903813153	-105.0416481	39.7709328	-105.0416591	39.7724704
-8528	6874	5702	0.0496353984033346	0.0496353984033346	-105.0351985	39.7658172	-105.0357792	39.7658132
-8529	5702	6875	0.0484896470155752	0.0484896470155752	-105.0357792	39.7658132	-105.0363465	39.7658167
-8530	6875	6876	0.0523105680266916	0.0523105680266916	-105.0363465	39.7658167	-105.0369584	39.7658073
-8531	6876	6877	0.100875098780012	0.100875098780012	-105.0369584	39.7658073	-105.0381386	39.7658121
-8532	6877	6878	0.0515810406741165	0.0515810406741165	-105.0381386	39.7658121	-105.0387418	39.7657978
-8533	6878	6879	0.0480493192441991	0.0480493192441991	-105.0387418	39.7657978	-105.0393037	39.7657845
-8534	6879	6532	0.0493288645061034	0.0493288645061034	-105.0393037	39.7657845	-105.0398808	39.7657795
-8535	6532	6880	0.0170276228852009	0.0170276228852009	-105.0398808	39.7657795	-105.0400799	39.7657742
-8537	1128	6881	0.0506249344560303	0.0506249344560303	-105.0404722	39.7657639	-105.0410645	39.7657635
-8538	6881	6882	0.0501120958003525	0.0501120958003525	-105.0410645	39.7657635	-105.0416508	39.7657632
-8539	6882	6883	0.0495209017571618	0.0495209017571618	-105.0416508	39.7657632	-105.04223	39.765752
-8540	6883	3846	0.0513776048731037	0.0513776048731037	-105.04223	39.765752	-105.0428311	39.7657541
-8541	3846	6884	0.0512508950828751	0.0512508950828751	-105.0428311	39.7657541	-105.0434307	39.76575
-8542	6884	5564	0.0499163404494349	0.0499163404494349	-105.0434307	39.76575	-105.0440146	39.7657413
-8543	5564	6885	0.0796596960320095	0.0796596960320095	-105.0440146	39.7657413	-105.0449466	39.7657411
-8544	6885	6886	0.709637932237075	0.709637932237075	-105.0449466	39.7657411	-105.0532491	39.7657101
-8545	3929	5619	0.0645570027229576	0.0645570027229576	-105.0010599	39.7656602	-105.0018152	39.7656592
-8546	5619	3704	0.0990278562894358	0.0990278562894358	-105.0018152	39.7656592	-105.0029738	39.7656577
-9775	2551	7512	0.408787216175776	0.408787216175776	-105.0415549	39.7874347	-105.041567	39.791111
-8547	3704	709	0.100036425190807	0.100036425190807	-105.0029738	39.7656577	-105.0041442	39.7656562
-8548	709	6887	0.100506522060904	0.100506522060904	-105.0041442	39.7656562	-105.0053201	39.7656547
-8549	6887	6888	0.0973098804153082	0.0973098804153082	-105.0053201	39.7656547	-105.0064586	39.7656532
-8550	6888	4190	0.138652686970481	0.138652686970481	-105.0064586	39.7656532	-105.0080808	39.7656511
-8551	4190	2516	0.130567043389136	0.130567043389136	-105.0080808	39.7656511	-105.0096084	39.7656491
-8552	2516	6727	0.134515842897036	0.134515842897036	-105.0096084	39.7656491	-105.0111822	39.7656471
-8553	6727	4804	0.136148376446663	0.136148376446663	-105.0111822	39.7656471	-105.0127751	39.765645
-8555	6890	6891	0.127464290413413	0.127464290413413	-105.0143648	39.7656412	-105.0158561	39.7656402
-8558	4625	1248	0.132737908659339	0.132737908659339	-105.0189635	39.7656391	-105.0205165	39.7656381
-8560	4557	2726	0.131937670977173	0.131937670977173	-105.0220695	39.765634	-105.0236131	39.7656257
-8561	2726	6892	0.133086814424956	0.133086814424956	-105.0236131	39.7656257	-105.0251701	39.7656134
-8562	6892	6893	0.0108053798662109	0.0108053798662109	-105.0251701	39.7656134	-105.0252908	39.7655845
-8564	6894	6753	0.13855912942418	0.13855912942418	-105.0259502	39.7655831	-105.0275713	39.7655797
-8565	6753	3977	0.202975190536315	0.202975190536315	-105.0275713	39.7655797	-105.029946	39.7655924
-8567	4726	5125	0.0514216994322944	0.0514216994322944	-104.9698076	39.7693083	-104.970211	39.7696514
-8569	6895	2262	0.104167713702112	0.104167713702112	-104.9317267	39.7692334	-104.9305079	39.7692334
-8570	2262	3612	0.100511868469799	0.100511868469799	-104.9305079	39.7692334	-104.929332	39.7692466
-8571	3612	6896	0.101962634245626	0.101962634245626	-104.929332	39.7692466	-104.928139	39.7692466
-8572	6896	2111	0.0983046285910296	0.0983046285910296	-104.928139	39.7692466	-104.9269888	39.7692466
-8573	2111	6000	0.10637347320659	0.10637347320659	-104.9269888	39.7692466	-104.9257444	39.7692291
-8574	6000	6897	0.0969032855683131	0.0969032855683131	-104.9257444	39.7692291	-104.9246113	39.7692598
-8575	6897	6898	1.19574032306189	1.19574032306189	-104.9246113	39.7692598	-104.9106207	39.7692636
-8576	3909	1049	0.101955415333633	0.101955415333633	-104.9634376	39.7692079	-104.9622462	39.7692541
-8577	1049	6280	0.110396580345644	0.110396580345644	-104.9622462	39.7692541	-104.9609549	39.7692782
-8580	4727	6902	0.104166457963925	0.104166457963925	-104.9683879	39.7700633	-104.9671691	39.7700633
-8581	6902	5404	0.105633279342784	0.105633279342784	-104.9671691	39.7700633	-104.9659333	39.7700479
-8582	5404	3137	0.103462723581867	0.103462723581867	-104.9659333	39.7700479	-104.9647229	39.7700633
-8583	3137	3910	0.106566211179802	0.106566211179802	-104.9647229	39.7700633	-104.9634764	39.7700397
-8585	6685	6904	0.1009798833353	0.1009798833353	-104.9499024	39.769204	-104.9487209	39.769203
-8586	6904	6905	0.0978861772455395	0.0978861772455395	-104.9487209	39.769203	-104.9475756	39.7692051
-8588	6906	6907	0.0919209174538617	0.0919209174538617	-104.947479	39.769204	-104.9464035	39.7692009
-8589	6907	3448	0.0130685497791993	0.0130685497791993	-104.9464035	39.7692009	-104.9462506	39.769202
-8590	3448	6908	0.0816132292801626	0.0816132292801626	-104.9462506	39.769202	-104.9452957	39.7691999
-8591	6908	6909	0.0115722967665996	0.0115722967665996	-104.9452957	39.7691999	-104.9451603	39.7691999
-8592	6909	6910	0.0993816484498638	0.0993816484498638	-104.9451603	39.7691999	-104.9439975	39.7691989
-8593	6910	805	0.0976551438474913	0.0976551438474913	-104.9439975	39.7691989	-104.9428549	39.7691989
-8594	805	6911	0.0993747261569693	0.0993747261569693	-104.9428549	39.7691989	-104.9416922	39.7691937
-8595	6911	6912	0.089888887106785	0.089888887106785	-104.9416922	39.7691937	-104.9406406	39.7691809
-8596	6912	6913	0.0146747703329366	0.0146747703329366	-104.9406406	39.7691809	-104.9404689	39.7691809
-8598	6914	1237	0.101225406841245	0.101225406841245	-105.0111738	39.7765593	-105.0123583	39.7765593
-8600	4811	2178	0.0990205816012607	0.0990205816012607	-105.0134913	39.7765593	-105.01465	39.7765593
-8602	596	6305	0.0508308915230223	0.0508308915230223	-105.015268	39.7765659	-105.0158628	39.7765644
-8603	6305	350	0.0658146671565848	0.0658146671565848	-105.0158628	39.7765644	-105.0166327	39.7765791
-8604	350	6425	0.0344816945169531	0.0344816945169531	-105.0166327	39.7765791	-105.0170361	39.7765857
-8605	6425	6423	0.0330039992635189	0.0330039992635189	-105.0170361	39.7765857	-105.0174223	39.7765857
-8606	6423	5343	0.065281602891384	0.065281602891384	-105.0174223	39.7765857	-105.0181862	39.7765857
-8607	5343	4631	0.0645633414559121	0.0645633414559121	-105.0181862	39.7765857	-105.0189415	39.7765989
-8608	4631	4639	0.0344816846016407	0.0344816846016407	-105.0189415	39.7765989	-105.0193449	39.7766055
-8610	1260	4538	0.0975702004070908	0.0975702004070908	-105.0205036	39.7766121	-105.0216452	39.7766253
-8611	4538	4546	0.0337389213160247	0.0337389213160247	-105.0216452	39.7766253	-105.02204	39.7766253
-8612	4546	6284	0.0652815653305245	0.0652815653305245	-105.02204	39.7766253	-105.0228039	39.7766253
-8613	6284	2702	0.0682127836725729	0.0682127836725729	-105.0228039	39.7766253	-105.0236021	39.7766253
-8614	2702	2716	0.0295959518245788	0.0295959518245788	-105.0236021	39.7766253	-105.0239484	39.7766282
-8615	2716	6915	0.102272155307925	0.102272155307925	-105.0239484	39.7766282	-105.0251451	39.7766366
-8617	277	6916	0.0242091643473284	0.0242091643473284	-104.9875916	39.7783304	-104.9878486	39.7782388
-8618	6916	6917	0.127799932481727	0.127799932481727	-104.9878486	39.7782388	-104.9879258	39.777091
-8620	6918	6919	0.100490474583826	0.100490474583826	-104.9981886	39.7765528	-104.9993645	39.7765528
-8621	6919	3936	0.103902551113693	0.103902551113693	-104.9993645	39.7765528	-105.0005802	39.7765663
-8623	5625	109	0.104159188317199	0.104159188317199	-105.0017162	39.7765726	-105.002935	39.7765792
-9852	7555	7556	0.127428116197139	0.127428116197139	-105.0451391	39.7751943	-105.0452485	39.7763372
-8625	720	6920	0.107136629659166	0.107136629659166	-105.0041538	39.776566	-105.005407	39.7765396
-8626	6920	6921	0.0878190742496679	0.0878190742496679	-105.005407	39.7765396	-105.0064346	39.7765342
-8627	6921	760	0.053327069779034	0.053327069779034	-105.0064346	39.7765342	-105.0070586	39.7765312
-8628	760	4203	0.0493954421158038	0.0493954421158038	-105.0070586	39.7765312	-105.0076366	39.7765332
-19719	10631	10629	0.0181769844157554	0.0181769844157554	-105.0042586	39.7344481	-105.0042425	39.7342851
-8629	4203	4204	0.0379739020862165	0.0379739020862165	-105.0076366	39.7765332	-105.0080809	39.7765386
-8630	4204	1070	0.0609601987006813	0.0609601987006813	-105.0080809	39.7765386	-105.0087942	39.7765334
-8631	1070	1071	0.0198138913639204	0.0198138913639204	-105.0087942	39.7765334	-105.0090259	39.7765399
-8632	1071	2506	0.0820743434648716	0.0820743434648716	-105.0090259	39.7765399	-105.0099863	39.7765386
-8634	6922	6923	0.0332474984310345	0.0332474984310345	-105.0181826	39.7608206	-105.018184	39.7611196
-8635	6923	6924	0.0309457475923951	0.0309457475923951	-105.018184	39.7611196	-105.0181853	39.7613979
-8636	6924	6925	0.06835161173269	0.06835161173269	-105.0181853	39.7613979	-105.0181866	39.7620126
-8641	2302	152	0.296479047850973	0.296479047850973	-105.0087181	39.6957726	-105.008717	39.6931063
-8642	152	1739	0.201132602649999	0.201132602649999	-105.008717	39.6931063	-105.0087303	39.6912975
-8643	1739	1717	0.0492912051446921	0.0492912051446921	-105.0087303	39.6912975	-105.0087646	39.690855
-8645	6315	6820	0.175487833230143	0.175487833230143	-105.0085636	39.7055461	-105.0085636	39.7039679
-8646	6820	764	0.157172405718933	0.157172405718933	-105.0085636	39.7039679	-105.0086065	39.7025548
-8647	764	6004	0.389410143877071	0.389410143877071	-105.0086065	39.7025548	-105.0093641	39.6991016
-8648	6004	6244	0.10052021368651	0.10052021368651	-105.0093641	39.6991016	-105.0093641	39.6981976
-11455	8264	8265	0.215908830963319	0.215908830963319	-104.9897645	39.7839357	-104.9903119	39.7820401
-8649	6244	6929	0.161155152616492	0.161155152616492	-105.0093641	39.6981976	-105.0093602	39.6967483
-8651	6930	6931	0.00809135923630026	0.00809135923630026	-105.0087589	39.6894757	-105.0087696	39.6894034
-8652	6931	6869	0.0905079323611068	0.0905079323611068	-105.0087696	39.6894034	-105.0087904	39.6885896
-8653	6869	6932	0.702159216296169	0.702159216296169	-105.0087904	39.6885896	-105.0089185	39.6822757
-8654	4432	6933	0.289985249196455	0.289985249196455	-105.0086074	39.7174296	-105.0086074	39.7148217
-8655	6933	4666	0.0976954476351155	0.0976954476351155	-105.0086074	39.7148217	-105.0086417	39.7139435
-8656	4666	1333	0.0998446345260267	0.0998446345260267	-105.0086417	39.7139435	-105.0086503	39.7130456
-8657	1333	1388	0.0991189577824547	0.0991189577824547	-105.0086503	39.7130456	-105.0086331	39.7121543
-8658	1388	6935	0.105783123390058	0.105783123390058	-105.0086331	39.7121543	-105.008643	39.711203
-8659	6935	6850	0.108467199591529	0.108467199591529	-105.008643	39.711203	-105.0086666	39.7102277
-8660	6850	4706	0.0984536865396038	0.0984536865396038	-105.0086666	39.7102277	-105.0086237	39.7093429
-8661	4706	6936	0.0998638834924626	0.0998638834924626	-105.0086237	39.7093429	-105.0086065	39.7084449
-8662	6936	1757	0.0991299509071506	0.0991299509071506	-105.0086065	39.7084449	-105.0085894	39.7075535
-8664	2103	5985	0.0990139620475444	0.0990139620475444	-104.9269671	39.7811601	-104.9258084	39.7811601
-8665	5985	6937	0.103423317739921	0.103423317739921	-104.9258084	39.7811601	-104.9245981	39.7811601
-8666	6937	6938	0.197320023520399	0.197320023520399	-104.9245981	39.7811601	-104.9222891	39.7811779
-8667	6939	6940	0.0449145362146055	0.0449145362146055	-104.9592691	39.7819637	-104.9587435	39.7819608
-8668	6940	5016	0.051579913616047	0.051579913616047	-104.9587435	39.7819608	-104.9581399	39.7819575
-8670	6941	5111	0.0702390251054822	0.0702390251054822	-104.972039	39.782685	-104.971535	39.782186
-8671	5111	4709	0.111086762480312	0.111086762480312	-104.971535	39.782186	-104.970235	39.782186
-8672	4709	6805	0.12579570489738	0.12579570489738	-104.970235	39.782186	-104.968799	39.7819369
-8673	6805	6942	0.0911912161186586	0.0911912161186586	-104.968799	39.7819369	-104.9677319	39.7819277
-8674	6942	6943	0.0891583873267196	0.0891583873267196	-104.9677319	39.7819277	-104.9666886	39.7819375
-8675	6943	5415	0.0932705447088281	0.0932705447088281	-104.9666886	39.7819375	-104.9655971	39.7819384
-8676	5415	3141	0.0911590609752313	0.0911590609752313	-104.9655971	39.7819384	-104.9645304	39.7819277
-8677	3141	6944	0.0907415627456138	0.0907415627456138	-104.9645304	39.7819277	-104.9634685	39.7819252
-8678	6944	6945	0.0904253930261683	0.0904253930261683	-104.9634685	39.7819252	-104.9624103	39.7819277
-8679	6945	6282	0.0922034833120112	0.0922034833120112	-104.9624103	39.7819277	-104.9613313	39.7819318
-8680	6282	6946	0.0889556226914396	0.0889556226914396	-104.9613313	39.7819318	-104.9602903	39.7819343
-8681	6946	6947	0.115025423362082	0.115025423362082	-104.9602903	39.7819343	-104.9592799	39.7826178
-19720	10629	10630	0.00318458504180934	0.00318458504180934	-105.0042425	39.7342851	-105.0042609	39.7342602
-8684	4222	6948	0.095205143123347	0.095205143123347	-104.9869216	39.781959	-104.9858077	39.7819768
-8685	6948	6949	0.0983217542586648	0.0983217542586648	-104.9858077	39.7819768	-104.9846576	39.7819504
-8686	6949	970	0.0973398284250994	0.0973398284250994	-104.9846576	39.7819504	-104.9835185	39.781945
-8732	6248	6975	0.200150775141685	0.200150775141685	-105.0414185	39.6985547	-105.0413837	39.6967549
-8687	970	6950	0.0518030391212137	0.0518030391212137	-104.9835185	39.781945	-104.9829139	39.7819109
-8688	6950	5288	0.0521176321182923	0.0521176321182923	-104.9829139	39.7819109	-104.9823077	39.7818593
-8689	5288	3153	0.0937167269922867	0.0937167269922867	-104.9823077	39.7818593	-104.981211	39.7818645
-8690	3153	4969	0.095648805014101	0.095648805014101	-104.981211	39.7818645	-104.9800922	39.781891
-8691	4969	6951	0.121296465267735	0.121296465267735	-104.9800922	39.781891	-104.9786733	39.78186
-8717	1073	2508	0.0718764157350201	0.0718764157350201	-105.0096773	39.7790452	-105.0105184	39.7790452
-8692	6951	6952	0.17298014935093	0.17298014935093	-104.9786733	39.78186	-104.9777379	39.7804804
-8694	2653	4114	0.0446473392844233	0.0446473392844233	-104.9518556	39.7819252	-104.9513332	39.7819179
-8695	4114	6503	0.0806749392848293	0.0806749392848293	-104.9513332	39.7819179	-104.9503891	39.7819179
-11460	8268	8269	0.0284404063889237	0.0284404063889237	-104.9407004	39.7790485	-104.9404976	39.7792513
-8696	6503	6953	0.0279965631557129	0.0279965631557129	-104.9503891	39.7819179	-104.9500616	39.7819108
-8698	6779	1327	0.149226176774822	0.149226176774822	-105.0454279	39.7143249	-105.0452398	39.7129907
-8700	4207	6955	0.0359776758472589	0.0359776758472589	-105.0146092	39.7516734	-105.0147293	39.7519835
-8701	6955	6956	0.0798254305300323	0.0798254305300323	-105.0147293	39.7519835	-105.015237	39.752586
-8702	4494	6957	0.0178038045740406	0.0178038045740406	-105.0052335	39.7402363	-105.0052308	39.7403964
-8703	6957	6958	0.00431775087438634	0.00431775087438634	-105.0052308	39.7403964	-105.0052288	39.7404352
-8704	6958	2148	0.120300859607691	0.120300859607691	-105.0052288	39.7404352	-105.0061384	39.7412606
-8705	2148	6960	0.151431823224066	0.151431823224066	-105.0061384	39.7412606	-105.0073809	39.7422311
-8706	6960	6961	0.22023318510828	0.22023318510828	-105.0073809	39.7422311	-105.0086651	39.743948
-8707	6961	6962	0.137151335408755	0.137151335408755	-105.0086651	39.743948	-105.0094763	39.7450121
-8708	6962	6963	0.0242055632480646	0.0242055632480646	-105.0094763	39.7450121	-105.0095744	39.7452163
-8709	6963	2150	0.0925314192010664	0.0925314192010664	-105.0095744	39.7452163	-105.0101838	39.745904
-8710	2150	6964	0.068609567754435	0.068609567754435	-105.0101838	39.745904	-105.0105704	39.7464447
-8712	6808	6965	0.180937589294771	0.180937589294771	-104.9237959	39.7045639	-104.9216912	39.7047247
-8713	6966	761	0.0469463147130834	0.0469463147130834	-105.0064198	39.7790396	-105.0069691	39.779033
-8714	761	4205	0.0748160898012537	0.0748160898012537	-105.0069691	39.779033	-105.0078446	39.779033
-8715	4205	4398	0.0770157906569643	0.0770157906569643	-105.0078446	39.779033	-105.0087458	39.7790264
-8716	4398	1073	0.0796290264805075	0.0796290264805075	-105.0087458	39.7790264	-105.0096773	39.7790452
-8746	6967	5689	0.127751851222379	0.127751851222379	-105.040852	39.7080241	-105.040852	39.7068752
-8719	271	2710	0.601401594481822	0.601401594481822	-105.0214373	39.7400355	-105.0236301	39.7451745
-11825	321	7799	0.115552151499094	0.115552151499094	-105.0159659	39.7510962	-105.0150392	39.7518527
-8720	2710	6969	0.136362355996719	0.136362355996719	-105.0236301	39.7451745	-105.0252247	39.7451495
-8721	6969	6742	0.135618421861975	0.135618421861975	-105.0252247	39.7451495	-105.0268109	39.745157
-8722	6742	6141	0.132822121773709	0.132822121773709	-105.0268109	39.745157	-105.0283644	39.7451504
-8723	6141	4014	0.136061285283967	0.136061285283967	-105.0283644	39.7451504	-105.0299558	39.7451547
-8724	4014	6970	0.13345730315891	0.13345730315891	-105.0299558	39.7451547	-105.0315167	39.7451646
-8725	6970	6971	0.133022272157071	0.133022272157071	-105.0315167	39.7451646	-105.0330722	39.7451387
-8726	6971	6972	0.0472485991851602	0.0472485991851602	-105.0330722	39.7451387	-105.0336248	39.7451433
-8727	6972	3385	0.0819883397602158	0.0819883397602158	-105.0336248	39.7451433	-105.0345837	39.7451514
-8729	6959	6973	0.0390638293285452	0.0390638293285452	-105.0353181	39.7451528	-105.035775	39.7451536
-19721	10630	10622	0.0559555137804764	0.0559555137804764	-105.0042609	39.7342602	-105.0045066	39.7337938
-8731	6974	6248	0.201212600703242	0.201212600703242	-105.0414357	39.7003642	-105.0414185	39.6985547
-8733	6975	1496	0.201553427836696	0.201553427836696	-105.0413837	39.6967549	-105.0413928	39.6949423
-8734	1496	185	0.202686112287629	0.202686112287629	-105.0413928	39.6949423	-105.0413928	39.6931195
-8735	185	1713	0.204711477509581	0.204711477509581	-105.0413928	39.6931195	-105.041058	39.6912966
-8736	1713	6976	0.201975316682274	0.201975316682274	-105.041058	39.6912966	-105.0410323	39.6894803
-8737	6976	1579	0.167005027356132	0.167005027356132	-105.0410323	39.6894803	-105.0411657	39.6879819
-8738	1579	6977	0.309934492691155	0.309934492691155	-105.0411657	39.6879819	-105.0411743	39.6851946
-8739	1105	5871	0.176266848523138	0.176266848523138	-105.0409021	39.716554	-105.0408965	39.7149688
-8740	5871	1323	0.177439022365804	0.177439022365804	-105.0408965	39.7149688	-105.0408805	39.7133731
-8741	1323	1379	0.176412320749863	0.176412320749863	-105.0408805	39.7133731	-105.0408718	39.7117866
-8742	1379	6978	0.0608448771470547	0.0608448771470547	-105.0408718	39.7117866	-105.040895	39.7112397
-8744	6843	4695	0.114533137035158	0.114533137035158	-105.0408778	39.7104804	-105.0408692	39.7094504
-11961	2694	6570	0.292174399102456	0.292174399102456	-104.9834919	39.7552636	-104.981101	39.7571413
-8745	4695	6967	0.15860414860374	0.15860414860374	-105.0408692	39.7094504	-105.040852	39.7080241
-8747	5689	5336	0.153402847395547	0.153402847395547	-105.040852	39.7068752	-105.0408719	39.7054957
-8749	6979	6980	0.0492417429246164	0.0492417429246164	-105.0408435	39.7039169	-105.0408692	39.7034745
-8750	6980	6981	0.0330798745582329	0.0330798745582329	-105.0408692	39.7034745	-105.040852	39.7031773
-8751	6981	6982	0.110138574841473	0.110138574841473	-105.040852	39.7031773	-105.040852	39.7021868
-8756	6986	6701	0.0557097589480938	0.0557097589480938	-104.9873935	39.7422064	-104.9878331	39.7418366
-8757	6701	6987	0.145037158424782	0.145037158424782	-104.9878331	39.7418366	-104.9890246	39.7409082
-8759	6988	648	0.139238555969963	0.139238555969963	-104.9320716	39.7401271	-104.9320748	39.7413793
-8760	648	683	0.0653158999110773	0.0653158999110773	-104.9320748	39.7413793	-104.9320748	39.7419667
-8761	683	6989	0.0669742957793313	0.0669742957793313	-104.9320748	39.7419667	-104.9320802	39.742569
-8762	6989	1988	0.0901527916408211	0.0901527916408211	-104.9320802	39.742569	-104.932067	39.7433797
-8763	1988	1972	0.0388238770836602	0.0388238770836602	-104.932067	39.7433797	-104.9320748	39.7437288
-8764	1972	4588	0.104222260658419	0.104222260658419	-104.9320748	39.7437288	-104.9320576	39.744666
-8765	4588	4594	0.0293535516568484	0.0293535516568484	-104.9320576	39.744666	-104.9320662	39.7449299
-8766	4594	6498	0.0726584855189905	0.0726584855189905	-104.9320662	39.7449299	-104.9320748	39.7455833
-8767	6498	6481	0.0601855426433911	0.0601855426433911	-104.9320748	39.7455833	-104.9320576	39.7461244
-8768	6481	2470	0.141630886586724	0.141630886586724	-104.9320576	39.7461244	-104.932049	39.7473981
-10003	6678	7628	0.0924131784678609	0.0924131784678609	-104.9498214	39.7861927	-104.9487399	39.7861861
-8771	6991	2401	0.344415463633539	0.344415463633539	-104.9317465	39.7717305	-104.9317412	39.7748279
-8772	2401	6992	0.121260728440928	0.121260728440928	-104.9317412	39.7748279	-104.9317318	39.7759184
-8773	6992	6604	0.426798504146684	0.426798504146684	-104.9317318	39.7759184	-104.9316605	39.7797563
-8774	6604	6993	0.0779497578426637	0.0779497578426637	-104.9316605	39.7797563	-104.9316377	39.7804571
-8775	6993	6994	0.328092841207435	0.328092841207435	-104.9316377	39.7804571	-104.9316278	39.7834077
-8776	6994	6997	0.409387625139532	0.409387625139532	-104.9316278	39.7834077	-104.931834	39.787086
-8777	6997	6998	0.0280465218891248	0.0280465218891248	-104.931834	39.787086	-104.931634	39.787286
-8778	6998	6999	0.240899685742567	0.240899685742567	-104.931634	39.787286	-104.9318001	39.7894487
-8780	7001	7002	0.172502393042501	0.172502393042501	-104.9316416	39.7162506	-104.9316252	39.7178019
-8781	7002	2338	0.177215228547836	0.177215228547836	-104.9316252	39.7178019	-104.9316115	39.7193956
-8782	2338	7003	0.175043780881437	0.175043780881437	-104.9316115	39.7193956	-104.9316056	39.7209698
-8783	7003	4782	0.243888745485023	0.243888745485023	-104.9316056	39.7209698	-104.9316237	39.7231631
-8784	4782	6558	0.132880580598771	0.132880580598771	-104.9316237	39.7231631	-104.9316139	39.7243581
-8785	6558	7004	0.106726338328234	0.106726338328234	-104.9316139	39.7243581	-104.9316074	39.7253179
-8787	2471	5909	0.20581191299575	0.20581191299575	-104.9316893	39.7473987	-104.9316976	39.7492496
-8789	7005	797	0.197387527656916	0.197387527656916	-104.931694	39.751069	-104.9317111	39.7528441
-10028	5604	7642	0.0520984767564003	0.0520984767564003	-105.0016005	39.7273224	-105.0022097	39.7273219
-8790	797	7006	0.203747525811746	0.203747525811746	-104.9317111	39.7528441	-104.9316943	39.7546764
-8793	7007	7008	0.196982052931457	0.196982052931457	-104.9317157	39.7565591	-104.9317193	39.7583306
-8794	7008	3062	0.205201724322207	0.205201724322207	-104.9317193	39.7583306	-104.9317072	39.760176
-8795	3062	7009	0.184895139192435	0.184895139192435	-104.9317072	39.760176	-104.9317039	39.7618388
-8796	7009	7010	0.0217892666308482	0.0217892666308482	-104.9317039	39.7618388	-104.9318494	39.7619997
-8798	7011	7012	0.200694925007541	0.200694925007541	-104.93161	39.725617	-104.9316338	39.7274218
-8799	7012	6367	0.0706060127631708	0.0706060127631708	-104.9316338	39.7274218	-104.9316211	39.7280567
-8800	6367	7013	0.13113311504647	0.13113311504647	-104.9316211	39.7280567	-104.9316269	39.729236
-8801	7013	5949	0.203040029193448	0.203040029193448	-104.9316269	39.729236	-104.9315933	39.7310618
-11962	6570	4451	0.149457420972406	0.149457420972406	-104.981101	39.7571413	-104.9798733	39.7580983
-8802	5949	5141	0.190833355605879	0.190833355605879	-104.9315933	39.7310618	-104.931599	39.732778
-8804	2236	4909	0.189094446681925	0.189094446681925	-104.9314966	39.732987	-104.9315358	39.7346873
-8805	4909	6613	0.199822606976101	0.199822606976101	-104.9315358	39.7346873	-104.9314781	39.7364838
-8806	6613	7014	0.196131290300381	0.196131290300381	-104.9314781	39.7364838	-104.9315168	39.7382474
-8807	7014	7015	0.207545863379423	0.207545863379423	-104.9315168	39.7382474	-104.9315223	39.7401139
-10052	7653	1099	0.0482102658012733	0.0482102658012733	-105.0400098	39.7282525	-105.0405735	39.7282472
-8809	4072	6057	0.192026411520301	0.192026411520301	-105.0310648	39.7838975	-105.0310367	39.7856243
-20532	10847	10848	0.0340308021704454	0.0340308021704454	-105.0229893	39.7608356	-105.0233869	39.7608513
-8810	6057	5797	0.200508266391225	0.200508266391225	-105.0310367	39.7856243	-105.031046	39.7874275
-8812	7016	7017	0.20408918142509	0.20408918142509	-105.030967	39.729303	-105.0309776	39.7311384
-8813	7017	6590	0.201086157953578	0.201086157953578	-105.0309776	39.7311384	-105.0309859	39.7329468
-8814	6590	7018	0.202602619918689	0.202602619918689	-105.0309859	39.7329468	-105.0310033	39.7347688
-8816	7019	4577	0.129538344988774	0.129538344988774	-105.0314796	39.7403377	-105.0315052	39.7415025
-8817	4577	6441	0.138680608354748	0.138680608354748	-105.0315052	39.7415025	-105.0314863	39.7427496
-8818	6441	5293	0.134070515766336	0.134070515766336	-105.0314863	39.7427496	-105.0315166	39.7439551
-8819	5293	6970	0.13449026404854	0.13449026404854	-105.0315166	39.7439551	-105.0315167	39.7451646
-8820	6970	13	0.134902446032247	0.134902446032247	-105.0315167	39.7451646	-105.0315114	39.7463778
-8822	7020	382	0.124884712447894	0.124884712447894	-105.0315108	39.746461	-105.0315032	39.7475841
-8823	382	7021	0.135229787557418	0.135229787557418	-105.0315032	39.7475841	-105.0315281	39.7488001
-8824	7021	7022	0.132193897477211	0.132193897477211	-105.0315281	39.7488001	-105.0315597	39.7499887
-8826	7023	7024	0.137222417835135	0.137222417835135	-105.0315207	39.751179	-105.0315379	39.752413
-8827	7024	7025	0.130431649234377	0.130431649234377	-105.0315379	39.752413	-105.031538	39.753586
-8828	7025	7026	0.138849105164774	0.138849105164774	-105.031538	39.753586	-105.0315379	39.7548347
-8830	6206	7027	0.182945185531037	0.182945185531037	-105.0312569	39.7260772	-105.031276	39.7277224
-8831	7027	7028	0.175756239821697	0.175756239821697	-105.031276	39.7277224	-105.0312846	39.729303
-20483	10830	10831	0.0908860058291454	0.0908860058291454	-105.0204376	39.7583647	-105.0193747	39.7583443
-8833	7029	7030	0.203242108673725	0.203242108673725	-105.0322588	39.7548413	-105.0322599	39.7566691
-8834	7030	7031	0.150413392817758	0.150413392817758	-105.0322599	39.7566691	-105.0322607	39.7580218
-8835	7031	2977	0.0550192556799276	0.0550192556799276	-105.0322607	39.7580218	-105.032261	39.7585166
-8837	657	1886	0.0454008957908892	0.0454008957908892	-105.0322612	39.758985	-105.0322615	39.7593933
-8838	1886	528	0.053551482812009	0.053551482812009	-105.0322615	39.7593933	-105.0322618	39.7598749
-8841	6092	1889	0.0508386682559075	0.0508386682559075	-105.0322556	39.7612283	-105.0322578	39.7616855
-8842	1889	7033	0.0498613554304776	0.0498613554304776	-105.0322578	39.7616855	-105.0322624	39.7621339
-8843	7033	7034	0.00951828955857414	0.00951828955857414	-105.0322624	39.7621339	-105.0322625	39.7622195
-8844	7034	7035	0.036894485571684	0.036894485571684	-105.0322625	39.7622195	-105.0322628	39.7625513
-8845	7035	6085	0.0480584959434146	0.0480584959434146	-105.0322628	39.7625513	-105.0322636	39.7629835
-8847	742	4527	0.0498820470218468	0.0498820470218468	-105.0322639	39.7634453	-105.0322641	39.7638939
-8848	4527	7036	0.0491481642660053	0.0491481642660053	-105.0322641	39.7638939	-105.0322644	39.7643359
-8849	7036	5246	0.0491592800418928	0.0491592800418928	-105.0322644	39.7643359	-105.0322646	39.764778
-8850	5246	7037	0.0481362905740046	0.0481362905740046	-105.0322646	39.764778	-105.0322649	39.7652109
-8851	7037	7038	0.0454453697348376	0.0454453697348376	-105.0322649	39.7652109	-105.0322651	39.7656196
-8852	7038	7039	0.0963504134151864	0.0963504134151864	-105.0322651	39.7656196	-105.0322656	39.7664861
-8853	7039	7040	0.0519319872070824	0.0519319872070824	-105.0322656	39.7664861	-105.0322731	39.7669531
-8854	7040	1663	0.0497523111621545	0.0497523111621545	-105.0322731	39.7669531	-105.0322802	39.7674005
-8855	1663	7041	0.0529510578680093	0.0529510578680093	-105.0322802	39.7674005	-105.0322795	39.7678767
-8856	7041	7042	0.0505381295725577	0.0505381295725577	-105.0322795	39.7678767	-105.0322788	39.7683312
-8857	7042	7043	0.0514848181594461	0.0514848181594461	-105.0322788	39.7683312	-105.0322741	39.7687942
-8858	7043	7044	0.0741692266458179	0.0741692266458179	-105.0322741	39.7687942	-105.0322674	39.7694612
-8861	7046	2493	0.132768776448504	0.132768776448504	-105.0314652	39.7779248	-105.0314566	39.7791188
-20533	10817	10849	0.0041587253937853	0.0041587253937853	-105.0250744	39.7613255	-105.0250742	39.7612881
-8864	2531	1932	0.0596099109005186	0.0596099109005186	-105.0311131	39.7379476	-105.0311255	39.7384836
-8865	1932	7047	0.205921914653592	0.205921914653592	-105.0311255	39.7384836	-105.0311242	39.7403355
-8867	7048	4043	0.179136537042624	0.179136537042624	-105.0312304	39.7165547	-105.031239	39.7181657
-8868	4043	7049	0.176989263158491	0.176989263158491	-105.031239	39.7181657	-105.0312428	39.7197574
-8869	7049	7050	0.100459005094488	0.100459005094488	-105.0312428	39.7197574	-105.0312551	39.7206608
-8871	7051	5531	0.109415807818528	0.109415807818528	-105.031138	39.773086	-105.031138	39.77407
-8872	5531	7052	0.29371056329192	0.29371056329192	-105.031138	39.77407	-105.031078	39.776711
-8874	7053	6824	0.0545745509742182	0.0545745509742182	-105.0315035	39.7694414	-105.0315024	39.7699322
-8875	6824	2424	0.081950775026488	0.081950775026488	-105.0315024	39.7699322	-105.0315008	39.7706692
-8876	2424	7054	0.050315704306832	0.050315704306832	-105.0315008	39.7706692	-105.0315008	39.7711217
-8877	7054	3228	0.0836964212853156	0.0836964212853156	-105.0315008	39.7711217	-105.0315008	39.7718744
-8879	4957	4034	0.0947298154946536	0.0947298154946536	-105.0329814	39.6985547	-105.03299	39.6977028
-8881	7055	5863	0.174726781940175	0.174726781940175	-105.0337024	39.7165547	-105.0336852	39.7149834
-8882	5863	1311	0.179868913340571	0.179868913340571	-105.0336852	39.7149834	-105.0336852	39.7133658
-8883	1311	7056	0.241558820409428	0.241558820409428	-105.0336852	39.7133658	-105.0336594	39.7111935
-8885	7057	1506	0.131503726493835	0.131503726493835	-105.0329041	39.6960716	-105.0332303	39.6949159
-8886	1506	7058	0.131454642278669	0.131454642278669	-105.0332303	39.6949159	-105.0332303	39.6937337
-8888	1059	7059	0.104267738567829	0.104267738567829	-104.9500415	39.7029556	-104.9500388	39.7020179
-10122	3779	7683	0.15407703010384	0.15407703010384	-104.9472954	39.7291251	-104.9472804	39.7305107
-8890	4436	56	0.118965433489173	0.118965433489173	-104.9500303	39.7012585	-104.9500131	39.7001887
-8891	56	5316	0.100608812091724	0.100608812091724	-104.9500131	39.7001887	-104.9500303	39.699284
-8892	5316	3496	0.0998861232245216	0.0998861232245216	-104.9500303	39.699284	-104.9500131	39.6983858
-8893	3496	3665	0.201207219763356	0.201207219763356	-104.9500131	39.6983858	-104.9500131	39.6965763
-8894	3665	7060	0.199611951396181	0.199611951396181	-104.9500131	39.6965763	-104.9500436	39.6947813
-8895	7060	7061	0.203598851492666	0.203598851492666	-104.9500436	39.6947813	-104.9500177	39.6929504
-8896	7061	5840	0.200253664127546	0.200253664127546	-104.9500177	39.6929504	-104.9500299	39.6911495
-8897	5840	267	0.165246780486595	0.165246780486595	-104.9500299	39.6911495	-104.9500299	39.6896634
-8899	7062	7063	0.478103640034168	0.478103640034168	-104.9500436	39.6893239	-104.950296	39.6850286
-8900	7064	5164	0.146200467670157	0.146200467670157	-104.95025	39.7175567	-104.9499442	39.7162631
-8901	5164	6860	0.179928785347538	0.179928785347538	-104.9499442	39.7162631	-104.9499587	39.714645
-8902	6860	7065	0.0135383927129561	0.0135383927129561	-104.9499587	39.714645	-104.9499634	39.7145233
-8903	7065	2385	0.105505653234926	0.105505653234926	-104.9499634	39.7145233	-104.9496422	39.7136072
-8905	3637	7066	0.183542084850882	0.183542084850882	-104.9498644	39.7126594	-104.9498283	39.711009
-8907	5956	7067	0.0986953923423101	0.0986953923423101	-104.9735293	39.7569242	-104.9743469	39.7575509
-8908	7067	3021	0.00874922983807779	0.00874922983807779	-104.9743469	39.7575509	-104.974418	39.7576075
-20416	10767	10781	0.00791916641108638	0.00791916641108638	-105.0239411	39.7605037	-105.0240012	39.7604495
-8910	7068	4380	0.0528744797047038	0.0528744797047038	-104.9748473	39.7579376	-104.9752846	39.7582739
-8911	4380	7069	0.100067477522489	0.100067477522489	-104.9752846	39.7582739	-104.9761123	39.7589103
-8912	7069	7070	0.00503051016222424	0.00503051016222424	-104.9761123	39.7589103	-104.9761539	39.7589423
-8913	7070	7071	0.0533378396892988	0.0533378396892988	-104.9761539	39.7589423	-104.9765951	39.7592815
-8914	7071	7072	0.0517118729985249	0.0517118729985249	-104.9765951	39.7592815	-104.9770228	39.7596104
-8915	7072	7073	0.0528720185185965	0.0528720185185965	-104.9770228	39.7596104	-104.9774602	39.7599466
-8916	7073	7074	0.0524160104100909	0.0524160104100909	-104.9774602	39.7599466	-104.9778937	39.76028
-8917	7074	7075	0.0591259627190951	0.0591259627190951	-104.9778937	39.76028	-104.9783828	39.760656
-8918	7075	7076	0.0472141967853771	0.0472141967853771	-104.9783828	39.760656	-104.9787733	39.7609563
-8919	7076	7077	0.0523938554164358	0.0523938554164358	-104.9787733	39.7609563	-104.9792067	39.7612895
-8920	7077	7078	0.0519698920804767	0.0519698920804767	-104.9792067	39.7612895	-104.9796366	39.76162
-18299	6996	6464	0.157978818539649	0.157978818539649	-105.0409867	39.7766949	-105.041027	39.7752745
-18300	6464	5526	0.155386531700968	0.155386531700968	-105.041027	39.7752745	-105.0410378	39.7738771
-8921	7078	7079	0.0533446665935528	0.0533446665935528	-104.9796366	39.76162	-104.9800778	39.7619593
-8922	7079	6175	0.0539515629761608	0.0539515629761608	-104.9800778	39.7619593	-104.9805241	39.7623024
-8923	6175	7080	0.0522978151475426	0.0522978151475426	-104.9805241	39.7623024	-104.9809567	39.762635
-19723	10628	10634	0.0467495933951474	0.0467495933951474	-105.0039101	39.7341658	-105.0040521	39.7345718
-8924	7080	3310	0.051621129553778	0.051621129553778	-104.9809567	39.762635	-104.9813837	39.7629633
-8925	3310	7081	0.0537939712546602	0.0537939712546602	-104.9813837	39.7629633	-104.9818287	39.7633054
-8926	7081	7082	0.0517442194955157	0.0517442194955157	-104.9818287	39.7633054	-104.9822567	39.7636345
-8957	6821	767	0.155663516472162	0.155663516472162	-105.0121846	39.7039499	-105.012176	39.70255
-8928	6333	7083	0.0368397497726965	0.0368397497726965	-104.9848045	39.7253046	-104.9848713	39.7256319
-8930	7084	756	0.02205451477657	0.02205451477657	-104.985321	39.7750057	-104.9853038	39.7752036
-8931	756	1542	0.146566188527195	0.146566188527195	-104.9853038	39.7752036	-104.9853013	39.7765217
-8933	7085	7086	0.470303961651379	0.470303961651379	-104.9852266	39.7873956	-104.985181	39.791625
-8936	6193	6949	0.198646201862192	0.198646201862192	-104.9846257	39.7801641	-104.9846576	39.7819504
-8937	6949	7088	0.203154460121287	0.203154460121287	-104.9846576	39.7819504	-104.9846662	39.7837774
-8938	7088	7089	0.0315254339634626	0.0315254339634626	-104.9846662	39.7837774	-104.98467	39.7840609
-11963	4451	5499	0.142902063925945	0.142902063925945	-104.9798733	39.7580983	-104.978687	39.7590038
-8939	1547	4267	0.203186762796229	0.203186762796229	-104.9847116	39.7765295	-104.9847077	39.7783568
-8940	4267	281	0.118834586231474	0.118834586231474	-104.9847077	39.7783568	-104.9847034	39.7794255
-8942	4988	5631	0.199717559309749	0.199717559309749	-104.9850453	39.7165375	-104.9850024	39.7183333
-8943	5631	2363	0.114164400355602	0.114164400355602	-104.9850024	39.7183333	-104.9849833	39.7193599
-8944	2363	4145	0.172388156251151	0.172388156251151	-104.9849833	39.7193599	-104.9849945	39.7209102
-8945	4145	4750	0.181329134759237	0.181329134759237	-104.9849945	39.7209102	-104.9850078	39.7225409
-8946	4750	7090	0.0742131518569267	0.0742131518569267	-104.9850078	39.7225409	-104.9850136	39.7232083
-8947	7090	6563	0.101353119972535	0.101353119972535	-104.9850136	39.7232083	-104.9850303	39.7241197
-8949	561	652	0.180277903435168	0.180277903435168	-104.984845	39.7400568	-104.9848243	39.741678
-8950	652	7091	0.1782898608686	0.1782898608686	-104.9848243	39.741678	-104.9848475	39.7432813
-8951	7091	4618	0.177690137841113	0.177690137841113	-104.9848475	39.7432813	-104.9848531	39.7448793
-8952	4618	6484	0.148000947434632	0.148000947434632	-104.9848531	39.7448793	-104.9848486	39.7462103
-8953	6484	3683	0.147902463423831	0.147902463423831	-104.9848486	39.7462103	-104.9848394	39.7475404
-8955	7092	562	0.138318567115304	0.138318567115304	-104.9848557	39.7385982	-104.9848447	39.7398421
-14765	7355	5462	0.177046926118077	0.177046926118077	-104.9804554	39.7400222	-104.9804447	39.73843
-8958	767	6719	0.219350766482543	0.219350766482543	-105.012176	39.70255	-105.0125794	39.7006019
-8959	6719	6005	0.0551645975375965	0.0551645975375965	-105.0125794	39.7006019	-105.0128712	39.7001595
-8961	7093	7094	0.0134618314671123	0.0134618314671123	-105.000125	39.7424805	-105.00026	39.7424182
-8962	7094	7095	0.0768336523164077	0.0768336523164077	-105.00026	39.7424182	-105.0010418	39.7420775
-8964	4351	7096	0.187825105408858	0.187825105408858	-104.9417876	39.7564997	-104.9418048	39.7581888
-8966	5169	7097	0.173957232527163	0.173957232527163	-104.9413494	39.7162383	-104.9413358	39.7178027
-8967	7097	2358	0.178391537286392	0.178391537286392	-104.9413358	39.7178027	-104.9413272	39.719407
-8968	2358	4158	0.173186099094122	0.173186099094122	-104.9413272	39.719407	-104.9413274	39.7209645
-8969	4158	4745	0.175498953556533	0.175498953556533	-104.9413274	39.7209645	-104.9413272	39.7225428
-8970	4745	6540	0.175479189908249	0.175479189908249	-104.9413272	39.7225428	-104.9413381	39.7241209
-8971	6540	7098	0.165132887334241	0.165132887334241	-104.9413381	39.7241209	-104.9413186	39.7256059
-8974	900	4481	0.13673901951185	0.13673901951185	-104.9417276	39.7644767	-104.9417177	39.7657064
-8975	4481	2805	0.133564794339907	0.133564794339907	-104.9417177	39.7657064	-104.9417	39.7669075
-8976	2805	5271	0.130621351715569	0.130621351715569	-104.9417	39.7669075	-104.9417049	39.7680822
-8977	5271	6911	0.123597927289001	0.123597927289001	-104.9417049	39.7680822	-104.9416922	39.7691937
-8978	6911	7100	0.15221685519733	0.15221685519733	-104.9416922	39.7691937	-104.9417016	39.7705626
-8979	7100	6360	0.259362269049004	0.259362269049004	-104.9417016	39.7705626	-104.9416989	39.7728951
-8981	7102	704	0.204412961923	0.204412961923	-104.9418797	39.7401097	-104.9419371	39.7419475
-19726	10627	10635	0.0226092820114286	0.0226092820114286	-105.0051511	39.7346116	-105.0048867	39.7346105
-8984	7103	1210	0.168411442672594	0.168411442672594	-104.9418336	39.7256059	-104.9418512	39.7271204
-8985	1210	7104	0.0210253069731913	0.0210253069731913	-104.9418512	39.7271204	-104.9418336	39.727309
-8986	7104	3769	0.199568149574658	0.199568149574658	-104.9418336	39.727309	-104.9418526	39.7291037
-8987	3769	7105	0.154728508227155	0.154728508227155	-104.9418526	39.7291037	-104.9418583	39.7304952
-8988	7105	960	0.176377624617973	0.176377624617973	-104.9418583	39.7304952	-104.9418349	39.7320813
-8989	960	7106	0.174688777733473	0.174688777733473	-104.9418349	39.7320813	-104.9418263	39.7336523
-8990	7106	4897	0.160532597504136	0.160532597504136	-104.9418263	39.7336523	-104.9418217	39.735096
-8991	4897	7107	0.182971792068578	0.182971792068578	-104.9418217	39.735096	-104.9418165	39.7367415
-8992	7107	5494	0.175655210225522	0.175655210225522	-104.9418165	39.7367415	-104.9418112	39.7383212
-8994	7108	7109	0.103100291492917	0.103100291492917	-105.0251569	39.7347553	-105.0263626	39.7347585
-8995	7109	7110	0.101964294660044	0.101964294660044	-105.0263626	39.7347585	-105.027555	39.7347529
-8998	7112	6130	0.00642185713601216	0.00642185713601216	-105.0286006	39.7347486	-105.0286757	39.7347484
-8999	6130	3973	0.100482235790598	0.100482235790598	-105.0286757	39.7347484	-105.0298507	39.7347596
-9000	3973	7018	0.0985643830580019	0.0985643830580019	-105.0298507	39.7347596	-105.0310033	39.7347688
-9001	7018	1404	0.0976294798550341	0.0976294798550341	-105.0310033	39.7347688	-105.0321449	39.734782
-9002	1404	7113	0.0934722476940573	0.0934722476940573	-105.0321449	39.734782	-105.033238	39.734786
-9003	7113	3377	0.114974498647875	0.114974498647875	-105.033238	39.734786	-105.0345825	39.7347754
-9004	3377	5719	0.0923374297912636	0.0923374297912636	-105.0345825	39.7347754	-105.0355549	39.7344143
-9006	4633	4552	0.211900461491767	0.211900461491767	-105.0192915	39.7347429	-105.0217376	39.7344378
-9008	7114	1219	0.0873426128412716	0.0873426128412716	-105.0113249	39.7352378	-105.0123463	39.7352444
-9009	1219	7115	0.154859667381265	0.154859667381265	-105.0123463	39.7352444	-105.0141573	39.7352378
-9011	128	4195	0.0990809801322014	0.0990809801322014	-105.0065998	39.7352916	-105.0077585	39.7352875
-9012	4195	2526	0.225168737431611	0.225168737431611	-105.0077585	39.7352875	-105.0103699	39.7355479
-9015	7118	7119	0.0484685816363468	0.0484685816363468	-104.9975929	39.7352666	-104.9981597	39.7352703
-9016	7119	6647	0.0431240450937402	0.0431240450937402	-104.9981597	39.7352703	-104.998664	39.7352736
-9017	6647	7120	0.0651283567093235	0.0651283567093235	-104.998664	39.7352736	-104.9994256	39.7352803
-9020	7121	5612	0.0589161599786899	0.0589161599786899	-105.000878	39.7352858	-105.001567	39.735285
-9021	5612	7122	0.0519812671049742	0.0519812671049742	-105.001567	39.735285	-105.0021749	39.735285
-9022	7122	3734	0.0556068739901258	0.0556068739901258	-105.0021749	39.735285	-105.0028252	39.7352849
-9024	4852	7123	0.126059374848785	0.126059374848785	-104.987369	39.7352666	-104.9888432	39.7352618
-9025	7123	7124	0.118149722641793	0.118149722641793	-104.9888432	39.7352618	-104.9902249	39.7352572
-9026	7124	7125	0.121835161075312	0.121835161075312	-104.9902249	39.7352572	-104.9916497	39.7352526
-9027	7125	7126	0.110094663779518	0.110094663779518	-104.9916497	39.7352526	-104.9929372	39.7352483
-9028	7126	4678	0.101155068622002	0.101155068622002	-104.9929372	39.7352483	-104.99412	39.7352636
-9029	4678	4925	0.0375558738681089	0.0375558738681089	-104.99412	39.7352636	-104.9945592	39.735263
-9031	7127	5718	0.122304701667431	0.122304701667431	-105.0369772	39.7339305	-105.0356487	39.734338
-9033	7129	7130	0.00755996146089403	0.00755996146089403	-105.0369832	39.7347877	-105.0370687	39.7347704
-11437	7984	8034	0.589388539362218	0.589388539362218	-105.0218262	39.7840053	-105.0287237	39.7840235
-9034	7130	7131	0.0405147672355999	0.0405147672355999	-105.0370687	39.7347704	-105.0375424	39.7347779
-15917	9748	9104	0.13371062185673	0.13371062185673	-105.0432496	39.7156399	-105.0421714	39.7165106
-9036	7132	7133	0.0505601360898234	0.0505601360898234	-105.0381234	39.7347872	-105.0387146	39.7347945
-9037	7133	7134	0.050337833066874	0.050337833066874	-105.0387146	39.7347945	-105.0393032	39.7348018
-9039	2563	2043	0.341755774769512	0.341755774769512	-104.9865077	39.7643898	-104.983686	39.7665674
-9040	2043	4280	0.587618591665046	0.587618591665046	-104.983686	39.7665674	-104.97885	39.7703237
-9041	4280	2317	0.145996435168453	0.145996435168453	-104.97885	39.7703237	-104.977649	39.7712574
-9042	2317	7135	0.26875426467805	0.26875426467805	-104.977649	39.7712574	-104.9754213	39.7729633
-9044	4276	6167	0.145395831525207	0.145395831525207	-104.9744288	39.7737425	-104.9732245	39.7746661
-9045	6167	7136	0.583394412429138	0.583394412429138	-104.9732245	39.7746661	-104.9684185	39.7783922
-9046	7136	7137	0.0430989040252276	0.0430989040252276	-104.9684185	39.7783922	-104.9680592	39.7786642
-9048	7138	7139	0.17847978963111	0.17847978963111	-104.9721501	39.7400093	-104.9721564	39.7416144
-9049	7139	665	0.00426988518248375	0.00426988518248375	-104.9721564	39.7416144	-104.9721564	39.7416528
-9050	665	7140	0.0039363004033923	0.0039363004033923	-104.9721564	39.7416528	-104.9721564	39.7416882
-9051	7140	7141	0.126828000444838	0.126828000444838	-104.9721564	39.7416882	-104.9721376	39.7428287
-9052	7141	7142	0.0463243816448395	0.0463243816448395	-104.9721376	39.7428287	-104.9721403	39.7432453
-9053	7142	4606	0.175854779813893	0.175854779813893	-104.9721403	39.7432453	-104.9721399	39.7448268
-13036	8929	8930	0.492762775909981	0.492762775909981	-104.9903693	39.7822705	-104.9961216	39.7819588
-9054	4606	2885	0.129583918723674	0.129583918723674	-104.9721399	39.7448268	-104.9724659	39.7459649
-9056	818	3559	0.139007675873083	0.139007675873083	-104.9721439	39.7532392	-104.9721334	39.7544893
-9057	3559	5633	0.138607438022671	0.138607438022671	-104.9721334	39.7544893	-104.9721228	39.7557358
-9060	5632	7143	0.0971697431213832	0.0971697431213832	-104.9727182	39.7557338	-104.9721228	39.7564782
-9061	7143	4337	0.0573209846859246	0.0573209846859246	-104.9721228	39.7564782	-104.9721228	39.7569937
-9062	4337	6336	0.137619327969477	0.137619327969477	-104.9721228	39.7569937	-104.9721098	39.7582313
-9063	6336	3051	0.138690015537613	0.138690015537613	-104.9721098	39.7582313	-104.9721269	39.7594785
-9064	3051	7144	0.13740372400277	0.13740372400277	-104.9721269	39.7594785	-104.9721245	39.7607142
-9065	7144	7145	0.00531536492655497	0.00531536492655497	-104.9721245	39.7607142	-104.9721251	39.760762
-9066	7145	7146	0.138359891845979	0.138359891845979	-104.9721251	39.760762	-104.9721238	39.7620063
-9069	873	4461	0.138000198054367	0.138000198054367	-104.9721084	39.7645147	-104.972125	39.7657557
-9070	4461	2781	0.134827246932882	0.134827246932882	-104.972125	39.7657557	-104.9721138	39.7669682
-9073	6941	5768	0.263560531238909	0.263560531238909	-104.972039	39.782685	-104.974836	39.781686
-9074	5768	7148	0.00867578094755507	0.00867578094755507	-104.974836	39.781686	-104.974928	39.781719
-9075	6325	4168	0.192770537182593	0.192770537182593	-104.9717416	39.7183547	-104.9717542	39.7200883
-9076	4168	4753	0.208190261859574	0.208190261859574	-104.9717542	39.7200883	-104.971754	39.7219606
-9077	4753	6544	0.199662965025148	0.199662965025148	-104.971754	39.7219606	-104.9717626	39.7237562
-9078	6544	7149	0.203286576405629	0.203286576405629	-104.9717626	39.7237562	-104.9717634	39.7255844
-9079	7149	7150	0.188877376950956	0.188877376950956	-104.9717634	39.7255844	-104.9717727	39.727283
-9080	7150	3796	0.199750569153682	0.199750569153682	-104.9717727	39.727283	-104.9717723	39.7290794
-9081	3796	5939	0.152615142478991	0.152615142478991	-104.9717723	39.7290794	-104.9717744	39.7304519
-9082	5939	940	0.17776127985835	0.17776127985835	-104.9717744	39.7304519	-104.9717901	39.7320505
-9083	940	2224	0.184599395002716	0.184599395002716	-104.9717901	39.7320505	-104.9718055	39.7337106
-9084	2224	4874	0.160770298676863	0.160770298676863	-104.9718055	39.7337106	-104.9718399	39.7351562
-9085	4874	7151	0.191866995309803	0.191866995309803	-104.9718399	39.7351562	-104.9718371	39.7368817
-9086	7151	5472	0.170431656658562	0.170431656658562	-104.9718371	39.7368817	-104.9718493	39.7384144
-9087	5472	7152	0.177051030738846	0.177051030738846	-104.9718493	39.7384144	-104.971867	39.7400066
-9089	7153	7154	0.0893451644905786	0.0893451644905786	-104.9594535	39.725616	-104.9594545	39.7248125
-9090	7154	6170	0.0753374734775839	0.0753374734775839	-104.9594545	39.7248125	-104.9594375	39.7241351
-9091	6170	4764	0.177646502224828	0.177646502224828	-104.9594375	39.7241351	-104.959446	39.7225375
-9092	4764	4150	0.173084945690311	0.173084945690311	-104.959446	39.7225375	-104.9594242	39.720981
-9094	2344	7155	0.117646857783728	0.117646857783728	-104.9594135	39.719411	-104.9592982	39.7183567
-9095	7155	7156	0.0188390787773898	0.0188390787773898	-104.9592982	39.7183567	-104.9592945	39.7181873
-9096	7156	7157	0.234434662963778	0.234434662963778	-104.9592945	39.7181873	-104.9592821	39.716079
-9097	7157	7158	0.0252454738977112	0.0252454738977112	-104.9592821	39.716079	-104.9592875	39.715852
-9100	7159	7160	0.136141908223257	0.136141908223257	-105.0381363	39.7487551	-105.0381214	39.7499794
-9101	7160	7161	0.134175303690261	0.134175303690261	-105.0381214	39.7499794	-105.038138	39.751186
-9102	7161	5540	0.104957650418394	0.104957650418394	-105.038138	39.751186	-105.0381637	39.7521297
-9103	5540	2408	0.0972515972300324	0.0972515972300324	-105.0381637	39.7521297	-105.03816	39.7530043
-9104	2408	4293	0.0986699082335262	0.0986699082335262	-105.03816	39.7530043	-105.0381466	39.7538916
-9105	4293	7163	0.053830719074408	0.053830719074408	-105.0381466	39.7538916	-105.0381509	39.7543757
-9107	7164	7165	0.0631810706690825	0.0631810706690825	-105.0381551	39.754855	-105.0381565	39.7554232
-9108	7165	2982	0.341967827784909	0.341967827784909	-105.0381565	39.7554232	-105.0381258	39.7584985
-9109	2982	7166	0.203801982791161	0.203801982791161	-105.0381258	39.7584985	-105.038164	39.7603311
-9110	7166	7167	0.199088364823678	0.199088364823678	-105.038164	39.7603311	-105.0381183	39.7621212
-9111	7167	7168	0.00801722711592813	0.00801722711592813	-105.0381183	39.7621212	-105.0381187	39.7621933
-9112	7168	7169	0.0420988990456398	0.0420988990456398	-105.0381187	39.7621933	-105.0381211	39.7625719
-9113	7169	7170	0.153973329045923	0.153973329045923	-105.0381211	39.7625719	-105.0381296	39.7639566
-9114	7170	6877	0.206323620437175	0.206323620437175	-105.0381296	39.7639566	-105.0381386	39.7658121
-9115	6877	1688	0.202556013709455	0.202556013709455	-105.0381386	39.7658121	-105.038125	39.7676337
-10335	2984	7779	0.0471482180711068	0.0471482180711068	-105.039304	39.7584901	-105.0393085	39.7589141
-9116	1688	7171	0.203959165094635	0.203959165094635	-105.038125	39.7676337	-105.0381554	39.7694678
-9117	7171	2434	0.200457262733771	0.200457262733771	-105.0381554	39.7694678	-105.038137	39.7712705
-9118	2434	7172	0.202529539970889	0.202529539970889	-105.038137	39.7712705	-105.0381026	39.7730917
-9119	7172	6459	0.289084578375032	0.289084578375032	-105.0381026	39.7730917	-105.0381018	39.7756915
-19730	5374	10637	0.0120223368882016	0.0120223368882016	-105.0044526	39.7337074	-105.0044418	39.7338152
-9120	6459	7173	0.114101346723939	0.114101346723939	-105.0381018	39.7756915	-105.0380903	39.7767176
-9121	7173	7174	0.184116579370581	0.184116579370581	-105.0380903	39.7767176	-105.0380913	39.7783734
-9122	7174	7175	0.203885371802177	0.203885371802177	-105.0380913	39.7783734	-105.0380683	39.7802069
-9123	7175	7176	0.042345014713444	0.042345014713444	-105.0380683	39.7802069	-105.0380731	39.7805877
-9124	7176	7177	0.0543545796747623	0.0543545796747623	-105.0380731	39.7805877	-105.0380792	39.7810765
-9125	7177	1424	0.112240471555906	0.112240471555906	-105.0380792	39.7810765	-105.0380823	39.7820859
-9128	7179	6066	0.193267920890686	0.193267920890686	-105.0380848	39.7838741	-105.0380858	39.7856122
-9129	6066	2546	0.202503184194707	0.202503184194707	-105.0380858	39.7856122	-105.0380674	39.7874333
-9130	2546	7180	0.41050413821522	0.41050413821522	-105.0380674	39.7874333	-105.038093	39.791125
-9131	6215	7181	0.274932291342238	0.274932291342238	-105.0383676	39.7257784	-105.0383822	39.7282509
-9132	7181	7182	0.263103709588239	0.263103709588239	-105.0383822	39.7282509	-105.0384019	39.730617
-9133	7182	7183	0.130644941399459	0.130644941399459	-105.0384019	39.730617	-105.0383934	39.7317919
-9134	2594	5185	0.17867940782894	0.17867940782894	-105.0383715	39.7229322	-105.0383678	39.7245391
-9137	5066	4054	0.176950276628118	0.176950276628118	-105.0384889	39.7165547	-105.0385175	39.7181459
-9138	4054	7184	0.19508037930475	0.19508037930475	-105.0385175	39.7181459	-105.0385175	39.7199003
-19295	10466	10470	0.0590667450333129	0.0590667450333129	-104.988856	39.7399993	-104.988856	39.7394681
-9139	7184	1855	0.159486883286254	0.159486883286254	-105.0385175	39.7199003	-105.0385175	39.7213346
-9140	1855	2595	0.177991984486361	0.177991984486361	-105.0385175	39.7213346	-105.038507	39.7229353
-9142	7132	7185	0.200740739267956	0.200740739267956	-105.0381234	39.7347872	-105.0380981	39.7365924
-9144	317	5720	0.10120960072344	0.10120960072344	-105.0345742	39.7830397	-105.0357487	39.7831573
-9146	7186	7178	0.0998150102985703	0.0998150102985703	-105.0369189	39.7832402	-105.0380864	39.7832692
-9147	7178	7187	0.0486556483534758	0.0486556483534758	-105.0380864	39.7832692	-105.0386558	39.7832674
-9148	7187	7188	0.0504244958733159	0.0504244958733159	-105.0386558	39.7832674	-105.0392459	39.7832655
-9149	7188	6720	0.0492257170939005	0.0492257170939005	-105.0392459	39.7832655	-105.0398219	39.7832727
-9150	6720	1139	0.0498554245278369	0.0498554245278369	-105.0398219	39.7832727	-105.0404053	39.7832671
-9151	1139	6900	0.0496729718772752	0.0496729718772752	-105.0404053	39.7832671	-105.0409865	39.7832584
-9152	6900	7189	0.0498269762893686	0.0498269762893686	-105.0409865	39.7832584	-105.0415695	39.7832496
-9153	7189	7190	0.0493080365100491	0.0493080365100491	-105.0415695	39.7832496	-105.0421451	39.7832183
-9154	7190	3869	0.0507905077365378	0.0507905077365378	-105.0421451	39.7832183	-105.042738	39.783186
-9155	3869	7191	0.0511248031667964	0.0511248031667964	-105.042738	39.783186	-105.0433363	39.783186
-9156	7191	5583	0.0514153335527058	0.0514153335527058	-105.0433363	39.783186	-105.043938	39.783186
-9158	6374	7192	0.0508291685906189	0.0508291685906189	-104.9453733	39.6929492	-104.9447793	39.6929426
-9159	7192	4828	0.0505211822659055	0.0505211822659055	-104.9447793	39.6929426	-104.9441889	39.692936
-9160	4828	7193	0.0991435070786191	0.0991435070786191	-104.9441889	39.692936	-104.9430302	39.6929294
-9161	7193	7194	0.0991520630524694	0.0991520630524694	-104.9430302	39.6929294	-104.9418714	39.692936
-9162	7194	7195	0.0477883926406413	0.0477883926406413	-104.9418714	39.692936	-104.9413129	39.6929321
-9163	7195	7196	0.0494484339552123	0.0494484339552123	-104.9413129	39.6929321	-104.940735	39.692928
-9164	7196	7197	0.0162046310747774	0.0162046310747774	-104.940735	39.692928	-104.9405457	39.6929325
-9166	7198	6674	0.0990044216409842	0.0990044216409842	-104.9373575	39.6929534	-104.9362004	39.6929564
-9167	6674	3118	0.097669089391913	0.097669089391913	-104.9362004	39.6929564	-104.9350589	39.6929564
-9168	3118	7199	0.284505571449601	0.284505571449601	-104.9350589	39.6929564	-104.931734	39.692987
-9169	7199	6008	0.094118222257641	0.094118222257641	-104.931734	39.692987	-104.930634	39.692987
-9170	6008	2844	0.0930401433253343	0.0930401433253343	-104.930634	39.692987	-104.9295466	39.6929872
-9171	2844	3493	0.0866696350082772	0.0866696350082772	-104.9295466	39.6929872	-104.9285338	39.6930004
-9172	3493	5349	0.0889131869713594	0.0889131869713594	-104.9285338	39.6930004	-104.9274952	39.692974
-9174	5392	2946	0.0903397575627338	0.0903397575627338	-104.926491	39.6929872	-104.9254353	39.692974
-9175	2946	6812	0.0903546565690543	0.0903546565690543	-104.9254353	39.692974	-104.9243796	39.6929938
-9176	6812	1813	0.0889131954631002	0.0889131954631002	-104.9243796	39.6929938	-104.923341	39.6929674
-9179	7201	7202	0.0514316470718889	0.0514316470718889	-104.9868436	39.6930068	-104.9862426	39.6930154
-9180	7202	571	0.0452247620537137	0.0452247620537137	-104.9862426	39.6930154	-104.9857141	39.6930216
-9181	571	4984	0.0498774301127379	0.0498774301127379	-104.9857141	39.6930216	-104.9851312	39.6930164
-9182	4984	7203	0.0499341834444621	0.0499341834444621	-104.9851312	39.6930164	-104.9845476	39.6930151
-9183	7203	7204	0.048540539361363	0.048540539361363	-104.9845476	39.6930151	-104.9839803	39.693012
-9184	7204	7205	0.049454954432791	0.049454954432791	-104.9839803	39.693012	-104.9834023	39.693013
-9185	7205	7206	0.0536988191890685	0.0536988191890685	-104.9834023	39.693013	-104.9827747	39.693012
-9186	7206	7207	0.0531339953218732	0.0531339953218732	-104.9827747	39.693012	-104.9821537	39.693012
-9188	7208	7209	0.0488986834694409	0.0488986834694409	-104.9815692	39.6930097	-104.9809977	39.6930099
-10408	7087	974	0.0520701135747565	0.0520701135747565	-104.9846429	39.7873956	-104.9840335	39.7873956
-9190	3616	7210	0.0490025655343953	0.0490025655343953	-104.9804184	39.6930078	-104.9798457	39.6930109
-9191	7210	7211	0.0492346778344629	0.0492346778344629	-104.9798457	39.6930109	-104.9792704	39.6930016
-9192	7211	6627	0.0474835705848566	0.0474835705848566	-104.9792704	39.6930016	-104.9787159	39.6929842
-9193	6627	7212	0.0259857221754392	0.0259857221754392	-104.9787159	39.6929842	-104.9784122	39.6929827
-9195	7213	2937	0.0797219985274474	0.0797219985274474	-104.9260704	39.7047422	-104.9251387	39.7047572
-9197	4927	7214	0.0675624031978383	0.0675624031978383	-104.9964542	39.7378444	-104.9964568	39.738452
-9198	7214	7215	0.172837829649445	0.172837829649445	-104.9964568	39.738452	-104.9964757	39.7400063
-9199	7215	7216	0.0152456900319388	0.0152456900319388	-104.9964757	39.7400063	-104.9964776	39.7401434
-9201	7217	7218	0.150068688599712	0.150068688599712	-104.9963567	39.7165938	-104.9963575	39.7179434
-9202	7218	3717	0.0523950557178934	0.0523950557178934	-104.9963575	39.7179434	-104.9963578	39.7184146
-9203	3717	7219	0.104026300075926	0.104026300075926	-104.9963578	39.7184146	-104.9963677	39.7193501
-9204	7219	7220	0.176478214187187	0.176478214187187	-104.9963677	39.7193501	-104.9963617	39.7209372
-9205	7220	2618	0.176744455093666	0.176744455093666	-104.9963617	39.7209372	-104.9963593	39.7225267
-9206	2618	7221	0.0524078444870275	0.0524078444870275	-104.9963593	39.7225267	-104.9963642	39.722998
-9207	7221	5199	0.124408908082812	0.124408908082812	-104.9963642	39.722998	-104.9963759	39.7241168
-9208	5199	6236	0.175254349133775	0.175254349133775	-104.9963759	39.7241168	-104.9963748	39.7256929
-9209	6236	7222	0.181371367707484	0.181371367707484	-104.9963748	39.7256929	-104.9963829	39.727324
-9210	7222	7223	0.17624861030264	0.17624861030264	-104.9963829	39.727324	-104.9964257	39.7289087
-10431	7818	3372	0.256942906695214	0.256942906695214	-104.9257985	39.7038513	-104.9262421	39.7015659
-9211	7223	7224	0.177882160330428	0.177882160330428	-104.9964257	39.7289087	-104.9964124	39.7305084
-9212	7224	6596	0.176655139096338	0.176655139096338	-104.9964124	39.7305084	-104.996445	39.7320969
-9213	6596	7225	0.176764713771947	0.176764713771947	-104.996445	39.7320969	-104.9965056	39.7336859
-9214	7225	7117	0.195263815592674	0.195263815592674	-104.9965056	39.7336859	-104.9968556	39.7354212
-9215	7117	7226	0.162883394969853	0.162883394969853	-104.9968556	39.7354212	-104.9971131	39.7368726
-9217	7227	7228	0.0929813395053153	0.0929813395053153	-104.9964704	39.7584562	-104.9964723	39.7592924
-9218	7228	7229	0.0382886967355643	0.0382886967355643	-104.9964723	39.7592924	-104.996479	39.7596367
-9220	5754	5537	0.136674994706822	0.136674994706822	-104.9960241	39.7730069	-104.9959296	39.7742339
-9222	7230	2419	0.0601608416165443	0.0601608416165443	-104.9960543	39.7699637	-104.9960628	39.7705047
-9224	7231	1877	0.0370441528846065	0.0370441528846065	-104.9903483	39.7057878	-104.9899153	39.7057918
-9225	1877	7232	0.131692111532173	0.131692111532173	-104.9899153	39.7057918	-104.9883759	39.7057847
-9227	7233	7234	0.109254283787097	0.109254283787097	-104.9875581	39.7057416	-104.9862815	39.7057131
-9228	7234	7235	0.0988980977520615	0.0988980977520615	-104.9862815	39.7057131	-104.9851255	39.7057028
-9229	7235	7236	0.100150595242985	0.100150595242985	-104.9851255	39.7057028	-104.9839553	39.705676
-9230	7236	7237	0.0982491727225652	0.0982491727225652	-104.9839553	39.705676	-104.9828076	39.7057088
-9231	7237	7238	0.102801611377818	0.102801611377818	-104.9828076	39.7057088	-104.981606	39.7057212
-9232	7238	3624	0.10072637054969	0.10072637054969	-104.981606	39.7057212	-104.9804286	39.7057129
-9233	3624	7239	0.0490877236423196	0.0490877236423196	-104.9804286	39.7057129	-104.9798548	39.7057161
-9234	7239	7240	0.0506406047895119	0.0506406047895119	-104.9798548	39.7057161	-104.9792633	39.7057342
-9236	7241	7242	0.053434962453162	0.053434962453162	-104.9786816	39.7057151	-104.978057	39.7057102
-9238	7243	2049	0.0999533143701506	0.0999533143701506	-104.9686775	39.7056856	-104.9675091	39.7056815
-9239	2049	6322	0.101276003642563	0.101276003642563	-104.9675091	39.7056815	-104.9663254	39.7056659
-9240	6322	7245	0.101332248433824	0.101332248433824	-104.9663254	39.7056659	-104.9651409	39.7056725
-9241	7245	7246	0.0464773018813961	0.0464773018813961	-104.9651409	39.7056725	-104.9645976	39.7056725
-9242	7246	3478	0.0519094915924	0.0519094915924	-104.9645976	39.7056725	-104.9639908	39.7056725
-9243	3478	7247	0.0444674652348498	0.0444674652348498	-104.9639908	39.7056725	-104.963471	39.7056744
-9244	7247	6076	0.0542711695249793	0.0542711695249793	-104.963471	39.7056744	-104.9628366	39.7056767
-9245	6076	7248	0.0457685619049607	0.0457685619049607	-104.9628366	39.7056767	-104.9623016	39.7056798
-9246	7248	3693	0.0511581578497335	0.0511581578497335	-104.9623016	39.7056798	-104.9617036	39.7056833
-9247	3693	7249	0.0484213428818718	0.0484213428818718	-104.9617036	39.7056833	-104.9611376	39.7056792
-9248	7249	4568	0.050423249762551	0.050423249762551	-104.9611376	39.7056792	-104.9605482	39.7056749
-9249	4568	7250	0.105671525256593	0.105671525256593	-104.9605482	39.7056749	-104.959313	39.7056659
-9251	3486	5352	0.142707971743977	0.142707971743977	-104.9294222	39.7052339	-104.9277592	39.7051328
-9252	5352	5389	0.0672375375003041	0.0672375375003041	-104.9277592	39.7051328	-104.9269733	39.705141
-9254	6807	7251	0.174038770872886	0.174038770872886	-104.9241221	39.7053959	-104.9220909	39.7054841
-9255	5582	7252	0.0700127444942287	0.0700127444942287	-105.0439618	39.7810973	-105.0431425	39.7811012
-9256	3438	7253	0.0456922323357007	0.0456922323357007	-105.0345914	39.7810741	-105.0351261	39.7810763
-9257	7253	5712	0.0536735809918437	0.0536735809918437	-105.0351261	39.7810763	-105.0357542	39.7810788
-9258	5712	7254	0.0996465050991051	0.0996465050991051	-105.0357542	39.7810788	-105.0369203	39.7810777
-9259	7254	7177	0.0990312619116669	0.0990312619116669	-105.0369203	39.7810777	-105.0380792	39.7810765
-9261	2234	5135	0.107869698056021	0.107869698056021	-104.937292	39.7328682	-104.9373097	39.7338382
-9263	5150	4905	0.0686856789021931	0.0686856789021931	-104.9373129	39.7340572	-104.9372922	39.7346747
-9264	4905	6617	0.200618729294218	0.200618729294218	-104.9372922	39.7346747	-104.9372854	39.7364789
-9265	6617	7255	0.197431040074393	0.197431040074393	-104.9372854	39.7364789	-104.937234	39.738254
-9266	7255	7256	0.208183749937444	0.208183749937444	-104.937234	39.738254	-104.9372502	39.7401262
-9267	7256	645	0.141740585620374	0.141740585620374	-104.9372502	39.7401262	-104.9372542	39.7414009
-9268	645	7257	0.130628958724451	0.130628958724451	-104.9372542	39.7414009	-104.937237	39.7425756
-9269	7257	1991	0.0908850253123808	0.0908850253123808	-104.937237	39.7425756	-104.9372254	39.7433929
-9270	1991	1975	0.0373563291181619	0.0373563291181619	-104.9372254	39.7433929	-104.9372332	39.7437288
-9271	1975	4592	0.133760117820733	0.133760117820733	-104.9372332	39.7437288	-104.9372215	39.7449317
-9272	4592	6479	0.133361447138617	0.133361447138617	-104.9372215	39.7449317	-104.9372075	39.746131
-9273	6479	2465	0.142787478559072	0.142787478559072	-104.9372075	39.746131	-104.9372165	39.7474151
-9275	7258	905	0.276860539558146	0.276860539558146	-104.9368356	39.7619935	-104.9368593	39.7644833
-9276	905	7259	0.128469118479352	0.128469118479352	-104.9368593	39.7644833	-104.936828	39.7656384
-9278	7260	7261	0.202325557275685	0.202325557275685	-104.9371488	39.7256129	-104.93713	39.7274324
-9279	7261	7262	0.200099452464053	0.200099452464053	-104.93713	39.7274324	-104.9370272	39.7292302
-9281	6555	7263	0.106048977208119	0.106048977208119	-104.9371056	39.724358	-104.9371139	39.7253117
-9283	2464	5907	0.204805215249635	0.204805215249635	-104.9373281	39.7474151	-104.9372594	39.7492562
-9284	5907	7264	0.200064951669816	0.200064951669816	-104.9372594	39.7492562	-104.9372465	39.7510554
-9285	7264	792	0.198575253788857	0.198575253788857	-104.9372465	39.7510554	-104.937233	39.7528412
-9286	792	7265	0.203153130979463	0.203153130979463	-104.937233	39.7528412	-104.937233	39.7546682
-20553	10855	10830	0.00226863418878014	0.00226863418878014	-105.020438	39.7583443	-105.0204376	39.7583647
-9287	7265	4356	0.200718125919129	0.200718125919129	-104.937233	39.7546682	-104.93723	39.7564733
-9288	4356	7266	0.203231013450801	0.203231013450801	-104.93723	39.7564733	-104.9372284	39.758301
-9289	7266	3059	0.208369469805255	0.208369469805255	-104.9372284	39.758301	-104.9372198	39.7601749
-9290	3059	7267	0.184116398047724	0.184116398047724	-104.9372198	39.7601749	-104.9371963	39.7618306
-9292	7268	7269	0.172274443384772	0.172274443384772	-104.9373314	39.7162377	-104.937334	39.717787
-9293	7269	7270	0.174965358395498	0.174965358395498	-104.937334	39.717787	-104.9373314	39.7193605
-9294	7270	7271	0.171051925436011	0.171051925436011	-104.9373314	39.7193605	-104.9373374	39.7208988
-9295	7271	4777	0.251271094456806	0.251271094456806	-104.9373374	39.7208988	-104.9371074	39.7231516
-9297	7272	7273	0.142786274588455	0.142786274588455	-104.9405891	39.7425825	-104.9389193	39.7425624
-9298	7273	7257	0.143845033730321	0.143845033730321	-104.9389193	39.7425624	-104.937237	39.7425756
-9299	7257	2012	0.148104007431453	0.148104007431453	-104.937237	39.7425756	-104.9355048	39.7425756
-9300	2012	7274	0.146908840218292	0.146908840218292	-104.9355048	39.7425756	-104.9337866	39.742569
-9303	3209	6121	0.198338421830571	0.198338421830571	-104.9651422	39.7110945	-104.9651409	39.7093108
-9305	1920	7245	0.200452444306493	0.200452444306493	-104.9651495	39.7074752	-104.9651409	39.7056725
-9306	7245	3264	0.201454965709232	0.201454965709232	-104.9651409	39.7056725	-104.965154	39.7038608
-9307	3264	7275	0.199928677430985	0.199928677430985	-104.965154	39.7038608	-104.9651573	39.7020628
-9308	7275	75	0.205218774272454	0.205218774272454	-104.9651573	39.7020628	-104.9651905	39.7002174
-9309	75	3514	0.203667659516003	0.203667659516003	-104.9651905	39.7002174	-104.965228	39.698386
-9310	3514	4256	0.200449218475779	0.200449218475779	-104.965228	39.698386	-104.9652055	39.6965834
-9312	7276	7277	0.199018039984475	0.199018039984475	-104.9652088	39.6947654	-104.9652174	39.6929756
-9314	3099	7278	0.127218718588174	0.127218718588174	-104.9652044	39.7127074	-104.9651186	39.7115652
-9315	7279	7280	0.0142903725965103	0.0142903725965103	-105.0017875	39.7595933	-105.0017017	39.7597036
-9316	7280	7281	0.105207552208829	0.105207552208829	-105.0017017	39.7597036	-105.0005447	39.7600263
-9317	7282	7283	0.0344899807253543	0.0344899807253543	-104.9875556	39.7021328	-104.9871988	39.7019884
-9318	7283	221	0.0709873405596775	0.0709873405596775	-104.9871988	39.7019884	-104.9863694	39.7019694
-9319	221	484	0.00880336166381634	0.00880336166381634	-104.9863694	39.7019694	-104.9862665	39.7019699
-9320	484	7284	0.0467023879280561	0.0467023879280561	-104.9862665	39.7019699	-104.9857206	39.701971
-9321	7284	7285	0.0520434565562666	0.0520434565562666	-104.9857206	39.701971	-104.9851123	39.7019661
-9322	7285	7286	0.0966986010135768	0.0966986010135768	-104.9851123	39.7019661	-104.983982	39.7019687
-9324	7287	7288	0.0474221057340072	0.0474221057340072	-104.9833604	39.7019722	-104.9828061	39.7019753
-9325	7288	7289	0.0544896557893494	0.0544896557893494	-104.9828061	39.7019753	-104.9821695	39.701991
-18313	7291	7292	0.0491935106031602	0.0491935106031602	-105.0324737	39.7711548	-105.0330488	39.7711732
-12266	8623	8624	0.00987394368395642	0.00987394368395642	-105.0065475	39.7556498	-105.006432	39.7556507
-9326	7289	7293	0.050792182381771	0.050792182381771	-104.9821695	39.701991	-104.9815761	39.7020057
-9327	7293	7294	0.0490541601102182	0.0490541601102182	-104.9815761	39.7020057	-104.9810028	39.7020136
-9328	7294	3625	0.0491311379128154	0.0491311379128154	-104.9810028	39.7020136	-104.9804286	39.7020215
-9329	3625	7295	0.0500044548990436	0.0500044548990436	-104.9804286	39.7020215	-104.9798441	39.7020215
-9330	7295	7296	0.0493114932484129	0.0493114932484129	-104.9798441	39.7020215	-104.9792677	39.7020215
-9331	7296	7297	0.0492273088766844	0.0492273088766844	-104.9792677	39.7020215	-104.9786923	39.7020248
-9332	7297	7298	0.0497149327544833	0.0497149327544833	-104.9786923	39.7020248	-104.9781112	39.7020281
-9333	7298	7299	0.052416983039433	0.052416983039433	-104.9781112	39.7020281	-104.9774985	39.7020281
-9334	7299	1775	0.0489179547921138	0.0489179547921138	-104.9774985	39.7020281	-104.9769267	39.7020281
-9335	1775	7300	0.0992252392752366	0.0992252392752366	-104.9769267	39.7020281	-104.9757669	39.7020355
-9338	1523	7301	0.0991304181855472	0.0991304181855472	-104.9745731	39.702049	-104.9734144	39.7020424
-9340	4180	7302	0.159005264658095	0.159005264658095	-104.9922008	39.7021389	-104.9940584	39.7020918
-9342	7303	7304	0.0508070845581107	0.0508070845581107	-104.968686	39.7020471	-104.9680922	39.7020547
-9344	2051	7305	0.0464895652372381	0.0464895652372381	-104.9674661	39.7020628	-104.9669227	39.7020659
-9346	6323	7306	0.0487652334573382	0.0487652334573382	-104.9663246	39.7020694	-104.9657546	39.7020662
-9347	7306	7275	0.0511008721086019	0.0511008721086019	-104.9657546	39.7020662	-104.9651573	39.7020628
-9348	7275	7307	0.0472167292045061	0.0472167292045061	-104.9651573	39.7020628	-104.9646054	39.7020597
-9349	7307	3479	0.0519136696037329	0.0519136696037329	-104.9646054	39.7020597	-104.9639986	39.7020562
-9350	3479	7308	0.0469673771341736	0.0469673771341736	-104.9639986	39.7020562	-104.9634496	39.7020562
-9351	7308	6077	0.0514245726695928	0.0514245726695928	-104.9634496	39.7020562	-104.9628485	39.7020562
-9353	7309	3694	0.0517124258100223	0.0517124258100223	-104.9622856	39.7020498	-104.9616812	39.702043
-9354	3694	7310	0.0465067719763774	0.0465067719763774	-104.9616812	39.702043	-104.9611376	39.7020462
-9355	7310	4569	0.0489536209610463	0.0489536209610463	-104.9611376	39.7020462	-104.9605654	39.7020496
-9356	4569	7311	0.0489635595580148	0.0489635595580148	-104.9605654	39.7020496	-104.9599932	39.7020401
-9357	7311	7312	0.0558091568866214	0.0558091568866214	-104.9599932	39.7020401	-104.959341	39.7020293
-9359	5166	6862	0.178524347295205	0.178524347295205	-104.9485858	39.7162531	-104.9485924	39.7146476
-10575	7382	7866	0.0530283440074436	0.0530283440074436	-105.0337009	39.7197539	-105.0343209	39.7197519
-9361	5665	7313	0.0484754519993524	0.0484754519993524	-104.9486082	39.7033386	-104.9485996	39.7029027
-9362	7313	7314	0.161386441141289	0.161386441141289	-104.9485996	39.7029027	-104.9489488	39.7014764
-9363	7314	57	0.142345062746265	0.142345062746265	-104.9489488	39.7014764	-104.9487429	39.7002061
-9365	3497	7315	0.199650199137315	0.199650199137315	-104.9488372	39.6983858	-104.9488718	39.6965905
-9366	7315	7316	0.20195222577189	0.20195222577189	-104.9488718	39.6965905	-104.9488718	39.6947743
-9368	7317	7318	0.0198371749129227	0.0198371749129227	-104.9558194	39.7180363	-104.9558194	39.7182147
-9369	7318	2347	0.132104544578518	0.132104544578518	-104.9558194	39.7182147	-104.9558328	39.7194027
-9370	2347	4152	0.17573096379452	0.17573096379452	-104.9558328	39.7194027	-104.9558113	39.720983
-9371	4152	4739	0.172852869151079	0.172852869151079	-104.9558113	39.720983	-104.9558154	39.7225375
-9372	4739	6534	0.176755786446123	0.176755786446123	-104.9558154	39.7225375	-104.9558194	39.7241271
-9373	6534	7319	0.165399065875657	0.165399065875657	-104.9558194	39.7241271	-104.9558381	39.7256145
-9376	1193	7321	0.0221951663944447	0.0221951663944447	-104.9555538	39.7271183	-104.9555518	39.7273179
-9377	7321	3785	0.200018254719297	0.200018254719297	-104.9555518	39.7273179	-104.9555585	39.7291167
-9379	6356	2387	0.110864888603468	0.110864888603468	-104.9541524	39.7728932	-104.9541313	39.7738901
-9380	2387	7322	0.139379472361554	0.139379472361554	-104.9541313	39.7738901	-104.9541485	39.7751435
-9381	7322	7323	0.046481070265731	0.046481070265731	-104.9541485	39.7751435	-104.954144	39.7755615
-9382	7323	745	0.0926146092564692	0.0926146092564692	-104.954144	39.7755615	-104.954147	39.7763944
-9383	745	1563	0.142337228385207	0.142337228385207	-104.954147	39.7763944	-104.9541741	39.7776743
-9384	1563	7324	0.139015648234869	0.139015648234869	-104.9541741	39.7776743	-104.9541282	39.778924
-9385	7324	7325	0.121637038292373	0.121637038292373	-104.9541282	39.778924	-104.9541227	39.7800179
-9387	7326	1054	0.0187920378071022	0.0187920378071022	-104.954122	39.7801258	-104.9541213	39.7802948
-9388	1054	7327	0.1804815052178	0.1804815052178	-104.9541213	39.7802948	-104.9541142	39.7819179
-9389	7327	7328	0.200952784069958	0.200952784069958	-104.9541142	39.7819179	-104.9541227	39.7837251
-9390	7328	2873	0.135770477885413	0.135770477885413	-104.9541227	39.7837251	-104.9541301	39.7849461
-9391	2873	7329	0.140734857106897	0.140734857106897	-104.9541301	39.7849461	-104.9541142	39.7862117
-9392	7329	7330	0.130551116437319	0.130551116437319	-104.9541142	39.7862117	-104.954097	39.7873857
-9394	3573	5641	0.135671111475822	0.135671111475822	-104.954935	39.7545002	-104.954926	39.7557203
-9395	5641	4346	0.139178472263861	0.139178472263861	-104.954926	39.7557203	-104.9549522	39.7569718
-9397	6344	3047	0.139334930188281	0.139334930188281	-104.9549352	39.7582063	-104.9548745	39.7594585
-9398	3047	7331	0.13779347001033	0.13779347001033	-104.9548745	39.7594585	-104.9548797	39.7606977
-9399	7331	7332	0.00320242529462838	0.00320242529462838	-104.9548797	39.7606977	-104.9548798	39.7607265
-9400	7332	7333	0.124149220639337	0.124149220639337	-104.9548798	39.7607265	-104.9548815	39.761843
-9401	7333	7334	0.0152895413448354	0.0152895413448354	-104.9548815	39.761843	-104.9548825	39.7619805
-9402	7334	1168	0.139240705026111	0.139240705026111	-104.9548825	39.7619805	-104.9548921	39.7632327
-9403	1168	888	0.137184892852111	0.137184892852111	-104.9548921	39.7632327	-104.9548685	39.7644663
-9404	888	4473	0.140290329638987	0.140290329638987	-104.9548685	39.7644663	-104.9548351	39.7657277
-9405	4473	2795	0.133122605689938	0.133122605689938	-104.9548351	39.7657277	-104.9548363	39.7669249
-18387	8972	8990	0.0135489498420418	0.0135489498420418	-105.025167	39.7603517	-105.0252879	39.7604305
-9406	2795	5263	0.132274155849312	0.132274155849312	-104.9548363	39.7669249	-104.9547977	39.7681141
-9408	5264	7335	0.142105114812744	0.142105114812744	-104.9542913	39.7681128	-104.954435	39.769386
-9409	7336	7337	0.0976207961374284	0.0976207961374284	-104.9551363	39.7328385	-104.9551277	39.7337164
-9410	7337	4886	0.157275932372423	0.157275932372423	-104.9551277	39.7337164	-104.9551513	39.7351307
-9411	4886	7338	0.185720302610988	0.185720302610988	-104.9551513	39.7351307	-104.9551086	39.7368006
-9412	7338	5484	0.174899259954025	0.174899259954025	-104.9551086	39.7368006	-104.955149	39.7383732
-9413	5484	7339	0.200596009359583	0.200596009359583	-104.955149	39.7383732	-104.9551239	39.7401771
-9415	7001	7340	0.179314344082203	0.179314344082203	-104.9316416	39.7162506	-104.9316333	39.714638
-9416	7340	3105	0.172536320867715	0.172536320867715	-104.9316333	39.714638	-104.9316505	39.7130864
-9417	3105	7341	0.196295851159965	0.196295851159965	-104.9316505	39.7130864	-104.9316369	39.7113211
-9418	7341	7342	0.0146987319128723	0.0146987319128723	-104.9316369	39.7113211	-104.9316306	39.711189
-9419	7342	5274	0.233778976885029	0.233778976885029	-104.9316306	39.711189	-104.93153	39.709088
-9421	61	3550	0.201334976523304	0.201334976523304	-104.931714	39.700208	-104.931651	39.698398
-9423	4229	1512	0.0573285646726125	0.0573285646726125	-104.931645	39.696598	-104.931734	39.696087
-9424	1512	1812	0.080316497766985	0.080316497766985	-104.931734	39.696087	-104.9317181	39.6953648
-9425	1812	1792	0.0864981124104349	0.0864981124104349	-104.9317181	39.6953648	-104.931734	39.694587
-9426	1792	5766	0.0789087886834876	0.0789087886834876	-104.931734	39.694587	-104.9316752	39.6938788
-9427	5766	7199	0.0992911764787047	0.0992911764787047	-104.9316752	39.6938788	-104.931734	39.692987
-9428	7199	6828	0.11119492664509	0.11119492664509	-104.931734	39.692987	-104.931734	39.691987
-9429	6828	5849	0.0944254133826228	0.0944254133826228	-104.931734	39.691987	-104.9317181	39.6911379
-9430	5849	6009	0.0132155676036954	0.0132155676036954	-104.9317181	39.6911379	-104.9317136	39.6910191
-9431	6009	6306	0.0820521132716854	0.0820521132716854	-104.9317136	39.6910191	-104.9316857	39.6902815
-9432	6306	7343	0.105450198242036	0.105450198242036	-104.9316857	39.6902815	-104.9316965	39.6893332
-9433	7343	6621	0.143519415278471	0.143519415278471	-104.9316965	39.6893332	-104.9316943	39.6880425
-9434	6621	7344	1.27038946039582	1.27038946039582	-104.9316943	39.6880425	-104.9316364	39.6766177
-9437	4173	4758	0.21160422195521	0.21160422195521	-104.966736	39.720087	-104.96674	39.72199
-9439	7347	7348	0.135937832662874	0.135937832662874	-104.9671878	39.748204	-104.9671965	39.7494265
-9440	7348	7349	0.00392915540186096	0.00392915540186096	-104.9671965	39.7494265	-104.9671912	39.7494616
-9441	7349	7350	0.00435925191977174	0.00435925191977174	-104.9671912	39.7494616	-104.9671905	39.7495008
-9442	7350	7351	0.134680718743296	0.134680718743296	-104.9671905	39.7495008	-104.967169	39.7507119
-9443	7351	7352	0.142353643667365	0.142353643667365	-104.967169	39.7507119	-104.9671604	39.7519921
-9444	7352	822	0.136144392169031	0.136144392169031	-104.9671604	39.7519921	-104.9672048	39.753216
-9445	822	3563	0.139511434934294	0.139511434934294	-104.9672048	39.753216	-104.9671659	39.7544703
-9447	4757	6547	0.198421257470946	0.198421257470946	-104.9671402	39.7219786	-104.9671106	39.7237629
-9448	6547	7353	0.203512578195826	0.203512578195826	-104.9671106	39.7237629	-104.9671248	39.7255931
-9449	7353	7354	0.189733642798723	0.189733642798723	-104.9671248	39.7255931	-104.9671343	39.7272994
-9450	7354	3791	0.198902472958717	0.198902472958717	-104.9671343	39.7272994	-104.9671553	39.7290881
-9452	7356	1156	0.139895555737197	0.139895555737197	-104.9671912	39.761995	-104.9671402	39.7632525
-9453	1156	877	0.139167763247538	0.139167763247538	-104.9671402	39.7632525	-104.9671933	39.7645034
-9454	877	4465	0.138362926550376	0.138362926550376	-104.9671933	39.7645034	-104.9671825	39.7657477
-9455	4465	2785	0.134223449290719	0.134223449290719	-104.9671825	39.7657477	-104.9671839	39.7669548
-9456	2785	5256	0.132255447080442	0.132255447080442	-104.9671839	39.7669548	-104.9671812	39.7681442
-10701	7933	7934	0.0165824928197296	0.0165824928197296	-104.9950255	39.7656809	-104.9948315	39.7656825
-9457	5256	6902	0.213396689593523	0.213396689593523	-104.9671812	39.7681442	-104.9671691	39.7700633
-9458	6902	7357	0.137952680025601	0.137952680025601	-104.9671691	39.7700633	-104.967212	39.7713035
-9460	7358	7359	0.0873817304884455	0.0873817304884455	-104.9672193	39.7360482	-104.9672536	39.7368336
-9461	7359	5476	0.17425617170475	0.17425617170475	-104.9672536	39.7368336	-104.9672122	39.7384004
-9462	5476	7360	0.176755476074969	0.176755476074969	-104.9672122	39.7384004	-104.9672112	39.73999
-9463	7360	7361	0.179271064370159	0.179271064370159	-104.9672112	39.73999	-104.9672225	39.7416022
-9464	7361	670	0.00299320804688776	0.00299320804688776	-104.9672225	39.7416022	-104.9672238	39.7416291
-9465	670	7362	0.00367138449467953	0.00367138449467953	-104.9672238	39.7416291	-104.9672252	39.7416621
-9466	7362	7363	0.175413304982356	0.175413304982356	-104.9672252	39.7416621	-104.9672126	39.7432396
-9467	7363	4602	0.174300257248449	0.174300257248449	-104.9672126	39.7432396	-104.9672651	39.7448066
-9468	4602	6494	0.14109328269368	0.14109328269368	-104.9672651	39.7448066	-104.9672196	39.746075
-9470	6339	3027	0.140999530277673	0.140999530277673	-104.9671608	39.7582241	-104.9672089	39.7594916
-9471	3027	7364	0.134294188280294	0.134294188280294	-104.9672089	39.7594916	-104.9671778	39.7606991
-9472	7364	7367	0.00539295394286677	0.00539295394286677	-104.9671778	39.7606991	-104.9671778	39.7607476
-9473	7367	7368	0.0958510973743428	0.0958510973743428	-104.9671778	39.7607476	-104.9671831	39.7616096
-9474	7369	7370	0.0190810494123846	0.0190810494123846	-104.9665185	39.7181803	-104.9665185	39.7183519
-9475	7370	4174	0.200419085556528	0.200419085556528	-104.9665185	39.7183519	-104.9665271	39.7201543
-9476	4174	4759	0.205255972403598	0.205255972403598	-104.9665271	39.7201543	-104.9665355	39.7220002
-9478	7371	1504	0.200818042076817	0.200818042076817	-105.0309982	39.6967219	-105.0309987	39.6949159
-9479	1504	177	0.202381091183512	0.202381091183512	-105.0309987	39.6949159	-105.03098	39.6930959
-9481	7048	5860	0.176960295698989	0.176960295698989	-105.0312304	39.7165547	-105.0311875	39.7149636
-9482	5860	1308	0.177680958846967	0.177680958846967	-105.0311875	39.7149636	-105.0312133	39.7133658
-9483	1308	7372	0.242287040915104	0.242287040915104	-105.0312133	39.7133658	-105.0312304	39.7111869
-9485	7373	7374	0.0554606112260645	0.0554606112260645	-105.0253069	39.7683544	-105.0259557	39.7683632
-9486	7374	6759	0.139083865409791	0.139083865409791	-105.0259557	39.7683632	-105.027583	39.7683586
-9487	6759	3983	0.201208667852087	0.201208667852087	-105.027583	39.7683586	-105.0299371	39.7683433
-9488	3983	7042	0.200146227687253	0.200146227687253	-105.0299371	39.7683433	-105.0322788	39.7683312
-9489	7042	3429	0.200588668938452	0.200588668938452	-105.0322788	39.7683312	-105.0346257	39.7683222
-9491	7375	7376	0.134975501915893	0.134975501915893	-105.0330349	39.7767308	-105.0330187	39.7779446
-9492	7376	2494	0.132763759551609	0.132763759551609	-105.0330187	39.7779446	-105.0330359	39.7791385
-9493	2494	2841	0.125447252672452	0.125447252672452	-105.0330359	39.7791385	-105.0330101	39.7802665
-9495	7377	1766	0.0535653036014808	0.0535653036014808	-105.0334347	39.7548479	-105.0334284	39.7553296
-9496	1766	7378	0.148946577862237	0.148946577862237	-105.0334284	39.7553296	-105.0334347	39.7566691
-9497	7378	7379	0.151136159766357	0.151136159766357	-105.0334347	39.7566691	-105.0334355	39.7580283
-9498	7379	2978	0.0542010510807056	0.0542010510807056	-105.0334355	39.7580283	-105.0334272	39.7585157
-9500	6210	7380	0.184339220967731	0.184339220967731	-105.0337279	39.7260547	-105.0337242	39.7277125
-9501	7380	7381	0.177783326711723	0.177783326711723	-105.0337242	39.7277125	-105.0337396	39.7293113
-9503	7055	4046	0.178402656739544	0.178402656739544	-105.0337024	39.7165547	-105.0336938	39.7181591
-9504	4046	7382	0.177334708763743	0.177334708763743	-105.0336938	39.7181591	-105.0337009	39.7197539
-9505	7382	1847	0.175265460280809	0.175265460280809	-105.0337009	39.7197539	-105.0337	39.7213301
-9506	1847	2581	0.177411624203835	0.177411624203835	-105.0337	39.7213301	-105.0337024	39.7229256
-9508	5179	7383	0.0621659509396009	0.0621659509396009	-105.0337195	39.7245298	-105.0336341	39.725085
-9510	7384	5530	0.101603812835917	0.101603812835917	-105.033438	39.773186	-105.033486	39.774099
-9511	5530	6476	0.0959541548395336	0.0959541548395336	-105.033486	39.774099	-105.0333983	39.7749593
-9512	6476	7385	0.197309689587966	0.197309689587966	-105.0333983	39.7749593	-105.0333812	39.7767337
-9514	7386	4578	0.133367493492184	0.133367493492184	-105.0330679	39.7403194	-105.0330646	39.7415188
-9515	4578	6442	0.135224444657643	0.135224444657643	-105.0330646	39.7415188	-105.0330679	39.7427349
-9516	6442	5294	0.135202388191056	0.135202388191056	-105.0330679	39.7427349	-105.0330637	39.7439508
-9517	5294	6971	0.132090452543352	0.132090452543352	-105.0330637	39.7439508	-105.0330722	39.7451387
-9519	7387	6793	0.0526421759963202	0.0526421759963202	-105.0330656	39.7694876	-105.0330596	39.769961
-9520	6793	2426	0.0832334466071371	0.0832334466071371	-105.0330596	39.769961	-105.03305	39.7707095
-9521	2426	7292	0.0515611894823623	0.0515611894823623	-105.03305	39.7707095	-105.0330488	39.7711732
-9522	7292	3230	0.0818841223845197	0.0818841223845197	-105.0330488	39.7711732	-105.0330468	39.7719096
-9523	3230	7388	0.142866769580008	0.142866769580008	-105.0330468	39.7719096	-105.033238	39.773186
-9525	7389	7390	0.203322823967769	0.203322823967769	-105.0332722	39.7293161	-105.0332849	39.7311446
-9529	7391	7392	0.135325738854945	0.135325738854945	-105.033138	39.748786	-105.0330703	39.7500019
-9530	7392	7393	0.132395815694125	0.132395815694125	-105.0330703	39.7500019	-105.0331086	39.7511922
-9531	7393	7394	0.135014881681412	0.135014881681412	-105.0331086	39.7511922	-105.0331	39.7524064
-9532	7394	7395	0.132077333868835	0.132077333868835	-105.0331	39.7524064	-105.0331	39.7535942
-9535	7397	621	0.0257970801977961	0.0257970801977961	-105.0333294	39.7363199	-105.0333206	39.7365518
-9537	4075	6060	0.199263565882924	0.199263565882924	-105.0333673	39.7838362	-105.0333562	39.7856282
-9538	6060	5800	0.199550446273018	0.199550446273018	-105.0333562	39.7856282	-105.0333549	39.7874228
-9540	7398	3097	0.199450454556748	0.199450454556748	-104.9686917	39.7147256	-104.9686892	39.7129319
-9541	3097	3207	0.202536688546866	0.202536688546866	-104.9686892	39.7129319	-104.9687078	39.7111105
-9542	3207	6119	0.201707926741417	0.201707926741417	-104.9687078	39.7111105	-104.9686581	39.7092969
-9543	6119	1917	0.201109266380341	0.201109266380341	-104.9686581	39.7092969	-104.9686689	39.7074883
-9544	1917	7243	0.20045244430598	0.20045244430598	-104.9686689	39.7074883	-104.9686775	39.7056856
-9545	7243	594	0.202390514467061	0.202390514467061	-104.9686775	39.7056856	-104.9686935	39.7038655
-9547	7399	5843	0.208569621956493	0.208569621956493	-104.9687279	39.6929756	-104.9687193	39.6910999
-9549	7400	5659	0.10300363118025	0.10300363118025	-104.9687412	39.6893196	-104.9687309	39.6883933
-9550	5659	7401	0.0544972381418925	0.0544972381418925	-104.9687309	39.6883933	-104.9687279	39.6879032
-9552	6194	6950	0.191455920710939	0.191455920710939	-104.982919	39.7801891	-104.9829139	39.7819109
-9553	6950	7402	0.209004541630565	0.209004541630565	-104.9829139	39.7819109	-104.9829018	39.7837905
-9555	4943	7403	0.0144437903083984	0.0144437903083984	-104.9952896	39.7400105	-104.995301	39.7401401
-9556	7403	3000	0.101061674656442	0.101061674656442	-104.995301	39.7401401	-104.9961353	39.7407839
-9558	6639	3962	0.136668682711291	0.136668682711291	-104.9985703	39.7165902	-105.0001681	39.7165803
-9559	3962	4361	0.121869293781819	0.121869293781819	-105.0001681	39.7165803	-105.0015929	39.7165869
-20411	9207	10780	0.0112983850763668	0.0112983850763668	-105.0250726	39.7601228	-105.0250471	39.7600231
-9561	5171	5225	0.145976272368254	0.145976272368254	-104.9874858	39.7165623	-104.9891924	39.7165504
-9562	5225	1866	0.0654044096593951	0.0654044096593951	-104.9891924	39.7165504	-104.9899563	39.7165768
-9563	1866	5084	0.0770856255669816	0.0770856255669816	-104.9899563	39.7165768	-104.9908575	39.7165834
-9564	5084	2809	0.113066726070966	0.113066726070966	-104.9908575	39.7165834	-104.9921793	39.7165966
-9565	2809	3368	0.152693063908693	0.152693063908693	-104.9921793	39.7165966	-104.9939645	39.7165966
-9566	3368	7404	0.0530057643448654	0.0530057643448654	-104.9939645	39.7165966	-104.9945842	39.7165997
-9567	7404	4944	0.0497811011847154	0.0497811011847154	-104.9945842	39.7165997	-104.9951662	39.7166026
-9568	4944	7405	0.0515530101953733	0.0515530101953733	-104.9951662	39.7166026	-104.9957689	39.7166071
-9569	7405	7217	0.0502978935844785	0.0502978935844785	-104.9957689	39.7166071	-104.9963567	39.7165938
-9570	7217	7406	0.0537233169488665	0.0537233169488665	-104.9963567	39.7165938	-104.9969848	39.7165925
-9571	7406	7407	0.0412354910733997	0.0412354910733997	-104.9969848	39.7165925	-104.9974669	39.7165915
-9572	6416	4212	0.100784166153009	0.100784166153009	-105.0172314	39.7170829	-105.018373	39.7168584
-9573	4212	190	0.175257609965618	0.175257609965618	-105.018373	39.7168584	-105.0203986	39.7166208
-9574	190	4532	0.201882877149858	0.201882877149858	-105.0203986	39.7166208	-105.0227589	39.7166208
-9575	4532	5431	0.198227529862783	0.198227529862783	-105.0227589	39.7166208	-105.0250764	39.7166076
-9576	5431	5972	0.107244272330712	0.107244272330712	-105.0250764	39.7166076	-105.0263295	39.7165745
-9577	5972	2255	0.104270609577454	0.104270609577454	-105.0263295	39.7165745	-105.0275483	39.7165547
-9578	2255	6131	0.104982960169425	0.104982960169425	-105.0275483	39.7165547	-105.0287757	39.7165547
-9579	6131	3998	0.104249966263654	0.104249966263654	-105.0287757	39.7165547	-105.0299945	39.7165481
-9580	3998	7048	0.105712541492873	0.105712541492873	-105.0299945	39.7165481	-105.0312304	39.7165547
-9581	7048	1393	0.105952500116488	0.105952500116488	-105.0312304	39.7165547	-105.0324691	39.7165619
-9583	7408	7055	0.0530917174300864	0.0530917174300864	-105.0330817	39.7165583	-105.0337024	39.7165547
-9584	7055	7409	0.0515249594325266	0.0515249594325266	-105.0337024	39.7165547	-105.0343048	39.7165547
-9585	7409	3389	0.0512512544679775	0.0512512544679775	-105.0343048	39.7165547	-105.034904	39.7165547
-9586	3389	7410	0.0515249594325266	0.0515249594325266	-105.034904	39.7165547	-105.0355064	39.7165547
-9587	7410	4504	0.051986836558228	0.051986836558228	-105.0355064	39.7165547	-105.0361142	39.7165547
-9588	4504	3539	0.0507992547126353	0.0507992547126353	-105.0361142	39.7165547	-105.0367081	39.716558
-9589	3539	7411	0.0505170014633714	0.0505170014633714	-105.0367081	39.716558	-105.0372987	39.7165613
-9590	7411	7412	0.0515690276546841	0.0515690276546841	-105.0372987	39.7165613	-105.0379016	39.716558
-9592	5066	6400	0.0525526328752235	0.0525526328752235	-105.0384889	39.7165547	-105.0391033	39.716558
-9593	6400	6835	0.0526723733629873	0.0526723733629873	-105.0391033	39.716558	-105.0397191	39.7165613
-9594	6835	7413	0.0505686622438464	0.0505686622438464	-105.0397191	39.7165613	-105.0403103	39.7165576
-9595	7413	1105	0.0506198937481409	0.0506198937481409	-105.0403103	39.7165576	-105.0409021	39.716554
-9596	1105	7414	0.0824276303743622	0.0824276303743622	-105.0409021	39.716554	-105.0418648	39.7165877
-9598	3863	7415	0.0529481461592885	0.0529481461592885	-105.0432639	39.7165811	-105.0438828	39.716571
-9599	7415	6656	0.0485933921065039	0.0485933921065039	-105.0438828	39.716571	-105.0444508	39.7165618
-9600	6656	7416	0.0551266417503484	0.0551266417503484	-105.0444508	39.7165618	-105.0450953	39.7165644
-9601	7416	7417	0.698080046436177	0.698080046436177	-105.0450953	39.7165644	-105.0532563	39.7166375
-9602	3179	7418	0.0616464790427922	0.0616464790427922	-104.9535963	39.7030192	-104.9529866	39.7027237
-9603	7418	5002	0.0485639637102659	0.0485639637102659	-104.9529866	39.7027237	-104.9525063	39.7024909
-9604	5002	7419	0.0540110826611525	0.0540110826611525	-104.9525063	39.7024909	-104.9519684	39.7022366
-9605	7419	5725	0.0437502401390831	0.0437502401390831	-104.9519684	39.7022366	-104.9515323	39.7020311
-9606	5725	724	0.0271601591292424	0.0271601591292424	-104.9515323	39.7020311	-104.9512162	39.7020084
-9607	724	7059	0.100733087825974	0.100733087825974	-104.9512162	39.7020084	-104.9500388	39.7020179
-9608	7059	7314	0.111000885564944	0.111000885564944	-104.9500388	39.7020179	-104.9489488	39.7014764
-9610	7421	3610	0.212938945536276	0.212938945536276	-104.9318313	39.7628536	-104.9293406	39.7628932
-9611	3610	2128	0.151144951480704	0.151144951480704	-104.9293406	39.7628932	-104.9275725	39.7628734
-10843	154	8006	0.0789597424143419	0.0789597424143419	-104.9570001	39.7445158	-104.9569442	39.743807
-9613	5998	2327	0.147931201391184	0.147931201391184	-104.9257702	39.7628567	-104.9240401	39.7628914
-9614	2327	7422	0.151462381546094	0.151462381546094	-104.9240401	39.7628914	-104.9222681	39.7628932
-9615	2016	354	0.0832039426217647	0.0832039426217647	-104.9349971	39.720897	-104.9346635	39.7201941
-9616	354	2024	0.270665538753682	0.270665538753682	-104.9346635	39.7201941	-104.935134	39.717787
-9620	4944	7424	0.200356357596052	0.200356357596052	-104.9951662	39.7166026	-104.9951833	39.7148008
-9622	2981	7425	0.200823510551274	0.200823510551274	-105.0369709	39.7585166	-105.0369407	39.7603225
-9623	7425	7426	0.200629159279387	0.200629159279387	-105.0369407	39.7603225	-105.0369378	39.7621268
-9624	7426	7427	0.00781704540286186	0.00781704540286186	-105.0369378	39.7621268	-105.0369381	39.7621971
-9625	7427	7428	0.196215671376464	0.196215671376464	-105.0369381	39.7621971	-105.0369458	39.7639617
-9626	7428	6876	0.205224182417126	0.205224182417126	-105.0369458	39.7639617	-105.0369584	39.7658073
-9627	6876	1687	0.205021376956907	0.205021376956907	-105.0369584	39.7658073	-105.0369553	39.7676511
-9628	1687	7429	0.205696359665547	0.205696359665547	-105.0369553	39.7676511	-105.0369881	39.7695008
-9629	7429	2432	0.199163881347575	0.199163881347575	-105.0369881	39.7695008	-105.0369607	39.7712918
-9630	2432	7431	0.20247617593456	0.20247617593456	-105.0369607	39.7712918	-105.0369521	39.7731127
-9632	6213	7432	0.274944028390563	0.274944028390563	-105.0372874	39.7257681	-105.0373205	39.7282406
-9633	7432	7433	0.263513794727665	0.263513794727665	-105.0373205	39.7282406	-105.0373376	39.7306104
-9634	7433	6594	0.262579264502597	0.262579264502597	-105.0373376	39.7306104	-105.0373216	39.7329718
-9636	7254	1423	0.111990529719831	0.111990529719831	-105.0369203	39.7810777	-105.0369066	39.7820848
-10866	1577	8015	0.266859669077532	0.266859669077532	-105.0390628	39.6875658	-105.0390481	39.6851659
-9639	7434	7435	0.184117705049588	0.184117705049588	-105.0369402	39.7767242	-105.0369326	39.77838
-9640	7435	7436	0.203503143312405	0.203503143312405	-105.0369326	39.77838	-105.0369154	39.7802101
-9642	6593	7437	0.098508708246921	0.098508708246921	-105.0369834	39.7329675	-105.0369779	39.7338534
-9643	7437	7127	0.0085733378066782	0.0085733378066782	-105.0369779	39.7338534	-105.0369772	39.7339305
-9645	7411	4051	0.176201016140517	0.176201016140517	-105.0372987	39.7165613	-105.0372901	39.7181459
-9646	4051	7438	0.186623330561976	0.186623330561976	-105.0372901	39.7181459	-105.0373273	39.719824
-9647	7438	1853	0.167040016171723	0.167040016171723	-105.0373273	39.719824	-105.0373156	39.7213262
-9648	1853	2591	0.179034976108436	0.179034976108436	-105.0373156	39.7213262	-105.0373167	39.7229363
-9650	7439	6064	0.193434831975152	0.193434831975152	-105.0369233	39.7838741	-105.0369206	39.7856137
-9651	6064	2544	0.202007823415783	0.202007823415783	-105.0369206	39.7856137	-105.0369205	39.7874304
-9652	2544	7440	0.411378882387366	0.411378882387366	-105.0369205	39.7874304	-105.036936	39.79113
-9653	7129	627	0.200330694412442	0.200330694412442	-105.0369832	39.7347877	-105.0369171	39.7365886
-9655	18	6387	0.132089927812284	0.132089927812284	-105.0369187	39.746386	-105.036926	39.7475739
-9658	7443	7444	0.13397887621517	0.13397887621517	-105.036967	39.7499887	-105.036965	39.7511936
-9659	7444	5539	0.105571329036095	0.105571329036095	-105.036965	39.7511936	-105.0369449	39.7521429
-9660	5539	2407	0.0968730605007166	0.0968730605007166	-105.0369449	39.7521429	-105.0369621	39.753014
-9661	2407	4292	0.100193275722424	0.100193275722424	-105.0369621	39.753014	-105.0369756	39.753915
-9662	4292	7445	0.0505436928211805	0.0505436928211805	-105.0369756	39.753915	-105.0369668	39.7543695
-9663	7445	7446	0.0548363595380854	0.0548363595380854	-105.0369668	39.7543695	-105.0369572	39.7548626
-9665	7447	7448	0.169947053382904	0.169947053382904	-105.0151992	39.7160167	-105.0139289	39.7148415
-9667	5852	1336	0.19937663187299	0.19937663187299	-105.014337	39.714787	-105.014352	39.712994
-9668	1336	6158	0.0597086585632686	0.0597086585632686	-105.014352	39.712994	-105.01431	39.712458
-9669	6158	7449	0.153340690716036	0.153340690716036	-105.01431	39.712458	-105.014321	39.711079
-9671	7450	4365	0.199972383812324	0.199972383812324	-104.9991888	39.7075519	-105.0015264	39.7075644
-9672	4365	1447	0.201108937861992	0.201108937861992	-105.0015264	39.7075644	-105.0038773	39.7075535
-9673	1447	7451	0.20199467881708	0.20199467881708	-105.0038773	39.7075535	-105.0062376	39.7076063
-9674	7451	6664	0.0985180993542889	0.0985180993542889	-105.0062376	39.7076063	-105.0073877	39.7075601
-9675	6664	1757	0.102800794441344	0.102800794441344	-105.0073877	39.7075601	-105.0085894	39.7075535
-9676	1757	3819	0.106482209599855	0.106482209599855	-105.0085894	39.7075535	-105.0098339	39.7075733
-9677	3819	5892	0.0976679798408968	0.0976679798408968	-105.0098339	39.7075733	-105.0109755	39.7075865
-9679	5332	5070	0.101261676099905	0.101261676099905	-105.0373528	39.7079851	-105.0385346	39.7080373
-9680	5070	6838	0.100657370443561	0.100657370443561	-105.0385346	39.7080373	-105.0397105	39.7080043
-9681	6838	6967	0.0976725983678986	0.0976725983678986	-105.0397105	39.7080043	-105.040852	39.7080241
-9682	6967	7452	0.102800093286128	0.102800093286128	-105.040852	39.7080241	-105.0420537	39.7080307
-9683	7452	7453	0.0998547767838799	0.0998547767838799	-105.0420537	39.7080307	-105.043221	39.7080307
-9685	5437	7454	0.211535646678045	0.211535646678045	-105.0250692	39.7075784	-105.0275397	39.707661
-9686	7454	4416	0.194570832918176	0.194570832918176	-105.0275397	39.707661	-105.0298142	39.7076544
-9687	4416	7456	0.224677107455919	0.224677107455919	-105.0298142	39.7076544	-105.0324406	39.7076676
-9688	7456	4322	0.22100369073056	0.22100369073056	-105.0324406	39.7076676	-105.0350241	39.707661
-9692	7458	7459	0.0196177061643605	0.0196177061643605	-104.9885959	39.7075353	-104.9888252	39.7075381
-9693	7459	7460	0.0200797614980701	0.0200797614980701	-104.9888252	39.7075381	-104.9890599	39.707541
-9694	7460	7461	0.0204220717617775	0.0204220717617775	-104.9890599	39.707541	-104.9892986	39.707544
-9695	7461	7462	0.0192753952773127	0.0192753952773127	-104.9892986	39.707544	-104.9895239	39.7075467
-9696	7462	7463	0.0197376280100197	0.0197376280100197	-104.9895239	39.7075467	-104.9897546	39.7075496
-9697	7463	1874	0.0201396312288959	0.0201396312288959	-104.9897546	39.7075496	-104.98999	39.7075525
-9698	1874	7464	0.101865928676763	0.101865928676763	-104.98999	39.7075525	-104.9911808	39.7075508
-9699	7464	7465	0.0516398712444199	0.0516398712444199	-104.9911808	39.7075508	-104.9917844	39.7075576
-9700	5894	1589	0.201207684972719	0.201207684972719	-105.0109744	39.7074034	-105.0133261	39.7073704
-9701	1589	1639	0.202832052664544	0.202832052664544	-105.0133261	39.7073704	-105.0156968	39.7073378
-9703	7466	7467	0.461510399426298	0.461510399426298	-105.0431952	39.7089155	-105.0485899	39.7089671
-9704	7468	7469	0.0656477480578156	0.0656477480578156	-104.9875851	39.7084534	-104.9883525	39.7084582
-9705	7469	7470	0.0202314805703126	0.0202314805703126	-104.9883525	39.7084582	-104.988589	39.7084596
-9706	7470	7471	0.0196155905306545	0.0196155905306545	-104.988589	39.7084596	-104.9888183	39.708461
-9707	7471	7472	0.0198466389215673	0.0198466389215673	-104.9888183	39.708461	-104.9890503	39.7084625
-9709	7473	7474	0.0193760769839274	0.0193760769839274	-104.9892894	39.708464	-104.9895159	39.7084654
-10941	7859	4686	0.105458193161767	0.105458193161767	-104.992836	39.7305121	-104.9940692	39.730515
-16187	5815	7203	0.20368767335866	0.20368767335866	-104.9845543	39.6911833	-104.9845476	39.6930151
-9710	7474	7475	0.0199577496151493	0.0199577496151493	-104.9895159	39.7084654	-104.9897492	39.7084668
-9711	7475	1873	0.0221306450398483	0.0221306450398483	-104.9897492	39.7084668	-104.9900079	39.7084684
-9712	1873	7476	0.0228930859552116	0.0228930859552116	-104.9900079	39.7084684	-104.9902755	39.708471
-9713	7476	7477	0.00597945379667752	0.00597945379667752	-104.9902755	39.708471	-104.9903454	39.7084711
-9714	7477	7481	0.0633102446327588	0.0633102446327588	-104.9903454	39.7084711	-104.9910855	39.7084711
-9715	7481	7482	0.00659734634558833	0.00659734634558833	-104.9910855	39.7084711	-104.9911621	39.7084642
-9716	7482	7483	0.0122662226221965	0.0122662226221965	-104.9911621	39.7084642	-104.9913038	39.7084473
-9717	7483	7484	0.0357233876730641	0.0357233876730641	-104.9913038	39.7084473	-104.9917214	39.7084493
-9718	7484	4185	0.0600540815299224	0.0600540815299224	-104.9917214	39.7084493	-104.9924234	39.7084547
-9721	7485	4417	0.198257535408126	0.198257535408126	-105.0275311	39.708526	-105.0298486	39.7085458
-9722	4417	7486	0.220999648574169	0.220999648574169	-105.0298486	39.7085458	-105.0324321	39.7085458
-9723	7486	4321	0.223933764288424	0.223933764288424	-105.0324321	39.7085458	-105.0350499	39.7085458
-9725	4364	1446	0.20650017701017	0.20650017701017	-105.0014826	39.7083921	-105.0038944	39.7084713
-9726	1446	7487	0.199709617072806	0.199709617072806	-105.0038944	39.7084713	-105.006229	39.7084779
-9727	7487	6936	0.203411194568703	0.203411194568703	-105.006229	39.7084779	-105.0086065	39.7084449
-9728	6936	5891	0.202831423382765	0.202831423382765	-105.0086065	39.7084449	-105.0109775	39.7084624
-9730	7488	7489	0.219847500079542	0.219847500079542	-105.0416419	39.7310429	-105.0416893	39.7330197
-9731	7489	7490	0.112284636925509	0.112284636925509	-105.0416893	39.7330197	-105.0416893	39.7340295
-9733	7491	7492	0.104975617952237	0.104975617952237	-105.0416725	39.7478114	-105.0416382	39.7487551
-9734	7492	7493	0.133826104897821	0.133826104897821	-105.0416382	39.7487551	-105.0416487	39.7499586
-9735	7493	7494	0.136182988757468	0.136182988757468	-105.0416487	39.7499586	-105.0416791	39.7511831
-9737	5544	2414	0.0621561786197408	0.0621561786197408	-105.0416664	39.7521054	-105.0416538	39.7526643
-9739	5055	4297	0.0642451197659933	0.0642451197659933	-105.04162	39.753356	-105.0416469	39.7539334
-9740	4297	7495	0.104062899405527	0.104062899405527	-105.0416469	39.7539334	-105.0416607	39.7548692
-9741	7495	7496	0.203687229874764	0.203687229874764	-105.0416607	39.7548692	-105.0416562	39.756701
-9742	7496	2987	0.200108037782066	0.200108037782066	-105.0416562	39.756701	-105.0416657	39.7585006
-9743	2987	7497	0.201819339453719	0.201819339453719	-105.0416657	39.7585006	-105.0416712	39.7603156
-9744	7497	7498	0.0489089257680099	0.0489089257680099	-105.0416712	39.7603156	-105.0416627	39.7607554
-9745	7498	7499	0.151764240821653	0.151764240821653	-105.0416627	39.7607554	-105.0416365	39.7621201
-9746	7499	7500	0.203024715164671	0.203024715164671	-105.0416365	39.7621201	-105.0416198	39.7639459
-9747	7500	6882	0.202091910987955	0.202091910987955	-105.0416198	39.7639459	-105.0416508	39.7657632
-9748	6882	1693	0.203443247701908	0.203443247701908	-105.0416508	39.7657632	-105.0416583	39.7675928
-9749	1693	7501	0.204709999833149	0.204709999833149	-105.0416583	39.7675928	-105.0416611	39.7694338
-9750	7501	2441	0.166684898047837	0.166684898047837	-105.0416611	39.7694338	-105.0416481	39.7709328
-9752	5738	5527	0.157552520143968	0.157552520143968	-105.0416591	39.7724704	-105.0416634	39.7738873
-9753	5527	6465	0.155770587020073	0.155770587020073	-105.0416634	39.7738873	-105.0416343	39.775288
-9754	6465	7502	0.156429247159158	0.156429247159158	-105.0416343	39.775288	-105.0415725	39.776694
-9755	7502	7503	0.187478248770476	0.187478248770476	-105.0415725	39.776694	-105.0415589	39.77838
-9756	7503	7504	0.202724737429487	0.202724737429487	-105.0415589	39.77838	-105.041576	39.7802031
-10985	7367	5402	0.104549154022735	0.104549154022735	-104.9671778	39.7607476	-104.9659547	39.7607434
-9757	7504	1429	0.207912295088567	0.207912295088567	-105.041576	39.7802031	-105.0415749	39.7820729
-9758	1429	7189	0.130843883831593	0.130843883831593	-105.0415749	39.7820729	-105.0415695	39.7832496
-9760	6219	7505	0.274122910361615	0.274122910361615	-105.0416352	39.7257952	-105.0416549	39.7282604
-9761	7505	7506	0.19636903427064	0.19636903427064	-105.0416549	39.7282604	-105.0410987	39.7299738
-9763	2603	5189	0.177622776028071	0.177622776028071	-105.0416219	39.7229569	-105.041622	39.7245543
-9764	5189	5657	0.106425186945832	0.106425186945832	-105.041622	39.7245543	-105.0416181	39.7255114
-9766	7507	7508	0.0438255563694837	0.0438255563694837	-105.0420882	39.7176598	-105.0420948	39.7180539
-9767	7508	4058	0.0100861958439265	0.0100861958439265	-105.0420948	39.7180539	-105.0420963	39.7181446
-9768	4058	7509	0.0353348287032789	0.0353348287032789	-105.0420963	39.7181446	-105.0421052	39.7184623
-9769	7509	7510	0.141940367411715	0.141940367411715	-105.0421052	39.7184623	-105.0421039	39.7197388
-9770	7510	1860	0.1765997957518	0.1765997957518	-105.0421039	39.7197388	-105.0421031	39.721327
-9771	1860	2604	0.182058234750596	0.182058234750596	-105.0421031	39.721327	-105.0421253	39.7229642
-9773	7511	6071	0.194146348690461	0.194146348690461	-105.0415559	39.7838742	-105.0415553	39.7856202
-9774	6071	2551	0.201763197291639	0.201763197291639	-105.0415553	39.7856202	-105.0415549	39.7874347
-9776	7513	7514	0.138564330925234	0.138564330925234	-105.0416463	39.7353826	-105.0416221	39.7366286
-9778	7515	686	0.203088920175274	0.203088920175274	-104.9286555	39.7401271	-104.9286673	39.7419535
-9779	686	1983	0.159242254447937	0.159242254447937	-104.9286673	39.7419535	-104.9286673	39.7433856
-9780	1983	1968	0.0374282123082397	0.0374282123082397	-104.9286673	39.7433856	-104.9286673	39.7437222
-9781	1968	4621	0.107323343903913	0.107323343903913	-104.9286673	39.7437222	-104.9285042	39.7446792
-9782	4621	6500	0.103085986769995	0.103085986769995	-104.9285042	39.7446792	-104.928642	39.7456002
-9783	6500	2474	0.199627678773596	0.199627678773596	-104.928642	39.7456002	-104.9286764	39.7473953
-9785	7516	2773	0.203153140061273	0.203153140061273	-104.9281792	39.765593	-104.9281046	39.7674191
-9786	2773	6896	0.203229996829736	0.203229996829736	-104.9281046	39.7674191	-104.928139	39.7692466
-9788	5346	7517	0.175498987947166	0.175498987947166	-104.9281276	39.716246	-104.9281289	39.7178243
-9789	7517	2340	0.175921748142843	0.175921748142843	-104.9281289	39.7178243	-104.9281254	39.7194064
-9790	2340	7518	0.175670305695009	0.175670305695009	-104.9281254	39.7194064	-104.9281106	39.7209862
-9791	7518	4783	0.243270382660677	0.243270382660677	-104.9281106	39.7209862	-104.9282926	39.7231695
-9792	4783	7519	0.239583168661009	0.239583168661009	-104.9282926	39.7231695	-104.9283056	39.7253241
-9793	7519	7520	0.0339478111046773	0.0339478111046773	-104.9283056	39.7253241	-104.9283056	39.7256294
-9794	7520	6369	0.269882786903903	0.269882786903903	-104.9283056	39.7256294	-104.9282948	39.7280565
-9795	6369	7521	0.132466649716692	0.132466649716692	-104.9282948	39.7280565	-104.928297	39.7292478
-9797	7522	5952	0.201032381768493	0.201032381768493	-104.9280878	39.7292519	-104.9280748	39.7310598
-9798	5952	5144	0.0336716082597733	0.0336716082597733	-104.9280748	39.7310598	-104.9280639	39.7313625
-9799	5144	5156	0.0326057448432317	0.0326057448432317	-104.9280639	39.7313625	-104.9280694	39.7316557
-9800	5156	2239	0.132989211721542	0.132989211721542	-104.9280694	39.7316557	-104.9280711	39.7328517
-9801	2239	4912	0.203447012505169	0.203447012505169	-104.9280711	39.7328517	-104.9280548	39.7346813
-9802	4912	6610	0.203165550596053	0.203165550596053	-104.9280548	39.7346813	-104.9280463	39.7365084
-18325	7524	7525	0.0423335034846442	0.0423335034846442	-105.0433477	39.777017	-105.0433434	39.7766363
-9804	7523	7526	0.205397811211562	0.205397811211562	-104.9280376	39.7382791	-104.9280609	39.7401262
-9806	2475	5910	0.203278121280476	0.203278121280476	-104.9281369	39.7474129	-104.9281491	39.749241
-9807	5910	7527	0.201064010596531	0.201064010596531	-104.9281491	39.749241	-104.9281577	39.7510492
-9808	7527	800	0.20177431388955	0.20177431388955	-104.9281577	39.7510492	-104.9281577	39.7528638
-9809	800	7528	0.202244021720306	0.202244021720306	-104.9281577	39.7528638	-104.9281699	39.7546826
-9811	7529	7530	0.20077292216439	0.20077292216439	-104.9282316	39.7565549	-104.9282076	39.7583604
-9813	3064	7531	0.184973544349351	0.184973544349351	-104.9282248	39.7601815	-104.9282311	39.761845
-9815	2632	5362	0.0801274749327823	0.0801274749327823	-105.0450779	39.7221456	-105.0450749	39.7228662
-9816	5362	5209	0.120994383618796	0.120994383618796	-105.0450749	39.7228662	-105.0451039	39.7239541
-9817	5209	6229	0.174510675248847	0.174510675248847	-105.0451039	39.7239541	-105.0451283	39.7255234
-9819	7532	7533	0.202574921872807	0.202574921872807	-105.0451861	39.7366574	-105.0451856	39.7384792
-9820	7533	7534	0.206092993605617	0.206092993605617	-105.0451856	39.7384792	-105.04517	39.7403326
-9821	7534	6444	0.205010086254005	0.205010086254005	-105.04517	39.7403326	-105.04517	39.7421763
-9822	6444	5302	0.199728470714505	0.199728470714505	-105.04517	39.7421763	-105.0451672	39.7439725
-9824	6656	4061	0.176855547581016	0.176855547581016	-105.0444508	39.7165618	-105.0444517	39.7181523
-9825	4061	7535	0.242794235361762	0.242794235361762	-105.0444517	39.7181523	-105.0445183	39.7203352
-9827	7536	6086	0.100844609398613	0.100844609398613	-105.0449356	39.7621062	-105.0449283	39.7630131
-9828	6086	7537	0.100375721785614	0.100375721785614	-105.0449283	39.7630131	-105.044927	39.7639158
-9829	7537	7538	0.0511607864629355	0.0511607864629355	-105.044927	39.7639158	-105.0449269	39.7643759
-9830	7538	5244	0.0495951653375039	0.0495951653375039	-105.0449269	39.7643759	-105.0449324	39.7648219
-9831	5244	7539	0.0519761520574234	0.0519761520574234	-105.0449324	39.7648219	-105.0449396	39.7652893
-9832	7539	6885	0.0502414304638419	0.0502414304638419	-105.0449396	39.7652893	-105.0449466	39.7657411
-9833	6885	7540	0.0499615650233233	0.0499615650233233	-105.0449466	39.7657411	-105.0449514	39.7661904
-9835	7541	7542	0.0351445858107267	0.0351445858107267	-105.044947	39.7666453	-105.0449552	39.7669613
-9838	7544	7545	0.105704455648811	0.105704455648811	-105.045174	39.7302935	-105.0451654	39.7312441
-9841	2556	7547	0.195916474446361	0.195916474446361	-105.0450916	39.78742	-105.0451023	39.7891819
-9842	6224	7548	0.277797708537317	0.277797708537317	-105.0451285	39.7257952	-105.0451568	39.7282934
-9845	7550	7551	0.196848690524097	0.196848690524097	-105.0451506	39.7693556	-105.0451465	39.7711259
-9846	7551	5751	0.202697238266629	0.202697238266629	-105.0451465	39.7711259	-105.0451459	39.7729488
-9847	5751	7552	0.00795047859513932	0.00795047859513932	-105.0451459	39.7729488	-105.0451456	39.7730203
-9848	7552	7553	0.129731824653906	0.129731824653906	-105.0451456	39.7730203	-105.0451406	39.774187
-9849	7553	6474	0.0638707232076661	0.0638707232076661	-105.0451406	39.774187	-105.0451381	39.7747614
-9850	6474	7554	0.0334363679568542	0.0334363679568542	-105.0451381	39.7747614	-105.0451388	39.7750621
-20015	10180	2696	0.367929886679579	0.367929886679579	-104.9873951	39.7535866	-104.984388	39.7559539
-9851	7554	7555	0.0146999916602211	0.0146999916602211	-105.0451388	39.7750621	-105.0451391	39.7751943
-9853	3170	7557	0.145194224111084	0.145194224111084	-105.0006969	39.7480168	-104.9994986	39.7489421
-9854	7557	7558	0.0835128735178232	0.0835128735178232	-104.9994986	39.7489421	-104.9988113	39.7494758
-9855	7558	7559	0.0585562750239905	0.0585562750239905	-104.9988113	39.7494758	-104.9983278	39.7498488
-9856	7559	6713	0.00611903533894709	0.00611903533894709	-104.9983278	39.7498488	-104.9982781	39.7498884
-9857	6713	7560	0.146921779963022	0.146921779963022	-104.9982781	39.7498884	-104.9970625	39.7508224
-9858	7560	5786	0.142766734982168	0.142766734982168	-104.9970625	39.7508224	-104.995889	39.7517359
-9859	5786	7561	0.147333855208616	0.147333855208616	-104.995889	39.7517359	-104.9946844	39.7526835
-11082	6285	2717	0.0986458045481302	0.0986458045481302	-105.0228094	39.7784186	-105.0239636	39.7784327
-9860	7561	7562	0.151251680669446	0.151251680669446	-104.9946844	39.7526835	-104.9934281	39.7536413
-9861	7562	7563	0.142846459249546	0.142846459249546	-104.9934281	39.7536413	-104.9922506	39.7545528
-9863	7564	3303	0.147900845771263	0.147900845771263	-104.9910557	39.7554766	-104.9898413	39.756424
-9865	5316	7565	0.0511409811054889	0.0511409811054889	-104.9500303	39.699284	-104.9506273	39.6992608
-9866	7565	7566	0.1490174605609	0.1490174605609	-104.9506273	39.6992608	-104.9519988	39.6984347
-9867	7566	3661	0.0439544289403808	0.0439544289403808	-104.9519988	39.6984347	-104.9521932	39.6980688
-9868	3661	3171	0.198821466322938	0.198821466322938	-104.9521932	39.6980688	-104.9534926	39.6965864
-9870	1541	4266	0.201902575581856	0.201902575581856	-104.9858935	39.7765349	-104.9858407	39.7783502
-9871	4266	280	0.117279281695443	0.117279281695443	-104.9858407	39.7783502	-104.9858487	39.7794049
-9873	1540	755	0.148174446133403	0.148174446133403	-104.9864968	39.7765361	-104.9864797	39.7752036
-9874	755	7567	0.109511008516479	0.109511008516479	-104.9864797	39.7752036	-104.986415	39.77422
-9875	7568	7569	0.504435059432168	0.504435059432168	-104.9863939	39.7873956	-104.986356	39.791932
-9876	5172	5629	0.20005288591208	0.20005288591208	-104.9862386	39.7165499	-104.9862279	39.718349
-9877	5629	2361	0.11286306962317	0.11286306962317	-104.9862279	39.718349	-104.9862305	39.719364
-9878	2361	4143	0.172420177163863	0.172420177163863	-104.9862305	39.719364	-104.9862384	39.7209146
-9879	4143	4747	0.180602807146659	0.180602807146659	-104.9862384	39.7209146	-104.986239	39.7225388
-9880	4747	6561	0.177131591078149	0.177131591078149	-104.986239	39.7225388	-104.9862601	39.7241317
-9881	6561	7570	0.0829182513004679	0.0829182513004679	-104.9862601	39.7241317	-104.986258	39.7248774
-9882	7570	7571	0.0849604902234264	0.0849604902234264	-104.986258	39.7248774	-104.9862197	39.7256409
-9883	7571	7572	0.039332803551206	0.039332803551206	-104.9862197	39.7256409	-104.9861902	39.7259939
-9885	3557	7573	0.0207104909362794	0.0207104909362794	-104.9745442	39.7546268	-104.9744777	39.7548059
-9886	7573	5510	0.0781175186423301	0.0781175186423301	-104.9744777	39.7548059	-104.9738469	39.7553142
-9887	5510	2897	0.0422469044547541	0.0422469044547541	-104.9738469	39.7553142	-104.9733528	39.7553064
-9889	3682	7574	0.193399178760091	0.193399178760091	-104.9839328	39.7475479	-104.982314	39.7487628
-9890	7574	7575	0.146546921459533	0.146546921459533	-104.982314	39.7487628	-104.9811177	39.7497067
-9891	7575	5359	0.14787210152478	0.14787210152478	-104.9811177	39.7497067	-104.9798903	39.7506437
-9892	5359	2682	0.147887137976142	0.147887137976142	-104.9798903	39.7506437	-104.9786543	39.7515742
-9893	2682	7576	0.0606198046830208	0.0606198046830208	-104.9786543	39.7515742	-104.9781607	39.7519656
-9895	4620	7577	0.120158924963582	0.120158924963582	-104.9873927	39.7448898	-104.9883537	39.7441013
-9896	7577	6702	0.146317084486212	0.146317084486212	-104.9883537	39.7441013	-104.9895702	39.7431758
-9897	6702	7578	0.146734472806395	0.146734472806395	-104.9895702	39.7431758	-104.9907772	39.7422377
-9898	7578	7579	0.145050961623328	0.145050961623328	-104.9907772	39.7422377	-104.9919734	39.7413127
-9899	7579	7580	0.00770297520415462	0.00770297520415462	-104.9919734	39.7413127	-104.9920391	39.7412653
-9900	7580	7581	0.13912090851738	0.13912090851738	-104.9920391	39.7412653	-104.993184	39.7403763
-9901	7581	7582	0.0411773493232422	0.0411773493232422	-104.993184	39.7403763	-104.9935535	39.7401388
-9903	2466	5908	0.205955273119341	0.205955273119341	-104.936135	39.7474151	-104.9361363	39.7492673
-9904	5908	7583	0.198595406640257	0.198595406640257	-104.9361363	39.7492673	-104.936128	39.7510533
-9905	7583	793	0.198805543342419	0.198805543342419	-104.936128	39.7510533	-104.9361307	39.7528412
-9906	793	7584	0.20315326209993	0.20315326209993	-104.9361307	39.7528412	-104.936128	39.7546682
-9907	7584	4357	0.202186223769753	0.202186223769753	-104.936128	39.7546682	-104.9361228	39.7564865
-9908	4357	7585	0.201775154423619	0.201775154423619	-104.9361228	39.7564865	-104.9360971	39.758301
-9910	3060	7586	0.187004558668975	0.187004558668975	-104.9361384	39.7601551	-104.9361181	39.7618368
-9913	7588	906	0.27600804903505	0.27600804903505	-104.9356152	39.7619945	-104.9356148	39.7644767
-9914	906	7589	0.12928644320394	0.12928644320394	-104.9356148	39.7644767	-104.9356129	39.7656394
-9916	6671	7590	0.0565797137930955	0.0565797137930955	-104.9362703	39.7162376	-104.9360407	39.7167148
-9917	5136	5151	0.022597397933528	0.022597397933528	-104.9361524	39.7336487	-104.9361564	39.7338519
-9918	5151	4906	0.0926596414619678	0.0926596414619678	-104.9361564	39.7338519	-104.9361612	39.7346852
-9919	4906	6616	0.200362179375123	0.200362179375123	-104.9361612	39.7346852	-104.9361597	39.7364871
-9920	6616	7591	0.195770799250889	0.195770799250889	-104.9361597	39.7364871	-104.9361168	39.7382474
-9921	7591	7592	0.206820957598552	0.206820957598552	-104.9361168	39.7382474	-104.93614	39.7401073
-9925	6556	7596	0.107470441058094	0.107470441058094	-104.9360156	39.7243514	-104.9360196	39.7253179
-9926	7596	7597	0.0323668981715237	0.0323668981715237	-104.9360196	39.7253179	-104.9360062	39.7256088
-9927	7597	7598	0.201852282407455	0.201852282407455	-104.9360062	39.7256088	-104.9360089	39.7274241
-9928	7598	7599	0.202247125760461	0.202247125760461	-104.9360089	39.7274241	-104.9360268	39.7292429
-9930	7600	4778	0.250803140264124	0.250803140264124	-104.936219	39.7208978	-104.9360157	39.7231479
-9932	1647	159	0.135282147606574	0.135282147606574	-105.0155835	39.6940639	-105.0145783	39.6931248
-9933	159	1722	0.249462326524164	0.249462326524164	-105.0145783	39.6931248	-105.0146011	39.6908814
-9935	6872	7601	0.692595810332122	0.692595810332122	-105.0147213	39.6885235	-105.0138082	39.6823346
-9938	6136	7603	0.0512178060127243	0.0512178060127243	-105.0288404	39.7288083	-105.0294393	39.7288116
-9939	7603	4004	0.0522781951051087	0.0522781951051087	-105.0294393	39.7288116	-105.0300506	39.7288149
-9941	2233	5134	0.145435815612977	0.145435815612977	-104.9384001	39.7328678	-104.9384246	39.7341756
-9942	5134	5149	0.0255338309274142	0.0255338309274142	-104.9384246	39.7341756	-104.9384043	39.7344047
-9943	5149	4904	0.0300983323579011	0.0300983323579011	-104.9384043	39.7344047	-104.9383957	39.7346753
-9944	4904	6618	0.200495686198041	0.200495686198041	-104.9383957	39.7346753	-104.9383982	39.7364784
-9945	6618	7604	0.20246265981009	0.20246265981009	-104.9383982	39.7364784	-104.9383746	39.7382991
-9946	7604	7605	0.201805887092512	0.201805887092512	-104.9383746	39.7382991	-104.9383973	39.7401139
-9948	6554	7606	0.105208061763435	0.105208061763435	-104.9382214	39.724358	-104.9382673	39.7253035
-9950	7607	7608	0.199144734139014	0.199144734139014	-104.9382968	39.725617	-104.9383271	39.7274078
-9951	7608	7609	0.20258734096308	0.20258734096308	-104.9383271	39.7274078	-104.9383356	39.7292297
-9953	2463	5906	0.205561292129907	0.205561292129907	-104.9383838	39.7474085	-104.9383649	39.7492571
-9954	5906	7610	0.199734725303301	0.199734725303301	-104.9383649	39.7492571	-104.9383462	39.7510533
-9955	7610	791	0.198807553256576	0.198807553256576	-104.9383462	39.7510533	-104.9383354	39.7528412
-9956	791	7612	0.203565382214395	0.203565382214395	-104.9383354	39.7528412	-104.9383286	39.7546719
-9957	7612	4355	0.201053666601032	0.201053666601032	-104.9383286	39.7546719	-104.9383178	39.75648
-9958	4355	7613	0.202489967264216	0.202489967264216	-104.9383178	39.75648	-104.9383029	39.758301
-9959	7613	3058	0.208369032173912	0.208369032173912	-104.9383029	39.758301	-104.9383099	39.7601749
-9960	3058	7614	0.183994647182619	0.183994647182619	-104.9383099	39.7601749	-104.9383054	39.7618296
-9961	7614	7615	0.026448194348771	0.026448194348771	-104.9383054	39.7618296	-104.9380774	39.7619904
-9963	1697	7616	0.173745206459615	0.173745206459615	-104.9384472	39.7162245	-104.938435	39.717787
-9964	7616	7617	0.177904510236026	0.177904510236026	-104.938435	39.717787	-104.9384215	39.7193869
-9965	7617	7618	0.1681272184952	0.1681272184952	-104.9384215	39.7193869	-104.9384446	39.7208988
-9966	7618	4776	0.251475825917774	0.251475825917774	-104.9384446	39.7208988	-104.9382401	39.7231549
-9970	3746	7622	0.0932397806145687	0.0932397806145687	-105.006247	39.715647	-105.0062385	39.7148085
-9971	7622	4665	0.0961947321638159	0.0961947321638159	-105.0062385	39.7148085	-105.0062556	39.7139435
-9972	4665	1332	0.102043584181961	0.102043584181961	-105.0062556	39.7139435	-105.0062556	39.7130258
-9973	1332	1387	0.0976513845787387	0.0976513845787387	-105.0062556	39.7130258	-105.0062556	39.7121476
-9974	1387	7623	0.104092676384345	0.104092676384345	-105.0062556	39.7121476	-105.0062462	39.7112115
-9975	7623	6849	0.109393568832939	0.109393568832939	-105.0062462	39.7112115	-105.0062462	39.7102277
-9976	6849	4705	0.0983852710944781	0.0983852710944781	-105.0062462	39.7102277	-105.0062462	39.7093429
-9977	4705	7487	0.0961948643858329	0.0961948643858329	-105.0062462	39.7093429	-105.006229	39.7084779
-9978	7487	7451	0.0969202901634112	0.0969202901634112	-105.006229	39.7084779	-105.0062376	39.7076063
-9979	7451	5688	0.104320933330224	0.104320933330224	-105.0062376	39.7076063	-105.0061947	39.7066687
-9980	5688	6313	0.0969730195141145	0.0969730195141145	-105.0061947	39.7066687	-105.006229	39.705797
-9981	6313	4962	0.100610954866441	0.100610954866441	-105.006229	39.705797	-105.0062033	39.7048924
-9982	4962	6819	0.104277744196946	0.104277744196946	-105.0062033	39.7048924	-105.0062204	39.7039547
-9983	6819	762	0.165411660097114	0.165411660097114	-105.0062204	39.7039547	-105.0062581	39.7024674
-9984	762	786	0.134384238449809	0.134384238449809	-105.0062581	39.7024674	-105.0053032	39.7015078
-9985	786	6001	0.286482254105535	0.286482254105535	-105.0053032	39.7015078	-105.0043064	39.6990482
-9986	6001	5764	0.0815255628306487	0.0815255628306487	-105.0043064	39.6990482	-105.0047699	39.6984076
-11219	8167	8168	0.194203872480123	0.194203872480123	-104.9348261	39.707407	-104.935108	39.705674
-9989	1491	149	0.200485771831907	0.200485771831907	-105.0061812	39.6948904	-105.0061897	39.6930874
-9990	149	1737	0.201708050623858	0.201708050623858	-105.0061897	39.6930874	-105.0061947	39.6912734
-9992	7313	5666	0.0386975210921627	0.0386975210921627	-104.9485996	39.7029027	-104.9482219	39.7030942
-9993	5666	522	0.0596630213761568	0.0596630213761568	-104.9482219	39.7030942	-104.947535	39.703187
-9994	522	4824	0.183721500047411	0.183721500047411	-104.947535	39.703187	-104.9453876	39.7032065
-9996	2254	7626	0.0984544191189144	0.0984544191189144	-105.0323072	39.7481785	-105.0334588	39.7481791
-9998	7627	7329	0.0447853238574392	0.0447853238574392	-104.9546377	39.7861919	-104.9541142	39.7862117
-9999	7329	2089	0.0938827847318007	0.0938827847318007	-104.9541142	39.7862117	-104.9530155	39.7862051
-10000	2089	2656	0.0939761287497805	0.0939761287497805	-104.9530155	39.7862051	-104.9519157	39.7861993
-10001	2656	4118	0.0946147674881846	0.0946147674881846	-104.9519157	39.7861993	-104.9508084	39.7861993
-10002	4118	6678	0.0843387660785722	0.0843387660785722	-104.9508084	39.7861993	-104.9498214	39.7861927
-10004	7628	7629	0.0982828610797249	0.0982828610797249	-104.9487399	39.7861861	-104.9475898	39.7861729
-10006	5220	5095	0.120687418213095	0.120687418213095	-104.9888573	39.7273254	-104.9902684	39.7273108
-10008	7630	6413	0.109655980715331	0.109655980715331	-105.016237	39.727486	-105.0175186	39.7275171
-10009	6413	4650	0.0986378512210248	0.0986378512210248	-105.0175186	39.7275171	-105.018672	39.7275171
-10010	4650	7631	0.100237060358401	0.100237060358401	-105.018672	39.7275171	-105.0198441	39.7275171
-10011	7631	3646	0.0896866361421679	0.0896866361421679	-105.0198441	39.7275171	-105.0208928	39.7275233
-10012	3646	4536	0.103452838278423	0.103452838278423	-105.0208928	39.7275233	-105.0221025	39.7275212
-10013	4536	7635	0.257545536230436	0.257545536230436	-105.0221025	39.7275212	-105.025114	39.7275076
-10015	7636	7637	0.0362863399636557	0.0362863399636557	-104.992437	39.727286	-104.9928501	39.7273605
-10016	7637	383	0.0504266976907422	0.0504266976907422	-104.9928501	39.7273605	-104.9934396	39.7273502
-10017	383	4682	0.05031361216385	0.05031361216385	-104.9934396	39.7273502	-104.9940278	39.7273407
-10018	4682	295	0.0506583134955018	0.0506583134955018	-104.9940278	39.7273407	-104.9946201	39.7273342
-10019	295	4954	0.0497648033018035	0.0497648033018035	-104.9946201	39.7273342	-104.995202	39.7273313
-10021	7222	7638	0.0496667318298412	0.0496667318298412	-104.9963829	39.727324	-104.9969636	39.7273173
-10022	7638	7639	0.0515292350274089	0.0515292350274089	-104.9969636	39.7273173	-104.9975661	39.7273117
-10023	7639	7640	0.0459421846016502	0.0459421846016502	-104.9975661	39.7273117	-104.9981033	39.7273146
-10024	7640	6642	0.0415805639651593	0.0415805639651593	-104.9981033	39.7273146	-104.9985895	39.7273172
-10026	3954	7641	0.0608839417644586	0.0608839417644586	-105.0001997	39.7273124	-105.0009116	39.7273175
-10027	7641	5604	0.0589168683204242	0.0589168683204242	-105.0009116	39.7273175	-105.0016005	39.7273224
-18697	6400	5868	0.177478717288294	0.177478717288294	-105.0391033	39.716558	-105.0390984	39.7149619
-10029	7642	3727	0.0543818576839699	0.0543818576839699	-105.0022097	39.7273219	-105.0028456	39.7273213
-10031	1239	4813	0.0888202681133088	0.0888202681133088	-105.0121506	39.7275003	-105.0131892	39.7275003
-10032	4813	2165	0.138535770033239	0.138535770033239	-105.0131892	39.7275003	-105.0140457	39.7285578
-10034	4003	7643	0.0510385957556285	0.0510385957556285	-105.0300602	39.7277169	-105.030657	39.7277196
-10035	7643	7027	0.0529371470208169	0.0529371470208169	-105.030657	39.7277196	-105.031276	39.7277224
-10036	7027	7644	0.0521180983869426	0.0521180983869426	-105.031276	39.7277224	-105.0318854	39.7277175
-10037	7644	7645	0.0537600930137936	0.0537600930137936	-105.0318854	39.7277175	-105.032514	39.7277125
-10038	7645	7646	0.0510719245712091	0.0510719245712091	-105.032514	39.7277125	-105.0331112	39.7277125
-10039	7646	7380	0.0524231241843369	0.0524231241843369	-105.0331112	39.7277125	-105.0337242	39.7277125
-10041	7647	3393	0.0461297697153075	0.0461297697153075	-105.0345838	39.7277084	-105.0351232	39.7277059
-10043	3394	7648	0.0445992136926928	0.0445992136926928	-105.0351404	39.7282472	-105.0356619	39.728244
-10044	7648	5709	0.0478831918410465	0.0478831918410465	-105.0356619	39.728244	-105.0362218	39.7282406
-10045	5709	7649	0.04548718787965	0.04548718787965	-105.0362218	39.7282406	-105.0367537	39.7282406
-10046	7649	7432	0.0484717768195407	0.0484717768195407	-105.0367537	39.7282406	-105.0373205	39.7282406
-10047	7432	7650	0.0437375947901795	0.0437375947901795	-105.0373205	39.7282406	-105.0378319	39.7282456
-10048	7650	7181	0.0470644094329018	0.0470644094329018	-105.0378319	39.7282456	-105.0383822	39.7282509
-10049	7181	7651	0.0469937345825467	0.0469937345825467	-105.0383822	39.7282509	-105.0389317	39.7282542
-10051	7652	7653	0.0459694430265719	0.0459694430265719	-105.0394723	39.7282575	-105.0400098	39.7282525
-10053	1099	7654	0.0453903142377476	0.0453903142377476	-105.0405735	39.7282472	-105.0411042	39.7282537
-10054	7654	7505	0.0471008131744324	0.0471008131744324	-105.0411042	39.7282537	-105.0416549	39.7282604
-10055	7505	7655	0.0439789031058606	0.0439789031058606	-105.0416549	39.7282604	-105.0421691	39.7282666
-10056	7655	3857	0.0492561227403211	0.0492561227403211	-105.0421691	39.7282666	-105.042745	39.7282736
-10057	3857	7656	0.0443253739114241	0.0443253739114241	-105.042745	39.7282736	-105.0432633	39.7282706
-10058	7656	5595	0.054031927582118	0.054031927582118	-105.0432633	39.7282706	-105.0438951	39.728267
-10059	5595	7657	0.0531350620266369	0.0531350620266369	-105.0438951	39.728267	-105.0445162	39.72828
-10060	7657	7548	0.0548032505549166	0.0548032505549166	-105.0445162	39.72828	-105.0451568	39.7282934
-10061	7548	7658	0.0961567115661112	0.0961567115661112	-105.0451568	39.7282934	-105.0462812	39.7282934
-10063	5169	6864	0.176934896372569	0.176934896372569	-104.9413494	39.7162383	-104.9413408	39.7146471
-10064	6864	3072	0.175748977102837	0.175748977102837	-104.9413408	39.7146471	-104.9413569	39.7130666
-10065	3072	7659	0.163990749862373	0.163990749862373	-104.9413569	39.7130666	-104.9413615	39.7115918
-10067	3292	100	0.415519355639239	0.415519355639239	-104.9432867	39.7038272	-104.9421088	39.7002019
-10069	5731	3291	0.149792492427265	0.149792492427265	-104.9434927	39.7051611	-104.9434841	39.703814
-10071	1152	7660	0.199718823841446	0.199718823841446	-104.9246199	39.7638103	-104.9246105	39.7656064
-10074	6897	7663	0.241129252553979	0.241129252553979	-104.9246113	39.7692598	-104.9245971	39.7714283
-13575	2	9131	0.186044551751923	0.186044551751923	-105.0158228	39.7323669	-105.016012	39.7307001
-10075	7663	7664	0.101783451026811	0.101783451026811	-104.9245971	39.7714283	-104.9246108	39.7723436
-10076	7664	7665	0.289306992458348	0.289306992458348	-104.9246108	39.7723436	-104.9246092	39.7749454
-10078	6814	7666	0.176577592408465	0.176577592408465	-104.9246289	39.7162454	-104.9245961	39.7178332
-12084	8539	8540	0.241661980997098	0.241661980997098	-104.9669081	39.7808609	-104.969601	39.7801972
-10079	7666	2342	0.176188966635474	0.176188966635474	-104.9245961	39.7178332	-104.9245907	39.7194177
-10080	2342	7667	0.17458351857957	0.17458351857957	-104.9245907	39.7194177	-104.9246096	39.7209877
-10081	7667	4785	0.245723521469374	0.245723521469374	-104.9246096	39.7209877	-104.924985	39.7231786
-10082	4785	7668	0.239480958817199	0.239480958817199	-104.924985	39.7231786	-104.9249904	39.7253323
-10084	5159	7669	0.0600603744377636	0.0600603744377636	-104.9245238	39.729244	-104.9245319	39.7297841
-10085	7669	5954	0.140826727437097	0.140826727437097	-104.9245319	39.7297841	-104.924551	39.7310505
-10086	5954	2241	0.203480008894553	0.203480008894553	-104.924551	39.7310505	-104.9245804	39.7328803
-10087	2241	4914	0.201437462212311	0.201437462212311	-104.9245804	39.7328803	-104.9246012	39.7346918
-10088	4914	6609	0.201231500080185	0.201231500080185	-104.9246012	39.7346918	-104.9246118	39.7365015
-10089	6609	7670	0.19693744890168	0.19693744890168	-104.9246118	39.7365015	-104.9245872	39.7382725
-11324	5142	5154	0.0222389853288599	0.0222389853288599	-104.930434	39.732387	-104.930434	39.732587
-16191	7205	5817	0.204256012568379	0.204256012568379	-104.9834023	39.693013	-104.983413	39.6911761
-10090	7670	7671	0.205535401167156	0.205535401167156	-104.9245872	39.7382725	-104.9246387	39.7401205
-10092	690	1979	0.162739101905996	0.162739101905996	-104.9246436	39.7419221	-104.924659	39.7433856
-10093	1979	1964	0.0397992509913644	0.0397992509913644	-104.924659	39.7433856	-104.9246161	39.743742
-10094	1964	6501	0.211697424646872	0.211697424646872	-104.9246161	39.743742	-104.9246462	39.7456457
-10095	6501	2478	0.193626535181341	0.193626535181341	-104.9246462	39.7456457	-104.924634	39.747387
-10096	2478	5912	0.20926896109112	0.20926896109112	-104.924634	39.747387	-104.9246315	39.749269
-10097	5912	7672	0.199195490528656	0.199195490528656	-104.9246315	39.749269	-104.9246245	39.7510604
-10098	7672	803	0.201999137953248	0.201999137953248	-104.9246245	39.7510604	-104.9246129	39.752877
-10099	803	7673	0.202608278725201	0.202608278725201	-104.9246129	39.752877	-104.9246133	39.7546991
-10100	7673	7674	0.205563081575912	0.205563081575912	-104.9246133	39.7546991	-104.9245919	39.7565477
-10101	7674	7675	0.203265447696938	0.203265447696938	-104.9245919	39.7565477	-104.924584	39.7583757
-10102	7675	3066	0.200093208772811	0.200093208772811	-104.924584	39.7583757	-104.9245426	39.7601749
-10103	3066	7676	0.18728661128175	0.18728661128175	-104.9245426	39.7601749	-104.9246105	39.7618584
-10105	7677	6370	0.270615231348292	0.270615231348292	-104.924985	39.7256294	-104.9249818	39.7280631
-10106	6370	7678	0.131279919418432	0.131279919418432	-104.9249818	39.7280631	-104.9249925	39.7292437
-10108	6507	7679	0.113730821063582	0.113730821063582	-104.924642	39.7791151	-104.9246153	39.7801377
-10109	7679	6937	0.113695193803527	0.113695193803527	-104.9246153	39.7801377	-104.9245981	39.7811601
-10111	759	6605	0.202732181741343	0.202732181741343	-104.9246452	39.7765808	-104.9246358	39.778404
-10113	5167	7680	0.173408491477124	0.173408491477124	-104.947367	39.7162531	-104.9473666	39.7178126
-10114	7680	2354	0.177734023432563	0.177734023432563	-104.9473666	39.7178126	-104.947365	39.719411
-11350	4801	4798	0.0316348130565604	0.0316348130565604	-105.0127766	39.7620198	-105.0131467	39.7620198
-10116	4156	4743	0.17475749351339	0.17475749351339	-104.9473677	39.7209707	-104.9474028	39.7225421
-10117	4743	6539	0.176484628682033	0.176484628682033	-104.9474028	39.7225421	-104.9473731	39.7241291
-10118	6539	7681	0.164515462701881	0.164515462701881	-104.9473731	39.7241291	-104.9473329	39.7256083
-10119	7681	1204	0.1695248683934	0.1695248683934	-104.9473329	39.7256083	-104.9473134	39.7271328
-10120	1204	7682	0.0218451192643306	0.0218451192643306	-104.9473134	39.7271328	-104.9473072	39.7273292
-10121	7682	3779	0.199697518421981	0.199697518421981	-104.9473072	39.7273292	-104.9472954	39.7291251
-10123	7683	953	0.176289634687175	0.176289634687175	-104.9472804	39.7305107	-104.947288	39.7320961
-10124	953	7684	0.174800312403385	0.174800312403385	-104.947288	39.7320961	-104.9472785	39.7336681
-10125	7684	4892	0.161444055531775	0.161444055531775	-104.9472785	39.7336681	-104.947281	39.73512
-10126	4892	7685	0.184678055138444	0.184678055138444	-104.947281	39.73512	-104.9472977	39.7367808
-10127	7685	5490	0.173583753319791	0.173583753319791	-104.9472977	39.7367808	-104.9472672	39.7383417
-10128	5490	3022	0.0680856463383254	0.0680856463383254	-104.9472672	39.7383417	-104.9472629	39.738954
-18346	1684	7686	0.206269012853702	0.206269012853702	-105.0352055	39.7676655	-105.0352172	39.7695205
-10129	3022	608	0.0626103319165951	0.0626103319165951	-104.9472629	39.738954	-104.9472743	39.739517
-10130	608	7687	0.0714136208255542	0.0714136208255542	-104.9472743	39.739517	-104.9472834	39.7401592
-10132	751	1571	0.141098847639908	0.141098847639908	-104.9475049	39.7764171	-104.9475365	39.7776858
-10133	1571	7688	0.136160171060933	0.136160171060933	-104.9475365	39.7776858	-104.9475279	39.7789103
-10134	7688	355	0.0540631216358879	0.0540631216358879	-104.9475279	39.7789103	-104.9475022	39.7793961
-11381	7	8238	0.233069627316498	0.233069627316498	-104.9443453	39.7800941	-104.9470651	39.7802508
-10136	3031	7689	0.212052347410258	0.212052347410258	-104.9478224	39.759056	-104.9478369	39.760963
-10139	5644	4349	0.138628444284297	0.138628444284297	-104.9476672	39.7557083	-104.9476591	39.756955
-10140	4349	6347	0.140074045976997	0.140074045976997	-104.9476591	39.756955	-104.9476508	39.7582147
-10143	7690	7691	0.036360966917709	0.036360966917709	-104.9475732	39.784427	-104.9475747	39.784754
-13576	9131	2186	0.0494030185182178	0.0494030185182178	-105.016012	39.7307001	-105.0164597	39.7309809
-10144	7691	7692	0.019090691679145	0.019090691679145	-104.9475747	39.784754	-104.9475818	39.7849256
-10145	7692	7629	0.138695116564921	0.138695116564921	-104.9475818	39.7849256	-104.9475898	39.7861729
-10146	7629	7693	0.131928656438508	0.131928656438508	-104.9475898	39.7861729	-104.9475739	39.7873593
-10148	7694	7695	0.805329256404935	0.805329256404935	-104.947581	39.7874249	-104.9475812	39.7946674
-10149	6359	2392	0.110097282540218	0.110097282540218	-104.9475481	39.7728942	-104.9475383	39.7738843
-10150	2392	7696	0.139362539585628	0.139362539585628	-104.9475383	39.7738843	-104.9475469	39.7751376
-10152	7697	698	0.20136290155584	0.20136290155584	-104.9476781	39.7401632	-104.9476788	39.7419741
-10153	698	7698	0.201586501703314	0.201586501703314	-104.9476788	39.7419741	-104.947687	39.743787
-10155	7699	894	0.281945866493957	0.281945866493957	-104.9474853	39.7619327	-104.9474844	39.7644683
-10156	894	4477	0.138715715492195	0.138715715492195	-104.9474844	39.7644683	-104.9474831	39.7657158
-10157	4477	2802	0.13960527461951	0.13960527461951	-104.9474831	39.7657158	-104.9474844	39.7669713
-10158	2802	5268	0.12511734550188	0.12511734550188	-104.9474844	39.7669713	-104.9475125	39.7680963
-10161	4794	2158	0.120027593160305	0.120027593160305	-105.0131497	39.7568505	-105.0144627	39.756468
-11430	319	412	0.178792036530689	0.178792036530689	-105.0307715	39.7835551	-105.0287256	39.7838921
-11459	224	8268	0.046644646559722	0.046644646559722	-104.9412461	39.7790391	-104.9407004	39.7790485
-10165	7703	1119	0.0497953640754775	0.0497953640754775	-105.0398923	39.7567045	-105.0404748	39.756701
-10166	1119	7704	0.0511005498462644	0.0511005498462644	-105.0404748	39.756701	-105.0410725	39.7566932
-10167	7704	7496	0.0499039643779027	0.0499039643779027	-105.0410725	39.7566932	-105.0416562	39.756701
-10168	7496	7705	0.050496479725261	0.050496479725261	-105.0416562	39.756701	-105.0422469	39.7567047
-10169	7705	3842	0.0493242373326315	0.0493242373326315	-105.0422469	39.7567047	-105.0428239	39.7567068
-10170	3842	7706	0.0511368055077475	0.0511368055077475	-105.0428239	39.7567068	-105.0434221	39.7567041
-10171	7706	5553	0.0516924374908146	0.0516924374908146	-105.0434221	39.7567041	-105.0440268	39.7567014
-10173	5552	7707	0.497797594406761	0.497797594406761	-105.0440147	39.7560876	-105.049838	39.756086
-10174	7708	6434	0.169523036166009	0.169523036166009	-105.0158257	39.7560437	-105.0178088	39.7560453
-10175	6434	4659	0.115447272077866	0.115447272077866	-105.0178088	39.7560453	-105.0191593	39.7560504
-10176	4659	7709	0.0610101187906253	0.0610101187906253	-105.0191593	39.7560504	-105.019873	39.7560486
-10177	7709	1282	0.0565434694494923	0.0565434694494923	-105.019873	39.7560486	-105.0205344	39.7560422
-10178	1282	4541	0.131357223988847	0.131357223988847	-105.0205344	39.7560422	-105.022071	39.7560345
-10179	4541	7710	0.132140893738002	0.132140893738002	-105.022071	39.7560345	-105.0236168	39.7560347
-10180	7710	7711	0.0696094980092003	0.0696094980092003	-105.0236168	39.7560347	-105.0244311	39.7560352
-10181	7711	7712	0.0619159407722012	0.0619159407722012	-105.0244311	39.7560352	-105.0251554	39.7560349
-10183	4024	7713	0.0484316979076645	0.0484316979076645	-105.0299253	39.7566682	-105.0304918	39.7566748
-10184	7713	5669	0.0520933568419111	0.0520933568419111	-105.0304918	39.7566748	-105.0311012	39.7566748
-10185	5669	7714	0.0498366654518003	0.0498366654518003	-105.0311012	39.7566748	-105.0316842	39.7566755
-10186	7714	7030	0.0492177257934086	0.0492177257934086	-105.0316842	39.7566755	-105.0322599	39.7566691
-19495	7469	10524	0.0198269485983196	0.0198269485983196	-104.9883525	39.7084582	-104.9883547	39.7082799
-10188	7715	7378	0.0506230529615687	0.0506230529615687	-105.0328425	39.7566691	-105.0334347	39.7566691
-10189	7378	1594	0.0506283698630863	0.0506283698630863	-105.0334347	39.7566691	-105.0340269	39.7566757
-10190	1594	3411	0.0491667634825631	0.0491667634825631	-105.0340269	39.7566757	-105.034602	39.7566823
-10191	3411	7717	0.105657808428602	0.105657808428602	-105.034602	39.7566823	-105.035838	39.756686
-10192	7717	7718	0.0940313147486449	0.0940313147486449	-105.035838	39.756686	-105.036938	39.756686
-10193	5546	7719	0.0535907784173066	0.0535907784173066	-104.9874887	39.6894093	-104.9868624	39.6894114
-10194	7719	7720	0.0530201286004126	0.0530201286004126	-104.9868624	39.6894114	-104.9862428	39.6894062
-10195	7720	573	0.0448716576991108	0.0448716576991108	-104.9862428	39.6894062	-104.9857184	39.6894083
-10196	573	4986	0.0479600812575622	0.0479600812575622	-104.9857184	39.6894083	-104.9851579	39.6894075
-10197	4986	7721	0.0515371092658245	0.0515371092658245	-104.9851579	39.6894075	-104.9845556	39.6894094
-10198	7721	7722	0.0482855644451139	0.0482855644451139	-104.9845556	39.6894094	-104.9839913	39.6894112
-10199	7722	7723	0.0490137565654263	0.0490137565654263	-104.9839913	39.6894112	-104.9834185	39.689408
-10200	7723	7724	0.0538141529532141	0.0538141529532141	-104.9834185	39.689408	-104.9827896	39.6894045
-10201	7724	7725	0.0529684395598169	0.0529684395598169	-104.9827896	39.6894045	-104.9821706	39.6894094
-10202	7725	7726	0.0518724854854175	0.0518724854854175	-104.9821706	39.6894094	-104.9815644	39.6894136
-10203	7726	7727	0.04727777135042	0.04727777135042	-104.9815644	39.6894136	-104.9810119	39.6894094
-10204	7727	3618	0.0472245509762166	0.0472245509762166	-104.9810119	39.6894094	-104.98046	39.6894076
-10205	3618	7728	0.0514814686878799	0.0514814686878799	-104.98046	39.6894076	-104.9798585	39.6893971
-10206	7728	7729	0.0518724978816832	0.0518724978816832	-104.9798585	39.6893971	-104.9792523	39.6893929
-10207	7729	7730	0.0486618474944759	0.0486618474944759	-104.9792523	39.6893929	-104.9786837	39.6894012
-10208	7730	5100	0.0498159875736575	0.0498159875736575	-104.9786837	39.6894012	-104.9781016	39.6893933
-10209	5100	7731	0.0971611599806991	0.0971611599806991	-104.9781016	39.6893933	-104.9769661	39.6893959
-10210	7731	7732	0.0537738540349519	0.0537738540349519	-104.9769661	39.6893959	-104.9763378	39.6893855
-10211	7732	7733	0.048775543246574	0.048775543246574	-104.9763378	39.6893855	-104.9757679	39.6893761
-10213	7734	1529	0.0486197396153865	0.0486197396153865	-104.9751677	39.6893788	-104.9745995	39.6893814
-10214	1529	6533	0.0236551874497837	0.0236551874497837	-104.9745995	39.6893814	-104.9743231	39.6893856
-10216	1748	5658	0.0690555262759062	0.0690555262759062	-104.9722475	39.6901911	-104.9716542	39.6897701
-10217	5658	6638	0.0663249571304488	0.0663249571304488	-104.9716542	39.6897701	-104.9710843	39.6893658
-10220	5429	5327	0.0495383987324496	0.0495383987324496	-104.9698913	39.6893394	-104.9693125	39.6893294
-10221	5327	7400	0.0488963197685218	0.0488963197685218	-104.9693125	39.6893294	-104.9687412	39.6893196
-10223	3485	7735	0.019269671719438	0.019269671719438	-104.9637153	39.6893166	-104.9634901	39.6893161
-10224	7735	6080	0.0527262897841316	0.0527262897841316	-104.9634901	39.6893161	-104.9628739	39.6893149
-10225	6080	7736	0.0518491308674393	0.0518491308674393	-104.9628739	39.6893149	-104.9622681	39.6893045
-10226	7736	3699	0.0473298672855462	0.0473298672855462	-104.9622681	39.6893045	-104.9617151	39.6892951
-10227	3699	4573	0.0991704429707509	0.0991704429707509	-104.9617151	39.6892951	-104.9605564	39.6893149
-10228	4573	7737	0.1025259519958	0.1025259519958	-104.9605564	39.6893149	-104.9593582	39.6893161
-10229	7737	7738	0.0567267064163172	0.0567267064163172	-104.9593582	39.6893161	-104.9586954	39.6893271
-10230	7738	6520	0.0485788201580239	0.0485788201580239	-104.9586954	39.6893271	-104.9581278	39.6893365
-11562	4026	8321	0.0489622731658017	0.0489622731658017	-105.029918	39.7580208	-105.0304907	39.7580283
-10232	7739	6163	0.0483379374847878	0.0483379374847878	-104.9575425	39.6893331	-104.9569776	39.6893298
-10233	6163	7740	0.0487487301271992	0.0487487301271992	-104.9569776	39.6893298	-104.9564079	39.6893332
-10234	7740	2742	0.0481924761788732	0.0481924761788732	-104.9564079	39.6893332	-104.9558447	39.6893365
-10236	7741	5233	0.0485076742472366	0.0485076742472366	-104.9552614	39.6893365	-104.9546945	39.6893365
-10237	5233	7742	0.0501847785254714	0.0501847785254714	-104.9546945	39.6893365	-104.954108	39.6893365
-10238	7742	3175	0.0518961094220257	0.0518961094220257	-104.954108	39.6893365	-104.9535015	39.6893365
-10239	3175	7743	0.0477088260821206	0.0477088260821206	-104.9535015	39.6893365	-104.952944	39.68933
-10240	7743	5000	0.0480456206813873	0.0480456206813873	-104.952944	39.68933	-104.9523825	39.6893301
-10241	5000	7744	0.0507496702288809	0.0507496702288809	-104.9523825	39.6893301	-104.9517894	39.689329
-10242	7744	732	0.0500052182058767	0.0500052182058767	-104.9517894	39.689329	-104.951205	39.689328
-10243	732	7062	0.0993780460470829	0.0993780460470829	-104.951205	39.689328	-104.9500436	39.6893239
-10244	7062	568	0.179642317491375	0.179642317491375	-104.9500436	39.6893239	-104.9479442	39.6893133
-10245	568	6375	0.221062471524952	0.221062471524952	-104.9479442	39.6893133	-104.9453607	39.6893067
-10246	6375	7745	0.0502032533440095	0.0502032533440095	-104.9453607	39.6893067	-104.944774	39.68931
-10247	7745	4829	0.0496813089217868	0.0496813089217868	-104.944774	39.68931	-104.9441934	39.6893133
-10248	4829	7746	0.10134770204508	0.10134770204508	-104.9441934	39.6893133	-104.943009	39.6893199
-10249	7746	7747	0.19682163321823	0.19682163321823	-104.943009	39.6893199	-104.9407088	39.6893132
-10250	7747	7748	0.0148866727143693	0.0148866727143693	-104.9407088	39.6893132	-104.9405349	39.6893172
-10251	7748	1062	0.0938295581784946	0.0938295581784946	-104.9405349	39.6893172	-104.9394384	39.6893266
-10252	1062	1700	0.0910684866897701	0.0910684866897701	-104.9394384	39.6893266	-104.9383741	39.6893266
-10254	7749	7750	0.088136254722807	0.088136254722807	-104.9383055	39.6893261	-104.9372755	39.6893199
-10255	7750	7751	0.0102851011578735	0.0102851011578735	-104.9372755	39.6893199	-104.9371553	39.6893199
-10256	7751	6675	0.0807868256992296	0.0807868256992296	-104.9371553	39.6893199	-104.9362112	39.6893266
-10258	5566	7541	0.078830239472867	0.078830239472867	-105.0440247	39.7666482	-105.044947	39.7666453
-10259	7541	7752	0.71007082854504	0.71007082854504	-105.044947	39.7666453	-105.0532546	39.7666043
-10260	7753	7754	0.0555561071332203	0.0555561071332203	-105.0252922	39.7665061	-105.0259422	39.7665053
-10261	7754	6755	0.141035585683202	0.141035585683202	-105.0259422	39.7665053	-105.0275923	39.7665033
-10262	6755	3980	0.200595577576722	0.200595577576722	-105.0275923	39.7665033	-105.0299392	39.7664918
-10263	3980	7039	0.198840384599884	0.198840384599884	-105.0299392	39.7664918	-105.0322656	39.7664861
-10264	7039	3426	0.202741409948142	0.202741409948142	-105.0322656	39.7664861	-105.0346376	39.7664739
-10266	6623	1789	0.083407855110509	0.083407855110509	-104.9815624	39.6955402	-104.9815787	39.6947902
-10267	1789	7208	0.197984235440067	0.197984235440067	-104.9815787	39.6947902	-104.9815692	39.6930097
-10268	7208	5821	0.204810690510051	0.204810690510051	-104.9815692	39.6930097	-104.9815757	39.6911678
-10269	5821	7726	0.195060536702397	0.195060536702397	-104.9815757	39.6911678	-104.9815644	39.6894136
-10270	7726	7755	1.41312394826698	1.41312394826698	-104.9815644	39.6894136	-104.9816388	39.6767052
-10271	3161	7756	0.200885724863022	0.200885724863022	-104.9814586	39.7164952	-104.9814659	39.7146886
-10272	7756	3082	0.196495825635974	0.196495825635974	-104.9814659	39.7146886	-104.9815443	39.7129225
-10273	3082	3194	0.201063950220373	0.201063950220373	-104.9815443	39.7129225	-104.9815359	39.7111143
-10275	6110	1901	0.201670811128578	0.201670811128578	-104.9815389	39.7093013	-104.9815067	39.7074878
-10277	441	5814	0.0584483555155252	0.0584483555155252	-105.01516	39.7314761	-105.0151443	39.7320016
-10278	5814	5376	0.210901593054405	0.210901593054405	-105.0151443	39.7320016	-105.0150947	39.7338979
-10282	2638	5211	0.135802363910714	0.135802363910714	-105.015182	39.7220707	-105.015182	39.723292
-10284	5376	7115	0.169184130655589	0.169184130655589	-105.0150947	39.7338979	-105.0141573	39.7352378
-10286	6686	7758	0.0966310054355491	0.0966310054355491	-104.9498944	39.7710718	-104.9487638	39.7710638
-10287	7758	7759	0.103268100856542	0.103268100856542	-104.9487638	39.7710638	-104.9475555	39.7710608
-10289	7760	7761	0.0931830345887697	0.0931830345887697	-104.9463967	39.7710806	-104.9453067	39.7710608
-10290	7761	870	0.209204581827195	0.209204581827195	-104.9453067	39.7710608	-104.9428589	39.7710708
-10292	6165	6785	0.0415827902651337	0.0415827902651337	-104.9688892	39.7713666	-104.968405	39.7713299
-10293	6785	7357	0.102001818508737	0.102001818508737	-104.968405	39.7713299	-104.967212	39.7713035
-10294	7357	5405	0.112234858942921	0.112234858942921	-104.967212	39.7713035	-104.9658988	39.7713101
-10295	5405	3138	0.103097089620426	0.103097089620426	-104.9658988	39.7713101	-104.9646947	39.7713662
-10296	3138	7762	0.00572680722694595	0.00572680722694595	-104.9646947	39.7713662	-104.964756	39.771387
-10297	6991	6399	0.078057620939779	0.078057620939779	-104.9317465	39.7717305	-104.9308332	39.7717367
-10299	3614	2112	0.200468732564122	0.200468732564122	-104.9293312	39.771412	-104.9269856	39.7714213
-10300	2112	7766	0.09707938317328	0.09707938317328	-104.9269856	39.7714213	-104.9258497	39.7714216
-10301	7766	7663	0.107055697326901	0.107055697326901	-104.9258497	39.7714216	-104.9245971	39.7714283
-10303	869	7100	0.0985676933380822	0.0985676933380822	-104.9428549	39.7705626	-104.9417016	39.7705626
-11668	7785	8358	0.00862504224759753	0.00862504224759753	-105.0393001	39.7639573	-105.039401	39.7639563
-10305	2502	7767	0.133821378293258	0.133821378293258	-105.0095013	39.7831276	-105.0110634	39.7832133
-10306	7767	4793	0.137187308277769	0.137187308277769	-105.0110634	39.7832133	-105.0126685	39.7832397
-10307	4793	2155	0.138619015999951	0.138619015999951	-105.0126685	39.7832397	-105.0142907	39.7832331
-10308	2155	6302	0.131440648996103	0.131440648996103	-105.0142907	39.7832331	-105.015828	39.7832739
-10309	6302	6427	0.0971164197766542	0.0971164197766542	-105.015828	39.7832739	-105.01696	39.7833518
-10310	6427	5345	0.100480546860285	0.100480546860285	-105.01696	39.7833518	-105.0181359	39.7833518
-10311	5345	4641	0.0997483726431183	0.0997483726431183	-105.0181359	39.7833518	-105.0193032	39.7833584
-10312	4641	1266	0.0975658909823655	0.0975658909823655	-105.0193032	39.7833584	-105.0204447	39.7833782
-10313	1266	4540	0.103828265337942	0.103828265337942	-105.0204447	39.7833782	-105.0216205	39.7836137
-10314	4540	6286	0.102716645609349	0.102716645609349	-105.0216205	39.7836137	-105.0227972	39.7838025
-10315	6286	2720	0.0979601908800836	0.0979601908800836	-105.0227972	39.7838025	-105.0239436	39.7838066
-10317	2598	5187	0.177611938217315	0.177611938217315	-105.0394444	39.7229454	-105.0394481	39.7245427
-10318	5187	5655	0.104799417596727	0.104799417596727	-105.0394481	39.7245427	-105.0394723	39.725485
-10319	5655	7768	0.00220165954800827	0.00220165954800827	-105.0394723	39.725485	-105.0394723	39.7255048
-10321	7769	6068	0.194290902090962	0.194290902090962	-105.0392429	39.783874	-105.0392423	39.7856213
-10322	6068	2548	0.201654782967819	0.201654782967819	-105.0392423	39.7856213	-105.0392299	39.7874348
-10323	2548	7770	0.410001897212591	0.410001897212591	-105.0392299	39.7874348	-105.039251	39.791122
-10324	6390	7771	0.13140278725488	0.13140278725488	-105.039295	39.7475739	-105.0393066	39.7487556
-10325	7771	7772	0.135404012160521	0.135404012160521	-105.0393066	39.7487556	-105.0392981	39.7499733
-10326	7772	7773	0.135386059531021	0.135386059531021	-105.0392981	39.7499733	-105.0393133	39.7511908
-10327	7773	5541	0.102606539353157	0.102606539353157	-105.0393133	39.7511908	-105.0393273	39.7521135
-10328	5541	2410	0.100544408114452	0.100544408114452	-105.0393273	39.7521135	-105.0393531	39.7530175
-10329	2410	4294	0.100431298726032	0.100431298726032	-105.0393531	39.7530175	-105.039314	39.7539202
-10330	4294	7776	0.0501127826077893	0.0501127826077893	-105.039314	39.7539202	-105.0393033	39.7543708
-10331	7776	7777	0.0533516278326779	0.0533516278326779	-105.0393033	39.7543708	-105.0393054	39.7548506
-10332	7777	7778	0.0636719509277386	0.0636719509277386	-105.0393054	39.7548506	-105.0393109	39.7554232
-10333	7778	7702	0.142867174122929	0.142867174122929	-105.0393109	39.7554232	-105.0393233	39.756708
-10334	7702	2984	0.198167346423749	0.198167346423749	-105.0393233	39.756708	-105.039304	39.7584901
-10336	7779	1879	0.0577899859499687	0.0577899859499687	-105.0393085	39.7589141	-105.0393141	39.7594338
-10337	1879	7780	0.0975763172911078	0.0975763172911078	-105.0393141	39.7594338	-105.0393055	39.7603113
-10338	7780	7781	0.049615978114649	0.049615978114649	-105.0393055	39.7603113	-105.0393022	39.7607575
-10339	7781	7782	0.151461070035101	0.151461070035101	-105.0393022	39.7607575	-105.0392921	39.7621196
-10340	7782	7783	0.00828406172358757	0.00828406172358757	-105.0392921	39.7621196	-105.0392924	39.7621941
-10341	7783	7784	0.0408643643931965	0.0408643643931965	-105.0392924	39.7621941	-105.039294	39.7625616
-10342	7784	7785	0.155195634964959	0.155195634964959	-105.039294	39.7625616	-105.0393001	39.7639573
-10343	7785	6879	0.203175602967298	0.203175602967298	-105.0393001	39.7639573	-105.0393037	39.7657845
-10344	6879	1690	0.204417069906845	0.204417069906845	-105.0393037	39.7657845	-105.0393241	39.7676228
-10345	1690	7786	0.203521868851454	0.203521868851454	-105.0393241	39.7676228	-105.0393141	39.7694531
-10346	7786	2437	0.163479024443522	0.163479024443522	-105.0393141	39.7694531	-105.0393174	39.7709233
-10347	2437	2436	0.0381118302971424	0.0381118302971424	-105.0393174	39.7709233	-105.0393043	39.7712659
-10348	2436	5735	0.132411428624817	0.132411428624817	-105.0393043	39.7712659	-105.0393	39.7724567
-10349	5735	7787	0.0686968769014223	0.0686968769014223	-105.0393	39.7724567	-105.0393035	39.7730745
-10350	7787	5524	0.0876693797427073	0.0876693797427073	-105.0393035	39.7730745	-105.0392946	39.7738629
-10352	6462	6461	0.046218455398192	0.046218455398192	-105.0392949	39.7752627	-105.0392863	39.7756783
-10353	6461	7788	0.114101346725552	0.114101346725552	-105.0392863	39.7756783	-105.0392748	39.7767044
-10354	7788	7789	0.186352786707342	0.186352786707342	-105.0392748	39.7767044	-105.0392328	39.77838
-10355	7789	7790	0.201819126377908	0.201819126377908	-105.0392328	39.77838	-105.0392371	39.780195
-10356	7790	1426	0.209991688515331	0.209991688515331	-105.0392371	39.780195	-105.0392391	39.7820835
-10357	1426	7188	0.131433687737374	0.131433687737374	-105.0392391	39.7820835	-105.0392459	39.7832655
-10361	7791	7792	0.0221530824058495	0.0221530824058495	-105.0397234	39.7195311	-105.0397277	39.7197303
-10362	7792	1857	0.178051972210932	0.178051972210932	-105.0397277	39.7197303	-105.0397097	39.7213315
-10363	1857	2599	0.180197954723075	0.180197954723075	-105.0397097	39.7213315	-105.0397277	39.722952
-10365	7793	7794	0.133052671328159	0.133052671328159	-105.0393289	39.7329999	-105.0393119	39.7341964
-10366	7794	7795	0.00451480555637825	0.00451480555637825	-105.0393119	39.7341964	-105.0393113	39.734237
-10368	7796	316	0.0810108111113459	0.0810108111113459	-105.014664	39.7254193	-105.0137199	39.7254787
-10369	316	7797	0.0132929754360195	0.0132929754360195	-105.0137199	39.7254787	-105.013565	39.7254886
-10371	7798	1715	0.146657336243231	0.146657336243231	-105.0425	39.6923732	-105.0433411	39.691224
-10373	4991	5886	0.0409007612541298	0.0409007612541298	-105.0155876	39.7516074	-105.015177	39.7517962
-10374	5886	7799	0.0133509392362763	0.0133509392362763	-105.015177	39.7517962	-105.0150392	39.7518527
-10375	7799	6955	0.0302227835880131	0.0302227835880131	-105.0150392	39.7518527	-105.0147293	39.7519835
-10376	6955	120	0.355050454211798	0.355050454211798	-105.0147293	39.7519835	-105.011137	39.753586
-10378	6998	7800	0.287485052767515	0.287485052767515	-104.931634	39.787286	-104.9282697	39.7872538
-10379	7800	2107	0.0799880901292185	0.0799880901292185	-104.9282697	39.7872538	-104.9273336	39.78726
-10381	7801	7330	0.0459693673262965	0.0459693673262965	-104.954635	39.787386	-104.954097	39.7873857
-10382	7330	2069	0.0513405380116942	0.0513405380116942	-104.954097	39.7873857	-104.9534962	39.7873923
-10383	2069	2090	0.0410799126461524	0.0410799126461524	-104.9534962	39.7873923	-104.9530155	39.7873989
-10384	2090	2665	0.0609107459124439	0.0609107459124439	-104.9530155	39.7873989	-104.9523031	39.7873791
-10385	2665	2657	0.0344762888596363	0.0344762888596363	-104.9523031	39.7873791	-104.9518997	39.7873725
-10386	2657	4120	0.0653569613260274	0.0653569613260274	-104.9518997	39.7873725	-104.951135	39.787386
-10387	4120	4119	0.025633469399215	0.025633469399215	-104.951135	39.787386	-104.950835	39.787386
-10388	4119	6679	0.0800230712461371	0.0800230712461371	-104.950835	39.787386	-104.9498986	39.7873733
-10389	6679	7803	0.0968450624184265	0.0968450624184265	-104.9498986	39.7873733	-104.9487657	39.7873469
-10390	7803	7693	0.101842612257672	0.101842612257672	-104.9487657	39.7873469	-104.9475739	39.7873593
-10392	4983	7804	0.15108225604362	0.15108225604362	-104.9800351	39.7873785	-104.978267	39.7873917
-10393	7804	7805	0.125613899900368	0.125613899900368	-104.978267	39.7873917	-104.9768041	39.7875035
-10394	7805	7806	0.243703765368195	0.243703765368195	-104.9768041	39.7875035	-104.9740703	39.7881284
-10395	6511	833	0.205796808568101	0.205796808568101	-104.940586	39.787473	-104.942994	39.787434
-10396	833	1752	0.10962713348726	0.10962713348726	-104.942994	39.787434	-104.944277	39.787439
-10399	7807	6997	0.603696470077293	0.603696470077293	-104.9388993	39.787086	-104.931834	39.787086
-10401	6510	7620	0.115341473380206	0.115341473380206	-104.9405839	39.7877872	-104.939234	39.787786
-10403	1004	4224	0.0542745916357659	0.0542745916357659	-104.9875698	39.7873956	-104.9869346	39.7873956
-10405	7568	7808	0.0520701135747565	0.0520701135747565	-104.9863939	39.7873956	-104.9857845	39.7873956
-10406	7808	7085	0.0476697019408349	0.0476697019408349	-104.9857845	39.7873956	-104.9852266	39.7873956
-10407	7085	7087	0.0498741800030606	0.0498741800030606	-104.9852266	39.7873956	-104.9846429	39.7873956
-10410	7411	5866	0.177233832171644	0.177233832171644	-105.0372987	39.7165613	-105.0372953	39.7149674
-10411	5866	1317	0.177356465730534	0.177356465730534	-105.0372953	39.7149674	-105.0372901	39.7133724
-10412	1317	1373	0.176201016352257	0.176201016352257	-105.0372901	39.7133724	-105.0372815	39.7117878
-20226	10713	10016	0.0211937599266337	0.0211937599266337	-104.9413101	39.6963884	-104.9413099	39.696579
-10413	1373	7809	0.0646527574308656	0.0646527574308656	-105.0372815	39.7117878	-105.0373072	39.7112067
-10414	7809	6841	0.0827327683846137	0.0827327683846137	-105.0373072	39.7112067	-105.037298	39.7104627
-18362	7802	7116	0.00767249278335644	0.00767249278335644	-105.0259573	39.7679612	-105.0259576	39.7678922
-18363	7116	7802	0.00767249278335644	0.00767249278335644	-105.0259576	39.7678922	-105.0259573	39.7679612
-10416	7810	7811	0.101331501186014	0.101331501186014	-105.0367751	39.7039631	-105.0367923	39.7030519
-10417	7811	7812	0.10060881119881	0.10060881119881	-105.0367923	39.7030519	-105.0367751	39.7021472
-10418	7812	7813	0.20266387330204	0.20266387330204	-105.0367751	39.7021472	-105.0367751	39.7003246
-10419	7813	6245	0.198305641519059	0.198305641519059	-105.0367751	39.7003246	-105.0367322	39.6985415
-10420	6245	7814	0.197228200241648	0.197228200241648	-105.0367322	39.6985415	-105.0366887	39.6967681
-10422	1492	181	0.220815542326235	0.220815542326235	-105.036538	39.695087	-105.0367236	39.6931063
-10423	181	1709	0.205644626708499	0.205644626708499	-105.0367236	39.6931063	-105.0366978	39.691257
-10424	1709	7815	0.201521495468828	0.201521495468828	-105.0366978	39.691257	-105.0366851	39.6894447
-10425	7815	1576	0.244181862134779	0.244181862134779	-105.0366851	39.6894447	-105.0378698	39.6874469
-11867	8450	529	0.00567706315765741	0.00567706315765741	-105.0101803	39.7542535	-105.0102365	39.7542807
-10426	1576	7816	0.227813240625087	0.227813240625087	-105.0378698	39.6874469	-105.0381015	39.6854059
-10428	6320	7817	0.183577601350202	0.183577601350202	-105.0371184	39.7056206	-105.0371012	39.7039697
-10430	7213	7818	0.101757750903819	0.101757750903819	-104.9260704	39.7047422	-104.9257985	39.7038513
-10433	962	6868	0.198984557339899	0.198984557339899	-104.983818	39.7165111	-104.9838262	39.7147216
-10434	6868	5277	0.0940706344008526	0.0940706344008526	-104.9838262	39.7147216	-104.9838429	39.7138757
-10435	5277	3079	0.10232261403939	0.10232261403939	-104.9838429	39.7138757	-104.9838483	39.7129555
-10437	7204	5816	0.204032094058756	0.204032094058756	-104.9839803	39.693012	-104.9839857	39.6911771
-10438	5816	7722	0.196359705603447	0.196359705603447	-104.9839857	39.6911771	-104.9839913	39.6894112
-10439	7722	7819	1.20817529596719	1.20817529596719	-104.9839913	39.6894112	-104.9840729	39.678546
-10440	4246	1785	0.204162289925295	0.204162289925295	-104.9839286	39.6966228	-104.9839616	39.6947869
-10441	1785	7820	0.0718319226119568	0.0718319226119568	-104.9839616	39.6947869	-104.9839616	39.6941409
-10442	6026	3876	0.103447229282558	0.103447229282558	-104.9453067	39.775164	-104.9440965	39.7751442
-10443	3876	7821	0.100516631601798	0.100516631601798	-104.9440965	39.7751442	-104.9429206	39.775164
-10444	7322	2073	0.0916901418746821	0.0916901418746821	-104.9541485	39.7751435	-104.9530756	39.7751435
-10445	2073	2670	0.0954589635577965	0.0954589635577965	-104.9530756	39.7751435	-104.9519586	39.7751442
-10446	2670	4140	0.0958506641044589	0.0958506641044589	-104.9519586	39.7751442	-104.9508372	39.7751286
-10447	4140	6687	0.0883798780131798	0.0883798780131798	-104.9508372	39.7751286	-104.9498032	39.7751144
-10448	6687	7822	0.0995993099363261	0.0995993099363261	-104.9498032	39.7751144	-104.9486378	39.7751225
-10449	7822	7696	0.0932435604543702	0.0932435604543702	-104.9486378	39.7751225	-104.9475469	39.7751376
-10450	7696	3474	0.0968263022183935	0.0968263022183935	-104.9475469	39.7751376	-104.9464139	39.7751376
-10451	3474	7823	0.0468407500328621	0.0468407500328621	-104.9464139	39.7751376	-104.9458658	39.7751369
-10452	5171	3743	0.0993415474645253	0.0993415474645253	-104.9874858	39.7165623	-104.9874858	39.7156689
-10454	5856	4668	0.0981986239232037	0.0981986239232037	-104.9875046	39.7147611	-104.9875126	39.713878
-10455	4668	1294	0.100268721006653	0.100268721006653	-104.9875126	39.713878	-104.9875234	39.7129763
-10456	1294	1367	0.0977359423737142	0.0977359423737142	-104.9875234	39.7129763	-104.9875368	39.7120974
-10457	1367	3189	0.105552448113217	0.105552448113217	-104.9875368	39.7120974	-104.9875502	39.7111482
-10458	3189	6851	0.101177318178783	0.101177318178783	-104.9875502	39.7111482	-104.9875556	39.7102383
-10459	6851	4702	0.101416251034793	0.101416251034793	-104.9875556	39.7102383	-104.987569	39.7093263
-10460	4702	7468	0.0970718218675625	0.0970718218675625	-104.987569	39.7093263	-104.9875851	39.7084534
-10461	7468	1895	0.103477998735846	0.103477998735846	-104.9875851	39.7084534	-104.9875851	39.7075228
-10462	1895	7824	0.0967350574153813	0.0967350574153813	-104.9875851	39.7075228	-104.9875719	39.7066529
-10463	7824	7233	0.101338813079015	0.101338813079015	-104.9875719	39.7066529	-104.9875581	39.7057416
-10464	7233	3243	0.207470752756408	0.207470752756408	-104.9875581	39.7057416	-104.9874858	39.7038766
-10465	3243	7282	0.19399363779074	0.19399363779074	-104.9874858	39.7038766	-104.9875556	39.7021328
-10466	7282	7825	0.149563284680896	0.149563284680896	-104.9875556	39.7021328	-104.9875714	39.7007878
-10468	2141	7826	0.157978675104427	0.157978675104427	-105.0086114	39.7398829	-105.0095334	39.7411141
-10469	7826	7827	0.306989543465552	0.306989543465552	-105.0095334	39.7411141	-105.0113366	39.7435015
-10470	7827	7828	0.364212228682904	0.364212228682904	-105.0113366	39.7435015	-105.0134825	39.746331
-16042	9797	9804	0.0714393127860209	0.0714393127860209	-105.0122561	39.6891198	-105.0117013	39.6886397
-10475	7658	7549	0.158167365995463	0.158167365995463	-105.0462812	39.7282934	-105.0451467	39.7294168
-10477	5846	7750	0.200199460183562	0.200199460183562	-104.9372905	39.6911203	-104.9372755	39.6893199
-10479	466	7198	0.196816395654282	0.196816395654282	-104.9373661	39.6947234	-104.9373575	39.6929534
-10481	7268	7830	0.172430116159174	0.172430116159174	-104.9373314	39.7162377	-104.937334	39.714687
-10483	7217	7831	0.199372618146519	0.199372618146519	-104.9963567	39.7165938	-104.9963592	39.7148008
-10485	6256	7832	0.202992310919435	0.202992310919435	-104.9956644	39.6984948	-104.9956462	39.6966693
-10487	7833	4331	0.102741254079324	0.102741254079324	-104.9781265	39.7520022	-104.9769247	39.7519986
-10488	4331	7834	0.0526098265130649	0.0526098265130649	-104.9769247	39.7519986	-104.9763093	39.7519986
-10489	7834	5037	0.0501135526518646	0.0501135526518646	-104.9763093	39.7519986	-104.9757231	39.7519986
-10490	5037	7835	0.0494507564303858	0.0494507564303858	-104.9757231	39.7519986	-104.975145	39.7519832
-10491	7835	7836	0.0506565934234891	0.0506565934234891	-104.975145	39.7519832	-104.9745528	39.7519675
-10492	7836	7837	0.0500464479643974	0.0500464479643974	-104.9745528	39.7519675	-104.9739674	39.7519707
-10493	7837	2894	0.0524402316173641	0.0524402316173641	-104.9739674	39.7519707	-104.973354	39.7519741
-10494	2894	7838	0.107557027285785	0.107557027285785	-104.973354	39.7519741	-104.9720959	39.7519819
-10495	7838	7839	0.103734242634521	0.103734242634521	-104.9720959	39.7519819	-104.9708825	39.7519878
-10496	7839	4733	0.104796091296626	0.104796091296626	-104.9708825	39.7519878	-104.9696568	39.7519733
-10498	6800	7352	0.103066456507469	0.103066456507469	-104.968366	39.7519878	-104.9671604	39.7519921
-10499	7352	5398	0.104939276238433	0.104939276238433	-104.9671604	39.7519921	-104.965933	39.7519789
-10500	5398	7840	0.054043807018549	0.054043807018549	-104.965933	39.7519789	-104.9653014	39.7519582
-10501	7840	7841	0.0495084984704332	0.0495084984704332	-104.9653014	39.7519582	-104.9647228	39.7519393
-10502	7841	3900	0.109926182600774	0.109926182600774	-104.9647228	39.7519393	-104.9634376	39.7519078
-10503	3900	1036	0.101980966587827	0.101980966587827	-104.9634376	39.7519078	-104.9622462	39.751954
-10505	7842	6275	0.0499604206116259	0.0499604206116259	-104.9616094	39.7519514	-104.961025	39.751949
-10506	6275	7843	0.109041406945306	0.109041406945306	-104.961025	39.751949	-104.9597495	39.7519514
-10508	7844	7845	0.0640842858387461	0.0640842858387461	-105.0110496	39.7596475	-105.0117993	39.7596454
-10509	7845	1756	0.058813700126345	0.058813700126345	-105.0117993	39.7596454	-105.0124873	39.7596393
-10510	1756	4796	0.0566305502204531	0.0566305502204531	-105.0124873	39.7596393	-105.0131498	39.7596372
-10511	4796	2162	0.113835660361901	0.113835660361901	-105.0131498	39.7596372	-105.0144815	39.7596444
-10512	2162	7846	0.116364205137553	0.116364205137553	-105.0144815	39.7596444	-105.0158428	39.7596397
-10514	6135	4027	0.149896567221218	0.149896567221218	-105.0281572	39.7603038	-105.0299108	39.7603097
-10515	4027	7032	0.200991141471739	0.200991141471739	-105.0299108	39.7603097	-105.032262	39.7603311
-10516	7032	3412	0.200534935685617	0.200534935685617	-105.032262	39.7603311	-105.034608	39.7603223
-10517	3412	7633	0.0497828282990497	0.0497828282990497	-105.034608	39.7603223	-105.0351904	39.7603234
-10518	7633	5698	0.0497412906945155	0.0497412906945155	-105.0351904	39.7603234	-105.0357723	39.7603267
-10519	5698	7847	0.050919685731899	0.050919685731899	-105.0357723	39.7603267	-105.036368	39.7603278
-10521	7425	7166	0.104570214872527	0.104570214872527	-105.0369407	39.7603225	-105.038164	39.7603311
-10522	7166	7848	0.0473158420873474	0.0473158420873474	-105.038164	39.7603311	-105.0387174	39.7603215
-10523	7848	7780	0.0502827033263459	0.0502827033263459	-105.0387174	39.7603215	-105.0393055	39.7603113
-10524	7780	1123	0.100516868229367	0.100516868229367	-105.0393055	39.7603113	-105.0404814	39.7603047
-10525	1123	7849	0.0509916038841254	0.0509916038841254	-105.0404814	39.7603047	-105.0410779	39.7603102
-10526	7849	7497	0.0507179555279218	0.0507179555279218	-105.0410779	39.7603102	-105.0416712	39.7603156
-10527	7497	7850	0.0492496392928742	0.0492496392928742	-105.0416712	39.7603156	-105.0422473	39.760309
-10528	7850	3843	0.0492532755342339	0.0492532755342339	-105.0422473	39.760309	-105.0428235	39.7603069
-10529	3843	7851	0.0511792577413519	0.0511792577413519	-105.0428235	39.7603069	-105.0434222	39.7603017
-10530	7851	5556	0.0504327266312592	0.0504327266312592	-105.0434222	39.7603017	-105.0440122	39.7603035
-10561	7757	6414	0.14886592682355	0.14886592682355	-105.0151648	39.7202486	-105.0169053	39.7202585
-10531	5556	7852	0.789293029376444	0.789293029376444	-105.0440122	39.7603035	-105.053246	39.7602903
-10532	1618	7136	0.164980324326418	0.164980324326418	-104.9670562	39.7773409	-104.9684185	39.7783922
-10534	2027	5535	0.0854267701089729	0.0854267701089729	-104.9927506	39.7735106	-104.9923558	39.7742164
-10535	5535	6450	0.110522246345964	0.110522246345964	-104.9923558	39.7742164	-104.9923333	39.7752102
-10536	6450	6468	0.0325389081934527	0.0325389081934527	-104.9923333	39.7752102	-104.9923387	39.7755028
-10537	6468	7853	0.124455504811187	0.124455504811187	-104.9923387	39.7755028	-104.9923076	39.7766218
-10538	7853	7854	0.192779349126015	0.192779349126015	-104.9923076	39.7766218	-104.9923137	39.7783555
-10540	3713	7855	0.105701897268654	0.105701897268654	-104.9928366	39.7183943	-104.9928366	39.7193449
-10543	2614	7857	0.0507605301255621	0.0507605301255621	-104.9928302	39.7225456	-104.992831	39.7230021
-10544	7857	5197	0.124727455067454	0.124727455067454	-104.992831	39.7230021	-104.9928329	39.7241238
-10545	5197	6238	0.172240941584424	0.172240941584424	-104.9928329	39.7241238	-104.9928328	39.7256728
-10546	6238	7637	0.187669509666877	0.187669509666877	-104.9928328	39.7256728	-104.9928501	39.7273605
-10547	7637	7858	0.175500793784226	0.175500793784226	-104.9928501	39.7273605	-104.9928407	39.7289388
-10548	7858	7859	0.174943439798306	0.174943439798306	-104.9928407	39.7289388	-104.992836	39.7305121
-10551	5368	7126	0.152826634682226	0.152826634682226	-104.9929409	39.7338739	-104.9929372	39.7352483
-10552	7126	614	0.179980225267387	0.179980225267387	-104.9929372	39.7352483	-104.9929396	39.7368669
-10553	614	7860	0.174053494498076	0.174053494498076	-104.9929396	39.7368669	-104.9929377	39.7384322
-10554	7860	7861	0.175067683150656	0.175067683150656	-104.9929377	39.7384322	-104.992927	39.7400066
-10556	3960	5600	0.12071802041193	0.12071802041193	-105.0001852	39.7194126	-105.0015966	39.7194189
-10558	6724	4799	0.0913013732116182	0.0913013732116182	-105.0120852	39.72025	-105.0131527	39.72025
-10559	4799	2180	0.0880940650188129	0.0880940650188129	-105.0131527	39.72025	-105.0141827	39.72025
-10560	2180	7757	0.0839974084607818	0.0839974084607818	-105.0141827	39.72025	-105.0151648	39.7202486
-10562	6414	4645	0.149015796662155	0.149015796662155	-105.0169053	39.7202585	-105.0186476	39.7202585
-10563	4645	1271	0.151238114292438	0.151238114292438	-105.0186476	39.7202585	-105.0204158	39.7202453
-10564	1271	4535	0.201873592117884	0.201873592117884	-105.0204158	39.7202453	-105.0227761	39.7202519
-10565	4535	7863	0.199199232202906	0.199199232202906	-105.0227761	39.7202519	-105.0251051	39.7202633
-10567	7864	6740	0.106132792016662	0.106132792016662	-105.0251054	39.7197508	-105.0263463	39.7197518
-10568	6740	2257	0.103696160263475	0.103696160263475	-105.0263463	39.7197518	-105.0275587	39.7197559
-10569	2257	6132	0.104845212424081	0.104845212424081	-105.0275587	39.7197559	-105.0287845	39.7197477
-10570	6132	4000	0.104492371103569	0.104492371103569	-105.0287845	39.7197477	-105.0300062	39.7197532
-10571	4000	7049	0.105765984719426	0.105765984719426	-105.0300062	39.7197532	-105.0312428	39.7197574
-10572	7049	1395	0.105619552065538	0.105619552065538	-105.0312428	39.7197574	-105.0324777	39.7197573
-10573	1395	7865	0.0532676910827188	0.0532676910827188	-105.0324777	39.7197573	-105.0331005	39.7197556
-12077	2695	8043	0.149120560873017	0.149120560873017	-104.9839243	39.7555928	-104.9827245	39.7565663
-10574	7865	7382	0.0513518590570076	0.0513518590570076	-105.0331005	39.7197556	-105.0337009	39.7197539
-10576	7866	3392	0.0498722666723731	0.0498722666723731	-105.0343209	39.7197519	-105.034904	39.7197501
-10578	2360	5226	0.147034135602084	0.147034135602084	-104.9874759	39.7193464	-104.9891947	39.7193214
-10579	5226	5088	0.140218763176125	0.140218763176125	-104.9891947	39.7193214	-104.9908341	39.719328
-10580	5088	2812	0.112317158065107	0.112317158065107	-104.9908341	39.719328	-104.9921473	39.719328
-10581	2812	7855	0.0589853238635922	0.0589853238635922	-104.9921473	39.719328	-104.9928366	39.7193449
-10582	7855	4676	0.102566908777836	0.102566908777836	-104.9928366	39.7193449	-104.9940356	39.719328
-10583	4676	4948	0.0965475772401715	0.0965475772401715	-104.9940356	39.719328	-104.9951641	39.7193488
-10584	4948	7867	0.0515742481536382	0.0515742481536382	-104.9951641	39.7193488	-104.9957671	39.7193495
-10585	7867	7219	0.0513689618533378	0.0513689618533378	-104.9957671	39.7193495	-104.9963677	39.7193501
-10586	7219	7868	0.0507197202929207	0.0507197202929207	-104.9963677	39.7193501	-104.9969607	39.7193475
-10587	7868	5673	0.0490781046009859	0.0490781046009859	-104.9969607	39.7193475	-104.9975345	39.7193508
-10588	5673	7869	0.0456643057832586	0.0456643057832586	-104.9975345	39.7193508	-104.9980684	39.719352
-10591	7792	7870	0.049146171652799	0.049146171652799	-105.0397277	39.7197303	-105.0403023	39.7197335
-10592	7870	1108	0.0521568671722949	0.0521568671722949	-105.0403023	39.7197335	-105.0409121	39.7197369
-10593	1108	5770	0.0506160748755952	0.0506160748755952	-105.0409121	39.7197369	-105.0415039	39.7197378
-10594	5770	7510	0.0513174323114612	0.0513174323114612	-105.0415039	39.7197378	-105.0421039	39.7197388
-10595	7510	7871	0.0508676871173128	0.0508676871173128	-105.0421039	39.7197388	-105.0426986	39.7197333
-10596	7871	3865	0.0498216783929082	0.0498216783929082	-105.0426986	39.7197333	-105.0432811	39.7197303
-10598	3866	7535	0.105586605139886	0.105586605139886	-105.043285	39.7203775	-105.0445183	39.7203352
-10599	7535	7872	0.748786770151958	0.748786770151958	-105.0445183	39.7203352	-105.0532725	39.7204183
-10603	741	1561	0.140274508504629	0.140274508504629	-104.9564618	39.7764088	-104.9564528	39.7776703
-10604	1561	7876	0.139940443617856	0.139940443617856	-104.9564528	39.7776703	-104.9564449	39.7789288
-10605	7876	7877	0.121382404560649	0.121382404560649	-104.9564449	39.7789288	-104.9564367	39.7800204
-10607	3572	5640	0.141095915979936	0.141095915979936	-104.9561226	39.7544534	-104.9561277	39.7557223
-10608	5640	4345	0.139634312621283	0.139634312621283	-104.9561277	39.7557223	-104.9561539	39.7569779
-10609	4345	6343	0.13679021957376	0.13679021957376	-104.9561539	39.7569779	-104.9561352	39.758208
-10610	6343	3046	0.13698802953883	0.13698802953883	-104.9561352	39.758208	-104.956119	39.7594399
-10611	3046	7878	0.138953332142948	0.138953332142948	-104.956119	39.7594399	-104.9560949	39.7606894
-10612	7878	7879	0.00536944182123181	0.00536944182123181	-104.9560949	39.7606894	-104.9561163	39.7607348
-10613	7879	7880	0.11582084881522	0.11582084881522	-104.9561163	39.7607348	-104.9561137	39.7617764
-10615	7881	7882	0.0939943673024045	0.0939943673024045	-104.9562865	39.7328649	-104.9563208	39.7337098
-10617	4885	7883	0.18871104587798	0.18871104587798	-104.9562778	39.7351101	-104.9562673	39.7368072
-10618	7883	5483	0.174801190512252	0.174801190512252	-104.9562673	39.7368072	-104.9562788	39.7383792
-10619	5483	7884	0.200940942998637	0.200940942998637	-104.9562788	39.7383792	-104.9562845	39.7401863
-10620	7884	7885	0.0780811261571653	0.0780811261571653	-104.9562845	39.7401863	-104.9567283	39.7408
-10621	7885	3341	0.00930901113126469	0.00930901113126469	-104.9567283	39.7408	-104.9568365	39.7408093
-10624	1192	7887	0.0222318154701858	0.0222318154701858	-104.9567021	39.7271202	-104.956707	39.7273201
-10625	7887	3786	0.199739451308706	0.199739451308706	-104.956707	39.7273201	-104.9567075	39.7291164
-10627	7888	5967	0.106945706764055	0.106945706764055	-104.983517	39.7478374	-104.9844118	39.7485095
-10628	5967	7889	0.0517538867982505	0.0517538867982505	-104.9844118	39.7485095	-104.9848354	39.748842
-10629	7889	3011	0.055433069584998	0.055433069584998	-104.9848354	39.748842	-104.9852889	39.7491983
-10630	3011	7890	0.0504905501442438	0.0504905501442438	-104.9852889	39.7491983	-104.9856992	39.7495249
-10631	7890	4389	0.0518336432467722	0.0518336432467722	-104.9856992	39.7495249	-104.9861204	39.7498602
-10632	4389	7891	0.106909075712535	0.106909075712535	-104.9861204	39.7498602	-104.9870145	39.7505324
-10633	7891	7892	0.0447272763477039	0.0447272763477039	-104.9870145	39.7505324	-104.987378	39.7508217
-10634	7892	7893	0.0604871538278066	0.0604871538278066	-104.987378	39.7508217	-104.9878898	39.7511973
-10635	7893	7894	0.0527248029948841	0.0527248029948841	-104.9878898	39.7511973	-104.9883251	39.7515332
-10636	7894	7895	0.0510420835040534	0.0510420835040534	-104.9883251	39.7515332	-104.9887543	39.7518523
-10637	7895	7896	0.0538542282588573	0.0538542282588573	-104.9887543	39.7518523	-104.9891984	39.7521958
-10638	7896	7897	0.0528352422268061	0.0528352422268061	-104.9891984	39.7521958	-104.9896341	39.7525328
-10640	7898	7899	0.0483963113823249	0.0483963113823249	-104.9900722	39.7528603	-104.9904781	39.7531637
-10641	7899	7900	0.00514045868709644	0.00514045868709644	-104.9904781	39.7531637	-104.9905138	39.7532009
-10642	7900	6183	0.105068526303449	0.105068526303449	-104.9905138	39.7532009	-104.9913748	39.7538752
-10643	6183	7563	0.106218150970674	0.106218150970674	-104.9913748	39.7538752	-104.9922506	39.7545528
-10646	7902	7903	0.144865462765669	0.144865462765669	-105.0116934	39.7583103	-105.0105038	39.7592382
-10647	7903	7904	0.00237466940700901	0.00237466940700901	-105.0105038	39.7592382	-105.0104854	39.7592542
-10648	7904	6985	0.0721296292058115	0.0721296292058115	-105.0104854	39.7592542	-105.0098936	39.7597166
-10649	6985	4820	0.0719786596117478	0.0719786596117478	-105.0098936	39.7597166	-105.0093022	39.7601774
-10650	4820	7905	0.147529402397198	0.147529402397198	-105.0093022	39.7601774	-105.0080885	39.7611207
-10651	7905	7906	0.144081069806214	0.144081069806214	-105.0080885	39.7611207	-105.0068985	39.7620384
-10653	3189	1870	0.209495964340019	0.209495964340019	-104.9875502	39.7111482	-104.9899993	39.7111545
-10654	1870	7907	0.0977397792259224	0.0977397792259224	-104.9899993	39.7111545	-104.9911419	39.7111606
-10655	7907	4184	0.106328113718199	0.106328113718199	-104.9911419	39.7111606	-104.9923849	39.7111672
-10656	4184	7908	0.403661295666813	0.403661295666813	-104.9923849	39.7111672	-104.9971039	39.7111729
-10657	7908	4837	0.108683081676812	0.108683081676812	-104.9971039	39.7111729	-104.9983742	39.7111927
-10659	7909	7910	0.270199990406442	0.270199990406442	-105.0273938	39.6894539	-105.027347	39.6870242
-10660	7911	810	0.0673953106393502	0.0673953106393502	-105.0276068	39.7548215	-105.0276079	39.7554276
-10661	810	7912	0.0687323400006804	0.0687323400006804	-105.0276079	39.7554276	-105.0276151	39.7560457
-10662	7912	7913	0.136720833756656	0.136720833756656	-105.0276151	39.7560457	-105.0275993	39.7572752
-10666	2255	5858	0.174722136683236	0.174722136683236	-105.0275483	39.7165547	-105.0275397	39.7149834
-10667	5858	1305	0.178402656879188	0.178402656879188	-105.0275397	39.7149834	-105.0275483	39.713379
-10668	1305	7915	0.248888691440438	0.248888691440438	-105.0275483	39.713379	-105.0275397	39.7111407
-12170	8573	8574	0.0987973765101899	0.0987973765101899	-104.9944322	39.7487829	-104.9936089	39.7481594
-10670	6847	7916	0.0984178968171368	0.0984178968171368	-105.0275397	39.7102889	-105.0275054	39.7094042
-10671	7916	7485	0.0976761282305841	0.0976761282305841	-105.0275054	39.7094042	-105.0275311	39.708526
-10673	7454	5692	0.103533596199028	0.103533596199028	-105.0275397	39.707661	-105.0275397	39.7067299
-10674	5692	7917	0.101331500328489	0.101331500328489	-105.0275397	39.7067299	-105.0275225	39.7058187
-10675	7917	4966	0.0998668108920524	0.0998668108920524	-105.0275225	39.7058187	-105.027514	39.7049206
-10676	4966	7918	0.102812100555259	0.102812100555259	-105.027514	39.7049206	-105.0275397	39.7039962
-10677	7918	7919	0.0983963905872725	0.0983963905872725	-105.0275397	39.7039962	-105.0275397	39.7031113
-10678	7919	7920	0.0991546561543948	0.0991546561543948	-105.0275397	39.7031113	-105.027514	39.7022198
-10679	7920	7921	0.0991411977449166	0.0991411977449166	-105.027514	39.7022198	-105.0274968	39.7013283
-10680	7921	7922	0.106421383510006	0.106421383510006	-105.0274968	39.7013283	-105.0275358	39.7003717
-10682	7923	7924	0.106391305814005	0.106391305814005	-104.9406835	39.7550153	-104.9406835	39.7559721
-10684	7925	629	0.0646550267727614	0.0646550267727614	-104.9739262	39.7620073	-104.9734189	39.7624386
-10685	629	7926	0.00919464810452742	0.00919464810452742	-104.9734189	39.7624386	-104.9733442	39.7624981
-10686	7927	7928	0.0412650483746168	0.0412650483746168	-105.0158342	39.7601412	-105.0162425	39.7603392
-10687	7928	7929	0.155361420508855	0.155361420508855	-105.0162425	39.7603392	-105.0179546	39.7608082
-10688	7929	6922	0.0195376725753923	0.0195376725753923	-105.0179546	39.7608082	-105.0181826	39.7608206
-10689	6922	6736	0.174720460074468	0.174720460074468	-105.0181826	39.7608206	-105.0202265	39.7608392
-10691	7930	7931	0.0129516773904198	0.0129516773904198	-104.949883	39.707468	-104.9500344	39.7074688
-10692	7931	1511	0.391618540945239	0.391618540945239	-104.9500344	39.7074688	-104.9534977	39.7051656
-10693	1511	7932	0.0409032080648905	0.0409032080648905	-104.9534977	39.7051656	-104.9536135	39.7048087
-10694	7932	3280	0.112386881702983	0.112386881702983	-104.9536135	39.7048087	-104.9540083	39.7038447
-10696	4635	6586	0.185505221951206	0.185505221951206	-105.0192742	39.7316986	-105.0206647	39.7329791
-10698	6668	787	0.109054104365323	0.109054104365323	-105.007449	39.7016708	-105.0063481	39.7011764
-10699	787	6002	0.243058044096108	0.243058044096108	-105.0063481	39.7011764	-105.0054308	39.6991076
-10702	7934	1008	1.1041513689359	1.1041513689359	-104.9948315	39.7656825	-104.9879427	39.7740829
-10704	4497	7935	0.109080059964542	0.109080059964542	-105.0051406	39.788644	-105.0064172	39.7886514
-10705	7935	7936	0.375437621590472	0.375437621590472	-105.0064172	39.7886514	-105.0106854	39.7894536
-10706	7936	7937	0.0440200903162904	0.0440200903162904	-105.0106854	39.7894536	-105.0112006	39.7894548
-10708	3966	3963	0.0923048136404676	0.0923048136404676	-105.0005888	39.7883796	-105.0016187	39.7886302
-10710	6243	7938	0.0544857736456965	0.0544857736456965	-104.9874615	39.7256397	-104.9868244	39.7256399
-10711	7938	7571	0.0517149905092859	0.0517149905092859	-104.9868244	39.7256399	-104.9862197	39.7256409
-10712	7571	7939	0.0378829783952266	0.0378829783952266	-104.9862197	39.7256409	-104.9857768	39.7256351
-10714	7940	5872	0.0757028634173436	0.0757028634173436	-105.0421016	39.7156502	-105.0420963	39.7149694
-10715	5872	1324	0.177578299705823	0.177578299705823	-105.0420963	39.7149694	-105.0420966	39.7133724
-10716	1324	1380	0.1760884455939	0.1760884455939	-105.0420966	39.7133724	-105.0420733	39.7117889
-10717	1380	7941	0.0581557503278793	0.0581557503278793	-105.0420733	39.7117889	-105.0420966	39.7112662
-10718	7941	6844	0.0845562612846107	0.0845562612846107	-105.0420966	39.7112662	-105.0420451	39.7105068
-10719	6844	4696	0.11746862405599	0.11746862405599	-105.0420451	39.7105068	-105.0420537	39.7094504
-10720	4696	7452	0.157863437357233	0.157863437357233	-105.0420537	39.7094504	-105.0420537	39.7080307
-10722	5690	5337	0.242972143995655	0.242972143995655	-105.0420279	39.7068686	-105.0420306	39.7046835
-10724	7942	7943	0.14470003055266	0.14470003055266	-105.0424313	39.7034679	-105.0423884	39.702167
-10725	7943	1056	0.118222446008981	0.118222446008981	-105.0423884	39.702167	-105.0423884	39.7011038
-10726	1056	7944	0.0800381081986229	0.0800381081986229	-105.0423884	39.7011038	-105.0423884	39.700384
-10727	7944	6249	0.201854530416454	0.201854530416454	-105.0423884	39.700384	-105.0425772	39.6985745
-10728	6249	7945	0.201602089629263	0.201602089629263	-105.0425772	39.6985745	-105.0425595	39.6967615
-10729	7945	1497	0.20081804408168	0.20081804408168	-105.0425595	39.6967615	-105.0425601	39.6949555
-10730	1497	186	0.202686112287629	0.202686112287629	-105.0425601	39.6949555	-105.0425601	39.6931327
-10731	186	7798	0.0846089584800808	0.0846089584800808	-105.0425601	39.6931327	-105.0425	39.6923732
-10732	7798	1714	0.126110593452085	0.126110593452085	-105.0425	39.6923732	-105.0420365	39.6912966
-10734	7946	1580	0.141640668503246	0.141640668503246	-105.0421824	39.6894605	-105.0421871	39.6881867
-10735	1580	7947	0.292520501534348	0.292520501534348	-105.0421871	39.6881867	-105.0421863	39.685556
-10736	7948	2142	0.372172819192242	0.372172819192242	-105.0070074	39.7368827	-105.008237	39.7400934
-10738	7949	7950	0.022809009376778	0.022809009376778	-104.9733887	39.7145485	-104.9732428	39.7147202
-10739	7950	2916	0.200611278039498	0.200611278039498	-104.9732428	39.7147202	-104.9731398	39.7165226
-10741	2915	7951	0.200419085698686	0.200419085698686	-104.9733801	39.7165226	-104.9733887	39.7147202
-10743	7952	7953	0.0110105423016681	0.0110105423016681	-105.019895	39.7391795	-105.0198924	39.7392785
-10745	7954	7631	0.201162741792968	0.201162741792968	-105.0198441	39.7293262	-105.0198441	39.7275171
-16610	5355	7889	0.146740030035641	0.146740030035641	-104.986046	39.7479065	-104.9848354	39.748842
-10746	7631	7955	0.197131063915064	0.197131063915064	-105.0198441	39.7275171	-105.0198149	39.7257444
-10748	7956	6942	0.115194637181012	0.115194637181012	-104.9677476	39.7808918	-104.9677319	39.7819277
-12305	8628	8641	0.0276795827309073	0.0276795827309073	-105.0077112	39.7549614	-105.0078924	39.7547551
-10750	4939	4687	0.409424899618544	0.409424899618544	-104.9964751	39.7368603	-104.9941176	39.7336555
-10751	4687	7959	0.501489716289273	0.501489716289273	-104.9941176	39.7336555	-104.9912259	39.7297319
-10752	7959	7960	0.103838798829226	0.103838798829226	-104.9912259	39.7297319	-104.9906006	39.7289314
-10753	7960	5096	0.0880537297967434	0.0880537297967434	-104.9906006	39.7289314	-104.9899868	39.7282956
-10754	5096	7961	0.0549628705336601	0.0549628705336601	-104.9899868	39.7282956	-104.9896006	39.7279005
-10756	7962	7963	0.129400960231747	0.129400960231747	-105.0007006	39.7452954	-105.0005879	39.7441349
-10757	7963	7964	0.0109989745271633	0.0109989745271633	-105.0005879	39.7441349	-105.0005794	39.7440362
-10758	7964	7093	0.177295071329975	0.177295071329975	-105.0005794	39.7440362	-105.000125	39.7424805
-10759	7093	7965	0.0553949557893182	0.0553949557893182	-105.000125	39.7424805	-104.999898	39.7420139
-10760	7965	3937	0.0117544286846151	0.0117544286846151	-104.999898	39.7420139	-104.9998498	39.7419149
-10761	3937	7966	0.0655333417817751	0.0655333417817751	-104.9998498	39.7419149	-104.9995537	39.7413713
-10762	7966	7967	0.00514903654400709	0.00514903654400709	-104.9995537	39.7413713	-104.9995304	39.7413286
-10763	7967	7968	0.0154207763703831	0.0154207763703831	-104.9995304	39.7413286	-104.9994613	39.7412005
-10764	7968	7969	0.120137734300265	0.120137734300265	-104.9994613	39.7412005	-104.9989064	39.7402079
-10765	7969	7970	0.0235045509998941	0.0235045509998941	-104.9989064	39.7402079	-104.9987846	39.7400184
-10766	7970	4938	0.199335986652222	0.199335986652222	-104.9987846	39.7400184	-104.9976397	39.7384568
-10768	6788	4721	0.150986476371322	0.150986476371322	-104.9684027	39.7400015	-104.9696847	39.7409353
-10769	4721	667	0.112227110724083	0.112227110724083	-104.9696847	39.7409353	-104.9706168	39.7416459
-10770	667	5130	0.0364809731603039	0.0364809731603039	-104.9706168	39.7416459	-104.9709144	39.741881
-10771	5130	7141	0.148468037583607	0.148468037583607	-104.9709144	39.741881	-104.9721376	39.7428287
-10772	7141	7973	0.0653535267620459	0.0653535267620459	-104.9721376	39.7428287	-104.9726808	39.7432422
-10773	7973	2883	0.0864280151657955	0.0864280151657955	-104.9726808	39.7432422	-104.9733956	39.7437918
-10774	2883	4607	0.164926871665991	0.164926871665991	-104.9733956	39.7437918	-104.9747635	39.7448376
-10775	4607	5044	0.166914948534143	0.166914948534143	-104.9747635	39.7448376	-104.9761532	39.7458919
-10776	5044	6491	0.0452504465788914	0.0452504465788914	-104.9761532	39.7458919	-104.976527	39.74618
-10777	6491	7974	0.124696259323388	0.124696259323388	-104.976527	39.74618	-104.9775516	39.7469781
-10778	7974	3674	0.0837503652675649	0.0837503652675649	-104.9775516	39.7469781	-104.9782423	39.7475122
-10780	7975	7976	0.0210158411356976	0.0210158411356976	-104.9546025	39.7180291	-104.9546025	39.7182181
-10781	7976	2348	0.132347730703915	0.132347730703915	-104.9546025	39.7182181	-104.9546138	39.7194083
-10782	2348	4153	0.174709468744017	0.174709468744017	-104.9546138	39.7194083	-104.9546138	39.7209795
-10783	4153	4740	0.173977137035244	0.173977137035244	-104.9546138	39.7209795	-104.9546224	39.7225441
-10784	4740	6535	0.176711434597363	0.176711434597363	-104.9546224	39.7225441	-104.9546177	39.7241333
-10785	6535	7977	0.164237503877208	0.164237503877208	-104.9546177	39.7241333	-104.9546285	39.7256103
-10787	7978	692	0.202230219594829	0.202230219594829	-104.9547761	39.7401752	-104.9547755	39.7419939
-10788	692	7979	0.202124611474851	0.202124611474851	-104.9547755	39.7419939	-104.9547451	39.7438115
-10790	7980	1194	0.168544434179807	0.168544434179807	-104.9543549	39.7256103	-104.9544083	39.7271255
-10791	1194	7981	0.0214611132807924	0.0214611132807924	-104.9544083	39.7271255	-104.95441	39.7273185
-10793	1195	7982	0.0213718360054606	0.0213718360054606	-104.9540289	39.7271284	-104.9540279	39.7273206
-10794	7982	3783	0.200590566648469	0.200590566648469	-104.9540279	39.7273206	-104.9540461	39.7291245
-10795	3783	7983	0.155575717720948	0.155575717720948	-104.9540461	39.7291245	-104.9540572	39.7305236
-10797	947	7986	0.165669448326255	0.165669448326255	-104.9540658	39.7320945	-104.9540634	39.7335844
-10798	7986	4887	0.171543568824384	0.171543568824384	-104.9540634	39.7335844	-104.9541159	39.7351266
-10800	104	7987	0.0531910934067007	0.0531910934067007	-104.9874778	39.7002508	-104.9874076	39.7007261
-10801	7987	7283	0.14149347529597	0.14149347529597	-104.9874076	39.7007261	-104.9871988	39.7019884
-10803	4249	1782	0.204738067086155	0.204738067086155	-104.9862119	39.6966237	-104.986165	39.6947828
-10804	1782	7202	0.196638037803866	0.196638037803866	-104.986165	39.6947828	-104.9862426	39.6930154
-10805	7202	5813	0.202462167506831	0.202462167506831	-104.9862426	39.6930154	-104.9862656	39.6911947
-10806	5813	7720	0.198881694965003	0.198881694965003	-104.9862656	39.6911947	-104.9862428	39.6894062
-10831	5664	5936	0.10457956834692	0.10457956834692	-104.9752576	39.729517	-104.975253	39.7304575
-10807	7720	7988	2.41654683926542	2.41654683926542	-104.9862428	39.6894062	-104.986288	39.6676737
-10808	3557	815	0.15408456375045	0.15408456375045	-104.9745442	39.7546268	-104.9745356	39.7532411
-10809	815	7836	0.141625491803193	0.141625491803193	-104.9745356	39.7532411	-104.9745528	39.7519675
-10810	7836	7989	0.137956171688053	0.137956171688053	-104.9745528	39.7519675	-104.9745699	39.7507269
-10811	7989	7990	0.133814544271225	0.133814544271225	-104.9745699	39.7507269	-104.9745602	39.7495235
-10812	7990	7991	0.00435891657982006	0.00435891657982006	-104.9745602	39.7495235	-104.9745599	39.7494843
-10813	7991	7992	0.00504883599617259	0.00504883599617259	-104.9745599	39.7494843	-104.9745608	39.7494389
-10814	7992	3667	0.218697319390466	0.218697319390466	-104.9745608	39.7494389	-104.9746946	39.7474748
-10818	4607	7994	0.175458215250442	0.175458215250442	-104.9747635	39.7448376	-104.9747769	39.7432597
-10819	7994	7995	0.17352002006779	0.17352002006779	-104.9747769	39.7432597	-104.9747729	39.7416992
-10820	7995	664	0.00413178605963205	0.00413178605963205	-104.9747729	39.7416992	-104.9747756	39.7416621
-10821	664	7998	0.00436495014442939	0.00436495014442939	-104.9747756	39.7416621	-104.9747729	39.7416229
-10822	7998	7999	0.17836184127639	0.17836184127639	-104.9747729	39.7416229	-104.9748011	39.740019
-10824	6329	4163	0.106458655644295	0.106458655644295	-104.9752418	39.719173	-104.975216	39.7201302
-10825	4163	4772	0.262069785544738	0.262069785544738	-104.975216	39.7201302	-104.975236	39.722487
-10826	4772	6551	0.176006441608747	0.176006441608747	-104.975236	39.722487	-104.9752545	39.7240698
-10827	6551	8001	0.169733521019883	0.169733521019883	-104.9752545	39.7240698	-104.9752384	39.7255962
-10828	8001	8002	0.186888519126424	0.186888519126424	-104.9752384	39.7255962	-104.9752512	39.7272769
-10829	8002	3800	0.199472684499289	0.199472684499289	-104.9752512	39.7272769	-104.9752536	39.7290708
-10830	3800	5664	0.0496163554354094	0.0496163554354094	-104.9752536	39.7290708	-104.9752576	39.729517
-10832	5936	934	0.175672791884477	0.175672791884477	-104.975253	39.7304575	-104.9752714	39.7320373
-10833	934	5818	0.103656977616086	0.103656977616086	-104.9752714	39.7320373	-104.9752659	39.7329695
-10834	5818	2219	0.0798383163598858	0.0798383163598858	-104.9752659	39.7329695	-104.9752631	39.7336875
-10835	2219	4869	0.163069738486709	0.163069738486709	-104.9752631	39.7336875	-104.9752734	39.735154
-10836	4869	8003	0.190225091069506	0.190225091069506	-104.9752734	39.735154	-104.9752877	39.7368647
-10837	8003	5468	0.173414227417019	0.173414227417019	-104.9752877	39.7368647	-104.9753042	39.7384242
-10838	5468	6220	0.124444185392524	0.124444185392524	-104.9753042	39.7384242	-104.9752801	39.7395432
-10841	5175	8005	0.198062000656316	0.198062000656316	-104.9757389	39.7165269	-104.9757482	39.7183081
-10844	8006	681	0.244474486801046	0.244474486801046	-104.9569442	39.743807	-104.9569536	39.7416084
-10845	681	3340	0.0902358208620103	0.0902358208620103	-104.9569536	39.7416084	-104.9569483	39.7407969
-10847	7885	682	0.0896800723137281	0.0896800723137281	-104.9567283	39.7408	-104.9567458	39.7416064
-10848	682	580	0.244861214317874	0.244861214317874	-104.9567458	39.7416064	-104.9566854	39.743808
-10850	5334	6321	0.121951239816061	0.121951239816061	-105.0391209	39.7067305	-105.0391097	39.7056338
-10851	6321	8007	0.186507250461399	0.186507250461399	-105.0391097	39.7056338	-105.0391097	39.7039565
-10852	8007	8008	0.042606728375189	0.042606728375189	-105.0391097	39.7039565	-105.0391344	39.7035738
-10853	8008	8009	0.0463471911266823	0.0463471911266823	-105.0391344	39.7035738	-105.0391612	39.7031575
-10854	8009	8010	0.0102891732268637	0.0102891732268637	-105.0391612	39.7031575	-105.039158	39.703065
-10855	8010	8011	0.0998884840922572	0.0998884840922572	-105.039158	39.703065	-105.0391269	39.702167
-10856	8011	8012	0.201197445523876	0.201197445523876	-105.0391269	39.702167	-105.0391183	39.7003576
-10857	8012	6246	0.199805617134822	0.199805617134822	-105.0391183	39.7003576	-105.0390582	39.6985613
-10858	6246	8013	0.200864024373594	0.200864024373594	-105.0390582	39.6985613	-105.0390491	39.6967549
-10859	8013	2310	0.103900456751802	0.103900456751802	-105.0390491	39.6967549	-105.0390668	39.6958206
-10860	2310	1494	0.0983991417332815	0.0983991417332815	-105.0390668	39.6958206	-105.0390582	39.6949357
-10861	1494	183	0.203419998804159	0.203419998804159	-105.0390582	39.6949357	-105.0390582	39.6931063
-10862	183	1711	0.201968707186781	0.201968707186781	-105.0390582	39.6931063	-105.0390754	39.69129
-16611	7889	9327	0.146157951939095	0.146157951939095	-104.9848354	39.748842	-104.9836296	39.7497738
-10863	1711	8014	0.204806773712675	0.204806773712675	-105.0390754	39.69129	-105.0390543	39.6894482
-10864	8014	6157	0.126319530562447	0.126319530562447	-105.0390543	39.6894482	-105.0390628	39.6883122
-10865	6157	1577	0.0829958932471693	0.0829958932471693	-105.0390628	39.6883122	-105.0390628	39.6875658
-10867	7968	8016	0.0140119714836204	0.0140119714836204	-104.9994613	39.7412005	-104.9993111	39.7412509
-10869	2294	1531	0.46192746891159	0.46192746891159	-104.9899657	39.7654782	-104.9909332	39.7613911
-10871	8017	1203	0.169906498983342	0.169906498983342	-104.948399	39.7256083	-104.9484045	39.7271363
-10872	1203	8018	0.0221945337202718	0.0221945337202718	-104.9484045	39.7271363	-104.9484041	39.7273359
-10873	8018	3780	0.199572680726093	0.199572680726093	-104.9484041	39.7273359	-104.9484053	39.7291307
-10874	3780	8019	0.153206883868779	0.153206883868779	-104.9484053	39.7291307	-104.9483814	39.7305084
-10875	8019	952	0.177861736820837	0.177861736820837	-104.9483814	39.7305084	-104.9484181	39.7321077
-10876	952	8020	0.175149595226483	0.175149595226483	-104.9484181	39.7321077	-104.9484005	39.7336828
-10877	8020	4891	0.159178167143814	0.159178167143814	-104.9484005	39.7336828	-104.9483898	39.7351143
-10878	4891	8021	0.18577336394487	0.18577336394487	-104.9483898	39.7351143	-104.9483898	39.736785
-10879	8021	5489	0.173842148316324	0.173842148316324	-104.9483898	39.736785	-104.9483898	39.7383484
-10880	5489	8022	0.202303315910377	0.202303315910377	-104.9483898	39.7383484	-104.9484296	39.7401675
-10882	5166	8023	0.173986701720281	0.173986701720281	-104.9485858	39.7162531	-104.9485858	39.7178178
-10883	8023	2353	0.177612171175383	0.177612171175383	-104.9485858	39.7178178	-104.9485908	39.7194151
-10884	2353	4155	0.173655528353614	0.173655528353614	-104.9485908	39.7194151	-104.9485801	39.7209768
-10885	4155	4742	0.173355871166643	0.173355871166643	-104.9485801	39.7209768	-104.9486216	39.7225355
-10886	4742	6537	0.176328961502794	0.176328961502794	-104.9486216	39.7225355	-104.9485774	39.7241209
-10887	6537	8024	0.165303556900913	0.165303556900913	-104.9485774	39.7241209	-104.9485847	39.7256075
-10889	3030	3025	0.111248274146309	0.111248274146309	-104.9487906	39.7590818	-104.9488309	39.7600818
-10891	8025	8026	0.0640627296443105	0.0640627296443105	-104.9487313	39.761191	-104.9488251	39.7617626
-10893	3576	5643	0.138707185733922	0.138707185733922	-104.9488635	39.7544629	-104.9488535	39.7557103
-10894	5643	4348	0.139896948951005	0.139896948951005	-104.9488535	39.7557103	-104.9488435	39.7569684
-10895	4348	6346	0.137784232527167	0.137784232527167	-104.9488435	39.7569684	-104.9488336	39.7582075
-10897	8027	697	0.20001854589906	0.20001854589906	-104.9488409	39.7401691	-104.9488331	39.7419679
-10898	697	8028	0.202096920971429	0.202096920971429	-104.9488331	39.7419679	-104.9488359	39.7437854
-10900	8029	2876	0.123948984730939	0.123948984730939	-104.9487583	39.7837977	-104.9487583	39.7849124
-10901	2876	7628	0.141637704476922	0.141637704476922	-104.9487583	39.7849124	-104.9487399	39.7861861
-10902	7628	7803	0.129093895003183	0.129093895003183	-104.9487399	39.7861861	-104.9487657	39.7873469
-10903	7803	8030	0.203887723487366	0.203887723487366	-104.9487657	39.7873469	-104.9487914	39.7891804
-10904	750	1568	0.143385969503008	0.143385969503008	-104.9486136	39.7763944	-104.9486346	39.7776838
-10905	1568	356	0.136646760403047	0.136646760403047	-104.9486346	39.7776838	-104.9486062	39.7789125
-10907	3449	6863	0.17900718937772	0.17900718937772	-104.9461482	39.7162465	-104.9461768	39.7146368
-10908	6863	3068	0.174598273817653	0.174598273817653	-104.9461768	39.7146368	-104.9461768	39.7130666
-10909	3068	8031	0.0302783785251902	0.0302783785251902	-104.9461768	39.7130666	-104.9461768	39.7127943
-10910	8031	3188	0.14422007961407	0.14422007961407	-104.9461768	39.7127943	-104.9461736	39.7114973
-10912	3499	8032	0.199010937916898	0.199010937916898	-104.9465455	39.6983726	-104.9465284	39.6965829
-10913	8032	8033	0.200333001057217	0.200333001057217	-104.9465284	39.6965829	-104.9465436	39.6947813
-10915	5667	598	0.0644126037668526	0.0644126037668526	-104.947235	39.702287	-104.9468452	39.7017914
-10916	598	58	0.177763601732474	0.177763601732474	-104.9468452	39.7017914	-104.9465541	39.7002085
-10919	5970	8036	0.0505810885650185	0.0505810885650185	-104.9783626	39.753192	-104.9787817	39.7535131
-10920	8036	3015	0.0580577132309736	0.0580577132309736	-104.9787817	39.7535131	-104.9792691	39.7538767
-10921	3015	8037	0.0464238660315039	0.0464238660315039	-104.9792691	39.7538767	-104.9796416	39.7541805
-10922	8037	4384	0.0544799142925035	0.0544799142925035	-104.9796416	39.7541805	-104.9800877	39.7545304
-10923	4384	8038	0.0538947325800234	0.0538947325800234	-104.9800877	39.7545304	-104.9805458	39.7548634
-10924	8038	8039	0.0466438161180549	0.0466438161180549	-104.9805458	39.7548634	-104.9809281	39.7551627
-10925	8039	8040	0.00584498801301113	0.00584498801301113	-104.9809281	39.7551627	-104.9809778	39.7551988
-10926	8040	8041	0.0523763426314988	0.0523763426314988	-104.9809778	39.7551988	-104.981415	39.7555288
-10927	8041	8042	0.0530979313391782	0.0530979313391782	-104.981415	39.7555288	-104.9818522	39.755868
-10928	8042	8043	0.107654120371494	0.107654120371494	-104.9818522	39.755868	-104.9827245	39.7565663
-10929	8043	8044	0.0544759880197041	0.0544759880197041	-104.9827245	39.7565663	-104.9831794	39.7569094
-10930	8044	8045	0.0487657640583263	0.0487657640583263	-104.9831794	39.7569094	-104.9835828	39.7572195
-10931	8045	8046	0.0550233762997563	0.0550233762997563	-104.9835828	39.7572195	-104.9840288	39.7575763
-10932	8046	8047	0.0497918467778446	0.0497918467778446	-104.9840288	39.7575763	-104.9844325	39.7578991
-10933	8047	8048	0.0560301584180681	0.0560301584180681	-104.9844325	39.7578991	-104.9849005	39.7582519
-10934	8048	6177	0.0498105660603093	0.0498105660603093	-104.9849005	39.7582519	-104.9853166	39.7585655
-10937	8049	8050	0.0514663482815545	0.0514663482815545	-104.9866649	39.7595656	-104.9870901	39.7598933
-10939	5597	7545	0.109426166768049	0.109426166768049	-105.0438865	39.7312111	-105.0451654	39.7312441
-10940	7545	8051	0.69043474044403	0.69043474044403	-105.0451654	39.7312441	-105.0532391	39.7312862
-10943	4956	7224	0.100934524697699	0.100934524697699	-104.9952321	39.7305115	-104.9964124	39.7305084
-10944	7224	8052	0.0514703494422073	0.0514703494422073	-104.9964124	39.7305084	-104.9970142	39.7305007
-10945	8052	8053	0.0516967622411713	0.0516967622411713	-104.9970142	39.7305007	-104.9976187	39.7305054
-10946	8053	8054	0.0428181869535947	0.0428181869535947	-104.9976187	39.7305054	-104.9981194	39.7305074
-10947	8054	6644	0.0437760044869343	0.0437760044869343	-104.9981194	39.7305074	-104.9986313	39.7305095
-10948	6644	251	0.0675496864417695	0.0675496864417695	-104.9986313	39.7305095	-104.9994212	39.7305062
-10949	251	3950	0.064659952202738	0.064659952202738	-104.9994212	39.7305062	-105.0001773	39.7305104
-10950	3950	8056	0.0623263752149148	0.0623263752149148	-105.0001773	39.7305104	-105.0009061	39.7305052
-10951	8056	5609	0.0582215030638228	0.0582215030638228	-105.0009061	39.7305052	-105.0015869	39.7305003
-10952	5609	8057	0.0511983070002347	0.0511983070002347	-105.0015869	39.7305003	-105.0021856	39.7304991
-10953	8057	3730	0.0552226014136858	0.0552226014136858	-105.0021856	39.7304991	-105.0028312	39.7305102
-10954	3730	8058	0.106434809873425	0.106434809873425	-105.0028312	39.7305102	-105.0040758	39.7305164
-10956	5917	8060	0.0615467128621124	0.0615467128621124	-104.987439	39.7304505	-104.9881587	39.7304539
-10957	8060	8061	0.0595626505884908	0.0595626505884908	-104.9881587	39.7304539	-104.9888552	39.7304571
-10958	8061	8062	0.120093210467761	0.120093210467761	-104.9888552	39.7304571	-104.9902595	39.7304656
-10960	8063	4634	0.154652934390646	0.154652934390646	-105.01746	39.7312756	-105.0192656	39.7311969
-10961	4634	4549	0.20934037971115	0.20934037971115	-105.0192656	39.7311969	-105.0217136	39.7312012
-10962	4549	8064	0.293727880710195	0.293727880710195	-105.0217136	39.7312012	-105.0251484	39.731191
-10966	5216	3396	0.0579299126969349	0.0579299126969349	-105.0344587	39.7305984	-105.0351361	39.7306025
-10967	3396	8065	0.0454362838279539	0.0454362838279539	-105.0351361	39.7306025	-105.0356674	39.7306063
-10968	8065	5710	0.0481473121637486	0.0481473121637486	-105.0356674	39.7306063	-105.0362304	39.7306104
-10969	5710	8066	0.0449725321072065	0.0449725321072065	-105.0362304	39.7306104	-105.0367563	39.7306104
-10970	8066	7433	0.0497100835030792	0.0497100835030792	-105.0367563	39.7306104	-105.0373376	39.7306104
-10971	7433	8069	0.0438793771122388	0.0438793771122388	-105.0373376	39.7306104	-105.0378507	39.7306136
-10972	8069	7182	0.0471375837035957	0.0471375837035957	-105.0378507	39.7306136	-105.0384019	39.730617
-20567	10854	10857	0.225655121951984	0.225655121951984	-105.0159697	39.7588715	-105.0184643	39.7595354
-10973	7182	8070	0.0452974861696144	0.0452974861696144	-105.0384019	39.730617	-105.0389316	39.730617
-10974	8070	8071	0.0479228077199932	0.0479228077199932	-105.0389316	39.730617	-105.039492	39.730617
-10975	8071	8072	0.0470353472529161	0.0470353472529161	-105.039492	39.730617	-105.040042	39.7306132
-10976	8072	1097	0.0443841816938638	0.0443841816938638	-105.040042	39.7306132	-105.040561	39.7306097
-10978	8073	5318	0.014674630653103	0.014674630653103	-104.9738736	39.7606988	-104.9737157	39.7607506
-10979	5318	2905	0.0312080465120251	0.0312080465120251	-104.9737157	39.7607506	-104.9733508	39.7607599
-10980	2905	7145	0.104770590384922	0.104770590384922	-104.9733508	39.7607599	-104.9721251	39.760762
-10981	7145	5123	0.105925863098076	0.105925863098076	-104.9721251	39.760762	-104.9708859	39.7607568
-10982	5123	4737	0.104660211196924	0.104660211196924	-104.9708859	39.7607568	-104.9696615	39.7607527
-10983	4737	6783	0.106266768581811	0.106266768581811	-104.9696615	39.7607527	-104.9684183	39.7607496
-10984	6783	7367	0.10603565613408	0.10603565613408	-104.9684183	39.7607496	-104.9671778	39.7607476
-12610	8772	8773	0.0502119000696978	0.0502119000696978	-104.9969955	39.7289027	-104.9975826	39.7288966
-10987	3133	3905	0.108335751010408	0.108335751010408	-104.9647236	39.7607393	-104.9634562	39.7607434
-10988	3905	1043	0.106035430930181	0.106035430930181	-104.9634562	39.7607434	-104.9622157	39.7607434
-10989	1043	8074	0.0531930855223622	0.0531930855223622	-104.9622157	39.7607434	-104.9615934	39.7607445
-10990	8074	6278	0.0525006902367685	0.0525006902367685	-104.9615934	39.7607445	-104.9609792	39.7607455
-10991	6278	8075	0.105351603899057	0.105351603899057	-104.9609792	39.7607455	-104.9597467	39.7607455
-10992	8075	5007	0.100650315286722	0.100650315286722	-104.9597467	39.7607455	-104.9585692	39.7607455
-10993	5007	8076	0.0416106781167173	0.0416106781167173	-104.9585692	39.7607455	-104.9580824	39.7607455
-10995	8025	7689	0.0805451553909581	0.0805451553909581	-104.9487313	39.761191	-104.9478369	39.760963
-10996	7689	4508	0.0814563900003029	0.0814563900003029	-104.9478369	39.760963	-104.9468841	39.7609498
-10997	4508	3466	0.0836603655346893	0.0836603655346893	-104.9468841	39.7609498	-104.9459057	39.7609696
-10998	3466	6023	0.0805527124085535	0.0805527124085535	-104.9459057	39.7609696	-104.9449634	39.76096
-10999	6023	3872	0.0834734840918988	0.0834734840918988	-104.9449634	39.76096	-104.9440107	39.7607951
-11000	3872	8080	0.0833038712417768	0.0833038712417768	-104.9440107	39.7607951	-104.9430389	39.7607387
-11002	3967	8081	0.0785869791186196	0.0785869791186196	-105.0184978	39.6900096	-105.0194162	39.690003
-11004	6348	3039	0.0931730621198353	0.0931730621198353	-104.9430579	39.7581889	-104.9430494	39.7590268
-11005	3039	8080	0.190356710856614	0.190356710856614	-104.9430494	39.7590268	-104.9430389	39.7607387
-11006	8080	8082	0.0884015044030203	0.0884015044030203	-104.9430389	39.7607387	-104.9430328	39.7615337
-11008	6424	4647	0.0970252568524678	0.0970252568524678	-105.0175106	39.7248745	-105.0186451	39.7248745
-11009	4647	8083	0.151040975226462	0.151040975226462	-105.0186451	39.7248745	-105.0204107	39.7248423
-16204	9846	7728	0.404619504399153	0.404619504399153	-104.9798779	39.6857583	-104.9798585	39.6893971
-11010	4970	8084	0.141573509395187	0.141573509395187	-104.9800953	39.7828539	-104.9784386	39.7828407
-11012	6398	7450	0.0587460292912133	0.0587460292912133	-104.9991941	39.7080802	-104.9991888	39.7075519
-11013	7450	5682	0.0978645396723703	0.0978645396723703	-104.9991888	39.7075519	-104.9991817	39.7066718
-11014	5682	8085	0.19215729634673	0.19215729634673	-104.9991817	39.7066718	-104.9991901	39.7049437
-11015	8085	6825	0.00461462117405417	0.00461462117405417	-104.9991901	39.7049437	-104.9991903	39.7049022
-11016	6825	549	0.386380234242036	0.386380234242036	-104.9991903	39.7049022	-104.999187	39.7014274
-11017	549	6259	0.219376470776871	0.219376470776871	-104.999187	39.7014274	-104.999187	39.6994545
-11018	6259	8086	0.305359073933419	0.305359073933419	-104.999187	39.6994545	-104.9991292	39.6967087
-11019	8086	1485	0.202208842336051	0.202208842336051	-104.9991292	39.6967087	-104.9991903	39.6948908
-11023	8088	8089	0.0138986527527033	0.0138986527527033	-105.0018979	39.7429979	-105.0019804	39.7431056
-11024	8089	8090	0.00683010177656819	0.00683010177656819	-105.0019804	39.7431056	-105.002021	39.7431585
-11025	8090	8091	0.110435202693889	0.110435202693889	-105.002021	39.7431585	-105.0026536	39.7440244
-11026	7961	8092	0.198854876063874	0.198854876063874	-104.9896006	39.7279005	-104.9877223	39.7268463
-11028	5855	1340	0.201837936768745	0.201837936768745	-105.019178	39.714811	-105.0191455	39.712996
-11029	1340	8094	0.205566060887405	0.205566060887405	-105.0191455	39.712996	-105.0191455	39.7111473
-11030	8094	4699	0.204173926089909	0.204173926089909	-105.0191455	39.7111473	-105.0192055	39.7093117
-11031	4699	8095	0.200461574437924	0.200461574437924	-105.0192055	39.7093117	-105.0192399	39.7075091
-11032	8095	8096	0.201918867294297	0.201918867294297	-105.0192399	39.7075091	-105.0192399	39.7056932
-11033	8096	6823	0.198988761465987	0.198988761465987	-105.0192399	39.7056932	-105.0192227	39.7039037
-11034	6823	772	0.204865532850049	0.204865532850049	-105.0192227	39.7039037	-105.0192227	39.7020613
-11036	6007	6252	0.210749028817316	0.210749028817316	-105.0192141	39.7004566	-105.0192055	39.6985613
-11037	6252	8097	0.20159640654511	0.20159640654511	-105.0192055	39.6985613	-105.019205	39.6967483
-11039	6091	8098	0.0302498178580294	0.0302498178580294	-105.0158342	39.7607944	-105.0160862	39.7609854
-11040	8098	8099	0.0194131905433523	0.0194131905433523	-105.0160862	39.7609854	-105.016277	39.7610801
-11041	8099	6924	0.166900367789548	0.166900367789548	-105.016277	39.7610801	-105.0181853	39.7613979
-11042	6924	8100	0.161859559583179	0.161859559583179	-105.0181853	39.7613979	-105.0200789	39.7613979
-11043	8100	1241	0.0380629815604356	0.0380629815604356	-105.0200789	39.7613979	-105.0205242	39.7613979
-11045	6980	7942	0.133638145181839	0.133638145181839	-105.0408692	39.7034745	-105.0424313	39.7034679
-11046	7942	5338	0.0765467348148991	0.0765467348148991	-105.0424313	39.7034679	-105.0430777	39.7039439
-11048	5442	7919	0.212135491175046	0.212135491175046	-105.0250601	39.7030958	-105.0275397	39.7031113
-11049	7919	4410	0.19312496970157	0.19312496970157	-105.0275397	39.7031113	-105.0297971	39.7030981
-11050	4410	8103	0.226886968788061	0.226886968788061	-105.0297971	39.7030981	-105.0324492	39.7031047
-11051	8103	4283	0.17035467585884	0.17035467585884	-105.0324492	39.7031047	-105.0344405	39.7031047
-11053	8104	7854	0.0946426330892721	0.0946426330892721	-104.9912065	39.7783357	-104.9923137	39.7783555
-11054	7854	8105	0.0433309511619061	0.0433309511619061	-104.9923137	39.7783555	-104.9928201	39.7783357
-11055	8106	6776	0.129541839197132	0.129541839197132	-105.0252567	39.7778437	-105.0267719	39.7778785
-11056	6776	6152	0.13334664352248	0.13334664352248	-105.0267719	39.7778785	-105.0283323	39.7778787
-11057	6152	3997	0.133550546612879	0.133550546612879	-105.0283323	39.7778787	-105.0298945	39.7779116
-11058	3997	7046	0.134234793318191	0.134234793318191	-105.0298945	39.7779116	-105.0314652	39.7779248
-11059	7046	7376	0.132775137258175	0.132775137258175	-105.0314652	39.7779248	-105.0330187	39.7779446
-11060	7376	3435	0.135417405491425	0.135417405491425	-105.0330187	39.7779446	-105.0346033	39.7779525
-11063	7764	5715	0.0517371191288579	0.0517371191288579	-105.035177	39.7783841	-105.0357824	39.77838
-11064	5715	8107	0.0482057757930101	0.0482057757930101	-105.0357824	39.77838	-105.0363465	39.77838
-11065	8107	7435	0.0500858095958938	0.0500858095958938	-105.0363465	39.77838	-105.0369326	39.77838
-11066	7435	8108	0.0493949795014098	0.0493949795014098	-105.0369326	39.77838	-105.0375106	39.7783767
-11067	8108	7174	0.049625706970036	0.049625706970036	-105.0375106	39.7783767	-105.0380913	39.7783734
-11068	7174	6739	0.0493949818685724	0.0493949818685724	-105.0380913	39.7783734	-105.0386693	39.7783767
-11069	6739	7789	0.0481559013551591	0.0481559013551591	-105.0386693	39.7783767	-105.0392328	39.77838
-11070	7789	6645	0.0506327285203027	0.0506327285203027	-105.0392328	39.77838	-105.0398253	39.77838
-11071	6645	1136	0.0491201558695857	0.0491201558695857	-105.0398253	39.77838	-105.0404001	39.77838
-11072	1136	6995	0.0494363433732341	0.0494363433732341	-105.0404001	39.77838	-105.0409786	39.77838
-11073	6995	7503	0.049590164320003	0.049590164320003	-105.0409786	39.77838	-105.0415589	39.77838
-11074	7503	8109	0.100703299932673	0.100703299932673	-105.0415589	39.77838	-105.0427373	39.7783855
-11075	8109	7480	0.0534769030186113	0.0534769030186113	-105.0427373	39.7783855	-105.043363	39.7783777
-11076	7480	5580	0.0516905707687601	0.0516905707687601	-105.043363	39.7783777	-105.0439678	39.7783702
-11077	5580	8110	0.0497706020063474	0.0497706020063474	-105.0439678	39.7783702	-105.0445502	39.778373
-11078	8110	8111	0.0487450776836639	0.0487450776836639	-105.0445502	39.778373	-105.0451206	39.7783757
-11079	8111	8112	0.694365013204936	0.694365013204936	-105.0451206	39.7783757	-105.053246	39.7783797
-11080	1262	4539	0.0997555409236608	0.0997555409236608	-105.0204874	39.7784064	-105.0216547	39.778413
-11081	4539	6285	0.098678051142926	0.098678051142926	-105.0216547	39.778413	-105.0228094	39.7784186
-11083	2717	8113	0.100251109237605	0.100251109237605	-105.0239636	39.7784327	-105.0251365	39.7784506
-11085	8114	8115	0.096187670432143	0.096187670432143	-104.9982189	39.7783526	-104.9993433	39.7783922
-11086	8115	5626	0.201348891867615	0.201348891867615	-104.9993433	39.7783922	-105.0016991	39.7783602
-11088	2507	8116	0.0493483893872719	0.0493483893872719	-105.0105528	39.7777919	-105.0111288	39.7777603
-11089	8116	1238	0.100702597753866	0.100702597753866	-105.0111288	39.7777603	-105.0123072	39.7777623
-11090	1238	4792	0.032813432065695	0.032813432065695	-105.0123072	39.7777623	-105.0126909	39.7777735
-11091	4792	4812	0.0677278405661894	0.0677278405661894	-105.0126909	39.7777735	-105.0134831	39.7777557
-11092	4812	2152	0.0672921980026174	0.0672921980026174	-105.0134831	39.7777557	-105.0142702	39.7777735
-11093	2152	2179	0.0344341477791983	0.0344341477791983	-105.0142702	39.7777735	-105.0146727	39.777759
-11094	2179	6304	0.100339028034619	0.100339028034619	-105.0146727	39.777759	-105.0158468	39.7777672
-11095	6304	6426	0.101616906343387	0.101616906343387	-105.0158468	39.7777672	-105.0170359	39.7777689
-11096	6426	5344	0.101029409154815	0.101029409154815	-105.0170359	39.7777689	-105.0182175	39.7777985
-11097	5344	4640	0.0949596649493475	0.0949596649493475	-105.0182175	39.7777985	-105.0193287	39.7777995
-11098	4640	1261	0.0990622828589398	0.0990622828589398	-105.0193287	39.7777995	-105.0204874	39.7778259
-11100	3674	8117	0.125664760723522	0.125664760723522	-104.9782423	39.7475122	-104.97815	39.7486401
-11101	8117	8118	0.0959168081132613	0.0959168081132613	-104.97815	39.7486401	-104.9781487	39.7495027
-11102	8118	8119	0.126940211454871	0.126940211454871	-104.9781487	39.7495027	-104.978147	39.7506443
-11103	8119	8120	0.01117909521949	0.01117909521949	-104.978147	39.7506443	-104.9781435	39.7507448
-11104	8120	2680	0.0506435066002237	0.0506435066002237	-104.9781435	39.7507448	-104.9781521	39.7512002
-11105	2680	7576	0.0851117723335375	0.0851117723335375	-104.9781521	39.7512002	-104.9781607	39.7519656
-11106	7576	7833	0.0050110745435388	0.0050110745435388	-104.9781607	39.7519656	-104.9781265	39.7520022
-16206	5823	7210	0.206033080289906	0.206033080289906	-104.9798455	39.691158	-104.9798457	39.6930109
-11107	7833	8121	0.0770500763169566	0.0770500763169566	-104.9781265	39.7520022	-104.9781346	39.7526951
-11108	8121	8035	0.0465513466723509	0.0465513466723509	-104.9781346	39.7526951	-104.9781265	39.7531137
-11110	807	8122	0.0835494437055617	0.0835494437055617	-104.9781222	39.7532569	-104.9781363	39.7540082
-11111	8122	8123	0.0673397864842803	0.0673397864842803	-104.9781363	39.7540082	-104.9781379	39.7546138
-11112	8123	3017	0.0101257363562013	0.0101257363562013	-104.9781379	39.7546138	-104.9782228	39.7546773
-11114	8124	8125	0.0101518907891953	0.0101518907891953	-104.9790658	39.7205397	-104.9791138	39.7204562
-11115	8125	2367	0.124673068713839	0.124673068713839	-104.9791138	39.7204562	-104.9791205	39.719335
-11116	2367	8126	0.113318754907998	0.113318754907998	-104.9791205	39.719335	-104.9791209	39.7183159
-11117	8126	1826	0.2011636326138	0.2011636326138	-104.9791209	39.7183159	-104.9791466	39.7165069
-11119	8127	8128	0.150025905824831	0.150025905824831	-105.01151	39.7418472	-105.0124026	39.7430088
-11121	2887	8129	0.081938792894379	0.081938792894379	-104.9729638	39.7478589	-104.9721336	39.7482271
-11122	8129	8130	0.106964546123147	0.106964546123147	-104.9721336	39.7482271	-104.9708826	39.7482126
-11123	8130	4728	0.104978647949955	0.104978647949955	-104.9708826	39.7482126	-104.9696547	39.7482082
-11124	4728	6795	0.108689532522494	0.108689532522494	-104.9696547	39.7482082	-104.9683834	39.7482029
-11125	6795	7347	0.102216150252819	0.102216150252819	-104.9683834	39.7482029	-104.9671878	39.748204
-11126	7347	5393	0.105889579896167	0.105889579896167	-104.9671878	39.748204	-104.9659493	39.748214
-11127	5393	8131	0.054562518485416	0.054562518485416	-104.9659493	39.748214	-104.9653111	39.7482118
-11128	8131	8132	0.0481675689920574	0.0481675689920574	-104.9653111	39.7482118	-104.9647477	39.7482098
-11129	8132	3895	0.109975096473535	0.109975096473535	-104.9647477	39.7482098	-104.9634614	39.7482006
-11130	3895	1027	0.10512607647723	0.10512607647723	-104.9634614	39.7482006	-104.9622318	39.748208
-11131	1027	8133	0.0540856357592879	0.0540856357592879	-104.9622318	39.748208	-104.9615993	39.7482178
-12777	8831	8832	0.188959131880304	0.188959131880304	-104.9729154	39.7255792	-104.9729324	39.7272785
-11133	6270	8134	0.0524343047299347	0.0524343047299347	-104.960998	39.748227	-104.9603847	39.7482239
-11134	8134	8135	0.0535628703960502	0.0535628703960502	-104.9603847	39.7482239	-104.9597582	39.7482207
-11136	8136	8137	0.085310565822113	0.085310565822113	-104.9592611	39.7837879	-104.9602584	39.7837523
-11137	8137	6283	0.0924164471878071	0.0924164471878071	-104.9602584	39.7837523	-104.9613399	39.7837589
-11138	6283	8138	0.0880043396162394	0.0880043396162394	-104.9613399	39.7837589	-104.9623698	39.7837589
-11139	8138	8139	0.093883258506383	0.093883258506383	-104.9623698	39.7837589	-104.9634685	39.7837589
-11140	8139	3142	0.0916816056478044	0.0916816056478044	-104.9634685	39.7837589	-104.9645414	39.7837523
-11141	3142	5416	0.0909467644852468	0.0909467644852468	-104.9645414	39.7837523	-104.9656057	39.7837589
-11142	5416	8140	0.0909305385237858	0.0909305385237858	-104.9656057	39.7837589	-104.9666698	39.7837514
-11144	3154	4972	0.0951253779669951	0.0951253779669951	-104.981211	39.7837245	-104.980098	39.7837069
-11145	4972	8141	0.159341748119657	0.159341748119657	-104.980098	39.7837069	-104.9783643	39.7831792
-11147	8142	7088	0.0975513520982515	0.0975513520982515	-104.9858077	39.7837643	-104.9846662	39.7837774
-11148	7088	971	0.0957796137604222	0.0957796137604222	-104.9846662	39.7837774	-104.9835456	39.7837971
-11149	971	7402	0.0550171923708008	0.0550171923708008	-104.9835456	39.7837971	-104.9829018	39.7837905
-11150	7402	5289	0.0484207753056408	0.0484207753056408	-104.9829018	39.7837905	-104.9823354	39.7837773
-11152	3320	8143	0.077853024278325	0.077853024278325	-104.9569981	39.7837383	-104.956087	39.7837391
-11153	8143	5756	0.0805728425443714	0.0805728425443714	-104.956087	39.7837391	-104.9551441	39.7837449
-11154	5756	7328	0.0873058149168626	0.0873058149168626	-104.9551441	39.7837449	-104.9541227	39.7837251
-11155	7328	2087	0.0932446680916279	0.0932446680916279	-104.9541227	39.7837251	-104.9530315	39.7837193
-12803	4082	3763	0.178907695562899	0.178907695562899	-105.0063995	39.7838419	-105.0064169	39.7854508
-11158	4115	4117	0.0440125760632801	0.0440125760632801	-104.9513234	39.7837391	-104.9508084	39.7837325
-11159	4117	6504	0.0374084190760855	0.0374084190760855	-104.9508084	39.7837325	-104.9503707	39.7837259
-11160	6504	6677	0.044394894025319	0.044394894025319	-104.9503707	39.7837259	-104.9498557	39.7837786
-11161	6677	8029	0.0937961823239111	0.0937961823239111	-104.9498557	39.7837786	-104.9487583	39.7837977
-11162	8029	8144	0.0511329046048641	0.0511329046048641	-104.9487583	39.7837977	-104.9481599	39.7837974
-11163	8144	8145	0.0135266374241744	0.0135266374241744	-104.9481599	39.7837974	-104.9480016	39.7837973
-11165	4223	1001	0.0531658581374023	0.0531658581374023	-104.986953	39.7839026	-104.9875739	39.7838718
-11167	4374	2855	0.170827518580558	0.170827518580558	-105.0014998	39.7007322	-105.0034418	39.7003749
-11169	8146	4313	0.17183605887504	0.17183605887504	-105.0324321	39.7013349	-105.0344405	39.7013547
-11171	5444	7921	0.207916650376417	0.207916650376417	-105.0250665	39.701332	-105.0274968	39.7013283
-11172	7921	4408	0.197533961318481	0.197533961318481	-105.0274968	39.7013283	-105.0298056	39.7013481
-11174	8147	644	0.13870723980062	0.13870723980062	-104.9389466	39.7401205	-104.9389365	39.7413679
-11175	644	7273	0.132830481063153	0.132830481063153	-104.9389365	39.7413679	-104.9389193	39.7425624
-11176	7273	1992	0.0923486278054484	0.0923486278054484	-104.9389193	39.7425624	-104.9389249	39.7433929
-11177	1992	1976	0.0346172149199892	0.0346172149199892	-104.9389249	39.7433929	-104.9389295	39.7437042
-11178	1976	4591	0.135026001443702	0.135026001443702	-104.9389295	39.7437042	-104.9389209	39.7449185
-11179	4591	6478	0.132622992610531	0.132622992610531	-104.9389209	39.7449185	-104.9389155	39.7461112
-12836	8855	8856	0.0453127355156614	0.0453127355156614	-104.9892657	39.7540916	-104.988892	39.7538026
-11180	6478	2462	0.14279254357733	0.14279254357733	-104.9389155	39.7461112	-104.9388988	39.7473953
-11182	8148	8149	0.201096301426274	0.201096301426274	-104.9394475	39.7256125	-104.9394514	39.727421
-11183	8149	8150	0.201154462707023	0.201154462707023	-104.9394514	39.727421	-104.9394389	39.72923
-11185	2461	5905	0.204782750962282	0.204782750962282	-104.9394874	39.7473999	-104.9394475	39.7492413
-11186	5905	8151	0.200573430726899	0.200573430726899	-104.9394475	39.7492413	-104.9394486	39.7510451
-11187	8151	790	0.199941729347635	0.199941729347635	-104.9394486	39.7510451	-104.9394378	39.7528432
-11188	790	3583	0.202642621733606	0.202642621733606	-104.9394378	39.7528432	-104.9394304	39.7546656
-11189	3583	4354	0.202475015345548	0.202475015345548	-104.9394304	39.7546656	-104.9394273	39.7564865
-11190	4354	8152	0.200309115545572	0.200309115545572	-104.9394273	39.7564865	-104.9393999	39.7582878
-11191	8152	3057	0.206933046688651	0.206933046688651	-104.9393999	39.7582878	-104.9394429	39.7601485
-11192	3057	8153	0.186611026973769	0.186611026973769	-104.9394429	39.7601485	-104.9394065	39.7618265
-11194	1060	8154	0.173008298211734	0.173008298211734	-104.9395373	39.7162311	-104.939535	39.717787
-11195	8154	8155	0.177900871903465	0.177900871903465	-104.939535	39.717787	-104.9395373	39.7193869
-11196	8155	8156	0.167407375878646	0.167407375878646	-104.9395373	39.7193869	-104.9395248	39.7208924
-11197	8156	4775	0.251673348312152	0.251673348312152	-104.9395248	39.7208924	-104.9393188	39.7231502
-11198	4775	6553	0.132857734263153	0.132857734263153	-104.9393188	39.7231502	-104.9393102	39.724345
-11199	6553	8157	0.106438324963657	0.106438324963657	-104.9393102	39.724345	-104.9393188	39.7253022
-11201	2232	5133	0.19052148019247	0.19052148019247	-104.9395024	39.7328547	-104.9395046	39.7345681
-11202	5133	4902	0.0151263568070176	0.0151263568070176	-104.9395046	39.7345681	-104.9394839	39.7347032
-11203	4902	6619	0.197484990473566	0.197484990473566	-104.9394839	39.7347032	-104.9394962	39.7364792
-11205	8158	8159	0.20585122765193	0.20585122765193	-104.9394819	39.7382793	-104.939514	39.7401304
-11207	8160	8161	0.016887203978	0.016887203978	-104.9408036	39.7114181	-104.9406062	39.7114203
-11221	106	61	0.00533283632570931	0.00533283632570931	-104.931654	39.700221	-104.931714	39.700208
-11222	61	65	0.207145778882675	0.207145778882675	-104.931714	39.700208	-104.934135	39.700181
-11224	103	8170	0.0169041191858478	0.0169041191858478	-104.940786	39.7001905	-104.9405886	39.7001839
-11225	8170	8171	0.361108877807587	0.361108877807587	-104.9405886	39.7001839	-104.936368	39.700221
-11226	8171	8172	0.190446564346409	0.190446564346409	-104.936368	39.700221	-104.934142	39.700234
-11228	8173	8174	0.0754029121625499	0.0754029121625499	-104.940655	39.7066792	-104.9406492	39.7073573
-11229	8174	8175	0.417052793540933	0.417052793540933	-104.9406492	39.7073573	-104.9406062	39.7111078
-11231	8176	8177	0.0299391686417842	0.0299391686417842	-104.9365311	39.7051466	-104.9362135	39.7050335
-11232	8177	8178	0.202215537578589	0.202215537578589	-104.9362135	39.7050335	-104.9340806	39.7042496
-11233	8178	8179	0.11808571362223	0.11808571362223	-104.9340806	39.7042496	-104.9328366	39.7037894
-11234	8179	8163	0.126818785158071	0.126818785158071	-104.9328366	39.7037894	-104.9314767	39.7033354
-11236	4228	8181	0.209470643186114	0.209470643186114	-104.933969	39.696598	-104.933897	39.698481
-11269	4227	8200	0.197818013323833	0.197818013323833	-104.936211	39.696598	-104.936222	39.694819
-11237	8181	65	0.190124873120192	0.190124873120192	-104.933897	39.698481	-104.934135	39.700181
-11238	65	8172	0.00592368117466438	0.00592368117466438	-104.934135	39.700181	-104.934142	39.700234
-11239	8172	8178	0.446545243407564	0.446545243407564	-104.934142	39.700234	-104.9340806	39.7042496
-12886	8876	655	0.00596005420121878	0.00596005420121878	-104.9810837	39.7416131	-104.9810836	39.7416667
-11242	8183	8184	0.228538005170478	0.228538005170478	-104.9405972	39.7047205	-104.9381461	39.7039031
-11245	8162	8186	0.154667884886688	0.154667884886688	-104.936452	39.711255	-104.9351303	39.7103058
-11246	8186	8187	0.175562487769928	0.175562487769928	-104.9351303	39.7103058	-104.9332506	39.7096719
-11249	3633	8188	0.0150923041998694	0.0150923041998694	-104.9408419	39.7060696	-104.9406663	39.7060565
-11250	8188	8189	0.270579217097142	0.270579217097142	-104.9406663	39.7060565	-104.9375812	39.7055199
-11251	8189	8176	0.0989590805052705	0.0989590805052705	-104.9375812	39.7055199	-104.9365311	39.7051466
-11253	8163	3643	0.149826975112258	0.149826975112258	-104.9314767	39.7033354	-104.9299023	39.7027452
-11255	8190	1804	0.201671276037755	0.201671276037755	-104.937302	39.696603	-104.9373232	39.6947894
-11257	8191	8192	0.0154162495075233	0.0154162495075233	-104.940786	39.7020593	-104.9406058	39.7020593
-11258	8192	8193	0.181517364616001	0.181517364616001	-104.9406058	39.7020593	-104.9384841	39.7020481
-11259	8193	8194	0.180264399151985	0.180264399151985	-104.9384841	39.7020481	-104.936377	39.702045
-11261	8181	3550	0.192378625445026	0.192378625445026	-104.933897	39.698481	-104.931651	39.698398
-11264	8186	8197	0.16597516800592	0.16597516800592	-104.9351303	39.7103058	-104.936366	39.709155
-11265	8197	8198	0.19583924016197	0.19583924016197	-104.936366	39.709155	-104.9363539	39.7073938
-11267	8199	8197	0.123986592502342	0.123986592502342	-104.936354	39.71027	-104.936366	39.709155
-11271	8194	8171	0.202821007714315	0.202821007714315	-104.936377	39.702045	-104.936368	39.700221
-11272	8171	8195	0.195495736534207	0.195495736534207	-104.936368	39.700221	-104.9363825	39.6984629
-11273	8195	8201	0.207035429354564	0.207035429354564	-104.9363825	39.6984629	-104.936392	39.696601
-11275	8202	8174	0.0167300114490718	0.0167300114490718	-104.9408446	39.707351	-104.9406492	39.7073573
-11277	8198	8167	0.130702597640292	0.130702597640292	-104.9363539	39.7073938	-104.9348261	39.707407
-11278	8167	8203	0.122618976220882	0.122618976220882	-104.9348261	39.707407	-104.9333927	39.707407
-11279	8203	8204	0.327046093817032	0.327046093817032	-104.9333927	39.707407	-104.92957	39.707451
-11280	4228	4229	0.198835732908948	0.198835732908948	-104.933969	39.696598	-104.931645	39.696598
-11281	4229	8205	0.301334691508365	0.301334691508365	-104.931645	39.696598	-104.928123	39.696591
-11282	8206	8190	0.113799565910968	0.113799565910968	-104.9386317	39.6965781	-104.937302	39.696603
-11284	8201	4227	0.0154895076655846	0.0154895076655846	-104.936392	39.696601	-104.936211	39.696598
-11286	8207	8200	0.0930040479254132	0.0930040479254132	-104.937309	39.694816	-104.936222	39.694819
-11288	8193	8184	0.208283527691618	0.208283527691618	-104.9384841	39.7020481	-104.9381461	39.7039031
-11316	5155	2238	0.0837223321108041	0.0837223321108041	-104.9292584	39.7320999	-104.9292252	39.7328524
-11289	8184	8189	0.18616179415052	0.18616179415052	-104.9381461	39.7039031	-104.9375812	39.7055199
-11291	3257	8208	0.321455747501831	0.321455747501831	-104.9302161	39.7037522	-104.9336074	39.7049972
-11293	443	8209	0.110751336507506	0.110751336507506	-104.932837	39.701282	-104.932831	39.700286
-11294	392	8179	0.178734728363983	0.178734728363983	-104.932837	39.702182	-104.9328366	39.7037894
-11296	8162	6291	0.216060929512084	0.216060929512084	-104.936452	39.711255	-104.9339286	39.7111692
-11297	6291	7342	0.196043159951137	0.196043159951137	-104.9339286	39.7111692	-104.9316369	39.711189
-11645	8348	6433	0.104796073662296	0.104796073662296	-105.0190347	39.7552995	-105.0178088	39.7553019
-11299	7342	5274	0.233799434282417	0.233799434282417	-104.9316369	39.711189	-104.93153	39.709088
-11300	61	3550	0.201334976523304	0.201334976523304	-104.931714	39.700208	-104.931651	39.698398
-11301	3550	4229	0.200151526253302	0.200151526253302	-104.931651	39.698398	-104.931645	39.696598
-11303	5279	3162	0.0990447395902117	0.0990447395902117	-104.9826249	39.7183267	-104.9814669	39.7183289
-11304	3162	4979	0.101293558978732	0.101293558978732	-104.9814669	39.7183289	-104.9802827	39.7183173
-11305	4979	8126	0.0993695918525221	0.0993695918525221	-104.9802827	39.7183173	-104.9791209	39.7183159
-11306	8126	4335	0.0910331896522206	0.0910331896522206	-104.9791209	39.7183159	-104.9780566	39.7183225
-11307	4335	8210	0.0476841899874069	0.0476841899874069	-104.9780566	39.7183225	-104.9774991	39.7183251
-11308	8210	5040	0.0521232799197054	0.0521232799197054	-104.9774991	39.7183251	-104.9768897	39.7183279
-11309	5040	8005	0.0976580173278249	0.0976580173278249	-104.9768897	39.7183279	-104.9757482	39.7183081
-11310	8005	4307	0.0466427658725356	0.0466427658725356	-104.9757482	39.7183081	-104.975203	39.7182988
-11311	4307	995	0.052631404385892	0.052631404385892	-104.975203	39.7182988	-104.9745878	39.7182883
-11313	8211	5951	0.199050744316133	0.199050744316133	-104.9292411	39.7292602	-104.9292349	39.7310503
-11314	5951	5143	0.0913688712241713	0.0913688712241713	-104.9292349	39.7310503	-104.9292349	39.731872
-11315	5143	5155	0.025420878561629	0.025420878561629	-104.9292349	39.731872	-104.9292584	39.7320999
-11317	2238	4911	0.203010994943857	0.203010994943857	-104.9292252	39.7328524	-104.9291882	39.7346779
-11318	4911	6611	0.201886473833407	0.201886473833407	-104.9291882	39.7346779	-104.9291809	39.7364935
-11319	6611	8212	0.197101479655197	0.197101479655197	-104.9291809	39.7364935	-104.9292134	39.7382659
-11320	8212	8213	0.206955997470903	0.206955997470903	-104.9292134	39.7382659	-104.9292134	39.7401271
-11323	5950	5142	0.147533492116586	0.147533492116586	-104.9304356	39.7310602	-104.930434	39.732387
-11326	2237	4910	0.20422309503448	0.20422309503448	-104.9303867	39.7328502	-104.9303749	39.7346868
-11327	4910	6612	0.200274596012582	0.200274596012582	-104.9303749	39.7346868	-104.9303837	39.7364879
-11328	6612	8215	0.196974435405611	0.196974435405611	-104.9303837	39.7364879	-104.9303979	39.7382593
-11329	8215	8216	0.208072957327714	0.208072957327714	-104.9303979	39.7382593	-104.9303676	39.7401304
-11331	7959	8217	0.0106613346433968	0.0106613346433968	-104.9912259	39.7297319	-104.9911152	39.729776
-11337	289	8219	0.0101386145536838	0.0101386145536838	-105.0056941	39.7615954	-105.0056833	39.7616862
-11338	8219	4483	0.0263974796072716	0.0263974796072716	-105.0056833	39.7616862	-105.0055781	39.7619094
-11340	8220	289	0.116841869555958	0.116841869555958	-105.006312	39.7606581	-105.0056941	39.7615954
-11483	8221	8222	0.0466544327533727	0.0466544327533727	-104.9936301	39.74071	-104.9940163	39.7410064
-11342	8223	7906	0.0355112223964134	0.0355112223964134	-105.0064841	39.7620611	-105.0068985	39.7620384
-11343	7906	4187	0.0959478466054884	0.0959478466054884	-105.0068985	39.7620384	-105.008021	39.7620353
-11344	4187	8224	0.108554994700497	0.108554994700497	-105.008021	39.7620353	-105.009291	39.7620353
-11345	8224	2512	0.0267513344361619	0.0267513344361619	-105.009291	39.7620353	-105.0096039	39.7620403
-11346	2512	6726	0.134329958691173	0.134329958691173	-105.0096039	39.7620403	-105.0111753	39.7620239
-11347	6726	8226	0.0541066682112551	0.0541066682112551	-105.0111753	39.7620239	-105.0118083	39.7620229
-11348	8226	1754	0.0582360854290831	0.0582360854290831	-105.0118083	39.7620229	-105.0124896	39.7620198
-11352	8227	8228	0.0477813036978224	0.0477813036978224	-105.0138041	39.7620198	-105.0143631	39.7620198
-11353	8228	2164	0.0100092856224142	0.0100092856224142	-105.0143631	39.7620198	-105.0144802	39.7620198
-11354	2164	8229	0.117341992338054	0.117341992338054	-105.0144802	39.7620198	-105.015853	39.7620198
-11355	8229	6417	0.132790064578642	0.132790064578642	-105.015853	39.7620198	-105.0174065	39.7620125
-11356	6417	6925	0.066680142142332	0.066680142142332	-105.0174065	39.7620125	-105.0181866	39.7620126
-11357	6925	4623	0.0658013116163711	0.0658013116163711	-105.0181866	39.7620126	-105.0189564	39.7620167
-11358	4623	1242	0.132924383309181	0.132924383309181	-105.0189564	39.7620167	-105.0205115	39.7620158
-11359	1242	8230	0.117419950970456	0.117419950970456	-105.0205115	39.7620158	-105.0218852	39.7620114
-11360	8230	2709	0.0877593926636965	0.0877593926636965	-105.0218852	39.7620114	-105.0229119	39.7620081
-11361	2709	2723	0.0586886121966142	0.0586886121966142	-105.0229119	39.7620081	-105.0235985	39.7620059
-11362	2723	8231	0.126334352112189	0.126334352112189	-105.0235985	39.7620059	-105.0250765	39.7620038
-11363	8231	8232	0.00800071585537006	0.00800071585537006	-105.0250765	39.7620038	-105.0251701	39.7620042
-11364	8232	8233	0.00985605768408299	0.00985605768408299	-105.0251701	39.7620042	-105.0252854	39.7620032
-11368	8223	8219	0.0801446034429079	0.0801446034429079	-105.0064841	39.7620611	-105.0056833	39.7616862
-11374	8234	8235	0.161648892640997	0.161648892640997	-105.001293	39.7577963	-105.002653	39.7588064
-11375	8235	8236	0.12616333160407	0.12616333160407	-105.002653	39.7588064	-105.0034855	39.7597433
-11379	4843	910	0.143586236704503	0.143586236704503	-104.9986941	39.7558019	-104.9998754	39.7567199
-16194	9844	7725	1.4119245996206	1.4119245996206	-104.9822489	39.6767118	-104.9821706	39.6894094
-11388	2064	8243	0.0180732464676321	0.0180732464676321	-104.953025	39.7800093	-104.952864	39.7801147
-11389	8243	8244	0.307196973753055	0.307196973753055	-104.952864	39.7801147	-104.9498727	39.781647
-11392	8246	3316	0.0456634204130967	0.0456634204130967	-104.9607953	39.7804322	-104.960267	39.7804939
-11394	6201	6945	0.172713645832468	0.172713645832468	-104.9623939	39.7803745	-104.9624103	39.7819277
-11395	6945	8138	0.203649557134895	0.203649557134895	-104.9624103	39.7819277	-104.9623698	39.7837589
-11396	8138	2880	0.164233861501064	0.164233861501064	-104.9623698	39.7837589	-104.962414	39.7852355
-11398	6200	6944	0.169916988893137	0.169916988893137	-104.9634695	39.7803971	-104.9634685	39.7819252
-11399	6944	8139	0.203898136987997	0.203898136987997	-104.9634685	39.7819252	-104.9634685	39.7837589
-11400	8139	2879	0.160611633174386	0.160611633174386	-104.9634685	39.7837589	-104.9634771	39.7852033
-11401	2879	6408	0.0322091251783491	0.0322091251783491	-104.9634771	39.7852033	-104.9634692	39.7854929
-11402	6408	6412	0.266159968303504	0.266159968303504	-104.9634692	39.7854929	-104.963535	39.787886
-11403	6412	8247	0.0505479778201866	0.0505479778201866	-104.963535	39.787886	-104.963496	39.7883396
-11407	6190	6948	0.200111149085838	0.200111149085838	-104.9857782	39.7801773	-104.9858077	39.7819768
-11408	6948	8142	0.198760931377031	0.198760931377031	-104.9858077	39.7819768	-104.9858077	39.7837643
-11409	8142	2864	0.201908008890848	0.201908008890848	-104.9858077	39.7837643	-104.9858115	39.7855801
-11412	8249	8067	0.737441419701283	0.737441419701283	-105.0527654	39.7836619	-105.0441378	39.7835013
-11424	8079	8250	0.738983904805809	0.738983904805809	-105.0441387	39.7836373	-105.0527851	39.7837728
-11431	412	415	0.636538521199656	0.636538521199656	-105.0287256	39.7838921	-105.0212787	39.7837465
-18912	10390	10391	0.0580503615423655	0.0580503615423655	-105.0126243	39.749739	-105.0127316	39.7492235
-11453	8262	8263	0.292162593230546	0.292162593230546	-104.9882873	39.7806922	-104.9903301	39.7785853
-11468	781	8271	0.782578824666181	0.782578824666181	-104.9314271	39.7799974	-104.9225249	39.7783463
-11597	8330	8331	0.0435245851176098	0.0435245851176098	-105.0382057	39.7621211	-105.0387149	39.7621204
-11469	8272	8270	0.782084992370784	0.782084992370784	-104.9225195	39.7784772	-104.9314164	39.7801263
-11471	1610	1244	0.0543175525667992	0.0543175525667992	-104.9973103	39.7547013	-104.9968584	39.7543579
-11472	1244	8273	0.0533400242428221	0.0533400242428221	-104.9968584	39.7543579	-104.9964185	39.7540177
-11473	8273	8274	0.0526029519682926	0.0526029519682926	-104.9964185	39.7540177	-104.9959856	39.7536815
-11474	8274	8275	0.0534350213865012	0.0534350213865012	-104.9959856	39.7536815	-104.9955427	39.7533424
-11476	8276	1610	0.0663295545530221	0.0663295545530221	-104.9977757	39.7551786	-104.9973103	39.7547013
-11478	1610	8277	0.135789656985465	0.135789656985465	-104.9973103	39.7547013	-104.9961783	39.755558
-11480	7861	8278	0.0143942343868779	0.0143942343868779	-104.992927	39.7400066	-104.9929317	39.740136
-11481	8278	7581	0.0343415060903181	0.0343415060903181	-104.9929317	39.740136	-104.993184	39.7403763
-11482	7581	8221	0.0532138886249367	0.0532138886249367	-104.993184	39.7403763	-104.9936301	39.74071
-11484	8222	5964	0.00591714471910066	0.00591714471910066	-104.9940163	39.7410064	-104.9940638	39.7410451
-11485	5964	8279	0.00703516905841087	0.00703516905841087	-104.9940638	39.7410451	-104.9941219	39.7410899
-11486	8279	3001	0.0966235655424771	0.0966235655424771	-104.9941219	39.7410899	-104.99492	39.7417051
-11488	8275	7561	0.103690392766705	0.103690392766705	-104.9955427	39.7533424	-104.9946844	39.7526835
-11489	7561	8280	0.0558620890554655	0.0558620890554655	-104.9946844	39.7526835	-104.994215	39.752334
-11490	8280	6185	0.0505017539528047	0.0505017539528047	-104.994215	39.752334	-104.993798	39.7520123
-11493	8282	8283	0.101387037651418	0.101387037651418	-104.9928753	39.7513081	-104.9920377	39.7506626
-11494	8283	8284	0.102270654549379	0.102270654549379	-104.9920377	39.7506626	-104.9912016	39.7500048
-11495	8284	8285	0.10797805598011	0.10797805598011	-104.9912016	39.7500048	-104.9903025	39.7493228
-11496	8285	8286	0.106400672091098	0.106400672091098	-104.9903025	39.7493228	-104.9894331	39.7486381
-11497	8286	4392	0.102247824152268	0.102247824152268	-104.9894331	39.7486381	-104.9886052	39.7479745
-11498	4392	8287	0.0166274126542335	0.0166274126542335	-104.9886052	39.7479745	-104.9884675	39.7478689
-11499	8287	8288	0.0799445865529155	0.0799445865529155	-104.9884675	39.7478689	-104.9878071	39.7473599
-11500	8288	3008	0.023689428581565	0.023689428581565	-104.9878071	39.7473599	-104.9876315	39.7471951
-11501	3008	8289	0.0297886059757376	0.0297886059757376	-104.9876315	39.7471951	-104.9873968	39.7469971
-11505	8290	8291	0.051999610902965	0.051999610902965	-104.9908493	39.7516097	-104.9912817	39.7519386
-11506	8291	8292	0.0471972516257623	0.0471972516257623	-104.9912817	39.7519386	-104.9916742	39.7522371
-11507	8292	8293	0.00657484491051097	0.00657484491051097	-104.9916742	39.7522371	-104.9917306	39.7522773
-11508	8293	6184	0.103933630763566	0.103933630763566	-104.9917306	39.7522773	-104.9925969	39.7529331
-11509	6184	7562	0.106067817024884	0.106067817024884	-104.9925969	39.7529331	-104.9934281	39.7536413
-11510	7562	8294	0.105991654619724	0.105991654619724	-104.9934281	39.7536413	-104.9942907	39.754326
-11512	8295	8296	0.0523765388441753	0.0523765388441753	-104.9947185	39.754659	-104.9951571	39.7549879
-11522	8297	8298	0.429589849820924	0.429589849820924	-105.0048527	39.7552746	-105.0028555	39.7588198
-11537	6093	8302	0.0171793049902436	0.0171793049902436	-105.0268612	39.760858	-105.0266827	39.760929
-11539	8303	8304	0.00530856583912826	0.00530856583912826	-105.0265595	39.7609475	-105.026526	39.7609877
-11541	2195	8305	0.128463648918522	0.128463648918522	-105.0025939	39.7533024	-105.0036573	39.7541187
-11543	8306	8307	0.0111673306658244	0.0111673306658244	-105.0042327	39.7545718	-105.0043265	39.7546417
-11545	8308	8306	0.0470759818626725	0.0470759818626725	-105.0038599	39.7542602	-105.0042327	39.7545718
-11547	8309	8310	0.0336302381688336	0.0336302381688336	-105.0254224	39.7404725	-105.0251999	39.7407219
-11549	8311	8312	0.0219555493879181	0.0219555493879181	-105.0031123	39.7485003	-105.0033568	39.7484399
-11550	8312	8313	0.036241706253738	0.036241706253738	-105.0033568	39.7484399	-105.00375	39.7483181
-11598	8331	7782	0.0493369824555625	0.0493369824555625	-105.0387149	39.7621204	-105.0392921	39.7621196
-11551	8313	8314	0.0512913124797426	0.0512913124797426	-105.00375	39.7483181	-105.0042918	39.74812
-11552	8314	8315	0.107868186928524	0.107868186928524	-105.0042918	39.74812	-105.0053848	39.7476354
-11553	8315	8316	0.223470506469832	0.223470506469832	-105.0053848	39.7476354	-105.007603	39.7465723
-11554	8316	8317	0.211788929267968	0.211788929267968	-105.007603	39.7465723	-105.0094519	39.7453047
-11555	8317	6963	0.0143636308232266	0.0143636308232266	-105.0094519	39.7453047	-105.0095744	39.7452163
-16197	7207	1788	0.198027086450295	0.198027086450295	-104.9821537	39.693012	-104.9821522	39.6947929
-11556	6963	2151	0.0672032541987901	0.0672032541987901	-105.0095744	39.7452163	-105.0100859	39.7447574
-11557	2151	8318	0.127422890827039	0.127422890827039	-105.0100859	39.7447574	-105.0111676	39.7439691
-11563	8321	5670	0.0510922996821663	0.0510922996821663	-105.0304907	39.7580283	-105.0310884	39.7580274
-11564	5670	8319	0.0512128921942442	0.0512128921942442	-105.0310884	39.7580274	-105.0316875	39.7580245
-11565	8319	7031	0.0489988317743493	0.0489988317743493	-105.0316875	39.7580245	-105.0322607	39.7580218
-13192	2925	5307	0.0991225747078309	0.0991225747078309	-105.0215487	39.7075025	-105.0227074	39.7075091
-17794	8402	10178	0.0874671474005437	0.0874671474005437	-104.9873999	39.7564065	-104.9873945	39.7556199
-11583	8323	8324	0.0415122975666244	0.0415122975666244	-105.0248659	39.7403859	-105.0252084	39.7401213
-11585	8325	8326	0.0105737020216599	0.0105737020216599	-105.0288943	39.7621125	-105.029018	39.7621132
-11586	8326	8327	0.0170186899048993	0.0170186899048993	-105.029018	39.7621132	-105.0292171	39.7621142
-11587	8327	4030	0.059373245074661	0.059373245074661	-105.0292171	39.7621142	-105.0299117	39.7621179
-11588	4030	8328	0.00887102858910589	0.00887102858910589	-105.0299117	39.7621179	-105.0300154	39.7621147
-11589	8328	7033	0.192077028988682	0.192077028988682	-105.0300154	39.7621147	-105.0322624	39.7621339
-11590	7033	3414	0.20009224997208	0.20009224997208	-105.0322624	39.7621339	-105.0346033	39.7621393
-11591	3414	7634	0.0490496792565584	0.0490496792565584	-105.0346033	39.7621393	-105.0351771	39.7621341
-11592	7634	5699	0.0501609282125079	0.0501609282125079	-105.0351771	39.7621341	-105.0357639	39.7621288
-11593	5699	8329	0.0491062363102631	0.0491062363102631	-105.0357639	39.7621288	-105.0363384	39.7621278
-11594	8329	7426	0.0512345906571307	0.0512345906571307	-105.0363384	39.7621278	-105.0369378	39.7621268
-11595	7426	7167	0.100906650593457	0.100906650593457	-105.0369378	39.7621268	-105.0381183	39.7621212
-11596	7167	8330	0.0074706340310152	0.0074706340310152	-105.0381183	39.7621212	-105.0382057	39.7621211
-11601	1125	8333	0.0515421912286004	0.0515421912286004	-105.0404588	39.7621199	-105.0410618	39.76212
-11602	8333	7499	0.0491232128122514	0.0491232128122514	-105.0410618	39.76212	-105.0416365	39.7621201
-11603	7499	6382	0.0528674106807856	0.0528674106807856	-105.0416365	39.7621201	-105.042255	39.7621184
-11604	6382	3844	0.0491757077428548	0.0491757077428548	-105.042255	39.7621184	-105.0428303	39.7621153
-11605	3844	8336	0.0505763419832581	0.0505763419832581	-105.0428303	39.7621153	-105.043422	39.7621158
-11606	8336	5560	0.0511234189065501	0.0511234189065501	-105.043422	39.7621158	-105.0440201	39.7621151
-11607	5560	7536	0.078259792036463	0.078259792036463	-105.0440201	39.7621151	-105.0449356	39.7621062
-17795	10178	10179	0.00714983889336217	0.00714983889336217	-104.9873945	39.7556199	-104.9873946	39.7555556
-11608	7536	8337	0.710353127144862	0.710353127144862	-105.0449356	39.7621062	-105.0532461	39.7620897
-11615	8339	8340	0.0545607270452329	0.0545607270452329	-105.0252854	39.7572536	-105.0259235	39.7572649
-11616	8340	6778	0.0500886204125654	0.0500886204125654	-105.0259235	39.7572649	-105.0265093	39.7572752
-11617	6778	1543	0.044749974690185	0.044749974690185	-105.0265093	39.7572752	-105.0270328	39.7572752
-11618	1543	7913	0.0484257128218018	0.0484257128218018	-105.0270328	39.7572752	-105.0275993	39.7572752
-11619	7913	1232	0.0498960080732329	0.0498960080732329	-105.0275993	39.7572752	-105.028183	39.7572752
-11620	1232	6138	0.0513577550981739	0.0513577550981739	-105.028183	39.7572752	-105.0287838	39.7572752
-11621	6138	1234	0.0484184731965446	0.0484184731965446	-105.0287838	39.7572752	-105.0293502	39.757272
-11622	1234	4025	0.049897443897038	0.049897443897038	-105.0293502	39.757272	-105.0299339	39.7572686
-11624	8341	6746	0.131938356933677	0.131938356933677	-105.0252824	39.7524035	-105.0268257	39.752413
-11625	6746	6146	0.134278510793599	0.134278510793599	-105.0268257	39.752413	-105.0283964	39.7524064
-11626	6146	4020	0.131808341418281	0.131808341418281	-105.0283964	39.7524064	-105.029938	39.752386
-11627	4020	7024	0.13680573147125	0.13680573147125	-105.029938	39.752386	-105.0315379	39.752413
-11628	7024	7394	0.133543322276702	0.133543322276702	-105.0315379	39.752413	-105.0331	39.7524064
-11629	7394	3403	0.129241253411212	0.129241253411212	-105.0331	39.7524064	-105.0346118	39.7524067
-11631	4656	1278	0.11609492718799	0.11609492718799	-105.0191525	39.7524262	-105.0205102	39.7524035
-11633	4529	8342	0.13081541679387	0.13081541679387	-105.0220809	39.7524035	-105.0236111	39.7524085
-11634	8342	8343	0.131875462531589	0.131875462531589	-105.0236111	39.7524085	-105.0251537	39.7524035
-11636	1275	4561	0.135792686790169	0.135792686790169	-105.0204903	39.7500187	-105.0220781	39.7499857
-11637	4561	8344	0.129597362082905	0.129597362082905	-105.0220781	39.7499857	-105.0235939	39.7499999
-11638	8344	8345	0.132615292246902	0.132615292246902	-105.0235939	39.7499999	-105.0251451	39.7499949
-11654	8351	8352	0.00642310935412446	0.00642310935412446	-105.024297	39.7598572	-105.024257	39.7599061
-11656	8354	3585	0.00948998635035479	0.00948998635035479	-105.0236698	39.7606212	-105.0236106	39.7606934
-11658	8355	7036	0.189514043057238	0.189514043057238	-105.0300476	39.7643693	-105.0322644	39.7643359
-11661	3420	7662	0.0473953664812579	0.0473953664812579	-105.0346118	39.7639669	-105.0351663	39.7639675
-11662	7662	5701	0.051310070537927	0.051310070537927	-105.0351663	39.7639675	-105.0357666	39.7639681
-11663	5701	8356	0.0493288418218244	0.0493288418218244	-105.0357666	39.7639681	-105.0363437	39.7639643
-11664	8356	7428	0.0514646959507586	0.0514646959507586	-105.0363437	39.7639643	-105.0369458	39.7639617
-11665	7428	7170	0.101185693406291	0.101185693406291	-105.0369458	39.7639617	-105.0381296	39.7639566
-11666	7170	8357	0.0511732963069457	0.0511732963069457	-105.0381296	39.7639566	-105.0387283	39.763957
-11667	8357	7785	0.0488740378204359	0.0488740378204359	-105.0387283	39.763957	-105.0393001	39.7639573
-11669	8358	8359	0.0429199500385996	0.0429199500385996	-105.039401	39.7639563	-105.0399031	39.7639514
-11670	8359	1126	0.0542934514543922	0.0542934514543922	-105.0399031	39.7639514	-105.0405383	39.7639496
-11671	1126	8361	0.0465752610792189	0.0465752610792189	-105.0405383	39.7639496	-105.0410832	39.7639477
-11672	8361	7500	0.0458657856618734	0.0458657856618734	-105.0410832	39.7639477	-105.0416198	39.7639459
-11673	7500	6383	0.0540969092476656	0.0540969092476656	-105.0416198	39.7639459	-105.0422527	39.763944
-11674	6383	3845	0.0488658545954006	0.0488658545954006	-105.0422527	39.763944	-105.0428244	39.7639423
-11675	3845	8362	0.0512974137325796	0.0512974137325796	-105.0428244	39.7639423	-105.0434239	39.7639208
-11676	8362	5562	0.0492074321979192	0.0492074321979192	-105.0434239	39.7639208	-105.0439996	39.7639213
-11677	5562	8363	0.0405073414501016	0.0405073414501016	-105.0439996	39.7639213	-105.0444735	39.7639185
-11678	8363	7537	0.0387636388049137	0.0387636388049137	-105.0444735	39.7639185	-105.044927	39.7639158
-11679	7537	8364	0.709659016245144	0.709659016245144	-105.044927	39.7639158	-105.0532296	39.7639
-11680	533	532	0.177767664549368	0.177767664549368	-105.0123604	39.7549991	-105.010541	39.7542249
-11681	532	8365	0.019932032746647	0.019932032746647	-105.010541	39.7542249	-105.0103456	39.7541271
-11683	8366	2195	0.0764354088651933	0.0764354088651933	-105.0020448	39.7527599	-105.0025939	39.7533024
-11712	3383	8367	0.106809468593159	0.106809468593159	-105.0346003	39.7427332	-105.035848	39.7426857
-11713	8367	8368	0.0971987897456675	0.0971987897456675	-105.035848	39.7426857	-105.0369827	39.7427391
-11714	8368	8369	0.0991386674985246	0.0991386674985246	-105.0369827	39.7427391	-105.0381422	39.7427432
-11717	5295	6973	0.135215470337054	0.135215470337054	-105.0357845	39.7439376	-105.035775	39.7451536
-11718	6973	8371	0.00923487504976077	0.00923487504976077	-105.035775	39.7451536	-105.0357615	39.745236
-11719	8371	8372	0.0216052571390285	0.0216052571390285	-105.0357615	39.745236	-105.0357622	39.7454303
-11720	8372	16	0.105179593848414	0.105179593848414	-105.0357622	39.7454303	-105.0357652	39.7463762
-11721	16	6385	0.131720726068438	0.131720726068438	-105.0357652	39.7463762	-105.0357845	39.7475607
-11722	6385	8373	0.136425162652677	0.136425162652677	-105.0357845	39.7475607	-105.0357825	39.7487876
-11723	8373	8374	0.133357418298716	0.133357418298716	-105.0357825	39.7487876	-105.0357895	39.7499869
-11725	8375	5538	0.102551146645578	0.102551146645578	-105.0357821	39.7511876	-105.0357963	39.7521098
-11726	5538	2406	0.101276420369131	0.101276420369131	-105.0357963	39.7521098	-105.0357948	39.7530206
-11727	2406	4291	0.0994536245434588	0.0994536245434588	-105.0357948	39.7530206	-105.0357997	39.753915
-11728	4291	8376	0.0498495835403536	0.0498495835403536	-105.0357997	39.753915	-105.0358032	39.7543633
-11729	8376	8377	0.0555205772000376	0.0555205772000376	-105.0358032	39.7543633	-105.035807	39.7548626
-11730	8377	7717	0.202770146499174	0.202770146499174	-105.035807	39.7548626	-105.035838	39.756686
-11731	7717	2980	0.203558742671124	0.203558742671124	-105.035838	39.756686	-105.0358208	39.7585166
-11733	6381	7626	0.0677965571067337	0.0677965571067337	-105.0334738	39.7475695	-105.0334588	39.7481791
-11734	7626	8378	0.0657902652889389	0.0657902652889389	-105.0334588	39.7481791	-105.0334703	39.7487707
-11736	3813	8379	0.0683672879873519	0.0683672879873519	-105.0403593	39.7474155	-105.0410701	39.7476972
-11737	8379	7491	0.0530440410997852	0.0530440410997852	-105.0410701	39.7476972	-105.0416725	39.7478114
-11738	7491	3832	0.0868122883126915	0.0868122883126915	-105.0416725	39.7478114	-105.042608	39.748115
-11740	8129	8380	0.134532326319759	0.134532326319759	-104.9721336	39.7482271	-104.9721157	39.7494369
-11741	8380	8382	0.00458704251135175	0.00458704251135175	-104.9721157	39.7494369	-104.972113	39.7494781
-11743	8383	8384	0.136207849444979	0.136207849444979	-104.9721125	39.7495132	-104.9721264	39.7507381
-11744	8384	7838	0.138328826392976	0.138328826392976	-104.9721264	39.7507381	-104.9720959	39.7519819
-11746	8385	8386	0.0871147692827014	0.0871147692827014	-105.0124198	39.7414644	-105.0115357	39.7418538
-11749	8389	8390	0.0947169874364547	0.0947169874364547	-105.0124419	39.7396939	-105.0116345	39.7402771
-19614	10514	10587	0.0689139357560502	0.0689139357560502	-104.9902714	39.7087938	-104.9910769	39.7088041
-11751	8391	4386	0.0534420102551264	0.0534420102551264	-104.982081	39.7523183	-104.9825253	39.7526564
-11752	4386	8392	0.0520924012173649	0.0520924012173649	-104.9825253	39.7526564	-104.9829471	39.7529945
-11753	8392	8393	0.0473152332925311	0.0473152332925311	-104.9829471	39.7529945	-104.9833461	39.7532894
-11754	8393	8394	0.00593400942031918	0.00593400942031918	-104.9833461	39.7532894	-104.9833985	39.7533244
-11755	8394	8395	0.0526072167549377	0.0526072167549377	-104.9833985	39.7533244	-104.9838316	39.7536605
-11756	8395	8396	0.0535245842073366	0.0535245842073366	-104.9838316	39.7536605	-104.9842635	39.754009
-11757	8396	8397	0.0520127953812383	0.0520127953812383	-104.9842635	39.754009	-104.98469	39.7543426
-11758	8397	8398	0.0525440381176666	0.0525440381176666	-104.98469	39.7543426	-104.9851174	39.7546822
-11759	8398	8399	0.105725944401461	0.105725944401461	-104.9851174	39.7546822	-104.9860118	39.7553389
-11760	8399	8400	0.0963534079842441	0.0963534079842441	-104.9860118	39.7553389	-104.9868117	39.7559494
-11761	8400	8401	0.00721402202643277	0.00721402202643277	-104.9868117	39.7559494	-104.9868716	39.7559951
-11762	8401	8402	0.0642819932248178	0.0642819932248178	-104.9868716	39.7559951	-104.9873999	39.7564065
-11763	8402	6180	0.0440229088580127	0.0440229088580127	-104.9873999	39.7564065	-104.9877579	39.7566911
-11764	6180	3304	0.105719811244021	0.105719811244021	-104.9877579	39.7566911	-104.9886307	39.7573647
-11765	3304	8404	0.104473728049028	0.104473728049028	-104.9886307	39.7573647	-104.9894933	39.7580303
-11776	2683	5360	0.148134497863423	0.148134497863423	-104.9790985	39.751919	-104.9803323	39.7509836
-11779	8408	8409	0.0170504242210171	0.0170504242210171	-105.0080042	39.7473225	-105.0082031	39.7473337
-11780	8409	8410	0.0301331300599118	0.0301331300599118	-105.0082031	39.7473337	-105.0080216	39.7471014
-11781	8410	8408	0.024630163522097	0.024630163522097	-105.0080216	39.7471014	-105.0080042	39.7473225
-11786	8411	7068	0.119279864672347	0.119279864672347	-104.9738611	39.7586965	-104.9748473	39.7579376
-11787	7068	5513	0.148575970390717	0.148575970390717	-104.9748473	39.7579376	-104.97606	39.7569804
-11788	5513	4445	0.14563348668729	0.14563348668729	-104.97606	39.7569804	-104.9772635	39.7560534
-11795	8413	543	0.028789081158834	0.028789081158834	-105.0218658	39.7405653	-105.0222025	39.7405643
-11800	8038	2689	0.14574049201504	0.14574049201504	-104.9805458	39.7548634	-104.9817462	39.7539327
-11801	2689	8392	0.146364813323007	0.146364813323007	-104.9817462	39.7539327	-104.9829471	39.7529945
-11810	8316	8410	0.0688632882143238	0.0688632882143238	-105.007603	39.7465723	-105.0080216	39.7471014
-11818	8318	8421	0.163109524565458	0.163109524565458	-105.0111676	39.7439691	-105.0127281	39.7431253
-11820	2202	8422	0.0636527332062032	0.0636527332062032	-105.0128922	39.7400809	-105.0135792	39.7398604
-11827	8425	8426	0.235001983383898	0.235001983383898	-104.9895725	39.7854572	-104.9895595	39.7833438
-11829	8427	2187	0.0976945121262096	0.0976945121262096	-105.0148298	39.7369044	-105.0159723	39.7369102
-11830	2187	8428	0.113051166751879	0.113051166751879	-105.0159723	39.7369102	-105.0172942	39.7368917
-11832	8429	8427	0.106790392513668	0.106790392513668	-105.0135809	39.7369043	-105.0148298	39.7369044
-11836	8432	8433	0.316135432263608	0.316135432263608	-105.0153422	39.7339918	-105.0141326	39.7366784
-11838	8434	8435	0.0739062863270344	0.0739062863270344	-105.0143556	39.741604	-105.0147581	39.7421922
-16014	9785	9166	0.0737839272607517	0.0737839272607517	-104.9929555	39.6960192	-104.9928292	39.6966756
-11840	8436	8437	0.305296163280187	0.305296163280187	-105.014551	39.7415365	-105.0140684	39.7388161
-11842	8438	8439	0.0899401823641934	0.0899401823641934	-105.0171026	39.7442035	-105.0164414	39.7435744
-11843	8439	8440	0.0855827793815302	0.0855827793815302	-105.0164414	39.7435744	-105.0158022	39.7429821
-11845	8441	533	0.0890672230330435	0.0890672230330435	-105.0132989	39.755347	-105.0123604	39.7549991
-11847	8325	3752	0.00830034500152871	0.00830034500152871	-105.0288943	39.7621125	-105.0288682	39.7620406
-11848	3752	8442	0.100105658665385	0.100105658665385	-105.0288682	39.7620406	-105.0279677	39.761465
-11849	8442	6773	0.103872958239997	0.103872958239997	-105.0279677	39.761465	-105.0268646	39.7610731
-11850	6773	8303	0.0295834023794743	0.0295834023794743	-105.0268646	39.7610731	-105.0265595	39.7609475
-11851	8303	8443	0.122024126507826	0.122024126507826	-105.0265595	39.7609475	-105.0254023	39.7603049
-11854	8365	8445	0.12649848699983	0.12649848699983	-105.0103456	39.7541271	-105.0090988	39.7535144
-11856	8445	8446	0.0774789975708123	0.0774789975708123	-105.0090988	39.7535144	-105.0083779	39.7530921
-11858	6522	8447	0.124835406842481	0.124835406842481	-104.982762	39.6978313	-104.9827785	39.6967087
-11860	8447	4244	0.0110439553261759	0.0110439553261759	-104.9827785	39.6967087	-104.9827699	39.6966096
-11861	4244	1787	0.20168643392703	0.20168643392703	-104.9827699	39.6966096	-104.9827622	39.6947958
-11862	1787	7206	0.198352393557477	0.198352393557477	-104.9827622	39.6947958	-104.9827747	39.693012
-11863	7206	5819	0.204146640542909	0.204146640542909	-104.9827747	39.693012	-104.9827894	39.6911761
-11864	5819	7724	0.196992932786583	0.196992932786583	-104.9827894	39.6911761	-104.9827896	39.6894045
-11865	7724	8448	0.0469826616672844	0.0469826616672844	-104.9827896	39.6894045	-104.9827836	39.688982
-11866	8448	8449	1.1597652413984	1.1597652413984	-104.9827836	39.688982	-104.9829313	39.6785526
-15932	1178	9158	0.281206093212011	0.281206093212011	-104.9967808	39.7006121	-104.9960034	39.7030693
-11868	529	476	0.196533269115043	0.196533269115043	-105.0102365	39.7542807	-105.0121896	39.7552131
-11869	476	8451	0.00692492598385206	0.00692492598385206	-105.0121896	39.7552131	-105.0122583	39.7552461
-11871	8452	8450	0.118857471050118	0.118857471050118	-105.009013	39.7536728	-105.0101803	39.7542535
-11873	8446	8453	0.0472361723035857	0.0472361723035857	-105.0083779	39.7530921	-105.0079745	39.7528018
-11875	8453	1808	0.0616092600190724	0.0616092600190724	-105.0079745	39.7528018	-105.0075333	39.7523637
-11876	1808	8454	0.103675532542851	0.103675532542851	-105.0075333	39.7523637	-105.0069016	39.7515678
-11878	8455	8452	0.0832501988122618	0.0832501988122618	-105.0082148	39.7532439	-105.009013	39.7536728
-11880	8456	8455	0.0488208935536257	0.0488208935536257	-105.0077942	39.7529469	-105.0082148	39.7532439
-11883	1807	8456	0.0645719953824934	0.0645719953824934	-105.0073479	39.7524784	-105.0077942	39.7529469
-11885	8454	8460	0.0468848260297017	0.0468848260297017	-105.0069016	39.7515678	-105.0065497	39.7512444
-11887	8460	8461	0.191542303309411	0.191542303309411	-105.0065497	39.7512444	-105.0049189	39.7500632
-11888	8461	8462	0.143814933384229	0.143814933384229	-105.0049189	39.7500632	-105.003842	39.7490696
-11926	8479	7578	0.0514183930388008	0.0514183930388008	-104.9903554	39.7419081	-104.9907772	39.7422377
-11889	8462	8312	0.0813843178601785	0.0813843178601785	-105.003842	39.7490696	-105.0033568	39.7484399
-11890	8312	8463	0.108687135880293	0.108687135880293	-105.0033568	39.7484399	-105.0026615	39.7476216
-11891	8463	8464	0.171307568098715	0.171307568098715	-105.0026615	39.7476216	-105.0014282	39.7464074
-11892	8464	7962	0.138415151415673	0.138415151415673	-105.0014282	39.7464074	-105.0007006	39.7452954
-11894	8465	8457	0.0468050869550622	0.0468050869550622	-105.0063608	39.7513896	-105.0067213	39.7517064
-11899	8468	3170	0.018103312819976	0.018103312819976	-105.0008907	39.7479512	-105.0006969	39.7480168
-11901	8469	8466	0.0123424922846296	0.0123424922846296	-105.0019357	39.7486848	-105.0020778	39.7486652
-11902	8466	8311	0.0903233113904637	0.0903233113904637	-105.0020778	39.7486652	-105.0031123	39.7485003
-11904	8470	8469	0.0396717564170432	0.0396717564170432	-105.0014824	39.7487611	-105.0019357	39.7486848
-11906	8296	8273	0.152532135373756	0.152532135373756	-104.9951571	39.7549879	-104.9964185	39.7540177
-11907	8273	5789	0.146346014371488	0.146346014371488	-104.9964185	39.7540177	-104.9976271	39.7530856
-11908	5789	4816	0.144635236179438	0.144635236179438	-104.9976271	39.7530856	-104.9988196	39.7521629
-11909	4816	8471	0.144945711618013	0.144945711618013	-104.9988196	39.7521629	-105.0000116	39.7512359
-11910	8471	8472	0.00337499193971306	0.00337499193971306	-105.0000116	39.7512359	-105.0000361	39.7512121
-13477	9099	9096	0.0859011649600223	0.0859011649600223	-105.0181659	39.7251883	-105.0171656	39.7251183
-11912	8473	8474	0.141151348464777	0.141151348464777	-105.0000669	39.7511877	-105.0012293	39.7502862
-11913	8474	8475	0.13279343346844	0.13279343346844	-105.0012293	39.7502862	-105.0022888	39.7494129
-11915	1346	8475	0.0349627710606267	0.0349627710606267	-105.0024538	39.7491252	-105.0022888	39.7494129
-11919	8313	8477	0.0691895872331652	0.0691895872331652	-105.00375	39.7483181	-105.003633	39.7477024
-11921	4846	8478	0.326789742990523	0.326789742990523	-105.0038505	39.7522849	-105.0065368	39.7543758
-11923	5031	6987	0.0623597305249406	0.0623597305249406	-104.9884893	39.7405273	-104.9890246	39.7409082
-11924	6987	5806	0.105799056021075	0.105799056021075	-104.9890246	39.7409082	-104.989913	39.7415705
-11925	5806	8479	0.0532916983351864	0.0532916983351864	-104.989913	39.7415705	-104.9903554	39.7419081
-11927	7578	8480	0.0539921866859616	0.0539921866859616	-104.9907772	39.7422377	-104.9912213	39.7425829
-11928	8480	8481	0.0438686505947476	0.0438686505947476	-104.9912213	39.7425829	-104.9915821	39.7428634
-11929	8481	5961	0.00656699811047763	0.00656699811047763	-104.9915821	39.7428634	-104.9916357	39.7429057
-11930	5961	8482	0.00665108194893408	0.00665108194893408	-104.9916357	39.7429057	-104.9916907	39.742948
-11931	8482	3003	0.0997303043018087	0.0997303043018087	-104.9916907	39.742948	-104.9925155	39.7435822
-11932	3003	4396	0.10605079021574	0.10605079021574	-104.9925155	39.7435822	-104.993398	39.7442524
-11933	4396	8483	0.102726296828384	0.102726296828384	-104.993398	39.7442524	-104.9942509	39.7449031
-11934	8483	8484	0.00648258609012086	0.00648258609012086	-104.9942509	39.7449031	-104.9943021	39.7449461
-11935	8484	8485	0.100141708737386	0.100141708737386	-104.9943021	39.7449461	-104.995128	39.7455847
-11936	8485	8486	0.0275311475026058	0.0275311475026058	-104.995128	39.7455847	-104.9953533	39.7457616
-11937	8486	8487	0.0265062604992808	0.0265062604992808	-104.9953533	39.7457616	-104.9955701	39.745932
-11938	8487	8488	0.0523458198440316	0.0523458198440316	-104.9955701	39.745932	-104.9959984	39.7462684
-11939	8488	8489	0.104751027795859	0.104751027795859	-104.9959984	39.7462684	-104.9968701	39.7469304
-11940	8489	8490	0.0990693987095691	0.0990693987095691	-104.9968701	39.7469304	-104.9976922	39.7475583
-11941	8490	8491	0.00745857832944624	0.00745857832944624	-104.9976922	39.7475583	-104.9977552	39.7476047
-11942	8491	8492	0.0518088588950486	0.0518088588950486	-104.9977552	39.7476047	-104.998183	39.7479347
-11943	8492	6189	0.054888246037165	0.054888246037165	-104.998183	39.7479347	-104.9986323	39.7482873
-11945	6632	7733	0.112596009055585	0.112596009055585	-104.9757688	39.6903887	-104.9757679	39.6893761
-12071	8507	3552	0.071078699522552	0.071078699522552	-104.9777748	39.7546175	-104.9769434	39.7546258
-11946	7733	8495	2.00712592676004	2.00712592676004	-104.9757679	39.6893761	-104.9758002	39.6713256
-11954	6568	4449	0.147875161573861	0.147875161573861	-104.9802246	39.7564641	-104.9789969	39.757401
-11955	4449	5497	0.144351276811523	0.144351276811523	-104.9789969	39.757401	-104.9777977	39.758315
-11956	5497	7071	0.14871904829256	0.14871904829256	-104.9777977	39.758315	-104.9765951	39.7592815
-11958	8501	8502	0.146058647776188	0.146058647776188	-104.9871043	39.7524564	-104.985916	39.7534002
-11959	8502	8397	0.148207146508282	0.148207146508282	-104.985916	39.7534002	-104.98469	39.7543426
-11960	8397	2694	0.144837053832231	0.144837053832231	-104.98469	39.7543426	-104.9834919	39.7552636
-11966	4737	8503	0.0843423130679838	0.0843423130679838	-104.9696615	39.7607527	-104.9696782	39.7615111
-11967	8399	5455	0.141833750205801	0.141833750205801	-104.9860118	39.7553389	-104.984841	39.7562427
-11968	5455	2697	0.00495891013188563	0.00495891013188563	-104.984841	39.7562427	-104.9847927	39.7562674
-11969	2697	8045	0.148003641728593	0.148003641728593	-104.9847927	39.7562674	-104.9835828	39.7572195
-11970	8045	6573	0.144311748140391	0.144311748140391	-104.9835828	39.7572195	-104.9824151	39.7581568
-11971	6573	4454	0.147824934616054	0.147824934616054	-104.9824151	39.7581568	-104.981171	39.7590802
-11972	4454	5502	0.144725467857806	0.144725467857806	-104.981171	39.7590802	-104.9799824	39.7600071
-11973	5502	7076	0.14772137009526	0.14772137009526	-104.9799824	39.7600071	-104.9787733	39.7609563
-11974	7076	2033	0.146029155751578	0.146029155751578	-104.9787733	39.7609563	-104.9775611	39.7618817
-11975	2033	5322	0.146208700799923	0.146208700799923	-104.9775611	39.7618817	-104.9763558	39.7628147
-11976	5322	631	0.145784380568713	0.145784380568713	-104.9763558	39.7628147	-104.9751714	39.7637581
-11977	631	6404	0.147332884437086	0.147332884437086	-104.9751714	39.7637581	-104.973944	39.7646884
-11978	6404	2910	0.0722929712454625	0.0722929712454625	-104.973944	39.7646884	-104.9733493	39.7651507
-11980	8504	8505	0.0580359403583064	0.0580359403583064	-104.9856564	39.7569396	-104.9861441	39.7573027
-11981	8505	6178	0.0499592014591395	0.0499592014591395	-104.9861441	39.7573027	-104.9865554	39.7576219
-11982	6178	8506	0.0514685264155668	0.0514685264155668	-104.9865554	39.7576219	-104.986978	39.7579516
-11983	8506	8508	0.0359450086839816	0.0359450086839816	-104.986978	39.7579516	-104.9873985	39.757951
-11985	8509	8491	0.145477011516465	0.145477011516465	-104.9989592	39.7466802	-104.9977552	39.7476047
-11986	8491	6711	0.147675146026861	0.147675146026861	-104.9977552	39.7476047	-104.9965276	39.748539
-11987	6711	8510	0.0119577509852376	0.0119577509852376	-104.9965276	39.748539	-104.9964255	39.7486125
-11999	7079	2035	0.146591134901683	0.146591134901683	-104.9800778	39.7619593	-104.978878	39.7629013
-12000	2035	8511	0.144080341921709	0.144080341921709	-104.978878	39.7629013	-104.9776691	39.7638043
-12001	8506	6577	0.292638121021149	0.292638121021149	-104.986978	39.7579516	-104.9845851	39.7598337
-12013	8514	7905	0.14392744613234	0.14392744613234	-105.0068857	39.7602149	-105.0080885	39.7611207
-12014	7905	8224	0.144594704272466	0.144594704272466	-105.0080885	39.7611207	-105.009291	39.7620353
-12015	8224	2513	0.0408485952047996	0.0408485952047996	-105.009291	39.7620353	-105.0096031	39.7623135
-12017	8223	4514	0.129566346086565	0.129566346086565	-105.0064841	39.7620611	-105.0064389	39.7632258
-12018	4514	5236	0.132336483238921	0.132336483238921	-105.0064389	39.7632258	-105.00645	39.7644159
-12019	5236	6888	0.137583446360535	0.137583446360535	-105.00645	39.7644159	-105.0064586	39.7656532
-12020	6888	8515	0.134749292102011	0.134749292102011	-105.0064586	39.7656532	-105.0064696	39.766865
-18562	2839	2837	0.0398814314105002	0.0398814314105002	-105.0301265	39.7802941	-105.0296598	39.7802952
-12021	8515	1670	0.131131933535458	0.131131933535458	-105.0064696	39.766865	-105.0064415	39.7680441
-12022	1670	8516	0.137025514768393	0.137025514768393	-105.0064415	39.7680441	-105.006441	39.7692764
-12023	8516	2451	0.140387467109701	0.140387467109701	-105.006441	39.7692764	-105.0064532	39.7705389
-12024	2451	3220	0.132796169496021	0.132796169496021	-105.0064532	39.7705389	-105.0064274	39.771733
-12025	3220	3241	0.0110949892633217	0.0110949892633217	-105.0064274	39.771733	-105.0064102	39.7718319
-12026	3241	5742	0.122723226676881	0.122723226676881	-105.0064102	39.7718319	-105.0064961	39.7729336
-12027	5742	5734	0.0121046279679281	0.0121046279679281	-105.0064961	39.7729336	-105.0064617	39.7730392
-12028	5734	5519	0.122276751203955	0.122276751203955	-105.0064617	39.7730392	-105.0064768	39.7741388
-12029	5519	5518	0.0183360434030607	0.0183360434030607	-105.0064768	39.7741388	-105.0064768	39.7743037
-12030	5518	6453	0.115919443239594	0.115919443239594	-105.0064768	39.7743037	-105.006451	39.775346
-12031	6453	8519	0.0186206290164017	0.0186206290164017	-105.006451	39.775346	-105.0064452	39.7755134
-12032	8519	6921	0.113511395757215	0.113511395757215	-105.0064452	39.7755134	-105.0064346	39.7765342
-12033	6921	6966	0.278590640144845	0.278590640144845	-105.0064346	39.7765342	-105.0064198	39.7790396
-12034	6966	2480	0.0421290693071181	0.0421290693071181	-105.0064198	39.7790396	-105.0064445	39.779418
-12035	2480	2819	0.0832464241503531	0.0832464241503531	-105.0064445	39.779418	-105.0064329	39.7801666
-12036	2819	1420	0.203808019181798	0.203808019181798	-105.0064329	39.7801666	-105.0063986	39.7819993
-12037	1420	1350	0.0610460440330561	0.0610460440330561	-105.0063986	39.7819993	-105.0063979	39.7825483
-12038	1350	386	0.0313326355302306	0.0313326355302306	-105.0063979	39.7825483	-105.0063891	39.78283
-12039	386	8520	0.00828931624769023	0.00828931624769023	-105.0063891	39.78283	-105.006397	39.7829043
-12041	8521	8522	0.0528158272532374	0.0528158272532374	-105.0043742	39.7505911	-105.0048268	39.7502678
-12042	8522	8461	0.0240744692191342	0.0240744692191342	-105.0048268	39.7502678	-105.0049189	39.7500632
-12045	8524	8525	0.099226587437181	0.099226587437181	-105.0053655	39.751233	-105.0047107	39.7504962
-12056	6652	7968	0.116416731661103	0.116416731661103	-104.9999567	39.7402253	-104.9994613	39.7412005
-13645	9155	9152	0.125537210877253	0.125537210877253	-104.9962707	39.706856	-104.9968785	39.7078836
-12069	3016	8123	0.0144820950034519	0.0144820950034519	-104.9783073	39.7546124	-104.9781379	39.7546138
-12070	8123	8507	0.0310425416681892	0.0310425416681892	-104.9781379	39.7546138	-104.9777748	39.7546175
-12072	3552	4443	0.0963694960086714	0.0963694960086714	-104.9769434	39.7546258	-104.9763376	39.7553567
-12074	8536	8537	0.125429093404429	0.125429093404429	-104.987378	39.7529333	-104.9863465	39.7537355
-12075	8537	8398	0.148732331324902	0.148732331324902	-104.9863465	39.7537355	-104.9851174	39.7546822
-12076	8398	2695	0.143717697009194	0.143717697009194	-104.9851174	39.7546822	-104.9839243	39.7555928
-12078	8043	6571	0.143486226041694	0.143486226041694	-104.9827245	39.7565663	-104.981529	39.7574721
-15271	8458	8538	0.130887342573391	0.130887342573391	-104.9284834	39.705337	-104.9283761	39.7065112
-12079	6571	4452	0.149648787475973	0.149648787475973	-104.981529	39.7574721	-104.9802783	39.7584138
-12080	4452	5500	0.142780903948531	0.142780903948531	-104.9802783	39.7584138	-104.9791156	39.7593357
-12081	5500	7074	0.148102852377504	0.148102852377504	-104.9791156	39.7593357	-104.9778937	39.76028
-12082	7074	2032	0.145681586591459	0.145681586591459	-104.9778937	39.76028	-104.9767057	39.7612194
-12086	2886	7993	0.218441304114497	0.218441304114497	-104.9722001	39.7469535	-104.9747549	39.746928
-12088	8130	8541	0.134523622254369	0.134523622254369	-104.9708826	39.7482126	-104.9708826	39.7494224
-12089	8541	8542	0.00481474032387871	0.00481474032387871	-104.9708826	39.7494224	-104.9708826	39.7494657
-12090	8542	8543	0.00504824966940074	0.00504824966940074	-104.9708826	39.7494657	-104.9708826	39.7495111
-12091	8543	8544	0.135980275793844	0.135980275793844	-104.9708826	39.7495111	-104.9708826	39.750734
-12092	8544	7839	0.139416199289129	0.139416199289129	-104.9708826	39.750734	-104.9708825	39.7519878
-12093	7839	819	0.136947671655105	0.136947671655105	-104.9708825	39.7519878	-104.9708825	39.7532194
-12094	819	3560	0.140872852825874	0.140872852825874	-104.9708825	39.7532194	-104.9708824	39.7544863
-12095	3560	5634	0.139405079534224	0.139405079534224	-104.9708824	39.7544863	-104.9708824	39.75574
-12096	5634	4338	0.141217557097108	0.141217557097108	-104.9708824	39.75574	-104.9708823	39.75701
-12097	4338	6337	0.135602213042785	0.135602213042785	-104.9708823	39.75701	-104.9708823	39.7582295
-12098	6337	3053	0.134723773393479	0.134723773393479	-104.9708823	39.7582295	-104.9708822	39.7594411
-12100	3691	8545	0.139072808044494	0.139072808044494	-104.970874	39.7469218	-104.9696681	39.7460824
-12101	5485	8546	0.200596752868582	0.200596752868582	-104.9541539	39.7383732	-104.9541798	39.7401771
-12103	4888	8547	0.185876236918155	0.185876236918155	-104.9539764	39.7351225	-104.9539498	39.736794
-12104	8547	5486	0.175599681021845	0.175599681021845	-104.9539498	39.736794	-104.9539554	39.7383732
-12106	4889	8548	0.187588829795577	0.187588829795577	-104.9528338	39.7351142	-104.952774	39.7368006
-12107	8548	5487	0.174192187356096	0.174192187356096	-104.952774	39.7368006	-104.952802	39.738367
-12109	8549	8550	0.0264199145705686	0.0264199145705686	-104.9647731	39.7365894	-104.9647731	39.736827
-12110	8550	5477	0.172910339815493	0.172910339815493	-104.9647731	39.736827	-104.964716	39.7383814
-12111	5477	8551	0.17777655236626	0.17777655236626	-104.964716	39.7383814	-104.9647671	39.7399797
-12112	8551	8552	0.179401923989104	0.179401923989104	-104.9647671	39.7399797	-104.9647683	39.7415931
-12114	672	8553	0.00419226671708486	0.00419226671708486	-104.9647688	39.7416171	-104.9647683	39.7416548
-12116	8554	4600	0.174009465824247	0.174009465824247	-104.9647611	39.7432314	-104.9647661	39.7447963
-12117	4600	6497	0.141315269300352	0.141315269300352	-104.9647661	39.7447963	-104.9647477	39.7460671
-12118	6497	3685	0.0979207012351752	0.0979207012351752	-104.9647477	39.7460671	-104.9647396	39.7469477
-12119	3685	8132	0.140340825489325	0.140340825489325	-104.9647396	39.7469477	-104.9647477	39.7482098
-12120	8132	8555	0.134412189177842	0.134412189177842	-104.9647477	39.7482098	-104.9647128	39.7494183
-12121	8555	8556	0.00412533177852682	0.00412533177852682	-104.9647128	39.7494183	-104.9647128	39.7494554
-12122	8556	8557	0.00459814794721775	0.00459814794721775	-104.9647128	39.7494554	-104.9647155	39.7494967
-12123	8557	8558	0.132902025218854	0.132902025218854	-104.9647155	39.7494967	-104.9647073	39.7506919
-12124	8558	7841	0.138710880861165	0.138710880861165	-104.9647073	39.7506919	-104.9647228	39.7519393
-12125	7841	825	0.140880437202465	0.140880437202465	-104.9647228	39.7519393	-104.9647057	39.7532062
-12126	825	3566	0.136859579672601	0.136859579672601	-104.9647057	39.7532062	-104.9647415	39.7544367
-12127	3566	5637	0.14457832436944	0.14457832436944	-104.9647415	39.7544367	-104.9647101	39.7557367
-12128	5637	4341	0.139173250387063	0.139173250387063	-104.9647101	39.7557367	-104.9647021	39.7569883
-12129	4341	6340	0.137021300435373	0.137021300435373	-104.9647021	39.7569883	-104.964686	39.7582205
-12130	6340	8560	0.107881318168938	0.107881318168938	-104.964686	39.7582205	-104.9646861	39.7591907
-12131	2245	4879	0.176153654685445	0.176153654685445	-104.9644966	39.7334712	-104.9646143	39.7350528
-12132	4879	7358	0.24873496630677	0.24873496630677	-104.9646143	39.7350528	-104.9672193	39.7360482
-12133	7358	6786	0.0656034947664249	0.0656034947664249	-104.9672193	39.7360482	-104.9677841	39.7356489
-12134	6786	4878	0.0544981388589161	0.0544981388589161	-104.9677841	39.7356489	-104.9679617	39.7351782
-12135	4878	5942	0.524256212186461	0.524256212186461	-104.9679617	39.7351782	-104.96779	39.7304653
-12136	5942	8561	0.0631406553785623	0.0631406553785623	-104.96779	39.7304653	-104.9673609	39.7300032
-12137	8561	3127	0.0936118840285326	0.0936118840285326	-104.9673609	39.7300032	-104.9663652	39.7296534
-12138	3127	3131	0.0777309112767711	0.0777309112767711	-104.9663652	39.7296534	-104.9654579	39.7296956
-12139	3131	5914	0.112365280295693	0.112365280295693	-104.9654579	39.7296956	-104.9646486	39.7304917
-12140	5914	2245	0.331560162235425	0.331560162235425	-104.9646486	39.7304917	-104.9644966	39.7334712
-12142	8562	2334	2.72525423343991	2.72525423343991	-104.8920171	39.7258127	-104.9238826	39.7256356
-12144	7677	5980	0.0954252288299854	0.0954252288299854	-104.924985	39.7256294	-104.9261008	39.7256273
-12145	5980	2129	0.0933556137052187	0.0933556137052187	-104.9261008	39.7256273	-104.9271924	39.7256294
-12146	2129	7520	0.0952025856529876	0.0952025856529876	-104.9271924	39.7256294	-104.9283056	39.7256294
-12147	7520	8563	0.0935887718802941	0.0935887718802941	-104.9283056	39.7256294	-104.9293999	39.7256232
-12148	8563	2270	0.0947410402071955	0.0947410402071955	-104.9293999	39.7256232	-104.9305077	39.7256212
-12149	2270	7011	0.0942715716828769	0.0942715716828769	-104.9305077	39.7256212	-104.93161	39.725617
-12150	7011	2766	0.0940480616870089	0.0940480616870089	-104.93161	39.725617	-104.9327097	39.725617
-12151	2766	3353	0.0940568781185638	0.0940568781185638	-104.9327097	39.725617	-104.9338095	39.725615
-12152	3353	2010	0.0938087738322925	0.0938087738322925	-104.9338095	39.725615	-104.9349064	39.7256134
-12153	2010	2020	0.00116816859457691	0.00116816859457691	-104.9349064	39.7256134	-104.9349199	39.725615
-12154	2020	7597	0.0929046375775443	0.0929046375775443	-104.9349199	39.725615	-104.9360062	39.7256088
-12155	7597	7260	0.0977180089067193	0.0977180089067193	-104.9360062	39.7256088	-104.9371488	39.7256129
-12156	7260	7607	0.0981798145414121	0.0981798145414121	-104.9371488	39.7256129	-104.9382968	39.725617
-12157	7607	8148	0.0984109366674247	0.0984109366674247	-104.9382968	39.725617	-104.9394475	39.7256125
-12158	8148	8566	0.099556755200234	0.099556755200234	-104.9394475	39.7256125	-104.9406116	39.7256083
-12159	8566	8567	0.0161715318927219	0.0161715318927219	-104.9406116	39.7256083	-104.940796	39.7255761
-12165	7560	8570	0.0547324150634264	0.0547324150634264	-104.9970625	39.7508224	-104.9966174	39.7504686
-12166	8570	6187	0.0510334947129921	0.0510334947129921	-104.9966174	39.7504686	-104.9961984	39.7501417
-12167	6187	8571	0.106459447476842	0.106459447476842	-104.9961984	39.7501417	-104.9953197	39.7494633
-12168	8571	8572	0.00500250155273319	0.00500250155273319	-104.9953197	39.7494633	-104.9952739	39.7494353
-12169	8572	8573	0.102179560181125	0.102179560181125	-104.9952739	39.7494353	-104.9944322	39.7487829
-12171	8574	8575	0.108491319350075	0.108491319350075	-104.9936089	39.7481594	-104.9927205	39.7474627
-12172	8575	8576	0.100542104447219	0.100542104447219	-104.9927205	39.7474627	-104.9918796	39.7468306
-12173	8576	8577	0.00648974428476286	0.00648974428476286	-104.9918796	39.7468306	-104.9918273	39.7467883
-12174	8577	4394	0.10502201579173	0.10502201579173	-104.9918273	39.7467883	-104.9909615	39.7461183
-12175	4394	3006	0.104610459063575	0.104610459063575	-104.9909615	39.7461183	-104.9900832	39.7454633
-12176	3006	5958	0.107806604319072	0.107806604319072	-104.9900832	39.7454633	-104.9891839	39.7447837
-12177	5958	8578	0.00423483079275732	0.00423483079275732	-104.9891839	39.7447837	-104.9891482	39.7447573
-12178	8578	7577	0.0996748095395635	0.0996748095395635	-104.9891482	39.7447573	-104.9883537	39.7441013
-12179	7577	5809	0.11590556985698	0.11590556985698	-104.9883537	39.7441013	-104.9873953	39.7433641
-12181	5431	4429	0.103577041627779	0.103577041627779	-105.0250764	39.7166076	-105.0250933	39.717539
-12182	4429	4040	0.0675516196999984	0.0675516196999984	-105.0250933	39.717539	-105.0250969	39.7181465
-12183	4040	8579	0.0337698992215471	0.0337698992215471	-105.0250969	39.7181465	-105.0250969	39.7184502
-12184	8579	6027	0.102046173899402	0.102046173899402	-105.0250969	39.7184502	-105.0251054	39.7193679
-12185	6027	7864	0.042576537412	0.042576537412	-105.0251054	39.7193679	-105.0251054	39.7197508
-12186	7864	7863	0.0569874056816302	0.0569874056816302	-105.0251054	39.7197508	-105.0251051	39.7202633
-12187	7863	1834	0.10010879574602	0.10010879574602	-105.0251051	39.7202633	-105.0251054	39.7211636
-12188	1834	1828	0.0220165954761323	0.0220165954761323	-105.0251054	39.7211636	-105.0251054	39.7213616
-12189	1828	2629	0.0778176858176647	0.0778176858176647	-105.0251054	39.7213616	-105.025114	39.7220614
-12190	2629	5364	0.0924919399829741	0.0924919399829741	-105.025114	39.7220614	-105.025114	39.7228932
-12191	5364	8580	0.0666180932686517	0.0666180932686517	-105.025114	39.7228932	-105.0251093	39.7234923
-12192	8580	514	0.0427668694783733	0.0427668694783733	-105.0251093	39.7234923	-105.0251054	39.7238769
-12193	514	8581	0.0733005757458476	0.0733005757458476	-105.0251054	39.7238769	-105.0251096	39.7245361
-12194	8581	411	0.0548642593724076	0.0548642593724076	-105.0251096	39.7245361	-105.0251128	39.7250295
-12195	411	8582	0.0193916055385274	0.0193916055385274	-105.0251128	39.7250295	-105.0251054	39.7252038
-12200	8463	8583	0.030501567860775	0.030501567860775	-105.0026615	39.7476216	-105.0023143	39.7476847
-12202	8584	8585	0.0144536004398608	0.0144536004398608	-105.0010239	39.7420661	-105.0010329	39.7419363
-12203	8585	8586	0.0148984012969261	0.0148984012969261	-105.0010329	39.7419363	-105.0012044	39.74196
-12204	8586	8587	0.0138457363467684	0.0138457363467684	-105.0012044	39.74196	-105.0011631	39.7420804
-12206	7095	8584	0.00198726095451303	0.00198726095451303	-105.0010418	39.7420775	-105.0010239	39.7420661
-12208	8587	8588	0.0738864008587524	0.0738864008587524	-105.0011631	39.7420804	-105.0015962	39.7426554
-12209	8588	8088	0.0459979828668163	0.0459979828668163	-105.0015962	39.7426554	-105.0018979	39.7429979
-12211	8588	8088	0.0459979828668163	0.0459979828668163	-105.0015962	39.7426554	-105.0018979	39.7429979
-12213	7962	8589	0.0119871256203592	0.0119871256203592	-105.0007006	39.7452954	-105.000578	39.7453477
-12219	2290	8595	0.0472264457525012	0.0472264457525012	-105.0033485	39.7409586	-105.002885	39.7411896
-12224	8600	6960	0.0627185145557708	0.0627185145557708	-105.0080176	39.741951	-105.0073809	39.7422311
-12225	6960	8590	0.111002569075664	0.111002569075664	-105.0073809	39.7422311	-105.0062495	39.7427207
-12226	8590	8601	0.0399166681864525	0.0399166681864525	-105.0062495	39.7427207	-105.0058461	39.7429014
-12227	8601	8602	0.0122006420704012	0.0122006420704012	-105.0058461	39.7429014	-105.0057227	39.7429565
-12229	8602	8601	0.0122006420704012	0.0122006420704012	-105.0057227	39.7429565	-105.0058461	39.7429014
-12231	8605	8606	0.0364944571667735	0.0364944571667735	-105.0003759	39.7410885	-105.0005878	39.7413734
-12232	8606	8607	0.0128764646733806	0.0128764646733806	-105.0005878	39.7413734	-105.0006617	39.7414743
-12233	8607	8608	0.0546695374625623	0.0546695374625623	-105.0006617	39.7414743	-105.0009845	39.7418987
-12234	8608	8585	0.00588263593176519	0.00588263593176519	-105.0009845	39.7418987	-105.0010329	39.7419363
-12238	6350	8610	0.0529261007223787	0.0529261007223787	-105.0044986	39.7547701	-105.0048452	39.7551645
-12276	2459	8630	0.034376801437	0.034376801437	-105.0078361	39.7532748	-105.0075545	39.7534955
-12278	8630	8631	0.0429012342669158	0.0429012342669158	-105.0075545	39.7534955	-105.0072049	39.7537723
-12279	8631	8478	0.0881202047420162	0.0881202047420162	-105.0072049	39.7537723	-105.0065368	39.7543758
-12280	8478	6349	0.0631900183412494	0.0631900183412494	-105.0065368	39.7543758	-105.0059317	39.7547022
-12281	6349	8610	0.106156240617891	0.106156240617891	-105.0059317	39.7547022	-105.0048452	39.7551645
-12282	8610	8633	0.00782193502715287	0.00782193502715287	-105.0048452	39.7551645	-105.0047762	39.7552107
-12283	8633	8235	0.439089917447406	0.439089917447406	-105.0047762	39.7552107	-105.002653	39.7588064
-13838	2963	1284	0.0976236721102847	0.0976236721102847	-105.0214955	39.7584475	-105.0205218	39.7579887
-12291	8488	6708	0.146276219075305	0.146276219075305	-104.9959984	39.7462684	-104.9947886	39.7471986
-12292	6708	8574	0.146922373978856	0.146922373978856	-104.9947886	39.7471986	-104.9936089	39.7481594
-12293	8574	5780	0.145168342719135	0.145168342719135	-104.9936089	39.7481594	-104.9924092	39.7490833
-12294	5780	8284	0.145457218481639	0.145457218481639	-104.9924092	39.7490833	-104.9912016	39.7500048
-12295	8284	8635	0.147985754967018	0.147985754967018	-104.9912016	39.7500048	-104.9899626	39.7509342
-12296	8635	7895	0.145231730226047	0.145231730226047	-104.9899626	39.7509342	-104.9887543	39.7518523
-12297	7895	8636	0.145188764989583	0.145188764989583	-104.9887543	39.7518523	-104.987575	39.7527919
-12298	8636	8536	0.0230398310291247	0.0230398310291247	-104.987575	39.7527919	-104.987378	39.7529333
-12300	8637	8638	0.051750923168378	0.051750923168378	-104.9993008	39.7450562	-104.9997271	39.7453866
-12306	8641	8642	0.0388526899017529	0.0388526899017529	-105.0078924	39.7547551	-105.0079921	39.7544142
-12322	8647	8648	0.0689932486013888	0.0689932486013888	-105.0057725	39.7569369	-105.0052757	39.7574259
-12324	8409	8649	0.174821115803257	0.174821115803257	-105.0082031	39.7473337	-105.0092259	39.7486951
-12330	8652	8653	0.0109021010822668	0.0109021010822668	-105.0077772	39.7547483	-105.0076516	39.7547313
-12370	127	8676	0.0230804767650593	0.0230804767650593	-105.001255	39.763221	-105.000985	39.7632181
-13861	1773	4425	0.0478826481852338	0.0478826481852338	-104.9769014	39.705675	-104.9763417	39.7056707
-12371	8676	127	0.0230804767650593	0.0230804767650593	-105.000985	39.7632181	-105.001255	39.763221
-12374	8678	2814	0.00715247655230442	0.00715247655230442	-104.9912089	39.7765361	-104.9912923	39.7765415
-12375	2814	7853	0.0872240502720576	0.0872240502720576	-104.9912923	39.7765415	-104.9923076	39.7766218
-12379	552	3283	0.201374804580202	0.201374804580202	-104.9693115	39.7002336	-104.9691419	39.7020399
-12380	3283	439	0.0140574737901418	0.0140574737901418	-104.9691419	39.7020399	-104.9691656	39.702165
-12381	439	440	0.131394781189403	0.131394781189403	-104.9691656	39.702165	-104.969326	39.7033402
-12383	8680	592	0.0279554969032489	0.0279554969032489	-104.9691913	39.7036476	-104.9690283	39.7038655
-12386	3930	5620	0.102308093785748	0.102308093785748	-105.0005956	39.7668504	-105.0017926	39.7668511
-12387	5620	3705	0.100376481944534	0.100376481944534	-105.0017926	39.7668511	-105.002967	39.766852
-12388	3705	710	0.100626287480694	0.100626287480694	-105.002967	39.766852	-105.0041443	39.7668577
-12389	710	8681	0.0994362797990831	0.0994362797990831	-105.0041443	39.7668577	-105.0053077	39.766857
-12390	8681	8515	0.0993120225558452	0.0993120225558452	-105.0053077	39.766857	-105.0064696	39.766865
-12391	8515	4191	0.136253535658325	0.136253535658325	-105.0064696	39.766865	-105.0080637	39.7668543
-12392	4191	2517	0.134250356653895	0.134250356653895	-105.0080637	39.7668543	-105.0096344	39.7668477
-12393	2517	6728	0.132309702657946	0.132309702657946	-105.0096344	39.7668477	-105.0111824	39.766842
-12394	6728	4805	0.136509007433592	0.136509007433592	-105.0111824	39.766842	-105.0127781	39.7668943
-12395	4805	8682	0.134957701338679	0.134957701338679	-105.0127781	39.7668943	-105.0143554	39.766838
-12397	8683	433	0.845576760689761	0.845576760689761	-104.9602564	39.6848648	-104.9692608	39.6879972
-12398	433	481	1.45081348243216	1.45081348243216	-104.9692608	39.6879972	-104.9818608	39.6967284
-12399	481	8684	0.52437215594792	0.52437215594792	-104.9818608	39.6967284	-104.9859386	39.700249
-12401	8685	8686	0.010167997865452	0.010167997865452	-104.9497565	39.7177651	-104.9497874	39.7178534
-12404	4154	4741	0.172602377991032	0.172602377991032	-104.9497951	39.7209768	-104.9498232	39.7225289
-12405	4741	6536	0.177057900654184	0.177057900654184	-104.9498232	39.7225289	-104.9497817	39.7241209
-12406	6536	8687	0.165392784618956	0.165392784618956	-104.9497817	39.7241209	-104.9497898	39.7256083
-12408	5170	6865	0.176928364472993	0.176928364472993	-104.9407951	39.7162379	-104.9407779	39.7146468
-12409	6865	3073	0.175467136201966	0.175467136201966	-104.9407779	39.7146468	-104.9407865	39.7130688
-12410	3073	8690	0.1637299437242	0.1637299437242	-104.9407865	39.7130688	-104.9408036	39.7115964
-12411	8690	8160	0.0198260554201283	0.0198260554201283	-104.9408036	39.7115964	-104.9408036	39.7114181
-12412	8160	8691	0.0330442022067904	0.0330442022067904	-104.9408036	39.7114181	-104.9408122	39.711121
-12414	8692	8693	0.174036627821078	0.174036627821078	-104.9406148	39.716237	-104.9405987	39.7178021
-12415	8693	8694	0.176955606262412	0.176955606262412	-104.9405987	39.7178021	-104.9405987	39.7193935
-12416	8694	8695	0.169605643175659	0.169605643175659	-104.9405987	39.7193935	-104.9405977	39.7209188
-12417	8695	4774	0.249824848381595	0.249824848381595	-104.9405977	39.7209188	-104.9406125	39.7231655
-12418	4774	6552	0.130776357701309	0.130776357701309	-104.9406125	39.7231655	-104.9406129	39.7243416
-12419	6552	8696	0.13038749521243	0.13038749521243	-104.9406129	39.7243416	-104.9406095	39.7255142
-12420	8696	8566	0.0104649837792038	0.0104649837792038	-104.9406095	39.7255142	-104.9406116	39.7256083
-12421	8566	8697	0.196337242565984	0.196337242565984	-104.9406116	39.7256083	-104.9406072	39.727374
-13908	6946	8137	0.20217075396909	0.20217075396909	-104.9602903	39.7819343	-104.9602584	39.7837523
-12422	8697	3765	0.201163077899324	0.201163077899324	-104.9406072	39.727374	-104.9406029	39.7291831
-12423	3765	5944	0.202700667134599	0.202700667134599	-104.9406029	39.7291831	-104.9405891	39.731006
-12424	5944	2231	0.203264325905827	0.203264325905827	-104.9405891	39.731006	-104.9405891	39.732834
-12425	2231	4900	0.203310133896795	0.203310133896795	-104.9405891	39.732834	-104.9405805	39.7346624
-12426	4900	8699	0.223846600901437	0.223846600901437	-104.9405805	39.7346624	-104.9405829	39.7366755
-12427	8699	8700	0.179880034662439	0.179880034662439	-104.9405829	39.7366755	-104.9405826	39.7382932
-12428	8700	8701	0.204289810782798	0.204289810782798	-104.9405826	39.7382932	-104.9405708	39.7401304
-12429	8701	643	0.139830079927305	0.139830079927305	-104.9405708	39.7401304	-104.9405805	39.7413879
-12430	643	7272	0.132835494541237	0.132835494541237	-104.9405805	39.7413879	-104.9405891	39.7425825
-12431	7272	1993	0.110816863894031	0.110816863894031	-104.9405891	39.7425825	-104.9405891	39.7435791
-12432	1993	1977	0.01986880052865	0.01986880052865	-104.9405891	39.7435791	-104.9406062	39.7437573
-12433	1977	4590	0.131129399902762	0.131129399902762	-104.9406062	39.7437573	-104.9406235	39.7449365
-12434	4590	6477	0.129388315999052	0.129388315999052	-104.9406235	39.7449365	-104.9406153	39.7461001
-12435	6477	2460	0.143087746743813	0.143087746743813	-104.9406153	39.7461001	-104.9406062	39.7473869
-12436	2460	5904	0.206205054401277	0.206205054401277	-104.9406062	39.7473869	-104.9405891	39.7492413
-12437	5904	8702	0.200106396563715	0.200106396563715	-104.9405891	39.7492413	-104.9405885	39.7510409
-12438	8702	789	0.199795050779324	0.199795050779324	-104.9405885	39.7510409	-104.9405891	39.7528377
-12439	789	3581	0.193812626433148	0.193812626433148	-104.9405891	39.7528377	-104.9405163	39.7545798
-12440	3581	4353	0.211337121932246	0.211337121932246	-104.9405163	39.7545798	-104.9404804	39.7564802
-12441	4353	8703	0.201766897339093	0.201766897339093	-104.9404804	39.7564802	-104.9404947	39.7582947
-12442	8703	3056	0.204698740459713	0.204698740459713	-104.9404947	39.7582947	-104.9404947	39.7601356
-12443	3056	8704	0.1838941823989	0.1838941823989	-104.9404947	39.7601356	-104.9404955	39.7617894
-12446	902	8706	0.131578356152921	0.131578356152921	-104.9404687	39.7644571	-104.9404758	39.7656404
-12447	8706	2807	0.139128342169529	0.139128342169529	-104.9404758	39.7656404	-104.9404689	39.7668916
-12448	2807	5273	0.132055095159837	0.132055095159837	-104.9404689	39.7668916	-104.9404688	39.7680792
-12449	5273	6913	0.122503450982406	0.122503450982406	-104.9404688	39.7680792	-104.9404689	39.7691809
-12450	6913	6362	0.41302368771275	0.41302368771275	-104.9404689	39.7691809	-104.940457	39.7728953
-12452	3076	3191	0.200008210348418	0.200008210348418	-104.9851226	39.7129392	-104.9851665	39.7111408
-12454	6107	1897	0.202849718138185	0.202849718138185	-104.9851845	39.7093159	-104.985217	39.7074918
-12455	1897	7235	0.199081659570441	0.199081659570441	-104.985217	39.7074918	-104.9851255	39.7057028
-12456	7235	3245	0.204781971579143	0.204781971579143	-104.9851255	39.7057028	-104.9850951	39.7038613
-12457	3245	8707	0.0557878826660101	0.0557878826660101	-104.9850951	39.7038613	-104.9850997	39.7033596
-12458	8707	7285	0.154953879613548	0.154953879613548	-104.9850997	39.7033596	-104.9851123	39.7019661
-12459	7285	28	0.190200511167853	0.190200511167853	-104.9851123	39.7019661	-104.9850866	39.7002557
-12461	7212	8708	0.0837159569795295	0.0837159569795295	-104.9784122	39.6929827	-104.9774338	39.692988
-12463	8708	6525	0.0119790128871836	0.0119790128871836	-104.9774338	39.692988	-104.9772938	39.6929888
-12464	6525	1779	0.0293911622529401	0.0293911622529401	-104.9772938	39.6929888	-104.9769504	39.6929822
-12465	1779	4372	0.0502766443311638	0.0502766443311638	-104.9769504	39.6929822	-104.9763628	39.692984
-12466	4372	8710	0.0490277911002061	0.0490277911002061	-104.9763628	39.692984	-104.97579	39.6929721
-12467	8710	4684	0.0539189737855212	0.0539189737855212	-104.97579	39.6929721	-104.9751601	39.6929864
-12468	4684	1527	0.0474102490920647	0.0474102490920647	-104.9751601	39.6929864	-104.974606	39.692988
-12469	1527	5107	0.0489757310519715	0.0489757310519715	-104.974606	39.692988	-104.9740336	39.6929885
-19288	10468	10469	0.0662296445612727	0.0662296445612727	-104.9873734	39.7392289	-104.9881479	39.7392371
-12470	5107	8711	0.0509607682871969	0.0509607682871969	-104.9740336	39.6929885	-104.973438	39.692989
-12471	8711	5064	0.0518326919728752	0.0518326919728752	-104.973438	39.692989	-104.9728324	39.6929773
-12472	5064	1746	0.0537415293364607	0.0537415293364607	-104.9728324	39.6929773	-104.9722045	39.6929651
-12473	1746	5607	0.04913949394522	0.04913949394522	-104.9722045	39.6929651	-104.9716302	39.692962
-12474	5607	6637	0.0470345659561698	0.0470345659561698	-104.9716302	39.692962	-104.9710805	39.6929591
-12475	6637	5450	0.0502526613335692	0.0502526613335692	-104.9710805	39.6929591	-104.9704932	39.6929632
-12477	5427	5408	0.0488836182047643	0.0488836182047643	-104.9699057	39.6929673	-104.9693344	39.6929713
-12478	5408	7399	0.051895578159039	0.051895578159039	-104.9693344	39.6929713	-104.9687279	39.6929756
-12479	7399	8712	0.1038123024378	0.1038123024378	-104.9687279	39.6929756	-104.9675147	39.6929637
-12481	8713	8714	0.0490473159959526	0.0490473159959526	-104.966356	39.6929637	-104.9657828	39.6929687
-12482	8714	7277	0.0483828604327117	0.0483828604327117	-104.9657828	39.6929687	-104.9652174	39.6929756
-12483	7277	3483	0.0998765627131917	0.0998765627131917	-104.9652174	39.6929756	-104.9640501	39.6929756
-12484	3483	8715	0.048840271287456	0.048840271287456	-104.9640501	39.6929756	-104.9634793	39.692979
-12485	8715	6079	0.0473684752554207	0.0473684752554207	-104.9634793	39.692979	-104.9629257	39.6929822
-12486	6079	8716	0.055154161978582	0.055154161978582	-104.9629257	39.6929822	-104.9622811	39.6929794
-12487	8716	3697	0.0479069878085689	0.0479069878085689	-104.9622811	39.6929794	-104.9617212	39.6929769
-12488	3697	5685	0.0473941467783467	0.0473941467783467	-104.9617212	39.6929769	-104.9611673	39.6929737
-12489	5685	4571	0.0495504189878239	0.0495504189878239	-104.9611673	39.6929737	-104.9605882	39.6929703
-12490	4571	8717	0.0532110753130406	0.0532110753130406	-104.9605882	39.6929703	-104.9599663	39.6929697
-12495	8720	6626	0.0151124856958777	0.0151124856958777	-104.979262	39.6936183	-104.9792691	39.6934825
-12496	6626	7211	0.0534737559078532	0.0534737559078532	-104.9792691	39.6934825	-104.9792704	39.6930016
-12497	7211	5824	0.205145340397742	0.205145340397742	-104.9792704	39.6930016	-104.9792603	39.6911567
-12498	5824	7729	0.196126806182622	0.196126806182622	-104.9792603	39.6911567	-104.9792523	39.6893929
-12499	7729	8721	1.41081273670029	1.41081273670029	-104.9792523	39.6893929	-104.9792956	39.6767052
-12500	8722	6630	0.00966193494482075	0.00966193494482075	-104.976967	39.6915646	-104.9769745	39.6914779
-12501	6630	5826	0.0378008975972725	0.0378008975972725	-104.9769745	39.6914779	-104.9769668	39.691138
-12502	5826	7731	0.193712690967488	0.193712690967488	-104.9769668	39.691138	-104.9769661	39.6893959
-12503	7731	8723	1.80961969384046	1.80961969384046	-104.9769661	39.6893959	-104.9769591	39.6731216
-12504	1781	8722	0.107247989428491	0.107247989428491	-104.9769412	39.6925289	-104.976967	39.6915646
-12506	7401	6529	0.108235119976502	0.108235119976502	-104.9687279	39.6879032	-104.9687115	39.6869299
-12508	4596	8724	0.16807497837827	0.16807497837827	-104.9598011	39.7447758	-104.9597878	39.7432643
-12509	8724	8725	0.178846116420602	0.178846116420602	-104.9597878	39.7432643	-104.9597847	39.7416559
-12510	8725	678	0.00426139259412424	0.00426139259412424	-104.9597847	39.7416559	-104.9597887	39.7416177
-12511	678	8726	0.00479379013962442	0.00479379013962442	-104.9597887	39.7416177	-104.9597874	39.7415746
-12512	8726	8727	0.179790579190484	0.179790579190484	-104.9597874	39.7415746	-104.9597547	39.7399579
-12513	8727	5480	0.174201148052584	0.174201148052584	-104.9597547	39.7399579	-104.9597808	39.7383914
-12514	5480	8728	0.175423920421782	0.175423920421782	-104.9597808	39.7383914	-104.9597692	39.7368138
-12515	8728	4882	0.196140148835561	0.196140148835561	-104.9597692	39.7368138	-104.9598063	39.7350501
-12516	4882	2250	0.176600887954475	0.176600887954475	-104.9598063	39.7350501	-104.959782	39.733462
-12517	2250	5916	0.3321793201224	0.3321793201224	-104.959782	39.733462	-104.960135	39.730487
-12519	3788	8729	0.199339438501115	0.199339438501115	-104.9601881	39.7291071	-104.9601841	39.7273144
-12521	1189	8730	0.167786544262905	0.167786544262905	-104.9601763	39.7271213	-104.9601619	39.7256124
-12522	8730	7154	0.107569635985836	0.107569635985836	-104.9601619	39.7256124	-104.9594545	39.7248125
-12524	8731	8732	0.130443287352145	0.130443287352145	-104.9734316	39.6904059	-104.9734273	39.6892328
-12526	8732	6531	0.0215721025681021	0.0215721025681021	-104.9734273	39.6892328	-104.9734286	39.6890388
-12527	6531	8733	0.0174468386055745	0.0174468386055745	-104.9734286	39.6890388	-104.9734273	39.6888819
-12551	8748	6518	0.0472889047630053	0.0472889047630053	-104.9586768	39.6947734	-104.9581241	39.6947734
-12552	6518	8749	0.0506856290604236	0.0506856290604236	-104.9581241	39.6947734	-104.9575317	39.6947734
-12548	4570	8746	0.0496686599585209	0.0496686599585209	-104.960571	39.6947799	-104.9599905	39.6947768
-12549	8746	8747	0.0568130428191116	0.0568130428191116	-104.9599905	39.6947768	-104.9593265	39.6947733
-12528	8733	8734	4.18362578562758	4.18362578562758	-104.9734273	39.6888819	-104.9735656	39.6512578
-12529	6533	8735	0.0310320915845362	0.0310320915845362	-104.9743231	39.6893856	-104.9740308	39.6892204
-12530	8735	8733	0.0639013406897381	0.0639013406897381	-104.9740308	39.6892204	-104.9734273	39.6888819
-12531	8733	8736	0.0575832242503326	0.0575832242503326	-104.9734273	39.6888819	-104.9728386	39.688631
-12532	8736	1744	0.0585281295770588	0.0585281295770588	-104.9728386	39.688631	-104.9722383	39.6883787
-12533	1744	8737	0.0551795735412136	0.0551795735412136	-104.9722383	39.6883787	-104.9716711	39.6881426
-12534	8737	6634	0.0667321861738512	0.0667321861738512	-104.9716711	39.6881426	-104.9709852	39.687857
-12535	6634	8738	1.14684827666039	1.14684827666039	-104.9709852	39.687857	-104.9593753	39.6827044
-12536	8739	8740	0.050189520794265	0.050189520794265	-104.968695	39.6947883	-104.9681084	39.6947872
-12537	8740	8741	0.0520205890853532	0.0520205890853532	-104.9681084	39.6947872	-104.9675005	39.6947786
-12538	8741	8742	0.0975475062746334	0.0975475062746334	-104.9675005	39.6947786	-104.9663604	39.6947751
-12539	8742	8743	0.0478496643069703	0.0478496643069703	-104.9663604	39.6947751	-104.9658013	39.6947852
-12540	8743	7276	0.0507419704012955	0.0507419704012955	-104.9658013	39.6947852	-104.9652088	39.6947654
-12541	7276	3482	0.0993982386954757	0.0993982386954757	-104.9652088	39.6947654	-104.9640471	39.6947728
-12542	3482	8744	0.05053480573854	0.05053480573854	-104.9640471	39.6947728	-104.9634565	39.6947677
-12543	8744	6078	0.0468212480872111	0.0468212480872111	-104.9634565	39.6947677	-104.9629093	39.694763
-12544	6078	8745	0.052325451958986	0.052325451958986	-104.9629093	39.694763	-104.9622978	39.6947699
-12545	8745	3696	0.0475592999209775	0.0475592999209775	-104.9622978	39.6947699	-104.961742	39.6947762
-12546	3696	5684	0.0505577280347845	0.0505577280347845	-104.961742	39.6947762	-104.9611511	39.6947781
-12547	5684	4570	0.0496336429817659	0.0496336429817659	-104.9611511	39.6947781	-104.960571	39.6947799
-12550	8747	8748	0.0555882070947718	0.0555882070947718	-104.9593265	39.6947733	-104.9586768	39.6947734
-12553	8749	6161	0.0483586179330098	0.0483586179330098	-104.9575317	39.6947734	-104.9569665	39.6947747
-12554	6161	8750	0.0494030122591725	0.0494030122591725	-104.9569665	39.6947747	-104.9563891	39.6947772
-12555	8750	2739	0.0483430371417139	0.0483430371417139	-104.9563891	39.6947772	-104.9558241	39.6947809
-12556	2739	8751	0.0499840332207257	0.0499840332207257	-104.9558241	39.6947809	-104.9552399	39.6947809
-12557	8751	5230	0.0498899174438866	0.0498899174438866	-104.9552399	39.6947809	-104.9546568	39.6947809
-12558	5230	8752	0.0487864097624457	0.0487864097624457	-104.9546568	39.6947809	-104.9540866	39.6947822
-12559	8752	3172	0.0492052393668883	0.0492052393668883	-104.9540866	39.6947822	-104.9535117	39.6947706
-12560	3172	8753	0.048649307652154	0.048649307652154	-104.9535117	39.6947706	-104.9529431	39.6947706
-12561	8753	4997	0.0504970791491002	0.0504970791491002	-104.9529431	39.6947706	-104.952353	39.6947624
-12562	4997	729	0.0994774482962559	0.0994774482962559	-104.952353	39.6947624	-104.9511904	39.6947719
-12564	7060	7316	0.100261995636978	0.100261995636978	-104.9500436	39.6947813	-104.9488718	39.6947743
-12565	7316	4587	0.101339695102535	0.101339695102535	-104.9488718	39.6947743	-104.9476874	39.6947677
-12566	4587	8033	0.0978749879893347	0.0978749879893347	-104.9476874	39.6947677	-104.9465436	39.6947813
-12567	8033	6373	0.096169791555938	0.096169791555938	-104.9465436	39.6947813	-104.9454196	39.6947783
-12568	6373	8754	0.0556932821262755	0.0556932821262755	-104.9454196	39.6947783	-104.944769	39.6947624
-12569	8754	4827	0.0506856253200211	0.0506856253200211	-104.944769	39.6947624	-104.9441769	39.6947479
-12570	4827	8755	0.0976778629222165	0.0976778629222165	-104.9441769	39.6947479	-104.9430353	39.6947545
-12572	8756	8757	0.0483546146560771	0.0483546146560771	-104.9418766	39.6947611	-104.9413115	39.694755
-12573	8757	8758	0.00678547758181753	0.00678547758181753	-104.9413115	39.694755	-104.9412322	39.6947542
-12574	8758	8759	0.0425788070077018	0.0425788070077018	-104.9412322	39.6947542	-104.9407346	39.6947488
-12577	2375	8761	0.0800348658330501	0.0800348658330501	-104.9535019	39.7105138	-104.9525663	39.7105072
-12579	8761	2381	0.0565526295759939	0.0565526295759939	-104.9525663	39.7105072	-104.9519054	39.7105204
-12580	2381	2378	0.0732152007668199	0.0732152007668199	-104.9519054	39.7105204	-104.9510557	39.7104412
-12581	2378	2379	0.0407086995566738	0.0407086995566738	-104.9510557	39.7104412	-104.9506866	39.7102101
-12582	2379	2383	0.00264328007897714	0.00264328007897714	-104.9506866	39.7102101	-104.9506695	39.7101903
-12583	2383	2571	0.0689488793496812	0.0689488793496812	-104.9506695	39.7101903	-104.9505579	39.7095762
-12585	8761	2375	0.0800348658330501	0.0800348658330501	-104.9525663	39.7105072	-104.9535019	39.7105138
-12587	1510	7932	0.0417550445525859	0.0417550445525859	-104.9532101	39.7050201	-104.9536135	39.7048087
-12589	8764	4921	0.0107315298188712	0.0107315298188712	-104.9907602	39.7299304	-104.9906535	39.7299812
-12590	4921	8062	0.0635329705608418	0.0635329705608418	-104.9906535	39.7299812	-104.9902595	39.7304656
-12591	8062	6584	0.176700679215808	0.176700679215808	-104.9902595	39.7304656	-104.9902658	39.7320547
-12592	6584	5366	0.199428899537142	0.199428899537142	-104.9902658	39.7320547	-104.9902592	39.7338482
-12593	5366	7124	0.156701102941306	0.156701102941306	-104.9902592	39.7338482	-104.9902249	39.7352572
-12594	7124	612	0.178308153840751	0.178308153840751	-104.9902249	39.7352572	-104.9902547	39.7368606
-12595	612	1943	0.177718886558766	0.177718886558766	-104.9902547	39.7368606	-104.9902169	39.7384586
-12596	1943	8765	0.0553792982616949	0.0553792982616949	-104.9902169	39.7384586	-104.9902249	39.7389566
-12597	8765	8767	0.0568805264393287	0.0568805264393287	-104.9902249	39.7389566	-104.9902331	39.7394681
-12625	8778	8779	0.0386703080825578	0.0386703080825578	-104.9874654	39.72522	-104.9874745	39.7248723
-12598	8767	8768	0.0596299154046411	0.0596299154046411	-104.9902331	39.7394681	-104.9903111	39.740001
-12600	8217	8764	0.0348766827140038	0.0348766827140038	-104.9911152	39.729776	-104.9907602	39.7299304
-12602	8769	7960	0.0121246465842421	0.0121246465842421	-104.9904615	39.7289525	-104.9906006	39.7289314
-12636	8782	8776	0.0415201856091735	0.0415201856091735	-104.9874245	39.7271431	-104.9874245	39.7267697
-12603	7960	7858	0.191569398536593	0.191569398536593	-104.9906006	39.7289314	-104.9928407	39.7289388
-12604	7858	384	0.0511824976047815	0.0511824976047815	-104.9928407	39.7289388	-104.9934388	39.7289219
-12606	4685	296	0.0500706281631231	0.0500706281631231	-104.9940378	39.7289164	-104.9946233	39.7289153
-12607	296	4955	0.0491810974692235	0.0491810974692235	-104.9946233	39.7289153	-104.9951984	39.7289153
-12608	4955	7223	0.104958162725722	0.104958162725722	-104.9951984	39.7289153	-104.9964257	39.7289087
-12611	8773	8774	0.043865298365945	0.043865298365945	-104.9975826	39.7288966	-104.9980954	39.7289058
-12612	8774	6643	0.0451313849693394	0.0451313849693394	-104.9980954	39.7289058	-104.998623	39.7289153
-12613	6643	8218	0.0697309457073312	0.0697309457073312	-104.998623	39.7289153	-104.9994384	39.7289153
-12614	8218	3952	0.0651671851260823	0.0651671851260823	-104.9994384	39.7289153	-105.0002004	39.7289098
-12616	1623	8769	0.0363096662742893	0.0363096662742893	-104.990046	39.7290197	-104.9904615	39.7289525
-12618	5097	8775	0.0318529970242771	0.0318529970242771	-104.9898761	39.7283677	-104.9895915	39.7285525
-12622	8776	8777	0.018725243223035	0.018725243223035	-104.9874245	39.7267697	-104.9874242	39.7266013
-12623	8777	6243	0.106972614023441	0.106972614023441	-104.9874242	39.7266013	-104.9874615	39.7256397
-12624	6243	8778	0.0466697025677041	0.0466697025677041	-104.9874615	39.7256397	-104.9874654	39.72522
-12626	8779	5192	0.0833353912042221	0.0833353912042221	-104.9874745	39.7248723	-104.9874942	39.724123
-12627	5192	8780	0.0302234211776424	0.0302234211776424	-104.9874942	39.724123	-104.9874919	39.7238512
-12628	8780	8781	0.0269541929474085	0.0269541929474085	-104.9874919	39.7238512	-104.9874899	39.7236088
-12629	8781	2610	0.119870657472311	0.119870657472311	-104.9874899	39.7236088	-104.9874808	39.7225308
-12630	2610	1838	0.176410752987704	0.176410752987704	-104.9874808	39.7225308	-104.9874805	39.7209443
-12631	1838	2360	0.17767880886817	0.17767880886817	-104.9874805	39.7209443	-104.9874759	39.7193464
-12633	3710	4430	0.0984187629622127	0.0984187629622127	-104.9874523	39.7183509	-104.9874697	39.7174659
-12634	4430	5171	0.100485171973402	0.100485171973402	-104.9874697	39.7174659	-104.9874858	39.7165623
-12638	968	8783	0.0450647850917565	0.0450647850917565	-104.9837585	39.7235715	-104.983647	39.7239676
-12640	8783	6332	0.0179790401179982	0.0179790401179982	-104.983647	39.7239676	-104.9836195	39.7241279
-12641	6332	8784	0.166916939377104	0.166916939377104	-104.9836195	39.7241279	-104.9836094	39.725629
-12642	8784	8785	0.0824631793427953	0.0824631793427953	-104.9836094	39.725629	-104.9836046	39.7263706
-12643	8785	8786	0.100743867095121	0.100743867095121	-104.9836046	39.7263706	-104.9835987	39.7272766
-12644	8786	3809	0.198861011407653	0.198861011407653	-104.9835987	39.7272766	-104.9835982	39.729065
-12645	3809	5921	0.152448419282946	0.152448419282946	-104.9835982	39.729065	-104.9835955	39.730436
-12647	920	2206	0.198794444530698	0.198794444530698	-104.9835814	39.7320454	-104.9835843	39.7338332
-12648	2206	4855	0.161210664735901	0.161210664735901	-104.9835843	39.7338332	-104.9836067	39.7352829
-12649	4855	8787	0.176180330331867	0.176180330331867	-104.9836067	39.7352829	-104.9835945	39.7368673
-12650	8787	5459	0.173977209442215	0.173977209442215	-104.9835945	39.7368673	-104.9835857	39.7384319
-12651	5459	8788	0.179581076943561	0.179581076943561	-104.9835857	39.7384319	-104.9835778	39.7400469
-12652	8788	653	0.182661218967331	0.182661218967331	-104.9835778	39.7400469	-104.9835697	39.7416896
-12653	653	8789	0.175533060842227	0.175533060842227	-104.9835697	39.7416896	-104.9835757	39.7432682
-12654	8789	4615	0.178562453757686	0.178562453757686	-104.9835757	39.7432682	-104.9835591	39.744874
-12655	4615	6485	0.147124798702961	0.147124798702961	-104.9835591	39.744874	-104.9835697	39.7461971
-12656	6485	3681	0.150536039008347	0.150536039008347	-104.9835697	39.7461971	-104.9836002	39.7475507
-12658	5282	8790	0.0413354062568629	0.0413354062568629	-104.9825741	39.7226935	-104.9824367	39.7230499
-12660	8790	6331	0.0121138578035044	0.0121138578035044	-104.9824367	39.7230499	-104.9824024	39.7231556
-12662	6548	8791	0.16625102712937	0.16625102712937	-104.9823535	39.7241259	-104.9823661	39.725621
-12663	8791	8792	0.184061439099574	0.184061439099574	-104.9823661	39.725621	-104.9823612	39.7272763
-12664	8792	3808	0.198594245045878	0.198594245045878	-104.9823612	39.7272763	-104.9823636	39.7290623
-12665	3808	5923	0.153339826215406	0.153339826215406	-104.9823636	39.7290623	-104.9822823	39.7304399
-12666	5923	922	0.17696116360303	0.17696116360303	-104.9822823	39.7304399	-104.9822659	39.7320313
-12667	922	2208	0.186196659484346	0.186196659484346	-104.9822659	39.7320313	-104.9822597	39.7337058
-12668	2208	4857	0.160795645903838	0.160795645903838	-104.9822597	39.7337058	-104.9822782	39.7351518
-12669	4857	8793	0.191420788288479	0.191420788288479	-104.9822782	39.7351518	-104.9823009	39.7368732
-12671	5460	8794	0.176401987583553	0.176401987583553	-104.9823009	39.7384375	-104.9823264	39.7400238
-12672	8794	8795	0.177191749793072	0.177191749793072	-104.9823264	39.7400238	-104.9823377	39.7416173
-12673	8795	654	0.00549383449703672	0.00549383449703672	-104.9823377	39.7416173	-104.9823388	39.7416667
-12674	654	8796	0.178534682523657	0.178534682523657	-104.9823388	39.7416667	-104.9823365	39.7432723
-12675	8796	4614	0.177531607780329	0.177531607780329	-104.9823365	39.7432723	-104.9823157	39.7448688
-12676	4614	6486	0.147678461213278	0.147678461213278	-104.9823157	39.7448688	-104.9823113	39.7461969
-12677	6486	3679	0.150313310591357	0.150313310591357	-104.9823113	39.7461969	-104.9823107	39.7475487
-12681	8798	8799	0.123466110327723	0.123466110327723	-104.9457531	39.7104012	-104.9464054	39.7113917
-12682	8799	3186	0.00950854696516887	0.00950854696516887	-104.9464054	39.7113917	-104.9464561	39.7114678
-12683	3186	8800	0.0308360436433676	0.0308360436433676	-104.9464561	39.7114678	-104.9467659	39.7116096
-12685	8801	8802	0.231947805663281	0.231947805663281	-104.9590492	39.7160869	-104.9590692	39.7181728
-12686	8802	8803	0.0199646364044365	0.0199646364044365	-104.9590692	39.7181728	-104.9590745	39.7183523
-12687	8803	5017	0.0091876036672495	0.0091876036672495	-104.9590745	39.7183523	-104.9590772	39.7184349
-12692	7064	8808	0.0247148912105672	0.0247148912105672	-104.95025	39.7175567	-104.9500032	39.7176723
-12693	8808	8685	0.0234885972598816	0.0234885972598816	-104.9500032	39.7176723	-104.9497565	39.7177651
-20809	8326	10950	0.0125120772932362	0.0125120772932362	-105.029018	39.7621132	-105.0289678	39.7620075
-16680	9982	9983	0.0455494891280306	0.0455494891280306	-105.00793	39.7419174	-105.0074579	39.7421072
-15872	7130	8879	0.124695897236049	0.124695897236049	-105.0370687	39.7347704	-105.0382757	39.7341411
-12694	8685	8023	0.100302779247875	0.100302779247875	-104.9497565	39.7177651	-104.9485858	39.7178178
-12696	8809	8685	0.057365793634115	0.057365793634115	-104.9497699	39.7172493	-104.9497565	39.7177651
-12699	8810	4109	0.100464246278784	0.100464246278784	-104.9500622	39.7177177	-104.9511309	39.7180926
-12700	4109	2643	0.0901887127804005	0.0901887127804005	-104.9511309	39.7180926	-104.9521735	39.7182139
-12702	8805	7976	0.102773783270916	0.102773783270916	-104.9534009	39.718219	-104.9546025	39.7182181
-12703	7976	7318	0.104083044705694	0.104083044705694	-104.9546025	39.7182181	-104.9558194	39.7182147
-12704	7318	8803	0.278830952538266	0.278830952538266	-104.9558194	39.7182147	-104.9590745	39.7183523
-12706	8811	8812	0.108086464170563	0.108086464170563	-104.9494453	39.7136057	-104.9497656	39.714546
-12707	8812	6861	0.0114665228848291	0.0114665228848291	-104.9497656	39.714546	-104.9497683	39.7146491
-12709	5165	8809	0.109306863073043	0.109306863073043	-104.9497617	39.7162663	-104.9497699	39.7172493
-12710	8809	8808	0.0510932247106912	0.0510932247106912	-104.9497699	39.7172493	-104.9500032	39.7176723
-12712	8798	6379	0.100799788599422	0.100799788599422	-104.9457531	39.7104012	-104.9449548	39.7097344
-12713	6379	6099	0.0584802680423258	0.0584802680423258	-104.9449548	39.7097344	-104.9444906	39.7093483
-12714	6099	8202	0.382882462386682	0.382882462386682	-104.9444906	39.7093483	-104.9408446	39.707351
-12716	8813	8173	0.0533183303572635	0.0533183303572635	-104.9406573	39.7061997	-104.940655	39.7066792
-12718	8814	8815	0.0594781662619651	0.0594781662619651	-104.940835	39.70673	-104.940835	39.7061951
-12720	8815	3633	0.0139674412080793	0.0139674412080793	-104.940835	39.7061951	-104.9408419	39.7060696
-14286	6672	3115	0.0991095918198707	0.0991095918198707	-104.9362682	39.7146512	-104.9351095	39.7146512
-15288	8812	7065	0.0171061341992079	0.0171061341992079	-104.9497656	39.714546	-104.9499634	39.7145233
-12722	3295	8191	0.195769878320479	0.195769878320479	-104.9407838	39.7038199	-104.940786	39.7020593
-12723	8191	103	0.207801078913796	0.207801078913796	-104.940786	39.7020593	-104.940786	39.7001905
-12724	103	3505	0.201240848446412	0.201240848446412	-104.940786	39.7001905	-104.940829	39.698381
-12725	3505	8816	0.20140010471513	0.20140010471513	-104.940829	39.698381	-104.940726	39.6965715
-12726	8816	8817	0.0467910785706761	0.0467910785706761	-104.940726	39.6965715	-104.9407242	39.6961507
-12727	8817	8759	0.155886707244551	0.155886707244551	-104.9407242	39.6961507	-104.9407346	39.6947488
-12728	8759	8818	0.0209382564173288	0.0209382564173288	-104.9407346	39.6947488	-104.9407334	39.6945605
-12729	8818	8819	0.0390294530141924	0.0390294530141924	-104.9407334	39.6945605	-104.940734	39.6942095
-12730	8819	8820	0.0609459777309488	0.0609459777309488	-104.940734	39.6942095	-104.9407348	39.6936614
-12732	7196	5844	0.199996639851393	0.199996639851393	-104.940735	39.692928	-104.9407088	39.6911295
-12733	5844	7747	0.201963345264684	0.201963345264684	-104.9407088	39.6911295	-104.9407088	39.6893132
-12734	7747	8821	0.660668042362938	0.660668042362938	-104.9407088	39.6893132	-104.9406408	39.6833719
-12737	6675	8823	0.018377691001392	0.018377691001392	-104.9362112	39.6893266	-104.9359966	39.6893199
-12738	8823	3121	0.0817086617793047	0.0817086617793047	-104.9359966	39.6893199	-104.9350417	39.6893238
-12739	3121	3122	0.0189462201356829	0.0189462201356829	-104.9350417	39.6893238	-104.9348207	39.6893133
-12740	3122	6294	0.0736313115214917	0.0736313115214917	-104.9348207	39.6893133	-104.9339602	39.6893172
-12741	6294	6295	0.0205616464638412	0.0205616464638412	-104.9339602	39.6893172	-104.9337199	39.6893172
-12742	6295	6620	0.098958190214706	0.098958190214706	-104.9337199	39.6893172	-104.9325634	39.6893199
-14308	9323	2191	0.217246414275379	0.217246414275379	-104.9918391	39.7579642	-104.9936227	39.759356
-12743	6620	7343	0.0741923893812443	0.0741923893812443	-104.9325634	39.6893199	-104.9316965	39.6893332
-12744	7343	2845	0.101548527960204	0.101548527960204	-104.9316965	39.6893332	-104.9305098	39.6893437
-12745	2845	3494	0.101534987318255	0.101534987318255	-104.9305098	39.6893437	-104.9293234	39.6893613
-12746	3494	5350	0.0785982086314387	0.0785982086314387	-104.9293234	39.6893613	-104.928405	39.689348
-12748	4220	2948	0.0852112039835386	0.0852112039835386	-104.9274781	39.6893679	-104.9264824	39.6893811
-12749	2948	2949	0.056569943078372	0.056569943078372	-104.9264824	39.6893811	-104.9258215	39.6893679
-12750	2949	6813	0.0330539311277449	0.0330539311277449	-104.9258215	39.6893679	-104.9254353	39.6893745
-12751	6813	6810	0.0675878090482117	0.0675878090482117	-104.9254353	39.6893745	-104.9246456	39.6893613
-12752	6810	1814	0.0227606927419569	0.0227606927419569	-104.9246456	39.6893613	-104.9243796	39.6893613
-12753	1814	8824	0.984700828985706	0.984700828985706	-104.9243796	39.6893613	-104.9128716	39.689347
-12754	8823	8825	0.40169861106651	0.40169861106651	-104.9359966	39.6893199	-104.936139	39.685709
-12779	3798	5937	0.1524274277381	0.1524274277381	-104.9729432	39.7290745	-104.9729509	39.7304453
-12755	8826	7748	0.668566967249301	0.668566967249301	-104.9403877	39.6833057	-104.9405349	39.6893172
-12756	7748	5845	0.201518653480334	0.201518653480334	-104.9405349	39.6893172	-104.9405371	39.6911295
-12757	5845	7197	0.200485803128442	0.200485803128442	-104.9405371	39.6911295	-104.9405457	39.6929325
-12758	7197	8827	0.180703533412633	0.180703533412633	-104.9405457	39.6929325	-104.94054	39.6945576
-12759	8827	8760	0.0207611083367854	0.0207611083367854	-104.94054	39.6945576	-104.9405376	39.6947443
-12760	8760	8828	0.203176551906279	0.203176551906279	-104.9405376	39.6947443	-104.9405457	39.6965715
-12761	8828	3506	0.200871002946695	0.200871002946695	-104.9405457	39.6965715	-104.9406406	39.6983765
-12763	8170	8192	0.20854015704238	0.20854015704238	-104.9405886	39.7001839	-104.9406058	39.7020593
-12764	8192	3296	0.195770030101267	0.195770030101267	-104.9406058	39.7020593	-104.9406022	39.7038199
-12765	3296	8183	0.100143064441761	0.100143064441761	-104.9406022	39.7038199	-104.9405972	39.7047205
-12766	8183	8188	0.148673984504934	0.148673984504934	-104.9405972	39.7047205	-104.9406663	39.7060565
-12767	8188	8813	0.0159417159428289	0.0159417159428289	-104.9406663	39.7060565	-104.9406573	39.7061997
-12769	2918	8829	0.0404869067666165	0.0404869067666165	-104.9732171	39.7182486	-104.9732505	39.7186118
-12771	8829	6328	0.00908621391699812	0.00908621391699812	-104.9732505	39.7186118	-104.9732624	39.718693
-12772	6328	8830	0.0795394987314785	0.0795394987314785	-104.9732624	39.718693	-104.9732562	39.7194083
-12774	4166	4751	0.202375182887314	0.202375182887314	-104.972908	39.7201406	-104.9729128	39.7219606
-12775	4751	6542	0.197696304569089	0.197696304569089	-104.9729128	39.7219606	-104.9729252	39.7237385
-12776	6542	8831	0.204678217467742	0.204678217467742	-104.9729252	39.7237385	-104.9729154	39.7255792
-12778	8832	3798	0.199708223967288	0.199708223967288	-104.9729324	39.7272785	-104.9729432	39.7290745
-12780	5937	938	0.177624298285183	0.177624298285183	-104.9729509	39.7304453	-104.9729595	39.7320427
-12781	938	2222	0.185255991502605	0.185255991502605	-104.9729595	39.7320427	-104.9729758	39.7337087
-12782	2222	4872	0.159853083829866	0.159853083829866	-104.9729758	39.7337087	-104.9729971	39.7351462
-12783	4872	8834	0.191323978817286	0.191323978817286	-104.9729971	39.7351462	-104.9730073	39.7368668
-12787	28	8836	0.0411233276076822	0.0411233276076822	-104.9850866	39.7002557	-104.9855672	39.7002491
-15407	8527	8524	0.00632598868026626	0.00632598868026626	-105.0054168	39.751192	-105.0053655	39.751233
-16685	9986	9987	0.0852803879953952	0.0852803879953952	-105.007297	39.7423918	-105.0064333	39.7427754
-12788	8830	4165	0.0810572303723974	0.0810572303723974	-104.9732562	39.7194083	-104.9733458	39.720134
-12790	4096	6041	0.191845009601904	0.191845009601904	-105.0181552	39.7838945	-105.0181598	39.7856198
-12791	6041	8837	0.201496335450174	0.201496335450174	-105.0181598	39.7856198	-105.0181605	39.7874319
-12792	8837	8838	0.406062586796109	0.406062586796109	-105.0181605	39.7874319	-105.0181502	39.7910837
-12793	4086	6031	0.181162285735164	0.181162285735164	-105.0112057	39.7838279	-105.0111925	39.7854571
-12794	6031	6032	0.0171385466290399	0.0171385466290399	-105.0111925	39.7854571	-105.0111965	39.7856112
-12795	6032	8839	0.201396970557967	0.201396970557967	-105.0111965	39.7856112	-105.0112028	39.7874224
-12796	8839	2539	0.0036249646793062	0.0036249646793062	-105.0112028	39.7874224	-105.0112029	39.787455
-12797	2539	7937	0.222367701142404	0.222367701142404	-105.0112029	39.787455	-105.0112006	39.7894548
-12798	7937	8840	0.179081080346528	0.179081080346528	-105.0112006	39.7894548	-105.0111916	39.7910653
-12799	8520	8841	0.0687184646666591	0.0687184646666591	-105.006397	39.7829043	-105.006397	39.7835223
-12801	8841	298	0.017862044588972	0.017862044588972	-105.006397	39.7835223	-105.0063925	39.7836829
-12802	298	4082	0.0176901086131869	0.0176901086131869	-105.0063925	39.7836829	-105.0063995	39.7838419
-12805	2560	6714	0.0892568890732451	0.0892568890732451	-105.0064215	39.7862585	-105.0064173	39.7870612
-12806	6714	6633	0.0879831056932755	0.0879831056932755	-105.0064173	39.7870612	-105.006429	39.7878524
-12807	6633	8844	0.0442062339102578	0.0442062339102578	-105.006429	39.7878524	-105.0064203	39.7882499
-12808	8844	7935	0.0446455487862746	0.0446455487862746	-105.0064203	39.7882499	-105.0064172	39.7886514
-12809	7935	8845	0.265612509858697	0.265612509858697	-105.0064172	39.7886514	-105.0064079	39.7910401
-12817	297	299	0.88607517832177	0.88607517832177	-104.999633	39.7829256	-105.0099714	39.7835424
-12823	493	589	0.268896577305787	0.268896577305787	-104.994193	39.7810897	-104.9917474	39.779568
-12824	589	8850	0.33804717039653	0.33804717039653	-104.9917474	39.779568	-104.9897894	39.7769264
-12826	8589	8851	0.042366080089372	0.042366080089372	-105.000578	39.7453477	-105.0002455	39.7456302
-12828	8851	4936	0.0170501490589131	0.0170501490589131	-105.0002455	39.7456302	-105.0001355	39.7457581
-12829	4936	8509	0.143621366769105	0.143621366769105	-105.0001355	39.7457581	-104.9989592	39.7466802
-12831	8852	8853	0.0917176896741063	0.0917176896741063	-104.9926518	39.7567579	-104.9919124	39.7561602
-12832	8853	7564	0.105551904949528	0.105551904949528	-104.9919124	39.7561602	-104.9910557	39.7554766
-12833	7564	6182	0.105801475446669	0.105801475446669	-104.9910557	39.7554766	-104.990176	39.7548073
-12834	6182	8854	0.10583574357693	0.10583574357693	-104.990176	39.7548073	-104.9893092	39.7541277
-12835	8854	8855	0.00547189672663909	0.00547189672663909	-104.9893092	39.7541277	-104.9892657	39.7540916
-18650	1854	2593	0.177389867684494	0.177389867684494	-105.0379177	39.7213314	-105.0379231	39.7229267
-12837	8856	8857	0.0555847646631402	0.0555847646631402	-104.988892	39.7538026	-104.9884337	39.753448
-12838	8857	8858	0.0519115005666898	0.0519115005666898	-104.9884337	39.753448	-104.988003	39.7531189
-12839	8858	8636	0.0515833043565609	0.0515833043565609	-104.988003	39.7531189	-104.987575	39.7527919
-12840	8636	8859	0.0207966249820583	0.0207966249820583	-104.987575	39.7527919	-104.9873914	39.7526692
-12844	8860	1198	0.169110109980516	0.169110109980516	-104.9520697	39.7256077	-104.9520847	39.7271285
-12845	1198	8861	0.0226617213022113	0.0226617213022113	-104.9520847	39.7271285	-104.9520836	39.7273323
-12847	8862	1200	0.170240075619945	0.170240075619945	-104.9509005	39.7256047	-104.9509239	39.7271356
-12848	1200	8863	0.0219879091267488	0.0219879091267488	-104.9509239	39.7271356	-104.9509292	39.7273333
-12850	8864	7983	0.0505037947042799	0.0505037947042799	-104.9546471	39.7305018	-104.9540572	39.7305236
-12851	7983	2054	0.099824917404873	0.099824917404873	-104.9540572	39.7305236	-104.9528899	39.730517
-12852	2054	2660	0.101497408945607	0.101497408945607	-104.9528899	39.730517	-104.9517031	39.7305282
-12853	2660	4133	0.0961563998269834	0.0961563998269834	-104.9517031	39.7305282	-104.9505787	39.7305216
-12855	6696	8019	0.0939673290333738	0.0939673290333738	-104.9494801	39.7305216	-104.9483814	39.7305084
-12856	8019	7683	0.0941529054095407	0.0941529054095407	-104.9483814	39.7305084	-104.9472804	39.7305107
-12857	7683	3457	0.0935091254143676	0.0935091254143676	-104.9472804	39.7305107	-104.946187	39.7305008
-12858	3457	8865	0.0461569199164165	0.0461569199164165	-104.946187	39.7305008	-104.9456473	39.7304952
-12859	8865	6019	0.0480340625550536	0.0480340625550536	-104.9456473	39.7304952	-104.9450856	39.7304952
-12860	6019	8866	0.0464697146879775	0.0464697146879775	-104.9450856	39.7304952	-104.9445422	39.7304973
-12861	8866	8867	0.048094543326443	0.048094543326443	-104.9445422	39.7304973	-104.9439798	39.7304995
-12862	8867	8868	0.0461790217746061	0.0461790217746061	-104.9439798	39.7304995	-104.9434398	39.7304973
-12863	8868	856	0.0449646613539359	0.0449646613539359	-104.9434398	39.7304973	-104.942914	39.7304952
-12864	856	451	0.0470078764226648	0.0470078764226648	-104.942914	39.7304952	-104.9423643	39.7304952
-12865	451	7105	0.0432708485882178	0.0432708485882178	-104.9423643	39.7304952	-104.9418583	39.7304952
-12866	7105	8869	0.0939007256947679	0.0939007256947679	-104.9418583	39.7304952	-104.9407607	39.7304709
-12868	8870	1196	0.168829878028139	0.168829878028139	-104.9532283	39.7256124	-104.9532393	39.7271307
-12869	1196	8871	0.021661446985008	0.021661446985008	-104.9532393	39.7271307	-104.9532413	39.7273255
-12871	4760	5407	0.0842978699895538	0.0842978699895538	-104.966261	39.7219977	-104.9658146	39.7226736
-12873	4755	6546	0.199683159238461	0.199683159238461	-104.9682436	39.7219606	-104.9682779	39.7237562
-12874	6546	8872	0.20436535055464	0.20436535055464	-104.9682779	39.7237562	-104.9682812	39.7255941
-12875	8872	8873	0.188956325706579	0.188956325706579	-104.9682812	39.7255941	-104.9682932	39.7272934
-12876	8873	3792	0.199291485976659	0.199291485976659	-104.9682932	39.7272934	-104.968314	39.7290856
-17796	10179	9318	0.114755253361823	0.114755253361823	-104.9873946	39.7555556	-104.9873865	39.7545236
-12877	3792	8561	0.13059037096191	0.13059037096191	-104.968314	39.7290856	-104.9673609	39.7300032
-12879	5926	924	0.178374370928188	0.178374370928188	-104.9809932	39.730424	-104.9810307	39.7320279
-12880	924	2210	0.187308783265319	0.187308783265319	-104.9810307	39.7320279	-104.9810238	39.7337124
-12881	2210	4859	0.159743099068053	0.159743099068053	-104.9810238	39.7337124	-104.9810463	39.7351489
-12882	4859	8874	0.192629276936053	0.192629276936053	-104.9810463	39.7351489	-104.9810766	39.7368811
-12883	8874	5461	0.172330101173688	0.172330101173688	-104.9810766	39.7368811	-104.9810735	39.7384309
-12884	5461	8875	0.177416584260724	0.177416584260724	-104.9810735	39.7384309	-104.9810892	39.7400264
-12885	8875	8876	0.176433616828762	0.176433616828762	-104.9810892	39.7400264	-104.9810837	39.7416131
-12887	655	8877	0.00413648661723727	0.00413648661723727	-104.9810836	39.7416667	-104.9810838	39.7417039
-12888	8877	8878	0.173943602457692	0.173943602457692	-104.9810838	39.7417039	-104.9810919	39.7432682
-12889	8878	4613	0.177428437243737	0.177428437243737	-104.9810919	39.7432682	-104.981055	39.7448636
-12890	4613	6487	0.148280300321704	0.148280300321704	-104.981055	39.7448636	-104.9810463	39.7461971
-12891	6487	3678	0.149828166583799	0.149828166583799	-104.9810463	39.7461971	-104.9810333	39.7475445
-12893	5929	926	0.177267011666895	0.177267011666895	-104.9798324	39.7304351	-104.9798307	39.7320293
-12894	926	2211	0.187019197552967	0.187019197552967	-104.9798307	39.7320293	-104.9798259	39.7337112
-12895	2211	4861	0.161667462022208	0.161667462022208	-104.9798259	39.7337112	-104.9798492	39.735165
-12896	4861	8880	0.191414125057248	0.191414125057248	-104.9798492	39.735165	-104.9798621	39.7368864
-12897	8880	5463	0.170299846109482	0.170299846109482	-104.9798621	39.7368864	-104.9798976	39.7384177
-12898	5463	8881	0.177990586801656	0.177990586801656	-104.9798976	39.7384177	-104.9798911	39.7400184
-12899	8881	8885	0.177780189019753	0.177780189019753	-104.9798911	39.7400184	-104.9798819	39.7416172
-12900	8885	659	0.00646246375156384	0.00646246375156384	-104.9798819	39.7416172	-104.979874	39.741675
-12901	659	8886	0.177011471342036	0.177011471342036	-104.979874	39.741675	-104.9798704	39.7432669
-12902	8886	4612	0.177005843155015	0.177005843155015	-104.9798704	39.7432669	-104.9798537	39.7448587
-12903	4612	6488	0.148001366258512	0.148001366258512	-104.9798537	39.7448587	-104.9798598	39.7461897
-12904	6488	3676	0.150380555650091	0.150380555650091	-104.9798598	39.7461897	-104.9798645	39.7475421
-12906	1621	8061	0.152748999526467	0.152748999526467	-104.9888599	39.7290834	-104.9888552	39.7304571
-12907	8061	6583	0.177490187745079	0.177490187745079	-104.9888552	39.7304571	-104.9888311	39.7320532
-12908	6583	5365	0.198863610387104	0.198863610387104	-104.9888311	39.7320532	-104.988843	39.7338416
-12909	5365	7123	0.157919035747255	0.157919035747255	-104.988843	39.7338416	-104.9888432	39.7352618
-12911	8092	8887	0.220134314041521	0.220134314041521	-104.9877223	39.7268463	-104.9858598	39.7254798
-12913	8887	8888	0.191841135190913	0.191841135190913	-104.9858598	39.7254798	-104.984536	39.724087
-12914	8888	967	0.0966749413586244	0.0966749413586244	-104.984536	39.724087	-104.9838014	39.7234262
-12916	5281	4980	0.256490434532314	0.256490434532314	-104.982597	39.7225939	-104.9802767	39.7211325
-12917	4980	4148	0.0387618071437701	0.0387618071437701	-104.9802767	39.7211325	-104.9799133	39.7209242
-12918	4148	8125	0.0859291558348279	0.0859291558348279	-104.9799133	39.7209242	-104.9791138	39.7204562
-12919	8125	2368	0.179404398665568	0.179404398665568	-104.9791138	39.7204562	-104.9775163	39.7194106
-12920	2368	996	0.270881468937897	0.270881468937897	-104.9775163	39.7194106	-104.9745895	39.7184798
-12921	996	2914	0.0678890736084051	0.0678890736084051	-104.9745895	39.7184798	-104.9738264	39.7183118
-12922	2914	2917	0.0548386478267142	0.0548386478267142	-104.9738264	39.7183118	-104.9732076	39.7181827
-12927	8894	8895	0.135035418511701	0.135035418511701	-105.0072481	39.7422069	-105.00609	39.7413812
-12929	8896	3167	0.11730986547504	0.11730986547504	-105.0048016	39.7429839	-105.00401	39.7438456
-12932	8898	8899	0.10458723954588	0.10458723954588	-105.0038366	39.7434181	-105.0050563	39.7433465
-12971	8901	8709	0.120698197647431	0.120698197647431	-105.0035419	39.745319	-105.0028925	39.7443552
-12978	8902	8903	0.00973401952734473	0.00973401952734473	-105.0104246	39.7573245	-105.0105064	39.7573854
-12979	8903	7902	0.144472845078957	0.144472845078957	-105.0105064	39.7573854	-105.0116934	39.7583103
-12980	7902	1225	0.0118169371778595	0.0118169371778595	-105.0116934	39.7583103	-105.0118006	39.7583774
-12982	8904	8902	0.0775029978833242	0.0775029978833242	-105.0097742	39.7568389	-105.0104246	39.7573245
-12984	8905	8906	0.061203121949655	0.061203121949655	-105.007434	39.7550594	-105.0079422	39.7554471
-12986	8906	8907	0.00497763084611722	0.00497763084611722	-105.0079422	39.7554471	-105.0079847	39.7554777
-12987	8907	121	0.154154812192847	0.154154812192847	-105.0079847	39.7554777	-105.0092699	39.7564502
-12988	121	8904	0.0610449885391548	0.0610449885391548	-105.0092699	39.7564502	-105.0097742	39.7568389
-12990	8325	8908	0.013157216132198	0.013157216132198	-105.0288943	39.7621125	-105.0289792	39.7622112
-12992	306	8909	0.108316294946991	0.108316294946991	-105.029097	39.762348	-105.0299448	39.763072
-12994	8328	8910	0.00899626589788406	0.00899626589788406	-105.0300154	39.7621147	-105.0300335	39.7621944
-12995	8910	8338	0.040824296618527	0.040824296618527	-105.0300335	39.7621944	-105.0300407	39.7625615
-12996	8338	6084	0.0494050923488005	0.0494050923488005	-105.0300407	39.7625615	-105.0300536	39.7630057
-12997	6084	8909	0.0118673496888767	0.0118673496888767	-105.0300536	39.7630057	-105.0299448	39.763072
-12998	8909	743	0.0430251864291126	0.0430251864291126	-105.0299448	39.763072	-105.0300547	39.7634496
-12999	743	4526	0.0484294102772242	0.0484294102772242	-105.0300547	39.7634496	-105.030062	39.7638851
-13000	4526	607	0.0194349740430761	0.0194349740430761	-105.030062	39.7638851	-105.0300516	39.7640597
-13001	607	8355	0.0344276469779443	0.0344276469779443	-105.0300516	39.7640597	-105.0300476	39.7643693
-13002	8355	3974	0.0402278696203799	0.0402278696203799	-105.0300476	39.7643693	-105.0299675	39.7647258
-13004	8911	2658	0.732133935065161	0.732133935065161	-104.9912548	39.7699266	-104.9890044	39.7762796
-13012	8915	8916	0.408272009335824	0.408272009335824	-104.9895806	39.7764348	-104.9907275	39.7728705
-13090	1914	6117	0.200190217467506	0.200190217467506	-104.972136	39.707488	-104.9721753	39.7092881
-13018	8922	8923	0.320042964228513	0.320042964228513	-104.9912716	39.7717176	-104.9942478	39.7699708
-13022	8265	8926	0.339879399665874	0.339879399665874	-104.9903119	39.7820401	-104.989367	39.779071
-13027	4265	279	0.0652387434169228	0.0652387434169228	-104.9869736	39.7783568	-104.987002	39.7789431
-13029	494	8927	0.349190481522976	0.349190481522976	-104.992407	39.7804327	-104.9887446	39.7818256
-13040	8104	8678	0.200106495095782	0.200106495095782	-104.9912065	39.7783357	-104.9912089	39.7765361
-13042	8932	8933	0.108557788789167	0.108557788789167	-104.9900544	39.7765237	-104.9887841	39.7765237
-13044	8677	8932	0.0500470435519063	0.0500470435519063	-104.99064	39.7765283	-104.9900544	39.7765237
-13046	8933	6917	0.0967430583925215	0.0967430583925215	-104.9887841	39.7765237	-104.9879258	39.777091
-13050	8936	8937	0.198244621757318	0.198244621757318	-104.9889754	39.7833371	-104.9891177	39.7851166
-13084	8956	8756	0.203550658006643	0.203550658006643	-104.9419095	39.6965915	-104.9418766	39.6947611
-13052	8938	8939	0.428260593428089	0.428260593428089	-104.988834	39.791086	-104.9895413	39.7872731
-13053	8939	8425	0.201936465504692	0.201936465504692	-104.9895413	39.7872731	-104.9895725	39.7854572
-13055	8939	8941	0.203022755730075	0.203022755730075	-104.9895413	39.7872731	-104.9897554	39.7854547
-13057	8931	8942	0.152950212219782	0.152950212219782	-104.9953405	39.768167	-104.9969401	39.7675503
-13059	8943	8931	0.0786273196751871	0.0786273196751871	-104.9945316	39.7685038	-104.9953405	39.768167
-19033	256	10159	0.12356745711476	0.12356745711476	-104.9516897	39.7797769	-104.9503671	39.7793277
-13063	8945	8946	0.104572805049419	0.104572805049419	-104.9946559	39.7678998	-104.9938162	39.7672158
-13067	8949	432	0.545131832456565	0.545131832456565	-104.9945174	39.7681578	-104.9902144	39.7717766
-13068	432	8950	0.686001065667251	0.686001065667251	-104.9902144	39.7717766	-104.9892186	39.7778983
-13070	8951	8949	0.0797207044078447	0.0797207044078447	-104.9953492	39.7678334	-104.9945174	39.7681578
-13074	8952	8953	0.195031053860659	0.195031053860659	-104.9945443	39.7680713	-104.9925416	39.768912
-13076	99	3503	0.199966819322067	0.199966819322067	-104.9430615	39.7001973	-104.943078	39.698399
-13077	3503	8954	0.201518791118212	0.201518791118212	-104.943078	39.698399	-104.943035	39.696587
-13078	8954	8755	0.203764704692679	0.203764704692679	-104.943035	39.696587	-104.9430353	39.6947545
-13079	8755	7193	0.202942329745549	0.202942329745549	-104.9430353	39.6947545	-104.9430302	39.6929294
-13080	7193	7746	0.401362186865274	0.401362186865274	-104.9430302	39.6929294	-104.943009	39.6893199
-13081	7746	8955	0.585986287872625	0.585986287872625	-104.943009	39.6893199	-104.9430138	39.68405
-13082	101	3504	0.19989908085758	0.19989908085758	-104.9418857	39.7001887	-104.9419144	39.6983911
-13083	3504	8956	0.200106829133291	0.200106829133291	-104.9419144	39.6983911	-104.9419095	39.6965915
-13085	8756	7194	0.202942348322105	0.202942348322105	-104.9418766	39.6947611	-104.9418714	39.692936
-13087	1087	8957	0.00893112007684357	0.00893112007684357	-104.9724071	39.7074855	-104.9724094	39.7074052
-13088	8957	1082	0.038563824899443	0.038563824899443	-104.9724094	39.7074052	-104.9724743	39.707062
-13091	6117	3204	0.200871492111254	0.200871492111254	-104.9721753	39.7092881	-104.9721975	39.7110945
-13092	3204	3094	0.202111971416858	0.202111971416858	-104.9721975	39.7110945	-104.9721825	39.7129121
-13093	3094	1749	0.143511782143127	0.143511782143127	-104.9721825	39.7129121	-104.9721944	39.7142027
-13096	8925	8917	0.011822810789309	0.011822810789309	-104.9949053	39.7699691	-104.9949225	39.7698636
-13098	8959	602	0.0536722144567161	0.0536722144567161	-104.9949911	39.7695799	-104.9952229	39.7691313
-13099	602	8962	0.0387695912622113	0.0387695912622113	-104.9952229	39.7691313	-104.9951474	39.7687875
-13100	8962	8948	0.175808350127672	0.175808350127672	-104.9951474	39.7687875	-104.9949826	39.7672115
-13101	8948	428	0.00954052470619231	0.00954052470619231	-104.9949826	39.7672115	-104.9949826	39.7671257
-13102	428	7933	0.160696268160677	0.160696268160677	-104.9949826	39.7671257	-104.9950255	39.7656809
-13104	8918	8924	0.012486102804665	0.012486102804665	-104.9947937	39.769857	-104.9947852	39.7699691
-13105	8924	2420	0.0580706601904793	0.0580706601904793	-104.9947852	39.7699691	-104.9948281	39.7704903
-13108	8964	8965	0.125224497044451	0.125224497044451	-104.9950202	39.7634385	-104.9949826	39.7623127
-13110	8965	2192	0.356365737888712	0.356365737888712	-104.9949826	39.7623127	-104.9937863	39.7592426
-13135	4848	1531	0.0955193854848385	0.0955193854848385	-104.9915939	39.7606983	-104.9909332	39.7613911
-13111	2192	1611	0.254354724276405	0.254354724276405	-104.9937863	39.7592426	-104.9928744	39.7570652
-13112	1611	8852	0.0391111849621532	0.0391111849621532	-104.9928744	39.7570652	-104.9926518	39.7567579
-13114	8966	7934	0.183569029359489	0.183569029359489	-104.9948109	39.7640317	-104.9948315	39.7656825
-13116	2045	8967	0.0657780447895409	0.0657780447895409	-104.984465	39.7671944	-104.9850034	39.7676171
-13119	1742	5213	0.229560371023495	0.229560371023495	-104.9851236	39.7677094	-104.9870231	39.769169
-13120	5213	640	0.0648517231107158	0.0648517231107158	-104.9870231	39.769169	-104.9875489	39.7695895
-14585	9392	2833	0.210508246764738	0.210508246764738	-105.0252309	39.782151	-105.0252481	39.7802579
-13122	7933	8963	0.200908071446329	0.200908071446329	-104.9950255	39.7656809	-104.9950178	39.7638741
-13124	7934	8969	0.0906737639231845	0.0906737639231845	-104.9948315	39.7656825	-104.9948199	39.7664979
-13125	8969	429	0.0698124130115735	0.0698124130115735	-104.9948199	39.7664979	-104.9948109	39.7671257
-13126	429	8947	0.0102744112219317	0.0102744112219317	-104.9948109	39.7671257	-104.9948109	39.7672181
-13127	8947	8970	0.0586653743681201	0.0586653743681201	-104.9948109	39.7672181	-104.9947845	39.7677453
-13128	8970	601	0.102766368620144	0.102766368620144	-104.9947845	39.7677453	-104.9947852	39.7686695
-13157	8989	1285	0.118339572755071	0.118339572755071	-105.0193135	39.7576062	-105.0205433	39.7580949
-13129	601	8973	0.0999362244261846	0.0999362244261846	-104.9947852	39.7686695	-104.9948538	39.7695667
-13130	8973	8918	0.0326860113699392	0.0326860113699392	-104.9948538	39.7695667	-104.9947937	39.769857
-13132	2193	8237	0.11471912407663	0.11471912407663	-104.9954278	39.7578265	-104.9963555	39.757081
-13133	8237	8974	0.0761048371438857	0.0761048371438857	-104.9963555	39.757081	-104.9970707	39.7566734
-13443	9077	4179	0.169049790102584	0.169049790102584	-104.9941038	39.7044276	-104.9951206	39.7057312
-13137	8974	4844	0.0408566656014099	0.0408566656014099	-104.9970707	39.7566734	-104.9974984	39.7565094
-13139	8975	8915	0.161267451240187	0.161267451240187	-104.9895886	39.7778851	-104.9895806	39.7764348
-13164	8976	8977	0.00802909585520281	0.00802909585520281	-105.0250886	39.760233	-105.0251674	39.7602723
-13140	8915	8979	0.511309857046827	0.511309857046827	-104.9895806	39.7764348	-104.9905824	39.7719014
-13142	8950	8980	0.295444981113679	0.295444981113679	-104.9892186	39.7778983	-104.9891666	39.780555
-13144	8981	8982	0.155762064195337	0.155762064195337	-104.9891558	39.7819521	-104.9891588	39.7833529
-14605	9398	8233	0.0099630690934953	0.0099630690934953	-105.0252853	39.7620928	-105.0252854	39.7620032
-13146	8983	8984	0.153794064127447	0.153794064127447	-104.9895187	39.7819231	-104.9895148	39.78054
-13148	8985	8986	0.0143228031361841	0.0143228031361841	-105.013005	39.7555233	-105.0131588	39.7555744
-13149	8986	8496	0.0694983470285585	0.0694983470285585	-105.0131588	39.7555744	-105.013905	39.7558225
-13150	8496	398	0.120004619664384	0.120004619664384	-105.013905	39.7558225	-105.0152017	39.756236
-13151	398	8987	0.0577858842103034	0.0577858842103034	-105.0152017	39.756236	-105.01584	39.7564071
-13152	8987	637	0.099744132155093	0.099744132155093	-105.01584	39.7564071	-105.016925	39.7567371
-13153	637	6436	0.0832880379381437	0.0832880379381437	-105.016925	39.7567371	-105.0178047	39.7570591
-13154	6436	21	0.0571009168797096	0.0571009168797096	-105.0178047	39.7570591	-105.0184092	39.7572776
-13155	21	8988	0.0791847444931621	0.0791847444931621	-105.0184092	39.7572776	-105.0192467	39.7575819
-13158	1285	2962	0.0719310735484076	0.0719310735484076	-105.0205433	39.7580949	-105.0212514	39.7584444
-13159	2962	8991	0.0186493582069224	0.0186493582069224	-105.0212514	39.7584444	-105.0214364	39.7585333
-13160	8991	8992	0.187353348628226	0.187353348628226	-105.0214364	39.7585333	-105.0232439	39.7594863
-13161	8992	8351	0.0990161897507714	0.0990161897507714	-105.0232439	39.7594863	-105.024297	39.7598572
-13162	8351	8993	0.00963797122366648	0.00963797122366648	-105.024297	39.7598572	-105.0243946	39.7599006
-13163	8993	8976	0.0698946708143702	0.0698946708143702	-105.0243946	39.7599006	-105.0250886	39.760233
-13165	8977	8994	0.012930744273385	0.012930744273385	-105.0251674	39.7602723	-105.0252881	39.7603424
-13167	8451	8985	0.0708838190049254	0.0708838190049254	-105.0122583	39.7552461	-105.013005	39.7555233
-13169	2877	7692	0.030123526159425	0.030123526159425	-104.9479343	39.7849217	-104.9475818	39.7849256
-13173	8996	8143	0.201053290850133	0.201053290850133	-104.9560968	39.781931	-104.956087	39.7837391
-13174	8143	8997	0.150730663136006	0.150730663136006	-104.956087	39.7837391	-104.956286	39.785086
-13176	2794	5261	0.132082373792006	0.132082373792006	-104.9559387	39.766929	-104.9559252	39.7681168
-13178	5853	1338	0.200417735783644	0.200417735783644	-105.016828	39.7148117	-105.016828	39.7130093
-13179	1338	8998	0.206394741682614	0.206394741682614	-105.016828	39.7130093	-105.0168967	39.7111539
-13181	8998	4698	0.201909087963534	0.201909087963534	-105.0168967	39.7111539	-105.0169053	39.7093381
-13182	4698	8999	0.201909088033291	0.201909088033291	-105.0169053	39.7093381	-105.0169139	39.7075223
-13183	8999	9000	0.201186325895839	0.201186325895839	-105.0169139	39.7075223	-105.0169053	39.705713
-13184	9000	6822	0.198983321230549	0.198983321230549	-105.0169053	39.705713	-105.0169053	39.7039235
-13185	6822	770	0.132908321867952	0.132908321867952	-105.0169053	39.7039235	-105.0168881	39.7027283
-13187	1638	8999	0.102808714105755	0.102808714105755	-105.0157122	39.7075091	-105.0169139	39.7075223
-13188	8999	4216	0.0999229348013983	0.0999229348013983	-105.0169139	39.7075223	-105.0180812	39.7074893
-13189	4216	8095	0.0991443160837587	0.0991443160837587	-105.0180812	39.7074893	-105.0192399	39.7075091
-13190	8095	196	0.0991307294664674	0.0991307294664674	-105.0192399	39.7075091	-105.0203986	39.7074959
-13191	196	2925	0.0983869258474561	0.0983869258474561	-105.0203986	39.7074959	-105.0215487	39.7075025
-13193	5307	1463	0.0991311193927209	0.0991311193927209	-105.0227074	39.7075091	-105.0238662	39.7075157
-13194	1463	5437	0.103145293575034	0.103145293575034	-105.0238662	39.7075157	-105.0250692	39.7075784
-13196	1641	9000	0.10355145810147	0.10355145810147	-105.0156951	39.7057328	-105.0169053	39.705713
-13197	9000	4217	0.0998824134603326	0.0998824134603326	-105.0169053	39.705713	-105.0180726	39.7056932
-13198	4217	8096	0.0998581597847897	0.0998581597847897	-105.0180726	39.7056932	-105.0192399	39.7056932
-13199	8096	197	0.0983977211710877	0.0983977211710877	-105.0192399	39.7056932	-105.02039	39.70568
-13200	197	2926	0.0983895151379973	0.0983895151379973	-105.02039	39.70568	-105.0215401	39.7056866
-13201	2926	5308	0.0991337377550934	0.0991337377550934	-105.0215401	39.7056866	-105.0226989	39.7056932
-13202	5308	1464	0.0991224618714554	0.0991224618714554	-105.0226989	39.7056932	-105.0238576	39.7056932
-13203	1464	5440	0.103536651588581	0.103536651588581	-105.0238576	39.7056932	-105.0250679	39.7056934
-13205	201	2928	0.102050045456718	0.102050045456718	-105.0203473	39.7004104	-105.0215401	39.7004038
-13206	2928	5310	0.0991386153517731	0.0991386153517731	-105.0215401	39.7004038	-105.0226989	39.7004038
-13207	5310	1466	0.099890094841465	0.099890094841465	-105.0226989	39.7004038	-105.0238662	39.700384
-13208	1466	5445	0.102288602469368	0.102288602469368	-105.0238662	39.700384	-105.0250612	39.7004136
-13209	5445	9003	0.20221504164542	0.20221504164542	-105.0250612	39.7004136	-105.0274242	39.7003717
-13210	9003	7922	0.00954769987851559	0.00954769987851559	-105.0274242	39.7003717	-105.0275358	39.7003717
-13211	7922	4407	0.193513161405962	0.193513161405962	-105.0275358	39.7003717	-105.0297971	39.7003312
-13212	4407	9004	0.22689488985342	0.22689488985342	-105.0297971	39.7003312	-105.0324492	39.7003312
-13213	9004	4314	0.17109885981524	0.17109885981524	-105.0324492	39.7003312	-105.0344491	39.7003246
-13214	4314	4501	0.0954627697803603	0.0954627697803603	-105.0344491	39.7003246	-105.0355649	39.7003312
-13215	4501	7813	0.103538745444113	0.103538745444113	-105.0355649	39.7003312	-105.0367751	39.7003246
-13216	7813	5077	0.099141030065187	0.099141030065187	-105.0367751	39.7003246	-105.0379338	39.7003378
-13217	5077	8012	0.101361319209047	0.101361319209047	-105.0379338	39.7003378	-105.0391183	39.7003576
-13218	8012	6831	0.0984053279969797	0.0984053279969797	-105.0391183	39.7003576	-105.0402684	39.7003444
-13219	6831	6983	0.0507122349978986	0.0507122349978986	-105.0402684	39.7003444	-105.0408606	39.7003642
-13220	6983	6974	0.0492014587539049	0.0492014587539049	-105.0408606	39.7003642	-105.0414357	39.7003642
-13221	6974	7944	0.0815359432635548	0.0815359432635548	-105.0414357	39.7003642	-105.0423884	39.700384
-13222	7944	6363	0.117492028011777	0.117492028011777	-105.0423884	39.700384	-105.0437617	39.7003774
-13223	6363	6659	0.128518000967454	0.128518000967454	-105.0437617	39.7003774	-105.045239	39.700587
-13224	6659	5340	0.248378842685992	0.248378842685992	-105.045239	39.700587	-105.0481332	39.700411
-13225	5340	9007	0.436836188101395	0.436836188101395	-105.0481332	39.700411	-105.0532391	39.7004403
-13226	5447	9008	0.0954198714626642	0.0954198714626642	-105.0250598	39.6985284	-105.0261751	39.6985266
-13227	9008	5974	0.0150605452925665	0.0150605452925665	-105.0261751	39.6985266	-105.0263476	39.6984996
-13229	5443	7920	0.209496436784339	0.209496436784339	-105.0250652	39.7022173	-105.027514	39.7022198
-13230	7920	4409	0.196049081122935	0.196049081122935	-105.027514	39.7022198	-105.0298056	39.7022132
-13232	9009	4311	0.174051720567411	0.174051720567411	-105.0324149	39.7022132	-105.0344491	39.7022396
-13234	5439	7917	0.209760382857472	0.209760382857472	-105.0250705	39.7058254	-105.0275225	39.7058187
-13235	7917	4414	0.1967831025196	0.1967831025196	-105.0275225	39.7058187	-105.0298228	39.7058121
-13236	4414	9010	0.224679521512281	0.224679521512281	-105.0298228	39.7058121	-105.0324492	39.7058187
-13239	5435	9011	0.112718312199178	0.112718312199178	-105.0250719	39.7094097	-105.0263896	39.7094108
-13240	9011	7916	0.0954502097686848	0.0954502097686848	-105.0263896	39.7094108	-105.0275054	39.7094042
-13242	4418	9012	0.223944278058007	0.223944278058007	-105.0298056	39.7094174	-105.0324235	39.7094306
-13243	9012	9013	0.163728342208645	0.163728342208645	-105.0324235	39.7094306	-105.0343375	39.709424
-13244	9014	9011	0.193580953488763	0.193580953488763	-105.0263991	39.7111517	-105.0263896	39.7094108
-13272	5331	5695	0.176288296878523	0.176288296878523	-105.0362199	39.7087576	-105.0362429	39.7071723
-13246	1844	2578	0.172509377214494	0.172509377214494	-105.030046	39.7213676	-105.0300374	39.722919
-13248	6839	8008	0.0576758204139334	0.0576758204139334	-105.0396161	39.7039367	-105.0391344	39.7035738
-13250	8009	6981	0.144663680916955	0.144663680916955	-105.0391612	39.7031575	-105.040852	39.7031773
-13252	9015	6845	0.0843525238323184	0.0843525238323184	-105.043237	39.711272	-105.0432381	39.7105134
-13253	6845	4689	0.0881118827688874	0.0881118827688874	-105.0432381	39.7105134	-105.043221	39.7097211
-13254	4689	4697	0.0264412698588759	0.0264412698588759	-105.043221	39.7097211	-105.0432124	39.7094834
-13255	4697	7466	0.0631647371963507	0.0631647371963507	-105.0432124	39.7094834	-105.0431952	39.7089155
-13256	7466	9016	0.0866600751763154	0.0866600751763154	-105.0431952	39.7089155	-105.043221	39.7081364
-13257	9016	7453	0.0117533037462049	0.0117533037462049	-105.043221	39.7081364	-105.043221	39.7080307
-13258	7453	2091	0.0764142388554106	0.0764142388554106	-105.043221	39.7080307	-105.0431866	39.707344
-13259	2091	5691	0.0521281816109867	0.0521281816109867	-105.0431866	39.707344	-105.0431866	39.7068752
-13260	5691	5680	0.0375154291161679	0.0375154291161679	-105.0431866	39.7068752	-105.0432124	39.7065384
-13261	5680	6316	0.0896056080016293	0.0896056080016293	-105.0432124	39.7065384	-105.0432381	39.7057328
-13262	6316	4963	0.0888719448734625	0.0888719448734625	-105.0432381	39.7057328	-105.0432124	39.7049338
-13264	6826	5338	0.0370211552910964	0.0370211552910964	-105.0432124	39.7042603	-105.0430777	39.7039439
-13266	9016	9017	0.044781886028432	0.044781886028432	-105.043221	39.7081364	-105.0437445	39.7081364
-13267	6842	4692	0.112329114895897	0.112329114895897	-105.0373845	39.7104606	-105.0373845	39.7094504
-13268	4692	5332	0.162956489748023	0.162956489748023	-105.0373845	39.7094504	-105.0373528	39.7079851
-13270	6840	4691	0.113830246405759	0.113830246405759	-105.0362258	39.7104609	-105.0362258	39.7094372
-13271	4691	5331	0.0755697574983074	0.0755697574983074	-105.0362258	39.7094372	-105.0362199	39.7087576
-13274	5694	6319	0.174033677833605	0.174033677833605	-105.0360627	39.7071657	-105.036097	39.7056008
-13275	6319	9018	0.182109806928741	0.182109806928741	-105.036097	39.7056008	-105.0360799	39.7039631
-13277	4310	7811	0.201267372547373	0.201267372547373	-105.0344398	39.7030321	-105.0367923	39.7030519
-13278	7811	8010	0.202389778156291	0.202389778156291	-105.0367923	39.7030519	-105.039158	39.703065
-13281	7812	5076	0.100599027218817	0.100599027218817	-105.0367751	39.7021472	-105.037951	39.7021472
-13282	5076	8011	0.100623102109681	0.100623102109681	-105.037951	39.7021472	-105.0391269	39.702167
-13283	8011	6982	0.147599810375252	0.147599810375252	-105.0391269	39.702167	-105.040852	39.7021868
-13284	6982	7943	0.131458423393202	0.131458423393202	-105.040852	39.7021868	-105.0423884	39.702167
-13285	7943	3300	0.0829788157522616	0.0829788157522616	-105.0423884	39.702167	-105.0433583	39.7021604
-13286	3300	5727	0.0905493512456201	0.0905493512456201	-105.0433583	39.7021604	-105.0444167	39.7021543
-13287	5727	5339	0.0993780908642813	0.0993780908642813	-105.0444167	39.7021543	-105.0455771	39.7021954
-13289	9019	9020	0.473924441922911	0.473924441922911	-105.0334154	39.6894303	-105.0334238	39.6851682
-13290	5441	7918	0.212183518066811	0.212183518066811	-105.0250601	39.7039517	-105.0275397	39.7039962
-13291	7918	4411	0.196063540031297	0.196063540031297	-105.0275397	39.7039962	-105.0298314	39.704016
-13292	4411	9021	0.221019052884505	0.221019052884505	-105.0298314	39.704016	-105.0324149	39.7040028
-13293	9021	4282	0.176970513595043	0.176970513595043	-105.0324149	39.7040028	-105.0344834	39.703983
-13295	4326	9018	0.0881179267079727	0.0881179267079727	-105.0350499	39.7039565	-105.0360799	39.7039631
-13296	9018	7810	0.0594732573783121	0.0594732573783121	-105.0360799	39.7039631	-105.0367751	39.7039631
-13297	7810	7817	0.0279069878470498	0.0279069878470498	-105.0367751	39.7039631	-105.0371012	39.7039697
-13298	7817	5075	0.0895984878523876	0.0895984878523876	-105.0371012	39.7039697	-105.0381484	39.703983
-13299	5075	8007	0.082290456587143	0.082290456587143	-105.0381484	39.703983	-105.0391097	39.7039565
-13300	8007	6839	0.0433776365307967	0.0433776365307967	-105.0391097	39.7039565	-105.0396161	39.7039367
-13301	6839	6979	0.105025257907842	0.105025257907842	-105.0396161	39.7039367	-105.0408435	39.7039169
-14885	9012	7486	0.0983880214663299	0.0983880214663299	-105.0324235	39.7094306	-105.0324321	39.7085458
-13303	9003	4959	0.128621575011946	0.128621575011946	-105.0274242	39.7003717	-105.0274024	39.6992151
-13304	4959	9022	0.0561090389096707	0.0561090389096707	-105.0274024	39.6992151	-105.0274035	39.6987105
-13305	9022	9023	0.219664135455113	0.219664135455113	-105.0274035	39.6987105	-105.0274276	39.6967351
-13307	9024	1734	0.0339090081692689	0.0339090081692689	-105.0038894	39.6915551	-105.0039238	39.6912513
-13308	1734	9025	0.199586826055962	0.199586826055962	-105.0039238	39.6912513	-105.0039367	39.6894564
-13310	162	1723	0.148414326457229	0.148414326457229	-105.0166181	39.6931468	-105.0164379	39.6918193
-13312	164	1724	0.19589389224901	0.19589389224901	-105.0175867	39.6931453	-105.0171932	39.6914098
-13313	1724	9026	0.21539258017212	0.21539258017212	-105.0171932	39.6914098	-105.0166353	39.6895209
-13315	166	1725	0.23958811593923	0.23958811593923	-105.018536	39.693139	-105.0179828	39.6910268
-13316	1725	9027	0.172261015966003	0.172261015966003	-105.0179828	39.6910268	-105.017588	39.6895077
-13318	168	1727	0.256304305915683	0.256304305915683	-105.0194505	39.693127	-105.0194505	39.690822
-13319	1727	8081	0.0911159242290505	0.0911159242290505	-105.0194505	39.690822	-105.0194162	39.690003
-13321	9028	9029	0.0459665066705729	0.0459665066705729	-105.0112026	39.7293142	-105.0117401	39.7293113
-13323	9030	9031	0.204682511562437	0.204682511562437	-105.0266512	39.7293064	-105.0263427	39.7311318
-13324	9031	6588	0.201464690183835	0.201464690183835	-105.0263427	39.7311318	-105.0263693	39.7329435
-13325	6588	7109	0.201819605073549	0.201819605073549	-105.0263693	39.7329435	-105.0263626	39.7347585
-13326	7109	9034	0.0380490136329461	0.0380490136329461	-105.0263626	39.7347585	-105.0263528	39.7351006
-13327	9035	9036	0.202787954952135	0.202787954952135	-105.0275173	39.7293147	-105.0275272	39.7311384
-13328	9036	6589	0.200863566889439	0.200863566889439	-105.0275272	39.7311384	-105.0275196	39.7329448
-13329	6589	7110	0.201074334121883	0.201074334121883	-105.0275196	39.7329448	-105.027555	39.7347529
-13331	9037	9031	0.102130234291417	0.102130234291417	-105.0251484	39.7311316	-105.0263427	39.7311318
-13332	9031	9036	0.101294841162053	0.101294841162053	-105.0263427	39.7311318	-105.0275272	39.7311384
-13333	9036	6128	0.0961527434944637	0.0961527434944637	-105.0275272	39.7311384	-105.0286516	39.7311384
-13334	6128	3971	0.0990967592348727	0.0990967592348727	-105.0286516	39.7311384	-105.0298103	39.7311516
-13336	7017	1406	0.0990967592360877	0.0990967592360877	-105.0309776	39.7311384	-105.0321363	39.7311516
-13337	1406	7390	0.0982252697684911	0.0982252697684911	-105.0321363	39.7311516	-105.0332849	39.7311446
-13338	7390	5217	0.100064145492252	0.100064145492252	-105.0332849	39.7311446	-105.034455	39.7311372
-13340	5377	9038	0.0981767550682586	0.0981767550682586	-105.044041	39.7339173	-105.0440496	39.7330344
-13342	9041	9042	0.107883824327089	0.107883824327089	-105.0428651	39.7330461	-105.0428737	39.7340163
-13344	9043	9044	0.111762023714712	0.111762023714712	-105.040479	39.7340163	-105.0404793	39.7330112
-13346	7805	9045	0.163613143703316	0.163613143703316	-104.9768041	39.7875035	-104.9767649	39.7889746
-13347	4982	9046	0.151151791011959	0.151151791011959	-104.9800523	39.7855977	-104.9782841	39.7855581
-13348	9046	4333	0.0931833318260777	0.0931833318260777	-104.9782841	39.7855581	-104.9771941	39.7855318
-13349	4333	5039	0.084348128639754	0.084348128639754	-104.9771941	39.7855318	-104.976207	39.7855252
-13351	2869	9047	0.0643526028257267	0.0643526028257267	-104.9835884	39.7855828	-104.9835799	39.7850041
-13352	2869	5283	0.189728403936972	0.189728403936972	-104.9835884	39.7855828	-104.9834597	39.7872862
-13354	9048	6951	0.21054969022045	0.21054969022045	-104.9790788	39.7799923	-104.9786733	39.78186
-13355	6951	8084	0.110877740512572	0.110877740512572	-104.9786733	39.78186	-104.9784386	39.7828407
-13356	8084	8141	0.0381711926062465	0.0381711926062465	-104.9784386	39.7828407	-104.9783643	39.7831792
-13357	8141	5971	0.0998550766587588	0.0998550766587588	-104.9783643	39.7831792	-104.978267	39.7840741
-13358	5971	9046	0.165019740176851	0.165019740176851	-104.978267	39.7840741	-104.9782841	39.7855581
-13359	9046	7804	0.203892252907028	0.203892252907028	-104.9782841	39.7855581	-104.978267	39.7873917
-13360	7804	9049	0.488623985679594	0.488623985679594	-104.978267	39.7873917	-104.978271	39.791786
-13361	577	9048	0.0924966938169246	0.0924966938169246	-104.979193	39.7791651	-104.9790788	39.7799923
-13369	9054	1743	0.0233197702600261	0.0233197702600261	-104.9786512	39.775667	-104.9787558	39.7758607
-13370	1743	4270	0.277932467642318	0.277932467642318	-104.9787558	39.7758607	-104.9792574	39.7783303
-13371	4270	310	0.0394728122356983	0.0394728122356983	-104.9792574	39.7783303	-104.9792332	39.7786848
-13372	310	577	0.0535172942987349	0.0535172942987349	-104.9792332	39.7786848	-104.979193	39.7791651
-13374	9055	9056	0.0694449359265994	0.0694449359265994	-104.9728754	39.7708776	-104.9734488	39.7704351
-13375	9056	2325	0.190938968451781	0.190938968451781	-104.9734488	39.7704351	-104.9750376	39.7692279
-13376	2325	4279	0.147346976573119	0.147346976573119	-104.9750376	39.7692279	-104.9762513	39.7682868
-13378	4286	9055	0.0222915391297905	0.0222915391297905	-104.972693	39.7710209	-104.9728754	39.7708776
-13380	1349	1615	0.0587612563553368	0.0587612563553368	-104.9740676	39.7719084	-104.9745571	39.7722795
-13381	1615	7135	0.106001129731548	0.106001129731548	-104.9745571	39.7722795	-104.9754213	39.7729633
-13383	5260	9057	0.107843300513683	0.107843300513683	-104.9589552	39.7681242	-104.958998	39.7690935
-13384	6952	9058	0.0875153511963366	0.0875153511963366	-104.9777379	39.7804804	-104.9767938	39.7801754
-13386	9058	5767	0.0813716345984657	0.0813716345984657	-104.9767938	39.7801754	-104.9758538	39.7800585
-13387	5767	312	0.370850163813996	0.370850163813996	-104.9758538	39.7800585	-104.971535	39.780386
-13390	9048	9052	0.36535949731556	0.36535949731556	-104.9790788	39.7799923	-104.9833542	39.7800156
-13394	9060	8966	0.196473660543131	0.196473660543131	-104.9947546	39.7622653	-104.9948109	39.7640317
-13396	9061	5080	0.358471972755657	0.358471972755657	-104.9981155	39.7670982	-105.001279	39.7649816
-13397	5080	9062	0.674602285535072	0.674602285535072	-105.001279	39.7649816	-105.0060948	39.7601751
-13398	9062	3176	0.289568864041751	0.289568864041751	-105.0060948	39.7601751	-105.0085577	39.7583871
-13399	3176	527	0.133561854308294	0.133561854308294	-105.0085577	39.7583871	-105.009688	39.7575578
-18560	10318	10319	0.255397297870644	0.255397297870644	-105.0297002	39.7834301	-105.0275696	39.7818193
-13400	527	343	0.340886700679976	0.340886700679976	-105.009688	39.7575578	-105.0125925	39.7554572
-13401	343	537	0.428322489908352	0.428322489908352	-105.0125925	39.7554572	-105.0159762	39.7526163
-13402	537	474	0.822980283733396	0.822980283733396	-105.0159762	39.7526163	-105.0180056	39.7453814
-13403	474	8438	0.152037422281902	0.152037422281902	-105.0180056	39.7453814	-105.0171026	39.7442035
-13407	4427	9063	0.114941491865609	0.114941491865609	-104.9981322	39.7667419	-104.9969297	39.7672047
-13409	9063	8912	0.118971180199303	0.118971180199303	-104.9969297	39.7672047	-104.9956858	39.7676849
-13413	8236	125	0.0903470808346396	0.0903470808346396	-105.0034855	39.7597433	-105.0040777	39.7604163
-13415	9065	9066	0.0810250214751567	0.0810250214751567	-105.0037267	39.7605614	-105.0029207	39.7601779
-13417	9066	7279	0.116655009841785	0.116655009841785	-105.0029207	39.7601779	-105.0017875	39.7595933
-13419	276	9067	0.0692041764264314	0.0692041764264314	-105.0179907	39.7399138	-105.0172314	39.7396983
-13500	9108	9109	0.0476133357747153	0.0476133357747153	-105.0059283	39.7256613	-105.0053716	39.7256561
-13421	9067	2189	0.114532021981465	0.114532021981465	-105.0172314	39.7396983	-105.0159036	39.7398341
-13423	9068	4553	0.327000385366346	0.327000385366346	-105.017924	39.736752	-105.021729	39.7364576
-13425	8428	9069	0.0507531626876375	0.0507531626876375	-105.0172942	39.7368917	-105.0178645	39.7367652
-13426	9069	9068	0.00529520129182755	0.00529520129182755	-105.0178645	39.7367652	-105.017924	39.736752
-13428	9070	9071	0.0606488327577038	0.0606488327577038	-105.0164101	39.7293208	-105.0171193	39.7293222
-13430	9071	9072	0.009176031077042	0.009176031077042	-105.0171193	39.7293222	-105.0172266	39.7293225
-13431	9072	4642	0.175105976981708	0.175105976981708	-105.0172266	39.7293225	-105.0192742	39.7293289
-13432	4642	7954	0.0487370399178714	0.0487370399178714	-105.0192742	39.7293289	-105.0198441	39.7293262
-13433	7954	4547	0.158995972178669	0.158995972178669	-105.0198441	39.7293262	-105.0217032	39.7293091
-13434	4547	9073	0.292416775735491	0.292416775735491	-105.0217032	39.7293091	-105.0251226	39.7293097
-13436	9074	9075	0.0675438073285673	0.0675438073285673	-104.9985883	39.7111864	-104.9993779	39.7111909
-13438	9075	409	0.0146789910973018	0.0146789910973018	-104.9993779	39.7111909	-104.9995495	39.7111919
-13439	409	9076	0.0166512433271008	0.0166512433271008	-104.9995495	39.7111919	-104.999744	39.711198
-13441	4838	326	0.0588523383992881	0.0588523383992881	-104.9964173	39.7083799	-104.9969556	39.7087095
-13449	9081	9082	0.443932946896766	0.443932946896766	-105.0008195	39.7257692	-105.0060104	39.7257674
-13451	1401	9083	0.0611691476045831	0.0611691476045831	-105.0324911	39.7252609	-105.0324948	39.725811
-13453	9083	6208	0.0330698135159164	0.0330698135159164	-105.0324948	39.725811	-105.0324968	39.7261084
-13454	6208	7645	0.178373846931983	0.178373846931983	-105.0324968	39.7261084	-105.032514	39.7277125
-13455	7645	9086	0.177258150455768	0.177258150455768	-105.032514	39.7277125	-105.0325034	39.7293066
-13498	9107	3956	0.0601050509878674	0.0601050509878674	-105.0008408	39.7256368	-105.0001441	39.7257079
-13457	9087	9088	1.73315945419765	1.73315945419765	-105.0529649	39.72565	-105.0327002	39.7254916
-13458	9088	410	0.265082533171925	0.265082533171925	-105.0327002	39.7254916	-105.0296018	39.7254255
-13459	410	9080	0.715047499183354	0.715047499183354	-105.0296018	39.7254255	-105.0212418	39.7253265
-13460	9080	9089	0.194455760903183	0.194455760903183	-105.0212418	39.7253265	-105.0189759	39.7251813
-13462	9089	9090	0.0550554662137945	0.0550554662137945	-105.0189759	39.7251813	-105.0183322	39.7251879
-13464	9091	9092	0.473459458640042	0.473459458640042	-105.0189899	39.7253071	-105.0245174	39.7255447
-13475	9098	9032	0.307889980671666	0.307889980671666	-105.0162316	39.725012	-105.0131311	39.7236048
-13479	9090	9099	0.0142223937707519	0.0142223937707519	-105.0183322	39.7251879	-105.0181659	39.7251883
-13481	9100	9093	0.193628424072927	0.193628424072927	-105.0161161	39.7254559	-105.0183719	39.7253071
-13483	9101	9100	0.0626625130905001	0.0626625130905001	-105.0153857	39.7255006	-105.0161161	39.7254559
-13487	9103	346	0.140681499904037	0.140681499904037	-105.0065187	39.725789	-105.0077031	39.726667
-13522	9037	8064	0.00660497864323473	0.00660497864323473	-105.0251484	39.7311316	-105.0251484	39.731191
-13489	3955	9081	0.113309674251049	0.113309674251049	-105.0001889	39.7266654	-105.0008195	39.7257692
-13491	6240	5091	0.078819968233945	0.078819968233945	-104.9908905	39.7256604	-104.9908359	39.7249528
-13493	9082	9103	0.0435368095566408	0.0435368095566408	-105.0060104	39.7257674	-105.0065187	39.725789
-13494	9103	347	0.193850840943334	0.193850840943334	-105.0065187	39.725789	-105.0087846	39.7258352
-13495	347	404	0.026466812116417	0.026466812116417	-105.0087846	39.7258352	-105.0090936	39.725822
-13496	404	9106	0.11755875033606	0.11755875033606	-105.0090936	39.725822	-105.0104669	39.7257758
-13501	9109	9107	0.387486870322022	0.387486870322022	-105.0053716	39.7256561	-105.0008408	39.7256368
-13503	6204	9110	0.181291651373991	0.181291651373991	-105.0090242	39.7253711	-105.0069105	39.725495
-13505	9111	9112	0.0153902940291749	0.0153902940291749	-105.0136091	39.7256283	-105.0137882	39.7256148
-13506	9112	9101	0.137209683962048	0.137209683962048	-105.0137882	39.7256148	-105.0153857	39.7255006
-13508	9113	9111	0.075192531928865	0.075192531928865	-105.0127328	39.7256834	-105.0136091	39.7256283
-15014	455	860	0.0461629164957839	0.0461629164957839	-104.9423505	39.7367494	-104.9428903	39.736756
-13510	9114	9115	0.148585418330877	0.148585418330877	-105.0128101	39.7255315	-105.0110763	39.7256175
-13514	8582	9116	0.0682625654668292	0.0682625654668292	-105.0251054	39.7252038	-105.0251054	39.7258177
-13516	9116	237	0.0139438438014188	0.0139438438014188	-105.0251054	39.7258177	-105.0251054	39.7259431
-13517	237	7635	0.17396601741799	0.17396601741799	-105.0251054	39.7259431	-105.025114	39.7275076
-13519	7602	9073	0.102023996019348	0.102023996019348	-105.025114	39.7283922	-105.0251226	39.7293097
-13521	117	9037	0.091769841511351	0.091769841511351	-105.0251312	39.7303064	-105.0251484	39.7311316
-13523	8064	6587	0.198394254239174	0.198394254239174	-105.0251484	39.731191	-105.0251522	39.7329752
-13524	6587	5384	0.100320867880051	0.100320867880051	-105.0251522	39.7329752	-105.0251569	39.7338774
-13525	5384	7108	0.0976180261019357	0.0976180261019357	-105.0251569	39.7338774	-105.0251569	39.7347553
-13526	7108	2293	0.101160557994969	0.101160557994969	-105.0251569	39.7347553	-105.025179	39.7356649
-13527	2293	9117	0.0816968455207608	0.0816968455207608	-105.025179	39.7356649	-105.0252112	39.7363992
-13583	9134	9079	0.189350301331036	0.189350301331036	-104.9951647	39.7043993	-104.9930943	39.7037972
-13533	9118	6217	0.00293554606374767	0.00293554606374767	-105.0394723	39.7257622	-105.0394723	39.7257886
-13534	6217	7652	0.27452915439238	0.27452915439238	-105.0394723	39.7257886	-105.0394723	39.7282575
-13535	7652	8071	0.262369838158816	0.262369838158816	-105.0394723	39.7282575	-105.039492	39.730617
-13536	8071	9119	0.0614463164636613	0.0614463164636613	-105.039492	39.730617	-105.039492	39.7311696
-13538	9118	7768	0.0286215741177868	0.0286215741177868	-105.0394723	39.7257622	-105.0394723	39.7255048
-13540	9121	9122	0.0549317968438626	0.0549317968438626	-105.022529	39.7237852	-105.0222205	39.7242185
-13541	9122	9080	0.148946547669597	0.148946547669597	-105.0222205	39.7242185	-105.0212418	39.7253265
-13543	9121	4555	0.0367880997749164	0.0367880997749164	-105.022529	39.7237852	-105.0221186	39.7238843
-13545	216	9123	0.047880969118268	0.047880969118268	-105.0105654	39.7229262	-105.0109606	39.7232312
-13547	9123	447	0.333206339887537	0.333206339887537	-105.0109606	39.7232312	-105.0132294	39.7256673
-13549	2999	9124	0.314861669735557	0.314861669735557	-105.0136746	39.7263954	-105.0147476	39.7291041
-13554	579	408	0.862576839598051	0.862576839598051	-105.0080855	39.7206863	-105.0014039	39.7148758
-13568	9128	9129	0.16941277010836	0.16941277010836	-105.0149225	39.7295801	-105.0154242	39.731054
-13570	9124	9128	0.0550015048734635	0.0550015048734635	-105.0147476	39.7291041	-105.0149225	39.7295801
-13578	9132	220	0.766585324287615	0.766585324287615	-104.9861015	39.7001338	-104.9801989	39.6949471
-13615	7609	7262	0.111890561964914	0.111890561964914	-104.9383356	39.7292297	-104.9370272	39.7292302
-13579	220	566	0.637748069235424	0.637748069235424	-104.9801989	39.6949471	-104.9751917	39.6906986
-13587	9136	9137	0.450871833260349	0.450871833260349	-104.9910031	39.7032246	-104.9868714	39.7007074
-13590	8684	222	0.184496371824925	0.184496371824925	-104.9859386	39.700249	-104.9874359	39.7014431
-13591	222	9140	0.487607813488587	0.487607813488587	-104.9874359	39.7014431	-104.9922255	39.7038202
-13593	9140	9077	0.174302500151122	0.174302500151122	-104.9922255	39.7038202	-104.9941038	39.7044276
-13594	9077	9141	0.280690469581891	0.280690469581891	-104.9941038	39.7044276	-104.9960053	39.7064848
-13596	9142	118	0.0916021886608042	0.0916021886608042	-105.0111993	39.7293642	-105.0112228	39.7301878
-13597	118	6721	0.0966297992771619	0.0966297992771619	-105.0112228	39.7301878	-105.0112289	39.7310568
-13598	6721	6722	0.0414535753801991	0.0414535753801991	-105.0112289	39.7310568	-105.0112278	39.7314296
-13599	6722	2311	0.00867549185460531	0.00867549185460531	-105.0112278	39.7314296	-105.0112958	39.7314875
-13601	6580	6723	0.0197325066377101	0.0197325066377101	-105.0113223	39.732461	-105.0113508	39.7326371
-13603	9029	1240	0.0358410792262526	0.0358410792262526	-105.0117401	39.7293113	-105.0121592	39.729309
-13604	1240	4790	0.0578956777475445	0.0578956777475445	-105.0121592	39.729309	-105.0128361	39.7293183
-13605	4790	4814	0.0309664941935945	0.0309664941935945	-105.0128361	39.7293183	-105.0131982	39.7293163
-13606	4814	2156	0.0660634330770184	0.0660634330770184	-105.0131982	39.7293163	-105.0139707	39.7293204
-13607	2156	2166	0.00298513757197415	0.00298513757197415	-105.0139707	39.7293204	-105.0140055	39.7293183
-13608	2166	2183	0.165657322423627	0.165657322423627	-105.0140055	39.7293183	-105.0159426	39.7293103
-13609	2183	9070	0.039996230308656	0.039996230308656	-105.0159426	39.7293103	-105.0164101	39.7293208
-13611	3728	9143	0.0374422730466023	0.0374422730466023	-105.0028395	39.7289078	-105.0032713	39.7288521
-13613	3765	8150	0.099678431004031	0.099678431004031	-104.9406029	39.7291831	-104.9394389	39.72923
-13614	8150	7609	0.0943510009713305	0.0943510009713305	-104.9394389	39.72923	-104.9383356	39.7292297
-13616	7262	7595	0.0635463262031531	0.0635463262031531	-104.9370272	39.7292302	-104.9362843	39.7292429
-13617	7595	7599	0.0220206440979588	0.0220206440979588	-104.9362843	39.7292429	-104.9360268	39.7292429
-13618	7599	9144	0.0741982381570415	0.0741982381570415	-104.9360268	39.7292429	-104.9351592	39.7292363
-15078	7589	3366	0.105686563985576	0.105686563985576	-104.9356129	39.7656394	-104.9343764	39.7656425
-13619	9144	2022	0.0197545563564228	0.0197545563564228	-104.9351592	39.7292363	-104.9349282	39.7292369
-13620	2022	9147	0.0829434723735258	0.0829434723735258	-104.9349282	39.7292369	-104.9339583	39.7292394
-13621	9147	3355	0.0108199721778022	0.0108199721778022	-104.9339583	39.7292394	-104.9338318	39.7292375
-13623	9148	2768	0.0035576669192827	0.0035576669192827	-104.9327781	39.7292306	-104.9327365	39.7292303
-13624	2768	7013	0.0948918648713715	0.0948918648713715	-104.9327365	39.7292303	-104.9316269	39.729236
-13626	2274	8214	0.00623184642483798	0.00623184642483798	-104.9305243	39.7292319	-104.9304515	39.7292344
-13627	8214	9149	0.0892902468185094	0.0892902468185094	-104.9304515	39.7292344	-104.9294074	39.7292396
-13628	9149	8211	0.0144047767787734	0.0144047767787734	-104.9294074	39.7292396	-104.9292411	39.7292602
-13629	8211	7521	0.0807484203861095	0.0807484203861095	-104.9292411	39.7292602	-104.928297	39.7292478
-13630	7521	7522	0.0178959760293508	0.0178959760293508	-104.928297	39.7292478	-104.9280878	39.7292519
-13631	7522	2132	0.0761585237127413	0.0761585237127413	-104.9280878	39.7292519	-104.9271973	39.7292602
-13632	2132	2117	0.0261874332320613	0.0261874332320613	-104.9271973	39.7292602	-104.9268915	39.7292726
-13633	2117	5982	0.0706516490311829	0.0706516490311829	-104.9268915	39.7292726	-104.9260654	39.7292643
-13634	5982	5987	0.0312102623276897	0.0312102623276897	-104.9260654	39.7292643	-104.9257006	39.7292726
-13635	5987	5148	0.0542024830967572	0.0542024830967572	-104.9257006	39.7292726	-104.9250676	39.7292478
-13636	5148	7678	0.00643849229968441	0.00643849229968441	-104.9250676	39.7292478	-104.9249925	39.7292437
-13637	7678	9150	0.0270552275766841	0.0270552275766841	-104.9249925	39.7292437	-104.9246762	39.7292385
-13638	9150	5159	0.0130471422397109	0.0130471422397109	-104.9246762	39.7292385	-104.9245238	39.729244
-13639	5159	2336	0.0550815403379387	0.0550815403379387	-104.9245238	39.729244	-104.9238797	39.729244
-17797	9318	9592	0.0276370219250994	0.0276370219250994	-104.9873865	39.7545236	-104.9873927	39.7542751
-15154	9503	7694	0.0985863309924877	0.0985863309924877	-104.9464272	39.7874239	-104.947581	39.7874249
-13640	2336	9151	2.70099171821299	2.70099171821299	-104.9238797	39.729244	-104.8923175	39.7283409
-15853	9736	5597	0.026161521554181	0.026161521554181	-105.0435838	39.731177	-105.0438865	39.7312111
-13642	327	390	0.428713460971309	0.428713460971309	-104.9987289	39.7109039	-105.0008375	39.7144016
-13643	390	216	1.2612581668138	1.2612581668138	-105.0008375	39.7144016	-105.0105654	39.7229262
-13647	4841	9156	0.020245918680072	0.020245918680072	-104.995653	39.7037978	-104.9956359	39.7036162
-13653	9127	4841	0.714489743272739	0.714489743272739	-104.9983536	39.7098782	-104.995653	39.7037978
-13655	9160	9161	0.0611231237623731	0.0611231237623731	-104.9994442	39.6890552	-105.0001383	39.6891851
-13657	9161	9162	0.0094906074947222	0.0094906074947222	-105.0001383	39.6891851	-105.000246	39.6892055
-13658	9162	360	0.119259910634054	0.119259910634054	-105.000246	39.6892055	-105.0016107	39.6894234
-13659	360	4441	0.0977181725107	0.0977181725107	-105.0016107	39.6894234	-105.0027522	39.6894498
-13660	4441	9025	0.101356058092401	0.101356058092401	-105.0027522	39.6894498	-105.0039367	39.6894564
-13661	9025	361	0.102083424277621	0.102083424277621	-105.0039367	39.6894564	-105.0051297	39.6894631
-13662	361	6661	0.148732998262686	0.148732998262686	-105.0051297	39.6894631	-105.0068679	39.6894571
-13663	6661	1457	0.0814814185857237	0.0814814185857237	-105.0068679	39.6894571	-105.0078201	39.6894653
-13664	1457	6930	0.0803380398809936	0.0803380398809936	-105.0078201	39.6894653	-105.0087589	39.6894757
-13665	6930	9163	0.0870015008277124	0.0870015008277124	-105.0087589	39.6894757	-105.0097755	39.6894901
-13666	9163	3826	0.0559780942251715	0.0559780942251715	-105.0097755	39.6894901	-105.0104297	39.6894878
-13667	3826	5901	0.113837481725673	0.113837481725673	-105.0104297	39.6894878	-105.0117601	39.6894878
-13668	5901	1650	0.336368580358266	0.336368580358266	-105.0117601	39.6894878	-105.0156911	39.6895077
-13669	1650	9026	0.0808050552206421	0.0808050552206421	-105.0156911	39.6895077	-105.0166353	39.6895209
-13670	9026	9027	0.0815322500516298	0.0815322500516298	-105.0166353	39.6895209	-105.017588	39.6895077
-13671	9027	3968	0.0749133242052919	0.0749133242052919	-105.017588	39.6895077	-105.0184635	39.6895077
-13672	3968	205	0.163780553378706	0.163780553378706	-105.0184635	39.6895077	-105.0203775	39.6894945
-13673	205	2934	0.0793233966793332	0.0793233966793332	-105.0203775	39.6894945	-105.0213045	39.6895011
-13674	2934	2932	0.00660572151012338	0.00660572151012338	-105.0213045	39.6895011	-105.0213817	39.6895011
-13675	2932	5313	0.0749133313668845	0.0749133313668845	-105.0213817	39.6895011	-105.0222572	39.6895011
-13676	5313	5314	0.039721686292112	0.039721686292112	-105.0222572	39.6895011	-105.0227207	39.6894812
-13677	5314	1472	0.0396600103919334	0.0396600103919334	-105.0227207	39.6894812	-105.0231842	39.6894812
-13678	1472	5451	0.159004638765101	0.159004638765101	-105.0231842	39.6894812	-105.0250424	39.6894928
-13679	5451	7909	0.201247264593271	0.201247264593271	-105.0250424	39.6894928	-105.0273938	39.6894539
-13680	7909	4403	0.196833842084677	0.196833842084677	-105.0273938	39.6894539	-105.0296941	39.6894671
-13681	4403	6310	0.199805236650359	0.199805236650359	-105.0296941	39.6894671	-105.0320287	39.6894303
-13682	6310	6311	0.0399338522027804	0.0399338522027804	-105.0320287	39.6894303	-105.0324954	39.6894303
-13683	6311	9019	0.0787211142615482	0.0787211142615482	-105.0324954	39.6894303	-105.0334154	39.6894303
-18919	10398	10391	0.0932116121589892	0.0932116121589892	-105.0118932	39.7497594	-105.0127316	39.7492235
-13684	9019	4301	0.0803301037321015	0.0803301037321015	-105.0334154	39.6894303	-105.0343542	39.6894282
-13685	4301	4499	0.100692334161908	0.100692334161908	-105.0343542	39.6894282	-105.0355305	39.6894539
-13686	4499	7815	0.0988002674680887	0.0988002674680887	-105.0355305	39.6894539	-105.0366851	39.6894447
-13687	7815	5071	0.0991802868019195	0.0991802868019195	-105.0366851	39.6894447	-105.037844	39.6894614
-13688	5071	8014	0.103571412588639	0.103571412588639	-105.037844	39.6894614	-105.0390543	39.6894482
-13689	8014	6833	0.0839453108807348	0.0839453108807348	-105.0390543	39.6894482	-105.0400351	39.6894654
-14657	9411	6735	0.143528351506247	0.143528351506247	-105.0180024	39.7601634	-105.0196661	39.7603379
-13691	6976	7946	0.0984345173677437	0.0984345173677437	-105.0410323	39.6894803	-105.0421824	39.6894605
-13692	7946	3301	0.0874467814940938	0.0874467814940938	-105.0421824	39.6894605	-105.0432038	39.6894869
-13693	3301	6365	0.0895995351805866	0.0895995351805866	-105.0432038	39.6894869	-105.0442509	39.6894935
-13694	6365	6654	0.083807023997277	0.083807023997277	-105.0442509	39.6894935	-105.0452294	39.6895265
-13695	6654	9165	0.68755983150845	0.68755983150845	-105.0452294	39.6895265	-105.0532648	39.6895209
-13696	9166	9167	0.0102840052604526	0.0102840052604526	-104.9928292	39.6966756	-104.9929494	39.6966756
-13698	7423	7832	0.102961269389569	0.102961269389569	-104.9944429	39.6966822	-104.9956462	39.6966693
-13699	7832	1182	0.0975615453999259	0.0975615453999259	-104.9956462	39.6966693	-104.996786	39.6966954
-13700	1182	1359	0.100609727856237	0.100609727856237	-104.996786	39.6966954	-104.9979619	39.6967021
-13701	1359	8086	0.0998738624212929	0.0998738624212929	-104.9979619	39.6967021	-104.9991292	39.6967087
-13702	8086	4842	0.0999569203615348	0.0999569203615348	-104.9991292	39.6967087	-105.0002975	39.6967069
-13703	4842	4377	0.103593486995353	0.103593486995353	-105.0002975	39.6967069	-105.0015083	39.6967038
-13704	4377	2859	0.305366704359361	0.305366704359361	-105.0015083	39.6967038	-105.0050773	39.6967285
-13705	2859	7625	0.0937028559888649	0.0937028559888649	-105.0050773	39.6967285	-105.0061725	39.696731
-13706	7625	6669	0.0349417471907859	0.0349417471907859	-105.0061725	39.696731	-105.0065809	39.6967302
-13707	6669	6928	0.181245567189969	0.181245567189969	-105.0065809	39.6967302	-105.0086993	39.6967351
-13708	6928	6929	0.056563910069816	0.056563910069816	-105.0086993	39.6967351	-105.0093602	39.6967483
-15200	9526	7443	0.0505254725980933	0.0505254725980933	-105.036376	39.7499878	-105.036967	39.7499887
-13710	3818	5176	0.0844451203946057	0.0844451203946057	-105.0107164	39.6967417	-105.0117034	39.6967417
-13711	5176	5900	0.0873882937906588	0.0873882937906588	-105.0117034	39.6967417	-105.0127248	39.6967417
-13712	5900	1602	0.0969475981594534	0.0969475981594534	-105.0127248	39.6967417	-105.0138578	39.6967549
-13713	1602	1645	0.147610823352004	0.147610823352004	-105.0138578	39.6967549	-105.015583	39.6967681
-13714	1645	1658	0.00734081920779586	0.00734081920779586	-105.015583	39.6967681	-105.0156688	39.6967681
-13715	1658	6715	0.113834950309784	0.113834950309784	-105.0156688	39.6967681	-105.0169992	39.6967549
-13717	4211	8097	0.0991353106844716	0.0991353106844716	-105.0180463	39.6967483	-105.019205	39.6967483
-13719	9171	203	0.0903750729081993	0.0903750729081993	-105.019308	39.6967483	-105.0203643	39.6967518
-13720	203	2931	0.102769081645998	0.102769081645998	-105.0203643	39.6967518	-105.0215654	39.6967417
-13721	2931	5312	0.098402268229521	0.098402268229521	-105.0215654	39.6967417	-105.0227155	39.6967351
-13722	5312	1469	0.0726981009727233	0.0726981009727233	-105.0227155	39.6967351	-105.0235652	39.6967351
-13723	1469	1468	0.023502610730772	0.023502610730772	-105.0235652	39.6967351	-105.0238399	39.6967351
-13724	1468	5448	0.104140699419407	0.104140699419407	-105.0238399	39.6967351	-105.0250571	39.696733
-13726	3761	9166	0.069031653563667	0.069031653563667	-104.9920224	39.696669	-104.9928292	39.6966756
-13728	4177	9172	0.109548350633249	0.109548350633249	-104.9910305	39.6911901	-104.9923108	39.6911873
-13730	9144	5946	0.201030224778112	0.201030224778112	-104.9351592	39.7292363	-104.9351663	39.7310442
-13731	5946	5137	0.27511296352744	0.27511296352744	-104.9351663	39.7310442	-104.935004	39.7335152
-13732	5137	5152	0.0232058578864935	0.0232058578864935	-104.935004	39.7335152	-104.9349958	39.7337238
-13733	5152	4907	0.10620133994029	0.10620133994029	-104.9349958	39.7337238	-104.935013	39.7346788
-15464	1361	9615	0.0375616902705351	0.0375616902705351	-105.0019226	39.7432201	-105.0015275	39.7433678
-13734	4907	6615	0.200738818803378	0.200738818803378	-104.935013	39.7346788	-104.9349711	39.7364838
-13735	6615	9173	0.1939198547813	0.1939198547813	-104.9349711	39.7364838	-104.9349904	39.7382277
-13736	9173	9174	0.208269220932895	0.208269220932895	-104.9349904	39.7382277	-104.9349984	39.7401007
-13738	9147	5947	0.203116974549126	0.203116974549126	-104.9339583	39.7292394	-104.9339798	39.731066
-13740	7615	904	0.277200719177449	0.277200719177449	-104.9380774	39.7619904	-104.9380626	39.7644833
-13741	904	9175	0.127974248210887	0.127974248210887	-104.9380626	39.7644833	-104.9380631	39.7656342
-13743	7010	7421	0.0949619514323781	0.0949619514323781	-104.9318494	39.7619997	-104.9318313	39.7628536
-13744	7421	1142	0.0432881849429407	0.0432881849429407	-104.9318313	39.7628536	-104.9318313	39.7632429
-13745	1142	1147	0.0608947786947552	0.0608947786947552	-104.9318313	39.7632429	-104.9318227	39.7637905
-13746	1147	909	0.0792487229277921	0.0792487229277921	-104.9318227	39.7637905	-104.9318383	39.7645031
-13788	1669	9192	0.136278654988626	0.136278654988626	-105.0053195	39.7680447	-105.0053009	39.7692702
-13747	909	9176	0.125103752996271	0.125103752996271	-104.9318383	39.7645031	-104.9318203	39.7656281
-13748	9176	2771	0.202343174331141	0.202343174331141	-104.9318203	39.7656281	-104.9317009	39.7674455
-13749	2771	6895	0.198817638053719	0.198817638053719	-104.9317009	39.7674455	-104.9317267	39.7692334
-13753	9179	1	0.207517415173182	0.207517415173182	-105.0147208	39.7357485	-105.0155597	39.7339973
-13755	8437	9180	0.124967984057199	0.124967984057199	-105.0140684	39.7388161	-105.0141257	39.7376931
-13759	9182	4484	0.465234327006532	0.465234327006532	-105.0055365	39.720906	-105.0055963	39.7250897
-13760	4484	4485	0.0326010116755978	0.0326010116755978	-105.0055963	39.7250897	-105.0056478	39.7253802
-13762	9183	9184	0.0646101092104256	0.0646101092104256	-105.0021716	39.719416	-105.002927	39.7194123
-13764	9185	9186	0.026977202251753	0.026977202251753	-104.9985457	39.7503278	-104.9983225	39.7501563
-13765	9186	9187	0.0154692834867904	0.0154692834867904	-104.9983225	39.7501563	-104.9982996	39.7500183
-13766	9187	6713	0.0145607005435147	0.0145607005435147	-104.9982996	39.7500183	-104.9982781	39.7498884
-13768	232	9188	0.0841812454433435	0.0841812454433435	-104.9943741	39.6929144	-104.9942711	39.6921615
-13770	9188	2561	0.00954099557633664	0.00954099557633664	-104.9942711	39.6921615	-104.9942282	39.6920823
-13773	8233	9190	0.00698491885871168	0.00698491885871168	-105.0252854	39.7620032	-105.0253671	39.7620045
-13774	9190	605	0.212601143616712	0.212601143616712	-105.0253671	39.7620045	-105.0276669	39.7627327
-13776	394	9191	0.174546619141482	0.174546619141482	-105.0057374	39.7597756	-105.0041591	39.7607716
-13779	294	4424	0.271505686802405	0.271505686802405	-105.0030853	39.7615504	-105.0016238	39.7637183
-13783	1892	4513	0.135635571790495	0.135635571790495	-105.0052777	39.7620216	-105.0052776	39.7632414
-13784	4513	5235	0.13338423256793	0.13338423256793	-105.0052776	39.7632414	-105.0052923	39.7644409
-13785	5235	6887	0.13498931648718	0.13498931648718	-105.0052923	39.7644409	-105.0053201	39.7656547
-13786	6887	8681	0.133693861256586	0.133693861256586	-105.0053201	39.7656547	-105.0053077	39.766857
-13787	8681	1669	0.132070065253788	0.132070065253788	-105.0053077	39.766857	-105.0053195	39.7680447
-13790	8903	8620	0.147899148341854	0.147899148341854	-105.0105064	39.7573854	-105.0093075	39.7583444
-13791	8620	6984	0.0740139001970076	0.0740139001970076	-105.0093075	39.7583444	-105.008704	39.7588217
-13792	6984	4819	0.0711240597778575	0.0711240597778575	-105.008704	39.7588217	-105.0080831	39.7592475
-13794	8514	8220	0.0695233221555377	0.0695233221555377	-105.0068857	39.7602149	-105.006312	39.7606581
-13796	9193	9141	0.231480473302438	0.231480473302438	-104.9954572	39.7044462	-104.9960053	39.7064848
-13817	9194	8483	0.144876329810161	0.144876329810161	-104.9954622	39.743992	-104.9942509	39.7449031
-13798	9193	9195	0.405940766693276	0.405940766693276	-104.9954572	39.7044462	-104.9963084	39.7080377
-13800	5081	9196	0.0826803218524669	0.0826803218524669	-104.9962546	39.7083175	-104.9961881	39.7090593
-13801	9196	7908	0.24773379383735	0.24773379383735	-104.9961881	39.7090593	-104.9971039	39.7111729
-13802	7908	1383	0.130538600450066	0.130538600450066	-104.9971039	39.7111729	-104.9976275	39.7122756
-13803	1383	4663	0.14493811446872	0.14493811446872	-104.9976275	39.7122756	-104.9982624	39.7134841
-13822	8286	9202	0.148093750497898	0.148093750497898	-104.9894331	39.7486381	-104.9882201	39.7495889
-13804	4663	9197	0.14786450905396	0.14786450905396	-104.9982624	39.7134841	-104.9985624	39.7147937
-13807	231	1184	0.314149545717651	0.314149545717651	-104.9941166	39.693522	-104.9968546	39.6916397
-13808	1184	1364	0.114004540105804	0.114004540105804	-104.9968546	39.6916397	-104.9980305	39.6911576
-13810	1364	8087	0.130984174828509	0.130984174828509	-104.9980305	39.6911576	-104.9992149	39.6904113
-14659	939	5938	0.17856727191407	0.17856727191407	-104.972385	39.7320506	-104.9723624	39.7304448
-14660	5938	3797	0.152203615831491	0.152203615831491	-104.9723624	39.7304448	-104.9723623	39.729076
-13811	8087	9162	0.16050280483824	0.16050280483824	-104.9992149	39.6904113	-105.000246	39.6892055
-13812	9162	9198	0.0132941963216631	0.0132941963216631	-105.000246	39.6892055	-105.000274	39.6890879
-18577	10320	10319	0.350878667314418	0.350878667314418	-105.0313943	39.7806712	-105.0275696	39.7818193
-20839	10930	10948	0.105680421147412	0.105680421147412	-105.0299611	39.7629467	-105.0291285	39.7622441
-13813	9198	9199	3.17004296851045	3.17004296851045	-105.000274	39.6890879	-105.0045553	39.6607701
-17798	9592	10180	0.0765579819092659	0.0765579819092659	-104.9873927	39.7542751	-104.9873951	39.7535866
-13839	1284	9210	0.120028974895433	0.120028974895433	-105.0205218	39.7579887	-105.0192694	39.7575006
-13816	4931	9194	0.407318560179548	0.407318560179548	-104.9988399	39.7414088	-104.9954622	39.743992
-13819	6705	8577	0.147047679886064	0.147047679886064	-104.9930306	39.7458434	-104.9918273	39.7467883
-13820	8577	5778	0.145526475675905	0.145526475675905	-104.9918273	39.7467883	-104.990623	39.7477132
-13821	5778	8286	0.144657100371242	0.144657100371242	-104.990623	39.7477132	-104.9894331	39.7486381
-13823	9202	9203	0.102081942931647	0.102081942931647	-104.9882201	39.7495889	-104.9873873	39.7502468
-13825	7891	9204	0.145701377036231	0.145701377036231	-104.9870145	39.7505324	-104.9858044	39.7514551
-13827	8994	9205	0.0106390736530004	0.0106390736530004	-105.0252881	39.7603424	-105.0253893	39.7603981
-13828	9205	8304	0.117212668938715	0.117212668938715	-105.0253893	39.7603981	-105.026526	39.7609877
-13829	8304	6774	0.0328401658585753	0.0328401658585753	-105.026526	39.7609877	-105.0268654	39.7611261
-13830	6774	3753	0.196045019335809	0.196045019335809	-105.0268654	39.7611261	-105.0288005	39.7620725
-13831	3753	8325	0.00916875381027056	0.00916875381027056	-105.0288005	39.7620725	-105.0288943	39.7621125
-13833	8444	9206	0.0130864665707206	0.0130864665707206	-105.0252881	39.7602413	-105.0251661	39.7601702
-13834	9206	9207	0.00957370688012094	0.00957370688012094	-105.0251661	39.7601702	-105.0250726	39.7601228
-13835	9207	9208	0.169933774193856	0.169933774193856	-105.0250726	39.7601228	-105.0233093	39.759417
-13836	9208	9209	0.168302394118973	0.168302394118973	-105.0233093	39.759417	-105.0216966	39.7585487
-15503	3939	5618	0.12194000294889	0.12194000294889	-105.0001493	39.7402188	-105.0015736	39.7401631
-13837	9209	2963	0.0205458196072096	0.0205458196072096	-105.0216966	39.7585487	-105.0214955	39.7584475
-13840	9210	9211	0.00588390321087397	0.00588390321087397	-105.0192694	39.7575006	-105.0192076	39.7574773
-13841	9211	22	0.0556252544592051	0.0556252544592051	-105.0192076	39.7574773	-105.0186135	39.7572732
-13842	22	6435	0.0767592442346679	0.0767592442346679	-105.0186135	39.7572732	-105.0178061	39.7569711
-13843	6435	636	0.0822615503744666	0.0822615503744666	-105.0178061	39.7569711	-105.0169344	39.7566577
-13844	636	9213	0.103246384420422	0.103246384420422	-105.0169344	39.7566577	-105.0158342	39.7562746
-13845	9213	535	0.0273108213340879	0.0273108213340879	-105.0158342	39.7562746	-105.0155504	39.7561618
-13846	535	9214	0.138573391347307	0.138573391347307	-105.0155504	39.7561618	-105.0140859	39.7556275
-13847	9214	8498	0.0276472257994952	0.0276472257994952	-105.0140859	39.7556275	-105.0137949	39.755519
-13848	8498	8441	0.0465142466162739	0.0465142466162739	-105.0137949	39.755519	-105.0132989	39.755347
-13850	9215	8403	0.0487070540067587	0.0487070540067587	-104.9781012	39.703864	-104.9775319	39.7038582
-13851	8403	1774	0.0526991311069308	0.0526991311069308	-104.9775319	39.7038582	-104.9769161	39.7038457
-13853	4412	9216	0.0527074152255093	0.0527074152255093	-104.9763723	39.7038488	-104.9757563	39.7038398
-13854	9216	4781	0.0501079093501001	0.0501079093501001	-104.9757563	39.7038398	-104.9751707	39.7038491
-14661	3797	9412	0.199399735185058	0.199399735185058	-104.9723623	39.729076	-104.9723458	39.7272828
-13855	4781	1522	0.0511423250179406	0.0511423250179406	-104.9751707	39.7038491	-104.9745729	39.7038457
-13856	1522	5241	0.0480297777865987	0.0480297777865987	-104.9745729	39.7038457	-104.9740116	39.7038551
-13857	5241	463	0.0533178386766155	0.0533178386766155	-104.9740116	39.7038551	-104.9733885	39.7038655
-13859	9217	8420	0.0487543044755043	0.0487543044755043	-104.9780581	39.7056667	-104.9774882	39.7056633
-13860	8420	1773	0.0502154238610622	0.0502154238610622	-104.9774882	39.7056633	-104.9769014	39.705675
-13862	4425	9218	0.050643583977918	0.050643583977918	-104.9763417	39.7056707	-104.9757497	39.7056695
-13863	9218	4823	0.0514478917449482	0.0514478917449482	-104.9757497	39.7056695	-104.9751483	39.7056678
-13864	4823	1521	0.0514834990326773	0.0514834990326773	-104.9751483	39.7056678	-104.9745465	39.705664
-13865	1521	5262	0.0474439861374267	0.0474439861374267	-104.9745465	39.705664	-104.9739919	39.7056638
-13866	5262	9219	0.0530746980864797	0.0530746980864797	-104.9739919	39.7056638	-104.9733715	39.7056677
-13868	6499	2472	0.199600310338802	0.199600310338802	-104.9298179	39.7455937	-104.9298007	39.7473887
-13870	7007	2282	0.0992844503488553	0.0992844503488553	-104.9317157	39.7565591	-104.9305543	39.7565508
-13872	3603	7529	0.0990493561706104	0.0990493561706104	-104.9293903	39.7565549	-104.9282316	39.7565549
-13873	7529	2137	0.105524175995486	0.105524175995486	-104.9282316	39.7565549	-104.9269972	39.7565629
-13874	2137	5994	0.104734285723653	0.104734285723653	-104.9269972	39.7565629	-104.925772	39.7565652
-13875	5994	7674	0.100897460064117	0.100897460064117	-104.925772	39.7565652	-104.9245919	39.7565477
-13996	5841	434	0.0624248318177171	0.0624248318177171	-104.973423	39.6911522	-104.973423	39.6905908
-13876	7674	9221	1.00510923817581	1.00510923817581	-104.9245919	39.7565477	-104.912834	39.7565808
-13878	2804	5269	0.128688734978596	0.128688734978596	-104.9452104	39.7669339	-104.9451609	39.7680906
-13879	5269	6909	0.123348542786119	0.123348542786119	-104.9451609	39.7680906	-104.9451603	39.7691999
-13881	4480	5270	0.264392216770053	0.264392216770053	-104.9440279	39.7657101	-104.9440108	39.7680878
-13882	5270	6910	0.123553912188766	0.123553912188766	-104.9440108	39.7680878	-104.9439975	39.7691989
-13884	7761	6908	0.206924774668396	0.206924774668396	-104.9453067	39.7710608	-104.9452957	39.7691999
-13886	6907	7760	0.209013911598568	0.209013911598568	-104.9464035	39.7692009	-104.9463967	39.7710806
-13887	7760	9222	0.202410018751594	0.202410018751594	-104.9463967	39.7710806	-104.9464409	39.7729006
-13888	6905	7759	0.206351576128965	0.206351576128965	-104.9475756	39.7692051	-104.9475555	39.7710608
-13889	7759	6359	0.203865759483167	0.203865759483167	-104.9475555	39.7710608	-104.9475481	39.7728942
-13891	9223	6448	0.190233422734384	0.190233422734384	-104.9412107	39.7760266	-104.9389896	39.7761403
-13892	6448	6992	0.620734926195411	0.620734926195411	-104.9389896	39.7761403	-104.9317318	39.7759184
-13893	6992	2116	0.412221337604484	0.412221337604484	-104.9317318	39.7759184	-104.9269816	39.7752742
-13894	2116	7665	0.206015761732372	0.206015761732372	-104.9269816	39.7752742	-104.9246092	39.7749454
-13935	9237	254	0.129619446290563	0.129619446290563	-105.0252103	39.7368379	-105.0251543	39.7380028
-13895	7665	9224	1.85930539190202	1.85930539190202	-104.9246092	39.7749454	-104.9032561	39.7717429
-13896	9225	2398	0.224331288063009	0.224331288063009	-104.9407352	39.7758674	-104.940632	39.7738515
-13897	2398	6361	0.106327129111224	0.106327129111224	-104.940632	39.7738515	-104.9406234	39.7728953
-17281	7311	3273	0.201986093156211	0.201986093156211	-104.9599932	39.7020401	-104.9599985	39.7038566
-13899	6446	9223	0.123505309386589	0.123505309386589	-104.9423252	39.7753195	-104.9412107	39.7760266
-13901	8984	8975	0.295278766625452	0.295278766625452	-104.9895148	39.78054	-104.9895886	39.7778851
-13903	8980	8981	0.155353173279186	0.155353173279186	-104.9891666	39.780555	-104.9891558	39.7819521
-13905	9226	8104	0.184150710275748	0.184150710275748	-104.9902648	39.7768461	-104.9912065	39.7783357
-13907	9227	6946	0.038429344582371	0.038429344582371	-104.9603013	39.7815888	-104.9602903	39.7819343
-13912	6380	9229	0.104471273298691	0.104471273298691	-104.9592745	39.7805291	-104.9604654	39.7803167
-14662	9412	9300	0.189453948637121	0.189453948637121	-104.9723458	39.7272828	-104.9723445	39.725579
-13916	566	9231	1.43965285379934	1.43965285379934	-104.9751917	39.6906986	-104.9602821	39.6846997
-13917	9136	9232	0.238873404598648	0.238873404598648	-104.9910031	39.7032246	-104.9889072	39.7018052
-13920	483	7284	0.0730945677376631	0.0730945677376631	-104.9859077	39.7013296	-104.9857206	39.701971
-13928	278	6916	0.0415405366115252	0.0415405366115252	-104.9876105	39.7785645	-104.9878486	39.7782388
-13930	9235	9236	0.360270886139133	0.360270886139133	-104.9733535	39.7400168	-104.9733996	39.7432566
-13931	9236	2883	0.0595125074168401	0.0595125074168401	-104.9733996	39.7432566	-104.9733956	39.7437918
-13936	254	8324	0.235611866233999	0.235611866233999	-105.0251543	39.7380028	-105.0252084	39.7401213
-13938	8324	8310	0.066787627422688	0.066787627422688	-105.0252084	39.7401213	-105.0251999	39.7407219
-13940	8310	9241	0.146021189936251	0.146021189936251	-105.0251999	39.7407219	-105.0252006	39.7420351
-13944	9099	7796	0.300588795121337	0.300588795121337	-105.0181659	39.7251883	-105.014664	39.7254193
-13948	9244	9113	0.144188675545464	0.144188675545464	-105.0110505	39.7257692	-105.0127328	39.7256834
-13950	9106	9244	0.0499156662848634	0.0499156662848634	-105.0104669	39.7257758	-105.0110505	39.7257692
-13952	9245	9246	0.123118530171941	0.123118530171941	-105.0114282	39.7264425	-105.0126992	39.7269625
-13954	405	406	0.0103894659763889	0.0103894659763889	-105.0106325	39.7261211	-105.0107416	39.7261622
-13955	406	9245	0.0664778537431541	0.0664778537431541	-105.0107416	39.7261622	-105.0114282	39.7264425
-13957	407	9033	0.137547423766831	0.137547423766831	-105.0123607	39.72372	-105.0111765	39.722883
-17289	5839	7744	0.201433070586795	0.201433070586795	-104.9518032	39.6911405	-104.9517894	39.689329
-13965	9097	9248	0.39480102328572	0.39480102328572	-105.0162433	39.7250562	-105.0138229	39.7280796
-13966	9248	9249	0.0955291664142426	0.0955291664142426	-105.0138229	39.7280796	-105.0143117	39.7288521
-13968	9246	9248	0.157049002786803	0.157049002786803	-105.0126992	39.7269625	-105.0138229	39.7280796
-13976	3952	9252	0.0592126025244243	0.0592126025244243	-105.0002004	39.7289098	-105.0008928	39.7289115
-13977	9252	5605	0.0597855652504274	0.0597855652504274	-105.0008928	39.7289115	-105.0015919	39.7289132
-13978	5605	9253	0.0521408060475983	0.0521408060475983	-105.0015919	39.7289132	-105.0022016	39.7289106
-13979	9253	3728	0.0545524879363147	0.0545524879363147	-105.0022016	39.7289106	-105.0028395	39.7289078
-13981	7951	7949	0.019092168905179	0.019092168905179	-104.9733887	39.7147202	-104.9733887	39.7145485
-13983	7949	3093	0.182702780383174	0.182702780383174	-104.9733887	39.7145485	-104.9733669	39.7129055
-15893	9254	9255	0.183718623774573	0.183718623774573	-105.0398207	39.7341944	-105.0419691	39.7342088
-13984	3093	3203	0.200818235908537	0.200818235908537	-104.9733669	39.7129055	-104.9733702	39.7110995
-13985	3203	6116	0.201635970571119	0.201635970571119	-104.9733702	39.7110995	-104.9733887	39.7092862
-13986	6116	1913	0.201179241726354	0.201179241726354	-104.9733887	39.7092862	-104.9733715	39.707477
-13987	1913	9219	0.201184980777767	0.201184980777767	-104.9733715	39.707477	-104.9733715	39.7056677
-13988	9219	463	0.200400773809621	0.200400773809621	-104.9733715	39.7056677	-104.9733885	39.7038655
-13989	463	7301	0.202731579470961	0.202731579470961	-104.9733885	39.7038655	-104.9734144	39.7020424
-13990	7301	49	0.204762753950758	0.204762753950758	-104.9734144	39.7020424	-104.9733927	39.700201
-13991	49	3548	0.19703986640102	0.19703986640102	-104.9733927	39.700201	-104.9734042	39.698429
-13992	3548	4243	0.201964288701916	0.201964288701916	-104.9734042	39.698429	-104.97343	39.6966128
-13993	4243	1803	0.208102375283595	0.208102375283595	-104.97343	39.6966128	-104.9734222	39.6947413
-13994	1803	8711	0.194851559567089	0.194851559567089	-104.9734222	39.6947413	-104.973438	39.692989
-13995	8711	5841	0.20424687376631	0.20424687376631	-104.973438	39.692989	-104.973423	39.6911522
-17660	586	8936	0.0435552950105704	0.0435552950105704	-104.9889771	39.7829454	-104.9889754	39.7833371
-13997	434	8731	0.0205731062854678	0.0205731062854678	-104.973423	39.6905908	-104.9734316	39.6904059
-13999	3219	3112	0.203925882799295	0.203925882799295	-104.9592972	39.7111077	-104.959135	39.7129374
-14000	3112	3641	0.260678130684959	0.260678130684959	-104.959135	39.7129374	-104.9590835	39.7152814
-14001	3641	9256	0.0279085029397156	0.0279085029397156	-104.9590835	39.7152814	-104.9590749	39.7155323
-14003	9257	8801	0.0249979934697134	0.0249979934697134	-104.9590619	39.7158623	-104.9590492	39.7160869
-14665	4752	4167	0.209025457745472	0.209025457745472	-104.9723195	39.7219606	-104.9723279	39.7200808
-14005	9256	9257	0.0367111693692818	0.0367111693692818	-104.9590749	39.7155323	-104.9590619	39.7158623
-14007	9258	3642	0.0274131048639432	0.0274131048639432	-104.9592928	39.7155013	-104.9593067	39.715255
-14008	3642	9259	0.086632322467807	0.086632322467807	-104.9593067	39.715255	-104.9593096	39.7144759
-14009	9259	3111	0.171051850512145	0.171051850512145	-104.9593096	39.7144759	-104.9593153	39.7129376
-14010	3111	3219	0.203481486479522	0.203481486479522	-104.9593153	39.7129376	-104.9592972	39.7111077
-14012	7158	9258	0.038998695665846	0.038998695665846	-104.9592875	39.715852	-104.9592928	39.7155013
-14014	3219	6126	0.202012344464496	0.202012344464496	-104.9592972	39.7111077	-104.959313	39.709291
-14015	6126	1929	0.202386985868189	0.202386985868189	-104.959313	39.709291	-104.9593208	39.7074709
-14016	1929	2919	0.0171463622508283	0.0171463622508283	-104.9593208	39.7074709	-104.9593201	39.7073167
-14017	2919	7250	0.183561589747783	0.183561589747783	-104.9593201	39.7073167	-104.959313	39.7056659
-14018	7250	3274	0.20118632596822	0.20118632596822	-104.959313	39.7056659	-104.9593216	39.7038566
-14019	3274	7312	0.203193267560765	0.203193267560765	-104.9593216	39.7038566	-104.959341	39.7020293
-14021	9260	9157	0.0588873613464273	0.0588873613464273	-104.9954471	39.7027842	-104.9952014	39.7022895
-14022	9157	6253	0.473629275671798	0.473629275671798	-104.9952014	39.7022895	-104.9926817	39.6984968
-14023	6253	9167	0.20379925953003	0.20379925953003	-104.9926817	39.6984968	-104.9929494	39.6966756
-14024	9167	231	0.364607283214556	0.364607283214556	-104.9929494	39.6966756	-104.9941166	39.693522
-14026	9171	2308	0.0877328075526686	0.0877328075526686	-105.019308	39.6967483	-105.0193085	39.6959593
-14027	2308	167	0.314493617652356	0.314493617652356	-105.0193085	39.6959593	-105.0193178	39.693131
-14030	6653	9263	0.598539344332022	0.598539344332022	-105.0448856	39.6967219	-105.0518813	39.6967452
-14031	5448	5975	0.113227741973857	0.113227741973857	-105.0250571	39.696733	-105.0263805	39.6967285
-14032	5975	9023	0.0895901368528646	0.0895901368528646	-105.0263805	39.6967285	-105.0274276	39.6967351
-14033	9023	4404	0.197536219691709	0.197536219691709	-105.0274276	39.6967351	-105.0297364	39.6967417
-14034	4404	7371	0.107978748074207	0.107978748074207	-105.0297364	39.6967417	-105.0309982	39.6967219
-14035	7371	6307	0.0697549406367758	0.0697549406367758	-105.0309982	39.6967219	-105.0318135	39.6967219
-14036	6307	6308	0.0220857912106748	0.0220857912106748	-105.0318135	39.6967219	-105.0320716	39.6967254
-14037	6308	4316	0.20668661359579	0.20668661359579	-105.0320716	39.6967254	-105.03444	39.6970917
-14038	4316	4503	0.0921482766473363	0.0921482766473363	-105.03444	39.6970917	-105.0355129	39.6971643
-14039	4503	7814	0.109821870874264	0.109821870874264	-105.0355129	39.6971643	-105.0366887	39.6967681
-14040	7814	5079	0.102137328159445	0.102137328159445	-105.0366887	39.6967681	-105.0378823	39.6967518
-14041	5079	8013	0.0998289131041121	0.0998289131041121	-105.0378823	39.6967518	-105.0390491	39.6967549
-14042	8013	6832	0.10065041616734	0.10065041616734	-105.0390491	39.6967549	-105.0402255	39.6967584
-14043	6832	6975	0.0990932842629603	0.0990932842629603	-105.0402255	39.6967584	-105.0413837	39.6967549
-14044	6975	7945	0.100601003970672	0.100601003970672	-105.0413837	39.6967549	-105.0425595	39.6967615
-14045	7945	6364	0.097675013601381	0.097675013601381	-105.0425595	39.6967615	-105.0437011	39.6967681
-14049	9264	9265	0.128352927336665	0.128352927336665	-105.0016904	39.7220846	-105.0016701	39.7209304
-14051	3219	5061	0.0565378582983479	0.0565378582983479	-104.9592972	39.7111077	-104.9586363	39.7111011
-14052	5061	4916	0.0521329784642155	0.0521329784642155	-104.9586363	39.7111011	-104.9580269	39.7110945
-17662	488	10160	0.037999512945138	0.037999512945138	-104.9855724	39.7800624	-104.986015	39.7800954
-14053	4916	5228	0.130202288917824	0.130202288917824	-104.9580269	39.7110945	-104.9565077	39.7110219
-14054	5228	5106	0.0572735085516971	0.0572735085516971	-104.9565077	39.7110219	-104.9558382	39.7110153
-14055	5106	5229	0.0124802378810982	0.0124802378810982	-104.9558382	39.7110153	-104.9556923	39.7110153
-14056	5229	4995	0.288542415463076	0.288542415463076	-104.9556923	39.7110153	-104.9523191	39.7110153
-14057	4995	9266	0.20116472075537	0.20116472075537	-104.9523191	39.7110153	-104.9499674	39.7110094
-14666	4167	6326	0.178657902009272	0.178657902009272	-104.9723279	39.7200808	-104.9722942	39.7184743
-14058	9266	7066	0.0118986523075564	0.0118986523075564	-104.9499674	39.7110094	-104.9498283	39.711009
-14059	7066	3636	0.140199736242294	0.140199736242294	-104.9498283	39.711009	-104.9481992	39.7111474
-14061	9266	6351	0.197550871457279	0.197550871457279	-104.9499674	39.7110094	-104.9499571	39.7092328
-14063	2574	5103	0.0764020591743967	0.0764020591743967	-104.949965	39.7089952	-104.9499914	39.7083084
-14065	7930	1893	0.0520626532677435	0.0520626532677435	-104.949883	39.707468	-104.9497942	39.7070048
-14066	1893	2315	0.115168818798466	0.115168818798466	-104.9497942	39.7070048	-104.9499657	39.7059775
-14068	7341	6156	0.0983814711715662	0.0983814711715662	-104.9316369	39.7113211	-104.932787	39.7113277
-14069	6156	6290	0.0991170792397538	0.0991170792397538	-104.932787	39.7113277	-104.9339457	39.7113343
-14070	6290	3116	0.0983982120263374	0.0983982120263374	-104.9339457	39.7113343	-104.9350959	39.7113475
-14072	6673	8185	0.0325158694936318	0.0325158694936318	-104.9362583	39.7113747	-104.936636	39.7114077
-14074	3188	9268	0.0244851420549388	0.0244851420549388	-104.9461736	39.7114973	-104.946452	39.7115485
-14075	9268	8800	0.0276968906605859	0.0276968906605859	-104.946452	39.7115485	-104.9467659	39.7116096
-14077	6718	9269	0.103071842817105	0.103071842817105	-104.9425631	39.711506	-104.9413612	39.7114399
-14078	9269	8160	0.0477581921413061	0.0477581921413061	-104.9413612	39.7114399	-104.9408036	39.7114181
-14080	7342	3492	0.198422050793999	0.198422050793999	-104.9316306	39.711189	-104.929311	39.7111767
-14081	3492	9270	0.0991145839577047	0.0991145839577047	-104.929311	39.7111767	-104.9281523	39.7111767
-17664	10161	6173	0.109897620785603	0.109897620785603	-104.9856475	39.7795327	-104.9843627	39.779576
-14082	9270	5386	0.100577308895159	0.100577308895159	-104.9281523	39.7111767	-104.9269765	39.7111767
-14083	5386	9271	0.100588544879537	0.100588544879537	-104.9269765	39.7111767	-104.9258006	39.7111701
-14084	9271	6817	0.101321511979085	0.101321511979085	-104.9258006	39.7111701	-104.9246161	39.7111701
-14160	7023	7393	0.135757251453186	0.135757251453186	-105.0315207	39.751179	-105.0331086	39.7511922
-14161	7393	9272	0.0789156635630832	0.0789156635630832	-105.0331086	39.7511922	-105.0340317	39.7511922
-14166	9278	7444	0.0517309727495982	0.0517309727495982	-105.0363599	39.7511906	-105.036965	39.7511936
-14129	9279	9280	0.186364690747119	0.186364690747119	-104.9490944	39.7475193	-104.9512562	39.7473041
-14085	6817	9273	5.01601743028969	5.01601743028969	-104.9246161	39.7111701	-104.8659769	39.710981
-14086	9274	6816	4.59997811614881	4.59997811614881	-104.8708565	39.7101192	-104.9246085	39.7113484
-14088	2943	5348	0.200890409378397	0.200890409378397	-104.9258054	39.711367	-104.9281539	39.71136
-14089	5348	3491	0.0990328236882064	0.0990328236882064	-104.9281539	39.71136	-104.9293114	39.7113416
-14090	3491	2849	0.0998105211493863	0.0998105211493863	-104.9293114	39.7113416	-104.9304782	39.7113343
-14091	2849	7341	0.0991252344530307	0.0991252344530307	-104.9304782	39.7113343	-104.9316369	39.7113211
-14093	9271	6103	0.208876201356377	0.208876201356377	-104.9258006	39.7111701	-104.9258215	39.7092917
-14095	9270	6098	0.16565447863601	0.16565447863601	-104.9281523	39.7111767	-104.928134	39.709687
-14096	6098	9275	0.0444779706577198	0.0444779706577198	-104.928134	39.709687	-104.928134	39.709287
-14097	9269	6101	0.238835584318973	0.238835584318973	-104.9413612	39.7114399	-104.9413615	39.709292
-17799	10180	8536	0.0726583525558809	0.0726583525558809	-104.9873951	39.7535866	-104.987378	39.7529333
-14099	8294	9276	0.192103991232145	0.192103991232145	-104.9942907	39.754326	-104.9957422	39.7556449
-14101	4423	9277	0.533016938094048	0.533016938094048	-105.0057667	39.7600738	-105.0019955	39.7638914
-14138	9282	9283	0.384483999025896	0.384483999025896	-104.9667713	39.7808486	-104.9624039	39.7800174
-14146	4993	9288	0.0718457938229626	0.0718457938229626	-105.0163127	39.7513508	-105.0171434	39.7512529
-14148	9288	471	0.0203590276008878	0.0203590276008878	-105.0171434	39.7512529	-105.017379	39.7512262
-14149	471	6430	0.0161743745423695	0.0161743745423695	-105.017379	39.7512262	-105.0175669	39.7512092
-14150	6430	4655	0.1348214737413	0.1348214737413	-105.0175669	39.7512092	-105.0191439	39.7512186
-14151	4655	1277	0.119151021074222	0.119151021074222	-105.0191439	39.7512186	-105.020537	39.751186
-14152	1277	4528	0.128606742393323	0.128606742393323	-105.020537	39.751186	-105.022041	39.751211
-14153	4528	9289	0.132757697104501	0.132757697104501	-105.022041	39.751211	-105.0235939	39.7512075
-14154	9289	9290	0.133347126872573	0.133347126872573	-105.0235939	39.7512075	-105.0251537	39.7512091
-14155	9290	9291	0.0102673262572307	0.0102673262572307	-105.0251537	39.7512091	-105.0252738	39.7512091
-14156	9291	6745	0.131970868855064	0.131970868855064	-105.0252738	39.7512091	-105.0268172	39.7511856
-14157	6745	6145	0.131356474267846	0.131356474267846	-105.0268172	39.7511856	-105.0283535	39.7512054
-14158	6145	4019	0.135781040149455	0.135781040149455	-105.0283535	39.7512054	-105.0299414	39.751179
-14159	4019	7023	0.135014116939136	0.135014116939136	-105.0299414	39.751179	-105.0315207	39.751179
-14162	9272	3401	0.0502252760733361	0.0502252760733361	-105.0340317	39.7511922	-105.0346192	39.7511922
-14163	3401	9220	0.0499780107614713	0.0499780107614713	-105.0346192	39.7511922	-105.0352038	39.7511899
-17968	8778	10231	0.0192769916187002	0.0192769916187002	-104.9874654	39.72522	-104.9876908	39.725221
-14164	9220	8375	0.0494394335916504	0.0494394335916504	-105.0352038	39.7511899	-105.0357821	39.7511876
-14165	8375	9278	0.0493971533103994	0.0493971533103994	-105.0357821	39.7511876	-105.0363599	39.7511906
-14167	7444	9292	0.0498509119548639	0.0498509119548639	-105.036965	39.7511936	-105.0375481	39.7511898
-14168	9292	7161	0.0504322249542888	0.0504322249542888	-105.0375481	39.7511898	-105.038138	39.751186
-14169	7161	9293	0.049549545616498	0.049549545616498	-105.038138	39.751186	-105.0387175	39.7511941
-14671	5473	9414	0.169600878974653	0.169600878974653	-104.9701135	39.7384072	-104.9700963	39.736882
-14170	9293	7773	0.0509361632349417	0.0509361632349417	-105.0387175	39.7511941	-105.0393133	39.7511908
-14171	7773	9039	0.0499454477956979	0.0499454477956979	-105.0393133	39.7511908	-105.0398975	39.7511951
-14172	9039	1114	0.0547655871790504	0.0547655871790504	-105.0398975	39.7511951	-105.040538	39.751186
-14173	1114	9294	0.0447798115689078	0.0447798115689078	-105.040538	39.751186	-105.0410618	39.7511847
-14174	9294	7494	0.0527731793085291	0.0527731793085291	-105.0410618	39.7511847	-105.0416791	39.7511831
-14175	7494	9170	0.0488063990880333	0.0488063990880333	-105.0416791	39.7511831	-105.04225	39.7511845
-14176	9170	3836	0.0502683027746479	0.0502683027746479	-105.04225	39.7511845	-105.042838	39.751186
-14180	7818	2938	0.0876396467302253	0.0876396467302253	-104.9257985	39.7038513	-104.9247744	39.7038309
-14181	2938	6809	0.0888992165922937	0.0888992165922937	-104.9247744	39.7038309	-104.9237358	39.7038573
-14182	6809	1960	0.772041478396669	0.772041478396669	-104.9237358	39.7038573	-104.9147112	39.7038545
-17800	8536	8859	0.0293889142934455	0.0293889142934455	-104.987378	39.7529333	-104.9873914	39.7526692
-14183	1960	9295	0.960771522024492	0.960771522024492	-104.9147112	39.7038545	-104.9034805	39.70387
-14184	7571	9296	0.161476693063143	0.161476693063143	-104.9862197	39.7256409	-104.9850256	39.724516
-14185	9296	8888	0.0634729683022204	0.0634729683022204	-104.9850256	39.724516	-104.984536	39.724087
-14187	9297	6334	0.0129309336441387	0.0129309336441387	-104.9852863	39.7256333	-104.9851351	39.7256329
-14188	6334	7083	0.0225608570291498	0.0225608570291498	-104.9851351	39.7256329	-104.9848713	39.7256319
-14189	7083	8784	0.107920119748436	0.107920119748436	-104.9848713	39.7256319	-104.9836094	39.725629
-14190	8784	8791	0.106332666658533	0.106332666658533	-104.9836094	39.725629	-104.9823661	39.725621
-14191	8791	3157	0.106749034536814	0.106749034536814	-104.9823661	39.725621	-104.9811181	39.7256387
-14192	3157	4976	0.101195319793441	0.101195319793441	-104.9811181	39.7256387	-104.9799349	39.7256286
-14193	4976	9298	0.0996902493641346	0.0996902493641346	-104.9799349	39.7256286	-104.9787693	39.7256185
-14194	9298	9299	0.104226329823663	0.104226329823663	-104.9787693	39.7256185	-104.9775506	39.725614
-14195	9299	6538	0.0493134523648135	0.0493134523648135	-104.9775506	39.725614	-104.976974	39.7256103
-14196	6538	5048	0.0489874238643872	0.0489874238643872	-104.976974	39.7256103	-104.9764012	39.725608
-14197	5048	8001	0.0994531494791736	0.0994531494791736	-104.9764012	39.725608	-104.9752384	39.7255962
-14198	8001	985	0.0994551795792203	0.0994551795792203	-104.9752384	39.7255962	-104.9740756	39.7255831
-14199	985	5104	0.0491411684949994	0.0491411684949994	-104.9740756	39.7255831	-104.973501	39.7255812
-14201	8831	9300	0.0488242916251385	0.0488242916251385	-104.9729154	39.7255792	-104.9723445	39.725579
-14202	9300	7149	0.0497002324101769	0.0497002324101769	-104.9723445	39.725579	-104.9717634	39.7255844
-14203	7149	2393	0.0492946529104208	0.0492946529104208	-104.9717634	39.7255844	-104.971187	39.7255843
-14204	2393	5115	0.0502354677891233	0.0502354677891233	-104.971187	39.7255843	-104.9705996	39.7255851
-14205	5115	9301	0.0497154080261439	0.0497154080261439	-104.9705996	39.7255851	-104.9700183	39.7255888
-14206	9301	4714	0.049399080188397	0.049399080188397	-104.9700183	39.7255888	-104.9694407	39.7255926
-14207	4714	8872	0.0991624253785381	0.0991624253785381	-104.9694407	39.7255926	-104.9682812	39.7255941
-14208	8872	7353	0.0988972303255353	0.0988972303255353	-104.9682812	39.7255941	-104.9671248	39.7255931
-14209	7353	5412	0.107964313206197	0.107964313206197	-104.9671248	39.7255931	-104.9658624	39.7255988
-14210	5412	3145	0.0906444248702148	0.0906444248702148	-104.9658624	39.7255988	-104.9648025	39.7256
-14211	3145	3919	0.0988223626592478	0.0988223626592478	-104.9648025	39.7256	-104.963647	39.7256059
-18204	6875	8356	0.205977621151269	0.205977621151269	-105.0363465	39.7658167	-105.0363437	39.7639643
-14212	3919	3918	0.0189862588635382	0.0189862588635382	-104.963647	39.7256059	-104.963425	39.7256047
-14213	3918	1010	0.0826936905404967	0.0826936905404967	-104.963425	39.7256047	-104.9624581	39.7255985
-14214	1010	6261	0.0974734196824701	0.0974734196824701	-104.9624581	39.7255985	-104.9613184	39.7256069
-14215	6261	8730	0.0989075877241795	0.0989075877241795	-104.9613184	39.7256069	-104.9601619	39.7256124
-14216	8730	7153	0.0605847994240266	0.0605847994240266	-104.9601619	39.7256124	-104.9594535	39.725616
-14217	7153	5021	0.0499889577891061	0.0499889577891061	-104.9594535	39.725616	-104.958869	39.7256124
-14218	5021	9302	0.0549823108734392	0.0549823108734392	-104.958869	39.7256124	-104.9582261	39.7256145
-14219	9302	3342	0.0335617577180335	0.0335617577180335	-104.9582261	39.7256145	-104.9578337	39.7256186
-14220	3342	3352	0.0674788037125104	0.0674788037125104	-104.9578337	39.7256186	-104.9570447	39.7256136
-14221	3352	7886	0.0299418452790484	0.0299418452790484	-104.9570447	39.7256136	-104.9566946	39.7256155
-14222	7886	7319	0.0732493043433617	0.0732493043433617	-104.9566946	39.7256155	-104.9558381	39.7256145
-14223	7319	7320	0.0259215863697348	0.0259215863697348	-104.9558381	39.7256145	-104.955535	39.7256145
-14224	7320	7977	0.0775267077551995	0.0775267077551995	-104.955535	39.7256145	-104.9546285	39.7256103
-14225	7977	7980	0.0233987016260196	0.0233987016260196	-104.9546285	39.7256103	-104.9543549	39.7256103
-14226	7980	2061	0.0796038188827741	0.0796038188827741	-104.9543549	39.7256103	-104.9534241	39.7256124
-14227	2061	8870	0.0167451229489977	0.0167451229489977	-104.9534241	39.7256124	-104.9532283	39.7256124
-14228	8870	2647	0.0876006586657796	0.0876006586657796	-104.9532283	39.7256124	-104.952204	39.7256088
-14229	2647	8860	0.0114861984991212	0.0114861984991212	-104.952204	39.7256088	-104.9520697	39.7256077
-14231	4113	8862	0.00848374045935965	0.00848374045935965	-104.9509997	39.7256047	-104.9509005	39.7256047
-14232	8862	8687	0.0949896568056219	0.0949896568056219	-104.9509005	39.7256047	-104.9497898	39.7256083
-14234	6694	8024	0.0782864986898227	0.0782864986898227	-104.9495001	39.7256083	-104.9485847	39.7256075
-14235	8024	8017	0.0158816052839578	0.0158816052839578	-104.9485847	39.7256075	-104.948399	39.7256083
-18205	8356	10280	0.196081618210442	0.196081618210442	-105.0363437	39.7639643	-105.0363386	39.7622009
-14236	8017	7681	0.0911745487086236	0.0911745487086236	-104.948399	39.7256083	-104.9473329	39.7256083
-14237	7681	3454	0.0980849682512979	0.0980849682512979	-104.9473329	39.7256083	-104.946186	39.7256104
-14238	3454	6017	0.0971271293907499	0.0971271293907499	-104.946186	39.7256104	-104.9450503	39.7256083
-14239	6017	9303	0.0906101063303862	0.0906101063303862	-104.9450503	39.7256083	-104.9439908	39.7256083
-14240	9303	3884	0.022021804982538	0.022021804982538	-104.9439908	39.7256083	-104.9437333	39.7256083
-14241	3884	9304	0.0244079810975188	0.0244079810975188	-104.9437333	39.7256083	-104.9434479	39.7256076
-14242	9304	852	0.0462417773626911	0.0462417773626911	-104.9434479	39.7256076	-104.9429072	39.7256062
-14243	852	847	0.0318832988859635	0.0318832988859635	-104.9429072	39.7256062	-104.9425344	39.7256041
-14244	847	9305	0.0129480432587025	0.0129480432587025	-104.9425344	39.7256041	-104.942383	39.7256045
-14245	9305	7103	0.0469858120705144	0.0469858120705144	-104.942383	39.7256045	-104.9418336	39.7256059
-14246	7103	7098	0.0440436114993002	0.0440436114993002	-104.9418336	39.7256059	-104.9413186	39.7256059
-14247	7098	8567	0.0448162532507988	0.0448162532507988	-104.9413186	39.7256059	-104.940796	39.7255761
-14248	8567	8696	0.0173715559267549	0.0173715559267549	-104.940796	39.7255761	-104.9406095	39.7255142
-14249	8696	8157	0.112872102261494	0.112872102261494	-104.9406095	39.7255142	-104.9393188	39.7253022
-14251	7606	7263	0.0986452262534628	0.0986452262534628	-104.9382673	39.7253035	-104.9371139	39.7253117
-14252	7263	7596	0.0935891946661749	0.0935891946661749	-104.9371139	39.7253117	-104.9360196	39.7253179
-14253	7596	2019	0.0979493336941006	0.0979493336941006	-104.9360196	39.7253179	-104.9348743	39.7253138
-14254	2019	2009	0.0254598809515577	0.0254598809515577	-104.9348743	39.7253138	-104.9345766	39.7253138
-14255	2009	9306	0.0651506123907477	0.0651506123907477	-104.9345766	39.7253138	-104.9338148	39.7253138
-14256	9306	2765	0.0942796454050606	0.0942796454050606	-104.9338148	39.7253138	-104.9327124	39.7253158
-14257	2765	7004	0.0945020258355606	0.0945020258355606	-104.9327124	39.7253158	-104.9316074	39.7253179
-14258	7004	2269	0.094510288095609	0.094510288095609	-104.9316074	39.7253179	-104.9305023	39.7253179
-14259	2269	3597	0.0938178496086605	0.0938178496086605	-104.9305023	39.7253179	-104.9294053	39.72532
-14260	3597	7519	0.0940495689740582	0.0940495689740582	-104.9294053	39.72532	-104.9283056	39.7253241
-14261	7519	2097	0.0954278502201834	0.0954278502201834	-104.9283056	39.7253241	-104.9271898	39.7253303
-14262	2097	5979	0.093364277402532	0.093364277402532	-104.9271898	39.7253303	-104.9260981	39.7253303
-14263	5979	7668	0.0947328877466294	0.0947328877466294	-104.9260981	39.7253303	-104.9249904	39.7253323
-14264	7668	2333	0.0940581587738673	0.0940581587738673	-104.9249904	39.7253323	-104.9238906	39.7253365
-14290	7340	2847	0.0976411590956878	0.0976411590956878	-104.9316333	39.714638	-104.9304918	39.7146446
-14291	2847	3488	0.099134038329873	0.099134038329873	-104.9304918	39.7146446	-104.9293331	39.7146644
-14265	2333	9307	2.72967592410639	2.72967592410639	-104.9238906	39.7253365	-104.8919735	39.7255098
-14266	7939	9297	0.0419487931711618	0.0419487931711618	-104.9857768	39.7256351	-104.9852863	39.7256333
-14268	9308	8124	0.0322650869587369	0.0322650869587369	-104.9788375	39.7207707	-104.9790658	39.7205397
-14270	6489	4610	0.147433811602258	0.147433811602258	-104.9787322	39.7461798	-104.9787365	39.7448539
-14271	4610	9309	0.176778253451623	0.176778253451623	-104.9787365	39.7448539	-104.9787417	39.7432641
-14272	9309	9310	0.173976128689665	0.173976128689665	-104.9787417	39.7432641	-104.9787468	39.7416995
-14273	9310	661	0.00410310170227956	0.00410310170227956	-104.9787468	39.7416995	-104.9787469	39.7416626
-14274	661	9311	0.181937703339546	0.181937703339546	-104.9787469	39.7416626	-104.9787522	39.7400264
-14275	9311	9312	0.00955167864142152	0.00955167864142152	-104.9787522	39.7400264	-104.9787525	39.7399405
-14276	9312	5465	0.170285054650927	0.170285054650927	-104.9787525	39.7399405	-104.9787452	39.7384091
-14277	5465	9313	0.170744821866598	0.170744821866598	-104.9787452	39.7384091	-104.9787299	39.7368736
-14279	1959	9314	0.0338130460518869	0.0338130460518869	-104.9258263	39.7078957	-104.9258091	39.7081995
-14280	6865	9315	0.0139507857568572	0.0139507857568572	-104.9407779	39.7146468	-104.9406148	39.7146468
-14304	3303	9322	0.10510832723533	0.10510832723533	-104.9898413	39.756424	-104.9907084	39.7570942
-14282	1952	1061	0.0629715521271105	0.0629715521271105	-104.9402458	39.7146371	-104.9395162	39.7147128
-14283	1061	1698	0.0954893713474356	0.0954893713474356	-104.9395162	39.7147128	-104.9384005	39.7147427
-14284	1698	7830	0.0914331784434328	0.0914331784434328	-104.9384005	39.7147427	-104.937334	39.714687
-14285	7830	6672	0.0912502234487567	0.0912502234487567	-104.937334	39.714687	-104.9362682	39.7146512
-14287	3115	6289	0.0998478865183477	0.0998478865183477	-104.9351095	39.7146512	-104.9339422	39.7146578
-14288	6289	6153	0.0969141122634902	0.0969141122634902	-104.9339422	39.7146578	-104.9328092	39.7146512
-14289	6153	7340	0.100591515239683	0.100591515239683	-104.9328092	39.7146512	-104.9316333	39.714638
-14292	3488	5347	0.102266398355838	0.102266398355838	-104.9293331	39.7146644	-104.9281375	39.7146675
-14293	5347	5385	0.100999909961237	0.100999909961237	-104.9281375	39.7146675	-104.9269567	39.714668
-14294	5385	2941	0.100298515709498	0.100298515709498	-104.9269567	39.714668	-104.9257841	39.7146684
-14295	2941	6815	0.100200854484763	0.100200854484763	-104.9257841	39.7146684	-104.9246127	39.7146774
-14296	6815	9316	0.597950743493465	0.597950743493465	-104.9246127	39.7146774	-104.9176221	39.7147069
-14299	9318	9319	0.0328706223087289	0.0328706223087289	-104.9873865	39.7545236	-104.9876534	39.7547364
-14300	9319	9320	0.0460951861554719	0.0460951861554719	-104.9876534	39.7547364	-104.9880277	39.7550348
-14332	8959	603	0.0768028618845699	0.0768028618845699	-104.9949911	39.7695799	-104.9958065	39.7692896
-14301	9320	9321	0.0066600520489618	0.0066600520489618	-104.9880277	39.7550348	-104.9880818	39.7550779
-14302	9321	6181	0.104280480431139	0.104280480431139	-104.9880818	39.7550779	-104.9889487	39.7557377
-14303	6181	3303	0.107915728386056	0.107915728386056	-104.9889487	39.7557377	-104.9898413	39.756424
-14305	9322	7829	0.125883411444605	0.125883411444605	-104.9907084	39.7570942	-104.9917479	39.7578961
-14306	7829	9323	0.0108681676592021	0.0108681676592021	-104.9917479	39.7578961	-104.9918391	39.7579642
-14339	5536	6469	0.142307267119589	0.142307267119589	-104.9948277	39.7742296	-104.9948277	39.7755094
-14309	2191	9060	0.337657954437192	0.337657954437192	-104.9936227	39.759356	-104.9947546	39.7622653
-14312	8501	9324	0.0507516559976904	0.0507516559976904	-104.9871043	39.7524564	-104.9866859	39.7521326
-14313	9324	8418	0.0529402152835436	0.0529402152835436	-104.9866859	39.7521326	-104.986246	39.7517975
-14314	8418	9204	0.0536170041098827	0.0536170041098827	-104.986246	39.7517975	-104.9858044	39.7514551
-16428	9891	9892	0.0636662665142278	0.0636662665142278	-104.9688482	39.696672	-104.9695204	39.6969176
-14316	9204	8416	0.0537868101405785	0.0537868101405785	-104.9858044	39.7514551	-104.9853609	39.751112
-14317	8416	4388	0.0529171329453403	0.0529171329453403	-104.9853609	39.751112	-104.9849232	39.7507755
-14318	4388	9325	0.0509479826022637	0.0509479826022637	-104.9849232	39.7507755	-104.9845026	39.7504509
-14319	9325	3012	0.0488022545854277	0.0488022545854277	-104.9845026	39.7504509	-104.9840976	39.7501416
-14320	3012	9326	0.0106897373905654	0.0106897373905654	-104.9840976	39.7501416	-104.9840104	39.7500727
-14321	9326	9327	0.0465239604768105	0.0465239604768105	-104.9840104	39.7500727	-104.9836296	39.7497738
-14322	9327	5968	0.0526629141875595	0.0526629141875595	-104.9836296	39.7497738	-104.9831894	39.7494425
-14323	5968	7574	0.106363762970419	0.106363762970419	-104.9831894	39.7494425	-104.982314	39.7487628
-14324	7574	3677	0.190331060201359	0.190331060201359	-104.982314	39.7487628	-104.980751	39.7475439
-14326	604	9328	0.0383191315904674	0.0383191315904674	-104.9964331	39.7692764	-104.9959868	39.7692435
-14327	9328	8962	0.0878512488922689	0.0878512488922689	-104.9959868	39.7692435	-104.9951474	39.7687875
-14336	2420	3233	0.140764271648617	0.140764271648617	-104.9948281	39.7704903	-104.9948707	39.7717558
-14337	3233	5753	0.137661630591373	0.137661630591373	-104.9948707	39.7717558	-104.9948482	39.7729937
-14338	5753	5536	0.137436976875483	0.137436976875483	-104.9948482	39.7729937	-104.9948277	39.7742296
-14340	6469	8679	0.121371092902246	0.121371092902246	-104.9948277	39.7755094	-104.9948199	39.7766009
-14341	8679	9329	0.0309595800848719	0.0309595800848719	-104.9948199	39.7766009	-104.9948053	39.7768791
-20573	10860	10861	0.0279030600601915	0.0279030600601915	-105.02457	39.7611148	-105.0248964	39.7611186
-14342	6914	8116	0.133600464645887	0.133600464645887	-105.0111738	39.7765593	-105.0111288	39.7777603
-14343	8116	2483	0.133445859176034	0.133445859176034	-105.0111288	39.7777603	-105.0111233	39.7789604
-14344	2483	2482	0.047686047945258	0.047686047945258	-105.0111233	39.7789604	-105.0111147	39.7793892
-14345	2482	2821	0.0880230568241511	0.0880230568241511	-105.0111147	39.7793892	-105.0111319	39.7801807
-14346	2821	1413	0.131238509050086	0.131238509050086	-105.0111319	39.7801807	-105.0110892	39.7813605
-14347	1413	1353	0.132733599584258	0.132733599584258	-105.0110892	39.7813605	-105.0110864	39.7825542
-14348	1353	7767	0.0733149237137966	0.0733149237137966	-105.0110864	39.7825542	-105.0110634	39.7832133
-14350	6729	2454	0.137919009046371	0.137919009046371	-105.0111874	39.7692764	-105.0111996	39.7705167
-14351	2454	3222	0.134234515444875	0.134234515444875	-105.0111996	39.7705167	-105.0111996	39.7717239
-14352	3222	5743	0.134597141931663	0.134597141931663	-105.0111996	39.7717239	-105.0112253	39.7729342
-14353	5743	5520	0.133175062767026	0.133175062767026	-105.0112253	39.7729342	-105.0112082	39.7741318
-14355	6454	6914	0.135018185869381	0.135018185869381	-105.0112167	39.7753455	-105.0111738	39.7765593
-14358	9331	5721	0.0487615183925519	0.0487615183925519	-105.0351853	39.7838062	-105.0357498	39.7838704
-14359	5721	7455	0.0500566721474228	0.0500566721474228	-105.0357498	39.7838704	-105.0363356	39.7838724
-14360	7455	7439	0.0502188861539984	0.0502188861539984	-105.0363356	39.7838724	-105.0369233	39.7838741
-14361	7439	9332	0.0497229240568787	0.0497229240568787	-105.0369233	39.7838741	-105.0375052	39.7838741
-14362	9332	7179	0.0495263907597367	0.0495263907597367	-105.0375052	39.7838741	-105.0380848	39.7838741
-14363	7179	6514	0.0494836674166392	0.0494836674166392	-105.0380848	39.7838741	-105.0386639	39.783874
-14364	6514	7769	0.0494751212766029	0.0494751212766029	-105.0386639	39.783874	-105.0392429	39.783874
-14365	7769	8353	0.0493044680149371	0.0493044680149371	-105.0392429	39.783874	-105.0398199	39.7838754
-14366	8353	1088	0.0496035740367965	0.0496035740367965	-105.0398199	39.7838754	-105.0404004	39.7838769
-14367	1088	9333	0.0494070055394434	0.0494070055394434	-105.0404004	39.7838769	-105.0409786	39.7838755
-18206	10280	8329	0.00812836711491393	0.00812836711491393	-105.0363386	39.7622009	-105.0363384	39.7621278
-14368	9333	7511	0.0493300687211978	0.0493300687211978	-105.0409786	39.7838755	-105.0415559	39.7838742
-14369	7511	9334	0.0505963663421883	0.0505963663421883	-105.0415559	39.7838742	-105.042148	39.7838703
-14370	9334	3859	0.0512115816031079	0.0512115816031079	-105.042148	39.7838703	-105.0427473	39.7838664
-14371	3859	7593	0.0500990561172611	0.0500990561172611	-105.0427473	39.7838664	-105.0433336	39.7838653
-14372	7593	5584	0.0522011302499861	0.0522011302499861	-105.0433336	39.7838653	-105.0439445	39.7838641
-14376	6393	4066	0.134479200667361	0.134479200667361	-105.0252309	39.747573	-105.0251451	39.7487806
-17290	7744	10084	0.402391291558362	0.402391291558362	-104.9517894	39.689329	-104.9518229	39.6857103
-14377	4066	8345	0.135023999423797	0.135023999423797	-105.0251451	39.7487806	-105.0251451	39.7499949
-14378	8345	9290	0.135014881750995	0.135014881750995	-105.0251451	39.7499949	-105.0251537	39.7512091
-14380	9290	8343	0.132811220384574	0.132811220384574	-105.0251537	39.7512091	-105.0251537	39.7524035
-14381	8343	4290	0.133533987407519	0.133533987407519	-105.0251537	39.7524035	-105.0251537	39.7536044
-14382	4290	9335	0.135902936474728	0.135902936474728	-105.0251537	39.7536044	-105.025158	39.7548266
-14383	9335	3489	0.0587665939642116	0.0587665939642116	-105.025158	39.7548266	-105.0251569	39.7553551
-14384	3489	7712	0.0755904198902593	0.0755904198902593	-105.0251569	39.7553551	-105.0251554	39.7560349
-14385	7712	27	0.134715758792357	0.134715758792357	-105.0251554	39.7560349	-105.0251661	39.7572464
-14386	27	2969	0.137103389587981	0.137103389587981	-105.0251661	39.7572464	-105.0251674	39.7584794
-14387	2969	9336	0.0109860620784292	0.0109860620784292	-105.0251674	39.7584794	-105.0251673	39.7585782
-14388	9336	9337	0.167759812178903	0.167759812178903	-105.0251673	39.7585782	-105.0251662	39.7600869
-14389	9337	9206	0.00926254133366712	0.00926254133366712	-105.0251662	39.7600869	-105.0251661	39.7601702
-14390	9206	8977	0.0113535458246787	0.0113535458246787	-105.0251661	39.7601702	-105.0251674	39.7602723
-14391	8977	8972	0.0088289433819593	0.0088289433819593	-105.0251674	39.7602723	-105.025167	39.7603517
-14392	8972	3592	0.0571990081351957	0.0571990081351957	-105.025167	39.7603517	-105.0251647	39.7608661
-14393	3592	9338	0.0469245704560806	0.0469245704560806	-105.0251647	39.7608661	-105.0251667	39.7612881
-14394	9338	9339	0.0729443531618577	0.0729443531618577	-105.0251667	39.7612881	-105.0251698	39.7619441
-14395	9339	8232	0.00668286428887123	0.00668286428887123	-105.0251698	39.7619441	-105.0251701	39.7620042
-14396	8232	9340	0.00979627303730314	0.00979627303730314	-105.0251701	39.7620042	-105.0251701	39.7620923
-14397	9340	9341	0.118389238398527	0.118389238398527	-105.0251701	39.7620923	-105.0251701	39.763157
-14398	9341	4525	0.00524840053732967	0.00524840053732967	-105.0251701	39.763157	-105.0251701	39.7632042
-14399	4525	9342	0.013599142214923	0.013599142214923	-105.0251701	39.7632042	-105.02517	39.7633265
-17917	5630	5173	0.1998812615077	0.1998812615077	-104.9856145	39.7183411	-104.9856359	39.7165436
-14400	9342	5242	0.122003116630053	0.122003116630053	-105.02517	39.7633265	-105.0251688	39.7644237
-14401	5242	6892	0.132288650893496	0.132288650893496	-105.0251688	39.7644237	-105.0251701	39.7656134
-14402	6892	9343	0.135024052446379	0.135024052446379	-105.0251701	39.7656134	-105.0251715	39.7668277
-14403	9343	1682	0.135717283468362	0.135717283468362	-105.0251715	39.7668277	-105.0251835	39.7680482
-14404	1682	9344	0.13652220484586	0.13652220484586	-105.0251835	39.7680482	-105.025201	39.7692759
-14405	9344	9345	0.105458278319657	0.105458278319657	-105.025201	39.7692759	-105.0251956	39.7702243
-14406	9345	2418	0.102009831688775	0.102009831688775	-105.0251956	39.7702243	-105.0251709	39.7711415
-14407	2418	3242	0.101232559655988	0.101232559655988	-105.0251709	39.7711415	-105.0251665	39.7720519
-14408	3242	5748	0.0982858511104491	0.0982858511104491	-105.0251665	39.7720519	-105.0251623	39.7729358
-14409	5748	374	0.0623624460797668	0.0623624460797668	-105.0251623	39.7729358	-105.0251537	39.7734966
-14410	374	5523	0.0701701821949803	0.0701701821949803	-105.0251537	39.7734966	-105.0251646	39.7741276
-14411	5523	6457	0.135950108709595	0.135950108709595	-105.0251646	39.7741276	-105.0251537	39.7753502
-14412	6457	6915	0.143043041710545	0.143043041710545	-105.0251537	39.7753502	-105.0251451	39.7766366
-14413	6915	8113	0.201708935806819	0.201708935806819	-105.0251451	39.7766366	-105.0251365	39.7784506
-14414	8113	2832	0.20096393469179	0.20096393469179	-105.0251365	39.7784506	-105.0251279	39.7802579
-14415	2832	9346	0.204633312594591	0.204633312594591	-105.0251279	39.7802579	-105.0251194	39.7820982
-14416	9346	414	0.202451705011007	0.202451705011007	-105.0251194	39.7820982	-105.025085	39.7839187
-14417	414	9347	0.0102632917291373	0.0102632917291373	-105.025085	39.7839187	-105.025085	39.784011
-14419	9348	9349	0.0562572963351917	0.0562572963351917	-105.0252787	39.756038	-105.0259368	39.7560399
-14420	9349	8300	0.00966827703924115	0.00966827703924115	-105.0259368	39.7560399	-105.0260499	39.7560402
-14421	8300	6777	0.0385409578619094	0.0385409578619094	-105.0260499	39.7560402	-105.0265007	39.7560347
-14422	6777	1544	0.0462211024255861	0.0462211024255861	-105.0265007	39.7560347	-105.0270414	39.7560347
-14423	1544	7912	0.0490573153021717	0.0490573153021717	-105.0270414	39.7560347	-105.0276151	39.7560457
-14424	7912	1233	0.049290008691593	0.049290008691593	-105.0276151	39.7560457	-105.0281917	39.7560463
-14426	6137	1235	0.0484278864865507	0.0484278864865507	-105.0287666	39.7560413	-105.0293331	39.7560445
-14427	1235	4023	0.0513600630217092	0.0513600630217092	-105.0293331	39.7560445	-105.0299339	39.7560479
-14429	9350	6747	0.132068580931606	0.132068580931606	-105.0252762	39.7536227	-105.0268211	39.7536227
-14430	6747	6147	0.133962898476652	0.133962898476652	-105.0268211	39.7536227	-105.0283879	39.7536008
-14431	6147	4021	0.132523387247295	0.132523387247295	-105.0283879	39.7536008	-105.029938	39.753586
-14432	4021	7025	0.136778977327424	0.136778977327424	-105.029938	39.753586	-105.031538	39.753586
-14433	7025	7395	0.133533581691074	0.133533581691074	-105.031538	39.753586	-105.0331	39.7535942
-14434	7395	3404	0.129273092410981	0.129273092410981	-105.0331	39.7535942	-105.0346118	39.7536209
-14437	6743	6143	0.132668974575322	0.132668974575322	-105.0268304	39.7487612	-105.0283819	39.7487852
-14439	4017	7021	0.135416440349126	0.135416440349126	-105.0299442	39.7487903	-105.0315281	39.7488001
-15949	9764	9765	0.0507119344408952	0.0507119344408952	-104.9984431	39.7056824	-104.9988186	39.7053295
-14440	7021	2253	0.0670945211351968	0.0670945211351968	-105.0315281	39.7488001	-105.0323128	39.7487906
-14441	2253	7391	0.0705505249778064	0.0705505249778064	-105.0323128	39.7487906	-105.033138	39.748786
-14442	7391	8378	0.0284601613193826	0.0284601613193826	-105.033138	39.748786	-105.0334703	39.7487707
-14443	8378	9352	0.0168078916798857	0.0168078916798857	-105.0334703	39.7487707	-105.0336669	39.7487707
-14444	9352	9164	0.0309569561418734	0.0309569561418734	-105.0336669	39.7487707	-105.034029	39.7487707
-14445	9164	3399	0.0498252251835071	0.0498252251835071	-105.034029	39.7487707	-105.0346118	39.7487707
-14446	3399	9201	0.0503897904067021	0.0503897904067021	-105.0346118	39.7487707	-105.0352011	39.7487792
-14447	9201	8373	0.0497143012199282	0.0497143012199282	-105.0352011	39.7487792	-105.0357825	39.7487876
-14448	8373	9353	0.0509790068650631	0.0509790068650631	-105.0357825	39.7487876	-105.0363784	39.7487709
-14449	9353	7441	0.0496189650212473	0.0496189650212473	-105.0363784	39.7487709	-105.0369584	39.7487546
-14450	7441	7159	0.100702050774509	0.100702050774509	-105.0369584	39.7487546	-105.0381363	39.7487551
-14451	7159	9354	0.0494661713985568	0.0494661713985568	-105.0381363	39.7487551	-105.0387149	39.7487553
-14452	9354	7771	0.0505861336269105	0.0505861336269105	-105.0387149	39.7487553	-105.0393066	39.7487556
-14453	7771	9120	0.0493839312690347	0.0493839312690347	-105.0393066	39.7487556	-105.0398842	39.7487505
-14454	9120	1112	0.0512647827333792	0.0512647827333792	-105.0398842	39.7487505	-105.0404838	39.7487453
-14455	1112	9355	0.0498795134320378	0.0498795134320378	-105.0404838	39.7487453	-105.0410672	39.7487502
-14456	9355	7492	0.0488194630548967	0.0488194630548967	-105.0410672	39.7487502	-105.0416382	39.7487551
-14457	7492	9168	0.0520827219058429	0.0520827219058429	-105.0416382	39.7487551	-105.0422474	39.7487571
-14460	9356	8961	0.0504011792295747	0.0504011792295747	-105.025291	39.7729029	-105.0258806	39.7729129
-14461	8961	3748	0.0493839208030821	0.0493839208030821	-105.0258806	39.7729129	-105.0264583	39.7729227
-14462	3748	6769	0.0968984775923487	0.0968984775923487	-105.0264583	39.7729227	-105.0275913	39.7729556
-14463	6769	6149	0.102435146849327	0.102435146849327	-105.0275913	39.7729556	-105.0287889	39.7729931
-14465	3994	7051	0.102115193238577	0.102115193238577	-105.029945	39.7730349	-105.031138	39.773086
-14466	7051	1408	0.0946641824527164	0.0946641824527164	-105.031138	39.773086	-105.032238	39.773186
-14467	1408	7388	0.085462530975882	0.085462530975882	-105.032238	39.773186	-105.033238	39.773186
-14468	7388	7384	0.0170925061959903	0.0170925061959903	-105.033238	39.773186	-105.033438	39.773186
-18773	9634	9642	0.177090825598433	0.177090825598433	-105.0008673	39.7384682	-105.0008766	39.7368756
-14469	7384	3431	0.0989346539047275	0.0989346539047275	-105.033438	39.773186	-105.0345947	39.7731502
-14470	3431	7700	0.0518438186201772	0.0518438186201772	-105.0345947	39.7731502	-105.0352012	39.7731407
-14471	7700	5704	0.048946112444104	0.048946112444104	-105.0352012	39.7731407	-105.0357738	39.7731317
-14472	5704	9357	0.0519385112225497	0.0519385112225497	-105.0357738	39.7731317	-105.0363814	39.7731219
-14473	9357	7431	0.0487842422429383	0.0487842422429383	-105.0363814	39.7731219	-105.0369521	39.7731127
-14474	7431	9358	0.0504551193593522	0.0504551193593522	-105.0369521	39.7731127	-105.0375421	39.7730965
-14475	9358	7172	0.0479047859915454	0.0479047859915454	-105.0375421	39.7730965	-105.0381026	39.7730917
-14476	7172	6792	0.0511502123352556	0.0511502123352556	-105.0381026	39.7730917	-105.038701	39.7730829
-14477	6792	7632	0.00188047440472113	0.00188047440472113	-105.038701	39.7730829	-105.038723	39.7730826
-14478	7632	7787	0.0496192518214323	0.0496192518214323	-105.038723	39.7730826	-105.0393035	39.7730745
-14480	9359	8535	0.0508077855400009	0.0508077855400009	-105.0252953	39.7710821	-105.0258888	39.7711084
-14481	8535	6765	0.145782759028854	0.145782759028854	-105.0258888	39.7711084	-105.0275931	39.7711626
-14482	6765	3990	0.201170058672575	0.201170058672575	-105.0275931	39.7711626	-105.0299456	39.7712234
-14484	1252	9360	0.0508116162596578	0.0508116162596578	-105.020531	39.7702103	-105.0211255	39.7702143
-14485	9360	2713	0.151002345273532	0.151002345273532	-105.0211255	39.7702143	-105.0228923	39.7702104
-14486	2713	9361	0.150151679268698	0.150151679268698	-105.0228923	39.7702104	-105.0246491	39.770221
-14487	9361	9345	0.0467087251829664	0.0467087251829664	-105.0246491	39.770221	-105.0251956	39.7702243
-14489	604	9362	0.304555126012675	0.304555126012675	-104.9964331	39.7692764	-104.9999965	39.7692821
-19303	10466	10464	0.0570509910756543	0.0570509910756543	-104.988856	39.7399993	-104.9888814	39.740512
-14490	9362	3931	0.0491525010465484	0.0491525010465484	-104.9999965	39.7692821	-105.0005716	39.7692834
-14491	3931	5621	0.101973762448865	0.101973762448865	-105.0005716	39.7692834	-105.0017647	39.76929
-14492	5621	3706	0.101962569966911	0.101962569966911	-105.0017647	39.76929	-105.0029577	39.76929
-14493	3706	712	0.103443032392629	0.103443032392629	-105.0029577	39.76929	-105.0041679	39.7692768
-14494	712	9192	0.0968373320357312	0.0968373320357312	-105.0041679	39.7692768	-105.0053009	39.7692702
-14495	9192	9363	0.0080975223718546	0.0080975223718546	-105.0053009	39.7692702	-105.0053953	39.7692764
-14496	9363	8516	0.0893732443225825	0.0893732443225825	-105.0053953	39.7692764	-105.006441	39.7692764
-14497	8516	4192	0.13424362136155	0.13424362136155	-105.006441	39.7692764	-105.0080117	39.7692764
-14498	4192	2518	0.136440133151325	0.136440133151325	-105.0080117	39.7692764	-105.0096081	39.7692764
-14499	2518	6729	0.134978640871206	0.134978640871206	-105.0096081	39.7692764	-105.0111874	39.7692764
-14500	6729	1227	0.0997687727623418	0.0997687727623418	-105.0111874	39.7692764	-105.0123547	39.769283
-14501	1227	4806	0.0366740513167213	0.0366740513167213	-105.0123547	39.769283	-105.0127838	39.769283
-14502	4806	4807	0.0623613194343192	0.0623613194343192	-105.0127838	39.769283	-105.0135134	39.7692764
-14503	4807	9364	0.0735708513932139	0.0735708513932139	-105.0135134	39.7692764	-105.0143742	39.7692739
-14505	2172	9365	0.10218559205586	0.10218559205586	-105.0146807	39.7692764	-105.0158763	39.7692728
-14506	9365	6421	0.131466128237451	0.131466128237451	-105.0158763	39.7692728	-105.0174145	39.7692708
-14507	6421	4627	0.133072729014262	0.133072729014262	-105.0174145	39.7692708	-105.0189715	39.7692708
-14508	4627	1251	0.132619751836754	0.132619751836754	-105.0189715	39.7692708	-105.0205232	39.7692708
-14509	1251	9366	0.0509582244384895	0.0509582244384895	-105.0205232	39.7692708	-105.0211194	39.7692754
-14510	9366	4559	0.0827794726054668	0.0827794726054668	-105.0211194	39.7692754	-105.0220879	39.769283
-14511	4559	2712	0.0689589814233185	0.0689589814233185	-105.0220879	39.769283	-105.0228947	39.7692896
-14512	2712	2728	0.0619836012735683	0.0619836012735683	-105.0228947	39.7692896	-105.0236198	39.769279
-14513	2728	9367	0.087518882590742	0.087518882590742	-105.0236198	39.769279	-105.0246438	39.769277
-14514	9367	9344	0.0476225838725891	0.0476225838725891	-105.0246438	39.769277	-105.025201	39.7692759
-14515	9344	9368	0.00985438954363147	0.00985438954363147	-105.025201	39.7692759	-105.0253163	39.7692759
-14516	9368	9369	0.0491094576501381	0.0491094576501381	-105.0253163	39.7692759	-105.0258904	39.7692943
-18778	10124	10345	0.0125614259192805	0.0125614259192805	-105.0006648	39.7400196	-105.0006728	39.7399068
-14517	9369	7774	0.00626697755243391	0.00626697755243391	-105.0258904	39.7692943	-105.0259637	39.7692958
-14518	7774	6761	0.141378168804538	0.141378168804538	-105.0259637	39.7692958	-105.0276173	39.7693294
-14519	6761	3985	0.199192140414955	0.199192140414955	-105.0276173	39.7693294	-105.0299452	39.769416
-14521	7053	7044	0.0653254811284965	0.0653254811284965	-105.0315035	39.7694414	-105.0322674	39.7694612
-14522	7044	7387	0.0682830004024069	0.0682830004024069	-105.0322674	39.7694612	-105.0330656	39.7694876
-14523	7387	3430	0.133588924605445	0.133588924605445	-105.0330656	39.7694876	-105.0346278	39.7695271
-14524	3430	7686	0.0503796411863715	0.0503796411863715	-105.0346278	39.7695271	-105.0352172	39.7695205
-14525	7686	5703	0.0508582113883613	0.0508582113883613	-105.0352172	39.7695205	-105.0358122	39.7695139
-14526	5703	9370	0.0488667197641872	0.0488667197641872	-105.0358122	39.7695139	-105.0363839	39.7695075
-14527	9370	7429	0.0516445969542144	0.0516445969542144	-105.0363839	39.7695075	-105.0369881	39.7695008
-14528	7429	9371	0.0490112318671292	0.0490112318671292	-105.0369881	39.7695008	-105.0375615	39.7694949
-14529	9371	7171	0.0508482971319457	0.0508482971319457	-105.0375615	39.7694949	-105.0381554	39.7694678
-14530	7171	7624	0.0496771306838175	0.0496771306838175	-105.0381554	39.7694678	-105.0387364	39.7694549
-14531	7624	7786	0.0493747865229187	0.0493747865229187	-105.0387364	39.7694549	-105.0393141	39.7694531
-14532	7786	6545	0.0503324450079726	0.0503324450079726	-105.0393141	39.7694531	-105.039903	39.7694505
-14533	6545	1130	0.0509050056370777	0.0509050056370777	-105.039903	39.7694505	-105.0404986	39.769448
-14534	1130	9372	0.0485943238040251	0.0485943238040251	-105.0404986	39.769448	-105.0410671	39.769441
-14535	9372	7501	0.0507738202300539	0.0507738202300539	-105.0410671	39.769441	-105.0416611	39.7694338
-14536	7501	3847	0.101870167526128	0.101870167526128	-105.0416611	39.7694338	-105.0428508	39.7693779
-14537	3847	9373	0.0504389434046066	0.0504389434046066	-105.0428508	39.7693779	-105.0434409	39.7693717
-14538	9373	5568	0.0510557052627446	0.0510557052627446	-105.0434409	39.7693717	-105.0440382	39.7693646
-14539	5568	7550	0.0950790701641584	0.0950790701641584	-105.0440382	39.7693646	-105.0451506	39.7693556
-18779	10345	10346	0.00436025817920743	0.00436025817920743	-105.0006728	39.7399068	-105.0006741	39.7398676
-14540	7550	9374	0.691166878065482	0.691166878065482	-105.0451506	39.7693556	-105.0532374	39.7693224
-14542	9375	3750	0.0991970412293978	0.0991970412293978	-105.0252653	39.7766366	-105.0264259	39.7766517
-14543	3750	6775	0.030090245676364	0.030090245676364	-105.0264259	39.7766517	-105.0267779	39.7766583
-14544	6775	6770	0.06895159402243	0.06895159402243	-105.0267779	39.7766583	-105.0275847	39.7766649
-14545	6770	6151	0.0638158634824408	0.0638158634824408	-105.0275847	39.7766649	-105.0283314	39.7766715
-14546	6151	6150	0.0359509846886602	0.0359509846886602	-105.0283314	39.7766715	-105.028752	39.776678
-14547	6150	3996	0.0963309366011696	0.0963309366011696	-105.028752	39.776678	-105.0298791	39.7766911
-14548	3996	7052	0.102479688313932	0.102479688313932	-105.0298791	39.7766911	-105.031078	39.776711
-14549	7052	7045	0.0330120960596164	0.0330120960596164	-105.031078	39.776711	-105.0314642	39.7767176
-14550	7045	1410	0.0660204937565387	0.0660204937565387	-105.0314642	39.7767176	-105.0322367	39.7767242
-14551	1410	7375	0.0682166301368544	0.0682166301368544	-105.0322367	39.7767242	-105.0330349	39.7767308
-14552	7375	7385	0.0295959064634691	0.0295959064634691	-105.0330349	39.7767308	-105.0333812	39.7767337
-14553	7385	3434	0.103723384358152	0.103723384358152	-105.0333812	39.7767337	-105.0345947	39.776752
-14554	3434	7763	0.0498679267683769	0.0498679267683769	-105.0345947	39.776752	-105.0351781	39.7767423
-14555	7763	5714	0.0489397855227354	0.0489397855227354	-105.0351781	39.7767423	-105.0357506	39.7767314
-14556	5714	9376	0.0504544990745908	0.0504544990745908	-105.0357506	39.7767314	-105.036341	39.776731
-14557	9376	7434	0.0512120959316622	0.0512120959316622	-105.036341	39.776731	-105.0369402	39.7767242
-14558	7434	9377	0.0478236988076173	0.0478236988076173	-105.0369402	39.7767242	-105.0374998	39.776721
-14559	9377	7173	0.0504644501870281	0.0504644501870281	-105.0374998	39.776721	-105.0380903	39.7767176
-14560	7173	6757	0.0487932478126772	0.0487932478126772	-105.0380903	39.7767176	-105.0386612	39.7767112
-14561	6757	7788	0.0524425771479912	0.0524425771479912	-105.0386612	39.7767112	-105.0392748	39.7767044
-14562	7788	6629	0.0465854765801166	0.0465854765801166	-105.0392748	39.7767044	-105.0398199	39.7767003
-14563	6629	1135	0.050756073904441	0.050756073904441	-105.0398199	39.7767003	-105.0404138	39.7766958
-14564	1135	6996	0.0489590899927541	0.0489590899927541	-105.0404138	39.7766958	-105.0409867	39.7766949
-14565	6996	7502	0.0500614988346772	0.0500614988346772	-105.0409867	39.7766949	-105.0415725	39.776694
-14566	7502	9378	0.0592142721743878	0.0592142721743878	-105.0415725	39.776694	-105.0422654	39.7766923
-14567	9378	9379	0.0408406813526211	0.0408406813526211	-105.0422654	39.7766923	-105.0427433	39.7766911
-14568	9379	7525	0.051644217383113	0.051644217383113	-105.0427433	39.7766911	-105.0433434	39.7766363
-14569	7525	9380	0.00488834581127681	0.00488834581127681	-105.0433434	39.7766363	-105.0434002	39.7766311
-14570	9380	9381	0.0137184453378057	0.0137184453378057	-105.0434002	39.7766311	-105.0435596	39.7766165
-14571	9381	5577	0.0352923239739852	0.0352923239739852	-105.0435596	39.7766165	-105.0439697	39.7765791
-14572	5577	9382	0.0499195542635391	0.0499195542635391	-105.0439697	39.7765791	-105.0445538	39.7765739
-14573	9382	9383	0.00207675636441744	0.00207675636441744	-105.0445538	39.7765739	-105.0445781	39.7765737
-14574	9383	9384	0.047500863548095	0.047500863548095	-105.0445781	39.7765737	-105.0451339	39.7765688
-14575	9384	9385	0.692939297157353	0.692939297157353	-105.0451339	39.7765688	-105.0532424	39.7765622
-14576	9347	9386	0.0638147684012153	0.0638147684012153	-105.025085	39.784011	-105.025085	39.7845849
-14578	9386	7985	0.00659385915044033	0.00659385915044033	-105.025085	39.7845849	-105.025085	39.7846442
-14579	7985	9389	0.0876122732807676	0.0876122732807676	-105.025085	39.7846442	-105.0251871	39.7854282
-14581	9390	9391	0.0645406329993705	0.0645406329993705	-105.0252653	39.7845914	-105.0252579	39.784011
-14583	9391	413	0.0102638039419597	0.0102638039419597	-105.0252579	39.784011	-105.0252567	39.7839187
-14584	413	9392	0.19657163498794	0.19657163498794	-105.0252567	39.7839187	-105.0252309	39.782151
-14586	2833	2489	0.134959283423391	0.134959283423391	-105.0252481	39.7802579	-105.0252567	39.7790442
-14587	2489	8106	0.133489509437131	0.133489509437131	-105.0252567	39.7790442	-105.0252567	39.7778437
-14588	8106	9375	0.13422540798818	0.13422540798818	-105.0252567	39.7778437	-105.0252653	39.7766366
-14589	9375	5534	0.213451017222507	0.213451017222507	-105.0252653	39.7766366	-105.0252738	39.774717
-14590	5534	9356	0.201724072155003	0.201724072155003	-105.0252738	39.774717	-105.025291	39.7729029
-14591	9356	9393	0.10196574773319	0.10196574773319	-105.025291	39.7729029	-105.025291	39.7719859
-14592	9393	9359	0.100498646625457	0.100498646625457	-105.025291	39.7719859	-105.0252953	39.7710821
-14593	9359	9394	0.0995312761976722	0.0995312761976722	-105.0252953	39.7710821	-105.0253203	39.7701872
-14594	9394	9368	0.101332513335273	0.101332513335273	-105.0253203	39.7701872	-105.0253163	39.7692759
-14595	9368	9395	0.0524188937894899	0.0524188937894899	-105.0253163	39.7692759	-105.0253115	39.7688045
-14597	7373	1659	0.103861210410172	0.103861210410172	-105.0253069	39.7683544	-105.0252948	39.7674204
-14598	1659	7753	0.101665764300136	0.101665764300136	-105.0252948	39.7674204	-105.0252922	39.7665061
-14599	7753	6893	0.102477314257262	0.102477314257262	-105.0252922	39.7665061	-105.0252908	39.7655845
-14600	6893	5249	0.10178809746081	0.10178809746081	-105.0252908	39.7655845	-105.0252881	39.7646691
-14601	5249	9396	0.145009648698155	0.145009648698155	-105.0252881	39.7646691	-105.0252844	39.763365
-14602	9396	5880	0.0121536325330439	0.0121536325330439	-105.0252844	39.763365	-105.0252841	39.7632557
-14603	5880	9397	0.00548191654733534	0.00548191654733534	-105.0252841	39.7632557	-105.0252842	39.7632064
-14606	8233	9399	0.00646043089308406	0.00646043089308406	-105.0252854	39.7620032	-105.0252855	39.7619451
-14607	9399	3593	0.11814466181621	0.11814466181621	-105.0252855	39.7619451	-105.0252868	39.7608826
-14608	3593	8990	0.0502713142680652	0.0502713142680652	-105.0252868	39.7608826	-105.0252879	39.7604305
-14610	8994	8444	0.0112418070839832	0.0112418070839832	-105.0252881	39.7603424	-105.0252881	39.7602413
-14611	8444	9400	0.0106637167987107	0.0106637167987107	-105.0252881	39.7602413	-105.0252875	39.7601454
-14612	9400	9401	0.175022698409133	0.175022698409133	-105.0252875	39.7601454	-105.025278	39.7585714
-14613	9401	2970	0.0101077489563562	0.0101077489563562	-105.025278	39.7585714	-105.0252774	39.7584805
-15358	9566	9564	0.0244609132808449	0.0244609132808449	-104.9656611	39.7170239	-104.9659399	39.7170729
-15359	9564	9567	0.0131773798008107	0.0131773798008107	-104.9659399	39.7170729	-104.9660929	39.717059
-18780	10346	10347	0.0407216504299826	0.0407216504299826	-105.0006741	39.7398676	-105.0006789	39.7395014
-14614	2970	8339	0.136426769448966	0.136426769448966	-105.0252774	39.7584805	-105.0252854	39.7572536
-14615	8339	9348	0.135169766224191	0.135169766224191	-105.0252854	39.7572536	-105.0252787	39.756038
-17064	4880	9474	0.196578675384766	0.196578675384766	-104.9616527	39.7350527	-104.9616204	39.7368204
-14616	9348	9402	0.134813162708373	0.134813162708373	-105.0252787	39.756038	-105.0252747	39.7548256
-14618	9350	8341	0.135569890655856	0.135569890655856	-105.0252762	39.7536227	-105.0252824	39.7524035
-14619	8341	9291	0.132813255317002	0.132813255317002	-105.0252824	39.7524035	-105.0252738	39.7512091
-14620	9291	9403	0.135124075128598	0.135124075128598	-105.0252738	39.7512091	-105.0252739	39.7499939
-14621	9403	9351	0.135070525267418	0.135070525267418	-105.0252739	39.7499939	-105.0252652	39.7487792
-14622	9351	6393	0.134155373542404	0.134155373542404	-105.0252652	39.7487792	-105.0252309	39.747573
-14624	9393	8920	0.0508713694865286	0.0508713694865286	-105.025291	39.7719859	-105.0258859	39.7720013
-14625	8920	6767	0.14583235659915	0.14583235659915	-105.0258859	39.7720013	-105.0275913	39.7720453
-14626	6767	3992	0.20138079206452	0.20138079206452	-105.0275913	39.7720453	-105.0299454	39.772124
-14628	9389	6049	0.0198174454501223	0.0198174454501223	-105.0251871	39.7854282	-105.0251957	39.7856063
-14629	6049	5790	0.202409458864074	0.202409458864074	-105.0251957	39.7856063	-105.0252043	39.7874266
-14630	5790	9404	0.390889741592557	0.390889741592557	-105.0252043	39.7874266	-105.0251785	39.7909419
-14631	9389	8000	0.0874325326194809	0.0874325326194809	-105.0251871	39.7854282	-105.0252653	39.7846442
-14632	8000	9390	0.00587109212749533	0.00587109212749533	-105.0252653	39.7846442	-105.0252653	39.7845914
-14634	9405	9387	0.104292734331338	0.104292734331338	-105.0042679	39.7583739	-105.0032834	39.7589279
-14643	6926	912	0.0399977157837286	0.0399977157837286	-104.9982022	39.7580108	-104.9985313	39.7577551
-14645	3853	9379	0.0160272455480019	0.0160272455480019	-105.0428243	39.7765611	-105.0427433	39.7766911
-14646	9379	8109	0.188409381404142	0.188409381404142	-105.0427433	39.7766911	-105.0427373	39.7783855
-14647	8109	9407	0.202174997774683	0.202174997774683	-105.0427373	39.7783855	-105.0427327	39.7802037
-18781	10347	10348	0.0132995316754344	0.0132995316754344	-105.0006789	39.7395014	-105.0006804	39.7393818
-14649	5569	7551	0.0943021955909244	0.0943021955909244	-105.0440431	39.7711254	-105.0451465	39.7711259
-14650	7551	9408	0.692224615113747	0.692224615113747	-105.0451465	39.7711259	-105.053246	39.77113
-14651	7543	9409	0.0534301345278006	0.0534301345278006	-105.0449615	39.7672	-105.045011	39.767679
-14652	6725	4821	0.0796194906426482	0.0796194906426482	-105.0111475	39.760596	-105.0105051	39.7611145
-14653	4821	2511	0.108135424106199	0.108135424106199	-105.0105051	39.7611145	-105.0096048	39.7617977
-14654	2511	8224	0.0376491716837282	0.0376491716837282	-105.0096048	39.7617977	-105.009291	39.7620353
-14787	9415	9416	0.31094582672675	0.31094582672675	-104.9903152	39.773396	-104.99143	39.7707341
-14791	2891	8923	0.457832400708685	0.457832400708685	-104.9905111	39.7729211	-104.9942478	39.7699708
-14793	5024	3335	0.0983906046596767	0.0983906046596767	-104.9585953	39.733723	-104.9574452	39.7336966
-14795	7882	7337	0.102026433082927	0.102026433082927	-104.9563208	39.7337098	-104.9551277	39.7337164
-14796	7337	7986	0.092185977990205	0.092185977990205	-104.9551277	39.7337164	-104.9540634	39.7335844
-14797	7986	2055	0.0946262859427162	0.0946262859427162	-104.9540634	39.7335844	-104.9529569	39.7335952
-14798	2055	2661	0.105023750774947	0.105023750774947	-104.9529569	39.7335952	-104.9517288	39.7335844
-14799	2661	4134	0.100547305543173	0.100547305543173	-104.9517288	39.7335844	-104.950553	39.733591
-14800	4134	6697	0.0891067622100312	0.0891067622100312	-104.950553	39.733591	-104.949511	39.7335838
-14801	6697	8020	0.0955965901798936	0.0955965901798936	-104.949511	39.7335838	-104.9484005	39.7336828
-14802	8020	7684	0.0959578997394599	0.0959578997394599	-104.9484005	39.7336828	-104.9472785	39.7336681
-14803	7684	3458	0.0944062286409825	0.0944062286409825	-104.9472785	39.7336681	-104.9461745	39.7336634
-14804	3458	9418	0.046227752797198	0.046227752797198	-104.9461745	39.7336634	-104.9456339	39.7336646
-14805	9418	6020	0.0461318959590008	0.0461318959590008	-104.9456339	39.7336646	-104.9450945	39.7336574
-14806	6020	9419	0.0476773807861996	0.0476773807861996	-104.9450945	39.7336574	-104.944537	39.7336514
-19851	10660	10659	0.00933491084100046	0.00933491084100046	-105.0352222	39.7384654	-105.035226	39.7385493
-14807	9419	9420	0.0464971294902911	0.0464971294902911	-104.944537	39.7336514	-104.9439933	39.7336456
-14808	9420	9421	0.0470997921907546	0.0470997921907546	-104.9439933	39.7336456	-104.9434425	39.7336457
-14809	9421	858	0.0457230540386264	0.0457230540386264	-104.9434425	39.7336457	-104.9429078	39.7336457
-14810	858	453	0.0467078777528092	0.0467078777528092	-104.9429078	39.7336457	-104.9423616	39.733649
-14811	453	7106	0.0457758284617094	0.0457758284617094	-104.9423616	39.733649	-104.9418263	39.7336523
-14812	7106	457	0.0455135048722811	0.0455135048722811	-104.9418263	39.7336523	-104.9412942	39.7336426
-14813	457	9422	0.0463689143813771	0.0463689143813771	-104.9412942	39.7336426	-104.9407521	39.7336327
-14815	9423	9424	0.00582356405087118	0.00582356405087118	-105.0158749	39.754908	-105.0159208	39.7548693
-14817	9425	6432	0.0926350815349589	0.0926350815349589	-105.0167051	39.7548156	-105.0177887	39.7548225
-14818	6432	4657	0.117278685803448	0.117278685803448	-105.0177887	39.7548225	-105.0191606	39.7548276
-14819	4657	1280	0.116593491044555	0.116593491044555	-105.0191606	39.7548276	-105.0205245	39.7548287
-14820	1280	4531	0.132186730302242	0.132186730302242	-105.0205245	39.7548287	-105.0220708	39.7548328
-14951	7670	9457	3.41600373692151	3.41600373692151	-104.9245872	39.7382725	-104.8846398	39.7386634
-14952	3583	7612	0.0941905477613176	0.0941905477613176	-104.9394304	39.7546656	-104.9383286	39.7546719
-14953	7612	7265	0.0936588343585109	0.0936588343585109	-104.9383286	39.7546719	-104.937233	39.7546682
-14955	7584	2001	0.0944700456489753	0.0944700456489753	-104.936128	39.7546682	-104.9350229	39.7546682
-14956	2001	3361	0.0949233780276755	0.0949233780276755	-104.9350229	39.7546682	-104.9339125	39.7546702
-14957	3361	2755	0.0936752171867012	0.0936752171867012	-104.9339125	39.7546702	-104.9328167	39.7546719
-14958	2755	7006	0.0959502415519421	0.0959502415519421	-104.9328167	39.7546719	-104.9316943	39.7546764
-14959	7006	2281	0.099513679348955	0.099513679348955	-104.9316943	39.7546764	-104.9305302	39.7546764
-14960	2281	3582	0.100891029071921	0.100891029071921	-104.9305302	39.7546764	-104.92935	39.7546723
-14961	3582	7528	0.100887947066067	0.100887947066067	-104.92935	39.7546723	-104.9281699	39.7546826
-14962	7528	2136	0.103412071247308	0.103412071247308	-104.9281699	39.7546826	-104.9269602	39.7546847
-14963	2136	5993	0.100671897064821	0.100671897064821	-104.9269602	39.7546847	-104.9257827	39.7546991
-14964	5993	7673	0.0999667195935639	0.0999667195935639	-104.9257827	39.7546991	-104.9246133	39.7546991
-14986	8886	7162	0.0452381047162121	0.0452381047162121	-104.9798704	39.7432669	-104.9793413	39.7432656
-14985	8878	8886	0.104437941202429	0.104437941202429	-104.9810919	39.7432682	-104.9798704	39.7432669
-14987	7162	9309	0.0512658726512666	0.0512658726512666	-104.9793413	39.7432656	-104.9787417	39.7432641
-15109	7996	6927	0.0217805821755954	0.0217805821755954	-104.9977757	39.7584584	-104.9980305	39.7584589
-15110	6927	5675	0.030815905152866	0.030815905152866	-104.9980305	39.7584589	-104.998391	39.7584595
-14965	7673	9461	2.89733038736532	2.89733038736532	-104.9246133	39.7546991	-104.8907207	39.7546542
-14966	8151	7610	0.094248596661074	0.094248596661074	-104.9394486	39.7510451	-104.9383462	39.7510533
-15088	2328	9485	2.88346551451846	2.88346551451846	-104.9240271	39.7656085	-104.890296	39.7651798
-15089	9486	3468	0.447301506508283	0.447301506508283	-104.9406618	39.7619502	-104.9458947	39.7619213
-15090	3468	3445	0.0309512876225537	0.0309512876225537	-104.9458947	39.7619213	-104.9462568	39.7619224
-15091	3445	7699	0.105014135175069	0.105014135175069	-104.9462568	39.7619224	-104.9474853	39.7619327
-15092	7699	9487	0.105691765273947	0.105691765273947	-104.9474853	39.7619327	-104.9487218	39.7619316
-15093	9487	6684	0.102061996358298	0.102061996358298	-104.9487218	39.7619316	-104.9499154	39.7619564
-15094	6684	4128	0.108739719526669	0.108739719526669	-104.9499154	39.7619564	-104.9511874	39.7619719
-15095	4128	9488	0.104836941153267	0.104836941153267	-104.9511874	39.7619719	-104.9524139	39.7619708
-15096	9488	2082	0.105803010632854	0.105803010632854	-104.9524139	39.7619708	-104.9536517	39.7619729
-15097	2082	7334	0.1052078044876	0.1052078044876	-104.9536517	39.7619729	-104.9548825	39.7619805
-15101	9489	2994	0.0812267643509346	0.0812267643509346	-104.9963423	39.760645	-104.995393	39.7606779
-15105	2996	4851	0.0525302115232072	0.0525302115232072	-104.9954583	39.7585204	-104.996067	39.7584555
-15106	4851	7227	0.0344830493164063	0.0344830493164063	-104.996067	39.7584555	-104.9964704	39.7584562
-15107	7227	2369	0.0550241369558443	0.0550241369558443	-104.9964704	39.7584562	-104.9971141	39.7584573
-15108	2369	7996	0.056554238974086	0.056554238974086	-104.9971141	39.7584573	-104.9977757	39.7584584
-16370	9877	8705	0.102117755919592	0.102117755919592	-104.9392992	39.7619966	-104.9404928	39.7619574
-16371	8705	9486	0.014467692878557	0.014467692878557	-104.9404928	39.7619574	-104.9406618	39.7619502
-16373	8076	3329	0.0677844820507112	0.0677844820507112	-104.9580824	39.7607455	-104.9573301	39.7609383
-16374	3329	7880	0.139626392785753	0.139626392785753	-104.9573301	39.7609383	-104.9561137	39.7617764
-16375	7880	7333	0.105584363104376	0.105584363104376	-104.9561137	39.7617764	-104.9548815	39.761843
-16376	7333	2081	0.10500807653965	0.10500807653965	-104.9548815	39.761843	-104.953653	39.761844
-16377	2081	2678	0.105119136499329	0.105119136499329	-104.953653	39.761844	-104.9524232	39.761844
-16491	6692	8028	0.103532298857838	0.103532298857838	-104.9500467	39.7437984	-104.9488359	39.7437854
-16379	4127	6683	0.108621189217377	0.108621189217377	-104.9511861	39.7618358	-104.9499154	39.7618255
-16385	9881	9882	0.0163548118473388	0.0163548118473388	-104.9710436	39.7033454	-104.9710939	39.7032035
-16386	9882	9458	0.0203986664758761	0.0203986664758761	-104.9710939	39.7032035	-104.9711616	39.7030276
-16394	3281	9883	0.00468216635493236	0.00468216635493236	-104.9710667	39.7027917	-104.9711214	39.7027903
-16396	9884	9458	0.0218243339760988	0.0218243339760988	-104.971175	39.7028316	-104.9711616	39.7030276
-16398	9883	9884	0.00648970201006769	0.00648970201006769	-104.9711214	39.7027903	-104.971175	39.7028316
-16400	9885	9886	0.267423928903385	0.267423928903385	-104.9695415	39.703787	-104.9705756	39.7060566
-16401	9886	9880	0.296075289776302	0.296075289776302	-104.9705756	39.7060566	-104.9718617	39.7035846
-16403	9878	9881	0.0274154521009071	0.0274154521009071	-104.971336	39.7034463	-104.9710436	39.7033454
-16404	9881	9887	0.0188694353495207	0.0188694353495207	-104.9710436	39.7033454	-104.9708237	39.7033586
-16405	9887	9888	0.0187489585891175	0.0187489585891175	-104.9708237	39.7033586	-104.9706065	39.7033361
-19509	10534	10535	0.00388440521802765	0.00388440521802765	-104.9882751	39.7088082	-104.9882297	39.7088075
-16425	3407	9890	0.502103946549802	0.502103946549802	-104.9699417	39.6974212	-104.9695728	39.7019278
-16426	9890	3331	0.0251683632208894	0.0251683632208894	-104.9695728	39.7019278	-104.9693109	39.7020309
-16481	7888	3680	0.0532502584498927	0.0532502584498927	-104.983517	39.7478374	-104.9830181	39.7475507
-16483	4595	8006	0.101626087251738	0.101626087251738	-104.9581328	39.7438013	-104.9569442	39.743807
-16484	8006	580	0.022127419381672	0.022127419381672	-104.9569442	39.743807	-104.9566854	39.743808
-16485	580	7979	0.165894151722243	0.165894151722243	-104.9566854	39.743808	-104.9547451	39.7438115
-16486	7979	9923	0.0456395565118553	0.0456395565118553	-104.9547451	39.7438115	-104.9542113	39.7438103
-16487	9923	2066	0.0539845223115493	0.0539845223115493	-104.9542113	39.7438103	-104.9535799	39.7438083
-16488	2066	2641	0.100182277305196	0.100182277305196	-104.9535799	39.7438083	-104.9524082	39.7438154
-16489	2641	4107	0.0977431302735631	0.0977431302735631	-104.9524082	39.7438154	-104.9512653	39.743795
-16490	4107	6692	0.10418977795868	0.10418977795868	-104.9512653	39.743795	-104.9500467	39.7437984
-16492	8028	7698	0.0982299872130606	0.0982299872130606	-104.9488359	39.7437854	-104.947687	39.743787
-16493	7698	3443	0.0993337912559461	0.0993337912559461	-104.947687	39.743787	-104.9465253	39.7437746
-16494	3443	6011	0.101499429536563	0.101499429536563	-104.9465253	39.7437746	-104.9453382	39.743767
-16495	6011	3878	0.0977083732706848	0.0977083732706848	-104.9453382	39.743767	-104.9441954	39.743766
-16496	3878	9924	0.0991972529095445	0.0991972529095445	-104.9441954	39.743766	-104.9430352	39.7437705
-16497	9924	420	0.100553893040038	0.100553893040038	-104.9430352	39.7437705	-104.9418594	39.7437507
-16504	8592	9925	0.120377099914021	0.120377099914021	-105.0036056	39.7454327	-105.004838	39.7449092
-16505	9925	9926	0.107491921110891	0.107491921110891	-105.004838	39.7449092	-105.005919	39.7444156
-16506	9926	9927	0.123107053114174	0.123107053114174	-105.005919	39.7444156	-105.0051948	39.7434587
-16517	8288	3009	0.0410924117477314	0.0410924117477314	-104.9878071	39.7473599	-104.9873284	39.7473931
-16519	9451	4779	0.246284579163	0.246284579163	-104.933915	39.7209388	-104.9338206	39.7231525
-16520	4779	6557	0.132912762129515	0.132912762129515	-104.9338206	39.7231525	-104.9338133	39.7243478
-16521	6557	9306	0.107414375743234	0.107414375743234	-104.9338133	39.7243478	-104.9338148	39.7253138
-16523	5147	9150	0.0526798805531595	0.0526798805531595	-104.925132	39.7295572	-104.9246762	39.7292385
-16527	862	703	0.202686588734239	0.202686588734239	-104.9428936	39.7401262	-104.9430426	39.7419454
-16528	703	9924	0.202942846886287	0.202942846886287	-104.9430426	39.7419454	-104.9430352	39.7437705
-16533	9141	9155	0.0471076181125112	0.0471076181125112	-104.9960053	39.7064848	-104.9962707	39.706856
-16549	9936	8118	0.163748197039451	0.163748197039451	-104.9796276	39.7485669	-104.9781487	39.7495027
-16550	8118	4329	0.102460572786022	0.102460572786022	-104.9781487	39.7495027	-104.9769503	39.7494919
-16551	4329	9932	0.0509040459853039	0.0509040459853039	-104.9769503	39.7494919	-104.9763549	39.7494877
-16552	9932	5034	0.0506801147751554	0.0506801147751554	-104.9763549	39.7494877	-104.9757621	39.7494857
-16553	5034	9935	0.0507841642169636	0.0507841642169636	-104.9757621	39.7494857	-104.9751681	39.7494897
-16554	9935	7991	0.0519996695117493	0.0519996695117493	-104.9751681	39.7494897	-104.9745599	39.7494843
-16555	7991	9939	0.0501954054420559	0.0501954054420559	-104.9745599	39.7494843	-104.9739728	39.7494793
-16557	2889	8382	0.106173445564903	0.106173445564903	-104.9733549	39.749474	-104.972113	39.7494781
-16558	8382	8542	0.105198351895408	0.105198351895408	-104.972113	39.7494781	-104.9708826	39.7494657
-16559	8542	4730	0.104923019039301	0.104923019039301	-104.9708826	39.7494657	-104.9696554	39.7494546
-16560	4730	6797	0.109090547930583	0.109090547930583	-104.9696554	39.7494546	-104.9683794	39.7494616
-16561	6797	7349	0.101581569748298	0.101581569748298	-104.9683794	39.7494616	-104.9671912	39.7494616
-16562	7349	5395	0.107089477151985	0.107089477151985	-104.9671912	39.7494616	-104.9659386	39.7494554
-16563	5395	8556	0.104796077599276	0.104796077599276	-104.9659386	39.7494554	-104.9647128	39.7494554
-17270	82	7309	0.202171029293651	0.202171029293651	-104.9623177	39.7002318	-104.9622856	39.7020498
-16564	8556	3897	0.106860413590027	0.106860413590027	-104.9647128	39.7494554	-104.9634629	39.7494637
-16565	3897	1030	0.106538064092827	0.106538064092827	-104.9634629	39.7494637	-104.9622168	39.7494743
-16566	1030	6272	0.104663636918357	0.104663636918357	-104.9622168	39.7494743	-104.9609926	39.7494657
-16567	6272	9940	0.0522044777389819	0.0522044777389819	-104.9609926	39.7494657	-104.960382	39.7494708
-16568	9940	9941	0.0539741744852114	0.0539741744852114	-104.960382	39.7494708	-104.9597507	39.749476
-16570	5969	9942	0.0525274850765404	0.0525274850765404	-104.98198	39.7503787	-104.9824158	39.7507117
-16571	9942	9943	0.0464624768491459	0.0464624768491459	-104.9824158	39.7507117	-104.9827994	39.7510077
-16572	9943	3013	0.00948387351005329	0.00948387351005329	-104.9827994	39.7510077	-104.9828772	39.7510685
-16573	3013	9944	0.0499659888588949	0.0499659888588949	-104.9828772	39.7510685	-104.9832891	39.7513873
-16574	9944	4387	0.0525459349585223	0.0525459349585223	-104.9832891	39.7513873	-104.9837317	39.7517152
-16575	4387	8415	0.053989635677053	0.053989635677053	-104.9837317	39.7517152	-104.9841796	39.7520575
-16576	8415	9945	0.0518942546071768	0.0518942546071768	-104.9841796	39.7520575	-104.9846155	39.7523823
-16577	9945	8419	0.054710567315966	0.054710567315966	-104.9846155	39.7523823	-104.9850687	39.7527297
-16578	8419	9946	0.0495941326709913	0.0495941326709913	-104.9850687	39.7527297	-104.9854693	39.7530523
-16579	9946	8502	0.0543577768356107	0.0543577768356107	-104.9854693	39.7530523	-104.985916	39.7534002
-16580	8502	8537	0.0523876514778538	0.0523876514778538	-104.985916	39.7534002	-104.9863465	39.7537355
-16581	8537	9591	0.106159293603162	0.106159293603162	-104.9863465	39.7537355	-104.9872304	39.7544061
-16582	9591	9318	0.0186755424929809	0.0186755424929809	-104.9872304	39.7544061	-104.9873865	39.7545236
-16584	3674	9947	0.0925100597395306	0.0925100597395306	-104.9782423	39.7475122	-104.9790113	39.7480975
-16585	9947	9936	0.0741653442201567	0.0741653442201567	-104.9790113	39.7480975	-104.9796276	39.7485669
-16586	9936	5811	0.0698256524972049	0.0698256524972049	-104.9796276	39.7485669	-104.9802084	39.7490084
-16587	5811	7575	0.109874082628797	0.109874082628797	-104.9802084	39.7490084	-104.9811177	39.7497067
-16588	7575	8407	0.0534887493842637	0.0534887493842637	-104.9811177	39.7497067	-104.9815533	39.750052
-16589	8407	5969	0.0514820185730379	0.0514820185730379	-104.9815533	39.750052	-104.98198	39.7503787
-16615	5811	5357	0.148515460139762	0.148515460139762	-104.9802084	39.7490084	-104.9790225	39.7499844
-16616	5357	8119	0.104815937410374	0.104815937410374	-104.9790225	39.7499844	-104.978147	39.7506443
-16621	9938	9956	0.0146143299800706	0.0146143299800706	-104.9856294	39.7391313	-104.9857322	39.7392363
-16622	9956	9957	0.0128596804561102	0.0128596804561102	-104.9857322	39.7392363	-104.9856428	39.7393293
-16624	9958	9959	0.0111717692412778	0.0111717692412778	-104.9855355	39.7393169	-104.9854926	39.739222
-16625	9959	9960	0.00928483420505699	0.00928483420505699	-104.9854926	39.739222	-104.9855516	39.7391519
-16626	9960	9938	0.0070355984277229	0.0070355984277229	-104.9855516	39.7391519	-104.9856294	39.7391313
-16628	9961	9962	0.526903283655783	0.526903283655783	-104.9531023	39.7400594	-104.9592628	39.7399435
-16630	9963	9312	1.46582798607179	1.46582798607179	-104.9616093	39.739874	-104.9787525	39.7399405
-16633	9965	9966	0.00412165910041822	0.00412165910041822	-104.9859809	39.7399196	-104.9860291	39.7399191
-16634	9966	9967	0.0757681110838303	0.0757681110838303	-104.9860291	39.7399191	-104.986072	39.7392385
-16638	9965	9957	0.0717225435233069	0.0717225435233069	-104.9859809	39.7399196	-104.9856428	39.7393293
-16640	9964	9958	0.0807216833328343	0.0807216833328343	-104.9850261	39.7399281	-104.9855355	39.7393169
-16642	9967	9956	0.0290555152245672	0.0290555152245672	-104.986072	39.7392385	-104.9857322	39.7392363
-16645	565	7092	0.0721739648747923	0.0721739648747923	-104.9854426	39.7390647	-104.9848557	39.7385982
-16646	7092	9969	0.0060839008927764	0.0060839008927764	-104.9848557	39.7385982	-104.9848573	39.7385435
-16658	651	9973	0.109528403212781	0.109528403212781	-104.9861093	39.7416811	-104.9873866	39.7416062
-16660	3165	8089	0.106908291090671	0.106908291090671	-105.0030875	39.7426587	-105.0019804	39.7431056
-16662	9927	8897	0.00902355166325831	0.00902355166325831	-105.0051948	39.7434587	-105.0051222	39.7433998
-16663	8897	8899	0.00817755039331079	0.00817755039331079	-105.0051222	39.7433998	-105.0050563	39.7433465
-16665	8896	8898	0.0955954321276197	0.0955954321276197	-105.0048016	39.7429839	-105.0038366	39.7434181
-16666	8898	3166	0.0120380596695599	0.0120380596695599	-105.0038366	39.7434181	-105.0037031	39.7434525
-16726	3074	5275	0.102580698126288	0.102580698126288	-104.9862922	39.7129578	-104.9862654	39.7138801
-16727	5275	6866	0.0979724094285353	0.0979724094285353	-104.9862654	39.7138801	-104.9862493	39.7147611
-17386	5920	919	0.177782086780631	0.177782086780631	-104.9842358	39.7304466	-104.9842225	39.7320454
-16728	6866	5172	0.198907590330119	0.198907590330119	-104.9862493	39.7147611	-104.9862386	39.7165499
-16730	8563	6368	0.270917565484422	0.270917565484422	-104.9293999	39.7256232	-104.9294128	39.7280596
-16731	6368	9149	0.131210826087923	0.131210826087923	-104.9294128	39.7280596	-104.9294074	39.7292396
-16779	73	3512	0.203753724402901	0.203753724402901	-104.9663438	39.7002174	-104.966341	39.698385
-16780	3512	4254	0.201507995491671	0.201507995491671	-104.966341	39.698385	-104.9663465	39.6965728
-16781	4254	8742	0.199898657335298	0.199898657335298	-104.9663465	39.6965728	-104.9663604	39.6947751
-16782	8742	8713	0.201418841949	0.201418841949	-104.9663604	39.6947751	-104.966356	39.6929637
-16784	3511	4252	0.198740800817733	0.198740800817733	-104.9675186	39.6983807	-104.9675293	39.6965934
-16785	4252	8741	0.201811596521788	0.201811596521788	-104.9675293	39.6965934	-104.9675005	39.6947786
-16786	8741	8712	0.201811329628688	0.201811329628688	-104.9675005	39.6947786	-104.9675147	39.6929637
-16794	4264	8747	0.202686112287629	0.202686112287629	-104.9593265	39.6965961	-104.9593265	39.6947733
-16795	8747	8718	0.200629598901607	0.200629598901607	-104.9593265	39.6947733	-104.9593208	39.692969
-16797	4264	9864	0.0549036584382557	0.0549036584382557	-104.9593265	39.6965961	-104.9586848	39.6965926
-16798	9864	6516	0.0494449113838383	0.0494449113838383	-104.9586848	39.6965926	-104.9581069	39.6965895
-16799	6516	9855	0.048981731510525	0.048981731510525	-104.9581069	39.6965895	-104.9575344	39.69659
-16800	9855	6160	0.0501282016561891	0.0501282016561891	-104.9575344	39.69659	-104.9569485	39.6965905
-16801	6160	9852	0.0487763612951203	0.0487763612951203	-104.9569485	39.6965905	-104.9563784	39.6965905
-16802	9852	2738	0.0474245519497852	0.0474245519497852	-104.9563784	39.6965905	-104.9558241	39.6965905
-16803	2738	9267	0.050437767682916	0.050437767682916	-104.9558241	39.6965905	-104.9552346	39.6965869
-16804	9267	4512	0.0485383641713966	0.0485383641713966	-104.9552346	39.6965869	-104.9546673	39.6965834
-16805	4512	9858	0.0494525517955229	0.0494525517955229	-104.9546673	39.6965834	-104.9540893	39.6965849
-16807	3171	9861	0.047855446066228	0.047855446066228	-104.9534926	39.6965864	-104.9529333	39.6965815
-16808	9861	4996	0.0491871460939442	0.0491871460939442	-104.9529333	39.6965815	-104.9523584	39.6965806
-16810	728	3665	0.0984709387661759	0.0984709387661759	-104.951164	39.6965829	-104.9500131	39.6965763
-16811	3665	7315	0.0976596112157836	0.0976596112157836	-104.9500131	39.6965763	-104.9488718	39.6965905
-16812	7315	4586	0.099898936211385	0.099898936211385	-104.9488718	39.6965905	-104.9477042	39.6965961
-16813	4586	8032	0.100609280081376	0.100609280081376	-104.9477042	39.6965961	-104.9465284	39.6965829
-16814	8032	6372	0.100607138332673	0.100607138332673	-104.9465284	39.6965829	-104.9453525	39.6965829
-16815	6372	10015	0.0481181392934118	0.0481181392934118	-104.9453525	39.6965829	-104.9447901	39.696585
-16816	10015	4826	0.0474935217651045	0.0474935217651045	-104.9447901	39.696585	-104.944235	39.696587
-16817	4826	8954	0.102669069502609	0.102669069502609	-104.944235	39.696587	-104.943035	39.696587
-16818	8954	8956	0.0962963283421786	0.0962963283421786	-104.943035	39.696587	-104.9419095	39.6965915
-16819	8956	10016	0.0513191391251647	0.0513191391251647	-104.9419095	39.6965915	-104.9413099	39.696579
-16820	10016	8816	0.0499640269903021	0.0499640269903021	-104.9413099	39.696579	-104.940726	39.6965715
-16821	8816	8828	0.0154260311566384	0.0154260311566384	-104.940726	39.6965715	-104.9405457	39.6965715
-16822	8828	8206	0.163758839265649	0.163758839265649	-104.9405457	39.6965715	-104.9386317	39.6965781
-16824	7312	87	0.200996583193063	0.200996583193063	-104.959341	39.7020293	-104.9593351	39.7002217
-16825	87	3523	0.203555810471145	0.203555810471145	-104.9593351	39.7002217	-104.9593466	39.6983911
-16826	3523	4264	0.199602301480838	0.199602301480838	-104.9593466	39.6983911	-104.9593265	39.6965961
-16828	7312	3648	0.154169800390109	0.154169800390109	-104.959341	39.7020293	-104.9576929	39.7025901
-16832	10017	593	0.487939330962151	0.487939330962151	-104.9722814	39.707401	-104.9689126	39.70386
-16851	8718	9866	0.0548710295017979	0.0548710295017979	-104.9593208	39.692969	-104.9586795	39.6929681
-16854	9854	6162	0.0501051333475743	0.0501051333475743	-104.9575371	39.6929673	-104.9569515	39.6929673
-16855	6162	9851	0.0483439490024107	0.0483439490024107	-104.9569515	39.6929673	-104.9563865	39.692964
-16856	9851	2740	0.0471290060929331	0.0471290060929331	-104.9563865	39.692964	-104.9558357	39.6929607
-16857	2740	9863	0.0493697108471136	0.0493697108471136	-104.9558357	39.6929607	-104.9552587	39.6929589
-16858	9863	5231	0.0496606668462506	0.0496606668462506	-104.9552587	39.6929589	-104.9546783	39.692957
-16859	5231	9857	0.0497084193128251	0.0497084193128251	-104.9546783	39.692957	-104.9540974	39.6929504
-16860	9857	3173	0.0501789646371779	0.0501789646371779	-104.9540974	39.6929504	-104.953511	39.6929438
-16861	3173	9860	0.0494391268160734	0.0494391268160734	-104.953511	39.6929438	-104.9529332	39.6929471
-16862	9860	4998	0.0489685461673918	0.0489685461673918	-104.9529332	39.6929471	-104.9523609	39.6929504
-16863	4998	10023	0.0484162493280967	0.0484162493280967	-104.9523609	39.6929504	-104.9517951	39.692944
-16864	10023	730	0.0507353905968115	0.0507353905968115	-104.9517951	39.692944	-104.9512022	39.6929372
-16865	730	7061	0.101358904320696	0.101358904320696	-104.9512022	39.6929372	-104.9500177	39.6929504
-16867	8718	5830	0.204166330856198	0.204166330856198	-104.9593208	39.692969	-104.9593294	39.6911329
-16868	5830	7737	0.202033972193846	0.202033972193846	-104.9593294	39.6911329	-104.9593582	39.6893161
-16869	7737	10024	0.307945705057077	0.307945705057077	-104.9593582	39.6893161	-104.9594131	39.686547
-16870	594	7303	0.202197872623945	0.202197872623945	-104.9686935	39.7038655	-104.968686	39.7020471
-16871	7303	66	0.20266387330283	0.20266387330283	-104.968686	39.7020471	-104.968686	39.7002245
-16872	66	3507	0.204877942956717	0.204877942956717	-104.968686	39.7002245	-104.9686775	39.698382
-16873	3507	233	0.199133503403233	0.199133503403233	-104.9686775	39.698382	-104.968695	39.6965912
-16874	233	8739	0.200473333247617	0.200473333247617	-104.968695	39.6965912	-104.968695	39.6947883
-16876	9203	4390	0.147691017735613	0.147691017735613	-104.9873873	39.7502468	-104.9873785	39.7489186
-16878	1943	10025	0.122583563426404	0.122583563426404	-104.9902169	39.7384586	-104.9916503	39.7384388
-16879	10025	7860	0.110082433757866	0.110082433757866	-104.9916503	39.7384388	-104.9929377	39.7384322
-16880	7860	4679	0.101138191051348	0.101138191051348	-104.9929377	39.7384322	-104.9941204	39.7384454
-16881	4679	4942	0.0999327202014087	0.0999327202014087	-104.9941204	39.7384454	-104.9952889	39.7384631
-16882	4942	7214	0.0998696563081419	0.0998696563081419	-104.9952889	39.7384631	-104.9964568	39.738452
-16883	7214	4928	0.0376169687692631	0.0376169687692631	-104.9964568	39.738452	-104.9968967	39.7384563
-16884	4928	9636	0.014060573587084	0.014060573587084	-104.9968967	39.7384563	-104.9970611	39.7384591
-16886	9870	1167	0.138451400347842	0.138451400347842	-104.9561166	39.7619811	-104.9560938	39.7632261
-16887	1167	887	0.138706454254422	0.138706454254422	-104.9560938	39.7632261	-104.9561023	39.7644735
-16888	887	4471	0.139683302205089	0.139683302205089	-104.9561023	39.7644735	-104.9561053	39.7657297
-16890	9488	1170	0.13939401140641	0.13939401140641	-104.9524139	39.7619708	-104.9524125	39.7632244
-16891	1170	890	0.137058995578611	0.137058995578611	-104.9524125	39.7632244	-104.9524103	39.764457
-16892	890	4474	0.140851028519895	0.140851028519895	-104.9524103	39.764457	-104.9524143	39.7657237
-16893	4474	2796	0.132878137732711	0.132878137732711	-104.9524143	39.7657237	-104.9524116	39.7669187
-16894	2796	5265	0.13228574865076	0.13228574865076	-104.9524116	39.7669187	-104.9524289	39.7681083
-16895	5265	10026	0.123565762779561	0.123565762779561	-104.9524289	39.7681083	-104.9524147	39.7692195
-16896	5633	7143	0.082551113540924	0.082551113540924	-104.9721228	39.7557358	-104.9721228	39.7564782
-16899	8743	4255	0.199339176026767	0.199339176026767	-104.9658013	39.6947852	-104.9658026	39.6965779
-16905	6305	6456	0.135927811837651	0.135927811837651	-105.0158628	39.7765644	-105.0158736	39.775342
-16906	6456	5521	0.134557743068365	0.134557743068365	-105.0158736	39.775342	-105.0158789	39.7741319
-16907	5521	5744	0.134669392965434	0.134669392965434	-105.0158789	39.7741319	-105.0158722	39.7729208
-16908	5744	3224	0.133413468985769	0.133413468985769	-105.0158722	39.7729208	-105.0158803	39.771721
-16909	3224	2456	0.134335811293817	0.134335811293817	-105.0158803	39.771721	-105.015887	39.7705129
-16910	2456	9365	0.137895860915298	0.137895860915298	-105.015887	39.7705129	-105.0158763	39.7692728
-16911	9365	1677	0.134681074434199	0.134681074434199	-105.0158763	39.7692728	-105.0158682	39.7680616
-16912	1677	10027	0.135027096454707	0.135027096454707	-105.0158682	39.7680616	-105.0158575	39.7668473
-16913	10027	6891	0.134223449290887	0.134223449290887	-105.0158575	39.7668473	-105.0158561	39.7656402
-16914	6891	5239	0.133857055503606	0.133857055503606	-105.0158561	39.7656402	-105.0158514	39.7644364
-16915	5239	4520	0.134947645289316	0.134947645289316	-105.0158514	39.7644364	-105.0158588	39.7632228
-16916	4520	8229	0.133768415422039	0.133768415422039	-105.0158588	39.7632228	-105.015853	39.7620198
-16917	8229	6091	0.136267738734572	0.136267738734572	-105.015853	39.7620198	-105.0158342	39.7607944
-16918	6091	7927	0.0726325260844626	0.0726325260844626	-105.0158342	39.7607944	-105.0158342	39.7601412
-16919	7927	7846	0.0557691009082279	0.0557691009082279	-105.0158342	39.7601412	-105.0158428	39.7596397
-16920	7846	9410	0.0110872018563396	0.0110872018563396	-105.0158428	39.7596397	-105.015841	39.75954
-16921	9410	6730	0.0681749492551086	0.0681749492551086	-105.015841	39.75954	-105.015836	39.7589269
-16922	6730	10028	0.0472579211328822	0.0472579211328822	-105.015836	39.7589269	-105.015835	39.7585019
-16923	10028	2954	0.0113307920442751	0.0113307920442751	-105.015835	39.7585019	-105.0158347	39.7584
-16924	2954	10029	0.0100409346238736	0.0100409346238736	-105.0158347	39.7584	-105.015835	39.7583097
-16925	10029	6168	0.125005736653953	0.125005736653953	-105.015835	39.7583097	-105.0158387	39.7571855
-16926	6168	7701	0.0662611499745025	0.0662611499745025	-105.0158387	39.7571855	-105.0158374	39.7565896
-16927	7701	8987	0.0202942911891754	0.0202942911891754	-105.0158374	39.7565896	-105.01584	39.7564071
-16928	8987	9213	0.01474166778393	0.01474166778393	-105.01584	39.7564071	-105.0158342	39.7562746
-16929	9213	7708	0.0256851882115953	0.0256851882115953	-105.0158342	39.7562746	-105.0158257	39.7560437
-16930	7708	10030	0.0413405317485577	0.0413405317485577	-105.0158257	39.7560437	-105.0158154	39.755672
-16931	10030	10031	0.036234422910969	0.036234422910969	-105.0158154	39.755672	-105.015807	39.7553462
-16932	10031	9423	0.0490701245377313	0.0490701245377313	-105.015807	39.7553462	-105.0158749	39.754908
-16934	10027	6419	0.132846643372958	0.132846643372958	-105.0158575	39.7668473	-105.0174118	39.7668473
-16935	6419	4626	0.132395451164353	0.132395451164353	-105.0174118	39.7668473	-105.0189608	39.7668411
-16936	4626	1249	0.132966501814055	0.132966501814055	-105.0189608	39.7668411	-105.0205165	39.7668391
-16937	1249	4558	0.132618380312988	0.132618380312988	-105.0205165	39.7668391	-105.0220681	39.7668318
-16938	4558	2727	0.131821083937229	0.131821083937229	-105.0220681	39.7668318	-105.0236104	39.7668329
-16939	2727	9343	0.133429127887654	0.133429127887654	-105.0236104	39.7668329	-105.0251715	39.7668277
-16941	8228	10032	0.0522172382940556	0.0522172382940556	-105.0143631	39.7620198	-105.0143643	39.7624894
-16942	10032	4519	0.0809723084454978	0.0809723084454978	-105.0143643	39.7624894	-105.0143662	39.7632176
-16943	4519	5238	0.135835767836828	0.135835767836828	-105.0143662	39.7632176	-105.0143675	39.7644392
-16944	5238	6890	0.133656501060031	0.133656501060031	-105.0143675	39.7644392	-105.0143648	39.7656412
-16945	6890	8682	0.133080513446367	0.133080513446367	-105.0143648	39.7656412	-105.0143554	39.766838
-16946	8682	10033	0.014533820296874	0.014533820296874	-105.0143554	39.766838	-105.014357	39.7669687
-16947	10033	10034	0.045058130648326	0.045058130648326	-105.014357	39.7669687	-105.0143619	39.7673739
-16948	10034	10035	0.0185816236497386	0.0185816236497386	-105.0143619	39.7673739	-105.0143641	39.767541
-16949	10035	1675	0.0576680457580287	0.0576680457580287	-105.0143641	39.767541	-105.0143702	39.7680596
-16950	1675	9364	0.135024432224183	0.135024432224183	-105.0143702	39.7680596	-105.0143742	39.7692739
-16955	10039	10040	0.0721995210382621	0.0721995210382621	-105.0167989	39.7555658	-105.0167064	39.7549204
-16958	10037	10041	0.0717852961267022	0.0717852961267022	-105.0167413	39.7559349	-105.0159755	39.75567
-16966	10043	10031	0.025182886777608	0.025182886777608	-105.0160494	39.7554749	-105.015807	39.7553462
-16969	10045	10039	0.0209823477511839	0.0209823477511839	-105.0168432	39.7557514	-105.0167989	39.7555658
-16971	8478	9438	0.0521271400869927	0.0521271400869927	-105.0065368	39.7543758	-105.0069699	39.7547058
-16972	9438	8905	0.0558565070780073	0.0558565070780073	-105.0069699	39.7547058	-105.007434	39.7550594
-16974	8478	4846	0.326789742990523	0.326789742990523	-105.0065368	39.7543758	-105.0038505	39.7522849
-17070	9465	4599	0.173875508685798	0.173875508685798	-104.9615988	39.7432195	-104.9615991	39.7447832
-16976	8474	1065	0.0530498075975429	0.0530498075975429	-105.0012293	39.7502862	-105.0016675	39.750624
-16977	1065	1604	0.0517738709202157	0.0517738709202157	-105.0016675	39.750624	-105.002095	39.7509538
-16978	1604	2199	0.109121538786623	0.109121538786623	-105.002095	39.7509538	-105.0029976	39.7516477
-16979	2199	4846	0.101668961251418	0.101668961251418	-105.0029976	39.7516477	-105.0038505	39.7522849
-16981	8583	10046	0.0456665785984412	0.0456665785984412	-105.0023143	39.7476847	-105.001796	39.747784
-16982	10046	8467	0.0226345136731024	0.0226345136731024	-105.001796	39.747784	-105.0015391	39.7478332
-16983	8467	9624	0.0229241644266869	0.0229241644266869	-105.0015391	39.7478332	-105.0012783	39.7478811
-16985	2321	10047	0.097235186001144	0.097235186001144	-104.9741575	39.7685518	-104.9733504	39.7691681
-16987	4279	6406	0.146870704035985	0.146870704035985	-104.9762513	39.7682868	-104.9774556	39.7673446
-16988	6406	635	0.144187230253749	0.144187230253749	-104.9774556	39.7673446	-104.9786451	39.7664251
-16989	635	5325	0.14662773102424	0.14662773102424	-104.9786451	39.7664251	-104.9798548	39.7654901
-16990	5325	2031	0.146219173461136	0.146219173461136	-104.9798548	39.7654901	-104.981068	39.764563
-19672	10610	10608	0.149537813443153	0.149537813443153	-105.0246432	39.7697786	-105.0228937	39.7697604
-16991	2031	7082	0.144853503450252	0.144853503450252	-104.981068	39.764563	-104.9822567	39.7636345
-16992	7082	5509	0.146165117461088	0.146165117461088	-104.9822567	39.7636345	-104.9834626	39.7627025
-16993	5509	4460	0.146698487596664	0.146698487596664	-104.9834626	39.7627025	-104.9846721	39.7617665
-16994	4460	6579	0.146306787683811	0.146306787683811	-104.9846721	39.7617665	-104.9858777	39.7608325
-16995	6579	8050	0.147127627497255	0.147127627497255	-104.9858777	39.7608325	-104.9870901	39.7598933
-16996	8050	998	0.0663040704360148	0.0663040704360148	-104.9870901	39.7598933	-104.9876372	39.7594706
-16997	998	8404	0.225438240771773	0.225438240771773	-104.9876372	39.7594706	-104.9894933	39.7580303
-16998	8404	9322	0.147049060577026	0.147049060577026	-104.9894933	39.7580303	-104.9907084	39.7570942
-16999	9322	8853	0.146215405021224	0.146215405021224	-104.9907084	39.7570942	-104.9919124	39.7561602
-17000	8853	7901	0.148314641191611	0.148314641191611	-104.9919124	39.7561602	-104.9931346	39.7552135
-17001	7901	8294	0.139664345335099	0.139664345335099	-104.9931346	39.7552135	-104.9942907	39.754326
-17002	8294	8275	0.153027219017765	0.153027219017765	-104.9942907	39.754326	-104.9955427	39.7533424
-17003	8275	5787	0.145945595293254	0.145945595293254	-104.9955427	39.7533424	-104.99675	39.7524144
-17004	5787	4818	0.144804477618788	0.144804477618788	-104.99675	39.7524144	-104.9979466	39.7514927
-17005	4818	10048	0.148574277364319	0.148574277364319	-104.9979466	39.7514927	-104.9991687	39.7505427
-17006	10048	10049	0.141579838501947	0.141579838501947	-104.9991687	39.7505427	-105.0003395	39.7496422
-17007	10049	10050	0.0340492732837983	0.0340492732837983	-105.0003395	39.7496422	-105.0006176	39.749423
-17012	10052	2402	0.196242393649725	0.196242393649725	-105.0157808	39.7546549	-105.016659	39.7530243
-17032	8989	10060	0.00622693936167768	0.00622693936167768	-105.0193135	39.7576062	-105.0193133	39.7576622
-17033	10060	10061	0.0756461423573197	0.0756461423573197	-105.0193133	39.7576622	-105.0193111	39.7583425
-17034	10061	2960	0.00915137839377932	0.00915137839377932	-105.0193111	39.7583425	-105.0193108	39.7584248
-17036	9211	23	0.0239583762029722	0.0239583762029722	-105.0192076	39.7574773	-105.0191645	39.7572644
-17042	1225	7845	0.140995210775646	0.140995210775646	-105.0118006	39.7583774	-105.0117993	39.7596454
-17043	7845	6089	0.129051193087075	0.129051193087075	-105.0117993	39.7596454	-105.0118176	39.7608059
-17044	6089	8226	0.135326560563343	0.135326560563343	-105.0118176	39.7608059	-105.0118083	39.7620229
-17107	6692	328	0.0434519039634918	0.0434519039634918	-104.9500467	39.7437984	-104.9500765	39.7441885
-17046	1226	8903	0.113651762618459	0.113651762618459	-105.01181	39.7571845	-105.0105064	39.7573854
-17048	10065	6628	1.29415946940766	1.29415946940766	-104.977472	39.6803487	-104.9775188	39.6919873
-17050	10066	4340	0.062140618563636	0.062140618563636	-104.9653754	39.757537	-104.9653214	39.7569797
-17051	4340	5636	0.138107358521106	0.138107358521106	-104.9653214	39.7569797	-104.9653325	39.7557377
-17052	5636	3565	0.143998480732308	0.143998480732308	-104.9653325	39.7557377	-104.9653106	39.7544428
-17053	3565	824	0.136450026224328	0.136450026224328	-104.9653106	39.7544428	-104.9653005	39.7532157
-17054	824	7840	0.139827641423356	0.139827641423356	-104.9653005	39.7532157	-104.9653014	39.7519582
-17055	7840	10067	0.139718785770158	0.139718785770158	-104.9653014	39.7519582	-104.9653109	39.7507017
-17056	10067	8131	0.276864248380317	0.276864248380317	-104.9653109	39.7507017	-104.9653111	39.7482118
-17058	2251	4883	0.177313835055438	0.177313835055438	-104.9592063	39.733462	-104.9591955	39.7350566
-17059	4883	9473	0.195033286388948	0.195033286388948	-104.9591955	39.7350566	-104.9591742	39.7368105
-17060	9473	5482	0.176110607852179	0.176110607852179	-104.9591742	39.7368105	-104.9591722	39.7383943
-17187	10072	4065	0.107057267328692	0.107057267328692	-105.0235501	39.7478169	-105.0235939	39.7487791
-17188	4065	8344	0.135746766447532	0.135746766447532	-105.0235939	39.7487791	-105.0235939	39.7499999
-17189	8344	9289	0.134278993416053	0.134278993416053	-105.0235939	39.7499999	-105.0235939	39.7512075
-17190	9289	8342	0.133553201715071	0.133553201715071	-105.0235939	39.7512075	-105.0236111	39.7524085
-17191	8342	4289	0.132478531756059	0.132478531756059	-105.0236111	39.7524085	-105.0236168	39.7535999
-17192	4289	8346	0.0683305663670944	0.0683305663670944	-105.0236168	39.7535999	-105.0236119	39.7542144
-17193	8346	9426	0.0684183152680821	0.0684183152680821	-105.0236119	39.7542144	-105.0236131	39.7548297
-17194	9426	3584	0.0602567059919197	0.0602567059919197	-105.0236131	39.7548297	-105.0236148	39.7553716
-17195	3584	7710	0.0737335540738928	0.0737335540738928	-105.0236148	39.7553716	-105.0236168	39.7560347
-17196	7710	26	0.134781615428443	0.134781615428443	-105.0236168	39.7560347	-105.0236259	39.7572468
-17197	26	2966	0.136258381357618	0.136258381357618	-105.0236259	39.7572468	-105.0236238	39.7584722
-17256	4853	9479	0.17362135223772	0.17362135223772	-104.9861135	39.7352834	-104.9861222	39.7368448
-17257	9479	5456	0.178335939458279	0.178335939458279	-104.9861222	39.7368448	-104.9861136	39.7384486
-17258	5456	10081	0.171904914212928	0.171904914212928	-104.9861136	39.7384486	-104.9861338	39.7399945
-17259	10081	9468	0.0143846440391869	0.0143846440391869	-104.9861338	39.7399945	-104.9861285	39.7401238
-17260	9468	651	0.173171640777506	0.173171640777506	-104.9861285	39.7401238	-104.9861093	39.7416811
-17261	651	9463	0.177611656329381	0.177611656329381	-104.9861093	39.7416811	-104.9861093	39.7432784
-17262	9463	4619	0.178590206270819	0.178590206270819	-104.9861093	39.7432784	-104.9861106	39.7448845
-17263	4619	6483	0.145677633501431	0.145677633501431	-104.9861106	39.7448845	-104.9861174	39.7461946
-17264	6483	5356	0.195804224423801	0.195804224423801	-104.9861174	39.7461946	-104.9861098	39.7479555
-17272	3269	7248	0.202454633754466	0.202454633754466	-104.962291	39.7038591	-104.9623016	39.7056798
-17273	7248	1925	0.201278474909205	0.201278474909205	-104.9623016	39.7056798	-104.9622858	39.7074899
-17274	1925	6124	0.199550873736161	0.199550873736161	-104.9622858	39.7074899	-104.9622908	39.7092845
-17275	6124	3214	0.201694321030812	0.201694321030812	-104.9622908	39.7092845	-104.9622425	39.711098
-17277	8746	4263	0.201096167532594	0.201096167532594	-104.9599905	39.6947768	-104.9599877	39.6965853
-17278	4263	3522	0.200484985070532	0.200484985070532	-104.9599877	39.6965853	-104.9599931	39.6983883
-17279	3522	86	0.203786942061633	0.203786942061633	-104.9599931	39.6983883	-104.9599931	39.700221
-17280	86	7311	0.202274691239897	0.202274691239897	-104.9599931	39.700221	-104.9599932	39.7020401
-17313	8120	4330	0.101819432050732	0.101819432050732	-104.9781435	39.7507448	-104.9769525	39.7507423
-17314	4330	9933	0.0499862309964707	0.0499862309964707	-104.9769525	39.7507423	-104.9763678	39.7507423
-17315	9933	5036	0.0532026214375408	0.0532026214375408	-104.9763678	39.7507423	-104.9757455	39.7507464
-17316	5036	9934	0.0508858224299175	0.0508858224299175	-104.9757455	39.7507464	-104.9751503	39.7507424
-17317	9934	7989	0.0496485523816978	0.0496485523816978	-104.9751503	39.7507424	-104.9745699	39.7507269
-17318	7989	10087	0.0512786229284607	0.0512786229284607	-104.9745699	39.7507269	-104.9739701	39.7507304
-17319	10087	2893	0.052637962933787	0.052637962933787	-104.9739701	39.7507304	-104.9733544	39.750734
-17320	2893	8384	0.104983198266762	0.104983198266762	-104.9733544	39.750734	-104.9721264	39.7507381
-17321	8384	8544	0.106333933974543	0.106333933974543	-104.9721264	39.7507381	-104.9708826	39.750734
-17322	8544	4732	0.104863197448763	0.104863197448763	-104.9708826	39.750734	-104.9696561	39.7507215
-17323	4732	6799	0.109607467159477	0.109607467159477	-104.9696561	39.7507215	-104.968374	39.7507196
-17325	7351	5397	0.105666168592591	0.105666168592591	-104.967169	39.7507119	-104.965933	39.7507119
-17326	5397	10067	0.0531956914071383	0.0531956914071383	-104.965933	39.7507119	-104.9653109	39.7507017
-17327	10067	8558	0.0516135381916136	0.0516135381916136	-104.9653109	39.7507017	-104.9647073	39.7506919
-17328	8558	3899	0.109335032698536	0.109335032698536	-104.9647073	39.7506919	-104.9634285	39.7507051
-17329	3899	1035	0.101631825737619	0.101631825737619	-104.9634285	39.7507051	-104.9622398	39.7507175
-17330	1035	10070	0.0547697896222192	0.0547697896222192	-104.9622398	39.7507175	-104.9615992	39.7507111
-17331	10070	6274	0.051631982755097	0.051631982755097	-104.9615992	39.7507111	-104.9609953	39.7507051
-17332	6274	10071	0.0521047224845183	0.0521047224845183	-104.9609953	39.7507051	-104.9603859	39.7507127
-17333	10071	10088	0.0548081026494783	0.0548081026494783	-104.9603859	39.7507127	-104.9597448	39.750714
-17334	10088	581	0.115692672611639	0.115692672611639	-104.9597448	39.750714	-104.9583963	39.7508014
-17335	581	3544	1.0812915383048	1.0812915383048	-104.9583963	39.7508014	-104.9457557	39.7511373
-17336	3544	10089	0.426746641833072	0.426746641833072	-104.9457557	39.7511373	-104.9407655	39.7510409
-17337	10089	8702	0.015131733429425	0.015131733429425	-104.9407655	39.7510409	-104.9405885	39.7510409
-17338	8702	8151	0.097451189179214	0.097451189179214	-104.9405885	39.7510409	-104.9394486	39.7510451
-17340	1827	3084	0.201158270757163	0.201158270757163	-104.9791916	39.7147225	-104.9792501	39.712914
-17341	3084	3196	0.201063388532037	0.201063388532037	-104.9792501	39.712914	-104.9792438	39.7111058
-17342	3196	6111	0.203191571447184	0.203191571447184	-104.9792438	39.7111058	-104.979227	39.7092785
-17343	6111	1904	0.198857964292004	0.198857964292004	-104.979227	39.7092785	-104.9792593	39.7074903
-17344	1904	7240	0.195269710490606	0.195269710490606	-104.9792593	39.7074903	-104.9792633	39.7057342
-17345	7240	3253	0.196518038239943	0.196518038239943	-104.9792633	39.7057342	-104.9792501	39.7039669
-17347	10090	3086	0.200629327787617	0.200629327787617	-104.9780898	39.7147143	-104.978094	39.71291
-17348	3086	3198	0.202620201680719	0.202620201680719	-104.978094	39.71291	-104.9780683	39.7110879
-17349	3198	6113	0.202237159025195	0.202237159025195	-104.9780683	39.7110879	-104.9780999	39.7092693
-17350	6113	1907	0.200888583811516	0.200888583811516	-104.9780999	39.7092693	-104.9780854	39.7074627
-17351	1907	7242	0.194884252844044	0.194884252844044	-104.9780854	39.7074627	-104.978057	39.7057102
-17352	7242	9217	0.00483789456398776	0.00483789456398776	-104.978057	39.7057102	-104.9780581	39.7056667
-17353	9217	3256	0.188566052149982	0.188566052149982	-104.9780581	39.7056667	-104.9781006	39.7039712
-17354	3256	9215	0.0119202066492219	0.0119202066492219	-104.9781006	39.7039712	-104.9781012	39.703864
-17355	9215	7298	0.204144558375252	0.204144558375252	-104.9781012	39.703864	-104.9781112	39.7020281
-17356	7298	41	0.19415380637197	0.19415380637197	-104.9781112	39.7020281	-104.9780913	39.7002821
-17357	41	3541	0.205611824864656	0.205611824864656	-104.9780913	39.7002821	-104.9780828	39.698433
-17358	3541	4237	0.201941106279095	0.201941106279095	-104.9780828	39.698433	-104.9780828	39.6966169
-17359	4237	1797	0.206450634390855	0.206450634390855	-104.9780828	39.6966169	-104.9781014	39.6947603
-17360	1797	6524	0.103413068253841	0.103413068253841	-104.9781014	39.6947603	-104.9782122	39.6938342
-17377	9185	10092	0.0314361336881962	0.0314361336881962	-104.9985457	39.7503278	-104.9989127	39.7503454
-17384	10093	10094	0.234828178944131	0.234828178944131	-105.0176374	39.7404051	-105.0150249	39.7397537
-17401	4251	8740	0.200540582414647	0.200540582414647	-104.968103	39.6965907	-104.9681084	39.6947872
-17403	10096	4253	0.402448073126268	0.402448073126268	-104.9669389	39.6929637	-104.9669334	39.696583
-17404	4253	71	0.405085488859101	0.405085488859101	-104.9669334	39.696583	-104.9669496	39.700226
-17409	7246	3265	0.200993245572831	0.200993245572831	-104.9645976	39.7056725	-104.9646191	39.703865
-17410	3265	7307	0.200743622516842	0.200743622516842	-104.9646191	39.703865	-104.9646054	39.7020597
-17411	7307	77	0.204688793990349	0.204688793990349	-104.9646054	39.7020597	-104.9645973	39.7002189
-17413	10097	10082	0.0500367848211035	0.0500367848211035	-104.9829203	39.6885931	-104.9834085	39.6888408
-17415	10098	10099	0.0500389645311151	0.0500389645311151	-104.9838645	39.6893197	-104.9835426	39.688944
-17416	10099	10082	0.0162280043989145	0.0162280043989145	-104.9835426	39.688944	-104.9834085	39.6888408
-17418	10100	10101	0.0207018118679025	0.0207018118679025	-104.982915	39.6890761	-104.9831564	39.6890637
-17430	10092	10048	0.0309885486655971	0.0309885486655971	-104.9989127	39.7503454	-104.9991687	39.7505427
-17431	10048	8614	0.0518778938210734	0.0518778938210734	-104.9991687	39.7505427	-104.9995987	39.7508719
-17432	8614	8472	0.0531907688732488	0.0531907688732488	-104.9995987	39.7508719	-105.0000361	39.7512121
-17433	8472	1066	0.0523689032311119	0.0523689032311119	-105.0000361	39.7512121	-105.000472	39.751543
-17434	1066	1606	0.051557001219416	0.051557001219416	-105.000472	39.751543	-105.000898	39.7518712
-17435	1606	8366	0.139200065042292	0.139200065042292	-105.000898	39.7518712	-105.0020448	39.7527599
-17437	6713	10092	0.0743345743256074	0.0743345743256074	-104.9982781	39.7498884	-104.9989127	39.7503454
-17441	3193	3081	0.201349842824614	0.201349842824614	-104.9827804	39.7111342	-104.9827112	39.7129442
-17442	3081	10108	0.178416289777232	0.178416289777232	-104.9827112	39.7129442	-104.9827539	39.7145484
-17444	3193	6109	0.202397968765167	0.202397968765167	-104.9827804	39.7111342	-104.9827877	39.709314
-17445	6109	1899	0.201875824929032	0.201875824929032	-104.9827877	39.709314	-104.9827966	39.7074985
-17446	1899	7237	0.199007784951822	0.199007784951822	-104.9827966	39.7074985	-104.9828076	39.7057088
-17447	7237	3247	0.203972993087409	0.203972993087409	-104.9828076	39.7057088	-104.9827863	39.7038745
-17449	10109	7288	0.156689817874906	0.156689817874906	-104.9827914	39.7033844	-104.9828061	39.7019753
-17450	7288	33	0.190916174685026	0.190916174685026	-104.9828061	39.7019753	-104.982789	39.7002584
-17451	33	3532	0.205910894729705	0.205910894729705	-104.982789	39.7002584	-104.9827863	39.6984066
-17452	3532	6522	0.0640042155752525	0.0640042155752525	-104.9827863	39.6984066	-104.982762	39.6978313
-17454	3078	3192	0.201894846275699	0.201894846275699	-104.9839851	39.7129498	-104.9840078	39.7111342
-17455	3192	6108	0.201673919779454	0.201673919779454	-104.9840078	39.7111342	-104.9840322	39.7093206
-17456	6108	1898	0.20260827746412	0.20260827746412	-104.9840322	39.7093206	-104.9840325	39.7074985
-17457	1898	7236	0.20276033286578	0.20276033286578	-104.9840325	39.7074985	-104.9839553	39.705676
-17458	7236	3246	0.202520180127379	0.202520180127379	-104.9839553	39.705676	-104.9839622	39.7038547
-17459	3246	10110	0.0550544054800148	0.0550544054800148	-104.9839622	39.7038547	-104.9839674	39.7033596
-17460	10110	7286	0.154666066923182	0.154666066923182	-104.9839674	39.7033596	-104.983982	39.7019687
-17461	7286	29	0.190176683040096	0.190176683040096	-104.983982	39.7019687	-104.983982	39.7002584
-17463	1900	7238	0.196467409698081	0.196467409698081	-104.981627	39.707488	-104.981606	39.7057212
-17464	7238	3249	0.197271278467775	0.197271278467775	-104.981606	39.7057212	-104.9816104	39.7039471
-17465	3249	7293	0.215893772854934	0.215893772854934	-104.9816104	39.7039471	-104.9815761	39.7020057
-17466	7293	35	0.191661158901488	0.191661158901488	-104.9815761	39.7020057	-104.9815932	39.7002821
-17467	35	3534	0.208592623812739	0.208592623812739	-104.9815932	39.7002821	-104.9815417	39.6984066
-17468	3534	6523	0.163291338158479	0.163291338158479	-104.9815417	39.6984066	-104.9817185	39.6969444
-17470	10108	5278	0.0774622106782589	0.0774622106782589	-104.9827539	39.7145484	-104.9828424	39.7138551
-17471	5278	3080	0.101220750760019	0.101220750760019	-104.9828424	39.7138551	-104.9828429	39.7129448
-17472	3080	3193	0.201400503113628	0.201400503113628	-104.9828429	39.7129448	-104.9827804	39.7111342
-17474	5940	471	0.312751802930415	0.312751802930415	-105.0154315	39.7536072	-105.017379	39.7512262
-18580	7765	5716	0.0511772806374418	0.0511772806374418	-105.0351796	39.7802141	-105.0357784	39.7802062
-17491	10112	10093	0.359402757134602	0.359402757134602	-105.0218404	39.7404488	-105.0176374	39.7404051
-17492	10093	10113	0.194903624807864	0.194903624807864	-105.0176374	39.7404051	-105.0153589	39.7403535
-17493	10113	2201	0.0582804268216835	0.0582804268216835	-105.0153589	39.7403535	-105.0146775	39.7403403
-17494	2201	10114	0.186967502007765	0.186967502007765	-105.0146775	39.7403403	-105.0124916	39.7402957
-17495	10114	8390	0.0733141120559894	0.0733141120559894	-105.0124916	39.7402957	-105.0116345	39.7402771
-17496	8390	10115	0.462273198293161	0.462273198293161	-105.0116345	39.7402771	-105.0062313	39.7401322
-17498	9631	400	0.267469433354519	0.267469433354519	-105.0062339	39.740258	-105.00936	39.7403456
-17531	10127	4931	0.0143150280274793	0.0143150280274793	-104.9989934	39.7413574	-104.9988399	39.7414088
-17499	400	10116	0.288854082427149	0.288854082427149	-105.00936	39.7403456	-105.0127369	39.7404199
-17500	10116	10117	0.226779392941661	0.226779392941661	-105.0127369	39.7404199	-105.0153883	39.7404728
-17539	8982	8937	0.19614593492264	0.19614593492264	-104.9891588	39.7833529	-104.9891177	39.7851166
-17501	10117	10118	0.252256323985904	0.252256323985904	-105.0153883	39.7404728	-105.0183374	39.7405364
-17502	10118	8413	0.301706026949727	0.301706026949727	-105.0183374	39.7405364	-105.0218658	39.7405653
-17504	10094	9835	0.207906613588927	0.207906613588927	-105.0150249	39.7397537	-105.0143087	39.7379669
-17542	10131	10132	0.234004969584105	0.234004969584105	-104.9893756	39.7833551	-104.9893554	39.7854595
-17547	8426	8983	0.15801309875704	0.15801309875704	-104.9895595	39.7833438	-104.9895187	39.7819231
-17550	10130	10134	0.614829488291655	0.614829488291655	-104.9891097	39.7854604	-104.9884513	39.7909665
-17551	7135	4849	0.106906878995063	0.106906878995063	-104.9754213	39.7729633	-104.9763149	39.7736361
-17552	4849	915	0.103932392061615	0.103932392061615	-104.9763149	39.7736361	-104.9771733	39.7742982
-17553	915	2299	0.103080430089244	0.103080430089244	-104.9771733	39.7742982	-104.9780262	39.7749537
-17554	2299	10137	0.014910815675823	0.014910815675823	-104.9780262	39.7749537	-104.9781496	39.7750485
-17556	10137	9054	0.0810396295718394	0.0810396295718394	-104.9781496	39.7750485	-104.9786512	39.775667
-17558	10138	6943	0.064892686762443	0.064892686762443	-104.9667127	39.7813542	-104.9666886	39.7819375
-17559	6943	8140	0.201702874937987	0.201702874937987	-104.9666886	39.7819375	-104.9666698	39.7837514
-17560	8140	10139	0.469612869716675	0.469612869716675	-104.9666698	39.7837514	-104.9644686	39.7876212
-17562	7137	211	0.0939410437080962	0.0939410437080962	-104.9680592	39.7786642	-104.9672465	39.7792331
-17563	211	480	0.0535285680999835	0.0535285680999835	-104.9672465	39.7792331	-104.9669782	39.7796681
-17598	6899	5259	0.128421696790864	0.128421696790864	-104.9597428	39.769281	-104.9597331	39.7681261
-17566	8539	10140	0.135369629803794	0.135369629803794	-104.9669081	39.7808609	-104.967225	39.7796681
-17568	10141	10142	0.0931846548427409	0.0931846548427409	-104.9684346	39.7796533	-104.967563	39.7791497
-17575	10147	10148	0.0907607828573939	0.0907607828573939	-104.9445492	39.7800907	-104.9456113	39.7800893
-17576	10148	9823	0.350917184183612	0.350917184183612	-104.9456113	39.7800893	-104.9497178	39.7800947
-17577	9823	9805	0.0148959688810153	0.0148959688810153	-104.9497178	39.7800947	-104.9498921	39.7800929
-17578	9805	10149	0.0247571116201832	0.0247571116201832	-104.9498921	39.7800929	-104.9501818	39.780095
-17579	10149	8243	0.229215025506836	0.229215025506836	-104.9501818	39.780095	-104.952864	39.7801147
-17580	8243	9502	0.0511227471188157	0.0511227471188157	-104.952864	39.7801147	-104.9534622	39.7801206
-17581	9502	7326	0.0563854594047154	0.0563854594047154	-104.9534622	39.7801206	-104.954122	39.7801258
-17582	7326	5762	0.0999481200631645	0.0999481200631645	-104.954122	39.7801258	-104.9552914	39.7801086
-17583	5762	7873	0.0518041802099649	0.0518041802099649	-104.9552914	39.7801086	-104.9558976	39.7801127
-17584	7873	10150	0.102000136506063	0.102000136506063	-104.9558976	39.7801127	-104.9570912	39.7801189
-17585	10150	5014	0.098101103191891	0.098101103191891	-104.9570912	39.7801189	-104.9582392	39.7801189
-17586	5014	5058	0.089850875454823	0.089850875454823	-104.9582392	39.7801189	-104.9592906	39.7801271
-18718	7866	4048	0.178217561946718	0.178217561946718	-105.0343209	39.7197519	-105.0343046	39.7181492
-17587	5058	10151	0.211959888507267	0.211959888507267	-104.9592906	39.7801271	-104.961771	39.7801275
-17589	215	9282	0.125167866609679	0.125167866609679	-104.9654677	39.7803353	-104.9667713	39.7808486
-17591	213	9816	0.299047510838406	0.299047510838406	-104.9655888	39.7798206	-104.962098	39.7800102
-17593	9229	9826	0.176982927136907	0.176982927136907	-104.9604654	39.7803167	-104.9625227	39.7801333
-17595	6940	10152	0.0583015149781026	0.0583015149781026	-104.9587435	39.7819608	-104.9592664	39.7822976
-18120	6030	10257	0.0455676937571294	0.0455676937571294	-105.0106854	39.7854577	-105.010685	39.7858675
-17597	5060	6899	0.402535335538281	0.402535335538281	-104.9594167	39.7728924	-104.9597428	39.769281
-17599	5259	2791	0.130368767280199	0.130368767280199	-104.9597331	39.7681261	-104.9597448	39.7669537
-17600	2791	4469	0.135446736738612	0.135446736738612	-104.9597448	39.7669537	-104.9597421	39.7657356
-17601	4469	884	0.138505584507757	0.138505584507757	-104.9597421	39.7657356	-104.9597488	39.76449
-17602	884	1164	0.139078051750381	0.139078051750381	-104.9597488	39.76449	-104.959733	39.7632393
-17603	1164	9871	0.139057579408235	0.139057579408235	-104.959733	39.7632393	-104.9597508	39.7619888
-17604	9871	8075	0.138249096495162	0.138249096495162	-104.9597508	39.7619888	-104.9597467	39.7607455
-17605	8075	10153	0.00462704346608534	0.00462704346608534	-104.9597467	39.7607455	-104.959748	39.7607039
-17606	10153	3043	0.14110788802663	0.14110788802663	-104.959748	39.7607039	-104.9597701	39.759435
-17607	3043	6341	0.135895639019006	0.135895639019006	-104.9597701	39.759435	-104.9597275	39.7582133
-17608	6341	4343	0.137400774019599	0.137400774019599	-104.9597275	39.7582133	-104.9597614	39.7569779
-17609	4343	5639	0.138956387861239	0.138956387861239	-104.9597614	39.7569779	-104.9597878	39.7557284
-17610	5639	3570	0.141821620771527	0.141821620771527	-104.9597878	39.7557284	-104.9597446	39.7544534
-17611	3570	830	0.137661147763222	0.137661147763222	-104.9597446	39.7544534	-104.9597529	39.7532154
-17612	830	7843	0.140550687821679	0.140550687821679	-104.9597529	39.7532154	-104.9597495	39.7519514
-17613	7843	10088	0.137593188904098	0.137593188904098	-104.9597495	39.7519514	-104.9597448	39.750714
-17614	10088	9941	0.137660243266343	0.137660243266343	-104.9597448	39.750714	-104.9597507	39.749476
-17615	9941	8135	0.139584464123887	0.139584464123887	-104.9597507	39.749476	-104.9597582	39.7482207
-17616	8135	3690	0.141707714550209	0.141707714550209	-104.9597582	39.7482207	-104.959805	39.7469468
-17617	3690	4596	0.241404416022683	0.241404416022683	-104.959805	39.7469468	-104.9598011	39.7447758
-17619	5016	3319	0.0948083090873271	0.0948083090873271	-104.9581399	39.7819575	-104.9570312	39.7819252
-17620	3319	8996	0.0798486506362173	0.0798486506362173	-104.9570312	39.7819252	-104.9560968	39.781931
-17621	8996	7874	0.0190759275307072	0.0190759275307072	-104.9560968	39.781931	-104.9558736	39.7819341
-17622	7874	5755	0.0623471034770475	0.0623471034770475	-104.9558736	39.7819341	-104.9551441	39.7819442
-17623	5755	5758	0.0361266791563275	0.0361266791563275	-104.9551441	39.7819442	-104.9547235	39.7819113
-17624	5758	7327	0.0520708883616353	0.0520708883616353	-104.9547235	39.7819113	-104.9541142	39.7819179
-17626	5016	10154	0.164101634929309	0.164101634929309	-104.9581399	39.7819575	-104.9581426	39.7834333
-17627	10155	2882	0.710681950052773	0.710681950052773	-104.9592396	39.7916405	-104.9592584	39.7852492
-17629	8136	6947	0.130119100803365	0.130119100803365	-104.9592611	39.7837879	-104.9592799	39.7826178
-17630	6947	10156	0.0163542378359644	0.0163542378359644	-104.9592799	39.7826178	-104.9592737	39.7824708
-17631	10156	10157	0.00955659663824098	0.00955659663824098	-104.9592737	39.7824708	-104.9592701	39.7823849
-17632	10157	10158	0.00677541465471327	0.00677541465471327	-104.9592701	39.7823849	-104.9592675	39.782324
-17633	10158	10152	0.00293705056146173	0.00293705056146173	-104.9592675	39.782324	-104.9592664	39.7822976
-17634	10152	6939	0.0371287028604903	0.0371287028604903	-104.9592664	39.7822976	-104.9592691	39.7819637
-17636	3318	10150	0.0438638328395073	0.0438638328395073	-104.957059	39.7805126	-104.9570912	39.7801189
-17714	9945	8394	0.147641485758692	0.147641485758692	-104.9846155	39.7523823	-104.9833985	39.7533244
-17659	10160	586	0.405583280940818	0.405583280940818	-104.986015	39.7800954	-104.9889771	39.7829454
-17672	10163	8930	0.930392444069162	0.930392444069162	-104.9855751	39.7798803	-104.9961216	39.7819588
-17675	9053	10164	0.0371557833436508	0.0371557833436508	-104.985575	39.7800251	-104.9860095	39.7800376
-17693	2913	2780	0.0748123840669465	0.0748123840669465	-104.9733488	39.7664884	-104.9727319	39.7669657
-17694	2780	7147	0.116677483921202	0.116677483921202	-104.9727319	39.7669657	-104.9721123	39.7679007
-17696	9056	10047	0.141134759881648	0.141134759881648	-104.9734488	39.7704351	-104.9733504	39.7691681
-17698	7147	5254	0.0284105210258417	0.0284105210258417	-104.9721123	39.7679007	-104.9721136	39.7681562
-17699	5254	10166	0.132906284217118	0.132906284217118	-104.9721136	39.7681562	-104.9720707	39.769351
-17701	6403	10167	0.108541157226703	0.108541157226703	-104.9723255	39.770589	-104.9732322	39.7712725
-17703	6403	6401	0.049228330409525	0.049228330409525	-104.9723255	39.770589	-104.9719701	39.7702406
-17705	10168	10169	0.0501555453420122	0.0501555453420122	-104.9728475	39.7695543	-104.9734325	39.76959
-17707	10047	10169	0.0474349977604191	0.0474349977604191	-104.9733504	39.7691681	-104.9734325	39.76959
-17708	10169	9056	0.0939811582148226	0.0939811582148226	-104.9734325	39.76959	-104.9734488	39.7704351
-17710	9947	3675	0.0669754214474556	0.0669754214474556	-104.9790113	39.7480975	-104.9787278	39.747536
-17712	9204	9945	0.144775125391256	0.144775125391256	-104.9858044	39.7514551	-104.9846155	39.7523823
-17715	8394	2691	0.147869553829969	0.147869553829969	-104.9833985	39.7533244	-104.9821794	39.7542678
-17716	2691	8040	0.145836065451416	0.145836065451416	-104.9821794	39.7542678	-104.9809778	39.7551988
-17717	8040	6567	0.144877875233717	0.144877875233717	-104.9809778	39.7551988	-104.9797794	39.7561201
-17718	6567	4448	0.14778294563884	0.14778294563884	-104.9797794	39.7561201	-104.9785732	39.7570722
-17719	4448	8414	0.0749502518363333	0.0749502518363333	-104.9785732	39.7570722	-104.9779515	39.7575475
-17720	8414	5496	0.069451420913351	0.069451420913351	-104.9779515	39.7575475	-104.9773755	39.757988
-17721	5496	7070	0.148876703091943	0.148876703091943	-104.9773755	39.757988	-104.9761539	39.7589423
-17722	7070	2040	0.14567151330703	0.14567151330703	-104.9761539	39.7589423	-104.9749522	39.7598712
-17723	2040	8073	0.130264739930752	0.130264739930752	-104.9749522	39.7598712	-104.9738736	39.7606988
-17725	8076	3328	0.0639927694114461	0.0639927694114461	-104.9580824	39.7607455	-104.9573341	39.760728
-17728	7879	7332	0.105697567981392	0.105697567981392	-104.9561163	39.7607348	-104.9548798	39.7607265
-17730	2080	2677	0.104069678874741	0.104069678874741	-104.9536567	39.7607265	-104.9524392	39.7607246
-17731	2677	4126	0.107112553379611	0.107112553379611	-104.9524392	39.7607246	-104.9511861	39.7607235
-17732	4126	6682	0.108353172096875	0.108353172096875	-104.9511861	39.7607235	-104.9499185	39.7607282
-17734	7925	5320	0.0826824039230849	0.0826824039230849	-104.9739262	39.7620073	-104.9746129	39.7614836
-17735	5320	2041	0.146468953410165	0.146468953410165	-104.9746129	39.7614836	-104.9758158	39.7605455
-17736	2041	7072	0.146479190259677	0.146479190259677	-104.9758158	39.7605455	-104.9770228	39.7596104
-17737	7072	5498	0.148482454254276	0.148482454254276	-104.9770228	39.7596104	-104.9782485	39.7586642
-17738	5498	4450	0.145207190897223	0.145207190897223	-104.9782485	39.7586642	-104.9794422	39.7577351
-17739	4450	6569	0.147094399400618	0.147094399400618	-104.9794422	39.7577351	-104.9806536	39.7567956
-17740	6569	8042	0.145385409804858	0.145385409804858	-104.9806536	39.7567956	-104.9818522	39.755868
-17741	8042	2693	0.146247210391541	0.146247210391541	-104.9818522	39.755868	-104.9830605	39.7549369
-17742	2693	8396	0.145676314519276	0.145676314519276	-104.9830605	39.7549369	-104.9842635	39.754009
-17743	8396	9946	0.148129197746433	0.148129197746433	-104.9842635	39.754009	-104.9854693	39.7530523
-17744	9946	9324	0.145860656071838	0.145860656071838	-104.9854693	39.7530523	-104.9866859	39.7521326
-17745	9324	10171	0.0856023563285992	0.0856023563285992	-104.9866859	39.7521326	-104.9873856	39.7515819
-17746	10171	7893	0.060719319188507	0.060719319188507	-104.9873856	39.7515819	-104.9878898	39.7511973
-17747	7893	10172	0.145992330998255	0.145992330998255	-104.9878898	39.7511973	-104.9890951	39.7502672
-17749	8285	5779	0.146744468691812	0.146744468691812	-104.9903025	39.7493228	-104.9915202	39.7483927
-17750	5779	8575	0.145685998707777	0.145685998707777	-104.9915202	39.7483927	-104.9927205	39.7474627
-17752	6706	10173	0.0983542102154105	0.0983542102154105	-104.99393	39.7465367	-104.9947299	39.745901
-17754	8485	10174	0.145917669946454	0.145917669946454	-104.995128	39.7455847	-104.9963422	39.7446625
-17755	10174	4934	0.364858401137942	0.364858401137942	-104.9963422	39.7446625	-104.9993415	39.7423284
-17757	8073	5319	0.0151134525874084	0.0151134525874084	-104.9738736	39.7606988	-104.9737854	39.7608166
-17758	5319	2906	0.0542680076543073	0.0542680076543073	-104.9737854	39.7608166	-104.9733507	39.7611723
-17760	9487	1173	0.143948575233632	0.143948575233632	-104.9487218	39.7619316	-104.9487381	39.7632261
-17761	1173	893	0.138648954033686	0.138648954033686	-104.9487381	39.7632261	-104.9487381	39.764473
-17762	893	4476	0.138420042799995	0.138420042799995	-104.9487381	39.764473	-104.9487249	39.7657178
-17763	4476	2799	0.139158608638433	0.139158608638433	-104.9487249	39.7657178	-104.9487061	39.7669692
-17764	2799	5267	0.125667753140422	0.125667753140422	-104.9487061	39.7669692	-104.9487209	39.7680993
-17765	5267	6904	0.122725840536987	0.122725840536987	-104.9487209	39.7680993	-104.9487209	39.769203
-17766	6904	7758	0.206944002479267	0.206944002479267	-104.9487209	39.769203	-104.9487638	39.7710638
-17767	7758	6358	0.203735904589123	0.203735904589123	-104.9487638	39.7710638	-104.9486541	39.7728941
-17768	6358	2391	0.110758482838084	0.110758482838084	-104.9486541	39.7728941	-104.9486382	39.7738901
-17769	2391	7822	0.137036631860385	0.137036631860385	-104.9486382	39.7738901	-104.9486378	39.7751225
-17771	9877	903	0.274330614761652	0.274330614761652	-104.9392992	39.7619966	-104.9393102	39.7644637
-17772	903	9481	0.129817379023696	0.129817379023696	-104.9393102	39.7644637	-104.9392929	39.7656311
-17775	5984	2102	0.100487934544075	0.100487934544075	-104.9257912	39.7801245	-104.9269671	39.7801311
-17776	2102	6508	0.243143603771944	0.243143603771944	-104.9269671	39.7801311	-104.9298124	39.7801232
-17778	6993	399	0.279873647693424	0.279873647693424	-104.9316377	39.7804571	-104.9349127	39.7804818
-17779	399	10175	0.059173942672277	0.059173942672277	-104.9349127	39.7804818	-104.9356047	39.7805014
-17780	10175	6196	0.0719242777998184	0.0719242777998184	-104.9356047	39.7805014	-104.9364456	39.7804736
-17782	6196	10175	0.0719242777998184	0.0719242777998184	-104.9364456	39.7804736	-104.9356047	39.7805014
-17784	10175	10177	0.187235722056553	0.187235722056553	-104.9356047	39.7805014	-104.9359775	39.7821607
-17789	998	8512	0.0641582208600105	0.0641582208600105	-104.9876372	39.7594706	-104.9875407	39.7588984
-17790	8512	3305	0.0698159988608895	0.0698159988608895	-104.9875407	39.7588984	-104.9874361	39.7582757
-17802	9953	10171	0.0758245915635617	0.0758245915635617	-104.9873896	39.7522638	-104.9873856	39.7515819
-17803	10171	8417	0.0691188092256886	0.0691188092256886	-104.9873856	39.7515819	-104.9873865	39.7509603
-17804	8417	7892	0.0154287387029138	0.0154287387029138	-104.9873865	39.7509603	-104.987378	39.7508217
-17805	7892	9203	0.0639309073349984	0.0639309073349984	-104.987378	39.7508217	-104.9873873	39.7502468
-17844	5741	5515	0.1393794725611	0.1393794725611	-104.9994129	39.7730041	-104.9994301	39.7742575
-17807	998	2698	0.471311768879255	0.471311768879255	-104.9876372	39.7594706	-104.9872963	39.7637011
-17809	2563	997	0.102700798846865	0.102700798846865	-104.9865077	39.7643898	-104.9873902	39.763763
-17811	9490	10181	0.787839518624737	0.787839518624737	-104.9975705	39.7571365	-105.0023462	39.7631964
-17813	10182	10183	0.017972037737444	0.017972037737444	-104.9959538	39.755728	-104.9958016	39.7558395
-17814	8277	10182	0.0269375538426571	0.0269375538426571	-104.9961783	39.755558	-104.9959538	39.755728
-17824	10189	9815	0.381548994115635	0.381548994115635	-104.9772538	39.7792023	-104.9728236	39.7796294
-17826	10190	2445	0.108497544218855	0.108497544218855	-104.9982065	39.7695207	-104.9982447	39.770496
-17827	2445	3235	0.140113229632804	0.140113229632804	-104.9982447	39.770496	-104.9982618	39.771756
-17828	3235	5740	0.13721905173768	0.13721905173768	-104.9982618	39.771756	-104.9982189	39.7729896
-17829	5740	5514	0.142685575827079	0.142685575827079	-104.9982189	39.7729896	-104.998222	39.7742728
-17830	5514	6451	0.135469883258712	0.135469883258712	-104.998222	39.7742728	-104.9982284	39.7754911
-17831	6451	6918	0.118104639956123	0.118104639956123	-104.9982284	39.7754911	-104.9981886	39.7765528
-17832	6918	8114	0.200145379388081	0.200145379388081	-104.9981886	39.7765528	-104.9982189	39.7783526
-17841	10191	2446	0.12170288352426	0.12170288352426	-104.9994069	39.7694121	-104.9994058	39.7705066
-17842	2446	3236	0.138990302772576	0.138990302772576	-104.9994058	39.7705066	-104.9994549	39.771756
-17843	3236	5741	0.138828799197264	0.138828799197264	-104.9994549	39.771756	-104.9994129	39.7730041
-17845	5515	6452	0.137212079229824	0.137212079229824	-104.9994301	39.7742575	-104.9993731	39.7754907
-17846	6452	6919	0.118102418388258	0.118102418388258	-104.9993731	39.7754907	-104.9993645	39.7765528
-17847	6919	8115	0.204539971673672	0.204539971673672	-104.9993645	39.7765528	-104.9993433	39.7783922
-17848	8115	2817	0.195950897476267	0.195950897476267	-104.9993433	39.7783922	-104.9993302	39.7801544
-17850	1418	10192	0.0403415193863986	0.0403415193863986	-104.9993559	39.7819419	-104.9993559	39.7823047
-17854	10196	10197	0.298773764193864	0.298773764193864	-104.9706144	39.7902177	-104.9732548	39.7884561
-17858	10197	10201	0.0878537760845695	0.0878537760845695	-104.9732548	39.7884561	-104.9732119	39.7892455
-17859	10202	292	0.12590153135235	0.12590153135235	-105.0028295	39.7602418	-105.0040727	39.760849
-17860	292	10203	0.0920635687067585	0.0920635687067585	-105.0040727	39.760849	-105.0049871	39.7612865
-17862	8296	912	0.421752257927472	0.421752257927472	-104.9951571	39.7549879	-104.9985313	39.7577551
-17863	912	7280	0.346969669094077	0.346969669094077	-104.9985313	39.7577551	-105.0017017	39.7597036
-17865	7279	911	0.343598202777143	0.343598202777143	-105.0017875	39.7595933	-104.998644	39.7576675
-17866	911	8296	0.421457000722742	0.421457000722742	-104.998644	39.7576675	-104.9951571	39.7549879
-17899	10211	10209	0.112127267328736	0.112127267328736	-104.9981065	39.7669418	-104.9969347	39.7673952
-17868	10204	293	0.122668884457017	0.122668884457017	-105.0027544	39.7602964	-105.0037495	39.7610913
-17870	7280	10204	0.11154380602626	0.11154380602626	-105.0017017	39.7597036	-105.0027544	39.7602964
-17872	7280	10202	0.113468069847095	0.113468069847095	-105.0017017	39.7597036	-105.0028295	39.7602418
-17874	10203	305	0.0245172766294025	0.0245172766294025	-105.0049871	39.7612865	-105.0052248	39.7614099
-17876	10205	9191	0.0917966102805814	0.0917966102805814	-105.0050575	39.7612239	-105.0041591	39.7607716
-17877	9191	9065	0.0437309955207218	0.0437309955207218	-105.0041591	39.7607716	-105.0037267	39.7605614
-17879	305	7972	0.0096955565592884	0.0096955565592884	-105.0052248	39.7614099	-105.0052958	39.7614779
-17880	7972	289	0.0364664216753188	0.0364664216753188	-105.0052958	39.7614779	-105.0056941	39.7615954
-17882	291	10205	0.0247656280633611	0.0247656280633611	-105.0052999	39.7613459	-105.0050575	39.7612239
-17884	5356	3010	0.0411976507153233	0.0411976507153233	-104.9861098	39.7479555	-104.9864574	39.7482121
-17885	3010	9955	0.055133452370554	0.055133452370554	-104.9864574	39.7482121	-104.98691	39.7485653
-17887	4390	9202	0.103596100254428	0.103596100254428	-104.9873785	39.7489186	-104.9882201	39.7495889
-17888	9202	10172	0.106228487315193	0.106228487315193	-104.9882201	39.7495889	-104.9890951	39.7502672
-17889	10172	8635	0.104885206719794	0.104885206719794	-104.9890951	39.7502672	-104.9899626	39.7509342
-17890	8635	10207	0.0526738998782486	0.0526738998782486	-104.9899626	39.7509342	-104.9904003	39.7512676
-17891	10207	8290	0.0540408904782361	0.0540408904782361	-104.9904003	39.7512676	-104.9908493	39.7516097
-17893	10181	10208	0.34674805442663	0.34674805442663	-105.0023462	39.7631964	-105.0001687	39.7658275
-17895	9277	9062	0.54179107306149	0.54179107306149	-105.0019955	39.7638914	-105.0060948	39.7601751
-17897	10209	10210	0.15255018083046	0.15255018083046	-104.9969347	39.7673952	-104.9953391	39.76801
-17901	9277	10208	0.265946775924501	0.265946775924501	-105.0019955	39.7638914	-105.0001687	39.7658275
-17902	10208	10211	0.215451375996435	0.215451375996435	-105.0001687	39.7658275	-104.9981065	39.7669418
-17904	4431	5085	0.143171262303537	0.143171262303537	-104.9891666	39.7174681	-104.9908403	39.7174879
-17905	5085	2810	0.11012443165944	0.11012443165944	-104.9908403	39.7174879	-104.9921278	39.7174945
-17906	2810	4675	0.158582360684903	0.158582360684903	-104.9921278	39.7174945	-104.9939817	39.7175143
-17908	10212	9184	0.112885017008347	0.112885017008347	-105.0024206	39.7184748	-105.002927	39.7194123
-17909	9184	10213	0.167377068446941	0.167377068446941	-105.002927	39.7194123	-105.0029442	39.7209175
-18960	10410	7220	0.0501782415904674	0.0501782415904674	-104.9957751	39.7209292	-104.9963617	39.7209372
-17922	6563	8888	0.042430320182906	0.042430320182906	-104.9850303	39.7241197	-104.984536	39.724087
-18662	7647	10214	0.0701815380438801	0.0701815380438801	-105.0345838	39.7277084	-105.03453	39.7283382
-17924	6563	9296	0.044068382651895	0.044068382651895	-104.9850303	39.7241197	-104.9850256	39.724516
-17926	10215	7090	0.0147548324313622	0.0147548324313622	-104.9851861	39.7232104	-104.9850136	39.7232083
-17928	10216	4749	0.0152354550229313	0.0152354550229313	-104.9854611	39.7226759	-104.9854584	39.7225389
-17930	7570	10217	0.020843135953545	0.020843135953545	-104.986258	39.7248774	-104.9865017	39.7248795
-17931	10217	10218	0.00309719141124637	0.00309719141124637	-104.9865017	39.7248795	-104.9865379	39.7248787
-17932	10218	10219	0.0172058483004327	0.0172058483004327	-104.9865379	39.7248787	-104.986739	39.7248742
-17933	10219	10220	0.0101474090092483	0.0101474090092483	-104.986739	39.7248742	-104.9868576	39.7248715
-17934	10220	10221	0.0360135260366549	0.0360135260366549	-104.9868576	39.7248715	-104.9872787	39.7248713
-17972	4922	2816	0.0400924263132539	0.0400924263132539	-104.9919185	39.7316877	-104.9916596	39.7319883
-17974	2816	6585	0.00731734573972315	0.00731734573972315	-104.9916596	39.7319883	-104.9916584	39.7320541
-17975	6585	5367	0.200230086509337	0.200230086509337	-104.9916584	39.7320541	-104.9916497	39.7338548
-17976	5367	7125	0.155428268463703	0.155428268463703	-104.9916497	39.7338548	-104.9916497	39.7352526
-17977	7125	613	0.178580861083004	0.178580861083004	-104.9916497	39.7352526	-104.9916591	39.7368586
-17978	613	10025	0.175711834233665	0.175711834233665	-104.9916591	39.7368586	-104.9916503	39.7384388
-17979	10025	5802	0.173776139007193	0.173776139007193	-104.9916503	39.7384388	-104.9916445	39.7400016
-17981	10240	4687	0.0705066389488715	0.0705066389488715	-104.9949413	39.7336839	-104.9941176	39.7336555
-17983	4687	4687	0.000550727458732684	0.000550727458732684	-104.9941236	39.7336537	-104.9941176	39.7336555
-17984	4687	4687	0.000550727458732684	0.000550727458732684	-104.9941176	39.7336555	-104.9941236	39.7336537
-18009	8002	984	0.100041012213977	0.100041012213977	-104.9752512	39.7272769	-104.9740814	39.7272791
-17985	4687	10240	0.0700034048729296	0.0700034048729296	-104.9941236	39.7336537	-104.9949413	39.7336839
-18666	5656	5188	0.106406434125344	0.106406434125344	-105.0410801	39.7255057	-105.0410909	39.7245488
-17988	7225	10241	0.0510702903225008	0.0510702903225008	-104.9965056	39.7336859	-104.9971028	39.7336811
-17989	10241	10242	0.042886354540747	0.042886354540747	-104.9971028	39.7336811	-104.9976043	39.7336771
-17990	10242	10243	0.00251406456949564	0.00251406456949564	-104.9976043	39.7336771	-104.9976337	39.733677
-17991	10243	10244	0.0456685462506317	0.0456685462506317	-104.9976337	39.733677	-104.9981677	39.7336833
-17992	10244	6646	0.0418628731234282	0.0418628731234282	-104.9981677	39.7336833	-104.9986572	39.7336891
-17993	6646	10245	0.0664019508555837	0.0664019508555837	-104.9986572	39.7336891	-104.9994337	39.733694
-17994	10245	3947	0.060646848519195	0.060646848519195	-104.9994337	39.733694	-105.0001429	39.7336985
-17995	3947	5379	0.0623892176423501	0.0623892176423501	-105.0001429	39.7336985	-105.0008725	39.7336985
-17997	1213	10080	0.0402726084737909	0.0402726084737909	-104.986618	39.727272	-104.9861473	39.727283
-17998	10080	10246	0.108362052771117	0.108362052771117	-104.9861473	39.727283	-104.9848802	39.7272853
-17999	10246	10095	0.0546330327153493	0.0546330327153493	-104.9848802	39.7272853	-104.9842414	39.72728
-18000	10095	8786	0.0549646837479	0.0549646837479	-104.9842414	39.72728	-104.9835987	39.7272766
-18001	8786	8792	0.105830391023483	0.105830391023483	-104.9835987	39.7272766	-104.9823612	39.7272763
-18002	8792	3158	0.105240490373796	0.105240490373796	-104.9823612	39.7272763	-104.9811306	39.7272781
-18159	4090	6035	0.19402761072914	0.19402761072914	-105.0141021	39.7838734	-105.0141159	39.7856183
-18003	3158	4977	0.10185576028858	0.10185576028858	-104.9811306	39.7272781	-104.9799397	39.7272649
-18004	4977	10247	0.0996051433548501	0.0996051433548501	-104.9799397	39.7272649	-104.978775	39.7272619
-18005	10247	9657	0.103966153648075	0.103966153648075	-104.978775	39.7272619	-104.9775593	39.727263
-18006	9657	6607	0.0489689324196462	0.0489689324196462	-104.9775593	39.727263	-104.9769867	39.7272649
-18007	6607	5049	0.0497044916016373	0.0497044916016373	-104.9769867	39.7272649	-104.9764055	39.727267
-18008	5049	8002	0.0987213073079673	0.0987213073079673	-104.9764055	39.727267	-104.9752512	39.7272769
-18010	984	5105	0.0497125648622764	0.0497125648622764	-104.9740814	39.7272791	-104.9735001	39.7272799
-18011	5105	8832	0.0485496698653307	0.0485496698653307	-104.9735001	39.7272799	-104.9729324	39.7272785
-18012	8832	9412	0.0501680163419149	0.0501680163419149	-104.9729324	39.7272785	-104.9723458	39.7272828
-18013	9412	7150	0.0490112280018507	0.0490112280018507	-104.9723458	39.7272828	-104.9717727	39.727283
-18014	7150	2798	0.0490643527188194	0.0490643527188194	-104.9717727	39.727283	-104.971199	39.7272868
-18015	2798	5116	0.0499797709026575	0.0499797709026575	-104.971199	39.7272868	-104.9706146	39.727291
-18016	5116	9330	0.049524695482998	0.049524695482998	-104.9706146	39.727291	-104.9700355	39.7272893
-18017	9330	4715	0.0504823610322626	0.0504823610322626	-104.9700355	39.7272893	-104.9694452	39.727288
-18018	4715	8873	0.0985202776506121	0.0985202776506121	-104.9694452	39.727288	-104.9682932	39.7272934
-18019	8873	7354	0.0991107696717597	0.0991107696717597	-104.9682932	39.7272934	-104.9671343	39.7272994
-18020	7354	5413	0.108951695628557	0.108951695628557	-104.9671343	39.7272994	-104.9658604	39.7273116
-18022	8149	8697	0.098981334337126	0.098981334337126	-104.9394514	39.727421	-104.9406072	39.727374
-18023	8697	10248	0.0156545770448285	0.0156545770448285	-104.9406072	39.727374	-104.940779	39.7273254
-18025	10248	7104	0.0902072497093339	0.0902072497093339	-104.940779	39.7273254	-104.9418336	39.727309
-18026	7104	449	0.046531670732617	0.046531670732617	-104.9418336	39.727309	-104.9423777	39.727311
-18027	449	854	0.0445732430501775	0.0445732430501775	-104.9423777	39.727311	-104.9428989	39.7273129
-18028	854	10249	0.0446596776858281	0.0446596776858281	-104.9428989	39.7273129	-104.9434211	39.7273161
-18029	10249	9698	0.0482515561513205	0.0482515561513205	-104.9434211	39.7273161	-104.9439853	39.7273195
-18030	9698	10250	0.0474036186605965	0.0474036186605965	-104.9439853	39.7273195	-104.9445396	39.7273207
-18031	10250	6018	0.047797038051314	0.047797038051314	-104.9445396	39.7273207	-104.9450985	39.727322
-18032	6018	10251	0.0473952539943275	0.0473952539943275	-104.9450985	39.727322	-104.9456527	39.7273237
-18033	10251	3455	0.0464887102201997	0.0464887102201997	-104.9456527	39.7273237	-104.9461963	39.7273253
-18034	3455	7682	0.0950045363584629	0.0950045363584629	-104.9461963	39.7273253	-104.9473072	39.7273292
-19711	10628	10629	0.0313669947000456	0.0313669947000456	-105.0039101	39.7341658	-105.0042425	39.7342851
-18035	7682	8018	0.0938092255843609	0.0938092255843609	-104.9473072	39.7273292	-104.9484041	39.7273359
-18036	8018	6695	0.0944228486315978	0.0944228486315978	-104.9484041	39.7273359	-104.9495082	39.7273395
-18037	6695	4132	0.0905761672491303	0.0905761672491303	-104.9495082	39.7273395	-104.9505673	39.7273334
-18727	7644	9832	0.176300161007389	0.176300161007389	-105.0318854	39.7277175	-105.0318908	39.729303
-18729	6212	7649	0.275730709453964	0.275730709453964	-105.0367467	39.7257609	-105.0367537	39.7282406
-18038	4132	8863	0.0309494848264702	0.0309494848264702	-104.9505673	39.7273334	-104.9509292	39.7273333
-18039	8863	2633	0.0676202306028496	0.0676202306028496	-104.9509292	39.7273333	-104.9517199	39.7273329
-18040	2633	8861	0.0311034897002001	0.0311034897002001	-104.9517199	39.7273329	-104.9520836	39.7273323
-18041	8861	2052	0.0676910103216562	0.0676910103216562	-104.9520836	39.7273323	-104.9528751	39.7273272
-18042	2052	8871	0.0313177900642343	0.0313177900642343	-104.9528751	39.7273272	-104.9532413	39.7273255
-18043	8871	7982	0.067271802615166	0.067271802615166	-104.9532413	39.7273255	-104.9540279	39.7273206
-18044	7982	7981	0.0326778162339826	0.0326778162339826	-104.9540279	39.7273206	-104.95441	39.7273185
-18045	7981	7321	0.0976461329299173	0.0976461329299173	-104.95441	39.7273185	-104.9555518	39.7273179
-18046	7321	7887	0.0987923725207189	0.0987923725207189	-104.9555518	39.7273179	-104.956707	39.7273201
-18047	7887	3343	0.0990941084892765	0.0990941084892765	-104.956707	39.7273201	-104.9578657	39.7273135
-18048	3343	5022	0.0986991080291596	0.0986991080291596	-104.9578657	39.7273135	-104.9590198	39.7273177
-18049	5022	8729	0.0995709770506032	0.0995709770506032	-104.9590198	39.7273177	-104.9601841	39.7273144
-18050	8729	6262	0.0984844587143486	0.0984844587143486	-104.9601841	39.7273144	-104.9613357	39.7273124
-18051	6262	1012	0.100435040495632	0.100435040495632	-104.9613357	39.7273124	-104.9625101	39.7273084
-18052	1012	3920	0.0983845018704443	0.0983845018704443	-104.9625101	39.7273084	-104.9636605	39.7273016
-18053	3920	3146	0.0986126436689597	0.0986126436689597	-104.9636605	39.7273016	-104.9648136	39.7273031
-18054	3146	5413	0.0895267655685447	0.0895267655685447	-104.9648136	39.7273031	-104.9658604	39.7273116
-18056	7083	10246	0.183851267240735	0.183851267240735	-104.9848713	39.7256319	-104.9848802	39.7272853
-19713	10624	10625	0.048946191319968	0.048946191319968	-105.0029777	39.7364814	-105.0033774	39.7367965
-18057	10246	3811	0.198873820859187	0.198873820859187	-104.9848802	39.7272853	-104.9848706	39.7290738
-18058	3811	5919	0.153816946395634	0.153816946395634	-104.9848706	39.7290738	-104.9848641	39.7304571
-18059	5919	918	0.176756350909337	0.176756350909337	-104.9848641	39.7304571	-104.98484	39.7320466
-18060	918	2205	0.200653782293274	0.200653782293274	-104.98484	39.7320466	-104.9848518	39.7338511
-18061	2205	4854	0.158832380963048	0.158832380963048	-104.9848518	39.7338511	-104.9848436	39.7352795
-18062	4854	9478	0.174098421618631	0.174098421618631	-104.9848436	39.7352795	-104.9848486	39.7368452
-18063	9478	5457	0.176480352381434	0.176480352381434	-104.9848486	39.7368452	-104.9848604	39.7384323
-18065	10252	9243	0.056682383190515	0.056682383190515	-105.0065259	39.7255278	-105.005875	39.7256239
-18067	9110	10252	0.0330932350677699	0.0330932350677699	-105.0069105	39.725495	-105.0065259	39.7255278
-18069	10253	6203	0.215345161639468	0.215345161639468	-105.0092129	39.7256572	-105.0067229	39.7253691
-18071	9115	10254	0.0491155354462148	0.0491155354462148	-105.0110763	39.7256175	-105.010502	39.7256195
-18075	10254	10255	0.0642041289943666	0.0642041289943666	-105.010502	39.7256195	-105.0097514	39.7256305
-18076	10255	10253	0.0461489416178021	0.0461489416178021	-105.0097514	39.7256305	-105.0092129	39.7256572
-18077	10253	9108	0.280904320228077	0.280904320228077	-105.0092129	39.7256572	-105.0059283	39.7256613
-18106	4661	10263	0.0487469518611321	0.0487469518611321	-105.0193192	39.7874319	-105.0198897	39.7874342
-18107	10263	1291	0.0497384845482417	0.0497384845482417	-105.0198897	39.7874342	-105.0204718	39.7874371
-18108	1291	10264	0.0496989025904687	0.0496989025904687	-105.0204718	39.7874371	-105.0210534	39.7874313
-18109	10264	4563	0.0505706606603651	0.0505706606603651	-105.0210534	39.7874313	-105.0216452	39.7874253
-18110	4563	10265	0.0486836289638941	0.0486836289638941	-105.0216452	39.7874253	-105.0222149	39.787432
-18111	10265	6287	0.0497296125808977	0.0497296125808977	-105.0222149	39.787432	-105.0227969	39.7874344
-18112	6287	10135	0.0504212055729903	0.0504212055729903	-105.0227969	39.7874344	-105.023387	39.7874357
-18113	10135	2731	0.0489350482169507	0.0489350482169507	-105.023387	39.7874357	-105.0239597	39.7874332
-18114	2731	6420	0.048465461986869	0.048465461986869	-105.0239597	39.7874332	-105.0245269	39.7874302
-18115	6420	5790	0.0578817224647719	0.0578817224647719	-105.0245269	39.7874302	-105.0252043	39.7874266
-18117	8844	10266	0.374943168729483	0.374943168729483	-105.0064203	39.7882499	-105.0106756	39.7890735
-18166	2719	9346	0.101115603929332	0.101115603929332	-105.0239361	39.7820944	-105.0251194	39.7820982
-18167	9346	9392	0.0111914858812043	0.0111914858812043	-105.0251194	39.7820982	-105.0252309	39.782151
-18168	9392	3751	0.0968414516342271	0.0968414516342271	-105.0252309	39.782151	-105.0263639	39.7821708
-18169	3751	10278	0.0782538471461698	0.0782538471461698	-105.0263639	39.7821708	-105.0272582	39.7823223
-18175	4073	6058	0.198316836648763	0.198316836648763	-105.0316273	39.7838408	-105.0316334	39.7856243
-18176	6058	5798	0.200796475018558	0.200796475018558	-105.0316334	39.7856243	-105.0316273	39.7874301
-18197	6750	5252	0.185979531851002	0.185979531851002	-105.0275762	39.7639672	-105.0295723	39.7646329
-18198	5252	3974	0.035323188020151	0.035323188020151	-105.0295723	39.7646329	-105.0299675	39.7647258
-18200	9357	2431	0.202519432604137	0.202519432604137	-105.0363814	39.7731219	-105.0363839	39.7713006
-18201	2431	9370	0.199383622965617	0.199383622965617	-105.0363839	39.7713006	-105.0363839	39.7695075
-18202	9370	1686	0.206118508992277	0.206118508992277	-105.0363839	39.7695075	-105.0363632	39.7676539
-18203	1686	6875	0.204292305654176	0.204292305654176	-105.0363632	39.7676539	-105.0363465	39.7658167
-18588	6666	1137	0.0495387040987843	0.0495387040987843	-105.0398227	39.780198	-105.0404024	39.780201
-18589	1137	6968	0.0501615414722825	0.0501615414722825	-105.0404024	39.780201	-105.0409894	39.7802021
-18590	6968	7504	0.0501273333828588	0.0501273333828588	-105.0409894	39.7802021	-105.041576	39.7802031
-18591	7504	9407	0.0988444534637431	0.0988444534637431	-105.041576	39.7802031	-105.0427327	39.7802037
-18592	9407	7479	0.0538727285881741	0.0538727285881741	-105.0427327	39.7802037	-105.0433631	39.7802085
-18593	7479	5581	0.0510099428615072	0.0510099428615072	-105.0433631	39.7802085	-105.04396	39.7802131
-18594	5581	10328	0.0992130715738959	0.0992130715738959	-105.04396	39.7802131	-105.045121	39.7802175
-18595	10328	10329	0.693578278671619	0.693578278671619	-105.045121	39.7802175	-105.0532374	39.7802069
-18597	1845	2579	0.175048810960168	0.175048810960168	-105.031231	39.721358	-105.0312476	39.7229322
-18598	2579	5177	0.17911429796522	0.17911429796522	-105.0312476	39.7229322	-105.031239	39.724543
-18599	5177	10332	0.0225943601934419	0.0225943601934419	-105.031239	39.724543	-105.0312506	39.724746
-18604	6211	7648	0.275618961394926	0.275618961394926	-105.0356646	39.7257653	-105.0356619	39.728244
-18605	7648	8065	0.262676196305861	0.262676196305861	-105.0356619	39.728244	-105.0356674	39.7306063
-18711	2590	5183	0.178568260386205	0.178568260386205	-105.0372775	39.7229371	-105.0372815	39.724543
-18712	5183	5651	0.104244503206479	0.104244503206479	-105.0372815	39.724543	-105.0372987	39.7254804
-18747	6210	10338	0.0125158344567017	0.0125158344567017	-105.0337279	39.7260547	-105.0338594	39.7261041
-18748	10338	10206	0.0559739547988456	0.0559739547988456	-105.0338594	39.7261041	-105.0345139	39.726102
-18749	10206	10338	0.0559739547988456	0.0559739547988456	-105.0345139	39.726102	-105.0338594	39.7261041
-18751	2596	5186	0.177768815603995	0.177768815603995	-105.0389102	39.7229396	-105.0389187	39.7245383
-18758	2588	5182	0.176322049262719	0.176322049262719	-105.0361794	39.7229441	-105.0361829	39.7245298
-18759	5182	5650	0.106248688527315	0.106248688527315	-105.0361829	39.7245298	-105.0361904	39.7254853
-18765	10339	10341	0.0322810460432902	0.0322810460432902	-105.0047672	39.7397925	-105.0049362	39.7395329
-18767	4492	10342	0.0173161946805903	0.0173161946805903	-105.0052379	39.7395355	-105.0050354	39.7395334
-18768	10342	10341	0.00848220864637094	0.00848220864637094	-105.0050354	39.7395334	-105.0049362	39.7395329
-18770	5616	10343	0.00845077111169589	0.00845077111169589	-105.0015651	39.7393715	-105.0014663	39.7393735
-18771	10343	10344	0.0509950035054565	0.0509950035054565	-105.0014663	39.7393735	-105.0008699	39.7393725
-18772	10344	9634	0.100553817919852	0.100553817919852	-105.0008699	39.7393725	-105.0008673	39.7384682
-18950	6234	7639	0.179364622734642	0.179364622734642	-104.9975473	39.7256987	-104.9975661	39.7273117
-18789	10350	10131	1.72659496196287	1.72659496196287	-104.9945291	39.7683411	-104.9893756	39.7833551
-18791	10210	10350	0.0784105528331039	0.0784105528331039	-104.9953391	39.76801	-104.9945291	39.7683411
-18793	9064	10351	0.108141289805084	0.108141289805084	-104.9980982	39.766727	-104.9969332	39.7671064
-18795	10351	8944	0.165792281012932	0.165792281012932	-104.9969332	39.7671064	-104.9951643	39.7677183
-18797	8946	8970	0.101566925839608	0.101566925839608	-104.9938162	39.7672158	-104.9947845	39.7677453
-18805	431	8911	0.368100622266312	0.368100622266312	-104.9935559	39.7671283	-104.9912548	39.7699266
-18807	8935	10353	0.0653020622045421	0.0653020622045421	-104.9904048	39.7737279	-104.990472	39.7731429
-18865	217	6354	0.250152442533131	0.250152442533131	-105.0109346	39.7232696	-105.0110405	39.7255178
-18867	10372	10373	0.00433033984408308	0.00433033984408308	-105.0086117	39.7209279	-105.0085612	39.7209251
-18809	2956	8964	0.839971785186466	0.839971785186466	-104.9919912	39.7706248	-104.9950202	39.7634385
-18811	10353	8914	0.0131507104865587	0.0131507104865587	-104.990472	39.7731429	-104.9904906	39.7730255
-18813	10354	8436	0.0634565167907247	0.0634565167907247	-105.0148848	39.7420462	-105.014551	39.7415365
-18815	8440	10354	0.130317184994069	0.130317184994069	-105.0158022	39.7429821	-105.0148848	39.7420462
-18818	8431	4422	0.07184295360215	0.07184295360215	-105.0163799	39.7437893	-105.0169124	39.7442891
-18820	8435	10355	0.137076541565926	0.137076541565926	-105.0147581	39.7421922	-105.015729	39.7431732
-18825	9181	10356	0.159461421615407	0.159461421615407	-105.0158598	39.7429416	-105.0153708	39.7415577
-18827	10357	10358	0.20146281055654	0.20146281055654	-105.0148187	39.7409989	-105.0144967	39.7392041
-18829	9180	10359	0.028613707454695	0.028613707454695	-105.0141257	39.7376931	-105.0141666	39.7374377
-18833	10360	10361	0.0535066603860974	0.0535066603860974	-105.0142282	39.7371345	-105.0143588	39.7366639
-18835	10361	10362	0.0845690343766548	0.0845690343766548	-105.0143588	39.7366639	-105.0146327	39.7359331
-18836	10362	9179	0.0218653086870073	0.0218653086870073	-105.0146327	39.7359331	-105.0147208	39.7357485
-19605	10512	10584	0.0688213399515618	0.0688213399515618	-104.9902689	39.7091497	-104.9910734	39.7091553
-20576	10864	10865	0.0279630258161778	0.0279630258161778	-105.0249015	39.7609531	-105.024575	39.7609374
-18838	10363	8434	0.438288246661524	0.438288246661524	-105.013913	39.7376771	-105.0143556	39.741604
-18840	8433	10364	0.0515496120111284	0.0515496120111284	-105.0141326	39.7366784	-105.0140112	39.7371325
-18842	10365	10363	0.0256601639624377	0.0256601639624377	-105.0139511	39.7374482	-105.013913	39.7376771
-18844	10364	10365	0.0354783965202197	0.0354783965202197	-105.0140112	39.7371325	-105.0139511	39.7374482
-18848	10367	8387	0.416611762681733	0.416611762681733	-105.0138601	39.7376849	-105.0139458	39.741431
-18850	10366	10367	0.0267687636085769	0.0267687636085769	-105.0139219	39.7374489	-105.0138601	39.7376849
-18852	10368	10369	0.0527715034881913	0.0527715034881913	-105.0143032	39.7371374	-105.0144214	39.7366716
-18854	10370	10368	0.0348446889076446	0.0348446889076446	-105.01426	39.737449	-105.0143032	39.7371374
-18856	10371	10370	0.031482834490968	0.031482834490968	-105.0142451	39.7377319	-105.01426	39.737449
-18858	9836	10370	0.0328670117804623	0.0328670117804623	-105.0142819	39.7377441	-105.01426	39.737449
-18921	10399	10400	0.0895277934361984	0.0895277934361984	-105.0126923	39.7491278	-105.0134743	39.7485923
-18922	10400	10401	0.16717380860502	0.16717380860502	-105.0134743	39.7485923	-105.0137455	39.7471034
-18923	10402	10383	0.0291115464827756	0.0291115464827756	-105.012332	39.7504473	-105.0124996	39.7502194
-18924	10383	10403	0.0309778660865677	0.0309778660865677	-105.0124996	39.7502194	-105.0122636	39.750008
-18925	10403	10390	0.0429604527526701	0.0429604527526701	-105.0122636	39.750008	-105.0126243	39.749739
-18927	10404	10405	0.0626862314087788	0.0626862314087788	-105.0107841	39.7498186	-105.0109524	39.7503673
-18930	10406	10405	0.108269005965165	0.108269005965165	-105.0097302	39.7501122	-105.0109524	39.7503673
-18932	1241	6737	0.0570520014832054	0.0570520014832054	-105.0205242	39.7613979	-105.0203579	39.760901
-18934	8100	6923	0.164900679548878	0.164900679548878	-105.0200789	39.7613979	-105.018184	39.7611196
-18936	6923	8099	0.163064822440362	0.163064822440362	-105.018184	39.7611196	-105.016277	39.7610801
-18938	7928	8098	0.0730856765280865	0.0730856765280865	-105.0162425	39.7603392	-105.0160862	39.7609854
-18940	4039	4644	0.0827836448037734	0.0827836448037734	-105.0178323	39.7180402	-105.018682	39.7183967
-18943	10407	7448	0.103189406011465	0.103189406011465	-105.0127225	39.7148426	-105.0139289	39.7148415
-19852	10659	3379	0.102335766847439	0.102335766847439	-105.035226	39.7385493	-105.0346077	39.7377613
-18945	4142	10108	0.0206474020512083	0.0206474020512083	-104.9827054	39.7147303	-104.9827539	39.7145484
-18947	5674	2620	0.178145491343884	0.178145491343884	-104.9975487	39.7209311	-104.9975509	39.7225332
-18948	2620	5201	0.177501253416424	0.177501253416424	-104.9975509	39.7225332	-104.9975447	39.7241295
-18949	5201	6234	0.174487220572856	0.174487220572856	-104.9975447	39.7241295	-104.9975473	39.7256987
-18951	7639	8773	0.176238488140281	0.176238488140281	-104.9975661	39.7273117	-104.9975826	39.7288966
-18952	8773	8053	0.178917033730472	0.178917033730472	-104.9975826	39.7288966	-104.9976187	39.7305054
-18953	8053	6598	0.176988972177145	0.176988972177145	-104.9976187	39.7305054	-104.9976193	39.7320971
-18954	6598	10243	0.175681180141988	0.175681180141988	-104.9976193	39.7320971	-104.9976337	39.733677
-18956	1841	7856	0.0582284853716934	0.0582284853716934	-104.9921535	39.7209342	-104.9928343	39.7209379
-18957	7856	4669	0.101085168807405	0.101085168807405	-104.9928343	39.7209379	-104.994016	39.720921
-18979	1764	4509	0.0491583937075752	0.0491583937075752	-104.9769042	39.7146962	-104.9763295	39.7146995
-18980	4509	4971	0.0991296803100638	0.0991296803100638	-104.9763295	39.7146995	-104.9751706	39.7147065
-18981	4971	1516	0.0482432726972035	0.0482432726972035	-104.9751706	39.7147065	-104.9746066	39.7147099
-18982	1516	5304	0.0536166306041211	0.0536166306041211	-104.9746066	39.7147099	-104.9739798	39.7147152
-18983	5304	7951	0.0505628420768163	0.0505628420768163	-104.9739798	39.7147152	-104.9733887	39.7147202
-18984	7951	7950	0.0124795676036534	0.0124795676036534	-104.9733887	39.7147202	-104.9732428	39.7147202
-18985	7950	1083	0.0132964314605761	0.0132964314605761	-104.9732428	39.7147202	-104.9730883	39.714707
-18986	1083	8958	0.019091432638578	0.019091432638578	-104.9730883	39.714707	-104.9728651	39.714707
-18987	8958	1750	0.0565301426139895	0.0565301426139895	-104.9728651	39.714707	-104.9722042	39.714707
-18988	1750	6636	0.100698502633469	0.100698502633469	-104.9722042	39.714707	-104.9710271	39.7146913
-18989	6636	5425	0.0992142460676437	0.0992142460676437	-104.9710271	39.7146913	-104.9698675	39.7147124
-18990	5425	7398	0.100582854167636	0.100582854167636	-104.9698675	39.7147124	-104.9686917	39.7147256
-18992	5674	10413	0.0446816032988726	0.0446816032988726	-104.9975487	39.7209311	-104.9980711	39.720935
-18993	10413	6641	0.0419959523464037	0.0419959523464037	-104.9980711	39.720935	-104.9985621	39.7209387
-18994	6641	3958	0.140215488391596	0.140215488391596	-104.9985621	39.7209387	-105.0002015	39.7209321
-18997	9265	10213	0.108979878639585	0.108979878639585	-105.0016701	39.7209304	-105.0029442	39.7209175
-19957	10683	10676	0.203409384148671	0.203409384148671	-105.0434219	39.7384701	-105.0434166	39.7366408
-18998	10213	9182	0.221716360786737	0.221716360786737	-105.0029442	39.7209175	-105.0055365	39.720906
-18999	9182	4360	0.00485021965067944	0.00485021965067944	-105.0055365	39.720906	-105.0055932	39.7209068
-19000	4360	6082	0.123504109096694	0.123504109096694	-105.0055932	39.7209068	-105.007037	39.720887
-19240	10459	8221	0.147319836582293	0.147319836582293	-104.9924125	39.7416474	-104.9936301	39.74071
-19002	1269	4533	0.203350040591983	0.203350040591983	-105.0203986	39.7184231	-105.0227761	39.7184297
-19003	4533	8579	0.198512187124204	0.198512187124204	-105.0227761	39.7184297	-105.0250969	39.7184502
-19005	1841	2613	0.177111353706323	0.177111353706323	-104.9921535	39.7209342	-104.9921516	39.722527
-19006	2613	10414	0.0530626159965885	0.0530626159965885	-104.9921516	39.722527	-104.992154	39.7230042
-19007	10414	5196	0.124494794308613	0.124494794308613	-104.992154	39.7230042	-104.9921597	39.7241238
-19008	5196	6239	0.171651899926933	0.171651899926933	-104.9921597	39.7241238	-104.9921634	39.7256675
-19010	4186	4182	0.0154308679587021	0.0154308679587021	-104.9921793	39.7147876	-104.9923595	39.714781
-19011	4182	3367	0.101326829934178	0.101326829934178	-104.9923595	39.714781	-104.993544	39.7147942
-19012	3367	3370	0.0389167828857067	0.0389167828857067	-104.993544	39.7147942	-104.9939989	39.7148008
-19013	3370	10415	0.0493793417329401	0.0493793417329401	-104.9939989	39.7148008	-104.9945762	39.7148008
-19014	10415	7424	0.0519282840216647	0.0519282840216647	-104.9945762	39.7148008	-104.9951833	39.7148008
-19015	7424	10416	0.0508505433229276	0.0508505433229276	-104.9951833	39.7148008	-104.9957778	39.7148008
-19016	10416	7831	0.0497300351350067	0.0497300351350067	-104.9957778	39.7148008	-104.9963592	39.7148008
-19017	7831	9197	0.188452322853961	0.188452322853961	-104.9963592	39.7148008	-104.9985624	39.7147937
-19019	5549	10417	0.0198343104325793	0.0198343104325793	-104.9920738	39.6893875	-104.9923056	39.6893875
-19020	10417	2562	0.366597076665755	0.366597076665755	-104.9923056	39.6893875	-104.9965885	39.6893017
-19021	2562	9783	0.236171353579108	0.236171353579108	-104.9965885	39.6893017	-104.9993276	39.6890403
-19022	9783	9781	0.00643634199106272	0.00643634199106272	-104.9993276	39.6890403	-104.9994018	39.6890498
-19958	10676	10668	0.135367639799285	0.135367639799285	-105.0434166	39.7366408	-105.0433886	39.7354236
-19023	9781	9160	0.00367738923970995	0.00367738923970995	-104.9994018	39.6890498	-104.9994442	39.6890552
-19025	9156	9260	0.0939135311905937	0.0939135311905937	-104.9956359	39.7036162	-104.9954471	39.7027842
-19040	10419	435	0.0296899237003876	0.0296899237003876	-104.9404266	39.7837714	-104.9400813	39.7837417
-19042	6361	6912	0.413025051484806	0.413025051484806	-104.9406234	39.7728953	-104.9406406	39.7691809
-19043	6912	5272	0.122458972713872	0.122458972713872	-104.9406406	39.7691809	-104.9406406	39.7680796
-19044	5272	2806	0.132101617817113	0.132101617817113	-104.9406406	39.7680796	-104.9406492	39.7668916
-19045	2806	9480	0.135002111088791	0.135002111088791	-104.9406492	39.7668916	-104.9406528	39.7656775
-19046	9480	901	0.134968752710231	0.134968752710231	-104.9406528	39.7656775	-104.9406492	39.7644637
-19048	9486	9873	0.018915562611857	0.018915562611857	-104.9406618	39.7619502	-104.9406644	39.7617801
-19049	9873	3055	0.182137362251337	0.182137362251337	-104.9406644	39.7617801	-104.9406663	39.7601421
-19050	3055	9669	0.205422822851571	0.205422822851571	-104.9406663	39.7601421	-104.9406749	39.7582947
-19051	9669	4352	0.202508200405289	0.202508200405289	-104.9406749	39.7582947	-104.9406749	39.7564735
-19052	4352	7924	0.0557579828978423	0.0557579828978423	-104.9406749	39.7564735	-104.9406835	39.7559721
-19053	7924	7923	0.106391305814005	0.106391305814005	-104.9406835	39.7559721	-104.9406835	39.7550153
-19054	7923	3580	0.0580075342624614	0.0580075342624614	-104.9406835	39.7550153	-104.9407092	39.754494
-19055	3580	788	0.184224770380015	0.184224770380015	-104.9407092	39.754494	-104.9407607	39.7528377
-19056	788	10089	0.199795465587569	0.199795465587569	-104.9407607	39.7528377	-104.9407655	39.7510409
-19057	10089	491	0.20084069572648	0.20084069572648	-104.9407655	39.7510409	-104.9407607	39.7492347
-19058	491	489	0.205477824650125	0.205477824650125	-104.9407607	39.7492347	-104.9407865	39.7473869
-19059	489	4589	0.272976340428597	0.272976340428597	-104.9407865	39.7473869	-104.9408036	39.744932
-19060	4589	1978	0.12991989572877	0.12991989572877	-104.9408036	39.744932	-104.9407693	39.7437639
-19061	1978	1994	0.0147512164813181	0.0147512164813181	-104.9407693	39.7437639	-104.9407521	39.7436319
-19062	1994	705	0.187141061542779	0.187141061542779	-104.9407521	39.7436319	-104.9407521	39.7419489
-19063	705	642	0.0623803538473296	0.0623803538473296	-104.9407521	39.7419489	-104.9407521	39.7413879
-19064	642	10422	0.140896965982946	0.140896965982946	-104.9407521	39.7413879	-104.9407436	39.7401208
-19067	9469	4898	0.180547202392339	0.180547202392339	-104.9407436	39.7367085	-104.9407436	39.7350848
-19068	4898	4899	0.0469687370152221	0.0469687370152221	-104.9407436	39.7350848	-104.9407436	39.7346624
-19069	4899	9422	0.11449972298661	0.11449972298661	-104.9407436	39.7346624	-104.9407521	39.7336327
-19070	9422	2230	0.0888113879114828	0.0888113879114828	-104.9407521	39.7336327	-104.9407521	39.732834
-19071	2230	961	0.0851419553312056	0.0851419553312056	-104.9407521	39.732834	-104.9407521	39.7320683
-19072	961	5943	0.118166848545009	0.118166848545009	-104.9407521	39.7320683	-104.9407521	39.7310056
-19073	5943	8869	0.0594604755013997	0.0594604755013997	-104.9407521	39.7310056	-104.9407607	39.7304709
-19074	8869	3766	0.149125823202066	0.149125823202066	-104.9407607	39.7304709	-104.9407704	39.7291298
-19075	3766	10248	0.200641473563849	0.200641473563849	-104.9407704	39.7291298	-104.940779	39.7273254
-19076	10248	1211	0.0471365210908597	0.0471365210908597	-104.940779	39.7273254	-104.940806	39.726902
-19077	1211	8567	0.147435833594552	0.147435833594552	-104.940806	39.726902	-104.940796	39.7255761
-19078	8567	6541	0.161851618274563	0.161851618274563	-104.940796	39.7255761	-104.9407779	39.7241206
-19079	6541	4746	0.176177241775495	0.176177241775495	-104.9407779	39.7241206	-104.9407779	39.7225362
-19081	4159	2359	0.17021782028236	0.17021782028236	-104.9407748	39.7209356	-104.9407802	39.7194048
-19082	2359	9694	0.178145500592375	0.178145500592375	-104.9407802	39.7194048	-104.9407779	39.7178027
-19083	9694	5170	0.174004040417809	0.174004040417809	-104.9407779	39.7178027	-104.9407951	39.7162379
-19085	6362	6447	0.0914589915157797	0.0914589915157797	-104.940457	39.7728953	-104.9404516	39.7737178
-19086	6447	2399	0.0149004167256546	0.0149004167256546	-104.9404516	39.7737178	-104.9404527	39.7738518
-19087	2399	9454	0.2205749898237	0.2205749898237	-104.9404527	39.7738518	-104.9405378	39.7758344
-19089	519	831	0.121986604363099	0.121986604363099	-104.9416292	39.7807961	-104.9429184	39.780325
-19090	831	10147	0.141772461765667	0.141772461765667	-104.9429184	39.780325	-104.9445492	39.7800907
-19091	10147	10428	0.0119979325853114	0.0119979325853114	-104.9445492	39.7800907	-104.9445492	39.7799828
-19093	8145	9501	0.0198122134799104	0.0198122134799104	-104.9480016	39.7837973	-104.9477699	39.7837907
-19094	9501	1751	0.0440125388452957	0.0440125388452957	-104.9477699	39.7837907	-104.9472549	39.7837973
-19095	1751	6012	0.168131959250809	0.168131959250809	-104.9472549	39.7837973	-104.9452877	39.7838286
-19096	6012	832	0.205336624614562	0.205336624614562	-104.9452877	39.7838286	-104.9428851	39.783794
-19097	832	518	0.168135736431663	0.168135736431663	-104.9428851	39.783794	-104.9409175	39.7837817
-19098	518	6513	0.0279910233322091	0.0279910233322091	-104.9409175	39.7837817	-104.9405902	39.7837714
-19099	6513	10419	0.0139795197071191	0.0139795197071191	-104.9405902	39.7837714	-104.9404266	39.7837714
-19102	10049	8612	0.0522928783615643	0.0522928783615643	-105.0003395	39.7496422	-105.0007767	39.7499711
-19103	8612	8474	0.0521996072275175	0.0521996072275175	-105.0007767	39.7499711	-105.0012293	39.7502862
-19142	5220	8777	0.146640601075408	0.146640601075408	-104.9888573	39.7273254	-104.9874242	39.7266013
-19105	10430	10358	0.245136281681027	0.245136281681027	-105.0132616	39.7411936	-105.0144967	39.7392041
-19108	5628	9568	0.110078124608504	0.110078124608504	-104.9727792	39.7181791	-104.9714922	39.7181793
-19110	8421	10357	0.296407311680596	0.296407311680596	-105.0127281	39.7431253	-105.0148187	39.7409989
-19114	2386	9558	0.0348995825647377	0.0348995825647377	-104.9468949	39.7115125	-104.9465426	39.7113542
-19115	9558	8798	0.125658984531748	0.125658984531748	-104.9465426	39.7113542	-104.9457531	39.7104012
-19120	8185	9450	0.339524971346509	0.339524971346509	-104.936636	39.7114077	-104.9405977	39.7115958
-19121	9450	8690	0.0176125961717604	0.0176125961717604	-104.9405977	39.7115958	-104.9408036	39.7115964
-19122	8690	7659	0.0477249226862614	0.0477249226862614	-104.9408036	39.7115964	-104.9413615	39.7115918
-19123	7659	6718	0.103225505465316	0.103225505465316	-104.9413615	39.7115918	-104.9425631	39.711506
-19125	2190	8128	0.151455687504874	0.151455687504874	-105.0139689	39.7423726	-105.0124026	39.7430088
-19126	8128	7827	0.106341251390527	0.106341251390527	-105.0124026	39.7430088	-105.0113366	39.7435015
-19127	7827	10432	0.221434541654845	0.221434541654845	-105.0113366	39.7435015	-105.0087952	39.7438851
-19128	10432	6961	0.0131395719721806	0.0131395719721806	-105.0087952	39.7438851	-105.0086651	39.743948
-19129	6961	10433	0.0134328380462519	0.0134328380462519	-105.0086651	39.743948	-105.0085243	39.7440016
-19130	10433	10434	0.0869062764565781	0.0869062764565781	-105.0085243	39.7440016	-105.007666	39.7444203
-19131	10434	8597	0.00983583049657532	0.00983583049657532	-105.007666	39.7444203	-105.0075587	39.7444522
-19132	8597	10435	0.0222534876112211	0.0222534876112211	-105.0075587	39.7444522	-105.0073243	39.7445392
-19134	10050	3168	0.0821216282435351	0.0821216282435351	-105.0006176	39.749423	-105.0012883	39.7488943
-19141	7961	5220	0.0901667996290929	0.0901667996290929	-104.9896006	39.7279005	-104.9888573	39.7273254
-19144	8388	10437	0.320984694668417	0.320984694668417	-105.0138882	39.7419658	-105.0110862	39.743887
-19146	10437	6962	0.186002986440568	0.186002986440568	-105.0110862	39.743887	-105.0094763	39.7450121
-19147	6962	10438	0.0184374963317956	0.0184374963317956	-105.0094763	39.7450121	-105.0092941	39.7451008
-19148	10438	1881	0.209774050468257	0.209774050468257	-105.0092941	39.7451008	-105.0074729	39.746365
-19149	1881	8569	0.224745848084877	0.224745848084877	-105.0074729	39.746365	-105.00526	39.747456
-19150	8569	9988	0.0831717180377924	0.0831717180377924	-105.00526	39.747456	-105.0043843	39.7477818
-19151	9988	8477	0.0648356679758423	0.0648356679758423	-105.0043843	39.7477818	-105.003633	39.7477024
-19152	8477	8463	0.0835421546655635	0.0835421546655635	-105.003633	39.7477024	-105.0026615	39.7476216
-19960	9517	10684	0.210192276965542	0.210192276965542	-105.0410776	39.740352	-105.0410722	39.7384617
-19154	8800	8811	0.31904932389546	0.31904932389546	-104.9467659	39.7116096	-104.9494453	39.7136057
-19162	10428	3871	0.0534454265709194	0.0534454265709194	-104.9445492	39.7799828	-104.9440637	39.7796798
-19163	3871	840	0.0992542187222657	0.0992542187222657	-104.9440637	39.7796798	-104.942905	39.7797416
-19164	840	4272	0.128018795895479	0.128018795895479	-104.942905	39.7797416	-104.9418717	39.778908
-19166	9283	10439	0.0445989165425857	0.0445989165425857	-104.9624039	39.7800174	-104.961882	39.7800192
-19168	10440	9282	0.395349042842448	0.395349042842448	-104.9622414	39.7801259	-104.9667713	39.7808486
-19170	7136	2300	0.0954980884416659	0.0954980884416659	-104.9684185	39.7783922	-104.9691692	39.7790284
-19171	2300	6804	0.197911548357853	0.197911548357853	-104.9691692	39.7790284	-104.9688098	39.7807867
-19173	7956	8539	0.0718200140953678	0.0718200140953678	-104.9677476	39.7808918	-104.9669081	39.7808609
-19174	8539	9282	0.0117697082839477	0.0117697082839477	-104.9669081	39.7808609	-104.9667713	39.7808486
-19176	10442	1349	0.0573473302810492	0.0573473302810492	-104.9735925	39.7715442	-104.9740676	39.7719084
-19178	10443	8521	0.0309849382045455	0.0309849382045455	-105.0041255	39.7507938	-105.0043742	39.7505911
-19180	10151	10440	0.0401979143660666	0.0401979143660666	-104.961771	39.7801275	-104.9622414	39.7801259
-19182	10439	5059	0.220890379574485	0.220890379574485	-104.961882	39.7800192	-104.9592971	39.780022
-19183	5059	5013	0.0908635547178716	0.0908635547178716	-104.9592971	39.780022	-104.9582338	39.780024
-19184	5013	3349	0.0925982666666752	0.0925982666666752	-104.9582338	39.780024	-104.9571502	39.780022
-19185	3349	7877	0.0609717199349519	0.0609717199349519	-104.9571502	39.780022	-104.9564367	39.7800204
-19186	7877	5761	0.0981025803398981	0.0981025803398981	-104.9564367	39.7800204	-104.9552887	39.7800158
-19187	5761	7325	0.0996396951750833	0.0996396951750833	-104.9552887	39.7800158	-104.9541227	39.7800179
-19961	10684	10674	0.204298559687633	0.204298559687633	-105.0410722	39.7384617	-105.0410696	39.7366244
-19188	7325	2064	0.0938077886809335	0.0938077886809335	-104.9541227	39.7800179	-104.953025	39.7800093
-20575	10863	10864	0.0111548544892698	0.0111548544892698	-105.0250317	39.7609599	-105.0249015	39.7609531
-19189	2064	2650	0.094440127839499	0.094440127839499	-104.953025	39.7800093	-104.9519199	39.7800007
-19801	7638	6235	0.180302575380181	0.180302575380181	-104.9969636	39.7273173	-104.9969633	39.7256958
-19190	2650	10444	0.141197448312795	0.141197448312795	-104.9519199	39.7800007	-104.9502676	39.7799945
-19191	10444	9821	0.0323105619062287	0.0323105619062287	-104.9502676	39.7799945	-104.9498895	39.7799931
-19192	9821	9822	0.0144436267959073	0.0144436267959073	-104.9498895	39.7799931	-104.9497205	39.7799952
-19193	9822	3476	0.28088366035949	0.28088366035949	-104.9497205	39.7799952	-104.9464336	39.7799807
-19194	3476	10445	0.0704996285836985	0.0704996285836985	-104.9464336	39.7799807	-104.9456086	39.7799808
-19195	10445	10428	0.0905303391563005	0.0905303391563005	-104.9456086	39.7799808	-104.9445492	39.7799828
-19197	10167	10442	0.0431387292722099	0.0431387292722099	-104.9732322	39.7712725	-104.9735925	39.7715442
-19199	8408	8568	0.191490020507546	0.191490020507546	-105.0080042	39.7473225	-105.0063682	39.7484987
-19200	8568	10012	0.119004756390235	0.119004756390235	-105.0063682	39.7484987	-105.0057345	39.7494516
-19335	8631	10474	0.189944426919074	0.189944426919074	-105.0072049	39.7537723	-105.0056485	39.7525532
-19201	10012	8461	0.097400081996938	0.097400081996938	-105.0057345	39.7494516	-105.0049189	39.7500632
-19203	4275	3348	0.0888431357806069	0.0888431357806069	-104.9582338	39.7789377	-104.9571942	39.7789304
-19204	3348	7876	0.0640319779657538	0.0640319779657538	-104.9571942	39.7789304	-104.9564449	39.7789288
-19205	7876	5760	0.0967358830871852	0.0967358830871852	-104.9564449	39.7789288	-104.9553129	39.7789264
-19206	5760	7324	0.101239369924108	0.101239369924108	-104.9553129	39.7789264	-104.9541282	39.778924
-19207	7324	2063	0.0946165731852714	0.0946165731852714	-104.9541282	39.778924	-104.953021	39.7789217
-19208	2063	2649	0.0935569331707932	0.0935569331707932	-104.953021	39.7789217	-104.9519262	39.7789194
-19209	2649	4105	0.0971375052394303	0.0971375052394303	-104.9519262	39.7789194	-104.9507895	39.7789171
-19210	4105	6689	0.0855494277301445	0.0855494277301445	-104.9507895	39.7789171	-104.9497884	39.7789167
-19211	6689	356	0.101026474697068	0.101026474697068	-104.9497884	39.7789167	-104.9486062	39.7789125
-19212	356	7688	0.0921469063041614	0.0921469063041614	-104.9486062	39.7789125	-104.9475279	39.7789103
-19213	7688	3475	0.0946165920204556	0.0946165920204556	-104.9475279	39.7789103	-104.9464207	39.778908
-19215	6939	9228	0.0827641347919428	0.0827641347919428	-104.9592691	39.7819637	-104.9592628	39.7812194
-19216	9228	6380	0.0767643689707359	0.0767643689707359	-104.9592628	39.7812194	-104.9592745	39.7805291
-19217	6380	5058	0.0447215279971903	0.0447215279971903	-104.9592745	39.7805291	-104.9592906	39.7801271
-19219	5015	3318	0.0976390934138488	0.0976390934138488	-104.9582016	39.7805126	-104.957059	39.7805126
-19221	7829	10449	0.170073568021036	0.170073568021036	-104.9917479	39.7578961	-104.9903397	39.7589766
-19222	9276	9490	0.227893235973284	0.227893235973284	-104.9957422	39.7556449	-104.9975705	39.7571365
-19224	5808	10450	0.0444182254226453	0.0444182254226453	-104.9878972	39.7431235	-104.9873945	39.7430227
-19228	10452	10453	0.00899294746602318	0.00899294746602318	-104.9908137	39.7415403	-104.9908874	39.7414826
-19262	561	8788	0.108355823884287	0.108355823884287	-104.984845	39.7400568	-104.9835778	39.7400469
-19264	10465	10081	0.106367191723871	0.106367191723871	-104.9873778	39.7399976	-104.9861338	39.7399945
-19265	10081	9467	0.08060964495203	0.08060964495203	-104.9861338	39.7399945	-104.9851948	39.7400592
-19376	8634	10174	0.107642527980188	0.107642527980188	-104.9972254	39.7453524	-104.9963422	39.7446625
-19283	1943	10467	0.139113140483037	0.139113140483037	-104.9902169	39.7384586	-104.9888355	39.7377977
-19284	10467	1941	0.145058671955531	0.145058671955531	-104.9888355	39.7377977	-104.9873753	39.7384618
-19309	10472	10450	0.0244300101434338	0.0244300101434338	-104.9873927	39.7432424	-104.9873945	39.7430227
-19310	10450	6986	0.0907684588887198	0.0907684588887198	-104.9873945	39.7430227	-104.9873935	39.7422064
-19311	6986	649	0.0550434251335652	0.0550434251335652	-104.9873935	39.7422064	-104.9873881	39.7417114
-19312	649	9973	0.0116984093357102	0.0116984093357102	-104.9873881	39.7417114	-104.9873866	39.7416062
-19313	9973	6700	0.0127993614182147	0.0127993614182147	-104.9873866	39.7416062	-104.9873849	39.7414911
-20578	10796	10801	0.065843170036926	0.065843170036926	-105.0226193	39.761283	-105.021849	39.761283
-19315	5030	10465	0.0131766099040461	0.0131766099040461	-104.987378	39.7401161	-104.9873778	39.7399976
-19316	10465	339	0.0452586039857602	0.0452586039857602	-104.9873778	39.7399976	-104.9873725	39.7395906
-19317	339	10468	0.0402192785877108	0.0402192785877108	-104.9873725	39.7395906	-104.9873734	39.7392289
-19318	10468	1941	0.0852977829408983	0.0852977829408983	-104.9873734	39.7392289	-104.9873753	39.7384618
-19319	1941	610	0.177606555639393	0.177606555639393	-104.9873753	39.7384618	-104.9873582	39.7368646
-19320	610	4852	0.177691892562915	0.177691892562915	-104.9873582	39.7368646	-104.987369	39.7352666
-19321	4852	2203	0.156985921773534	0.156985921773534	-104.987369	39.7352666	-104.9873753	39.7338548
-19324	5917	1620	0.152034755665853	0.152034755665853	-104.987439	39.7304505	-104.9874196	39.7290833
-19325	1620	1212	0.201729915857126	0.201729915857126	-104.9874196	39.7290833	-104.9874175	39.7272691
-19326	1212	8782	0.0140233440789759	0.0140233440789759	-104.9874175	39.7272691	-104.9874245	39.7271431
-19336	4837	9074	0.0183273901669081	0.0183273901669081	-104.9983742	39.7111927	-104.9985883	39.7111864
-19338	9315	9317	0.0726807266351068	0.0726807266351068	-104.9406148	39.7146468	-104.9406062	39.7153004
-19339	9317	8692	0.104147766047402	0.104147766047402	-104.9406062	39.7153004	-104.9406148	39.716237
-19341	9315	1952	0.0315809029571794	0.0315809029571794	-104.9406148	39.7146468	-104.9402458	39.7146371
-19343	10140	10142	0.0644750868788433	0.0644750868788433	-104.967225	39.7796681	-104.967563	39.7791497
-19344	10142	10475	0.0151531719907858	0.0151531719907858	-104.967563	39.7791497	-104.9676782	39.7790461
-19345	10475	7137	0.053510410167183	0.053510410167183	-104.9676782	39.7790461	-104.9680592	39.7786642
-19347	480	9282	0.132450958735296	0.132450958735296	-104.9669782	39.7796681	-104.9667713	39.7808486
-19348	9282	10138	0.0564427245863012	0.0564427245863012	-104.9667713	39.7808486	-104.9667127	39.7813542
-19350	8464	10476	0.175984833399768	0.175984833399768	-105.0014282	39.7464074	-105.0032157	39.7456226
-19352	10047	5253	0.112186249238367	0.112186249238367	-104.9733504	39.7691681	-104.9733576	39.7681592
-19353	5253	2320	0.0249537355545513	0.0249537355545513	-104.9733576	39.7681592	-104.9733543	39.7679348
-19355	10166	6401	0.0992919669903468	0.0992919669903468	-104.9720707	39.769351	-104.9719701	39.7702406
-19359	10479	9948	0.0516511853374245	0.0516511853374245	-104.9998192	39.7473335	-104.9993873	39.7470087
-19360	9948	8509	0.0517093587612889	0.0517093587612889	-104.9993873	39.7470087	-104.9989592	39.7466802
-19362	6189	10479	0.146782090008868	0.146782090008868	-104.9986323	39.7482873	-104.9998192	39.7473335
-19387	10455	5805	0.0524139320350963	0.0524139320350963	-104.9915438	39.7409769	-104.9911089	39.7406447
-19364	10047	10168	0.0607581388382602	0.0607581388382602	-104.9733504	39.7691681	-104.9728475	39.7695543
-19365	10168	10480	0.0679196955639713	0.0679196955639713	-104.9728475	39.7695543	-104.972292	39.7699911
-19366	10480	6401	0.0390713513194924	0.0390713513194924	-104.972292	39.7699911	-104.9719701	39.7702406
-19367	6401	10481	0.052200136280437	0.052200136280437	-104.9719701	39.7702406	-104.9715413	39.7705749
-19368	10481	6166	0.221487121294822	0.221487121294822	-104.9715413	39.7705749	-104.9697218	39.7719933
-19369	6166	4284	0.1514940030025	0.1514940030025	-104.9697218	39.7719933	-104.9683885	39.7728911
-19371	2320	2779	0.107781391844326	0.107781391844326	-104.9733543	39.7679348	-104.9733522	39.7669655
-20580	10867	10868	0.0137448223074376	0.0137448223074376	-105.0244043	39.7612864	-105.0245651	39.7612868
-20581	10868	10869	0.0278742902489333	0.0278742902489333	-105.0245651	39.7612868	-105.0248912	39.7612876
-19372	2779	2913	0.05305189541044	0.05305189541044	-104.9733522	39.7669655	-104.9733488	39.7664884
-19374	8509	9595	0.106794270102757	0.106794270102757	-104.9989592	39.7466802	-104.9980797	39.7459982
-19375	9595	8634	0.102427753876907	0.102427753876907	-104.9980797	39.7459982	-104.9972254	39.7453524
-19377	10174	10482	0.096139738297761	0.096139738297761	-104.9963422	39.7446625	-104.9955435	39.7440539
-19378	10482	9194	0.00978224253563326	0.00978224253563326	-104.9955435	39.7440539	-104.9954622	39.743992
-19380	4397	3002	0.108243017625134	0.108243017625134	-104.9946157	39.7433367	-104.9937158	39.742652
-19381	3002	10484	0.0989194559777293	0.0989194559777293	-104.9937158	39.742652	-104.9929004	39.7420209
-19382	10484	5962	0.00617092845740214	0.00617092845740214	-104.9929004	39.7420209	-104.9928478	39.7419829
-19383	5962	10485	0.00542857584263607	0.00542857584263607	-104.9928478	39.7419829	-104.9928052	39.7419467
-19384	10485	10459	0.0472755549262459	0.0472755549262459	-104.9928052	39.7419467	-104.9924125	39.7416474
-19385	10459	7579	0.0528643874539915	0.0528643874539915	-104.9924125	39.7416474	-104.9919734	39.7413127
-19429	7287	32	0.190572580502828	0.190572580502828	-104.9833604	39.7019722	-104.9833417	39.7002584
-19386	7579	10455	0.0523778989124976	0.0523778989124976	-104.9919734	39.7413127	-104.9915438	39.7409769
-19423	10488	7294	0.0690612889349745	0.0690612889349745	-104.9810224	39.7026345	-104.9810028	39.7020136
-19424	7294	36	0.192538942320683	0.192538942320683	-104.9810028	39.7020136	-104.9809867	39.7002821
-19388	5805	10462	0.081956103355699	0.081956103355699	-104.9911089	39.7406447	-104.9904372	39.7401189
-19389	10462	8768	0.0169741195442503	0.0169741195442503	-104.9904372	39.7401189	-104.9903111	39.740001
-19391	6189	9950	0.0503550239981861	0.0503550239981861	-104.9986323	39.7482873	-104.9990547	39.7486029
-19392	9950	7557	0.0535053183585621	0.0535053183585621	-104.9990547	39.7486029	-104.9994986	39.7489421
-19393	7557	9952	0.0524048074288428	0.0524048074288428	-104.9994986	39.7489421	-104.9999037	39.7492958
-19394	9952	10429	0.0135095901515659	0.0135095901515659	-104.9999037	39.7492958	-105.0000136	39.7493831
-19396	10479	9627	0.0675900234291702	0.0675900234291702	-104.9998192	39.7473335	-105.0003825	39.746907
-19400	3201	6115	0.203275445399412	0.203275445399412	-104.9757389	39.711117	-104.9757389	39.7092889
-19401	6115	1910	0.199619230795837	0.199619230795837	-104.9757389	39.7092889	-104.9757282	39.7074937
-19402	1910	9218	0.202850123370343	0.202850123370343	-104.9757282	39.7074937	-104.9757497	39.7056695
-19403	9218	9216	0.20345414072247	0.20345414072247	-104.9757497	39.7056695	-104.9757563	39.7038398
-19404	9216	7300	0.200631055524996	0.200631055524996	-104.9757563	39.7038398	-104.9757669	39.7020355
-19405	7300	45	0.202263602143448	0.202263602143448	-104.9757669	39.7020355	-104.9757682	39.7002165
-19406	45	3545	0.200651259904661	0.200651259904661	-104.9757682	39.7002165	-104.9757691	39.698412
-19407	3545	4239	0.201942446714699	0.201942446714699	-104.9757691	39.698412	-104.9757777	39.6965959
-19408	4239	1800	0.2054130837632	0.2054130837632	-104.9757777	39.6965959	-104.97579	39.6947486
-19409	1800	8710	0.197537787183869	0.197537787183869	-104.97579	39.6947486	-104.97579	39.6929721
-19410	8710	6527	0.132676718293593	0.132676718293593	-104.97579	39.6929721	-104.9759135	39.6917827
-19695	8145	9492	0.255789380087541	0.255789380087541	-104.9480016	39.7837973	-104.9497268	39.7819174
-19697	10419	10619	0.294868097569216	0.294868097569216	-104.9404266	39.7837714	-104.940416	39.7864232
-19806	10411	7868	0.176421872480467	0.176421872480467	-104.9969604	39.7209341	-104.9969607	39.7193475
-19698	10619	10620	0.511264415982815	0.511264415982815	-104.940416	39.7864232	-104.939871	39.791002
-19699	6199	496	0.110329672635447	0.110329672635447	-104.9404705	39.7816234	-104.9404434	39.7826154
-19700	496	10419	0.128549351195957	0.128549351195957	-104.9404434	39.7826154	-104.9404266	39.7837714
-19704	10623	10624	0.299844457035978	0.299844457035978	-105.0031654	39.7337887	-105.0029777	39.7364814
-19705	10624	10625	0.048946191319968	0.048946191319968	-105.0029777	39.7364814	-105.0033774	39.7367965
-19706	10625	10626	0.0564187161790662	0.0564187161790662	-105.0033774	39.7367965	-105.0040372	39.7367991
-19707	10626	10627	0.261222980592435	0.261222980592435	-105.0040372	39.7367991	-105.0051511	39.7346116
-19717	10626	10634	0.247667737296111	0.247667737296111	-105.0040372	39.7367991	-105.0040521	39.7345718
-19925	10679	9511	0.20648099094332	0.20648099094332	-105.0358012	39.7384625	-105.0358145	39.7403194
-19926	9511	4579	0.132833459370163	0.132833459370163	-105.0358145	39.7403194	-105.0358145	39.741514
-19930	10680	10673	0.208792718350027	0.208792718350027	-105.0375666	39.7384701	-105.0375559	39.7365924
-19931	10673	7131	0.201766496696079	0.201766496696079	-105.0375559	39.7365924	-105.0375424	39.7347779
-19933	626	10681	0.1702021482017	0.1702021482017	-105.0363381	39.7365871	-105.0363564	39.7350565
-19934	5672	10665	0.0500710082270115	0.0500710082270115	-104.997538	39.7179373	-104.9969526	39.7179403
-19935	10665	7218	0.0509007134728753	0.0509007134728753	-104.9969526	39.7179403	-104.9963575	39.7179434
-19937	252	10245	0.178490785331426	0.178490785331426	-104.9994279	39.7320888	-104.9994337	39.733694
-19938	10245	7120	0.17638987203806	0.17638987203806	-104.9994337	39.733694	-104.9994256	39.7352803
-19939	7120	9641	0.177259535907282	0.177259535907282	-104.9994256	39.7352803	-104.9994122	39.7368744
-19944	10675	10682	0.203454780542957	0.203454780542957	-105.041646	39.7366287	-105.0416549	39.7384584
-19945	10682	9518	0.211007495388792	0.211007495388792	-105.0416549	39.7384584	-105.0416701	39.740356
-19946	9518	4583	0.129742461291969	0.129742461291969	-105.0416701	39.740356	-105.0416673	39.7415228
-19948	10646	7221	0.050795229275335	0.050795229275335	-104.9969581	39.7230021	-104.9963642	39.722998
-19949	7221	10672	0.0490058421037179	0.0490058421037179	-104.9963642	39.722998	-104.9957912	39.722999
-19950	10672	4950	0.0520761745786515	0.0520761745786515	-104.9957912	39.722999	-104.9951823	39.723
-19954	10414	5089	0.112638269786332	0.112638269786332	-104.992154	39.7230042	-104.990837	39.7230104
-19956	9520	10683	0.208034746403896	0.208034746403896	-105.0434189	39.740341	-105.0434219	39.7384701
-19992	10649	10664	0.050141841785608	0.050141841785608	-105.0422444	39.7384617	-105.0428308	39.738465
-19993	10664	10683	0.0505455538112256	0.0505455538112256	-105.0428308	39.738465	-105.0434219	39.7384701
-19994	10683	5590	0.0494937724947863	0.0494937724947863	-105.0434219	39.7384701	-105.0440007	39.7384751
-19995	5590	10661	0.0507309659863408	0.0507309659863408	-105.0440007	39.7384751	-105.044594	39.7384771
-19996	10661	7533	0.0505856564507496	0.0505856564507496	-105.044594	39.7384771	-105.0451856	39.7384792
-19997	7533	10689	0.686347942133366	0.686347942133366	-105.0451856	39.7384792	-105.0532125	39.7384977
-19998	8645	2200	0.0278160442123186	0.0278160442123186	-105.0040083	39.7506996	-105.0039004	39.7509356
-20003	2200	10693	0.020138493184414	0.020138493184414	-105.0039004	39.7509356	-105.0040848	39.7508229
-20004	10693	10443	0.00475150856262823	0.00475150856262823	-105.0040848	39.7508229	-105.0041255	39.7507938
-20006	8461	9621	0.0222962026291256	0.0222962026291256	-105.0049189	39.7500632	-105.0046936	39.7501642
-20007	9621	10690	0.0515741214544805	0.0515741214544805	-105.0046936	39.7501642	-105.0042718	39.7504958
-20026	9466	8724	0.0514719719174867	0.0514719719174867	-104.9603865	39.7432158	-104.9597878	39.7432643
-20027	8724	5029	0.0566937822140094	0.0566937822140094	-104.9597878	39.7432643	-104.9591698	39.7434491
-20028	5029	4595	0.0969267875718062	0.0969267875718062	-104.9591698	39.7434491	-104.9581328	39.7438013
-20030	5321	630	0.142142547339574	0.142142547339574	-104.9754804	39.7621615	-104.9743045	39.7630654
-20031	630	2908	0.116052443784823	0.116052443784823	-104.9743045	39.7630654	-104.9733498	39.7638075
-20039	10696	5549	0.959761090863438	0.959761090863438	-104.9925954	39.6807655	-104.9920738	39.6893875
-20040	5549	9172	0.201153438061066	0.201153438061066	-104.9920738	39.6893875	-104.9923108	39.6911873
-20042	140	1484	0.198676673012775	0.198676673012775	-104.9924893	39.6930233	-104.99246	39.6948099
-20043	1484	3760	0.212665318664513	0.212665318664513	-104.99246	39.6948099	-104.9918765	39.696669
-20044	3760	4181	0.394425022611864	0.394425022611864	-104.9918765	39.696669	-104.9925156	39.7001819
-20045	4181	7302	0.250045496408828	0.250045496408828	-104.9925156	39.7001819	-104.9940584	39.7020918
-20046	7302	9078	0.0121023798774685	0.0121023798774685	-104.9940584	39.7020918	-104.9941364	39.7021826
-419	418	419	0.0843359701726921	0.0843359701726921	-104.9449438	39.7443271	-104.94552	39.7449427
-20049	9127	9931	0.188027723664679	0.188027723664679	-104.9983536	39.7098782	-104.9975856	39.7082938
-20051	9189	10417	0.27289630775387	0.27289630775387	-104.9938171	39.6915486	-104.9923056	39.6893875
-20052	10417	10698	0.903351534370563	0.903351534370563	-104.9923056	39.6893875	-104.9926383	39.6812675
-20055	5803	10456	0.063915425232113	0.063915425232113	-104.9916422	39.7401229	-104.9923896	39.7401331
-20056	10456	8278	0.0463525975312068	0.0463525975312068	-104.9923896	39.7401331	-104.9929317	39.740136
-20057	8278	7582	0.0531670184257572	0.0531670184257572	-104.9929317	39.740136	-104.9935535	39.7401388
-20586	10860	10865	0.0197306093936785	0.0197306093936785	-105.02457	39.7611148	-105.024575	39.7609374
-20058	7582	10460	0.0605194201118807	0.0605194201118807	-104.9935535	39.7401388	-104.9942613	39.7401385
-20059	10460	5965	0.08096413889014	0.08096413889014	-104.9942613	39.7401385	-104.9952082	39.7401418
-20060	5965	7403	0.00793698029885246	0.00793698029885246	-104.9952082	39.7401418	-104.995301	39.7401401
-20061	7403	7216	0.100604138655543	0.100604138655543	-104.995301	39.7401401	-104.9964776	39.7401434
-20062	7216	2998	0.041051117053356	0.041051117053356	-104.9964776	39.7401434	-104.9969577	39.7401458
-20064	4930	9632	0.0194691711485179	0.0194691711485179	-104.9981378	39.7401663	-104.998365	39.7401779
-20066	8788	8794	0.107030125953622	0.107030125953622	-104.9835778	39.7400469	-104.9823264	39.7400238
-20067	8794	8875	0.105785558321332	0.105785558321332	-104.9823264	39.7400238	-104.9810892	39.7400264
-20068	8875	7355	0.0541942506273543	0.0541942506273543	-104.9810892	39.7400264	-104.9804554	39.7400222
-20069	7355	8881	0.0482515848497253	0.0482515848497253	-104.9804554	39.7400222	-104.9798911	39.7400184
-20070	8881	7128	0.0482774346717123	0.0482774346717123	-104.9798911	39.7400184	-104.9793265	39.7400224
-20071	7128	9311	0.0491067830497851	0.0491067830497851	-104.9793265	39.7400224	-104.9787522	39.7400264
-20072	9311	9658	0.100701059147573	0.100701059147573	-104.9787522	39.7400264	-104.9775745	39.740019
-20073	9658	5054	0.0949533068688616	0.0949533068688616	-104.9775745	39.740019	-104.9764641	39.7400314
-20074	5054	5041	0.0261633102483298	0.0261633102483298	-104.9764641	39.7400314	-104.9761583	39.7400231
-20075	5041	6318	0.0238469793810048	0.0238469793810048	-104.9761583	39.7400231	-104.9758794	39.7400231
-20077	8004	7999	0.0412811844037432	0.0412811844037432	-104.9752839	39.740019	-104.9748011	39.740019
-20078	7999	5161	0.00972594837361757	0.00972594837361757	-104.9748011	39.740019	-104.9746885	39.7400066
-20079	5161	976	0.0450966381773304	0.0450966381773304	-104.9746885	39.7400066	-104.9741611	39.7400028
-20080	976	9235	0.0690703393173828	0.0690703393173828	-104.9741611	39.7400028	-104.9733535	39.7400168
-20081	9235	8835	0.0284556853366966	0.0284556853366966	-104.9733535	39.7400168	-104.9730207	39.7400163
-20082	8835	7138	0.0744435936983682	0.0744435936983682	-104.9730207	39.7400163	-104.9721501	39.7400093
-20083	7138	7152	0.0242079619729824	0.0242079619729824	-104.9721501	39.7400093	-104.971867	39.7400066
-20084	7152	5018	0.0530487604133438	0.0530487604133438	-104.971867	39.7400066	-104.9712466	39.7400022
-20085	5018	5127	0.027179522018167	0.027179522018167	-104.9712466	39.7400022	-104.9709293	39.7400169
-20086	5127	5120	0.017329383802427	0.017329383802427	-104.9709293	39.7400169	-104.9707273	39.7400042
-20087	5120	9413	0.051025645765313	0.051025645765313	-104.9707273	39.7400042	-104.9701307	39.740015
-20088	9413	4720	0.0442143222009164	0.0442143222009164	-104.9701307	39.740015	-104.9696136	39.7400134
-20089	4720	6788	0.103544897956421	0.103544897956421	-104.9696136	39.7400134	-104.9684027	39.7400015
-20090	6788	7360	0.101885712989061	0.101885712989061	-104.9684027	39.7400015	-104.9672112	39.73999
-20091	7360	5420	0.104686903511504	0.104686903511504	-104.9672112	39.73999	-104.9659869	39.7399811
-20092	5420	8551	0.104297582912284	0.104297582912284	-104.9659869	39.7399811	-104.9647671	39.7399797
-20093	8551	3891	0.113854917229397	0.113854917229397	-104.9647671	39.7399797	-104.9634356	39.7399908
-20094	3891	1021	0.10275177677768	0.10275177677768	-104.9634356	39.7399908	-104.962234	39.7399776
-20095	1021	10069	0.0524825810706004	0.0524825810706004	-104.962234	39.7399776	-104.9616202	39.7399794
-20096	10069	6266	0.0519011168646154	0.0519011168646154	-104.9616202	39.7399794	-104.9610132	39.7399811
-20097	6266	8727	0.107637396904871	0.107637396904871	-104.9610132	39.7399811	-104.9597547	39.7399579
-20098	8727	5027	0.0851589615138914	0.0851589615138914	-104.9597547	39.7399579	-104.9587811	39.7401193
-20099	5027	3339	0.11913667157964	0.11913667157964	-104.9587811	39.7401193	-104.9573922	39.7402049
-20100	3339	7884	0.0947347804724537	0.0947347804724537	-104.9573922	39.7402049	-104.9562845	39.7401863
-20101	7884	7339	0.0992406279882494	0.0992406279882494	-104.9562845	39.7401863	-104.9551239	39.7401771
-20588	10840	3589	0.00659451799404467	0.00659451799404467	-105.0245771	39.760862	-105.0245881	39.7608033
-20102	7339	7978	0.0297388680985265	0.0297388680985265	-104.9551239	39.7401771	-104.9547761	39.7401752
-20103	7978	8546	0.0509861753484279	0.0509861753484279	-104.9547761	39.7401752	-104.9541798	39.7401771
-20105	2065	2068	0.0539613780445048	0.0539613780445048	-104.9536131	39.740176	-104.9529821	39.7401847
-20106	2068	2651	0.0458462130492323	0.0458462130492323	-104.9529821	39.7401847	-104.952446	39.7401771
-20107	2651	2668	0.0527824371940605	0.0527824371940605	-104.952446	39.7401771	-104.9518287	39.740174
-20108	2668	4106	0.0471315276476818	0.0471315276476818	-104.9518287	39.740174	-104.9512775	39.7401701
-20109	4106	4138	0.0531150768123695	0.0531150768123695	-104.9512775	39.7401701	-104.9506563	39.7401717
-20110	4138	6691	0.0513109258939151	0.0513109258939151	-104.9506563	39.7401717	-104.9500562	39.7401702
-20111	6691	6699	0.049849518680298	0.049849518680298	-104.9500562	39.7401702	-104.9494732	39.7401674
-20112	6699	8027	0.0540642003294053	0.0540642003294053	-104.9494732	39.7401674	-104.9488409	39.7401691
-20113	8027	8022	0.0351680439773276	0.0351680439773276	-104.9488409	39.7401691	-104.9484296	39.7401675
-20114	8022	7697	0.0642576699742132	0.0642576699742132	-104.9484296	39.7401675	-104.9476781	39.7401632
-20116	7687	3442	0.0653852338257918	0.0653852338257918	-104.9472834	39.7401592	-104.9465187	39.7401565
-20117	3442	3465	0.0302046503739114	0.0302046503739114	-104.9465187	39.7401565	-104.9461659	39.7401427
-20118	3465	10643	0.044572996690839	0.044572996690839	-104.9461659	39.7401427	-104.9456446	39.7401427
-20119	10643	6010	0.0210253210935206	0.0210253210935206	-104.9456446	39.7401427	-104.9453987	39.7401427
-20120	6010	6022	0.0302819861909932	0.0302819861909932	-104.9453987	39.7401427	-104.9450447	39.7401345
-20121	6022	3877	0.0720170103408001	0.0720170103408001	-104.9450447	39.7401345	-104.9442025	39.7401262
-20122	3877	9699	0.0188604413742797	0.0188604413742797	-104.9442025	39.7401262	-104.9439825	39.7401139
-20123	9699	862	0.0931148831029757	0.0931148831029757	-104.9439825	39.7401139	-104.9428936	39.7401262
-20124	862	7102	0.0867114852734781	0.0867114852734781	-104.9428936	39.7401262	-104.9418797	39.7401097
-20125	7102	10422	0.0971484542236891	0.0971484542236891	-104.9418797	39.7401097	-104.9407436	39.7401208
-20126	10422	8701	0.0148135271633134	0.0148135271633134	-104.9407436	39.7401208	-104.9405708	39.7401304
-20127	8701	8159	0.0903601598115808	0.0903601598115808	-104.9405708	39.7401304	-104.939514	39.7401304
-20128	8159	8147	0.0485272097981868	0.0485272097981868	-104.939514	39.7401304	-104.9389466	39.7401205
-20129	8147	7605	0.046972846594418	0.046972846594418	-104.9389466	39.7401205	-104.9383973	39.7401139
-20130	7605	7256	0.0980906813073136	0.0980906813073136	-104.9383973	39.7401139	-104.9372502	39.7401262
-20131	7256	7592	0.0949493294075893	0.0949493294075893	-104.9372502	39.7401262	-104.93614	39.7401073
-20132	7592	2011	0.0535765472330524	0.0535765472330524	-104.93614	39.7401073	-104.9355134	39.7401073
-20133	2011	9174	0.0440404642371946	0.0440404642371946	-104.9355134	39.7401073	-104.9349984	39.7401007
-20134	9174	10644	0.101018897202585	0.101018897202585	-104.9349984	39.7401007	-104.933817	39.7401097
-20135	10644	2752	0.0964161425505398	0.0964161425505398	-104.933817	39.7401097	-104.9326896	39.7401271
-12318	2500	2501	0.00534847597168918	0.00534847597168918	-105.0073403	39.7545386	-105.0073403	39.7545867
-20137	6988	7015	0.0469900401605619	0.0469900401605619	-104.9320716	39.7401271	-104.9315223	39.7401139
-20138	7015	2275	0.0506564830109395	0.0506564830109395	-104.9315223	39.7401139	-104.9309301	39.7401271
-20139	2275	8216	0.0480971521401402	0.0480971521401402	-104.9309301	39.7401271	-104.9303676	39.7401304
-20140	8216	3600	0.0492447661071067	0.0492447661071067	-104.9303676	39.7401304	-104.9297917	39.7401253
-20141	3600	8213	0.0494471155350359	0.0494471155350359	-104.9297917	39.7401253	-104.9292134	39.7401271
-20142	8213	7515	0.0477024371424333	0.0477024371424333	-104.9292134	39.7401271	-104.9286555	39.7401271
-20143	7515	7526	0.0508405166895622	0.0508405166895622	-104.9286555	39.7401271	-104.9280609	39.7401262
-20144	7526	4566	0.0460266764289813	0.0460266764289813	-104.9280609	39.7401262	-104.9275226	39.7401271
-20145	4566	2124	0.0528615774272691	0.0528615774272691	-104.9275226	39.7401271	-104.9269046	39.7401403
-20146	2124	5990	0.094672374588883	0.094672374588883	-104.9269046	39.7401403	-104.9257974	39.7401337
-20147	5990	7671	0.0990838490707958	0.0990838490707958	-104.9257974	39.7401337	-104.9246387	39.7401205
-20179	10247	9298	0.182738392624498	0.182738392624498	-104.978775	39.7272619	-104.9787693	39.7256185
-20180	9298	6549	0.169619845811395	0.169619845811395	-104.9787693	39.7256185	-104.9787573	39.7240931
-20182	4768	6330	0.178054483343927	0.178054483343927	-104.9787498	39.7224871	-104.9787889	39.7208861
-20183	6330	9308	0.0134883336553362	0.0134883336553362	-104.9787889	39.7208861	-104.9788375	39.7207707
-20148	7671	10702	3.41813541281698	3.41813541281698	-104.9246387	39.7401205	-104.8846622	39.7401611
-20149	425	10112	0.0131850564749253	0.0131850564749253	-105.0219946	39.7404498	-105.0218404	39.7404488
-20186	8247	10155	0.516700602330837	0.516700602330837	-104.963496	39.7883396	-104.9592396	39.7916405
-20187	10155	3322	0.265485774934506	0.265485774934506	-104.9592396	39.7916405	-104.9570057	39.7933001
-20188	3322	10706	0.131436234594263	0.131436234594263	-104.9570057	39.7933001	-104.956777	39.794469
-20189	10139	10705	0.06021736831636	0.06021736831636	-104.9644686	39.7876212	-104.9639599	39.787996
-20195	8510	10708	0.0176825351734809	0.0176825351734809	-104.9964255	39.7486125	-104.9962843	39.7487287
-20197	10708	8571	0.116072750239478	0.116072750239478	-104.9962843	39.7487287	-104.9953197	39.7494633
-20199	5783	8281	0.147480988666932	0.147480988666932	-104.9941411	39.7504097	-104.9929142	39.7513421
-20200	8281	8293	0.145093730312322	0.145093730312322	-104.9929142	39.7513421	-104.9917306	39.7522773
-20201	8293	7900	0.146177040292133	0.146177040292133	-104.9917306	39.7522773	-104.9905138	39.7532009
-20202	7900	8854	0.145687210047232	0.145687210047232	-104.9905138	39.7532009	-104.9893092	39.7541277
-20203	8854	9321	0.148905174298523	0.148905174298523	-104.9893092	39.7541277	-104.9880818	39.7550779
-20206	8401	5454	0.142235461954992	0.142235461954992	-104.9868716	39.7559951	-104.9857094	39.7569105
-20207	5454	8504	0.00556744232684514	0.00556744232684514	-104.9857094	39.7569105	-104.9856564	39.7569396
-20208	8504	8047	0.149428079475645	0.149428079475645	-104.9856564	39.7569396	-104.9844325	39.7578991
-20209	8047	6575	0.142472133135735	0.142472133135735	-104.9844325	39.7578991	-104.9832626	39.7588117
-20210	6575	4456	0.146389787991077	0.146389787991077	-104.9832626	39.7588117	-104.9820633	39.7597515
-20211	4456	5504	0.146266130363807	0.146266130363807	-104.9820633	39.7597515	-104.9808533	39.7606816
-20264	10722	5574	0.00764881869126048	0.00764881869126048	-105.044096	39.7739592	-105.0440065	39.7739591
-20317	10737	10730	0.156440332314784	0.156440332314784	-105.0250397	39.7599942	-105.0250776	39.7585876
-20319	10738	10739	0.00846222116823016	0.00846222116823016	-105.0235235	39.7590488	-105.0234882	39.7589777
-20570	10858	10856	0.341000703608857	0.341000703608857	-105.0190584	39.7597333	-105.0218184	39.7619476
-20572	10859	10860	0.0100014874858022	0.0100014874858022	-105.024453	39.7611158	-105.02457	39.7611148
-20784	10945	10292	0.00633905697400916	0.00633905697400916	-105.0279522	39.7613862	-105.0280151	39.7614164
-321	153	154	0.039197729386179	0.039197729386179	-104.9572293	39.7448211	-104.9570001	39.7445158
-18675	1570	2751	0.10523982327052	0.10523982327052	-105.0399911	39.7245463	-105.0400126	39.7254926
-20591	10795	10802	0.0763744143850755	0.0763744143850755	-105.0227368	39.7610963	-105.0218433	39.761098
-20216	632	6405	0.146056665643101	0.146056665643101	-104.976027	39.7644195	-104.9748213	39.7653503
-20217	6405	4277	0.144766275996567	0.144766275996567	-104.9748213	39.7653503	-104.9736331	39.7662781
-20218	4277	2913	0.0337236702585465	0.0337236702585465	-104.9736331	39.7662781	-104.9733488	39.7664884
-20250	9384	8111	0.200921327710714	0.200921327710714	-105.0451339	39.7765688	-105.0451206	39.7783757
-20251	8111	10328	0.204798818746646	0.204798818746646	-105.0451206	39.7783757	-105.045121	39.7802175
-\.
diff --git a/src/bd_astar/test/bd_astar-any-01.result b/src/bd_astar/test/bd_astar-any-01.result
deleted file mode 100644
index f3dfc90..0000000
--- a/src/bd_astar/test/bd_astar-any-01.result
+++ /dev/null
@@ -1,101 +0,0 @@
-0|5700|20787|0.006774
-1|10932|20756|0.040876
-2|10931|20797|0.002564
-3|7661|20796|0.002581
-4|10943|20776|0.040800
-5|10941|20772|0.005720
-6|3415|20771|0.007463
-7|10940|20841|0.187594
-8|10952|20812|0.005045
-9|7034|20811|0.004532
-10|10951|20833|0.177477
-11|10944|20779|0.008539
-12|8910|20778|0.006447
-13|10929|20835|0.071114
-14|10948|20794|0.013276
-15|8908|12990|0.013157
-16|8325|13831|0.009169
-17|3753|13830|0.196045
-18|6774|13829|0.032840
-19|8304|13828|0.117213
-20|9205|13827|0.010639
-21|8994|13165|0.012931
-22|8977|13164|0.008029
-23|8976|13163|0.069895
-24|8993|13162|0.009638
-25|8351|13161|0.099016
-26|8992|13160|0.187353
-27|8991|13159|0.018649
-28|2962|13158|0.071931
-29|1285|13157|0.118340
-30|8989|13156|0.006317
-31|8988|13155|0.079185
-32|21|13154|0.057101
-33|6436|13153|0.083288
-34|637|13152|0.099744
-35|8987|13151|0.057786
-36|398|13150|0.120005
-37|8496|13149|0.069498
-38|8986|13148|0.014323
-39|8985|13167|0.070884
-40|8451|11869|0.006925
-41|476|11868|0.196533
-42|529|11867|0.005677
-43|8450|11871|0.118857
-44|8452|11878|0.083250
-45|8455|11880|0.048821
-46|8456|11883|0.064572
-47|1807|11882|0.101185
-48|8457|11894|0.046805
-49|8465|15481|0.180992
-50|8522|15480|0.016198
-51|9621|15479|0.209882
-52|2808|15478|0.019312
-53|8311|15477|0.113487
-54|8583|16981|0.045667
-55|10046|16982|0.022635
-56|8467|16983|0.022924
-57|9624|15487|0.034042
-58|8468|11899|0.018103
-59|3170|19357|0.047698
-60|9949|19358|0.059093
-61|10479|19359|0.051651
-62|9948|19360|0.051709
-63|8509|19374|0.106794
-64|9595|19375|0.102428
-65|8634|19376|0.107643
-66|10174|19377|0.096140
-67|10482|19378|0.009782
-68|9194|19379|0.102702
-69|4397|19380|0.108243
-70|3002|19381|0.098919
-71|10484|19382|0.006171
-72|5962|19383|0.005429
-73|10485|19384|0.047276
-74|10459|19385|0.052864
-75|7579|19386|0.052378
-76|10455|19387|0.052414
-77|5805|19388|0.081956
-78|10462|19389|0.016974
-79|8768|12598|0.059630
-80|8767|19290|0.117748
-81|10470|19289|0.065769
-82|10469|19288|0.066230
-83|10468|19287|0.111281
-84|9967|16642|0.029056
-85|9956|16621|0.014614
-86|9938|16626|0.007036
-87|9960|16649|0.081206
-88|9968|16650|0.012230
-89|9969|16647|0.012368
-90|5457|6266|0.055134
-91|5458|6267|0.053860
-92|5459|6268|0.109859
-93|5460|6269|0.104952
-94|5461|6270|0.053766
-95|5462|6271|0.046800
-96|5463|12897|0.170300
-97|8880|15060|0.049014
-98|7101|15059|0.047811
-99|9313|15058|0.044674
-100|6733|-1|0.000000
diff --git a/src/bd_astar/test/bd_astar-any-01.test.sql b/src/bd_astar/test/bd_astar-any-01.test.sql
deleted file mode 100644
index 6d9a455..0000000
--- a/src/bd_astar/test/bd_astar-any-01.test.sql
+++ /dev/null
@@ -1,23 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-select (r).seq, (r).id1, (r).id2, round((r).cost::numeric, 6) from ( select pgr_bdastar('select * from bdaways'::text, 5700, 6733, true, true) as r ) as foo;
diff --git a/src/bd_astar/test/bd_astar-any-02.result b/src/bd_astar/test/bd_astar-any-02.result
deleted file mode 100644
index 16cfcae..0000000
--- a/src/bd_astar/test/bd_astar-any-02.result
+++ /dev/null
@@ -1,60 +0,0 @@
-0|6585|17975|0.200230
-1|5367|17976|0.155428
-2|7125|17977|0.178581
-3|613|17978|0.175712
-4|10025|17979|0.173776
-5|5802|6758|0.013489
-6|5803|6759|0.065176
-7|5804|6760|0.008679
-8|5805|6761|0.145097
-9|5806|6762|0.146807
-10|5807|6763|0.097186
-11|5808|6764|0.050569
-12|5809|20663|0.169650
-13|4620|20662|0.023243
-14|5774|20661|0.120390
-15|6482|20660|0.002769
-16|5957|20659|0.087952
-17|8289|20658|0.048701
-18|10884|20657|0.009212
-19|10883|20656|0.080500
-20|9954|20655|0.075280
-21|4390|16876|0.147691
-22|9203|17805|0.063931
-23|7892|17804|0.015429
-24|8417|17803|0.069119
-25|10171|17802|0.075825
-26|9953|17801|0.045079
-27|8859|17800|0.029389
-28|8536|17799|0.072658
-29|10180|17798|0.076558
-30|9592|17797|0.027637
-31|9318|17796|0.114755
-32|10179|17795|0.007150
-33|10178|17794|0.087467
-34|8402|17793|0.062258
-35|6179|17792|0.109483
-36|8508|17791|0.036248
-37|3305|17790|0.069816
-38|8512|17789|0.064158
-39|998|17807|0.471312
-40|2698|2743|0.102019
-41|2563|9039|0.341756
-42|2043|9040|0.587619
-43|4280|9041|0.145996
-44|2317|9042|0.268754
-45|7135|9043|0.121251
-46|4276|9044|0.145396
-47|6167|9045|0.583394
-48|7136|9046|0.043099
-49|7137|19345|0.053510
-50|10475|19344|0.015153
-51|10142|19343|0.064475
-52|10140|17566|0.135370
-53|8539|17565|0.057338
-54|10138|17558|0.064893
-55|6943|17559|0.201703
-56|8140|17560|0.469613
-57|10139|20189|0.060217
-58|10705|20185|0.055053
-59|8247|-1|0.000000
diff --git a/src/bd_astar/test/bd_astar-any-02.test.sql b/src/bd_astar/test/bd_astar-any-02.test.sql
deleted file mode 100644
index ef88680..0000000
--- a/src/bd_astar/test/bd_astar-any-02.test.sql
+++ /dev/null
@@ -1,23 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-select (r).seq, (r).id1, (r).id2, round((r).cost::numeric, 6) from ( select pgr_bdastar('select * from bdaways'::text, 6585, 8247, true, true) as r ) as foo;
diff --git a/src/bd_astar/test/bd_astar-any-03.result b/src/bd_astar/test/bd_astar-any-03.result
deleted file mode 100644
index e8ee6ec..0000000
--- a/src/bd_astar/test/bd_astar-any-03.result
+++ /dev/null
@@ -1,2 +0,0 @@
-0|9426|14822|0.060319
-1|3606|-1|0.000000
diff --git a/src/bd_astar/test/bd_astar-any-03.test.sql b/src/bd_astar/test/bd_astar-any-03.test.sql
deleted file mode 100644
index f90a660..0000000
--- a/src/bd_astar/test/bd_astar-any-03.test.sql
+++ /dev/null
@@ -1,23 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-select (r).seq, (r).id1, (r).id2, round((r).cost::numeric, 6) from ( select pgr_bdastar('select * from bdaways'::text, 9426, 3606, true, true) as r ) as foo;
diff --git a/src/bd_astar/test/bd_astar-any-04.result b/src/bd_astar/test/bd_astar-any-04.result
deleted file mode 100644
index a0cf228..0000000
--- a/src/bd_astar/test/bd_astar-any-04.result
+++ /dev/null
@@ -1,2 +0,0 @@
-0|3606|14822|0.060319
-1|9426|-1|0.000000
diff --git a/src/bd_astar/test/bd_astar-any-04.test.sql b/src/bd_astar/test/bd_astar-any-04.test.sql
deleted file mode 100644
index 275babd..0000000
--- a/src/bd_astar/test/bd_astar-any-04.test.sql
+++ /dev/null
@@ -1,23 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-select (r).seq, (r).id1, (r).id2, round((r).cost::numeric, 6) from ( select pgr_bdastar('select * from bdaways'::text, 3606, 9426, true, true) as r ) as foo;
diff --git a/src/bd_astar/test/bd_astar-any-05.result b/src/bd_astar/test/bd_astar-any-05.result
deleted file mode 100644
index 63d314b..0000000
--- a/src/bd_astar/test/bd_astar-any-05.result
+++ /dev/null
@@ -1,101 +0,0 @@
-0|6733|15058|0.044674
-1|9313|15059|0.047811
-2|7101|15060|0.049014
-3|8880|12897|0.170300
-4|5463|6271|0.046800
-5|5462|6270|0.053766
-6|5461|6269|0.104952
-7|5460|6268|0.109859
-8|5459|6267|0.053860
-9|5458|6266|0.055134
-10|5457|16647|0.012368
-11|9969|16650|0.012230
-12|9968|16649|0.081206
-13|9960|16626|0.007036
-14|9938|16621|0.014614
-15|9956|16642|0.029056
-16|9967|19287|0.111281
-17|10468|19288|0.066230
-18|10469|19289|0.065769
-19|10470|19290|0.117748
-20|8767|12598|0.059630
-21|8768|19389|0.016974
-22|10462|19388|0.081956
-23|5805|19387|0.052414
-24|10455|19386|0.052378
-25|7579|19385|0.052864
-26|10459|19384|0.047276
-27|10485|19383|0.005429
-28|5962|19382|0.006171
-29|10484|19381|0.098919
-30|3002|19380|0.108243
-31|4397|19379|0.102702
-32|9194|19378|0.009782
-33|10482|19377|0.096140
-34|10174|19376|0.107643
-35|8634|19375|0.102428
-36|9595|19374|0.106794
-37|8509|19360|0.051709
-38|9948|19359|0.051651
-39|10479|19358|0.059093
-40|9949|19357|0.047698
-41|3170|11899|0.018103
-42|8468|15487|0.034042
-43|9624|16983|0.022924
-44|8467|16982|0.022635
-45|10046|16981|0.045667
-46|8583|15477|0.113487
-47|8311|15478|0.019312
-48|2808|15479|0.209882
-49|9621|15480|0.016198
-50|8522|15481|0.180992
-51|8465|11894|0.046805
-52|8457|11882|0.101185
-53|1807|11883|0.064572
-54|8456|11880|0.048821
-55|8455|11878|0.083250
-56|8452|11871|0.118857
-57|8450|11867|0.005677
-58|529|11868|0.196533
-59|476|11869|0.006925
-60|8451|13167|0.070884
-61|8985|13148|0.014323
-62|8986|13149|0.069498
-63|8496|13150|0.120005
-64|398|13151|0.057786
-65|8987|13152|0.099744
-66|637|13153|0.083288
-67|6436|13154|0.057101
-68|21|13155|0.079185
-69|8988|13156|0.006317
-70|8989|13157|0.118340
-71|1285|13158|0.071931
-72|2962|13159|0.018649
-73|8991|13160|0.187353
-74|8992|13161|0.099016
-75|8351|13162|0.009638
-76|8993|13163|0.069895
-77|8976|13164|0.008029
-78|8977|13165|0.012931
-79|8994|13827|0.010639
-80|9205|13828|0.117213
-81|8304|13829|0.032840
-82|6774|13830|0.196045
-83|3753|13831|0.009169
-84|8325|12990|0.013157
-85|8908|20794|0.013276
-86|10948|20835|0.071114
-87|10929|20778|0.006447
-88|8910|20779|0.008539
-89|10944|20833|0.177477
-90|10951|20811|0.004532
-91|7034|20812|0.005045
-92|10952|20841|0.187594
-93|10940|20771|0.007463
-94|3415|20772|0.005720
-95|10941|20776|0.040800
-96|10943|20796|0.002581
-97|7661|20797|0.002564
-98|10931|20756|0.040876
-99|10932|20787|0.006774
-100|5700|-1|0.000000
diff --git a/src/bd_astar/test/bd_astar-any-05.test.sql b/src/bd_astar/test/bd_astar-any-05.test.sql
deleted file mode 100644
index d20162d..0000000
--- a/src/bd_astar/test/bd_astar-any-05.test.sql
+++ /dev/null
@@ -1,23 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-select (r).seq, (r).id1, (r).id2, round((r).cost::numeric, 6) from ( select pgr_bdastar('select * from bdaways'::text, 6733, 5700, true, true) as r ) as foo;
diff --git a/src/bd_astar/test/bd_astar-any-06.result b/src/bd_astar/test/bd_astar-any-06.result
deleted file mode 100644
index 6585a35..0000000
--- a/src/bd_astar/test/bd_astar-any-06.result
+++ /dev/null
@@ -1,60 +0,0 @@
-0|8247|20185|0.055053
-1|10705|20189|0.060217
-2|10139|17560|0.469613
-3|8140|17559|0.201703
-4|6943|17558|0.064893
-5|10138|17565|0.057338
-6|8539|17566|0.135370
-7|10140|19343|0.064475
-8|10142|19344|0.015153
-9|10475|19345|0.053510
-10|7137|9046|0.043099
-11|7136|9045|0.583394
-12|6167|9044|0.145396
-13|4276|9043|0.121251
-14|7135|9042|0.268754
-15|2317|9041|0.145996
-16|4280|9040|0.587619
-17|2043|9039|0.341756
-18|2563|2743|0.102019
-19|2698|17807|0.471312
-20|998|17789|0.064158
-21|8512|17790|0.069816
-22|3305|17791|0.036248
-23|8508|17792|0.109483
-24|6179|17793|0.062258
-25|8402|17794|0.087467
-26|10178|17795|0.007150
-27|10179|17796|0.114755
-28|9318|17797|0.027637
-29|9592|17798|0.076558
-30|10180|17799|0.072658
-31|8536|17800|0.029389
-32|8859|17801|0.045079
-33|9953|17802|0.075825
-34|10171|17803|0.069119
-35|8417|17804|0.015429
-36|7892|17805|0.063931
-37|9203|16876|0.147691
-38|4390|20655|0.075280
-39|9954|20656|0.080500
-40|10883|20657|0.009212
-41|10884|20658|0.048701
-42|8289|20659|0.087952
-43|5957|20660|0.002769
-44|6482|20661|0.120390
-45|5774|20662|0.023243
-46|4620|20663|0.169650
-47|5809|6764|0.050569
-48|5808|6763|0.097186
-49|5807|6762|0.146807
-50|5806|6761|0.145097
-51|5805|6760|0.008679
-52|5804|6759|0.065176
-53|5803|6758|0.013489
-54|5802|17979|0.173776
-55|10025|17978|0.175712
-56|613|17977|0.178581
-57|7125|17976|0.155428
-58|5367|17975|0.200230
-59|6585|-1|0.000000
diff --git a/src/bd_astar/test/bd_astar-any-06.test.sql b/src/bd_astar/test/bd_astar-any-06.test.sql
deleted file mode 100644
index 07867be..0000000
--- a/src/bd_astar/test/bd_astar-any-06.test.sql
+++ /dev/null
@@ -1,23 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-select (r).seq, (r).id1, (r).id2, round((r).cost::numeric, 6) from ( select pgr_bdastar('select * from bdaways'::text, 8247, 6585, true, true) as r ) as foo;
diff --git a/src/bd_astar/test/doc-bdAstar.result b/src/bd_astar/test/doc-bdAstar.result
deleted file mode 100644
index 5f8531b..0000000
--- a/src/bd_astar/test/doc-bdAstar.result
+++ /dev/null
@@ -1,13 +0,0 @@
---q1
-0|4|3|0
-1|3|5|1
-2|6|11|1
-3|11|12|0
-4|10|-1|0
---q2
-0|4|3|1
-1|3|5|1
-2|6|8|1
-3|5|10|1
-4|10|-1|0
---q3
diff --git a/src/bd_astar/test/doc-bdAstar.test.sql b/src/bd_astar/test/doc-bdAstar.test.sql
deleted file mode 100644
index 639cf40..0000000
--- a/src/bd_astar/test/doc-bdAstar.test.sql
+++ /dev/null
@@ -1,16 +0,0 @@
-------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
---              PGR_pgr_bdAStar
-------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
-\echo --q1
-SELECT * FROM pgr_bdAStar(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, x1, y1, x2, y2
-     FROM edge_table',
-    4, 10, false, false);
-\echo --q2
-SELECT * FROM pgr_bdAStar(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, x1, y1, x2, y2, reverse_cost
-     FROM edge_table ',
-    4, 10, true, true);
-\echo --q3
diff --git a/src/bd_astar/test/pgtap/bdAstar-types-check.sql b/src/bd_astar/test/pgtap/bdAstar-types-check.sql
deleted file mode 100644
index 9c7212b..0000000
--- a/src/bd_astar/test/pgtap/bdAstar-types-check.sql
+++ /dev/null
@@ -1,198 +0,0 @@
-
-\i setup.sql
--- TESTING DOCUMNETATIONS INFORMATION
-
-SELECT plan(33);
-
--- RECEIVES 5 PARAMETERS
-
-SELECT has_function('pgr_bdastar',ARRAY['text', 'integer', 'integer', 'boolean', 'boolean']);
-SELECT function_returns('pgr_bdastar', 'setof pgr_costresult','Returns set of costResult[]');
-
-
--- CHECKING THE INNER QUERY
-
-
-
-PREPARE q1 AS
-SELECT * FROM pgr_bdastar(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, x1::FLOAT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table',
-    2, 3, true, true);
-SELECT lives_ok('q1', 'edges query accepts INTEGER & FLOAT');
-
-
-
-SELECT todo_start('issue #140 must accept ANY-INTEGER and ANY-NUMERICAL');
--- some test pass because the code is not checking
-
-SELECT lives_ok(
-    'SELECT * FROM pgr_bdastar(
-        ''SELECT id::BIGINT, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, x1::FLOAT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
-        2, 3, true, true)',
-        'id accepts BIGINT');
-SELECT lives_ok(
-    'SELECT * FROM pgr_bdastar(
-        ''SELECT id::SMALLINT, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, x1::FLOAT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
-        2, 3, true, true)',
-        'id accepts SMALLINT');
-
-SELECT lives_ok(
-    'SELECT * FROM pgr_bdastar(
-        ''SELECT id::INTEGER, source::BIGINT, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, x1::FLOAT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
-        2, 3, true, true)',
-        'source accepts BIGINT');
-SELECT lives_ok(
-    'SELECT * FROM pgr_bdastar(
-        ''SELECT id::INTEGER, source::SMALLINT, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, x1::FLOAT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
-        2, 3, true, true)',
-        'source accepts SMALLINT');
-
-SELECT lives_ok(
-    'SELECT * FROM pgr_bdastar(
-        ''SELECT id::INTEGER, source::INTEGER, target::BIGINT, cost::FLOAT, reverse_cost::FLOAT, x1::FLOAT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
-        2, 3, true, true)',
-        'target accepts BIGINT');
-SELECT lives_ok(
-    'SELECT * FROM pgr_bdastar(
-        ''SELECT id::INTEGER, source::INTEGER, target::SMALLINT, cost::FLOAT, reverse_cost::FLOAT, x1::FLOAT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
-        2, 3, true, true)',
-        'target accepts SMALLINT');
-
-SELECT lives_ok(
-    'SELECT * FROM pgr_bdastar(
-        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::BIGINT, reverse_cost::FLOAT, x1::FLOAT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
-        2, 3, true, true)',
-        'cost accepts BIGINT');
-SELECT lives_ok(
-    'SELECT * FROM pgr_bdastar(
-        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::INTEGER, reverse_cost::FLOAT, x1::FLOAT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
-        2, 3, true, true)',
-        'cost accepts INTEGER');
-SELECT lives_ok(
-    'SELECT * FROM pgr_bdastar(
-        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::SMALLINT, reverse_cost::FLOAT, x1::FLOAT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
-        2, 3, true, true)',
-        'cost accepts SMALLINT');
-SELECT lives_ok(
-    'SELECT * FROM pgr_bdastar(
-        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::REAL, reverse_cost::FLOAT, x1::FLOAT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
-        2, 3, true, true)',
-        'cost accepts REAL');
-
-SELECT lives_ok(
-    'SELECT * FROM pgr_bdastar(
-        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::BIGINT, x1::FLOAT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
-        2, 3, true, true)',
-        'reverse_cost accepts BIGINT');
-SELECT lives_ok(
-    'SELECT * FROM pgr_bdastar(
-        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::INTEGER, x1::FLOAT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
-        2, 3, true, true)',
-        'reverse_cost accepts INTEGER');
-SELECT lives_ok(
-    'SELECT * FROM pgr_bdastar(
-        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::SMALLINT, x1::FLOAT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
-        2, 3, true, true)',
-        'reverse_cost accepts SMALLINT');
-SELECT lives_ok(
-    'SELECT * FROM pgr_bdastar(
-        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::REAL, x1::FLOAT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
-        2, 3, true, true)',
-        'reverse_cost accepts REAL');
-
--- x1
-SELECT lives_ok(
-    'SELECT * FROM pgr_bdastar(
-        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, x1::BIGINT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
-        2, 3, true, true)',
-        'x1 accepts BIGINT');
-SELECT lives_ok(
-    'SELECT * FROM pgr_bdastar(
-        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, x1::INTEGER, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
-        2, 3, true, true)',
-        'x1 accepts INTEGER');
-SELECT lives_ok(
-    'SELECT * FROM pgr_bdastar(
-        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, x1::SMALLINT, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
-        2, 3, true, true)',
-        'x1 accepts SMALLINT');
-SELECT lives_ok(
-    'SELECT * FROM pgr_bdastar(
-        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, x1::REAL, y1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
-        2, 3, true, true)',
-        'x1 accepts REAL');
-
--- x2
-SELECT lives_ok(
-    'SELECT * FROM pgr_bdastar(
-        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, x2::BIGINT, y1::FLOAT, x1::FLOAT, y2::FLOAT FROM edge_table'',
-        2, 3, true, true)',
-        'x2 accepts BIGINT');
-SELECT lives_ok(
-    'SELECT * FROM pgr_bdastar(
-        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, x2::INTEGER, y1::FLOAT, x1::FLOAT, y2::FLOAT FROM edge_table'',
-        2, 3, true, true)',
-        'x2 accepts INTEGER');
-SELECT lives_ok(
-    'SELECT * FROM pgr_bdastar(
-        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, x2::SMALLINT, y1::FLOAT, x1::FLOAT, y2::FLOAT FROM edge_table'',
-        2, 3, true, true)',
-        'x2 accepts SMALLINT');
-SELECT lives_ok(
-    'SELECT * FROM pgr_bdastar(
-        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, x2::REAL, y1::FLOAT, x1::FLOAT, y2::FLOAT FROM edge_table'',
-        2, 3, true, true)',
-        'x2 accepts REAL');
-
-
--- y1
-SELECT lives_ok(
-    'SELECT * FROM pgr_bdastar(
-        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, y1::BIGINT, x1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
-        2, 3, true, true)',
-        'y1 accepts BIGINT');
-SELECT lives_ok(
-    'SELECT * FROM pgr_bdastar(
-        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, y1::INTEGER, x1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
-        2, 3, true, true)',
-        'y1 accepts INTEGER');
-SELECT lives_ok(
-    'SELECT * FROM pgr_bdastar(
-        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, y1::SMALLINT, x1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
-        2, 3, true, true)',
-        'y1 accepts SMALLINT');
-SELECT lives_ok(
-    'SELECT * FROM pgr_bdastar(
-        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, y1::REAL, x1::FLOAT, x2::FLOAT, y2::FLOAT FROM edge_table'',
-        2, 3, true, true)',
-        'y1 accepts REAL');
-
--- y2
-SELECT lives_ok(
-    'SELECT * FROM pgr_bdastar(
-        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, y2::BIGINT, y1::FLOAT, x1::FLOAT, x2::FLOAT FROM edge_table'',
-        2, 3, true, true)',
-        'y2 accepts BIGINT');
-SELECT lives_ok(
-    'SELECT * FROM pgr_bdastar(
-        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, y2::INTEGER, y1::FLOAT, x1::FLOAT, x2::FLOAT FROM edge_table'',
-        2, 3, true, true)',
-        'y2 accepts INTEGER');
-SELECT lives_ok(
-    'SELECT * FROM pgr_bdastar(
-        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, y2::SMALLINT, y1::FLOAT, x1::FLOAT, x2::FLOAT FROM edge_table'',
-        2, 3, true, true)',
-        'y2 accepts SMALLINT');
-SELECT lives_ok(
-    'SELECT * FROM pgr_bdastar(
-        ''SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost::FLOAT, reverse_cost::FLOAT, y2::REAL, y1::FLOAT, x1::FLOAT, x2::FLOAT FROM edge_table'',
-        2, 3, true, true)',
-        'y2 accepts REAL');
-
-SELECT todo_end();
-
-
-
-
-SELECT finish();
-ROLLBACK;
diff --git a/src/bd_astar/test/test.conf b/src/bd_astar/test/test.conf
deleted file mode 100644
index 5e26425..0000000
--- a/src/bd_astar/test/test.conf
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/usr/bin/perl -w
-
-%main::tests = (
-    'any' => {
-        'comment' => 'Bi-directional AStar test for any versions.',
-        'data' => ['bd_astar-any-00.data'],
-        'tests' => [qw(
-            bd_astar-any-01 
-            bd_astar-any-02 
-            bd_astar-any-03 
-            bd_astar-any-04 
-            bd_astar-any-05 
-            bd_astar-any-06
-            )],
-        'documentation' => [qw(
-            doc-bdAstar
-            )],
-        },
-#    'vpg-vpgis' => {}, # for version specific tests
-#    '8-1' => {},       # for pg 8.x and postgis 1.x
-#    '9.2-2.1' => {},   # for pg 9.2 and postgis 2.1
-);
-
-1;
diff --git a/src/bd_astar/tester/BDATester.cpp b/src/bd_astar/tester/BDATester.cpp
deleted file mode 100644
index 7fa45d9..0000000
--- a/src/bd_astar/tester/BDATester.cpp
+++ /dev/null
@@ -1,312 +0,0 @@
-/*PGR-MIT*****************************************************************
-
-* $Id$
-*
-* Project:  pgRouting bdsp and bdastar algorithms
-* Purpose:
-* Author:   Razequl Islam <ziboncsedu at gmail.com>
-*
-
-------
-MIT/X license
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-********************************************************************PGR-MIT*/
-
-#include "BiDirAStar.h"
-#include "utils.h"
-#include<math.h>
-#include<time.h>
-#include<stdio.h>
-#include<string.h>
-
-#define EPS 1e-8
-
-
-std::vector<edge_astar_t> vecEdges;
-edge_astar_t *edges;
-int edge_count, maxNode;
-char buff[1024];
-path_element_t *path;
-char *err_msg;
-int path_count;
-int kase;
-
-/*
-	This method load the edge information from a csv file and put them in the edge_t array that can be passed to the algorithm to find route
-*/
-
-void loadGraph(std::string edgeFile)
-{
-	// Open file for reading
-	freopen(edgeFile.c_str(), "rt", stdin);
-
-	edge_count = 0;
-	vecEdges.clear();
-	maxNode = -1;
-
-	// Read line by line edge info
-	while(gets(buff))
-	{
-		if(strlen(buff) == 0)
-			break;
-		edge_count++;
-
-		StringTokenizer token;
-		// tokenize using comma
-		token.parse(buff, ",");
-		std::vector<std::string> vecToken;
-		vecToken.clear();
-		token.getTokens(vecToken);
-
-		// There should be exactly 9 values: edge_id, start_node_id, end_node_id, 
-		// start_node_longitude, start_node_latitude, end_node_longitude, end_node_latitude, cost, reverse_cost
-		if(vecToken.size() < 5)
-			fprintf(stderr, "Error in %d edge\n", edge_count);
-
-		// Populate Edge_t structure
-		edge_astar_t tempEdge;
-		tempEdge.id = atoi(vecToken[0].c_str());
-		tempEdge.source = atoi(vecToken[1].c_str());
-		tempEdge.target = atoi(vecToken[2].c_str());
-		tempEdge.cost = atof(vecToken[3].c_str());
-		tempEdge.reverse_cost = atof(vecToken[4].c_str());
-		tempEdge.s_x = atof(vecToken[5].c_str());
-		tempEdge.s_y = atof(vecToken[6].c_str());
-		tempEdge.t_x = atof(vecToken[7].c_str());
-		tempEdge.t_y = atof(vecToken[8].c_str());
-
-		// Update max_node_id
-		if(tempEdge.source > maxNode)
-			maxNode = tempEdge.source;
-		if(tempEdge.target > maxNode)
-			maxNode = tempEdge.target;
-		
-		vecEdges.push_back(tempEdge);
-	}
-
-	edges = new edge_astar_t[edge_count];
-	int i;
-
-	for(i = 0; i < edge_count; i++)
-	{
-		edges[i] = vecEdges[i];
-	}
-	fclose(stdin);
-}
-/*
-	Write the route in the path file
-*/
-void write_result(std::string fileName, int res)
-{
-	int i;
-	freopen(fileName.c_str(), "wt", stdout);
-	if(res < 0)
-		printf("%s\n", err_msg);
-	else
-	{
-		for(i = 0; i < path_count; i++)
-		{
-			printf("%d\t|%d\t|%.6lf\n", path[i].vertex_id, path[i].edge_id, path[i].cost);
-		}
-	}
-	fclose(stdout);
-}
-
-/*
-	Match output with answer file and write result in the result file
-*/
-
-void match(std::string fileName1, std::string fileName2, std::string outFile, double ttime)
-{
-	// Open the first file
-	freopen(fileName1.c_str(), "rt", stdin);
-
-	// Initialization
-	std::vector<int> nodeList1;
-	nodeList1.clear();
-	double totCost1, totCost2;
-	int nid, eid;
-	double cost;
-	totCost1 = 0.0;
-	
-	// Read paths push node_id, edge_id inthe vector and update total cost
-	while(gets(buff))
-	{
-		if(sscanf(buff, "%d |%d |%lf", &nid, &eid, &cost) != 3)
-		{
-			totCost1 = -1;
-			break;
-		}
-		nodeList1.push_back(nid);
-		nodeList1.push_back(eid);
-		totCost1 += cost;
-	}
-	fclose(stdin);
-	bool flag = true;
-	// Open the second file
-	freopen(fileName2.c_str(), "rt", stdin);
-	totCost2 = 0.0;
-	int pos = 0;
-
-	// Read paths compare with previously constructed vector of node-id, edge_id and updte total cost
-	while(gets(buff))
-	{
-		if(sscanf(buff, "%d |%d |%lf", &nid, &eid, &cost) != 3)
-		{
-			totCost2 = -1;
-			break;
-		}
-		if(pos >= nodeList1.size() || nodeList1[pos] != nid)
-		{
-			flag = false;
-		}
-		pos++;
-		if(pos >= nodeList1.size() || nodeList1[pos] != eid)
-		{
-			flag = false;
-		}
-		pos++;
-		totCost2 += cost;
-	}
-	fclose(stdin);
-
-	// Open output file to write
-	freopen(outFile.c_str(), "a+", stdout);
-	printf("Case %d: ", kase);
-
-	// Both costs matches
-	if(fabs(totCost1 - totCost2) < EPS)
-	{
-		// Path also matches
-		if(flag == true)
-		{
-			printf("Perfect Match!!!\n");
-		}
-		else	// path mismatch
-		{
-			printf("Cost same, but path differs!!!\n");
-		}
-	}
-	else // Cost mispatch
-	{
-		printf("Cost differs, %s costs %lf and %s costs %lf\n", fileName1.c_str(), totCost1, fileName2.c_str(), totCost2);
-	}
-	printf("Query time: %lf sec\n\n", ttime);
-	fclose(stdout);
-}
-
-int main()
-{
-	int i;
-	double cl;
-	kase = 1;
-
-	// The final output will be written in the outFile and the initial input will be read from inFile
-	std::string outFile = "output.txt";
-	std::string inFile = "input.txt";
-
-	// Create the output file
-	FILE *fpout = fopen(outFile.c_str(), "wt");
-	fclose(fpout);
-
-	// Open the input file
-	FILE *fpin = fopen(inFile.c_str(), "rt");
-
-	// Reading each of the cases, There may be two types of cases, with 4 parameters, with 5 parameters
-	// There may also be comments that starts with #
-	while(fgets(buff, 1000, fpin))
-	{
-		// No data
-		if(strlen(buff) == 0)
-			continue;
-		// Comment
-		if(buff[0] == '#')
-			continue;
-		StringTokenizer token;
-
-		// tokeniize using space
-		token.parse(buff, " \n\r");
-		std::vector<std::string> vecToken; 
-		token.getTokens(vecToken);
-
-		int totParam = vecToken.size();
-
-		// Not enough parameters
-		if(totParam < 4)
-			continue;
-
-		// First token is the graph file name
-		std::string graphFile = vecToken[0];
-
-		// 2nd and 3rd tokens are start and end node id respectively
-		int startNode = atoi(vecToken[1].c_str());
-		int endNode = atoi(vecToken[2].c_str());
-
-		// 4th Token is the result file for this query
-		std::string pathFile = vecToken[3];
-		int ind = pathFile.length() - 1;
-		while(pathFile[ind] < 32)
-		{
-			pathFile[ind] = '\0';
-			ind--;
-		}
-
-		// Load edge information from graph file
-		loadGraph(graphFile);
-
-		// Use bidirectional AStar to get the route
-		BiDirAStar gdef;
-		cl = clock();
-		int res = gdef.bidir_astar(edges, edge_count, maxNode, startNode, endNode, &path, &path_count, &err_msg);
-		cl = clock() - cl;
-
-		// Write the route in the result file
-		write_result(pathFile, res);
-		
-		// There is an answer file
-		if(totParam > 4)
-		{
-			std::string ansFile = vecToken[4];
-			ind = ansFile.length() - 1;
-			while(ansFile[ind] < 32)
-			{
-				ansFile[ind] = '\0';
-				ind--;
-			}
-			// Match and write result in the final output file
-			match(pathFile, ansFile, outFile, cl / CLOCKS_PER_SEC);
-		}
-		else
-		{
-			// Provide information that the route is generated in path file.
-			fpout = fopen(outFile.c_str(), "a+");
-			fprintf(fpout, "Case %d: Path Written to file %s", kase, pathFile.c_str());
-			fprintf(fpout, "Query Time: %lf sec\n\n", cl / CLOCKS_PER_SEC);
-			fclose(fpout);
-		}
-		kase++;
-		free(path);
-		delete [] edges;
-	}
-	return 0;
-}
diff --git a/src/bd_astar/tester/BiDirAStar.cpp b/src/bd_astar/tester/BiDirAStar.cpp
deleted file mode 100644
index 0599933..0000000
--- a/src/bd_astar/tester/BiDirAStar.cpp
+++ /dev/null
@@ -1,511 +0,0 @@
-/*PGR-MIT*****************************************************************
-
-* $Id$
-*
-* Project:  pgRouting bdsp and bdastar algorithms
-* Purpose:
-* Author:   Razequl Islam <ziboncsedu at gmail.com>
-*
-
-------
-MIT/X license
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-********************************************************************PGR-MIT*/
-
-#include "BiDirAStar.h"
-
-BiDirAStar::BiDirAStar(void)
-{
-}
-
-BiDirAStar::~BiDirAStar(void)
-{
-}
-
-void BiDirAStar::init()
-{
-	//max_edge_id = 0;
-	//max_node_id = 0;
-	
-}
-
-/*
-	Initialization and allocation of memories.
-*/
-
-void BiDirAStar::initall(int maxNode)
-{
-	int i;
-	m_pFParent = new PARENT_PATH[maxNode + 1];
-	m_pRParent = new PARENT_PATH[maxNode + 1];
-
-	m_pFCost = new double[maxNode + 1];
-	m_pRCost = new double[maxNode + 1];
-
-	for(i = 0; i <= maxNode; i++)
-	{
-		m_pFParent[i].par_Node = -2;
-		m_pRParent[i].par_Node = -2;
-		m_pFCost[i] = INF;
-		m_pRCost[i] = INF;
-		
-	}
-	m_MinCost = INF;
-	m_MidNode = -1;
-}
-
-/*
-	Delete the allocated memories to avoid memory leak.
-*/
-
-void BiDirAStar::deleteall()
-{
-	delete [] m_pFParent;
-	delete [] m_pRParent;
-	delete [] m_pFCost;
-	delete [] m_pRCost;
-}
-
-/*
-	Get the current cost from source to the current node if direction is 1 else the cost to reach target from the current node.
-*/
-
-double BiDirAStar::getcost(int node_id, int dir)
-{
-	if(dir == 1)
-	{
-		return(m_pFCost[node_id]);
-	}
-	else
-	{
-		return(m_pRCost[node_id]);
-	}
-}
-
-
-double BiDirAStar::dist(double x1, double y1, double x2, double y2)
-{
-	double ret = fabs((x1 - x2) + fabs(y1 - y2));
-	//double ret = sqrt(x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
-	return(ret * 10);
-}
-
-/*
-	Get the heuristic cost of the node depending on dir (1 for forward search and -1 for reverse search).
-*/
-double BiDirAStar::gethcost(int node_id, int dir)
-{
-	if(dir == -1)
-	{
-		return(dist(m_vecNodeVector[node_id].xpos, m_vecNodeVector[node_id].ypos, m_vecNodeVector[m_lStartNodeId].xpos, m_vecNodeVector[m_lStartNodeId].ypos));
-	}
-	else
-	{
-		return(dist(m_vecNodeVector[node_id].xpos, m_vecNodeVector[node_id].ypos, m_vecNodeVector[m_lEndNodeId].xpos, m_vecNodeVector[m_lEndNodeId].ypos));
-	}
-}
-
-/*
-	Set the forward or reverse cost list depending on dir (1 for forward search and -1 for reverse search).
-*/
-
-
-void BiDirAStar::setcost(int node_id, int dir, double c)
-{
-	if(dir == 1)
-	{
-		m_pFCost[node_id] = c;
-	}
-	else
-	{
-		m_pRCost[node_id] = c;
-	}
-}
-
-void BiDirAStar::setparent(int node_id, int dir, int parnode, int paredge)
-{
-	if(dir == 1)
-	{
-		m_pFParent[node_id].par_Node = parnode;
-		m_pFParent[node_id].par_Edge = paredge;
-	}
-	else
-	{
-		m_pRParent[node_id].par_Node = parnode;
-		m_pRParent[node_id].par_Edge = paredge;
-	}
-}
-
-/*
-	Reconstruct path for forward search. It is like normal dijkstra. The parent array contains the parent of the current node and there is a -1 in the source.
-	So one need to recurse up to the source and then add the current node and edge to the list.
-*/
-
-void BiDirAStar::fconstruct_path(int node_id)
-{
-	if(m_pFParent[node_id].par_Node == -1)
-		return;
-	fconstruct_path(m_pFParent[node_id].par_Node);
-	path_element_t pt;
-	pt.vertex_id = m_pFParent[node_id].par_Node;
-	pt.edge_id = m_pFParent[node_id].par_Edge;
-	pt.cost = m_pFCost[node_id] - m_pFCost[m_pFParent[node_id].par_Node];
-	m_vecPath.push_back(pt);
-}
-
-/*
-	Reconstruct path for the reverse search. In this case the subsequent node is stored in the parent and the target contains a -1. So one need to add the node
-	and edge to the list and then recurse through the parent up to hitting a -1.
-*/
-
-void BiDirAStar::rconstruct_path(int node_id)
-{
-	path_element_t pt;
-	if(m_pRParent[node_id].par_Node == -1)
-	{
-		pt.vertex_id = node_id;
-		pt.edge_id = -1;
-		pt.cost = 0.0;
-		return;
-	}
-	pt.vertex_id = node_id;
-	pt.cost = m_pRCost[node_id] - m_pRCost[m_pRParent[node_id].par_Node];
-	pt.edge_id = m_pRParent[node_id].par_Edge;
-	m_vecPath.push_back(pt);
-	rconstruct_path(m_pRParent[node_id].par_Node);
-}
-
-/*
-	This is the main exploration module. The parameter dir indicates whether the exploration will be in forward or reverser direction. The reference to the corresponding
-	que is also passed as parameter que. The current node and the current costs are also available as parameter.
-*/
-
-//void BiDirAStar::explore(int cur_node, double cur_cost, int dir, std::priority_queue<PDI, std::vector<PDI>, std::greater<PDI> > &que)
-void BiDirAStar::explore(int cur_node, double cur_cost, int dir, MinHeap &que)
-{
-	int i;
-	// Number of connected edges
-	int con_edge = m_vecNodeVector[cur_node].Connected_Edges_Index.size();
-	double edge_cost;
-	for(i = 0; i < con_edge; i++)
-	{
-		int edge_index = m_vecNodeVector[cur_node].Connected_Edges_Index[i];
-		// Get the edge from the edge list.
-		GraphEdgeInfo edge = m_vecEdgeVector[edge_index];
-		// Get the connected node
-		int new_node = m_vecNodeVector[cur_node].Connected_Nodes[i];
-		int mult;
-		
-		if(edge.Direction == 0)
-			mult = 1;
-		else
-			mult = dir;
-		if(cur_node == edge.StartNode)
-		{
-			// Current node is the startnode of the edge. For forward search it should use forward cost, otherwise it should use the reverse cost,
-			// i.e. if the reverse direction is valid then this node may be visited from the end node.
-			if(dir > 0)
-				edge_cost = edge.Cost;
-			else
-				edge_cost = edge.ReverseCost;
-			// Check if the direction is valid for exploration
-			if(edge.Direction == 0 || edge_cost >= 0.0)
-			{
-				//edge_cost = edge.Cost * mult;
-				// Check if the current edge gives better result
-				if(cur_cost + edge_cost < getcost(new_node, dir))
-				{
-					// explore the node, and push it in the queue. the value in the queue will also contain the heuristic cost
-					setcost(new_node, dir, cur_cost + edge_cost);
-					setparent(new_node, dir, cur_node, edge.EdgeID);
-					que.push(std::make_pair(cur_cost + edge_cost + gethcost(new_node, dir), new_node));
-
-					// Update the minimum cost found so far.
-					if(getcost(new_node, dir) + getcost(new_node, dir * -1) < m_MinCost)
-					{
-						m_MinCost = getcost(new_node, dir) + getcost(new_node, dir * -1);
-						m_MidNode = new_node;
-					}
-				}
-			}
-		}
-		else
-		{
-			// Current node is the endnode of the edge. For forward search it should use reverse cost, otherwise it should use the forward cost,
-			// i.e. if the forward direction is valid then this node may be visited from the start node.
-			if(dir > 0)
-				edge_cost = edge.ReverseCost;
-			else
-				edge_cost = edge.Cost;
-			// Check if the direction is valid for exploration
-			if(edge.Direction == 0 || edge_cost >= 0.0)
-			{
-				//edge_cost = edge.ReverseCost * mult;
-				
-				// Check if the current edge gives better result
-				if(cur_cost + edge_cost < getcost(new_node, dir))
-				{
-					// explore the node, and push it in the queue. the value in the queue will also contain the heuristic cost
-					setcost(new_node, dir, cur_cost + edge_cost);
-					setparent(new_node, dir, cur_node, edge.EdgeID);
-					que.push(std::make_pair(cur_cost + edge_cost + gethcost(new_node, dir), new_node));
-					// Update the minimum cost found so far.
-					if(getcost(new_node, dir) + getcost(new_node, dir * -1) < m_MinCost)
-					{
-						m_MinCost = getcost(new_node, dir) + getcost(new_node, dir * -1);
-						m_MidNode = new_node;
-					}
-				}
-			}
-		}
-	}
-}
-
-/* 
-	This is the entry function that the wrappers should call. Most of the parameters are trivial. maxNode refers to Maximum
-	node id. As we run node based exploration cost, parent etc will be based on maximam node id.
-*/
-
-int BiDirAStar:: bidir_astar(edge_astar_t *edges, unsigned int edge_count, int maxNode, int start_vertex, int end_vertex,
-				path_element_t **path, int *path_count, char **err_msg)
-{
-	max_node_id = maxNode;
-	max_edge_id = -1;
-	
-	// construct the graph from the edge list, i.e. populate node and edge data structures
-	construct_graph(edges, edge_count, maxNode);
-	
-	m_lStartNodeId = start_vertex;
-	m_lEndNodeId = end_vertex;
-
-	int nodeCount = m_vecNodeVector.size();
-	
-	MinHeap fque(maxNode + 2);
-	MinHeap rque(maxNode + 2);
-	//std::priority_queue<PDI, std::vector<PDI>, std::greater<PDI> > fque;
-	//std::priority_queue<PDI, std::vector<PDI>, std::greater<PDI> > rque;
-	
-	m_vecPath.clear();
-
-	int i;
-	// Allocate memory for local storage like cost and parent holder
-	initall(maxNode);
-
-	// Initialize the forward search
-	m_pFParent[start_vertex].par_Node = -1;
-	m_pFParent[start_vertex].par_Edge = -1;
-	m_pFCost[start_vertex] = 0.0;
-	fque.push(std::make_pair(0.0, start_vertex));
-
-	// Initialize the reverse search
-	m_pRParent[end_vertex].par_Node = -1;
-	m_pRParent[end_vertex].par_Edge = -1;
-	m_pRCost[end_vertex] = 0.0;
-	rque.push(std::make_pair(0.0, end_vertex));
-
-
-	int new_node;
-	int cur_node;
-	int dir;
-/*
-	The main loop. The algorithm is as follows:
-	1. IF the sum of the current minimum of both heap is greater than so far found path, we cannot get any better, so break the loop.
-	2. IF the reverse heap minimum is lower than the forward heap minimum, explore from reverse direction.
-	3. ELSE explore from the forward directtion.
-*/
-
-	while(!fque.empty() && !rque.empty())
-	{
-		PDI fTop = fque.top();
-		PDI rTop = rque.top();
-		if(m_pFCost[fTop.second] + m_pRCost[rTop.second] > m_MinCost) //We are done, there is no path with lower cost
-			break;
-
-		if(rTop.first < fTop.first) // Explore from reverse queue
-		{
-			if(rTop.first > m_MinCost)
-				break;
-			cur_node = rTop.second;
-			int dir = -1;
-			rque.pop();
-			explore(cur_node, m_pRCost[rTop.second], dir, rque);
-		}
-		else                        // Explore from forward queue
-		{
-			if(fTop.first > m_MinCost)
-				break;
-			cur_node = fTop.second;
-			int dir = 1;
-			fque.pop();
-			explore(cur_node, m_pFCost[fTop.second], dir, fque);
-		}
-	}
-
-/*
-	Path reconstruction part. m_MidNode is the joining point where two searches meet to make a shortest path. It is updated in explore.
-	If it contains -1, then no path is found. Other wise we have a shortest path and that is reconstructed in the m_vecPath.
-*/
-
-	if(m_MidNode == -1)
-	{
-		*err_msg = (char *)"Path Not Found";
-		deleteall();
-		return -1;
-	}
-	else
-	{
-		// reconstruct path from forward search
-		fconstruct_path(m_MidNode);
-		// reconstruct path from backward search
-		rconstruct_path(m_MidNode);
-
-		// insert the last row in the path trace (having edge_id = -1 and cost = 0.0)
-		path_element_t pelement;
-		pelement.vertex_id = end_vertex;
-		pelement.edge_id = -1;
-		pelement.cost = 0.0;
-		m_vecPath.push_back(pelement);
-
-		// Transfer data path to path_element_t format and allocate memory and populate the pointer
-		*path = (path_element_t *) malloc(sizeof(path_element_t) * (m_vecPath.size() + 1));
-		*path_count = m_vecPath.size();
-
-		for(i = 0; i < *path_count; i++)
-		{
-			(*path)[i].vertex_id = m_vecPath[i].vertex_id;
-			(*path)[i].edge_id = m_vecPath[i].edge_id;
-			(*path)[i].cost = m_vecPath[i].cost;
-		}
-		
-	}
-	deleteall();
-	return 0;
-}
-
-/*
-	Populate the member variables of the class using the edge list. Basically there is a node list and an edge list. Each node contains the list of adjacent nodes and 
-	corresponding edge indices from edge list that connect this node with the adjacent nodes.
-*/
-
-bool BiDirAStar::construct_graph(edge_astar_t* edges, int edge_count, int maxNode)
-{
-	int i;
-	// Create a dummy node
-	GraphNodeInfo nodeInfo;
-	nodeInfo.Connected_Edges_Index.clear();
-	nodeInfo.Connected_Nodes.clear();
-
-	// Insert the dummy node into the node list. This acts as place holder. Also change the nodeId so that nodeId and node index in the vector are same.
-	// There may be some nodes here that does not appear in the edge list. The size of the list is up to maxNode which is equal to maximum node id.
-	for(i = 0; i <= maxNode; i++)
-	{
-		nodeInfo.NodeID = i;
-		m_vecNodeVector.push_back(nodeInfo);
-	}
-
-	// Process each edge from the edge list and update the member data structures accordingly.
-	for(i = 0; i < edge_count; i++)
-	{
-		addEdge(edges[i]);
-	}
-
-	return true;
-}
-
-/*
-	Process the edge and populate the member nodelist and edgelist. The nodelist already contains up to maxNode dummy entries with nodeId same as index. Now the
-	connectivity information needs to be updated.
-*/
-
-bool BiDirAStar::addEdge(edge_astar_t edgeIn)
-{
-	long lTest;
-	// Check if the edge is already processed.
-	Long2LongMap::iterator itMap = m_mapEdgeId2Index.find(edgeIn.id);
-	if(itMap != m_mapEdgeId2Index.end())	
-		return false;
-
-	// Create a GraphEdgeInfo using the information of the current edge
-	GraphEdgeInfo newEdge;
-	newEdge.EdgeID = edgeIn.id;
-	newEdge.EdgeIndex = m_vecEdgeVector.size();	
-	newEdge.StartNode = edgeIn.source;
-	newEdge.EndNode = edgeIn.target;
-	newEdge.Cost = edgeIn.cost;
-	newEdge.ReverseCost = edgeIn.reverse_cost;
-
-	// Set the direction. If both cost and reverse cost has positive value the edge is bidirectional and direction field is 0. If cost is positive and reverse cost
-	// negative then the edge is unidirectional with direction = 1 (goes from source to target) otherwise it is unidirectional with direction = -1 (goes from target
-	// to source). Another way of creating unidirectional edge is assigning big values in cost or reverse_cost. In that case the direction is still zero and this case
-	// is handled in the algorithm automatically.
-	if(newEdge.Cost >= 0.0 && newEdge.ReverseCost >= 0)
-	{
-		newEdge.Direction = 0;
-	}
-	else if(newEdge.Cost >= 0.0)
-	{
-		newEdge.Direction = 1;
-	}
-	else
-	{
-		newEdge.Direction = -1;
-	}
-
-	if(edgeIn.id > max_edge_id)
-	{
-		max_edge_id = edgeIn.id;
-	}
-
-	// Update max_edge_id
-	if(newEdge.StartNode > max_node_id)
-	{
-		return false;//max_node_id = newEdge.StartNode;
-	}
-	if(newEdge.EndNode > max_node_id)
-	{
-		return false;//max_node_id = newEdge.EdgeIndex;
-	}
-
-	m_vecNodeVector[newEdge.StartNode].xpos = edgeIn.s_x;
-	m_vecNodeVector[newEdge.StartNode].ypos = edgeIn.s_y;
-
-	m_vecNodeVector[newEdge.EndNode].xpos = edgeIn.t_x;
-	m_vecNodeVector[newEdge.EndNode].ypos = edgeIn.t_y;
-
-	// update connectivity information for the start node.
-	m_vecNodeVector[newEdge.StartNode].Connected_Nodes.push_back(newEdge.EndNode);
-	m_vecNodeVector[newEdge.StartNode].Connected_Edges_Index.push_back(newEdge.EdgeIndex);
-
-	// update connectivity information for the end node.
-	m_vecNodeVector[newEdge.EndNode].Connected_Nodes.push_back(newEdge.StartNode);
-	m_vecNodeVector[newEdge.EndNode].Connected_Edges_Index.push_back(newEdge.EdgeIndex);
-
-
-	
-	//Adding edge to the list
-	m_mapEdgeId2Index.insert(std::make_pair(newEdge.EdgeID, m_vecEdgeVector.size()));
-	m_vecEdgeVector.push_back(newEdge);
-
-	//
-	return true;
-}
diff --git a/src/bd_astar/tester/BiDirAStar.h b/src/bd_astar/tester/BiDirAStar.h
deleted file mode 100644
index 8060cd0..0000000
--- a/src/bd_astar/tester/BiDirAStar.h
+++ /dev/null
@@ -1,159 +0,0 @@
-/*PGR-MIT*****************************************************************
-
-* $Id$
-*
-* Project:  pgRouting bdsp and bdastar algorithms
-* Purpose:
-* Author:   Razequl Islam <ziboncsedu at gmail.com>
-*
-
-------
-MIT/X license
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-********************************************************************PGR-MIT*/
-
-#ifndef BIDIRASTAR_H
-#define BIDIRASTAR_H
-
-#include <vector>
-#include <map>
-#include <queue>
-#include <string>
-#include <stdlib.h>
-#include <iostream>
-#include <math.h>
-#include <stdio.h>
-#include <string.h>
-
-#include "MinHeap.h"
-//#include "bdastar.h"
-
-#define INF 1e15
-
-
-
-typedef std::vector<long> LongVector;
-typedef std::vector<LongVector> VectorOfLongVector;
-//typedef std::pair<int, bool> PIB;
-typedef std::pair<double, int> PDI;
-//typedef std::pair<double, std::vector<int> > PDVI;
-
-typedef struct edge 
-{
-	int id;
-	int source;
-	int target;
-	double s_x;
-	double s_y;
-	double t_x;
-	double t_y;
-	double cost;
-	double reverse_cost;
-} edge_astar_t;
-
-typedef struct path_element 
-{
-	int vertex_id;
-	int edge_id;
-	double cost;
-}path_element_t;
-
-
-typedef struct{
-	int par_Node;
-	int par_Edge;
-}PARENT_PATH;
-
-typedef struct{
-	int NodeID;
-	double xpos;
-	double ypos;
-	std::vector<int> Connected_Nodes;
-	std::vector<int> Connected_Edges_Index;
-}GraphNodeInfo;
-
-struct GraphEdgeInfo
-{
-public:
-	int EdgeID;
-	int EdgeIndex;
-	int Direction;
-	double Cost;
-	double ReverseCost;
-	int StartNode;
-	int EndNode;
-};
-
-typedef std::vector<GraphEdgeInfo> GraphEdgeVector;
-typedef std::map<long,LongVector> Long2LongVectorMap;
-typedef std::map<long,long> Long2LongMap;
-typedef std::vector<GraphNodeInfo> GraphNodeVector;
-
-
-class BiDirAStar
-{
-public:
-	BiDirAStar(void);
-	~BiDirAStar(void);
-	
-	int bidir_astar(edge_astar_t *edges, unsigned int edge_count, int maxNode, int start_vertex, int end_vertex,
-		path_element_t **path, int *path_count, char **err_msg);
-	
-
-private:
-	bool construct_graph(edge_astar_t *edges, int edge_count, int maxNode);
-	void fconstruct_path(int node_id);
-	void rconstruct_path(int node_id);
-	bool addEdge(edge_astar_t edgeIn);
-	bool connectEdge(GraphEdgeInfo& firstEdge, GraphEdgeInfo& secondEdge, bool bIsStartNodeSame);
-	void init();
-	void initall(int maxNode);
-	void deleteall();
-	//void explore(int cur_node, double cur_cost, int dir, std::priority_queue<PDI, std::vector<PDI>, std::greater<PDI> > &que);
-	void explore(int cur_node, double cur_cost, int dir, MinHeap &que);
-	double getcost(int node_id, int dir);
-	void setcost(int node_id, int dir, double c);
-	void setparent(int node_id, int dir, int parnode, int paredge);
-	double gethcost(int node_id, int dir);
-	double dist(double x1, double y1, double x2, double y2);
-
-private:
-	GraphEdgeVector m_vecEdgeVector;
-	Long2LongMap m_mapEdgeId2Index;
-	Long2LongVectorMap m_mapNodeId2Edge;
-	GraphNodeVector m_vecNodeVector;
-	int max_node_id;
-	int max_edge_id;
-	int m_lStartNodeId;
-	int m_lEndNodeId;
-
-	double m_MinCost;
-	int m_MidNode;
-	std::vector <path_element_t> m_vecPath;
-	PARENT_PATH *m_pFParent;
-	PARENT_PATH *m_pRParent;
-	double *m_pFCost;
-	double *m_pRCost;
-};
-
-#endif
diff --git a/src/bd_astar/tester/Makefile b/src/bd_astar/tester/Makefile
deleted file mode 100644
index 3f49f2b..0000000
--- a/src/bd_astar/tester/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-all: BDATester
-
-BDATester: BDATester.cpp BiDirAStar.cpp MinHeap.cpp BiDirAStar.h  MinHeap.h  utils.h
-	g++ BDATester.cpp BiDirAStar.cpp MinHeap.cpp -o BDATester
-
-clean:
-	rm -f BDATester bdd?.txt output.txt
diff --git a/src/bd_astar/tester/MinHeap.cpp b/src/bd_astar/tester/MinHeap.cpp
deleted file mode 100644
index 1288654..0000000
--- a/src/bd_astar/tester/MinHeap.cpp
+++ /dev/null
@@ -1,173 +0,0 @@
-/*PGR-MIT*****************************************************************
-
-* $Id$
-*
-* Project:  pgRouting bdsp and bdastar algorithms
-* Purpose:
-* Author:   Razequl Islam <ziboncsedu at gmail.com>
-*
-
-------
-MIT/X license
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-********************************************************************PGR-MIT*/
-
-#include "MinHeap.h"
-
-MinHeap::MinHeap(int maxNode)
-{
-	init(maxNode);
-}
-
-MinHeap::~MinHeap(void)
-{
-	reset();
-}
-
-bool MinHeap::reset(void)
-{
-	if(m_HeapTree != NULL)
-	{
-		delete [] m_HeapTree;
-		m_HeapTree = NULL;
-	}
-	if(m_Index != NULL)
-	{
-		delete [] m_Index;
-		m_Index = NULL;
-	}
-	return true;
-}
-
-bool MinHeap::init(int maxNode)
-{
-	m_HeapTree = new PDI[maxNode + 1];
-	m_Index = new int[maxNode + 1];
-	memset(m_Index, -1, sizeof(int) * (maxNode + 1));
-	m_MaxNodeID = maxNode;
-	m_CurrentSize = 0;
-	return true;
-}
-
-void MinHeap::push(PDI node)
-{
-	int nid = node.second;
-	double ncost = node.first;
-	if(m_Index[nid] != -1)
-	{
-		int pos = m_Index[nid];
-		if(ncost < m_HeapTree[pos].first)
-		{
-			m_HeapTree[pos].first = ncost;
-			shift_up(pos);
-		}
-		else
-		{
-			return;
-		}
-	}
-	else
-	{
-		m_CurrentSize++;
-		m_HeapTree[m_CurrentSize] = node;
-		m_Index[nid] = m_CurrentSize;
-		shift_up(m_CurrentSize);
-	}
-}
-
-PDI MinHeap::top(void)
-{
-	return(m_HeapTree[1]);
-}
-
-bool MinHeap::empty(void)
-{
-	if(m_CurrentSize == 0)
-		return true;
-	return false;
-}
-
-void MinHeap::pop(void)
-{
-	if(m_CurrentSize == 0)
-		return;
-	int nid = m_HeapTree[1].second;
-	m_Index[nid] = -1;
-	m_HeapTree[1] = m_HeapTree[m_CurrentSize];
-	m_Index[m_HeapTree[1].second] = 1;
-	m_CurrentSize--;
-	shift_down(1);
-}
-
-void MinHeap::shift_up(int node)
-{
-	while(node > 1)
-	{
-		int par_node = node / 2;
-		if(m_HeapTree[par_node].first <= m_HeapTree[node].first)
-		{
-			return;
-		}
-		PDI temp = m_HeapTree[par_node];
-		m_HeapTree[par_node] = m_HeapTree[node];
-		m_HeapTree[node] = temp;
-		m_Index[m_HeapTree[node].second] = node;
-		m_Index[m_HeapTree[par_node].second] = par_node;
-		node = par_node;
-	}
-	return;
-}
-
-void MinHeap::shift_down(int node)
-{
-	while(node < m_CurrentSize)
-	{
-		int left_child = node * 2;
-		int right_child = node * 2 + 1;
-		if(left_child > m_CurrentSize)
-		{
-			return;
-		}
-		int smallest = node;
-		if(m_HeapTree[left_child] < m_HeapTree[smallest])
-		{
-			smallest = left_child;
-		}
-		if(right_child <= m_CurrentSize)
-		{
-			if(m_HeapTree[right_child] < m_HeapTree[smallest])
-			{
-				smallest = right_child;
-			}
-		}
-		if(node == smallest)
-			return;
-		PDI temp = m_HeapTree[node];
-		m_HeapTree[node] = m_HeapTree[smallest];
-		m_HeapTree[smallest] = temp;
-		m_Index[m_HeapTree[node].second] = node;
-		m_Index[m_HeapTree[smallest].second] = smallest;
-		node = smallest;
-	}
-	return;
-}
diff --git a/src/bd_astar/tester/MinHeap.h b/src/bd_astar/tester/MinHeap.h
deleted file mode 100644
index 2760a3a..0000000
--- a/src/bd_astar/tester/MinHeap.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*PGR-MIT*****************************************************************
-
-* $Id$
-*
-* Project:  pgRouting bdsp and bdastar algorithms
-* Purpose:
-* Author:   Razequl Islam <ziboncsedu at gmail.com>
-*
-
-------
-MIT/X license
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-********************************************************************PGR-MIT*/
-
-#ifndef MINHEAP_H
-#define MINHEAP_H
-
-#include <string>
-#include <stdlib.h>
-#include <iostream>
-#include <map>
-#include <math.h>
-#include <string.h>
-
-typedef std::pair<double, int> PDI;
-
-class MinHeap
-{
-public:
-	MinHeap(int maxNode);
-	~MinHeap(void);
-
-	bool reset(void);
-	bool init(int maxNode);
-	void push(PDI node);
-	PDI top();
-	void pop();
-	bool empty();
-
-private:
-	void shift_up(int node);
-	void shift_down(int node);
-
-private:
-	PDI *m_HeapTree;
-	int *m_Index;
-	int m_MaxNodeID;
-	int m_CurrentSize;
-
-};
-
-#endif
diff --git a/src/bd_astar/tester/ans1.txt b/src/bd_astar/tester/ans1.txt
deleted file mode 100644
index 0434fd7..0000000
--- a/src/bd_astar/tester/ans1.txt
+++ /dev/null
@@ -1,101 +0,0 @@
-5700	|20787	|0.006774
-10932	|20756	|0.040876
-10931	|20797	|0.002564
-7661	|20796	|0.002581
-10943	|20776	|0.040800
-10941	|20772	|0.005720
-3415	|20771	|0.007463
-10940	|20841	|0.187594
-10952	|20812	|0.005045
-7034	|20811	|0.004532
-10951	|20833	|0.177477
-10944	|20779	|0.008539
-8910	|20778	|0.006447
-10929	|20835	|0.071114
-10948	|20794	|0.013276
-8908	|12990	|0.013157
-8325	|13831	|0.009169
-3753	|13830	|0.196045
-6774	|13829	|0.032840
-8304	|13828	|0.117213
-9205	|13827	|0.010639
-8994	|13165	|0.012931
-8977	|13164	|0.008029
-8976	|13163	|0.069895
-8993	|13162	|0.009638
-8351	|13161	|0.099016
-8992	|13160	|0.187353
-8991	|13159	|0.018649
-2962	|13158	|0.071931
-1285	|13157	|0.118340
-8989	|13156	|0.006317
-8988	|13155	|0.079185
-21	|13154	|0.057101
-6436	|13153	|0.083288
-637	|13152	|0.099744
-8987	|13151	|0.057786
-398	|13150	|0.120005
-8496	|13149	|0.069498
-8986	|13148	|0.014323
-8985	|13167	|0.070884
-8451	|11869	|0.006925
-476	|11868	|0.196533
-529	|11867	|0.005677
-8450	|11871	|0.118857
-8452	|11878	|0.083250
-8455	|11880	|0.048821
-8456	|11883	|0.064572
-1807	|11882	|0.101185
-8457	|11894	|0.046805
-8465	|15481	|0.180992
-8522	|15480	|0.016198
-9621	|15479	|0.209882
-2808	|15478	|0.019312
-8311	|15477	|0.113487
-8583	|16981	|0.045667
-10046	|16982	|0.022635
-8467	|16983	|0.022924
-9624	|15487	|0.034042
-8468	|11899	|0.018103
-3170	|19357	|0.047698
-9949	|19358	|0.059093
-10479	|19359	|0.051651
-9948	|19360	|0.051709
-8509	|19374	|0.106794
-9595	|19375	|0.102428
-8634	|19376	|0.107643
-10174	|19377	|0.096140
-10482	|19378	|0.009782
-9194	|19379	|0.102702
-4397	|19380	|0.108243
-3002	|19381	|0.098919
-10484	|19382	|0.006171
-5962	|19383	|0.005429
-10485	|19384	|0.047276
-10459	|19385	|0.052864
-7579	|19386	|0.052378
-10455	|19387	|0.052414
-5805	|19388	|0.081956
-10462	|19389	|0.016974
-8768	|12598	|0.059630
-8767	|19290	|0.117748
-10470	|19289	|0.065769
-10469	|19288	|0.066230
-10468	|19287	|0.111281
-9967	|16642	|0.029056
-9956	|16621	|0.014614
-9938	|16626	|0.007036
-9960	|16649	|0.081206
-9968	|16650	|0.012230
-9969	|16647	|0.012368
-5457	|6266	|0.055134
-5458	|6267	|0.053860
-5459	|6268	|0.109859
-5460	|6269	|0.104952
-5461	|6270	|0.053766
-5462	|6271	|0.046800
-5463	|12897	|0.170300
-8880	|15060	|0.049014
-7101	|15059	|0.047811
-9313	|15058	|0.044674
-6733	|-1	|0.000000
diff --git a/src/bd_astar/tester/ans2.txt b/src/bd_astar/tester/ans2.txt
deleted file mode 100644
index 60579c7..0000000
--- a/src/bd_astar/tester/ans2.txt
+++ /dev/null
@@ -1,60 +0,0 @@
-6585	|17975	|0.200230
-5367	|17976	|0.155428
-7125	|17977	|0.178581
-613	|17978	|0.175712
-10025	|17979	|0.173776
-5802	|6758	|0.013489
-5803	|6759	|0.065176
-5804	|6760	|0.008679
-5805	|6761	|0.145097
-5806	|6762	|0.146807
-5807	|6763	|0.097186
-5808	|6764	|0.050569
-5809	|20663	|0.169650
-4620	|20662	|0.023243
-5774	|20661	|0.120390
-6482	|20660	|0.002769
-5957	|20659	|0.087952
-8289	|20658	|0.048701
-10884	|20657	|0.009212
-10883	|20656	|0.080500
-9954	|20655	|0.075280
-4390	|16876	|0.147691
-9203	|17805	|0.063931
-7892	|17804	|0.015429
-8417	|17803	|0.069119
-10171	|17802	|0.075825
-9953	|17801	|0.045079
-8859	|17800	|0.029389
-8536	|17799	|0.072658
-10180	|17798	|0.076558
-9592	|17797	|0.027637
-9318	|17796	|0.114755
-10179	|17795	|0.007150
-10178	|17794	|0.087467
-8402	|17793	|0.062258
-6179	|17792	|0.109483
-8508	|17791	|0.036248
-3305	|17790	|0.069816
-8512	|17789	|0.064158
-998	|17807	|0.471312
-2698	|2743	|0.102019
-2563	|9039	|0.341756
-2043	|9040	|0.587619
-4280	|9041	|0.145996
-2317	|9042	|0.268754
-7135	|9043	|0.121251
-4276	|9044	|0.145396
-6167	|9045	|0.583394
-7136	|9046	|0.043099
-7137	|19345	|0.053510
-10475	|19344	|0.015153
-10142	|19343	|0.064475
-10140	|17566	|0.135370
-8539	|17565	|0.057338
-10138	|17558	|0.064893
-6943	|17559	|0.201703
-8140	|17560	|0.469613
-10139	|20189	|0.060217
-10705	|20185	|0.055053
-8247	|-1	|0.000000
diff --git a/src/bd_astar/tester/ans3.txt b/src/bd_astar/tester/ans3.txt
deleted file mode 100644
index c7bfec2..0000000
--- a/src/bd_astar/tester/ans3.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-9426	|14822	|0.060319
-3606	|-1	|0.000000
diff --git a/src/bd_astar/tester/ans4.txt b/src/bd_astar/tester/ans4.txt
deleted file mode 100644
index 94026f5..0000000
--- a/src/bd_astar/tester/ans4.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-3606	|14822	|0.060319
-9426	|-1	|0.000000
diff --git a/src/bd_astar/tester/ans5.txt b/src/bd_astar/tester/ans5.txt
deleted file mode 100644
index a5cdc1d..0000000
--- a/src/bd_astar/tester/ans5.txt
+++ /dev/null
@@ -1,101 +0,0 @@
-6733	|15058	|0.044674
-9313	|15059	|0.047811
-7101	|15060	|0.049014
-8880	|12897	|0.170300
-5463	|6271	|0.046800
-5462	|6270	|0.053766
-5461	|6269	|0.104952
-5460	|6268	|0.109859
-5459	|6267	|0.053860
-5458	|6266	|0.055134
-5457	|16647	|0.012368
-9969	|16650	|0.012230
-9968	|16649	|0.081206
-9960	|16626	|0.007036
-9938	|16621	|0.014614
-9956	|16642	|0.029056
-9967	|19287	|0.111281
-10468	|19288	|0.066230
-10469	|19289	|0.065769
-10470	|19290	|0.117748
-8767	|12598	|0.059630
-8768	|19389	|0.016974
-10462	|19388	|0.081956
-5805	|19387	|0.052414
-10455	|19386	|0.052378
-7579	|19385	|0.052864
-10459	|19384	|0.047276
-10485	|19383	|0.005429
-5962	|19382	|0.006171
-10484	|19381	|0.098919
-3002	|19380	|0.108243
-4397	|19379	|0.102702
-9194	|19378	|0.009782
-10482	|19377	|0.096140
-10174	|19376	|0.107643
-8634	|19375	|0.102428
-9595	|19374	|0.106794
-8509	|19360	|0.051709
-9948	|19359	|0.051651
-10479	|19358	|0.059093
-9949	|19357	|0.047698
-3170	|11899	|0.018103
-8468	|15487	|0.034042
-9624	|16983	|0.022924
-8467	|16982	|0.022635
-10046	|16981	|0.045667
-8583	|15477	|0.113487
-8311	|15478	|0.019312
-2808	|15479	|0.209882
-9621	|15480	|0.016198
-8522	|15481	|0.180992
-8465	|11894	|0.046805
-8457	|11882	|0.101185
-1807	|11883	|0.064572
-8456	|11880	|0.048821
-8455	|11878	|0.083250
-8452	|11871	|0.118857
-8450	|11867	|0.005677
-529	|11868	|0.196533
-476	|11869	|0.006925
-8451	|13167	|0.070884
-8985	|13148	|0.014323
-8986	|13149	|0.069498
-8496	|13150	|0.120005
-398	|13151	|0.057786
-8987	|13152	|0.099744
-637	|13153	|0.083288
-6436	|13154	|0.057101
-21	|13155	|0.079185
-8988	|13156	|0.006317
-8989	|13157	|0.118340
-1285	|13158	|0.071931
-2962	|13159	|0.018649
-8991	|13160	|0.187353
-8992	|13161	|0.099016
-8351	|13162	|0.009638
-8993	|13163	|0.069895
-8976	|13164	|0.008029
-8977	|13165	|0.012931
-8994	|13827	|0.010639
-9205	|13828	|0.117213
-8304	|13829	|0.032840
-6774	|13830	|0.196045
-3753	|13831	|0.009169
-8325	|12990	|0.013157
-8908	|20794	|0.013276
-10948	|20835	|0.071114
-10929	|20778	|0.006447
-8910	|20779	|0.008539
-10944	|20833	|0.177477
-10951	|20811	|0.004532
-7034	|20812	|0.005045
-10952	|20841	|0.187594
-10940	|20771	|0.007463
-3415	|20772	|0.005720
-10941	|20776	|0.040800
-10943	|20796	|0.002581
-7661	|20797	|0.002564
-10931	|20756	|0.040876
-10932	|20787	|0.006774
-5700	|-1	|0.000000
diff --git a/src/bd_astar/tester/ans6.txt b/src/bd_astar/tester/ans6.txt
deleted file mode 100644
index 046e7bc..0000000
--- a/src/bd_astar/tester/ans6.txt
+++ /dev/null
@@ -1,60 +0,0 @@
-8247	|20185	|0.055053
-10705	|20189	|0.060217
-10139	|17560	|0.469613
-8140	|17559	|0.201703
-6943	|17558	|0.064893
-10138	|17565	|0.057338
-8539	|17566	|0.135370
-10140	|19343	|0.064475
-10142	|19344	|0.015153
-10475	|19345	|0.053510
-7137	|9046	|0.043099
-7136	|9045	|0.583394
-6167	|9044	|0.145396
-4276	|9043	|0.121251
-7135	|9042	|0.268754
-2317	|9041	|0.145996
-4280	|9040	|0.587619
-2043	|9039	|0.341756
-2563	|2743	|0.102019
-2698	|17807	|0.471312
-998	|17789	|0.064158
-8512	|17790	|0.069816
-3305	|17791	|0.036248
-8508	|17792	|0.109483
-6179	|17793	|0.062258
-8402	|17794	|0.087467
-10178	|17795	|0.007150
-10179	|17796	|0.114755
-9318	|17797	|0.027637
-9592	|17798	|0.076558
-10180	|17799	|0.072658
-8536	|17800	|0.029389
-8859	|17801	|0.045079
-9953	|17802	|0.075825
-10171	|17803	|0.069119
-8417	|17804	|0.015429
-7892	|17805	|0.063931
-9203	|16876	|0.147691
-4390	|20655	|0.075280
-9954	|20656	|0.080500
-10883	|20657	|0.009212
-10884	|20658	|0.048701
-8289	|20659	|0.087952
-5957	|20660	|0.002769
-6482	|20661	|0.120390
-5774	|20662	|0.023243
-4620	|20663	|0.169650
-5809	|6764	|0.050569
-5808	|6763	|0.097186
-5807	|6762	|0.146807
-5806	|6761	|0.145097
-5805	|6760	|0.008679
-5804	|6759	|0.065176
-5803	|6758	|0.013489
-5802	|17979	|0.173776
-10025	|17978	|0.175712
-613	|17977	|0.178581
-7125	|17976	|0.155428
-5367	|17975	|0.200230
-6585	|-1	|0.000000
diff --git a/src/bd_astar/tester/input.txt b/src/bd_astar/tester/input.txt
deleted file mode 100644
index 35fb2f3..0000000
--- a/src/bd_astar/tester/input.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-ways.txt 5700 6733 bdd1.txt ans1.txt
-ways.txt 6585 8247 bdd2.txt ans2.txt
-ways.txt 9426 3606 bdd3.txt ans3.txt
-ways.txt 3606 9426 bdd4.txt ans4.txt
-ways.txt 6733 5700 bdd5.txt ans5.txt
-ways.txt 8247 6585 bdd6.txt ans6.txt
-
diff --git a/src/bd_astar/tester/utils.h b/src/bd_astar/tester/utils.h
deleted file mode 100644
index 3cc70d5..0000000
--- a/src/bd_astar/tester/utils.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifndef UTILS_H
-#define UTILS_H
-
-#include <string>
-#include <map>
-#include <vector>
-#include <queue>
-#include <iostream>
-
-
-
-
-typedef std::vector<long> LongVector;
-typedef std::vector<int> IntVector;
-typedef std::vector<double> DoubleVector;
-typedef std::vector<std::string> StringVector;
-
-
-class StringOperation
-{
-	
-public:
-	
-	static std::string TRIMWHITESPACE(std::string strInput)
-	{
-		std::string strOut = strInput;
-		std::string strWht = " \f\n\r\t\v";	
-
-		strOut.erase(0,strOut.find_first_not_of(strWht));
-		strOut.erase(strOut.find_last_not_of(strWht) + 1);
-		return strOut;
-	};
-};
-
-class StringTokenizer
-{
-public:
-	StringTokenizer()
-	{
-		reset();
-	}
-
-	void reset()
-	{
-		vecTokens.clear();
-		strInput = "";
-	}
-
-	bool parse(std::string strInput, std::string chDelim)
-	{
-		size_t iStartPos = 0;
-		while(true)	
-		{
-			size_t iPos = strInput.find(chDelim[0],iStartPos);
-			if(iPos != std::string::npos)
-			{
-				std::string strToken;
-				strToken = strInput.substr(iStartPos,iPos - iStartPos);
-				vecTokens.push_back(strToken);
-				iStartPos = iPos + 1;
-			}
-			else if(iPos == std::string::npos && strInput.length() > 0 )
-			{
-				std::string strToken;
-				strToken = strInput.substr(iStartPos, strInput.length() - iStartPos);
-				if(strToken.length() > 0)
-					vecTokens.push_back(strToken);
-				break;
-			}		
-			else 
-				break;
-
-		}		
-		return true;
-	}
-
-	size_t getTokenCount() 
-	{
-		return vecTokens.size();
-	}
-
-	bool getToken(std::string& strToken, size_t iTokenIndex)
-	{
-		long lTokenCount = vecTokens.size();
-		if(iTokenIndex < 0 || iTokenIndex < lTokenCount)
-		{
-			strToken = vecTokens[iTokenIndex];
-			return true;
-		}
-		return false;
-	}
-
-	bool getTokens(StringVector& vecTokensRef)
-	{
-		vecTokensRef = vecTokens;
-		return true;
-	}
-
-private:
-	std::string strInput;
-	StringVector vecTokens;
-	
-};
-
-#endif
diff --git a/src/bd_astar/tester/ways.txt b/src/bd_astar/tester/ways.txt
deleted file mode 100644
index 2070583..0000000
--- a/src/bd_astar/tester/ways.txt
+++ /dev/null
@@ -1,17268 +0,0 @@
-18129,10271,10265,0.407629542119694,0.407629542119694,-105.0222175,39.7910979,-105.0222149,39.787432
-14822,9426,3606,0.0603186413824967,0.0603186413824967,-105.0236131,39.7548297,-105.0243187,39.7548283
-16176,5812,7719,0.198519002375015,0.198519002375015,-104.9868503,39.6911967,-104.9868624,39.6894114
-16177,7719,9841,1.21182332618964,1.21182332618964,-104.9868624,39.6894114,-104.9869458,39.6785134
-16178,137,1482,0.199034161669709,0.199034161669709,-104.990773,39.6930188,-104.9907544,39.6948087
-16179,1482,3758,0.20606858724026,0.20606858724026,-104.9907544,39.6948087,-104.9907434,39.6966619
-16217,7903,7844,0.0651768093591436,0.0651768093591436,-105.0105038,39.7592382,-105.0110496,39.7596475
-16218,7844,6725,0.105799860394335,0.105799860394335,-105.0110496,39.7596475,-105.0111475,39.760596
-15793,2298,2322,0.00529554982932783,0.00529554982932783,-105.0218722,39.7380446,-105.0218662,39.7379972
-14854,9432,9433,0.00987428384236239,0.00987428384236239,-105.0069697,39.7566591,-105.0068808,39.7566024
-19732,4490,10638,0.0159213769578026,0.0159213769578026,-105.0052486,39.7360678,-105.0050796,39.7360077
-19734,10639,10640,0.115517684408379,0.115517684408379,-104.9689526,39.7383918,-104.9684353,39.7374321
-19736,10643,5491,0.200611432022914,0.200611432022914,-104.9456446,39.7401427,-104.9456286,39.7383386
-19737,5491,9472,0.173586542348893,0.173586542348893,-104.9456286,39.7383386,-104.9456312,39.7367775
-16211,7730,9848,1.41098736584228,1.41098736584228,-104.9786837,39.6894012,-104.9787084,39.6767119
-19766,8868,3770,0.15451665559366,0.15451665559366,-104.9434398,39.7304973,-104.9434426,39.7291077
-19767,3770,10249,0.199225315153312,0.199225315153312,-104.9434426,39.7291077,-104.9434211,39.7273161
-19769,9471,4895,0.183643472400882,0.183643472400882,-104.9445503,39.7367663,-104.9445218,39.7351149
-19770,4895,9419,0.162738965694015,0.162738965694015,-104.9445218,39.7351149,-104.944537,39.7336514
-16694,9991,9992,0.00824975577533471,0.00824975577533471,-105.0009011,39.745286,-105.0008221,39.7453286
-16253,9862,7741,0.405750287416545,0.405750287416545,-104.9552615,39.6856875,-104.9552614,39.6893365
-16254,7741,5836,0.199719306282583,0.199719306282583,-104.9552614,39.6893365,-104.9552507,39.6911326
-16255,5836,9863,0.20307644815808,0.20307644815808,-104.9552507,39.6911326,-104.9552587,39.6929589
-445,449,450,0.199450473576153,0.199450473576153,-104.9423777,39.727311,-104.942375,39.7291047
-20724,9339,9399,0.00989025456720925,0.00989025456720925,-105.0251698,39.7619441,-105.0252855,39.7619451
-20725,9399,10912,0.0075300269970097,0.0075300269970097,-105.0252855,39.7619451,-105.0253734,39.7619406
-20727,10911,9342,0.00831469236711343,0.00831469236711343,-105.0250813,39.7632958,-105.02517,39.7633265
-18403,7778,10286,0.0505898966958872,0.0505898966958872,-105.0393109,39.7554232,-105.0387191,39.7554242
-273,283,284,0.0964719650645454,0.0964719650645454,-104.9824285,39.7794055,-104.9813127,39.7792736
-275,285,286,0.0574345831683482,0.0574345831683482,-105.0375561,39.7104672,-105.0376076,39.7109822
-276,286,287,0.00381671595135443,0.00381671595135443,-105.0376076,39.7109822,-105.037589,39.710951
-277,288,286,0.0749798421316384,0.0749798421316384,-105.0384831,39.7110152,-105.0376076,39.7109822
-267,277,278,0.026080790494895,0.026080790494895,-104.9875916,39.7783304,-104.9876105,39.7785645
-19535,10550,10547,0.0727126892007364,0.0727126892007364,-104.9890324,39.7101818,-104.9890392,39.7095279
-240,247,248,0.0772679392991742,0.0772679392991742,-104.9672584,39.6865375,-104.966468,39.6862015
-242,249,250,0.0969982430766615,0.0969982430766615,-104.998368,39.698242,-104.998399,39.69737
-19500,10527,10528,0.0180139213913488,0.0180139213913488,-104.9883695,39.7068128,-104.9883708,39.7066508
-16008,9778,9779,0.0944640625920965,0.0944640625920965,-104.9996367,39.6880494,-104.9993937,39.6888781
-15463,8882,1361,0.00984596954833585,0.00984596954833585,-105.0018196,39.7432597,-105.0019226,39.7432201
-11520,658,713,0.150268576052698,0.150268576052698,-105.0299141,39.7589753,-105.0281562,39.7589668
-270,280,281,0.0978981798906238,0.0978981798906238,-104.9858487,39.7794049,-104.9847034,39.7794255
-16247,7743,5838,0.199906773104335,0.199906773104335,-104.952944,39.68933,-104.9529386,39.6911278
-505,499,500,0.0224810261782308,0.0224810261782308,-105.0019139,39.7130364,-105.0016511,39.7130338
-19508,10448,10534,0.00643702567875165,0.00643702567875165,-104.9883503,39.7088103,-104.9882751,39.7088082
-16434,9896,3281,0.0340559329983669,0.0340559329983669,-104.9713614,39.7025858,-104.9710667,39.7027917
-19458,10492,10506,0.00750267115612711,0.00750267115612711,-104.991144,39.7108499,-104.9910563,39.7108489
-16700,9995,9996,0.0459960991438913,0.0459960991438913,-105.0002467,39.7468596,-104.9999838,39.7464987
-17222,5174,8210,0.200775724104805,0.200775724104805,-104.9774882,39.7165195,-104.9774991,39.7183251
-17224,4240,7299,0.0119914556826953,0.0119914556826953,-104.9774946,39.7019203,-104.9774985,39.7020281
-345,346,347,0.130802492327731,0.130802492327731,-105.0077031,39.726667,-105.0087846,39.7258352
-347,348,349,0.135557185972568,0.135557185972568,-105.0167349,39.7741306,-105.0166897,39.7753492
-348,349,350,0.136845365159024,0.136845365159024,-105.0166897,39.7753492,-105.0166327,39.7765791
-355,357,358,0.388256388951567,0.388256388951567,-105.0040637,39.6822107,-105.0034646,39.6856718
-356,358,359,0.410677079496879,0.410677079496879,-105.0034646,39.6856718,-105.0015512,39.6890589
-18458,10297,6395,0.0910083144293941,0.0910083144293941,-105.03052,39.7468559,-105.0300459,39.7475887
-18424,8333,10290,0.150248967925867,0.150248967925867,-105.0410618,39.76212,-105.0410717,39.7607688
-18426,8331,7848,0.20002866768649,0.20002866768649,-105.0387149,39.7621204,-105.0387174,39.7603215
-16185,9843,7721,1.49406009526399,1.49406009526399,-104.9846521,39.6759732,-104.9845556,39.6894094
-18230,2552,10281,0.408042509102773,0.408042509102773,-105.0421454,39.7874345,-105.0421588,39.7911041
-568,561,562,0.0238735645312088,0.0238735645312088,-104.984845,39.7400568,-104.9848447,39.7398421
-509,503,504,0.0378269387886271,0.0378269387886271,-104.9454639,39.7487815,-104.9458317,39.7485924
-510,504,505,0.131422581642966,0.131422581642966,-104.9458317,39.7485924,-104.9471759,39.748019
-511,505,506,0.13298824931129,0.13298824931129,-104.9471759,39.748019,-104.9486568,39.747653
-512,506,507,0.0469418788297666,0.0469418788297666,-104.9486568,39.747653,-104.9492017,39.7477049
-513,507,508,0.00800396830514923,0.00800396830514923,-104.9492017,39.7477049,-104.9492875,39.7477337
-514,508,509,0.189986229051577,0.189986229051577,-104.9492875,39.7477337,-104.9514881,39.747496
-521,516,517,0.0463139600038384,0.0463139600038384,-104.968998,39.788144,-104.968456,39.788149
-12956,1507,1599,0.174395269936236,0.174395269936236,-105.0003423,39.7408556,-105.0021858,39.7415267
-19854,9521,10661,0.207011877470032,0.207011877470032,-105.04459,39.7403388,-105.044594,39.7384771
-11687,773,774,0.0194846935551434,0.0194846935551434,-105.0019256,39.7530472,-105.0018298,39.7532062
-20577,10865,10866,0.00985918265048112,0.00985918265048112,-105.024575,39.7609374,-105.0244598,39.760933
-15197,3400,9212,0.0496967641825266,0.0496967641825266,-105.0346118,39.7499915,-105.0351931,39.7499892
-3594,3445,1174,0.142771364790872,0.142771364790872,-104.9462568,39.7619224,-104.9462747,39.7632063
-3595,1174,897,0.139794356108886,0.139794356108886,-104.9462747,39.7632063,-104.9462766,39.7644635
-19561,10564,10565,0.0196154846965349,0.0196154846965349,-104.9892825,39.7091533,-104.9895118,39.7091548
-16270,6159,9867,0.121531820960243,0.121531820960243,-104.9571463,39.7006474,-104.955726,39.700668
-11805,8417,8418,0.134805848745127,0.134805848745127,-104.9873865,39.7509603,-104.986246,39.7517975
-18434,8357,10291,0.154597709113849,0.154597709113849,-105.0387283,39.763957,-105.0387163,39.7625667
-15269,8698,8458,0.108561000163296,0.108561000163296,-104.9293068,39.7060799,-104.9284834,39.705337
-16600,3169,9952,0.143650464740249,0.143650464740249,-105.0010939,39.7483839,-104.9999037,39.7492958
-971,982,983,0.153004941982632,0.153004941982632,-104.9740839,39.7304453,-104.9740784,39.7290693
-19467,10511,10512,0.0226507231527583,0.0226507231527583,-104.9902675,39.7093534,-104.9902689,39.7091497
-19468,10512,10513,0.0195038602641882,0.0195038602641882,-104.9902689,39.7091497,-104.9902701,39.7089743
-16605,9954,9955,0.0548421550272179,0.0548421550272179,-104.9873941,39.7482417,-104.98691,39.7485653
-16733,5003,10004,0.0399314883998924,0.0399314883998924,-104.9542392,39.7014907,-104.9539532,39.7012069
-16677,9979,9980,0.023537846703909,0.023537846703909,-105.0090565,39.7415049,-105.0092872,39.7413894
-15811,9714,9715,0.0297752747528411,0.0297752747528411,-105.0287669,39.734998,-105.0286408,39.7352476
-12949,1304,1330,0.0581647037716416,0.0581647037716416,-105.0024118,39.7438801,-105.0020771,39.7434247
-11964,5499,7073,0.148280923478534,0.148280923478534,-104.978687,39.7590038,-104.9774602,39.7599466
-18453,9427,4296,0.104102993198957,0.104102993198957,-105.0410753,39.7548663,-105.0410672,39.7539301
-20603,10836,10820,0.0118777812250081,0.0118777812250081,-105.0188782,39.7585174,-105.0188943,39.7586235
-20604,10820,10827,0.0109415807816948,0.0109415807816948,-105.0188943,39.7586235,-105.0188943,39.7587219
-318,326,327,0.287313248528131,0.287313248528131,-104.9969556,39.7087095,-104.9987289,39.7109039
-919,933,934,0.0476774715690845,0.0476774715690845,-104.9758289,39.7320426,-104.9752714,39.7320373
-920,934,935,0.0499176342652801,0.0499176342652801,-104.9752714,39.7320373,-104.9746877,39.7320425
-921,935,936,0.0512339711733563,0.0512339711733563,-104.9746877,39.7320425,-104.9740886,39.7320473
-12002,6577,5507,0.29282736629382,0.29282736629382,-104.9845851,39.7598337,-104.9821628,39.7616959
-2397,2072,2388,0.0939943538292093,0.0939943538292093,-104.9530584,39.7738703,-104.9519586,39.7738777
-17363,7241,3255,0.194151227318962,0.194151227318962,-104.9786816,39.7057151,-104.9786655,39.7039691
-3612,954,3458,0.174654702147255,0.174654702147255,-104.9461808,39.7320927,-104.9461745,39.7336634
-3613,3458,3459,0.161855899930502,0.161855899930502,-104.9461745,39.7336634,-104.9461795,39.735119
-3614,3459,3460,0.184505780617563,0.184505780617563,-104.9461795,39.735119,-104.9461809,39.7367783
-3615,3460,3461,0.174076203888655,0.174076203888655,-104.9461809,39.7367783,-104.9461758,39.7383438
-12954,1477,1478,0.162422090556836,0.162422090556836,-105.002429,39.7428637,-105.0010729,39.7418408
-16746,6830,10008,0.0662012224002346,0.0662012224002346,-104.9512088,39.6979166,-104.9506165,39.6975335
-19537,10551,4704,0.0179029738053875,0.0179029738053875,-104.9890395,39.7095019,-104.9890412,39.7093409
-16747,10008,3664,0.0562861796352498,0.0562861796352498,-104.9506165,39.6975335,-104.9507,39.6970314
-12008,8513,4459,0.0575373844976813,0.0575373844976813,-104.9847187,39.7610718,-104.9842417,39.7614369
-12009,4459,5508,0.146438493557302,0.146438493557302,-104.9842417,39.7614369,-104.9830521,39.7623846
-11575,1594,1595,0.149695612752929,0.149695612752929,-105.0340269,39.7566757,-105.0340012,39.7553296
-18383,8920,8960,0.0494721849144557,0.0494721849144557,-105.0258859,39.7720013,-105.0258905,39.7724462
-19652,10605,10528,0.00763160148090486,0.00763160148090486,-104.9882816,39.7066519,-104.9883708,39.7066508
-1706,1727,204,0.0785826238386085,0.0785826238386085,-105.0194505,39.690822,-105.0203689,39.690822
-11578,1595,1767,0.0524448615311058,0.0524448615311058,-105.0340012,39.7553296,-105.0346147,39.7553296
-351,353,354,0.0783794642996216,0.0783794642996216,-104.9345948,39.720897,-104.9346635,39.7201941
-16749,53,10005,0.150239248303575,0.150239248303575,-104.9519712,39.7002191,-104.9531164,39.6991948
-20036,7837,816,0.140917505829302,0.140917505829302,-104.9739674,39.7519707,-104.9739648,39.753238
-20637,10876,10878,0.031770930566573,0.031770930566573,-105.0137702,39.7627689,-105.0137749,39.7624832
-16183,1702,133,0.201630131124766,0.201630131124766,-104.9881579,39.6911836,-104.9881082,39.6929965
-16753,6829,10009,0.0465845830870589,0.0465845830870589,-104.9506246,39.6983982,-104.9506326,39.6988171
-18737,2600,1858,0.180581857071932,0.180581857071932,-105.0403183,39.7229556,-105.0403103,39.7213316
-14686,1987,2318,0.198940266900504,0.198940266900504,-104.9711608,39.7219572,-104.9711696,39.7237463
-1928,1941,1942,0.123855031305308,0.123855031305308,-104.9873753,39.7384618,-104.9888238,39.7384602
-18741,8070,7651,0.262731372814963,0.262731372814963,-105.0389316,39.730617,-105.0389317,39.7282542
-14685,1546,1987,0.20778014181537,0.20778014181537,-104.9711694,39.7200886,-104.9711608,39.7219572
-12334,8656,8657,0.0212762444700433,0.0212762444700433,-105.0073545,39.7547272,-105.0074107,39.7549136
-18873,7825,7987,0.015602795644656,0.015602795644656,-104.9875714,39.7007878,-104.9874076,39.7007261
-12352,8668,8669,0.00723037090372959,0.00723037090372959,-105.0125278,39.7524187,-105.0124521,39.7523897
-18669,9460,1818,0.156714358591483,0.156714358591483,-105.0282321,39.7288662,-105.028093,39.7274609
-18185,5799,6059,0.199739960113703,0.199739960113703,-105.0328002,39.7874226,-105.0327949,39.7856263
-18862,9131,9178,0.0368320416365925,0.0368320416365925,-105.016012,39.7307001,-105.0164243,39.7306043
-16606,9955,7890,0.148662937956551,0.148662937956551,-104.98691,39.7485653,-104.9856992,39.7495249
-12197,424,2296,0.092590985158808,0.092590985158808,-105.0237982,39.7396264,-105.0235583,39.7404384
-328,329,330,0.0301965908229701,0.0301965908229701,-104.951939,39.7453698,-104.9522566,39.7454886
-329,330,331,0.00308879550687601,0.00308879550687601,-104.9522566,39.7454886,-104.9522901,39.745499
-15797,2324,2349,0.0197202421063636,0.0197202421063636,-105.0223618,39.737766,-105.0225811,39.7377111
-16293,2377,2409,0.0804076908745063,0.0804076908745063,-104.9707298,39.6964161,-104.9698358,39.6961931
-17370,3254,7297,0.216186214827155,0.216186214827155,-104.9787191,39.7039689,-104.9786923,39.7020248
-18195,8107,9376,0.183361036437535,0.183361036437535,-105.0363465,39.77838,-105.036341,39.776731
-17371,7297,40,0.193403542976089,0.193403542976089,-104.9786923,39.7020248,-104.9786815,39.7002855
-389,391,392,0.10291889633356,0.10291889633356,-104.931634,39.702187,-104.932837,39.702182
-18880,1927,7249,0.20098536077548,0.20098536077548,-104.9611322,39.7074867,-104.9611376,39.7056792
-12842,2658,461,0.235239531220745,0.235239531220745,-104.9890044,39.7762796,-104.9888564,39.7783921
-18457,7020,10297,0.095413640203737,0.095413640203737,-105.0315108,39.746461,-105.03052,39.7468559
-14684,1545,1546,0.195783826439231,0.195783826439231,-104.9711569,39.7183279,-104.9711694,39.7200886
-16302,2721,2722,0.0283898956128369,0.0283898956128369,-104.9693989,39.6953759,-104.96971,39.6952871
-18674,1569,1570,0.17732367890712,0.17732367890712,-105.0399837,39.7229516,-105.0399911,39.7245463
-19651,10604,10605,0.00569731320684084,0.00569731320684084,-104.988215,39.7066518,-104.9882816,39.7066519
-12365,8674,8675,0.00395306971093599,0.00395306971093599,-105.011632,39.7531718,-105.0116148,39.7532048
-18885,80,7308,0.203338584644882,0.203338584644882,-104.9634174,39.7002277,-104.9634496,39.7020562
-18462,9528,9293,0.135413968590027,0.135413968590027,-105.0387229,39.7499763,-105.0387175,39.7511941
-17073,8133,10070,0.277242310734424,0.277242310734424,-104.9615993,39.7482178,-104.9615992,39.7507111
-18887,3267,7247,0.200784680682105,0.200784680682105,-104.9634713,39.7038687,-104.963471,39.7056744
-16306,2851,2852,0.0109060813984903,0.0109060813984903,-104.9722098,39.6978689,-104.972242,39.697774
-18803,8953,10352,0.0713096059986916,0.0713096059986916,-104.9925416,39.768912,-104.9919121,39.7693329
-12360,8670,8671,0.0527368404826503,0.0527368404826503,-105.0123272,39.7529475,-105.0117521,39.7531191
-19915,8054,8774,0.178101620538173,0.178101620538173,-104.9981194,39.7305074,-104.9980954,39.7289058
-19027,10418,8995,0.822032321709027,0.822032321709027,-104.9421303,39.7909863,-104.9472908,39.7847471
-16313,2929,2636,0.0522503580010493,0.0522503580010493,-104.9698519,39.6952562,-104.970433,39.6951117
-18123,10266,7936,0.0422734852594549,0.0422734852594549,-105.0106756,39.7890735,-105.0106854,39.7894536
-11696,1005,1006,0.0249036708868205,0.0249036708868205,-105.0014074,39.7532864,-105.0016257,39.7531381
-19031,9820,9825,0.141867922710985,0.141867922710985,-104.9518785,39.7803129,-104.9535187,39.7801156
-17076,828,3568,0.137092229325187,0.137092229325187,-104.9616093,39.7532223,-104.9616097,39.7544552
-20641,10879,4802,0.0562973461233787,0.0562973461233787,-105.0134384,39.762482,-105.0127798,39.7624768
-19035,9497,9495,0.0285635113459611,0.0285635113459611,-104.949868,39.7793088,-104.9496974,39.7795297
-2071,2074,2075,0.135495947312548,0.135495947312548,-104.953735,39.7545002,-104.9536922,39.7557183
-15936,9757,6254,0.229061306545615,0.229061306545615,-104.9945244,39.7005048,-104.9939504,39.6984927
-3229,3143,3144,0.198651066611581,0.198651066611581,-104.9647761,39.721983,-104.9647846,39.7237695
-3231,3145,1186,0.167106782855451,0.167106782855451,-104.9648025,39.7256,-104.9648143,39.7271028
-20275,10725,6473,0.00777253007071417,0.00777253007071417,-105.0450582,39.7746915,-105.0450583,39.7747614
-20276,6473,10726,0.00774087009692378,0.00774087009692378,-105.0450583,39.7747614,-105.0450564,39.774831
-20277,10710,5573,0.00807679050419555,0.00807679050419555,-105.0441026,39.7735162,-105.0440081,39.7735153
-16287,1363,2160,0.150908240771596,0.150908240771596,-104.9708258,39.6964243,-104.9704959,39.6950911
-18901,10379,10378,0.00446883067059111,0.00446883067059111,-105.0125991,39.750475,-105.0125479,39.7504669
-18181,6056,4071,0.17853957848987,0.17853957848987,-105.030464,39.7856261,-105.0304275,39.7840207
-16288,2160,2273,0.031688963076218,0.031688963076218,-104.9704959,39.6950911,-104.970858,39.6950312
-15792,2131,2298,0.0834787229201596,0.0834787229201596,-105.0228299,39.7378988,-105.0218722,39.7380446
-17362,1905,7241,0.196305657515643,0.196305657515643,-104.9786923,39.7074805,-104.9786816,39.7057151
-20796,10943,7661,0.00258138052005919,0.00258138052005919,-105.0351465,39.7621945,-105.0351767,39.7621945
-20797,7661,10931,0.00256438171506516,0.00256438171506516,-105.0351767,39.7621945,-105.0352067,39.7621947
-17367,3197,6112,0.203543642625323,0.203543642625323,-104.9786527,39.7111042,-104.9786441,39.7092737
-19564,10566,10567,0.0877791462313442,0.0877791462313442,-104.9897479,39.7084105,-104.9897546,39.7076211
-17839,9059,10189,0.106477983280495,0.106477983280495,-104.9784966,39.7791336,-104.9772538,39.7792023
-17124,42,4240,0.19030237977338,0.19030237977338,-104.9775311,39.7002091,-104.9774946,39.7019203
-15941,9758,9759,0.0631588158295344,0.0631588158295344,-104.9982473,39.7053729,-104.9977092,39.704984
-17151,4781,4823,0.202239291799058,0.202239291799058,-104.9751707,39.7038491,-104.9751483,39.7056678
-14110,421,3623,0.253988429085779,0.253988429085779,-104.9424633,39.7443997,-104.9448677,39.7457412
-20309,10730,10731,0.0277808040232953,0.0277808040232953,-105.0250776,39.7585876,-105.0247591,39.7586373
-19606,10584,10500,0.00674103787689334,0.00674103787689334,-104.9910734,39.7091553,-104.9911522,39.7091559
-18677,2800,2801,0.105225983369234,0.105225983369234,-105.0367483,39.7254828,-105.0367403,39.7245365
-17096,3720,3721,0.196415457175175,0.196415457175175,-104.9604079,39.7368138,-104.9604142,39.7350474
-19914,6599,8054,0.176409123849899,0.176409123849899,-104.9981408,39.7320938,-104.9981194,39.7305074
-14113,3767,3768,0.109524379066099,0.109524379066099,-104.9431585,39.7464851,-104.9443957,39.7462296
-19575,10571,10572,0.0878577106463745,0.0878577106463745,-104.98929,39.7084071,-104.9892979,39.707617
-19578,7458,10573,0.00838425457343401,0.00838425457343401,-104.9885959,39.7075353,-104.9885953,39.7076107
-13363,6192,9050,0.200728781748151,0.200728781748151,-104.9818752,39.7795506,-104.9795353,39.7793923
-18684,3608,1316,0.176123680044276,0.176123680044276,-105.036708,39.7149602,-105.0366981,39.7133763
-16406,9888,9885,0.103994018141439,0.103994018141439,-104.9706065,39.7033361,-104.9695415,39.703787
-20348,10747,10734,0.124798183375822,0.124798183375822,-105.0235111,39.7585885,-105.0220514,39.7585674
-13367,487,9053,0.0916792010447841,0.0916792010447841,-104.9845022,39.7800173,-104.985575,39.7800251
-17112,3776,3932,0.0318567386044335,0.0318567386044335,-104.9578598,39.7475843,-104.9574881,39.7475642
-18472,7703,9005,0.191779872148763,0.191779872148763,-105.0398923,39.7567045,-105.0399025,39.7549798
-13566,4,3088,0.053682748576131,0.053682748576131,-105.0151369,39.7295685,-105.0149714,39.7291028
-14690,2868,3129,0.152693011202245,0.152693011202245,-104.9712042,39.7290823,-104.9712066,39.7304555
-19632,10519,10594,0.0691883113691504,0.0691883113691504,-104.9902831,39.708118,-104.9910918,39.7081283
-16442,9898,9900,0.0593229160576478,0.0593229160576478,-104.9681189,39.6930432,-104.9688122,39.6930484
-19557,10561,10562,0.0114115661676901,0.0114115661676901,-104.9884504,39.7091486,-104.9885838,39.7091493
-17140,3200,3089,0.200962427212495,0.200962427212495,-104.976351,39.7110879,-104.9763937,39.7128949
-19588,10578,7459,0.00830641959761081,0.00830641959761081,-104.9888246,39.7076128,-104.9888252,39.7075381
-19590,10509,10579,0.0688000441577074,0.0688000441577074,-104.9902632,39.7097378,-104.9910674,39.7097471
-4371,4093,4094,0.0474398468296831,0.0474398468296831,-105.016444,39.7839662,-105.0169973,39.7839311
-14821,4531,9426,0.131844452515128,0.131844452515128,-105.0220708,39.7548328,-105.0236131,39.7548297
-20313,10734,10735,0.135778003167023,0.135778003167023,-105.0220514,39.7585674,-105.0233062,39.7593161
-16512,8896,9922,0.103245634213484,0.103245634213484,-105.0048016,39.7429839,-105.0040915,39.7422329
-19627,10592,10501,0.0068017037739497,0.0068017037739497,-104.9910751,39.7089846,-104.9911546,39.7089857
-3432,3319,3320,0.201627360859163,0.201627360859163,-104.9570312,39.7819252,-104.9569981,39.7837383
-3631,1572,3475,0.135693159195378,0.135693159195378,-104.9464121,39.7776877,-104.9464207,39.778908
-3632,3475,3476,0.119283891700122,0.119283891700122,-104.9464207,39.778908,-104.9464336,39.7799807
-3634,3211,3477,0.201273972346718,0.201273972346718,-104.9640093,39.7111011,-104.9640079,39.709291
-3635,3477,1922,0.201175175309244,0.201175175309244,-104.9640079,39.709291,-104.9639994,39.7074818
-17122,4176,3542,0.20232729922556,0.20232729922556,-104.9775098,39.6966104,-104.977531,39.6984299
-16444,9901,9902,0.179094898504736,0.179094898504736,-104.9711673,39.6931206,-104.9732597,39.6931641
-20287,9383,6472,0.201518688053588,0.201518688053588,-105.0445781,39.7765737,-105.0445755,39.7747614
-20014,8858,10180,0.0735203760297937,0.0735203760297937,-104.988003,39.7531189,-104.9873951,39.7535866
-19233,10457,10420,0.0372086096742178,0.0372086096742178,-104.991294,39.7429942,-104.9910563,39.7427139
-4657,4299,3840,0.0473685540434106,0.0473685540434106,-105.0422855,39.7539305,-105.0428396,39.7539325
-14125,3659,3925,0.129261803351535,0.129261803351535,-104.9461809,39.7460646,-104.9455321,39.7450146
-3623,3469,3470,0.140706278566204,0.140706278566204,-104.9464912,39.7544409,-104.9464883,39.7557063
-18908,10386,10387,0.0302347602157808,0.0302347602157808,-105.0126981,39.7501431,-105.0127236,39.7498719
-15943,9760,8085,0.0293664602336856,0.0293664602336856,-104.9988776,39.705053,-104.9991901,39.7049437
-18142,10269,6300,0.0570177692907992,0.0570177692907992,-105.0151755,39.7886103,-105.0158404,39.7886539
-17020,10057,10058,0.15155359133236,0.15155359133236,-105.0168578,39.7546147,-105.0171608,39.7532718
-17158,5010,5011,0.0757362739800239,0.0757362739800239,-104.9728277,39.6904527,-104.9728223,39.6911338
-16649,9960,9968,0.0812055546813917,0.0812055546813917,-104.9855516,39.7391519,-104.9849991,39.7385579
-17022,10055,10058,0.0158274438461504,0.0158274438461504,-105.0169757,39.7532749,-105.0171608,39.7532718
-20617,10793,10829,0.0486626332146345,0.0486626332146345,-105.023633,39.7596708,-105.0230688,39.7597292
-17292,7745,7192,0.403926945097788,0.403926945097788,-104.944774,39.68931,-104.9447793,39.6929426
-17953,8781,10225,0.0170107340919314,0.0170107340919314,-104.9874899,39.7236088,-104.987291,39.7236088
-17142,4509,4616,0.202021015829292,0.202021015829292,-104.9763295,39.7146995,-104.9763402,39.7165163
-14706,5161,5162,0.0515278311632085,0.0515278311632085,-104.9746885,39.7400066,-104.9746897,39.7395432
-17293,7192,8754,0.202354446551741,0.202354446551741,-104.9447793,39.6929426,-104.944769,39.6947624
-16653,9971,9972,0.0159150831985239,0.0159150831985239,-104.9875004,39.7399598,-104.9876865,39.7399625
-17955,10229,10228,0.0205875980561605,0.0205875980561605,-104.9870009,39.7240152,-104.98712,39.7238543
-16775,9905,10011,0.0628512846047373,0.0628512846047373,-104.9731684,39.7001285,-104.9726726,39.6997114
-20430,10790,10791,0.0319464035455711,0.0319464035455711,-105.0228403,39.759346,-105.0231621,39.7594921
-17144,4683,4684,0.183413882011105,0.183413882011105,-104.9751813,39.691337,-104.9751601,39.6929864
-17482,367,368,0.0073956069596753,0.0073956069596753,-104.9589982,39.7796654,-104.9589875,39.7795994
-17483,368,4274,0.0740383655738795,0.0740383655738795,-104.9589875,39.7795994,-104.9589559,39.778934
-18131,6045,4102,0.143663826029319,0.143663826029319,-105.0222109,39.785625,-105.0222318,39.7843331
-17166,3547,48,0.197940166378652,0.197940166378652,-104.9739907,39.6984301,-104.9740013,39.7002102
-17957,10231,10232,0.0468160398694911,0.0468160398694911,-104.9876908,39.725221,-104.9882382,39.7252241
-19584,10563,10576,0.0699872416467849,0.0699872416467849,-104.9888131,39.7091506,-104.9888178,39.7085212
-19587,10577,10578,0.0879343964012276,0.0879343964012276,-104.9888187,39.7084036,-104.9888246,39.7076128
-16540,7834,812,0.139228180638449,0.139228180638449,-104.9763093,39.7519986,-104.9763308,39.7532506
-20323,10742,10732,0.00891011779971553,0.00891011779971553,-105.0237259,39.7589011,-105.0237565,39.7589777
-14118,3946,4047,0.0370997345222532,0.0370997345222532,-104.9449549,39.7480018,-104.9449621,39.7476682
-20325,10743,10744,0.00292597509729593,0.00292597509729593,-105.0236223,39.7590808,-105.0235881,39.7590797
-17681,9050,9814,0.396292789359983,0.396292789359983,-104.9795353,39.7793923,-104.974902,39.7795432
-17683,10165,9814,0.392184725428778,0.392184725428778,-104.9794908,39.7794867,-104.974902,39.7795432
-17303,3516,4258,0.201418622589808,0.201418622589808,-104.9634676,39.6983891,-104.9634703,39.6965777
-17690,6173,6191,0.0979652724466413,0.0979652724466413,-104.9843627,39.779576,-104.9832163,39.7795774
-17305,8744,8715,0.198903931890441,0.198903931890441,-104.9634565,39.6947677,-104.9634793,39.692979
-19815,6602,8057,0.177734109816075,0.177734109816075,-105.0021882,39.7320975,-105.0021856,39.7304991
-20432,10754,10792,0.00161805170064806,0.00161805170064806,-105.0232175,39.7595165,-105.0232345,39.7595229
-5752,4838,5081,0.0155515271366432,0.0155515271366432,-104.9964173,39.7083799,-104.9962546,39.7083175
-14703,5104,5105,0.188886837572701,0.188886837572701,-104.973501,39.7255812,-104.9735001,39.7272799
-19833,10653,10654,0.205572346227123,0.205572346227123,-105.0399056,39.7384617,-105.0398868,39.736613
-4807,4413,4414,0.0998668735468864,0.0998668735468864,-105.0298142,39.704914,-105.0298228,39.7058121
-3650,3488,3106,0.174737901377497,0.174737901377497,-104.9293331,39.7146644,-104.9293159,39.713093
-3651,3106,3491,0.194747174928978,0.194747174928978,-104.9293159,39.713093,-104.9293114,39.7113416
-17379,5746,5747,0.00818765310677506,0.00818765310677506,-104.9676388,39.6930381,-104.9676964,39.6930969
-20468,10818,10755,0.173765546097308,0.173765546097308,-105.0193121,39.758524,-105.0213448,39.7585398
-17164,1802,4242,0.207580745712203,0.207580745712203,-104.9740336,39.6947447,-104.9740228,39.6966115
-6015,5267,5268,0.103281094663511,0.103281094663511,-104.9487209,39.7680993,-104.9475125,39.7680963
-18137,10263,10272,0.406284221439373,0.406284221439373,-105.0198897,39.7874342,-105.019885,39.791088
-17291,10085,7745,0.543012306463268,0.543012306463268,-104.9447951,39.6844266,-104.944774,39.68931
-14709,5330,4870,0.190973371939833,0.190973371939833,-104.9746992,39.7368668,-104.9746798,39.7351494
-18138,4093,6038,0.184675507720467,0.184675507720467,-105.016444,39.7839662,-105.0164173,39.7856269
-16651,9969,9970,0.100708681464822,0.100708681464822,-104.9848573,39.7385435,-104.9836795,39.7385414
-14710,4870,2220,0.162414391352976,0.162414391352976,-104.9746798,39.7351494,-104.9746915,39.7336888
-18505,6386,17,0.132879414135856,0.132879414135856,-105.0363788,39.7475676,-105.0363574,39.7463727
-14727,6220,6303,0.0511187399227223,0.0511187399227223,-104.9752801,39.7395432,-104.9758778,39.7395535
-17176,5390,5408,0.208329703574267,0.208329703574267,-104.9692808,39.6910982,-104.9693344,39.6929713
-20791,8358,10898,0.00761490800516594,0.00761490800516594,-105.039401,39.7639563,-105.0393945,39.7640246
-17146,1801,4241,0.206257539278646,0.206257539278646,-104.9751816,39.6947545,-104.9751708,39.6966094
-14731,6303,5467,0.125799145673022,0.125799145673022,-104.9758778,39.7395535,-104.97589,39.7384222
-18536,5557,10309,0.366989977501724,0.366989977501724,-105.0440105,39.7607636,-105.0483038,39.7607426
-14723,6016,5469,0.171433952660857,0.171433952660857,-104.9735459,39.7368668,-104.9735608,39.7384085
-18516,2412,10295,0.0120882825664803,0.0120882825664803,-105.041094,39.7530159,-105.041069,39.7531229
-17153,1911,4839,0.199025256937054,0.199025256937054,-104.9751493,39.7074845,-104.9751709,39.7092743
-17154,4839,3202,0.202009935716231,0.202009935716231,-104.9751709,39.7092743,-104.9751601,39.711091
-18288,6762,6873,0.146634632629247,0.146634632629247,-105.0276181,39.7698189,-105.025904,39.7697621
-20338,10735,10738,0.035049164748108,0.035049164748108,-105.0233062,39.7593161,-105.0235235,39.7590488
-18690,5770,5771,0.102556159708994,0.102556159708994,-105.0415039,39.7197378,-105.0414984,39.7188155
-20424,10785,10786,0.0731561229415083,0.0731561229415083,-105.0187626,39.7585641,-105.0188457,39.7592189
-5740,1710,5071,0.202613094112382,0.202613094112382,-105.0378737,39.6912834,-105.037844,39.6894614
-14744,2216,4866,0.159742631617364,0.159742631617364,-104.9770059,39.7337051,-104.9770059,39.7351417
-18148,6033,4087,0.198416361234407,0.198416361234407,-105.0117918,39.7856148,-105.0117891,39.7838304
-17476,4654,473,0.0704097319033273,0.0704097319033273,-105.0189639,39.7475939,-105.0185991,39.7470262
-18150,4100,6044,0.175955927487578,0.175955927487578,-105.0210503,39.7840434,-105.0210575,39.7856258
-6851,5860,5861,0.109631940187014,0.109631940187014,-105.0311875,39.7149636,-105.0324691,39.7149773
-14841,7164,7777,0.0983349446501409,0.0983349446501409,-105.0381551,39.754855,-105.0393054,39.7548506
-18242,6768,3993,0.201258062688176,0.201258062688176,-105.0275913,39.7725071,-105.029945,39.772565
-18273,6645,6666,0.202152498738845,0.202152498738845,-105.0398253,39.77838,-105.0398227,39.780198
-20386,10770,10771,0.0535943445752728,0.0535943445752728,-105.0244499,39.7607064,-105.0250699,39.7607782
-6983,5958,5959,0.149650557500517,0.149650557500517,-104.9891839,39.7447837,-104.9904219,39.7438323
-18306,3982,7041,0.200503190670894,0.200503190670894,-105.0299336,39.7678829,-105.0322795,39.7678767
-20438,10796,10797,0.0670860233753639,0.0670860233753639,-105.0226193,39.761283,-105.0218716,39.7614664
-20500,10838,10824,0.0121125751150814,0.0121125751150814,-105.0210227,39.7583868,-105.0208891,39.7583505
-14725,977,5162,0.0458445478179373,0.0458445478179373,-104.9741536,39.7395367,-104.9746897,39.7395432
-6627,5707,1851,0.181903999460801,0.181903999460801,-105.0361257,39.7196961,-105.036129,39.721332
-3671,3508,3509,0.00436333612190551,0.00436333612190551,-104.9681486,39.6983823,-104.9680976,39.6983824
-3672,3509,3510,0.046781667512879,0.046781667512879,-104.9680976,39.6983824,-104.9675508,39.6983827
-7657,3346,6356,0.257422789129267,0.257422789129267,-104.9571645,39.7728928,-104.9541524,39.7728932
-14872,3240,5733,0.139141273161543,0.139141273161543,-105.0054318,39.7718056,-105.005421,39.7730569
-18469,9138,10300,0.19595637710121,0.19595637710121,-105.0432544,39.7511117,-105.0450359,39.7522206
-18266,1691,6545,0.203809181046432,0.203809181046432,-105.039903,39.7676176,-105.039903,39.7694505
-18272,6629,6645,0.186774688365716,0.186774688365716,-105.0398199,39.7767003,-105.0398253,39.77838
-8163,6669,2301,0.106319016804013,0.106319016804013,-105.0065809,39.6967302,-105.0067097,39.6957792
-14130,9280,9279,0.186364690747119,0.186364690747119,-104.9512562,39.7473041,-104.9490944,39.7475193
-14771,2209,923,0.186974313150198,0.186974313150198,-104.9816406,39.7337091,-104.9816421,39.7320276
-18247,9377,8108,0.184107753412847,0.184107753412847,-105.0374998,39.776721,-105.0375106,39.7783767
-18704,7871,4059,0.176577842625336,0.176577842625336,-105.0426986,39.7197333,-105.0426948,39.7181453
-15923,9752,9072,0.0836347230210634,0.0836347230210634,-105.0166514,39.7287142,-105.0172266,39.7293225
-18541,7538,8363,0.0639425794382817,0.0639425794382817,-105.0449269,39.7643759,-105.0444735,39.7639185
-14134,509,9280,0.0291273215905741,0.0291273215905741,-104.9514881,39.747496,-104.9512562,39.7473041
-15926,498,9102,0.0623752088587868,0.0623752088587868,-105.0153507,39.7256437,-105.0160728,39.7255648
-11651,8350,4542,0.134464503460642,0.134464503460642,-105.0236355,39.7578502,-105.0220625,39.7578568
-18291,6752,3975,0.201306126180051,0.201306126180051,-105.0275758,39.7651202,-105.029931,39.765114
-14752,5933,6903,0.0776419963986988,0.0776419963986988,-104.9781588,39.7304487,-104.9781698,39.7297505
-15930,9755,8063,0.0157417186886108,0.0157417186886108,-105.0172761,39.7312819,-105.01746,39.7312756
-8622,3936,5625,0.097083190357132,0.097083190357132,-105.0005802,39.7765663,-105.0017162,39.7765726
-14891,9021,8103,0.0999072642817978,0.0999072642817978,-105.0324149,39.7040028,-105.0324492,39.7031047
-11386,8241,8242,0.105664996309114,0.105664996309114,-104.9455738,39.7799622,-104.9443373,39.7799663
-11647,7709,8347,0.0834163322393992,0.0834163322393992,-105.019873,39.7560486,-105.0198419,39.7552988
-12254,8618,8619,0.0216515691565663,0.0216515691565663,-105.0084208,39.7577001,-105.0083242,39.7578801
-20225,8757,10713,0.181625832679021,0.181625832679021,-104.9413115,39.694755,-104.9413101,39.6963884
-11373,437,8225,0.0125774855889878,0.0125774855889878,-105.0053491,39.7612975,-105.0052234,39.7612387
-20018,6572,4453,0.146908325275574,0.146908325275574,-104.981987,39.757826,-104.980759,39.7587503
-20512,10063,10060,0.007549583111055,0.007549583111055,-105.0192332,39.7576336,-105.0193133,39.7576622
-12048,8527,8528,0.0740401240439702,0.0740401240439702,-105.0054168,39.751192,-105.0061613,39.7515322
-14785,7957,5458,0.175576789379919,0.175576789379919,-104.9842157,39.7368542,-104.9842156,39.7384332
-12271,8518,8628,0.0787132719056346,0.0787132719056346,-105.0071312,39.7555112,-105.0077112,39.7549614
-11383,8239,8240,0.0842941433278933,0.0842941433278933,-104.9502774,39.7799784,-104.949291,39.7799729
-11370,7971,7972,0.0117965527041302,0.0117965527041302,-105.0053146,39.761583,-105.0052958,39.7614779
-11414,7984,7985,0.287379755335746,0.287379755335746,-105.0218262,39.7840053,-105.025085,39.7846442
-11432,415,8254,0.452015989776023,0.452015989776023,-105.0212787,39.7837465,-105.0159925,39.7835953
-20350,10730,2968,0.0120941619304981,0.0120941619304981,-105.0250776,39.7585876,-105.0250854,39.758479
-8748,5336,6979,0.175571360985687,0.175571360985687,-105.0408719,39.7054957,-105.0408435,39.7039169
-3691,3527,3528,0.0472108481996503,0.0472108481996503,-104.956949,39.698399,-104.9563972,39.6983957
-3692,3528,2737,0.0483230367668469,0.0483230367668469,-104.9563972,39.6983957,-104.9558324,39.6983924
-3697,3532,3533,0.0559788343200402,0.0559788343200402,-104.9827863,39.6984066,-104.982132,39.6984066
-15221,3833,8055,0.052921136155694,0.052921136155694,-105.0428186,39.7485544,-105.0428529,39.7480792
-12311,8645,8476,0.144977480276504,0.144977480276504,-105.0040083,39.7506996,-105.0028542,39.7497443
-12312,8476,8646,0.198472144343311,0.198472144343311,-105.0028542,39.7497443,-105.0012593,39.7484473
-12314,8643,8559,0.0228329493898265,0.0228329493898265,-105.0079172,39.7541523,-105.0076796,39.7542461
-20367,10748,10749,0.0037547184046713,0.0037547184046713,-105.0235917,39.7589758,-105.0236241,39.7589986
-9843,7548,7549,0.124919366653633,0.124919366653633,-105.0451568,39.7282934,-105.0451467,39.7294168
-12301,4845,8524,0.0473127526043962,0.0473127526043962,-105.0049838,39.7515411,-105.0053655,39.751233
-18331,7594,6751,0.14027973854483,0.14027973854483,-105.0259281,39.764212,-105.0275693,39.7642092
-11791,8037,2687,0.147733787935878,0.147733787935878,-104.9796416,39.7541805,-104.9808835,39.7532566
-15865,8762,8763,0.0396940145175954,0.0396940145175954,-105.0451798,39.7355292,-105.0447184,39.7355684
-20529,10029,10846,0.0100359682174695,0.0100359682174695,-105.015835,39.7583097,-105.0157176,39.7583088
-17959,6241,5194,0.169083036600962,0.169083036600962,-104.9883794,39.7256429,-104.9883782,39.7241223
-18370,6889,5250,0.0518724586298984,0.0518724586298984,-105.0259388,39.7651274,-105.0259394,39.7646609
-15225,8180,5297,0.041720314716376,0.041720314716376,-105.0389047,39.7441394,-105.039323,39.7439462
-9071,2781,7147,0.103689348353689,0.103689348353689,-104.9721138,39.7669682,-104.9721123,39.7679007
-3710,3546,1524,0.0515313284334221,0.0515313284334221,-104.9751709,39.6984277,-104.9745686,39.6984311
-20305,10728,8110,0.168482747904973,0.168482747904973,-105.0445532,39.7768578,-105.0445502,39.778373
-3711,1524,3547,0.0494425170647519,0.0494425170647519,-104.9745686,39.6984311,-104.9739907,39.6984301
-14739,6538,6607,0.183986331427456,0.183986331427456,-104.976974,39.7256103,-104.9769867,39.7272649
-11372,290,437,0.0112130207438012,0.0112130207438012,-105.0053845,39.7613946,-105.0053491,39.7612975
-18381,8535,8919,0.0499954488007408,0.0499954488007408,-105.0258888,39.7711084,-105.0258833,39.771558
-12246,8615,4817,0.146110905108578,0.146110905108578,-104.9995731,39.7508881,-104.9983798,39.7518288
-11425,8251,8078,0.7456254172446,0.7456254172446,-105.0348524,39.7834646,-105.043577,39.7835803
-12247,4817,5788,0.143910603528138,0.143910603528138,-104.9983798,39.7518288,-104.9971819,39.7527381
-12818,299,8256,0.476082599329394,0.476082599329394,-105.0099714,39.7835424,-105.0155373,39.7837344
-20410,8976,9207,0.0123297683183119,0.0123297683183119,-105.0250886,39.760233,-105.0250726,39.7601228
-12263,8621,8622,0.00671006625102598,0.00671006625102598,-105.0070186,39.7566114,-105.0070785,39.7566504
-11559,8319,7714,0.15000222129108,0.15000222129108,-105.0316875,39.7580245,-105.0316842,39.7566755
-15229,8334,8335,0.02937581800825,0.02937581800825,-104.9244842,39.6961248,-104.9241409,39.696129
-18377,6069,2549,0.201785565265125,0.201785565265125,-105.039828,39.7856193,-105.0398307,39.787434
-11447,387,8258,0.356209179582772,0.356209179582772,-105.0028212,39.783461,-104.9988487,39.78249
-11812,1881,8316,0.0255940628377938,0.0255940628377938,-105.0074729,39.746365,-105.007603,39.7465723
-14781,921,2207,0.190721648601815,0.190721648601815,-104.9828787,39.7320413,-104.9828811,39.7337565
-20233,10711,10715,0.00692211182471866,0.00692211182471866,-104.9413123,39.6937735,-104.9412314,39.693774
-20363,9209,8991,0.0223079019168015,0.0223079019168015,-105.0216966,39.7585487,-105.0214364,39.7585333
-18388,8990,9001,0.0110856339057274,0.0110856339057274,-105.0252879,39.7604305,-105.0253805,39.7605003
-20651,10033,10881,0.0461798387778834,0.0461798387778834,-105.014357,39.7669687,-105.0148973,39.7669673
-13366,9052,487,0.0981014313599177,0.0981014313599177,-104.9833542,39.7800156,-104.9845022,39.7800173
-12303,8639,8640,0.0320591977276875,0.0320591977276875,-105.0081633,39.7540481,-105.0078019,39.7541251
-20243,10716,10713,0.0141769281388351,0.0141769281388351,-104.9411444,39.6963884,-104.9413101,39.6963884
-14749,4864,2214,0.160302668775638,0.160302668775638,-104.9781817,39.7351466,-104.9781559,39.7337051
-13468,309,9094,0.0506545738820493,0.0506545738820493,-105.0183133,39.7254091,-105.0189056,39.7254091
-18336,1689,7624,0.203108569942922,0.203108569942922,-105.0387013,39.7676285,-105.0387364,39.7694549
-12937,1303,1970,0.0130832107015757,0.0130832107015757,-105.0017368,39.7441763,-105.0018024,39.7442826
-20525,10839,1286,0.00844906120646156,0.00844906120646156,-105.0206127,39.7582168,-105.020542,39.7581637
-10918,8035,5970,0.0219813767800627,0.0219813767800627,-104.9781265,39.7531137,-104.9783626,39.753192
-14913,7600,2016,0.104505986927597,0.104505986927597,-104.936219,39.7208978,-104.9349971,39.720897
-20351,2968,10750,0.0147633294839236,0.0147633294839236,-105.0250854,39.758479,-105.0250798,39.7583463
-15880,8763,8762,0.0396940145175954,0.0396940145175954,-105.0447184,39.7355684,-105.0451798,39.7355292
-20353,9401,9336,0.00949287140929792,0.00949287140929792,-105.025278,39.7585714,-105.0251673,39.7585782
-12244,8613,8614,0.00356038865266788,0.00356038865266788,-104.9996308,39.7508515,-104.9995987,39.7508719
-11216,8164,8165,0.0796169077304663,0.0796169077304663,-104.9269465,39.7030424,-104.9269411,39.7037584
-14132,9279,507,0.0225847659450503,0.0225847659450503,-104.9490944,39.7475193,-104.9492017,39.7477049
-15875,8940,8978,0.0300860996423522,0.0300860996423522,-105.0405047,39.7348341,-105.0408265,39.7349435
-11429,8253,319,0.299890155674121,0.299890155674121,-105.0342653,39.7832999,-105.0307715,39.7835551
-20371,2707,10756,0.00655605333712087,0.00655605333712087,-105.0229167,39.7612913,-105.0229933,39.7612883
-14677,3794,9330,0.199283554137764,0.199283554137764,-104.9700349,39.7290815,-104.9700355,39.7272893
-18476,4295,2411,0.100910451832155,0.100910451832155,-105.0399031,39.7539235,-105.0398977,39.753016
-18478,5542,9039,0.101169435731023,0.101169435731023,-105.0399084,39.7521049,-105.0398975,39.7511951
-11770,3014,8406,0.0500338703103734,0.0500338703103734,-104.9810635,39.7524708,-104.9814866,39.7527817
-11823,8421,8424,0.377719915283211,0.377719915283211,-105.0127281,39.7431253,-105.0160769,39.7409098
-10669,7915,6847,0.0947158385157811,0.0947158385157811,-105.0275397,39.7111407,-105.0275397,39.7102889
-3731,3565,3566,0.0486546976993217,0.0486546976993217,-104.9653106,39.7544428,-104.9647415,39.7544367
-3732,3566,3567,0.109486664803565,0.109486664803565,-104.9647415,39.7544367,-104.9634611,39.75446
-3733,3567,1037,0.105564006595596,0.105564006595596,-104.9634611,39.75446,-104.9622266,39.7544367
-11897,8466,8467,0.103343928827087,0.103343928827087,-105.0020778,39.7486652,-105.0015391,39.7478332
-11947,397,8496,0.0965081758273934,0.0965081758273934,-105.0131625,39.7564763,-105.013905,39.7558225
-18380,8494,8535,0.0492964457876769,0.0492964457876769,-105.0258959,39.7706651,-105.0258888,39.7711084
-20364,8991,10755,0.00786332111355482,0.00786332111355482,-105.0214364,39.7585333,-105.0213448,39.7585398
-12162,8315,8569,0.02262255215678,0.02262255215678,-105.0053848,39.7476354,-105.00526,39.747456
-12218,8594,2290,0.0213925904868369,0.0213925904868369,-105.0035802,39.740886,-105.0033485,39.7409586
-14931,3354,2767,0.0942765011393086,0.0942765011393086,-104.9338255,39.7274243,-104.9327231,39.7274245
-18498,9212,9220,0.133514882064815,0.133514882064815,-105.0351931,39.7499892,-105.0352038,39.7511899
-20706,9190,10885,0.00984120017613085,0.00984120017613085,-105.0253671,39.7620045,-105.0253682,39.762093
-12373,8677,8678,0.0486250060422128,0.0486250060422128,-104.99064,39.7765283,-104.9912089,39.7765361
-14967,7610,7264,0.0940136459475559,0.0940136459475559,-104.9383462,39.7510533,-104.9372465,39.7510554
-15895,9441,5377,0.102059140746775,0.102059140746775,-105.0429186,39.7342294,-105.044041,39.7339173
-13974,9251,9129,0.169864606266652,0.169864606266652,-105.0147648,39.729613,-105.0154242,39.731054
-20368,10749,10733,0.00357512667889407,0.00357512667889407,-105.0236241,39.7589986,-105.0236546,39.7589766
-14674,2227,943,0.182649781226047,0.182649781226047,-104.9700793,39.733704,-104.9700547,39.7320615
-14178,3784,8864,0.153337805989006,0.153337805989006,-104.9546474,39.7291228,-104.9546471,39.7305018
-19290,10470,8767,0.117748080941626,0.117748080941626,-104.988856,39.7394681,-104.9902331,39.7394681
-12575,8759,8760,0.0168627139608601,0.0168627139608601,-104.9407346,39.6947488,-104.9405376,39.6947443
-14983,8789,8796,0.105952161931752,0.105952161931752,-104.9835757,39.7432682,-104.9823365,39.7432723
-14984,8796,8878,0.106413855851218,0.106413855851218,-104.9823365,39.7432723,-104.9810919,39.7432682
-20419,10774,3587,0.00984290685312232,0.00984290685312232,-105.0243795,39.760698,-105.0243209,39.7607742
-15867,8770,8771,0.0147638851882813,0.0147638851882813,-105.0445575,39.7355437,-105.0444126,39.7356159
-11263,8195,8196,0.0967030898556648,0.0967030898556648,-104.9363825,39.6984629,-104.9352522,39.6984625
-16192,5817,7723,0.19660431304726,0.19660431304726,-104.983413,39.6911761,-104.9834185,39.689408
-20360,8992,10754,0.00404589397436802,0.00404589397436802,-105.0232439,39.7594863,-105.0232175,39.7595165
-19297,10471,1942,0.0559273520312209,0.0559273520312209,-104.9888451,39.7389629,-104.9888238,39.7384602
-15868,8833,5588,0.0188635032964949,0.0188635032964949,-105.0441417,39.7353828,-105.0439294,39.7354289
-19299,9959,564,0.00433589917958362,0.00433589917958362,-104.9854926,39.739222,-104.9854426,39.7392155
-20814,10936,7168,0.0050166121287054,0.0050166121287054,-105.0380601,39.7621908,-105.0381187,39.7621933
-20823,10780,9337,0.0124085195369407,0.0124085195369407,-105.0250471,39.7600231,-105.0251662,39.7600869
-19301,1942,10467,0.0736734316331574,0.0736734316331574,-104.9888238,39.7384602,-104.9888355,39.7377977
-12854,4133,6696,0.093947304456844,0.093947304456844,-104.9505787,39.7305216,-104.9494801,39.7305216
-15004,6269,9466,0.0522837092305697,0.0522837092305697,-104.960998,39.7432181,-104.9603865,39.7432158
-19305,10464,10461,0.0144782338635936,0.0144782338635936,-104.9888814,39.740512,-104.9888698,39.7406419
-19307,10467,611,0.103622552493386,0.103622552493386,-104.9888355,39.7377977,-104.9888354,39.7368658
-11685,8366,1032,0.0209886592874132,0.0209886592874132,-105.0020448,39.7527599,-105.0019469,39.752933
-20820,10919,8330,0.00776069150921458,0.00776069150921458,-105.0382104,39.7621908,-105.0382057,39.7621211
-11643,8347,4658,0.0580128250256257,0.0580128250256257,-105.0198419,39.7552988,-105.0191633,39.7552936
-12924,8890,8891,0.0884309215437497,0.0884309215437497,-105.0029709,39.7443191,-105.0038584,39.7439107
-15230,8360,8248,0.0379210675749848,0.0379210675749848,-104.9248705,39.6964922,-104.9245969,39.6962239
-13013,8916,2892,0.160989403082392,0.160989403082392,-104.9907275,39.7728705,-104.9912536,39.7714803
-12051,8531,8529,0.0116601753914343,0.0116601753914343,-105.0041475,39.7504135,-105.0041786,39.7503114
-20828,9205,8443,0.0104227726118747,0.0104227726118747,-105.0253893,39.7603981,-105.0254023,39.7603049
-18615,7410,5865,0.176922387553379,0.176922387553379,-105.0355064,39.7165547,-105.0355038,39.7149636
-14852,8621,9432,0.00675320800603643,0.00675320800603643,-105.0070186,39.7566114,-105.0069697,39.7566591
-18616,5865,9447,0.157075160700523,0.157075160700523,-105.0355038,39.7149636,-105.0354966,39.713551
-18618,1314,9447,0.0196279343381406,0.0196279343381406,-105.0354933,39.7133745,-105.0354966,39.713551
-11994,8505,8048,0.149802391835517,0.149802391835517,-104.9861441,39.7573027,-104.9849005,39.7582519
-18621,2586,5181,0.176412393215512,0.176412393215512,-105.0356522,39.7229391,-105.0356433,39.7245256
-18622,5181,5649,0.1069372720504,0.1069372720504,-105.0356433,39.7245256,-105.035649,39.7254873
-19473,7476,10517,0.0101658403815209,0.0101658403815209,-104.9902755,39.708471,-104.9902782,39.7083796
-19474,10517,10518,0.00993077177126307,0.00993077177126307,-104.9902782,39.7083796,-104.9902799,39.7082903
-18480,9040,9120,0.135103567036488,0.135103567036488,-105.0398922,39.7499655,-105.0398842,39.7487505
-20833,10944,10951,0.17747662532422,0.17747662532422,-105.0301334,39.7621946,-105.0322095,39.7622183
-19475,10518,10519,0.0191608413173093,0.0191608413173093,-104.9902799,39.7082903,-104.9902831,39.708118
-19512,10537,10447,0.00647615513057594,0.00647615513057594,-104.9882735,39.7089787,-104.9883492,39.7089795
-2,2,3,0.283463280100036,0.283463280100036,-105.0158228,39.7323669,-105.0152478,39.7298563
-3,3,4,0.0333775918694363,0.0333775918694363,-105.0152478,39.7298563,-105.0151369,39.7295685
-18628,1310,9484,0.175555113641419,0.175555113641419,-105.033071,39.7133691,-105.0330762,39.7149479
-12242,8611,8612,0.0998376585619669,0.0998376585619669,-105.0016014,39.7493354,-105.0007767,39.7499711
-5,5,6,0.348594358341424,0.348594358341424,-104.9373334,39.780183,-104.941411,39.7800918
-15909,9104,9105,0.0387441124726526,0.0387441124726526,-105.0421714,39.7165106,-105.0426052,39.7164103
-15903,6134,8603,0.0260893170771595,0.0260893170771595,-105.0288059,39.7222213,-105.0285111,39.7222816
-15878,8833,8770,0.0398025148628561,0.0398025148628561,-105.0441417,39.7353828,-105.0445575,39.7355437
-13625,7013,2274,0.0942922296438968,0.0942922296438968,-104.9316269,39.729236,-104.9305243,39.7292319
-15024,4136,2663,0.0946854927112821,0.0946854927112821,-104.9505787,39.7367922,-104.9516859,39.7368054
-13651,9159,1177,0.0568269678125187,0.0568269678125187,-104.9961123,39.7031752,-104.9966621,39.703462
-6,6,7,0.250747670173169,0.250747670173169,-104.941411,39.7800918,-104.9443453,39.7800941
-20837,10949,10945,0.0947762411619158,0.0947762411619158,-105.0269444,39.7610308,-105.0279522,39.7613862
-15887,8842,9619,0.0119243513569086,0.0119243513569086,-105.0381819,39.7339575,-105.0382355,39.7340565
-19481,10511,10486,0.0687637700371023,0.0687637700371023,-104.9902675,39.7093534,-104.9910713,39.7093611
-13777,9191,292,0.0113408171424215,0.0113408171424215,-105.0041591,39.7607716,-105.0040727,39.760849
-19493,10463,10523,0.0181472136448415,0.0181472136448415,-104.9883506,39.7087649,-104.9883516,39.7086017
-13799,9195,5081,0.0314508853846434,0.0314508853846434,-104.9963084,39.7080377,-104.9962546,39.7083175
-19487,10426,10427,0.0081618196829418,0.0081618196829418,-104.9883452,39.7095935,-104.9883457,39.7095201
-18570,10325,10322,0.0277653060168724,0.0277653060168724,-105.0344788,39.7803826,-105.0341731,39.7804672
-15042,6787,4718,0.0916704601824836,0.0916704601824836,-104.9684521,39.7368249,-104.9695224,39.7368723
-15043,4718,9414,0.0490846601218478,0.0490846601218478,-104.9695224,39.7368723,-104.9700963,39.736882
-19494,10523,7469,0.0159566577035026,0.0159566577035026,-104.9883516,39.7086017,-104.9883525,39.7084582
-13814,4934,9200,0.0155640797101011,0.0155640797101011,-104.9993415,39.7423284,-104.9994716,39.7422305
-13008,8914,2891,0.0117402105605065,0.0117402105605065,-104.9904906,39.7730255,-104.9905111,39.7729211
-17570,10143,10144,0.0307556488479174,0.0307556488479174,-105.0097169,39.7209239,-105.0093573,39.7209238
-20841,10952,10940,0.18759449218266,0.18759449218266,-105.0323215,39.7622208,-105.0345162,39.7622208
-15726,7317,9449,0.0375532628709029,0.0375532628709029,-104.9558194,39.7180363,-104.9558247,39.7176986
-15904,8603,9697,0.00690416936559141,0.00690416936559141,-105.0285111,39.7222816,-105.0284331,39.7222976
-13877,4478,2804,0.135897648680331,0.135897648680331,-104.9451778,39.765712,-104.9452104,39.7669339
-18633,4044,4045,0.00275409212275412,0.00275409212275412,-105.0330924,39.7181593,-105.0331246,39.7181593
-15057,9477,6733,0.054468335249091,0.054468335249091,-104.9775705,39.7368798,-104.9782075,39.7368798
-15058,6733,9313,0.0446744870999848,0.0446744870999848,-104.9782075,39.7368798,-104.9787299,39.7368736
-13910,9228,3317,0.0850892170141282,0.0850892170141282,-104.9592628,39.7812194,-104.9602584,39.7812326
-12689,2057,8805,0.133235184271089,0.133235184271089,-104.9534081,39.7194172,-104.9534009,39.718219
-18656,6223,7657,0.27620827404325,0.27620827404325,-105.0445138,39.725796,-105.0445162,39.72828
-15858,9732,9739,0.0147062242308904,0.0147062242308904,-105.0415588,39.7301641,-105.0415695,39.7300321
-20843,10954,10751,0.181296524715589,0.181296524715589,-105.0254122,39.760199,-105.0253759,39.7585688
-16082,366,255,0.573997033805984,0.573997033805984,-104.9601224,39.7799975,-104.9534054,39.7800114
-16084,9817,9818,0.0154245817929875,0.0154245817929875,-104.9497096,39.7811391,-104.9498899,39.7811457
-16127,4555,9122,0.0381695434595099,0.0381695434595099,-105.0221186,39.7238843,-105.0222205,39.7242185
-14675,943,5941,0.178224321703034,0.178224321703034,-104.9700547,39.7320615,-104.9700474,39.7304587
-15285,8799,3187,0.00972670306222712,0.00972670306222712,-104.9464054,39.7113917,-104.946376,39.7114762
-15873,8879,8889,0.108518344615814,0.108518344615814,-105.0382757,39.7341411,-105.0393045,39.7347125
-15405,9585,9582,0.0323190665796029,0.0323190665796029,-105.0108295,39.7535903,-105.0104647,39.7536666
-16246,9859,7743,0.402195232762633,0.402195232762633,-104.9529627,39.685713,-104.952944,39.68933
-13026,1537,4265,0.200987668621859,0.200987668621859,-104.9869861,39.7765493,-104.9869736,39.7783568
-3749,3578,3579,0.097584814173116,0.097584814173116,-104.9452895,39.7544277,-104.944148,39.7544343
-3750,3579,848,0.0994883860112991,0.0994883860112991,-104.944148,39.7544343,-104.9429842,39.7544341
-3752,3580,3581,0.0190511917089631,0.0190511917089631,-104.9407092,39.754494,-104.9405163,39.7545798
-19488,10427,4703,0.0206936304458077,0.0206936304458077,-104.9883457,39.7095201,-104.9883469,39.709334
-20829,8443,10954,0.0118059106132393,0.0118059106132393,-105.0254023,39.7603049,-105.0254122,39.760199
-16351,7009,2285,0.0978474396198024,0.0978474396198024,-104.9317039,39.7618388,-104.9305592,39.7618327
-16382,9879,9771,0.00992783408407401,0.00992783408407401,-104.9716243,39.7032379,-104.9717383,39.7032546
-16432,9894,9895,0.0235353492080929,0.0235353492080929,-104.9716111,39.6985449,-104.9718554,39.6986422
-14329,9328,602,0.0664699646577648,0.0664699646577648,-104.9959868,39.7692435,-104.9952229,39.7691313
-20848,10950,10953,0.0184888911494772,0.0184888911494772,-105.0289678,39.7620075,-105.0291765,39.7620512
-13445,9078,9079,0.200451693111106,0.200451693111106,-104.9941364,39.7021826,-104.9930943,39.7037972
-16391,3033,9847,0.0236566168850551,0.0236566168850551,-104.9700513,39.702674,-104.9699755,39.7028786
-15437,9602,9603,0.109740104543279,0.109740104543279,-105.0014283,39.740268,-105.0027104,39.7402226
-18475,9005,4295,0.117455212214086,0.117455212214086,-105.0399025,39.7549798,-105.0399031,39.7539235
-19609,10585,10503,0.00693839845805758,0.00693839845805758,-104.9910787,39.7086267,-104.9911598,39.7086277
-16644,564,565,0.0167681949380125,0.0167681949380125,-104.9854426,39.7392155,-104.9854426,39.7390647
-18641,5875,7416,0.178910174745805,0.178910174745805,-105.0450642,39.7149556,-105.0450953,39.7165644
-16758,7565,10010,0.0537198584701325,0.0537198584701325,-104.9506273,39.6992608,-104.950646,39.6997437
-13557,9032,9033,0.185435393968361,0.185435393968361,-105.0131311,39.7236048,-105.0111765,39.722883
-19028,8995,7690,0.0430021373921601,0.0430021373921601,-104.9472908,39.7847471,-104.9475732,39.784427
-17062,10068,2247,0.0643618782275657,0.0643618782275657,-104.9616428,39.7328861,-104.9616491,39.7334649
-16833,593,9915,0.00807834974542274,0.00807834974542274,-104.9689126,39.70386,-104.9689488,39.7037929
-18614,4049,7410,0.176200842798068,0.176200842798068,-105.0355145,39.7181393,-105.0355064,39.7165547
-16902,74,7306,0.205595181095446,0.205595181095446,-104.9657864,39.7002174,-104.9657546,39.7020662
-17068,10069,675,0.181147813198563,0.181147813198563,-104.9616202,39.7399794,-104.961623,39.7416085
-17009,4847,10051,0.0109841519151342,0.0109841519151342,-105.0034718,39.7526101,-105.003564,39.7526789
-13581,9133,9134,0.0795179133195768,0.0795179133195768,-104.9958777,39.7048581,-104.9951647,39.7043993
-17207,9891,234,0.00951110757861507,0.00951110757861507,-104.9688482,39.696672,-104.9688514,39.6965865
-19644,10601,10602,0.00459389199037625,0.00459389199037625,-104.9879279,39.7066512,-104.9878742,39.7066509
-14887,7456,5693,0.103533596199028,0.103533596199028,-105.0324406,39.7076676,-105.0324406,39.7067365
-15073,9480,8706,0.0156808972883418,0.0156808972883418,-104.9406528,39.7656775,-104.9404758,39.7656404
-18617,9447,1314,0.0196279343381406,0.0196279343381406,-105.0354966,39.713551,-105.0354933,39.7133745
-19477,10520,10521,0.0112440070511006,0.0112440070511006,-104.9902917,39.7076531,-104.9902943,39.707552
-19479,1872,10522,0.0183337010143588,0.0183337010143588,-104.9900015,39.7093504,-104.9902158,39.7093529
-18629,9484,5862,0.00360275623818702,0.00360275623818702,-105.0330762,39.7149479,-105.0330764,39.7149803
-17406,3210,6122,0.199774981063921,0.199774981063921,-104.9645976,39.7110977,-104.9645867,39.7093011
-15450,9609,9610,0.118608570416781,0.118608570416781,-105.0003045,39.7431574,-105.000479,39.7442156
-14988,9309,9464,0.101172548296122,0.101172548296122,-104.9787417,39.7432641,-104.9775584,39.7432677
-15965,1443,7623,0.202446963416806,0.202446963416806,-105.0038795,39.7112064,-105.0062462,39.7112115
-13793,4819,8514,0.148483674564771,0.148483674564771,-105.0080831,39.7592475,-105.0068857,39.7602149
-3766,2339,3595,0.17591583054365,0.17591583054365,-104.9293022,39.7193963,-104.929286,39.7209783
-3767,3595,3596,0.243702533330372,0.243702533330372,-104.929286,39.7209783,-104.9293972,39.7231683
-15851,5596,9735,0.0497175089074512,0.0497175089074512,-105.0438933,39.7301146,-105.0444693,39.7300539
-15124,6515,226,0.0653425651240956,0.0653425651240956,-104.9407009,39.7803199,-104.940692,39.7797323
-15449,9608,9609,0.0645563810419252,0.0645563810419252,-104.9999385,39.7426496,-105.0003045,39.7431574
-13914,4840,9230,0.275162192340763,0.275162192340763,-104.9965817,39.7075224,-104.9961257,39.7050728
-13922,9137,9233,0.0899935621999505,0.0899935621999505,-104.9868714,39.7007074,-104.9861692,39.7001048
-3788,1148,1821,0.103455086525091,0.103455086525091,-104.9293749,39.7637905,-104.9293577,39.7647208
-18632,7408,4044,0.178025429971464,0.178025429971464,-105.0330817,39.7165583,-105.0330924,39.7181593
-15247,9542,8177,0.0166658349694615,0.0166658349694615,-104.936117,39.7051637,-104.9362135,39.7050335
-15460,9613,9614,0.039786363249444,0.039786363249444,-105.0004503,39.7442368,-105.0001215,39.74449
-15461,8882,9615,0.0277165465497567,0.0277165465497567,-105.0018196,39.7432597,-105.0015275,39.7433678
-15546,9646,9647,0.0122997635777285,0.0122997635777285,-104.9868344,39.726681,-104.98691,39.7265869
-15889,8978,1101,0.0278428503732722,0.0278428503732722,-105.0408265,39.7349435,-105.040518,39.7350236
-236,30,31,0.0623462807475453,0.0623462807475453,-104.9707346,39.6882416,-104.9701337,39.6879245
-239,246,247,0.10870569104286,0.10870569104286,-104.9683485,39.6870395,-104.9672584,39.6865375
-19602,10483,10583,0.0688347644552014,0.0688347644552014,-104.9902592,39.7100937,-104.9910639,39.7100946
-19497,7457,10525,0.0182919034833847,0.0182919034833847,-104.9883639,39.7075324,-104.9883652,39.7073679
-15292,9561,9562,0.0285639174620334,0.0285639174620334,-104.941269,39.7069549,-104.9409364,39.7069322
-16011,9781,9782,0.0666625832869129,0.0666625832869129,-104.9994018,39.6890498,-104.9992186,39.6896325
-204,216,217,0.0495486567174314,0.0495486567174314,-105.0105654,39.7229262,-105.0109346,39.7232696
-16105,9825,9826,0.769429574289864,0.769429574289864,-104.9535187,39.7801156,-104.9625227,39.7801333
-19504,10531,10532,0.00490376342058079,0.00490376342058079,-104.9883756,39.7060143,-104.9883759,39.7059702
-19505,10532,10533,0.0113536336982688,0.0113536336982688,-104.9883759,39.7059702,-104.9883745,39.7058681
-15983,4420,7372,0.10794760335784,0.10794760335784,-105.0299687,39.7111671,-105.0312304,39.7111869
-16336,6683,8026,0.0934572989494279,0.0934572989494279,-104.9499154,39.7618255,-104.9488251,39.7617626
-15146,8245,9501,0.259647287125597,0.259647287125597,-104.9495723,39.7819108,-104.9477699,39.7837907
-16378,2678,4127,0.105747053096561,0.105747053096561,-104.9524232,39.761844,-104.9511861,39.7618358
-15168,9509,3381,0.0515085102071127,0.0515085102071127,-105.0340019,39.7403161,-105.0346043,39.7403194
-14670,9413,5473,0.178785252044424,0.178785252044424,-104.9701307,39.740015,-104.9701135,39.7384072
-15438,9603,2287,0.0101078833454114,0.0101078833454114,-105.0027104,39.7402226,-105.0028286,39.7402211
-16618,7974,3673,0.0581937370992888,0.0581937370992888,-104.9775516,39.7469781,-104.9775423,39.7475014
-16393,9876,3281,0.0515999951055545,0.0515999951055545,-104.9705085,39.7029675,-104.9710667,39.7027917
-11613,742,743,0.188831137780044,0.188831137780044,-105.0322639,39.7634453,-105.0300547,39.7634496
-16792,6964,10013,0.15953431348719,0.15953431348719,-105.0105704,39.7464447,-105.0114923,39.7476921
-16830,9911,10017,0.00322492509560211,0.00322492509560211,-104.972319,39.7074031,-104.9722814,39.707401
-17016,10055,10056,0.150978646033743,0.150978646033743,-105.0169757,39.7532749,-105.0167598,39.7546225
-17201,10074,6392,0.100421160552702,0.100421160552702,-105.0207767,39.7466992,-105.0207714,39.7476023
-19702,10621,10622,0.0560876276790842,0.0560876276790842,-105.0051625,39.7337963,-105.0045066,39.7337938
-17391,10095,8785,0.114852910416621,0.114852910416621,-104.9842414,39.72728,-104.9836046,39.7263706
-18648,4053,10111,0.195636353938149,0.195636353938149,-105.0379043,39.7181459,-105.0379043,39.7199053
-17545,8264,8929,0.192238762103777,0.192238762103777,-104.9897645,39.7839357,-104.9903693,39.7822705
-19596,10507,10581,0.0688892384795374,0.0688892384795374,-104.9902528,39.7106611,-104.9910581,39.7106676
-18652,8072,7653,0.262512305989993,0.262512305989993,-105.040042,39.7306132,-105.0400098,39.7282525
-18119,4085,6030,0.181292795599691,0.181292795599691,-105.0106908,39.7838273,-105.0106854,39.7854577
-17647,8242,223,0.0953499590487046,0.0953499590487046,-104.9443373,39.7799663,-104.9432215,39.7799643
-17960,5194,10233,0.0515871143302905,0.0515871143302905,-104.9883782,39.7241223,-104.9883637,39.7236585
-17964,10236,10232,0.0350820368831285,0.0350820368831285,-104.9882388,39.7255396,-104.9882382,39.7252241
-17785,8986,8497,0.0646311177616063,0.0646311177616063,-105.0131588,39.7555744,-105.0139116,39.7556283
-17753,10173,8485,0.0489434224402369,0.0489434224402369,-104.9947299,39.745901,-104.995128,39.7455847
-11535,1543,1544,0.137939265537406,0.137939265537406,-105.0270328,39.7572752,-105.0270414,39.7560347
-17819,8676,10186,0.0370735665978641,0.0370735665978641,-105.000985,39.7632181,-105.0007327,39.7634893
-17777,6508,6993,0.160336610713707,0.160336610713707,-104.9298124,39.7801232,-104.9316377,39.7804571
-3801,3083,3195,0.200442064419022,0.200442064419022,-104.9803943,39.7129167,-104.9803836,39.7111141
-3802,3195,3622,0.204398520601987,0.204398520601987,-104.9803836,39.7111141,-104.980383,39.7092759
-3803,3622,1902,0.199020966616341,0.199020966616341,-104.980383,39.7092759,-104.9804345,39.7074865
-3804,1902,3624,0.19721596773449,0.19721596773449,-104.9804345,39.7074865,-104.9804286,39.7057129
-17851,10193,10194,0.0260169590696429,0.0260169590696429,-104.9775879,39.7757765,-104.9773559,39.775625
-12958,1630,1631,0.127437048321071,0.127437048321071,-105.0040598,39.7420982,-105.0033016,39.7411115
-18661,10206,7647,0.17872352996795,0.17872352996795,-105.0345139,39.726102,-105.0345838,39.7277084
-19942,10671,4953,0.0511372085610231,0.0511372085610231,-104.9957933,39.726791,-104.9951981,39.7268351
-12964,1770,1771,0.0893785434926153,0.0893785434926153,-105.0062914,39.746863,-105.0057764,39.7461635
-18602,7656,6222,0.275287629645573,0.275287629645573,-105.0432633,39.7282706,-105.04325,39.7257949
-18232,2550,6070,0.201831098039417,0.201831098039417,-105.0409813,39.787434,-105.0409894,39.7856189
-18761,10339,10340,0.0412859123428405,0.0412859123428405,-105.0047672,39.7397925,-105.0043791,39.7395716
-4425,950,4134,0.165887036500793,0.165887036500793,-104.9505701,39.7320992,-104.950553,39.733591
-4426,4134,4135,0.171020798065652,0.171020798065652,-104.950553,39.733591,-104.9505787,39.7351289
-4427,4135,4136,0.184950521487565,0.184950521487565,-104.9505787,39.7351289,-104.9505787,39.7367922
-18817,10355,8431,0.088262856016995,0.088262856016995,-105.015729,39.7431732,-105.0163799,39.7437893
-4447,4149,4150,0.111495530172709,0.111495530172709,-104.9607278,39.7209872,-104.9594242,39.720981
-4448,4150,4151,0.101644653962629,0.101644653962629,-104.9594242,39.720981,-104.9582358,39.7209729
-19603,10583,10496,0.00675773327585877,0.00675773327585877,-104.9910639,39.7100946,-104.9911429,39.7100947
-19855,10661,10662,0.203042057763788,0.203042057763788,-105.044594,39.7384771,-105.0445966,39.7366511
-20643,10879,10877,0.0314570447479651,0.0314570447479651,-105.0134384,39.762482,-105.0134384,39.7627649
-19158,8423,8388,0.0601966609853944,0.0601966609853944,-105.013871,39.7414246,-105.0138882,39.7419658
-19615,10587,10502,0.00686995556939521,0.00686995556939521,-104.9910769,39.7088041,-104.9911572,39.7088051
-12339,8656,2501,0.0156699758852849,0.0156699758852849,-105.0073545,39.7547272,-105.0073403,39.7545867
-19328,9895,10473,0.0277673159561869,0.0277673159561869,-104.9718554,39.6986422,-104.971721,39.6984149
-19490,10441,10447,0.0184697170100914,0.0184697170100914,-104.9883481,39.7091456,-104.9883492,39.7089795
-19492,10448,10463,0.00504831489789659,0.00504831489789659,-104.9883503,39.7088103,-104.9883506,39.7087649
-19428,10489,7287,0.156514421452779,0.156514421452779,-104.9833961,39.7033795,-104.9833604,39.7019722
-19286,563,9967,0.0537140867907163,0.0537140867907163,-104.9854438,39.7392378,-104.986072,39.7392385
-19621,10589,10590,0.0274773310120508,0.0274773310120508,-104.988288,39.70828,-104.9879668,39.708282
-19441,10492,10493,0.0201930874558464,0.0201930874558464,-104.991144,39.7108499,-104.9911447,39.7106683
-19789,9476,4873,0.191586478139089,0.191586478139089,-104.9724291,39.7368742,-104.9724077,39.7351513
-19805,2619,10411,0.177645225629424,0.177645225629424,-104.9969572,39.7225317,-104.9969604,39.7209341
-18409,10287,10288,0.0734556316276251,0.0734556316276251,-105.0292196,39.7613906,-105.0292173,39.7620512
-20191,462,10707,0.132640175005266,0.132640175005266,-104.9880253,39.7800584,-104.9886248,39.7811587
-14823,3606,9335,0.071748078170483,0.071748078170483,-105.0243187,39.7548283,-105.025158,39.7548266
-14824,9335,9402,0.00997675672475066,0.00997675672475066,-105.025158,39.7548266,-105.0252747,39.7548256
-14825,9402,8301,0.0653806855821323,0.0653806855821323,-105.0252747,39.7548256,-105.0260395,39.7548296
-14830,4022,8322,0.0483334251113916,0.0483334251113916,-105.0299425,39.7548206,-105.0305079,39.754821
-14832,5668,7026,0.0386007852757077,0.0386007852757077,-105.0310864,39.7548296,-105.0315379,39.7548347
-4468,4163,4164,0.0480674059146442,0.0480674059146442,-104.975216,39.7201302,-104.974654,39.7201321
-4469,4164,991,0.0502312521862823,0.0502312521862823,-104.974654,39.7201321,-104.9740667,39.720134
-14857,8907,9435,0.0508107102861791,0.0508107102861791,-105.0079847,39.7554777,-105.0075169,39.7557596
-14859,9436,9437,0.0520105887104481,0.0520105887104481,-105.0090881,39.7546132,-105.0094073,39.7550114
-15729,9448,9449,0.154385795199696,0.154385795199696,-104.9554224,39.7163451,-104.9558247,39.7176986
-18619,9447,9452,0.260663192513491,0.260663192513491,-105.0354966,39.713551,-105.0354984,39.7112068
-14936,5495,8700,0.014007087915999,0.014007087915999,-104.9407458,39.7383041,-104.9405826,39.7382932
-20590,2705,10795,0.0154885940353102,0.0154885940353102,-105.022918,39.7610959,-105.0227368,39.7610963
-14972,2754,7005,0.0961416158900631,0.0961416158900631,-104.9328183,39.7510492,-104.931694,39.751069
-15045,5118,4946,0.0490898990370342,0.0490898990370342,-104.9706897,39.7368921,-104.9712638,39.7368921
-15046,4946,7151,0.0490351349560296,0.0490351349560296,-104.9712638,39.7368921,-104.9718371,39.7368817
-15963,6397,4362,0.0791794536243071,0.0791794536243071,-105.0006291,39.7111959,-105.0015545,39.7112124
-15989,9452,4506,0.0512507321563124,0.0512507321563124,-105.0354984,39.7112068,-105.036097,39.7112265
-16056,308,4648,0.208884022844132,0.208884022844132,-105.0162105,39.7255543,-105.0186498,39.72565
-15158,9504,7749,0.203686953618576,0.203686953618576,-104.9383033,39.6874943,-104.9383055,39.6893261
-16076,8934,9417,0.0908088237702457,0.0908088237702457,-104.9901787,39.7746982,-104.9903058,39.7738874
-16106,9826,214,0.019707054216564,0.019707054216564,-104.9625227,39.7801333,-104.9627533,39.7801312
-19536,10547,10551,0.00289118198627037,0.00289118198627037,-104.9890392,39.7095279,-104.9890395,39.7095019
-16257,8751,9267,0.200818549492747,0.200818549492747,-104.9552399,39.6947809,-104.9552346,39.6965869
-16332,5124,7146,0.105923351259383,0.105923351259383,-104.9708846,39.7620022,-104.9721238,39.7620063
-3817,3633,3634,0.395318196729382,0.395318196729382,-104.9408419,39.7060696,-104.9444999,39.7082421
-16359,2326,5997,0.152345269926906,0.152345269926906,-104.9240294,39.7620162,-104.9258117,39.7620121
-5101,4522,4624,0.135948680255943,0.135948680255943,-105.0189635,39.7632145,-105.0189554,39.7644371
-18688,2602,1859,0.181461056809498,0.181461056809498,-105.0415146,39.7229572,-105.0415045,39.7213253
-16455,9910,8957,0.00642990572974513,0.00642990572974513,-104.9724845,39.7074076,-104.9724094,39.7074052
-16456,8957,9911,0.00773671564019088,0.00773671564019088,-104.9724094,39.7074052,-104.972319,39.7074031
-16715,132,1701,0.201952446468105,0.201952446468105,-104.9874659,39.6930068,-104.9875011,39.6911908
-17236,31,134,0.108163538194537,0.108163538194537,-104.9701337,39.6879245,-104.969078,39.6873895
-17237,134,246,0.0735610173824186,0.0735610173824186,-104.969078,39.6873895,-104.9683485,39.6870395
-17521,3940,6651,0.0163911525787958,0.0163911525787958,-105.000152,39.7400197,-104.9999603,39.7400202
-18097,10256,2169,0.0491222602233141,0.0491222602233141,-105.0141119,39.7874307,-105.0146868,39.7874303
-18207,8329,7847,0.200166859157176,0.200166859157176,-105.0363384,39.7621278,-105.036368,39.7603278
-18394,5586,2554,0.157693803770027,0.157693803770027,-105.0439435,39.7860953,-105.0433255,39.7874316
-18972,7756,3621,0.0947044796448553,0.0947044796448553,-104.9814659,39.7146886,-104.9803587,39.7146886
-19237,10458,10457,0.00406582159548868,0.00406582159548868,-104.9913293,39.7430187,-104.991294,39.7429942
-19229,10453,10454,0.0676096530689986,0.0676096530689986,-104.9908874,39.7414826,-104.9914445,39.7410511
-3858,3667,3668,0.0415319443079903,0.0415319443079903,-104.9746946,39.7474748,-104.9751801,39.7474876
-3859,3668,3669,0.0482985746708946,0.0482985746708946,-104.9751801,39.7474876,-104.9757447,39.7475025
-19322,2203,916,0.200210598103272,0.200210598103272,-104.9873753,39.7338548,-104.9874133,39.7320545
-15203,7160,9528,0.0514241954874698,0.0514241954874698,-105.0381214,39.7499794,-105.0387229,39.7499763
-19690,10616,10397,0.0495068144600769,0.0495068144600769,-105.0112484,39.7498792,-105.011825,39.749838
-19692,10617,10398,0.0503641661598134,0.0503641661598134,-105.0116614,39.749343,-105.0118932,39.7497594
-19879,5198,10672,0.124230342536198,0.124230342536198,-104.9957805,39.7241162,-104.9957912,39.722999
-19967,10686,9720,0.110372440140764,0.110372440140764,-105.0340046,39.7384634,-105.0334112,39.7375819
-19969,9505,1931,0.205435822074821,0.205435822074821,-105.0305094,39.7403332,-105.030496,39.7384857
-19971,9711,1933,0.17400772229687,0.17400772229687,-105.0322666,39.7399826,-105.0316836,39.7384833
-19972,1933,10306,0.208946577187585,0.208946577187585,-105.0316836,39.7384833,-105.0316869,39.7366042
-3875,3685,3686,0.109844105363612,0.109844105363612,-104.9647396,39.7469477,-104.9634548,39.7469475
-17510,10120,10119,0.158859506306984,0.158859506306984,-105.0136579,39.737681,-105.0129247,39.7389937
-676,669,670,0.102292085856109,0.102292085856109,-104.9684201,39.7416394,-104.9672238,39.7416291
-3893,3696,3697,0.200080946502272,0.200080946502272,-104.961742,39.6947762,-104.9617212,39.6929769
-3894,3697,3698,0.204567969900071,0.204567969900071,-104.9617212,39.6929769,-104.9617334,39.6911372
-3896,3699,3700,0.197370997762066,0.197370997762066,-104.9617151,39.6892951,-104.9617155,39.6875201
-20255,5749,10704,0.00800649085379587,0.00800649085379587,-105.0445791,39.7729494,-105.0445781,39.7730214
-20320,10739,10740,0.00883881362478868,0.00883881362478868,-105.0234882,39.7589777,-105.0235185,39.7589017
-15207,1113,9529,0.0508930389416975,0.0508930389416975,-105.0404745,39.7499577,-105.0410698,39.7499582
-15251,9544,9536,0.0327374869648338,0.0327374869648338,-104.9360582,39.7058553,-104.9358729,39.7061129
-15379,8806,2642,0.105298522418053,0.105298522418053,-104.953405,39.7180338,-104.9521739,39.7180386
-18635,7865,1846,0.175356787311383,0.175356787311383,-105.0331005,39.7197556,-105.0330898,39.7213326
-15485,9612,9616,0.0684703360070514,0.0684703360070514,-105.0005861,39.7432358,-105.0011333,39.7436854
-15516,9635,3736,0.0550573183727317,0.0550573183727317,-105.0021668,39.7384727,-105.0028107,39.7384712
-19480,10522,10511,0.00442285695753415,0.00442285695753415,-104.9902158,39.7093529,-104.9902675,39.7093534
-15574,9660,9464,0.175338544663329,0.175338544663329,-104.9775409,39.7416909,-104.9775584,39.7432677
-15598,7585,2003,0.0946559616738872,0.0946559616738872,-104.9360971,39.758301,-104.9349898,39.7583076
-15618,9679,9680,0.101799223111765,0.101799223111765,-104.918758,39.7583757,-104.9175671,39.7583757
-15640,9666,9667,0.00676039634627663,0.00676039634627663,-104.9412242,39.7582683,-104.941147,39.7582815
-15683,8023,7680,0.104281288426574,0.104281288426574,-104.9485858,39.7178178,-104.9473666,39.7178126
-15704,7666,2329,0.100028756753634,0.100028756753634,-104.9245961,39.7178332,-104.9234266,39.7178332
-15755,3356,2760,0.0982705119459115,0.0982705119459115,-104.9339641,39.7162382,-104.9328153,39.7162508
-1110,1126,1127,0.154576986104079,0.154576986104079,-105.0405383,39.7639496,-105.0404877,39.7653392
-2347,2338,2265,0.095819812257735,0.095819812257735,-104.9316115,39.7193956,-104.9304912,39.7194002
-12348,8664,8665,0.0099818469883938,0.0099818469883938,-105.0123703,39.7528644,-105.0124819,39.7528908
-20799,10928,6772,0.00617692305613739,0.00617692305613739,-105.0267992,39.7609759,-105.0268634,39.7610014
-1176,1191,1192,0.0992884317332444,0.0992884317332444,-104.9578631,39.7271192,-104.9567021,39.7271202
-20800,6772,10949,0.00765667567444528,0.00765667567444528,-105.0268634,39.7610014,-105.0269444,39.7610308
-441,439,440,0.131394781189403,0.131394781189403,-104.9691656,39.702165,-104.969326,39.7033402
-2798,2750,2752,0.210544806502819,0.210544806502819,-104.9326406,39.738234,-104.9326896,39.7401271
-20666,10888,10889,0.0790962373353106,0.0790962373353106,-105.0396012,39.7648471,-105.0403834,39.764467
-19518,6854,10540,0.00704975834948009,0.00704975834948009,-104.9885677,39.7102439,-104.9885677,39.7101805
-17074,10070,7842,0.137917824166884,0.137917824166884,-104.9615992,39.7507111,-104.9616094,39.7519514
-320,63,64,0.0374489603047296,0.0374489603047296,-105.0203119,39.7717265,-105.01999,39.771498
-62,68,69,0.0422209546479027,0.0422209546479027,-104.9680761,39.7002293,-104.9675826,39.7002312
-12003,5507,7080,0.146738996592278,0.146738996592278,-104.9821628,39.7616959,-104.9809567,39.762635
-109,116,117,0.143188450690636,0.143188450690636,-105.023457,39.730286,-105.0251312,39.7303064
-18456,10296,7020,0.00773615182989558,0.00773615182989558,-105.0316008,39.7464538,-105.0315108,39.746461
-134,142,143,0.102085903671524,0.102085903671524,-104.9980358,39.6930742,-104.9992288,39.6930874
-18414,7445,8376,0.0994737732965907,0.0994737732965907,-105.0369668,39.7543695,-105.0358032,39.7543633
-153,162,163,0.0752431334530451,0.0752431334530451,-105.0166181,39.6931468,-105.0174975,39.6931459
-18417,10289,8332,0.15046170994065,0.15046170994065,-105.0398915,39.7607667,-105.0398789,39.7621198
-323,206,207,0.0117249781899754,0.0117249781899754,-104.9566644,39.7445134,-104.9565607,39.7445824
-222,233,234,0.0133914034588106,0.0133914034588106,-104.968695,39.6965912,-104.9688514,39.6965865
-269,279,280,0.111130387977042,0.111130387977042,-104.987002,39.7789431,-104.9858487,39.7794049
-304,312,313,0.0760674046765663,0.0760674046765663,-104.971535,39.780386,-104.970735,39.780686
-378,380,381,0.042583144928967,0.042583144928967,-105.03278,39.74748,-105.0323033,39.747591
-334,335,336,0.0838277836552233,0.0838277836552233,-104.9400719,39.7824771,-104.9390909,39.7824749
-18422,6881,8361,0.201914074104345,0.201914074104345,-105.0410645,39.7657635,-105.0410832,39.7639477
-367,368,369,0.0822344709508681,0.0822344709508681,-104.9589875,39.7795994,-104.9593952,39.7789295
-541,535,536,0.186883681615866,0.186883681615866,-105.0155504,39.7561618,-105.0151149,39.7545148
-11516,528,591,0.200155681159152,0.200155681159152,-105.0322618,39.7598749,-105.0346033,39.7598894
-15254,9538,9539,0.0173547475022314,0.0173547475022314,-104.9352077,39.7057044,-104.9351084,39.7058405
-659,649,650,0.011039314445329,0.011039314445329,-104.9873881,39.7417114,-104.9872612,39.7417297
-11464,701,5,0.465980985000995,0.465980985000995,-104.9318804,39.7801737,-104.9373334,39.780183
-16702,9996,9629,0.03889405892702,0.03889405892702,-104.9999838,39.7464987,-105.0003179,39.7462613
-12966,1824,1825,0.0102076592436785,0.0102076592436785,-105.0068707,39.7455494,-105.0069351,39.7456267
-18427,7848,2983,0.204332357907837,0.204332357907837,-105.0387174,39.7603215,-105.038723,39.7584839
-16420,3283,3331,0.0144926793767328,0.0144926793767328,-104.9691419,39.7020399,-104.9693109,39.7020309
-794,799,800,0.10010177351148,0.10010177351148,-104.9293286,39.7528556,-104.9281577,39.7528638
-11695,896,1005,0.0164907467236235,0.0164907467236235,-105.0012741,39.7533936,-105.0014074,39.7532864
-18433,6878,8357,0.204690873329425,0.204690873329425,-105.0387418,39.7657978,-105.0387283,39.763957
-863,876,877,0.10476487069157,0.10476487069157,-104.968419,39.7645054,-104.9671933,39.7645034
-883,898,899,0.104753841122432,0.104753841122432,-104.9450302,39.764473,-104.9438047,39.7644833
-884,899,864,0.0807039229442354,0.0807039229442354,-104.9438047,39.7644833,-104.9428605,39.7644833
-927,941,942,0.0494985310502231,0.0494985310502231,-104.9712147,39.7320508,-104.9706365,39.7320717
-16705,9999,9629,0.0289087737479417,0.0289087737479417,-105.0005573,39.7460777,-105.0003179,39.7462613
-17026,3489,3490,0.0719959563000755,0.0719959563000755,-105.0251569,39.7553551,-105.0243147,39.7553581
-18682,3408,3539,0.176214327588196,0.176214327588196,-105.0367215,39.7181427,-105.0367081,39.716558
-18442,8299,10294,0.012207810422513,0.012207810422513,-105.0260753,39.7595725,-105.026081,39.7596822
-1076,1092,1093,0.17117547982738,0.17117547982738,-105.0405917,39.7314737,-105.040582,39.7330131
-15790,2105,2106,0.167962867985551,0.167962867985551,-105.0249129,39.7371906,-105.0232102,39.7379438
-1100,1116,1117,0.101443140583253,0.101443140583253,-105.0404808,39.7530145,-105.0404813,39.7539268
-1122,1138,1139,0.131688298285365,0.131688298285365,-105.040403,39.7820828,-105.0404053,39.7832671
-2171,2170,2171,0.00661609813602913,0.00661609813602913,-105.0146867,39.7884025,-105.0146867,39.788462
-19434,10489,10109,0.051734430819511,0.051734430819511,-104.9833961,39.7033795,-104.9827914,39.7033844
-16849,9890,3358,0.0252874452199061,0.0252874452199061,-104.9695728,39.7019278,-104.9695281,39.7021526
-16171,7732,6631,0.170999473020786,0.170999473020786,-104.9763378,39.6893855,-104.9763643,39.6909232
-1145,1163,1164,0.10638131618854,0.10638131618854,-104.9609775,39.7632277,-104.959733,39.7632393
-2233,2234,2235,0.107325767093377,0.107325767093377,-104.937292,39.7328682,-104.936037,39.7328568
-16734,10004,5726,0.044310348629928,0.044310348629928,-104.9539532,39.7012069,-104.9536931,39.7008623
-19574,7473,10571,0.0063271995041771,0.0063271995041771,-104.9892894,39.708464,-104.98929,39.7084071
-1286,1311,1312,0.0523154141859772,0.0523154141859772,-105.0336852,39.7133658,-105.0342968,39.7133689
-18191,5793,6053,0.200818759010255,0.200818759010255,-105.0281574,39.7874261,-105.0281511,39.7856201
-12198,2296,2417,0.0275462737865406,0.0275462737865406,-105.0235583,39.7404384,-105.0238493,39.7405447
-1335,1360,142,0.202746839209369,0.202746839209369,-104.9980058,39.6948974,-104.9980358,39.6930742
-1357,1386,1387,0.204107383179499,0.204107383179499,-105.0038695,39.7121354,-105.0062556,39.7121476
-1384,1411,1412,0.132938489820146,0.132938489820146,-105.0079981,39.7813836,-105.0095538,39.781386
-1385,1412,1413,0.131234196689436,0.131234196689436,-105.0095538,39.781386,-105.0110892,39.7813605
-16835,10018,10019,0.00449297276091322,0.00449297276091322,-104.9700592,39.7032461,-104.9700539,39.7032059
-1459,1481,1482,0.0508965659313026,0.0508965659313026,-104.9901596,39.6948019,-104.9907544,39.6948087
-533,397,398,0.176353791704941,0.176353791704941,-105.0131625,39.7564763,-105.0152017,39.756236
-1483,1503,1504,0.10868886965133,0.10868886965133,-105.0297284,39.6949225,-105.0309987,39.6949159
-17373,3540,4236,0.201662628453229,0.201662628453229,-104.9786521,39.6984298,-104.9786279,39.6966163
-1505,47,1524,0.198761508803526,0.198761508803526,-104.974563,39.7002186,-104.9745686,39.6984311
-16510,9930,8899,0.028599893322584,0.028599893322584,-105.0053557,39.7432318,-105.0050563,39.7433465
-19459,10506,10507,0.0718336837694179,0.0718336837694179,-104.9910563,39.7108489,-104.9902528,39.7106611
-16953,10037,10038,0.0209544596641532,0.0209544596641532,-105.0167413,39.7559349,-105.0168024,39.7557524
-1573,1601,1602,0.162785877407261,0.162785877407261,-105.013927,39.6982179,-105.0138578,39.6967549
-1622,1650,1651,0.0538894092860146,0.0538894092860146,-105.0156911,39.6895077,-105.0156831,39.6890231
-1645,1672,1673,0.130835848827306,0.130835848827306,-105.0096516,39.7680424,-105.0111824,39.7680416
-1667,1692,1693,0.050088176287895,0.050088176287895,-105.0410724,39.7676025,-105.0416583,39.7675928
-1694,1718,1719,0.0873988319892153,0.0873988319892153,-105.0097345,39.6908484,-105.0107559,39.690855
-1719,1738,1456,0.0837159374419676,0.0837159374419676,-105.0067562,39.6912909,-105.0077346,39.6912909
-1750,1769,1772,0.200154711336709,0.200154711336709,-104.9769412,39.7092561,-104.9769267,39.7074561
-1772,1790,1791,0.0243124544354895,0.0243124544354895,-104.9810045,39.694799,-104.9807204,39.6948034
-12976,2866,2867,0.0166252705046511,0.0166252705046511,-104.9893706,39.7368276,-104.9894148,39.7369732
-1804,1817,1818,0.0911976784518576,0.0911976784518576,-105.02745,39.7281152,-105.028093,39.7274609
-11690,836,837,0.0102634119335747,0.0102634119335747,-105.00135,39.7536153,-105.0012532,39.7536699
-1854,1868,1869,0.0969507802969199,0.0969507802969199,-104.9899631,39.7147612,-104.9899974,39.7138897
-18890,6123,3212,0.200920158955186,0.200920158955186,-104.963455,39.709291,-104.9634444,39.7110979
-13010,2892,2956,0.114118910643116,0.114118910643116,-104.9912536,39.7714803,-104.9919912,39.7706248
-1900,1913,1087,0.0825040978126541,0.0825040978126541,-104.9733715,39.707477,-104.9724071,39.7074855
-11531,1232,1233,0.136649469135664,0.136649469135664,-105.028183,39.7572752,-105.0281917,39.7560463
-3101,3032,3035,0.0672642720958143,0.0672642720958143,-104.9476453,39.759056,-104.9468584,39.7590562
-16771,7290,7418,0.177711115784665,0.177711115784665,-104.9546694,39.7017867,-104.9529866,39.7027237
-2076,2079,2080,0.00320241388686281,0.00320241388686281,-104.9536567,39.7606977,-104.9536567,39.7607265
-20267,7552,10721,0.0076233085405271,0.0076233085405271,-105.0451456,39.7730203,-105.0450564,39.7730205
-2099,2101,2102,0.0617614998037007,0.0617614998037007,-104.9269881,39.7795759,-104.9269671,39.7801311
-2178,2178,2179,0.133414657501795,0.133414657501795,-105.01465,39.7765593,-105.0146727,39.777759
-20703,10902,10893,0.0137674602252582,0.0137674602252582,-105.0400838,39.7654891,-105.0400814,39.7656129
-18186,6059,4074,0.199239203137735,0.199239203137735,-105.0327949,39.7856263,-105.0327922,39.7838345
-2271,2271,2274,0.132133232701666,0.132133232701666,-104.9305276,39.7280436,-104.9305243,39.7292319
-2297,2295,2044,0.383761223862801,0.383761223862801,-104.9885127,39.7658379,-104.9843229,39.7670786
-2323,2315,2316,0.330214470935474,0.330214470935474,-104.9499657,39.7059775,-104.9472534,39.7038645
-12347,8663,8664,0.0257805479932851,0.0257805479932851,-105.0123961,39.7526334,-105.0123703,39.7528644
-2391,2374,2380,0.0606466728888714,0.0606466728888714,-104.954137,39.710527,-104.9540512,39.7099856
-17368,6112,1906,0.199361824625973,0.199361824625973,-104.9786441,39.7092737,-104.9786392,39.7074808
-2461,2451,2452,0.13645541326163,0.13645541326163,-105.0064532,39.7705389,-105.0080496,39.7705191
-2505,2485,2486,0.101289554682704,0.101289554682704,-105.0158508,39.7789597,-105.0170359,39.7789761
-2559,1939,371,0.224011572183979,0.224011572183979,-105.0273088,39.7386104,-105.0298176,39.7380301
-19236,5960,10458,0.00935537130778975,0.00935537130778975,-104.9914093,39.7430761,-104.9913293,39.7430187
-20487,10833,10834,0.0146368261080025,0.0146368261080025,-105.0248283,39.7608934,-105.0246593,39.7608722
-17152,4823,1911,0.202007841348173,0.202007841348173,-104.9751483,39.7056678,-104.9751493,39.7074845
-15939,9756,1179,0.0444859500137061,0.0444859500137061,-104.9962839,39.7001148,-104.9967738,39.7002489
-3746,3576,3577,0.10159835449875,0.10159835449875,-104.9488635,39.7544629,-104.9476756,39.7544343
-3791,2772,3612,0.203936793927218,0.203936793927218,-104.9293492,39.7674126,-104.929332,39.7692466
-3792,3612,3613,0.107839344756473,0.107839344756473,-104.929332,39.7692466,-104.9293234,39.7702164
-2787,2741,2742,0.198829139661659,0.198829139661659,-104.9558357,39.6911246,-104.9558447,39.6893365
-15945,9761,9759,0.0391671909462338,0.0391671909462338,-104.997609,39.7046403,-104.9977092,39.704984
-2831,2780,2781,0.0528298940705434,0.0528298940705434,-104.9727319,39.7669657,-104.9721138,39.7669682
-19569,10568,10569,0.0878244193957737,0.0878244193957737,-104.9895159,39.7084088,-104.9895239,39.707619
-2880,2824,2825,0.0974259616864288,0.0974259616864288,-105.0158414,39.7801872,-105.0169815,39.7801864
-2902,2845,2846,0.808353421265405,0.808353421265405,-104.9305098,39.6893437,-104.9307139,39.6820757
-17512,10121,10120,0.0252089130538733,0.0252089130538733,-105.0137025,39.7374569,-105.0136579,39.737681
-18124,7936,10267,0.178836603986638,0.178836603986638,-105.0106854,39.7894536,-105.010676,39.7910619
-17213,3773,3774,0.00322537908461904,0.00322537908461904,-104.9774877,39.7022422,-104.9774885,39.7022712
-4010,3797,3798,0.0496772635509661,0.0496772635509661,-104.9723623,39.729076,-104.9729432,39.7290745
-20618,10829,10811,0.00710063413803192,0.00710063413803192,-105.0230688,39.7597292,-105.022998,39.7596958
-4056,3836,542,0.0542189434563804,0.0542189434563804,-105.042838,39.751186,-105.0428359,39.7516736
-16431,9893,9894,0.0272038809490012,0.0272038809490012,-104.9715317,39.698308,-104.9716111,39.6985449
-4079,3854,3855,0.107248137237127,0.107248137237127,-105.0427103,39.7245555,-105.0427146,39.72552
-4105,3874,1534,0.0983074346464974,0.0983074346464974,-104.944148,39.7565195,-104.944148,39.7574036
-4130,3892,3893,0.176077888960898,0.176077888960898,-104.9634634,39.7416479,-104.9634575,39.7432314
-3140,2139,3065,0.10712340392365,0.10712340392365,-104.9269888,39.7601749,-104.9257357,39.7601617
-14117,3945,3946,0.0482205385893945,0.0482205385893945,-104.9450651,39.7484271,-104.9449549,39.7480018
-19586,7471,10577,0.00638268050836497,0.00638268050836497,-104.9888183,39.708461,-104.9888187,39.7084036
-18680,1852,3185,0.180570803347185,0.180570803347185,-105.0367134,39.7213291,-105.0367216,39.7197052
-4350,4077,4078,0.0772510249569655,0.0772510249569655,-104.9901174,39.7840727,-104.9910214,39.7840807
-4372,4094,4095,0.0479505811649138,0.0479505811649138,-105.0169973,39.7839311,-105.0175565,39.7838951
-19591,10579,10498,0.00651919101450697,0.00651919101450697,-104.9910674,39.7097471,-104.9911436,39.7097481
-3306,3214,3215,0.0471079000187924,0.0471079000187924,-104.9622425,39.711098,-104.9616918,39.7111011
-3328,3230,3231,0.132391302135547,0.132391302135547,-105.0330468,39.7719096,-105.0345947,39.7719562
-19626,10513,10592,0.0688709903222838,0.0688709903222838,-104.9902701,39.7089743,-104.9910751,39.7089846
-3398,3295,3296,0.0155356242142858,0.0155356242142858,-104.9407838,39.7038199,-104.9406022,39.7038199
-19230,10454,10455,0.0118389292817843,0.0118389292817843,-104.9914445,39.7410511,-104.9915438,39.7409769
-20315,10736,10737,0.159656650881409,0.159656650881409,-105.0233746,39.7593437,-105.0250397,39.7599942
-18079,6355,10255,0.0661057533214939,0.0661057533214939,-105.0105212,39.7255767,-105.0097514,39.7256305
-3483,3361,3362,0.201966263198038,0.201966263198038,-104.9339125,39.7546702,-104.9338998,39.7564865
-4636,4280,4281,0.102934268159845,0.102934268159845,-104.97885,39.7703237,-104.9797003,39.7709793
-16647,9969,5457,0.0123677166569097,0.0123677166569097,-104.9848573,39.7385435,-104.9848604,39.7384323
-16903,7306,3263,0.199172661453728,0.199172661453728,-104.9657546,39.7020662,-104.9657587,39.7038574
-19484,6853,10408,0.00698312522129821,0.00698312522129821,-104.9883411,39.7102427,-104.9883415,39.7101799
-19234,10420,10457,0.0372086096742178,0.0372086096742178,-104.9910563,39.7427139,-104.991294,39.7429942
-19820,10648,3951,0.0619393226511354,0.0619393226511354,-105.0009089,39.7300077,-105.0001846,39.7300077
-20630,10847,10760,0.0141138073557462,0.0141138073557462,-105.0229893,39.7608356,-105.0229928,39.7607087
-4772,4383,4384,0.143358020264065,0.143358020264065,-104.9788891,39.7554321,-104.9800877,39.7545304
-4773,4384,2688,0.1475761156103,0.1475761156103,-104.9800877,39.7545304,-104.9813184,39.7535997
-19822,10648,9252,0.121899654224586,0.121899654224586,-105.0009089,39.7300077,-105.0008928,39.7289115
-17019,10054,10057,0.00913318334502991,0.00913318334502991,-105.0167692,39.7546606,-105.0168578,39.7546147
-19885,7405,10416,0.200852838610439,0.200852838610439,-104.9957689,39.7166071,-104.9957778,39.7148008
-18259,7775,9395,0.0553851197391209,0.0553851197391209,-105.0259595,39.7688086,-105.0253115,39.7688045
-4859,3019,4445,0.0478223869342914,0.0478223869342914,-104.9768843,39.7557372,-104.9772635,39.7560534
-20466,10753,10817,0.0682187434932547,0.0682187434932547,-105.0250779,39.761939,-105.0250744,39.7613255
-19877,10671,6237,0.122419389056498,0.122419389056498,-104.9957933,39.726791,-104.9957805,39.7256901
-19878,6237,5198,0.175009695046305,0.175009695046305,-104.9957805,39.7256901,-104.9957805,39.7241162
-18518,10303,10304,0.0239997630410034,0.0239997630410034,-105.0374978,39.7440972,-105.0372296,39.7441609
-4902,3446,4478,0.091694374773876,0.091694374773876,-104.9462506,39.7657138,-104.9451778,39.765712
-19966,9509,10686,0.206010969949978,0.206010969949978,-105.0340019,39.7403161,-105.0340046,39.7384634
-19567,10565,7474,0.0766585847384353,0.0766585847384353,-104.9895118,39.7091548,-104.9895159,39.7084654
-14126,3925,419,0.00806156942685905,0.00806156942685905,-104.9455321,39.7450146,-104.94552,39.7449427
-3723,3558,2895,0.0536764980359733,0.0536764980359733,-104.9739683,39.7546244,-104.9733531,39.7545278
-3795,3615,3616,0.170284963942666,0.170284963942666,-104.9804114,39.6945392,-104.9804184,39.6930078
-20220,9234,6625,0.292333005384616,0.292333005384616,-104.9818516,39.6960736,-104.9797753,39.6939857
-14111,3623,3659,0.11789221451213,0.11789221451213,-104.9448677,39.7457412,-104.9461809,39.7460646
-3861,3670,3671,0.0217628748782358,0.0217628748782358,-104.976114,39.7474946,-104.9763685,39.7474986
-17030,3607,3490,0.0408681491476405,0.0408681491476405,-105.0243214,39.7549906,-105.0243147,39.7553581
-15948,9763,9764,0.10655007034609,0.10655007034609,-104.9987026,39.7066196,-104.9984431,39.7056824
-17086,504,3946,0.0996587778769702,0.0996587778769702,-104.9458317,39.7485924,-104.9449549,39.7480018
-20151,8263,8850,0.190160460059289,0.190160460059289,-104.9903301,39.7785853,-104.9897894,39.7769264
-17097,3721,2249,0.175979650666522,0.175979650666522,-104.9604142,39.7350474,-104.9604253,39.7334648
-3955,2834,3751,0.211238280484951,0.211238280484951,-105.0263725,39.7802711,-105.0263639,39.7821708
-4024,3809,3810,0.0544429181408591,0.0544429181408591,-104.9835982,39.729065,-104.9842348,39.7290698
-20310,10731,10732,0.0936889543382987,0.0936889543382987,-105.0247591,39.7586373,-105.0237565,39.7589777
-4047,2945,3827,0.152861408667566,0.152861408667566,-104.9251435,39.7065053,-104.9269304,39.7065091
-20433,10792,10793,0.0378257433013547,0.0378257433013547,-105.0232345,39.7595229,-105.023633,39.7596708
-4179,3929,3930,0.138165941069034,0.138165941069034,-105.0010599,39.7656602,-105.0005956,39.7668504
-18286,6824,3986,0.13302202745972,0.13302202745972,-105.0315024,39.7699322,-105.0299471,39.7698868
-20336,10747,10740,0.0348319951594156,0.0348319951594156,-105.0235111,39.7585885,-105.0235185,39.7589017
-5524,4925,4926,0.124694107926995,0.124694107926995,-104.9945592,39.735263,-104.9952734,39.7362407
-4269,4013,4014,0.135510024687662,0.135510024687662,-105.0299387,39.7439361,-105.0299558,39.7451547
-20344,10743,10749,0.0091415179335324,0.0091415179335324,-105.0236223,39.7590808,-105.0236241,39.7589986
-17114,3959,582,0.020964645373322,0.020964645373322,-104.957513,39.7479253,-104.9577579,39.7479349
-14696,4947,5018,0.17692836025714,0.17692836025714,-104.9712638,39.7384111,-104.9712466,39.7400022
-4361,4085,4086,0.0439979039927832,0.0439979039927832,-105.0106908,39.7838273,-105.0112057,39.7838279
-20443,10800,10797,0.0184411605361648,0.0184411605361648,-105.0218874,39.7616318,-105.0218716,39.7614664
-4436,1838,4143,0.106284873443858,0.106284873443858,-104.9874805,39.7209443,-104.9862384,39.7209146
-4437,4143,4144,0.0526768909687255,0.0526768909687255,-104.9862384,39.7209146,-104.9856225,39.7209124
-4456,4154,4155,0.103915690256788,0.103915690256788,-104.9497951,39.7209768,-104.9485801,39.7209768
-4457,4155,4156,0.103695542240372,0.103695542240372,-104.9485801,39.7209768,-104.9473677,39.7209707
-4476,4169,727,0.0512571810638195,0.0512571810638195,-104.9706014,39.7200889,-104.9700021,39.7200889
-4477,727,4170,0.0478531500173987,0.0478531500173987,-104.9700021,39.7200889,-104.9694426,39.7200889
-5818,5133,5134,0.102145042918239,0.102145042918239,-104.9395046,39.7345681,-104.9384246,39.7341756
-5912,5193,5194,0.024083404138801,0.024083404138801,-104.9880966,39.7241225,-104.9883782,39.7241223
-20491,10835,10836,0.00603667118796414,0.00603667118796414,-105.0188076,39.7585187,-105.0188782,39.7585174
-15862,9742,9737,0.126226895338302,0.126226895338302,-105.0409204,39.7309501,-105.0423956,39.7309893
-5931,5209,5210,0.693210396806986,0.693210396806986,-105.0451039,39.7239541,-105.0532075,39.7240888
-16531,9230,9133,0.0319382574203035,0.0319382574203035,-104.9961257,39.7050728,-104.9958777,39.7048581
-4627,1616,4276,0.105592921129571,0.105592921129571,-104.973572,39.7730583,-104.9744288,39.7737425
-20628,10756,10873,0.0143552752086545,0.0143552752086545,-105.0229933,39.7612883,-105.0229935,39.7611592
-20696,10910,4524,0.00942218117840877,0.00942218117840877,-105.0250813,39.7631194,-105.0250845,39.7632041
-18136,6043,10263,0.201163508503498,0.201163508503498,-105.0198962,39.7856251,-105.0198897,39.7874342
-4695,4331,808,0.139418137507802,0.139418137507802,-104.9769247,39.7519986,-104.9769333,39.7532524
-4698,4332,4333,0.161361651356291,0.161361651356291,-104.9771769,39.7840807,-104.9771941,39.7855318
-6050,4013,5293,0.134925136075026,0.134925136075026,-105.0299387,39.7439361,-105.0315166,39.7439551
-18073,6354,6355,0.0448917156923931,0.0448917156923931,-105.0110405,39.7255178,-105.0105212,39.7255767
-4744,4362,4363,0.107836470275357,0.107836470275357,-105.0015545,39.7112124,-105.0015367,39.7102427
-4765,4378,4379,0.183602249353544,0.183602249353544,-105.0263037,39.6939714,-105.0284495,39.6939582
-20634,10876,10877,0.0283642470117633,0.0283642470117633,-105.0137702,39.7627689,-105.0134384,39.7627649
-18170,5801,6061,0.198751914750946,0.198751914750946,-105.0339455,39.7874133,-105.0339562,39.7856259
-4835,4430,4431,0.145138896688942,0.145138896688942,-104.9874697,39.7174659,-104.9891666,39.7174681
-4862,4446,4447,0.0474277072247471,0.0474277072247471,-104.9781251,39.7567372,-104.9785209,39.7570361
-18509,9355,10301,0.00184585558113331,0.00184585558113331,-105.0410672,39.7487502,-105.0410673,39.7487336
-6260,174,1704,0.202197382513594,0.202197382513594,-105.0250478,39.6931151,-105.0250424,39.6912967
-4958,4516,4517,0.0491656169358357,0.0491656169358357,-105.012785,39.7632228,-105.0133602,39.7632209
-4983,4534,4535,0.0998419246339525,0.0998419246339525,-105.0227761,39.719354,-105.0227761,39.7202519
-19921,10413,7869,0.176021720356684,0.176021720356684,-104.9980711,39.720935,-104.9980684,39.719352
-5064,4589,4590,0.0154062452430768,0.0154062452430768,-104.9408036,39.744932,-104.9406235,39.7449365
-5086,4607,4608,0.119245405144689,0.119245405144689,-104.9747635,39.7448376,-104.9761582,39.7448434
-5111,4630,4631,0.139104857432868,0.139104857432868,-105.0189411,39.7753479,-105.0189415,39.7765989
-20788,5700,10925,0.00572872738726038,0.00572872738726038,-105.035764,39.7622008,-105.035831,39.7621995
-3915,2811,3713,0.0582509515897595,0.0582509515897595,-104.9921559,39.7183774,-104.9928366,39.7183943
-3917,3714,3715,0.0974014881112134,0.0974014881112134,-104.9940184,39.7183972,-104.995157,39.7184133
-20790,10947,8358,0.00657767070033128,0.00657767070033128,-105.0393977,39.7638972,-105.039401,39.7639563
-5221,4709,4710,0.122314419308335,0.122314419308335,-104.970235,39.782186,-104.970235,39.783286
-5243,875,4463,0.138237545752752,0.138237545752752,-104.9696488,39.7645085,-104.9696481,39.7657517
-18318,7366,7442,0.0771284931905011,0.0771284931905011,-105.0267891,39.7634203,-105.0275322,39.7638138
-5315,4770,4771,0.0488277782804066,0.0488277782804066,-104.97698,39.7224773,-104.9764091,39.7224805
-5336,2332,4786,0.0940516760159238,0.0940516760159238,-104.9238853,39.7231807,-104.9227856,39.7231786
-5388,4825,97,0.199068637854245,0.199068637854245,-104.9446221,39.7019764,-104.9442146,39.7002138
-17092,4597,9466,0.17373336205738,0.17373336205738,-104.9603758,39.7447782,-104.9603865,39.7432158
-5437,4857,4858,0.0515825872815672,0.0515825872815672,-104.9822782,39.7351518,-104.981675,39.7351569
-5483,4893,4894,0.046048954675788,0.046048954675788,-104.9456205,39.7351177,-104.945082,39.7351139
-5531,4931,4932,0.018084718359645,0.018084718359645,-104.9988399,39.7414088,-104.9989204,39.7415592
-6850,4421,5860,0.102045619820979,0.102045619820979,-105.0299945,39.7149702,-105.0311875,39.7149636
-6892,5894,5697,0.0947186956045014,0.0947186956045014,-105.0109744,39.7074034,-105.010983,39.7065516
-5585,1550,4269,0.196429076934968,0.196429076934968,-104.9801772,39.7765679,-104.980164,39.7783344
-3934,3732,3733,0.121703755972038,0.121703755972038,-105.0028207,39.7326047,-105.0028152,39.7336992
-3936,3734,3735,0.176733819603511,0.176733819603511,-105.0028252,39.7352849,-105.0028198,39.7368743
-5609,4988,4989,0.201206746854351,0.201206746854351,-104.9850453,39.7165375,-104.9850107,39.7147282
-6912,5908,1999,0.0940717232862836,0.0940717232862836,-104.9361363,39.7492673,-104.9350364,39.749243
-5705,932,2217,0.184097423724296,0.184097423724296,-104.9764282,39.7320463,-104.9764407,39.7337019
-5753,5081,5082,0.054538974474369,0.054538974474369,-104.9962546,39.7083175,-104.9957853,39.7079855
-5760,5088,1840,0.180073513278395,0.180073513278395,-104.9908341,39.719328,-104.9908489,39.7209474
-5785,2782,5108,0.132016677253578,0.132016677253578,-104.9708506,39.7669659,-104.9708358,39.7681531
-18555,7706,2990,0.19846083928125,0.19846083928125,-105.0434221,39.7567041,-105.0434248,39.7584889
-18352,3981,7040,0.199881951179414,0.199881951179414,-105.0299345,39.7669593,-105.0322731,39.7669531
-5885,5176,130,0.21663995111842,0.21663995111842,-105.0117034,39.6967417,-105.010718,39.694947
-14774,5924,3807,0.151382817559166,0.151382817559166,-104.9817146,39.7304273,-104.9817238,39.7290659
-17792,8508,6179,0.109482524773714,0.109482524773714,-104.9873985,39.757951,-104.9873985,39.7569664
-5955,5228,5229,0.0697529045378229,0.0697529045378229,-104.9565077,39.7110219,-104.9556923,39.7110153
-5977,1247,4556,0.132973381558885,0.132973381558885,-105.0205098,39.764433,-105.0220655,39.7644258
-20546,10755,2961,0.0206004250178228,0.0206004250178228,-105.0213448,39.7585398,-105.021139,39.7584434
-6055,3817,5296,0.100909929183789,0.100909929183789,-105.0369844,39.7439438,-105.0381646,39.7439521
-6076,172,1729,0.256606586411632,0.256606586411632,-105.022228,39.6931165,-105.02224,39.6908088
-6122,5349,4219,0.225702767955147,0.225702767955147,-104.9274952,39.692974,-104.928034,39.690987
-6172,5388,1958,0.131227861001577,0.131227861001577,-104.926934,39.709287,-104.9269593,39.708107
-20555,10853,10028,0.0104514157116194,0.0104514157116194,-105.015713,39.7584957,-105.015835,39.7585019
-6194,3028,5401,0.132618210317087,0.132618210317087,-104.9659386,39.7594982,-104.9659547,39.7606908
-18508,10301,9355,0.00184585558113331,0.00184585558113331,-105.0410673,39.7487336,-105.0410672,39.7487502
-6264,1941,5456,0.107892445399082,0.107892445399082,-104.9873753,39.7384618,-104.9861136,39.7384486
-6308,2067,5487,0.0160838439354733,0.0160838439354733,-104.9529898,39.7383752,-104.952802,39.738367
-6329,5502,5503,0.0544715490547718,0.0544715490547718,-104.9799824,39.7600071,-104.9804313,39.7603548
-20506,10834,10840,0.00711722931583218,0.00711722931583218,-105.0246593,39.7608722,-105.0245771,39.760862
-7656,5012,3346,0.092992178848436,0.092992178848436,-104.9582526,39.7728926,-104.9571645,39.7728928
-20397,10758,10759,0.00383951895664098,0.00383951895664098,-105.0243956,39.7608382,-105.0243509,39.7608348
-19830,10649,10650,0.203375176962632,0.203375176962632,-105.0422444,39.7384617,-105.0422095,39.7366329
-18258,6760,7775,0.140758515508444,0.140758515508444,-105.0276064,39.7688141,-105.0259595,39.7688086
-6495,3928,5619,0.089155871041537,0.089155871041537,-105.0017582,39.7648586,-105.0018152,39.7656592
-6517,963,5279,0.100667730658223,0.100667730658223,-104.9838018,39.7183372,-104.9826249,39.7183267
-7856,6469,6470,0.161667024351427,0.161667024351427,-104.9948277,39.7755094,-104.9967193,39.7755268
-14751,929,5933,0.176747364710656,0.176747364710656,-104.9781467,39.7320382,-104.9781588,39.7304487
-6673,3933,5622,0.0990284128542063,0.0990284128542063,-105.0006222,39.7730028,-105.0017809,39.7730094
-14716,5687,933,0.176256990051995,0.176256990051995,-104.9758385,39.7304575,-104.9758289,39.7320426
-20475,10824,10825,0.0252031422821514,0.0252031422821514,-105.0208891,39.7583505,-105.0205943,39.7583468
-6694,5571,5749,0.0485856779635153,0.0485856779635153,-105.0440106,39.7729501,-105.0445791,39.7729494
-6695,5749,5750,0.0408085368300434,0.0408085368300434,-105.0445791,39.7729494,-105.0450566,39.7729489
-3964,1865,3758,0.048211663801055,0.048211663801055,-104.9901799,39.6966614,-104.9907434,39.6966619
-3965,3758,3759,0.0426076537269238,0.0426076537269238,-104.9907434,39.6966619,-104.9912414,39.6966624
-11217,443,444,0.0957304857475106,0.0957304857475106,-104.932837,39.701282,-104.933949,39.701378
-6741,5790,5791,0.0533877005590012,0.0533877005590012,-105.0252043,39.7874266,-105.0258291,39.7874305
-6764,5808,5809,0.0505689128275476,0.0505689128275476,-104.9878972,39.7431235,-104.9873953,39.7433641
-6788,5828,5829,0.0547714293876055,0.0547714293876055,-104.9629082,39.6911444,-104.9622681,39.6911405
-18151,6044,10264,0.200762745716695,0.200762745716695,-105.0210575,39.7856258,-105.0210534,39.7874313
-6809,365,4683,0.0475091694046952,0.0475091694046952,-104.9756534,39.6915619,-104.9751813,39.691337
-6832,5852,1635,0.119748990570207,0.119748990570207,-105.014337,39.714787,-105.015737,39.714787
-18333,7291,3229,0.082496713136994,0.082496713136994,-105.0324737,39.7711548,-105.0324789,39.7718967
-6884,4667,1334,0.0975135676636165,0.0975135676636165,-105.011015,39.7139241,-105.0110016,39.7130472
-6901,5900,2304,0.084800082911027,0.084800082911027,-105.0127248,39.6967417,-105.0127167,39.6959791
-6971,5951,5952,0.0992113626066069,0.0992113626066069,-104.9292349,39.7310503,-104.9280748,39.7310598
-14748,6733,4864,0.192735673325504,0.192735673325504,-104.9782075,39.7368798,-104.9781817,39.7351466
-18279,6738,6739,0.202843884763896,0.202843884763896,-105.0386585,39.7802009,-105.0386693,39.7783767
-7077,898,4479,0.137748361044457,0.137748361044457,-104.9450302,39.764473,-104.945032,39.7657118
-18284,6793,6794,0.0655358337845971,0.0655358337845971,-105.0330596,39.769961,-105.0322928,39.76996
-7099,5645,4359,0.0906469204279695,0.0906469204279695,-104.9452967,39.7557043,-104.9453012,39.7565195
-7124,6037,6038,0.0494419955897028,0.0494419955897028,-105.0158387,39.7856226,-105.0164173,39.7856269
-7168,6071,6072,0.0522594599242274,0.0522594599242274,-105.0415553,39.7856202,-105.0421669,39.7856198
-11649,8349,7711,0.138715670988872,0.138715670988872,-105.0244311,39.7572827,-105.0244311,39.7560352
-11989,8046,6574,0.143315424684023,0.143315424684023,-104.9840288,39.7575763,-104.9828432,39.7584876
-11652,4542,1283,0.131430485325992,0.131430485325992,-105.0220625,39.7578568,-105.0205326,39.7577392
-17217,1908,6114,0.200603968094547,0.200603968094547,-104.9774775,39.7074592,-104.9775313,39.7092628
-20549,10805,10854,0.0404087571222208,0.0404087571222208,-105.0159721,39.7585081,-105.0159697,39.7588715
-11385,8240,8241,0.317652248043028,0.317652248043028,-104.949291,39.7799729,-104.9455738,39.7799622
-15924,9072,9753,0.0703936306326387,0.0703936306326387,-105.0172266,39.7293225,-105.0172454,39.7299554
-18551,9428,7705,0.2040983825575,0.2040983825575,-105.0422446,39.7548692,-105.0422469,39.7567047
-20556,10028,10805,0.0117396717425925,0.0117396717425925,-105.015835,39.7585019,-105.0159721,39.7585081
-20452,10807,10808,0.0757678652544946,0.0757678652544946,-105.0219538,39.7619476,-105.0228402,39.7619433
-7529,6285,2831,0.200979085137746,0.200979085137746,-105.0228094,39.7784186,-105.0227922,39.780226
-15928,9754,5382,0.011733427647939,0.011733427647939,-105.0172883,39.7338911,-105.0174251,39.7338829
-7553,4092,6302,0.0803403744103832,0.0803403744103832,-105.0158347,39.7839964,-105.015828,39.7832739
-7580,6315,3820,0.130703255177956,0.130703255177956,-105.0085636,39.7055461,-105.009791,39.7062461
-7677,1716,6365,0.197561364927668,0.197561364927668,-105.0442424,39.6912702,-105.0442509,39.6894935
-7751,5773,6410,0.160605281527339,0.160605281527339,-104.96707,39.7894676,-104.9686008,39.7903058
-18359,7774,7775,0.0541753575171131,0.0541753575171131,-105.0259637,39.7692958,-105.0259595,39.7688086
-7777,6426,2486,0.134234515445665,0.134234515445665,-105.0170359,39.7777689,-105.0170359,39.7789761
-12252,122,8617,0.0393889261650165,0.0393889261650165,-105.0080327,39.7574052,-105.0083585,39.7576557
-7883,6494,6495,0.00940457999056201,0.00940457999056201,-104.9672196,39.746075,-104.9671096,39.746075
-7884,6495,5423,0.0969372989858353,0.0969372989858353,-104.9671096,39.746075,-104.9659758,39.7460698
-3980,3771,3772,0.0481390459121498,0.0481390459121498,-104.9439848,39.7291098,-104.9445477,39.7291131
-3981,3772,3777,0.0470016129182315,0.0470016129182315,-104.9445477,39.7291131,-104.9450973,39.7291163
-7927,1795,6524,0.13760350708633,0.13760350708633,-104.9792579,39.6947744,-104.9782122,39.6938342
-8001,6561,6562,0.0546858550544455,0.0546858550544455,-104.9862601,39.7241317,-104.9856207,39.7241273
-11445,8257,385,0.474417191747682,0.474417191747682,-105.0155286,39.7835973,-105.009982,39.7834091
-8048,6593,6594,0.0289242599655845,0.0289242599655845,-105.0369834,39.7329675,-105.0373216,39.7329718
-18526,9154,9352,0.0531084744773735,0.0531084744773735,-105.0338562,39.7492256,-105.0336669,39.7487707
-8069,6605,6606,1.2681000346061,1.2681000346061,-104.9246358,39.778404,-104.9098059,39.7780011
-8092,4244,6622,0.082630423756929,0.082630423756929,-104.9827699,39.6966096,-104.9821284,39.6960541
-8093,6622,6623,0.0749027437652235,0.0749027437652235,-104.9821284,39.6960541,-104.9815624,39.6955402
-3996,3787,3788,0.0979026300528609,0.0979026300528609,-104.9590433,39.7291134,-104.9601881,39.7291071
-3997,3788,3789,0.0995935295086316,0.0995935295086316,-104.9601881,39.7291071,-104.9613527,39.7291055
-9386,7325,7326,0.0119980817003928,0.0119980817003928,-104.9541227,39.7800179,-104.954122,39.7801258
-20477,10789,10826,0.0103983863250137,0.0103983863250137,-105.0223762,39.7591046,-105.0223089,39.7591825
-20507,10840,10823,0.00612377712997262,0.00612377712997262,-105.0245771,39.760862,-105.0245064,39.7608531
-8262,841,6717,0.175943907281508,0.175943907281508,-104.9425503,39.7162314,-104.9425532,39.7146491
-9533,7395,7396,0.139422525474238,0.139422525474238,-105.0331,39.7535942,-105.0330742,39.7548479
-20405,10779,8354,0.0261167106000956,0.0261167106000956,-105.02337,39.7605759,-105.0236698,39.7606212
-8335,6764,6765,0.0503863905918892,0.0503863905918892,-105.0276005,39.7707095,-105.0275931,39.7711626
-8336,6765,6766,0.0491492877930629,0.0491492877930629,-105.0275931,39.7711626,-105.0275892,39.7716046
-4013,983,3800,0.100500044528257,0.100500044528257,-104.9740784,39.7290693,-104.9752536,39.7290708
-4014,3800,3801,0.0985249152645202,0.0985249152645202,-104.9752536,39.7290708,-104.9764057,39.7290681
-15231,8248,8334,0.0146425177596963,0.0146425177596963,-104.9245969,39.6962239,-104.9244842,39.6961248
-8409,3830,6807,0.0888447463890759,0.0888447463890759,-104.9241221,39.7061949,-104.9241221,39.7053959
-18321,6063,2543,0.201974991797574,0.201974991797574,-105.0363465,39.7856148,-105.0363411,39.7874312
-8457,6832,1495,0.201208565152389,0.201208565152389,-105.0402255,39.6967584,-105.0402341,39.6949489
-19836,2624,5204,0.178927982846839,0.178927982846839,-105.0008976,39.7225155,-105.000925,39.7241245
-18379,8493,8494,0.0504160144523199,0.0504160144523199,-105.0258941,39.7702117,-105.0258959,39.7706651
-8503,6860,6861,0.0162922756173271,0.0162922756173271,-104.9499587,39.714645,-104.9497683,39.7146491
-8527,3425,6874,0.0494311548712974,0.0494311548712974,-105.034629,39.7657398,-105.0351985,39.7658172
-8599,1237,4811,0.0968243021950299,0.0968243021950299,-105.0123583,39.7765593,-105.0134913,39.7765593
-8699,1327,6954,0.11293333226081,0.11293333226081,-105.0452398,39.7129907,-105.045038,39.711987
-8743,6978,6843,0.0844431261667327,0.0844431261667327,-105.040895,39.7112397,-105.0408778,39.7104804
-8770,6990,6991,0.0486520030390688,0.0486520030390688,-104.931754,39.771293,-104.9317465,39.7717305
-8791,7006,4358,0.202474203830337,0.202474203830337,-104.9316943,39.7546764,-104.9317184,39.7564972
-8792,4358,7007,0.00688683462760985,0.00688683462760985,-104.9317184,39.7564972,-104.9317157,39.7565591
-8840,7032,6092,0.0997655880788332,0.0997655880788332,-105.032262,39.7603311,-105.0322556,39.7612283
-12243,8612,8613,0.138493887289201,0.138493887289201,-105.0007767,39.7499711,-104.9996308,39.7508515
-8862,2493,2840,0.128352303826166,0.128352303826166,-105.0314566,39.7791188,-105.0314566,39.7802731
-8889,7059,4436,0.0844445583973766,0.0844445583973766,-104.9500388,39.7020179,-104.9500303,39.7012585
-15879,8770,8763,0.0140298928163018,0.0140298928163018,-105.0445575,39.7355437,-105.0447184,39.7355684
-12248,5788,8274,0.146502988080446,0.146502988080446,-104.9971819,39.7527381,-104.9959856,39.7536815
-20224,10712,8757,0.0605456526720602,0.0605456526720602,-104.941312,39.6942105,-104.9413115,39.694755
-15789,9625,2105,0.0133775626084498,0.0133775626084498,-105.0249286,39.7370709,-105.0249129,39.7371906
-9093,4150,2344,0.174578433496429,0.174578433496429,-104.9594242,39.720981,-104.9594135,39.719411
-12934,8900,8688,0.0533584685274483,0.0533584685274483,-105.0027294,39.7457477,-105.0030556,39.7453386
-18558,10316,10317,0.318647498327865,0.318647498327865,-105.0343233,39.7828561,-105.03063,39.7832519
-9165,7197,7198,0.272798906116362,0.272798906116362,-104.9405457,39.6929325,-104.9373575,39.6929534
-9189,7209,3616,0.0495666126691076,0.0495666126691076,-104.9809977,39.6930099,-104.9804184,39.6930078
-10453,3743,5856,0.10095556193443,0.10095556193443,-104.9874858,39.7156689,-104.9875046,39.7147611
-20231,10714,10715,0.0286157939247338,0.0286157939247338,-104.9409313,39.6936604,-104.9412314,39.693774
-20392,10774,10770,0.00608971066273246,0.00608971066273246,-105.0243795,39.760698,-105.0244499,39.7607064
-9337,4780,1523,0.0520500965787765,0.0520500965787765,-104.9751815,39.7020519,-104.9745731,39.702049
-20017,8044,6572,0.144143863155146,0.144143863155146,-104.9831794,39.7569094,-104.981987,39.757826
-20561,10856,10798,0.00573758430075899,0.00573758430075899,-105.0218184,39.7619476,-105.0218855,39.7619462
-10672,7485,7454,0.0961864249467466,0.0961864249467466,-105.0275311,39.708526,-105.0275397,39.707661
-15863,9737,9743,0.0881669372882309,0.0881669372882309,-105.0423956,39.7309893,-105.0434068,39.731144
-9436,7346,4173,0.192934476657366,0.192934476657366,-104.9667331,39.7183519,-104.966736,39.720087
-10721,7452,5690,0.129238470693044,0.129238470693044,-105.0420537,39.7080307,-105.0420279,39.7068686
-20510,638,10782,0.00926383363589588,0.00926383363589588,-105.0180723,39.7583468,-105.0179661,39.7583302
-18479,9039,9040,0.136726032574097,0.136726032574097,-105.0398975,39.7511951,-105.0398922,39.7499655
-9591,7412,5066,0.050234753132255,0.050234753132255,-105.0379016,39.716558,-105.0384889,39.7165547
-9612,2128,5998,0.154063403679123,0.154063403679123,-104.9275725,39.7628734,-104.9257702,39.7628567
-16186,7721,5815,0.197248711738883,0.197248711738883,-104.9845556,39.6894094,-104.9845543,39.6911833
-9637,1423,7186,0.128478917444104,0.128478917444104,-105.0369066,39.7820848,-105.0369189,39.7832402
-11449,8259,8260,0.319737139262779,0.319737139262779,-104.9757153,39.7797326,-104.9794547,39.7798315
-9690,1895,7457,0.0666302144465139,0.0666302144465139,-104.9875851,39.7075228,-104.9883639,39.7075324
-9691,7457,7458,0.0198488245240688,0.0198488245240688,-104.9883639,39.7075324,-104.9885959,39.7075353
-19476,10519,10520,0.0516997558936505,0.0516997558936505,-104.9902831,39.708118,-104.9902917,39.7076531
-9736,7494,5544,0.102560827713484,0.102560827713484,-105.0416791,39.7511831,-105.0416664,39.7521054
-16038,9802,9796,0.0179822727083053,0.0179822727083053,-105.0123441,39.6891881,-105.0121361,39.6892112
-11790,6564,8037,0.143771757250665,0.143771757250665,-104.9784697,39.7551079,-104.9796416,39.7541805
-9810,7528,7529,0.208257062216787,0.208257062216787,-104.9281699,39.7546826,-104.9282316,39.7565549
-9836,7542,7543,0.0265476903097887,0.0265476903097887,-105.0449552,39.7669613,-105.0449615,39.7672
-18631,9484,7408,0.179068927816078,0.179068927816078,-105.0330762,39.7149479,-105.0330817,39.7165583
-15241,9537,9539,0.0227628365288052,0.0227628365288052,-104.935374,39.7058529,-104.9351084,39.7058405
-20526,1286,10810,0.0112823826001832,0.0112823826001832,-105.020542,39.7581637,-105.0204422,39.7580973
-9968,7619,7620,0.0778364486506147,0.0778364486506147,-104.939234,39.787086,-104.939234,39.787786
-9969,7620,7621,0.111522724623373,0.111522724623373,-104.939234,39.787786,-104.939134,39.788786
-9988,7625,1491,0.204666735578584,0.204666735578584,-105.0061725,39.696731,-105.0061812,39.6948904
-10072,7660,2775,0.203041970554709,0.203041970554709,-104.9246105,39.7656064,-104.9245856,39.7674323
-10073,2775,6897,0.203220599619524,0.203220599619524,-104.9245856,39.7674323,-104.9246113,39.7692598
-10091,7671,690,0.200329217944331,0.200329217944331,-104.9246387,39.7401205,-104.9246436,39.7419221
-10115,2354,4156,0.173430880829093,0.173430880829093,-104.947365,39.719411,-104.9473677,39.7209707
-10138,3577,5644,0.141664156461633,0.141664156461633,-104.9476756,39.7544343,-104.9476672,39.7557083
-10164,7702,7703,0.0486413772868685,0.0486413772868685,-105.0393233,39.756708,-105.0398923,39.7567045
-10187,7030,7715,0.0498024158316235,0.0498024158316235,-105.0322599,39.7566691,-105.0328425,39.7566691
-12249,8274,8295,0.153451254229228,0.153451254229228,-104.9959856,39.7536815,-104.9947185,39.754659
-11642,1281,8347,0.0589263897659084,0.0589263897659084,-105.0205312,39.7553029,-105.0198419,39.7552988
-10281,7757,2638,0.20261361621015,0.20261361621015,-105.0151648,39.7202486,-105.015182,39.7220707
-12251,8616,122,0.0306511482720316,0.0306511482720316,-105.0077835,39.757207,-105.0080327,39.7574052
-10351,5524,6462,0.155650660428743,0.155650660428743,-105.0392946,39.7738629,-105.0392949,39.7752627
-11777,5360,8407,0.147060404896327,0.147060404896327,-104.9803323,39.7509836,-104.9815533,39.750052
-20362,10734,9209,0.0303997458302742,0.0303997458302742,-105.0220514,39.7585674,-105.0216966,39.7585487
-10404,4224,7568,0.0462000499013743,0.0462000499013743,-104.9869346,39.7873956,-104.9863939,39.7873956
-10427,5696,6320,0.173275054190131,0.173275054190131,-105.0371184,39.7071789,-105.0371184,39.7056206
-16041,9802,9797,0.0106947269448384,0.0106947269448384,-105.0123441,39.6891881,-105.0122561,39.6891198
-10504,1036,7842,0.0544400914304572,0.0544400914304572,-104.9622462,39.751954,-104.9616094,39.7519514
-12047,8526,8527,0.0840721683590618,0.0840721683590618,-105.0049596,39.7505226,-105.0054168,39.751192
-10550,4923,5368,0.0856922507743825,0.0856922507743825,-104.9929606,39.7331034,-104.9929409,39.7338739
-16085,9818,9819,0.0412898984205639,0.0412898984205639,-104.9498899,39.7811457,-104.950362,39.7810666
-10600,7873,7874,0.202540822887829,0.202540822887829,-104.9558976,39.7801127,-104.9558736,39.7819341
-10623,7886,1192,0.167316235534945,0.167316235534945,-104.9566946,39.7256155,-104.9567021,39.7271202
-20558,10845,2957,0.00878460299692283,0.00878460299692283,-105.0187438,39.7583413,-105.0187431,39.7584203
-10644,7563,7901,0.105394463133352,0.105394463133352,-104.9922506,39.7545528,-104.9931346,39.7552135
-12237,1599,8609,0.00546433627657245,0.00546433627657245,-105.0021858,39.7415267,-105.0022412,39.7415022
-20564,10825,1287,0.00477901915260098,0.00477901915260098,-105.0205943,39.7583468,-105.0205384,39.7583461
-10749,6942,7958,0.162394709841225,0.162394709841225,-104.9677319,39.7819277,-104.967835,39.783386
-10796,7983,947,0.174677658409185,0.174677658409185,-104.9540572,39.7305236,-104.9540658,39.7320945
-10817,6492,4607,0.147058520431446,0.147058520431446,-104.9747749,39.7461601,-104.9747635,39.7448376
-12476,5450,5427,0.050269770055972,0.050269770055972,-104.9704932,39.6929632,-104.9699057,39.6929673
-10839,6220,8004,0.052907543789053,0.052907543789053,-104.9752801,39.7395432,-104.9752839,39.740019
-15731,7157,8801,0.0199400844261404,0.0199400844261404,-104.9592821,39.716079,-104.9590492,39.7160869
-16956,10040,9425,0.0116537581995054,0.0116537581995054,-105.0167064,39.7549204,-105.0167051,39.7548156
-10942,4686,4956,0.099446723287275,0.099446723287275,-104.9940692,39.730515,-104.9952321,39.7305115
-16188,7203,1784,0.197361998677517,0.197361998677517,-104.9845476,39.6930151,-104.9845583,39.69479
-10964,6721,4791,0.136892276030183,0.136892276030183,-105.0112289,39.7310568,-105.0128297,39.7310587
-10986,5402,3133,0.105232928623448,0.105232928623448,-104.9659547,39.7607434,-104.9647236,39.7607393
-20369,10733,10746,0.00402873670536954,0.00402873670536954,-105.0236546,39.7589766,-105.0236226,39.75895
-12735,8822,7751,0.202267643963295,0.202267643963295,-104.9371703,39.6875009,-104.9371553,39.6893199
-16205,7728,5823,0.195806305910918,0.195806305910918,-104.9798585,39.6893971,-104.9798455,39.691158
-15885,9619,8879,0.0100154912435563,0.0100154912435563,-105.0382355,39.7340565,-105.0382757,39.7341411
-16189,1784,4247,0.203808666270494,0.203808666270494,-104.9845583,39.69479,-104.984534,39.6966228
-11109,8035,807,0.0159273560245565,0.0159273560245565,-104.9781265,39.7531137,-104.9781222,39.7532569
-11132,8133,6270,0.051417429454822,0.051417429454822,-104.9615993,39.7482178,-104.960998,39.748227
-11156,2087,2654,0.0953557861022671,0.0953557861022671,-104.9530315,39.7837193,-104.9519157,39.7837325
-11157,2654,4115,0.0506170186006763,0.0506170186006763,-104.9519157,39.7837325,-104.9513234,39.7837391
-11208,8161,8162,0.355822290917686,0.355822290917686,-104.9406062,39.7114203,-104.936452,39.711255
-11220,8169,106,0.241259609778708,0.241259609778708,-104.928834,39.700221,-104.931654,39.700221
-11240,8178,8182,0.0195790567337129,0.0195790567337129,-104.9340806,39.7042496,-104.9340007,39.7044146
-20821,8330,10923,0.00839528658401215,0.00839528658401215,-105.0382057,39.7621211,-105.0382061,39.7620456
-17791,3305,8508,0.0362477709828647,0.0362477709828647,-104.9874361,39.7582757,-104.9873985,39.757951
-11322,8214,5950,0.203024250253409,0.203024250253409,-104.9304515,39.7292344,-104.9304356,39.7310602
-13061,8944,8945,0.0479106655937031,0.0479106655937031,-104.9951643,39.7677183,-104.9946559,39.7678998
-11349,1754,4801,0.0245317247967943,0.0245317247967943,-105.0124896,39.7620198,-105.0127766,39.7620198
-11390,8244,8245,0.0389791405679458,0.0389791405679458,-104.9498727,39.781647,-104.9495723,39.7819108
-17817,9286,10185,0.00969626713044654,0.00969626713044654,-105.0165836,39.7450617,-105.0166938,39.7450411
-11462,8270,701,0.039999373678842,0.039999373678842,-104.9314164,39.7801263,-104.9318804,39.7801737
-11492,8281,8282,0.00503511807894305,0.00503511807894305,-104.9929142,39.7513421,-104.9928753,39.7513081
-11538,8302,8303,0.0107298944611382,0.0107298944611382,-105.0266827,39.760929,-105.0265595,39.7609475
-11571,7713,8322,0.206137749537799,0.206137749537799,-105.0304918,39.7566748,-105.0305079,39.754821
-11573,1766,7715,0.157141019260281,0.157141019260281,-105.0334284,39.7553296,-105.0328425,39.7566691
-13237,9010,4325,0.222509982407309,0.222509982407309,-105.0324492,39.7058187,-105.0350499,39.7058517
-11632,1278,4529,0.134276517370514,0.134276517370514,-105.0205102,39.7524035,-105.0220809,39.7524035
-11724,8374,8375,0.133513247237079,0.133513247237079,-105.0357895,39.7499869,-105.0357821,39.7511876
-11797,8414,4446,0.0913151320718964,0.0913151320718964,-104.9779515,39.7575475,-104.9781251,39.7567372
-11798,4446,6565,0.148651456771305,0.148651456771305,-104.9781251,39.7567372,-104.9793644,39.7557994
-11799,6565,8038,0.145022863674794,0.145022863674794,-104.9793644,39.7557994,-104.9805458,39.7548634
-13411,4426,9064,0.0342337858603608,0.0342337858603608,-104.998467,39.7666069,-104.9980982,39.766727
-11882,8457,1807,0.101184879886606,0.101184879886606,-105.0067213,39.7517064,-105.0073479,39.7524784
-13518,7635,7602,0.0983630321096794,0.0983630321096794,-105.025114,39.7275076,-105.025114,39.7283922
-11995,8048,6576,0.143165005086162,0.143165005086162,-104.9849005,39.7582519,-104.9837118,39.7591589
-12062,8532,3932,0.283100338690813,0.283100338690813,-104.9548313,39.7460446,-104.9574881,39.7475642
-12064,8532,3745,0.0315839509500456,0.0315839509500456,-104.9548313,39.7460446,-104.9546644,39.7457912
-12065,3745,8533,0.0402006397458181,0.0402006397458181,-104.9546644,39.7457912,-104.9542138,39.7458945
-16198,1788,6622,0.140253824514813,0.140253824514813,-104.9821522,39.6947929,-104.9821284,39.6960541
-12143,2334,7677,0.0942814693046897,0.0942814693046897,-104.9238826,39.7256356,-104.924985,39.7256294
-13771,2561,9189,0.0689861433647756,0.0689861433647756,-104.9942282,39.6920823,-104.9938171,39.6915486
-18571,10322,10326,0.0103554459054315,0.0103554459054315,-105.0341731,39.7804672,-105.0340524,39.7804589
-15556,9654,9655,0.107168580692288,0.107168580692288,-104.9768244,39.7184001,-104.9773908,39.7192598
-12220,8596,8597,0.100597506592905,0.100597506592905,-105.007127,39.7436106,-105.0075587,39.7444522
-12284,8235,7279,0.114584410389232,0.114584410389232,-105.002653,39.7588064,-105.0017875,39.7595933
-12290,8634,8488,0.146216431524827,0.146216431524827,-104.9972254,39.7453524,-104.9959984,39.7462684
-15445,9605,9606,0.0107985098434616,0.0107985098434616,-105.000722,39.7440195,-105.0007281,39.7441165
-12402,8686,2352,0.174110261708509,0.174110261708509,-104.9497874,39.7178534,-104.9497951,39.7194192
-12403,2352,4154,0.17319721774215,0.17319721774215,-104.9497951,39.7194192,-104.9497951,39.7209768
-12445,8705,902,0.277961591263562,0.277961591263562,-104.9404928,39.7619574,-104.9404687,39.7644571
-16201,7209,5822,0.204832695484964,0.204832695484964,-104.9809977,39.6930099,-104.9810031,39.6911678
-14071,3116,6673,0.099476803467174,0.099476803467174,-104.9350959,39.7113475,-104.9362583,39.7113747
-12563,729,7060,0.0981255480039199,0.0981255480039199,-104.9511904,39.6947719,-104.9500436,39.6947813
-12670,8793,5460,0.173942223750684,0.173942223750684,-104.9823009,39.7368732,-104.9823009,39.7384375
-12698,8808,8810,0.00713796130621387,0.00713796130621387,-104.9500032,39.7176723,-104.9500622,39.7177177
-12701,2643,8805,0.104981962462916,0.104981962462916,-104.9521735,39.7182139,-104.9534009,39.718219
-12721,3633,3295,0.250204598549556,0.250204598549556,-104.9408419,39.7060696,-104.9407838,39.7038199
-16683,9985,9930,0.0816514509832002,0.0816514509832002,-105.0060701,39.7427445,-105.0053557,39.7432318
-12762,3506,8170,0.201022944642928,0.201022944642928,-104.9406406,39.6983765,-104.9405886,39.7001839
-15870,8842,8843,0.0221571458561984,0.0221571458561984,-105.0381819,39.7339575,-105.0382728,39.7337709
-15950,9765,9766,0.0194093177763062,0.0194093177763062,-104.9988186,39.7053295,-104.9990439,39.7053089
-12930,3167,8897,0.107237063498964,0.107237063498964,-105.00401,39.7438456,-105.0051222,39.7433998
-14520,3985,7053,0.133213475028965,0.133213475028965,-105.0299452,39.769416,-105.0315035,39.7694414
-15337,9564,9565,0.0333323202761363,0.0333323202761363,-104.9659399,39.7170729,-104.965948,39.7173726
-15952,9765,9758,0.0491105082028732,0.0491105082028732,-104.9988186,39.7053295,-104.9982473,39.7053729
-13016,8918,8921,0.143291466888449,0.143291466888449,-104.9947937,39.769857,-104.9945399,39.7685832
-13097,8917,8959,0.032086215385934,0.032086215385934,-104.9949225,39.7698636,-104.9949911,39.7695799
-13121,640,8968,0.045462010282231,0.045462010282231,-104.9875489,39.7695895,-104.9879458,39.7698617
-13175,4472,2794,0.133415072213096,0.133415072213096,-104.9559081,39.7657294,-104.9559387,39.766929
-13447,9080,4647,0.227691913723815,0.227691913723815,-105.0212418,39.7253265,-105.0186451,39.7248745
-19029,7690,8144,0.0861073402797158,0.0861073402797158,-104.9475732,39.784427,-104.9481599,39.7837974
-13280,4312,7812,0.197562058294396,0.197562058294396,-105.0344662,39.7021142,-105.0367751,39.7021472
-20373,10757,10758,0.0390214492856105,0.0390214492856105,-105.0243898,39.7611891,-105.0243956,39.7608382
-13466,9093,9091,0.0528525628364664,0.0528525628364664,-105.0183719,39.7253071,-105.0189899,39.7253071
-15458,1970,8766,0.0532545399938913,0.0532545399938913,-105.0018024,39.7442826,-105.0021048,39.7447013
-13600,2311,6580,0.108271978342533,0.108271978342533,-105.0112958,39.7314875,-105.0113223,39.732461
-13622,3355,9148,0.0901126087179192,0.0901126087179192,-104.9338318,39.7292375,-104.9327781,39.7292306
-15127,8268,225,0.129419996314042,0.129419996314042,-104.9407004,39.7790485,-104.9407032,39.7778846
-15855,9737,9738,0.0422997339419691,0.0422997339419691,-105.0423956,39.7309893,-105.0423031,39.7306156
-15953,9758,9764,0.0382745737843307,0.0382745737843307,-104.9982473,39.7053729,-104.9984431,39.7056824
-13641,9152,327,0.371274069669657,0.371274069669657,-104.9968785,39.7078836,-104.9987289,39.7109039
-13690,6833,6976,0.085342873664165,0.085342873664165,-105.0400351,39.6894654,-105.0410323,39.6894803
-15860,9707,9741,0.0544957036472965,0.0544957036472965,-105.039492,39.7313626,-105.038896,39.7315361
-13709,6929,3818,0.116035215256342,0.116035215256342,-105.0093602,39.6967483,-105.0107164,39.6967417
-15411,7964,9590,0.052042549974644,0.052042549974644,-105.0005794,39.7440362,-105.0001457,39.7443646
-18495,15,6384,0.132622389900901,0.132622389900901,-105.0351824,39.7463725,-105.0351851,39.7475652
-18578,10319,10327,0.0490398009212077,0.0490398009212077,-105.0275696,39.7818193,-105.0271244,39.7820976
-13818,8483,6705,0.147706661087796,0.147706661087796,-104.9942509,39.7449031,-104.9930306,39.7458434
-13972,9250,9251,0.0609360549506678,0.0609360549506678,-105.0144838,39.7291094,-105.0147648,39.729613
-20378,10761,10762,0.0703070927126279,0.0703070927126279,-105.0250806,39.7603661,-105.0243849,39.7600288
-14062,6351,2574,0.0264285559063396,0.0264285559063396,-104.9499571,39.7092328,-104.949965,39.7089952
-4057,542,3837,0.0481841661951123,0.0481841661951123,-105.0428359,39.7516736,-105.0428292,39.7521069
-20619,10811,10850,0.0311826470096292,0.0311826470096292,-105.022998,39.7596958,-105.0226484,39.7596157
-14143,9286,9287,0.00349243594701226,0.00349243594701226,-105.0165836,39.7450617,-105.0165756,39.7450309
-15782,2533,9708,0.0671466764878958,0.0671466764878958,-105.0240058,39.7380698,-105.0237619,39.7374958
-18700,1376,9773,0.0602159412724284,0.0602159412724284,-105.0390952,39.7117746,-105.0390872,39.7112331
-19501,10528,10529,0.0145223093781074,0.0145223093781074,-104.9883708,39.7066508,-104.9883718,39.7065202
-16094,9821,9496,0.0522797219291825,0.0522797219291825,-104.9498895,39.7799931,-104.9498734,39.7795231
-16682,9984,9985,0.111071610148866,0.111071610148866,-105.0071843,39.7422309,-105.0060701,39.7427445
-16220,9022,9008,0.10706671130041,0.10706671130041,-105.0274035,39.6987105,-105.0261751,39.6985266
-16222,9850,7740,0.404338691233817,0.404338691233817,-104.9564159,39.6856969,-104.9564079,39.6893332
-16223,7740,5835,0.200008410058821,0.200008410058821,-104.9564079,39.6893332,-104.9563972,39.6911319
-14438,6143,4017,0.133566629484228,0.133566629484228,-105.0283819,39.7487852,-105.0299442,39.7487903
-14458,9168,3834,0.0502958887489777,0.0502958887489777,-105.0422474,39.7487571,-105.0428357,39.748759
-16499,8709,8890,0.00781309402153006,0.00781309402153006,-105.0028925,39.7443552,-105.0029709,39.7443191
-14504,9364,2172,0.0261972288759813,0.0261972288759813,-105.0143742,39.7692739,-105.0146807,39.7692764
-16631,9312,9964,0.536418418139307,0.536418418139307,-104.9787525,39.7399405,-104.9850261,39.7399281
-16632,9964,9965,0.081644512591407,0.081644512591407,-104.9850261,39.7399281,-104.9859809,39.7399196
-15472,8892,1971,0.0354218020701201,0.0354218020701201,-105.0008068,39.745167,-105.0012102,39.7450944
-14617,9402,9350,0.13375643872535,0.13375643872535,-105.0252747,39.7548256,-105.0252762,39.7536227
-14954,7265,7584,0.0944614970989242,0.0944614970989242,-104.937233,39.7546682,-104.936128,39.7546682
-4076,3852,3853,0.00162344592902021,0.00162344592902021,-105.0428243,39.7765465,-105.0428243,39.7765611
-15099,7228,2370,0.054925658104601,0.054925658104601,-104.9964723,39.7592924,-104.9971148,39.759299
-16381,9878,9879,0.0338421848775343,0.0338421848775343,-104.971336,39.7034463,-104.9716243,39.7032379
-16508,9928,9929,0.0170279633676167,0.0170279633676167,-105.0062945,39.7430132,-105.0061216,39.7430892
-16525,5158,7669,0.0405110122092171,0.0405110122092171,-104.9248331,39.7295029,-104.9245319,39.7297841
-16594,9950,9951,0.140650325269802,0.140650325269802,-104.9990547,39.7486029,-104.9979162,39.749516
-17419,10101,10102,0.0281887857345848,0.0281887857345848,-104.9831564,39.6890637,-104.9832476,39.6893073
-16852,9866,6519,0.0479747206312546,0.0479747206312546,-104.9586795,39.6929681,-104.9581188,39.6929673
-16968,10038,10045,0.00348952632939911,0.00348952632939911,-105.0168024,39.7557524,-105.0168432,39.7557514
-17638,10159,9498,0.0561256700305383,0.0561256700305383,-104.9503671,39.7793277,-104.949868,39.7789996
-17642,8238,524,0.198799957504709,0.198799957504709,-104.9470651,39.7802508,-104.9493835,39.780399
-17105,331,10064,0.12693044123038,0.12693044123038,-104.9522901,39.745499,-104.9521145,39.7466325
-17422,10082,10083,0.0318734478115971,0.0318734478115971,-104.9834085,39.6888408,-104.9836553,39.6886261
-17268,4260,3518,0.200851927356296,0.200851927356296,-104.9623073,39.6965813,-104.9623127,39.6983876
-17398,7305,3261,0.198983160217956,0.198983160217956,-104.9669227,39.7020659,-104.9668678,39.7038549
-17400,3509,4251,0.199228485757107,0.199228485757107,-104.9680976,39.6983824,-104.968103,39.6965907
-17911,4835,9197,0.134589353492833,0.134589353492833,-105.0001358,39.7148074,-104.9985624,39.7147937
-17544,8941,8264,0.168906883412351,0.168906883412351,-104.9897554,39.7854547,-104.9897645,39.7839357
-18155,10135,10136,0.408197365852498,0.408197365852498,-105.023387,39.7874357,-105.0233776,39.7911067
-17572,10145,10146,0.0800519816931861,0.0800519816931861,-105.0183186,39.7308259,-105.0192547,39.73083
-17628,2882,8136,0.162489310093733,0.162489310093733,-104.9592584,39.7852492,-104.9592611,39.7837879
-18601,10335,7656,0.178628836370645,0.178628836370645,-105.0432472,39.729877,-105.0432633,39.7282706
-17816,9287,10184,0.0350560568035198,0.0350560568035198,-105.0165756,39.7450309,-105.0162526,39.7452251
-17966,6242,10236,0.0113656789072773,0.0113656789072773,-104.9882366,39.7256418,-104.9882388,39.7255396
-17886,9955,4390,0.0561034767074801,0.0561034767074801,-104.98691,39.7485653,-104.9873785,39.7489186
-17918,5173,6867,0.199959252458115,0.199959252458115,-104.9856359,39.7165436,-104.9856575,39.7147454
-17919,6867,5276,0.0971272913038605,0.0971272913038605,-104.9856575,39.7147454,-104.9856735,39.713872
-19066,5495,9469,0.177422724680083,0.177422724680083,-104.9407458,39.7383041,-104.9407436,39.7367085
-19037,9496,9494,0.0281063525870562,0.0281063525870562,-104.9498734,39.7795231,-104.9496925,39.779312
-18774,9642,7121,0.176777734913143,0.176777734913143,-105.0008766,39.7368756,-105.000878,39.7352858
-19101,10429,10049,0.0400790686743565,0.0400790686743565,-105.0000136,39.7493831,-105.0003395,39.7496422
-19617,10477,10588,0.0688805182452796,0.0688805182452796,-104.9902547,39.7104857,-104.9910599,39.7104919
-19314,6700,5030,0.15289416238876,0.15289416238876,-104.9873849,39.7414911,-104.987378,39.7401161
-19425,36,3535,0.208182345564595,0.208182345564595,-104.9809867,39.7002821,-104.9809732,39.6984099
-19426,3535,4231,0.197905943796208,0.197905943796208,-104.9809732,39.6984099,-104.9809651,39.6966301
-19462,10478,10483,0.0205384885375563,0.0205384885375563,-104.9902571,39.7102784,-104.9902592,39.7100937
-19725,4489,10627,0.00886289645656064,0.00886289645656064,-105.0052547,39.734614,-105.0051511,39.7346116
-19764,5140,5153,0.0242552277861381,0.0242552277861381,-104.9325581,39.7331296,-104.9324587,39.7333339
-20136,2752,6988,0.0528412012093399,0.0528412012093399,-104.9326896,39.7401271,-104.9320716,39.7401271
-19927,4579,8367,0.130318576605927,0.130318576605927,-105.0358145,39.741514,-105.035848,39.7426857
-20000,10690,8645,0.0319530891427096,0.0319530891427096,-105.0042718,39.7504958,-105.0040083,39.7506996
-4106,1534,3875,0.0874992877759652,0.0874992877759652,-104.944148,39.7574036,-104.944148,39.7581905
-20047,9078,9193,0.27590001979893,0.27590001979893,-104.9941364,39.7021826,-104.9954572,39.7044462
-397,400,401,0.186988741368815,0.186988741368815,-105.00936,39.7403456,-105.0115284,39.740564
-398,401,402,0.0834459188949902,0.0834459188949902,-105.0115284,39.740564,-105.0124556,39.7407982
-400,403,313,0.0512719310633618,0.0512719310633618,-104.970135,39.780686,-104.970735,39.780686
-402,404,405,0.135745743044228,0.135745743044228,-105.0090936,39.725822,-105.0106325,39.7261211
-404,406,407,0.304825723005793,0.304825723005793,-105.0107416,39.7261622,-105.0123607,39.72372
-406,408,409,0.43926972528011,0.43926972528011,-105.0014039,39.7148758,-104.9995495,39.7111919
-408,410,411,0.386425449179561,0.386425449179561,-105.0296018,39.7254255,-105.0251128,39.7250295
-410,412,413,0.296429557961552,0.296429557961552,-105.0287256,39.7838921,-105.0252567,39.7839187
-411,413,414,0.0146716283322865,0.0146716283322865,-105.0252567,39.7839187,-105.025085,39.7839187
-412,414,415,0.325808855480319,0.325808855480319,-105.025085,39.7839187,-105.0212787,39.7837465
-414,416,328,0.121195048255912,0.121195048255912,-104.9487461,39.7445647,-104.9500765,39.7441885
-416,329,416,0.287289513548727,0.287289513548727,-104.951939,39.7453698,-104.9487461,39.7445647
-417,416,417,0.245312696429149,0.245312696429149,-104.9487461,39.7445647,-104.9458794,39.7444723
-20053,1955,8185,0.122183214039011,0.122183214039011,-104.9375707,39.7122386,-104.936636,39.7114077
-20198,8571,5783,0.145694845246542,0.145694845246542,-104.9953197,39.7494633,-104.9941411,39.7504097
-14833,7026,8320,0.0139341057083995,0.0139341057083995,-105.0315379,39.7548347,-105.0317009,39.7548347
-14834,8320,7029,0.0476978989477955,0.0476978989477955,-105.0317009,39.7548347,-105.0322588,39.7548413
-15442,9600,8606,0.035907314389173,0.035907314389173,-105.0002179,39.7415263,-105.0005878,39.7413734
-19656,10607,10531,0.00409092160847847,0.00409092160847847,-104.9883278,39.7060132,-104.9883756,39.7060143
-20737,10917,10886,0.0142612706482701,0.0142612706482701,-105.0397934,39.7652927,-105.0396293,39.7653159
-14870,9363,2450,0.140513945011527,0.140513945011527,-105.0053953,39.7692764,-105.0054661,39.7705389
-11514,269,270,0.151462432210479,0.151462432210479,-105.0281511,39.7598548,-105.029923,39.7598619
-12364,8672,8674,0.0109017354569362,0.0109017354569362,-105.011589,39.7530795,-105.011632,39.7531718
-12,12,13,0.134681710739383,0.134681710739383,-105.0299361,39.7463759,-105.0315114,39.7463778
-14892,8103,9009,0.099173697837006,0.099173697837006,-105.0324492,39.7031047,-105.0324149,39.7022132
-14893,9009,8146,0.0976735888216106,0.0976735888216106,-105.0324149,39.7022132,-105.0324321,39.7013349
-33,36,37,0.0487053100188426,0.0487053100188426,-104.9809867,39.7002821,-104.9804174,39.7002821
-14912,7271,7600,0.0956539249415721,0.0956539249415721,-104.9373374,39.7208988,-104.936219,39.7208978
-18874,7987,218,0.124810113553517,0.124810113553517,-104.9874076,39.7007261,-104.9862918,39.700003
-18876,3520,84,0.204554290109371,0.204554290109371,-104.961154,39.6983849,-104.9611564,39.7002245
-15454,8884,9611,0.0785818613777641,0.0785818613777641,-105.0010815,39.7421312,-105.0002927,39.7424939
-322,154,206,0.0287029588335131,0.0287029588335131,-104.9570001,39.7445158,-104.9566644,39.7445134
-18627,9483,1310,0.220178764490314,0.220178764490314,-105.0332559,39.7113941,-105.033071,39.7133691
-18894,10375,10376,0.00936614397970835,0.00936614397970835,-105.0119408,39.7500586,-105.0120158,39.75012
-15122,8269,9491,0.0542877044701678,0.0542877044701678,-104.9404976,39.7792513,-104.9405035,39.7797395
-18715,7650,8069,0.263314494448216,0.263314494448216,-105.0378319,39.7282456,-105.0378507,39.7306136
-15971,8998,4214,0.0961806119218467,0.0961806119218467,-105.0168967,39.7111539,-105.0180211,39.7111539
-551,544,545,0.0205710614294522,0.0205710614294522,-105.034963,39.736586,-105.034963,39.736401
-15166,7386,9508,0.0293624650986513,0.0293624650986513,-105.0330679,39.7403194,-105.0334112,39.7403128
-18679,2589,1852,0.179197761430995,0.179197761430995,-105.0367321,39.7229406,-105.0367134,39.7213291
-602,593,594,0.0187536593392831,0.0187536593392831,-104.9689126,39.70386,-104.9686935,39.7038655
-16091,9818,526,0.0930965533879819,0.0930965533879819,-104.9498899,39.7811457,-104.9499002,39.7803085
-13959,448,9111,0.0841767201213853,0.0841767201213853,-105.0126579,39.7258229,-105.0136091,39.7256283
-16119,427,4010,0.113680084788302,0.113680084788302,-105.028564,39.7403785,-105.0298922,39.7403326
-17947,10226,10227,0.0385043082181171,0.0385043082181171,-104.9872048,39.7236101,-104.9869878,39.7233067
-16175,7201,5812,0.201274753121947,0.201274753121947,-104.9868436,39.6930068,-104.9868503,39.6911967
-699,693,694,0.0993204992661042,0.0993204992661042,-104.9535885,39.7419889,-104.9524269,39.7419829
-16265,9865,7738,0.345896015945794,0.345896015945794,-104.958709,39.6862164,-104.9586954,39.6893271
-16341,9873,8704,0.014474001055321,0.014474001055321,-104.9406644,39.7617801,-104.9404955,39.7617894
-11688,774,775,0.0224766779818413,0.0224766779818413,-105.0018298,39.7532062,-105.0016626,39.7533622
-16464,1081,9912,0.0130855777393443,0.0130855777393443,-104.972547,39.7069966,-104.9726409,39.7070895
-18428,2983,10286,0.340223280394145,0.340223280394145,-105.038723,39.7584839,-105.0387191,39.7554242
-16719,485,10003,0.0666623735199971,0.0666623735199971,-104.9862761,39.7027725,-104.9862718,39.703372
-18212,2988,7850,0.201655156198778,0.201655156198778,-105.0422605,39.7584955,-105.0422473,39.760309
-18213,7850,6382,0.201197176818258,0.201197176818258,-105.0422473,39.760309,-105.042255,39.7621184
-17132,1799,4238,0.205173852791716,0.205173852791716,-104.9763617,39.694761,-104.9763404,39.6966061
-268,278,279,0.0669047721045728,0.0669047721045728,-104.9876105,39.7785645,-104.987002,39.7789431
-18436,10287,10292,0.102997198003519,0.102997198003519,-105.0292196,39.7613906,-105.0280151,39.7614164
-17134,3543,44,0.198313047920784,0.198313047920784,-104.9763295,39.6984254,-104.9763617,39.7002087
-15194,7392,9524,0.0521516926212219,0.0521516926212219,-105.0330703,39.7500019,-105.0336803,39.7499978
-19559,10563,10553,0.0196751082256841,0.0196751082256841,-104.9888131,39.7091506,-104.9890431,39.7091518
-19864,10666,10667,0.12344950946071,0.12344950946071,-105.03696,39.7374437,-105.0363945,39.7384652
-1022,827,1037,0.134288205933024,0.134288205933024,-104.9622082,39.7532291,-104.9622266,39.7544367
-19991,10682,10649,0.0504069045792634,0.0504069045792634,-105.0416549,39.7384584,-105.0422444,39.7384617
-327,328,329,0.206425005842362,0.206425005842362,-104.9500765,39.7441885,-104.951939,39.7453698
-15245,9540,9541,0.00803794786000152,0.00803794786000152,-104.9356634,39.7056506,-104.93572,39.7055929
-14681,446,727,0.207769052846247,0.207769052846247,-104.9699934,39.7219574,-104.9700021,39.7200889
-18636,1846,2580,0.177268272488638,0.177268272488638,-105.0330898,39.7213326,-105.0330978,39.7229268
-15883,9594,8842,0.0247081602797847,0.0247081602797847,-105.0379029,39.7340153,-105.0381819,39.7339575
-18445,1124,10289,0.0496295455281554,0.0496295455281554,-105.0404721,39.7607638,-105.0398915,39.7607667
-15483,9622,9623,0.0434553081653394,0.0434553081653394,-105.0002589,39.7457416,-105.0006156,39.7454632
-15784,9596,2105,0.0159980383240888,0.0159980383240888,-105.0247945,39.7370792,-105.0249129,39.7371906
-18450,7849,2986,0.202541671618508,0.202541671618508,-105.0410779,39.7603102,-105.0410754,39.7584887
-15540,1221,8429,0.105180771417586,0.105180771417586,-105.0123509,39.7369148,-105.0135809,39.7369043
-17095,3719,3720,0.174398206796096,0.174398206796096,-104.9604099,39.7383822,-104.9604079,39.7368138
-12950,1330,1331,0.0133918888831226,0.0133918888831226,-105.0020771,39.7434247,-105.0019226,39.7434049
-19570,10569,7462,0.00803939319633032,0.00803939319633032,-104.9895239,39.707619,-104.9895239,39.7075467
-1312,1338,1339,0.0991205046552405,0.0991205046552405,-105.016828,39.7130093,-105.0179868,39.7130093
-15958,9768,9769,0.0623405517746533,0.0623405517746533,-105.0005192,39.711198,-105.0002214,39.7106863
-325,268,153,0.064083026712354,0.064083026712354,-104.9564977,39.7449464,-104.9572293,39.7448211
-386,388,389,0.0751873239589982,0.0751873239589982,-104.9994213,39.713266,-105.0001337,39.7136621
-1392,1419,1420,0.399589215327938,0.399589215327938,-105.0017224,39.7819937,-105.0063986,39.7819993
-16282,9096,9098,0.0807475840805468,0.0807475840805468,-105.0171656,39.7251183,-105.0162316,39.725012
-391,393,394,0.185819928048464,0.185819928048464,-105.0075703,39.7588771,-105.0057374,39.7597756
-15753,6671,2023,0.100119371100459,0.100119371100459,-104.9362703,39.7162376,-104.9350998,39.7162443
-18126,6042,10262,0.201564202628959,0.201564202628959,-105.0187387,39.7856192,-105.0187307,39.7874319
-17137,4425,1909,0.200241543203617,0.200241543203617,-104.9763417,39.7056707,-104.9763514,39.7074715
-16013,9783,9784,0.0337977814282775,0.0337977814282775,-104.9993276,39.6890403,-104.9989876,39.689195
-12006,8049,6578,0.147083508160087,0.147083508160087,-104.9866649,39.7595656,-104.9854669,39.7605151
-2343,2334,2335,0.271393460830069,0.271393460830069,-104.9238826,39.7256356,-104.9238831,39.7280763
-19952,4670,7857,0.100774147000306,0.100774147000306,-104.9940093,39.7230042,-104.992831,39.7230021
-20659,8289,5957,0.0879515292456205,0.0879515292456205,-104.9873968,39.7469971,-104.9873834,39.7462062
-12349,8665,8666,0.0489645255680358,0.0489645255680358,-105.0124819,39.7528908,-105.0129797,39.752673
-1536,1559,1560,0.0937807122385258,0.0937807122385258,-104.9582585,39.7776672,-104.9571611,39.7776691
-2410,2115,2401,0.446933916798798,0.446933916798798,-104.9270004,39.7731311,-104.9317412,39.7748279
-19581,7470,10575,0.00667183269883622,0.00667183269883622,-104.988589,39.7084596,-104.9885885,39.7085196
-1557,1582,1583,0.0811305260417956,0.0811305260417956,-105.0442642,39.6882131,-105.0452106,39.6881689
-469,472,473,0.100239678379349,0.100239678379349,-105.0184425,39.7479196,-105.0185991,39.7470262
-569,562,563,0.0844940522055572,0.0844940522055572,-104.9848447,39.7398421,-104.9854438,39.7392378
-12010,5508,7081,0.146350144860015,0.146350144860015,-104.9830521,39.7623846,-104.9818287,39.7633054
-2663,2621,2622,0.0420400210402162,0.0420400210402162,-104.9980629,39.7225275,-104.9985544,39.7225221
-16696,9597,7094,0.00600769898364912,0.00600769898364912,-105.0002485,39.7423649,-105.00026,39.7424182
-18883,7310,84,0.202570183098447,0.202570183098447,-104.9611376,39.7020462,-104.9611564,39.7002245
-16736,7419,10004,0.204798388413466,0.204798388413466,-104.9519684,39.7022366,-104.9539532,39.7012069
-1623,1651,1652,0.0452674748546477,0.0452674748546477,-105.0156831,39.6890231,-105.0156826,39.688616
-12948,1303,1304,0.066448544071591,0.066448544071591,-105.0017368,39.7441763,-105.0024118,39.7438801
-20711,10885,10914,0.126940460926274,0.126940460926274,-105.0253682,39.762093,-105.0253716,39.7632346
-20712,10914,5881,0.00554916008288024,0.00554916008288024,-105.0253716,39.7632346,-105.0253707,39.7632845
-16509,9929,9930,0.0673766892433469,0.0673766892433469,-105.0061216,39.7430892,-105.0053557,39.7432318
-1643,1670,1671,0.136647738333876,0.136647738333876,-105.0064415,39.7680441,-105.0080403,39.7680432
-19534,6856,10550,0.00719456093421717,0.00719456093421717,-104.9890317,39.7102465,-104.9890324,39.7101818
-19538,4704,10552,0.0168576392161317,0.0168576392161317,-104.9890412,39.7093409,-104.9890427,39.7091893
-19539,10552,10553,0.00416995013524246,0.00416995013524246,-104.9890427,39.7091893,-104.9890431,39.7091518
-11689,775,836,0.0388095868373909,0.0388095868373909,-105.0016626,39.7533622,-105.00135,39.7536153
-20,21,22,0.0174708821601448,0.0174708821601448,-105.0184092,39.7572776,-105.0186135,39.7572732
-16449,9906,9907,0.130469688472308,0.130469688472308,-104.9731572,39.7002179,-104.9730961,39.7013903
-41,44,45,0.0507831501846365,0.0507831501846365,-104.9763617,39.7002087,-104.9757682,39.7002165
-17298,7736,5829,0.204153885319898,0.204153885319898,-104.9622681,39.6893045,-104.9622681,39.6911405
-64,70,71,0.046163806906163,0.046163806906163,-104.9674891,39.7002337,-104.9669496,39.700226
-18467,10299,10298,0.126605139952982,0.126605139952982,-105.0434286,39.7498153,-105.0431907,39.7509391
-18685,1316,1372,0.177012768030012,0.177012768030012,-105.0366981,39.7133763,-105.0366894,39.7117844
-1826,1842,1843,0.155652098486701,0.155652098486701,-105.0186351,39.7211578,-105.020455,39.721152
-19783,3732,10633,0.0548138207459151,0.0548138207459151,-105.0028207,39.7326047,-105.0021797,39.732604
-1846,1861,1862,0.0495211888216282,0.0495211888216282,-105.0427108,39.7213283,-105.0432898,39.7213253
-177,186,187,0.102075274690852,0.102075274690852,-105.0425601,39.6931327,-105.0437531,39.6931327
-202,214,215,0.233063347854791,0.233063347854791,-104.9627533,39.7801312,-104.9654677,39.7803353
-271,281,282,0.0968799942510371,0.0968799942510371,-104.9847034,39.7794255,-104.98357,39.7794055
-335,336,337,0.26926308578439,0.26926308578439,-104.9390909,39.7824749,-104.9373307,39.7804664
-14122,3945,503,0.0521094341958735,0.0521094341958735,-104.9450651,39.7484271,-104.9454639,39.7487815
-1949,1964,1965,0.100541047482359,0.100541047482359,-104.9246161,39.743742,-104.925792,39.7437354
-503,497,498,0.332501427216364,0.332501427216364,-105.0147909,39.7286028,-105.0153507,39.7256437
-508,502,503,0.0804669922754196,0.0804669922754196,-104.9447772,39.7492764,-104.9454639,39.7487815
-19271,10424,10425,0.0133101789702176,0.0133101789702176,-104.9949557,39.7460704,-104.9948429,39.7459879
-19460,10507,10477,0.0195042673008727,0.0195042673008727,-104.9902528,39.7106611,-104.9902547,39.7104857
-12962,1631,1599,0.105987129966341,0.105987129966341,-105.0033016,39.7411115,-105.0021858,39.7415267
-11814,2150,2151,0.12777055976042,0.12777055976042,-105.0101838,39.745904,-105.0100859,39.7447574
-18730,7649,8066,0.263509830967107,0.263509830967107,-105.0367537,39.7282406,-105.0367563,39.7306104
-18671,2605,1538,0.176823430683456,0.176823430683456,-105.0421532,39.7229647,-105.042161,39.7245549
-20037,816,3558,0.154160936652516,0.154160936652516,-104.9739648,39.753238,-104.9739683,39.7546244
-20700,10894,10895,0.0022719801727208,0.0022719801727208,-105.0400807,39.765692,-105.0400542,39.7656936
-17029,3606,3607,0.0180484124991241,0.0180484124991241,-105.0243187,39.7548283,-105.0243214,39.7549906
-850,863,864,0.0616242283467915,0.0616242283467915,-104.9428605,39.7639291,-104.9428605,39.7644833
-18683,3539,3608,0.177667253998454,0.177667253998454,-105.0367081,39.716558,-105.036708,39.7149602
-20825,9400,10954,0.0122123114573311,0.0122123114573311,-105.0252875,39.7601454,-105.0254122,39.760199
-872,885,886,0.105399149486358,0.105399149486358,-104.9585659,39.7644817,-104.9573328,39.7644759
-19920,2621,10413,0.177079309456246,0.177079309456246,-104.9980629,39.7225275,-104.9980711,39.720935
-892,906,907,0.104783494637697,0.104783494637697,-104.9356148,39.7644767,-104.934389,39.7644899
-12344,8660,8661,0.0179171962919351,0.0179171962919351,-105.012233,39.7522705,-105.0123532,39.7524025
-17141,3089,4509,0.200737491088575,0.200737491088575,-104.9763937,39.7128949,-104.9763295,39.7146995
-16291,2376,2377,0.00482087191216397,0.00482087191216397,-104.9707858,39.6964209,-104.9707298,39.6964161
-963,974,975,0.202802632214452,0.202802632214452,-104.9840335,39.7873956,-104.9840507,39.7892194
-17135,44,4412,0.404761668333185,0.404761668333185,-104.9763617,39.7002087,-104.9763723,39.7038488
-17088,10071,9940,0.138093381903903,0.138093381903903,-104.9603859,39.7507127,-104.960382,39.7494708
-16845,10022,10018,0.0055152683612349,0.0055152683612349,-104.9700592,39.7032957,-104.9700592,39.7032461
-17952,10226,10230,0.0192923880160408,0.0192923880160408,-104.9872048,39.7236101,-104.9872054,39.7237836
-20322,10741,10742,0.00907488670500163,0.00907488670500163,-105.0236254,39.7588748,-105.0237259,39.7589011
-1113,1129,1130,0.204124873969403,0.204124873969403,-105.0404692,39.7676124,-105.0404986,39.769448
-16607,7890,9325,0.145145340110648,0.145145340110648,-104.9856992,39.7495249,-104.9845026,39.7504509
-15260,9550,9551,0.0630135708366092,0.0630135708366092,-104.9336788,39.7049326,-104.9343788,39.705109
-19433,10110,10489,0.0489242953920304,0.0489242953920304,-104.9839674,39.7033596,-104.9833961,39.7033795
-16954,10038,10039,0.0207511303582817,0.0207511303582817,-105.0168024,39.7557524,-105.0167989,39.7555658
-12357,8669,8668,0.00723037090372959,0.00723037090372959,-105.0124521,39.7523897,-105.0125278,39.7524187
-1183,1198,1199,0.0305943034250603,0.0305943034250603,-104.9520847,39.7271285,-104.951727,39.7271329
-19442,10493,10494,0.0196148764551294,0.0196148764551294,-104.9911447,39.7106683,-104.9911454,39.7104919
-19443,10494,10495,0.0228284210093234,0.0228284210093234,-104.9911454,39.7104919,-104.9911462,39.7102866
-2633,2594,2595,0.0115937480855902,0.0115937480855902,-105.0383715,39.7229322,-105.038507,39.7229353
-1205,1220,1221,0.0900481853791487,0.0900481853791487,-105.0123588,39.736105,-105.0123509,39.7369148
-18180,5796,6056,0.200195877654712,0.200195877654712,-105.0304694,39.7874265,-105.030464,39.7856261
-11707,1245,1246,0.0231530055304531,0.0231530055304531,-105.001931,39.7490887,-105.0017374,39.7492343
-19444,10495,10496,0.0213401735101805,0.0213401735101805,-104.9911462,39.7102866,-104.9911429,39.7100947
-19445,10496,10497,0.0182367704590367,0.0182367704590367,-104.9911429,39.7100947,-104.9911409,39.7099307
-2703,2659,2660,0.155649282617483,0.155649282617483,-104.9517329,39.7291286,-104.9517031,39.7305282
-19446,10497,10498,0.0203055071588043,0.0203055071588043,-104.9911409,39.7099307,-104.9911436,39.7097481
-2724,107,2679,0.0450807290855188,0.0450807290855188,-104.930428,39.700221,-104.930452,39.700626
-1266,1286,1287,0.0202842890457172,0.0202842890457172,-105.020542,39.7581637,-105.0205384,39.7583461
-18451,2986,7704,0.199650644692106,0.199650644692106,-105.0410754,39.7584887,-105.0410725,39.7566932
-16289,1363,2376,0.00344312944616261,0.00344312944616261,-104.9708258,39.6964243,-104.9707858,39.6964209
-19447,10498,10499,0.0196160459333464,0.0196160459333464,-104.9911436,39.7097481,-104.9911462,39.7095717
-14693,2225,4875,0.162113763012991,0.162113763012991,-104.9712038,39.7337071,-104.9712147,39.735165
-1308,1334,1335,0.129255645714035,0.129255645714035,-105.0110016,39.7130472,-105.012511,39.712992
-14695,4946,4947,0.168905093573288,0.168905093573288,-104.9712638,39.7368921,-104.9712638,39.7384111
-1332,1357,1358,0.136424467862451,0.136424467862451,-104.992658,39.7824897,-104.9942545,39.7824831
-19448,10499,10487,0.023296750596408,0.023296750596408,-104.9911462,39.7095717,-104.9911492,39.7093622
-2841,2789,2790,0.0523852002781698,0.0523852002781698,-104.9615875,39.7669517,-104.9609746,39.7669537
-15843,7795,9723,0.020416694003674,0.020416694003674,-105.0393113,39.734237,-105.0393086,39.7344206
-18886,7308,3267,0.201549354300641,0.201549354300641,-104.9634496,39.7020562,-104.9634713,39.7038687
-19449,10487,10500,0.022940948763835,0.022940948763835,-104.9911492,39.7093622,-104.9911522,39.7091559
-17307,5827,7735,0.20365816745981,0.20365816745981,-104.963474,39.6911476,-104.9634901,39.6893161
-2499,2480,2481,0.265342544498994,0.265342544498994,-105.0064445,39.779418,-105.0095495,39.7794028
-19450,10500,10501,0.0189264900266028,0.0189264900266028,-104.9911522,39.7091559,-104.9911546,39.7089857
-18889,1923,6123,0.200475462008098,0.200475462008098,-104.9634658,39.7074881,-104.963455,39.709291
-1428,1451,1452,0.107578729884622,0.107578729884622,-105.0038258,39.7039943,-105.003594,39.7030434
-18647,7412,4053,0.176566575042864,0.176566575042864,-105.0379016,39.716558,-105.0379043,39.7181459
-1452,1471,1472,0.147622384612895,0.147622384612895,-105.0231842,39.6908088,-105.0231842,39.6894812
-19451,10501,10502,0.0200830353316625,0.0200830353316625,-104.9911546,39.7089857,-104.9911572,39.7088051
-2953,2897,2898,0.0472912053919854,0.0472912053919854,-104.9733528,39.7553064,-104.9733526,39.7557317
-16310,2439,2721,0.0812562615874829,0.0812562615874829,-104.9697532,39.6960539,-104.9693989,39.6953759
-12320,1302,1603,0.00893905362813633,0.00893905362813633,-105.0032204,39.7501518,-105.0031242,39.7501833
-19452,10502,10503,0.0197272337869401,0.0197272337869401,-104.9911572,39.7088051,-104.9911598,39.7086277
-19453,10503,7482,0.0181814350817939,0.0181814350817939,-104.9911598,39.7086277,-104.9911621,39.7084642
-19038,9494,229,0.0588468541295868,0.0588468541295868,-104.9496925,39.779312,-104.9490058,39.7793516
-1498,1517,1518,0.199413272863754,0.199413272863754,-104.9745809,39.7128876,-104.9745407,39.7110945
-15846,9732,1098,0.0848710138660927,0.0848710138660927,-105.0415588,39.7301641,-105.0405664,39.7301724
-19454,7482,10504,0.0196839111368948,0.0196839111368948,-104.9911621,39.7084642,-104.9911657,39.7082872
-19455,10504,10505,0.017559948119168,0.017559948119168,-104.9911657,39.7082872,-104.991169,39.7081293
-13365,9051,9052,0.103390283727961,0.103390283727961,-104.9821447,39.7799919,-104.9833542,39.7800156
-2998,1652,2935,0.112349122861115,0.112349122861115,-105.0156826,39.688616,-105.0169377,39.6883193
-17375,1796,4235,0.206436210016501,0.206436210016501,-104.9786977,39.6947606,-104.9786601,39.6966169
-13963,9247,9102,0.0619095710643366,0.0619095710643366,-105.0153507,39.7256041,-105.0160728,39.7255648
-1534,1557,1558,0.0743776380849984,0.0743776380849984,-104.9602842,39.7776637,-104.959414,39.7776762
-19916,8774,7640,0.176934657107496,0.176934657107496,-104.9980954,39.7289058,-104.9981033,39.7273146
-19917,7640,6233,0.179269287981755,0.179269287981755,-104.9981033,39.7273146,-104.9980791,39.7257025
-1556,1581,1582,0.0903340712116846,0.0903340712116846,-105.0432085,39.6882131,-105.0442642,39.6882131
-18461,9354,9528,0.135770728089025,0.135770728089025,-105.0387149,39.7487553,-105.0387229,39.7499763
-19456,10505,7464,0.0643341844968674,0.0643341844968674,-104.991169,39.7081293,-104.9911808,39.7075508
-19919,5202,2621,0.177194532329155,0.177194532329155,-104.9980791,39.724121,-104.9980629,39.7225275
-1603,1634,1635,0.0667169559865797,0.0667169559865797,-105.015737,39.715387,-105.015737,39.714787
-15911,9239,9240,0.00759910247117962,0.00759910247117962,-105.0423752,39.716622,-105.042453,39.716655
-3133,2004,3061,0.0946875314878615,0.0946875314878615,-104.9350741,39.7601485,-104.9339669,39.7601749
-1648,1675,1676,0.0232219414191173,0.0232219414191173,-105.0143702,39.7680596,-105.0146419,39.76806
-1649,1676,1677,0.104810655650978,0.104810655650978,-105.0146419,39.76806,-105.0158682,39.7680616
-18412,7776,7163,0.0985154391997448,0.0985154391997448,-105.0393033,39.7543708,-105.0381509,39.7543757
-3153,3077,3078,0.0921654003892753,0.0921654003892753,-104.9850625,39.7129392,-104.9839851,39.7129498
-1666,1129,1692,0.0515669276869657,0.0515669276869657,-105.0404692,39.7676124,-105.0410724,39.7676025
-256,264,265,0.00881331069899833,0.00881331069899833,-104.9479356,39.6896766,-104.9480386,39.6896766
-19580,10574,7470,0.0064160385090956,0.0064160385090956,-104.9885894,39.7084019,-104.988589,39.7084596
-1690,1714,1715,0.111918529606987,0.111918529606987,-105.0420365,39.6912966,-105.0433411,39.691224
-12366,8674,8671,0.0118216471510326,0.0118216471510326,-105.011632,39.7531718,-105.0117521,39.7531191
-18801,10352,9812,0.039652100920871,0.039652100920871,-104.9919121,39.7693329,-104.9915921,39.7695911
-379,381,382,0.0684082960066799,0.0684082960066799,-105.0323033,39.747591,-105.0315032,39.7475841
-16308,2827,2851,0.00473328951361683,0.00473328951361683,-104.9721964,39.6979102,-104.9722098,39.6978689
-20640,10878,10879,0.0287629224507079,0.0287629224507079,-105.0137749,39.7624832,-105.0134384,39.762482
-20278,5573,10727,0.00799925463089475,0.00799925463089475,-105.0440081,39.7735153,-105.0439145,39.7735153
-18122,2538,10266,0.180269607102109,0.180269607102109,-105.01068,39.7874523,-105.0106756,39.7890735
-1907,1919,1920,0.101419584890654,0.101419584890654,-104.966335,39.707486,-104.9651495,39.7074752
-16419,3282,3283,0.0297579469637327,0.0297579469637327,-104.9687946,39.7020548,-104.9691419,39.7020399
-11533,1234,1235,0.136499599599558,0.136499599599558,-105.0293502,39.757272,-105.0293331,39.7560445
-18135,4099,6043,0.191045620861521,0.191045620861521,-105.0199054,39.783907,-105.0198962,39.7856251
-16763,4439,9868,0.0469300202486105,0.0469300202486105,-104.9546886,39.6984458,-104.9551011,39.698724
-257,265,257,0.0618021904449226,0.0618021904449226,-104.9480386,39.6896766,-104.9487596,39.6897096
-3413,3306,3307,0.147259003832799,0.147259003832799,-104.9862237,39.7592221,-104.985009,39.7601612
-1997,2009,2010,0.0436503011483876,0.0436503011483876,-104.9345766,39.7253138,-104.9349064,39.7256134
-381,383,384,0.174765079599045,0.174765079599045,-104.9934396,39.7273502,-104.9934388,39.7289219
-3437,3324,3325,0.13969071524798,0.13969071524798,-104.9573671,39.7557244,-104.95735,39.7569806
-2020,2029,2030,0.0536884532048604,0.0536884532048604,-104.9801901,39.7638953,-104.9806366,39.7642349
-14708,5223,5330,0.173633760067415,0.173633760067415,-104.9747109,39.7384283,-104.9746992,39.7368668
-17179,5410,5449,0.194891408787823,0.194891408787823,-104.9704709,39.6893522,-104.9704727,39.6911049
-2041,2049,2050,0.203224924896292,0.203224924896292,-104.9675091,39.7056815,-104.9674629,39.7038542
-15894,9255,9441,0.0812248966226341,0.0812248966226341,-105.0419691,39.7342088,-105.0429186,39.7342294
-2068,2071,2072,0.108635365611271,0.108635365611271,-104.953042,39.7728934,-104.9530584,39.7738703
-383,385,386,0.313694212518365,0.313694212518365,-105.009982,39.7834091,-105.0063891,39.78283
-15938,9757,9756,0.156652526688463,0.156652526688463,-104.9945244,39.7005048,-104.9962839,39.7001148
-2092,1220,2094,0.120498651922126,0.120498651922126,-105.0123588,39.736105,-105.013768,39.7361049
-16738,725,51,0.242028173240196,0.242028173240196,-104.9512072,39.7016443,-104.953347,39.7002205
-19560,10553,10564,0.0204794292027182,0.0204794292027182,-104.9890431,39.7091518,-104.9892825,39.7091533
-2166,2165,2166,0.0846335919696035,0.0846335919696035,-105.0140457,39.7285578,-105.0140055,39.7293183
-19638,10597,10526,0.00694709641094844,0.00694709641094844,-104.9882854,39.7071884,-104.9883666,39.7071894
-3597,3446,2803,0.137873345883867,0.137873345883867,-104.9462506,39.7657138,-104.9462404,39.7669537
-16317,2510,3005,0.00592207877923616,0.00592207877923616,-104.9709885,39.6970925,-104.9710275,39.6970485
-17174,5326,5327,0.109586213492937,0.109586213492937,-104.9693021,39.6883439,-104.9693125,39.6893294
-16740,4437,10005,0.047793833799427,0.047793833799427,-104.9534368,39.6995469,-104.9531164,39.6991948
-3644,3483,3484,0.202897902969007,0.202897902969007,-104.9640501,39.6929756,-104.9640755,39.691151
-2231,2232,2233,0.0942717670146639,0.0942717670146639,-104.9395024,39.7328547,-104.9384001,39.7328678
-2232,2233,2234,0.0947564865992517,0.0947564865992517,-104.9384001,39.7328678,-104.937292,39.7328682
-16741,10005,4510,0.0465117651564764,0.0465117651564764,-104.9531164,39.6991948,-104.9527144,39.6989132
-2248,2251,2252,0.0515208780131149,0.0515208780131149,-104.9592063,39.733462,-104.9586038,39.733462
-16742,4510,10006,0.0392105126712721,0.0392105126712721,-104.9527144,39.6989132,-104.9523627,39.6986871
-3687,3523,3524,0.057537938641533,0.057537938641533,-104.9593466,39.6983911,-104.9586741,39.6983954
-2276,2276,2277,0.201064010739015,0.201064010739015,-104.930959,39.7455899,-104.9309504,39.7473981
-18183,6051,5769,0.201340675613812,0.201340675613812,-105.0269948,39.7856221,-105.0269959,39.7874328
-18863,9178,2185,0.000908525082812035,0.000908525082812035,-105.0164243,39.7306043,-105.0164339,39.7306008
-14108,502,3544,0.223192299132,0.223192299132,-104.9447772,39.7492764,-104.9457557,39.7511373
-16417,3130,3281,0.0400386431725339,0.0400386431725339,-104.970947,39.7024436,-104.9710667,39.7027917
-16286,1362,1363,0.0694355006798695,0.0694355006798695,-104.9710484,39.6970248,-104.9708258,39.6964243
-3729,3563,3564,0.1023601599905,0.1023601599905,-104.9671659,39.7544703,-104.9659688,39.7544499
-13961,9112,9247,0.133632751867418,0.133632751867418,-105.0137882,39.7256148,-105.0153507,39.7256041
-2325,1348,1614,0.104366499106977,0.104366499106977,-104.9759324,39.769905,-104.9767564,39.7705977
-18909,10388,10381,0.014813120492833,0.014813120492833,-105.0124728,39.7502617,-105.0125841,39.7503638
-18903,10381,10380,0.00882005349877488,0.00882005349877488,-105.0125841,39.7503638,-105.0126123,39.7504401
-18454,4296,10295,0.0897566766881454,0.0897566766881454,-105.0410672,39.7539301,-105.041069,39.7531229
-14692,941,2225,0.184174515609916,0.184174515609916,-104.9712147,39.7320508,-104.9712038,39.7337071
-19558,10562,10563,0.0196153093677919,0.0196153093677919,-104.9885838,39.7091493,-104.9888131,39.7091506
-16743,10006,7566,0.0419162617939555,0.0419162617939555,-104.9523627,39.6986871,-104.9519988,39.6984347
-19568,7474,10568,0.0062936328481519,0.0062936328481519,-104.9895159,39.7084654,-104.9895159,39.7084088
-18905,10382,10383,0.00831887899673018,0.00831887899673018,-105.0125197,39.7501462,-105.0124996,39.7502194
-17147,4241,3546,0.202185735299221,0.202185735299221,-104.9751708,39.6966094,-104.9751709,39.6984277
-14720,937,2221,0.184339220920538,0.184339220920538,-104.9735126,39.732045,-104.9735163,39.7337028
-18637,2580,7383,0.244324669292135,0.244324669292135,-105.0330978,39.7229268,-105.0336341,39.725085
-2484,2467,2468,0.0154146632189528,0.0154146632189528,-104.9339464,39.7474085,-104.9337661,39.7474085
-17183,5608,5658,0.149882473899379,0.149882473899379,-104.9716303,39.6911179,-104.9716542,39.6897701
-3908,3707,3708,0.138080579549583,0.138080579549583,-105.0030264,39.7742905,-105.002935,39.7755303
-2555,2532,2533,0.191131540477931,0.191131540477931,-105.0217751,39.73818,-105.0240058,39.7380698
-2556,2533,254,0.098486007419044,0.098486007419044,-105.0240058,39.7380698,-105.0251543,39.7380028
-19573,10570,7473,0.00674972719310255,0.00674972719310255,-104.9892888,39.7085247,-104.9892894,39.708464
-2577,1090,2550,0.0509764502640852,0.0509764502640852,-105.0403847,39.7874333,-105.0409813,39.787434
-17311,5685,5705,0.205154639659543,0.205154639659543,-104.9611673,39.6929737,-104.9611673,39.6911287
-20594,10852,10864,0.00559477666444464,0.00559477666444464,-105.0249031,39.7609028,-105.0249015,39.7609531
-2602,2568,2565,0.0838899757725962,0.0838899757725962,-104.9535373,39.7090785,-104.9525578,39.7090414
-13584,9079,9135,0.0736016285399027,0.0736016285399027,-104.9930943,39.7037972,-104.9922711,39.7036048
-3952,3748,3749,0.123087650580437,0.123087650580437,-105.0264583,39.7729227,-105.026537,39.774028
-2626,2587,2588,0.00484286584971978,0.00484286584971978,-105.0361228,39.7229454,-105.0361794,39.7229441
-2627,2588,2589,0.0472712028951763,0.0472712028951763,-105.0361794,39.7229441,-105.0367321,39.7229406
-18404,10286,7165,0.0480937532986949,0.0480937532986949,-105.0387191,39.7554242,-105.0381565,39.7554232
-18406,9349,8340,0.136218529796162,0.136218529796162,-105.0259368,39.7560399,-105.0259235,39.7572649
-13586,9135,9136,0.116423294527986,0.116423294527986,-104.9922711,39.7036048,-104.9910031,39.7032246
-14719,5893,937,0.0748599535472642,0.0748599535472642,-104.9735211,39.7313718,-104.9735126,39.732045
-2721,2676,2677,0.00391406141859358,0.00391406141859358,-104.9524392,39.7606894,-104.9524392,39.7607246
-18735,4002,7603,0.202077020511888,0.202077020511888,-105.0300499,39.727056,-105.0294393,39.7288116
-17677,6029,10165,0.522362145407342,0.522362145407342,-104.9855966,39.7797106,-104.9794908,39.7794867
-17480,344,5940,0.0510780896194201,0.0510780896194201,-105.0150427,39.753956,-105.0154315,39.7536072
-2823,2771,2261,0.100546651913918,0.100546651913918,-104.9317009,39.7674455,-104.930525,39.7674191
-18144,10275,10261,0.405650212701817,0.405650212701817,-105.0175785,39.7910801,-105.0175788,39.787432
-12350,8663,8667,0.00958750951684791,0.00958750951684791,-105.0123961,39.7526334,-105.0124751,39.7525722
-4125,3888,3889,0.19728512260693,0.19728512260693,-104.9634642,39.7350462,-104.9634771,39.7368204
-2839,2788,1047,0.105687024742303,0.105687024742303,-104.9634422,39.7669465,-104.9622057,39.7669537
-2840,1047,2789,0.0528381886609336,0.0528381886609336,-104.9622057,39.7669537,-104.9615875,39.7669517
-12351,8667,8668,0.0176529909929813,0.0176529909929813,-105.0124751,39.7525722,-105.0125278,39.7524187
-19572,10564,10570,0.0698992084212194,0.0698992084212194,-104.9892825,39.7091533,-104.9892888,39.7085247
-16413,9458,9887,0.0468003057153474,0.0468003057153474,-104.9711616,39.7030276,-104.9708237,39.7033586
-2910,785,2854,0.0936375066158938,0.0936375066158938,-105.0042571,39.7018586,-105.0038253,39.7010848
-12361,8671,8672,0.0146217858658369,0.0146217858658369,-105.0117521,39.7531191,-105.011589,39.7530795
-2955,2899,2900,0.139071498957734,0.139071498957734,-104.9733522,39.7569824,-104.9733518,39.7582331
-20621,10800,10799,0.0197706815366264,0.0197706815366264,-105.0218874,39.7616318,-105.0218863,39.7618096
-16441,5747,9898,0.0366397439833697,0.0366397439833697,-104.9676964,39.6930969,-104.9681189,39.6930432
-3003,2938,2939,0.343360355018568,0.343360355018568,-104.9247744,39.7038309,-104.92577,39.7008395
-20697,4524,10911,0.0102002426471616,0.0102002426471616,-105.0250845,39.7632041,-105.0250813,39.7632958
-20441,10798,10799,0.0151893809033584,0.0151893809033584,-105.0218855,39.7619462,-105.0218863,39.7618096
-3052,2983,2984,0.049669116788992,0.049669116788992,-105.038723,39.7584839,-105.039304,39.7584901
-17130,4371,4372,0.0862019013563638,0.0862019013563638,-104.976372,39.6922088,-104.9763628,39.692984
-3072,3004,3006,0.148595619798792,0.148595619798792,-104.9912932,39.744504,-104.9900832,39.7454633
-20009,9620,10046,0.0380951574175552,0.0380951574175552,-105.0020353,39.747495,-105.001796,39.747784
-4390,4106,695,0.201687631399372,0.201687631399372,-104.9512775,39.7401701,-104.9512663,39.7419839
-18702,2606,1861,0.182749323037212,0.182749323037212,-105.042706,39.7229718,-105.0427108,39.7213283
-3122,2901,3051,0.104668558602022,0.104668558602022,-104.9733513,39.7594897,-104.9721269,39.7594785
-20265,5574,10723,0.0117861788911356,0.0117861788911356,-105.0440065,39.7739591,-105.0438686,39.7739577
-20266,10724,7552,0.00870010659628447,0.00870010659628447,-105.0452474,39.7730203,-105.0451456,39.7730203
-19624,10591,10497,0.00644185269782912,0.00644185269782912,-104.9910656,39.7099299,-104.9911409,39.7099307
-19579,10573,10574,0.0879788736402366,0.0879788736402366,-104.9885953,39.7076107,-104.9885894,39.7084019
-18895,10376,10377,0.0641298068195797,0.0641298068195797,-105.0120158,39.75012,-105.0124804,39.7505728
-20011,10694,10695,0.0242395353024572,0.0242395353024572,-105.0045347,39.7529806,-105.0047359,39.752827
-17687,6171,6172,0.0391351463481426,0.0391351463481426,-104.9860994,39.7796015,-104.9856415,39.7795956
-3160,3084,3085,0.0490903700114876,0.0490903700114876,-104.9792501,39.712914,-104.9786762,39.712912
-19594,10580,10495,0.00720293691626167,0.00720293691626167,-104.991062,39.7102859,-104.9911462,39.7102866
-3180,3100,3101,0.129889039932712,0.129889039932712,-104.9377781,39.7130688,-104.9362596,39.7130732
-17168,5241,5262,0.201125324676422,0.201125324676422,-104.9740116,39.7038551,-104.9739919,39.7056638
-17121,1798,4176,0.205688375484509,0.205688375484509,-104.9775097,39.6947606,-104.9775098,39.6966104
-3202,3118,3119,0.112364882779035,0.112364882779035,-104.9350589,39.6929564,-104.9350503,39.6919459
-14726,5162,6220,0.0504817306174529,0.0504817306174529,-104.9746897,39.7395432,-104.9752801,39.7395432
-3225,3140,3141,0.161478257380345,0.161478257380345,-104.964537,39.7804755,-104.9645304,39.7819277
-13781,438,3176,0.297045355127737,0.297045355127737,-105.0062729,39.7603999,-105.0085577,39.7583871
-19813,5371,10633,0.121358837066421,0.121358837066421,-105.0021749,39.7336954,-105.0021797,39.732604
-3298,3207,2047,0.106039987596014,0.106039987596014,-104.9687078,39.7111105,-104.9674682,39.7111011
-17169,5262,1912,0.201876443466571,0.201876443466571,-104.9739919,39.7056638,-104.9739477,39.707479
-4605,3695,4261,0.0511463408235916,0.0511463408235916,-104.9617464,39.6965839,-104.9611486,39.6965834
-3320,3225,3226,0.12416264535459,0.12416264535459,-105.0174873,39.7717281,-105.0189401,39.7717271
-19269,10421,10423,0.00254934916501421,0.00254934916501421,-104.9951815,39.7462368,-104.9951604,39.7462206
-18686,1372,4116,0.0631464225691973,0.0631464225691973,-105.0366894,39.7117844,-105.0367025,39.7112166
-20456,10811,10791,0.0266421174352104,0.0266421174352104,-105.022998,39.7596958,-105.0231621,39.7594921
-20624,10873,10804,0.10579809531994,0.10579809531994,-105.0229935,39.7611592,-105.0242305,39.7611919
-18140,10260,10273,0.404128367861769,0.404128367861769,-105.0164142,39.7874331,-105.0164012,39.7910675
-4673,4035,4316,0.0606123696093501,0.0606123696093501,-105.0344405,39.6976368,-105.03444,39.6970917
-3387,3285,3286,0.00355897702027561,0.00355897702027561,-104.9500244,39.7038338,-104.9499828,39.7038341
-3388,3286,3287,0.0772193168955733,0.0772193168955733,-104.9499828,39.7038341,-104.9490802,39.7038404
-18146,10276,10258,0.404206655907194,0.404206655907194,-105.0117797,39.791059,-105.0117945,39.7874239
-4696,808,3552,0.152717552993661,0.152717552993661,-104.9769333,39.7532524,-104.9769434,39.7546258
-3410,3303,3304,0.147141483236073,0.147141483236073,-104.9898413,39.756424,-104.9886307,39.7573647
-20283,10722,10688,0.0815558763222832,0.0815558763222832,-105.044096,39.7739592,-105.0440849,39.7746926
-20448,10804,10757,0.0136201124223367,0.0136201124223367,-105.0242305,39.7611919,-105.0243898,39.7611891
-20785,10292,10946,0.00447271282341959,0.00447271282341959,-105.0280151,39.7614164,-105.0280565,39.761441
-19630,10593,10504,0.00657829834277663,0.00657829834277663,-104.9910888,39.7082874,-104.9911657,39.7082872
-3431,3318,3319,0.157091916454475,0.157091916454475,-104.957059,39.7805126,-104.9570312,39.7819252
-20450,10805,10806,0.0327940652155406,0.0327940652155406,-105.0159721,39.7585081,-105.0163557,39.7585125
-4743,1385,4362,0.103327121803573,0.103327121803573,-105.0016028,39.7121409,-105.0015545,39.7112124
-18254,6754,8093,0.140439193425512,0.140439193425512,-105.0275819,39.7660439,-105.0259388,39.766049
-18250,9369,6873,0.0520299718080319,0.0520299718080319,-105.0258904,39.7692943,-105.025904,39.7697621
-20787,10932,5700,0.00677435562999442,0.00677435562999442,-105.0356849,39.762197,-105.035764,39.7622008
-3475,3354,3355,0.201619360833214,0.201619360833214,-104.9338255,39.7274243,-104.9338318,39.7292375
-14728,6303,5053,0.0505955795491821,0.0505955795491821,-104.9758778,39.7395535,-104.9764695,39.7395488
-3501,59,3374,0.0977645612190622,0.0977645612190622,-104.9247401,39.6995385,-104.9240963,39.6988121
-4808,4414,4415,0.102078381821333,0.102078381821333,-105.0298228,39.7058121,-105.0297971,39.7067299
-3525,3393,3394,0.0602077843108352,0.0602077843108352,-105.0351232,39.7277059,-105.0351404,39.7282472
-18251,6873,8493,0.0500003986375519,0.0500003986375519,-105.025904,39.7697621,-105.0258941,39.7702117
-3545,656,1887,0.0518725917476049,0.0518725917476049,-105.0346018,39.7589808,-105.0346033,39.7594473
-14732,5467,6342,0.17284299485541,0.17284299485541,-104.97589,39.7384222,-104.9758813,39.7368678
-3566,1664,1683,0.0314909646044893,0.0314909646044893,-105.034629,39.767391,-105.0346312,39.7676742
-17138,1909,4488,0.199449310001805,0.199449310001805,-104.9763514,39.7074715,-104.9762867,39.7092645
-18256,7043,3984,0.199449230757582,0.199449230757582,-105.0322741,39.7687942,-105.0299405,39.7688003
-4925,3762,2559,0.0885452473584724,0.0885452473584724,-105.0051409,39.7854596,-105.0051367,39.7862559
-18261,6496,2547,0.410253746717568,0.410253746717568,-105.0386639,39.7911236,-105.0386666,39.7874341
-3637,3478,3266,0.200452444377038,0.200452444377038,-104.9639908,39.7056725,-104.9639994,39.7038698
-3638,3266,3479,0.201663130575812,0.201663130575812,-104.9639994,39.7038698,-104.9639986,39.7020562
-20636,4518,10876,0.0502632727704227,0.0502632727704227,-105.0137768,39.7632209,-105.0137702,39.7627689
-3656,1794,3493,0.171297280470528,0.171297280470528,-104.9284394,39.6945392,-104.9285338,39.6930004
-18171,6061,4076,0.198476287736927,0.198476287736927,-105.0339562,39.7856259,-105.0339181,39.7838412
-20376,10759,10760,0.116931333825994,0.116931333825994,-105.0243509,39.7608348,-105.0229928,39.7607087
-3702,3537,3538,0.048566556365416,0.048566556365416,-104.9798091,39.6984199,-104.9792415,39.6984264
-20385,10293,10769,0.0538892457987372,0.0538892457987372,-105.0260789,39.759245,-105.0254485,39.7592401
-18174,6420,6455,0.4094647827628,0.4094647827628,-105.0245269,39.7874302,-105.024535,39.7911126
-5048,4577,4578,0.133343896044873,0.133343896044873,-105.0315052,39.7415025,-105.0330646,39.7415188
-3745,3575,3576,0.0911473636959273,0.0911473636959273,-104.9499292,39.7544371,-104.9488635,39.7544629
-3747,3577,3469,0.101252045857741,0.101252045857741,-104.9476756,39.7544343,-104.9464912,39.7544409
-20384,10767,10768,0.0160296914364663,0.0160296914364663,-105.0239411,39.7605037,-105.0241099,39.7605665
-17309,4261,5684,0.20074031502923,0.20074031502923,-104.9611486,39.6965834,-104.9611511,39.6947781
-18311,7054,7244,0.0289643230302344,0.0289643230302344,-105.0315008,39.7711217,-105.0311621,39.7711127
-20470,10819,10820,0.0323669425461701,0.0323669425461701,-105.0192728,39.7586316,-105.0188943,39.7586235
-14736,4161,4770,0.262098569801346,0.262098569801346,-104.9769715,39.7201202,-104.97698,39.7224773
-5118,4637,4638,0.0862888373921514,0.0862888373921514,-105.0198922,39.7331309,-105.0201418,39.7338828
-18265,6532,1691,0.20439620202731,0.20439620202731,-105.0398808,39.7657795,-105.039903,39.7676176
-20472,10821,10822,0.0473810496096361,0.0473810496096361,-105.0191892,39.758896,-105.0191858,39.7593221
-5168,2615,4670,0.0537518017226415,0.0537518017226415,-104.9940077,39.7225208,-104.9940093,39.7230042
-18530,9153,9524,0.0561612407510351,0.0561612407510351,-105.0338511,39.7495101,-105.0336803,39.7499978
-17081,882,4467,0.138148999917071,0.138148999917071,-104.9615915,39.7644962,-104.9615875,39.7657386
-20012,10207,7896,0.145636470907972,0.145636470907972,-104.9904003,39.7512676,-104.9891984,39.7521958
-20423,10784,10785,0.00445123207828982,0.00445123207828982,-105.0187393,39.7585283,-105.0187626,39.7585641
-19137,10436,10430,0.0315234230528839,0.0315234230528839,-105.0130548,39.7409589,-105.0132616,39.7411936
-17145,4684,1801,0.196612355705575,0.196612355705575,-104.9751601,39.6929864,-104.9751816,39.6947545
-3889,3694,83,0.201794860941248,0.201794860941248,-104.9616812,39.702043,-104.961704,39.7002283
-18574,10316,10323,0.0808271649311999,0.0808271649311999,-105.0343233,39.7828561,-105.0341543,39.7821409
-17148,3546,46,0.198774198414449,0.198774198414449,-104.9751709,39.6984277,-104.9751601,39.7002153
-3912,3710,3711,0.148294717491307,0.148294717491307,-104.9874523,39.7183509,-104.9891861,39.7183575
-20615,10786,10857,0.0479734082124594,0.0479734082124594,-105.0188457,39.7592189,-105.0184643,39.7595354
-18267,6545,2438,0.164157220604829,0.164157220604829,-105.039903,39.7694505,-105.0399004,39.7709268
-17099,332,3745,0.0956275481171213,0.0956275481171213,-104.9554298,39.7451641,-104.9546644,39.7457912
-14740,6607,3802,0.199799384709315,0.199799384709315,-104.9769867,39.7272649,-104.9769713,39.7290617
-18269,5736,5525,0.155855016610815,0.155855016610815,-105.0398843,39.7724635,-105.0398709,39.7738651
-5281,4748,4749,0.0137701294893219,0.0137701294893219,-104.9856194,39.7225378,-104.9854584,39.7225389
-3961,3755,3756,0.201785607236284,0.201785607236284,-105.0264145,39.7856195,-105.0264176,39.7874342
-3963,3757,1865,0.238183107088451,0.238183107088451,-104.9873962,39.696636,-104.9901799,39.6966614
-18538,10309,10310,0.222695826046938,0.222695826046938,-105.0483038,39.7607426,-105.0509091,39.7607413
-4053,3833,3834,0.0227974048946719,0.0227974048946719,-105.0428186,39.7485544,-105.0428357,39.748759
-18576,10324,10320,0.158325840757882,0.158325840757882,-105.0327262,39.781661,-105.0313943,39.7806712
-5401,3070,4833,0.174791291148441,0.174791291148441,-104.9437655,39.7130666,-104.9437517,39.7114947
-20827,9001,9205,0.0113889892669974,0.0113889892669974,-105.0253805,39.7605003,-105.0253893,39.7603981
-16010,9780,9781,0.00910284197008254,0.00910284197008254,-104.9993976,39.688968,-104.9994018,39.6890498
-18606,8065,6592,0.262343816062173,0.262343816062173,-105.0356674,39.7306063,-105.0356782,39.7329656
-18608,2631,5208,0.201029440504885,0.201029440504885,-105.0445241,39.7221383,-105.0445268,39.7239462
-20328,10745,10742,0.0339039031846942,0.0339039031846942,-105.0237282,39.7585962,-105.0237259,39.7589011
-4098,1552,3870,0.130787042699874,0.130787042699874,-104.944264,39.777781,-104.9440689,39.7789476
-16079,9815,9284,0.0214365694827313,0.0214365694827313,-104.9728236,39.7796294,-104.9725733,39.7796422
-18703,1861,7871,0.177358977412927,0.177358977412927,-105.0427108,39.7213283,-105.0426986,39.7197333
-5445,4865,4866,0.0483753395839426,0.0483753395839426,-104.9775716,39.7351373,-104.9770059,39.7351417
-4124,2246,3888,0.176179418850458,0.176179418850458,-104.9634985,39.733462,-104.9634642,39.7350462
-18692,1856,5978,0.157563244482301,0.157563244482301,-105.0391086,39.721333,-105.0391098,39.719916
-5513,4918,1222,0.0334183748575429,0.0334183748575429,-105.0119518,39.7375725,-105.0123423,39.7375848
-4193,3941,3942,0.10150841538758,0.10150841538758,-105.000152,39.7393746,-105.0001356,39.7384618
-18280,6739,6757,0.185196443942793,0.185196443942793,-105.0386693,39.7783767,-105.0386612,39.7767112
-18287,3986,6762,0.199195011240905,0.199195011240905,-105.0299471,39.7698868,-105.0276181,39.7698189
-4211,3961,3962,0.203354581445588,0.203354581445588,-105.0001766,39.7184091,-105.0001681,39.7165803
-18282,6460,6792,0.289344591592559,0.289344591592559,-105.0386826,39.775685,-105.038701,39.7730829
-18709,7654,7506,0.191266971634704,0.191266971634704,-105.0411042,39.7282537,-105.0410987,39.7299738
-4258,4004,4005,0.0557864946968893,0.0557864946968893,-105.0300506,39.7288149,-105.0300506,39.7293166
-18293,6900,6901,0.125065642459057,0.125065642459057,-105.0409865,39.7832584,-105.0409738,39.7821337
-4279,4022,4023,0.136471513645059,0.136471513645059,-105.0299425,39.7548206,-105.0299339,39.7560479
-18285,6794,6824,0.0676234540262284,0.0676234540262284,-105.0322928,39.76996,-105.0315024,39.7699322
-20412,10780,10737,0.00327519593576582,0.00327519593576582,-105.0250471,39.7600231,-105.0250397,39.7599942
-5639,1165,885,0.138504687840451,0.138504687840451,-104.9585626,39.7632361,-104.9585659,39.7644817
-18705,4059,9745,0.17218742858343,0.17218742858343,-105.0426948,39.7181453,-105.0428433,39.716601
-5680,5036,5037,0.13925145495263,0.13925145495263,-104.9757455,39.7507464,-104.9757231,39.7519986
-4340,4070,4006,0.0527657969561626,0.0527657969561626,-105.0293098,39.784231,-105.0299104,39.7841207
-4341,4006,4071,0.045563339939639,0.045563339939639,-105.0299104,39.7841207,-105.0304275,39.7840207
-18706,9745,3863,0.0360430655172132,0.0360430655172132,-105.0428433,39.716601,-105.0432639,39.7165811
-4363,4087,1214,0.050228703045046,0.050228703045046,-105.0117891,39.7838304,-105.0123769,39.7838268
-18708,6218,7654,0.273874816557472,0.273874816557472,-105.0410732,39.7257908,-105.0411042,39.7282537
-14701,5065,986,0.133961657579708,0.133961657579708,-104.9746455,39.7240692,-104.9740817,39.7251932
-4385,4078,4080,0.499220390775423,0.499220390775423,-104.9910214,39.7840807,-104.9968637,39.7840925
-17161,5086,5087,0.0305453434226413,0.0305453434226413,-104.9740443,39.690895,-104.9740434,39.6911697
-4410,4124,3048,0.142041157035339,0.142041157035339,-104.9512246,39.7581873,-104.9511947,39.7594645
-18547,10315,7542,0.326789019301198,0.326789019301198,-105.0487786,39.766951,-105.0449552,39.7669613
-5780,4917,5106,0.0912724900005868,0.0912724900005868,-104.9558286,39.7101945,-104.9558382,39.7110153
-4431,4139,2389,0.109327413388579,0.109327413388579,-104.9508399,39.7728937,-104.950844,39.7738769
-5754,5082,5083,0.0244848814587712,0.0244848814587712,-104.9957853,39.7079855,-104.9957531,39.7077667
-18548,7542,5567,0.0788647232749776,0.0788647232749776,-105.0449552,39.7669613,-105.0440325,39.7669654
-5829,5144,5145,0.0718528722690416,0.0718528722690416,-104.9280639,39.7313625,-104.9273197,39.7310625
-4478,4170,4171,0.114300734663783,0.114300734663783,-104.9694426,39.7200889,-104.9681062,39.7200857
-14104,421,3767,0.239382300921688,0.239382300921688,-104.9424633,39.7443997,-104.9431585,39.7464851
-5849,1966,5160,0.213373795201997,0.213373795201997,-104.9270076,39.7437306,-104.9270451,39.7456493
-4498,1369,4184,0.105991036166523,0.105991036166523,-104.9923595,39.7121202,-104.9923849,39.7111672
-17123,3542,42,0.197838013671145,0.197838013671145,-104.977531,39.6984299,-104.9775311,39.7002091
-18295,1428,6901,0.00619376962359973,0.00619376962359973,-105.0409732,39.782078,-105.0409738,39.7821337
-18296,6901,6968,0.214788257098635,0.214788257098635,-105.0409738,39.7821337,-105.0409894,39.7802021
-5920,5198,5199,0.0509206897939403,0.0509206897939403,-104.9957805,39.7241162,-104.9963759,39.7241168
-4576,4176,1777,0.0501165848501884,0.0501165848501884,-104.9775098,39.6966104,-104.9769241,39.6966037
-20629,10873,10847,0.0359844691550279,0.0359844691550279,-105.0229935,39.7611592,-105.0229893,39.7608356
-18356,7764,7765,0.203486837058476,0.203486837058476,-105.035177,39.7783841,-105.0351796,39.7802141
-18353,7040,3427,0.201724758100166,0.201724758100166,-105.0322731,39.7669531,-105.0346332,39.7669387
-6017,3447,5269,0.0916999906376171,0.0916999906376171,-104.9462338,39.7680932,-104.9451609,39.7680906
-4669,4312,4313,0.0844811623232087,0.0844811623232087,-105.0344662,39.7021142,-105.0344405,39.7013547
-18355,7763,7764,0.18255985476615,0.18255985476615,-105.0351781,39.7767423,-105.035177,39.7783841
-20388,10772,10773,0.00806462172146812,0.00806462172146812,-105.0237551,39.7606258,-105.0238489,39.7606336
-4690,1574,4327,0.172428634063548,0.172428634063548,-105.0360845,39.6869978,-105.0362476,39.6854522
-14761,7128,660,0.183084210873309,0.183084210873309,-104.9793265,39.7400224,-104.9793171,39.7416689
-18307,7041,3428,0.200871545358079,0.200871545358079,-105.0322795,39.7678767,-105.0346296,39.7678582
-4768,2038,4380,0.146902820961905,0.146902820961905,-104.9740667,39.759206,-104.9752846,39.7582739
-18357,7765,7253,0.0959812077322034,0.0959812077322034,-105.0351796,39.7802141,-105.0351261,39.7810763
-17178,5409,5410,0.041431272963648,0.041431272963648,-104.9704716,39.6889796,-104.9704709,39.6893522
-4841,4434,4435,0.0243817622036277,0.0243817622036277,-104.957527,39.709294,-104.957697,39.709118
-19636,10595,10596,0.0236895488952709,0.0236895488952709,-104.9882841,39.7073658,-104.9881372,39.7071852
-20494,10814,10837,0.00453902687683386,0.00453902687683386,-105.0192222,39.758524,-105.0192753,39.758524
-12316,8640,8559,0.0170391288088959,0.0170391288088959,-105.0078019,39.7541251,-105.0076796,39.7542461
-4864,4448,4449,0.051463626660104,0.051463626660104,-104.9785732,39.7570722,-104.9789969,39.757401
-14105,3767,490,0.17231974049998,0.17231974049998,-104.9431585,39.7464851,-104.9415277,39.7473958
-18310,7244,7054,0.0289643230302344,0.0289643230302344,-105.0311621,39.7711127,-105.0315008,39.7711217
-4906,3886,865,0.080856531304005,0.080856531304005,-104.9437961,39.7657098,-104.9428501,39.7657082
-14762,660,7162,0.177556995744578,0.177556995744578,-104.9793171,39.7416689,-104.9793413,39.7432656
-14106,490,492,0.200841500024827,0.200841500024827,-104.9415277,39.7473958,-104.9415359,39.749202
-6278,5468,5223,0.0507325637005759,0.0507325637005759,-104.9753042,39.7384242,-104.9747109,39.7384283
-20498,2955,10783,0.00926966063781334,0.00926966063781334,-105.0159686,39.7584009,-105.0159618,39.7583177
-18511,9529,10302,0.134870017545438,0.134870017545438,-105.0410698,39.7499582,-105.0410619,39.7511711
-18559,10317,10318,0.0818849597364774,0.0818849597364774,-105.03063,39.7832519,-105.0297002,39.7834301
-5006,4551,4552,0.0605833275140723,0.0605833275140723,-105.0217216,39.7338931,-105.0217376,39.7344378
-20497,10805,2955,0.011923850145444,0.011923850145444,-105.0159721,39.7585081,-105.0159686,39.7584009
-6365,1258,377,0.0777271141684953,0.0777271141684953,-105.0204854,39.7741292,-105.0213949,39.7741289
-5032,3218,4567,0.203476554448063,0.203476554448063,-104.9605331,39.7111143,-104.9605404,39.7092844
-18309,3989,7244,0.103816807067418,0.103816807067418,-105.0299481,39.7710804,-105.0311621,39.7711127
-6389,5536,5537,0.0941709460297732,0.0941709460297732,-104.9948277,39.7742296,-104.9959296,39.7742339
-5052,4580,4581,0.0994044886957745,0.0994044886957745,-105.0369879,39.7415159,-105.0381505,39.741515
-19827,9253,7642,0.176656738058614,0.176656738058614,-105.0022016,39.7289106,-105.0022097,39.7273219
-18315,7190,1430,0.126827993445383,0.126827993445383,-105.0421451,39.7832183,-105.0421723,39.7820779
-18691,2597,1856,0.178902858758576,0.178902858758576,-105.0391167,39.7229419,-105.0391086,39.721333
-6529,1038,5638,0.106710156184621,0.106710156184621,-104.9622461,39.7557325,-104.9609978,39.7557305
-5211,4703,4704,0.0593965930317325,0.0593965930317325,-104.9883469,39.709334,-104.9890412,39.7093409
-18320,7455,6063,0.193748278871749,0.193748278871749,-105.0363356,39.7838724,-105.0363465,39.7856148
-5307,4763,4764,0.0623737801227747,0.0623737801227747,-104.9601753,39.7225386,-104.959446,39.7225375
-20402,10771,10761,0.045832556045337,0.045832556045337,-105.0250699,39.7607782,-105.0250806,39.7603661
-6659,5732,716,0.0227471694550216,0.0227471694550216,-105.0039126,39.7730596,-105.0041786,39.7730524
-5331,3596,4783,0.0944705655668644,0.0944705655668644,-104.9293972,39.7231683,-104.9282926,39.7231695
-14107,492,502,0.277229511676695,0.277229511676695,-104.9415359,39.749202,-104.9447772,39.7492764
-6732,5783,5784,0.103949862025848,0.103949862025848,-104.9941411,39.7504097,-104.9949995,39.7510718
-14767,7420,4860,0.190666070334235,0.190666070334235,-104.9804389,39.7368731,-104.9804415,39.7351584
-20406,8354,10772,0.00730920335045724,0.00730920335045724,-105.0236698,39.7606212,-105.0237551,39.7606258
-6754,5799,5800,0.0473962648551068,0.0473962648551068,-105.0328002,39.7874226,-105.0333549,39.7874228
-14769,7430,4858,0.18998910813567,0.18998910813567,-104.9816663,39.7368655,-104.981675,39.7351569
-5443,4863,4864,0.0452091651037792,0.0452091651037792,-104.9787104,39.7351477,-104.9781817,39.7351466
-19834,10654,9725,0.196434640947063,0.196434640947063,-105.0398868,39.736613,-105.0393021,39.7349046
-6799,2741,5836,0.0500630331544159,0.0500630331544159,-104.9558357,39.6911246,-104.9552507,39.6911326
-20523,2708,10752,0.00659207654644855,0.00659207654644855,-105.0229124,39.7619341,-105.0229895,39.7619327
-18323,7479,7480,0.203575671880267,0.203575671880267,-105.0433631,39.7802085,-105.043363,39.7783777
-18329,6073,7593,0.194237102947714,0.194237102947714,-105.0433238,39.7856121,-105.0433336,39.7838653
-5506,4912,2121,0.0993922299820147,0.0993922299820147,-104.9280548,39.7346813,-104.9268925,39.7346889
-19837,5204,5602,0.169326060361496,0.169326060361496,-105.000925,39.7241245,-105.0016002,39.725556
-6868,3299,5873,0.0385426751655708,0.0385426751655708,-105.0432684,39.7149673,-105.043719,39.7149652
-5529,4929,4930,0.0186787878300106,0.0186787878300106,-104.9980335,39.7400187,-104.9981378,39.7401663
-5530,4930,4931,0.150638241291928,0.150638241291928,-104.9981378,39.7401663,-104.9988399,39.7414088
-20519,10815,10845,0.0426977620157165,0.0426977620157165,-105.0192433,39.7583417,-105.0187438,39.7583413
-6909,5905,5906,0.0925705753401188,0.0925705753401188,-104.9394475,39.7492413,-104.9383649,39.7492571
-5581,4968,4969,0.19364655602673,0.19364655602673,-104.9800866,39.7801495,-104.9800922,39.781891
-20802,10942,606,0.00932539286509621,0.00932539286509621,-105.0279694,39.7630233,-105.0278867,39.763078
-20522,10808,2708,0.0062556157491122,0.0062556157491122,-105.0228402,39.7619433,-105.0229124,39.7619341
-5631,3571,5004,0.140817256140417,0.140817256140417,-104.9585602,39.75446,-104.9585604,39.7557264
-18338,2435,7632,0.201752260263955,0.201752260263955,-105.0387198,39.7712682,-105.038723,39.7730826
-20016,2696,8044,0.148197142125826,0.148197142125826,-104.984388,39.7559539,-104.9831794,39.7569094
-5653,2345,4151,0.175358365382788,0.175358365382788,-104.9585534,39.7194149,-104.9582358,39.7209729
-18327,1432,7191,0.123062885737589,0.123062885737589,-105.0433255,39.7820793,-105.0433363,39.783186
-6998,2684,5970,0.144359466732262,0.144359466732262,-104.9795298,39.7522538,-104.9783626,39.753192
-5670,679,5028,0.00422540721209624,0.00422540721209624,-104.9591758,39.7416126,-104.9591758,39.7416506
-5671,5028,5029,0.199984733552555,0.199984733552555,-104.9591758,39.7416506,-104.9591698,39.7434491
-20382,10765,10766,0.0345648031474255,0.0345648031474255,-105.023905,39.7606411,-105.0243045,39.7606892
-18350,7716,6756,0.141149359906032,0.141149359906032,-105.0259442,39.7669727,-105.0275956,39.7669634
-5748,5078,5079,0.20268033504505,0.20268033504505,-105.0378651,39.6985745,-105.0378823,39.6967518
-18163,10259,6036,0.2014076606309,0.2014076606309,-105.0152653,39.7874334,-105.0152693,39.7856221
-14704,5105,3799,0.199599075644316,0.199599075644316,-104.9735001,39.7272799,-104.9734712,39.7290748
-18162,2170,10259,0.118558518008842,0.118558518008842,-105.0146867,39.7884025,-105.0152653,39.7874334
-20019,4453,5501,0.145746885757253,0.145746885757253,-104.980759,39.7587503,-104.9796104,39.759719
-5830,5145,2118,0.0459910302398271,0.0459910302398271,-104.9273197,39.7310625,-104.9268844,39.7308196
-20020,5501,7075,0.147873409818305,0.147873409818305,-104.9796104,39.759719,-104.9783828,39.760656
-14776,5927,3806,0.151596310173331,0.151596310173331,-104.9804991,39.7304325,-104.9805124,39.7290692
-5853,4622,5163,0.10255879316328,0.10255879316328,-104.9274625,39.7446677,-104.9274829,39.7455899
-18343,7662,5247,0.110734380038432,0.110734380038432,-105.0351663,39.7639675,-105.0351958,39.7649631
-20022,8291,7898,0.145585163841291,0.145585163841291,-104.9912817,39.7519386,-104.9900722,39.7528603
-7192,6084,6085,0.188916282974339,0.188916282974339,-105.0300536,39.7630057,-105.0322636,39.7629835
-18345,6874,1684,0.205522453761373,0.205522453761373,-105.0351985,39.7658172,-105.0352055,39.7676655
-20542,2953,10853,0.0105529318413212,0.0105529318413212,-105.0157188,39.7584009,-105.015713,39.7584957
-18348,2429,7700,0.202520445331427,0.202520445331427,-105.0352091,39.7713194,-105.0352012,39.7731407
-20024,8856,9319,0.148299248554164,0.148299248554164,-104.988892,39.7538026,-104.9876534,39.7547364
-7238,4839,1519,0.0519761467059316,0.0519761467059316,-104.9751709,39.7092743,-104.9745633,39.7092771
-14772,923,5925,0.177924520685585,0.177924520685585,-104.9816421,39.7320276,-104.9816081,39.7304277
-20544,10831,10809,0.07258379165013,0.07258379165013,-105.0193747,39.7583443,-105.0193936,39.7576917
-5934,4646,3645,0.198637387669602,0.198637387669602,-105.0186425,39.7238822,-105.0209651,39.7238828
-20537,10850,10851,0.00393462806086889,0.00393462806086889,-105.0226484,39.7596157,-105.0226242,39.7596458
-7284,6141,11,0.135513694564746,0.135513694564746,-105.0283644,39.7451504,-105.0283851,39.746369
-5958,5230,5231,0.202816769336327,0.202816769336327,-104.9546568,39.6947809,-104.9546783,39.692957
-20538,10764,10852,0.00745697116010785,0.00745697116010785,-105.0249892,39.7609136,-105.0249031,39.7609028
-7311,5071,6157,0.164940273242935,0.164940273242935,-105.037844,39.6894614,-105.0390628,39.6883122
-5976,4624,1247,0.13286062727511,0.13286062727511,-105.0189554,39.7644371,-105.0205098,39.764433
-5978,4556,2725,0.132159028738313,0.132159028738313,-105.0220655,39.7644258,-105.0236117,39.7644248
-20539,10852,10833,0.00647861100893927,0.00647861100893927,-105.0249031,39.7609028,-105.0248283,39.7608934
-7339,6169,6170,0.0619567458929491,0.0619567458929491,-104.9601619,39.7241291,-104.9594375,39.7241351
-5998,5256,5257,0.103904946256075,0.103904946256075,-104.9671812,39.7681442,-104.9659655,39.7681412
-19289,10469,10470,0.0657689911002152,0.0657689911002152,-104.9881479,39.7392371,-104.988856,39.7394681
-20550,10854,10842,0.00418096419493106,0.00418096419493106,-105.0159697,39.7588715,-105.0159695,39.7589091
-6016,5268,3447,0.109289564409357,0.109289564409357,-104.9475125,39.7680963,-104.9462338,39.7680932
-20541,10846,2953,0.0102415664506872,0.0102415664506872,-105.0157176,39.7583088,-105.0157188,39.7584009
-6042,2870,5284,0.0497761483323909,0.0497761483323909,-104.9829275,39.7855836,-104.982919,39.785136
-20446,10802,10794,0.010877497210246,0.010877497210246,-105.0218433,39.761098,-105.0218405,39.7610002
-6066,1342,5306,0.205811743638723,0.205811743638723,-105.0226989,39.7129828,-105.0226912,39.7111319
-20547,2961,10838,0.0117661269256179,0.0117661269256179,-105.021139,39.7584434,-105.0210227,39.7583868
-7483,6261,1188,0.16816674729097,0.16816674729097,-104.9613184,39.7256069,-104.9613359,39.7271192
-6138,3644,4554,0.0976185559336041,0.0976185559336041,-105.0209565,39.7228992,-105.0220979,39.7228967
-18364,7802,1660,0.0598129332818693,0.0598129332818693,-105.0259573,39.7679612,-105.0259529,39.7674233
-7554,6302,1356,0.0804502555219789,0.0804502555219789,-105.015828,39.7832739,-105.015824,39.7825504
-6209,5412,1185,0.167137462035015,0.167137462035015,-104.9658624,39.7255988,-104.9658583,39.7271019
-6210,1185,5413,0.0233182677092941,0.0233182677092941,-104.9658583,39.7271019,-104.9658604,39.7273116
-14730,6318,6303,0.0522173167652759,0.0522173167652759,-104.9758794,39.7400231,-104.9758778,39.7395535
-20234,10715,10714,0.0286157939247338,0.0286157939247338,-104.9412314,39.693774,-104.9409313,39.6936604
-20565,1287,10855,0.00858462136960439,0.00858462136960439,-105.0205384,39.7583461,-105.020438,39.7583443
-6251,5443,779,0.0160681132894306,0.0160681132894306,-105.0250652,39.7022173,-105.0250638,39.7020728
-14783,4856,7862,0.182896538603858,0.182896538603858,-104.9828985,39.7352253,-104.982911,39.7368701
-6272,5463,5464,0.0498340640254978,0.0498340640254978,-104.9798976,39.7384177,-104.9793148,39.7384144
-20235,10714,8820,0.0168131405425372,0.0168131405425372,-104.9409313,39.6936604,-104.9407348,39.6936614
-6293,5477,3890,0.10549800375505,0.10549800375505,-104.964716,39.7383814,-104.9634822,39.7383772
-16545,7835,9934,0.137971408959184,0.137971408959184,-104.975145,39.7519832,-104.9751503,39.7507424
-6362,351,5522,0.0335008525021526,0.0335008525021526,-105.0171199,39.7741304,-105.0175119,39.7741304
-16018,9787,9788,0.0995758326234823,0.0995758326234823,-105.0053015,39.6892589,-105.0062451,39.6887348
-6387,5535,2028,0.107888528337289,0.107888528337289,-104.9923558,39.7742164,-104.9936175,39.7741835
-20242,10717,10716,0.029516495512001,0.029516495512001,-104.9410012,39.6961469,-104.9411444,39.6963884
-7774,5212,6424,0.109568567873903,0.109568567873903,-105.0174804,39.7238894,-105.0175106,39.7248745
-16546,9934,9935,0.139302196645357,0.139302196645357,-104.9751503,39.7507424,-104.9751681,39.7494897
-20562,10798,10807,0.0058401189840652,0.0058401189840652,-105.0218855,39.7619462,-105.0219538,39.7619476
-15113,3050,7229,0.0133472139691031,0.0133472139691031,-104.9963681,39.7597212,-104.996479,39.7596367
-20245,8372,6959,0.0489264341729089,0.0489264341729089,-105.0357622,39.7454303,-105.0353181,39.7451528
-11422,8078,8079,0.0484137060021889,0.0484137060021889,-105.043577,39.7835803,-105.0441387,39.7836373
-6473,5599,5600,0.108658521887425,0.108658521887425,-105.0015794,39.7184418,-105.0015966,39.7194189
-15115,7996,7997,0.209391166364433,0.209391166364433,-104.9977757,39.7584584,-104.9977757,39.7603415
-18367,7754,8093,0.0507390772270922,0.0507390772270922,-105.0259422,39.7665053,-105.0259388,39.766049
-20352,10751,9401,0.00837355044160468,0.00837355044160468,-105.0253759,39.7585688,-105.025278,39.7585714
-6492,5616,5617,0.0720767157725574,0.0720767157725574,-105.0015651,39.7393715,-105.0015669,39.7400197
-14721,2221,4871,0.160443069505019,0.160443069505019,-104.9735163,39.7337028,-104.9735383,39.7351456
-18368,8093,6894,0.0518148786998363,0.0518148786998363,-105.0259388,39.766049,-105.0259502,39.7655831
-16020,9789,9788,0.073636854952175,0.073636854952175,-105.0063551,39.6893916,-105.0062451,39.6887348
-7896,6503,6504,0.201046575537805,0.201046575537805,-104.9503891,39.7819179,-104.9503707,39.7837259
-16547,9935,3668,0.222625726498778,0.222625726498778,-104.9751681,39.7494897,-104.9751801,39.7474876
-11416,8000,8034,0.303468507056762,0.303468507056762,-105.0252653,39.7846442,-105.0287237,39.7840235
-6579,5669,5670,0.150406237761818,0.150406237761818,-105.0311012,39.7566748,-105.0310884,39.7580274
-20845,10954,10937,0.131662909083966,0.131662909083966,-105.0254122,39.760199,-105.0266441,39.7609098
-6604,5693,4324,0.222481680681729,0.222481680681729,-105.0324406,39.7067365,-105.0350413,39.7067233
-18371,5250,7594,0.0499247461563453,0.0499247461563453,-105.0259394,39.7646609,-105.0259281,39.764212
-15222,8101,8102,0.077833708774634,0.077833708774634,-105.0417114,39.7441064,-105.0426126,39.7442054
-18372,7594,5883,0.083286408265142,0.083286408265142,-105.0259281,39.764212,-105.025945,39.7634631
-6714,5766,2843,0.181402526618843,0.181402526618843,-104.9316752,39.6938788,-104.9295552,39.693859
-14742,5935,931,0.176525948040391,0.176525948040391,-104.9769887,39.7304575,-104.9770026,39.732045
-20409,8971,8976,0.00824136098890487,0.00824136098890487,-105.0250832,39.760307,-105.0250886,39.760233
-17573,10146,4643,0.00925827675066928,0.00925827675066928,-105.0192547,39.73083,-105.0192742,39.7307481
-8175,6672,3101,0.17546713620256,0.17546713620256,-104.9362682,39.7146512,-104.9362596,39.7130732
-11210,300,106,0.00724031766776508,0.00724031766776508,-104.931659,39.700286,-104.931654,39.700221
-8223,6696,951,0.177624298281023,0.177624298281023,-104.9494801,39.7305216,-104.9494887,39.732119
-6856,4317,5865,0.0513037576080921,0.0513037576080921,-105.034904,39.7149636,-105.0355038,39.7149636
-18335,7611,1689,0.102723820359578,0.102723820359578,-105.0387087,39.7667047,-105.0387013,39.7676285
-20356,10752,10753,0.178510491347886,0.178510491347886,-105.0229895,39.7619327,-105.0250779,39.761939
-6873,5878,5879,0.686284794666677,0.686284794666677,-105.045238,39.6917061,-105.0531962,39.6924757
-11609,3416,7035,0.200128365503357,0.200128365503357,-105.0346041,39.7625399,-105.0322628,39.7625513
-11610,7035,8338,0.189938999172283,0.189938999172283,-105.0322628,39.7625513,-105.0300407,39.7625615
-6895,5896,4960,0.0956843495121368,0.0956843495121368,-105.0109828,39.7056561,-105.0109882,39.7047956
-11335,8218,251,0.176906123725318,0.176906123725318,-104.9994384,39.7289153,-104.9994212,39.7305062
-17668,10162,10161,0.0392525789715303,0.0392525789715303,-104.9861062,39.7795141,-104.9856475,39.7795327
-8321,6751,5251,0.0499574491010493,0.0499574491010493,-105.0275693,39.7642092,-105.0275802,39.7646584
-17670,8260,9051,0.230562637224967,0.230562637224967,-104.9794547,39.7798315,-104.9821447,39.7799919
-8340,6769,5533,0.120999789974565,0.120999789974565,-105.0275913,39.7729556,-105.027737,39.774038
-11366,7971,1892,0.0488719799669425,0.0488719799669425,-105.0053146,39.761583,-105.0052777,39.7620216
-6977,4442,5511,0.147695461409276,0.147695461409276,-104.9759203,39.7550431,-104.974688,39.7559741
-14750,2214,929,0.185352492811126,0.185352492811126,-104.9781559,39.7337051,-104.9781467,39.7320382
-7030,4913,5988,0.198333075719104,0.198333075719104,-104.9257471,39.7346951,-104.9257168,39.7364786
-18693,5978,6025,0.00688297127309608,0.00688297127309608,-105.0391098,39.719916,-105.0391099,39.7198541
-11612,3418,742,0.19996057055502,0.19996057055502,-105.0346033,39.763439,-105.0322639,39.7634453
-20437,10795,10796,0.0230619881865373,0.0230619881865373,-105.0227368,39.7610963,-105.0226193,39.761283
-11948,8496,8497,0.0216014239716138,0.0216014239716138,-105.013905,39.7558225,-105.0139116,39.7556283
-7132,1290,6044,0.0502638300231986,0.0502638300231986,-105.0204693,39.7856314,-105.0210575,39.7856258
-11686,1032,773,0.0128283485920152,0.0128283485920152,-105.0019469,39.752933,-105.0019256,39.7530472
-8554,4804,6890,0.135875328970406,0.135875328970406,-105.0127751,39.765645,-105.0143648,39.7656412
-11767,2687,8406,0.0738017906986337,0.0738017906986337,-104.9808835,39.7532566,-104.9814866,39.7527817
-8601,2178,596,0.0528183519637533,0.0528183519637533,-105.01465,39.7765593,-105.015268,39.7765659
-7225,6106,6107,0.101643082422806,0.101643082422806,-104.9863727,39.7093097,-104.9851845,39.7093159
-11821,8422,8423,0.175711465733647,0.175711465733647,-105.0135792,39.7398604,-105.013871,39.7414246
-8624,109,720,0.104166949267626,0.104166949267626,-105.002935,39.7765792,-105.0041538,39.776566
-18552,7705,2988,0.199131268231619,0.199131268231619,-105.0422469,39.7567047,-105.0422605,39.7584955
-14770,4858,2209,0.16101488662795,0.16101488662795,-104.981675,39.7351569,-104.9816406,39.7337091
-7328,6165,6166,0.0995968460919669,0.0995968460919669,-104.9688892,39.7713666,-104.9697218,39.7719933
-12286,8526,8525,0.0214801658544325,0.0214801658544325,-105.0049596,39.7505226,-105.0047107,39.7504962
-7376,337,6196,0.0756391181616623,0.0756391181616623,-104.9373307,39.7804664,-104.9364456,39.7804736
-12217,8592,8593,0.114913209514243,0.114913209514243,-105.0036056,39.7454327,-105.0029536,39.744529
-12317,8559,2500,0.0435792910401613,0.0435792910401613,-105.0076796,39.7542461,-105.0073403,39.7545386
-8839,528,7032,0.050727128416239,0.050727128416239,-105.0322618,39.7598749,-105.032262,39.7603311
-7478,6259,1180,0.207751884347626,0.207751884347626,-104.999187,39.6994545,-104.9967587,39.6994606
-18554,9429,7706,0.20403157089995,0.20403157089995,-105.0434221,39.7548692,-105.0434221,39.7567041
-15821,8564,8565,0.0641361466923926,0.0641361466923926,-105.0273775,39.7358643,-105.0275518,39.7353033
-8860,7045,7046,0.134234542647931,0.134234542647931,-105.0314642,39.7767176,-105.0314652,39.7779248
-7498,4598,3688,0.240872387579393,0.240872387579393,-104.9610007,39.7447808,-104.9609894,39.746947
-7499,3688,6270,0.142331405185985,0.142331405185985,-104.9609894,39.746947,-104.960998,39.748227
-20649,10880,1676,0.0578550543011222,0.0578550543011222,-105.0146396,39.7675397,-105.0146419,39.76806
-12236,8586,1599,0.0967599085697604,0.0967599085697604,-105.0012044,39.74196,-105.0021858,39.7415267
-7572,5861,1309,0.178473387298321,0.178473387298321,-105.0324691,39.7149773,-105.0324406,39.7133724
-18324,7480,7524,0.15130858595047,0.15130858595047,-105.043363,39.7783777,-105.0433477,39.777017
-7598,6323,6324,0.205483069278936,0.205483069278936,-104.9663246,39.7020694,-104.9663063,39.7002215
-17836,9362,1627,0.0523901213643909,0.0523901213643909,-104.9999965,39.7692821,-104.9994072,39.7691524
-14759,7101,5464,0.170276074046912,0.170276074046912,-104.9792889,39.7368832,-104.9793148,39.7384144
-14760,5464,7128,0.178804240685068,0.178804240685068,-104.9793148,39.7384144,-104.9793265,39.7400224
-7640,6024,3875,0.0993805589791004,0.0993805589791004,-104.9453106,39.7581922,-104.944148,39.7581905
-16021,9788,9790,0.320911397883896,0.320911397883896,-105.0062451,39.6887348,-105.0063095,39.6858492
-9035,7131,7132,0.0496921831493493,0.0496921831493493,-105.0375424,39.7347779,-105.0381234,39.7347872
-18491,9168,9169,0.133423914370859,0.133423914370859,-105.0422474,39.7487571,-105.0422538,39.749957
-17837,1627,5679,0.10292857902181,0.10292857902181,-104.9994072,39.7691524,-104.9982029,39.7691518
-9059,2896,5632,0.0842038197459281,0.0842038197459281,-104.9733529,39.7551547,-104.9727182,39.7557338
-20806,7427,10935,0.00559704943884798,0.00559704943884798,-105.0369381,39.7621971,-105.0370035,39.7621946
-12938,1970,8709,0.0935507240006809,0.0935507240006809,-105.0018024,39.7442826,-105.0028925,39.7443552
-11439,511,8252,0.25940626826434,0.25940626826434,-105.0312479,39.7836347,-105.0342719,39.7834294
-7695,5168,6377,0.177825109084943,0.177825109084943,-104.9449622,39.716238,-104.9449725,39.7146388
-20708,7442,10913,0.0784445493600802,0.0784445493600802,-105.0275322,39.7638138,-105.0277761,39.7631337
-9099,6388,7159,0.131345505242465,0.131345505242465,-105.0381277,39.7475739,-105.0381363,39.7487551
-11441,8256,8255,0.0395721958074786,0.0395721958074786,-105.0155373,39.7837344,-105.0160004,39.7837363
-19809,5615,9635,0.105426130739244,0.105426130739244,-105.0015645,39.7393,-105.0021668,39.7384727
-9145,5720,7186,0.100417695742859,0.100417695742859,-105.0357487,39.7831573,-105.0369189,39.7832402
-11443,8254,8257,0.03964069530807,0.03964069530807,-105.0159925,39.7835953,-105.0155286,39.7835973
-7788,6432,6433,0.0533345329573706,0.0533345329573706,-105.0177887,39.7548225,-105.0178088,39.7553019
-12939,8709,8766,0.0775671350558112,0.0775671350558112,-105.0028925,39.7443552,-105.0021048,39.7447013
-9187,7207,7208,0.0500116374722849,0.0500116374722849,-104.9821537,39.693012,-104.9815692,39.6930097
-7811,838,6446,0.0830965282034823,0.0830965282034823,-104.9427798,39.7746589,-104.9423252,39.7753195
-7816,6449,2813,0.0739587262737054,0.0739587262737054,-104.9904536,39.7751772,-104.9913173,39.7752191
-12260,8617,8618,0.00726192949201925,0.00726192949201925,-105.0083585,39.7576557,-105.0084208,39.7577001
-20803,606,10913,0.0113017508087441,0.0113017508087441,-105.0278867,39.763078,-105.0277761,39.7631337
-9235,7240,7241,0.0498075431237363,0.0498075431237363,-104.9792633,39.7057342,-104.9786816,39.7057151
-7861,6474,6475,0.692905896897531,0.692905896897531,-105.0451381,39.7747614,-105.053246,39.7747583
-12942,8804,1331,0.0594619846778877,0.0594619846778877,-105.0013561,39.7437151,-105.0019226,39.7434049
-12264,8622,8616,0.0863852743591186,0.0863852743591186,-105.0070785,39.7566504,-105.0077835,39.757207
-7908,6511,6512,0.107336468131195,0.107336468131195,-104.940586,39.787473,-104.9405864,39.7865077
-20811,10951,7034,0.00453220039269765,0.00453220039269765,-105.0322095,39.7622183,-105.0322625,39.7622195
-13006,8912,8913,0.031616887141609,0.031616887141609,-104.9956858,39.7676849,-104.9953476,39.7678001
-7929,4175,6525,0.0337195393803404,0.0337195393803404,-104.9775465,39.6932215,-104.9772938,39.6929888
-20394,10762,10775,0.00651572160316994,0.00651572160316994,-105.0243849,39.7600288,-105.0243213,39.7599965
-20400,3591,10771,0.0086403574168429,0.0086403574168429,-105.025071,39.7608559,-105.0250699,39.7607782
-8000,6560,6561,0.05117078549911,0.05117078549911,-104.9868584,39.7241275,-104.9862601,39.7241317
-18914,10389,10392,0.00619620469246147,0.00619620469246147,-105.0126265,39.7501937,-105.0126753,39.7502349
-8024,6580,6581,0.135411748293681,0.135411748293681,-105.0113223,39.732461,-105.0128679,39.7321961
-8047,5711,6593,0.0649690182450408,0.0649690182450408,-105.0362237,39.7329601,-105.0369834,39.7329675
-20509,10841,638,0.00591881170263726,0.00591881170263726,-105.0181411,39.7583408,-105.0180723,39.7583468
-12270,8627,8518,0.0752716608672627,0.0752716608672627,-105.0066278,39.7560666,-105.0071312,39.7555112
-15918,9104,9746,0.00764030702792677,0.00764030702792677,-105.0421714,39.7165106,-105.0421231,39.7165684
-8143,6654,1583,0.150966803397046,0.150966803397046,-105.0452294,39.6895265,-105.0452106,39.6881689
-18477,2411,5542,0.101313827089111,0.101313827089111,-105.0398977,39.753016,-105.0399084,39.7521049
-15876,8978,9002,0.0205305754568531,0.0205305754568531,-105.0408265,39.7349435,-105.0410599,39.7349868
-8295,6735,6736,0.0734967400485445,0.0734967400485445,-105.0196661,39.7603379,-105.0202265,39.7608392
-12273,8629,8517,0.0368940227401467,0.0368940227401467,-105.0068222,39.7549438,-105.0069509,39.7552605
-8322,5251,6752,0.0513511942917184,0.0513511942917184,-105.0275802,39.7646584,-105.0275758,39.7651202
-17214,3774,8403,0.176505403414048,0.176505403414048,-104.9774885,39.7022712,-104.9775319,39.7038582
-11789,4445,6564,0.147259159007996,0.147259159007996,-104.9772635,39.7560534,-104.9784697,39.7551079
-8396,516,6411,0.245438474982929,0.245438474982929,-104.968998,39.788144,-104.9688032,39.7903462
-19810,9635,9643,0.17762409301406,0.17762409301406,-105.0021668,39.7384727,-105.0021748,39.7368753
-19811,9643,7122,0.176833292049994,0.176833292049994,-105.0021748,39.7368753,-105.0021749,39.735285
-9834,7540,7541,0.0505839701248518,0.0505839701248518,-105.0449514,39.7661904,-105.044947,39.7666453
-8443,1465,5441,0.103147915206822,0.103147915206822,-105.0238576,39.7038839,-105.0250601,39.7039517
-13470,9094,9095,0.186249123099868,0.186249123099868,-105.0189056,39.7254091,-105.0210758,39.7255489
-9909,7585,3060,0.206196737198557,0.206196737198557,-104.9360971,39.758301,-104.9361384,39.7601551
-8516,6868,4142,0.0958725861464383,0.0958725861464383,-104.9838262,39.7147216,-104.9827054,39.7147303
-18481,9120,6391,0.130087180946324,0.130087180946324,-105.0398842,39.7487505,-105.0398871,39.7475806
-8559,1248,4557,0.13273864991069,0.13273864991069,-105.0205165,39.7656381,-105.0220695,39.765634
-18488,9153,9154,0.0316379611455697,0.0316379611455697,-105.0338511,39.7495101,-105.0338562,39.7492256
-10040,7380,7647,0.073513516250253,0.073513516250253,-105.0337242,39.7277125,-105.0345838,39.7277084
-8638,6926,6927,0.0519431626477688,0.0519431626477688,-104.9982022,39.7580108,-104.9980305,39.7584589
-8640,6928,2302,0.107037203280329,0.107037203280329,-105.0086993,39.6967351,-105.0087181,39.6957726
-18492,9169,9170,0.136492159060533,0.136492159060533,-105.0422538,39.749957,-105.04225,39.7511845
-8683,1000,4222,0.0557449369548998,0.0557449369548998,-104.9875739,39.7819524,-104.9869216,39.781959
-15905,8603,8604,0.0748338508215397,0.0748338508215397,-105.0285111,39.7222816,-105.0283446,39.7216209
-13757,8439,9181,0.0861617636196398,0.0861617636196398,-105.0164414,39.7435744,-105.0158598,39.7429416
-10162,2158,7701,0.118289099292956,0.118289099292956,-105.0144627,39.756468,-105.0158374,39.7565896
-8752,6982,6983,0.20266520881126,0.20266520881126,-105.040852,39.7021868,-105.0408606,39.7003642
-12326,8650,8651,0.106050821827968,0.106050821827968,-105.005782,39.7481919,-105.0047136,39.7486765
-18298,6995,6996,0.187375849458261,0.187375849458261,-105.0409786,39.77838,-105.0409867,39.7766949
-14103,418,421,0.212232135618177,0.212232135618177,-104.9449438,39.7443271,-104.9424633,39.7443997
-11436,8255,7984,0.498708139076575,0.498708139076575,-105.0160004,39.7837363,-105.0218262,39.7840053
-18497,9201,9212,0.134547599555241,0.134547599555241,-105.0352011,39.7487792,-105.0351931,39.7499892
-19881,2617,10410,0.177201589274352,0.177201589274352,-104.9957832,39.7225228,-104.9957751,39.7209292
-8821,13,7020,0.00925156011318802,0.00925156011318802,-105.0315114,39.7463778,-105.0315108,39.746461
-14676,5941,3794,0.153141383772443,0.153141383772443,-104.9700474,39.7304587,-104.9700349,39.7290815
-8846,6085,742,0.0513498235273795,0.0513498235273795,-105.0322636,39.7629835,-105.0322639,39.7634453
-19287,9967,10468,0.111280897910296,0.111280897910296,-104.986072,39.7392385,-104.9873734,39.7392289
-8898,267,7062,0.0377688740912094,0.0377688740912094,-104.9500299,39.6896634,-104.9500436,39.6893239
-20847,10946,10950,0.100177888201708,0.100177888201708,-105.0280565,39.761441,-105.0289678,39.7620075
-18612,1850,9261,0.181237135841786,0.181237135841786,-105.0355172,39.72133,-105.0355223,39.7197001
-18361,7374,7802,0.0447005696877022,0.0447005696877022,-105.0259557,39.7683632,-105.0259573,39.7679612
-8973,7099,900,0.0469763030340631,0.0469763030340631,-104.9417431,39.7640544,-104.9417276,39.7644767
-14047,4836,389,0.0490717904305928,0.0490717904305928,-104.9997732,39.7140054,-105.0001337,39.7136621
-12310,8644,8645,0.447909393812679,0.447909393812679,-105.0077069,39.7535527,-105.0040083,39.7506996
-8996,7110,7111,0.00729890302499032,0.00729890302499032,-105.027555,39.7347529,-105.0276403,39.7347505
-8997,7111,7112,0.0821157489631964,0.0821157489631964,-105.0276403,39.7347505,-105.0286006,39.7347486
-19296,10470,10471,0.0561834077462884,0.0561834077462884,-104.988856,39.7394681,-104.9888451,39.7389629
-9018,7120,3944,0.0625799505809278,0.0625799505809278,-104.9994256,39.7352803,-105.0001574,39.7352867
-20228,8758,8818,0.0478043651923457,0.0478043651923457,-104.9412322,39.6947542,-104.9407334,39.6945605
-14140,9284,9285,0.260183964007922,0.260183964007922,-104.9725733,39.7796422,-104.9695286,39.7796372
-10472,1612,7829,0.00870018444151776,0.00870018444151776,-104.9918236,39.7578438,-104.9917479,39.7578961
-9067,7146,1144,0.138617590256283,0.138617590256283,-104.9721238,39.7620063,-104.9721151,39.7632529
-9068,1144,873,0.140306927162159,0.140306927162159,-104.9721151,39.7632529,-104.9721084,39.7645147
-16081,9816,366,0.168828958006928,0.168828958006928,-104.962098,39.7800102,-104.9601224,39.7799975
-19882,10410,7867,0.175655958248639,0.175655958248639,-104.9957751,39.7209292,-104.9957671,39.7193495
-9135,5185,5653,0.105406920017136,0.105406920017136,-105.0383678,39.7245391,-105.0383801,39.725487
-19292,10469,10471,0.0669585268555214,0.0669585268555214,-104.9881479,39.7392371,-104.9888451,39.7389629
-14789,9417,9415,0.0546470920616291,0.0546470920616291,-104.9903058,39.7738874,-104.9903152,39.773396
-14678,9330,9301,0.189092694124095,0.189092694124095,-104.9700355,39.7272893,-104.9700183,39.7255888
-16087,9493,9819,0.0602377998698223,0.0602377998698223,-104.9498899,39.7814689,-104.950362,39.7810666
-9262,5135,5150,0.0243532262877801,0.0243532262877801,-104.9373097,39.7338382,-104.9373129,39.7340572
-14663,9300,6543,0.20364721866244,0.20364721866244,-104.9723445,39.725579,-104.9723281,39.7237476
-9311,4256,7276,0.202152573812647,0.202152573812647,-104.9652055,39.6965834,-104.9652088,39.6947654
-20396,10777,10758,0.00300729649615889,0.00300729649615889,-105.0244301,39.7608435,-105.0243956,39.7608382
-16088,9819,9820,0.154328326827327,0.154328326827327,-104.950362,39.7810666,-104.9518785,39.7803129
-9435,7345,7346,0.0190810494123846,0.0190810494123846,-104.9667331,39.7181803,-104.9667331,39.7183519
-18624,6136,9460,0.0524172265643075,0.0524172265643075,-105.0288404,39.7288083,-105.0282321,39.7288662
-20568,10857,10787,0.0362929048752591,0.0362929048752591,-105.0184643,39.7595354,-105.0188651,39.7596431
-18625,9460,2258,0.0501132934741927,0.0501132934741927,-105.0282321,39.7288662,-105.0276461,39.7288658
-15897,9441,9042,0.0240046794304529,0.0240046794304529,-105.0429186,39.7342294,-105.0428737,39.7340163
-16387,9458,9459,0.0276860712412084,0.0276860712412084,-104.9711616,39.7030276,-104.9714714,39.7030996
-11214,8163,391,0.128403364715461,0.128403364715461,-104.9314767,39.7033354,-104.931634,39.702187
-9803,6610,7523,0.196894261944695,0.196894261944695,-104.9280463,39.7365084,-104.9280376,39.7382791
-15456,9612,9605,0.0879146885908635,0.0879146885908635,-105.0005861,39.7432358,-105.000722,39.7440195
-18630,5862,9484,0.00360275623818702,0.00360275623818702,-105.0330764,39.7149803,-105.0330762,39.7149479
-11351,4798,8227,0.0561921807720747,0.0561921807720747,-105.0131467,39.7620198,-105.0138041,39.7620198
-9936,4537,7602,0.2557209782077,0.2557209782077,-105.0221238,39.7283783,-105.025114,39.7283922
-11457,8266,8267,0.4367852597313,0.4367852597313,-104.9731431,39.7798728,-104.9782529,39.7799692
-11491,6185,8281,0.106123839405449,0.106123839405449,-104.993798,39.7520123,-104.9929142,39.7513421
-11244,8185,8162,0.0231522248365289,0.0231522248365289,-104.936636,39.7114077,-104.936452,39.711255
-18634,4045,7865,0.17751242949901,0.17751242949901,-105.0331246,39.7181593,-105.0331005,39.7197556
-18698,5868,1320,0.176912291429695,0.176912291429695,-105.0390984,39.7149619,-105.0391059,39.7133709
-10141,6347,3032,0.0935494731718596,0.0935494731718596,-104.9476508,39.7582147,-104.9476453,39.759056
-11771,8406,4385,0.0534654755495647,0.0534654755495647,-104.9814866,39.7527817,-104.9819456,39.7531083
-19883,7867,3716,0.104069204828323,0.104069204828323,-104.9957671,39.7193495,-104.9957744,39.7184136
-11834,8430,8431,0.087830432319228,0.087830432319228,-105.0156397,39.7432416,-105.0163799,39.7437893
-10212,7733,7734,0.0513578872611552,0.0513578872611552,-104.9757679,39.6893761,-104.9751677,39.6893788
-19884,3716,7405,0.200874185823139,0.200874185823139,-104.9957744,39.7184136,-104.9957689,39.7166071
-11852,8443,8444,0.0120541689820552,0.0120541689820552,-105.0254023,39.7603049,-105.0252881,39.7602413
-10235,2742,7741,0.0499109655825577,0.0499109655825577,-104.9558447,39.6893365,-104.9552614,39.6893365
-19913,10244,6599,0.17675930412674,0.17675930412674,-104.9981677,39.7336833,-104.9981408,39.7320938
-15270,8458,8459,0.0175633548114394,0.0175633548114394,-104.9284834,39.705337,-104.9284002,39.7051926
-10253,1700,7749,0.00587012913148048,0.00587012913148048,-104.9383741,39.6893266,-104.9383055,39.6893261
-20002,10691,10692,0.0226226455892357,0.0226226455892357,-105.0053729,39.7533322,-105.0051878,39.7534776
-11911,8472,8473,0.00378078844043477,0.00378078844043477,-105.0000361,39.7512121,-105.0000669,39.7511877
-10274,3194,6110,0.20159656533977,0.20159656533977,-104.9815359,39.7111143,-104.9815389,39.7093013
-11953,8041,6568,0.145503350739709,0.145503350739709,-104.981415,39.7555288,-104.9802246,39.7564641
-10298,6399,3614,0.133348580117153,0.133348580117153,-104.9308332,39.7717367,-104.9293312,39.771412
-11992,5503,7077,0.147510556806948,0.147510556806948,-104.9804313,39.7603548,-104.9792067,39.7612895
-19496,10524,7457,0.0831219334199701,0.0831219334199701,-104.9883547,39.7082799,-104.9883639,39.7075324
-10398,7619,7807,0.0285985320629965,0.0285985320629965,-104.939234,39.787086,-104.9388993,39.787086
-15922,1816,9751,0.110608853519784,0.110608853519784,-105.0268596,39.7287066,-105.0270382,39.7277214
-11917,8476,1302,0.0550753650708828,0.0550753650708828,-105.0028542,39.7497443,-105.0032204,39.7501518
-20647,10880,10034,0.0300539000602635,0.0300539000602635,-105.0146396,39.7675397,-105.0143619,39.7673739
-10474,6225,7658,0.277054905467397,0.277054905467397,-105.0462701,39.7258018,-105.0462812,39.7282934
-11996,6576,4457,0.148175074796056,0.148175074796056,-104.9837118,39.7591589,-104.9824777,39.7600947
-12215,8590,8591,0.0896761056675667,0.0896761056675667,-105.0062495,39.7427207,-105.0069168,39.7433429
-12240,1246,8611,0.0161729384224601,0.0161729384224601,-105.0017374,39.7492343,-105.0016014,39.7493354
-10602,7875,741,0.0900908109241702,0.0900908109241702,-104.9564659,39.7755986,-104.9564618,39.7764088
-16451,9903,9904,0.00638068663878895,0.00638068663878895,-104.9732302,39.6979873,-104.9731712,39.6980224
-12161,8568,8315,0.127606752812743,0.127606752812743,-105.0063682,39.7484987,-105.0053848,39.7476354
-16022,9791,9792,0.180221045869865,0.180221045869865,-105.0045854,39.6893105,-105.0031651,39.6881137
-12376,7853,4674,0.113693675785271,0.113693675785271,-104.9923076,39.7766218,-104.993638,39.7766218
-12377,4674,8679,0.101029871301971,0.101029871301971,-104.993638,39.7766218,-104.9948199,39.7766009
-19472,10516,7476,0.0110661304777454,0.0110661304777454,-104.9902729,39.7085705,-104.9902755,39.708471
-16024,363,9793,0.0338194849383131,0.0338194849383131,-105.0049362,39.6874613,-105.0047404,39.6877255
-12518,5916,3788,0.153505057727295,0.153505057727295,-104.960135,39.730487,-104.9601881,39.7291071
-10815,3667,7993,0.06101955432425,0.06101955432425,-104.9746946,39.7474748,-104.9747549,39.746928
-17063,2247,4880,0.17655557289719,0.17655557289719,-104.9616491,39.7334649,-104.9616527,39.7350527
-18644,1374,1318,0.176938793518256,0.176938793518256,-105.0378774,39.7117812,-105.0378936,39.7133724
-20668,1127,10890,0.00915451265400173,0.00915451265400173,-105.0404877,39.7653392,-105.0403806,39.7653384
-15804,1934,9711,0.166526724215667,0.166526724215667,-105.0322592,39.738485,-105.0322666,39.7399826
-15805,9711,9506,0.0388070303408929,0.0388070303408929,-105.0322666,39.7399826,-105.0322667,39.7403316
-15809,9713,7112,0.0121509406944637,0.0121509406944637,-105.0286059,39.7348578,-105.0286006,39.7347486
-17109,4052,8135,0.162752784015343,0.162752784015343,-104.9579299,39.7478129,-104.9597582,39.7482207
-12609,7223,8772,0.0487324288024552,0.0487324288024552,-104.9964257,39.7289087,-104.9969955,39.7289027
-10935,6177,3306,0.106502895543558,0.106502895543558,-104.9853166,39.7585655,-104.9862237,39.7592221
-10936,3306,8049,0.0536769065211004,0.0536769065211004,-104.9862237,39.7592221,-104.9866649,39.7595656
-16203,7727,9845,1.20908168114497,1.20908168114497,-104.9810119,39.6894094,-104.9810466,39.6785359
-10955,8058,8059,0.079137340429329,0.079137340429329,-105.0040758,39.7305164,-105.0050012,39.7305205
-16612,9327,9942,0.147120185144049,0.147120185144049,-104.9836296,39.7497738,-104.9824158,39.7507117
-17066,5478,9963,0.164315977100666,0.164315977100666,-104.9616347,39.7383964,-104.9616093,39.739874
-17067,9963,10069,0.0117569437064922,0.0117569437064922,-104.9616093,39.739874,-104.9616202,39.7399794
-12661,6331,6548,0.107973460603441,0.107973460603441,-104.9824024,39.7231556,-104.9823535,39.7241259
-12679,3638,8797,0.0132415259966435,0.0132415259966435,-104.9499674,39.712765,-104.9499588,39.7128839
-16962,10044,10040,0.011239967337662,0.011239967337662,-105.0165756,39.7549307,-105.0167064,39.7549204
-12708,6861,5165,0.179825321478717,0.179825321478717,-104.9497683,39.7146491,-104.9497617,39.7162663
-11020,1485,143,0.200555984903635,0.200555984903635,-104.9991903,39.6948908,-104.9992288,39.6930874
-11021,143,8087,0.297571119969413,0.297571119969413,-104.9992288,39.6930874,-104.9992149,39.6904113
-17011,9424,10052,0.0266755832635793,0.0266755832635793,-105.0159208,39.7548693,-105.0157808,39.7546549
-12731,8820,7196,0.0815503609966838,0.0815503609966838,-104.9407348,39.6936614,-104.940735,39.692928
-17038,10062,9210,0.00792923279445615,0.00792923279445615,-105.0192815,39.7574299,-105.0192694,39.7575006
-11062,3436,7764,0.0490279707439403,0.0490279707439403,-105.0346033,39.7783879,-105.035177,39.7783841
-16025,9793,9792,0.141538634561804,0.141538634561804,-105.0047404,39.6877255,-105.0031651,39.6881137
-12773,8830,4166,0.0867031847297172,0.0867031847297172,-104.9732562,39.7194083,-104.972908,39.7201406
-16209,6627,5825,0.203615270524375,0.203615270524375,-104.9787159,39.6929842,-104.9786761,39.6911533
-16207,7210,6624,0.114867174949551,0.114867174949551,-104.9798457,39.6930109,-104.9798363,39.6940439
-16210,5825,7730,0.194825716270604,0.194825716270604,-104.9786761,39.6911533,-104.9786837,39.6894012
-13015,8917,8918,0.0110325419879542,0.0110325419879542,-104.9949225,39.7698636,-104.9947937,39.769857
-13019,8923,8924,0.0459300988872919,0.0459300988872919,-104.9942478,39.7699708,-104.9947852,39.7699691
-11247,8187,5274,0.160867422208887,0.160867422208887,-104.9332506,39.7096719,-104.93153,39.709088
-19514,10535,10538,0.0037920381346196,0.0037920381346196,-104.9882297,39.7088075,-104.9881977,39.7087839
-13024,6190,280,0.0860979970314494,0.0860979970314494,-104.9857782,39.7801773,-104.9858487,39.7794049
-11276,8174,8198,0.367460344283523,0.367460344283523,-104.9406492,39.7073573,-104.9363539,39.7073938
-18156,4088,6034,0.199039273787356,0.199039273787356,-105.0129501,39.7838266,-105.0129545,39.7856166
-13094,1749,8958,0.0802223716795591,0.0802223716795591,-104.9721944,39.7142027,-104.9728651,39.714707
-11325,5154,2237,0.0295446835402977,0.0295446835402977,-104.930434,39.732587,-104.9303867,39.7328502
-18719,4048,7409,0.17730031135953,0.17730031135953,-105.0343046,39.7181492,-105.0343048,39.7165547
-13118,8967,1742,0.0145216501585431,0.0145216501585431,-104.9850034,39.7676171,-104.9851236,39.7677094
-18386,8971,8972,0.00871865668631088,0.00871865668631088,-105.0250832,39.760307,-105.025167,39.7603517
-13072,8913,8952,0.0749880743663527,0.0749880743663527,-104.9953476,39.7678001,-104.9945443,39.7680713
-17640,230,8241,0.144923812025645,0.144923812025645,-104.9472475,39.7797519,-104.9455738,39.7799622
-13560,9033,578,0.049912950240993,0.049912950240993,-105.0111825,39.7228848,-105.0107342,39.7225974
-11377,8237,4850,0.0778446846789704,0.0778446846789704,-104.9963555,39.757081,-104.9969821,39.757589
-18720,7409,5864,0.175843787012913,0.175843787012913,-105.0343048,39.7165547,-105.0343073,39.7149733
-11410,2864,7808,0.201887571458386,0.201887571458386,-104.9858115,39.7855801,-104.9857845,39.7873956
-11526,8300,809,0.0681077085457417,0.0681077085457417,-105.0260499,39.7560402,-105.026046,39.7554277
-18653,7653,10176,0.157020875630107,0.157020875630107,-105.0400098,39.7282525,-105.0399856,39.7268405
-13241,7916,4418,0.196768399976565,0.196768399976565,-105.0275054,39.7094042,-105.0298056,39.7094174
-11566,7031,7379,0.100426092571383,0.100426092571383,-105.0322607,39.7580218,-105.0334355,39.7580283
-11568,7379,1594,0.158671241159827,0.158671241159827,-105.0334355,39.7580283,-105.0340269,39.7566757
-17820,10186,10187,0.0184687744290435,0.0184687744290435,-105.0007327,39.7634893,-105.0006185,39.7636303
-13263,4963,6826,0.0748897830948627,0.0748897830948627,-105.0432124,39.7049338,-105.0432124,39.7042603
-11599,7782,8332,0.0501574795892601,0.0501574795892601,-105.0392921,39.7621196,-105.0398789,39.7621198
-11600,8332,1125,0.0495676895406725,0.0495676895406725,-105.0398789,39.7621198,-105.0404588,39.7621199
-11644,4658,8348,0.011012895464713,0.011012895464713,-105.0191633,39.7552936,-105.0190347,39.7552995
-18918,10397,10398,0.0105062475981655,0.0105062475981655,-105.011825,39.749838,-105.0118932,39.7497594
-17913,6562,4748,0.176744370871331,0.176744370871331,-104.9856207,39.7241273,-104.9856194,39.7225378
-11715,8369,8370,0.101679025311835,0.101679025311835,-105.0381422,39.7427432,-105.0393314,39.7427374
-11747,8387,8388,0.0596706311453888,0.0596706311453888,-105.0139458,39.741431,-105.0138882,39.7419658
-11775,8121,2683,0.119321215072029,0.119321215072029,-104.9781346,39.7526951,-104.9790985,39.751919
-13389,8267,9048,0.0706232625221708,0.0706232625221708,-104.9782529,39.7799692,-104.9790788,39.7799923
-11997,4457,5505,0.144543593212435,0.144543593212435,-104.9824777,39.7600947,-104.9812949,39.7610237
-19642,10599,10600,0.00461558236551731,0.00461558236551731,-104.9879173,39.7068487,-104.9879279,39.706808
-12058,153,3776,0.311946607437041,0.311946607437041,-104.9572293,39.7448211,-104.9578598,39.7475843
-13750,6895,9177,0.1538081352177,0.1538081352177,-104.9317267,39.7692334,-104.931781,39.770616
-12164,4818,7560,0.10615031357403,0.10615031357403,-104.9979466,39.7514927,-104.9970625,39.7508224
-15934,6257,9756,0.181030993335028,0.181030993335028,-104.9961632,39.6984894,-104.9962839,39.7001148
-18568,10324,10321,0.144976741381278,0.144976741381278,-105.0327262,39.781661,-105.0330975,39.7803888
-20260,6471,10699,0.00720326005355295,0.00720326005355295,-105.0440839,39.7747614,-105.0440797,39.7748261
-12382,440,8680,0.0360714923590191,0.0360714923590191,-104.969326,39.7033402,-104.9691913,39.7036476
-13919,482,483,0.00751372921095178,0.00751372921095178,-104.9858803,39.7012654,-104.9859077,39.7013296
-20414,3586,10773,0.00983155874827391,0.00983155874827391,-105.0238257,39.7607202,-105.0238489,39.7606336
-12480,8712,8713,0.0991407463070431,0.0991407463070431,-104.9675147,39.6929637,-104.966356,39.6929637
-15455,9611,9612,0.086225314993736,0.086225314993736,-105.0002927,39.7424939,-105.0005861,39.7432358
-20417,8993,10775,0.0123681069665026,0.0123681069665026,-105.0243946,39.7599006,-105.0243213,39.7599965
-19623,10508,10591,0.0688242418092362,0.0688242418092362,-104.9902611,39.7099214,-104.9910656,39.7099299
-14087,6816,2943,0.102402811156445,0.102402811156445,-104.9246085,39.7113484,-104.9258054,39.711367
-12571,8755,8756,0.0991408859101036,0.0991408859101036,-104.9430353,39.6947545,-104.9418766,39.6947611
-18658,9831,7643,0.17655772025733,0.17655772025733,-105.0306678,39.7293074,-105.030657,39.7277196
-16026,9792,9793,0.141538634561804,0.141538634561804,-105.0031651,39.6881137,-105.0047404,39.6877255
-14200,5104,8831,0.0500819471783367,0.0500819471783367,-104.973501,39.7255812,-104.9729154,39.7255792
-16028,9794,9795,0.0352990859554557,0.0352990859554557,-105.0152372,39.6892461,-105.0155912,39.6894091
-12690,8805,8806,0.0205962859747724,0.0205962859747724,-104.9534009,39.718219,-104.953405,39.7180338
-14297,1952,9317,0.0799385706307454,0.0799385706307454,-104.9402458,39.7146371,-104.9406062,39.7153004
-12747,5350,4220,0.0793424677909429,0.0793424677909429,-104.928405,39.689348,-104.9274781,39.6893679
-16029,9796,9797,0.0144472492683917,0.0144472492683917,-105.0121361,39.6892112,-105.0122561,39.6891198
-20288,6472,10687,0.0642398609947935,0.0642398609947935,-105.0445755,39.7747614,-105.0445822,39.7741837
-14311,8859,8501,0.0340924315859818,0.0340924315859818,-104.9873914,39.7526692,-104.9871043,39.7524564
-14330,602,8973,0.0577848630730138,0.0577848630730138,-104.9952229,39.7691313,-104.9948538,39.7695667
-16030,9797,9798,0.0484390320890552,0.0484390320890552,-105.0122561,39.6891198,-105.012394,39.6886973
-16031,9798,9799,0.00754569346896809,0.00754569346896809,-105.012394,39.6886973,-105.0124128,39.688631
-14334,2420,8925,0.0583291679544673,0.0583291679544673,-104.9948281,39.7704903,-104.9949053,39.7699691
-12784,8834,5470,0.171286135301765,0.171286135301765,-104.9730073,39.7368668,-104.9730156,39.7384072
-12785,5470,8835,0.178924287864237,0.178924287864237,-104.9730156,39.7384072,-104.9730207,39.7400163
-16033,9799,9800,0.00706845342179734,0.00706845342179734,-105.0124128,39.688631,-105.0124316,39.6885691
-14357,513,9331,0.0549879463430077,0.0549879463430077,-105.0345487,39.7837339,-105.0351853,39.7838062
-12804,3763,2560,0.0898130023336766,0.0898130023336766,-105.0064169,39.7854508,-105.0064215,39.7862585
-12820,8849,8848,0.188203677867594,0.188203677867594,-104.9966205,39.782197,-104.9987337,39.782674
-16035,9800,6871,0.0378217549395311,0.0378217549395311,-105.0124316,39.6885691,-105.0125152,39.6882351
-20159,6155,10163,0.0614761289722609,0.0614761289722609,-104.9848557,39.7798784,-104.9855751,39.7798803
-12915,967,5281,0.138474892352542,0.138474892352542,-104.9838014,39.7234262,-104.982597,39.7225939
-16687,9988,8314,0.0384286340006129,0.0384286340006129,-105.0043843,39.7477818,-105.0042918,39.74812
-12991,8908,306,0.0182421240862306,0.0182421240862306,-105.0289792,39.7622112,-105.029097,39.762348
-13032,8926,8928,0.185901221322606,0.185901221322606,-104.989367,39.779071,-104.9872354,39.7794049
-16689,1824,9989,0.0121513664645164,0.0121513664645164,-105.0068707,39.7455494,-105.00675,39.7456071
-13107,8963,8964,0.0484369444463125,0.0484369444463125,-104.9950178,39.7638741,-104.9950202,39.7634385
-19516,10539,10536,0.00249155177103479,0.00249155177103479,-104.9878821,39.7087971,-104.9879104,39.7088024
-19470,10514,10515,0.0196261730033966,0.0196261730033966,-104.9902714,39.7087938,-104.9902726,39.7086173
-13156,8988,8989,0.00631722030409862,0.00631722030409862,-105.0192467,39.7575819,-105.0193135,39.7576062
-19649,10600,10601,0.0174353644977756,0.0174353644977756,-104.9879279,39.706808,-104.9879279,39.7066512
-18928,10405,10396,0.00112670264684339,0.00112670264684339,-105.0109524,39.7503673,-105.0109587,39.7503762
-18410,10288,8327,0.00700530123739539,0.00700530123739539,-105.0292173,39.7620512,-105.0292171,39.7621142
-14672,9414,4877,0.190941051800692,0.190941051800692,-104.9700963,39.736882,-104.9700645,39.735165
-14673,4877,2227,0.162460717202061,0.162460717202061,-104.9700645,39.735165,-104.9700793,39.733704
-13231,4409,9009,0.223227137223831,0.223227137223831,-105.0298056,39.7022132,-105.0324149,39.7022132
-237,31,134,0.108163538194537,0.108163538194537,-104.9701337,39.6879245,-104.969078,39.6873895
-14831,8322,5668,0.0494625040984646,0.0494625040984646,-105.0305079,39.754821,-105.0310864,39.7548296
-18415,8376,3409,0.101754880454598,0.101754880454598,-105.0358032,39.7543633,-105.0346129,39.7543674
-15848,9733,9731,0.0169747446876837,0.0169747446876837,-105.0423259,39.7305643,-105.0422615,39.7304199
-13335,3971,7017,0.0998321056196178,0.0998321056196178,-105.0298103,39.7311516,-105.0309776,39.7311384
-18626,2258,9475,0.0453120140623152,0.0453120140623152,-105.0276461,39.7288658,-105.0271164,39.7288559
-13471,9095,9092,0.294331677800491,0.294331677800491,-105.0210758,39.7255489,-105.0245174,39.7255447
-13512,7797,9114,0.0647363210214912,0.0647363210214912,-105.013565,39.7254886,-105.0128101,39.7255315
-15901,9499,9500,0.157325995690783,0.157325995690783,-105.023521,39.7294033,-105.0253342,39.729164
-13697,9167,7423,0.127782150083045,0.127782150083045,-104.9929494,39.6966756,-104.9944429,39.6966822
-20289,10687,10697,0.00276887237539732,0.00276887237539732,-105.0445822,39.7741837,-105.0445825,39.7741588
-13718,8097,9171,0.00881240787098174,0.00881240787098174,-105.019205,39.6967483,-105.019308,39.6967483
-13751,9178,9130,0.0262505906254233,0.0262505906254233,-105.0164243,39.7306043,-105.0161204,39.730571
-15391,9259,9571,0.107861175514815,0.107861175514815,-104.9593096,39.7144759,-104.9605702,39.7144511
-15783,2106,9596,0.166115711722291,0.166115711722291,-105.0232102,39.7379438,-105.0247945,39.7370792
-13852,1774,4412,0.0465225826542141,0.0465225826542141,-104.9769161,39.7038457,-104.9763723,39.7038488
-20380,10763,10764,0.00723047037301379,0.00723047037301379,-105.0250727,39.760924,-105.0249892,39.7609136
-15452,9609,9598,0.128875611115748,0.128875611115748,-105.0003045,39.7431574,-104.9998109,39.7420623
-14144,9287,4651,0.182099578171645,0.182099578171645,-105.0165756,39.7450309,-105.0171429,39.7434524
-15807,9712,7111,0.0179279183487844,0.0179279183487844,-105.0276269,39.7349114,-105.0276403,39.7347505
-14230,8860,4113,0.0915086936553939,0.0915086936553939,-104.9520697,39.7256077,-104.9509997,39.7256047
-15819,9705,8564,0.0112418070831931,0.0112418070831931,-105.0273775,39.7359654,-105.0273775,39.7358643
-14250,8157,7606,0.0899264482990573,0.0899264482990573,-104.9393188,39.7253022,-104.9382673,39.7253035
-19499,10526,10527,0.0418767441965843,0.0418767441965843,-104.9883666,39.7071894,-104.9883695,39.7068128
-16078,9814,9815,0.177867255933272,0.177867255933272,-104.974902,39.7795432,-104.9728236,39.7796294
-14354,5520,6454,0.134959237439496,0.134959237439496,-105.0112082,39.7741318,-105.0112167,39.7753455
-16224,5835,9851,0.203722282298932,0.203722282298932,-104.9563972,39.6911319,-104.9563865,39.692964
-14425,1233,6137,0.0491477874140339,0.0491477874140339,-105.0281917,39.7560463,-105.0287666,39.7560413
-16468,9914,9902,0.117059110726511,0.117059110726511,-104.9726489,39.6941061,-104.9732597,39.6931641
-16500,8890,8891,0.0884309215437497,0.0884309215437497,-105.0029709,39.7443191,-105.0038584,39.7439107
-16591,9948,8492,0.14561270804365,0.14561270804365,-104.9993873,39.7470087,-104.998183,39.7479347
-16470,9915,3282,0.193717589764618,0.193717589764618,-104.9689488,39.7037929,-104.9687946,39.7020548
-14541,6915,9375,0.0102720812466755,0.0102720812466755,-105.0251451,39.7766366,-105.0252653,39.7766366
-16501,8891,3167,0.0148460110144783,0.0148460110144783,-105.0038584,39.7439107,-105.00401,39.7438456
-16593,9949,9950,0.145366288858291,0.145366288858291,-105.0003016,39.7477141,-104.9990547,39.7486029
-14609,8990,8994,0.00979628795431279,0.00979628795431279,-105.0252879,39.7604305,-105.0252881,39.7603424
-14794,3335,7882,0.0961603685796077,0.0961603685796077,-104.9574452,39.7336966,-104.9563208,39.7337098
-17101,332,10014,0.240821045601335,0.240821045601335,-104.9554298,39.7451641,-104.952676,39.7456193
-14816,9424,9425,0.0673114946358147,0.0673114946358147,-105.0159208,39.7548693,-105.0167051,39.7548156
-17065,9474,5478,0.175247470145414,0.175247470145414,-104.9616204,39.7368204,-104.9616347,39.7383964
-15103,3050,9489,0.102745543982247,0.102745543982247,-104.9963681,39.7597212,-104.9963423,39.760645
-16898,8714,8743,0.201991786328297,0.201991786328297,-104.9657828,39.6929687,-104.9658013,39.6947852
-16402,9880,9878,0.04752967411177,0.04752967411177,-104.9718617,39.7035846,-104.971336,39.7034463
-16959,10041,10042,0.0119234352124219,0.0119234352124219,-105.0159755,39.75567,-105.0160419,39.7555757
-16556,9939,2889,0.0528287697048915,0.0528287697048915,-104.9739728,39.7494793,-104.9733549,39.749474
-18646,5867,7412,0.177003576876814,0.177003576876814,-105.0378886,39.7149662,-105.0379016,39.716558
-16623,9957,9958,0.00927766896119108,0.00927766896119108,-104.9856428,39.7393293,-104.9855355,39.7393169
-17017,10056,10054,0.00431206144532878,0.00431206144532878,-105.0167598,39.7546225,-105.0167692,39.7546606
-16635,9967,9937,0.0755376260933099,0.0755376260933099,-104.986072,39.7392385,-104.9859915,39.738562
-16636,9937,9968,0.0848568890148885,0.0848568890148885,-104.9859915,39.738562,-104.9849991,39.7385579
-17507,8389,10114,0.0670519033214907,0.0670519033214907,-105.0124419,39.7396939,-105.0124916,39.7402957
-17069,675,9465,0.179146976203574,0.179146976203574,-104.961623,39.7416085,-104.9615988,39.7432195
-17040,8988,10063,0.00586346085648923,0.00586346085648923,-105.0192467,39.7575819,-105.0192332,39.7576336
-18726,6207,7644,0.18227085937915,0.18227085937915,-105.0318828,39.7260783,-105.0318854,39.7277175
-18724,4060,7415,0.175525264809921,0.175525264809921,-105.0439098,39.7181494,-105.0438828,39.716571
-16759,10010,55,0.0502605990705626,0.0502605990705626,-104.950646,39.6997437,-104.9506434,39.7001957
-17565,10138,8539,0.0573375717149566,0.0573375717149566,-104.9667127,39.7813542,-104.9669081,39.7808609
-17283,8717,8746,0.200951019692623,0.200951019692623,-104.9599663,39.6929697,-104.9599905,39.6947768
-17285,76,3515,0.20373476556842,0.20373476556842,-104.9646375,39.7002188,-104.9646237,39.6983866
-17286,3515,4257,0.200873634983474,0.200873634983474,-104.9646237,39.6983866,-104.9646237,39.6965801
-17288,10023,5839,0.200541247802215,0.200541247802215,-104.9517951,39.692944,-104.9518032,39.6911405
-18744,6227,5190,0.106449102002429,0.106449102002429,-105.0433385,39.72552,-105.0433305,39.7245627
-17655,10140,480,0.0210901662616695,0.0210901662616695,-104.967225,39.7796681,-104.9669782,39.7796681
-17657,8540,9827,0.194565529373187,0.194565529373187,-104.969601,39.7801972,-104.9718556,39.7799532
-17427,10105,10106,0.0219929458534896,0.0219929458534896,-104.9828833,39.6888958,-104.9831403,39.6888986
-17857,10200,10197,0.0144828525731025,0.0144828525731025,-104.9731394,39.7883607,-104.9732548,39.7884561
-18236,7037,3424,0.201298115256081,0.201298115256081,-105.0322649,39.7652109,-105.0346199,39.7651924
-17786,8497,9214,0.0149001836759509,0.0149001836759509,-105.0139116,39.7556283,-105.0140859,39.7556275
-18667,5188,2601,0.176856921267491,0.176856921267491,-105.0410909,39.7245488,-105.0410827,39.7229583
-15257,8538,9547,0.0461864635130014,0.0461864635130014,-104.9283761,39.7065112,-104.927837,39.7065339
-15834,9727,4582,0.339362052888466,0.339362052888466,-105.039304,39.7384682,-105.0393281,39.7415201
-18239,6764,3988,0.20124356936137,0.20124356936137,-105.0276005,39.7707095,-105.0299532,39.7707836
-17648,223,227,0.245258634538467,0.245258634538467,-104.9432215,39.7799643,-104.9403515,39.7799498
-19708,10627,10621,0.090662464616454,0.090662464616454,-105.0051511,39.7346116,-105.0051625,39.7337963
-17961,10234,10235,0.0087318555012696,0.0087318555012696,-104.988102,39.7243341,-104.9880993,39.7242556
-19710,10623,10628,0.0762458230270849,0.0762458230270849,-105.0031654,39.7337887,-105.0039101,39.7341658
-17727,3328,7879,0.104097845117031,0.104097845117031,-104.9573341,39.760728,-104.9561163,39.7607348
-18725,7415,10336,0.0555461867275064,0.0555461867275064,-105.0438828,39.716571,-105.0438909,39.7160715
-17748,10172,8285,0.147249823900369,0.147249823900369,-104.9890951,39.7502672,-104.9903025,39.7493228
-19600,10582,10478,0.00442384590255706,0.00442384590255706,-104.9902054,39.7102774,-104.9902571,39.7102784
-16294,2409,2439,0.0170153678743566,0.0170153678743566,-104.9698358,39.6961931,-104.9697532,39.6960539
-18663,2592,5184,0.178895247307371,0.178895247307371,-105.0378588,39.7229259,-105.0378224,39.7245345
-15835,4582,8370,0.135357878279395,0.135357878279395,-105.0393281,39.7415201,-105.0393314,39.7427374
-17987,10240,7225,0.133765909115813,0.133765909115813,-104.9949413,39.7336839,-104.9965056,39.7336859
-18776,10123,3737,0.13151506607382,0.13151506607382,-105.0041704,39.7400311,-105.0028068,39.7394839
-19243,10420,8480,0.0202782525837911,0.0202782525837911,-104.9910563,39.7427139,-104.9912213,39.7425829
-18831,10359,10360,0.0341232753962164,0.0341232753962164,-105.0141666,39.7374377,-105.0142282,39.7371345
-19553,6857,10560,0.00726201622420357,0.00726201622420357,-104.9892637,39.7102478,-104.9892651,39.7101825
-19940,9641,6649,0.164927985335569,0.164927985335569,-104.9994122,39.7368744,-104.9992032,39.7383489
-18941,4644,1269,0.146851000824624,0.146851000824624,-105.018682,39.7183967,-105.0203986,39.7184231
-19118,10431,8430,0.136066207456442,0.136066207456442,-105.0144289,39.7424475,-105.0156397,39.7432416
-19278,10421,6707,0.0993066662474356,0.0993066662474356,-104.9951815,39.7462368,-104.9943683,39.7468745
-15836,8370,5297,0.134414346058358,0.134414346058358,-105.0393314,39.7427374,-105.039323,39.7439462
-19047,901,9486,0.27949052314451,0.27949052314451,-104.9406492,39.7644637,-104.9406618,39.7619502
-19612,10586,10499,0.00658715235564877,0.00658715235564877,-104.9910692,39.709571,-104.9911462,39.7095717
-15838,9728,7437,0.0439886907558265,0.0439886907558265,-105.0374547,39.7337049,-105.0369779,39.7338534
-19065,10422,5495,0.202007910819525,0.202007910819525,-104.9407436,39.7401208,-104.9407458,39.7383041
-15840,9729,9702,0.0777181684296862,0.0777181684296862,-105.038439,39.7323043,-105.0382565,39.732989
-15841,9702,9730,0.0351380099433058,0.0351380099433058,-105.0382565,39.732989,-105.038423,39.7332779
-19273,10425,10173,0.013664079145809,0.013664079145809,-104.9948429,39.7459879,-104.9947299,39.745901
-19160,10429,10050,0.0518274489533285,0.0518274489533285,-105.0000136,39.7493831,-105.0006176,39.749423
-20574,10861,10862,0.011368530817607,0.011368530817607,-105.0248964,39.7611186,-105.0250294,39.7611184
-19554,10560,10548,0.0725121719316359,0.0725121719316359,-104.9892651,39.7101825,-104.9892812,39.7095305
-19461,10477,10478,0.0230516224965269,0.0230516224965269,-104.9902547,39.7104857,-104.9902571,39.7102784
-19438,10491,6859,0.0113764020129076,0.0113764020129076,-104.9897225,39.7103526,-104.9897244,39.7102503
-19277,8487,10421,0.0474605500221532,0.0474605500221532,-104.9955701,39.745932,-104.9951815,39.7462368
-19226,8479,10451,0.0120282782230604,0.0120282782230604,-104.9903554,39.7419081,-104.9904508,39.7418286
-19482,10486,10487,0.00666482250083992,0.00666482250083992,-104.9910713,39.7093611,-104.9911492,39.7093622
-19412,1903,7239,0.197394669243537,0.197394669243537,-104.9798636,39.7074913,-104.9798548,39.7057161
-19323,916,5917,0.178370202088171,0.178370202088171,-104.9874133,39.7320545,-104.987439,39.7304505
-19329,10473,9894,0.0172442514416892,0.0172442514416892,-104.971721,39.6984149,-104.9716111,39.6985449
-19662,10608,10609,0.151226661870126,0.151226661870126,-105.0228937,39.7697604,-105.0211243,39.7697539
-19357,3170,9949,0.0476976092634506,0.0476976092634506,-105.0006969,39.7480168,-105.0003016,39.7477141
-19703,10622,10623,0.11468932159706,0.11468932159706,-105.0045066,39.7337938,-105.0031654,39.7337887
-19379,9194,4397,0.102701543160846,0.102701543160846,-104.9954622,39.743992,-104.9946157,39.7433367
-19846,10657,10658,0.207612047714745,0.207612047714745,-105.0387332,39.7384666,-105.0387333,39.7365995
-19735,10641,10642,0.0869223005082275,0.0869223005082275,-104.968958,39.7392065,-104.9689526,39.7384248
-423,422,423,0.0170753331475834,0.0170753331475834,-104.958788,39.708906,-104.95889,39.708774
-18892,3649,3275,0.147518961348099,0.147518961348099,-104.9575638,39.7025228,-104.9575461,39.7038494
-20076,6318,8004,0.0509194903724274,0.0509194903724274,-104.9758794,39.7400231,-104.9752839,39.740019
-20104,8546,2065,0.048454988097841,0.048454988097841,-104.9541798,39.7401771,-104.9536131,39.740176
-20204,9321,10178,0.0841675532676054,0.0841675532676054,-104.9880818,39.7550779,-104.9873945,39.7556199
-20205,10178,8401,0.0611444527276629,0.0611444527276629,-104.9873945,39.7556199,-104.9868716,39.7559951
-259,266,267,0.0502803318432383,0.0502803318432383,-104.9494463,39.6897162,-104.9500299,39.6896634
-14829,6148,4022,0.133340280271954,0.133340280271954,-105.0283827,39.754823,-105.0299425,39.7548206
-20293,10704,10700,0.011586826540776,0.011586826540776,-105.0445781,39.7730214,-105.0445771,39.7731256
-14835,7029,7396,0.0697085759052968,0.0697085759052968,-105.0322588,39.7548413,-105.0330742,39.7548479
-20259,10688,6471,0.00765068827927408,0.00765068827927408,-105.0440849,39.7746926,-105.0440839,39.7747614
-17971,10234,10239,0.0311817416438077,0.0311817416438077,-104.988102,39.7243341,-104.9877374,39.7243341
-20294,10700,10709,0.0186270421112036,0.0186270421112036,-105.0445771,39.7731256,-105.0445556,39.7732923
-14868,8305,8308,0.0233992723150567,0.0233992723150567,-105.0036573,39.7541187,-105.0038599,39.7542602
-421,420,421,0.0887343803029098,0.0887343803029098,-104.9418594,39.7437507,-104.9424633,39.7443997
-424,254,424,0.214565868461505,0.214565868461505,-105.0251543,39.7380028,-105.0237982,39.7396264
-425,424,425,0.179345861037356,0.179345861037356,-105.0237982,39.7396264,-105.0219946,39.7404498
-18900,10380,10379,0.00404144992313864,0.00404144992313864,-105.0126123,39.7504401,-105.0125991,39.750475
-312,320,321,0.234451594909332,0.234451594909332,-105.0174336,39.7493151,-105.0159659,39.7510962
-14897,6102,8202,0.215105101107824,0.215105101107824,-104.9408208,39.7092854,-104.9408446,39.707351
-19648,10603,10600,0.0301818413703728,0.0301818413703728,-104.9882807,39.7068108,-104.9879279,39.706808
-176,185,186,0.0998871295042773,0.0998871295042773,-105.0413928,39.6931195,-105.0425601,39.6931327
-20301,9381,10729,0.0209062182463086,0.0209062182463086,-105.0435596,39.7766165,-105.0435566,39.7764285
-196,205,208,0.198149371104724,0.198149371104724,-105.0203775,39.6894945,-105.0203767,39.6877125
-16280,9869,4511,0.0441265369006206,0.0441265369006206,-104.9543259,39.6981771,-104.9541278,39.6978107
-15850,9734,5596,0.0497405541513423,0.0497405541513423,-105.0433666,39.7303044,-105.0438933,39.7301146
-19563,7475,10566,0.00626126200522767,0.00626126200522767,-104.9897492,39.7084668,-104.9897479,39.7084105
-248,255,256,0.148914456277168,0.148914456277168,-104.9534054,39.7800114,-104.9516897,39.7797769
-14938,8158,7604,0.0947062136756459,0.0947062136756459,-104.9394819,39.7382793,-104.9383746,39.7382991
-305,313,314,0.0701186694040595,0.0701186694040595,-104.970735,39.780686,-104.970235,39.781186
-14691,3129,941,0.177390618833456,0.177390618833456,-104.9712066,39.7304555,-104.9712147,39.7320508
-371,263,372,0.159425481094297,0.159425481094297,-104.9473177,39.68967,-104.9473692,39.6911032
-372,262,373,0.154271040601459,0.154271040601459,-104.9458929,39.6897096,-104.9459358,39.6910966
-373,374,375,0.0498842542371797,0.0498842542371797,-105.0251537,39.7734966,-105.02457,39.7734966
-20302,6466,9378,0.155873782837014,0.155873782837014,-105.042271,39.7752905,-105.0422654,39.7766923
-315,323,324,0.151711567725454,0.151711567725454,-105.0156986,39.7518215,-105.0152472,39.753141
-554,548,549,0.0392699857827163,0.0392699857827163,-104.999646,39.701424,-104.999187,39.7014274
-14993,7973,7142,0.0462138706300854,0.0462138706300854,-104.9726808,39.7432422,-104.9721403,39.7432453
-17218,6114,3199,0.202944002497817,0.202944002497817,-104.9775313,39.7092628,-104.9775204,39.7110879
-317,325,326,0.0648164274191724,0.0648164274191724,-104.9964344,39.7091326,-104.9969556,39.7087095
-17027,3490,3584,0.0598495371899439,0.0598495371899439,-105.0243147,39.7553581,-105.0236148,39.7553716
-652,642,643,0.0146721427737165,0.0146721427737165,-104.9407521,39.7413879,-104.9405805,39.7413879
-18423,8361,8333,0.20323919891824,0.20323919891824,-105.0410832,39.7639477,-105.0410618,39.76212
-15011,9469,459,0.0480419410466021,0.0480419410466021,-104.9407436,39.7367085,-104.9413035,39.7367444
-15012,459,7107,0.043866666346984,0.043866666346984,-104.9413035,39.7367444,-104.9418165,39.7367415
-11803,8415,8416,0.145780714117446,0.145780714117446,-104.9841796,39.7520575,-104.9853609,39.751112
-18731,8066,10337,0.199884513966678,0.199884513966678,-105.0367563,39.7306104,-105.0367616,39.732408
-17082,4467,2789,0.134890565512634,0.134890565512634,-104.9615875,39.7657386,-104.9615875,39.7669517
-788,793,794,0.093857943582342,0.093857943582342,-104.9361307,39.7528412,-104.9350328,39.7528375
-15029,7883,3337,0.0968744267307773,0.0968744267307773,-104.9562673,39.7368072,-104.9574002,39.7368138
-18907,10384,10385,0.0177708173335528,0.0177708173335528,-105.0122864,39.7504906,-105.0124942,39.7504865
-11693,868,895,0.0109449511220029,0.0109449511220029,-105.0011145,39.7535929,-105.0011439,39.7534971
-16597,8570,5785,0.145695604703312,0.145695604703312,-104.9966174,39.7504686,-104.9954256,39.7514052
-17133,4238,3543,0.202299079539728,0.202299079539728,-104.9763404,39.6966061,-104.9763295,39.6984254
-18439,7914,2971,0.147770970542825,0.147770970542825,-105.027595,39.7578708,-105.0260575,39.7584783
-16408,9882,9889,0.0253610023428754,0.0253610023428754,-104.9710939,39.7032035,-104.9713896,39.7031873
-16601,9952,7558,0.0955122170701592,0.0955122170701592,-104.9999037,39.7492958,-104.9988113,39.7494758
-15050,6016,979,0.0500664854607423,0.0500664854607423,-104.9735459,39.7368668,-104.9741314,39.7368706
-16409,9889,9879,0.0208518700779087,0.0208518700779087,-104.9713896,39.7031873,-104.9716243,39.7032379
-995,753,1009,0.150380388134057,0.150380388134057,-104.9875955,39.7752036,-104.9875916,39.776556
-15070,9479,610,0.10571035032404,0.10571035032404,-104.9861222,39.7368448,-104.9873582,39.7368646
-16411,9459,9889,0.012002862934972,0.012002862934972,-104.9714714,39.7030996,-104.9713896,39.7031873
-1016,1028,1029,0.0655213058855568,0.0655213058855568,-104.9622408,39.7488417,-104.9622186,39.7494307
-15964,4362,1443,0.198880292667991,0.198880292667991,-105.0015545,39.7112124,-105.0038795,39.7112064
-16695,9599,9597,0.0527492023482324,0.0527492023482324,-105.0000258,39.7419225,-105.0002485,39.7423649
-19585,10576,7471,0.00669407122815783,0.00669407122815783,-104.9888178,39.7085212,-104.9888183,39.708461
-1119,1135,1136,0.187278154980764,0.187278154980764,-105.0404138,39.7766958,-105.0404001,39.77838
-15144,9498,6689,0.0114561417292809,0.0114561417292809,-104.949868,39.7789996,-104.9497884,39.7789167
-15795,2323,2324,0.0158381890637799,0.0158381890637799,-105.0223537,39.7376237,-105.0223618,39.737766
-20623,2706,10873,0.00650373799697247,0.00650373799697247,-105.0229176,39.7611551,-105.0229935,39.7611592
-1164,558,1182,0.0726820398635713,0.0726820398635713,-104.996796,39.697349,-104.996786,39.6966954
-15984,7372,5328,0.126515384088506,0.126515384088506,-105.0312304,39.7111869,-105.0327094,39.7111941
-16002,9775,6870,0.0380746194857137,0.0380746194857137,-105.0106552,39.688359,-105.0108215,39.6880414
-11807,8419,8395,0.147975384561768,0.147975384561768,-104.9850687,39.7527297,-104.9838316,39.7536605
-16009,9779,9780,0.0100019925159617,0.0100019925159617,-104.9993937,39.6888781,-104.9993976,39.688968
-331,207,332,0.116329690490202,0.116329690490202,-104.9565607,39.7445824,-104.9554298,39.7451641
-20314,10735,10736,0.00660332250129021,0.00660332250129021,-105.0233062,39.7593161,-105.0233746,39.7593437
-1412,1265,1438,0.0988256135069692,0.0988256135069692,-105.0204691,39.7820002,-105.0216256,39.7820039
-15147,9501,1753,0.946728932771196,0.946728932771196,-104.9477699,39.7837907,-104.9414956,39.7908082
-542,536,537,0.223575651807191,0.223575651807191,-105.0151149,39.7545148,-105.0159762,39.7526163
-1437,1457,1458,0.00733898986406934,0.00733898986406934,-105.0078201,39.6894653,-105.0078206,39.6893993
-15845,9731,9732,0.0664836940914448,0.0664836940914448,-105.0422615,39.7304199,-105.0415588,39.7301641
-15172,9512,9513,0.0495248806719176,0.0495248806719176,-105.0364026,39.7403227,-105.0369818,39.740326
-15173,9513,9514,0.0500036838355924,0.0500036838355924,-105.0369818,39.740326,-105.0375666,39.7403293
-16841,10021,9876,0.0316463232135525,0.0316463232135525,-104.9706319,39.7032358,-104.9705085,39.7029675
-12011,7081,2030,0.145136996076302,0.145136996076302,-104.9818287,39.7633054,-104.9806366,39.7642349
-12961,1633,1631,0.0197483532588124,0.0197483532588124,-105.0035017,39.7410228,-105.0033016,39.7411115
-16037,9801,9802,0.187730927470077,0.187730927470077,-105.0145291,39.6890356,-105.0123441,39.6891881
-1680,1705,1706,0.200641448140145,0.200641448140145,-105.0297026,39.69129,-105.0320475,39.6912817
-15255,9539,9533,0.0958097111651336,0.0958097111651336,-104.9351084,39.7058405,-104.9349851,39.7066969
-16278,9869,3639,0.110423900704732,0.110423900704732,-104.9543259,39.6981771,-104.953288,39.6987674
-1701,1648,1723,0.062496099688971,0.062496099688971,-105.0157083,39.6917929,-105.0164379,39.6918193
-16118,8309,427,0.26882010834223,0.26882010834223,-105.0254224,39.7404725,-105.028564,39.7403785
-250,257,258,0.156601202821138,0.156601202821138,-104.9487596,39.6897096,-104.9488454,39.6911164
-1726,1744,1745,1.09817431556355,1.09817431556355,-104.9722383,39.6883787,-104.9722634,39.6785026
-16141,9831,7016,0.0255913598249866,0.0255913598249866,-105.0306678,39.7293074,-105.030967,39.729303
-16142,7016,7028,0.027160195994677,0.027160195994677,-105.030967,39.729303,-105.0312846,39.729303
-251,259,260,0.154968238345174,0.154968238345174,-104.9465795,39.6897096,-104.9465967,39.6911032
-1778,1796,1797,0.0510193327806952,0.0510193327806952,-104.9786977,39.6947606,-104.9781014,39.6947603
-15256,9533,9546,0.0701631467931239,0.0701631467931239,-104.9349851,39.7066969,-104.9348965,39.7073242
-4282,4025,4026,0.0836518662560613,0.0836518662560613,-105.0299339,39.7572686,-105.029918,39.7580208
-4283,4026,2975,0.0536630317560949,0.0536630317560949,-105.029918,39.7580208,-105.0299157,39.7585034
-252,261,262,0.0449524282619667,0.0449524282619667,-104.9453693,39.6896766,-104.9458929,39.6897096
-17948,10228,8780,0.031808150523084,0.031808150523084,-104.98712,39.7238543,-104.9874919,39.7238512
-1803,1816,1817,0.0829077522721667,0.0829077522721667,-105.0268596,39.7287066,-105.02745,39.7281152
-4294,2858,4032,0.190837980669502,0.190837980669502,-105.0043357,39.6975452,-105.0065466,39.6973179
-4296,4033,4034,0.0984313521955559,0.0984313521955559,-105.0318398,39.697683,-105.03299,39.6977028
-4297,4034,4035,0.124316100856361,0.124316100856361,-105.03299,39.6977028,-105.0344405,39.6976368
-4299,1488,135,0.200939910778157,0.200939910778157,-104.988737,39.694787,-104.9886673,39.6929807
-4300,135,1703,0.200530915425065,0.200530915425065,-104.9886673,39.6929807,-104.9887113,39.6911776
-253,262,259,0.0587496721634218,0.0587496721634218,-104.9458929,39.6897096,-104.9465795,39.6897096
-1830,1846,1847,0.0521892409260155,0.0521892409260155,-105.0330898,39.7213326,-105.0337,39.7213301
-4310,4043,1394,0.105949182025439,0.105949182025439,-105.031239,39.7181657,-105.0324777,39.7181596
-4311,1394,4044,0.0525758001653233,0.0525758001653233,-105.0324777,39.7181596,-105.0330924,39.7181593
-4312,4044,4045,0.00275409212275412,0.00275409212275412,-105.0330924,39.7181593,-105.0331246,39.7181593
-4313,4045,4046,0.048684142933598,0.048684142933598,-105.0331246,39.7181593,-105.0336938,39.7181591
-4314,4046,4048,0.0522538202962548,0.0522538202962548,-105.0336938,39.7181591,-105.0343046,39.7181492
-11581,1889,1890,0.200726535096683,0.200726535096683,-105.0322578,39.7616855,-105.0299096,39.7616676
-254,259,263,0.0633181950748288,0.0633181950748288,-104.9465795,39.6897096,-104.9473177,39.68967
-1901,1087,1914,0.0231926567105046,0.0231926567105046,-104.9724071,39.7074855,-104.972136,39.707488
-4323,4055,4056,0.0506868932206778,0.0506868932206778,-105.0391007,39.7181492,-105.0396933,39.7181525
-4324,4056,4057,0.0525415825536361,0.0525415825536361,-105.0396933,39.7181525,-105.0403076,39.7181525
-4325,4057,1106,0.049505238452812,0.049505238452812,-105.0403076,39.7181525,-105.0408864,39.7181525
-4326,1106,4058,0.103487473030962,0.103487473030962,-105.0408864,39.7181525,-105.0420963,39.7181446
-255,263,264,0.0528764032574804,0.0528764032574804,-104.9473177,39.68967,-104.9479356,39.6896766
-1921,1933,1934,0.0492173865000396,0.0492173865000396,-105.0316836,39.7384833,-105.0322592,39.738485
-1929,1942,1943,0.119118027307007,0.119118027307007,-104.9888238,39.7384602,-104.9902169,39.7384586
-4337,4067,4068,0.0478289627129219,0.0478289627129219,-105.0276017,39.7844198,-105.0281513,39.7843383
-4338,4068,4069,0.0505441496304245,0.0505441496304245,-105.0281513,39.7843383,-105.0287428,39.7843351
-4339,4069,4070,0.0498130318292156,0.0498130318292156,-105.0287428,39.7843351,-105.0293098,39.784231
-4342,4071,4072,0.0561534117303384,0.0561534117303384,-105.0304275,39.7840207,-105.0310648,39.7838975
-4343,4072,4073,0.0484769480819301,0.0484769480819301,-105.0310648,39.7838975,-105.0316273,39.7838408
-18384,8960,8961,0.0519015690499355,0.0519015690499355,-105.0258905,39.7724462,-105.0258806,39.7729129
-544,538,539,0.0154777376492066,0.0154777376492066,-105.0462947,39.7530417,-105.0461157,39.7530208
-2042,2050,2051,0.199194779708592,0.199194779708592,-104.9674629,39.7038542,-104.9674661,39.7020628
-12337,8654,8655,0.0104809427005404,0.0104809427005404,-105.0075431,39.754727,-105.0074206,39.7547231
-4355,3965,4081,0.411489005127648,0.411489005127648,-105.0003399,39.7837825,-105.005155,39.7838353
-4356,4081,4082,0.106344190536588,0.106344190536588,-105.005155,39.7838353,-105.0063995,39.7838419
-4358,4083,1074,0.0829286899836406,0.0829286899836406,-105.0082472,39.7838436,-105.0092177,39.7838422
-4359,1074,2497,0.0840300949352524,0.0840300949352524,-105.0092177,39.7838422,-105.0102009,39.7838273
-16773,3182,3277,0.192234323904948,0.192234323904948,-104.9552273,39.7021149,-104.9552326,39.7038437
-2067,2069,2070,0.202510221820354,0.202510221820354,-104.9534962,39.7873923,-104.9534692,39.7892134
-19432,8707,10110,0.0968673163006813,0.0968673163006813,-104.9850997,39.7033596,-104.9839674,39.7033596
-4370,4092,4093,0.0521723369054183,0.0521723369054183,-105.0158347,39.7839964,-105.016444,39.7839662
-4373,4095,4096,0.0511584997280867,0.0511584997280867,-105.0175565,39.7838951,-105.0181552,39.7838945
-4374,4096,4097,0.0510055304226098,0.0510055304226098,-105.0181552,39.7838945,-105.0187521,39.7838972
-14753,6934,5930,0.0358835820845479,0.0358835820845479,-104.9793301,39.7301101,-104.979327,39.7304328
-545,539,540,0.260599478311813,0.260599478311813,-105.0461157,39.7530208,-105.0433843,39.7519802
-2113,2114,2115,0.0866449228578761,0.0866449228578761,-104.9269938,39.7723519,-104.9270004,39.7731311
-12341,2501,8642,0.0589286767766051,0.0589286767766051,-105.0073403,39.7545867,-105.0079921,39.7544142
-4383,4104,2729,0.0487767884709024,0.0487767884709024,-105.0233734,39.7846136,-105.0239366,39.7846851
-4387,748,1566,0.142516569011717,0.142516569011717,-104.9508345,39.7763985,-104.9507995,39.7776799
-16443,9900,9901,0.201666693845683,0.201666693845683,-104.9688122,39.6930484,-104.9711673,39.6931206
-546,540,541,0.0326517480806501,0.0326517480806501,-105.0433843,39.7519802,-105.0430648,39.7518193
-547,541,542,0.0254047336234174,0.0254047336234174,-105.0430648,39.7518193,-105.0428359,39.7516736
-2158,2156,2157,0.218243127550759,0.218243127550759,-105.0139707,39.7293204,-105.0141188,39.7312798
-2160,2158,2159,0.0821511858388999,0.0821511858388999,-105.0144627,39.756468,-105.0144598,39.7572068
-16173,4250,9840,0.39197341800201,0.39197341800201,-104.9867926,39.6966289,-104.9868416,39.693104
-19464,10508,10509,0.0204161788330557,0.0204161788330557,-104.9902611,39.7099214,-104.9902632,39.7097378
-18178,5791,6050,0.202074681821779,0.202074681821779,-105.0258291,39.7874305,-105.0258319,39.7856132
-20702,10891,10902,0.0170035110425561,0.0170035110425561,-105.0400867,39.7653362,-105.0400838,39.7654891
-16216,8620,7903,0.142599898878985,0.142599898878985,-105.0093075,39.7583444,-105.0105038,39.7592382
-11816,2201,2202,0.15535054028393,0.15535054028393,-105.0146775,39.7403403,-105.0128922,39.7400809
-17089,9940,8134,0.138649146182337,0.138649146182337,-104.960382,39.7494708,-104.9603847,39.7482239
-17090,8134,3689,0.141996254884573,0.141996254884573,-104.9603847,39.7482239,-104.9603811,39.7469469
-2222,2222,2223,0.0488100805647676,0.0488100805647676,-104.9729758,39.7337087,-104.972405,39.7337096
-2223,2223,2224,0.0512642786009998,0.0512642786009998,-104.972405,39.7337096,-104.9718055,39.7337106
-14639,2243,2244,0.0354564943031107,0.0354564943031107,-105.0051802,39.7575225,-105.0050086,39.7572322
-17091,3689,4597,0.241148863142693,0.241148863142693,-104.9603811,39.7469469,-104.9603758,39.7447782
-2264,2264,2265,0.176035436319457,0.176035436319457,-104.9304797,39.7178171,-104.9304912,39.7194002
-14641,2244,2272,0.0187003459565438,0.0187003459565438,-105.0050086,39.7572322,-105.0048152,39.7571536
-16312,2722,2929,0.0126176772334624,0.0126176772334624,-104.96971,39.6952871,-104.9698519,39.6952562
-14127,419,417,0.0606641044076811,0.0606641044076811,-104.94552,39.7449427,-104.9458794,39.7444723
-2285,2284,2285,0.184338950183701,0.184338950183701,-104.9305594,39.7601749,-104.9305592,39.7618327
-17024,10059,6431,0.0170040072643452,0.0170040072643452,-105.0176702,39.753311,-105.0178463,39.7532399
-20326,10744,10738,0.00650370546328925,0.00650370546328925,-105.0235881,39.7590797,-105.0235235,39.7590488
-2307,2304,1995,0.0793159537973265,0.0793159537973265,-105.0127167,39.6959791,-105.0136437,39.6959725
-16363,7010,2769,0.112453696268037,0.112453696268037,-104.9318494,39.7619997,-104.933165,39.7620038
-16364,2769,3365,0.103853901930967,0.103853901930967,-104.933165,39.7620038,-104.93438,39.7620028
-20334,2967,10745,0.0137335338280324,0.0137335338280324,-105.0237301,39.7584727,-105.0237282,39.7585962
-2375,2363,964,0.101155075878388,0.101155075878388,-104.9849833,39.7193599,-104.9838008,39.7193434
-16463,9886,1081,0.198408324686945,0.198408324686945,-104.9705756,39.7060566,-104.972547,39.7069966
-16466,9913,9912,0.00925208668760351,0.00925208668760351,-104.9725631,39.7070317,-104.9726409,39.7070895
-17365,10091,3085,0.200980490545583,0.200980490545583,-104.9786569,39.7147194,-104.9786762,39.712912
-17304,4258,8744,0.201266280518922,0.201266280518922,-104.9634703,39.6965777,-104.9634565,39.6947677
-2443,2434,2435,0.0498096064689081,0.0498096064689081,-105.038137,39.7712705,-105.0387198,39.7712682
-18192,6053,4068,0.142529657997643,0.142529657997643,-105.0281511,39.7856201,-105.0281513,39.7843383
-16717,5546,10002,2.41636756690016,2.41636756690016,-104.9874887,39.6894093,-104.9875808,39.6676785
-14694,4875,4946,0.19209064576365,0.19209064576365,-104.9712147,39.735165,-104.9712638,39.7368921
-2465,1228,2455,0.0986019921641189,0.0986019921641189,-105.0123662,39.7704857,-105.0135199,39.7704859
-17232,243,244,0.123936016070967,0.123936016070967,-104.9728142,39.6892191,-104.9715783,39.6886379
-17233,244,245,0.0423914167747626,0.0423914167747626,-104.9715783,39.6886379,-104.9711551,39.6884397
-17234,245,30,0.0421885133223055,0.0421885133223055,-104.9711551,39.6884397,-104.9707346,39.6882416
-17235,30,31,0.0623462807475453,0.0623462807475453,-104.9707346,39.6882416,-104.9701337,39.6879245
-20321,10740,10741,0.00961494122957245,0.00961494122957245,-105.0235185,39.7589017,-105.0236254,39.7588748
-20520,10845,10841,0.0515194041185215,0.0515194041185215,-105.0187438,39.7583413,-105.0181411,39.7583408
-19715,10630,10631,0.0208944523636977,0.0208944523636977,-105.0042609,39.7342602,-105.0042586,39.7344481
-14699,4164,4773,0.260608636385053,0.260608636385053,-104.974654,39.7201321,-104.9746628,39.7224758
-2587,2559,2560,0.109781786773584,0.109781786773584,-105.0051367,39.7862559,-105.0064215,39.7862585
-18391,7038,3425,0.202488499072253,0.202488499072253,-105.0322651,39.7656196,-105.034629,39.7657398
-18395,2554,3861,0.207477450927098,0.207477450927098,-105.0433255,39.7874316,-105.0427456,39.7892435
-20741,10913,7366,0.0901821833329384,0.0901821833329384,-105.0277761,39.7631337,-105.0267891,39.7634203
-2613,2576,2373,0.0436228403965834,0.0436228403965834,-104.9558107,39.7098997,-104.9553043,39.709946
-19620,10524,10589,0.00570573305761744,0.00570573305761744,-104.9883547,39.7082799,-104.988288,39.70828
-18401,1425,7176,0.174145888646233,0.174145888646233,-105.0386719,39.7820847,-105.0380731,39.7805877
-20347,10745,10747,0.0185775892434006,0.0185775892434006,-105.0237282,39.7585962,-105.0235111,39.7585885
-2677,2638,2639,0.294941945704345,0.294941945704345,-105.015182,39.7220707,-105.0186305,39.7220872
-19655,10606,10607,0.00514986150833142,0.00514986150833142,-104.9882676,39.7060132,-104.9883278,39.7060132
-18881,7249,3271,0.203031342103983,0.203031342103983,-104.9611376,39.7056792,-104.9611322,39.7038533
-20742,7366,10907,0.0328095866921768,0.0328095866921768,-105.0267891,39.7634203,-105.026532,39.7636394
-2729,2684,2685,0.0539600310135124,0.0539600310135124,-104.9795298,39.7522538,-104.9799803,39.7525937
-17508,10114,10116,0.025112430125901,0.025112430125901,-105.0124916,39.7402957,-105.0127369,39.7404199
-17946,10225,10226,0.00737359034109891,0.00737359034109891,-104.987291,39.7236088,-104.9872048,39.7236101
-14688,2393,2798,0.189312144234638,0.189312144234638,-104.971187,39.7255843,-104.971199,39.7272868
-18130,10265,6045,0.200929523136355,0.200929523136355,-105.0222149,39.787432,-105.0222109,39.785625
-2876,2499,2821,0.136005417598284,0.136005417598284,-105.0095409,39.7801481,-105.0111319,39.7801807
-12974,2797,2822,0.0772628603550689,0.0772628603550689,-105.0069887,39.7454751,-105.0076937,39.7450404
-19658,9394,8493,0.0491161384071996,0.0491161384071996,-105.0253203,39.7701872,-105.0258941,39.7702117
-19659,8493,6763,0.145715875084599,0.145715875084599,-105.0258941,39.7702117,-105.0275974,39.7702694
-14698,5033,4164,0.121872885708228,0.121872885708228,-104.9746644,39.7190361,-104.974654,39.7201321
-17172,3092,5304,0.202230215982892,0.202230215982892,-104.9739802,39.7128965,-104.9739798,39.7147152
-3021,2953,2954,0.00990774005844554,0.00990774005844554,-105.0157188,39.7584009,-105.0158347,39.7584
-19694,10618,8145,0.956513774549446,0.956513774549446,-104.9416501,39.7908808,-104.9480016,39.7837973
-19803,5200,10646,0.12476083696761,0.12476083696761,-104.9969602,39.7241241,-104.9969581,39.7230021
-14722,4871,6016,0.191389811056615,0.191389811056615,-104.9735383,39.7351456,-104.9735459,39.7368668
-20794,8908,10948,0.0132755925041989,0.0132755925041989,-105.0289792,39.7622112,-105.0291285,39.7622441
-19880,10672,2617,0.0529554442967168,0.0529554442967168,-104.9957912,39.722999,-104.9957832,39.7225228
-19918,6233,5202,0.175854776488408,0.175854776488408,-104.9980791,39.7257025,-104.9980791,39.724121
-18502,9278,9526,0.133752339971597,0.133752339971597,-105.0363599,39.7511906,-105.036376,39.7499878
-3064,2995,2996,0.132712872312529,0.132712872312529,-104.9953975,39.759713,-104.9954583,39.7585204
-19901,10663,10676,0.0513919786820835,0.0513919786820835,-105.0428156,39.736637,-105.0434166,39.7366408
-19973,10306,619,0.00429215823862154,0.00429215823862154,-105.0316869,39.7366042,-105.0316871,39.7365656
-17075,7842,828,0.141317632530522,0.141317632530522,-104.9616094,39.7519514,-104.9616093,39.7532223
-17970,10238,10234,0.0188321983270746,0.0188321983270746,-104.9883222,39.7243341,-104.988102,39.7243341
-18897,10377,10378,0.0131134839493858,0.0131134839493858,-105.0124804,39.7505728,-105.0125479,39.7504669
-17180,5449,5450,0.206640976814444,0.206640976814444,-104.9704727,39.6911049,-104.9704932,39.6929632
-17113,3932,3959,0.0402088808240704,0.0402088808240704,-104.9574881,39.7475642,-104.957513,39.7479253
-19990,10684,10682,0.0498254818797545,0.0498254818797545,-105.0410722,39.7384617,-105.0416549,39.7384584
-18513,9294,10302,0.00151227516682341,0.00151227516682341,-105.0410618,39.7511847,-105.0410619,39.7511711
-3252,2365,3163,0.175456016528149,0.175456016528149,-104.98145,39.7193208,-104.9814586,39.7208987
-19267,10446,8486,0.0130023858176566,0.0130023858176566,-104.9952471,39.7458453,-104.9953533,39.7457616
-15217,9530,539,0.0270882933911684,0.0270882933911684,-105.0461917,39.7527843,-105.0461157,39.7530208
-18503,9526,9353,0.135313261796309,0.135313261796309,-105.036376,39.7499878,-105.0363784,39.7487709
-18902,10378,10381,0.0118745691698922,0.0118745691698922,-105.0125479,39.7504669,-105.0125841,39.7503638
-20282,10710,10722,0.0492625817369533,0.0492625817369533,-105.0441026,39.7735162,-105.044096,39.7739592
-19437,10490,10491,0.0516785382045006,0.0516785382045006,-104.9897131,39.7108173,-104.9897225,39.7103526
-16422,3358,3034,0.0480216533576434,0.0480216533576434,-104.9695281,39.7021526,-104.9699305,39.7024537
-17185,5659,5660,0.024871407903781,0.024871407903781,-104.9687309,39.6883933,-104.9684404,39.6883858
-18512,10302,9294,0.00151227516682341,0.00151227516682341,-105.0410619,39.7511711,-105.0410618,39.7511847
-18681,3185,3408,0.173742073092489,0.173742073092489,-105.0367216,39.7197052,-105.0367215,39.7181427
-15235,9533,9534,0.025845258726166,0.025845258726166,-104.9349851,39.7066969,-104.9352855,39.7067217
-15243,9534,9535,0.0751513734309232,0.0751513734309232,-104.9352855,39.7067217,-104.9359493,39.706279
-14715,5686,5687,0.105315223547906,0.105315223547906,-104.97583,39.7295104,-104.9758385,39.7304575
-19826,10647,9253,0.122215184303521,0.122215184303521,-105.0021963,39.7300097,-105.0022016,39.7289106
-20299,10728,5578,0.0498927645754841,0.0498927645754841,-105.0445532,39.7768578,-105.0439694,39.7768534
-15281,9557,9556,0.01686832436596,0.01686832436596,-104.9466791,39.7112633,-104.9468185,39.711156
-15283,9557,9558,0.0154433036380546,0.0154433036380546,-104.9466791,39.7112633,-104.9465426,39.7113542
-17312,5705,5706,0.401673875470838,0.401673875470838,-104.9611673,39.6911287,-104.9611029,39.6875167
-3564,3426,3427,0.0516847701108369,0.0516847701108369,-105.0346376,39.7664739,-105.0346332,39.7669387
-15400,9579,3315,0.0326402169295471,0.0326402169295471,-105.0157258,39.7437753,-105.0155552,39.7435127
-15402,9580,9581,0.331383974435327,0.331383974435327,-105.0162851,39.7457849,-105.0162939,39.7487651
-15403,9582,9583,0.0120173707764648,0.0120173707764648,-105.0104647,39.7536666,-105.0103359,39.7536233
-18689,1859,5770,0.176521953507317,0.176521953507317,-105.0415045,39.7213253,-105.0415039,39.7197378
-3659,3496,3497,0.100604510338319,0.100604510338319,-104.9500131,39.6983858,-104.9488372,39.6983858
-15426,8637,4935,0.0862034738049073,0.0862034738049073,-104.9993008,39.7450562,-104.9999815,39.7444843
-15429,9597,8608,0.0815311130388188,0.0815311130388188,-105.0002485,39.7423649,-105.0009845,39.7418987
-14717,933,5818,0.11375652775637,0.11375652775637,-104.9758289,39.7320426,-104.9752659,39.7329695
-3704,3540,3541,0.0487079158287504,0.0487079158287504,-104.9786521,39.6984298,-104.9780828,39.698433
-20304,9382,10728,0.0315682813160642,0.0315682813160642,-105.0445538,39.7765739,-105.0445532,39.7768578
-15490,9618,8464,0.061043367869745,0.061043367869745,-105.0008107,39.746683,-105.0014282,39.7464074
-15492,9627,9626,0.0311123551122936,0.0311123551122936,-105.0003825,39.746907,-105.0006793,39.7467451
-17382,5814,2314,0.0781390219671105,0.0781390219671105,-105.0151443,39.7320016,-105.0146392,39.731416
-20431,10791,10754,0.00545772790966665,0.00545772790966665,-105.0231621,39.7594921,-105.0232175,39.7595165
-3935,3733,3734,0.176323868665952,0.176323868665952,-105.0028152,39.7336992,-105.0028252,39.7352849
-20425,10786,10787,0.0471980291688183,0.0471980291688183,-105.0188457,39.7592189,-105.0188651,39.7596431
-16275,9868,3657,0.128315234485653,0.128315234485653,-104.9551011,39.698724,-104.9539423,39.6994566
-17111,3775,3776,0.0186255054019669,0.0186255054019669,-104.957947,39.7477378,-104.9578598,39.7475843
-20436,10794,10795,0.0773551964908624,0.0773551964908624,-105.0218405,39.7610002,-105.0227368,39.7610963
-4030,3814,3815,0.205898323776278,0.205898323776278,-105.039412,39.7472161,-105.0374612,39.7461303
-14114,3768,3623,0.0676593021490157,0.0676593021490157,-104.9443957,39.7462296,-104.9448677,39.7457412
-20311,10732,10733,0.00871128803713245,0.00871128803713245,-105.0237565,39.7589777,-105.0236546,39.7589766
-17485,321,4992,0.0357053960194593,0.0357053960194593,-105.0159659,39.7510962,-105.0161841,39.75137
-4135,1293,3896,0.0646203690871901,0.0646203690871901,-104.9634588,39.7488413,-104.9634682,39.7494224
-16181,9842,5547,0.812121023854291,0.812121023854291,-104.9882243,39.682101,-104.9881577,39.6894044
-15562,9299,9657,0.183361943567776,0.183361943567776,-104.9775506,39.725614,-104.9775593,39.727263
-15563,9657,3803,0.198879262059456,0.198879262059456,-104.9775593,39.727263,-104.977579,39.7290515
-18244,9371,2433,0.198605382792158,0.198605382792158,-105.0375615,39.7694949,-105.0375589,39.771281
-20442,10799,10800,0.0197706815366264,0.0197706815366264,-105.0218863,39.7618096,-105.0218874,39.7616318
-4153,2788,3908,0.132166336514103,0.132166336514103,-104.9634422,39.7669465,-104.9634409,39.7681351
-19582,10575,10562,0.0700205995742609,0.0700205995742609,-104.9885885,39.7085196,-104.9885838,39.7091493
-16266,7738,5831,0.20157737543677,0.20157737543677,-104.9586954,39.6893271,-104.9586821,39.6911399
-17685,6154,6155,0.459645187119716,0.459645187119716,-104.9794838,39.7796685,-104.9848557,39.7798784
-4242,3991,3227,0.0177155969329486,0.0177155969329486,-105.0299548,39.7716681,-105.0299581,39.7718274
-4243,3227,3992,0.0329982706824684,0.0329982706824684,-105.0299581,39.7718274,-105.0299454,39.772124
-19465,10509,10510,0.0192818852758557,0.0192818852758557,-104.9902632,39.7097378,-104.9902651,39.7095644
-20445,10801,10802,0.0205768304881295,0.0205768304881295,-105.021849,39.761283,-105.0218433,39.761098
-4285,658,1885,0.048605694225596,0.048605694225596,-105.0299141,39.7589753,-105.0299322,39.7594122
-14724,5469,977,0.135303141818757,0.135303141818757,-104.9735608,39.7384085,-104.9741536,39.7395367
-4308,4042,3999,0.107188720026654,0.107188720026654,-105.0287585,39.7181591,-105.0300116,39.7181459
-15626,9687,9688,0.091295408872665,0.091295408872665,-104.9105005,39.7584038,-104.9094325,39.758409
-18437,10292,8442,0.00675422790693776,0.00675422790693776,-105.0280151,39.7614164,-105.0279677,39.761465
-20447,10794,10803,0.118731077964576,0.118731077964576,-105.0218405,39.7610002,-105.0217149,39.7599368
-4347,4075,4076,0.0470687599943484,0.0470687599943484,-105.0333673,39.7838362,-105.0339181,39.7838412
-4349,1002,4077,0.216843974938131,0.216843974938131,-104.9875798,39.7840554,-104.9901174,39.7840727
-20454,10809,10810,0.100342747602662,0.100342747602662,-105.0193936,39.7576917,-105.0204422,39.7580973
-4420,4130,4131,0.121697779505431,0.121697779505431,-104.9511844,39.7681053,-104.9511702,39.7691997
-19593,10478,10580,0.068856662719705,0.068856662719705,-104.9902571,39.7102784,-104.991062,39.7102859
-20625,10804,10874,0.0625386897444795,0.0625386897444795,-105.0242305,39.7611919,-105.0235366,39.7610136
-18253,3979,6754,0.201867515357413,0.201867515357413,-105.0299437,39.7660501,-105.0275819,39.7660439
-4514,4194,4195,0.10298973821829,0.10298973821829,-105.0077638,39.7343613,-105.0077585,39.7352875
-15674,9685,9686,0.0593326737516342,0.0593326737516342,-104.9123877,39.7583821,-104.9116936,39.758384
-20460,10813,10814,0.0263810628539784,0.0263810628539784,-105.0189136,39.7585213,-105.0192222,39.758524
-4540,1339,4214,0.206331927913881,0.206331927913881,-105.0179868,39.7130093,-105.0180211,39.7111539
-15694,7269,2024,0.188168800569156,0.188168800569156,-104.937334,39.717787,-104.935134,39.717787
-19466,10510,10511,0.0234630277187848,0.0234630277187848,-104.9902651,39.7095644,-104.9902675,39.7093534
-20626,10788,10875,0.12707186988651,0.12707186988651,-105.0218514,39.7587986,-105.0215131,39.7599114
-14733,6342,4868,0.191023303912105,0.191023303912105,-104.9758813,39.7368678,-104.9758386,39.7351502
-18638,7383,5180,0.100367385774354,0.100367385774354,-105.0336341,39.725085,-105.0345542,39.7245247
-15713,1050,3913,0.111080496528689,0.111080496528689,-104.9620183,39.718346,-104.963317,39.7183519
-18173,6048,6420,0.20192046475531,0.20192046475531,-105.0245363,39.7856143,-105.0245269,39.7874302
-4662,1707,4301,0.203353286347824,0.203353286347824,-105.0343547,39.691257,-105.0343542,39.6894282
-15737,3771,8867,0.1545281811215,0.1545281811215,-104.9439848,39.7291098,-104.9439798,39.7304995
-18694,6025,5978,0.00688297127309608,0.00688297127309608,-105.0391099,39.7198541,-105.0391098,39.719916
-18468,10298,9138,0.0199498887128462,0.0199498887128462,-105.0431907,39.7509391,-105.0432544,39.7511117
-17131,4372,1799,0.197593407061799,0.197593407061799,-104.9763628,39.692984,-104.9763617,39.694761
-15759,3487,5346,0.100946337054167,0.100946337054167,-104.9293078,39.7162471,-104.9281276,39.716246
-20632,8227,6090,0.135158757751447,0.135158757751447,-105.0138041,39.7620198,-105.0138111,39.7608043
-18263,6067,6514,0.193791754137247,0.193791754137247,-105.038672,39.7856168,-105.0386639,39.783874
-4805,4410,4411,0.102107994490615,0.102107994490615,-105.0297971,39.7030981,-105.0298314,39.704016
-19823,9252,7641,0.177252004679102,0.177252004679102,-105.0008928,39.7289115,-105.0009116,39.7273175
-15778,9119,9707,0.0214606208419429,0.0214606208419429,-105.039492,39.7311696,-105.039492,39.7313626
-15780,9707,9703,0.181325566879256,0.181325566879256,-105.039492,39.7313626,-105.039492,39.7329933
-14737,4770,6526,0.178169149120729,0.178169149120729,-104.97698,39.7224773,-104.9769714,39.7240796
-4824,534,475,0.0459278377034575,0.0459278377034575,-105.0126456,39.7551939,-105.0122615,39.7554827
-15830,7134,9724,0.00382519149625338,0.00382519149625338,-105.0393032,39.7348018,-105.0393035,39.7348362
-434,433,364,0.11596793090747,0.11596793090747,-104.9692608,39.6879972,-104.9703166,39.6886511
-17139,4488,3200,0.20282742100359,0.20282742100359,-104.9762867,39.7092645,-104.976351,39.7110879
-20710,7365,10885,0.00202939174918317,0.00202939174918317,-105.0253917,39.7620904,-105.0253682,39.762093
-20738,10886,10887,0.038658244493302,0.038658244493302,-105.0396293,39.7653159,-105.0397062,39.7656585
-4921,4492,4493,0.0619945774719425,0.0619945774719425,-105.0052379,39.7395355,-105.0052303,39.740093
-18268,2438,5736,0.170878783790289,0.170878783790289,-105.0399004,39.7709268,-105.0398843,39.7724635
-4947,3640,4511,0.128546240241841,0.128546240241841,-104.9529616,39.6985396,-104.9541278,39.6978107
-2413,2403,2404,0.136554071110129,0.136554071110129,-105.017566,39.7530336,-105.0191633,39.7530233
-11806,8418,8419,0.144478674207108,0.144478674207108,-104.986246,39.7517975,-104.9850687,39.7527297
-470,473,474,0.189801845816516,0.189801845816516,-105.0185991,39.7470262,-105.0180056,39.7453814
-14741,3802,5935,0.15521301123556,0.15521301123556,-104.9769713,39.7290617,-104.9769887,39.7304575
-4998,4544,4545,0.135440573029242,0.135440573029242,-105.0220369,39.7741287,-105.0220798,39.7753463
-2670,2628,2629,0.199951181775354,0.199951181775354,-105.0227761,39.7220608,-105.025114,39.7220614
-18532,10307,7540,0.709454997862857,0.709454997862857,-105.0532518,39.7661573,-105.0449514,39.7661904
-5075,4599,1025,0.0544629152641776,0.0544629152641776,-104.9615991,39.7447832,-104.9622361,39.7447859
-17143,4616,4617,0.200408905820063,0.200408905820063,-104.9763402,39.7165163,-104.9763514,39.7183186
-20669,10890,10891,0.0251214927041886,0.0251214927041886,-105.0403806,39.7653384,-105.0400867,39.7653362
-14743,931,2216,0.184594913416957,0.184594913416957,-104.9770026,39.732045,-104.9770059,39.7337051
-5094,4615,4618,0.110635552941058,0.110635552941058,-104.9835591,39.744874,-104.9848531,39.7448793
-19633,10594,10505,0.00660487490366482,0.00660487490366482,-104.9910918,39.7081283,-104.991169,39.7081293
-20709,10913,7365,0.234512277592806,0.234512277592806,-105.0277761,39.7631337,-105.0253917,39.7620904
-20713,5881,10915,0.0114767201911695,0.0114767201911695,-105.0253707,39.7632845,-105.0253686,39.7633877
-18275,6667,1427,0.0124761175920816,0.0124761175920816,-105.0398176,39.7819709,-105.0398172,39.7820831
-18575,10323,10324,0.133190640971179,0.133190640971179,-105.0341543,39.7821409,-105.0327262,39.781661
-19540,10553,10554,0.069921649249612,0.069921649249612,-104.9890431,39.7091518,-104.9890497,39.708523
-19541,10554,7472,0.00672748885261455,0.00672748885261455,-104.9890497,39.708523,-104.9890503,39.7084625
-19542,7472,10555,0.00636055689076091,0.00636055689076091,-104.9890503,39.7084625,-104.9890509,39.7084053
-20479,10827,10828,0.0321786032396296,0.0321786032396296,-105.0188943,39.7587219,-105.0192706,39.7587299
-5172,3232,4672,0.135963226577445,0.135963226577445,-104.993638,39.7717733,-104.9936519,39.772996
-17294,8754,10015,0.202671913712405,0.202671913712405,-104.944769,39.6947624,-104.9447901,39.696585
-23,24,25,0.131395177842502,0.131395177842502,-105.0205339,39.7572526,-105.0220707,39.7572761
-24,25,26,0.132981987743145,0.132981987743145,-105.0220707,39.7572761,-105.0236259,39.7572468
-18535,5555,10308,0.537923452261619,0.537923452261619,-105.0440136,39.7598585,-105.0503066,39.7598409
-5196,4693,4694,0.101324047402986,0.101324047402986,-105.038526,39.7094438,-105.0397105,39.7094438
-17084,505,4047,0.193244409170512,0.193244409170512,-104.9471759,39.748019,-104.9449621,39.7476682
-20013,7896,8858,0.144841565186615,0.144841565186615,-104.9891984,39.7521958,-104.988003,39.7531189
-18281,6757,6460,0.11412288805936,0.11412288805936,-105.0386612,39.7767112,-105.0386826,39.775685
-5239,4723,4724,0.173697663092072,0.173697663092072,-104.9696767,39.7416775,-104.9696749,39.7432396
-57,61,62,0.0954500024095661,0.0954500024095661,-104.931714,39.700208,-104.932829,39.700178
-18609,5208,6228,0.175202487961463,0.175202487961463,-105.0445268,39.7239462,-105.0445535,39.7255217
-18543,10313,5554,0.549870500653692,0.549870500653692,-105.050446,39.7589461,-105.0440133,39.7589595
-5310,4766,3155,0.0172249530452766,0.0172249530452766,-104.9813252,39.7224891,-104.9811238,39.7224897
-78,84,85,0.0505639086324271,0.0505639086324271,-104.9611564,39.7002245,-104.9605654,39.7002204
-19778,10632,5380,0.0979518829901303,0.0979518829901303,-105.0008955,39.7325996,-105.0008982,39.7334805
-20481,10792,10829,0.0269599370404467,0.0269599370404467,-105.0232345,39.7595229,-105.0230688,39.7597292
-5457,4876,4877,0.0499120224253174,0.0499120224253174,-104.9706482,39.735165,-104.9700645,39.735165
-96,101,102,0.0321305027576107,0.0321305027576107,-104.9418857,39.7001887,-104.9415109,39.7002071
-97,102,103,0.0620448910426151,0.0620448910426151,-104.9415109,39.7002071,-104.940786,39.7001905
-18782,10348,10344,0.0162360672802701,0.0162360672802701,-105.0006804,39.7393818,-105.0008699,39.7393725
-5478,4135,4890,0.0934025271750886,0.0934025271750886,-104.9505787,39.7351289,-104.9494864,39.7351307
-121,128,129,0.177008602394702,0.177008602394702,-105.0065998,39.7352916,-105.0065273,39.7368825
-244,251,252,0.175978023607631,0.175978023607631,-104.9994212,39.7305062,-104.9994279,39.7320888
-18294,6901,1428,0.00619376962359973,0.00619376962359973,-105.0409738,39.7821337,-105.0409732,39.782078
-5500,4907,4908,0.100175479072509,0.100175479072509,-104.935013,39.7346788,-104.9338415,39.7346803
-140,148,149,0.0975727004199176,0.0975727004199176,-105.0050494,39.6930773,-105.0061897,39.6930874
-393,395,396,0.169106051700542,0.169106051700542,-104.9367017,39.7800737,-104.9347437,39.7798532
-18784,10348,10349,0.00525970147109288,0.00525970147109288,-105.0006804,39.7393818,-105.0006189,39.7393808
-5522,4924,4677,0.103650586835971,0.103650586835971,-104.9935332,39.7338673,-104.9941264,39.7346802
-18546,7539,10314,0.65633531431652,0.65633531431652,-105.0449396,39.7652893,-105.0526184,39.7652564
-18297,6968,6995,0.202610377838011,0.202610377838011,-105.0409894,39.7802021,-105.0409786,39.77838
-5676,3669,5032,0.215322761034264,0.215322761034264,-104.9757447,39.7475025,-104.9757617,39.7494389
-173,182,183,0.0984047094047537,0.0984047094047537,-105.0379081,39.6931063,-105.0390582,39.6931063
-174,183,184,0.100655002347226,0.100655002347226,-105.0390582,39.6931063,-105.0402341,39.6931327
-16515,5454,5455,0.104997960992542,0.104997960992542,-104.9857094,39.7569105,-104.984841,39.7562427
-20485,10832,10763,0.0351600114003883,0.0351600114003883,-105.025074,39.7612402,-105.0250727,39.760924
-5779,2576,4917,0.032816005995912,0.032816005995912,-104.9558107,39.7098997,-104.9558286,39.7101945
-192,202,203,0.199740801936021,0.199740801936021,-105.0203557,39.6985481,-105.0203643,39.6967518
-193,203,169,0.402428218597258,0.402428218597258,-105.0203643,39.6967518,-105.0203814,39.6931327
-14755,5931,927,0.177893389603082,0.177893389603082,-104.9792436,39.7304339,-104.9792571,39.7320337
-5803,5121,5122,0.103540820168727,0.103540820168727,-104.970912,39.7597791,-104.9708892,39.7607101
-225,49,236,0.00807621055546913,0.00807621055546913,-104.9733927,39.700201,-104.9732983,39.700201
-18672,1538,1539,0.106836085520251,0.106836085520251,-105.042161,39.7245549,-105.042161,39.7255157
-14756,927,2212,0.186014347432929,0.186014347432929,-104.9792571,39.7320337,-104.9792376,39.7337065
-5852,1967,4622,0.105142035615429,0.105142035615429,-104.9275397,39.743724,-104.9274625,39.7446677
-282,292,293,0.038589084717098,0.038589084717098,-105.0040727,39.760849,-105.0037495,39.7610913
-283,293,294,0.0763501630731075,0.0763501630731075,-105.0037495,39.7610913,-105.0030853,39.7615504
-285,295,296,0.17581051150028,0.17581051150028,-104.9946201,39.7273342,-104.9946233,39.7289153
-14758,4862,7101,0.190667289560019,0.190667289560019,-104.9792634,39.7351686,-104.9792889,39.7368832
-5875,4334,5174,0.0464101693595893,0.0464101693595893,-104.9780308,39.7165201,-104.9774882,39.7165195
-350,351,352,0.0901523030384508,0.0901523030384508,-105.0171199,39.7741304,-105.017099,39.774941
-353,355,356,0.108591561133878,0.108591561133878,-104.9475022,39.7793961,-104.9486062,39.7789125
-369,370,371,0.00989155289209397,0.00989155289209397,-105.0298446,39.7379436,-105.0298176,39.7380301
-18304,7116,6758,0.139614208847036,0.139614208847036,-105.0259576,39.7678922,-105.0275911,39.7678891
-517,511,512,0.231881303387922,0.231881303387922,-105.0312479,39.7836347,-105.03396,39.7837055
-518,512,513,0.0504031171767775,0.0504031171767775,-105.03396,39.7837055,-105.0345487,39.7837339
-12256,8620,8618,0.1042966231246,0.1042966231246,-105.0093075,39.7583444,-105.0084208,39.7577001
-6051,5293,5294,0.1322760806231,0.1322760806231,-105.0315166,39.7439551,-105.0330637,39.7439508
-18305,6758,3982,0.20021257935936,0.20021257935936,-105.0275911,39.7678891,-105.0299336,39.7678829
-574,248,567,0.654270176053915,0.654270176053915,-104.966468,39.6862015,-104.9595276,39.6837329
-575,264,568,0.0404038185731676,0.0404038185731676,-104.9479356,39.6896766,-104.9479442,39.6893133
-19637,10596,10597,0.0126826750829723,0.0126826750829723,-104.9881372,39.7071852,-104.9882854,39.7071884
-20403,10761,10778,0.00417068578422797,0.00417068578422797,-105.0250806,39.7603661,-105.0250816,39.7603286
-6437,2444,5569,0.02055703905507,0.02055703905507,-105.0440363,39.7709406,-105.0440431,39.7711254
-614,605,606,0.0427456634033912,0.0427456634033912,-105.0276669,39.7627327,-105.0278867,39.763078
-11697,1006,1032,0.0356944242966225,0.0356944242966225,-105.0016257,39.7531381,-105.0019469,39.752933
-18485,7779,9146,0.0491523501803915,0.0491523501803915,-105.0393085,39.7589141,-105.0398835,39.7589172
-19922,7869,3723,0.102610678307364,0.102610678307364,-104.9980684,39.719352,-104.9980684,39.7184292
-20528,10783,10029,0.0108754318867703,0.0108754318867703,-105.0159618,39.7583177,-105.015835,39.7583097
-6839,2922,5305,0.104995892978265,0.104995892978265,-105.021523,39.7147919,-105.0227504,39.7148051
-634,544,624,0.0671323040254876,0.0671323040254876,-105.034963,39.736586,-105.0357481,39.7365857
-635,624,625,0.00434381837571047,0.00434381837571047,-105.0357481,39.7365857,-105.0357989,39.7365856
-20428,10788,10789,0.0563042197472527,0.0563042197472527,-105.0218514,39.7587986,-105.0223762,39.7591046
-18340,7633,7634,0.201343863199868,0.201343863199868,-105.0351904,39.7603234,-105.0351771,39.7621341
-20531,2704,10847,0.00595682994262844,0.00595682994262844,-105.0229197,39.7608329,-105.0229893,39.7608356
-18337,7624,2435,0.20163475178063,0.20163475178063,-105.0387364,39.7694549,-105.0387198,39.7712682
-655,645,646,0.15124021105117,0.15124021105117,-104.9372542,39.7414009,-104.9354861,39.7413613
-11518,656,657,0.200075413530476,0.200075413530476,-105.0346018,39.7589808,-105.0322612,39.758985
-18341,7634,7661,0.00671626059696149,0.00671626059696149,-105.0351771,39.7621341,-105.0351767,39.7621945
-18342,7661,7662,0.197150609042501,0.197150609042501,-105.0351767,39.7621945,-105.0351663,39.7639675
-6951,5687,5936,0.0500693590985736,0.0500693590985736,-104.9758385,39.7304575,-104.975253,39.7304575
-6952,5936,5453,0.049749026364738,0.049749026364738,-104.975253,39.7304575,-104.9746713,39.7304514
-18121,10257,2538,0.176222237628552,0.176222237628552,-105.010685,39.7858675,-105.01068,39.7874523
-18344,5247,6874,0.0949718672307841,0.0949718672307841,-105.0351958,39.7649631,-105.0351985,39.7658172
-20408,10778,8971,0.00240570116723256,0.00240570116723256,-105.0250816,39.7603286,-105.0250832,39.760307
-7025,5987,5146,0.0839973170950687,0.0839973170950687,-104.9257006,39.7292726,-104.9257328,39.7300276
-687,680,681,0.00253308666004397,0.00253308666004397,-104.9569831,39.7416105,-104.9569536,39.7416084
-688,681,682,0.0177686502456197,0.0177686502456197,-104.9569536,39.7416084,-104.9567458,39.7416064
-20536,10790,10850,0.034182335159618,0.034182335159618,-105.0228403,39.759346,-105.0226484,39.7596157
-18351,6756,3981,0.199906908242653,0.199906908242653,-105.0275956,39.7669634,-105.0299345,39.7669593
-7046,5996,5997,0.0183612294578931,0.0183612294578931,-104.9257688,39.7618503,-104.9258117,39.7620121
-7047,5997,5998,0.0939822022965603,0.0939822022965603,-104.9258117,39.7620121,-104.9257702,39.7628567
-16701,9996,9997,0.0529811614609842,0.0529811614609842,-104.9999838,39.7464987,-104.9999731,39.7460223
-20223,10711,10712,0.0485921897229188,0.0485921897229188,-104.9413123,39.6937735,-104.941312,39.6942105
-7066,4209,6007,0.100592936440223,0.100592936440223,-105.0180383,39.7004566,-105.0192141,39.7004566
-719,715,716,0.14011322934495,0.14011322934495,-105.0041615,39.7717924,-105.0041786,39.7730524
-18164,6036,4091,0.184872985391224,0.184872985391224,-105.0152693,39.7856221,-105.0152654,39.7839595
-18360,7775,7374,0.049527285222362,0.049527285222362,-105.0259595,39.7688086,-105.0259557,39.7683632
-7242,1086,6117,0.0183572728116315,0.0183572728116315,-104.9723899,39.7092881,-104.9721753,39.7092881
-20444,10797,10801,0.0204844414155983,0.0204844414155983,-105.0218716,39.7614664,-105.021849,39.761283
-14778,5928,925,0.176931188736704,0.176931188736704,-104.9803886,39.7304366,-104.9804094,39.7320277
-7325,6163,6164,0.404282808510336,0.404282808510336,-104.9569776,39.6893298,-104.9569833,39.685694
-757,756,757,0.0403523543057396,0.0403523543057396,-104.9853038,39.7752036,-104.9848317,39.775197
-758,758,759,0.10406364243601,0.10406364243601,-104.9258629,39.7765766,-104.9246452,39.7765808
-20552,10810,10855,0.0274674933149076,0.0274674933149076,-105.0204422,39.7580973,-105.020438,39.7583443
-7375,340,337,0.0516827997381363,0.0516827997381363,-104.9379355,39.7804643,-104.9373307,39.7804664
-778,783,784,0.143355100800641,0.143355100800641,-105.001524,39.702453,-105.0031735,39.702226
-18365,1660,7716,0.0501099513590678,0.0501099513590678,-105.0259529,39.7674233,-105.0259442,39.7669727
-7418,5550,6228,0.0493634763375772,0.0493634763375772,-105.0439763,39.72552,-105.0445535,39.7255217
-798,803,806,1.01502432527974,1.01502432527974,-104.9246129,39.752877,-104.9127396,39.7528988
-20237,10712,8819,0.0494540965066323,0.0494540965066323,-104.941312,39.6942105,-104.940734,39.6942095
-7441,1600,1601,0.0713701116113288,0.0713701116113288,-105.0133862,39.6987066,-105.013927,39.6982179
-814,825,826,0.10637782371988,0.10637782371988,-104.9647057,39.7532062,-104.9634614,39.7531961
-815,826,827,0.107195537700229,0.107195537700229,-104.9634614,39.7531961,-104.9622082,39.7532291
-20239,10716,10717,0.029516495512001,0.029516495512001,-104.9411444,39.6963884,-104.9410012,39.6961469
-7466,2930,5311,0.101596891275597,0.101596891275597,-105.021523,39.6985217,-105.0227074,39.6985877
-836,849,850,0.0925483728292225,0.0925483728292225,-104.9429772,39.7557004,-104.9429726,39.7565327
-837,850,851,0.184151560988971,0.184151560988971,-104.9429726,39.7565327,-104.9429635,39.7581888
-20241,8817,10717,0.0237033604501814,0.0237033604501814,-104.9407242,39.6961507,-104.9410012,39.6961469
-7541,6292,65,0.186329349943054,0.186329349943054,-104.933901,39.698515,-104.934135,39.700181
-857,870,871,0.202831473953724,0.202831473953724,-104.9428589,39.7710708,-104.9428522,39.7728949
-14121,4084,3945,0.0818484712615532,0.0818484712615532,-104.9441124,39.7484997,-104.9450651,39.7484271
-18787,10347,10345,0.045081440573134,0.045081440573134,-105.0006789,39.7395014,-105.0006728,39.7399068
-7826,2505,6454,0.100016861256994,0.100016861256994,-105.0100464,39.7753527,-105.0112167,39.7753455
-876,889,890,0.105571186658179,0.105571186658179,-104.9536454,39.7644642,-104.9524103,39.764457
-877,890,891,0.105688383652669,0.105688383652669,-104.9524103,39.764457,-104.9511738,39.7644539
-11418,8067,8068,0.0483239948134963,0.0483239948134963,-105.0441378,39.7835013,-105.043576,39.7834515
-7848,6464,6465,0.0519215197465546,0.0519215197465546,-105.041027,39.7752745,-105.0416343,39.775288
-894,908,909,0.110040792413973,0.110040792413973,-104.9331257,39.7644965,-104.9318383,39.7645031
-896,910,911,0.148938852784508,0.148938852784508,-104.9998754,39.7567199,-104.998644,39.7576675
-11420,8068,8077,0.744996900508782,0.744996900508782,-105.043576,39.7834515,-105.0348588,39.7833346
-7872,6484,6485,0.109350713693358,0.109350713693358,-104.9848486,39.7462103,-104.9835697,39.7461971
-914,928,929,0.0454506765778274,0.0454506765778274,-104.9786778,39.7320223,-104.9781467,39.7320382
-15223,8102,5299,0.0276921695746079,0.0276921695746079,-105.0426126,39.7442054,-105.042522,39.7439663
-16761,10006,10010,0.188081556068426,0.188081556068426,-104.9523627,39.6986871,-104.950646,39.6997437
-20354,9336,10730,0.00773852906846938,0.00773852906846938,-105.0251673,39.7585782,-105.0250776,39.7585876
-7965,6543,6544,0.0483732045653669,0.0483732045653669,-104.9723281,39.7237476,-104.9717626,39.7237562
-954,966,967,0.0990431305437434,0.0990431305437434,-104.9838084,39.7225355,-104.9838014,39.7234262
-19650,10601,10604,0.0245600833310456,0.0245600833310456,-104.9879279,39.7066512,-104.988215,39.7066518
-18271,6463,6629,0.159535181156963,0.159535181156963,-105.0398602,39.7752659,-105.0398199,39.7767003
-20358,10736,9208,0.00987870578899212,0.00987870578899212,-105.0233746,39.7593437,-105.0233093,39.759417
-11333,3953,8218,0.0887906096153549,0.0887906096153549,-105.0001937,39.7283674,-104.9994384,39.7289153
-976,987,988,0.0367128135573791,0.0367128135573791,-104.9740753,39.7240686,-104.9740667,39.7237385
-18911,10389,10390,0.0499832893351177,0.0499832893351177,-105.0126283,39.7501885,-105.0126243,39.749739
-8132,6646,6647,0.176189320777164,0.176189320777164,-104.9986572,39.7336891,-104.998664,39.7352736
-20359,9208,8992,0.00952006614931064,0.00952006614931064,-105.0233093,39.759417,-105.0232439,39.7594863
-18533,7540,5565,0.0799101067174197,0.0799101067174197,-105.0449514,39.7661904,-105.0440165,39.7661967
-15227,8248,1474,0.0211145699437457,0.0211145699437457,-104.9245969,39.6962239,-104.9247632,39.6960836
-11427,8252,8251,0.0497577863871374,0.0497577863871374,-105.0342719,39.7834294,-105.0348524,39.7834646
-8228,5488,6699,0.203871251538877,0.203871251538877,-104.9494922,39.738334,-104.9494732,39.7401674
-1013,1025,1026,0.240326237485559,0.240326237485559,-104.9622361,39.7447859,-104.9622426,39.7469472
-1014,1026,1027,0.140197604091005,0.140197604091005,-104.9622426,39.7469472,-104.9622318,39.748208
-11524,8299,6771,0.0679188084680006,0.0679188084680006,-105.0260753,39.7595725,-105.0268698,39.7595648
-8280,6724,1837,0.0673898837011532,0.0673898837011532,-105.0120852,39.72025,-105.0120749,39.720856
-16769,3180,3279,0.131366088579917,0.131366088579917,-104.9540885,39.7026636,-104.9540847,39.703845
-11560,7714,8320,0.204692599225755,0.204692599225755,-105.0316842,39.7566755,-105.0317009,39.7548347
-18785,10349,3941,0.0399279993421446,0.0399279993421446,-105.0006189,39.7393808,-105.000152,39.7393746
-1055,1071,1072,0.193562714729093,0.193562714729093,-105.0090259,39.7765399,-105.009231,39.7782735
-18374,2425,6794,0.0832162654729584,0.0832162654729584,-105.0324788,39.7706946,-105.0322928,39.76996
-8378,6787,5475,0.176557126416642,0.176557126416642,-104.9684521,39.7368249,-104.9684271,39.7384126
-1079,1095,1096,0.106445830238736,0.106445830238736,-105.0405345,39.724543,-105.0405516,39.7255002
-1081,1097,1098,0.0486277340974482,0.0486277340974482,-105.040561,39.7306097,-105.0405664,39.7301724
-18378,2549,8381,0.409599255943821,0.409599255943821,-105.0398307,39.787434,-105.0398172,39.7911176
-8425,4370,2496,0.102227972652095,0.102227972652095,-105.0014826,39.7040009,-105.0026756,39.7039481
-1101,1117,1118,0.104134759343337,0.104134759343337,-105.0404813,39.7539268,-105.0404858,39.7548633
-19670,9361,9367,0.104968988119014,0.104968988119014,-105.0246491,39.770221,-105.0246438,39.769277
-11768,8406,8391,0.072368398733761,0.072368398733761,-104.9814866,39.7527817,-104.982081,39.7523183
-11405,6191,577,0.346853696348124,0.346853696348124,-104.9832163,39.7795774,-104.979193,39.7791651
-11711,2125,2126,0.0693722119224359,0.0693722119224359,-105.0057953,39.756766,-105.0056493,39.7573797
-1121,1137,1138,0.209246619241212,0.209246619241212,-105.0404024,39.780201,-105.040403,39.7820828
-11896,1345,8466,0.0539854948645785,0.0539854948645785,-105.0025087,39.7490201,-105.0020778,39.7486652
-8519,3823,6870,0.0122276886226055,0.0122276886226055,-105.0106786,39.6880414,-105.0108215,39.6880414
-1142,1161,1045,0.106182749069371,0.106182749069371,-104.9634876,39.7632183,-104.9622462,39.763254
-1143,1045,1162,0.0572035723632033,0.0572035723632033,-104.9622462,39.763254,-104.9615772,39.7632401
-11949,8497,8498,0.0157235898061176,0.0157235898061176,-105.0139116,39.7556283,-105.0137949,39.755519
-8563,6893,6894,0.0563604312984052,0.0563604312984052,-105.0252908,39.7655845,-105.0259502,39.7655831
-1161,1180,1181,0.108807320753836,0.108807320753836,-104.9967587,39.6994606,-104.9967963,39.6984825
-1162,1181,555,0.0264412731929892,0.0264412731929892,-104.9967963,39.6984825,-104.9967877,39.6982448
-11990,6574,4455,0.147936408791814,0.147936408791814,-104.9828432,39.7584876,-104.9816151,39.759425
-8587,6905,6906,0.00825706398143248,0.00825706398143248,-104.9475756,39.7692051,-104.947479,39.769204
-1181,1196,1197,0.0308045840002764,0.0308045840002764,-104.9532393,39.7271307,-104.9528791,39.7271293
-16676,9978,9979,0.0911222888155273,0.0911222888155273,-105.0081875,39.7419793,-105.0090565,39.7415049
-12046,8525,8526,0.0214801658544325,0.0214801658544325,-105.0047107,39.7504962,-105.0049596,39.7505226
-8609,4639,1260,0.0990232299326886,0.0990232299326886,-105.0193449,39.7766055,-105.0205036,39.7766121
-20366,10746,10748,0.00389959559054649,0.00389959559054649,-105.0236226,39.75895,-105.0235917,39.7589758
-8754,6984,6985,0.142274771709776,0.142274771709776,-105.008704,39.7588217,-105.0098936,39.7597166
-15273,8632,8698,0.0321488809830426,0.0321488809830426,-104.9291888,39.7063544,-104.9293068,39.7060799
-12327,8651,8462,0.0863896937468126,0.0863896937468126,-105.0047136,39.7486765,-105.003842,39.7490696
-8825,7022,7023,0.132397309217195,0.132397309217195,-105.0315597,39.7499887,-105.0315207,39.751179
-15906,8604,1831,0.0312706435771371,0.0312706435771371,-105.0283446,39.7216209,-105.0282669,39.7213461
-8982,704,420,0.200616718436647,0.200616718436647,-104.9419371,39.7419475,-104.9418594,39.7437507
-1261,1282,24,0.134590345997008,0.134590345997008,-105.0205344,39.7560422,-105.0205339,39.7572526
-18452,7704,9427,0.203142152499049,0.203142152499049,-105.0410725,39.7566932,-105.0410753,39.7548663
-12940,8766,1971,0.0880952038111177,0.0880952038111177,-105.0021048,39.7447013,-105.0012102,39.7450944
-12050,8529,8530,0.0322062217802774,0.0322062217802774,-105.0041786,39.7503114,-105.0045096,39.7501731
-1281,1306,1307,0.102064457561207,0.102064457561207,-105.0288014,39.7133724,-105.0299945,39.7133592
-12052,8529,8412,0.0524928623134227,0.0524928623134227,-105.0041786,39.7503114,-105.0036942,39.7500213
-20805,10934,7427,0.00626540347624637,0.00626540347624637,-105.0368648,39.7621971,-105.0369381,39.7621971
-9106,7163,7164,0.0532969377049032,0.0532969377049032,-105.0381509,39.7543757,-105.0381551,39.754855
-1301,1326,1327,0.0908036524111016,0.0908036524111016,-105.0442903,39.7133559,-105.0452398,39.7129907
-1302,1327,1328,0.187321516717609,0.187321516717609,-105.0452398,39.7129907,-105.0473907,39.7133074
-20389,10773,10765,0.00486729953892219,0.00486729953892219,-105.0238489,39.7606336,-105.023905,39.7606411
-20812,7034,10952,0.00504516380305115,0.00504516380305115,-105.0322625,39.7622195,-105.0323215,39.7622208
-12945,8883,8884,0.0693524767029838,0.0693524767029838,-105.0014849,39.7426723,-105.0010815,39.7421312
-9177,1813,7200,0.0899820045120437,0.0899820045120437,-104.923341,39.6929674,-104.9222894,39.6929759
-12258,8619,8617,0.025123815719297,0.025123815719297,-105.0083242,39.7578801,-105.0083585,39.7576557
-9178,132,7201,0.0532452299195118,0.0532452299195118,-104.9874659,39.6930068,-104.9868436,39.6930068
-13064,8946,8947,0.0850173355126965,0.0850173355126965,-104.9938162,39.7672158,-104.9948109,39.7672181
-9301,7274,6989,0.145898107890786,0.145898107890786,-104.9337866,39.742569,-104.9320802,39.742569
-1340,1368,1369,0.19896343011117,0.19896343011117,-104.9900335,39.7121268,-104.9923595,39.7121202
-20815,7168,10919,0.00784309361436635,0.00784309361436635,-105.0381187,39.7621933,-105.0382104,39.7621908
-9323,7286,7287,0.0531798537803958,0.0531798537803958,-104.983982,39.7019687,-104.9833604,39.7019722
-18312,7244,7291,0.112193704343122,0.112193704343122,-105.0311621,39.7711127,-105.0324737,39.7711548
-20817,10953,10288,0.00348743524444471,0.00348743524444471,-105.0291765,39.7620512,-105.0292173,39.7620512
-20818,10288,10921,0.00283999263123215,0.00283999263123215,-105.0292173,39.7620512,-105.0292505,39.7620502
-9345,7305,6323,0.0511693918815177,0.0511693918815177,-104.9669227,39.7020659,-104.9663246,39.7020694
-20831,10939,10947,0.189387199061175,0.189387199061175,-105.0393977,39.762194,-105.0393977,39.7638972
-20504,10061,10815,0.00579629159172248,0.00579629159172248,-105.0193111,39.7583425,-105.0192433,39.7583417
-12268,8625,8626,0.00924470302738606,0.00924470302738606,-105.0063297,39.755277,-105.0062526,39.7553353
-18317,7365,7366,0.190091232151663,0.190091232151663,-105.0253917,39.7620904,-105.0267891,39.7634203
-18915,10393,10394,0.0257178211457629,0.0257178211457629,-105.0122186,39.7502302,-105.0124855,39.7503369
-9548,5843,7400,0.197969196756037,0.197969196756037,-104.9687193,39.6910999,-104.9687412,39.6893196
-1402,1428,1429,0.0514192906451236,0.0514192906451236,-105.0409732,39.782078,-105.0415749,39.7820729
-19551,10559,10558,0.0350073244923259,0.0350073244923259,-104.9881037,39.7097761,-104.9880982,39.7100909
-20372,10756,10757,0.119877702556756,0.119877702556756,-105.0229933,39.7612883,-105.0243898,39.7611891
-18474,9006,9005,0.01365486811001,0.01365486811001,-105.0399032,39.754857,-105.0399025,39.7549798
-9618,6255,7423,0.201105238361345,0.201105238361345,-104.9944654,39.6984907,-104.9944429,39.6966822
-1423,1446,1447,0.102065186535373,0.102065186535373,-105.0038944,39.7084713,-105.0038773,39.7075535
-12355,8667,8662,0.00824054620763183,0.00824054620763183,-105.0124751,39.7525722,-105.0123789,39.7525675
-13473,9096,9097,0.0791788196488147,0.0791788196488147,-105.0171656,39.7251183,-105.0162433,39.7250562
-13558,9033,9033,0.000550802138422688,0.000550802138422688,-105.0111765,39.722883,-105.0111825,39.7228848
-9720,5436,7485,0.210597915191446,0.210597915191446,-105.0250692,39.7085234,-105.0275311,39.708526
-1445,1465,778,0.201931327083159,0.201931327083159,-105.0238576,39.7038839,-105.023849,39.7020679
-16745,10007,6830,0.0463356709963923,0.0463356709963923,-104.9516233,39.6981848,-104.9512088,39.6979166
-18484,9139,9145,0.0170083591694009,0.0170083591694009,-105.0431263,39.7511062,-105.0429278,39.7510959
-18486,9146,1121,0.0502889247784144,0.0502889247784144,-105.0398835,39.7589172,-105.0404718,39.7589145
-13588,9137,9132,0.0916872062208973,0.0916872062208973,-104.9868714,39.7007074,-104.9861015,39.7001338
-18564,10320,10321,0.148893183386122,0.148893183386122,-105.0313943,39.7806712,-105.0330975,39.7803888
-1470,1490,1454,0.0984270848036789,0.0984270848036789,-105.0026792,39.6948706,-105.0038293,39.6948507
-11793,8412,1301,0.0102820603565046,0.0102820603565046,-105.0036942,39.7500213,-105.0035821,39.7499878
-13649,9157,9158,0.11057157733623,0.11057157733623,-104.9952014,39.7022895,-104.9960034,39.7030693
-9923,7595,5945,0.197471792675123,0.197471792675123,-104.9362843,39.7292429,-104.9363272,39.7310185
-1492,1512,1513,0.240760864140441,0.240760864140441,-104.931734,39.696087,-104.92892,39.6960846
-1493,1513,1514,0.0903356876724302,0.0903356876724302,-104.92892,39.6960846,-104.9278643,39.6960978
-18489,9154,9164,0.0526957444463644,0.0526957444463644,-105.0338562,39.7492256,-105.034029,39.7487707
-9949,7606,7607,0.0349507847949759,0.0349507847949759,-104.9382673,39.7253035,-104.9382968,39.725617
-1512,1531,1532,0.421840818868262,0.421840818868262,-104.9909332,39.7613911,-104.9909417,39.7651848
-1514,1533,1534,0.0990053945754622,0.0990053945754622,-104.9453062,39.7574036,-104.944148,39.7574036
-18920,10391,10399,0.0111591670236662,0.0111591670236662,-105.0127316,39.7492235,-105.0126923,39.7491278
-10025,6642,3954,0.137704462550789,0.137704462550789,-104.9985895,39.7273172,-105.0001997,39.7273124
-1533,1556,1557,0.0904418216599082,0.0904418216599082,-104.9613425,39.77767,-104.9602842,39.7776637
-1535,1558,1559,0.0987505899129773,0.0987505899129773,-104.959414,39.7776762,-104.9582585,39.7776672
-19486,10409,10426,0.0202821728904968,0.0202821728904968,-104.9883441,39.7097759,-104.9883452,39.7095935
-10050,7651,7652,0.0462326431468639,0.0462326431468639,-105.0389317,39.7282542,-105.0394723,39.7282575
-1552,1577,1578,0.0904564264247089,0.0904564264247089,-105.0390628,39.6875658,-105.0401129,39.6876594
-1554,1579,1580,0.0903173650147356,0.0903173650147356,-105.0411657,39.6879819,-105.0421871,39.6881867
-18611,2585,1850,0.178619647699559,0.178619647699559,-105.035536,39.7229363,-105.0355172,39.72133
-19139,479,10436,0.0608772998887891,0.0608772998887891,-105.0124432,39.7406786,-105.0130548,39.7409589
-10147,7693,7694,0.00731957097451548,0.00731957097451548,-104.9475739,39.7873593,-104.947581,39.7874249
-1571,1598,1600,0.0527554061663716,0.0527554061663716,-105.0137725,39.6990764,-105.0133862,39.6987066
-18460,6389,9354,0.131365686337894,0.131365686337894,-105.0387149,39.7475739,-105.0387149,39.7487553
-13942,9095,9242,0.111189675764469,0.111189675764469,-105.0210758,39.7255489,-105.0223459,39.7257626
-10218,6638,5410,0.0525082825873588,0.0525082825873588,-104.9710843,39.6893658,-104.9704709,39.6893522
-11529,809,810,0.133518358438394,0.133518358438394,-105.026046,39.7554277,-105.0276079,39.7554276
-16258,9267,3529,0.187765741537081,0.187765741537081,-104.9552346,39.6965869,-104.9552447,39.6982755
-10288,7759,7760,0.0990614933501691,0.0990614933501691,-104.9475555,39.7710608,-104.9463967,39.7710806
-1610,1640,1641,0.0829769157452624,0.0829769157452624,-105.0156865,39.706479,-105.0156951,39.7057328
-1611,1641,1642,0.0110107206173314,0.0110107206173314,-105.0156951,39.7057328,-105.0156924,39.7056338
-14142,478,9286,0.110440686979957,0.110440686979957,-105.0170811,39.7459783,-105.0165836,39.7450617
-10359,6835,4056,0.176947127899101,0.176947127899101,-105.0397191,39.7165613,-105.0396933,39.7181525
-10360,4056,7791,0.153314942388554,0.153314942388554,-105.0396933,39.7181525,-105.0397234,39.7195311
-16039,9796,9803,0.17034831343451,0.17034831343451,-105.0121361,39.6892112,-105.0101617,39.6894076
-20229,8818,8827,0.0165504595782256,0.0165504595782256,-104.9407334,39.6945605,-104.94054,39.6945576
-15466,9616,9605,0.0511543414269977,0.0511543414269977,-105.0011333,39.7436854,-105.000722,39.7440195
-10664,7914,2973,0.0665734173113744,0.0665734173113744,-105.027595,39.7578708,-105.0275907,39.7584695
-1646,1673,1674,0.136622102626379,0.136622102626379,-105.0111824,39.7680416,-105.0127809,39.7680407
-1647,1674,1675,0.135851990536989,0.135851990536989,-105.0127809,39.7680407,-105.0143702,39.7680596
-15467,9605,7963,0.0172079120084978,0.0172079120084978,-105.000722,39.7440195,-105.0005879,39.7441349
-1668,1693,1694,0.101380870701686,0.101380870701686,-105.0416583,39.7675928,-105.0428441,39.7675702
-11218,3630,8166,0.0456744230751041,0.0456744230751041,-104.9286229,39.7018847,-104.9290225,39.7016123
-15788,9639,9625,0.0212057259943503,0.0212057259943503,-105.0250842,39.7369224,-105.0249286,39.7370709
-11369,8219,7971,0.0335395055556045,0.0335395055556045,-105.0056833,39.7616862,-105.0053146,39.761583
-16195,7725,5820,0.195527635044049,0.195527635044049,-104.9821706,39.6894094,-104.9821591,39.6911678
-16196,5820,7207,0.20506620423787,0.20506620423787,-104.9821591,39.6911678,-104.9821537,39.693012
-11659,7036,3421,0.201375612760589,0.201375612760589,-105.0322644,39.7643359,-105.0346204,39.7643363
-11773,2681,5358,0.147201059924865,0.147201059924865,-104.9782507,39.7512619,-104.979461,39.7503203
-17216,8420,1908,0.199697066538748,0.199697066538748,-104.9774882,39.7056633,-104.9774775,39.7074592
-16157,9835,9836,0.024879986991164,0.024879986991164,-105.0143087,39.7379669,-105.0142819,39.7377441
-18699,1320,1376,0.177502821070015,0.177502821070015,-105.0391059,39.7133709,-105.0390952,39.7117746
-12115,8553,8554,0.175311002200187,0.175311002200187,-104.9647683,39.7416548,-104.9647611,39.7432314
-19503,10530,10531,0.0385295444601748,0.0385295444601748,-104.9883733,39.7063608,-104.9883756,39.7060143
-16538,9932,9933,0.139509514048293,0.139509514048293,-104.9763549,39.7494877,-104.9763678,39.7507423
-1717,1736,1737,0.0422973816408655,0.0422973816408655,-105.0057005,39.6912645,-105.0061947,39.6912734
-17220,3087,9830,0.198791677003679,0.198791677003679,-104.9775097,39.7129054,-104.9774882,39.7146931
-12205,8587,7095,0.0103763001462627,0.0103763001462627,-105.0011631,39.7420804,-105.0010418,39.7420775
-1748,1765,1768,0.20159496635188,0.20159496635188,-104.9769241,39.7129008,-104.976901,39.7110879
-12332,8654,8655,0.0104809427005404,0.0104809427005404,-105.0075431,39.754727,-105.0074206,39.7547231
-19506,10533,7232,0.00927443019901883,0.00927443019901883,-104.9883745,39.7058681,-104.9883759,39.7057847
-12444,8704,8705,0.0186821732215156,0.0186821732215156,-104.9404955,39.7617894,-104.9404928,39.7619574
-1767,1785,1786,0.049264963521636,0.049264963521636,-104.9839616,39.6947869,-104.9833861,39.6948011
-16454,9909,9910,0.124306713488191,0.124306713488191,-104.9730512,39.7063782,-104.9724845,39.7074076
-12491,8717,8718,0.055230353030641,0.055230353030641,-104.9599663,39.6929697,-104.9593208,39.692969
-12493,8719,8720,0.118556931073074,0.118556931073074,-104.9792566,39.6946845,-104.979262,39.6936183
-16535,4328,8117,0.102336137979151,0.102336137979151,-104.976953,39.748636,-104.97815,39.7486401
-1810,1826,1827,0.198453556780362,0.198453556780362,-104.9791466,39.7165069,-104.9791916,39.7147225
-18642,7416,4062,0.177070510498962,0.177070510498962,-105.0450953,39.7165644,-105.0451087,39.7181568
-12605,384,4685,0.0512286127934627,0.0512286127934627,-104.9934388,39.7289219,-104.9940378,39.7289164
-1838,1854,1855,0.0513002538457751,0.0513002538457751,-105.0379177,39.7213314,-105.0385175,39.7213346
-1839,1855,1856,0.0505552484656801,0.0505552484656801,-105.0385175,39.7213346,-105.0391086,39.721333
-16789,8649,10013,0.223567773525098,0.223567773525098,-105.0092259,39.7486951,-105.0114923,39.7476921
-12632,2360,3710,0.110712951608372,0.110712951608372,-104.9874759,39.7193464,-104.9874523,39.7183509
-1858,1870,1871,0.100377935012122,0.100377935012122,-104.9899993,39.7111545,-104.9899914,39.7102518
-17014,10053,10054,0.0101091220768254,0.0101091220768254,-105.0167611,39.7547513,-105.0167692,39.7546606
-12810,8258,8846,0.197578956532281,0.197578956532281,-104.9988487,39.78249,-104.9966683,39.7818987
-12812,8846,6028,0.064250785290107,0.064250785290107,-104.9966683,39.7818987,-104.9959579,39.7817094
-12814,8847,8848,0.169735694825716,0.169735694825716,-104.9968592,39.782169,-104.9987337,39.782674
-12816,8848,297,0.081779930762806,0.081779930762806,-104.9987337,39.782674,-104.999633,39.7829256
-16613,9942,2685,0.29520243699611,0.29520243699611,-104.9824158,39.7507117,-104.9799803,39.7525937
-12926,8892,8893,0.0723033727126927,0.0723033727126927,-105.0008068,39.745167,-105.001108,39.7457746
-13020,8924,8925,0.0102645296363106,0.0102645296363106,-104.9947852,39.7699691,-104.9949053,39.7699691
-13048,8934,8935,0.109609070074496,0.109609070074496,-104.9901787,39.7746982,-104.9904048,39.7737279
-14679,9301,445,0.205255827063182,0.205255827063182,-104.9700183,39.7255888,-104.9700104,39.7237429
-17965,10232,10237,0.0287772787854116,0.0287772787854116,-104.9882382,39.7252241,-104.9882377,39.7249653
-18916,10395,10396,0.0665707610088623,0.0665707610088623,-105.0103557,39.7499974,-105.0109587,39.7503762
-17673,8930,8847,0.0672232407607821,0.0672232407607821,-104.9961216,39.7819588,-104.9968592,39.782169
-19611,10510,10586,0.0687878070750461,0.0687878070750461,-104.9902651,39.7095644,-104.9910692,39.709571
-1895,1909,1910,0.0533681732492523,0.0533681732492523,-104.9763514,39.7074715,-104.9757282,39.7074937
-18738,1858,7870,0.177701929540755,0.177701929540755,-105.0403103,39.7213316,-105.0403023,39.7197335
-18722,1312,9772,0.242272496904356,0.242272496904356,-105.0342968,39.7133689,-105.0342887,39.7111901
-13294,4282,4326,0.048552671008238,0.048552671008238,-105.0344834,39.703983,-105.0350499,39.7039565
-1916,1928,1929,0.105818779358726,0.105818779358726,-104.9605576,39.7074884,-104.9593208,39.7074709
-18739,7870,4057,0.175799763463846,0.175799763463846,-105.0403023,39.7197335,-105.0403076,39.7181525
-18654,6221,7655,0.275174189153955,0.275174189153955,-105.0421663,39.7257919,-105.0421691,39.7282666
-1942,1956,1957,0.0270768788779568,0.0270768788779568,-104.9295943,39.7085824,-104.9292853,39.7085296
-13392,311,9059,0.0124055357740245,0.0124055357740245,-104.9786416,39.779139,-104.9784966,39.7791336
-18659,7643,6205,0.176055293755678,0.176055293755678,-105.030657,39.7277196,-105.0306528,39.7261363
-13405,8942,9061,0.112337222040467,0.112337222040467,-104.9969401,39.7675503,-104.9981155,39.7670982
-19275,10446,10424,0.0353155595120025,0.0353155595120025,-104.9952471,39.7458453,-104.9949557,39.7460704
-1960,1977,1978,0.0139641936224905,0.0139641936224905,-104.9406062,39.7437573,-104.9407693,39.7437639
-13485,9102,308,0.0118340647108347,0.0118340647108347,-105.0160728,39.7255648,-105.0162105,39.7255543
-20374,10758,3588,0.00620515380678302,0.00620515380678302,-105.0243956,39.7608382,-105.0243965,39.7607824
-18262,2547,6067,0.202075066970098,0.202075066970098,-105.0386666,39.7874341,-105.038672,39.7856168
-13520,9073,117,0.110830423506594,0.110830423506594,-105.0251226,39.7293097,-105.0251312,39.7303064
-13529,5647,9088,0.177768687230353,0.177768687230353,-105.0347769,39.7254226,-105.0327002,39.7254916
-19599,1871,10582,0.0185256932684462,0.0185256932684462,-104.9899914,39.7102518,-104.9902054,39.7102774
-13548,447,2999,0.0894668373271695,0.0894668373271695,-105.0132294,39.7256673,-105.0136746,39.7263954
-13553,9126,579,0.319404247396224,0.319404247396224,-105.0106484,39.7227756,-105.0080855,39.7206863
-18657,7657,10331,0.158775443026926,0.158775443026926,-105.0445162,39.72828,-105.0445132,39.7297079
-13716,6715,4211,0.0895901111539728,0.0895901111539728,-105.0169992,39.6967549,-105.0180463,39.6967483
-2012,2021,2022,0.202353267688237,0.202353267688237,-104.9349346,39.7274171,-104.9349282,39.7292369
-18846,10364,10366,0.0360011605118072,0.0360011605118072,-105.0140112,39.7371325,-105.0139219,39.7374489
-13805,9197,6639,0.199762828560815,0.199762828560815,-104.9985624,39.7147937,-104.9985703,39.7165902
-18572,10317,10318,0.0818849597364774,0.0818849597364774,-105.03063,39.7832519,-105.0297002,39.7834301
-2037,2046,2047,0.202843850092204,0.202843850092204,-104.9674789,39.7129253,-104.9674682,39.7111011
-2038,2047,2048,0.202089258953368,0.202089258953368,-104.9674682,39.7111011,-104.9674823,39.7092837
-19239,8480,10459,0.145581432505511,0.145581432505511,-104.9912213,39.7425829,-104.9924125,39.7416474
-13871,2282,3603,0.0995034643784278,0.0995034643784278,-104.9305543,39.7565508,-104.9293903,39.7565549
-2058,746,1564,0.142548749521321,0.142548749521321,-104.9530366,39.7763944,-104.9530639,39.7776762
-12345,8661,8662,0.0184782413605156,0.0184782413605156,-105.0123532,39.7524025,-105.0123789,39.7525675
-13933,9117,9237,0.0487812750222334,0.0487812750222334,-105.0252112,39.7363992,-105.0252103,39.7368379
-13946,9243,9109,0.0432001724914345,0.0432001724914345,-105.005875,39.7256239,-105.0053716,39.7256561
-20415,10773,10767,0.0164543942872072,0.0164543942872072,-105.0238489,39.7606336,-105.0239411,39.7605037
-15289,7065,9559,0.00979064512162057,0.00979064512162057,-104.9499634,39.7145233,-104.9500777,39.714528
-15406,9582,9586,0.261696459707034,0.261696459707034,-105.0104647,39.7536666,-105.009826,39.7559683
-14374,512,3439,0.0820413167433817,0.0820413167433817,-105.03396,39.7837055,-105.0345546,39.7842848
-15291,9560,9561,0.0474312472960203,0.0474312472960203,-104.9418174,39.706892,-104.941269,39.7069549
-20033,3666,9939,0.222490979962601,0.222490979962601,-104.9739808,39.7474784,-104.9739728,39.7494793
-14436,9351,6743,0.133828356760244,0.133828356760244,-105.0252652,39.7487792,-105.0268304,39.7487612
-2083,2084,2085,0.132628008561016,0.132628008561016,-104.9536401,39.7669187,-104.9536649,39.7681113
-20269,10721,10704,0.0408769490843711,0.0408769490843711,-105.0450564,39.7730205,-105.0445781,39.7730214
-20257,7553,10687,0.047722995184739,0.047722995184739,-105.0451406,39.774187,-105.0445822,39.7741837
-14596,9395,7373,0.0500503806511319,0.0500503806511319,-105.0253115,39.7688045,-105.0253069,39.7683544
-2107,1822,2109,0.0984259671843471,0.0984259671843471,-104.9269459,39.7647142,-104.9269682,39.7655992
-18860,10369,10362,0.0840816587742034,0.0840816587742034,-105.0144214,39.7366716,-105.0146327,39.7359331
-20253,10719,5572,0.00788824170654016,0.00788824170654016,-105.0441026,39.7730223,-105.0440103,39.7730225
-16690,9989,9990,0.0859897279747206,0.0859897279747206,-105.00675,39.7456071,-105.005945,39.7460707
-2125,1981,1966,0.0405441466490896,0.0405441466490896,-104.926882,39.743379,-104.9270076,39.7437306
-16692,8314,8651,0.0716207548906764,0.0716207548906764,-105.0042918,39.74812,-105.0047136,39.7486765
-16847,3130,9896,0.0388183147420438,0.0388183147420438,-104.970947,39.7024436,-104.9713614,39.7025858
-12343,8658,8659,0.0326641917954917,0.0326641917954917,-105.0059172,39.7565338,-105.0062583,39.7566662
-16277,4438,9869,0.0429816129844846,0.0429816129844846,-104.9546419,39.6984776,-104.9543259,39.6981771
-2254,2256,2257,0.179026041725141,0.179026041725141,-105.0275483,39.7181459,-105.0275587,39.7197559
-18714,6214,7650,0.274890248386652,0.274890248386652,-105.037867,39.7257736,-105.0378319,39.7282456
-2282,2281,2282,0.208433952181449,0.208433952181449,-104.9305302,39.7546764,-104.9305543,39.7565508
-18413,7163,7445,0.101226183618457,0.101226183618457,-105.0381509,39.7543757,-105.0369668,39.7543695
-2309,1585,1646,0.0852956059582778,0.0852956059582778,-105.0145707,39.6959461,-105.0155663,39.6959857
-17366,3085,3197,0.201028238760753,0.201028238760753,-104.9786762,39.712912,-104.9786527,39.7111042
-16424,3406,3407,0.0260120249027955,0.0260120249027955,-104.9701665,39.6972637,-104.9699417,39.6974212
-487,487,488,0.0915902876023465,0.0915902876023465,-104.9845022,39.7800173,-104.9855724,39.7800624
-2504,2153,2485,0.135805715389887,0.135805715389887,-105.0142616,39.7789608,-105.0158508,39.7789597
-15259,9549,9550,0.0733424963845631,0.0733424963845631,-104.9329305,39.7046107,-104.9336788,39.7049326
-17078,8074,9872,0.138360291064547,0.138360291064547,-104.9615934,39.7607445,-104.9615975,39.7619888
-604,595,596,0.135530584935403,0.135530584935403,-105.0153765,39.7753499,-105.015268,39.7765659
-2561,2534,2535,0.131236307359374,0.131236307359374,-105.0217592,39.7380884,-105.0202276,39.7381648
-11701,1064,1065,0.0735266946881119,0.0735266946881119,-105.0022669,39.7501498,-105.0016675,39.750624
-11702,1065,1066,0.144526540080904,0.144526540080904,-105.0016675,39.750624,-105.000472,39.751543
-2641,1094,1110,0.0327560682713917,0.0327560682713917,-105.0405328,39.7229583,-105.0409158,39.7229588
-12965,1823,1824,0.115786401746133,0.115786401746133,-105.0061735,39.7446567,-105.0068707,39.7455494
-2716,2671,2672,0.137037719250731,0.137037719250731,-104.9524691,39.7544839,-104.9524477,39.7557162
-16268,9866,8748,0.200740333998757,0.200740333998757,-104.9586795,39.6929681,-104.9586768,39.6947734
-2739,2694,2695,0.0520216844496084,0.0520216844496084,-104.9834919,39.7552636,-104.9839243,39.7555928
-18678,2801,2589,0.177457369167133,0.177457369167133,-105.0367403,39.7245365,-105.0367321,39.7229406
-11691,837,867,0.00774513207370433,0.00774513207370433,-105.0012532,39.7536699,-105.0011626,39.7536701
-11692,867,868,0.00951825440201693,0.00951825440201693,-105.0011626,39.7536701,-105.0011145,39.7535929
-2894,2838,2839,0.0194790124967281,0.0194790124967281,-105.0298986,39.7802977,-105.0301265,39.7802941
-16704,9998,9999,0.0072772776659045,0.0072772776659045,-105.0006022,39.7460221,-105.0005573,39.7460777
-16598,5785,8280,0.146209128325821,0.146209128325821,-104.9954256,39.7514052,-104.994215,39.752334
-2965,1143,2908,0.0621246078682317,0.0621246078682317,-104.97335,39.7632488,-104.9733498,39.7638075
-16603,7894,9953,0.113998968091224,0.113998968091224,-104.9883251,39.7515332,-104.9873896,39.7522638
-3043,2974,2975,0.149630303255577,0.149630303255577,-105.0281658,39.7584695,-105.0299157,39.7585034
-18440,2971,10293,0.0852727734364054,0.0852727734364054,-105.0260575,39.7584783,-105.0260789,39.759245
-3066,2997,2998,0.0208518874255557,0.0208518874255557,-104.9971271,39.7400109,-104.9969577,39.7401458
-18441,10293,8299,0.0364176386342536,0.0364176386342536,-105.0260789,39.759245,-105.0260753,39.7595725
-3086,3018,3019,0.14545556926134,0.14545556926134,-104.9780672,39.7547969,-104.9768843,39.7557372
-18443,7498,10290,0.0505394400731725,0.0505394400731725,-105.0416627,39.7607554,-105.0410717,39.7607688
-3112,3044,3045,0.100624292928738,0.100624292928738,-104.95856,39.7594391,-104.9573829,39.7594492
-18471,2985,7703,0.198649870528673,0.198649870528673,-105.039895,39.758491,-105.0398923,39.7567045
-16707,9623,9998,0.0621574034637008,0.0621574034637008,-105.0006156,39.7454632,-105.0006022,39.7460221
-3136,3062,2284,0.0981125078289405,0.0981125078289405,-104.9317072,39.760176,-104.9305594,39.7601749
-19669,10610,9361,0.0491952199145155,0.0491952199145155,-105.0246432,39.7697786,-105.0246491,39.770221
-3158,3082,3083,0.0983700193882712,0.0983700193882712,-104.9815443,39.7129225,-104.9803943,39.7129167
-11703,1066,1158,0.148869854474817,0.148869854474817,-105.000472,39.751543,-104.9992501,39.7524969
-3181,3101,3102,0.0962927982103224,0.0962927982103224,-104.9362596,39.7130732,-104.935134,39.713087
-18133,4095,6040,0.192431028537818,0.192431028537818,-105.0175565,39.7838951,-105.0175773,39.7856256
-18446,10289,7781,0.0503825451517732,0.0503825451517732,-105.0398915,39.7607667,-105.0393022,39.7607575
-3230,3144,3145,0.203548069983679,0.203548069983679,-104.9647846,39.7237695,-104.9648025,39.7256
-18448,9292,9527,0.134072690600401,0.134072690600401,-105.0375481,39.7511898,-105.0375346,39.7499841
-11705,1159,1244,0.147081474347396,0.147081474347396,-104.9980616,39.7534124,-104.9968584,39.7543579
-3281,3193,3194,0.106476946636896,0.106476946636896,-104.9827804,39.7111342,-104.9815359,39.7111143
-16416,3034,3130,0.0869691229324941,0.0869691229324941,-104.9699305,39.7024537,-104.970947,39.7024436
-3302,3210,3211,0.0503243467464606,0.0503243467464606,-104.9645976,39.7110977,-104.9640093,39.7111011
-18899,10379,10380,0.00404144992313864,0.00404144992313864,-105.0125991,39.750475,-105.0126123,39.7504401
-11709,1301,1302,0.0358989065327031,0.0358989065327031,-105.0035821,39.7499878,-105.0032204,39.7501518
-3325,3227,3228,0.131949141660574,0.131949141660574,-105.0299581,39.7718274,-105.0315008,39.7718744
-12952,1330,1361,0.0263074187615997,0.0263074187615997,-105.0020771,39.7434247,-105.0019226,39.7432201
-3400,3297,3298,0.0238019064284447,0.0238019064284447,-104.9269572,39.7038988,-104.9266917,39.7038348
-3489,1140,907,0.140863651036277,0.140863651036277,-104.9343976,39.7632231,-104.934389,39.7644899
-16744,7566,10007,0.0424762897679241,0.0424762897679241,-104.9519988,39.6984347,-104.9516233,39.6981848
-18732,9833,7646,0.178089933314901,0.178089933314901,-105.0331086,39.7293141,-105.0331112,39.7277125
-3516,3387,3388,0.0211650011658898,0.0211650011658898,-105.0351109,39.725318,-105.0349134,39.7254327
-12955,1478,1507,0.126108135430878,0.126108135430878,-105.0010729,39.7418408,-105.0003423,39.7408556
-3561,3424,3425,0.0612760168169184,0.0612760168169184,-105.0346199,39.7651924,-105.0346312,39.7657434
-16837,10019,9847,0.0370069651425935,0.0370069651425935,-104.9700539,39.7032059,-104.9699755,39.7028786
-3583,3438,1421,0.115878563365398,0.115878563365398,-105.0345914,39.7810741,-105.0345828,39.7821162
-12960,1632,1633,0.128348569926215,0.128348569926215,-105.0042744,39.7420124,-105.0035017,39.7410228
-3684,3520,3521,0.0506146313810284,0.0506146313810284,-104.961154,39.6983849,-104.9605624,39.6983858
-18464,10298,9139,0.0193791784570559,0.0193791784570559,-105.0431907,39.7509391,-105.0431263,39.7511062
-3734,1037,3568,0.052776292073227,0.052776292073227,-104.9622266,39.7544367,-104.9616097,39.7544552
-19333,2826,10473,0.01148052310696,0.01148052310696,-104.9718283,39.6983529,-104.971721,39.6984149
-18465,9139,541,0.0794672162259436,0.0794672162259436,-105.0431263,39.7511062,-105.0430648,39.7518193
-3755,3585,3586,0.0186262558199583,0.0186262558199583,-105.0236106,39.7606934,-105.0238257,39.7607202
-17071,4599,3687,0.240616539690475,0.240616539690475,-104.9615991,39.7447832,-104.9615881,39.7469471
-3805,3624,3250,0.195616461429944,0.195616461429944,-104.9804286,39.7057129,-104.9804174,39.7039537
-11577,1766,1595,0.0489656343684566,0.0489656343684566,-105.0334284,39.7553296,-105.0340012,39.7553296
-3825,3641,3642,0.0193156490955763,0.0193156490955763,-104.9590835,39.7152814,-104.9593067,39.715255
-17299,5829,8716,0.20447937601548,0.20447937601548,-104.9622681,39.6911405,-104.9622811,39.6929794
-3847,3658,3639,0.0475522464454704,0.0475522464454704,-104.9536997,39.6990547,-104.953288,39.6987674
-18869,10144,10372,0.0637708443692985,0.0637708443692985,-105.0093573,39.7209238,-105.0086117,39.7209279
-16541,812,3553,0.152482276035164,0.152482276035164,-104.9763308,39.7532506,-104.9763361,39.7546219
-20222,7195,10711,0.0935594253631277,0.0935594253631277,-104.9413129,39.6929321,-104.9413123,39.6937735
-19431,10003,8707,0.100281643377189,0.100281643377189,-104.9862718,39.703372,-104.9850997,39.7033596
-3891,3519,3695,0.200167523328644,0.200167523328644,-104.961729,39.698384,-104.9617464,39.6965839
-16751,6829,10008,0.0961527504424716,0.0961527504424716,-104.9506246,39.6983982,-104.9506165,39.6975335
-3916,3713,3714,0.1010804805974,0.1010804805974,-104.9928366,39.7183943,-104.9940184,39.7183972
-15272,8538,8632,0.0716756500086966,0.0716756500086966,-104.9283761,39.7065112,-104.9291888,39.7063544
-3938,3736,3737,0.112607595972795,0.112607595972795,-105.0028107,39.7384712,-105.0028068,39.7394839
-18125,4097,6042,0.191481087124581,0.191481087124581,-105.0187521,39.7838972,-105.0187387,39.7856192
-19576,10572,7461,0.00811745051204977,0.00811745051204977,-104.9892979,39.707617,-104.9892986,39.707544
-12969,1970,1971,0.103498330022734,0.103498330022734,-105.0018024,39.7442826,-105.0012102,39.7450944
-4039,3819,3820,0.147623529549067,0.147623529549067,-105.0098339,39.7075733,-105.009791,39.7062461
-18745,5190,2608,0.176866790100876,0.176866790100876,-105.0433305,39.7245627,-105.0433279,39.7229721
-4127,3890,3891,0.179468370845182,0.179468370845182,-104.9634822,39.7383772,-104.9634356,39.7399908
-12335,8652,8653,0.0109021010822668,0.0109021010822668,-105.0077772,39.7547483,-105.0076516,39.7547313
-4149,3906,1161,0.136761513456038,0.136761513456038,-104.9634455,39.7619888,-104.9634876,39.7632183
-17950,6559,10229,0.0124761805379247,0.0124761805379247,-104.9869835,39.7241266,-104.9870009,39.7240152
-4173,1891,706,0.0588353275400914,0.0588353275400914,-105.0046254,39.7620612,-105.0041014,39.7624043
-14115,3623,3925,0.0987645160792797,0.0987645160792797,-104.9448677,39.7457412,-104.9455321,39.7450146
-16843,10020,10021,0.00337377443816097,0.00337377443816097,-104.9706252,39.7032657,-104.9706319,39.7032358
-4194,3942,3943,0.176445012103913,0.176445012103913,-105.0001356,39.7384618,-105.0001422,39.736875
-18245,2433,9358,0.201879495148218,0.201879495148218,-105.0375589,39.771281,-105.0375421,39.7730965
-18189,6055,5795,0.200795798534704,0.200795798534704,-105.0293078,39.7856235,-105.0293078,39.7874293
-4450,3345,4152,0.10312101394972,0.10312101394972,-104.957017,39.7209795,-104.9558113,39.720983
-18872,9232,7825,0.160805002055775,0.160805002055775,-104.9889072,39.7018052,-104.9875714,39.7007878
-4529,4204,4205,0.278098742346476,0.278098742346476,-105.0080809,39.7765386,-105.0078446,39.779033
-18399,2541,10285,0.412599954612644,0.412599954612644,-105.0351796,39.7874285,-105.035177,39.7911391
-4637,4281,913,0.111497113872301,0.111497113872301,-104.9797003,39.7709793,-104.9806193,39.771691
-16900,4255,3513,0.200996147699506,0.200996147699506,-104.9658026,39.6965779,-104.9657993,39.6983855
-15919,9746,7414,0.0221971015175522,0.0221971015175522,-105.0421231,39.7165684,-105.0418648,39.7165877
-4682,4322,4323,0.0558862625971893,0.0558862625971893,-105.0350241,39.707661,-105.0350585,39.7071591
-16298,2636,2637,0.0033759355903552,0.0033759355903552,-104.970433,39.6951117,-104.9704693,39.6950998
-18879,6125,1927,0.199518260048308,0.199518260048308,-104.9611403,39.709281,-104.9611322,39.7074867
-4761,1489,145,0.199750566224671,0.199750566224671,-105.0015377,39.694864,-105.0015377,39.6930676
-18696,4055,6400,0.176933507030136,0.176933507030136,-105.0391007,39.7181492,-105.0391033,39.716558
-16300,2637,2160,0.00247295077408309,0.00247295077408309,-104.9704693,39.6950998,-104.9704959,39.6950911
-4832,1268,4428,0.206285087175769,0.206285087175769,-105.0203557,39.7175319,-105.0227675,39.7175319
-18888,7247,1923,0.201674729042946,0.201674729042946,-104.963471,39.7056744,-104.9634658,39.7074881
-4997,4543,4544,0.132688906239847,0.132688906239847,-105.022037,39.7729354,-105.0220369,39.7741287
-16650,9968,9969,0.0122299544992289,0.0122299544992289,-104.9849991,39.7385579,-104.9848573,39.7385435
-13009,2891,2892,0.172319187220424,0.172319187220424,-104.9905111,39.7729211,-104.9912536,39.7714803
-5024,4562,4563,0.200718931282707,0.200718931282707,-105.0216379,39.7856202,-105.0216452,39.7874253
-16315,3005,1362,0.00318470714397005,0.00318470714397005,-104.9710275,39.6970485,-104.9710484,39.6970248
-5188,4685,4686,0.177776490265982,0.177776490265982,-104.9940378,39.7289164,-104.9940692,39.730515
-17297,10086,7736,0.198049290500642,0.198049290500642,-104.9622687,39.6875234,-104.9622681,39.6893045
-20272,10721,10703,0.0411977345042915,0.0411977345042915,-105.0450564,39.7730205,-105.0450568,39.773391
-5368,3223,4808,0.133968729582188,0.133968729582188,-105.0135136,39.7717296,-105.0135073,39.7729344
-18898,10378,10379,0.00446883067059111,0.00446883067059111,-105.0125479,39.7504669,-105.0125991,39.750475
-5393,4828,4829,0.40282604477454,0.40282604477454,-104.9441889,39.692936,-104.9441934,39.6893133
-20273,10703,10725,0.144609051598102,0.144609051598102,-105.0450568,39.773391,-105.0450582,39.7746915
-5414,4842,1486,0.202708226253938,0.202708226253938,-105.0002975,39.6967069,-105.0003404,39.6948842
-5490,458,4898,0.0468723555946229,0.0468723555946229,-104.9412914,39.7350999,-104.9407436,39.7350848
-19112,8424,10118,0.19768851226159,0.19768851226159,-105.0160769,39.7409098,-105.0183374,39.7405364
-5515,1212,4920,0.232222389672051,0.232222389672051,-104.9874175,39.7272691,-104.9894816,39.7286261
-19281,10466,8768,0.124416605605605,0.124416605605605,-104.988856,39.7399993,-104.9903111,39.740001
-5542,2537,4941,0.438197641658083,0.438197641658083,-104.994984,39.7872452,-104.994975,39.791186
-20340,10739,10748,0.00884971981393432,0.00884971981393432,-105.0234882,39.7589777,-105.0235917,39.7589758
-19231,10455,10456,0.1184623603546,0.1184623603546,-104.9915438,39.7409769,-104.9923896,39.7401331
-5626,3284,1058,0.0983991410952824,0.0983991410952824,-104.9523742,39.7038339,-104.9523656,39.702949
-18347,7686,2429,0.200029751476084,0.200029751476084,-105.0352172,39.7695205,-105.0352091,39.7713194
-17080,1162,882,0.139677295386473,0.139677295386473,-104.9615772,39.7632401,-104.9615915,39.7644962
-6004,5259,5260,0.066486526131314,0.066486526131314,-104.9597331,39.7681261,-104.9589552,39.7681242
-14136,9281,509,0.032133360210872,0.032133360210872,-104.9517626,39.7476934,-104.9514881,39.747496
-17116,4052,3775,0.00847774353709404,0.00847774353709404,-104.9579299,39.7478129,-104.957947,39.7477378
-6616,5699,5700,0.00800603928165774,0.00800603928165774,-105.0357639,39.7621288,-105.035764,39.7622008
-19812,7122,5371,0.176755455393693,0.176755455393693,-105.0021749,39.735285,-105.0021749,39.7336954
-6777,5820,5821,0.0499181980722273,0.0499181980722273,-104.9821591,39.6911678,-104.9815757,39.6911678
-4400,4114,4115,0.202509931844666,0.202509931844666,-104.9513332,39.7819179,-104.9513234,39.7837391
-11451,8258,8261,0.200629988067775,0.200629988067775,-104.9988487,39.78249,-104.9966971,39.7817678
-19818,10647,5606,0.0519771701713562,0.0519771701713562,-105.0021963,39.7300097,-105.0015885,39.7300077
-6974,2119,5953,0.0979282440578051,0.0979282440578051,-104.9268735,39.7310598,-104.9257284,39.7310507
-4402,4117,2874,0.134125988252719,0.134125988252719,-104.9508084,39.7837325,-104.9508183,39.7849387
-4403,2874,4118,0.140174877049639,0.140174877049639,-104.9508183,39.7849387,-104.9508084,39.7861993
-17149,46,4780,0.204228808601968,0.204228808601968,-104.9751601,39.7002153,-104.9751815,39.7020519
-7674,1498,187,0.203419998803368,0.203419998803368,-105.0437531,39.6949621,-105.0437531,39.6931327
-7719,6393,6394,0.135380647167761,0.135380647167761,-105.0252309,39.747573,-105.0268144,39.7475701
-20324,10732,10743,0.016217938211146,0.016217938211146,-105.0237565,39.7589777,-105.0236223,39.7590808
-7749,6408,6409,0.240033624288878,0.240033624288878,-104.9634692,39.7854929,-104.9640263,39.7876087
-20330,10744,10736,0.0345659354386547,0.0345659354386547,-105.0235881,39.7590797,-105.0233746,39.7593437
-7835,4630,1259,0.131787660470127,0.131787660470127,-105.0189411,39.7753479,-105.0204832,39.7753471
-5519,4922,2815,0.0131824278657025,0.0131824278657025,-104.9919185,39.7316877,-104.9919925,39.7317917
-7914,3652,89,0.238216692287668,0.238216692287668,-104.9565993,39.7020271,-104.9580983,39.7002217
-17155,3202,3091,0.199774901839453,0.199774901839453,-104.9751601,39.711091,-104.9751708,39.7128876
-7937,6530,6531,0.246221323543984,0.246221323543984,-104.9709294,39.6879413,-104.9734286,39.6890388
-20342,2965,10747,0.0130500853290149,0.0130500853290149,-105.0235213,39.7584714,-105.0235111,39.7585885
-7957,3453,6015,0.103911955569673,0.103911955569673,-104.9461741,39.7241209,-104.9449591,39.7241168
-17306,8715,5827,0.20364289358169,0.20364289358169,-104.9634793,39.692979,-104.963474,39.6911476
-7981,6550,6526,0.0499792827976588,0.0499792827976588,-104.9775557,39.7240716,-104.9769714,39.7240796
-18128,10269,10270,0.123006178444702,0.123006178444702,-105.0151755,39.7886103,-105.0151844,39.7897165
-8007,6565,6566,0.0461778743400118,0.0461778743400118,-104.9793644,39.7557994,-104.9797454,39.7560938
-12262,8500,8621,0.00391508697358849,0.00391508697358849,-105.0069837,39.7565886,-105.0070186,39.7566114
-20346,10731,10745,0.0882403942542692,0.0882403942542692,-105.0247591,39.7586373,-105.0237282,39.7585962
-8080,6611,6612,0.10285099566632,0.10285099566632,-104.9291809,39.7364935,-104.9303837,39.7364879
-20503,10831,10061,0.00544027190297384,0.00544027190297384,-105.0193747,39.7583443,-105.0193111,39.7583425
-17159,5011,5064,0.204989668883762,0.204989668883762,-104.9728223,39.6911338,-104.9728324,39.6929773
-14700,4773,5065,0.177184173799166,0.177184173799166,-104.9746628,39.7224758,-104.9746455,39.7240692
-8102,6628,6630,0.0733305516170216,0.0733305516170216,-104.9775188,39.6919873,-104.9769745,39.6914779
-14712,935,5453,0.176927806170623,0.176927806170623,-104.9746877,39.7320425,-104.9746713,39.7304514
-8148,6658,1326,0.126702346827637,0.126702346827637,-105.0443368,39.7144948,-105.0442903,39.7133559
-14707,5162,5223,0.123984475685155,0.123984475685155,-104.9746897,39.7395432,-104.9747109,39.7384283
-8332,6761,6762,0.0544299595372282,0.0544299595372282,-105.0276173,39.7693294,-105.0276181,39.7698189
-17167,48,5241,0.405295346029575,0.405295346029575,-104.9740013,39.7002102,-104.9740116,39.7038551
-8384,6791,4603,0.174075741649446,0.174075741649446,-104.9684196,39.7432459,-104.9684176,39.7448114
-20516,6731,10843,0.0163123315737135,0.0163123315737135,-105.0159724,39.7589742,-105.015972,39.7591209
-17171,5280,3092,0.401948502237413,0.401948502237413,-104.9739693,39.7092817,-104.9739802,39.7128965
-8434,6821,1593,0.0969711334947841,0.0969711334947841,-105.0121846,39.7039499,-105.0133176,39.7039764
-14711,2220,935,0.183060496140458,0.183060496140458,-104.9746915,39.7336888,-104.9746877,39.7320425
-8536,6880,1128,0.0335501177019022,0.0335501177019022,-105.0400799,39.7657742,-105.0404722,39.7657639
-19635,10525,10595,0.00694156278564008,0.00694156278564008,-104.9883652,39.7073679,-104.9882841,39.7073658
-18504,9353,6386,0.133800859600802,0.133800859600802,-105.0363784,39.7487709,-105.0363788,39.7475676
-8556,6891,6418,0.133199850282798,0.133199850282798,-105.0158561,39.7656402,-105.0174145,39.7656433
-8557,6418,4625,0.132396793169127,0.132396793169127,-105.0174145,39.7656433,-105.0189635,39.7656391
-17175,5327,5390,0.196700288812187,0.196700288812187,-104.9693125,39.6893294,-104.9692808,39.6910982
-18507,8379,10301,0.115242670596916,0.115242670596916,-105.0410701,39.7476972,-105.0410673,39.7487336
-8578,6280,6899,0.103595480205117,0.103595480205117,-104.9609549,39.7692782,-104.9597428,39.769281
-4404,4118,4119,0.131974592337134,0.131974592337134,-104.9508084,39.7861993,-104.950835,39.787386
-18510,10301,9529,0.136169474903607,0.136169474903607,-105.0410673,39.7487336,-105.0410698,39.7499582
-4406,4120,4121,0.394524879292727,0.394524879292727,-104.951135,39.787386,-104.9510929,39.7909339
-19640,10596,10598,0.0045286617175965,0.0045286617175965,-104.9881372,39.7071852,-104.9881774,39.7071587
-8728,3385,6959,0.0627894298641218,0.0627894298641218,-105.0345837,39.7451514,-105.0353181,39.7451528
-18496,6384,9201,0.134997571408585,0.134997571408585,-105.0351851,39.7475652,-105.0352011,39.7487792
-18514,10302,5543,0.103400383164669,0.103400383164669,-105.0410619,39.7511711,-105.0410644,39.752101
-8779,6999,7000,0.178967474513147,0.178967474513147,-104.9318001,39.7894487,-104.931649,39.791054
-18515,5543,2412,0.101763704229338,0.101763704229338,-105.0410644,39.752101,-105.041094,39.7530159
-8803,5141,2236,0.0248346840292332,0.0248346840292332,-104.931599,39.732778,-104.9314966,39.732987
-19831,10650,10651,0.138361801446117,0.138361801446117,-105.0422095,39.7366329,-105.0422009,39.7353886
-8887,3285,1059,0.0976623415502941,0.0976623415502941,-104.9500244,39.7038338,-104.9500415,39.7029556
-17182,5607,5608,0.205054564403698,0.205054564403698,-104.9716302,39.692962,-104.9716303,39.6911179
-8909,3021,7068,0.0519035642154067,0.0519035642154067,-104.974418,39.7576075,-104.9748473,39.7579376
-4407,3574,4122,0.137780007377075,0.137780007377075,-104.951246,39.7544757,-104.9511924,39.7557141
-14713,5453,5664,0.115365301333729,0.115365301333729,-104.9746713,39.7304514,-104.9752576,39.729517
-9019,3944,7121,0.0616182757003265,0.0616182757003265,-105.0001574,39.7352867,-105.000878,39.7352858
-18655,7655,10305,0.198541985736116,0.198541985736116,-105.0421691,39.7282666,-105.0421244,39.7300518
-9043,7135,4276,0.121250513345306,0.121250513345306,-104.9754213,39.7729633,-104.9744288,39.7737425
-18147,10258,6033,0.201162874084808,0.201162874084808,-105.0117945,39.7874239,-105.0117918,39.7856148
-9226,7232,7233,0.0701236279353194,0.0701236279353194,-104.9883759,39.7057847,-104.9875581,39.7057416
-18152,10264,10277,0.407566866193853,0.407566866193853,-105.0210534,39.7874313,-105.021032,39.7910966
-9304,6121,1920,0.204110733126185,0.204110733126185,-104.9651409,39.7093108,-104.9651495,39.7074752
-18153,4104,6047,0.112519690969595,0.112519690969595,-105.0233734,39.7846136,-105.0233803,39.7856255
-11446,385,387,0.611916175000286,0.611916175000286,-105.009982,39.7834091,-105.0028212,39.783461
-17478,5886,323,0.0446797516163588,0.0446797516163588,-105.015177,39.7517962,-105.0156986,39.7518215
-9352,6077,7309,0.0481617931874556,0.0481617931874556,-104.9628485,39.7020562,-104.9622856,39.7020498
-20395,10775,10776,0.00739420688081638,0.00739420688081638,-105.0243213,39.7599965,-105.0242462,39.7599635
-18154,6047,10135,0.201285870335585,0.201285870335585,-105.0233803,39.7856255,-105.023387,39.7874357
-20429,10789,10790,0.0478990795077935,0.0478990795077935,-105.0223762,39.7591046,-105.0228403,39.759346
-9375,7320,1193,0.16722266002845,0.16722266002845,-104.955535,39.7256145,-104.9555538,39.7271183
-18274,6666,6667,0.19713796716552,0.19713796716552,-105.0398227,39.780198,-105.0398176,39.7819709
-9396,4346,6344,0.137277828740194,0.137277828740194,-104.9549522,39.7569718,-104.9549352,39.7582063
-7038,2477,5911,0.20568880939919,0.20568880939919,-104.9258057,39.7474177,-104.9257802,39.7492674
-9526,7390,6591,0.199950723674749,0.199950723674749,-105.0332849,39.7311446,-105.0332843,39.7329428
-9527,6591,7113,0.204992725577621,0.204992725577621,-105.0332843,39.7329428,-105.033238,39.734786
-4408,4122,4123,0.139283771950412,0.139283771950412,-104.9511924,39.7557141,-104.9512139,39.7569666
-20440,8230,10798,0.00724995456680097,0.00724995456680097,-105.0218852,39.7620114,-105.0218855,39.7619462
-9657,7441,7443,0.137227628583058,0.137227628583058,-105.0369584,39.7487546,-105.036967,39.7499887
-17487,4652,4653,0.0539741907357585,0.0539741907357585,-105.018965,39.7469089,-105.0189634,39.7473943
-9708,7472,7473,0.0204539718039878,0.0204539718039878,-104.9890503,39.7084625,-104.9892894,39.708464
-18246,9358,9377,0.403042223701425,0.403042223701425,-105.0375421,39.7730965,-105.0374998,39.776721
-9812,7530,3064,0.202502418308833,0.202502418308833,-104.9282076,39.7583604,-104.9282248,39.7601815
-17689,6172,6173,0.109301053367223,0.109301053367223,-104.9856415,39.7795956,-104.9843627,39.779576
-9839,7545,7546,0.200378656030458,0.200378656030458,-105.0451654,39.7312441,-105.0451482,39.7330461
-17691,6191,6192,0.114641917935369,0.114641917935369,-104.9832163,39.7795774,-104.9818752,39.7795506
-9862,7563,7564,0.144864127295822,0.144864127295822,-104.9922506,39.7545528,-104.9910557,39.7554766
-18248,8108,10283,0.203688042743378,0.203688042743378,-105.0375106,39.7783767,-105.0375025,39.7802085
-9912,7587,7588,0.0177693522294632,0.0177693522294632,-104.9356138,39.7618347,-104.9356152,39.7619945
-12245,8614,8615,0.00283454394049719,0.00283454394049719,-104.9995987,39.7508719,-104.9995731,39.7508881
-20023,7898,8856,0.145457290364043,0.145457290364043,-104.9900722,39.7528603,-104.988892,39.7538026
-20462,10063,10815,0.0787418608501839,0.0787418608501839,-105.0192332,39.7576336,-105.0192433,39.7583417
-10159,5268,6906,0.123203894056526,0.123203894056526,-104.9475125,39.7680963,-104.947479,39.769204
-20464,10816,10812,0.0195704583026571,0.0195704583026571,-105.0185279,39.7585307,-105.018527,39.7587067
-11511,8294,8295,0.0520431495126935,0.0520431495126935,-104.9942907,39.754326,-104.9947185,39.754659
-18214,6382,6383,0.202997553277811,0.202997553277811,-105.042255,39.7621184,-105.0422527,39.763944
-10231,6520,7739,0.0500835268559568,0.0500835268559568,-104.9581278,39.6893365,-104.9575425,39.6893331
-18257,3984,6760,0.19949668413334,0.19949668413334,-105.0299405,39.7688003,-105.0276064,39.7688141
-10280,7447,7757,0.470575008371913,0.470575008371913,-105.0151992,39.7160167,-105.0151648,39.7202486
-11783,8122,8036,0.0779413781888185,0.0779413781888185,-104.9781363,39.7540082,-104.9787817,39.7535131
-14738,6526,6538,0.170206219459847,0.170206219459847,-104.9769714,39.7240796,-104.976974,39.7256103
-10497,4733,6800,0.110360790137427,0.110360790137427,-104.9696568,39.7519733,-104.968366,39.7519878
-20473,10823,10777,0.00660874071248581,0.00660874071248581,-105.0245064,39.7608531,-105.0244301,39.7608435
-10520,7847,7425,0.0489570822105033,0.0489570822105033,-105.036368,39.7603278,-105.0369407,39.7603225
-18522,4015,10297,0.0710067813209419,0.0710067813209419,-105.0299362,39.7464017,-105.03052,39.7468559
-10541,7855,7856,0.177133627375528,0.177133627375528,-104.9928366,39.7193449,-104.9928343,39.7209379
-10542,7856,2614,0.178768427477815,0.178768427477815,-104.9928343,39.7209379,-104.9928302,39.7225456
-18524,1880,9146,0.0581549975210073,0.0581549975210073,-105.0398844,39.7594402,-105.0398835,39.7589172
-10589,7869,6640,0.0423030177562977,0.0423030177562977,-104.9980684,39.719352,-104.998563,39.7193532
-18270,5525,6463,0.15576453739372,0.15576453739372,-105.0398709,39.7738651,-105.0398602,39.7752659
-10616,7882,4885,0.155749664880603,0.155749664880603,-104.9563208,39.7337098,-104.9562778,39.7351101
-18528,9272,9525,0.133068770502091,0.133068770502091,-105.0340317,39.7511922,-105.0340236,39.7499955
-10639,7897,7898,0.052238135352395,0.052238135352395,-104.9896341,39.7525328,-104.9900722,39.7528603
-10663,7913,7914,0.0662287183378057,0.0662287183378057,-105.0275993,39.7572752,-105.027595,39.7578708
-18276,1427,6667,0.0124761175920816,0.0124761175920816,-105.0398172,39.7820831,-105.0398176,39.7819709
-14745,4866,6690,0.193273433165028,0.193273433165028,-104.9770059,39.7351417,-104.977023,39.7368798
-12385,1624,3930,0.0974730336125312,0.0974730336125312,-104.9994552,39.7668568,-105.0005956,39.7668504
-18277,6667,6720,0.144754021853131,0.144754021853131,-105.0398176,39.7819709,-105.0398219,39.7832727
-10816,7993,6492,0.0854037034050773,0.0854037034050773,-104.9747549,39.746928,-104.9747749,39.7461601
-14747,6732,6733,0.0789150394398201,0.0789150394398201,-104.9782075,39.7375895,-104.9782075,39.7368798
-12453,3191,6107,0.202925463206431,0.202925463206431,-104.9851665,39.7111408,-104.9851845,39.7093159
-16202,5822,7727,0.19552660887524,0.19552660887524,-104.9810031,39.6911678,-104.9810119,39.6894094
-18539,5559,10311,0.589298128069539,0.589298128069539,-105.0440122,39.7616564,-105.0509064,39.7616379
-10890,3025,8025,0.123630898552104,0.123630898552104,-104.9488309,39.7600818,-104.9487313,39.761191
-15899,9255,7490,0.0311439652684609,0.0311439652684609,-105.0419691,39.7342088,-105.0416893,39.7340295
-18550,4298,9428,0.104368579037722,0.104368579037722,-105.04225,39.7539306,-105.0422446,39.7548692
-11283,8190,8201,0.0778576783996018,0.0778576783996018,-104.937302,39.696603,-104.936392,39.696601
-4409,4123,4124,0.135738728632571,0.135738728632571,-104.9512139,39.7569666,-104.9512246,39.7581873
-13171,7691,8995,0.0242708657605628,0.0242708657605628,-104.9475747,39.784754,-104.9472908,39.7847471
-11527,809,8301,0.0665080068102908,0.0665080068102908,-105.026046,39.7554277,-105.0260395,39.7548296
-15908,9084,9085,0.0343875506043555,0.0343875506043555,-105.0294148,39.7240512,-105.029624,39.7237871
-14757,2212,4862,0.162593070375603,0.162593070375603,-104.9792376,39.7337065,-104.9792634,39.7351686
-11742,8382,8383,0.00390317600089655,0.00390317600089655,-104.972113,39.7494781,-104.9721125,39.7495132
-18302,5737,2440,0.171112285574699,0.171112285574699,-105.0410242,39.7724702,-105.0410403,39.7709314
-11766,8404,8405,0.0591205771532174,0.0591205771532174,-104.9894933,39.7580303,-104.9899962,39.7583953
-11998,5505,7079,0.147126356992669,0.147126356992669,-104.9812949,39.7610237,-104.9800778,39.7619593
-12060,332,268,0.0944572536860071,0.0944572536860071,-104.9554298,39.7451641,-104.9564977,39.7449464
-4411,3048,4125,0.136438064344983,0.136438064344983,-104.9511947,39.7594645,-104.9511863,39.7606915
-20391,10766,10774,0.00648510043864555,0.00648510043864555,-105.0243045,39.7606892,-105.0243795,39.760698
-4412,4125,4126,0.00355827872013668,0.00355827872013668,-104.9511863,39.7606915,-104.9511861,39.7607235
-19845,9516,10657,0.207937764412144,0.207937764412144,-105.0387468,39.7403366,-105.0387332,39.7384666
-16200,1790,7209,0.198939694041251,0.198939694041251,-104.9810045,39.694799,-104.9809977,39.6930099
-20399,10763,3591,0.00757376863172981,0.00757376863172981,-105.0250727,39.760924,-105.025071,39.7608559
-12520,8729,1189,0.0214820993457698,0.0214820993457698,-104.9601841,39.7273144,-104.9601763,39.7271213
-20644,10877,4517,0.0511435578342218,0.0511435578342218,-105.0134384,39.7627649,-105.0133602,39.7632209
-12620,8775,4920,0.0124622300083447,0.0124622300083447,-104.9895915,39.7285525,-104.9894816,39.7286261
-20646,10035,10880,0.0235473019855852,0.0235473019855852,-105.0143641,39.767541,-105.0146396,39.7675397
-12646,5921,920,0.178961176893159,0.178961176893159,-104.9835955,39.730436,-104.9835814,39.7320454
-12691,8806,8807,0.0113998193117656,0.0113998193117656,-104.953405,39.7180338,-104.9534077,39.7179313
-12822,8261,493,0.226877195561116,0.226877195561116,-104.9966971,39.7817678,-104.994193,39.7810897
-13034,8927,585,0.0555278029535648,0.0555278029535648,-104.9887446,39.7818256,-104.9889526,39.7822987
-14668,6327,4166,0.169217141640748,0.169217141640748,-104.9729137,39.7186188,-104.972908,39.7201406
-14856,9434,8907,0.112945329265115,0.112945329265115,-105.0089007,39.7547457,-105.0079847,39.7554777
-20835,10948,10929,0.0711141044607233,0.0711141044607233,-105.0291285,39.7622441,-105.0299581,39.7621958
-13572,2184,9130,0.046228028674551,0.046228028674551,-105.0163101,39.7301817,-105.0161204,39.730571
-4413,4126,4127,0.123682116907034,0.123682116907034,-104.9511861,39.7607235,-104.9511861,39.7618358
-4414,4127,4128,0.0151340374611755,0.0151340374611755,-104.9511861,39.7618358,-104.9511874,39.7619719
-14780,5922,921,0.178257163080484,0.178257163080484,-104.9828734,39.7304382,-104.9828787,39.7320413
-13824,9203,7891,0.0449920400202888,0.0449920400202888,-104.9873873,39.7502468,-104.9870145,39.7505324
-13970,9249,9250,0.0321739674064664,0.0321739674064664,-105.0143117,39.7288521,-105.0144838,39.7291094
-20559,2957,10784,0.0120134443189883,0.0120134443189883,-105.0187431,39.7584203,-105.0187393,39.7585283
-14029,9262,6653,0.100609617198747,0.100609617198747,-105.0437097,39.6967153,-105.0448856,39.6967219
-15915,9746,9747,0.0832769023011374,0.0832769023011374,-105.0421231,39.7165684,-105.0417682,39.7172658
-11415,7985,8000,0.0154063290418794,0.0154063290418794,-105.025085,39.7846442,-105.0252653,39.7846442
-14233,8687,6694,0.0247755996269239,0.0247755996269239,-104.9497898,39.7256083,-104.9495001,39.7256083
-20569,10787,10858,0.0193290169195346,0.0193290169195346,-105.0188651,39.7596431,-105.0190584,39.7597333
-14464,6149,3994,0.0989127437299345,0.0989127437299345,-105.0287889,39.7729931,-105.029945,39.7730349
-14635,9387,9388,0.0403809617749613,0.0403809617749613,-105.0032834,39.7589279,-105.0032916,39.759291
-11212,391,392,0.10291889633356,0.10291889633356,-104.931634,39.702187,-104.932837,39.702182
-14604,9397,9398,0.123826706008273,0.123826706008273,-105.0252842,39.7632064,-105.0252853,39.7620928
-14637,9406,2243,0.00956376056529555,0.00956376056529555,-105.0052833,39.7574891,-105.0051802,39.7575225
-15410,9588,9589,0.0190893984820006,0.0190893984820006,-105.0043197,39.7412126,-105.0041373,39.7413116
-15440,9601,1507,0.00768187987530518,0.00768187987530518,-105.0002535,39.7408661,-105.0003423,39.7408556
-16383,9771,9880,0.0381827012246672,0.0381827012246672,-104.9717383,39.7032546,-104.9718617,39.7035846
-16620,9937,9938,0.0704692374785171,0.0704692374785171,-104.9859915,39.738562,-104.9856294,39.7391313
-11802,8392,8415,0.148179257170155,0.148179257170155,-104.9829471,39.7529945,-104.9841796,39.7520575
-16809,4996,728,0.102190274976312,0.102190274976312,-104.9523584,39.6965806,-104.951164,39.6965829
-11640,8346,4530,0.131615785848543,0.131615785848543,-105.0236119,39.7542144,-105.0220723,39.7542199
-16853,6519,9854,0.0497714413737895,0.0497714413737895,-104.9581188,39.6929673,-104.9575371,39.6929673
-4415,4128,1171,0.138086753058786,0.138086753058786,-104.9511874,39.7619719,-104.9511738,39.7632137
-17269,3518,82,0.205066129886621,0.205066129886621,-104.9623127,39.6983876,-104.9623177,39.7002318
-11951,8499,8500,0.0607548345173342,0.0607548345173342,-105.0064874,39.7561975,-105.0069837,39.7565886
-17324,6799,7351,0.103019517606604,0.103019517606604,-104.968374,39.7507196,-104.967169,39.7507119
-11991,4455,5503,0.144667643977852,0.144667643977852,-104.9816151,39.759425,-104.9804313,39.7603548
-17388,5920,3810,0.153093198888871,0.153093198888871,-104.9842358,39.7304466,-104.9842348,39.7290698
-17389,3810,10095,0.199017480070308,0.199017480070308,-104.9842348,39.7290698,-104.9842414,39.72728
-17407,6122,1921,0.202694690919031,0.202694690919031,-104.9645867,39.7093011,-104.9646085,39.7074783
-17408,1921,7246,0.200797963530598,0.200797963530598,-104.9646085,39.7074783,-104.9645976,39.7056725
-12044,8523,8524,0.0621486337289915,0.0621486337289915,-105.0057364,39.7517137,-105.0053655,39.751233
-17448,3247,10109,0.0544983800214201,0.0544983800214201,-104.9827863,39.7038745,-104.9827914,39.7033844
-4416,1171,891,0.137903948024362,0.137903948024362,-104.9511738,39.7632137,-104.9511738,39.7644539
-12113,8552,672,0.00266902064060136,0.00266902064060136,-104.9647683,39.7415931,-104.9647688,39.7416171
-17549,10132,10133,2.25328864155446,2.25328864155446,-104.9893554,39.7854595,-104.9832781,39.8051785
-17666,8928,10162,0.0972564668123919,0.0972564668123919,-104.9872354,39.7794049,-104.9861062,39.7795141
-12288,8528,8526,0.152174217990106,0.152174217990106,-105.0061613,39.7515322,-105.0049596,39.7505226
-17729,7332,2080,0.104548139781884,0.104548139781884,-104.9548798,39.7607265,-104.9536567,39.7607265
-12329,8641,8652,0.00987690479251785,0.00987690479251785,-105.0078924,39.7547551,-105.0077772,39.7547483
-12331,8653,8654,0.00928748638267964,0.00928748638267964,-105.0076516,39.7547313,-105.0075431,39.754727
-17751,8575,6706,0.145927899456713,0.145927899456713,-104.9927205,39.7474627,-104.99393,39.7465367
-12936,8688,8689,0.0364958929125483,0.0364958929125483,-105.0030556,39.7453386,-105.0031672,39.7450218
-17774,7679,5984,0.100495969018847,0.100495969018847,-104.9246153,39.7801377,-104.9257912,39.7801245
-17787,9214,536,0.151808926625465,0.151808926625465,-105.0140859,39.7556275,-105.0151149,39.7545148
-17822,10188,10186,0.041401555151972,0.041401555151972,-105.000993,39.7638033,-105.0007327,39.7634893
-17852,10195,5678,0.0176253194989635,0.0176253194989635,-104.9980666,39.7674272,-104.9982133,39.7675386
-17170,1912,5280,0.200459610115248,0.200459610115248,-104.9739477,39.707479,-104.9739693,39.7092817
-4417,891,4129,0.140986849802137,0.140986849802137,-104.9511738,39.7644539,-104.9511842,39.7657218
-12947,1304,1303,0.066448544071591,0.066448544071591,-105.0024118,39.7438801,-105.0017368,39.7441763
-18995,3958,5601,0.119729821294068,0.119729821294068,-105.0002015,39.7209321,-105.0016014,39.7209311
-18382,8919,8920,0.0492932118239397,0.0492932118239397,-105.0258833,39.771558,-105.0258859,39.7720013
-19080,4746,4159,0.17797879706873,0.17797879706873,-104.9407779,39.7225362,-104.9407748,39.7209356
-13065,8947,8948,0.014693528299895,0.014693528299895,-104.9948109,39.7672181,-104.9949826,39.7672115
-19135,3168,8470,0.0222426676149063,0.0222426676149063,-105.0012883,39.7488943,-105.0014824,39.7487611
-20824,9337,9400,0.0122401419030242,0.0122401419030242,-105.0251662,39.7600869,-105.0252875,39.7601454
-19172,6804,7956,0.0915174498096421,0.0915174498096421,-104.9688098,39.7807867,-104.9677476,39.7808918
-19618,10588,10494,0.00731369728944242,0.00731369728944242,-104.9910599,39.7104919,-104.9911454,39.7104919
-19331,9893,10473,0.0200896227314349,0.0200896227314349,-104.9715317,39.698308,-104.971721,39.6984149
-15874,8889,8940,0.103516223202584,0.103516223202584,-105.0393045,39.7347125,-105.0405047,39.7348341
-19358,9949,10479,0.0590930811213136,0.0590930811213136,-105.0003016,39.7477141,-104.9998192,39.7473335
-19413,7239,3251,0.195270640148282,0.195270640148282,-104.9798548,39.7057161,-104.9798629,39.70396
-19962,10674,10685,0.14613727594919,0.14613727594919,-105.0410696,39.7366244,-105.0410556,39.7353102
-18473,9005,9006,0.01365486811001,0.01365486811001,-105.0399025,39.7549798,-105.0399032,39.754857
-20041,9172,140,0.204724385208342,0.204724385208342,-104.9923108,39.6911873,-104.9924893,39.6930233
-18917,10396,10397,0.0952180129620757,0.0952180129620757,-105.0109587,39.7503762,-105.011825,39.749838
-20063,2998,4930,0.100928455718765,0.100928455718765,-104.9969577,39.7401458,-104.9981378,39.7401663
-20587,10865,10840,0.00838601883021894,0.00838601883021894,-105.024575,39.7609374,-105.0245771,39.760862
-4418,4129,2776,0.133433939347385,0.133433939347385,-104.9511842,39.7657218,-104.9511832,39.7669218
-14836,7396,7377,0.030817448743492,0.030817448743492,-105.0330742,39.7548479,-105.0334347,39.7548479
-14837,7377,3410,0.100816825455254,0.100816825455254,-105.0334347,39.7548479,-105.034614,39.754856
-15447,9607,9608,0.0162401698909022,0.0162401698909022,-104.9997573,39.7426934,-104.9999385,39.7426496
-309,317,318,0.0119735018205437,0.0119735018205437,-105.0345742,39.7830397,-105.0344342,39.7830352
-13531,5648,3387,0.0436500601039895,0.0436500601039895,-105.0355748,39.7254817,-105.0351109,39.725318
-14946,8215,8212,0.101284367879663,0.101284367879663,-104.9303979,39.7382593,-104.9292134,39.7382659
-13555,408,9127,0.613912488305853,0.613912488305853,-105.0014039,39.7148758,-104.9983536,39.7098782
-14981,9463,7091,0.107883940343108,0.107883940343108,-104.9861093,39.7432784,-104.9848475,39.7432813
-14982,7091,8789,0.108748219147477,0.108748219147477,-104.9848475,39.7432813,-104.9835757,39.7432682
-13650,9158,9159,0.0150152429008076,0.0150152429008076,-104.9960034,39.7030693,-104.9961123,39.7031752
-15063,8874,7430,0.0504536590179092,0.0504536590179092,-104.9810766,39.7368811,-104.9816663,39.7368655
-17072,3687,8133,0.141298637785039,0.141298637785039,-104.9615881,39.7469471,-104.9615993,39.7482178
-18493,9170,5545,0.102571946583037,0.102571946583037,-105.04225,39.7511845,-105.0422627,39.7521069
-15171,9511,9512,0.0502858420296349,0.0502858420296349,-105.0358145,39.7403194,-105.0364026,39.7403227
-15174,9514,9515,0.0498070291463972,0.0498070291463972,-105.0375666,39.7403293,-105.0381491,39.7403326
-18566,10322,10323,0.186113882409967,0.186113882409967,-105.0341731,39.7804672,-105.0341543,39.7821409
-16100,9824,9817,0.0308009946802063,0.0308009946802063,-104.9497096,39.7808621,-104.9497096,39.7811391
-16101,9817,8245,0.0866075022072335,0.0866075022072335,-104.9497096,39.7811391,-104.9495723,39.7819108
-15444,8607,9604,0.0180426861021608,0.0180426861021608,-105.0006617,39.7414743,-105.0004869,39.7415652
-16161,3728,722,0.106535324504203,0.106535324504203,-105.0028395,39.7289078,-105.004084,39.7289511
-16174,9840,7201,0.0108095014749508,0.0108095014749508,-104.9868416,39.693104,-104.9868436,39.6930068
-16239,9856,7742,0.4032601166124,0.4032601166124,-104.9541161,39.6857099,-104.954108,39.6893365
-16240,7742,5837,0.199863858168715,0.199863858168715,-104.954108,39.6893365,-104.9540973,39.6911339
-15881,8762,9238,0.022425928034548,0.022425928034548,-105.0451798,39.7355292,-105.0454319,39.7354736
-16327,3906,3134,0.109247651866168,0.109247651866168,-104.9634455,39.7619888,-104.9647236,39.7619908
-16328,3134,5403,0.105230091275359,0.105230091275359,-104.9647236,39.7619908,-104.9659547,39.7619898
-17203,10075,10076,0.206234100938924,0.206234100938924,-104.9688448,39.6965282,-104.9687509,39.6946749
-17253,5918,917,0.179236073493399,0.179236073493399,-104.9861275,39.730436,-104.9861344,39.7320479
-18223,1695,6884,0.201956855870188,0.201956855870188,-105.0434467,39.7675662,-105.0434307,39.76575
-15286,3187,9268,0.0103389762120735,0.0103389762120735,-104.946376,39.7114762,-104.946452,39.7115485
-19421,34,3533,0.2073108703911,0.2073108703911,-104.982156,39.7002709,-104.982132,39.6984066
-19436,6852,10490,0.151686039209942,0.151686039209942,-104.9881056,39.7102414,-104.9897131,39.7108173
-19663,10609,9366,0.0532084205099813,0.0532084205099813,-105.0211243,39.7697539,-105.0211194,39.7692754
-19847,10658,7133,0.20071321213787,0.20071321213787,-105.0387333,39.7365995,-105.0387146,39.7347945
-19953,7857,10414,0.0579007631193554,0.0579007631193554,-104.992831,39.7230021,-104.992154,39.7230042
-19293,10471,8765,0.117981892754207,0.117981892754207,-104.9888451,39.7389629,-104.9902249,39.7389566
-19987,9727,10653,0.0514452608394938,0.0514452608394938,-105.039304,39.7384682,-105.0399056,39.7384617
-19988,10653,1103,0.0505009558673589,0.0505009558673589,-105.0399056,39.7384617,-105.0404962,39.738465
-15432,9598,7965,0.00918826645895189,0.00918826645895189,-104.9998109,39.7420623,-104.999898,39.7420139
-15465,9615,9616,0.0488173542586425,0.0488173542586425,-105.0015275,39.7433678,-105.0011333,39.7436854
-15505,2286,4494,0.207036482148074,0.207036482148074,-105.0028141,39.740161,-105.0052335,39.7402363
-18430,7784,10291,0.0493825781706533,0.0493825781706533,-105.039294,39.7625616,-105.0387163,39.7625667
-15468,7963,9610,0.0129310975383002,0.0129310975383002,-105.0005879,39.7441349,-105.000479,39.7442156
-15643,9669,8703,0.0154036792176203,0.0154036792176203,-104.9406749,39.7582947,-104.9404947,39.7582947
-15293,9561,9563,0.0354006218838869,0.0354006218838869,-104.941269,39.7069549,-104.9409901,39.7071901
-15662,5995,7675,0.101107003151938,0.101107003151938,-104.9257668,39.7583774,-104.924584,39.7583757
-15469,9610,9613,0.00340267268464027,0.00340267268464027,-105.000479,39.7442156,-105.0004503,39.7442368
-15685,3450,6014,0.102083800598865,0.102083800598865,-104.9461569,39.7178084,-104.9449634,39.7178023
-18613,9261,4049,0.17355432372221,0.17355432372221,-105.0355223,39.7197001,-105.0355145,39.7181393
-15707,8686,8810,0.0279306326987703,0.0279306326987703,-104.9497874,39.7178534,-104.9500622,39.7177177
-15471,9606,8892,0.117003908235376,0.117003908235376,-105.0007281,39.7441165,-105.0008068,39.745167
-15762,2940,6814,0.0992967316903301,0.0992967316903301,-104.9257898,39.7162499,-104.9246289,39.7162454
-15764,6595,9701,0.0232598991470647,0.0232598991470647,-105.0377569,39.7329864,-105.0380289,39.7329878
-14656,9410,9411,0.19733052173904,0.19733052173904,-105.015841,39.75954,-105.0180024,39.7601634
-20261,10720,5750,0.00799491979378441,0.00799491979378441,-105.0450567,39.772877,-105.0450566,39.7729489
-2336,1153,2328,0.201597448584961,0.201597448584961,-104.9240347,39.7637955,-104.9240271,39.7656085
-17300,8716,8745,0.199099643459498,0.199099643459498,-104.9622811,39.6929794,-104.9622978,39.6947699
-19471,10515,10516,0.00520398584376517,0.00520398584376517,-104.9902726,39.7086173,-104.9902729,39.7085705
-20611,10819,10828,0.0109320789190355,0.0109320789190355,-105.0192728,39.7586316,-105.0192706,39.7587299
-20612,10828,10821,0.0197366861798755,0.0197366861798755,-105.0192706,39.7587299,-105.0191892,39.758896
-20613,10821,10870,0.0252155503065758,0.0252155503065758,-105.0191892,39.758896,-105.0188943,39.7588905
-478,480,212,0.0356029775534751,0.0356029775534751,-104.9669782,39.7796681,-104.9665616,39.779672
-15859,9740,9707,0.0569780852958723,0.0569780852958723,-105.0401452,39.7312615,-105.039492,39.7313626
-515,509,510,0.286655598001641,0.286655598001641,-104.9514881,39.747496,-104.9547886,39.7479501
-520,514,515,0.226862534758366,0.226862534758366,-105.0251054,39.7238769,-105.0224999,39.7242598
-15253,9545,9538,0.0260796874031177,0.0260796874031177,-104.9353544,39.7054988,-104.9352077,39.7057044
-624,614,615,0.101063162513791,0.101063162513791,-104.9929396,39.7368669,-104.9941215,39.7368616
-19463,10483,10508,0.019159575222575,0.019159575222575,-104.9902592,39.7100937,-104.9902611,39.7099214
-17219,3199,3087,0.202098851695834,0.202098851695834,-104.9775204,39.7110879,-104.9775097,39.7129054
-702,696,697,0.1055651557861,0.1055651557861,-104.9500677,39.7419774,-104.9488331,39.7419679
-15544,9645,9646,0.00692347068679982,0.00692347068679982,-104.9867889,39.7267325,-104.9868344,39.726681
-776,778,779,0.103928492069641,0.103928492069641,-105.023849,39.7020679,-105.0250638,39.7020728
-15955,6396,500,0.195346208359328,0.195346208359328,-105.0022548,39.7147281,-105.0016511,39.7130338
-913,927,928,0.0495542499145439,0.0495542499145439,-104.9792571,39.7320337,-104.9786778,39.7320223
-915,929,930,0.0493548663548942,0.0493548663548942,-104.9781467,39.7320382,-104.9775696,39.7320445
-15957,9767,9768,0.0474477023795114,0.0474477023795114,-105.0006962,39.7116024,-105.0005192,39.711198
-932,947,948,0.100759864187185,0.100759864187185,-104.9540658,39.7320945,-104.9528876,39.7321058
-15960,9770,7450,0.0160716244910599,0.0160716244910599,-104.999001,39.7075478,-104.9991888,39.7075519
-955,967,968,0.0165679791310418,0.0165679791310418,-104.9838014,39.7234262,-104.9837585,39.7235715
-957,969,970,0.197449816642368,0.197449816642368,-104.9835112,39.7801693,-104.9835185,39.781945
-15913,9240,9745,0.0339191222144473,0.0339191222144473,-105.042453,39.716655,-105.0428433,39.716601
-980,991,992,0.138684932577873,0.138684932577873,-104.9740667,39.720134,-104.974036,39.718887
-15891,9002,7513,0.0667178592447727,0.0667178592447727,-105.0410599,39.7349868,-105.0416463,39.7353826
-1003,1016,1017,0.039629871856248,0.039629871856248,-104.9622539,39.7331056,-104.9622539,39.733462
-1004,1017,1018,0.176155002789907,0.176155002789907,-104.9622539,39.733462,-104.9622539,39.7350462
-19469,10513,10514,0.0200709923319022,0.0200709923319022,-104.9902701,39.7089743,-104.9902714,39.7087938
-16388,9459,9771,0.0286077698371324,0.0286077698371324,-104.9714714,39.7030996,-104.9717383,39.7032546
-1087,1103,1104,0.338644304966299,0.338644304966299,-105.0404962,39.738465,-105.0404924,39.7415105
-17156,3091,4971,0.202252452796884,0.202252452796884,-104.9751708,39.7128876,-104.9751706,39.7147065
-16103,255,8239,0.267325536990832,0.267325536990832,-104.9534054,39.7800114,-104.9502774,39.7799784
-1170,1186,1187,0.0990780990020656,0.0990780990020656,-104.9648143,39.7271028,-104.9636558,39.7271103
-16337,8026,3444,0.219522804846043,0.219522804846043,-104.9488251,39.7617626,-104.9462569,39.7617553
-1298,1323,1324,0.104021267127805,0.104021267127805,-105.0408805,39.7133731,-105.0420966,39.7133724
-1299,1324,1325,0.0988550932780109,0.0988550932780109,-105.0420966,39.7133724,-105.0432523,39.7133745
-16392,9847,9876,0.0466572032639634,0.0466572032639634,-104.9699755,39.7028786,-104.9705085,39.7029675
-1322,1347,1348,0.145300158256776,0.145300158256776,-104.9771684,39.7690078,-104.9759324,39.769905
-387,389,390,0.101909828504342,0.101909828504342,-105.0001337,39.7136621,-105.0008375,39.7144016
-19511,10536,10537,0.0367294544686212,0.0367294544686212,-104.9879104,39.7088024,-104.9882735,39.7089787
-1469,1489,1490,0.0976691429125615,0.0976691429125615,-105.0015377,39.694864,-105.0026792,39.6948706
-12005,8512,8049,0.105397118565585,0.105397118565585,-104.9875407,39.7588984,-104.9866649,39.7595656
-18733,7646,6209,0.175022021354251,0.175022021354251,-105.0331112,39.7277125,-105.0331036,39.7261385
-16766,5003,7290,0.0493746723595829,0.0493746723595829,-104.9542392,39.7014907,-104.9546694,39.7017867
-1495,1515,1473,0.1629816039782,0.1629816039782,-104.9267914,39.6961177,-104.9248865,39.6961248
-1497,1516,1517,0.202642438735294,0.202642438735294,-104.9746066,39.7147099,-104.9745809,39.7128876
-16788,10012,8649,0.310114997807766,0.310114997807766,-105.0057345,39.7494516,-105.0092259,39.7486951
-1549,1574,1575,0.0819858846366358,0.0819858846366358,-105.0360845,39.6869978,-105.0369943,39.687229
-1550,1575,1576,0.0787364050378914,0.0787364050378914,-105.0369943,39.687229,-105.0378698,39.6874469
-12359,8664,8670,0.00994780391809775,0.00994780391809775,-105.0123703,39.7528644,-105.0123272,39.7529475
-16806,9858,3171,0.0510524682713306,0.0510524682713306,-104.9540893,39.6965849,-104.9534926,39.6965864
-1570,1597,1598,0.101896558922667,0.101896558922667,-105.0140815,39.6999614,-105.0137725,39.6990764
-2686,2646,2647,0.164307180037452,0.164307180037452,-104.9522198,39.7241312,-104.952204,39.7256088
-17103,9923,330,0.250512453112542,0.250512453112542,-104.9542113,39.7438103,-104.9522566,39.7454886
-1650,1677,1678,0.13227170643909,0.13227170643909,-105.0158682,39.7680616,-105.0174158,39.7680606
-11530,810,811,0.199368445906152,0.199368445906152,-105.0276079,39.7554276,-105.0299401,39.7554211
-16952,10036,10037,0.00823596195269871,0.00823596195269871,-105.0167198,39.7560071,-105.0167413,39.7559349
-1704,1725,1726,0.0532102629650272,0.0532102629650272,-105.0179828,39.6910268,-105.0185407,39.6908154
-17039,9210,8988,0.00924605732532601,0.00924605732532601,-105.0192694,39.7575006,-105.0192467,39.7575819
-1762,1487,1782,0.108567137541803,0.108567137541803,-104.9874337,39.6948003,-104.986165,39.6947828
-14689,2798,2868,0.199650986040528,0.199650986040528,-104.971199,39.7272868,-104.9712042,39.7290823
-17136,4412,4425,0.202602949014775,0.202602949014775,-104.9763723,39.7038488,-104.9763417,39.7056707
-17489,472,4654,0.0574342005254488,0.0574342005254488,-105.0184425,39.7479196,-105.0189639,39.7475939
-1935,1949,1223,0.041131087786823,0.041131087786823,-105.012837,39.738513,-105.012356,39.7385086
-1937,1950,1951,0.0773266220673917,0.0773266220673917,-105.005245,39.7384018,-105.006149,39.738421
-16304,2826,2827,0.0584380832256012,0.0584380832256012,-104.9718283,39.6983529,-104.9721964,39.6979102
-17962,10235,5193,0.0148018460000789,0.0148018460000789,-104.9880993,39.7242556,-104.9880966,39.7241225
-2187,2187,2188,0.0698088769426891,0.0698088769426891,-105.0159723,39.7369102,-105.0159468,39.7375377
-17834,10187,10188,0.0373456729353608,0.0373456729353608,-105.0006185,39.7636303,-105.000993,39.7638033
-17023,10058,10059,0.043764797810192,0.043764797810192,-105.0171608,39.7532718,-105.0176702,39.753311
-2261,2261,2262,0.20174624930555,0.20174624930555,-104.930525,39.7674191,-104.9305079,39.7692334
-20285,10701,10709,0.0172154433985116,0.0172154433985116,-105.0447555,39.7732732,-105.0445556,39.7732923
-16421,3331,3358,0.0229870189622456,0.0229870189622456,-104.9693109,39.7020309,-104.9695281,39.7021526
-20297,5579,7524,0.0531120067375217,0.0531120067375217,-105.0439692,39.777017,-105.0433477,39.777017
-12353,8669,8661,0.00857375962495721,0.00857375962495721,-105.0124521,39.7523897,-105.0123532,39.7524025
-16657,3462,3464,0.173665424327281,0.173665424327281,-104.9862758,39.7399191,-104.9872522,39.7385496
-19565,10567,7463,0.00795043725476521,0.00795043725476521,-104.9897546,39.7076211,-104.9897546,39.7075496
-17162,5087,5107,0.202243070877092,0.202243070877092,-104.9740434,39.6911697,-104.9740336,39.6929885
-19034,10159,9497,0.0427022948506461,0.0427022948506461,-104.9503671,39.7793277,-104.949868,39.7793088
-20744,9001,10918,0.332184959452437,0.332184959452437,-105.0253805,39.7605003,-105.0286822,39.762076
-20748,10921,10922,0.0509227801768603,0.0509227801768603,-105.0292505,39.7620502,-105.0298462,39.7620563
-20749,10923,10924,0.18669804780169,0.18669804780169,-105.0382061,39.7620456,-105.0382156,39.7603666
-20750,10925,10926,0.0392592111051346,0.0392592111051346,-105.035831,39.7621995,-105.0362903,39.7621997
-20752,10927,10928,0.00711510327217607,0.00711510327217607,-105.0267252,39.7609466,-105.0267992,39.7609759
-20754,10929,10930,0.0834966641757845,0.0834966641757845,-105.0299581,39.7621958,-105.0299611,39.7629467
-20756,10931,10932,0.0408755067283247,0.0408755067283247,-105.0352067,39.7621947,-105.0356849,39.762197
-20758,10933,10934,0.0399346912680156,0.0399346912680156,-105.0363976,39.7621959,-105.0368648,39.7621971
-20760,10935,10936,0.0903151185359097,0.0903151185359097,-105.0370035,39.7621946,-105.0380601,39.7621908
-20762,10937,8302,0.00392992290489043,0.00392992290489043,-105.0266441,39.7609098,-105.0266827,39.760929
-20763,8302,10927,0.00412640673301695,0.00412640673301695,-105.0266827,39.760929,-105.0267252,39.7609466
-20765,10918,3754,0.00609979968071289,0.00609979968071289,-105.0286822,39.762076,-105.028727,39.7621187
-20766,3754,10938,0.00661123306657495,0.00661123306657495,-105.028727,39.7621187,-105.028778,39.7621634
-20768,10920,7783,0.00949225948867298,0.00949225948867298,-105.0391814,39.7621915,-105.0392924,39.7621941
-20769,7783,10939,0.00900064827794335,0.00900064827794335,-105.0392924,39.7621941,-105.0393977,39.762194
-20771,10940,3415,0.00746326017722055,0.00746326017722055,-105.0345162,39.7622208,-105.0346035,39.762222
-20772,3415,10941,0.00571991053425525,0.00571991053425525,-105.0346035,39.762222,-105.0346704,39.7622208
-20774,10938,10942,0.117980886182769,0.117980886182769,-105.028778,39.7621634,-105.0279694,39.7630233
-20776,10941,10943,0.040800141538403,0.040800141538403,-105.0346704,39.7622208,-105.0351465,39.7621945
-20778,10929,8910,0.00644678344686978,0.00644678344686978,-105.0299581,39.7621958,-105.0300335,39.7621944
-20779,8910,10944,0.00853909895805364,0.00853909895805364,-105.0300335,39.7621944,-105.0301334,39.7621946
-20781,10926,10280,0.00413065470277064,0.00413065470277064,-105.0362903,39.7621997,-105.0363386,39.7622009
-20782,10280,10933,0.00507364819278473,0.00507364819278473,-105.0363386,39.7622009,-105.0363976,39.7621959
-16513,9922,1630,0.0152212141119797,0.0152212141119797,-105.0040915,39.7422329,-105.0040598,39.7420982
-16537,3671,9932,0.221180884679333,0.221180884679333,-104.9763685,39.7474986,-104.9763549,39.7494877
-16539,9933,7834,0.139783679739911,0.139783679739911,-104.9763678,39.7507423,-104.9763093,39.7519986
-16790,10013,7828,0.227723092786938,0.227723092786938,-105.0114923,39.7476921,-105.0134825,39.746331
-18645,1318,5867,0.177222990129465,0.177222990129465,-105.0378936,39.7133724,-105.0378886,39.7149662
-16960,10042,10043,0.0112267703364208,0.0112267703364208,-105.0160419,39.7555757,-105.0160494,39.7554749
-17266,3520,4261,0.200318193124263,0.200318193124263,-104.961154,39.6983849,-104.9611486,39.6965834
-18444,10290,1124,0.0512555936349529,0.0512555936349529,-105.0410717,39.7607688,-105.0404721,39.7607638
-17645,7,9825,0.783906819132393,0.783906819132393,-104.9443453,39.7800941,-104.9535187,39.7801156
-18721,5864,1312,0.178403401011926,0.178403401011926,-105.0343073,39.7149733,-105.0342968,39.7133689
-18408,6096,10287,0.0607868213781131,0.0607868213781131,-105.0292309,39.760844,-105.0292196,39.7613906
-17821,10187,10188,0.0373456729353608,0.0373456729353608,-105.0006185,39.7636303,-105.000993,39.7638033
-17849,2817,1418,0.198773063708036,0.198773063708036,-104.9993302,39.7801544,-104.9993559,39.7819419
-17914,4748,4144,0.180736428235498,0.180736428235498,-104.9856194,39.7225378,-104.9856225,39.7209124
-17915,4144,2362,0.17239723292509,0.17239723292509,-104.9856225,39.7209124,-104.9856171,39.719362
-18664,5184,5652,0.105551381348891,0.105551381348891,-105.0378224,39.7245345,-105.0378346,39.7254837
-18600,10333,10334,0.176228489643034,0.176228489643034,-105.0255419,39.7245857,-105.027524,39.725019
-18763,10341,10340,0.0478284118767837,0.0478284118767837,-105.0049362,39.7395329,-105.0043791,39.7395716
-18822,10356,10117,0.120644655146847,0.120644655146847,-105.0153708,39.7415577,-105.0153883,39.7404728
-12967,1825,1881,0.094094502294363,0.094094502294363,-105.0069351,39.7456267,-105.0074729,39.746365
-19280,10465,10466,0.126391742395325,0.126391742395325,-104.9873778,39.7399976,-104.988856,39.7399993
-19156,8422,10431,0.296704595839795,0.296704595839795,-105.0135792,39.7398604,-105.0144289,39.7424475
-19440,7907,10492,0.0345487307061229,0.0345487307061229,-104.9911419,39.7111606,-104.991144,39.7108499
-20295,10709,10710,0.0460287189373458,0.0460287189373458,-105.0445556,39.7732923,-105.0441026,39.7735162
-3578,3435,3436,0.0484142710611121,0.0484142710611121,-105.0346033,39.7779525,-105.0346033,39.7783879
-3579,3436,2495,0.0837858518069818,0.0837858518069818,-105.0346033,39.7783879,-105.0346,39.7791414
-3580,2495,3437,0.120116992356444,0.120116992356444,-105.0346,39.7791414,-105.0346118,39.7802216
-3581,3437,2842,0.00242442592962248,0.00242442592962248,-105.0346118,39.7802216,-105.0346113,39.7802434
-14124,506,3659,0.275685944218073,0.275685944218073,-104.9486568,39.747653,-104.9461809,39.7460646
-16901,3513,74,0.203700975919817,0.203700975919817,-104.9657993,39.6983855,-104.9657864,39.7002174
-18139,6038,10260,0.200840451178757,0.200840451178757,-105.0164173,39.7856269,-105.0164142,39.7874331
-19824,7641,5603,0.172193293465978,0.172193293465978,-105.0009116,39.7273175,-105.0016041,39.7258634
-19832,10652,10653,0.149094174776889,0.149094174776889,-105.0399184,39.7398025,-105.0399056,39.7384617
-16543,3555,814,0.153171011691858,0.153171011691858,-104.9751506,39.7546225,-104.9751505,39.753245
-20427,10755,10788,0.051994279761698,0.051994279761698,-105.0213448,39.7585398,-105.0218514,39.7587986
-11503,6094,2973,0.264851184287827,0.264851184287827,-105.027568,39.7608513,-105.0275907,39.7584695
-11438,8034,511,0.21998121248842,0.21998121248842,-105.0287237,39.7840235,-105.0312479,39.7836347
-16767,7290,3183,0.0591297362625136,0.0591297362625136,-104.9546694,39.7017867,-104.955269,39.7020512
-20517,10806,10844,0.0093521291785604,0.0093521291785604,-105.0163557,39.7585125,-105.0164651,39.7585116
-18290,6889,6752,0.139920838374264,0.139920838374264,-105.0259388,39.7651274,-105.0275758,39.7651202
-11434,8077,8253,0.0508611139110148,0.0508611139110148,-105.0348588,39.7833346,-105.0342653,39.7832999
-20513,10060,10809,0.00760770059759869,0.00760770059759869,-105.0193133,39.7576622,-105.0193936,39.7576917
-18366,7716,7754,0.0519727898310098,0.0519727898310098,-105.0259442,39.7669727,-105.0259422,39.7665053
-11784,8036,2685,0.144743408596787,0.144743408596787,-104.9787817,39.7535131,-104.9799803,39.7525937
-11570,8321,7713,0.150502362587478,0.150502362587478,-105.0304907,39.7580283,-105.0304918,39.7566748
-18376,8353,6069,0.193914067776721,0.193914067776721,-105.0398199,39.7838754,-105.039828,39.7856193
-12066,8533,8534,0.0445577347958965,0.0445577347958965,-104.9542138,39.7458945,-104.9544306,39.7462589
-16678,9979,9981,0.0909471727810372,0.0909471727810372,-105.0090565,39.7415049,-105.0080856,39.741839
-20808,10948,8326,0.017351380837649,0.017351380837649,-105.0291285,39.7622441,-105.029018,39.7621132
-13031,590,8926,0.147745966959296,0.147745966959296,-104.9910794,39.7792543,-104.989367,39.779071
-18483,9138,9139,0.0109683239632665,0.0109683239632665,-105.0432544,39.7511117,-105.0431263,39.7511062
-16502,3167,9925,0.137835608828632,0.137835608828632,-105.00401,39.7438456,-105.004838,39.7449092
-16961,10043,10044,0.075399787572802,0.075399787572802,-105.0160494,39.7554749,-105.0165756,39.7549307
-17393,67,3508,0.205321571793414,0.205321571793414,-104.9681458,39.7002288,-104.9681486,39.6983823
-17395,68,7304,0.202979892499458,0.202979892499458,-104.9680761,39.7002293,-104.9680922,39.7020547
-17650,303,395,0.11664951410225,0.11664951410225,-104.9380643,39.7800108,-104.9367017,39.7800737
-18596,10330,1845,0.0286669821878414,0.0286669821878414,-105.0312337,39.7211002,-105.031231,39.721358
-18996,5601,9265,0.00587624613864547,0.00587624613864547,-105.0016014,39.7209311,-105.0016701,39.7209304
-19117,402,10431,0.249198506812358,0.249198506812358,-105.0124556,39.7407982,-105.0144289,39.7424475
-19489,4703,10441,0.0209493756701814,0.0209493756701814,-104.9883469,39.709334,-104.9883481,39.7091456
-19929,9514,10680,0.206733607617385,0.206733607617385,-105.0375666,39.7403293,-105.0375666,39.7384701
-20583,10849,9338,0.00790665036605531,0.00790665036605531,-105.0250742,39.7612881,-105.0251667,39.7612881
-20193,10707,9813,0.31051590829715,0.31051590829715,-104.9886248,39.7811587,-104.9922437,39.7814112
-19738,9472,4893,0.184563607099297,0.184563607099297,-104.9456312,39.7367775,-104.9456205,39.7351177
-19739,4893,9418,0.161581410791365,0.161581410791365,-104.9456205,39.7351177,-104.9456339,39.7336646
-19740,9418,955,0.17512104217346,0.17512104217346,-104.9456339,39.7336646,-104.9456366,39.7320897
-19741,955,8865,0.17730267158364,0.17730267158364,-104.9456366,39.7320897,-104.9456473,39.7304952
-19745,4908,6614,0.202025102521769,0.202025102521769,-104.9338415,39.7346803,-104.9338724,39.736497
-19746,6614,9456,0.193906231686937,0.193906231686937,-104.9338724,39.736497,-104.9338436,39.7382407
-19747,9456,10644,0.207835763228408,0.207835763228408,-104.9338436,39.7382407,-104.933817,39.7401097
-19748,10644,647,0.139231068042996,0.139231068042996,-104.933817,39.7401097,-104.9337694,39.7413613
-19807,7868,3718,0.103509284327612,0.103509284327612,-104.9969607,39.7193475,-104.9969447,39.7184167
-19756,9305,1209,0.168197350020426,0.168197350020426,-104.942383,39.7256045,-104.9423696,39.7271171
-19906,9507,10678,0.206369047895258,0.206369047895258,-105.0328316,39.7403209,-105.0328432,39.738465
-17115,582,4052,0.0200066549889732,0.0200066549889732,-104.9577579,39.7479349,-104.9579299,39.7478129
-20290,10700,10701,0.0224013855081139,0.0224013855081139,-105.0445771,39.7731256,-105.0447555,39.7732732
-15856,9738,9733,0.00602831355714784,0.00602831355714784,-105.0423031,39.7306156,-105.0423259,39.7305643
-16390,9811,3033,0.00758642111179705,0.00758642111179705,-104.9701397,39.7026686,-104.9700513,39.702674
-17208,234,10075,0.0065072113132931,0.0065072113132931,-104.9688514,39.6965865,-104.9688448,39.6965282
-18209,3991,6766,0.202297976338321,0.202297976338321,-105.0299548,39.7716681,-105.0275892,39.7716046
-314,322,323,0.0362830323344,0.0362830323344,-105.0158044,39.7515055,-105.0156986,39.7518215
-17944,10224,7938,0.0484797623817722,0.0484797623817722,-104.9867731,39.7252057,-104.9868244,39.7256399
-11519,657,658,0.200633396770054,0.200633396770054,-105.0322612,39.758985,-105.0299141,39.7589753
-18400,7187,1425,0.131517435591527,0.131517435591527,-105.0386558,39.7832674,-105.0386719,39.7820847
-16448,9905,9906,0.00998689980616885,0.00998689980616885,-104.9731684,39.7001285,-104.9731572,39.7002179
-1705,1726,1727,0.0778502303245676,0.0778502303245676,-105.0185407,39.6908154,-105.0194505,39.690822
-19817,3729,10647,0.0543545423636727,0.0543545423636727,-105.0028319,39.7300118,-105.0021963,39.7300097
-20793,10938,8908,0.0180004191395181,0.0180004191395181,-105.028778,39.7621634,-105.0289792,39.7622112
-19241,8221,10460,0.0833729876311698,0.0833729876311698,-104.9936301,39.74071,-104.9942613,39.7401385
-18639,5180,2582,0.17723417320802,0.17723417320802,-105.0345542,39.7245247,-105.0345489,39.7229308
-20291,10701,10703,0.028889965052559,0.028889965052559,-105.0447555,39.7732732,-105.0450568,39.773391
-19963,4945,7404,0.157747728004848,0.157747728004848,-104.9951594,39.7179476,-104.9945842,39.7165997
-5109,4628,4629,0.132844583260552,0.132844583260552,-105.0189404,39.7729351,-105.0189408,39.7741298
-13926,8916,8922,0.136369708465648,0.136369708465648,-104.9907275,39.7728705,-104.9912716,39.7717176
-19964,7404,10415,0.200029723937468,0.200029723937468,-104.9945842,39.7165997,-104.9945762,39.7148008
-12274,8517,8518,0.0318537260898596,0.0318537260898596,-105.0069509,39.7552605,-105.0071312,39.7555112
-302,310,311,0.0714603355500818,0.0714603355500818,-104.9792332,39.7786848,-104.9786416,39.779139
-307,315,316,0.0430385391585726,0.0430385391585726,-105.0132442,39.7253524,-105.0137199,39.7254787
-333,333,334,0.130005791781119,0.130005791781119,-104.9270337,39.7763519,-104.9284284,39.775885
-501,338,339,0.0809671757461818,0.0809671757461818,-104.9880444,39.7401037,-104.9873725,39.7395906
-337,340,336,0.244398847800565,0.244398847800565,-104.9379355,39.7804643,-104.9390909,39.7824749
-339,341,342,0.368758396632831,0.368758396632831,-105.0154562,39.7336245,-105.0138715,39.7367088
-341,343,344,0.267836247641829,0.267836247641829,-105.0125925,39.7554572,-105.0150427,39.753956
-1553,1578,1579,0.0969614959298273,0.0969614959298273,-105.0401129,39.6876594,-105.0411657,39.6879819
-360,362,363,0.19757055700413,0.19757055700413,-105.0051577,39.6892299,-105.0049362,39.6874613
-361,363,358,0.235481235248911,0.235481235248911,-105.0049362,39.6874613,-105.0034646,39.6856718
-365,366,367,0.102920688901431,0.102920688901431,-104.9601224,39.7799975,-104.9589982,39.7796654
-374,376,377,0.135433574317766,0.135433574317766,-105.0213674,39.7753467,-105.0213949,39.7741289
-376,378,379,0.134391053348824,0.134391053348824,-105.019844,39.7729352,-105.019823,39.7717267
-485,478,486,0.209563350313202,0.209563350313202,-105.0170811,39.7459783,-105.0180607,39.7477059
-489,489,490,0.0633762863456435,0.0633762863456435,-104.9407865,39.7473869,-104.9415277,39.7473958
-491,491,492,0.0663732872105415,0.0663732872105415,-104.9407607,39.7492347,-104.9415359,39.749202
-493,493,494,0.169203096380544,0.169203096380544,-104.994193,39.7810897,-104.992407,39.7804327
-495,5,495,0.258130691528307,0.258130691528307,-104.9373334,39.780183,-104.9399882,39.7812905
-496,495,496,0.152370734557831,0.152370734557831,-104.9399882,39.7812905,-104.9404434,39.7826154
-523,518,519,0.337507977198885,0.337507977198885,-104.9409175,39.7837817,-104.9416292,39.7807961
-525,520,521,0.106662672722042,0.106662672722042,-105.0028259,39.7312673,-105.0040731,39.7312549
-527,522,523,0.0555974633225448,0.0555974633225448,-104.947535,39.703187,-104.947535,39.702687
-529,524,525,0.0282350762510443,0.0282350762510443,-104.9493835,39.780399,-104.9497096,39.7804399
-530,525,526,0.0218806529722405,0.0218806529722405,-104.9497096,39.7804399,-104.9499002,39.7803085
-532,527,397,0.320431501428441,0.320431501428441,-105.009688,39.7575578,-105.0131625,39.7564763
-11515,270,528,0.19992365959325,0.19992365959325,-105.029923,39.7598619,-105.0322618,39.7598749
-535,529,530,0.455513641378482,0.455513641378482,-105.0102365,39.7542807,-105.0085506,39.7581668
-537,531,532,0.375956762810707,0.375956762810707,-105.0148477,39.7535401,-105.010541,39.7542249
-11371,7972,290,0.0119699038475456,0.0119699038475456,-105.0052958,39.7614779,-105.0053845,39.7613946
-14734,4868,2218,0.161837248854237,0.161837248854237,-104.9758386,39.7351502,-104.9758646,39.7336949
-6872,5877,5878,0.0844725820315708,0.0844725820315708,-105.0442509,39.6917193,-105.045238,39.6917061
-16249,9860,8753,0.202765718025687,0.202765718025687,-104.9529332,39.6929471,-104.9529431,39.6947706
-16250,8753,9861,0.201364638358659,0.201364638358659,-104.9529431,39.6947706,-104.9529333,39.6965815
-16251,9861,3662,0.165177264018871,0.165177264018871,-104.9529333,39.6965815,-104.9517941,39.6977808
-20720,9398,9340,0.00984702702877527,0.00984702702877527,-105.0252853,39.7620928,-105.0251701,39.7620923
-16256,9863,8751,0.202603541868936,0.202603541868936,-104.9552587,39.6929589,-104.9552399,39.6947809
-16260,3650,88,0.266027674120579,0.266027674120579,-104.957148,39.7023062,-104.9586741,39.7002217
-16261,88,3524,0.203075294530693,0.203075294530693,-104.9586741,39.7002217,-104.9586741,39.6983954
-16262,3524,9864,0.20046430405241,0.20046430405241,-104.9586741,39.6983954,-104.9586848,39.6965926
-16263,9864,6517,0.135079896017257,0.135079896017257,-104.9586848,39.6965926,-104.9581176,39.6954589
-19523,6855,10544,0.00712022213135496,0.00712022213135496,-104.9888037,39.7102452,-104.9888064,39.7101812
-19524,10544,10545,0.0729342151704198,0.0729342151704198,-104.9888064,39.7101812,-104.9888118,39.7095253
-19526,10427,10546,0.0076995400840501,0.0076995400840501,-104.9883457,39.7095201,-104.9884357,39.7095211
-19527,10546,10545,0.0321755552809886,0.0321755552809886,-104.9884357,39.7095211,-104.9888118,39.7095253
-19528,10545,10547,0.0194542890583841,0.0194542890583841,-104.9888118,39.7095253,-104.9890392,39.7095279
-19529,10547,10548,0.0207030648178635,0.0207030648178635,-104.9890392,39.7095279,-104.9892812,39.7095305
-19530,10548,10543,0.0190435691175833,0.0190435691175833,-104.9892812,39.7095305,-104.9895038,39.709533
-19531,10543,10549,0.0747704686946873,0.0747704686946873,-104.9895038,39.709533,-104.9897237,39.7101838
-19532,10549,6859,0.00739470505760699,0.00739470505760699,-104.9897237,39.7101838,-104.9897244,39.7102503
-19543,10555,10556,0.0878912692065361,0.0878912692065361,-104.9890509,39.7084053,-104.9890591,39.7076149
-19544,10556,7460,0.0082175900444136,0.0082175900444136,-104.9890591,39.7076149,-104.9890599,39.707541
-11808,8395,2692,0.146729521611774,0.146729521611774,-104.9838316,39.7536605,-104.9826233,39.7545977
-19546,6852,10557,0.00689466829919516,0.00689466829919516,-104.9881056,39.7102414,-104.9880964,39.7101798
-19547,10557,10558,0.00988642805887056,0.00988642805887056,-104.9880964,39.7101798,-104.9880982,39.7100909
-19548,10558,10559,0.0350073244923259,0.0350073244923259,-104.9880982,39.7100909,-104.9881037,39.7097761
-19550,10409,10559,0.0205641181514586,0.0205641181514586,-104.9883441,39.7097759,-104.9881037,39.7097761
-343,345,346,0.0953881878570937,0.0953881878570937,-105.0067949,39.727165,-105.0077031,39.726667
-357,359,360,0.0408490640041322,0.0408490640041322,-105.0015512,39.6890589,-105.0016107,39.6894234
-359,361,362,0.026041104546106,0.026041104546106,-105.0051297,39.6894631,-105.0051577,39.6892299
-19800,8772,7638,0.176309543452907,0.176309543452907,-104.9969955,39.7289027,-104.9969636,39.7273173
-19802,6235,5200,0.174765267300994,0.174765267300994,-104.9969633,39.7256958,-104.9969602,39.7241241
-14862,8517,9439,0.0489472304938478,0.0489472304938478,-105.0069509,39.7552605,-105.0065078,39.7555393
-14864,9387,9440,0.0279990514780242,0.0279990514780242,-105.0032834,39.7589279,-105.0029559,39.7589235
-206,104,218,0.105140809305177,0.105140809305177,-104.9874778,39.7002508,-104.9862918,39.700003
-207,218,219,0.425726992195474,0.425726992195474,-104.9862918,39.700003,-104.9829912,39.6971378
-208,219,220,0.341194420964085,0.341194420964085,-104.9829912,39.6971378,-104.9801989,39.6949471
-564,250,558,0.137167107757782,0.137167107757782,-104.998399,39.69737,-104.996796,39.697349
-566,559,560,0.116737480647973,0.116737480647973,-104.9838121,39.7666622,-104.9837994,39.767712
-570,563,564,0.00248176882120935,0.00248176882120935,-104.9854438,39.7392378,-104.9854426,39.7392155
-571,564,565,0.0167681949380125,0.0167681949380125,-104.9854426,39.7392155,-104.9854426,39.7390647
-573,566,248,0.898480310845601,0.898480310845601,-104.9751917,39.6906986,-104.966468,39.6862015
-577,569,570,0.20355346310439,0.20355346310439,-104.985642,39.6966206,-104.9856433,39.69479
-578,570,571,0.196730394721169,0.196730394721169,-104.9856433,39.69479,-104.9857141,39.6930216
-579,571,572,0.203615183123948,0.203615183123948,-104.9857141,39.6930216,-104.9856956,39.6911905
-580,572,573,0.198181200751108,0.198181200751108,-104.9856956,39.6911905,-104.9857184,39.6894083
-14119,4047,3768,0.167133877022618,0.167133877022618,-104.9449621,39.7476682,-104.9443957,39.7462296
-16964,10030,10041,0.01368783886441,0.01368783886441,-105.0158154,39.755672,-105.0159755,39.75567
-17397,72,7305,0.205159206156883,0.205159206156883,-104.9669067,39.7002209,-104.9669227,39.7020659
-18238,8494,6764,0.145768349374275,0.145768349374275,-105.0258959,39.7706651,-105.0276005,39.7707095
-19608,10515,10585,0.0689638415978994,0.0689638415978994,-104.9902726,39.7086173,-104.9910787,39.7086267
-18764,10340,10339,0.0412859123428405,0.0412859123428405,-105.0043791,39.7395716,-105.0047672,39.7397925
-18823,10117,10113,0.0135016334010227,0.0135016334010227,-105.0153883,39.7404728,-105.0153589,39.7403535
-19106,10358,10371,0.165108727109845,0.165108727109845,-105.0144967,39.7392041,-105.0142451,39.7377319
-19491,10447,10448,0.0188144168916081,0.0188144168916081,-104.9883492,39.7089795,-104.9883503,39.7088103
-20034,9939,10087,0.139116164222915,0.139116164222915,-104.9739728,39.7494793,-104.9739701,39.7507304
-20585,10868,10860,0.0191301130167572,0.0191301130167572,-105.0245651,39.7612868,-105.02457,39.7611148
-16225,9851,8750,0.201618763717288,0.201618763717288,-104.9563865,39.692964,-104.9563891,39.6947772
-16226,8750,9852,0.201631838787549,0.201631838787549,-104.9563891,39.6947772,-104.9563784,39.6965905
-16227,9852,3528,0.200735525849656,0.200735525849656,-104.9563784,39.6965905,-104.9563972,39.6983957
-16228,3528,92,0.203732802229698,0.203732802229698,-104.9563972,39.6983957,-104.9565605,39.7002236
-16230,9853,7739,0.398547510805713,0.398547510805713,-104.9575595,39.6857489,-104.9575425,39.6893331
-16231,7739,5833,0.201507956367007,0.201507956367007,-104.9575425,39.6893331,-104.9575478,39.6911453
-16232,5833,9854,0.202599224942483,0.202599224942483,-104.9575478,39.6911453,-104.9575371,39.6929673
-16233,9854,8749,0.200829688485991,0.200829688485991,-104.9575371,39.6929673,-104.9575317,39.6947734
-16234,8749,9855,0.20199683583572,0.20199683583572,-104.9575317,39.6947734,-104.9575344,39.69659
-16235,9855,3526,0.201154889365918,0.201154889365918,-104.9575344,39.69659,-104.9575478,39.698399
-16236,3526,90,0.202910490655376,0.202910490655376,-104.9575478,39.698399,-104.9575583,39.7002238
-16237,90,3653,0.220628466219896,0.220628466219896,-104.9575583,39.7002238,-104.956048,39.7018321
-16241,5837,9857,0.2019855844315,0.2019855844315,-104.9540973,39.6911339,-104.9540974,39.6929504
-16242,9857,8752,0.20368896268505,0.20368896268505,-104.9540974,39.6929504,-104.9540866,39.6947822
-16243,8752,9858,0.200451227373991,0.200451227373991,-104.9540866,39.6947822,-104.9540893,39.6965849
-16244,9858,3660,0.230907711206458,0.230907711206458,-104.9540893,39.6965849,-104.9525869,39.69831
-16248,5838,9860,0.202297457689378,0.202297457689378,-104.9529386,39.6911278,-104.9529332,39.6929471
-19645,10602,7824,0.0258612340137364,0.0258612340137364,-104.9878742,39.7066509,-104.9875719,39.7066529
-363,364,365,0.559719374351914,0.559719374351914,-104.9703166,39.6886511,-104.9756534,39.6915619
-19907,10678,9721,0.0996291174385701,0.0996291174385701,-105.0328432,39.738465,-105.0334117,39.7376829
-506,500,501,0.0135415609654236,0.0135415609654236,-105.0016511,39.7130338,-105.0014928,39.7130323
-561,555,249,0.135203722470136,0.135203722470136,-104.9967877,39.6982448,-104.998368,39.698242
-11580,1888,1889,0.200666363671928,0.200666363671928,-105.0346054,39.7616798,-105.0322578,39.7616855
-15798,2349,2131,0.0298025813439396,0.0298025813439396,-105.0225811,39.7377111,-105.0228299,39.7378988
-539,533,534,0.0326127113197712,0.0326127113197712,-105.0123604,39.7549991,-105.0126456,39.7551939
-19790,4873,2223,0.160309891999679,0.160309891999679,-104.9724077,39.7351513,-104.972405,39.7337096
-19791,2223,939,0.184480311036498,0.184480311036498,-104.972405,39.7337096,-104.972385,39.7320506
-19793,6601,8056,0.176023947078255,0.176023947078255,-105.0008954,39.7320882,-105.0009061,39.7305052
-18090,1076,4197,0.0860162512015724,0.0860162512015724,-105.009052,39.7857306,-105.0081572,39.7853762
-19867,5588,10668,0.0462472353637014,0.0462472353637014,-105.0439294,39.7354289,-105.0433886,39.7354236
-19868,10668,3867,0.0484404910203503,0.0484404910203503,-105.0433886,39.7354236,-105.0428222,39.7354157
-16756,10007,10009,0.110124788745591,0.110124788745591,-104.9516233,39.6981848,-104.9506326,39.6988171
-20270,10704,10719,0.0406376536123098,0.0406376536123098,-105.0445781,39.7730214,-105.0441026,39.7730223
-20705,10912,9190,0.00712573261129369,0.00712573261129369,-105.0253734,39.7619406,-105.0253671,39.7620045
-18194,10279,8107,0.203288621260674,0.203288621260674,-105.0363572,39.7802082,-105.0363465,39.77838
-20434,10793,8352,0.0594105399024928,0.0594105399024928,-105.023633,39.7596708,-105.024257,39.7599061
-458,461,462,0.198429530791892,0.198429530791892,-104.9888564,39.7783921,-104.9880253,39.7800584
-460,463,464,0.0462542784573108,0.0462542784573108,-104.9733885,39.7038655,-104.9728479,39.7038584
-462,465,466,0.144675049024067,0.144675049024067,-104.939057,39.6947168,-104.9373661,39.6947234
-17120,4175,1798,0.171169073462998,0.171169073462998,-104.9775465,39.6932215,-104.9775097,39.6947606
-464,265,467,0.159364568867095,0.159364568867095,-104.9480386,39.6896766,-104.9480386,39.6911098
-18157,6034,6309,0.201831068920315,0.201831068920315,-105.0129545,39.7856166,-105.0129465,39.7874317
-4816,4421,3998,0.17545447475176,0.17545447475176,-105.0299945,39.7149702,-105.0299945,39.7165481
-4922,4493,4494,0.0159365819430951,0.0159365819430951,-105.0052303,39.740093,-105.0052335,39.7402363
-5210,4702,4703,0.066548442936564,0.066548442936564,-104.987569,39.7093263,-104.9883469,39.709334
-7813,6447,2400,0.0150551554736642,0.0150551554736642,-104.9404516,39.7737178,-104.9404255,39.7738517
-16544,814,7835,0.140306546265127,0.140306546265127,-104.9751505,39.753245,-104.975145,39.7519832
-12308,8643,8644,0.0690537561530006,0.0690537561530006,-105.0079172,39.7541523,-105.0077069,39.7535527
-17649,227,303,0.195568266331611,0.195568266331611,-104.9403515,39.7799498,-104.9380643,39.7800108
-7918,6517,6518,0.0762261509888863,0.0762261509888863,-104.9581176,39.6954589,-104.9581241,39.6947734
-17937,10218,10222,0.0404413602972235,0.0404413602972235,-104.9865379,39.7248787,-104.9867449,39.7252057
-17938,10222,10219,0.0368645715567014,0.0368645715567014,-104.9867449,39.7252057,-104.986739,39.7248742
-8128,6642,6643,0.177723704306915,0.177723704306915,-104.9985895,39.7273172,-104.998623,39.7289153
-17941,10223,10220,0.00249551892827132,0.00249551892827132,-104.9868558,39.7248491,-104.9868576,39.7248715
-17943,10222,10224,0.00241172243246435,0.00241172243246435,-104.9867449,39.7252057,-104.9867731,39.7252057
-8312,6745,6746,0.136482587401898,0.136482587401898,-105.0268172,39.7511856,-105.0268257,39.752413
-18754,7413,5870,0.17727401445854,0.17727401445854,-105.0403103,39.7165576,-105.0402918,39.7149634
-18755,5870,1322,0.17769011554913,0.17769011554913,-105.0402918,39.7149634,-105.0402863,39.7133654
-19718,10634,10631,0.0223829659698328,0.0223829659698328,-105.0040521,39.7345718,-105.0042586,39.7344481
-19728,5372,10636,0.0113147577104563,0.0113147577104563,-105.0036801,39.7337035,-105.0036962,39.7338045
-11655,8352,8354,0.0940321887930874,0.0940321887930874,-105.024257,39.7599061,-105.0236698,39.7606212
-12943,1331,8882,0.0183910567310257,0.0183910567310257,-105.0019226,39.7434049,-105.0018196,39.7432597
-13038,8921,8931,0.0826069320981336,0.0826069320981336,-104.9945399,39.7685832,-104.9953405,39.768167
-15877,9002,8833,0.267177283911404,0.267177283911404,-105.0410599,39.7349868,-105.0441417,39.7353828
-13924,219,9234,0.1533276461132,0.1533276461132,-104.9829912,39.6971378,-104.9818516,39.6960736
-14664,6543,4752,0.198706695176553,0.198706695176553,-104.9723281,39.7237476,-104.9723195,39.7219606
-14064,5103,7930,0.0939071679637344,0.0939071679637344,-104.9499914,39.7083084,-104.949883,39.707468
-15409,9587,9588,0.102439715732603,0.102439715732603,-105.0050252,39.740468,-105.0043197,39.7412126
-17271,7309,3269,0.20118551117184,0.20118551117184,-104.9622856,39.7020498,-104.962291,39.7038591
-19597,10581,10493,0.00740818165509206,0.00740818165509206,-104.9910581,39.7106676,-104.9911447,39.7106683
-17856,10198,10199,0.0985751913110846,0.0985751913110846,-104.9752368,39.7863791,-104.9742929,39.7858694
-17916,2362,5630,0.113519118424065,0.113519118424065,-104.9856171,39.719362,-104.9856145,39.7183411
-17920,5276,3075,0.102745112375949,0.102745112375949,-104.9856735,39.713872,-104.9856788,39.712948
-19227,10451,10452,0.0446144989444803,0.0446144989444803,-104.9904508,39.7418286,-104.9908137,39.7415403
-20035,10087,7837,0.13791526067504,0.13791526067504,-104.9739701,39.7507304,-104.9739674,39.7519707
-418,417,418,0.0816052997413777,0.0816052997413777,-104.9458794,39.7444723,-104.9449438,39.7443271
-20262,5750,10721,0.00796157509542264,0.00796157509542264,-105.0450566,39.7729489,-105.0450564,39.7730205
-3789,1821,3611,0.0958389453890581,0.0958389453890581,-104.9293577,39.7647208,-104.9293567,39.7655827
-3790,3611,2772,0.203476606019223,0.203476606019223,-104.9293567,39.7655827,-104.9293492,39.7674126
-3793,3613,3614,0.132946325644283,0.132946325644283,-104.9293234,39.7702164,-104.9293312,39.771412
-3796,3616,3617,0.204716112848492,0.204716112848492,-104.9804184,39.6930078,-104.9804371,39.6911668
-3797,3617,3618,0.195623928497501,0.195623928497501,-104.9804371,39.6911668,-104.98046,39.6894076
-427,426,427,0.387676950856037,0.387676950856037,-105.0252144,39.7427283,-105.028564,39.7403785
-429,428,429,0.0146752084107322,0.0146752084107322,-104.9949826,39.7671257,-104.9948109,39.7671257
-430,429,430,0.036859949213086,0.036859949213086,-104.9948109,39.7671257,-104.9943797,39.7671201
-431,430,431,0.0704161362424121,0.0704161362424121,-104.9943797,39.7671201,-104.9935559,39.7671283
-432,431,432,0.590519007108071,0.590519007108071,-104.9935559,39.7671283,-104.9902144,39.7717766
-4284,2975,658,0.052473064124837,0.052473064124837,-105.0299157,39.7585034,-105.0299141,39.7589753
-4286,1885,270,0.0500105419976734,0.0500105419976734,-105.0299322,39.7594122,-105.029923,39.7598619
-4287,270,4027,0.0498040073250557,0.0498040073250557,-105.029923,39.7598619,-105.0299108,39.7603097
-4288,4027,4028,0.0589001114271481,0.0589001114271481,-105.0299108,39.7603097,-105.0299124,39.7608394
-4289,4028,4029,0.0431017175700998,0.0431017175700998,-105.0299124,39.7608394,-105.0299179,39.761227
-4360,2497,4085,0.0418616206629569,0.0418616206629569,-105.0102009,39.7838273,-105.0106908,39.7838273
-4362,4086,4087,0.0498519055829618,0.0498519055829618,-105.0112057,39.7838279,-105.0117891,39.7838304
-4375,4097,4098,0.0489802870312836,0.0489802870312836,-105.0187521,39.7838972,-105.0193253,39.7838997
-4376,4098,4099,0.0495757400917575,0.0495757400917575,-105.0193253,39.7838997,-105.0199054,39.783907
-4377,4099,1289,0.0496665540814756,0.0496665540814756,-105.0199054,39.783907,-105.0204845,39.7839453
-4388,1566,4105,0.137573017409453,0.137573017409453,-104.9507995,39.7776799,-104.9507895,39.7789171
-4391,695,4107,0.201385149795677,0.201385149795677,-104.9512663,39.7419839,-104.9512653,39.743795
-4393,4108,4109,0.0199664273987825,0.0199664273987825,-104.9512465,39.7179366,-104.9511309,39.7180926
-14838,3410,8377,0.101986580237,0.101986580237,-105.034614,39.754856,-105.035807,39.7548626
-14839,8377,7446,0.0983251649921582,0.0983251649921582,-105.035807,39.7548626,-105.0369572,39.7548626
-14840,7446,7164,0.102406305295689,0.102406305295689,-105.0369572,39.7548626,-105.0381551,39.754855
-14842,7777,9006,0.0511080596626327,0.0511080596626327,-105.0393054,39.7548506,-105.0399032,39.754857
-14843,9006,1118,0.0498086503332092,0.0498086503332092,-105.0399032,39.754857,-105.0404858,39.7548633
-14844,1118,9427,0.0503946729534928,0.0503946729534928,-105.0404858,39.7548633,-105.0410753,39.7548663
-14845,9427,7495,0.0500441160343634,0.0500441160343634,-105.0410753,39.7548663,-105.0416607,39.7548692
-14846,7495,9428,0.0499148481472719,0.0499148481472719,-105.0416607,39.7548692,-105.0422446,39.7548692
-16340,8082,9873,0.204288977647072,0.204288977647072,-104.9430328,39.7615337,-104.9406644,39.7617801
-16284,2160,2852,0.333640243849923,0.333640243849923,-104.9704959,39.6950911,-104.972242,39.697774
-16319,7334,9870,0.105486497466828,0.105486497466828,-104.9548825,39.7619805,-104.9561166,39.7619811
-16320,9870,3330,0.104529154175209,0.104529154175209,-104.9561166,39.7619811,-104.9573395,39.7619816
-16321,3330,5008,0.105000246042652,0.105000246042652,-104.9573395,39.7619816,-104.9585679,39.7619857
-16322,5008,9871,0.101110660676404,0.101110660676404,-104.9585679,39.7619857,-104.9597508,39.7619888
-16323,9871,6279,0.105691817248501,0.105691817248501,-104.9597508,39.7619888,-104.9609873,39.7619907
-16324,6279,9872,0.052158145666091,0.052158145666091,-104.9609873,39.7619907,-104.9615975,39.7619888
-16325,9872,1044,0.0524997416021315,0.0524997416021315,-104.9615975,39.7619888,-104.9622117,39.7619898
-16326,1044,3906,0.105460879039182,0.105460879039182,-104.9622117,39.7619898,-104.9634455,39.7619888
-16329,5403,7356,0.10569318364656,0.10569318364656,-104.9659547,39.7619898,-104.9671912,39.761995
-16330,7356,6784,0.104889107310835,0.104889107310835,-104.9671912,39.761995,-104.9684183,39.7619991
-16331,6784,5124,0.210810768544514,0.210810768544514,-104.9684183,39.7619991,-104.9708846,39.7620022
-20721,9340,10905,0.00789820611305507,0.00789820611305507,-105.0251701,39.7620923,-105.0250777,39.7620918
-20723,10753,9339,0.007875732855517,0.007875732855517,-105.0250779,39.761939,-105.0251698,39.7619441
-20728,9342,9396,0.0106743790650573,0.0106743790650573,-105.02517,39.7633265,-105.0252844,39.763365
-20729,9396,10915,0.00762676803615786,0.00762676803615786,-105.0252844,39.763365,-105.0253686,39.7633877
-20731,10886,10916,0.00379288018005415,0.00379288018005415,-105.0396293,39.7653159,-105.0396012,39.7652895
-20732,10916,10888,0.0491926355480291,0.0491926355480291,-105.0396012,39.7652895,-105.0396012,39.7648471
-20733,10888,10897,0.0175392611655491,0.0175392611655491,-105.0396012,39.7648471,-105.039396,39.7648479
-20735,5884,5882,0.0407543500383345,0.0407543500383345,-105.026131,39.7635199,-105.0256867,39.7633869
-20739,10916,10896,0.0428179717864665,0.0428179717864665,-105.0396012,39.7652895,-105.0393975,39.7656413
-19515,10538,10539,0.0270370607457707,0.0270370607457707,-104.9881977,39.7087839,-104.9878821,39.7087971
-19519,10540,10541,0.0721562499053708,0.0721562499053708,-104.9885677,39.7101805,-104.9885837,39.7095317
-19520,6858,10542,0.00731747119062453,0.00731747119062453,-104.9894917,39.710249,-104.9894904,39.7101832
-19521,10542,10543,0.072308027249243,0.072308027249243,-104.9894904,39.7101832,-104.9895038,39.709533
-19641,10598,10599,0.0410277962156296,0.0410277962156296,-104.9881774,39.7071587,-104.9879173,39.7068487
-19647,10527,10603,0.00759964014854772,0.00759964014854772,-104.9883695,39.7068128,-104.9882807,39.7068108
-8,8,9,0.136291899256532,0.136291899256532,-105.0236282,39.746344,-105.0252223,39.7463521
-9,9,10,0.137589063327607,0.137589063327607,-105.0252223,39.7463521,-105.0268316,39.7463558
-10,10,11,0.132825874246234,0.132825874246234,-105.0268316,39.7463558,-105.0283851,39.746369
-18420,9372,1692,0.204432374496239,0.204432374496239,-105.0410671,39.769441,-105.0410724,39.7676025
-18421,1692,6881,0.204488584881531,0.204488584881531,-105.0410724,39.7676025,-105.0410645,39.7657635
-279,289,290,0.0346246156131069,0.0346246156131069,-105.0056941,39.7615954,-105.0053845,39.7613946
-280,290,291,0.0090342150661118,0.0090342150661118,-105.0053845,39.7613946,-105.0052999,39.7613459
-287,297,298,0.583705095697001,0.583705095697001,-104.999633,39.7829256,-105.0063925,39.7836829
-288,298,299,0.306214311798175,0.306214311798175,-105.0063925,39.7836829,-105.0099714,39.7835424
-290,300,106,0.00724031766776508,0.00724031766776508,-104.931659,39.700286,-104.931654,39.700221
-16839,9888,10020,0.0079899169832474,0.0079899169832474,-104.9706065,39.7033361,-104.9706252,39.7032657
-292,301,302,0.137922345506014,0.137922345506014,-104.9405292,39.7778793,-104.939982,39.7790462
-293,302,303,0.195856797695859,0.195856797695859,-104.939982,39.7790462,-104.9380643,39.7800108
-295,304,305,0.071509984134022,0.071509984134022,-105.0045998,39.7618374,-105.0052248,39.7614099
-296,305,291,0.00958395052624692,0.00958395052624692,-105.0052248,39.7614099,-105.0052999,39.7613459
-298,306,307,0.132706668323714,0.132706668323714,-105.029097,39.762348,-105.0279141,39.763121
-300,308,309,0.180558406302622,0.180558406302622,-105.0162105,39.7255543,-105.0183133,39.7254091
-13564,3088,497,0.0577004807279618,0.0577004807279618,-105.0149714,39.7291028,-105.0147909,39.7286028
-549,543,426,0.352446625998258,0.352446625998258,-105.0222025,39.7405643,-105.0252144,39.7427283
-552,546,547,0.162031197296959,0.162031197296959,-104.9250834,39.7051054,-104.926976,39.7050482
-555,549,550,0.0907371722674166,0.0907371722674166,-104.999187,39.7014274,-104.998222,39.701766
-16080,9284,9816,0.896094060874208,0.896094060874208,-104.9725733,39.7796422,-104.962098,39.7800102
-922,936,937,0.0492564901299232,0.0492564901299232,-104.9740886,39.7320473,-104.9735126,39.732045
-923,937,938,0.0472982580528762,0.0472982580528762,-104.9735126,39.732045,-104.9729595,39.7320427
-924,938,939,0.0491354084196454,0.0491354084196454,-104.9729595,39.7320427,-104.972385,39.7320506
-925,939,940,0.0508720309451131,0.0508720309451131,-104.972385,39.7320506,-104.9717901,39.7320505
-926,940,941,0.0492045261244582,0.0492045261244582,-104.9717901,39.7320505,-104.9712147,39.7320508
-928,942,943,0.0497647165539241,0.0497647165539241,-104.9706365,39.7320717,-104.9700547,39.7320615
-929,943,944,0.0490705088651407,0.0490705088651407,-104.9700547,39.7320615,-104.969481,39.732052
-930,944,945,0.0603455693296164,0.0603455693296164,-104.969481,39.732052,-104.9687757,39.7320341
-931,946,947,0.0401316151990327,0.0401316151990327,-104.954535,39.732087,-104.9540658,39.7320945
-933,948,949,0.0998226264147839,0.0998226264147839,-104.9528876,39.7321058,-104.9517203,39.7320992
-934,949,950,0.0983576522120727,0.0983576522120727,-104.9517203,39.7320992,-104.9505701,39.7320992
-15935,9756,9757,0.156652526688463,0.156652526688463,-104.9962839,39.7001148,-104.9945244,39.7005048
-2725,2680,2681,0.0108684198063562,0.0108684198063562,-104.9781521,39.7512002,-104.9782507,39.7512619
-2726,2681,2682,0.048953084737917,0.048953084737917,-104.9782507,39.7512619,-104.9786543,39.7515742
-2727,2682,2683,0.0539629704453868,0.0539629704453868,-104.9786543,39.7515742,-104.9790985,39.751919
-2728,2683,2684,0.0523967582185389,0.0523967582185389,-104.9790985,39.751919,-104.9795298,39.7522538
-2730,2685,2686,0.0561874543205358,0.0561874543205358,-104.9799803,39.7525937,-104.9804627,39.7529369
-2731,2686,2687,0.0505746825733151,0.0505746825733151,-104.9804627,39.7529369,-104.9808835,39.7532566
-2732,2687,2688,0.0532702991765301,0.0532702991765301,-104.9808835,39.7532566,-104.9813184,39.7535997
-2733,2688,2689,0.0520434204860384,0.0520434204860384,-104.9813184,39.7535997,-104.9817462,39.7539327
-2734,2689,2690,0.0469426670134342,0.0469426670134342,-104.9817462,39.7539327,-104.9821311,39.7542338
-2735,2690,2691,0.0055983554055492,0.0055983554055492,-104.9821311,39.7542338,-104.9821794,39.7542678
-2736,2691,2692,0.0527791994653692,0.0527791994653692,-104.9821794,39.7542678,-104.9826233,39.7545977
-2737,2692,2693,0.0530982869497539,0.0530982869497539,-104.9826233,39.7545977,-104.9830605,39.7549369
-2738,2693,2694,0.0517656440902012,0.0517656440902012,-104.9830605,39.7549369,-104.9834919,39.7552636
-2740,2695,2696,0.0564222695417846,0.0564222695417846,-104.9839243,39.7555928,-104.984388,39.7559539
-2741,2696,2697,0.0491123681137852,0.0491123681137852,-104.984388,39.7559539,-104.9847927,39.7562674
-2743,2698,2563,0.102019026624601,0.102019026624601,-104.9872963,39.7637011,-104.9865077,39.7643898
-2745,2699,2700,0.132875620799413,0.132875620799413,-105.023737,39.7729356,-105.0236369,39.7741281
-2746,2700,2701,0.135383174760531,0.135383174760531,-105.0236369,39.7741281,-105.0236677,39.7753454
-2747,2701,2702,0.142428760025563,0.142428760025563,-105.0236677,39.7753454,-105.0236021,39.7766253
-2749,2703,2704,0.0110418183352839,0.0110418183352839,-105.0229204,39.7607336,-105.0229197,39.7608329
-3232,1186,3146,0.0222724242580952,0.0222724242580952,-104.9648143,39.7271028,-104.9648136,39.7273031
-3233,3146,3147,0.199414112058729,0.199414112058729,-104.9648136,39.7273031,-104.9648461,39.7290963
-3235,3148,3149,0.202164772668483,0.202164772668483,-104.9651624,39.7219764,-104.9651708,39.7201583
-3236,3149,3150,0.200873635711822,0.200873635711822,-104.9651708,39.7201583,-104.9651706,39.7183518
-3238,1549,3151,0.20099284178908,0.20099284178908,-104.9813041,39.7765427,-104.9812831,39.7783502
-3239,3151,284,0.102708547785912,0.102708547785912,-104.9812831,39.7783502,-104.9813127,39.7792736
-3241,3152,3153,0.190699299195112,0.190699299195112,-104.981211,39.7801495,-104.981211,39.7818645
-3242,3153,3154,0.20682256355895,0.20682256355895,-104.981211,39.7818645,-104.981211,39.7837245
-3244,3155,3156,0.180582058742099,0.180582058742099,-104.9811238,39.7224897,-104.9811324,39.7241137
-3245,3156,3157,0.169576673169674,0.169576673169674,-104.9811324,39.7241137,-104.9811181,39.7256387
-3246,3157,3158,0.182296097160239,0.182296097160239,-104.9811181,39.7256387,-104.9811306,39.7272781
-3247,3158,3159,0.198872141197801,0.198872141197801,-104.9811306,39.7272781,-104.9811297,39.7290666
-3248,3159,3160,0.150969541792736,0.150969541792736,-104.9811297,39.7290666,-104.9811325,39.7304243
-3250,3161,3162,0.20389937284006,0.20389937284006,-104.9814586,39.7164952,-104.9814669,39.7183289
-14826,8301,6748,0.0667725814392886,0.0667725814392886,-105.0260395,39.7548296,-105.0268206,39.7548296
-14827,6748,7911,0.0672145953526644,0.0672145953526644,-105.0268206,39.7548296,-105.0276068,39.7548215
-14828,7911,6148,0.0663282745787247,0.0663282745787247,-105.0276068,39.7548215,-105.0283827,39.754823
-258,257,266,0.0587628088830451,0.0587628088830451,-104.9487596,39.6897096,-104.9494463,39.6897162
-19749,647,7274,0.134298165118703,0.134298165118703,-104.9337694,39.7413613,-104.9337866,39.742569
-19750,7274,1989,0.0916188684792704,0.0916188684792704,-104.9337866,39.742569,-104.933775,39.7433929
-19751,1989,1973,0.0380843237979454,0.0380843237979454,-104.933775,39.7433929,-104.9337742,39.7437354
-19752,1973,4593,0.133556226393108,0.133556226393108,-104.9337742,39.7437354,-104.9337742,39.7449365
-19753,4593,6480,0.132288869732613,0.132288869732613,-104.9337742,39.7449365,-104.9337711,39.7461262
-19754,6480,2468,0.142585895231316,0.142585895231316,-104.9337711,39.7461262,-104.9337661,39.7474085
-19758,9421,959,0.172665861332853,0.172665861332853,-104.9434425,39.7336457,-104.9434319,39.7320929
-19759,959,10645,0.13147788241291,0.13147788241291,-104.9434319,39.7320929,-104.9434259,39.7309105
-19760,1208,9304,0.168127340065809,0.168127340065809,-104.9434426,39.7271196,-104.9434479,39.7256076
-20582,10869,10849,0.0156424449925145,0.0156424449925145,-105.0248912,39.7612876,-105.0250742,39.7612881
-19762,9148,5948,0.203948884455816,0.203948884455816,-104.9327781,39.7292306,-104.9327968,39.7310647
-19763,5948,5140,0.230511938313211,0.230511938313211,-104.9327968,39.7310647,-104.9325581,39.7331296
-19771,9419,957,0.173152824232778,0.173152824232778,-104.944537,39.7336514,-104.944539,39.7320942
-19772,957,8866,0.177567389214567,0.177567389214567,-104.944539,39.7320942,-104.9445422,39.7304973
-19773,8866,3772,0.153916736097948,0.153916736097948,-104.9445422,39.7304973,-104.9445477,39.7291131
-19774,3772,10250,0.199306990270457,0.199306990270457,-104.9445477,39.7291131,-104.9445396,39.7273207
-19776,5481,9962,0.172319939483889,0.172319939483889,-104.9592702,39.7383938,-104.9592628,39.7399435
-19784,10633,5611,0.0523352586472612,0.0523352586472612,-105.0021797,39.732604,-105.0015677,39.7326006
-19785,5611,10632,0.0574818788883128,0.0574818788883128,-105.0015677,39.7326006,-105.0008955,39.7325996
-19786,10632,3948,0.0628606527024246,0.0628606527024246,-105.0008955,39.7325996,-105.0001604,39.7325985
-19788,5471,9476,0.170862748175182,0.170862748175182,-104.9724345,39.7384108,-104.9724291,39.7368742
-19795,10242,7118,0.176747024157438,0.176747024157438,-104.9976043,39.7336771,-104.9975929,39.7352666
-19797,10241,6597,0.176287163937986,0.176287163937986,-104.9971028,39.7336811,-104.9970197,39.732097
-19798,6597,8052,0.177501084527478,0.177501084527478,-104.9970197,39.732097,-104.9970142,39.7305007
-19799,8052,8772,0.17769668863416,0.17769668863416,-104.9970142,39.7305007,-104.9969955,39.7289027
-20115,7697,7687,0.0337511699796145,0.0337511699796145,-104.9476781,39.7401632,-104.9472834,39.7401592
-19903,5589,10662,0.0571161687994488,0.0571161687994488,-105.0439287,39.736644,-105.0445966,39.7366511
-19904,10662,7532,0.0504117571952022,0.0504117571952022,-105.0445966,39.7366511,-105.0451861,39.7366574
-19905,7532,10677,0.0997820208770486,0.0997820208770486,-105.0451861,39.7366574,-105.0463515,39.7367034
-19909,2313,6581,0.0799825399923036,0.0799825399923036,-105.0128687,39.7314768,-105.0128679,39.7321961
-19911,9640,7119,0.178268282456568,0.178268282456568,-104.998165,39.7368735,-104.9981597,39.7352703
-19912,7119,10244,0.176467674531692,0.176467674531692,-104.9981597,39.7352703,-104.9981677,39.7336833
-19924,625,10679,0.208701850480872,0.208701850480872,-105.0357989,39.7365856,-105.0358012,39.7384625
-3596,897,3446,0.139044776802754,0.139044776802754,-104.9462766,39.7644635,-104.9462506,39.7657138
-3598,2803,3447,0.126707874592684,0.126707874592684,-104.9462404,39.7669537,-104.9462338,39.7680932
-3599,3447,3448,0.123301295397385,0.123301295397385,-104.9462338,39.7680932,-104.9462506,39.769202
-3601,3449,3450,0.173676950071542,0.173676950071542,-104.9461482,39.7162465,-104.9461569,39.7178084
-3602,3450,2355,0.178205364659248,0.178205364659248,-104.9461569,39.7178084,-104.9461715,39.719411
-3603,2355,3451,0.173197360497638,0.173197360497638,-104.9461715,39.719411,-104.9461741,39.7209686
-19562,10565,7475,0.0791516149409225,0.0791516149409225,-104.9895118,39.7091548,-104.9897492,39.7084668
-3604,3451,3452,0.173541943088937,0.173541943088937,-104.9461741,39.7209686,-104.9461731,39.7225293
-17079,9872,1162,0.139149030623918,0.139149030623918,-104.9615975,39.7619888,-104.9615772,39.7632401
-3605,3452,3453,0.1769778659128,0.1769778659128,-104.9461731,39.7225293,-104.9461741,39.7241209
-3606,3453,3454,0.165627970000561,0.165627970000561,-104.9461741,39.7241209,-104.946186,39.7256104
-3607,3454,1205,0.168543363105219,0.168543363105219,-104.946186,39.7256104,-104.9462015,39.7271261
-3608,1205,3455,0.0221544930319224,0.0221544930319224,-104.9462015,39.7271261,-104.9461963,39.7273253
-3609,3455,3456,0.199430319568372,0.199430319568372,-104.9461963,39.7273253,-104.9461853,39.7291188
-3610,3456,3457,0.153671457388635,0.153671457388635,-104.9461853,39.7291188,-104.946187,39.7305008
-3611,3457,954,0.177011997745418,0.177011997745418,-104.946187,39.7305008,-104.9461808,39.7320927
-3616,3461,3023,0.066721008314693,0.066721008314693,-104.9461758,39.7383438,-104.9461672,39.7389438
-3617,3023,609,0.0626815132610695,0.0626815132610695,-104.9461672,39.7389438,-104.9461712,39.7395075
-3618,609,3465,0.0706324711687883,0.0706324711687883,-104.9461712,39.7395075,-104.9461659,39.7401427
-3620,3466,3467,0.0872559719077514,0.0872559719077514,-104.9459057,39.7609696,-104.9459001,39.7617543
-3621,3467,3468,0.0185752884131515,0.0185752884131515,-104.9459001,39.7617543,-104.9458947,39.7619213
-3624,3470,3471,0.137381540377109,0.137381540377109,-104.9464883,39.7557063,-104.9464855,39.7569418
-3625,3471,3472,0.139227388345715,0.139227388345715,-104.9464855,39.7569418,-104.9464826,39.7581939
-3627,3473,2394,0.0888475437763938,0.0888475437763938,-104.9464666,39.7730919,-104.9464482,39.7738908
-3628,2394,3474,0.138668820339117,0.138668820339117,-104.9464482,39.7738908,-104.9464139,39.7751376
-3630,752,1572,0.142095074047717,0.142095074047717,-104.9464409,39.77641,-104.9464121,39.7776877
-3636,1922,3478,0.201186325897418,0.201186325897418,-104.9639994,39.7074818,-104.9639908,39.7056725
-3639,3479,78,0.204132972246117,0.204132972246117,-104.9639986,39.7020562,-104.9640072,39.7002204
-3640,78,3480,0.203867249894849,0.203867249894849,-104.9640072,39.7002204,-104.9640443,39.6983872
-3641,3480,3481,0.201309535256297,0.201309535256297,-104.9640443,39.6983872,-104.9640554,39.6965768
-3642,3481,3482,0.20059690465602,0.20059690465602,-104.9640554,39.6965768,-104.9640471,39.6947728
-3643,3482,3483,0.19983968701354,0.19983968701354,-104.9640471,39.6947728,-104.9640501,39.6929756
-3645,3484,3485,0.206291326448342,0.206291326448342,-104.9640755,39.691151,-104.9637153,39.6893166
-17801,8859,9953,0.0450786858997054,0.0450786858997054,-104.9873914,39.7526692,-104.9873896,39.7522638
-3647,1956,3486,0.372627158727207,0.372627158727207,-104.9295943,39.7085824,-104.9294222,39.7052339
-3649,3487,3488,0.176001514646942,0.176001514646942,-104.9293078,39.7162471,-104.9293331,39.7146644
-3652,3491,3492,0.0183360753269697,0.0183360753269697,-104.9293114,39.7113416,-104.929311,39.7111767
-3653,3492,1957,0.294352299971408,0.294352299971408,-104.929311,39.7111767,-104.9292853,39.7085296
-3655,1514,1794,0.180158106731211,0.180158106731211,-104.9278643,39.6960978,-104.9284394,39.6945392
-3657,3493,3494,0.410250831833552,0.410250831833552,-104.9285338,39.6930004,-104.9293234,39.6893613
-3658,3494,3495,0.80930180387284,0.80930180387284,-104.9293234,39.6893613,-104.929634,39.682087
-3660,3497,3498,0.0969369694749486,0.0969369694749486,-104.9488372,39.6983858,-104.9477042,39.6983792
-3661,3498,3499,0.0991356893770485,0.0991356893770485,-104.9477042,39.6983792,-104.9465455,39.6983726
-3662,3499,3500,0.0998795294298673,0.0998795294298673,-104.9465455,39.6983726,-104.9453782,39.6983858
-3663,3500,3501,0.0512305304785401,0.0512305304785401,-104.9453782,39.6983858,-104.9447794,39.6983858
-3664,3501,3502,0.04790242821524,0.04790242821524,-104.9447794,39.6983858,-104.9442195,39.6983858
-3665,3502,3503,0.0976724268185372,0.0976724268185372,-104.9442195,39.6983858,-104.943078,39.698399
-3666,3503,3504,0.099556042023676,0.099556042023676,-104.943078,39.698399,-104.9419144,39.6983911
-3667,3504,3505,0.0928685437479174,0.0928685437479174,-104.9419144,39.6983911,-104.940829,39.698381
-3668,3505,3506,0.0161263903021828,0.0161263903021828,-104.940829,39.698381,-104.9406406,39.6983765
-3670,3507,3508,0.0452502277318962,0.0452502277318962,-104.9686775,39.698382,-104.9681486,39.6983823
-3673,3510,3511,0.00276384344441178,0.00276384344441178,-104.9675508,39.6983827,-104.9675186,39.6983807
-3674,3511,3512,0.10075109326777,0.10075109326777,-104.9675186,39.6983807,-104.966341,39.698385
-3675,3512,3513,0.0463453549611142,0.0463453549611142,-104.966341,39.698385,-104.9657993,39.6983855
-3676,3513,3514,0.0488777906121745,0.0488777906121745,-104.9657993,39.6983855,-104.965228,39.698386
-3677,3514,3515,0.0517011274556552,0.0517011274556552,-104.965228,39.698386,-104.9646237,39.6983866
-3678,3515,3480,0.0495708012211316,0.0495708012211316,-104.9646237,39.6983866,-104.9640443,39.6983872
-3679,3480,3516,0.0493402083699287,0.0493402083699287,-104.9640443,39.6983872,-104.9634676,39.6983891
-3680,3516,3517,0.0507690156276584,0.0507690156276584,-104.9634676,39.6983891,-104.9628742,39.6983911
-3681,3517,3518,0.0480408906902884,0.0480408906902884,-104.9628742,39.6983911,-104.9623127,39.6983876
-3682,3518,3519,0.0499402493817724,0.0499402493817724,-104.9623127,39.6983876,-104.961729,39.698384
-3683,3519,3520,0.0491944164243011,0.0491944164243011,-104.961729,39.698384,-104.961154,39.6983849
-3685,3521,3522,0.048707440700188,0.048707440700188,-104.9605624,39.6983858,-104.9599931,39.6983883
-3686,3522,3523,0.0553123927733894,0.0553123927733894,-104.9599931,39.6983883,-104.9593466,39.6983911
-3688,3524,3525,0.0491959341758901,0.0491959341758901,-104.9586741,39.6983954,-104.9580991,39.698399
-3689,3525,3526,0.0471666433723512,0.0471666433723512,-104.9580991,39.698399,-104.9575478,39.698399
-3690,3526,3527,0.0512305206815533,0.0512305206815533,-104.9575478,39.698399,-104.956949,39.698399
-3693,2737,3529,0.051933950168584,0.051933950168584,-104.9558324,39.6983924,-104.9552447,39.6982755
-3694,3529,3530,0.02212553176718,0.02212553176718,-104.9552447,39.6982755,-104.9550292,39.6981655
-3695,3530,3531,0.0926927616463166,0.0926927616463166,-104.9550292,39.6981655,-104.954611,39.6973965
-3698,3533,3534,0.0505032949697016,0.0505032949697016,-104.982132,39.6984066,-104.9815417,39.6984066
-3699,3534,3535,0.0486395723695605,0.0486395723695605,-104.9815417,39.6984066,-104.9809732,39.6984099
-3700,3535,3536,0.0490245580059416,0.0490245580059416,-104.9809732,39.6984099,-104.9804002,39.6984132
-3701,3536,3537,0.0505772192147856,0.0505772192147856,-104.9804002,39.6984132,-104.9798091,39.6984199
-3703,3538,3540,0.0504276967004131,0.0504276967004131,-104.9792415,39.6984264,-104.9786521,39.6984298
-3705,3541,3542,0.0472106572615262,0.0472106572615262,-104.9780828,39.698433,-104.977531,39.6984299
-3706,3542,1776,0.0526607102662498,0.0526607102662498,-104.977531,39.6984299,-104.9769155,39.6984264
-3707,1776,3543,0.0501355164587406,0.0501355164587406,-104.9769155,39.6984264,-104.9763295,39.6984254
-3708,3543,3545,0.0479683302933595,0.0479683302933595,-104.9763295,39.6984254,-104.9757691,39.698412
-3709,3545,3546,0.0512089379810606,0.0512089379810606,-104.9757691,39.698412,-104.9751709,39.6984277
-3712,3547,3548,0.0501783172118128,0.0501783172118128,-104.9739907,39.6984301,-104.9734042,39.698429
-3714,3549,3550,0.0951894457465396,0.0951894457465396,-104.932762,39.698444,-104.931651,39.698398
-3716,3374,3551,0.137804864391147,0.137804864391147,-104.9240963,39.6988121,-104.9226973,39.6994263
-3717,3552,3553,0.0519171995444708,0.0519171995444708,-104.9769434,39.7546258,-104.9763361,39.7546219
-3718,3553,3554,0.0504125238991067,0.0504125238991067,-104.9763361,39.7546219,-104.9757464,39.7546182
-3719,3554,3555,0.0509345511135035,0.0509345511135035,-104.9757464,39.7546182,-104.9751506,39.7546225
-3720,3555,3556,0.0352813695033733,0.0352813695033733,-104.9751506,39.7546225,-104.9747379,39.7546254
-3721,3556,3557,0.0165592866582096,0.0165592866582096,-104.9747379,39.7546254,-104.9745442,39.7546268
-3722,3557,3558,0.0492318634139881,0.0492318634139881,-104.9745442,39.7546268,-104.9739683,39.7546244
-3724,2895,3559,0.10435477566087,0.10435477566087,-104.9733531,39.7545278,-104.9721334,39.7544893
-3725,3559,3560,0.106943183049813,0.106943183049813,-104.9721334,39.7544893,-104.9708824,39.7544863
-3726,3560,3561,0.104660660979737,0.104660660979737,-104.9708824,39.7544863,-104.9696581,39.7544835
-3727,3561,3562,0.110121719044693,0.110121719044693,-104.9696581,39.7544835,-104.9683703,39.7544592
-3728,3562,3563,0.102966459525542,0.102966459525542,-104.9683703,39.7544592,-104.9671659,39.7544703
-3730,3564,3565,0.0562722873891167,0.0562722873891167,-104.9659688,39.7544499,-104.9653106,39.7544428
-3735,3568,3569,0.0531044201649232,0.0531044201649232,-104.9616097,39.7544552,-104.9609889,39.7544725
-3736,3569,3570,0.106391147104451,0.106391147104451,-104.9609889,39.7544725,-104.9597446,39.7544534
-3737,3570,3571,0.101252017782574,0.101252017782574,-104.9597446,39.7544534,-104.9585602,39.75446
-3738,3571,3323,0.106405710576167,0.106405710576167,-104.9585602,39.75446,-104.9573156,39.7544732
-3739,3323,3572,0.102008288172629,0.102008288172629,-104.9573156,39.7544732,-104.9561226,39.7544534
-3740,3572,3573,0.10165616841443,0.10165616841443,-104.9561226,39.7544534,-104.954935,39.7545002
-3741,3573,2074,0.102582871487582,0.102582871487582,-104.954935,39.7545002,-104.953735,39.7545002
-3742,2074,2671,0.108231570849142,0.108231570849142,-104.953735,39.7545002,-104.9524691,39.7544839
-3743,2671,3574,0.10456159833902,0.10456159833902,-104.9524691,39.7544839,-104.951246,39.7544757
-5002,115,4548,0.0219059413647985,0.0219059413647985,-105.0217118,39.7303058,-105.0217136,39.7305028
-3744,3574,3575,0.112649473969198,0.112649473969198,-104.951246,39.7544757,-104.9499292,39.7544371
-3748,3469,3578,0.102738780677217,0.102738780677217,-104.9464912,39.7544409,-104.9452895,39.7544277
-3751,848,3580,0.194594151891157,0.194594151891157,-104.9429842,39.7544341,-104.9407092,39.754494
-3780,799,3582,0.202016106794537,0.202016106794537,-104.9293286,39.7528556,-104.92935,39.7546723
-3753,3581,3583,0.0933177632696428,0.0933177632696428,-104.9405163,39.7545798,-104.9394304,39.7546656
-3756,3586,3587,0.0427524561216555,0.0427524561216555,-105.0238257,39.7607202,-105.0243209,39.7607742
-20307,3851,3852,0.0199150113624835,0.0199150113624835,-105.0428243,39.7763674,-105.0428243,39.7765465
-3757,3587,3588,0.00652614157776479,0.00652614157776479,-105.0243209,39.7607742,-105.0243965,39.7607824
-3758,3588,3589,0.0165416326790114,0.0165416326790114,-105.0243965,39.7607824,-105.0245881,39.7608033
-3759,3589,3590,0.0292914453635219,0.0292914453635219,-105.0245881,39.7608033,-105.0249274,39.7608402
-3760,3590,3591,0.012398142936734,0.012398142936734,-105.0249274,39.7608402,-105.025071,39.7608559
-3761,3591,3592,0.00808918004643223,0.00808918004643223,-105.025071,39.7608559,-105.0251647,39.7608661
-3762,3592,3593,0.0105968786869326,0.0105968786869326,-105.0251647,39.7608661,-105.0252868,39.7608826
-3764,3487,3594,0.175200690864457,0.175200690864457,-104.9293078,39.7162471,-104.9293175,39.7178227
-17310,5684,5685,0.200644913348264,0.200644913348264,-104.9611511,39.6947781,-104.9611673,39.6929737
-3765,3594,2339,0.174981229925885,0.174981229925885,-104.9293175,39.7178227,-104.9293022,39.7193963
-3768,3596,3597,0.239259126523314,0.239259126523314,-104.9293972,39.7231683,-104.9294053,39.72532
-3770,1985,1969,0.0388238770836811,0.0388238770836811,-104.9301272,39.7433797,-104.930135,39.7437288
-3771,1969,3598,0.103685036459381,0.103685036459381,-104.930135,39.7437288,-104.9301576,39.7446611
-3772,3598,3599,0.103278210249803,0.103278210249803,-104.9301576,39.7446611,-104.9301608,39.7455899
-3774,3600,685,0.204822140654993,0.204822140654993,-104.9297917,39.7401253,-104.9297839,39.7419673
-3775,685,1984,0.157051714392723,0.157051714392723,-104.9297839,39.7419673,-104.9297839,39.7433797
-3777,2473,3601,0.204732098938096,0.204732098938096,-104.9293385,39.7474063,-104.9293385,39.7492475
-3778,3601,3602,0.203258463693205,0.203258463693205,-104.9293385,39.7492475,-104.9293214,39.7510754
-3779,3602,799,0.197950165384785,0.197950165384785,-104.9293214,39.7510754,-104.9293286,39.7528556
-3781,3582,3603,0.209363914186111,0.209363914186111,-104.92935,39.7546723,-104.9293903,39.7565549
-3782,3603,3604,0.202974468009462,0.202974468009462,-104.9293903,39.7565549,-104.9293663,39.7583802
-3783,3604,3063,0.201030651985273,0.201030651985273,-104.9293663,39.7583802,-104.9293577,39.7601881
-3784,3063,3605,0.183452467298283,0.183452467298283,-104.9293577,39.7601881,-104.9293844,39.7618378
-3785,3605,3609,0.0173247613422977,0.0173247613422977,-104.9293844,39.7618378,-104.9293603,39.7619925
-3786,3609,3610,0.100167424900963,0.100167424900963,-104.9293603,39.7619925,-104.9293406,39.7628932
-3787,3610,1148,0.0998182719974527,0.0998182719974527,-104.9293406,39.7628932,-104.9293749,39.7637905
-3798,3618,3619,1.41244277904247,1.41244277904247,-104.98046,39.6894076,-104.9804715,39.6767052
-3799,3620,3621,0.200419085699923,0.200419085699923,-104.9803501,39.716491,-104.9803587,39.7146886
-3800,3621,3083,0.197049820413636,0.197049820413636,-104.9803587,39.7146886,-104.9803943,39.7129167
-3806,3250,3625,0.214852973763206,0.214852973763206,-104.9804174,39.7039537,-104.9804286,39.7020215
-3807,3625,37,0.19341482884534,0.19341482884534,-104.9804286,39.7020215,-104.9804174,39.7002821
-3808,37,3536,0.207817408343139,0.207817408343139,-104.9804174,39.7002821,-104.9804002,39.6984132
-3809,3536,3626,0.197537787183869,0.197537787183869,-104.9804002,39.6984132,-104.9804002,39.6966367
-3810,3626,3627,0.0725803332096263,0.0725803332096263,-104.9804002,39.6966367,-104.9805353,39.6959923
-3812,3628,3629,0.0377891893344826,0.0377891893344826,-104.9558725,39.7153466,-104.9554348,39.7153004
-3814,3630,108,0.222508950073657,0.222508950073657,-104.9286229,39.7018847,-104.9272013,39.700209
-3815,108,3631,0.48374336677931,0.48374336677931,-104.9272013,39.700209,-104.9237198,39.6967811
-3816,3631,3632,1.29923590650812,1.29923590650812,-104.9237198,39.6967811,-104.9115603,39.6897825
-17118,3959,510,0.232935824119298,0.232935824119298,-104.957513,39.7479253,-104.9547886,39.7479501
-4428,4136,4137,0.173313517100692,0.173313517100692,-104.9505787,39.7367922,-104.9506214,39.7383505
-4429,4137,4138,0.202530185785573,0.202530185785573,-104.9506214,39.7383505,-104.9506563,39.7401717
-18158,6309,10170,0.40356001102466,0.40356001102466,-105.0129465,39.7874317,-105.0129519,39.791061
-4432,2389,4140,0.139183902890425,0.139183902890425,-104.950844,39.7738769,-104.9508372,39.7751286
-4434,4141,4142,0.197054107936505,0.197054107936505,-104.982643,39.7165018,-104.9827054,39.7147303
-4438,4144,4145,0.0537117632250494,0.0537117632250494,-104.9856225,39.7209124,-104.9849945,39.7209102
-4439,4145,965,0.101471161400112,0.101471161400112,-104.9849945,39.7209102,-104.9838084,39.7209313
-4440,965,4146,0.104100628512796,0.104100628512796,-104.9838084,39.7209313,-104.9825915,39.7209119
-4441,4146,3163,0.0969051144320847,0.0969051144320847,-104.9825915,39.7209119,-104.9814586,39.7208987
-4442,3163,4147,0.101372524256092,0.101372524256092,-104.9814586,39.7208987,-104.9802738,39.7209242
-4443,4147,4148,0.0308326213261154,0.0308326213261154,-104.9802738,39.7209242,-104.9799133,39.7209242
-4445,3914,1051,0.113795014444698,0.113795014444698,-104.9633401,39.7209669,-104.9620097,39.7209801
-4446,1051,4149,0.10964029932362,0.10964029932362,-104.9620097,39.7209801,-104.9607278,39.7209872
-4449,4151,3345,0.104243278330047,0.104243278330047,-104.9582358,39.7209729,-104.957017,39.7209795
-4451,4152,4153,0.102419695022811,0.102419695022811,-104.9558113,39.720983,-104.9546138,39.7209795
-4452,4153,2058,0.103354746635848,0.103354746635848,-104.9546138,39.7209795,-104.9534054,39.7209872
-4453,2058,2644,0.104156201229462,0.104156201229462,-104.9534054,39.7209872,-104.9521876,39.720983
-4454,2644,4110,0.102077109293643,0.102077109293643,-104.9521876,39.720983,-104.9509941,39.7209851
-5804,5122,5123,0.00520045876973269,0.00520045876973269,-104.9708892,39.7607101,-104.9708859,39.7607568
-4455,4110,4154,0.102551400025576,0.102551400025576,-104.9509941,39.7209851,-104.9497951,39.7209768
-4458,4156,3451,0.102085683319337,0.102085683319337,-104.9473677,39.7209707,-104.9461741,39.7209686
-4459,3451,4157,0.103915702611829,0.103915702611829,-104.9461741,39.7209686,-104.9449591,39.7209686
-4460,4157,3881,0.104147627332173,0.104147627332173,-104.9449591,39.7209686,-104.9437414,39.7209645
-4461,3881,844,0.102547271473588,0.102547271473588,-104.9437414,39.7209645,-104.9425424,39.7209645
-4462,844,4158,0.103915708789956,0.103915708789956,-104.9425424,39.7209645,-104.9413274,39.7209645
-4463,4158,4159,0.0473715373473714,0.0473715373473714,-104.9413274,39.7209645,-104.9407748,39.7209356
-4465,4160,4161,0.0487952389865543,0.0487952389865543,-104.977542,39.720117,-104.9769715,39.7201202
-4466,4161,4162,0.0503092120983125,0.0503092120983125,-104.9769715,39.7201202,-104.9763833,39.7201236
-4467,4162,4163,0.0998399649224705,0.0998399649224705,-104.9763833,39.7201236,-104.975216,39.7201302
-4470,991,4165,0.0616573964011522,0.0616573964011522,-104.9740667,39.720134,-104.9733458,39.720134
-4471,4165,4166,0.0374515064164708,0.0374515064164708,-104.9733458,39.720134,-104.972908,39.7201406
-4472,4166,4167,0.0500586202169859,0.0500586202169859,-104.972908,39.7201406,-104.9723279,39.7200808
-4473,4167,4168,0.0490747432154895,0.0490747432154895,-104.9723279,39.7200808,-104.9717542,39.7200883
-4474,4168,1546,0.0500170304502106,0.0500170304502106,-104.9717542,39.7200883,-104.9711694,39.7200886
-4475,1546,4169,0.0485801531295538,0.0485801531295538,-104.9711694,39.7200886,-104.9706014,39.7200889
-5773,5098,5099,0.136491222225544,0.136491222225544,-104.9779272,39.6923695,-104.9781101,39.6911501
-4479,4171,4172,0.0171013114970861,0.0171013114970861,-104.9681062,39.7200857,-104.9679063,39.7200823
-4480,4172,4173,0.100095278405447,0.100095278405447,-104.9679063,39.7200823,-104.966736,39.720087
-4481,4173,4174,0.0193707742575379,0.0193707742575379,-104.966736,39.720087,-104.9665271,39.7201543
-4482,4174,3125,0.0983746933912928,0.0983746933912928,-104.9665271,39.7201543,-104.9653769,39.7201543
-4483,3125,3149,0.017633000291927,0.017633000291927,-104.9653769,39.7201543,-104.9651708,39.7201583
-4485,3759,1483,0.205504619788951,0.205504619788951,-104.9912414,39.6966624,-104.9913183,39.6948152
-4486,1483,139,0.199306955290764,0.199306955290764,-104.9913183,39.6948152,-104.991354,39.693023
-3818,3634,3635,0.193271661183235,0.193271661183235,-104.9444999,39.7082421,-104.9460363,39.7095165
-3844,50,2744,0.0297683374213274,0.0297683374213274,-104.9541194,39.7002037,-104.9541587,39.6999377
-3819,3635,3636,0.259071020170312,0.259071020170312,-104.9460363,39.7095165,-104.9481992,39.7111474
-3820,3636,3637,0.220352934884474,0.220352934884474,-104.9481992,39.7111474,-104.9498644,39.7126594
-3821,3637,3638,0.0146799692899151,0.0146799692899151,-104.9498644,39.7126594,-104.9499674,39.712765
-3822,3638,3629,0.546064092681382,0.546064092681382,-104.9499674,39.712765,-104.9554348,39.7153004
-3823,3629,3628,0.0377891893344826,0.0377891893344826,-104.9554348,39.7153004,-104.9558725,39.7153466
-3848,3639,3640,0.0377019004254023,0.0377019004254023,-104.953288,39.6987674,-104.9529616,39.6985396
-3824,3628,3641,0.274746435577415,0.274746435577415,-104.9558725,39.7153466,-104.9590835,39.7152814
-3827,3643,3630,0.145379834812045,0.145379834812045,-104.9299023,39.7027452,-104.9286229,39.7018847
-3829,3644,3645,0.10937380292523,0.10937380292523,-105.0209565,39.7228992,-105.0209651,39.7238828
-3831,3646,3647,0.118367900276814,0.118367900276814,-105.0208928,39.7275233,-105.0208982,39.7264588
-3833,3648,3649,0.0133410304783532,0.0133410304783532,-104.9576929,39.7025901,-104.9575638,39.7025228
-3834,3649,3650,0.0429585103622675,0.0429585103622675,-104.9575638,39.7025228,-104.957148,39.7023062
-3835,3650,3651,0.0204151163658954,0.0204151163658954,-104.957148,39.7023062,-104.9569509,39.7022027
-3836,3651,3652,0.035861428044368,0.035861428044368,-104.9569509,39.7022027,-104.9565993,39.7020271
-3837,3652,3653,0.0519097060940613,0.0519097060940613,-104.9565993,39.7020271,-104.956048,39.7018321
-3838,3653,2733,0.0215181506261361,0.0215181506261361,-104.956048,39.7018321,-104.9558149,39.7017594
-3839,2733,3184,0.0284884125498342,0.0284884125498342,-104.9558149,39.7017594,-104.9555361,39.7016193
-3840,3184,3654,0.0523000942930375,0.0523000942930375,-104.9555361,39.7016193,-104.9550095,39.7013804
-3841,3654,3655,0.0449577371290542,0.0449577371290542,-104.9550095,39.7013804,-104.9546075,39.70112
-3842,3655,3656,0.0854917295991763,0.0854917295991763,-104.9546075,39.70112,-104.9541489,39.7004369
-3843,3656,50,0.0260531877334927,0.0260531877334927,-104.9541489,39.7004369,-104.9541194,39.7002037
-3845,2744,3657,0.0566089274642789,0.0566089274642789,-104.9541587,39.6999377,-104.9539423,39.6994566
-3846,3657,3658,0.0492739020617726,0.0492739020617726,-104.9539423,39.6994566,-104.9536997,39.6990547
-3849,3640,3660,0.0409815373213546,0.0409815373213546,-104.9529616,39.6985396,-104.9525869,39.69831
-3850,3660,3661,0.0430567519340905,0.0430567519340905,-104.9525869,39.69831,-104.9521932,39.6980688
-3851,3661,3662,0.0468129367556475,0.0468129367556475,-104.9521932,39.6980688,-104.9517941,39.6977808
-3852,3662,3663,0.0487340718514498,0.0487340718514498,-104.9517941,39.6977808,-104.9513786,39.697481
-3853,3663,3664,0.0766168893066023,0.0766168893066023,-104.9513786,39.697481,-104.9507,39.6970314
-3854,3664,3665,0.0775543535398568,0.0775543535398568,-104.9507,39.6970314,-104.9500131,39.6965763
-3856,2887,3666,0.0966953683989245,0.0966953683989245,-104.9729638,39.7478589,-104.9739808,39.7474784
-3857,3666,3667,0.0610272459393337,0.0610272459393337,-104.9739808,39.7474784,-104.9746946,39.7474748
-3860,3669,3670,0.0315853053568594,0.0315853053568594,-104.9757447,39.7475025,-104.976114,39.7474946
-3862,3671,3672,0.0504610774094253,0.0504610774094253,-104.9763685,39.7474986,-104.9769586,39.747508
-3863,3672,3673,0.0499084817958282,0.0499084817958282,-104.9769586,39.747508,-104.9775423,39.7475014
-3864,3673,3674,0.0598581313257637,0.0598581313257637,-104.9775423,39.7475014,-104.9782423,39.7475122
-3865,3674,3675,0.0415918035714469,0.0415918035714469,-104.9782423,39.7475122,-104.9787278,39.747536
-3866,3675,3676,0.0971838117715375,0.0971838117715375,-104.9787278,39.747536,-104.9798645,39.7475421
-3867,3676,3677,0.0757910145140814,0.0757910145140814,-104.9798645,39.7475421,-104.980751,39.7475439
-3868,3677,3678,0.0241351496511796,0.0241351496511796,-104.980751,39.7475439,-104.9810333,39.7475445
-3869,3678,3679,0.10921148844503,0.10921148844503,-104.9810333,39.7475445,-104.9823107,39.7475487
-3870,3679,3680,0.0604791133362521,0.0604791133362521,-104.9823107,39.7475487,-104.9830181,39.7475507
-3871,3680,3681,0.0497662614550786,0.0497662614550786,-104.9830181,39.7475507,-104.9836002,39.7475507
-3872,3681,3682,0.0284371260175335,0.0284371260175335,-104.9836002,39.7475507,-104.9839328,39.7475479
-3873,3682,3683,0.0775136719631998,0.0775136719631998,-104.9839328,39.7475479,-104.9848394,39.7475404
-3874,3683,3684,0.0986272672973807,0.0986272672973807,-104.9848394,39.7475404,-104.9859927,39.7475198
-3876,3686,1026,0.103637164673652,0.103637164673652,-104.9634548,39.7469475,-104.9622426,39.7469472
-5148,4657,4658,0.0518173498658282,0.0518173498658282,-105.0191606,39.7548276,-105.0191633,39.7552936
-3877,1026,3687,0.0559565437232701,0.0559565437232701,-104.9622426,39.7469472,-104.9615881,39.7469471
-3878,3687,3688,0.0511859173489266,0.0511859173489266,-104.9615881,39.7469471,-104.9609894,39.746947
-3879,3688,3689,0.0520066703615513,0.0520066703615513,-104.9609894,39.746947,-104.9603811,39.7469469
-3880,3689,3690,0.049253728288425,0.049253728288425,-104.9603811,39.7469469,-104.959805,39.7469468
-3882,2886,3691,0.113429848834015,0.113429848834015,-104.9722001,39.7469535,-104.970874,39.7469218
-3884,3215,3692,0.202752541360657,0.202752541360657,-104.9616918,39.7111011,-104.9617163,39.7092778
-3885,3692,1926,0.199353224720545,0.199353224720545,-104.9617163,39.7092778,-104.961729,39.707485
-3886,1926,3693,0.200351682125873,0.200351682125873,-104.961729,39.707485,-104.9617036,39.7056833
-3887,3693,3270,0.203854022504707,0.203854022504707,-104.9617036,39.7056833,-104.9616991,39.70385
-3888,3270,3694,0.200935067748901,0.200935067748901,-104.9616991,39.70385,-104.9616812,39.702043
-3890,83,3519,0.205087956532059,0.205087956532059,-104.961704,39.7002283,-104.961729,39.698384
-3892,3695,3696,0.201007421421966,0.201007421421966,-104.9617464,39.6965839,-104.961742,39.6947762
-3897,3217,3701,0.1352188342505,0.1352188342505,-104.9611082,39.7111011,-104.96184,39.712179
-3898,131,1718,0.251512260994622,0.251512260994622,-105.0097289,39.6931103,-105.0097345,39.6908484
-15946,9759,9762,0.240661719520644,0.240661719520644,-104.9977092,39.704984,-104.9986577,39.7070216
-3900,3702,3703,0.0933150678138448,0.0933150678138448,-105.0029777,39.7635862,-105.002975,39.7644254
-3901,3703,3704,0.137025546490973,0.137025546490973,-105.002975,39.7644254,-105.0029738,39.7656577
-3902,3704,3705,0.132801372713675,0.132801372713675,-105.0029738,39.7656577,-105.002967,39.766852
-3903,3705,1668,0.132757296812598,0.132757296812598,-105.002967,39.766852,-105.0029592,39.7680459
-3904,1668,3706,0.138337667643286,0.138337667643286,-105.0029592,39.7680459,-105.0029577,39.76929
-3905,3706,2449,0.137198901653783,0.137198901653783,-105.0029577,39.76929,-105.0029835,39.7705237
-3906,2449,3239,0.137027047572602,0.137027047572602,-105.0029835,39.7705237,-105.0029911,39.771756
-3909,3708,3709,0.0594114493059888,0.0594114493059888,-105.002935,39.7755303,-105.002935,39.7760646
-3910,3709,109,0.057220909251565,0.057220909251565,-105.002935,39.7760646,-105.002935,39.7765792
-3913,3711,3712,0.139485170169946,0.139485170169946,-104.9891861,39.7183575,-104.9908169,39.7183641
-3914,3712,2811,0.114534953425458,0.114534953425458,-104.9908169,39.7183641,-104.9921559,39.7183774
-3918,3715,3716,0.0528065388297546,0.0528065388297546,-104.995157,39.7184133,-104.9957744,39.7184136
-3919,3716,3717,0.0498986148500866,0.0498986148500866,-104.9957744,39.7184136,-104.9963578,39.7184146
-3920,3717,3718,0.0501983896755627,0.0501983896755627,-104.9963578,39.7184146,-104.9969447,39.7184167
-3921,3718,3722,0.0513311819624353,0.0513311819624353,-104.9969447,39.7184167,-104.9975448,39.7184227
-3922,3722,3723,0.0447895916462849,0.0447895916462849,-104.9975448,39.7184227,-104.9980684,39.7184292
-3923,3723,3724,0.0431436061631746,0.0431436061631746,-104.9980684,39.7184292,-104.9985724,39.7184133
-3924,3724,3725,0.0306469500311329,0.0306469500311329,-104.9985724,39.7184133,-104.9989294,39.7183897
-3926,3726,3727,0.194057523355391,0.194057523355391,-105.0028483,39.7255761,-105.0028456,39.7273213
-3927,3727,723,0.155998303022368,0.155998303022368,-105.0028456,39.7273213,-105.0028344,39.7287242
-3928,723,3728,0.0204200466887832,0.0204200466887832,-105.0028344,39.7287242,-105.0028395,39.7289078
-3929,3728,3729,0.122760919468851,0.122760919468851,-105.0028395,39.7289078,-105.0028319,39.7300118
-3930,3729,3730,0.0554195837686694,0.0554195837686694,-105.0028319,39.7300118,-105.0028312,39.7305102
-3931,3730,520,0.0841868989778494,0.0841868989778494,-105.0028312,39.7305102,-105.0028259,39.7312673
-3932,520,3731,0.0926590200371809,0.0926590200371809,-105.0028259,39.7312673,-105.0028232,39.7321006
-3933,3731,3732,0.0560537701957185,0.0560537701957185,-105.0028232,39.7321006,-105.0028207,39.7326047
-3937,3735,3736,0.177568883213635,0.177568883213635,-105.0028198,39.7368743,-105.0028107,39.7384712
-3939,3737,3738,0.0596027628340358,0.0596027628340358,-105.0028068,39.7394839,-105.0028007,39.7400199
-3940,3738,2286,0.015731383207611,0.015731383207611,-105.0028007,39.7400199,-105.0028141,39.740161
-3942,191,3739,0.20409229769904,0.20409229769904,-105.02039,39.7157163,-105.0227761,39.7157163
-3943,3739,3740,0.196754914184827,0.196754914184827,-105.0227761,39.7157163,-105.0250764,39.7157096
-3945,3741,3742,0.0963531048469524,0.0963531048469524,-105.0170254,39.7158747,-105.0181498,39.7158219
-3947,3743,1867,0.211893481628119,0.211893481628119,-104.9874858,39.7156689,-104.9899631,39.7156724
-3948,1867,3744,0.190309691295086,0.190309691295086,-104.9899631,39.7156724,-104.9921878,39.7156987
-3949,3744,3369,0.156379911113779,0.156379911113779,-104.9921878,39.7156987,-104.994016,39.7156855
-3951,3746,3747,0.0084501441528746,0.0084501441528746,-105.006247,39.715647,-105.006163,39.715687
-3953,3749,3750,0.291896586304336,0.291896586304336,-105.026537,39.774028,-105.0264259,39.7766517
-3957,3752,3753,0.00678737857974005,0.00678737857974005,-105.0288682,39.7620406,-105.0288005,39.7620725
-3958,3753,3754,0.00811546596932882,0.00811546596932882,-105.0288005,39.7620725,-105.028727,39.7621187
-3959,3754,605,0.11345488105994,0.11345488105994,-105.028727,39.7621187,-105.0276669,39.7627327
-3966,3759,3760,0.0543424988109601,0.0543424988109601,-104.9912414,39.6966624,-104.9918765,39.696669
-3967,3760,3761,0.0124828328696103,0.0124828328696103,-104.9918765,39.696669,-104.9920224,39.696669
-3969,3762,3763,0.109035140401267,0.109035140401267,-105.0051409,39.7854596,-105.0064169,39.7854508
-3970,3763,3764,0.13451246019454,0.13451246019454,-105.0064169,39.7854508,-105.0079576,39.7856991
-3971,3764,1077,0.0751290727356026,0.0751290727356026,-105.0079576,39.7856991,-105.0087381,39.7860102
-3972,1077,2521,0.125841042831383,0.125841042831383,-105.0087381,39.7860102,-105.0101778,39.7862486
-3974,3765,3766,0.0155018141702848,0.0155018141702848,-104.9406029,39.7291831,-104.9407704,39.7291298
-3975,3766,3769,0.0925922303926536,0.0925922303926536,-104.9407704,39.7291298,-104.9418526,39.7291037
-3976,3769,450,0.0446743427321934,0.0446743427321934,-104.9418526,39.7291037,-104.942375,39.7291047
-3977,450,855,0.0454696499518695,0.0454696499518695,-104.942375,39.7291047,-104.9429067,39.7291057
-3978,855,3770,0.0458292249661059,0.0458292249661059,-104.9429067,39.7291057,-104.9434426,39.7291077
-5269,4111,4741,0.0999126780220414,0.0999126780220414,-104.9509907,39.7225605,-104.9498232,39.7225289
-3979,3770,3771,0.0463680305523856,0.0463680305523856,-104.9434426,39.7291077,-104.9439848,39.7291098
-3982,3777,3778,0.0472655889206378,0.0472655889206378,-104.9450973,39.7291163,-104.94565,39.7291176
-3983,3778,3456,0.0457775618734605,0.0457775618734605,-104.94565,39.7291176,-104.9461853,39.7291188
-3984,3456,3779,0.0949352444381587,0.0949352444381587,-104.9461853,39.7291188,-104.9472954,39.7291251
-3985,3779,3780,0.0949175907228116,0.0949175907228116,-104.9472954,39.7291251,-104.9484053,39.7291307
-3986,3780,3781,0.0934360991992659,0.0934360991992659,-104.9484053,39.7291307,-104.9494979,39.7291309
-3987,3781,3782,0.0927263272279538,0.0927263272279538,-104.9494979,39.7291309,-104.9505822,39.7291315
-3988,3782,2659,0.0984051754942233,0.0984051754942233,-104.9505822,39.7291315,-104.9517329,39.7291286
-3989,2659,2053,0.0987467204032972,0.0987467204032972,-104.9517329,39.7291286,-104.9528876,39.7291288
-3990,2053,3783,0.0990728400130522,0.0990728400130522,-104.9528876,39.7291288,-104.9540461,39.7291245
-3991,3783,3784,0.0514218472521816,0.0514218472521816,-104.9540461,39.7291245,-104.9546474,39.7291228
-3992,3784,3785,0.0779176889813446,0.0779176889813446,-104.9546474,39.7291228,-104.9555585,39.7291167
-3993,3785,3786,0.0982592928032825,0.0982592928032825,-104.9555585,39.7291167,-104.9567075,39.7291164
-3994,3786,3344,0.100047583059044,0.100047583059044,-104.9567075,39.7291164,-104.9578774,39.7291204
-3995,3344,3787,0.0997075658602957,0.0997075658602957,-104.9578774,39.7291204,-104.9590433,39.7291134
-3998,3789,1013,0.0991145515008367,0.0991145515008367,-104.9613527,39.7291055,-104.9625117,39.7291044
-3999,1013,3790,0.0988154439008836,0.0988154439008836,-104.9625117,39.7291044,-104.9636672,39.7291023
-4000,3790,3147,0.100818484811759,0.100818484811759,-104.9636672,39.7291023,-104.9648461,39.7290963
-4001,3147,3128,0.0882379333310365,0.0882379333310365,-104.9648461,39.7290963,-104.9658779,39.7290921
-4002,3128,3791,0.10924064572907,0.10924064572907,-104.9658779,39.7290921,-104.9671553,39.7290881
-4003,3791,3792,0.0990892368110052,0.0990892368110052,-104.9671553,39.7290881,-104.968314,39.7290856
-4004,3792,3793,0.0983279071551189,0.0983279071551189,-104.968314,39.7290856,-104.9694638,39.729084
-4005,3793,3794,0.0488397000978433,0.0488397000978433,-104.9694638,39.729084,-104.9700349,39.7290815
-4006,3794,3795,0.0500279563406491,0.0500279563406491,-104.9700349,39.7290815,-104.9706199,39.7290832
-4007,3795,2868,0.0499678370514067,0.0499678370514067,-104.9706199,39.7290832,-104.9712042,39.7290823
-4008,2868,3796,0.048583428681526,0.048583428681526,-104.9712042,39.7290823,-104.9717723,39.7290794
-4009,3796,3797,0.0504566053315115,0.0504566053315115,-104.9717723,39.7290794,-104.9723623,39.729076
-4011,3798,3799,0.0451531325504455,0.0451531325504455,-104.9729432,39.7290745,-104.9734712,39.7290748
-4012,3799,983,0.0519296915637561,0.0519296915637561,-104.9734712,39.7290748,-104.9740784,39.7290693
-4015,3801,3802,0.0483738114958222,0.0483738114958222,-104.9764057,39.7290681,-104.9769713,39.7290617
-4016,3802,3803,0.0519812355103751,0.0519812355103751,-104.9769713,39.7290617,-104.977579,39.7290515
-4017,3803,3804,0.101642680761132,0.101642680761132,-104.977579,39.7290515,-104.9787675,39.7290609
-4018,3804,3805,0.100202026962745,0.100202026962745,-104.9787675,39.7290609,-104.9799392,39.7290657
-4019,3805,3806,0.0490200510242293,0.0490200510242293,-104.9799392,39.7290657,-104.9805124,39.7290692
-4020,3806,3159,0.0527906095396228,0.0527906095396228,-104.9805124,39.7290692,-104.9811297,39.7290666
-4021,3159,3807,0.0508058777981011,0.0508058777981011,-104.9811297,39.7290666,-104.9817238,39.7290659
-4022,3807,3808,0.0547154240766913,0.0547154240766913,-104.9817238,39.7290659,-104.9823636,39.7290623
-4023,3808,3809,0.105580069148102,0.105580069148102,-104.9823636,39.7290623,-104.9835982,39.729065
-4025,3810,3811,0.0543737037127348,0.0543737037127348,-104.9842348,39.7290698,-104.9848706,39.7290738
-16058,9242,237,0.236847878323095,0.236847878323095,-105.0223459,39.7257626,-105.0251054,39.7259431
-4026,3811,3812,0.108778018122892,0.108778018122892,-104.9848706,39.7290738,-104.9861426,39.7290747
-4027,3812,1620,0.10920973774803,0.10920973774803,-104.9861426,39.7290747,-104.9874196,39.7290833
-4029,3813,3814,0.083969278056869,0.083969278056869,-105.0403593,39.7474155,-105.039412,39.7472161
-4031,3815,3816,0.139162136479248,0.139162136479248,-105.0374612,39.7461303,-105.0366061,39.7450654
-4032,3816,3817,0.128842029582485,0.128842029582485,-105.0366061,39.7450654,-105.0369844,39.7439438
-4034,3818,2303,0.104861015321702,0.104861015321702,-105.0107164,39.6967417,-105.0106836,39.695799
-4035,2303,130,0.0947837852263858,0.0947837852263858,-105.0106836,39.695799,-105.010718,39.694947
-4036,130,155,0.2039982188818,0.2039982188818,-105.010718,39.694947,-105.0107186,39.6931124
-4037,155,1719,0.251031715971117,0.251031715971117,-105.0107186,39.6931124,-105.0107559,39.690855
-4040,3820,3821,0.253858034970465,0.253858034970465,-105.009791,39.7062461,-105.0097899,39.7039631
-4041,3821,765,0.158798770965753,0.158798770965753,-105.0097899,39.7039631,-105.0097824,39.702535
-4042,765,3822,0.38766252452626,0.38766252452626,-105.0097824,39.702535,-105.0105281,39.6990962
-4044,3823,3824,0.6423341602363,0.6423341602363,-105.0106786,39.6880414,-105.0099887,39.6822892
-4045,3825,3826,0.0763938085811643,0.0763938085811643,-105.0104126,39.6901747,-105.0104297,39.6894878
-5338,4787,4788,0.201919584850824,0.201919584850824,-105.0135283,39.7856151,-105.013522,39.787431
-4049,3828,3829,0.0709013283805701,0.0709013283805701,-104.9277565,39.7065566,-104.9269277,39.7065525
-4051,3830,3831,0.161299122027925,0.161299122027925,-104.9241221,39.7061949,-104.9222367,39.7061777
-4052,3832,3833,0.0520709463921909,0.0520709463921909,-105.042608,39.748115,-105.0428186,39.7485544
-4054,3834,3835,0.133913000116738,0.133913000116738,-105.0428357,39.748759,-105.0428416,39.7499633
-4055,3835,3836,0.135958385150602,0.135958385150602,-105.0428416,39.7499633,-105.042838,39.751186
-4059,3838,3839,0.195689058153451,0.195689058153451,-105.042617,39.731277,-105.0427707,39.7330329
-4061,3840,3841,0.104161008191779,0.104161008191779,-105.0428396,39.7539325,-105.042828,39.7548692
-4062,3841,3842,0.204332097790775,0.204332097790775,-105.042828,39.7548692,-105.0428239,39.7567068
-4063,3842,2989,0.198305038809848,0.198305038809848,-105.0428239,39.7567068,-105.0428245,39.7584902
-4064,2989,3843,0.202007841321225,0.202007841321225,-105.0428245,39.7584902,-105.0428235,39.7603069
-4065,3843,3844,0.201085745402869,0.201085745402869,-105.0428235,39.7603069,-105.0428303,39.7621153
-4066,3844,3845,0.203153756914823,0.203153756914823,-105.0428303,39.7621153,-105.0428244,39.7639423
-4067,3845,3846,0.201463782012409,0.201463782012409,-105.0428244,39.7639423,-105.0428311,39.7657541
-4068,3846,1694,0.201944163047273,0.201944163047273,-105.0428311,39.7657541,-105.0428441,39.7675702
-4069,1694,3847,0.201007884572681,0.201007884572681,-105.0428441,39.7675702,-105.0428508,39.7693779
-4070,3847,2442,0.173966646957408,0.173966646957408,-105.0428508,39.7693779,-105.042861,39.7709424
-4071,2442,3848,0.171462594138623,0.171462594138623,-105.042861,39.7709424,-105.0428601,39.7724844
-5362,4804,4805,0.138916058502817,0.138916058502817,-105.0127751,39.765645,-105.0127781,39.7668943
-4072,3848,3849,0.15641185610528,0.15641185610528,-105.0428601,39.7724844,-105.0428259,39.7738908
-4073,3849,3850,0.155873108146064,0.155873108146064,-105.0428259,39.7738908,-105.0428243,39.7752926
-4074,3850,3851,0.11951230715733,0.11951230715733,-105.0428243,39.7752926,-105.0428243,39.7763674
-4075,3851,3852,0.0199150113624835,0.0199150113624835,-105.0428243,39.7763674,-105.0428243,39.7765465
-4078,2606,3854,0.176099789319583,0.176099789319583,-105.042706,39.7229718,-105.0427103,39.7245555
-4081,3856,3857,0.204451648584923,0.204451648584923,-105.042767,39.7301122,-105.042745,39.7282736
-4082,3857,3858,0.27633741171005,0.27633741171005,-105.042745,39.7282736,-105.0427081,39.7257886
-4084,3859,3860,0.194935828897222,0.194935828897222,-105.0427473,39.7838664,-105.0427469,39.7856195
-4085,3860,2553,0.201807589121279,0.201807589121279,-105.0427469,39.7856195,-105.0427222,39.7874343
-4086,2553,3861,0.201183796555208,0.201183796555208,-105.0427222,39.7874343,-105.0427456,39.7892435
-4087,3861,3862,0.206144933368939,0.206144933368939,-105.0427456,39.7892435,-105.0427395,39.7910974
-4088,3863,3864,0.174004040356707,0.174004040356707,-105.0432639,39.7165811,-105.0432811,39.7181459
-4089,3864,3865,0.176177241775495,0.176177241775495,-105.0432811,39.7181459,-105.0432811,39.7197303
-4090,3865,3866,0.0719661295510201,0.0719661295510201,-105.0432811,39.7197303,-105.043285,39.7203775
-4091,3866,1862,0.105391351050826,0.105391351050826,-105.043285,39.7203775,-105.0432898,39.7213253
-4092,1862,2607,0.183084733810089,0.183084733810089,-105.0432898,39.7213253,-105.0433005,39.7229718
-4094,3867,3868,0.135844661693153,0.135844661693153,-105.0428222,39.7354157,-105.0427949,39.7366372
-4096,1431,3869,0.122681533981215,0.122681533981215,-105.0427404,39.7820827,-105.042738,39.783186
-4099,3870,3871,0.0814181379314414,0.0814181379314414,-104.9440689,39.7789476,-104.9440637,39.7796798
-4101,3038,3872,0.194090812408951,0.194090812408951,-104.9440088,39.7590496,-104.9440107,39.7607951
-4103,3579,3873,0.140995166985651,0.140995166985651,-104.944148,39.7544343,-104.944148,39.7557023
-4104,3873,3874,0.0908684940539539,0.0908684940539539,-104.944148,39.7557023,-104.944148,39.7565195
-4108,2397,3876,0.142303739641396,0.142303739641396,-104.9440793,39.7738645,-104.9440965,39.7751442
-4110,3877,702,0.203534713775632,0.203534713775632,-104.9442025,39.7401262,-104.9442165,39.7419566
-4111,702,3878,0.201204188260029,0.201204188260029,-104.9442165,39.7419566,-104.9441954,39.743766
-4113,3879,3880,0.176189861258557,0.176189861258557,-104.9437605,39.7162182,-104.943752,39.7178027
-4114,3880,2357,0.178601291381029,0.178601291381029,-104.943752,39.7178027,-104.9437521,39.7194089
-4115,2357,3881,0.172977248757485,0.172977248757485,-104.9437521,39.7194089,-104.9437414,39.7209645
-4116,3881,3882,0.173963704924205,0.173963704924205,-104.9437414,39.7209645,-104.9437636,39.7225289
-4117,3882,3883,0.177248873598787,0.177248873598787,-104.9437636,39.7225289,-104.9437494,39.7241229
-4118,3883,3884,0.165174683174039,0.165174683174039,-104.9437494,39.7241229,-104.9437333,39.7256083
-4120,3885,899,0.068233075024198,0.068233075024198,-104.9438132,39.7638697,-104.9438047,39.7644833
-4121,899,3886,0.136382558439915,0.136382558439915,-104.9438047,39.7644833,-104.9437961,39.7657098
-4123,3887,2246,0.064586200340924,0.064586200340924,-104.9634899,39.7328812,-104.9634985,39.733462
-4126,3889,3890,0.173108811078515,0.173108811078515,-104.9634771,39.7368204,-104.9634822,39.7383772
-4128,3891,673,0.180805922237936,0.180805922237936,-104.9634356,39.7399908,-104.963462,39.7416167
-4129,673,3892,0.00347134617206091,0.00347134617206091,-104.963462,39.7416167,-104.9634634,39.7416479
-4131,3893,3894,0.173412160606882,0.173412160606882,-104.9634575,39.7432314,-104.9634443,39.7447909
-4132,3894,3686,0.239804659108201,0.239804659108201,-104.9634443,39.7447909,-104.9634548,39.7469475
-4133,3686,3895,0.139339505088047,0.139339505088047,-104.9634548,39.7469475,-104.9634614,39.7482006
-4134,3895,1293,0.0712429362693845,0.0712429362693845,-104.9634614,39.7482006,-104.9634588,39.7488413
-4136,3896,3897,0.00461464942878269,0.00461464942878269,-104.9634682,39.7494224,-104.9634629,39.7494637
-4137,3897,3898,0.00296969221564957,0.00296969221564957,-104.9634629,39.7494637,-104.9634621,39.7494904
-4138,3898,3899,0.135099018741423,0.135099018741423,-104.9634621,39.7494904,-104.9634285,39.7507051
-4139,3899,3900,0.133736401013675,0.133736401013675,-104.9634285,39.7507051,-104.9634376,39.7519078
-4140,3900,826,0.1432668721319,0.1432668721319,-104.9634376,39.7519078,-104.9634614,39.7531961
-4141,826,3567,0.140539270126583,0.140539270126583,-104.9634614,39.7531961,-104.9634611,39.75446
-4142,3567,3901,0.141736858580205,0.141736858580205,-104.9634611,39.75446,-104.9634785,39.7557346
-4143,3901,3902,0.138513379846183,0.138513379846183,-104.9634785,39.7557346,-104.9634441,39.75698
-4144,3902,3903,0.137738276341516,0.137738276341516,-104.9634441,39.75698,-104.9634376,39.7582187
-4145,3903,3041,0.133834213982,0.133834213982,-104.9634376,39.7582187,-104.9634377,39.7594223
-4146,3041,3904,0.143195912483998,0.143195912483998,-104.9634377,39.7594223,-104.9634577,39.76071
-4147,3904,3905,0.00371612313723013,0.00371612313723013,-104.9634577,39.76071,-104.9634562,39.7607434
-4148,3905,3906,0.138485181869722,0.138485181869722,-104.9634562,39.7607434,-104.9634455,39.7619888
-4150,1161,880,0.143460648556329,0.143460648556329,-104.9634876,39.7632183,-104.9634376,39.7645079
-4151,880,3907,0.137181190587279,0.137181190587279,-104.9634376,39.7645079,-104.9634382,39.7657416
-4152,3907,2788,0.133979203320047,0.133979203320047,-104.9634382,39.7657416,-104.9634422,39.7669465
-4154,3908,3909,0.11929025073176,0.11929025073176,-104.9634409,39.7681351,-104.9634376,39.7692079
-4155,3909,3910,0.092551367353814,0.092551367353814,-104.9634376,39.7692079,-104.9634764,39.7700397
-4157,734,1555,0.128698646905998,0.128698646905998,-104.9634771,39.7765229,-104.9634695,39.7776803
-4158,1555,3911,0.10223670466325,0.10223670466325,-104.9634695,39.7776803,-104.9634588,39.7785997
-4159,3911,3912,0.0209102658501846,0.0209102658501846,-104.9634588,39.7785997,-104.9632656,39.7787151
-4160,3913,3914,0.290781445277807,0.290781445277807,-104.963317,39.7183519,-104.9633401,39.7209669
-4161,3914,3915,0.112536676265492,0.112536676265492,-104.9633401,39.7209669,-104.963325,39.7219789
-4162,3915,3916,0.199777886092506,0.199777886092506,-104.963325,39.7219789,-104.9634696,39.7237721
-4163,3916,3917,0.0912727874005277,0.0912727874005277,-104.9634696,39.7237721,-104.963416,39.7245919
-4164,3917,3918,0.112620851967747,0.112620851967747,-104.963416,39.7245919,-104.963425,39.7256047
-4166,3919,1187,0.167283340526576,0.167283340526576,-104.963647,39.7256059,-104.9636558,39.7271103
-4167,1187,3920,0.0212753866211399,0.0212753866211399,-104.9636558,39.7271103,-104.9636605,39.7273016
-4168,3920,3790,0.200229524215252,0.200229524215252,-104.9636605,39.7273016,-104.9636672,39.7291023
-4169,3790,3921,0.153151160013799,0.153151160013799,-104.9636672,39.7291023,-104.9636772,39.7304796
-4170,3921,3922,0.0549370836226997,0.0549370836226997,-104.9636772,39.7304796,-104.9636873,39.7309736
-4171,3923,3924,0.0360721076371334,0.0360721076371334,-104.9635686,39.7725675,-104.9635579,39.7728918
-4174,706,3926,0.117999308023824,0.117999308023824,-105.0041014,39.7624043,-105.0032486,39.7632388
-4175,3926,3702,0.0450373928319521,0.0450373928319521,-105.0032486,39.7632388,-105.0029777,39.7635862
-4176,3702,3927,0.114850773809758,0.114850773809758,-105.0029777,39.7635862,-105.0021843,39.7644198
-4177,3927,3928,0.0608860897951607,0.0608860897951607,-105.0021843,39.7644198,-105.0017582,39.7648586
-4178,3928,3929,0.107271550927247,0.107271550927247,-105.0017582,39.7648586,-105.0010599,39.7656602
-4180,3930,1666,0.1330788885459,0.1330788885459,-105.0005956,39.7668504,-105.0005902,39.7680472
-4181,1666,3931,0.137468360449037,0.137468360449037,-105.0005902,39.7680472,-105.0005716,39.7692834
-4182,3931,2447,0.134834989989903,0.134834989989903,-105.0005716,39.7692834,-105.0005707,39.770496
-4183,2447,3237,0.140199730422516,0.140199730422516,-105.0005707,39.770496,-105.0006308,39.771756
-4184,3237,3933,0.138639782785987,0.138639782785987,-105.0006308,39.771756,-105.0006222,39.7730028
-4185,3933,3934,0.138811739329711,0.138811739329711,-105.0006222,39.7730028,-105.0005888,39.7742509
-4186,3934,3935,0.134204059449961,0.134204059449961,-105.0005888,39.7742509,-105.0005661,39.7754577
-4187,3935,3936,0.123276584845079,0.123276584845079,-105.0005661,39.7754577,-105.0005802,39.7765663
-4189,3937,3938,0.126045478045544,0.126045478045544,-104.9998498,39.7419149,-105.0001475,39.7408047
-4190,3938,3939,0.0651492893105391,0.0651492893105391,-105.0001475,39.7408047,-105.0001493,39.7402188
-4191,3939,3940,0.0221401135391512,0.0221401135391512,-105.0001493,39.7402188,-105.000152,39.7400197
-4192,3940,3941,0.0717318471783874,0.0717318471783874,-105.000152,39.7400197,-105.000152,39.7393746
-4195,3943,3944,0.176615684469352,0.176615684469352,-105.0001422,39.736875,-105.0001574,39.7352867
-4196,3944,3947,0.176604135108539,0.176604135108539,-105.0001574,39.7352867,-105.0001429,39.7336985
-4197,3947,3948,0.122323573259462,0.122323573259462,-105.0001429,39.7336985,-105.0001604,39.7325985
-4198,3948,3949,0.0559214984515419,0.0559214984515419,-105.0001604,39.7325985,-105.0001653,39.7320956
-5481,4892,3459,0.0941890822437752,0.0941890822437752,-104.947281,39.73512,-104.9461795,39.735119
-4199,3949,3950,0.176269184745743,0.176269184745743,-105.0001653,39.7320956,-105.0001773,39.7305104
-4200,3950,3951,0.05590117541301,0.05590117541301,-105.0001773,39.7305104,-105.0001846,39.7300077
-4201,3951,3952,0.122088386939327,0.122088386939327,-105.0001846,39.7300077,-105.0002004,39.7289098
-4202,3952,3953,0.0603148497739477,0.0603148497739477,-105.0002004,39.7289098,-105.0001937,39.7283674
-4203,3953,3954,0.117311769773874,0.117311769773874,-105.0001937,39.7283674,-105.0001997,39.7273124
-4204,3954,3955,0.0719490460324168,0.0719490460324168,-105.0001997,39.7273124,-105.0001889,39.7266654
-4205,3955,3956,0.106538056002006,0.106538056002006,-105.0001889,39.7266654,-105.0001441,39.7257079
-4206,3956,3957,0.177243078500478,0.177243078500478,-105.0001441,39.7257079,-105.0001757,39.7241141
-4207,3957,2623,0.176288453506598,0.176288453506598,-105.0001757,39.7241141,-105.0001766,39.7225287
-4208,2623,3958,0.177546592271005,0.177546592271005,-105.0001766,39.7225287,-105.0002015,39.7209321
-4209,3958,3960,0.168966442415293,0.168966442415293,-105.0002015,39.7209321,-105.0001852,39.7194126
-4210,3960,3961,0.111586533238696,0.111586533238696,-105.0001852,39.7194126,-105.0001766,39.7184091
-4213,3963,3964,0.265623714493738,0.265623714493738,-105.0016187,39.7886302,-105.0017217,39.7910177
-4214,3965,3966,0.511616430940774,0.511616430940774,-105.0003399,39.7837825,-105.0005888,39.7883796
-4216,1726,3967,0.0896760315303362,0.0896760315303362,-105.0185407,39.6908154,-105.0184978,39.6900096
-4217,3967,3968,0.0558858522230369,0.0558858522230369,-105.0184978,39.6900096,-105.0184635,39.6895077
-4218,3968,3969,0.109150490871186,0.109150490871186,-105.0184635,39.6895077,-105.0184567,39.6885261
-4219,3970,3971,0.202576252334461,0.202576252334461,-105.0298017,39.7293298,-105.0298103,39.7311516
-4220,3971,3972,0.199655908563659,0.199655908563659,-105.0298103,39.7311516,-105.0298275,39.7329471
-4221,3972,3973,0.201550568367269,0.201550568367269,-105.0298275,39.7329471,-105.0298507,39.7347596
-4223,3974,3975,0.0432784618651284,0.0432784618651284,-105.0299675,39.7647258,-105.029931,39.765114
-4224,3975,3976,0.0119312921672435,0.0119312921672435,-105.029931,39.765114,-105.0299305,39.7652213
-4225,3976,3977,0.0412856988441699,0.0412856988441699,-105.0299305,39.7652213,-105.029946,39.7655924
-4226,3977,3978,0.00523979822286268,0.00523979822286268,-105.029946,39.7655924,-105.0299479,39.7656395
-4227,3978,3979,0.0456580481243959,0.0456580481243959,-105.0299479,39.7656395,-105.0299437,39.7660501
-4228,3979,3980,0.0491163050630244,0.0491163050630244,-105.0299437,39.7660501,-105.0299392,39.7664918
-4229,3980,3981,0.0519851803283443,0.0519851803283443,-105.0299392,39.7664918,-105.0299345,39.7669593
-4230,3981,1662,0.0500503143032265,0.0500503143032265,-105.0299345,39.7669593,-105.02993,39.7674094
-4231,1662,3982,0.0526516968240738,0.0526516968240738,-105.02993,39.7674094,-105.0299336,39.7678829
-4232,3982,3983,0.0511950181994891,0.0511950181994891,-105.0299336,39.7678829,-105.0299371,39.7683433
-4233,3983,3984,0.0508169123465841,0.0508169123465841,-105.0299371,39.7683433,-105.0299405,39.7688003
-16267,5831,9866,0.203286686616951,0.203286686616951,-104.9586821,39.6911399,-104.9586795,39.6929681
-4234,3984,3985,0.0684638947838088,0.0684638947838088,-105.0299405,39.7688003,-105.0299452,39.769416
-4235,3985,3986,0.0523508233196537,0.0523508233196537,-105.0299452,39.769416,-105.0299471,39.7698868
-4236,3986,3987,0.0497154897229056,0.0497154897229056,-105.0299471,39.7698868,-105.0299489,39.7703339
-4237,3987,2423,0.0326188031399601,0.0326188031399601,-105.0299489,39.7703339,-105.0299558,39.7706272
-4238,2423,3988,0.017392306107988,0.017392306107988,-105.0299558,39.7706272,-105.0299532,39.7707836
-4239,3988,3989,0.0330055324383025,0.0330055324383025,-105.0299532,39.7707836,-105.0299481,39.7710804
-4240,3989,3990,0.0159023099545875,0.0159023099545875,-105.0299481,39.7710804,-105.0299456,39.7712234
-4241,3990,3991,0.049454634736183,0.049454634736183,-105.0299456,39.7712234,-105.0299548,39.7716681
-4244,3992,3993,0.049036974566433,0.049036974566433,-105.0299454,39.772124,-105.029945,39.772565
-4245,3993,3994,0.0522504960301449,0.0522504960301449,-105.029945,39.772565,-105.029945,39.7730349
-4246,3994,3995,0.113779671004445,0.113779671004445,-105.029945,39.7730349,-105.0298909,39.7740573
-4247,3995,3996,0.292866933952659,0.292866933952659,-105.0298909,39.7740573,-105.0298791,39.7766911
-4248,3996,3997,0.135719788812757,0.135719788812757,-105.0298791,39.7766911,-105.0298945,39.7779116
-4249,3997,2492,0.131298969381918,0.131298969381918,-105.0298945,39.7779116,-105.0298945,39.7790924
-4250,2492,2838,0.134023703042734,0.134023703042734,-105.0298945,39.7790924,-105.0298986,39.7802977
-4252,3998,3999,0.177673273882055,0.177673273882055,-105.0299945,39.7165481,-105.0300116,39.7181459
-4253,3999,4000,0.178724202369687,0.178724202369687,-105.0300116,39.7181459,-105.0300062,39.7197532
-4254,4000,4001,0.0914256352612055,0.0914256352612055,-105.0300062,39.7197532,-105.0300116,39.7205754
-4255,1820,4002,0.0854127756728086,0.0854127756728086,-105.0299828,39.7262896,-105.0300499,39.727056
-4256,4002,4003,0.0734940058422204,0.0734940058422204,-105.0300499,39.727056,-105.0300602,39.7277169
-4257,4003,4004,0.122094789640982,0.122094789640982,-105.0300602,39.7277169,-105.0300506,39.7288149
-4260,4006,4007,0.167588698662527,0.167588698662527,-105.0299104,39.7841207,-105.0298927,39.7856278
-4261,4007,4008,0.199884724997956,0.199884724997956,-105.0298927,39.7856278,-105.0298864,39.7874254
-4262,4008,4009,0.0119868161378673,0.0119868161378673,-105.0298864,39.7874254,-105.0298863,39.7875332
-4263,371,1930,0.0503613323391642,0.0503613323391642,-105.0298176,39.7380301,-105.0298394,39.7384827
-4264,1930,1940,0.0838300296248713,0.0838300296248713,-105.0298394,39.7384827,-105.0298414,39.7392366
-4265,1940,4010,0.121947021037263,0.121947021037263,-105.0298414,39.7392366,-105.0298922,39.7403326
-4266,4010,4011,0.132309346356631,0.132309346356631,-105.0298922,39.7403326,-105.0299552,39.7415215
-4267,4011,4012,0.135165905730987,0.135165905730987,-105.0299552,39.7415215,-105.0299375,39.742737
-4268,4012,4013,0.133333876014397,0.133333876014397,-105.0299375,39.742737,-105.0299387,39.7439361
-4270,4014,12,0.13580168948729,0.13580168948729,-105.0299558,39.7451547,-105.0299361,39.7463759
-4271,12,4015,0.00286884184731271,0.00286884184731271,-105.0299361,39.7463759,-105.0299362,39.7464017
-4272,4015,4016,0.132033234839576,0.132033234839576,-105.0299362,39.7464017,-105.0299399,39.7475891
-4273,4016,4017,0.133567851795101,0.133567851795101,-105.0299399,39.7475891,-105.0299442,39.7487903
-4274,4017,4018,0.134726706981619,0.134726706981619,-105.0299442,39.7487903,-105.0299546,39.7500019
-4275,4018,4019,0.130892412762661,0.130892412762661,-105.0299546,39.7500019,-105.0299414,39.751179
-4276,4019,4020,0.134212591203429,0.134212591203429,-105.0299414,39.751179,-105.029938,39.752386
-4277,4020,4021,0.133433911973159,0.133433911973159,-105.029938,39.752386,-105.029938,39.753586
-4278,4021,4022,0.137281795417315,0.137281795417315,-105.029938,39.753586,-105.0299425,39.7548206
-4280,4023,4024,0.0689781307016059,0.0689781307016059,-105.0299339,39.7560479,-105.0299253,39.7566682
-4281,4024,4025,0.0667654814327236,0.0667654814327236,-105.0299253,39.7566682,-105.0299339,39.7572686
-5576,4965,4966,0.209377126181678,0.209377126181678,-105.0250665,39.7049175,-105.027514,39.7049206
-4290,4029,1890,0.0489976212541555,0.0489976212541555,-105.0299179,39.761227,-105.0299096,39.7616676
-4291,1890,4030,0.050071397214541,0.050071397214541,-105.0299096,39.7616676,-105.0299117,39.7621179
-4293,4031,2858,0.24990384929118,0.24990384929118,-105.0014483,39.6972057,-105.0043357,39.6975452
-4301,1703,4036,0.19686036595886,0.19686036595886,-104.9887113,39.6911776,-104.9887542,39.6894075
-4302,4036,4037,2.41616418836648,2.41616418836648,-104.9887542,39.6894075,-104.9888339,39.6676785
-4303,4038,4039,0.0356847858191414,0.0356847858191414,-105.0175833,39.7177827,-105.0178323,39.7180402
-4305,4040,4041,0.105425319125276,0.105425319125276,-105.0250969,39.7181465,-105.0263295,39.7181459
-4306,4041,2256,0.104244973047941,0.104244973047941,-105.0263295,39.7181459,-105.0275483,39.7181459
-4307,2256,4042,0.103519804078257,0.103519804078257,-105.0275483,39.7181459,-105.0287585,39.7181591
-4309,3999,4043,0.105003607246795,0.105003607246795,-105.0300116,39.7181459,-105.031239,39.7181657
-17679,10164,8262,0.207810693253635,0.207810693253635,-104.9860095,39.7800376,-104.9882873,39.7806922
-4315,4048,3390,0.0527412463264476,0.0527412463264476,-105.0343046,39.7181492,-105.0349211,39.7181393
-4316,3390,4049,0.0507539981345734,0.0507539981345734,-105.0349211,39.7181393,-105.0355145,39.7181393
-4317,4049,4050,0.0520284075919789,0.0520284075919789,-105.0355145,39.7181393,-105.0361228,39.7181393
-4318,4050,3408,0.0512087059000605,0.0512087059000605,-105.0361228,39.7181393,-105.0367215,39.7181427
-4319,3408,4051,0.0486341315555791,0.0486341315555791,-105.0367215,39.7181427,-105.0372901,39.7181459
-4320,4051,4053,0.052533034496925,0.052533034496925,-105.0372901,39.7181459,-105.0379043,39.7181459
-4321,4053,4054,0.0524475036704537,0.0524475036704537,-105.0379043,39.7181459,-105.0385175,39.7181459
-4322,4054,4055,0.0498829272923159,0.0498829272923159,-105.0385175,39.7181459,-105.0391007,39.7181492
-4327,4058,4059,0.051190260382352,0.051190260382352,-105.0420963,39.7181446,-105.0426948,39.7181453
-4328,4059,3864,0.0501467689985101,0.0501467689985101,-105.0426948,39.7181453,-105.0432811,39.7181459
-4329,3864,4060,0.0537746384669306,0.0537746384669306,-105.0432811,39.7181459,-105.0439098,39.7181494
-4330,4060,4061,0.0463502740457097,0.0463502740457097,-105.0439098,39.7181494,-105.0444517,39.7181523
-4331,4061,4062,0.0561959746447094,0.0561959746447094,-105.0444517,39.7181523,-105.0451087,39.7181568
-4357,4082,4083,0.157884781724872,0.157884781724872,-105.0063995,39.7838419,-105.0082472,39.7838436
-4332,4062,4063,0.69866413721226,0.69866413721226,-105.0451087,39.7181568,-105.0532725,39.7183717
-4333,1273,4064,0.135036752261437,0.135036752261437,-105.0204988,39.7487979,-105.0220781,39.7487781
-4334,4064,4065,0.129590074598046,0.129590074598046,-105.0220781,39.7487781,-105.0235939,39.7487791
-4335,4065,4066,0.132616575444838,0.132616575444838,-105.0235939,39.7487791,-105.0251451,39.7487806
-4344,4073,1390,0.0502435222683857,0.0502435222683857,-105.0316273,39.7838408,-105.0322152,39.7838328
-4345,1390,4074,0.0493046140403362,0.0493046140403362,-105.0322152,39.7838328,-105.0327922,39.7838345
-4346,4074,4075,0.0491422603337744,0.0491422603337744,-105.0327922,39.7838345,-105.0333673,39.7838362
-4351,4078,4079,0.241190031557862,0.241190031557862,-104.9910214,39.7840807,-104.9938425,39.7841519
-4352,4079,4080,0.258242852029617,0.258242852029617,-104.9938425,39.7841519,-104.9968637,39.7840925
-4353,4080,1629,0.215143938153131,0.215143938153131,-104.9968637,39.7840925,-104.9993614,39.7838485
-4354,1629,3965,0.0839336295727996,0.0839336295727996,-104.9993614,39.7838485,-105.0003399,39.7837825
-4364,1214,4088,0.0489795542886091,0.0489795542886091,-105.0123769,39.7838268,-105.0129501,39.7838266
-4365,4088,4089,0.0498843047924572,0.0498843047924572,-105.0129501,39.7838266,-105.0135338,39.7838344
-4366,4089,4090,0.0487540785114809,0.0487540785114809,-105.0135338,39.7838344,-105.0141021,39.7838734
-4367,4090,2167,0.0506698655714413,0.0506698655714413,-105.0141021,39.7838734,-105.014692,39.7839198
-4368,2167,4091,0.0491950203791528,0.0491950203791528,-105.014692,39.7839198,-105.0152654,39.7839595
-4369,4091,4092,0.0488189222411035,0.0488189222411035,-105.0152654,39.7839595,-105.0158347,39.7839964
-4378,1289,4100,0.0495624053047352,0.0495624053047352,-105.0204845,39.7839453,-105.0210503,39.7840434
-4379,4100,4101,0.0531970268279652,0.0531970268279652,-105.0210503,39.7840434,-105.0216462,39.7841819
-4380,4101,4102,0.0527877658733148,0.0527877658733148,-105.0216462,39.7841819,-105.0222318,39.7843331
-4381,4102,4103,0.0491029186922276,0.0491029186922276,-105.0222318,39.7843331,-105.0227805,39.7844643
-4382,4103,4104,0.053313065445571,0.053313065445571,-105.0227805,39.7844643,-105.0233734,39.7846136
-18127,10262,10268,0.40641745688608,0.40641745688608,-105.0187307,39.7874319,-105.0187307,39.7910869
-4394,4109,2351,0.147790101003017,0.147790101003017,-104.9511309,39.7180926,-104.9509887,39.7194172
-4395,2351,4110,0.174343137234229,0.174343137234229,-104.9509887,39.7194172,-104.9509941,39.7209851
-4396,4110,4111,0.175176728788125,0.175176728788125,-104.9509941,39.7209851,-104.9509907,39.7225605
-4397,4111,4112,0.174887842567366,0.174887842567366,-104.9509907,39.7225605,-104.950986,39.7241333
-4398,4112,4113,0.163616410243985,0.163616410243985,-104.950986,39.7241333,-104.9509997,39.7256047
-14847,9428,3841,0.049872105512027,0.049872105512027,-105.0422446,39.7548692,-105.042828,39.7548692
-14848,3841,9429,0.0507867978829422,0.0507867978829422,-105.042828,39.7548692,-105.0434221,39.7548692
-14849,9429,5551,0.0504705023896622,0.0504705023896622,-105.0434221,39.7548692,-105.0440125,39.7548692
-14850,5551,9430,0.0160626819091423,0.0160626819091423,-105.0440125,39.7548692,-105.0442004,39.7548692
-324,207,268,0.0408317858918375,0.0408317858918375,-104.9565607,39.7445824,-104.9564977,39.7449464
-14851,9430,9431,0.771810690268124,0.771810690268124,-105.0442004,39.7548692,-105.0532289,39.7548401
-14860,2500,9438,0.0367185859571526,0.0367185859571526,-105.0073403,39.7545386,-105.0069699,39.7547058
-14866,8307,6350,0.0205009601935279,0.0205009601935279,-105.0043265,39.7546417,-105.0044986,39.7547701
-14871,2450,3240,0.14088111565627,0.14088111565627,-105.0054661,39.7705389,-105.0054318,39.7718056
-14873,5733,5517,0.138655367104914,0.138655367104914,-105.005421,39.7730569,-105.0054468,39.7743037
-14874,5517,9442,0.136397019838813,0.136397019838813,-105.0054468,39.7743037,-105.0054327,39.7755303
-14875,9442,6920,0.112250527906817,0.112250527906817,-105.0054327,39.7755303,-105.005407,39.7765396
-14877,6505,9443,0.246198454475103,0.246198454475103,-104.9400719,39.7833944,-104.9371907,39.7833908
-14878,9443,9444,0.0254384620147021,0.0254384620147021,-104.9371907,39.7833908,-104.936893,39.7833912
-14879,9444,6994,0.4499142851013,0.4499142851013,-104.936893,39.7833912,-104.9316278,39.7834077
-14880,6994,9445,0.29050322706034,0.29050322706034,-104.9316278,39.7834077,-104.9282294,39.7834798
-14881,9445,2104,0.111341186723118,0.111341186723118,-104.9282294,39.7834798,-104.9269661,39.7837251
-14882,2104,9446,1.81122771510753,1.81122771510753,-104.9269661,39.7837251,-104.90577,39.783825
-14883,5328,6848,0.0996617587695029,0.0996617587695029,-105.0327094,39.7111941,-105.0324406,39.710322
-14884,6848,9012,0.0991299503198925,0.0991299503198925,-105.0324406,39.710322,-105.0324235,39.7094306
-14886,7486,7456,0.0976540916227753,0.0976540916227753,-105.0324321,39.7085458,-105.0324406,39.7076676
-14888,5693,9010,0.102057355365657,0.102057355365657,-105.0324406,39.7067365,-105.0324492,39.7058187
-14889,9010,4967,0.099866873546368,0.099866873546368,-105.0324492,39.7058187,-105.0324406,39.7049206
-14890,4967,9021,0.10207838306375,0.10207838306375,-105.0324406,39.7049206,-105.0324149,39.7040028
-14894,8146,9004,0.111615935651551,0.111615935651551,-105.0324321,39.7013349,-105.0324492,39.7003312
-14896,8691,6102,0.204110733056615,0.204110733056615,-104.9408122,39.711121,-104.9408208,39.7092854
-14898,8202,8814,0.0690569326601991,0.0690569326601991,-104.9408446,39.707351,-104.940835,39.70673
-14900,8175,8161,0.034748414576393,0.034748414576393,-104.9406062,39.7111078,-104.9406062,39.7114203
-14901,8161,9450,0.0195282497941032,0.0195282497941032,-104.9406062,39.7114203,-104.9405977,39.7115958
-14902,9450,9315,0.339258874320837,0.339258874320837,-104.9405977,39.7115958,-104.9406148,39.7146468
-14904,8694,8155,0.0907837492404858,0.0907837492404858,-104.9405987,39.7193935,-104.9395373,39.7193869
-14905,8155,7617,0.0954335805182596,0.0954335805182596,-104.9395373,39.7193869,-104.9384215,39.7193869
-14906,7617,7270,0.0932816974435063,0.0932816974435063,-104.9384215,39.7193869,-104.9373314,39.7193605
-14908,4159,8695,0.0152616593160753,0.0152616593160753,-104.9407748,39.7209356,-104.9405977,39.7209188
-14909,8695,8156,0.0918092963851245,0.0918092963851245,-104.9405977,39.7209188,-104.9395248,39.7208924
-14910,8156,7618,0.0923894575376538,0.0923894575376538,-104.9395248,39.7208924,-104.9384446,39.7208988
-14911,7618,7271,0.0946959525813305,0.0946959525813305,-104.9384446,39.7208988,-104.9373374,39.7208988
-14914,2016,353,0.0344076794786212,0.0344076794786212,-104.9349971,39.720897,-104.9345948,39.720897
-14915,353,9451,0.0583270070041971,0.0583270070041971,-104.9345948,39.720897,-104.933915,39.7209388
-14916,9451,2762,0.099099248852826,0.099099248852826,-104.933915,39.7209388,-104.9327571,39.7209716
-14917,2762,7003,0.098484917717332,0.098484917717332,-104.9327571,39.7209716,-104.9316056,39.7209698
-14918,7003,2266,0.0978645165955224,0.0978645165955224,-104.9316056,39.7209698,-104.9304614,39.7209617
-14919,2266,3595,0.100545762919748,0.100545762919748,-104.9304614,39.7209617,-104.929286,39.7209783
-14920,3595,7518,0.100532638471033,0.100532638471033,-104.929286,39.7209783,-104.9281106,39.7209862
-14921,7518,2095,0.100840428744565,0.100840428744565,-104.9281106,39.7209862,-104.9269316,39.7209784
-14922,2095,5977,0.100495257348787,0.100495257348787,-104.9269316,39.7209784,-104.9257568,39.7209954
-14923,5977,7667,0.098120652849283,0.098120652849283,-104.9257568,39.7209954,-104.9246096,39.7209877
-14924,7667,2331,0.102096265330692,0.102096265330692,-104.9246096,39.7209877,-104.9234159,39.7209939
-14925,2331,9453,0.0789173504157379,0.0789173504157379,-104.9234159,39.7209939,-104.9224932,39.720998
-14926,8149,7608,0.0961605881004872,0.0961605881004872,-104.9394514,39.727421,-104.9383271,39.7274078
-14927,7608,7261,0.102411721946463,0.102411721946463,-104.9383271,39.7274078,-104.93713,39.7274324
-14928,7261,7598,0.095880146438169,0.095880146438169,-104.93713,39.7274324,-104.9360089,39.7274241
-14929,7598,2021,0.09187670783236,0.09187670783236,-104.9360089,39.7274241,-104.9349346,39.7274171
-14930,2021,3354,0.0948528618506519,0.0948528618506519,-104.9349346,39.7274171,-104.9338255,39.7274243
-14932,2767,7012,0.0931566808998339,0.0931566808998339,-104.9327231,39.7274245,-104.9316338,39.7274218
-14934,9454,9455,0.0975625637539845,0.0975625637539845,-104.9405378,39.7758344,-104.9405397,39.7767118
-14937,8700,8158,0.0941289748217691,0.0941289748217691,-104.9405826,39.7382932,-104.9394819,39.7382793
-14939,7604,7255,0.0976568291897231,0.0976568291897231,-104.9383746,39.7382991,-104.937234,39.738254
-14940,7255,7591,0.0955299991432501,0.0955299991432501,-104.937234,39.738254,-104.9361168,39.7382474
-14941,7591,9173,0.0963387600574313,0.0963387600574313,-104.9361168,39.7382474,-104.9349904,39.7382277
-14942,9173,9456,0.0980688321229376,0.0980688321229376,-104.9349904,39.7382277,-104.9338436,39.7382407
-14943,9456,2750,0.102866303298183,0.102866303298183,-104.9338436,39.7382407,-104.9326406,39.738234
-14944,2750,7014,0.0961030844605866,0.0961030844605866,-104.9326406,39.738234,-104.9315168,39.7382474
-14945,7014,8215,0.0956816865795296,0.0956816865795296,-104.9315168,39.7382474,-104.9303979,39.7382593
-14947,8212,7523,0.100548507087909,0.100548507087909,-104.9292134,39.7382659,-104.9280376,39.7382791
-14948,7523,2123,0.0946806328213609,0.0946806328213609,-104.9280376,39.7382791,-104.9269303,39.7382791
-14949,2123,5989,0.102767406722396,0.102767406722396,-104.9269303,39.7382791,-104.9257287,39.7382989
-14950,5989,7670,0.0976490581696009,0.0976490581696009,-104.9257287,39.7382989,-104.9245872,39.7382725
-15962,9768,6397,0.0094036846623539,0.0094036846623539,-105.0005192,39.711198,-105.0006291,39.7111959
-14968,7264,7583,0.0956208531243363,0.0956208531243363,-104.9372465,39.7510554,-104.936128,39.7510533
-14969,7583,2000,0.0924757762963627,0.0924757762963627,-104.936128,39.7510533,-104.9350463,39.751049
-14970,2000,3360,0.0937229366395869,0.0937229366395869,-104.9350463,39.751049,-104.93395,39.7510471
-14971,3360,2754,0.0967493265415074,0.0967493265415074,-104.93395,39.7510471,-104.9328183,39.7510492
-14973,7005,2280,0.0993735606220099,0.0993735606220099,-104.931694,39.751069,-104.9305316,39.7510688
-14974,2280,3602,0.103462577447113,0.103462577447113,-104.9305316,39.7510688,-104.9293214,39.7510754
-14975,3602,7527,0.0995273521026476,0.0995273521026476,-104.9293214,39.7510754,-104.9281577,39.7510492
-14976,7527,2135,0.0983330050282197,0.0983330050282197,-104.9281577,39.7510492,-104.9270076,39.7510624
-14977,2135,5992,0.103459989161242,0.103459989161242,-104.9270076,39.7510624,-104.9257974,39.7510624
-14978,5992,7672,0.100271460506145,0.100271460506145,-104.9257974,39.7510624,-104.9246245,39.7510604
-14979,7672,9462,3.03786386467958,3.03786386467958,-104.9246245,39.7510604,-104.889248,39.7536411
-14980,5809,9463,0.110364660453643,0.110364660453643,-104.9873953,39.7433641,-104.9861093,39.7432784
-14989,9464,5043,0.119299198506528,0.119299198506528,-104.9775584,39.7432677,-104.9761631,39.7432623
-14990,5043,7994,0.118519999914902,0.118519999914902,-104.9761631,39.7432623,-104.9747769,39.7432597
-14991,7994,9236,0.117759209590851,0.117759209590851,-104.9747769,39.7432597,-104.9733996,39.7432566
-14992,9236,7973,0.0614780310106107,0.0614780310106107,-104.9733996,39.7432566,-104.9726808,39.7432422
-14994,7142,5131,0.10575888699282,0.10575888699282,-104.9721403,39.7432453,-104.9709034,39.7432539
-14995,5131,4724,0.10504840556341,0.10504840556341,-104.9709034,39.7432539,-104.9696749,39.7432396
-14996,4724,6791,0.107330054626072,0.107330054626072,-104.9696749,39.7432396,-104.9684196,39.7432459
-14997,6791,7363,0.103200510788566,0.103200510788566,-104.9684196,39.7432459,-104.9672126,39.7432396
-14998,7363,5422,0.104113985923971,0.104113985923971,-104.9672126,39.7432396,-104.9659949,39.7432355
-14999,5422,8554,0.105490524385859,0.105490524385859,-104.9659949,39.7432355,-104.9647611,39.7432314
-15000,8554,3893,0.111457422157238,0.111457422157238,-104.9647611,39.7432314,-104.9634575,39.7432314
-15001,3893,1024,0.103888468957379,0.103888468957379,-104.9634575,39.7432314,-104.9622425,39.7432211
-15002,1024,9465,0.0550364598534795,0.0550364598534795,-104.9622425,39.7432211,-104.9615988,39.7432195
-15003,9465,6269,0.0513684711391166,0.0513684711391166,-104.9615988,39.7432195,-104.960998,39.7432181
-15006,9467,9468,0.0801572222360596,0.0801572222360596,-104.9851948,39.7400592,-104.9861285,39.7401238
-15007,9468,5030,0.106840142374901,0.106840142374901,-104.9861285,39.7401238,-104.987378,39.7401161
-18579,3437,7765,0.0485278339531173,0.0485278339531173,-105.0346118,39.7802216,-105.0351796,39.7802141
-15009,6619,8699,0.0954507670467869,0.0954507670467869,-104.9394962,39.7364792,-104.9405829,39.7366755
-15010,8699,9469,0.014222614535116,0.014222614535116,-104.9405829,39.7366755,-104.9407436,39.7367085
-15013,7107,455,0.0456695914542558,0.0456695914542558,-104.9418165,39.7367415,-104.9423505,39.7367494
-15015,860,9470,0.0919474974486486,0.0919474974486486,-104.9428903,39.736756,-104.9439656,39.7367599
-15016,9470,9471,0.0500014374448159,0.0500014374448159,-104.9439656,39.7367599,-104.9445503,39.7367663
-15017,9471,6021,0.0453621576916579,0.0453621576916579,-104.9445503,39.7367663,-104.9450808,39.7367678
-15018,6021,9472,0.0470758089061738,0.0470758089061738,-104.9450808,39.7367678,-104.9456312,39.7367775
-15019,9472,3460,0.0470036762545936,0.0470036762545936,-104.9456312,39.7367775,-104.9461809,39.7367783
-15020,3460,7685,0.0954954207572325,0.0954954207572325,-104.9461809,39.7367783,-104.9472977,39.7367808
-15021,7685,8021,0.0933841388460347,0.0933841388460347,-104.9472977,39.7367808,-104.9483898,39.736785
-15022,8021,6698,0.0960778131259482,0.0960778131259482,-104.9483898,39.736785,-104.9495133,39.7367726
-15023,6698,4136,0.0911259816816344,0.0911259816816344,-104.9495133,39.7367726,-104.9505787,39.7367922
-15025,2663,8548,0.0930424439627818,0.0930424439627818,-104.9516859,39.7368054,-104.952774,39.7368006
-15026,8548,8547,0.100542623889621,0.100542623889621,-104.952774,39.7368006,-104.9539498,39.736794
-15027,8547,7338,0.099089032401214,0.099089032401214,-104.9539498,39.736794,-104.9551086,39.7368006
-15028,7338,7883,0.0990804723784167,0.0990804723784167,-104.9551086,39.7368006,-104.9562673,39.7368072
-15030,3337,5025,0.101286501750056,0.101286501750056,-104.9574002,39.7368138,-104.9585847,39.7368072
-15031,5025,9473,0.0504081121726349,0.0504081121726349,-104.9585847,39.7368072,-104.9591742,39.7368105
-15032,9473,8728,0.0508783896228212,0.0508783896228212,-104.9591742,39.7368105,-104.9597692,39.7368138
-15033,8728,3720,0.054613750451979,0.054613750451979,-104.9597692,39.7368138,-104.9604079,39.7368138
-16212,9849,7734,1.41107486941703,1.41107486941703,-104.9751748,39.6766887,-104.9751677,39.6893788
-15034,3720,6265,0.0510651820396187,0.0510651820396187,-104.9604079,39.7368138,-104.9610051,39.7368138
-15035,6265,9474,0.0526179865653065,0.0526179865653065,-104.9610051,39.7368138,-104.9616204,39.7368204
-15036,9474,1019,0.0530796783692756,0.0530796783692756,-104.9616204,39.7368204,-104.9622411,39.736827
-15037,1019,3889,0.105690016076173,0.105690016076173,-104.9622411,39.736827,-104.9634771,39.7368204
-15038,3889,8550,0.11082035773048,0.11082035773048,-104.9634771,39.7368204,-104.9647731,39.736827
-15039,8550,5418,0.102756492849076,0.102756492849076,-104.9647731,39.736827,-104.9659747,39.7368138
-15040,5418,7359,0.109377907466232,0.109377907466232,-104.9659747,39.7368138,-104.9672536,39.7368336
-15041,7359,6787,0.102485488457906,0.102485488457906,-104.9672536,39.7368336,-104.9684521,39.7368249
-15044,9414,5118,0.0507526262754685,0.0507526262754685,-104.9700963,39.736882,-104.9706897,39.7368921
-15047,7151,9476,0.0506273642355044,0.0506273642355044,-104.9718371,39.7368817,-104.9724291,39.7368742
-15048,9476,8834,0.0494473424354765,0.0494473424354765,-104.9724291,39.7368742,-104.9730073,39.7368668
-15049,8834,6016,0.046054397015081,0.046054397015081,-104.9730073,39.7368668,-104.9735459,39.7368668
-15051,979,5330,0.0485530564436786,0.0485530564436786,-104.9741314,39.7368706,-104.9746992,39.7368668
-15052,5330,8003,0.0503217691422663,0.0503217691422663,-104.9746992,39.7368668,-104.9752877,39.7368647
-15053,8003,6342,0.0507584862620106,0.0507584862620106,-104.9752877,39.7368647,-104.9758813,39.7368678
-15054,6342,5051,0.0488177307212986,0.0488177307212986,-104.9758813,39.7368678,-104.976452,39.7368799
-15055,5051,6690,0.0488248354973201,0.0488248354973201,-104.976452,39.7368799,-104.977023,39.7368798
-15056,6690,9477,0.0468154058850837,0.0468154058850837,-104.977023,39.7368798,-104.9775705,39.7368798
-15059,9313,7101,0.0478106623792446,0.0478106623792446,-104.9787299,39.7368736,-104.9792889,39.7368832
-15060,7101,8880,0.0490142389962295,0.0490142389962295,-104.9792889,39.7368832,-104.9798621,39.7368864
-15061,8880,7420,0.0493429457759385,0.0493429457759385,-104.9798621,39.7368864,-104.9804389,39.7368731
-15062,7420,8874,0.0545354482418663,0.0545354482418663,-104.9804389,39.7368731,-104.9810766,39.7368811
-15064,7430,8793,0.0542698797022772,0.0542698797022772,-104.9816663,39.7368655,-104.9823009,39.7368732
-15065,8793,7862,0.0521693260437922,0.0521693260437922,-104.9823009,39.7368732,-104.982911,39.7368701
-395,399,5,0.209508946543956,0.209508946543956,-104.9349127,39.7804818,-104.9373334,39.780183
-15066,7862,8787,0.05844527692302,0.05844527692302,-104.982911,39.7368701,-104.9835945,39.7368673
-15067,8787,7957,0.0531372993824669,0.0531372993824669,-104.9835945,39.7368673,-104.9842157,39.7368542
-15068,7957,9478,0.0541270300244316,0.0541270300244316,-104.9842157,39.7368542,-104.9848486,39.7368452
-15069,9478,9479,0.108902531529915,0.108902531529915,-104.9848486,39.7368452,-104.9861222,39.7368448
-15072,4481,9480,0.0910756678915429,0.0910756678915429,-104.9417177,39.7657064,-104.9406528,39.7656775
-15074,8706,9481,0.10111000413597,0.10111000413597,-104.9404758,39.7656404,-104.9392929,39.7656311
-15075,9481,9175,0.105113918003998,0.105113918003998,-104.9392929,39.7656311,-104.9380631,39.7656342
-15076,9175,7259,0.105567381342615,0.105567381342615,-104.9380631,39.7656342,-104.936828,39.7656384
-15077,7259,7589,0.103856965848258,0.103856965848258,-104.936828,39.7656384,-104.9356129,39.7656394
-15079,3366,2770,0.104765166628809,0.104765166628809,-104.9343764,39.7656425,-104.9331507,39.7656487
-15080,2770,9176,0.11373488606323,0.11373488606323,-104.9331507,39.7656487,-104.9318203,39.7656281
-15081,9176,2260,0.11073804654165,0.11073804654165,-104.9318203,39.7656281,-104.9305261,39.7655817
-15082,2260,3611,0.0999509846289259,0.0999509846289259,-104.9305261,39.7655817,-104.9293567,39.7655827
-15083,3611,7516,0.100649754002954,0.100649754002954,-104.9293567,39.7655827,-104.9281792,39.765593
-15084,7516,2109,0.103508831759163,0.103508831759163,-104.9281792,39.765593,-104.9269682,39.7655992
-15085,2109,5999,0.10202033489304,0.10202033489304,-104.9269682,39.7655992,-104.9257746,39.7656033
-15086,5999,7660,0.0994984857017093,0.0994984857017093,-104.9257746,39.7656033,-104.9246105,39.7656064
-15087,7660,2328,0.04986487628669,0.04986487628669,-104.9246105,39.7656064,-104.9240271,39.7656085
-15118,9482,9225,0.0953635356752473,0.0953635356752473,-104.9407267,39.776725,-104.9407352,39.7758674
-15120,9455,301,0.129823177853557,0.129823177853557,-104.9405397,39.7767118,-104.9405292,39.7778793
-15116,9490,8276,0.218414071885788,0.218414071885788,-104.9975705,39.7571365,-104.9977757,39.7551786
-15121,301,8269,0.152583336977896,0.152583336977896,-104.9405292,39.7778793,-104.9404976,39.7792513
-15126,226,8268,0.0760384791094216,0.0760384791094216,-104.940692,39.7797323,-104.9407004,39.7790485
-15128,225,9482,0.128957275100235,0.128957275100235,-104.9407032,39.7778846,-104.9407267,39.776725
-15130,9491,460,0.0667391949721685,0.0667391949721685,-104.9405035,39.7797395,-104.9405035,39.7803397
-15132,460,575,0.113707068563865,0.113707068563865,-104.9405035,39.7803397,-104.9404777,39.7813621
-15133,575,6199,0.0290617477448439,0.0290617477448439,-104.9404777,39.7813621,-104.9404705,39.7816234
-15135,9492,8244,0.032549465488295,0.032549465488295,-104.9497268,39.7819174,-104.9498727,39.781647
-15136,8244,9493,0.0198582826309584,0.0198582826309584,-104.9498727,39.781647,-104.9498899,39.7814689
-15138,6689,228,0.0134361080204136,0.0134361080204136,-104.9497884,39.7789167,-104.949699,39.7790161
-15139,228,9494,0.0329072670561094,0.0329072670561094,-104.949699,39.7790161,-104.9496925,39.779312
-15140,9494,9495,0.0242107567854742,0.0242107567854742,-104.9496925,39.779312,-104.9496974,39.7795297
-15142,9496,9497,0.0238335404645399,0.0238335404645399,-104.9498734,39.7795231,-104.949868,39.7793088
-15143,9497,9498,0.0343814713189183,0.0343814713189183,-104.949868,39.7793088,-104.949868,39.7789996
-15966,7623,6935,0.205023089639109,0.205023089639109,-105.0062462,39.7112115,-105.008643,39.711203
-15967,6935,5889,0.201769701232267,0.201769701232267,-105.008643,39.711203,-105.0110016,39.7111799
-15968,5889,7449,0.284161489263658,0.284161489263658,-105.0110016,39.7111799,-105.014321,39.711079
-15969,7449,1636,0.117888722564013,0.117888722564013,-105.014321,39.711079,-105.0156951,39.7111605
-15970,1636,8998,0.102786876242831,0.102786876242831,-105.0156951,39.7111605,-105.0168967,39.7111539
-15972,4214,8094,0.0961834163674376,0.0961834163674376,-105.0180211,39.7111539,-105.0191455,39.7111473
-15973,8094,194,0.104992906429488,0.104992906429488,-105.0191455,39.7111473,-105.0203728,39.7111341
-15974,194,2923,0.0991259111035959,0.0991259111035959,-105.0203728,39.7111341,-105.0215316,39.7111407
-15975,2923,5306,0.0991964539292107,0.0991964539292107,-105.0215316,39.7111407,-105.0226912,39.7111319
-15976,5306,1461,0.0983899476582488,0.0983899476582488,-105.0226912,39.7111319,-105.0238413,39.7111451
-15977,1461,5434,0.104614166406686,0.104614166406686,-105.0238413,39.7111451,-105.0250638,39.7111718
-15978,5434,5973,0.107640436770916,0.107640436770916,-105.0250638,39.7111718,-105.0263219,39.7111517
-15979,5973,9014,0.00660364948230504,0.00660364948230504,-105.0263219,39.7111517,-105.0263991,39.7111517
-15980,9014,7915,0.0975740293794765,0.0975740293794765,-105.0263991,39.7111517,-105.0275397,39.7111407
-15981,7915,6437,0.105749746230322,0.105749746230322,-105.0275397,39.7111407,-105.0287757,39.7111605
-16016,9786,9159,0.00790012825467591,0.00790012825467591,-104.9960586,39.703233,-104.9961123,39.7031752
-15982,6437,4420,0.102051245715481,0.102051245715481,-105.0287757,39.7111605,-105.0299687,39.7111671
-15985,5328,7056,0.0812625038007973,0.0812625038007973,-105.0327094,39.7111941,-105.0336594,39.7111935
-15986,7056,9772,0.0538313043287529,0.0538313043287529,-105.0336594,39.7111935,-105.0342887,39.7111901
-15987,9772,4318,0.0518980074233638,0.0518980074233638,-105.0342887,39.7111901,-105.0348954,39.7111869
-15988,4318,9452,0.0516277273460522,0.0516277273460522,-105.0348954,39.7111869,-105.0354984,39.7112068
-15990,4506,4116,0.0518058126204102,0.0518058126204102,-105.036097,39.7112265,-105.0367025,39.7112166
-15991,4116,7809,0.0517374039809394,0.0517374039809394,-105.0367025,39.7112166,-105.0373072,39.7112067
-15992,7809,5068,0.0991665346425536,0.0991665346425536,-105.0373072,39.7112067,-105.038466,39.7112331
-15993,5068,9773,0.0531370753578357,0.0531370753578357,-105.038466,39.7112331,-105.0390872,39.7112331
-15994,9773,6836,0.0533167080983746,0.0533167080983746,-105.0390872,39.7112331,-105.0397105,39.7112331
-15995,6836,6978,0.101324072393449,0.101324072393449,-105.0397105,39.7112331,-105.040895,39.7112397
-15996,6978,7941,0.102826343168107,0.102826343168107,-105.040895,39.7112397,-105.0420966,39.7112662
-15997,7941,9015,0.0975512129036908,0.0975512129036908,-105.0420966,39.7112662,-105.043237,39.711272
-15998,9015,6780,0.448938989090037,0.448938989090037,-105.043237,39.711272,-105.0484853,39.7112864
-15999,6780,9774,0.408854845876832,0.408854845876832,-105.0484853,39.7112864,-105.0532648,39.7113225
-16000,9076,9768,0.0663101767153915,0.0663101767153915,-104.999744,39.711198,-105.0005192,39.711198
-16004,9776,1455,0.0526013194004238,0.0526013194004238,-105.004167,39.6923239,-105.0039409,39.6927638
-16006,9777,1736,0.0786842572590025,0.0786842572590025,-105.0060257,39.6906026,-105.0057005,39.6912645
-16092,526,9805,0.0239836164906123,0.0239836164906123,-104.9499002,39.7803085,-104.9498921,39.7800929
-16044,9806,9807,0.10708389115039,0.10708389115039,-105.0037663,39.6918863,-105.0050077,39.6920085
-16046,9808,9779,0.598201231733375,0.598201231733375,-104.9924203,39.68926,-104.9993937,39.6888781
-16048,9809,8448,0.00611949423172489,0.00611949423172489,-104.9828551,39.6889832,-104.9827836,39.688982
-16050,497,315,0.38487204905166,0.38487204905166,-105.0147909,39.7286028,-105.0132442,39.7253524
-16051,315,9125,0.309277404563432,0.309277404563432,-105.0132442,39.7253524,-105.0111017,39.7231117
-16053,9092,238,0.378305028269765,0.378305028269765,-105.0245174,39.7255447,-105.0289409,39.7255444
-14687,2318,2393,0.204381692629994,0.204381692629994,-104.9711696,39.7237463,-104.971187,39.7255843
-16054,238,599,0.20185675523074,0.20185675523074,-105.0289409,39.7255444,-105.0313012,39.7255444
-16055,599,9810,1.85367980178975,1.85367980178975,-105.0313012,39.7255444,-105.0529735,39.7258084
-16057,4648,9242,0.316343707887743,0.316343707887743,-105.0186498,39.72565,-105.0223459,39.7257626
-16530,9931,9230,0.37930803087461,0.37930803087461,-104.9975856,39.7082938,-104.9961257,39.7050728
-16060,8979,9416,0.148643981954463,0.148643981954463,-104.9905824,39.7719014,-104.99143,39.7707341
-16062,9129,442,0.133338694466943,0.133338694466943,-105.0154242,39.731054,-105.01561,39.7322446
-16063,442,341,0.15400049730887,0.15400049730887,-105.01561,39.7322446,-105.0154562,39.7336245
-16064,341,8432,0.0419891636299648,0.0419891636299648,-105.0154562,39.7336245,-105.0153422,39.7339918
-16066,8912,8951,0.033170976893888,0.033170976893888,-104.9956858,39.7676849,-104.9953492,39.7678334
-16068,9812,8911,0.0471463735469582,0.0471463735469582,-104.9915921,39.7695911,-104.9912548,39.7699266
-16070,8259,6154,0.322113932922047,0.322113932922047,-104.9757153,39.7797326,-104.9794838,39.7796685
-16072,8262,9813,0.347409770060633,0.347409770060633,-104.9882873,39.7806922,-104.9922437,39.7814112
-16073,9813,8849,0.384076686987265,0.384076686987265,-104.9922437,39.7814112,-104.9966205,39.782197
-16075,8850,8934,0.249988221702048,0.249988221702048,-104.9897894,39.7769264,-104.9901787,39.7746982
-15149,1055,2652,0.0975577285651678,0.0975577285651678,-104.9529111,39.7804333,-104.951864,39.7807829
-15178,9518,9519,0.0502534780761684,0.0502534780761684,-105.0416701,39.740356,-105.0422578,39.7403509
-15150,2652,6953,0.198623612037648,0.198623612037648,-104.951864,39.7807829,-104.9500616,39.7819108
-15152,9492,9502,0.376572648781266,0.376572648781266,-104.9497268,39.7819174,-104.9534622,39.7801206
-15156,3293,102,0.41551161582069,0.41551161582069,-104.9427803,39.703814,-104.9415109,39.7002071
-15160,4010,9505,0.052772682936521,0.052772682936521,-105.0298922,39.7403326,-105.0305094,39.7403332
-15161,9505,7047,0.0525680538450832,0.0525680538450832,-105.0305094,39.7403332,-105.0311242,39.7403355
-15162,7047,7019,0.0303888581356532,0.0303888581356532,-105.0311242,39.7403355,-105.0314796,39.7403377
-15163,7019,9506,0.0673030688563473,0.0673030688563473,-105.0314796,39.7403377,-105.0322667,39.7403316
-15164,9506,9507,0.0483154741652978,0.0483154741652978,-105.0322667,39.7403316,-105.0328316,39.7403209
-15165,9507,7386,0.0202051235057141,0.0202051235057141,-105.0328316,39.7403209,-105.0330679,39.7403194
-16629,9962,9963,0.200783522780218,0.200783522780218,-104.9592628,39.7399435,-104.9616093,39.739874
-15167,9508,9509,0.0505081496090435,0.0505081496090435,-105.0334112,39.7403128,-105.0340019,39.7403161
-15169,3381,9510,0.054679375210741,0.054679375210741,-105.0346043,39.7403194,-105.0352438,39.7403194
-15170,9510,9511,0.0487967465713328,0.0487967465713328,-105.0352438,39.7403194,-105.0358145,39.7403194
-15175,9515,9516,0.0511072604930319,0.0511072604930319,-105.0381491,39.7403326,-105.0387468,39.7403366
-15176,9516,9517,0.199298430530572,0.199298430530572,-105.0387468,39.7403366,-105.0410776,39.740352
-15177,9517,9518,0.0506626460359665,0.0506626460359665,-105.0410776,39.740352,-105.0416701,39.740356
-15179,9519,9520,0.0992839733792875,0.0992839733792875,-105.0422578,39.7403509,-105.0434189,39.740341
-2659,2617,2618,0.0492730897550554,0.0492730897550554,-104.9957832,39.7225228,-104.9963593,39.7225267
-15180,9520,5591,0.0515928611698618,0.0515928611698618,-105.0434189,39.740341,-105.0440223,39.7403422
-15181,5591,9521,0.0485416940170638,0.0485416940170638,-105.0440223,39.7403422,-105.04459,39.7403388
-15182,9521,7534,0.0495967074681937,0.0495967074681937,-105.04459,39.7403388,-105.04517,39.7403326
-15183,7534,9522,0.687013260502188,0.687013260502188,-105.04517,39.7403326,-105.0532048,39.7403683
-15184,4010,253,0.115254186613677,0.115254186613677,-105.0298922,39.7403326,-105.0285448,39.740303
-15185,253,9523,0.265666797076755,0.265666797076755,-105.0285448,39.740303,-105.0254385,39.740357
-16090,9493,9818,0.0359382002911722,0.0359382002911722,-104.9498899,39.7814689,-104.9498899,39.7811457
-16093,9805,9821,0.0110994776170347,0.0110994776170347,-104.9498921,39.7800929,-104.9498895,39.7799931
-16096,9495,9822,0.0517988653877033,0.0517988653877033,-104.9496974,39.7795297,-104.9497205,39.7799952
-16097,9822,9823,0.0110663007110829,0.0110663007110829,-104.9497205,39.7799952,-104.9497178,39.7800947
-16098,9823,525,0.0383908840803154,0.0383908840803154,-104.9497178,39.7800947,-104.9497096,39.7804399
-16099,525,9824,0.0469464980296333,0.0469464980296333,-104.9497096,39.7804399,-104.9497096,39.7808621
-16107,214,9827,0.778079889437356,0.778079889437356,-104.9627533,39.7801312,-104.9718556,39.7799532
-16108,9827,8266,0.110384878461573,0.110384878461573,-104.9718556,39.7799532,-104.9731431,39.7798728
-16109,8266,8259,0.22035773346297,0.22035773346297,-104.9731431,39.7798728,-104.9757153,39.7797326
-16111,426,5290,0.135279903383581,0.135279903383581,-105.0252144,39.7427283,-105.0252168,39.7439449
-16112,5290,6969,0.13394711160262,0.13394711160262,-105.0252168,39.7439449,-105.0252247,39.7451495
-16113,6969,9,0.133723176212026,0.133723176212026,-105.0252247,39.7451495,-105.0252223,39.7463521
-12362,8672,8673,0.0280927507040958,0.0280927507040958,-105.011589,39.7530795,-105.0113745,39.7528881
-16114,9,6393,0.135759876984547,0.135759876984547,-105.0252223,39.7463521,-105.0252309,39.747573
-16116,543,2417,0.140823258017981,0.140823258017981,-105.0222025,39.7405643,-105.0238493,39.7405447
-16117,2417,8309,0.134744289641959,0.134744289641959,-105.0238493,39.7405447,-105.0254224,39.7404725
-16121,9523,8323,0.0490645159279825,0.0490645159279825,-105.0254385,39.740357,-105.0248659,39.7403859
-16122,8323,2296,0.111956296963114,0.111956296963114,-105.0248659,39.7403859,-105.0235583,39.7404384
-16123,2296,425,0.133707313641353,0.133707313641353,-105.0235583,39.7404384,-105.0219946,39.7404498
-16125,8580,9121,0.223068039429751,0.223068039429751,-105.0251093,39.7234923,-105.022529,39.7237852
-16129,4649,7955,0.0999111170250792,0.0999111170250792,-105.0186468,39.7257296,-105.0198149,39.7257444
-16130,7955,9828,0.0800171872297717,0.0800171872297717,-105.0198149,39.7257444,-105.0207505,39.725751
-16131,9829,8581,0.047687571765354,0.047687571765354,-105.0256672,39.7245362,-105.0251096,39.7245361
-16133,9073,1815,0.113861635058861,0.113861635058861,-105.0251226,39.7293097,-105.0264272,39.7291051
-16134,1815,9030,0.0294613091189667,0.0294613091189667,-105.0264272,39.7291051,-105.0266512,39.7293064
-16135,9030,9035,0.0740720067279475,0.0740720067279475,-105.0266512,39.7293064,-105.0275173,39.7293147
-16136,9035,2259,0.0101253625653209,0.0101253625653209,-105.0275173,39.7293147,-105.0276357,39.7293142
-16137,2259,6127,0.0869883467865613,0.0869883467865613,-105.0276357,39.7293142,-105.0286529,39.7293168
-16138,6127,3970,0.0982525233162176,0.0982525233162176,-105.0286529,39.7293168,-105.0298017,39.7293298
-16139,3970,4005,0.0213357195383616,0.0213357195383616,-105.0298017,39.7293298,-105.0300506,39.7293166
-16170,9839,7732,1.81004213705151,1.81004213705151,-104.9763369,39.6731074,-104.9763378,39.6893855
-16140,4005,9831,0.0527909920856998,0.0527909920856998,-105.0300506,39.7293166,-105.0306678,39.7293074
-16143,7028,9832,0.0518403992809488,0.0518403992809488,-105.0312846,39.729303,-105.0318908,39.729303
-16144,9832,1405,0.0193610465151665,0.0193610465151665,-105.0318908,39.729303,-105.0321172,39.729303
-16145,1405,9086,0.0330290864914803,0.0330290864914803,-105.0321172,39.729303,-105.0325034,39.7293066
-16146,9086,9833,0.0517615954401031,0.0517615954401031,-105.0325034,39.7293066,-105.0331086,39.7293141
-16147,9833,7389,0.013992344500971,0.013992344500971,-105.0331086,39.7293141,-105.0332722,39.7293161
-16148,7389,7381,0.039974198258354,0.039974198258354,-105.0332722,39.7293161,-105.0337396,39.7293113
-16149,7381,5215,0.0612246627137571,0.0612246627137571,-105.0337396,39.7293113,-105.0344555,39.7293058
-16150,5215,3395,0.05711231452959,0.05711231452959,-105.0344555,39.7293058,-105.0351232,39.7293166
-16152,7953,9834,0.0172080507351113,0.0172080507351113,-105.0198924,39.7392785,-105.019887,39.7394332
-16154,9834,274,0.0658337540289098,0.0658337540289098,-105.019887,39.7394332,-105.0198763,39.7400252
-16156,2189,9835,0.248404343096233,0.248404343096233,-105.0159036,39.7398341,-105.0143087,39.7379669
-16214,8735,9837,1.99433693652165,1.99433693652165,-104.9740308,39.6892204,-104.9740442,39.6712849
-16215,8737,9838,0.871081020569746,0.871081020569746,-104.9716711,39.6881426,-104.9716482,39.6803088
-4419,2776,4130,0.131599235651272,0.131599235651272,-104.9511832,39.7669218,-104.9511844,39.7681053
-16159,9143,9028,0.680206597840058,0.680206597840058,-105.0032713,39.7288521,-105.0112026,39.7293142
-16163,722,8058,0.174054831255352,0.174054831255352,-105.004084,39.7289511,-105.0040758,39.7305164
-16164,8058,521,0.0821177779256467,0.0821177779256467,-105.0040758,39.7305164,-105.0040731,39.7312549
-16165,521,6603,0.0924366308750619,0.0924366308750619,-105.0040731,39.7312549,-105.0040758,39.7320862
-16166,6603,5373,0.180047417371753,0.180047417371753,-105.0040758,39.7320862,-105.0040704,39.7337054
-16168,1948,2528,0.0688038536836977,0.0688038536836977,-105.0095234,39.7384742,-105.010328,39.7384824
-16333,7146,2907,0.104983935013538,0.104983935013538,-104.9721238,39.7620063,-104.9733504,39.7620548
-16334,2907,7925,0.0494998939900097,0.0494998939900097,-104.9733504,39.7620548,-104.9739262,39.7620073
-16338,3444,3467,0.0304982971000002,0.0304982971000002,-104.9462569,39.7617553,-104.9459001,39.7617543
-16339,3467,8082,0.246312262462312,0.246312262462312,-104.9459001,39.7617543,-104.9430328,39.7615337
-16342,8704,8153,0.0931754474511838,0.0931754474511838,-104.9404955,39.7617894,-104.9394065,39.7618265
-16343,8153,7614,0.0941189496630448,0.0941189496630448,-104.9394065,39.7618265,-104.9383054,39.7618296
-16344,7614,7267,0.0948021938707784,0.0948021938707784,-104.9383054,39.7618296,-104.9371963,39.7618306
-16345,7267,7586,0.0921634745405222,0.0921634745405222,-104.9371963,39.7618306,-104.9361181,39.7618368
-16346,7586,7587,0.0431064926802277,0.0431064926802277,-104.9361181,39.7618368,-104.9356138,39.7618347
-16347,7587,2005,0.0500940428381568,0.0500940428381568,-104.9356138,39.7618347,-104.9350278,39.7618409
-16348,2005,3364,0.0956080752868491,0.0956080752868491,-104.9350278,39.7618409,-104.9339093,39.7618471
-16349,3364,2759,0.0936601356465838,0.0936601356465838,-104.9339093,39.7618471,-104.9328136,39.7618543
-16350,2759,7009,0.0948690491965415,0.0948690491965415,-104.9328136,39.7618543,-104.9317039,39.7618388
-16352,2285,3605,0.100419536914451,0.100419536914451,-104.9305592,39.7618327,-104.9293844,39.7618378
-16353,3605,7531,0.0985834303955712,0.0985834303955712,-104.9293844,39.7618378,-104.9282311,39.761845
-16354,7531,2140,0.105692387990087,0.105692387990087,-104.9282311,39.761845,-104.9269946,39.7618481
-16355,2140,5996,0.104777507715381,0.104777507715381,-104.9269946,39.7618481,-104.9257688,39.7618503
-16356,5996,7676,0.0990116406010299,0.0990116406010299,-104.9257688,39.7618503,-104.9246105,39.7618584
-16357,7676,9874,1.60848579675559,1.60848579675559,-104.9246105,39.7618584,-104.9057927,39.7618262
-17199,2711,10073,0.10997712384001,0.10997712384001,-105.0233999,39.7473921,-105.0225148,39.7466744
-16358,9875,2326,1.55889022258017,1.55889022258017,-104.9057918,39.7619791,-104.9240294,39.7620162
-16360,5997,2127,0.151773007567564,0.151773007567564,-104.9258117,39.7620121,-104.9275873,39.7620069
-16361,2127,3609,0.151558147644208,0.151558147644208,-104.9275873,39.7620069,-104.9293603,39.7619925
-16362,3609,7010,0.212760869396779,0.212760869396779,-104.9293603,39.7619925,-104.9318494,39.7619997
-16365,3365,2006,0.0553745270182344,0.0553745270182344,-104.93438,39.7620028,-104.9350278,39.7619977
-16366,2006,7588,0.0502101113635407,0.0502101113635407,-104.9350278,39.7619977,-104.9356152,39.7619945
-16367,7588,7258,0.104315488387994,0.104315488387994,-104.9356152,39.7619945,-104.9368356,39.7619935
-16368,7258,7615,0.106145187491952,0.106145187491952,-104.9368356,39.7619935,-104.9380774,39.7619904
-16369,7615,9877,0.104437372352784,0.104437372352784,-104.9380774,39.7619904,-104.9392992,39.7619966
-16429,9892,3407,0.0665957848901693,0.0665957848901693,-104.9695204,39.6969176,-104.9699417,39.6974212
-16430,3407,9893,0.16801404607557,0.16801404607557,-104.9699417,39.6974212,-104.9715317,39.698308
-16433,9895,9896,0.440540235104303,0.440540235104303,-104.9718554,39.6986422,-104.9713614,39.7025858
-16436,9897,9898,0.0704932318773383,0.0704932318773383,-104.968823,39.6933724,-104.9681189,39.6930432
-16438,95,3655,0.111235679997702,0.111235679997702,-104.9551461,39.7002095,-104.9546075,39.70112
-16440,9899,5747,0.0711149911978779,0.0711149911978779,-104.9676535,39.6937356,-104.9676964,39.6930969
-16445,9902,9903,0.536321309295718,0.536321309295718,-104.9732597,39.6931641,-104.9732302,39.6979873
-16453,9908,9909,0.550826257700494,0.550826257700494,-104.9731739,39.7014254,-104.9730512,39.7063782
-16458,9907,9908,0.00771583659604379,0.00771583659604379,-104.9730961,39.7013903,-104.9731739,39.7014254
-16460,9909,9912,0.0865311626257968,0.0865311626257968,-104.9730512,39.7063782,-104.9726409,39.7070895
-16461,9912,9910,0.0378168798460609,0.0378168798460609,-104.9726409,39.7070895,-104.9724845,39.7074076
-16471,3282,9916,0.18653100874984,0.18653100874984,-104.9687946,39.7020548,-104.9687858,39.7003773
-16473,9917,8680,0.0249041944601551,0.0249041944601551,-104.9694498,39.7035446,-104.9691913,39.7036476
-19510,10535,10536,0.0273195782326388,0.0273195782326388,-104.9882297,39.7088075,-104.9879104,39.7088024
-16475,8507,9918,0.021850852998121,0.021850852998121,-104.9777748,39.7546175,-104.9779759,39.7547388
-16476,9918,3018,0.0101317448895217,0.0101317448895217,-104.9779759,39.7547388,-104.9780672,39.7547969
-16478,9919,9920,0.0829003664734834,0.0829003664734834,-104.9871822,39.7475219,-104.9862126,39.7475301
-16479,9921,3681,0.0300651916457247,0.0300651916457247,-104.9835546,39.7478188,-104.9836002,39.7475507
-16668,9926,9974,0.105582813458159,0.105582813458159,-105.005919,39.7444156,-105.0070019,39.7439592
-16669,9588,1633,0.0730557533632891,0.0730557533632891,-105.0043197,39.7412126,-105.0035017,39.7410228
-16671,9928,9975,0.0177169257267767,0.0177169257267767,-105.0062945,39.7430132,-105.0061758,39.7428826
-117,124,125,0.0336263849765442,0.0336263849765442,-105.0043775,39.7602205,-105.0040777,39.7604163
-16672,9975,9929,0.0234356081852519,0.0234356081852519,-105.0061758,39.7428826,-105.0061216,39.7430892
-16674,9976,9977,0.0468170562405583,0.0468170562405583,-105.0075867,39.7422556,-105.0080641,39.7420494
-16710,104,7825,0.0602462277844684,0.0602462277844684,-104.9874778,39.7002508,-104.9875714,39.7007878
-16712,104,3757,0.402008044434906,0.402008044434906,-104.9874778,39.7002508,-104.9873962,39.696636
-16713,3757,1487,0.204145741130723,0.204145741130723,-104.9873962,39.696636,-104.9874337,39.6948003
-16714,1487,132,0.199447130341484,0.199447130341484,-104.9874337,39.6948003,-104.9874659,39.6930068
-16716,1701,5546,0.198096603236586,0.198096603236586,-104.9875011,39.6911908,-104.9874887,39.6894093
-16777,69,3510,0.205561826495526,0.205561826495526,-104.9675826,39.7002312,-104.9675508,39.6983827
-4421,1201,4132,0.0220332988005433,0.0220332988005433,-104.9505615,39.7271353,-104.9505673,39.7273334
-16718,7283,485,0.11761309283436,0.11761309283436,-104.9871988,39.7019884,-104.9862761,39.7027725
-16720,10003,3244,0.0554692551325786,0.0554692551325786,-104.9862718,39.703372,-104.9862629,39.7038708
-16721,3244,7234,0.20486059291662,0.20486059291662,-104.9862629,39.7038708,-104.9862815,39.7057131
-16722,7234,1896,0.200393401337734,0.200393401337734,-104.9862815,39.7057131,-104.9863459,39.7075146
-16723,1896,6106,0.199619177779868,0.199619177779868,-104.9863459,39.7075146,-104.9863727,39.7093097
-16724,6106,3190,0.204209613390108,0.204209613390108,-104.9863727,39.7093097,-104.98637,39.7111462
-16725,3190,3074,0.20155062603718,0.20155062603718,-104.98637,39.7111462,-104.9862922,39.7129578
-17204,10076,9899,0.140445516840247,0.140445516840247,-104.9687509,39.6946749,-104.9676535,39.6937356
-17206,10077,9891,0.365702001724341,0.365702001724341,-104.968787,39.6999605,-104.9688482,39.696672
-17210,9916,551,0.0168353379628002,0.0168353379628002,-104.9687858,39.7003773,-104.9687844,39.7002259
-17211,551,10077,0.029511971826839,0.029511971826839,-104.9687844,39.7002259,-104.968787,39.6999605
-17221,9830,5174,0.203086414023487,0.203086414023487,-104.9774882,39.7146931,-104.9774882,39.7165195
-17225,7299,3774,0.0270450210392685,0.0270450210392685,-104.9774985,39.7020281,-104.9774885,39.7022712
-17227,10078,240,0.11490035547177,0.11490035547177,-104.9763987,39.6910611,-104.9752801,39.6904894
-17229,240,241,0.0697724132050665,0.0697724132050665,-104.9752801,39.6904894,-104.9745995,39.6901438
-17230,241,242,0.0623380559401012,0.0623380559401012,-104.9745995,39.6901438,-104.9739987,39.6898267
-17231,242,243,0.121807717540091,0.121807717540091,-104.9739987,39.6898267,-104.9728142,39.6892191
-17238,246,247,0.10870569104286,0.10870569104286,-104.9683485,39.6870395,-104.9672584,39.6865375
-17239,247,248,0.0772679392991742,0.0772679392991742,-104.9672584,39.6865375,-104.966468,39.6862015
-17241,235,3406,0.0743704107751119,0.0743704107751119,-104.9695743,39.6967741,-104.9701665,39.6972637
-17242,3406,10079,0.167074762801468,0.167074762801468,-104.9701665,39.6972637,-104.9716804,39.6982128
-17244,331,10014,0.0356018290483491,0.0356018290483491,-104.9522901,39.745499,-104.952676,39.7456193
-17245,10014,8533,0.134990804356131,0.134990804356131,-104.952676,39.7456193,-104.9542138,39.7458945
-17247,510,8534,0.190527366373376,0.190527366373376,-104.9547886,39.7479501,-104.9544306,39.7462589
-17249,9649,6335,0.0185334131201332,0.0185334131201332,-104.98616,39.7263757,-104.9861535,39.7265423
-17250,6335,10080,0.0823637888630556,0.0823637888630556,-104.9861535,39.7265423,-104.9861473,39.727283
-17251,10080,3812,0.199228355515768,0.199228355515768,-104.9861473,39.727283,-104.9861426,39.7290747
-17252,3812,5918,0.151375161417453,0.151375161417453,-104.9861426,39.7290747,-104.9861275,39.730436
-17254,917,2204,0.201707005619294,0.201707005619294,-104.9861344,39.7320479,-104.9861103,39.7338618
-17255,2204,4853,0.158074944552835,0.158074944552835,-104.9861103,39.7338618,-104.9861135,39.7352834
-17506,10119,8389,0.0881257330115891,0.0881257330115891,-105.0129247,39.7389937,-105.0124419,39.7396939
-17514,10115,4493,0.0857000040414071,0.0857000040414071,-105.0062313,39.7401322,-105.0052303,39.740093
-17515,4493,10122,0.00789608138487867,0.00789608138487867,-105.0052303,39.740093,-105.0051382,39.7400878
-17516,10122,10123,0.0829902602540724,0.0829902602540724,-105.0051382,39.7400878,-105.0041704,39.7400311
-17517,10123,3738,0.117121022748715,0.117121022748715,-105.0041704,39.7400311,-105.0028007,39.7400199
-16415,3033,3034,0.026586968802262,0.026586968802262,-104.9700513,39.702674,-104.9699305,39.7024537
-17518,3738,5617,0.105494461178937,0.105494461178937,-105.0028007,39.7400199,-105.0015669,39.7400197
-17519,5617,10124,0.0771328841888806,0.0771328841888806,-105.0015669,39.7400197,-105.0006648,39.7400196
-18717,1848,7866,0.175365518810985,0.175365518810985,-105.0343209,39.721329,-105.0343209,39.7197519
-17520,10124,3940,0.0438462962781839,0.0438462962781839,-105.0006648,39.7400196,-105.000152,39.7400197
-18649,10111,1854,0.1585792263447,0.1585792263447,-105.0379043,39.7199053,-105.0379177,39.7213314
-17522,6651,7970,0.100526894140491,0.100526894140491,-104.9999603,39.7400202,-104.9987846,39.7400184
-17523,7970,10125,0.0156643759566378,0.0156643759566378,-104.9987846,39.7400184,-104.9986014,39.7400179
-17525,342,10126,0.0436005942347808,0.0436005942347808,-105.0138715,39.7367088,-105.0137696,39.737093
-17527,10126,10121,0.0408685827486489,0.0408685827486489,-105.0137696,39.737093,-105.0137025,39.7374569
-17529,8016,10127,0.0296331396909763,0.0296331396909763,-104.9993111,39.7412509,-104.9989934,39.7413574
-17533,9200,10128,0.0316360066553629,0.0316360066553629,-104.9994716,39.7422305,-104.9997264,39.7420242
-17535,10128,3937,0.0160944313012695,0.0160944313012695,-104.9997264,39.7420242,-104.9998498,39.7419149
-17537,10125,10129,0.0323384241188202,0.0323384241188202,-104.9986014,39.7400179,-104.9982232,39.7400157
-17540,8937,10130,0.0382349269331771,0.0382349269331771,-104.9891177,39.7851166,-104.9891097,39.7854604
-18160,6035,10256,0.201529974874074,0.201529974874074,-105.0141159,39.7856183,-105.0141119,39.7874307
-18081,3725,3961,0.10669546577579,0.10669546577579,-104.9989294,39.7183897,-105.0001766,39.7184091
-18082,3961,5599,0.120037242247265,0.120037242247265,-105.0001766,39.7184091,-105.0015794,39.7184418
-18083,5599,10212,0.0720417181829305,0.0720417181829305,-105.0015794,39.7184418,-105.0024206,39.7184748
-18085,6582,8060,0.177813026382298,0.177813026382298,-104.9881664,39.732053,-104.9881587,39.7304539
-18087,79,3516,0.204359090736991,0.204359090736991,-104.9634844,39.7002269,-104.9634676,39.6983891
-18089,10257,1076,0.140362637117951,0.140362637117951,-105.010685,39.7858675,-105.009052,39.7857306
-18092,8839,10258,0.0505579939719693,0.0505579939719693,-105.0112028,39.7874224,-105.0117945,39.7874239
-18093,10258,1216,0.0474392361763922,0.0474392361763922,-105.0117945,39.7874239,-105.0123497,39.7874253
-18094,1216,6309,0.0509984491369365,0.0509984491369365,-105.0123497,39.7874253,-105.0129465,39.7874317
-18095,6309,4788,0.0491735679878017,0.0491735679878017,-105.0129465,39.7874317,-105.013522,39.787431
-18418,8332,8359,0.203675131612914,0.203675131612914,-105.0398789,39.7621198,-105.0399031,39.7639514
-18096,4788,10256,0.0504039235105897,0.0504039235105897,-105.013522,39.787431,-105.0141119,39.7874307
-18098,2169,10259,0.0494310424509836,0.0494310424509836,-105.0146868,39.7874303,-105.0152653,39.7874334
-18099,10259,6301,0.0486534339401342,0.0486534339401342,-105.0152653,39.7874334,-105.0158347,39.7874364
-18100,6301,10260,0.0495166429402865,0.0495166429402865,-105.0158347,39.7874364,-105.0164142,39.7874331
-18101,10260,6428,0.0494555977491468,0.0494555977491468,-105.0164142,39.7874331,-105.016993,39.7874341
-18102,6428,10261,0.0500541316962619,0.0500541316962619,-105.016993,39.7874341,-105.0175788,39.787432
-18103,10261,8837,0.049703265213276,0.049703265213276,-105.0175788,39.787432,-105.0181605,39.7874319
-18104,8837,10262,0.0487206483354329,0.0487206483354329,-105.0181605,39.7874319,-105.0187307,39.7874319
-18105,10262,4661,0.0502842889238415,0.0502842889238415,-105.0187307,39.7874319,-105.0193192,39.7874319
-18210,6766,8919,0.14588598272053,0.14588598272053,-105.0275892,39.7716046,-105.0258833,39.771558
-18215,6383,6883,0.201049789723751,0.201049789723751,-105.0422527,39.763944,-105.04223,39.765752
-18217,9380,6467,0.149037633666744,0.149037633666744,-105.0434002,39.7766311,-105.0434114,39.7752908
-18218,6467,5528,0.155039270882985,0.155039270882985,-105.0434114,39.7752908,-105.0434142,39.7738965
-18219,5528,5739,0.157509840329179,0.157509840329179,-105.0434142,39.7738965,-105.043424,39.77248
-18220,5739,2443,0.171457541049395,0.171457541049395,-105.043424,39.77248,-105.0434409,39.7709381
-18221,2443,9373,0.174175733096206,0.174175733096206,-105.0434409,39.7709381,-105.0434409,39.7693717
-18222,9373,1695,0.20076305206058,0.20076305206058,-105.0434409,39.7693717,-105.0434467,39.7675662
-18224,6884,8362,0.203398590237467,0.203398590237467,-105.0434307,39.76575,-105.0434239,39.7639208
-18225,8362,8336,0.20070690829837,0.20070690829837,-105.0434239,39.7639208,-105.043422,39.7621158
-18226,8336,7851,0.201718717149991,0.201718717149991,-105.043422,39.7621158,-105.0434222,39.7603017
-18228,9334,6072,0.194542227529238,0.194542227529238,-105.042148,39.7838703,-105.0421669,39.7856198
-18229,6072,2552,0.201793795787929,0.201793795787929,-105.0421669,39.7856198,-105.0421454,39.7874345
-18231,10282,2550,0.408975962052575,0.408975962052575,-105.0409706,39.791112,-105.0409813,39.787434
-18233,6070,9333,0.193859431649891,0.193859431649891,-105.0409894,39.7856189,-105.0409786,39.7838755
-18235,3976,7037,0.199530180994258,0.199530180994258,-105.0299305,39.7652213,-105.0322649,39.7652109
-200,212,213,0.0847562945477418,0.0847562945477418,-104.9665616,39.779672,-104.9655888,39.7798206
-18390,3978,7038,0.19806787554915,0.19806787554915,-105.0299479,39.7656395,-105.0322651,39.7656196
-18392,3425,3425,0.000442266584977921,0.000442266584977921,-105.034629,39.7657398,-105.0346312,39.7657434
-18397,9331,6062,0.201652000193759,0.201652000193759,-105.0351853,39.7838062,-105.0351851,39.7856197
-18398,6062,2541,0.201129932352607,0.201129932352607,-105.0351851,39.7856197,-105.0351796,39.7874285
-18581,5716,10279,0.0494611669239994,0.0494611669239994,-105.0357784,39.7802062,-105.0363572,39.7802082
-18582,10279,7436,0.0477007849303031,0.0477007849303031,-105.0363572,39.7802082,-105.0369154,39.7802101
-18583,7436,10283,0.0501702475316452,0.0501702475316452,-105.0369154,39.7802101,-105.0375025,39.7802085
-17420,10101,10103,0.0112555006692224,0.0112555006692224,-104.9831564,39.6890637,-104.9831832,39.6889646
-18584,10283,7175,0.0483500943699416,0.0483500943699416,-105.0375025,39.7802085,-105.0380683,39.7802069
-18585,7175,6738,0.0504392554289189,0.0504392554289189,-105.0380683,39.7802069,-105.0386585,39.7802009
-18586,6738,7790,0.0494479351051842,0.0494479351051842,-105.0386585,39.7802009,-105.0392371,39.780195
-18587,7790,6666,0.0500428725179926,0.0500428725179926,-105.0392371,39.780195,-105.0398227,39.780198
-19485,10408,10409,0.0449233009136641,0.0449233009136641,-104.9883415,39.7101799,-104.9883441,39.7097759
-18958,4669,4949,0.0991091352300086,0.0991091352300086,-104.994016,39.720921,-104.9951748,39.720921
-18959,4949,10410,0.051350182738824,0.051350182738824,-104.9951748,39.720921,-104.9957751,39.7209292
-18961,7220,10411,0.0512063955237151,0.0512063955237151,-104.9963617,39.7209372,-104.9969604,39.7209341
-18962,10411,5674,0.0503168586815151,0.0503168586815151,-104.9969604,39.7209341,-104.9975487,39.7209311
-18964,5851,1441,0.115857091100705,0.115857091100705,-105.0025228,39.7148211,-105.0038773,39.7148211
-18965,1441,10412,0.122824478936007,0.122824478936007,-105.0038773,39.7148211,-105.0053132,39.7148113
-18966,10412,7622,0.0791461153811418,0.0791461153811418,-105.0053132,39.7148113,-105.0062385,39.7148085
-18967,7622,6933,0.202629079077677,0.202629079077677,-105.0062385,39.7148085,-105.0086074,39.7148217
-18968,6933,5888,0.202049147826104,0.202049147826104,-105.0086074,39.7148217,-105.0109694,39.7148443
-18969,5888,10407,0.149951393120126,0.149951393120126,-105.0109694,39.7148443,-105.0127225,39.7148426
-18971,4142,7756,0.106122091000002,0.106122091000002,-104.9827054,39.7147303,-104.9814659,39.7146886
-18973,3621,1827,0.0998991515255571,0.0998991515255571,-104.9803587,39.7146886,-104.9791916,39.7147225
-18974,1827,10091,0.0457369036734835,0.0457369036734835,-104.9791916,39.7147225,-104.9786569,39.7147194
-18975,10091,10090,0.0485102588443954,0.0485102588443954,-104.9786569,39.7147194,-104.9780898,39.7147143
-18976,10090,5102,0.00428121670773934,0.00428121670773934,-104.9780898,39.7147143,-104.9780399,39.7147113
-18977,5102,9830,0.0472330884345854,0.0472330884345854,-104.9780399,39.7147113,-104.9774882,39.7146931
-18978,9830,1764,0.0499536922707767,0.0499536922707767,-104.9774882,39.7146931,-104.9769042,39.7146962
-19245,5031,10461,0.0349404698955745,0.0349404698955745,-104.9884893,39.7405273,-104.9888698,39.7406419
-19246,10461,10462,0.146091635323691,0.146091635323691,-104.9888698,39.7406419,-104.9904372,39.7401189
-19247,10462,5803,0.103032761304249,0.103032761304249,-104.9904372,39.7401189,-104.9916422,39.7401229
-19249,10129,4929,0.0162234814669486,0.0162234814669486,-104.9982232,39.7400157,-104.9980335,39.7400187
-19250,4929,2997,0.0775054077358341,0.0775054077358341,-104.9980335,39.7400187,-104.9971271,39.7400109
-19251,2997,7215,0.0556994645707447,0.0556994645707447,-104.9971271,39.7400109,-104.9964757,39.7400063
-19252,7215,4943,0.101417024663026,0.101417024663026,-104.9964757,39.7400063,-104.9952896,39.7400105
-19253,4943,4680,0.100527034724402,0.100527034724402,-104.9952896,39.7400105,-104.9941139,39.7400082
-19254,4680,7861,0.10148450975115,0.10148450975115,-104.9941139,39.7400082,-104.992927,39.7400066
-19255,7861,5802,0.109659923162335,0.109659923162335,-104.992927,39.7400066,-104.9916445,39.7400016
-19256,5802,8768,0.114010676979814,0.114010676979814,-104.9916445,39.7400016,-104.9903111,39.740001
-19257,8768,10464,0.134804410176221,0.134804410176221,-104.9903111,39.740001,-104.9888814,39.740512
-19258,10464,338,0.0847524339031626,0.0847524339031626,-104.9888814,39.740512,-104.9880444,39.7401037
-19259,338,10465,0.0582049460436449,0.0582049460436449,-104.9880444,39.7401037,-104.9873778,39.7399976
-19261,9467,561,0.02991036647086,0.02991036647086,-104.9851948,39.7400592,-104.984845,39.7400568
-15187,8324,9523,0.0327715210342319,0.0327715210342319,-105.0252084,39.7401213,-105.0254385,39.740357
-15189,9403,6744,0.131603339182178,0.131603339182178,-105.0252739,39.7499939,-105.0268132,39.7499821
-15190,6744,6144,0.131367316381262,0.131367316381262,-105.0268132,39.7499821,-105.0283496,39.7500019
-15191,6144,4018,0.137213550559119,0.137213550559119,-105.0283496,39.7500019,-105.0299546,39.7500019
-15192,4018,7022,0.137229962505115,0.137229962505115,-105.0299546,39.7500019,-105.0315597,39.7499887
-15193,7022,7392,0.129151524081427,0.129151524081427,-105.0315597,39.7499887,-105.0330703,39.7500019
-15195,9524,9525,0.0293502828068984,0.0293502828068984,-105.0336803,39.7499978,-105.0340236,39.7499955
-15196,9525,3400,0.0502879609443278,0.0502879609443278,-105.0340236,39.7499955,-105.0346118,39.7499915
-15198,9212,8374,0.0509876682022625,0.0509876682022625,-105.0351931,39.7499892,-105.0357895,39.7499869
-15199,8374,9526,0.0501407630476736,0.0501407630476736,-105.0357895,39.7499869,-105.036376,39.7499878
-15201,7443,9527,0.0485275735168955,0.0485275735168955,-105.036967,39.7499887,-105.0375346,39.7499841
-15202,9527,7160,0.0501690368011668,0.0501690368011668,-105.0375346,39.7499841,-105.0381214,39.7499794
-15204,9528,7772,0.0491757515961192,0.0491757515961192,-105.0387229,39.7499763,-105.0392981,39.7499733
-19414,3251,7295,0.215557365491205,0.215557365491205,-104.9798629,39.70396,-104.9798441,39.7020215
-19415,7295,38,0.193056632398898,0.193056632398898,-104.9798441,39.7020215,-104.9798443,39.7002853
-19416,38,3537,0.207444876530122,0.207444876530122,-104.9798443,39.7002853,-104.9798091,39.6984199
-19417,3537,4232,0.199406339345135,0.199406339345135,-104.9798091,39.6984199,-104.979804,39.6966266
-19419,3248,7289,0.216790622749105,0.216790622749105,-104.9821867,39.7039406,-104.9821695,39.701991
-19420,7289,34,0.19126988034169,0.19126988034169,-104.9821695,39.701991,-104.982156,39.7002709
-19660,6763,3987,0.201101495268523,0.201101495268523,-105.0275974,39.7702694,-105.0299489,39.7703339
-19664,9366,9360,0.104402218346712,0.104402218346712,-105.0211194,39.7692754,-105.0211255,39.7702143
-19665,9360,10609,0.0511942469588291,0.0511942469588291,-105.0211255,39.7702143,-105.0211243,39.7697539
-19666,10609,10608,0.151226661870126,0.151226661870126,-105.0211243,39.7697539,-105.0228937,39.7697604
-19668,10608,10610,0.149537813443153,0.149537813443153,-105.0228937,39.7697604,-105.0246432,39.7697786
-19674,1809,10611,0.33816836736717,0.33816836736717,-105.0077397,39.7522023,-105.0097356,39.7495766
-19676,10376,10403,0.0245741855053009,0.0245741855053009,-105.0120158,39.75012,-105.0122636,39.750008
-19678,10612,1810,0.127204321184034,0.127204321184034,-105.0098938,39.7498133,-105.0094107,39.7508953
-19681,10613,10400,0.0511661482023126,0.0511661482023126,-105.0138421,39.7489553,-105.0134743,39.7485923
-16697,7094,9611,0.00886963723885407,0.00886963723885407,-105.00026,39.7424182,-105.0002927,39.7424939
-19683,10614,10404,0.0688061700167682,0.0688061700167682,-105.0100065,39.7499782,-105.0107841,39.7498186
-19873,9513,4580,0.132311871209248,0.132311871209248,-105.0369818,39.740326,-105.0369879,39.7415159
-19684,10404,10611,0.093589959625359,0.093589959625359,-105.0107841,39.7498186,-105.0097356,39.7495766
-17421,10103,10082,0.0236886540751766,0.0236886540751766,-104.9831832,39.6889646,-104.9834085,39.6888408
-19685,10611,10612,0.0295914472405657,0.0295914472405657,-105.0097356,39.7495766,-105.0098938,39.7498133
-19686,10612,10614,0.0207133170517971,0.0207133170517971,-105.0098938,39.7498133,-105.0100065,39.7499782
-19688,10615,10399,0.0680853608411523,0.0680853608411523,-105.0130481,39.74858,-105.0126923,39.7491278
-19742,8865,3778,0.153182304960692,0.153182304960692,-104.9456473,39.7304952,-104.94565,39.7291176
-19743,3778,10251,0.199472712546792,0.199472712546792,-104.94565,39.7291176,-104.9456527,39.7273237
-20418,10775,10774,0.0781617215430941,0.0781617215430941,-105.0243213,39.7599965,-105.0243795,39.760698
-19804,10646,2619,0.0523061501297365,0.0523061501297365,-104.9969581,39.7230021,-104.9969572,39.7225317
-19839,10655,10656,0.208642261382715,0.208642261382715,-105.0381325,39.7365924,-105.0381528,39.7384687
-19840,10656,9515,0.207256465232075,0.207256465232075,-105.0381528,39.7384687,-105.0381491,39.7403326
-19841,9515,4581,0.131476935756536,0.131476935756536,-105.0381491,39.7403326,-105.0381505,39.741515
-19842,4581,8369,0.136571452698726,0.136571452698726,-105.0381505,39.741515,-105.0381422,39.7427432
-19843,8369,5296,0.134437189399661,0.134437189399661,-105.0381422,39.7427432,-105.0381646,39.7439521
-19849,9510,10659,0.196832023994668,0.196832023994668,-105.0352438,39.7403194,-105.035226,39.7385493
-19850,10659,10660,0.00933491084100046,0.00933491084100046,-105.035226,39.7385493,-105.0352222,39.7384654
-19857,10663,10664,0.203268481110854,0.203268481110854,-105.0428156,39.736637,-105.0428308,39.738465
-19858,10664,4584,0.340902950197611,0.340902950197611,-105.0428308,39.738465,-105.0428428,39.7415308
-19859,4584,6443,0.133958738324445,0.133958738324445,-105.0428428,39.7415308,-105.0428338,39.7427355
-19860,6443,5300,0.13749324562242,0.13749324562242,-105.0428338,39.7427355,-105.042839,39.743972
-19862,10665,7406,0.149893826243372,0.149893826243372,-104.9969526,39.7179403,-104.9969848,39.7165925
-19865,10667,9512,0.206545737430627,0.206545737430627,-105.0363945,39.7384652,-105.0364026,39.7403227
-608,599,600,0.326867712180581,0.326867712180581,-105.0313012,39.7255444,-105.0351121,39.7257688
-19870,10669,10666,0.0946602410525992,0.0946602410525992,-105.03696,39.7365924,-105.03696,39.7374437
-19871,10666,10670,0.114297265097593,0.114297265097593,-105.03696,39.7374437,-105.03696,39.7384716
-19872,10670,9513,0.206208296842551,0.206208296842551,-105.03696,39.7384716,-105.0369818,39.740326
-20654,6734,10882,0.0587106683934502,0.0587106683934502,-105.0187898,39.7597001,-105.0184964,39.7601775
-19874,4580,8368,0.136014360939856,0.136014360939856,-105.0369879,39.7415159,-105.0369827,39.7427391
-19875,8368,3817,0.133956606983629,0.133956606983629,-105.0369827,39.7427391,-105.0369844,39.7439438
-19887,627,10669,0.00369254651812945,0.00369254651812945,-105.0369171,39.7365886,-105.03696,39.7365924
-19888,10669,10673,0.0509541857454109,0.0509541857454109,-105.03696,39.7365924,-105.0375559,39.7365924
-19889,10673,7185,0.0463624089792375,0.0463624089792375,-105.0375559,39.7365924,-105.0380981,39.7365924
-19890,7185,10655,0.00294147338451417,0.00294147338451417,-105.0380981,39.7365924,-105.0381325,39.7365924
-19891,10655,10658,0.0513792379314705,0.0513792379314705,-105.0381325,39.7365924,-105.0387333,39.7365995
-19892,10658,9726,0.0479329871824602,0.0479329871824602,-105.0387333,39.7365995,-105.0392938,39.7366062
-19893,9726,10654,0.050711837363241,0.050711837363241,-105.0392938,39.7366062,-105.0398868,39.736613
-19894,10654,1102,0.049608905570541,0.049608905570541,-105.0398868,39.736613,-105.0404669,39.7366198
-19895,1102,10674,0.051538155846358,0.051538155846358,-105.0404669,39.7366198,-105.0410696,39.7366244
-19896,10674,7514,0.0472454257465845,0.0472454257465845,-105.0410696,39.7366244,-105.0416221,39.7366286
-19897,7514,10675,0.00204366911425749,0.00204366911425749,-105.0416221,39.7366286,-105.041646,39.7366287
-19898,10675,10650,0.0481859646371305,0.0481859646371305,-105.041646,39.7366287,-105.0422095,39.7366329
-19899,10650,3868,0.0500586048613679,0.0500586048613679,-105.0422095,39.7366329,-105.0427949,39.7366372
-16182,5547,1702,0.197838014226301,0.197838014226301,-104.9881577,39.6894044,-104.9881579,39.6911836
-19900,3868,10663,0.00177015306197821,0.00177015306197821,-105.0427949,39.7366372,-105.0428156,39.736637
-19902,10676,5589,0.0437900336804139,0.0437900336804139,-105.0434166,39.7366408,-105.0439287,39.736644
-19975,9710,10678,0.0499234178433857,0.0499234178433857,-105.0322594,39.7384585,-105.0328432,39.738465
-19976,10678,9722,0.0489092169162438,0.0489092169162438,-105.0328432,39.738465,-105.0334152,39.738465
-19977,9722,10686,0.0503973293919778,0.0503973293919778,-105.0334152,39.738465,-105.0340046,39.7384634
-19978,10686,3380,0.0518081278246911,0.0518081278246911,-105.0340046,39.7384634,-105.0346105,39.7384619
-19979,3380,10660,0.0523052391085021,0.0523052391085021,-105.0346105,39.7384619,-105.0352222,39.7384654
-19980,10660,10679,0.0495088072044065,0.0495088072044065,-105.0352222,39.7384654,-105.0358012,39.7384625
-19981,10679,10667,0.0507313759263116,0.0507313759263116,-105.0358012,39.7384625,-105.0363945,39.7384652
-19982,10667,10670,0.0483586645716411,0.0483586645716411,-105.0363945,39.7384652,-105.03696,39.7384716
-19983,10670,10680,0.0518679752837857,0.0518679752837857,-105.03696,39.7384716,-105.0375666,39.7384701
-19984,10680,10656,0.050123635320888,0.050123635320888,-105.0375666,39.7384701,-105.0381528,39.7384687
-19985,10656,10657,0.0496280116055878,0.0496280116055878,-105.0381528,39.7384687,-105.0387332,39.7384666
-19986,10657,9727,0.0488069327339047,0.0488069327339047,-105.0387332,39.7384666,-105.039304,39.7384682
-19989,1103,10684,0.0492526075164636,0.0492526075164636,-105.0404962,39.738465,-105.0410722,39.7384617
-656,646,647,0.146781335789774,0.146781335789774,-104.9354861,39.7413613,-104.9337694,39.7413613
-20153,9416,8943,0.363005134814212,0.363005134814212,-104.99143,39.7707341,-104.9945316,39.7685038
-20155,9241,426,0.0770893533882784,0.0770893533882784,-105.0252006,39.7420351,-105.0252144,39.7427283
-20157,461,6171,0.271278721099677,0.271278721099677,-104.9888564,39.7783921,-104.9860994,39.7796015
-20161,1795,8719,0.00999704268874585,0.00999704268874585,-104.9792579,39.6947744,-104.9792566,39.6946845
-20163,4233,1795,0.205432809418909,0.205432809418909,-104.9792547,39.6966219,-104.9792579,39.6947744
-20165,3252,7296,0.216277689734072,0.216277689734072,-104.9792822,39.7039665,-104.9792677,39.7020215
-20166,7296,39,0.192678596239665,0.192678596239665,-104.9792677,39.7020215,-104.9792689,39.7002887
-20167,39,3538,0.207091579860447,0.207091579860447,-104.9792689,39.7002887,-104.9792415,39.6984264
-20168,3538,4234,0.200695550258567,0.200695550258567,-104.9792415,39.6984264,-104.979217,39.6966216
-20170,6489,3675,0.150803028705812,0.150803028705812,-104.9787322,39.7461798,-104.9787278,39.747536
-20172,9313,4863,0.191918567433925,0.191918567433925,-104.9787299,39.7368736,-104.9787104,39.7351477
-20173,4863,2213,0.160028953629168,0.160028953629168,-104.9787104,39.7351477,-104.9786913,39.7337086
-20174,2213,928,0.187511558441934,0.187511558441934,-104.9786913,39.7337086,-104.9786778,39.7320223
-17423,10083,10104,0.109040593432451,0.109040593432451,-104.9836553,39.6886261,-104.9838931,39.6876627
-20175,928,5932,0.175834480120689,0.175834480120689,-104.9786778,39.7320223,-104.9787119,39.7304412
-20176,5932,3804,0.153555987473657,0.153555987473657,-104.9787119,39.7304412,-104.9787675,39.7290609
-20178,3804,10247,0.200040701273324,0.200040701273324,-104.9787675,39.7290609,-104.978775,39.7272619
-20181,6549,4768,0.17858020416066,0.17858020416066,-104.9787573,39.7240931,-104.9787498,39.7224871
-20185,10705,8247,0.0550533285282311,0.0550533285282311,-104.9639599,39.787996,-104.963496,39.7883396
-15205,7772,9040,0.0507978153373748,0.0507978153373748,-105.0392981,39.7499733,-105.0398922,39.7499655
-15206,9040,1113,0.0497891730866418,0.0497891730866418,-105.0398922,39.7499655,-105.0404745,39.7499577
-15208,9529,7493,0.0494909698776819,0.0494909698776819,-105.0410698,39.7499582,-105.0416487,39.7499586
-15209,7493,9169,0.051731129981418,0.051731129981418,-105.0416487,39.7499586,-105.0422538,39.749957
-15210,9169,3835,0.0502567043103765,0.0502567043103765,-105.0422538,39.749957,-105.0428416,39.7499633
-15212,5624,3708,0.103423232464888,0.103423232464888,-105.0017248,39.7755303,-105.002935,39.7755303
-15213,3708,718,0.104893137935114,0.104893137935114,-105.002935,39.7755303,-105.0041624,39.7755303
-15214,718,9442,0.108559355644902,0.108559355644902,-105.0041624,39.7755303,-105.0054327,39.7755303
-15215,9442,8519,0.0865482797270432,0.0865482797270432,-105.0054327,39.7755303,-105.0064452,39.7755134
-15218,539,540,0.260599478311813,0.260599478311813,-105.0461157,39.7530208,-105.0433843,39.7519802
-15220,9430,9531,0.0962600395709663,0.0962600395709663,-105.0442004,39.7548692,-105.0443549,39.7540117
-15232,8334,8360,0.0525484415568663,0.0525484415568663,-104.9244842,39.6961248,-104.9248705,39.6964922
-15234,9532,9533,0.00803607126282377,0.00803607126282377,-104.9348912,39.7066948,-104.9349851,39.7066969
-16285,2852,1362,0.131790180095648,0.131790180095648,-104.972242,39.697774,-104.9710484,39.6970248
-15236,9534,9535,0.0751513734309232,0.0751513734309232,-104.9352855,39.7067217,-104.9359493,39.706279
-15237,9535,9536,0.0195917533971332,0.0195917533971332,-104.9359493,39.706279,-104.9358729,39.7061129
-15238,9536,9537,0.0515491230280822,0.0515491230280822,-104.9358729,39.7061129,-104.935374,39.7058529
-18878,3216,6125,0.202386413121619,0.202386413121619,-104.9611349,39.7111011,-104.9611403,39.709281
-15239,9537,9538,0.0217956250277941,0.0217956250277941,-104.935374,39.7058529,-104.9352077,39.7057044
-15248,8177,9543,0.0137987617761691,0.0137987617761691,-104.9362135,39.7050335,-104.9363074,39.7049326
-15249,9541,9542,0.0585754347953461,0.0585754347953461,-104.93572,39.7055929,-104.936117,39.7051637
-15262,9552,9550,0.00461416645458039,0.00461416645458039,-104.9337027,39.7048954,-104.9336788,39.7049326
-15263,9550,8208,0.00942903742084459,0.00942903742084459,-104.9336788,39.7049326,-104.9336074,39.7049972
-15264,8208,8203,0.268586250441468,0.268586250441468,-104.9336074,39.7049972,-104.9333927,39.707407
-15265,8203,8187,0.252138571661244,0.252138571661244,-104.9333927,39.707407,-104.9332506,39.7096719
-15267,8182,9552,0.0592295781497915,0.0592295781497915,-104.9340007,39.7044146,-104.9337027,39.7048954
-15275,9553,392,0.159342904018314,0.159342904018314,-104.932842,39.703615,-104.932837,39.702182
-15276,392,443,0.100075433980265,0.100075433980265,-104.932837,39.702182,-104.932837,39.701282
-15277,443,8209,0.110751336507506,0.110751336507506,-104.932837,39.701282,-104.932831,39.700286
-15278,3258,9554,0.029060284587417,0.029060284587417,-104.9296823,39.7037068,-104.9294517,39.7035149
-15279,9555,9556,0.0194857519875014,0.0194857519875014,-104.9469862,39.7110374,-104.9468185,39.711156
-15280,9556,9557,0.01686832436596,0.01686832436596,-104.9468185,39.711156,-104.9466791,39.7112633
-15284,9558,8799,0.0124547414515574,0.0124547414515574,-104.9465426,39.7113542,-104.9464054,39.7113917
-15287,9268,8812,0.43752637477907,0.43752637477907,-104.946452,39.7115485,-104.9497656,39.714546
-15372,9568,7345,0.407049578137861,0.407049578137861,-104.9714922,39.7181793,-104.9667331,39.7181803
-15373,7345,7369,0.0183549065123627,0.0183549065123627,-104.9667331,39.7181803,-104.9665185,39.7181803
-15374,7369,7156,0.617874851338927,0.617874851338927,-104.9665185,39.7181803,-104.9592945,39.7181873
-15375,7156,8802,0.0193374199518318,0.0193374199518318,-104.9592945,39.7181873,-104.9590692,39.7181728
-15376,8802,7317,0.278372348360029,0.278372348360029,-104.9590692,39.7181728,-104.9558194,39.7180363
-15377,7317,7975,0.104085714382657,0.104085714382657,-104.9558194,39.7180363,-104.9546025,39.7180291
-15378,7975,8806,0.102424669696849,0.102424669696849,-104.9546025,39.7180291,-104.953405,39.7180338
-20689,10900,10890,0.00428101320774671,0.00428101320774671,-105.0403805,39.7652999,-105.0403806,39.7653384
-15380,2642,4108,0.0801282359532547,0.0801282359532547,-104.9521739,39.7180386,-104.9512465,39.7179366
-15882,9238,9569,0.375213941828735,0.375213941828735,-105.0454319,39.7354736,-105.0498174,39.7355873
-4422,4132,3782,0.199943657895071,0.199943657895071,-104.9505673,39.7273334,-104.9505822,39.7291315
-15381,4108,7064,0.0951259934580263,0.0951259934580263,-104.9512465,39.7179366,-104.95025,39.7175567
-15383,993,9570,0.0346111476896159,0.0346111476896159,-104.9740165,39.7187595,-104.973941,39.7184537
-15385,9570,2914,0.0185752046128979,0.0185752046128979,-104.973941,39.7184537,-104.9738264,39.7183118
-15393,9572,9573,0.0529385333780706,0.0529385333780706,-104.9582883,39.716017,-104.9589072,39.716013
-15394,9574,9575,0.235820407161737,0.235820407161737,-104.9560321,39.7160129,-104.9533095,39.7156787
-15395,8031,9576,0.0470934184180165,0.0470934184180165,-104.9461768,39.7127943,-104.9467273,39.7128005
-15396,9577,9578,0.0233972200853265,0.0233972200853265,-104.9499594,39.7134958,-104.9499628,39.7137062
-15398,8797,9577,0.0680401949692739,0.0680401949692739,-104.9499588,39.7128839,-104.9499594,39.7134958
-15404,9583,9584,0.0189997554494897,0.0189997554494897,-105.0103359,39.7536233,-105.0101428,39.7537079
-15413,8399,9591,0.147004287358107,0.147004287358107,-104.9860118,39.7553389,-104.9872304,39.7544061
-15414,9591,9592,0.0201167087704522,0.0201167087704522,-104.9872304,39.7544061,-104.9873927,39.7542751
-15415,9592,8857,0.127975925737851,0.127975925737851,-104.9873927,39.7542751,-104.9884337,39.753448
-15416,8857,7897,0.144523217943683,0.144523217943683,-104.9884337,39.753448,-104.9896341,39.7525328
-15864,9238,9744,0.017876559138977,0.017876559138977,-105.0454319,39.7354736,-105.0455901,39.7355787
-765,765,766,0.102953430637808,0.102953430637808,-105.0097824,39.702535,-105.0109855,39.7025566
-15417,7897,8290,0.14604137147811,0.14604137147811,-104.9896341,39.7525328,-104.9908493,39.7516097
-15418,8290,8283,0.146330295926468,0.146330295926468,-104.9908493,39.7516097,-104.9920377,39.7506626
-15419,8283,9593,0.142033870447888,0.142033870447888,-104.9920377,39.7506626,-104.9932078,39.7497558
-15420,9593,5781,0.00569268198805717,0.00569268198805717,-104.9932078,39.7497558,-104.9932554,39.74972
-15421,5781,8573,0.144843439528192,0.144843439528192,-104.9932554,39.74972,-104.9944322,39.7487829
-15422,8573,6709,0.145981160506706,0.145981160506706,-104.9944322,39.7487829,-104.9956475,39.7478607
-15423,6709,8489,0.147059173742998,0.147059173742998,-104.9956475,39.7478607,-104.9968701,39.7469304
-20690,10890,10906,0.00389182243300479,0.00389182243300479,-105.0403806,39.7653384,-105.0403806,39.7653734
-15424,8489,9595,0.146421765893647,0.146421765893647,-104.9968701,39.7469304,-104.9980797,39.7459982
-15425,9595,8637,0.147888642293711,0.147888642293711,-104.9980797,39.7459982,-104.9993008,39.7450562
-15427,4935,9590,0.0193454164735318,0.0193454164735318,-104.9999815,39.7444843,-105.0001457,39.7443646
-15430,8608,1478,0.0099286705971119,0.0099286705971119,-105.0009845,39.7418987,-105.0010729,39.7418408
-15433,7965,9599,0.0149228575371813,0.0149228575371813,-104.999898,39.7420139,-105.0000258,39.7419225
-15434,9599,9600,0.0470176213777162,0.0470176213777162,-105.0000258,39.7419225,-105.0002179,39.7415263
-16271,9867,94,0.0502509464237392,0.0502509464237392,-104.955726,39.700668,-104.9557126,39.7002162
-16273,9867,3654,0.100162413874862,0.100162413874862,-104.955726,39.700668,-104.9550095,39.7013804
-15435,9600,9601,0.0734739685688771,0.0734739685688771,-105.0002179,39.7415263,-105.0002535,39.7408661
-15436,9601,9602,0.120469898327734,0.120469898327734,-105.0002535,39.7408661,-105.0014283,39.740268
-15474,9617,9618,0.0309123358720865,0.0309123358720865,-105.0006163,39.7464486,-105.0008107,39.746683
-15475,9618,9620,0.138252717835719,0.138252717835719,-105.0008107,39.746683,-105.0020353,39.747495
-15476,9620,8583,0.0318418680569216,0.0318418680569216,-105.0020353,39.747495,-105.0023143,39.7476847
-15477,8583,8311,0.113486958547973,0.113486958547973,-105.0023143,39.7476847,-105.0031123,39.7485003
-15478,8311,2808,0.019311822890669,0.019311822890669,-105.0031123,39.7485003,-105.0032328,39.7486472
-15479,2808,9621,0.209882261055166,0.209882261055166,-105.0032328,39.7486472,-105.0046936,39.7501642
-15480,9621,8522,0.0161981079077479,0.0161981079077479,-105.0046936,39.7501642,-105.0048268,39.7502678
-15481,8522,8465,0.180991531047255,0.180991531047255,-105.0048268,39.7502678,-105.0063608,39.7513896
-15487,9624,8468,0.0340418553637742,0.0340418553637742,-105.0012783,39.7478811,-105.0008907,39.7479512
-15786,9625,9596,0.0115036173464072,0.0115036173464072,-105.0249286,39.7370709,-105.0247945,39.7370792
-15489,9626,9618,0.0131866115872677,0.0131866115872677,-105.0006793,39.7467451,-105.0008107,39.746683
-15494,4937,9617,0.0698272217766147,0.0698272217766147,-105.0002133,39.7459024,-105.0006163,39.7464486
-15496,9628,9607,0.229575641341845,0.229575641341845,-104.9987907,39.7407672,-104.9997573,39.7426934
-15497,9607,9629,0.399617180847297,0.399617180847297,-104.9997573,39.7426934,-105.0003179,39.7462613
-15498,9629,8646,0.256050430773093,0.256050430773093,-105.0003179,39.7462613,-105.0012593,39.7484473
-15500,9630,7969,0.0158758080194332,0.0158758080194332,-104.9987212,39.7401977,-104.9989064,39.7402079
-20692,10907,5885,0.00586950671491746,0.00586950671491746,-105.026532,39.7636394,-105.0264783,39.7636723
-20693,5885,10908,0.00728749668565428,0.00728749668565428,-105.0264783,39.7636723,-105.0264211,39.7637209
-15501,7969,6652,0.0898251140375734,0.0898251140375734,-104.9989064,39.7402079,-104.9999567,39.7402253
-15502,6652,3939,0.0164838165497055,0.0164838165497055,-104.9999567,39.7402253,-105.0001493,39.7402188
-15504,5618,2286,0.10606737169151,0.10606737169151,-105.0015736,39.7401631,-105.0028141,39.740161
-15506,4494,9631,0.0855716406365801,0.0855716406365801,-105.0052335,39.7402363,-105.0062339,39.740258
-15508,9632,9630,0.0305358161263308,0.0305358161263308,-104.998365,39.7401779,-104.9987212,39.7401977
-15510,9633,4938,0.00998098524134014,0.00998098524134014,-104.997523,39.7384588,-104.9976397,39.7384568
-15511,4938,6650,0.146459053749354,0.146459053749354,-104.9976397,39.7384568,-104.9993525,39.7384677
-15512,6650,3942,0.0669626682021978,0.0669626682021978,-104.9993525,39.7384677,-105.0001356,39.7384618
-15513,3942,9634,0.0625685122990456,0.0625685122990456,-105.0001356,39.7384618,-105.0008673,39.7384682
-15514,9634,5614,0.0589940973382129,0.0589940973382129,-105.0008673,39.7384682,-105.0015572,39.7384742
-15515,5614,9635,0.0521244888471325,0.0521244888471325,-105.0015572,39.7384742,-105.0021668,39.7384727
-15518,9636,9633,0.0394950652718853,0.0394950652718853,-104.9970611,39.7384591,-104.997523,39.7384588
-15520,9637,4687,0.0148908622684888,0.0148908622684888,-104.9939487,39.7336881,-104.9941176,39.7336555
-15522,5369,9637,0.0293813837370069,0.0293813837370069,-104.9936509,39.7338199,-104.9939487,39.7336881
-15524,9638,4939,0.016179725599566,0.016179725599566,-104.9962859,39.7368624,-104.9964751,39.7368603
-15525,4939,7226,0.0545709952111213,0.0545709952111213,-104.9964751,39.7368603,-104.9971131,39.7368726
-15526,7226,9640,0.0899454990944897,0.0899454990944897,-104.9971131,39.7368726,-104.998165,39.7368735
-15527,9640,6648,0.0447546990135401,0.0447546990135401,-104.998165,39.7368735,-104.9986884,39.7368739
-15528,6648,9641,0.0618904241631349,0.0618904241631349,-104.9986884,39.7368739,-104.9994122,39.7368744
-15529,9641,3943,0.062420581454241,0.062420581454241,-104.9994122,39.7368744,-105.0001422,39.736875
-15530,3943,9642,0.0627968141202241,0.0627968141202241,-105.0001422,39.736875,-105.0008766,39.7368756
-15531,9642,5613,0.0612320254822175,0.0612320254822175,-105.0008766,39.7368756,-105.0015927,39.7368762
-15532,5613,9643,0.0497740720528068,0.0497740720528068,-105.0015927,39.7368762,-105.0021748,39.7368753
-15533,9643,3735,0.0551525120669933,0.0551525120669933,-105.0021748,39.7368753,-105.0028198,39.7368743
-15534,3735,4491,0.207391837271035,0.207391837271035,-105.0028198,39.7368743,-105.0052452,39.7368819
-15535,4491,129,0.109629298465467,0.109629298465467,-105.0052452,39.7368819,-105.0065273,39.7368825
-15536,129,7948,0.0410521986313786,0.0410521986313786,-105.0065273,39.7368825,-105.0070074,39.7368827
-15537,7948,2527,0.287151637527745,0.287151637527745,-105.0070074,39.7368827,-105.0103656,39.7368844
-15538,2527,9644,0.066959748271427,0.066959748271427,-105.0103656,39.7368844,-105.0111486,39.7368933
-15539,9644,1221,0.102833533420687,0.102833533420687,-105.0111486,39.7368933,-105.0123509,39.7369148
-16595,9951,6712,0.00734129639736197,0.00734129639736197,-104.9979162,39.749516,-104.9978555,39.7495627
-15542,618,9638,0.0309196803723069,0.0309196803723069,-104.9959243,39.7368632,-104.9962859,39.7368624
-15548,9647,9648,0.0291957554146951,0.0291957554146951,-104.98691,39.7265869,-104.9872502,39.7266088
-15549,7572,9649,0.0425327114545183,0.0425327114545183,-104.9861902,39.7259939,-104.98616,39.7263757
-15551,9650,9651,0.00414955523410263,0.00414955523410263,-104.9818746,39.7225925,-104.9818965,39.7225592
-15553,9651,9652,0.0110054302366685,0.0110054302366685,-104.9818965,39.7225592,-104.9819635,39.7224747
-15555,9652,9653,0.018743029705938,0.018743029705938,-104.9819635,39.7224747,-104.981824,39.7223447
-15558,9656,4160,0.0156451635843959,0.0156451635843959,-104.9775416,39.7199763,-104.977542,39.720117
-15559,4160,4769,0.262100180691146,0.262100180691146,-104.977542,39.720117,-104.9775557,39.7224741
-15560,4769,6550,0.17763389531497,0.17763389531497,-104.9775557,39.7224741,-104.9775557,39.7240716
-15561,6550,9299,0.171507609467602,0.171507609467602,-104.9775557,39.7240716,-104.9775506,39.725614
-15564,3803,5934,0.15587305192408,0.15587305192408,-104.977579,39.7290515,-104.9775786,39.7304533
-15565,5934,930,0.176935041153743,0.176935041153743,-104.9775786,39.7304533,-104.9775696,39.7320445
-15566,930,2215,0.185037322727603,0.185037322727603,-104.9775696,39.7320445,-104.9775909,39.7337085
-15567,2215,4865,0.15888388268895,0.15888388268895,-104.9775909,39.7337085,-104.9775716,39.7351373
-15568,4865,9477,0.193757182508649,0.193757182508649,-104.9775716,39.7351373,-104.9775705,39.7368798
-15569,9477,5466,0.16958064463752,0.16958064463752,-104.9775705,39.7368798,-104.9776145,39.7384045
-15570,5466,9658,0.179556785798918,0.179556785798918,-104.9776145,39.7384045,-104.9775745,39.740019
-15571,9658,9659,0.177338892845698,0.177338892845698,-104.9775745,39.740019,-104.977538,39.7416136
-15572,9659,662,0.00516539932395329,0.00516539932395329,-104.977538,39.7416136,-104.9775409,39.74166
-18431,10291,7169,0.0508784288394603,0.0508784288394603,-105.0387163,39.7625667,-105.0381211,39.7625719
-15573,662,9660,0.00343592323317494,0.00343592323317494,-104.9775409,39.74166,-104.9775409,39.7416909
-15575,9464,4609,0.17585408606,0.17585408606,-104.9775584,39.7432677,-104.977536,39.7448491
-15576,4609,6490,0.148161596916065,0.148161596916065,-104.977536,39.7448491,-104.9775509,39.7461815
-15577,6490,7974,0.0885778987826885,0.0885778987826885,-104.9775509,39.7461815,-104.9775516,39.7469781
-15579,4336,9656,0.0458791064556152,0.0458791064556152,-104.9775406,39.7195637,-104.9775416,39.7199763
-15581,7573,3556,0.0299599314208067,0.0299599314208067,-104.9744777,39.7548059,-104.9747379,39.7546254
-15583,851,7096,0.0990470064031014,0.0990470064031014,-104.9429635,39.7581888,-104.9418048,39.7581888
-15584,7096,9661,0.0107677923604542,0.0107677923604542,-104.9418048,39.7581888,-104.9416791,39.7581825
-15585,9661,9662,0.0081027242638239,0.0081027242638239,-104.9416791,39.7581825,-104.9415847,39.7581891
-15586,9662,9663,0.00747970901198794,0.00747970901198794,-104.9415847,39.7581891,-104.9414989,39.7582023
-15587,9663,9664,0.00836437719840195,0.00836437719840195,-104.9414989,39.7582023,-104.9414045,39.7582221
-15588,9664,9665,0.00928103292942469,0.00928103292942469,-104.9414045,39.7582221,-104.9413015,39.7582485
-15589,9665,9666,0.00696482735297281,0.00696482735297281,-104.9413015,39.7582485,-104.9412242,39.7582683
-15590,9666,9667,0.00676039634627663,0.00676039634627663,-104.9412242,39.7582683,-104.941147,39.7582815
-15591,9667,9668,0.00737940382126904,0.00737940382126904,-104.941147,39.7582815,-104.9410611,39.7582881
-15592,9668,9669,0.0330209265296029,0.0330209265296029,-104.9410611,39.7582881,-104.9406749,39.7582947
-15593,9669,8703,0.0154036792176203,0.0154036792176203,-104.9406749,39.7582947,-104.9404947,39.7582947
-15594,8703,8152,0.0935877668611654,0.0935877668611654,-104.9404947,39.7582947,-104.9393999,39.7582878
-15595,8152,7613,0.0937841622026169,0.0937841622026169,-104.9393999,39.7582878,-104.9383029,39.758301
-15596,7613,7266,0.0918493440897444,0.0918493440897444,-104.9383029,39.758301,-104.9372284,39.758301
-15597,7266,7585,0.0967046653962524,0.0967046653962524,-104.9372284,39.758301,-104.9360971,39.758301
-15599,2003,3363,0.0896469251714999,0.0896469251714999,-104.9349898,39.7583076,-104.9339411,39.7583142
-15600,3363,2757,0.0953909752557553,0.0953909752557553,-104.9339411,39.7583142,-104.9328253,39.7583274
-15601,2757,9670,0.0852737689905025,0.0852737689905025,-104.9328253,39.7583274,-104.9318279,39.758313
-15602,9670,9671,0.00427910266137011,0.00427910266137011,-104.9318279,39.758313,-104.9317783,39.7583182
-15603,9671,7008,0.00522846022655691,0.00522846022655691,-104.9317783,39.7583182,-104.9317193,39.7583306
-15604,7008,9672,0.00318311155269209,0.00318311155269209,-104.9317193,39.7583306,-104.9316858,39.7583431
-15605,9672,9673,0.00446550904917084,0.00446550904917084,-104.9316858,39.7583431,-104.9316375,39.7583584
-15606,9673,9674,0.0041674932546887,0.0041674932546887,-104.9316375,39.7583584,-104.9315892,39.7583635
-15607,9674,2283,0.0902343315694916,0.0902343315694916,-104.9315892,39.7583635,-104.9305336,39.7583604
-15608,2283,3604,0.0998061678618656,0.0998061678618656,-104.9305336,39.7583604,-104.9293663,39.7583802
-15609,3604,7530,0.0990712121378624,0.0990712121378624,-104.9293663,39.7583802,-104.9282076,39.7583604
-15610,7530,2138,0.109343720002506,0.109343720002506,-104.9282076,39.7583604,-104.9269287,39.7583802
-15611,2138,5995,0.0993207600682094,0.0993207600682094,-104.9269287,39.7583802,-104.9257668,39.7583774
-15612,5995,7675,0.101107003151938,0.101107003151938,-104.9257668,39.7583774,-104.924584,39.7583757
-15613,7675,9675,0.0981911301047578,0.0981911301047578,-104.924584,39.7583757,-104.9234354,39.7583868
-15614,9675,9676,0.100210056589884,0.100210056589884,-104.9234354,39.7583868,-104.9222632,39.7583745
-15615,9676,9677,0.100165741773797,0.100165741773797,-104.9222632,39.7583745,-104.9210915,39.7583633
-15616,9677,9678,0.100142214318315,0.100142214318315,-104.9210915,39.7583633,-104.91992,39.7583679
-15617,9678,9679,0.0993326168253197,0.0993326168253197,-104.91992,39.7583679,-104.918758,39.7583757
-899,913,914,0.147143450226327,0.147143450226327,-104.9806193,39.771691,-104.9793447,39.7725806
-20715,10914,9397,0.00810191720556871,0.00810191720556871,-105.0253716,39.7632346,-105.0252842,39.7632064
-15619,9680,9681,0.102717909771226,0.102717909771226,-104.9175671,39.7583757,-104.9163655,39.7583839
-15620,9681,9682,0.100023276858498,0.100023276858498,-104.9163655,39.7583839,-104.9151955,39.7583708
-15621,9682,9683,0.100843312370816,0.100843312370816,-104.9151955,39.7583708,-104.9140158,39.7583757
-15622,9683,9684,0.101658088937986,0.101658088937986,-104.9140158,39.7583757,-104.9128266,39.758384
-15623,9684,9685,0.0375181649725389,0.0375181649725389,-104.9128266,39.758384,-104.9123877,39.7583821
-15624,9685,9686,0.0593326737516342,0.0593326737516342,-104.9123877,39.7583821,-104.9116936,39.758384
-15625,9686,9687,0.102011015676098,0.102011015676098,-104.9116936,39.758384,-104.9105005,39.7584038
-15627,9688,9689,0.110065273053945,0.110065273053945,-104.9094325,39.758409,-104.908145,39.7583966
-15628,9689,9690,0.109733851792721,0.109733851792721,-104.908145,39.7583966,-104.9068613,39.7583906
-15629,9690,9691,0.0939207749458389,0.0939207749458389,-104.9068613,39.7583906,-104.9057627,39.7584038
-15630,9691,9692,0.102876500148466,0.102876500148466,-104.9057627,39.7584038,-104.9045594,39.7584208
-15631,9692,9693,0.0940860472810003,0.0940860472810003,-104.9045594,39.7584208,-104.9034588,39.7584114
-15633,851,7096,0.0990470064031014,0.0990470064031014,-104.9429635,39.7581888,-104.9418048,39.7581888
-15634,7096,9661,0.0107677923604542,0.0107677923604542,-104.9418048,39.7581888,-104.9416791,39.7581825
-15635,9661,9662,0.0081027242638239,0.0081027242638239,-104.9416791,39.7581825,-104.9415847,39.7581891
-15636,9662,9663,0.00747970901198794,0.00747970901198794,-104.9415847,39.7581891,-104.9414989,39.7582023
-15637,9663,9664,0.00836437719840195,0.00836437719840195,-104.9414989,39.7582023,-104.9414045,39.7582221
-15638,9664,9665,0.00928103292942469,0.00928103292942469,-104.9414045,39.7582221,-104.9413015,39.7582485
-15639,9665,9666,0.00696482735297281,0.00696482735297281,-104.9413015,39.7582485,-104.9412242,39.7582683
-15641,9667,9668,0.00737940382126904,0.00737940382126904,-104.941147,39.7582815,-104.9410611,39.7582881
-15642,9668,9669,0.0330209265296029,0.0330209265296029,-104.9410611,39.7582881,-104.9406749,39.7582947
-15644,8703,8152,0.0935877668611654,0.0935877668611654,-104.9404947,39.7582947,-104.9393999,39.7582878
-20716,9397,9341,0.0111932287865196,0.0111932287865196,-105.0252842,39.7632064,-105.0251701,39.763157
-15645,8152,7613,0.0937841622026169,0.0937841622026169,-104.9393999,39.7582878,-104.9383029,39.758301
-15646,7613,7266,0.0918493440897444,0.0918493440897444,-104.9383029,39.758301,-104.9372284,39.758301
-15647,7266,7585,0.0967046653962524,0.0967046653962524,-104.9372284,39.758301,-104.9360971,39.758301
-15648,7585,2003,0.0946559616738872,0.0946559616738872,-104.9360971,39.758301,-104.9349898,39.7583076
-15649,2003,3363,0.0896469251714999,0.0896469251714999,-104.9349898,39.7583076,-104.9339411,39.7583142
-15650,3363,2757,0.0953909752557553,0.0953909752557553,-104.9339411,39.7583142,-104.9328253,39.7583274
-15651,2757,9670,0.0852737689905025,0.0852737689905025,-104.9328253,39.7583274,-104.9318279,39.758313
-15652,9670,9671,0.00427910266137011,0.00427910266137011,-104.9318279,39.758313,-104.9317783,39.7583182
-15653,9671,7008,0.00522846022655691,0.00522846022655691,-104.9317783,39.7583182,-104.9317193,39.7583306
-15654,7008,9672,0.00318311155269209,0.00318311155269209,-104.9317193,39.7583306,-104.9316858,39.7583431
-15655,9672,9673,0.00446550904917084,0.00446550904917084,-104.9316858,39.7583431,-104.9316375,39.7583584
-15656,9673,9674,0.0041674932546887,0.0041674932546887,-104.9316375,39.7583584,-104.9315892,39.7583635
-15657,9674,2283,0.0902343315694916,0.0902343315694916,-104.9315892,39.7583635,-104.9305336,39.7583604
-15658,2283,3604,0.0998061678618656,0.0998061678618656,-104.9305336,39.7583604,-104.9293663,39.7583802
-15659,3604,7530,0.0990712121378624,0.0990712121378624,-104.9293663,39.7583802,-104.9282076,39.7583604
-940,955,956,0.0467857248690536,0.0467857248690536,-104.9456366,39.7320897,-104.9450895,39.7320866
-15660,7530,2138,0.109343720002506,0.109343720002506,-104.9282076,39.7583604,-104.9269287,39.7583802
-15661,2138,5995,0.0993207600682094,0.0993207600682094,-104.9269287,39.7583802,-104.9257668,39.7583774
-15663,7675,9675,0.0981911301047578,0.0981911301047578,-104.924584,39.7583757,-104.9234354,39.7583868
-15664,9675,9676,0.100210056589884,0.100210056589884,-104.9234354,39.7583868,-104.9222632,39.7583745
-15665,9676,9677,0.100165741773797,0.100165741773797,-104.9222632,39.7583745,-104.9210915,39.7583633
-15666,9677,9678,0.100142214318315,0.100142214318315,-104.9210915,39.7583633,-104.91992,39.7583679
-20717,9341,10910,0.0086655068036058,0.0086655068036058,-105.0251701,39.763157,-105.0250813,39.7631194
-15667,9678,9679,0.0993326168253197,0.0993326168253197,-104.91992,39.7583679,-104.918758,39.7583757
-15668,9679,9680,0.101799223111765,0.101799223111765,-104.918758,39.7583757,-104.9175671,39.7583757
-15669,9680,9681,0.102717909771226,0.102717909771226,-104.9175671,39.7583757,-104.9163655,39.7583839
-15670,9681,9682,0.100023276858498,0.100023276858498,-104.9163655,39.7583839,-104.9151955,39.7583708
-15671,9682,9683,0.100843312370816,0.100843312370816,-104.9151955,39.7583708,-104.9140158,39.7583757
-15672,9683,9684,0.101658088937986,0.101658088937986,-104.9140158,39.7583757,-104.9128266,39.758384
-15673,9684,9685,0.0375181649725389,0.0375181649725389,-104.9128266,39.758384,-104.9123877,39.7583821
-15675,9686,9687,0.102011015676098,0.102011015676098,-104.9116936,39.758384,-104.9105005,39.7584038
-15676,9687,9688,0.091295408872665,0.091295408872665,-104.9105005,39.7584038,-104.9094325,39.758409
-15677,9688,9689,0.110065273053945,0.110065273053945,-104.9094325,39.758409,-104.908145,39.7583966
-15678,9689,9690,0.109733851792721,0.109733851792721,-104.908145,39.7583966,-104.9068613,39.7583906
-15679,9690,9691,0.0939207749458389,0.0939207749458389,-104.9068613,39.7583906,-104.9057627,39.7584038
-15680,9691,9692,0.102876500148466,0.102876500148466,-104.9057627,39.7584038,-104.9045594,39.7584208
-15681,9692,9693,0.0940860472810003,0.0940860472810003,-104.9045594,39.7584208,-104.9034588,39.7584114
-15684,7680,3450,0.103468199661171,0.103468199661171,-104.9473666,39.7178126,-104.9461569,39.7178084
-15686,6014,3880,0.103612570358144,0.103612570358144,-104.9449634,39.7178023,-104.943752,39.7178027
-15687,3880,842,0.103458609408344,0.103458609408344,-104.943752,39.7178027,-104.9425424,39.717803
-15688,842,7097,0.103202015659942,0.103202015659942,-104.9425424,39.717803,-104.9413358,39.7178027
-15689,7097,9694,0.047717886337947,0.047717886337947,-104.9413358,39.7178027,-104.9407779,39.7178027
-15690,9694,8693,0.0153273459011852,0.0153273459011852,-104.9407779,39.7178027,-104.9405987,39.7178021
-15691,8693,8154,0.0909950973067502,0.0909950973067502,-104.9405987,39.7178021,-104.939535,39.717787
-15692,8154,7616,0.0940844002869557,0.0940844002869557,-104.939535,39.717787,-104.938435,39.717787
-20719,10885,9398,0.0070860203578635,0.0070860203578635,-105.0253682,39.762093,-105.0252853,39.7620928
-15693,7616,7269,0.0941699315585107,0.0941699315585107,-104.938435,39.717787,-104.937334,39.717787
-15695,2024,3357,0.101537173300766,0.101537173300766,-104.935134,39.717787,-104.9339472,39.7178087
-15696,3357,2761,0.09936727049288,0.09936727049288,-104.9339472,39.7178087,-104.9327855,39.7177992
-15697,2761,7002,0.0992423706702366,0.0992423706702366,-104.9327855,39.7177992,-104.9316252,39.7178019
-15698,7002,2264,0.0979906184711561,0.0979906184711561,-104.9316252,39.7178019,-104.9304797,39.7178171
-15699,2264,3594,0.0994063483699449,0.0994063483699449,-104.9304797,39.7178171,-104.9293175,39.7178227
-15700,3594,7517,0.101662572945496,0.101662572945496,-104.9293175,39.7178227,-104.9281289,39.7178243
-15701,7517,2099,0.100157096238172,0.100157096238172,-104.9281289,39.7178243,-104.9269579,39.717825
-15702,2099,5976,0.101294873446063,0.101294873446063,-104.9269579,39.717825,-104.9257736,39.717827
-15703,5976,7666,0.100715370574341,0.100715370574341,-104.9257736,39.717827,-104.9245961,39.7178332
-15705,2329,9695,0.166702045988164,0.166702045988164,-104.9234266,39.7178332,-104.9214776,39.71784
-15706,8023,8686,0.102850512121315,0.102850512121315,-104.9485858,39.7178178,-104.9497874,39.7178534
-15708,8810,7064,0.0240522165973304,0.0240522165973304,-104.9500622,39.7177177,-104.95025,39.7175567
-15710,8803,7155,0.0191394427517654,0.0191394427517654,-104.9590745,39.7183523,-104.9592982,39.7183567
-15711,7155,6281,0.12107437233707,0.12107437233707,-104.9592982,39.7183567,-104.9607137,39.718346
-15712,6281,1050,0.111583194341316,0.111583194341316,-104.9607137,39.718346,-104.9620183,39.718346
-15714,3913,3150,0.158539469564201,0.158539469564201,-104.963317,39.7183519,-104.9651706,39.7183518
-15715,3150,3124,0.0198304894474349,0.0198304894474349,-104.9651706,39.7183518,-104.9654024,39.718348
-15716,3124,7370,0.0954616596060542,0.0954616596060542,-104.9654024,39.718348,-104.9665185,39.7183519
-15717,7370,7346,0.018354860843617,0.018354860843617,-104.9665185,39.7183519,-104.9667331,39.7183519
-15718,7346,6806,0.0981383819816197,0.0981383819816197,-104.9667331,39.7183519,-104.9678805,39.718355
-15719,6806,6802,0.0198184437093697,0.0198184437093697,-104.9678805,39.718355,-104.9681122,39.7183532
-15720,6802,4711,0.111589534373845,0.111589534373845,-104.9681122,39.7183532,-104.9694168,39.7183425
-15721,4711,782,0.0471200606837116,0.0471200606837116,-104.9694168,39.7183425,-104.9699677,39.7183394
-15722,782,5113,0.0527296074626885,0.0527296074626885,-104.9699677,39.7183394,-104.9705842,39.7183394
-15723,5113,1545,0.0490000601275782,0.0490000601275782,-104.9705842,39.7183394,-104.9711569,39.7183279
-15724,1545,6325,0.0500984428583215,0.0500984428583215,-104.9711569,39.7183279,-104.9717416,39.7183547
-15728,9449,9696,0.165726699390797,0.165726699390797,-104.9558247,39.7176986,-104.9554143,39.716242
-15732,8801,5164,0.779026857141219,0.779026857141219,-104.9590492,39.7160869,-104.9499442,39.7162631
-15734,9303,1207,0.168708605950551,0.168708605950551,-104.9439908,39.7256083,-104.9439778,39.7271255
-15735,1207,9698,0.0215813490172367,0.0215813490172367,-104.9439778,39.7271255,-104.9439853,39.7273195
-15736,9698,3771,0.199072281764282,0.199072281764282,-104.9439853,39.7273195,-104.9439848,39.7291098
-15738,8867,958,0.177734005515433,0.177734005515433,-104.9439798,39.7304995,-104.9439811,39.7320979
-15739,958,9420,0.172099550054797,0.172099550054797,-104.9439811,39.7320979,-104.9439933,39.7336456
-15740,9420,4896,0.162799282631442,0.162799282631442,-104.9439933,39.7336456,-104.9439627,39.7351095
-15741,4896,9470,0.183516274472291,0.183516274472291,-104.9439627,39.7351095,-104.9439656,39.7367599
-15742,9470,5493,0.174731799993968,0.174731799993968,-104.9439656,39.7367599,-104.9439677,39.7383313
-15743,5493,9699,0.19822011575815,0.19822011575815,-104.9439677,39.7383313,-104.9439825,39.7401139
-15745,6718,4833,0.101679501011927,0.101679501011927,-104.9425631,39.711506,-104.9437517,39.7114947
-15746,4833,6378,0.103648655421083,0.103648655421083,-104.9437517,39.7114947,-104.9449634,39.7114907
-15747,6378,3188,0.103521991883946,0.103521991883946,-104.9449634,39.7114907,-104.9461736,39.7114973
-15749,8692,1060,0.0921643567251203,0.0921643567251203,-104.9406148,39.716237,-104.9395373,39.7162311
-15750,1060,1697,0.0932426366322247,0.0932426366322247,-104.9395373,39.7162311,-104.9384472,39.7162245
-15751,1697,7268,0.0954492333486145,0.0954492333486145,-104.9384472,39.7162245,-104.9373314,39.7162377
-15752,7268,6671,0.0907592732101769,0.0907592732101769,-104.9373314,39.7162377,-104.9362703,39.7162376
-15754,2023,3356,0.0971424118361729,0.0971424118361729,-104.9350998,39.7162443,-104.9339641,39.7162382
-15756,2760,7001,0.10039029368168,0.10039029368168,-104.9328153,39.7162508,-104.9316416,39.7162506
-15757,7001,2263,0.0995790205304853,0.0995790205304853,-104.9316416,39.7162506,-104.9304775,39.7162632
-15758,2263,3487,0.100064167822274,0.100064167822274,-104.9304775,39.7162632,-104.9293078,39.7162471
-15760,5346,2098,0.0987082712844417,0.0987082712844417,-104.9281276,39.716246,-104.9269736,39.7162529
-15761,2098,2940,0.101254724790906,0.101254724790906,-104.9269736,39.7162529,-104.9257898,39.7162499
-15763,6814,9700,0.201962621208867,0.201962621208867,-104.9246289,39.7162454,-104.9222677,39.7162528
-15766,9701,9702,0.01946308379228,0.01946308379228,-105.0380289,39.7329878,-105.0382565,39.732989
-15767,9702,7793,0.0917115184551997,0.0917115184551997,-105.0382565,39.732989,-105.0393289,39.7329999
-15768,7793,9703,0.0139663687397926,0.0139663687397926,-105.0393289,39.7329999,-105.039492,39.7329933
-15769,9703,9044,0.0844498524584079,0.0844498524584079,-105.039492,39.7329933,-105.0404793,39.7330112
-15770,9044,1093,0.00878466321187049,0.00878466321187049,-105.0404793,39.7330112,-105.040582,39.7330131
-15771,1093,7489,0.0946907062423257,0.0946907062423257,-105.040582,39.7330131,-105.0416893,39.7330197
-15772,7489,3839,0.0924847260791552,0.0924847260791552,-105.0416893,39.7330197,-105.0427707,39.7330329
-15773,3839,9041,0.00820472152594153,0.00820472152594153,-105.0427707,39.7330329,-105.0428651,39.7330461
-15774,9041,5598,0.0888252595207534,0.0888252595207534,-105.0428651,39.7330461,-105.0439037,39.7330329
-15775,5598,9038,0.0124773684874939,0.0124773684874939,-105.0439037,39.7330329,-105.0440496,39.7330344
-15776,9038,7546,0.0939528798953845,0.0939528798953845,-105.0440496,39.7330344,-105.0451482,39.7330461
-15817,9704,9705,0.0108623818240175,0.0108623818240175,-105.0273936,39.7360623,-105.0273775,39.7359654
-15777,7546,9706,0.691905770916309,0.691905770916309,-105.0451482,39.7330461,-105.0532391,39.733108
-15800,1403,9709,0.0705866891174833,0.0705866891174833,-105.0321575,39.73505,-105.0321558,39.7356848
-15801,9709,620,0.0978636674417251,0.0978636674417251,-105.0321558,39.7356848,-105.0322182,39.7365636
-15802,620,9710,0.210732715068668,0.210732715068668,-105.0322182,39.7365636,-105.0322594,39.7384585
-15803,9710,1934,0.00294671517895333,0.00294671517895333,-105.0322594,39.7384585,-105.0322592,39.738485
-15812,9716,2323,0.0248152326425255,0.0248152326425255,-105.0223349,39.737401,-105.0223537,39.7376237
-15814,9717,9718,0.0914794540174667,0.0914794540174667,-105.0311809,39.7378898,-105.0303789,39.7373453
-15815,9718,9719,0.0447183943765151,0.0447183943765151,-105.0303789,39.7373453,-105.0302877,39.7369493
-19498,10525,10526,0.0198486557174526,0.0198486557174526,-104.9883652,39.7073679,-104.9883666,39.7071894
-15816,9719,9704,0.266399501314719,0.266399501314719,-105.0302877,39.7369493,-105.0273936,39.7360623
-15823,622,9720,0.114642644128587,0.114642644128587,-105.0334066,39.7365509,-105.0334112,39.7375819
-15824,9720,9721,0.0112307689682394,0.0112307689682394,-105.0334112,39.7375819,-105.0334117,39.7376829
-15825,9721,9722,0.0869660670624723,0.0869660670624723,-105.0334117,39.7376829,-105.0334152,39.738465
-15826,9722,9508,0.205466270114504,0.205466270114504,-105.0334152,39.738465,-105.0334112,39.7403128
-15828,9723,8889,0.0324596924967659,0.0324596924967659,-105.0393086,39.7344206,-105.0393045,39.7347125
-15829,8889,7134,0.00993032916751998,0.00993032916751998,-105.0393045,39.7347125,-105.0393032,39.7348018
-15831,9724,9725,0.00760667507368999,0.00760667507368999,-105.0393035,39.7348362,-105.0393021,39.7349046
-15832,9725,9726,0.189210618262835,0.189210618262835,-105.0393021,39.7349046,-105.0392938,39.7366062
-15833,9726,9727,0.207046790394153,0.207046790394153,-105.0392938,39.7366062,-105.039304,39.7384682
-19270,10423,10424,0.0241914475611954,0.0241914475611954,-104.9951604,39.7462206,-104.9949557,39.7460704
-435,364,434,0.342302602243315,0.342302602243315,-104.9703166,39.6886511,-104.973423,39.6905908
-437,435,436,0.251313063977777,0.251313063977777,-104.9400813,39.7837417,-104.939734,39.785986
-438,291,437,0.00683009618704691,0.00683009618704691,-105.0052999,39.7613459,-105.0053491,39.7612975
-439,437,438,0.127267952892383,0.127267952892383,-105.0053491,39.7612975,-105.0062729,39.7603999
-18188,4070,6055,0.154839029661679,0.154839029661679,-105.0293098,39.784231,-105.0293078,39.7856235
-2329,914,2297,0.0421335193471221,0.0421335193471221,-104.9793447,39.7725806,-104.9797146,39.7728311
-2331,2320,2321,0.0970544429847538,0.0970544429847538,-104.9733543,39.7679348,-104.9741575,39.7685518
-2332,2321,2325,0.106348268281835,0.106348268281835,-104.9741575,39.7685518,-104.9750376,39.7692279
-2334,2326,2327,0.097322097365987,0.097322097365987,-104.9240294,39.7620162,-104.9240401,39.7628914
-2335,2327,1153,0.100532392748858,0.100532392748858,-104.9240401,39.7628914,-104.9240347,39.7637955
-2338,2329,2330,0.176644411418714,0.176644411418714,-104.9234266,39.7178332,-104.9234239,39.7194218
-2339,2330,2331,0.174810883246149,0.174810883246149,-104.9234239,39.7194218,-104.9234159,39.7209939
-2340,2331,2332,0.246452825481674,0.246452825481674,-104.9234159,39.7209939,-104.9238853,39.7231807
-12346,8662,8663,0.00747381550039305,0.00747381550039305,-105.0123789,39.7525675,-105.0123961,39.7526334
-15258,8632,9548,0.0273148076656665,0.0273148076656665,-104.9291888,39.7063544,-104.929508,39.7063606
-2341,2332,2333,0.239714451404855,0.239714451404855,-104.9238853,39.7231807,-104.9238906,39.7253365
-2342,2333,2334,0.0332654390408316,0.0332654390408316,-104.9238906,39.7253365,-104.9238826,39.7256356
-2344,2335,2336,0.129842641397919,0.129842641397919,-104.9238831,39.7280763,-104.9238797,39.729244
-2346,2337,2338,0.0990445311811364,0.0990445311811364,-104.9327695,39.7193905,-104.9316115,39.7193956
-2348,2265,2339,0.101695232363891,0.101695232363891,-104.9304912,39.7194002,-104.9293022,39.7193963
-2349,2339,2340,0.100657111492997,0.100657111492997,-104.9293022,39.7193963,-104.9281254,39.7194064
-2350,2340,2100,0.0993531902440497,0.0993531902440497,-104.9281254,39.7194064,-104.9269638,39.7194002
-20593,3590,10852,0.00726410078461852,0.00726410078461852,-105.0249274,39.7608402,-105.0249031,39.7609028
-20595,10864,10861,0.0184079229928756,0.0184079229928756,-105.0249015,39.7609531,-105.0248964,39.7611186
-20596,10861,10869,0.0187971985012912,0.0187971985012912,-105.0248964,39.7611186,-105.0248912,39.7612876
-20598,10844,10816,0.176342451403751,0.176342451403751,-105.0164651,39.7585116,-105.0185279,39.7585307
-20599,10816,10784,0.0180725957817606,0.0180725957817606,-105.0185279,39.7585307,-105.0187393,39.7585283
-18882,3271,7310,0.200940882978518,0.200940882978518,-104.9611322,39.7038533,-104.9611376,39.7020462
-20600,10784,10835,0.00593511915863137,0.00593511915863137,-105.0187393,39.7585283,-105.0188076,39.7585187
-20602,2958,10836,0.0107685222165634,0.0107685222165634,-105.0188637,39.7584212,-105.0188782,39.7585174
-20605,10827,10870,0.0187474646325031,0.0187474646325031,-105.0188943,39.7587219,-105.0188943,39.7588905
-20606,10870,10871,0.0569206829492766,0.0569206829492766,-105.0188943,39.7588905,-105.0188943,39.7594024
-20746,10919,10920,0.0829974075948199,0.0829974075948199,-105.0382104,39.7621908,-105.0391814,39.7621915
-20607,10872,10858,0.118628394955246,0.118628394955246,-105.0193556,39.7586912,-105.0190584,39.7597333
-20609,2959,10837,0.0110654933350888,0.0110654933350888,-105.0192775,39.7584245,-105.0192753,39.758524
-20610,10837,10819,0.0119664824389379,0.0119664824389379,-105.0192753,39.758524,-105.0192728,39.7586316
-11704,1158,1159,0.143826308402294,0.143826308402294,-104.9992501,39.7524969,-104.9980616,39.7534124
-16709,10000,10001,0.0457062376473756,0.0457062376473756,-105.0005739,39.745251,-105.0002374,39.7455704
-20652,9411,7929,0.0718148143148174,0.0718148143148174,-105.0180024,39.7601634,-105.0179546,39.7608082
-20655,4390,9954,0.0752796609482001,0.0752796609482001,-104.9873785,39.7489186,-104.9873941,39.7482417
-20656,9954,10883,0.0805000116188462,0.0805000116188462,-104.9873941,39.7482417,-104.9873826,39.7475178
-20657,10883,10884,0.00921180121982239,0.00921180121982239,-104.9873826,39.7475178,-104.9873861,39.747435
-20658,10884,8289,0.0487008508548274,0.0487008508548274,-104.9873861,39.747435,-104.9873968,39.7469971
-20660,5957,6482,0.0027689648671592,0.0027689648671592,-104.9873834,39.7462062,-104.9873838,39.7461813
-20661,6482,5774,0.120389794748458,0.120389794748458,-104.9873838,39.7461813,-104.9874021,39.7450987
-20662,5774,4620,0.0232425190443662,0.0232425190443662,-104.9874021,39.7450987,-104.9873927,39.7448898
-20663,4620,5809,0.169650245221728,0.169650245221728,-104.9873927,39.7448898,-104.9873953,39.7433641
-20664,5809,10472,0.013534248318244,0.013534248318244,-104.9873953,39.7433641,-104.9873927,39.7432424
-2394,2385,2386,0.330871173224232,0.330871173224232,-104.9496422,39.7136072,-104.9468949,39.7115125
-2396,2387,2072,0.091718253525282,0.091718253525282,-104.9541313,39.7738901,-104.9530584,39.7738703
-2398,2388,2389,0.0952556218940292,0.0952556218940292,-104.9519586,39.7738777,-104.950844,39.7738769
-2399,2389,2390,0.088517954558777,0.088517954558777,-104.950844,39.7738769,-104.9498085,39.773859
-2400,2390,2391,0.100075566647637,0.100075566647637,-104.9498085,39.773859,-104.9486382,39.7738901
-2401,2391,2392,0.0940014926636224,0.0940014926636224,-104.9486382,39.7738901,-104.9475383,39.7738843
-2402,2392,2394,0.0931645591460492,0.0931645591460492,-104.9475383,39.7738843,-104.9464482,39.7738908
-2403,2394,2395,0.0490422843236324,0.0490422843236324,-104.9464482,39.7738908,-104.9458744,39.7738967
-2404,2396,2397,0.101232025457682,0.101232025457682,-104.9452638,39.7738711,-104.9440793,39.7738645
-2405,2397,835,0.0985806787691326,0.0985806787691326,-104.9440793,39.7738645,-104.942926,39.7738477
-2406,835,2398,0.196049611343252,0.196049611343252,-104.942926,39.7738477,-104.940632,39.7738515
-2407,2398,2399,0.0153233199302382,0.0153233199302382,-104.940632,39.7738515,-104.9404527,39.7738518
-2408,2399,2400,0.00232458495354821,0.00232458495354821,-104.9404527,39.7738518,-104.9404255,39.7738517
-2412,2402,2403,0.0775441054784182,0.0775441054784182,-105.016659,39.7530243,-105.017566,39.7530336
-2415,2405,2406,0.101142772155656,0.101142772155656,-105.0346118,39.7530072,-105.0357948,39.7530206
-498,441,442,0.0937180388509973,0.0937180388509973,-105.01516,39.7314761,-105.01561,39.7322446
-500,443,444,0.0957304857475106,0.0957304857475106,-104.932837,39.701282,-104.933949,39.701378
-14680,445,446,0.198543865097556,0.198543865097556,-104.9700104,39.7237429,-104.9699934,39.7219574
-443,447,448,0.0518475604896436,0.0518475604896436,-105.0132294,39.7256673,-105.0126579,39.7258229
-446,450,451,0.1546192530483,0.1546192530483,-104.942375,39.7291047,-104.9423643,39.7304952
-310,318,319,0.318271935051083,0.318271935051083,-105.0344342,39.7830352,-105.0307715,39.7835551
-447,451,452,0.176746748854474,0.176746748854474,-104.9423643,39.7304952,-104.9423751,39.7320847
-448,452,453,0.173946054533759,0.173946054533759,-104.9423751,39.7320847,-104.9423616,39.733649
-449,453,454,0.161145911336434,0.161145911336434,-104.9423616,39.733649,-104.9423517,39.7350982
-450,454,455,0.183605091547984,0.183605091547984,-104.9423517,39.7350982,-104.9423505,39.7367494
-452,456,457,0.174314536622101,0.174314536622101,-104.9413102,39.732075,-104.9412942,39.7336426
-453,457,458,0.162044543484691,0.162044543484691,-104.9412942,39.7336426,-104.9412914,39.7350999
-454,458,459,0.182862983981988,0.182862983981988,-104.9412914,39.7350999,-104.9413035,39.7367444
-456,460,6,0.0823027301557762,0.0823027301557762,-104.9405035,39.7803397,-104.941411,39.7800918
-1198,1212,1213,0.0683736094322978,0.0683736094322978,-104.9874175,39.7272691,-104.986618,39.727272
-465,266,468,0.155710664946604,0.155710664946604,-104.9494463,39.6897162,-104.949472,39.6911164
-466,469,470,0.0207613766308904,0.0207613766308904,-104.9681294,39.7190458,-104.9678891,39.7190194
-468,471,472,0.378751941435673,0.378751941435673,-105.017379,39.7512262,-105.0184425,39.7479196
-472,475,476,0.0306017516715067,0.0306017516715067,-105.0122615,39.7554827,-105.0121896,39.7552131
-474,477,478,0.142331986757376,0.142331986757376,-105.0173303,39.7447127,-105.0170811,39.7459783
-476,401,479,0.0792493107270532,0.0792493107270532,-105.0115284,39.740564,-105.0124432,39.7406786
-480,481,482,0.61054856130416,0.61054856130416,-104.9818608,39.6967284,-104.9858803,39.7012654
-481,482,483,0.00751372921095178,0.00751372921095178,-104.9858803,39.7012654,-104.9859077,39.7013296
-482,483,484,0.0775332394520986,0.0775332394520986,-104.9859077,39.7013296,-104.9862665,39.7019699
-483,484,485,0.089248827005011,0.089248827005011,-104.9862665,39.7019699,-104.9862761,39.7027725
-17372,40,3540,0.206359755216492,0.206359755216492,-104.9786815,39.7002855,-104.9786521,39.6984298
-19502,10529,10530,0.0177249357864871,0.0177249357864871,-104.9883718,39.7065202,-104.9883733,39.7063608
-2653,2611,2612,0.141657164390576,0.141657164390576,-104.9891783,39.722537,-104.9908346,39.7225312
-2654,2612,2613,0.112637909268372,0.112637909268372,-104.9908346,39.7225312,-104.9921516,39.722527
-2655,2613,2614,0.0580743648208686,0.0580743648208686,-104.9921516,39.722527,-104.9928302,39.7225456
-17439,9901,10107,0.0190863480039502,0.0190863480039502,-104.9711673,39.6931206,-104.9711512,39.6932918
-2656,2614,2615,0.100743891980042,0.100743891980042,-104.9928302,39.7225456,-104.9940077,39.7225208
-2657,2615,2616,0.100475490032633,0.100475490032633,-104.9940077,39.7225208,-104.9951825,39.7225188
-2658,2616,2617,0.0513770343819779,0.0513770343819779,-104.9951825,39.7225188,-104.9957832,39.7225228
-2660,2618,2619,0.0511386540650187,0.0511386540650187,-104.9963593,39.7225267,-104.9969572,39.7225317
-2661,2619,2620,0.0507766966271612,0.0507766966271612,-104.9969572,39.7225317,-104.9975509,39.7225332
-2662,2620,2621,0.0437935865590098,0.0437935865590098,-104.9975509,39.7225332,-104.9980629,39.7225275
-2664,2622,2623,0.138741239129278,0.138741239129278,-104.9985544,39.7225221,-105.0001766,39.7225287
-2665,2623,2624,0.0616812798954739,0.0616812798954739,-105.0001766,39.7225287,-105.0008976,39.7225155
-2666,2624,2625,0.041735581046466,0.041735581046466,-105.0008976,39.7225155,-105.0013439,39.7226673
-2668,2626,2627,0.080053274568439,0.080053274568439,-105.0211539,39.7220542,-105.0220898,39.7220653
-2669,2627,2628,0.0586986059075718,0.0586986059075718,-105.0220898,39.7220653,-105.0227761,39.7220608
-2672,2630,2631,0.0511347279443915,0.0511347279443915,-105.0439263,39.7221305,-105.0445241,39.7221383
-2673,2631,2632,0.0473711830288774,0.0473711830288774,-105.0445241,39.7221383,-105.0450779,39.7221456
-2701,1199,2633,0.0222472727939579,0.0222472727939579,-104.951727,39.7271329,-104.9517199,39.7273329
-2800,2469,2753,0.205232670024875,0.205232670024875,-104.932822,39.7474019,-104.9328253,39.7492476
-2801,2753,2754,0.200329673691245,0.200329673691245,-104.9328253,39.7492476,-104.9328183,39.7510492
-2802,2754,796,0.200317660350865,0.200317660350865,-104.9328183,39.7510492,-104.9328183,39.7528507
-2803,796,2755,0.202508246596186,0.202508246596186,-104.9328183,39.7528507,-104.9328167,39.7546719
-2804,2755,2756,0.202966691897007,0.202966691897007,-104.9328167,39.7546719,-104.9328047,39.7564972
-2805,2756,2757,0.203516573136303,0.203516573136303,-104.9328047,39.7564972,-104.9328253,39.7583274
-2806,2757,2758,0.206901705972361,0.206901705972361,-104.9328253,39.7583274,-104.9328167,39.7601881
-2807,2758,2759,0.18527317626533,0.18527317626533,-104.9328167,39.7601881,-104.9328136,39.7618543
-2809,2760,2761,0.172193089993048,0.172193089993048,-104.9328153,39.7162508,-104.9327855,39.7177992
-2810,2761,2337,0.176949778602699,0.176949778602699,-104.9327855,39.7177992,-104.9327695,39.7193905
-2811,2337,2762,0.175813497300624,0.175813497300624,-104.9327695,39.7193905,-104.9327571,39.7209716
-2812,2762,2763,0.241500363205236,0.241500363205236,-104.9327571,39.7209716,-104.9327223,39.7231433
-2813,2763,2764,0.135070479950714,0.135070479950714,-104.9327223,39.7231433,-104.9327137,39.724358
-2814,2764,2765,0.106502558770285,0.106502558770285,-104.9327137,39.724358,-104.9327124,39.7253158
-2815,2765,2766,0.0334927078919062,0.0334927078919062,-104.9327124,39.7253158,-104.9327097,39.725617
-2816,2766,2767,0.200988096936329,0.200988096936329,-104.9327097,39.725617,-104.9327231,39.7274245
-2817,2767,2768,0.200799068465386,0.200799068465386,-104.9327231,39.7274245,-104.9327365,39.7292303
-2819,2769,1141,0.136317655493671,0.136317655493671,-104.933165,39.7620038,-104.9331531,39.7632297
-2820,1141,908,0.140881200888928,0.140881200888928,-104.9331531,39.7632297,-104.9331257,39.7644965
-1246,190,1268,0.101376125490378,0.101376125490378,-105.0203986,39.7166208,-105.0203557,39.7175319
-20670,10891,10892,0.0391113232197559,0.0391113232197559,-105.0400867,39.7653362,-105.0396698,39.7654812
-20671,10892,10893,0.0381065586329798,0.0381065586329798,-105.0396698,39.7654812,-105.0400814,39.7656129
-20672,10893,10894,0.00879572218910387,0.00879572218910387,-105.0400814,39.7656129,-105.0400807,39.765692
-20673,10894,6880,0.00914047873035344,0.00914047873035344,-105.0400807,39.765692,-105.0400799,39.7657742
-20675,10895,10896,0.0564298376836357,0.0564298376836357,-105.0400542,39.7656936,-105.0393975,39.7656413
-20676,10896,10897,0.0882221479591311,0.0882221479591311,-105.0393975,39.7656413,-105.039396,39.7648479
-20677,10897,10898,0.0915468728847566,0.0915468728847566,-105.039396,39.7648479,-105.0393945,39.7640246
-20678,10898,10889,0.0977975944203811,0.0977975944203811,-105.0393945,39.7640246,-105.0403834,39.764467
-12368,8665,8670,0.0146509072378509,0.0146509072378509,-105.0124819,39.7528908,-105.0123272,39.7529475
-20679,10889,10899,0.0863988642991602,0.0863988642991602,-105.0403834,39.764467,-105.0403803,39.765244
-20680,10899,10900,0.00621581990565306,0.00621581990565306,-105.0403803,39.765244,-105.0403805,39.7652999
-20682,10899,10901,0.0272487435286037,0.0272487435286037,-105.0403803,39.765244,-105.0400615,39.7652432
-20683,10902,10892,0.0353963477419812,0.0353963477419812,-105.0400838,39.7654891,-105.0396698,39.7654812
-20685,10903,10904,0.0311951245060147,0.0311951245060147,-105.0402411,39.7653473,-105.0402346,39.7656278
-20686,10905,8231,0.00978569112678673,0.00978569112678673,-105.0250777,39.7620918,-105.0250765,39.7620038
-20687,8231,10753,0.00720642488718956,0.00720642488718956,-105.0250765,39.7620038,-105.0250779,39.761939
-11,11,12,0.132606225003913,0.132606225003913,-105.0283851,39.746369,-105.0299361,39.7463759
-13,13,14,0.261405445974353,0.261405445974353,-105.0315114,39.7463778,-105.0345689,39.7463686
-14,14,15,0.0524534751729061,0.0524534751729061,-105.0345689,39.7463686,-105.0351824,39.7463725
-15,15,16,0.0498286567506269,0.0498286567506269,-105.0351824,39.7463725,-105.0357652,39.7463762
-16,16,17,0.0506321145105979,0.0506321145105979,-105.0357652,39.7463762,-105.0363574,39.7463727
-17,17,18,0.0480115772672805,0.0480115772672805,-105.0363574,39.7463727,-105.0369187,39.746386
-19,19,20,0.586520216245135,0.586520216245135,-105.044038,39.757286,-105.0508993,39.7572779
-21,22,23,0.0471109050306669,0.0471109050306669,-105.0186135,39.7572732,-105.0191645,39.7572644
-22,23,24,0.117066818844753,0.117066818844753,-105.0191645,39.7572644,-105.0205339,39.7572526
-25,26,27,0.131659873107185,0.131659873107185,-105.0236259,39.7572468,-105.0251661,39.7572464
-27,28,29,0.0945023300061256,0.0945023300061256,-104.9850866,39.7002557,-104.983982,39.7002584
-28,29,32,0.0547795902237084,0.0547795902237084,-104.983982,39.7002584,-104.9833417,39.7002584
-29,32,33,0.0472851468321661,0.0472851468321661,-104.9833417,39.7002584,-104.982789,39.7002584
-30,33,34,0.0541728824006047,0.0541728824006047,-104.982789,39.7002584,-104.982156,39.7002709
-1,1,2,0.182682884421833,0.182682884421833,-105.0155597,39.7339973,-105.0158228,39.7323669
-31,34,35,0.0481653228438301,0.0481653228438301,-104.982156,39.7002709,-104.9815932,39.7002821
-32,35,36,0.0518878807765827,0.0518878807765827,-104.9815932,39.7002821,-104.9809867,39.7002821
-34,37,38,0.0490317013211587,0.0490317013211587,-104.9804174,39.7002821,-104.9798443,39.7002853
-35,38,39,0.0492286314169291,0.0492286314169291,-104.9798443,39.7002853,-104.9792689,39.7002887
-36,39,40,0.0502550749626562,0.0502550749626562,-104.9792689,39.7002887,-104.9786815,39.7002855
-37,40,41,0.0504947813294015,0.0504947813294015,-104.9786815,39.7002855,-104.9780913,39.7002821
-19671,9367,10610,0.0557753987785757,0.0557753987785757,-105.0246438,39.769277,-105.0246432,39.7697786
-38,41,42,0.0486093395250147,0.0486093395250147,-104.9780913,39.7002821,-104.9775311,39.7002091
-39,42,43,0.0502383575999221,0.0502383575999221,-104.9775311,39.7002091,-104.9769439,39.7002055
-40,43,44,0.0498102685006676,0.0498102685006676,-104.9769439,39.7002055,-104.9763617,39.7002087
-42,45,46,0.0520249865615885,0.0520249865615885,-104.9757682,39.7002165,-104.9751601,39.7002153
-43,46,47,0.0510850489044332,0.0510850489044332,-104.9751601,39.7002153,-104.974563,39.7002186
-44,47,48,0.0480642310133195,0.0480642310133195,-104.974563,39.7002186,-104.9740013,39.7002102
-45,48,49,0.0520776483582305,0.0520776483582305,-104.9740013,39.7002102,-104.9733927,39.700201
-47,50,51,0.0661075861419648,0.0661075861419648,-104.9541194,39.7002037,-104.953347,39.7002205
-48,51,52,0.0568810950926816,0.0568810950926816,-104.953347,39.7002205,-104.9526824,39.7002349
-49,52,53,0.0608706853363099,0.0608706853363099,-104.9526824,39.7002349,-104.9519712,39.7002191
-50,53,54,0.0662114802606989,0.0662114802606989,-104.9519712,39.7002191,-104.9511976,39.7002019
-51,54,55,0.0474185291403829,0.0474185291403829,-104.9511976,39.7002019,-104.9506434,39.7001957
-52,55,56,0.0539297292184645,0.0539297292184645,-104.9506434,39.7001957,-104.9500131,39.7001887
-53,56,57,0.108686747732496,0.108686747732496,-104.9500131,39.7001887,-104.9487429,39.7002061
-54,57,58,0.187258749990905,0.187258749990905,-104.9487429,39.7002061,-104.9465541,39.7002085
-56,59,60,1.21682866156064,1.21682866156064,-104.9247401,39.6995385,-104.9105465,39.700242
-58,62,65,0.111732852527499,0.111732852527499,-104.932829,39.700178,-104.934135,39.700181
-60,66,67,0.0462182288009238,0.0462182288009238,-104.968686,39.7002245,-104.9681458,39.7002288
-61,67,68,0.0059633062869109,0.0059633062869109,-104.9681458,39.7002288,-104.9680761,39.7002293
-63,69,70,0.0080040379689871,0.0080040379689871,-104.9675826,39.7002312,-104.9674891,39.7002337
-65,71,72,0.00371377887510826,0.00371377887510826,-104.9669496,39.700226,-104.9669067,39.7002209
-66,72,73,0.0481593874311522,0.0481593874311522,-104.9669067,39.7002209,-104.9663438,39.7002174
-67,73,74,0.0476872742951146,0.0476872742951146,-104.9663438,39.7002174,-104.9657864,39.7002174
-68,74,75,0.050981067010882,0.050981067010882,-104.9657864,39.7002174,-104.9651905,39.7002174
-69,75,76,0.047311096476864,0.047311096476864,-104.9651905,39.7002174,-104.9646375,39.7002188
-70,76,77,0.00343925081784597,0.00343925081784597,-104.9646375,39.7002188,-104.9645973,39.7002189
-71,77,78,0.0504851331557092,0.0504851331557092,-104.9645973,39.7002189,-104.9640072,39.7002204
-72,78,79,0.0447329738384301,0.0447329738384301,-104.9640072,39.7002204,-104.9634844,39.7002269
-73,79,80,0.00573274424924571,0.00573274424924571,-104.9634844,39.7002269,-104.9634174,39.7002277
-74,80,81,0.048934333458383,0.048934333458383,-104.9634174,39.7002277,-104.9628455,39.7002349
-75,81,82,0.0451562090400863,0.0451562090400863,-104.9628455,39.7002349,-104.9623177,39.7002318
-76,82,83,0.0525053441886158,0.0525053441886158,-104.9623177,39.7002318,-104.961704,39.7002283
-77,83,84,0.0468507536792171,0.0468507536792171,-104.961704,39.7002283,-104.9611564,39.7002245
-79,85,86,0.0489620579654281,0.0489620579654281,-104.9605654,39.7002204,-104.9599931,39.700221
-80,86,87,0.056293962476598,0.056293962476598,-104.9599931,39.700221,-104.9593351,39.7002217
-81,87,88,0.0565505675369976,0.0565505675369976,-104.9593351,39.7002217,-104.9586741,39.7002217
-82,88,89,0.049261447484153,0.049261447484153,-104.9586741,39.7002217,-104.9580983,39.7002217
-83,89,90,0.0461992376398338,0.0461992376398338,-104.9580983,39.7002217,-104.9575583,39.7002238
-84,90,91,0.0452410545911285,0.0452410545911285,-104.9575583,39.7002238,-104.9570295,39.7002259
-85,91,92,0.040125194779582,0.040125194779582,-104.9570295,39.7002259,-104.9565605,39.7002236
-86,92,93,0.0417705541366205,0.0417705541366205,-104.9565605,39.7002236,-104.9560723,39.7002187
-87,93,94,0.0307746903425865,0.0307746903425865,-104.9560723,39.7002187,-104.9557126,39.7002162
-88,94,95,0.0484715360122363,0.0484715360122363,-104.9557126,39.7002162,-104.9551461,39.7002095
-90,58,96,0.0988139178735054,0.0988139178735054,-104.9465541,39.7002085,-104.9453991,39.7002071
-91,96,97,0.101340345409915,0.101340345409915,-104.9453991,39.7002071,-104.9442146,39.7002138
-92,97,98,0.0883916436599661,0.0883916436599661,-104.9442146,39.7002138,-104.9431816,39.700199
-93,98,99,0.0102766637725455,0.0102766637725455,-104.9431816,39.700199,-104.9430615,39.7001973
-94,99,100,0.0815080239205417,0.0815080239205417,-104.9430615,39.7001973,-104.9421088,39.7002019
-95,100,101,0.0191432455952872,0.0191432455952872,-104.9421088,39.7002019,-104.9418857,39.7001887
-99,104,105,0.149790406602899,0.149790406602899,-104.9874778,39.7002508,-104.9890384,39.7008615
-100,106,107,0.104888043119077,0.104888043119077,-104.931654,39.700221,-104.930428,39.700221
-101,107,108,0.276057285299863,0.276057285299863,-104.930428,39.700221,-104.9272013,39.700209
-103,109,110,0.318041485575751,0.318041485575751,-105.002935,39.7765792,-105.0016991,39.7792771
-105,111,112,0.0487653491195207,0.0487653491195207,-104.929111,39.709605,-104.929063,39.710042
-106,113,114,0.160343090933149,0.160343090933149,-105.0174031,39.7302926,-105.0192781,39.7302978
-107,114,115,0.208121584183608,0.208121584183608,-105.0192781,39.7302978,-105.0217118,39.7303058
-111,118,119,0.137350395143796,0.137350395143796,-105.0112228,39.7301878,-105.0128289,39.7301964
-113,120,121,0.356240759753107,0.356240759753107,-105.011137,39.753586,-105.0092699,39.7564502
-114,121,122,0.149871853701347,0.149871853701347,-105.0092699,39.7564502,-105.0080327,39.7574052
-115,122,123,0.148228608040365,0.148228608040365,-105.0080327,39.7574052,-105.0068372,39.7583708
-116,123,124,0.294126045752515,0.294126045752515,-105.0068372,39.7583708,-105.0043775,39.7602205
-118,125,126,0.131313615022207,0.131313615022207,-105.0040777,39.7604163,-105.0030317,39.7612812
-119,126,127,0.263795049720844,0.263795049720844,-105.0030317,39.7612812,-105.001255,39.763221
-123,130,131,0.221071288024568,0.221071288024568,-105.010718,39.694947,-105.0097289,39.6931103
-125,132,133,0.0549684068983719,0.0549684068983719,-104.9874659,39.6930068,-104.9881082,39.6929965
-126,133,135,0.0478699749630446,0.0478699749630446,-104.9881082,39.6929965,-104.9886673,39.6929807
-127,135,136,0.130706329520293,0.130706329520293,-104.9886673,39.6929807,-104.9901944,39.6930114
-128,136,137,0.0495130025200929,0.0495130025200929,-104.9901944,39.6930114,-104.990773,39.6930188
-129,137,138,0.0194653537975714,0.0194653537975714,-104.990773,39.6930188,-104.9910005,39.6930189
-130,138,139,0.0302495949579548,0.0302495949579548,-104.9910005,39.6930189,-104.991354,39.693023
-131,139,140,0.097138516429268,0.097138516429268,-104.991354,39.693023,-104.9924893,39.6930233
-133,141,142,0.0984160429772276,0.0984160429772276,-104.9968856,39.6930808,-104.9980358,39.6930742
-1414,1439,1440,0.0969799596597411,0.0969799596597411,-105.0228009,39.7820131,-105.0239358,39.7820092
-135,143,144,0.094779584184767,0.094779584184767,-104.9992288,39.6930874,-105.000336,39.6931138
-136,144,145,0.102947980955417,0.102947980955417,-105.000336,39.6931138,-105.0015377,39.6930676
-137,145,146,0.0998791210708115,0.0998791210708115,-105.0015377,39.6930676,-105.002705,39.6930742
-138,146,147,0.10354963170018,0.10354963170018,-105.002705,39.6930742,-105.0039152,39.6930676
-139,147,148,0.0970503169891706,0.0970503169891706,-105.0039152,39.6930676,-105.0050494,39.6930773
-141,149,150,0.0462633170535789,0.0462633170535789,-105.0061897,39.6930874,-105.0067304,39.6930874
-142,150,151,0.0859494466376985,0.0859494466376985,-105.0067304,39.6930874,-105.0077346,39.6931072
-143,151,152,0.084056042435147,0.084056042435147,-105.0077346,39.6931072,-105.008717,39.6931063
-144,152,131,0.0865811985903579,0.0865811985903579,-105.008717,39.6931063,-105.0097289,39.6931103
-145,131,155,0.0846809008371401,0.0846809008371401,-105.0097289,39.6931103,-105.0107186,39.6931124
-146,155,156,0.0860732350550831,0.0860732350550831,-105.0107186,39.6931124,-105.0117244,39.6930979
-147,156,157,0.0810260254286054,0.0810260254286054,-105.0117244,39.6930979,-105.0126712,39.6931124
-148,157,158,0.0821650587696609,0.0821650587696609,-105.0126712,39.6931124,-105.0136315,39.6931124
-149,158,159,0.0810216994355951,0.0810216994355951,-105.0136315,39.6931124,-105.0145783,39.6931248
-150,159,160,0.0856058417834562,0.0856058417834562,-105.0145783,39.6931248,-105.0155788,39.6931289
-151,160,161,0.0815928873404902,0.0815928873404902,-105.0155788,39.6931289,-105.0165323,39.6931402
-152,161,162,0.00737779613210769,0.00737779613210769,-105.0165323,39.6931402,-105.0166181,39.6931468
-154,163,164,0.00763240627009494,0.00763240627009494,-105.0174975,39.6931459,-105.0175867,39.6931453
-155,164,165,0.0713522613021865,0.0713522613021865,-105.0175867,39.6931453,-105.0184206,39.6931402
-156,165,166,0.00987473687183569,0.00987473687183569,-105.0184206,39.6931402,-105.018536,39.693139
-157,166,167,0.0668981585963986,0.0668981585963986,-105.018536,39.693139,-105.0193178,39.693131
-158,167,168,0.0113627652096004,0.0113627652096004,-105.0193178,39.693131,-105.0194505,39.693127
-159,168,169,0.0796520415458163,0.0796520415458163,-105.0194505,39.693127,-105.0203814,39.6931327
-160,169,170,0.0789939822174276,0.0789939822174276,-105.0203814,39.6931327,-105.0213045,39.6931204
-161,170,171,0.0216393201096419,0.0216393201096419,-105.0213045,39.6931204,-105.0215573,39.6931261
-162,171,172,0.05739626274334,0.05739626274334,-105.0215573,39.6931261,-105.022228,39.6931165
-163,172,173,0.0799414498698892,0.0799414498698892,-105.022228,39.6931165,-105.0231623,39.6931129
-164,173,174,0.161327077814812,0.161327077814812,-105.0231623,39.6931129,-105.0250478,39.6931151
-165,174,175,0.292992058630926,0.292992058630926,-105.0250478,39.6931151,-105.0284721,39.6931041
-166,175,176,0.108231632340063,0.108231632340063,-105.0284721,39.6931041,-105.029737,39.6931129
-167,176,177,0.106370208061557,0.106370208061557,-105.029737,39.6931129,-105.03098,39.6930959
-168,177,178,0.0920329418240447,0.0920329418240447,-105.03098,39.6930959,-105.0320556,39.6931021
-169,178,179,0.199657740223053,0.199657740223053,-105.0320556,39.6931021,-105.034389,39.6930864
-170,179,180,0.100614906430247,0.100614906430247,-105.034389,39.6930864,-105.0355649,39.693093
-1461,1483,1484,0.0976853528091841,0.0976853528091841,-104.9913183,39.6948152,-104.99246,39.6948099
-171,180,181,0.0991515808605787,0.0991515808605787,-105.0355649,39.693093,-105.0367236,39.6931063
-172,181,182,0.101348037813126,0.101348037813126,-105.0367236,39.6931063,-105.0379081,39.6931063
-175,184,185,0.0991513776470571,0.0991513776470571,-105.0402341,39.6931327,-105.0413928,39.6931195
-178,187,188,0.0984378662868895,0.0984378662868895,-105.0437531,39.6931327,-105.0449033,39.6931129
-179,188,189,0.709590130188447,0.709590130188447,-105.0449033,39.6931129,-105.0531962,39.6931758
-180,190,191,0.100578501060841,0.100578501060841,-105.0203986,39.7166208,-105.02039,39.7157163
-181,191,192,0.0991218871214513,0.0991218871214513,-105.02039,39.7157163,-105.0203814,39.7148249
-182,192,193,0.20342936542853,0.20342936542853,-105.0203814,39.7148249,-105.0203213,39.712996
-183,193,194,0.207080695389682,0.207080695389682,-105.0203213,39.712996,-105.0203728,39.7111341
-184,194,195,0.202642969626672,0.202642969626672,-105.0203728,39.7111341,-105.0203814,39.7093117
-185,195,196,0.201913108682536,0.201913108682536,-105.0203814,39.7093117,-105.0203986,39.7074959
-186,196,197,0.201920207523846,0.201920207523846,-105.0203986,39.7074959,-105.02039,39.70568
-187,197,198,0.201206377797867,0.201206377797867,-105.02039,39.70568,-105.0203557,39.7038707
-188,198,199,0.199728327239083,0.199728327239083,-105.0203557,39.7038707,-105.0203557,39.7020745
-189,199,200,0.179903776297828,0.179903776297828,-105.0203557,39.7020745,-105.0203471,39.7004566
-190,200,201,0.00513723410606708,0.00513723410606708,-105.0203471,39.7004566,-105.0203473,39.7004104
-191,201,202,0.207079558909688,0.207079558909688,-105.0203473,39.7004104,-105.0203557,39.6985481
-194,169,204,0.256940343045097,0.256940343045097,-105.0203814,39.6931327,-105.0203689,39.690822
-195,204,205,0.14761309930181,0.14761309930181,-105.0203689,39.690822,-105.0203775,39.6894945
-384,386,387,0.312847187378026,0.312847187378026,-105.0063891,39.78283,-105.0028212,39.783461
-197,208,209,0.0482198776992404,0.0482198776992404,-105.0203767,39.6877125,-105.0203575,39.6872791
-198,209,210,1.36238336075367,1.36238336075367,-105.0203575,39.6872791,-105.0203756,39.6750269
-199,211,212,0.0762056360151952,0.0762056360151952,-104.9672465,39.7792331,-104.9665616,39.779672
-210,221,222,0.10839564681744,0.10839564681744,-104.9863694,39.7019694,-104.9874359,39.7014431
-212,223,224,0.197685755221764,0.197685755221764,-104.9432215,39.7799643,-104.9412461,39.7790391
-213,224,225,0.136500664002185,0.136500664002185,-104.9412461,39.7790391,-104.9407032,39.7778846
-215,226,227,0.0378358956085511,0.0378358956085511,-104.940692,39.7797323,-104.9403515,39.7799498
-217,228,229,0.0700057652168164,0.0700057652168164,-104.949699,39.7790161,-104.9490058,39.7793516
-218,229,230,0.156709235598665,0.156709235598665,-104.9490058,39.7793516,-104.9472475,39.7797519
-220,231,232,0.0710636642555904,0.0710636642555904,-104.9941166,39.693522,-104.9943741,39.6929144
-223,234,235,0.0652725377045483,0.0652725377045483,-104.9688514,39.6965865,-104.9695743,39.6967741
-227,237,238,0.33099974682308,0.33099974682308,-105.0251054,39.7259431,-105.0289409,39.7255444
-19951,4950,4670,0.10032168356836,0.10032168356836,-104.9951823,39.723,-104.9940093,39.7230042
-229,239,240,0.145321847286165,0.145321847286165,-104.9766938,39.6912137,-104.9752801,39.6904894
-230,240,241,0.0697724132050665,0.0697724132050665,-104.9752801,39.6904894,-104.9745995,39.6901438
-231,241,242,0.0623380559401012,0.0623380559401012,-104.9745995,39.6901438,-104.9739987,39.6898267
-232,242,243,0.121807717540091,0.121807717540091,-104.9739987,39.6898267,-104.9728142,39.6892191
-233,243,244,0.123936016070967,0.123936016070967,-104.9728142,39.6892191,-104.9715783,39.6886379
-234,244,245,0.0423914167747626,0.0423914167747626,-104.9715783,39.6886379,-104.9711551,39.6884397
-235,245,30,0.0421885133223055,0.0421885133223055,-104.9711551,39.6884397,-104.9707346,39.6882416
-238,134,246,0.0735610173824186,0.0735610173824186,-104.969078,39.6873895,-104.9683485,39.6870395
-246,253,254,0.386604280856974,0.386604280856974,-105.0285448,39.740303,-105.0251543,39.7380028
-261,271,272,0.0791195509987444,0.0791195509987444,-105.0214373,39.7400355,-105.020512,39.7400417
-262,272,273,0.0178978198366689,0.0178978198366689,-105.020512,39.7400417,-105.0203028,39.7400362
-263,273,274,0.0364878269996901,0.0364878269996901,-105.0203028,39.7400362,-105.0198763,39.7400252
-264,274,275,0.130636800507014,0.130636800507014,-105.0198763,39.7400252,-105.0183528,39.7401138
-265,275,276,0.0381201943550558,0.0381201943550558,-105.0183528,39.7401138,-105.0179907,39.7399138
-272,282,283,0.097546663905458,0.097546663905458,-104.98357,39.7794055,-104.9824285,39.7794055
-556,66,551,0.00841985913797999,0.00841985913797999,-104.968686,39.7002245,-104.9687844,39.7002259
-557,551,552,0.04510313602044,0.04510313602044,-104.9687844,39.7002259,-104.9693115,39.7002336
-559,553,554,0.116858726253731,0.116858726253731,-105.0084451,39.7357701,-105.0077561,39.7366777
-562,249,556,0.0347143242166075,0.0347143242166075,-104.998368,39.698242,-104.998773,39.698261
-563,557,250,0.0320475892789012,0.0320475892789012,-104.998773,39.697354,-104.998399,39.69737
-581,573,574,3.62449911588374,3.62449911588374,-104.9857184,39.6894083,-104.9858252,39.6568125
-582,495,575,0.042579905853808,0.042579905853808,-104.9399882,39.7812905,-104.9404777,39.7813621
-583,575,576,0.0263063929759334,0.0263063929759334,-104.9404777,39.7813621,-104.940659,39.7811709
-585,577,311,0.0472092453507094,0.0472092453507094,-104.979193,39.7791651,-104.9786416,39.779139
-587,578,579,0.310605662522472,0.310605662522472,-105.0107342,39.7225974,-105.0080855,39.7206863
-589,580,206,0.0784574482758401,0.0784574482758401,-104.9566854,39.743808,-104.9566644,39.7445134
-591,581,582,0.323379230044806,0.323379230044806,-104.9583963,39.7508014,-104.9577579,39.7479349
-593,583,584,0.18304036244052,0.18304036244052,-104.957601,39.708926,-104.957575,39.70728
-595,585,586,0.0719402278196197,0.0719402278196197,-104.9889526,39.7822987,-104.9889771,39.7829454
-597,587,588,0.0168822192889414,0.0168822192889414,-105.0297456,39.724543,-105.029943,39.724543
-599,589,590,0.0668977161070656,0.0668977161070656,-104.9917474,39.779568,-104.9910794,39.7792543
-601,592,593,0.00991684169352972,0.00991684169352972,-104.9690283,39.7038655,-104.9689126,39.70386
-606,597,598,0.0427315746706827,0.0427315746706827,-104.9464074,39.7019764,-104.9468452,39.7017914
-610,601,602,0.0635315500234909,0.0635315500234909,-104.9947852,39.7686695,-104.9952229,39.7691313
-611,602,603,0.0528935910157463,0.0528935910157463,-104.9952229,39.7691313,-104.9958065,39.7692896
-16699,9993,9994,0.012991856325609,0.012991856325609,-105.0002198,39.7467956,-105.0002735,39.7466863
-612,603,604,0.0535739683641864,0.0535739683641864,-104.9958065,39.7692896,-104.9964331,39.7692764
-615,606,307,0.0053241575287587,0.0053241575287587,-105.0278867,39.763078,-105.0279141,39.763121
-616,307,607,0.210415758379136,0.210415758379136,-105.0279141,39.763121,-105.0300516,39.7640597
-618,608,609,0.0943257357645838,0.0943257357645838,-104.9472743,39.739517,-104.9461712,39.7395075
-620,610,611,0.12631191015444,0.12631191015444,-104.9873582,39.7368646,-104.9888354,39.7368658
-621,611,612,0.121362330065702,0.121362330065702,-104.9888354,39.7368658,-104.9902547,39.7368606
-11699,1033,1034,0.0933842207119007,0.0933842207119007,-104.9992823,39.7531544,-105.0000465,39.7525543
-622,612,613,0.120087101438352,0.120087101438352,-104.9902547,39.7368606,-104.9916591,39.7368586
-623,613,614,0.109496386514743,0.109496386514743,-104.9916591,39.7368586,-104.9929396,39.7368669
-625,615,616,0.099485158811405,0.099485158811405,-104.9941215,39.7368616,-104.9952849,39.7368711
-626,616,617,0.0380723765849069,0.0380723765849069,-104.9952849,39.7368711,-104.9957301,39.7368659
-627,617,618,0.0166082915806853,0.0166082915806853,-104.9957301,39.7368659,-104.9959243,39.7368632
-629,619,620,0.0454138336035488,0.0454138336035488,-105.0316871,39.7365656,-105.0322182,39.7365636
-630,620,621,0.0942731398582661,0.0942731398582661,-105.0322182,39.7365636,-105.0333206,39.7365518
-631,621,622,0.00735436876666859,0.00735436876666859,-105.0333206,39.7365518,-105.0334066,39.7365509
-632,622,623,0.102647301082546,0.102647301082546,-105.0334066,39.7365509,-105.0346068,39.7365694
-633,623,544,0.0305138174261522,0.0305138174261522,-105.0346068,39.7365694,-105.034963,39.736586
-636,625,626,0.0461061908767262,0.0461061908767262,-105.0357989,39.7365856,-105.0363381,39.7365871
-637,626,627,0.0495093856599813,0.0495093856599813,-105.0363381,39.7365871,-105.0369171,39.7365886
-639,628,629,0.00822721040716169,0.00822721040716169,-104.9733503,39.7623867,-104.9734189,39.7624386
-640,629,630,0.102896638771385,0.102896638771385,-104.9734189,39.7624386,-104.9743045,39.7630654
-641,630,631,0.106879933016847,0.106879933016847,-104.9743045,39.7630654,-104.9751714,39.7637581
-642,631,632,0.103715813554019,0.103715813554019,-104.9751714,39.7637581,-104.976027,39.7644195
-643,632,633,0.10692744992309,0.10692744992309,-104.976027,39.7644195,-104.9769309,39.7650843
-644,633,634,0.103895780437174,0.103895780437174,-104.9769309,39.7650843,-104.9777895,39.7657457
-645,634,635,0.10514306949893,0.10514306949893,-104.9777895,39.7657457,-104.9786451,39.7664251
-647,636,637,0.00886536795801057,0.00886536795801057,-105.0169344,39.7566577,-105.016925,39.7567371
-648,637,638,0.204097990393348,0.204097990393348,-105.016925,39.7567371,-105.0180723,39.7583468
-649,638,639,0.00993994545767469,0.00993994545767469,-105.0180723,39.7583468,-105.0181467,39.7584155
-651,640,641,0.322116221139114,0.322116221139114,-104.9875489,39.7695895,-104.9847379,39.7715192
-653,643,644,0.14058289547664,0.14058289547664,-104.9405805,39.7413879,-104.9389365,39.7413679
-654,644,645,0.143886814663415,0.143886814663415,-104.9389365,39.7413679,-104.9372542,39.7414009
-657,647,648,0.1449055455771,0.1449055455771,-104.9337694,39.7413613,-104.9320748,39.7413793
-660,650,651,0.0986374455510098,0.0986374455510098,-104.9872612,39.7417297,-104.9861093,39.7416811
-661,651,652,0.109870142544629,0.109870142544629,-104.9861093,39.7416811,-104.9848243,39.741678
-662,652,653,0.107278100090415,0.107278100090415,-104.9848243,39.741678,-104.9835697,39.7416896
-663,653,654,0.105274765421146,0.105274765421146,-104.9835697,39.7416896,-104.9823388,39.7416667
-664,654,655,0.107321673078917,0.107321673078917,-104.9823388,39.7416667,-104.9810836,39.7416667
-665,655,659,0.103426909396494,0.103426909396494,-104.9810836,39.7416667,-104.979874,39.741675
-666,659,660,0.0476206970204551,0.0476206970204551,-104.979874,39.741675,-104.9793171,39.7416689
-667,660,661,0.0487580750629072,0.0487580750629072,-104.9793171,39.7416689,-104.9787469,39.7416626
-668,661,662,0.103115405190933,0.103115405190933,-104.9787469,39.7416626,-104.9775409,39.74166
-669,662,663,0.118337011744519,0.118337011744519,-104.9775409,39.74166,-104.9761569,39.7416528
-670,663,664,0.118107974454135,0.118107974454135,-104.9761569,39.7416528,-104.9747756,39.7416621
-671,664,665,0.223948343500364,0.223948343500364,-104.9747756,39.7416621,-104.9721564,39.7416528
-672,665,666,0.106040631048838,0.106040631048838,-104.9721564,39.7416528,-104.9709162,39.7416478
-673,666,667,0.0256000736542961,0.0256000736542961,-104.9709162,39.7416478,-104.9706168,39.7416459
-674,667,668,0.0803036973488277,0.0803036973488277,-104.9706168,39.7416459,-104.9696776,39.7416433
-675,668,669,0.107519240980512,0.107519240980512,-104.9696776,39.7416433,-104.9684201,39.7416394
-1662,1688,1689,0.0492594246995293,0.0492594246995293,-105.038125,39.7676337,-105.0387013,39.7676285
-677,670,671,0.106757477563009,0.106757477563009,-104.9672238,39.7416291,-104.9659752,39.7416301
-678,671,672,0.103159385358598,0.103159385358598,-104.9659752,39.7416301,-104.9647688,39.7416171
-679,672,673,0.111733647900791,0.111733647900791,-104.9647688,39.7416171,-104.963462,39.7416167
-680,673,674,0.10480806031483,0.10480806031483,-104.963462,39.7416167,-104.9622362,39.7416157
-681,674,675,0.0524357665703955,0.0524357665703955,-104.9622362,39.7416157,-104.961623,39.7416085
-682,675,676,0.0522607419390769,0.0522607419390769,-104.961623,39.7416085,-104.9610118,39.7416043
-683,676,677,0.0516311575112871,0.0516311575112871,-104.9610118,39.7416043,-104.960408,39.7416109
-684,677,678,0.0529566114294976,0.0529566114294976,-104.960408,39.7416109,-104.9597887,39.7416177
-685,678,679,0.0524070698016137,0.0524070698016137,-104.9597887,39.7416177,-104.9591758,39.7416126
-686,679,680,0.187479766906081,0.187479766906081,-104.9591758,39.7416126,-104.9569831,39.7416105
-690,683,684,0.0954023275162926,0.0954023275162926,-104.9320748,39.7419667,-104.930959,39.7419667
-691,684,685,0.100472575096637,0.100472575096637,-104.930959,39.7419667,-104.9297839,39.7419673
-692,685,686,0.0954830683114717,0.0954830683114717,-104.9297839,39.7419673,-104.9286673,39.7419535
-693,686,687,0.0981912656165647,0.0981912656165647,-104.9286673,39.7419535,-104.9275189,39.7419485
-694,687,688,0.0529127579061837,0.0529127579061837,-104.9275189,39.7419485,-104.926901,39.7419221
-695,688,689,0.097652475318391,0.097652475318391,-104.926901,39.7419221,-104.9257594,39.7418957
-696,689,690,0.0954475604442949,0.0954475604442949,-104.9257594,39.7418957,-104.9246436,39.7419221
-697,690,691,1.04422795392214,1.04422795392214,-104.9246436,39.7419221,-104.9124306,39.7419176
-698,692,693,0.101491505067343,0.101491505067343,-104.9547755,39.7419939,-104.9535885,39.7419889
-700,694,695,0.0992328230839297,0.0992328230839297,-104.9524269,39.7419829,-104.9512663,39.7419839
-701,695,696,0.102484361376735,0.102484361376735,-104.9512663,39.7419839,-104.9500677,39.7419774
-703,697,698,0.0986965284486813,0.0986965284486813,-104.9488331,39.7419679,-104.9476788,39.7419741
-704,698,699,0.0994466333494717,0.0994466333494717,-104.9476788,39.7419741,-104.9465157,39.7419728
-705,699,700,0.0997814367951755,0.0997814367951755,-104.9465157,39.7419728,-104.9453488,39.7419601
-706,700,702,0.0968138925983087,0.0968138925983087,-104.9453488,39.7419601,-104.9442165,39.7419566
-707,702,703,0.100377700728806,0.100377700728806,-104.9442165,39.7419566,-104.9430426,39.7419454
-708,703,704,0.0945219805489684,0.0945219805489684,-104.9430426,39.7419454,-104.9419371,39.7419475
-709,704,705,0.101319162842739,0.101319162842739,-104.9419371,39.7419475,-104.9407521,39.7419489
-711,706,707,0.0929527445510612,0.0929527445510612,-105.0041014,39.7624043,-105.0041326,39.7632399
-712,707,708,0.132514897770158,0.132514897770158,-105.0041326,39.7632399,-105.0041445,39.7644316
-713,708,709,0.136169309583257,0.136169309583257,-105.0041445,39.7644316,-105.0041442,39.7656562
-714,709,710,0.133600704636896,0.133600704636896,-105.0041442,39.7656562,-105.0041443,39.7668577
-715,710,711,0.131877184107974,0.131877184107974,-105.0041443,39.7668577,-105.0041445,39.7680437
-716,711,712,0.137129048962243,0.137129048962243,-105.0041445,39.7680437,-105.0041679,39.7692768
-717,712,714,0.139625593223683,0.139625593223683,-105.0041679,39.7692768,-105.0041958,39.7705323
-718,714,715,0.140147388874583,0.140147388874583,-105.0041958,39.7705323,-105.0041615,39.7717924
-720,716,717,0.139181895573122,0.139181895573122,-105.0041786,39.7730524,-105.0042194,39.7743037
-721,717,718,0.136478657719685,0.136478657719685,-105.0042194,39.7743037,-105.0041624,39.7755303
-722,718,719,0.0608836584293049,0.0608836584293049,-105.0041624,39.7755303,-105.004171,39.7760778
-723,719,720,0.0543052596791692,0.0543052596791692,-105.004171,39.7760778,-105.0041538,39.776566
-724,720,721,0.402215107963206,0.402215107963206,-105.0041538,39.776566,-105.0041443,39.7801832
-726,722,723,0.109800761131151,0.109800761131151,-105.004084,39.7289511,-105.0028344,39.7287242
-728,724,725,0.0404933936313706,0.0404933936313706,-104.9512162,39.7020084,-104.9512072,39.7016443
-729,725,726,0.0429068637575149,0.0429068637575149,-104.9512072,39.7016443,-104.9511976,39.7012585
-730,726,54,0.117488559492451,0.117488559492451,-104.9511976,39.7012585,-104.9511976,39.7002019
-732,728,729,0.201386679597364,0.201386679597364,-104.951164,39.6965829,-104.9511904,39.6947719
-733,729,730,0.204011830144653,0.204011830144653,-104.9511904,39.6947719,-104.9512022,39.6929372
-734,730,731,0.199761692314281,0.199761692314281,-104.9512022,39.6929372,-104.9512028,39.6911407
-17425,10099,10083,0.0366406616748247,0.0366406616748247,-104.9835426,39.688944,-104.9836553,39.6886261
-735,731,732,0.201563131430502,0.201563131430502,-104.9512028,39.6911407,-104.951205,39.689328
-736,732,733,0.402282143818784,0.402282143818784,-104.951205,39.689328,-104.9512417,39.6857103
-737,734,735,0.0902645098486118,0.0902645098486118,-104.9634771,39.7765229,-104.9624209,39.7765159
-738,735,736,0.0928507623233121,0.0928507623233121,-104.9624209,39.7765159,-104.9613344,39.7765177
-739,736,737,0.0900332912586976,0.0900332912586976,-104.9613344,39.7765177,-104.960283,39.7764662
-740,737,738,0.0739532182409675,0.0739532182409675,-104.960283,39.7764662,-104.9594193,39.7764249
-741,738,739,0.100409435325613,0.100409435325613,-104.9594193,39.7764249,-104.9582445,39.7764105
-742,739,740,0.0918337393875257,0.0918337393875257,-104.9582445,39.7764105,-104.9571699,39.7764108
-743,740,741,0.0605135925040139,0.0605135925040139,-104.9571699,39.7764108,-104.9564618,39.7764088
-744,741,744,0.09764928319827,0.09764928319827,-104.9564618,39.7764088,-104.9553192,39.7764005
-745,744,745,0.100176801141236,0.100176801141236,-104.9553192,39.7764005,-104.954147,39.7763944
-746,745,746,0.0948931710062943,0.0948931710062943,-104.954147,39.7763944,-104.9530366,39.7763944
-747,746,747,0.0932950961705344,0.0932950961705344,-104.9530366,39.7763944,-104.9519449,39.7763944
-748,747,748,0.0948942633213168,0.0948942633213168,-104.9519449,39.7763944,-104.9508345,39.7763985
-749,748,749,0.0880271421463829,0.0880271421463829,-104.9508345,39.7763985,-104.9498045,39.7763902
-750,749,750,0.101773658707536,0.101773658707536,-104.9498045,39.7763902,-104.9486136,39.7763944
-751,750,751,0.094781491782375,0.094781491782375,-104.9486136,39.7763944,-104.9475049,39.7764171
-752,751,752,0.0909312964030863,0.0909312964030863,-104.9475049,39.7764171,-104.9464409,39.77641
-754,753,754,0.0476837940219257,0.0476837940219257,-104.9875955,39.7752036,-104.9870376,39.7752102
-755,754,755,0.0476837940207114,0.0476837940207114,-104.9870376,39.7752102,-104.9864797,39.7752036
-756,755,756,0.100492444483886,0.100492444483886,-104.9864797,39.7752036,-104.9853038,39.7752036
-760,760,761,0.278292588595779,0.278292588595779,-105.0070586,39.7765312,-105.0069691,39.779033
-18241,8960,6768,0.145513824807152,0.145513824807152,-105.0258905,39.7724462,-105.0275913,39.7725071
-762,762,763,0.102174293003021,0.102174293003021,-105.0062581,39.7024674,-105.0074463,39.7025603
-763,763,764,0.0992571756698332,0.0992571756698332,-105.0074463,39.7025603,-105.0086065,39.7025548
-764,764,765,0.100622536912342,0.100622536912342,-105.0086065,39.7025548,-105.0097824,39.702535
-766,766,767,0.101850111631528,0.101850111631528,-105.0109855,39.7025566,-105.012176,39.70255
-767,767,768,0.0961954013729948,0.0961954013729948,-105.012176,39.70255,-105.0133004,39.7025566
-768,768,769,0.207085640087389,0.207085640087389,-105.0133004,39.7025566,-105.0156693,39.7029396
-769,769,770,0.1068825400281,0.1068825400281,-105.0156693,39.7029396,-105.0168881,39.7027283
-770,770,771,0.105967528573409,0.105967528573409,-105.0168881,39.7027283,-105.0180297,39.7023585
-771,771,772,0.107278769323728,0.107278769323728,-105.0180297,39.7023585,-105.0192227,39.7020613
-772,772,199,0.0969401274978018,0.0969401274978018,-105.0192227,39.7020613,-105.0203557,39.7020745
-773,199,776,0.101328977128045,0.101328977128045,-105.0203557,39.7020745,-105.0215401,39.7020679
-774,776,777,0.0984004881984158,0.0984004881984158,-105.0215401,39.7020679,-105.0226903,39.7020679
-775,777,778,0.0991276696889056,0.0991276696889056,-105.0226903,39.7020679,-105.023849,39.7020679
-779,784,785,0.101305408476756,0.101305408476756,-105.0031735,39.702226,-105.0042571,39.7018586
-780,785,786,0.0976265458519536,0.0976265458519536,-105.0042571,39.7018586,-105.0053032,39.7015078
-781,786,787,0.0966903245975086,0.0966903245975086,-105.0053032,39.7015078,-105.0063481,39.7011764
-783,788,789,0.0146697046803596,0.0146697046803596,-104.9407607,39.7528377,-104.9405891,39.7528377
-784,789,790,0.0984239882007814,0.0984239882007814,-104.9405891,39.7528377,-104.9394378,39.7528432
-785,790,791,0.0942419953953979,0.0942419953953979,-104.9394378,39.7528432,-104.9383354,39.7528412
-786,791,792,0.0942417343682122,0.0942417343682122,-104.9383354,39.7528412,-104.937233,39.7528412
-787,792,793,0.0942331855902031,0.0942331855902031,-104.937233,39.7528412,-104.9361307,39.7528412
-789,794,795,0.0937138545964453,0.0937138545964453,-104.9350328,39.7528375,-104.9339366,39.7528432
-790,795,796,0.0956046195795482,0.0956046195795482,-104.9339366,39.7528432,-104.9328183,39.7528507
-791,796,797,0.0946549122760597,0.0946549122760597,-104.9328183,39.7528507,-104.9317111,39.7528441
-792,797,798,0.100527766007763,0.100527766007763,-104.9317111,39.7528441,-104.9305352,39.7528375
-793,798,799,0.10316918665,0.10316918665,-104.9305352,39.7528375,-104.9293286,39.7528556
-795,800,801,0.103459881633314,0.103459881633314,-104.9281577,39.7528638,-104.9269475,39.7528704
-796,801,802,0.0997925526863961,0.0997925526863961,-104.9269475,39.7528704,-104.9257802,39.7528638
-797,802,803,0.0998006432146063,0.0998006432146063,-104.9257802,39.7528638,-104.9246129,39.752877
-854,804,805,0.1238606801811,0.1238606801811,-104.9428502,39.768085,-104.9428549,39.7691989
-799,807,808,0.10163704947704,0.10163704947704,-104.9781222,39.7532569,-104.9769333,39.7532524
-800,808,812,0.0515064726572222,0.0515064726572222,-104.9769333,39.7532524,-104.9763308,39.7532506
-801,812,813,0.0494547954602067,0.0494547954602067,-104.9763308,39.7532506,-104.9757523,39.7532488
-802,813,814,0.051447981297694,0.051447981297694,-104.9757523,39.7532488,-104.9751505,39.753245
-803,814,815,0.0525679212147471,0.0525679212147471,-104.9751505,39.753245,-104.9745356,39.7532411
-804,815,816,0.0487973630951461,0.0487973630951461,-104.9745356,39.7532411,-104.9739648,39.753238
-805,816,817,0.0522598325196538,0.0522598325196538,-104.9739648,39.753238,-104.9733535,39.7532345
-806,817,818,0.103406751654374,0.103406751654374,-104.9733535,39.7532345,-104.9721439,39.7532392
-807,818,819,0.10785615815132,0.10785615815132,-104.9721439,39.7532392,-104.9708825,39.7532194
-808,819,820,0.10473605712406,0.10473605712406,-104.9708825,39.7532194,-104.9696574,39.7532291
-809,820,821,0.112264494558786,0.112264494558786,-104.9696574,39.7532291,-104.9683443,39.7532149
-810,821,822,0.0974128787334051,0.0974128787334051,-104.9683443,39.7532149,-104.9672048,39.753216
-811,822,823,0.107993299539667,0.107993299539667,-104.9672048,39.753216,-104.9659416,39.753226
-812,823,824,0.0548178827467902,0.0548178827467902,-104.9659416,39.753226,-104.9653005,39.7532157
-17428,10106,10103,0.0082057240713584,0.0082057240713584,-104.9831403,39.6888986,-104.9831832,39.6889646
-1819,1835,1836,0.0691383900190408,0.0691383900190408,-105.0109162,39.7209352,-105.0117245,39.7209266
-813,824,825,0.0508588332180354,0.0508588332180354,-104.9653005,39.7532157,-104.9647057,39.7532062
-816,827,828,0.0512039318870449,0.0512039318870449,-104.9622082,39.7532291,-104.9616093,39.7532223
-817,828,829,0.0518718595198435,0.0518718595198435,-104.9616093,39.7532223,-104.9610026,39.7532148
-818,829,830,0.106833526059922,0.106833526059922,-104.9610026,39.7532148,-104.9597529,39.7532154
-820,831,832,0.385745696022263,0.385745696022263,-104.9429184,39.780325,-104.9428851,39.783794
-821,832,833,0.404856481972801,0.404856481972801,-104.9428851,39.783794,-104.942994,39.787434
-823,834,835,0.105948732119107,0.105948732119107,-104.942934,39.7728949,-104.942926,39.7738477
-824,835,838,0.0910625591495108,0.0910625591495108,-104.942926,39.7738477,-104.9427798,39.7746589
-826,839,840,0.0919963536570051,0.0919963536570051,-104.942936,39.7789146,-104.942905,39.7797416
-828,841,842,0.174755253051921,0.174755253051921,-104.9425503,39.7162314,-104.9425424,39.717803
-829,842,843,0.178568082023164,0.178568082023164,-104.9425424,39.717803,-104.9425451,39.7194089
-830,843,844,0.17297498203528,0.17297498203528,-104.9425451,39.7194089,-104.9425424,39.7209645
-831,844,845,0.173265495891133,0.173265495891133,-104.9425424,39.7209645,-104.942551,39.7225227
-832,845,846,0.177949551875208,0.177949551875208,-104.942551,39.7225227,-104.9425236,39.7241229
-833,846,847,0.164704515205255,0.164704515205255,-104.9425236,39.7241229,-104.9425344,39.7256041
-835,848,849,0.140807407128784,0.140807407128784,-104.9429842,39.7544341,-104.9429772,39.7557004
-839,852,853,0.167627273627897,0.167627273627897,-104.9429072,39.7256062,-104.9429137,39.7271137
-840,853,854,0.0221861617364752,0.0221861617364752,-104.9429137,39.7271137,-104.9428989,39.7273129
-841,854,855,0.199351380476648,0.199351380476648,-104.9428989,39.7273129,-104.9429067,39.7291057
-842,855,856,0.154506611729302,0.154506611729302,-104.9429067,39.7291057,-104.942914,39.7304952
-843,856,857,0.177121299660486,0.177121299660486,-104.942914,39.7304952,-104.942882,39.7320879
-844,857,858,0.173233506037634,0.173233506037634,-104.942882,39.7320879,-104.9429078,39.7336457
-845,858,859,0.161447290254498,0.161447290254498,-104.9429078,39.7336457,-104.9428825,39.7350975
-846,859,860,0.184417991926907,0.184417991926907,-104.9428825,39.7350975,-104.9428903,39.736756
-847,860,861,0.174097913655798,0.174097913655798,-104.9428903,39.736756,-104.9428912,39.7383217
-848,861,862,0.200651350067359,0.200651350067359,-104.9428912,39.7383217,-104.9428936,39.7401262
-851,864,865,0.136205566327931,0.136205566327931,-104.9428605,39.7644833,-104.9428501,39.7657082
-852,865,866,0.134098020570816,0.134098020570816,-104.9428501,39.7657082,-104.9428673,39.7669141
-853,866,804,0.130206342500308,0.130206342500308,-104.9428673,39.7669141,-104.9428502,39.768085
-855,805,869,0.151636521465058,0.151636521465058,-104.9428549,39.7691989,-104.9428549,39.7705626
-856,869,870,0.0565102957854785,0.0565102957854785,-104.9428549,39.7705626,-104.9428589,39.7710708
-859,872,873,0.106081890543097,0.106081890543097,-104.9733495,39.7645106,-104.9721084,39.7645147
-860,873,874,0.104885275538693,0.104885275538693,-104.9721084,39.7645147,-104.9708813,39.7645106
-861,874,875,0.105346104071406,0.105346104071406,-104.9708813,39.7645106,-104.9696488,39.7645085
-862,875,876,0.105115636520032,0.105115636520032,-104.9696488,39.7645085,-104.968419,39.7645054
-16596,6712,8570,0.146117658845452,0.146117658845452,-104.9978555,39.7495627,-104.9966174,39.7504686
-864,877,878,0.106492224339564,0.106492224339564,-104.9671933,39.7645034,-104.9659474,39.7644992
-865,878,879,0.105226257982301,0.105226257982301,-104.9659474,39.7644992,-104.9647163,39.7644982
-866,879,880,0.109300044149485,0.109300044149485,-104.9647163,39.7644982,-104.9634376,39.7645079
-867,880,881,0.105305755069531,0.105305755069531,-104.9634376,39.7645079,-104.9622057,39.7644941
-868,881,882,0.0524982326673818,0.0524982326673818,-104.9622057,39.7644941,-104.9615915,39.7644962
-869,882,883,0.0527289587191423,0.0527289587191423,-104.9615915,39.7644962,-104.9609746,39.7644982
-870,883,884,0.104777165086199,0.104777165086199,-104.9609746,39.7644982,-104.9597488,39.76449
-871,884,885,0.101110616467656,0.101110616467656,-104.9597488,39.76449,-104.9585659,39.7644817
-873,886,887,0.105175290472485,0.105175290472485,-104.9573328,39.7644759,-104.9561023,39.7644735
-874,887,888,0.105460060240618,0.105460060240618,-104.9561023,39.7644735,-104.9548685,39.7644663
-875,888,889,0.104542724277831,0.104542724277831,-104.9548685,39.7644663,-104.9536454,39.7644642
-878,891,892,0.107871242081588,0.107871242081588,-104.9511738,39.7644539,-104.9499118,39.7644621
-879,892,893,0.100327397599291,0.100327397599291,-104.9499118,39.7644621,-104.9487381,39.764473
-880,893,894,0.10715921423401,0.10715921423401,-104.9487381,39.764473,-104.9474844,39.7644683
-11694,895,896,0.0160104862378167,0.0160104862378167,-105.0011439,39.7534971,-105.0012741,39.7533936
-881,894,897,0.103236099875311,0.103236099875311,-104.9474844,39.7644683,-104.9462766,39.7644635
-882,897,898,0.106539225146671,0.106539225146671,-104.9462766,39.7644635,-104.9450302,39.764473
-16754,10009,7565,0.0493392725986542,0.0493392725986542,-104.9506326,39.6988171,-104.9506273,39.6992608
-20639,10032,10878,0.0503841615701827,0.0503841615701827,-105.0143643,39.7624894,-105.0137749,39.7624832
-885,864,900,0.0968355268957622,0.0968355268957622,-104.9428605,39.7644833,-104.9417276,39.7644767
-886,900,901,0.0921857962021889,0.0921857962021889,-104.9417276,39.7644767,-104.9406492,39.7644637
-887,901,902,0.0154453872411826,0.0154453872411826,-104.9406492,39.7644637,-104.9404687,39.7644571
-888,902,903,0.099023611112339,0.099023611112339,-104.9404687,39.7644571,-104.9393102,39.7644637
-889,903,904,0.106658816969038,0.106658816969038,-104.9393102,39.7644637,-104.9380626,39.7644833
-890,904,905,0.102850064051981,0.102850064051981,-104.9380626,39.7644833,-104.9368593,39.7644833
-891,905,906,0.106374102165022,0.106374102165022,-104.9368593,39.7644833,-104.9356148,39.7644767
-893,907,908,0.107980942566683,0.107980942566683,-104.934389,39.7644899,-104.9331257,39.7644965
-897,911,912,0.0137000260099873,0.0137000260099873,-104.998644,39.7576675,-104.9985313,39.7577551
-900,914,915,0.266296417735211,0.266296417735211,-104.9793447,39.7725806,-104.9771733,39.7742982
-902,916,917,0.109365780913081,0.109365780913081,-104.9874133,39.7320545,-104.9861344,39.7320479
-903,917,918,0.110688879788924,0.110688879788924,-104.9861344,39.7320479,-104.98484,39.7320466
-904,918,919,0.0528048087506356,0.0528048087506356,-104.98484,39.7320466,-104.9842225,39.7320454
-905,919,920,0.0548227612983216,0.0548227612983216,-104.9842225,39.7320454,-104.9835814,39.7320454
-1909,1921,1922,0.0521063364540888,0.0521063364540888,-104.9646085,39.7074783,-104.9639994,39.7074818
-12333,8655,8656,0.00566894958463717,0.00566894958463717,-105.0074206,39.7547231,-105.0073545,39.7547272
-906,920,921,0.0600921295133805,0.0600921295133805,-104.9835814,39.7320454,-104.9828787,39.7320413
-907,921,922,0.0524145297386554,0.0524145297386554,-104.9828787,39.7320413,-104.9822659,39.7320313
-908,922,923,0.0533449751273277,0.0533449751273277,-104.9822659,39.7320313,-104.9816421,39.7320276
-909,923,924,0.0522830317618348,0.0522830317618348,-104.9816421,39.7320276,-104.9810307,39.7320279
-910,924,925,0.0531296104749593,0.0531296104749593,-104.9810307,39.7320279,-104.9804094,39.7320277
-911,925,926,0.0494870453453698,0.0494870453453698,-104.9804094,39.7320277,-104.9798307,39.7320293
-912,926,927,0.0490530439973252,0.0490530439973252,-104.9798307,39.7320293,-104.9792571,39.7320337
-916,930,931,0.0484862367563559,0.0484862367563559,-104.9775696,39.7320445,-104.9770026,39.732045
-917,931,932,0.0491192175023229,0.0491192175023229,-104.9770026,39.732045,-104.9764282,39.7320463
-918,932,933,0.0512499454427793,0.0512499454427793,-104.9764282,39.7320463,-104.9758289,39.7320426
-935,950,951,0.0925005138771614,0.0925005138771614,-104.9505701,39.7320992,-104.9494887,39.732119
-936,951,952,0.09155937925052,0.09155937925052,-104.9494887,39.732119,-104.9484181,39.7321077
-937,952,953,0.096647434304121,0.096647434304121,-104.9484181,39.7321077,-104.947288,39.7320961
-938,953,954,0.0946813321937467,0.0946813321937467,-104.947288,39.7320961,-104.9461808,39.7320927
-939,954,955,0.0465376592907314,0.0465376592907314,-104.9461808,39.7320927,-104.9456366,39.7320897
-941,956,957,0.0470827842175089,0.0470827842175089,-104.9450895,39.7320866,-104.944539,39.7320942
-942,957,958,0.0477097696809632,0.0477097696809632,-104.944539,39.7320942,-104.9439811,39.7320979
-943,958,959,0.0469673192776546,0.0469673192776546,-104.9439811,39.7320979,-104.9434319,39.7320929
-944,959,857,0.0470271779665272,0.0470271779665272,-104.9434319,39.7320929,-104.942882,39.7320879
-945,857,452,0.0433482724753884,0.0433482724753884,-104.942882,39.7320879,-104.9423751,39.7320847
-946,452,960,0.0461959621064724,0.0461959621064724,-104.9423751,39.7320847,-104.9418349,39.7320813
-947,960,456,0.0448744265859584,0.0448744265859584,-104.9418349,39.7320813,-104.9413102,39.732075
-948,456,961,0.0477309298676521,0.0477309298676521,-104.9413102,39.732075,-104.9407521,39.7320683
-950,962,963,0.203057783136815,0.203057783136815,-104.983818,39.7165111,-104.9838018,39.7183372
-951,963,964,0.111884367881333,0.111884367881333,-104.9838018,39.7183372,-104.9838008,39.7193434
-952,964,965,0.176567620505235,0.176567620505235,-104.9838008,39.7193434,-104.9838084,39.7209313
-953,965,966,0.178378901323504,0.178378901323504,-104.9838084,39.7209313,-104.9838084,39.7225355
-958,970,971,0.205957142551392,0.205957142551392,-104.9835185,39.781945,-104.9835456,39.7837971
-960,972,973,0.204078625402165,0.204078625402165,-104.9835456,39.7765347,-104.9835576,39.77837
-961,973,282,0.115147222371539,0.115147222371539,-104.9835576,39.77837,-104.98357,39.7794055
-964,976,977,0.0518319225146996,0.0518319225146996,-104.9741611,39.7400028,-104.9741536,39.7395367
-965,977,978,0.124228855322375,0.124228855322375,-104.9741536,39.7395367,-104.9741456,39.7384195
-966,978,979,0.172234101769625,0.172234101769625,-104.9741456,39.7384195,-104.9741314,39.7368706
-967,979,980,0.191895457064314,0.191895457064314,-104.9741314,39.7368706,-104.9741011,39.735145
-968,980,981,0.160844607226305,0.160844607226305,-104.9741011,39.735145,-104.9741082,39.7336985
-969,981,936,0.183612712644296,0.183612712644296,-104.9741082,39.7336985,-104.9740886,39.7320473
-18742,7651,6216,0.274731695307389,0.274731695307389,-105.0389317,39.7282542,-105.0389183,39.7257835
-970,936,982,0.178134725901618,0.178134725901618,-104.9740886,39.7320473,-104.9740839,39.7304453
-972,983,984,0.199061323006722,0.199061323006722,-104.9740784,39.7290693,-104.9740814,39.7272791
-973,984,985,0.188587247900735,0.188587247900735,-104.9740814,39.7272791,-104.9740756,39.7255831
-974,985,986,0.0433580404548831,0.0433580404548831,-104.9740756,39.7255831,-104.9740817,39.7251932
-975,986,987,0.125051012370851,0.125051012370851,-104.9740817,39.7251932,-104.9740753,39.7240686
-977,988,989,0.141681092806979,0.141681092806979,-104.9740667,39.7237385,-104.9740839,39.7224644
-978,989,990,0.0574887447164737,0.0574887447164737,-104.9740839,39.7224644,-104.97408,39.7219474
-979,990,991,0.201644088462744,0.201644088462744,-104.97408,39.7219474,-104.9740667,39.720134
-981,992,993,0.0142751187411164,0.0142751187411164,-104.974036,39.718887,-104.9740165,39.7187595
-983,994,995,0.198087310718341,0.198087310718341,-104.9745719,39.7165069,-104.9745878,39.7182883
-984,995,996,0.021294324874815,0.021294324874815,-104.9745878,39.7182883,-104.9745895,39.7184798
-986,997,998,0.477759831198138,0.477759831198138,-104.9873902,39.763763,-104.9876372,39.7594706
-988,999,1000,0.107359092710075,0.107359092710075,-104.9876054,39.7809872,-104.9875739,39.7819524
-989,1000,1001,0.213427542201395,0.213427542201395,-104.9875739,39.7819524,-104.9875739,39.7838718
-990,1001,1002,0.0204216124756694,0.0204216124756694,-104.9875739,39.7838718,-104.9875798,39.7840554
-991,1002,1003,0.169295945736254,0.169295945736254,-104.9875798,39.7840554,-104.987571,39.7855779
-992,1003,1004,0.202119044170343,0.202119044170343,-104.987571,39.7855779,-104.9875698,39.7873956
-993,1004,1007,0.405136142942317,0.405136142942317,-104.9875698,39.7873956,-104.987539,39.791039
-994,1008,753,0.128100004965855,0.128100004965855,-104.9879427,39.7740829,-104.9875955,39.7752036
-996,1009,277,0.197304277838347,0.197304277838347,-104.9875916,39.776556,-104.9875916,39.7783304
-998,1010,1011,0.168461631075683,0.168461631075683,-104.9624581,39.7255985,-104.9625093,39.727113
-999,1011,1012,0.0217275963794507,0.0217275963794507,-104.9625093,39.727113,-104.9625101,39.7273084
-1000,1012,1013,0.199706135128057,0.199706135128057,-104.9625101,39.7273084,-104.9625117,39.7291044
-1001,1013,1014,0.154996233446664,0.154996233446664,-104.9625117,39.7291044,-104.96252,39.7304983
-1002,1014,1015,0.0484476295387052,0.0484476295387052,-104.96252,39.7304983,-104.96252,39.730934
-1005,1018,1019,0.198018950245581,0.198018950245581,-104.9622539,39.7350462,-104.9622411,39.736827
-1006,1019,1020,0.173297369328456,0.173297369328456,-104.9622411,39.736827,-104.962243,39.7383855
-1007,1020,1021,0.177035115256862,0.177035115256862,-104.962243,39.7383855,-104.962234,39.7399776
-1008,1021,1022,0.17859043694682,0.17859043694682,-104.962234,39.7399776,-104.9622376,39.7415837
-1009,1022,674,0.00356025053355106,0.00356025053355106,-104.9622376,39.7415837,-104.9622362,39.7416157
-1010,674,1023,0.00366943257948706,0.00366943257948706,-104.9622362,39.7416157,-104.9622362,39.7416487
-1011,1023,1024,0.17484373239475,0.17484373239475,-104.9622362,39.7416487,-104.9622425,39.7432211
-1012,1024,1025,0.173998681621435,0.173998681621435,-104.9622425,39.7432211,-104.9622361,39.7447859
-1015,1027,1028,0.0704684258530158,0.0704684258530158,-104.9622318,39.748208,-104.9622408,39.7488417
-1017,1029,1030,0.0048505404615695,0.0048505404615695,-104.9622186,39.7494307,-104.9622168,39.7494743
-1018,1030,1031,0.00340295138148338,0.00340295138148338,-104.9622168,39.7494743,-104.9622174,39.7495049
-1019,1031,1035,0.134848566335067,0.134848566335067,-104.9622174,39.7495049,-104.9622398,39.7507175
-1020,1035,1036,0.137493615415566,0.137493615415566,-104.9622398,39.7507175,-104.9622462,39.751954
-16764,9868,2745,0.0490633016235184,0.0490633016235184,-104.9551011,39.698724,-104.9556601,39.6988225
-1021,1036,827,0.141821861187588,0.141821861187588,-104.9622462,39.751954,-104.9622082,39.7532291
-1023,1037,1038,0.144096028267239,0.144096028267239,-104.9622266,39.7544367,-104.9622461,39.7557325
-1024,1038,1039,0.13873602575008,0.13873602575008,-104.9622461,39.7557325,-104.9622183,39.75698
-1025,1039,1040,0.137557829611355,0.137557829611355,-104.9622183,39.75698,-104.9622463,39.7582169
-1026,1040,1041,0.134490266221638,0.134490266221638,-104.9622463,39.7582169,-104.962246,39.7594264
-1027,1041,1042,0.141541481862683,0.141541481862683,-104.962246,39.7594264,-104.9622157,39.7606991
-1028,1042,1043,0.00492593525103261,0.00492593525103261,-104.9622157,39.7606991,-104.9622157,39.7607434
-1029,1043,1044,0.138593778312369,0.138593778312369,-104.9622157,39.7607434,-104.9622117,39.7619898
-1030,1044,1045,0.140603553737706,0.140603553737706,-104.9622117,39.7619898,-104.9622462,39.763254
-1031,1045,881,0.137936273445967,0.137936273445967,-104.9622462,39.763254,-104.9622057,39.7644941
-1032,881,1046,0.138493298016227,0.138493298016227,-104.9622057,39.7644941,-104.9622049,39.7657396
-1033,1046,1047,0.135001777755027,0.135001777755027,-104.9622049,39.7657396,-104.9622057,39.7669537
-1034,1047,1048,0.131055322767976,0.131055322767976,-104.9622057,39.7669537,-104.9621706,39.768132
-1035,1048,1049,0.124939018757432,0.124939018757432,-104.9621706,39.768132,-104.9622462,39.7692541
-1037,1050,1051,0.292899479856136,0.292899479856136,-104.9620183,39.718346,-104.9620097,39.7209801
-1038,1051,1052,0.166422260927488,0.166422260927488,-104.9620097,39.7209801,-104.9620287,39.7224767
-1040,735,1053,0.129020329518136,0.129020329518136,-104.9624209,39.7765159,-104.9624154,39.7776762
-1042,1054,1055,0.104556386299221,0.104556386299221,-104.9541213,39.7802948,-104.9529111,39.7804333
-1044,1056,1057,0.0821976961903273,0.0821976961903273,-105.0423884,39.7011038,-105.043349,39.701089
-1046,1058,1059,0.198827335717405,0.198827335717405,-104.9523656,39.702949,-104.9500415,39.7029556
-1048,1060,1061,0.168836903384636,0.168836903384636,-104.9395373,39.7162311,-104.9395162,39.7147128
-1050,1062,1063,0.404705159588638,0.404705159588638,-104.9394384,39.6893266,-104.939435,39.685687
-1051,1067,1068,0.132512985213334,0.132512985213334,-105.0088199,39.7729339,-105.0088114,39.7741256
-1052,1068,1069,0.13497040303733,0.13497040303733,-105.0088114,39.7741256,-105.0088028,39.7753394
-1053,1069,1070,0.132768776601327,0.132768776601327,-105.0088028,39.7753394,-105.0087942,39.7765334
-1056,1072,1073,0.0939030414376985,0.0939030414376985,-105.009231,39.7782735,-105.0096773,39.7790452
-1058,1074,1075,0.180616569310233,0.180616569310233,-105.0092177,39.7838422,-105.0092438,39.7854664
-1059,1075,1076,0.0336398662027363,0.0336398662027363,-105.0092438,39.7854664,-105.009052,39.7857306
-1060,1076,1077,0.0410609349522483,0.0410609349522483,-105.009052,39.7857306,-105.0087381,39.7860102
-1061,1077,1078,0.0827433862317427,0.0827433862317427,-105.0087381,39.7860102,-105.0081209,39.7865836
-1062,1078,1079,0.0826887112506465,0.0826887112506465,-105.0081209,39.7865836,-105.0074815,39.7871418
-1064,1080,464,0.0761353371210495,0.0761353371210495,-104.972278,39.7033325,-104.9728479,39.7038584
-1065,464,1081,0.349900041786437,0.349900041786437,-104.9728479,39.7038584,-104.972547,39.7069966
-1066,1081,1082,0.00956876487693368,0.00956876487693368,-104.972547,39.7069966,-104.9724743,39.707062
-1068,1083,1084,0.207455473901342,0.207455473901342,-104.9730883,39.714707,-104.972397,39.7129187
-1069,1084,1085,0.20253048003379,0.20253048003379,-104.972397,39.7129187,-104.9723985,39.7110973
-1070,1085,1086,0.20117520633799,0.20117520633799,-104.9723985,39.7110973,-104.9723899,39.7092881
-1071,1086,1087,0.200445374909098,0.200445374909098,-104.9723899,39.7092881,-104.9724071,39.7074855
-1073,1088,1089,0.193552555847569,0.193552555847569,-105.0404004,39.7838769,-105.0403816,39.7856175
-1074,1089,1090,0.201907921550129,0.201907921550129,-105.0403816,39.7856175,-105.0403847,39.7874333
-1075,1090,1091,0.409168814751628,0.409168814751628,-105.0403847,39.7874333,-105.040408,39.791113
-1078,1094,1095,0.176210660233647,0.176210660233647,-105.0405328,39.7229583,-105.0405345,39.724543
-1082,1098,1099,0.214073333831546,0.214073333831546,-105.0405664,39.7301724,-105.0405735,39.7282472
-1083,1099,1100,0.273059176292595,0.273059176292595,-105.0405735,39.7282472,-105.0405477,39.7257916
-1085,1101,1102,0.177543118890406,0.177543118890406,-105.040518,39.7350236,-105.0404669,39.7366198
-1086,1102,1103,0.205192174072119,0.205192174072119,-105.0404669,39.7366198,-105.0404962,39.738465
-1089,1105,1106,0.177750162727048,0.177750162727048,-105.0409021,39.716554,-105.0408864,39.7181525
-1090,1106,1107,0.0539560094135977,0.0539560094135977,-105.0408864,39.7181525,-105.0408943,39.7186377
-1091,1107,1108,0.122234944576301,0.122234944576301,-105.0408943,39.7186377,-105.0409121,39.7197369
-1092,1108,1109,0.177333676437683,0.177333676437683,-105.0409121,39.7197369,-105.0409127,39.7213317
-1093,1109,1110,0.180925459405873,0.180925459405873,-105.0409127,39.7213317,-105.0409158,39.7229588
-1095,1111,1112,0.128811671442731,0.128811671442731,-105.0404537,39.7475871,-105.0404838,39.7487453
-1096,1112,1113,0.134815073580703,0.134815073580703,-105.0404838,39.7487453,-105.0404745,39.7499577
-1097,1113,1114,0.136688571742098,0.136688571742098,-105.0404745,39.7499577,-105.040538,39.751186
-1098,1114,1115,0.101403665812315,0.101403665812315,-105.040538,39.751186,-105.0404736,39.7520966
-1099,1115,1116,0.102067679100378,0.102067679100378,-105.0404736,39.7520966,-105.0404808,39.7530145
-1102,1118,1119,0.204345080233058,0.204345080233058,-105.0404858,39.7548633,-105.0404748,39.756701
-1103,1119,1120,0.199139333361331,0.199139333361331,-105.0404748,39.756701,-105.0404705,39.7584919
-1104,1120,1121,0.0469911073941159,0.0469911073941159,-105.0404705,39.7584919,-105.0404718,39.7589145
-1105,1121,1122,0.0592169845475301,0.0592169845475301,-105.0404718,39.7589145,-105.0404814,39.759447
-1106,1122,1123,0.0953718885827498,0.0953718885827498,-105.0404814,39.759447,-105.0404814,39.7603047
-1107,1123,1124,0.0510557799357253,0.0510557799357253,-105.0404814,39.7603047,-105.0404721,39.7607638
-1108,1124,1125,0.150795725410384,0.150795725410384,-105.0404721,39.7607638,-105.0404588,39.7621199
-1109,1125,1126,0.203566805558282,0.203566805558282,-105.0404588,39.7621199,-105.0405383,39.7639496
-1111,1127,1128,0.0472430646130033,0.0472430646130033,-105.0404877,39.7653392,-105.0404722,39.7657639
-1112,1128,1129,0.205543981836037,0.205543981836037,-105.0404722,39.7657639,-105.0404692,39.7676124
-1114,1130,1131,0.164841461931526,0.164841461931526,-105.0404986,39.769448,-105.0404564,39.7709301
-1115,1131,1132,0.171242319742711,0.171242319742711,-105.0404564,39.7709301,-105.0404464,39.7724701
-1116,1132,1133,0.15535130673221,0.15535130673221,-105.0404464,39.7724701,-105.0404403,39.7738672
-1117,1133,1134,0.155906924058663,0.155906924058663,-105.0404403,39.7738672,-105.040445,39.7752693
-1118,1134,1135,0.158641971110509,0.158641971110509,-105.040445,39.7752693,-105.0404138,39.7766958
-1120,1136,1137,0.202486056810199,0.202486056810199,-105.0404001,39.77838,-105.0404024,39.780201
-1124,1140,1141,0.106376038726262,0.106376038726262,-104.9343976,39.7632231,-104.9331531,39.7632297
-1125,1141,1142,0.11299023410348,0.11299023410348,-104.9331531,39.7632297,-104.9318313,39.7632429
-1127,1143,1144,0.105553895231553,0.105553895231553,-104.97335,39.7632488,-104.9721151,39.7632529
-1128,1144,1145,0.104117784384988,0.104117784384988,-104.9721151,39.7632529,-104.970897,39.7632567
-1129,1145,1146,0.103483298103444,0.103483298103444,-104.970897,39.7632567,-104.9696868,39.7632831
-1131,1147,1148,0.20922373460901,0.20922373460901,-104.9318227,39.7637905,-104.9293749,39.7637905
-1132,1148,1149,0.150393643985841,0.150393643985841,-104.9293749,39.7637905,-104.9276154,39.7637839
-1133,1149,1150,0.0550246362758013,0.0550246362758013,-104.9276154,39.7637839,-104.9269717,39.7637905
-1134,1150,1151,0.102697719375893,0.102697719375893,-104.9269717,39.7637905,-104.9257702,39.7637877
-1135,1151,1152,0.0983530643806034,0.0983530643806034,-104.9257702,39.7637877,-104.9246199,39.7638103
-1136,1152,1153,0.0500465548413358,0.0500465548413358,-104.9246199,39.7638103,-104.9240347,39.7637955
-1137,1153,1154,0.957298194837815,0.957298194837815,-104.9240347,39.7637955,-104.9128351,39.7638537
-1138,1155,1156,0.108691319059022,0.108691319059022,-104.9684118,39.7632474,-104.9671402,39.7632525
-1139,1156,1157,0.102249102579738,0.102249102579738,-104.9671402,39.7632525,-104.965944,39.7632443
-1140,1157,1160,0.108168549451273,0.108168549451273,-104.965944,39.7632443,-104.9646785,39.763243
-1141,1160,1161,0.101829092464478,0.101829092464478,-104.9646785,39.763243,-104.9634876,39.7632183
-1144,1162,1163,0.0512778300683452,0.0512778300683452,-104.9615772,39.7632401,-104.9609775,39.7632277
-1146,1164,1165,0.100040433804019,0.100040433804019,-104.959733,39.7632393,-104.9585626,39.7632361
-1147,1165,1166,0.107579273983848,0.107579273983848,-104.9585626,39.7632361,-104.957304,39.7632393
-1148,1166,1167,0.103452121653836,0.103452121653836,-104.957304,39.7632393,-104.9560938,39.7632261
-1149,1167,1168,0.102717798897395,0.102717798897395,-104.9560938,39.7632261,-104.9548921,39.7632327
-1150,1168,1169,0.106376023896376,0.106376023896376,-104.9548921,39.7632327,-104.9536476,39.7632393
-1151,1169,1170,0.105583034841699,0.105583034841699,-104.9536476,39.7632393,-104.9524125,39.7632244
-1152,1170,1171,0.105884448878202,0.105884448878202,-104.9524125,39.7632244,-104.9511738,39.7632137
-1153,1171,1172,0.107984392656028,0.107984392656028,-104.9511738,39.7632137,-104.9499105,39.763222
-1154,1172,1173,0.100211807661524,0.100211807661524,-104.9499105,39.763222,-104.9487381,39.7632261
-1156,1174,1175,0.0651406407561477,0.0651406407561477,-104.9462747,39.7632063,-104.9455127,39.7631967
-1157,1176,1177,0.0916420940843904,0.0916420940843904,-104.9973407,39.7040997,-104.9966621,39.703462
-1158,1177,1178,0.317057086238115,0.317057086238115,-104.9966621,39.703462,-104.9967808,39.7006121
-1159,1178,1179,0.0403904373250439,0.0403904373250439,-104.9967808,39.7006121,-104.9967738,39.7002489
-1160,1179,1180,0.087664479851631,0.087664479851631,-104.9967738,39.7002489,-104.9967587,39.6994606
-1163,555,558,0.0996109464859662,0.0996109464859662,-104.9967877,39.6982448,-104.996796,39.697349
-1165,1182,1183,0.200712633020301,0.200712633020301,-104.996786,39.6966954,-104.9968385,39.6948908
-1166,1183,141,0.201303158931495,0.201303158931495,-104.9968385,39.6948908,-104.9968856,39.6930808
-1167,141,1184,0.160264959796536,0.160264959796536,-104.9968856,39.6930808,-104.9968546,39.6916397
-1169,1185,1186,0.0892826433471673,0.0892826433471673,-104.9658583,39.7271019,-104.9648143,39.7271028
-16608,9325,9944,0.146983175121654,0.146983175121654,-104.9845026,39.7504509,-104.9832891,39.7513873
-1171,1187,1011,0.0980488049438762,0.0980488049438762,-104.9636558,39.7271103,-104.9625093,39.727113
-1172,1011,1188,0.100351187096818,0.100351187096818,-104.9625093,39.727113,-104.9613359,39.7271192
-1173,1188,1189,0.0991689160182861,0.0991689160182861,-104.9613359,39.7271192,-104.9601763,39.7271213
-1174,1189,1190,0.0985624561842153,0.0985624561842153,-104.9601763,39.7271213,-104.9590238,39.7271173
-1175,1190,1191,0.0992629404802966,0.0992629404802966,-104.9590238,39.7271173,-104.9578631,39.7271192
-1177,1192,1193,0.0982024972051538,0.0982024972051538,-104.9567021,39.7271202,-104.9555538,39.7271183
-1178,1193,1194,0.0979660824445765,0.0979660824445765,-104.9555538,39.7271183,-104.9544083,39.7271255
-1179,1194,1195,0.0324477724054976,0.0324477724054976,-104.9544083,39.7271255,-104.9540289,39.7271284
-1180,1195,1196,0.0675268282620706,0.0675268282620706,-104.9540289,39.7271284,-104.9532393,39.7271307
-1182,1197,1198,0.0679368973278076,0.0679368973278076,-104.9528791,39.7271293,-104.9520847,39.7271285
-1184,1199,1200,0.0686815112230977,0.0686815112230977,-104.951727,39.7271329,-104.9509239,39.7271356
-1185,1200,1201,0.0309923494566171,0.0309923494566171,-104.9509239,39.7271356,-104.9505615,39.7271353
-1186,1201,1202,0.0899174664521967,0.0899174664521967,-104.9505615,39.7271353,-104.9495101,39.7271408
-1187,1202,1203,0.0945518763756908,0.0945518763756908,-104.9495101,39.7271408,-104.9484045,39.7271363
-1188,1203,1204,0.0933113340782308,0.0933113340782308,-104.9484045,39.7271363,-104.9473134,39.7271328
-1189,1204,1205,0.09509225728821,0.09509225728821,-104.9473134,39.7271328,-104.9462015,39.7271261
-1190,1205,1206,0.0947055520559319,0.0947055520559319,-104.9462015,39.7271261,-104.9450941,39.7271221
-1191,1206,1207,0.0954663818870976,0.0954663818870976,-104.9450941,39.7271221,-104.9439778,39.7271255
-1192,1207,1208,0.0457748420522195,0.0457748420522195,-104.9439778,39.7271255,-104.9434426,39.7271196
-1193,1208,853,0.0452361278424885,0.0452361278424885,-104.9434426,39.7271196,-104.9429137,39.7271137
-1194,853,1209,0.0465328064656566,0.0465328064656566,-104.9429137,39.7271137,-104.9423696,39.7271171
-1195,1209,1210,0.0443349306457526,0.0443349306457526,-104.9423696,39.7271171,-104.9418512,39.7271204
-1196,1210,1211,0.0926255737985973,0.0926255737985973,-104.9418512,39.7271204,-104.940806,39.726902
-1200,1214,1215,0.199187167786165,0.199187167786165,-105.0123769,39.7838268,-105.0123627,39.7856181
-1201,1215,1216,0.200954541481784,0.200954541481784,-105.0123627,39.7856181,-105.0123497,39.7874253
-1202,1216,1217,0.405030982441888,0.405030982441888,-105.0123497,39.7874253,-105.0123693,39.7910678
-1203,1218,1219,0.0492032479248998,0.0492032479248998,-105.0123634,39.7348021,-105.0123463,39.7352444
-1204,1219,1220,0.0957003230509211,0.0957003230509211,-105.0123463,39.7352444,-105.0123588,39.736105
-1206,1221,1222,0.0745042299709739,0.0745042299709739,-105.0123509,39.7369148,-105.0123423,39.7375848
-1207,1222,1223,0.102728552500243,0.102728552500243,-105.0123423,39.7375848,-105.012356,39.7385086
-1208,1223,1224,0.112933078893132,0.112933078893132,-105.012356,39.7385086,-105.0123175,39.7395238
-1210,1225,1226,0.132646861758746,0.132646861758746,-105.0118006,39.7583774,-105.01181,39.7571845
-1212,1227,1228,0.133737749967366,0.133737749967366,-105.0123547,39.769283,-105.0123662,39.7704857
-1213,1228,1229,0.138340301298334,0.138340301298334,-105.0123662,39.7704857,-105.0123561,39.7717298
-1214,1229,1230,0.133937469551528,0.133937469551528,-105.0123561,39.7717298,-105.0123669,39.7729343
-1215,1230,1231,0.133215122537399,0.133215122537399,-105.0123669,39.7729343,-105.0123362,39.7741321
-1216,1231,1236,0.135593895539884,0.135593895539884,-105.0123362,39.7741321,-105.012326,39.7753515
-1217,1236,1237,0.134329596288595,0.134329596288595,-105.012326,39.7753515,-105.0123583,39.7765593
-1218,1237,1238,0.133838756927755,0.133838756927755,-105.0123583,39.7765593,-105.0123072,39.7777623
-1220,1239,1240,0.201119608536246,0.201119608536246,-105.0121506,39.7275003,-105.0121592,39.729309
-1222,1241,1242,0.0687159203588902,0.0687159203588902,-105.0205242,39.7613979,-105.0205115,39.7620158
-1223,1242,1243,0.133400908392016,0.133400908392016,-105.0205115,39.7620158,-105.0205151,39.7632155
-1224,1243,1247,0.135380581131659,0.135380581131659,-105.0205151,39.7632155,-105.0205098,39.764433
-1225,1247,1248,0.134002229768192,0.134002229768192,-105.0205098,39.764433,-105.0205165,39.7656381
-1226,1248,1249,0.133545106900313,0.133545106900313,-105.0205165,39.7656381,-105.0205165,39.7668391
-1227,1249,1250,0.135368900396577,0.135368900396577,-105.0205165,39.7668391,-105.0205192,39.7680565
-1228,1250,1251,0.135024432224222,0.135024432224222,-105.0205192,39.7680565,-105.0205232,39.7692708
-1229,1251,1252,0.104469760585228,0.104469760585228,-105.0205232,39.7692708,-105.020531,39.7702103
-1230,1252,1253,0.0306570001135196,0.0306570001135196,-105.020531,39.7702103,-105.0205211,39.7704859
-1231,1253,1254,0.0720522950545032,0.0720522950545032,-105.0205211,39.7704859,-105.0205077,39.7711338
-1232,1254,1255,0.0658986376594475,0.0658986376594475,-105.0205077,39.7711338,-105.0204909,39.7717263
-1233,1255,1256,0.0399746208950617,0.0399746208950617,-105.0204909,39.7717263,-105.0204902,39.7720858
-1234,1256,1257,0.0944491578366609,0.0944491578366609,-105.0204902,39.7720858,-105.020488,39.7729352
-1235,1257,1258,0.132766928353997,0.132766928353997,-105.020488,39.7729352,-105.0204854,39.7741292
-1236,1258,1259,0.135424431672451,0.135424431672451,-105.0204854,39.7741292,-105.0204832,39.7753471
-1237,1259,1260,0.140672385455392,0.140672385455392,-105.0204832,39.7753471,-105.0205036,39.7766121
-1238,1260,1261,0.134975501941172,0.134975501941172,-105.0205036,39.7766121,-105.0204874,39.7778259
-1239,1261,1262,0.0645486549169547,0.0645486549169547,-105.0204874,39.7778259,-105.0204874,39.7784064
-1240,1262,1263,0.0682069680036474,0.0682069680036474,-105.0204874,39.7784064,-105.0204874,39.7790198
-1241,1263,1264,0.132661334326961,0.132661334326961,-105.0204874,39.7790198,-105.0204729,39.7802128
-1242,1264,1265,0.198750077150319,0.198750077150319,-105.0204729,39.7802128,-105.0204691,39.7820002
-1243,1265,1266,0.153240793837705,0.153240793837705,-105.0204691,39.7820002,-105.0204447,39.7833782
-1245,273,1267,0.0675767060379672,0.0675767060379672,-105.0203028,39.7400362,-105.0202947,39.7406439
-1247,1268,1269,0.0991648269688332,0.0991648269688332,-105.0203557,39.7175319,-105.0203986,39.7184231
-1248,1269,1270,0.105715575753422,0.105715575753422,-105.0203986,39.7184231,-105.0204072,39.7193738
-1249,1270,1271,0.096909170039208,0.096909170039208,-105.0204072,39.7193738,-105.0204158,39.7202453
-1251,1272,1273,0.132822339876578,0.132822339876578,-105.0204988,39.7476034,-105.0204988,39.7487979
-1252,1273,1274,0.108602805332053,0.108602805332053,-105.0204988,39.7487979,-105.0204817,39.7497745
-1253,1274,1275,0.0271637528935803,0.0271637528935803,-105.0204817,39.7497745,-105.0204903,39.7500187
-1254,1275,1276,0.112230208152067,0.112230208152067,-105.0204903,39.7500187,-105.0205429,39.7510272
-1255,1276,1277,0.0176649567962355,0.0176649567962355,-105.0205429,39.7510272,-105.020537,39.751186
-1256,1277,1278,0.135399208639876,0.135399208639876,-105.020537,39.751186,-105.0205102,39.7524035
-1257,1278,1279,0.134958357098824,0.134958357098824,-105.0205102,39.7524035,-105.0205165,39.7536172
-1258,1279,1280,0.13471438954866,0.13471438954866,-105.0205165,39.7536172,-105.0205245,39.7548287
-1259,1280,1281,0.0527317447874755,0.0527317447874755,-105.0205245,39.7548287,-105.0205312,39.7553029
-1260,1281,1282,0.0822068643990868,0.0822068643990868,-105.0205312,39.7553029,-105.0205344,39.7560422
-1262,24,1283,0.0541075654220215,0.0541075654220215,-105.0205339,39.7572526,-105.0205326,39.7577392
-1263,1283,1284,0.0277584904979192,0.0277584904979192,-105.0205326,39.7577392,-105.0205218,39.7579887
-1264,1284,1285,0.0119510600074318,0.0119510600074318,-105.0205218,39.7579887,-105.0205433,39.7580949
-1265,1285,1286,0.00765101800505865,0.00765101800505865,-105.0205433,39.7580949,-105.020542,39.7581637
-1267,1287,1288,0.0102422085479252,0.0102422085479252,-105.0205384,39.7583461,-105.0205366,39.7584382
-1269,1289,1290,0.18749026453307,0.18749026453307,-105.0204845,39.7839453,-105.0204693,39.7856314
-1270,1290,1291,0.200784792674354,0.200784792674354,-105.0204693,39.7856314,-105.0204718,39.7874371
-1271,1291,1292,0.406662337861329,0.406662337861329,-105.0204718,39.7874371,-105.0204665,39.7910943
-1272,1293,1028,0.104130177494266,0.104130177494266,-104.9634588,39.7488413,-104.9622408,39.7488417
-1274,1294,1295,0.209580478517529,0.209580478517529,-104.9875234,39.7129763,-104.9899734,39.7129983
-1275,1295,1296,0.202179673681852,0.202179673681852,-104.9899734,39.7129983,-104.992337,39.712987
-1276,1296,1297,0.102644670381459,0.102644670381459,-104.992337,39.712987,-104.993537,39.712987
-1277,1297,1298,0.08553722531747,0.08553722531747,-104.993537,39.712987,-104.994537,39.712987
-1278,1299,1300,0.10911250090994,0.10911250090994,-105.0250625,39.7133847,-105.0263381,39.713379
-1279,1300,1305,0.103516561820708,0.103516561820708,-105.0263381,39.713379,-105.0275483,39.713379
-1280,1305,1306,0.107188605435255,0.107188605435255,-105.0275483,39.713379,-105.0288014,39.7133724
-1282,1307,1308,0.104254785791266,0.104254785791266,-105.0299945,39.7133592,-105.0312133,39.7133658
-1283,1308,1309,0.104981820314566,0.104981820314566,-105.0312133,39.7133658,-105.0324406,39.7133724
-1284,1309,1310,0.0539236153779667,0.0539236153779667,-105.0324406,39.7133724,-105.033071,39.7133691
-1285,1310,1311,0.0525379554780919,0.0525379554780919,-105.033071,39.7133691,-105.0336852,39.7133658
-1287,1312,1313,0.0516652738700608,0.0516652738700608,-105.0342968,39.7133689,-105.0349008,39.7133719
-1288,1313,1314,0.0506813468547144,0.0506813468547144,-105.0349008,39.7133719,-105.0354933,39.7133745
-1289,1314,1315,0.0508976456987324,0.0508976456987324,-105.0354933,39.7133745,-105.0360883,39.7133797
-1290,1315,1316,0.0521616744394787,0.0521616744394787,-105.0360883,39.7133797,-105.0366981,39.7133763
-1291,1316,1317,0.0506396099336441,0.0506396099336441,-105.0366981,39.7133763,-105.0372901,39.7133724
-1292,1317,1318,0.0516214270666003,0.0516214270666003,-105.0372901,39.7133724,-105.0378936,39.7133724
-1293,1318,1319,0.0518951446578895,0.0518951446578895,-105.0378936,39.7133724,-105.0385003,39.7133724
-1294,1319,1320,0.0518013233234396,0.0518013233234396,-105.0385003,39.7133724,-105.0391059,39.7133709
-1295,1320,1321,0.0498510970504219,0.0498510970504219,-105.0391059,39.7133709,-105.0396887,39.7133694
-1296,1321,1322,0.0511186989957182,0.0511186989957182,-105.0396887,39.7133694,-105.0402863,39.7133654
-1297,1322,1323,0.0508331487974254,0.0508331487974254,-105.0402863,39.7133654,-105.0408805,39.7133731
-1300,1325,1326,0.08881123864976,0.08881123864976,-105.0432523,39.7133745,-105.0442903,39.7133559
-1304,499,1329,0.167484239247501,0.167484239247501,-105.0019139,39.7130364,-105.0038719,39.7130446
-1305,1329,1332,0.203905657642638,0.203905657642638,-105.0038719,39.7130446,-105.0062556,39.7130258
-1306,1332,1333,0.204847680679676,0.204847680679676,-105.0062556,39.7130258,-105.0086503,39.7130456
-1307,1333,1334,0.201123583387407,0.201123583387407,-105.0086503,39.7130456,-105.0110016,39.7130472
-1309,1335,1336,0.157474175144751,0.157474175144751,-105.012511,39.712992,-105.014352,39.712994
-1310,1336,1337,0.117575441930224,0.117575441930224,-105.014352,39.712994,-105.015726,39.713024
-1311,1337,1338,0.0942761529447682,0.0942761529447682,-105.015726,39.713024,-105.016828,39.7130093
-1313,1339,1340,0.0991229934735866,0.0991229934735866,-105.0179868,39.7130093,-105.0191455,39.712996
-1314,1340,193,0.100574656408132,0.100574656408132,-105.0191455,39.712996,-105.0203213,39.712996
-1315,193,1341,0.102057084030905,0.102057084030905,-105.0203213,39.712996,-105.0215144,39.7130026
-1316,1341,1342,0.101342753238197,0.101342753238197,-105.0215144,39.7130026,-105.0226989,39.7129828
-1317,1342,1343,0.0983873083767276,0.0983873083767276,-105.0226989,39.7129828,-105.023849,39.712996
-1318,1343,1344,0.103799446896886,0.103799446896886,-105.023849,39.712996,-105.0250625,39.7129968
-1320,1345,1346,0.0125938712274396,0.0125938712274396,-105.0025087,39.7490201,-105.0024538,39.7491252
-1323,1348,1349,0.273909093656176,0.273909093656176,-104.9759324,39.769905,-104.9740676,39.7719084
-1325,1350,1351,0.136546503712986,0.136546503712986,-105.0063979,39.7825483,-105.007995,39.7825082
-1326,1351,1352,0.134960662965356,0.134960662965356,-105.007995,39.7825082,-105.0095743,39.7825214
-1327,1352,1353,0.12926179848792,0.12926179848792,-105.0095743,39.7825214,-105.0110864,39.7825542
-1328,1353,1354,0.137757238088674,0.137757238088674,-105.0110864,39.7825542,-105.0126985,39.7825478
-1329,1354,1355,0.134312853283448,0.134312853283448,-105.0126985,39.7825478,-105.0142702,39.7825623
-1330,1355,1356,0.132780195397846,0.132780195397846,-105.0142702,39.7825623,-105.015824,39.7825504
-1334,1359,1360,0.200708631878513,0.200708631878513,-104.9979619,39.6967021,-104.9980058,39.6948974
-1336,142,1364,0.213116678885437,0.213116678885437,-104.9980358,39.6930742,-104.9980305,39.6911576
-1338,1365,1366,0.152775417186349,0.152775417186349,-105.0337367,39.6912702,-105.0337624,39.6898964
-1339,1367,1368,0.213588518747439,0.213588518747439,-104.9875368,39.7120974,-104.9900335,39.7121268
-1341,1369,1370,0.0932290478454428,0.0932290478454428,-104.9923595,39.7121202,-104.993449,39.7121432
-1342,1371,1372,0.0501807359890933,0.0501807359890933,-105.0361028,39.7117899,-105.0366894,39.7117844
-1343,1372,1373,0.0506488838331464,0.0506488838331464,-105.0366894,39.7117844,-105.0372815,39.7117878
-1344,1373,1374,0.0509778039678037,0.0509778039678037,-105.0372815,39.7117878,-105.0378774,39.7117812
-1345,1374,1375,0.0510804446988023,0.0510804446988023,-105.0378774,39.7117812,-105.0384745,39.7117746
-1346,1375,1376,0.0530938888935116,0.0530938888935116,-105.0384745,39.7117746,-105.0390952,39.7117746
-1347,1376,1377,0.0533676128248485,0.0533676128248485,-105.0390952,39.7117746,-105.0397191,39.7117746
-1348,1377,1378,0.0492215264037076,0.0492215264037076,-105.0397191,39.7117746,-105.0402944,39.711784
-1349,1378,1379,0.0493909004241748,0.0493909004241748,-105.0402944,39.711784,-105.0408718,39.7117866
-1350,1379,1380,0.102775081126436,0.102775081126436,-105.0408718,39.7117866,-105.0420733,39.7117889
-1351,1380,1381,0.100172308119327,0.100172308119327,-105.0420733,39.7117889,-105.0432442,39.7117733
-1353,1382,1383,0.0341877559991377,0.0341877559991377,-104.9972593,39.7123952,-104.9976275,39.7122756
-1354,1383,1384,0.104577694208817,0.104577694208817,-104.9976275,39.7122756,-104.998769,39.7119388
-1356,1385,1386,0.193890579001187,0.193890579001187,-105.0016028,39.7121409,-105.0038695,39.7121354
-2459,714,2450,0.108569713532818,0.108569713532818,-105.0041958,39.7705323,-105.0054661,39.7705389
-1358,1387,1388,0.203368582544414,0.203368582544414,-105.0062556,39.7121476,-105.0086331,39.7121543
-1359,1388,1389,0.203745939128333,0.203745939128333,-105.0086331,39.7121543,-105.011015,39.7121455
-1361,1390,1391,0.199208620541168,0.199208620541168,-105.0322152,39.7838328,-105.0322278,39.7856243
-1362,1391,1392,0.199941300123434,0.199941300123434,-105.0322278,39.7856243,-105.0322013,39.7874223
-1364,1393,1394,0.177657657089983,0.177657657089983,-105.0324691,39.7165619,-105.0324777,39.7181596
-1365,1394,1395,0.177656134299769,0.177656134299769,-105.0324777,39.7181596,-105.0324777,39.7197573
-1366,1395,1396,0.0721099099294465,0.0721099099294465,-105.0324777,39.7197573,-105.0324777,39.7204058
-1367,1396,1397,0.103333445330309,0.103333445330309,-105.0324777,39.7204058,-105.0324777,39.7213351
-1368,1397,1398,0.177111308895875,0.177111308895875,-105.0324777,39.7213351,-105.0324765,39.7229279
-1369,1398,1399,0.177390305757292,0.177390305757292,-105.0324765,39.7229279,-105.0324836,39.7245232
-1370,1399,1400,0.0617135848764214,0.0617135848764214,-105.0324836,39.7245232,-105.0324862,39.7250782
-1371,1400,1401,0.0203196347458361,0.0203196347458361,-105.0324862,39.7250782,-105.0324911,39.7252609
-1373,1402,1403,0.0235752242204257,0.0235752242204257,-105.032154,39.734838,-105.0321575,39.73505
-1375,1404,1402,0.00627534757508794,0.00627534757508794,-105.0321449,39.734782,-105.032154,39.734838
-1377,1405,1406,0.205561430653916,0.205561430653916,-105.0321172,39.729303,-105.0321363,39.7311516
-1378,1406,1407,0.198211407371417,0.198211407371417,-105.0321363,39.7311516,-105.032155,39.7329341
-1379,1407,1404,0.205478920022626,0.205478920022626,-105.032155,39.7329341,-105.0321449,39.734782
-1381,1408,1409,0.100293396704139,0.100293396704139,-105.032238,39.773186,-105.032333,39.774085
-2482,2015,1998,0.0374209544699414,0.0374209544699414,-104.9354827,39.7474085,-104.935045,39.7474085
-1382,1409,1410,0.293581023203639,0.293581023203639,-105.032333,39.774085,-105.0322367,39.7767242
-1386,1413,1414,0.135399373352711,0.135399373352711,-105.0110892,39.7813605,-105.0126737,39.7813618
-1387,1414,1415,0.134222064866511,0.134222064866511,-105.0126737,39.7813618,-105.0142444,39.7813552
-1388,1415,1416,0.135554703950228,0.135554703950228,-105.0142444,39.7813552,-105.0158307,39.7813611
-1390,1417,1418,0.0459508709120374,0.0459508709120374,-104.9988224,39.7819937,-104.9993559,39.7819419
-1391,1418,1419,0.202303287973101,0.202303287973101,-104.9993559,39.7819419,-105.0017224,39.7819937
-1394,1421,1422,0.101428183167069,0.101428183167069,-105.0345828,39.7821162,-105.0357695,39.7820968
-1395,1422,1423,0.0971760324958247,0.0971760324958247,-105.0357695,39.7820968,-105.0369066,39.7820848
-1396,1423,1424,0.100465380366459,0.100465380366459,-105.0369066,39.7820848,-105.0380823,39.7820859
-1397,1424,1425,0.0503823697773718,0.0503823697773718,-105.0380823,39.7820859,-105.0386719,39.7820847
-1398,1425,1426,0.0484682644313395,0.0484682644313395,-105.0386719,39.7820847,-105.0392391,39.7820835
-1399,1426,1427,0.0493995225121813,0.0493995225121813,-105.0392391,39.7820835,-105.0398172,39.7820831
-1400,1427,1138,0.0500574902796296,0.0500574902796296,-105.0398172,39.7820831,-105.040403,39.7820828
-1401,1138,1428,0.0487273610513856,0.0487273610513856,-105.040403,39.7820828,-105.0409732,39.782078
-1403,1429,1430,0.0510517494638005,0.0510517494638005,-105.0415749,39.7820729,-105.0421723,39.7820779
-1404,1430,1431,0.0485479238043371,0.0485479238043371,-105.0421723,39.7820779,-105.0427404,39.7820827
-1405,1431,1432,0.0499990939034271,0.0499990939034271,-105.0427404,39.7820827,-105.0433255,39.7820793
-1406,1432,1433,0.0540496336498359,0.0540496336498359,-105.0433255,39.7820793,-105.043958,39.7820756
-1408,1434,1435,0.101502735016485,0.101502735016485,-105.015828,39.7819929,-105.0170158,39.7820003
-1409,1435,1436,0.0975542961638382,0.0975542961638382,-105.0170158,39.7820003,-105.0181574,39.7819937
-1410,1436,1437,0.099750341261668,0.099750341261668,-105.0181574,39.7819937,-105.0193247,39.7820003
-1411,1437,1265,0.0977907961309881,0.0977907961309881,-105.0193247,39.7820003,-105.0204691,39.7820002
-1413,1438,1439,0.100436447451859,0.100436447451859,-105.0216256,39.7820039,-105.0228009,39.7820131
-1416,1441,1442,0.100952147732681,0.100952147732681,-105.0038773,39.7148211,-105.0038934,39.7139133
-1417,1442,1329,0.0966125375658313,0.0966125375658313,-105.0038934,39.7139133,-105.0038719,39.7130446
-1418,1329,1386,0.101098635736807,0.101098635736807,-105.0038719,39.7130446,-105.0038695,39.7121354
-1419,1386,1443,0.103303628365074,0.103303628365074,-105.0038695,39.7121354,-105.0038795,39.7112064
-1420,1443,1444,0.105351454494942,0.105351454494942,-105.0038795,39.7112064,-105.0039077,39.7102592
-1421,1444,1445,0.104823988220675,0.104823988220675,-105.0039077,39.7102592,-105.0039116,39.7093165
-1422,1445,1446,0.0939934684249721,0.0939934684249721,-105.0039116,39.7093165,-105.0038944,39.7084713
-1424,1447,1448,0.0986593061594928,0.0986593061594928,-105.0038773,39.7075535,-105.0037914,39.7066687
-1425,1448,1449,0.102799709683289,0.102799709683289,-105.0037914,39.7066687,-105.0037914,39.7057442
-1426,1449,1450,0.0947158385157811,0.0947158385157811,-105.0037914,39.7057442,-105.0037914,39.7048924
-1427,1450,1451,0.0999075147918272,0.0999075147918272,-105.0037914,39.7048924,-105.0038258,39.7039943
-1429,1452,784,0.0977509062908684,0.0977509062908684,-105.003594,39.7030434,-105.0031735,39.702226
-1431,1453,1454,0.0719801500300486,0.0719801500300486,-105.0038208,39.695498,-105.0038293,39.6948507
-1432,1454,147,0.198407848383786,0.198407848383786,-105.0038293,39.6948507,-105.0039152,39.6930676
-1433,147,1455,0.0338525123105229,0.0338525123105229,-105.0039152,39.6930676,-105.0039409,39.6927638
-1435,151,1456,0.201963345264684,0.201963345264684,-105.0077346,39.6931072,-105.0077346,39.6912909
-1438,1458,1459,0.393387760227334,0.393387760227334,-105.0078206,39.6893993,-105.007872,39.6858617
-1439,1460,1343,0.203476082408649,0.203476082408649,-105.0238542,39.7148259,-105.023849,39.712996
-1440,1343,1461,0.205811743637529,0.205811743637529,-105.023849,39.712996,-105.0238413,39.7111451
-1441,1461,1462,0.203884797606556,0.203884797606556,-105.0238413,39.7111451,-105.0238747,39.7093117
-1442,1462,1463,0.199707411933497,0.199707411933497,-105.0238747,39.7093117,-105.0238662,39.7075157
-1443,1463,1464,0.202654089186264,0.202654089186264,-105.0238662,39.7075157,-105.0238576,39.7056932
-1444,1464,1465,0.201184980777767,0.201184980777767,-105.0238576,39.7056932,-105.0238576,39.7038839
-1446,778,1466,0.187246918966658,0.187246918966658,-105.023849,39.7020679,-105.0238662,39.700384
-1447,1466,1467,0.197539000166948,0.197539000166948,-105.0238662,39.700384,-105.0238404,39.6986076
-1448,1467,1468,0.208212504536917,0.208212504536917,-105.0238404,39.6986076,-105.0238399,39.6967351
-1450,1469,1470,0.186875447219802,0.186875447219802,-105.0235652,39.6967351,-105.0235572,39.6950545
-1451,173,1471,0.256211082856798,0.256211082856798,-105.0231623,39.6931129,-105.0231842,39.6908088
-1454,1473,1474,0.0115011236026218,0.0115011236026218,-104.9248865,39.6961248,-104.9247632,39.6960836
-1455,1474,1475,0.0782239536830869,0.0782239536830869,-104.9247632,39.6960836,-104.9241194,39.6955841
-1456,1475,1476,0.086773238144748,0.086773238144748,-104.9241194,39.6955841,-104.9233668,39.695061
-1457,1476,1479,0.0924870142175924,0.0924870142175924,-104.9233668,39.695061,-104.9226286,39.6944534
-1458,1479,1480,0.37958729242533,0.37958729242533,-104.9226286,39.6944534,-104.9194549,39.6920681
-1460,1482,1483,0.0482525610515095,0.0482525610515095,-104.9907544,39.6948087,-104.9913183,39.6948152
-1463,1183,1360,0.0998764831880159,0.0998764831880159,-104.9968385,39.6948908,-104.9980058,39.6948974
-1464,1360,1485,0.101348070124559,0.101348070124559,-104.9980058,39.6948974,-104.9991903,39.6948908
-1465,1485,1486,0.0984049068298888,0.0984049068298888,-104.9991903,39.6948908,-105.0003404,39.6948842
-1467,1487,1488,0.111519868825334,0.111519868825334,-104.9874337,39.6948003,-104.988737,39.694787
-1471,1454,1491,0.201276239535877,0.201276239535877,-105.0038293,39.6948507,-105.0061812,39.6948904
-1473,1492,1493,0.102671300709598,0.102671300709598,-105.036538,39.695087,-105.037738,39.695087
-1474,1493,1494,0.114201675013651,0.114201675013651,-105.037738,39.695087,-105.0390582,39.6949357
-1475,1494,1495,0.100620235623392,0.100620235623392,-105.0390582,39.6949357,-105.0402341,39.6949489
-1476,1495,1496,0.0991406161889474,0.0991406161889474,-105.0402341,39.6949489,-105.0413928,39.6949423
-1477,1496,1497,0.0998844924107287,0.0998844924107287,-105.0413928,39.6949423,-105.0425601,39.6949555
-1478,1497,1498,0.102075212599034,0.102075212599034,-105.0425601,39.6949555,-105.0437531,39.6949621
-1479,1498,1499,0.0984215743592215,0.0984215743592215,-105.0437531,39.6949621,-105.0449033,39.6949489
-1480,1499,1500,0.710275264674714,0.710275264674714,-105.0449033,39.6949489,-105.0532048,39.6949656
-1481,1501,1502,0.109574036549915,0.109574036549915,-105.0250491,39.694923,-105.0263295,39.6949026
-1482,1502,1503,0.290817056726042,0.290817056726042,-105.0263295,39.6949026,-105.0297284,39.6949225
-1484,1504,1505,0.0925327391334129,0.0925327391334129,-105.0309987,39.6949159,-105.0320802,39.6949159
-1485,1505,1506,0.0984021297067109,0.0984021297067109,-105.0320802,39.6949159,-105.0332303,39.6949159
-1486,1506,1508,0.0976913946915281,0.0976913946915281,-105.0332303,39.6949159,-105.0343718,39.694896
-1489,1509,1510,0.0972031962531711,0.0972031962531711,-104.9520771,39.704954,-104.9532101,39.7050201
-1490,1510,1511,0.029446204772298,0.029446204772298,-104.9532101,39.7050201,-104.9534977,39.7051656
-1494,1514,1515,0.0918220075397064,0.0918220075397064,-104.9278643,39.6960978,-104.9267914,39.6961177
-1499,1518,1519,0.202094906389576,0.202094906389576,-104.9745407,39.7110945,-104.9745633,39.7092771
-1500,1519,1520,0.199707443263373,0.199707443263373,-104.9745633,39.7092771,-104.9745719,39.7074811
-1501,1520,1521,0.202063984146535,0.202063984146535,-104.9745719,39.7074811,-104.9745465,39.705664
-1502,1521,1522,0.20219834838932,0.20219834838932,-104.9745465,39.705664,-104.9745729,39.7038457
-1503,1522,1523,0.199783925434931,0.199783925434931,-104.9745729,39.7038457,-104.9745731,39.702049
-1504,1523,47,0.203533027899534,0.203533027899534,-104.9745731,39.702049,-104.974563,39.7002186
-2599,2565,2566,0.0719878134592224,0.0719878134592224,-104.9525578,39.7090414,-104.9525835,39.7096885
-1506,1524,1525,0.202471618520659,0.202471618520659,-104.9745686,39.6984311,-104.9745895,39.6966103
-1507,1525,1526,0.207090708341307,0.207090708341307,-104.9745895,39.6966103,-104.974598,39.6947479
-1508,1526,1527,0.19569314849173,0.19569314849173,-104.974598,39.6947479,-104.974606,39.692988
-1509,1527,1528,0.200397251106195,0.200397251106195,-104.974606,39.692988,-104.9746158,39.6911858
-1511,1529,1530,2.00893755060013,2.00893755060013,-104.9745995,39.6893814,-104.9746235,39.6713146
-1516,1535,1536,0.100586492660266,0.100586492660266,-104.95706,39.7213954,-104.9582358,39.7214152
-1518,1009,1537,0.0517503943444181,0.0517503943444181,-104.9875916,39.776556,-104.9869861,39.7765493
-1519,1537,1540,0.0418405299236717,0.0418405299236717,-104.9869861,39.7765493,-104.9864968,39.7765361
-1520,1540,1541,0.0515572086033239,0.0515572086033239,-104.9864968,39.7765361,-104.9858935,39.7765349
-1521,1541,1542,0.0506297333875711,0.0506297333875711,-104.9858935,39.7765349,-104.9853013,39.7765217
-1522,1542,1547,0.050402272284143,0.050402272284143,-104.9853013,39.7765217,-104.9847116,39.7765295
-1523,1547,972,0.0996461444866795,0.0996461444866795,-104.9847116,39.7765295,-104.9835456,39.7765347
-1524,972,1548,0.0962022319753865,0.0962022319753865,-104.9835456,39.7765347,-104.9824199,39.7765295
-1525,1548,1549,0.0953657467513535,0.0953657467513535,-104.9824199,39.7765295,-104.9813041,39.7765427
-1526,1549,1550,0.0963437695650725,0.0963437695650725,-104.9813041,39.7765427,-104.9801772,39.7765679
-1528,1551,1552,0.142721374587541,0.142721374587541,-104.945934,39.777795,-104.944264,39.777781
-1529,1552,1553,0.0277011537567162,0.0277011537567162,-104.944264,39.777781,-104.943941,39.77776
-1530,1554,1555,0.0435488620803952,0.0435488620803952,-104.9639791,39.7776803,-104.9634695,39.7776803
-1531,1555,1053,0.0900813280777187,0.0900813280777187,-104.9634695,39.7776803,-104.9624154,39.7776762
-1532,1053,1556,0.091689363858679,0.091689363858679,-104.9624154,39.7776762,-104.9613425,39.77767
-1537,1560,1561,0.060529314582724,0.060529314582724,-104.9571611,39.7776691,-104.9564528,39.7776703
-1538,1561,1562,0.0982757577888809,0.0982757577888809,-104.9564528,39.7776703,-104.9553028,39.7776723
-16447,9904,9905,0.234187757526107,0.234187757526107,-104.9731712,39.6980224,-104.9731684,39.7001285
-1539,1562,1563,0.0964555264462913,0.0964555264462913,-104.9553028,39.7776723,-104.9541741,39.7776743
-1540,1563,1564,0.0948745488688521,0.0948745488688521,-104.9541741,39.7776743,-104.9530639,39.7776762
-1541,1564,1565,0.0967033454927318,0.0967033454927318,-104.9530639,39.7776762,-104.9519323,39.7776782
-1542,1565,1566,0.0968058200777679,0.0968058200777679,-104.9519323,39.7776782,-104.9507995,39.7776799
-1543,1566,1567,0.0857541821683109,0.0857541821683109,-104.9507995,39.7776799,-104.9497965,39.7776561
-1544,1567,1568,0.099340207555012,0.099340207555012,-104.9497965,39.7776561,-104.9486346,39.7776838
-1545,1568,1571,0.0938405349536985,0.0938405349536985,-104.9486346,39.7776838,-104.9475365,39.7776858
-1546,1571,1572,0.0960880186310076,0.0960880186310076,-104.9475365,39.7776858,-104.9464121,39.7776877
-1548,1573,1574,0.0687509395523497,0.0687509395523497,-105.0353206,39.6868062,-105.0360845,39.6869978
-1551,1576,1577,0.102936179368501,0.102936179368501,-105.0378698,39.6874469,-105.0390628,39.6875658
-1555,1580,1581,0.0874483930882581,0.0874483930882581,-105.0421871,39.6881867,-105.0432085,39.6882131
-1558,1583,1584,0.322225767594647,0.322225767594647,-105.0452106,39.6881689,-105.0489763,39.6881801
-1559,1585,158,0.325178498041831,0.325178498041831,-105.0145707,39.6959461,-105.0136315,39.6931124
-1560,158,1586,0.248813969770461,0.248813969770461,-105.0136315,39.6931124,-105.0136484,39.6908748
-1562,1587,1588,0.682458212363131,0.682458212363131,-105.0138115,39.6884179,-105.0128935,39.6823212
-1563,1589,1590,0.093984831401002,0.093984831401002,-105.0133261,39.7073704,-105.0133347,39.7065252
-1564,1590,1591,0.0969174980637894,0.0969174980637894,-105.0133347,39.7065252,-105.0133347,39.7056536
-1565,1591,1592,0.0961947351154639,0.0961947351154639,-105.0133347,39.7056536,-105.0133176,39.7047886
-1566,1592,1593,0.0903125194205546,0.0903125194205546,-105.0133176,39.7047886,-105.0133176,39.7039764
-1567,1593,768,0.157881413911052,0.157881413911052,-105.0133176,39.7039764,-105.0133004,39.7025566
-1568,768,1596,0.172691061788589,0.172691061788589,-105.0133004,39.7025566,-105.0135751,39.701018
-1569,1596,1597,0.125221889854682,0.125221889854682,-105.0135751,39.701018,-105.0140815,39.6999614
-11466,780,781,0.0395520182900152,0.0395520182900152,-104.9318858,39.7800449,-104.9314271,39.7799974
-14682,727,782,0.194557772372847,0.194557772372847,-104.9700021,39.7200889,-104.9699677,39.7183394
-1575,1603,1604,0.122808892568626,0.122808892568626,-105.0031242,39.7501833,-105.002095,39.7509538
-1576,1604,1605,0.14134447308364,0.14134447308364,-105.002095,39.7509538,-105.0009256,39.7518524
-1577,1605,1606,0.00315234288642188,0.00315234288642188,-105.0009256,39.7518524,-105.000898,39.7518712
-1578,1606,1607,0.00237760055681402,0.00237760055681402,-105.000898,39.7518712,-105.00088,39.7518875
-1579,1607,1034,0.102833271602923,0.102833271602923,-105.00088,39.7518875,-105.0000465,39.7525543
-1580,1034,1608,0.043468513404088,0.043468513404088,-105.0000465,39.7525543,-104.9996914,39.7528341
-1581,1608,1033,0.049915824892393,0.049915824892393,-104.9996914,39.7528341,-104.9992823,39.7531544
-1582,1033,1609,0.0942592902205972,0.0942592902205972,-104.9992823,39.7531544,-104.9985176,39.7537651
-1583,1609,1610,0.146590259158182,0.146590259158182,-104.9985176,39.7537651,-104.9973103,39.7547013
-1585,1611,1612,0.124755429872932,0.124755429872932,-104.9928744,39.7570652,-104.9918236,39.7578438
-1587,1613,1614,0.146275547777326,0.146275547777326,-104.9779666,39.7696675,-104.9767564,39.7705977
-1588,1614,1615,0.26514479082652,0.26514479082652,-104.9767564,39.7705977,-104.9745571,39.7722795
-1589,1615,1616,0.120777633356172,0.120777633356172,-104.9745571,39.7722795,-104.973572,39.7730583
-1590,1616,1617,0.146979440780155,0.146979440780155,-104.973572,39.7730583,-104.9723691,39.774003
-1591,1617,1618,0.586436662116935,0.586436662116935,-104.9723691,39.774003,-104.9670562,39.7773409
-10219,5410,5429,0.0496147818599398,0.0496147818599398,-104.9704709,39.6893522,-104.9698913,39.6893394
-1592,1618,1619,0.120318550023187,0.120318550023187,-104.9670562,39.7773409,-104.9660606,39.778106
-1593,1620,1621,0.123170513487948,0.123170513487948,-104.9874196,39.7290833,-104.9888599,39.7290834
-1594,1621,1622,0.0891128334653611,0.0891128334653611,-104.9888599,39.7290834,-104.9899006,39.7290427
-1595,1622,1623,0.0126945079405001,0.0126945079405001,-104.9899006,39.7290427,-104.990046,39.7290197
-1597,1624,1625,0.0361628363016983,0.0361628363016983,-104.9994552,39.7668568,-104.9994016,39.7671794
-1598,1625,1626,0.0965078268867085,0.0965078268867085,-104.9994016,39.7671794,-104.9994084,39.7680473
-1599,1626,1627,0.122881556236448,0.122881556236448,-104.9994084,39.7680473,-104.9994072,39.7691524
-1601,1628,1629,0.0514694071076013,0.0514694071076013,-104.9994043,39.7833868,-104.9993614,39.7838485
-1604,1635,1337,0.196038913624896,0.196038913624896,-105.015737,39.714787,-105.015726,39.713024
-1605,1337,1636,0.207228602655476,0.207228602655476,-105.015726,39.713024,-105.0156951,39.7111605
-1606,1636,1637,0.20264296962565,0.20264296962565,-105.0156951,39.7111605,-105.0156865,39.7093381
-1607,1637,1638,0.203387402917304,0.203387402917304,-105.0156865,39.7093381,-105.0157122,39.7075091
-1608,1638,1639,0.0190931929940632,0.0190931929940632,-105.0157122,39.7075091,-105.0156968,39.7073378
-1609,1639,1640,0.0954982678568342,0.0954982678568342,-105.0156968,39.7073378,-105.0156865,39.706479
-1612,1642,1643,0.0969376424953903,0.0969376424953903,-105.0156924,39.7056338,-105.0156693,39.7047622
-1613,1643,1644,0.0932591849763066,0.0932591849763066,-105.0156693,39.7047622,-105.0156693,39.7039235
-1614,1644,769,0.109404688325734,0.109404688325734,-105.0156693,39.7039235,-105.0156693,39.7029396
-1616,1645,1646,0.0870106428010285,0.0870106428010285,-105.015583,39.6967681,-105.0155663,39.6959857
-1617,1646,1647,0.21369947718983,0.21369947718983,-105.0155663,39.6959857,-105.0155835,39.6940639
-1618,1647,160,0.103968034130831,0.103968034130831,-105.0155835,39.6940639,-105.0155788,39.6931289
-1619,160,1648,0.148969074067601,0.148969074067601,-105.0155788,39.6931289,-105.0157083,39.6917929
-1620,1648,1649,0.102090714125769,0.102090714125769,-105.0157083,39.6917929,-105.0156997,39.6908748
-1621,1649,1650,0.152016365267068,0.152016365267068,-105.0156997,39.6908748,-105.0156911,39.6895077
-1624,1652,1653,3.12548314855053,3.12548314855053,-105.0156826,39.688616,-105.0158,39.660508
-1625,1654,1655,0.099787477314555,0.099787477314555,-105.015638,39.699987,-105.0156436,39.6990896
-1626,1655,1656,0.0573939833292015,0.0573939833292015,-105.0156436,39.6990896,-105.0156865,39.6985745
-1627,1656,1657,0.0412244638452508,0.0412244638452508,-105.0156865,39.6985745,-105.0156522,39.6982047
-1628,1657,1658,0.159748945001355,0.159748945001355,-105.0156522,39.6982047,-105.0156688,39.6967681
-1630,1659,1660,0.0562485254553907,0.0562485254553907,-105.0252948,39.7674204,-105.0259529,39.7674233
-1631,1660,1661,0.140693983223782,0.140693983223782,-105.0259529,39.7674233,-105.027599,39.7674306
-1632,1661,1662,0.199243791884909,0.199243791884909,-105.027599,39.7674306,-105.02993,39.7674094
-1633,1662,1663,0.200873345889282,0.200873345889282,-105.02993,39.7674094,-105.0322802,39.7674005
-1634,1663,1664,0.200754056548572,0.200754056548572,-105.0322802,39.7674005,-105.034629,39.767391
-1636,1665,1626,0.102716653811918,0.102716653811918,-104.9982066,39.7680487,-104.9994084,39.7680473
-1637,1626,1666,0.1010071593638,0.1010071593638,-104.9994084,39.7680473,-105.0005902,39.7680472
-1638,1666,1667,0.101237955319616,0.101237955319616,-105.0005902,39.7680472,-105.0017747,39.7680465
-1639,1667,1668,0.101237948338119,0.101237948338119,-105.0017747,39.7680465,-105.0029592,39.7680459
-1640,1668,711,0.101306598900241,0.101306598900241,-105.0029592,39.7680459,-105.0041445,39.7680437
-1641,711,1669,0.10042603616611,0.10042603616611,-105.0041445,39.7680437,-105.0053195,39.7680447
-1642,1669,1670,0.0958961450641524,0.0958961450641524,-105.0053195,39.7680447,-105.0064415,39.7680441
-1644,1671,1672,0.137716093557474,0.137716093557474,-105.0080403,39.7680432,-105.0096516,39.7680424
-2762,2714,2715,0.0991860693431078,0.0991860693431078,-105.0228875,39.7720427,-105.0228852,39.7729347
-1651,1678,1679,0.133306617824866,0.133306617824866,-105.0174158,39.7680606,-105.0189755,39.7680565
-1652,1679,1250,0.131938339831678,0.131938339831678,-105.0189755,39.7680565,-105.0205192,39.7680565
-1653,1250,1680,0.132959450261057,0.132959450261057,-105.0205192,39.7680565,-105.0220748,39.7680472
-1654,1680,1681,0.132733669106231,0.132733669106231,-105.0220748,39.7680472,-105.0236278,39.7680441
-1655,1681,1682,0.132964768190064,0.132964768190064,-105.0236278,39.7680441,-105.0251835,39.7680482
-1657,1683,1684,0.0490945965896849,0.0490945965896849,-105.0346312,39.7676742,-105.0352055,39.7676655
-1658,1684,1685,0.0490108159838641,0.0490108159838641,-105.0352055,39.7676655,-105.0357789,39.7676609
-1659,1685,1686,0.0499458328019049,0.0499458328019049,-105.0357789,39.7676609,-105.0363632,39.7676539
-1660,1686,1687,0.0506073899683783,0.0506073899683783,-105.0363632,39.7676539,-105.0369553,39.7676511
-1661,1687,1688,0.0999922931051382,0.0999922931051382,-105.0369553,39.7676511,-105.038125,39.7676337
-1663,1689,1690,0.0532341368396536,0.0532341368396536,-105.0387013,39.7676285,-105.0393241,39.7676228
-1664,1690,1691,0.0494816378016481,0.0494816378016481,-105.0393241,39.7676228,-105.039903,39.7676176
-1665,1691,1129,0.0483962553320354,0.0483962553320354,-105.039903,39.7676176,-105.0404692,39.7676124
-2786,2740,2741,0.204165004811902,0.204165004811902,-104.9558357,39.6929607,-104.9558357,39.6911246
-1669,1694,1695,0.0515058444916569,0.0515058444916569,-105.0428441,39.7675702,-105.0434467,39.7675662
-1670,1695,1696,0.049583388064832,0.049583388064832,-105.0434467,39.7675662,-105.0440268,39.7675617
-1672,1697,1698,0.164817053327799,0.164817053327799,-104.9384472,39.7162245,-104.9384005,39.7147427
-1674,1699,1700,0.200184975462711,0.200184975462711,-104.9383805,39.6911269,-104.9383741,39.6893266
-1676,1701,1702,0.0562043024646792,0.0562043024646792,-104.9875011,39.6911908,-104.9881579,39.6911836
-1677,1702,1703,0.0473559609478773,0.0473559609478773,-104.9881579,39.6911836,-104.9887113,39.6911776
-1679,1704,1705,0.398746605392666,0.398746605392666,-105.0250424,39.6912967,-105.0297026,39.69129
-1681,1706,1365,0.144540603588288,0.144540603588288,-105.0320475,39.6912817,-105.0337367,39.6912702
-1682,1365,1707,0.0528990154558718,0.0528990154558718,-105.0337367,39.6912702,-105.0343547,39.691257
-1683,1707,1708,0.10134484884037,0.10134484884037,-105.0343547,39.691257,-105.0355391,39.6912636
-1684,1708,1709,0.0991459088544214,0.0991459088544214,-105.0355391,39.6912636,-105.0366978,39.691257
-1685,1709,1710,0.100657696530189,0.100657696530189,-105.0366978,39.691257,-105.0378737,39.6912834
-1686,1710,1711,0.102825031241611,0.102825031241611,-105.0378737,39.6912834,-105.0390754,39.69129
-1687,1711,1712,0.0822822408497534,0.0822822408497534,-105.0390754,39.69129,-105.0400367,39.6913098
-1688,1712,1713,0.0873989484445677,0.0873989484445677,-105.0400367,39.6913098,-105.041058,39.6912966
-1689,1713,1714,0.083724486939572,0.083724486939572,-105.041058,39.6912966,-105.0420365,39.6912966
-1691,1715,1716,0.0772899080720762,0.0772899080720762,-105.0433411,39.691224,-105.0442424,39.6912702
-1693,1717,1718,0.0829924152482612,0.0829924152482612,-105.0087646,39.690855,-105.0097345,39.6908484
-12973,1824,2797,0.01303984476973,0.01303984476973,-105.0068707,39.7455494,-105.0069887,39.7454751
-1695,1719,1720,0.0851881782403355,0.0851881782403355,-105.0107559,39.690855,-105.0117515,39.690855
-1696,1720,1721,0.0815306594337643,0.0815306594337643,-105.0117515,39.690855,-105.0127042,39.6908682
-1697,1721,1586,0.0807934684584117,0.0807934684584117,-105.0127042,39.6908682,-105.0136484,39.6908748
-1698,1586,1722,0.0815207303880199,0.0815207303880199,-105.0136484,39.6908748,-105.0146011,39.6908814
-1699,1722,1649,0.0940041718050458,0.0940041718050458,-105.0146011,39.6908814,-105.0156997,39.6908748
-1702,1723,1724,0.079056501466603,0.079056501466603,-105.0164379,39.6918193,-105.0171932,39.6914098
-1703,1724,1725,0.0798640413181071,0.0798640413181071,-105.0171932,39.6914098,-105.0179828,39.6910268
-1707,204,1728,0.0808035328564148,0.0808035328564148,-105.0203689,39.690822,-105.0213131,39.6908088
-1708,1728,1729,0.0793099389847985,0.0793099389847985,-105.0213131,39.6908088,-105.02224,39.6908088
-1709,1729,1471,0.0807902086419881,0.0807902086419881,-105.02224,39.6908088,-105.0231842,39.6908088
-1710,1471,1730,0.159227595521595,0.159227595521595,-105.0231842,39.6908088,-105.0250451,39.6908065
-1712,1731,1732,0.00918106235729301,0.00918106235729301,-105.0015625,39.6912528,-105.0016698,39.6912526
-1713,1732,1733,0.0904244628649386,0.0904244628649386,-105.0016698,39.6912526,-105.0027266,39.6912507
-1714,1733,1734,0.1024374483727,0.1024374483727,-105.0027266,39.6912507,-105.0039238,39.6912513
-1715,1734,1735,0.102816532682191,0.102816532682191,-105.0039238,39.6912513,-105.0051254,39.6912447
-1716,1735,1736,0.0492571813589573,0.0492571813589573,-105.0051254,39.6912447,-105.0057005,39.6912645
-1718,1737,1738,0.0480836518232765,0.0480836518232765,-105.0061947,39.6912734,-105.0067562,39.6912909
-1720,1456,1739,0.0851993535054976,0.0851993535054976,-105.0077346,39.6912909,-105.0087303,39.6912975
-1722,1740,1741,0.0851913863702705,0.0851913863702705,-104.9900263,39.6908136,-104.9910219,39.6908202
-1724,1742,1743,1.05721580006997,1.05721580006997,-104.9851236,39.7677094,-104.9787558,39.7758607
-1727,1746,1747,0.203318990561603,0.203318990561603,-104.9722045,39.6929651,-104.9722389,39.6911368
-1728,1747,1748,0.105159616756228,0.105159616756228,-104.9722389,39.6911368,-104.9722475,39.6901911
-1730,1749,1750,0.0560818664301058,0.0560818664301058,-104.9721944,39.7142027,-104.9722042,39.714707
-1732,1751,1752,0.478248386364013,0.478248386364013,-104.9472549,39.7837973,-104.944277,39.787439
-1733,1752,1753,0.443656760721259,0.443656760721259,-104.944277,39.787439,-104.9414956,39.7908082
-1735,1754,1755,0.1348267792147,0.1348267792147,-105.0124896,39.7620198,-105.0124792,39.7608073
-1736,1755,1756,0.129877519863856,0.129877519863856,-105.0124792,39.7608073,-105.0124873,39.7596393
-1738,1757,1758,0.139572444331893,0.139572444331893,-105.0085894,39.7075535,-105.0078426,39.7064375
-1740,1759,151,0.222068972422621,0.222068972422621,-105.0067133,39.6949432,-105.0077346,39.6931072
-1742,1760,1761,0.217075886587119,0.217075886587119,-105.0074982,39.7009717,-105.0081893,39.6990933
-1744,95,1762,0.0857577538793466,0.0857577538793466,-104.9551461,39.7002095,-104.9546893,39.699523
-1746,1763,1764,0.202675621070888,0.202675621070888,-104.9768983,39.7165189,-104.9769042,39.7146962
-1747,1764,1765,0.199646627713467,0.199646627713467,-104.9769042,39.7146962,-104.9769241,39.7129008
-1749,1768,1769,0.203715891739879,0.203715891739879,-104.976901,39.7110879,-104.9769412,39.7092561
-18799,8969,430,0.0787540687567586,0.0787540687567586,-104.9948199,39.7664979,-104.9943797,39.7671201
-1751,1772,1773,0.1980611092504,0.1980611092504,-104.9769267,39.7074561,-104.9769014,39.705675
-1752,1773,1774,0.203412766578772,0.203412766578772,-104.9769014,39.705675,-104.9769161,39.7038457
-1753,1774,1775,0.202109933054243,0.202109933054243,-104.9769161,39.7038457,-104.9769267,39.7020281
-1754,1775,43,0.202669215310678,0.202669215310678,-104.9769267,39.7020281,-104.9769439,39.7002055
-1755,43,1776,0.197841814631247,0.197841814631247,-104.9769439,39.7002055,-104.9769155,39.6984264
-1756,1776,1777,0.202676328377112,0.202676328377112,-104.9769155,39.6984264,-104.9769241,39.6966037
-1757,1777,1778,0.204936151058667,0.204936151058667,-104.9769241,39.6966037,-104.9769531,39.6947608
-1758,1778,1779,0.1977714314521,0.1977714314521,-104.9769531,39.6947608,-104.9769504,39.6929822
-1759,1779,1780,0.0315877327413917,0.0315877327413917,-104.9769504,39.6929822,-104.9769419,39.6926982
-1760,1780,1781,0.0188253963586558,0.0188253963586558,-104.9769419,39.6926982,-104.9769412,39.6925289
-1763,1782,570,0.0446437216270623,0.0446437216270623,-104.986165,39.6947828,-104.9856433,39.69479
-1764,570,1783,0.0483070548371257,0.0483070548371257,-104.9856433,39.69479,-104.9850787,39.69479
-1765,1783,1784,0.0445253123220399,0.0445253123220399,-104.9850787,39.69479,-104.9845583,39.69479
-1766,1784,1785,0.0510546887722961,0.0510546887722961,-104.9845583,39.69479,-104.9839616,39.6947869
-1768,1786,1787,0.0533839966500878,0.0533839966500878,-104.9833861,39.6948011,-104.9827622,39.6947958
-1769,1787,1788,0.0521924619717138,0.0521924619717138,-104.9827622,39.6947958,-104.9821522,39.6947929
-1770,1788,1789,0.0490694542852552,0.0490694542852552,-104.9821522,39.6947929,-104.9815787,39.6947902
-1771,1789,1790,0.0491381693257593,0.0491381693257593,-104.9815787,39.6947902,-104.9810045,39.694799
-1774,1792,1793,0.188232081449375,0.188232081449375,-104.931734,39.694587,-104.929534,39.694587
-1775,1793,1794,0.0938047512624172,0.0938047512624172,-104.929534,39.694587,-104.9284394,39.6945392
-1777,1795,1796,0.0479551643273822,0.0479551643273822,-104.9792579,39.6947744,-104.9786977,39.6947606
-1779,1797,1798,0.0506257576844139,0.0506257576844139,-104.9781014,39.6947603,-104.9775097,39.6947606
-1780,1798,1778,0.0476226019606038,0.0476226019606038,-104.9775097,39.6947606,-104.9769531,39.6947608
-1781,1778,1799,0.0506000833049729,0.0506000833049729,-104.9769531,39.6947608,-104.9763617,39.694761
-1782,1799,1800,0.0489339836382716,0.0489339836382716,-104.9763617,39.694761,-104.97579,39.6947486
-1783,1800,1801,0.0520587364066008,0.0520587364066008,-104.97579,39.6947486,-104.9751816,39.6947545
-1784,1801,1526,0.0499381116869285,0.0499381116869285,-104.9751816,39.6947545,-104.974598,39.6947479
-1785,1526,1802,0.0482912843745838,0.0482912843745838,-104.974598,39.6947479,-104.9740336,39.6947447
-1786,1802,1803,0.052312654556816,0.052312654556816,-104.9740336,39.6947447,-104.9734222,39.6947413
-1788,466,1804,0.00820558552351573,0.00820558552351573,-104.9373661,39.6947234,-104.9373232,39.6947894
-1789,1804,1805,0.0939988504660162,0.0939988504660162,-104.9373232,39.6947894,-104.9362246,39.6947828
-1790,1805,1806,0.0853375028247139,0.0853375028247139,-104.9362246,39.6947828,-104.935235,39.694687
-1792,1807,1808,0.0203438851658787,0.0203438851658787,-105.0073479,39.7524784,-105.0075333,39.7523637
-1793,1808,1809,0.0251680266073563,0.0251680266073563,-105.0075333,39.7523637,-105.0077397,39.7522023
-1794,1809,1810,0.203784780502352,0.203784780502352,-105.0077397,39.7522023,-105.0094107,39.7508953
-1795,1810,1811,0.245267310527272,0.245267310527272,-105.0094107,39.7508953,-105.0082177,39.7529013
-1797,1812,1513,0.252426666173968,0.252426666173968,-104.9317181,39.6953648,-104.92892,39.6960846
-1799,1479,1813,0.176119796231885,0.176119796231885,-104.9226286,39.6944534,-104.923341,39.6929674
-1800,1813,1814,0.410709550491308,0.410709550491308,-104.923341,39.6929674,-104.9243796,39.6893613
-1802,1815,1816,0.0577133885110317,0.0577133885110317,-105.0264272,39.7291051,-105.0268596,39.7287066
-1805,1818,1819,0.0740878722178254,0.0740878722178254,-105.028093,39.7274609,-105.0286551,39.7269539
-1806,1819,1820,0.135457901381645,0.135457901381645,-105.0286551,39.7269539,-105.0299828,39.7262896
-1808,1821,1822,0.206145194610924,0.206145194610924,-104.9293577,39.7647208,-104.9269459,39.7647142
-1812,1828,1829,0.106425576539939,0.106425576539939,-105.0251054,39.7213616,-105.0263496,39.7213466
-1813,1829,1830,0.105266693821804,0.105266693821804,-105.0263496,39.7213466,-105.0275804,39.7213446
-1814,1830,1831,0.0587144262982408,0.0587144262982408,-105.0275804,39.7213446,-105.0282669,39.7213461
-1815,1831,1832,0.0458724352500271,0.0458724352500271,-105.0282669,39.7213461,-105.0288032,39.7213404
-1817,1833,1834,0.199229532947629,0.199229532947629,-105.0227761,39.7211827,-105.0251054,39.7211636
-1820,1836,1837,0.0309799563804686,0.0309799563804686,-105.0117245,39.7209266,-105.0120749,39.720856
-1822,1838,1839,0.146418601014837,0.146418601014837,-104.9874805,39.7209443,-104.9891924,39.7209342
-1823,1839,1840,0.141683677614281,0.141683677614281,-104.9891924,39.7209342,-104.9908489,39.7209474
-1824,1840,1841,0.111588649653809,0.111588649653809,-104.9908489,39.7209474,-104.9921535,39.7209342
-1827,1844,1845,0.101354924922083,0.101354924922083,-105.030046,39.7213676,-105.031231,39.721358
-1828,1845,1397,0.106656735273228,0.106656735273228,-105.031231,39.721358,-105.0324777,39.7213351
-1829,1397,1846,0.052351737797171,0.052351737797171,-105.0324777,39.7213351,-105.0330898,39.7213326
-1831,1847,1848,0.0531037804059208,0.0531037804059208,-105.0337,39.7213301,-105.0343209,39.721329
-1832,1848,1849,0.0506063775898189,0.0506063775898189,-105.0343209,39.721329,-105.0349126,39.721328
-1833,1849,1850,0.0517100300362486,0.0517100300362486,-105.0349126,39.721328,-105.0355172,39.72133
-1834,1850,1851,0.0523258164287328,0.0523258164287328,-105.0355172,39.72133,-105.036129,39.721332
-1835,1851,1852,0.0499829479152778,0.0499829479152778,-105.036129,39.721332,-105.0367134,39.7213291
-1836,1852,1853,0.051505297770613,0.051505297770613,-105.0367134,39.7213291,-105.0373156,39.7213262
-1837,1853,1854,0.051498980863322,0.051498980863322,-105.0373156,39.7213262,-105.0379177,39.7213314
-1840,1856,1857,0.051410475877809,0.051410475877809,-105.0391086,39.721333,-105.0397097,39.7213315
-1841,1857,1858,0.0513674435994921,0.0513674435994921,-105.0397097,39.7213315,-105.0403103,39.7213316
-1842,1858,1109,0.0515213919005775,0.0515213919005775,-105.0403103,39.7213316,-105.0409127,39.7213317
-1843,1109,1859,0.0506198107739765,0.0506198107739765,-105.0409127,39.7213317,-105.0415045,39.7213253
-1844,1859,1860,0.0511967416282439,0.0511967416282439,-105.0415045,39.7213253,-105.0421031,39.721327
-1845,1860,1861,0.0519748871795966,0.0519748871795966,-105.0421031,39.721327,-105.0427108,39.7213283
-1847,1862,1863,0.0554265580601903,0.0554265580601903,-105.0432898,39.7213253,-105.0439342,39.7212724
-1848,1863,1864,0.397067534239407,0.397067534239407,-105.0439342,39.7212724,-105.0485768,39.7212752
-1849,1865,1481,0.206774260684103,0.206774260684103,-104.9901799,39.6966614,-104.9901596,39.6948019
-1850,1481,136,0.199116779757445,0.199116779757445,-104.9901596,39.6948019,-104.9901944,39.6930114
-1852,1866,1867,0.100566373592942,0.100566373592942,-104.9899563,39.7165768,-104.9899631,39.7156724
-1853,1867,1868,0.101320817159016,0.101320817159016,-104.9899631,39.7156724,-104.9899631,39.7147612
-1855,1869,1295,0.0991404141660552,0.0991404141660552,-104.9899974,39.7138897,-104.9899734,39.7129983
-1856,1295,1368,0.0970426412791379,0.0970426412791379,-104.9899734,39.7129983,-104.9900335,39.7121268
-1857,1368,1870,0.108154398880898,0.108154398880898,-104.9900335,39.7121268,-104.9899993,39.7111545
-1859,1871,1872,0.100234830388367,0.100234830388367,-104.9899914,39.7102518,-104.9900015,39.7093504
-1860,1872,1873,0.0980754533399867,0.0980754533399867,-104.9900015,39.7093504,-104.9900079,39.7084684
-1861,1873,1874,0.101854943741879,0.101854943741879,-104.9900079,39.7084684,-104.98999,39.7075525
-1862,1874,1875,0.0125795021137856,0.0125795021137856,-104.98999,39.7075525,-104.9899702,39.7074404
-1863,1875,1876,0.0797821176517698,0.0797821176517698,-104.9899702,39.7074404,-104.9899856,39.706723
-1864,1876,1877,0.103719210283603,0.103719210283603,-104.9899856,39.706723,-104.9899153,39.7057918
-1866,1740,1878,0.161887620550325,0.161887620550325,-104.9900263,39.6908136,-104.9904039,39.689387
-1868,1879,1880,0.0487542093720633,0.0487542093720633,-105.0393141,39.7594338,-105.0398844,39.7594402
-1869,1880,1122,0.0510369170722426,0.0510369170722426,-105.0398844,39.7594402,-105.0404814,39.759447
-1871,1882,1883,0.588595740779303,0.588595740779303,-105.044015,39.7594009,-105.0509008,39.7594001
-1872,1884,1885,0.152111272923972,0.152111272923972,-105.0281527,39.7594148,-105.0299322,39.7594122
-1873,1885,1886,0.199118819593963,0.199118819593963,-105.0299322,39.7594122,-105.0322615,39.7593933
-1874,1886,1887,0.200266209543398,0.200266209543398,-105.0322615,39.7593933,-105.0346033,39.7594473
-1876,1891,1892,0.0559298383062073,0.0559298383062073,-105.0046254,39.7620612,-105.0052777,39.7620216
-2989,776,2928,0.18503947742992,0.18503947742992,-105.0215401,39.7020679,-105.0215401,39.7004038
-1878,1893,1894,0.32823055853467,0.32823055853467,-104.9497942,39.7070048,-104.9460234,39.7064591
-1880,1895,1896,0.106010053095039,0.106010053095039,-104.9875851,39.7075228,-104.9863459,39.7075146
-1881,1896,1897,0.0966039225045284,0.0966039225045284,-104.9863459,39.7075146,-104.985217,39.7074918
-1882,1897,1898,0.101329648076306,0.101329648076306,-104.985217,39.7074918,-104.9840325,39.7074985
-1883,1898,1899,0.105723867542497,0.105723867542497,-104.9840325,39.7074985,-104.9827966,39.7074985
-1884,1899,1900,0.100059117952088,0.100059117952088,-104.9827966,39.7074985,-104.981627,39.707488
-1885,1900,1901,0.0102909725043749,0.0102909725043749,-104.981627,39.707488,-104.9815067,39.7074878
-1886,1901,1902,0.0917204387150709,0.0917204387150709,-104.9815067,39.7074878,-104.9804345,39.7074865
-1887,1902,1903,0.0488400104067164,0.0488400104067164,-104.9804345,39.7074865,-104.9798636,39.7074913
-1888,1903,1904,0.0516943831129701,0.0516943831129701,-104.9798636,39.7074913,-104.9792593,39.7074903
-1889,1904,1905,0.0485157141379251,0.0485157141379251,-104.9792593,39.7074903,-104.9786923,39.7074805
-1890,1905,1906,0.00454251169325352,0.00454251169325352,-104.9786923,39.7074805,-104.9786392,39.7074808
-1891,1906,1907,0.0474170350841876,0.0474170350841876,-104.9786392,39.7074808,-104.9780854,39.7074627
-1892,1907,1908,0.0520037008543052,0.0520037008543052,-104.9780854,39.7074627,-104.9774775,39.7074592
-1893,1908,1772,0.0471189408868131,0.0471189408868131,-104.9774775,39.7074592,-104.9769267,39.7074561
-1894,1772,1909,0.0492432884260358,0.0492432884260358,-104.9769267,39.7074561,-104.9763514,39.7074715
-1896,1910,1911,0.0495320112775386,0.0495320112775386,-104.9757282,39.7074937,-104.9751493,39.7074845
-1897,1911,1520,0.0493945814205325,0.0493945814205325,-104.9751493,39.7074845,-104.9745719,39.7074811
-1898,1520,1912,0.0533971088216985,0.0533971088216985,-104.9745719,39.7074811,-104.9739477,39.707479
-1899,1912,1913,0.0492909868241652,0.0492909868241652,-104.9739477,39.707479,-104.9733715,39.707477
-1902,1914,1915,0.0940987095228026,0.0940987095228026,-104.972136,39.707488,-104.971036,39.70749
-1903,1915,1916,0.102901306177953,0.102901306177953,-104.971036,39.70749,-104.9698332,39.7075022
-1904,1916,1917,0.099610911557729,0.099610911557729,-104.9698332,39.7075022,-104.9686689,39.7074883
-1905,1917,1918,0.102910577647033,0.102910577647033,-104.9686689,39.7074883,-104.9674661,39.7074709
-1906,1918,1919,0.0967734482498666,0.0967734482498666,-104.9674661,39.7074709,-104.966335,39.707486
-1908,1920,1921,0.0462806189179572,0.0462806189179572,-104.9651495,39.7074752,-104.9646085,39.7074783
-1910,1922,1923,0.0456516788886206,0.0456516788886206,-104.9639994,39.7074818,-104.9634658,39.7074881
-1911,1923,1924,0.0505452419126903,0.0505452419126903,-104.9634658,39.7074881,-104.962875,39.707495
-1912,1924,1925,0.0504057374799388,0.0504057374799388,-104.962875,39.707495,-104.9622858,39.7074899
-1913,1925,1926,0.0476340401482501,0.0476340401482501,-104.9622858,39.7074899,-104.961729,39.707485
-1914,1926,1927,0.051053036843087,0.051053036843087,-104.961729,39.707485,-104.9611322,39.7074867
-1915,1927,1928,0.049153971321488,0.049153971321488,-104.9611322,39.7074867,-104.9605576,39.7074884
-1918,1930,1931,0.0561439680866497,0.0561439680866497,-105.0298394,39.7384827,-105.030496,39.7384857
-1919,1931,1932,0.053826281457259,0.053826281457259,-105.030496,39.7384857,-105.0311255,39.7384836
-3034,2965,2966,0.00876223324596343,0.00876223324596343,-105.0235213,39.7584714,-105.0236238,39.7584722
-1920,1932,1933,0.0477206876272752,0.0477206876272752,-105.0311255,39.7384836,-105.0316836,39.7384833
-1923,1935,1936,0.066876205689997,0.066876205689997,-105.0218644,39.7389424,-105.0226443,39.738897
-1924,1937,1938,0.0446617758397252,0.0446617758397252,-105.0260468,39.738001,-105.0265344,39.738145
-1925,1938,1939,0.0840391912235338,0.0840391912235338,-105.0265344,39.738145,-105.0273088,39.7386104
-1926,1939,1940,0.227469383602409,0.227469383602409,-105.0273088,39.7386104,-105.0298414,39.7392366
-1931,1944,1945,0.0952703264542464,0.0952703264542464,-105.0148152,39.7384942,-105.0159294,39.7384943
-1932,1945,1946,0.0974265293580338,0.0974265293580338,-105.0159294,39.7384943,-105.0170684,39.7384706
-1933,1947,1948,0.151605873109213,0.151605873109213,-105.0077504,39.7384638,-105.0095234,39.7384742
-1938,1952,1953,0.109258836266427,0.109258836266427,-104.9402458,39.7146371,-104.9394047,39.7138976
-1939,1953,1954,0.122481399421688,0.122481399421688,-104.9394047,39.7138976,-104.9384863,39.7130525
-1940,1954,1955,0.119684093740802,0.119684093740802,-104.9384863,39.7130525,-104.9375707,39.7122386
-1943,1957,1958,0.204446635842756,0.204446635842756,-104.9292853,39.7085296,-104.9269593,39.708107
-1944,1958,1959,0.0997279110592744,0.0997279110592744,-104.9269593,39.708107,-104.9258263,39.7078957
-1945,1959,1960,1.05168738215655,1.05168738215655,-104.9258263,39.7078957,-104.9147112,39.7038545
-1946,1960,1961,1.71048983577162,1.71048983577162,-104.9147112,39.7038545,-104.8973332,39.6962481
-1947,1962,1963,2.33567129984142,2.33567129984142,-104.884649,39.743794,-104.9119671,39.7437801
-1948,1963,1964,1.08148581800227,1.08148581800227,-104.9119671,39.7437801,-104.9246161,39.743742
-1950,1965,1966,0.103934061554546,0.103934061554546,-104.925792,39.7437354,-104.9270076,39.7437306
-1951,1966,1967,0.0454999873171455,0.0454999873171455,-104.9270076,39.7437306,-104.9275397,39.743724
-1952,1967,1968,0.0964089929828049,0.0964089929828049,-104.9275397,39.743724,-104.9286673,39.7437222
-1953,1968,1969,0.125489170754965,0.125489170754965,-104.9286673,39.7437222,-104.930135,39.7437288
-1954,1969,1972,0.165851140560008,0.165851140560008,-104.930135,39.7437288,-104.9320748,39.7437288
-1955,1972,1973,0.145299005046435,0.145299005046435,-104.9320748,39.7437288,-104.9337742,39.7437354
-1956,1973,1974,0.145772913358701,0.145772913358701,-104.9337742,39.7437354,-104.9354791,39.743724
-1957,1974,1975,0.149974913959851,0.149974913959851,-104.9354791,39.743724,-104.9372332,39.7437288
-1958,1975,1976,0.145057930633755,0.145057930633755,-104.9372332,39.7437288,-104.9389295,39.7437042
-1959,1976,1977,0.143477867614704,0.143477867614704,-104.9389295,39.7437042,-104.9406062,39.7437573
-1961,1978,420,0.0932140793920545,0.0932140793920545,-104.9407693,39.7437639,-104.9418594,39.7437507
-1963,1963,1979,1.08603450886527,1.08603450886527,-104.9119671,39.7437801,-104.924659,39.7433856
-1964,1979,1980,0.0983329965983175,0.0983329965983175,-104.924659,39.7433856,-104.9258091,39.7433856
-1965,1980,1981,0.0917353737473226,0.0917353737473226,-104.9258091,39.7433856,-104.926882,39.743379
-1966,1981,1982,0.055771341470748,0.055771341470748,-104.926882,39.743379,-104.9275343,39.743379
-1967,1982,1983,0.0968737393586206,0.0968737393586206,-104.9275343,39.743379,-104.9286673,39.7433856
-1968,1983,1984,0.0954710209286709,0.0954710209286709,-104.9286673,39.7433856,-104.9297839,39.7433797
-1969,1984,1985,0.0293519873253464,0.0293519873253464,-104.9297839,39.7433797,-104.9301272,39.7433797
-1970,1985,1986,0.0704554284720801,0.0704554284720801,-104.9301272,39.7433797,-104.9309512,39.7433863
-1971,1986,1988,0.095403189447009,0.095403189447009,-104.9309512,39.7433863,-104.932067,39.7433797
-1972,1988,1989,0.146040552740524,0.146040552740524,-104.932067,39.7433797,-104.933775,39.7433929
-1973,1989,1990,0.147511070915923,0.147511070915923,-104.933775,39.7433929,-104.9355002,39.7433797
-1974,1990,1991,0.147511070914708,0.147511070914708,-104.9355002,39.7433797,-104.9372254,39.7433929
-1975,1991,1992,0.145306416846094,0.145306416846094,-104.9372254,39.7433929,-104.9389249,39.7433929
-1976,1992,1993,0.143786568306041,0.143786568306041,-104.9389249,39.7433929,-104.9405891,39.7435791
-1977,1993,1994,0.0151225768059817,0.0151225768059817,-104.9405891,39.7435791,-104.9407521,39.7436319
-1978,1994,420,0.0955903616259906,0.0955903616259906,-104.9407521,39.7436319,-104.9418594,39.7437507
-1980,1995,157,0.328733376766768,0.328733376766768,-105.0136437,39.6959725,-105.0126712,39.6931124
-1981,157,1721,0.24955962831592,0.24955962831592,-105.0126712,39.6931124,-105.0127042,39.6908682
-1983,1996,1997,0.475009767293493,0.475009767293493,-105.0128845,39.6882924,-105.0119747,39.6840783
-1984,1998,1999,0.203988417966153,0.203988417966153,-104.935045,39.7474085,-104.9350364,39.749243
-1985,1999,2000,0.200819821039785,0.200819821039785,-104.9350364,39.749243,-104.9350463,39.751049
-1986,2000,794,0.198875475027904,0.198875475027904,-104.9350463,39.751049,-104.9350328,39.7528375
-1987,794,2001,0.203566311480143,0.203566311480143,-104.9350328,39.7528375,-104.9350229,39.7546682
-1988,2001,2002,0.201451879254481,0.201451879254481,-104.9350229,39.7546682,-104.9350242,39.7564799
-1989,2002,2003,0.203252240244887,0.203252240244887,-104.9350242,39.7564799,-104.9349898,39.7583076
-1990,2003,2004,0.204825535738971,0.204825535738971,-104.9349898,39.7583076,-104.9350741,39.7601485
-1991,2004,2005,0.188227904196053,0.188227904196053,-104.9350741,39.7601485,-104.9350278,39.7618409
-1992,2005,2006,0.0174353644977756,0.0174353644977756,-104.9350278,39.7618409,-104.9350278,39.7619977
-1994,353,2007,0.251582112428801,0.251582112428801,-104.9345948,39.720897,-104.9345373,39.7231591
-1995,2007,2008,0.132634173204781,0.132634173204781,-104.9345373,39.7231591,-104.9345317,39.7243519
-1996,2008,2009,0.107027307843563,0.107027307843563,-104.9345317,39.7243519,-104.9345766,39.7253138
-1999,2011,646,0.139457974349072,0.139457974349072,-104.9355134,39.7401073,-104.9354861,39.7413613
-2000,646,2012,0.135033465549491,0.135033465549491,-104.9354861,39.7413613,-104.9355048,39.7425756
-2001,2012,1990,0.089412705524254,0.089412705524254,-104.9355048,39.7425756,-104.9355002,39.7433797
-2002,1990,1974,0.0383268944933106,0.0383268944933106,-104.9355002,39.7433797,-104.9354791,39.743724
-2003,1974,2013,0.133766034901227,0.133766034901227,-104.9354791,39.743724,-104.9354979,39.7449269
-2004,2013,2014,0.133581539638141,0.133581539638141,-104.9354979,39.7449269,-104.9355085,39.7461282
-2005,2014,2015,0.142379951799733,0.142379951799733,-104.9355085,39.7461282,-104.9354827,39.7474085
-2007,2016,2017,0.251899237124673,0.251899237124673,-104.9349971,39.720897,-104.9348905,39.7231609
-2008,2017,2018,0.133367826813466,0.133367826813466,-104.9348905,39.7231609,-104.9348857,39.7243603
-2009,2018,2019,0.10602884511386,0.10602884511386,-104.9348857,39.7243603,-104.9348743,39.7253138
-2010,2019,2020,0.0337181930055553,0.0337181930055553,-104.9348743,39.7253138,-104.9349199,39.725615
-2011,2020,2021,0.200388320757191,0.200388320757191,-104.9349199,39.725615,-104.9349346,39.7274171
-2014,2023,2024,0.171565352607288,0.171565352607288,-104.9350998,39.7162443,-104.935134,39.717787
-2016,2025,2026,0.0477258088803687,0.0477258088803687,-104.9916778,39.7726992,-104.9920812,39.772996
-2017,2026,2027,0.0809138557734271,0.0809138557734271,-104.9920812,39.772996,-104.9927506,39.7735106
-2018,2027,2028,0.105296432652635,0.105296432652635,-104.9927506,39.7735106,-104.9936175,39.7741835
-2021,2030,2031,0.0518714690593594,0.0518714690593594,-104.9806366,39.7642349,-104.981068,39.764563
-2023,2032,2033,0.10377665457529,0.10377665457529,-104.9767057,39.7612194,-104.9775611,39.7618817
-2024,2033,2034,0.105027724692891,0.105027724692891,-104.9775611,39.7618817,-104.9784268,39.762552
-2025,2034,2035,0.0547353150471903,0.0547353150471903,-104.9784268,39.762552,-104.978878,39.7629013
-2026,2035,2036,0.0513505470015755,0.0513505470015755,-104.978878,39.7629013,-104.9793013,39.763229
-2027,2036,2037,0.0518915831567366,0.0518915831567366,-104.9793013,39.763229,-104.979729,39.7635602
-2028,2038,2039,0.101144662033058,0.101144662033058,-104.9740667,39.759206,-104.9749143,39.7598407
-2029,2039,2040,0.00469012569566242,0.00469012569566242,-104.9749143,39.7598407,-104.9749522,39.7598712
-2030,2040,2041,0.105219334964384,0.105219334964384,-104.9749522,39.7598712,-104.9758158,39.7605455
-2032,2042,2043,0.0933903014689556,0.0933903014689556,-104.9829001,39.7659839,-104.983686,39.7665674
-2033,2043,559,0.0150758315973471,0.0150758315973471,-104.983686,39.7665674,-104.9838121,39.7666622
-2034,559,2044,0.0636386622186814,0.0636386622186814,-104.9838121,39.7666622,-104.9843229,39.7670786
-2035,2044,2045,0.0177005397698663,0.0177005397698663,-104.9843229,39.7670786,-104.984465,39.7671944
-2039,2048,1918,0.201578926546004,0.201578926546004,-104.9674823,39.7092837,-104.9674661,39.7074709
-2040,1918,2049,0.199006200917286,0.199006200917286,-104.9674661,39.7074709,-104.9675091,39.7056815
-2043,2051,70,0.203396158473628,0.203396158473628,-104.9674661,39.7020628,-104.9674891,39.7002337
-2045,1197,2052,0.0220081346494975,0.0220081346494975,-104.9528791,39.7271293,-104.9528751,39.7273272
-2046,2052,2053,0.200331631924477,0.200331631924477,-104.9528751,39.7273272,-104.9528876,39.7291288
-2047,2053,2054,0.154360922478377,0.154360922478377,-104.9528876,39.7291288,-104.9528899,39.730517
-2048,2054,948,0.176666608936966,0.176666608936966,-104.9528899,39.730517,-104.9528876,39.7321058
-2049,948,2055,0.165719712872644,0.165719712872644,-104.9528876,39.7321058,-104.9529569,39.7335952
-2050,2055,2056,0.169383792792816,0.169383792792816,-104.9529569,39.7335952,-104.9529894,39.7351183
-2052,2057,2058,0.174576187564815,0.174576187564815,-104.9534081,39.7194172,-104.9534054,39.7209872
-2053,2058,2059,0.172745648066703,0.172745648066703,-104.9534054,39.7209872,-104.9534197,39.7225407
-2054,2059,2060,0.176912657229173,0.176912657229173,-104.9534197,39.7225407,-104.9534111,39.7241317
-2055,2060,2061,0.164650081589568,0.164650081589568,-104.9534111,39.7241317,-104.9534241,39.7256124
-2057,2062,746,0.0627806188777907,0.0627806188777907,-104.9530057,39.7758303,-104.9530366,39.7763944
-2059,1564,2063,0.138541795103745,0.138541795103745,-104.9530639,39.7776762,-104.953021,39.7789217
-2060,2063,2064,0.12093608528602,0.12093608528602,-104.953021,39.7789217,-104.953025,39.7800093
-2062,2065,693,0.201596255528806,0.201596255528806,-104.9536131,39.740176,-104.9535885,39.7419889
-2063,693,2066,0.202309385780635,0.202309385780635,-104.9535885,39.7419889,-104.9535799,39.7438083
-2065,2067,2068,0.201208296937256,0.201208296937256,-104.9529898,39.7383752,-104.9529821,39.7401847
-2069,2072,2073,0.141581011374908,0.141581011374908,-104.9530584,39.7738703,-104.9530756,39.7751435
-2072,2075,2076,0.13960716604907,0.13960716604907,-104.9536922,39.7557183,-104.9536836,39.7569738
-2073,2076,2077,0.137352432815083,0.137352432815083,-104.9536836,39.7569738,-104.9536594,39.7582089
-2074,2077,2078,0.139172335676639,0.139172335676639,-104.9536594,39.7582089,-104.953654,39.7594605
-2075,2078,2079,0.137570556837278,0.137570556837278,-104.953654,39.7594605,-104.9536567,39.7606977
-2077,2080,2081,0.124260733003778,0.124260733003778,-104.9536567,39.7607265,-104.953653,39.761844
-2078,2081,2082,0.0143334567754311,0.0143334567754311,-104.953653,39.761844,-104.9536517,39.7619729
-2079,2082,1169,0.140817691182502,0.140817691182502,-104.9536517,39.7619729,-104.9536476,39.7632393
-2080,1169,889,0.136202795453782,0.136202795453782,-104.9536476,39.7632393,-104.9536454,39.7644642
-2081,889,2083,0.140272589797925,0.140272589797925,-104.9536454,39.7644642,-104.9536427,39.7657257
-2082,2083,2084,0.132655733622477,0.132655733622477,-104.9536427,39.7657257,-104.9536401,39.7669187
-2084,2085,2086,0.130758013034065,0.130758013034065,-104.9536649,39.7681113,-104.953735,39.769286
-2085,1055,2087,0.365531347335866,0.365531347335866,-104.9529111,39.7804333,-104.9530315,39.7837193
-2086,2087,2088,0.13568199350655,0.13568199350655,-104.9530315,39.7837193,-104.95304,39.7849395
-2087,2088,2089,0.14074386927803,0.14074386927803,-104.95304,39.7849395,-104.9530155,39.7862051
-2088,2089,2090,0.132744503428598,0.132744503428598,-104.9530155,39.7862051,-104.9530155,39.7873989
-2090,2091,2092,0.0599168224199403,0.0599168224199403,-105.0431866,39.707344,-105.043887,39.707348
-2091,2093,1220,0.0866154902836551,0.0866154902836551,-105.011346,39.7361182,-105.0123588,39.736105
-2093,2095,2096,0.243872573445978,0.243872573445978,-104.9269316,39.7209784,-104.9271953,39.7231622
-2094,2096,2097,0.241082179338788,0.241082179338788,-104.9271953,39.7231622,-104.9271898,39.7253303
-2096,2098,2099,0.174814701889178,0.174814701889178,-104.9269736,39.7162529,-104.9269579,39.717825
-2097,2099,2100,0.175154975379932,0.175154975379932,-104.9269579,39.717825,-104.9269638,39.7194002
-2100,2102,2103,0.114419579517541,0.114419579517541,-104.9269671,39.7801311,-104.9269671,39.7811601
-2101,2103,2104,0.285214999643623,0.285214999643623,-104.9269671,39.7811601,-104.9269661,39.7837251
-2102,2104,2107,0.394315301182406,0.394315301182406,-104.9269661,39.7837251,-104.9273336,39.78726
-2104,333,2108,0.278529398579064,0.278529398579064,-104.9270337,39.7763519,-104.9269854,39.7788565
-2106,1150,1822,0.102734424254821,0.102734424254821,-104.9269717,39.7637905,-104.9269459,39.7647142
-2108,2109,2110,0.202389435684367,0.202389435684367,-104.9269682,39.7655992,-104.927006,39.7674191
-2109,2110,2111,0.203214045748693,0.203214045748693,-104.927006,39.7674191,-104.9269888,39.7692466
-2110,2111,2112,0.241815761631872,0.241815761631872,-104.9269888,39.7692466,-104.9269856,39.7714213
-2111,2112,2113,0.100823640639482,0.100823640639482,-104.9269856,39.7714213,-104.926995,39.772328
-2112,2113,2114,0.00265953685516916,0.00265953685516916,-104.926995,39.772328,-104.9269938,39.7723519
-2114,2115,2116,0.238307263458502,0.238307263458502,-104.9270004,39.7731311,-104.9269816,39.7752742
-2116,2117,2118,0.172019623051487,0.172019623051487,-104.9268915,39.7292726,-104.9268844,39.7308196
-2117,2118,2119,0.0267252812490126,0.0267252812490126,-104.9268844,39.7308196,-104.9268735,39.7310598
-2118,2119,2120,0.200138632498134,0.200138632498134,-104.9268735,39.7310598,-104.9268969,39.7328596
-2119,2120,2121,0.20340922729078,0.20340922729078,-104.9268969,39.7328596,-104.9268925,39.7346889
-2120,2121,2122,0.197749465935997,0.197749465935997,-104.9268925,39.7346889,-104.9268972,39.7364673
-2121,2122,2123,0.20148284791492,0.20148284791492,-104.9268972,39.7364673,-104.9269303,39.7382791
-2122,2123,2124,0.206967663578278,0.206967663578278,-104.9269303,39.7382791,-104.9269046,39.7401403
-2123,2124,688,0.198127359399408,0.198127359399408,-104.9269046,39.7401403,-104.926901,39.7419221
-2124,688,1981,0.162008033573987,0.162008033573987,-104.926901,39.7419221,-104.926882,39.743379
-2127,2127,2128,0.0963587083366664,0.0963587083366664,-104.9275873,39.7620069,-104.9275725,39.7628734
-2128,2128,1149,0.101309363144821,0.101309363144821,-104.9275725,39.7628734,-104.9276154,39.7637839
-2130,2129,2130,0.268413747321973,0.268413747321973,-104.9271924,39.7256294,-104.9271876,39.7280433
-15791,2106,2131,0.0329007751166605,0.0329007751166605,-105.0232102,39.7379438,-105.0228299,39.7378988
-2131,2130,2132,0.135315648859656,0.135315648859656,-104.9271876,39.7280433,-104.9271973,39.7292602
-2133,2133,2134,0.206936888424913,0.206936888424913,-104.9269818,39.7474065,-104.9269439,39.7492673
-2134,2134,2135,0.199680286737687,0.199680286737687,-104.9269439,39.7492673,-104.9270076,39.7510624
-2135,2135,801,0.201106069676904,0.201106069676904,-104.9270076,39.7510624,-104.9269475,39.7528704
-2136,801,2136,0.201743876713814,0.201743876713814,-104.9269475,39.7528704,-104.9269602,39.7546847
-2137,2136,2137,0.208870260631958,0.208870260631958,-104.9269602,39.7546847,-104.9269972,39.7565629
-2138,2137,2138,0.202159360168084,0.202159360168084,-104.9269972,39.7565629,-104.9269287,39.7583802
-2139,2138,2139,0.199627649413879,0.199627649413879,-104.9269287,39.7583802,-104.9269888,39.7601749
-2140,2139,2140,0.186052011799078,0.186052011799078,-104.9269888,39.7601749,-104.9269946,39.7618481
-2142,2141,2142,0.0396569310433899,0.0396569310433899,-105.0086114,39.7398829,-105.008237,39.7400934
-2168,2167,2168,0.189234637777307,0.189234637777307,-105.014692,39.7839198,-105.0147047,39.7856216
-2143,2142,2143,0.0683760552809121,0.0683760552809121,-105.008237,39.7400934,-105.0077357,39.7405725
-2144,2143,2144,0.00806043179372478,0.00806043179372478,-105.0077357,39.7405725,-105.00765,39.7406027
-2145,2144,2145,0.00436074705638217,0.00436074705638217,-105.00765,39.7406027,-105.0076051,39.7406213
-2146,2145,2146,0.00359181344508779,0.00359181344508779,-105.0076051,39.7406213,-105.0075693,39.7406382
-2147,2146,2147,0.00395340009925433,0.00395340009925433,-105.0075693,39.7406382,-105.0075292,39.7406559
-2148,2147,2148,0.136610372293043,0.136610372293043,-105.0075292,39.7406559,-105.0061384,39.7412606
-2149,2148,2149,0.180604844053974,0.180604844053974,-105.0061384,39.7412606,-105.0043355,39.7421069
-2152,2152,2153,0.132023781927159,0.132023781927159,-105.0142702,39.7777735,-105.0142616,39.7789608
-2153,2153,2154,0.135708940609739,0.135708940609739,-105.0142616,39.7789608,-105.0142359,39.7801811
-2154,2154,1415,0.130555983926377,0.130555983926377,-105.0142359,39.7801811,-105.0142444,39.7813552
-2155,1415,1355,0.134241500709378,0.134241500709378,-105.0142444,39.7813552,-105.0142702,39.7825623
-2156,1355,2155,0.0746101236889861,0.0746101236889861,-105.0142702,39.7825623,-105.0142907,39.7832331
-2161,2159,2161,0.133841125283574,0.133841125283574,-105.0144598,39.7572068,-105.0144855,39.7584103
-2162,2161,2162,0.1372260849468,0.1372260849468,-105.0144855,39.7584103,-105.0144815,39.7596444
-2163,2162,2163,0.128741940100472,0.128741940100472,-105.0144815,39.7596444,-105.0144855,39.7608022
-2164,2163,2164,0.135391700615332,0.135391700615332,-105.0144855,39.7608022,-105.0144802,39.7620198
-2169,2168,2169,0.201124079513876,0.201124079513876,-105.0147047,39.7856216,-105.0146868,39.7874303
-2170,2169,2170,0.108103708021473,0.108103708021473,-105.0146868,39.7874303,-105.0146867,39.7884025
-2172,2172,2173,0.13444261016809,0.13444261016809,-105.0146807,39.7692764,-105.0146978,39.7704854
-2173,2173,2174,0.13827137965728,0.13827137965728,-105.0146978,39.7704854,-105.0146935,39.7717289
-2174,2174,2175,0.134068324786893,0.134068324786893,-105.0146935,39.7717289,-105.0146888,39.7729346
-2175,2175,2176,0.133067365005956,0.133067365005956,-105.0146888,39.7729346,-105.014685,39.7741313
-2176,2176,2177,0.135535927176987,0.135535927176987,-105.014685,39.7741313,-105.014681,39.7753502
-2177,2177,2178,0.134471884610529,0.134471884610529,-105.014681,39.7753502,-105.01465,39.7765593
-2180,2180,2181,0.201420608111328,0.201420608111328,-105.0141827,39.72025,-105.0141719,39.7220614
-2182,2182,2183,0.0166632573599522,0.0166632573599522,-105.0158823,39.7291678,-105.0159426,39.7293103
-2183,2183,2184,0.101864448677803,0.101864448677803,-105.0159426,39.7293103,-105.0163101,39.7301817
-2184,2184,2185,0.047789206759145,0.047789206759145,-105.0163101,39.7301817,-105.0164339,39.7306008
-2185,2185,2186,0.0423227378750124,0.0423227378750124,-105.0164339,39.7306008,-105.0164597,39.7309809
-4423,3782,4133,0.154572357311794,0.154572357311794,-104.9505822,39.7291315,-104.9505787,39.7305216
-2186,2186,2187,0.66062410841751,0.66062410841751,-105.0164597,39.7309809,-105.0159723,39.7369102
-2188,2188,1945,0.10637947146537,0.10637947146537,-105.0159468,39.7375377,-105.0159294,39.7384943
-2189,1945,2189,0.148995294788127,0.148995294788127,-105.0159294,39.7384943,-105.0159036,39.7398341
-2211,2212,2213,0.0467155303221573,0.0467155303221573,-104.9792376,39.7337065,-104.9786913,39.7337086
-2190,2189,2190,0.327169136665339,0.327169136665339,-105.0159036,39.7398341,-105.0139689,39.7423726
-2192,2191,2192,0.0188299118027414,0.0188299118027414,-104.9936227,39.759356,-104.9937863,39.7592426
-2193,2192,2193,0.210910851782462,0.210910851782462,-104.9937863,39.7592426,-104.9954278,39.7578265
-2195,2194,2195,0.365278744815015,0.365278744815015,-104.999248,39.7553456,-105.0025939,39.7533024
-2196,2195,2196,0.0130424738912125,0.0130424738912125,-105.0025939,39.7533024,-105.0026791,39.7532051
-2197,2196,2197,0.0449464311286017,0.0449464311286017,-105.0026791,39.7532051,-105.0028674,39.7528277
-2198,2197,2198,0.0030293307914236,0.0030293307914236,-105.0028674,39.7528277,-105.0028654,39.7528005
-2199,2198,2199,0.128682754082238,0.128682754082238,-105.0028654,39.7528005,-105.0029976,39.7516477
-2200,2199,2200,0.110573702095649,0.110573702095649,-105.0029976,39.7516477,-105.0039004,39.7509356
-2202,2203,2204,0.10817464433389,0.10817464433389,-104.9873753,39.7338548,-104.9861103,39.7338618
-2203,2204,2205,0.107622599984834,0.107622599984834,-104.9861103,39.7338618,-104.9848518,39.7338511
-2204,2205,2206,0.108403921870099,0.108403921870099,-104.9848518,39.7338511,-104.9835843,39.7338332
-2205,2206,2207,0.060733439657354,0.060733439657354,-104.9835843,39.7338332,-104.9828811,39.7337565
-2206,2207,2208,0.0534350684854931,0.0534350684854931,-104.9828811,39.7337565,-104.9822597,39.7337058
-2207,2208,2209,0.0529414575701877,0.0529414575701877,-104.9822597,39.7337058,-104.9816406,39.7337091
-2208,2209,2210,0.0527447832774698,0.0527447832774698,-104.9816406,39.7337091,-104.9810238,39.7337124
-2209,2210,2211,0.102434337721347,0.102434337721347,-104.9810238,39.7337124,-104.9798259,39.7337112
-2210,2211,2212,0.0503091444283059,0.0503091444283059,-104.9798259,39.7337112,-104.9792376,39.7337065
-2212,2213,2214,0.0457845256573543,0.0457845256573543,-104.9786913,39.7337086,-104.9781559,39.7337051
-2213,2214,2215,0.0483154919494593,0.0483154919494593,-104.9781559,39.7337051,-104.9775909,39.7337085
-2214,2215,2216,0.0500256719211907,0.0500256719211907,-104.9775909,39.7337085,-104.9770059,39.7337051
-2215,2216,2217,0.0483324272045254,0.0483324272045254,-104.9770059,39.7337051,-104.9764407,39.7337019
-2216,2217,2218,0.0492693454756351,0.0492693454756351,-104.9764407,39.7337019,-104.9758646,39.7336949
-2217,2218,2219,0.0514417765088717,0.0514417765088717,-104.9758646,39.7336949,-104.9752631,39.7336875
-2218,2219,2220,0.0488786158333744,0.0488786158333744,-104.9752631,39.7336875,-104.9746915,39.7336888
-2219,2220,981,0.0498905437062621,0.0498905437062621,-104.9746915,39.7336888,-104.9741082,39.7336985
-2220,981,2221,0.0506165357374516,0.0506165357374516,-104.9741082,39.7336985,-104.9735163,39.7337028
-2221,2221,2222,0.046223636949906,0.046223636949906,-104.9735163,39.7337028,-104.9729758,39.7337087
-2224,2224,2225,0.051453756147013,0.051453756147013,-104.9718055,39.7337106,-104.9712038,39.7337071
-2225,2225,2226,0.0468957891600155,0.0468957891600155,-104.9712038,39.7337071,-104.9706554,39.733704
-2226,2226,2227,0.0492631927304953,0.0492631927304953,-104.9706554,39.733704,-104.9700793,39.733704
-2227,2227,2228,0.0520252151650071,0.0520252151650071,-104.9700793,39.733704,-104.9694709,39.733704
-2228,2228,2229,0.0550486617142997,0.0550486617142997,-104.9694709,39.733704,-104.9688272,39.7337106
-2229,2230,2231,0.0139385553943917,0.0139385553943917,-104.9407521,39.732834,-104.9405891,39.732834
-2230,2231,2232,0.0929550410270359,0.0929550410270359,-104.9405891,39.732834,-104.9395024,39.7328547
-2234,2236,2237,0.0961215858652653,0.0961215858652653,-104.9314966,39.732987,-104.9303867,39.7328502
-2235,2237,2238,0.0993231725885536,0.0993231725885536,-104.9303867,39.7328502,-104.9292252,39.7328524
-19654,10604,10606,0.0711515052063537,0.0711515052063537,-104.988215,39.7066518,-104.9882676,39.7060132
-2236,2238,2239,0.0986901078011995,0.0986901078011995,-104.9292252,39.7328524,-104.9280711,39.7328517
-2237,2239,2120,0.100412717366674,0.100412717366674,-104.9280711,39.7328517,-104.9268969,39.7328596
-2238,2120,2240,0.0994425769829808,0.0994425769829808,-104.9268969,39.7328596,-104.925734,39.7328596
-2239,2240,2241,0.0986741447066025,0.0986741447066025,-104.925734,39.7328596,-104.9245804,39.7328803
-2240,2241,2242,0.196986803845301,0.196986803845301,-104.9245804,39.7328803,-104.9222768,39.732882
-2241,2245,2246,0.0853554831080311,0.0853554831080311,-104.9644966,39.7334712,-104.9634985,39.733462
-2242,2246,1017,0.10642802452306,0.10642802452306,-104.9634985,39.733462,-104.9622539,39.733462
-2243,1017,2247,0.0517185594306615,0.0517185594306615,-104.9622539,39.733462,-104.9616491,39.7334649
-2244,2247,2248,0.0530774886579764,0.0530774886579764,-104.9616491,39.7334649,-104.9610284,39.7334665
-16655,3462,3463,0.083025520087948,0.083025520087948,-104.9862758,39.7399191,-104.9872468,39.7399233
-2245,2248,2249,0.0515725288155829,0.0515725288155829,-104.9610284,39.7334665,-104.9604253,39.7334648
-2246,2249,2250,0.0550106406637853,0.0550106406637853,-104.9604253,39.7334648,-104.959782,39.733462
-2247,2250,2251,0.0492291609495858,0.0492291609495858,-104.959782,39.733462,-104.9592063,39.733462
-2250,2253,2254,0.068064098421736,0.068064098421736,-105.0323128,39.7487906,-105.0323072,39.7481785
-2251,2254,381,0.0653278702953464,0.0653278702953464,-105.0323072,39.7481785,-105.0323033,39.747591
-2253,2255,2256,0.176933367276823,0.176933367276823,-105.0275483,39.7165547,-105.0275483,39.7181459
-2255,2257,1830,0.176665129086282,0.176665129086282,-105.0275587,39.7197559,-105.0275804,39.7213446
-2257,1817,2258,0.0851310356517557,0.0851310356517557,-105.02745,39.7281152,-105.0276461,39.7288658
-2258,2258,2259,0.0498677366751348,0.0498677366751348,-105.0276461,39.7288658,-105.0276357,39.7293142
-2260,2260,2261,0.20430957984894,0.20430957984894,-104.9305261,39.7655817,-104.930525,39.7674191
-2263,2263,2264,0.172785898975569,0.172785898975569,-104.9304775,39.7162632,-104.9304797,39.7178171
-2265,2265,2266,0.17364958356586,0.17364958356586,-104.9304912,39.7194002,-104.9304614,39.7209617
-2266,2266,2267,0.245119251352525,0.245119251352525,-104.9304614,39.7209617,-104.9305167,39.7231657
-2267,2267,2268,0.132589695523512,0.132589695523512,-104.9305167,39.7231657,-104.9305223,39.7243581
-2268,2268,2269,0.106738596174206,0.106738596174206,-104.9305223,39.7243581,-104.9305023,39.7253179
-2269,2269,2270,0.0337285830402062,0.0337285830402062,-104.9305023,39.7253179,-104.9305077,39.7256212
-20279,7555,7554,0.0146999916602211,0.0146999916602211,-105.0451391,39.7751943,-105.0451388,39.7750621
-2270,2270,2271,0.269363966522552,0.269363966522552,-104.9305077,39.7256212,-104.9305276,39.7280436
-2273,2275,684,0.204569111503518,0.204569111503518,-104.9309301,39.7401271,-104.930959,39.7419667
-2274,684,1986,0.157853726642528,0.157853726642528,-104.930959,39.7419667,-104.9309512,39.7433863
-2278,2278,2279,0.207434558661452,0.207434558661452,-104.9304788,39.7474019,-104.9304837,39.7492674
-2279,2279,2280,0.20034839537718,0.20034839537718,-104.9304837,39.7492674,-104.9305316,39.7510688
-2280,2280,798,0.19667070755531,0.19667070755531,-104.9305316,39.7510688,-104.9305352,39.7528375
-2281,798,2281,0.204476797355414,0.204476797355414,-104.9305352,39.7528375,-104.9305302,39.7546764
-2283,2282,2283,0.201226119347201,0.201226119347201,-104.9305543,39.7565508,-104.9305336,39.7583604
-2284,2283,2284,0.201775247020165,0.201775247020165,-104.9305336,39.7583604,-104.9305594,39.7601749
-2287,2286,2287,0.00679684653457476,0.00679684653457476,-105.0028141,39.740161,-105.0028286,39.7402211
-2288,2287,2288,0.00351717235619697,0.00351717235619697,-105.0028286,39.7402211,-105.0028395,39.7402516
-2289,2288,2289,0.00475072672267961,0.00475072672267961,-105.0028395,39.7402516,-105.0028564,39.7402923
-2290,2289,2290,0.085203263947135,0.085203263947135,-105.0028564,39.7402923,-105.0033485,39.7409586
-2292,2291,2292,0.21658567369152,0.21658567369152,-105.0192055,39.7355863,-105.0217377,39.7356319
-2293,2292,2293,0.294285406846423,0.294285406846423,-105.0217377,39.7356319,-105.025179,39.7356649
-2295,1532,2294,0.0895735364116296,0.0895735364116296,-104.9909417,39.7651848,-104.9899657,39.7654782
-2296,2294,2295,0.130472447344756,0.130472447344756,-104.9899657,39.7654782,-104.9885127,39.7658379
-2298,2044,560,0.0834414685220809,0.0834414685220809,-104.9843229,39.7670786,-104.9837994,39.767712
-2299,560,913,0.519257886958262,0.519257886958262,-104.9837994,39.767712,-104.9806193,39.771691
-2300,913,2297,0.14849143076931,0.14849143076931,-104.9806193,39.771691,-104.9797146,39.7728311
-2301,2297,2299,0.276635413291223,0.276635413291223,-104.9797146,39.7728311,-104.9780262,39.7749537
-2356,2345,2346,0.126022029068994,0.126022029068994,-104.9585534,39.7194149,-104.95708,39.7194068
-2302,2299,2300,0.882147486934507,0.882147486934507,-104.9780262,39.7749537,-104.9691692,39.7790284
-2304,2301,2302,0.171837385748798,0.171837385748798,-105.0067097,39.6957792,-105.0087181,39.6957726
-2305,2302,2303,0.168190952055295,0.168190952055295,-105.0087181,39.6957726,-105.0106836,39.695799
-2308,1995,1585,0.0793668846267203,0.0793668846267203,-105.0136437,39.6959725,-105.0145707,39.6959461
-2310,1646,2305,0.0800618116658591,0.0800618116658591,-105.0155663,39.6959857,-105.0165019,39.6959725
-2311,2305,2306,0.0800532572745142,0.0800532572745142,-105.0165019,39.6959725,-105.0174374,39.6959857
-2312,2306,2307,0.0808374839403145,0.0808374839403145,-105.0174374,39.6959857,-105.0183816,39.6959593
-2313,2307,2308,0.0793040216351705,0.0793040216351705,-105.0183816,39.6959593,-105.0193085,39.6959593
-2315,2309,2310,0.0976846110372701,0.0976846110372701,-105.0379252,39.6958338,-105.0390668,39.6958206
-2317,2311,2312,0.131380688058575,0.131380688058575,-105.0112958,39.7314875,-105.0128321,39.7314771
-2318,2312,2313,0.00313000089825153,0.00313000089825153,-105.0128321,39.7314771,-105.0128687,39.7314768
-2319,2313,2157,0.109122831884578,0.109122831884578,-105.0128687,39.7314768,-105.0141188,39.7312798
-2320,2157,2314,0.0470081550211631,0.0470081550211631,-105.0141188,39.7312798,-105.0146392,39.731416
-2321,2314,441,0.0450344666647882,0.0450344666647882,-105.0146392,39.731416,-105.01516,39.7314761
-2326,1614,2317,0.105832922283753,0.105832922283753,-104.9767564,39.7705977,-104.977649,39.7712574
-2327,2317,2319,0.101211119794553,0.101211119794553,-104.977649,39.7712574,-104.9784558,39.7719237
-2328,2319,914,0.105388128978222,0.105388128978222,-104.9784558,39.7719237,-104.9793447,39.7725806
-2351,2100,2341,0.101951720072048,0.101951720072048,-104.9269638,39.7194002,-104.9257718,39.7194039
-2352,2341,2342,0.101030261985598,0.101030261985598,-104.9257718,39.7194039,-104.9245907,39.7194177
-2353,2342,2330,0.0997965680595524,0.0997965680595524,-104.9245907,39.7194177,-104.9234239,39.7194218
-2354,2330,2343,0.101856778567858,0.101856778567858,-104.9234239,39.7194218,-104.922233,39.7194218
-2355,2344,2345,0.0735649917770033,0.0735649917770033,-104.9594135,39.719411,-104.9585534,39.7194149
-2357,2346,2347,0.106673075682264,0.106673075682264,-104.95708,39.7194068,-104.9558328,39.7194027
-2358,2347,2348,0.104262034499471,0.104262034499471,-104.9558328,39.7194027,-104.9546138,39.7194083
-2359,2348,2057,0.103127373430199,0.103127373430199,-104.9546138,39.7194083,-104.9534081,39.7194172
-2360,2057,2350,0.104860273903505,0.104860273903505,-104.9534081,39.7194172,-104.9521821,39.7194221
-2361,2350,2351,0.102072059078566,0.102072059078566,-104.9521821,39.7194221,-104.9509887,39.7194172
-2362,2351,2352,0.10208795508847,0.10208795508847,-104.9509887,39.7194172,-104.9497951,39.7194192
-2363,2352,2353,0.103003886322398,0.103003886322398,-104.9497951,39.7194192,-104.9485908,39.7194151
-2364,2353,2354,0.104842753763622,0.104842753763622,-104.9485908,39.7194151,-104.947365,39.719411
-2365,2354,2355,0.102079170592138,0.102079170592138,-104.947365,39.719411,-104.9461715,39.719411
-2366,2355,2356,0.104157794922069,0.104157794922069,-104.9461715,39.719411,-104.9449537,39.7194089
-2367,2356,2357,0.102771960719463,0.102771960719463,-104.9449537,39.7194089,-104.9437521,39.7194089
-2368,2357,843,0.10323381873133,0.10323381873133,-104.9437521,39.7194089,-104.9425451,39.7194089
-2369,843,2358,0.104166303367793,0.104166303367793,-104.9425451,39.7194089,-104.9413272,39.719407
-2370,2358,2359,0.04678514768012,0.04678514768012,-104.9413272,39.719407,-104.9407802,39.7194048
-2372,2360,2361,0.106536201799638,0.106536201799638,-104.9874759,39.7193464,-104.9862305,39.719364
-2373,2361,2362,0.0524641553188961,0.0524641553188961,-104.9862305,39.719364,-104.9856171,39.719362
-2374,2362,2363,0.0542089866141956,0.0542089866141956,-104.9856171,39.719362,-104.9849833,39.7193599
-2376,964,2364,0.101990510698998,0.101990510698998,-104.9838008,39.7193434,-104.9826087,39.7193208
-2377,2364,2365,0.0991028819964669,0.0991028819964669,-104.9826087,39.7193208,-104.98145,39.7193208
-2378,2365,2366,0.101583146356588,0.101583146356588,-104.98145,39.7193208,-104.9802624,39.7193326
-2379,2366,2367,0.0976663347579885,0.0976663347579885,-104.9802624,39.7193326,-104.9791205,39.719335
-2380,2367,2368,0.137463391512845,0.137463391512845,-104.9791205,39.719335,-104.9775163,39.7194106
-2382,2369,2370,0.0935927888835794,0.0935927888835794,-104.9971141,39.7584573,-104.9971148,39.759299
-2383,2370,2371,0.22137940675351,0.22137940675351,-104.9971148,39.759299,-104.9971055,39.7612899
-2384,93,2372,0.144113051799641,0.144113051799641,-104.9560723,39.7002187,-104.9555234,39.6989934
-2386,2373,2374,0.118928753039855,0.118928753039855,-104.9553043,39.709946,-104.954137,39.710527
-18871,9233,10374,0.171083495652578,0.171083495652578,-104.9861692,39.7001048,-104.9849567,39.6988813
-2387,2374,2375,0.0543464584708682,0.0543464584708682,-104.954137,39.710527,-104.9535019,39.7105138
-2389,2378,2379,0.0407086995566738,0.0407086995566738,-104.9510557,39.7104412,-104.9506866,39.7102101
-2392,2381,2382,0.0375038196347678,0.0375038196347678,-104.9519054,39.7105204,-104.9518797,39.7101837
-2393,2383,2384,0.0259773773232023,0.0259773773232023,-104.9506695,39.7101903,-104.9508926,39.7100318
-2416,2406,2407,0.0997923351013975,0.0997923351013975,-105.0357948,39.7530206,-105.0369621,39.753014
-2417,2407,2408,0.102411248163046,0.102411248163046,-105.0369621,39.753014,-105.03816,39.7530043
-2418,2408,2410,0.102005785733823,0.102005785733823,-105.03816,39.7530043,-105.0393531,39.7530175
-2419,2410,2411,0.0465568279250156,0.0465568279250156,-105.0393531,39.7530175,-105.0398977,39.753016
-2420,2411,1116,0.0498480806250605,0.0498480806250605,-105.0398977,39.753016,-105.0404808,39.7530145
-2421,1116,2412,0.0524212085974951,0.0524212085974951,-105.0404808,39.7530145,-105.041094,39.7530159
-2422,2412,2413,0.00643722349691115,0.00643722349691115,-105.041094,39.7530159,-105.0411693,39.753016
-2423,2413,2414,0.0569639986120168,0.0569639986120168,-105.0411693,39.753016,-105.0416538,39.7526643
-2424,2414,2415,0.054429107165009,0.054429107165009,-105.0416538,39.7526643,-105.0422764,39.7527667
-2426,1254,2416,0.203595366987771,0.203595366987771,-105.0205077,39.7711338,-105.0228899,39.7711377
-2427,2416,2418,0.194946286421225,0.194946286421225,-105.0228899,39.7711377,-105.0251709,39.7711415
-2429,2419,2420,0.10553685574305,0.10553685574305,-104.9960628,39.7705047,-104.9948281,39.7704903
-2430,2420,2421,0.100987191369147,0.100987191369147,-104.9948281,39.7704903,-104.9936465,39.7704869
-2431,2421,2422,0.140456845404627,0.140456845404627,-104.9936465,39.7704869,-104.9920897,39.7708916
-2432,2423,2424,0.132127040761259,0.132127040761259,-105.0299558,39.7706272,-105.0315008,39.7706692
-2433,2424,2425,0.0836330996531634,0.0836330996531634,-105.0315008,39.7706692,-105.0324788,39.7706946
-2434,2425,2426,0.048846065804279,0.048846065804279,-105.0324788,39.7706946,-105.03305,39.7707095
-2435,2426,2427,0.133578105271454,0.133578105271454,-105.03305,39.7707095,-105.0346118,39.7707555
-2437,2428,2429,0.0517867804859422,0.0517867804859422,-105.0346033,39.7713295,-105.0352091,39.7713194
-2438,2429,2430,0.0498462274807045,0.0498462274807045,-105.0352091,39.7713194,-105.0357922,39.7713097
-2439,2430,2431,0.0505796838521555,0.0505796838521555,-105.0357922,39.7713097,-105.0363839,39.7713006
-2440,2431,2432,0.04930585188023,0.04930585188023,-105.0363839,39.7713006,-105.0369607,39.7712918
-2441,2432,2433,0.0511391992663707,0.0511391992663707,-105.0369607,39.7712918,-105.0375589,39.771281
-2442,2433,2434,0.049421053488602,0.049421053488602,-105.0375589,39.771281,-105.038137,39.7712705
-2444,2435,2436,0.0499548965774192,0.0499548965774192,-105.0387198,39.7712682,-105.0393043,39.7712659
-2446,2437,2438,0.0498278119665032,0.0498278119665032,-105.0393174,39.7709233,-105.0399004,39.7709268
-2447,2438,1131,0.0475201423687532,0.0475201423687532,-105.0399004,39.7709268,-105.0404564,39.7709301
-2448,1131,2440,0.0499034161165238,0.0499034161165238,-105.0404564,39.7709301,-105.0410403,39.7709314
-2449,2440,2441,0.0519460604074748,0.0519460604074748,-105.0410403,39.7709314,-105.0416481,39.7709328
-2450,2441,2442,0.103666385736129,0.103666385736129,-105.0416481,39.7709328,-105.042861,39.7709424
-2451,2442,2443,0.0495636449318867,0.0495636449318867,-105.042861,39.7709424,-105.0434409,39.7709381
-2452,2443,2444,0.0508868110117968,0.0508868110117968,-105.0434409,39.7709381,-105.0440363,39.7709406
-2454,2445,2446,0.0992414144632343,0.0992414144632343,-104.9982447,39.770496,-104.9994058,39.7705066
-2455,2446,2447,0.0995661619141735,0.0995661619141735,-104.9994058,39.7705066,-105.0005707,39.770496
-2456,2447,2448,0.102918667647187,0.102918667647187,-105.0005707,39.770496,-105.0017747,39.7705132
-2457,2448,2449,0.103317708000917,0.103317708000917,-105.0017747,39.7705132,-105.0029835,39.7705237
-2458,2449,714,0.103614639817309,0.103614639817309,-105.0029835,39.7705237,-105.0041958,39.7705323
-2460,2450,2451,0.0843633084104915,0.0843633084104915,-105.0054661,39.7705389,-105.0064532,39.7705389
-2462,2452,2453,0.133209824518529,0.133209824518529,-105.0080496,39.7705191,-105.0096081,39.7705035
-2463,2453,2454,0.136026824487267,0.136026824487267,-105.0096081,39.7705035,-105.0111996,39.7705167
-2464,2454,1228,0.0997640460624544,0.0997640460624544,-105.0111996,39.7705167,-105.0123662,39.7704857
-2466,2455,2173,0.100670279604477,0.100670279604477,-105.0135199,39.7704859,-105.0146978,39.7704854
-2467,2173,2456,0.101681998391895,0.101681998391895,-105.0146978,39.7704854,-105.015887,39.7705129
-2468,2456,2457,0.135717601546705,0.135717601546705,-105.015887,39.7705129,-105.0174746,39.7704864
-2469,2457,2458,0.125216072912334,0.125216072912334,-105.0174746,39.7704864,-105.0189397,39.770486
-2470,2458,1253,0.13515574813911,0.13515574813911,-105.0189397,39.770486,-105.0205211,39.7704859
-2472,1811,2459,0.0528114155967436,0.0528114155967436,-105.0082177,39.7529013,-105.0078361,39.7532748
-2474,489,2460,0.0154146680516237,0.0154146680516237,-104.9407865,39.7473869,-104.9406062,39.7473869
-2475,2460,2461,0.0956622199995578,0.0956622199995578,-104.9406062,39.7473869,-104.9394874,39.7473999
-2476,2461,2462,0.050324686032827,0.050324686032827,-104.9394874,39.7473999,-104.9388988,39.7473953
-2477,2462,2463,0.0440541436649478,0.0440541436649478,-104.9388988,39.7473953,-104.9383838,39.7474085
-2478,2463,2464,0.09025955144498,0.09025955144498,-104.9383838,39.7474085,-104.9373281,39.7474151
-2479,2464,2465,0.00954118829962817,0.00954118829962817,-104.9373281,39.7474151,-104.9372165,39.7474151
-2480,2465,2466,0.0924623221003645,0.0924623221003645,-104.9372165,39.7474151,-104.936135,39.7474151
-2481,2466,2015,0.0557729059183765,0.0557729059183765,-104.936135,39.7474151,-104.9354827,39.7474085
-2483,1998,2467,0.0939242873690555,0.0939242873690555,-104.935045,39.7474085,-104.9339464,39.7474085
-2485,2468,2469,0.0807187230923558,0.0807187230923558,-104.9337661,39.7474085,-104.932822,39.7474019
-2486,2469,2470,0.0660886283093114,0.0660886283093114,-104.932822,39.7474019,-104.932049,39.7473981
-2487,2470,2471,0.0307524582434291,0.0307524582434291,-104.932049,39.7473981,-104.9316893,39.7473987
-2488,2471,2277,0.0631719504961159,0.0631719504961159,-104.9316893,39.7473987,-104.9309504,39.7473981
-2489,2277,2278,0.040321437937915,0.040321437937915,-104.9309504,39.7473981,-104.9304788,39.7474019
-2490,2278,2472,0.0579924273198359,0.0579924273198359,-104.9304788,39.7474019,-104.9298007,39.7473887
-2491,2472,2473,0.039564008523498,0.039564008523498,-104.9298007,39.7473887,-104.9293385,39.7474063
-2492,2473,2474,0.0566191459993118,0.0566191459993118,-104.9293385,39.7474063,-104.9286764,39.7473953
-2493,2474,2475,0.0461657995077916,0.0461657995077916,-104.9286764,39.7473953,-104.9281369,39.7474129
-2494,2475,2476,0.0573841993244499,0.0573841993244499,-104.9281369,39.7474129,-104.9274657,39.7474113
-2495,2476,2133,0.0413742441677564,0.0413742441677564,-104.9274657,39.7474113,-104.9269818,39.7474065
-2496,2133,2477,0.100557820130683,0.100557820130683,-104.9269818,39.7474065,-104.9258057,39.7474177
-2497,2477,2478,0.100232094382669,0.100232094382669,-104.9258057,39.7474177,-104.924634,39.747387
-2523,1412,1352,0.126262872161581,0.126262872161581,-105.0095538,39.781386,-105.0095743,39.7825214
-2498,2478,2479,3.80416722159948,3.80416722159948,-104.924634,39.747387,-104.880138,39.747428
-17380,5747,2721,0.292296181002999,0.292296181002999,-104.9676964,39.6930969,-104.9693989,39.6953759
-2500,2481,2482,0.133762433378551,0.133762433378551,-105.0095495,39.7794028,-105.0111147,39.7793892
-2502,2483,2484,0.132763004680832,0.132763004680832,-105.0111233,39.7789604,-105.0126768,39.7789736
-2503,2484,2153,0.135437121880425,0.135437121880425,-105.0126768,39.7789736,-105.0142616,39.7789608
-2506,2486,2487,0.0976687527368442,0.0976687527368442,-105.0170359,39.7789761,-105.0181786,39.7789934
-2507,2487,2488,0.100497620432408,0.100497620432408,-105.0181786,39.7789934,-105.0193545,39.7790066
-2508,2488,1263,0.0968234302487817,0.0968234302487817,-105.0193545,39.7790066,-105.0204874,39.7790198
-2510,2489,2490,0.129998303918767,0.129998303918767,-105.0252567,39.7790442,-105.0267778,39.7790603
-2511,2490,2491,0.131427328920895,0.131427328920895,-105.0267778,39.7790603,-105.0283152,39.7790924
-2512,2491,2492,0.134959393077107,0.134959393077107,-105.0283152,39.7790924,-105.0298945,39.7790924
-2513,2492,2493,0.13352181172892,0.13352181172892,-105.0298945,39.7790924,-105.0314566,39.7791188
-2514,2493,2494,0.134977098269894,0.134977098269894,-105.0314566,39.7791188,-105.0330359,39.7791385
-2515,2494,2495,0.133660770711518,0.133660770711518,-105.0330359,39.7791385,-105.0346,39.7791414
-2517,2496,1452,0.127643758305543,0.127643758305543,-105.0026756,39.7039481,-105.003594,39.7030434
-2519,2497,2498,0.181370133617083,0.181370133617083,-105.0102009,39.7838273,-105.0101988,39.7854584
-2521,2481,2499,0.0828768372746742,0.0828768372746742,-105.0095495,39.7794028,-105.0095409,39.7801481
-2522,2499,1412,0.137652613646732,0.137652613646732,-105.0095409,39.7801481,-105.0095538,39.781386
-2524,1352,2502,0.0676943813373141,0.0676943813373141,-105.0095743,39.7825214,-105.0095013,39.7831276
-2526,2503,2504,0.133817315449894,0.133817315449894,-105.010138,39.772934,-105.0100035,39.774133
-2527,2504,2505,0.135673996947998,0.135673996947998,-105.0100035,39.774133,-105.0100464,39.7753527
-2528,2505,2506,0.131966049224978,0.131966049224978,-105.0100464,39.7753527,-105.0099863,39.7765386
-2529,2506,2507,0.147529903316466,0.147529903316466,-105.0099863,39.7765386,-105.0105528,39.7777919
-2530,2507,2508,0.139391603159038,0.139391603159038,-105.0105528,39.7777919,-105.0105184,39.7790452
-16296,2509,2510,0.0284493842376544,0.0284493842376544,-104.9707856,39.6972952,-104.9709885,39.6970925
-2532,2511,2512,0.0269759988952267,0.0269759988952267,-105.0096048,39.7617977,-105.0096039,39.7620403
-2533,2512,2513,0.0303785309203703,0.0303785309203703,-105.0096039,39.7620403,-105.0096031,39.7623135
-2534,2513,2514,0.100988065805353,0.100988065805353,-105.0096031,39.7623135,-105.0096079,39.7632217
-2535,2514,2515,0.134258813820628,0.134258813820628,-105.0096079,39.7632217,-105.0095992,39.7644291
-2536,2515,2516,0.1356600895436,0.1356600895436,-105.0095992,39.7644291,-105.0096084,39.7656491
-2537,2516,2517,0.13329676442141,0.13329676442141,-105.0096084,39.7656491,-105.0096344,39.7668477
-2538,2517,1672,0.132852712666159,0.132852712666159,-105.0096344,39.7668477,-105.0096516,39.7680424
-2539,1672,2518,0.137264898504848,0.137264898504848,-105.0096516,39.7680424,-105.0096081,39.7692764
-2540,2518,2453,0.136447294484888,0.136447294484888,-105.0096081,39.7692764,-105.0096081,39.7705035
-2541,2453,2519,0.136891385699314,0.136891385699314,-105.0096081,39.7705035,-105.0097234,39.7717314
-2542,2519,2520,0.134024921907499,0.134024921907499,-105.0097234,39.7717314,-105.0096182,39.772934
-2544,2521,2522,0.0902887501429021,0.0902887501429021,-105.0101778,39.7862486,-105.0101932,39.7870605
-2545,2522,2523,0.0432770654501463,0.0432770654501463,-105.0101932,39.7870605,-105.0101932,39.7874497
-2546,2523,2524,0.0452800647802491,0.0452800647802491,-105.0101932,39.7874497,-105.0101975,39.7878569
-2547,2524,2525,0.0887962039212883,0.0887962039212883,-105.0101975,39.7878569,-105.0101844,39.7886554
-2549,2526,2527,0.14861247431244,0.14861247431244,-105.0103699,39.7355479,-105.0103656,39.7368844
-2550,2527,2528,0.177718576341635,0.177718576341635,-105.0103656,39.7368844,-105.010328,39.7384824
-2552,2529,2530,0.0550007858390758,0.0550007858390758,-105.0298418,39.737929,-105.0304849,39.7379392
-2553,2530,2531,0.0537231597686698,0.0537231597686698,-105.0304849,39.7379392,-105.0311131,39.7379476
-2557,254,1937,0.0763145446596447,0.0763145446596447,-105.0251543,39.7380028,-105.0260468,39.738001
-2562,2536,2537,0.0969383510155091,0.0969383510155091,-104.9938854,39.7870276,-104.994984,39.7872452
-2564,2523,2538,0.041595541767366,0.041595541767366,-105.0101932,39.7874497,-105.01068,39.7874523
-2565,2538,2539,0.0446801019224323,0.0446801019224323,-105.01068,39.7874523,-105.0112029,39.787455
-2567,2540,2541,0.0535606711091096,0.0535606711091096,-105.0345536,39.7874035,-105.0351796,39.7874285
-2568,2541,2542,0.0510376050613383,0.0510376050613383,-105.0351796,39.7874285,-105.0357769,39.7874319
-2569,2542,2543,0.048208042370787,0.048208042370787,-105.0357769,39.7874319,-105.0363411,39.7874312
-2570,2543,2544,0.0495068215823226,0.0495068215823226,-105.0363411,39.7874312,-105.0369205,39.7874304
-2571,2544,2545,0.0497291777137453,0.0497291777137453,-105.0369205,39.7874304,-105.0375025,39.7874319
-2572,2545,2546,0.0482680412228731,0.0482680412228731,-105.0375025,39.7874319,-105.0380674,39.7874333
-2573,2546,2547,0.0511986246623993,0.0511986246623993,-105.0380674,39.7874333,-105.0386666,39.7874341
-2574,2547,2548,0.0481311400848056,0.0481311400848056,-105.0386666,39.7874341,-105.0392299,39.7874348
-2575,2548,2549,0.05133533567668,0.05133533567668,-105.0392299,39.7874348,-105.0398307,39.787434
-2576,2549,1090,0.0473365047010202,0.0473365047010202,-105.0398307,39.787434,-105.0403847,39.7874333
-2578,2550,2551,0.0490112208554607,0.0490112208554607,-105.0409813,39.787434,-105.0415549,39.7874347
-2579,2551,2552,0.0504551815276218,0.0504551815276218,-105.0415549,39.7874347,-105.0421454,39.7874345
-2580,2552,2553,0.0492845875119232,0.0492845875119232,-105.0421454,39.7874345,-105.0427222,39.7874343
-2581,2553,2554,0.0515497460521136,0.0515497460521136,-105.0427222,39.7874343,-105.0433255,39.7874316
-2582,2554,2555,0.0526862102053863,0.0526862102053863,-105.0433255,39.7874316,-105.0439421,39.7874288
-2583,2555,2556,0.0982237295878,0.0982237295878,-105.0439421,39.7874288,-105.0450916,39.78742
-2584,2556,2557,0.264254691363992,0.264254691363992,-105.0450916,39.78742,-105.0481811,39.787528
-2585,1004,2558,0.099742520234474,0.099742520234474,-104.9875698,39.7873956,-104.9887371,39.787389
-2588,2560,1078,0.149639182772472,0.149639182772472,-105.0064215,39.7862585,-105.0081209,39.7865836
-2589,1078,2522,0.184839011544187,0.184839011544187,-105.0081209,39.7865836,-105.0101932,39.7870605
-2591,1484,2561,0.33893453481304,0.33893453481304,-104.99246,39.6948099,-104.9942282,39.6920823
-2592,2561,2562,0.36930331062994,0.36930331062994,-104.9942282,39.6920823,-104.9965885,39.6893017
-2594,2563,2295,0.235151876914131,0.235151876914131,-104.9865077,39.7643898,-104.9885127,39.7658379
-2596,2141,2564,0.0808696846181639,0.0808696846181639,-105.0086114,39.7398829,-105.0095126,39.7396622
-2628,2589,2590,0.046646895086832,0.046646895086832,-105.0367321,39.7229406,-105.0372775,39.7229371
-2597,2564,1224,0.24032404212478,0.24032404212478,-105.0095126,39.7396622,-105.0123175,39.7395238
-2600,2373,2567,0.1712601795962,0.1712601795962,-104.9553043,39.709946,-104.9536478,39.709081
-2601,2567,2568,0.00945648555666562,0.00945648555666562,-104.9536478,39.709081,-104.9535373,39.7090785
-2603,2565,2569,0.0807956808253844,0.0807956808253844,-104.9525578,39.7090414,-104.9516163,39.7090994
-2604,2569,2570,0.076951583144574,0.076951583144574,-104.9516163,39.7090994,-104.950721,39.7091668
-2605,2570,2571,0.0476131935554626,0.0476131935554626,-104.950721,39.7091668,-104.9505579,39.7095762
-2607,2572,2568,0.0312593605711727,0.0312593605711727,-104.9535019,39.7093583,-104.9535373,39.7090785
-2609,2569,2573,0.0486149705677772,0.0486149705677772,-104.9516163,39.7090994,-104.9516136,39.7095366
-2610,2570,2574,0.0674260333743846,0.0674260333743846,-104.950721,39.7091668,-104.949965,39.7089952
-2612,2567,2575,0.0505261001159507,0.0505261001159507,-104.9536478,39.709081,-104.953694,39.708628
-2615,2577,2578,0.10424034664628,0.10424034664628,-105.0288186,39.7229124,-105.0300374,39.722919
-2616,2578,2579,0.103512640883379,0.103512640883379,-105.0300374,39.722919,-105.0312476,39.7229322
-2617,2579,1398,0.105102630546257,0.105102630546257,-105.0312476,39.7229322,-105.0324765,39.7229279
-2618,1398,2580,0.0531367598624707,0.0531367598624707,-105.0324765,39.7229279,-105.0330978,39.7229268
-2619,2580,2581,0.0517085263170068,0.0517085263170068,-105.0330978,39.7229268,-105.0337024,39.7229256
-2620,2581,2582,0.0723991341895349,0.0723991341895349,-105.0337024,39.7229256,-105.0345489,39.7229308
-2621,2582,2583,0.0331676268132885,0.0331676268132885,-105.0345489,39.7229308,-105.0349367,39.7229332
-2622,2583,2584,0.0138525911142565,0.0138525911142565,-105.0349367,39.7229332,-105.0350986,39.7229295
-2623,2584,2585,0.037416228202987,0.037416228202987,-105.0350986,39.7229295,-105.035536,39.7229363
-2624,2585,2586,0.00994286750486891,0.00994286750486891,-105.035536,39.7229363,-105.0356522,39.7229391
-2625,2586,2587,0.040254104254433,0.040254104254433,-105.0356522,39.7229391,-105.0361228,39.7229454
-2629,2590,2591,0.00335375549834044,0.00335375549834044,-105.0372775,39.7229371,-105.0373167,39.7229363
-2630,2591,2592,0.0463774647105825,0.0463774647105825,-105.0373167,39.7229363,-105.0378588,39.7229259
-2631,2592,2593,0.00549997045042586,0.00549997045042586,-105.0378588,39.7229259,-105.0379231,39.7229267
-2632,2593,2594,0.0383542392436341,0.0383542392436341,-105.0379231,39.7229267,-105.0383715,39.7229322
-2634,2595,2596,0.0344869484873441,0.0344869484873441,-105.038507,39.7229353,-105.0389102,39.7229396
-2635,2596,2597,0.0176627396467139,0.0176627396467139,-105.0389102,39.7229396,-105.0391167,39.7229419
-2636,2597,2598,0.0280292044334563,0.0280292044334563,-105.0391167,39.7229419,-105.0394444,39.7229454
-2637,2598,2599,0.0242403080070769,0.0242403080070769,-105.0394444,39.7229454,-105.0397277,39.722952
-2638,2599,1569,0.0218944112855232,0.0218944112855232,-105.0397277,39.722952,-105.0399837,39.7229516
-2639,1569,2600,0.0286200762867591,0.0286200762867591,-105.0399837,39.7229516,-105.0403183,39.7229556
-2640,2600,1094,0.018347539243156,0.018347539243156,-105.0403183,39.7229556,-105.0405328,39.7229583
-2642,1110,2601,0.0142742072830798,0.0142742072830798,-105.0409158,39.7229588,-105.0410827,39.7229583
-2643,2601,2602,0.0369383896439539,0.0369383896439539,-105.0410827,39.7229583,-105.0415146,39.7229572
-2644,2602,2603,0.00917687822572764,0.00917687822572764,-105.0415146,39.7229572,-105.0416219,39.7229569
-2645,2603,2604,0.0430608643022986,0.0430608643022986,-105.0416219,39.7229569,-105.0421253,39.7229642
-2646,2604,2605,0.00238679099543715,0.00238679099543715,-105.0421253,39.7229642,-105.0421532,39.7229647
-2647,2605,2606,0.0472847267591164,0.0472847267591164,-105.0421532,39.7229647,-105.042706,39.7229718
-2648,2606,2607,0.0508445190476207,0.0508445190476207,-105.042706,39.7229718,-105.0433005,39.7229718
-2649,2607,2608,0.00234361810734104,0.00234361810734104,-105.0433005,39.7229718,-105.0433279,39.7229721
-2650,2608,2609,0.0517900277245267,0.0517900277245267,-105.0433279,39.7229721,-105.0439334,39.7229784
-2652,2610,2611,0.145180979465517,0.145180979465517,-104.9874808,39.7225308,-104.9891783,39.722537
-2674,2632,2634,0.599531015097949,0.599531015097949,-105.0450779,39.7221456,-105.0520873,39.7222126
-2675,2635,2181,0.0871692653780363,0.0871692653780363,-105.0131527,39.7220573,-105.0141719,39.7220614
-2676,2181,2638,0.0863959675292808,0.0863959675292808,-105.0141719,39.7220614,-105.015182,39.7220707
-2679,2640,2641,0.121944822987822,0.121944822987822,-104.9524652,39.7427196,-104.9524082,39.7438154
-2681,2642,2643,0.0194925006650245,0.0194925006650245,-104.9521739,39.7180386,-104.9521735,39.7182139
-2682,2643,2350,0.134347723988409,0.134347723988409,-104.9521735,39.7182139,-104.9521821,39.7194221
-2683,2350,2644,0.173564798460366,0.173564798460366,-104.9521821,39.7194221,-104.9521876,39.720983
-2684,2644,2645,0.174686152075606,0.174686152075606,-104.9521876,39.720983,-104.9522095,39.7225539
-2685,2645,2646,0.175389969986131,0.175389969986131,-104.9522095,39.7225539,-104.9522198,39.7241312
-2688,2648,747,0.0612580153194998,0.0612580153194998,-104.9519414,39.7758435,-104.9519449,39.7763944
-2689,747,1565,0.142756107755667,0.142756107755667,-104.9519449,39.7763944,-104.9519323,39.7776782
-2690,1565,2649,0.138016127389502,0.138016127389502,-104.9519323,39.7776782,-104.9519262,39.7789194
-2691,2649,2650,0.12023627946696,0.12023627946696,-104.9519262,39.7789194,-104.9519199,39.7800007
-2693,2651,694,0.200802439501944,0.200802439501944,-104.952446,39.7401771,-104.9524269,39.7419829
-2695,2652,2653,0.127019992895419,0.127019992895419,-104.951864,39.7807829,-104.9518556,39.7819252
-2696,2653,2654,0.201028199806741,0.201028199806741,-104.9518556,39.7819252,-104.9519157,39.7837325
-2697,2654,2655,0.134212276460076,0.134212276460076,-104.9519157,39.7837325,-104.9519157,39.7849395
-2698,2655,2656,0.140083368586782,0.140083368586782,-104.9519157,39.7849395,-104.9519157,39.7861993
-2699,2656,2657,0.13046105136647,0.13046105136647,-104.9519157,39.7861993,-104.9518997,39.7873725
-2702,2633,2659,0.199675824720705,0.199675824720705,-104.9517199,39.7273329,-104.9517329,39.7291286
-2704,2660,949,0.174693421852154,0.174693421852154,-104.9517031,39.7305282,-104.9517203,39.7320992
-2705,949,2661,0.165148304595761,0.165148304595761,-104.9517203,39.7320992,-104.9517288,39.7335844
-2706,2661,2662,0.173966950291824,0.173966950291824,-104.9517288,39.7335844,-104.9516945,39.7351487
-2707,2662,2663,0.184218102738583,0.184218102738583,-104.9516945,39.7351487,-104.9516859,39.7368054
-2708,2663,2664,0.172496811774092,0.172496811774092,-104.9516859,39.7368054,-104.9516835,39.7383567
-2710,2665,2666,0.394651095737645,0.394651095737645,-104.9523031,39.7873791,-104.9522001,39.7909274
-2711,2667,2668,0.201414903082426,0.201414903082426,-104.9517882,39.7383629,-104.9518287,39.740174
-17301,8745,4260,0.201420130125937,0.201420130125937,-104.9622978,39.6947699,-104.9623073,39.6965813
-2713,2669,2388,0.109456559825348,0.109456559825348,-104.9519288,39.7728936,-104.9519586,39.7738777
-2714,2388,2670,0.140828374595316,0.140828374595316,-104.9519586,39.7738777,-104.9519586,39.7751442
-2717,2672,2673,0.139177577172101,0.139177577172101,-104.9524477,39.7557162,-104.9524149,39.7569676
-2718,2673,2674,0.137352749762486,0.137352749762486,-104.9524149,39.7569676,-104.9524283,39.7582028
-2719,2674,2675,0.139830667816654,0.139830667816654,-104.9524283,39.7582028,-104.9524391,39.7594603
-2720,2675,2676,0.136669684605715,0.136669684605715,-104.9524391,39.7594603,-104.9524392,39.7606894
-2722,2677,2678,0.12447911414286,0.12447911414286,-104.9524392,39.7607246,-104.9524232,39.761844
-2750,2704,2705,0.0292446267270126,0.0292446267270126,-105.0229197,39.7608329,-105.022918,39.7610959
-2751,2705,2706,0.00658282845173238,0.00658282845173238,-105.022918,39.7610959,-105.0229176,39.7611551
-2752,2706,2707,0.0151449443945988,0.0151449443945988,-105.0229176,39.7611551,-105.0229167,39.7612913
-2753,2707,2708,0.0714770438658631,0.0714770438658631,-105.0229167,39.7612913,-105.0229124,39.7619341
-2754,2708,2709,0.00822853556213401,0.00822853556213401,-105.0229124,39.7619341,-105.0229119,39.7620081
-2756,2710,8,0.130042568169854,0.130042568169854,-105.0236301,39.7451745,-105.0236282,39.746344
-2757,8,2711,0.118166571537094,0.118166571537094,-105.0236282,39.746344,-105.0233999,39.7473921
-2759,2712,2713,0.102388493919056,0.102388493919056,-105.0228947,39.7692896,-105.0228923,39.7702104
-2760,2713,2416,0.103111259495513,0.103111259495513,-105.0228923,39.7702104,-105.0228899,39.7711377
-2761,2416,2714,0.100631617654013,0.100631617654013,-105.0228899,39.7711377,-105.0228875,39.7720427
-2764,2716,2717,0.200655449563851,0.200655449563851,-105.0239484,39.7766282,-105.0239636,39.7784327
-2765,2717,2718,0.200753725915124,0.200753725915124,-105.0239636,39.7784327,-105.0239521,39.7802381
-2766,2718,1440,0.196942260224429,0.196942260224429,-105.0239521,39.7802381,-105.0239358,39.7820092
-2767,1440,2719,0.00947384243402213,0.00947384243402213,-105.0239358,39.7820092,-105.0239361,39.7820944
-2768,2719,2720,0.190389032049707,0.190389032049707,-105.0239361,39.7820944,-105.0239436,39.7838066
-2770,2723,2724,0.133138466543617,0.133138466543617,-105.0235985,39.7620059,-105.0236117,39.7632032
-2771,2724,2725,0.135835722389097,0.135835722389097,-105.0236117,39.7632032,-105.0236117,39.7644248
-2772,2725,2726,0.133534041022806,0.133534041022806,-105.0236117,39.7644248,-105.0236131,39.7656257
-2773,2726,2727,0.134234713813183,0.134234713813183,-105.0236131,39.7656257,-105.0236104,39.7668329
-2774,2727,1681,0.134687505819062,0.134687505819062,-105.0236104,39.7668329,-105.0236278,39.7680441
-2775,1681,2728,0.137316317225174,0.137316317225174,-105.0236278,39.7680441,-105.0236198,39.769279
-2777,2729,2730,0.104120921025978,0.104120921025978,-105.0239366,39.7846851,-105.0239665,39.7856212
-2778,2730,2731,0.201486044854047,0.201486044854047,-105.0239665,39.7856212,-105.0239597,39.7874332
-2779,2731,2732,0.409054627036075,0.409054627036075,-105.0239597,39.7874332,-105.0239453,39.7911119
-2780,2733,2734,0.231399786377778,0.231399786377778,-104.9558149,39.7017594,-104.9558008,39.7038404
-2781,2734,2735,0.0901704059113055,0.0901704059113055,-104.9558008,39.7038404,-104.9558537,39.7046503
-2782,2735,2736,0.0825094909725568,0.0825094909725568,-104.9558537,39.7046503,-104.9563257,39.7052974
-2783,2737,2738,0.200363396709187,0.200363396709187,-104.9558324,39.6983924,-104.9558241,39.6965905
-2784,2738,2739,0.20121833925615,0.20121833925615,-104.9558241,39.6965905,-104.9558241,39.6947809
-2785,2739,2740,0.202399438971847,0.202399438971847,-104.9558241,39.6947809,-104.9558357,39.6929607
-2788,2742,2743,0.404396545451488,0.404396545451488,-104.9558447,39.6893365,-104.9558624,39.6856997
-2789,2744,1762,0.0647074290459755,0.0647074290459755,-104.9541587,39.6999377,-104.9546893,39.699523
-2790,1762,2372,0.0925216625359094,0.0925216625359094,-104.9546893,39.699523,-104.9555234,39.6989934
-2791,2372,2745,0.0223137340397398,0.0223137340397398,-104.9555234,39.6989934,-104.9556601,39.6988225
-2792,2745,2737,0.050045237249892,0.050045237249892,-104.9556601,39.6988225,-104.9558324,39.6983924
-2794,2746,2747,0.14840065064165,0.14840065064165,-105.001474,39.6998539,-105.0031992,39.6997152
-2796,2748,2749,0.200822547172327,0.200822547172327,-104.9326658,39.7346911,-104.9326365,39.736497
-2797,2749,2750,0.193145905748916,0.193145905748916,-104.9326365,39.736497,-104.9326406,39.738234
-2821,908,2770,0.128136612557408,0.128136612557408,-104.9331257,39.7644965,-104.9331507,39.7656487
-2824,2261,2772,0.10049786598023,0.10049786598023,-104.930525,39.7674191,-104.9293492,39.7674126
-2825,2772,2773,0.106378037300959,0.106378037300959,-104.9293492,39.7674126,-104.9281046,39.7674191
-2826,2773,2110,0.093897002068377,0.093897002068377,-104.9281046,39.7674191,-104.927006,39.7674191
-2827,2110,2774,0.107389868338328,0.107389868338328,-104.927006,39.7674191,-104.9257496,39.7674291
-2828,2774,2775,0.0994873393877801,0.0994873393877801,-104.9257496,39.7674291,-104.9245856,39.7674323
-2850,2776,2777,0.10879749556538,0.10879749556538,-104.9511832,39.7669218,-104.9499105,39.7669403
-2855,2804,866,0.20027757395038,0.20027757395038,-104.9452104,39.7669339,-104.9428673,39.7669141
-2829,2775,2778,1.00147658782101,1.00147658782101,-104.9245856,39.7674323,-104.9128683,39.7674541
-2830,2779,2780,0.0530172029480301,0.0530172029480301,-104.9733522,39.7669655,-104.9727319,39.7669657
-2832,2781,2782,0.107966324930259,0.107966324930259,-104.9721138,39.7669682,-104.9708506,39.7669659
-2833,2782,2783,0.103296913871679,0.103296913871679,-104.9708506,39.7669659,-104.9696421,39.7669558
-2834,2783,2784,0.105735267915707,0.105735267915707,-104.9696421,39.7669558,-104.968405,39.766956
-2835,2784,2785,0.104367827383757,0.104367827383757,-104.968405,39.766956,-104.9671839,39.7669548
-2836,2785,2786,0.106026097865505,0.106026097865505,-104.9671839,39.7669548,-104.9659434,39.7669568
-2837,2786,2787,0.104661406473263,0.104661406473263,-104.9659434,39.7669568,-104.9647189,39.7669496
-2838,2787,2788,0.109120444986171,0.109120444986171,-104.9647189,39.7669496,-104.9634422,39.7669465
-2842,2790,2791,0.105111335997404,0.105111335997404,-104.9609746,39.7669537,-104.9597448,39.7669537
-2843,2791,2792,0.100650542913524,0.100650542913524,-104.9597448,39.7669537,-104.9585673,39.7669414
-2844,2792,2793,0.105228706955749,0.105228706955749,-104.9585673,39.7669414,-104.9573362,39.7669311
-2845,2793,2794,0.119444969275907,0.119444969275907,-104.9573362,39.7669311,-104.9559387,39.766929
-2846,2794,2795,0.0942235633572651,0.0942235633572651,-104.9559387,39.766929,-104.9548363,39.7669249
-2847,2795,2084,0.102241906689643,0.102241906689643,-104.9548363,39.7669249,-104.9536401,39.7669187
-2848,2084,2796,0.105000278025472,0.105000278025472,-104.9536401,39.7669187,-104.9524116,39.7669187
-2849,2796,2776,0.104992294488636,0.104992294488636,-104.9524116,39.7669187,-104.9511832,39.7669218
-2851,2777,2799,0.102990536508203,0.102990536508203,-104.9499105,39.7669403,-104.9487061,39.7669692
-2852,2799,2802,0.104419262818378,0.104419262818378,-104.9487061,39.7669692,-104.9474844,39.7669713
-3832,3274,3648,0.198107670536066,0.198107670536066,-104.9593216,39.7038566,-104.9576929,39.7025901
-2853,2802,2803,0.106343009363166,0.106343009363166,-104.9474844,39.7669713,-104.9462404,39.7669537
-2854,2803,2804,0.0880619154851023,0.0880619154851023,-104.9462404,39.7669537,-104.9452104,39.7669339
-2856,866,2805,0.0997722055250997,0.0997722055250997,-104.9428673,39.7669141,-104.9417,39.7669075
-2857,2805,2806,0.0898296288997372,0.0898296288997372,-104.9417,39.7669075,-104.9406492,39.7668916
-2858,2806,2807,0.0154103032800591,0.0154103032800591,-104.9406492,39.7668916,-104.9404689,39.7668916
-2860,1345,2808,0.0745089191630195,0.0745089191630195,-105.0025087,39.7490201,-105.0032328,39.7486472
-2862,2809,2810,0.0999390470653334,0.0999390470653334,-104.9921793,39.7165966,-104.9921278,39.7174945
-2863,2810,2811,0.098203415750831,0.098203415750831,-104.9921278,39.7174945,-104.9921559,39.7183774
-2864,2811,2812,0.105704456533214,0.105704456533214,-104.9921559,39.7183774,-104.9921473,39.719328
-2865,2812,1841,0.178602078382633,0.178602078382633,-104.9921473,39.719328,-104.9921535,39.7209342
-2867,2813,2814,0.147059691176011,0.147059691176011,-104.9913173,39.7752191,-104.9912923,39.7765415
-2869,2815,2816,0.0358929050784097,0.0358929050784097,-104.9919925,39.7317917,-104.9916596,39.7319883
-2871,2817,2818,0.202436914455554,0.202436914455554,-104.9993302,39.7801544,-105.0016991,39.7801675
-2872,2818,721,0.208959052889522,0.208959052889522,-105.0016991,39.7801675,-105.0041443,39.7801832
-2873,721,2819,0.195578398743409,0.195578398743409,-105.0041443,39.7801832,-105.0064329,39.7801666
-2874,2819,2820,0.132104447079437,0.132104447079437,-105.0064329,39.7801666,-105.0079788,39.7801613
-2875,2820,2499,0.133495572380704,0.133495572380704,-105.0079788,39.7801613,-105.0095409,39.7801481
-2877,2821,2823,0.131028201505055,0.131028201505055,-105.0111319,39.7801807,-105.0126652,39.7801745
-2878,2823,2154,0.134224367729179,0.134224367729179,-105.0126652,39.7801745,-105.0142359,39.7801811
-2879,2154,2824,0.137197819412826,0.137197819412826,-105.0142359,39.7801811,-105.0158414,39.7801872
-2881,2825,2828,0.100509300133652,0.100509300133652,-105.0169815,39.7801864,-105.0181574,39.7801666
-2882,2828,2829,0.098379052864586,0.098379052864586,-105.0181574,39.7801666,-105.0193075,39.7802062
-2883,2829,1264,0.0995905743898471,0.0995905743898471,-105.0193075,39.7802062,-105.0204729,39.7802128
-2884,1264,2830,0.0991885382845514,0.0991885382845514,-105.0204729,39.7802128,-105.0216335,39.780226
-2885,2830,2831,0.0990153060665791,0.0990153060665791,-105.0216335,39.780226,-105.0227922,39.780226
-2886,2831,2718,0.0991269733313679,0.0991269733313679,-105.0227922,39.780226,-105.0239521,39.7802381
-2887,2718,2832,0.100500652429342,0.100500652429342,-105.0239521,39.7802381,-105.0251279,39.7802579
-2888,2832,2833,0.0102715407543069,0.0102715407543069,-105.0251279,39.7802579,-105.0252481,39.7802579
-2889,2833,2834,0.0960953974534679,0.0960953974534679,-105.0252481,39.7802579,-105.0263725,39.7802711
-2890,2834,2835,0.0326867749280955,0.0326867749280955,-105.0263725,39.7802711,-105.0267549,39.7802781
-2891,2835,2836,0.134256786764763,0.134256786764763,-105.0267549,39.7802781,-105.028326,39.7802812
-2892,2836,2837,0.113988792124523,0.113988792124523,-105.028326,39.7802812,-105.0296598,39.7802952
-2893,2837,2838,0.0204082374430359,0.0204082374430359,-105.0296598,39.7802952,-105.0298986,39.7802977
-2895,2839,2840,0.113685974247049,0.113685974247049,-105.0301265,39.7802941,-105.0314566,39.7802731
-2896,2840,2841,0.132754406259035,0.132754406259035,-105.0314566,39.7802731,-105.0330101,39.7802665
-2897,2841,2842,0.136852657742897,0.136852657742897,-105.0330101,39.7802665,-105.0346113,39.7802434
-2899,1793,2843,0.0809702263007341,0.0809702263007341,-104.929534,39.694587,-104.9295552,39.693859
-2900,2843,2844,0.0969425296921621,0.0969425296921621,-104.9295552,39.693859,-104.9295466,39.6929872
-2901,2844,2845,0.413436446480526,0.413436446480526,-104.9295466,39.6929872,-104.9305098,39.6893437
-2903,2263,2847,0.179984264422638,0.179984264422638,-104.9304775,39.7162632,-104.9304918,39.7146446
-2904,2847,2848,0.174004040987329,0.174004040987329,-104.9304918,39.7146446,-104.930509,39.7130798
-2905,2848,2849,0.194108624427032,0.194108624427032,-104.930509,39.7130798,-104.9304782,39.7113343
-2907,2850,1276,0.172413086756907,0.172413086756907,-105.0186375,39.7505191,-105.0205429,39.7510272
-2909,2853,785,0.245123885631009,0.245123885631009,-105.0050712,39.7039722,-105.0042571,39.7018586
-2911,2854,2855,0.0854841952170884,0.0854841952170884,-105.0038253,39.7010848,-105.0034418,39.7003749
-2912,2855,2747,0.0762350203886263,0.0762350203886263,-105.0034418,39.7003749,-105.0031992,39.6997152
-2913,2747,2856,0.0859704175448271,0.0859704175448271,-105.0031992,39.6997152,-105.0031649,39.6989425
-2914,2856,2857,0.100779098585589,0.100779098585589,-105.0031649,39.6989425,-105.0035425,39.698084
-2915,2857,2858,0.0905252463288938,0.0905252463288938,-105.0035425,39.698084,-105.0043357,39.6975452
-2917,2859,2860,0.0227727209766704,0.0227727209766704,-105.0050773,39.6967285,-105.0050773,39.6965237
-2918,361,1735,0.198105222979832,0.198105222979832,-105.0051297,39.6894631,-105.0051254,39.6912447
-2919,1735,2861,0.0382126884100893,0.0382126884100893,-105.0051254,39.6912447,-105.0051426,39.6915881
-2920,148,2862,0.0438716250050412,0.0438716250050412,-105.0050494,39.6930773,-105.0050709,39.6926831
-2921,1003,2863,0.0520715649387988,0.0520715649387988,-104.987571,39.7855779,-104.9869616,39.7855787
-2922,2863,2864,0.0982728809134093,0.0982728809134093,-104.9869616,39.7855787,-104.9858115,39.7855801
-2923,2864,2865,0.0994946507259965,0.0994946507259965,-104.9858115,39.7855801,-104.9846471,39.7855801
-3895,3698,3699,0.204838159377623,0.204838159377623,-104.9617334,39.6911372,-104.9617151,39.6892951
-2924,2865,2869,0.090463384362138,0.090463384362138,-104.9846471,39.7855801,-104.9835884,39.7855828
-2925,2869,2870,0.0564720828613131,0.0564720828613131,-104.9835884,39.7855828,-104.9829275,39.7855836
-2926,2870,2871,0.0608640771597173,0.0608640771597173,-104.9829275,39.7855836,-104.9822152,39.7855845
-2927,2872,2873,0.044011799999607,0.044011799999607,-104.9546451,39.7849527,-104.9541301,39.7849461
-2928,2873,2088,0.0931496819660856,0.0931496819660856,-104.9541301,39.7849461,-104.95304,39.7849395
-2929,2088,2655,0.0960691148224413,0.0960691148224413,-104.95304,39.7849395,-104.9519157,39.7849395
-2930,2655,2874,0.0937706080748846,0.0937706080748846,-104.9519157,39.7849395,-104.9508183,39.7849387
-2931,2874,2875,0.0828791997484075,0.0828791997484075,-104.9508183,39.7849387,-104.9498484,39.7849453
-2932,2875,2876,0.093218621711434,0.093218621711434,-104.9498484,39.7849453,-104.9487583,39.7849124
-2933,2876,2877,0.0704167162147941,0.0704167162147941,-104.9487583,39.7849124,-104.9479343,39.7849217
-2935,2878,2879,0.0887403720940643,0.0887403720940643,-104.9645156,39.7852099,-104.9634771,39.7852033
-2936,2879,2880,0.0909098673154509,0.0909098673154509,-104.9634771,39.7852033,-104.962414,39.7852355
-2937,2880,2881,0.0882058988614067,0.0882058988614067,-104.962414,39.7852355,-104.961384,39.7851828
-2938,2881,2882,0.181777411929199,0.181777411929199,-104.961384,39.7851828,-104.9592584,39.7852492
-2940,2883,2884,0.115661337881372,0.115661337881372,-104.9733956,39.7437918,-104.9733802,39.7448319
-2941,2884,2885,0.14826485880128,0.14826485880128,-104.9733802,39.7448319,-104.9724659,39.7459649
-2942,2885,2886,0.112251623213379,0.112251623213379,-104.9724659,39.7459649,-104.9722001,39.7469535
-2943,2886,2887,0.119994591224275,0.119994591224275,-104.9722001,39.7469535,-104.9729638,39.7478589
-2944,2887,2888,0.178622958928809,0.178622958928809,-104.9729638,39.7478589,-104.9733549,39.7494369
-2945,2888,2889,0.00412533177852682,0.00412533177852682,-104.9733549,39.7494369,-104.9733549,39.749474
-2946,2889,2890,0.00481474032387871,0.00481474032387871,-104.9733549,39.749474,-104.9733549,39.7495173
-2947,2890,2893,0.135290874001292,0.135290874001292,-104.9733549,39.7495173,-104.9733544,39.750734
-2948,2893,2894,0.137892832771659,0.137892832771659,-104.9733544,39.750734,-104.973354,39.7519741
-2949,2894,817,0.140150092060959,0.140150092060959,-104.973354,39.7519741,-104.9733535,39.7532345
-2950,817,2895,0.143808402694827,0.143808402694827,-104.9733535,39.7532345,-104.9733531,39.7545278
-2951,2895,2896,0.0697081016101773,0.0697081016101773,-104.9733531,39.7545278,-104.9733529,39.7551547
-2952,2896,2897,0.0168682725384664,0.0168682725384664,-104.9733529,39.7551547,-104.9733528,39.7553064
-2954,2898,2899,0.139071498957887,0.139071498957887,-104.9733526,39.7557317,-104.9733522,39.7569824
-2956,2900,2901,0.139727551358826,0.139727551358826,-104.9733518,39.7582331,-104.9733513,39.7594897
-2957,2901,2902,0.00293554606295758,0.00293554606295758,-104.9733513,39.7594897,-104.9733513,39.7595161
-2958,2902,2903,0.102721876435386,0.102721876435386,-104.9733513,39.7595161,-104.973351,39.7604399
-2959,2903,2904,0.0305452475451112,0.0305452475451112,-104.973351,39.7604399,-104.9733509,39.7607146
-2960,2904,2905,0.00503713742922791,0.00503713742922791,-104.9733509,39.7607146,-104.9733508,39.7607599
-2961,2905,2906,0.0458567885450819,0.0458567885450819,-104.9733508,39.7607599,-104.9733507,39.7611723
-2962,2906,2907,0.0981295261146626,0.0981295261146626,-104.9733507,39.7611723,-104.9733504,39.7620548
-2963,2907,628,0.0369055971430695,0.0369055971430695,-104.9733504,39.7620548,-104.9733503,39.7623867
-2964,628,1143,0.0958611496898419,0.0958611496898419,-104.9733503,39.7623867,-104.97335,39.7632488
-2966,2908,2909,0.0463126901024473,0.0463126901024473,-104.9733498,39.7638075,-104.9733496,39.764224
-2967,2909,872,0.0318684671228471,0.0318684671228471,-104.9733496,39.764224,-104.9733495,39.7645106
-2968,872,2910,0.0711758745978235,0.0711758745978235,-104.9733495,39.7645106,-104.9733493,39.7651507
-2969,2910,2911,0.067495322638235,0.067495322638235,-104.9733493,39.7651507,-104.9733491,39.7657577
-2970,2911,2912,0.033747661319103,0.033747661319103,-104.9733491,39.7657577,-104.973349,39.7660612
-2971,2912,2913,0.0475024757380027,0.0475024757380027,-104.973349,39.7660612,-104.9733488,39.7664884
-2973,2914,2915,0.202578999998173,0.202578999998173,-104.9738264,39.7183118,-104.9733801,39.7165226
-2975,2916,2917,0.184685764171195,0.184685764171195,-104.9731398,39.7165226,-104.9732076,39.7181827
-2976,2917,2918,0.00737265767013589,0.00737265767013589,-104.9732076,39.7181827,-104.9732171,39.7182486
-2978,2919,2920,0.110148820147866,0.110148820147866,-104.9593201,39.7073167,-104.9580338,39.7072718
-2979,2920,584,0.039258317875865,0.039258317875865,-104.9580338,39.7072718,-104.957575,39.70728
-2980,584,2921,0.228363185041033,0.228363185041033,-104.957575,39.70728,-104.954906,39.707321
-2982,2922,1341,0.198962442111046,0.198962442111046,-105.021523,39.7147919,-105.0215144,39.7130026
-2983,1341,2923,0.207039061514662,0.207039061514662,-105.0215144,39.7130026,-105.0215316,39.7111407
-2984,2923,2924,0.201175175238786,0.201175175238786,-105.0215316,39.7111407,-105.0215401,39.7093315
-2985,2924,2925,0.203376851393596,0.203376851393596,-105.0215401,39.7093315,-105.0215487,39.7075025
-2986,2925,2926,0.201920207523594,0.201920207523594,-105.0215487,39.7075025,-105.0215401,39.7056866
-2987,2926,2927,0.200452413161122,0.200452413161122,-105.0215401,39.7056866,-105.0215316,39.7038839
-2988,2927,776,0.201931296094781,0.201931296094781,-105.0215316,39.7038839,-105.0215401,39.7020679
-2990,2928,2930,0.209285084837907,0.209285084837907,-105.0215401,39.7004038,-105.021523,39.6985217
-2991,2930,2931,0.197960209647655,0.197960209647655,-105.021523,39.6985217,-105.0215654,39.6967417
-2992,2931,171,0.402036974102358,0.402036974102358,-105.0215654,39.6967417,-105.0215573,39.6931261
-2994,2932,2933,0.200508042098485,0.200508042098485,-105.0213817,39.6895011,-105.0213903,39.6876979
-2995,170,1728,0.257039245710078,0.257039245710078,-105.0213045,39.6931204,-105.0213131,39.6908088
-2996,1728,2934,0.145411467525923,0.145411467525923,-105.0213131,39.6908088,-105.0213045,39.6895011
-2999,2935,2936,0.0880513532781809,0.0880513532781809,-105.0169377,39.6883193,-105.0178175,39.6879086
-3025,2957,2958,0.01030947748559,0.01030947748559,-105.0187431,39.7584203,-105.0188637,39.7584212
-3000,2936,209,0.228338005511316,0.228338005511316,-105.0178175,39.6879086,-105.0203575,39.6872791
-3002,2937,2938,0.107611509993879,0.107611509993879,-104.9251387,39.7047572,-104.9247744,39.7038309
-3005,2940,2941,0.175855452328419,0.175855452328419,-104.9257898,39.7162499,-104.9257841,39.7146684
-3006,2941,2942,0.174909636552997,0.174909636552997,-104.9257841,39.7146684,-104.925785,39.7130954
-3007,2942,2943,0.192197232795451,0.192197232795451,-104.925785,39.7130954,-104.9258054,39.711367
-3009,2944,546,0.0293283601170504,0.0293283601170504,-104.9250716,39.7048418,-104.9250834,39.7051054
-3010,546,2945,0.155746660532693,0.155746660532693,-104.9250834,39.7051054,-104.9251435,39.7065053
-3012,1475,2946,0.311303155924368,0.311303155924368,-104.9241194,39.6955841,-104.9254353,39.692974
-3013,2946,2947,0.184883982264712,0.184883982264712,-104.9254353,39.692974,-104.9259674,39.6913625
-3014,2947,2948,0.224685205653341,0.224685205653341,-104.9259674,39.6913625,-104.9264824,39.6893811
-3016,2949,2950,0.0888669853746646,0.0888669853746646,-104.9258215,39.6893679,-104.9258215,39.6885687
-3017,2950,2951,0.114577615588497,0.114577615588497,-104.9258215,39.6885687,-104.9258129,39.6875383
-3018,1225,2952,0.114132076273042,0.114132076273042,-105.0118006,39.7583774,-105.013135,39.7584124
-3019,2952,2161,0.115442153745618,0.115442153745618,-105.013135,39.7584124,-105.0144855,39.7584103
-3020,2161,2953,0.105428749590907,0.105428749590907,-105.0144855,39.7584103,-105.0157188,39.7584009
-3022,2954,2955,0.0114463280554541,0.0114463280554541,-105.0158347,39.7584,-105.0159686,39.7584009
-3023,2955,639,0.18619297340356,0.18619297340356,-105.0159686,39.7584009,-105.0181467,39.7584155
-3024,639,2957,0.0509835810434449,0.0509835810434449,-105.0181467,39.7584155,-105.0187431,39.7584203
-3026,2958,2959,0.0353738821651235,0.0353738821651235,-105.0188637,39.7584212,-105.0192775,39.7584245
-3027,2959,2960,0.00284670794487764,0.00284670794487764,-105.0192775,39.7584245,-105.0193108,39.7584248
-3028,2960,1288,0.104793015683124,0.104793015683124,-105.0193108,39.7584248,-105.0205366,39.7584382
-3029,1288,2961,0.051496901479137,0.051496901479137,-105.0205366,39.7584382,-105.021139,39.7584434
-3030,2961,2962,0.00960868888037157,0.00960868888037157,-105.021139,39.7584434,-105.0212514,39.7584444
-3031,2962,2963,0.0208687174266634,0.0208687174266634,-105.0212514,39.7584444,-105.0214955,39.7584475
-3032,2963,2964,0.0498882614596582,0.0498882614596582,-105.0214955,39.7584475,-105.0220789,39.7584598
-3033,2964,2965,0.123304259264834,0.123304259264834,-105.0220789,39.7584598,-105.0235213,39.7584714
-3035,2966,2967,0.00908677871596767,0.00908677871596767,-105.0236238,39.7584722,-105.0237301,39.7584727
-3036,2967,2968,0.115854235202851,0.115854235202851,-105.0237301,39.7584727,-105.0250854,39.758479
-3037,2968,2969,0.00700956571064615,0.00700956571064615,-105.0250854,39.758479,-105.0251674,39.7584794
-3038,2969,2970,0.00940368205913038,0.00940368205913038,-105.0251674,39.7584794,-105.0252774,39.7584805
-3039,2970,2971,0.0666840110355875,0.0666840110355875,-105.0252774,39.7584805,-105.0260575,39.7584783
-3040,2971,2972,0.0679662165544488,0.0679662165544488,-105.0260575,39.7584783,-105.0268526,39.7584761
-3041,2972,2973,0.0630976433471776,0.0630976433471776,-105.0268526,39.7584761,-105.0275907,39.7584695
-3042,2973,2974,0.0491600079555241,0.0491600079555241,-105.0275907,39.7584695,-105.0281658,39.7584695
-3044,2975,2976,0.0997731403964804,0.0997731403964804,-105.0299157,39.7585034,-105.0310829,39.7585034
-3045,2976,2977,0.100715566829797,0.100715566829797,-105.0310829,39.7585034,-105.032261,39.7585166
-3046,2977,2978,0.0996876914159973,0.0996876914159973,-105.032261,39.7585166,-105.0334272,39.7585157
-3047,2978,2979,0.10126058971698,0.10126058971698,-105.0334272,39.7585157,-105.0346118,39.758517
-3048,2979,2980,0.103346225532192,0.103346225532192,-105.0346118,39.758517,-105.0358208,39.7585166
-3049,2980,2981,0.0983114005972926,0.0983114005972926,-105.0358208,39.7585166,-105.0369709,39.7585166
-3050,2981,2982,0.09874223460454,0.09874223460454,-105.0369709,39.7585166,-105.0381258,39.7584985
-3051,2982,2983,0.0510749251490339,0.0510749251490339,-105.0381258,39.7584985,-105.038723,39.7584839
-3053,2984,2985,0.0505192363533637,0.0505192363533637,-105.039304,39.7584901,-105.039895,39.758491
-3054,2985,1120,0.0491942863881514,0.0491942863881514,-105.039895,39.758491,-105.0404705,39.7584919
-3055,1120,2986,0.0517085444587275,0.0517085444587275,-105.0404705,39.7584919,-105.0410754,39.7584887
-3056,2986,2987,0.0504766444323722,0.0504766444323722,-105.0410754,39.7584887,-105.0416657,39.7585006
-3057,2987,2988,0.0508471211122413,0.0508471211122413,-105.0416657,39.7585006,-105.0422605,39.7584955
-3058,2988,2989,0.0482147566017866,0.0482147566017866,-105.0422605,39.7584955,-105.0428245,39.7584902
-3059,2989,2990,0.0513143127772338,0.0513143127772338,-105.0428245,39.7584902,-105.0434248,39.7584889
-3060,2990,2991,0.0501432318630803,0.0501432318630803,-105.0434248,39.7584889,-105.0440114,39.7584876
-3061,2991,2992,0.788648410502006,0.788648410502006,-105.0440114,39.7584876,-105.0532374,39.7584692
-3062,2993,2994,0.01555628530979,0.01555628530979,-104.9953923,39.7608178,-104.995393,39.7606779
-3063,2994,2995,0.10729267423115,0.10729267423115,-104.995393,39.7606779,-104.9953975,39.759713
-13562,2999,2165,0.242533262128423,0.242533262128423,-105.0136746,39.7263954,-105.0140457,39.7285578
-3067,2998,3000,0.0998948824480635,0.0998948824480635,-104.9969577,39.7401458,-104.9961353,39.7407839
-3068,3000,3001,0.145910673725247,0.145910673725247,-104.9961353,39.7407839,-104.99492,39.7417051
-3069,3001,3002,0.147264770664277,0.147264770664277,-104.99492,39.7417051,-104.9937158,39.742652
-3070,3002,3003,0.145706831644125,0.145706831644125,-104.9937158,39.742652,-104.9925155,39.7435822
-3071,3003,3004,0.146381189481243,0.146381189481243,-104.9925155,39.7435822,-104.9912932,39.744504
-3073,3006,3007,0.143637545441942,0.143637545441942,-104.9900832,39.7454633,-104.9889069,39.7463856
-3074,3007,3008,0.14139337588105,0.14139337588105,-104.9889069,39.7463856,-104.9876315,39.7471951
-3075,3008,3009,0.0340034784472366,0.0340034784472366,-104.9876315,39.7471951,-104.9873284,39.7473931
-3076,3009,3010,0.117637494210671,0.117637494210671,-104.9873284,39.7473931,-104.9864574,39.7482121
-3077,3010,3011,0.1483412167568,0.1483412167568,-104.9864574,39.7482121,-104.9852889,39.7491983
-3078,3011,3012,0.146200597856632,0.146200597856632,-104.9852889,39.7491983,-104.9840976,39.7501416
-3079,3012,3013,0.146656153847153,0.146656153847153,-104.9840976,39.7501416,-104.9828772,39.7510685
-3080,3013,3014,0.219897120549826,0.219897120549826,-104.9828772,39.7510685,-104.9810635,39.7524708
-3081,3014,2686,0.0729664723843293,0.0729664723843293,-104.9810635,39.7524708,-104.9804627,39.7529369
-3082,2686,3015,0.146055074464899,0.146055074464899,-104.9804627,39.7529369,-104.9792691,39.7538767
-3083,3015,3016,0.115984680072215,0.115984680072215,-104.9792691,39.7538767,-104.9783073,39.7546124
-3084,3016,3017,0.0102106792826024,0.0102106792826024,-104.9783073,39.7546124,-104.9782228,39.7546773
-3085,3017,3018,0.0188093561808277,0.0188093561808277,-104.9782228,39.7546773,-104.9780672,39.7547969
-3087,3019,3020,0.14624208166964,0.14624208166964,-104.9768843,39.7557372,-104.9756854,39.7566754
-3088,3020,3021,0.149932974568378,0.149932974568378,-104.9756854,39.7566754,-104.974418,39.7576075
-3089,3021,2900,0.114654486829615,0.114654486829615,-104.974418,39.7576075,-104.9733518,39.7582331
-3091,3022,3023,0.0936947193853168,0.0936947193853168,-104.9472629,39.738954,-104.9461672,39.7389438
-3093,3024,3025,0.0922829109447797,0.0922829109447797,-104.9499105,39.7600818,-104.9488309,39.7600818
-3095,3026,3027,0.10419715248802,0.10419715248802,-104.9684276,39.7595114,-104.9672089,39.7594916
-3096,3027,3028,0.108587123231645,0.108587123231645,-104.9672089,39.7594916,-104.9659386,39.7594982
-3097,3028,3029,0.103455866634876,0.103455866634876,-104.9659386,39.7594982,-104.9647283,39.7594982
-3099,3030,3031,0.0828114972096423,0.0828114972096423,-104.9487906,39.7590818,-104.9478224,39.759056
-3100,3031,3032,0.0151385207198175,0.0151385207198175,-104.9478224,39.759056,-104.9476453,39.759056
-3102,3035,3036,0.131928682141755,0.131928682141755,-104.9468584,39.7590562,-104.9453153,39.7590334
-3103,3036,3037,0.0286281442546585,0.0286281442546585,-104.9453153,39.7590334,-104.9449805,39.75904
-3104,3037,3038,0.0830678583996061,0.0830678583996061,-104.9449805,39.75904,-104.9440088,39.7590496
-3105,3038,3039,0.0820487800074757,0.0820487800074757,-104.9440088,39.7590496,-104.9430494,39.7590268
-3107,3040,3041,0.0592379768525999,0.0592379768525999,-104.9641307,39.7594199,-104.9634377,39.7594223
-3108,3041,1041,0.101867076922678,0.101867076922678,-104.9634377,39.7594223,-104.962246,39.7594264
-3109,1041,3042,0.108431988254042,0.108431988254042,-104.962246,39.7594264,-104.9609775,39.7594308
-3110,3042,3043,0.103209130509255,0.103209130509255,-104.9609775,39.7594308,-104.9597701,39.759435
-3111,3043,3044,0.103439867243447,0.103439867243447,-104.9597701,39.759435,-104.95856,39.7594391
-3113,3045,3046,0.1080426022678,0.1080426022678,-104.9573829,39.7594492,-104.956119,39.7594399
-3114,3046,3047,0.106399445317148,0.106399445317148,-104.956119,39.7594399,-104.9548745,39.7594585
-3115,3047,2078,0.104328053424176,0.104328053424176,-104.9548745,39.7594585,-104.953654,39.7594605
-3116,2078,2675,0.103849131822114,0.103849131822114,-104.953654,39.7594605,-104.9524391,39.7594603
-3117,2675,3048,0.106371798877004,0.106371798877004,-104.9524391,39.7594603,-104.9511947,39.7594645
-3118,3048,3049,0.1089909908922,0.1089909908922,-104.9511947,39.7594645,-104.9499198,39.7594797
-3120,2995,3050,0.0829711714500804,0.0829711714500804,-104.9953975,39.759713,-104.9963681,39.7597212
-3123,3051,3052,0.0304368475861105,0.0304368475861105,-104.9721269,39.7594785,-104.971771,39.759487
-19556,10441,10561,0.00875730102663828,0.00875730102663828,-104.9883481,39.7091456,-104.9884504,39.7091486
-3124,3053,3054,0.10469695146486,0.10469695146486,-104.9708822,39.7594411,-104.9696608,39.7595114
-3125,3054,3026,0.105413327506124,0.105413327506124,-104.9696608,39.7595114,-104.9684276,39.7595114
-3127,3055,3056,0.0146859459125862,0.0146859459125862,-104.9406663,39.7601421,-104.9404947,39.7601356
-3128,3056,3057,0.0899179636493607,0.0899179636493607,-104.9404947,39.7601356,-104.9394429,39.7601485
-3129,3057,3058,0.0968918459632465,0.0968918459632465,-104.9394429,39.7601485,-104.9383099,39.7601749
-3130,3058,3059,0.0931803123592361,0.0931803123592361,-104.9383099,39.7601749,-104.9372198,39.7601749
-3131,3059,3060,0.0924628769882567,0.0924628769882567,-104.9372198,39.7601749,-104.9361384,39.7601551
-3132,3060,2004,0.0909779529022995,0.0909779529022995,-104.9361384,39.7601551,-104.9350741,39.7601485
-3134,3061,2758,0.0983285272926963,0.0983285272926963,-104.9339669,39.7601749,-104.9328167,39.7601881
-3135,2758,3062,0.094848132376921,0.094848132376921,-104.9328167,39.7601881,-104.9317072,39.760176
-3137,2284,3063,0.10273020958756,0.10273020958756,-104.9305594,39.7601749,-104.9293577,39.7601881
-3138,3063,3064,0.09684156688728,0.09684156688728,-104.9293577,39.7601881,-104.9282248,39.7601815
-3139,3064,2139,0.105654196010103,0.105654196010103,-104.9282248,39.7601815,-104.9269888,39.7601749
-3141,3065,3066,0.101995188106893,0.101995188106893,-104.9257357,39.7601617,-104.9245426,39.7601749
-4424,4133,950,0.17542265784203,0.17542265784203,-104.9505787,39.7305216,-104.9505701,39.7320992
-3142,3066,3067,1.00083609181461,1.00083609181461,-104.9245426,39.7601749,-104.912834,39.7601834
-3143,3068,3069,0.10392860568863,0.10392860568863,-104.9461768,39.7130666,-104.9449618,39.7130707
-3144,3069,3070,0.10232907709913,0.10232907709913,-104.9449618,39.7130707,-104.9437655,39.7130666
-3145,3070,3071,0.103927869583062,0.103927869583062,-104.9437655,39.7130666,-104.9425505,39.7130687
-3146,3071,3072,0.102097379803977,0.102097379803977,-104.9425505,39.7130687,-104.9413569,39.7130666
-3147,3072,3073,0.0487909895079958,0.0487909895079958,-104.9413569,39.7130666,-104.9407865,39.7130688
-3149,1294,3074,0.105333551259412,0.105333551259412,-104.9875234,39.7129763,-104.9862922,39.7129578
-3150,3074,3075,0.0524798747272766,0.0524798747272766,-104.9862922,39.7129578,-104.9856788,39.712948
-3151,3075,3076,0.0475858963921332,0.0475858963921332,-104.9856788,39.712948,-104.9851226,39.7129392
-3152,3076,3077,0.00514079080382434,0.00514079080382434,-104.9851226,39.7129392,-104.9850625,39.7129392
-3154,3078,3079,0.0117186508515134,0.0117186508515134,-104.9839851,39.7129498,-104.9838483,39.7129555
-3155,3079,3080,0.0860074021370197,0.0860074021370197,-104.9838483,39.7129555,-104.9828429,39.7129448
-3156,3080,3081,0.0112654570741388,0.0112654570741388,-104.9828429,39.7129448,-104.9827112,39.7129442
-3157,3081,3082,0.0998426271509478,0.0998426271509478,-104.9827112,39.7129442,-104.9815443,39.7129225
-3159,3083,3084,0.0978722553449722,0.0978722553449722,-104.9803943,39.7129167,-104.9792501,39.712914
-3161,3085,3086,0.0498003240048994,0.0498003240048994,-104.9786762,39.712912,-104.978094,39.71291
-3162,3086,3087,0.0499820755044021,0.0499820755044021,-104.978094,39.71291,-104.9775097,39.7129054
-3163,3087,1765,0.0500932715547668,0.0500932715547668,-104.9775097,39.7129054,-104.9769241,39.7129008
-3164,1765,3089,0.0453737460403596,0.0453737460403596,-104.9769241,39.7129008,-104.9763937,39.7128949
-3165,3089,3090,0.0566344564433548,0.0566344564433548,-104.9763937,39.7128949,-104.9757316,39.7128962
-3166,3090,3091,0.0479788729039099,0.0479788729039099,-104.9757316,39.7128962,-104.9751708,39.7128876
-3167,3091,1517,0.0504584819239423,0.0504584819239423,-104.9751708,39.7128876,-104.9745809,39.7128876
-3168,1517,3092,0.0513918113913408,0.0513918113913408,-104.9745809,39.7128876,-104.9739802,39.7128965
-3169,3092,3093,0.0524695902697227,0.0524695902697227,-104.9739802,39.7128965,-104.9733669,39.7129055
-3170,3093,1084,0.0829756278031258,0.0829756278031258,-104.9733669,39.7129055,-104.972397,39.7129187
-3171,1084,3094,0.018362425266723,0.018362425266723,-104.972397,39.7129187,-104.9721825,39.7129121
-3172,3094,3095,0.100037197959638,0.100037197959638,-104.9721825,39.7129121,-104.971013,39.7129167
-3173,3095,3096,0.0986501993185581,0.0986501993185581,-104.971013,39.7129167,-104.9698598,39.7129284
-3174,3096,3097,0.100130714805898,0.100130714805898,-104.9698598,39.7129284,-104.9686892,39.7129319
-3175,3097,2046,0.103528392648025,0.103528392648025,-104.9686892,39.7129319,-104.9674789,39.7129253
-3176,2046,3098,0.0976518708062817,0.0976518708062817,-104.9674789,39.7129253,-104.9663374,39.7129121
-3177,3098,3099,0.0995509890492463,0.0995509890492463,-104.9663374,39.7129121,-104.9652044,39.7127074
-3179,1954,3100,0.060604506910361,0.060604506910361,-104.9384863,39.7130525,-104.9377781,39.7130688
-3182,3102,3103,0.0990114382918269,0.0990114382918269,-104.935134,39.713087,-104.9339765,39.713093
-3183,3103,3104,0.100593787088956,0.100593787088956,-104.9339765,39.713093,-104.9328006,39.7130798
-3184,3104,3105,0.0983789631442794,0.0983789631442794,-104.9328006,39.7130798,-104.9316505,39.7130864
-3185,3105,2848,0.0976433646550276,0.0976433646550276,-104.9316505,39.7130864,-104.930509,39.7130798
-3186,2848,3106,0.102064870879311,0.102064870879311,-104.930509,39.7130798,-104.9293159,39.713093
-3187,3106,3107,0.10100271733246,0.10100271733246,-104.9293159,39.713093,-104.9281351,39.7130901
-3188,3107,3108,0.0995828832367363,0.0995828832367363,-104.9281351,39.7130901,-104.9269709,39.7130932
-3189,3108,2942,0.101438732689929,0.101438732689929,-104.9269709,39.7130932,-104.925785,39.7130954
-3190,2942,3109,0.100378814460195,0.100378814460195,-104.925785,39.7130954,-104.9246115,39.7130913
-3191,3109,3110,1.25206634961555,1.25206634961555,-104.9246115,39.7130913,-104.9101331,39.7147489
-3192,3111,3112,0.015422388825789,0.015422388825789,-104.9593153,39.7129376,-104.959135,39.7129374
-3193,3112,3113,0.11412427509118,0.11412427509118,-104.959135,39.7129374,-104.9578008,39.7129346
-3194,3113,3114,0.468645573431598,0.468645573431598,-104.9578008,39.7129346,-104.9523224,39.712881
-3196,2023,3115,0.177146580591063,0.177146580591063,-104.9350998,39.7162443,-104.9351095,39.7146512
-3197,3115,3102,0.173943728587952,0.173943728587952,-104.9351095,39.7146512,-104.935134,39.713087
-3198,3102,3116,0.193451028525805,0.193451028525805,-104.935134,39.713087,-104.9350959,39.7113475
-3200,3117,1806,0.211443534426126,0.211443534426126,-104.935335,39.696587,-104.935235,39.694687
-3201,1806,3118,0.193022911848757,0.193022911848757,-104.935235,39.694687,-104.9350589,39.6929564
-3203,3119,3120,0.0940041909856305,0.0940041909856305,-104.9350503,39.6919459,-104.9350503,39.6911005
-3204,3120,3121,0.197561396619787,0.197561396619787,-104.9350503,39.6911005,-104.9350417,39.6893238
-3206,3122,3123,0.200799900699528,0.200799900699528,-104.9348207,39.6893133,-104.9348357,39.6875075
-3207,3124,3125,0.200863237154928,0.200863237154928,-104.9654024,39.718348,-104.9653769,39.7201543
-3208,3125,3126,0.201874389323119,0.201874389323119,-104.9653769,39.7201543,-104.9653769,39.7219698
-3210,3127,3128,0.0750470474178356,0.0750470474178356,-104.9663652,39.7296534,-104.9658779,39.7290921
-3211,3128,3131,0.0761135403806392,0.0761135403806392,-104.9658779,39.7290921,-104.9654579,39.7296956
-3213,3029,3132,0.132611387982682,0.132611387982682,-104.9647283,39.7594982,-104.9647249,39.7606908
-3214,3132,3133,0.00539409864485362,0.00539409864485362,-104.9647249,39.7606908,-104.9647236,39.7607393
-3215,3133,3134,0.139160450695908,0.139160450695908,-104.9647236,39.7607393,-104.9647236,39.7619908
-3216,3134,1160,0.139291641031025,0.139291641031025,-104.9647236,39.7619908,-104.9646785,39.763243
-3217,1160,879,0.139609262878975,0.139609262878975,-104.9646785,39.763243,-104.9647163,39.7644982
-3218,879,3135,0.138493325710101,0.138493325710101,-104.9647163,39.7644982,-104.9647176,39.7657437
-3219,3135,2787,0.134090008076189,0.134090008076189,-104.9647176,39.7657437,-104.9647189,39.7669496
-3220,2787,3136,0.1321642245327,0.1321642245327,-104.9647189,39.7669496,-104.9647008,39.7681381
-3221,3136,3137,0.21408080552497,0.21408080552497,-104.9647008,39.7681381,-104.9647229,39.7700633
-3222,3137,3138,0.144895915790921,0.144895915790921,-104.9647229,39.7700633,-104.9646947,39.7713662
-3223,3138,3139,0.169628584853264,0.169628584853264,-104.9646947,39.7713662,-104.9647005,39.7728917
-3226,3141,3142,0.202888440515448,0.202888440515448,-104.9645304,39.7819277,-104.9645414,39.7837523
-3227,3142,2878,0.162092717607055,0.162092717607055,-104.9645414,39.7837523,-104.9645156,39.7852099
-3251,3162,2365,0.110303719018863,0.110303719018863,-104.9814669,39.7183289,-104.98145,39.7193208
-3254,3164,3165,0.240177393696762,0.240177393696762,-105.0017005,39.7407804,-105.0030875,39.7426587
-3255,3165,3166,0.102768151984011,0.102768151984011,-105.0030875,39.7426587,-105.0037031,39.7434525
-3256,3166,3167,0.0509818546092244,0.0509818546092244,-105.0037031,39.7434525,-105.00401,39.7438456
-3258,3168,3169,0.0591373244934598,0.0591373244934598,-105.0012883,39.7488943,-105.0010939,39.7483839
-3259,3169,3170,0.0530870196657507,0.0530870196657507,-105.0010939,39.7483839,-105.0006969,39.7480168
-3261,3171,3172,0.201914360897617,0.201914360897617,-104.9534926,39.6965864,-104.9535117,39.6947706
-3262,3172,3173,0.203130900823478,0.203130900823478,-104.9535117,39.6947706,-104.953511,39.6929438
-3263,3173,3174,0.201562825315852,0.201562825315852,-104.953511,39.6929438,-104.9535355,39.6911312
-3264,3174,3175,0.19958273918251,0.19958273918251,-104.9535355,39.6911312,-104.9535015,39.6893365
-3265,3175,3177,0.402921101557674,0.402921101557674,-104.9535015,39.6893365,-104.9535278,39.685713
-3266,3178,3179,0.0905536808669309,0.0905536808669309,-104.9535191,39.7038314,-104.9535963,39.7030192
-3267,3179,3180,0.0577627490058349,0.0577627490058349,-104.9535963,39.7030192,-104.9540885,39.7026636
-3268,3180,3181,0.0505235668696686,0.0505235668696686,-104.9540885,39.7026636,-104.9546249,39.7024735
-3269,3181,3182,0.065160532538722,0.065160532538722,-104.9546249,39.7024735,-104.9552273,39.7021149
-3270,3182,3183,0.00793078546182679,0.00793078546182679,-104.9552273,39.7021149,-104.955269,39.7020512
-3271,3183,3184,0.0531842364372946,0.0531842364372946,-104.955269,39.7020512,-104.9555361,39.7016193
-3273,2386,3186,0.0378622155960126,0.0378622155960126,-104.9468949,39.7115125,-104.9464561,39.7114678
-3274,3186,3187,0.0069150542380481,0.0069150542380481,-104.9464561,39.7114678,-104.946376,39.7114762
-3275,3187,3188,0.0174713630038869,0.0174713630038869,-104.946376,39.7114762,-104.9461736,39.7114973
-3277,3189,3190,0.10095397068423,0.10095397068423,-104.9875502,39.7111482,-104.98637,39.7111462
-3278,3190,3191,0.102948552858793,0.102948552858793,-104.98637,39.7111462,-104.9851665,39.7111408
-3279,3191,3192,0.099117357243018,0.099117357243018,-104.9851665,39.7111408,-104.9840078,39.7111342
-3280,3192,3193,0.10499121023248,0.10499121023248,-104.9840078,39.7111342,-104.9827804,39.7111342
-3282,3194,3195,0.0985672231580753,0.0985672231580753,-104.9815359,39.7111143,-104.9803836,39.7111141
-3283,3195,3196,0.0975023503923766,0.0975023503923766,-104.9803836,39.7111141,-104.9792438,39.7111058
-16511,8899,8896,0.0458243741253751,0.0458243741253751,-105.0050563,39.7433465,-105.0048016,39.7429839
-3284,3196,3197,0.0505627463090716,0.0505627463090716,-104.9792438,39.7111058,-104.9786527,39.7111042
-3285,3197,3198,0.0500221717072617,0.0500221717072617,-104.9786527,39.7111042,-104.9780683,39.7110879
-3286,3198,3199,0.046867135973938,0.046867135973938,-104.9780683,39.7110879,-104.9775204,39.7110879
-3287,3199,1768,0.0529832159562647,0.0529832159562647,-104.9775204,39.7110879,-104.976901,39.7110879
-3288,1768,3200,0.0470467690925653,0.0470467690925653,-104.976901,39.7110879,-104.976351,39.7110879
-3289,3200,3201,0.0524586560775799,0.0524586560775799,-104.976351,39.7110879,-104.9757389,39.711117
-3290,3201,3202,0.0495946350720587,0.0495946350720587,-104.9757389,39.711117,-104.9751601,39.711091
-3291,3202,1518,0.052984641558086,0.052984641558086,-104.9751601,39.711091,-104.9745407,39.7110945
-3292,1518,3203,0.100125608990258,0.100125608990258,-104.9745407,39.7110945,-104.9733702,39.7110995
-3293,3203,1085,0.0831191573838339,0.0831191573838339,-104.9733702,39.7110995,-104.9723985,39.7110973
-3294,1085,3204,0.01719627237498,0.01719627237498,-104.9723985,39.7110973,-104.9721975,39.7110945
-3295,3204,3205,0.100278521536605,0.100278521536605,-104.9721975,39.7110945,-104.9710252,39.7110973
-3296,3205,3206,0.100159169300764,0.100159169300764,-104.9710252,39.7110973,-104.9698543,39.7111011
-3297,3206,3207,0.0980766730481921,0.0980766730481921,-104.9698543,39.7111011,-104.9687078,39.7111105
-3299,2047,3208,0.0998503328239714,0.0998503328239714,-104.9674682,39.7111011,-104.9663009,39.7111011
-3300,3208,3209,0.0991174142787685,0.0991174142787685,-104.9663009,39.7111011,-104.9651422,39.7110945
-3301,3209,3210,0.0465862087261248,0.0465862087261248,-104.9651422,39.7110945,-104.9645976,39.7110977
-3303,3211,3212,0.0483226107842397,0.0483226107842397,-104.9640093,39.7111011,-104.9634444,39.7110979
-3304,3212,3213,0.0508033572812722,0.0508033572812722,-104.9634444,39.7110979,-104.9628505,39.7110945
-3305,3213,3214,0.0520095145740976,0.0520095145740976,-104.9628505,39.7110945,-104.9622425,39.711098
-3307,3215,3216,0.047636983079693,0.047636983079693,-104.9616918,39.7111011,-104.9611349,39.7111011
-3308,3216,3217,0.00228390635402469,0.00228390635402469,-104.9611349,39.7111011,-104.9611082,39.7111011
-3309,3217,3218,0.0492156902021281,0.0492156902021281,-104.9611082,39.7111011,-104.9605331,39.7111143
-3310,3218,3219,0.105720878983862,0.105720878983862,-104.9605331,39.7111143,-104.9592972,39.7111077
-3312,3220,3221,0.135734479783406,0.135734479783406,-105.0064274,39.771733,-105.0080156,39.7717323
-3313,3221,2519,0.14595602798476,0.14595602798476,-105.0080156,39.7717323,-105.0097234,39.7717314
-3314,2519,3222,0.126165217374209,0.126165217374209,-105.0097234,39.7717314,-105.0111996,39.7717239
-3315,3222,1229,0.098841689459618,0.098841689459618,-105.0111996,39.7717239,-105.0123561,39.7717298
-3316,1229,3223,0.098924974953348,0.098924974953348,-105.0123561,39.7717298,-105.0135136,39.7717296
-3317,3223,2174,0.100839404349716,0.100839404349716,-105.0135136,39.7717296,-105.0146935,39.7717289
-3318,2174,3224,0.101432888438354,0.101432888438354,-105.0146935,39.7717289,-105.0158803,39.771721
-3319,3224,3225,0.137343472225008,0.137343472225008,-105.0158803,39.771721,-105.0174873,39.7717281
-3321,3226,379,0.0754564811292303,0.0754564811292303,-105.0189401,39.7717271,-105.019823,39.7717267
-3322,379,63,0.0417835231628563,0.0417835231628563,-105.019823,39.7717267,-105.0203119,39.7717265
-3323,63,1255,0.0152981335887719,0.0152981335887719,-105.0203119,39.7717265,-105.0204909,39.7717263
-3326,3228,3229,0.0836292502069327,0.0836292502069327,-105.0315008,39.7718744,-105.0324789,39.7718967
-3327,3229,3230,0.0485562677029858,0.0485562677029858,-105.0324789,39.7718967,-105.0330468,39.7719096
-3330,3232,3233,0.105369806952797,0.105369806952797,-104.993638,39.7717733,-104.9948707,39.7717558
-3331,3233,3234,0.0244901910381055,0.0244901910381055,-104.9948707,39.7717558,-104.9951572,39.7717601
-3332,3235,3236,0.101967463967826,0.101967463967826,-104.9982618,39.771756,-104.9994549,39.771756
-3333,3236,3237,0.10049747789636,0.10049747789636,-104.9994549,39.771756,-105.0006308,39.771756
-3334,3237,3238,0.0983034665163014,0.0983034665163014,-105.0006308,39.771756,-105.0017809,39.7717428
-3335,3238,3239,0.103439327677052,0.103439327677052,-105.0017809,39.7717428,-105.0029911,39.771756
-3336,3239,715,0.100109252929192,0.100109252929192,-105.0029911,39.771756,-105.0041615,39.7717924
-3337,715,3240,0.10857516210103,0.10857516210103,-105.0041615,39.7717924,-105.0054318,39.7718056
-3338,3240,3241,0.0836693243428755,0.0836693243428755,-105.0054318,39.7718056,-105.0064102,39.7718319
-3340,1256,2714,0.204938708369458,0.204938708369458,-105.0204902,39.7720858,-105.0228875,39.7720427
-3341,2714,3242,0.194775016549959,0.194775016549959,-105.0228875,39.7720427,-105.0251665,39.7720519
-3343,3243,3244,0.104619278832535,0.104619278832535,-104.9874858,39.7038766,-104.9862629,39.7038708
-3344,3244,3245,0.0999091629456622,0.0999091629456622,-104.9862629,39.7038708,-104.9850951,39.7038613
-3345,3245,3246,0.0969207243261653,0.0969207243261653,-104.9850951,39.7038613,-104.9839622,39.7038547
-3346,3246,3247,0.100620613481727,0.100620613481727,-104.9839622,39.7038547,-104.9827863,39.7038745
-3347,3247,3248,0.051818780315465,0.051818780315465,-104.9827863,39.7038745,-104.9821867,39.7039406
-3348,3248,3249,0.0493068623564548,0.0493068623564548,-104.9821867,39.7039406,-104.9816104,39.7039471
-3349,3249,3250,0.102061915203609,0.102061915203609,-104.9816104,39.7039471,-104.9804174,39.7039537
-3350,3250,3251,0.0474417721331526,0.0474417721331526,-104.9804174,39.7039537,-104.9798629,39.70396
-3351,3251,3252,0.0496832213808208,0.0496832213808208,-104.9798629,39.70396,-104.9792822,39.7039665
-3352,3252,3253,0.00274646412019378,0.00274646412019378,-104.9792822,39.7039665,-104.9792501,39.7039669
-3353,3253,3254,0.0454267490135207,0.0454267490135207,-104.9792501,39.7039669,-104.9787191,39.7039689
-3354,3254,3255,0.00458544852460102,0.00458544852460102,-104.9787191,39.7039689,-104.9786655,39.7039691
-3355,3255,3256,0.0483268582508211,0.0483268582508211,-104.9786655,39.7039691,-104.9781006,39.7039712
-3357,3257,3258,0.0459440862493274,0.0459440862493274,-104.9302161,39.7037522,-104.9296823,39.7037068
-3358,3258,3259,0.236332489020417,0.236332489020417,-104.9296823,39.7037068,-104.9269572,39.7040556
-3360,3260,2735,0.173472989255867,0.173472989255867,-104.9578793,39.7047229,-104.9558537,39.7046503
-3362,594,2050,0.105283533842597,0.105283533842597,-104.9686935,39.7038655,-104.9674629,39.7038542
-3363,2050,3261,0.0509100007310826,0.0509100007310826,-104.9674629,39.7038542,-104.9668678,39.7038549
-3364,3261,3262,0.0467523465641757,0.0467523465641757,-104.9668678,39.7038549,-104.9663213,39.7038542
-3365,3262,3263,0.0481309278210478,0.0481309278210478,-104.9663213,39.7038542,-104.9657587,39.7038574
-3366,3263,3264,0.051732585346973,0.051732585346973,-104.9657587,39.7038574,-104.965154,39.7038608
-3367,3264,3265,0.0457622961694799,0.0457622961694799,-104.965154,39.7038608,-104.9646191,39.703865
-3368,3265,3266,0.0530171123380122,0.0530171123380122,-104.9646191,39.703865,-104.9639994,39.7038698
-3369,3266,3267,0.0451783444295864,0.0451783444295864,-104.9639994,39.7038698,-104.9634713,39.7038687
-3370,3267,3268,0.0542978455447466,0.0542978455447466,-104.9634713,39.7038687,-104.9628366,39.7038674
-3371,3268,3269,0.0466844058034087,0.0466844058034087,-104.9628366,39.7038674,-104.962291,39.7038591
-3372,3269,3270,0.050646295110284,0.050646295110284,-104.962291,39.7038591,-104.9616991,39.70385
-3373,3270,3271,0.0484988623690369,0.0484988623690369,-104.9616991,39.70385,-104.9611322,39.7038533
-3374,3271,3272,0.0498932625841468,0.0498932625841468,-104.9611322,39.7038533,-104.960549,39.7038566
-3375,3272,3273,0.0470944745658083,0.0470944745658083,-104.960549,39.7038566,-104.9599985,39.7038566
-3376,3273,3274,0.0579078107783869,0.0579078107783869,-104.9599985,39.7038566,-104.9593216,39.7038566
-3377,3274,3275,0.151893561253266,0.151893561253266,-104.9593216,39.7038566,-104.9575461,39.7038494
-3378,3275,3276,0.0516549077274405,0.0516549077274405,-104.9575461,39.7038494,-104.9569423,39.703847
-3379,3276,2734,0.0976564411094966,0.0976564411094966,-104.9569423,39.703847,-104.9558008,39.7038404
-3380,2734,3277,0.0486100790727351,0.0486100790727351,-104.9558008,39.7038404,-104.9552326,39.7038437
-3381,3277,3278,0.0497906140365211,0.0497906140365211,-104.9552326,39.7038437,-104.9546506,39.703847
-3382,3278,3279,0.0484124404037645,0.0484124404037645,-104.9546506,39.703847,-104.9540847,39.703845
-3383,3279,3280,0.00653599515433254,0.00653599515433254,-104.9540847,39.703845,-104.9540083,39.7038447
-3384,3280,3178,0.0418764820732136,0.0418764820732136,-104.9540083,39.7038447,-104.9535191,39.7038314
-3385,3178,3284,0.0979449587868123,0.0979449587868123,-104.9535191,39.7038314,-104.9523742,39.7038339
-3386,3284,3285,0.201022039935831,0.201022039935831,-104.9523742,39.7038339,-104.9500244,39.7038338
-3389,3287,2316,0.156303067302058,0.156303067302058,-104.9490802,39.7038404,-104.9472534,39.7038645
-20281,10719,10710,0.0549191742699874,0.0549191742699874,-105.0441026,39.7730223,-105.0441026,39.7735162
-3390,2316,3288,0.10952595107857,0.10952595107857,-104.9472534,39.7038645,-104.9459732,39.7038536
-3391,3288,3289,0.0403941356128906,0.0403941356128906,-104.9459732,39.7038536,-104.9455011,39.7038602
-3392,3289,3290,0.0912238346425634,0.0912238346425634,-104.9455011,39.7038602,-104.9444349,39.7038735
-3393,3290,3291,0.0816082032445177,0.0816082032445177,-104.9444349,39.7038735,-104.9434841,39.703814
-3394,3291,3292,0.0169509581328033,0.0169509581328033,-104.9434841,39.703814,-104.9432867,39.7038272
-3395,3292,3293,0.0433466637454668,0.0433466637454668,-104.9432867,39.7038272,-104.9427803,39.703814
-3396,3293,3294,0.0186582685984772,0.0186582685984772,-104.9427803,39.703814,-104.9425622,39.7038146
-3397,3294,3295,0.152140762364393,0.152140762364393,-104.9425622,39.7038146,-104.9407838,39.7038199
-3403,3299,1325,0.177116632986756,0.177116632986756,-105.0432684,39.7149673,-105.0432523,39.7133745
-3404,1325,1381,0.178046664647513,0.178046664647513,-105.0432523,39.7133745,-105.0432442,39.7117733
-3406,1057,3300,0.119136901138604,0.119136901138604,-105.043349,39.701089,-105.0433583,39.7021604
-3408,3301,1581,0.141640668502809,0.141640668502809,-105.0432038,39.6894869,-105.0432085,39.6882131
-3409,1581,3302,0.308989164663259,0.308989164663259,-105.0432085,39.6882131,-105.0432162,39.6854343
-3411,3304,3305,0.143837220516125,0.143837220516125,-104.9886307,39.7573647,-104.9874361,39.7582757
-3412,3305,3306,0.147698693465714,0.147698693465714,-104.9874361,39.7582757,-104.9862237,39.7592221
-3414,3307,3308,0.146426311775338,0.146426311775338,-104.985009,39.7601612,-104.983803,39.7610964
-3415,3308,3309,0.146463761248984,0.146463761248984,-104.983803,39.7610964,-104.9825927,39.7620288
-3416,3309,3310,0.146549783304075,0.146549783304075,-104.9825927,39.7620288,-104.9813837,39.7629633
-3417,3310,2029,0.145425360285073,0.145425360285073,-104.9813837,39.7629633,-104.9801901,39.7638953
-3418,2029,3311,0.146713513284486,0.146713513284486,-104.9801901,39.7638953,-104.9789777,39.7648293
-3419,3311,634,0.143866210964815,0.143866210964815,-104.9789777,39.7648293,-104.9777895,39.7657457
-3420,634,3312,0.147112545494359,0.147112545494359,-104.9777895,39.7657457,-104.9765745,39.7666828
-3421,3312,3313,0.145900102395242,0.145900102395242,-104.9765745,39.7666828,-104.9753728,39.7676147
-3422,3313,2321,0.147128656269274,0.147128656269274,-104.9753728,39.7676147,-104.9741575,39.7685518
-3424,3314,3315,0.0970240945457023,0.0970240945457023,-105.0159395,39.7426917,-105.0155552,39.7435127
-3425,3315,2190,0.185651929243496,0.185651929243496,-105.0155552,39.7435127,-105.0139689,39.7423726
-3427,737,1557,0.13315596414531,0.13315596414531,-104.960283,39.7764662,-104.9602842,39.7776637
-3429,3316,3317,0.0821429797668101,0.0821429797668101,-104.960267,39.7804939,-104.9602584,39.7812326
-3434,3321,3322,0.579886710164932,0.579886710164932,-104.957135,39.788086,-104.9570057,39.7933001
-3436,3323,3324,0.139196729808835,0.139196729808835,-104.9573156,39.7544732,-104.9573671,39.7557244
-3438,3325,3326,0.13668278082176,0.13668278082176,-104.95735,39.7569806,-104.9573414,39.7582098
-3439,3326,3045,0.137860640994287,0.137860640994287,-104.9573414,39.7582098,-104.9573829,39.7594492
-3440,3045,3327,0.13778919161955,0.13778919161955,-104.9573829,39.7594492,-104.9573341,39.7606878
-3441,3327,3328,0.00447003605120276,0.00447003605120276,-104.9573341,39.7606878,-104.9573341,39.760728
-3442,3328,3329,0.0233867925544547,0.0233867925544547,-104.9573341,39.760728,-104.9573301,39.7609383
-3443,3329,3330,0.116012449407873,0.116012449407873,-104.9573301,39.7609383,-104.9573395,39.7619816
-3444,3330,1166,0.139882774592672,0.139882774592672,-104.9573395,39.7619816,-104.957304,39.7632393
-3445,1166,886,0.137525679366119,0.137525679366119,-104.957304,39.7632393,-104.9573328,39.7644759
-3446,886,3332,0.139657446365043,0.139657446365043,-104.9573328,39.7644759,-104.95735,39.7657318
-3447,3332,2793,0.133361291612613,0.133361291612613,-104.95735,39.7657318,-104.9573362,39.7669311
-3448,2793,3333,0.132228102569741,0.132228102569741,-104.9573362,39.7669311,-104.9573212,39.7681202
-3450,3334,3335,0.0903059057199572,0.0903059057199572,-104.9574709,39.7328847,-104.9574452,39.7336966
-3451,3335,3336,0.154418186694308,0.154418186694308,-104.9574452,39.7336966,-104.9574365,39.7350853
-3452,3336,3337,0.192225493046604,0.192225493046604,-104.9574365,39.7350853,-104.9574002,39.7368138
-3453,3337,3338,0.174660133594583,0.174660133594583,-104.9574002,39.7368138,-104.9574371,39.7383843
-3454,3338,3339,0.202477883587996,0.202477883587996,-104.9574371,39.7383843,-104.9573922,39.7402049
-3455,3339,3340,0.0759856229646665,0.0759856229646665,-104.9573922,39.7402049,-104.9569483,39.7407969
-3456,3340,3341,0.00965813264254578,0.00965813264254578,-104.9569483,39.7407969,-104.9568365,39.7408093
-3458,3342,1191,0.166878049186437,0.166878049186437,-104.9578337,39.7256186,-104.9578631,39.7271192
-3459,1191,3343,0.0216063183857929,0.0216063183857929,-104.9578631,39.7271192,-104.9578657,39.7273135
-3460,3343,3344,0.200920604325059,0.200920604325059,-104.9578657,39.7273135,-104.9578774,39.7291204
-3462,2346,3345,0.174959253236807,0.174959253236807,-104.95708,39.7194068,-104.957017,39.7209795
-3463,3345,1535,0.0463919707335885,0.0463919707335885,-104.957017,39.7209795,-104.95706,39.7213954
-3465,3346,3347,0.27909963341584,0.27909963341584,-104.9571645,39.7728928,-104.9571698,39.7754028
-3466,3347,740,0.112084486383373,0.112084486383373,-104.9571698,39.7754028,-104.9571699,39.7764108
-3467,740,1560,0.139918597194563,0.139918597194563,-104.9571699,39.7764108,-104.9571611,39.7776691
-3468,1560,3348,0.140278682022104,0.140278682022104,-104.9571611,39.7776691,-104.9571942,39.7789304
-3469,3348,3349,0.121438604958881,0.121438604958881,-104.9571942,39.7789304,-104.9571502,39.780022
-3471,3350,3351,0.173966017570494,0.173966017570494,-104.9570341,39.7225614,-104.9570255,39.7241259
-3472,3351,3352,0.16543284170321,0.16543284170321,-104.9570255,39.7241259,-104.9570447,39.7256136
-3474,3353,3354,0.201189633952299,0.201189633952299,-104.9338095,39.725615,-104.9338255,39.7274243
-3477,3356,3357,0.174637614655306,0.174637614655306,-104.9339641,39.7162382,-104.9339472,39.7178087
-3479,2467,3359,0.203720276949683,0.203720276949683,-104.9339464,39.7474085,-104.9339447,39.7492406
-3480,3359,3360,0.200874146006411,0.200874146006411,-104.9339447,39.7492406,-104.93395,39.7510471
-3481,3360,795,0.199720493083652,0.199720493083652,-104.93395,39.7510471,-104.9339366,39.7528432
-3482,795,3361,0.203163577363555,0.203163577363555,-104.9339366,39.7528432,-104.9339125,39.7546702
-3484,3362,3363,0.203261629260278,0.203261629260278,-104.9338998,39.7564865,-104.9339411,39.7583142
-3485,3363,3061,0.206912153397241,0.206912153397241,-104.9339411,39.7583142,-104.9339669,39.7601749
-3486,3061,3364,0.186005329793712,0.186005329793712,-104.9339669,39.7601749,-104.9339093,39.7618471
-3488,3365,1140,0.135699508009882,0.135699508009882,-104.93438,39.7620028,-104.9343976,39.7632231
-3490,907,3366,0.12816779719188,0.12816779719188,-104.934389,39.7644899,-104.9343764,39.7656425
-3492,3367,1297,0.200952363448705,0.200952363448705,-104.993544,39.7147942,-104.993537,39.712987
-3494,3368,3369,0.101405416836813,0.101405416836813,-104.9939645,39.7165966,-104.994016,39.7156855
-3495,3369,3370,0.0983850243457341,0.0983850243457341,-104.994016,39.7156855,-104.9939989,39.7148008
-3497,3371,3372,0.0654246270475212,0.0654246270475212,-104.9267742,39.7019885,-104.9262421,39.7015659
-3498,3372,2939,0.0903071880553539,0.0903071880553539,-104.9262421,39.7015659,-104.92577,39.7008395
-3499,2939,3373,0.0855248234583031,0.0855248234583031,-104.92577,39.7008395,-104.9252722,39.7001725
-3500,3373,59,0.083918142781954,0.083918142781954,-104.9252722,39.7001725,-104.9247401,39.6995385
-3502,3374,3375,0.253631602277532,0.253631602277532,-104.9240963,39.6988121,-104.9216081,39.6975721
-3503,3376,3377,0.201161683466984,0.201161683466984,-105.0346426,39.7329669,-105.0345825,39.7347754
-3505,3378,623,0.0117822953093903,0.0117822953093903,-105.0345825,39.7364651,-105.0346068,39.7365694
-3506,623,3379,0.132533255410588,0.132533255410588,-105.0346068,39.7365694,-105.0346077,39.7377613
-3507,3379,3380,0.0779035335014782,0.0779035335014782,-105.0346077,39.7377613,-105.0346105,39.7384619
-3508,3380,3381,0.206545256567466,0.206545256567466,-105.0346105,39.7384619,-105.0346043,39.7403194
-20694,10906,10909,0.0421787313564029,0.0421787313564029,-105.0403806,39.7653734,-105.0401144,39.7656928
-3509,3381,3382,0.13283549460514,0.13283549460514,-105.0346043,39.7403194,-105.0345957,39.741514
-3510,3382,3383,0.135569425081515,0.135569425081515,-105.0345957,39.741514,-105.0346003,39.7427332
-3511,3383,3384,0.136156970349478,0.136156970349478,-105.0346003,39.7427332,-105.0345657,39.7439574
-3512,3384,3385,0.132775661568888,0.132775661568888,-105.0345657,39.7439574,-105.0345837,39.7451514
-3514,2584,3386,0.177011208890761,0.177011208890761,-105.0350986,39.7229295,-105.0350981,39.7245214
-3515,3386,3387,0.0885846426355864,0.0885846426355864,-105.0350981,39.7245214,-105.0351109,39.725318
-3518,3389,3390,0.176205550995696,0.176205550995696,-105.034904,39.7165547,-105.0349211,39.7181393
-3519,3390,3391,0.169210992899206,0.169210992899206,-105.0349211,39.7181393,-105.0349049,39.719661
-3520,3391,3392,0.0099077669914251,0.0099077669914251,-105.0349049,39.719661,-105.034904,39.7197501
-3521,3392,1849,0.175456016508954,0.175456016508954,-105.034904,39.7197501,-105.0349126,39.721328
-3522,1849,2583,0.178501996899051,0.178501996899051,-105.0349126,39.721328,-105.0349367,39.7229332
-3524,600,3393,0.2153977841733,0.2153977841733,-105.0351121,39.7257688,-105.0351232,39.7277059
-3526,3394,3395,0.118920951518272,0.118920951518272,-105.0351404,39.7282472,-105.0351232,39.7293166
-3527,3395,3396,0.142989811640976,0.142989811640976,-105.0351232,39.7293166,-105.0351361,39.7306025
-3528,3396,3397,0.262177718796624,0.262177718796624,-105.0351361,39.7306025,-105.0351232,39.7329603
-3530,14,3398,0.133564321671034,0.133564321671034,-105.0345689,39.7463686,-105.0345861,39.7475697
-3531,3398,3399,0.133563180552006,0.133563180552006,-105.0345861,39.7475697,-105.0346118,39.7487707
-3532,3399,3400,0.135746766447532,0.135746766447532,-105.0346118,39.7487707,-105.0346118,39.7499915
-3533,3400,3401,0.133513247236878,0.133513247236878,-105.0346118,39.7499915,-105.0346192,39.7511922
-3534,3401,3402,0.0998328095575455,0.0998328095575455,-105.0346192,39.7511922,-105.0346118,39.75209
-3535,3402,3403,0.0352154332682272,0.0352154332682272,-105.0346118,39.75209,-105.0346118,39.7524067
-3536,3403,2405,0.0667725534497617,0.0667725534497617,-105.0346118,39.7524067,-105.0346118,39.7530072
-3537,2405,3404,0.0682403264820305,0.0682403264820305,-105.0346118,39.7530072,-105.0346118,39.7536209
-3538,3404,3405,0.033013773721009,0.033013773721009,-105.0346118,39.7536209,-105.0346118,39.7539178
-3539,3405,3409,0.0499933274562477,0.0499933274562477,-105.0346118,39.7539178,-105.0346129,39.7543674
-3540,3409,3410,0.0543299225353451,0.0543299225353451,-105.0346129,39.7543674,-105.034614,39.754856
-3541,3410,1767,0.0526619512572465,0.0526619512572465,-105.034614,39.754856,-105.0346147,39.7553296
-3542,1767,3411,0.150417295173728,0.150417295173728,-105.0346147,39.7553296,-105.034602,39.7566823
-3543,3411,2979,0.204011051874628,0.204011051874628,-105.034602,39.7566823,-105.0346118,39.758517
-3544,2979,656,0.0515792906446319,0.0515792906446319,-105.0346118,39.758517,-105.0346018,39.7589808
-3546,1887,591,0.0491592770696459,0.0491592770696459,-105.0346033,39.7594473,-105.0346033,39.7598894
-3547,591,3412,0.0481379602388448,0.0481379602388448,-105.0346033,39.7598894,-105.034608,39.7603223
-3548,3412,3413,0.102266489872996,0.102266489872996,-105.034608,39.7603223,-105.0346118,39.761242
-3549,3413,1888,0.0486842125387167,0.0486842125387167,-105.0346118,39.761242,-105.0346054,39.7616798
-3550,1888,3414,0.0510943840977224,0.0510943840977224,-105.0346054,39.7616798,-105.0346033,39.7621393
-3551,3414,3415,0.00919583632372114,0.00919583632372114,-105.0346033,39.7621393,-105.0346035,39.762222
-3552,3415,3416,0.0353489043837471,0.0353489043837471,-105.0346035,39.762222,-105.0346041,39.7625399
-17077,3568,8074,0.699339640197117,0.699339640197117,-104.9616097,39.7544552,-104.9615934,39.7607445
-3553,3416,3417,0.050093361124945,0.050093361124945,-105.0346041,39.7625399,-105.0346033,39.7629904
-3554,3417,3418,0.0498820440925909,0.0498820440925909,-105.0346033,39.7629904,-105.0346033,39.763439
-3555,3418,3419,0.0498984530952944,0.0498984530952944,-105.0346033,39.763439,-105.0346118,39.7638877
-3556,3419,3420,0.00880663819045291,0.00880663819045291,-105.0346118,39.7638877,-105.0346118,39.7639669
-3557,3420,3421,0.0410819827191675,0.0410819827191675,-105.0346118,39.7639669,-105.0346204,39.7643363
-3558,3421,3422,0.0491592770696459,0.0491592770696459,-105.0346204,39.7643363,-105.0346204,39.7647784
-3559,3422,3423,0.0205377029518591,0.0205377029518591,-105.0346204,39.7647784,-105.0346204,39.7649631
-3560,3423,3424,0.02549703249469,0.02549703249469,-105.0346204,39.7649631,-105.0346199,39.7651924
-3562,3425,3425,0.000442266584977921,0.000442266584977921,-105.0346312,39.7657434,-105.034629,39.7657398
-3563,3425,3426,0.0816315051221547,0.0816315051221547,-105.034629,39.7657398,-105.0346376,39.7664739
-3565,3427,1664,0.0502947464100412,0.0502947464100412,-105.0346332,39.7669387,-105.034629,39.767391
-3567,1683,3428,0.020460323508623,0.020460323508623,-105.0346312,39.7676742,-105.0346296,39.7678582
-3568,3428,3429,0.0515955226949506,0.0515955226949506,-105.0346296,39.7678582,-105.0346257,39.7683222
-3569,3429,3430,0.133978887334031,0.133978887334031,-105.0346257,39.7683222,-105.0346278,39.7695271
-3570,3430,2427,0.13659869274501,0.13659869274501,-105.0346278,39.7695271,-105.0346118,39.7707555
-3571,2427,2428,0.063830021941611,0.063830021941611,-105.0346118,39.7707555,-105.0346033,39.7713295
-3572,2428,3231,0.0696897365044123,0.0696897365044123,-105.0346033,39.7713295,-105.0345947,39.7719562
-3573,3231,3431,0.132766742414187,0.132766742414187,-105.0345947,39.7719562,-105.0345947,39.7731502
-3574,3431,3432,0.106360486773292,0.106360486773292,-105.0345947,39.7731502,-105.0346033,39.7741067
-3575,3432,3433,0.0970117847237812,0.0970117847237812,-105.0346033,39.7741067,-105.0345914,39.7749791
-3576,3433,3434,0.1971376871667,0.1971376871667,-105.0345914,39.7749791,-105.0345947,39.776752
-19819,5606,10648,0.0581167522759965,0.0581167522759965,-105.0015885,39.7300077,-105.0009089,39.7300077
-3577,3434,3435,0.133491532527273,0.133491532527273,-105.0345947,39.776752,-105.0346033,39.7779525
-3582,2842,3438,0.0923852774741301,0.0923852774741301,-105.0346113,39.7802434,-105.0345914,39.7810741
-3584,1421,317,0.102691144252484,0.102691144252484,-105.0345828,39.7821162,-105.0345742,39.7830397
-3585,317,513,0.0772222660891488,0.0772222660891488,-105.0345742,39.7830397,-105.0345487,39.7837339
-3586,513,3439,0.0612593596381532,0.0612593596381532,-105.0345487,39.7837339,-105.0345546,39.7842848
-3587,3439,3440,0.148872782400453,0.148872782400453,-105.0345546,39.7842848,-105.0345689,39.7856236
-3588,3440,2540,0.197920167618774,0.197920167618774,-105.0345689,39.7856236,-105.0345536,39.7874035
-3589,2540,3441,0.415850973508269,0.415850973508269,-105.0345536,39.7874035,-105.034619,39.791143
-3590,3442,699,0.201963508155417,0.201963508155417,-104.9465187,39.7401565,-104.9465157,39.7419728
-3591,699,3443,0.200352700158165,0.200352700158165,-104.9465157,39.7419728,-104.9465253,39.7437746
-3593,3444,3445,0.0185806742090463,0.0185806742090463,-104.9462569,39.7617553,-104.9462568,39.7619224
-20212,5504,7078,0.147322900830237,0.147322900830237,-104.9808533,39.7606816,-104.9796366,39.76162
-20213,7078,2034,0.146401533431931,0.146401533431931,-104.9796366,39.76162,-104.9784268,39.762552
-20214,2034,5323,0.145002332578884,0.145002332578884,-104.9784268,39.762552,-104.9772313,39.7634772
-20215,5323,632,0.146882687938452,0.146882687938452,-104.9772313,39.7634772,-104.976027,39.7644195
-4488,138,4177,0.203369481928684,0.203369481928684,-104.9910005,39.6930189,-104.9910305,39.6911901
-4489,4177,1741,0.0411375852444616,0.0411375852444616,-104.9910305,39.6911901,-104.9910219,39.6908202
-4490,1741,4178,0.159371364409943,0.159371364409943,-104.9910219,39.6908202,-104.9910391,39.689387
-4492,4179,4180,0.471114595558298,0.471114595558298,-104.9951206,39.7057312,-104.9922008,39.7021389
-4493,4180,4181,0.219268705400549,0.219268705400549,-104.9922008,39.7021389,-104.9925156,39.7001819
-4495,4182,4183,0.0994268923770179,0.0994268923770179,-104.9923595,39.714781,-104.992337,39.713887
-4496,4183,1296,0.100075433980265,0.100075433980265,-104.992337,39.713887,-104.992337,39.712987
-4497,1296,1369,0.0964029757899856,0.0964029757899856,-104.992337,39.712987,-104.9923595,39.7121202
-5794,5116,3795,0.199284062960758,0.199284062960758,-104.9706146,39.727291,-104.9706199,39.7290832
-18557,318,10316,0.0220547227626022,0.0220547227626022,-105.0344342,39.7830352,-105.0343233,39.7828561
-4499,4184,4185,0.301634217878433,0.301634217878433,-104.9923849,39.7111672,-104.9924234,39.7084547
-4501,2809,3744,0.0998445716696615,0.0998445716696615,-104.9921793,39.7165966,-104.9921878,39.7156987
-4502,3744,4186,0.10131230641957,0.10131230641957,-104.9921878,39.7156987,-104.9921793,39.7147876
-4504,4187,4188,0.132156563746112,0.132156563746112,-105.008021,39.7620353,-105.0080281,39.7632238
-4505,4188,4189,0.132402395077485,0.132402395077485,-105.0080281,39.7632238,-105.0080378,39.7644145
-4506,4189,4190,0.137552756241722,0.137552756241722,-105.0080378,39.7644145,-105.0080808,39.7656511
-4507,4190,4191,0.13379771872617,0.13379771872617,-105.0080808,39.7656511,-105.0080637,39.7668543
-4508,4191,1671,0.132214775902914,0.132214775902914,-105.0080637,39.7668543,-105.0080403,39.7680432
-4509,1671,4192,0.137147368544834,0.137147368544834,-105.0080403,39.7680432,-105.0080117,39.7692764
-4510,4192,2452,0.138219895716206,0.138219895716206,-105.0080117,39.7692764,-105.0080496,39.7705191
-4511,2452,3221,0.134932977312539,0.134932977312539,-105.0080496,39.7705191,-105.0080156,39.7717323
-4512,3221,4193,0.133628518122145,0.133628518122145,-105.0080156,39.7717323,-105.0080475,39.7729338
-4515,4195,554,0.154583323244677,0.154583323244677,-105.0077585,39.7352875,-105.0077561,39.7366777
-4516,554,4196,0.0224725093154139,0.0224725093154139,-105.0077561,39.7366777,-105.0077558,39.7368798
-4517,4083,4197,0.170590775930264,0.170590775930264,-105.0082472,39.7838436,-105.0081572,39.7853762
-4518,4197,3764,0.0397497113610314,0.0397497113610314,-105.0081572,39.7853762,-105.0079576,39.7856991
-4520,2820,1411,0.135923564862653,0.135923564862653,-105.0079788,39.7801613,-105.0079981,39.7813836
-4521,1411,1351,0.125050095081124,0.125050095081124,-105.0079981,39.7813836,-105.007995,39.7825082
-4523,4198,4199,0.454148647656551,0.454148647656551,-105.007437,39.721279,-105.0075072,39.7253629
-4525,4200,4201,0.133477223659273,0.133477223659273,-105.007629,39.7729337,-105.0075947,39.7741338
-4526,4201,4202,0.132617384077965,0.132617384077965,-105.0075947,39.7741338,-105.0076269,39.7753262
-4527,4202,4203,0.134214836424706,0.134214836424706,-105.0076269,39.7753262,-105.0076366,39.7765332
-4531,4206,1274,0.135021280032386,0.135021280032386,-105.0189551,39.7494633,-105.0204817,39.7497745
-4533,4207,4208,0.280988389053987,0.280988389053987,-105.0146092,39.7516734,-105.0166519,39.7496937
-4534,4209,4210,0.209285084830873,0.209285084830873,-105.0180383,39.7004566,-105.0180554,39.6985745
-4535,4210,4211,0.203065667561202,0.203065667561202,-105.0180554,39.6985745,-105.0180463,39.6967483
-4537,4212,3742,0.11682398880887,0.11682398880887,-105.018373,39.7168584,-105.0181498,39.7158219
-4538,3742,4213,0.111567725645095,0.111567725645095,-105.0181498,39.7158219,-105.018014,39.714824
-4539,4213,1339,0.201798845648163,0.201798845648163,-105.018014,39.714824,-105.0179868,39.7130093
-4541,4214,4215,0.203408625976642,0.203408625976642,-105.0180211,39.7111539,-105.018064,39.7093249
-4542,4215,4216,0.204114710404745,0.204114710404745,-105.018064,39.7093249,-105.0180812,39.7074893
-4543,4216,4217,0.199718562750948,0.199718562750948,-105.0180812,39.7074893,-105.0180726,39.7056932
-4544,4217,4218,0.198271148516705,0.198271148516705,-105.0180726,39.7056932,-105.0180383,39.7039103
-4545,4218,771,0.17255385564489,0.17255385564489,-105.0180383,39.7039103,-105.0180297,39.7023585
-4547,2307,165,0.313487377331004,0.313487377331004,-105.0183816,39.6959593,-105.0184206,39.6931402
-4549,4219,4220,0.186213228977795,0.186213228977795,-104.928034,39.690987,-104.9274781,39.6893679
-4551,754,1537,0.148966155582635,0.148966155582635,-104.9870376,39.7752102,-104.9869861,39.7765493
-4553,4221,4222,0.161148121345995,0.161148121345995,-104.9868954,39.7805099,-104.9869216,39.781959
-4554,4222,4223,0.216135114601666,0.216135114601666,-104.9869216,39.781959,-104.986953,39.7839026
-4555,4223,2863,0.186375265274556,0.186375265274556,-104.986953,39.7839026,-104.9869616,39.7855787
-4556,2863,4224,0.202043234198664,0.202043234198664,-104.9869616,39.7855787,-104.9869346,39.7873956
-4558,2306,163,0.315813218507964,0.315813218507964,-105.0174374,39.6959857,-105.0174975,39.6931459
-4560,2936,4225,0.221837398274975,0.221837398274975,-105.0178175,39.6879086,-105.01767,39.6859168
-4561,4226,4227,0.032037204481033,0.032037204481033,-104.9365695,39.6966812,-104.936211,39.696598
-4562,4227,3117,0.0749583948430369,0.0749583948430369,-104.936211,39.696598,-104.935335,39.696587
-4563,3117,4228,0.116878015161696,0.116878015161696,-104.935335,39.696587,-104.933969,39.696598
-4564,4228,4229,0.198835732908948,0.198835732908948,-104.933969,39.696598,-104.931645,39.696598
-4565,4229,3631,0.67836534857008,0.67836534857008,-104.931645,39.696598,-104.9237198,39.6967811
-4567,4230,4231,0.0278521738101303,0.0278521738101303,-104.9812906,39.6966263,-104.9809651,39.6966301
-4568,4231,3626,0.0483370034898742,0.0483370034898742,-104.9809651,39.6966301,-104.9804002,39.6966367
-4569,3626,4232,0.0510217447847317,0.0510217447847317,-104.9804002,39.6966367,-104.979804,39.6966266
-4570,4232,4233,0.0469996469262497,0.0469996469262497,-104.979804,39.6966266,-104.9792547,39.6966219
-4571,4233,4234,0.00322569080192639,0.00322569080192639,-104.9792547,39.6966219,-104.979217,39.6966216
-4572,4234,4235,0.0476498478152495,0.0476498478152495,-104.979217,39.6966216,-104.9786601,39.6966169
-4573,4235,4236,0.00275575991011001,0.00275575991011001,-104.9786601,39.6966169,-104.9786279,39.6966163
-4574,4236,4237,0.0466374525425622,0.0466374525425622,-104.9786279,39.6966163,-104.9780828,39.6966169
-4575,4237,4176,0.0490297893404984,0.0490297893404984,-104.9780828,39.6966169,-104.9775098,39.6966104
-4577,1777,4238,0.0499406466420926,0.0499406466420926,-104.9769241,39.6966037,-104.9763404,39.6966061
-4578,4238,4239,0.0481565861804565,0.0481565861804565,-104.9763404,39.6966061,-104.9757777,39.6965959
-4579,4239,4241,0.0519465642125291,0.0519465642125291,-104.9757777,39.6965959,-104.9751708,39.6966094
-4580,4241,1525,0.0497346926389818,0.0497346926389818,-104.9751708,39.6966094,-104.9745895,39.6966103
-4581,1525,4242,0.0484856348902157,0.0484856348902157,-104.9745895,39.6966103,-104.9740228,39.6966115
-4582,4242,4243,0.0507187078501555,0.0507187078501555,-104.9740228,39.6966115,-104.97343,39.6966128
-4584,4244,4245,0.0527177379947323,0.0527177379947323,-104.9827699,39.6966096,-104.983386,39.6966166
-4585,4245,4246,0.0464286276535365,0.0464286276535365,-104.983386,39.6966166,-104.9839286,39.6966228
-4586,4246,4247,0.0517965186978674,0.0517965186978674,-104.9839286,39.6966228,-104.984534,39.6966228
-4587,4247,4248,0.0444043495278385,0.0444043495278385,-104.984534,39.6966228,-104.985053,39.6966228
-4588,4248,569,0.0503939700372948,0.0503939700372948,-104.985053,39.6966228,-104.985642,39.6966206
-4589,569,4249,0.0487604458581461,0.0487604458581461,-104.985642,39.6966206,-104.9862119,39.6966237
-4590,4249,4250,0.049686610105401,0.049686610105401,-104.9862119,39.6966237,-104.9867926,39.6966289
-4591,4250,3757,0.0516485422129312,0.0516485422129312,-104.9867926,39.6966289,-104.9873962,39.696636
-4593,233,4251,0.0506501019029544,0.0506501019029544,-104.968695,39.6965912,-104.968103,39.6965907
-4594,4251,4252,0.049085285550805,0.049085285550805,-104.968103,39.6965907,-104.9675293,39.6965934
-4595,4252,4253,0.0509968613887819,0.0509968613887819,-104.9675293,39.6965934,-104.9669334,39.696583
-4596,4253,4254,0.0502265448038836,0.0502265448038836,-104.9669334,39.696583,-104.9663465,39.6965728
-4597,4254,4255,0.0465382189133341,0.0465382189133341,-104.9663465,39.6965728,-104.9658026,39.6965779
-4598,4255,4256,0.0510900830663337,0.0510900830663337,-104.9658026,39.6965779,-104.9652055,39.6965834
-4599,4256,4257,0.0497787434592631,0.0497787434592631,-104.9652055,39.6965834,-104.9646237,39.6965801
-4600,4257,3481,0.048623750791878,0.048623750791878,-104.9646237,39.6965801,-104.9640554,39.6965768
-4601,3481,4258,0.0500598342416855,0.0500598342416855,-104.9640554,39.6965768,-104.9634703,39.6965777
-4602,4258,4259,0.0490673464291656,0.0490673464291656,-104.9634703,39.6965777,-104.9628968,39.6965785
-4603,4259,4260,0.0504371465498466,0.0504371465498466,-104.9628968,39.6965785,-104.9623073,39.6965813
-4604,4260,3695,0.0479901081376225,0.0479901081376225,-104.9623073,39.6965813,-104.9617464,39.6965839
-4606,4261,4262,0.0501538740654185,0.0501538740654185,-104.9611486,39.6965834,-104.9605624,39.6965829
-4607,4262,4263,0.0491706548036751,0.0491706548036751,-104.9605624,39.6965829,-104.9599877,39.6965853
-4608,4263,4264,0.0565833994828839,0.0565833994828839,-104.9599877,39.6965853,-104.9593265,39.6965961
-4610,277,4265,0.0528934097089145,0.0528934097089145,-104.9875916,39.7783304,-104.9869736,39.7783568
-4611,4265,4266,0.0968160140004115,0.0968160140004115,-104.9869736,39.7783568,-104.9858407,39.7783502
-20627,10752,10756,0.0716547469239426,0.0716547469239426,-105.0229895,39.7619327,-105.0229933,39.7612883
-4612,4266,4267,0.0968245593658874,0.0968245593658874,-104.9858407,39.7783502,-104.9847077,39.7783568
-4613,4267,973,0.0982940228399724,0.0982940228399724,-104.9847077,39.7783568,-104.9835576,39.77837
-4614,973,4268,0.0961120665100732,0.0961120665100732,-104.9835576,39.77837,-104.9824332,39.7783502
-4615,4268,3151,0.0982830823377853,0.0982830823377853,-104.9824332,39.7783502,-104.9812831,39.7783502
-4616,3151,4269,0.0956500899819903,0.0956500899819903,-104.9812831,39.7783502,-104.980164,39.7783344
-4617,4269,4270,0.0774758788411222,0.0774758788411222,-104.980164,39.7783344,-104.9792574,39.7783303
-4619,4271,3870,0.115440404669678,0.115440404669678,-104.945419,39.778983,-104.9440689,39.7789476
-4620,3870,839,0.0968819352907846,0.0968819352907846,-104.9440689,39.7789476,-104.942936,39.7789146
-4621,839,4272,0.0909531666656291,0.0909531666656291,-104.942936,39.7789146,-104.9418717,39.778908
-4623,3911,4273,0.0389706485750465,0.0389706485750465,-104.9634588,39.7785997,-104.9630028,39.7785955
-4624,369,4274,0.037543890411303,0.037543890411303,-104.9593952,39.7789295,-104.9589559,39.778934
-4625,4274,4275,0.0617087098520115,0.0617087098520115,-104.9589559,39.778934,-104.9582338,39.7789377
-4629,2912,4277,0.0342245606725147,0.0342245606725147,-104.973349,39.7660612,-104.9736331,39.7662781
-4630,4277,4278,0.104948893572031,0.104948893572031,-104.9736331,39.7662781,-104.9745038,39.7669436
-4631,4278,3313,0.105285822276279,0.105285822276279,-104.9745038,39.7669436,-104.9753728,39.7676147
-4632,3313,4279,0.10593807567588,0.10593807567588,-104.9753728,39.7676147,-104.9762513,39.7682868
-4634,1347,1613,0.100174688565551,0.100174688565551,-104.9771684,39.7690078,-104.9779666,39.7696675
-4635,1613,4280,0.104997472753206,0.104997472753206,-104.9779666,39.7696675,-104.97885,39.7703237
-4665,4282,4283,0.0977314379471645,0.0977314379471645,-105.0344834,39.703983,-105.0344405,39.7031047
-4639,4284,4285,0.190476396365953,0.190476396365953,-104.9683885,39.7728911,-104.9705937,39.7726427
-4640,4285,4286,0.254383171783508,0.254383171783508,-104.9705937,39.7726427,-104.972693,39.7710209
-4642,4287,1279,0.116253581720056,0.116253581720056,-105.0191566,39.7536182,-105.0205165,39.7536172
-4643,1279,4288,0.133001385838575,0.133001385838575,-105.0205165,39.7536172,-105.0220723,39.7536126
-4644,4288,4289,0.132041969489344,0.132041969489344,-105.0220723,39.7536126,-105.0236168,39.7535999
-4645,4289,4290,0.131385678442372,0.131385678442372,-105.0236168,39.7535999,-105.0251537,39.7536044
-4647,3405,4291,0.101549832168715,0.101549832168715,-105.0346118,39.7539178,-105.0357997,39.753915
-4648,4291,4292,0.100523519517599,0.100523519517599,-105.0357997,39.753915,-105.0369756,39.753915
-4649,4292,4293,0.100138462817161,0.100138462817161,-105.0369756,39.753915,-105.0381466,39.7538916
-5953,5195,5227,0.170006104257124,0.170006104257124,-104.9891824,39.7241217,-104.9891795,39.7256506
-4650,4293,4294,0.099847555472709,0.099847555472709,-105.0381466,39.7538916,-105.039314,39.7539202
-4651,4294,4295,0.0503614009997415,0.0503614009997415,-105.039314,39.7539202,-105.0399031,39.7539235
-4652,4295,1117,0.0494296215921,0.0494296215921,-105.0399031,39.7539235,-105.0404813,39.7539268
-4653,1117,4296,0.050087846881447,0.050087846881447,-105.0404813,39.7539268,-105.0410672,39.7539301
-4654,4296,4297,0.0495578429804187,0.0495578429804187,-105.0410672,39.7539301,-105.0416469,39.7539334
-4655,4297,4298,0.0515578068709943,0.0515578068709943,-105.0416469,39.7539334,-105.04225,39.7539306
-20458,10785,10812,0.0256322806680483,0.0256322806680483,-105.0187626,39.7585641,-105.018527,39.7587067
-4656,4298,4299,0.00303478875120781,0.00303478875120781,-105.04225,39.7539306,-105.0422855,39.7539305
-4659,4300,1508,0.0639307257992365,0.0639307257992365,-105.0343976,39.6954706,-105.0343718,39.694896
-4660,1508,179,0.201223720751325,0.201223720751325,-105.0343718,39.694896,-105.034389,39.6930864
-4661,179,1707,0.203441168484602,0.203441168484602,-105.034389,39.6930864,-105.0343547,39.691257
-4663,4301,4302,0.143365965722663,0.143365965722663,-105.0343542,39.6894282,-105.0344062,39.6881395
-4686,4303,4304,0.0764005624211503,0.0764005624211503,-105.0350499,39.705614,-105.0350241,39.7049272
-4664,4302,4305,2.47136733106287,2.47136733106287,-105.0344062,39.6881395,-105.034943,39.6659178
-17126,4306,4307,0.198891077653185,0.198891077653185,-104.9751709,39.7165103,-104.975203,39.7182988
-17128,4308,4309,0.137004722426324,0.137004722426324,-104.974055,39.717746,-104.9740333,39.716514
-4666,4283,4310,0.00807297378678342,0.00807297378678342,-105.0344405,39.7031047,-105.0344398,39.7030321
-4667,4310,4311,0.088125570928718,0.088125570928718,-105.0344398,39.7030321,-105.0344491,39.7022396
-4668,4311,4312,0.0140203745468903,0.0140203745468903,-105.0344491,39.7022396,-105.0344662,39.7021142
-19629,10518,10593,0.0691965251351115,0.0691965251351115,-104.9902799,39.7082903,-104.9910888,39.7082874
-4670,4313,4314,0.114544256923558,0.114544256923558,-105.0344405,39.7013547,-105.0344491,39.7003246
-4671,4314,4315,0.197539157423005,0.197539157423005,-105.0344491,39.7003246,-105.0344405,39.6985481
-4672,4315,4035,0.10133193665102,0.10133193665102,-105.0344405,39.6985481,-105.0344405,39.6976368
-4675,3389,4317,0.176922247784819,0.176922247784819,-105.034904,39.7165547,-105.034904,39.7149636
-4676,4317,1313,0.17698917639034,0.17698917639034,-105.034904,39.7149636,-105.0349008,39.7133719
-4677,1313,4318,0.2429613537943,0.2429613537943,-105.0349008,39.7133719,-105.0348954,39.7111869
-4678,4318,4319,0.0830631503019858,0.0830631503019858,-105.0348954,39.7111869,-105.0350327,39.7104474
-4679,4319,4320,0.0977203133854136,0.0977203133854136,-105.0350327,39.7104474,-105.0350756,39.7095692
-4680,4320,4321,0.113818121601187,0.113818121601187,-105.0350756,39.7095692,-105.0350499,39.7085458
-4681,4321,4322,0.0984100223094627,0.0984100223094627,-105.0350499,39.7085458,-105.0350241,39.707661
-4683,4323,4324,0.0484810817232728,0.0484810817232728,-105.0350585,39.7071591,-105.0350413,39.7067233
-4684,4324,4325,0.0969202903062125,0.0969202903062125,-105.0350413,39.7067233,-105.0350499,39.7058517
-4685,4325,4303,0.026431034063363,0.026431034063363,-105.0350499,39.7058517,-105.0350499,39.705614
-4687,4304,4326,0.107959479077584,0.107959479077584,-105.0350241,39.7049272,-105.0350499,39.7039565
-4689,4302,1574,0.191677995814021,0.191677995814021,-105.0344062,39.6881395,-105.0360845,39.6869978
-4691,3672,4328,0.125428790986072,0.125428790986072,-104.9769586,39.747508,-104.976953,39.748636
-4692,4328,4329,0.0951720176425212,0.0951720176425212,-104.976953,39.748636,-104.9769503,39.7494919
-4693,4329,4330,0.139038263486678,0.139038263486678,-104.9769503,39.7494919,-104.9769525,39.7507423
-4694,4330,4331,0.139714401472726,0.139714401472726,-104.9769525,39.7507423,-104.9769247,39.7519986
-4700,4334,4335,0.200429884058467,0.200429884058467,-104.9780308,39.7165201,-104.9780566,39.7183225
-4702,2368,4336,0.0171503416673458,0.0171503416673458,-104.9775163,39.7194106,-104.9775406,39.7195637
-4704,2899,4337,0.105099867009157,0.105099867009157,-104.9733522,39.7569824,-104.9721228,39.7569937
-4705,4337,4338,0.106056680315678,0.106056680315678,-104.9721228,39.7569937,-104.9708823,39.75701
-4706,4338,4339,0.104589847143113,0.104589847143113,-104.9708823,39.75701,-104.9696595,39.7569777
-4707,4339,4340,0.370832351150224,0.370832351150224,-104.9696595,39.7569777,-104.9653214,39.7569797
-4708,4340,4341,0.0529480373416704,0.0529480373416704,-104.9653214,39.7569797,-104.9647021,39.7569883
-4709,4341,3902,0.107541125657943,0.107541125657943,-104.9647021,39.7569883,-104.9634441,39.75698
-4710,3902,1039,0.104784630542914,0.104784630542914,-104.9634441,39.75698,-104.9622183,39.75698
-4711,1039,4342,0.104777071004161,0.104777071004161,-104.9622183,39.75698,-104.9609926,39.7569841
-4712,4342,4343,0.105248493254523,0.105248493254523,-104.9609926,39.7569841,-104.9597614,39.7569779
-4713,4343,4344,0.101108879740712,0.101108879740712,-104.9597614,39.7569779,-104.9585786,39.7569779
-4714,4344,3325,0.105024412220906,0.105024412220906,-104.9585786,39.7569779,-104.95735,39.7569806
-4715,3325,4345,0.102246237774905,0.102246237774905,-104.95735,39.7569806,-104.9561539,39.7569779
-4716,4345,4346,0.102726745739932,0.102726745739932,-104.9561539,39.7569779,-104.9549522,39.7569718
-4717,4346,2076,0.108443527267173,0.108443527267173,-104.9549522,39.7569718,-104.9536836,39.7569738
-4718,2076,2673,0.108454042008862,0.108454042008862,-104.9536836,39.7569738,-104.9524149,39.7569676
-6026,4668,5275,0.106680903376796,0.106680903376796,-104.9875126,39.713878,-104.9862654,39.7138801
-20495,10837,10818,0.00314569094185422,0.00314569094185422,-105.0192753,39.758524,-105.0193121,39.758524
-4719,2673,4123,0.102664740305431,0.102664740305431,-104.9524149,39.7569676,-104.9512139,39.7569666
-4720,4123,4347,0.110043125382133,0.110043125382133,-104.9512139,39.7569666,-104.9499266,39.7569714
-4721,4347,4348,0.0925868711229396,0.0925868711229396,-104.9499266,39.7569714,-104.9488435,39.7569684
-4722,4348,4349,0.101256639304288,0.101256639304288,-104.9488435,39.7569684,-104.9476591,39.756955
-4723,4349,3471,0.100333218908324,0.100333218908324,-104.9476591,39.756955,-104.9464855,39.7569418
-4724,3471,4350,0.101033713236321,0.101033713236321,-104.9464855,39.7569418,-104.9453036,39.7569471
-4726,850,4351,0.101364060095961,0.101364060095961,-104.9429726,39.7565327,-104.9417876,39.7564997
-4727,4351,4352,0.0951618291875102,0.0951618291875102,-104.9417876,39.7564997,-104.9406749,39.7564735
-4728,4352,4353,0.0166431794757682,0.0166431794757682,-104.9406749,39.7564735,-104.9404804,39.7564802
-4729,4353,4354,0.0900251519018866,0.0900251519018866,-104.9404804,39.7564802,-104.9394273,39.7564865
-4730,4354,4355,0.0948464364966571,0.0948464364966571,-104.9394273,39.7564865,-104.9383178,39.75648
-4731,4355,4356,0.0929916889983271,0.0929916889983271,-104.9383178,39.75648,-104.93723,39.7564733
-4732,4356,4357,0.0946584559856625,0.0946584559856625,-104.93723,39.7564733,-104.9361228,39.7564865
-4733,4357,2002,0.0939147825318954,0.0939147825318954,-104.9361228,39.7564865,-104.9350242,39.7564799
-4734,2002,3362,0.0961201849767339,0.0961201849767339,-104.9350242,39.7564799,-104.9338998,39.7564865
-4735,3362,2756,0.0936202724465644,0.0936202724465644,-104.9338998,39.7564865,-104.9328047,39.7564972
-4736,2756,4358,0.0928604520153806,0.0928604520153806,-104.9328047,39.7564972,-104.9317184,39.7564972
-4738,4359,3874,0.0985792493705747,0.0985792493705747,-104.9453012,39.7565195,-104.944148,39.7565195
-4740,4360,4361,0.589746493190754,0.589746493190754,-105.0055932,39.7209068,-105.0015929,39.7165869
-4742,501,1385,0.0995647502781281,0.0995647502781281,-105.0014928,39.7130323,-105.0016028,39.7121409
-4745,4363,4364,0.205829363021429,0.205829363021429,-105.0015367,39.7102427,-105.0014826,39.7083921
-4746,4364,4365,0.0921122756854079,0.0921122756854079,-105.0014826,39.7083921,-105.0015264,39.7075644
-4747,4365,4366,0.00988128080256074,0.00988128080256074,-105.0015264,39.7075644,-105.001522,39.7074756
-4748,4366,4367,0.0897681081567516,0.0897681081567516,-105.001522,39.7074756,-105.0015253,39.7066683
-4749,4367,4368,0.098598628932225,0.098598628932225,-105.0015253,39.7066683,-105.0015178,39.7057816
-4750,4368,4369,0.0959412440063823,0.0959412440063823,-105.0015178,39.7057816,-105.0015255,39.7049188
-4751,4369,4370,0.102131783313602,0.102131783313602,-105.0015255,39.7049188,-105.0014826,39.7040009
-4752,4370,783,0.172155062898013,0.172155062898013,-105.0014826,39.7040009,-105.001524,39.702453
-4753,783,4373,0.095162556755669,0.095162556755669,-105.001524,39.702453,-105.0015169,39.7015972
-4754,4373,4374,0.0961947364240104,0.0961947364240104,-105.0015169,39.7015972,-105.0014998,39.7007322
-4755,4374,2746,0.0976874440589729,0.0976874440589729,-105.0014998,39.7007322,-105.001474,39.6998539
-4756,2746,4375,0.105035684135392,0.105035684135392,-105.001474,39.6998539,-105.0014998,39.6989095
-4757,4375,4376,0.0939930714928361,0.0939930714928361,-105.0014998,39.6989095,-105.0014998,39.6980642
-4758,4376,4031,0.0955624767971731,0.0955624767971731,-105.0014998,39.6980642,-105.0014483,39.6972057
-4759,4031,4377,0.0560443290529964,0.0560443290529964,-105.0014483,39.6972057,-105.0015083,39.6967038
-4760,4377,1489,0.204591889958277,0.204591889958277,-105.0015083,39.6967038,-105.0015377,39.694864
-4762,145,1731,0.201807709171719,0.201807709171719,-105.0015377,39.6930676,-105.0015625,39.6912528
-4763,1731,360,0.203461803126836,0.203461803126836,-105.0015625,39.6912528,-105.0016107,39.6894234
-4767,2902,2038,0.0702037411311871,0.0702037411311871,-104.9733513,39.7595161,-104.9740667,39.759206
-4769,4380,4381,0.147155318321419,0.147155318321419,-104.9752846,39.7582739,-104.9764694,39.7573138
-4770,4381,4382,0.144957308053315,0.144957308053315,-104.9764694,39.7573138,-104.9776844,39.7564044
-4771,4382,4383,0.149312485085308,0.149312485085308,-104.9776844,39.7564044,-104.9788891,39.7554321
-4774,2688,4385,0.0765539017627299,0.0765539017627299,-104.9813184,39.7535997,-104.9819456,39.7531083
-4775,4385,4386,0.0705753548513159,0.0705753548513159,-104.9819456,39.7531083,-104.9825253,39.7526564
-4776,4386,4387,0.146933743759007,0.146933743759007,-104.9825253,39.7526564,-104.9837317,39.7517152
-4777,4387,4388,0.145923980731529,0.145923980731529,-104.9837317,39.7517152,-104.9849232,39.7507755
-4778,4388,4389,0.144339759907671,0.144339759907671,-104.9849232,39.7507755,-104.9861204,39.7498602
-4779,4389,4390,0.150103166473839,0.150103166473839,-104.9861204,39.7498602,-104.9873785,39.7489186
-4780,4390,4391,0.137983810664432,0.137983810664432,-104.9873785,39.7489186,-104.9885184,39.7480401
-4781,4391,4392,0.0104056356944031,0.0104056356944031,-104.9885184,39.7480401,-104.9886052,39.7479745
-4782,4392,4393,0.140241416108271,0.140241416108271,-104.9886052,39.7479745,-104.9897603,39.747079
-4783,4393,4394,0.1481833156111,0.1481833156111,-104.9897603,39.747079,-104.9909615,39.7461183
-4784,4394,4395,0.146837535132845,0.146837535132845,-104.9909615,39.7461183,-104.9921721,39.7451816
-4785,4395,4396,0.147176845167591,0.147176845167591,-104.9921721,39.7451816,-104.993398,39.7442524
-4786,4396,4397,0.145625871999305,0.145625871999305,-104.993398,39.7442524,-104.9946157,39.7433367
-4788,1072,4398,0.0934237929296376,0.0934237929296376,-105.009231,39.7782735,-105.0087458,39.7790264
-4790,4399,4400,0.1229191337931,0.1229191337931,-104.9607224,39.7225056,-104.961317,39.723512
-4791,4400,4401,0.117696624021516,0.117696624021516,-104.961317,39.723512,-104.9626217,39.7238487
-4792,4401,3916,0.0730141443209756,0.0730141443209756,-104.9626217,39.7238487,-104.9634696,39.7237721
-4794,4402,4403,3.26030129970045,3.26030129970045,-105.0326599,39.6602355,-105.0296941,39.6894671
-4795,4403,1705,0.202698536609182,0.202698536609182,-105.0296941,39.6894671,-105.0297026,39.69129
-4796,1705,176,0.202718600973581,0.202718600973581,-105.0297026,39.69129,-105.029737,39.6931129
-4797,176,1503,0.201219684641614,0.201219684641614,-105.029737,39.6931129,-105.0297284,39.6949225
-4798,1503,4404,0.202286968554481,0.202286968554481,-105.0297284,39.6949225,-105.0297364,39.6967417
-4799,4404,4405,0.200141278145387,0.200141278145387,-105.0297364,39.6967417,-105.0297627,39.6985415
-4800,4405,4406,0.0308542467827185,0.0308542467827185,-105.0297627,39.6985415,-105.0297541,39.6988189
-4801,4406,4407,0.168200323230532,0.168200323230532,-105.0297541,39.6988189,-105.0297971,39.7003312
-4802,4407,4408,0.11307645922142,0.11307645922142,-105.0297971,39.7003312,-105.0298056,39.7013481
-4803,4408,4409,0.0961947310408444,0.0961947310408444,-105.0298056,39.7013481,-105.0298056,39.7022132
-4804,4409,4410,0.0983990775592717,0.0983990775592717,-105.0298056,39.7022132,-105.0297971,39.7030981
-4806,4411,4413,0.099863884884034,0.099863884884034,-105.0298314,39.704016,-105.0298142,39.704914
-4809,4415,4416,0.102810116828889,0.102810116828889,-105.0297971,39.7067299,-105.0298142,39.7076544
-4810,4416,4417,0.0991628298509216,0.0991628298509216,-105.0298142,39.7076544,-105.0298486,39.7085458
-4811,4417,4418,0.0969872745595907,0.0969872745595907,-105.0298486,39.7085458,-105.0298056,39.7094174
-4812,4418,4419,0.0998556913489604,0.0998556913489604,-105.0298056,39.7094174,-105.0297971,39.7103154
-4813,4419,4420,0.0958355207238061,0.0958355207238061,-105.0297971,39.7103154,-105.0299687,39.7111671
-4814,4420,1307,0.243760388907656,0.243760388907656,-105.0299687,39.7111671,-105.0299945,39.7133592
-4815,1307,4421,0.179135026824832,0.179135026824832,-105.0299945,39.7133592,-105.0299945,39.7149702
-4818,4422,477,0.0591204183570981,0.0591204183570981,-105.0169124,39.7442891,-105.0173303,39.7447127
-4819,477,486,0.338636165035717,0.338636165035717,-105.0173303,39.7447127,-105.0180607,39.7477059
-4820,486,320,0.186794052108965,0.186794052108965,-105.0180607,39.7477059,-105.0174336,39.7493151
-4821,320,324,0.464671835959624,0.464671835959624,-105.0174336,39.7493151,-105.0152472,39.753141
-4822,324,531,0.0559979023034973,0.0559979023034973,-105.0152472,39.753141,-105.0148477,39.7535401
-4823,531,534,0.263162604733165,0.263162604733165,-105.0148477,39.7535401,-105.0126456,39.7551939
-4825,475,530,0.435551136576821,0.435551136576821,-105.0122615,39.7554827,-105.0085506,39.7581668
-4826,530,393,0.115152140819887,0.115152140819887,-105.0085506,39.7581668,-105.0075703,39.7588771
-4827,393,4423,0.203655322253385,0.203655322253385,-105.0075703,39.7588771,-105.0057667,39.7600738
-4828,4423,4424,0.538171924126244,0.538171924126244,-105.0057667,39.7600738,-105.0016238,39.7637183
-4829,4424,4426,0.419488421877639,0.419488421877639,-105.0016238,39.7637183,-104.998467,39.7666069
-4830,4426,4427,0.0323139283448777,0.0323139283448777,-104.998467,39.7666069,-104.9981322,39.7667419
-4833,4428,4429,0.198930926845217,0.198930926845217,-105.0227675,39.7175319,-105.0250933,39.717539
-4837,4432,4433,0.200460087837485,0.200460087837485,-105.0086074,39.7174296,-105.0109506,39.7174666
-4839,2920,3260,0.28373274915572,0.28373274915572,-104.9580338,39.7072718,-104.9578793,39.7047229
-4842,4436,726,0.0998645775500999,0.0998645775500999,-104.9500303,39.7012585,-104.9511976,39.7012585
-4843,726,52,0.170560718436498,0.170560718436498,-104.9511976,39.7012585,-104.9526824,39.7002349
-4844,52,4437,0.100090869280248,0.100090869280248,-104.9526824,39.7002349,-104.9534368,39.6995469
-4845,4437,3658,0.0591716781283333,0.0591716781283333,-104.9534368,39.6995469,-104.9536997,39.6990547
-4846,3658,4438,0.103033016475492,0.103033016475492,-104.9536997,39.6990547,-104.9546419,39.6984776
-4847,4438,4439,0.00533542340358722,0.00533542340358722,-104.9546419,39.6984776,-104.9546886,39.6984458
-4848,4439,3530,0.0426683766285225,0.0426683766285225,-104.9546886,39.6984458,-104.9550292,39.6981655
-4850,4440,1490,0.0653862418347059,0.0653862418347059,-105.0026535,39.6954583,-105.0026792,39.6948706
-4851,1490,146,0.199762763358791,0.199762763358791,-105.0026792,39.6948706,-105.002705,39.6930742
-4853,1733,4441,0.200262923415945,0.200262923415945,-105.0027266,39.6912507,-105.0027522,39.6894498
-4855,3554,4442,0.0495302719350299,0.0495302719350299,-104.9757464,39.7546182,-104.9759203,39.7550431
-4856,4442,4443,0.0498850541236187,0.0498850541236187,-104.9759203,39.7550431,-104.9763376,39.7553567
-4857,4443,4444,0.0512856921549244,0.0512856921549244,-104.9763376,39.7553567,-104.9767844,39.7556645
-4858,4444,3019,0.0117591853989501,0.0117591853989501,-104.9767844,39.7556645,-104.9768843,39.7557372
-4860,4445,4382,0.0530835076360593,0.0530835076360593,-104.9772635,39.7560534,-104.9776844,39.7564044
-4861,4382,4446,0.0528074946120117,0.0528074946120117,-104.9776844,39.7564044,-104.9781251,39.7567372
-4863,4447,4448,0.00600839331926655,0.00600839331926655,-104.9785209,39.7570361,-104.9785732,39.7570722
-4865,4449,4450,0.0531891993832321,0.0531891993832321,-104.9789969,39.757401,-104.9794422,39.7577351
-4866,4450,4451,0.0546720224408421,0.0546720224408421,-104.9794422,39.7577351,-104.9798733,39.7580983
-4867,4451,4452,0.0492877204975977,0.0492877204975977,-104.9798733,39.7580983,-104.9802783,39.7584138
-4868,4452,4453,0.0555740263590881,0.0555740263590881,-104.9802783,39.7584138,-104.980759,39.7587503
-4869,4453,4454,0.0508522899950145,0.0508522899950145,-104.980759,39.7587503,-104.981171,39.7590802
-4870,4454,4455,0.0539540438907939,0.0539540438907939,-104.981171,39.7590802,-104.9816151,39.759425
-4871,4455,4456,0.05278127500741,0.05278127500741,-104.9816151,39.759425,-104.9820633,39.7597515
-4872,4456,4457,0.0520682148022883,0.0520682148022883,-104.9820633,39.7597515,-104.9824777,39.7600947
-4873,4457,4458,0.0535945839553328,0.0535945839553328,-104.9824777,39.7600947,-104.9829353,39.7604242
-4874,4458,3308,0.105299206866662,0.105299206866662,-104.9829353,39.7604242,-104.983803,39.7610964
-4875,3308,4459,0.0532887340145185,0.0532887340145185,-104.983803,39.7610964,-104.9842417,39.7614369
-4876,4459,4460,0.0519293867850164,0.0519293867850164,-104.9842417,39.7614369,-104.9846721,39.7617665
-4878,2911,4461,0.104626210772024,0.104626210772024,-104.9733491,39.7657577,-104.972125,39.7657557
-4879,4461,4462,0.107626289516013,0.107626289516013,-104.972125,39.7657557,-104.9708658,39.7657536
-4880,4462,4463,0.104079175744358,0.104079175744358,-104.9708658,39.7657536,-104.9696481,39.7657517
-4881,4463,4464,0.104771521557699,0.104771521557699,-104.9696481,39.7657517,-104.9684223,39.7657497
-4882,4464,4465,0.105968126634263,0.105968126634263,-104.9684223,39.7657497,-104.9671825,39.7657477
-6192,5399,5400,0.276164012064383,0.276164012064383,-104.9659557,39.7557387,-104.9659604,39.7582223
-4883,4465,4466,0.105797186557688,0.105797186557688,-104.9671825,39.7657477,-104.9659447,39.7657457
-4884,4466,3135,0.104882643737148,0.104882643737148,-104.9659447,39.7657457,-104.9647176,39.7657437
-4885,3135,3907,0.109352834062615,0.109352834062615,-104.9647176,39.7657437,-104.9634382,39.7657416
-4886,3907,1046,0.105412573797977,0.105412573797977,-104.9634382,39.7657416,-104.9622049,39.7657396
-4887,1046,4467,0.052770391738213,0.052770391738213,-104.9622049,39.7657396,-104.9615875,39.7657386
-4888,4467,4468,0.0520438840305316,0.0520438840305316,-104.9615875,39.7657386,-104.9609786,39.7657376
-4889,4468,4469,0.10568608900916,0.10568608900916,-104.9609786,39.7657376,-104.9597421,39.7657356
-4890,4469,4470,0.101335564568208,0.101335564568208,-104.9597421,39.7657356,-104.9585565,39.7657337
-4891,4470,3332,0.103121923835041,0.103121923835041,-104.9585565,39.7657337,-104.95735,39.7657318
-4892,3332,4471,0.106386988921342,0.106386988921342,-104.95735,39.7657318,-104.9561053,39.7657297
-4893,4471,4472,0.0168550696022494,0.0168550696022494,-104.9561053,39.7657297,-104.9559081,39.7657294
-4894,4472,4473,0.0917114246562582,0.0917114246562582,-104.9559081,39.7657294,-104.9548351,39.7657277
-4895,4473,2083,0.101916806851718,0.101916806851718,-104.9548351,39.7657277,-104.9536427,39.7657257
-4896,2083,4474,0.104993787286419,0.104993787286419,-104.9536427,39.7657257,-104.9524143,39.7657237
-4897,4474,4129,0.105139069056382,0.105139069056382,-104.9524143,39.7657237,-104.9511842,39.7657218
-4898,4129,4475,0.108754567624091,0.108754567624091,-104.9511842,39.7657218,-104.9499118,39.7657197
-4899,4475,4476,0.10144670106953,0.10144670106953,-104.9499118,39.7657197,-104.9487249,39.7657178
-4900,4476,4477,0.106139118962841,0.106139118962841,-104.9487249,39.7657178,-104.9474831,39.7657158
-4901,4477,3446,0.105344236005182,0.105344236005182,-104.9474831,39.7657158,-104.9462506,39.7657138
-4903,4478,4479,0.0124618097268169,0.0124618097268169,-104.9451778,39.765712,-104.945032,39.7657118
-4904,4479,4480,0.085822453683645,0.085822453683645,-104.945032,39.7657118,-104.9440279,39.7657101
-4905,4480,3886,0.0198123941785865,0.0198123941785865,-104.9440279,39.7657101,-104.9437961,39.7657098
-4907,865,4481,0.0967884909448593,0.0967884909448593,-104.9428501,39.7657082,-104.9417177,39.7657064
-4909,345,4482,0.111183183932549,0.111183183932549,-105.0067949,39.727165,-105.007537,39.727986
-4910,4483,1892,0.0285476317873184,0.0285476317873184,-105.0055781,39.7619094,-105.0052777,39.7620216
-4912,4360,4484,0.465117334225162,0.465117334225162,-105.0055932,39.7209068,-105.0055963,39.7250897
-4913,4484,4485,0.0326010116755978,0.0326010116755978,-105.0055963,39.7250897,-105.0056478,39.7253802
-4915,4486,4487,0.175931100170174,0.175931100170174,-105.0052345,39.7321295,-105.005256,39.7337116
-4916,4487,4489,0.100342363380826,0.100342363380826,-105.005256,39.7337116,-105.0052547,39.734614
-4917,4489,4490,0.161656025882071,0.161656025882071,-105.0052547,39.734614,-105.0052486,39.7360678
-4918,4490,4491,0.0905242566324277,0.0905242566324277,-105.0052486,39.7360678,-105.0052452,39.7368819
-4919,4491,1950,0.169005169872083,0.169005169872083,-105.0052452,39.7368819,-105.005245,39.7384018
-4920,1950,4492,0.126063150124326,0.126063150124326,-105.005245,39.7384018,-105.0052379,39.7395355
-4924,4081,3762,0.180617937803326,0.180617937803326,-105.005155,39.7838353,-105.0051409,39.7854596
-4926,2559,4495,0.0875396307338273,0.0875396307338273,-105.0051367,39.7862559,-105.0051056,39.7870428
-4927,4495,4496,0.0902282586364627,0.0902282586364627,-105.0051056,39.7870428,-105.0051314,39.787854
-4928,4496,4497,0.0878475091612825,0.0878475091612825,-105.0051314,39.787854,-105.0051406,39.788644
-4929,4497,4498,0.266301743580547,0.266301743580547,-105.0051406,39.788644,-105.005132,39.7910389
-4930,180,1708,0.203431976552675,0.203431976552675,-105.0355649,39.693093,-105.0355391,39.6912636
-4931,1708,4499,0.201230804203475,0.201230804203475,-105.0355391,39.6912636,-105.0355305,39.6894539
-4932,4499,1575,0.27729796539772,0.27729796539772,-105.0355305,39.6894539,-105.0369943,39.687229
-4933,1575,4500,0.182259795470885,0.182259795470885,-105.0369943,39.687229,-105.0371589,39.6855948
-4934,4501,4502,0.199005560216138,0.199005560216138,-105.0355649,39.7003312,-105.0355649,39.6985415
-4935,4502,4503,0.153202263597584,0.153202263597584,-105.0355649,39.6985415,-105.0355129,39.6971643
-4937,4504,4505,0.176923776962641,0.176923776962641,-105.0361142,39.7165547,-105.0361056,39.7149636
-4938,4505,1315,0.176127860687443,0.176127860687443,-105.0361056,39.7149636,-105.0360883,39.7133797
-4939,1315,1371,0.176782045374234,0.176782045374234,-105.0360883,39.7133797,-105.0361028,39.7117899
-4940,1371,4506,0.0626491861453163,0.0626491861453163,-105.0361028,39.7117899,-105.036097,39.7112265
-4941,4506,4507,0.0851767549198192,0.0851767549198192,-105.036097,39.7112265,-105.0360799,39.7104606
-4943,3035,4508,0.210570172682267,0.210570172682267,-104.9468584,39.7590562,-104.9468841,39.7609498
-4945,54,4510,0.19332295953062,0.19332295953062,-104.9511976,39.7002019,-104.9527144,39.6989132
-4946,4510,3640,0.0466160975278989,0.0466160975278989,-104.9527144,39.6989132,-104.9529616,39.6985396
-4948,4511,3531,0.0618894465423491,0.0618894465423491,-104.9541278,39.6978107,-104.954611,39.6973965
-4949,3531,4512,0.0905408166059636,0.0905408166059636,-104.954611,39.6973965,-104.9546673,39.6965834
-4951,3926,707,0.0755598922064861,0.0755598922064861,-105.0032486,39.7632388,-105.0041326,39.7632399
-4952,707,4513,0.0978688769552162,0.0978688769552162,-105.0041326,39.7632399,-105.0052776,39.7632414
-4953,4513,4514,0.0992771410926943,0.0992771410926943,-105.0052776,39.7632414,-105.0064389,39.7632258
-4954,4514,4188,0.135836888761709,0.135836888761709,-105.0064389,39.7632258,-105.0080281,39.7632238
-4955,4188,2514,0.135033448601963,0.135033448601963,-105.0080281,39.7632238,-105.0096079,39.7632217
-4956,2514,4515,0.13515296788921,0.13515296788921,-105.0096079,39.7632217,-105.0111891,39.7632228
-4957,4515,4516,0.136409392488761,0.136409392488761,-105.0111891,39.7632228,-105.012785,39.7632228
-4959,4517,4518,0.0356088442137805,0.0356088442137805,-105.0133602,39.7632209,-105.0137768,39.7632209
-4960,4518,4519,0.0503802448307333,0.0503802448307333,-105.0137768,39.7632209,-105.0143662,39.7632176
-4961,4519,4520,0.127581150438839,0.127581150438839,-105.0143662,39.7632176,-105.0158588,39.7632228
-4962,4520,4521,0.132742519290442,0.132742519290442,-105.0158588,39.7632228,-105.0174118,39.7632228
-4963,4521,4522,0.13263462094456,0.13263462094456,-105.0174118,39.7632228,-105.0189635,39.7632145
-4964,4522,1243,0.132622916068163,0.132622916068163,-105.0189635,39.7632145,-105.0205151,39.7632155
-4965,1243,4523,0.132744954601011,0.132744954601011,-105.0205151,39.7632155,-105.0220681,39.7632083
-4966,4523,2724,0.131940306625131,0.131940306625131,-105.0220681,39.7632083,-105.0236117,39.7632032
-4967,2724,4524,0.125887507119952,0.125887507119952,-105.0236117,39.7632032,-105.0250845,39.7632041
-4968,4524,4525,0.0073166618478819,0.0073166618478819,-105.0250845,39.7632041,-105.0251701,39.7632042
-4970,4526,4527,0.188224997765616,0.188224997765616,-105.030062,39.7638851,-105.0322641,39.7638939
-4971,4527,3419,0.20066865963842,0.20066865963842,-105.0322641,39.7638939,-105.0346118,39.7638877
-4973,4528,4529,0.132643815391647,0.132643815391647,-105.022041,39.751211,-105.0220809,39.7524035
-4974,4529,4288,0.134447795927953,0.134447795927953,-105.0220809,39.7524035,-105.0220723,39.7536126
-4975,4288,4530,0.0675286789518799,0.0675286789518799,-105.0220723,39.7536126,-105.0220723,39.7542199
-4976,4530,4531,0.0681514911729941,0.0681514911729941,-105.0220723,39.7542199,-105.0220708,39.7548328
-4978,1833,2628,0.0976402650867344,0.0976402650867344,-105.0227761,39.7211827,-105.0227761,39.7220608
-4980,4532,4428,0.101312368020336,0.101312368020336,-105.0227589,39.7166208,-105.0227675,39.7175319
-4981,4428,4533,0.0998335149833254,0.0998335149833254,-105.0227675,39.7175319,-105.0227761,39.7184297
-4982,4533,4534,0.1027774706977,0.1027774706977,-105.0227761,39.7184297,-105.0227761,39.719354
-4984,4535,1833,0.103500237720645,0.103500237720645,-105.0227761,39.7202519,-105.0227761,39.7211827
-4986,4536,4537,0.0953225774659935,0.0953225774659935,-105.0221025,39.7275212,-105.0221238,39.7283783
-4988,4538,4539,0.19878482816443,0.19878482816443,-105.0216452,39.7766253,-105.0216547,39.778413
-4989,4539,2830,0.201604542004037,0.201604542004037,-105.0216547,39.778413,-105.0216335,39.780226
-4990,2830,1438,0.197694612690532,0.197694612690532,-105.0216335,39.780226,-105.0216256,39.7820039
-4991,1438,4540,0.179002123409013,0.179002123409013,-105.0216256,39.7820039,-105.0216205,39.7836137
-4993,4541,25,0.138059623303707,0.138059623303707,-105.022071,39.7560345,-105.0220707,39.7572761
-4994,25,4542,0.0645746983944002,0.0645746983944002,-105.0220707,39.7572761,-105.0220625,39.7578568
-4995,4542,2964,0.0670651945252806,0.0670651945252806,-105.0220625,39.7578568,-105.0220789,39.7584598
-4999,4545,4546,0.142258977482996,0.142258977482996,-105.0220798,39.7753463,-105.02204,39.7766253
-5001,4547,115,0.110830423505847,0.110830423505847,-105.0217032,39.7293091,-105.0217118,39.7303058
-5003,4548,4549,0.0776585367690646,0.0776585367690646,-105.0217136,39.7305028,-105.0217136,39.7312012
-5004,4549,4550,0.199094650034446,0.199094650034446,-105.0217136,39.7312012,-105.0217163,39.7329917
-5005,4550,4551,0.100232131513911,0.100232131513911,-105.0217163,39.7329917,-105.0217216,39.7338931
-5007,4552,2292,0.132777862181536,0.132777862181536,-105.0217376,39.7344378,-105.0217377,39.7356319
-5008,2292,4553,0.0918166647273585,0.0918166647273585,-105.0217377,39.7356319,-105.021729,39.7364576
-5009,4553,2534,0.18135507208955,0.18135507208955,-105.021729,39.7364576,-105.0217592,39.7380884
-5011,2627,4554,0.0924500575644084,0.0924500575644084,-105.0220898,39.7220653,-105.0220979,39.7228967
-5012,4554,4555,0.10983037862614,0.10983037862614,-105.0220979,39.7228967,-105.0221186,39.7238843
-5014,4523,4556,0.135380005592348,0.135380005592348,-105.0220681,39.7632083,-105.0220655,39.7644258
-5015,4556,4557,0.134346145402708,0.134346145402708,-105.0220655,39.7644258,-105.0220695,39.765634
-5016,4557,4558,0.133189336887005,0.133189336887005,-105.0220695,39.765634,-105.0220681,39.7668318
-5017,4558,1680,0.13514752705788,0.13514752705788,-105.0220681,39.7668318,-105.0220748,39.7680472
-5018,1680,4559,0.137419251565084,0.137419251565084,-105.0220748,39.7680472,-105.0220879,39.769283
-5020,4560,4064,0.13135456684589,0.13135456684589,-105.0220781,39.7475968,-105.0220781,39.7487781
-5021,4064,4561,0.134278993416053,0.134278993416053,-105.0220781,39.7487781,-105.0220781,39.7499857
-5023,4101,4562,0.159933235501875,0.159933235501875,-105.0216462,39.7841819,-105.0216379,39.7856202
-5025,4563,4564,0.407964486856081,0.407964486856081,-105.0216452,39.7874253,-105.0216326,39.7910942
-5026,4565,2188,0.10962848253063,0.10962848253063,-105.0146647,39.7375398,-105.0159468,39.7375377
-17150,4780,4781,0.199841658014134,0.199841658014134,-104.9751815,39.7020519,-104.9751707,39.7038491
-5028,4566,687,0.202530686471354,0.202530686471354,-104.9275226,39.7401271,-104.9275189,39.7419485
-5029,687,1982,0.159069792202276,0.159069792202276,-104.9275189,39.7419485,-104.9275343,39.743379
-5030,1982,1967,0.0383650278893233,0.0383650278893233,-104.9275343,39.743379,-104.9275397,39.743724
-5033,4567,1928,0.199711508236703,0.199711508236703,-104.9605404,39.7092844,-104.9605576,39.7074884
-5034,1928,4568,0.201653602761609,0.201653602761609,-104.9605576,39.7074884,-104.9605482,39.7056749
-5035,4568,3272,0.202185746700204,0.202185746700204,-104.9605482,39.7056749,-104.960549,39.7038566
-5036,3272,4569,0.20093413075273,0.20093413075273,-104.960549,39.7038566,-104.9605654,39.7020496
-5037,4569,85,0.20339775981857,0.20339775981857,-104.9605654,39.7020496,-104.9605654,39.7002204
-5038,85,3521,0.203998373883698,0.203998373883698,-104.9605654,39.7002204,-104.9605624,39.6983858
-5039,3521,4262,0.200473333246826,0.200473333246826,-104.9605624,39.6983858,-104.9605624,39.6965829
-5040,4262,4570,0.200485802986416,0.200485802986416,-104.9605624,39.6965829,-104.960571,39.6947799
-5041,4570,4571,0.201223720769428,0.201223720769428,-104.960571,39.6947799,-104.9605882,39.6929703
-5042,4571,4572,0.205786578364508,0.205786578364508,-104.9605882,39.6929703,-104.9605654,39.6911197
-5043,4572,4573,0.200686081138238,0.200686081138238,-104.9605654,39.6911197,-104.9605564,39.6893149
-5044,4573,4574,0.200311699167283,0.200311699167283,-104.9605564,39.6893149,-104.9605396,39.6875135
-5045,4575,4576,0.13275170286213,0.13275170286213,-105.0268099,39.7414867,-105.0283618,39.741523
-5046,4576,4011,0.136238719327193,0.136238719327193,-105.0283618,39.741523,-105.0299552,39.7415215
-5049,4578,3382,0.130912952312419,0.130912952312419,-105.0330646,39.7415188,-105.0345957,39.741514
-5050,3382,4579,0.10420964387947,0.10420964387947,-105.0345957,39.741514,-105.0358145,39.741514
-5051,4579,4580,0.100328081358343,0.100328081358343,-105.0358145,39.741514,-105.0369879,39.7415159
-5053,4581,4582,0.100688559836452,0.100688559836452,-105.0381505,39.741515,-105.0393281,39.7415201
-5054,4582,1104,0.099555514740453,0.099555514740453,-105.0393281,39.7415201,-105.0404924,39.7415105
-5055,1104,4583,0.100465419279427,0.100465419279427,-105.0404924,39.7415105,-105.0416673,39.7415228
-5056,4583,4584,0.100511332021349,0.100511332021349,-105.0416673,39.7415228,-105.0428428,39.7415308
-5057,4584,4585,0.0999153218838928,0.0999153218838928,-105.0428428,39.7415308,-105.0440113,39.7415206
-5059,3498,4586,0.198271673699608,0.198271673699608,-104.9477042,39.6983792,-104.9477042,39.6965961
-5060,4586,4587,0.203313884946152,0.203313884946152,-104.9477042,39.6965961,-104.9476874,39.6947677
-5062,4588,3598,0.162446986671654,0.162446986671654,-104.9320576,39.744666,-104.9301576,39.7446611
-5065,4590,4591,0.145581982651648,0.145581982651648,-104.9406235,39.7449365,-104.9389209,39.7449185
-20699,10909,10894,0.00288177410229764,0.00288177410229764,-105.0401144,39.7656928,-105.0400807,39.765692
-5066,4591,4592,0.145302049591696,0.145302049591696,-104.9389209,39.7449185,-104.9372215,39.7449317
-5067,4592,2013,0.147364635735888,0.147364635735888,-104.9372215,39.7449317,-104.9354979,39.7449269
-5068,2013,4593,0.147376079792043,0.147376079792043,-104.9354979,39.7449269,-104.9337742,39.7449365
-5069,4593,4594,0.146031742389181,0.146031742389181,-104.9337742,39.7449365,-104.9320662,39.7449299
-5071,4595,4596,0.179128666689522,0.179128666689522,-104.9581328,39.7438013,-104.9598011,39.7447758
-5072,4596,4597,0.0491363059718978,0.0491363059718978,-104.9598011,39.7447758,-104.9603758,39.7447782
-5073,4597,4598,0.0534283507033442,0.0534283507033442,-104.9603758,39.7447782,-104.9610007,39.7447808
-5074,4598,4599,0.051162571237203,0.051162571237203,-104.9610007,39.7447808,-104.9615991,39.7447832
-5076,1025,3894,0.103299911807114,0.103299911807114,-104.9622361,39.7447859,-104.9634443,39.7447909
-5077,3894,4600,0.113012549862716,0.113012549862716,-104.9634443,39.7447909,-104.9647661,39.7447963
-5078,4600,4601,0.103445240313361,0.103445240313361,-104.9647661,39.7447963,-104.965976,39.7448013
-5079,4601,4602,0.110216736617757,0.110216736617757,-104.965976,39.7448013,-104.9672651,39.7448066
-5080,4602,4603,0.098537605440947,0.098537605440947,-104.9672651,39.7448066,-104.9684176,39.7448114
-5081,4603,4604,0.10689939615188,0.10689939615188,-104.9684176,39.7448114,-104.9696679,39.7448166
-5082,4604,4605,0.104556664577465,0.104556664577465,-104.9696679,39.7448166,-104.9708908,39.7448216
-5083,4605,4606,0.106796784548208,0.106796784548208,-104.9708908,39.7448216,-104.9721399,39.7448268
-5084,4606,2884,0.106044347623682,0.106044347623682,-104.9721399,39.7448268,-104.9733802,39.7448319
-5085,2884,4607,0.118270695339941,0.118270695339941,-104.9733802,39.7448319,-104.9747635,39.7448376
-6370,5524,5525,0.0492521789985846,0.0492521789985846,-105.0392946,39.7738629,-105.0398709,39.7738651
-5087,4608,4609,0.117800444995037,0.117800444995037,-104.9761582,39.7448434,-104.977536,39.7448491
-5088,4609,4610,0.102641376464428,0.102641376464428,-104.977536,39.7448491,-104.9787365,39.7448539
-5089,4610,4611,0.0494099001663831,0.0494099001663831,-104.9787365,39.7448539,-104.9793144,39.7448564
-5090,4611,4612,0.0461096147761951,0.0461096147761951,-104.9793144,39.7448564,-104.9798537,39.7448587
-5091,4612,4613,0.102709817700352,0.102709817700352,-104.9798537,39.7448587,-104.981055,39.7448636
-5092,4613,4614,0.107788478157863,0.107788478157863,-104.981055,39.7448636,-104.9823157,39.7448688
-5093,4614,4615,0.106309381819152,0.106309381819152,-104.9823157,39.7448688,-104.9835591,39.744874
-5095,4618,4619,0.107514865026302,0.107514865026302,-104.9848531,39.7448793,-104.9861106,39.7448845
-5096,4619,4620,0.109618128547838,0.109618128547838,-104.9861106,39.7448845,-104.9873927,39.7448898
-5098,4621,4622,0.0890723635550207,0.0890723635550207,-104.9285042,39.7446792,-104.9274625,39.7446677
-5100,4623,4522,0.133190665745901,0.133190665745901,-105.0189564,39.7620167,-105.0189635,39.7632145
-5102,4624,4625,0.133658094916269,0.133658094916269,-105.0189554,39.7644371,-105.0189635,39.7656391
-5103,4625,4626,0.133656501053085,0.133656501053085,-105.0189635,39.7656391,-105.0189608,39.7668411
-5104,4626,1679,0.135152153872346,0.135152153872346,-105.0189608,39.7668411,-105.0189755,39.7680565
-5105,1679,4627,0.135024432224219,0.135024432224219,-105.0189755,39.7680565,-105.0189715,39.7692708
-5106,4627,2458,0.13515140493347,0.13515140493347,-105.0189715,39.7692708,-105.0189397,39.770486
-5107,2458,3226,0.138004027692966,0.138004027692966,-105.0189397,39.770486,-105.0189401,39.7717271
-5108,3226,4628,0.134323473833378,0.134323473833378,-105.0189401,39.7717271,-105.0189404,39.7729351
-5110,4629,4630,0.135446542572512,0.135446542572512,-105.0189408,39.7741298,-105.0189411,39.7753479
-19829,9519,10649,0.210072579992032,0.210072579992032,-105.0422578,39.7403509,-105.0422444,39.7384617
-5113,4632,4633,0.0947313767183171,0.0947313767183171,-105.0192808,39.733891,-105.0192915,39.7347429
-5115,4634,4635,0.0557913419625853,0.0557913419625853,-105.0192656,39.7311969,-105.0192742,39.7316986
-5116,4635,4636,0.0662366225916723,0.0662366225916723,-105.0192742,39.7316986,-105.0191455,39.732286
-5117,4636,4637,0.113593419326123,0.113593419326123,-105.0191455,39.732286,-105.0198922,39.7331309
-5120,4639,4640,0.132773960128622,0.132773960128622,-105.0193449,39.7766055,-105.0193287,39.7777995
-5121,4640,2488,0.134241502580257,0.134241502580257,-105.0193287,39.7777995,-105.0193545,39.7790066
-5122,2488,2829,0.133449886794901,0.133449886794901,-105.0193545,39.7790066,-105.0193075,39.7802062
-5123,2829,1437,0.199500232175966,0.199500232175966,-105.0193075,39.7802062,-105.0193247,39.7820003
-5124,1437,4641,0.151025004831673,0.151025004831673,-105.0193247,39.7820003,-105.0193032,39.7833584
-5126,4642,114,0.107737280643715,0.107737280643715,-105.0192742,39.7293289,-105.0192781,39.7302978
-5127,114,4643,0.05007218616811,0.05007218616811,-105.0192781,39.7302978,-105.0192742,39.7307481
-5129,4644,4645,0.207043620739087,0.207043620739087,-105.018682,39.7183967,-105.0186476,39.7202585
-5130,4645,1842,0.100003312332805,0.100003312332805,-105.0186476,39.7202585,-105.0186351,39.7211578
-5131,1842,2639,0.103345313678593,0.103345313678593,-105.0186351,39.7211578,-105.0186305,39.7220872
-5132,2639,4646,0.199597531872746,0.199597531872746,-105.0186305,39.7220872,-105.0186425,39.7238822
-5133,4646,4647,0.110338949764664,0.110338949764664,-105.0186425,39.7238822,-105.0186451,39.7248745
-5134,4647,4648,0.0862326024249021,0.0862326024249021,-105.0186451,39.7248745,-105.0186498,39.72565
-5135,4648,4649,0.00885483385456902,0.00885483385456902,-105.0186498,39.72565,-105.0186468,39.7257296
-5136,4649,4650,0.198772614686204,0.198772614686204,-105.0186468,39.7257296,-105.018672,39.7275171
-5138,275,4651,0.385379364010995,0.385379364010995,-105.0183528,39.7401138,-105.0171429,39.7434524
-5139,4651,4652,0.41471692527459,0.41471692527459,-105.0171429,39.7434524,-105.018965,39.7469089
-5140,4652,4653,0.0539741907357585,0.0539741907357585,-105.018965,39.7469089,-105.0189634,39.7473943
-5141,4653,4654,0.022194548523775,0.022194548523775,-105.0189634,39.7473943,-105.0189639,39.7475939
-5142,4654,4206,0.207869157343365,0.207869157343365,-105.0189639,39.7475939,-105.0189551,39.7494633
-5144,4655,4656,0.134281006104493,0.134281006104493,-105.0191439,39.7512186,-105.0191525,39.7524262
-5145,4656,2404,0.0664009097985413,0.0664009097985413,-105.0191525,39.7524262,-105.0191633,39.7530233
-5146,2404,4287,0.0661523414774278,0.0661523414774278,-105.0191633,39.7530233,-105.0191566,39.7536182
-5147,4287,4657,0.134479579019433,0.134479579019433,-105.0191566,39.7536182,-105.0191606,39.7548276
-5149,4658,4659,0.0841530151799317,0.0841530151799317,-105.0191633,39.7552936,-105.0191593,39.7560504
-5150,4659,23,0.134991372812694,0.134991372812694,-105.0191593,39.7560504,-105.0191645,39.7572644
-5152,4098,4660,0.191146561014702,0.191146561014702,-105.0193253,39.7838997,-105.0193139,39.7856187
-5153,4660,4661,0.201619149588839,0.201619149588839,-105.0193139,39.7856187,-105.0193192,39.7874319
-5154,4661,4662,0.406108499193961,0.406108499193961,-105.0193192,39.7874319,-105.0193029,39.7910841
-5155,1948,2564,0.13210280054913,0.13210280054913,-105.0095234,39.7384742,-105.0095126,39.7396622
-5157,4663,388,0.102051980712047,0.102051980712047,-104.9982624,39.7134841,-104.9994213,39.713266
-5159,1442,4664,0.0822712120832148,0.0822712120832148,-105.0038934,39.7139133,-105.0048549,39.7139327
-5160,4664,4665,0.119816357959701,0.119816357959701,-105.0048549,39.7139327,-105.0062556,39.7139435
-5161,4665,4666,0.204097543225869,0.204097543225869,-105.0062556,39.7139435,-105.0086417,39.7139435
-5162,4666,4667,0.203014171650501,0.203014171650501,-105.0086417,39.7139435,-105.011015,39.7139241
-5164,4668,1869,0.212544115775742,0.212544115775742,-104.9875126,39.713878,-104.9899974,39.7138897
-5165,1869,4183,0.200120502606903,0.200120502606903,-104.9899974,39.7138897,-104.992337,39.713887
-5167,4669,2615,0.177891060007606,0.177891060007606,-104.994016,39.720921,-104.9940077,39.7225208
-5169,4670,4671,0.124038366426802,0.124038366426802,-104.9940093,39.7230042,-104.9940131,39.7241197
-5171,2421,3232,0.143042998317255,0.143042998317255,-104.9936465,39.7704869,-104.993638,39.7717733
-5173,4672,2028,0.132076698976753,0.132076698976753,-104.9936519,39.772996,-104.9936175,39.7741835
-5174,2028,4673,0.145972981302679,0.145972981302679,-104.9936175,39.7741835,-104.9936347,39.7754962
-5175,4673,4674,0.125161327150552,0.125161327150552,-104.9936347,39.7754962,-104.993638,39.7766218
-5177,3368,4675,0.102054188376367,0.102054188376367,-104.9939645,39.7165966,-104.9939817,39.7175143
-5178,4675,3714,0.0982241705421038,0.0982241705421038,-104.9939817,39.7175143,-104.9940184,39.7183972
-5179,3714,4676,0.103510692140635,0.103510692140635,-104.9940184,39.7183972,-104.9940356,39.719328
-5181,4677,4678,0.0648734285683964,0.0648734285683964,-104.9941264,39.7346802,-104.99412,39.7352636
-5182,4678,615,0.177689539069832,0.177689539069832,-104.99412,39.7352636,-104.9941215,39.7368616
-5183,615,4679,0.176110549937417,0.176110549937417,-104.9941215,39.7368616,-104.9941204,39.7384454
-5184,4679,4680,0.173776320124656,0.173776320124656,-104.9941204,39.7384454,-104.9941139,39.7400082
-5186,4681,4682,0.184513059882878,0.184513059882878,-104.9939973,39.7256815,-104.9940278,39.7273407
-5187,4682,4685,0.175211932943401,0.175211932943401,-104.9940278,39.7273407,-104.9940378,39.7289164
-5189,4686,4687,0.349232193394911,0.349232193394911,-104.9940692,39.730515,-104.9941176,39.7336555
-5191,1357,4688,0.13277378561117,0.13277378561117,-104.992658,39.7824897,-104.9926323,39.7836836
-5193,4689,4690,0.459634230640815,0.459634230640815,-105.043221,39.7097211,-105.048594,39.7097607
-5194,4691,4692,0.0991279407871357,0.0991279407871357,-105.0362258,39.7094372,-105.0373845,39.7094504
-5195,4692,4693,0.0976485109623955,0.0976485109623955,-105.0373845,39.7094504,-105.038526,39.7094438
-5197,4694,4695,0.0991197857977998,0.0991197857977998,-105.0397105,39.7094438,-105.0408692,39.7094504
-5198,4695,4696,0.10132403770971,0.10132403770971,-105.0408692,39.7094504,-105.0420537,39.7094504
-5199,4696,4697,0.0991849406088648,0.0991849406088648,-105.0420537,39.7094504,-105.0432124,39.7094834
-5201,1637,4698,0.104258284661182,0.104258284661182,-105.0156865,39.7093381,-105.0169053,39.7093381
-5202,4698,4215,0.0991281021081487,0.0991281021081487,-105.0169053,39.7093381,-105.018064,39.7093249
-5203,4215,4699,0.0976569662788289,0.0976569662788289,-105.018064,39.7093249,-105.0192055,39.7093117
-5204,4699,195,0.10058858208642,0.10058858208642,-105.0192055,39.7093117,-105.0203814,39.7093117
-5205,195,2924,0.0991416985641161,0.0991416985641161,-105.0203814,39.7093117,-105.0215401,39.7093315
-5206,2924,4700,0.0991366648288655,0.0991366648288655,-105.0215401,39.7093315,-105.0226989,39.7093183
-5207,4700,1462,0.100582700478246,0.100582700478246,-105.0226989,39.7093183,-105.0238747,39.7093117
-5208,1462,4701,0.102418321557774,0.102418321557774,-105.0238747,39.7093117,-105.0250719,39.709323
-5212,4704,1872,0.0821525251365273,0.0821525251365273,-104.9890412,39.7093409,-104.9900015,39.7093504
-17295,10015,3501,0.20024191652091,0.20024191652091,-104.9447901,39.696585,-104.9447794,39.6983858
-5214,1445,4705,0.199727367553687,0.199727367553687,-105.0039116,39.7093165,-105.0062462,39.7093429
-5215,4705,4706,0.203375496003776,0.203375496003776,-105.0062462,39.7093429,-105.0086237,39.7093429
-5216,4706,4707,0.201909493723453,0.201909493723453,-105.0086237,39.7093429,-105.010984,39.7093561
-5218,4708,403,0.0454257390325356,0.0454257390325356,-104.9701293,39.7802775,-104.970135,39.780686
-5219,403,314,0.0562503326449317,0.0562503326449317,-104.970135,39.780686,-104.970235,39.781186
-5220,314,4709,0.11119492664509,0.11119492664509,-104.970235,39.781186,-104.970235,39.782186
-5222,4711,4170,0.194203357035268,0.194203357035268,-104.9694168,39.7183425,-104.9694426,39.7200889
-5223,4170,4712,0.208127290131148,0.208127290131148,-104.9694426,39.7200889,-104.969428,39.7219606
-5224,4712,4713,0.198927723766577,0.198927723766577,-104.969428,39.7219606,-104.969428,39.7237496
-5225,4713,4714,0.204935128047674,0.204935128047674,-104.969428,39.7237496,-104.9694407,39.7255926
-5226,4714,4715,0.188520271439654,0.188520271439654,-104.9694407,39.7255926,-104.9694452,39.727288
-5227,4715,3793,0.199712422815397,0.199712422815397,-104.9694452,39.727288,-104.9694638,39.729084
-5228,3793,4716,0.152617432717184,0.152617432717184,-104.9694638,39.729084,-104.9694538,39.7304565
-5229,4716,944,0.17742675257367,0.17742675257367,-104.9694538,39.7304565,-104.969481,39.732052
-5230,944,2228,0.183696049186415,0.183696049186415,-104.969481,39.732052,-104.9694709,39.733704
-5231,2228,4717,0.162619098965448,0.162619098965448,-104.9694709,39.733704,-104.9695136,39.7351661
-5232,4717,4718,0.189722276081874,0.189722276081874,-104.9695136,39.7351661,-104.9695224,39.7368723
-5233,4718,4719,0.171945095410338,0.171945095410338,-104.9695224,39.7368723,-104.9695494,39.7384185
-5234,4719,4720,0.177429725627003,0.177429725627003,-104.9695494,39.7384185,-104.9696136,39.7400134
-5235,4720,4721,0.102690706769844,0.102690706769844,-104.9696136,39.7400134,-104.9696847,39.7409353
-5236,4721,4722,0.0746285232074726,0.0746285232074726,-104.9696847,39.7409353,-104.969674,39.7416064
-5237,4722,668,0.00411462210691817,0.00411462210691817,-104.969674,39.7416064,-104.9696776,39.7416433
-5238,668,4723,0.00380364497345728,0.00380364497345728,-104.9696776,39.7416433,-104.9696767,39.7416775
-5240,4724,4604,0.175355420651263,0.175355420651263,-104.9696749,39.7432396,-104.9696679,39.7448166
-5242,1146,875,0.136296969384937,0.136296969384937,-104.9696868,39.7632831,-104.9696488,39.7645085
-5244,4463,2783,0.133890793284356,0.133890793284356,-104.9696481,39.7657517,-104.9696421,39.7669558
-5245,2783,4725,0.132805963492264,0.132805963492264,-104.9696421,39.7669558,-104.9696275,39.7681501
-5246,4725,4726,0.129702593554695,0.129702593554695,-104.9696275,39.7681501,-104.9698076,39.7693083
-5247,4726,4727,0.147549019452937,0.147549019452937,-104.9698076,39.7693083,-104.9683879,39.7700633
-5249,4728,4729,0.134556994040934,0.134556994040934,-104.9696547,39.7482082,-104.9696554,39.7494183
-5250,4729,4730,0.00403637583696172,0.00403637583696172,-104.9696554,39.7494183,-104.9696554,39.7494546
-5251,4730,4731,0.00537071495727797,0.00537071495727797,-104.9696554,39.7494546,-104.9696554,39.7495029
-5252,4731,4732,0.135502150823282,0.135502150823282,-104.9696554,39.7495029,-104.9696561,39.7507215
-5253,4732,4733,0.139193822038205,0.139193822038205,-104.9696561,39.7507215,-104.9696568,39.7519733
-5254,4733,820,0.139638598300339,0.139638598300339,-104.9696568,39.7519733,-104.9696574,39.7532291
-5255,820,3561,0.13948292881931,0.13948292881931,-104.9696574,39.7532291,-104.9696581,39.7544835
-5256,3561,4734,0.140172337301063,0.140172337301063,-104.9696581,39.7544835,-104.9696588,39.7557441
-5257,4734,4339,0.137170074560425,0.137170074560425,-104.9696588,39.7557441,-104.9696595,39.7569777
-5258,4339,4735,0.138982548276464,0.138982548276464,-104.9696595,39.7569777,-104.9696601,39.7582276
-5259,4735,3054,0.142752059367152,0.142752059367152,-104.9696601,39.7582276,-104.9696608,39.7595114
-5260,3054,4736,0.133100340642693,0.133100340642693,-104.9696608,39.7595114,-104.9696615,39.7607084
-5261,4736,4737,0.00492593525024253,0.00492593525024253,-104.9696615,39.7607084,-104.9696615,39.7607527
-5263,4738,3350,0.0528651873534889,0.0528651873534889,-104.9576522,39.7225573,-104.9570341,39.7225614
-5264,3350,4739,0.10426363885095,0.10426363885095,-104.9570341,39.7225614,-104.9558154,39.7225375
-5265,4739,4740,0.102034414473958,0.102034414473958,-104.9558154,39.7225375,-104.9546224,39.7225441
-14766,5462,7420,0.173120091654239,0.173120091654239,-104.9804447,39.73843,-104.9804389,39.7368731
-5266,4740,2059,0.102862063735102,0.102862063735102,-104.9546224,39.7225441,-104.9534197,39.7225407
-5267,2059,2645,0.103513208640623,0.103513208640623,-104.9534197,39.7225407,-104.9522095,39.7225539
-5268,2645,4111,0.104240888550753,0.104240888550753,-104.9522095,39.7225539,-104.9509907,39.7225605
-5270,4741,4742,0.102769926646245,0.102769926646245,-104.9498232,39.7225289,-104.9486216,39.7225355
-5271,4742,4743,0.104240916363933,0.104240916363933,-104.9486216,39.7225355,-104.9474028,39.7225421
-5272,4743,3452,0.105180194746781,0.105180194746781,-104.9474028,39.7225421,-104.9461731,39.7225293
-5273,3452,4744,0.10036641032569,0.10036641032569,-104.9461731,39.7225293,-104.9449996,39.7225355
-5274,4744,3882,0.105711927066125,0.105711927066125,-104.9449996,39.7225355,-104.9437636,39.7225289
-5275,3882,845,0.10371038656759,0.10371038656759,-104.9437636,39.7225289,-104.942551,39.7225227
-5276,845,4745,0.104689829390385,0.104689829390385,-104.942551,39.7225227,-104.9413272,39.7225428
-5277,4745,4746,0.0469848225431211,0.0469848225431211,-104.9413272,39.7225428,-104.9407779,39.7225362
-5279,2610,4747,0.106209148179485,0.106209148179485,-104.9874808,39.7225308,-104.986239,39.7225388
-5280,4747,4748,0.0529916423937814,0.0529916423937814,-104.986239,39.7225388,-104.9856194,39.7225378
-5282,4749,4750,0.0385383772070312,0.0385383772070312,-104.9854584,39.7225389,-104.9850078,39.7225409
-5283,4750,966,0.102580898845139,0.102580898845139,-104.9850078,39.7225409,-104.9838084,39.7225355
-5285,990,4751,0.0998368598850094,0.0998368598850094,-104.97408,39.7219474,-104.9729128,39.7219606
-5286,4751,4752,0.0507426333200071,0.0507426333200071,-104.9729128,39.7219606,-104.9723195,39.7219606
-5287,4752,4753,0.0483650078238011,0.0483650078238011,-104.9723195,39.7219606,-104.971754,39.7219606
-5288,4753,1987,0.0507354905741477,0.0507354905741477,-104.971754,39.7219606,-104.9711608,39.7219572
-5289,1987,4754,0.0483663202205498,0.0483663202205498,-104.9711608,39.7219572,-104.9705953,39.721954
-5290,4754,446,0.051479549664384,0.051479549664384,-104.9705953,39.721954,-104.9699934,39.7219574
-5291,446,4712,0.0483577654581108,0.0483577654581108,-104.9699934,39.7219574,-104.969428,39.7219606
-5292,4712,4755,0.101297109225192,0.101297109225192,-104.969428,39.7219606,-104.9682436,39.7219606
-5293,4755,4756,0.0117741801721385,0.0117741801721385,-104.9682436,39.7219606,-104.9681062,39.721954
-5294,4756,4757,0.0826634733388868,0.0826634733388868,-104.9681062,39.721954,-104.9671402,39.7219786
-5295,4757,4758,0.0342509974874732,0.0342509974874732,-104.9671402,39.7219786,-104.96674,39.72199
-5296,4758,4759,0.0175268141449879,0.0175268141449879,-104.96674,39.72199,-104.9665355,39.7220002
-5297,4759,4760,0.0234785463070149,0.0234785463070149,-104.9665355,39.7220002,-104.966261,39.7219977
-5298,4760,4761,0.0484972333709921,0.0484972333709921,-104.966261,39.7219977,-104.9656944,39.7219804
-5299,4761,3126,0.0271800985558075,0.0271800985558075,-104.9656944,39.7219804,-104.9653769,39.7219698
-5300,3126,3148,0.0183600177870361,0.0183600177870361,-104.9653769,39.7219698,-104.9651624,39.7219764
-5301,3148,3143,0.0330468719768483,0.0330468719768483,-104.9651624,39.7219764,-104.9647761,39.721983
-5302,3143,4762,0.0646645186035183,0.0646645186035183,-104.9647761,39.721983,-104.9640208,39.7219566
-5303,4762,3915,0.0595606911380279,0.0595606911380279,-104.9640208,39.7219566,-104.963325,39.7219789
-5304,3915,1052,0.123917065152439,0.123917065152439,-104.963325,39.7219789,-104.9620287,39.7224767
-5305,1052,4399,0.111768087862579,0.111768087862579,-104.9620287,39.7224767,-104.9607224,39.7225056
-5306,4399,4763,0.0469346079446244,0.0469346079446244,-104.9607224,39.7225056,-104.9601753,39.7225386
-5308,4764,4765,0.103730937833073,0.103730937833073,-104.959446,39.7225375,-104.9582333,39.722553
-5311,3155,4767,0.101587564129846,0.101587564129846,-104.9811238,39.7224897,-104.979936,39.722487
-5312,4767,4768,0.101450282305199,0.101450282305199,-104.979936,39.722487,-104.9787498,39.7224871
-5313,4768,4769,0.102136172096814,0.102136172096814,-104.9787498,39.7224871,-104.9775557,39.7224741
-5314,4769,4770,0.0492382919352757,0.0492382919352757,-104.9775557,39.7224741,-104.97698,39.7224773
-5316,4771,4772,0.100332506519832,0.100332506519832,-104.9764091,39.7224805,-104.975236,39.722487
-5317,4772,4773,0.0490390048099826,0.0490390048099826,-104.975236,39.722487,-104.9746628,39.7224758
-5318,4773,989,0.0495269165196006,0.0495269165196006,-104.9746628,39.7224758,-104.9740839,39.7224644
-5320,4774,4775,0.110656269548842,0.110656269548842,-104.9406125,39.7231655,-104.9393188,39.7231502
-5321,4775,4776,0.0922568863786424,0.0922568863786424,-104.9393188,39.7231502,-104.9382401,39.7231549
-5322,4776,4777,0.0968744294941002,0.0968744294941002,-104.9382401,39.7231549,-104.9371074,39.7231516
-5323,4777,4778,0.0933681364009737,0.0933681364009737,-104.9371074,39.7231516,-104.9360157,39.7231479
-5324,4778,2017,0.096243154582377,0.096243154582377,-104.9360157,39.7231479,-104.9348905,39.7231609
-5325,2017,2007,0.0302079551181684,0.0302079551181684,-104.9348905,39.7231609,-104.9345373,39.7231591
-5326,2007,4779,0.0612998845077431,0.0612998845077431,-104.9345373,39.7231591,-104.9338206,39.7231525
-5327,4779,2763,0.0939372654248904,0.0939372654248904,-104.9338206,39.7231525,-104.9327223,39.7231433
-5328,2763,4782,0.0939831368366747,0.0939831368366747,-104.9327223,39.7231433,-104.9316237,39.7231631
-5329,4782,2267,0.0946761779636641,0.0946761779636641,-104.9316237,39.7231631,-104.9305167,39.7231657
-5330,2267,3596,0.0957452269737562,0.0957452269737562,-104.9305167,39.7231657,-104.9293972,39.7231683
-5332,4783,2096,0.0938496563543502,0.0938496563543502,-104.9282926,39.7231695,-104.9271953,39.7231622
-5333,2096,4784,0.0942585077375453,0.0942585077375453,-104.9271953,39.7231622,-104.9260932,39.7231675
-5334,4784,4785,0.0947863905236846,0.0947863905236846,-104.9260932,39.7231675,-104.924985,39.7231786
-5335,4785,2332,0.0940516760171392,0.0940516760171392,-104.924985,39.7231786,-104.9238853,39.7231807
-6607,5694,5695,0.0154325675938591,0.0154325675938591,-105.0360627,39.7071657,-105.0362429,39.7071723
-5337,4089,4787,0.198005363606862,0.198005363606862,-105.0135338,39.7838344,-105.0135283,39.7856151
-5339,4788,4789,0.404049086255387,0.404049086255387,-105.013522,39.787431,-105.013525,39.7910647
-5340,4790,119,0.0976422064224313,0.0976422064224313,-105.0128361,39.7293183,-105.0128289,39.7301964
-5341,119,4791,0.0958834096516534,0.0958834096516534,-105.0128289,39.7301964,-105.0128297,39.7310587
-5342,4791,2312,0.0465244099907656,0.0465244099907656,-105.0128297,39.7310587,-105.0128321,39.7314771
-5344,4792,2484,0.133450471266853,0.133450471266853,-105.0126909,39.7777735,-105.0126768,39.7789736
-5345,2484,2823,0.13353766665554,0.13353766665554,-105.0126768,39.7789736,-105.0126652,39.7801745
-5346,2823,1414,0.132023734494372,0.132023734494372,-105.0126652,39.7801745,-105.0126737,39.7813618
-5347,1414,1354,0.131894209152808,0.131894209152808,-105.0126737,39.7813618,-105.0126985,39.7825478
-5348,1354,4793,0.0769784662870068,0.0769784662870068,-105.0126985,39.7825478,-105.0126685,39.7832397
-5350,4794,4795,0.0387509077758481,0.0387509077758481,-105.0131497,39.7568505,-105.0131391,39.7571989
-5351,4795,2952,0.134935498636386,0.134935498636386,-105.0131391,39.7571989,-105.013135,39.7584124
-5352,2952,4796,0.136197421914805,0.136197421914805,-105.013135,39.7584124,-105.0131498,39.7596372
-5353,4796,4797,0.129998438382796,0.129998438382796,-105.0131498,39.7596372,-105.0131458,39.7608063
-5354,4797,4798,0.134935065412598,0.134935065412598,-105.0131458,39.7608063,-105.0131467,39.7620198
-5356,2635,4799,0.200962590925039,0.200962590925039,-105.0131527,39.7220573,-105.0131527,39.72025
-5357,4799,4800,0.183883066303689,0.183883066303689,-105.0131527,39.72025,-105.0131518,39.7185963
-5358,4801,4802,0.0508168176081005,0.0508168176081005,-105.0127766,39.7620198,-105.0127798,39.7624768
-5359,4802,4516,0.0829526060571819,0.0829526060571819,-105.0127798,39.7624768,-105.012785,39.7632228
-6631,5709,5710,0.263510763458761,0.263510763458761,-105.0362218,39.7282406,-105.0362304,39.7306104
-5360,4516,4803,0.133849874797103,0.133849874797103,-105.012785,39.7632228,-105.0127721,39.7644265
-5361,4803,4804,0.135491260752817,0.135491260752817,-105.0127721,39.7644265,-105.0127751,39.765645
-5363,4805,1674,0.127474088546245,0.127474088546245,-105.0127781,39.7668943,-105.0127809,39.7680407
-5364,1674,4806,0.138137679733803,0.138137679733803,-105.0127809,39.7680407,-105.0127838,39.769283
-5366,4807,2455,0.134491411129426,0.134491411129426,-105.0135134,39.7692764,-105.0135199,39.7704859
-5367,2455,3223,0.138294178425788,0.138294178425788,-105.0135199,39.7704859,-105.0135136,39.7717296
-5369,4808,4809,0.133134706345954,0.133134706345954,-105.0135073,39.7729344,-105.0135012,39.7741317
-5370,4809,4810,0.135569856870466,0.135569856870466,-105.0135012,39.7741317,-105.0134951,39.7753509
-5371,4810,4811,0.134368341783309,0.134368341783309,-105.0134951,39.7753509,-105.0134913,39.7765593
-5372,4811,4812,0.133035455825063,0.133035455825063,-105.0134913,39.7765593,-105.0134831,39.7777557
-5374,4813,4814,0.201931453578911,0.201931453578911,-105.0131892,39.7275003,-105.0131982,39.7293163
-5376,123,4815,0.0586808902574419,0.0586808902574419,-105.0068372,39.7583708,-105.0073436,39.7587271
-5377,1608,1158,0.0531893778682351,0.0531893778682351,-104.9996914,39.7528341,-104.9992501,39.7524969
-5378,1158,4816,0.0522853387259307,0.0522853387259307,-104.9992501,39.7524969,-104.9988196,39.7521629
-5379,4816,4817,0.0528559175260399,0.0528559175260399,-104.9988196,39.7521629,-104.9983798,39.7518288
-5380,4817,4818,0.0526139267336242,0.0526139267336242,-104.9983798,39.7518288,-104.9979466,39.7514927
-5382,4819,4820,0.146802081972091,0.146802081972091,-105.0080831,39.7592475,-105.0093022,39.7601774
-5383,4820,4821,0.146390170205012,0.146390170205012,-105.0093022,39.7601774,-105.0105051,39.7611145
-5384,4821,4822,0.0767990953688077,0.0767990953688077,-105.0105051,39.7611145,-105.0111481,39.7615969
-5386,3289,4824,0.0733337823028737,0.0733337823028737,-104.9455011,39.7038602,-104.9453876,39.7032065
-5387,4824,4825,0.151650147757225,0.151650147757225,-104.9453876,39.7032065,-104.9446221,39.7019764
-5389,97,3502,0.20326475820455,0.20326475820455,-104.9442146,39.7002138,-104.9442195,39.6983858
-5390,3502,4826,0.200021830134173,0.200021830134173,-104.9442195,39.6983858,-104.944235,39.696587
-5391,4826,4827,0.204558997826367,0.204558997826367,-104.944235,39.696587,-104.9441769,39.6947479
-5392,4827,4828,0.201476703732084,0.201476703732084,-104.9441769,39.6947479,-104.9441889,39.692936
-5394,4829,4830,0.558813274805265,0.558813274805265,-104.9441934,39.6893133,-104.9442154,39.6842878
-5395,3635,1894,0.33996915967689,0.33996915967689,-104.9460363,39.7095165,-104.9460234,39.7064591
-5396,1894,4831,0.234959433855918,0.234959433855918,-104.9460234,39.7064591,-104.9460063,39.7043461
-5397,4831,3288,0.0548366602436518,0.0548366602436518,-104.9460063,39.7043461,-104.9459732,39.7038536
-5399,3879,4832,0.175154251791819,0.175154251791819,-104.9437605,39.7162182,-104.9437601,39.714643
-5400,4832,3070,0.175288290924905,0.175288290924905,-104.9437601,39.714643,-104.9437655,39.7130666
-5402,4833,4834,0.239573627081124,0.239573627081124,-104.9437517,39.7114947,-104.9437682,39.7093402
-5404,3962,4835,0.197156843459588,0.197156843459588,-105.0001681,39.7165803,-105.0001358,39.7148074
-5405,4835,4836,0.094417767822886,0.094417767822886,-105.0001358,39.7148074,-104.9997732,39.7140054
-5406,4836,388,0.087554257922167,0.087554257922167,-104.9997732,39.7140054,-104.9994213,39.713266
-5407,388,1384,0.157773442883539,0.157773442883539,-104.9994213,39.713266,-104.998769,39.7119388
-5408,1384,4837,0.0895725883825947,0.0895725883825947,-104.998769,39.7119388,-104.9983742,39.7111927
-5409,4837,325,0.282856295391869,0.282856295391869,-104.9983742,39.7111927,-104.9964344,39.7091326
-6684,2175,5744,0.101148378971839,0.101148378971839,-105.0146888,39.7729346,-105.0158722,39.7729208
-5410,325,4838,0.0837092029011689,0.0837092029011689,-104.9964344,39.7091326,-104.9964173,39.7083799
-5411,4838,4840,0.0963811879451104,0.0963811879451104,-104.9964173,39.7083799,-104.9965817,39.7075224
-5412,4840,4841,0.421707851811283,0.421707851811283,-104.9965817,39.7075224,-104.995653,39.7037978
-5415,1486,144,0.196859858102641,0.196859858102641,-105.0003404,39.6948842,-105.000336,39.6931138
-5417,2194,4843,0.069400098080988,0.069400098080988,-104.999248,39.7553456,-104.9986941,39.7558019
-5418,4843,4844,0.128982538897387,0.128982538897387,-104.9986941,39.7558019,-104.9974984,39.7565094
-5420,4845,4846,0.127385402005959,0.127385402005959,-105.0049838,39.7515411,-105.0038505,39.7522849
-5421,4846,4847,0.0485354577138893,0.0485354577138893,-105.0038505,39.7522849,-105.0034718,39.7526101
-5422,4847,2197,0.0570536883887032,0.0570536883887032,-105.0034718,39.7526101,-105.0028674,39.7528277
-5423,2197,2198,0.0030293307914236,0.0030293307914236,-105.0028674,39.7528277,-105.0028654,39.7528005
-5425,2191,4848,0.228805525488878,0.228805525488878,-104.9936227,39.759356,-104.9915939,39.7606983
-5427,4281,2319,0.149466526420244,0.149466526420244,-104.9797003,39.7709793,-104.9784558,39.7719237
-5428,2319,4849,0.264070561759483,0.264070561759483,-104.9784558,39.7719237,-104.9763149,39.7736361
-5430,4850,4851,0.124106376215018,0.124106376215018,-104.9969821,39.757589,-104.996067,39.7584555
-5432,4852,4853,0.107373531206162,0.107373531206162,-104.987369,39.7352666,-104.9861135,39.7352834
-5433,4853,4854,0.108589473424165,0.108589473424165,-104.9861135,39.7352834,-104.9848436,39.7352795
-5434,4854,4855,0.105767467639199,0.105767467639199,-104.9848436,39.7352795,-104.9836067,39.7352829
-5435,4855,4856,0.0608956612626877,0.0608956612626877,-104.9836067,39.7352829,-104.9828985,39.7352253
-5436,4856,4857,0.0536676140413411,0.0536676140413411,-104.9828985,39.7352253,-104.9822782,39.7351518
-5438,4858,4859,0.053767328384899,0.053767328384899,-104.981675,39.7351569,-104.9810463,39.7351489
-5439,4859,4860,0.0517270733374725,0.0517270733374725,-104.9810463,39.7351489,-104.9804415,39.7351584
-5440,4860,4861,0.0506527251945452,0.0506527251945452,-104.9804415,39.7351584,-104.9798492,39.735165
-5441,4861,4862,0.0500931909858678,0.0500931909858678,-104.9798492,39.735165,-104.9792634,39.7351686
-5442,4862,4863,0.0473439516711298,0.0473439516711298,-104.9792634,39.7351686,-104.9787104,39.7351477
-5444,4864,4865,0.0521797446029276,0.0521797446029276,-104.9781817,39.7351466,-104.9775716,39.7351373
-17093,9466,677,0.17846620541914,0.17846620541914,-104.9603865,39.7432158,-104.960408,39.7416109
-17094,677,3719,0.359015096413943,0.359015096413943,-104.960408,39.7416109,-104.9604099,39.7383822
-5446,4866,4867,0.0492134016241179,0.0492134016241179,-104.9770059,39.7351417,-104.9764304,39.7351462
-5447,4867,4868,0.0506066180898924,0.0506066180898924,-104.9764304,39.7351462,-104.9758386,39.7351502
-5448,4868,4869,0.0483319487475015,0.0483319487475015,-104.9758386,39.7351502,-104.9752734,39.735154
-5449,4869,4870,0.0507611555520018,0.0507611555520018,-104.9752734,39.735154,-104.9746798,39.7351494
-5450,4870,980,0.0494869052239766,0.0494869052239766,-104.9746798,39.7351494,-104.9741011,39.735145
-5451,980,4871,0.0481249293188332,0.0481249293188332,-104.9741011,39.735145,-104.9735383,39.7351456
-5452,4871,4872,0.0462779203242365,0.0462779203242365,-104.9735383,39.7351456,-104.9729971,39.7351462
-20332,10741,10746,0.00836528320993219,0.00836528320993219,-105.0236254,39.7588748,-105.0236226,39.75895
-5453,4872,4873,0.0504026300689218,0.0504026300689218,-104.9729971,39.7351462,-104.9724077,39.7351513
-5454,4873,4874,0.0485554829183078,0.0485554829183078,-104.9724077,39.7351513,-104.9718399,39.7351562
-5455,4874,4875,0.0534696334958417,0.0534696334958417,-104.9718399,39.7351562,-104.9712147,39.735165
-6731,5782,5783,0.00425137254991275,0.00425137254991275,-104.9941044,39.7503839,-104.9941411,39.7504097
-5456,4875,4876,0.0484412552758981,0.0484412552758981,-104.9712147,39.735165,-104.9706482,39.735165
-5458,4877,4717,0.0471074620934606,0.0471074620934606,-104.9700645,39.735165,-104.9695136,39.7351661
-5459,4717,4878,0.132709338239974,0.132709338239974,-104.9695136,39.7351661,-104.9679617,39.7351782
-5461,4879,3888,0.0983476297531957,0.0983476297531957,-104.9646143,39.7350528,-104.9634642,39.7350462
-5462,3888,1018,0.103492590132028,0.103492590132028,-104.9634642,39.7350462,-104.9622539,39.7350462
-5463,1018,4880,0.0514136092144711,0.0514136092144711,-104.9622539,39.7350462,-104.9616527,39.7350527
-5464,4880,4881,0.0525893579522226,0.0525893579522226,-104.9616527,39.7350527,-104.9610377,39.7350501
-5465,4881,3721,0.0533162444253223,0.0533162444253223,-104.9610377,39.7350501,-104.9604142,39.7350474
-5466,3721,4882,0.0519823122660099,0.0519823122660099,-104.9604142,39.7350474,-104.9598063,39.7350501
-5467,4882,4883,0.0522344210852062,0.0522344210852062,-104.9598063,39.7350501,-104.9591955,39.7350566
-5468,4883,4884,0.0505876398657049,0.0505876398657049,-104.9591955,39.7350566,-104.9586039,39.7350563
-5469,4884,3336,0.0998762512001326,0.0998762512001326,-104.9586039,39.7350563,-104.9574365,39.7350853
-5470,3336,4885,0.0991185753255084,0.0991185753255084,-104.9574365,39.7350853,-104.9562778,39.7351101
-5471,4885,4886,0.0963539908668941,0.0963539908668941,-104.9562778,39.7351101,-104.9551513,39.7351307
-5472,4886,4887,0.0885379825241657,0.0885379825241657,-104.9551513,39.7351307,-104.9541159,39.7351266
-5473,4887,4888,0.0119373214867398,0.0119373214867398,-104.9541159,39.7351266,-104.9539764,39.7351225
-5474,4888,2056,0.0843994384439808,0.0843994384439808,-104.9539764,39.7351225,-104.9529894,39.7351183
-5475,2056,4889,0.0133131298111966,0.0133131298111966,-104.9529894,39.7351183,-104.9528338,39.7351142
-5476,4889,2662,0.0974967707832978,0.0974967707832978,-104.9528338,39.7351142,-104.9516945,39.7351487
-5477,2662,4135,0.0954371783119999,0.0954371783119999,-104.9516945,39.7351487,-104.9505787,39.7351289
-5479,4890,4891,0.0937877451974264,0.0937877451974264,-104.9494864,39.7351307,-104.9483898,39.7351143
-5480,4891,4892,0.0948153596322219,0.0948153596322219,-104.9483898,39.7351143,-104.947281,39.73512
-5482,3459,4893,0.0478001833146321,0.0478001833146321,-104.9461795,39.735119,-104.9456205,39.7351177
-5484,4894,4895,0.0479027082737571,0.0479027082737571,-104.945082,39.7351139,-104.9445218,39.7351149
-5485,4895,4896,0.0478122905377956,0.0478122905377956,-104.9445218,39.7351149,-104.9439627,39.7351095
-5486,4896,859,0.0923773172496592,0.0923773172496592,-104.9439627,39.7351095,-104.9428825,39.7350975
-5487,859,454,0.0453886692992681,0.0453886692992681,-104.9428825,39.7350975,-104.9423517,39.7350982
-5488,454,4897,0.0453208554339034,0.0453208554339034,-104.9423517,39.7350982,-104.9418217,39.735096
-5489,4897,458,0.0453479211780813,0.0453479211780813,-104.9418217,39.735096,-104.9412914,39.7350999
-5492,4899,4900,0.0139467367099566,0.0139467367099566,-104.9407436,39.7346624,-104.9405805,39.7346624
-5493,4900,4901,0.0360421538971705,0.0360421538971705,-104.9405805,39.7346624,-104.9401595,39.7346781
-5494,4901,4902,0.0578381423218813,0.0578381423218813,-104.9401595,39.7346781,-104.9394839,39.7347032
-5495,4902,4903,0.00552719826630604,0.00552719826630604,-104.9394839,39.7347032,-104.9394193,39.7347015
-5496,4903,4904,0.0875768226675012,0.0875768226675012,-104.9394193,39.7347015,-104.9383957,39.7346753
-5497,4904,4905,0.0943606682528015,0.0943606682528015,-104.9383957,39.7346753,-104.9372922,39.7346747
-5498,4905,4906,0.0967192189659533,0.0967192189659533,-104.9372922,39.7346747,-104.9361612,39.7346852
-5499,4906,4907,0.098185525305783,0.098185525305783,-104.9361612,39.7346852,-104.935013,39.7346788
-5501,4908,2748,0.100541646868693,0.100541646868693,-104.9338415,39.7346803,-104.9326658,39.7346911
-5502,2748,4909,0.0966275722613029,0.0966275722613029,-104.9326658,39.7346911,-104.9315358,39.7346873
-5503,4909,4910,0.0992689355907326,0.0992689355907326,-104.9315358,39.7346873,-104.9303749,39.7346868
-5504,4910,4911,0.101479918551735,0.101479918551735,-104.9303749,39.7346868,-104.9291882,39.7346779
-6779,5822,3617,0.0484295076881561,0.0484295076881561,-104.9810031,39.6911678,-104.9804371,39.6911668
-5505,4911,4912,0.0969181343296834,0.0969181343296834,-104.9291882,39.7346779,-104.9280548,39.7346813
-5507,2121,4913,0.0979459294550903,0.0979459294550903,-104.9268925,39.7346889,-104.9257471,39.7346951
-5508,4913,4914,0.0979869433285632,0.0979869433285632,-104.9257471,39.7346951,-104.9246012,39.7346918
-5509,4914,4915,0.197888030311115,0.197888030311115,-104.9246012,39.7346918,-104.922287,39.7346902
-5510,3113,4916,0.205521796352519,0.205521796352519,-104.9578008,39.7129346,-104.9580269,39.7110945
-5511,4916,4917,0.213014583006008,0.213014583006008,-104.9580269,39.7110945,-104.9558286,39.7101945
-5514,1222,4919,0.098914174918745,0.098914174918745,-105.0123423,39.7375848,-105.0134991,39.7375845
-5516,4920,1622,0.0585646429204787,0.0585646429204787,-104.9894816,39.7286261,-104.9899006,39.7290427
-5517,1622,4921,0.122620409777708,0.122620409777708,-104.9899006,39.7290427,-104.9906535,39.7299812
-5518,4921,4922,0.218423462474676,0.218423462474676,-104.9906535,39.7299812,-104.9919185,39.7316877
-5520,2815,4923,0.167710746898946,0.167710746898946,-104.9919925,39.7317917,-104.9929606,39.7331034
-5521,4923,4924,0.0980438120983448,0.0980438120983448,-104.9929606,39.7331034,-104.9935332,39.7338673
-5523,4677,4925,0.0746274432259007,0.0746274432259007,-104.9941264,39.7346802,-104.9945592,39.735263
-5525,4926,617,0.0797365701263369,0.0797365701263369,-104.9952734,39.7362407,-104.9957301,39.7368659
-5526,617,4927,0.125187481931903,0.125187481931903,-104.9957301,39.7368659,-104.9964542,39.7378444
-5527,4927,4928,0.0778528067673226,0.0778528067673226,-104.9964542,39.7378444,-104.9968967,39.7384563
-5528,4928,4929,0.199074396611122,0.199074396611122,-104.9968967,39.7384563,-104.9980335,39.7400187
-5532,4932,4933,0.00438034032424269,0.00438034032424269,-104.9989204,39.7415592,-104.9989403,39.7415955
-5533,4933,4934,0.0884200199820011,0.0884200199820011,-104.9989403,39.7415955,-104.9993415,39.7423284
-5534,4934,4935,0.245891005874257,0.245891005874257,-104.9993415,39.7423284,-104.9999815,39.7444843
-5535,4935,4936,0.142250751986944,0.142250751986944,-104.9999815,39.7444843,-105.0001355,39.7457581
-5536,4936,4937,0.0173695104401488,0.0173695104401488,-105.0001355,39.7457581,-105.0002133,39.7459024
-5538,4938,4939,0.203545296385478,0.203545296385478,-104.9976397,39.7384568,-104.9964751,39.7368603
-5540,1358,4940,0.12982829991663,0.12982829991663,-104.9942545,39.7824831,-104.9942716,39.7836506
-5543,4079,2536,0.319784261068233,0.319784261068233,-104.9938425,39.7841519,-104.9938854,39.7870276
-5545,4926,616,0.0701041786984163,0.0701041786984163,-104.9952734,39.7362407,-104.9952849,39.7368711
-5546,616,4942,0.177022653633518,0.177022653633518,-104.9952849,39.7368711,-104.9952889,39.7384631
-5547,4942,4943,0.172063039899941,0.172063039899941,-104.9952889,39.7384631,-104.9952896,39.7400105
-5549,4944,4945,0.149558307265757,0.149558307265757,-104.9951662,39.7166026,-104.9951594,39.7179476
-5550,4945,3715,0.0517838841978355,0.0517838841978355,-104.9951594,39.7179476,-104.995157,39.7184133
-5551,3715,4948,0.104024626392335,0.104024626392335,-104.995157,39.7184133,-104.9951641,39.7193488
-5552,4948,4949,0.174823058982553,0.174823058982553,-104.9951641,39.7193488,-104.9951748,39.720921
-5553,4949,2616,0.177668474307762,0.177668474307762,-104.9951748,39.720921,-104.9951825,39.7225188
-5554,2616,4950,0.0535070014349516,0.0535070014349516,-104.9951825,39.7225188,-104.9951823,39.723
-5555,4950,4951,0.124049062817869,0.124049062817869,-104.9951823,39.723,-104.995182,39.7241156
-5556,4951,4952,0.174777210980769,0.174777210980769,-104.995182,39.7241156,-104.995189,39.7256874
-5557,4952,4953,0.127620790205472,0.127620790205472,-104.995189,39.7256874,-104.9951981,39.7268351
-5558,4953,4954,0.0551759306609038,0.0551759306609038,-104.9951981,39.7268351,-104.995202,39.7273313
-5559,4954,4955,0.176133032867453,0.176133032867453,-104.995202,39.7273313,-104.9951984,39.7289153
-5560,4955,4956,0.177512737206305,0.177512737206305,-104.9951984,39.7289153,-104.9952321,39.7305115
-5562,4406,4957,0.277669971565855,0.277669971565855,-105.0297541,39.6988189,-105.0329814,39.6985547
-5564,4958,4959,0.199658223163124,0.199658223163124,-105.0250687,39.6992129,-105.0274024,39.6992151
-5566,1598,1655,0.160087686125488,0.160087686125488,-105.0137725,39.6990764,-105.0156436,39.6990896
-5568,4960,1592,0.199275601482479,0.199275601482479,-105.0109882,39.7047956,-105.0133176,39.7047886
-5569,1592,1643,0.201203252625689,0.201203252625689,-105.0133176,39.7047886,-105.0156693,39.7047622
-5571,4961,4369,0.0888591183295397,0.0888591183295397,-105.0004878,39.7048835,-105.0015255,39.7049188
-5572,4369,1450,0.193863730230332,0.193863730230332,-105.0015255,39.7049188,-105.0037914,39.7048924
-5573,1450,4962,0.20633144077854,0.20633144077854,-105.0037914,39.7048924,-105.0062033,39.7048924
-5575,4963,4964,0.865026893272847,0.865026893272847,-105.0432124,39.7049338,-105.0532477,39.7039798
-5577,4966,4413,0.196777109156883,0.196777109156883,-105.027514,39.7049206,-105.0298142,39.704914
-5578,4413,4967,0.224682445917882,0.224682445917882,-105.0298142,39.704914,-105.0324406,39.7049206
-5579,4967,4304,0.221012468473467,0.221012468473467,-105.0324406,39.7049206,-105.0350241,39.7049272
-5582,4969,4970,0.107069922554974,0.107069922554974,-104.9800922,39.781891,-104.9800953,39.7828539
-5583,4970,4972,0.0948495530272937,0.0948495530272937,-104.9800953,39.7828539,-104.980098,39.7837069
-5586,4269,4973,0.080198786030782,0.080198786030782,-104.980164,39.7783344,-104.9800837,39.779053
-5587,4974,4767,0.0973607348320062,0.0973607348320062,-104.9799651,39.7216117,-104.979936,39.722487
-5588,4767,4975,0.179413565332346,0.179413565332346,-104.979936,39.722487,-104.9799308,39.7241005
-5589,4975,4976,0.169917329199621,0.169917329199621,-104.9799308,39.7241005,-104.9799349,39.7256286
-5590,4976,4977,0.181948721536683,0.181948721536683,-104.9799349,39.7256286,-104.9799397,39.7272649
-5591,4977,3805,0.200239828466703,0.200239828466703,-104.9799397,39.7272649,-104.9799392,39.7290657
-5592,3805,4978,0.152216995314545,0.152216995314545,-104.9799392,39.7290657,-104.9799295,39.7304346
-5594,3620,4979,0.203157103314032,0.203157103314032,-104.9803501,39.716491,-104.9802827,39.7183173
-5595,4979,2366,0.112909559408727,0.112909559408727,-104.9802827,39.7183173,-104.9802624,39.7193326
-5596,2366,4147,0.176980531073324,0.176980531073324,-104.9802624,39.7193326,-104.9802738,39.7209242
-5597,4147,4980,0.0231632311908037,0.0231632311908037,-104.9802738,39.7209242,-104.9802767,39.7211325
-5599,4981,4982,0.122490029160582,0.122490029160582,-104.9800351,39.7844962,-104.9800523,39.7855977
-5600,4982,4983,0.198021379234554,0.198021379234554,-104.9800523,39.7855977,-104.9800351,39.7873785
-5602,4831,3290,0.14433688220634,0.14433688220634,-104.9460063,39.7043461,-104.9444349,39.7038735
-5604,4248,1783,0.203809923376497,0.203809923376497,-104.985053,39.6966228,-104.9850787,39.69479
-5605,1783,4984,0.197266471488896,0.197266471488896,-104.9850787,39.69479,-104.9851312,39.6930164
-5606,4984,4985,0.203487572214077,0.203487572214077,-104.9851312,39.6930164,-104.9851243,39.6911864
-5607,4985,4986,0.197825547248631,0.197825547248631,-104.9851243,39.6911864,-104.9851579,39.6894075
-5608,4986,4987,2.41542068401941,2.41542068401941,-104.9851579,39.6894075,-104.9851604,39.6676851
-5610,4989,4990,0.0962172324904451,0.0962172324904451,-104.9850107,39.7147282,-104.985045,39.7138633
-5611,4990,3077,0.102766134165042,0.102766134165042,-104.985045,39.7138633,-104.9850625,39.7129392
-5613,4991,322,0.0217232354992756,0.0217232354992756,-105.0155876,39.7516074,-105.0158044,39.7515055
-5614,322,4992,0.0357866971477297,0.0357866971477297,-105.0158044,39.7515055,-105.0161841,39.75137
-5615,4992,4993,0.0111993418256192,0.0111993418256192,-105.0161841,39.75137,-105.0163127,39.7513508
-5618,4994,3114,0.0796924849623814,0.0796924849623814,-104.9518573,39.713502,-104.9523224,39.712881
-5619,3114,4995,0.20745656668227,0.20745656668227,-104.9523224,39.712881,-104.9523191,39.7110153
-5621,4996,4997,0.202175143533063,0.202175143533063,-104.9523584,39.6965806,-104.952353,39.6947624
-5622,4997,4998,0.201486340865611,0.201486340865611,-104.952353,39.6947624,-104.9523609,39.6929504
-5623,4998,4999,0.201289887939002,0.201289887939002,-104.9523609,39.6929504,-104.9523772,39.6911402
-5624,4999,5000,0.201274447612783,0.201274447612783,-104.9523772,39.6911402,-104.9523825,39.6893301
-5625,5000,5001,0.402211090441065,0.402211090441065,-104.9523825,39.6893301,-104.952412,39.685713
-5627,1058,5002,0.0523412516567849,0.0523412516567849,-104.9523656,39.702949,-104.9525063,39.7024909
-5628,5002,5003,0.185331167798599,0.185331167798599,-104.9525063,39.7024909,-104.9542392,39.7014907
-5629,5003,3655,0.0518833582791727,0.0518833582791727,-104.9542392,39.7014907,-104.9546075,39.70112
-5632,5004,4344,0.139169147250759,0.139169147250759,-104.9585604,39.7557264,-104.9585786,39.7569779
-5633,4344,5005,0.13717907888566,0.13717907888566,-104.9585786,39.7569779,-104.9585602,39.7582115
-5634,5005,3044,0.136502893019444,0.136502893019444,-104.9585602,39.7582115,-104.95856,39.7594391
-5635,3044,5006,0.140687498507325,0.140687498507325,-104.95856,39.7594391,-104.9585719,39.7607043
-5636,5006,5007,0.0045870406114538,0.0045870406114538,-104.9585719,39.7607043,-104.9585692,39.7607455
-5637,5007,5008,0.137903992793689,0.137903992793689,-104.9585692,39.7607455,-104.9585679,39.7619857
-5638,5008,1165,0.1390388743026,0.1390388743026,-104.9585679,39.7619857,-104.9585626,39.7632361
-5640,885,4470,0.139218366547603,0.139218366547603,-104.9585659,39.7644817,-104.9585565,39.7657337
-5641,4470,2792,0.134293285442621,0.134293285442621,-104.9585565,39.7657337,-104.9585673,39.7669414
-5642,2792,5009,0.131431211174063,0.131431211174063,-104.9585673,39.7669414,-104.9585862,39.7681233
-5644,5012,739,0.391173244940122,0.391173244940122,-104.9582526,39.7728926,-104.9582445,39.7764105
-5645,739,1559,0.139743785900176,0.139743785900176,-104.9582445,39.7764105,-104.9582585,39.7776672
-5646,1559,4275,0.141288921951359,0.141288921951359,-104.9582585,39.7776672,-104.9582338,39.7789377
-5647,4275,5013,0.120791048813674,0.120791048813674,-104.9582338,39.7789377,-104.9582338,39.780024
-5648,5013,5014,0.0105624832499152,0.0105624832499152,-104.9582338,39.780024,-104.9582392,39.7801189
-5649,5014,5015,0.0438951959332696,0.0438951959332696,-104.9582392,39.7801189,-104.9582016,39.7805126
-5650,5015,5016,0.160752036464104,0.160752036464104,-104.9582016,39.7805126,-104.9581399,39.7819575
-5652,5017,2345,0.117820938280592,0.117820938280592,-104.9590772,39.7184349,-104.9585534,39.7194149
-5654,4151,1536,0.0491815160552347,0.0491815160552347,-104.9582358,39.7209729,-104.9582358,39.7214152
-5655,1536,4765,0.126517768209698,0.126517768209698,-104.9582358,39.7214152,-104.9582333,39.722553
-5656,4765,5019,0.175921623374803,0.175921623374803,-104.9582333,39.722553,-104.9582358,39.7241351
-5657,5019,5020,0.0764689744574068,0.0764689744574068,-104.9582358,39.7241351,-104.9582512,39.7248227
-5658,5020,5021,0.102480731304504,0.102480731304504,-104.9582512,39.7248227,-104.958869,39.7256124
-5659,5021,1190,0.167860102396295,0.167860102396295,-104.958869,39.7256124,-104.9590238,39.7271173
-5660,1190,5022,0.022286088803945,0.022286088803945,-104.9590238,39.7271173,-104.9590198,39.7273177
-5661,5022,3787,0.1996828431131,0.1996828431131,-104.9590198,39.7273177,-104.9590433,39.7291134
-5662,3787,5023,0.154628071522294,0.154628071522294,-104.9590433,39.7291134,-104.9592069,39.7304983
-5687,5040,1763,0.201152967219908,0.201152967219908,-104.9768897,39.7183279,-104.9768983,39.7165189
-5663,5023,2252,0.333559522830682,0.333559522830682,-104.9592069,39.7304983,-104.9586038,39.733462
-5664,2252,5024,0.0290309763494638,0.0290309763494638,-104.9586038,39.733462,-104.9585953,39.733723
-5665,5024,4884,0.148258019557603,0.148258019557603,-104.9585953,39.733723,-104.9586039,39.7350563
-5666,4884,5025,0.194698119191853,0.194698119191853,-104.9586039,39.7350563,-104.9585847,39.7368072
-5667,5025,5026,0.176313474196241,0.176313474196241,-104.9585847,39.7368072,-104.9586987,39.7383904
-5668,5026,5027,0.192373972114261,0.192373972114261,-104.9586987,39.7383904,-104.9587811,39.7401193
-5669,5027,679,0.169442185038323,0.169442185038323,-104.9587811,39.7401193,-104.9591758,39.7416126
-5672,5029,4596,0.157086480064782,0.157086480064782,-104.9591698,39.7434491,-104.9598011,39.7447758
-5674,5030,5031,0.105448542276863,0.105448542276863,-104.987378,39.7401161,-104.9884893,39.7405273
-5677,5032,5034,0.00520403492524916,0.00520403492524916,-104.9757617,39.7494389,-104.9757621,39.7494857
-5678,5034,5035,0.00442576451440448,0.00442576451440448,-104.9757621,39.7494857,-104.9757616,39.7495255
-5679,5035,5036,0.135764863246336,0.135764863246336,-104.9757616,39.7495255,-104.9757455,39.7507464
-5681,5037,813,0.139038307562208,0.139038307562208,-104.9757231,39.7519986,-104.9757523,39.7532488
-5682,813,3554,0.152271167865336,0.152271167865336,-104.9757523,39.7532488,-104.9757464,39.7546182
-5684,5038,5039,0.16037248823512,0.16037248823512,-104.9760611,39.7840873,-104.976207,39.7855252
-5686,2368,5040,0.131780679502724,0.131780679502724,-104.9775163,39.7194106,-104.9768897,39.7183279
-5689,5041,5042,0.178235693488978,0.178235693488978,-104.9761583,39.7400231,-104.9761502,39.741626
-5690,5042,663,0.00303458618342364,0.00303458618342364,-104.9761502,39.741626,-104.9761569,39.7416528
-5691,663,5043,0.17896901951739,0.17896901951739,-104.9761569,39.7416528,-104.9761631,39.7432623
-5692,5043,4608,0.175810797673871,0.175810797673871,-104.9761631,39.7432623,-104.9761582,39.7448434
-5693,4608,5044,0.116588664300191,0.116588664300191,-104.9761582,39.7448434,-104.9761532,39.7458919
-5694,5044,5045,0.0312349930548565,0.0312349930548565,-104.9761532,39.7458919,-104.9761515,39.7461728
-5695,5045,3670,0.147012417470316,0.147012417470316,-104.9761515,39.7461728,-104.976114,39.7474946
-5697,5046,4162,0.0660609059196111,0.0660609059196111,-104.9763833,39.7195295,-104.9763833,39.7201236
-5698,4162,4771,0.262084611870375,0.262084611870375,-104.9763833,39.7201236,-104.9764091,39.7224805
-5699,4771,5047,0.17859412824458,0.17859412824458,-104.9764091,39.7224805,-104.9763952,39.7240866
-5700,5047,5048,0.1691727396202,0.1691727396202,-104.9763952,39.7240866,-104.9764012,39.725608
-5701,5048,5049,0.184472749838431,0.184472749838431,-104.9764012,39.725608,-104.9764055,39.727267
-5702,5049,3801,0.20027318311003,0.20027318311003,-104.9764055,39.727267,-104.9764057,39.7290681
-5703,3801,5050,0.154503416019497,0.154503416019497,-104.9764057,39.7290681,-104.976386,39.7304575
-5704,5050,932,0.176703352691921,0.176703352691921,-104.976386,39.7304575,-104.9764282,39.7320463
-5706,2217,4867,0.160601247675141,0.160601247675141,-104.9764407,39.7337019,-104.9764304,39.7351462
-5707,4867,5051,0.19278749199245,0.19278749199245,-104.9764304,39.7351462,-104.976452,39.7368799
-5708,5051,5052,0.171738832244774,0.171738832244774,-104.976452,39.7368799,-104.976473,39.7384243
-5709,5052,5053,0.125039053144726,0.125039053144726,-104.976473,39.7384243,-104.9764695,39.7395488
-5710,5053,5054,0.0536646579213684,0.0536646579213684,-104.9764695,39.7395488,-104.9764641,39.7400314
-5712,2413,5055,0.0539797182371141,0.0539797182371141,-105.0411693,39.753016,-105.04162,39.753356
-5713,5055,5056,0.0555511846145791,0.0555511846145791,-105.04162,39.753356,-105.0422607,39.7532726
-5714,5056,5057,0.0564985233788716,0.0564985233788716,-105.0422607,39.7532726,-105.0429216,39.7532726
-5715,5058,5059,0.0116997793337229,0.0116997793337229,-104.9592906,39.7801271,-104.9592971,39.780022
-5716,5059,369,0.121769364056454,0.121769364056454,-104.9592971,39.780022,-104.9593952,39.7789295
-5717,369,1558,0.13936986171661,0.13936986171661,-104.9593952,39.7789295,-104.959414,39.7776762
-5718,1558,738,0.139138948896028,0.139138948896028,-104.959414,39.7776762,-104.9594193,39.7764249
-5719,738,5060,0.392796141218442,0.392796141218442,-104.9594193,39.7764249,-104.9594167,39.7728924
-5721,5061,5062,0.12142771399357,0.12142771399357,-104.9586363,39.7111011,-104.958436,39.71002
-5722,5062,5063,0.0553958184996893,0.0553958184996893,-104.958436,39.71002,-104.957987,39.709661
-5723,5063,4434,0.0566894209705876,0.0566894209705876,-104.957987,39.709661,-104.957527,39.709294
-5724,4434,2921,0.313688166061769,0.313688166061769,-104.957527,39.709294,-104.954906,39.707321
-5726,5062,422,0.127478280907992,0.127478280907992,-104.958436,39.71002,-104.958788,39.708906
-5727,422,5063,0.108364291033736,0.108364291033736,-104.958788,39.708906,-104.957987,39.709661
-5729,5066,5067,0.177224259300569,0.177224259300569,-105.0384889,39.7165547,-105.0384982,39.7149609
-5730,5067,1319,0.176633232309172,0.176633232309172,-105.0384982,39.7149609,-105.0385003,39.7133724
-5731,1319,1375,0.177680959479223,0.177680959479223,-105.0385003,39.7133724,-105.0384745,39.7117746
-5732,1375,5068,0.0602164425054291,0.0602164425054291,-105.0384745,39.7117746,-105.038466,39.7112331
-5733,5068,288,0.02427348670764,0.02427348670764,-105.038466,39.7112331,-105.0384831,39.7110152
-5734,288,5069,0.0611513015273674,0.0611513015273674,-105.0384831,39.7110152,-105.0385432,39.7104672
-5735,5069,4693,0.113806398942027,0.113806398942027,-105.0385432,39.7104672,-105.038526,39.7094438
-5736,4693,5070,0.156397394554719,0.156397394554719,-105.038526,39.7094438,-105.0385346,39.7080373
-5738,1493,182,0.220724132280051,0.220724132280051,-105.037738,39.695087,-105.0379081,39.6931063
-5739,182,1710,0.202718600976859,0.202718600976859,-105.0379081,39.6931063,-105.0378737,39.6912834
-5742,5072,5073,0.0235981208081862,0.0235981208081862,-105.0381596,39.707404,-105.0381339,39.7071927
-5743,5073,5074,0.173346209176791,0.173346209176791,-105.0381339,39.7071927,-105.0381484,39.7056338
-5744,5074,5075,0.183560584904857,0.183560584904857,-105.0381484,39.7056338,-105.0381484,39.703983
-5746,5076,5077,0.201201481229781,0.201201481229781,-105.037951,39.7021472,-105.0379338,39.7003378
-5747,5077,5078,0.196158089713223,0.196158089713223,-105.0379338,39.7003378,-105.0378651,39.6985745
-5750,5080,304,0.450334409862505,0.450334409862505,-105.001279,39.7649816,-105.0045998,39.7618374
-5755,5083,4179,0.23271473726582,0.23271473726582,-104.9957531,39.7077667,-104.9951206,39.7057312
-5757,5084,5085,0.100586570089845,0.100586570089845,-104.9908575,39.7165834,-104.9908403,39.7174879
-5758,5085,3712,0.0974495496468689,0.0974495496468689,-104.9908403,39.7174879,-104.9908169,39.7183641
-5759,3712,5088,0.107190885250137,0.107190885250137,-104.9908169,39.7183641,-104.9908341,39.719328
-5761,1840,2612,0.176114771519943,0.176114771519943,-104.9908489,39.7209474,-104.9908346,39.7225312
-5762,2612,5089,0.0532850041931226,0.0532850041931226,-104.9908346,39.7225312,-104.990837,39.7230104
-5763,5089,5090,0.123805391077944,0.123805391077944,-104.990837,39.7230104,-104.9908427,39.7241238
-5764,5090,5091,0.0921824286504112,0.0921824286504112,-104.9908427,39.7241238,-104.9908359,39.7249528
-5765,5091,5092,0.0849604613604367,0.0849604613604367,-104.9908359,39.7249528,-104.9904446,39.7256551
-5767,5093,4077,0.0433656831085181,0.0433656831085181,-104.9901518,39.7836836,-104.9901174,39.7840727
-5768,4077,5094,0.807132686207363,0.807132686207363,-104.9901174,39.7840727,-104.989017,39.791282
-5769,5092,5095,0.184721084541763,0.184721084541763,-104.9904446,39.7256551,-104.9902684,39.7273108
-5770,5095,5096,0.112121546650621,0.112121546650621,-104.9902684,39.7273108,-104.9899868,39.7282956
-5771,5096,5097,0.012405493892182,0.012405493892182,-104.9899868,39.7282956,-104.9898761,39.7283677
-12067,8534,8532,0.0417307390941294,0.0417307390941294,-104.9544306,39.7462589,-104.9548313,39.7460446
-5774,5099,5100,0.195348601056539,0.195348601056539,-104.9781101,39.6911501,-104.9781016,39.6893933
-5775,5100,5101,1.61385249170336,1.61385249170336,-104.9781016,39.6893933,-104.978136,39.6748796
-5776,4334,5102,0.201130889411283,0.201130889411283,-104.9780308,39.7165201,-104.9780399,39.7147113
-5778,5103,2576,0.52830768269949,0.52830768269949,-104.9499914,39.7083084,-104.9558107,39.7098997
-5782,1145,874,0.139433776255124,0.139433776255124,-104.970897,39.7632567,-104.9708813,39.7645106
-5783,874,4462,0.13822164303959,0.13822164303959,-104.9708813,39.7645106,-104.9708658,39.7657536
-5784,4462,2782,0.134807869792579,0.134807869792579,-104.9708658,39.7657536,-104.9708506,39.7669659
-5786,5108,5109,0.136531475414142,0.136531475414142,-104.9708358,39.7681531,-104.9708204,39.7693809
-5787,5110,5111,0.166792389966844,0.166792389966844,-104.971535,39.780686,-104.971535,39.782186
-5788,5111,5112,0.0444779706577198,0.0444779706577198,-104.971535,39.782186,-104.971535,39.782586
-5789,5113,4169,0.194541086455447,0.194541086455447,-104.9705842,39.7183394,-104.9706014,39.7200889
-5790,4169,4754,0.20739031390672,0.20739031390672,-104.9706014,39.7200889,-104.9705953,39.721954
-5791,4754,5114,0.19819923300798,0.19819923300798,-104.9705953,39.721954,-104.9705782,39.7237364
-5792,5114,5115,0.205574207946515,0.205574207946515,-104.9705782,39.7237364,-104.9705996,39.7255851
-5793,5115,5116,0.18969176296687,0.18969176296687,-104.9705996,39.7255851,-104.9706146,39.727291
-5795,3795,5117,0.153449380032665,0.153449380032665,-104.9706199,39.7290832,-104.9706239,39.7304632
-5796,5117,942,0.178860285004076,0.178860285004076,-104.9706239,39.7304632,-104.9706365,39.7320717
-5797,942,2226,0.181510674241125,0.181510674241125,-104.9706365,39.7320717,-104.9706554,39.733704
-5798,2226,4876,0.162456954471732,0.162456954471732,-104.9706554,39.733704,-104.9706482,39.735165
-5799,4876,5118,0.192077540660028,0.192077540660028,-104.9706482,39.735165,-104.9706897,39.7368921
-5800,5118,5119,0.169639680241679,0.169639680241679,-104.9706897,39.7368921,-104.9706954,39.7384177
-5801,5119,5120,0.176431836448169,0.176431836448169,-104.9706954,39.7384177,-104.9707273,39.7400042
-5805,5123,5124,0.138482206224941,0.138482206224941,-104.9708859,39.7607568,-104.9708846,39.7620022
-5807,5125,5126,0.196467690434778,0.196467690434778,-104.970211,39.7696514,-104.9683965,39.7707362
-5809,5127,5128,0.177236972666439,0.177236972666439,-104.9709293,39.7400169,-104.9709165,39.7416108
-5810,5128,666,0.00411429224620583,0.00411429224620583,-104.9709165,39.7416108,-104.9709162,39.7416478
-5811,666,5129,0.00398081510277296,0.00398081510277296,-104.9709162,39.7416478,-104.970916,39.7416836
-5812,5129,5130,0.0219503048251099,0.0219503048251099,-104.970916,39.7416836,-104.9709144,39.741881
-5813,5130,5131,0.152662411900591,0.152662411900591,-104.9709144,39.741881,-104.9709034,39.7432539
-5814,5131,4605,0.174323615227633,0.174323615227633,-104.9709034,39.7432539,-104.9708908,39.7448216
-5815,4605,3691,0.233536002014651,0.233536002014651,-104.9708908,39.7448216,-104.970874,39.7469218
-5816,3691,5132,0.0578224768050087,0.0578224768050087,-104.970874,39.7469218,-104.9708698,39.7474418
-5817,4901,5133,0.0573209620432963,0.0573209620432963,-104.9401595,39.7346781,-104.9395046,39.7345681
-5819,5134,5135,0.102452742724465,0.102452742724465,-104.9384246,39.7341756,-104.9373097,39.7338382
-5820,5135,5136,0.101180875593513,0.101180875593513,-104.9373097,39.7338382,-104.9361524,39.7336487
-5821,5136,5137,0.0993172550227887,0.0993172550227887,-104.9361524,39.7336487,-104.935004,39.7335152
-5822,5137,5138,0.0973174615516026,0.0973174615516026,-104.935004,39.7335152,-104.933879,39.733383
-5823,5138,5139,0.0592813821516456,0.0592813821516456,-104.933879,39.733383,-104.9331993,39.7332781
-5824,5139,5140,0.0572628386692297,0.0572628386692297,-104.9331993,39.7332781,-104.9325581,39.7331296
-5825,5140,5141,0.0908568563064313,0.0908568563064313,-104.9325581,39.7331296,-104.931599,39.732778
-5826,5141,5142,0.108696465338082,0.108696465338082,-104.931599,39.732778,-104.930434,39.732387
-5827,5142,5143,0.117446225438567,0.117446225438567,-104.930434,39.732387,-104.9292349,39.731872
-5828,5143,5144,0.115052510861077,0.115052510861077,-104.9292349,39.731872,-104.9280639,39.7313625
-5831,2118,5146,0.132113404680538,0.132113404680538,-104.9268844,39.7308196,-104.9257328,39.7300276
-5832,5146,5147,0.0733188328504862,0.0733188328504862,-104.9257328,39.7300276,-104.925132,39.7295572
-5833,5147,5148,0.0348417204507369,0.0348417204507369,-104.925132,39.7295572,-104.9250676,39.7292478
-5860,3449,5168,0.101446764740706,0.101446764740706,-104.9461482,39.7162465,-104.9449622,39.716238
-5835,4903,5149,0.0928559279225574,0.0928559279225574,-104.9394193,39.7347015,-104.9384043,39.7344047
-5836,5149,5150,0.101009488468598,0.101009488468598,-104.9384043,39.7344047,-104.9373129,39.7340572
-5837,5150,5151,0.101494340144734,0.101494340144734,-104.9373129,39.7340572,-104.9361564,39.7338519
-12222,8597,8598,0.00932829170104997,0.00932829170104997,-105.0075587,39.7444522,-105.0076164,39.7445234
-12223,8598,8599,0.0244824521093208,0.0244824521093208,-105.0076164,39.7445234,-105.0077602,39.7447138
-5838,5151,5152,0.100261540674961,0.100261540674961,-104.9361564,39.7338519,-104.9349958,39.7337238
-5839,5152,5153,0.221241395423211,0.221241395423211,-104.9349958,39.7337238,-104.9324587,39.7333339
-5840,5153,2236,0.0908651857276488,0.0908651857276488,-104.9324587,39.7333339,-104.9314966,39.732987
-5841,2236,5154,0.10116756602451,0.10116756602451,-104.9314966,39.732987,-104.930434,39.732587
-5842,5154,5155,0.114191873365342,0.114191873365342,-104.930434,39.732587,-104.9292584,39.7320999
-5843,5155,5156,0.113038208940698,0.113038208940698,-104.9292584,39.7320999,-104.9280694,39.7316557
-5844,5156,2119,0.121856512679973,0.121856512679973,-104.9280694,39.7316557,-104.9268735,39.7310598
-5845,2119,5157,0.125333022212683,0.125333022212683,-104.9268735,39.7310598,-104.9257489,39.730337
-5846,5157,5158,0.121389833666029,0.121389833666029,-104.9257489,39.730337,-104.9248331,39.7295029
-5847,5158,5159,0.0390946612702668,0.0390946612702668,-104.9248331,39.7295029,-104.9245238,39.729244
-5850,5160,2133,0.195466658548015,0.195466658548015,-104.9270451,39.7456493,-104.9269818,39.7474065
-5854,5163,2476,0.202535777887142,0.202535777887142,-104.9274829,39.7455899,-104.9274657,39.7474113
-5856,5164,5165,0.0156138568041909,0.0156138568041909,-104.9499442,39.7162631,-104.9497617,39.7162663
-5857,5165,5166,0.100589160353206,0.100589160353206,-104.9497617,39.7162663,-104.9485858,39.7162531
-5858,5166,5167,0.104247833927165,0.104247833927165,-104.9485858,39.7162531,-104.947367,39.7162531
-5859,5167,3449,0.104250422099089,0.104250422099089,-104.947367,39.7162531,-104.9461482,39.7162465
-5861,5168,3879,0.102808830950679,0.102808830950679,-104.9449622,39.716238,-104.9437605,39.7162182
-5862,3879,841,0.103522696858037,0.103522696858037,-104.9437605,39.7162182,-104.9425503,39.7162314
-5863,841,5169,0.102719682704035,0.102719682704035,-104.9425503,39.7162314,-104.9413494,39.7162383
-5864,5169,5170,0.0474110701835865,0.0474110701835865,-104.9413494,39.7162383,-104.9407951,39.7162379
-5866,5171,5172,0.106685417852495,0.106685417852495,-104.9874858,39.7165623,-104.9862386,39.7165499
-5867,5172,5173,0.0515553847760644,0.0515553847760644,-104.9862386,39.7165499,-104.9856359,39.7165436
-5868,5173,4988,0.0505202363313306,0.0505202363313306,-104.9856359,39.7165436,-104.9850453,39.7165375
-17163,5107,1802,0.195280530173469,0.195280530173469,-104.9740336,39.6929885,-104.9740336,39.6947447
-5869,4988,962,0.105015490507221,0.105015490507221,-104.9850453,39.7165375,-104.983818,39.7165111
-5870,962,4141,0.100506431839732,0.100506431839732,-104.983818,39.7165111,-104.982643,39.7165018
-5871,4141,3161,0.101307790482977,0.101307790482977,-104.982643,39.7165018,-104.9814586,39.7164952
-5872,3161,3620,0.0948143449717999,0.0948143449717999,-104.9814586,39.7164952,-104.9803501,39.716491
-5873,3620,1826,0.102953991217456,0.102953991217456,-104.9803501,39.716491,-104.9791466,39.7165069
-5874,1826,4334,0.0954488426398559,0.0954488426398559,-104.9791466,39.7165069,-104.9780308,39.7165201
-5876,5174,1763,0.050455869495655,0.050455869495655,-104.9774882,39.7165195,-104.9768983,39.7165189
-5877,1763,4616,0.0477367574799653,0.0477367574799653,-104.9768983,39.7165189,-104.9763402,39.7165163
-5878,4616,5175,0.0514444022852647,0.0514444022852647,-104.9763402,39.7165163,-104.9757389,39.7165269
-5879,5175,4306,0.0486177089369888,0.0486177089369888,-104.9757389,39.7165269,-104.9751709,39.7165103
-5880,4306,994,0.0512355770161431,0.0512355770161431,-104.9751709,39.7165103,-104.9745719,39.7165069
-5881,994,4309,0.0460747606120818,0.0460747606120818,-104.9745719,39.7165069,-104.9740333,39.716514
-5882,4309,2915,0.0558782384698847,0.0558782384698847,-104.9740333,39.716514,-104.9733801,39.7165226
-5883,2915,2916,0.0205535416898751,0.0205535416898751,-104.9733801,39.7165226,-104.9731398,39.7165226
-5909,5190,5191,0.0526195895778432,0.0526195895778432,-105.0433305,39.7245627,-105.0439457,39.7245698
-5887,587,588,0.0168822192889414,0.0168822192889414,-105.0297456,39.724543,-105.029943,39.724543
-5888,588,5177,0.110837670707715,0.110837670707715,-105.029943,39.724543,-105.031239,39.724543
-5889,5177,1399,0.106464576541899,0.106464576541899,-105.031239,39.724543,-105.0324836,39.7245232
-5890,1399,5178,0.00837287829367045,0.00837287829367045,-105.0324836,39.7245232,-105.0325815,39.7245237
-5891,5178,5179,0.0973274399582508,0.0973274399582508,-105.0325815,39.7245237,-105.0337195,39.7245298
-5892,5179,5180,0.0713882284598403,0.0713882284598403,-105.0337195,39.7245298,-105.0345542,39.7245247
-5893,5180,3386,0.0465173628433736,0.0465173628433736,-105.0345542,39.7245247,-105.0350981,39.7245214
-5894,3386,5181,0.0466294338105993,0.0466294338105993,-105.0350981,39.7245214,-105.0356433,39.7245256
-5895,5181,5182,0.0461505269276214,0.0461505269276214,-105.0356433,39.7245256,-105.0361829,39.7245298
-5896,5182,2801,0.0476762891770853,0.0476762891770853,-105.0361829,39.7245298,-105.0367403,39.7245365
-5897,2801,5183,0.0462906353191723,0.0462906353191723,-105.0367403,39.7245365,-105.0372815,39.724543
-5898,5183,5184,0.0462689908237556,0.0462689908237556,-105.0372815,39.724543,-105.0378224,39.7245345
-5899,5184,5185,0.0466469950505128,0.0466469950505128,-105.0378224,39.7245345,-105.0383678,39.7245391
-5900,5185,5186,0.0471146492559741,0.0471146492559741,-105.0383678,39.7245391,-105.0389187,39.7245383
-5901,5186,5187,0.045278465180898,0.045278465180898,-105.0389187,39.7245383,-105.0394481,39.7245427
-5902,5187,1570,0.0464406557272166,0.0464406557272166,-105.0394481,39.7245427,-105.0399911,39.7245463
-5903,1570,1095,0.0464745881593838,0.0464745881593838,-105.0399911,39.7245463,-105.0405345,39.724543
-5904,1095,5188,0.0475893065083787,0.0475893065083787,-105.0405345,39.724543,-105.0410909,39.7245488
-7153,6059,6060,0.0479619125752321,0.0479619125752321,-105.0327949,39.7856263,-105.0333562,39.7856282
-5905,5188,5189,0.0454253204645735,0.0454253204645735,-105.0410909,39.7245488,-105.041622,39.7245543
-5906,5189,1538,0.0460968804258839,0.0460968804258839,-105.041622,39.7245543,-105.042161,39.7245549
-5907,1538,3854,0.04697776477365,0.04697776477365,-105.042161,39.7245549,-105.0427103,39.7245555
-5908,3854,5190,0.0530473283120516,0.0530473283120516,-105.0427103,39.7245555,-105.0433305,39.7245627
-5911,5192,5193,0.0515193353777817,0.0515193353777817,-104.9874942,39.724123,-104.9880966,39.7241225
-5913,5194,5195,0.0687779636933597,0.0687779636933597,-104.9883782,39.7241223,-104.9891824,39.7241217
-5914,5195,5090,0.141994718426853,0.141994718426853,-104.9891824,39.7241217,-104.9908427,39.7241238
-5915,5090,5196,0.112634336237225,0.112634336237225,-104.9908427,39.7241238,-104.9921597,39.7241238
-5916,5196,5197,0.0575743623042855,0.0575743623042855,-104.9921597,39.7241238,-104.9928329,39.7241238
-5917,5197,4671,0.100935765794822,0.100935765794822,-104.9928329,39.7241238,-104.9940131,39.7241197
-5918,4671,4951,0.0999693670841652,0.0999693670841652,-104.9940131,39.7241197,-104.995182,39.7241156
-5919,4951,5198,0.0511858126232579,0.0511858126232579,-104.995182,39.7241156,-104.9957805,39.7241162
-5921,5199,5200,0.0499779255146796,0.0499779255146796,-104.9963759,39.7241168,-104.9969602,39.7241241
-5922,5200,5201,0.0499920394458099,0.0499920394458099,-104.9969602,39.7241241,-104.9975447,39.7241295
-5923,5201,5202,0.0457134833999458,0.0457134833999458,-104.9975447,39.7241295,-104.9980791,39.724121
-5924,5202,5203,0.0421294446780762,0.0421294446780762,-104.9980791,39.724121,-104.9985716,39.7241131
-5925,5203,3957,0.137188173752203,0.137188173752203,-104.9985716,39.7241131,-105.0001757,39.7241141
-5926,3957,5204,0.0640931318030062,0.0640931318030062,-105.0001757,39.7241141,-105.000925,39.7241245
-5927,5204,5205,0.0544857674041209,0.0544857674041209,-105.000925,39.7241245,-105.001561,39.7241531
-5928,5205,5206,0.0521757463337926,0.0521757463337926,-105.001561,39.7241531,-105.002171,39.7241605
-5929,5207,5208,0.0487730947754618,0.0487730947754618,-105.0439566,39.7239385,-105.0445268,39.7239462
-5930,5208,5209,0.0493635031974476,0.0493635031974476,-105.0445268,39.7239462,-105.0451039,39.7239541
-5932,5211,5212,0.207489392195287,0.207489392195287,-105.015182,39.723292,-105.0174804,39.7238894
-5933,5212,4646,0.099390326989904,0.099390326989904,-105.0174804,39.7238894,-105.0186425,39.7238822
-5935,3645,4555,0.0986517427687235,0.0986517427687235,-105.0209651,39.7238828,-105.0221186,39.7238843
-5937,5213,5214,0.322259629928437,0.322259629928437,-104.9870231,39.769169,-104.9896839,39.7671156
-5938,5215,5216,0.143730822686287,0.143730822686287,-105.0344555,39.7293058,-105.0344587,39.7305984
-5939,5216,5217,0.0599126619694891,0.0599126619694891,-105.0344587,39.7305984,-105.034455,39.7311372
-5940,5217,5218,0.202016907937226,0.202016907937226,-105.034455,39.7311372,-105.0344966,39.7329537
-5942,5219,5220,0.186576382334646,0.186576382334646,-104.9888684,39.7256475,-104.9888573,39.7273254
-5944,5221,5222,0.13343391197395,0.13343391197395,-104.988836,39.784386,-104.988836,39.785586
-5945,5222,2558,0.200662474351154,0.200662474351154,-104.988836,39.785586,-104.9887371,39.787389
-5946,2558,5224,0.208372800213582,0.208372800213582,-104.9887371,39.787389,-104.9886598,39.789262
-5947,5225,4431,0.102067442103011,0.102067442103011,-104.9891924,39.7165504,-104.9891666,39.7174681
-5948,4431,3711,0.0989108306469789,0.0989108306469789,-104.9891666,39.7174681,-104.9891861,39.7183575
-5949,3711,5226,0.107183313746265,0.107183313746265,-104.9891861,39.7183575,-104.9891947,39.7193214
-5950,5226,1839,0.179335285582576,0.179335285582576,-104.9891947,39.7193214,-104.9891924,39.7209342
-17165,4242,3547,0.202237742052361,0.202237742052361,-104.9740228,39.6966115,-104.9739907,39.6984301
-5951,1839,2611,0.178227308228011,0.178227308228011,-104.9891924,39.7209342,-104.9891783,39.722537
-5952,2611,5195,0.176210949140518,0.176210949140518,-104.9891783,39.722537,-104.9891824,39.7241217
-20492,10836,10813,0.00305693422510609,0.00305693422510609,-105.0188782,39.7585174,-105.0189136,39.7585213
-7198,6089,1755,0.0565523921918465,0.0565523921918465,-105.0118176,39.7608059,-105.0124792,39.7608073
-18301,5526,5737,0.156444459924747,0.156444459924747,-105.0410378,39.7738771,-105.0410242,39.7724702
-5957,4512,5230,0.200430868604248,0.200430868604248,-104.9546673,39.6965834,-104.9546568,39.6947809
-5959,5231,5232,0.20240814685365,0.20240814685365,-104.9546783,39.692957,-104.9546794,39.6911367
-5960,5232,5233,0.200177276698155,0.200177276698155,-104.9546794,39.6911367,-104.9546945,39.6893365
-5961,5233,5234,0.403649470879027,0.403649470879027,-104.9546945,39.6893365,-104.9547037,39.6857064
-5962,3278,3181,0.152742056397443,0.152742056397443,-104.9546506,39.703847,-104.9546249,39.7024735
-5964,3927,3703,0.0675866941557576,0.0675866941557576,-105.0021843,39.7644198,-105.002975,39.7644254
-5965,3703,708,0.0999635221991015,0.0999635221991015,-105.002975,39.7644254,-105.0041445,39.7644316
-5966,708,5235,0.0981118109963614,0.0981118109963614,-105.0041445,39.7644316,-105.0052923,39.7644409
-5967,5235,5236,0.0989915986442654,0.0989915986442654,-105.0052923,39.7644409,-105.00645,39.7644159
-5968,5236,4189,0.135714784882046,0.135714784882046,-105.00645,39.7644159,-105.0080378,39.7644145
-5969,4189,2515,0.133468058331593,0.133468058331593,-105.0080378,39.7644145,-105.0095992,39.7644291
-5970,2515,5237,0.135326951582466,0.135326951582466,-105.0095992,39.7644291,-105.0111823,39.7644116
-5971,5237,4803,0.135895734874124,0.135895734874124,-105.0111823,39.7644116,-105.0127721,39.7644265
-5972,4803,5238,0.136371570616542,0.136371570616542,-105.0127721,39.7644265,-105.0143675,39.7644392
-5973,5238,5239,0.126834347813211,0.126834347813211,-105.0143675,39.7644392,-105.0158514,39.7644364
-5974,5239,5240,0.133492367602304,0.133492367602304,-105.0158514,39.7644364,-105.0174132,39.7644371
-5975,5240,4624,0.131817065741689,0.131817065741689,-105.0174132,39.7644371,-105.0189554,39.7644371
-7224,4702,6106,0.102350270818551,0.102350270818551,-104.987569,39.7093263,-104.9863727,39.7093097
-5979,2725,5242,0.133090700331069,0.133090700331069,-105.0236117,39.7644248,-105.0251688,39.7644237
-5981,5243,5244,0.0777207800874593,0.0777207800874593,-105.0440231,39.7648201,-105.0449324,39.7648219
-5982,5244,5245,0.710188326706697,0.710188326706697,-105.0449324,39.7648219,-105.0532413,39.7648055
-5983,3974,5246,0.196425810260379,0.196425810260379,-105.0299675,39.7647258,-105.0322646,39.764778
-5984,5246,3422,0.201357225192724,0.201357225192724,-105.0322646,39.764778,-105.0346204,39.7647784
-5986,3423,5247,0.0491810142725505,0.0491810142725505,-105.0346204,39.7649631,-105.0351958,39.7649631
-5987,5247,5248,0.0477450735797267,0.0477450735797267,-105.0351958,39.7649631,-105.0357544,39.764963
-5989,5249,5250,0.055676102895211,0.055676102895211,-105.0252881,39.7646691,-105.0259394,39.7646609
-5990,5250,5251,0.140244564447974,0.140244564447974,-105.0259394,39.7646609,-105.0275802,39.7646584
-5991,5251,5252,0.170294636723478,0.170294636723478,-105.0275802,39.7646584,-105.0295723,39.7646329
-5993,5253,5254,0.106323677730181,0.106323677730181,-104.9733576,39.7681592,-104.9721136,39.7681562
-5994,5254,5108,0.109212547805518,0.109212547805518,-104.9721136,39.7681562,-104.9708358,39.7681531
-5995,5108,4725,0.103272467122344,0.103272467122344,-104.9708358,39.7681531,-104.9696275,39.7681501
-5996,4725,5255,0.103742512264204,0.103742512264204,-104.9696275,39.7681501,-104.9684137,39.7681472
-5997,5255,5256,0.105340810076794,0.105340810076794,-104.9684137,39.7681472,-104.9671812,39.7681442
-5999,5257,3136,0.108092936006134,0.108092936006134,-104.9659655,39.7681412,-104.9647008,39.7681381
-6000,3136,3908,0.107682657630117,0.107682657630117,-104.9647008,39.7681381,-104.9634409,39.7681351
-7243,6117,6118,0.0967566510311658,0.0967566510311658,-104.9721753,39.7092881,-104.9710442,39.7092903
-6001,3908,1048,0.108571568461532,0.108571568461532,-104.9634409,39.7681351,-104.9621706,39.768132
-6002,1048,5258,0.101973343920372,0.101973343920372,-104.9621706,39.768132,-104.9609775,39.7681291
-6003,5258,5259,0.106357911571636,0.106357911571636,-104.9609775,39.7681291,-104.9597331,39.7681261
-6005,5260,5009,0.0315381518095178,0.0315381518095178,-104.9589552,39.7681242,-104.9585862,39.7681233
-6006,5009,3333,0.108118604625977,0.108118604625977,-104.9585862,39.7681233,-104.9573212,39.7681202
-6007,3333,5261,0.119315074925742,0.119315074925742,-104.9573212,39.7681202,-104.9559252,39.7681168
-6008,5261,5263,0.0963665691070474,0.0963665691070474,-104.9559252,39.7681168,-104.9547977,39.7681141
-6009,5263,5264,0.0432816561908272,0.0432816561908272,-104.9547977,39.7681141,-104.9542913,39.7681128
-6010,5264,2085,0.0535379351296007,0.0535379351296007,-104.9542913,39.7681128,-104.9536649,39.7681113
-6011,2085,5265,0.105640004427027,0.105640004427027,-104.9536649,39.7681113,-104.9524289,39.7681083
-6012,5265,4130,0.106366490545515,0.106366490545515,-104.9524289,39.7681083,-104.9511844,39.7681053
-6013,4130,5266,0.109451940113279,0.109451940113279,-104.9511844,39.7681053,-104.9499038,39.7681022
-6014,5266,5267,0.101101610243622,0.101101610243622,-104.9499038,39.7681022,-104.9487209,39.7680993
-6018,5269,5270,0.0982982274574071,0.0982982274574071,-104.9451609,39.7680906,-104.9440108,39.7680878
-6019,5270,804,0.0991956500472809,0.0991956500472809,-104.9440108,39.7680878,-104.9428502,39.768085
-6020,804,5271,0.0978879869631794,0.0978879869631794,-104.9428502,39.768085,-104.9417049,39.7680822
-6021,5271,5272,0.0909649766992318,0.0909649766992318,-104.9417049,39.7680822,-104.9406406,39.7680796
-6022,5272,5273,0.0146836193769648,0.0146836193769648,-104.9406406,39.7680796,-104.9404688,39.7680792
-6024,5274,1956,0.174868207801427,0.174868207801427,-104.93153,39.709088,-104.9295943,39.7085824
-6027,5275,5276,0.0506368419660478,0.0506368419660478,-104.9862654,39.7138801,-104.9856735,39.713872
-6028,5276,4990,0.0537681631666927,0.0537681631666927,-104.9856735,39.713872,-104.985045,39.7138633
-6029,4990,5277,0.102832227368728,0.102832227368728,-104.985045,39.7138633,-104.9838429,39.7138757
-6030,5277,5278,0.0856095541145101,0.0856095541145101,-104.9838429,39.7138757,-104.9828424,39.7138551
-6032,1548,4268,0.202455793335308,0.202455793335308,-104.9824199,39.7765295,-104.9824332,39.7783502
-6033,4268,283,0.117344693446838,0.117344693446838,-104.9824332,39.7783502,-104.9824285,39.7794055
-6035,4141,5279,0.202925527060843,0.202925527060843,-104.982643,39.7165018,-104.9826249,39.7183267
-6036,5279,2364,0.110547560275979,0.110547560275979,-104.9826249,39.7183267,-104.9826087,39.7193208
-6037,2364,4146,0.176928363643229,0.176928363643229,-104.9826087,39.7193208,-104.9825915,39.7209119
-6038,4146,5281,0.187030458155785,0.187030458155785,-104.9825915,39.7209119,-104.982597,39.7225939
-6039,5281,5282,0.011246856594195,0.011246856594195,-104.982597,39.7225939,-104.9825741,39.7226935
-6041,5283,2870,0.194705331985994,0.194705331985994,-104.9834597,39.7872862,-104.9829275,39.7855836
-6043,5285,5286,0.301111320410511,0.301111320410511,-104.983146,39.78834,-104.982876,39.79104
-6044,5287,5288,0.185724938270304,0.185724938270304,-104.9823268,39.7801891,-104.9823077,39.7818593
-6045,5288,5289,0.213285003773079,0.213285003773079,-104.9823077,39.7818593,-104.9823354,39.7837773
-6047,5290,5291,0.13629389839255,0.13629389839255,-105.0252168,39.7439449,-105.0268109,39.7439427
-6048,5291,5292,0.13355771854799,0.13355771854799,-105.0268109,39.7439427,-105.028373,39.7439427
-6049,5292,4013,0.133867532403999,0.133867532403999,-105.028373,39.7439427,-105.0299387,39.7439361
-6052,5294,3384,0.128421314744864,0.128421314744864,-105.0330637,39.7439508,-105.0345657,39.7439574
-6053,3384,5295,0.104229219478348,0.104229219478348,-105.0345657,39.7439574,-105.0357845,39.7439376
-6054,5295,3817,0.102592362577248,0.102592362577248,-105.0357845,39.7439376,-105.0369844,39.7439438
-6056,5296,5297,0.0990440053907464,0.0990440053907464,-105.0381646,39.7439521,-105.039323,39.7439462
-6057,5297,5298,0.00501097787172802,0.00501097787172802,-105.039323,39.7439462,-105.0393814,39.74395
-6058,5298,5299,0.26852367463784,0.26852367463784,-105.0393814,39.74395,-105.042522,39.7439663
-6059,5299,5300,0.02711052781377,0.02711052781377,-105.042522,39.7439663,-105.042839,39.743972
-6060,5300,5301,0.101042477184366,0.101042477184366,-105.042839,39.743972,-105.0440208,39.7439717
-6061,5301,5302,0.0980158544732548,0.0980158544732548,-105.0440208,39.7439717,-105.0451672,39.7439725
-6062,5302,5303,0.68853335666363,0.68853335666363,-105.0451672,39.7439725,-105.0532203,39.7439912
-6063,4532,3739,0.10058657036035,0.10058657036035,-105.0227589,39.7166208,-105.0227761,39.7157163
-6064,3739,5305,0.101344660556636,0.101344660556636,-105.0227761,39.7157163,-105.0227504,39.7148051
-6065,5305,1342,0.202678391855073,0.202678391855073,-105.0227504,39.7148051,-105.0226989,39.7129828
-6067,5306,4700,0.20166419460726,0.20166419460726,-105.0226912,39.7111319,-105.0226989,39.7093183
-6068,4700,5307,0.201175175307418,0.201175175307418,-105.0226989,39.7093183,-105.0227074,39.7075091
-6069,5307,5308,0.201920176537304,0.201920176537304,-105.0227074,39.7075091,-105.0226989,39.7056932
-6070,5308,5309,0.201920207593883,0.201920207593883,-105.0226989,39.7056932,-105.0226903,39.7038773
-6071,5309,777,0.201196100270561,0.201196100270561,-105.0226903,39.7038773,-105.0226903,39.7020679
-6072,777,5310,0.185040940142678,0.185040940142678,-105.0226903,39.7020679,-105.0226989,39.7004038
-6073,5310,5311,0.201942415647541,0.201942415647541,-105.0226989,39.7004038,-105.0227074,39.6985877
-6074,5311,5312,0.206000886771111,0.206000886771111,-105.0227074,39.6985877,-105.0227155,39.6967351
-7322,6161,6162,0.200977808302969,0.200977808302969,-104.9569665,39.6947747,-104.9569515,39.6929673
-6077,1729,5313,0.145417053241999,0.145417053241999,-105.02224,39.6908088,-105.0222572,39.6895011
-6079,5314,5315,0.262924523321611,0.262924523321611,-105.0227207,39.6894812,-105.0227035,39.6871167
-6080,5316,3497,0.142809169887552,0.142809169887552,-104.9500303,39.699284,-104.9488372,39.6983858
-6082,2903,5317,0.0402215187360589,0.0402215187360589,-104.973351,39.7604399,-104.9736634,39.7607104
-6083,5317,5318,0.00632191300841853,0.00632191300841853,-104.9736634,39.7607104,-104.9737157,39.7607506
-6084,5318,5319,0.00945274881783772,0.00945274881783772,-104.9737157,39.7607506,-104.9737854,39.7608166
-6085,5319,5320,0.102488283152376,0.102488283152376,-104.9737854,39.7608166,-104.9746129,39.7614836
-6086,5320,5321,0.105737259840933,0.105737259840933,-104.9746129,39.7614836,-104.9754804,39.7621615
-6087,5321,5322,0.104280118546109,0.104280118546109,-104.9754804,39.7621615,-104.9763558,39.7628147
-6088,5322,5323,0.105008595801197,0.105008595801197,-104.9763558,39.7628147,-104.9772313,39.7634772
-6089,5323,5324,0.107079302112312,0.107079302112312,-104.9772313,39.7634772,-104.9781151,39.7641597
-6090,5324,3311,0.104784168499708,0.104784168499708,-104.9781151,39.7641597,-104.9789777,39.7648293
-6091,3311,5325,0.104972132929345,0.104972132929345,-104.9789777,39.7648293,-104.9798548,39.7654901
-6093,5328,5329,0.148443179384572,0.148443179384572,-105.0327094,39.7111941,-105.0340312,39.7103291
-6094,5329,4320,0.122968314186663,0.122968314186663,-105.0340312,39.7103291,-105.0350756,39.7095692
-6095,4320,5331,0.133138685881437,0.133138685881437,-105.0350756,39.7095692,-105.0362199,39.7087576
-6096,5331,5332,0.129500346452113,0.129500346452113,-105.0362199,39.7087576,-105.0373528,39.7079851
-6097,5332,5072,0.094543402764425,0.094543402764425,-105.0373528,39.7079851,-105.0381596,39.707404
-6098,5072,5333,0.0140267468815188,0.0140267468815188,-105.0381596,39.707404,-105.0382798,39.7073182
-7348,5506,4458,0.146478928082641,0.146478928082641,-104.9817097,39.7613449,-104.9829353,39.7604242
-6099,5333,5334,0.0971985352126134,0.0971985352126134,-105.0382798,39.7073182,-105.0391209,39.7067305
-6100,5334,5335,0.0675695345311337,0.0675695345311337,-105.0391209,39.7067305,-105.0397046,39.7063211
-6101,5335,5336,0.135628949553031,0.135628949553031,-105.0397046,39.7063211,-105.0408719,39.7054957
-6102,5336,5337,0.134096180080561,0.134096180080561,-105.0408719,39.7054957,-105.0420306,39.7046835
-6103,5337,5338,0.121603742223712,0.121603742223712,-105.0420306,39.7046835,-105.0430777,39.7039439
-6104,5338,5339,0.288999775625269,0.288999775625269,-105.0430777,39.7039439,-105.0455771,39.7021954
-6105,5339,5340,0.295278488962845,0.295278488962845,-105.0455771,39.7021954,-105.0481332,39.700411
-6106,5340,5341,0.386769671992271,0.386769671992271,-105.0481332,39.700411,-105.0514806,39.6980732
-6107,5341,5342,0.199175415622423,0.199175415622423,-105.0514806,39.6980732,-105.0532275,39.6968892
-18500,9718,6670,0.0335166183519053,0.0335166183519053,-105.0303789,39.7373453,-105.029987,39.7373512
-6108,272,2532,0.233490999842372,0.233490999842372,-105.020512,39.7400417,-105.0217751,39.73818
-6109,2532,2534,0.010275790210419,0.010275790210419,-105.0217751,39.73818,-105.0217592,39.7380884
-6111,5343,5344,0.134883731263317,0.134883731263317,-105.0181862,39.7765857,-105.0182175,39.7777985
-6112,5344,2487,0.132908396505932,0.132908396505932,-105.0182175,39.7777985,-105.0181786,39.7789934
-6113,2487,2828,0.130466466605355,0.130466466605355,-105.0181786,39.7789934,-105.0181574,39.7801666
-6114,2828,1436,0.203164250472258,0.203164250472258,-105.0181574,39.7801666,-105.0181574,39.7819937
-6115,1436,5345,0.151025004833817,0.151025004833817,-105.0181574,39.7819937,-105.0181359,39.7833518
-6117,5346,5347,0.17552323432827,0.17552323432827,-104.9281276,39.716246,-104.9281375,39.7146675
-6118,5347,3107,0.175398997422213,0.175398997422213,-104.9281375,39.7146675,-104.9281351,39.7130901
-6119,3107,5348,0.192385063711178,0.192385063711178,-104.9281351,39.7130901,-104.9281539,39.71136
-6121,1515,5349,0.354712199012844,0.354712199012844,-104.9267914,39.6961177,-104.9274952,39.692974
-6123,4219,5350,0.184992548254205,0.184992548254205,-104.928034,39.690987,-104.928405,39.689348
-6124,5350,5351,0.809194581386362,0.809194581386362,-104.928405,39.689348,-104.9286924,39.6820741
-6125,3828,5352,0.158319505042179,0.158319505042179,-104.9277565,39.7065566,-104.9277592,39.7051328
-6127,3683,5353,0.00756991430853718,0.00756991430853718,-104.9848394,39.7475404,-104.9849272,39.7475492
-6128,5353,5354,0.0600900021718448,0.0600900021718448,-104.9849272,39.7475492,-104.9856252,39.7476126
-6129,5354,5355,0.0486030977669072,0.0486030977669072,-104.9856252,39.7476126,-104.986046,39.7479065
-6130,5355,5356,0.00770962942235081,0.00770962942235081,-104.986046,39.7479065,-104.9861098,39.7479555
-6132,5357,5358,0.0529187112553076,0.0529187112553076,-104.9790225,39.7499844,-104.979461,39.7503203
-6133,5358,5359,0.0513821813874635,0.0513821813874635,-104.979461,39.7503203,-104.9798903,39.7506437
-6134,5359,5360,0.0534444522847469,0.0534444522847469,-104.9798903,39.7506437,-104.9803323,39.7509836
-6135,5360,5361,0.0503260757639254,0.0503260757639254,-104.9803323,39.7509836,-104.9807486,39.7513036
-6137,5362,5363,0.199678713236371,0.199678713236371,-105.0450749,39.7228662,-105.0474095,39.722886
-6139,4554,5364,0.257952059435159,0.257952059435159,-105.0220979,39.7228967,-105.025114,39.7228932
-6141,2203,5365,0.125513593247199,0.125513593247199,-104.9873753,39.7338548,-104.988843,39.7338416
-6142,5365,5366,0.121103405669087,0.121103405669087,-104.988843,39.7338416,-104.9902592,39.7338482
-6143,5366,5367,0.118905793541669,0.118905793541669,-104.9902592,39.7338482,-104.9916497,39.7338548
-6144,5367,5368,0.110432655754222,0.110432655754222,-104.9916497,39.7338548,-104.9929409,39.7338739
-7394,6208,6209,0.0520019237828089,0.0520019237828089,-105.0324968,39.7261084,-105.0331036,39.7261385
-6145,5368,4924,0.050653673780936,0.050653673780936,-104.9929409,39.7338739,-104.9935332,39.7338673
-6146,4924,5369,0.0113612305905717,0.0113612305905717,-104.9935332,39.7338673,-104.9936509,39.7338199
-6148,5370,5371,0.0511886893302135,0.0511886893302135,-105.0015763,39.7336919,-105.0021749,39.7336954
-6149,5371,3733,0.0547546687048594,0.0547546687048594,-105.0021749,39.7336954,-105.0028152,39.7336992
-6150,3733,5372,0.0739604711312813,0.0739604711312813,-105.0028152,39.7336992,-105.0036801,39.7337035
-6151,5372,5373,0.0333758188249575,0.0333758188249575,-105.0036801,39.7337035,-105.0040704,39.7337054
-6152,5373,5374,0.0326832624474652,0.0326832624474652,-105.0040704,39.7337054,-105.0044526,39.7337074
-6153,5374,4487,0.0687015455014252,0.0687015455014252,-105.0044526,39.7337074,-105.005256,39.7337116
-6155,5375,5376,0.083676019608772,0.083676019608772,-105.0141162,39.7338913,-105.0150947,39.7338979
-6157,5377,5378,0.539527941615599,0.539527941615599,-105.044041,39.7339173,-105.0503496,39.7339965
-6158,5379,5380,0.024339909926927,0.024339909926927,-105.0008725,39.7336985,-105.0008982,39.7334805
-6159,5380,5381,0.0572545808576417,0.0572545808576417,-105.0008982,39.7334805,-105.0015677,39.7334741
-6161,5382,5383,0.0919429478923695,0.0919429478923695,-105.0174251,39.7338829,-105.0185003,39.7338787
-6162,5383,4632,0.0667555867186957,0.0667555867186957,-105.0185003,39.7338787,-105.0192808,39.733891
-6163,4632,4638,0.073630878201174,0.073630878201174,-105.0192808,39.733891,-105.0201418,39.7338828
-6164,4638,4551,0.135095610306562,0.135095610306562,-105.0201418,39.7338828,-105.0217216,39.7338931
-6165,4551,5384,0.293762175707744,0.293762175707744,-105.0217216,39.7338931,-105.0251569,39.7338774
-6167,2098,5385,0.176238767515036,0.176238767515036,-104.9269736,39.7162529,-104.9269567,39.714668
-6168,5385,3108,0.175113982885218,0.175113982885218,-104.9269567,39.714668,-104.9269709,39.7130932
-6169,3108,5386,0.213105615274275,0.213105615274275,-104.9269709,39.7130932,-104.9269765,39.7111767
-6170,5386,5387,0.16568697132589,0.16568697132589,-104.9269765,39.7111767,-104.926934,39.709687
-6171,5387,5388,0.0444779706577198,0.0444779706577198,-104.926934,39.709687,-104.926934,39.709287
-6173,1958,3829,0.172873649500925,0.172873649500925,-104.9269593,39.708107,-104.9269277,39.7065525
-6174,3829,3827,0.0048313839727239,0.0048313839727239,-104.9269277,39.7065525,-104.9269304,39.7065091
-6175,3827,5389,0.152170039924714,0.152170039924714,-104.9269304,39.7065091,-104.9269733,39.705141
-6176,5389,547,0.0103214739502372,0.0103214739502372,-104.9269733,39.705141,-104.926976,39.7050482
-6177,547,3259,0.110383801281946,0.110383801281946,-104.926976,39.7050482,-104.9269572,39.7040556
-6178,3259,3297,0.0174353644977756,0.0174353644977756,-104.9269572,39.7040556,-104.9269572,39.7038988
-6180,4220,5391,0.40468883776866,0.40468883776866,-104.9274781,39.6893679,-104.9274523,39.6857285
-6181,1473,5392,0.374922653008132,0.374922653008132,-104.9248865,39.6961248,-104.926491,39.6929872
-6182,5392,2947,0.18613051410303,0.18613051410303,-104.926491,39.6929872,-104.9259674,39.6913625
-6184,5393,5394,0.133683449538656,0.133683449538656,-104.9659493,39.748214,-104.9659359,39.7494162
-6185,5394,5395,0.00436494876438714,0.00436494876438714,-104.9659359,39.7494162,-104.9659386,39.7494554
-6186,5395,5396,0.00413948116283948,0.00413948116283948,-104.9659386,39.7494554,-104.9659346,39.7494925
-6187,5396,5397,0.135591162545584,0.135591162545584,-104.9659346,39.7494925,-104.965933,39.7507119
-6188,5397,5398,0.140883972058497,0.140883972058497,-104.965933,39.7507119,-104.965933,39.7519789
-6189,5398,823,0.138673141914839,0.138673141914839,-104.965933,39.7519789,-104.9659416,39.753226
-6190,823,3564,0.136111333534187,0.136111333534187,-104.9659416,39.753226,-104.9659688,39.7544499
-6191,3564,5399,0.14331239683406,0.14331239683406,-104.9659688,39.7544499,-104.9659557,39.7557387
-6193,5400,3028,0.141885844467344,0.141885844467344,-104.9659604,39.7582223,-104.9659386,39.7594982
-7436,5227,5219,0.0266079784612615,0.0266079784612615,-104.9891795,39.7256506,-104.9888684,39.7256475
-6195,5401,5402,0.00584885314190653,0.00584885314190653,-104.9659547,39.7606908,-104.9659547,39.7607434
-6196,5402,5403,0.138593356569714,0.138593356569714,-104.9659547,39.7607434,-104.9659547,39.7619898
-6197,5403,1157,0.139497033685325,0.139497033685325,-104.9659547,39.7619898,-104.965944,39.7632443
-6198,1157,878,0.139538816070218,0.139538816070218,-104.965944,39.7632443,-104.9659474,39.7644992
-6199,878,4466,0.138604668182001,0.138604668182001,-104.9659474,39.7644992,-104.9659447,39.7657457
-6200,4466,2786,0.1346682214983,0.1346682214983,-104.9659447,39.7657457,-104.9659434,39.7669568
-6201,2786,5257,0.131712815882714,0.131712815882714,-104.9659434,39.7669568,-104.9659655,39.7681412
-6202,5257,5404,0.212033227364557,0.212033227364557,-104.9659655,39.7681412,-104.9659333,39.7700479
-6203,5404,5405,0.140381205630714,0.140381205630714,-104.9659333,39.7700479,-104.9658988,39.7713101
-6204,5405,5406,0.175882952103236,0.175882952103236,-104.9658988,39.7713101,-104.9659423,39.7728915
-6206,4761,5407,0.0777628340765697,0.0777628340765697,-104.9656944,39.7219804,-104.9658146,39.7226736
-6207,5407,5411,0.121860688460736,0.121860688460736,-104.9658146,39.7226736,-104.9658231,39.7237695
-6208,5411,5412,0.203436645645446,0.203436645645446,-104.9658231,39.7237695,-104.9658624,39.7255988
-6211,5413,3128,0.197988223180436,0.197988223180436,-104.9658604,39.7273116,-104.9658779,39.7290921
-6213,5414,5415,0.127346625489507,0.127346625489507,-104.9656118,39.7807932,-104.9655971,39.7819384
-6214,5415,5416,0.202431697844534,0.202431697844534,-104.9655971,39.7819384,-104.9656057,39.7837589
-6216,5417,5418,0.0360920642856509,0.0360920642856509,-104.9659605,39.7364894,-104.9659747,39.7368138
-18249,10283,10284,0.0379598203284706,0.0379598203284706,-105.0375025,39.7802085,-105.0376009,39.7805414
-6217,5418,5419,0.175688258529037,0.175688258529037,-104.9659747,39.7368138,-104.9659981,39.7383937
-6218,5419,5420,0.176513424391556,0.176513424391556,-104.9659981,39.7383937,-104.9659869,39.7399811
-6219,5420,671,0.183363162969023,0.183363162969023,-104.9659869,39.7399811,-104.9659752,39.7416301
-6220,671,5421,0.00332688246962709,0.00332688246962709,-104.9659752,39.7416301,-104.9659766,39.74166
-6221,5421,5422,0.175194594065608,0.175194594065608,-104.9659766,39.74166,-104.9659949,39.7432355
-6222,5422,4601,0.174116514777802,0.174116514777802,-104.9659949,39.7432355,-104.965976,39.7448013
-6223,4601,5423,0.141050765485302,0.141050765485302,-104.965976,39.7448013,-104.9659758,39.7460698
-6225,2950,5424,0.133468479991587,0.133468479991587,-104.9258215,39.6885687,-104.9265768,39.6875185
-6226,5425,3096,0.198372842511786,0.198372842511786,-104.9698675,39.7147124,-104.9698598,39.7129284
-6227,3096,3206,0.203187034114148,0.203187034114148,-104.9698598,39.7129284,-104.9698543,39.7111011
-6228,3206,5426,0.199398136177365,0.199398136177365,-104.9698543,39.7111011,-104.9698407,39.7093079
-6229,5426,1916,0.200785704053696,0.200785704053696,-104.9698407,39.7093079,-104.9698332,39.7075022
-6231,5427,5428,0.208049356186156,0.208049356186156,-104.9699057,39.6929673,-104.9698913,39.6910963
-6232,5428,5429,0.195358366621449,0.195358366621449,-104.9698913,39.6910963,-104.9698913,39.6893394
-6233,5429,5430,0.0822508872394256,0.0822508872394256,-104.9698913,39.6893394,-104.9698913,39.6885997
-6234,5431,3740,0.099853044127537,0.099853044127537,-105.0250764,39.7166076,-105.0250764,39.7157096
-6235,3740,5432,0.079904711368683,0.079904711368683,-105.0250764,39.7157096,-105.0250773,39.714991
-6236,5432,5433,0.0177357578673254,0.0177357578673254,-105.0250773,39.714991,-105.0250764,39.7148315
-6237,5433,1299,0.160881213225809,0.160881213225809,-105.0250764,39.7148315,-105.0250625,39.7133847
-6238,1299,1344,0.0431325120453993,0.0431325120453993,-105.0250625,39.7133847,-105.0250625,39.7129968
-6239,1344,5434,0.202930771593003,0.202930771593003,-105.0250625,39.7129968,-105.0250638,39.7111718
-6240,5434,5435,0.195937805328833,0.195937805328833,-105.0250638,39.7111718,-105.0250719,39.7094097
-6241,5435,4701,0.00964060014055181,0.00964060014055181,-105.0250719,39.7094097,-105.0250719,39.709323
-6242,4701,5436,0.088911763330732,0.088911763330732,-105.0250719,39.709323,-105.0250692,39.7085234
-6243,5436,5437,0.105079205678488,0.105079205678488,-105.0250692,39.7085234,-105.0250692,39.7075784
-6244,5437,5438,0.0943047001329777,0.0943047001329777,-105.0250692,39.7075784,-105.0250719,39.7067303
-6245,5438,5439,0.100620360394738,0.100620360394738,-105.0250719,39.7067303,-105.0250705,39.7058254
-6246,5439,5440,0.0146794154501444,0.0146794154501444,-105.0250705,39.7058254,-105.0250679,39.7056934
-6247,5440,4965,0.086276226710605,0.086276226710605,-105.0250679,39.7056934,-105.0250665,39.7049175
-6248,4965,5441,0.10739345579216,0.10739345579216,-105.0250665,39.7049175,-105.0250601,39.7039517
-6249,5441,5442,0.0951717377148208,0.0951717377148208,-105.0250601,39.7039517,-105.0250601,39.7030958
-6250,5442,5443,0.0976857174224503,0.0976857174224503,-105.0250601,39.7030958,-105.0250652,39.7022173
-6252,779,5444,0.0823735255229089,0.0823735255229089,-105.0250638,39.7020728,-105.0250665,39.701332
-6253,5444,5445,0.102122427250782,0.102122427250782,-105.0250665,39.701332,-105.0250612,39.7004136
-6254,5445,4958,0.133513290288167,0.133513290288167,-105.0250612,39.7004136,-105.0250687,39.6992129
-6255,4958,5446,0.0684224753039321,0.0684224753039321,-105.0250687,39.6992129,-105.0250598,39.6985976
-6256,5446,5447,0.00769468892365438,0.00769468892365438,-105.0250598,39.6985976,-105.0250598,39.6985284
-6257,5447,5448,0.199639504943165,0.199639504943165,-105.0250598,39.6985284,-105.0250571,39.696733
-6258,5448,1501,0.201263981115328,0.201263981115328,-105.0250571,39.696733,-105.0250491,39.694923
-6259,1501,174,0.201029338652354,0.201029338652354,-105.0250491,39.694923,-105.0250478,39.6931151
-6261,1704,1730,0.0545082426213867,0.0545082426213867,-105.0250424,39.6912967,-105.0250451,39.6908065
-6262,1730,5451,0.146076957823045,0.146076957823045,-105.0250451,39.6908065,-105.0250424,39.6894928
-6263,5451,5452,1.20615427321132,1.20615427321132,-105.0250424,39.6894928,-105.0250276,39.6786456
-6265,5456,5457,0.107171013555617,0.107171013555617,-104.9861136,39.7384486,-104.9848604,39.7384323
-6266,5457,5458,0.0551341429674013,0.0551341429674013,-104.9848604,39.7384323,-104.9842156,39.7384332
-6267,5458,5459,0.053860211885536,0.053860211885536,-104.9842156,39.7384332,-104.9835857,39.7384319
-6268,5459,5460,0.109859438734606,0.109859438734606,-104.9835857,39.7384319,-104.9823009,39.7384375
-6269,5460,5461,0.104952215686531,0.104952215686531,-104.9823009,39.7384375,-104.9810735,39.7384309
-6270,5461,5462,0.0537660564474852,0.0537660564474852,-104.9810735,39.7384309,-104.9804447,39.73843
-6271,5462,5463,0.0468001440268365,0.0468001440268365,-104.9804447,39.73843,-104.9798976,39.7384177
-6273,5464,5465,0.0487076064705391,0.0487076064705391,-104.9793148,39.7384144,-104.9787452,39.7384091
-6274,5465,5466,0.096682643717806,0.096682643717806,-104.9787452,39.7384091,-104.9776145,39.7384045
-6275,5466,5052,0.0976295695745084,0.0976295695745084,-104.9776145,39.7384045,-104.976473,39.7384243
-6276,5052,5467,0.0498503558842522,0.0498503558842522,-104.976473,39.7384243,-104.97589,39.7384222
-6277,5467,5468,0.0500897185974344,0.0500897185974344,-104.97589,39.7384222,-104.9753042,39.7384242
-6279,5223,978,0.0483462615206691,0.0483462615206691,-104.9747109,39.7384283,-104.9741456,39.7384195
-6280,978,5469,0.0500186833718628,0.0500186833718628,-104.9741456,39.7384195,-104.9735608,39.7384085
-6281,5469,5470,0.0466179289686935,0.0466179289686935,-104.9735608,39.7384085,-104.9730156,39.7384072
-6282,5470,5471,0.0496889709391185,0.0496889709391185,-104.9730156,39.7384072,-104.9724345,39.7384108
-6283,5471,5472,0.0500395303728477,0.0500395303728477,-104.9724345,39.7384108,-104.9718493,39.7384144
-6284,5472,4947,0.0500649255411997,0.0500649255411997,-104.9718493,39.7384144,-104.9712638,39.7384111
-6285,4947,5119,0.0486069729184005,0.0486069729184005,-104.9712638,39.7384111,-104.9706954,39.7384177
-6286,5119,5473,0.0497694572157541,0.0497694572157541,-104.9706954,39.7384177,-104.9701135,39.7384072
-6287,5473,4719,0.0482501223288259,0.0482501223288259,-104.9701135,39.7384072,-104.9695494,39.7384185
-6288,4719,5474,0.0825694493004343,0.0825694493004343,-104.9695494,39.7384185,-104.9685838,39.7384102
-6289,5474,5475,0.013401399089124,0.013401399089124,-104.9685838,39.7384102,-104.9684271,39.7384126
-6290,5475,5476,0.103889728134339,0.103889728134339,-104.9684271,39.7384126,-104.9672122,39.7384004
-6291,5476,5419,0.103815153646491,0.103815153646491,-104.9672122,39.7384004,-104.9659981,39.7383937
-6292,5419,5477,0.109635415021011,0.109635415021011,-104.9659981,39.7383937,-104.964716,39.7383814
-6294,3890,1020,0.105962717150938,0.105962717150938,-104.9634822,39.7383772,-104.962243,39.7383855
-6295,1020,5478,0.052027246508575,0.052027246508575,-104.962243,39.7383855,-104.9616347,39.7383964
-6296,5478,5479,0.0524872333525023,0.0524872333525023,-104.9616347,39.7383964,-104.9610209,39.7383907
-6297,5479,3719,0.052252544610622,0.052252544610622,-104.9610209,39.7383907,-104.9604099,39.7383822
-6298,3719,5480,0.0538013756911254,0.0538013756911254,-104.9604099,39.7383822,-104.9597808,39.7383914
-6299,5480,5481,0.0436600330786078,0.0436600330786078,-104.9597808,39.7383914,-104.9592702,39.7383938
-6300,5481,5482,0.00837974421686285,0.00837974421686285,-104.9592702,39.7383938,-104.9591722,39.7383943
-14763,7162,4611,0.176903840452458,0.176903840452458,-104.9793413,39.7432656,-104.9793144,39.7448564
-6301,5482,5026,0.040489278057912,0.040489278057912,-104.9591722,39.7383943,-104.9586987,39.7383904
-6302,5026,3338,0.107876149200874,0.107876149200874,-104.9586987,39.7383904,-104.9574371,39.7383843
-6303,3338,5483,0.0990429074228521,0.0990429074228521,-104.9574371,39.7383843,-104.9562788,39.7383792
-6304,5483,5484,0.0966066822218646,0.0966066822218646,-104.9562788,39.7383792,-104.955149,39.7383732
-6305,5484,5485,0.085086759759281,0.085086759759281,-104.955149,39.7383732,-104.9541539,39.7383732
-6306,5485,5486,0.0169728889677259,0.0169728889677259,-104.9541539,39.7383732,-104.9539554,39.7383732
-6307,5486,2067,0.0825646387998858,0.0825646387998858,-104.9539554,39.7383732,-104.9529898,39.7383752
-6309,5487,2667,0.0866869262626222,0.0866869262626222,-104.952802,39.738367,-104.9517882,39.7383629
-6310,2667,2664,0.00897895817052901,0.00897895817052901,-104.9517882,39.7383629,-104.9516835,39.7383567
-6311,2664,4137,0.0908182867369719,0.0908182867369719,-104.9516835,39.7383567,-104.9506214,39.7383505
-6312,4137,5488,0.0965705527653259,0.0965705527653259,-104.9506214,39.7383505,-104.9494922,39.738334
-6313,5488,5489,0.0942751679467969,0.0942751679467969,-104.9494922,39.738334,-104.9483898,39.7383484
-6314,5489,5490,0.0959916716400224,0.0959916716400224,-104.9483898,39.7383484,-104.9472672,39.7383417
-6315,5490,3461,0.0933212956911074,0.0933212956911074,-104.9472672,39.7383417,-104.9461758,39.7383438
-6316,3461,5491,0.0467923341231575,0.0467923341231575,-104.9461758,39.7383438,-104.9456286,39.7383386
-6317,5491,5492,0.0479894648111637,0.0479894648111637,-104.9456286,39.7383386,-104.9450674,39.7383333
-6318,5492,5493,0.094030978726141,0.094030978726141,-104.9450674,39.7383333,-104.9439677,39.7383313
-6319,5493,861,0.0920531787302436,0.0920531787302436,-104.9439677,39.7383313,-104.9428912,39.7383217
-6320,861,5494,0.092346282981082,0.092346282981082,-104.9428912,39.7383217,-104.9418112,39.7383212
-6321,5494,5495,0.091117734759624,0.091117734759624,-104.9418112,39.7383212,-104.9407458,39.7383041
-20501,10824,10839,0.0279151158292869,0.0279151158292869,-105.0208891,39.7583505,-105.0206127,39.7582168
-6323,5496,5497,0.0512308809047994,0.0512308809047994,-104.9773755,39.757988,-104.9777977,39.758315
-6324,5497,5498,0.0547050066584288,0.0547050066584288,-104.9777977,39.758315,-104.9782485,39.7586642
-6325,5498,5499,0.0532065647068504,0.0532065647068504,-104.9782485,39.7586642,-104.978687,39.7590038
-6326,5499,5500,0.0520026026999989,0.0520026026999989,-104.978687,39.7590038,-104.9791156,39.7593357
-6327,5500,5501,0.0600453089722235,0.0600453089722235,-104.9791156,39.7593357,-104.9796104,39.759719
-6328,5501,5502,0.0451373924487277,0.0451373924487277,-104.9796104,39.759719,-104.9799824,39.7600071
-7588,6319,6320,0.0874047970677394,0.0874047970677394,-105.036097,39.7056008,-105.0371184,39.7056206
-6330,5503,5504,0.0512021800904844,0.0512021800904844,-104.9804313,39.7603548,-104.9808533,39.7606816
-6331,5504,5505,0.0535897595927606,0.0535897595927606,-104.9808533,39.7606816,-104.9812949,39.7610237
-6332,5505,5506,0.0503264318858696,0.0503264318858696,-104.9812949,39.7610237,-104.9817097,39.7613449
-6333,5506,5507,0.0549843628648472,0.0549843628648472,-104.9817097,39.7613449,-104.9821628,39.7616959
-6334,5507,3309,0.0521587927419047,0.0521587927419047,-104.9821628,39.7616959,-104.9825927,39.7620288
-6335,3309,5508,0.0557422576502987,0.0557422576502987,-104.9825927,39.7620288,-104.9830521,39.7623846
-6336,5508,5509,0.0498065817995712,0.0498065817995712,-104.9830521,39.7623846,-104.9834626,39.7627025
-6338,5510,5511,0.10273263586878,0.10273263586878,-104.9738469,39.7553142,-104.974688,39.7559741
-6339,5511,5512,0.103095987250104,0.103095987250104,-104.974688,39.7559741,-104.975568,39.7566081
-6340,5512,3020,0.0125186689867189,0.0125186689867189,-104.975568,39.7566081,-104.9756854,39.7566754
-6341,3020,5513,0.0466432236195876,0.0466432236195876,-104.9756854,39.7566754,-104.97606,39.7569804
-6342,5513,4381,0.0509815437370977,0.0509815437370977,-104.97606,39.7569804,-104.9764694,39.7573138
-6344,5514,5515,0.103259680904514,0.103259680904514,-104.998222,39.7742728,-104.9994301,39.7742575
-6345,5515,3934,0.0990266173550878,0.0990266173550878,-104.9994301,39.7742575,-105.0005888,39.7742509
-6346,3934,5516,0.10122291130851,0.10122291130851,-105.0005888,39.7742509,-105.0017732,39.7742575
-6347,5516,3707,0.107162793104657,0.107162793104657,-105.0017732,39.7742575,-105.0030264,39.7742905
-6348,3707,717,0.101965718351369,0.101965718351369,-105.0030264,39.7742905,-105.0042194,39.7743037
-6349,717,5517,0.10489500722876,0.10489500722876,-105.0042194,39.7743037,-105.0054468,39.7743037
-6350,5517,5518,0.0880249775504832,0.0880249775504832,-105.0054468,39.7743037,-105.0064768,39.7743037
-6352,5519,4201,0.0955388621117037,0.0955388621117037,-105.0064768,39.7741388,-105.0075947,39.7741338
-6353,4201,1068,0.10398483351111,0.10398483351111,-105.0075947,39.7741338,-105.0088114,39.7741256
-6354,1068,2504,0.101881809876575,0.101881809876575,-105.0088114,39.7741256,-105.0100035,39.774133
-6355,2504,5520,0.10295538196753,0.10295538196753,-105.0100035,39.774133,-105.0112082,39.7741318
-6356,5520,1231,0.0964004159007037,0.0964004159007037,-105.0112082,39.7741318,-105.0123362,39.7741321
-6357,1231,4809,0.0995624903271375,0.0995624903271375,-105.0123362,39.7741321,-105.0135012,39.7741317
-6358,4809,2176,0.101169164261142,0.101169164261142,-105.0135012,39.7741317,-105.014685,39.7741313
-6359,2176,5521,0.102032335854251,0.102032335854251,-105.014685,39.7741313,-105.0158789,39.7741319
-6360,5521,348,0.0731550647240869,0.0731550647240869,-105.0158789,39.7741319,-105.0167349,39.7741306
-6361,348,351,0.0329026304601732,0.0329026304601732,-105.0167349,39.7741306,-105.0171199,39.7741304
-6363,5522,4629,0.122115753805888,0.122115753805888,-105.0175119,39.7741304,-105.0189408,39.7741298
-6364,4629,1258,0.132003632804436,0.132003632804436,-105.0189408,39.7741298,-105.0204854,39.7741292
-6366,377,4544,0.0548661978897115,0.0548661978897115,-105.0213949,39.7741289,-105.0220369,39.7741287
-6367,4544,2700,0.136738193723685,0.136738193723685,-105.0220369,39.7741287,-105.0236369,39.7741281
-6368,2700,5523,0.130559333935347,0.130559333935347,-105.0236369,39.7741281,-105.0251646,39.7741276
-6371,5525,1133,0.0486624445582808,0.0486624445582808,-105.0398709,39.7738651,-105.0404403,39.7738672
-6372,1133,5526,0.0510752177714687,0.0510752177714687,-105.0404403,39.7738672,-105.0410378,39.7738771
-6373,5526,5527,0.0534768474459495,0.0534768474459495,-105.0410378,39.7738771,-105.0416634,39.7738873
-6374,5527,3849,0.0993499397911337,0.0993499397911337,-105.0416634,39.7738873,-105.0428259,39.7738908
-20247,6972,10718,0.0278784612667637,0.0278784612667637,-105.0336248,39.7451433,-105.033621,39.745394
-6375,3849,5528,0.0502810849564127,0.0502810849564127,-105.0428259,39.7738908,-105.0434142,39.7738965
-6376,5528,5529,0.0506206995449551,0.0506206995449551,-105.0434142,39.7738965,-105.0440065,39.7738927
-6378,3432,5530,0.0954898525843842,0.0954898525843842,-105.0346033,39.7741067,-105.033486,39.774099
-6379,5530,1409,0.0985492973952367,0.0985492973952367,-105.033486,39.774099,-105.032333,39.774085
-6380,1409,5531,0.102140021124127,0.102140021124127,-105.032333,39.774085,-105.031138,39.77407
-6381,5531,3995,0.106588318724824,0.106588318724824,-105.031138,39.77407,-105.0298909,39.7740573
-6382,3995,5532,0.089989655098645,0.089989655098645,-105.0298909,39.7740573,-105.028838,39.774047
-6383,5532,5533,0.0940983975381981,0.0940983975381981,-105.028838,39.774047,-105.027737,39.774038
-6384,5533,3749,0.102559803256087,0.102559803256087,-105.027737,39.774038,-105.026537,39.774028
-6385,3749,5534,0.132377311804748,0.132377311804748,-105.026537,39.774028,-105.0252738,39.774717
-6388,2028,5536,0.103552176267271,0.103552176267271,-104.9936175,39.7741835,-104.9948277,39.7742296
-6391,3402,5538,0.101285303038309,0.101285303038309,-105.0346118,39.75209,-105.0357963,39.7521098
-6392,5538,5539,0.0982612440798091,0.0982612440798091,-105.0357963,39.7521098,-105.0369449,39.7521429
-6393,5539,5540,0.104203916508807,0.104203916508807,-105.0369449,39.7521429,-105.0381637,39.7521297
-6394,5540,5541,0.0994909347746214,0.0994909347746214,-105.0381637,39.7521297,-105.0393273,39.7521135
-6395,5541,5542,0.0496866830167122,0.0496866830167122,-105.0393273,39.7521135,-105.0399084,39.7521049
-6396,5542,1115,0.0483270289965061,0.0483270289965061,-105.0399084,39.7521049,-105.0404736,39.7520966
-6397,1115,5543,0.0505090974663915,0.0505090974663915,-105.0404736,39.7520966,-105.0410644,39.752101
-6398,5543,5544,0.051466523607823,0.051466523607823,-105.0410644,39.752101,-105.0416664,39.7521054
-6399,5544,5545,0.0509771831188889,0.0509771831188889,-105.0416664,39.7521054,-105.0422627,39.7521069
-18369,6894,6889,0.0506808956189271,0.0506808956189271,-105.0259502,39.7655831,-105.0259388,39.7651274
-6400,5545,3837,0.0484293465449961,0.0484293465449961,-105.0422627,39.7521069,-105.0428292,39.7521069
-6402,5546,5547,0.0572465530818606,0.0572465530818606,-104.9874887,39.6894093,-104.9881577,39.6894044
-6403,5547,4036,0.051041556606541,0.051041556606541,-104.9881577,39.6894044,-104.9887542,39.6894075
-6404,4036,5548,0.0609619584955507,0.0609619584955507,-104.9887542,39.6894075,-104.9894666,39.6894141
-6405,1878,4178,0.0543518295000293,0.0543518295000293,-104.9904039,39.689387,-104.9910391,39.689387
-6406,4178,5549,0.0885356562805968,0.0885356562805968,-104.9910391,39.689387,-104.9920738,39.6893875
-6408,1863,2630,0.0954187587481574,0.0954187587481574,-105.0439342,39.7212724,-105.0439263,39.7221305
-6409,2630,2609,0.0942841337329746,0.0942841337329746,-105.0439263,39.7221305,-105.0439334,39.7229784
-6410,2609,5207,0.106776685868403,0.106776685868403,-105.0439334,39.7229784,-105.0439566,39.7239385
-6411,5207,5191,0.0702035466323056,0.0702035466323056,-105.0439566,39.7239385,-105.0439457,39.7245698
-6412,5191,5550,0.105689823753241,0.105689823753241,-105.0439457,39.7245698,-105.0439763,39.72552
-6414,5551,5552,0.13548002915508,0.13548002915508,-105.0440125,39.7548692,-105.0440147,39.7560876
-6415,5552,5553,0.0682592832885596,0.0682592832885596,-105.0440147,39.7560876,-105.0440268,39.7567014
-6416,5553,19,0.0650116042038798,0.0650116042038798,-105.0440268,39.7567014,-105.044038,39.757286
-6417,19,2991,0.133631170313494,0.133631170313494,-105.044038,39.757286,-105.0440114,39.7584876
-6418,2991,5554,0.0524731372315077,0.0524731372315077,-105.0440114,39.7584876,-105.0440133,39.7589595
-6419,5554,1882,0.0490816557393864,0.0490816557393864,-105.0440133,39.7589595,-105.044015,39.7594009
-6420,1882,5555,0.0508829391590993,0.0508829391590993,-105.044015,39.7594009,-105.0440136,39.7598585
-6421,5555,5556,0.0494818870663145,0.0494818870663145,-105.0440136,39.7598585,-105.0440122,39.7603035
-6422,5556,5557,0.0511609921162368,0.0511609921162368,-105.0440122,39.7603035,-105.0440105,39.7607636
-6423,5557,5558,0.0498069369814246,0.0498069369814246,-105.0440105,39.7607636,-105.0440044,39.7612115
-6424,5558,5559,0.0494751154031395,0.0494751154031395,-105.0440044,39.7612115,-105.0440122,39.7616564
-6425,5559,5560,0.0510095826256232,0.0510095826256232,-105.0440122,39.7616564,-105.0440201,39.7621151
-18695,5978,4055,0.196460738141722,0.196460738141722,-105.0391098,39.719916,-105.0391007,39.7181492
-6426,5560,5561,0.100658038986824,0.100658038986824,-105.0440201,39.7621151,-105.0440091,39.7630203
-6427,5561,5562,0.100189919501299,0.100189919501299,-105.0440091,39.7630203,-105.0439996,39.7639213
-6428,5562,5243,0.0999621826427635,0.0999621826427635,-105.0439996,39.7639213,-105.0440231,39.7648201
-6429,5243,5563,0.0514845629022423,0.0514845629022423,-105.0440231,39.7648201,-105.0440188,39.7652831
-6430,5563,5564,0.0509507800422364,0.0509507800422364,-105.0440188,39.7652831,-105.0440146,39.7657413
-6431,5564,5565,0.0506384299937204,0.0506384299937204,-105.0440146,39.7657413,-105.0440165,39.7661967
-6432,5565,5566,0.0502094012018427,0.0502094012018427,-105.0440165,39.7661967,-105.0440247,39.7666482
-6433,5566,5567,0.0352773306402212,0.0352773306402212,-105.0440247,39.7666482,-105.0440325,39.7669654
-6434,5567,1696,0.0663073245001768,0.0663073245001768,-105.0440325,39.7669654,-105.0440268,39.7675617
-6435,1696,5568,0.200475700974595,0.200475700974595,-105.0440268,39.7675617,-105.0440382,39.7693646
-6436,5568,2444,0.175243279627828,0.175243279627828,-105.0440382,39.7693646,-105.0440363,39.7709406
-6438,5569,5570,0.150878938410471,0.150878938410471,-105.0440431,39.7711254,-105.0440138,39.7724821
-6439,5570,5571,0.0520399442807291,0.0520399442807291,-105.0440138,39.7724821,-105.0440106,39.7729501
-6440,5571,5572,0.00805055351559969,0.00805055351559969,-105.0440106,39.7729501,-105.0440103,39.7730225
-6441,5572,5573,0.0547971824088202,0.0547971824088202,-105.0440103,39.7730225,-105.0440081,39.7735153
-6442,5573,5529,0.0419651880906561,0.0419651880906561,-105.0440081,39.7735153,-105.0440065,39.7738927
-6443,5529,5574,0.00738334312936163,0.00738334312936163,-105.0440065,39.7738927,-105.0440065,39.7739591
-6444,5574,5575,0.0892116998808573,0.0892116998808573,-105.0440065,39.7739591,-105.044007,39.7747614
-6445,5575,5576,0.0587189734757016,0.0587189734757016,-105.044007,39.7747614,-105.0439812,39.7752891
-6446,5576,5577,0.143444822058071,0.143444822058071,-105.0439812,39.7752891,-105.0439697,39.7765791
-6447,5577,5578,0.0305007791534936,0.0305007791534936,-105.0439697,39.7765791,-105.0439694,39.7768534
-6448,5578,5579,0.0181914980281834,0.0181914980281834,-105.0439694,39.7768534,-105.0439692,39.777017
-6449,5579,5580,0.150469022298562,0.150469022298562,-105.0439692,39.777017,-105.0439678,39.7783702
-6450,5580,5581,0.204922214354376,0.204922214354376,-105.0439678,39.7783702,-105.04396,39.7802131
-6451,5581,5582,0.0983186744589269,0.0983186744589269,-105.04396,39.7802131,-105.0439618,39.7810973
-6452,5582,1433,0.108782481382419,0.108782481382419,-105.0439618,39.7810973,-105.043958,39.7820756
-6453,1433,5583,0.123482673613688,0.123482673613688,-105.043958,39.7820756,-105.043938,39.783186
-6454,5583,5584,0.0754033254163114,0.0754033254163114,-105.043938,39.783186,-105.0439445,39.7838641
-6455,5584,5585,0.194791277181441,0.194791277181441,-105.0439445,39.7838641,-105.043944,39.7856159
-6456,5585,5586,0.0533068649535537,0.0533068649535537,-105.043944,39.7856159,-105.0439435,39.7860953
-6457,5586,2555,0.14827848293408,0.14827848293408,-105.0439435,39.7860953,-105.0439421,39.7874288
-6458,2555,5587,0.408042656170713,0.408042656170713,-105.0439421,39.7874288,-105.0439281,39.7910984
-6459,5588,5589,0.135112968623698,0.135112968623698,-105.0439294,39.7354289,-105.0439287,39.736644
-6460,5589,5590,0.203702085134274,0.203702085134274,-105.0439287,39.736644,-105.0440007,39.7384751
-6461,5590,5591,0.207620262278034,0.207620262278034,-105.0440007,39.7384751,-105.0440223,39.7403422
-6462,5591,4585,0.131035476997682,0.131035476997682,-105.0440223,39.7403422,-105.0440113,39.7415206
-6463,4585,5592,0.072769358589151,0.072769358589151,-105.0440113,39.7415206,-105.0440283,39.7421749
-6464,5592,5593,0.0625746572307696,0.0625746572307696,-105.0440283,39.7421749,-105.0440188,39.7427376
-6465,5593,5301,0.137225765514935,0.137225765514935,-105.0440188,39.7427376,-105.0440208,39.7439717
-6467,5594,5595,0.274145349571988,0.274145349571988,-105.0438496,39.7258018,-105.0438951,39.728267
-6468,5595,5596,0.205443804135366,0.205443804135366,-105.0438951,39.728267,-105.0438933,39.7301146
-6469,5596,5597,0.121926623756206,0.121926623756206,-105.0438933,39.7301146,-105.0438865,39.7312111
-6470,5597,5598,0.202580256912195,0.202580256912195,-105.0438865,39.7312111,-105.0439037,39.7330329
-6472,4361,5599,0.206258701511779,0.206258701511779,-105.0015929,39.7165869,-105.0015794,39.7184418
-6474,5600,5601,0.168149469233138,0.168149469233138,-105.0015966,39.7194189,-105.0016014,39.7209311
-6476,2625,5205,0.166253482314503,0.166253482314503,-105.0013439,39.7226673,-105.001561,39.7241531
-6502,5622,5516,0.138783948073856,0.138783948073856,-105.0017809,39.7730094,-105.0017732,39.7742575
-6477,5205,5602,0.15603138237828,0.15603138237828,-105.001561,39.7241531,-105.0016002,39.725556
-6478,5602,5603,0.0341829476854199,0.0341829476854199,-105.0016002,39.725556,-105.0016041,39.7258634
-6479,5603,5604,0.162233690102157,0.162233690102157,-105.0016041,39.7258634,-105.0016005,39.7273224
-6480,5604,5605,0.176890418224524,0.176890418224524,-105.0016005,39.7273224,-105.0015919,39.7289132
-6481,5605,5606,0.121703194532156,0.121703194532156,-105.0015919,39.7289132,-105.0015885,39.7300077
-6482,5606,5609,0.0547747917576354,0.0547747917576354,-105.0015885,39.7300077,-105.0015869,39.7305003
-6483,5609,5610,0.177274555583034,0.177274555583034,-105.0015869,39.7305003,-105.0015677,39.7320945
-6484,5610,5611,0.0562757523743122,0.0562757523743122,-105.0015677,39.7320945,-105.0015677,39.7326006
-6485,5611,5381,0.0971287684245127,0.0971287684245127,-105.0015677,39.7326006,-105.0015677,39.7334741
-6486,5381,5370,0.0242294178668139,0.0242294178668139,-105.0015677,39.7334741,-105.0015763,39.7336919
-6487,5370,5612,0.177146422666141,0.177146422666141,-105.0015763,39.7336919,-105.001567,39.735285
-6488,5612,5613,0.176947014024794,0.176947014024794,-105.001567,39.735285,-105.0015927,39.7368762
-6489,5613,5614,0.177715418603807,0.177715418603807,-105.0015927,39.7368762,-105.0015572,39.7384742
-6490,5614,5615,0.0918268918834614,0.0918268918834614,-105.0015572,39.7384742,-105.0015645,39.7393
-6491,5615,5616,0.00795060277662081,0.00795060277662081,-105.0015645,39.7393,-105.0015651,39.7393715
-6493,5617,5618,0.0159556400855116,0.0159556400855116,-105.0015669,39.7400197,-105.0015736,39.7401631
-6496,5619,5620,0.132547309025511,0.132547309025511,-105.0018152,39.7656592,-105.0017926,39.7668511
-6497,5620,1667,0.132931219459218,0.132931219459218,-105.0017926,39.7668511,-105.0017747,39.7680465
-6498,1667,5621,0.138273532739947,0.138273532739947,-105.0017747,39.7680465,-105.0017647,39.76929
-6499,5621,2448,0.13601631946961,0.13601631946961,-105.0017647,39.76929,-105.0017747,39.7705132
-6500,2448,3238,0.136726308588665,0.136726308588665,-105.0017747,39.7705132,-105.0017809,39.7717428
-6501,3238,5622,0.14083949408811,0.14083949408811,-105.0017809,39.7717428,-105.0017809,39.7730094
-6503,5516,5623,0.135704638458681,0.135704638458681,-105.0017732,39.7742575,-105.0017268,39.7754774
-6504,5623,5624,0.00588469429500613,0.00588469429500613,-105.0017268,39.7754774,-105.0017248,39.7755303
-6505,5624,5625,0.115900802279231,0.115900802279231,-105.0017248,39.7755303,-105.0017162,39.7765726
-6506,5625,5626,0.19877742240622,0.19877742240622,-105.0017162,39.7765726,-105.0016991,39.7783602
-6507,5626,110,0.101954628240396,0.101954628240396,-105.0016991,39.7783602,-105.0016991,39.7792771
-6508,110,2818,0.0990079626838536,0.0990079626838536,-105.0016991,39.7792771,-105.0016991,39.7801675
-6509,2818,1419,0.203073935940985,0.203073935940985,-105.0016991,39.7801675,-105.0017224,39.7819937
-6510,1419,5627,0.11954884298017,0.11954884298017,-105.0017224,39.7819937,-105.0017122,39.7830688
-6511,2917,5628,0.0366435746314918,0.0366435746314918,-104.9732076,39.7181827,-104.9727792,39.7181791
-6513,3710,5629,0.104723848956837,0.104723848956837,-104.9874523,39.7183509,-104.9862279,39.718349
-6514,5629,5630,0.0524718119166661,0.0524718119166661,-104.9862279,39.718349,-104.9856145,39.7183411
-6515,5630,5631,0.0523604583661445,0.0523604583661445,-104.9856145,39.7183411,-104.9850024,39.7183333
-6516,5631,963,0.102688945741692,0.102688945741692,-104.9850024,39.7183333,-104.9838018,39.7183372
-6519,2898,5632,0.0542316769914945,0.0542316769914945,-104.9733526,39.7557317,-104.9727182,39.7557338
-6520,5632,5633,0.0508977749431617,0.0508977749431617,-104.9727182,39.7557338,-104.9721228,39.7557358
-6521,5633,5634,0.106035617894042,0.106035617894042,-104.9721228,39.7557358,-104.9708824,39.75574
-6522,5634,4734,0.104599442261749,0.104599442261749,-104.9708824,39.75574,-104.9696588,39.7557441
-6524,5635,5399,0.0949731678048623,0.0949731678048623,-104.9670667,39.7557406,-104.9659557,39.7557387
-6525,5399,5636,0.053273863098243,0.053273863098243,-104.9659557,39.7557387,-104.9653325,39.7557377
-6526,5636,5637,0.0532054766684841,0.0532054766684841,-104.9653325,39.7557377,-104.9647101,39.7557367
-6527,5637,3901,0.105282590951624,0.105282590951624,-104.9647101,39.7557367,-104.9634785,39.7557346
-6528,3901,1038,0.105350981348288,0.105350981348288,-104.9634785,39.7557346,-104.9622461,39.7557325
-6530,5638,5639,0.103436146317209,0.103436146317209,-104.9609978,39.7557305,-104.9597878,39.7557284
-6531,5639,5004,0.104923546637106,0.104923546637106,-104.9597878,39.7557284,-104.9585604,39.7557264
-6532,5004,3324,0.10200854500581,0.10200854500581,-104.9585604,39.7557264,-104.9573671,39.7557244
-20515,10842,6731,0.00724303302685487,0.00724303302685487,-105.0159695,39.7589091,-105.0159724,39.7589742
-6533,3324,5640,0.105949384946318,0.105949384946318,-104.9573671,39.7557244,-104.9561277,39.7557223
-6534,5640,5641,0.102726616753478,0.102726616753478,-104.9561277,39.7557223,-104.954926,39.7557203
-6535,5641,2075,0.105470656717315,0.105470656717315,-104.954926,39.7557203,-104.9536922,39.7557183
-6536,2075,2672,0.106385362776241,0.106385362776241,-104.9536922,39.7557183,-104.9524477,39.7557162
-6537,2672,4122,0.107308593371936,0.107308593371936,-104.9524477,39.7557162,-104.9511924,39.7557141
-6538,4122,5642,0.107983920400391,0.107983920400391,-104.9511924,39.7557141,-104.9499292,39.755712
-6539,5642,5643,0.0919555733248638,0.0919555733248638,-104.9499292,39.755712,-104.9488535,39.7557103
-7832,6456,349,0.0697483782641925,0.0697483782641925,-105.0158736,39.775342,-105.0166897,39.7753492
-6540,5643,5644,0.101410180701687,0.101410180701687,-104.9488535,39.7557103,-104.9476672,39.7557083
-6541,5644,3470,0.100777601888944,0.100777601888944,-104.9476672,39.7557083,-104.9464883,39.7557063
-6542,3470,5645,0.101863251928372,0.101863251928372,-104.9464883,39.7557063,-104.9452967,39.7557043
-6543,5645,3873,0.0981959903542781,0.0981959903542781,-104.9452967,39.7557043,-104.944148,39.7557023
-6544,3873,849,0.100085165894781,0.100085165894781,-104.944148,39.7557023,-104.9429772,39.7557004
-6546,1400,5646,0.00898751016812899,0.00898751016812899,-105.0324862,39.7250782,-105.0325885,39.7250967
-6547,5646,5647,0.190632434837625,0.190632434837625,-105.0325885,39.7250967,-105.0347769,39.7254226
-6548,5647,3388,0.011727623160982,0.011727623160982,-105.0347769,39.7254226,-105.0349134,39.7254327
-6549,3388,5648,0.0568259028608414,0.0568259028608414,-105.0349134,39.7254327,-105.0355748,39.7254817
-6550,5648,5649,0.00637619061562419,0.00637619061562419,-105.0355748,39.7254817,-105.035649,39.7254873
-6551,5649,5650,0.0463019954871414,0.0463019954871414,-105.035649,39.7254873,-105.0361904,39.7254853
-6552,5650,2800,0.0477133812275841,0.0477133812275841,-105.0361904,39.7254853,-105.0367483,39.7254828
-6553,2800,5651,0.0470719166287448,0.0470719166287448,-105.0367483,39.7254828,-105.0372987,39.7254804
-6554,5651,5652,0.0458325636837201,0.0458325636837201,-105.0372987,39.7254804,-105.0378346,39.7254837
-6555,5652,5653,0.046653544202397,0.046653544202397,-105.0378346,39.7254837,-105.0383801,39.725487
-6556,5653,5654,0.0464726377537293,0.0464726377537293,-105.0383801,39.725487,-105.0389235,39.725486
-6557,5654,5655,0.0469344544346564,0.0469344544346564,-105.0389235,39.725486,-105.0394723,39.725485
-6558,5655,2751,0.046215112991852,0.046215112991852,-105.0394723,39.725485,-105.0400126,39.7254926
-6559,2751,1096,0.0461039483088431,0.0461039483088431,-105.0400126,39.7254926,-105.0405516,39.7255002
-6560,1096,5656,0.0452023576254509,0.0452023576254509,-105.0405516,39.7255002,-105.0410801,39.7255057
-6561,5656,5657,0.0460150379661812,0.0460150379661812,-105.0410801,39.7255057,-105.0416181,39.7255114
-6562,5657,1539,0.0464321875423527,0.0464321875423527,-105.0416181,39.7255114,-105.042161,39.7255157
-6563,1539,3855,0.0473472190950861,0.0473472190950861,-105.042161,39.7255157,-105.0427146,39.72552
-6565,4485,345,0.22138299033862,0.22138299033862,-105.0056478,39.7253802,-105.0067949,39.727165
-6566,345,5661,0.163308085042962,0.163308085042962,-105.0067949,39.727165,-105.008697,39.727035
-6567,5661,5662,0.065819748510902,0.065819748510902,-105.008697,39.727035,-105.008885,39.726461
-6568,5661,5663,0.0801840013229962,0.0801840013229962,-105.008697,39.727035,-105.00953,39.727366
-6569,3287,5665,0.0688755620206119,0.0688755620206119,-104.9490802,39.7038404,-104.9486082,39.7033386
-6570,5665,5666,0.0427865432685629,0.0427865432685629,-104.9486082,39.7033386,-104.9482219,39.7030942
-6571,5666,523,0.0741847082758752,0.0741847082758752,-104.9482219,39.7030942,-104.947535,39.702687
-6572,523,5667,0.0513515905827488,0.0513515905827488,-104.947535,39.702687,-104.947235,39.702287
-6573,5667,597,0.0787762757947461,0.0787762757947461,-104.947235,39.702287,-104.9464074,39.7019764
-6574,597,4825,0.152733980621547,0.152733980621547,-104.9464074,39.7019764,-104.9446221,39.7019764
-6576,2530,1931,0.0607754389242505,0.0607754389242505,-105.0304849,39.7379392,-105.030496,39.7384857
-6578,5668,5669,0.20518077925237,0.20518077925237,-105.0310864,39.7548296,-105.0311012,39.7566748
-6580,5670,2976,0.052930873102536,0.052930873102536,-105.0310884,39.7580274,-105.0310829,39.7585034
-6582,5671,5672,0.0669604143503768,0.0669604143503768,-104.9976172,39.7173382,-104.997538,39.7179373
-6583,5672,3722,0.0539771509338677,0.0539771509338677,-104.997538,39.7179373,-104.9975448,39.7184227
-6584,3722,5673,0.103203771462203,0.103203771462203,-104.9975448,39.7184227,-104.9975345,39.7193508
-6585,5673,5674,0.175725539559539,0.175725539559539,-104.9975345,39.7193508,-104.9975487,39.7209311
-6587,5675,5676,0.204879915807757,0.204879915807757,-104.998391,39.7584595,-104.9984194,39.7603019
-6588,5677,5678,0.00677682168687122,0.00677682168687122,-104.998198,39.7674788,-104.9982133,39.7675386
-6589,5678,1665,0.0567234226799308,0.0567234226799308,-104.9982133,39.7675386,-104.9982066,39.7680487
-6590,1665,5679,0.122659531226911,0.122659531226911,-104.9982066,39.7680487,-104.9982029,39.7691518
-6592,5680,5681,0.862768870925976,0.862768870925976,-105.0432124,39.7065384,-105.0532533,39.7058097
-6593,5682,5683,0.164927546324728,0.164927546324728,-104.9991817,39.7066718,-105.0011096,39.70666
-6594,5683,4367,0.0355730578333277,0.0355730578333277,-105.0011096,39.70666,-105.0015253,39.7066683
-6595,4367,1448,0.193853665061985,0.193853665061985,-105.0015253,39.7066683,-105.0037914,39.7066687
-6596,1448,5688,0.205590441563944,0.205590441563944,-105.0037914,39.7066687,-105.0061947,39.7066687
-6598,5689,5690,0.100594816308247,0.100594816308247,-105.040852,39.7068752,-105.0420279,39.7068686
-6599,5690,5691,0.0991234853564762,0.0991234853564762,-105.0420279,39.7068686,-105.0431866,39.7068752
-6601,5438,5692,0.211107914724763,0.211107914724763,-105.0250719,39.7067303,-105.0275397,39.7067299
-6602,5692,4415,0.193109246091061,0.193109246091061,-105.0275397,39.7067299,-105.0297971,39.7067299
-6603,4415,5693,0.226139344299967,0.226139344299967,-105.0297971,39.7067299,-105.0324406,39.7067365
-6606,4323,5694,0.0859068688818743,0.0859068688818743,-105.0350585,39.7071591,-105.0360627,39.7071657
-6608,5695,5696,0.0748977449692987,0.0748977449692987,-105.0362429,39.7071723,-105.0371184,39.7071789
-6609,5696,5073,0.0868839085552243,0.0868839085552243,-105.0371184,39.7071789,-105.0381339,39.7071927
-6610,5073,5333,0.0187220275557185,0.0187220275557185,-105.0381339,39.7071927,-105.0382798,39.7073182
-6612,5697,1590,0.201198112839976,0.201198112839976,-105.010983,39.7065516,-105.0133347,39.7065252
-18141,10274,10269,0.134684266769083,0.134684266769083,-105.0136006,39.7885593,-105.0151755,39.7886103
-6613,1590,1640,0.20125093456728,0.20125093456728,-105.0133347,39.7065252,-105.0156865,39.706479
-6615,5698,5699,0.200385663675414,0.200385663675414,-105.0357723,39.7603267,-105.0357639,39.7621288
-6617,5700,5701,0.196514919519562,0.196514919519562,-105.035764,39.7622008,-105.0357666,39.7639681
-6618,5701,5248,0.110632746994,0.110632746994,-105.0357666,39.7639681,-105.0357544,39.764963
-6619,5248,5702,0.0945616875172071,0.0945616875172071,-105.0357544,39.764963,-105.0357792,39.7658132
-6620,5702,1685,0.205454867561864,0.205454867561864,-105.0357792,39.7658132,-105.0357789,39.7676609
-6621,1685,5703,0.206063854698429,0.206063854698429,-105.0357789,39.7676609,-105.0358122,39.7695139
-6622,5703,2430,0.199691165132387,0.199691165132387,-105.0358122,39.7695139,-105.0357922,39.7713097
-6623,2430,5704,0.202603259150386,0.202603259150386,-105.0357922,39.7713097,-105.0357738,39.7731317
-6625,4504,4050,0.176201016140026,0.176201016140026,-105.0361142,39.7165547,-105.0361228,39.7181393
-6626,4050,5707,0.173108439499024,0.173108439499024,-105.0361228,39.7181393,-105.0361257,39.7196961
-6628,1851,2587,0.179402678295732,0.179402678295732,-105.036129,39.721332,-105.0361228,39.7229454
-6630,5708,5709,0.275624196707738,0.275624196707738,-105.0361678,39.7257622,-105.0362218,39.7282406
-6632,5710,5711,0.261275347332411,0.261275347332411,-105.0362304,39.7306104,-105.0362237,39.7329601
-6634,5712,5713,0.0444779706577198,0.0444779706577198,-105.0357542,39.7810788,-105.0357542,39.7814788
-6635,5714,5715,0.183336097782058,0.183336097782058,-105.0357506,39.7767314,-105.0357824,39.77838
-6636,5715,5716,0.203064462732684,0.203064462732684,-105.0357824,39.77838,-105.0357784,39.7802062
-6638,5717,5718,0.153081250432522,0.153081250432522,-105.0358099,39.7329669,-105.0356487,39.734338
-6639,5718,5719,0.011675447758709,0.011675447758709,-105.0356487,39.734338,-105.0355549,39.7344143
-6641,1422,5720,0.117935613657917,0.117935613657917,-105.0357695,39.7820968,-105.0357487,39.7831573
-6643,5721,5722,0.194099197890973,0.194099197890973,-105.0357498,39.7838704,-105.035771,39.7856159
-6644,5722,2542,0.201930616083342,0.201930616083342,-105.035771,39.7856159,-105.0357769,39.7874319
-6645,2542,5723,0.411877202316789,0.411877202316789,-105.0357769,39.7874319,-105.035774,39.791136
-6646,5724,624,0.116891424974631,0.116891424974631,-105.0357584,39.7355345,-105.0357481,39.7365857
-6648,5725,5726,0.225973303098124,0.225973303098124,-104.9515323,39.7020311,-104.9536931,39.7008623
-6649,5726,3656,0.0613034024300807,0.0613034024300807,-104.9536931,39.7008623,-104.9541489,39.7004369
-6651,5727,5728,0.116763945302488,0.116763945302488,-105.0444167,39.7021543,-105.0443995,39.7011043
-6652,3634,5729,0.249262670016259,0.249262670016259,-104.9444999,39.7082421,-104.9447703,39.7060101
-6653,5729,5730,0.0886979206005476,0.0886979206005476,-104.9447703,39.7060101,-104.9441523,39.7053696
-6654,5730,5731,0.061003880318824,0.061003880318824,-104.9441523,39.7053696,-104.9434927,39.7051611
-6655,5731,3294,0.169569384240282,0.169569384240282,-104.9434927,39.7051611,-104.9425622,39.7038146
-6657,5730,5729,0.0886979206005476,0.0886979206005476,-104.9441523,39.7053696,-104.9447703,39.7060101
-18322,2543,7478,0.411854888798545,0.411854888798545,-105.0363411,39.7874312,-105.0363411,39.7911351
-6660,716,5733,0.106180030125168,0.106180030125168,-105.0041786,39.7730524,-105.005421,39.7730569
-6661,5733,5734,0.0889628078792179,0.0889628078792179,-105.005421,39.7730569,-105.0064617,39.7730392
-6663,5735,5736,0.0499420076759338,0.0499420076759338,-105.0393,39.7724567,-105.0398843,39.7724635
-6664,5736,1132,0.0480445960055664,0.0480445960055664,-105.0398843,39.7724635,-105.0404464,39.7724701
-6665,1132,5737,0.0493807651843696,0.0493807651843696,-105.0404464,39.7724701,-105.0410242,39.7724702
-6666,5737,5738,0.0542607296398929,0.0542607296398929,-105.0410242,39.7724702,-105.0416591,39.7724704
-6667,5738,3848,0.102653360815707,0.102653360815707,-105.0416591,39.7724704,-105.0428601,39.7724844
-6668,3848,5739,0.0481952973910705,0.0481952973910705,-105.0428601,39.7724844,-105.043424,39.77248
-6669,5739,5570,0.0504068578554883,0.0504068578554883,-105.043424,39.77248,-105.0440138,39.7724821
-6671,5740,5741,0.102055279401325,0.102055279401325,-104.9982189,39.7729896,-104.9994129,39.7730041
-6672,5741,3933,0.103350213888063,0.103350213888063,-104.9994129,39.7730041,-105.0006222,39.7730028
-6675,5742,4200,0.0968208569301817,0.0968208569301817,-105.0064961,39.7729336,-105.007629,39.7729337
-6676,4200,4193,0.0357662020116287,0.0357662020116287,-105.007629,39.7729337,-105.0080475,39.7729338
-6677,4193,1067,0.0660115016724451,0.0660115016724451,-105.0080475,39.7729338,-105.0088199,39.7729339
-6678,1067,2520,0.0682249892032966,0.0682249892032966,-105.0088199,39.7729339,-105.0096182,39.772934
-6679,2520,2503,0.0444235862340648,0.0444235862340648,-105.0096182,39.772934,-105.010138,39.772934
-6680,2503,5743,0.0929237526477458,0.0929237526477458,-105.010138,39.772934,-105.0112253,39.7729342
-6681,5743,1230,0.097564382820973,0.097564382820973,-105.0112253,39.7729342,-105.0123669,39.7729343
-6682,1230,4808,0.0974618272678182,0.0974618272678182,-105.0123669,39.7729343,-105.0135073,39.7729344
-6683,4808,2175,0.100974351727253,0.100974351727253,-105.0135073,39.7729344,-105.0146888,39.7729346
-6685,5744,5745,0.139227813146129,0.139227813146129,-105.0158722,39.7729208,-105.0175012,39.7729349
-20421,10782,10783,0.171335167034037,0.171335167034037,-105.0179661,39.7583302,-105.0159618,39.7583177
-6686,5745,4628,0.122998125096167,0.122998125096167,-105.0175012,39.7729349,-105.0189404,39.7729351
-6687,4628,378,0.0772242252157125,0.0772242252157125,-105.0189404,39.7729351,-105.019844,39.7729352
-6688,378,1257,0.0550380704812319,0.0550380704812319,-105.019844,39.7729352,-105.020488,39.7729352
-6689,1257,4543,0.132381944494249,0.132381944494249,-105.020488,39.7729352,-105.022037,39.7729354
-6690,4543,2715,0.0724896248395526,0.0724896248395526,-105.022037,39.7729354,-105.0228852,39.7729347
-7972,6547,5411,0.11011441218455,0.11011441218455,-104.9671106,39.7237629,-104.9658231,39.7237695
-6691,2715,2699,0.0727973179644107,0.0727973179644107,-105.0228852,39.7729347,-105.023737,39.7729356
-6692,2699,5748,0.121810190364873,0.121810190364873,-105.023737,39.7729356,-105.0251623,39.7729358
-6696,5750,5751,0.00763183841002978,0.00763183841002978,-105.0450566,39.7729489,-105.0451459,39.7729488
-6697,5751,5752,0.692257458082336,0.692257458082336,-105.0451459,39.7729488,-105.053246,39.7729508
-6698,2026,4672,0.134236367930218,0.134236367930218,-104.9920812,39.772996,-104.9936519,39.772996
-6699,4672,5753,0.102239429594337,0.102239429594337,-104.9936519,39.772996,-104.9948482,39.7729937
-6700,5753,5754,0.100506379378587,0.100506379378587,-104.9948482,39.7729937,-104.9960241,39.7730069
-6702,5755,5756,0.2002287044093,0.2002287044093,-104.9551441,39.7819442,-104.9551441,39.7837449
-6704,5757,5758,0.173042563926175,0.173042563926175,-104.9547567,39.7803553,-104.9547235,39.7819113
-6706,5759,744,0.063721377479395,0.063721377479395,-104.9553084,39.7758275,-104.9553192,39.7764005
-6707,744,1562,0.141424652289019,0.141424652289019,-104.9553192,39.7764005,-104.9553028,39.7776723
-6708,1562,5760,0.139452228533295,0.139452228533295,-104.9553028,39.7776723,-104.9553129,39.7789264
-6709,5760,5761,0.121153404070921,0.121153404070921,-104.9553129,39.7789264,-104.9552887,39.7800158
-6710,5761,5762,0.0103214683330101,0.0103214683330101,-104.9552887,39.7800158,-104.9552914,39.7801086
-6711,5762,5763,0.04652452941841,0.04652452941841,-104.9552914,39.7801086,-104.9552887,39.780527
-6712,5764,5765,0.155984788161682,0.155984788161682,-105.0047699,39.6984076,-105.0065723,39.6981963
-6716,5767,5768,0.200784793626825,0.200784793626825,-104.9758538,39.7800585,-104.974836,39.781686
-6743,3756,5769,0.0494129956173261,0.0494129956173261,-105.0264176,39.7874342,-105.0269959,39.7874328
-7994,6557,2764,0.0940480727939324,0.0940480727939324,-104.9338133,39.7243478,-104.9327137,39.724358
-6717,5768,5772,0.846413211947238,0.846413211947238,-104.974836,39.781686,-104.969071,39.787876
-6718,5772,517,0.0606861281340196,0.0606861281340196,-104.969071,39.787876,-104.968456,39.788149
-6719,517,5773,0.188473310975888,0.188473310975888,-104.968456,39.788149,-104.96707,39.7894676
-6721,5774,5775,0.0796153059223016,0.0796153059223016,-104.9874021,39.7450987,-104.9879817,39.7456591
-6722,5775,5776,0.00646390558051832,0.00646390558051832,-104.9879817,39.7456591,-104.9880305,39.7457035
-6723,5776,3007,0.1066159594542,0.1066159594542,-104.9880305,39.7457035,-104.9889069,39.7463856
-6724,3007,5777,0.100407769542541,0.100407769542541,-104.9889069,39.7463856,-104.989708,39.7470459
-6725,5777,4393,0.00579135202620092,0.00579135202620092,-104.989708,39.7470459,-104.9897603,39.747079
-6726,4393,5778,0.102044175747327,0.102044175747327,-104.9897603,39.747079,-104.990623,39.7477132
-6727,5778,5779,0.107668499777307,0.107668499777307,-104.990623,39.7477132,-104.9915202,39.7483927
-6728,5779,5780,0.108043382155599,0.108043382155599,-104.9915202,39.7483927,-104.9924092,39.7490833
-6729,5780,5781,0.101222003009649,0.101222003009649,-104.9924092,39.7490833,-104.9932554,39.74972
-6730,5781,5782,0.103527244594317,0.103527244594317,-104.9932554,39.74972,-104.9941044,39.7503839
-6733,5784,5785,0.0519740547318723,0.0519740547318723,-104.9949995,39.7510718,-104.9954256,39.7514052
-6734,5785,5786,0.0540518378903488,0.0540518378903488,-104.9954256,39.7514052,-104.995889,39.7517359
-6735,5786,5787,0.105403398355375,0.105403398355375,-104.995889,39.7517359,-104.99675,39.7524144
-6736,5787,5788,0.0515636589786252,0.0515636589786252,-104.99675,39.7524144,-104.9971819,39.7527381
-6737,5788,5789,0.0542361941294726,0.0542361941294726,-104.9971819,39.7527381,-104.9976271,39.7530856
-6738,5789,1159,0.0519632563805573,0.0519632563805573,-104.9976271,39.7530856,-104.9980616,39.7534124
-6739,1159,1609,0.055296326623055,0.055296326623055,-104.9980616,39.7534124,-104.9985176,39.7537651
-6742,5791,3756,0.0502859716725157,0.0502859716725157,-105.0258291,39.7874305,-105.0264176,39.7874342
-6744,5769,5792,0.0505152652453619,0.0505152652453619,-105.0269959,39.7874328,-105.0275871,39.7874313
-6745,5792,5793,0.0487326254633791,0.0487326254633791,-105.0275871,39.7874313,-105.0281574,39.7874261
-6746,5793,5794,0.0492772484970981,0.0492772484970981,-105.0281574,39.7874261,-105.0287341,39.7874292
-6747,5794,5795,0.0490197084274457,0.0490197084274457,-105.0287341,39.7874292,-105.0293078,39.7874293
-6748,5795,4008,0.0494402902066907,0.0494402902066907,-105.0293078,39.7874293,-105.0298864,39.7874254
-6749,4008,5796,0.0498144967732103,0.0498144967732103,-105.0298864,39.7874254,-105.0304694,39.7874265
-6750,5796,5797,0.0492676243070722,0.0492676243070722,-105.0304694,39.7874265,-105.031046,39.7874275
-6751,5797,5798,0.0496699296957128,0.0496699296957128,-105.031046,39.7874275,-105.0316273,39.7874301
-6752,5798,1392,0.0490530110641543,0.0490530110641543,-105.0316273,39.7874301,-105.0322013,39.7874223
-6753,1392,5799,0.0511729331725758,0.0511729331725758,-105.0322013,39.7874223,-105.0328002,39.7874226
-6755,5800,5801,0.0504747882864981,0.0504747882864981,-105.0333549,39.7874228,-105.0339455,39.7874133
-6756,5801,2540,0.0519704512694329,0.0519704512694329,-105.0339455,39.7874133,-105.0345536,39.7874035
-6758,5802,5803,0.0134893781959873,0.0134893781959873,-104.9916445,39.7400016,-104.9916422,39.7401229
-6759,5803,5804,0.0651761990637723,0.0651761990637723,-104.9916422,39.7401229,-104.99118,39.740589
-6760,5804,5805,0.00867856878189995,0.00867856878189995,-104.99118,39.740589,-104.9911089,39.7406447
-6761,5805,5806,0.145096674327765,0.145096674327765,-104.9911089,39.7406447,-104.989913,39.7415705
-6762,5806,5807,0.146807263740651,0.146807263740651,-104.989913,39.7415705,-104.9886895,39.7424968
-6763,5807,5808,0.0971857772299024,0.0971857772299024,-104.9886895,39.7424968,-104.9878972,39.7431235
-8041,6591,5218,0.10367384999594,0.10367384999594,-105.0332843,39.7329428,-105.0344966,39.7329537
-6766,5810,5811,0.146768415759705,0.146768415759705,-104.9814347,39.7480847,-104.9802084,39.7490084
-6768,1701,5812,0.0556890737408001,0.0556890737408001,-104.9875011,39.6911908,-104.9868503,39.6911967
-6769,5812,5813,0.0500299056894462,0.0500299056894462,-104.9868503,39.6911967,-104.9862656,39.6911947
-6770,5813,572,0.048773855210923,0.048773855210923,-104.9862656,39.6911947,-104.9856956,39.6911905
-6771,572,4985,0.0488849816155661,0.0488849816155661,-104.9856956,39.6911905,-104.9851243,39.6911864
-6772,4985,5815,0.0487728428614096,0.0487728428614096,-104.9851243,39.6911864,-104.9845543,39.6911833
-6773,5815,5816,0.0486567223604475,0.0486567223604475,-104.9845543,39.6911833,-104.9839857,39.6911771
-6774,5816,5817,0.0490027802416811,0.0490027802416811,-104.9839857,39.6911771,-104.983413,39.6911761
-6775,5817,5819,0.0533578755133891,0.0533578755133891,-104.983413,39.6911761,-104.9827894,39.6911761
-6776,5819,5820,0.0539390556466382,0.0539390556466382,-104.9827894,39.6911761,-104.9821591,39.6911678
-6778,5821,5822,0.0489941039004867,0.0489941039004867,-104.9815757,39.6911678,-104.9810031,39.6911678
-6780,3617,5823,0.0506292858836976,0.0506292858836976,-104.9804371,39.6911668,-104.9798455,39.691158
-6781,5823,5824,0.0500724300001191,0.0500724300001191,-104.9798455,39.691158,-104.9792603,39.6911567
-6782,5824,5825,0.0499880884355422,0.0499880884355422,-104.9792603,39.6911567,-104.9786761,39.6911533
-6783,5825,5099,0.0484306981291016,0.0484306981291016,-104.9786761,39.6911533,-104.9781101,39.6911501
-6784,5099,5826,0.0978349213689401,0.0978349213689401,-104.9781101,39.6911501,-104.9769668,39.691138
-8066,6604,2108,0.411848469661871,0.411848469661871,-104.9316605,39.7797563,-104.9269854,39.7788565
-6786,3484,5827,0.0514683137992155,0.0514683137992155,-104.9640755,39.691151,-104.963474,39.6911476
-6787,5827,5828,0.0484135897290906,0.0484135897290906,-104.963474,39.6911476,-104.9629082,39.6911444
-6789,5829,3698,0.0457527085543311,0.0457527085543311,-104.9622681,39.6911405,-104.9617334,39.6911372
-6790,3698,5705,0.0484471809833024,0.0484471809833024,-104.9617334,39.6911372,-104.9611673,39.6911287
-6791,5705,4572,0.0515108919391295,0.0515108919391295,-104.9611673,39.6911287,-104.9605654,39.6911197
-6792,4572,5830,0.105767692426024,0.105767692426024,-104.9605654,39.6911197,-104.9593294,39.6911329
-6793,5830,5831,0.0553912495449553,0.0553912495449553,-104.9593294,39.6911329,-104.9586821,39.6911399
-6794,5831,5832,0.0496407969110197,0.0496407969110197,-104.9586821,39.6911399,-104.958102,39.6911462
-6795,5832,5833,0.0474198419855964,0.0474198419855964,-104.958102,39.6911462,-104.9575478,39.6911453
-6796,5833,5834,0.0495588851512039,0.0495588851512039,-104.9575478,39.6911453,-104.9569687,39.691137
-6797,5834,5835,0.0489032950107884,0.0489032950107884,-104.9569687,39.691137,-104.9563972,39.6911319
-6798,5835,2741,0.0480512246257303,0.0480512246257303,-104.9563972,39.6911319,-104.9558357,39.6911246
-6800,5836,5232,0.0488850197079726,0.0488850197079726,-104.9552507,39.6911326,-104.9546794,39.6911367
-6801,5232,5837,0.0498079610709467,0.0498079610709467,-104.9546794,39.6911367,-104.9540973,39.6911339
-6802,5837,3174,0.0480709718129458,0.0480709718129458,-104.9540973,39.6911339,-104.9535355,39.6911312
-6803,3174,5838,0.0510747433773575,0.0510747433773575,-104.9535355,39.6911312,-104.9529386,39.6911278
-6804,5838,4999,0.0480555922075882,0.0480555922075882,-104.9529386,39.6911278,-104.9523772,39.6911402
-8084,6614,6615,0.0939591856631224,0.0939591856631224,-104.9338724,39.736497,-104.9349711,39.7364838
-6805,4999,5839,0.0491139247433474,0.0491139247433474,-104.9523772,39.6911402,-104.9518032,39.6911405
-6806,5839,731,0.0513728158017048,0.0513728158017048,-104.9518032,39.6911405,-104.9512028,39.6911407
-18529,9525,9153,0.0559524577768326,0.0559524577768326,-105.0340236,39.7499955,-105.0338511,39.7495101
-6807,731,5840,0.100363141472313,0.100363141472313,-104.9512028,39.6911407,-104.9500299,39.6911495
-6810,4683,1528,0.0512242368793757,0.0512242368793757,-104.9751813,39.691337,-104.9746158,39.6911858
-6811,1528,5087,0.0490096920376181,0.0490096920376181,-104.9746158,39.6911858,-104.9740434,39.6911697
-6812,5087,5841,0.0531197353238214,0.0531197353238214,-104.9740434,39.6911697,-104.973423,39.6911522
-6813,5841,5011,0.0514391840217863,0.0514391840217863,-104.973423,39.6911522,-104.9728223,39.6911338
-6814,5011,1747,0.0499193361712115,0.0499193361712115,-104.9728223,39.6911338,-104.9722389,39.6911368
-6815,1747,5608,0.0521168381912245,0.0521168381912245,-104.9722389,39.6911368,-104.9716303,39.6911179
-6816,5608,5842,0.0474458476070982,0.0474458476070982,-104.9716303,39.6911179,-104.9710758,39.6911161
-6817,5842,5449,0.0516188826793533,0.0516188826793533,-104.9710758,39.6911161,-104.9704727,39.6911049
-6818,5449,5428,0.0497563082276933,0.0497563082276933,-104.9704727,39.6911049,-104.9698913,39.6910963
-6819,5428,5390,0.0522374705433985,0.0522374705433985,-104.9698913,39.6910963,-104.9692808,39.6910982
-6820,5390,5843,0.0480447601658553,0.0480447601658553,-104.9692808,39.6910982,-104.9687193,39.6910999
-6822,5844,5845,0.0146913941785162,0.0146913941785162,-104.9407088,39.6911295,-104.9405371,39.6911295
-6823,5845,1699,0.184528247922268,0.184528247922268,-104.9405371,39.6911295,-104.9383805,39.6911269
-6824,1699,5846,0.0932680068963059,0.0932680068963059,-104.9383805,39.6911269,-104.9372905,39.6911203
-6825,5846,5847,0.0932852372069282,0.0932852372069282,-104.9372905,39.6911203,-104.9362004,39.6911071
-6826,5847,3120,0.098410300465854,0.098410300465854,-104.9362004,39.6911071,-104.9350503,39.6911005
-6827,3120,5848,0.0905968964383526,0.0905968964383526,-104.9350503,39.6911005,-104.9339926,39.6911379
-6828,5848,5849,0.19461602791519,0.19461602791519,-104.9339926,39.6911379,-104.9317181,39.6911379
-8104,239,6631,0.0428753899381976,0.0428753899381976,-104.9766938,39.6912137,-104.9763643,39.6909232
-6830,5850,5851,0.0206820775273506,0.0206820775273506,-105.0022921,39.7147654,-105.0025228,39.7148211
-6833,1635,5853,0.0933590693142476,0.0933590693142476,-105.015737,39.714787,-105.016828,39.7148117
-6834,5853,5854,0.015431953306933,0.015431953306933,-105.016828,39.7148117,-105.0170084,39.7148136
-6835,5854,4213,0.0860217230993429,0.0860217230993429,-105.0170084,39.7148136,-105.018014,39.714824
-6836,4213,5855,0.0995731813164872,0.0995731813164872,-105.018014,39.714824,-105.019178,39.714811
-6837,5855,192,0.102944368273924,0.102944368273924,-105.019178,39.714811,-105.0203814,39.7148249
-6838,192,2922,0.0977156398673512,0.0977156398673512,-105.0203814,39.7148249,-105.021523,39.7147919
-6840,5305,1460,0.094441811393562,0.094441811393562,-105.0227504,39.7148051,-105.0238542,39.7148259
-6841,1460,5433,0.104542660065313,0.104542660065313,-105.0238542,39.7148259,-105.0250764,39.7148315
-6843,5856,1868,0.210287860037949,0.210287860037949,-104.9875046,39.7147611,-104.9899631,39.7147612
-6844,1868,4186,0.189585415099738,0.189585415099738,-104.9899631,39.7147612,-104.9921793,39.7147876
-6846,5432,5857,0.104903215241116,0.104903215241116,-105.0250773,39.714991,-105.0263037,39.7149834
-6847,5857,5858,0.105720950651237,0.105720950651237,-105.0263037,39.7149834,-105.0275397,39.7149834
-6848,5858,5859,0.105743888331652,0.105743888331652,-105.0275397,39.7149834,-105.0287757,39.7149636
-6849,5859,4421,0.104252361029944,0.104252361029944,-105.0287757,39.7149636,-105.0299945,39.7149702
-6852,5861,5862,0.0519463280728807,0.0519463280728807,-105.0324691,39.7149773,-105.0330764,39.7149803
-6853,5862,5863,0.0520746976816124,0.0520746976816124,-105.0330764,39.7149803,-105.0336852,39.7149834
-6854,5863,5864,0.053223022054701,0.053223022054701,-105.0336852,39.7149834,-105.0343073,39.7149733
-6855,5864,4317,0.0510499917933612,0.0510499917933612,-105.0343073,39.7149733,-105.034904,39.7149636
-8127,6232,6642,0.179146147134138,0.179146147134138,-104.9985893,39.7257061,-104.9985895,39.7273172
-6857,5865,4505,0.0514748271562017,0.0514748271562017,-105.0355038,39.7149636,-105.0361056,39.7149636
-6858,4505,3608,0.0515275362522861,0.0515275362522861,-105.0361056,39.7149636,-105.036708,39.7149602
-6859,3608,5866,0.050240952107019,0.050240952107019,-105.036708,39.7149602,-105.0372953,39.7149674
-6860,5866,5867,0.0507479546434346,0.0507479546434346,-105.0372953,39.7149674,-105.0378886,39.7149662
-6861,5867,5067,0.0521453287858806,0.0521453287858806,-105.0378886,39.7149662,-105.0384982,39.7149609
-6862,5067,5868,0.051338093574988,0.051338093574988,-105.0384982,39.7149609,-105.0390984,39.7149619
-6863,5868,5869,0.0516032507649761,0.0516032507649761,-105.0390984,39.7149619,-105.0397017,39.7149609
-6864,5869,5870,0.0504748368648883,0.0504748368648883,-105.0397017,39.7149609,-105.0402918,39.7149634
-6865,5870,5871,0.0517263613465763,0.0517263613465763,-105.0402918,39.7149634,-105.0408965,39.7149688
-6866,5871,5872,0.102624635673,0.102624635673,-105.0408965,39.7149688,-105.0420963,39.7149694
-6867,5872,3299,0.100255573957512,0.100255573957512,-105.0420963,39.7149694,-105.0432684,39.7149673
-6869,5873,5874,0.0663164411935832,0.0663164411935832,-105.043719,39.7149652,-105.0444942,39.7149755
-6870,5874,5875,0.0488050085545576,0.0488050085545576,-105.0444942,39.7149755,-105.0450642,39.7149556
-6871,5875,5876,0.702184603750594,0.702184603750594,-105.0450642,39.7149556,-105.0532734,39.7149935
-6874,4525,5880,0.0113022768719971,0.0113022768719971,-105.0251701,39.7632042,-105.0252841,39.7632557
-6875,5880,5881,0.00806516295239482,0.00806516295239482,-105.0252841,39.7632557,-105.0253707,39.7632845
-6876,5881,5882,0.0293119532501538,0.0293119532501538,-105.0253707,39.7632845,-105.0256867,39.7633869
-6877,5882,5883,0.0236481545130312,0.0236481545130312,-105.0256867,39.7633869,-105.025945,39.7634631
-6878,5883,5884,0.0171068759325808,0.0171068759325808,-105.025945,39.7634631,-105.026131,39.7635199
-6879,5884,5885,0.034181660212992,0.034181660212992,-105.026131,39.7635199,-105.0264783,39.7636723
-6880,5885,5887,0.100387180512852,0.100387180512852,-105.0264783,39.7636723,-105.0276119,39.7639084
-6882,4433,5888,0.29159089003557,0.29159089003557,-105.0109506,39.7174666,-105.0109694,39.7148443
-6883,5888,4667,0.102395884967111,0.102395884967111,-105.0109694,39.7148443,-105.011015,39.7139241
-6885,1334,1389,0.100271016747699,0.100271016747699,-105.0110016,39.7130472,-105.011015,39.7121455
-6886,1389,5889,0.10737593920352,0.10737593920352,-105.011015,39.7121455,-105.0110016,39.7111799
-6887,5889,5890,0.105882607972477,0.105882607972477,-105.0110016,39.7111799,-105.0109926,39.7102277
-6888,5890,4707,0.0969202900217867,0.0969202900217867,-105.0109926,39.7102277,-105.010984,39.7093561
-6889,4707,5891,0.0993764614715991,0.0993764614715991,-105.010984,39.7093561,-105.0109775,39.7084624
-6890,5891,5892,0.0973957865151901,0.0973957865151901,-105.0109775,39.7084624,-105.0109755,39.7075865
-6891,5892,5894,0.0203600085186263,0.0203600085186263,-105.0109755,39.7075865,-105.0109744,39.7074034
-6893,5697,5895,0.0355610028885881,0.0355610028885881,-105.010983,39.7065516,-105.0109801,39.7062318
-6894,5895,5896,0.0640153359599377,0.0640153359599377,-105.0109801,39.7062318,-105.0109828,39.7056561
-6896,4960,5897,0.0913255616395888,0.0913255616395888,-105.0109882,39.7047956,-105.0109828,39.7039743
-6897,5897,766,0.157641216727225,0.157641216727225,-105.0109828,39.7039743,-105.0109855,39.7025566
-6898,766,5898,0.395381245817633,0.395381245817633,-105.0109855,39.7025566,-105.0121335,39.6991123
-6899,5898,5899,0.0981801741162947,0.0981801741162947,-105.0121335,39.6991123,-105.0126138,39.6983104
-6900,5899,5900,0.174689811260162,0.174689811260162,-105.0126138,39.6983104,-105.0127248,39.6967417
-6902,2304,156,0.331433636002878,0.331433636002878,-105.0127167,39.6959791,-105.0117244,39.6930979
-6903,156,1720,0.249409879986366,0.249409879986366,-105.0117244,39.6930979,-105.0117515,39.690855
-6904,1720,5901,0.152027484629828,0.152027484629828,-105.0117515,39.690855,-105.0117601,39.6894878
-6906,5902,5903,1.05455714042968,1.05455714042968,-105.0117344,39.688114,-105.011022,39.678646
-6907,491,5904,0.0146888160266615,0.0146888160266615,-104.9407607,39.7492347,-104.9405891,39.7492413
-6908,5904,5905,0.0975979556077691,0.0975979556077691,-104.9405891,39.7492413,-104.9394475,39.7492413
-6910,5906,5907,0.0945117172125904,0.0945117172125904,-104.9383649,39.7492571,-104.9372594,39.7492562
-6911,5907,5908,0.096024253167286,0.096024253167286,-104.9372594,39.7492562,-104.9361363,39.7492673
-6913,1999,3359,0.0933322730569792,0.0933322730569792,-104.9350364,39.749243,-104.9339447,39.7492406
-6914,3359,2753,0.0957031890234733,0.0957031890234733,-104.9339447,39.7492406,-104.9328253,39.7492476
-6915,2753,5909,0.0964098595755736,0.0964098595755736,-104.9328253,39.7492476,-104.9316976,39.7492496
-6916,5909,2279,0.103797892128295,0.103797892128295,-104.9316976,39.7492496,-104.9304837,39.7492674
-6917,2279,3601,0.0979307072208472,0.0979307072208472,-104.9304837,39.7492674,-104.9293385,39.7492475
-6918,3601,5910,0.101687049589159,0.101687049589159,-104.9293385,39.7492475,-104.9281491,39.749241
-6919,5910,2134,0.103076736979193,0.103076736979193,-104.9281491,39.749241,-104.9269439,39.7492673
-6920,2134,5911,0.0994872973933105,0.0994872973933105,-104.9269439,39.7492673,-104.9257802,39.7492674
-6921,5911,5912,0.098205073412404,0.098205073412404,-104.9257802,39.7492674,-104.9246315,39.749269
-6944,5930,5931,0.00713304879374381,0.00713304879374381,-104.979327,39.7304328,-104.9792436,39.7304339
-6922,5912,5913,1.00880972234204,1.00880972234204,-104.9246315,39.749269,-104.9128315,39.7492855
-6923,5914,3921,0.0830806742363044,0.0830806742363044,-104.9646486,39.7304917,-104.9636772,39.7304796
-6924,3921,1014,0.0989804018365723,0.0989804018365723,-104.9636772,39.7304796,-104.96252,39.7304983
-6925,1014,5915,0.0998222515540108,0.0998222515540108,-104.96252,39.7304983,-104.9613527,39.7304983
-6926,5915,5916,0.104139822117371,0.104139822117371,-104.9613527,39.7304983,-104.960135,39.730487
-6927,5916,5023,0.0793768943130485,0.0793768943130485,-104.960135,39.730487,-104.9592069,39.7304983
-6929,5917,5918,0.112165266092601,0.112165266092601,-104.987439,39.7304505,-104.9861275,39.730436
-6930,5918,5919,0.108065845165718,0.108065845165718,-104.9861275,39.730436,-104.9848641,39.7304571
-6931,5919,5920,0.0537421133423824,0.0537421133423824,-104.9848641,39.7304571,-104.9842358,39.7304466
-6932,5920,5921,0.0547683090118863,0.0547683090118863,-104.9842358,39.7304466,-104.9835955,39.730436
-6933,5921,5922,0.0617512871216813,0.0617512871216813,-104.9835955,39.730436,-104.9828734,39.7304382
-6934,5922,5923,0.0505486132029595,0.0505486132029595,-104.9828734,39.7304382,-104.9822823,39.7304399
-6935,5923,5924,0.0485674117985671,0.0485674117985671,-104.9822823,39.7304399,-104.9817146,39.7304273
-6936,5924,5925,0.00910751947845144,0.00910751947845144,-104.9817146,39.7304273,-104.9816081,39.7304277
-6937,5925,3160,0.040672974998317,0.040672974998317,-104.9816081,39.7304277,-104.9811325,39.7304243
-6938,3160,5926,0.0119123696733134,0.0119123696733134,-104.9811325,39.7304243,-104.9809932,39.730424
-6939,5926,5927,0.0422638247579918,0.0422638247579918,-104.9809932,39.730424,-104.9804991,39.7304325
-6940,5927,5928,0.00946046354749371,0.00946046354749371,-104.9804991,39.7304325,-104.9803886,39.7304366
-6941,5928,4978,0.0392608349230605,0.0392608349230605,-104.9803886,39.7304366,-104.9799295,39.7304346
-6942,4978,5929,0.00830374951839601,0.00830374951839601,-104.9799295,39.7304346,-104.9798324,39.7304351
-6943,5929,5930,0.04322033436118,0.04322033436118,-104.9798324,39.7304351,-104.979327,39.7304328
-12307,8642,8643,0.0298175315684779,0.0298175315684779,-105.0079921,39.7544142,-105.0079172,39.7541523
-6945,5931,5932,0.0454758802600548,0.0454758802600548,-104.9792436,39.7304339,-104.9787119,39.7304412
-6946,5932,5933,0.0473060152011751,0.0473060152011751,-104.9787119,39.7304412,-104.9781588,39.7304487
-6947,5933,5934,0.0496187677804403,0.0496187677804403,-104.9781588,39.7304487,-104.9775786,39.7304533
-6948,5934,5935,0.0504477908402203,0.0504477908402203,-104.9775786,39.7304533,-104.9769887,39.7304575
-6949,5935,5050,0.0515402266931002,0.0515402266931002,-104.9769887,39.7304575,-104.976386,39.7304575
-6950,5050,5687,0.0468197679026621,0.0468197679026621,-104.976386,39.7304575,-104.9758385,39.7304575
-6953,5453,982,0.0502364246424336,0.0502364246424336,-104.9746713,39.7304514,-104.9740839,39.7304453
-6954,982,5937,0.0968891441459385,0.0968891441459385,-104.9740839,39.7304453,-104.9729509,39.7304453
-6955,5937,5938,0.0503259455718068,0.0503259455718068,-104.9729509,39.7304453,-104.9723624,39.7304448
-6956,5938,5939,0.0502893520356679,0.0502893520356679,-104.9723624,39.7304448,-104.9717744,39.7304519
-6957,5939,3129,0.0485573864514234,0.0485573864514234,-104.9717744,39.7304519,-104.9712066,39.7304555
-6958,3129,5117,0.0498372694791184,0.0498372694791184,-104.9712066,39.7304555,-104.9706239,39.7304632
-6959,5117,5941,0.0493022558846739,0.0493022558846739,-104.9706239,39.7304632,-104.9700474,39.7304587
-6960,5941,4716,0.0507626244890517,0.0507626244890517,-104.9700474,39.7304587,-104.9694538,39.7304565
-6961,4716,5942,0.142284142826663,0.142284142826663,-104.9694538,39.7304565,-104.96779,39.7304653
-6963,5943,5944,0.01393899602166,0.01393899602166,-104.9407521,39.7310056,-104.9405891,39.731006
-6964,5944,5945,0.364458473389243,0.364458473389243,-104.9405891,39.731006,-104.9363272,39.7310185
-6965,5945,5946,0.0993153072226578,0.0993153072226578,-104.9363272,39.7310185,-104.9351663,39.7310442
-6966,5946,5947,0.101492282005104,0.101492282005104,-104.9351663,39.7310442,-104.9339798,39.731066
-6967,5947,5948,0.101164116161519,0.101164116161519,-104.9339798,39.731066,-104.9327968,39.7310647
-6968,5948,5949,0.102917574680079,0.102917574680079,-104.9327968,39.7310647,-104.9315933,39.7310618
-6969,5949,5950,0.099000654458151,0.099000654458151,-104.9315933,39.7310618,-104.9304356,39.7310602
-6970,5950,5951,0.102683540906436,0.102683540906436,-104.9304356,39.7310602,-104.9292349,39.7310503
-6972,5952,5145,0.0645729302199529,0.0645729302199529,-104.9280748,39.7310598,-104.9273197,39.7310625
-6973,5145,2119,0.0381578888853594,0.0381578888853594,-104.9273197,39.7310625,-104.9268735,39.7310598
-6975,5953,5954,0.100685153983508,0.100685153983508,-104.9257284,39.7310507,-104.924551,39.7310505
-6976,5954,5955,0.195476970380349,0.195476970380349,-104.924551,39.7310505,-104.9222652,39.7310656
-6978,5511,5956,0.144816938742182,0.144816938742182,-104.974688,39.7559741,-104.9735293,39.7569242
-6979,5956,2899,0.0164641943336492,0.0164641943336492,-104.9735293,39.7569242,-104.9733522,39.7569824
-6981,5957,5776,0.0786471324555583,0.0786471324555583,-104.9873834,39.7462062,-104.9880305,39.7457035
-6982,5776,5958,0.142074016754489,0.142074016754489,-104.9880305,39.7457035,-104.9891839,39.7447837
-6984,5959,5960,0.119153206354199,0.119153206354199,-104.9904219,39.7438323,-104.9914093,39.7430761
-6985,5960,5961,0.0270871445537288,0.0270871445537288,-104.9914093,39.7430761,-104.9916357,39.7429057
-6986,5961,5962,0.145839788109516,0.145839788109516,-104.9916357,39.7429057,-104.9928478,39.7419829
-6987,5962,5963,0.00712354730707594,0.00712354730707594,-104.9928478,39.7419829,-104.9929071,39.7419379
-6988,5963,5964,0.140131025523345,0.140131025523345,-104.9929071,39.7419379,-104.9940638,39.7410451
-6989,5964,5965,0.140225597174846,0.140225597174846,-104.9940638,39.7410451,-104.9952082,39.7401418
-6990,5965,4943,0.0161740048379517,0.0161740048379517,-104.9952082,39.7401418,-104.9952896,39.7400105
-6992,5354,5966,0.0365984296224293,0.0365984296224293,-104.9856252,39.7476126,-104.9852928,39.74782
-8275,6722,2311,0.00867549185460531,0.00867549185460531,-105.0112278,39.7314296,-105.0112958,39.7314875
-6993,5966,5967,0.107476511645453,0.107476511645453,-104.9852928,39.74782,-104.9844118,39.7485095
-6994,5967,5968,0.147256677185358,0.147256677185358,-104.9844118,39.7485095,-104.9831894,39.7494425
-6995,5968,5969,0.146721278462678,0.146721278462678,-104.9831894,39.7494425,-104.98198,39.7503787
-6996,5969,5361,0.147170892096024,0.147170892096024,-104.98198,39.7503787,-104.9807486,39.7513036
-6997,5361,2684,0.148391053722383,0.148391053722383,-104.9807486,39.7513036,-104.9795298,39.7522538
-6999,5970,807,0.0217813759552713,0.0217813759552713,-104.9783626,39.753192,-104.9781222,39.7532569
-7001,5971,4332,0.0931508534748433,0.0931508534748433,-104.978267,39.7840741,-104.9771769,39.7840807
-7002,4332,5038,0.0953468172233397,0.0953468172233397,-104.9771769,39.7840807,-104.9760611,39.7840873
-7004,5972,5857,0.176936009900748,0.176936009900748,-105.0263295,39.7165745,-105.0263037,39.7149834
-7005,5857,1300,0.178425403895618,0.178425403895618,-105.0263037,39.7149834,-105.0263381,39.713379
-7006,1300,5973,0.247668336727678,0.247668336727678,-105.0263381,39.713379,-105.0263219,39.7111517
-7008,5974,5975,0.19695744936537,0.19695744936537,-105.0263476,39.6984996,-105.0263805,39.6967285
-7010,1502,4378,0.103568243200344,0.103568243200344,-105.0263295,39.6949026,-105.0263037,39.6939714
-7012,5976,2341,0.175343347413509,0.175343347413509,-104.9257736,39.717827,-104.9257718,39.7194039
-7013,2341,5977,0.176971375987128,0.176971375987128,-104.9257718,39.7194039,-104.9257568,39.7209954
-7014,5977,4784,0.243234077821538,0.243234077821538,-104.9257568,39.7209954,-104.9260932,39.7231675
-7015,4784,5979,0.240492752461347,0.240492752461347,-104.9260932,39.7231675,-104.9260981,39.7253303
-7016,5979,5980,0.0330257004550899,0.0330257004550899,-104.9260981,39.7253303,-104.9261008,39.7256273
-7017,5980,5981,0.271622774119548,0.271622774119548,-104.9261008,39.7256273,-104.9260461,39.7280697
-7018,5981,5982,0.132843712894559,0.132843712894559,-104.9260461,39.7280697,-104.9260654,39.7292643
-7020,5983,5984,0.0865708728240205,0.0865708728240205,-104.9258169,39.7793462,-104.9257912,39.7801245
-7021,5984,5985,0.115162845747273,0.115162845747273,-104.9257912,39.7801245,-104.9258084,39.7811601
-7023,758,5986,0.228351368086018,0.228351368086018,-104.9258629,39.7765766,-104.9258093,39.7786298
-7026,5146,5157,0.0344312485594002,0.0344312485594002,-104.9257328,39.7300276,-104.9257489,39.730337
-7027,5157,5953,0.0793791794144798,0.0793791794144798,-104.9257489,39.730337,-104.9257284,39.7310507
-7028,5953,2240,0.201141072863101,0.201141072863101,-104.9257284,39.7310507,-104.925734,39.7328596
-7029,2240,4913,0.204101361959596,0.204101361959596,-104.925734,39.7328596,-104.9257471,39.7346951
-7031,5988,5989,0.202410682591791,0.202410682591791,-104.9257168,39.7364786,-104.9257287,39.7382989
-7032,5989,5990,0.204104998697393,0.204104998697393,-104.9257287,39.7382989,-104.9257974,39.7401337
-7033,5990,689,0.195952399265096,0.195952399265096,-104.9257974,39.7401337,-104.9257594,39.7418957
-7034,689,1980,0.165723809852799,0.165723809852799,-104.9257594,39.7418957,-104.9258091,39.7433856
-7035,1980,1965,0.0389234534803582,0.0389234534803582,-104.9258091,39.7433856,-104.925792,39.7437354
-7036,1965,5991,0.211595737081182,0.211595737081182,-104.925792,39.7437354,-104.9258205,39.7456382
-7037,5991,2477,0.19787541766453,0.19787541766453,-104.9258205,39.7456382,-104.9258057,39.7474177
-7039,5911,5992,0.199600309761125,0.199600309761125,-104.9257802,39.7492674,-104.9257974,39.7510624
-7040,5992,802,0.200311937766574,0.200311937766574,-104.9257974,39.7510624,-104.9257802,39.7528638
-7041,802,5993,0.204076160777324,0.204076160777324,-104.9257802,39.7528638,-104.9257827,39.7546991
-7042,5993,5994,0.207502868601311,0.207502868601311,-104.9257827,39.7546991,-104.925772,39.7565652
-7043,5994,5995,0.201507936335064,0.201507936335064,-104.925772,39.7565652,-104.9257668,39.7583774
-18161,10256,2170,0.118696748630409,0.118696748630409,-105.0141119,39.7874307,-105.0146867,39.7884025
-7044,5995,3065,0.198422916856477,0.198422916856477,-104.9257668,39.7583774,-104.9257357,39.7601617
-7045,3065,5996,0.187785068593932,0.187785068593932,-104.9257357,39.7601617,-104.9257688,39.7618503
-7048,5998,1151,0.103522476706234,0.103522476706234,-104.9257702,39.7628567,-104.9257702,39.7637877
-7049,1151,5999,0.201885859106491,0.201885859106491,-104.9257702,39.7637877,-104.9257746,39.7656033
-7050,5999,2774,0.203030941446461,0.203030941446461,-104.9257746,39.7656033,-104.9257496,39.7674291
-7051,2774,6000,0.200151361396455,0.200151361396455,-104.9257496,39.7674291,-104.9257444,39.7692291
-7053,4375,2856,0.142504312909228,0.142504312909228,-105.0014998,39.6989095,-105.0031649,39.6989425
-7054,2856,6001,0.0983652484533134,0.0983652484533134,-105.0031649,39.6989425,-105.0043064,39.6990482
-7055,6001,6002,0.0964239306891795,0.0964239306891795,-105.0043064,39.6990482,-105.0054308,39.6991076
-7056,6002,6003,0.098310599923513,0.098310599923513,-105.0054308,39.6991076,-105.0065799,39.6991077
-7057,6003,1761,0.137700629072643,0.137700629072643,-105.0065799,39.6991077,-105.0081893,39.6990933
-7058,1761,6004,0.100513600298964,0.100513600298964,-105.0081893,39.6990933,-105.0093641,39.6991016
-7059,6004,3822,0.0995871831820294,0.0995871831820294,-105.0093641,39.6991016,-105.0105281,39.6990962
-7060,3822,5898,0.137360760654976,0.137360760654976,-105.0105281,39.6990962,-105.0121335,39.6991123
-7061,5898,6005,0.132447355715672,0.132447355715672,-105.0121335,39.6991123,-105.0128712,39.7001595
-7063,1597,1654,0.133194225128182,0.133194225128182,-105.0140815,39.6999614,-105.015638,39.699987
-7064,1654,6006,0.125247640008909,0.125247640008909,-105.015638,39.699987,-105.0169911,39.700417
-7065,6006,4209,0.0896990215886268,0.0896990215886268,-105.0169911,39.700417,-105.0180383,39.7004566
-7067,6007,200,0.0969312782671765,0.0969312782671765,-105.0192141,39.7004566,-105.0203471,39.7004566
-7069,6008,6009,0.237519218216988,0.237519218216988,-104.930634,39.692987,-104.9317136,39.6910191
-7071,6010,700,0.202130694041649,0.202130694041649,-104.9453987,39.7401427,-104.9453488,39.7419601
-7072,700,6011,0.200920157017241,0.200920157017241,-104.9453488,39.7419601,-104.9453382,39.743767
-7074,1752,6012,0.41064210801689,0.41064210801689,-104.944277,39.787439,-104.9452877,39.7838286
-7076,6013,898,0.069285729612221,0.069285729612221,-104.945032,39.7638499,-104.9450302,39.764473
-7079,5168,6014,0.173942254032852,0.173942254032852,-104.9449622,39.716238,-104.9449634,39.7178023
-7080,6014,2356,0.178647695597581,0.178647695597581,-104.9449634,39.7178023,-104.9449537,39.7194089
-7081,2356,4157,0.173431342052579,0.173431342052579,-104.9449537,39.7194089,-104.9449591,39.7209686
-7082,4157,4744,0.174265758482508,0.174265758482508,-104.9449591,39.7209686,-104.9449996,39.7225355
-7083,4744,6015,0.17586665041424,0.17586665041424,-104.9449996,39.7225355,-104.9449591,39.7241168
-7084,6015,6017,0.166030537226764,0.166030537226764,-104.9449591,39.7241168,-104.9450503,39.7256083
-7085,6017,1206,0.168368552768231,0.168368552768231,-104.9450503,39.7256083,-104.9450941,39.7271221
-7086,1206,6018,0.0222310506019077,0.0222310506019077,-104.9450941,39.7271221,-104.9450985,39.727322
-7087,6018,3777,0.199517083270274,0.199517083270274,-104.9450985,39.727322,-104.9450973,39.7291163
-7088,3777,6019,0.15332994885881,0.15332994885881,-104.9450973,39.7291163,-104.9450856,39.7304952
-7089,6019,956,0.176955920540622,0.176955920540622,-104.9450856,39.7304952,-104.9450895,39.7320866
-7090,956,6020,0.174665514088028,0.174665514088028,-104.9450895,39.7320866,-104.9450945,39.7336574
-7091,6020,4894,0.161958937862416,0.161958937862416,-104.9450945,39.7336574,-104.945082,39.7351139
-7092,4894,6021,0.18390531780345,0.18390531780345,-104.945082,39.7351139,-104.9450808,39.7367678
-7093,6021,5492,0.174079428498661,0.174079428498661,-104.9450808,39.7367678,-104.9450674,39.7383333
-7094,5492,6022,0.20029370655809,0.20029370655809,-104.9450674,39.7383333,-104.9450447,39.7401345
-7096,3037,6023,0.213499262828813,0.213499262828813,-104.9449805,39.75904,-104.9449634,39.76096
-7098,3578,5645,0.141952777714747,0.141952777714747,-104.9452895,39.7544277,-104.9452967,39.7557043
-8369,876,4464,0.138360134725968,0.138360134725968,-104.968419,39.7645054,-104.9684223,39.7657497
-7100,4359,4350,0.0475473932483631,0.0475473932483631,-104.9453012,39.7565195,-104.9453036,39.7569471
-7101,4350,1533,0.0507609705805194,0.0507609705805194,-104.9453036,39.7569471,-104.9453062,39.7574036
-7102,1533,6024,0.087689125787215,0.087689125787215,-104.9453062,39.7574036,-104.9453106,39.7581922
-7103,6024,3036,0.0935380351023268,0.0935380351023268,-104.9453106,39.7581922,-104.9453153,39.7590334
-7105,2396,6026,0.14381066174273,0.14381066174273,-104.9452638,39.7738711,-104.9453067,39.775164
-7107,1270,4534,0.202622361744701,0.202622361744701,-105.0204072,39.7193738,-105.0227761,39.719354
-7108,4534,6027,0.199229442979025,0.199229442979025,-105.0227761,39.719354,-105.0251054,39.7193679
-7110,6028,6029,0.912875631293974,0.912875631293974,-104.9959579,39.7817094,-104.9855966,39.7797106
-7112,1075,2498,0.0816070075181441,0.0816070075181441,-105.0092438,39.7854664,-105.0101988,39.7854584
-7113,2498,6030,0.0415787253165096,0.0415787253165096,-105.0101988,39.7854584,-105.0106854,39.7854577
-7114,6030,6031,0.0433303737265817,0.0433303737265817,-105.0106854,39.7854577,-105.0111925,39.7854571
-7116,6032,6033,0.0508682336735258,0.0508682336735258,-105.0111965,39.7856112,-105.0117918,39.7856148
-7117,6033,1215,0.0487831269807967,0.0487831269807967,-105.0117918,39.7856148,-105.0123627,39.7856181
-7118,1215,6034,0.0505678656124617,0.0505678656124617,-105.0123627,39.7856181,-105.0129545,39.7856166
-7119,6034,4787,0.0490298276079548,0.0490298276079548,-105.0129545,39.7856166,-105.0135283,39.7856151
-7120,4787,6035,0.0502099740409632,0.0502099740409632,-105.0135283,39.7856151,-105.0141159,39.7856183
-7121,6035,2168,0.0503125854793333,0.0503125854793333,-105.0141159,39.7856183,-105.0147047,39.7856216
-7122,2168,6036,0.0482434584483166,0.0482434584483166,-105.0147047,39.7856216,-105.0152693,39.7856221
-17215,8403,8420,0.200752773596098,0.200752773596098,-104.9775319,39.7038582,-104.9774882,39.7056633
-7123,6036,6037,0.0486536038515005,0.0486536038515005,-105.0152693,39.7856221,-105.0158387,39.7856226
-7125,6038,6039,0.0499795151912972,0.0499795151912972,-105.0164173,39.7856269,-105.0170022,39.7856234
-7126,6039,6040,0.0491412278477837,0.0491412278477837,-105.0170022,39.7856234,-105.0175773,39.7856256
-7127,6040,6041,0.0497771068440158,0.0497771068440158,-105.0175773,39.7856256,-105.0181598,39.7856198
-7128,6041,6042,0.0494653664650395,0.0494653664650395,-105.0181598,39.7856198,-105.0187387,39.7856192
-7129,6042,4660,0.0491491990718702,0.0491491990718702,-105.0187387,39.7856192,-105.0193139,39.7856187
-7130,4660,6043,0.0497609288638681,0.0497609288638681,-105.0193139,39.7856187,-105.0198962,39.7856251
-7131,6043,1290,0.0489747324983769,0.0489747324983769,-105.0198962,39.7856251,-105.0204693,39.7856314
-7133,6044,4562,0.0495973986652376,0.0495973986652376,-105.0210575,39.7856258,-105.0216379,39.7856202
-7134,4562,6045,0.0489640905184848,0.0489640905184848,-105.0216379,39.7856202,-105.0222109,39.785625
-7135,6045,6046,0.0491691479666822,0.0491691479666822,-105.0222109,39.785625,-105.0227863,39.7856298
-7136,6046,6047,0.0507578186257211,0.0507578186257211,-105.0227863,39.7856298,-105.0233803,39.7856255
-7137,6047,2730,0.0500913644840885,0.0500913644840885,-105.0233803,39.7856255,-105.0239665,39.7856212
-7138,2730,6048,0.0486937991070737,0.0486937991070737,-105.0239665,39.7856212,-105.0245363,39.7856143
-7139,6048,6049,0.0563508416708434,0.0563508416708434,-105.0245363,39.7856143,-105.0251957,39.7856063
-7140,6049,6050,0.0543668616299433,0.0543668616299433,-105.0251957,39.7856063,-105.0258319,39.7856132
-7141,6050,3755,0.049786406684993,0.049786406684993,-105.0258319,39.7856132,-105.0264145,39.7856195
-7142,3755,6051,0.0495857892809515,0.0495857892809515,-105.0264145,39.7856195,-105.0269948,39.7856221
-7143,6051,6052,0.0496881410470813,0.0496881410470813,-105.0269948,39.7856221,-105.0275763,39.7856198
-7144,6052,6053,0.0491149994031363,0.0491149994031363,-105.0275763,39.7856198,-105.0281511,39.7856201
-18545,5563,7539,0.0787059485791879,0.0787059485791879,-105.0440188,39.7652831,-105.0449396,39.7652893
-7145,6053,6054,0.0498540025598143,0.0498540025598143,-105.0281511,39.7856201,-105.0287345,39.7856259
-7146,6054,6055,0.0489875409651698,0.0489875409651698,-105.0287345,39.7856259,-105.0293078,39.7856235
-7147,6055,4007,0.0499802866726516,0.0499802866726516,-105.0293078,39.7856235,-105.0298927,39.7856278
-7148,4007,6056,0.0488162842829032,0.0488162842829032,-105.0298927,39.7856278,-105.030464,39.7856261
-7149,6056,6057,0.0489359547659716,0.0489359547659716,-105.030464,39.7856261,-105.0310367,39.7856243
-7150,6057,6058,0.0509862761511403,0.0509862761511403,-105.0310367,39.7856243,-105.0316334,39.7856243
-7151,6058,1391,0.0507897478531174,0.0507897478531174,-105.0316334,39.7856243,-105.0322278,39.7856243
-7152,1391,6059,0.0484575520219378,0.0484575520219378,-105.0322278,39.7856243,-105.0327949,39.7856263
-7154,6060,6061,0.051268887373703,0.051268887373703,-105.0333562,39.7856282,-105.0339562,39.7856259
-7155,6061,3440,0.0523540538479921,0.0523540538479921,-105.0339562,39.7856259,-105.0345689,39.7856236
-7156,3440,6062,0.0526542821957606,0.0526542821957606,-105.0345689,39.7856236,-105.0351851,39.7856197
-7157,6062,5722,0.0500652354639954,0.0500652354639954,-105.0351851,39.7856197,-105.035771,39.7856159
-7158,5722,6063,0.0491749564449066,0.0491749564449066,-105.035771,39.7856159,-105.0363465,39.7856148
-7159,6063,6064,0.0490553316653512,0.0490553316653512,-105.0363465,39.7856148,-105.0369206,39.7856137
-7160,6064,6065,0.0504053225202572,0.0504053225202572,-105.0369206,39.7856137,-105.0375105,39.7856129
-7161,6065,6066,0.0491577785316978,0.0491577785316978,-105.0375105,39.7856129,-105.0380858,39.7856122
-7162,6066,6067,0.0500917004504544,0.0500917004504544,-105.0380858,39.7856122,-105.038672,39.7856168
-7163,6067,6068,0.0487330457346556,0.0487330457346556,-105.038672,39.7856168,-105.0392423,39.7856213
-7164,6068,6069,0.0500468552276867,0.0500468552276867,-105.0392423,39.7856213,-105.039828,39.7856193
-7165,6069,1089,0.0473039342434908,0.0473039342434908,-105.039828,39.7856193,-105.0403816,39.7856175
-7166,1089,6070,0.0519349767204956,0.0519349767204956,-105.0403816,39.7856175,-105.0409894,39.7856189
-7167,6070,6071,0.0483547253107021,0.0483547253107021,-105.0409894,39.7856189,-105.0415553,39.7856202
-7169,6072,3860,0.0495593243927177,0.0495593243927177,-105.0421669,39.7856198,-105.0427469,39.7856195
-7170,3860,6073,0.0493012970703545,0.0493012970703545,-105.0427469,39.7856195,-105.0433238,39.7856121
-7171,6073,5585,0.0529959751032204,0.0529959751032204,-105.0433238,39.7856121,-105.043944,39.7856159
-7173,1003,5222,0.108094382628624,0.108094382628624,-104.987571,39.7855779,-104.988836,39.785586
-7175,6074,3213,0.169273308004073,0.169273308004073,-104.962329,39.712563,-104.9628505,39.7110945
-7176,3213,6075,0.200540081035548,0.200540081035548,-104.9628505,39.7110945,-104.9628492,39.709291
-7177,6075,1924,0.199718283006537,0.199718283006537,-104.9628492,39.709291,-104.962875,39.707495
-7178,1924,6076,0.202212418704144,0.202212418704144,-104.962875,39.707495,-104.9628366,39.7056767
-7179,6076,3268,0.201184980777767,0.201184980777767,-104.9628366,39.7056767,-104.9628366,39.7038674
-7180,3268,6077,0.201398824177077,0.201398824177077,-104.9628366,39.7038674,-104.9628485,39.7020562
-7181,6077,81,0.202519482529809,0.202519482529809,-104.9628485,39.7020562,-104.9628455,39.7002349
-7182,81,3517,0.205035908609294,0.205035908609294,-104.9628455,39.7002349,-104.9628742,39.6983911
-7183,3517,4259,0.201561198640626,0.201561198640626,-104.9628742,39.6983911,-104.9628968,39.6965785
-7184,4259,6078,0.201877222241407,0.201877222241407,-104.9628968,39.6965785,-104.9629093,39.694763
-7185,6078,6079,0.198020897047098,0.198020897047098,-104.9629093,39.694763,-104.9629257,39.6929822
-7186,6079,5828,0.204359521871182,0.204359521871182,-104.9629257,39.6929822,-104.9629082,39.6911444
-7187,5828,6080,0.203452288011347,0.203452288011347,-104.9629082,39.6911444,-104.9628739,39.6893149
-7188,6080,6081,0.199577893436046,0.199577893436046,-104.9628739,39.6893149,-104.962857,39.6875201
-7189,6082,4198,0.0554105901874734,0.0554105901874734,-105.007037,39.720887,-105.007437,39.721279
-8462,1578,6834,0.296770354889592,0.296770354889592,-105.0401129,39.6876594,-105.0401263,39.6849905
-7190,4198,6083,0.479532197769768,0.479532197769768,-105.007437,39.721279,-105.0092748,39.7253533
-7193,6085,3417,0.199987779646285,0.199987779646285,-105.0322636,39.7629835,-105.0346033,39.7629904
-7195,5561,6086,0.0785728419075768,0.0785728419075768,-105.0440091,39.7630203,-105.0449283,39.7630131
-7196,6086,6087,0.711200705359908,0.711200705359908,-105.0449283,39.7630131,-105.0532488,39.7629903
-7197,6088,6089,0.0569381576865727,0.0569381576865727,-105.0111515,39.7608094,-105.0118176,39.7608059
-7199,1755,4797,0.0569796757564415,0.0569796757564415,-105.0124792,39.7608073,-105.0131458,39.7608063
-7200,4797,6090,0.0568688820659326,0.0568688820659326,-105.0131458,39.7608063,-105.0138111,39.7608043
-7201,6090,2163,0.0576467707798926,0.0576467707798926,-105.0138111,39.7608043,-105.0144855,39.7608022
-7202,2163,6091,0.115287318699314,0.115287318699314,-105.0144855,39.7608022,-105.0158342,39.7607944
-7204,4029,6092,0.199820514844545,0.199820514844545,-105.0299179,39.761227,-105.0322556,39.7612283
-7205,6092,3413,0.201407533266255,0.201407533266255,-105.0322556,39.7612283,-105.0346118,39.761242
-7207,6093,6094,0.0604203300865654,0.0604203300865654,-105.0268612,39.760858,-105.027568,39.7608513
-7208,6094,6095,0.0494745769978518,0.0494745769978518,-105.027568,39.7608513,-105.0281468,39.7608514
-7209,6095,6096,0.0926701881064251,0.0926701881064251,-105.0281468,39.7608514,-105.0292309,39.760844
-7210,6096,4028,0.05825540400242,0.05825540400242,-105.0292309,39.760844,-105.0299124,39.7608394
-7212,5558,6097,0.589453817263917,0.589453817263917,-105.0440044,39.7612115,-105.0509004,39.761199
-7213,111,6098,0.0840698350347185,0.0840698350347185,-104.929111,39.709605,-104.928134,39.709687
-7214,6098,5387,0.102649580636379,0.102649580636379,-104.928134,39.709687,-104.926934,39.709687
-7216,6099,4834,0.0618019179836103,0.0618019179836103,-104.9444906,39.7093483,-104.9437682,39.7093402
-7217,4834,6100,0.103506880889302,0.103506880889302,-104.9437682,39.7093402,-104.9425586,39.7093158
-7218,6100,6101,0.102436270515026,0.102436270515026,-104.9425586,39.7093158,-104.9413615,39.709292
-7219,6101,6102,0.0462582791506537,0.0462582791506537,-104.9413615,39.709292,-104.9408208,39.7092854
-7221,5388,6103,0.0951666989097628,0.0951666989097628,-104.926934,39.709287,-104.9258215,39.7092917
-7222,6103,6104,0.103533109860882,0.103533109860882,-104.9258215,39.7092917,-104.9246113,39.7092785
-17793,6179,8402,0.062258154453335,0.062258154453335,-104.9873985,39.7569664,-104.9873999,39.7564065
-7223,6104,6105,1.01266363478673,1.01266363478673,-104.9246113,39.7092785,-104.9127732,39.7093215
-7226,6107,6108,0.0985711721031886,0.0985711721031886,-104.9851845,39.7093159,-104.9840322,39.7093206
-7227,6108,6109,0.106459269312792,0.106459269312792,-104.9840322,39.7093206,-104.9827877,39.709314
-7228,6109,6110,0.106833918076069,0.106833918076069,-104.9827877,39.709314,-104.9815389,39.7093013
-7229,6110,3622,0.0989181087898918,0.0989181087898918,-104.9815389,39.7093013,-104.980383,39.7092759
-7230,3622,6111,0.098886772683552,0.098886772683552,-104.980383,39.7092759,-104.979227,39.7092785
-7231,6111,6112,0.0498651872917774,0.0498651872917774,-104.979227,39.7092785,-104.9786441,39.7092737
-7232,6112,6113,0.0465544361472323,0.0465544361472323,-104.9786441,39.7092737,-104.9780999,39.7092693
-7233,6113,6114,0.048644459525012,0.048644459525012,-104.9780999,39.7092693,-104.9775313,39.7092628
-7234,6114,1769,0.0504837415599517,0.0504837415599517,-104.9775313,39.7092628,-104.9769412,39.7092561
-7235,1769,4488,0.0559949291466801,0.0559949291466801,-104.9769412,39.7092561,-104.9762867,39.7092645
-7236,4488,6115,0.0469382916231929,0.0469382916231929,-104.9762867,39.7092645,-104.9757389,39.7092889
-7237,6115,4839,0.0486148679353184,0.0486148679353184,-104.9757389,39.7092889,-104.9751709,39.7092743
-7239,1519,5280,0.0508144170388461,0.0508144170388461,-104.9745633,39.7092771,-104.9739693,39.7092817
-7240,5280,6116,0.0496680994860777,0.0496680994860777,-104.9739693,39.7092817,-104.9733887,39.7092862
-7241,6116,1086,0.0854394240121282,0.0854394240121282,-104.9733887,39.7092862,-104.9723899,39.7092881
-7244,6118,5426,0.102968153598516,0.102968153598516,-104.9710442,39.7092903,-104.9698407,39.7093079
-7245,5426,6119,0.101169119900675,0.101169119900675,-104.9698407,39.7093079,-104.9686581,39.7092969
-7246,6119,2048,0.10059076820208,0.10059076820208,-104.9686581,39.7092969,-104.9674823,39.7092837
-7247,2048,6120,0.0997250287478783,0.0997250287478783,-104.9674823,39.7092837,-104.9663168,39.7093042
-7248,6120,6121,0.100591265363907,0.100591265363907,-104.9663168,39.7093042,-104.9651409,39.7093108
-7249,6121,6122,0.0474195280765072,0.0474195280765072,-104.9651409,39.7093108,-104.9645867,39.7093011
-7250,6122,3477,0.0495243305794908,0.0495243305794908,-104.9645867,39.7093011,-104.9640079,39.709291
-7251,3477,6123,0.0472960657562571,0.0472960657562571,-104.9640079,39.709291,-104.963455,39.709291
-7252,6123,6075,0.0518212274102399,0.0518212274102399,-104.963455,39.709291,-104.9628492,39.709291
-7253,6075,6124,0.0477720158174774,0.0477720158174774,-104.9628492,39.709291,-104.9622908,39.7092845
-7254,6124,3692,0.0491494225474026,0.0491494225474026,-104.9622908,39.7092845,-104.9617163,39.7092778
-7255,3692,6125,0.0492733746042409,0.0492733746042409,-104.9617163,39.7092778,-104.9611403,39.709281
-7256,6125,4567,0.0513179295413005,0.0513179295413005,-104.9611403,39.709281,-104.9605404,39.7092844
-7257,4567,6126,0.104996585237884,0.104996585237884,-104.9605404,39.7092844,-104.959313,39.709291
-7259,6127,6128,0.202552708883543,0.202552708883543,-105.0286529,39.7293168,-105.0286516,39.7311384
-7260,6128,6129,0.200575382409089,0.200575382409089,-105.0286516,39.7311384,-105.0286784,39.7329421
-7261,6129,6130,0.200851528697639,0.200851528697639,-105.0286784,39.7329421,-105.0286757,39.7347484
-7263,6131,4042,0.178407205955933,0.178407205955933,-105.0287757,39.7165547,-105.0287585,39.7181591
-7264,4042,6132,0.176658257473219,0.176658257473219,-105.0287585,39.7181591,-105.0287845,39.7197477
-7265,6132,6133,0.173893747367395,0.173893747367395,-105.0287845,39.7197477,-105.0288029,39.7213115
-7266,6133,1832,0.00321363581065808,0.00321363581065808,-105.0288029,39.7213115,-105.0288032,39.7213404
-7267,1832,6134,0.0979518830790181,0.0979518830790181,-105.0288032,39.7213404,-105.0288059,39.7222213
-7268,6134,2577,0.0768544895315019,0.0768544895315019,-105.0288059,39.7222213,-105.0288186,39.7229124
-7270,2974,713,0.0553033256449361,0.0553033256449361,-105.0281658,39.7584695,-105.0281562,39.7589668
-7271,713,1884,0.049816225531446,0.049816225531446,-105.0281562,39.7589668,-105.0281527,39.7594148
-7272,1884,269,0.0489259588819734,0.0489259588819734,-105.0281527,39.7594148,-105.0281511,39.7598548
-7273,269,6135,0.049929244786193,0.049929244786193,-105.0281511,39.7598548,-105.0281572,39.7603038
-7274,6135,6095,0.0608968307992014,0.0608968307992014,-105.0281572,39.7603038,-105.0281468,39.7608514
-7276,1819,6136,0.206807888451467,0.206807888451467,-105.0286551,39.7269539,-105.0288404,39.7288083
-7278,6137,6138,0.137211297869344,0.137211297869344,-105.0287666,39.7560413,-105.0287838,39.7572752
-7280,6139,4576,0.0888580713995718,0.0888580713995718,-105.0283324,39.7407242,-105.0283618,39.741523
-7281,4576,6140,0.134023429450374,0.134023429450374,-105.0283618,39.741523,-105.0283644,39.7427283
-7282,6140,5292,0.135037120828343,0.135037120828343,-105.0283644,39.7427283,-105.028373,39.7439427
-7283,5292,6141,0.134292125855752,0.134292125855752,-105.028373,39.7439427,-105.0283644,39.7451504
-7285,11,6142,0.134290112908847,0.134290112908847,-105.0283851,39.746369,-105.0283851,39.7475767
-7286,6142,6143,0.134379347336523,0.134379347336523,-105.0283851,39.7475767,-105.0283819,39.7487852
-7287,6143,6144,0.135319045428869,0.135319045428869,-105.0283819,39.7487852,-105.0283496,39.7500019
-7288,6144,6145,0.133823509557072,0.133823509557072,-105.0283496,39.7500019,-105.0283535,39.7512054
-7289,6145,6146,0.133595456488811,0.133595456488811,-105.0283535,39.7512054,-105.0283964,39.7524064
-7290,6146,6147,0.132813208199385,0.132813208199385,-105.0283964,39.7524064,-105.0283879,39.7536008
-7291,6147,6148,0.135903166352965,0.135903166352965,-105.0283879,39.7536008,-105.0283827,39.754823
-7293,6149,5532,0.117263436099258,0.117263436099258,-105.0287889,39.7729931,-105.028838,39.774047
-7294,5532,6150,0.292646155170772,0.292646155170772,-105.028838,39.774047,-105.028752,39.776678
-7296,4069,6054,0.143532163506992,0.143532163506992,-105.0287428,39.7843351,-105.0287345,39.7856259
-7297,6054,5794,0.200517814130868,0.200517814130868,-105.0287345,39.7856259,-105.0287341,39.7874292
-7299,6151,6152,0.134234537479531,0.134234537479531,-105.0283314,39.7766715,-105.0283323,39.7778787
-7300,6152,2491,0.134965193585355,0.134965193585355,-105.0283323,39.7778787,-105.0283152,39.7790924
-7301,2491,2836,0.132191750515313,0.132191750515313,-105.0283152,39.7790924,-105.028326,39.7802812
-7303,2760,6153,0.17786816992516,0.17786816992516,-104.9328153,39.7162508,-104.9328092,39.7146512
-7304,6153,3104,0.174733256162163,0.174733256162163,-104.9328092,39.7146512,-104.9328006,39.7130798
-7305,3104,6156,0.194828104098244,0.194828104098244,-104.9328006,39.7130798,-104.932787,39.7113277
-7307,62,3549,0.192897189560382,0.192897189560382,-104.932829,39.700178,-104.932762,39.698444
-7309,191,5855,0.144500472019434,0.144500472019434,-105.02039,39.7157163,-105.019178,39.714811
-7313,1335,6158,0.164940728280041,0.164940728280041,-105.012511,39.712992,-105.01431,39.712458
-7315,3709,719,0.105637457999026,0.105637457999026,-105.002935,39.7760646,-105.004171,39.7760778
-7317,3184,6159,0.175088076753778,0.175088076753778,-104.9555361,39.7016193,-104.9571463,39.7006474
-7318,6159,91,0.0479220492178455,0.0479220492178455,-104.9571463,39.7006474,-104.9570295,39.7002259
-7319,91,3527,0.203258724621779,0.203258724621779,-104.9570295,39.7002259,-104.956949,39.698399
-7320,3527,6160,0.201096029386997,0.201096029386997,-104.956949,39.698399,-104.9569485,39.6965905
-7321,6160,6161,0.201913621123293,0.201913621123293,-104.9569485,39.6965905,-104.9569665,39.6947747
-7323,6162,5834,0.203525395170747,0.203525395170747,-104.9569515,39.6929673,-104.9569687,39.691137
-7324,5834,6163,0.200952914390398,0.200952914390398,-104.9569687,39.691137,-104.9569776,39.6893298
-7326,3276,3651,0.182839298131176,0.182839298131176,-104.9569423,39.703847,-104.9569509,39.7022027
-7329,6166,4285,0.103763551261197,0.103763551261197,-104.9697218,39.7719933,-104.9705937,39.7726427
-7331,1617,6167,0.103830241851319,0.103830241851319,-104.9723691,39.774003,-104.9732245,39.7746661
-7333,6168,2159,0.117895446926253,0.117895446926253,-105.0158387,39.7571855,-105.0144598,39.7572068
-7334,2159,4795,0.11289998607803,0.11289998607803,-105.0144598,39.7572068,-105.0131391,39.7571989
-7335,4795,1226,0.113625921506999,0.113625921506999,-105.0131391,39.7571989,-105.01181,39.7571845
-7337,4401,4400,0.117696624021516,0.117696624021516,-104.9626217,39.7238487,-104.961317,39.723512
-7341,2320,4278,0.147648925220672,0.147648925220672,-104.9733543,39.7679348,-104.9745038,39.7669436
-7342,4278,6174,0.145039413918761,0.145039413918761,-104.9745038,39.7669436,-104.9757035,39.7660211
-7343,6174,633,0.147839808469135,0.147839808469135,-104.9757035,39.7660211,-104.9769309,39.7650843
-7344,633,5324,0.144274087604939,0.144274087604939,-104.9769309,39.7650843,-104.9781151,39.7641597
-7345,5324,2036,0.144878759704946,0.144878759704946,-104.9781151,39.7641597,-104.9793013,39.763229
-7346,2036,6175,0.146765627629388,0.146765627629388,-104.9793013,39.763229,-104.9805241,39.7623024
-7347,6175,5506,0.146988764364424,0.146988764364424,-104.9805241,39.7623024,-104.9817097,39.7613449
-7349,4458,6176,0.146285529633972,0.146285529633972,-104.9829353,39.7604242,-104.9841486,39.7594964
-7350,6176,6177,0.143815084290611,0.143815084290611,-104.9841486,39.7594964,-104.9853166,39.7585655
-7351,6177,6178,0.149072223288683,0.149072223288683,-104.9853166,39.7585655,-104.9865554,39.7576219
-7352,6178,6179,0.102502676747671,0.102502676747671,-104.9865554,39.7576219,-104.9873985,39.7569664
-7353,6179,6180,0.0433701075577025,0.0433701075577025,-104.9873985,39.7569664,-104.9877579,39.7566911
-7354,6180,6181,0.146972104646326,0.146972104646326,-104.9877579,39.7566911,-104.9889487,39.7557377
-7355,6181,6182,0.147344314502621,0.147344314502621,-104.9889487,39.7557377,-104.990176,39.7548073
-7356,6182,6183,0.145754933885852,0.145754933885852,-104.990176,39.7548073,-104.9913748,39.7538752
-7357,6183,6184,0.147948446924155,0.147948446924155,-104.9913748,39.7538752,-104.9925969,39.7529331
-7358,6184,6185,0.145005273136899,0.145005273136899,-104.9925969,39.7529331,-104.993798,39.7520123
-7359,6185,6186,0.141478743986661,0.141478743986661,-104.993798,39.7520123,-104.9949606,39.7511068
-7360,6186,5784,0.0051191432185562,0.0051191432185562,-104.9949606,39.7511068,-104.9949995,39.7510718
-7361,5784,6187,0.145606807182671,0.145606807182671,-104.9949995,39.7510718,-104.9961984,39.7501417
-7362,6187,6188,0.145777030768037,0.145777030768037,-104.9961984,39.7501417,-104.9973988,39.7492106
-7363,6188,6189,0.147177496711371,0.147177496711371,-104.9973988,39.7492106,-104.9986323,39.7482873
-7365,999,4221,0.0806091686632927,0.0806091686632927,-104.9876054,39.7809872,-104.9868954,39.7805099
-7366,4221,6190,0.102381971527348,0.102381971527348,-104.9868954,39.7805099,-104.9857782,39.7801773
-7367,6190,6193,0.0984965085324321,0.0984965085324321,-104.9857782,39.7801773,-104.9846257,39.7801641
-7368,6193,969,0.0952400858484175,0.0952400858484175,-104.9846257,39.7801641,-104.9835112,39.7801693
-7369,969,6194,0.0506536388127553,0.0506536388127553,-104.9835112,39.7801693,-104.982919,39.7801891
-7370,6194,5287,0.0506057613654141,0.0506057613654141,-104.982919,39.7801891,-104.9823268,39.7801891
-7371,5287,3152,0.0954510374534177,0.0954510374534177,-104.9823268,39.7801891,-104.981211,39.7801495
-7372,3152,4968,0.0960843478924756,0.0960843478924756,-104.981211,39.7801495,-104.9800866,39.7801495
-7373,4968,6195,0.0415654887010154,0.0415654887010154,-104.9800866,39.7801495,-104.9796002,39.7801517
-15921,9749,9750,0.0318908811678005,0.0318908811678005,-105.0271669,39.7276925,-105.0269255,39.7274739
-7401,6213,6214,0.0495719593537107,0.0495719593537107,-105.0372874,39.7257681,-105.037867,39.7257736
-7374,335,340,0.288826145863276,0.288826145863276,-104.9400719,39.7824771,-104.9379355,39.7804643
-7378,519,6197,0.0784497798176465,0.0784497798176465,-104.9416292,39.7807961,-104.9410596,39.7813494
-7379,6197,6198,0.0395399248279629,0.0395399248279629,-104.9410596,39.7813494,-104.9406408,39.7815006
-7380,6198,6199,0.019955626672929,0.019955626672929,-104.9406408,39.7815006,-104.9404705,39.7816234
-7382,6200,6201,0.0919482301684137,0.0919482301684137,-104.9634695,39.7803971,-104.9623939,39.7803745
-7383,6201,6202,0.111020276961071,0.111020276961071,-104.9623939,39.7803745,-104.961346,39.7809647
-7385,4485,6203,0.0919528384362936,0.0919528384362936,-105.0056478,39.7253802,-105.0067229,39.7253691
-7386,6203,4199,0.0670783480641165,0.0670783480641165,-105.0067229,39.7253691,-105.0075072,39.7253629
-7387,4199,6204,0.129739883939344,0.129739883939344,-105.0075072,39.7253629,-105.0090242,39.7253711
-7388,6204,6083,0.021522983414344,0.021522983414344,-105.0090242,39.7253711,-105.0092748,39.7253533
-7390,1820,6205,0.059780784078693,0.059780784078693,-105.0299828,39.7262896,-105.0306528,39.7261363
-7391,6205,6206,0.0520794903588436,0.0520794903588436,-105.0306528,39.7261363,-105.0312569,39.7260772
-7392,6206,6207,0.0535277276856965,0.0535277276856965,-105.0312569,39.7260772,-105.0318828,39.7260783
-7393,6207,6208,0.052616435606338,0.052616435606338,-105.0318828,39.7260783,-105.0324968,39.7261084
-7395,6209,6210,0.054197774205049,0.054197774205049,-105.0331036,39.7261385,-105.0337279,39.7260547
-7396,6210,600,0.122572832169608,0.122572832169608,-105.0337279,39.7260547,-105.0351121,39.7257688
-7397,600,6211,0.0472521628905724,0.0472521628905724,-105.0351121,39.7257688,-105.0356646,39.7257653
-7398,6211,5708,0.0430357389006543,0.0430357389006543,-105.0356646,39.7257653,-105.0361678,39.7257622
-7399,5708,6212,0.0495085394583916,0.0495085394583916,-105.0361678,39.7257622,-105.0367467,39.7257609
-7400,6212,6213,0.0462483397604104,0.0462483397604104,-105.0367467,39.7257609,-105.0372874,39.7257681
-7402,6214,6215,0.0428153220943109,0.0428153220943109,-105.037867,39.7257736,-105.0383676,39.7257784
-7403,6215,6216,0.0471000262746752,0.0471000262746752,-105.0383676,39.7257784,-105.0389183,39.7257835
-7404,6216,6217,0.0473822229177533,0.0473822229177533,-105.0389183,39.7257835,-105.0394723,39.7257886
-7405,6217,1100,0.091970261814681,0.091970261814681,-105.0394723,39.7257886,-105.0405477,39.7257916
-7406,1100,6218,0.0449415553049736,0.0449415553049736,-105.0405477,39.7257916,-105.0410732,39.7257908
-7407,6218,6219,0.0480654852744355,0.0480654852744355,-105.0410732,39.7257908,-105.0416352,39.7257952
-7408,6219,6221,0.0454218674668918,0.0454218674668918,-105.0416352,39.7257952,-105.0421663,39.7257919
-7409,6221,3858,0.0463369187822574,0.0463369187822574,-105.0421663,39.7257919,-105.0427081,39.7257886
-7410,3858,6222,0.0463493111972249,0.0463493111972249,-105.0427081,39.7257886,-105.04325,39.7257949
-7411,6222,5594,0.0512843332286284,0.0512843332286284,-105.04325,39.7257949,-105.0438496,39.7258018
-7412,5594,6223,0.0568069326737853,0.0568069326737853,-105.0438496,39.7258018,-105.0445138,39.725796
-7413,6223,6224,0.0525700432289869,0.0525700432289869,-105.0445138,39.725796,-105.0451285,39.7257952
-7414,6224,6225,0.0976339163821139,0.0976339163821139,-105.0451285,39.7257952,-105.0462701,39.7258018
-7439,6242,6243,0.0662881511283164,0.0662881511283164,-104.9882366,39.7256418,-104.9874615,39.7256397
-7415,6225,6226,0.598121759063317,0.598121759063317,-105.0462701,39.7258018,-105.0531438,39.7267947
-7416,3855,6227,0.0533569775705536,0.0533569775705536,-105.0427146,39.72552,-105.0433385,39.72552
-7417,6227,5550,0.054545728952838,0.054545728952838,-105.0433385,39.72552,-105.0439763,39.72552
-7419,6228,6229,0.0491582246006862,0.0491582246006862,-105.0445535,39.7255217,-105.0451283,39.7255234
-7420,6229,6230,0.632851875022697,0.632851875022697,-105.0451283,39.7255234,-105.0525271,39.7254255
-7421,4649,6231,0.0998318489902405,0.0998318489902405,-105.0186468,39.7257296,-105.0174795,39.7257362
-7423,3956,6232,0.132968901609209,0.132968901609209,-105.0001441,39.7257079,-104.9985893,39.7257061
-7424,6232,6233,0.0436348818689085,0.0436348818689085,-104.9985893,39.7257061,-104.9980791,39.7257025
-7425,6233,6234,0.0454822742996404,0.0454822742996404,-104.9980791,39.7257025,-104.9975473,39.7256987
-7426,6234,6235,0.049945575036802,0.049945575036802,-104.9975473,39.7256987,-104.9969633,39.7256958
-7427,6235,6236,0.0503304157761669,0.0503304157761669,-104.9969633,39.7256958,-104.9963748,39.7256929
-7428,6236,6237,0.0508263629674458,0.0508263629674458,-104.9963748,39.7256929,-104.9957805,39.7256901
-7429,6237,4952,0.0505868421691217,0.0505868421691217,-104.9957805,39.7256901,-104.995189,39.7256874
-7430,4952,4681,0.10191805721873,0.10191805721873,-104.995189,39.7256874,-104.9939973,39.7256815
-7431,4681,6238,0.099594470461032,0.099594470461032,-104.9939973,39.7256815,-104.9928328,39.7256728
-7432,6238,6239,0.057251122773958,0.057251122773958,-104.9928328,39.7256728,-104.9921634,39.7256675
-7433,6239,6240,0.108863184827896,0.108863184827896,-104.9921634,39.7256675,-104.9908905,39.7256604
-7434,6240,5092,0.0381385955203522,0.0381385955203522,-104.9908905,39.7256604,-104.9904446,39.7256551
-7435,5092,5227,0.108194428858344,0.108194428858344,-104.9904446,39.7256551,-104.9891795,39.7256506
-7437,5219,6241,0.0418231546106276,0.0418231546106276,-104.9888684,39.7256475,-104.9883794,39.7256429
-7438,6241,6242,0.0122130870650471,0.0122130870650471,-104.9883794,39.7256429,-104.9882366,39.7256418
-7442,1601,1657,0.147607723017958,0.147607723017958,-105.013927,39.6982179,-105.0156522,39.6982047
-7444,5765,6244,0.238854062350574,0.238854062350574,-105.0065723,39.6981963,-105.0093641,39.6981976
-7445,6244,5899,0.278312459096762,0.278312459096762,-105.0093641,39.6981976,-105.0126138,39.6983104
-7446,5899,1600,0.0794217837629518,0.0794217837629518,-105.0126138,39.6983104,-105.0133862,39.6987066
-7448,4405,4957,0.275380198668453,0.275380198668453,-105.0297627,39.6985415,-105.0329814,39.6985547
-7450,4315,4502,0.0962009886521744,0.0962009886521744,-105.0344405,39.6985481,-105.0355649,39.6985415
-7451,4502,6245,0.0998685092157526,0.0998685092157526,-105.0355649,39.6985415,-105.0367322,39.6985415
-7452,6245,5078,0.0969948238046964,0.0969948238046964,-105.0367322,39.6985415,-105.0378651,39.6985745
-7453,5078,6246,0.102086344844989,0.102086344844989,-105.0378651,39.6985745,-105.0390582,39.6985613
-7454,6246,6247,0.102069890156656,0.102069890156656,-105.0390582,39.6985613,-105.0402512,39.6985547
-7455,6247,6248,0.0998684901150858,0.0998684901150858,-105.0402512,39.6985547,-105.0414185,39.6985547
-7456,6248,6249,0.099157147424293,0.099157147424293,-105.0414185,39.6985547,-105.0425772,39.6985745
-7457,6249,6250,0.0998927126402804,0.0998927126402804,-105.0425772,39.6985745,-105.0437445,39.6985943
-7459,4376,2857,0.174778525570848,0.174778525570848,-105.0014998,39.6980642,-105.0035425,39.698084
-7461,1656,6251,0.113089099397014,0.113089099397014,-105.0156865,39.6985745,-105.0170083,39.6985811
-7462,6251,4210,0.0895877408394824,0.0895877408394824,-105.0170083,39.6985811,-105.0180554,39.6985745
-7463,4210,6252,0.0984078699260149,0.0984078699260149,-105.0180554,39.6985745,-105.0192055,39.6985613
-7464,6252,202,0.0984164433029134,0.0984164433029134,-105.0192055,39.6985613,-105.0203557,39.6985481
-7465,202,2930,0.0999116533304243,0.0999116533304243,-105.0203557,39.6985481,-105.021523,39.6985217
-7467,5311,1467,0.0969591422712861,0.0969591422712861,-105.0227074,39.6985877,-105.0238404,39.6986076
-7468,1467,5446,0.104331765041419,0.104331765041419,-105.0238404,39.6986076,-105.0250598,39.6985976
-7470,6253,6254,0.108544830855141,0.108544830855141,-104.9926817,39.6984968,-104.9939504,39.6984927
-7471,6254,6255,0.0440614876081187,0.0440614876081187,-104.9939504,39.6984927,-104.9944654,39.6984907
-7472,6255,6256,0.10258169252724,0.10258169252724,-104.9944654,39.6984907,-104.9956644,39.6984948
-7473,6256,6257,0.0426791560290334,0.0426791560290334,-104.9956644,39.6984948,-104.9961632,39.6984894
-7474,6257,1181,0.0541704333597994,0.0541704333597994,-104.9961632,39.6984894,-104.9967963,39.6984825
-7476,6258,5341,0.664349456749629,0.664349456749629,-105.0437445,39.6975575,-105.0514806,39.6980732
-7480,1556,736,0.1281317837441,0.1281317837441,-104.9613425,39.77767,-104.9613344,39.7765177
-7482,6260,6261,0.0586102720745076,0.0586102720745076,-104.9613314,39.7250799,-104.9613184,39.7256069
-7484,1188,6262,0.0214828666370953,0.0214828666370953,-104.9613359,39.7271192,-104.9613357,39.7273124
-7485,6262,3789,0.199388923153335,0.199388923153335,-104.9613357,39.7273124,-104.9613527,39.7291055
-7486,3789,5915,0.154872293830304,0.154872293830304,-104.9613527,39.7291055,-104.9613527,39.7304983
-7487,5915,6263,0.0506492890867135,0.0506492890867135,-104.9613527,39.7304983,-104.9613527,39.7309538
-7488,6264,2248,0.0665325760000431,0.0665325760000431,-104.9610192,39.7328682,-104.9610284,39.7334665
-7489,2248,4881,0.176090081583566,0.176090081583566,-104.9610284,39.7334665,-104.9610377,39.7350501
-7490,4881,6265,0.19613430259676,0.19613430259676,-104.9610377,39.7350501,-104.9610051,39.7368138
-7491,6265,5479,0.175348484443179,0.175348484443179,-104.9610051,39.7368138,-104.9610209,39.7383907
-7492,5479,6266,0.176845636908204,0.176845636908204,-104.9610209,39.7383907,-104.9610132,39.7399811
-7493,6266,6267,0.178089834743743,0.178089834743743,-104.9610132,39.7399811,-104.9610118,39.7415827
-7494,6267,676,0.00240181041514711,0.00240181041514711,-104.9610118,39.7415827,-104.9610118,39.7416043
-7495,676,6268,0.00459391026290071,0.00459391026290071,-104.9610118,39.7416043,-104.9610132,39.7416456
-7496,6268,6269,0.174858851790528,0.174858851790528,-104.9610132,39.7416456,-104.960998,39.7432181
-7497,6269,4598,0.173764465207871,0.173764465207871,-104.960998,39.7432181,-104.9610007,39.7447808
-7500,6270,6271,0.133612621428605,0.133612621428605,-104.960998,39.748227,-104.9609926,39.7494286
-7501,6271,6272,0.00412533177852682,0.00412533177852682,-104.9609926,39.7494286,-104.9609926,39.7494657
-7502,6272,6273,0.00367565176707242,0.00367565176707242,-104.9609926,39.7494657,-104.9609901,39.7494987
-7503,6273,6274,0.134146296121319,0.134146296121319,-104.9609901,39.7494987,-104.9609953,39.7507051
-20534,10849,10832,0.00532626442143788,0.00532626442143788,-105.0250742,39.7612881,-105.025074,39.7612402
-7504,6274,6275,0.138338671785307,0.138338671785307,-104.9609953,39.7507051,-104.961025,39.751949
-7505,6275,829,0.140763564032817,0.140763564032817,-104.961025,39.751949,-104.9610026,39.7532148
-7506,829,3569,0.13985476308825,0.13985476308825,-104.9610026,39.7532148,-104.9609889,39.7544725
-7507,3569,5638,0.139885286720423,0.139885286720423,-104.9609889,39.7544725,-104.9609978,39.7557305
-7508,5638,4342,0.139394668795268,0.139394668795268,-104.9609978,39.7557305,-104.9609926,39.7569841
-7509,4342,6276,0.136887040523289,0.136887040523289,-104.9609926,39.7569841,-104.9609775,39.7582151
-7510,6276,3042,0.135179672321338,0.135179672321338,-104.9609775,39.7582151,-104.9609775,39.7594308
-7511,3042,6277,0.141328751765533,0.141328751765533,-104.9609775,39.7594308,-104.9609775,39.7607018
-7512,6277,6278,0.0048613905607292,0.0048613905607292,-104.9609775,39.7607018,-104.9609792,39.7607455
-7513,6278,6279,0.138461653724603,0.138461653724603,-104.9609792,39.7607455,-104.9609873,39.7619907
-7514,6279,1163,0.137550674895164,0.137550674895164,-104.9609873,39.7619907,-104.9609775,39.7632277
-7515,1163,883,0.14127337175944,0.14127337175944,-104.9609775,39.7632277,-104.9609746,39.7644982
-7516,883,4468,0.137815416161984,0.137815416161984,-104.9609746,39.7644982,-104.9609786,39.7657376
-7517,4468,2790,0.135224582480649,0.135224582480649,-104.9609786,39.7657376,-104.9609746,39.7669537
-7518,2790,5258,0.130698751805084,0.130698751805084,-104.9609746,39.7669537,-104.9609775,39.7681291
-7519,5258,6280,0.127788689349157,0.127788689349157,-104.9609775,39.7681291,-104.9609549,39.7692782
-7521,6281,4149,0.293690516229792,0.293690516229792,-104.9607137,39.718346,-104.9607278,39.7209872
-7522,4149,4399,0.168839008279682,0.168839008279682,-104.9607278,39.7209872,-104.9607224,39.7225056
-7524,6202,6282,0.107543949920042,0.107543949920042,-104.961346,39.7809647,-104.9613313,39.7819318
-7525,6282,6283,0.203165579542053,0.203165579542053,-104.9613313,39.7819318,-104.9613399,39.7837589
-7526,6283,2881,0.158375292404745,0.158375292404745,-104.9613399,39.7837589,-104.961384,39.7851828
-7528,6284,6285,0.199406415880408,0.199406415880408,-105.0228039,39.7766253,-105.0228094,39.7784186
-7530,2831,1439,0.198717844078091,0.198717844078091,-105.0227922,39.780226,-105.0228009,39.7820131
-7531,1439,6286,0.198972452931936,0.198972452931936,-105.0228009,39.7820131,-105.0227972,39.7838025
-7533,4103,6046,0.129598634612641,0.129598634612641,-105.0227805,39.7844643,-105.0227863,39.7856298
-7534,6046,6287,0.200664408696912,0.200664408696912,-105.0227863,39.7856298,-105.0227969,39.7874344
-7535,6287,6288,0.407763176533057,0.407763176533057,-105.0227969,39.7874344,-105.0227915,39.7911015
-7536,3356,6289,0.17574244534878,0.17574244534878,-104.9339641,39.7162382,-104.9339422,39.7146578
-7537,6289,3103,0.174022554549137,0.174022554549137,-104.9339422,39.7146578,-104.9339765,39.713093
-7538,3103,6290,0.195576263268451,0.195576263268451,-104.9339765,39.713093,-104.9339457,39.7113343
-7539,6290,6291,0.0184164625226683,0.0184164625226683,-104.9339457,39.7113343,-104.9339286,39.7111692
-7543,5848,6293,0.0908806324614032,0.0908806324614032,-104.9339926,39.6911379,-104.9339516,39.6903212
-7544,6293,6294,0.111642131539399,0.111642131539399,-104.9339516,39.6903212,-104.9339602,39.6893172
-7546,6295,6296,0.199763041133193,0.199763041133193,-104.9337199,39.6893172,-104.9337113,39.6875207
-7547,6297,4228,0.205146518268072,0.205146518268072,-104.933893,39.698442,-104.933969,39.696598
-7548,4228,6298,0.220075142380819,0.220075142380819,-104.933969,39.696598,-104.934287,39.694634
-7549,6299,6300,0.269225278413762,0.269225278413762,-105.0158374,39.7910751,-105.0158404,39.7886539
-7550,6300,6301,0.135380699238895,0.135380699238895,-105.0158404,39.7886539,-105.0158347,39.7874364
-7551,6301,6037,0.201685647547083,0.201685647547083,-105.0158347,39.7874364,-105.0158387,39.7856226
-7552,6037,4092,0.180825512734332,0.180825512734332,-105.0158387,39.7856226,-105.0158347,39.7839964
-8788,5909,7005,0.202308283638507,0.202308283638507,-104.9316976,39.7492496,-104.931694,39.751069
-7555,1356,1434,0.0619921139139986,0.0619921139139986,-105.015824,39.7825504,-105.015828,39.7819929
-7556,1434,1416,0.0702533335118034,0.0702533335118034,-105.015828,39.7819929,-105.0158307,39.7813611
-7557,1416,2824,0.130534926760632,0.130534926760632,-105.0158307,39.7813611,-105.0158414,39.7801872
-7558,2824,2485,0.13649413612348,0.13649413612348,-105.0158414,39.7801872,-105.0158508,39.7789597
-7559,2485,6304,0.132600390611243,0.132600390611243,-105.0158508,39.7789597,-105.0158468,39.7777672
-7560,6304,6305,0.13375224687231,0.13375224687231,-105.0158468,39.7777672,-105.0158628,39.7765644
-7562,6293,6306,0.193932773048905,0.193932773048905,-104.9339516,39.6903212,-104.9316857,39.6902815
-7564,6307,4033,0.1068931298406,0.1068931298406,-105.0318135,39.6967219,-105.0318398,39.697683
-7566,6308,1505,0.201208565153675,0.201208565153675,-105.0320716,39.6967254,-105.0320802,39.6949159
-7567,1505,178,0.201696340498873,0.201696340498873,-105.0320802,39.6949159,-105.0320556,39.6931021
-7568,178,1706,0.202420430939935,0.202420430939935,-105.0320556,39.6931021,-105.0320475,39.6912817
-7569,1706,6310,0.205872571954156,0.205872571954156,-105.0320475,39.6912817,-105.0320287,39.6894303
-7571,1393,5861,0.176199480761084,0.176199480761084,-105.0324691,39.7165619,-105.0324691,39.7149773
-7573,1309,5328,0.243304763536767,0.243304763536767,-105.0324406,39.7133724,-105.0327094,39.7111941
-17643,524,9824,0.0585508481458027,0.0585508481458027,-104.9493835,39.780399,-104.9497096,39.7808621
-7575,6311,6312,0.480549704702292,0.480549704702292,-105.0324954,39.6894303,-105.0325311,39.6851087
-7576,4368,1449,0.194542255499986,0.194542255499986,-105.0015178,39.7057816,-105.0037914,39.7057442
-7577,1449,6313,0.208609985343506,0.208609985343506,-105.0037914,39.7057442,-105.006229,39.705797
-7578,6313,6314,0.103555170544593,0.103555170544593,-105.006229,39.705797,-105.0074307,39.7056848
-7579,6314,6315,0.0981349608621905,0.0981349608621905,-105.0074307,39.7056848,-105.0085636,39.7055461
-7581,3820,5895,0.101734690953305,0.101734690953305,-105.009791,39.7062461,-105.0109801,39.7062318
-7583,6316,6317,0.456743307850688,0.456743307850688,-105.0432381,39.7057328,-105.0485768,39.7057857
-7584,5896,1591,0.201196573887444,0.201196573887444,-105.0109828,39.7056561,-105.0133347,39.7056536
-7585,1591,1642,0.201704599280981,0.201704599280981,-105.0133347,39.7056536,-105.0156924,39.7056338
-7587,4303,6319,0.0895876341901528,0.0895876341901528,-105.0350499,39.705614,-105.036097,39.7056008
-7589,6320,5074,0.0881249654942257,0.0881249654942257,-105.0371184,39.7056206,-105.0381484,39.7056338
-7590,5074,6321,0.0822356991688935,0.0822356991688935,-105.0381484,39.7056338,-105.0391097,39.7056338
-7592,3098,3208,0.20139821402018,0.20139821402018,-104.9663374,39.7129121,-104.9663009,39.7111011
-7593,3208,6120,0.199810792778826,0.199810792778826,-104.9663009,39.7111011,-104.9663168,39.7093042
-7594,6120,1919,0.202180610053987,0.202180610053987,-104.9663168,39.7093042,-104.966335,39.707486
-7595,1919,6322,0.202387552164505,0.202387552164505,-104.966335,39.707486,-104.9663254,39.7056659
-7596,6322,3262,0.201452153939087,0.201452153939087,-104.9663254,39.7056659,-104.9663213,39.7038542
-7597,3262,6323,0.198460905873661,0.198460905873661,-104.9663213,39.7038542,-104.9663246,39.7020694
-7599,6325,6326,0.0490995020648654,0.0490995020648654,-104.9717416,39.7183547,-104.9722942,39.7184743
-7600,6326,6327,0.055368676730927,0.055368676730927,-104.9722942,39.7184743,-104.9729137,39.7186188
-7601,6327,6328,0.0309445801475025,0.0309445801475025,-104.9729137,39.7186188,-104.9732624,39.718693
-7602,6328,992,0.0695937269558986,0.0695937269558986,-104.9732624,39.718693,-104.974036,39.718887
-7603,992,5033,0.0562459052664965,0.0562459052664965,-104.974036,39.718887,-104.9746644,39.7190361
-8836,2977,657,0.0520837064464313,0.0520837064464313,-105.032261,39.7585166,-105.0322612,39.758985
-7604,5033,6329,0.0516777216994855,0.0516777216994855,-104.9746644,39.7190361,-104.9752418,39.719173
-7605,6329,5046,0.105372499364086,0.105372499364086,-104.9752418,39.719173,-104.9763833,39.7195295
-7606,5046,4160,0.118696493530277,0.118696493530277,-104.9763833,39.7195295,-104.977542,39.720117
-7607,4160,6330,0.136699581092316,0.136699581092316,-104.977542,39.720117,-104.9787889,39.7208861
-7608,6330,4974,0.128955324206818,0.128955324206818,-104.9787889,39.7208861,-104.9799651,39.7216117
-7609,4974,4766,0.151821196012923,0.151821196012923,-104.9799651,39.7216117,-104.9813252,39.7224891
-7610,4766,6331,0.118237006648706,0.118237006648706,-104.9813252,39.7224891,-104.9824024,39.7231556
-7611,6331,6332,0.150079343538278,0.150079343538278,-104.9824024,39.7231556,-104.9836195,39.7241279
-7612,6332,6333,0.165501031184984,0.165501031184984,-104.9836195,39.7241279,-104.9848045,39.7253046
-7613,6333,6334,0.0461738747625761,0.0461738747625761,-104.9848045,39.7253046,-104.9851351,39.7256329
-7614,6334,6335,0.133457305058149,0.133457305058149,-104.9851351,39.7256329,-104.9861535,39.7265423
-7615,6335,1212,0.134967826650912,0.134967826650912,-104.9861535,39.7265423,-104.9874175,39.7272691
-7617,2900,6336,0.106167707809224,0.106167707809224,-104.9733518,39.7582331,-104.9721098,39.7582313
-7618,6336,6337,0.104928236912142,0.104928236912142,-104.9721098,39.7582313,-104.9708823,39.7582295
-7619,6337,4735,0.104475212628964,0.104475212628964,-104.9708823,39.7582295,-104.9696601,39.7582276
-7620,4735,6338,0.102406513567036,0.102406513567036,-104.9696601,39.7582276,-104.9684621,39.758226
-7621,6338,6339,0.111236760215522,0.111236760215522,-104.9684621,39.758226,-104.9671608,39.7582241
-7622,6339,5400,0.102611714232847,0.102611714232847,-104.9671608,39.7582241,-104.9659604,39.7582223
-7623,5400,6340,0.108937307551118,0.108937307551118,-104.9659604,39.7582223,-104.964686,39.7582205
-7624,6340,3903,0.106714805368354,0.106714805368354,-104.964686,39.7582205,-104.9634376,39.7582187
-7625,3903,1040,0.101833845648583,0.101833845648583,-104.9634376,39.7582187,-104.9622463,39.7582169
-7626,1040,6276,0.108458622663871,0.108458622663871,-104.9622463,39.7582169,-104.9609775,39.7582151
-7627,6276,6341,0.106851583282394,0.106851583282394,-104.9609775,39.7582151,-104.9597275,39.7582133
-7628,6341,5005,0.0997823108241272,0.0997823108241272,-104.9597275,39.7582133,-104.9585602,39.7582115
-7629,5005,3326,0.104184561842385,0.104184561842385,-104.9585602,39.7582115,-104.9573414,39.7582098
-7630,3326,6343,0.103107525114489,0.103107525114489,-104.9573414,39.7582098,-104.9561352,39.758208
-7631,6343,6344,0.102577524667858,0.102577524667858,-104.9561352,39.758208,-104.9549352,39.7582063
-7632,6344,2077,0.109057202290834,0.109057202290834,-104.9549352,39.7582063,-104.9536594,39.7582089
-7633,2077,2674,0.105238001385814,0.105238001385814,-104.9536594,39.7582089,-104.9524283,39.7582028
-7634,2674,4124,0.102908082653388,0.102908082653388,-104.9524283,39.7582028,-104.9512246,39.7581873
-7635,4124,6345,0.111237019236159,0.111237019236159,-104.9512246,39.7581873,-104.9499239,39.7582178
-7636,6345,6346,0.0932071004983952,0.0932071004983952,-104.9499239,39.7582178,-104.9488336,39.7582075
-7637,6346,6347,0.101110239024215,0.101110239024215,-104.9488336,39.7582075,-104.9476508,39.7582147
-7638,6347,3472,0.0998858354760893,0.0998858354760893,-104.9476508,39.7582147,-104.9464826,39.7581939
-7639,3472,6024,0.100184077827119,0.100184077827119,-104.9464826,39.7581939,-104.9453106,39.7581922
-7641,3875,6348,0.0931831682605449,0.0931831682605449,-104.944148,39.7581905,-104.9430579,39.7581889
-7642,6348,851,0.00806942804368034,0.00806942804368034,-104.9430579,39.7581889,-104.9429635,39.7581888
-7644,6349,6350,0.122741608307903,0.122741608307903,-105.0059317,39.7547022,-105.0044986,39.7547701
-7646,6351,6352,0.0367221312616467,0.0367221312616467,-104.9499571,39.7092328,-104.9495279,39.7092395
-7648,6353,6352,0.031587926861642,0.031587926861642,-104.9495193,39.7089555,-104.9495279,39.7092395
-7649,6352,6353,0.031587926861642,0.031587926861642,-104.9495279,39.7092395,-104.9495193,39.7089555
-7651,4284,5406,0.209059343043956,0.209059343043956,-104.9683885,39.7728911,-104.9659423,39.7728915
-7652,5406,3139,0.106127827196287,0.106127827196287,-104.9659423,39.7728915,-104.9647005,39.7728917
-7653,3139,3924,0.0976499059560775,0.0976499059560775,-104.9647005,39.7728917,-104.9635579,39.7728918
-7654,3924,5060,0.353918950652385,0.353918950652385,-104.9635579,39.7728918,-104.9594167,39.7728924
-7655,5060,5012,0.0994873589954365,0.0994873589954365,-104.9594167,39.7728924,-104.9582526,39.7728926
-7658,6356,2071,0.094898000530225,0.094898000530225,-104.9541524,39.7728932,-104.953042,39.7728934
-7659,2071,2669,0.0951372963506741,0.0951372963506741,-104.953042,39.7728934,-104.9519288,39.7728936
-7660,2669,4139,0.0930605458860926,0.0930605458860926,-104.9519288,39.7728936,-104.9508399,39.7728937
-7661,4139,6357,0.0866508308410144,0.0866508308410144,-104.9508399,39.7728937,-104.949826,39.7728939
-7662,6357,6358,0.100153967379628,0.100153967379628,-104.949826,39.7728939,-104.9486541,39.7728941
-7663,6358,6359,0.094521960675225,0.094521960675225,-104.9486541,39.7728941,-104.9475481,39.7728942
-7664,6359,834,0.394334341459341,0.394334341459341,-104.9475481,39.7728942,-104.942934,39.7728949
-7665,834,871,0.00699086459728944,0.00699086459728944,-104.942934,39.7728949,-104.9428522,39.7728949
-7666,871,6360,0.0985643561678323,0.0985643561678323,-104.9428522,39.7728949,-104.9416989,39.7728951
-7667,6360,6361,0.0919153430634884,0.0919153430634884,-104.9416989,39.7728951,-104.9406234,39.7728953
-7668,6361,6362,0.0142210252134503,0.0142210252134503,-104.9406234,39.7728953,-104.940457,39.7728953
-7670,6363,6250,0.198277134301598,0.198277134301598,-105.0437617,39.7003774,-105.0437445,39.6985943
-7671,6250,6258,0.115286899945233,0.115286899945233,-105.0437445,39.6985943,-105.0437445,39.6975575
-7672,6258,6364,0.0878557774552784,0.0878557774552784,-105.0437445,39.6975575,-105.0437011,39.6967681
-7673,6364,1498,0.200867314778576,0.200867314778576,-105.0437011,39.6967681,-105.0437531,39.6949621
-7675,187,5877,0.162832287710312,0.162832287710312,-105.0437531,39.6931327,-105.0442509,39.6917193
-7676,5877,1716,0.0499429374304698,0.0499429374304698,-105.0442509,39.6917193,-105.0442424,39.6912702
-7678,6365,1582,0.142378532382676,0.142378532382676,-105.0442509,39.6894935,-105.0442642,39.6882131
-7679,1582,6366,1.28806099537571,1.28806099537571,-105.0442642,39.6882131,-105.0417039,39.6767981
-7680,6367,2271,0.093525872105216,0.093525872105216,-104.9316211,39.7280567,-104.9305276,39.7280436
-7681,2271,6368,0.0953526699152847,0.0953526699152847,-104.9305276,39.7280436,-104.9294128,39.7280596
-7682,6368,6369,0.0956103425754401,0.0956103425754401,-104.9294128,39.7280596,-104.9282948,39.7280565
-7683,6369,2130,0.0946975078442247,0.0946975078442247,-104.9282948,39.7280565,-104.9271876,39.7280433
-7684,2130,5981,0.0976635368625979,0.0976635368625979,-104.9271876,39.7280433,-104.9260461,39.7280697
-7685,5981,6370,0.0910203235542429,0.0910203235542429,-104.9260461,39.7280697,-104.9249818,39.7280631
-7686,6370,2335,0.0939706612325521,0.0939706612325521,-104.9249818,39.7280631,-104.9238831,39.7280763
-7687,2335,6371,1.7470149025737,1.7470149025737,-104.9238831,39.7280763,-104.9034546,39.7280769
-7688,96,3500,0.202527213410831,0.202527213410831,-104.9453991,39.7002071,-104.9453782,39.6983858
-7689,3500,6372,0.200485391157046,0.200485391157046,-104.9453782,39.6983858,-104.9453525,39.6965829
-7690,6372,6373,0.200744473183588,0.200744473183588,-104.9453525,39.6965829,-104.9454196,39.6947783
-7691,6373,6374,0.203425216522523,0.203425216522523,-104.9454196,39.6947783,-104.9453733,39.6929492
-7692,6374,261,0.363896677888795,0.363896677888795,-104.9453733,39.6929492,-104.9453693,39.6896766
-7693,261,6375,0.041137585532266,0.041137585532266,-104.9453693,39.6896766,-104.9453607,39.6893067
-7694,6375,6376,0.527231991542063,0.527231991542063,-104.9453607,39.6893067,-104.9453741,39.6845652
-8934,2865,7087,0.201874708309178,0.201874708309178,-104.9846471,39.7855801,-104.9846429,39.7873956
-7696,6377,3069,0.174367166483664,0.174367166483664,-104.9449725,39.7146388,-104.9449618,39.7130707
-7697,3069,6378,0.175688037406208,0.175688037406208,-104.9449618,39.7130707,-104.9449634,39.7114907
-7698,6378,6379,0.195293035214527,0.195293035214527,-104.9449634,39.7114907,-104.9449548,39.7097344
-7700,5015,6380,0.0917013339896307,0.0917013339896307,-104.9582016,39.7805126,-104.9592745,39.7805291
-7702,380,6381,0.0601450697094338,0.0601450697094338,-105.03278,39.74748,-105.0334738,39.7475695
-7703,6381,3398,0.0950953426294514,0.0950953426294514,-105.0334738,39.7475695,-105.0345861,39.7475697
-7704,3398,6384,0.0512135480319707,0.0512135480319707,-105.0345861,39.7475697,-105.0351851,39.7475652
-7705,6384,6385,0.0512477474787707,0.0512477474787707,-105.0351851,39.7475652,-105.0357845,39.7475607
-7706,6385,6386,0.0508150751685789,0.0508150751685789,-105.0357845,39.7475607,-105.0363788,39.7475676
-7707,6386,6387,0.0467877396177586,0.0467877396177586,-105.0363788,39.7475676,-105.036926,39.7475739
-7708,6387,6388,0.102738526459791,0.102738526459791,-105.036926,39.7475739,-105.0381277,39.7475739
-7709,6388,6389,0.0502022657375815,0.0502022657375815,-105.0381277,39.7475739,-105.0387149,39.7475739
-7710,6389,6390,0.0495952560526731,0.0495952560526731,-105.0387149,39.7475739,-105.039295,39.7475739
-7711,6390,6391,0.0506266673865361,0.0506266673865361,-105.039295,39.7475739,-105.0398871,39.7475806
-7712,6391,1111,0.0484464674507555,0.0484464674507555,-105.0398871,39.7475806,-105.0404537,39.7475871
-7714,4654,1272,0.131229439030854,0.131229439030854,-105.0189639,39.7475939,-105.0204988,39.7476034
-7715,1272,6392,0.0233060632854453,0.0233060632854453,-105.0204988,39.7476034,-105.0207714,39.7476023
-7716,6392,4560,0.111717062627726,0.111717062627726,-105.0207714,39.7476023,-105.0220781,39.7475968
-7717,4560,2711,0.115276038939543,0.115276038939543,-105.0220781,39.7475968,-105.0233999,39.7473921
-7718,2711,6393,0.157827401374253,0.157827401374253,-105.0233999,39.7473921,-105.0252309,39.747573
-7720,6394,6142,0.134287937529063,0.134287937529063,-105.0268144,39.7475701,-105.0283851,39.7475767
-7721,6142,4016,0.132933704994743,0.132933704994743,-105.0283851,39.7475767,-105.0299399,39.7475891
-7722,4016,6395,0.00906250528140326,0.00906250528140326,-105.0299399,39.7475891,-105.0300459,39.7475887
-7723,6395,382,0.124591902443133,0.124591902443133,-105.0300459,39.7475887,-105.0315032,39.7475841
-7725,5850,6396,0.00523272011597534,0.00523272011597534,-105.0022921,39.7147654,-105.0022548,39.7147281
-7726,6396,501,0.199511293598505,0.199511293598505,-105.0022548,39.7147281,-105.0014928,39.7130323
-7727,501,6397,0.217152349025227,0.217152349025227,-105.0014928,39.7130323,-105.0006291,39.7111959
-7728,6397,6398,0.36755359975324,0.36755359975324,-105.0006291,39.7111959,-104.9991941,39.7080802
-7730,3613,6399,0.21266860576331,0.21266860576331,-104.9293234,39.7702164,-104.9308332,39.7717367
-7732,6401,6402,0.038551456513769,0.038551456513769,-104.9719701,39.7702406,-104.9722075,39.7705354
-7733,6402,6403,0.01171446339475,0.01171446339475,-104.9722075,39.7705354,-104.9723255,39.770589
-7735,2909,6404,0.0724414530545414,0.0724414530545414,-104.9733496,39.764224,-104.973944,39.7646884
-7736,6404,6405,0.105070094163828,0.105070094163828,-104.973944,39.7646884,-104.9748213,39.7653503
-7737,6405,6174,0.106062498124406,0.106062498124406,-104.9748213,39.7653503,-104.9757035,39.7660211
-7738,6174,3312,0.104669820520163,0.104669820520163,-104.9757035,39.7660211,-104.9765745,39.7666828
-7739,3312,6406,0.105292804834109,0.105292804834109,-104.9765745,39.7666828,-104.9774556,39.7673446
-7741,5545,2415,0.0733757601851338,0.0733757601851338,-105.0422627,39.7521069,-105.0422764,39.7527667
-7743,5056,4299,0.0731858562049149,0.0731858562049149,-105.0422607,39.7532726,-105.0422855,39.7539305
-7745,5093,6407,0.0155546054802435,0.0155546054802435,-104.9901518,39.7836836,-104.990332,39.7836638
-7747,3914,4762,0.124500033165113,0.124500033165113,-104.9633401,39.7209669,-104.9640208,39.7219566
-7750,6409,5773,0.332202382721644,0.332202382721644,-104.9640263,39.7876087,-104.96707,39.7894676
-7752,6410,6411,0.0178672618817003,0.0178672618817003,-104.9686008,39.7903058,-104.9688032,39.7903462
-7754,6409,6412,0.0520862922994697,0.0520862922994697,-104.9640263,39.7876087,-104.963535,39.787886
-7756,6231,6413,0.198055274582402,0.198055274582402,-105.0174795,39.7257362,-105.0175186,39.7275171
-7758,6414,6415,0.189433856898839,0.189433856898839,-105.0169053,39.7202585,-105.0168624,39.7185552
-7759,6416,4038,0.0834324728266378,0.0834324728266378,-105.0172314,39.7170829,-105.0175833,39.7177827
-7761,6417,4521,0.134579982196382,0.134579982196382,-105.0174065,39.7620125,-105.0174118,39.7632228
-7762,4521,5240,0.13502405245006,0.13502405245006,-105.0174118,39.7632228,-105.0174132,39.7644371
-7763,5240,6418,0.13412336654487,0.13412336654487,-105.0174132,39.7644371,-105.0174145,39.7656433
-7764,6418,6419,0.133878890575632,0.133878890575632,-105.0174145,39.7656433,-105.0174118,39.7668473
-7765,6419,1678,0.134913237668999,0.134913237668999,-105.0174118,39.7668473,-105.0174158,39.7680606
-7766,1678,6421,0.134568146094945,0.134568146094945,-105.0174158,39.7680606,-105.0174145,39.7692708
-7767,6421,2457,0.135266114631303,0.135266114631303,-105.0174145,39.7692708,-105.0174746,39.7704864
-7768,2457,3225,0.138075006668938,0.138075006668938,-105.0174746,39.7704864,-105.0174873,39.7717281
-7769,3225,5745,0.134195295626898,0.134195295626898,-105.0174873,39.7717281,-105.0175012,39.7729349
-7770,5745,5522,0.132936679979251,0.132936679979251,-105.0175012,39.7729349,-105.0175119,39.7741304
-7771,5522,6422,0.135417328130375,0.135417328130375,-105.0175119,39.7741304,-105.0175243,39.7753482
-7772,6422,6423,0.137879539043021,0.137879539043021,-105.0175243,39.7753482,-105.0174223,39.7765857
-7776,6425,6426,0.131565838315989,0.131565838315989,-105.0170361,39.7765857,-105.0170359,39.7777689
-9014,7117,7118,0.0653478278832396,0.0653478278832396,-104.9968556,39.7354212,-104.9975929,39.7352666
-7778,2486,2825,0.134659485620958,0.134659485620958,-105.0170359,39.7789761,-105.0169815,39.7801864
-7779,2825,1435,0.20171777298344,0.20171777298344,-105.0169815,39.7801864,-105.0170158,39.7820003
-7780,1435,6427,0.150355567395556,0.150355567395556,-105.0170158,39.7820003,-105.01696,39.7833518
-7782,4094,6039,0.18817564016619,0.18817564016619,-105.0169973,39.7839311,-105.0170022,39.7856234
-7783,6039,6428,0.201342188276825,0.201342188276825,-105.0170022,39.7856234,-105.016993,39.7874341
-7784,6428,6429,0.404705192201308,0.404705192201308,-105.016993,39.7874341,-105.0169891,39.7910737
-7785,6430,2403,0.202864038761159,0.202864038761159,-105.0175669,39.7512092,-105.017566,39.7530336
-7786,2403,6431,0.0331723473682169,0.0331723473682169,-105.017566,39.7530336,-105.0178463,39.7532399
-7787,6431,6432,0.176045966759895,0.176045966759895,-105.0178463,39.7532399,-105.0177887,39.7548225
-7789,6433,6434,0.0826623084672878,0.0826623084672878,-105.0178088,39.7553019,-105.0178088,39.7560453
-7790,6434,6435,0.102944521823956,0.102944521823956,-105.0178088,39.7560453,-105.0178061,39.7569711
-7791,6435,6436,0.00978588535341196,0.00978588535341196,-105.0178061,39.7569711,-105.0178047,39.7570591
-7793,6131,5859,0.176922247784819,0.176922247784819,-105.0287757,39.7165547,-105.0287757,39.7149636
-7794,5859,1306,0.176947022701008,0.176947022701008,-105.0287757,39.7149636,-105.0288014,39.7133724
-7795,1306,6437,0.245961882429388,0.245961882429388,-105.0288014,39.7133724,-105.0287757,39.7111605
-7797,4379,175,0.0949912703955897,0.0949912703955897,-105.0284495,39.6939582,-105.0284721,39.6931041
-7799,6438,6439,0.118265132463411,0.118265132463411,-105.0288833,39.6876517,-105.0288576,39.6887151
-7800,426,6440,0.136068759302944,0.136068759302944,-105.0252144,39.7427283,-105.0268058,39.7427195
-7801,6440,6140,0.13326442219696,0.13326442219696,-105.0268058,39.7427195,-105.0283644,39.7427283
-7802,6140,4012,0.134504046499466,0.134504046499466,-105.0283644,39.7427283,-105.0299375,39.742737
-7803,4012,6441,0.132430300578831,0.132430300578831,-105.0299375,39.742737,-105.0314863,39.7427496
-7804,6441,6442,0.13523718007968,0.13523718007968,-105.0314863,39.7427496,-105.0330679,39.7427349
-7805,6442,3383,0.131020837855346,0.131020837855346,-105.0330679,39.7427349,-105.0346003,39.7427332
-7807,6443,5593,0.101318153214668,0.101318153214668,-105.0428338,39.7427355,-105.0440188,39.7427376
-7809,5592,6444,0.0976166388579658,0.0976166388579658,-105.0440283,39.7421749,-105.04517,39.7421763
-7810,6444,6445,0.491425863708822,0.491425863708822,-105.04517,39.7421763,-105.0509176,39.7421724
-7814,2400,6448,0.282522157819803,0.282522157819803,-104.9404255,39.7738517,-104.9389896,39.7761403
-7817,2813,6450,0.086833012009872,0.086833012009872,-104.9913173,39.7752191,-104.9923333,39.7752102
-7819,6451,6452,0.0978256934477298,0.0978256934477298,-104.9982284,39.7754911,-104.9993731,39.7754907
-7820,6452,3935,0.102019422492613,0.102019422492613,-104.9993731,39.7754907,-105.0005661,39.7754577
-7821,3935,5623,0.0992172562512715,0.0992172562512715,-105.0005661,39.7754577,-105.0017268,39.7754774
-7823,6453,4202,0.100516365940058,0.100516365940058,-105.006451,39.775346,-105.0076269,39.7753262
-7824,4202,1069,0.100502974298411,0.100502974298411,-105.0076269,39.7753262,-105.0088028,39.7753394
-7825,1069,2505,0.106288157429336,0.106288157429336,-105.0088028,39.7753394,-105.0100464,39.7753527
-7827,6454,1236,0.0948029547901802,0.0948029547901802,-105.0112167,39.7753455,-105.012326,39.7753515
-7828,1236,4810,0.0999111243280575,0.0999111243280575,-105.012326,39.7753515,-105.0134951,39.7753509
-7829,4810,2177,0.101346858256007,0.101346858256007,-105.0134951,39.7753509,-105.014681,39.7753502
-7830,2177,595,0.0594373309242362,0.0594373309242362,-105.014681,39.7753502,-105.0153765,39.7753499
-7831,595,6456,0.0424911721972826,0.0424911721972826,-105.0153765,39.7753499,-105.0158736,39.775342
-7833,349,6422,0.0713248739505624,0.0713248739505624,-105.0166897,39.7753492,-105.0175243,39.7753482
-7834,6422,4630,0.121079515215535,0.121079515215535,-105.0175243,39.7753482,-105.0189411,39.7753479
-7836,1259,376,0.0755636106904258,0.0755636106904258,-105.0204832,39.7753471,-105.0213674,39.7753467
-7837,376,4545,0.0608816123146845,0.0608816123146845,-105.0213674,39.7753467,-105.0220798,39.7753463
-7838,4545,2701,0.135701731606855,0.135701731606855,-105.0220798,39.7753463,-105.0236677,39.7753454
-7839,2701,6457,0.126994454068005,0.126994454068005,-105.0236677,39.7753454,-105.0251537,39.7753502
-7841,6458,6459,0.0454788769710747,0.0454788769710747,-105.0375697,39.7756981,-105.0381018,39.7756915
-7842,6459,6460,0.0496400956308302,0.0496400956308302,-105.0381018,39.7756915,-105.0386826,39.775685
-7843,6460,6461,0.0515972381206,0.0515972381206,-105.0386826,39.775685,-105.0392863,39.7756783
-7845,6462,6463,0.0483118204156802,0.0483118204156802,-105.0392949,39.7752627,-105.0398602,39.7752659
-7846,6463,1134,0.0499784066419261,0.0499784066419261,-105.0398602,39.7752659,-105.040445,39.7752693
-7847,1134,6464,0.0497410465605515,0.0497410465605515,-105.040445,39.7752693,-105.041027,39.7752745
-7849,6465,6466,0.0544130408961272,0.0544130408961272,-105.0416343,39.775288,-105.042271,39.7752905
-7850,6466,3850,0.0472855484942146,0.0472855484942146,-105.042271,39.7752905,-105.0428243,39.7752926
-7851,3850,6467,0.0501739162143614,0.0501739162143614,-105.0428243,39.7752926,-105.0434114,39.7752908
-7852,6467,5576,0.0486954285842123,0.0486954285842123,-105.0434114,39.7752908,-105.0439812,39.7752891
-7854,6468,4673,0.110758148850492,0.110758148850492,-104.9923387,39.7755028,-104.9936347,39.7754962
-7855,4673,6469,0.101963932591745,0.101963932591745,-104.9936347,39.7754962,-104.9948277,39.7755094
-7857,5575,6471,0.0065719182159958,0.0065719182159958,-105.044007,39.7747614,-105.0440839,39.7747614
-7858,6471,6472,0.0420124186537075,0.0420124186537075,-105.0440839,39.7747614,-105.0445755,39.7747614
-7859,6472,6473,0.0412603655949121,0.0412603655949121,-105.0445755,39.7747614,-105.0450583,39.7747614
-7860,6473,6474,0.00681975388326533,0.00681975388326533,-105.0450583,39.7747614,-105.0451381,39.7747614
-7862,6476,3433,0.101986471383689,0.101986471383689,-105.0333983,39.7749593,-105.0345914,39.7749791
-7864,6477,6478,0.14533158628719,0.14533158628719,-104.9406153,39.7461001,-104.9389155,39.7461112
-7865,6478,6479,0.146043976986052,0.146043976986052,-104.9389155,39.7461112,-104.9372075,39.746131
-7866,6479,2014,0.145258231311968,0.145258231311968,-104.9372075,39.746131,-104.9355085,39.7461282
-7867,2014,6480,0.148541120069898,0.148541120069898,-104.9355085,39.7461282,-104.9337711,39.7461262
-7868,6480,6481,0.146497737165933,0.146497737165933,-104.9337711,39.7461262,-104.9320576,39.7461244
-7870,6482,6483,0.108282286689265,0.108282286689265,-104.9873838,39.7461813,-104.9861174,39.7461946
-7871,6483,6484,0.108491401341724,0.108491401341724,-104.9861174,39.7461946,-104.9848486,39.7462103
-7873,6485,6486,0.107588206878742,0.107588206878742,-104.9835697,39.7461971,-104.9823113,39.7461969
-7874,6486,6487,0.108152480667507,0.108152480667507,-104.9823113,39.7461969,-104.9810463,39.7461971
-7875,6487,6488,0.101444382501879,0.101444382501879,-104.9810463,39.7461971,-104.9798598,39.7461897
-7876,6488,6489,0.0964116258051976,0.0964116258051976,-104.9798598,39.7461897,-104.9787322,39.7461798
-7877,6489,6490,0.100996661509111,0.100996661509111,-104.9787322,39.7461798,-104.9775509,39.7461815
-7878,6490,6491,0.0875395650093709,0.0875395650093709,-104.9775509,39.7461815,-104.976527,39.74618
-7879,6491,5045,0.0321137501610987,0.0321137501610987,-104.976527,39.74618,-104.9761515,39.7461728
-7880,5045,6492,0.117702359393688,0.117702359393688,-104.9761515,39.7461728,-104.9747749,39.7461601
-7882,6493,6494,0.102121868544675,0.102121868544675,-104.968414,39.7460843,-104.9672196,39.746075
-7885,5423,6497,0.104998299985498,0.104998299985498,-104.9659758,39.7460698,-104.9647477,39.7460671
-7887,6498,2276,0.0954001386196214,0.0954001386196214,-104.9320748,39.7455833,-104.930959,39.7455899
-7888,2276,3599,0.06824353272523,0.06824353272523,-104.930959,39.7455899,-104.9301608,39.7455899
-7889,3599,6499,0.0293198911712676,0.0293198911712676,-104.9301608,39.7455899,-104.9298179,39.7455937
-7890,6499,6500,0.100538255640661,0.100538255640661,-104.9298179,39.7455937,-104.928642,39.7456002
-7891,6500,5163,0.0991059325809468,0.0991059325809468,-104.928642,39.7456002,-104.9274829,39.7455899
-7892,5163,5160,0.0380087655441681,0.0380087655441681,-104.9274829,39.7455899,-104.9270451,39.7456493
-7893,5160,5991,0.104706554354607,0.104706554354607,-104.9270451,39.7456493,-104.9258205,39.7456382
-7894,5991,6501,0.100402260808534,0.100402260808534,-104.9258205,39.7456382,-104.9246462,39.7456457
-7895,6501,6502,1.04365943145138,1.04365943145138,-104.9246462,39.7456457,-104.9124392,39.7456596
-7898,435,6505,0.0386263503887606,0.0386263503887606,-104.9400813,39.7837417,-104.9400719,39.7833944
-7899,6505,335,0.101999106210783,0.101999106210783,-104.9400719,39.7833944,-104.9400719,39.7824771
-18520,9719,10306,0.125645609854682,0.125645609854682,-105.0302877,39.7369493,-105.0316869,39.7366042
-7901,6506,6507,1.29783680025226,1.29783680025226,-104.9094652,39.7786813,-104.924642,39.7791151
-7902,6507,5983,0.103637474886707,0.103637474886707,-104.924642,39.7791151,-104.9258169,39.7793462
-7903,5983,2101,0.103292266259067,0.103292266259067,-104.9258169,39.7793462,-104.9269881,39.7795759
-9126,1424,7178,0.131577423131136,0.131577423131136,-105.0380823,39.7820859,-105.0380864,39.7832692
-7904,2101,6508,0.248902894245049,0.248902894245049,-104.9269881,39.7795759,-104.9298124,39.7801232
-7906,6509,6510,0.360508984578831,0.360508984578831,-104.9400658,39.7910048,-104.9405839,39.7877872
-7907,6510,6511,0.0349379067210739,0.0349379067210739,-104.9405839,39.7877872,-104.940586,39.787473
-7909,6512,6513,0.304262851034051,0.304262851034051,-104.9405864,39.7865077,-104.9405902,39.7837714
-7910,6513,6198,0.252538456966519,0.252538456966519,-104.9405902,39.7837714,-104.9406408,39.7815006
-7911,6198,576,0.0366939406022336,0.0366939406022336,-104.9406408,39.7815006,-104.940659,39.7811709
-7912,576,6515,0.0946945974761285,0.0946945974761285,-104.940659,39.7811709,-104.9407009,39.7803199
-7915,89,3525,0.202675004351493,0.202675004351493,-104.9580983,39.7002217,-104.9580991,39.698399
-7916,3525,6516,0.201208326437589,0.201208326437589,-104.9580991,39.698399,-104.9581069,39.6965895
-7917,6516,6517,0.125720317267139,0.125720317267139,-104.9581069,39.6965895,-104.9581176,39.6954589
-7919,6518,6519,0.200829668984099,0.200829668984099,-104.9581241,39.6947734,-104.9581188,39.6929673
-7920,6519,5832,0.202502182884777,0.202502182884777,-104.9581188,39.6929673,-104.958102,39.6911462
-7921,5832,6520,0.201241567556278,0.201241567556278,-104.958102,39.6911462,-104.9581278,39.6893365
-7922,6520,6521,0.396923547399649,0.396923547399649,-104.9581278,39.6893365,-104.957636,39.685787
-7923,6522,6523,0.133027344486413,0.133027344486413,-104.982762,39.6978313,-104.9817185,39.6969444
-7924,6523,4230,0.0509058477475031,0.0509058477475031,-104.9817185,39.6969444,-104.9812906,39.6966263
-7925,4230,3627,0.095634183764131,0.095634183764131,-104.9812906,39.6966263,-104.9805353,39.6959923
-7926,3627,1795,0.17402508350424,0.17402508350424,-104.9805353,39.6959923,-104.9792579,39.6947744
-7928,6524,4175,0.0888021060703878,0.0888021060703878,-104.9782122,39.6938342,-104.9775465,39.6932215
-17651,395,780,0.411550362143881,0.411550362143881,-104.9367017,39.7800737,-104.9318858,39.7800449
-7930,6525,1780,0.0441669339202922,0.0441669339202922,-104.9772938,39.6929888,-104.9769419,39.6926982
-7931,1780,4371,0.0730695211007641,0.0730695211007641,-104.9769419,39.6926982,-104.976372,39.6922088
-7932,4371,6527,0.0615136660388587,0.0615136660388587,-104.976372,39.6922088,-104.9759135,39.6917827
-7933,6527,365,0.0331373286455635,0.0331373286455635,-104.9759135,39.6917827,-104.9756534,39.6915619
-7935,6528,6529,0.918393000112345,0.918393000112345,-104.9593753,39.6828563,-104.9687115,39.6869299
-7936,6529,6530,0.220602612202271,0.220602612202271,-104.9687115,39.6869299,-104.9709294,39.6879413
-7938,6531,6533,0.0857049610334614,0.0857049610334614,-104.9734286,39.6890388,-104.9743231,39.6893856
-7940,5175,3090,0.40371590303619,0.40371590303619,-104.9757389,39.7165269,-104.9757316,39.7128962
-7941,3090,3201,0.197838998920199,0.197838998920199,-104.9757316,39.7128962,-104.9757389,39.711117
-7943,6407,4688,0.196571833896643,0.196571833896643,-104.990332,39.7836638,-104.9926323,39.7836836
-7944,4688,4940,0.140125445900248,0.140125445900248,-104.9926323,39.7836836,-104.9942716,39.7836506
-7946,6170,5019,0.102773469761832,0.102773469761832,-104.9594375,39.7241351,-104.9582358,39.7241351
-7947,5019,3351,0.103514032973499,0.103514032973499,-104.9582358,39.7241351,-104.9570255,39.7241259
-7948,3351,6534,0.103149871890818,0.103149871890818,-104.9570255,39.7241259,-104.9558194,39.7241271
-7949,6534,6535,0.102775789327764,0.102775789327764,-104.9558194,39.7241271,-104.9546177,39.7241333
-9173,5349,5392,0.0859339245649361,0.0859339245649361,-104.9274952,39.692974,-104.926491,39.6929872
-7950,6535,2060,0.103192691678964,0.103192691678964,-104.9546177,39.7241333,-104.9534111,39.7241317
-7951,2060,2646,0.101884046964041,0.101884046964041,-104.9534111,39.7241317,-104.9522198,39.7241312
-7952,2646,4112,0.105519033634909,0.105519033634909,-104.9522198,39.7241312,-104.950986,39.7241333
-7953,4112,6536,0.103005071327601,0.103005071327601,-104.950986,39.7241333,-104.9497817,39.7241209
-7954,6536,6537,0.102995851811127,0.102995851811127,-104.9497817,39.7241209,-104.9485774,39.7241209
-7955,6537,6539,0.1029998815793,0.1029998815793,-104.9485774,39.7241209,-104.9473731,39.7241291
-7956,6539,3453,0.102546625331303,0.102546625331303,-104.9473731,39.7241291,-104.9461741,39.7241209
-7958,6015,3883,0.103459903316916,0.103459903316916,-104.9449591,39.7241168,-104.9437494,39.7241229
-7959,3883,846,0.104834602248929,0.104834602248929,-104.9437494,39.7241229,-104.9425236,39.7241229
-7960,846,6540,0.101388253991195,0.101388253991195,-104.9425236,39.7241229,-104.9413381,39.7241209
-7961,6540,6541,0.0479102302548626,0.0479102302548626,-104.9413381,39.7241209,-104.9407779,39.7241206
-7963,988,6542,0.0976255225844962,0.0976255225844962,-104.9740667,39.7237385,-104.9729252,39.7237385
-7964,6542,6543,0.0510763365802728,0.0510763365802728,-104.9729252,39.7237385,-104.9723281,39.7237476
-7966,6544,2318,0.0507276043625414,0.0507276043625414,-104.9717626,39.7237562,-104.9711696,39.7237463
-7967,2318,5114,0.0505908057304328,0.0505908057304328,-104.9711696,39.7237463,-104.9705782,39.7237364
-7968,5114,445,0.0485658434846568,0.0485658434846568,-104.9705782,39.7237364,-104.9700104,39.7237429
-7969,445,4713,0.0498146803357513,0.0498146803357513,-104.9700104,39.7237429,-104.969428,39.7237496
-7970,4713,6546,0.0983637452954902,0.0983637452954902,-104.969428,39.7237496,-104.9682779,39.7237562
-7971,6546,6547,0.0998347883215936,0.0998347883215936,-104.9682779,39.7237562,-104.9671106,39.7237629
-7973,5411,3144,0.088816521791746,0.088816521791746,-104.9658231,39.7237695,-104.9647846,39.7237695
-7974,3144,3916,0.112464236744585,0.112464236744585,-104.9647846,39.7237695,-104.9634696,39.7237721
-7976,6332,6548,0.108272865647673,0.108272865647673,-104.9836195,39.7241279,-104.9823535,39.7241259
-7977,6548,3156,0.104441457482765,0.104441457482765,-104.9823535,39.7241259,-104.9811324,39.7241137
-7978,3156,4975,0.102775440582403,0.102775440582403,-104.9811324,39.7241137,-104.9799308,39.7241005
-7979,4975,6549,0.100365138716245,0.100365138716245,-104.9799308,39.7241005,-104.9787573,39.7240931
-7980,6549,6550,0.102792800397101,0.102792800397101,-104.9787573,39.7240931,-104.9775557,39.7240716
-7982,6526,5047,0.0492847670519182,0.0492847670519182,-104.9769714,39.7240796,-104.9763952,39.7240866
-7983,5047,6551,0.0975745067522553,0.0975745067522553,-104.9763952,39.7240866,-104.9752545,39.7240698
-17653,9285,10141,0.0935043743671756,0.0935043743671756,-104.9695286,39.7796372,-104.9684346,39.7796533
-7984,6551,5065,0.0520838428726065,0.0520838428726065,-104.9752545,39.7240698,-104.9746455,39.7240692
-7985,5065,987,0.0487655351272014,0.0487655351272014,-104.9746455,39.7240692,-104.9740753,39.7240686
-7987,6552,6553,0.11141163822183,0.11141163822183,-104.9406129,39.7243416,-104.9393102,39.724345
-7988,6553,6554,0.0931288050453943,0.0931288050453943,-104.9393102,39.724345,-104.9382214,39.724358
-7989,6554,6555,0.0954267012259227,0.0954267012259227,-104.9382214,39.724358,-104.9371056,39.724358
-7990,6555,6556,0.0932230978560399,0.0932230978560399,-104.9371056,39.724358,-104.9360156,39.7243514
-7991,6556,2018,0.096637647678534,0.096637647678534,-104.9360156,39.7243514,-104.9348857,39.7243603
-7992,2018,2008,0.0302895913994428,0.0302895913994428,-104.9348857,39.7243603,-104.9345317,39.7243519
-7993,2008,6557,0.0614415106208342,0.0614415106208342,-104.9345317,39.7243519,-104.9338133,39.7243478
-7995,2764,6558,0.0940583318372542,0.0940583318372542,-104.9327137,39.724358,-104.9316139,39.7243581
-7996,6558,2268,0.0933570415002435,0.0933570415002435,-104.9316139,39.7243581,-104.9305223,39.7243581
-7998,5192,6559,0.0436786412585742,0.0436786412585742,-104.9874942,39.724123,-104.9869835,39.7241266
-7999,6559,6560,0.0106994466158069,0.0106994466158069,-104.9869835,39.7241266,-104.9868584,39.7241275
-8002,6562,6563,0.0505000952437127,0.0505000952437127,-104.9856207,39.7241273,-104.9850303,39.7241197
-8004,3018,6564,0.0487830282291943,0.0487830282291943,-104.9780672,39.7547969,-104.9784697,39.7551079
-8005,6564,4383,0.0508423763728808,0.0508423763728808,-104.9784697,39.7551079,-104.9788891,39.7554321
-8006,4383,6565,0.0576100244421376,0.0576100244421376,-104.9788891,39.7554321,-104.9793644,39.7557994
-8008,6566,6567,0.00412306976586438,0.00412306976586438,-104.9797454,39.7560938,-104.9797794,39.7561201
-8009,6567,6568,0.0539582974681531,0.0539582974681531,-104.9797794,39.7561201,-104.9802246,39.7564641
-8010,6568,6569,0.0519961096093482,0.0519961096093482,-104.9802246,39.7564641,-104.9806536,39.7567956
-8011,6569,6570,0.0542246799430147,0.0542246799430147,-104.9806536,39.7567956,-104.981101,39.7571413
-8012,6570,6571,0.0518803862854092,0.0518803862854092,-104.981101,39.7571413,-104.981529,39.7574721
-17654,10141,10140,0.10337885268614,0.10337885268614,-104.9684346,39.7796533,-104.967225,39.7796681
-8013,6571,6572,0.0555098728995741,0.0555098728995741,-104.981529,39.7574721,-104.981987,39.757826
-8014,6572,6573,0.0518861583127315,0.0518861583127315,-104.981987,39.757826,-104.9824151,39.7581568
-8015,6573,6574,0.0518860343451018,0.0518860343451018,-104.9824151,39.7581568,-104.9828432,39.7584876
-8016,6574,6575,0.0508332520538339,0.0508332520538339,-104.9828432,39.7584876,-104.9832626,39.7588117
-8017,6575,6576,0.0544506518702307,0.0544506518702307,-104.9832626,39.7588117,-104.9837118,39.7591589
-8018,6576,6176,0.0529383120108553,0.0529383120108553,-104.9837118,39.7591589,-104.9841486,39.7594964
-8019,6176,6577,0.0529043310628525,0.0529043310628525,-104.9841486,39.7594964,-104.9845851,39.7598337
-8020,6577,3307,0.0513720664630444,0.0513720664630444,-104.9845851,39.7598337,-104.985009,39.7601612
-8021,3307,6578,0.0555027664653656,0.0555027664653656,-104.985009,39.7601612,-104.9854669,39.7605151
-8022,6578,6579,0.0497858933197237,0.0497858933197237,-104.9854669,39.7605151,-104.9858777,39.7608325
-8026,916,6582,0.0644004913493865,0.0644004913493865,-104.9874133,39.7320545,-104.9881664,39.732053
-8027,6582,6583,0.0568408799781512,0.0568408799781512,-104.9881664,39.732053,-104.9888311,39.7320532
-8028,6583,6584,0.122686442934717,0.122686442934717,-104.9888311,39.7320532,-104.9902658,39.7320547
-8029,6584,6585,0.119086225858405,0.119086225858405,-104.9902658,39.7320547,-104.9916584,39.7320541
-8031,4637,6586,0.0681807162053014,0.0681807162053014,-105.0198922,39.7331309,-105.0206647,39.7329791
-8032,6586,4550,0.0899357767109733,0.0899357767109733,-105.0206647,39.7329791,-105.0217163,39.7329917
-8033,4550,6587,0.293817867332518,0.293817867332518,-105.0217163,39.7329917,-105.0251522,39.7329752
-8034,6587,6588,0.104136881172081,0.104136881172081,-105.0251522,39.7329752,-105.0263693,39.7329435
-8035,6588,6589,0.0983651040648428,0.0983651040648428,-105.0263693,39.7329435,-105.0275196,39.7329448
-8036,6589,6129,0.0990923096855932,0.0990923096855932,-105.0275196,39.7329448,-105.0286784,39.7329421
-8037,6129,3972,0.0982639550962464,0.0982639550962464,-105.0286784,39.7329421,-105.0298275,39.7329471
-8038,3972,6590,0.099057650475641,0.099057650475641,-105.0298275,39.7329471,-105.0309859,39.7329468
-17935,10221,8779,0.0167456719913715,0.0167456719913715,-104.9872787,39.7248713,-104.9874745,39.7248723
-8039,6590,1407,0.099982611141039,0.099982611141039,-105.0309859,39.7329468,-105.032155,39.7329341
-8040,1407,6591,0.096574089288832,0.096574089288832,-105.032155,39.7329341,-105.0332843,39.7329428
-8042,5218,3376,0.0125708011673062,0.0125708011673062,-105.0344966,39.7329537,-105.0346426,39.7329669
-8043,3376,3397,0.0411038350876113,0.0411038350876113,-105.0346426,39.7329669,-105.0351232,39.7329603
-8044,3397,6592,0.0474630685655207,0.0474630685655207,-105.0351232,39.7329603,-105.0356782,39.7329656
-8045,6592,5717,0.0112629167716475,0.0112629167716475,-105.0356782,39.7329656,-105.0358099,39.7329669
-8046,5717,5711,0.0353931291626462,0.0353931291626462,-105.0358099,39.7329669,-105.0362237,39.7329601
-8049,6594,6595,0.0372589458613009,0.0372589458613009,-105.0373216,39.7329718,-105.0377569,39.7329864
-8051,6596,6597,0.0491446235593822,0.0491446235593822,-104.996445,39.7320969,-104.9970197,39.732097
-8052,6597,6598,0.0512739101828601,0.0512739101828601,-104.9970197,39.732097,-104.9976193,39.7320971
-8053,6598,6599,0.0445968134228137,0.0445968134228137,-104.9976193,39.7320971,-104.9981408,39.7320938
-8054,6599,6600,0.0456401369039379,0.0456401369039379,-104.9981408,39.7320938,-104.9986745,39.7320904
-8055,6600,252,0.0644261415780049,0.0644261415780049,-104.9986745,39.7320904,-104.9994279,39.7320888
-8056,252,3949,0.0630622102110069,0.0630622102110069,-104.9994279,39.7320888,-105.0001653,39.7320956
-8057,3949,6601,0.0624388506180743,0.0624388506180743,-105.0001653,39.7320956,-105.0008954,39.7320882
-8058,6601,5610,0.057495014751868,0.057495014751868,-105.0008954,39.7320882,-105.0015677,39.7320945
-8059,5610,6602,0.0530621910173341,0.0530621910173341,-105.0015677,39.7320945,-105.0021882,39.7320975
-8060,6602,3731,0.0543021802328704,0.0543021802328704,-105.0021882,39.7320975,-105.0028232,39.7321006
-8061,3731,6603,0.107126213030051,0.107126213030051,-105.0028232,39.7321006,-105.0040758,39.7320862
-8062,6603,4486,0.0992014153017681,0.0992014153017681,-105.0040758,39.7320862,-105.0052345,39.7321295
-8064,302,396,0.456543205648827,0.456543205648827,-104.939982,39.7790462,-104.9347437,39.7798532
-8065,396,6604,0.263692963912388,0.263692963912388,-104.9347437,39.7798532,-104.9316605,39.7797563
-8067,2108,5986,0.103617400145952,0.103617400145952,-104.9269854,39.7788565,-104.9258093,39.7786298
-8068,5986,6605,0.103377873268697,0.103377873268697,-104.9258093,39.7786298,-104.9246358,39.778404
-9343,7304,2051,0.0535709121596095,0.0535709121596095,-104.9680922,39.7020547,-104.9674661,39.7020628
-8070,4763,6169,0.176859243925992,0.176859243925992,-104.9601753,39.7225386,-104.9601619,39.7241291
-8123,6640,6641,0.17629957299909,0.17629957299909,-104.998563,39.7193532,-104.9985621,39.7209387
-8071,6169,6260,0.145538243855646,0.145538243855646,-104.9601619,39.7241291,-104.9613314,39.7250799
-8072,6260,3917,0.186355414418251,0.186355414418251,-104.9613314,39.7250799,-104.963416,39.7245919
-8075,6608,6609,0.216668843775513,0.216668843775513,-104.9221011,39.7367646,-104.9246118,39.7365015
-8076,6609,5988,0.0945207273969085,0.0945207273969085,-104.9246118,39.7365015,-104.9257168,39.7364786
-8077,5988,2122,0.100941576479339,0.100941576479339,-104.9257168,39.7364786,-104.9268972,39.7364673
-8078,2122,6610,0.0983635555045419,0.0983635555045419,-104.9268972,39.7364673,-104.9280463,39.7365084
-8079,6610,6611,0.0970315915473971,0.0970315915473971,-104.9280463,39.7365084,-104.9291809,39.7364935
-8081,6612,6613,0.0935811526066721,0.0935811526066721,-104.9303837,39.7364879,-104.9314781,39.7364838
-8082,6613,2749,0.0990634268639465,0.0990634268639465,-104.9314781,39.7364838,-104.9326365,39.736497
-8083,2749,6614,0.105679418235948,0.105679418235948,-104.9326365,39.736497,-104.9338724,39.736497
-8085,6615,6616,0.101635566171867,0.101635566171867,-104.9349711,39.7364838,-104.9361597,39.7364871
-8086,6616,6617,0.0962607674133666,0.0962607674133666,-104.9361597,39.7364871,-104.9372854,39.7364789
-8087,6617,6618,0.0951534169408166,0.0951534169408166,-104.9372854,39.7364789,-104.9383982,39.7364784
-8088,6618,6619,0.0938879229278784,0.0938879229278784,-104.9383982,39.7364784,-104.9394962,39.7364792
-17940,6560,10223,0.0802385671723254,0.0802385671723254,-104.9868584,39.7241275,-104.9868558,39.7248491
-8090,6620,6621,0.160330485968093,0.160330485968093,-104.9325634,39.6893199,-104.9316943,39.6880425
-8094,6623,1791,0.109097036983099,0.109097036983099,-104.9815624,39.6955402,-104.9807204,39.6948034
-8095,1791,3615,0.039522374569603,0.039522374569603,-104.9807204,39.6948034,-104.9804114,39.6945392
-8096,3615,6624,0.0738542372087066,0.0738542372087066,-104.9804114,39.6945392,-104.9798363,39.6940439
-8097,6624,6625,0.00831390386589708,0.00831390386589708,-104.9798363,39.6940439,-104.9797753,39.6939857
-8098,6625,6626,0.070757439886615,0.070757439886615,-104.9797753,39.6939857,-104.9792691,39.6934825
-8099,6626,6627,0.0728730586061825,0.0728730586061825,-104.9792691,39.6934825,-104.9787159,39.6929842
-8100,6627,5098,0.0960515227378026,0.0960515227378026,-104.9787159,39.6929842,-104.9779272,39.6923695
-8101,5098,6628,0.0550201636939116,0.0550201636939116,-104.9779272,39.6923695,-104.9775188,39.6919873
-8103,6630,239,0.0379460853943731,0.0379460853943731,-104.9769745,39.6914779,-104.9766938,39.6912137
-13573,9130,3,0.109013561390269,0.109013561390269,-105.0161204,39.730571,-105.0152478,39.7298563
-8105,6631,6632,0.0782857815609104,0.0782857815609104,-104.9763643,39.6909232,-104.9757688,39.6903887
-8106,6632,6533,0.166563544591406,0.166563544591406,-104.9757688,39.6903887,-104.9743231,39.6893856
-8108,4496,6633,0.110872689467253,0.110872689467253,-105.0051314,39.787854,-105.006429,39.7878524
-8109,6633,2525,0.333067333185797,0.333067333185797,-105.006429,39.7878524,-105.0101844,39.7886554
-8111,6530,6634,0.0105197308884475,0.0105197308884475,-104.9709294,39.6879413,-104.9709852,39.687857
-9336,7300,4780,0.0501146245066156,0.0501146245066156,-104.9757669,39.7020355,-104.9751815,39.7020519
-8112,6634,6635,2.4458667171276,2.4458667171276,-104.9709852,39.687857,-104.9711364,39.6658611
-8113,6636,3095,0.197330202512711,0.197330202512711,-104.9710271,39.7146913,-104.971013,39.7129167
-8114,3095,3205,0.202310741049047,0.202310741049047,-104.971013,39.7129167,-104.9710252,39.7110973
-8115,3205,6118,0.200935805580311,0.200935805580311,-104.9710252,39.7110973,-104.9710442,39.7092903
-8116,6118,1915,0.200185455389542,0.200185455389542,-104.9710442,39.7092903,-104.971036,39.70749
-8118,6637,5842,0.204932644380513,0.204932644380513,-104.9710805,39.6929591,-104.9710758,39.6911161
-8119,5842,6638,0.194625839062785,0.194625839062785,-104.9710758,39.6911161,-104.9710843,39.6893658
-8121,6639,3724,0.202719550339155,0.202719550339155,-104.9985703,39.7165902,-104.9985724,39.7184133
-8122,3724,6640,0.104515203903702,0.104515203903702,-104.9985724,39.7184133,-104.998563,39.7193532
-8124,6641,2622,0.176067278462879,0.176067278462879,-104.9985621,39.7209387,-104.9985544,39.7225221
-8125,2622,5203,0.176917243967006,0.176917243967006,-104.9985544,39.7225221,-104.9985716,39.7241131
-8126,5203,6232,0.177139986115085,0.177139986115085,-104.9985716,39.7241131,-104.9985893,39.7257061
-8129,6643,6644,0.177268373064057,0.177268373064057,-104.998623,39.7289153,-104.9986313,39.7305095
-8130,6644,6600,0.175826872766799,0.175826872766799,-104.9986313,39.7305095,-104.9986745,39.7320904
-8131,6600,6646,0.177773484713149,0.177773484713149,-104.9986745,39.7320904,-104.9986572,39.7336891
-8133,6647,6648,0.177957472274986,0.177957472274986,-104.998664,39.7352736,-104.9986884,39.7368739
-8134,6648,6649,0.169816854222751,0.169816854222751,-104.9986884,39.7368739,-104.9992032,39.7383489
-8135,6649,6650,0.0183704581232897,0.0183704581232897,-104.9992032,39.7383489,-104.9993525,39.7384677
-8136,6650,6651,0.180283145370232,0.180283145370232,-104.9993525,39.7384677,-104.9999603,39.7400202
-8137,6651,6652,0.0228081566299403,0.0228081566299403,-104.9999603,39.7400202,-104.9999567,39.7402253
-8139,6653,1499,0.197154421185115,0.197154421185115,-105.0448856,39.6967219,-105.0449033,39.6949489
-8140,1499,188,0.204153885319108,0.204153885319108,-105.0449033,39.6949489,-105.0449033,39.6931129
-8141,188,5878,0.159028819712238,0.159028819712238,-105.0449033,39.6931129,-105.045238,39.6917061
-8142,5878,6654,0.24236157922448,0.24236157922448,-105.045238,39.6917061,-105.0452294,39.6895265
-8144,1583,6655,0.303396334779096,0.303396334779096,-105.0452106,39.6881689,-105.0452196,39.6854404
-8145,6656,5874,0.176427569810156,0.176427569810156,-105.0444508,39.7165618,-105.0444942,39.7149755
-8146,5874,6657,0.00810609260917888,0.00810609260917888,-105.0444942,39.7149755,-105.0444802,39.7149034
-8147,6657,6658,0.0470608013663409,0.0470608013663409,-105.0444802,39.7149034,-105.0443368,39.7144948
-8150,6659,6660,0.255748331282284,0.255748331282284,-105.045239,39.700587,-105.045239,39.698287
-8151,6661,6662,0.00688301382680834,0.00688301382680834,-105.0068679,39.6894571,-105.0068682,39.6893952
-8152,6662,6663,0.392909871907801,0.392909871907801,-105.0068682,39.6893952,-105.0068849,39.6858617
-8153,6664,1758,0.130752459577202,0.130752459577202,-105.0073877,39.7075601,-105.0078426,39.7064375
-8154,1758,6314,0.0908112834588078,0.0908112834588078,-105.0078426,39.7064375,-105.0074307,39.7056848
-8155,6314,6665,0.191679756807403,0.191679756807403,-105.0074307,39.7056848,-105.0073877,39.7039613
-8156,6665,763,0.155864734453911,0.155864734453911,-105.0073877,39.7039613,-105.0074463,39.7025603
-8157,763,6668,0.0989081569703109,0.0989081569703109,-105.0074463,39.7025603,-105.007449,39.7016708
-8158,6668,1760,0.0778502447443476,0.0778502447443476,-105.007449,39.7016708,-105.0074982,39.7009717
-8159,1760,6003,0.221657363761595,0.221657363761595,-105.0074982,39.7009717,-105.0065799,39.6991077
-8160,6003,5765,0.101345142024656,0.101345142024656,-105.0065799,39.6991077,-105.0065723,39.6981963
-8161,5765,4032,0.0976983696193598,0.0976983696193598,-105.0065723,39.6981963,-105.0065466,39.6973179
-8162,4032,6669,0.0654151166199609,0.0654151166199609,-105.0065466,39.6973179,-105.0065809,39.6967302
-8164,2301,1759,0.0929594689620956,0.0929594689620956,-105.0067097,39.6957792,-105.0067133,39.6949432
-8165,1759,150,0.2063607315498,0.2063607315498,-105.0067133,39.6949432,-105.0067304,39.6930874
-8166,150,1738,0.199773882802826,0.199773882802826,-105.0067304,39.6930874,-105.0067562,39.6912909
-8168,1953,3100,0.166887359049361,0.166887359049361,-104.9394047,39.7138976,-104.9377781,39.7130688
-8170,370,2529,0.0016410050164606,0.0016410050164606,-105.0298446,39.7379436,-105.0298418,39.737929
-8171,2529,6670,0.0654370448512421,0.0654370448512421,-105.0298418,39.737929,-105.029987,39.7373512
-8200,6684,1172,0.140728922414785,0.140728922414785,-104.9499154,39.7619564,-104.9499105,39.763222
-8172,6670,1937,0.344573874886115,0.344573874886115,-105.029987,39.7373512,-105.0260468,39.738001
-8174,6671,6672,0.176399723080376,0.176399723080376,-104.9362703,39.7162376,-104.9362682,39.7146512
-8176,3101,6673,0.188864615641403,0.188864615641403,-104.9362596,39.7130732,-104.9362583,39.7113747
-8178,4227,1805,0.201844384843532,0.201844384843532,-104.936211,39.696598,-104.9362246,39.6947828
-8179,1805,6674,0.203096969054999,0.203096969054999,-104.9362246,39.6947828,-104.9362004,39.6929564
-8180,6674,5847,0.205632777843381,0.205632777843381,-104.9362004,39.6929564,-104.9362004,39.6911071
-8181,5847,6675,0.197984723567939,0.197984723567939,-104.9362004,39.6911071,-104.9362112,39.6893266
-8183,6676,4226,0.190839047917349,0.190839047917349,-104.936428,39.698394,-104.9365695,39.6966812
-8185,4212,1268,0.185384243862507,0.185384243862507,-105.018373,39.7168584,-105.0203557,39.7175319
-8187,6677,2875,0.129732620530101,0.129732620530101,-104.9498557,39.7837786,-104.9498484,39.7849453
-8188,2875,6678,0.138723736947104,0.138723736947104,-104.9498484,39.7849453,-104.9498214,39.7861927
-8189,6678,6679,0.13144235424121,0.13144235424121,-104.9498214,39.7861927,-104.9498986,39.7873733
-8190,6679,6680,0.782596772143326,0.782596772143326,-104.9498986,39.7873733,-104.948752,39.794356
-8191,3575,5642,0.141762411979774,0.141762411979774,-104.9499292,39.7544371,-104.9499292,39.755712
-8192,5642,4347,0.140039066988463,0.140039066988463,-104.9499292,39.755712,-104.9499266,39.7569714
-8193,4347,6345,0.13859354874742,0.13859354874742,-104.9499266,39.7569714,-104.9499239,39.7582178
-8194,6345,3049,0.140317315615912,0.140317315615912,-104.9499239,39.7582178,-104.9499198,39.7594797
-8195,3049,3024,0.0669551847418331,0.0669551847418331,-104.9499198,39.7594797,-104.9499105,39.7600818
-8196,3024,6681,0.0663747225163875,0.0663747225163875,-104.9499105,39.7600818,-104.9499172,39.7606787
-8197,6681,6682,0.00550527045183645,0.00550527045183645,-104.9499172,39.7606787,-104.9499185,39.7607282
-8198,6682,6683,0.122014480736259,0.122014480736259,-104.9499185,39.7607282,-104.9499154,39.7618255
-8199,6683,6684,0.0145554158979999,0.0145554158979999,-104.9499154,39.7618255,-104.9499154,39.7619564
-8201,1172,892,0.137892873302074,0.137892873302074,-104.9499105,39.763222,-104.9499118,39.7644621
-8202,892,4475,0.139838739747675,0.139838739747675,-104.9499118,39.7644621,-104.9499118,39.7657197
-8203,4475,2777,0.135724572944392,0.135724572944392,-104.9499118,39.7657197,-104.9499105,39.7669403
-8204,2777,5266,0.129198654341627,0.129198654341627,-104.9499105,39.7669403,-104.9499038,39.7681022
-8205,5266,6685,0.122514628608539,0.122514628608539,-104.9499038,39.7681022,-104.9499024,39.769204
-8206,6685,6686,0.20769100942942,0.20769100942942,-104.9499024,39.769204,-104.9498944,39.7710718
-8207,6686,6357,0.202692590161251,0.202692590161251,-104.9498944,39.7710718,-104.949826,39.7728939
-8208,6357,2390,0.107324644883127,0.107324644883127,-104.949826,39.7728939,-104.9498085,39.773859
-8209,2390,6687,0.139594845742255,0.139594845742255,-104.9498085,39.773859,-104.9498032,39.7751144
-8210,6687,6688,0.0752686220951058,0.0752686220951058,-104.9498032,39.7751144,-104.9497992,39.7757913
-8211,6688,749,0.0665961818211898,0.0665961818211898,-104.9497992,39.7757913,-104.9498045,39.7763902
-8212,749,1567,0.140763317861176,0.140763317861176,-104.9498045,39.7763902,-104.9497965,39.7776561
-8213,1567,6689,0.140174033607804,0.140174033607804,-104.9497965,39.7776561,-104.9497884,39.7789167
-8215,6691,696,0.200953877059722,0.200953877059722,-104.9500562,39.7401702,-104.9500677,39.7419774
-8216,696,6692,0.202493921890496,0.202493921890496,-104.9500677,39.7419774,-104.9500467,39.7437984
-8218,508,6693,0.0440506867837982,0.0440506867837982,-104.9492875,39.7477337,-104.9494162,39.7481173
-8219,6694,1202,0.170408371052522,0.170408371052522,-104.9495001,39.7256083,-104.9495101,39.7271408
-8220,1202,6695,0.022095029398504,0.022095029398504,-104.9495101,39.7271408,-104.9495082,39.7273395
-8221,6695,3781,0.199196539116323,0.199196539116323,-104.9495082,39.7273395,-104.9494979,39.7291309
-8222,3781,6696,0.154646276165852,0.154646276165852,-104.9494979,39.7291309,-104.9494801,39.7305216
-8224,951,6697,0.162889491053556,0.162889491053556,-104.9494887,39.732119,-104.949511,39.7335838
-8225,6697,4890,0.17202029430472,0.17202029430472,-104.949511,39.7335838,-104.9494864,39.7351307
-8226,4890,6698,0.182585439334225,0.182585439334225,-104.9494864,39.7351307,-104.9495133,39.7367726
-8227,6698,5488,0.173629132461636,0.173629132461636,-104.9495133,39.7367726,-104.9494922,39.738334
-8230,6700,6701,0.054263196932367,0.054263196932367,-104.9873849,39.7414911,-104.9878331,39.7418366
-8231,6701,5807,0.103685962200744,0.103685962200744,-104.9878331,39.7418366,-104.9886895,39.7424968
-8232,5807,6702,0.106632774624389,0.106632774624389,-104.9886895,39.7424968,-104.9895702,39.7431758
-8233,6702,6703,0.0962060876195832,0.0962060876195832,-104.9895702,39.7431758,-104.9903648,39.7437884
-8234,6703,5959,0.00690380150934747,0.00690380150934747,-104.9903648,39.7437884,-104.9904219,39.7438323
-8235,5959,6704,0.00415729025946559,0.00415729025946559,-104.9904219,39.7438323,-104.9904562,39.7438588
-8236,6704,3004,0.101332185729619,0.101332185729619,-104.9904562,39.7438588,-104.9912932,39.744504
-8237,3004,4395,0.106412326585027,0.106412326585027,-104.9912932,39.744504,-104.9921721,39.7451816
-8238,4395,6705,0.103936208820228,0.103936208820228,-104.9921721,39.7451816,-104.9930306,39.7458434
-8239,6705,6706,0.108885043469445,0.108885043469445,-104.9930306,39.7458434,-104.99393,39.7465367
-8240,6706,6707,0.0530572853327784,0.0530572853327784,-104.99393,39.7465367,-104.9943683,39.7468745
-8241,6707,6708,0.0508918154467618,0.0508918154467618,-104.9943683,39.7468745,-104.9947886,39.7471986
-8242,6708,6709,0.103982459974641,0.103982459974641,-104.9947886,39.7471986,-104.9956475,39.7478607
-8243,6709,6710,0.100220871190445,0.100220871190445,-104.9956475,39.7478607,-104.9964754,39.7484988
-8244,6710,6711,0.00631643031082491,0.00631643031082491,-104.9964754,39.7484988,-104.9965276,39.748539
-8245,6711,6188,0.105471969629518,0.105471969629518,-104.9965276,39.748539,-104.9973988,39.7492106
-8246,6188,6712,0.0552929480053166,0.0552929480053166,-104.9973988,39.7492106,-104.9978555,39.7495627
-8247,6712,6713,0.051155648874288,0.051155648874288,-104.9978555,39.7495627,-104.9982781,39.7498884
-8249,4495,6714,0.112097289917407,0.112097289917407,-105.0051056,39.7870428,-105.0064173,39.7870612
-8250,6714,1079,0.0913714399600763,0.0913714399600763,-105.0064173,39.7870612,-105.0074815,39.7871418
-8251,1079,2524,0.245312559433029,0.245312559433029,-105.0074815,39.7871418,-105.0101975,39.7878569
-8253,6006,6251,0.204148069385731,0.204148069385731,-105.0169911,39.700417,-105.0170083,39.6985811
-8254,6251,6715,0.203065667560916,0.203065667560916,-105.0170083,39.6985811,-105.0169992,39.6967549
-8256,2935,6716,0.266313303297407,0.266313303297407,-105.0169377,39.6883193,-105.0167173,39.6859303
-8257,6416,3741,0.135496222887927,0.135496222887927,-105.0172314,39.7170829,-105.0170254,39.7158747
-8258,3741,5854,0.117997896305679,0.117997896305679,-105.0170254,39.7158747,-105.0170084,39.7148136
-8260,2305,161,0.314948131318509,0.314948131318509,-105.0165019,39.6959725,-105.0165323,39.6931402
-8263,6717,3071,0.175732613824838,0.175732613824838,-104.9425532,39.7146491,-104.9425505,39.7130687
-8264,3071,6718,0.173767654321711,0.173767654321711,-104.9425505,39.7130687,-104.9425631,39.711506
-8265,6718,6100,0.243539432543733,0.243539432543733,-104.9425631,39.711506,-104.9425586,39.7093158
-8267,3290,98,0.422419964097428,0.422419964097428,-104.9444349,39.7038735,-104.9431816,39.700199
-8269,4373,2854,0.205542196291208,0.205542196291208,-105.0015169,39.7015972,-105.0038253,39.7010848
-8271,6719,1596,0.0969388330111528,0.0969388330111528,-105.0125794,39.7006019,-105.0135751,39.701018
-8273,118,6721,0.0966297992771619,0.0966297992771619,-105.0112228,39.7301878,-105.0112289,39.7310568
-8274,6721,6722,0.0414535753801991,0.0414535753801991,-105.0112289,39.7310568,-105.0112278,39.7314296
-8276,2311,6580,0.108271978342533,0.108271978342533,-105.0112958,39.7314875,-105.0113223,39.732461
-8277,6580,6723,0.0197325066377101,0.0197325066377101,-105.0113223,39.732461,-105.0113508,39.7326371
-8301,4041,6740,0.178573713835442,0.178573713835442,-105.0263295,39.7181459,-105.0263463,39.7197518
-8302,6740,1829,0.177333893618754,0.177333893618754,-105.0263463,39.7197518,-105.0263496,39.7213466
-8279,4433,6724,0.324356944785499,0.324356944785499,-105.0109506,39.7174666,-105.0120852,39.72025
-8282,6725,6088,0.0237314605310015,0.0237314605310015,-105.0111475,39.760596,-105.0111515,39.7608094
-8283,6088,4822,0.0875664870066569,0.0875664870066569,-105.0111515,39.7608094,-105.0111481,39.7615969
-8284,4822,6726,0.0475371228844605,0.0475371228844605,-105.0111481,39.7615969,-105.0111753,39.7620239
-8285,6726,4515,0.133316815943664,0.133316815943664,-105.0111753,39.7620239,-105.0111891,39.7632228
-8286,4515,5237,0.132189806591607,0.132189806591607,-105.0111891,39.7632228,-105.0111823,39.7644116
-9507,2581,5179,0.178384896285487,0.178384896285487,-105.0337024,39.7229256,-105.0337195,39.7245298
-8287,5237,6727,0.137381332135233,0.137381332135233,-105.0111823,39.7644116,-105.0111822,39.7656471
-8288,6727,6728,0.132866818946611,0.132866818946611,-105.0111822,39.7656471,-105.0111824,39.766842
-8289,6728,1673,0.133389434002772,0.133389434002772,-105.0111824,39.766842,-105.0111824,39.7680416
-8290,1673,6729,0.137304160443328,0.137304160443328,-105.0111824,39.7680416,-105.0111874,39.7692764
-8292,6730,6731,0.0127908749904874,0.0127908749904874,-105.015836,39.7589269,-105.0159724,39.7589742
-8324,6753,6754,0.0516246355995179,0.0516246355995179,-105.0275713,39.7655797,-105.0275819,39.7660439
-8293,6731,6734,0.253997048781863,0.253997048781863,-105.0159724,39.7589742,-105.0187898,39.7597001
-8294,6734,6735,0.103152527560213,0.103152527560213,-105.0187898,39.7597001,-105.0196661,39.7603379
-8296,6736,6737,0.0131672047429292,0.0131672047429292,-105.0202265,39.7608392,-105.0203579,39.760901
-8298,4636,5383,0.185495216645111,0.185495216645111,-105.0191455,39.732286,-105.0185003,39.7338787
-8300,5972,4041,0.174731707729605,0.174731707729605,-105.0263295,39.7165745,-105.0263295,39.7181459
-8303,1829,6741,0.102538685907791,0.102538685907791,-105.0263496,39.7213466,-105.0263624,39.7222687
-8304,4575,6440,0.137081553799117,0.137081553799117,-105.0268099,39.7414867,-105.0268058,39.7427195
-8305,6440,5291,0.136014333235461,0.136014333235461,-105.0268058,39.7427195,-105.0268109,39.7439427
-8306,5291,6742,0.135023999424587,0.135023999424587,-105.0268109,39.7439427,-105.0268109,39.745157
-8307,6742,10,0.133312225882616,0.133312225882616,-105.0268109,39.745157,-105.0268316,39.7463558
-8308,10,6394,0.135032006709,0.135032006709,-105.0268316,39.7463558,-105.0268144,39.7475701
-8309,6394,6743,0.132451340826744,0.132451340826744,-105.0268144,39.7475701,-105.0268304,39.7487612
-8310,6743,6744,0.135765849385072,0.135765849385072,-105.0268304,39.7487612,-105.0268132,39.7499821
-8311,6744,6745,0.133823531129847,0.133823531129847,-105.0268132,39.7499821,-105.0268172,39.7511856
-8313,6746,6747,0.134513077577228,0.134513077577228,-105.0268257,39.752413,-105.0268211,39.7536227
-8314,6747,6748,0.134201163774105,0.134201163774105,-105.0268211,39.7536227,-105.0268206,39.7548296
-8316,6749,1938,0.0948580215175547,0.0948580215175547,-105.0267907,39.738975,-105.0265344,39.738145
-8318,307,5887,0.0912856383131267,0.0912856383131267,-105.0279141,39.763121,-105.0276119,39.7639084
-8319,5887,6750,0.00721526462075332,0.00721526462075332,-105.0276119,39.7639084,-105.0275762,39.7639672
-8320,6750,6751,0.0269156344716724,0.0269156344716724,-105.0275762,39.7639672,-105.0275693,39.7642092
-8323,6752,6753,0.0510955164610192,0.0510955164610192,-105.0275758,39.7651202,-105.0275713,39.7655797
-8325,6754,6755,0.0510906826304937,0.0510906826304937,-105.0275819,39.7660439,-105.0275923,39.7665033
-8326,6755,6756,0.0511615632316368,0.0511615632316368,-105.0275923,39.7665033,-105.0275956,39.7669634
-8327,6756,1661,0.0519510824904343,0.0519510824904343,-105.0275956,39.7669634,-105.027599,39.7674306
-8328,1661,6758,0.0509873448397052,0.0509873448397052,-105.027599,39.7674306,-105.0275911,39.7678891
-8329,6758,6759,0.0522106080921687,0.0522106080921687,-105.0275911,39.7678891,-105.027583,39.7683586
-8330,6759,6760,0.0506887592311432,0.0506887592311432,-105.027583,39.7683586,-105.0276064,39.7688141
-18752,5186,5654,0.105380231545906,0.105380231545906,-105.0389187,39.7245383,-105.0389235,39.725486
-8331,6760,6761,0.0573063184317804,0.0573063184317804,-105.0276064,39.7688141,-105.0276173,39.7693294
-8333,6762,6763,0.0501245455122697,0.0501245455122697,-105.0276181,39.7698189,-105.0275974,39.7702694
-8334,6763,6764,0.0489376044154541,0.0489376044154541,-105.0275974,39.7702694,-105.0276005,39.7707095
-8337,6766,6767,0.0490039328328154,0.0490039328328154,-105.0275892,39.7716046,-105.0275913,39.7720453
-8338,6767,6768,0.0513498171240697,0.0513498171240697,-105.0275913,39.7720453,-105.0275913,39.7725071
-8339,6768,6769,0.0498709246005866,0.0498709246005866,-105.0275913,39.7725071,-105.0275913,39.7729556
-8341,5533,6770,0.292387787290413,0.292387787290413,-105.027737,39.774038,-105.0275847,39.7766649
-8343,2972,6771,0.121066844508317,0.121066844508317,-105.0268526,39.7584761,-105.0268698,39.7595648
-8344,6771,6093,0.143799158144466,0.143799158144466,-105.0268698,39.7595648,-105.0268612,39.760858
-8345,6093,6772,0.01594646132934,0.01594646132934,-105.0268612,39.760858,-105.0268634,39.7610014
-8346,6772,6773,0.00797333604469033,0.00797333604469033,-105.0268634,39.7610014,-105.0268646,39.7610731
-8347,6773,6774,0.00589372782719237,0.00589372782719237,-105.0268646,39.7610731,-105.0268654,39.7611261
-8349,6775,6776,0.135681018337986,0.135681018337986,-105.0267779,39.7766583,-105.0267719,39.7778785
-8350,6776,2490,0.131411131535027,0.131411131535027,-105.0267719,39.7778785,-105.0267778,39.7790603
-8351,2490,2835,0.135427320939223,0.135427320939223,-105.0267778,39.7790603,-105.0267549,39.7802781
-8353,4067,6052,0.133451561970317,0.133451561970317,-105.0276017,39.7844198,-105.0275763,39.7856198
-8354,6052,5792,0.201431723471221,0.201431723471221,-105.0275763,39.7856198,-105.0275871,39.7874313
-8356,6777,6778,0.137939265537406,0.137939265537406,-105.0265007,39.7560347,-105.0265093,39.7572752
-8358,6658,6779,0.0952206682824548,0.0952206682824548,-105.0443368,39.7144948,-105.0454279,39.7143249
-8359,6779,1328,0.20245506080321,0.20245506080321,-105.0454279,39.7143249,-105.0473907,39.7133074
-9582,1393,7408,0.0523989189771459,0.0523989189771459,-105.0324691,39.7165619,-105.0330817,39.7165583
-8360,1328,6780,0.24344994454685,0.24344994454685,-105.0473907,39.7133074,-105.0484853,39.7112864
-8362,6781,6338,0.132299767169153,0.132299767169153,-104.9684019,39.7570371,-104.9684621,39.758226
-18540,10312,7538,0.710682259466036,0.710682259466036,-105.0532415,39.7643533,-105.0449269,39.7643759
-8363,6338,3026,0.142960379522958,0.142960379522958,-104.9684621,39.758226,-104.9684276,39.7595114
-8364,3026,6782,0.131957413991529,0.131957413991529,-104.9684276,39.7595114,-104.9684183,39.7606981
-8365,6782,6783,0.00572653872195823,0.00572653872195823,-104.9684183,39.7606981,-104.9684183,39.7607496
-8366,6783,6784,0.13893806084239,0.13893806084239,-104.9684183,39.7607496,-104.9684183,39.7619991
-8367,6784,1155,0.138805738856212,0.138805738856212,-104.9684183,39.7619991,-104.9684118,39.7632474
-8368,1155,876,0.139884571461894,0.139884571461894,-104.9684118,39.7632474,-104.968419,39.7645054
-8370,4464,2784,0.134142589801556,0.134142589801556,-104.9684223,39.7657497,-104.968405,39.766956
-8371,2784,5255,0.132457483790055,0.132457483790055,-104.968405,39.766956,-104.9684137,39.7681472
-8372,5255,4727,0.21307200925813,0.21307200925813,-104.9684137,39.7681472,-104.9683879,39.7700633
-8373,4727,5126,0.0748266761428759,0.0748266761428759,-104.9683879,39.7700633,-104.9683965,39.7707362
-8374,5126,6785,0.0660204248306932,0.0660204248306932,-104.9683965,39.7707362,-104.968405,39.7713299
-8375,6785,4284,0.173603246809035,0.173603246809035,-104.968405,39.7713299,-104.9683885,39.7728911
-8377,6786,6787,0.142696164770821,0.142696164770821,-104.9677841,39.7356489,-104.9684521,39.7368249
-8379,5475,6788,0.1766899367412,0.1766899367412,-104.9684271,39.7384126,-104.9684027,39.7400015
-8380,6788,6789,0.178262795240798,0.178262795240798,-104.9684027,39.7400015,-104.9684201,39.7416046
-8381,6789,669,0.0038695834466259,0.0038695834466259,-104.9684201,39.7416046,-104.9684201,39.7416394
-8382,669,6790,0.00298242718157566,0.00298242718157566,-104.9684201,39.7416394,-104.9684215,39.7416662
-8383,6790,6791,0.175654700740653,0.175654700740653,-104.9684215,39.7416662,-104.9684196,39.7432459
-8385,4603,6493,0.141540356779896,0.141540356779896,-104.9684176,39.7448114,-104.968414,39.7460843
-8386,6493,6795,0.235592097571248,0.235592097571248,-104.968414,39.7460843,-104.9683834,39.7482029
-8387,6795,6796,0.135380255100289,0.135380255100289,-104.9683834,39.7482029,-104.9683794,39.7494204
-8388,6796,6797,0.00458123097756658,0.00458123097756658,-104.9683794,39.7494204,-104.9683794,39.7494616
-8389,6797,6798,0.00459235047115107,0.00459235047115107,-104.9683794,39.7494616,-104.9683794,39.7495029
-8390,6798,6799,0.135291654892361,0.135291654892361,-104.9683794,39.7495029,-104.968374,39.7507196
-8391,6799,6800,0.141019064418211,0.141019064418211,-104.968374,39.7507196,-104.968366,39.7519878
-8392,6800,821,0.136459904501488,0.136459904501488,-104.968366,39.7519878,-104.9683443,39.7532149
-8393,821,3562,0.138377698701616,0.138377698701616,-104.9683443,39.7532149,-104.9683703,39.7544592
-8395,5772,516,0.0304460136124682,0.0304460136124682,-104.969071,39.787876,-104.968998,39.788144
-8397,6411,6801,0.0202183008206165,0.0202183008206165,-104.9688032,39.7903462,-104.968859,39.7905229
-8398,6802,469,0.0770276556079661,0.0770276556079661,-104.9681122,39.7183532,-104.9681294,39.7190458
-8399,469,4171,0.115648628347006,0.115648628347006,-104.9681294,39.7190458,-104.9681062,39.7200857
-8400,4171,6803,0.135804309767261,0.135804309767261,-104.9681062,39.7200857,-104.9680977,39.721307
-8401,6803,4756,0.071946790437269,0.071946790437269,-104.9680977,39.721307,-104.9681062,39.721954
-8403,6804,6805,0.127899734301329,0.127899734301329,-104.9688098,39.7807867,-104.968799,39.7819369
-8405,6803,4172,0.13716080109606,0.13716080109606,-104.9680977,39.721307,-104.9679063,39.7200823
-8406,4172,470,0.118198242572908,0.118198242572908,-104.9679063,39.7200823,-104.9678891,39.7190194
-8407,470,6806,0.0738815709398357,0.0738815709398357,-104.9678891,39.7190194,-104.9678805,39.718355
-8410,6807,6808,0.0966312020179035,0.0966312020179035,-104.9241221,39.7053959,-104.9237959,39.7045639
-8411,6808,6809,0.078738376832051,0.078738376832051,-104.9237959,39.7045639,-104.9237358,39.7038573
-8412,6809,3373,0.430297684252256,0.430297684252256,-104.9237358,39.7038573,-104.9252722,39.7001725
-8414,6810,6811,0.203442237788957,0.203442237788957,-104.9246456,39.6893613,-104.9246456,39.6875317
-8415,1476,6812,0.245653934383614,0.245653934383614,-104.9233668,39.695061,-104.9243796,39.6929938
-8416,6812,6813,0.412460631108446,0.412460631108446,-104.9243796,39.6929938,-104.9254353,39.6893745
-8418,6814,6815,0.174359151043162,0.174359151043162,-104.9246289,39.7162454,-104.9246127,39.7146774
-8419,6815,3109,0.176366303019304,0.176366303019304,-104.9246127,39.7146774,-104.9246115,39.7130913
-8420,3109,6816,0.193801807541949,0.193801807541949,-104.9246115,39.7130913,-104.9246085,39.7113484
-8421,6816,6817,0.0198367109802725,0.0198367109802725,-104.9246085,39.7113484,-104.9246161,39.7111701
-8422,6817,6104,0.210336723998741,0.210336723998741,-104.9246161,39.7111701,-104.9246113,39.7092785
-8424,6818,4370,0.0431318765981996,0.0431318765981996,-105.001122,39.704272,-105.0014826,39.7040009
-8426,2496,1451,0.0985317859583251,0.0985317859583251,-105.0026756,39.7039481,-105.0038258,39.7039943
-8427,1451,2853,0.10657030011201,0.10657030011201,-105.0038258,39.7039943,-105.0050712,39.7039722
-8428,2853,6819,0.0983314928072937,0.0983314928072937,-105.0050712,39.7039722,-105.0062204,39.7039547
-8429,6819,6665,0.0998633676523793,0.0998633676523793,-105.0062204,39.7039547,-105.0073877,39.7039613
-8430,6665,6820,0.100599054724802,0.100599054724802,-105.0073877,39.7039613,-105.0085636,39.7039679
-8431,6820,3821,0.10490937410086,0.10490937410086,-105.0085636,39.7039679,-105.0097899,39.7039631
-8432,3821,5897,0.102058293498771,0.102058293498771,-105.0097899,39.7039631,-105.0109828,39.7039743
-9656,6387,7441,0.131317068143471,0.131317068143471,-105.036926,39.7475739,-105.0369584,39.7487546
-8433,5897,6821,0.102847878519627,0.102847878519627,-105.0109828,39.7039743,-105.0121846,39.7039499
-8435,1593,1644,0.201270216910902,0.201270216910902,-105.0133176,39.7039764,-105.0156693,39.7039235
-8436,1644,6822,0.105737900324602,0.105737900324602,-105.0156693,39.7039235,-105.0169053,39.7039235
-8437,6822,4218,0.0969375306307301,0.0969375306307301,-105.0169053,39.7039235,-105.0180383,39.7039103
-8438,4218,6823,0.101326281592707,0.101326281592707,-105.0180383,39.7039103,-105.0192227,39.7039037
-8439,6823,198,0.0969958932624718,0.0969958932624718,-105.0192227,39.7039037,-105.0203557,39.7038707
-8440,198,2927,0.100607212393453,0.100607212393453,-105.0203557,39.7038707,-105.0215316,39.7038839
-8441,2927,5309,0.0991277824360909,0.0991277824360909,-105.0215316,39.7038839,-105.0226903,39.7038773
-8442,5309,1465,0.0998634796625755,0.0998634796625755,-105.0226903,39.7038773,-105.0238576,39.7038839
-8445,1176,6825,0.181656671362534,0.181656671362534,-104.9973407,39.7040997,-104.9991903,39.7049022
-8447,6826,6827,0.865493060175873,0.865493060175873,-105.0432124,39.7042603,-105.0532477,39.7032733
-8448,3119,6828,0.283790323154486,0.283790323154486,-104.9350503,39.6919459,-104.931734,39.691987
-8450,3496,6829,0.0523352446605108,0.0523352446605108,-104.9500131,39.6983858,-104.9506246,39.6983982
-8451,6829,6830,0.0732524388814314,0.0732524388814314,-104.9506246,39.6983982,-104.9512088,39.6979166
-8452,6830,3663,0.0505681915693724,0.0505681915693724,-104.9512088,39.6979166,-104.9513786,39.697481
-8453,3663,4996,0.130580462322132,0.130580462322132,-104.9513786,39.697481,-104.9523584,39.6965806
-8455,6831,6247,0.199011000686174,0.199011000686174,-105.0402684,39.7003444,-105.0402512,39.6985547
-8456,6247,6832,0.199751548882436,0.199751548882436,-105.0402512,39.6985547,-105.0402255,39.6967584
-8458,1495,184,0.20195222577189,0.20195222577189,-105.0402341,39.6949489,-105.0402341,39.6931327
-8459,184,1712,0.203399715506048,0.203399715506048,-105.0402341,39.6931327,-105.0400367,39.6913098
-8460,1712,6833,0.205087968397347,0.205087968397347,-105.0400367,39.6913098,-105.0400351,39.6894654
-8461,6833,1578,0.200928350075194,0.200928350075194,-105.0400351,39.6894654,-105.0401129,39.6876594
-8463,6835,5869,0.177962583931279,0.177962583931279,-105.0397191,39.7165613,-105.0397017,39.7149609
-8464,5869,1321,0.176970219219333,0.176970219219333,-105.0397017,39.7149609,-105.0396887,39.7133694
-8465,1321,1377,0.177352733194459,0.177352733194459,-105.0396887,39.7133694,-105.0397191,39.7117746
-8466,1377,6836,0.0602165463968322,0.0602165463968322,-105.0397191,39.7117746,-105.0397105,39.7112331
-8467,6836,6837,0.0823104914192672,0.0823104914192672,-105.0397105,39.7112331,-105.0397534,39.7104936
-8468,6837,4694,0.116790101887087,0.116790101887087,-105.0397534,39.7104936,-105.0397105,39.7094438
-18756,1322,1378,0.175845021978343,0.175845021978343,-105.0402863,39.7133654,-105.0402944,39.711784
-8469,4694,6838,0.160065096905242,0.160065096905242,-105.0397105,39.7094438,-105.0397105,39.7080043
-8470,6838,5335,0.187163981040998,0.187163981040998,-105.0397105,39.7080043,-105.0397046,39.7063211
-8471,5335,6839,0.265241255095212,0.265241255095212,-105.0397046,39.7063211,-105.0396161,39.7039367
-8473,4319,4507,0.0895898957022207,0.0895898957022207,-105.0350327,39.7104474,-105.0360799,39.7104606
-8474,4507,6840,0.0124803827841914,0.0124803827841914,-105.0360799,39.7104606,-105.0362258,39.7104609
-8475,6840,6841,0.091716588631721,0.091716588631721,-105.0362258,39.7104609,-105.037298,39.7104627
-8476,6841,6842,0.00740292454463184,0.00740292454463184,-105.037298,39.7104627,-105.0373845,39.7104606
-8477,6842,285,0.0146970591982782,0.0146970591982782,-105.0373845,39.7104606,-105.0375561,39.7104672
-8478,285,5069,0.0844368792913957,0.0844368792913957,-105.0375561,39.7104672,-105.0385432,39.7104672
-13551,9125,9126,0.0538488930045225,0.0538488930045225,-105.0111017,39.7231117,-105.0106484,39.7227756
-8479,5069,6837,0.103562524850142,0.103562524850142,-105.0385432,39.7104672,-105.0397534,39.7104936
-8480,6837,6843,0.0961927404969427,0.0961927404969427,-105.0397534,39.7104936,-105.0408778,39.7104804
-8481,6843,6844,0.0998943541512786,0.0998943541512786,-105.0408778,39.7104804,-105.0420451,39.7105068
-8482,6844,6845,0.102052212683234,0.102052212683234,-105.0420451,39.7105068,-105.0432381,39.7105134
-8483,6845,6846,0.456427940885819,0.456427940885819,-105.0432381,39.7105134,-105.0485738,39.7105415
-8484,6847,4419,0.193121729151288,0.193121729151288,-105.0275397,39.7102889,-105.0297971,39.7103154
-8485,4419,6848,0.226127592349504,0.226127592349504,-105.0297971,39.7103154,-105.0324406,39.710322
-8486,6848,5329,0.136063050211474,0.136063050211474,-105.0324406,39.710322,-105.0340312,39.7103291
-8488,4363,1444,0.202825103543368,0.202825103543368,-105.0015367,39.7102427,-105.0039077,39.7102592
-8489,1444,6849,0.200067420030691,0.200067420030691,-105.0039077,39.7102592,-105.0062462,39.7102277
-8490,6849,6850,0.207042581432814,0.207042581432814,-105.0062462,39.7102277,-105.0086666,39.7102277
-8491,6850,5890,0.198967544378973,0.198967544378973,-105.0086666,39.7102277,-105.0109926,39.7102277
-8493,6851,6852,0.0470486102019036,0.0470486102019036,-104.9875556,39.7102383,-104.9881056,39.7102414
-8494,6852,6853,0.0201453367541323,0.0201453367541323,-104.9881056,39.7102414,-104.9883411,39.7102427
-8495,6853,6854,0.0193839654418635,0.0193839654418635,-104.9883411,39.7102427,-104.9885677,39.7102439
-8496,6854,6855,0.0201881052382051,0.0201881052382051,-104.9885677,39.7102439,-104.9888037,39.7102452
-8497,6855,6856,0.0195037980214848,0.0195037980214848,-104.9888037,39.7102452,-104.9890317,39.7102465
-8498,6856,6857,0.0198459509091597,0.0198459509091597,-104.9890317,39.7102465,-104.9892637,39.7102478
-8499,6857,6858,0.0195037180586887,0.0195037180586887,-104.9892637,39.7102478,-104.9894917,39.710249
-8500,6858,6859,0.0199058270401761,0.0199058270401761,-104.9894917,39.710249,-104.9897244,39.7102503
-8501,6859,1871,0.0228399539785669,0.0228399539785669,-104.9897244,39.7102503,-104.9899914,39.7102518
-8504,6861,6862,0.100580939051626,0.100580939051626,-104.9497683,39.7146491,-104.9485924,39.7146476
-8505,6862,6863,0.206622253376394,0.206622253376394,-104.9485924,39.7146476,-104.9461768,39.7146368
-8506,6863,6377,0.103010255262607,0.103010255262607,-104.9461768,39.7146368,-104.9449725,39.7146388
-8507,6377,4832,0.10370389707419,0.10370389707419,-104.9449725,39.7146388,-104.9437601,39.714643
-8508,4832,6717,0.103234622646169,0.103234622646169,-104.9437601,39.714643,-104.9425532,39.7146491
-8509,6717,6864,0.103703073117676,0.103703073117676,-104.9425532,39.7146491,-104.9413408,39.7146471
-8510,6864,6865,0.0481477570236711,0.0481477570236711,-104.9413408,39.7146471,-104.9407779,39.7146468
-8512,5856,6866,0.107372117361429,0.107372117361429,-104.9875046,39.7147611,-104.9862493,39.7147611
-8513,6866,6867,0.050649728561771,0.050649728561771,-104.9862493,39.7147611,-104.9856575,39.7147454
-8514,6867,4989,0.0553571225017631,0.0553571225017631,-104.9856575,39.7147454,-104.9850107,39.7147282
-8515,4989,6868,0.101318948663251,0.101318948663251,-104.9850107,39.7147282,-104.9838262,39.7147216
-8518,6869,3823,0.172685696470764,0.172685696470764,-105.0087904,39.6885896,-105.0106786,39.6880414
-8520,6870,5902,0.0785311515160625,0.0785311515160625,-105.0108215,39.6880414,-105.0117344,39.688114
-8521,5902,6871,0.0681549663304684,0.0681549663304684,-105.0117344,39.688114,-105.0125152,39.6882351
-8522,6871,1996,0.0322361485277902,0.0322361485277902,-105.0125152,39.6882351,-105.0128845,39.6882924
-8523,1996,1587,0.080539505433719,0.080539505433719,-105.0128845,39.6882924,-105.0138115,39.6884179
-8524,1587,6872,0.0787299872144713,0.0787299872144713,-105.0138115,39.6884179,-105.0147213,39.6885235
-8525,6872,1652,0.0828966049530784,0.0828966049530784,-105.0147213,39.6885235,-105.0156826,39.688616
-9751,2441,5738,0.170975903813153,0.170975903813153,-105.0416481,39.7709328,-105.0416591,39.7724704
-8528,6874,5702,0.0496353984033346,0.0496353984033346,-105.0351985,39.7658172,-105.0357792,39.7658132
-8529,5702,6875,0.0484896470155752,0.0484896470155752,-105.0357792,39.7658132,-105.0363465,39.7658167
-8530,6875,6876,0.0523105680266916,0.0523105680266916,-105.0363465,39.7658167,-105.0369584,39.7658073
-8531,6876,6877,0.100875098780012,0.100875098780012,-105.0369584,39.7658073,-105.0381386,39.7658121
-8532,6877,6878,0.0515810406741165,0.0515810406741165,-105.0381386,39.7658121,-105.0387418,39.7657978
-8533,6878,6879,0.0480493192441991,0.0480493192441991,-105.0387418,39.7657978,-105.0393037,39.7657845
-8534,6879,6532,0.0493288645061034,0.0493288645061034,-105.0393037,39.7657845,-105.0398808,39.7657795
-8535,6532,6880,0.0170276228852009,0.0170276228852009,-105.0398808,39.7657795,-105.0400799,39.7657742
-8537,1128,6881,0.0506249344560303,0.0506249344560303,-105.0404722,39.7657639,-105.0410645,39.7657635
-8538,6881,6882,0.0501120958003525,0.0501120958003525,-105.0410645,39.7657635,-105.0416508,39.7657632
-8539,6882,6883,0.0495209017571618,0.0495209017571618,-105.0416508,39.7657632,-105.04223,39.765752
-8540,6883,3846,0.0513776048731037,0.0513776048731037,-105.04223,39.765752,-105.0428311,39.7657541
-8541,3846,6884,0.0512508950828751,0.0512508950828751,-105.0428311,39.7657541,-105.0434307,39.76575
-8542,6884,5564,0.0499163404494349,0.0499163404494349,-105.0434307,39.76575,-105.0440146,39.7657413
-8543,5564,6885,0.0796596960320095,0.0796596960320095,-105.0440146,39.7657413,-105.0449466,39.7657411
-8544,6885,6886,0.709637932237075,0.709637932237075,-105.0449466,39.7657411,-105.0532491,39.7657101
-8545,3929,5619,0.0645570027229576,0.0645570027229576,-105.0010599,39.7656602,-105.0018152,39.7656592
-8546,5619,3704,0.0990278562894358,0.0990278562894358,-105.0018152,39.7656592,-105.0029738,39.7656577
-9775,2551,7512,0.408787216175776,0.408787216175776,-105.0415549,39.7874347,-105.041567,39.791111
-8547,3704,709,0.100036425190807,0.100036425190807,-105.0029738,39.7656577,-105.0041442,39.7656562
-8548,709,6887,0.100506522060904,0.100506522060904,-105.0041442,39.7656562,-105.0053201,39.7656547
-8549,6887,6888,0.0973098804153082,0.0973098804153082,-105.0053201,39.7656547,-105.0064586,39.7656532
-8550,6888,4190,0.138652686970481,0.138652686970481,-105.0064586,39.7656532,-105.0080808,39.7656511
-8551,4190,2516,0.130567043389136,0.130567043389136,-105.0080808,39.7656511,-105.0096084,39.7656491
-8552,2516,6727,0.134515842897036,0.134515842897036,-105.0096084,39.7656491,-105.0111822,39.7656471
-8553,6727,4804,0.136148376446663,0.136148376446663,-105.0111822,39.7656471,-105.0127751,39.765645
-8555,6890,6891,0.127464290413413,0.127464290413413,-105.0143648,39.7656412,-105.0158561,39.7656402
-8558,4625,1248,0.132737908659339,0.132737908659339,-105.0189635,39.7656391,-105.0205165,39.7656381
-8560,4557,2726,0.131937670977173,0.131937670977173,-105.0220695,39.765634,-105.0236131,39.7656257
-8561,2726,6892,0.133086814424956,0.133086814424956,-105.0236131,39.7656257,-105.0251701,39.7656134
-8562,6892,6893,0.0108053798662109,0.0108053798662109,-105.0251701,39.7656134,-105.0252908,39.7655845
-8564,6894,6753,0.13855912942418,0.13855912942418,-105.0259502,39.7655831,-105.0275713,39.7655797
-8565,6753,3977,0.202975190536315,0.202975190536315,-105.0275713,39.7655797,-105.029946,39.7655924
-8567,4726,5125,0.0514216994322944,0.0514216994322944,-104.9698076,39.7693083,-104.970211,39.7696514
-8569,6895,2262,0.104167713702112,0.104167713702112,-104.9317267,39.7692334,-104.9305079,39.7692334
-8570,2262,3612,0.100511868469799,0.100511868469799,-104.9305079,39.7692334,-104.929332,39.7692466
-8571,3612,6896,0.101962634245626,0.101962634245626,-104.929332,39.7692466,-104.928139,39.7692466
-8572,6896,2111,0.0983046285910296,0.0983046285910296,-104.928139,39.7692466,-104.9269888,39.7692466
-8573,2111,6000,0.10637347320659,0.10637347320659,-104.9269888,39.7692466,-104.9257444,39.7692291
-8574,6000,6897,0.0969032855683131,0.0969032855683131,-104.9257444,39.7692291,-104.9246113,39.7692598
-8575,6897,6898,1.19574032306189,1.19574032306189,-104.9246113,39.7692598,-104.9106207,39.7692636
-8576,3909,1049,0.101955415333633,0.101955415333633,-104.9634376,39.7692079,-104.9622462,39.7692541
-8577,1049,6280,0.110396580345644,0.110396580345644,-104.9622462,39.7692541,-104.9609549,39.7692782
-8580,4727,6902,0.104166457963925,0.104166457963925,-104.9683879,39.7700633,-104.9671691,39.7700633
-8581,6902,5404,0.105633279342784,0.105633279342784,-104.9671691,39.7700633,-104.9659333,39.7700479
-8582,5404,3137,0.103462723581867,0.103462723581867,-104.9659333,39.7700479,-104.9647229,39.7700633
-8583,3137,3910,0.106566211179802,0.106566211179802,-104.9647229,39.7700633,-104.9634764,39.7700397
-8585,6685,6904,0.1009798833353,0.1009798833353,-104.9499024,39.769204,-104.9487209,39.769203
-8586,6904,6905,0.0978861772455395,0.0978861772455395,-104.9487209,39.769203,-104.9475756,39.7692051
-8588,6906,6907,0.0919209174538617,0.0919209174538617,-104.947479,39.769204,-104.9464035,39.7692009
-8589,6907,3448,0.0130685497791993,0.0130685497791993,-104.9464035,39.7692009,-104.9462506,39.769202
-8590,3448,6908,0.0816132292801626,0.0816132292801626,-104.9462506,39.769202,-104.9452957,39.7691999
-8591,6908,6909,0.0115722967665996,0.0115722967665996,-104.9452957,39.7691999,-104.9451603,39.7691999
-8592,6909,6910,0.0993816484498638,0.0993816484498638,-104.9451603,39.7691999,-104.9439975,39.7691989
-8593,6910,805,0.0976551438474913,0.0976551438474913,-104.9439975,39.7691989,-104.9428549,39.7691989
-8594,805,6911,0.0993747261569693,0.0993747261569693,-104.9428549,39.7691989,-104.9416922,39.7691937
-8595,6911,6912,0.089888887106785,0.089888887106785,-104.9416922,39.7691937,-104.9406406,39.7691809
-8596,6912,6913,0.0146747703329366,0.0146747703329366,-104.9406406,39.7691809,-104.9404689,39.7691809
-8598,6914,1237,0.101225406841245,0.101225406841245,-105.0111738,39.7765593,-105.0123583,39.7765593
-8600,4811,2178,0.0990205816012607,0.0990205816012607,-105.0134913,39.7765593,-105.01465,39.7765593
-8602,596,6305,0.0508308915230223,0.0508308915230223,-105.015268,39.7765659,-105.0158628,39.7765644
-8603,6305,350,0.0658146671565848,0.0658146671565848,-105.0158628,39.7765644,-105.0166327,39.7765791
-8604,350,6425,0.0344816945169531,0.0344816945169531,-105.0166327,39.7765791,-105.0170361,39.7765857
-8605,6425,6423,0.0330039992635189,0.0330039992635189,-105.0170361,39.7765857,-105.0174223,39.7765857
-8606,6423,5343,0.065281602891384,0.065281602891384,-105.0174223,39.7765857,-105.0181862,39.7765857
-8607,5343,4631,0.0645633414559121,0.0645633414559121,-105.0181862,39.7765857,-105.0189415,39.7765989
-8608,4631,4639,0.0344816846016407,0.0344816846016407,-105.0189415,39.7765989,-105.0193449,39.7766055
-8610,1260,4538,0.0975702004070908,0.0975702004070908,-105.0205036,39.7766121,-105.0216452,39.7766253
-8611,4538,4546,0.0337389213160247,0.0337389213160247,-105.0216452,39.7766253,-105.02204,39.7766253
-8612,4546,6284,0.0652815653305245,0.0652815653305245,-105.02204,39.7766253,-105.0228039,39.7766253
-8613,6284,2702,0.0682127836725729,0.0682127836725729,-105.0228039,39.7766253,-105.0236021,39.7766253
-8614,2702,2716,0.0295959518245788,0.0295959518245788,-105.0236021,39.7766253,-105.0239484,39.7766282
-8615,2716,6915,0.102272155307925,0.102272155307925,-105.0239484,39.7766282,-105.0251451,39.7766366
-8617,277,6916,0.0242091643473284,0.0242091643473284,-104.9875916,39.7783304,-104.9878486,39.7782388
-8618,6916,6917,0.127799932481727,0.127799932481727,-104.9878486,39.7782388,-104.9879258,39.777091
-8620,6918,6919,0.100490474583826,0.100490474583826,-104.9981886,39.7765528,-104.9993645,39.7765528
-8621,6919,3936,0.103902551113693,0.103902551113693,-104.9993645,39.7765528,-105.0005802,39.7765663
-8623,5625,109,0.104159188317199,0.104159188317199,-105.0017162,39.7765726,-105.002935,39.7765792
-9852,7555,7556,0.127428116197139,0.127428116197139,-105.0451391,39.7751943,-105.0452485,39.7763372
-8625,720,6920,0.107136629659166,0.107136629659166,-105.0041538,39.776566,-105.005407,39.7765396
-8626,6920,6921,0.0878190742496679,0.0878190742496679,-105.005407,39.7765396,-105.0064346,39.7765342
-8627,6921,760,0.053327069779034,0.053327069779034,-105.0064346,39.7765342,-105.0070586,39.7765312
-8628,760,4203,0.0493954421158038,0.0493954421158038,-105.0070586,39.7765312,-105.0076366,39.7765332
-19719,10631,10629,0.0181769844157554,0.0181769844157554,-105.0042586,39.7344481,-105.0042425,39.7342851
-8629,4203,4204,0.0379739020862165,0.0379739020862165,-105.0076366,39.7765332,-105.0080809,39.7765386
-8630,4204,1070,0.0609601987006813,0.0609601987006813,-105.0080809,39.7765386,-105.0087942,39.7765334
-8631,1070,1071,0.0198138913639204,0.0198138913639204,-105.0087942,39.7765334,-105.0090259,39.7765399
-8632,1071,2506,0.0820743434648716,0.0820743434648716,-105.0090259,39.7765399,-105.0099863,39.7765386
-8634,6922,6923,0.0332474984310345,0.0332474984310345,-105.0181826,39.7608206,-105.018184,39.7611196
-8635,6923,6924,0.0309457475923951,0.0309457475923951,-105.018184,39.7611196,-105.0181853,39.7613979
-8636,6924,6925,0.06835161173269,0.06835161173269,-105.0181853,39.7613979,-105.0181866,39.7620126
-8641,2302,152,0.296479047850973,0.296479047850973,-105.0087181,39.6957726,-105.008717,39.6931063
-8642,152,1739,0.201132602649999,0.201132602649999,-105.008717,39.6931063,-105.0087303,39.6912975
-8643,1739,1717,0.0492912051446921,0.0492912051446921,-105.0087303,39.6912975,-105.0087646,39.690855
-8645,6315,6820,0.175487833230143,0.175487833230143,-105.0085636,39.7055461,-105.0085636,39.7039679
-8646,6820,764,0.157172405718933,0.157172405718933,-105.0085636,39.7039679,-105.0086065,39.7025548
-8647,764,6004,0.389410143877071,0.389410143877071,-105.0086065,39.7025548,-105.0093641,39.6991016
-8648,6004,6244,0.10052021368651,0.10052021368651,-105.0093641,39.6991016,-105.0093641,39.6981976
-11455,8264,8265,0.215908830963319,0.215908830963319,-104.9897645,39.7839357,-104.9903119,39.7820401
-8649,6244,6929,0.161155152616492,0.161155152616492,-105.0093641,39.6981976,-105.0093602,39.6967483
-8651,6930,6931,0.00809135923630026,0.00809135923630026,-105.0087589,39.6894757,-105.0087696,39.6894034
-8652,6931,6869,0.0905079323611068,0.0905079323611068,-105.0087696,39.6894034,-105.0087904,39.6885896
-8653,6869,6932,0.702159216296169,0.702159216296169,-105.0087904,39.6885896,-105.0089185,39.6822757
-8654,4432,6933,0.289985249196455,0.289985249196455,-105.0086074,39.7174296,-105.0086074,39.7148217
-8655,6933,4666,0.0976954476351155,0.0976954476351155,-105.0086074,39.7148217,-105.0086417,39.7139435
-8656,4666,1333,0.0998446345260267,0.0998446345260267,-105.0086417,39.7139435,-105.0086503,39.7130456
-8657,1333,1388,0.0991189577824547,0.0991189577824547,-105.0086503,39.7130456,-105.0086331,39.7121543
-8658,1388,6935,0.105783123390058,0.105783123390058,-105.0086331,39.7121543,-105.008643,39.711203
-8659,6935,6850,0.108467199591529,0.108467199591529,-105.008643,39.711203,-105.0086666,39.7102277
-8660,6850,4706,0.0984536865396038,0.0984536865396038,-105.0086666,39.7102277,-105.0086237,39.7093429
-8661,4706,6936,0.0998638834924626,0.0998638834924626,-105.0086237,39.7093429,-105.0086065,39.7084449
-8662,6936,1757,0.0991299509071506,0.0991299509071506,-105.0086065,39.7084449,-105.0085894,39.7075535
-8664,2103,5985,0.0990139620475444,0.0990139620475444,-104.9269671,39.7811601,-104.9258084,39.7811601
-8665,5985,6937,0.103423317739921,0.103423317739921,-104.9258084,39.7811601,-104.9245981,39.7811601
-8666,6937,6938,0.197320023520399,0.197320023520399,-104.9245981,39.7811601,-104.9222891,39.7811779
-8667,6939,6940,0.0449145362146055,0.0449145362146055,-104.9592691,39.7819637,-104.9587435,39.7819608
-8668,6940,5016,0.051579913616047,0.051579913616047,-104.9587435,39.7819608,-104.9581399,39.7819575
-8670,6941,5111,0.0702390251054822,0.0702390251054822,-104.972039,39.782685,-104.971535,39.782186
-8671,5111,4709,0.111086762480312,0.111086762480312,-104.971535,39.782186,-104.970235,39.782186
-8672,4709,6805,0.12579570489738,0.12579570489738,-104.970235,39.782186,-104.968799,39.7819369
-8673,6805,6942,0.0911912161186586,0.0911912161186586,-104.968799,39.7819369,-104.9677319,39.7819277
-8674,6942,6943,0.0891583873267196,0.0891583873267196,-104.9677319,39.7819277,-104.9666886,39.7819375
-8675,6943,5415,0.0932705447088281,0.0932705447088281,-104.9666886,39.7819375,-104.9655971,39.7819384
-8676,5415,3141,0.0911590609752313,0.0911590609752313,-104.9655971,39.7819384,-104.9645304,39.7819277
-8677,3141,6944,0.0907415627456138,0.0907415627456138,-104.9645304,39.7819277,-104.9634685,39.7819252
-8678,6944,6945,0.0904253930261683,0.0904253930261683,-104.9634685,39.7819252,-104.9624103,39.7819277
-8679,6945,6282,0.0922034833120112,0.0922034833120112,-104.9624103,39.7819277,-104.9613313,39.7819318
-8680,6282,6946,0.0889556226914396,0.0889556226914396,-104.9613313,39.7819318,-104.9602903,39.7819343
-8681,6946,6947,0.115025423362082,0.115025423362082,-104.9602903,39.7819343,-104.9592799,39.7826178
-19720,10629,10630,0.00318458504180934,0.00318458504180934,-105.0042425,39.7342851,-105.0042609,39.7342602
-8684,4222,6948,0.095205143123347,0.095205143123347,-104.9869216,39.781959,-104.9858077,39.7819768
-8685,6948,6949,0.0983217542586648,0.0983217542586648,-104.9858077,39.7819768,-104.9846576,39.7819504
-8686,6949,970,0.0973398284250994,0.0973398284250994,-104.9846576,39.7819504,-104.9835185,39.781945
-8732,6248,6975,0.200150775141685,0.200150775141685,-105.0414185,39.6985547,-105.0413837,39.6967549
-8687,970,6950,0.0518030391212137,0.0518030391212137,-104.9835185,39.781945,-104.9829139,39.7819109
-8688,6950,5288,0.0521176321182923,0.0521176321182923,-104.9829139,39.7819109,-104.9823077,39.7818593
-8689,5288,3153,0.0937167269922867,0.0937167269922867,-104.9823077,39.7818593,-104.981211,39.7818645
-8690,3153,4969,0.095648805014101,0.095648805014101,-104.981211,39.7818645,-104.9800922,39.781891
-8691,4969,6951,0.121296465267735,0.121296465267735,-104.9800922,39.781891,-104.9786733,39.78186
-8717,1073,2508,0.0718764157350201,0.0718764157350201,-105.0096773,39.7790452,-105.0105184,39.7790452
-8692,6951,6952,0.17298014935093,0.17298014935093,-104.9786733,39.78186,-104.9777379,39.7804804
-8694,2653,4114,0.0446473392844233,0.0446473392844233,-104.9518556,39.7819252,-104.9513332,39.7819179
-8695,4114,6503,0.0806749392848293,0.0806749392848293,-104.9513332,39.7819179,-104.9503891,39.7819179
-11460,8268,8269,0.0284404063889237,0.0284404063889237,-104.9407004,39.7790485,-104.9404976,39.7792513
-8696,6503,6953,0.0279965631557129,0.0279965631557129,-104.9503891,39.7819179,-104.9500616,39.7819108
-8698,6779,1327,0.149226176774822,0.149226176774822,-105.0454279,39.7143249,-105.0452398,39.7129907
-8700,4207,6955,0.0359776758472589,0.0359776758472589,-105.0146092,39.7516734,-105.0147293,39.7519835
-8701,6955,6956,0.0798254305300323,0.0798254305300323,-105.0147293,39.7519835,-105.015237,39.752586
-8702,4494,6957,0.0178038045740406,0.0178038045740406,-105.0052335,39.7402363,-105.0052308,39.7403964
-8703,6957,6958,0.00431775087438634,0.00431775087438634,-105.0052308,39.7403964,-105.0052288,39.7404352
-8704,6958,2148,0.120300859607691,0.120300859607691,-105.0052288,39.7404352,-105.0061384,39.7412606
-8705,2148,6960,0.151431823224066,0.151431823224066,-105.0061384,39.7412606,-105.0073809,39.7422311
-8706,6960,6961,0.22023318510828,0.22023318510828,-105.0073809,39.7422311,-105.0086651,39.743948
-8707,6961,6962,0.137151335408755,0.137151335408755,-105.0086651,39.743948,-105.0094763,39.7450121
-8708,6962,6963,0.0242055632480646,0.0242055632480646,-105.0094763,39.7450121,-105.0095744,39.7452163
-8709,6963,2150,0.0925314192010664,0.0925314192010664,-105.0095744,39.7452163,-105.0101838,39.745904
-8710,2150,6964,0.068609567754435,0.068609567754435,-105.0101838,39.745904,-105.0105704,39.7464447
-8712,6808,6965,0.180937589294771,0.180937589294771,-104.9237959,39.7045639,-104.9216912,39.7047247
-8713,6966,761,0.0469463147130834,0.0469463147130834,-105.0064198,39.7790396,-105.0069691,39.779033
-8714,761,4205,0.0748160898012537,0.0748160898012537,-105.0069691,39.779033,-105.0078446,39.779033
-8715,4205,4398,0.0770157906569643,0.0770157906569643,-105.0078446,39.779033,-105.0087458,39.7790264
-8716,4398,1073,0.0796290264805075,0.0796290264805075,-105.0087458,39.7790264,-105.0096773,39.7790452
-8746,6967,5689,0.127751851222379,0.127751851222379,-105.040852,39.7080241,-105.040852,39.7068752
-8719,271,2710,0.601401594481822,0.601401594481822,-105.0214373,39.7400355,-105.0236301,39.7451745
-11825,321,7799,0.115552151499094,0.115552151499094,-105.0159659,39.7510962,-105.0150392,39.7518527
-8720,2710,6969,0.136362355996719,0.136362355996719,-105.0236301,39.7451745,-105.0252247,39.7451495
-8721,6969,6742,0.135618421861975,0.135618421861975,-105.0252247,39.7451495,-105.0268109,39.745157
-8722,6742,6141,0.132822121773709,0.132822121773709,-105.0268109,39.745157,-105.0283644,39.7451504
-8723,6141,4014,0.136061285283967,0.136061285283967,-105.0283644,39.7451504,-105.0299558,39.7451547
-8724,4014,6970,0.13345730315891,0.13345730315891,-105.0299558,39.7451547,-105.0315167,39.7451646
-8725,6970,6971,0.133022272157071,0.133022272157071,-105.0315167,39.7451646,-105.0330722,39.7451387
-8726,6971,6972,0.0472485991851602,0.0472485991851602,-105.0330722,39.7451387,-105.0336248,39.7451433
-8727,6972,3385,0.0819883397602158,0.0819883397602158,-105.0336248,39.7451433,-105.0345837,39.7451514
-8729,6959,6973,0.0390638293285452,0.0390638293285452,-105.0353181,39.7451528,-105.035775,39.7451536
-19721,10630,10622,0.0559555137804764,0.0559555137804764,-105.0042609,39.7342602,-105.0045066,39.7337938
-8731,6974,6248,0.201212600703242,0.201212600703242,-105.0414357,39.7003642,-105.0414185,39.6985547
-8733,6975,1496,0.201553427836696,0.201553427836696,-105.0413837,39.6967549,-105.0413928,39.6949423
-8734,1496,185,0.202686112287629,0.202686112287629,-105.0413928,39.6949423,-105.0413928,39.6931195
-8735,185,1713,0.204711477509581,0.204711477509581,-105.0413928,39.6931195,-105.041058,39.6912966
-8736,1713,6976,0.201975316682274,0.201975316682274,-105.041058,39.6912966,-105.0410323,39.6894803
-8737,6976,1579,0.167005027356132,0.167005027356132,-105.0410323,39.6894803,-105.0411657,39.6879819
-8738,1579,6977,0.309934492691155,0.309934492691155,-105.0411657,39.6879819,-105.0411743,39.6851946
-8739,1105,5871,0.176266848523138,0.176266848523138,-105.0409021,39.716554,-105.0408965,39.7149688
-8740,5871,1323,0.177439022365804,0.177439022365804,-105.0408965,39.7149688,-105.0408805,39.7133731
-8741,1323,1379,0.176412320749863,0.176412320749863,-105.0408805,39.7133731,-105.0408718,39.7117866
-8742,1379,6978,0.0608448771470547,0.0608448771470547,-105.0408718,39.7117866,-105.040895,39.7112397
-8744,6843,4695,0.114533137035158,0.114533137035158,-105.0408778,39.7104804,-105.0408692,39.7094504
-11961,2694,6570,0.292174399102456,0.292174399102456,-104.9834919,39.7552636,-104.981101,39.7571413
-8745,4695,6967,0.15860414860374,0.15860414860374,-105.0408692,39.7094504,-105.040852,39.7080241
-8747,5689,5336,0.153402847395547,0.153402847395547,-105.040852,39.7068752,-105.0408719,39.7054957
-8749,6979,6980,0.0492417429246164,0.0492417429246164,-105.0408435,39.7039169,-105.0408692,39.7034745
-8750,6980,6981,0.0330798745582329,0.0330798745582329,-105.0408692,39.7034745,-105.040852,39.7031773
-8751,6981,6982,0.110138574841473,0.110138574841473,-105.040852,39.7031773,-105.040852,39.7021868
-8756,6986,6701,0.0557097589480938,0.0557097589480938,-104.9873935,39.7422064,-104.9878331,39.7418366
-8757,6701,6987,0.145037158424782,0.145037158424782,-104.9878331,39.7418366,-104.9890246,39.7409082
-8759,6988,648,0.139238555969963,0.139238555969963,-104.9320716,39.7401271,-104.9320748,39.7413793
-8760,648,683,0.0653158999110773,0.0653158999110773,-104.9320748,39.7413793,-104.9320748,39.7419667
-8761,683,6989,0.0669742957793313,0.0669742957793313,-104.9320748,39.7419667,-104.9320802,39.742569
-8762,6989,1988,0.0901527916408211,0.0901527916408211,-104.9320802,39.742569,-104.932067,39.7433797
-8763,1988,1972,0.0388238770836602,0.0388238770836602,-104.932067,39.7433797,-104.9320748,39.7437288
-8764,1972,4588,0.104222260658419,0.104222260658419,-104.9320748,39.7437288,-104.9320576,39.744666
-8765,4588,4594,0.0293535516568484,0.0293535516568484,-104.9320576,39.744666,-104.9320662,39.7449299
-8766,4594,6498,0.0726584855189905,0.0726584855189905,-104.9320662,39.7449299,-104.9320748,39.7455833
-8767,6498,6481,0.0601855426433911,0.0601855426433911,-104.9320748,39.7455833,-104.9320576,39.7461244
-8768,6481,2470,0.141630886586724,0.141630886586724,-104.9320576,39.7461244,-104.932049,39.7473981
-10003,6678,7628,0.0924131784678609,0.0924131784678609,-104.9498214,39.7861927,-104.9487399,39.7861861
-8771,6991,2401,0.344415463633539,0.344415463633539,-104.9317465,39.7717305,-104.9317412,39.7748279
-8772,2401,6992,0.121260728440928,0.121260728440928,-104.9317412,39.7748279,-104.9317318,39.7759184
-8773,6992,6604,0.426798504146684,0.426798504146684,-104.9317318,39.7759184,-104.9316605,39.7797563
-8774,6604,6993,0.0779497578426637,0.0779497578426637,-104.9316605,39.7797563,-104.9316377,39.7804571
-8775,6993,6994,0.328092841207435,0.328092841207435,-104.9316377,39.7804571,-104.9316278,39.7834077
-8776,6994,6997,0.409387625139532,0.409387625139532,-104.9316278,39.7834077,-104.931834,39.787086
-8777,6997,6998,0.0280465218891248,0.0280465218891248,-104.931834,39.787086,-104.931634,39.787286
-8778,6998,6999,0.240899685742567,0.240899685742567,-104.931634,39.787286,-104.9318001,39.7894487
-8780,7001,7002,0.172502393042501,0.172502393042501,-104.9316416,39.7162506,-104.9316252,39.7178019
-8781,7002,2338,0.177215228547836,0.177215228547836,-104.9316252,39.7178019,-104.9316115,39.7193956
-8782,2338,7003,0.175043780881437,0.175043780881437,-104.9316115,39.7193956,-104.9316056,39.7209698
-8783,7003,4782,0.243888745485023,0.243888745485023,-104.9316056,39.7209698,-104.9316237,39.7231631
-8784,4782,6558,0.132880580598771,0.132880580598771,-104.9316237,39.7231631,-104.9316139,39.7243581
-8785,6558,7004,0.106726338328234,0.106726338328234,-104.9316139,39.7243581,-104.9316074,39.7253179
-8787,2471,5909,0.20581191299575,0.20581191299575,-104.9316893,39.7473987,-104.9316976,39.7492496
-8789,7005,797,0.197387527656916,0.197387527656916,-104.931694,39.751069,-104.9317111,39.7528441
-10028,5604,7642,0.0520984767564003,0.0520984767564003,-105.0016005,39.7273224,-105.0022097,39.7273219
-8790,797,7006,0.203747525811746,0.203747525811746,-104.9317111,39.7528441,-104.9316943,39.7546764
-8793,7007,7008,0.196982052931457,0.196982052931457,-104.9317157,39.7565591,-104.9317193,39.7583306
-8794,7008,3062,0.205201724322207,0.205201724322207,-104.9317193,39.7583306,-104.9317072,39.760176
-8795,3062,7009,0.184895139192435,0.184895139192435,-104.9317072,39.760176,-104.9317039,39.7618388
-8796,7009,7010,0.0217892666308482,0.0217892666308482,-104.9317039,39.7618388,-104.9318494,39.7619997
-8798,7011,7012,0.200694925007541,0.200694925007541,-104.93161,39.725617,-104.9316338,39.7274218
-8799,7012,6367,0.0706060127631708,0.0706060127631708,-104.9316338,39.7274218,-104.9316211,39.7280567
-8800,6367,7013,0.13113311504647,0.13113311504647,-104.9316211,39.7280567,-104.9316269,39.729236
-8801,7013,5949,0.203040029193448,0.203040029193448,-104.9316269,39.729236,-104.9315933,39.7310618
-11962,6570,4451,0.149457420972406,0.149457420972406,-104.981101,39.7571413,-104.9798733,39.7580983
-8802,5949,5141,0.190833355605879,0.190833355605879,-104.9315933,39.7310618,-104.931599,39.732778
-8804,2236,4909,0.189094446681925,0.189094446681925,-104.9314966,39.732987,-104.9315358,39.7346873
-8805,4909,6613,0.199822606976101,0.199822606976101,-104.9315358,39.7346873,-104.9314781,39.7364838
-8806,6613,7014,0.196131290300381,0.196131290300381,-104.9314781,39.7364838,-104.9315168,39.7382474
-8807,7014,7015,0.207545863379423,0.207545863379423,-104.9315168,39.7382474,-104.9315223,39.7401139
-10052,7653,1099,0.0482102658012733,0.0482102658012733,-105.0400098,39.7282525,-105.0405735,39.7282472
-8809,4072,6057,0.192026411520301,0.192026411520301,-105.0310648,39.7838975,-105.0310367,39.7856243
-20532,10847,10848,0.0340308021704454,0.0340308021704454,-105.0229893,39.7608356,-105.0233869,39.7608513
-8810,6057,5797,0.200508266391225,0.200508266391225,-105.0310367,39.7856243,-105.031046,39.7874275
-8812,7016,7017,0.20408918142509,0.20408918142509,-105.030967,39.729303,-105.0309776,39.7311384
-8813,7017,6590,0.201086157953578,0.201086157953578,-105.0309776,39.7311384,-105.0309859,39.7329468
-8814,6590,7018,0.202602619918689,0.202602619918689,-105.0309859,39.7329468,-105.0310033,39.7347688
-8816,7019,4577,0.129538344988774,0.129538344988774,-105.0314796,39.7403377,-105.0315052,39.7415025
-8817,4577,6441,0.138680608354748,0.138680608354748,-105.0315052,39.7415025,-105.0314863,39.7427496
-8818,6441,5293,0.134070515766336,0.134070515766336,-105.0314863,39.7427496,-105.0315166,39.7439551
-8819,5293,6970,0.13449026404854,0.13449026404854,-105.0315166,39.7439551,-105.0315167,39.7451646
-8820,6970,13,0.134902446032247,0.134902446032247,-105.0315167,39.7451646,-105.0315114,39.7463778
-8822,7020,382,0.124884712447894,0.124884712447894,-105.0315108,39.746461,-105.0315032,39.7475841
-8823,382,7021,0.135229787557418,0.135229787557418,-105.0315032,39.7475841,-105.0315281,39.7488001
-8824,7021,7022,0.132193897477211,0.132193897477211,-105.0315281,39.7488001,-105.0315597,39.7499887
-8826,7023,7024,0.137222417835135,0.137222417835135,-105.0315207,39.751179,-105.0315379,39.752413
-8827,7024,7025,0.130431649234377,0.130431649234377,-105.0315379,39.752413,-105.031538,39.753586
-8828,7025,7026,0.138849105164774,0.138849105164774,-105.031538,39.753586,-105.0315379,39.7548347
-8830,6206,7027,0.182945185531037,0.182945185531037,-105.0312569,39.7260772,-105.031276,39.7277224
-8831,7027,7028,0.175756239821697,0.175756239821697,-105.031276,39.7277224,-105.0312846,39.729303
-20483,10830,10831,0.0908860058291454,0.0908860058291454,-105.0204376,39.7583647,-105.0193747,39.7583443
-8833,7029,7030,0.203242108673725,0.203242108673725,-105.0322588,39.7548413,-105.0322599,39.7566691
-8834,7030,7031,0.150413392817758,0.150413392817758,-105.0322599,39.7566691,-105.0322607,39.7580218
-8835,7031,2977,0.0550192556799276,0.0550192556799276,-105.0322607,39.7580218,-105.032261,39.7585166
-8837,657,1886,0.0454008957908892,0.0454008957908892,-105.0322612,39.758985,-105.0322615,39.7593933
-8838,1886,528,0.053551482812009,0.053551482812009,-105.0322615,39.7593933,-105.0322618,39.7598749
-8841,6092,1889,0.0508386682559075,0.0508386682559075,-105.0322556,39.7612283,-105.0322578,39.7616855
-8842,1889,7033,0.0498613554304776,0.0498613554304776,-105.0322578,39.7616855,-105.0322624,39.7621339
-8843,7033,7034,0.00951828955857414,0.00951828955857414,-105.0322624,39.7621339,-105.0322625,39.7622195
-8844,7034,7035,0.036894485571684,0.036894485571684,-105.0322625,39.7622195,-105.0322628,39.7625513
-8845,7035,6085,0.0480584959434146,0.0480584959434146,-105.0322628,39.7625513,-105.0322636,39.7629835
-8847,742,4527,0.0498820470218468,0.0498820470218468,-105.0322639,39.7634453,-105.0322641,39.7638939
-8848,4527,7036,0.0491481642660053,0.0491481642660053,-105.0322641,39.7638939,-105.0322644,39.7643359
-8849,7036,5246,0.0491592800418928,0.0491592800418928,-105.0322644,39.7643359,-105.0322646,39.764778
-8850,5246,7037,0.0481362905740046,0.0481362905740046,-105.0322646,39.764778,-105.0322649,39.7652109
-8851,7037,7038,0.0454453697348376,0.0454453697348376,-105.0322649,39.7652109,-105.0322651,39.7656196
-8852,7038,7039,0.0963504134151864,0.0963504134151864,-105.0322651,39.7656196,-105.0322656,39.7664861
-8853,7039,7040,0.0519319872070824,0.0519319872070824,-105.0322656,39.7664861,-105.0322731,39.7669531
-8854,7040,1663,0.0497523111621545,0.0497523111621545,-105.0322731,39.7669531,-105.0322802,39.7674005
-8855,1663,7041,0.0529510578680093,0.0529510578680093,-105.0322802,39.7674005,-105.0322795,39.7678767
-8856,7041,7042,0.0505381295725577,0.0505381295725577,-105.0322795,39.7678767,-105.0322788,39.7683312
-8857,7042,7043,0.0514848181594461,0.0514848181594461,-105.0322788,39.7683312,-105.0322741,39.7687942
-8858,7043,7044,0.0741692266458179,0.0741692266458179,-105.0322741,39.7687942,-105.0322674,39.7694612
-8861,7046,2493,0.132768776448504,0.132768776448504,-105.0314652,39.7779248,-105.0314566,39.7791188
-20533,10817,10849,0.0041587253937853,0.0041587253937853,-105.0250744,39.7613255,-105.0250742,39.7612881
-8864,2531,1932,0.0596099109005186,0.0596099109005186,-105.0311131,39.7379476,-105.0311255,39.7384836
-8865,1932,7047,0.205921914653592,0.205921914653592,-105.0311255,39.7384836,-105.0311242,39.7403355
-8867,7048,4043,0.179136537042624,0.179136537042624,-105.0312304,39.7165547,-105.031239,39.7181657
-8868,4043,7049,0.176989263158491,0.176989263158491,-105.031239,39.7181657,-105.0312428,39.7197574
-8869,7049,7050,0.100459005094488,0.100459005094488,-105.0312428,39.7197574,-105.0312551,39.7206608
-8871,7051,5531,0.109415807818528,0.109415807818528,-105.031138,39.773086,-105.031138,39.77407
-8872,5531,7052,0.29371056329192,0.29371056329192,-105.031138,39.77407,-105.031078,39.776711
-8874,7053,6824,0.0545745509742182,0.0545745509742182,-105.0315035,39.7694414,-105.0315024,39.7699322
-8875,6824,2424,0.081950775026488,0.081950775026488,-105.0315024,39.7699322,-105.0315008,39.7706692
-8876,2424,7054,0.050315704306832,0.050315704306832,-105.0315008,39.7706692,-105.0315008,39.7711217
-8877,7054,3228,0.0836964212853156,0.0836964212853156,-105.0315008,39.7711217,-105.0315008,39.7718744
-8879,4957,4034,0.0947298154946536,0.0947298154946536,-105.0329814,39.6985547,-105.03299,39.6977028
-8881,7055,5863,0.174726781940175,0.174726781940175,-105.0337024,39.7165547,-105.0336852,39.7149834
-8882,5863,1311,0.179868913340571,0.179868913340571,-105.0336852,39.7149834,-105.0336852,39.7133658
-8883,1311,7056,0.241558820409428,0.241558820409428,-105.0336852,39.7133658,-105.0336594,39.7111935
-8885,7057,1506,0.131503726493835,0.131503726493835,-105.0329041,39.6960716,-105.0332303,39.6949159
-8886,1506,7058,0.131454642278669,0.131454642278669,-105.0332303,39.6949159,-105.0332303,39.6937337
-8888,1059,7059,0.104267738567829,0.104267738567829,-104.9500415,39.7029556,-104.9500388,39.7020179
-10122,3779,7683,0.15407703010384,0.15407703010384,-104.9472954,39.7291251,-104.9472804,39.7305107
-8890,4436,56,0.118965433489173,0.118965433489173,-104.9500303,39.7012585,-104.9500131,39.7001887
-8891,56,5316,0.100608812091724,0.100608812091724,-104.9500131,39.7001887,-104.9500303,39.699284
-8892,5316,3496,0.0998861232245216,0.0998861232245216,-104.9500303,39.699284,-104.9500131,39.6983858
-8893,3496,3665,0.201207219763356,0.201207219763356,-104.9500131,39.6983858,-104.9500131,39.6965763
-8894,3665,7060,0.199611951396181,0.199611951396181,-104.9500131,39.6965763,-104.9500436,39.6947813
-8895,7060,7061,0.203598851492666,0.203598851492666,-104.9500436,39.6947813,-104.9500177,39.6929504
-8896,7061,5840,0.200253664127546,0.200253664127546,-104.9500177,39.6929504,-104.9500299,39.6911495
-8897,5840,267,0.165246780486595,0.165246780486595,-104.9500299,39.6911495,-104.9500299,39.6896634
-8899,7062,7063,0.478103640034168,0.478103640034168,-104.9500436,39.6893239,-104.950296,39.6850286
-8900,7064,5164,0.146200467670157,0.146200467670157,-104.95025,39.7175567,-104.9499442,39.7162631
-8901,5164,6860,0.179928785347538,0.179928785347538,-104.9499442,39.7162631,-104.9499587,39.714645
-8902,6860,7065,0.0135383927129561,0.0135383927129561,-104.9499587,39.714645,-104.9499634,39.7145233
-8903,7065,2385,0.105505653234926,0.105505653234926,-104.9499634,39.7145233,-104.9496422,39.7136072
-8905,3637,7066,0.183542084850882,0.183542084850882,-104.9498644,39.7126594,-104.9498283,39.711009
-8907,5956,7067,0.0986953923423101,0.0986953923423101,-104.9735293,39.7569242,-104.9743469,39.7575509
-8908,7067,3021,0.00874922983807779,0.00874922983807779,-104.9743469,39.7575509,-104.974418,39.7576075
-20416,10767,10781,0.00791916641108638,0.00791916641108638,-105.0239411,39.7605037,-105.0240012,39.7604495
-8910,7068,4380,0.0528744797047038,0.0528744797047038,-104.9748473,39.7579376,-104.9752846,39.7582739
-8911,4380,7069,0.100067477522489,0.100067477522489,-104.9752846,39.7582739,-104.9761123,39.7589103
-8912,7069,7070,0.00503051016222424,0.00503051016222424,-104.9761123,39.7589103,-104.9761539,39.7589423
-8913,7070,7071,0.0533378396892988,0.0533378396892988,-104.9761539,39.7589423,-104.9765951,39.7592815
-8914,7071,7072,0.0517118729985249,0.0517118729985249,-104.9765951,39.7592815,-104.9770228,39.7596104
-8915,7072,7073,0.0528720185185965,0.0528720185185965,-104.9770228,39.7596104,-104.9774602,39.7599466
-8916,7073,7074,0.0524160104100909,0.0524160104100909,-104.9774602,39.7599466,-104.9778937,39.76028
-8917,7074,7075,0.0591259627190951,0.0591259627190951,-104.9778937,39.76028,-104.9783828,39.760656
-8918,7075,7076,0.0472141967853771,0.0472141967853771,-104.9783828,39.760656,-104.9787733,39.7609563
-8919,7076,7077,0.0523938554164358,0.0523938554164358,-104.9787733,39.7609563,-104.9792067,39.7612895
-8920,7077,7078,0.0519698920804767,0.0519698920804767,-104.9792067,39.7612895,-104.9796366,39.76162
-18299,6996,6464,0.157978818539649,0.157978818539649,-105.0409867,39.7766949,-105.041027,39.7752745
-18300,6464,5526,0.155386531700968,0.155386531700968,-105.041027,39.7752745,-105.0410378,39.7738771
-8921,7078,7079,0.0533446665935528,0.0533446665935528,-104.9796366,39.76162,-104.9800778,39.7619593
-8922,7079,6175,0.0539515629761608,0.0539515629761608,-104.9800778,39.7619593,-104.9805241,39.7623024
-8923,6175,7080,0.0522978151475426,0.0522978151475426,-104.9805241,39.7623024,-104.9809567,39.762635
-19723,10628,10634,0.0467495933951474,0.0467495933951474,-105.0039101,39.7341658,-105.0040521,39.7345718
-8924,7080,3310,0.051621129553778,0.051621129553778,-104.9809567,39.762635,-104.9813837,39.7629633
-8925,3310,7081,0.0537939712546602,0.0537939712546602,-104.9813837,39.7629633,-104.9818287,39.7633054
-8926,7081,7082,0.0517442194955157,0.0517442194955157,-104.9818287,39.7633054,-104.9822567,39.7636345
-8957,6821,767,0.155663516472162,0.155663516472162,-105.0121846,39.7039499,-105.012176,39.70255
-8928,6333,7083,0.0368397497726965,0.0368397497726965,-104.9848045,39.7253046,-104.9848713,39.7256319
-8930,7084,756,0.02205451477657,0.02205451477657,-104.985321,39.7750057,-104.9853038,39.7752036
-8931,756,1542,0.146566188527195,0.146566188527195,-104.9853038,39.7752036,-104.9853013,39.7765217
-8933,7085,7086,0.470303961651379,0.470303961651379,-104.9852266,39.7873956,-104.985181,39.791625
-8936,6193,6949,0.198646201862192,0.198646201862192,-104.9846257,39.7801641,-104.9846576,39.7819504
-8937,6949,7088,0.203154460121287,0.203154460121287,-104.9846576,39.7819504,-104.9846662,39.7837774
-8938,7088,7089,0.0315254339634626,0.0315254339634626,-104.9846662,39.7837774,-104.98467,39.7840609
-11963,4451,5499,0.142902063925945,0.142902063925945,-104.9798733,39.7580983,-104.978687,39.7590038
-8939,1547,4267,0.203186762796229,0.203186762796229,-104.9847116,39.7765295,-104.9847077,39.7783568
-8940,4267,281,0.118834586231474,0.118834586231474,-104.9847077,39.7783568,-104.9847034,39.7794255
-8942,4988,5631,0.199717559309749,0.199717559309749,-104.9850453,39.7165375,-104.9850024,39.7183333
-8943,5631,2363,0.114164400355602,0.114164400355602,-104.9850024,39.7183333,-104.9849833,39.7193599
-8944,2363,4145,0.172388156251151,0.172388156251151,-104.9849833,39.7193599,-104.9849945,39.7209102
-8945,4145,4750,0.181329134759237,0.181329134759237,-104.9849945,39.7209102,-104.9850078,39.7225409
-8946,4750,7090,0.0742131518569267,0.0742131518569267,-104.9850078,39.7225409,-104.9850136,39.7232083
-8947,7090,6563,0.101353119972535,0.101353119972535,-104.9850136,39.7232083,-104.9850303,39.7241197
-8949,561,652,0.180277903435168,0.180277903435168,-104.984845,39.7400568,-104.9848243,39.741678
-8950,652,7091,0.1782898608686,0.1782898608686,-104.9848243,39.741678,-104.9848475,39.7432813
-8951,7091,4618,0.177690137841113,0.177690137841113,-104.9848475,39.7432813,-104.9848531,39.7448793
-8952,4618,6484,0.148000947434632,0.148000947434632,-104.9848531,39.7448793,-104.9848486,39.7462103
-8953,6484,3683,0.147902463423831,0.147902463423831,-104.9848486,39.7462103,-104.9848394,39.7475404
-8955,7092,562,0.138318567115304,0.138318567115304,-104.9848557,39.7385982,-104.9848447,39.7398421
-14765,7355,5462,0.177046926118077,0.177046926118077,-104.9804554,39.7400222,-104.9804447,39.73843
-8958,767,6719,0.219350766482543,0.219350766482543,-105.012176,39.70255,-105.0125794,39.7006019
-8959,6719,6005,0.0551645975375965,0.0551645975375965,-105.0125794,39.7006019,-105.0128712,39.7001595
-8961,7093,7094,0.0134618314671123,0.0134618314671123,-105.000125,39.7424805,-105.00026,39.7424182
-8962,7094,7095,0.0768336523164077,0.0768336523164077,-105.00026,39.7424182,-105.0010418,39.7420775
-8964,4351,7096,0.187825105408858,0.187825105408858,-104.9417876,39.7564997,-104.9418048,39.7581888
-8966,5169,7097,0.173957232527163,0.173957232527163,-104.9413494,39.7162383,-104.9413358,39.7178027
-8967,7097,2358,0.178391537286392,0.178391537286392,-104.9413358,39.7178027,-104.9413272,39.719407
-8968,2358,4158,0.173186099094122,0.173186099094122,-104.9413272,39.719407,-104.9413274,39.7209645
-8969,4158,4745,0.175498953556533,0.175498953556533,-104.9413274,39.7209645,-104.9413272,39.7225428
-8970,4745,6540,0.175479189908249,0.175479189908249,-104.9413272,39.7225428,-104.9413381,39.7241209
-8971,6540,7098,0.165132887334241,0.165132887334241,-104.9413381,39.7241209,-104.9413186,39.7256059
-8974,900,4481,0.13673901951185,0.13673901951185,-104.9417276,39.7644767,-104.9417177,39.7657064
-8975,4481,2805,0.133564794339907,0.133564794339907,-104.9417177,39.7657064,-104.9417,39.7669075
-8976,2805,5271,0.130621351715569,0.130621351715569,-104.9417,39.7669075,-104.9417049,39.7680822
-8977,5271,6911,0.123597927289001,0.123597927289001,-104.9417049,39.7680822,-104.9416922,39.7691937
-8978,6911,7100,0.15221685519733,0.15221685519733,-104.9416922,39.7691937,-104.9417016,39.7705626
-8979,7100,6360,0.259362269049004,0.259362269049004,-104.9417016,39.7705626,-104.9416989,39.7728951
-8981,7102,704,0.204412961923,0.204412961923,-104.9418797,39.7401097,-104.9419371,39.7419475
-19726,10627,10635,0.0226092820114286,0.0226092820114286,-105.0051511,39.7346116,-105.0048867,39.7346105
-8984,7103,1210,0.168411442672594,0.168411442672594,-104.9418336,39.7256059,-104.9418512,39.7271204
-8985,1210,7104,0.0210253069731913,0.0210253069731913,-104.9418512,39.7271204,-104.9418336,39.727309
-8986,7104,3769,0.199568149574658,0.199568149574658,-104.9418336,39.727309,-104.9418526,39.7291037
-8987,3769,7105,0.154728508227155,0.154728508227155,-104.9418526,39.7291037,-104.9418583,39.7304952
-8988,7105,960,0.176377624617973,0.176377624617973,-104.9418583,39.7304952,-104.9418349,39.7320813
-8989,960,7106,0.174688777733473,0.174688777733473,-104.9418349,39.7320813,-104.9418263,39.7336523
-8990,7106,4897,0.160532597504136,0.160532597504136,-104.9418263,39.7336523,-104.9418217,39.735096
-8991,4897,7107,0.182971792068578,0.182971792068578,-104.9418217,39.735096,-104.9418165,39.7367415
-8992,7107,5494,0.175655210225522,0.175655210225522,-104.9418165,39.7367415,-104.9418112,39.7383212
-8994,7108,7109,0.103100291492917,0.103100291492917,-105.0251569,39.7347553,-105.0263626,39.7347585
-8995,7109,7110,0.101964294660044,0.101964294660044,-105.0263626,39.7347585,-105.027555,39.7347529
-8998,7112,6130,0.00642185713601216,0.00642185713601216,-105.0286006,39.7347486,-105.0286757,39.7347484
-8999,6130,3973,0.100482235790598,0.100482235790598,-105.0286757,39.7347484,-105.0298507,39.7347596
-9000,3973,7018,0.0985643830580019,0.0985643830580019,-105.0298507,39.7347596,-105.0310033,39.7347688
-9001,7018,1404,0.0976294798550341,0.0976294798550341,-105.0310033,39.7347688,-105.0321449,39.734782
-9002,1404,7113,0.0934722476940573,0.0934722476940573,-105.0321449,39.734782,-105.033238,39.734786
-9003,7113,3377,0.114974498647875,0.114974498647875,-105.033238,39.734786,-105.0345825,39.7347754
-9004,3377,5719,0.0923374297912636,0.0923374297912636,-105.0345825,39.7347754,-105.0355549,39.7344143
-9006,4633,4552,0.211900461491767,0.211900461491767,-105.0192915,39.7347429,-105.0217376,39.7344378
-9008,7114,1219,0.0873426128412716,0.0873426128412716,-105.0113249,39.7352378,-105.0123463,39.7352444
-9009,1219,7115,0.154859667381265,0.154859667381265,-105.0123463,39.7352444,-105.0141573,39.7352378
-9011,128,4195,0.0990809801322014,0.0990809801322014,-105.0065998,39.7352916,-105.0077585,39.7352875
-9012,4195,2526,0.225168737431611,0.225168737431611,-105.0077585,39.7352875,-105.0103699,39.7355479
-9015,7118,7119,0.0484685816363468,0.0484685816363468,-104.9975929,39.7352666,-104.9981597,39.7352703
-9016,7119,6647,0.0431240450937402,0.0431240450937402,-104.9981597,39.7352703,-104.998664,39.7352736
-9017,6647,7120,0.0651283567093235,0.0651283567093235,-104.998664,39.7352736,-104.9994256,39.7352803
-9020,7121,5612,0.0589161599786899,0.0589161599786899,-105.000878,39.7352858,-105.001567,39.735285
-9021,5612,7122,0.0519812671049742,0.0519812671049742,-105.001567,39.735285,-105.0021749,39.735285
-9022,7122,3734,0.0556068739901258,0.0556068739901258,-105.0021749,39.735285,-105.0028252,39.7352849
-9024,4852,7123,0.126059374848785,0.126059374848785,-104.987369,39.7352666,-104.9888432,39.7352618
-9025,7123,7124,0.118149722641793,0.118149722641793,-104.9888432,39.7352618,-104.9902249,39.7352572
-9026,7124,7125,0.121835161075312,0.121835161075312,-104.9902249,39.7352572,-104.9916497,39.7352526
-9027,7125,7126,0.110094663779518,0.110094663779518,-104.9916497,39.7352526,-104.9929372,39.7352483
-9028,7126,4678,0.101155068622002,0.101155068622002,-104.9929372,39.7352483,-104.99412,39.7352636
-9029,4678,4925,0.0375558738681089,0.0375558738681089,-104.99412,39.7352636,-104.9945592,39.735263
-9031,7127,5718,0.122304701667431,0.122304701667431,-105.0369772,39.7339305,-105.0356487,39.734338
-9033,7129,7130,0.00755996146089403,0.00755996146089403,-105.0369832,39.7347877,-105.0370687,39.7347704
-11437,7984,8034,0.589388539362218,0.589388539362218,-105.0218262,39.7840053,-105.0287237,39.7840235
-9034,7130,7131,0.0405147672355999,0.0405147672355999,-105.0370687,39.7347704,-105.0375424,39.7347779
-15917,9748,9104,0.13371062185673,0.13371062185673,-105.0432496,39.7156399,-105.0421714,39.7165106
-9036,7132,7133,0.0505601360898234,0.0505601360898234,-105.0381234,39.7347872,-105.0387146,39.7347945
-9037,7133,7134,0.050337833066874,0.050337833066874,-105.0387146,39.7347945,-105.0393032,39.7348018
-9039,2563,2043,0.341755774769512,0.341755774769512,-104.9865077,39.7643898,-104.983686,39.7665674
-9040,2043,4280,0.587618591665046,0.587618591665046,-104.983686,39.7665674,-104.97885,39.7703237
-9041,4280,2317,0.145996435168453,0.145996435168453,-104.97885,39.7703237,-104.977649,39.7712574
-9042,2317,7135,0.26875426467805,0.26875426467805,-104.977649,39.7712574,-104.9754213,39.7729633
-9044,4276,6167,0.145395831525207,0.145395831525207,-104.9744288,39.7737425,-104.9732245,39.7746661
-9045,6167,7136,0.583394412429138,0.583394412429138,-104.9732245,39.7746661,-104.9684185,39.7783922
-9046,7136,7137,0.0430989040252276,0.0430989040252276,-104.9684185,39.7783922,-104.9680592,39.7786642
-9048,7138,7139,0.17847978963111,0.17847978963111,-104.9721501,39.7400093,-104.9721564,39.7416144
-9049,7139,665,0.00426988518248375,0.00426988518248375,-104.9721564,39.7416144,-104.9721564,39.7416528
-9050,665,7140,0.0039363004033923,0.0039363004033923,-104.9721564,39.7416528,-104.9721564,39.7416882
-9051,7140,7141,0.126828000444838,0.126828000444838,-104.9721564,39.7416882,-104.9721376,39.7428287
-9052,7141,7142,0.0463243816448395,0.0463243816448395,-104.9721376,39.7428287,-104.9721403,39.7432453
-9053,7142,4606,0.175854779813893,0.175854779813893,-104.9721403,39.7432453,-104.9721399,39.7448268
-13036,8929,8930,0.492762775909981,0.492762775909981,-104.9903693,39.7822705,-104.9961216,39.7819588
-9054,4606,2885,0.129583918723674,0.129583918723674,-104.9721399,39.7448268,-104.9724659,39.7459649
-9056,818,3559,0.139007675873083,0.139007675873083,-104.9721439,39.7532392,-104.9721334,39.7544893
-9057,3559,5633,0.138607438022671,0.138607438022671,-104.9721334,39.7544893,-104.9721228,39.7557358
-9060,5632,7143,0.0971697431213832,0.0971697431213832,-104.9727182,39.7557338,-104.9721228,39.7564782
-9061,7143,4337,0.0573209846859246,0.0573209846859246,-104.9721228,39.7564782,-104.9721228,39.7569937
-9062,4337,6336,0.137619327969477,0.137619327969477,-104.9721228,39.7569937,-104.9721098,39.7582313
-9063,6336,3051,0.138690015537613,0.138690015537613,-104.9721098,39.7582313,-104.9721269,39.7594785
-9064,3051,7144,0.13740372400277,0.13740372400277,-104.9721269,39.7594785,-104.9721245,39.7607142
-9065,7144,7145,0.00531536492655497,0.00531536492655497,-104.9721245,39.7607142,-104.9721251,39.760762
-9066,7145,7146,0.138359891845979,0.138359891845979,-104.9721251,39.760762,-104.9721238,39.7620063
-9069,873,4461,0.138000198054367,0.138000198054367,-104.9721084,39.7645147,-104.972125,39.7657557
-9070,4461,2781,0.134827246932882,0.134827246932882,-104.972125,39.7657557,-104.9721138,39.7669682
-9073,6941,5768,0.263560531238909,0.263560531238909,-104.972039,39.782685,-104.974836,39.781686
-9074,5768,7148,0.00867578094755507,0.00867578094755507,-104.974836,39.781686,-104.974928,39.781719
-9075,6325,4168,0.192770537182593,0.192770537182593,-104.9717416,39.7183547,-104.9717542,39.7200883
-9076,4168,4753,0.208190261859574,0.208190261859574,-104.9717542,39.7200883,-104.971754,39.7219606
-9077,4753,6544,0.199662965025148,0.199662965025148,-104.971754,39.7219606,-104.9717626,39.7237562
-9078,6544,7149,0.203286576405629,0.203286576405629,-104.9717626,39.7237562,-104.9717634,39.7255844
-9079,7149,7150,0.188877376950956,0.188877376950956,-104.9717634,39.7255844,-104.9717727,39.727283
-9080,7150,3796,0.199750569153682,0.199750569153682,-104.9717727,39.727283,-104.9717723,39.7290794
-9081,3796,5939,0.152615142478991,0.152615142478991,-104.9717723,39.7290794,-104.9717744,39.7304519
-9082,5939,940,0.17776127985835,0.17776127985835,-104.9717744,39.7304519,-104.9717901,39.7320505
-9083,940,2224,0.184599395002716,0.184599395002716,-104.9717901,39.7320505,-104.9718055,39.7337106
-9084,2224,4874,0.160770298676863,0.160770298676863,-104.9718055,39.7337106,-104.9718399,39.7351562
-9085,4874,7151,0.191866995309803,0.191866995309803,-104.9718399,39.7351562,-104.9718371,39.7368817
-9086,7151,5472,0.170431656658562,0.170431656658562,-104.9718371,39.7368817,-104.9718493,39.7384144
-9087,5472,7152,0.177051030738846,0.177051030738846,-104.9718493,39.7384144,-104.971867,39.7400066
-9089,7153,7154,0.0893451644905786,0.0893451644905786,-104.9594535,39.725616,-104.9594545,39.7248125
-9090,7154,6170,0.0753374734775839,0.0753374734775839,-104.9594545,39.7248125,-104.9594375,39.7241351
-9091,6170,4764,0.177646502224828,0.177646502224828,-104.9594375,39.7241351,-104.959446,39.7225375
-9092,4764,4150,0.173084945690311,0.173084945690311,-104.959446,39.7225375,-104.9594242,39.720981
-9094,2344,7155,0.117646857783728,0.117646857783728,-104.9594135,39.719411,-104.9592982,39.7183567
-9095,7155,7156,0.0188390787773898,0.0188390787773898,-104.9592982,39.7183567,-104.9592945,39.7181873
-9096,7156,7157,0.234434662963778,0.234434662963778,-104.9592945,39.7181873,-104.9592821,39.716079
-9097,7157,7158,0.0252454738977112,0.0252454738977112,-104.9592821,39.716079,-104.9592875,39.715852
-9100,7159,7160,0.136141908223257,0.136141908223257,-105.0381363,39.7487551,-105.0381214,39.7499794
-9101,7160,7161,0.134175303690261,0.134175303690261,-105.0381214,39.7499794,-105.038138,39.751186
-9102,7161,5540,0.104957650418394,0.104957650418394,-105.038138,39.751186,-105.0381637,39.7521297
-9103,5540,2408,0.0972515972300324,0.0972515972300324,-105.0381637,39.7521297,-105.03816,39.7530043
-9104,2408,4293,0.0986699082335262,0.0986699082335262,-105.03816,39.7530043,-105.0381466,39.7538916
-9105,4293,7163,0.053830719074408,0.053830719074408,-105.0381466,39.7538916,-105.0381509,39.7543757
-9107,7164,7165,0.0631810706690825,0.0631810706690825,-105.0381551,39.754855,-105.0381565,39.7554232
-9108,7165,2982,0.341967827784909,0.341967827784909,-105.0381565,39.7554232,-105.0381258,39.7584985
-9109,2982,7166,0.203801982791161,0.203801982791161,-105.0381258,39.7584985,-105.038164,39.7603311
-9110,7166,7167,0.199088364823678,0.199088364823678,-105.038164,39.7603311,-105.0381183,39.7621212
-9111,7167,7168,0.00801722711592813,0.00801722711592813,-105.0381183,39.7621212,-105.0381187,39.7621933
-9112,7168,7169,0.0420988990456398,0.0420988990456398,-105.0381187,39.7621933,-105.0381211,39.7625719
-9113,7169,7170,0.153973329045923,0.153973329045923,-105.0381211,39.7625719,-105.0381296,39.7639566
-9114,7170,6877,0.206323620437175,0.206323620437175,-105.0381296,39.7639566,-105.0381386,39.7658121
-9115,6877,1688,0.202556013709455,0.202556013709455,-105.0381386,39.7658121,-105.038125,39.7676337
-10335,2984,7779,0.0471482180711068,0.0471482180711068,-105.039304,39.7584901,-105.0393085,39.7589141
-9116,1688,7171,0.203959165094635,0.203959165094635,-105.038125,39.7676337,-105.0381554,39.7694678
-9117,7171,2434,0.200457262733771,0.200457262733771,-105.0381554,39.7694678,-105.038137,39.7712705
-9118,2434,7172,0.202529539970889,0.202529539970889,-105.038137,39.7712705,-105.0381026,39.7730917
-9119,7172,6459,0.289084578375032,0.289084578375032,-105.0381026,39.7730917,-105.0381018,39.7756915
-19730,5374,10637,0.0120223368882016,0.0120223368882016,-105.0044526,39.7337074,-105.0044418,39.7338152
-9120,6459,7173,0.114101346723939,0.114101346723939,-105.0381018,39.7756915,-105.0380903,39.7767176
-9121,7173,7174,0.184116579370581,0.184116579370581,-105.0380903,39.7767176,-105.0380913,39.7783734
-9122,7174,7175,0.203885371802177,0.203885371802177,-105.0380913,39.7783734,-105.0380683,39.7802069
-9123,7175,7176,0.042345014713444,0.042345014713444,-105.0380683,39.7802069,-105.0380731,39.7805877
-9124,7176,7177,0.0543545796747623,0.0543545796747623,-105.0380731,39.7805877,-105.0380792,39.7810765
-9125,7177,1424,0.112240471555906,0.112240471555906,-105.0380792,39.7810765,-105.0380823,39.7820859
-9128,7179,6066,0.193267920890686,0.193267920890686,-105.0380848,39.7838741,-105.0380858,39.7856122
-9129,6066,2546,0.202503184194707,0.202503184194707,-105.0380858,39.7856122,-105.0380674,39.7874333
-9130,2546,7180,0.41050413821522,0.41050413821522,-105.0380674,39.7874333,-105.038093,39.791125
-9131,6215,7181,0.274932291342238,0.274932291342238,-105.0383676,39.7257784,-105.0383822,39.7282509
-9132,7181,7182,0.263103709588239,0.263103709588239,-105.0383822,39.7282509,-105.0384019,39.730617
-9133,7182,7183,0.130644941399459,0.130644941399459,-105.0384019,39.730617,-105.0383934,39.7317919
-9134,2594,5185,0.17867940782894,0.17867940782894,-105.0383715,39.7229322,-105.0383678,39.7245391
-9137,5066,4054,0.176950276628118,0.176950276628118,-105.0384889,39.7165547,-105.0385175,39.7181459
-9138,4054,7184,0.19508037930475,0.19508037930475,-105.0385175,39.7181459,-105.0385175,39.7199003
-19295,10466,10470,0.0590667450333129,0.0590667450333129,-104.988856,39.7399993,-104.988856,39.7394681
-9139,7184,1855,0.159486883286254,0.159486883286254,-105.0385175,39.7199003,-105.0385175,39.7213346
-9140,1855,2595,0.177991984486361,0.177991984486361,-105.0385175,39.7213346,-105.038507,39.7229353
-9142,7132,7185,0.200740739267956,0.200740739267956,-105.0381234,39.7347872,-105.0380981,39.7365924
-9144,317,5720,0.10120960072344,0.10120960072344,-105.0345742,39.7830397,-105.0357487,39.7831573
-9146,7186,7178,0.0998150102985703,0.0998150102985703,-105.0369189,39.7832402,-105.0380864,39.7832692
-9147,7178,7187,0.0486556483534758,0.0486556483534758,-105.0380864,39.7832692,-105.0386558,39.7832674
-9148,7187,7188,0.0504244958733159,0.0504244958733159,-105.0386558,39.7832674,-105.0392459,39.7832655
-9149,7188,6720,0.0492257170939005,0.0492257170939005,-105.0392459,39.7832655,-105.0398219,39.7832727
-9150,6720,1139,0.0498554245278369,0.0498554245278369,-105.0398219,39.7832727,-105.0404053,39.7832671
-9151,1139,6900,0.0496729718772752,0.0496729718772752,-105.0404053,39.7832671,-105.0409865,39.7832584
-9152,6900,7189,0.0498269762893686,0.0498269762893686,-105.0409865,39.7832584,-105.0415695,39.7832496
-9153,7189,7190,0.0493080365100491,0.0493080365100491,-105.0415695,39.7832496,-105.0421451,39.7832183
-9154,7190,3869,0.0507905077365378,0.0507905077365378,-105.0421451,39.7832183,-105.042738,39.783186
-9155,3869,7191,0.0511248031667964,0.0511248031667964,-105.042738,39.783186,-105.0433363,39.783186
-9156,7191,5583,0.0514153335527058,0.0514153335527058,-105.0433363,39.783186,-105.043938,39.783186
-9158,6374,7192,0.0508291685906189,0.0508291685906189,-104.9453733,39.6929492,-104.9447793,39.6929426
-9159,7192,4828,0.0505211822659055,0.0505211822659055,-104.9447793,39.6929426,-104.9441889,39.692936
-9160,4828,7193,0.0991435070786191,0.0991435070786191,-104.9441889,39.692936,-104.9430302,39.6929294
-9161,7193,7194,0.0991520630524694,0.0991520630524694,-104.9430302,39.6929294,-104.9418714,39.692936
-9162,7194,7195,0.0477883926406413,0.0477883926406413,-104.9418714,39.692936,-104.9413129,39.6929321
-9163,7195,7196,0.0494484339552123,0.0494484339552123,-104.9413129,39.6929321,-104.940735,39.692928
-9164,7196,7197,0.0162046310747774,0.0162046310747774,-104.940735,39.692928,-104.9405457,39.6929325
-9166,7198,6674,0.0990044216409842,0.0990044216409842,-104.9373575,39.6929534,-104.9362004,39.6929564
-9167,6674,3118,0.097669089391913,0.097669089391913,-104.9362004,39.6929564,-104.9350589,39.6929564
-9168,3118,7199,0.284505571449601,0.284505571449601,-104.9350589,39.6929564,-104.931734,39.692987
-9169,7199,6008,0.094118222257641,0.094118222257641,-104.931734,39.692987,-104.930634,39.692987
-9170,6008,2844,0.0930401433253343,0.0930401433253343,-104.930634,39.692987,-104.9295466,39.6929872
-9171,2844,3493,0.0866696350082772,0.0866696350082772,-104.9295466,39.6929872,-104.9285338,39.6930004
-9172,3493,5349,0.0889131869713594,0.0889131869713594,-104.9285338,39.6930004,-104.9274952,39.692974
-9174,5392,2946,0.0903397575627338,0.0903397575627338,-104.926491,39.6929872,-104.9254353,39.692974
-9175,2946,6812,0.0903546565690543,0.0903546565690543,-104.9254353,39.692974,-104.9243796,39.6929938
-9176,6812,1813,0.0889131954631002,0.0889131954631002,-104.9243796,39.6929938,-104.923341,39.6929674
-9179,7201,7202,0.0514316470718889,0.0514316470718889,-104.9868436,39.6930068,-104.9862426,39.6930154
-9180,7202,571,0.0452247620537137,0.0452247620537137,-104.9862426,39.6930154,-104.9857141,39.6930216
-9181,571,4984,0.0498774301127379,0.0498774301127379,-104.9857141,39.6930216,-104.9851312,39.6930164
-9182,4984,7203,0.0499341834444621,0.0499341834444621,-104.9851312,39.6930164,-104.9845476,39.6930151
-9183,7203,7204,0.048540539361363,0.048540539361363,-104.9845476,39.6930151,-104.9839803,39.693012
-9184,7204,7205,0.049454954432791,0.049454954432791,-104.9839803,39.693012,-104.9834023,39.693013
-9185,7205,7206,0.0536988191890685,0.0536988191890685,-104.9834023,39.693013,-104.9827747,39.693012
-9186,7206,7207,0.0531339953218732,0.0531339953218732,-104.9827747,39.693012,-104.9821537,39.693012
-9188,7208,7209,0.0488986834694409,0.0488986834694409,-104.9815692,39.6930097,-104.9809977,39.6930099
-10408,7087,974,0.0520701135747565,0.0520701135747565,-104.9846429,39.7873956,-104.9840335,39.7873956
-9190,3616,7210,0.0490025655343953,0.0490025655343953,-104.9804184,39.6930078,-104.9798457,39.6930109
-9191,7210,7211,0.0492346778344629,0.0492346778344629,-104.9798457,39.6930109,-104.9792704,39.6930016
-9192,7211,6627,0.0474835705848566,0.0474835705848566,-104.9792704,39.6930016,-104.9787159,39.6929842
-9193,6627,7212,0.0259857221754392,0.0259857221754392,-104.9787159,39.6929842,-104.9784122,39.6929827
-9195,7213,2937,0.0797219985274474,0.0797219985274474,-104.9260704,39.7047422,-104.9251387,39.7047572
-9197,4927,7214,0.0675624031978383,0.0675624031978383,-104.9964542,39.7378444,-104.9964568,39.738452
-9198,7214,7215,0.172837829649445,0.172837829649445,-104.9964568,39.738452,-104.9964757,39.7400063
-9199,7215,7216,0.0152456900319388,0.0152456900319388,-104.9964757,39.7400063,-104.9964776,39.7401434
-9201,7217,7218,0.150068688599712,0.150068688599712,-104.9963567,39.7165938,-104.9963575,39.7179434
-9202,7218,3717,0.0523950557178934,0.0523950557178934,-104.9963575,39.7179434,-104.9963578,39.7184146
-9203,3717,7219,0.104026300075926,0.104026300075926,-104.9963578,39.7184146,-104.9963677,39.7193501
-9204,7219,7220,0.176478214187187,0.176478214187187,-104.9963677,39.7193501,-104.9963617,39.7209372
-9205,7220,2618,0.176744455093666,0.176744455093666,-104.9963617,39.7209372,-104.9963593,39.7225267
-9206,2618,7221,0.0524078444870275,0.0524078444870275,-104.9963593,39.7225267,-104.9963642,39.722998
-9207,7221,5199,0.124408908082812,0.124408908082812,-104.9963642,39.722998,-104.9963759,39.7241168
-9208,5199,6236,0.175254349133775,0.175254349133775,-104.9963759,39.7241168,-104.9963748,39.7256929
-9209,6236,7222,0.181371367707484,0.181371367707484,-104.9963748,39.7256929,-104.9963829,39.727324
-9210,7222,7223,0.17624861030264,0.17624861030264,-104.9963829,39.727324,-104.9964257,39.7289087
-10431,7818,3372,0.256942906695214,0.256942906695214,-104.9257985,39.7038513,-104.9262421,39.7015659
-9211,7223,7224,0.177882160330428,0.177882160330428,-104.9964257,39.7289087,-104.9964124,39.7305084
-9212,7224,6596,0.176655139096338,0.176655139096338,-104.9964124,39.7305084,-104.996445,39.7320969
-9213,6596,7225,0.176764713771947,0.176764713771947,-104.996445,39.7320969,-104.9965056,39.7336859
-9214,7225,7117,0.195263815592674,0.195263815592674,-104.9965056,39.7336859,-104.9968556,39.7354212
-9215,7117,7226,0.162883394969853,0.162883394969853,-104.9968556,39.7354212,-104.9971131,39.7368726
-9217,7227,7228,0.0929813395053153,0.0929813395053153,-104.9964704,39.7584562,-104.9964723,39.7592924
-9218,7228,7229,0.0382886967355643,0.0382886967355643,-104.9964723,39.7592924,-104.996479,39.7596367
-9220,5754,5537,0.136674994706822,0.136674994706822,-104.9960241,39.7730069,-104.9959296,39.7742339
-9222,7230,2419,0.0601608416165443,0.0601608416165443,-104.9960543,39.7699637,-104.9960628,39.7705047
-9224,7231,1877,0.0370441528846065,0.0370441528846065,-104.9903483,39.7057878,-104.9899153,39.7057918
-9225,1877,7232,0.131692111532173,0.131692111532173,-104.9899153,39.7057918,-104.9883759,39.7057847
-9227,7233,7234,0.109254283787097,0.109254283787097,-104.9875581,39.7057416,-104.9862815,39.7057131
-9228,7234,7235,0.0988980977520615,0.0988980977520615,-104.9862815,39.7057131,-104.9851255,39.7057028
-9229,7235,7236,0.100150595242985,0.100150595242985,-104.9851255,39.7057028,-104.9839553,39.705676
-9230,7236,7237,0.0982491727225652,0.0982491727225652,-104.9839553,39.705676,-104.9828076,39.7057088
-9231,7237,7238,0.102801611377818,0.102801611377818,-104.9828076,39.7057088,-104.981606,39.7057212
-9232,7238,3624,0.10072637054969,0.10072637054969,-104.981606,39.7057212,-104.9804286,39.7057129
-9233,3624,7239,0.0490877236423196,0.0490877236423196,-104.9804286,39.7057129,-104.9798548,39.7057161
-9234,7239,7240,0.0506406047895119,0.0506406047895119,-104.9798548,39.7057161,-104.9792633,39.7057342
-9236,7241,7242,0.053434962453162,0.053434962453162,-104.9786816,39.7057151,-104.978057,39.7057102
-9238,7243,2049,0.0999533143701506,0.0999533143701506,-104.9686775,39.7056856,-104.9675091,39.7056815
-9239,2049,6322,0.101276003642563,0.101276003642563,-104.9675091,39.7056815,-104.9663254,39.7056659
-9240,6322,7245,0.101332248433824,0.101332248433824,-104.9663254,39.7056659,-104.9651409,39.7056725
-9241,7245,7246,0.0464773018813961,0.0464773018813961,-104.9651409,39.7056725,-104.9645976,39.7056725
-9242,7246,3478,0.0519094915924,0.0519094915924,-104.9645976,39.7056725,-104.9639908,39.7056725
-9243,3478,7247,0.0444674652348498,0.0444674652348498,-104.9639908,39.7056725,-104.963471,39.7056744
-9244,7247,6076,0.0542711695249793,0.0542711695249793,-104.963471,39.7056744,-104.9628366,39.7056767
-9245,6076,7248,0.0457685619049607,0.0457685619049607,-104.9628366,39.7056767,-104.9623016,39.7056798
-9246,7248,3693,0.0511581578497335,0.0511581578497335,-104.9623016,39.7056798,-104.9617036,39.7056833
-9247,3693,7249,0.0484213428818718,0.0484213428818718,-104.9617036,39.7056833,-104.9611376,39.7056792
-9248,7249,4568,0.050423249762551,0.050423249762551,-104.9611376,39.7056792,-104.9605482,39.7056749
-9249,4568,7250,0.105671525256593,0.105671525256593,-104.9605482,39.7056749,-104.959313,39.7056659
-9251,3486,5352,0.142707971743977,0.142707971743977,-104.9294222,39.7052339,-104.9277592,39.7051328
-9252,5352,5389,0.0672375375003041,0.0672375375003041,-104.9277592,39.7051328,-104.9269733,39.705141
-9254,6807,7251,0.174038770872886,0.174038770872886,-104.9241221,39.7053959,-104.9220909,39.7054841
-9255,5582,7252,0.0700127444942287,0.0700127444942287,-105.0439618,39.7810973,-105.0431425,39.7811012
-9256,3438,7253,0.0456922323357007,0.0456922323357007,-105.0345914,39.7810741,-105.0351261,39.7810763
-9257,7253,5712,0.0536735809918437,0.0536735809918437,-105.0351261,39.7810763,-105.0357542,39.7810788
-9258,5712,7254,0.0996465050991051,0.0996465050991051,-105.0357542,39.7810788,-105.0369203,39.7810777
-9259,7254,7177,0.0990312619116669,0.0990312619116669,-105.0369203,39.7810777,-105.0380792,39.7810765
-9261,2234,5135,0.107869698056021,0.107869698056021,-104.937292,39.7328682,-104.9373097,39.7338382
-9263,5150,4905,0.0686856789021931,0.0686856789021931,-104.9373129,39.7340572,-104.9372922,39.7346747
-9264,4905,6617,0.200618729294218,0.200618729294218,-104.9372922,39.7346747,-104.9372854,39.7364789
-9265,6617,7255,0.197431040074393,0.197431040074393,-104.9372854,39.7364789,-104.937234,39.738254
-9266,7255,7256,0.208183749937444,0.208183749937444,-104.937234,39.738254,-104.9372502,39.7401262
-9267,7256,645,0.141740585620374,0.141740585620374,-104.9372502,39.7401262,-104.9372542,39.7414009
-9268,645,7257,0.130628958724451,0.130628958724451,-104.9372542,39.7414009,-104.937237,39.7425756
-9269,7257,1991,0.0908850253123808,0.0908850253123808,-104.937237,39.7425756,-104.9372254,39.7433929
-9270,1991,1975,0.0373563291181619,0.0373563291181619,-104.9372254,39.7433929,-104.9372332,39.7437288
-9271,1975,4592,0.133760117820733,0.133760117820733,-104.9372332,39.7437288,-104.9372215,39.7449317
-9272,4592,6479,0.133361447138617,0.133361447138617,-104.9372215,39.7449317,-104.9372075,39.746131
-9273,6479,2465,0.142787478559072,0.142787478559072,-104.9372075,39.746131,-104.9372165,39.7474151
-9275,7258,905,0.276860539558146,0.276860539558146,-104.9368356,39.7619935,-104.9368593,39.7644833
-9276,905,7259,0.128469118479352,0.128469118479352,-104.9368593,39.7644833,-104.936828,39.7656384
-9278,7260,7261,0.202325557275685,0.202325557275685,-104.9371488,39.7256129,-104.93713,39.7274324
-9279,7261,7262,0.200099452464053,0.200099452464053,-104.93713,39.7274324,-104.9370272,39.7292302
-9281,6555,7263,0.106048977208119,0.106048977208119,-104.9371056,39.724358,-104.9371139,39.7253117
-9283,2464,5907,0.204805215249635,0.204805215249635,-104.9373281,39.7474151,-104.9372594,39.7492562
-9284,5907,7264,0.200064951669816,0.200064951669816,-104.9372594,39.7492562,-104.9372465,39.7510554
-9285,7264,792,0.198575253788857,0.198575253788857,-104.9372465,39.7510554,-104.937233,39.7528412
-9286,792,7265,0.203153130979463,0.203153130979463,-104.937233,39.7528412,-104.937233,39.7546682
-20553,10855,10830,0.00226863418878014,0.00226863418878014,-105.020438,39.7583443,-105.0204376,39.7583647
-9287,7265,4356,0.200718125919129,0.200718125919129,-104.937233,39.7546682,-104.93723,39.7564733
-9288,4356,7266,0.203231013450801,0.203231013450801,-104.93723,39.7564733,-104.9372284,39.758301
-9289,7266,3059,0.208369469805255,0.208369469805255,-104.9372284,39.758301,-104.9372198,39.7601749
-9290,3059,7267,0.184116398047724,0.184116398047724,-104.9372198,39.7601749,-104.9371963,39.7618306
-9292,7268,7269,0.172274443384772,0.172274443384772,-104.9373314,39.7162377,-104.937334,39.717787
-9293,7269,7270,0.174965358395498,0.174965358395498,-104.937334,39.717787,-104.9373314,39.7193605
-9294,7270,7271,0.171051925436011,0.171051925436011,-104.9373314,39.7193605,-104.9373374,39.7208988
-9295,7271,4777,0.251271094456806,0.251271094456806,-104.9373374,39.7208988,-104.9371074,39.7231516
-9297,7272,7273,0.142786274588455,0.142786274588455,-104.9405891,39.7425825,-104.9389193,39.7425624
-9298,7273,7257,0.143845033730321,0.143845033730321,-104.9389193,39.7425624,-104.937237,39.7425756
-9299,7257,2012,0.148104007431453,0.148104007431453,-104.937237,39.7425756,-104.9355048,39.7425756
-9300,2012,7274,0.146908840218292,0.146908840218292,-104.9355048,39.7425756,-104.9337866,39.742569
-9303,3209,6121,0.198338421830571,0.198338421830571,-104.9651422,39.7110945,-104.9651409,39.7093108
-9305,1920,7245,0.200452444306493,0.200452444306493,-104.9651495,39.7074752,-104.9651409,39.7056725
-9306,7245,3264,0.201454965709232,0.201454965709232,-104.9651409,39.7056725,-104.965154,39.7038608
-9307,3264,7275,0.199928677430985,0.199928677430985,-104.965154,39.7038608,-104.9651573,39.7020628
-9308,7275,75,0.205218774272454,0.205218774272454,-104.9651573,39.7020628,-104.9651905,39.7002174
-9309,75,3514,0.203667659516003,0.203667659516003,-104.9651905,39.7002174,-104.965228,39.698386
-9310,3514,4256,0.200449218475779,0.200449218475779,-104.965228,39.698386,-104.9652055,39.6965834
-9312,7276,7277,0.199018039984475,0.199018039984475,-104.9652088,39.6947654,-104.9652174,39.6929756
-9314,3099,7278,0.127218718588174,0.127218718588174,-104.9652044,39.7127074,-104.9651186,39.7115652
-9315,7279,7280,0.0142903725965103,0.0142903725965103,-105.0017875,39.7595933,-105.0017017,39.7597036
-9316,7280,7281,0.105207552208829,0.105207552208829,-105.0017017,39.7597036,-105.0005447,39.7600263
-9317,7282,7283,0.0344899807253543,0.0344899807253543,-104.9875556,39.7021328,-104.9871988,39.7019884
-9318,7283,221,0.0709873405596775,0.0709873405596775,-104.9871988,39.7019884,-104.9863694,39.7019694
-9319,221,484,0.00880336166381634,0.00880336166381634,-104.9863694,39.7019694,-104.9862665,39.7019699
-9320,484,7284,0.0467023879280561,0.0467023879280561,-104.9862665,39.7019699,-104.9857206,39.701971
-9321,7284,7285,0.0520434565562666,0.0520434565562666,-104.9857206,39.701971,-104.9851123,39.7019661
-9322,7285,7286,0.0966986010135768,0.0966986010135768,-104.9851123,39.7019661,-104.983982,39.7019687
-9324,7287,7288,0.0474221057340072,0.0474221057340072,-104.9833604,39.7019722,-104.9828061,39.7019753
-9325,7288,7289,0.0544896557893494,0.0544896557893494,-104.9828061,39.7019753,-104.9821695,39.701991
-18313,7291,7292,0.0491935106031602,0.0491935106031602,-105.0324737,39.7711548,-105.0330488,39.7711732
-12266,8623,8624,0.00987394368395642,0.00987394368395642,-105.0065475,39.7556498,-105.006432,39.7556507
-9326,7289,7293,0.050792182381771,0.050792182381771,-104.9821695,39.701991,-104.9815761,39.7020057
-9327,7293,7294,0.0490541601102182,0.0490541601102182,-104.9815761,39.7020057,-104.9810028,39.7020136
-9328,7294,3625,0.0491311379128154,0.0491311379128154,-104.9810028,39.7020136,-104.9804286,39.7020215
-9329,3625,7295,0.0500044548990436,0.0500044548990436,-104.9804286,39.7020215,-104.9798441,39.7020215
-9330,7295,7296,0.0493114932484129,0.0493114932484129,-104.9798441,39.7020215,-104.9792677,39.7020215
-9331,7296,7297,0.0492273088766844,0.0492273088766844,-104.9792677,39.7020215,-104.9786923,39.7020248
-9332,7297,7298,0.0497149327544833,0.0497149327544833,-104.9786923,39.7020248,-104.9781112,39.7020281
-9333,7298,7299,0.052416983039433,0.052416983039433,-104.9781112,39.7020281,-104.9774985,39.7020281
-9334,7299,1775,0.0489179547921138,0.0489179547921138,-104.9774985,39.7020281,-104.9769267,39.7020281
-9335,1775,7300,0.0992252392752366,0.0992252392752366,-104.9769267,39.7020281,-104.9757669,39.7020355
-9338,1523,7301,0.0991304181855472,0.0991304181855472,-104.9745731,39.702049,-104.9734144,39.7020424
-9340,4180,7302,0.159005264658095,0.159005264658095,-104.9922008,39.7021389,-104.9940584,39.7020918
-9342,7303,7304,0.0508070845581107,0.0508070845581107,-104.968686,39.7020471,-104.9680922,39.7020547
-9344,2051,7305,0.0464895652372381,0.0464895652372381,-104.9674661,39.7020628,-104.9669227,39.7020659
-9346,6323,7306,0.0487652334573382,0.0487652334573382,-104.9663246,39.7020694,-104.9657546,39.7020662
-9347,7306,7275,0.0511008721086019,0.0511008721086019,-104.9657546,39.7020662,-104.9651573,39.7020628
-9348,7275,7307,0.0472167292045061,0.0472167292045061,-104.9651573,39.7020628,-104.9646054,39.7020597
-9349,7307,3479,0.0519136696037329,0.0519136696037329,-104.9646054,39.7020597,-104.9639986,39.7020562
-9350,3479,7308,0.0469673771341736,0.0469673771341736,-104.9639986,39.7020562,-104.9634496,39.7020562
-9351,7308,6077,0.0514245726695928,0.0514245726695928,-104.9634496,39.7020562,-104.9628485,39.7020562
-9353,7309,3694,0.0517124258100223,0.0517124258100223,-104.9622856,39.7020498,-104.9616812,39.702043
-9354,3694,7310,0.0465067719763774,0.0465067719763774,-104.9616812,39.702043,-104.9611376,39.7020462
-9355,7310,4569,0.0489536209610463,0.0489536209610463,-104.9611376,39.7020462,-104.9605654,39.7020496
-9356,4569,7311,0.0489635595580148,0.0489635595580148,-104.9605654,39.7020496,-104.9599932,39.7020401
-9357,7311,7312,0.0558091568866214,0.0558091568866214,-104.9599932,39.7020401,-104.959341,39.7020293
-9359,5166,6862,0.178524347295205,0.178524347295205,-104.9485858,39.7162531,-104.9485924,39.7146476
-10575,7382,7866,0.0530283440074436,0.0530283440074436,-105.0337009,39.7197539,-105.0343209,39.7197519
-9361,5665,7313,0.0484754519993524,0.0484754519993524,-104.9486082,39.7033386,-104.9485996,39.7029027
-9362,7313,7314,0.161386441141289,0.161386441141289,-104.9485996,39.7029027,-104.9489488,39.7014764
-9363,7314,57,0.142345062746265,0.142345062746265,-104.9489488,39.7014764,-104.9487429,39.7002061
-9365,3497,7315,0.199650199137315,0.199650199137315,-104.9488372,39.6983858,-104.9488718,39.6965905
-9366,7315,7316,0.20195222577189,0.20195222577189,-104.9488718,39.6965905,-104.9488718,39.6947743
-9368,7317,7318,0.0198371749129227,0.0198371749129227,-104.9558194,39.7180363,-104.9558194,39.7182147
-9369,7318,2347,0.132104544578518,0.132104544578518,-104.9558194,39.7182147,-104.9558328,39.7194027
-9370,2347,4152,0.17573096379452,0.17573096379452,-104.9558328,39.7194027,-104.9558113,39.720983
-9371,4152,4739,0.172852869151079,0.172852869151079,-104.9558113,39.720983,-104.9558154,39.7225375
-9372,4739,6534,0.176755786446123,0.176755786446123,-104.9558154,39.7225375,-104.9558194,39.7241271
-9373,6534,7319,0.165399065875657,0.165399065875657,-104.9558194,39.7241271,-104.9558381,39.7256145
-9376,1193,7321,0.0221951663944447,0.0221951663944447,-104.9555538,39.7271183,-104.9555518,39.7273179
-9377,7321,3785,0.200018254719297,0.200018254719297,-104.9555518,39.7273179,-104.9555585,39.7291167
-9379,6356,2387,0.110864888603468,0.110864888603468,-104.9541524,39.7728932,-104.9541313,39.7738901
-9380,2387,7322,0.139379472361554,0.139379472361554,-104.9541313,39.7738901,-104.9541485,39.7751435
-9381,7322,7323,0.046481070265731,0.046481070265731,-104.9541485,39.7751435,-104.954144,39.7755615
-9382,7323,745,0.0926146092564692,0.0926146092564692,-104.954144,39.7755615,-104.954147,39.7763944
-9383,745,1563,0.142337228385207,0.142337228385207,-104.954147,39.7763944,-104.9541741,39.7776743
-9384,1563,7324,0.139015648234869,0.139015648234869,-104.9541741,39.7776743,-104.9541282,39.778924
-9385,7324,7325,0.121637038292373,0.121637038292373,-104.9541282,39.778924,-104.9541227,39.7800179
-9387,7326,1054,0.0187920378071022,0.0187920378071022,-104.954122,39.7801258,-104.9541213,39.7802948
-9388,1054,7327,0.1804815052178,0.1804815052178,-104.9541213,39.7802948,-104.9541142,39.7819179
-9389,7327,7328,0.200952784069958,0.200952784069958,-104.9541142,39.7819179,-104.9541227,39.7837251
-9390,7328,2873,0.135770477885413,0.135770477885413,-104.9541227,39.7837251,-104.9541301,39.7849461
-9391,2873,7329,0.140734857106897,0.140734857106897,-104.9541301,39.7849461,-104.9541142,39.7862117
-9392,7329,7330,0.130551116437319,0.130551116437319,-104.9541142,39.7862117,-104.954097,39.7873857
-9394,3573,5641,0.135671111475822,0.135671111475822,-104.954935,39.7545002,-104.954926,39.7557203
-9395,5641,4346,0.139178472263861,0.139178472263861,-104.954926,39.7557203,-104.9549522,39.7569718
-9397,6344,3047,0.139334930188281,0.139334930188281,-104.9549352,39.7582063,-104.9548745,39.7594585
-9398,3047,7331,0.13779347001033,0.13779347001033,-104.9548745,39.7594585,-104.9548797,39.7606977
-9399,7331,7332,0.00320242529462838,0.00320242529462838,-104.9548797,39.7606977,-104.9548798,39.7607265
-9400,7332,7333,0.124149220639337,0.124149220639337,-104.9548798,39.7607265,-104.9548815,39.761843
-9401,7333,7334,0.0152895413448354,0.0152895413448354,-104.9548815,39.761843,-104.9548825,39.7619805
-9402,7334,1168,0.139240705026111,0.139240705026111,-104.9548825,39.7619805,-104.9548921,39.7632327
-9403,1168,888,0.137184892852111,0.137184892852111,-104.9548921,39.7632327,-104.9548685,39.7644663
-9404,888,4473,0.140290329638987,0.140290329638987,-104.9548685,39.7644663,-104.9548351,39.7657277
-9405,4473,2795,0.133122605689938,0.133122605689938,-104.9548351,39.7657277,-104.9548363,39.7669249
-18387,8972,8990,0.0135489498420418,0.0135489498420418,-105.025167,39.7603517,-105.0252879,39.7604305
-9406,2795,5263,0.132274155849312,0.132274155849312,-104.9548363,39.7669249,-104.9547977,39.7681141
-9408,5264,7335,0.142105114812744,0.142105114812744,-104.9542913,39.7681128,-104.954435,39.769386
-9409,7336,7337,0.0976207961374284,0.0976207961374284,-104.9551363,39.7328385,-104.9551277,39.7337164
-9410,7337,4886,0.157275932372423,0.157275932372423,-104.9551277,39.7337164,-104.9551513,39.7351307
-9411,4886,7338,0.185720302610988,0.185720302610988,-104.9551513,39.7351307,-104.9551086,39.7368006
-9412,7338,5484,0.174899259954025,0.174899259954025,-104.9551086,39.7368006,-104.955149,39.7383732
-9413,5484,7339,0.200596009359583,0.200596009359583,-104.955149,39.7383732,-104.9551239,39.7401771
-9415,7001,7340,0.179314344082203,0.179314344082203,-104.9316416,39.7162506,-104.9316333,39.714638
-9416,7340,3105,0.172536320867715,0.172536320867715,-104.9316333,39.714638,-104.9316505,39.7130864
-9417,3105,7341,0.196295851159965,0.196295851159965,-104.9316505,39.7130864,-104.9316369,39.7113211
-9418,7341,7342,0.0146987319128723,0.0146987319128723,-104.9316369,39.7113211,-104.9316306,39.711189
-9419,7342,5274,0.233778976885029,0.233778976885029,-104.9316306,39.711189,-104.93153,39.709088
-9421,61,3550,0.201334976523304,0.201334976523304,-104.931714,39.700208,-104.931651,39.698398
-9423,4229,1512,0.0573285646726125,0.0573285646726125,-104.931645,39.696598,-104.931734,39.696087
-9424,1512,1812,0.080316497766985,0.080316497766985,-104.931734,39.696087,-104.9317181,39.6953648
-9425,1812,1792,0.0864981124104349,0.0864981124104349,-104.9317181,39.6953648,-104.931734,39.694587
-9426,1792,5766,0.0789087886834876,0.0789087886834876,-104.931734,39.694587,-104.9316752,39.6938788
-9427,5766,7199,0.0992911764787047,0.0992911764787047,-104.9316752,39.6938788,-104.931734,39.692987
-9428,7199,6828,0.11119492664509,0.11119492664509,-104.931734,39.692987,-104.931734,39.691987
-9429,6828,5849,0.0944254133826228,0.0944254133826228,-104.931734,39.691987,-104.9317181,39.6911379
-9430,5849,6009,0.0132155676036954,0.0132155676036954,-104.9317181,39.6911379,-104.9317136,39.6910191
-9431,6009,6306,0.0820521132716854,0.0820521132716854,-104.9317136,39.6910191,-104.9316857,39.6902815
-9432,6306,7343,0.105450198242036,0.105450198242036,-104.9316857,39.6902815,-104.9316965,39.6893332
-9433,7343,6621,0.143519415278471,0.143519415278471,-104.9316965,39.6893332,-104.9316943,39.6880425
-9434,6621,7344,1.27038946039582,1.27038946039582,-104.9316943,39.6880425,-104.9316364,39.6766177
-9437,4173,4758,0.21160422195521,0.21160422195521,-104.966736,39.720087,-104.96674,39.72199
-9439,7347,7348,0.135937832662874,0.135937832662874,-104.9671878,39.748204,-104.9671965,39.7494265
-9440,7348,7349,0.00392915540186096,0.00392915540186096,-104.9671965,39.7494265,-104.9671912,39.7494616
-9441,7349,7350,0.00435925191977174,0.00435925191977174,-104.9671912,39.7494616,-104.9671905,39.7495008
-9442,7350,7351,0.134680718743296,0.134680718743296,-104.9671905,39.7495008,-104.967169,39.7507119
-9443,7351,7352,0.142353643667365,0.142353643667365,-104.967169,39.7507119,-104.9671604,39.7519921
-9444,7352,822,0.136144392169031,0.136144392169031,-104.9671604,39.7519921,-104.9672048,39.753216
-9445,822,3563,0.139511434934294,0.139511434934294,-104.9672048,39.753216,-104.9671659,39.7544703
-9447,4757,6547,0.198421257470946,0.198421257470946,-104.9671402,39.7219786,-104.9671106,39.7237629
-9448,6547,7353,0.203512578195826,0.203512578195826,-104.9671106,39.7237629,-104.9671248,39.7255931
-9449,7353,7354,0.189733642798723,0.189733642798723,-104.9671248,39.7255931,-104.9671343,39.7272994
-9450,7354,3791,0.198902472958717,0.198902472958717,-104.9671343,39.7272994,-104.9671553,39.7290881
-9452,7356,1156,0.139895555737197,0.139895555737197,-104.9671912,39.761995,-104.9671402,39.7632525
-9453,1156,877,0.139167763247538,0.139167763247538,-104.9671402,39.7632525,-104.9671933,39.7645034
-9454,877,4465,0.138362926550376,0.138362926550376,-104.9671933,39.7645034,-104.9671825,39.7657477
-9455,4465,2785,0.134223449290719,0.134223449290719,-104.9671825,39.7657477,-104.9671839,39.7669548
-9456,2785,5256,0.132255447080442,0.132255447080442,-104.9671839,39.7669548,-104.9671812,39.7681442
-10701,7933,7934,0.0165824928197296,0.0165824928197296,-104.9950255,39.7656809,-104.9948315,39.7656825
-9457,5256,6902,0.213396689593523,0.213396689593523,-104.9671812,39.7681442,-104.9671691,39.7700633
-9458,6902,7357,0.137952680025601,0.137952680025601,-104.9671691,39.7700633,-104.967212,39.7713035
-9460,7358,7359,0.0873817304884455,0.0873817304884455,-104.9672193,39.7360482,-104.9672536,39.7368336
-9461,7359,5476,0.17425617170475,0.17425617170475,-104.9672536,39.7368336,-104.9672122,39.7384004
-9462,5476,7360,0.176755476074969,0.176755476074969,-104.9672122,39.7384004,-104.9672112,39.73999
-9463,7360,7361,0.179271064370159,0.179271064370159,-104.9672112,39.73999,-104.9672225,39.7416022
-9464,7361,670,0.00299320804688776,0.00299320804688776,-104.9672225,39.7416022,-104.9672238,39.7416291
-9465,670,7362,0.00367138449467953,0.00367138449467953,-104.9672238,39.7416291,-104.9672252,39.7416621
-9466,7362,7363,0.175413304982356,0.175413304982356,-104.9672252,39.7416621,-104.9672126,39.7432396
-9467,7363,4602,0.174300257248449,0.174300257248449,-104.9672126,39.7432396,-104.9672651,39.7448066
-9468,4602,6494,0.14109328269368,0.14109328269368,-104.9672651,39.7448066,-104.9672196,39.746075
-9470,6339,3027,0.140999530277673,0.140999530277673,-104.9671608,39.7582241,-104.9672089,39.7594916
-9471,3027,7364,0.134294188280294,0.134294188280294,-104.9672089,39.7594916,-104.9671778,39.7606991
-9472,7364,7367,0.00539295394286677,0.00539295394286677,-104.9671778,39.7606991,-104.9671778,39.7607476
-9473,7367,7368,0.0958510973743428,0.0958510973743428,-104.9671778,39.7607476,-104.9671831,39.7616096
-9474,7369,7370,0.0190810494123846,0.0190810494123846,-104.9665185,39.7181803,-104.9665185,39.7183519
-9475,7370,4174,0.200419085556528,0.200419085556528,-104.9665185,39.7183519,-104.9665271,39.7201543
-9476,4174,4759,0.205255972403598,0.205255972403598,-104.9665271,39.7201543,-104.9665355,39.7220002
-9478,7371,1504,0.200818042076817,0.200818042076817,-105.0309982,39.6967219,-105.0309987,39.6949159
-9479,1504,177,0.202381091183512,0.202381091183512,-105.0309987,39.6949159,-105.03098,39.6930959
-9481,7048,5860,0.176960295698989,0.176960295698989,-105.0312304,39.7165547,-105.0311875,39.7149636
-9482,5860,1308,0.177680958846967,0.177680958846967,-105.0311875,39.7149636,-105.0312133,39.7133658
-9483,1308,7372,0.242287040915104,0.242287040915104,-105.0312133,39.7133658,-105.0312304,39.7111869
-9485,7373,7374,0.0554606112260645,0.0554606112260645,-105.0253069,39.7683544,-105.0259557,39.7683632
-9486,7374,6759,0.139083865409791,0.139083865409791,-105.0259557,39.7683632,-105.027583,39.7683586
-9487,6759,3983,0.201208667852087,0.201208667852087,-105.027583,39.7683586,-105.0299371,39.7683433
-9488,3983,7042,0.200146227687253,0.200146227687253,-105.0299371,39.7683433,-105.0322788,39.7683312
-9489,7042,3429,0.200588668938452,0.200588668938452,-105.0322788,39.7683312,-105.0346257,39.7683222
-9491,7375,7376,0.134975501915893,0.134975501915893,-105.0330349,39.7767308,-105.0330187,39.7779446
-9492,7376,2494,0.132763759551609,0.132763759551609,-105.0330187,39.7779446,-105.0330359,39.7791385
-9493,2494,2841,0.125447252672452,0.125447252672452,-105.0330359,39.7791385,-105.0330101,39.7802665
-9495,7377,1766,0.0535653036014808,0.0535653036014808,-105.0334347,39.7548479,-105.0334284,39.7553296
-9496,1766,7378,0.148946577862237,0.148946577862237,-105.0334284,39.7553296,-105.0334347,39.7566691
-9497,7378,7379,0.151136159766357,0.151136159766357,-105.0334347,39.7566691,-105.0334355,39.7580283
-9498,7379,2978,0.0542010510807056,0.0542010510807056,-105.0334355,39.7580283,-105.0334272,39.7585157
-9500,6210,7380,0.184339220967731,0.184339220967731,-105.0337279,39.7260547,-105.0337242,39.7277125
-9501,7380,7381,0.177783326711723,0.177783326711723,-105.0337242,39.7277125,-105.0337396,39.7293113
-9503,7055,4046,0.178402656739544,0.178402656739544,-105.0337024,39.7165547,-105.0336938,39.7181591
-9504,4046,7382,0.177334708763743,0.177334708763743,-105.0336938,39.7181591,-105.0337009,39.7197539
-9505,7382,1847,0.175265460280809,0.175265460280809,-105.0337009,39.7197539,-105.0337,39.7213301
-9506,1847,2581,0.177411624203835,0.177411624203835,-105.0337,39.7213301,-105.0337024,39.7229256
-9508,5179,7383,0.0621659509396009,0.0621659509396009,-105.0337195,39.7245298,-105.0336341,39.725085
-9510,7384,5530,0.101603812835917,0.101603812835917,-105.033438,39.773186,-105.033486,39.774099
-9511,5530,6476,0.0959541548395336,0.0959541548395336,-105.033486,39.774099,-105.0333983,39.7749593
-9512,6476,7385,0.197309689587966,0.197309689587966,-105.0333983,39.7749593,-105.0333812,39.7767337
-9514,7386,4578,0.133367493492184,0.133367493492184,-105.0330679,39.7403194,-105.0330646,39.7415188
-9515,4578,6442,0.135224444657643,0.135224444657643,-105.0330646,39.7415188,-105.0330679,39.7427349
-9516,6442,5294,0.135202388191056,0.135202388191056,-105.0330679,39.7427349,-105.0330637,39.7439508
-9517,5294,6971,0.132090452543352,0.132090452543352,-105.0330637,39.7439508,-105.0330722,39.7451387
-9519,7387,6793,0.0526421759963202,0.0526421759963202,-105.0330656,39.7694876,-105.0330596,39.769961
-9520,6793,2426,0.0832334466071371,0.0832334466071371,-105.0330596,39.769961,-105.03305,39.7707095
-9521,2426,7292,0.0515611894823623,0.0515611894823623,-105.03305,39.7707095,-105.0330488,39.7711732
-9522,7292,3230,0.0818841223845197,0.0818841223845197,-105.0330488,39.7711732,-105.0330468,39.7719096
-9523,3230,7388,0.142866769580008,0.142866769580008,-105.0330468,39.7719096,-105.033238,39.773186
-9525,7389,7390,0.203322823967769,0.203322823967769,-105.0332722,39.7293161,-105.0332849,39.7311446
-9529,7391,7392,0.135325738854945,0.135325738854945,-105.033138,39.748786,-105.0330703,39.7500019
-9530,7392,7393,0.132395815694125,0.132395815694125,-105.0330703,39.7500019,-105.0331086,39.7511922
-9531,7393,7394,0.135014881681412,0.135014881681412,-105.0331086,39.7511922,-105.0331,39.7524064
-9532,7394,7395,0.132077333868835,0.132077333868835,-105.0331,39.7524064,-105.0331,39.7535942
-9535,7397,621,0.0257970801977961,0.0257970801977961,-105.0333294,39.7363199,-105.0333206,39.7365518
-9537,4075,6060,0.199263565882924,0.199263565882924,-105.0333673,39.7838362,-105.0333562,39.7856282
-9538,6060,5800,0.199550446273018,0.199550446273018,-105.0333562,39.7856282,-105.0333549,39.7874228
-9540,7398,3097,0.199450454556748,0.199450454556748,-104.9686917,39.7147256,-104.9686892,39.7129319
-9541,3097,3207,0.202536688546866,0.202536688546866,-104.9686892,39.7129319,-104.9687078,39.7111105
-9542,3207,6119,0.201707926741417,0.201707926741417,-104.9687078,39.7111105,-104.9686581,39.7092969
-9543,6119,1917,0.201109266380341,0.201109266380341,-104.9686581,39.7092969,-104.9686689,39.7074883
-9544,1917,7243,0.20045244430598,0.20045244430598,-104.9686689,39.7074883,-104.9686775,39.7056856
-9545,7243,594,0.202390514467061,0.202390514467061,-104.9686775,39.7056856,-104.9686935,39.7038655
-9547,7399,5843,0.208569621956493,0.208569621956493,-104.9687279,39.6929756,-104.9687193,39.6910999
-9549,7400,5659,0.10300363118025,0.10300363118025,-104.9687412,39.6893196,-104.9687309,39.6883933
-9550,5659,7401,0.0544972381418925,0.0544972381418925,-104.9687309,39.6883933,-104.9687279,39.6879032
-9552,6194,6950,0.191455920710939,0.191455920710939,-104.982919,39.7801891,-104.9829139,39.7819109
-9553,6950,7402,0.209004541630565,0.209004541630565,-104.9829139,39.7819109,-104.9829018,39.7837905
-9555,4943,7403,0.0144437903083984,0.0144437903083984,-104.9952896,39.7400105,-104.995301,39.7401401
-9556,7403,3000,0.101061674656442,0.101061674656442,-104.995301,39.7401401,-104.9961353,39.7407839
-9558,6639,3962,0.136668682711291,0.136668682711291,-104.9985703,39.7165902,-105.0001681,39.7165803
-9559,3962,4361,0.121869293781819,0.121869293781819,-105.0001681,39.7165803,-105.0015929,39.7165869
-20411,9207,10780,0.0112983850763668,0.0112983850763668,-105.0250726,39.7601228,-105.0250471,39.7600231
-9561,5171,5225,0.145976272368254,0.145976272368254,-104.9874858,39.7165623,-104.9891924,39.7165504
-9562,5225,1866,0.0654044096593951,0.0654044096593951,-104.9891924,39.7165504,-104.9899563,39.7165768
-9563,1866,5084,0.0770856255669816,0.0770856255669816,-104.9899563,39.7165768,-104.9908575,39.7165834
-9564,5084,2809,0.113066726070966,0.113066726070966,-104.9908575,39.7165834,-104.9921793,39.7165966
-9565,2809,3368,0.152693063908693,0.152693063908693,-104.9921793,39.7165966,-104.9939645,39.7165966
-9566,3368,7404,0.0530057643448654,0.0530057643448654,-104.9939645,39.7165966,-104.9945842,39.7165997
-9567,7404,4944,0.0497811011847154,0.0497811011847154,-104.9945842,39.7165997,-104.9951662,39.7166026
-9568,4944,7405,0.0515530101953733,0.0515530101953733,-104.9951662,39.7166026,-104.9957689,39.7166071
-9569,7405,7217,0.0502978935844785,0.0502978935844785,-104.9957689,39.7166071,-104.9963567,39.7165938
-9570,7217,7406,0.0537233169488665,0.0537233169488665,-104.9963567,39.7165938,-104.9969848,39.7165925
-9571,7406,7407,0.0412354910733997,0.0412354910733997,-104.9969848,39.7165925,-104.9974669,39.7165915
-9572,6416,4212,0.100784166153009,0.100784166153009,-105.0172314,39.7170829,-105.018373,39.7168584
-9573,4212,190,0.175257609965618,0.175257609965618,-105.018373,39.7168584,-105.0203986,39.7166208
-9574,190,4532,0.201882877149858,0.201882877149858,-105.0203986,39.7166208,-105.0227589,39.7166208
-9575,4532,5431,0.198227529862783,0.198227529862783,-105.0227589,39.7166208,-105.0250764,39.7166076
-9576,5431,5972,0.107244272330712,0.107244272330712,-105.0250764,39.7166076,-105.0263295,39.7165745
-9577,5972,2255,0.104270609577454,0.104270609577454,-105.0263295,39.7165745,-105.0275483,39.7165547
-9578,2255,6131,0.104982960169425,0.104982960169425,-105.0275483,39.7165547,-105.0287757,39.7165547
-9579,6131,3998,0.104249966263654,0.104249966263654,-105.0287757,39.7165547,-105.0299945,39.7165481
-9580,3998,7048,0.105712541492873,0.105712541492873,-105.0299945,39.7165481,-105.0312304,39.7165547
-9581,7048,1393,0.105952500116488,0.105952500116488,-105.0312304,39.7165547,-105.0324691,39.7165619
-9583,7408,7055,0.0530917174300864,0.0530917174300864,-105.0330817,39.7165583,-105.0337024,39.7165547
-9584,7055,7409,0.0515249594325266,0.0515249594325266,-105.0337024,39.7165547,-105.0343048,39.7165547
-9585,7409,3389,0.0512512544679775,0.0512512544679775,-105.0343048,39.7165547,-105.034904,39.7165547
-9586,3389,7410,0.0515249594325266,0.0515249594325266,-105.034904,39.7165547,-105.0355064,39.7165547
-9587,7410,4504,0.051986836558228,0.051986836558228,-105.0355064,39.7165547,-105.0361142,39.7165547
-9588,4504,3539,0.0507992547126353,0.0507992547126353,-105.0361142,39.7165547,-105.0367081,39.716558
-9589,3539,7411,0.0505170014633714,0.0505170014633714,-105.0367081,39.716558,-105.0372987,39.7165613
-9590,7411,7412,0.0515690276546841,0.0515690276546841,-105.0372987,39.7165613,-105.0379016,39.716558
-9592,5066,6400,0.0525526328752235,0.0525526328752235,-105.0384889,39.7165547,-105.0391033,39.716558
-9593,6400,6835,0.0526723733629873,0.0526723733629873,-105.0391033,39.716558,-105.0397191,39.7165613
-9594,6835,7413,0.0505686622438464,0.0505686622438464,-105.0397191,39.7165613,-105.0403103,39.7165576
-9595,7413,1105,0.0506198937481409,0.0506198937481409,-105.0403103,39.7165576,-105.0409021,39.716554
-9596,1105,7414,0.0824276303743622,0.0824276303743622,-105.0409021,39.716554,-105.0418648,39.7165877
-9598,3863,7415,0.0529481461592885,0.0529481461592885,-105.0432639,39.7165811,-105.0438828,39.716571
-9599,7415,6656,0.0485933921065039,0.0485933921065039,-105.0438828,39.716571,-105.0444508,39.7165618
-9600,6656,7416,0.0551266417503484,0.0551266417503484,-105.0444508,39.7165618,-105.0450953,39.7165644
-9601,7416,7417,0.698080046436177,0.698080046436177,-105.0450953,39.7165644,-105.0532563,39.7166375
-9602,3179,7418,0.0616464790427922,0.0616464790427922,-104.9535963,39.7030192,-104.9529866,39.7027237
-9603,7418,5002,0.0485639637102659,0.0485639637102659,-104.9529866,39.7027237,-104.9525063,39.7024909
-9604,5002,7419,0.0540110826611525,0.0540110826611525,-104.9525063,39.7024909,-104.9519684,39.7022366
-9605,7419,5725,0.0437502401390831,0.0437502401390831,-104.9519684,39.7022366,-104.9515323,39.7020311
-9606,5725,724,0.0271601591292424,0.0271601591292424,-104.9515323,39.7020311,-104.9512162,39.7020084
-9607,724,7059,0.100733087825974,0.100733087825974,-104.9512162,39.7020084,-104.9500388,39.7020179
-9608,7059,7314,0.111000885564944,0.111000885564944,-104.9500388,39.7020179,-104.9489488,39.7014764
-9610,7421,3610,0.212938945536276,0.212938945536276,-104.9318313,39.7628536,-104.9293406,39.7628932
-9611,3610,2128,0.151144951480704,0.151144951480704,-104.9293406,39.7628932,-104.9275725,39.7628734
-10843,154,8006,0.0789597424143419,0.0789597424143419,-104.9570001,39.7445158,-104.9569442,39.743807
-9613,5998,2327,0.147931201391184,0.147931201391184,-104.9257702,39.7628567,-104.9240401,39.7628914
-9614,2327,7422,0.151462381546094,0.151462381546094,-104.9240401,39.7628914,-104.9222681,39.7628932
-9615,2016,354,0.0832039426217647,0.0832039426217647,-104.9349971,39.720897,-104.9346635,39.7201941
-9616,354,2024,0.270665538753682,0.270665538753682,-104.9346635,39.7201941,-104.935134,39.717787
-9620,4944,7424,0.200356357596052,0.200356357596052,-104.9951662,39.7166026,-104.9951833,39.7148008
-9622,2981,7425,0.200823510551274,0.200823510551274,-105.0369709,39.7585166,-105.0369407,39.7603225
-9623,7425,7426,0.200629159279387,0.200629159279387,-105.0369407,39.7603225,-105.0369378,39.7621268
-9624,7426,7427,0.00781704540286186,0.00781704540286186,-105.0369378,39.7621268,-105.0369381,39.7621971
-9625,7427,7428,0.196215671376464,0.196215671376464,-105.0369381,39.7621971,-105.0369458,39.7639617
-9626,7428,6876,0.205224182417126,0.205224182417126,-105.0369458,39.7639617,-105.0369584,39.7658073
-9627,6876,1687,0.205021376956907,0.205021376956907,-105.0369584,39.7658073,-105.0369553,39.7676511
-9628,1687,7429,0.205696359665547,0.205696359665547,-105.0369553,39.7676511,-105.0369881,39.7695008
-9629,7429,2432,0.199163881347575,0.199163881347575,-105.0369881,39.7695008,-105.0369607,39.7712918
-9630,2432,7431,0.20247617593456,0.20247617593456,-105.0369607,39.7712918,-105.0369521,39.7731127
-9632,6213,7432,0.274944028390563,0.274944028390563,-105.0372874,39.7257681,-105.0373205,39.7282406
-9633,7432,7433,0.263513794727665,0.263513794727665,-105.0373205,39.7282406,-105.0373376,39.7306104
-9634,7433,6594,0.262579264502597,0.262579264502597,-105.0373376,39.7306104,-105.0373216,39.7329718
-9636,7254,1423,0.111990529719831,0.111990529719831,-105.0369203,39.7810777,-105.0369066,39.7820848
-10866,1577,8015,0.266859669077532,0.266859669077532,-105.0390628,39.6875658,-105.0390481,39.6851659
-9639,7434,7435,0.184117705049588,0.184117705049588,-105.0369402,39.7767242,-105.0369326,39.77838
-9640,7435,7436,0.203503143312405,0.203503143312405,-105.0369326,39.77838,-105.0369154,39.7802101
-9642,6593,7437,0.098508708246921,0.098508708246921,-105.0369834,39.7329675,-105.0369779,39.7338534
-9643,7437,7127,0.0085733378066782,0.0085733378066782,-105.0369779,39.7338534,-105.0369772,39.7339305
-9645,7411,4051,0.176201016140517,0.176201016140517,-105.0372987,39.7165613,-105.0372901,39.7181459
-9646,4051,7438,0.186623330561976,0.186623330561976,-105.0372901,39.7181459,-105.0373273,39.719824
-9647,7438,1853,0.167040016171723,0.167040016171723,-105.0373273,39.719824,-105.0373156,39.7213262
-9648,1853,2591,0.179034976108436,0.179034976108436,-105.0373156,39.7213262,-105.0373167,39.7229363
-9650,7439,6064,0.193434831975152,0.193434831975152,-105.0369233,39.7838741,-105.0369206,39.7856137
-9651,6064,2544,0.202007823415783,0.202007823415783,-105.0369206,39.7856137,-105.0369205,39.7874304
-9652,2544,7440,0.411378882387366,0.411378882387366,-105.0369205,39.7874304,-105.036936,39.79113
-9653,7129,627,0.200330694412442,0.200330694412442,-105.0369832,39.7347877,-105.0369171,39.7365886
-9655,18,6387,0.132089927812284,0.132089927812284,-105.0369187,39.746386,-105.036926,39.7475739
-9658,7443,7444,0.13397887621517,0.13397887621517,-105.036967,39.7499887,-105.036965,39.7511936
-9659,7444,5539,0.105571329036095,0.105571329036095,-105.036965,39.7511936,-105.0369449,39.7521429
-9660,5539,2407,0.0968730605007166,0.0968730605007166,-105.0369449,39.7521429,-105.0369621,39.753014
-9661,2407,4292,0.100193275722424,0.100193275722424,-105.0369621,39.753014,-105.0369756,39.753915
-9662,4292,7445,0.0505436928211805,0.0505436928211805,-105.0369756,39.753915,-105.0369668,39.7543695
-9663,7445,7446,0.0548363595380854,0.0548363595380854,-105.0369668,39.7543695,-105.0369572,39.7548626
-9665,7447,7448,0.169947053382904,0.169947053382904,-105.0151992,39.7160167,-105.0139289,39.7148415
-9667,5852,1336,0.19937663187299,0.19937663187299,-105.014337,39.714787,-105.014352,39.712994
-9668,1336,6158,0.0597086585632686,0.0597086585632686,-105.014352,39.712994,-105.01431,39.712458
-9669,6158,7449,0.153340690716036,0.153340690716036,-105.01431,39.712458,-105.014321,39.711079
-9671,7450,4365,0.199972383812324,0.199972383812324,-104.9991888,39.7075519,-105.0015264,39.7075644
-9672,4365,1447,0.201108937861992,0.201108937861992,-105.0015264,39.7075644,-105.0038773,39.7075535
-9673,1447,7451,0.20199467881708,0.20199467881708,-105.0038773,39.7075535,-105.0062376,39.7076063
-9674,7451,6664,0.0985180993542889,0.0985180993542889,-105.0062376,39.7076063,-105.0073877,39.7075601
-9675,6664,1757,0.102800794441344,0.102800794441344,-105.0073877,39.7075601,-105.0085894,39.7075535
-9676,1757,3819,0.106482209599855,0.106482209599855,-105.0085894,39.7075535,-105.0098339,39.7075733
-9677,3819,5892,0.0976679798408968,0.0976679798408968,-105.0098339,39.7075733,-105.0109755,39.7075865
-9679,5332,5070,0.101261676099905,0.101261676099905,-105.0373528,39.7079851,-105.0385346,39.7080373
-9680,5070,6838,0.100657370443561,0.100657370443561,-105.0385346,39.7080373,-105.0397105,39.7080043
-9681,6838,6967,0.0976725983678986,0.0976725983678986,-105.0397105,39.7080043,-105.040852,39.7080241
-9682,6967,7452,0.102800093286128,0.102800093286128,-105.040852,39.7080241,-105.0420537,39.7080307
-9683,7452,7453,0.0998547767838799,0.0998547767838799,-105.0420537,39.7080307,-105.043221,39.7080307
-9685,5437,7454,0.211535646678045,0.211535646678045,-105.0250692,39.7075784,-105.0275397,39.707661
-9686,7454,4416,0.194570832918176,0.194570832918176,-105.0275397,39.707661,-105.0298142,39.7076544
-9687,4416,7456,0.224677107455919,0.224677107455919,-105.0298142,39.7076544,-105.0324406,39.7076676
-9688,7456,4322,0.22100369073056,0.22100369073056,-105.0324406,39.7076676,-105.0350241,39.707661
-9692,7458,7459,0.0196177061643605,0.0196177061643605,-104.9885959,39.7075353,-104.9888252,39.7075381
-9693,7459,7460,0.0200797614980701,0.0200797614980701,-104.9888252,39.7075381,-104.9890599,39.707541
-9694,7460,7461,0.0204220717617775,0.0204220717617775,-104.9890599,39.707541,-104.9892986,39.707544
-9695,7461,7462,0.0192753952773127,0.0192753952773127,-104.9892986,39.707544,-104.9895239,39.7075467
-9696,7462,7463,0.0197376280100197,0.0197376280100197,-104.9895239,39.7075467,-104.9897546,39.7075496
-9697,7463,1874,0.0201396312288959,0.0201396312288959,-104.9897546,39.7075496,-104.98999,39.7075525
-9698,1874,7464,0.101865928676763,0.101865928676763,-104.98999,39.7075525,-104.9911808,39.7075508
-9699,7464,7465,0.0516398712444199,0.0516398712444199,-104.9911808,39.7075508,-104.9917844,39.7075576
-9700,5894,1589,0.201207684972719,0.201207684972719,-105.0109744,39.7074034,-105.0133261,39.7073704
-9701,1589,1639,0.202832052664544,0.202832052664544,-105.0133261,39.7073704,-105.0156968,39.7073378
-9703,7466,7467,0.461510399426298,0.461510399426298,-105.0431952,39.7089155,-105.0485899,39.7089671
-9704,7468,7469,0.0656477480578156,0.0656477480578156,-104.9875851,39.7084534,-104.9883525,39.7084582
-9705,7469,7470,0.0202314805703126,0.0202314805703126,-104.9883525,39.7084582,-104.988589,39.7084596
-9706,7470,7471,0.0196155905306545,0.0196155905306545,-104.988589,39.7084596,-104.9888183,39.708461
-9707,7471,7472,0.0198466389215673,0.0198466389215673,-104.9888183,39.708461,-104.9890503,39.7084625
-9709,7473,7474,0.0193760769839274,0.0193760769839274,-104.9892894,39.708464,-104.9895159,39.7084654
-10941,7859,4686,0.105458193161767,0.105458193161767,-104.992836,39.7305121,-104.9940692,39.730515
-16187,5815,7203,0.20368767335866,0.20368767335866,-104.9845543,39.6911833,-104.9845476,39.6930151
-9710,7474,7475,0.0199577496151493,0.0199577496151493,-104.9895159,39.7084654,-104.9897492,39.7084668
-9711,7475,1873,0.0221306450398483,0.0221306450398483,-104.9897492,39.7084668,-104.9900079,39.7084684
-9712,1873,7476,0.0228930859552116,0.0228930859552116,-104.9900079,39.7084684,-104.9902755,39.708471
-9713,7476,7477,0.00597945379667752,0.00597945379667752,-104.9902755,39.708471,-104.9903454,39.7084711
-9714,7477,7481,0.0633102446327588,0.0633102446327588,-104.9903454,39.7084711,-104.9910855,39.7084711
-9715,7481,7482,0.00659734634558833,0.00659734634558833,-104.9910855,39.7084711,-104.9911621,39.7084642
-9716,7482,7483,0.0122662226221965,0.0122662226221965,-104.9911621,39.7084642,-104.9913038,39.7084473
-9717,7483,7484,0.0357233876730641,0.0357233876730641,-104.9913038,39.7084473,-104.9917214,39.7084493
-9718,7484,4185,0.0600540815299224,0.0600540815299224,-104.9917214,39.7084493,-104.9924234,39.7084547
-9721,7485,4417,0.198257535408126,0.198257535408126,-105.0275311,39.708526,-105.0298486,39.7085458
-9722,4417,7486,0.220999648574169,0.220999648574169,-105.0298486,39.7085458,-105.0324321,39.7085458
-9723,7486,4321,0.223933764288424,0.223933764288424,-105.0324321,39.7085458,-105.0350499,39.7085458
-9725,4364,1446,0.20650017701017,0.20650017701017,-105.0014826,39.7083921,-105.0038944,39.7084713
-9726,1446,7487,0.199709617072806,0.199709617072806,-105.0038944,39.7084713,-105.006229,39.7084779
-9727,7487,6936,0.203411194568703,0.203411194568703,-105.006229,39.7084779,-105.0086065,39.7084449
-9728,6936,5891,0.202831423382765,0.202831423382765,-105.0086065,39.7084449,-105.0109775,39.7084624
-9730,7488,7489,0.219847500079542,0.219847500079542,-105.0416419,39.7310429,-105.0416893,39.7330197
-9731,7489,7490,0.112284636925509,0.112284636925509,-105.0416893,39.7330197,-105.0416893,39.7340295
-9733,7491,7492,0.104975617952237,0.104975617952237,-105.0416725,39.7478114,-105.0416382,39.7487551
-9734,7492,7493,0.133826104897821,0.133826104897821,-105.0416382,39.7487551,-105.0416487,39.7499586
-9735,7493,7494,0.136182988757468,0.136182988757468,-105.0416487,39.7499586,-105.0416791,39.7511831
-9737,5544,2414,0.0621561786197408,0.0621561786197408,-105.0416664,39.7521054,-105.0416538,39.7526643
-9739,5055,4297,0.0642451197659933,0.0642451197659933,-105.04162,39.753356,-105.0416469,39.7539334
-9740,4297,7495,0.104062899405527,0.104062899405527,-105.0416469,39.7539334,-105.0416607,39.7548692
-9741,7495,7496,0.203687229874764,0.203687229874764,-105.0416607,39.7548692,-105.0416562,39.756701
-9742,7496,2987,0.200108037782066,0.200108037782066,-105.0416562,39.756701,-105.0416657,39.7585006
-9743,2987,7497,0.201819339453719,0.201819339453719,-105.0416657,39.7585006,-105.0416712,39.7603156
-9744,7497,7498,0.0489089257680099,0.0489089257680099,-105.0416712,39.7603156,-105.0416627,39.7607554
-9745,7498,7499,0.151764240821653,0.151764240821653,-105.0416627,39.7607554,-105.0416365,39.7621201
-9746,7499,7500,0.203024715164671,0.203024715164671,-105.0416365,39.7621201,-105.0416198,39.7639459
-9747,7500,6882,0.202091910987955,0.202091910987955,-105.0416198,39.7639459,-105.0416508,39.7657632
-9748,6882,1693,0.203443247701908,0.203443247701908,-105.0416508,39.7657632,-105.0416583,39.7675928
-9749,1693,7501,0.204709999833149,0.204709999833149,-105.0416583,39.7675928,-105.0416611,39.7694338
-9750,7501,2441,0.166684898047837,0.166684898047837,-105.0416611,39.7694338,-105.0416481,39.7709328
-9752,5738,5527,0.157552520143968,0.157552520143968,-105.0416591,39.7724704,-105.0416634,39.7738873
-9753,5527,6465,0.155770587020073,0.155770587020073,-105.0416634,39.7738873,-105.0416343,39.775288
-9754,6465,7502,0.156429247159158,0.156429247159158,-105.0416343,39.775288,-105.0415725,39.776694
-9755,7502,7503,0.187478248770476,0.187478248770476,-105.0415725,39.776694,-105.0415589,39.77838
-9756,7503,7504,0.202724737429487,0.202724737429487,-105.0415589,39.77838,-105.041576,39.7802031
-10985,7367,5402,0.104549154022735,0.104549154022735,-104.9671778,39.7607476,-104.9659547,39.7607434
-9757,7504,1429,0.207912295088567,0.207912295088567,-105.041576,39.7802031,-105.0415749,39.7820729
-9758,1429,7189,0.130843883831593,0.130843883831593,-105.0415749,39.7820729,-105.0415695,39.7832496
-9760,6219,7505,0.274122910361615,0.274122910361615,-105.0416352,39.7257952,-105.0416549,39.7282604
-9761,7505,7506,0.19636903427064,0.19636903427064,-105.0416549,39.7282604,-105.0410987,39.7299738
-9763,2603,5189,0.177622776028071,0.177622776028071,-105.0416219,39.7229569,-105.041622,39.7245543
-9764,5189,5657,0.106425186945832,0.106425186945832,-105.041622,39.7245543,-105.0416181,39.7255114
-9766,7507,7508,0.0438255563694837,0.0438255563694837,-105.0420882,39.7176598,-105.0420948,39.7180539
-9767,7508,4058,0.0100861958439265,0.0100861958439265,-105.0420948,39.7180539,-105.0420963,39.7181446
-9768,4058,7509,0.0353348287032789,0.0353348287032789,-105.0420963,39.7181446,-105.0421052,39.7184623
-9769,7509,7510,0.141940367411715,0.141940367411715,-105.0421052,39.7184623,-105.0421039,39.7197388
-9770,7510,1860,0.1765997957518,0.1765997957518,-105.0421039,39.7197388,-105.0421031,39.721327
-9771,1860,2604,0.182058234750596,0.182058234750596,-105.0421031,39.721327,-105.0421253,39.7229642
-9773,7511,6071,0.194146348690461,0.194146348690461,-105.0415559,39.7838742,-105.0415553,39.7856202
-9774,6071,2551,0.201763197291639,0.201763197291639,-105.0415553,39.7856202,-105.0415549,39.7874347
-9776,7513,7514,0.138564330925234,0.138564330925234,-105.0416463,39.7353826,-105.0416221,39.7366286
-9778,7515,686,0.203088920175274,0.203088920175274,-104.9286555,39.7401271,-104.9286673,39.7419535
-9779,686,1983,0.159242254447937,0.159242254447937,-104.9286673,39.7419535,-104.9286673,39.7433856
-9780,1983,1968,0.0374282123082397,0.0374282123082397,-104.9286673,39.7433856,-104.9286673,39.7437222
-9781,1968,4621,0.107323343903913,0.107323343903913,-104.9286673,39.7437222,-104.9285042,39.7446792
-9782,4621,6500,0.103085986769995,0.103085986769995,-104.9285042,39.7446792,-104.928642,39.7456002
-9783,6500,2474,0.199627678773596,0.199627678773596,-104.928642,39.7456002,-104.9286764,39.7473953
-9785,7516,2773,0.203153140061273,0.203153140061273,-104.9281792,39.765593,-104.9281046,39.7674191
-9786,2773,6896,0.203229996829736,0.203229996829736,-104.9281046,39.7674191,-104.928139,39.7692466
-9788,5346,7517,0.175498987947166,0.175498987947166,-104.9281276,39.716246,-104.9281289,39.7178243
-9789,7517,2340,0.175921748142843,0.175921748142843,-104.9281289,39.7178243,-104.9281254,39.7194064
-9790,2340,7518,0.175670305695009,0.175670305695009,-104.9281254,39.7194064,-104.9281106,39.7209862
-9791,7518,4783,0.243270382660677,0.243270382660677,-104.9281106,39.7209862,-104.9282926,39.7231695
-9792,4783,7519,0.239583168661009,0.239583168661009,-104.9282926,39.7231695,-104.9283056,39.7253241
-9793,7519,7520,0.0339478111046773,0.0339478111046773,-104.9283056,39.7253241,-104.9283056,39.7256294
-9794,7520,6369,0.269882786903903,0.269882786903903,-104.9283056,39.7256294,-104.9282948,39.7280565
-9795,6369,7521,0.132466649716692,0.132466649716692,-104.9282948,39.7280565,-104.928297,39.7292478
-9797,7522,5952,0.201032381768493,0.201032381768493,-104.9280878,39.7292519,-104.9280748,39.7310598
-9798,5952,5144,0.0336716082597733,0.0336716082597733,-104.9280748,39.7310598,-104.9280639,39.7313625
-9799,5144,5156,0.0326057448432317,0.0326057448432317,-104.9280639,39.7313625,-104.9280694,39.7316557
-9800,5156,2239,0.132989211721542,0.132989211721542,-104.9280694,39.7316557,-104.9280711,39.7328517
-9801,2239,4912,0.203447012505169,0.203447012505169,-104.9280711,39.7328517,-104.9280548,39.7346813
-9802,4912,6610,0.203165550596053,0.203165550596053,-104.9280548,39.7346813,-104.9280463,39.7365084
-18325,7524,7525,0.0423335034846442,0.0423335034846442,-105.0433477,39.777017,-105.0433434,39.7766363
-9804,7523,7526,0.205397811211562,0.205397811211562,-104.9280376,39.7382791,-104.9280609,39.7401262
-9806,2475,5910,0.203278121280476,0.203278121280476,-104.9281369,39.7474129,-104.9281491,39.749241
-9807,5910,7527,0.201064010596531,0.201064010596531,-104.9281491,39.749241,-104.9281577,39.7510492
-9808,7527,800,0.20177431388955,0.20177431388955,-104.9281577,39.7510492,-104.9281577,39.7528638
-9809,800,7528,0.202244021720306,0.202244021720306,-104.9281577,39.7528638,-104.9281699,39.7546826
-9811,7529,7530,0.20077292216439,0.20077292216439,-104.9282316,39.7565549,-104.9282076,39.7583604
-9813,3064,7531,0.184973544349351,0.184973544349351,-104.9282248,39.7601815,-104.9282311,39.761845
-9815,2632,5362,0.0801274749327823,0.0801274749327823,-105.0450779,39.7221456,-105.0450749,39.7228662
-9816,5362,5209,0.120994383618796,0.120994383618796,-105.0450749,39.7228662,-105.0451039,39.7239541
-9817,5209,6229,0.174510675248847,0.174510675248847,-105.0451039,39.7239541,-105.0451283,39.7255234
-9819,7532,7533,0.202574921872807,0.202574921872807,-105.0451861,39.7366574,-105.0451856,39.7384792
-9820,7533,7534,0.206092993605617,0.206092993605617,-105.0451856,39.7384792,-105.04517,39.7403326
-9821,7534,6444,0.205010086254005,0.205010086254005,-105.04517,39.7403326,-105.04517,39.7421763
-9822,6444,5302,0.199728470714505,0.199728470714505,-105.04517,39.7421763,-105.0451672,39.7439725
-9824,6656,4061,0.176855547581016,0.176855547581016,-105.0444508,39.7165618,-105.0444517,39.7181523
-9825,4061,7535,0.242794235361762,0.242794235361762,-105.0444517,39.7181523,-105.0445183,39.7203352
-9827,7536,6086,0.100844609398613,0.100844609398613,-105.0449356,39.7621062,-105.0449283,39.7630131
-9828,6086,7537,0.100375721785614,0.100375721785614,-105.0449283,39.7630131,-105.044927,39.7639158
-9829,7537,7538,0.0511607864629355,0.0511607864629355,-105.044927,39.7639158,-105.0449269,39.7643759
-9830,7538,5244,0.0495951653375039,0.0495951653375039,-105.0449269,39.7643759,-105.0449324,39.7648219
-9831,5244,7539,0.0519761520574234,0.0519761520574234,-105.0449324,39.7648219,-105.0449396,39.7652893
-9832,7539,6885,0.0502414304638419,0.0502414304638419,-105.0449396,39.7652893,-105.0449466,39.7657411
-9833,6885,7540,0.0499615650233233,0.0499615650233233,-105.0449466,39.7657411,-105.0449514,39.7661904
-9835,7541,7542,0.0351445858107267,0.0351445858107267,-105.044947,39.7666453,-105.0449552,39.7669613
-9838,7544,7545,0.105704455648811,0.105704455648811,-105.045174,39.7302935,-105.0451654,39.7312441
-9841,2556,7547,0.195916474446361,0.195916474446361,-105.0450916,39.78742,-105.0451023,39.7891819
-9842,6224,7548,0.277797708537317,0.277797708537317,-105.0451285,39.7257952,-105.0451568,39.7282934
-9845,7550,7551,0.196848690524097,0.196848690524097,-105.0451506,39.7693556,-105.0451465,39.7711259
-9846,7551,5751,0.202697238266629,0.202697238266629,-105.0451465,39.7711259,-105.0451459,39.7729488
-9847,5751,7552,0.00795047859513932,0.00795047859513932,-105.0451459,39.7729488,-105.0451456,39.7730203
-9848,7552,7553,0.129731824653906,0.129731824653906,-105.0451456,39.7730203,-105.0451406,39.774187
-9849,7553,6474,0.0638707232076661,0.0638707232076661,-105.0451406,39.774187,-105.0451381,39.7747614
-9850,6474,7554,0.0334363679568542,0.0334363679568542,-105.0451381,39.7747614,-105.0451388,39.7750621
-20015,10180,2696,0.367929886679579,0.367929886679579,-104.9873951,39.7535866,-104.984388,39.7559539
-9851,7554,7555,0.0146999916602211,0.0146999916602211,-105.0451388,39.7750621,-105.0451391,39.7751943
-9853,3170,7557,0.145194224111084,0.145194224111084,-105.0006969,39.7480168,-104.9994986,39.7489421
-9854,7557,7558,0.0835128735178232,0.0835128735178232,-104.9994986,39.7489421,-104.9988113,39.7494758
-9855,7558,7559,0.0585562750239905,0.0585562750239905,-104.9988113,39.7494758,-104.9983278,39.7498488
-9856,7559,6713,0.00611903533894709,0.00611903533894709,-104.9983278,39.7498488,-104.9982781,39.7498884
-9857,6713,7560,0.146921779963022,0.146921779963022,-104.9982781,39.7498884,-104.9970625,39.7508224
-9858,7560,5786,0.142766734982168,0.142766734982168,-104.9970625,39.7508224,-104.995889,39.7517359
-9859,5786,7561,0.147333855208616,0.147333855208616,-104.995889,39.7517359,-104.9946844,39.7526835
-11082,6285,2717,0.0986458045481302,0.0986458045481302,-105.0228094,39.7784186,-105.0239636,39.7784327
-9860,7561,7562,0.151251680669446,0.151251680669446,-104.9946844,39.7526835,-104.9934281,39.7536413
-9861,7562,7563,0.142846459249546,0.142846459249546,-104.9934281,39.7536413,-104.9922506,39.7545528
-9863,7564,3303,0.147900845771263,0.147900845771263,-104.9910557,39.7554766,-104.9898413,39.756424
-9865,5316,7565,0.0511409811054889,0.0511409811054889,-104.9500303,39.699284,-104.9506273,39.6992608
-9866,7565,7566,0.1490174605609,0.1490174605609,-104.9506273,39.6992608,-104.9519988,39.6984347
-9867,7566,3661,0.0439544289403808,0.0439544289403808,-104.9519988,39.6984347,-104.9521932,39.6980688
-9868,3661,3171,0.198821466322938,0.198821466322938,-104.9521932,39.6980688,-104.9534926,39.6965864
-9870,1541,4266,0.201902575581856,0.201902575581856,-104.9858935,39.7765349,-104.9858407,39.7783502
-9871,4266,280,0.117279281695443,0.117279281695443,-104.9858407,39.7783502,-104.9858487,39.7794049
-9873,1540,755,0.148174446133403,0.148174446133403,-104.9864968,39.7765361,-104.9864797,39.7752036
-9874,755,7567,0.109511008516479,0.109511008516479,-104.9864797,39.7752036,-104.986415,39.77422
-9875,7568,7569,0.504435059432168,0.504435059432168,-104.9863939,39.7873956,-104.986356,39.791932
-9876,5172,5629,0.20005288591208,0.20005288591208,-104.9862386,39.7165499,-104.9862279,39.718349
-9877,5629,2361,0.11286306962317,0.11286306962317,-104.9862279,39.718349,-104.9862305,39.719364
-9878,2361,4143,0.172420177163863,0.172420177163863,-104.9862305,39.719364,-104.9862384,39.7209146
-9879,4143,4747,0.180602807146659,0.180602807146659,-104.9862384,39.7209146,-104.986239,39.7225388
-9880,4747,6561,0.177131591078149,0.177131591078149,-104.986239,39.7225388,-104.9862601,39.7241317
-9881,6561,7570,0.0829182513004679,0.0829182513004679,-104.9862601,39.7241317,-104.986258,39.7248774
-9882,7570,7571,0.0849604902234264,0.0849604902234264,-104.986258,39.7248774,-104.9862197,39.7256409
-9883,7571,7572,0.039332803551206,0.039332803551206,-104.9862197,39.7256409,-104.9861902,39.7259939
-9885,3557,7573,0.0207104909362794,0.0207104909362794,-104.9745442,39.7546268,-104.9744777,39.7548059
-9886,7573,5510,0.0781175186423301,0.0781175186423301,-104.9744777,39.7548059,-104.9738469,39.7553142
-9887,5510,2897,0.0422469044547541,0.0422469044547541,-104.9738469,39.7553142,-104.9733528,39.7553064
-9889,3682,7574,0.193399178760091,0.193399178760091,-104.9839328,39.7475479,-104.982314,39.7487628
-9890,7574,7575,0.146546921459533,0.146546921459533,-104.982314,39.7487628,-104.9811177,39.7497067
-9891,7575,5359,0.14787210152478,0.14787210152478,-104.9811177,39.7497067,-104.9798903,39.7506437
-9892,5359,2682,0.147887137976142,0.147887137976142,-104.9798903,39.7506437,-104.9786543,39.7515742
-9893,2682,7576,0.0606198046830208,0.0606198046830208,-104.9786543,39.7515742,-104.9781607,39.7519656
-9895,4620,7577,0.120158924963582,0.120158924963582,-104.9873927,39.7448898,-104.9883537,39.7441013
-9896,7577,6702,0.146317084486212,0.146317084486212,-104.9883537,39.7441013,-104.9895702,39.7431758
-9897,6702,7578,0.146734472806395,0.146734472806395,-104.9895702,39.7431758,-104.9907772,39.7422377
-9898,7578,7579,0.145050961623328,0.145050961623328,-104.9907772,39.7422377,-104.9919734,39.7413127
-9899,7579,7580,0.00770297520415462,0.00770297520415462,-104.9919734,39.7413127,-104.9920391,39.7412653
-9900,7580,7581,0.13912090851738,0.13912090851738,-104.9920391,39.7412653,-104.993184,39.7403763
-9901,7581,7582,0.0411773493232422,0.0411773493232422,-104.993184,39.7403763,-104.9935535,39.7401388
-9903,2466,5908,0.205955273119341,0.205955273119341,-104.936135,39.7474151,-104.9361363,39.7492673
-9904,5908,7583,0.198595406640257,0.198595406640257,-104.9361363,39.7492673,-104.936128,39.7510533
-9905,7583,793,0.198805543342419,0.198805543342419,-104.936128,39.7510533,-104.9361307,39.7528412
-9906,793,7584,0.20315326209993,0.20315326209993,-104.9361307,39.7528412,-104.936128,39.7546682
-9907,7584,4357,0.202186223769753,0.202186223769753,-104.936128,39.7546682,-104.9361228,39.7564865
-9908,4357,7585,0.201775154423619,0.201775154423619,-104.9361228,39.7564865,-104.9360971,39.758301
-9910,3060,7586,0.187004558668975,0.187004558668975,-104.9361384,39.7601551,-104.9361181,39.7618368
-9913,7588,906,0.27600804903505,0.27600804903505,-104.9356152,39.7619945,-104.9356148,39.7644767
-9914,906,7589,0.12928644320394,0.12928644320394,-104.9356148,39.7644767,-104.9356129,39.7656394
-9916,6671,7590,0.0565797137930955,0.0565797137930955,-104.9362703,39.7162376,-104.9360407,39.7167148
-9917,5136,5151,0.022597397933528,0.022597397933528,-104.9361524,39.7336487,-104.9361564,39.7338519
-9918,5151,4906,0.0926596414619678,0.0926596414619678,-104.9361564,39.7338519,-104.9361612,39.7346852
-9919,4906,6616,0.200362179375123,0.200362179375123,-104.9361612,39.7346852,-104.9361597,39.7364871
-9920,6616,7591,0.195770799250889,0.195770799250889,-104.9361597,39.7364871,-104.9361168,39.7382474
-9921,7591,7592,0.206820957598552,0.206820957598552,-104.9361168,39.7382474,-104.93614,39.7401073
-9925,6556,7596,0.107470441058094,0.107470441058094,-104.9360156,39.7243514,-104.9360196,39.7253179
-9926,7596,7597,0.0323668981715237,0.0323668981715237,-104.9360196,39.7253179,-104.9360062,39.7256088
-9927,7597,7598,0.201852282407455,0.201852282407455,-104.9360062,39.7256088,-104.9360089,39.7274241
-9928,7598,7599,0.202247125760461,0.202247125760461,-104.9360089,39.7274241,-104.9360268,39.7292429
-9930,7600,4778,0.250803140264124,0.250803140264124,-104.936219,39.7208978,-104.9360157,39.7231479
-9932,1647,159,0.135282147606574,0.135282147606574,-105.0155835,39.6940639,-105.0145783,39.6931248
-9933,159,1722,0.249462326524164,0.249462326524164,-105.0145783,39.6931248,-105.0146011,39.6908814
-9935,6872,7601,0.692595810332122,0.692595810332122,-105.0147213,39.6885235,-105.0138082,39.6823346
-9938,6136,7603,0.0512178060127243,0.0512178060127243,-105.0288404,39.7288083,-105.0294393,39.7288116
-9939,7603,4004,0.0522781951051087,0.0522781951051087,-105.0294393,39.7288116,-105.0300506,39.7288149
-9941,2233,5134,0.145435815612977,0.145435815612977,-104.9384001,39.7328678,-104.9384246,39.7341756
-9942,5134,5149,0.0255338309274142,0.0255338309274142,-104.9384246,39.7341756,-104.9384043,39.7344047
-9943,5149,4904,0.0300983323579011,0.0300983323579011,-104.9384043,39.7344047,-104.9383957,39.7346753
-9944,4904,6618,0.200495686198041,0.200495686198041,-104.9383957,39.7346753,-104.9383982,39.7364784
-9945,6618,7604,0.20246265981009,0.20246265981009,-104.9383982,39.7364784,-104.9383746,39.7382991
-9946,7604,7605,0.201805887092512,0.201805887092512,-104.9383746,39.7382991,-104.9383973,39.7401139
-9948,6554,7606,0.105208061763435,0.105208061763435,-104.9382214,39.724358,-104.9382673,39.7253035
-9950,7607,7608,0.199144734139014,0.199144734139014,-104.9382968,39.725617,-104.9383271,39.7274078
-9951,7608,7609,0.20258734096308,0.20258734096308,-104.9383271,39.7274078,-104.9383356,39.7292297
-9953,2463,5906,0.205561292129907,0.205561292129907,-104.9383838,39.7474085,-104.9383649,39.7492571
-9954,5906,7610,0.199734725303301,0.199734725303301,-104.9383649,39.7492571,-104.9383462,39.7510533
-9955,7610,791,0.198807553256576,0.198807553256576,-104.9383462,39.7510533,-104.9383354,39.7528412
-9956,791,7612,0.203565382214395,0.203565382214395,-104.9383354,39.7528412,-104.9383286,39.7546719
-9957,7612,4355,0.201053666601032,0.201053666601032,-104.9383286,39.7546719,-104.9383178,39.75648
-9958,4355,7613,0.202489967264216,0.202489967264216,-104.9383178,39.75648,-104.9383029,39.758301
-9959,7613,3058,0.208369032173912,0.208369032173912,-104.9383029,39.758301,-104.9383099,39.7601749
-9960,3058,7614,0.183994647182619,0.183994647182619,-104.9383099,39.7601749,-104.9383054,39.7618296
-9961,7614,7615,0.026448194348771,0.026448194348771,-104.9383054,39.7618296,-104.9380774,39.7619904
-9963,1697,7616,0.173745206459615,0.173745206459615,-104.9384472,39.7162245,-104.938435,39.717787
-9964,7616,7617,0.177904510236026,0.177904510236026,-104.938435,39.717787,-104.9384215,39.7193869
-9965,7617,7618,0.1681272184952,0.1681272184952,-104.9384215,39.7193869,-104.9384446,39.7208988
-9966,7618,4776,0.251475825917774,0.251475825917774,-104.9384446,39.7208988,-104.9382401,39.7231549
-9970,3746,7622,0.0932397806145687,0.0932397806145687,-105.006247,39.715647,-105.0062385,39.7148085
-9971,7622,4665,0.0961947321638159,0.0961947321638159,-105.0062385,39.7148085,-105.0062556,39.7139435
-9972,4665,1332,0.102043584181961,0.102043584181961,-105.0062556,39.7139435,-105.0062556,39.7130258
-9973,1332,1387,0.0976513845787387,0.0976513845787387,-105.0062556,39.7130258,-105.0062556,39.7121476
-9974,1387,7623,0.104092676384345,0.104092676384345,-105.0062556,39.7121476,-105.0062462,39.7112115
-9975,7623,6849,0.109393568832939,0.109393568832939,-105.0062462,39.7112115,-105.0062462,39.7102277
-9976,6849,4705,0.0983852710944781,0.0983852710944781,-105.0062462,39.7102277,-105.0062462,39.7093429
-9977,4705,7487,0.0961948643858329,0.0961948643858329,-105.0062462,39.7093429,-105.006229,39.7084779
-9978,7487,7451,0.0969202901634112,0.0969202901634112,-105.006229,39.7084779,-105.0062376,39.7076063
-9979,7451,5688,0.104320933330224,0.104320933330224,-105.0062376,39.7076063,-105.0061947,39.7066687
-9980,5688,6313,0.0969730195141145,0.0969730195141145,-105.0061947,39.7066687,-105.006229,39.705797
-9981,6313,4962,0.100610954866441,0.100610954866441,-105.006229,39.705797,-105.0062033,39.7048924
-9982,4962,6819,0.104277744196946,0.104277744196946,-105.0062033,39.7048924,-105.0062204,39.7039547
-9983,6819,762,0.165411660097114,0.165411660097114,-105.0062204,39.7039547,-105.0062581,39.7024674
-9984,762,786,0.134384238449809,0.134384238449809,-105.0062581,39.7024674,-105.0053032,39.7015078
-9985,786,6001,0.286482254105535,0.286482254105535,-105.0053032,39.7015078,-105.0043064,39.6990482
-9986,6001,5764,0.0815255628306487,0.0815255628306487,-105.0043064,39.6990482,-105.0047699,39.6984076
-11219,8167,8168,0.194203872480123,0.194203872480123,-104.9348261,39.707407,-104.935108,39.705674
-9989,1491,149,0.200485771831907,0.200485771831907,-105.0061812,39.6948904,-105.0061897,39.6930874
-9990,149,1737,0.201708050623858,0.201708050623858,-105.0061897,39.6930874,-105.0061947,39.6912734
-9992,7313,5666,0.0386975210921627,0.0386975210921627,-104.9485996,39.7029027,-104.9482219,39.7030942
-9993,5666,522,0.0596630213761568,0.0596630213761568,-104.9482219,39.7030942,-104.947535,39.703187
-9994,522,4824,0.183721500047411,0.183721500047411,-104.947535,39.703187,-104.9453876,39.7032065
-9996,2254,7626,0.0984544191189144,0.0984544191189144,-105.0323072,39.7481785,-105.0334588,39.7481791
-9998,7627,7329,0.0447853238574392,0.0447853238574392,-104.9546377,39.7861919,-104.9541142,39.7862117
-9999,7329,2089,0.0938827847318007,0.0938827847318007,-104.9541142,39.7862117,-104.9530155,39.7862051
-10000,2089,2656,0.0939761287497805,0.0939761287497805,-104.9530155,39.7862051,-104.9519157,39.7861993
-10001,2656,4118,0.0946147674881846,0.0946147674881846,-104.9519157,39.7861993,-104.9508084,39.7861993
-10002,4118,6678,0.0843387660785722,0.0843387660785722,-104.9508084,39.7861993,-104.9498214,39.7861927
-10004,7628,7629,0.0982828610797249,0.0982828610797249,-104.9487399,39.7861861,-104.9475898,39.7861729
-10006,5220,5095,0.120687418213095,0.120687418213095,-104.9888573,39.7273254,-104.9902684,39.7273108
-10008,7630,6413,0.109655980715331,0.109655980715331,-105.016237,39.727486,-105.0175186,39.7275171
-10009,6413,4650,0.0986378512210248,0.0986378512210248,-105.0175186,39.7275171,-105.018672,39.7275171
-10010,4650,7631,0.100237060358401,0.100237060358401,-105.018672,39.7275171,-105.0198441,39.7275171
-10011,7631,3646,0.0896866361421679,0.0896866361421679,-105.0198441,39.7275171,-105.0208928,39.7275233
-10012,3646,4536,0.103452838278423,0.103452838278423,-105.0208928,39.7275233,-105.0221025,39.7275212
-10013,4536,7635,0.257545536230436,0.257545536230436,-105.0221025,39.7275212,-105.025114,39.7275076
-10015,7636,7637,0.0362863399636557,0.0362863399636557,-104.992437,39.727286,-104.9928501,39.7273605
-10016,7637,383,0.0504266976907422,0.0504266976907422,-104.9928501,39.7273605,-104.9934396,39.7273502
-10017,383,4682,0.05031361216385,0.05031361216385,-104.9934396,39.7273502,-104.9940278,39.7273407
-10018,4682,295,0.0506583134955018,0.0506583134955018,-104.9940278,39.7273407,-104.9946201,39.7273342
-10019,295,4954,0.0497648033018035,0.0497648033018035,-104.9946201,39.7273342,-104.995202,39.7273313
-10021,7222,7638,0.0496667318298412,0.0496667318298412,-104.9963829,39.727324,-104.9969636,39.7273173
-10022,7638,7639,0.0515292350274089,0.0515292350274089,-104.9969636,39.7273173,-104.9975661,39.7273117
-10023,7639,7640,0.0459421846016502,0.0459421846016502,-104.9975661,39.7273117,-104.9981033,39.7273146
-10024,7640,6642,0.0415805639651593,0.0415805639651593,-104.9981033,39.7273146,-104.9985895,39.7273172
-10026,3954,7641,0.0608839417644586,0.0608839417644586,-105.0001997,39.7273124,-105.0009116,39.7273175
-10027,7641,5604,0.0589168683204242,0.0589168683204242,-105.0009116,39.7273175,-105.0016005,39.7273224
-18697,6400,5868,0.177478717288294,0.177478717288294,-105.0391033,39.716558,-105.0390984,39.7149619
-10029,7642,3727,0.0543818576839699,0.0543818576839699,-105.0022097,39.7273219,-105.0028456,39.7273213
-10031,1239,4813,0.0888202681133088,0.0888202681133088,-105.0121506,39.7275003,-105.0131892,39.7275003
-10032,4813,2165,0.138535770033239,0.138535770033239,-105.0131892,39.7275003,-105.0140457,39.7285578
-10034,4003,7643,0.0510385957556285,0.0510385957556285,-105.0300602,39.7277169,-105.030657,39.7277196
-10035,7643,7027,0.0529371470208169,0.0529371470208169,-105.030657,39.7277196,-105.031276,39.7277224
-10036,7027,7644,0.0521180983869426,0.0521180983869426,-105.031276,39.7277224,-105.0318854,39.7277175
-10037,7644,7645,0.0537600930137936,0.0537600930137936,-105.0318854,39.7277175,-105.032514,39.7277125
-10038,7645,7646,0.0510719245712091,0.0510719245712091,-105.032514,39.7277125,-105.0331112,39.7277125
-10039,7646,7380,0.0524231241843369,0.0524231241843369,-105.0331112,39.7277125,-105.0337242,39.7277125
-10041,7647,3393,0.0461297697153075,0.0461297697153075,-105.0345838,39.7277084,-105.0351232,39.7277059
-10043,3394,7648,0.0445992136926928,0.0445992136926928,-105.0351404,39.7282472,-105.0356619,39.728244
-10044,7648,5709,0.0478831918410465,0.0478831918410465,-105.0356619,39.728244,-105.0362218,39.7282406
-10045,5709,7649,0.04548718787965,0.04548718787965,-105.0362218,39.7282406,-105.0367537,39.7282406
-10046,7649,7432,0.0484717768195407,0.0484717768195407,-105.0367537,39.7282406,-105.0373205,39.7282406
-10047,7432,7650,0.0437375947901795,0.0437375947901795,-105.0373205,39.7282406,-105.0378319,39.7282456
-10048,7650,7181,0.0470644094329018,0.0470644094329018,-105.0378319,39.7282456,-105.0383822,39.7282509
-10049,7181,7651,0.0469937345825467,0.0469937345825467,-105.0383822,39.7282509,-105.0389317,39.7282542
-10051,7652,7653,0.0459694430265719,0.0459694430265719,-105.0394723,39.7282575,-105.0400098,39.7282525
-10053,1099,7654,0.0453903142377476,0.0453903142377476,-105.0405735,39.7282472,-105.0411042,39.7282537
-10054,7654,7505,0.0471008131744324,0.0471008131744324,-105.0411042,39.7282537,-105.0416549,39.7282604
-10055,7505,7655,0.0439789031058606,0.0439789031058606,-105.0416549,39.7282604,-105.0421691,39.7282666
-10056,7655,3857,0.0492561227403211,0.0492561227403211,-105.0421691,39.7282666,-105.042745,39.7282736
-10057,3857,7656,0.0443253739114241,0.0443253739114241,-105.042745,39.7282736,-105.0432633,39.7282706
-10058,7656,5595,0.054031927582118,0.054031927582118,-105.0432633,39.7282706,-105.0438951,39.728267
-10059,5595,7657,0.0531350620266369,0.0531350620266369,-105.0438951,39.728267,-105.0445162,39.72828
-10060,7657,7548,0.0548032505549166,0.0548032505549166,-105.0445162,39.72828,-105.0451568,39.7282934
-10061,7548,7658,0.0961567115661112,0.0961567115661112,-105.0451568,39.7282934,-105.0462812,39.7282934
-10063,5169,6864,0.176934896372569,0.176934896372569,-104.9413494,39.7162383,-104.9413408,39.7146471
-10064,6864,3072,0.175748977102837,0.175748977102837,-104.9413408,39.7146471,-104.9413569,39.7130666
-10065,3072,7659,0.163990749862373,0.163990749862373,-104.9413569,39.7130666,-104.9413615,39.7115918
-10067,3292,100,0.415519355639239,0.415519355639239,-104.9432867,39.7038272,-104.9421088,39.7002019
-10069,5731,3291,0.149792492427265,0.149792492427265,-104.9434927,39.7051611,-104.9434841,39.703814
-10071,1152,7660,0.199718823841446,0.199718823841446,-104.9246199,39.7638103,-104.9246105,39.7656064
-10074,6897,7663,0.241129252553979,0.241129252553979,-104.9246113,39.7692598,-104.9245971,39.7714283
-13575,2,9131,0.186044551751923,0.186044551751923,-105.0158228,39.7323669,-105.016012,39.7307001
-10075,7663,7664,0.101783451026811,0.101783451026811,-104.9245971,39.7714283,-104.9246108,39.7723436
-10076,7664,7665,0.289306992458348,0.289306992458348,-104.9246108,39.7723436,-104.9246092,39.7749454
-10078,6814,7666,0.176577592408465,0.176577592408465,-104.9246289,39.7162454,-104.9245961,39.7178332
-12084,8539,8540,0.241661980997098,0.241661980997098,-104.9669081,39.7808609,-104.969601,39.7801972
-10079,7666,2342,0.176188966635474,0.176188966635474,-104.9245961,39.7178332,-104.9245907,39.7194177
-10080,2342,7667,0.17458351857957,0.17458351857957,-104.9245907,39.7194177,-104.9246096,39.7209877
-10081,7667,4785,0.245723521469374,0.245723521469374,-104.9246096,39.7209877,-104.924985,39.7231786
-10082,4785,7668,0.239480958817199,0.239480958817199,-104.924985,39.7231786,-104.9249904,39.7253323
-10084,5159,7669,0.0600603744377636,0.0600603744377636,-104.9245238,39.729244,-104.9245319,39.7297841
-10085,7669,5954,0.140826727437097,0.140826727437097,-104.9245319,39.7297841,-104.924551,39.7310505
-10086,5954,2241,0.203480008894553,0.203480008894553,-104.924551,39.7310505,-104.9245804,39.7328803
-10087,2241,4914,0.201437462212311,0.201437462212311,-104.9245804,39.7328803,-104.9246012,39.7346918
-10088,4914,6609,0.201231500080185,0.201231500080185,-104.9246012,39.7346918,-104.9246118,39.7365015
-10089,6609,7670,0.19693744890168,0.19693744890168,-104.9246118,39.7365015,-104.9245872,39.7382725
-11324,5142,5154,0.0222389853288599,0.0222389853288599,-104.930434,39.732387,-104.930434,39.732587
-16191,7205,5817,0.204256012568379,0.204256012568379,-104.9834023,39.693013,-104.983413,39.6911761
-10090,7670,7671,0.205535401167156,0.205535401167156,-104.9245872,39.7382725,-104.9246387,39.7401205
-10092,690,1979,0.162739101905996,0.162739101905996,-104.9246436,39.7419221,-104.924659,39.7433856
-10093,1979,1964,0.0397992509913644,0.0397992509913644,-104.924659,39.7433856,-104.9246161,39.743742
-10094,1964,6501,0.211697424646872,0.211697424646872,-104.9246161,39.743742,-104.9246462,39.7456457
-10095,6501,2478,0.193626535181341,0.193626535181341,-104.9246462,39.7456457,-104.924634,39.747387
-10096,2478,5912,0.20926896109112,0.20926896109112,-104.924634,39.747387,-104.9246315,39.749269
-10097,5912,7672,0.199195490528656,0.199195490528656,-104.9246315,39.749269,-104.9246245,39.7510604
-10098,7672,803,0.201999137953248,0.201999137953248,-104.9246245,39.7510604,-104.9246129,39.752877
-10099,803,7673,0.202608278725201,0.202608278725201,-104.9246129,39.752877,-104.9246133,39.7546991
-10100,7673,7674,0.205563081575912,0.205563081575912,-104.9246133,39.7546991,-104.9245919,39.7565477
-10101,7674,7675,0.203265447696938,0.203265447696938,-104.9245919,39.7565477,-104.924584,39.7583757
-10102,7675,3066,0.200093208772811,0.200093208772811,-104.924584,39.7583757,-104.9245426,39.7601749
-10103,3066,7676,0.18728661128175,0.18728661128175,-104.9245426,39.7601749,-104.9246105,39.7618584
-10105,7677,6370,0.270615231348292,0.270615231348292,-104.924985,39.7256294,-104.9249818,39.7280631
-10106,6370,7678,0.131279919418432,0.131279919418432,-104.9249818,39.7280631,-104.9249925,39.7292437
-10108,6507,7679,0.113730821063582,0.113730821063582,-104.924642,39.7791151,-104.9246153,39.7801377
-10109,7679,6937,0.113695193803527,0.113695193803527,-104.9246153,39.7801377,-104.9245981,39.7811601
-10111,759,6605,0.202732181741343,0.202732181741343,-104.9246452,39.7765808,-104.9246358,39.778404
-10113,5167,7680,0.173408491477124,0.173408491477124,-104.947367,39.7162531,-104.9473666,39.7178126
-10114,7680,2354,0.177734023432563,0.177734023432563,-104.9473666,39.7178126,-104.947365,39.719411
-11350,4801,4798,0.0316348130565604,0.0316348130565604,-105.0127766,39.7620198,-105.0131467,39.7620198
-10116,4156,4743,0.17475749351339,0.17475749351339,-104.9473677,39.7209707,-104.9474028,39.7225421
-10117,4743,6539,0.176484628682033,0.176484628682033,-104.9474028,39.7225421,-104.9473731,39.7241291
-10118,6539,7681,0.164515462701881,0.164515462701881,-104.9473731,39.7241291,-104.9473329,39.7256083
-10119,7681,1204,0.1695248683934,0.1695248683934,-104.9473329,39.7256083,-104.9473134,39.7271328
-10120,1204,7682,0.0218451192643306,0.0218451192643306,-104.9473134,39.7271328,-104.9473072,39.7273292
-10121,7682,3779,0.199697518421981,0.199697518421981,-104.9473072,39.7273292,-104.9472954,39.7291251
-10123,7683,953,0.176289634687175,0.176289634687175,-104.9472804,39.7305107,-104.947288,39.7320961
-10124,953,7684,0.174800312403385,0.174800312403385,-104.947288,39.7320961,-104.9472785,39.7336681
-10125,7684,4892,0.161444055531775,0.161444055531775,-104.9472785,39.7336681,-104.947281,39.73512
-10126,4892,7685,0.184678055138444,0.184678055138444,-104.947281,39.73512,-104.9472977,39.7367808
-10127,7685,5490,0.173583753319791,0.173583753319791,-104.9472977,39.7367808,-104.9472672,39.7383417
-10128,5490,3022,0.0680856463383254,0.0680856463383254,-104.9472672,39.7383417,-104.9472629,39.738954
-18346,1684,7686,0.206269012853702,0.206269012853702,-105.0352055,39.7676655,-105.0352172,39.7695205
-10129,3022,608,0.0626103319165951,0.0626103319165951,-104.9472629,39.738954,-104.9472743,39.739517
-10130,608,7687,0.0714136208255542,0.0714136208255542,-104.9472743,39.739517,-104.9472834,39.7401592
-10132,751,1571,0.141098847639908,0.141098847639908,-104.9475049,39.7764171,-104.9475365,39.7776858
-10133,1571,7688,0.136160171060933,0.136160171060933,-104.9475365,39.7776858,-104.9475279,39.7789103
-10134,7688,355,0.0540631216358879,0.0540631216358879,-104.9475279,39.7789103,-104.9475022,39.7793961
-11381,7,8238,0.233069627316498,0.233069627316498,-104.9443453,39.7800941,-104.9470651,39.7802508
-10136,3031,7689,0.212052347410258,0.212052347410258,-104.9478224,39.759056,-104.9478369,39.760963
-10139,5644,4349,0.138628444284297,0.138628444284297,-104.9476672,39.7557083,-104.9476591,39.756955
-10140,4349,6347,0.140074045976997,0.140074045976997,-104.9476591,39.756955,-104.9476508,39.7582147
-10143,7690,7691,0.036360966917709,0.036360966917709,-104.9475732,39.784427,-104.9475747,39.784754
-13576,9131,2186,0.0494030185182178,0.0494030185182178,-105.016012,39.7307001,-105.0164597,39.7309809
-10144,7691,7692,0.019090691679145,0.019090691679145,-104.9475747,39.784754,-104.9475818,39.7849256
-10145,7692,7629,0.138695116564921,0.138695116564921,-104.9475818,39.7849256,-104.9475898,39.7861729
-10146,7629,7693,0.131928656438508,0.131928656438508,-104.9475898,39.7861729,-104.9475739,39.7873593
-10148,7694,7695,0.805329256404935,0.805329256404935,-104.947581,39.7874249,-104.9475812,39.7946674
-10149,6359,2392,0.110097282540218,0.110097282540218,-104.9475481,39.7728942,-104.9475383,39.7738843
-10150,2392,7696,0.139362539585628,0.139362539585628,-104.9475383,39.7738843,-104.9475469,39.7751376
-10152,7697,698,0.20136290155584,0.20136290155584,-104.9476781,39.7401632,-104.9476788,39.7419741
-10153,698,7698,0.201586501703314,0.201586501703314,-104.9476788,39.7419741,-104.947687,39.743787
-10155,7699,894,0.281945866493957,0.281945866493957,-104.9474853,39.7619327,-104.9474844,39.7644683
-10156,894,4477,0.138715715492195,0.138715715492195,-104.9474844,39.7644683,-104.9474831,39.7657158
-10157,4477,2802,0.13960527461951,0.13960527461951,-104.9474831,39.7657158,-104.9474844,39.7669713
-10158,2802,5268,0.12511734550188,0.12511734550188,-104.9474844,39.7669713,-104.9475125,39.7680963
-10161,4794,2158,0.120027593160305,0.120027593160305,-105.0131497,39.7568505,-105.0144627,39.756468
-11430,319,412,0.178792036530689,0.178792036530689,-105.0307715,39.7835551,-105.0287256,39.7838921
-11459,224,8268,0.046644646559722,0.046644646559722,-104.9412461,39.7790391,-104.9407004,39.7790485
-10165,7703,1119,0.0497953640754775,0.0497953640754775,-105.0398923,39.7567045,-105.0404748,39.756701
-10166,1119,7704,0.0511005498462644,0.0511005498462644,-105.0404748,39.756701,-105.0410725,39.7566932
-10167,7704,7496,0.0499039643779027,0.0499039643779027,-105.0410725,39.7566932,-105.0416562,39.756701
-10168,7496,7705,0.050496479725261,0.050496479725261,-105.0416562,39.756701,-105.0422469,39.7567047
-10169,7705,3842,0.0493242373326315,0.0493242373326315,-105.0422469,39.7567047,-105.0428239,39.7567068
-10170,3842,7706,0.0511368055077475,0.0511368055077475,-105.0428239,39.7567068,-105.0434221,39.7567041
-10171,7706,5553,0.0516924374908146,0.0516924374908146,-105.0434221,39.7567041,-105.0440268,39.7567014
-10173,5552,7707,0.497797594406761,0.497797594406761,-105.0440147,39.7560876,-105.049838,39.756086
-10174,7708,6434,0.169523036166009,0.169523036166009,-105.0158257,39.7560437,-105.0178088,39.7560453
-10175,6434,4659,0.115447272077866,0.115447272077866,-105.0178088,39.7560453,-105.0191593,39.7560504
-10176,4659,7709,0.0610101187906253,0.0610101187906253,-105.0191593,39.7560504,-105.019873,39.7560486
-10177,7709,1282,0.0565434694494923,0.0565434694494923,-105.019873,39.7560486,-105.0205344,39.7560422
-10178,1282,4541,0.131357223988847,0.131357223988847,-105.0205344,39.7560422,-105.022071,39.7560345
-10179,4541,7710,0.132140893738002,0.132140893738002,-105.022071,39.7560345,-105.0236168,39.7560347
-10180,7710,7711,0.0696094980092003,0.0696094980092003,-105.0236168,39.7560347,-105.0244311,39.7560352
-10181,7711,7712,0.0619159407722012,0.0619159407722012,-105.0244311,39.7560352,-105.0251554,39.7560349
-10183,4024,7713,0.0484316979076645,0.0484316979076645,-105.0299253,39.7566682,-105.0304918,39.7566748
-10184,7713,5669,0.0520933568419111,0.0520933568419111,-105.0304918,39.7566748,-105.0311012,39.7566748
-10185,5669,7714,0.0498366654518003,0.0498366654518003,-105.0311012,39.7566748,-105.0316842,39.7566755
-10186,7714,7030,0.0492177257934086,0.0492177257934086,-105.0316842,39.7566755,-105.0322599,39.7566691
-19495,7469,10524,0.0198269485983196,0.0198269485983196,-104.9883525,39.7084582,-104.9883547,39.7082799
-10188,7715,7378,0.0506230529615687,0.0506230529615687,-105.0328425,39.7566691,-105.0334347,39.7566691
-10189,7378,1594,0.0506283698630863,0.0506283698630863,-105.0334347,39.7566691,-105.0340269,39.7566757
-10190,1594,3411,0.0491667634825631,0.0491667634825631,-105.0340269,39.7566757,-105.034602,39.7566823
-10191,3411,7717,0.105657808428602,0.105657808428602,-105.034602,39.7566823,-105.035838,39.756686
-10192,7717,7718,0.0940313147486449,0.0940313147486449,-105.035838,39.756686,-105.036938,39.756686
-10193,5546,7719,0.0535907784173066,0.0535907784173066,-104.9874887,39.6894093,-104.9868624,39.6894114
-10194,7719,7720,0.0530201286004126,0.0530201286004126,-104.9868624,39.6894114,-104.9862428,39.6894062
-10195,7720,573,0.0448716576991108,0.0448716576991108,-104.9862428,39.6894062,-104.9857184,39.6894083
-10196,573,4986,0.0479600812575622,0.0479600812575622,-104.9857184,39.6894083,-104.9851579,39.6894075
-10197,4986,7721,0.0515371092658245,0.0515371092658245,-104.9851579,39.6894075,-104.9845556,39.6894094
-10198,7721,7722,0.0482855644451139,0.0482855644451139,-104.9845556,39.6894094,-104.9839913,39.6894112
-10199,7722,7723,0.0490137565654263,0.0490137565654263,-104.9839913,39.6894112,-104.9834185,39.689408
-10200,7723,7724,0.0538141529532141,0.0538141529532141,-104.9834185,39.689408,-104.9827896,39.6894045
-10201,7724,7725,0.0529684395598169,0.0529684395598169,-104.9827896,39.6894045,-104.9821706,39.6894094
-10202,7725,7726,0.0518724854854175,0.0518724854854175,-104.9821706,39.6894094,-104.9815644,39.6894136
-10203,7726,7727,0.04727777135042,0.04727777135042,-104.9815644,39.6894136,-104.9810119,39.6894094
-10204,7727,3618,0.0472245509762166,0.0472245509762166,-104.9810119,39.6894094,-104.98046,39.6894076
-10205,3618,7728,0.0514814686878799,0.0514814686878799,-104.98046,39.6894076,-104.9798585,39.6893971
-10206,7728,7729,0.0518724978816832,0.0518724978816832,-104.9798585,39.6893971,-104.9792523,39.6893929
-10207,7729,7730,0.0486618474944759,0.0486618474944759,-104.9792523,39.6893929,-104.9786837,39.6894012
-10208,7730,5100,0.0498159875736575,0.0498159875736575,-104.9786837,39.6894012,-104.9781016,39.6893933
-10209,5100,7731,0.0971611599806991,0.0971611599806991,-104.9781016,39.6893933,-104.9769661,39.6893959
-10210,7731,7732,0.0537738540349519,0.0537738540349519,-104.9769661,39.6893959,-104.9763378,39.6893855
-10211,7732,7733,0.048775543246574,0.048775543246574,-104.9763378,39.6893855,-104.9757679,39.6893761
-10213,7734,1529,0.0486197396153865,0.0486197396153865,-104.9751677,39.6893788,-104.9745995,39.6893814
-10214,1529,6533,0.0236551874497837,0.0236551874497837,-104.9745995,39.6893814,-104.9743231,39.6893856
-10216,1748,5658,0.0690555262759062,0.0690555262759062,-104.9722475,39.6901911,-104.9716542,39.6897701
-10217,5658,6638,0.0663249571304488,0.0663249571304488,-104.9716542,39.6897701,-104.9710843,39.6893658
-10220,5429,5327,0.0495383987324496,0.0495383987324496,-104.9698913,39.6893394,-104.9693125,39.6893294
-10221,5327,7400,0.0488963197685218,0.0488963197685218,-104.9693125,39.6893294,-104.9687412,39.6893196
-10223,3485,7735,0.019269671719438,0.019269671719438,-104.9637153,39.6893166,-104.9634901,39.6893161
-10224,7735,6080,0.0527262897841316,0.0527262897841316,-104.9634901,39.6893161,-104.9628739,39.6893149
-10225,6080,7736,0.0518491308674393,0.0518491308674393,-104.9628739,39.6893149,-104.9622681,39.6893045
-10226,7736,3699,0.0473298672855462,0.0473298672855462,-104.9622681,39.6893045,-104.9617151,39.6892951
-10227,3699,4573,0.0991704429707509,0.0991704429707509,-104.9617151,39.6892951,-104.9605564,39.6893149
-10228,4573,7737,0.1025259519958,0.1025259519958,-104.9605564,39.6893149,-104.9593582,39.6893161
-10229,7737,7738,0.0567267064163172,0.0567267064163172,-104.9593582,39.6893161,-104.9586954,39.6893271
-10230,7738,6520,0.0485788201580239,0.0485788201580239,-104.9586954,39.6893271,-104.9581278,39.6893365
-11562,4026,8321,0.0489622731658017,0.0489622731658017,-105.029918,39.7580208,-105.0304907,39.7580283
-10232,7739,6163,0.0483379374847878,0.0483379374847878,-104.9575425,39.6893331,-104.9569776,39.6893298
-10233,6163,7740,0.0487487301271992,0.0487487301271992,-104.9569776,39.6893298,-104.9564079,39.6893332
-10234,7740,2742,0.0481924761788732,0.0481924761788732,-104.9564079,39.6893332,-104.9558447,39.6893365
-10236,7741,5233,0.0485076742472366,0.0485076742472366,-104.9552614,39.6893365,-104.9546945,39.6893365
-10237,5233,7742,0.0501847785254714,0.0501847785254714,-104.9546945,39.6893365,-104.954108,39.6893365
-10238,7742,3175,0.0518961094220257,0.0518961094220257,-104.954108,39.6893365,-104.9535015,39.6893365
-10239,3175,7743,0.0477088260821206,0.0477088260821206,-104.9535015,39.6893365,-104.952944,39.68933
-10240,7743,5000,0.0480456206813873,0.0480456206813873,-104.952944,39.68933,-104.9523825,39.6893301
-10241,5000,7744,0.0507496702288809,0.0507496702288809,-104.9523825,39.6893301,-104.9517894,39.689329
-10242,7744,732,0.0500052182058767,0.0500052182058767,-104.9517894,39.689329,-104.951205,39.689328
-10243,732,7062,0.0993780460470829,0.0993780460470829,-104.951205,39.689328,-104.9500436,39.6893239
-10244,7062,568,0.179642317491375,0.179642317491375,-104.9500436,39.6893239,-104.9479442,39.6893133
-10245,568,6375,0.221062471524952,0.221062471524952,-104.9479442,39.6893133,-104.9453607,39.6893067
-10246,6375,7745,0.0502032533440095,0.0502032533440095,-104.9453607,39.6893067,-104.944774,39.68931
-10247,7745,4829,0.0496813089217868,0.0496813089217868,-104.944774,39.68931,-104.9441934,39.6893133
-10248,4829,7746,0.10134770204508,0.10134770204508,-104.9441934,39.6893133,-104.943009,39.6893199
-10249,7746,7747,0.19682163321823,0.19682163321823,-104.943009,39.6893199,-104.9407088,39.6893132
-10250,7747,7748,0.0148866727143693,0.0148866727143693,-104.9407088,39.6893132,-104.9405349,39.6893172
-10251,7748,1062,0.0938295581784946,0.0938295581784946,-104.9405349,39.6893172,-104.9394384,39.6893266
-10252,1062,1700,0.0910684866897701,0.0910684866897701,-104.9394384,39.6893266,-104.9383741,39.6893266
-10254,7749,7750,0.088136254722807,0.088136254722807,-104.9383055,39.6893261,-104.9372755,39.6893199
-10255,7750,7751,0.0102851011578735,0.0102851011578735,-104.9372755,39.6893199,-104.9371553,39.6893199
-10256,7751,6675,0.0807868256992296,0.0807868256992296,-104.9371553,39.6893199,-104.9362112,39.6893266
-10258,5566,7541,0.078830239472867,0.078830239472867,-105.0440247,39.7666482,-105.044947,39.7666453
-10259,7541,7752,0.71007082854504,0.71007082854504,-105.044947,39.7666453,-105.0532546,39.7666043
-10260,7753,7754,0.0555561071332203,0.0555561071332203,-105.0252922,39.7665061,-105.0259422,39.7665053
-10261,7754,6755,0.141035585683202,0.141035585683202,-105.0259422,39.7665053,-105.0275923,39.7665033
-10262,6755,3980,0.200595577576722,0.200595577576722,-105.0275923,39.7665033,-105.0299392,39.7664918
-10263,3980,7039,0.198840384599884,0.198840384599884,-105.0299392,39.7664918,-105.0322656,39.7664861
-10264,7039,3426,0.202741409948142,0.202741409948142,-105.0322656,39.7664861,-105.0346376,39.7664739
-10266,6623,1789,0.083407855110509,0.083407855110509,-104.9815624,39.6955402,-104.9815787,39.6947902
-10267,1789,7208,0.197984235440067,0.197984235440067,-104.9815787,39.6947902,-104.9815692,39.6930097
-10268,7208,5821,0.204810690510051,0.204810690510051,-104.9815692,39.6930097,-104.9815757,39.6911678
-10269,5821,7726,0.195060536702397,0.195060536702397,-104.9815757,39.6911678,-104.9815644,39.6894136
-10270,7726,7755,1.41312394826698,1.41312394826698,-104.9815644,39.6894136,-104.9816388,39.6767052
-10271,3161,7756,0.200885724863022,0.200885724863022,-104.9814586,39.7164952,-104.9814659,39.7146886
-10272,7756,3082,0.196495825635974,0.196495825635974,-104.9814659,39.7146886,-104.9815443,39.7129225
-10273,3082,3194,0.201063950220373,0.201063950220373,-104.9815443,39.7129225,-104.9815359,39.7111143
-10275,6110,1901,0.201670811128578,0.201670811128578,-104.9815389,39.7093013,-104.9815067,39.7074878
-10277,441,5814,0.0584483555155252,0.0584483555155252,-105.01516,39.7314761,-105.0151443,39.7320016
-10278,5814,5376,0.210901593054405,0.210901593054405,-105.0151443,39.7320016,-105.0150947,39.7338979
-10282,2638,5211,0.135802363910714,0.135802363910714,-105.015182,39.7220707,-105.015182,39.723292
-10284,5376,7115,0.169184130655589,0.169184130655589,-105.0150947,39.7338979,-105.0141573,39.7352378
-10286,6686,7758,0.0966310054355491,0.0966310054355491,-104.9498944,39.7710718,-104.9487638,39.7710638
-10287,7758,7759,0.103268100856542,0.103268100856542,-104.9487638,39.7710638,-104.9475555,39.7710608
-10289,7760,7761,0.0931830345887697,0.0931830345887697,-104.9463967,39.7710806,-104.9453067,39.7710608
-10290,7761,870,0.209204581827195,0.209204581827195,-104.9453067,39.7710608,-104.9428589,39.7710708
-10292,6165,6785,0.0415827902651337,0.0415827902651337,-104.9688892,39.7713666,-104.968405,39.7713299
-10293,6785,7357,0.102001818508737,0.102001818508737,-104.968405,39.7713299,-104.967212,39.7713035
-10294,7357,5405,0.112234858942921,0.112234858942921,-104.967212,39.7713035,-104.9658988,39.7713101
-10295,5405,3138,0.103097089620426,0.103097089620426,-104.9658988,39.7713101,-104.9646947,39.7713662
-10296,3138,7762,0.00572680722694595,0.00572680722694595,-104.9646947,39.7713662,-104.964756,39.771387
-10297,6991,6399,0.078057620939779,0.078057620939779,-104.9317465,39.7717305,-104.9308332,39.7717367
-10299,3614,2112,0.200468732564122,0.200468732564122,-104.9293312,39.771412,-104.9269856,39.7714213
-10300,2112,7766,0.09707938317328,0.09707938317328,-104.9269856,39.7714213,-104.9258497,39.7714216
-10301,7766,7663,0.107055697326901,0.107055697326901,-104.9258497,39.7714216,-104.9245971,39.7714283
-10303,869,7100,0.0985676933380822,0.0985676933380822,-104.9428549,39.7705626,-104.9417016,39.7705626
-11668,7785,8358,0.00862504224759753,0.00862504224759753,-105.0393001,39.7639573,-105.039401,39.7639563
-10305,2502,7767,0.133821378293258,0.133821378293258,-105.0095013,39.7831276,-105.0110634,39.7832133
-10306,7767,4793,0.137187308277769,0.137187308277769,-105.0110634,39.7832133,-105.0126685,39.7832397
-10307,4793,2155,0.138619015999951,0.138619015999951,-105.0126685,39.7832397,-105.0142907,39.7832331
-10308,2155,6302,0.131440648996103,0.131440648996103,-105.0142907,39.7832331,-105.015828,39.7832739
-10309,6302,6427,0.0971164197766542,0.0971164197766542,-105.015828,39.7832739,-105.01696,39.7833518
-10310,6427,5345,0.100480546860285,0.100480546860285,-105.01696,39.7833518,-105.0181359,39.7833518
-10311,5345,4641,0.0997483726431183,0.0997483726431183,-105.0181359,39.7833518,-105.0193032,39.7833584
-10312,4641,1266,0.0975658909823655,0.0975658909823655,-105.0193032,39.7833584,-105.0204447,39.7833782
-10313,1266,4540,0.103828265337942,0.103828265337942,-105.0204447,39.7833782,-105.0216205,39.7836137
-10314,4540,6286,0.102716645609349,0.102716645609349,-105.0216205,39.7836137,-105.0227972,39.7838025
-10315,6286,2720,0.0979601908800836,0.0979601908800836,-105.0227972,39.7838025,-105.0239436,39.7838066
-10317,2598,5187,0.177611938217315,0.177611938217315,-105.0394444,39.7229454,-105.0394481,39.7245427
-10318,5187,5655,0.104799417596727,0.104799417596727,-105.0394481,39.7245427,-105.0394723,39.725485
-10319,5655,7768,0.00220165954800827,0.00220165954800827,-105.0394723,39.725485,-105.0394723,39.7255048
-10321,7769,6068,0.194290902090962,0.194290902090962,-105.0392429,39.783874,-105.0392423,39.7856213
-10322,6068,2548,0.201654782967819,0.201654782967819,-105.0392423,39.7856213,-105.0392299,39.7874348
-10323,2548,7770,0.410001897212591,0.410001897212591,-105.0392299,39.7874348,-105.039251,39.791122
-10324,6390,7771,0.13140278725488,0.13140278725488,-105.039295,39.7475739,-105.0393066,39.7487556
-10325,7771,7772,0.135404012160521,0.135404012160521,-105.0393066,39.7487556,-105.0392981,39.7499733
-10326,7772,7773,0.135386059531021,0.135386059531021,-105.0392981,39.7499733,-105.0393133,39.7511908
-10327,7773,5541,0.102606539353157,0.102606539353157,-105.0393133,39.7511908,-105.0393273,39.7521135
-10328,5541,2410,0.100544408114452,0.100544408114452,-105.0393273,39.7521135,-105.0393531,39.7530175
-10329,2410,4294,0.100431298726032,0.100431298726032,-105.0393531,39.7530175,-105.039314,39.7539202
-10330,4294,7776,0.0501127826077893,0.0501127826077893,-105.039314,39.7539202,-105.0393033,39.7543708
-10331,7776,7777,0.0533516278326779,0.0533516278326779,-105.0393033,39.7543708,-105.0393054,39.7548506
-10332,7777,7778,0.0636719509277386,0.0636719509277386,-105.0393054,39.7548506,-105.0393109,39.7554232
-10333,7778,7702,0.142867174122929,0.142867174122929,-105.0393109,39.7554232,-105.0393233,39.756708
-10334,7702,2984,0.198167346423749,0.198167346423749,-105.0393233,39.756708,-105.039304,39.7584901
-10336,7779,1879,0.0577899859499687,0.0577899859499687,-105.0393085,39.7589141,-105.0393141,39.7594338
-10337,1879,7780,0.0975763172911078,0.0975763172911078,-105.0393141,39.7594338,-105.0393055,39.7603113
-10338,7780,7781,0.049615978114649,0.049615978114649,-105.0393055,39.7603113,-105.0393022,39.7607575
-10339,7781,7782,0.151461070035101,0.151461070035101,-105.0393022,39.7607575,-105.0392921,39.7621196
-10340,7782,7783,0.00828406172358757,0.00828406172358757,-105.0392921,39.7621196,-105.0392924,39.7621941
-10341,7783,7784,0.0408643643931965,0.0408643643931965,-105.0392924,39.7621941,-105.039294,39.7625616
-10342,7784,7785,0.155195634964959,0.155195634964959,-105.039294,39.7625616,-105.0393001,39.7639573
-10343,7785,6879,0.203175602967298,0.203175602967298,-105.0393001,39.7639573,-105.0393037,39.7657845
-10344,6879,1690,0.204417069906845,0.204417069906845,-105.0393037,39.7657845,-105.0393241,39.7676228
-10345,1690,7786,0.203521868851454,0.203521868851454,-105.0393241,39.7676228,-105.0393141,39.7694531
-10346,7786,2437,0.163479024443522,0.163479024443522,-105.0393141,39.7694531,-105.0393174,39.7709233
-10347,2437,2436,0.0381118302971424,0.0381118302971424,-105.0393174,39.7709233,-105.0393043,39.7712659
-10348,2436,5735,0.132411428624817,0.132411428624817,-105.0393043,39.7712659,-105.0393,39.7724567
-10349,5735,7787,0.0686968769014223,0.0686968769014223,-105.0393,39.7724567,-105.0393035,39.7730745
-10350,7787,5524,0.0876693797427073,0.0876693797427073,-105.0393035,39.7730745,-105.0392946,39.7738629
-10352,6462,6461,0.046218455398192,0.046218455398192,-105.0392949,39.7752627,-105.0392863,39.7756783
-10353,6461,7788,0.114101346725552,0.114101346725552,-105.0392863,39.7756783,-105.0392748,39.7767044
-10354,7788,7789,0.186352786707342,0.186352786707342,-105.0392748,39.7767044,-105.0392328,39.77838
-10355,7789,7790,0.201819126377908,0.201819126377908,-105.0392328,39.77838,-105.0392371,39.780195
-10356,7790,1426,0.209991688515331,0.209991688515331,-105.0392371,39.780195,-105.0392391,39.7820835
-10357,1426,7188,0.131433687737374,0.131433687737374,-105.0392391,39.7820835,-105.0392459,39.7832655
-10361,7791,7792,0.0221530824058495,0.0221530824058495,-105.0397234,39.7195311,-105.0397277,39.7197303
-10362,7792,1857,0.178051972210932,0.178051972210932,-105.0397277,39.7197303,-105.0397097,39.7213315
-10363,1857,2599,0.180197954723075,0.180197954723075,-105.0397097,39.7213315,-105.0397277,39.722952
-10365,7793,7794,0.133052671328159,0.133052671328159,-105.0393289,39.7329999,-105.0393119,39.7341964
-10366,7794,7795,0.00451480555637825,0.00451480555637825,-105.0393119,39.7341964,-105.0393113,39.734237
-10368,7796,316,0.0810108111113459,0.0810108111113459,-105.014664,39.7254193,-105.0137199,39.7254787
-10369,316,7797,0.0132929754360195,0.0132929754360195,-105.0137199,39.7254787,-105.013565,39.7254886
-10371,7798,1715,0.146657336243231,0.146657336243231,-105.0425,39.6923732,-105.0433411,39.691224
-10373,4991,5886,0.0409007612541298,0.0409007612541298,-105.0155876,39.7516074,-105.015177,39.7517962
-10374,5886,7799,0.0133509392362763,0.0133509392362763,-105.015177,39.7517962,-105.0150392,39.7518527
-10375,7799,6955,0.0302227835880131,0.0302227835880131,-105.0150392,39.7518527,-105.0147293,39.7519835
-10376,6955,120,0.355050454211798,0.355050454211798,-105.0147293,39.7519835,-105.011137,39.753586
-10378,6998,7800,0.287485052767515,0.287485052767515,-104.931634,39.787286,-104.9282697,39.7872538
-10379,7800,2107,0.0799880901292185,0.0799880901292185,-104.9282697,39.7872538,-104.9273336,39.78726
-10381,7801,7330,0.0459693673262965,0.0459693673262965,-104.954635,39.787386,-104.954097,39.7873857
-10382,7330,2069,0.0513405380116942,0.0513405380116942,-104.954097,39.7873857,-104.9534962,39.7873923
-10383,2069,2090,0.0410799126461524,0.0410799126461524,-104.9534962,39.7873923,-104.9530155,39.7873989
-10384,2090,2665,0.0609107459124439,0.0609107459124439,-104.9530155,39.7873989,-104.9523031,39.7873791
-10385,2665,2657,0.0344762888596363,0.0344762888596363,-104.9523031,39.7873791,-104.9518997,39.7873725
-10386,2657,4120,0.0653569613260274,0.0653569613260274,-104.9518997,39.7873725,-104.951135,39.787386
-10387,4120,4119,0.025633469399215,0.025633469399215,-104.951135,39.787386,-104.950835,39.787386
-10388,4119,6679,0.0800230712461371,0.0800230712461371,-104.950835,39.787386,-104.9498986,39.7873733
-10389,6679,7803,0.0968450624184265,0.0968450624184265,-104.9498986,39.7873733,-104.9487657,39.7873469
-10390,7803,7693,0.101842612257672,0.101842612257672,-104.9487657,39.7873469,-104.9475739,39.7873593
-10392,4983,7804,0.15108225604362,0.15108225604362,-104.9800351,39.7873785,-104.978267,39.7873917
-10393,7804,7805,0.125613899900368,0.125613899900368,-104.978267,39.7873917,-104.9768041,39.7875035
-10394,7805,7806,0.243703765368195,0.243703765368195,-104.9768041,39.7875035,-104.9740703,39.7881284
-10395,6511,833,0.205796808568101,0.205796808568101,-104.940586,39.787473,-104.942994,39.787434
-10396,833,1752,0.10962713348726,0.10962713348726,-104.942994,39.787434,-104.944277,39.787439
-10399,7807,6997,0.603696470077293,0.603696470077293,-104.9388993,39.787086,-104.931834,39.787086
-10401,6510,7620,0.115341473380206,0.115341473380206,-104.9405839,39.7877872,-104.939234,39.787786
-10403,1004,4224,0.0542745916357659,0.0542745916357659,-104.9875698,39.7873956,-104.9869346,39.7873956
-10405,7568,7808,0.0520701135747565,0.0520701135747565,-104.9863939,39.7873956,-104.9857845,39.7873956
-10406,7808,7085,0.0476697019408349,0.0476697019408349,-104.9857845,39.7873956,-104.9852266,39.7873956
-10407,7085,7087,0.0498741800030606,0.0498741800030606,-104.9852266,39.7873956,-104.9846429,39.7873956
-10410,7411,5866,0.177233832171644,0.177233832171644,-105.0372987,39.7165613,-105.0372953,39.7149674
-10411,5866,1317,0.177356465730534,0.177356465730534,-105.0372953,39.7149674,-105.0372901,39.7133724
-10412,1317,1373,0.176201016352257,0.176201016352257,-105.0372901,39.7133724,-105.0372815,39.7117878
-20226,10713,10016,0.0211937599266337,0.0211937599266337,-104.9413101,39.6963884,-104.9413099,39.696579
-10413,1373,7809,0.0646527574308656,0.0646527574308656,-105.0372815,39.7117878,-105.0373072,39.7112067
-10414,7809,6841,0.0827327683846137,0.0827327683846137,-105.0373072,39.7112067,-105.037298,39.7104627
-18362,7802,7116,0.00767249278335644,0.00767249278335644,-105.0259573,39.7679612,-105.0259576,39.7678922
-18363,7116,7802,0.00767249278335644,0.00767249278335644,-105.0259576,39.7678922,-105.0259573,39.7679612
-10416,7810,7811,0.101331501186014,0.101331501186014,-105.0367751,39.7039631,-105.0367923,39.7030519
-10417,7811,7812,0.10060881119881,0.10060881119881,-105.0367923,39.7030519,-105.0367751,39.7021472
-10418,7812,7813,0.20266387330204,0.20266387330204,-105.0367751,39.7021472,-105.0367751,39.7003246
-10419,7813,6245,0.198305641519059,0.198305641519059,-105.0367751,39.7003246,-105.0367322,39.6985415
-10420,6245,7814,0.197228200241648,0.197228200241648,-105.0367322,39.6985415,-105.0366887,39.6967681
-10422,1492,181,0.220815542326235,0.220815542326235,-105.036538,39.695087,-105.0367236,39.6931063
-10423,181,1709,0.205644626708499,0.205644626708499,-105.0367236,39.6931063,-105.0366978,39.691257
-10424,1709,7815,0.201521495468828,0.201521495468828,-105.0366978,39.691257,-105.0366851,39.6894447
-10425,7815,1576,0.244181862134779,0.244181862134779,-105.0366851,39.6894447,-105.0378698,39.6874469
-11867,8450,529,0.00567706315765741,0.00567706315765741,-105.0101803,39.7542535,-105.0102365,39.7542807
-10426,1576,7816,0.227813240625087,0.227813240625087,-105.0378698,39.6874469,-105.0381015,39.6854059
-10428,6320,7817,0.183577601350202,0.183577601350202,-105.0371184,39.7056206,-105.0371012,39.7039697
-10430,7213,7818,0.101757750903819,0.101757750903819,-104.9260704,39.7047422,-104.9257985,39.7038513
-10433,962,6868,0.198984557339899,0.198984557339899,-104.983818,39.7165111,-104.9838262,39.7147216
-10434,6868,5277,0.0940706344008526,0.0940706344008526,-104.9838262,39.7147216,-104.9838429,39.7138757
-10435,5277,3079,0.10232261403939,0.10232261403939,-104.9838429,39.7138757,-104.9838483,39.7129555
-10437,7204,5816,0.204032094058756,0.204032094058756,-104.9839803,39.693012,-104.9839857,39.6911771
-10438,5816,7722,0.196359705603447,0.196359705603447,-104.9839857,39.6911771,-104.9839913,39.6894112
-10439,7722,7819,1.20817529596719,1.20817529596719,-104.9839913,39.6894112,-104.9840729,39.678546
-10440,4246,1785,0.204162289925295,0.204162289925295,-104.9839286,39.6966228,-104.9839616,39.6947869
-10441,1785,7820,0.0718319226119568,0.0718319226119568,-104.9839616,39.6947869,-104.9839616,39.6941409
-10442,6026,3876,0.103447229282558,0.103447229282558,-104.9453067,39.775164,-104.9440965,39.7751442
-10443,3876,7821,0.100516631601798,0.100516631601798,-104.9440965,39.7751442,-104.9429206,39.775164
-10444,7322,2073,0.0916901418746821,0.0916901418746821,-104.9541485,39.7751435,-104.9530756,39.7751435
-10445,2073,2670,0.0954589635577965,0.0954589635577965,-104.9530756,39.7751435,-104.9519586,39.7751442
-10446,2670,4140,0.0958506641044589,0.0958506641044589,-104.9519586,39.7751442,-104.9508372,39.7751286
-10447,4140,6687,0.0883798780131798,0.0883798780131798,-104.9508372,39.7751286,-104.9498032,39.7751144
-10448,6687,7822,0.0995993099363261,0.0995993099363261,-104.9498032,39.7751144,-104.9486378,39.7751225
-10449,7822,7696,0.0932435604543702,0.0932435604543702,-104.9486378,39.7751225,-104.9475469,39.7751376
-10450,7696,3474,0.0968263022183935,0.0968263022183935,-104.9475469,39.7751376,-104.9464139,39.7751376
-10451,3474,7823,0.0468407500328621,0.0468407500328621,-104.9464139,39.7751376,-104.9458658,39.7751369
-10452,5171,3743,0.0993415474645253,0.0993415474645253,-104.9874858,39.7165623,-104.9874858,39.7156689
-10454,5856,4668,0.0981986239232037,0.0981986239232037,-104.9875046,39.7147611,-104.9875126,39.713878
-10455,4668,1294,0.100268721006653,0.100268721006653,-104.9875126,39.713878,-104.9875234,39.7129763
-10456,1294,1367,0.0977359423737142,0.0977359423737142,-104.9875234,39.7129763,-104.9875368,39.7120974
-10457,1367,3189,0.105552448113217,0.105552448113217,-104.9875368,39.7120974,-104.9875502,39.7111482
-10458,3189,6851,0.101177318178783,0.101177318178783,-104.9875502,39.7111482,-104.9875556,39.7102383
-10459,6851,4702,0.101416251034793,0.101416251034793,-104.9875556,39.7102383,-104.987569,39.7093263
-10460,4702,7468,0.0970718218675625,0.0970718218675625,-104.987569,39.7093263,-104.9875851,39.7084534
-10461,7468,1895,0.103477998735846,0.103477998735846,-104.9875851,39.7084534,-104.9875851,39.7075228
-10462,1895,7824,0.0967350574153813,0.0967350574153813,-104.9875851,39.7075228,-104.9875719,39.7066529
-10463,7824,7233,0.101338813079015,0.101338813079015,-104.9875719,39.7066529,-104.9875581,39.7057416
-10464,7233,3243,0.207470752756408,0.207470752756408,-104.9875581,39.7057416,-104.9874858,39.7038766
-10465,3243,7282,0.19399363779074,0.19399363779074,-104.9874858,39.7038766,-104.9875556,39.7021328
-10466,7282,7825,0.149563284680896,0.149563284680896,-104.9875556,39.7021328,-104.9875714,39.7007878
-10468,2141,7826,0.157978675104427,0.157978675104427,-105.0086114,39.7398829,-105.0095334,39.7411141
-10469,7826,7827,0.306989543465552,0.306989543465552,-105.0095334,39.7411141,-105.0113366,39.7435015
-10470,7827,7828,0.364212228682904,0.364212228682904,-105.0113366,39.7435015,-105.0134825,39.746331
-16042,9797,9804,0.0714393127860209,0.0714393127860209,-105.0122561,39.6891198,-105.0117013,39.6886397
-10475,7658,7549,0.158167365995463,0.158167365995463,-105.0462812,39.7282934,-105.0451467,39.7294168
-10477,5846,7750,0.200199460183562,0.200199460183562,-104.9372905,39.6911203,-104.9372755,39.6893199
-10479,466,7198,0.196816395654282,0.196816395654282,-104.9373661,39.6947234,-104.9373575,39.6929534
-10481,7268,7830,0.172430116159174,0.172430116159174,-104.9373314,39.7162377,-104.937334,39.714687
-10483,7217,7831,0.199372618146519,0.199372618146519,-104.9963567,39.7165938,-104.9963592,39.7148008
-10485,6256,7832,0.202992310919435,0.202992310919435,-104.9956644,39.6984948,-104.9956462,39.6966693
-10487,7833,4331,0.102741254079324,0.102741254079324,-104.9781265,39.7520022,-104.9769247,39.7519986
-10488,4331,7834,0.0526098265130649,0.0526098265130649,-104.9769247,39.7519986,-104.9763093,39.7519986
-10489,7834,5037,0.0501135526518646,0.0501135526518646,-104.9763093,39.7519986,-104.9757231,39.7519986
-10490,5037,7835,0.0494507564303858,0.0494507564303858,-104.9757231,39.7519986,-104.975145,39.7519832
-10491,7835,7836,0.0506565934234891,0.0506565934234891,-104.975145,39.7519832,-104.9745528,39.7519675
-10492,7836,7837,0.0500464479643974,0.0500464479643974,-104.9745528,39.7519675,-104.9739674,39.7519707
-10493,7837,2894,0.0524402316173641,0.0524402316173641,-104.9739674,39.7519707,-104.973354,39.7519741
-10494,2894,7838,0.107557027285785,0.107557027285785,-104.973354,39.7519741,-104.9720959,39.7519819
-10495,7838,7839,0.103734242634521,0.103734242634521,-104.9720959,39.7519819,-104.9708825,39.7519878
-10496,7839,4733,0.104796091296626,0.104796091296626,-104.9708825,39.7519878,-104.9696568,39.7519733
-10498,6800,7352,0.103066456507469,0.103066456507469,-104.968366,39.7519878,-104.9671604,39.7519921
-10499,7352,5398,0.104939276238433,0.104939276238433,-104.9671604,39.7519921,-104.965933,39.7519789
-10500,5398,7840,0.054043807018549,0.054043807018549,-104.965933,39.7519789,-104.9653014,39.7519582
-10501,7840,7841,0.0495084984704332,0.0495084984704332,-104.9653014,39.7519582,-104.9647228,39.7519393
-10502,7841,3900,0.109926182600774,0.109926182600774,-104.9647228,39.7519393,-104.9634376,39.7519078
-10503,3900,1036,0.101980966587827,0.101980966587827,-104.9634376,39.7519078,-104.9622462,39.751954
-10505,7842,6275,0.0499604206116259,0.0499604206116259,-104.9616094,39.7519514,-104.961025,39.751949
-10506,6275,7843,0.109041406945306,0.109041406945306,-104.961025,39.751949,-104.9597495,39.7519514
-10508,7844,7845,0.0640842858387461,0.0640842858387461,-105.0110496,39.7596475,-105.0117993,39.7596454
-10509,7845,1756,0.058813700126345,0.058813700126345,-105.0117993,39.7596454,-105.0124873,39.7596393
-10510,1756,4796,0.0566305502204531,0.0566305502204531,-105.0124873,39.7596393,-105.0131498,39.7596372
-10511,4796,2162,0.113835660361901,0.113835660361901,-105.0131498,39.7596372,-105.0144815,39.7596444
-10512,2162,7846,0.116364205137553,0.116364205137553,-105.0144815,39.7596444,-105.0158428,39.7596397
-10514,6135,4027,0.149896567221218,0.149896567221218,-105.0281572,39.7603038,-105.0299108,39.7603097
-10515,4027,7032,0.200991141471739,0.200991141471739,-105.0299108,39.7603097,-105.032262,39.7603311
-10516,7032,3412,0.200534935685617,0.200534935685617,-105.032262,39.7603311,-105.034608,39.7603223
-10517,3412,7633,0.0497828282990497,0.0497828282990497,-105.034608,39.7603223,-105.0351904,39.7603234
-10518,7633,5698,0.0497412906945155,0.0497412906945155,-105.0351904,39.7603234,-105.0357723,39.7603267
-10519,5698,7847,0.050919685731899,0.050919685731899,-105.0357723,39.7603267,-105.036368,39.7603278
-10521,7425,7166,0.104570214872527,0.104570214872527,-105.0369407,39.7603225,-105.038164,39.7603311
-10522,7166,7848,0.0473158420873474,0.0473158420873474,-105.038164,39.7603311,-105.0387174,39.7603215
-10523,7848,7780,0.0502827033263459,0.0502827033263459,-105.0387174,39.7603215,-105.0393055,39.7603113
-10524,7780,1123,0.100516868229367,0.100516868229367,-105.0393055,39.7603113,-105.0404814,39.7603047
-10525,1123,7849,0.0509916038841254,0.0509916038841254,-105.0404814,39.7603047,-105.0410779,39.7603102
-10526,7849,7497,0.0507179555279218,0.0507179555279218,-105.0410779,39.7603102,-105.0416712,39.7603156
-10527,7497,7850,0.0492496392928742,0.0492496392928742,-105.0416712,39.7603156,-105.0422473,39.760309
-10528,7850,3843,0.0492532755342339,0.0492532755342339,-105.0422473,39.760309,-105.0428235,39.7603069
-10529,3843,7851,0.0511792577413519,0.0511792577413519,-105.0428235,39.7603069,-105.0434222,39.7603017
-10530,7851,5556,0.0504327266312592,0.0504327266312592,-105.0434222,39.7603017,-105.0440122,39.7603035
-10561,7757,6414,0.14886592682355,0.14886592682355,-105.0151648,39.7202486,-105.0169053,39.7202585
-10531,5556,7852,0.789293029376444,0.789293029376444,-105.0440122,39.7603035,-105.053246,39.7602903
-10532,1618,7136,0.164980324326418,0.164980324326418,-104.9670562,39.7773409,-104.9684185,39.7783922
-10534,2027,5535,0.0854267701089729,0.0854267701089729,-104.9927506,39.7735106,-104.9923558,39.7742164
-10535,5535,6450,0.110522246345964,0.110522246345964,-104.9923558,39.7742164,-104.9923333,39.7752102
-10536,6450,6468,0.0325389081934527,0.0325389081934527,-104.9923333,39.7752102,-104.9923387,39.7755028
-10537,6468,7853,0.124455504811187,0.124455504811187,-104.9923387,39.7755028,-104.9923076,39.7766218
-10538,7853,7854,0.192779349126015,0.192779349126015,-104.9923076,39.7766218,-104.9923137,39.7783555
-10540,3713,7855,0.105701897268654,0.105701897268654,-104.9928366,39.7183943,-104.9928366,39.7193449
-10543,2614,7857,0.0507605301255621,0.0507605301255621,-104.9928302,39.7225456,-104.992831,39.7230021
-10544,7857,5197,0.124727455067454,0.124727455067454,-104.992831,39.7230021,-104.9928329,39.7241238
-10545,5197,6238,0.172240941584424,0.172240941584424,-104.9928329,39.7241238,-104.9928328,39.7256728
-10546,6238,7637,0.187669509666877,0.187669509666877,-104.9928328,39.7256728,-104.9928501,39.7273605
-10547,7637,7858,0.175500793784226,0.175500793784226,-104.9928501,39.7273605,-104.9928407,39.7289388
-10548,7858,7859,0.174943439798306,0.174943439798306,-104.9928407,39.7289388,-104.992836,39.7305121
-10551,5368,7126,0.152826634682226,0.152826634682226,-104.9929409,39.7338739,-104.9929372,39.7352483
-10552,7126,614,0.179980225267387,0.179980225267387,-104.9929372,39.7352483,-104.9929396,39.7368669
-10553,614,7860,0.174053494498076,0.174053494498076,-104.9929396,39.7368669,-104.9929377,39.7384322
-10554,7860,7861,0.175067683150656,0.175067683150656,-104.9929377,39.7384322,-104.992927,39.7400066
-10556,3960,5600,0.12071802041193,0.12071802041193,-105.0001852,39.7194126,-105.0015966,39.7194189
-10558,6724,4799,0.0913013732116182,0.0913013732116182,-105.0120852,39.72025,-105.0131527,39.72025
-10559,4799,2180,0.0880940650188129,0.0880940650188129,-105.0131527,39.72025,-105.0141827,39.72025
-10560,2180,7757,0.0839974084607818,0.0839974084607818,-105.0141827,39.72025,-105.0151648,39.7202486
-10562,6414,4645,0.149015796662155,0.149015796662155,-105.0169053,39.7202585,-105.0186476,39.7202585
-10563,4645,1271,0.151238114292438,0.151238114292438,-105.0186476,39.7202585,-105.0204158,39.7202453
-10564,1271,4535,0.201873592117884,0.201873592117884,-105.0204158,39.7202453,-105.0227761,39.7202519
-10565,4535,7863,0.199199232202906,0.199199232202906,-105.0227761,39.7202519,-105.0251051,39.7202633
-10567,7864,6740,0.106132792016662,0.106132792016662,-105.0251054,39.7197508,-105.0263463,39.7197518
-10568,6740,2257,0.103696160263475,0.103696160263475,-105.0263463,39.7197518,-105.0275587,39.7197559
-10569,2257,6132,0.104845212424081,0.104845212424081,-105.0275587,39.7197559,-105.0287845,39.7197477
-10570,6132,4000,0.104492371103569,0.104492371103569,-105.0287845,39.7197477,-105.0300062,39.7197532
-10571,4000,7049,0.105765984719426,0.105765984719426,-105.0300062,39.7197532,-105.0312428,39.7197574
-10572,7049,1395,0.105619552065538,0.105619552065538,-105.0312428,39.7197574,-105.0324777,39.7197573
-10573,1395,7865,0.0532676910827188,0.0532676910827188,-105.0324777,39.7197573,-105.0331005,39.7197556
-12077,2695,8043,0.149120560873017,0.149120560873017,-104.9839243,39.7555928,-104.9827245,39.7565663
-10574,7865,7382,0.0513518590570076,0.0513518590570076,-105.0331005,39.7197556,-105.0337009,39.7197539
-10576,7866,3392,0.0498722666723731,0.0498722666723731,-105.0343209,39.7197519,-105.034904,39.7197501
-10578,2360,5226,0.147034135602084,0.147034135602084,-104.9874759,39.7193464,-104.9891947,39.7193214
-10579,5226,5088,0.140218763176125,0.140218763176125,-104.9891947,39.7193214,-104.9908341,39.719328
-10580,5088,2812,0.112317158065107,0.112317158065107,-104.9908341,39.719328,-104.9921473,39.719328
-10581,2812,7855,0.0589853238635922,0.0589853238635922,-104.9921473,39.719328,-104.9928366,39.7193449
-10582,7855,4676,0.102566908777836,0.102566908777836,-104.9928366,39.7193449,-104.9940356,39.719328
-10583,4676,4948,0.0965475772401715,0.0965475772401715,-104.9940356,39.719328,-104.9951641,39.7193488
-10584,4948,7867,0.0515742481536382,0.0515742481536382,-104.9951641,39.7193488,-104.9957671,39.7193495
-10585,7867,7219,0.0513689618533378,0.0513689618533378,-104.9957671,39.7193495,-104.9963677,39.7193501
-10586,7219,7868,0.0507197202929207,0.0507197202929207,-104.9963677,39.7193501,-104.9969607,39.7193475
-10587,7868,5673,0.0490781046009859,0.0490781046009859,-104.9969607,39.7193475,-104.9975345,39.7193508
-10588,5673,7869,0.0456643057832586,0.0456643057832586,-104.9975345,39.7193508,-104.9980684,39.719352
-10591,7792,7870,0.049146171652799,0.049146171652799,-105.0397277,39.7197303,-105.0403023,39.7197335
-10592,7870,1108,0.0521568671722949,0.0521568671722949,-105.0403023,39.7197335,-105.0409121,39.7197369
-10593,1108,5770,0.0506160748755952,0.0506160748755952,-105.0409121,39.7197369,-105.0415039,39.7197378
-10594,5770,7510,0.0513174323114612,0.0513174323114612,-105.0415039,39.7197378,-105.0421039,39.7197388
-10595,7510,7871,0.0508676871173128,0.0508676871173128,-105.0421039,39.7197388,-105.0426986,39.7197333
-10596,7871,3865,0.0498216783929082,0.0498216783929082,-105.0426986,39.7197333,-105.0432811,39.7197303
-10598,3866,7535,0.105586605139886,0.105586605139886,-105.043285,39.7203775,-105.0445183,39.7203352
-10599,7535,7872,0.748786770151958,0.748786770151958,-105.0445183,39.7203352,-105.0532725,39.7204183
-10603,741,1561,0.140274508504629,0.140274508504629,-104.9564618,39.7764088,-104.9564528,39.7776703
-10604,1561,7876,0.139940443617856,0.139940443617856,-104.9564528,39.7776703,-104.9564449,39.7789288
-10605,7876,7877,0.121382404560649,0.121382404560649,-104.9564449,39.7789288,-104.9564367,39.7800204
-10607,3572,5640,0.141095915979936,0.141095915979936,-104.9561226,39.7544534,-104.9561277,39.7557223
-10608,5640,4345,0.139634312621283,0.139634312621283,-104.9561277,39.7557223,-104.9561539,39.7569779
-10609,4345,6343,0.13679021957376,0.13679021957376,-104.9561539,39.7569779,-104.9561352,39.758208
-10610,6343,3046,0.13698802953883,0.13698802953883,-104.9561352,39.758208,-104.956119,39.7594399
-10611,3046,7878,0.138953332142948,0.138953332142948,-104.956119,39.7594399,-104.9560949,39.7606894
-10612,7878,7879,0.00536944182123181,0.00536944182123181,-104.9560949,39.7606894,-104.9561163,39.7607348
-10613,7879,7880,0.11582084881522,0.11582084881522,-104.9561163,39.7607348,-104.9561137,39.7617764
-10615,7881,7882,0.0939943673024045,0.0939943673024045,-104.9562865,39.7328649,-104.9563208,39.7337098
-10617,4885,7883,0.18871104587798,0.18871104587798,-104.9562778,39.7351101,-104.9562673,39.7368072
-10618,7883,5483,0.174801190512252,0.174801190512252,-104.9562673,39.7368072,-104.9562788,39.7383792
-10619,5483,7884,0.200940942998637,0.200940942998637,-104.9562788,39.7383792,-104.9562845,39.7401863
-10620,7884,7885,0.0780811261571653,0.0780811261571653,-104.9562845,39.7401863,-104.9567283,39.7408
-10621,7885,3341,0.00930901113126469,0.00930901113126469,-104.9567283,39.7408,-104.9568365,39.7408093
-10624,1192,7887,0.0222318154701858,0.0222318154701858,-104.9567021,39.7271202,-104.956707,39.7273201
-10625,7887,3786,0.199739451308706,0.199739451308706,-104.956707,39.7273201,-104.9567075,39.7291164
-10627,7888,5967,0.106945706764055,0.106945706764055,-104.983517,39.7478374,-104.9844118,39.7485095
-10628,5967,7889,0.0517538867982505,0.0517538867982505,-104.9844118,39.7485095,-104.9848354,39.748842
-10629,7889,3011,0.055433069584998,0.055433069584998,-104.9848354,39.748842,-104.9852889,39.7491983
-10630,3011,7890,0.0504905501442438,0.0504905501442438,-104.9852889,39.7491983,-104.9856992,39.7495249
-10631,7890,4389,0.0518336432467722,0.0518336432467722,-104.9856992,39.7495249,-104.9861204,39.7498602
-10632,4389,7891,0.106909075712535,0.106909075712535,-104.9861204,39.7498602,-104.9870145,39.7505324
-10633,7891,7892,0.0447272763477039,0.0447272763477039,-104.9870145,39.7505324,-104.987378,39.7508217
-10634,7892,7893,0.0604871538278066,0.0604871538278066,-104.987378,39.7508217,-104.9878898,39.7511973
-10635,7893,7894,0.0527248029948841,0.0527248029948841,-104.9878898,39.7511973,-104.9883251,39.7515332
-10636,7894,7895,0.0510420835040534,0.0510420835040534,-104.9883251,39.7515332,-104.9887543,39.7518523
-10637,7895,7896,0.0538542282588573,0.0538542282588573,-104.9887543,39.7518523,-104.9891984,39.7521958
-10638,7896,7897,0.0528352422268061,0.0528352422268061,-104.9891984,39.7521958,-104.9896341,39.7525328
-10640,7898,7899,0.0483963113823249,0.0483963113823249,-104.9900722,39.7528603,-104.9904781,39.7531637
-10641,7899,7900,0.00514045868709644,0.00514045868709644,-104.9904781,39.7531637,-104.9905138,39.7532009
-10642,7900,6183,0.105068526303449,0.105068526303449,-104.9905138,39.7532009,-104.9913748,39.7538752
-10643,6183,7563,0.106218150970674,0.106218150970674,-104.9913748,39.7538752,-104.9922506,39.7545528
-10646,7902,7903,0.144865462765669,0.144865462765669,-105.0116934,39.7583103,-105.0105038,39.7592382
-10647,7903,7904,0.00237466940700901,0.00237466940700901,-105.0105038,39.7592382,-105.0104854,39.7592542
-10648,7904,6985,0.0721296292058115,0.0721296292058115,-105.0104854,39.7592542,-105.0098936,39.7597166
-10649,6985,4820,0.0719786596117478,0.0719786596117478,-105.0098936,39.7597166,-105.0093022,39.7601774
-10650,4820,7905,0.147529402397198,0.147529402397198,-105.0093022,39.7601774,-105.0080885,39.7611207
-10651,7905,7906,0.144081069806214,0.144081069806214,-105.0080885,39.7611207,-105.0068985,39.7620384
-10653,3189,1870,0.209495964340019,0.209495964340019,-104.9875502,39.7111482,-104.9899993,39.7111545
-10654,1870,7907,0.0977397792259224,0.0977397792259224,-104.9899993,39.7111545,-104.9911419,39.7111606
-10655,7907,4184,0.106328113718199,0.106328113718199,-104.9911419,39.7111606,-104.9923849,39.7111672
-10656,4184,7908,0.403661295666813,0.403661295666813,-104.9923849,39.7111672,-104.9971039,39.7111729
-10657,7908,4837,0.108683081676812,0.108683081676812,-104.9971039,39.7111729,-104.9983742,39.7111927
-10659,7909,7910,0.270199990406442,0.270199990406442,-105.0273938,39.6894539,-105.027347,39.6870242
-10660,7911,810,0.0673953106393502,0.0673953106393502,-105.0276068,39.7548215,-105.0276079,39.7554276
-10661,810,7912,0.0687323400006804,0.0687323400006804,-105.0276079,39.7554276,-105.0276151,39.7560457
-10662,7912,7913,0.136720833756656,0.136720833756656,-105.0276151,39.7560457,-105.0275993,39.7572752
-10666,2255,5858,0.174722136683236,0.174722136683236,-105.0275483,39.7165547,-105.0275397,39.7149834
-10667,5858,1305,0.178402656879188,0.178402656879188,-105.0275397,39.7149834,-105.0275483,39.713379
-10668,1305,7915,0.248888691440438,0.248888691440438,-105.0275483,39.713379,-105.0275397,39.7111407
-12170,8573,8574,0.0987973765101899,0.0987973765101899,-104.9944322,39.7487829,-104.9936089,39.7481594
-10670,6847,7916,0.0984178968171368,0.0984178968171368,-105.0275397,39.7102889,-105.0275054,39.7094042
-10671,7916,7485,0.0976761282305841,0.0976761282305841,-105.0275054,39.7094042,-105.0275311,39.708526
-10673,7454,5692,0.103533596199028,0.103533596199028,-105.0275397,39.707661,-105.0275397,39.7067299
-10674,5692,7917,0.101331500328489,0.101331500328489,-105.0275397,39.7067299,-105.0275225,39.7058187
-10675,7917,4966,0.0998668108920524,0.0998668108920524,-105.0275225,39.7058187,-105.027514,39.7049206
-10676,4966,7918,0.102812100555259,0.102812100555259,-105.027514,39.7049206,-105.0275397,39.7039962
-10677,7918,7919,0.0983963905872725,0.0983963905872725,-105.0275397,39.7039962,-105.0275397,39.7031113
-10678,7919,7920,0.0991546561543948,0.0991546561543948,-105.0275397,39.7031113,-105.027514,39.7022198
-10679,7920,7921,0.0991411977449166,0.0991411977449166,-105.027514,39.7022198,-105.0274968,39.7013283
-10680,7921,7922,0.106421383510006,0.106421383510006,-105.0274968,39.7013283,-105.0275358,39.7003717
-10682,7923,7924,0.106391305814005,0.106391305814005,-104.9406835,39.7550153,-104.9406835,39.7559721
-10684,7925,629,0.0646550267727614,0.0646550267727614,-104.9739262,39.7620073,-104.9734189,39.7624386
-10685,629,7926,0.00919464810452742,0.00919464810452742,-104.9734189,39.7624386,-104.9733442,39.7624981
-10686,7927,7928,0.0412650483746168,0.0412650483746168,-105.0158342,39.7601412,-105.0162425,39.7603392
-10687,7928,7929,0.155361420508855,0.155361420508855,-105.0162425,39.7603392,-105.0179546,39.7608082
-10688,7929,6922,0.0195376725753923,0.0195376725753923,-105.0179546,39.7608082,-105.0181826,39.7608206
-10689,6922,6736,0.174720460074468,0.174720460074468,-105.0181826,39.7608206,-105.0202265,39.7608392
-10691,7930,7931,0.0129516773904198,0.0129516773904198,-104.949883,39.707468,-104.9500344,39.7074688
-10692,7931,1511,0.391618540945239,0.391618540945239,-104.9500344,39.7074688,-104.9534977,39.7051656
-10693,1511,7932,0.0409032080648905,0.0409032080648905,-104.9534977,39.7051656,-104.9536135,39.7048087
-10694,7932,3280,0.112386881702983,0.112386881702983,-104.9536135,39.7048087,-104.9540083,39.7038447
-10696,4635,6586,0.185505221951206,0.185505221951206,-105.0192742,39.7316986,-105.0206647,39.7329791
-10698,6668,787,0.109054104365323,0.109054104365323,-105.007449,39.7016708,-105.0063481,39.7011764
-10699,787,6002,0.243058044096108,0.243058044096108,-105.0063481,39.7011764,-105.0054308,39.6991076
-10702,7934,1008,1.1041513689359,1.1041513689359,-104.9948315,39.7656825,-104.9879427,39.7740829
-10704,4497,7935,0.109080059964542,0.109080059964542,-105.0051406,39.788644,-105.0064172,39.7886514
-10705,7935,7936,0.375437621590472,0.375437621590472,-105.0064172,39.7886514,-105.0106854,39.7894536
-10706,7936,7937,0.0440200903162904,0.0440200903162904,-105.0106854,39.7894536,-105.0112006,39.7894548
-10708,3966,3963,0.0923048136404676,0.0923048136404676,-105.0005888,39.7883796,-105.0016187,39.7886302
-10710,6243,7938,0.0544857736456965,0.0544857736456965,-104.9874615,39.7256397,-104.9868244,39.7256399
-10711,7938,7571,0.0517149905092859,0.0517149905092859,-104.9868244,39.7256399,-104.9862197,39.7256409
-10712,7571,7939,0.0378829783952266,0.0378829783952266,-104.9862197,39.7256409,-104.9857768,39.7256351
-10714,7940,5872,0.0757028634173436,0.0757028634173436,-105.0421016,39.7156502,-105.0420963,39.7149694
-10715,5872,1324,0.177578299705823,0.177578299705823,-105.0420963,39.7149694,-105.0420966,39.7133724
-10716,1324,1380,0.1760884455939,0.1760884455939,-105.0420966,39.7133724,-105.0420733,39.7117889
-10717,1380,7941,0.0581557503278793,0.0581557503278793,-105.0420733,39.7117889,-105.0420966,39.7112662
-10718,7941,6844,0.0845562612846107,0.0845562612846107,-105.0420966,39.7112662,-105.0420451,39.7105068
-10719,6844,4696,0.11746862405599,0.11746862405599,-105.0420451,39.7105068,-105.0420537,39.7094504
-10720,4696,7452,0.157863437357233,0.157863437357233,-105.0420537,39.7094504,-105.0420537,39.7080307
-10722,5690,5337,0.242972143995655,0.242972143995655,-105.0420279,39.7068686,-105.0420306,39.7046835
-10724,7942,7943,0.14470003055266,0.14470003055266,-105.0424313,39.7034679,-105.0423884,39.702167
-10725,7943,1056,0.118222446008981,0.118222446008981,-105.0423884,39.702167,-105.0423884,39.7011038
-10726,1056,7944,0.0800381081986229,0.0800381081986229,-105.0423884,39.7011038,-105.0423884,39.700384
-10727,7944,6249,0.201854530416454,0.201854530416454,-105.0423884,39.700384,-105.0425772,39.6985745
-10728,6249,7945,0.201602089629263,0.201602089629263,-105.0425772,39.6985745,-105.0425595,39.6967615
-10729,7945,1497,0.20081804408168,0.20081804408168,-105.0425595,39.6967615,-105.0425601,39.6949555
-10730,1497,186,0.202686112287629,0.202686112287629,-105.0425601,39.6949555,-105.0425601,39.6931327
-10731,186,7798,0.0846089584800808,0.0846089584800808,-105.0425601,39.6931327,-105.0425,39.6923732
-10732,7798,1714,0.126110593452085,0.126110593452085,-105.0425,39.6923732,-105.0420365,39.6912966
-10734,7946,1580,0.141640668503246,0.141640668503246,-105.0421824,39.6894605,-105.0421871,39.6881867
-10735,1580,7947,0.292520501534348,0.292520501534348,-105.0421871,39.6881867,-105.0421863,39.685556
-10736,7948,2142,0.372172819192242,0.372172819192242,-105.0070074,39.7368827,-105.008237,39.7400934
-10738,7949,7950,0.022809009376778,0.022809009376778,-104.9733887,39.7145485,-104.9732428,39.7147202
-10739,7950,2916,0.200611278039498,0.200611278039498,-104.9732428,39.7147202,-104.9731398,39.7165226
-10741,2915,7951,0.200419085698686,0.200419085698686,-104.9733801,39.7165226,-104.9733887,39.7147202
-10743,7952,7953,0.0110105423016681,0.0110105423016681,-105.019895,39.7391795,-105.0198924,39.7392785
-10745,7954,7631,0.201162741792968,0.201162741792968,-105.0198441,39.7293262,-105.0198441,39.7275171
-16610,5355,7889,0.146740030035641,0.146740030035641,-104.986046,39.7479065,-104.9848354,39.748842
-10746,7631,7955,0.197131063915064,0.197131063915064,-105.0198441,39.7275171,-105.0198149,39.7257444
-10748,7956,6942,0.115194637181012,0.115194637181012,-104.9677476,39.7808918,-104.9677319,39.7819277
-12305,8628,8641,0.0276795827309073,0.0276795827309073,-105.0077112,39.7549614,-105.0078924,39.7547551
-10750,4939,4687,0.409424899618544,0.409424899618544,-104.9964751,39.7368603,-104.9941176,39.7336555
-10751,4687,7959,0.501489716289273,0.501489716289273,-104.9941176,39.7336555,-104.9912259,39.7297319
-10752,7959,7960,0.103838798829226,0.103838798829226,-104.9912259,39.7297319,-104.9906006,39.7289314
-10753,7960,5096,0.0880537297967434,0.0880537297967434,-104.9906006,39.7289314,-104.9899868,39.7282956
-10754,5096,7961,0.0549628705336601,0.0549628705336601,-104.9899868,39.7282956,-104.9896006,39.7279005
-10756,7962,7963,0.129400960231747,0.129400960231747,-105.0007006,39.7452954,-105.0005879,39.7441349
-10757,7963,7964,0.0109989745271633,0.0109989745271633,-105.0005879,39.7441349,-105.0005794,39.7440362
-10758,7964,7093,0.177295071329975,0.177295071329975,-105.0005794,39.7440362,-105.000125,39.7424805
-10759,7093,7965,0.0553949557893182,0.0553949557893182,-105.000125,39.7424805,-104.999898,39.7420139
-10760,7965,3937,0.0117544286846151,0.0117544286846151,-104.999898,39.7420139,-104.9998498,39.7419149
-10761,3937,7966,0.0655333417817751,0.0655333417817751,-104.9998498,39.7419149,-104.9995537,39.7413713
-10762,7966,7967,0.00514903654400709,0.00514903654400709,-104.9995537,39.7413713,-104.9995304,39.7413286
-10763,7967,7968,0.0154207763703831,0.0154207763703831,-104.9995304,39.7413286,-104.9994613,39.7412005
-10764,7968,7969,0.120137734300265,0.120137734300265,-104.9994613,39.7412005,-104.9989064,39.7402079
-10765,7969,7970,0.0235045509998941,0.0235045509998941,-104.9989064,39.7402079,-104.9987846,39.7400184
-10766,7970,4938,0.199335986652222,0.199335986652222,-104.9987846,39.7400184,-104.9976397,39.7384568
-10768,6788,4721,0.150986476371322,0.150986476371322,-104.9684027,39.7400015,-104.9696847,39.7409353
-10769,4721,667,0.112227110724083,0.112227110724083,-104.9696847,39.7409353,-104.9706168,39.7416459
-10770,667,5130,0.0364809731603039,0.0364809731603039,-104.9706168,39.7416459,-104.9709144,39.741881
-10771,5130,7141,0.148468037583607,0.148468037583607,-104.9709144,39.741881,-104.9721376,39.7428287
-10772,7141,7973,0.0653535267620459,0.0653535267620459,-104.9721376,39.7428287,-104.9726808,39.7432422
-10773,7973,2883,0.0864280151657955,0.0864280151657955,-104.9726808,39.7432422,-104.9733956,39.7437918
-10774,2883,4607,0.164926871665991,0.164926871665991,-104.9733956,39.7437918,-104.9747635,39.7448376
-10775,4607,5044,0.166914948534143,0.166914948534143,-104.9747635,39.7448376,-104.9761532,39.7458919
-10776,5044,6491,0.0452504465788914,0.0452504465788914,-104.9761532,39.7458919,-104.976527,39.74618
-10777,6491,7974,0.124696259323388,0.124696259323388,-104.976527,39.74618,-104.9775516,39.7469781
-10778,7974,3674,0.0837503652675649,0.0837503652675649,-104.9775516,39.7469781,-104.9782423,39.7475122
-10780,7975,7976,0.0210158411356976,0.0210158411356976,-104.9546025,39.7180291,-104.9546025,39.7182181
-10781,7976,2348,0.132347730703915,0.132347730703915,-104.9546025,39.7182181,-104.9546138,39.7194083
-10782,2348,4153,0.174709468744017,0.174709468744017,-104.9546138,39.7194083,-104.9546138,39.7209795
-10783,4153,4740,0.173977137035244,0.173977137035244,-104.9546138,39.7209795,-104.9546224,39.7225441
-10784,4740,6535,0.176711434597363,0.176711434597363,-104.9546224,39.7225441,-104.9546177,39.7241333
-10785,6535,7977,0.164237503877208,0.164237503877208,-104.9546177,39.7241333,-104.9546285,39.7256103
-10787,7978,692,0.202230219594829,0.202230219594829,-104.9547761,39.7401752,-104.9547755,39.7419939
-10788,692,7979,0.202124611474851,0.202124611474851,-104.9547755,39.7419939,-104.9547451,39.7438115
-10790,7980,1194,0.168544434179807,0.168544434179807,-104.9543549,39.7256103,-104.9544083,39.7271255
-10791,1194,7981,0.0214611132807924,0.0214611132807924,-104.9544083,39.7271255,-104.95441,39.7273185
-10793,1195,7982,0.0213718360054606,0.0213718360054606,-104.9540289,39.7271284,-104.9540279,39.7273206
-10794,7982,3783,0.200590566648469,0.200590566648469,-104.9540279,39.7273206,-104.9540461,39.7291245
-10795,3783,7983,0.155575717720948,0.155575717720948,-104.9540461,39.7291245,-104.9540572,39.7305236
-10797,947,7986,0.165669448326255,0.165669448326255,-104.9540658,39.7320945,-104.9540634,39.7335844
-10798,7986,4887,0.171543568824384,0.171543568824384,-104.9540634,39.7335844,-104.9541159,39.7351266
-10800,104,7987,0.0531910934067007,0.0531910934067007,-104.9874778,39.7002508,-104.9874076,39.7007261
-10801,7987,7283,0.14149347529597,0.14149347529597,-104.9874076,39.7007261,-104.9871988,39.7019884
-10803,4249,1782,0.204738067086155,0.204738067086155,-104.9862119,39.6966237,-104.986165,39.6947828
-10804,1782,7202,0.196638037803866,0.196638037803866,-104.986165,39.6947828,-104.9862426,39.6930154
-10805,7202,5813,0.202462167506831,0.202462167506831,-104.9862426,39.6930154,-104.9862656,39.6911947
-10806,5813,7720,0.198881694965003,0.198881694965003,-104.9862656,39.6911947,-104.9862428,39.6894062
-10831,5664,5936,0.10457956834692,0.10457956834692,-104.9752576,39.729517,-104.975253,39.7304575
-10807,7720,7988,2.41654683926542,2.41654683926542,-104.9862428,39.6894062,-104.986288,39.6676737
-10808,3557,815,0.15408456375045,0.15408456375045,-104.9745442,39.7546268,-104.9745356,39.7532411
-10809,815,7836,0.141625491803193,0.141625491803193,-104.9745356,39.7532411,-104.9745528,39.7519675
-10810,7836,7989,0.137956171688053,0.137956171688053,-104.9745528,39.7519675,-104.9745699,39.7507269
-10811,7989,7990,0.133814544271225,0.133814544271225,-104.9745699,39.7507269,-104.9745602,39.7495235
-10812,7990,7991,0.00435891657982006,0.00435891657982006,-104.9745602,39.7495235,-104.9745599,39.7494843
-10813,7991,7992,0.00504883599617259,0.00504883599617259,-104.9745599,39.7494843,-104.9745608,39.7494389
-10814,7992,3667,0.218697319390466,0.218697319390466,-104.9745608,39.7494389,-104.9746946,39.7474748
-10818,4607,7994,0.175458215250442,0.175458215250442,-104.9747635,39.7448376,-104.9747769,39.7432597
-10819,7994,7995,0.17352002006779,0.17352002006779,-104.9747769,39.7432597,-104.9747729,39.7416992
-10820,7995,664,0.00413178605963205,0.00413178605963205,-104.9747729,39.7416992,-104.9747756,39.7416621
-10821,664,7998,0.00436495014442939,0.00436495014442939,-104.9747756,39.7416621,-104.9747729,39.7416229
-10822,7998,7999,0.17836184127639,0.17836184127639,-104.9747729,39.7416229,-104.9748011,39.740019
-10824,6329,4163,0.106458655644295,0.106458655644295,-104.9752418,39.719173,-104.975216,39.7201302
-10825,4163,4772,0.262069785544738,0.262069785544738,-104.975216,39.7201302,-104.975236,39.722487
-10826,4772,6551,0.176006441608747,0.176006441608747,-104.975236,39.722487,-104.9752545,39.7240698
-10827,6551,8001,0.169733521019883,0.169733521019883,-104.9752545,39.7240698,-104.9752384,39.7255962
-10828,8001,8002,0.186888519126424,0.186888519126424,-104.9752384,39.7255962,-104.9752512,39.7272769
-10829,8002,3800,0.199472684499289,0.199472684499289,-104.9752512,39.7272769,-104.9752536,39.7290708
-10830,3800,5664,0.0496163554354094,0.0496163554354094,-104.9752536,39.7290708,-104.9752576,39.729517
-10832,5936,934,0.175672791884477,0.175672791884477,-104.975253,39.7304575,-104.9752714,39.7320373
-10833,934,5818,0.103656977616086,0.103656977616086,-104.9752714,39.7320373,-104.9752659,39.7329695
-10834,5818,2219,0.0798383163598858,0.0798383163598858,-104.9752659,39.7329695,-104.9752631,39.7336875
-10835,2219,4869,0.163069738486709,0.163069738486709,-104.9752631,39.7336875,-104.9752734,39.735154
-10836,4869,8003,0.190225091069506,0.190225091069506,-104.9752734,39.735154,-104.9752877,39.7368647
-10837,8003,5468,0.173414227417019,0.173414227417019,-104.9752877,39.7368647,-104.9753042,39.7384242
-10838,5468,6220,0.124444185392524,0.124444185392524,-104.9753042,39.7384242,-104.9752801,39.7395432
-10841,5175,8005,0.198062000656316,0.198062000656316,-104.9757389,39.7165269,-104.9757482,39.7183081
-10844,8006,681,0.244474486801046,0.244474486801046,-104.9569442,39.743807,-104.9569536,39.7416084
-10845,681,3340,0.0902358208620103,0.0902358208620103,-104.9569536,39.7416084,-104.9569483,39.7407969
-10847,7885,682,0.0896800723137281,0.0896800723137281,-104.9567283,39.7408,-104.9567458,39.7416064
-10848,682,580,0.244861214317874,0.244861214317874,-104.9567458,39.7416064,-104.9566854,39.743808
-10850,5334,6321,0.121951239816061,0.121951239816061,-105.0391209,39.7067305,-105.0391097,39.7056338
-10851,6321,8007,0.186507250461399,0.186507250461399,-105.0391097,39.7056338,-105.0391097,39.7039565
-10852,8007,8008,0.042606728375189,0.042606728375189,-105.0391097,39.7039565,-105.0391344,39.7035738
-10853,8008,8009,0.0463471911266823,0.0463471911266823,-105.0391344,39.7035738,-105.0391612,39.7031575
-10854,8009,8010,0.0102891732268637,0.0102891732268637,-105.0391612,39.7031575,-105.039158,39.703065
-10855,8010,8011,0.0998884840922572,0.0998884840922572,-105.039158,39.703065,-105.0391269,39.702167
-10856,8011,8012,0.201197445523876,0.201197445523876,-105.0391269,39.702167,-105.0391183,39.7003576
-10857,8012,6246,0.199805617134822,0.199805617134822,-105.0391183,39.7003576,-105.0390582,39.6985613
-10858,6246,8013,0.200864024373594,0.200864024373594,-105.0390582,39.6985613,-105.0390491,39.6967549
-10859,8013,2310,0.103900456751802,0.103900456751802,-105.0390491,39.6967549,-105.0390668,39.6958206
-10860,2310,1494,0.0983991417332815,0.0983991417332815,-105.0390668,39.6958206,-105.0390582,39.6949357
-10861,1494,183,0.203419998804159,0.203419998804159,-105.0390582,39.6949357,-105.0390582,39.6931063
-10862,183,1711,0.201968707186781,0.201968707186781,-105.0390582,39.6931063,-105.0390754,39.69129
-16611,7889,9327,0.146157951939095,0.146157951939095,-104.9848354,39.748842,-104.9836296,39.7497738
-10863,1711,8014,0.204806773712675,0.204806773712675,-105.0390754,39.69129,-105.0390543,39.6894482
-10864,8014,6157,0.126319530562447,0.126319530562447,-105.0390543,39.6894482,-105.0390628,39.6883122
-10865,6157,1577,0.0829958932471693,0.0829958932471693,-105.0390628,39.6883122,-105.0390628,39.6875658
-10867,7968,8016,0.0140119714836204,0.0140119714836204,-104.9994613,39.7412005,-104.9993111,39.7412509
-10869,2294,1531,0.46192746891159,0.46192746891159,-104.9899657,39.7654782,-104.9909332,39.7613911
-10871,8017,1203,0.169906498983342,0.169906498983342,-104.948399,39.7256083,-104.9484045,39.7271363
-10872,1203,8018,0.0221945337202718,0.0221945337202718,-104.9484045,39.7271363,-104.9484041,39.7273359
-10873,8018,3780,0.199572680726093,0.199572680726093,-104.9484041,39.7273359,-104.9484053,39.7291307
-10874,3780,8019,0.153206883868779,0.153206883868779,-104.9484053,39.7291307,-104.9483814,39.7305084
-10875,8019,952,0.177861736820837,0.177861736820837,-104.9483814,39.7305084,-104.9484181,39.7321077
-10876,952,8020,0.175149595226483,0.175149595226483,-104.9484181,39.7321077,-104.9484005,39.7336828
-10877,8020,4891,0.159178167143814,0.159178167143814,-104.9484005,39.7336828,-104.9483898,39.7351143
-10878,4891,8021,0.18577336394487,0.18577336394487,-104.9483898,39.7351143,-104.9483898,39.736785
-10879,8021,5489,0.173842148316324,0.173842148316324,-104.9483898,39.736785,-104.9483898,39.7383484
-10880,5489,8022,0.202303315910377,0.202303315910377,-104.9483898,39.7383484,-104.9484296,39.7401675
-10882,5166,8023,0.173986701720281,0.173986701720281,-104.9485858,39.7162531,-104.9485858,39.7178178
-10883,8023,2353,0.177612171175383,0.177612171175383,-104.9485858,39.7178178,-104.9485908,39.7194151
-10884,2353,4155,0.173655528353614,0.173655528353614,-104.9485908,39.7194151,-104.9485801,39.7209768
-10885,4155,4742,0.173355871166643,0.173355871166643,-104.9485801,39.7209768,-104.9486216,39.7225355
-10886,4742,6537,0.176328961502794,0.176328961502794,-104.9486216,39.7225355,-104.9485774,39.7241209
-10887,6537,8024,0.165303556900913,0.165303556900913,-104.9485774,39.7241209,-104.9485847,39.7256075
-10889,3030,3025,0.111248274146309,0.111248274146309,-104.9487906,39.7590818,-104.9488309,39.7600818
-10891,8025,8026,0.0640627296443105,0.0640627296443105,-104.9487313,39.761191,-104.9488251,39.7617626
-10893,3576,5643,0.138707185733922,0.138707185733922,-104.9488635,39.7544629,-104.9488535,39.7557103
-10894,5643,4348,0.139896948951005,0.139896948951005,-104.9488535,39.7557103,-104.9488435,39.7569684
-10895,4348,6346,0.137784232527167,0.137784232527167,-104.9488435,39.7569684,-104.9488336,39.7582075
-10897,8027,697,0.20001854589906,0.20001854589906,-104.9488409,39.7401691,-104.9488331,39.7419679
-10898,697,8028,0.202096920971429,0.202096920971429,-104.9488331,39.7419679,-104.9488359,39.7437854
-10900,8029,2876,0.123948984730939,0.123948984730939,-104.9487583,39.7837977,-104.9487583,39.7849124
-10901,2876,7628,0.141637704476922,0.141637704476922,-104.9487583,39.7849124,-104.9487399,39.7861861
-10902,7628,7803,0.129093895003183,0.129093895003183,-104.9487399,39.7861861,-104.9487657,39.7873469
-10903,7803,8030,0.203887723487366,0.203887723487366,-104.9487657,39.7873469,-104.9487914,39.7891804
-10904,750,1568,0.143385969503008,0.143385969503008,-104.9486136,39.7763944,-104.9486346,39.7776838
-10905,1568,356,0.136646760403047,0.136646760403047,-104.9486346,39.7776838,-104.9486062,39.7789125
-10907,3449,6863,0.17900718937772,0.17900718937772,-104.9461482,39.7162465,-104.9461768,39.7146368
-10908,6863,3068,0.174598273817653,0.174598273817653,-104.9461768,39.7146368,-104.9461768,39.7130666
-10909,3068,8031,0.0302783785251902,0.0302783785251902,-104.9461768,39.7130666,-104.9461768,39.7127943
-10910,8031,3188,0.14422007961407,0.14422007961407,-104.9461768,39.7127943,-104.9461736,39.7114973
-10912,3499,8032,0.199010937916898,0.199010937916898,-104.9465455,39.6983726,-104.9465284,39.6965829
-10913,8032,8033,0.200333001057217,0.200333001057217,-104.9465284,39.6965829,-104.9465436,39.6947813
-10915,5667,598,0.0644126037668526,0.0644126037668526,-104.947235,39.702287,-104.9468452,39.7017914
-10916,598,58,0.177763601732474,0.177763601732474,-104.9468452,39.7017914,-104.9465541,39.7002085
-10919,5970,8036,0.0505810885650185,0.0505810885650185,-104.9783626,39.753192,-104.9787817,39.7535131
-10920,8036,3015,0.0580577132309736,0.0580577132309736,-104.9787817,39.7535131,-104.9792691,39.7538767
-10921,3015,8037,0.0464238660315039,0.0464238660315039,-104.9792691,39.7538767,-104.9796416,39.7541805
-10922,8037,4384,0.0544799142925035,0.0544799142925035,-104.9796416,39.7541805,-104.9800877,39.7545304
-10923,4384,8038,0.0538947325800234,0.0538947325800234,-104.9800877,39.7545304,-104.9805458,39.7548634
-10924,8038,8039,0.0466438161180549,0.0466438161180549,-104.9805458,39.7548634,-104.9809281,39.7551627
-10925,8039,8040,0.00584498801301113,0.00584498801301113,-104.9809281,39.7551627,-104.9809778,39.7551988
-10926,8040,8041,0.0523763426314988,0.0523763426314988,-104.9809778,39.7551988,-104.981415,39.7555288
-10927,8041,8042,0.0530979313391782,0.0530979313391782,-104.981415,39.7555288,-104.9818522,39.755868
-10928,8042,8043,0.107654120371494,0.107654120371494,-104.9818522,39.755868,-104.9827245,39.7565663
-10929,8043,8044,0.0544759880197041,0.0544759880197041,-104.9827245,39.7565663,-104.9831794,39.7569094
-10930,8044,8045,0.0487657640583263,0.0487657640583263,-104.9831794,39.7569094,-104.9835828,39.7572195
-10931,8045,8046,0.0550233762997563,0.0550233762997563,-104.9835828,39.7572195,-104.9840288,39.7575763
-10932,8046,8047,0.0497918467778446,0.0497918467778446,-104.9840288,39.7575763,-104.9844325,39.7578991
-10933,8047,8048,0.0560301584180681,0.0560301584180681,-104.9844325,39.7578991,-104.9849005,39.7582519
-10934,8048,6177,0.0498105660603093,0.0498105660603093,-104.9849005,39.7582519,-104.9853166,39.7585655
-10937,8049,8050,0.0514663482815545,0.0514663482815545,-104.9866649,39.7595656,-104.9870901,39.7598933
-10939,5597,7545,0.109426166768049,0.109426166768049,-105.0438865,39.7312111,-105.0451654,39.7312441
-10940,7545,8051,0.69043474044403,0.69043474044403,-105.0451654,39.7312441,-105.0532391,39.7312862
-10943,4956,7224,0.100934524697699,0.100934524697699,-104.9952321,39.7305115,-104.9964124,39.7305084
-10944,7224,8052,0.0514703494422073,0.0514703494422073,-104.9964124,39.7305084,-104.9970142,39.7305007
-10945,8052,8053,0.0516967622411713,0.0516967622411713,-104.9970142,39.7305007,-104.9976187,39.7305054
-10946,8053,8054,0.0428181869535947,0.0428181869535947,-104.9976187,39.7305054,-104.9981194,39.7305074
-10947,8054,6644,0.0437760044869343,0.0437760044869343,-104.9981194,39.7305074,-104.9986313,39.7305095
-10948,6644,251,0.0675496864417695,0.0675496864417695,-104.9986313,39.7305095,-104.9994212,39.7305062
-10949,251,3950,0.064659952202738,0.064659952202738,-104.9994212,39.7305062,-105.0001773,39.7305104
-10950,3950,8056,0.0623263752149148,0.0623263752149148,-105.0001773,39.7305104,-105.0009061,39.7305052
-10951,8056,5609,0.0582215030638228,0.0582215030638228,-105.0009061,39.7305052,-105.0015869,39.7305003
-10952,5609,8057,0.0511983070002347,0.0511983070002347,-105.0015869,39.7305003,-105.0021856,39.7304991
-10953,8057,3730,0.0552226014136858,0.0552226014136858,-105.0021856,39.7304991,-105.0028312,39.7305102
-10954,3730,8058,0.106434809873425,0.106434809873425,-105.0028312,39.7305102,-105.0040758,39.7305164
-10956,5917,8060,0.0615467128621124,0.0615467128621124,-104.987439,39.7304505,-104.9881587,39.7304539
-10957,8060,8061,0.0595626505884908,0.0595626505884908,-104.9881587,39.7304539,-104.9888552,39.7304571
-10958,8061,8062,0.120093210467761,0.120093210467761,-104.9888552,39.7304571,-104.9902595,39.7304656
-10960,8063,4634,0.154652934390646,0.154652934390646,-105.01746,39.7312756,-105.0192656,39.7311969
-10961,4634,4549,0.20934037971115,0.20934037971115,-105.0192656,39.7311969,-105.0217136,39.7312012
-10962,4549,8064,0.293727880710195,0.293727880710195,-105.0217136,39.7312012,-105.0251484,39.731191
-10966,5216,3396,0.0579299126969349,0.0579299126969349,-105.0344587,39.7305984,-105.0351361,39.7306025
-10967,3396,8065,0.0454362838279539,0.0454362838279539,-105.0351361,39.7306025,-105.0356674,39.7306063
-10968,8065,5710,0.0481473121637486,0.0481473121637486,-105.0356674,39.7306063,-105.0362304,39.7306104
-10969,5710,8066,0.0449725321072065,0.0449725321072065,-105.0362304,39.7306104,-105.0367563,39.7306104
-10970,8066,7433,0.0497100835030792,0.0497100835030792,-105.0367563,39.7306104,-105.0373376,39.7306104
-10971,7433,8069,0.0438793771122388,0.0438793771122388,-105.0373376,39.7306104,-105.0378507,39.7306136
-10972,8069,7182,0.0471375837035957,0.0471375837035957,-105.0378507,39.7306136,-105.0384019,39.730617
-20567,10854,10857,0.225655121951984,0.225655121951984,-105.0159697,39.7588715,-105.0184643,39.7595354
-10973,7182,8070,0.0452974861696144,0.0452974861696144,-105.0384019,39.730617,-105.0389316,39.730617
-10974,8070,8071,0.0479228077199932,0.0479228077199932,-105.0389316,39.730617,-105.039492,39.730617
-10975,8071,8072,0.0470353472529161,0.0470353472529161,-105.039492,39.730617,-105.040042,39.7306132
-10976,8072,1097,0.0443841816938638,0.0443841816938638,-105.040042,39.7306132,-105.040561,39.7306097
-10978,8073,5318,0.014674630653103,0.014674630653103,-104.9738736,39.7606988,-104.9737157,39.7607506
-10979,5318,2905,0.0312080465120251,0.0312080465120251,-104.9737157,39.7607506,-104.9733508,39.7607599
-10980,2905,7145,0.104770590384922,0.104770590384922,-104.9733508,39.7607599,-104.9721251,39.760762
-10981,7145,5123,0.105925863098076,0.105925863098076,-104.9721251,39.760762,-104.9708859,39.7607568
-10982,5123,4737,0.104660211196924,0.104660211196924,-104.9708859,39.7607568,-104.9696615,39.7607527
-10983,4737,6783,0.106266768581811,0.106266768581811,-104.9696615,39.7607527,-104.9684183,39.7607496
-10984,6783,7367,0.10603565613408,0.10603565613408,-104.9684183,39.7607496,-104.9671778,39.7607476
-12610,8772,8773,0.0502119000696978,0.0502119000696978,-104.9969955,39.7289027,-104.9975826,39.7288966
-10987,3133,3905,0.108335751010408,0.108335751010408,-104.9647236,39.7607393,-104.9634562,39.7607434
-10988,3905,1043,0.106035430930181,0.106035430930181,-104.9634562,39.7607434,-104.9622157,39.7607434
-10989,1043,8074,0.0531930855223622,0.0531930855223622,-104.9622157,39.7607434,-104.9615934,39.7607445
-10990,8074,6278,0.0525006902367685,0.0525006902367685,-104.9615934,39.7607445,-104.9609792,39.7607455
-10991,6278,8075,0.105351603899057,0.105351603899057,-104.9609792,39.7607455,-104.9597467,39.7607455
-10992,8075,5007,0.100650315286722,0.100650315286722,-104.9597467,39.7607455,-104.9585692,39.7607455
-10993,5007,8076,0.0416106781167173,0.0416106781167173,-104.9585692,39.7607455,-104.9580824,39.7607455
-10995,8025,7689,0.0805451553909581,0.0805451553909581,-104.9487313,39.761191,-104.9478369,39.760963
-10996,7689,4508,0.0814563900003029,0.0814563900003029,-104.9478369,39.760963,-104.9468841,39.7609498
-10997,4508,3466,0.0836603655346893,0.0836603655346893,-104.9468841,39.7609498,-104.9459057,39.7609696
-10998,3466,6023,0.0805527124085535,0.0805527124085535,-104.9459057,39.7609696,-104.9449634,39.76096
-10999,6023,3872,0.0834734840918988,0.0834734840918988,-104.9449634,39.76096,-104.9440107,39.7607951
-11000,3872,8080,0.0833038712417768,0.0833038712417768,-104.9440107,39.7607951,-104.9430389,39.7607387
-11002,3967,8081,0.0785869791186196,0.0785869791186196,-105.0184978,39.6900096,-105.0194162,39.690003
-11004,6348,3039,0.0931730621198353,0.0931730621198353,-104.9430579,39.7581889,-104.9430494,39.7590268
-11005,3039,8080,0.190356710856614,0.190356710856614,-104.9430494,39.7590268,-104.9430389,39.7607387
-11006,8080,8082,0.0884015044030203,0.0884015044030203,-104.9430389,39.7607387,-104.9430328,39.7615337
-11008,6424,4647,0.0970252568524678,0.0970252568524678,-105.0175106,39.7248745,-105.0186451,39.7248745
-11009,4647,8083,0.151040975226462,0.151040975226462,-105.0186451,39.7248745,-105.0204107,39.7248423
-16204,9846,7728,0.404619504399153,0.404619504399153,-104.9798779,39.6857583,-104.9798585,39.6893971
-11010,4970,8084,0.141573509395187,0.141573509395187,-104.9800953,39.7828539,-104.9784386,39.7828407
-11012,6398,7450,0.0587460292912133,0.0587460292912133,-104.9991941,39.7080802,-104.9991888,39.7075519
-11013,7450,5682,0.0978645396723703,0.0978645396723703,-104.9991888,39.7075519,-104.9991817,39.7066718
-11014,5682,8085,0.19215729634673,0.19215729634673,-104.9991817,39.7066718,-104.9991901,39.7049437
-11015,8085,6825,0.00461462117405417,0.00461462117405417,-104.9991901,39.7049437,-104.9991903,39.7049022
-11016,6825,549,0.386380234242036,0.386380234242036,-104.9991903,39.7049022,-104.999187,39.7014274
-11017,549,6259,0.219376470776871,0.219376470776871,-104.999187,39.7014274,-104.999187,39.6994545
-11018,6259,8086,0.305359073933419,0.305359073933419,-104.999187,39.6994545,-104.9991292,39.6967087
-11019,8086,1485,0.202208842336051,0.202208842336051,-104.9991292,39.6967087,-104.9991903,39.6948908
-11023,8088,8089,0.0138986527527033,0.0138986527527033,-105.0018979,39.7429979,-105.0019804,39.7431056
-11024,8089,8090,0.00683010177656819,0.00683010177656819,-105.0019804,39.7431056,-105.002021,39.7431585
-11025,8090,8091,0.110435202693889,0.110435202693889,-105.002021,39.7431585,-105.0026536,39.7440244
-11026,7961,8092,0.198854876063874,0.198854876063874,-104.9896006,39.7279005,-104.9877223,39.7268463
-11028,5855,1340,0.201837936768745,0.201837936768745,-105.019178,39.714811,-105.0191455,39.712996
-11029,1340,8094,0.205566060887405,0.205566060887405,-105.0191455,39.712996,-105.0191455,39.7111473
-11030,8094,4699,0.204173926089909,0.204173926089909,-105.0191455,39.7111473,-105.0192055,39.7093117
-11031,4699,8095,0.200461574437924,0.200461574437924,-105.0192055,39.7093117,-105.0192399,39.7075091
-11032,8095,8096,0.201918867294297,0.201918867294297,-105.0192399,39.7075091,-105.0192399,39.7056932
-11033,8096,6823,0.198988761465987,0.198988761465987,-105.0192399,39.7056932,-105.0192227,39.7039037
-11034,6823,772,0.204865532850049,0.204865532850049,-105.0192227,39.7039037,-105.0192227,39.7020613
-11036,6007,6252,0.210749028817316,0.210749028817316,-105.0192141,39.7004566,-105.0192055,39.6985613
-11037,6252,8097,0.20159640654511,0.20159640654511,-105.0192055,39.6985613,-105.019205,39.6967483
-11039,6091,8098,0.0302498178580294,0.0302498178580294,-105.0158342,39.7607944,-105.0160862,39.7609854
-11040,8098,8099,0.0194131905433523,0.0194131905433523,-105.0160862,39.7609854,-105.016277,39.7610801
-11041,8099,6924,0.166900367789548,0.166900367789548,-105.016277,39.7610801,-105.0181853,39.7613979
-11042,6924,8100,0.161859559583179,0.161859559583179,-105.0181853,39.7613979,-105.0200789,39.7613979
-11043,8100,1241,0.0380629815604356,0.0380629815604356,-105.0200789,39.7613979,-105.0205242,39.7613979
-11045,6980,7942,0.133638145181839,0.133638145181839,-105.0408692,39.7034745,-105.0424313,39.7034679
-11046,7942,5338,0.0765467348148991,0.0765467348148991,-105.0424313,39.7034679,-105.0430777,39.7039439
-11048,5442,7919,0.212135491175046,0.212135491175046,-105.0250601,39.7030958,-105.0275397,39.7031113
-11049,7919,4410,0.19312496970157,0.19312496970157,-105.0275397,39.7031113,-105.0297971,39.7030981
-11050,4410,8103,0.226886968788061,0.226886968788061,-105.0297971,39.7030981,-105.0324492,39.7031047
-11051,8103,4283,0.17035467585884,0.17035467585884,-105.0324492,39.7031047,-105.0344405,39.7031047
-11053,8104,7854,0.0946426330892721,0.0946426330892721,-104.9912065,39.7783357,-104.9923137,39.7783555
-11054,7854,8105,0.0433309511619061,0.0433309511619061,-104.9923137,39.7783555,-104.9928201,39.7783357
-11055,8106,6776,0.129541839197132,0.129541839197132,-105.0252567,39.7778437,-105.0267719,39.7778785
-11056,6776,6152,0.13334664352248,0.13334664352248,-105.0267719,39.7778785,-105.0283323,39.7778787
-11057,6152,3997,0.133550546612879,0.133550546612879,-105.0283323,39.7778787,-105.0298945,39.7779116
-11058,3997,7046,0.134234793318191,0.134234793318191,-105.0298945,39.7779116,-105.0314652,39.7779248
-11059,7046,7376,0.132775137258175,0.132775137258175,-105.0314652,39.7779248,-105.0330187,39.7779446
-11060,7376,3435,0.135417405491425,0.135417405491425,-105.0330187,39.7779446,-105.0346033,39.7779525
-11063,7764,5715,0.0517371191288579,0.0517371191288579,-105.035177,39.7783841,-105.0357824,39.77838
-11064,5715,8107,0.0482057757930101,0.0482057757930101,-105.0357824,39.77838,-105.0363465,39.77838
-11065,8107,7435,0.0500858095958938,0.0500858095958938,-105.0363465,39.77838,-105.0369326,39.77838
-11066,7435,8108,0.0493949795014098,0.0493949795014098,-105.0369326,39.77838,-105.0375106,39.7783767
-11067,8108,7174,0.049625706970036,0.049625706970036,-105.0375106,39.7783767,-105.0380913,39.7783734
-11068,7174,6739,0.0493949818685724,0.0493949818685724,-105.0380913,39.7783734,-105.0386693,39.7783767
-11069,6739,7789,0.0481559013551591,0.0481559013551591,-105.0386693,39.7783767,-105.0392328,39.77838
-11070,7789,6645,0.0506327285203027,0.0506327285203027,-105.0392328,39.77838,-105.0398253,39.77838
-11071,6645,1136,0.0491201558695857,0.0491201558695857,-105.0398253,39.77838,-105.0404001,39.77838
-11072,1136,6995,0.0494363433732341,0.0494363433732341,-105.0404001,39.77838,-105.0409786,39.77838
-11073,6995,7503,0.049590164320003,0.049590164320003,-105.0409786,39.77838,-105.0415589,39.77838
-11074,7503,8109,0.100703299932673,0.100703299932673,-105.0415589,39.77838,-105.0427373,39.7783855
-11075,8109,7480,0.0534769030186113,0.0534769030186113,-105.0427373,39.7783855,-105.043363,39.7783777
-11076,7480,5580,0.0516905707687601,0.0516905707687601,-105.043363,39.7783777,-105.0439678,39.7783702
-11077,5580,8110,0.0497706020063474,0.0497706020063474,-105.0439678,39.7783702,-105.0445502,39.778373
-11078,8110,8111,0.0487450776836639,0.0487450776836639,-105.0445502,39.778373,-105.0451206,39.7783757
-11079,8111,8112,0.694365013204936,0.694365013204936,-105.0451206,39.7783757,-105.053246,39.7783797
-11080,1262,4539,0.0997555409236608,0.0997555409236608,-105.0204874,39.7784064,-105.0216547,39.778413
-11081,4539,6285,0.098678051142926,0.098678051142926,-105.0216547,39.778413,-105.0228094,39.7784186
-11083,2717,8113,0.100251109237605,0.100251109237605,-105.0239636,39.7784327,-105.0251365,39.7784506
-11085,8114,8115,0.096187670432143,0.096187670432143,-104.9982189,39.7783526,-104.9993433,39.7783922
-11086,8115,5626,0.201348891867615,0.201348891867615,-104.9993433,39.7783922,-105.0016991,39.7783602
-11088,2507,8116,0.0493483893872719,0.0493483893872719,-105.0105528,39.7777919,-105.0111288,39.7777603
-11089,8116,1238,0.100702597753866,0.100702597753866,-105.0111288,39.7777603,-105.0123072,39.7777623
-11090,1238,4792,0.032813432065695,0.032813432065695,-105.0123072,39.7777623,-105.0126909,39.7777735
-11091,4792,4812,0.0677278405661894,0.0677278405661894,-105.0126909,39.7777735,-105.0134831,39.7777557
-11092,4812,2152,0.0672921980026174,0.0672921980026174,-105.0134831,39.7777557,-105.0142702,39.7777735
-11093,2152,2179,0.0344341477791983,0.0344341477791983,-105.0142702,39.7777735,-105.0146727,39.777759
-11094,2179,6304,0.100339028034619,0.100339028034619,-105.0146727,39.777759,-105.0158468,39.7777672
-11095,6304,6426,0.101616906343387,0.101616906343387,-105.0158468,39.7777672,-105.0170359,39.7777689
-11096,6426,5344,0.101029409154815,0.101029409154815,-105.0170359,39.7777689,-105.0182175,39.7777985
-11097,5344,4640,0.0949596649493475,0.0949596649493475,-105.0182175,39.7777985,-105.0193287,39.7777995
-11098,4640,1261,0.0990622828589398,0.0990622828589398,-105.0193287,39.7777995,-105.0204874,39.7778259
-11100,3674,8117,0.125664760723522,0.125664760723522,-104.9782423,39.7475122,-104.97815,39.7486401
-11101,8117,8118,0.0959168081132613,0.0959168081132613,-104.97815,39.7486401,-104.9781487,39.7495027
-11102,8118,8119,0.126940211454871,0.126940211454871,-104.9781487,39.7495027,-104.978147,39.7506443
-11103,8119,8120,0.01117909521949,0.01117909521949,-104.978147,39.7506443,-104.9781435,39.7507448
-11104,8120,2680,0.0506435066002237,0.0506435066002237,-104.9781435,39.7507448,-104.9781521,39.7512002
-11105,2680,7576,0.0851117723335375,0.0851117723335375,-104.9781521,39.7512002,-104.9781607,39.7519656
-11106,7576,7833,0.0050110745435388,0.0050110745435388,-104.9781607,39.7519656,-104.9781265,39.7520022
-16206,5823,7210,0.206033080289906,0.206033080289906,-104.9798455,39.691158,-104.9798457,39.6930109
-11107,7833,8121,0.0770500763169566,0.0770500763169566,-104.9781265,39.7520022,-104.9781346,39.7526951
-11108,8121,8035,0.0465513466723509,0.0465513466723509,-104.9781346,39.7526951,-104.9781265,39.7531137
-11110,807,8122,0.0835494437055617,0.0835494437055617,-104.9781222,39.7532569,-104.9781363,39.7540082
-11111,8122,8123,0.0673397864842803,0.0673397864842803,-104.9781363,39.7540082,-104.9781379,39.7546138
-11112,8123,3017,0.0101257363562013,0.0101257363562013,-104.9781379,39.7546138,-104.9782228,39.7546773
-11114,8124,8125,0.0101518907891953,0.0101518907891953,-104.9790658,39.7205397,-104.9791138,39.7204562
-11115,8125,2367,0.124673068713839,0.124673068713839,-104.9791138,39.7204562,-104.9791205,39.719335
-11116,2367,8126,0.113318754907998,0.113318754907998,-104.9791205,39.719335,-104.9791209,39.7183159
-11117,8126,1826,0.2011636326138,0.2011636326138,-104.9791209,39.7183159,-104.9791466,39.7165069
-11119,8127,8128,0.150025905824831,0.150025905824831,-105.01151,39.7418472,-105.0124026,39.7430088
-11121,2887,8129,0.081938792894379,0.081938792894379,-104.9729638,39.7478589,-104.9721336,39.7482271
-11122,8129,8130,0.106964546123147,0.106964546123147,-104.9721336,39.7482271,-104.9708826,39.7482126
-11123,8130,4728,0.104978647949955,0.104978647949955,-104.9708826,39.7482126,-104.9696547,39.7482082
-11124,4728,6795,0.108689532522494,0.108689532522494,-104.9696547,39.7482082,-104.9683834,39.7482029
-11125,6795,7347,0.102216150252819,0.102216150252819,-104.9683834,39.7482029,-104.9671878,39.748204
-11126,7347,5393,0.105889579896167,0.105889579896167,-104.9671878,39.748204,-104.9659493,39.748214
-11127,5393,8131,0.054562518485416,0.054562518485416,-104.9659493,39.748214,-104.9653111,39.7482118
-11128,8131,8132,0.0481675689920574,0.0481675689920574,-104.9653111,39.7482118,-104.9647477,39.7482098
-11129,8132,3895,0.109975096473535,0.109975096473535,-104.9647477,39.7482098,-104.9634614,39.7482006
-11130,3895,1027,0.10512607647723,0.10512607647723,-104.9634614,39.7482006,-104.9622318,39.748208
-11131,1027,8133,0.0540856357592879,0.0540856357592879,-104.9622318,39.748208,-104.9615993,39.7482178
-12777,8831,8832,0.188959131880304,0.188959131880304,-104.9729154,39.7255792,-104.9729324,39.7272785
-11133,6270,8134,0.0524343047299347,0.0524343047299347,-104.960998,39.748227,-104.9603847,39.7482239
-11134,8134,8135,0.0535628703960502,0.0535628703960502,-104.9603847,39.7482239,-104.9597582,39.7482207
-11136,8136,8137,0.085310565822113,0.085310565822113,-104.9592611,39.7837879,-104.9602584,39.7837523
-11137,8137,6283,0.0924164471878071,0.0924164471878071,-104.9602584,39.7837523,-104.9613399,39.7837589
-11138,6283,8138,0.0880043396162394,0.0880043396162394,-104.9613399,39.7837589,-104.9623698,39.7837589
-11139,8138,8139,0.093883258506383,0.093883258506383,-104.9623698,39.7837589,-104.9634685,39.7837589
-11140,8139,3142,0.0916816056478044,0.0916816056478044,-104.9634685,39.7837589,-104.9645414,39.7837523
-11141,3142,5416,0.0909467644852468,0.0909467644852468,-104.9645414,39.7837523,-104.9656057,39.7837589
-11142,5416,8140,0.0909305385237858,0.0909305385237858,-104.9656057,39.7837589,-104.9666698,39.7837514
-11144,3154,4972,0.0951253779669951,0.0951253779669951,-104.981211,39.7837245,-104.980098,39.7837069
-11145,4972,8141,0.159341748119657,0.159341748119657,-104.980098,39.7837069,-104.9783643,39.7831792
-11147,8142,7088,0.0975513520982515,0.0975513520982515,-104.9858077,39.7837643,-104.9846662,39.7837774
-11148,7088,971,0.0957796137604222,0.0957796137604222,-104.9846662,39.7837774,-104.9835456,39.7837971
-11149,971,7402,0.0550171923708008,0.0550171923708008,-104.9835456,39.7837971,-104.9829018,39.7837905
-11150,7402,5289,0.0484207753056408,0.0484207753056408,-104.9829018,39.7837905,-104.9823354,39.7837773
-11152,3320,8143,0.077853024278325,0.077853024278325,-104.9569981,39.7837383,-104.956087,39.7837391
-11153,8143,5756,0.0805728425443714,0.0805728425443714,-104.956087,39.7837391,-104.9551441,39.7837449
-11154,5756,7328,0.0873058149168626,0.0873058149168626,-104.9551441,39.7837449,-104.9541227,39.7837251
-11155,7328,2087,0.0932446680916279,0.0932446680916279,-104.9541227,39.7837251,-104.9530315,39.7837193
-12803,4082,3763,0.178907695562899,0.178907695562899,-105.0063995,39.7838419,-105.0064169,39.7854508
-11158,4115,4117,0.0440125760632801,0.0440125760632801,-104.9513234,39.7837391,-104.9508084,39.7837325
-11159,4117,6504,0.0374084190760855,0.0374084190760855,-104.9508084,39.7837325,-104.9503707,39.7837259
-11160,6504,6677,0.044394894025319,0.044394894025319,-104.9503707,39.7837259,-104.9498557,39.7837786
-11161,6677,8029,0.0937961823239111,0.0937961823239111,-104.9498557,39.7837786,-104.9487583,39.7837977
-11162,8029,8144,0.0511329046048641,0.0511329046048641,-104.9487583,39.7837977,-104.9481599,39.7837974
-11163,8144,8145,0.0135266374241744,0.0135266374241744,-104.9481599,39.7837974,-104.9480016,39.7837973
-11165,4223,1001,0.0531658581374023,0.0531658581374023,-104.986953,39.7839026,-104.9875739,39.7838718
-11167,4374,2855,0.170827518580558,0.170827518580558,-105.0014998,39.7007322,-105.0034418,39.7003749
-11169,8146,4313,0.17183605887504,0.17183605887504,-105.0324321,39.7013349,-105.0344405,39.7013547
-11171,5444,7921,0.207916650376417,0.207916650376417,-105.0250665,39.701332,-105.0274968,39.7013283
-11172,7921,4408,0.197533961318481,0.197533961318481,-105.0274968,39.7013283,-105.0298056,39.7013481
-11174,8147,644,0.13870723980062,0.13870723980062,-104.9389466,39.7401205,-104.9389365,39.7413679
-11175,644,7273,0.132830481063153,0.132830481063153,-104.9389365,39.7413679,-104.9389193,39.7425624
-11176,7273,1992,0.0923486278054484,0.0923486278054484,-104.9389193,39.7425624,-104.9389249,39.7433929
-11177,1992,1976,0.0346172149199892,0.0346172149199892,-104.9389249,39.7433929,-104.9389295,39.7437042
-11178,1976,4591,0.135026001443702,0.135026001443702,-104.9389295,39.7437042,-104.9389209,39.7449185
-11179,4591,6478,0.132622992610531,0.132622992610531,-104.9389209,39.7449185,-104.9389155,39.7461112
-12836,8855,8856,0.0453127355156614,0.0453127355156614,-104.9892657,39.7540916,-104.988892,39.7538026
-11180,6478,2462,0.14279254357733,0.14279254357733,-104.9389155,39.7461112,-104.9388988,39.7473953
-11182,8148,8149,0.201096301426274,0.201096301426274,-104.9394475,39.7256125,-104.9394514,39.727421
-11183,8149,8150,0.201154462707023,0.201154462707023,-104.9394514,39.727421,-104.9394389,39.72923
-11185,2461,5905,0.204782750962282,0.204782750962282,-104.9394874,39.7473999,-104.9394475,39.7492413
-11186,5905,8151,0.200573430726899,0.200573430726899,-104.9394475,39.7492413,-104.9394486,39.7510451
-11187,8151,790,0.199941729347635,0.199941729347635,-104.9394486,39.7510451,-104.9394378,39.7528432
-11188,790,3583,0.202642621733606,0.202642621733606,-104.9394378,39.7528432,-104.9394304,39.7546656
-11189,3583,4354,0.202475015345548,0.202475015345548,-104.9394304,39.7546656,-104.9394273,39.7564865
-11190,4354,8152,0.200309115545572,0.200309115545572,-104.9394273,39.7564865,-104.9393999,39.7582878
-11191,8152,3057,0.206933046688651,0.206933046688651,-104.9393999,39.7582878,-104.9394429,39.7601485
-11192,3057,8153,0.186611026973769,0.186611026973769,-104.9394429,39.7601485,-104.9394065,39.7618265
-11194,1060,8154,0.173008298211734,0.173008298211734,-104.9395373,39.7162311,-104.939535,39.717787
-11195,8154,8155,0.177900871903465,0.177900871903465,-104.939535,39.717787,-104.9395373,39.7193869
-11196,8155,8156,0.167407375878646,0.167407375878646,-104.9395373,39.7193869,-104.9395248,39.7208924
-11197,8156,4775,0.251673348312152,0.251673348312152,-104.9395248,39.7208924,-104.9393188,39.7231502
-11198,4775,6553,0.132857734263153,0.132857734263153,-104.9393188,39.7231502,-104.9393102,39.724345
-11199,6553,8157,0.106438324963657,0.106438324963657,-104.9393102,39.724345,-104.9393188,39.7253022
-11201,2232,5133,0.19052148019247,0.19052148019247,-104.9395024,39.7328547,-104.9395046,39.7345681
-11202,5133,4902,0.0151263568070176,0.0151263568070176,-104.9395046,39.7345681,-104.9394839,39.7347032
-11203,4902,6619,0.197484990473566,0.197484990473566,-104.9394839,39.7347032,-104.9394962,39.7364792
-11205,8158,8159,0.20585122765193,0.20585122765193,-104.9394819,39.7382793,-104.939514,39.7401304
-11207,8160,8161,0.016887203978,0.016887203978,-104.9408036,39.7114181,-104.9406062,39.7114203
-11221,106,61,0.00533283632570931,0.00533283632570931,-104.931654,39.700221,-104.931714,39.700208
-11222,61,65,0.207145778882675,0.207145778882675,-104.931714,39.700208,-104.934135,39.700181
-11224,103,8170,0.0169041191858478,0.0169041191858478,-104.940786,39.7001905,-104.9405886,39.7001839
-11225,8170,8171,0.361108877807587,0.361108877807587,-104.9405886,39.7001839,-104.936368,39.700221
-11226,8171,8172,0.190446564346409,0.190446564346409,-104.936368,39.700221,-104.934142,39.700234
-11228,8173,8174,0.0754029121625499,0.0754029121625499,-104.940655,39.7066792,-104.9406492,39.7073573
-11229,8174,8175,0.417052793540933,0.417052793540933,-104.9406492,39.7073573,-104.9406062,39.7111078
-11231,8176,8177,0.0299391686417842,0.0299391686417842,-104.9365311,39.7051466,-104.9362135,39.7050335
-11232,8177,8178,0.202215537578589,0.202215537578589,-104.9362135,39.7050335,-104.9340806,39.7042496
-11233,8178,8179,0.11808571362223,0.11808571362223,-104.9340806,39.7042496,-104.9328366,39.7037894
-11234,8179,8163,0.126818785158071,0.126818785158071,-104.9328366,39.7037894,-104.9314767,39.7033354
-11236,4228,8181,0.209470643186114,0.209470643186114,-104.933969,39.696598,-104.933897,39.698481
-11269,4227,8200,0.197818013323833,0.197818013323833,-104.936211,39.696598,-104.936222,39.694819
-11237,8181,65,0.190124873120192,0.190124873120192,-104.933897,39.698481,-104.934135,39.700181
-11238,65,8172,0.00592368117466438,0.00592368117466438,-104.934135,39.700181,-104.934142,39.700234
-11239,8172,8178,0.446545243407564,0.446545243407564,-104.934142,39.700234,-104.9340806,39.7042496
-12886,8876,655,0.00596005420121878,0.00596005420121878,-104.9810837,39.7416131,-104.9810836,39.7416667
-11242,8183,8184,0.228538005170478,0.228538005170478,-104.9405972,39.7047205,-104.9381461,39.7039031
-11245,8162,8186,0.154667884886688,0.154667884886688,-104.936452,39.711255,-104.9351303,39.7103058
-11246,8186,8187,0.175562487769928,0.175562487769928,-104.9351303,39.7103058,-104.9332506,39.7096719
-11249,3633,8188,0.0150923041998694,0.0150923041998694,-104.9408419,39.7060696,-104.9406663,39.7060565
-11250,8188,8189,0.270579217097142,0.270579217097142,-104.9406663,39.7060565,-104.9375812,39.7055199
-11251,8189,8176,0.0989590805052705,0.0989590805052705,-104.9375812,39.7055199,-104.9365311,39.7051466
-11253,8163,3643,0.149826975112258,0.149826975112258,-104.9314767,39.7033354,-104.9299023,39.7027452
-11255,8190,1804,0.201671276037755,0.201671276037755,-104.937302,39.696603,-104.9373232,39.6947894
-11257,8191,8192,0.0154162495075233,0.0154162495075233,-104.940786,39.7020593,-104.9406058,39.7020593
-11258,8192,8193,0.181517364616001,0.181517364616001,-104.9406058,39.7020593,-104.9384841,39.7020481
-11259,8193,8194,0.180264399151985,0.180264399151985,-104.9384841,39.7020481,-104.936377,39.702045
-11261,8181,3550,0.192378625445026,0.192378625445026,-104.933897,39.698481,-104.931651,39.698398
-11264,8186,8197,0.16597516800592,0.16597516800592,-104.9351303,39.7103058,-104.936366,39.709155
-11265,8197,8198,0.19583924016197,0.19583924016197,-104.936366,39.709155,-104.9363539,39.7073938
-11267,8199,8197,0.123986592502342,0.123986592502342,-104.936354,39.71027,-104.936366,39.709155
-11271,8194,8171,0.202821007714315,0.202821007714315,-104.936377,39.702045,-104.936368,39.700221
-11272,8171,8195,0.195495736534207,0.195495736534207,-104.936368,39.700221,-104.9363825,39.6984629
-11273,8195,8201,0.207035429354564,0.207035429354564,-104.9363825,39.6984629,-104.936392,39.696601
-11275,8202,8174,0.0167300114490718,0.0167300114490718,-104.9408446,39.707351,-104.9406492,39.7073573
-11277,8198,8167,0.130702597640292,0.130702597640292,-104.9363539,39.7073938,-104.9348261,39.707407
-11278,8167,8203,0.122618976220882,0.122618976220882,-104.9348261,39.707407,-104.9333927,39.707407
-11279,8203,8204,0.327046093817032,0.327046093817032,-104.9333927,39.707407,-104.92957,39.707451
-11280,4228,4229,0.198835732908948,0.198835732908948,-104.933969,39.696598,-104.931645,39.696598
-11281,4229,8205,0.301334691508365,0.301334691508365,-104.931645,39.696598,-104.928123,39.696591
-11282,8206,8190,0.113799565910968,0.113799565910968,-104.9386317,39.6965781,-104.937302,39.696603
-11284,8201,4227,0.0154895076655846,0.0154895076655846,-104.936392,39.696601,-104.936211,39.696598
-11286,8207,8200,0.0930040479254132,0.0930040479254132,-104.937309,39.694816,-104.936222,39.694819
-11288,8193,8184,0.208283527691618,0.208283527691618,-104.9384841,39.7020481,-104.9381461,39.7039031
-11316,5155,2238,0.0837223321108041,0.0837223321108041,-104.9292584,39.7320999,-104.9292252,39.7328524
-11289,8184,8189,0.18616179415052,0.18616179415052,-104.9381461,39.7039031,-104.9375812,39.7055199
-11291,3257,8208,0.321455747501831,0.321455747501831,-104.9302161,39.7037522,-104.9336074,39.7049972
-11293,443,8209,0.110751336507506,0.110751336507506,-104.932837,39.701282,-104.932831,39.700286
-11294,392,8179,0.178734728363983,0.178734728363983,-104.932837,39.702182,-104.9328366,39.7037894
-11296,8162,6291,0.216060929512084,0.216060929512084,-104.936452,39.711255,-104.9339286,39.7111692
-11297,6291,7342,0.196043159951137,0.196043159951137,-104.9339286,39.7111692,-104.9316369,39.711189
-11645,8348,6433,0.104796073662296,0.104796073662296,-105.0190347,39.7552995,-105.0178088,39.7553019
-11299,7342,5274,0.233799434282417,0.233799434282417,-104.9316369,39.711189,-104.93153,39.709088
-11300,61,3550,0.201334976523304,0.201334976523304,-104.931714,39.700208,-104.931651,39.698398
-11301,3550,4229,0.200151526253302,0.200151526253302,-104.931651,39.698398,-104.931645,39.696598
-11303,5279,3162,0.0990447395902117,0.0990447395902117,-104.9826249,39.7183267,-104.9814669,39.7183289
-11304,3162,4979,0.101293558978732,0.101293558978732,-104.9814669,39.7183289,-104.9802827,39.7183173
-11305,4979,8126,0.0993695918525221,0.0993695918525221,-104.9802827,39.7183173,-104.9791209,39.7183159
-11306,8126,4335,0.0910331896522206,0.0910331896522206,-104.9791209,39.7183159,-104.9780566,39.7183225
-11307,4335,8210,0.0476841899874069,0.0476841899874069,-104.9780566,39.7183225,-104.9774991,39.7183251
-11308,8210,5040,0.0521232799197054,0.0521232799197054,-104.9774991,39.7183251,-104.9768897,39.7183279
-11309,5040,8005,0.0976580173278249,0.0976580173278249,-104.9768897,39.7183279,-104.9757482,39.7183081
-11310,8005,4307,0.0466427658725356,0.0466427658725356,-104.9757482,39.7183081,-104.975203,39.7182988
-11311,4307,995,0.052631404385892,0.052631404385892,-104.975203,39.7182988,-104.9745878,39.7182883
-11313,8211,5951,0.199050744316133,0.199050744316133,-104.9292411,39.7292602,-104.9292349,39.7310503
-11314,5951,5143,0.0913688712241713,0.0913688712241713,-104.9292349,39.7310503,-104.9292349,39.731872
-11315,5143,5155,0.025420878561629,0.025420878561629,-104.9292349,39.731872,-104.9292584,39.7320999
-11317,2238,4911,0.203010994943857,0.203010994943857,-104.9292252,39.7328524,-104.9291882,39.7346779
-11318,4911,6611,0.201886473833407,0.201886473833407,-104.9291882,39.7346779,-104.9291809,39.7364935
-11319,6611,8212,0.197101479655197,0.197101479655197,-104.9291809,39.7364935,-104.9292134,39.7382659
-11320,8212,8213,0.206955997470903,0.206955997470903,-104.9292134,39.7382659,-104.9292134,39.7401271
-11323,5950,5142,0.147533492116586,0.147533492116586,-104.9304356,39.7310602,-104.930434,39.732387
-11326,2237,4910,0.20422309503448,0.20422309503448,-104.9303867,39.7328502,-104.9303749,39.7346868
-11327,4910,6612,0.200274596012582,0.200274596012582,-104.9303749,39.7346868,-104.9303837,39.7364879
-11328,6612,8215,0.196974435405611,0.196974435405611,-104.9303837,39.7364879,-104.9303979,39.7382593
-11329,8215,8216,0.208072957327714,0.208072957327714,-104.9303979,39.7382593,-104.9303676,39.7401304
-11331,7959,8217,0.0106613346433968,0.0106613346433968,-104.9912259,39.7297319,-104.9911152,39.729776
-11337,289,8219,0.0101386145536838,0.0101386145536838,-105.0056941,39.7615954,-105.0056833,39.7616862
-11338,8219,4483,0.0263974796072716,0.0263974796072716,-105.0056833,39.7616862,-105.0055781,39.7619094
-11340,8220,289,0.116841869555958,0.116841869555958,-105.006312,39.7606581,-105.0056941,39.7615954
-11483,8221,8222,0.0466544327533727,0.0466544327533727,-104.9936301,39.74071,-104.9940163,39.7410064
-11342,8223,7906,0.0355112223964134,0.0355112223964134,-105.0064841,39.7620611,-105.0068985,39.7620384
-11343,7906,4187,0.0959478466054884,0.0959478466054884,-105.0068985,39.7620384,-105.008021,39.7620353
-11344,4187,8224,0.108554994700497,0.108554994700497,-105.008021,39.7620353,-105.009291,39.7620353
-11345,8224,2512,0.0267513344361619,0.0267513344361619,-105.009291,39.7620353,-105.0096039,39.7620403
-11346,2512,6726,0.134329958691173,0.134329958691173,-105.0096039,39.7620403,-105.0111753,39.7620239
-11347,6726,8226,0.0541066682112551,0.0541066682112551,-105.0111753,39.7620239,-105.0118083,39.7620229
-11348,8226,1754,0.0582360854290831,0.0582360854290831,-105.0118083,39.7620229,-105.0124896,39.7620198
-11352,8227,8228,0.0477813036978224,0.0477813036978224,-105.0138041,39.7620198,-105.0143631,39.7620198
-11353,8228,2164,0.0100092856224142,0.0100092856224142,-105.0143631,39.7620198,-105.0144802,39.7620198
-11354,2164,8229,0.117341992338054,0.117341992338054,-105.0144802,39.7620198,-105.015853,39.7620198
-11355,8229,6417,0.132790064578642,0.132790064578642,-105.015853,39.7620198,-105.0174065,39.7620125
-11356,6417,6925,0.066680142142332,0.066680142142332,-105.0174065,39.7620125,-105.0181866,39.7620126
-11357,6925,4623,0.0658013116163711,0.0658013116163711,-105.0181866,39.7620126,-105.0189564,39.7620167
-11358,4623,1242,0.132924383309181,0.132924383309181,-105.0189564,39.7620167,-105.0205115,39.7620158
-11359,1242,8230,0.117419950970456,0.117419950970456,-105.0205115,39.7620158,-105.0218852,39.7620114
-11360,8230,2709,0.0877593926636965,0.0877593926636965,-105.0218852,39.7620114,-105.0229119,39.7620081
-11361,2709,2723,0.0586886121966142,0.0586886121966142,-105.0229119,39.7620081,-105.0235985,39.7620059
-11362,2723,8231,0.126334352112189,0.126334352112189,-105.0235985,39.7620059,-105.0250765,39.7620038
-11363,8231,8232,0.00800071585537006,0.00800071585537006,-105.0250765,39.7620038,-105.0251701,39.7620042
-11364,8232,8233,0.00985605768408299,0.00985605768408299,-105.0251701,39.7620042,-105.0252854,39.7620032
-11368,8223,8219,0.0801446034429079,0.0801446034429079,-105.0064841,39.7620611,-105.0056833,39.7616862
-11374,8234,8235,0.161648892640997,0.161648892640997,-105.001293,39.7577963,-105.002653,39.7588064
-11375,8235,8236,0.12616333160407,0.12616333160407,-105.002653,39.7588064,-105.0034855,39.7597433
-11379,4843,910,0.143586236704503,0.143586236704503,-104.9986941,39.7558019,-104.9998754,39.7567199
-16194,9844,7725,1.4119245996206,1.4119245996206,-104.9822489,39.6767118,-104.9821706,39.6894094
-11388,2064,8243,0.0180732464676321,0.0180732464676321,-104.953025,39.7800093,-104.952864,39.7801147
-11389,8243,8244,0.307196973753055,0.307196973753055,-104.952864,39.7801147,-104.9498727,39.781647
-11392,8246,3316,0.0456634204130967,0.0456634204130967,-104.9607953,39.7804322,-104.960267,39.7804939
-11394,6201,6945,0.172713645832468,0.172713645832468,-104.9623939,39.7803745,-104.9624103,39.7819277
-11395,6945,8138,0.203649557134895,0.203649557134895,-104.9624103,39.7819277,-104.9623698,39.7837589
-11396,8138,2880,0.164233861501064,0.164233861501064,-104.9623698,39.7837589,-104.962414,39.7852355
-11398,6200,6944,0.169916988893137,0.169916988893137,-104.9634695,39.7803971,-104.9634685,39.7819252
-11399,6944,8139,0.203898136987997,0.203898136987997,-104.9634685,39.7819252,-104.9634685,39.7837589
-11400,8139,2879,0.160611633174386,0.160611633174386,-104.9634685,39.7837589,-104.9634771,39.7852033
-11401,2879,6408,0.0322091251783491,0.0322091251783491,-104.9634771,39.7852033,-104.9634692,39.7854929
-11402,6408,6412,0.266159968303504,0.266159968303504,-104.9634692,39.7854929,-104.963535,39.787886
-11403,6412,8247,0.0505479778201866,0.0505479778201866,-104.963535,39.787886,-104.963496,39.7883396
-11407,6190,6948,0.200111149085838,0.200111149085838,-104.9857782,39.7801773,-104.9858077,39.7819768
-11408,6948,8142,0.198760931377031,0.198760931377031,-104.9858077,39.7819768,-104.9858077,39.7837643
-11409,8142,2864,0.201908008890848,0.201908008890848,-104.9858077,39.7837643,-104.9858115,39.7855801
-11412,8249,8067,0.737441419701283,0.737441419701283,-105.0527654,39.7836619,-105.0441378,39.7835013
-11424,8079,8250,0.738983904805809,0.738983904805809,-105.0441387,39.7836373,-105.0527851,39.7837728
-11431,412,415,0.636538521199656,0.636538521199656,-105.0287256,39.7838921,-105.0212787,39.7837465
-18912,10390,10391,0.0580503615423655,0.0580503615423655,-105.0126243,39.749739,-105.0127316,39.7492235
-11453,8262,8263,0.292162593230546,0.292162593230546,-104.9882873,39.7806922,-104.9903301,39.7785853
-11468,781,8271,0.782578824666181,0.782578824666181,-104.9314271,39.7799974,-104.9225249,39.7783463
-11597,8330,8331,0.0435245851176098,0.0435245851176098,-105.0382057,39.7621211,-105.0387149,39.7621204
-11469,8272,8270,0.782084992370784,0.782084992370784,-104.9225195,39.7784772,-104.9314164,39.7801263
-11471,1610,1244,0.0543175525667992,0.0543175525667992,-104.9973103,39.7547013,-104.9968584,39.7543579
-11472,1244,8273,0.0533400242428221,0.0533400242428221,-104.9968584,39.7543579,-104.9964185,39.7540177
-11473,8273,8274,0.0526029519682926,0.0526029519682926,-104.9964185,39.7540177,-104.9959856,39.7536815
-11474,8274,8275,0.0534350213865012,0.0534350213865012,-104.9959856,39.7536815,-104.9955427,39.7533424
-11476,8276,1610,0.0663295545530221,0.0663295545530221,-104.9977757,39.7551786,-104.9973103,39.7547013
-11478,1610,8277,0.135789656985465,0.135789656985465,-104.9973103,39.7547013,-104.9961783,39.755558
-11480,7861,8278,0.0143942343868779,0.0143942343868779,-104.992927,39.7400066,-104.9929317,39.740136
-11481,8278,7581,0.0343415060903181,0.0343415060903181,-104.9929317,39.740136,-104.993184,39.7403763
-11482,7581,8221,0.0532138886249367,0.0532138886249367,-104.993184,39.7403763,-104.9936301,39.74071
-11484,8222,5964,0.00591714471910066,0.00591714471910066,-104.9940163,39.7410064,-104.9940638,39.7410451
-11485,5964,8279,0.00703516905841087,0.00703516905841087,-104.9940638,39.7410451,-104.9941219,39.7410899
-11486,8279,3001,0.0966235655424771,0.0966235655424771,-104.9941219,39.7410899,-104.99492,39.7417051
-11488,8275,7561,0.103690392766705,0.103690392766705,-104.9955427,39.7533424,-104.9946844,39.7526835
-11489,7561,8280,0.0558620890554655,0.0558620890554655,-104.9946844,39.7526835,-104.994215,39.752334
-11490,8280,6185,0.0505017539528047,0.0505017539528047,-104.994215,39.752334,-104.993798,39.7520123
-11493,8282,8283,0.101387037651418,0.101387037651418,-104.9928753,39.7513081,-104.9920377,39.7506626
-11494,8283,8284,0.102270654549379,0.102270654549379,-104.9920377,39.7506626,-104.9912016,39.7500048
-11495,8284,8285,0.10797805598011,0.10797805598011,-104.9912016,39.7500048,-104.9903025,39.7493228
-11496,8285,8286,0.106400672091098,0.106400672091098,-104.9903025,39.7493228,-104.9894331,39.7486381
-11497,8286,4392,0.102247824152268,0.102247824152268,-104.9894331,39.7486381,-104.9886052,39.7479745
-11498,4392,8287,0.0166274126542335,0.0166274126542335,-104.9886052,39.7479745,-104.9884675,39.7478689
-11499,8287,8288,0.0799445865529155,0.0799445865529155,-104.9884675,39.7478689,-104.9878071,39.7473599
-11500,8288,3008,0.023689428581565,0.023689428581565,-104.9878071,39.7473599,-104.9876315,39.7471951
-11501,3008,8289,0.0297886059757376,0.0297886059757376,-104.9876315,39.7471951,-104.9873968,39.7469971
-11505,8290,8291,0.051999610902965,0.051999610902965,-104.9908493,39.7516097,-104.9912817,39.7519386
-11506,8291,8292,0.0471972516257623,0.0471972516257623,-104.9912817,39.7519386,-104.9916742,39.7522371
-11507,8292,8293,0.00657484491051097,0.00657484491051097,-104.9916742,39.7522371,-104.9917306,39.7522773
-11508,8293,6184,0.103933630763566,0.103933630763566,-104.9917306,39.7522773,-104.9925969,39.7529331
-11509,6184,7562,0.106067817024884,0.106067817024884,-104.9925969,39.7529331,-104.9934281,39.7536413
-11510,7562,8294,0.105991654619724,0.105991654619724,-104.9934281,39.7536413,-104.9942907,39.754326
-11512,8295,8296,0.0523765388441753,0.0523765388441753,-104.9947185,39.754659,-104.9951571,39.7549879
-11522,8297,8298,0.429589849820924,0.429589849820924,-105.0048527,39.7552746,-105.0028555,39.7588198
-11537,6093,8302,0.0171793049902436,0.0171793049902436,-105.0268612,39.760858,-105.0266827,39.760929
-11539,8303,8304,0.00530856583912826,0.00530856583912826,-105.0265595,39.7609475,-105.026526,39.7609877
-11541,2195,8305,0.128463648918522,0.128463648918522,-105.0025939,39.7533024,-105.0036573,39.7541187
-11543,8306,8307,0.0111673306658244,0.0111673306658244,-105.0042327,39.7545718,-105.0043265,39.7546417
-11545,8308,8306,0.0470759818626725,0.0470759818626725,-105.0038599,39.7542602,-105.0042327,39.7545718
-11547,8309,8310,0.0336302381688336,0.0336302381688336,-105.0254224,39.7404725,-105.0251999,39.7407219
-11549,8311,8312,0.0219555493879181,0.0219555493879181,-105.0031123,39.7485003,-105.0033568,39.7484399
-11550,8312,8313,0.036241706253738,0.036241706253738,-105.0033568,39.7484399,-105.00375,39.7483181
-11598,8331,7782,0.0493369824555625,0.0493369824555625,-105.0387149,39.7621204,-105.0392921,39.7621196
-11551,8313,8314,0.0512913124797426,0.0512913124797426,-105.00375,39.7483181,-105.0042918,39.74812
-11552,8314,8315,0.107868186928524,0.107868186928524,-105.0042918,39.74812,-105.0053848,39.7476354
-11553,8315,8316,0.223470506469832,0.223470506469832,-105.0053848,39.7476354,-105.007603,39.7465723
-11554,8316,8317,0.211788929267968,0.211788929267968,-105.007603,39.7465723,-105.0094519,39.7453047
-11555,8317,6963,0.0143636308232266,0.0143636308232266,-105.0094519,39.7453047,-105.0095744,39.7452163
-16197,7207,1788,0.198027086450295,0.198027086450295,-104.9821537,39.693012,-104.9821522,39.6947929
-11556,6963,2151,0.0672032541987901,0.0672032541987901,-105.0095744,39.7452163,-105.0100859,39.7447574
-11557,2151,8318,0.127422890827039,0.127422890827039,-105.0100859,39.7447574,-105.0111676,39.7439691
-11563,8321,5670,0.0510922996821663,0.0510922996821663,-105.0304907,39.7580283,-105.0310884,39.7580274
-11564,5670,8319,0.0512128921942442,0.0512128921942442,-105.0310884,39.7580274,-105.0316875,39.7580245
-11565,8319,7031,0.0489988317743493,0.0489988317743493,-105.0316875,39.7580245,-105.0322607,39.7580218
-13192,2925,5307,0.0991225747078309,0.0991225747078309,-105.0215487,39.7075025,-105.0227074,39.7075091
-17794,8402,10178,0.0874671474005437,0.0874671474005437,-104.9873999,39.7564065,-104.9873945,39.7556199
-11583,8323,8324,0.0415122975666244,0.0415122975666244,-105.0248659,39.7403859,-105.0252084,39.7401213
-11585,8325,8326,0.0105737020216599,0.0105737020216599,-105.0288943,39.7621125,-105.029018,39.7621132
-11586,8326,8327,0.0170186899048993,0.0170186899048993,-105.029018,39.7621132,-105.0292171,39.7621142
-11587,8327,4030,0.059373245074661,0.059373245074661,-105.0292171,39.7621142,-105.0299117,39.7621179
-11588,4030,8328,0.00887102858910589,0.00887102858910589,-105.0299117,39.7621179,-105.0300154,39.7621147
-11589,8328,7033,0.192077028988682,0.192077028988682,-105.0300154,39.7621147,-105.0322624,39.7621339
-11590,7033,3414,0.20009224997208,0.20009224997208,-105.0322624,39.7621339,-105.0346033,39.7621393
-11591,3414,7634,0.0490496792565584,0.0490496792565584,-105.0346033,39.7621393,-105.0351771,39.7621341
-11592,7634,5699,0.0501609282125079,0.0501609282125079,-105.0351771,39.7621341,-105.0357639,39.7621288
-11593,5699,8329,0.0491062363102631,0.0491062363102631,-105.0357639,39.7621288,-105.0363384,39.7621278
-11594,8329,7426,0.0512345906571307,0.0512345906571307,-105.0363384,39.7621278,-105.0369378,39.7621268
-11595,7426,7167,0.100906650593457,0.100906650593457,-105.0369378,39.7621268,-105.0381183,39.7621212
-11596,7167,8330,0.0074706340310152,0.0074706340310152,-105.0381183,39.7621212,-105.0382057,39.7621211
-11601,1125,8333,0.0515421912286004,0.0515421912286004,-105.0404588,39.7621199,-105.0410618,39.76212
-11602,8333,7499,0.0491232128122514,0.0491232128122514,-105.0410618,39.76212,-105.0416365,39.7621201
-11603,7499,6382,0.0528674106807856,0.0528674106807856,-105.0416365,39.7621201,-105.042255,39.7621184
-11604,6382,3844,0.0491757077428548,0.0491757077428548,-105.042255,39.7621184,-105.0428303,39.7621153
-11605,3844,8336,0.0505763419832581,0.0505763419832581,-105.0428303,39.7621153,-105.043422,39.7621158
-11606,8336,5560,0.0511234189065501,0.0511234189065501,-105.043422,39.7621158,-105.0440201,39.7621151
-11607,5560,7536,0.078259792036463,0.078259792036463,-105.0440201,39.7621151,-105.0449356,39.7621062
-17795,10178,10179,0.00714983889336217,0.00714983889336217,-104.9873945,39.7556199,-104.9873946,39.7555556
-11608,7536,8337,0.710353127144862,0.710353127144862,-105.0449356,39.7621062,-105.0532461,39.7620897
-11615,8339,8340,0.0545607270452329,0.0545607270452329,-105.0252854,39.7572536,-105.0259235,39.7572649
-11616,8340,6778,0.0500886204125654,0.0500886204125654,-105.0259235,39.7572649,-105.0265093,39.7572752
-11617,6778,1543,0.044749974690185,0.044749974690185,-105.0265093,39.7572752,-105.0270328,39.7572752
-11618,1543,7913,0.0484257128218018,0.0484257128218018,-105.0270328,39.7572752,-105.0275993,39.7572752
-11619,7913,1232,0.0498960080732329,0.0498960080732329,-105.0275993,39.7572752,-105.028183,39.7572752
-11620,1232,6138,0.0513577550981739,0.0513577550981739,-105.028183,39.7572752,-105.0287838,39.7572752
-11621,6138,1234,0.0484184731965446,0.0484184731965446,-105.0287838,39.7572752,-105.0293502,39.757272
-11622,1234,4025,0.049897443897038,0.049897443897038,-105.0293502,39.757272,-105.0299339,39.7572686
-11624,8341,6746,0.131938356933677,0.131938356933677,-105.0252824,39.7524035,-105.0268257,39.752413
-11625,6746,6146,0.134278510793599,0.134278510793599,-105.0268257,39.752413,-105.0283964,39.7524064
-11626,6146,4020,0.131808341418281,0.131808341418281,-105.0283964,39.7524064,-105.029938,39.752386
-11627,4020,7024,0.13680573147125,0.13680573147125,-105.029938,39.752386,-105.0315379,39.752413
-11628,7024,7394,0.133543322276702,0.133543322276702,-105.0315379,39.752413,-105.0331,39.7524064
-11629,7394,3403,0.129241253411212,0.129241253411212,-105.0331,39.7524064,-105.0346118,39.7524067
-11631,4656,1278,0.11609492718799,0.11609492718799,-105.0191525,39.7524262,-105.0205102,39.7524035
-11633,4529,8342,0.13081541679387,0.13081541679387,-105.0220809,39.7524035,-105.0236111,39.7524085
-11634,8342,8343,0.131875462531589,0.131875462531589,-105.0236111,39.7524085,-105.0251537,39.7524035
-11636,1275,4561,0.135792686790169,0.135792686790169,-105.0204903,39.7500187,-105.0220781,39.7499857
-11637,4561,8344,0.129597362082905,0.129597362082905,-105.0220781,39.7499857,-105.0235939,39.7499999
-11638,8344,8345,0.132615292246902,0.132615292246902,-105.0235939,39.7499999,-105.0251451,39.7499949
-11654,8351,8352,0.00642310935412446,0.00642310935412446,-105.024297,39.7598572,-105.024257,39.7599061
-11656,8354,3585,0.00948998635035479,0.00948998635035479,-105.0236698,39.7606212,-105.0236106,39.7606934
-11658,8355,7036,0.189514043057238,0.189514043057238,-105.0300476,39.7643693,-105.0322644,39.7643359
-11661,3420,7662,0.0473953664812579,0.0473953664812579,-105.0346118,39.7639669,-105.0351663,39.7639675
-11662,7662,5701,0.051310070537927,0.051310070537927,-105.0351663,39.7639675,-105.0357666,39.7639681
-11663,5701,8356,0.0493288418218244,0.0493288418218244,-105.0357666,39.7639681,-105.0363437,39.7639643
-11664,8356,7428,0.0514646959507586,0.0514646959507586,-105.0363437,39.7639643,-105.0369458,39.7639617
-11665,7428,7170,0.101185693406291,0.101185693406291,-105.0369458,39.7639617,-105.0381296,39.7639566
-11666,7170,8357,0.0511732963069457,0.0511732963069457,-105.0381296,39.7639566,-105.0387283,39.763957
-11667,8357,7785,0.0488740378204359,0.0488740378204359,-105.0387283,39.763957,-105.0393001,39.7639573
-11669,8358,8359,0.0429199500385996,0.0429199500385996,-105.039401,39.7639563,-105.0399031,39.7639514
-11670,8359,1126,0.0542934514543922,0.0542934514543922,-105.0399031,39.7639514,-105.0405383,39.7639496
-11671,1126,8361,0.0465752610792189,0.0465752610792189,-105.0405383,39.7639496,-105.0410832,39.7639477
-11672,8361,7500,0.0458657856618734,0.0458657856618734,-105.0410832,39.7639477,-105.0416198,39.7639459
-11673,7500,6383,0.0540969092476656,0.0540969092476656,-105.0416198,39.7639459,-105.0422527,39.763944
-11674,6383,3845,0.0488658545954006,0.0488658545954006,-105.0422527,39.763944,-105.0428244,39.7639423
-11675,3845,8362,0.0512974137325796,0.0512974137325796,-105.0428244,39.7639423,-105.0434239,39.7639208
-11676,8362,5562,0.0492074321979192,0.0492074321979192,-105.0434239,39.7639208,-105.0439996,39.7639213
-11677,5562,8363,0.0405073414501016,0.0405073414501016,-105.0439996,39.7639213,-105.0444735,39.7639185
-11678,8363,7537,0.0387636388049137,0.0387636388049137,-105.0444735,39.7639185,-105.044927,39.7639158
-11679,7537,8364,0.709659016245144,0.709659016245144,-105.044927,39.7639158,-105.0532296,39.7639
-11680,533,532,0.177767664549368,0.177767664549368,-105.0123604,39.7549991,-105.010541,39.7542249
-11681,532,8365,0.019932032746647,0.019932032746647,-105.010541,39.7542249,-105.0103456,39.7541271
-11683,8366,2195,0.0764354088651933,0.0764354088651933,-105.0020448,39.7527599,-105.0025939,39.7533024
-11712,3383,8367,0.106809468593159,0.106809468593159,-105.0346003,39.7427332,-105.035848,39.7426857
-11713,8367,8368,0.0971987897456675,0.0971987897456675,-105.035848,39.7426857,-105.0369827,39.7427391
-11714,8368,8369,0.0991386674985246,0.0991386674985246,-105.0369827,39.7427391,-105.0381422,39.7427432
-11717,5295,6973,0.135215470337054,0.135215470337054,-105.0357845,39.7439376,-105.035775,39.7451536
-11718,6973,8371,0.00923487504976077,0.00923487504976077,-105.035775,39.7451536,-105.0357615,39.745236
-11719,8371,8372,0.0216052571390285,0.0216052571390285,-105.0357615,39.745236,-105.0357622,39.7454303
-11720,8372,16,0.105179593848414,0.105179593848414,-105.0357622,39.7454303,-105.0357652,39.7463762
-11721,16,6385,0.131720726068438,0.131720726068438,-105.0357652,39.7463762,-105.0357845,39.7475607
-11722,6385,8373,0.136425162652677,0.136425162652677,-105.0357845,39.7475607,-105.0357825,39.7487876
-11723,8373,8374,0.133357418298716,0.133357418298716,-105.0357825,39.7487876,-105.0357895,39.7499869
-11725,8375,5538,0.102551146645578,0.102551146645578,-105.0357821,39.7511876,-105.0357963,39.7521098
-11726,5538,2406,0.101276420369131,0.101276420369131,-105.0357963,39.7521098,-105.0357948,39.7530206
-11727,2406,4291,0.0994536245434588,0.0994536245434588,-105.0357948,39.7530206,-105.0357997,39.753915
-11728,4291,8376,0.0498495835403536,0.0498495835403536,-105.0357997,39.753915,-105.0358032,39.7543633
-11729,8376,8377,0.0555205772000376,0.0555205772000376,-105.0358032,39.7543633,-105.035807,39.7548626
-11730,8377,7717,0.202770146499174,0.202770146499174,-105.035807,39.7548626,-105.035838,39.756686
-11731,7717,2980,0.203558742671124,0.203558742671124,-105.035838,39.756686,-105.0358208,39.7585166
-11733,6381,7626,0.0677965571067337,0.0677965571067337,-105.0334738,39.7475695,-105.0334588,39.7481791
-11734,7626,8378,0.0657902652889389,0.0657902652889389,-105.0334588,39.7481791,-105.0334703,39.7487707
-11736,3813,8379,0.0683672879873519,0.0683672879873519,-105.0403593,39.7474155,-105.0410701,39.7476972
-11737,8379,7491,0.0530440410997852,0.0530440410997852,-105.0410701,39.7476972,-105.0416725,39.7478114
-11738,7491,3832,0.0868122883126915,0.0868122883126915,-105.0416725,39.7478114,-105.042608,39.748115
-11740,8129,8380,0.134532326319759,0.134532326319759,-104.9721336,39.7482271,-104.9721157,39.7494369
-11741,8380,8382,0.00458704251135175,0.00458704251135175,-104.9721157,39.7494369,-104.972113,39.7494781
-11743,8383,8384,0.136207849444979,0.136207849444979,-104.9721125,39.7495132,-104.9721264,39.7507381
-11744,8384,7838,0.138328826392976,0.138328826392976,-104.9721264,39.7507381,-104.9720959,39.7519819
-11746,8385,8386,0.0871147692827014,0.0871147692827014,-105.0124198,39.7414644,-105.0115357,39.7418538
-11749,8389,8390,0.0947169874364547,0.0947169874364547,-105.0124419,39.7396939,-105.0116345,39.7402771
-19614,10514,10587,0.0689139357560502,0.0689139357560502,-104.9902714,39.7087938,-104.9910769,39.7088041
-11751,8391,4386,0.0534420102551264,0.0534420102551264,-104.982081,39.7523183,-104.9825253,39.7526564
-11752,4386,8392,0.0520924012173649,0.0520924012173649,-104.9825253,39.7526564,-104.9829471,39.7529945
-11753,8392,8393,0.0473152332925311,0.0473152332925311,-104.9829471,39.7529945,-104.9833461,39.7532894
-11754,8393,8394,0.00593400942031918,0.00593400942031918,-104.9833461,39.7532894,-104.9833985,39.7533244
-11755,8394,8395,0.0526072167549377,0.0526072167549377,-104.9833985,39.7533244,-104.9838316,39.7536605
-11756,8395,8396,0.0535245842073366,0.0535245842073366,-104.9838316,39.7536605,-104.9842635,39.754009
-11757,8396,8397,0.0520127953812383,0.0520127953812383,-104.9842635,39.754009,-104.98469,39.7543426
-11758,8397,8398,0.0525440381176666,0.0525440381176666,-104.98469,39.7543426,-104.9851174,39.7546822
-11759,8398,8399,0.105725944401461,0.105725944401461,-104.9851174,39.7546822,-104.9860118,39.7553389
-11760,8399,8400,0.0963534079842441,0.0963534079842441,-104.9860118,39.7553389,-104.9868117,39.7559494
-11761,8400,8401,0.00721402202643277,0.00721402202643277,-104.9868117,39.7559494,-104.9868716,39.7559951
-11762,8401,8402,0.0642819932248178,0.0642819932248178,-104.9868716,39.7559951,-104.9873999,39.7564065
-11763,8402,6180,0.0440229088580127,0.0440229088580127,-104.9873999,39.7564065,-104.9877579,39.7566911
-11764,6180,3304,0.105719811244021,0.105719811244021,-104.9877579,39.7566911,-104.9886307,39.7573647
-11765,3304,8404,0.104473728049028,0.104473728049028,-104.9886307,39.7573647,-104.9894933,39.7580303
-11776,2683,5360,0.148134497863423,0.148134497863423,-104.9790985,39.751919,-104.9803323,39.7509836
-11779,8408,8409,0.0170504242210171,0.0170504242210171,-105.0080042,39.7473225,-105.0082031,39.7473337
-11780,8409,8410,0.0301331300599118,0.0301331300599118,-105.0082031,39.7473337,-105.0080216,39.7471014
-11781,8410,8408,0.024630163522097,0.024630163522097,-105.0080216,39.7471014,-105.0080042,39.7473225
-11786,8411,7068,0.119279864672347,0.119279864672347,-104.9738611,39.7586965,-104.9748473,39.7579376
-11787,7068,5513,0.148575970390717,0.148575970390717,-104.9748473,39.7579376,-104.97606,39.7569804
-11788,5513,4445,0.14563348668729,0.14563348668729,-104.97606,39.7569804,-104.9772635,39.7560534
-11795,8413,543,0.028789081158834,0.028789081158834,-105.0218658,39.7405653,-105.0222025,39.7405643
-11800,8038,2689,0.14574049201504,0.14574049201504,-104.9805458,39.7548634,-104.9817462,39.7539327
-11801,2689,8392,0.146364813323007,0.146364813323007,-104.9817462,39.7539327,-104.9829471,39.7529945
-11810,8316,8410,0.0688632882143238,0.0688632882143238,-105.007603,39.7465723,-105.0080216,39.7471014
-11818,8318,8421,0.163109524565458,0.163109524565458,-105.0111676,39.7439691,-105.0127281,39.7431253
-11820,2202,8422,0.0636527332062032,0.0636527332062032,-105.0128922,39.7400809,-105.0135792,39.7398604
-11827,8425,8426,0.235001983383898,0.235001983383898,-104.9895725,39.7854572,-104.9895595,39.7833438
-11829,8427,2187,0.0976945121262096,0.0976945121262096,-105.0148298,39.7369044,-105.0159723,39.7369102
-11830,2187,8428,0.113051166751879,0.113051166751879,-105.0159723,39.7369102,-105.0172942,39.7368917
-11832,8429,8427,0.106790392513668,0.106790392513668,-105.0135809,39.7369043,-105.0148298,39.7369044
-11836,8432,8433,0.316135432263608,0.316135432263608,-105.0153422,39.7339918,-105.0141326,39.7366784
-11838,8434,8435,0.0739062863270344,0.0739062863270344,-105.0143556,39.741604,-105.0147581,39.7421922
-16014,9785,9166,0.0737839272607517,0.0737839272607517,-104.9929555,39.6960192,-104.9928292,39.6966756
-11840,8436,8437,0.305296163280187,0.305296163280187,-105.014551,39.7415365,-105.0140684,39.7388161
-11842,8438,8439,0.0899401823641934,0.0899401823641934,-105.0171026,39.7442035,-105.0164414,39.7435744
-11843,8439,8440,0.0855827793815302,0.0855827793815302,-105.0164414,39.7435744,-105.0158022,39.7429821
-11845,8441,533,0.0890672230330435,0.0890672230330435,-105.0132989,39.755347,-105.0123604,39.7549991
-11847,8325,3752,0.00830034500152871,0.00830034500152871,-105.0288943,39.7621125,-105.0288682,39.7620406
-11848,3752,8442,0.100105658665385,0.100105658665385,-105.0288682,39.7620406,-105.0279677,39.761465
-11849,8442,6773,0.103872958239997,0.103872958239997,-105.0279677,39.761465,-105.0268646,39.7610731
-11850,6773,8303,0.0295834023794743,0.0295834023794743,-105.0268646,39.7610731,-105.0265595,39.7609475
-11851,8303,8443,0.122024126507826,0.122024126507826,-105.0265595,39.7609475,-105.0254023,39.7603049
-11854,8365,8445,0.12649848699983,0.12649848699983,-105.0103456,39.7541271,-105.0090988,39.7535144
-11856,8445,8446,0.0774789975708123,0.0774789975708123,-105.0090988,39.7535144,-105.0083779,39.7530921
-11858,6522,8447,0.124835406842481,0.124835406842481,-104.982762,39.6978313,-104.9827785,39.6967087
-11860,8447,4244,0.0110439553261759,0.0110439553261759,-104.9827785,39.6967087,-104.9827699,39.6966096
-11861,4244,1787,0.20168643392703,0.20168643392703,-104.9827699,39.6966096,-104.9827622,39.6947958
-11862,1787,7206,0.198352393557477,0.198352393557477,-104.9827622,39.6947958,-104.9827747,39.693012
-11863,7206,5819,0.204146640542909,0.204146640542909,-104.9827747,39.693012,-104.9827894,39.6911761
-11864,5819,7724,0.196992932786583,0.196992932786583,-104.9827894,39.6911761,-104.9827896,39.6894045
-11865,7724,8448,0.0469826616672844,0.0469826616672844,-104.9827896,39.6894045,-104.9827836,39.688982
-11866,8448,8449,1.1597652413984,1.1597652413984,-104.9827836,39.688982,-104.9829313,39.6785526
-15932,1178,9158,0.281206093212011,0.281206093212011,-104.9967808,39.7006121,-104.9960034,39.7030693
-11868,529,476,0.196533269115043,0.196533269115043,-105.0102365,39.7542807,-105.0121896,39.7552131
-11869,476,8451,0.00692492598385206,0.00692492598385206,-105.0121896,39.7552131,-105.0122583,39.7552461
-11871,8452,8450,0.118857471050118,0.118857471050118,-105.009013,39.7536728,-105.0101803,39.7542535
-11873,8446,8453,0.0472361723035857,0.0472361723035857,-105.0083779,39.7530921,-105.0079745,39.7528018
-11875,8453,1808,0.0616092600190724,0.0616092600190724,-105.0079745,39.7528018,-105.0075333,39.7523637
-11876,1808,8454,0.103675532542851,0.103675532542851,-105.0075333,39.7523637,-105.0069016,39.7515678
-11878,8455,8452,0.0832501988122618,0.0832501988122618,-105.0082148,39.7532439,-105.009013,39.7536728
-11880,8456,8455,0.0488208935536257,0.0488208935536257,-105.0077942,39.7529469,-105.0082148,39.7532439
-11883,1807,8456,0.0645719953824934,0.0645719953824934,-105.0073479,39.7524784,-105.0077942,39.7529469
-11885,8454,8460,0.0468848260297017,0.0468848260297017,-105.0069016,39.7515678,-105.0065497,39.7512444
-11887,8460,8461,0.191542303309411,0.191542303309411,-105.0065497,39.7512444,-105.0049189,39.7500632
-11888,8461,8462,0.143814933384229,0.143814933384229,-105.0049189,39.7500632,-105.003842,39.7490696
-11926,8479,7578,0.0514183930388008,0.0514183930388008,-104.9903554,39.7419081,-104.9907772,39.7422377
-11889,8462,8312,0.0813843178601785,0.0813843178601785,-105.003842,39.7490696,-105.0033568,39.7484399
-11890,8312,8463,0.108687135880293,0.108687135880293,-105.0033568,39.7484399,-105.0026615,39.7476216
-11891,8463,8464,0.171307568098715,0.171307568098715,-105.0026615,39.7476216,-105.0014282,39.7464074
-11892,8464,7962,0.138415151415673,0.138415151415673,-105.0014282,39.7464074,-105.0007006,39.7452954
-11894,8465,8457,0.0468050869550622,0.0468050869550622,-105.0063608,39.7513896,-105.0067213,39.7517064
-11899,8468,3170,0.018103312819976,0.018103312819976,-105.0008907,39.7479512,-105.0006969,39.7480168
-11901,8469,8466,0.0123424922846296,0.0123424922846296,-105.0019357,39.7486848,-105.0020778,39.7486652
-11902,8466,8311,0.0903233113904637,0.0903233113904637,-105.0020778,39.7486652,-105.0031123,39.7485003
-11904,8470,8469,0.0396717564170432,0.0396717564170432,-105.0014824,39.7487611,-105.0019357,39.7486848
-11906,8296,8273,0.152532135373756,0.152532135373756,-104.9951571,39.7549879,-104.9964185,39.7540177
-11907,8273,5789,0.146346014371488,0.146346014371488,-104.9964185,39.7540177,-104.9976271,39.7530856
-11908,5789,4816,0.144635236179438,0.144635236179438,-104.9976271,39.7530856,-104.9988196,39.7521629
-11909,4816,8471,0.144945711618013,0.144945711618013,-104.9988196,39.7521629,-105.0000116,39.7512359
-11910,8471,8472,0.00337499193971306,0.00337499193971306,-105.0000116,39.7512359,-105.0000361,39.7512121
-13477,9099,9096,0.0859011649600223,0.0859011649600223,-105.0181659,39.7251883,-105.0171656,39.7251183
-11912,8473,8474,0.141151348464777,0.141151348464777,-105.0000669,39.7511877,-105.0012293,39.7502862
-11913,8474,8475,0.13279343346844,0.13279343346844,-105.0012293,39.7502862,-105.0022888,39.7494129
-11915,1346,8475,0.0349627710606267,0.0349627710606267,-105.0024538,39.7491252,-105.0022888,39.7494129
-11919,8313,8477,0.0691895872331652,0.0691895872331652,-105.00375,39.7483181,-105.003633,39.7477024
-11921,4846,8478,0.326789742990523,0.326789742990523,-105.0038505,39.7522849,-105.0065368,39.7543758
-11923,5031,6987,0.0623597305249406,0.0623597305249406,-104.9884893,39.7405273,-104.9890246,39.7409082
-11924,6987,5806,0.105799056021075,0.105799056021075,-104.9890246,39.7409082,-104.989913,39.7415705
-11925,5806,8479,0.0532916983351864,0.0532916983351864,-104.989913,39.7415705,-104.9903554,39.7419081
-11927,7578,8480,0.0539921866859616,0.0539921866859616,-104.9907772,39.7422377,-104.9912213,39.7425829
-11928,8480,8481,0.0438686505947476,0.0438686505947476,-104.9912213,39.7425829,-104.9915821,39.7428634
-11929,8481,5961,0.00656699811047763,0.00656699811047763,-104.9915821,39.7428634,-104.9916357,39.7429057
-11930,5961,8482,0.00665108194893408,0.00665108194893408,-104.9916357,39.7429057,-104.9916907,39.742948
-11931,8482,3003,0.0997303043018087,0.0997303043018087,-104.9916907,39.742948,-104.9925155,39.7435822
-11932,3003,4396,0.10605079021574,0.10605079021574,-104.9925155,39.7435822,-104.993398,39.7442524
-11933,4396,8483,0.102726296828384,0.102726296828384,-104.993398,39.7442524,-104.9942509,39.7449031
-11934,8483,8484,0.00648258609012086,0.00648258609012086,-104.9942509,39.7449031,-104.9943021,39.7449461
-11935,8484,8485,0.100141708737386,0.100141708737386,-104.9943021,39.7449461,-104.995128,39.7455847
-11936,8485,8486,0.0275311475026058,0.0275311475026058,-104.995128,39.7455847,-104.9953533,39.7457616
-11937,8486,8487,0.0265062604992808,0.0265062604992808,-104.9953533,39.7457616,-104.9955701,39.745932
-11938,8487,8488,0.0523458198440316,0.0523458198440316,-104.9955701,39.745932,-104.9959984,39.7462684
-11939,8488,8489,0.104751027795859,0.104751027795859,-104.9959984,39.7462684,-104.9968701,39.7469304
-11940,8489,8490,0.0990693987095691,0.0990693987095691,-104.9968701,39.7469304,-104.9976922,39.7475583
-11941,8490,8491,0.00745857832944624,0.00745857832944624,-104.9976922,39.7475583,-104.9977552,39.7476047
-11942,8491,8492,0.0518088588950486,0.0518088588950486,-104.9977552,39.7476047,-104.998183,39.7479347
-11943,8492,6189,0.054888246037165,0.054888246037165,-104.998183,39.7479347,-104.9986323,39.7482873
-11945,6632,7733,0.112596009055585,0.112596009055585,-104.9757688,39.6903887,-104.9757679,39.6893761
-12071,8507,3552,0.071078699522552,0.071078699522552,-104.9777748,39.7546175,-104.9769434,39.7546258
-11946,7733,8495,2.00712592676004,2.00712592676004,-104.9757679,39.6893761,-104.9758002,39.6713256
-11954,6568,4449,0.147875161573861,0.147875161573861,-104.9802246,39.7564641,-104.9789969,39.757401
-11955,4449,5497,0.144351276811523,0.144351276811523,-104.9789969,39.757401,-104.9777977,39.758315
-11956,5497,7071,0.14871904829256,0.14871904829256,-104.9777977,39.758315,-104.9765951,39.7592815
-11958,8501,8502,0.146058647776188,0.146058647776188,-104.9871043,39.7524564,-104.985916,39.7534002
-11959,8502,8397,0.148207146508282,0.148207146508282,-104.985916,39.7534002,-104.98469,39.7543426
-11960,8397,2694,0.144837053832231,0.144837053832231,-104.98469,39.7543426,-104.9834919,39.7552636
-11966,4737,8503,0.0843423130679838,0.0843423130679838,-104.9696615,39.7607527,-104.9696782,39.7615111
-11967,8399,5455,0.141833750205801,0.141833750205801,-104.9860118,39.7553389,-104.984841,39.7562427
-11968,5455,2697,0.00495891013188563,0.00495891013188563,-104.984841,39.7562427,-104.9847927,39.7562674
-11969,2697,8045,0.148003641728593,0.148003641728593,-104.9847927,39.7562674,-104.9835828,39.7572195
-11970,8045,6573,0.144311748140391,0.144311748140391,-104.9835828,39.7572195,-104.9824151,39.7581568
-11971,6573,4454,0.147824934616054,0.147824934616054,-104.9824151,39.7581568,-104.981171,39.7590802
-11972,4454,5502,0.144725467857806,0.144725467857806,-104.981171,39.7590802,-104.9799824,39.7600071
-11973,5502,7076,0.14772137009526,0.14772137009526,-104.9799824,39.7600071,-104.9787733,39.7609563
-11974,7076,2033,0.146029155751578,0.146029155751578,-104.9787733,39.7609563,-104.9775611,39.7618817
-11975,2033,5322,0.146208700799923,0.146208700799923,-104.9775611,39.7618817,-104.9763558,39.7628147
-11976,5322,631,0.145784380568713,0.145784380568713,-104.9763558,39.7628147,-104.9751714,39.7637581
-11977,631,6404,0.147332884437086,0.147332884437086,-104.9751714,39.7637581,-104.973944,39.7646884
-11978,6404,2910,0.0722929712454625,0.0722929712454625,-104.973944,39.7646884,-104.9733493,39.7651507
-11980,8504,8505,0.0580359403583064,0.0580359403583064,-104.9856564,39.7569396,-104.9861441,39.7573027
-11981,8505,6178,0.0499592014591395,0.0499592014591395,-104.9861441,39.7573027,-104.9865554,39.7576219
-11982,6178,8506,0.0514685264155668,0.0514685264155668,-104.9865554,39.7576219,-104.986978,39.7579516
-11983,8506,8508,0.0359450086839816,0.0359450086839816,-104.986978,39.7579516,-104.9873985,39.757951
-11985,8509,8491,0.145477011516465,0.145477011516465,-104.9989592,39.7466802,-104.9977552,39.7476047
-11986,8491,6711,0.147675146026861,0.147675146026861,-104.9977552,39.7476047,-104.9965276,39.748539
-11987,6711,8510,0.0119577509852376,0.0119577509852376,-104.9965276,39.748539,-104.9964255,39.7486125
-11999,7079,2035,0.146591134901683,0.146591134901683,-104.9800778,39.7619593,-104.978878,39.7629013
-12000,2035,8511,0.144080341921709,0.144080341921709,-104.978878,39.7629013,-104.9776691,39.7638043
-12001,8506,6577,0.292638121021149,0.292638121021149,-104.986978,39.7579516,-104.9845851,39.7598337
-12013,8514,7905,0.14392744613234,0.14392744613234,-105.0068857,39.7602149,-105.0080885,39.7611207
-12014,7905,8224,0.144594704272466,0.144594704272466,-105.0080885,39.7611207,-105.009291,39.7620353
-12015,8224,2513,0.0408485952047996,0.0408485952047996,-105.009291,39.7620353,-105.0096031,39.7623135
-12017,8223,4514,0.129566346086565,0.129566346086565,-105.0064841,39.7620611,-105.0064389,39.7632258
-12018,4514,5236,0.132336483238921,0.132336483238921,-105.0064389,39.7632258,-105.00645,39.7644159
-12019,5236,6888,0.137583446360535,0.137583446360535,-105.00645,39.7644159,-105.0064586,39.7656532
-12020,6888,8515,0.134749292102011,0.134749292102011,-105.0064586,39.7656532,-105.0064696,39.766865
-18562,2839,2837,0.0398814314105002,0.0398814314105002,-105.0301265,39.7802941,-105.0296598,39.7802952
-12021,8515,1670,0.131131933535458,0.131131933535458,-105.0064696,39.766865,-105.0064415,39.7680441
-12022,1670,8516,0.137025514768393,0.137025514768393,-105.0064415,39.7680441,-105.006441,39.7692764
-12023,8516,2451,0.140387467109701,0.140387467109701,-105.006441,39.7692764,-105.0064532,39.7705389
-12024,2451,3220,0.132796169496021,0.132796169496021,-105.0064532,39.7705389,-105.0064274,39.771733
-12025,3220,3241,0.0110949892633217,0.0110949892633217,-105.0064274,39.771733,-105.0064102,39.7718319
-12026,3241,5742,0.122723226676881,0.122723226676881,-105.0064102,39.7718319,-105.0064961,39.7729336
-12027,5742,5734,0.0121046279679281,0.0121046279679281,-105.0064961,39.7729336,-105.0064617,39.7730392
-12028,5734,5519,0.122276751203955,0.122276751203955,-105.0064617,39.7730392,-105.0064768,39.7741388
-12029,5519,5518,0.0183360434030607,0.0183360434030607,-105.0064768,39.7741388,-105.0064768,39.7743037
-12030,5518,6453,0.115919443239594,0.115919443239594,-105.0064768,39.7743037,-105.006451,39.775346
-12031,6453,8519,0.0186206290164017,0.0186206290164017,-105.006451,39.775346,-105.0064452,39.7755134
-12032,8519,6921,0.113511395757215,0.113511395757215,-105.0064452,39.7755134,-105.0064346,39.7765342
-12033,6921,6966,0.278590640144845,0.278590640144845,-105.0064346,39.7765342,-105.0064198,39.7790396
-12034,6966,2480,0.0421290693071181,0.0421290693071181,-105.0064198,39.7790396,-105.0064445,39.779418
-12035,2480,2819,0.0832464241503531,0.0832464241503531,-105.0064445,39.779418,-105.0064329,39.7801666
-12036,2819,1420,0.203808019181798,0.203808019181798,-105.0064329,39.7801666,-105.0063986,39.7819993
-12037,1420,1350,0.0610460440330561,0.0610460440330561,-105.0063986,39.7819993,-105.0063979,39.7825483
-12038,1350,386,0.0313326355302306,0.0313326355302306,-105.0063979,39.7825483,-105.0063891,39.78283
-12039,386,8520,0.00828931624769023,0.00828931624769023,-105.0063891,39.78283,-105.006397,39.7829043
-12041,8521,8522,0.0528158272532374,0.0528158272532374,-105.0043742,39.7505911,-105.0048268,39.7502678
-12042,8522,8461,0.0240744692191342,0.0240744692191342,-105.0048268,39.7502678,-105.0049189,39.7500632
-12045,8524,8525,0.099226587437181,0.099226587437181,-105.0053655,39.751233,-105.0047107,39.7504962
-12056,6652,7968,0.116416731661103,0.116416731661103,-104.9999567,39.7402253,-104.9994613,39.7412005
-13645,9155,9152,0.125537210877253,0.125537210877253,-104.9962707,39.706856,-104.9968785,39.7078836
-12069,3016,8123,0.0144820950034519,0.0144820950034519,-104.9783073,39.7546124,-104.9781379,39.7546138
-12070,8123,8507,0.0310425416681892,0.0310425416681892,-104.9781379,39.7546138,-104.9777748,39.7546175
-12072,3552,4443,0.0963694960086714,0.0963694960086714,-104.9769434,39.7546258,-104.9763376,39.7553567
-12074,8536,8537,0.125429093404429,0.125429093404429,-104.987378,39.7529333,-104.9863465,39.7537355
-12075,8537,8398,0.148732331324902,0.148732331324902,-104.9863465,39.7537355,-104.9851174,39.7546822
-12076,8398,2695,0.143717697009194,0.143717697009194,-104.9851174,39.7546822,-104.9839243,39.7555928
-12078,8043,6571,0.143486226041694,0.143486226041694,-104.9827245,39.7565663,-104.981529,39.7574721
-15271,8458,8538,0.130887342573391,0.130887342573391,-104.9284834,39.705337,-104.9283761,39.7065112
-12079,6571,4452,0.149648787475973,0.149648787475973,-104.981529,39.7574721,-104.9802783,39.7584138
-12080,4452,5500,0.142780903948531,0.142780903948531,-104.9802783,39.7584138,-104.9791156,39.7593357
-12081,5500,7074,0.148102852377504,0.148102852377504,-104.9791156,39.7593357,-104.9778937,39.76028
-12082,7074,2032,0.145681586591459,0.145681586591459,-104.9778937,39.76028,-104.9767057,39.7612194
-12086,2886,7993,0.218441304114497,0.218441304114497,-104.9722001,39.7469535,-104.9747549,39.746928
-12088,8130,8541,0.134523622254369,0.134523622254369,-104.9708826,39.7482126,-104.9708826,39.7494224
-12089,8541,8542,0.00481474032387871,0.00481474032387871,-104.9708826,39.7494224,-104.9708826,39.7494657
-12090,8542,8543,0.00504824966940074,0.00504824966940074,-104.9708826,39.7494657,-104.9708826,39.7495111
-12091,8543,8544,0.135980275793844,0.135980275793844,-104.9708826,39.7495111,-104.9708826,39.750734
-12092,8544,7839,0.139416199289129,0.139416199289129,-104.9708826,39.750734,-104.9708825,39.7519878
-12093,7839,819,0.136947671655105,0.136947671655105,-104.9708825,39.7519878,-104.9708825,39.7532194
-12094,819,3560,0.140872852825874,0.140872852825874,-104.9708825,39.7532194,-104.9708824,39.7544863
-12095,3560,5634,0.139405079534224,0.139405079534224,-104.9708824,39.7544863,-104.9708824,39.75574
-12096,5634,4338,0.141217557097108,0.141217557097108,-104.9708824,39.75574,-104.9708823,39.75701
-12097,4338,6337,0.135602213042785,0.135602213042785,-104.9708823,39.75701,-104.9708823,39.7582295
-12098,6337,3053,0.134723773393479,0.134723773393479,-104.9708823,39.7582295,-104.9708822,39.7594411
-12100,3691,8545,0.139072808044494,0.139072808044494,-104.970874,39.7469218,-104.9696681,39.7460824
-12101,5485,8546,0.200596752868582,0.200596752868582,-104.9541539,39.7383732,-104.9541798,39.7401771
-12103,4888,8547,0.185876236918155,0.185876236918155,-104.9539764,39.7351225,-104.9539498,39.736794
-12104,8547,5486,0.175599681021845,0.175599681021845,-104.9539498,39.736794,-104.9539554,39.7383732
-12106,4889,8548,0.187588829795577,0.187588829795577,-104.9528338,39.7351142,-104.952774,39.7368006
-12107,8548,5487,0.174192187356096,0.174192187356096,-104.952774,39.7368006,-104.952802,39.738367
-12109,8549,8550,0.0264199145705686,0.0264199145705686,-104.9647731,39.7365894,-104.9647731,39.736827
-12110,8550,5477,0.172910339815493,0.172910339815493,-104.9647731,39.736827,-104.964716,39.7383814
-12111,5477,8551,0.17777655236626,0.17777655236626,-104.964716,39.7383814,-104.9647671,39.7399797
-12112,8551,8552,0.179401923989104,0.179401923989104,-104.9647671,39.7399797,-104.9647683,39.7415931
-12114,672,8553,0.00419226671708486,0.00419226671708486,-104.9647688,39.7416171,-104.9647683,39.7416548
-12116,8554,4600,0.174009465824247,0.174009465824247,-104.9647611,39.7432314,-104.9647661,39.7447963
-12117,4600,6497,0.141315269300352,0.141315269300352,-104.9647661,39.7447963,-104.9647477,39.7460671
-12118,6497,3685,0.0979207012351752,0.0979207012351752,-104.9647477,39.7460671,-104.9647396,39.7469477
-12119,3685,8132,0.140340825489325,0.140340825489325,-104.9647396,39.7469477,-104.9647477,39.7482098
-12120,8132,8555,0.134412189177842,0.134412189177842,-104.9647477,39.7482098,-104.9647128,39.7494183
-12121,8555,8556,0.00412533177852682,0.00412533177852682,-104.9647128,39.7494183,-104.9647128,39.7494554
-12122,8556,8557,0.00459814794721775,0.00459814794721775,-104.9647128,39.7494554,-104.9647155,39.7494967
-12123,8557,8558,0.132902025218854,0.132902025218854,-104.9647155,39.7494967,-104.9647073,39.7506919
-12124,8558,7841,0.138710880861165,0.138710880861165,-104.9647073,39.7506919,-104.9647228,39.7519393
-12125,7841,825,0.140880437202465,0.140880437202465,-104.9647228,39.7519393,-104.9647057,39.7532062
-12126,825,3566,0.136859579672601,0.136859579672601,-104.9647057,39.7532062,-104.9647415,39.7544367
-12127,3566,5637,0.14457832436944,0.14457832436944,-104.9647415,39.7544367,-104.9647101,39.7557367
-12128,5637,4341,0.139173250387063,0.139173250387063,-104.9647101,39.7557367,-104.9647021,39.7569883
-12129,4341,6340,0.137021300435373,0.137021300435373,-104.9647021,39.7569883,-104.964686,39.7582205
-12130,6340,8560,0.107881318168938,0.107881318168938,-104.964686,39.7582205,-104.9646861,39.7591907
-12131,2245,4879,0.176153654685445,0.176153654685445,-104.9644966,39.7334712,-104.9646143,39.7350528
-12132,4879,7358,0.24873496630677,0.24873496630677,-104.9646143,39.7350528,-104.9672193,39.7360482
-12133,7358,6786,0.0656034947664249,0.0656034947664249,-104.9672193,39.7360482,-104.9677841,39.7356489
-12134,6786,4878,0.0544981388589161,0.0544981388589161,-104.9677841,39.7356489,-104.9679617,39.7351782
-12135,4878,5942,0.524256212186461,0.524256212186461,-104.9679617,39.7351782,-104.96779,39.7304653
-12136,5942,8561,0.0631406553785623,0.0631406553785623,-104.96779,39.7304653,-104.9673609,39.7300032
-12137,8561,3127,0.0936118840285326,0.0936118840285326,-104.9673609,39.7300032,-104.9663652,39.7296534
-12138,3127,3131,0.0777309112767711,0.0777309112767711,-104.9663652,39.7296534,-104.9654579,39.7296956
-12139,3131,5914,0.112365280295693,0.112365280295693,-104.9654579,39.7296956,-104.9646486,39.7304917
-12140,5914,2245,0.331560162235425,0.331560162235425,-104.9646486,39.7304917,-104.9644966,39.7334712
-12142,8562,2334,2.72525423343991,2.72525423343991,-104.8920171,39.7258127,-104.9238826,39.7256356
-12144,7677,5980,0.0954252288299854,0.0954252288299854,-104.924985,39.7256294,-104.9261008,39.7256273
-12145,5980,2129,0.0933556137052187,0.0933556137052187,-104.9261008,39.7256273,-104.9271924,39.7256294
-12146,2129,7520,0.0952025856529876,0.0952025856529876,-104.9271924,39.7256294,-104.9283056,39.7256294
-12147,7520,8563,0.0935887718802941,0.0935887718802941,-104.9283056,39.7256294,-104.9293999,39.7256232
-12148,8563,2270,0.0947410402071955,0.0947410402071955,-104.9293999,39.7256232,-104.9305077,39.7256212
-12149,2270,7011,0.0942715716828769,0.0942715716828769,-104.9305077,39.7256212,-104.93161,39.725617
-12150,7011,2766,0.0940480616870089,0.0940480616870089,-104.93161,39.725617,-104.9327097,39.725617
-12151,2766,3353,0.0940568781185638,0.0940568781185638,-104.9327097,39.725617,-104.9338095,39.725615
-12152,3353,2010,0.0938087738322925,0.0938087738322925,-104.9338095,39.725615,-104.9349064,39.7256134
-12153,2010,2020,0.00116816859457691,0.00116816859457691,-104.9349064,39.7256134,-104.9349199,39.725615
-12154,2020,7597,0.0929046375775443,0.0929046375775443,-104.9349199,39.725615,-104.9360062,39.7256088
-12155,7597,7260,0.0977180089067193,0.0977180089067193,-104.9360062,39.7256088,-104.9371488,39.7256129
-12156,7260,7607,0.0981798145414121,0.0981798145414121,-104.9371488,39.7256129,-104.9382968,39.725617
-12157,7607,8148,0.0984109366674247,0.0984109366674247,-104.9382968,39.725617,-104.9394475,39.7256125
-12158,8148,8566,0.099556755200234,0.099556755200234,-104.9394475,39.7256125,-104.9406116,39.7256083
-12159,8566,8567,0.0161715318927219,0.0161715318927219,-104.9406116,39.7256083,-104.940796,39.7255761
-12165,7560,8570,0.0547324150634264,0.0547324150634264,-104.9970625,39.7508224,-104.9966174,39.7504686
-12166,8570,6187,0.0510334947129921,0.0510334947129921,-104.9966174,39.7504686,-104.9961984,39.7501417
-12167,6187,8571,0.106459447476842,0.106459447476842,-104.9961984,39.7501417,-104.9953197,39.7494633
-12168,8571,8572,0.00500250155273319,0.00500250155273319,-104.9953197,39.7494633,-104.9952739,39.7494353
-12169,8572,8573,0.102179560181125,0.102179560181125,-104.9952739,39.7494353,-104.9944322,39.7487829
-12171,8574,8575,0.108491319350075,0.108491319350075,-104.9936089,39.7481594,-104.9927205,39.7474627
-12172,8575,8576,0.100542104447219,0.100542104447219,-104.9927205,39.7474627,-104.9918796,39.7468306
-12173,8576,8577,0.00648974428476286,0.00648974428476286,-104.9918796,39.7468306,-104.9918273,39.7467883
-12174,8577,4394,0.10502201579173,0.10502201579173,-104.9918273,39.7467883,-104.9909615,39.7461183
-12175,4394,3006,0.104610459063575,0.104610459063575,-104.9909615,39.7461183,-104.9900832,39.7454633
-12176,3006,5958,0.107806604319072,0.107806604319072,-104.9900832,39.7454633,-104.9891839,39.7447837
-12177,5958,8578,0.00423483079275732,0.00423483079275732,-104.9891839,39.7447837,-104.9891482,39.7447573
-12178,8578,7577,0.0996748095395635,0.0996748095395635,-104.9891482,39.7447573,-104.9883537,39.7441013
-12179,7577,5809,0.11590556985698,0.11590556985698,-104.9883537,39.7441013,-104.9873953,39.7433641
-12181,5431,4429,0.103577041627779,0.103577041627779,-105.0250764,39.7166076,-105.0250933,39.717539
-12182,4429,4040,0.0675516196999984,0.0675516196999984,-105.0250933,39.717539,-105.0250969,39.7181465
-12183,4040,8579,0.0337698992215471,0.0337698992215471,-105.0250969,39.7181465,-105.0250969,39.7184502
-12184,8579,6027,0.102046173899402,0.102046173899402,-105.0250969,39.7184502,-105.0251054,39.7193679
-12185,6027,7864,0.042576537412,0.042576537412,-105.0251054,39.7193679,-105.0251054,39.7197508
-12186,7864,7863,0.0569874056816302,0.0569874056816302,-105.0251054,39.7197508,-105.0251051,39.7202633
-12187,7863,1834,0.10010879574602,0.10010879574602,-105.0251051,39.7202633,-105.0251054,39.7211636
-12188,1834,1828,0.0220165954761323,0.0220165954761323,-105.0251054,39.7211636,-105.0251054,39.7213616
-12189,1828,2629,0.0778176858176647,0.0778176858176647,-105.0251054,39.7213616,-105.025114,39.7220614
-12190,2629,5364,0.0924919399829741,0.0924919399829741,-105.025114,39.7220614,-105.025114,39.7228932
-12191,5364,8580,0.0666180932686517,0.0666180932686517,-105.025114,39.7228932,-105.0251093,39.7234923
-12192,8580,514,0.0427668694783733,0.0427668694783733,-105.0251093,39.7234923,-105.0251054,39.7238769
-12193,514,8581,0.0733005757458476,0.0733005757458476,-105.0251054,39.7238769,-105.0251096,39.7245361
-12194,8581,411,0.0548642593724076,0.0548642593724076,-105.0251096,39.7245361,-105.0251128,39.7250295
-12195,411,8582,0.0193916055385274,0.0193916055385274,-105.0251128,39.7250295,-105.0251054,39.7252038
-12200,8463,8583,0.030501567860775,0.030501567860775,-105.0026615,39.7476216,-105.0023143,39.7476847
-12202,8584,8585,0.0144536004398608,0.0144536004398608,-105.0010239,39.7420661,-105.0010329,39.7419363
-12203,8585,8586,0.0148984012969261,0.0148984012969261,-105.0010329,39.7419363,-105.0012044,39.74196
-12204,8586,8587,0.0138457363467684,0.0138457363467684,-105.0012044,39.74196,-105.0011631,39.7420804
-12206,7095,8584,0.00198726095451303,0.00198726095451303,-105.0010418,39.7420775,-105.0010239,39.7420661
-12208,8587,8588,0.0738864008587524,0.0738864008587524,-105.0011631,39.7420804,-105.0015962,39.7426554
-12209,8588,8088,0.0459979828668163,0.0459979828668163,-105.0015962,39.7426554,-105.0018979,39.7429979
-12211,8588,8088,0.0459979828668163,0.0459979828668163,-105.0015962,39.7426554,-105.0018979,39.7429979
-12213,7962,8589,0.0119871256203592,0.0119871256203592,-105.0007006,39.7452954,-105.000578,39.7453477
-12219,2290,8595,0.0472264457525012,0.0472264457525012,-105.0033485,39.7409586,-105.002885,39.7411896
-12224,8600,6960,0.0627185145557708,0.0627185145557708,-105.0080176,39.741951,-105.0073809,39.7422311
-12225,6960,8590,0.111002569075664,0.111002569075664,-105.0073809,39.7422311,-105.0062495,39.7427207
-12226,8590,8601,0.0399166681864525,0.0399166681864525,-105.0062495,39.7427207,-105.0058461,39.7429014
-12227,8601,8602,0.0122006420704012,0.0122006420704012,-105.0058461,39.7429014,-105.0057227,39.7429565
-12229,8602,8601,0.0122006420704012,0.0122006420704012,-105.0057227,39.7429565,-105.0058461,39.7429014
-12231,8605,8606,0.0364944571667735,0.0364944571667735,-105.0003759,39.7410885,-105.0005878,39.7413734
-12232,8606,8607,0.0128764646733806,0.0128764646733806,-105.0005878,39.7413734,-105.0006617,39.7414743
-12233,8607,8608,0.0546695374625623,0.0546695374625623,-105.0006617,39.7414743,-105.0009845,39.7418987
-12234,8608,8585,0.00588263593176519,0.00588263593176519,-105.0009845,39.7418987,-105.0010329,39.7419363
-12238,6350,8610,0.0529261007223787,0.0529261007223787,-105.0044986,39.7547701,-105.0048452,39.7551645
-12276,2459,8630,0.034376801437,0.034376801437,-105.0078361,39.7532748,-105.0075545,39.7534955
-12278,8630,8631,0.0429012342669158,0.0429012342669158,-105.0075545,39.7534955,-105.0072049,39.7537723
-12279,8631,8478,0.0881202047420162,0.0881202047420162,-105.0072049,39.7537723,-105.0065368,39.7543758
-12280,8478,6349,0.0631900183412494,0.0631900183412494,-105.0065368,39.7543758,-105.0059317,39.7547022
-12281,6349,8610,0.106156240617891,0.106156240617891,-105.0059317,39.7547022,-105.0048452,39.7551645
-12282,8610,8633,0.00782193502715287,0.00782193502715287,-105.0048452,39.7551645,-105.0047762,39.7552107
-12283,8633,8235,0.439089917447406,0.439089917447406,-105.0047762,39.7552107,-105.002653,39.7588064
-13838,2963,1284,0.0976236721102847,0.0976236721102847,-105.0214955,39.7584475,-105.0205218,39.7579887
-12291,8488,6708,0.146276219075305,0.146276219075305,-104.9959984,39.7462684,-104.9947886,39.7471986
-12292,6708,8574,0.146922373978856,0.146922373978856,-104.9947886,39.7471986,-104.9936089,39.7481594
-12293,8574,5780,0.145168342719135,0.145168342719135,-104.9936089,39.7481594,-104.9924092,39.7490833
-12294,5780,8284,0.145457218481639,0.145457218481639,-104.9924092,39.7490833,-104.9912016,39.7500048
-12295,8284,8635,0.147985754967018,0.147985754967018,-104.9912016,39.7500048,-104.9899626,39.7509342
-12296,8635,7895,0.145231730226047,0.145231730226047,-104.9899626,39.7509342,-104.9887543,39.7518523
-12297,7895,8636,0.145188764989583,0.145188764989583,-104.9887543,39.7518523,-104.987575,39.7527919
-12298,8636,8536,0.0230398310291247,0.0230398310291247,-104.987575,39.7527919,-104.987378,39.7529333
-12300,8637,8638,0.051750923168378,0.051750923168378,-104.9993008,39.7450562,-104.9997271,39.7453866
-12306,8641,8642,0.0388526899017529,0.0388526899017529,-105.0078924,39.7547551,-105.0079921,39.7544142
-12322,8647,8648,0.0689932486013888,0.0689932486013888,-105.0057725,39.7569369,-105.0052757,39.7574259
-12324,8409,8649,0.174821115803257,0.174821115803257,-105.0082031,39.7473337,-105.0092259,39.7486951
-12330,8652,8653,0.0109021010822668,0.0109021010822668,-105.0077772,39.7547483,-105.0076516,39.7547313
-12370,127,8676,0.0230804767650593,0.0230804767650593,-105.001255,39.763221,-105.000985,39.7632181
-13861,1773,4425,0.0478826481852338,0.0478826481852338,-104.9769014,39.705675,-104.9763417,39.7056707
-12371,8676,127,0.0230804767650593,0.0230804767650593,-105.000985,39.7632181,-105.001255,39.763221
-12374,8678,2814,0.00715247655230442,0.00715247655230442,-104.9912089,39.7765361,-104.9912923,39.7765415
-12375,2814,7853,0.0872240502720576,0.0872240502720576,-104.9912923,39.7765415,-104.9923076,39.7766218
-12379,552,3283,0.201374804580202,0.201374804580202,-104.9693115,39.7002336,-104.9691419,39.7020399
-12380,3283,439,0.0140574737901418,0.0140574737901418,-104.9691419,39.7020399,-104.9691656,39.702165
-12381,439,440,0.131394781189403,0.131394781189403,-104.9691656,39.702165,-104.969326,39.7033402
-12383,8680,592,0.0279554969032489,0.0279554969032489,-104.9691913,39.7036476,-104.9690283,39.7038655
-12386,3930,5620,0.102308093785748,0.102308093785748,-105.0005956,39.7668504,-105.0017926,39.7668511
-12387,5620,3705,0.100376481944534,0.100376481944534,-105.0017926,39.7668511,-105.002967,39.766852
-12388,3705,710,0.100626287480694,0.100626287480694,-105.002967,39.766852,-105.0041443,39.7668577
-12389,710,8681,0.0994362797990831,0.0994362797990831,-105.0041443,39.7668577,-105.0053077,39.766857
-12390,8681,8515,0.0993120225558452,0.0993120225558452,-105.0053077,39.766857,-105.0064696,39.766865
-12391,8515,4191,0.136253535658325,0.136253535658325,-105.0064696,39.766865,-105.0080637,39.7668543
-12392,4191,2517,0.134250356653895,0.134250356653895,-105.0080637,39.7668543,-105.0096344,39.7668477
-12393,2517,6728,0.132309702657946,0.132309702657946,-105.0096344,39.7668477,-105.0111824,39.766842
-12394,6728,4805,0.136509007433592,0.136509007433592,-105.0111824,39.766842,-105.0127781,39.7668943
-12395,4805,8682,0.134957701338679,0.134957701338679,-105.0127781,39.7668943,-105.0143554,39.766838
-12397,8683,433,0.845576760689761,0.845576760689761,-104.9602564,39.6848648,-104.9692608,39.6879972
-12398,433,481,1.45081348243216,1.45081348243216,-104.9692608,39.6879972,-104.9818608,39.6967284
-12399,481,8684,0.52437215594792,0.52437215594792,-104.9818608,39.6967284,-104.9859386,39.700249
-12401,8685,8686,0.010167997865452,0.010167997865452,-104.9497565,39.7177651,-104.9497874,39.7178534
-12404,4154,4741,0.172602377991032,0.172602377991032,-104.9497951,39.7209768,-104.9498232,39.7225289
-12405,4741,6536,0.177057900654184,0.177057900654184,-104.9498232,39.7225289,-104.9497817,39.7241209
-12406,6536,8687,0.165392784618956,0.165392784618956,-104.9497817,39.7241209,-104.9497898,39.7256083
-12408,5170,6865,0.176928364472993,0.176928364472993,-104.9407951,39.7162379,-104.9407779,39.7146468
-12409,6865,3073,0.175467136201966,0.175467136201966,-104.9407779,39.7146468,-104.9407865,39.7130688
-12410,3073,8690,0.1637299437242,0.1637299437242,-104.9407865,39.7130688,-104.9408036,39.7115964
-12411,8690,8160,0.0198260554201283,0.0198260554201283,-104.9408036,39.7115964,-104.9408036,39.7114181
-12412,8160,8691,0.0330442022067904,0.0330442022067904,-104.9408036,39.7114181,-104.9408122,39.711121
-12414,8692,8693,0.174036627821078,0.174036627821078,-104.9406148,39.716237,-104.9405987,39.7178021
-12415,8693,8694,0.176955606262412,0.176955606262412,-104.9405987,39.7178021,-104.9405987,39.7193935
-12416,8694,8695,0.169605643175659,0.169605643175659,-104.9405987,39.7193935,-104.9405977,39.7209188
-12417,8695,4774,0.249824848381595,0.249824848381595,-104.9405977,39.7209188,-104.9406125,39.7231655
-12418,4774,6552,0.130776357701309,0.130776357701309,-104.9406125,39.7231655,-104.9406129,39.7243416
-12419,6552,8696,0.13038749521243,0.13038749521243,-104.9406129,39.7243416,-104.9406095,39.7255142
-12420,8696,8566,0.0104649837792038,0.0104649837792038,-104.9406095,39.7255142,-104.9406116,39.7256083
-12421,8566,8697,0.196337242565984,0.196337242565984,-104.9406116,39.7256083,-104.9406072,39.727374
-13908,6946,8137,0.20217075396909,0.20217075396909,-104.9602903,39.7819343,-104.9602584,39.7837523
-12422,8697,3765,0.201163077899324,0.201163077899324,-104.9406072,39.727374,-104.9406029,39.7291831
-12423,3765,5944,0.202700667134599,0.202700667134599,-104.9406029,39.7291831,-104.9405891,39.731006
-12424,5944,2231,0.203264325905827,0.203264325905827,-104.9405891,39.731006,-104.9405891,39.732834
-12425,2231,4900,0.203310133896795,0.203310133896795,-104.9405891,39.732834,-104.9405805,39.7346624
-12426,4900,8699,0.223846600901437,0.223846600901437,-104.9405805,39.7346624,-104.9405829,39.7366755
-12427,8699,8700,0.179880034662439,0.179880034662439,-104.9405829,39.7366755,-104.9405826,39.7382932
-12428,8700,8701,0.204289810782798,0.204289810782798,-104.9405826,39.7382932,-104.9405708,39.7401304
-12429,8701,643,0.139830079927305,0.139830079927305,-104.9405708,39.7401304,-104.9405805,39.7413879
-12430,643,7272,0.132835494541237,0.132835494541237,-104.9405805,39.7413879,-104.9405891,39.7425825
-12431,7272,1993,0.110816863894031,0.110816863894031,-104.9405891,39.7425825,-104.9405891,39.7435791
-12432,1993,1977,0.01986880052865,0.01986880052865,-104.9405891,39.7435791,-104.9406062,39.7437573
-12433,1977,4590,0.131129399902762,0.131129399902762,-104.9406062,39.7437573,-104.9406235,39.7449365
-12434,4590,6477,0.129388315999052,0.129388315999052,-104.9406235,39.7449365,-104.9406153,39.7461001
-12435,6477,2460,0.143087746743813,0.143087746743813,-104.9406153,39.7461001,-104.9406062,39.7473869
-12436,2460,5904,0.206205054401277,0.206205054401277,-104.9406062,39.7473869,-104.9405891,39.7492413
-12437,5904,8702,0.200106396563715,0.200106396563715,-104.9405891,39.7492413,-104.9405885,39.7510409
-12438,8702,789,0.199795050779324,0.199795050779324,-104.9405885,39.7510409,-104.9405891,39.7528377
-12439,789,3581,0.193812626433148,0.193812626433148,-104.9405891,39.7528377,-104.9405163,39.7545798
-12440,3581,4353,0.211337121932246,0.211337121932246,-104.9405163,39.7545798,-104.9404804,39.7564802
-12441,4353,8703,0.201766897339093,0.201766897339093,-104.9404804,39.7564802,-104.9404947,39.7582947
-12442,8703,3056,0.204698740459713,0.204698740459713,-104.9404947,39.7582947,-104.9404947,39.7601356
-12443,3056,8704,0.1838941823989,0.1838941823989,-104.9404947,39.7601356,-104.9404955,39.7617894
-12446,902,8706,0.131578356152921,0.131578356152921,-104.9404687,39.7644571,-104.9404758,39.7656404
-12447,8706,2807,0.139128342169529,0.139128342169529,-104.9404758,39.7656404,-104.9404689,39.7668916
-12448,2807,5273,0.132055095159837,0.132055095159837,-104.9404689,39.7668916,-104.9404688,39.7680792
-12449,5273,6913,0.122503450982406,0.122503450982406,-104.9404688,39.7680792,-104.9404689,39.7691809
-12450,6913,6362,0.41302368771275,0.41302368771275,-104.9404689,39.7691809,-104.940457,39.7728953
-12452,3076,3191,0.200008210348418,0.200008210348418,-104.9851226,39.7129392,-104.9851665,39.7111408
-12454,6107,1897,0.202849718138185,0.202849718138185,-104.9851845,39.7093159,-104.985217,39.7074918
-12455,1897,7235,0.199081659570441,0.199081659570441,-104.985217,39.7074918,-104.9851255,39.7057028
-12456,7235,3245,0.204781971579143,0.204781971579143,-104.9851255,39.7057028,-104.9850951,39.7038613
-12457,3245,8707,0.0557878826660101,0.0557878826660101,-104.9850951,39.7038613,-104.9850997,39.7033596
-12458,8707,7285,0.154953879613548,0.154953879613548,-104.9850997,39.7033596,-104.9851123,39.7019661
-12459,7285,28,0.190200511167853,0.190200511167853,-104.9851123,39.7019661,-104.9850866,39.7002557
-12461,7212,8708,0.0837159569795295,0.0837159569795295,-104.9784122,39.6929827,-104.9774338,39.692988
-12463,8708,6525,0.0119790128871836,0.0119790128871836,-104.9774338,39.692988,-104.9772938,39.6929888
-12464,6525,1779,0.0293911622529401,0.0293911622529401,-104.9772938,39.6929888,-104.9769504,39.6929822
-12465,1779,4372,0.0502766443311638,0.0502766443311638,-104.9769504,39.6929822,-104.9763628,39.692984
-12466,4372,8710,0.0490277911002061,0.0490277911002061,-104.9763628,39.692984,-104.97579,39.6929721
-12467,8710,4684,0.0539189737855212,0.0539189737855212,-104.97579,39.6929721,-104.9751601,39.6929864
-12468,4684,1527,0.0474102490920647,0.0474102490920647,-104.9751601,39.6929864,-104.974606,39.692988
-12469,1527,5107,0.0489757310519715,0.0489757310519715,-104.974606,39.692988,-104.9740336,39.6929885
-19288,10468,10469,0.0662296445612727,0.0662296445612727,-104.9873734,39.7392289,-104.9881479,39.7392371
-12470,5107,8711,0.0509607682871969,0.0509607682871969,-104.9740336,39.6929885,-104.973438,39.692989
-12471,8711,5064,0.0518326919728752,0.0518326919728752,-104.973438,39.692989,-104.9728324,39.6929773
-12472,5064,1746,0.0537415293364607,0.0537415293364607,-104.9728324,39.6929773,-104.9722045,39.6929651
-12473,1746,5607,0.04913949394522,0.04913949394522,-104.9722045,39.6929651,-104.9716302,39.692962
-12474,5607,6637,0.0470345659561698,0.0470345659561698,-104.9716302,39.692962,-104.9710805,39.6929591
-12475,6637,5450,0.0502526613335692,0.0502526613335692,-104.9710805,39.6929591,-104.9704932,39.6929632
-12477,5427,5408,0.0488836182047643,0.0488836182047643,-104.9699057,39.6929673,-104.9693344,39.6929713
-12478,5408,7399,0.051895578159039,0.051895578159039,-104.9693344,39.6929713,-104.9687279,39.6929756
-12479,7399,8712,0.1038123024378,0.1038123024378,-104.9687279,39.6929756,-104.9675147,39.6929637
-12481,8713,8714,0.0490473159959526,0.0490473159959526,-104.966356,39.6929637,-104.9657828,39.6929687
-12482,8714,7277,0.0483828604327117,0.0483828604327117,-104.9657828,39.6929687,-104.9652174,39.6929756
-12483,7277,3483,0.0998765627131917,0.0998765627131917,-104.9652174,39.6929756,-104.9640501,39.6929756
-12484,3483,8715,0.048840271287456,0.048840271287456,-104.9640501,39.6929756,-104.9634793,39.692979
-12485,8715,6079,0.0473684752554207,0.0473684752554207,-104.9634793,39.692979,-104.9629257,39.6929822
-12486,6079,8716,0.055154161978582,0.055154161978582,-104.9629257,39.6929822,-104.9622811,39.6929794
-12487,8716,3697,0.0479069878085689,0.0479069878085689,-104.9622811,39.6929794,-104.9617212,39.6929769
-12488,3697,5685,0.0473941467783467,0.0473941467783467,-104.9617212,39.6929769,-104.9611673,39.6929737
-12489,5685,4571,0.0495504189878239,0.0495504189878239,-104.9611673,39.6929737,-104.9605882,39.6929703
-12490,4571,8717,0.0532110753130406,0.0532110753130406,-104.9605882,39.6929703,-104.9599663,39.6929697
-12495,8720,6626,0.0151124856958777,0.0151124856958777,-104.979262,39.6936183,-104.9792691,39.6934825
-12496,6626,7211,0.0534737559078532,0.0534737559078532,-104.9792691,39.6934825,-104.9792704,39.6930016
-12497,7211,5824,0.205145340397742,0.205145340397742,-104.9792704,39.6930016,-104.9792603,39.6911567
-12498,5824,7729,0.196126806182622,0.196126806182622,-104.9792603,39.6911567,-104.9792523,39.6893929
-12499,7729,8721,1.41081273670029,1.41081273670029,-104.9792523,39.6893929,-104.9792956,39.6767052
-12500,8722,6630,0.00966193494482075,0.00966193494482075,-104.976967,39.6915646,-104.9769745,39.6914779
-12501,6630,5826,0.0378008975972725,0.0378008975972725,-104.9769745,39.6914779,-104.9769668,39.691138
-12502,5826,7731,0.193712690967488,0.193712690967488,-104.9769668,39.691138,-104.9769661,39.6893959
-12503,7731,8723,1.80961969384046,1.80961969384046,-104.9769661,39.6893959,-104.9769591,39.6731216
-12504,1781,8722,0.107247989428491,0.107247989428491,-104.9769412,39.6925289,-104.976967,39.6915646
-12506,7401,6529,0.108235119976502,0.108235119976502,-104.9687279,39.6879032,-104.9687115,39.6869299
-12508,4596,8724,0.16807497837827,0.16807497837827,-104.9598011,39.7447758,-104.9597878,39.7432643
-12509,8724,8725,0.178846116420602,0.178846116420602,-104.9597878,39.7432643,-104.9597847,39.7416559
-12510,8725,678,0.00426139259412424,0.00426139259412424,-104.9597847,39.7416559,-104.9597887,39.7416177
-12511,678,8726,0.00479379013962442,0.00479379013962442,-104.9597887,39.7416177,-104.9597874,39.7415746
-12512,8726,8727,0.179790579190484,0.179790579190484,-104.9597874,39.7415746,-104.9597547,39.7399579
-12513,8727,5480,0.174201148052584,0.174201148052584,-104.9597547,39.7399579,-104.9597808,39.7383914
-12514,5480,8728,0.175423920421782,0.175423920421782,-104.9597808,39.7383914,-104.9597692,39.7368138
-12515,8728,4882,0.196140148835561,0.196140148835561,-104.9597692,39.7368138,-104.9598063,39.7350501
-12516,4882,2250,0.176600887954475,0.176600887954475,-104.9598063,39.7350501,-104.959782,39.733462
-12517,2250,5916,0.3321793201224,0.3321793201224,-104.959782,39.733462,-104.960135,39.730487
-12519,3788,8729,0.199339438501115,0.199339438501115,-104.9601881,39.7291071,-104.9601841,39.7273144
-12521,1189,8730,0.167786544262905,0.167786544262905,-104.9601763,39.7271213,-104.9601619,39.7256124
-12522,8730,7154,0.107569635985836,0.107569635985836,-104.9601619,39.7256124,-104.9594545,39.7248125
-12524,8731,8732,0.130443287352145,0.130443287352145,-104.9734316,39.6904059,-104.9734273,39.6892328
-12526,8732,6531,0.0215721025681021,0.0215721025681021,-104.9734273,39.6892328,-104.9734286,39.6890388
-12527,6531,8733,0.0174468386055745,0.0174468386055745,-104.9734286,39.6890388,-104.9734273,39.6888819
-12551,8748,6518,0.0472889047630053,0.0472889047630053,-104.9586768,39.6947734,-104.9581241,39.6947734
-12552,6518,8749,0.0506856290604236,0.0506856290604236,-104.9581241,39.6947734,-104.9575317,39.6947734
-12548,4570,8746,0.0496686599585209,0.0496686599585209,-104.960571,39.6947799,-104.9599905,39.6947768
-12549,8746,8747,0.0568130428191116,0.0568130428191116,-104.9599905,39.6947768,-104.9593265,39.6947733
-12528,8733,8734,4.18362578562758,4.18362578562758,-104.9734273,39.6888819,-104.9735656,39.6512578
-12529,6533,8735,0.0310320915845362,0.0310320915845362,-104.9743231,39.6893856,-104.9740308,39.6892204
-12530,8735,8733,0.0639013406897381,0.0639013406897381,-104.9740308,39.6892204,-104.9734273,39.6888819
-12531,8733,8736,0.0575832242503326,0.0575832242503326,-104.9734273,39.6888819,-104.9728386,39.688631
-12532,8736,1744,0.0585281295770588,0.0585281295770588,-104.9728386,39.688631,-104.9722383,39.6883787
-12533,1744,8737,0.0551795735412136,0.0551795735412136,-104.9722383,39.6883787,-104.9716711,39.6881426
-12534,8737,6634,0.0667321861738512,0.0667321861738512,-104.9716711,39.6881426,-104.9709852,39.687857
-12535,6634,8738,1.14684827666039,1.14684827666039,-104.9709852,39.687857,-104.9593753,39.6827044
-12536,8739,8740,0.050189520794265,0.050189520794265,-104.968695,39.6947883,-104.9681084,39.6947872
-12537,8740,8741,0.0520205890853532,0.0520205890853532,-104.9681084,39.6947872,-104.9675005,39.6947786
-12538,8741,8742,0.0975475062746334,0.0975475062746334,-104.9675005,39.6947786,-104.9663604,39.6947751
-12539,8742,8743,0.0478496643069703,0.0478496643069703,-104.9663604,39.6947751,-104.9658013,39.6947852
-12540,8743,7276,0.0507419704012955,0.0507419704012955,-104.9658013,39.6947852,-104.9652088,39.6947654
-12541,7276,3482,0.0993982386954757,0.0993982386954757,-104.9652088,39.6947654,-104.9640471,39.6947728
-12542,3482,8744,0.05053480573854,0.05053480573854,-104.9640471,39.6947728,-104.9634565,39.6947677
-12543,8744,6078,0.0468212480872111,0.0468212480872111,-104.9634565,39.6947677,-104.9629093,39.694763
-12544,6078,8745,0.052325451958986,0.052325451958986,-104.9629093,39.694763,-104.9622978,39.6947699
-12545,8745,3696,0.0475592999209775,0.0475592999209775,-104.9622978,39.6947699,-104.961742,39.6947762
-12546,3696,5684,0.0505577280347845,0.0505577280347845,-104.961742,39.6947762,-104.9611511,39.6947781
-12547,5684,4570,0.0496336429817659,0.0496336429817659,-104.9611511,39.6947781,-104.960571,39.6947799
-12550,8747,8748,0.0555882070947718,0.0555882070947718,-104.9593265,39.6947733,-104.9586768,39.6947734
-12553,8749,6161,0.0483586179330098,0.0483586179330098,-104.9575317,39.6947734,-104.9569665,39.6947747
-12554,6161,8750,0.0494030122591725,0.0494030122591725,-104.9569665,39.6947747,-104.9563891,39.6947772
-12555,8750,2739,0.0483430371417139,0.0483430371417139,-104.9563891,39.6947772,-104.9558241,39.6947809
-12556,2739,8751,0.0499840332207257,0.0499840332207257,-104.9558241,39.6947809,-104.9552399,39.6947809
-12557,8751,5230,0.0498899174438866,0.0498899174438866,-104.9552399,39.6947809,-104.9546568,39.6947809
-12558,5230,8752,0.0487864097624457,0.0487864097624457,-104.9546568,39.6947809,-104.9540866,39.6947822
-12559,8752,3172,0.0492052393668883,0.0492052393668883,-104.9540866,39.6947822,-104.9535117,39.6947706
-12560,3172,8753,0.048649307652154,0.048649307652154,-104.9535117,39.6947706,-104.9529431,39.6947706
-12561,8753,4997,0.0504970791491002,0.0504970791491002,-104.9529431,39.6947706,-104.952353,39.6947624
-12562,4997,729,0.0994774482962559,0.0994774482962559,-104.952353,39.6947624,-104.9511904,39.6947719
-12564,7060,7316,0.100261995636978,0.100261995636978,-104.9500436,39.6947813,-104.9488718,39.6947743
-12565,7316,4587,0.101339695102535,0.101339695102535,-104.9488718,39.6947743,-104.9476874,39.6947677
-12566,4587,8033,0.0978749879893347,0.0978749879893347,-104.9476874,39.6947677,-104.9465436,39.6947813
-12567,8033,6373,0.096169791555938,0.096169791555938,-104.9465436,39.6947813,-104.9454196,39.6947783
-12568,6373,8754,0.0556932821262755,0.0556932821262755,-104.9454196,39.6947783,-104.944769,39.6947624
-12569,8754,4827,0.0506856253200211,0.0506856253200211,-104.944769,39.6947624,-104.9441769,39.6947479
-12570,4827,8755,0.0976778629222165,0.0976778629222165,-104.9441769,39.6947479,-104.9430353,39.6947545
-12572,8756,8757,0.0483546146560771,0.0483546146560771,-104.9418766,39.6947611,-104.9413115,39.694755
-12573,8757,8758,0.00678547758181753,0.00678547758181753,-104.9413115,39.694755,-104.9412322,39.6947542
-12574,8758,8759,0.0425788070077018,0.0425788070077018,-104.9412322,39.6947542,-104.9407346,39.6947488
-12577,2375,8761,0.0800348658330501,0.0800348658330501,-104.9535019,39.7105138,-104.9525663,39.7105072
-12579,8761,2381,0.0565526295759939,0.0565526295759939,-104.9525663,39.7105072,-104.9519054,39.7105204
-12580,2381,2378,0.0732152007668199,0.0732152007668199,-104.9519054,39.7105204,-104.9510557,39.7104412
-12581,2378,2379,0.0407086995566738,0.0407086995566738,-104.9510557,39.7104412,-104.9506866,39.7102101
-12582,2379,2383,0.00264328007897714,0.00264328007897714,-104.9506866,39.7102101,-104.9506695,39.7101903
-12583,2383,2571,0.0689488793496812,0.0689488793496812,-104.9506695,39.7101903,-104.9505579,39.7095762
-12585,8761,2375,0.0800348658330501,0.0800348658330501,-104.9525663,39.7105072,-104.9535019,39.7105138
-12587,1510,7932,0.0417550445525859,0.0417550445525859,-104.9532101,39.7050201,-104.9536135,39.7048087
-12589,8764,4921,0.0107315298188712,0.0107315298188712,-104.9907602,39.7299304,-104.9906535,39.7299812
-12590,4921,8062,0.0635329705608418,0.0635329705608418,-104.9906535,39.7299812,-104.9902595,39.7304656
-12591,8062,6584,0.176700679215808,0.176700679215808,-104.9902595,39.7304656,-104.9902658,39.7320547
-12592,6584,5366,0.199428899537142,0.199428899537142,-104.9902658,39.7320547,-104.9902592,39.7338482
-12593,5366,7124,0.156701102941306,0.156701102941306,-104.9902592,39.7338482,-104.9902249,39.7352572
-12594,7124,612,0.178308153840751,0.178308153840751,-104.9902249,39.7352572,-104.9902547,39.7368606
-12595,612,1943,0.177718886558766,0.177718886558766,-104.9902547,39.7368606,-104.9902169,39.7384586
-12596,1943,8765,0.0553792982616949,0.0553792982616949,-104.9902169,39.7384586,-104.9902249,39.7389566
-12597,8765,8767,0.0568805264393287,0.0568805264393287,-104.9902249,39.7389566,-104.9902331,39.7394681
-12625,8778,8779,0.0386703080825578,0.0386703080825578,-104.9874654,39.72522,-104.9874745,39.7248723
-12598,8767,8768,0.0596299154046411,0.0596299154046411,-104.9902331,39.7394681,-104.9903111,39.740001
-12600,8217,8764,0.0348766827140038,0.0348766827140038,-104.9911152,39.729776,-104.9907602,39.7299304
-12602,8769,7960,0.0121246465842421,0.0121246465842421,-104.9904615,39.7289525,-104.9906006,39.7289314
-12636,8782,8776,0.0415201856091735,0.0415201856091735,-104.9874245,39.7271431,-104.9874245,39.7267697
-12603,7960,7858,0.191569398536593,0.191569398536593,-104.9906006,39.7289314,-104.9928407,39.7289388
-12604,7858,384,0.0511824976047815,0.0511824976047815,-104.9928407,39.7289388,-104.9934388,39.7289219
-12606,4685,296,0.0500706281631231,0.0500706281631231,-104.9940378,39.7289164,-104.9946233,39.7289153
-12607,296,4955,0.0491810974692235,0.0491810974692235,-104.9946233,39.7289153,-104.9951984,39.7289153
-12608,4955,7223,0.104958162725722,0.104958162725722,-104.9951984,39.7289153,-104.9964257,39.7289087
-12611,8773,8774,0.043865298365945,0.043865298365945,-104.9975826,39.7288966,-104.9980954,39.7289058
-12612,8774,6643,0.0451313849693394,0.0451313849693394,-104.9980954,39.7289058,-104.998623,39.7289153
-12613,6643,8218,0.0697309457073312,0.0697309457073312,-104.998623,39.7289153,-104.9994384,39.7289153
-12614,8218,3952,0.0651671851260823,0.0651671851260823,-104.9994384,39.7289153,-105.0002004,39.7289098
-12616,1623,8769,0.0363096662742893,0.0363096662742893,-104.990046,39.7290197,-104.9904615,39.7289525
-12618,5097,8775,0.0318529970242771,0.0318529970242771,-104.9898761,39.7283677,-104.9895915,39.7285525
-12622,8776,8777,0.018725243223035,0.018725243223035,-104.9874245,39.7267697,-104.9874242,39.7266013
-12623,8777,6243,0.106972614023441,0.106972614023441,-104.9874242,39.7266013,-104.9874615,39.7256397
-12624,6243,8778,0.0466697025677041,0.0466697025677041,-104.9874615,39.7256397,-104.9874654,39.72522
-12626,8779,5192,0.0833353912042221,0.0833353912042221,-104.9874745,39.7248723,-104.9874942,39.724123
-12627,5192,8780,0.0302234211776424,0.0302234211776424,-104.9874942,39.724123,-104.9874919,39.7238512
-12628,8780,8781,0.0269541929474085,0.0269541929474085,-104.9874919,39.7238512,-104.9874899,39.7236088
-12629,8781,2610,0.119870657472311,0.119870657472311,-104.9874899,39.7236088,-104.9874808,39.7225308
-12630,2610,1838,0.176410752987704,0.176410752987704,-104.9874808,39.7225308,-104.9874805,39.7209443
-12631,1838,2360,0.17767880886817,0.17767880886817,-104.9874805,39.7209443,-104.9874759,39.7193464
-12633,3710,4430,0.0984187629622127,0.0984187629622127,-104.9874523,39.7183509,-104.9874697,39.7174659
-12634,4430,5171,0.100485171973402,0.100485171973402,-104.9874697,39.7174659,-104.9874858,39.7165623
-12638,968,8783,0.0450647850917565,0.0450647850917565,-104.9837585,39.7235715,-104.983647,39.7239676
-12640,8783,6332,0.0179790401179982,0.0179790401179982,-104.983647,39.7239676,-104.9836195,39.7241279
-12641,6332,8784,0.166916939377104,0.166916939377104,-104.9836195,39.7241279,-104.9836094,39.725629
-12642,8784,8785,0.0824631793427953,0.0824631793427953,-104.9836094,39.725629,-104.9836046,39.7263706
-12643,8785,8786,0.100743867095121,0.100743867095121,-104.9836046,39.7263706,-104.9835987,39.7272766
-12644,8786,3809,0.198861011407653,0.198861011407653,-104.9835987,39.7272766,-104.9835982,39.729065
-12645,3809,5921,0.152448419282946,0.152448419282946,-104.9835982,39.729065,-104.9835955,39.730436
-12647,920,2206,0.198794444530698,0.198794444530698,-104.9835814,39.7320454,-104.9835843,39.7338332
-12648,2206,4855,0.161210664735901,0.161210664735901,-104.9835843,39.7338332,-104.9836067,39.7352829
-12649,4855,8787,0.176180330331867,0.176180330331867,-104.9836067,39.7352829,-104.9835945,39.7368673
-12650,8787,5459,0.173977209442215,0.173977209442215,-104.9835945,39.7368673,-104.9835857,39.7384319
-12651,5459,8788,0.179581076943561,0.179581076943561,-104.9835857,39.7384319,-104.9835778,39.7400469
-12652,8788,653,0.182661218967331,0.182661218967331,-104.9835778,39.7400469,-104.9835697,39.7416896
-12653,653,8789,0.175533060842227,0.175533060842227,-104.9835697,39.7416896,-104.9835757,39.7432682
-12654,8789,4615,0.178562453757686,0.178562453757686,-104.9835757,39.7432682,-104.9835591,39.744874
-12655,4615,6485,0.147124798702961,0.147124798702961,-104.9835591,39.744874,-104.9835697,39.7461971
-12656,6485,3681,0.150536039008347,0.150536039008347,-104.9835697,39.7461971,-104.9836002,39.7475507
-12658,5282,8790,0.0413354062568629,0.0413354062568629,-104.9825741,39.7226935,-104.9824367,39.7230499
-12660,8790,6331,0.0121138578035044,0.0121138578035044,-104.9824367,39.7230499,-104.9824024,39.7231556
-12662,6548,8791,0.16625102712937,0.16625102712937,-104.9823535,39.7241259,-104.9823661,39.725621
-12663,8791,8792,0.184061439099574,0.184061439099574,-104.9823661,39.725621,-104.9823612,39.7272763
-12664,8792,3808,0.198594245045878,0.198594245045878,-104.9823612,39.7272763,-104.9823636,39.7290623
-12665,3808,5923,0.153339826215406,0.153339826215406,-104.9823636,39.7290623,-104.9822823,39.7304399
-12666,5923,922,0.17696116360303,0.17696116360303,-104.9822823,39.7304399,-104.9822659,39.7320313
-12667,922,2208,0.186196659484346,0.186196659484346,-104.9822659,39.7320313,-104.9822597,39.7337058
-12668,2208,4857,0.160795645903838,0.160795645903838,-104.9822597,39.7337058,-104.9822782,39.7351518
-12669,4857,8793,0.191420788288479,0.191420788288479,-104.9822782,39.7351518,-104.9823009,39.7368732
-12671,5460,8794,0.176401987583553,0.176401987583553,-104.9823009,39.7384375,-104.9823264,39.7400238
-12672,8794,8795,0.177191749793072,0.177191749793072,-104.9823264,39.7400238,-104.9823377,39.7416173
-12673,8795,654,0.00549383449703672,0.00549383449703672,-104.9823377,39.7416173,-104.9823388,39.7416667
-12674,654,8796,0.178534682523657,0.178534682523657,-104.9823388,39.7416667,-104.9823365,39.7432723
-12675,8796,4614,0.177531607780329,0.177531607780329,-104.9823365,39.7432723,-104.9823157,39.7448688
-12676,4614,6486,0.147678461213278,0.147678461213278,-104.9823157,39.7448688,-104.9823113,39.7461969
-12677,6486,3679,0.150313310591357,0.150313310591357,-104.9823113,39.7461969,-104.9823107,39.7475487
-12681,8798,8799,0.123466110327723,0.123466110327723,-104.9457531,39.7104012,-104.9464054,39.7113917
-12682,8799,3186,0.00950854696516887,0.00950854696516887,-104.9464054,39.7113917,-104.9464561,39.7114678
-12683,3186,8800,0.0308360436433676,0.0308360436433676,-104.9464561,39.7114678,-104.9467659,39.7116096
-12685,8801,8802,0.231947805663281,0.231947805663281,-104.9590492,39.7160869,-104.9590692,39.7181728
-12686,8802,8803,0.0199646364044365,0.0199646364044365,-104.9590692,39.7181728,-104.9590745,39.7183523
-12687,8803,5017,0.0091876036672495,0.0091876036672495,-104.9590745,39.7183523,-104.9590772,39.7184349
-12692,7064,8808,0.0247148912105672,0.0247148912105672,-104.95025,39.7175567,-104.9500032,39.7176723
-12693,8808,8685,0.0234885972598816,0.0234885972598816,-104.9500032,39.7176723,-104.9497565,39.7177651
-20809,8326,10950,0.0125120772932362,0.0125120772932362,-105.029018,39.7621132,-105.0289678,39.7620075
-16680,9982,9983,0.0455494891280306,0.0455494891280306,-105.00793,39.7419174,-105.0074579,39.7421072
-15872,7130,8879,0.124695897236049,0.124695897236049,-105.0370687,39.7347704,-105.0382757,39.7341411
-12694,8685,8023,0.100302779247875,0.100302779247875,-104.9497565,39.7177651,-104.9485858,39.7178178
-12696,8809,8685,0.057365793634115,0.057365793634115,-104.9497699,39.7172493,-104.9497565,39.7177651
-12699,8810,4109,0.100464246278784,0.100464246278784,-104.9500622,39.7177177,-104.9511309,39.7180926
-12700,4109,2643,0.0901887127804005,0.0901887127804005,-104.9511309,39.7180926,-104.9521735,39.7182139
-12702,8805,7976,0.102773783270916,0.102773783270916,-104.9534009,39.718219,-104.9546025,39.7182181
-12703,7976,7318,0.104083044705694,0.104083044705694,-104.9546025,39.7182181,-104.9558194,39.7182147
-12704,7318,8803,0.278830952538266,0.278830952538266,-104.9558194,39.7182147,-104.9590745,39.7183523
-12706,8811,8812,0.108086464170563,0.108086464170563,-104.9494453,39.7136057,-104.9497656,39.714546
-12707,8812,6861,0.0114665228848291,0.0114665228848291,-104.9497656,39.714546,-104.9497683,39.7146491
-12709,5165,8809,0.109306863073043,0.109306863073043,-104.9497617,39.7162663,-104.9497699,39.7172493
-12710,8809,8808,0.0510932247106912,0.0510932247106912,-104.9497699,39.7172493,-104.9500032,39.7176723
-12712,8798,6379,0.100799788599422,0.100799788599422,-104.9457531,39.7104012,-104.9449548,39.7097344
-12713,6379,6099,0.0584802680423258,0.0584802680423258,-104.9449548,39.7097344,-104.9444906,39.7093483
-12714,6099,8202,0.382882462386682,0.382882462386682,-104.9444906,39.7093483,-104.9408446,39.707351
-12716,8813,8173,0.0533183303572635,0.0533183303572635,-104.9406573,39.7061997,-104.940655,39.7066792
-12718,8814,8815,0.0594781662619651,0.0594781662619651,-104.940835,39.70673,-104.940835,39.7061951
-12720,8815,3633,0.0139674412080793,0.0139674412080793,-104.940835,39.7061951,-104.9408419,39.7060696
-14286,6672,3115,0.0991095918198707,0.0991095918198707,-104.9362682,39.7146512,-104.9351095,39.7146512
-15288,8812,7065,0.0171061341992079,0.0171061341992079,-104.9497656,39.714546,-104.9499634,39.7145233
-12722,3295,8191,0.195769878320479,0.195769878320479,-104.9407838,39.7038199,-104.940786,39.7020593
-12723,8191,103,0.207801078913796,0.207801078913796,-104.940786,39.7020593,-104.940786,39.7001905
-12724,103,3505,0.201240848446412,0.201240848446412,-104.940786,39.7001905,-104.940829,39.698381
-12725,3505,8816,0.20140010471513,0.20140010471513,-104.940829,39.698381,-104.940726,39.6965715
-12726,8816,8817,0.0467910785706761,0.0467910785706761,-104.940726,39.6965715,-104.9407242,39.6961507
-12727,8817,8759,0.155886707244551,0.155886707244551,-104.9407242,39.6961507,-104.9407346,39.6947488
-12728,8759,8818,0.0209382564173288,0.0209382564173288,-104.9407346,39.6947488,-104.9407334,39.6945605
-12729,8818,8819,0.0390294530141924,0.0390294530141924,-104.9407334,39.6945605,-104.940734,39.6942095
-12730,8819,8820,0.0609459777309488,0.0609459777309488,-104.940734,39.6942095,-104.9407348,39.6936614
-12732,7196,5844,0.199996639851393,0.199996639851393,-104.940735,39.692928,-104.9407088,39.6911295
-12733,5844,7747,0.201963345264684,0.201963345264684,-104.9407088,39.6911295,-104.9407088,39.6893132
-12734,7747,8821,0.660668042362938,0.660668042362938,-104.9407088,39.6893132,-104.9406408,39.6833719
-12737,6675,8823,0.018377691001392,0.018377691001392,-104.9362112,39.6893266,-104.9359966,39.6893199
-12738,8823,3121,0.0817086617793047,0.0817086617793047,-104.9359966,39.6893199,-104.9350417,39.6893238
-12739,3121,3122,0.0189462201356829,0.0189462201356829,-104.9350417,39.6893238,-104.9348207,39.6893133
-12740,3122,6294,0.0736313115214917,0.0736313115214917,-104.9348207,39.6893133,-104.9339602,39.6893172
-12741,6294,6295,0.0205616464638412,0.0205616464638412,-104.9339602,39.6893172,-104.9337199,39.6893172
-12742,6295,6620,0.098958190214706,0.098958190214706,-104.9337199,39.6893172,-104.9325634,39.6893199
-14308,9323,2191,0.217246414275379,0.217246414275379,-104.9918391,39.7579642,-104.9936227,39.759356
-12743,6620,7343,0.0741923893812443,0.0741923893812443,-104.9325634,39.6893199,-104.9316965,39.6893332
-12744,7343,2845,0.101548527960204,0.101548527960204,-104.9316965,39.6893332,-104.9305098,39.6893437
-12745,2845,3494,0.101534987318255,0.101534987318255,-104.9305098,39.6893437,-104.9293234,39.6893613
-12746,3494,5350,0.0785982086314387,0.0785982086314387,-104.9293234,39.6893613,-104.928405,39.689348
-12748,4220,2948,0.0852112039835386,0.0852112039835386,-104.9274781,39.6893679,-104.9264824,39.6893811
-12749,2948,2949,0.056569943078372,0.056569943078372,-104.9264824,39.6893811,-104.9258215,39.6893679
-12750,2949,6813,0.0330539311277449,0.0330539311277449,-104.9258215,39.6893679,-104.9254353,39.6893745
-12751,6813,6810,0.0675878090482117,0.0675878090482117,-104.9254353,39.6893745,-104.9246456,39.6893613
-12752,6810,1814,0.0227606927419569,0.0227606927419569,-104.9246456,39.6893613,-104.9243796,39.6893613
-12753,1814,8824,0.984700828985706,0.984700828985706,-104.9243796,39.6893613,-104.9128716,39.689347
-12754,8823,8825,0.40169861106651,0.40169861106651,-104.9359966,39.6893199,-104.936139,39.685709
-12779,3798,5937,0.1524274277381,0.1524274277381,-104.9729432,39.7290745,-104.9729509,39.7304453
-12755,8826,7748,0.668566967249301,0.668566967249301,-104.9403877,39.6833057,-104.9405349,39.6893172
-12756,7748,5845,0.201518653480334,0.201518653480334,-104.9405349,39.6893172,-104.9405371,39.6911295
-12757,5845,7197,0.200485803128442,0.200485803128442,-104.9405371,39.6911295,-104.9405457,39.6929325
-12758,7197,8827,0.180703533412633,0.180703533412633,-104.9405457,39.6929325,-104.94054,39.6945576
-12759,8827,8760,0.0207611083367854,0.0207611083367854,-104.94054,39.6945576,-104.9405376,39.6947443
-12760,8760,8828,0.203176551906279,0.203176551906279,-104.9405376,39.6947443,-104.9405457,39.6965715
-12761,8828,3506,0.200871002946695,0.200871002946695,-104.9405457,39.6965715,-104.9406406,39.6983765
-12763,8170,8192,0.20854015704238,0.20854015704238,-104.9405886,39.7001839,-104.9406058,39.7020593
-12764,8192,3296,0.195770030101267,0.195770030101267,-104.9406058,39.7020593,-104.9406022,39.7038199
-12765,3296,8183,0.100143064441761,0.100143064441761,-104.9406022,39.7038199,-104.9405972,39.7047205
-12766,8183,8188,0.148673984504934,0.148673984504934,-104.9405972,39.7047205,-104.9406663,39.7060565
-12767,8188,8813,0.0159417159428289,0.0159417159428289,-104.9406663,39.7060565,-104.9406573,39.7061997
-12769,2918,8829,0.0404869067666165,0.0404869067666165,-104.9732171,39.7182486,-104.9732505,39.7186118
-12771,8829,6328,0.00908621391699812,0.00908621391699812,-104.9732505,39.7186118,-104.9732624,39.718693
-12772,6328,8830,0.0795394987314785,0.0795394987314785,-104.9732624,39.718693,-104.9732562,39.7194083
-12774,4166,4751,0.202375182887314,0.202375182887314,-104.972908,39.7201406,-104.9729128,39.7219606
-12775,4751,6542,0.197696304569089,0.197696304569089,-104.9729128,39.7219606,-104.9729252,39.7237385
-12776,6542,8831,0.204678217467742,0.204678217467742,-104.9729252,39.7237385,-104.9729154,39.7255792
-12778,8832,3798,0.199708223967288,0.199708223967288,-104.9729324,39.7272785,-104.9729432,39.7290745
-12780,5937,938,0.177624298285183,0.177624298285183,-104.9729509,39.7304453,-104.9729595,39.7320427
-12781,938,2222,0.185255991502605,0.185255991502605,-104.9729595,39.7320427,-104.9729758,39.7337087
-12782,2222,4872,0.159853083829866,0.159853083829866,-104.9729758,39.7337087,-104.9729971,39.7351462
-12783,4872,8834,0.191323978817286,0.191323978817286,-104.9729971,39.7351462,-104.9730073,39.7368668
-12787,28,8836,0.0411233276076822,0.0411233276076822,-104.9850866,39.7002557,-104.9855672,39.7002491
-15407,8527,8524,0.00632598868026626,0.00632598868026626,-105.0054168,39.751192,-105.0053655,39.751233
-16685,9986,9987,0.0852803879953952,0.0852803879953952,-105.007297,39.7423918,-105.0064333,39.7427754
-12788,8830,4165,0.0810572303723974,0.0810572303723974,-104.9732562,39.7194083,-104.9733458,39.720134
-12790,4096,6041,0.191845009601904,0.191845009601904,-105.0181552,39.7838945,-105.0181598,39.7856198
-12791,6041,8837,0.201496335450174,0.201496335450174,-105.0181598,39.7856198,-105.0181605,39.7874319
-12792,8837,8838,0.406062586796109,0.406062586796109,-105.0181605,39.7874319,-105.0181502,39.7910837
-12793,4086,6031,0.181162285735164,0.181162285735164,-105.0112057,39.7838279,-105.0111925,39.7854571
-12794,6031,6032,0.0171385466290399,0.0171385466290399,-105.0111925,39.7854571,-105.0111965,39.7856112
-12795,6032,8839,0.201396970557967,0.201396970557967,-105.0111965,39.7856112,-105.0112028,39.7874224
-12796,8839,2539,0.0036249646793062,0.0036249646793062,-105.0112028,39.7874224,-105.0112029,39.787455
-12797,2539,7937,0.222367701142404,0.222367701142404,-105.0112029,39.787455,-105.0112006,39.7894548
-12798,7937,8840,0.179081080346528,0.179081080346528,-105.0112006,39.7894548,-105.0111916,39.7910653
-12799,8520,8841,0.0687184646666591,0.0687184646666591,-105.006397,39.7829043,-105.006397,39.7835223
-12801,8841,298,0.017862044588972,0.017862044588972,-105.006397,39.7835223,-105.0063925,39.7836829
-12802,298,4082,0.0176901086131869,0.0176901086131869,-105.0063925,39.7836829,-105.0063995,39.7838419
-12805,2560,6714,0.0892568890732451,0.0892568890732451,-105.0064215,39.7862585,-105.0064173,39.7870612
-12806,6714,6633,0.0879831056932755,0.0879831056932755,-105.0064173,39.7870612,-105.006429,39.7878524
-12807,6633,8844,0.0442062339102578,0.0442062339102578,-105.006429,39.7878524,-105.0064203,39.7882499
-12808,8844,7935,0.0446455487862746,0.0446455487862746,-105.0064203,39.7882499,-105.0064172,39.7886514
-12809,7935,8845,0.265612509858697,0.265612509858697,-105.0064172,39.7886514,-105.0064079,39.7910401
-12817,297,299,0.88607517832177,0.88607517832177,-104.999633,39.7829256,-105.0099714,39.7835424
-12823,493,589,0.268896577305787,0.268896577305787,-104.994193,39.7810897,-104.9917474,39.779568
-12824,589,8850,0.33804717039653,0.33804717039653,-104.9917474,39.779568,-104.9897894,39.7769264
-12826,8589,8851,0.042366080089372,0.042366080089372,-105.000578,39.7453477,-105.0002455,39.7456302
-12828,8851,4936,0.0170501490589131,0.0170501490589131,-105.0002455,39.7456302,-105.0001355,39.7457581
-12829,4936,8509,0.143621366769105,0.143621366769105,-105.0001355,39.7457581,-104.9989592,39.7466802
-12831,8852,8853,0.0917176896741063,0.0917176896741063,-104.9926518,39.7567579,-104.9919124,39.7561602
-12832,8853,7564,0.105551904949528,0.105551904949528,-104.9919124,39.7561602,-104.9910557,39.7554766
-12833,7564,6182,0.105801475446669,0.105801475446669,-104.9910557,39.7554766,-104.990176,39.7548073
-12834,6182,8854,0.10583574357693,0.10583574357693,-104.990176,39.7548073,-104.9893092,39.7541277
-12835,8854,8855,0.00547189672663909,0.00547189672663909,-104.9893092,39.7541277,-104.9892657,39.7540916
-18650,1854,2593,0.177389867684494,0.177389867684494,-105.0379177,39.7213314,-105.0379231,39.7229267
-12837,8856,8857,0.0555847646631402,0.0555847646631402,-104.988892,39.7538026,-104.9884337,39.753448
-12838,8857,8858,0.0519115005666898,0.0519115005666898,-104.9884337,39.753448,-104.988003,39.7531189
-12839,8858,8636,0.0515833043565609,0.0515833043565609,-104.988003,39.7531189,-104.987575,39.7527919
-12840,8636,8859,0.0207966249820583,0.0207966249820583,-104.987575,39.7527919,-104.9873914,39.7526692
-12844,8860,1198,0.169110109980516,0.169110109980516,-104.9520697,39.7256077,-104.9520847,39.7271285
-12845,1198,8861,0.0226617213022113,0.0226617213022113,-104.9520847,39.7271285,-104.9520836,39.7273323
-12847,8862,1200,0.170240075619945,0.170240075619945,-104.9509005,39.7256047,-104.9509239,39.7271356
-12848,1200,8863,0.0219879091267488,0.0219879091267488,-104.9509239,39.7271356,-104.9509292,39.7273333
-12850,8864,7983,0.0505037947042799,0.0505037947042799,-104.9546471,39.7305018,-104.9540572,39.7305236
-12851,7983,2054,0.099824917404873,0.099824917404873,-104.9540572,39.7305236,-104.9528899,39.730517
-12852,2054,2660,0.101497408945607,0.101497408945607,-104.9528899,39.730517,-104.9517031,39.7305282
-12853,2660,4133,0.0961563998269834,0.0961563998269834,-104.9517031,39.7305282,-104.9505787,39.7305216
-12855,6696,8019,0.0939673290333738,0.0939673290333738,-104.9494801,39.7305216,-104.9483814,39.7305084
-12856,8019,7683,0.0941529054095407,0.0941529054095407,-104.9483814,39.7305084,-104.9472804,39.7305107
-12857,7683,3457,0.0935091254143676,0.0935091254143676,-104.9472804,39.7305107,-104.946187,39.7305008
-12858,3457,8865,0.0461569199164165,0.0461569199164165,-104.946187,39.7305008,-104.9456473,39.7304952
-12859,8865,6019,0.0480340625550536,0.0480340625550536,-104.9456473,39.7304952,-104.9450856,39.7304952
-12860,6019,8866,0.0464697146879775,0.0464697146879775,-104.9450856,39.7304952,-104.9445422,39.7304973
-12861,8866,8867,0.048094543326443,0.048094543326443,-104.9445422,39.7304973,-104.9439798,39.7304995
-12862,8867,8868,0.0461790217746061,0.0461790217746061,-104.9439798,39.7304995,-104.9434398,39.7304973
-12863,8868,856,0.0449646613539359,0.0449646613539359,-104.9434398,39.7304973,-104.942914,39.7304952
-12864,856,451,0.0470078764226648,0.0470078764226648,-104.942914,39.7304952,-104.9423643,39.7304952
-12865,451,7105,0.0432708485882178,0.0432708485882178,-104.9423643,39.7304952,-104.9418583,39.7304952
-12866,7105,8869,0.0939007256947679,0.0939007256947679,-104.9418583,39.7304952,-104.9407607,39.7304709
-12868,8870,1196,0.168829878028139,0.168829878028139,-104.9532283,39.7256124,-104.9532393,39.7271307
-12869,1196,8871,0.021661446985008,0.021661446985008,-104.9532393,39.7271307,-104.9532413,39.7273255
-12871,4760,5407,0.0842978699895538,0.0842978699895538,-104.966261,39.7219977,-104.9658146,39.7226736
-12873,4755,6546,0.199683159238461,0.199683159238461,-104.9682436,39.7219606,-104.9682779,39.7237562
-12874,6546,8872,0.20436535055464,0.20436535055464,-104.9682779,39.7237562,-104.9682812,39.7255941
-12875,8872,8873,0.188956325706579,0.188956325706579,-104.9682812,39.7255941,-104.9682932,39.7272934
-12876,8873,3792,0.199291485976659,0.199291485976659,-104.9682932,39.7272934,-104.968314,39.7290856
-17796,10179,9318,0.114755253361823,0.114755253361823,-104.9873946,39.7555556,-104.9873865,39.7545236
-12877,3792,8561,0.13059037096191,0.13059037096191,-104.968314,39.7290856,-104.9673609,39.7300032
-12879,5926,924,0.178374370928188,0.178374370928188,-104.9809932,39.730424,-104.9810307,39.7320279
-12880,924,2210,0.187308783265319,0.187308783265319,-104.9810307,39.7320279,-104.9810238,39.7337124
-12881,2210,4859,0.159743099068053,0.159743099068053,-104.9810238,39.7337124,-104.9810463,39.7351489
-12882,4859,8874,0.192629276936053,0.192629276936053,-104.9810463,39.7351489,-104.9810766,39.7368811
-12883,8874,5461,0.172330101173688,0.172330101173688,-104.9810766,39.7368811,-104.9810735,39.7384309
-12884,5461,8875,0.177416584260724,0.177416584260724,-104.9810735,39.7384309,-104.9810892,39.7400264
-12885,8875,8876,0.176433616828762,0.176433616828762,-104.9810892,39.7400264,-104.9810837,39.7416131
-12887,655,8877,0.00413648661723727,0.00413648661723727,-104.9810836,39.7416667,-104.9810838,39.7417039
-12888,8877,8878,0.173943602457692,0.173943602457692,-104.9810838,39.7417039,-104.9810919,39.7432682
-12889,8878,4613,0.177428437243737,0.177428437243737,-104.9810919,39.7432682,-104.981055,39.7448636
-12890,4613,6487,0.148280300321704,0.148280300321704,-104.981055,39.7448636,-104.9810463,39.7461971
-12891,6487,3678,0.149828166583799,0.149828166583799,-104.9810463,39.7461971,-104.9810333,39.7475445
-12893,5929,926,0.177267011666895,0.177267011666895,-104.9798324,39.7304351,-104.9798307,39.7320293
-12894,926,2211,0.187019197552967,0.187019197552967,-104.9798307,39.7320293,-104.9798259,39.7337112
-12895,2211,4861,0.161667462022208,0.161667462022208,-104.9798259,39.7337112,-104.9798492,39.735165
-12896,4861,8880,0.191414125057248,0.191414125057248,-104.9798492,39.735165,-104.9798621,39.7368864
-12897,8880,5463,0.170299846109482,0.170299846109482,-104.9798621,39.7368864,-104.9798976,39.7384177
-12898,5463,8881,0.177990586801656,0.177990586801656,-104.9798976,39.7384177,-104.9798911,39.7400184
-12899,8881,8885,0.177780189019753,0.177780189019753,-104.9798911,39.7400184,-104.9798819,39.7416172
-12900,8885,659,0.00646246375156384,0.00646246375156384,-104.9798819,39.7416172,-104.979874,39.741675
-12901,659,8886,0.177011471342036,0.177011471342036,-104.979874,39.741675,-104.9798704,39.7432669
-12902,8886,4612,0.177005843155015,0.177005843155015,-104.9798704,39.7432669,-104.9798537,39.7448587
-12903,4612,6488,0.148001366258512,0.148001366258512,-104.9798537,39.7448587,-104.9798598,39.7461897
-12904,6488,3676,0.150380555650091,0.150380555650091,-104.9798598,39.7461897,-104.9798645,39.7475421
-12906,1621,8061,0.152748999526467,0.152748999526467,-104.9888599,39.7290834,-104.9888552,39.7304571
-12907,8061,6583,0.177490187745079,0.177490187745079,-104.9888552,39.7304571,-104.9888311,39.7320532
-12908,6583,5365,0.198863610387104,0.198863610387104,-104.9888311,39.7320532,-104.988843,39.7338416
-12909,5365,7123,0.157919035747255,0.157919035747255,-104.988843,39.7338416,-104.9888432,39.7352618
-12911,8092,8887,0.220134314041521,0.220134314041521,-104.9877223,39.7268463,-104.9858598,39.7254798
-12913,8887,8888,0.191841135190913,0.191841135190913,-104.9858598,39.7254798,-104.984536,39.724087
-12914,8888,967,0.0966749413586244,0.0966749413586244,-104.984536,39.724087,-104.9838014,39.7234262
-12916,5281,4980,0.256490434532314,0.256490434532314,-104.982597,39.7225939,-104.9802767,39.7211325
-12917,4980,4148,0.0387618071437701,0.0387618071437701,-104.9802767,39.7211325,-104.9799133,39.7209242
-12918,4148,8125,0.0859291558348279,0.0859291558348279,-104.9799133,39.7209242,-104.9791138,39.7204562
-12919,8125,2368,0.179404398665568,0.179404398665568,-104.9791138,39.7204562,-104.9775163,39.7194106
-12920,2368,996,0.270881468937897,0.270881468937897,-104.9775163,39.7194106,-104.9745895,39.7184798
-12921,996,2914,0.0678890736084051,0.0678890736084051,-104.9745895,39.7184798,-104.9738264,39.7183118
-12922,2914,2917,0.0548386478267142,0.0548386478267142,-104.9738264,39.7183118,-104.9732076,39.7181827
-12927,8894,8895,0.135035418511701,0.135035418511701,-105.0072481,39.7422069,-105.00609,39.7413812
-12929,8896,3167,0.11730986547504,0.11730986547504,-105.0048016,39.7429839,-105.00401,39.7438456
-12932,8898,8899,0.10458723954588,0.10458723954588,-105.0038366,39.7434181,-105.0050563,39.7433465
-12971,8901,8709,0.120698197647431,0.120698197647431,-105.0035419,39.745319,-105.0028925,39.7443552
-12978,8902,8903,0.00973401952734473,0.00973401952734473,-105.0104246,39.7573245,-105.0105064,39.7573854
-12979,8903,7902,0.144472845078957,0.144472845078957,-105.0105064,39.7573854,-105.0116934,39.7583103
-12980,7902,1225,0.0118169371778595,0.0118169371778595,-105.0116934,39.7583103,-105.0118006,39.7583774
-12982,8904,8902,0.0775029978833242,0.0775029978833242,-105.0097742,39.7568389,-105.0104246,39.7573245
-12984,8905,8906,0.061203121949655,0.061203121949655,-105.007434,39.7550594,-105.0079422,39.7554471
-12986,8906,8907,0.00497763084611722,0.00497763084611722,-105.0079422,39.7554471,-105.0079847,39.7554777
-12987,8907,121,0.154154812192847,0.154154812192847,-105.0079847,39.7554777,-105.0092699,39.7564502
-12988,121,8904,0.0610449885391548,0.0610449885391548,-105.0092699,39.7564502,-105.0097742,39.7568389
-12990,8325,8908,0.013157216132198,0.013157216132198,-105.0288943,39.7621125,-105.0289792,39.7622112
-12992,306,8909,0.108316294946991,0.108316294946991,-105.029097,39.762348,-105.0299448,39.763072
-12994,8328,8910,0.00899626589788406,0.00899626589788406,-105.0300154,39.7621147,-105.0300335,39.7621944
-12995,8910,8338,0.040824296618527,0.040824296618527,-105.0300335,39.7621944,-105.0300407,39.7625615
-12996,8338,6084,0.0494050923488005,0.0494050923488005,-105.0300407,39.7625615,-105.0300536,39.7630057
-12997,6084,8909,0.0118673496888767,0.0118673496888767,-105.0300536,39.7630057,-105.0299448,39.763072
-12998,8909,743,0.0430251864291126,0.0430251864291126,-105.0299448,39.763072,-105.0300547,39.7634496
-12999,743,4526,0.0484294102772242,0.0484294102772242,-105.0300547,39.7634496,-105.030062,39.7638851
-13000,4526,607,0.0194349740430761,0.0194349740430761,-105.030062,39.7638851,-105.0300516,39.7640597
-13001,607,8355,0.0344276469779443,0.0344276469779443,-105.0300516,39.7640597,-105.0300476,39.7643693
-13002,8355,3974,0.0402278696203799,0.0402278696203799,-105.0300476,39.7643693,-105.0299675,39.7647258
-13004,8911,2658,0.732133935065161,0.732133935065161,-104.9912548,39.7699266,-104.9890044,39.7762796
-13012,8915,8916,0.408272009335824,0.408272009335824,-104.9895806,39.7764348,-104.9907275,39.7728705
-13090,1914,6117,0.200190217467506,0.200190217467506,-104.972136,39.707488,-104.9721753,39.7092881
-13018,8922,8923,0.320042964228513,0.320042964228513,-104.9912716,39.7717176,-104.9942478,39.7699708
-13022,8265,8926,0.339879399665874,0.339879399665874,-104.9903119,39.7820401,-104.989367,39.779071
-13027,4265,279,0.0652387434169228,0.0652387434169228,-104.9869736,39.7783568,-104.987002,39.7789431
-13029,494,8927,0.349190481522976,0.349190481522976,-104.992407,39.7804327,-104.9887446,39.7818256
-13040,8104,8678,0.200106495095782,0.200106495095782,-104.9912065,39.7783357,-104.9912089,39.7765361
-13042,8932,8933,0.108557788789167,0.108557788789167,-104.9900544,39.7765237,-104.9887841,39.7765237
-13044,8677,8932,0.0500470435519063,0.0500470435519063,-104.99064,39.7765283,-104.9900544,39.7765237
-13046,8933,6917,0.0967430583925215,0.0967430583925215,-104.9887841,39.7765237,-104.9879258,39.777091
-13050,8936,8937,0.198244621757318,0.198244621757318,-104.9889754,39.7833371,-104.9891177,39.7851166
-13084,8956,8756,0.203550658006643,0.203550658006643,-104.9419095,39.6965915,-104.9418766,39.6947611
-13052,8938,8939,0.428260593428089,0.428260593428089,-104.988834,39.791086,-104.9895413,39.7872731
-13053,8939,8425,0.201936465504692,0.201936465504692,-104.9895413,39.7872731,-104.9895725,39.7854572
-13055,8939,8941,0.203022755730075,0.203022755730075,-104.9895413,39.7872731,-104.9897554,39.7854547
-13057,8931,8942,0.152950212219782,0.152950212219782,-104.9953405,39.768167,-104.9969401,39.7675503
-13059,8943,8931,0.0786273196751871,0.0786273196751871,-104.9945316,39.7685038,-104.9953405,39.768167
-19033,256,10159,0.12356745711476,0.12356745711476,-104.9516897,39.7797769,-104.9503671,39.7793277
-13063,8945,8946,0.104572805049419,0.104572805049419,-104.9946559,39.7678998,-104.9938162,39.7672158
-13067,8949,432,0.545131832456565,0.545131832456565,-104.9945174,39.7681578,-104.9902144,39.7717766
-13068,432,8950,0.686001065667251,0.686001065667251,-104.9902144,39.7717766,-104.9892186,39.7778983
-13070,8951,8949,0.0797207044078447,0.0797207044078447,-104.9953492,39.7678334,-104.9945174,39.7681578
-13074,8952,8953,0.195031053860659,0.195031053860659,-104.9945443,39.7680713,-104.9925416,39.768912
-13076,99,3503,0.199966819322067,0.199966819322067,-104.9430615,39.7001973,-104.943078,39.698399
-13077,3503,8954,0.201518791118212,0.201518791118212,-104.943078,39.698399,-104.943035,39.696587
-13078,8954,8755,0.203764704692679,0.203764704692679,-104.943035,39.696587,-104.9430353,39.6947545
-13079,8755,7193,0.202942329745549,0.202942329745549,-104.9430353,39.6947545,-104.9430302,39.6929294
-13080,7193,7746,0.401362186865274,0.401362186865274,-104.9430302,39.6929294,-104.943009,39.6893199
-13081,7746,8955,0.585986287872625,0.585986287872625,-104.943009,39.6893199,-104.9430138,39.68405
-13082,101,3504,0.19989908085758,0.19989908085758,-104.9418857,39.7001887,-104.9419144,39.6983911
-13083,3504,8956,0.200106829133291,0.200106829133291,-104.9419144,39.6983911,-104.9419095,39.6965915
-13085,8756,7194,0.202942348322105,0.202942348322105,-104.9418766,39.6947611,-104.9418714,39.692936
-13087,1087,8957,0.00893112007684357,0.00893112007684357,-104.9724071,39.7074855,-104.9724094,39.7074052
-13088,8957,1082,0.038563824899443,0.038563824899443,-104.9724094,39.7074052,-104.9724743,39.707062
-13091,6117,3204,0.200871492111254,0.200871492111254,-104.9721753,39.7092881,-104.9721975,39.7110945
-13092,3204,3094,0.202111971416858,0.202111971416858,-104.9721975,39.7110945,-104.9721825,39.7129121
-13093,3094,1749,0.143511782143127,0.143511782143127,-104.9721825,39.7129121,-104.9721944,39.7142027
-13096,8925,8917,0.011822810789309,0.011822810789309,-104.9949053,39.7699691,-104.9949225,39.7698636
-13098,8959,602,0.0536722144567161,0.0536722144567161,-104.9949911,39.7695799,-104.9952229,39.7691313
-13099,602,8962,0.0387695912622113,0.0387695912622113,-104.9952229,39.7691313,-104.9951474,39.7687875
-13100,8962,8948,0.175808350127672,0.175808350127672,-104.9951474,39.7687875,-104.9949826,39.7672115
-13101,8948,428,0.00954052470619231,0.00954052470619231,-104.9949826,39.7672115,-104.9949826,39.7671257
-13102,428,7933,0.160696268160677,0.160696268160677,-104.9949826,39.7671257,-104.9950255,39.7656809
-13104,8918,8924,0.012486102804665,0.012486102804665,-104.9947937,39.769857,-104.9947852,39.7699691
-13105,8924,2420,0.0580706601904793,0.0580706601904793,-104.9947852,39.7699691,-104.9948281,39.7704903
-13108,8964,8965,0.125224497044451,0.125224497044451,-104.9950202,39.7634385,-104.9949826,39.7623127
-13110,8965,2192,0.356365737888712,0.356365737888712,-104.9949826,39.7623127,-104.9937863,39.7592426
-13135,4848,1531,0.0955193854848385,0.0955193854848385,-104.9915939,39.7606983,-104.9909332,39.7613911
-13111,2192,1611,0.254354724276405,0.254354724276405,-104.9937863,39.7592426,-104.9928744,39.7570652
-13112,1611,8852,0.0391111849621532,0.0391111849621532,-104.9928744,39.7570652,-104.9926518,39.7567579
-13114,8966,7934,0.183569029359489,0.183569029359489,-104.9948109,39.7640317,-104.9948315,39.7656825
-13116,2045,8967,0.0657780447895409,0.0657780447895409,-104.984465,39.7671944,-104.9850034,39.7676171
-13119,1742,5213,0.229560371023495,0.229560371023495,-104.9851236,39.7677094,-104.9870231,39.769169
-13120,5213,640,0.0648517231107158,0.0648517231107158,-104.9870231,39.769169,-104.9875489,39.7695895
-14585,9392,2833,0.210508246764738,0.210508246764738,-105.0252309,39.782151,-105.0252481,39.7802579
-13122,7933,8963,0.200908071446329,0.200908071446329,-104.9950255,39.7656809,-104.9950178,39.7638741
-13124,7934,8969,0.0906737639231845,0.0906737639231845,-104.9948315,39.7656825,-104.9948199,39.7664979
-13125,8969,429,0.0698124130115735,0.0698124130115735,-104.9948199,39.7664979,-104.9948109,39.7671257
-13126,429,8947,0.0102744112219317,0.0102744112219317,-104.9948109,39.7671257,-104.9948109,39.7672181
-13127,8947,8970,0.0586653743681201,0.0586653743681201,-104.9948109,39.7672181,-104.9947845,39.7677453
-13128,8970,601,0.102766368620144,0.102766368620144,-104.9947845,39.7677453,-104.9947852,39.7686695
-13157,8989,1285,0.118339572755071,0.118339572755071,-105.0193135,39.7576062,-105.0205433,39.7580949
-13129,601,8973,0.0999362244261846,0.0999362244261846,-104.9947852,39.7686695,-104.9948538,39.7695667
-13130,8973,8918,0.0326860113699392,0.0326860113699392,-104.9948538,39.7695667,-104.9947937,39.769857
-13132,2193,8237,0.11471912407663,0.11471912407663,-104.9954278,39.7578265,-104.9963555,39.757081
-13133,8237,8974,0.0761048371438857,0.0761048371438857,-104.9963555,39.757081,-104.9970707,39.7566734
-13443,9077,4179,0.169049790102584,0.169049790102584,-104.9941038,39.7044276,-104.9951206,39.7057312
-13137,8974,4844,0.0408566656014099,0.0408566656014099,-104.9970707,39.7566734,-104.9974984,39.7565094
-13139,8975,8915,0.161267451240187,0.161267451240187,-104.9895886,39.7778851,-104.9895806,39.7764348
-13164,8976,8977,0.00802909585520281,0.00802909585520281,-105.0250886,39.760233,-105.0251674,39.7602723
-13140,8915,8979,0.511309857046827,0.511309857046827,-104.9895806,39.7764348,-104.9905824,39.7719014
-13142,8950,8980,0.295444981113679,0.295444981113679,-104.9892186,39.7778983,-104.9891666,39.780555
-13144,8981,8982,0.155762064195337,0.155762064195337,-104.9891558,39.7819521,-104.9891588,39.7833529
-14605,9398,8233,0.0099630690934953,0.0099630690934953,-105.0252853,39.7620928,-105.0252854,39.7620032
-13146,8983,8984,0.153794064127447,0.153794064127447,-104.9895187,39.7819231,-104.9895148,39.78054
-13148,8985,8986,0.0143228031361841,0.0143228031361841,-105.013005,39.7555233,-105.0131588,39.7555744
-13149,8986,8496,0.0694983470285585,0.0694983470285585,-105.0131588,39.7555744,-105.013905,39.7558225
-13150,8496,398,0.120004619664384,0.120004619664384,-105.013905,39.7558225,-105.0152017,39.756236
-13151,398,8987,0.0577858842103034,0.0577858842103034,-105.0152017,39.756236,-105.01584,39.7564071
-13152,8987,637,0.099744132155093,0.099744132155093,-105.01584,39.7564071,-105.016925,39.7567371
-13153,637,6436,0.0832880379381437,0.0832880379381437,-105.016925,39.7567371,-105.0178047,39.7570591
-13154,6436,21,0.0571009168797096,0.0571009168797096,-105.0178047,39.7570591,-105.0184092,39.7572776
-13155,21,8988,0.0791847444931621,0.0791847444931621,-105.0184092,39.7572776,-105.0192467,39.7575819
-13158,1285,2962,0.0719310735484076,0.0719310735484076,-105.0205433,39.7580949,-105.0212514,39.7584444
-13159,2962,8991,0.0186493582069224,0.0186493582069224,-105.0212514,39.7584444,-105.0214364,39.7585333
-13160,8991,8992,0.187353348628226,0.187353348628226,-105.0214364,39.7585333,-105.0232439,39.7594863
-13161,8992,8351,0.0990161897507714,0.0990161897507714,-105.0232439,39.7594863,-105.024297,39.7598572
-13162,8351,8993,0.00963797122366648,0.00963797122366648,-105.024297,39.7598572,-105.0243946,39.7599006
-13163,8993,8976,0.0698946708143702,0.0698946708143702,-105.0243946,39.7599006,-105.0250886,39.760233
-13165,8977,8994,0.012930744273385,0.012930744273385,-105.0251674,39.7602723,-105.0252881,39.7603424
-13167,8451,8985,0.0708838190049254,0.0708838190049254,-105.0122583,39.7552461,-105.013005,39.7555233
-13169,2877,7692,0.030123526159425,0.030123526159425,-104.9479343,39.7849217,-104.9475818,39.7849256
-13173,8996,8143,0.201053290850133,0.201053290850133,-104.9560968,39.781931,-104.956087,39.7837391
-13174,8143,8997,0.150730663136006,0.150730663136006,-104.956087,39.7837391,-104.956286,39.785086
-13176,2794,5261,0.132082373792006,0.132082373792006,-104.9559387,39.766929,-104.9559252,39.7681168
-13178,5853,1338,0.200417735783644,0.200417735783644,-105.016828,39.7148117,-105.016828,39.7130093
-13179,1338,8998,0.206394741682614,0.206394741682614,-105.016828,39.7130093,-105.0168967,39.7111539
-13181,8998,4698,0.201909087963534,0.201909087963534,-105.0168967,39.7111539,-105.0169053,39.7093381
-13182,4698,8999,0.201909088033291,0.201909088033291,-105.0169053,39.7093381,-105.0169139,39.7075223
-13183,8999,9000,0.201186325895839,0.201186325895839,-105.0169139,39.7075223,-105.0169053,39.705713
-13184,9000,6822,0.198983321230549,0.198983321230549,-105.0169053,39.705713,-105.0169053,39.7039235
-13185,6822,770,0.132908321867952,0.132908321867952,-105.0169053,39.7039235,-105.0168881,39.7027283
-13187,1638,8999,0.102808714105755,0.102808714105755,-105.0157122,39.7075091,-105.0169139,39.7075223
-13188,8999,4216,0.0999229348013983,0.0999229348013983,-105.0169139,39.7075223,-105.0180812,39.7074893
-13189,4216,8095,0.0991443160837587,0.0991443160837587,-105.0180812,39.7074893,-105.0192399,39.7075091
-13190,8095,196,0.0991307294664674,0.0991307294664674,-105.0192399,39.7075091,-105.0203986,39.7074959
-13191,196,2925,0.0983869258474561,0.0983869258474561,-105.0203986,39.7074959,-105.0215487,39.7075025
-13193,5307,1463,0.0991311193927209,0.0991311193927209,-105.0227074,39.7075091,-105.0238662,39.7075157
-13194,1463,5437,0.103145293575034,0.103145293575034,-105.0238662,39.7075157,-105.0250692,39.7075784
-13196,1641,9000,0.10355145810147,0.10355145810147,-105.0156951,39.7057328,-105.0169053,39.705713
-13197,9000,4217,0.0998824134603326,0.0998824134603326,-105.0169053,39.705713,-105.0180726,39.7056932
-13198,4217,8096,0.0998581597847897,0.0998581597847897,-105.0180726,39.7056932,-105.0192399,39.7056932
-13199,8096,197,0.0983977211710877,0.0983977211710877,-105.0192399,39.7056932,-105.02039,39.70568
-13200,197,2926,0.0983895151379973,0.0983895151379973,-105.02039,39.70568,-105.0215401,39.7056866
-13201,2926,5308,0.0991337377550934,0.0991337377550934,-105.0215401,39.7056866,-105.0226989,39.7056932
-13202,5308,1464,0.0991224618714554,0.0991224618714554,-105.0226989,39.7056932,-105.0238576,39.7056932
-13203,1464,5440,0.103536651588581,0.103536651588581,-105.0238576,39.7056932,-105.0250679,39.7056934
-13205,201,2928,0.102050045456718,0.102050045456718,-105.0203473,39.7004104,-105.0215401,39.7004038
-13206,2928,5310,0.0991386153517731,0.0991386153517731,-105.0215401,39.7004038,-105.0226989,39.7004038
-13207,5310,1466,0.099890094841465,0.099890094841465,-105.0226989,39.7004038,-105.0238662,39.700384
-13208,1466,5445,0.102288602469368,0.102288602469368,-105.0238662,39.700384,-105.0250612,39.7004136
-13209,5445,9003,0.20221504164542,0.20221504164542,-105.0250612,39.7004136,-105.0274242,39.7003717
-13210,9003,7922,0.00954769987851559,0.00954769987851559,-105.0274242,39.7003717,-105.0275358,39.7003717
-13211,7922,4407,0.193513161405962,0.193513161405962,-105.0275358,39.7003717,-105.0297971,39.7003312
-13212,4407,9004,0.22689488985342,0.22689488985342,-105.0297971,39.7003312,-105.0324492,39.7003312
-13213,9004,4314,0.17109885981524,0.17109885981524,-105.0324492,39.7003312,-105.0344491,39.7003246
-13214,4314,4501,0.0954627697803603,0.0954627697803603,-105.0344491,39.7003246,-105.0355649,39.7003312
-13215,4501,7813,0.103538745444113,0.103538745444113,-105.0355649,39.7003312,-105.0367751,39.7003246
-13216,7813,5077,0.099141030065187,0.099141030065187,-105.0367751,39.7003246,-105.0379338,39.7003378
-13217,5077,8012,0.101361319209047,0.101361319209047,-105.0379338,39.7003378,-105.0391183,39.7003576
-13218,8012,6831,0.0984053279969797,0.0984053279969797,-105.0391183,39.7003576,-105.0402684,39.7003444
-13219,6831,6983,0.0507122349978986,0.0507122349978986,-105.0402684,39.7003444,-105.0408606,39.7003642
-13220,6983,6974,0.0492014587539049,0.0492014587539049,-105.0408606,39.7003642,-105.0414357,39.7003642
-13221,6974,7944,0.0815359432635548,0.0815359432635548,-105.0414357,39.7003642,-105.0423884,39.700384
-13222,7944,6363,0.117492028011777,0.117492028011777,-105.0423884,39.700384,-105.0437617,39.7003774
-13223,6363,6659,0.128518000967454,0.128518000967454,-105.0437617,39.7003774,-105.045239,39.700587
-13224,6659,5340,0.248378842685992,0.248378842685992,-105.045239,39.700587,-105.0481332,39.700411
-13225,5340,9007,0.436836188101395,0.436836188101395,-105.0481332,39.700411,-105.0532391,39.7004403
-13226,5447,9008,0.0954198714626642,0.0954198714626642,-105.0250598,39.6985284,-105.0261751,39.6985266
-13227,9008,5974,0.0150605452925665,0.0150605452925665,-105.0261751,39.6985266,-105.0263476,39.6984996
-13229,5443,7920,0.209496436784339,0.209496436784339,-105.0250652,39.7022173,-105.027514,39.7022198
-13230,7920,4409,0.196049081122935,0.196049081122935,-105.027514,39.7022198,-105.0298056,39.7022132
-13232,9009,4311,0.174051720567411,0.174051720567411,-105.0324149,39.7022132,-105.0344491,39.7022396
-13234,5439,7917,0.209760382857472,0.209760382857472,-105.0250705,39.7058254,-105.0275225,39.7058187
-13235,7917,4414,0.1967831025196,0.1967831025196,-105.0275225,39.7058187,-105.0298228,39.7058121
-13236,4414,9010,0.224679521512281,0.224679521512281,-105.0298228,39.7058121,-105.0324492,39.7058187
-13239,5435,9011,0.112718312199178,0.112718312199178,-105.0250719,39.7094097,-105.0263896,39.7094108
-13240,9011,7916,0.0954502097686848,0.0954502097686848,-105.0263896,39.7094108,-105.0275054,39.7094042
-13242,4418,9012,0.223944278058007,0.223944278058007,-105.0298056,39.7094174,-105.0324235,39.7094306
-13243,9012,9013,0.163728342208645,0.163728342208645,-105.0324235,39.7094306,-105.0343375,39.709424
-13244,9014,9011,0.193580953488763,0.193580953488763,-105.0263991,39.7111517,-105.0263896,39.7094108
-13272,5331,5695,0.176288296878523,0.176288296878523,-105.0362199,39.7087576,-105.0362429,39.7071723
-13246,1844,2578,0.172509377214494,0.172509377214494,-105.030046,39.7213676,-105.0300374,39.722919
-13248,6839,8008,0.0576758204139334,0.0576758204139334,-105.0396161,39.7039367,-105.0391344,39.7035738
-13250,8009,6981,0.144663680916955,0.144663680916955,-105.0391612,39.7031575,-105.040852,39.7031773
-13252,9015,6845,0.0843525238323184,0.0843525238323184,-105.043237,39.711272,-105.0432381,39.7105134
-13253,6845,4689,0.0881118827688874,0.0881118827688874,-105.0432381,39.7105134,-105.043221,39.7097211
-13254,4689,4697,0.0264412698588759,0.0264412698588759,-105.043221,39.7097211,-105.0432124,39.7094834
-13255,4697,7466,0.0631647371963507,0.0631647371963507,-105.0432124,39.7094834,-105.0431952,39.7089155
-13256,7466,9016,0.0866600751763154,0.0866600751763154,-105.0431952,39.7089155,-105.043221,39.7081364
-13257,9016,7453,0.0117533037462049,0.0117533037462049,-105.043221,39.7081364,-105.043221,39.7080307
-13258,7453,2091,0.0764142388554106,0.0764142388554106,-105.043221,39.7080307,-105.0431866,39.707344
-13259,2091,5691,0.0521281816109867,0.0521281816109867,-105.0431866,39.707344,-105.0431866,39.7068752
-13260,5691,5680,0.0375154291161679,0.0375154291161679,-105.0431866,39.7068752,-105.0432124,39.7065384
-13261,5680,6316,0.0896056080016293,0.0896056080016293,-105.0432124,39.7065384,-105.0432381,39.7057328
-13262,6316,4963,0.0888719448734625,0.0888719448734625,-105.0432381,39.7057328,-105.0432124,39.7049338
-13264,6826,5338,0.0370211552910964,0.0370211552910964,-105.0432124,39.7042603,-105.0430777,39.7039439
-13266,9016,9017,0.044781886028432,0.044781886028432,-105.043221,39.7081364,-105.0437445,39.7081364
-13267,6842,4692,0.112329114895897,0.112329114895897,-105.0373845,39.7104606,-105.0373845,39.7094504
-13268,4692,5332,0.162956489748023,0.162956489748023,-105.0373845,39.7094504,-105.0373528,39.7079851
-13270,6840,4691,0.113830246405759,0.113830246405759,-105.0362258,39.7104609,-105.0362258,39.7094372
-13271,4691,5331,0.0755697574983074,0.0755697574983074,-105.0362258,39.7094372,-105.0362199,39.7087576
-13274,5694,6319,0.174033677833605,0.174033677833605,-105.0360627,39.7071657,-105.036097,39.7056008
-13275,6319,9018,0.182109806928741,0.182109806928741,-105.036097,39.7056008,-105.0360799,39.7039631
-13277,4310,7811,0.201267372547373,0.201267372547373,-105.0344398,39.7030321,-105.0367923,39.7030519
-13278,7811,8010,0.202389778156291,0.202389778156291,-105.0367923,39.7030519,-105.039158,39.703065
-13281,7812,5076,0.100599027218817,0.100599027218817,-105.0367751,39.7021472,-105.037951,39.7021472
-13282,5076,8011,0.100623102109681,0.100623102109681,-105.037951,39.7021472,-105.0391269,39.702167
-13283,8011,6982,0.147599810375252,0.147599810375252,-105.0391269,39.702167,-105.040852,39.7021868
-13284,6982,7943,0.131458423393202,0.131458423393202,-105.040852,39.7021868,-105.0423884,39.702167
-13285,7943,3300,0.0829788157522616,0.0829788157522616,-105.0423884,39.702167,-105.0433583,39.7021604
-13286,3300,5727,0.0905493512456201,0.0905493512456201,-105.0433583,39.7021604,-105.0444167,39.7021543
-13287,5727,5339,0.0993780908642813,0.0993780908642813,-105.0444167,39.7021543,-105.0455771,39.7021954
-13289,9019,9020,0.473924441922911,0.473924441922911,-105.0334154,39.6894303,-105.0334238,39.6851682
-13290,5441,7918,0.212183518066811,0.212183518066811,-105.0250601,39.7039517,-105.0275397,39.7039962
-13291,7918,4411,0.196063540031297,0.196063540031297,-105.0275397,39.7039962,-105.0298314,39.704016
-13292,4411,9021,0.221019052884505,0.221019052884505,-105.0298314,39.704016,-105.0324149,39.7040028
-13293,9021,4282,0.176970513595043,0.176970513595043,-105.0324149,39.7040028,-105.0344834,39.703983
-13295,4326,9018,0.0881179267079727,0.0881179267079727,-105.0350499,39.7039565,-105.0360799,39.7039631
-13296,9018,7810,0.0594732573783121,0.0594732573783121,-105.0360799,39.7039631,-105.0367751,39.7039631
-13297,7810,7817,0.0279069878470498,0.0279069878470498,-105.0367751,39.7039631,-105.0371012,39.7039697
-13298,7817,5075,0.0895984878523876,0.0895984878523876,-105.0371012,39.7039697,-105.0381484,39.703983
-13299,5075,8007,0.082290456587143,0.082290456587143,-105.0381484,39.703983,-105.0391097,39.7039565
-13300,8007,6839,0.0433776365307967,0.0433776365307967,-105.0391097,39.7039565,-105.0396161,39.7039367
-13301,6839,6979,0.105025257907842,0.105025257907842,-105.0396161,39.7039367,-105.0408435,39.7039169
-14885,9012,7486,0.0983880214663299,0.0983880214663299,-105.0324235,39.7094306,-105.0324321,39.7085458
-13303,9003,4959,0.128621575011946,0.128621575011946,-105.0274242,39.7003717,-105.0274024,39.6992151
-13304,4959,9022,0.0561090389096707,0.0561090389096707,-105.0274024,39.6992151,-105.0274035,39.6987105
-13305,9022,9023,0.219664135455113,0.219664135455113,-105.0274035,39.6987105,-105.0274276,39.6967351
-13307,9024,1734,0.0339090081692689,0.0339090081692689,-105.0038894,39.6915551,-105.0039238,39.6912513
-13308,1734,9025,0.199586826055962,0.199586826055962,-105.0039238,39.6912513,-105.0039367,39.6894564
-13310,162,1723,0.148414326457229,0.148414326457229,-105.0166181,39.6931468,-105.0164379,39.6918193
-13312,164,1724,0.19589389224901,0.19589389224901,-105.0175867,39.6931453,-105.0171932,39.6914098
-13313,1724,9026,0.21539258017212,0.21539258017212,-105.0171932,39.6914098,-105.0166353,39.6895209
-13315,166,1725,0.23958811593923,0.23958811593923,-105.018536,39.693139,-105.0179828,39.6910268
-13316,1725,9027,0.172261015966003,0.172261015966003,-105.0179828,39.6910268,-105.017588,39.6895077
-13318,168,1727,0.256304305915683,0.256304305915683,-105.0194505,39.693127,-105.0194505,39.690822
-13319,1727,8081,0.0911159242290505,0.0911159242290505,-105.0194505,39.690822,-105.0194162,39.690003
-13321,9028,9029,0.0459665066705729,0.0459665066705729,-105.0112026,39.7293142,-105.0117401,39.7293113
-13323,9030,9031,0.204682511562437,0.204682511562437,-105.0266512,39.7293064,-105.0263427,39.7311318
-13324,9031,6588,0.201464690183835,0.201464690183835,-105.0263427,39.7311318,-105.0263693,39.7329435
-13325,6588,7109,0.201819605073549,0.201819605073549,-105.0263693,39.7329435,-105.0263626,39.7347585
-13326,7109,9034,0.0380490136329461,0.0380490136329461,-105.0263626,39.7347585,-105.0263528,39.7351006
-13327,9035,9036,0.202787954952135,0.202787954952135,-105.0275173,39.7293147,-105.0275272,39.7311384
-13328,9036,6589,0.200863566889439,0.200863566889439,-105.0275272,39.7311384,-105.0275196,39.7329448
-13329,6589,7110,0.201074334121883,0.201074334121883,-105.0275196,39.7329448,-105.027555,39.7347529
-13331,9037,9031,0.102130234291417,0.102130234291417,-105.0251484,39.7311316,-105.0263427,39.7311318
-13332,9031,9036,0.101294841162053,0.101294841162053,-105.0263427,39.7311318,-105.0275272,39.7311384
-13333,9036,6128,0.0961527434944637,0.0961527434944637,-105.0275272,39.7311384,-105.0286516,39.7311384
-13334,6128,3971,0.0990967592348727,0.0990967592348727,-105.0286516,39.7311384,-105.0298103,39.7311516
-13336,7017,1406,0.0990967592360877,0.0990967592360877,-105.0309776,39.7311384,-105.0321363,39.7311516
-13337,1406,7390,0.0982252697684911,0.0982252697684911,-105.0321363,39.7311516,-105.0332849,39.7311446
-13338,7390,5217,0.100064145492252,0.100064145492252,-105.0332849,39.7311446,-105.034455,39.7311372
-13340,5377,9038,0.0981767550682586,0.0981767550682586,-105.044041,39.7339173,-105.0440496,39.7330344
-13342,9041,9042,0.107883824327089,0.107883824327089,-105.0428651,39.7330461,-105.0428737,39.7340163
-13344,9043,9044,0.111762023714712,0.111762023714712,-105.040479,39.7340163,-105.0404793,39.7330112
-13346,7805,9045,0.163613143703316,0.163613143703316,-104.9768041,39.7875035,-104.9767649,39.7889746
-13347,4982,9046,0.151151791011959,0.151151791011959,-104.9800523,39.7855977,-104.9782841,39.7855581
-13348,9046,4333,0.0931833318260777,0.0931833318260777,-104.9782841,39.7855581,-104.9771941,39.7855318
-13349,4333,5039,0.084348128639754,0.084348128639754,-104.9771941,39.7855318,-104.976207,39.7855252
-13351,2869,9047,0.0643526028257267,0.0643526028257267,-104.9835884,39.7855828,-104.9835799,39.7850041
-13352,2869,5283,0.189728403936972,0.189728403936972,-104.9835884,39.7855828,-104.9834597,39.7872862
-13354,9048,6951,0.21054969022045,0.21054969022045,-104.9790788,39.7799923,-104.9786733,39.78186
-13355,6951,8084,0.110877740512572,0.110877740512572,-104.9786733,39.78186,-104.9784386,39.7828407
-13356,8084,8141,0.0381711926062465,0.0381711926062465,-104.9784386,39.7828407,-104.9783643,39.7831792
-13357,8141,5971,0.0998550766587588,0.0998550766587588,-104.9783643,39.7831792,-104.978267,39.7840741
-13358,5971,9046,0.165019740176851,0.165019740176851,-104.978267,39.7840741,-104.9782841,39.7855581
-13359,9046,7804,0.203892252907028,0.203892252907028,-104.9782841,39.7855581,-104.978267,39.7873917
-13360,7804,9049,0.488623985679594,0.488623985679594,-104.978267,39.7873917,-104.978271,39.791786
-13361,577,9048,0.0924966938169246,0.0924966938169246,-104.979193,39.7791651,-104.9790788,39.7799923
-13369,9054,1743,0.0233197702600261,0.0233197702600261,-104.9786512,39.775667,-104.9787558,39.7758607
-13370,1743,4270,0.277932467642318,0.277932467642318,-104.9787558,39.7758607,-104.9792574,39.7783303
-13371,4270,310,0.0394728122356983,0.0394728122356983,-104.9792574,39.7783303,-104.9792332,39.7786848
-13372,310,577,0.0535172942987349,0.0535172942987349,-104.9792332,39.7786848,-104.979193,39.7791651
-13374,9055,9056,0.0694449359265994,0.0694449359265994,-104.9728754,39.7708776,-104.9734488,39.7704351
-13375,9056,2325,0.190938968451781,0.190938968451781,-104.9734488,39.7704351,-104.9750376,39.7692279
-13376,2325,4279,0.147346976573119,0.147346976573119,-104.9750376,39.7692279,-104.9762513,39.7682868
-13378,4286,9055,0.0222915391297905,0.0222915391297905,-104.972693,39.7710209,-104.9728754,39.7708776
-13380,1349,1615,0.0587612563553368,0.0587612563553368,-104.9740676,39.7719084,-104.9745571,39.7722795
-13381,1615,7135,0.106001129731548,0.106001129731548,-104.9745571,39.7722795,-104.9754213,39.7729633
-13383,5260,9057,0.107843300513683,0.107843300513683,-104.9589552,39.7681242,-104.958998,39.7690935
-13384,6952,9058,0.0875153511963366,0.0875153511963366,-104.9777379,39.7804804,-104.9767938,39.7801754
-13386,9058,5767,0.0813716345984657,0.0813716345984657,-104.9767938,39.7801754,-104.9758538,39.7800585
-13387,5767,312,0.370850163813996,0.370850163813996,-104.9758538,39.7800585,-104.971535,39.780386
-13390,9048,9052,0.36535949731556,0.36535949731556,-104.9790788,39.7799923,-104.9833542,39.7800156
-13394,9060,8966,0.196473660543131,0.196473660543131,-104.9947546,39.7622653,-104.9948109,39.7640317
-13396,9061,5080,0.358471972755657,0.358471972755657,-104.9981155,39.7670982,-105.001279,39.7649816
-13397,5080,9062,0.674602285535072,0.674602285535072,-105.001279,39.7649816,-105.0060948,39.7601751
-13398,9062,3176,0.289568864041751,0.289568864041751,-105.0060948,39.7601751,-105.0085577,39.7583871
-13399,3176,527,0.133561854308294,0.133561854308294,-105.0085577,39.7583871,-105.009688,39.7575578
-18560,10318,10319,0.255397297870644,0.255397297870644,-105.0297002,39.7834301,-105.0275696,39.7818193
-13400,527,343,0.340886700679976,0.340886700679976,-105.009688,39.7575578,-105.0125925,39.7554572
-13401,343,537,0.428322489908352,0.428322489908352,-105.0125925,39.7554572,-105.0159762,39.7526163
-13402,537,474,0.822980283733396,0.822980283733396,-105.0159762,39.7526163,-105.0180056,39.7453814
-13403,474,8438,0.152037422281902,0.152037422281902,-105.0180056,39.7453814,-105.0171026,39.7442035
-13407,4427,9063,0.114941491865609,0.114941491865609,-104.9981322,39.7667419,-104.9969297,39.7672047
-13409,9063,8912,0.118971180199303,0.118971180199303,-104.9969297,39.7672047,-104.9956858,39.7676849
-13413,8236,125,0.0903470808346396,0.0903470808346396,-105.0034855,39.7597433,-105.0040777,39.7604163
-13415,9065,9066,0.0810250214751567,0.0810250214751567,-105.0037267,39.7605614,-105.0029207,39.7601779
-13417,9066,7279,0.116655009841785,0.116655009841785,-105.0029207,39.7601779,-105.0017875,39.7595933
-13419,276,9067,0.0692041764264314,0.0692041764264314,-105.0179907,39.7399138,-105.0172314,39.7396983
-13500,9108,9109,0.0476133357747153,0.0476133357747153,-105.0059283,39.7256613,-105.0053716,39.7256561
-13421,9067,2189,0.114532021981465,0.114532021981465,-105.0172314,39.7396983,-105.0159036,39.7398341
-13423,9068,4553,0.327000385366346,0.327000385366346,-105.017924,39.736752,-105.021729,39.7364576
-13425,8428,9069,0.0507531626876375,0.0507531626876375,-105.0172942,39.7368917,-105.0178645,39.7367652
-13426,9069,9068,0.00529520129182755,0.00529520129182755,-105.0178645,39.7367652,-105.017924,39.736752
-13428,9070,9071,0.0606488327577038,0.0606488327577038,-105.0164101,39.7293208,-105.0171193,39.7293222
-13430,9071,9072,0.009176031077042,0.009176031077042,-105.0171193,39.7293222,-105.0172266,39.7293225
-13431,9072,4642,0.175105976981708,0.175105976981708,-105.0172266,39.7293225,-105.0192742,39.7293289
-13432,4642,7954,0.0487370399178714,0.0487370399178714,-105.0192742,39.7293289,-105.0198441,39.7293262
-13433,7954,4547,0.158995972178669,0.158995972178669,-105.0198441,39.7293262,-105.0217032,39.7293091
-13434,4547,9073,0.292416775735491,0.292416775735491,-105.0217032,39.7293091,-105.0251226,39.7293097
-13436,9074,9075,0.0675438073285673,0.0675438073285673,-104.9985883,39.7111864,-104.9993779,39.7111909
-13438,9075,409,0.0146789910973018,0.0146789910973018,-104.9993779,39.7111909,-104.9995495,39.7111919
-13439,409,9076,0.0166512433271008,0.0166512433271008,-104.9995495,39.7111919,-104.999744,39.711198
-13441,4838,326,0.0588523383992881,0.0588523383992881,-104.9964173,39.7083799,-104.9969556,39.7087095
-13449,9081,9082,0.443932946896766,0.443932946896766,-105.0008195,39.7257692,-105.0060104,39.7257674
-13451,1401,9083,0.0611691476045831,0.0611691476045831,-105.0324911,39.7252609,-105.0324948,39.725811
-13453,9083,6208,0.0330698135159164,0.0330698135159164,-105.0324948,39.725811,-105.0324968,39.7261084
-13454,6208,7645,0.178373846931983,0.178373846931983,-105.0324968,39.7261084,-105.032514,39.7277125
-13455,7645,9086,0.177258150455768,0.177258150455768,-105.032514,39.7277125,-105.0325034,39.7293066
-13498,9107,3956,0.0601050509878674,0.0601050509878674,-105.0008408,39.7256368,-105.0001441,39.7257079
-13457,9087,9088,1.73315945419765,1.73315945419765,-105.0529649,39.72565,-105.0327002,39.7254916
-13458,9088,410,0.265082533171925,0.265082533171925,-105.0327002,39.7254916,-105.0296018,39.7254255
-13459,410,9080,0.715047499183354,0.715047499183354,-105.0296018,39.7254255,-105.0212418,39.7253265
-13460,9080,9089,0.194455760903183,0.194455760903183,-105.0212418,39.7253265,-105.0189759,39.7251813
-13462,9089,9090,0.0550554662137945,0.0550554662137945,-105.0189759,39.7251813,-105.0183322,39.7251879
-13464,9091,9092,0.473459458640042,0.473459458640042,-105.0189899,39.7253071,-105.0245174,39.7255447
-13475,9098,9032,0.307889980671666,0.307889980671666,-105.0162316,39.725012,-105.0131311,39.7236048
-13479,9090,9099,0.0142223937707519,0.0142223937707519,-105.0183322,39.7251879,-105.0181659,39.7251883
-13481,9100,9093,0.193628424072927,0.193628424072927,-105.0161161,39.7254559,-105.0183719,39.7253071
-13483,9101,9100,0.0626625130905001,0.0626625130905001,-105.0153857,39.7255006,-105.0161161,39.7254559
-13487,9103,346,0.140681499904037,0.140681499904037,-105.0065187,39.725789,-105.0077031,39.726667
-13522,9037,8064,0.00660497864323473,0.00660497864323473,-105.0251484,39.7311316,-105.0251484,39.731191
-13489,3955,9081,0.113309674251049,0.113309674251049,-105.0001889,39.7266654,-105.0008195,39.7257692
-13491,6240,5091,0.078819968233945,0.078819968233945,-104.9908905,39.7256604,-104.9908359,39.7249528
-13493,9082,9103,0.0435368095566408,0.0435368095566408,-105.0060104,39.7257674,-105.0065187,39.725789
-13494,9103,347,0.193850840943334,0.193850840943334,-105.0065187,39.725789,-105.0087846,39.7258352
-13495,347,404,0.026466812116417,0.026466812116417,-105.0087846,39.7258352,-105.0090936,39.725822
-13496,404,9106,0.11755875033606,0.11755875033606,-105.0090936,39.725822,-105.0104669,39.7257758
-13501,9109,9107,0.387486870322022,0.387486870322022,-105.0053716,39.7256561,-105.0008408,39.7256368
-13503,6204,9110,0.181291651373991,0.181291651373991,-105.0090242,39.7253711,-105.0069105,39.725495
-13505,9111,9112,0.0153902940291749,0.0153902940291749,-105.0136091,39.7256283,-105.0137882,39.7256148
-13506,9112,9101,0.137209683962048,0.137209683962048,-105.0137882,39.7256148,-105.0153857,39.7255006
-13508,9113,9111,0.075192531928865,0.075192531928865,-105.0127328,39.7256834,-105.0136091,39.7256283
-15014,455,860,0.0461629164957839,0.0461629164957839,-104.9423505,39.7367494,-104.9428903,39.736756
-13510,9114,9115,0.148585418330877,0.148585418330877,-105.0128101,39.7255315,-105.0110763,39.7256175
-13514,8582,9116,0.0682625654668292,0.0682625654668292,-105.0251054,39.7252038,-105.0251054,39.7258177
-13516,9116,237,0.0139438438014188,0.0139438438014188,-105.0251054,39.7258177,-105.0251054,39.7259431
-13517,237,7635,0.17396601741799,0.17396601741799,-105.0251054,39.7259431,-105.025114,39.7275076
-13519,7602,9073,0.102023996019348,0.102023996019348,-105.025114,39.7283922,-105.0251226,39.7293097
-13521,117,9037,0.091769841511351,0.091769841511351,-105.0251312,39.7303064,-105.0251484,39.7311316
-13523,8064,6587,0.198394254239174,0.198394254239174,-105.0251484,39.731191,-105.0251522,39.7329752
-13524,6587,5384,0.100320867880051,0.100320867880051,-105.0251522,39.7329752,-105.0251569,39.7338774
-13525,5384,7108,0.0976180261019357,0.0976180261019357,-105.0251569,39.7338774,-105.0251569,39.7347553
-13526,7108,2293,0.101160557994969,0.101160557994969,-105.0251569,39.7347553,-105.025179,39.7356649
-13527,2293,9117,0.0816968455207608,0.0816968455207608,-105.025179,39.7356649,-105.0252112,39.7363992
-13583,9134,9079,0.189350301331036,0.189350301331036,-104.9951647,39.7043993,-104.9930943,39.7037972
-13533,9118,6217,0.00293554606374767,0.00293554606374767,-105.0394723,39.7257622,-105.0394723,39.7257886
-13534,6217,7652,0.27452915439238,0.27452915439238,-105.0394723,39.7257886,-105.0394723,39.7282575
-13535,7652,8071,0.262369838158816,0.262369838158816,-105.0394723,39.7282575,-105.039492,39.730617
-13536,8071,9119,0.0614463164636613,0.0614463164636613,-105.039492,39.730617,-105.039492,39.7311696
-13538,9118,7768,0.0286215741177868,0.0286215741177868,-105.0394723,39.7257622,-105.0394723,39.7255048
-13540,9121,9122,0.0549317968438626,0.0549317968438626,-105.022529,39.7237852,-105.0222205,39.7242185
-13541,9122,9080,0.148946547669597,0.148946547669597,-105.0222205,39.7242185,-105.0212418,39.7253265
-13543,9121,4555,0.0367880997749164,0.0367880997749164,-105.022529,39.7237852,-105.0221186,39.7238843
-13545,216,9123,0.047880969118268,0.047880969118268,-105.0105654,39.7229262,-105.0109606,39.7232312
-13547,9123,447,0.333206339887537,0.333206339887537,-105.0109606,39.7232312,-105.0132294,39.7256673
-13549,2999,9124,0.314861669735557,0.314861669735557,-105.0136746,39.7263954,-105.0147476,39.7291041
-13554,579,408,0.862576839598051,0.862576839598051,-105.0080855,39.7206863,-105.0014039,39.7148758
-13568,9128,9129,0.16941277010836,0.16941277010836,-105.0149225,39.7295801,-105.0154242,39.731054
-13570,9124,9128,0.0550015048734635,0.0550015048734635,-105.0147476,39.7291041,-105.0149225,39.7295801
-13578,9132,220,0.766585324287615,0.766585324287615,-104.9861015,39.7001338,-104.9801989,39.6949471
-13615,7609,7262,0.111890561964914,0.111890561964914,-104.9383356,39.7292297,-104.9370272,39.7292302
-13579,220,566,0.637748069235424,0.637748069235424,-104.9801989,39.6949471,-104.9751917,39.6906986
-13587,9136,9137,0.450871833260349,0.450871833260349,-104.9910031,39.7032246,-104.9868714,39.7007074
-13590,8684,222,0.184496371824925,0.184496371824925,-104.9859386,39.700249,-104.9874359,39.7014431
-13591,222,9140,0.487607813488587,0.487607813488587,-104.9874359,39.7014431,-104.9922255,39.7038202
-13593,9140,9077,0.174302500151122,0.174302500151122,-104.9922255,39.7038202,-104.9941038,39.7044276
-13594,9077,9141,0.280690469581891,0.280690469581891,-104.9941038,39.7044276,-104.9960053,39.7064848
-13596,9142,118,0.0916021886608042,0.0916021886608042,-105.0111993,39.7293642,-105.0112228,39.7301878
-13597,118,6721,0.0966297992771619,0.0966297992771619,-105.0112228,39.7301878,-105.0112289,39.7310568
-13598,6721,6722,0.0414535753801991,0.0414535753801991,-105.0112289,39.7310568,-105.0112278,39.7314296
-13599,6722,2311,0.00867549185460531,0.00867549185460531,-105.0112278,39.7314296,-105.0112958,39.7314875
-13601,6580,6723,0.0197325066377101,0.0197325066377101,-105.0113223,39.732461,-105.0113508,39.7326371
-13603,9029,1240,0.0358410792262526,0.0358410792262526,-105.0117401,39.7293113,-105.0121592,39.729309
-13604,1240,4790,0.0578956777475445,0.0578956777475445,-105.0121592,39.729309,-105.0128361,39.7293183
-13605,4790,4814,0.0309664941935945,0.0309664941935945,-105.0128361,39.7293183,-105.0131982,39.7293163
-13606,4814,2156,0.0660634330770184,0.0660634330770184,-105.0131982,39.7293163,-105.0139707,39.7293204
-13607,2156,2166,0.00298513757197415,0.00298513757197415,-105.0139707,39.7293204,-105.0140055,39.7293183
-13608,2166,2183,0.165657322423627,0.165657322423627,-105.0140055,39.7293183,-105.0159426,39.7293103
-13609,2183,9070,0.039996230308656,0.039996230308656,-105.0159426,39.7293103,-105.0164101,39.7293208
-13611,3728,9143,0.0374422730466023,0.0374422730466023,-105.0028395,39.7289078,-105.0032713,39.7288521
-13613,3765,8150,0.099678431004031,0.099678431004031,-104.9406029,39.7291831,-104.9394389,39.72923
-13614,8150,7609,0.0943510009713305,0.0943510009713305,-104.9394389,39.72923,-104.9383356,39.7292297
-13616,7262,7595,0.0635463262031531,0.0635463262031531,-104.9370272,39.7292302,-104.9362843,39.7292429
-13617,7595,7599,0.0220206440979588,0.0220206440979588,-104.9362843,39.7292429,-104.9360268,39.7292429
-13618,7599,9144,0.0741982381570415,0.0741982381570415,-104.9360268,39.7292429,-104.9351592,39.7292363
-15078,7589,3366,0.105686563985576,0.105686563985576,-104.9356129,39.7656394,-104.9343764,39.7656425
-13619,9144,2022,0.0197545563564228,0.0197545563564228,-104.9351592,39.7292363,-104.9349282,39.7292369
-13620,2022,9147,0.0829434723735258,0.0829434723735258,-104.9349282,39.7292369,-104.9339583,39.7292394
-13621,9147,3355,0.0108199721778022,0.0108199721778022,-104.9339583,39.7292394,-104.9338318,39.7292375
-13623,9148,2768,0.0035576669192827,0.0035576669192827,-104.9327781,39.7292306,-104.9327365,39.7292303
-13624,2768,7013,0.0948918648713715,0.0948918648713715,-104.9327365,39.7292303,-104.9316269,39.729236
-13626,2274,8214,0.00623184642483798,0.00623184642483798,-104.9305243,39.7292319,-104.9304515,39.7292344
-13627,8214,9149,0.0892902468185094,0.0892902468185094,-104.9304515,39.7292344,-104.9294074,39.7292396
-13628,9149,8211,0.0144047767787734,0.0144047767787734,-104.9294074,39.7292396,-104.9292411,39.7292602
-13629,8211,7521,0.0807484203861095,0.0807484203861095,-104.9292411,39.7292602,-104.928297,39.7292478
-13630,7521,7522,0.0178959760293508,0.0178959760293508,-104.928297,39.7292478,-104.9280878,39.7292519
-13631,7522,2132,0.0761585237127413,0.0761585237127413,-104.9280878,39.7292519,-104.9271973,39.7292602
-13632,2132,2117,0.0261874332320613,0.0261874332320613,-104.9271973,39.7292602,-104.9268915,39.7292726
-13633,2117,5982,0.0706516490311829,0.0706516490311829,-104.9268915,39.7292726,-104.9260654,39.7292643
-13634,5982,5987,0.0312102623276897,0.0312102623276897,-104.9260654,39.7292643,-104.9257006,39.7292726
-13635,5987,5148,0.0542024830967572,0.0542024830967572,-104.9257006,39.7292726,-104.9250676,39.7292478
-13636,5148,7678,0.00643849229968441,0.00643849229968441,-104.9250676,39.7292478,-104.9249925,39.7292437
-13637,7678,9150,0.0270552275766841,0.0270552275766841,-104.9249925,39.7292437,-104.9246762,39.7292385
-13638,9150,5159,0.0130471422397109,0.0130471422397109,-104.9246762,39.7292385,-104.9245238,39.729244
-13639,5159,2336,0.0550815403379387,0.0550815403379387,-104.9245238,39.729244,-104.9238797,39.729244
-17797,9318,9592,0.0276370219250994,0.0276370219250994,-104.9873865,39.7545236,-104.9873927,39.7542751
-15154,9503,7694,0.0985863309924877,0.0985863309924877,-104.9464272,39.7874239,-104.947581,39.7874249
-13640,2336,9151,2.70099171821299,2.70099171821299,-104.9238797,39.729244,-104.8923175,39.7283409
-15853,9736,5597,0.026161521554181,0.026161521554181,-105.0435838,39.731177,-105.0438865,39.7312111
-13642,327,390,0.428713460971309,0.428713460971309,-104.9987289,39.7109039,-105.0008375,39.7144016
-13643,390,216,1.2612581668138,1.2612581668138,-105.0008375,39.7144016,-105.0105654,39.7229262
-13647,4841,9156,0.020245918680072,0.020245918680072,-104.995653,39.7037978,-104.9956359,39.7036162
-13653,9127,4841,0.714489743272739,0.714489743272739,-104.9983536,39.7098782,-104.995653,39.7037978
-13655,9160,9161,0.0611231237623731,0.0611231237623731,-104.9994442,39.6890552,-105.0001383,39.6891851
-13657,9161,9162,0.0094906074947222,0.0094906074947222,-105.0001383,39.6891851,-105.000246,39.6892055
-13658,9162,360,0.119259910634054,0.119259910634054,-105.000246,39.6892055,-105.0016107,39.6894234
-13659,360,4441,0.0977181725107,0.0977181725107,-105.0016107,39.6894234,-105.0027522,39.6894498
-13660,4441,9025,0.101356058092401,0.101356058092401,-105.0027522,39.6894498,-105.0039367,39.6894564
-13661,9025,361,0.102083424277621,0.102083424277621,-105.0039367,39.6894564,-105.0051297,39.6894631
-13662,361,6661,0.148732998262686,0.148732998262686,-105.0051297,39.6894631,-105.0068679,39.6894571
-13663,6661,1457,0.0814814185857237,0.0814814185857237,-105.0068679,39.6894571,-105.0078201,39.6894653
-13664,1457,6930,0.0803380398809936,0.0803380398809936,-105.0078201,39.6894653,-105.0087589,39.6894757
-13665,6930,9163,0.0870015008277124,0.0870015008277124,-105.0087589,39.6894757,-105.0097755,39.6894901
-13666,9163,3826,0.0559780942251715,0.0559780942251715,-105.0097755,39.6894901,-105.0104297,39.6894878
-13667,3826,5901,0.113837481725673,0.113837481725673,-105.0104297,39.6894878,-105.0117601,39.6894878
-13668,5901,1650,0.336368580358266,0.336368580358266,-105.0117601,39.6894878,-105.0156911,39.6895077
-13669,1650,9026,0.0808050552206421,0.0808050552206421,-105.0156911,39.6895077,-105.0166353,39.6895209
-13670,9026,9027,0.0815322500516298,0.0815322500516298,-105.0166353,39.6895209,-105.017588,39.6895077
-13671,9027,3968,0.0749133242052919,0.0749133242052919,-105.017588,39.6895077,-105.0184635,39.6895077
-13672,3968,205,0.163780553378706,0.163780553378706,-105.0184635,39.6895077,-105.0203775,39.6894945
-13673,205,2934,0.0793233966793332,0.0793233966793332,-105.0203775,39.6894945,-105.0213045,39.6895011
-13674,2934,2932,0.00660572151012338,0.00660572151012338,-105.0213045,39.6895011,-105.0213817,39.6895011
-13675,2932,5313,0.0749133313668845,0.0749133313668845,-105.0213817,39.6895011,-105.0222572,39.6895011
-13676,5313,5314,0.039721686292112,0.039721686292112,-105.0222572,39.6895011,-105.0227207,39.6894812
-13677,5314,1472,0.0396600103919334,0.0396600103919334,-105.0227207,39.6894812,-105.0231842,39.6894812
-13678,1472,5451,0.159004638765101,0.159004638765101,-105.0231842,39.6894812,-105.0250424,39.6894928
-13679,5451,7909,0.201247264593271,0.201247264593271,-105.0250424,39.6894928,-105.0273938,39.6894539
-13680,7909,4403,0.196833842084677,0.196833842084677,-105.0273938,39.6894539,-105.0296941,39.6894671
-13681,4403,6310,0.199805236650359,0.199805236650359,-105.0296941,39.6894671,-105.0320287,39.6894303
-13682,6310,6311,0.0399338522027804,0.0399338522027804,-105.0320287,39.6894303,-105.0324954,39.6894303
-13683,6311,9019,0.0787211142615482,0.0787211142615482,-105.0324954,39.6894303,-105.0334154,39.6894303
-18919,10398,10391,0.0932116121589892,0.0932116121589892,-105.0118932,39.7497594,-105.0127316,39.7492235
-13684,9019,4301,0.0803301037321015,0.0803301037321015,-105.0334154,39.6894303,-105.0343542,39.6894282
-13685,4301,4499,0.100692334161908,0.100692334161908,-105.0343542,39.6894282,-105.0355305,39.6894539
-13686,4499,7815,0.0988002674680887,0.0988002674680887,-105.0355305,39.6894539,-105.0366851,39.6894447
-13687,7815,5071,0.0991802868019195,0.0991802868019195,-105.0366851,39.6894447,-105.037844,39.6894614
-13688,5071,8014,0.103571412588639,0.103571412588639,-105.037844,39.6894614,-105.0390543,39.6894482
-13689,8014,6833,0.0839453108807348,0.0839453108807348,-105.0390543,39.6894482,-105.0400351,39.6894654
-14657,9411,6735,0.143528351506247,0.143528351506247,-105.0180024,39.7601634,-105.0196661,39.7603379
-13691,6976,7946,0.0984345173677437,0.0984345173677437,-105.0410323,39.6894803,-105.0421824,39.6894605
-13692,7946,3301,0.0874467814940938,0.0874467814940938,-105.0421824,39.6894605,-105.0432038,39.6894869
-13693,3301,6365,0.0895995351805866,0.0895995351805866,-105.0432038,39.6894869,-105.0442509,39.6894935
-13694,6365,6654,0.083807023997277,0.083807023997277,-105.0442509,39.6894935,-105.0452294,39.6895265
-13695,6654,9165,0.68755983150845,0.68755983150845,-105.0452294,39.6895265,-105.0532648,39.6895209
-13696,9166,9167,0.0102840052604526,0.0102840052604526,-104.9928292,39.6966756,-104.9929494,39.6966756
-13698,7423,7832,0.102961269389569,0.102961269389569,-104.9944429,39.6966822,-104.9956462,39.6966693
-13699,7832,1182,0.0975615453999259,0.0975615453999259,-104.9956462,39.6966693,-104.996786,39.6966954
-13700,1182,1359,0.100609727856237,0.100609727856237,-104.996786,39.6966954,-104.9979619,39.6967021
-13701,1359,8086,0.0998738624212929,0.0998738624212929,-104.9979619,39.6967021,-104.9991292,39.6967087
-13702,8086,4842,0.0999569203615348,0.0999569203615348,-104.9991292,39.6967087,-105.0002975,39.6967069
-13703,4842,4377,0.103593486995353,0.103593486995353,-105.0002975,39.6967069,-105.0015083,39.6967038
-13704,4377,2859,0.305366704359361,0.305366704359361,-105.0015083,39.6967038,-105.0050773,39.6967285
-13705,2859,7625,0.0937028559888649,0.0937028559888649,-105.0050773,39.6967285,-105.0061725,39.696731
-13706,7625,6669,0.0349417471907859,0.0349417471907859,-105.0061725,39.696731,-105.0065809,39.6967302
-13707,6669,6928,0.181245567189969,0.181245567189969,-105.0065809,39.6967302,-105.0086993,39.6967351
-13708,6928,6929,0.056563910069816,0.056563910069816,-105.0086993,39.6967351,-105.0093602,39.6967483
-15200,9526,7443,0.0505254725980933,0.0505254725980933,-105.036376,39.7499878,-105.036967,39.7499887
-13710,3818,5176,0.0844451203946057,0.0844451203946057,-105.0107164,39.6967417,-105.0117034,39.6967417
-13711,5176,5900,0.0873882937906588,0.0873882937906588,-105.0117034,39.6967417,-105.0127248,39.6967417
-13712,5900,1602,0.0969475981594534,0.0969475981594534,-105.0127248,39.6967417,-105.0138578,39.6967549
-13713,1602,1645,0.147610823352004,0.147610823352004,-105.0138578,39.6967549,-105.015583,39.6967681
-13714,1645,1658,0.00734081920779586,0.00734081920779586,-105.015583,39.6967681,-105.0156688,39.6967681
-13715,1658,6715,0.113834950309784,0.113834950309784,-105.0156688,39.6967681,-105.0169992,39.6967549
-13717,4211,8097,0.0991353106844716,0.0991353106844716,-105.0180463,39.6967483,-105.019205,39.6967483
-13719,9171,203,0.0903750729081993,0.0903750729081993,-105.019308,39.6967483,-105.0203643,39.6967518
-13720,203,2931,0.102769081645998,0.102769081645998,-105.0203643,39.6967518,-105.0215654,39.6967417
-13721,2931,5312,0.098402268229521,0.098402268229521,-105.0215654,39.6967417,-105.0227155,39.6967351
-13722,5312,1469,0.0726981009727233,0.0726981009727233,-105.0227155,39.6967351,-105.0235652,39.6967351
-13723,1469,1468,0.023502610730772,0.023502610730772,-105.0235652,39.6967351,-105.0238399,39.6967351
-13724,1468,5448,0.104140699419407,0.104140699419407,-105.0238399,39.6967351,-105.0250571,39.696733
-13726,3761,9166,0.069031653563667,0.069031653563667,-104.9920224,39.696669,-104.9928292,39.6966756
-13728,4177,9172,0.109548350633249,0.109548350633249,-104.9910305,39.6911901,-104.9923108,39.6911873
-13730,9144,5946,0.201030224778112,0.201030224778112,-104.9351592,39.7292363,-104.9351663,39.7310442
-13731,5946,5137,0.27511296352744,0.27511296352744,-104.9351663,39.7310442,-104.935004,39.7335152
-13732,5137,5152,0.0232058578864935,0.0232058578864935,-104.935004,39.7335152,-104.9349958,39.7337238
-13733,5152,4907,0.10620133994029,0.10620133994029,-104.9349958,39.7337238,-104.935013,39.7346788
-15464,1361,9615,0.0375616902705351,0.0375616902705351,-105.0019226,39.7432201,-105.0015275,39.7433678
-13734,4907,6615,0.200738818803378,0.200738818803378,-104.935013,39.7346788,-104.9349711,39.7364838
-13735,6615,9173,0.1939198547813,0.1939198547813,-104.9349711,39.7364838,-104.9349904,39.7382277
-13736,9173,9174,0.208269220932895,0.208269220932895,-104.9349904,39.7382277,-104.9349984,39.7401007
-13738,9147,5947,0.203116974549126,0.203116974549126,-104.9339583,39.7292394,-104.9339798,39.731066
-13740,7615,904,0.277200719177449,0.277200719177449,-104.9380774,39.7619904,-104.9380626,39.7644833
-13741,904,9175,0.127974248210887,0.127974248210887,-104.9380626,39.7644833,-104.9380631,39.7656342
-13743,7010,7421,0.0949619514323781,0.0949619514323781,-104.9318494,39.7619997,-104.9318313,39.7628536
-13744,7421,1142,0.0432881849429407,0.0432881849429407,-104.9318313,39.7628536,-104.9318313,39.7632429
-13745,1142,1147,0.0608947786947552,0.0608947786947552,-104.9318313,39.7632429,-104.9318227,39.7637905
-13746,1147,909,0.0792487229277921,0.0792487229277921,-104.9318227,39.7637905,-104.9318383,39.7645031
-13788,1669,9192,0.136278654988626,0.136278654988626,-105.0053195,39.7680447,-105.0053009,39.7692702
-13747,909,9176,0.125103752996271,0.125103752996271,-104.9318383,39.7645031,-104.9318203,39.7656281
-13748,9176,2771,0.202343174331141,0.202343174331141,-104.9318203,39.7656281,-104.9317009,39.7674455
-13749,2771,6895,0.198817638053719,0.198817638053719,-104.9317009,39.7674455,-104.9317267,39.7692334
-13753,9179,1,0.207517415173182,0.207517415173182,-105.0147208,39.7357485,-105.0155597,39.7339973
-13755,8437,9180,0.124967984057199,0.124967984057199,-105.0140684,39.7388161,-105.0141257,39.7376931
-13759,9182,4484,0.465234327006532,0.465234327006532,-105.0055365,39.720906,-105.0055963,39.7250897
-13760,4484,4485,0.0326010116755978,0.0326010116755978,-105.0055963,39.7250897,-105.0056478,39.7253802
-13762,9183,9184,0.0646101092104256,0.0646101092104256,-105.0021716,39.719416,-105.002927,39.7194123
-13764,9185,9186,0.026977202251753,0.026977202251753,-104.9985457,39.7503278,-104.9983225,39.7501563
-13765,9186,9187,0.0154692834867904,0.0154692834867904,-104.9983225,39.7501563,-104.9982996,39.7500183
-13766,9187,6713,0.0145607005435147,0.0145607005435147,-104.9982996,39.7500183,-104.9982781,39.7498884
-13768,232,9188,0.0841812454433435,0.0841812454433435,-104.9943741,39.6929144,-104.9942711,39.6921615
-13770,9188,2561,0.00954099557633664,0.00954099557633664,-104.9942711,39.6921615,-104.9942282,39.6920823
-13773,8233,9190,0.00698491885871168,0.00698491885871168,-105.0252854,39.7620032,-105.0253671,39.7620045
-13774,9190,605,0.212601143616712,0.212601143616712,-105.0253671,39.7620045,-105.0276669,39.7627327
-13776,394,9191,0.174546619141482,0.174546619141482,-105.0057374,39.7597756,-105.0041591,39.7607716
-13779,294,4424,0.271505686802405,0.271505686802405,-105.0030853,39.7615504,-105.0016238,39.7637183
-13783,1892,4513,0.135635571790495,0.135635571790495,-105.0052777,39.7620216,-105.0052776,39.7632414
-13784,4513,5235,0.13338423256793,0.13338423256793,-105.0052776,39.7632414,-105.0052923,39.7644409
-13785,5235,6887,0.13498931648718,0.13498931648718,-105.0052923,39.7644409,-105.0053201,39.7656547
-13786,6887,8681,0.133693861256586,0.133693861256586,-105.0053201,39.7656547,-105.0053077,39.766857
-13787,8681,1669,0.132070065253788,0.132070065253788,-105.0053077,39.766857,-105.0053195,39.7680447
-13790,8903,8620,0.147899148341854,0.147899148341854,-105.0105064,39.7573854,-105.0093075,39.7583444
-13791,8620,6984,0.0740139001970076,0.0740139001970076,-105.0093075,39.7583444,-105.008704,39.7588217
-13792,6984,4819,0.0711240597778575,0.0711240597778575,-105.008704,39.7588217,-105.0080831,39.7592475
-13794,8514,8220,0.0695233221555377,0.0695233221555377,-105.0068857,39.7602149,-105.006312,39.7606581
-13796,9193,9141,0.231480473302438,0.231480473302438,-104.9954572,39.7044462,-104.9960053,39.7064848
-13817,9194,8483,0.144876329810161,0.144876329810161,-104.9954622,39.743992,-104.9942509,39.7449031
-13798,9193,9195,0.405940766693276,0.405940766693276,-104.9954572,39.7044462,-104.9963084,39.7080377
-13800,5081,9196,0.0826803218524669,0.0826803218524669,-104.9962546,39.7083175,-104.9961881,39.7090593
-13801,9196,7908,0.24773379383735,0.24773379383735,-104.9961881,39.7090593,-104.9971039,39.7111729
-13802,7908,1383,0.130538600450066,0.130538600450066,-104.9971039,39.7111729,-104.9976275,39.7122756
-13803,1383,4663,0.14493811446872,0.14493811446872,-104.9976275,39.7122756,-104.9982624,39.7134841
-13822,8286,9202,0.148093750497898,0.148093750497898,-104.9894331,39.7486381,-104.9882201,39.7495889
-13804,4663,9197,0.14786450905396,0.14786450905396,-104.9982624,39.7134841,-104.9985624,39.7147937
-13807,231,1184,0.314149545717651,0.314149545717651,-104.9941166,39.693522,-104.9968546,39.6916397
-13808,1184,1364,0.114004540105804,0.114004540105804,-104.9968546,39.6916397,-104.9980305,39.6911576
-13810,1364,8087,0.130984174828509,0.130984174828509,-104.9980305,39.6911576,-104.9992149,39.6904113
-14659,939,5938,0.17856727191407,0.17856727191407,-104.972385,39.7320506,-104.9723624,39.7304448
-14660,5938,3797,0.152203615831491,0.152203615831491,-104.9723624,39.7304448,-104.9723623,39.729076
-13811,8087,9162,0.16050280483824,0.16050280483824,-104.9992149,39.6904113,-105.000246,39.6892055
-13812,9162,9198,0.0132941963216631,0.0132941963216631,-105.000246,39.6892055,-105.000274,39.6890879
-18577,10320,10319,0.350878667314418,0.350878667314418,-105.0313943,39.7806712,-105.0275696,39.7818193
-20839,10930,10948,0.105680421147412,0.105680421147412,-105.0299611,39.7629467,-105.0291285,39.7622441
-13813,9198,9199,3.17004296851045,3.17004296851045,-105.000274,39.6890879,-105.0045553,39.6607701
-17798,9592,10180,0.0765579819092659,0.0765579819092659,-104.9873927,39.7542751,-104.9873951,39.7535866
-13839,1284,9210,0.120028974895433,0.120028974895433,-105.0205218,39.7579887,-105.0192694,39.7575006
-13816,4931,9194,0.407318560179548,0.407318560179548,-104.9988399,39.7414088,-104.9954622,39.743992
-13819,6705,8577,0.147047679886064,0.147047679886064,-104.9930306,39.7458434,-104.9918273,39.7467883
-13820,8577,5778,0.145526475675905,0.145526475675905,-104.9918273,39.7467883,-104.990623,39.7477132
-13821,5778,8286,0.144657100371242,0.144657100371242,-104.990623,39.7477132,-104.9894331,39.7486381
-13823,9202,9203,0.102081942931647,0.102081942931647,-104.9882201,39.7495889,-104.9873873,39.7502468
-13825,7891,9204,0.145701377036231,0.145701377036231,-104.9870145,39.7505324,-104.9858044,39.7514551
-13827,8994,9205,0.0106390736530004,0.0106390736530004,-105.0252881,39.7603424,-105.0253893,39.7603981
-13828,9205,8304,0.117212668938715,0.117212668938715,-105.0253893,39.7603981,-105.026526,39.7609877
-13829,8304,6774,0.0328401658585753,0.0328401658585753,-105.026526,39.7609877,-105.0268654,39.7611261
-13830,6774,3753,0.196045019335809,0.196045019335809,-105.0268654,39.7611261,-105.0288005,39.7620725
-13831,3753,8325,0.00916875381027056,0.00916875381027056,-105.0288005,39.7620725,-105.0288943,39.7621125
-13833,8444,9206,0.0130864665707206,0.0130864665707206,-105.0252881,39.7602413,-105.0251661,39.7601702
-13834,9206,9207,0.00957370688012094,0.00957370688012094,-105.0251661,39.7601702,-105.0250726,39.7601228
-13835,9207,9208,0.169933774193856,0.169933774193856,-105.0250726,39.7601228,-105.0233093,39.759417
-13836,9208,9209,0.168302394118973,0.168302394118973,-105.0233093,39.759417,-105.0216966,39.7585487
-15503,3939,5618,0.12194000294889,0.12194000294889,-105.0001493,39.7402188,-105.0015736,39.7401631
-13837,9209,2963,0.0205458196072096,0.0205458196072096,-105.0216966,39.7585487,-105.0214955,39.7584475
-13840,9210,9211,0.00588390321087397,0.00588390321087397,-105.0192694,39.7575006,-105.0192076,39.7574773
-13841,9211,22,0.0556252544592051,0.0556252544592051,-105.0192076,39.7574773,-105.0186135,39.7572732
-13842,22,6435,0.0767592442346679,0.0767592442346679,-105.0186135,39.7572732,-105.0178061,39.7569711
-13843,6435,636,0.0822615503744666,0.0822615503744666,-105.0178061,39.7569711,-105.0169344,39.7566577
-13844,636,9213,0.103246384420422,0.103246384420422,-105.0169344,39.7566577,-105.0158342,39.7562746
-13845,9213,535,0.0273108213340879,0.0273108213340879,-105.0158342,39.7562746,-105.0155504,39.7561618
-13846,535,9214,0.138573391347307,0.138573391347307,-105.0155504,39.7561618,-105.0140859,39.7556275
-13847,9214,8498,0.0276472257994952,0.0276472257994952,-105.0140859,39.7556275,-105.0137949,39.755519
-13848,8498,8441,0.0465142466162739,0.0465142466162739,-105.0137949,39.755519,-105.0132989,39.755347
-13850,9215,8403,0.0487070540067587,0.0487070540067587,-104.9781012,39.703864,-104.9775319,39.7038582
-13851,8403,1774,0.0526991311069308,0.0526991311069308,-104.9775319,39.7038582,-104.9769161,39.7038457
-13853,4412,9216,0.0527074152255093,0.0527074152255093,-104.9763723,39.7038488,-104.9757563,39.7038398
-13854,9216,4781,0.0501079093501001,0.0501079093501001,-104.9757563,39.7038398,-104.9751707,39.7038491
-14661,3797,9412,0.199399735185058,0.199399735185058,-104.9723623,39.729076,-104.9723458,39.7272828
-13855,4781,1522,0.0511423250179406,0.0511423250179406,-104.9751707,39.7038491,-104.9745729,39.7038457
-13856,1522,5241,0.0480297777865987,0.0480297777865987,-104.9745729,39.7038457,-104.9740116,39.7038551
-13857,5241,463,0.0533178386766155,0.0533178386766155,-104.9740116,39.7038551,-104.9733885,39.7038655
-13859,9217,8420,0.0487543044755043,0.0487543044755043,-104.9780581,39.7056667,-104.9774882,39.7056633
-13860,8420,1773,0.0502154238610622,0.0502154238610622,-104.9774882,39.7056633,-104.9769014,39.705675
-13862,4425,9218,0.050643583977918,0.050643583977918,-104.9763417,39.7056707,-104.9757497,39.7056695
-13863,9218,4823,0.0514478917449482,0.0514478917449482,-104.9757497,39.7056695,-104.9751483,39.7056678
-13864,4823,1521,0.0514834990326773,0.0514834990326773,-104.9751483,39.7056678,-104.9745465,39.705664
-13865,1521,5262,0.0474439861374267,0.0474439861374267,-104.9745465,39.705664,-104.9739919,39.7056638
-13866,5262,9219,0.0530746980864797,0.0530746980864797,-104.9739919,39.7056638,-104.9733715,39.7056677
-13868,6499,2472,0.199600310338802,0.199600310338802,-104.9298179,39.7455937,-104.9298007,39.7473887
-13870,7007,2282,0.0992844503488553,0.0992844503488553,-104.9317157,39.7565591,-104.9305543,39.7565508
-13872,3603,7529,0.0990493561706104,0.0990493561706104,-104.9293903,39.7565549,-104.9282316,39.7565549
-13873,7529,2137,0.105524175995486,0.105524175995486,-104.9282316,39.7565549,-104.9269972,39.7565629
-13874,2137,5994,0.104734285723653,0.104734285723653,-104.9269972,39.7565629,-104.925772,39.7565652
-13875,5994,7674,0.100897460064117,0.100897460064117,-104.925772,39.7565652,-104.9245919,39.7565477
-13996,5841,434,0.0624248318177171,0.0624248318177171,-104.973423,39.6911522,-104.973423,39.6905908
-13876,7674,9221,1.00510923817581,1.00510923817581,-104.9245919,39.7565477,-104.912834,39.7565808
-13878,2804,5269,0.128688734978596,0.128688734978596,-104.9452104,39.7669339,-104.9451609,39.7680906
-13879,5269,6909,0.123348542786119,0.123348542786119,-104.9451609,39.7680906,-104.9451603,39.7691999
-13881,4480,5270,0.264392216770053,0.264392216770053,-104.9440279,39.7657101,-104.9440108,39.7680878
-13882,5270,6910,0.123553912188766,0.123553912188766,-104.9440108,39.7680878,-104.9439975,39.7691989
-13884,7761,6908,0.206924774668396,0.206924774668396,-104.9453067,39.7710608,-104.9452957,39.7691999
-13886,6907,7760,0.209013911598568,0.209013911598568,-104.9464035,39.7692009,-104.9463967,39.7710806
-13887,7760,9222,0.202410018751594,0.202410018751594,-104.9463967,39.7710806,-104.9464409,39.7729006
-13888,6905,7759,0.206351576128965,0.206351576128965,-104.9475756,39.7692051,-104.9475555,39.7710608
-13889,7759,6359,0.203865759483167,0.203865759483167,-104.9475555,39.7710608,-104.9475481,39.7728942
-13891,9223,6448,0.190233422734384,0.190233422734384,-104.9412107,39.7760266,-104.9389896,39.7761403
-13892,6448,6992,0.620734926195411,0.620734926195411,-104.9389896,39.7761403,-104.9317318,39.7759184
-13893,6992,2116,0.412221337604484,0.412221337604484,-104.9317318,39.7759184,-104.9269816,39.7752742
-13894,2116,7665,0.206015761732372,0.206015761732372,-104.9269816,39.7752742,-104.9246092,39.7749454
-13935,9237,254,0.129619446290563,0.129619446290563,-105.0252103,39.7368379,-105.0251543,39.7380028
-13895,7665,9224,1.85930539190202,1.85930539190202,-104.9246092,39.7749454,-104.9032561,39.7717429
-13896,9225,2398,0.224331288063009,0.224331288063009,-104.9407352,39.7758674,-104.940632,39.7738515
-13897,2398,6361,0.106327129111224,0.106327129111224,-104.940632,39.7738515,-104.9406234,39.7728953
-17281,7311,3273,0.201986093156211,0.201986093156211,-104.9599932,39.7020401,-104.9599985,39.7038566
-13899,6446,9223,0.123505309386589,0.123505309386589,-104.9423252,39.7753195,-104.9412107,39.7760266
-13901,8984,8975,0.295278766625452,0.295278766625452,-104.9895148,39.78054,-104.9895886,39.7778851
-13903,8980,8981,0.155353173279186,0.155353173279186,-104.9891666,39.780555,-104.9891558,39.7819521
-13905,9226,8104,0.184150710275748,0.184150710275748,-104.9902648,39.7768461,-104.9912065,39.7783357
-13907,9227,6946,0.038429344582371,0.038429344582371,-104.9603013,39.7815888,-104.9602903,39.7819343
-13912,6380,9229,0.104471273298691,0.104471273298691,-104.9592745,39.7805291,-104.9604654,39.7803167
-14662,9412,9300,0.189453948637121,0.189453948637121,-104.9723458,39.7272828,-104.9723445,39.725579
-13916,566,9231,1.43965285379934,1.43965285379934,-104.9751917,39.6906986,-104.9602821,39.6846997
-13917,9136,9232,0.238873404598648,0.238873404598648,-104.9910031,39.7032246,-104.9889072,39.7018052
-13920,483,7284,0.0730945677376631,0.0730945677376631,-104.9859077,39.7013296,-104.9857206,39.701971
-13928,278,6916,0.0415405366115252,0.0415405366115252,-104.9876105,39.7785645,-104.9878486,39.7782388
-13930,9235,9236,0.360270886139133,0.360270886139133,-104.9733535,39.7400168,-104.9733996,39.7432566
-13931,9236,2883,0.0595125074168401,0.0595125074168401,-104.9733996,39.7432566,-104.9733956,39.7437918
-13936,254,8324,0.235611866233999,0.235611866233999,-105.0251543,39.7380028,-105.0252084,39.7401213
-13938,8324,8310,0.066787627422688,0.066787627422688,-105.0252084,39.7401213,-105.0251999,39.7407219
-13940,8310,9241,0.146021189936251,0.146021189936251,-105.0251999,39.7407219,-105.0252006,39.7420351
-13944,9099,7796,0.300588795121337,0.300588795121337,-105.0181659,39.7251883,-105.014664,39.7254193
-13948,9244,9113,0.144188675545464,0.144188675545464,-105.0110505,39.7257692,-105.0127328,39.7256834
-13950,9106,9244,0.0499156662848634,0.0499156662848634,-105.0104669,39.7257758,-105.0110505,39.7257692
-13952,9245,9246,0.123118530171941,0.123118530171941,-105.0114282,39.7264425,-105.0126992,39.7269625
-13954,405,406,0.0103894659763889,0.0103894659763889,-105.0106325,39.7261211,-105.0107416,39.7261622
-13955,406,9245,0.0664778537431541,0.0664778537431541,-105.0107416,39.7261622,-105.0114282,39.7264425
-13957,407,9033,0.137547423766831,0.137547423766831,-105.0123607,39.72372,-105.0111765,39.722883
-17289,5839,7744,0.201433070586795,0.201433070586795,-104.9518032,39.6911405,-104.9517894,39.689329
-13965,9097,9248,0.39480102328572,0.39480102328572,-105.0162433,39.7250562,-105.0138229,39.7280796
-13966,9248,9249,0.0955291664142426,0.0955291664142426,-105.0138229,39.7280796,-105.0143117,39.7288521
-13968,9246,9248,0.157049002786803,0.157049002786803,-105.0126992,39.7269625,-105.0138229,39.7280796
-13976,3952,9252,0.0592126025244243,0.0592126025244243,-105.0002004,39.7289098,-105.0008928,39.7289115
-13977,9252,5605,0.0597855652504274,0.0597855652504274,-105.0008928,39.7289115,-105.0015919,39.7289132
-13978,5605,9253,0.0521408060475983,0.0521408060475983,-105.0015919,39.7289132,-105.0022016,39.7289106
-13979,9253,3728,0.0545524879363147,0.0545524879363147,-105.0022016,39.7289106,-105.0028395,39.7289078
-13981,7951,7949,0.019092168905179,0.019092168905179,-104.9733887,39.7147202,-104.9733887,39.7145485
-13983,7949,3093,0.182702780383174,0.182702780383174,-104.9733887,39.7145485,-104.9733669,39.7129055
-15893,9254,9255,0.183718623774573,0.183718623774573,-105.0398207,39.7341944,-105.0419691,39.7342088
-13984,3093,3203,0.200818235908537,0.200818235908537,-104.9733669,39.7129055,-104.9733702,39.7110995
-13985,3203,6116,0.201635970571119,0.201635970571119,-104.9733702,39.7110995,-104.9733887,39.7092862
-13986,6116,1913,0.201179241726354,0.201179241726354,-104.9733887,39.7092862,-104.9733715,39.707477
-13987,1913,9219,0.201184980777767,0.201184980777767,-104.9733715,39.707477,-104.9733715,39.7056677
-13988,9219,463,0.200400773809621,0.200400773809621,-104.9733715,39.7056677,-104.9733885,39.7038655
-13989,463,7301,0.202731579470961,0.202731579470961,-104.9733885,39.7038655,-104.9734144,39.7020424
-13990,7301,49,0.204762753950758,0.204762753950758,-104.9734144,39.7020424,-104.9733927,39.700201
-13991,49,3548,0.19703986640102,0.19703986640102,-104.9733927,39.700201,-104.9734042,39.698429
-13992,3548,4243,0.201964288701916,0.201964288701916,-104.9734042,39.698429,-104.97343,39.6966128
-13993,4243,1803,0.208102375283595,0.208102375283595,-104.97343,39.6966128,-104.9734222,39.6947413
-13994,1803,8711,0.194851559567089,0.194851559567089,-104.9734222,39.6947413,-104.973438,39.692989
-13995,8711,5841,0.20424687376631,0.20424687376631,-104.973438,39.692989,-104.973423,39.6911522
-17660,586,8936,0.0435552950105704,0.0435552950105704,-104.9889771,39.7829454,-104.9889754,39.7833371
-13997,434,8731,0.0205731062854678,0.0205731062854678,-104.973423,39.6905908,-104.9734316,39.6904059
-13999,3219,3112,0.203925882799295,0.203925882799295,-104.9592972,39.7111077,-104.959135,39.7129374
-14000,3112,3641,0.260678130684959,0.260678130684959,-104.959135,39.7129374,-104.9590835,39.7152814
-14001,3641,9256,0.0279085029397156,0.0279085029397156,-104.9590835,39.7152814,-104.9590749,39.7155323
-14003,9257,8801,0.0249979934697134,0.0249979934697134,-104.9590619,39.7158623,-104.9590492,39.7160869
-14665,4752,4167,0.209025457745472,0.209025457745472,-104.9723195,39.7219606,-104.9723279,39.7200808
-14005,9256,9257,0.0367111693692818,0.0367111693692818,-104.9590749,39.7155323,-104.9590619,39.7158623
-14007,9258,3642,0.0274131048639432,0.0274131048639432,-104.9592928,39.7155013,-104.9593067,39.715255
-14008,3642,9259,0.086632322467807,0.086632322467807,-104.9593067,39.715255,-104.9593096,39.7144759
-14009,9259,3111,0.171051850512145,0.171051850512145,-104.9593096,39.7144759,-104.9593153,39.7129376
-14010,3111,3219,0.203481486479522,0.203481486479522,-104.9593153,39.7129376,-104.9592972,39.7111077
-14012,7158,9258,0.038998695665846,0.038998695665846,-104.9592875,39.715852,-104.9592928,39.7155013
-14014,3219,6126,0.202012344464496,0.202012344464496,-104.9592972,39.7111077,-104.959313,39.709291
-14015,6126,1929,0.202386985868189,0.202386985868189,-104.959313,39.709291,-104.9593208,39.7074709
-14016,1929,2919,0.0171463622508283,0.0171463622508283,-104.9593208,39.7074709,-104.9593201,39.7073167
-14017,2919,7250,0.183561589747783,0.183561589747783,-104.9593201,39.7073167,-104.959313,39.7056659
-14018,7250,3274,0.20118632596822,0.20118632596822,-104.959313,39.7056659,-104.9593216,39.7038566
-14019,3274,7312,0.203193267560765,0.203193267560765,-104.9593216,39.7038566,-104.959341,39.7020293
-14021,9260,9157,0.0588873613464273,0.0588873613464273,-104.9954471,39.7027842,-104.9952014,39.7022895
-14022,9157,6253,0.473629275671798,0.473629275671798,-104.9952014,39.7022895,-104.9926817,39.6984968
-14023,6253,9167,0.20379925953003,0.20379925953003,-104.9926817,39.6984968,-104.9929494,39.6966756
-14024,9167,231,0.364607283214556,0.364607283214556,-104.9929494,39.6966756,-104.9941166,39.693522
-14026,9171,2308,0.0877328075526686,0.0877328075526686,-105.019308,39.6967483,-105.0193085,39.6959593
-14027,2308,167,0.314493617652356,0.314493617652356,-105.0193085,39.6959593,-105.0193178,39.693131
-14030,6653,9263,0.598539344332022,0.598539344332022,-105.0448856,39.6967219,-105.0518813,39.6967452
-14031,5448,5975,0.113227741973857,0.113227741973857,-105.0250571,39.696733,-105.0263805,39.6967285
-14032,5975,9023,0.0895901368528646,0.0895901368528646,-105.0263805,39.6967285,-105.0274276,39.6967351
-14033,9023,4404,0.197536219691709,0.197536219691709,-105.0274276,39.6967351,-105.0297364,39.6967417
-14034,4404,7371,0.107978748074207,0.107978748074207,-105.0297364,39.6967417,-105.0309982,39.6967219
-14035,7371,6307,0.0697549406367758,0.0697549406367758,-105.0309982,39.6967219,-105.0318135,39.6967219
-14036,6307,6308,0.0220857912106748,0.0220857912106748,-105.0318135,39.6967219,-105.0320716,39.6967254
-14037,6308,4316,0.20668661359579,0.20668661359579,-105.0320716,39.6967254,-105.03444,39.6970917
-14038,4316,4503,0.0921482766473363,0.0921482766473363,-105.03444,39.6970917,-105.0355129,39.6971643
-14039,4503,7814,0.109821870874264,0.109821870874264,-105.0355129,39.6971643,-105.0366887,39.6967681
-14040,7814,5079,0.102137328159445,0.102137328159445,-105.0366887,39.6967681,-105.0378823,39.6967518
-14041,5079,8013,0.0998289131041121,0.0998289131041121,-105.0378823,39.6967518,-105.0390491,39.6967549
-14042,8013,6832,0.10065041616734,0.10065041616734,-105.0390491,39.6967549,-105.0402255,39.6967584
-14043,6832,6975,0.0990932842629603,0.0990932842629603,-105.0402255,39.6967584,-105.0413837,39.6967549
-14044,6975,7945,0.100601003970672,0.100601003970672,-105.0413837,39.6967549,-105.0425595,39.6967615
-14045,7945,6364,0.097675013601381,0.097675013601381,-105.0425595,39.6967615,-105.0437011,39.6967681
-14049,9264,9265,0.128352927336665,0.128352927336665,-105.0016904,39.7220846,-105.0016701,39.7209304
-14051,3219,5061,0.0565378582983479,0.0565378582983479,-104.9592972,39.7111077,-104.9586363,39.7111011
-14052,5061,4916,0.0521329784642155,0.0521329784642155,-104.9586363,39.7111011,-104.9580269,39.7110945
-17662,488,10160,0.037999512945138,0.037999512945138,-104.9855724,39.7800624,-104.986015,39.7800954
-14053,4916,5228,0.130202288917824,0.130202288917824,-104.9580269,39.7110945,-104.9565077,39.7110219
-14054,5228,5106,0.0572735085516971,0.0572735085516971,-104.9565077,39.7110219,-104.9558382,39.7110153
-14055,5106,5229,0.0124802378810982,0.0124802378810982,-104.9558382,39.7110153,-104.9556923,39.7110153
-14056,5229,4995,0.288542415463076,0.288542415463076,-104.9556923,39.7110153,-104.9523191,39.7110153
-14057,4995,9266,0.20116472075537,0.20116472075537,-104.9523191,39.7110153,-104.9499674,39.7110094
-14666,4167,6326,0.178657902009272,0.178657902009272,-104.9723279,39.7200808,-104.9722942,39.7184743
-14058,9266,7066,0.0118986523075564,0.0118986523075564,-104.9499674,39.7110094,-104.9498283,39.711009
-14059,7066,3636,0.140199736242294,0.140199736242294,-104.9498283,39.711009,-104.9481992,39.7111474
-14061,9266,6351,0.197550871457279,0.197550871457279,-104.9499674,39.7110094,-104.9499571,39.7092328
-14063,2574,5103,0.0764020591743967,0.0764020591743967,-104.949965,39.7089952,-104.9499914,39.7083084
-14065,7930,1893,0.0520626532677435,0.0520626532677435,-104.949883,39.707468,-104.9497942,39.7070048
-14066,1893,2315,0.115168818798466,0.115168818798466,-104.9497942,39.7070048,-104.9499657,39.7059775
-14068,7341,6156,0.0983814711715662,0.0983814711715662,-104.9316369,39.7113211,-104.932787,39.7113277
-14069,6156,6290,0.0991170792397538,0.0991170792397538,-104.932787,39.7113277,-104.9339457,39.7113343
-14070,6290,3116,0.0983982120263374,0.0983982120263374,-104.9339457,39.7113343,-104.9350959,39.7113475
-14072,6673,8185,0.0325158694936318,0.0325158694936318,-104.9362583,39.7113747,-104.936636,39.7114077
-14074,3188,9268,0.0244851420549388,0.0244851420549388,-104.9461736,39.7114973,-104.946452,39.7115485
-14075,9268,8800,0.0276968906605859,0.0276968906605859,-104.946452,39.7115485,-104.9467659,39.7116096
-14077,6718,9269,0.103071842817105,0.103071842817105,-104.9425631,39.711506,-104.9413612,39.7114399
-14078,9269,8160,0.0477581921413061,0.0477581921413061,-104.9413612,39.7114399,-104.9408036,39.7114181
-14080,7342,3492,0.198422050793999,0.198422050793999,-104.9316306,39.711189,-104.929311,39.7111767
-14081,3492,9270,0.0991145839577047,0.0991145839577047,-104.929311,39.7111767,-104.9281523,39.7111767
-17664,10161,6173,0.109897620785603,0.109897620785603,-104.9856475,39.7795327,-104.9843627,39.779576
-14082,9270,5386,0.100577308895159,0.100577308895159,-104.9281523,39.7111767,-104.9269765,39.7111767
-14083,5386,9271,0.100588544879537,0.100588544879537,-104.9269765,39.7111767,-104.9258006,39.7111701
-14084,9271,6817,0.101321511979085,0.101321511979085,-104.9258006,39.7111701,-104.9246161,39.7111701
-14160,7023,7393,0.135757251453186,0.135757251453186,-105.0315207,39.751179,-105.0331086,39.7511922
-14161,7393,9272,0.0789156635630832,0.0789156635630832,-105.0331086,39.7511922,-105.0340317,39.7511922
-14166,9278,7444,0.0517309727495982,0.0517309727495982,-105.0363599,39.7511906,-105.036965,39.7511936
-14129,9279,9280,0.186364690747119,0.186364690747119,-104.9490944,39.7475193,-104.9512562,39.7473041
-14085,6817,9273,5.01601743028969,5.01601743028969,-104.9246161,39.7111701,-104.8659769,39.710981
-14086,9274,6816,4.59997811614881,4.59997811614881,-104.8708565,39.7101192,-104.9246085,39.7113484
-14088,2943,5348,0.200890409378397,0.200890409378397,-104.9258054,39.711367,-104.9281539,39.71136
-14089,5348,3491,0.0990328236882064,0.0990328236882064,-104.9281539,39.71136,-104.9293114,39.7113416
-14090,3491,2849,0.0998105211493863,0.0998105211493863,-104.9293114,39.7113416,-104.9304782,39.7113343
-14091,2849,7341,0.0991252344530307,0.0991252344530307,-104.9304782,39.7113343,-104.9316369,39.7113211
-14093,9271,6103,0.208876201356377,0.208876201356377,-104.9258006,39.7111701,-104.9258215,39.7092917
-14095,9270,6098,0.16565447863601,0.16565447863601,-104.9281523,39.7111767,-104.928134,39.709687
-14096,6098,9275,0.0444779706577198,0.0444779706577198,-104.928134,39.709687,-104.928134,39.709287
-14097,9269,6101,0.238835584318973,0.238835584318973,-104.9413612,39.7114399,-104.9413615,39.709292
-17799,10180,8536,0.0726583525558809,0.0726583525558809,-104.9873951,39.7535866,-104.987378,39.7529333
-14099,8294,9276,0.192103991232145,0.192103991232145,-104.9942907,39.754326,-104.9957422,39.7556449
-14101,4423,9277,0.533016938094048,0.533016938094048,-105.0057667,39.7600738,-105.0019955,39.7638914
-14138,9282,9283,0.384483999025896,0.384483999025896,-104.9667713,39.7808486,-104.9624039,39.7800174
-14146,4993,9288,0.0718457938229626,0.0718457938229626,-105.0163127,39.7513508,-105.0171434,39.7512529
-14148,9288,471,0.0203590276008878,0.0203590276008878,-105.0171434,39.7512529,-105.017379,39.7512262
-14149,471,6430,0.0161743745423695,0.0161743745423695,-105.017379,39.7512262,-105.0175669,39.7512092
-14150,6430,4655,0.1348214737413,0.1348214737413,-105.0175669,39.7512092,-105.0191439,39.7512186
-14151,4655,1277,0.119151021074222,0.119151021074222,-105.0191439,39.7512186,-105.020537,39.751186
-14152,1277,4528,0.128606742393323,0.128606742393323,-105.020537,39.751186,-105.022041,39.751211
-14153,4528,9289,0.132757697104501,0.132757697104501,-105.022041,39.751211,-105.0235939,39.7512075
-14154,9289,9290,0.133347126872573,0.133347126872573,-105.0235939,39.7512075,-105.0251537,39.7512091
-14155,9290,9291,0.0102673262572307,0.0102673262572307,-105.0251537,39.7512091,-105.0252738,39.7512091
-14156,9291,6745,0.131970868855064,0.131970868855064,-105.0252738,39.7512091,-105.0268172,39.7511856
-14157,6745,6145,0.131356474267846,0.131356474267846,-105.0268172,39.7511856,-105.0283535,39.7512054
-14158,6145,4019,0.135781040149455,0.135781040149455,-105.0283535,39.7512054,-105.0299414,39.751179
-14159,4019,7023,0.135014116939136,0.135014116939136,-105.0299414,39.751179,-105.0315207,39.751179
-14162,9272,3401,0.0502252760733361,0.0502252760733361,-105.0340317,39.7511922,-105.0346192,39.7511922
-14163,3401,9220,0.0499780107614713,0.0499780107614713,-105.0346192,39.7511922,-105.0352038,39.7511899
-17968,8778,10231,0.0192769916187002,0.0192769916187002,-104.9874654,39.72522,-104.9876908,39.725221
-14164,9220,8375,0.0494394335916504,0.0494394335916504,-105.0352038,39.7511899,-105.0357821,39.7511876
-14165,8375,9278,0.0493971533103994,0.0493971533103994,-105.0357821,39.7511876,-105.0363599,39.7511906
-14167,7444,9292,0.0498509119548639,0.0498509119548639,-105.036965,39.7511936,-105.0375481,39.7511898
-14168,9292,7161,0.0504322249542888,0.0504322249542888,-105.0375481,39.7511898,-105.038138,39.751186
-14169,7161,9293,0.049549545616498,0.049549545616498,-105.038138,39.751186,-105.0387175,39.7511941
-14671,5473,9414,0.169600878974653,0.169600878974653,-104.9701135,39.7384072,-104.9700963,39.736882
-14170,9293,7773,0.0509361632349417,0.0509361632349417,-105.0387175,39.7511941,-105.0393133,39.7511908
-14171,7773,9039,0.0499454477956979,0.0499454477956979,-105.0393133,39.7511908,-105.0398975,39.7511951
-14172,9039,1114,0.0547655871790504,0.0547655871790504,-105.0398975,39.7511951,-105.040538,39.751186
-14173,1114,9294,0.0447798115689078,0.0447798115689078,-105.040538,39.751186,-105.0410618,39.7511847
-14174,9294,7494,0.0527731793085291,0.0527731793085291,-105.0410618,39.7511847,-105.0416791,39.7511831
-14175,7494,9170,0.0488063990880333,0.0488063990880333,-105.0416791,39.7511831,-105.04225,39.7511845
-14176,9170,3836,0.0502683027746479,0.0502683027746479,-105.04225,39.7511845,-105.042838,39.751186
-14180,7818,2938,0.0876396467302253,0.0876396467302253,-104.9257985,39.7038513,-104.9247744,39.7038309
-14181,2938,6809,0.0888992165922937,0.0888992165922937,-104.9247744,39.7038309,-104.9237358,39.7038573
-14182,6809,1960,0.772041478396669,0.772041478396669,-104.9237358,39.7038573,-104.9147112,39.7038545
-17800,8536,8859,0.0293889142934455,0.0293889142934455,-104.987378,39.7529333,-104.9873914,39.7526692
-14183,1960,9295,0.960771522024492,0.960771522024492,-104.9147112,39.7038545,-104.9034805,39.70387
-14184,7571,9296,0.161476693063143,0.161476693063143,-104.9862197,39.7256409,-104.9850256,39.724516
-14185,9296,8888,0.0634729683022204,0.0634729683022204,-104.9850256,39.724516,-104.984536,39.724087
-14187,9297,6334,0.0129309336441387,0.0129309336441387,-104.9852863,39.7256333,-104.9851351,39.7256329
-14188,6334,7083,0.0225608570291498,0.0225608570291498,-104.9851351,39.7256329,-104.9848713,39.7256319
-14189,7083,8784,0.107920119748436,0.107920119748436,-104.9848713,39.7256319,-104.9836094,39.725629
-14190,8784,8791,0.106332666658533,0.106332666658533,-104.9836094,39.725629,-104.9823661,39.725621
-14191,8791,3157,0.106749034536814,0.106749034536814,-104.9823661,39.725621,-104.9811181,39.7256387
-14192,3157,4976,0.101195319793441,0.101195319793441,-104.9811181,39.7256387,-104.9799349,39.7256286
-14193,4976,9298,0.0996902493641346,0.0996902493641346,-104.9799349,39.7256286,-104.9787693,39.7256185
-14194,9298,9299,0.104226329823663,0.104226329823663,-104.9787693,39.7256185,-104.9775506,39.725614
-14195,9299,6538,0.0493134523648135,0.0493134523648135,-104.9775506,39.725614,-104.976974,39.7256103
-14196,6538,5048,0.0489874238643872,0.0489874238643872,-104.976974,39.7256103,-104.9764012,39.725608
-14197,5048,8001,0.0994531494791736,0.0994531494791736,-104.9764012,39.725608,-104.9752384,39.7255962
-14198,8001,985,0.0994551795792203,0.0994551795792203,-104.9752384,39.7255962,-104.9740756,39.7255831
-14199,985,5104,0.0491411684949994,0.0491411684949994,-104.9740756,39.7255831,-104.973501,39.7255812
-14201,8831,9300,0.0488242916251385,0.0488242916251385,-104.9729154,39.7255792,-104.9723445,39.725579
-14202,9300,7149,0.0497002324101769,0.0497002324101769,-104.9723445,39.725579,-104.9717634,39.7255844
-14203,7149,2393,0.0492946529104208,0.0492946529104208,-104.9717634,39.7255844,-104.971187,39.7255843
-14204,2393,5115,0.0502354677891233,0.0502354677891233,-104.971187,39.7255843,-104.9705996,39.7255851
-14205,5115,9301,0.0497154080261439,0.0497154080261439,-104.9705996,39.7255851,-104.9700183,39.7255888
-14206,9301,4714,0.049399080188397,0.049399080188397,-104.9700183,39.7255888,-104.9694407,39.7255926
-14207,4714,8872,0.0991624253785381,0.0991624253785381,-104.9694407,39.7255926,-104.9682812,39.7255941
-14208,8872,7353,0.0988972303255353,0.0988972303255353,-104.9682812,39.7255941,-104.9671248,39.7255931
-14209,7353,5412,0.107964313206197,0.107964313206197,-104.9671248,39.7255931,-104.9658624,39.7255988
-14210,5412,3145,0.0906444248702148,0.0906444248702148,-104.9658624,39.7255988,-104.9648025,39.7256
-14211,3145,3919,0.0988223626592478,0.0988223626592478,-104.9648025,39.7256,-104.963647,39.7256059
-18204,6875,8356,0.205977621151269,0.205977621151269,-105.0363465,39.7658167,-105.0363437,39.7639643
-14212,3919,3918,0.0189862588635382,0.0189862588635382,-104.963647,39.7256059,-104.963425,39.7256047
-14213,3918,1010,0.0826936905404967,0.0826936905404967,-104.963425,39.7256047,-104.9624581,39.7255985
-14214,1010,6261,0.0974734196824701,0.0974734196824701,-104.9624581,39.7255985,-104.9613184,39.7256069
-14215,6261,8730,0.0989075877241795,0.0989075877241795,-104.9613184,39.7256069,-104.9601619,39.7256124
-14216,8730,7153,0.0605847994240266,0.0605847994240266,-104.9601619,39.7256124,-104.9594535,39.725616
-14217,7153,5021,0.0499889577891061,0.0499889577891061,-104.9594535,39.725616,-104.958869,39.7256124
-14218,5021,9302,0.0549823108734392,0.0549823108734392,-104.958869,39.7256124,-104.9582261,39.7256145
-14219,9302,3342,0.0335617577180335,0.0335617577180335,-104.9582261,39.7256145,-104.9578337,39.7256186
-14220,3342,3352,0.0674788037125104,0.0674788037125104,-104.9578337,39.7256186,-104.9570447,39.7256136
-14221,3352,7886,0.0299418452790484,0.0299418452790484,-104.9570447,39.7256136,-104.9566946,39.7256155
-14222,7886,7319,0.0732493043433617,0.0732493043433617,-104.9566946,39.7256155,-104.9558381,39.7256145
-14223,7319,7320,0.0259215863697348,0.0259215863697348,-104.9558381,39.7256145,-104.955535,39.7256145
-14224,7320,7977,0.0775267077551995,0.0775267077551995,-104.955535,39.7256145,-104.9546285,39.7256103
-14225,7977,7980,0.0233987016260196,0.0233987016260196,-104.9546285,39.7256103,-104.9543549,39.7256103
-14226,7980,2061,0.0796038188827741,0.0796038188827741,-104.9543549,39.7256103,-104.9534241,39.7256124
-14227,2061,8870,0.0167451229489977,0.0167451229489977,-104.9534241,39.7256124,-104.9532283,39.7256124
-14228,8870,2647,0.0876006586657796,0.0876006586657796,-104.9532283,39.7256124,-104.952204,39.7256088
-14229,2647,8860,0.0114861984991212,0.0114861984991212,-104.952204,39.7256088,-104.9520697,39.7256077
-14231,4113,8862,0.00848374045935965,0.00848374045935965,-104.9509997,39.7256047,-104.9509005,39.7256047
-14232,8862,8687,0.0949896568056219,0.0949896568056219,-104.9509005,39.7256047,-104.9497898,39.7256083
-14234,6694,8024,0.0782864986898227,0.0782864986898227,-104.9495001,39.7256083,-104.9485847,39.7256075
-14235,8024,8017,0.0158816052839578,0.0158816052839578,-104.9485847,39.7256075,-104.948399,39.7256083
-18205,8356,10280,0.196081618210442,0.196081618210442,-105.0363437,39.7639643,-105.0363386,39.7622009
-14236,8017,7681,0.0911745487086236,0.0911745487086236,-104.948399,39.7256083,-104.9473329,39.7256083
-14237,7681,3454,0.0980849682512979,0.0980849682512979,-104.9473329,39.7256083,-104.946186,39.7256104
-14238,3454,6017,0.0971271293907499,0.0971271293907499,-104.946186,39.7256104,-104.9450503,39.7256083
-14239,6017,9303,0.0906101063303862,0.0906101063303862,-104.9450503,39.7256083,-104.9439908,39.7256083
-14240,9303,3884,0.022021804982538,0.022021804982538,-104.9439908,39.7256083,-104.9437333,39.7256083
-14241,3884,9304,0.0244079810975188,0.0244079810975188,-104.9437333,39.7256083,-104.9434479,39.7256076
-14242,9304,852,0.0462417773626911,0.0462417773626911,-104.9434479,39.7256076,-104.9429072,39.7256062
-14243,852,847,0.0318832988859635,0.0318832988859635,-104.9429072,39.7256062,-104.9425344,39.7256041
-14244,847,9305,0.0129480432587025,0.0129480432587025,-104.9425344,39.7256041,-104.942383,39.7256045
-14245,9305,7103,0.0469858120705144,0.0469858120705144,-104.942383,39.7256045,-104.9418336,39.7256059
-14246,7103,7098,0.0440436114993002,0.0440436114993002,-104.9418336,39.7256059,-104.9413186,39.7256059
-14247,7098,8567,0.0448162532507988,0.0448162532507988,-104.9413186,39.7256059,-104.940796,39.7255761
-14248,8567,8696,0.0173715559267549,0.0173715559267549,-104.940796,39.7255761,-104.9406095,39.7255142
-14249,8696,8157,0.112872102261494,0.112872102261494,-104.9406095,39.7255142,-104.9393188,39.7253022
-14251,7606,7263,0.0986452262534628,0.0986452262534628,-104.9382673,39.7253035,-104.9371139,39.7253117
-14252,7263,7596,0.0935891946661749,0.0935891946661749,-104.9371139,39.7253117,-104.9360196,39.7253179
-14253,7596,2019,0.0979493336941006,0.0979493336941006,-104.9360196,39.7253179,-104.9348743,39.7253138
-14254,2019,2009,0.0254598809515577,0.0254598809515577,-104.9348743,39.7253138,-104.9345766,39.7253138
-14255,2009,9306,0.0651506123907477,0.0651506123907477,-104.9345766,39.7253138,-104.9338148,39.7253138
-14256,9306,2765,0.0942796454050606,0.0942796454050606,-104.9338148,39.7253138,-104.9327124,39.7253158
-14257,2765,7004,0.0945020258355606,0.0945020258355606,-104.9327124,39.7253158,-104.9316074,39.7253179
-14258,7004,2269,0.094510288095609,0.094510288095609,-104.9316074,39.7253179,-104.9305023,39.7253179
-14259,2269,3597,0.0938178496086605,0.0938178496086605,-104.9305023,39.7253179,-104.9294053,39.72532
-14260,3597,7519,0.0940495689740582,0.0940495689740582,-104.9294053,39.72532,-104.9283056,39.7253241
-14261,7519,2097,0.0954278502201834,0.0954278502201834,-104.9283056,39.7253241,-104.9271898,39.7253303
-14262,2097,5979,0.093364277402532,0.093364277402532,-104.9271898,39.7253303,-104.9260981,39.7253303
-14263,5979,7668,0.0947328877466294,0.0947328877466294,-104.9260981,39.7253303,-104.9249904,39.7253323
-14264,7668,2333,0.0940581587738673,0.0940581587738673,-104.9249904,39.7253323,-104.9238906,39.7253365
-14290,7340,2847,0.0976411590956878,0.0976411590956878,-104.9316333,39.714638,-104.9304918,39.7146446
-14291,2847,3488,0.099134038329873,0.099134038329873,-104.9304918,39.7146446,-104.9293331,39.7146644
-14265,2333,9307,2.72967592410639,2.72967592410639,-104.9238906,39.7253365,-104.8919735,39.7255098
-14266,7939,9297,0.0419487931711618,0.0419487931711618,-104.9857768,39.7256351,-104.9852863,39.7256333
-14268,9308,8124,0.0322650869587369,0.0322650869587369,-104.9788375,39.7207707,-104.9790658,39.7205397
-14270,6489,4610,0.147433811602258,0.147433811602258,-104.9787322,39.7461798,-104.9787365,39.7448539
-14271,4610,9309,0.176778253451623,0.176778253451623,-104.9787365,39.7448539,-104.9787417,39.7432641
-14272,9309,9310,0.173976128689665,0.173976128689665,-104.9787417,39.7432641,-104.9787468,39.7416995
-14273,9310,661,0.00410310170227956,0.00410310170227956,-104.9787468,39.7416995,-104.9787469,39.7416626
-14274,661,9311,0.181937703339546,0.181937703339546,-104.9787469,39.7416626,-104.9787522,39.7400264
-14275,9311,9312,0.00955167864142152,0.00955167864142152,-104.9787522,39.7400264,-104.9787525,39.7399405
-14276,9312,5465,0.170285054650927,0.170285054650927,-104.9787525,39.7399405,-104.9787452,39.7384091
-14277,5465,9313,0.170744821866598,0.170744821866598,-104.9787452,39.7384091,-104.9787299,39.7368736
-14279,1959,9314,0.0338130460518869,0.0338130460518869,-104.9258263,39.7078957,-104.9258091,39.7081995
-14280,6865,9315,0.0139507857568572,0.0139507857568572,-104.9407779,39.7146468,-104.9406148,39.7146468
-14304,3303,9322,0.10510832723533,0.10510832723533,-104.9898413,39.756424,-104.9907084,39.7570942
-14282,1952,1061,0.0629715521271105,0.0629715521271105,-104.9402458,39.7146371,-104.9395162,39.7147128
-14283,1061,1698,0.0954893713474356,0.0954893713474356,-104.9395162,39.7147128,-104.9384005,39.7147427
-14284,1698,7830,0.0914331784434328,0.0914331784434328,-104.9384005,39.7147427,-104.937334,39.714687
-14285,7830,6672,0.0912502234487567,0.0912502234487567,-104.937334,39.714687,-104.9362682,39.7146512
-14287,3115,6289,0.0998478865183477,0.0998478865183477,-104.9351095,39.7146512,-104.9339422,39.7146578
-14288,6289,6153,0.0969141122634902,0.0969141122634902,-104.9339422,39.7146578,-104.9328092,39.7146512
-14289,6153,7340,0.100591515239683,0.100591515239683,-104.9328092,39.7146512,-104.9316333,39.714638
-14292,3488,5347,0.102266398355838,0.102266398355838,-104.9293331,39.7146644,-104.9281375,39.7146675
-14293,5347,5385,0.100999909961237,0.100999909961237,-104.9281375,39.7146675,-104.9269567,39.714668
-14294,5385,2941,0.100298515709498,0.100298515709498,-104.9269567,39.714668,-104.9257841,39.7146684
-14295,2941,6815,0.100200854484763,0.100200854484763,-104.9257841,39.7146684,-104.9246127,39.7146774
-14296,6815,9316,0.597950743493465,0.597950743493465,-104.9246127,39.7146774,-104.9176221,39.7147069
-14299,9318,9319,0.0328706223087289,0.0328706223087289,-104.9873865,39.7545236,-104.9876534,39.7547364
-14300,9319,9320,0.0460951861554719,0.0460951861554719,-104.9876534,39.7547364,-104.9880277,39.7550348
-14332,8959,603,0.0768028618845699,0.0768028618845699,-104.9949911,39.7695799,-104.9958065,39.7692896
-14301,9320,9321,0.0066600520489618,0.0066600520489618,-104.9880277,39.7550348,-104.9880818,39.7550779
-14302,9321,6181,0.104280480431139,0.104280480431139,-104.9880818,39.7550779,-104.9889487,39.7557377
-14303,6181,3303,0.107915728386056,0.107915728386056,-104.9889487,39.7557377,-104.9898413,39.756424
-14305,9322,7829,0.125883411444605,0.125883411444605,-104.9907084,39.7570942,-104.9917479,39.7578961
-14306,7829,9323,0.0108681676592021,0.0108681676592021,-104.9917479,39.7578961,-104.9918391,39.7579642
-14339,5536,6469,0.142307267119589,0.142307267119589,-104.9948277,39.7742296,-104.9948277,39.7755094
-14309,2191,9060,0.337657954437192,0.337657954437192,-104.9936227,39.759356,-104.9947546,39.7622653
-14312,8501,9324,0.0507516559976904,0.0507516559976904,-104.9871043,39.7524564,-104.9866859,39.7521326
-14313,9324,8418,0.0529402152835436,0.0529402152835436,-104.9866859,39.7521326,-104.986246,39.7517975
-14314,8418,9204,0.0536170041098827,0.0536170041098827,-104.986246,39.7517975,-104.9858044,39.7514551
-16428,9891,9892,0.0636662665142278,0.0636662665142278,-104.9688482,39.696672,-104.9695204,39.6969176
-14316,9204,8416,0.0537868101405785,0.0537868101405785,-104.9858044,39.7514551,-104.9853609,39.751112
-14317,8416,4388,0.0529171329453403,0.0529171329453403,-104.9853609,39.751112,-104.9849232,39.7507755
-14318,4388,9325,0.0509479826022637,0.0509479826022637,-104.9849232,39.7507755,-104.9845026,39.7504509
-14319,9325,3012,0.0488022545854277,0.0488022545854277,-104.9845026,39.7504509,-104.9840976,39.7501416
-14320,3012,9326,0.0106897373905654,0.0106897373905654,-104.9840976,39.7501416,-104.9840104,39.7500727
-14321,9326,9327,0.0465239604768105,0.0465239604768105,-104.9840104,39.7500727,-104.9836296,39.7497738
-14322,9327,5968,0.0526629141875595,0.0526629141875595,-104.9836296,39.7497738,-104.9831894,39.7494425
-14323,5968,7574,0.106363762970419,0.106363762970419,-104.9831894,39.7494425,-104.982314,39.7487628
-14324,7574,3677,0.190331060201359,0.190331060201359,-104.982314,39.7487628,-104.980751,39.7475439
-14326,604,9328,0.0383191315904674,0.0383191315904674,-104.9964331,39.7692764,-104.9959868,39.7692435
-14327,9328,8962,0.0878512488922689,0.0878512488922689,-104.9959868,39.7692435,-104.9951474,39.7687875
-14336,2420,3233,0.140764271648617,0.140764271648617,-104.9948281,39.7704903,-104.9948707,39.7717558
-14337,3233,5753,0.137661630591373,0.137661630591373,-104.9948707,39.7717558,-104.9948482,39.7729937
-14338,5753,5536,0.137436976875483,0.137436976875483,-104.9948482,39.7729937,-104.9948277,39.7742296
-14340,6469,8679,0.121371092902246,0.121371092902246,-104.9948277,39.7755094,-104.9948199,39.7766009
-14341,8679,9329,0.0309595800848719,0.0309595800848719,-104.9948199,39.7766009,-104.9948053,39.7768791
-20573,10860,10861,0.0279030600601915,0.0279030600601915,-105.02457,39.7611148,-105.0248964,39.7611186
-14342,6914,8116,0.133600464645887,0.133600464645887,-105.0111738,39.7765593,-105.0111288,39.7777603
-14343,8116,2483,0.133445859176034,0.133445859176034,-105.0111288,39.7777603,-105.0111233,39.7789604
-14344,2483,2482,0.047686047945258,0.047686047945258,-105.0111233,39.7789604,-105.0111147,39.7793892
-14345,2482,2821,0.0880230568241511,0.0880230568241511,-105.0111147,39.7793892,-105.0111319,39.7801807
-14346,2821,1413,0.131238509050086,0.131238509050086,-105.0111319,39.7801807,-105.0110892,39.7813605
-14347,1413,1353,0.132733599584258,0.132733599584258,-105.0110892,39.7813605,-105.0110864,39.7825542
-14348,1353,7767,0.0733149237137966,0.0733149237137966,-105.0110864,39.7825542,-105.0110634,39.7832133
-14350,6729,2454,0.137919009046371,0.137919009046371,-105.0111874,39.7692764,-105.0111996,39.7705167
-14351,2454,3222,0.134234515444875,0.134234515444875,-105.0111996,39.7705167,-105.0111996,39.7717239
-14352,3222,5743,0.134597141931663,0.134597141931663,-105.0111996,39.7717239,-105.0112253,39.7729342
-14353,5743,5520,0.133175062767026,0.133175062767026,-105.0112253,39.7729342,-105.0112082,39.7741318
-14355,6454,6914,0.135018185869381,0.135018185869381,-105.0112167,39.7753455,-105.0111738,39.7765593
-14358,9331,5721,0.0487615183925519,0.0487615183925519,-105.0351853,39.7838062,-105.0357498,39.7838704
-14359,5721,7455,0.0500566721474228,0.0500566721474228,-105.0357498,39.7838704,-105.0363356,39.7838724
-14360,7455,7439,0.0502188861539984,0.0502188861539984,-105.0363356,39.7838724,-105.0369233,39.7838741
-14361,7439,9332,0.0497229240568787,0.0497229240568787,-105.0369233,39.7838741,-105.0375052,39.7838741
-14362,9332,7179,0.0495263907597367,0.0495263907597367,-105.0375052,39.7838741,-105.0380848,39.7838741
-14363,7179,6514,0.0494836674166392,0.0494836674166392,-105.0380848,39.7838741,-105.0386639,39.783874
-14364,6514,7769,0.0494751212766029,0.0494751212766029,-105.0386639,39.783874,-105.0392429,39.783874
-14365,7769,8353,0.0493044680149371,0.0493044680149371,-105.0392429,39.783874,-105.0398199,39.7838754
-14366,8353,1088,0.0496035740367965,0.0496035740367965,-105.0398199,39.7838754,-105.0404004,39.7838769
-14367,1088,9333,0.0494070055394434,0.0494070055394434,-105.0404004,39.7838769,-105.0409786,39.7838755
-18206,10280,8329,0.00812836711491393,0.00812836711491393,-105.0363386,39.7622009,-105.0363384,39.7621278
-14368,9333,7511,0.0493300687211978,0.0493300687211978,-105.0409786,39.7838755,-105.0415559,39.7838742
-14369,7511,9334,0.0505963663421883,0.0505963663421883,-105.0415559,39.7838742,-105.042148,39.7838703
-14370,9334,3859,0.0512115816031079,0.0512115816031079,-105.042148,39.7838703,-105.0427473,39.7838664
-14371,3859,7593,0.0500990561172611,0.0500990561172611,-105.0427473,39.7838664,-105.0433336,39.7838653
-14372,7593,5584,0.0522011302499861,0.0522011302499861,-105.0433336,39.7838653,-105.0439445,39.7838641
-14376,6393,4066,0.134479200667361,0.134479200667361,-105.0252309,39.747573,-105.0251451,39.7487806
-17290,7744,10084,0.402391291558362,0.402391291558362,-104.9517894,39.689329,-104.9518229,39.6857103
-14377,4066,8345,0.135023999423797,0.135023999423797,-105.0251451,39.7487806,-105.0251451,39.7499949
-14378,8345,9290,0.135014881750995,0.135014881750995,-105.0251451,39.7499949,-105.0251537,39.7512091
-14380,9290,8343,0.132811220384574,0.132811220384574,-105.0251537,39.7512091,-105.0251537,39.7524035
-14381,8343,4290,0.133533987407519,0.133533987407519,-105.0251537,39.7524035,-105.0251537,39.7536044
-14382,4290,9335,0.135902936474728,0.135902936474728,-105.0251537,39.7536044,-105.025158,39.7548266
-14383,9335,3489,0.0587665939642116,0.0587665939642116,-105.025158,39.7548266,-105.0251569,39.7553551
-14384,3489,7712,0.0755904198902593,0.0755904198902593,-105.0251569,39.7553551,-105.0251554,39.7560349
-14385,7712,27,0.134715758792357,0.134715758792357,-105.0251554,39.7560349,-105.0251661,39.7572464
-14386,27,2969,0.137103389587981,0.137103389587981,-105.0251661,39.7572464,-105.0251674,39.7584794
-14387,2969,9336,0.0109860620784292,0.0109860620784292,-105.0251674,39.7584794,-105.0251673,39.7585782
-14388,9336,9337,0.167759812178903,0.167759812178903,-105.0251673,39.7585782,-105.0251662,39.7600869
-14389,9337,9206,0.00926254133366712,0.00926254133366712,-105.0251662,39.7600869,-105.0251661,39.7601702
-14390,9206,8977,0.0113535458246787,0.0113535458246787,-105.0251661,39.7601702,-105.0251674,39.7602723
-14391,8977,8972,0.0088289433819593,0.0088289433819593,-105.0251674,39.7602723,-105.025167,39.7603517
-14392,8972,3592,0.0571990081351957,0.0571990081351957,-105.025167,39.7603517,-105.0251647,39.7608661
-14393,3592,9338,0.0469245704560806,0.0469245704560806,-105.0251647,39.7608661,-105.0251667,39.7612881
-14394,9338,9339,0.0729443531618577,0.0729443531618577,-105.0251667,39.7612881,-105.0251698,39.7619441
-14395,9339,8232,0.00668286428887123,0.00668286428887123,-105.0251698,39.7619441,-105.0251701,39.7620042
-14396,8232,9340,0.00979627303730314,0.00979627303730314,-105.0251701,39.7620042,-105.0251701,39.7620923
-14397,9340,9341,0.118389238398527,0.118389238398527,-105.0251701,39.7620923,-105.0251701,39.763157
-14398,9341,4525,0.00524840053732967,0.00524840053732967,-105.0251701,39.763157,-105.0251701,39.7632042
-14399,4525,9342,0.013599142214923,0.013599142214923,-105.0251701,39.7632042,-105.02517,39.7633265
-17917,5630,5173,0.1998812615077,0.1998812615077,-104.9856145,39.7183411,-104.9856359,39.7165436
-14400,9342,5242,0.122003116630053,0.122003116630053,-105.02517,39.7633265,-105.0251688,39.7644237
-14401,5242,6892,0.132288650893496,0.132288650893496,-105.0251688,39.7644237,-105.0251701,39.7656134
-14402,6892,9343,0.135024052446379,0.135024052446379,-105.0251701,39.7656134,-105.0251715,39.7668277
-14403,9343,1682,0.135717283468362,0.135717283468362,-105.0251715,39.7668277,-105.0251835,39.7680482
-14404,1682,9344,0.13652220484586,0.13652220484586,-105.0251835,39.7680482,-105.025201,39.7692759
-14405,9344,9345,0.105458278319657,0.105458278319657,-105.025201,39.7692759,-105.0251956,39.7702243
-14406,9345,2418,0.102009831688775,0.102009831688775,-105.0251956,39.7702243,-105.0251709,39.7711415
-14407,2418,3242,0.101232559655988,0.101232559655988,-105.0251709,39.7711415,-105.0251665,39.7720519
-14408,3242,5748,0.0982858511104491,0.0982858511104491,-105.0251665,39.7720519,-105.0251623,39.7729358
-14409,5748,374,0.0623624460797668,0.0623624460797668,-105.0251623,39.7729358,-105.0251537,39.7734966
-14410,374,5523,0.0701701821949803,0.0701701821949803,-105.0251537,39.7734966,-105.0251646,39.7741276
-14411,5523,6457,0.135950108709595,0.135950108709595,-105.0251646,39.7741276,-105.0251537,39.7753502
-14412,6457,6915,0.143043041710545,0.143043041710545,-105.0251537,39.7753502,-105.0251451,39.7766366
-14413,6915,8113,0.201708935806819,0.201708935806819,-105.0251451,39.7766366,-105.0251365,39.7784506
-14414,8113,2832,0.20096393469179,0.20096393469179,-105.0251365,39.7784506,-105.0251279,39.7802579
-14415,2832,9346,0.204633312594591,0.204633312594591,-105.0251279,39.7802579,-105.0251194,39.7820982
-14416,9346,414,0.202451705011007,0.202451705011007,-105.0251194,39.7820982,-105.025085,39.7839187
-14417,414,9347,0.0102632917291373,0.0102632917291373,-105.025085,39.7839187,-105.025085,39.784011
-14419,9348,9349,0.0562572963351917,0.0562572963351917,-105.0252787,39.756038,-105.0259368,39.7560399
-14420,9349,8300,0.00966827703924115,0.00966827703924115,-105.0259368,39.7560399,-105.0260499,39.7560402
-14421,8300,6777,0.0385409578619094,0.0385409578619094,-105.0260499,39.7560402,-105.0265007,39.7560347
-14422,6777,1544,0.0462211024255861,0.0462211024255861,-105.0265007,39.7560347,-105.0270414,39.7560347
-14423,1544,7912,0.0490573153021717,0.0490573153021717,-105.0270414,39.7560347,-105.0276151,39.7560457
-14424,7912,1233,0.049290008691593,0.049290008691593,-105.0276151,39.7560457,-105.0281917,39.7560463
-14426,6137,1235,0.0484278864865507,0.0484278864865507,-105.0287666,39.7560413,-105.0293331,39.7560445
-14427,1235,4023,0.0513600630217092,0.0513600630217092,-105.0293331,39.7560445,-105.0299339,39.7560479
-14429,9350,6747,0.132068580931606,0.132068580931606,-105.0252762,39.7536227,-105.0268211,39.7536227
-14430,6747,6147,0.133962898476652,0.133962898476652,-105.0268211,39.7536227,-105.0283879,39.7536008
-14431,6147,4021,0.132523387247295,0.132523387247295,-105.0283879,39.7536008,-105.029938,39.753586
-14432,4021,7025,0.136778977327424,0.136778977327424,-105.029938,39.753586,-105.031538,39.753586
-14433,7025,7395,0.133533581691074,0.133533581691074,-105.031538,39.753586,-105.0331,39.7535942
-14434,7395,3404,0.129273092410981,0.129273092410981,-105.0331,39.7535942,-105.0346118,39.7536209
-14437,6743,6143,0.132668974575322,0.132668974575322,-105.0268304,39.7487612,-105.0283819,39.7487852
-14439,4017,7021,0.135416440349126,0.135416440349126,-105.0299442,39.7487903,-105.0315281,39.7488001
-15949,9764,9765,0.0507119344408952,0.0507119344408952,-104.9984431,39.7056824,-104.9988186,39.7053295
-14440,7021,2253,0.0670945211351968,0.0670945211351968,-105.0315281,39.7488001,-105.0323128,39.7487906
-14441,2253,7391,0.0705505249778064,0.0705505249778064,-105.0323128,39.7487906,-105.033138,39.748786
-14442,7391,8378,0.0284601613193826,0.0284601613193826,-105.033138,39.748786,-105.0334703,39.7487707
-14443,8378,9352,0.0168078916798857,0.0168078916798857,-105.0334703,39.7487707,-105.0336669,39.7487707
-14444,9352,9164,0.0309569561418734,0.0309569561418734,-105.0336669,39.7487707,-105.034029,39.7487707
-14445,9164,3399,0.0498252251835071,0.0498252251835071,-105.034029,39.7487707,-105.0346118,39.7487707
-14446,3399,9201,0.0503897904067021,0.0503897904067021,-105.0346118,39.7487707,-105.0352011,39.7487792
-14447,9201,8373,0.0497143012199282,0.0497143012199282,-105.0352011,39.7487792,-105.0357825,39.7487876
-14448,8373,9353,0.0509790068650631,0.0509790068650631,-105.0357825,39.7487876,-105.0363784,39.7487709
-14449,9353,7441,0.0496189650212473,0.0496189650212473,-105.0363784,39.7487709,-105.0369584,39.7487546
-14450,7441,7159,0.100702050774509,0.100702050774509,-105.0369584,39.7487546,-105.0381363,39.7487551
-14451,7159,9354,0.0494661713985568,0.0494661713985568,-105.0381363,39.7487551,-105.0387149,39.7487553
-14452,9354,7771,0.0505861336269105,0.0505861336269105,-105.0387149,39.7487553,-105.0393066,39.7487556
-14453,7771,9120,0.0493839312690347,0.0493839312690347,-105.0393066,39.7487556,-105.0398842,39.7487505
-14454,9120,1112,0.0512647827333792,0.0512647827333792,-105.0398842,39.7487505,-105.0404838,39.7487453
-14455,1112,9355,0.0498795134320378,0.0498795134320378,-105.0404838,39.7487453,-105.0410672,39.7487502
-14456,9355,7492,0.0488194630548967,0.0488194630548967,-105.0410672,39.7487502,-105.0416382,39.7487551
-14457,7492,9168,0.0520827219058429,0.0520827219058429,-105.0416382,39.7487551,-105.0422474,39.7487571
-14460,9356,8961,0.0504011792295747,0.0504011792295747,-105.025291,39.7729029,-105.0258806,39.7729129
-14461,8961,3748,0.0493839208030821,0.0493839208030821,-105.0258806,39.7729129,-105.0264583,39.7729227
-14462,3748,6769,0.0968984775923487,0.0968984775923487,-105.0264583,39.7729227,-105.0275913,39.7729556
-14463,6769,6149,0.102435146849327,0.102435146849327,-105.0275913,39.7729556,-105.0287889,39.7729931
-14465,3994,7051,0.102115193238577,0.102115193238577,-105.029945,39.7730349,-105.031138,39.773086
-14466,7051,1408,0.0946641824527164,0.0946641824527164,-105.031138,39.773086,-105.032238,39.773186
-14467,1408,7388,0.085462530975882,0.085462530975882,-105.032238,39.773186,-105.033238,39.773186
-14468,7388,7384,0.0170925061959903,0.0170925061959903,-105.033238,39.773186,-105.033438,39.773186
-18773,9634,9642,0.177090825598433,0.177090825598433,-105.0008673,39.7384682,-105.0008766,39.7368756
-14469,7384,3431,0.0989346539047275,0.0989346539047275,-105.033438,39.773186,-105.0345947,39.7731502
-14470,3431,7700,0.0518438186201772,0.0518438186201772,-105.0345947,39.7731502,-105.0352012,39.7731407
-14471,7700,5704,0.048946112444104,0.048946112444104,-105.0352012,39.7731407,-105.0357738,39.7731317
-14472,5704,9357,0.0519385112225497,0.0519385112225497,-105.0357738,39.7731317,-105.0363814,39.7731219
-14473,9357,7431,0.0487842422429383,0.0487842422429383,-105.0363814,39.7731219,-105.0369521,39.7731127
-14474,7431,9358,0.0504551193593522,0.0504551193593522,-105.0369521,39.7731127,-105.0375421,39.7730965
-14475,9358,7172,0.0479047859915454,0.0479047859915454,-105.0375421,39.7730965,-105.0381026,39.7730917
-14476,7172,6792,0.0511502123352556,0.0511502123352556,-105.0381026,39.7730917,-105.038701,39.7730829
-14477,6792,7632,0.00188047440472113,0.00188047440472113,-105.038701,39.7730829,-105.038723,39.7730826
-14478,7632,7787,0.0496192518214323,0.0496192518214323,-105.038723,39.7730826,-105.0393035,39.7730745
-14480,9359,8535,0.0508077855400009,0.0508077855400009,-105.0252953,39.7710821,-105.0258888,39.7711084
-14481,8535,6765,0.145782759028854,0.145782759028854,-105.0258888,39.7711084,-105.0275931,39.7711626
-14482,6765,3990,0.201170058672575,0.201170058672575,-105.0275931,39.7711626,-105.0299456,39.7712234
-14484,1252,9360,0.0508116162596578,0.0508116162596578,-105.020531,39.7702103,-105.0211255,39.7702143
-14485,9360,2713,0.151002345273532,0.151002345273532,-105.0211255,39.7702143,-105.0228923,39.7702104
-14486,2713,9361,0.150151679268698,0.150151679268698,-105.0228923,39.7702104,-105.0246491,39.770221
-14487,9361,9345,0.0467087251829664,0.0467087251829664,-105.0246491,39.770221,-105.0251956,39.7702243
-14489,604,9362,0.304555126012675,0.304555126012675,-104.9964331,39.7692764,-104.9999965,39.7692821
-19303,10466,10464,0.0570509910756543,0.0570509910756543,-104.988856,39.7399993,-104.9888814,39.740512
-14490,9362,3931,0.0491525010465484,0.0491525010465484,-104.9999965,39.7692821,-105.0005716,39.7692834
-14491,3931,5621,0.101973762448865,0.101973762448865,-105.0005716,39.7692834,-105.0017647,39.76929
-14492,5621,3706,0.101962569966911,0.101962569966911,-105.0017647,39.76929,-105.0029577,39.76929
-14493,3706,712,0.103443032392629,0.103443032392629,-105.0029577,39.76929,-105.0041679,39.7692768
-14494,712,9192,0.0968373320357312,0.0968373320357312,-105.0041679,39.7692768,-105.0053009,39.7692702
-14495,9192,9363,0.0080975223718546,0.0080975223718546,-105.0053009,39.7692702,-105.0053953,39.7692764
-14496,9363,8516,0.0893732443225825,0.0893732443225825,-105.0053953,39.7692764,-105.006441,39.7692764
-14497,8516,4192,0.13424362136155,0.13424362136155,-105.006441,39.7692764,-105.0080117,39.7692764
-14498,4192,2518,0.136440133151325,0.136440133151325,-105.0080117,39.7692764,-105.0096081,39.7692764
-14499,2518,6729,0.134978640871206,0.134978640871206,-105.0096081,39.7692764,-105.0111874,39.7692764
-14500,6729,1227,0.0997687727623418,0.0997687727623418,-105.0111874,39.7692764,-105.0123547,39.769283
-14501,1227,4806,0.0366740513167213,0.0366740513167213,-105.0123547,39.769283,-105.0127838,39.769283
-14502,4806,4807,0.0623613194343192,0.0623613194343192,-105.0127838,39.769283,-105.0135134,39.7692764
-14503,4807,9364,0.0735708513932139,0.0735708513932139,-105.0135134,39.7692764,-105.0143742,39.7692739
-14505,2172,9365,0.10218559205586,0.10218559205586,-105.0146807,39.7692764,-105.0158763,39.7692728
-14506,9365,6421,0.131466128237451,0.131466128237451,-105.0158763,39.7692728,-105.0174145,39.7692708
-14507,6421,4627,0.133072729014262,0.133072729014262,-105.0174145,39.7692708,-105.0189715,39.7692708
-14508,4627,1251,0.132619751836754,0.132619751836754,-105.0189715,39.7692708,-105.0205232,39.7692708
-14509,1251,9366,0.0509582244384895,0.0509582244384895,-105.0205232,39.7692708,-105.0211194,39.7692754
-14510,9366,4559,0.0827794726054668,0.0827794726054668,-105.0211194,39.7692754,-105.0220879,39.769283
-14511,4559,2712,0.0689589814233185,0.0689589814233185,-105.0220879,39.769283,-105.0228947,39.7692896
-14512,2712,2728,0.0619836012735683,0.0619836012735683,-105.0228947,39.7692896,-105.0236198,39.769279
-14513,2728,9367,0.087518882590742,0.087518882590742,-105.0236198,39.769279,-105.0246438,39.769277
-14514,9367,9344,0.0476225838725891,0.0476225838725891,-105.0246438,39.769277,-105.025201,39.7692759
-14515,9344,9368,0.00985438954363147,0.00985438954363147,-105.025201,39.7692759,-105.0253163,39.7692759
-14516,9368,9369,0.0491094576501381,0.0491094576501381,-105.0253163,39.7692759,-105.0258904,39.7692943
-18778,10124,10345,0.0125614259192805,0.0125614259192805,-105.0006648,39.7400196,-105.0006728,39.7399068
-14517,9369,7774,0.00626697755243391,0.00626697755243391,-105.0258904,39.7692943,-105.0259637,39.7692958
-14518,7774,6761,0.141378168804538,0.141378168804538,-105.0259637,39.7692958,-105.0276173,39.7693294
-14519,6761,3985,0.199192140414955,0.199192140414955,-105.0276173,39.7693294,-105.0299452,39.769416
-14521,7053,7044,0.0653254811284965,0.0653254811284965,-105.0315035,39.7694414,-105.0322674,39.7694612
-14522,7044,7387,0.0682830004024069,0.0682830004024069,-105.0322674,39.7694612,-105.0330656,39.7694876
-14523,7387,3430,0.133588924605445,0.133588924605445,-105.0330656,39.7694876,-105.0346278,39.7695271
-14524,3430,7686,0.0503796411863715,0.0503796411863715,-105.0346278,39.7695271,-105.0352172,39.7695205
-14525,7686,5703,0.0508582113883613,0.0508582113883613,-105.0352172,39.7695205,-105.0358122,39.7695139
-14526,5703,9370,0.0488667197641872,0.0488667197641872,-105.0358122,39.7695139,-105.0363839,39.7695075
-14527,9370,7429,0.0516445969542144,0.0516445969542144,-105.0363839,39.7695075,-105.0369881,39.7695008
-14528,7429,9371,0.0490112318671292,0.0490112318671292,-105.0369881,39.7695008,-105.0375615,39.7694949
-14529,9371,7171,0.0508482971319457,0.0508482971319457,-105.0375615,39.7694949,-105.0381554,39.7694678
-14530,7171,7624,0.0496771306838175,0.0496771306838175,-105.0381554,39.7694678,-105.0387364,39.7694549
-14531,7624,7786,0.0493747865229187,0.0493747865229187,-105.0387364,39.7694549,-105.0393141,39.7694531
-14532,7786,6545,0.0503324450079726,0.0503324450079726,-105.0393141,39.7694531,-105.039903,39.7694505
-14533,6545,1130,0.0509050056370777,0.0509050056370777,-105.039903,39.7694505,-105.0404986,39.769448
-14534,1130,9372,0.0485943238040251,0.0485943238040251,-105.0404986,39.769448,-105.0410671,39.769441
-14535,9372,7501,0.0507738202300539,0.0507738202300539,-105.0410671,39.769441,-105.0416611,39.7694338
-14536,7501,3847,0.101870167526128,0.101870167526128,-105.0416611,39.7694338,-105.0428508,39.7693779
-14537,3847,9373,0.0504389434046066,0.0504389434046066,-105.0428508,39.7693779,-105.0434409,39.7693717
-14538,9373,5568,0.0510557052627446,0.0510557052627446,-105.0434409,39.7693717,-105.0440382,39.7693646
-14539,5568,7550,0.0950790701641584,0.0950790701641584,-105.0440382,39.7693646,-105.0451506,39.7693556
-18779,10345,10346,0.00436025817920743,0.00436025817920743,-105.0006728,39.7399068,-105.0006741,39.7398676
-14540,7550,9374,0.691166878065482,0.691166878065482,-105.0451506,39.7693556,-105.0532374,39.7693224
-14542,9375,3750,0.0991970412293978,0.0991970412293978,-105.0252653,39.7766366,-105.0264259,39.7766517
-14543,3750,6775,0.030090245676364,0.030090245676364,-105.0264259,39.7766517,-105.0267779,39.7766583
-14544,6775,6770,0.06895159402243,0.06895159402243,-105.0267779,39.7766583,-105.0275847,39.7766649
-14545,6770,6151,0.0638158634824408,0.0638158634824408,-105.0275847,39.7766649,-105.0283314,39.7766715
-14546,6151,6150,0.0359509846886602,0.0359509846886602,-105.0283314,39.7766715,-105.028752,39.776678
-14547,6150,3996,0.0963309366011696,0.0963309366011696,-105.028752,39.776678,-105.0298791,39.7766911
-14548,3996,7052,0.102479688313932,0.102479688313932,-105.0298791,39.7766911,-105.031078,39.776711
-14549,7052,7045,0.0330120960596164,0.0330120960596164,-105.031078,39.776711,-105.0314642,39.7767176
-14550,7045,1410,0.0660204937565387,0.0660204937565387,-105.0314642,39.7767176,-105.0322367,39.7767242
-14551,1410,7375,0.0682166301368544,0.0682166301368544,-105.0322367,39.7767242,-105.0330349,39.7767308
-14552,7375,7385,0.0295959064634691,0.0295959064634691,-105.0330349,39.7767308,-105.0333812,39.7767337
-14553,7385,3434,0.103723384358152,0.103723384358152,-105.0333812,39.7767337,-105.0345947,39.776752
-14554,3434,7763,0.0498679267683769,0.0498679267683769,-105.0345947,39.776752,-105.0351781,39.7767423
-14555,7763,5714,0.0489397855227354,0.0489397855227354,-105.0351781,39.7767423,-105.0357506,39.7767314
-14556,5714,9376,0.0504544990745908,0.0504544990745908,-105.0357506,39.7767314,-105.036341,39.776731
-14557,9376,7434,0.0512120959316622,0.0512120959316622,-105.036341,39.776731,-105.0369402,39.7767242
-14558,7434,9377,0.0478236988076173,0.0478236988076173,-105.0369402,39.7767242,-105.0374998,39.776721
-14559,9377,7173,0.0504644501870281,0.0504644501870281,-105.0374998,39.776721,-105.0380903,39.7767176
-14560,7173,6757,0.0487932478126772,0.0487932478126772,-105.0380903,39.7767176,-105.0386612,39.7767112
-14561,6757,7788,0.0524425771479912,0.0524425771479912,-105.0386612,39.7767112,-105.0392748,39.7767044
-14562,7788,6629,0.0465854765801166,0.0465854765801166,-105.0392748,39.7767044,-105.0398199,39.7767003
-14563,6629,1135,0.050756073904441,0.050756073904441,-105.0398199,39.7767003,-105.0404138,39.7766958
-14564,1135,6996,0.0489590899927541,0.0489590899927541,-105.0404138,39.7766958,-105.0409867,39.7766949
-14565,6996,7502,0.0500614988346772,0.0500614988346772,-105.0409867,39.7766949,-105.0415725,39.776694
-14566,7502,9378,0.0592142721743878,0.0592142721743878,-105.0415725,39.776694,-105.0422654,39.7766923
-14567,9378,9379,0.0408406813526211,0.0408406813526211,-105.0422654,39.7766923,-105.0427433,39.7766911
-14568,9379,7525,0.051644217383113,0.051644217383113,-105.0427433,39.7766911,-105.0433434,39.7766363
-14569,7525,9380,0.00488834581127681,0.00488834581127681,-105.0433434,39.7766363,-105.0434002,39.7766311
-14570,9380,9381,0.0137184453378057,0.0137184453378057,-105.0434002,39.7766311,-105.0435596,39.7766165
-14571,9381,5577,0.0352923239739852,0.0352923239739852,-105.0435596,39.7766165,-105.0439697,39.7765791
-14572,5577,9382,0.0499195542635391,0.0499195542635391,-105.0439697,39.7765791,-105.0445538,39.7765739
-14573,9382,9383,0.00207675636441744,0.00207675636441744,-105.0445538,39.7765739,-105.0445781,39.7765737
-14574,9383,9384,0.047500863548095,0.047500863548095,-105.0445781,39.7765737,-105.0451339,39.7765688
-14575,9384,9385,0.692939297157353,0.692939297157353,-105.0451339,39.7765688,-105.0532424,39.7765622
-14576,9347,9386,0.0638147684012153,0.0638147684012153,-105.025085,39.784011,-105.025085,39.7845849
-14578,9386,7985,0.00659385915044033,0.00659385915044033,-105.025085,39.7845849,-105.025085,39.7846442
-14579,7985,9389,0.0876122732807676,0.0876122732807676,-105.025085,39.7846442,-105.0251871,39.7854282
-14581,9390,9391,0.0645406329993705,0.0645406329993705,-105.0252653,39.7845914,-105.0252579,39.784011
-14583,9391,413,0.0102638039419597,0.0102638039419597,-105.0252579,39.784011,-105.0252567,39.7839187
-14584,413,9392,0.19657163498794,0.19657163498794,-105.0252567,39.7839187,-105.0252309,39.782151
-14586,2833,2489,0.134959283423391,0.134959283423391,-105.0252481,39.7802579,-105.0252567,39.7790442
-14587,2489,8106,0.133489509437131,0.133489509437131,-105.0252567,39.7790442,-105.0252567,39.7778437
-14588,8106,9375,0.13422540798818,0.13422540798818,-105.0252567,39.7778437,-105.0252653,39.7766366
-14589,9375,5534,0.213451017222507,0.213451017222507,-105.0252653,39.7766366,-105.0252738,39.774717
-14590,5534,9356,0.201724072155003,0.201724072155003,-105.0252738,39.774717,-105.025291,39.7729029
-14591,9356,9393,0.10196574773319,0.10196574773319,-105.025291,39.7729029,-105.025291,39.7719859
-14592,9393,9359,0.100498646625457,0.100498646625457,-105.025291,39.7719859,-105.0252953,39.7710821
-14593,9359,9394,0.0995312761976722,0.0995312761976722,-105.0252953,39.7710821,-105.0253203,39.7701872
-14594,9394,9368,0.101332513335273,0.101332513335273,-105.0253203,39.7701872,-105.0253163,39.7692759
-14595,9368,9395,0.0524188937894899,0.0524188937894899,-105.0253163,39.7692759,-105.0253115,39.7688045
-14597,7373,1659,0.103861210410172,0.103861210410172,-105.0253069,39.7683544,-105.0252948,39.7674204
-14598,1659,7753,0.101665764300136,0.101665764300136,-105.0252948,39.7674204,-105.0252922,39.7665061
-14599,7753,6893,0.102477314257262,0.102477314257262,-105.0252922,39.7665061,-105.0252908,39.7655845
-14600,6893,5249,0.10178809746081,0.10178809746081,-105.0252908,39.7655845,-105.0252881,39.7646691
-14601,5249,9396,0.145009648698155,0.145009648698155,-105.0252881,39.7646691,-105.0252844,39.763365
-14602,9396,5880,0.0121536325330439,0.0121536325330439,-105.0252844,39.763365,-105.0252841,39.7632557
-14603,5880,9397,0.00548191654733534,0.00548191654733534,-105.0252841,39.7632557,-105.0252842,39.7632064
-14606,8233,9399,0.00646043089308406,0.00646043089308406,-105.0252854,39.7620032,-105.0252855,39.7619451
-14607,9399,3593,0.11814466181621,0.11814466181621,-105.0252855,39.7619451,-105.0252868,39.7608826
-14608,3593,8990,0.0502713142680652,0.0502713142680652,-105.0252868,39.7608826,-105.0252879,39.7604305
-14610,8994,8444,0.0112418070839832,0.0112418070839832,-105.0252881,39.7603424,-105.0252881,39.7602413
-14611,8444,9400,0.0106637167987107,0.0106637167987107,-105.0252881,39.7602413,-105.0252875,39.7601454
-14612,9400,9401,0.175022698409133,0.175022698409133,-105.0252875,39.7601454,-105.025278,39.7585714
-14613,9401,2970,0.0101077489563562,0.0101077489563562,-105.025278,39.7585714,-105.0252774,39.7584805
-15358,9566,9564,0.0244609132808449,0.0244609132808449,-104.9656611,39.7170239,-104.9659399,39.7170729
-15359,9564,9567,0.0131773798008107,0.0131773798008107,-104.9659399,39.7170729,-104.9660929,39.717059
-18780,10346,10347,0.0407216504299826,0.0407216504299826,-105.0006741,39.7398676,-105.0006789,39.7395014
-14614,2970,8339,0.136426769448966,0.136426769448966,-105.0252774,39.7584805,-105.0252854,39.7572536
-14615,8339,9348,0.135169766224191,0.135169766224191,-105.0252854,39.7572536,-105.0252787,39.756038
-17064,4880,9474,0.196578675384766,0.196578675384766,-104.9616527,39.7350527,-104.9616204,39.7368204
-14616,9348,9402,0.134813162708373,0.134813162708373,-105.0252787,39.756038,-105.0252747,39.7548256
-14618,9350,8341,0.135569890655856,0.135569890655856,-105.0252762,39.7536227,-105.0252824,39.7524035
-14619,8341,9291,0.132813255317002,0.132813255317002,-105.0252824,39.7524035,-105.0252738,39.7512091
-14620,9291,9403,0.135124075128598,0.135124075128598,-105.0252738,39.7512091,-105.0252739,39.7499939
-14621,9403,9351,0.135070525267418,0.135070525267418,-105.0252739,39.7499939,-105.0252652,39.7487792
-14622,9351,6393,0.134155373542404,0.134155373542404,-105.0252652,39.7487792,-105.0252309,39.747573
-14624,9393,8920,0.0508713694865286,0.0508713694865286,-105.025291,39.7719859,-105.0258859,39.7720013
-14625,8920,6767,0.14583235659915,0.14583235659915,-105.0258859,39.7720013,-105.0275913,39.7720453
-14626,6767,3992,0.20138079206452,0.20138079206452,-105.0275913,39.7720453,-105.0299454,39.772124
-14628,9389,6049,0.0198174454501223,0.0198174454501223,-105.0251871,39.7854282,-105.0251957,39.7856063
-14629,6049,5790,0.202409458864074,0.202409458864074,-105.0251957,39.7856063,-105.0252043,39.7874266
-14630,5790,9404,0.390889741592557,0.390889741592557,-105.0252043,39.7874266,-105.0251785,39.7909419
-14631,9389,8000,0.0874325326194809,0.0874325326194809,-105.0251871,39.7854282,-105.0252653,39.7846442
-14632,8000,9390,0.00587109212749533,0.00587109212749533,-105.0252653,39.7846442,-105.0252653,39.7845914
-14634,9405,9387,0.104292734331338,0.104292734331338,-105.0042679,39.7583739,-105.0032834,39.7589279
-14643,6926,912,0.0399977157837286,0.0399977157837286,-104.9982022,39.7580108,-104.9985313,39.7577551
-14645,3853,9379,0.0160272455480019,0.0160272455480019,-105.0428243,39.7765611,-105.0427433,39.7766911
-14646,9379,8109,0.188409381404142,0.188409381404142,-105.0427433,39.7766911,-105.0427373,39.7783855
-14647,8109,9407,0.202174997774683,0.202174997774683,-105.0427373,39.7783855,-105.0427327,39.7802037
-18781,10347,10348,0.0132995316754344,0.0132995316754344,-105.0006789,39.7395014,-105.0006804,39.7393818
-14649,5569,7551,0.0943021955909244,0.0943021955909244,-105.0440431,39.7711254,-105.0451465,39.7711259
-14650,7551,9408,0.692224615113747,0.692224615113747,-105.0451465,39.7711259,-105.053246,39.77113
-14651,7543,9409,0.0534301345278006,0.0534301345278006,-105.0449615,39.7672,-105.045011,39.767679
-14652,6725,4821,0.0796194906426482,0.0796194906426482,-105.0111475,39.760596,-105.0105051,39.7611145
-14653,4821,2511,0.108135424106199,0.108135424106199,-105.0105051,39.7611145,-105.0096048,39.7617977
-14654,2511,8224,0.0376491716837282,0.0376491716837282,-105.0096048,39.7617977,-105.009291,39.7620353
-14787,9415,9416,0.31094582672675,0.31094582672675,-104.9903152,39.773396,-104.99143,39.7707341
-14791,2891,8923,0.457832400708685,0.457832400708685,-104.9905111,39.7729211,-104.9942478,39.7699708
-14793,5024,3335,0.0983906046596767,0.0983906046596767,-104.9585953,39.733723,-104.9574452,39.7336966
-14795,7882,7337,0.102026433082927,0.102026433082927,-104.9563208,39.7337098,-104.9551277,39.7337164
-14796,7337,7986,0.092185977990205,0.092185977990205,-104.9551277,39.7337164,-104.9540634,39.7335844
-14797,7986,2055,0.0946262859427162,0.0946262859427162,-104.9540634,39.7335844,-104.9529569,39.7335952
-14798,2055,2661,0.105023750774947,0.105023750774947,-104.9529569,39.7335952,-104.9517288,39.7335844
-14799,2661,4134,0.100547305543173,0.100547305543173,-104.9517288,39.7335844,-104.950553,39.733591
-14800,4134,6697,0.0891067622100312,0.0891067622100312,-104.950553,39.733591,-104.949511,39.7335838
-14801,6697,8020,0.0955965901798936,0.0955965901798936,-104.949511,39.7335838,-104.9484005,39.7336828
-14802,8020,7684,0.0959578997394599,0.0959578997394599,-104.9484005,39.7336828,-104.9472785,39.7336681
-14803,7684,3458,0.0944062286409825,0.0944062286409825,-104.9472785,39.7336681,-104.9461745,39.7336634
-14804,3458,9418,0.046227752797198,0.046227752797198,-104.9461745,39.7336634,-104.9456339,39.7336646
-14805,9418,6020,0.0461318959590008,0.0461318959590008,-104.9456339,39.7336646,-104.9450945,39.7336574
-14806,6020,9419,0.0476773807861996,0.0476773807861996,-104.9450945,39.7336574,-104.944537,39.7336514
-19851,10660,10659,0.00933491084100046,0.00933491084100046,-105.0352222,39.7384654,-105.035226,39.7385493
-14807,9419,9420,0.0464971294902911,0.0464971294902911,-104.944537,39.7336514,-104.9439933,39.7336456
-14808,9420,9421,0.0470997921907546,0.0470997921907546,-104.9439933,39.7336456,-104.9434425,39.7336457
-14809,9421,858,0.0457230540386264,0.0457230540386264,-104.9434425,39.7336457,-104.9429078,39.7336457
-14810,858,453,0.0467078777528092,0.0467078777528092,-104.9429078,39.7336457,-104.9423616,39.733649
-14811,453,7106,0.0457758284617094,0.0457758284617094,-104.9423616,39.733649,-104.9418263,39.7336523
-14812,7106,457,0.0455135048722811,0.0455135048722811,-104.9418263,39.7336523,-104.9412942,39.7336426
-14813,457,9422,0.0463689143813771,0.0463689143813771,-104.9412942,39.7336426,-104.9407521,39.7336327
-14815,9423,9424,0.00582356405087118,0.00582356405087118,-105.0158749,39.754908,-105.0159208,39.7548693
-14817,9425,6432,0.0926350815349589,0.0926350815349589,-105.0167051,39.7548156,-105.0177887,39.7548225
-14818,6432,4657,0.117278685803448,0.117278685803448,-105.0177887,39.7548225,-105.0191606,39.7548276
-14819,4657,1280,0.116593491044555,0.116593491044555,-105.0191606,39.7548276,-105.0205245,39.7548287
-14820,1280,4531,0.132186730302242,0.132186730302242,-105.0205245,39.7548287,-105.0220708,39.7548328
-14951,7670,9457,3.41600373692151,3.41600373692151,-104.9245872,39.7382725,-104.8846398,39.7386634
-14952,3583,7612,0.0941905477613176,0.0941905477613176,-104.9394304,39.7546656,-104.9383286,39.7546719
-14953,7612,7265,0.0936588343585109,0.0936588343585109,-104.9383286,39.7546719,-104.937233,39.7546682
-14955,7584,2001,0.0944700456489753,0.0944700456489753,-104.936128,39.7546682,-104.9350229,39.7546682
-14956,2001,3361,0.0949233780276755,0.0949233780276755,-104.9350229,39.7546682,-104.9339125,39.7546702
-14957,3361,2755,0.0936752171867012,0.0936752171867012,-104.9339125,39.7546702,-104.9328167,39.7546719
-14958,2755,7006,0.0959502415519421,0.0959502415519421,-104.9328167,39.7546719,-104.9316943,39.7546764
-14959,7006,2281,0.099513679348955,0.099513679348955,-104.9316943,39.7546764,-104.9305302,39.7546764
-14960,2281,3582,0.100891029071921,0.100891029071921,-104.9305302,39.7546764,-104.92935,39.7546723
-14961,3582,7528,0.100887947066067,0.100887947066067,-104.92935,39.7546723,-104.9281699,39.7546826
-14962,7528,2136,0.103412071247308,0.103412071247308,-104.9281699,39.7546826,-104.9269602,39.7546847
-14963,2136,5993,0.100671897064821,0.100671897064821,-104.9269602,39.7546847,-104.9257827,39.7546991
-14964,5993,7673,0.0999667195935639,0.0999667195935639,-104.9257827,39.7546991,-104.9246133,39.7546991
-14986,8886,7162,0.0452381047162121,0.0452381047162121,-104.9798704,39.7432669,-104.9793413,39.7432656
-14985,8878,8886,0.104437941202429,0.104437941202429,-104.9810919,39.7432682,-104.9798704,39.7432669
-14987,7162,9309,0.0512658726512666,0.0512658726512666,-104.9793413,39.7432656,-104.9787417,39.7432641
-15109,7996,6927,0.0217805821755954,0.0217805821755954,-104.9977757,39.7584584,-104.9980305,39.7584589
-15110,6927,5675,0.030815905152866,0.030815905152866,-104.9980305,39.7584589,-104.998391,39.7584595
-14965,7673,9461,2.89733038736532,2.89733038736532,-104.9246133,39.7546991,-104.8907207,39.7546542
-14966,8151,7610,0.094248596661074,0.094248596661074,-104.9394486,39.7510451,-104.9383462,39.7510533
-15088,2328,9485,2.88346551451846,2.88346551451846,-104.9240271,39.7656085,-104.890296,39.7651798
-15089,9486,3468,0.447301506508283,0.447301506508283,-104.9406618,39.7619502,-104.9458947,39.7619213
-15090,3468,3445,0.0309512876225537,0.0309512876225537,-104.9458947,39.7619213,-104.9462568,39.7619224
-15091,3445,7699,0.105014135175069,0.105014135175069,-104.9462568,39.7619224,-104.9474853,39.7619327
-15092,7699,9487,0.105691765273947,0.105691765273947,-104.9474853,39.7619327,-104.9487218,39.7619316
-15093,9487,6684,0.102061996358298,0.102061996358298,-104.9487218,39.7619316,-104.9499154,39.7619564
-15094,6684,4128,0.108739719526669,0.108739719526669,-104.9499154,39.7619564,-104.9511874,39.7619719
-15095,4128,9488,0.104836941153267,0.104836941153267,-104.9511874,39.7619719,-104.9524139,39.7619708
-15096,9488,2082,0.105803010632854,0.105803010632854,-104.9524139,39.7619708,-104.9536517,39.7619729
-15097,2082,7334,0.1052078044876,0.1052078044876,-104.9536517,39.7619729,-104.9548825,39.7619805
-15101,9489,2994,0.0812267643509346,0.0812267643509346,-104.9963423,39.760645,-104.995393,39.7606779
-15105,2996,4851,0.0525302115232072,0.0525302115232072,-104.9954583,39.7585204,-104.996067,39.7584555
-15106,4851,7227,0.0344830493164063,0.0344830493164063,-104.996067,39.7584555,-104.9964704,39.7584562
-15107,7227,2369,0.0550241369558443,0.0550241369558443,-104.9964704,39.7584562,-104.9971141,39.7584573
-15108,2369,7996,0.056554238974086,0.056554238974086,-104.9971141,39.7584573,-104.9977757,39.7584584
-16370,9877,8705,0.102117755919592,0.102117755919592,-104.9392992,39.7619966,-104.9404928,39.7619574
-16371,8705,9486,0.014467692878557,0.014467692878557,-104.9404928,39.7619574,-104.9406618,39.7619502
-16373,8076,3329,0.0677844820507112,0.0677844820507112,-104.9580824,39.7607455,-104.9573301,39.7609383
-16374,3329,7880,0.139626392785753,0.139626392785753,-104.9573301,39.7609383,-104.9561137,39.7617764
-16375,7880,7333,0.105584363104376,0.105584363104376,-104.9561137,39.7617764,-104.9548815,39.761843
-16376,7333,2081,0.10500807653965,0.10500807653965,-104.9548815,39.761843,-104.953653,39.761844
-16377,2081,2678,0.105119136499329,0.105119136499329,-104.953653,39.761844,-104.9524232,39.761844
-16491,6692,8028,0.103532298857838,0.103532298857838,-104.9500467,39.7437984,-104.9488359,39.7437854
-16379,4127,6683,0.108621189217377,0.108621189217377,-104.9511861,39.7618358,-104.9499154,39.7618255
-16385,9881,9882,0.0163548118473388,0.0163548118473388,-104.9710436,39.7033454,-104.9710939,39.7032035
-16386,9882,9458,0.0203986664758761,0.0203986664758761,-104.9710939,39.7032035,-104.9711616,39.7030276
-16394,3281,9883,0.00468216635493236,0.00468216635493236,-104.9710667,39.7027917,-104.9711214,39.7027903
-16396,9884,9458,0.0218243339760988,0.0218243339760988,-104.971175,39.7028316,-104.9711616,39.7030276
-16398,9883,9884,0.00648970201006769,0.00648970201006769,-104.9711214,39.7027903,-104.971175,39.7028316
-16400,9885,9886,0.267423928903385,0.267423928903385,-104.9695415,39.703787,-104.9705756,39.7060566
-16401,9886,9880,0.296075289776302,0.296075289776302,-104.9705756,39.7060566,-104.9718617,39.7035846
-16403,9878,9881,0.0274154521009071,0.0274154521009071,-104.971336,39.7034463,-104.9710436,39.7033454
-16404,9881,9887,0.0188694353495207,0.0188694353495207,-104.9710436,39.7033454,-104.9708237,39.7033586
-16405,9887,9888,0.0187489585891175,0.0187489585891175,-104.9708237,39.7033586,-104.9706065,39.7033361
-19509,10534,10535,0.00388440521802765,0.00388440521802765,-104.9882751,39.7088082,-104.9882297,39.7088075
-16425,3407,9890,0.502103946549802,0.502103946549802,-104.9699417,39.6974212,-104.9695728,39.7019278
-16426,9890,3331,0.0251683632208894,0.0251683632208894,-104.9695728,39.7019278,-104.9693109,39.7020309
-16481,7888,3680,0.0532502584498927,0.0532502584498927,-104.983517,39.7478374,-104.9830181,39.7475507
-16483,4595,8006,0.101626087251738,0.101626087251738,-104.9581328,39.7438013,-104.9569442,39.743807
-16484,8006,580,0.022127419381672,0.022127419381672,-104.9569442,39.743807,-104.9566854,39.743808
-16485,580,7979,0.165894151722243,0.165894151722243,-104.9566854,39.743808,-104.9547451,39.7438115
-16486,7979,9923,0.0456395565118553,0.0456395565118553,-104.9547451,39.7438115,-104.9542113,39.7438103
-16487,9923,2066,0.0539845223115493,0.0539845223115493,-104.9542113,39.7438103,-104.9535799,39.7438083
-16488,2066,2641,0.100182277305196,0.100182277305196,-104.9535799,39.7438083,-104.9524082,39.7438154
-16489,2641,4107,0.0977431302735631,0.0977431302735631,-104.9524082,39.7438154,-104.9512653,39.743795
-16490,4107,6692,0.10418977795868,0.10418977795868,-104.9512653,39.743795,-104.9500467,39.7437984
-16492,8028,7698,0.0982299872130606,0.0982299872130606,-104.9488359,39.7437854,-104.947687,39.743787
-16493,7698,3443,0.0993337912559461,0.0993337912559461,-104.947687,39.743787,-104.9465253,39.7437746
-16494,3443,6011,0.101499429536563,0.101499429536563,-104.9465253,39.7437746,-104.9453382,39.743767
-16495,6011,3878,0.0977083732706848,0.0977083732706848,-104.9453382,39.743767,-104.9441954,39.743766
-16496,3878,9924,0.0991972529095445,0.0991972529095445,-104.9441954,39.743766,-104.9430352,39.7437705
-16497,9924,420,0.100553893040038,0.100553893040038,-104.9430352,39.7437705,-104.9418594,39.7437507
-16504,8592,9925,0.120377099914021,0.120377099914021,-105.0036056,39.7454327,-105.004838,39.7449092
-16505,9925,9926,0.107491921110891,0.107491921110891,-105.004838,39.7449092,-105.005919,39.7444156
-16506,9926,9927,0.123107053114174,0.123107053114174,-105.005919,39.7444156,-105.0051948,39.7434587
-16517,8288,3009,0.0410924117477314,0.0410924117477314,-104.9878071,39.7473599,-104.9873284,39.7473931
-16519,9451,4779,0.246284579163,0.246284579163,-104.933915,39.7209388,-104.9338206,39.7231525
-16520,4779,6557,0.132912762129515,0.132912762129515,-104.9338206,39.7231525,-104.9338133,39.7243478
-16521,6557,9306,0.107414375743234,0.107414375743234,-104.9338133,39.7243478,-104.9338148,39.7253138
-16523,5147,9150,0.0526798805531595,0.0526798805531595,-104.925132,39.7295572,-104.9246762,39.7292385
-16527,862,703,0.202686588734239,0.202686588734239,-104.9428936,39.7401262,-104.9430426,39.7419454
-16528,703,9924,0.202942846886287,0.202942846886287,-104.9430426,39.7419454,-104.9430352,39.7437705
-16533,9141,9155,0.0471076181125112,0.0471076181125112,-104.9960053,39.7064848,-104.9962707,39.706856
-16549,9936,8118,0.163748197039451,0.163748197039451,-104.9796276,39.7485669,-104.9781487,39.7495027
-16550,8118,4329,0.102460572786022,0.102460572786022,-104.9781487,39.7495027,-104.9769503,39.7494919
-16551,4329,9932,0.0509040459853039,0.0509040459853039,-104.9769503,39.7494919,-104.9763549,39.7494877
-16552,9932,5034,0.0506801147751554,0.0506801147751554,-104.9763549,39.7494877,-104.9757621,39.7494857
-16553,5034,9935,0.0507841642169636,0.0507841642169636,-104.9757621,39.7494857,-104.9751681,39.7494897
-16554,9935,7991,0.0519996695117493,0.0519996695117493,-104.9751681,39.7494897,-104.9745599,39.7494843
-16555,7991,9939,0.0501954054420559,0.0501954054420559,-104.9745599,39.7494843,-104.9739728,39.7494793
-16557,2889,8382,0.106173445564903,0.106173445564903,-104.9733549,39.749474,-104.972113,39.7494781
-16558,8382,8542,0.105198351895408,0.105198351895408,-104.972113,39.7494781,-104.9708826,39.7494657
-16559,8542,4730,0.104923019039301,0.104923019039301,-104.9708826,39.7494657,-104.9696554,39.7494546
-16560,4730,6797,0.109090547930583,0.109090547930583,-104.9696554,39.7494546,-104.9683794,39.7494616
-16561,6797,7349,0.101581569748298,0.101581569748298,-104.9683794,39.7494616,-104.9671912,39.7494616
-16562,7349,5395,0.107089477151985,0.107089477151985,-104.9671912,39.7494616,-104.9659386,39.7494554
-16563,5395,8556,0.104796077599276,0.104796077599276,-104.9659386,39.7494554,-104.9647128,39.7494554
-17270,82,7309,0.202171029293651,0.202171029293651,-104.9623177,39.7002318,-104.9622856,39.7020498
-16564,8556,3897,0.106860413590027,0.106860413590027,-104.9647128,39.7494554,-104.9634629,39.7494637
-16565,3897,1030,0.106538064092827,0.106538064092827,-104.9634629,39.7494637,-104.9622168,39.7494743
-16566,1030,6272,0.104663636918357,0.104663636918357,-104.9622168,39.7494743,-104.9609926,39.7494657
-16567,6272,9940,0.0522044777389819,0.0522044777389819,-104.9609926,39.7494657,-104.960382,39.7494708
-16568,9940,9941,0.0539741744852114,0.0539741744852114,-104.960382,39.7494708,-104.9597507,39.749476
-16570,5969,9942,0.0525274850765404,0.0525274850765404,-104.98198,39.7503787,-104.9824158,39.7507117
-16571,9942,9943,0.0464624768491459,0.0464624768491459,-104.9824158,39.7507117,-104.9827994,39.7510077
-16572,9943,3013,0.00948387351005329,0.00948387351005329,-104.9827994,39.7510077,-104.9828772,39.7510685
-16573,3013,9944,0.0499659888588949,0.0499659888588949,-104.9828772,39.7510685,-104.9832891,39.7513873
-16574,9944,4387,0.0525459349585223,0.0525459349585223,-104.9832891,39.7513873,-104.9837317,39.7517152
-16575,4387,8415,0.053989635677053,0.053989635677053,-104.9837317,39.7517152,-104.9841796,39.7520575
-16576,8415,9945,0.0518942546071768,0.0518942546071768,-104.9841796,39.7520575,-104.9846155,39.7523823
-16577,9945,8419,0.054710567315966,0.054710567315966,-104.9846155,39.7523823,-104.9850687,39.7527297
-16578,8419,9946,0.0495941326709913,0.0495941326709913,-104.9850687,39.7527297,-104.9854693,39.7530523
-16579,9946,8502,0.0543577768356107,0.0543577768356107,-104.9854693,39.7530523,-104.985916,39.7534002
-16580,8502,8537,0.0523876514778538,0.0523876514778538,-104.985916,39.7534002,-104.9863465,39.7537355
-16581,8537,9591,0.106159293603162,0.106159293603162,-104.9863465,39.7537355,-104.9872304,39.7544061
-16582,9591,9318,0.0186755424929809,0.0186755424929809,-104.9872304,39.7544061,-104.9873865,39.7545236
-16584,3674,9947,0.0925100597395306,0.0925100597395306,-104.9782423,39.7475122,-104.9790113,39.7480975
-16585,9947,9936,0.0741653442201567,0.0741653442201567,-104.9790113,39.7480975,-104.9796276,39.7485669
-16586,9936,5811,0.0698256524972049,0.0698256524972049,-104.9796276,39.7485669,-104.9802084,39.7490084
-16587,5811,7575,0.109874082628797,0.109874082628797,-104.9802084,39.7490084,-104.9811177,39.7497067
-16588,7575,8407,0.0534887493842637,0.0534887493842637,-104.9811177,39.7497067,-104.9815533,39.750052
-16589,8407,5969,0.0514820185730379,0.0514820185730379,-104.9815533,39.750052,-104.98198,39.7503787
-16615,5811,5357,0.148515460139762,0.148515460139762,-104.9802084,39.7490084,-104.9790225,39.7499844
-16616,5357,8119,0.104815937410374,0.104815937410374,-104.9790225,39.7499844,-104.978147,39.7506443
-16621,9938,9956,0.0146143299800706,0.0146143299800706,-104.9856294,39.7391313,-104.9857322,39.7392363
-16622,9956,9957,0.0128596804561102,0.0128596804561102,-104.9857322,39.7392363,-104.9856428,39.7393293
-16624,9958,9959,0.0111717692412778,0.0111717692412778,-104.9855355,39.7393169,-104.9854926,39.739222
-16625,9959,9960,0.00928483420505699,0.00928483420505699,-104.9854926,39.739222,-104.9855516,39.7391519
-16626,9960,9938,0.0070355984277229,0.0070355984277229,-104.9855516,39.7391519,-104.9856294,39.7391313
-16628,9961,9962,0.526903283655783,0.526903283655783,-104.9531023,39.7400594,-104.9592628,39.7399435
-16630,9963,9312,1.46582798607179,1.46582798607179,-104.9616093,39.739874,-104.9787525,39.7399405
-16633,9965,9966,0.00412165910041822,0.00412165910041822,-104.9859809,39.7399196,-104.9860291,39.7399191
-16634,9966,9967,0.0757681110838303,0.0757681110838303,-104.9860291,39.7399191,-104.986072,39.7392385
-16638,9965,9957,0.0717225435233069,0.0717225435233069,-104.9859809,39.7399196,-104.9856428,39.7393293
-16640,9964,9958,0.0807216833328343,0.0807216833328343,-104.9850261,39.7399281,-104.9855355,39.7393169
-16642,9967,9956,0.0290555152245672,0.0290555152245672,-104.986072,39.7392385,-104.9857322,39.7392363
-16645,565,7092,0.0721739648747923,0.0721739648747923,-104.9854426,39.7390647,-104.9848557,39.7385982
-16646,7092,9969,0.0060839008927764,0.0060839008927764,-104.9848557,39.7385982,-104.9848573,39.7385435
-16658,651,9973,0.109528403212781,0.109528403212781,-104.9861093,39.7416811,-104.9873866,39.7416062
-16660,3165,8089,0.106908291090671,0.106908291090671,-105.0030875,39.7426587,-105.0019804,39.7431056
-16662,9927,8897,0.00902355166325831,0.00902355166325831,-105.0051948,39.7434587,-105.0051222,39.7433998
-16663,8897,8899,0.00817755039331079,0.00817755039331079,-105.0051222,39.7433998,-105.0050563,39.7433465
-16665,8896,8898,0.0955954321276197,0.0955954321276197,-105.0048016,39.7429839,-105.0038366,39.7434181
-16666,8898,3166,0.0120380596695599,0.0120380596695599,-105.0038366,39.7434181,-105.0037031,39.7434525
-16726,3074,5275,0.102580698126288,0.102580698126288,-104.9862922,39.7129578,-104.9862654,39.7138801
-16727,5275,6866,0.0979724094285353,0.0979724094285353,-104.9862654,39.7138801,-104.9862493,39.7147611
-17386,5920,919,0.177782086780631,0.177782086780631,-104.9842358,39.7304466,-104.9842225,39.7320454
-16728,6866,5172,0.198907590330119,0.198907590330119,-104.9862493,39.7147611,-104.9862386,39.7165499
-16730,8563,6368,0.270917565484422,0.270917565484422,-104.9293999,39.7256232,-104.9294128,39.7280596
-16731,6368,9149,0.131210826087923,0.131210826087923,-104.9294128,39.7280596,-104.9294074,39.7292396
-16779,73,3512,0.203753724402901,0.203753724402901,-104.9663438,39.7002174,-104.966341,39.698385
-16780,3512,4254,0.201507995491671,0.201507995491671,-104.966341,39.698385,-104.9663465,39.6965728
-16781,4254,8742,0.199898657335298,0.199898657335298,-104.9663465,39.6965728,-104.9663604,39.6947751
-16782,8742,8713,0.201418841949,0.201418841949,-104.9663604,39.6947751,-104.966356,39.6929637
-16784,3511,4252,0.198740800817733,0.198740800817733,-104.9675186,39.6983807,-104.9675293,39.6965934
-16785,4252,8741,0.201811596521788,0.201811596521788,-104.9675293,39.6965934,-104.9675005,39.6947786
-16786,8741,8712,0.201811329628688,0.201811329628688,-104.9675005,39.6947786,-104.9675147,39.6929637
-16794,4264,8747,0.202686112287629,0.202686112287629,-104.9593265,39.6965961,-104.9593265,39.6947733
-16795,8747,8718,0.200629598901607,0.200629598901607,-104.9593265,39.6947733,-104.9593208,39.692969
-16797,4264,9864,0.0549036584382557,0.0549036584382557,-104.9593265,39.6965961,-104.9586848,39.6965926
-16798,9864,6516,0.0494449113838383,0.0494449113838383,-104.9586848,39.6965926,-104.9581069,39.6965895
-16799,6516,9855,0.048981731510525,0.048981731510525,-104.9581069,39.6965895,-104.9575344,39.69659
-16800,9855,6160,0.0501282016561891,0.0501282016561891,-104.9575344,39.69659,-104.9569485,39.6965905
-16801,6160,9852,0.0487763612951203,0.0487763612951203,-104.9569485,39.6965905,-104.9563784,39.6965905
-16802,9852,2738,0.0474245519497852,0.0474245519497852,-104.9563784,39.6965905,-104.9558241,39.6965905
-16803,2738,9267,0.050437767682916,0.050437767682916,-104.9558241,39.6965905,-104.9552346,39.6965869
-16804,9267,4512,0.0485383641713966,0.0485383641713966,-104.9552346,39.6965869,-104.9546673,39.6965834
-16805,4512,9858,0.0494525517955229,0.0494525517955229,-104.9546673,39.6965834,-104.9540893,39.6965849
-16807,3171,9861,0.047855446066228,0.047855446066228,-104.9534926,39.6965864,-104.9529333,39.6965815
-16808,9861,4996,0.0491871460939442,0.0491871460939442,-104.9529333,39.6965815,-104.9523584,39.6965806
-16810,728,3665,0.0984709387661759,0.0984709387661759,-104.951164,39.6965829,-104.9500131,39.6965763
-16811,3665,7315,0.0976596112157836,0.0976596112157836,-104.9500131,39.6965763,-104.9488718,39.6965905
-16812,7315,4586,0.099898936211385,0.099898936211385,-104.9488718,39.6965905,-104.9477042,39.6965961
-16813,4586,8032,0.100609280081376,0.100609280081376,-104.9477042,39.6965961,-104.9465284,39.6965829
-16814,8032,6372,0.100607138332673,0.100607138332673,-104.9465284,39.6965829,-104.9453525,39.6965829
-16815,6372,10015,0.0481181392934118,0.0481181392934118,-104.9453525,39.6965829,-104.9447901,39.696585
-16816,10015,4826,0.0474935217651045,0.0474935217651045,-104.9447901,39.696585,-104.944235,39.696587
-16817,4826,8954,0.102669069502609,0.102669069502609,-104.944235,39.696587,-104.943035,39.696587
-16818,8954,8956,0.0962963283421786,0.0962963283421786,-104.943035,39.696587,-104.9419095,39.6965915
-16819,8956,10016,0.0513191391251647,0.0513191391251647,-104.9419095,39.6965915,-104.9413099,39.696579
-16820,10016,8816,0.0499640269903021,0.0499640269903021,-104.9413099,39.696579,-104.940726,39.6965715
-16821,8816,8828,0.0154260311566384,0.0154260311566384,-104.940726,39.6965715,-104.9405457,39.6965715
-16822,8828,8206,0.163758839265649,0.163758839265649,-104.9405457,39.6965715,-104.9386317,39.6965781
-16824,7312,87,0.200996583193063,0.200996583193063,-104.959341,39.7020293,-104.9593351,39.7002217
-16825,87,3523,0.203555810471145,0.203555810471145,-104.9593351,39.7002217,-104.9593466,39.6983911
-16826,3523,4264,0.199602301480838,0.199602301480838,-104.9593466,39.6983911,-104.9593265,39.6965961
-16828,7312,3648,0.154169800390109,0.154169800390109,-104.959341,39.7020293,-104.9576929,39.7025901
-16832,10017,593,0.487939330962151,0.487939330962151,-104.9722814,39.707401,-104.9689126,39.70386
-16851,8718,9866,0.0548710295017979,0.0548710295017979,-104.9593208,39.692969,-104.9586795,39.6929681
-16854,9854,6162,0.0501051333475743,0.0501051333475743,-104.9575371,39.6929673,-104.9569515,39.6929673
-16855,6162,9851,0.0483439490024107,0.0483439490024107,-104.9569515,39.6929673,-104.9563865,39.692964
-16856,9851,2740,0.0471290060929331,0.0471290060929331,-104.9563865,39.692964,-104.9558357,39.6929607
-16857,2740,9863,0.0493697108471136,0.0493697108471136,-104.9558357,39.6929607,-104.9552587,39.6929589
-16858,9863,5231,0.0496606668462506,0.0496606668462506,-104.9552587,39.6929589,-104.9546783,39.692957
-16859,5231,9857,0.0497084193128251,0.0497084193128251,-104.9546783,39.692957,-104.9540974,39.6929504
-16860,9857,3173,0.0501789646371779,0.0501789646371779,-104.9540974,39.6929504,-104.953511,39.6929438
-16861,3173,9860,0.0494391268160734,0.0494391268160734,-104.953511,39.6929438,-104.9529332,39.6929471
-16862,9860,4998,0.0489685461673918,0.0489685461673918,-104.9529332,39.6929471,-104.9523609,39.6929504
-16863,4998,10023,0.0484162493280967,0.0484162493280967,-104.9523609,39.6929504,-104.9517951,39.692944
-16864,10023,730,0.0507353905968115,0.0507353905968115,-104.9517951,39.692944,-104.9512022,39.6929372
-16865,730,7061,0.101358904320696,0.101358904320696,-104.9512022,39.6929372,-104.9500177,39.6929504
-16867,8718,5830,0.204166330856198,0.204166330856198,-104.9593208,39.692969,-104.9593294,39.6911329
-16868,5830,7737,0.202033972193846,0.202033972193846,-104.9593294,39.6911329,-104.9593582,39.6893161
-16869,7737,10024,0.307945705057077,0.307945705057077,-104.9593582,39.6893161,-104.9594131,39.686547
-16870,594,7303,0.202197872623945,0.202197872623945,-104.9686935,39.7038655,-104.968686,39.7020471
-16871,7303,66,0.20266387330283,0.20266387330283,-104.968686,39.7020471,-104.968686,39.7002245
-16872,66,3507,0.204877942956717,0.204877942956717,-104.968686,39.7002245,-104.9686775,39.698382
-16873,3507,233,0.199133503403233,0.199133503403233,-104.9686775,39.698382,-104.968695,39.6965912
-16874,233,8739,0.200473333247617,0.200473333247617,-104.968695,39.6965912,-104.968695,39.6947883
-16876,9203,4390,0.147691017735613,0.147691017735613,-104.9873873,39.7502468,-104.9873785,39.7489186
-16878,1943,10025,0.122583563426404,0.122583563426404,-104.9902169,39.7384586,-104.9916503,39.7384388
-16879,10025,7860,0.110082433757866,0.110082433757866,-104.9916503,39.7384388,-104.9929377,39.7384322
-16880,7860,4679,0.101138191051348,0.101138191051348,-104.9929377,39.7384322,-104.9941204,39.7384454
-16881,4679,4942,0.0999327202014087,0.0999327202014087,-104.9941204,39.7384454,-104.9952889,39.7384631
-16882,4942,7214,0.0998696563081419,0.0998696563081419,-104.9952889,39.7384631,-104.9964568,39.738452
-16883,7214,4928,0.0376169687692631,0.0376169687692631,-104.9964568,39.738452,-104.9968967,39.7384563
-16884,4928,9636,0.014060573587084,0.014060573587084,-104.9968967,39.7384563,-104.9970611,39.7384591
-16886,9870,1167,0.138451400347842,0.138451400347842,-104.9561166,39.7619811,-104.9560938,39.7632261
-16887,1167,887,0.138706454254422,0.138706454254422,-104.9560938,39.7632261,-104.9561023,39.7644735
-16888,887,4471,0.139683302205089,0.139683302205089,-104.9561023,39.7644735,-104.9561053,39.7657297
-16890,9488,1170,0.13939401140641,0.13939401140641,-104.9524139,39.7619708,-104.9524125,39.7632244
-16891,1170,890,0.137058995578611,0.137058995578611,-104.9524125,39.7632244,-104.9524103,39.764457
-16892,890,4474,0.140851028519895,0.140851028519895,-104.9524103,39.764457,-104.9524143,39.7657237
-16893,4474,2796,0.132878137732711,0.132878137732711,-104.9524143,39.7657237,-104.9524116,39.7669187
-16894,2796,5265,0.13228574865076,0.13228574865076,-104.9524116,39.7669187,-104.9524289,39.7681083
-16895,5265,10026,0.123565762779561,0.123565762779561,-104.9524289,39.7681083,-104.9524147,39.7692195
-16896,5633,7143,0.082551113540924,0.082551113540924,-104.9721228,39.7557358,-104.9721228,39.7564782
-16899,8743,4255,0.199339176026767,0.199339176026767,-104.9658013,39.6947852,-104.9658026,39.6965779
-16905,6305,6456,0.135927811837651,0.135927811837651,-105.0158628,39.7765644,-105.0158736,39.775342
-16906,6456,5521,0.134557743068365,0.134557743068365,-105.0158736,39.775342,-105.0158789,39.7741319
-16907,5521,5744,0.134669392965434,0.134669392965434,-105.0158789,39.7741319,-105.0158722,39.7729208
-16908,5744,3224,0.133413468985769,0.133413468985769,-105.0158722,39.7729208,-105.0158803,39.771721
-16909,3224,2456,0.134335811293817,0.134335811293817,-105.0158803,39.771721,-105.015887,39.7705129
-16910,2456,9365,0.137895860915298,0.137895860915298,-105.015887,39.7705129,-105.0158763,39.7692728
-16911,9365,1677,0.134681074434199,0.134681074434199,-105.0158763,39.7692728,-105.0158682,39.7680616
-16912,1677,10027,0.135027096454707,0.135027096454707,-105.0158682,39.7680616,-105.0158575,39.7668473
-16913,10027,6891,0.134223449290887,0.134223449290887,-105.0158575,39.7668473,-105.0158561,39.7656402
-16914,6891,5239,0.133857055503606,0.133857055503606,-105.0158561,39.7656402,-105.0158514,39.7644364
-16915,5239,4520,0.134947645289316,0.134947645289316,-105.0158514,39.7644364,-105.0158588,39.7632228
-16916,4520,8229,0.133768415422039,0.133768415422039,-105.0158588,39.7632228,-105.015853,39.7620198
-16917,8229,6091,0.136267738734572,0.136267738734572,-105.015853,39.7620198,-105.0158342,39.7607944
-16918,6091,7927,0.0726325260844626,0.0726325260844626,-105.0158342,39.7607944,-105.0158342,39.7601412
-16919,7927,7846,0.0557691009082279,0.0557691009082279,-105.0158342,39.7601412,-105.0158428,39.7596397
-16920,7846,9410,0.0110872018563396,0.0110872018563396,-105.0158428,39.7596397,-105.015841,39.75954
-16921,9410,6730,0.0681749492551086,0.0681749492551086,-105.015841,39.75954,-105.015836,39.7589269
-16922,6730,10028,0.0472579211328822,0.0472579211328822,-105.015836,39.7589269,-105.015835,39.7585019
-16923,10028,2954,0.0113307920442751,0.0113307920442751,-105.015835,39.7585019,-105.0158347,39.7584
-16924,2954,10029,0.0100409346238736,0.0100409346238736,-105.0158347,39.7584,-105.015835,39.7583097
-16925,10029,6168,0.125005736653953,0.125005736653953,-105.015835,39.7583097,-105.0158387,39.7571855
-16926,6168,7701,0.0662611499745025,0.0662611499745025,-105.0158387,39.7571855,-105.0158374,39.7565896
-16927,7701,8987,0.0202942911891754,0.0202942911891754,-105.0158374,39.7565896,-105.01584,39.7564071
-16928,8987,9213,0.01474166778393,0.01474166778393,-105.01584,39.7564071,-105.0158342,39.7562746
-16929,9213,7708,0.0256851882115953,0.0256851882115953,-105.0158342,39.7562746,-105.0158257,39.7560437
-16930,7708,10030,0.0413405317485577,0.0413405317485577,-105.0158257,39.7560437,-105.0158154,39.755672
-16931,10030,10031,0.036234422910969,0.036234422910969,-105.0158154,39.755672,-105.015807,39.7553462
-16932,10031,9423,0.0490701245377313,0.0490701245377313,-105.015807,39.7553462,-105.0158749,39.754908
-16934,10027,6419,0.132846643372958,0.132846643372958,-105.0158575,39.7668473,-105.0174118,39.7668473
-16935,6419,4626,0.132395451164353,0.132395451164353,-105.0174118,39.7668473,-105.0189608,39.7668411
-16936,4626,1249,0.132966501814055,0.132966501814055,-105.0189608,39.7668411,-105.0205165,39.7668391
-16937,1249,4558,0.132618380312988,0.132618380312988,-105.0205165,39.7668391,-105.0220681,39.7668318
-16938,4558,2727,0.131821083937229,0.131821083937229,-105.0220681,39.7668318,-105.0236104,39.7668329
-16939,2727,9343,0.133429127887654,0.133429127887654,-105.0236104,39.7668329,-105.0251715,39.7668277
-16941,8228,10032,0.0522172382940556,0.0522172382940556,-105.0143631,39.7620198,-105.0143643,39.7624894
-16942,10032,4519,0.0809723084454978,0.0809723084454978,-105.0143643,39.7624894,-105.0143662,39.7632176
-16943,4519,5238,0.135835767836828,0.135835767836828,-105.0143662,39.7632176,-105.0143675,39.7644392
-16944,5238,6890,0.133656501060031,0.133656501060031,-105.0143675,39.7644392,-105.0143648,39.7656412
-16945,6890,8682,0.133080513446367,0.133080513446367,-105.0143648,39.7656412,-105.0143554,39.766838
-16946,8682,10033,0.014533820296874,0.014533820296874,-105.0143554,39.766838,-105.014357,39.7669687
-16947,10033,10034,0.045058130648326,0.045058130648326,-105.014357,39.7669687,-105.0143619,39.7673739
-16948,10034,10035,0.0185816236497386,0.0185816236497386,-105.0143619,39.7673739,-105.0143641,39.767541
-16949,10035,1675,0.0576680457580287,0.0576680457580287,-105.0143641,39.767541,-105.0143702,39.7680596
-16950,1675,9364,0.135024432224183,0.135024432224183,-105.0143702,39.7680596,-105.0143742,39.7692739
-16955,10039,10040,0.0721995210382621,0.0721995210382621,-105.0167989,39.7555658,-105.0167064,39.7549204
-16958,10037,10041,0.0717852961267022,0.0717852961267022,-105.0167413,39.7559349,-105.0159755,39.75567
-16966,10043,10031,0.025182886777608,0.025182886777608,-105.0160494,39.7554749,-105.015807,39.7553462
-16969,10045,10039,0.0209823477511839,0.0209823477511839,-105.0168432,39.7557514,-105.0167989,39.7555658
-16971,8478,9438,0.0521271400869927,0.0521271400869927,-105.0065368,39.7543758,-105.0069699,39.7547058
-16972,9438,8905,0.0558565070780073,0.0558565070780073,-105.0069699,39.7547058,-105.007434,39.7550594
-16974,8478,4846,0.326789742990523,0.326789742990523,-105.0065368,39.7543758,-105.0038505,39.7522849
-17070,9465,4599,0.173875508685798,0.173875508685798,-104.9615988,39.7432195,-104.9615991,39.7447832
-16976,8474,1065,0.0530498075975429,0.0530498075975429,-105.0012293,39.7502862,-105.0016675,39.750624
-16977,1065,1604,0.0517738709202157,0.0517738709202157,-105.0016675,39.750624,-105.002095,39.7509538
-16978,1604,2199,0.109121538786623,0.109121538786623,-105.002095,39.7509538,-105.0029976,39.7516477
-16979,2199,4846,0.101668961251418,0.101668961251418,-105.0029976,39.7516477,-105.0038505,39.7522849
-16981,8583,10046,0.0456665785984412,0.0456665785984412,-105.0023143,39.7476847,-105.001796,39.747784
-16982,10046,8467,0.0226345136731024,0.0226345136731024,-105.001796,39.747784,-105.0015391,39.7478332
-16983,8467,9624,0.0229241644266869,0.0229241644266869,-105.0015391,39.7478332,-105.0012783,39.7478811
-16985,2321,10047,0.097235186001144,0.097235186001144,-104.9741575,39.7685518,-104.9733504,39.7691681
-16987,4279,6406,0.146870704035985,0.146870704035985,-104.9762513,39.7682868,-104.9774556,39.7673446
-16988,6406,635,0.144187230253749,0.144187230253749,-104.9774556,39.7673446,-104.9786451,39.7664251
-16989,635,5325,0.14662773102424,0.14662773102424,-104.9786451,39.7664251,-104.9798548,39.7654901
-16990,5325,2031,0.146219173461136,0.146219173461136,-104.9798548,39.7654901,-104.981068,39.764563
-19672,10610,10608,0.149537813443153,0.149537813443153,-105.0246432,39.7697786,-105.0228937,39.7697604
-16991,2031,7082,0.144853503450252,0.144853503450252,-104.981068,39.764563,-104.9822567,39.7636345
-16992,7082,5509,0.146165117461088,0.146165117461088,-104.9822567,39.7636345,-104.9834626,39.7627025
-16993,5509,4460,0.146698487596664,0.146698487596664,-104.9834626,39.7627025,-104.9846721,39.7617665
-16994,4460,6579,0.146306787683811,0.146306787683811,-104.9846721,39.7617665,-104.9858777,39.7608325
-16995,6579,8050,0.147127627497255,0.147127627497255,-104.9858777,39.7608325,-104.9870901,39.7598933
-16996,8050,998,0.0663040704360148,0.0663040704360148,-104.9870901,39.7598933,-104.9876372,39.7594706
-16997,998,8404,0.225438240771773,0.225438240771773,-104.9876372,39.7594706,-104.9894933,39.7580303
-16998,8404,9322,0.147049060577026,0.147049060577026,-104.9894933,39.7580303,-104.9907084,39.7570942
-16999,9322,8853,0.146215405021224,0.146215405021224,-104.9907084,39.7570942,-104.9919124,39.7561602
-17000,8853,7901,0.148314641191611,0.148314641191611,-104.9919124,39.7561602,-104.9931346,39.7552135
-17001,7901,8294,0.139664345335099,0.139664345335099,-104.9931346,39.7552135,-104.9942907,39.754326
-17002,8294,8275,0.153027219017765,0.153027219017765,-104.9942907,39.754326,-104.9955427,39.7533424
-17003,8275,5787,0.145945595293254,0.145945595293254,-104.9955427,39.7533424,-104.99675,39.7524144
-17004,5787,4818,0.144804477618788,0.144804477618788,-104.99675,39.7524144,-104.9979466,39.7514927
-17005,4818,10048,0.148574277364319,0.148574277364319,-104.9979466,39.7514927,-104.9991687,39.7505427
-17006,10048,10049,0.141579838501947,0.141579838501947,-104.9991687,39.7505427,-105.0003395,39.7496422
-17007,10049,10050,0.0340492732837983,0.0340492732837983,-105.0003395,39.7496422,-105.0006176,39.749423
-17012,10052,2402,0.196242393649725,0.196242393649725,-105.0157808,39.7546549,-105.016659,39.7530243
-17032,8989,10060,0.00622693936167768,0.00622693936167768,-105.0193135,39.7576062,-105.0193133,39.7576622
-17033,10060,10061,0.0756461423573197,0.0756461423573197,-105.0193133,39.7576622,-105.0193111,39.7583425
-17034,10061,2960,0.00915137839377932,0.00915137839377932,-105.0193111,39.7583425,-105.0193108,39.7584248
-17036,9211,23,0.0239583762029722,0.0239583762029722,-105.0192076,39.7574773,-105.0191645,39.7572644
-17042,1225,7845,0.140995210775646,0.140995210775646,-105.0118006,39.7583774,-105.0117993,39.7596454
-17043,7845,6089,0.129051193087075,0.129051193087075,-105.0117993,39.7596454,-105.0118176,39.7608059
-17044,6089,8226,0.135326560563343,0.135326560563343,-105.0118176,39.7608059,-105.0118083,39.7620229
-17107,6692,328,0.0434519039634918,0.0434519039634918,-104.9500467,39.7437984,-104.9500765,39.7441885
-17046,1226,8903,0.113651762618459,0.113651762618459,-105.01181,39.7571845,-105.0105064,39.7573854
-17048,10065,6628,1.29415946940766,1.29415946940766,-104.977472,39.6803487,-104.9775188,39.6919873
-17050,10066,4340,0.062140618563636,0.062140618563636,-104.9653754,39.757537,-104.9653214,39.7569797
-17051,4340,5636,0.138107358521106,0.138107358521106,-104.9653214,39.7569797,-104.9653325,39.7557377
-17052,5636,3565,0.143998480732308,0.143998480732308,-104.9653325,39.7557377,-104.9653106,39.7544428
-17053,3565,824,0.136450026224328,0.136450026224328,-104.9653106,39.7544428,-104.9653005,39.7532157
-17054,824,7840,0.139827641423356,0.139827641423356,-104.9653005,39.7532157,-104.9653014,39.7519582
-17055,7840,10067,0.139718785770158,0.139718785770158,-104.9653014,39.7519582,-104.9653109,39.7507017
-17056,10067,8131,0.276864248380317,0.276864248380317,-104.9653109,39.7507017,-104.9653111,39.7482118
-17058,2251,4883,0.177313835055438,0.177313835055438,-104.9592063,39.733462,-104.9591955,39.7350566
-17059,4883,9473,0.195033286388948,0.195033286388948,-104.9591955,39.7350566,-104.9591742,39.7368105
-17060,9473,5482,0.176110607852179,0.176110607852179,-104.9591742,39.7368105,-104.9591722,39.7383943
-17187,10072,4065,0.107057267328692,0.107057267328692,-105.0235501,39.7478169,-105.0235939,39.7487791
-17188,4065,8344,0.135746766447532,0.135746766447532,-105.0235939,39.7487791,-105.0235939,39.7499999
-17189,8344,9289,0.134278993416053,0.134278993416053,-105.0235939,39.7499999,-105.0235939,39.7512075
-17190,9289,8342,0.133553201715071,0.133553201715071,-105.0235939,39.7512075,-105.0236111,39.7524085
-17191,8342,4289,0.132478531756059,0.132478531756059,-105.0236111,39.7524085,-105.0236168,39.7535999
-17192,4289,8346,0.0683305663670944,0.0683305663670944,-105.0236168,39.7535999,-105.0236119,39.7542144
-17193,8346,9426,0.0684183152680821,0.0684183152680821,-105.0236119,39.7542144,-105.0236131,39.7548297
-17194,9426,3584,0.0602567059919197,0.0602567059919197,-105.0236131,39.7548297,-105.0236148,39.7553716
-17195,3584,7710,0.0737335540738928,0.0737335540738928,-105.0236148,39.7553716,-105.0236168,39.7560347
-17196,7710,26,0.134781615428443,0.134781615428443,-105.0236168,39.7560347,-105.0236259,39.7572468
-17197,26,2966,0.136258381357618,0.136258381357618,-105.0236259,39.7572468,-105.0236238,39.7584722
-17256,4853,9479,0.17362135223772,0.17362135223772,-104.9861135,39.7352834,-104.9861222,39.7368448
-17257,9479,5456,0.178335939458279,0.178335939458279,-104.9861222,39.7368448,-104.9861136,39.7384486
-17258,5456,10081,0.171904914212928,0.171904914212928,-104.9861136,39.7384486,-104.9861338,39.7399945
-17259,10081,9468,0.0143846440391869,0.0143846440391869,-104.9861338,39.7399945,-104.9861285,39.7401238
-17260,9468,651,0.173171640777506,0.173171640777506,-104.9861285,39.7401238,-104.9861093,39.7416811
-17261,651,9463,0.177611656329381,0.177611656329381,-104.9861093,39.7416811,-104.9861093,39.7432784
-17262,9463,4619,0.178590206270819,0.178590206270819,-104.9861093,39.7432784,-104.9861106,39.7448845
-17263,4619,6483,0.145677633501431,0.145677633501431,-104.9861106,39.7448845,-104.9861174,39.7461946
-17264,6483,5356,0.195804224423801,0.195804224423801,-104.9861174,39.7461946,-104.9861098,39.7479555
-17272,3269,7248,0.202454633754466,0.202454633754466,-104.962291,39.7038591,-104.9623016,39.7056798
-17273,7248,1925,0.201278474909205,0.201278474909205,-104.9623016,39.7056798,-104.9622858,39.7074899
-17274,1925,6124,0.199550873736161,0.199550873736161,-104.9622858,39.7074899,-104.9622908,39.7092845
-17275,6124,3214,0.201694321030812,0.201694321030812,-104.9622908,39.7092845,-104.9622425,39.711098
-17277,8746,4263,0.201096167532594,0.201096167532594,-104.9599905,39.6947768,-104.9599877,39.6965853
-17278,4263,3522,0.200484985070532,0.200484985070532,-104.9599877,39.6965853,-104.9599931,39.6983883
-17279,3522,86,0.203786942061633,0.203786942061633,-104.9599931,39.6983883,-104.9599931,39.700221
-17280,86,7311,0.202274691239897,0.202274691239897,-104.9599931,39.700221,-104.9599932,39.7020401
-17313,8120,4330,0.101819432050732,0.101819432050732,-104.9781435,39.7507448,-104.9769525,39.7507423
-17314,4330,9933,0.0499862309964707,0.0499862309964707,-104.9769525,39.7507423,-104.9763678,39.7507423
-17315,9933,5036,0.0532026214375408,0.0532026214375408,-104.9763678,39.7507423,-104.9757455,39.7507464
-17316,5036,9934,0.0508858224299175,0.0508858224299175,-104.9757455,39.7507464,-104.9751503,39.7507424
-17317,9934,7989,0.0496485523816978,0.0496485523816978,-104.9751503,39.7507424,-104.9745699,39.7507269
-17318,7989,10087,0.0512786229284607,0.0512786229284607,-104.9745699,39.7507269,-104.9739701,39.7507304
-17319,10087,2893,0.052637962933787,0.052637962933787,-104.9739701,39.7507304,-104.9733544,39.750734
-17320,2893,8384,0.104983198266762,0.104983198266762,-104.9733544,39.750734,-104.9721264,39.7507381
-17321,8384,8544,0.106333933974543,0.106333933974543,-104.9721264,39.7507381,-104.9708826,39.750734
-17322,8544,4732,0.104863197448763,0.104863197448763,-104.9708826,39.750734,-104.9696561,39.7507215
-17323,4732,6799,0.109607467159477,0.109607467159477,-104.9696561,39.7507215,-104.968374,39.7507196
-17325,7351,5397,0.105666168592591,0.105666168592591,-104.967169,39.7507119,-104.965933,39.7507119
-17326,5397,10067,0.0531956914071383,0.0531956914071383,-104.965933,39.7507119,-104.9653109,39.7507017
-17327,10067,8558,0.0516135381916136,0.0516135381916136,-104.9653109,39.7507017,-104.9647073,39.7506919
-17328,8558,3899,0.109335032698536,0.109335032698536,-104.9647073,39.7506919,-104.9634285,39.7507051
-17329,3899,1035,0.101631825737619,0.101631825737619,-104.9634285,39.7507051,-104.9622398,39.7507175
-17330,1035,10070,0.0547697896222192,0.0547697896222192,-104.9622398,39.7507175,-104.9615992,39.7507111
-17331,10070,6274,0.051631982755097,0.051631982755097,-104.9615992,39.7507111,-104.9609953,39.7507051
-17332,6274,10071,0.0521047224845183,0.0521047224845183,-104.9609953,39.7507051,-104.9603859,39.7507127
-17333,10071,10088,0.0548081026494783,0.0548081026494783,-104.9603859,39.7507127,-104.9597448,39.750714
-17334,10088,581,0.115692672611639,0.115692672611639,-104.9597448,39.750714,-104.9583963,39.7508014
-17335,581,3544,1.0812915383048,1.0812915383048,-104.9583963,39.7508014,-104.9457557,39.7511373
-17336,3544,10089,0.426746641833072,0.426746641833072,-104.9457557,39.7511373,-104.9407655,39.7510409
-17337,10089,8702,0.015131733429425,0.015131733429425,-104.9407655,39.7510409,-104.9405885,39.7510409
-17338,8702,8151,0.097451189179214,0.097451189179214,-104.9405885,39.7510409,-104.9394486,39.7510451
-17340,1827,3084,0.201158270757163,0.201158270757163,-104.9791916,39.7147225,-104.9792501,39.712914
-17341,3084,3196,0.201063388532037,0.201063388532037,-104.9792501,39.712914,-104.9792438,39.7111058
-17342,3196,6111,0.203191571447184,0.203191571447184,-104.9792438,39.7111058,-104.979227,39.7092785
-17343,6111,1904,0.198857964292004,0.198857964292004,-104.979227,39.7092785,-104.9792593,39.7074903
-17344,1904,7240,0.195269710490606,0.195269710490606,-104.9792593,39.7074903,-104.9792633,39.7057342
-17345,7240,3253,0.196518038239943,0.196518038239943,-104.9792633,39.7057342,-104.9792501,39.7039669
-17347,10090,3086,0.200629327787617,0.200629327787617,-104.9780898,39.7147143,-104.978094,39.71291
-17348,3086,3198,0.202620201680719,0.202620201680719,-104.978094,39.71291,-104.9780683,39.7110879
-17349,3198,6113,0.202237159025195,0.202237159025195,-104.9780683,39.7110879,-104.9780999,39.7092693
-17350,6113,1907,0.200888583811516,0.200888583811516,-104.9780999,39.7092693,-104.9780854,39.7074627
-17351,1907,7242,0.194884252844044,0.194884252844044,-104.9780854,39.7074627,-104.978057,39.7057102
-17352,7242,9217,0.00483789456398776,0.00483789456398776,-104.978057,39.7057102,-104.9780581,39.7056667
-17353,9217,3256,0.188566052149982,0.188566052149982,-104.9780581,39.7056667,-104.9781006,39.7039712
-17354,3256,9215,0.0119202066492219,0.0119202066492219,-104.9781006,39.7039712,-104.9781012,39.703864
-17355,9215,7298,0.204144558375252,0.204144558375252,-104.9781012,39.703864,-104.9781112,39.7020281
-17356,7298,41,0.19415380637197,0.19415380637197,-104.9781112,39.7020281,-104.9780913,39.7002821
-17357,41,3541,0.205611824864656,0.205611824864656,-104.9780913,39.7002821,-104.9780828,39.698433
-17358,3541,4237,0.201941106279095,0.201941106279095,-104.9780828,39.698433,-104.9780828,39.6966169
-17359,4237,1797,0.206450634390855,0.206450634390855,-104.9780828,39.6966169,-104.9781014,39.6947603
-17360,1797,6524,0.103413068253841,0.103413068253841,-104.9781014,39.6947603,-104.9782122,39.6938342
-17377,9185,10092,0.0314361336881962,0.0314361336881962,-104.9985457,39.7503278,-104.9989127,39.7503454
-17384,10093,10094,0.234828178944131,0.234828178944131,-105.0176374,39.7404051,-105.0150249,39.7397537
-17401,4251,8740,0.200540582414647,0.200540582414647,-104.968103,39.6965907,-104.9681084,39.6947872
-17403,10096,4253,0.402448073126268,0.402448073126268,-104.9669389,39.6929637,-104.9669334,39.696583
-17404,4253,71,0.405085488859101,0.405085488859101,-104.9669334,39.696583,-104.9669496,39.700226
-17409,7246,3265,0.200993245572831,0.200993245572831,-104.9645976,39.7056725,-104.9646191,39.703865
-17410,3265,7307,0.200743622516842,0.200743622516842,-104.9646191,39.703865,-104.9646054,39.7020597
-17411,7307,77,0.204688793990349,0.204688793990349,-104.9646054,39.7020597,-104.9645973,39.7002189
-17413,10097,10082,0.0500367848211035,0.0500367848211035,-104.9829203,39.6885931,-104.9834085,39.6888408
-17415,10098,10099,0.0500389645311151,0.0500389645311151,-104.9838645,39.6893197,-104.9835426,39.688944
-17416,10099,10082,0.0162280043989145,0.0162280043989145,-104.9835426,39.688944,-104.9834085,39.6888408
-17418,10100,10101,0.0207018118679025,0.0207018118679025,-104.982915,39.6890761,-104.9831564,39.6890637
-17430,10092,10048,0.0309885486655971,0.0309885486655971,-104.9989127,39.7503454,-104.9991687,39.7505427
-17431,10048,8614,0.0518778938210734,0.0518778938210734,-104.9991687,39.7505427,-104.9995987,39.7508719
-17432,8614,8472,0.0531907688732488,0.0531907688732488,-104.9995987,39.7508719,-105.0000361,39.7512121
-17433,8472,1066,0.0523689032311119,0.0523689032311119,-105.0000361,39.7512121,-105.000472,39.751543
-17434,1066,1606,0.051557001219416,0.051557001219416,-105.000472,39.751543,-105.000898,39.7518712
-17435,1606,8366,0.139200065042292,0.139200065042292,-105.000898,39.7518712,-105.0020448,39.7527599
-17437,6713,10092,0.0743345743256074,0.0743345743256074,-104.9982781,39.7498884,-104.9989127,39.7503454
-17441,3193,3081,0.201349842824614,0.201349842824614,-104.9827804,39.7111342,-104.9827112,39.7129442
-17442,3081,10108,0.178416289777232,0.178416289777232,-104.9827112,39.7129442,-104.9827539,39.7145484
-17444,3193,6109,0.202397968765167,0.202397968765167,-104.9827804,39.7111342,-104.9827877,39.709314
-17445,6109,1899,0.201875824929032,0.201875824929032,-104.9827877,39.709314,-104.9827966,39.7074985
-17446,1899,7237,0.199007784951822,0.199007784951822,-104.9827966,39.7074985,-104.9828076,39.7057088
-17447,7237,3247,0.203972993087409,0.203972993087409,-104.9828076,39.7057088,-104.9827863,39.7038745
-17449,10109,7288,0.156689817874906,0.156689817874906,-104.9827914,39.7033844,-104.9828061,39.7019753
-17450,7288,33,0.190916174685026,0.190916174685026,-104.9828061,39.7019753,-104.982789,39.7002584
-17451,33,3532,0.205910894729705,0.205910894729705,-104.982789,39.7002584,-104.9827863,39.6984066
-17452,3532,6522,0.0640042155752525,0.0640042155752525,-104.9827863,39.6984066,-104.982762,39.6978313
-17454,3078,3192,0.201894846275699,0.201894846275699,-104.9839851,39.7129498,-104.9840078,39.7111342
-17455,3192,6108,0.201673919779454,0.201673919779454,-104.9840078,39.7111342,-104.9840322,39.7093206
-17456,6108,1898,0.20260827746412,0.20260827746412,-104.9840322,39.7093206,-104.9840325,39.7074985
-17457,1898,7236,0.20276033286578,0.20276033286578,-104.9840325,39.7074985,-104.9839553,39.705676
-17458,7236,3246,0.202520180127379,0.202520180127379,-104.9839553,39.705676,-104.9839622,39.7038547
-17459,3246,10110,0.0550544054800148,0.0550544054800148,-104.9839622,39.7038547,-104.9839674,39.7033596
-17460,10110,7286,0.154666066923182,0.154666066923182,-104.9839674,39.7033596,-104.983982,39.7019687
-17461,7286,29,0.190176683040096,0.190176683040096,-104.983982,39.7019687,-104.983982,39.7002584
-17463,1900,7238,0.196467409698081,0.196467409698081,-104.981627,39.707488,-104.981606,39.7057212
-17464,7238,3249,0.197271278467775,0.197271278467775,-104.981606,39.7057212,-104.9816104,39.7039471
-17465,3249,7293,0.215893772854934,0.215893772854934,-104.9816104,39.7039471,-104.9815761,39.7020057
-17466,7293,35,0.191661158901488,0.191661158901488,-104.9815761,39.7020057,-104.9815932,39.7002821
-17467,35,3534,0.208592623812739,0.208592623812739,-104.9815932,39.7002821,-104.9815417,39.6984066
-17468,3534,6523,0.163291338158479,0.163291338158479,-104.9815417,39.6984066,-104.9817185,39.6969444
-17470,10108,5278,0.0774622106782589,0.0774622106782589,-104.9827539,39.7145484,-104.9828424,39.7138551
-17471,5278,3080,0.101220750760019,0.101220750760019,-104.9828424,39.7138551,-104.9828429,39.7129448
-17472,3080,3193,0.201400503113628,0.201400503113628,-104.9828429,39.7129448,-104.9827804,39.7111342
-17474,5940,471,0.312751802930415,0.312751802930415,-105.0154315,39.7536072,-105.017379,39.7512262
-18580,7765,5716,0.0511772806374418,0.0511772806374418,-105.0351796,39.7802141,-105.0357784,39.7802062
-17491,10112,10093,0.359402757134602,0.359402757134602,-105.0218404,39.7404488,-105.0176374,39.7404051
-17492,10093,10113,0.194903624807864,0.194903624807864,-105.0176374,39.7404051,-105.0153589,39.7403535
-17493,10113,2201,0.0582804268216835,0.0582804268216835,-105.0153589,39.7403535,-105.0146775,39.7403403
-17494,2201,10114,0.186967502007765,0.186967502007765,-105.0146775,39.7403403,-105.0124916,39.7402957
-17495,10114,8390,0.0733141120559894,0.0733141120559894,-105.0124916,39.7402957,-105.0116345,39.7402771
-17496,8390,10115,0.462273198293161,0.462273198293161,-105.0116345,39.7402771,-105.0062313,39.7401322
-17498,9631,400,0.267469433354519,0.267469433354519,-105.0062339,39.740258,-105.00936,39.7403456
-17531,10127,4931,0.0143150280274793,0.0143150280274793,-104.9989934,39.7413574,-104.9988399,39.7414088
-17499,400,10116,0.288854082427149,0.288854082427149,-105.00936,39.7403456,-105.0127369,39.7404199
-17500,10116,10117,0.226779392941661,0.226779392941661,-105.0127369,39.7404199,-105.0153883,39.7404728
-17539,8982,8937,0.19614593492264,0.19614593492264,-104.9891588,39.7833529,-104.9891177,39.7851166
-17501,10117,10118,0.252256323985904,0.252256323985904,-105.0153883,39.7404728,-105.0183374,39.7405364
-17502,10118,8413,0.301706026949727,0.301706026949727,-105.0183374,39.7405364,-105.0218658,39.7405653
-17504,10094,9835,0.207906613588927,0.207906613588927,-105.0150249,39.7397537,-105.0143087,39.7379669
-17542,10131,10132,0.234004969584105,0.234004969584105,-104.9893756,39.7833551,-104.9893554,39.7854595
-17547,8426,8983,0.15801309875704,0.15801309875704,-104.9895595,39.7833438,-104.9895187,39.7819231
-17550,10130,10134,0.614829488291655,0.614829488291655,-104.9891097,39.7854604,-104.9884513,39.7909665
-17551,7135,4849,0.106906878995063,0.106906878995063,-104.9754213,39.7729633,-104.9763149,39.7736361
-17552,4849,915,0.103932392061615,0.103932392061615,-104.9763149,39.7736361,-104.9771733,39.7742982
-17553,915,2299,0.103080430089244,0.103080430089244,-104.9771733,39.7742982,-104.9780262,39.7749537
-17554,2299,10137,0.014910815675823,0.014910815675823,-104.9780262,39.7749537,-104.9781496,39.7750485
-17556,10137,9054,0.0810396295718394,0.0810396295718394,-104.9781496,39.7750485,-104.9786512,39.775667
-17558,10138,6943,0.064892686762443,0.064892686762443,-104.9667127,39.7813542,-104.9666886,39.7819375
-17559,6943,8140,0.201702874937987,0.201702874937987,-104.9666886,39.7819375,-104.9666698,39.7837514
-17560,8140,10139,0.469612869716675,0.469612869716675,-104.9666698,39.7837514,-104.9644686,39.7876212
-17562,7137,211,0.0939410437080962,0.0939410437080962,-104.9680592,39.7786642,-104.9672465,39.7792331
-17563,211,480,0.0535285680999835,0.0535285680999835,-104.9672465,39.7792331,-104.9669782,39.7796681
-17598,6899,5259,0.128421696790864,0.128421696790864,-104.9597428,39.769281,-104.9597331,39.7681261
-17566,8539,10140,0.135369629803794,0.135369629803794,-104.9669081,39.7808609,-104.967225,39.7796681
-17568,10141,10142,0.0931846548427409,0.0931846548427409,-104.9684346,39.7796533,-104.967563,39.7791497
-17575,10147,10148,0.0907607828573939,0.0907607828573939,-104.9445492,39.7800907,-104.9456113,39.7800893
-17576,10148,9823,0.350917184183612,0.350917184183612,-104.9456113,39.7800893,-104.9497178,39.7800947
-17577,9823,9805,0.0148959688810153,0.0148959688810153,-104.9497178,39.7800947,-104.9498921,39.7800929
-17578,9805,10149,0.0247571116201832,0.0247571116201832,-104.9498921,39.7800929,-104.9501818,39.780095
-17579,10149,8243,0.229215025506836,0.229215025506836,-104.9501818,39.780095,-104.952864,39.7801147
-17580,8243,9502,0.0511227471188157,0.0511227471188157,-104.952864,39.7801147,-104.9534622,39.7801206
-17581,9502,7326,0.0563854594047154,0.0563854594047154,-104.9534622,39.7801206,-104.954122,39.7801258
-17582,7326,5762,0.0999481200631645,0.0999481200631645,-104.954122,39.7801258,-104.9552914,39.7801086
-17583,5762,7873,0.0518041802099649,0.0518041802099649,-104.9552914,39.7801086,-104.9558976,39.7801127
-17584,7873,10150,0.102000136506063,0.102000136506063,-104.9558976,39.7801127,-104.9570912,39.7801189
-17585,10150,5014,0.098101103191891,0.098101103191891,-104.9570912,39.7801189,-104.9582392,39.7801189
-17586,5014,5058,0.089850875454823,0.089850875454823,-104.9582392,39.7801189,-104.9592906,39.7801271
-18718,7866,4048,0.178217561946718,0.178217561946718,-105.0343209,39.7197519,-105.0343046,39.7181492
-17587,5058,10151,0.211959888507267,0.211959888507267,-104.9592906,39.7801271,-104.961771,39.7801275
-17589,215,9282,0.125167866609679,0.125167866609679,-104.9654677,39.7803353,-104.9667713,39.7808486
-17591,213,9816,0.299047510838406,0.299047510838406,-104.9655888,39.7798206,-104.962098,39.7800102
-17593,9229,9826,0.176982927136907,0.176982927136907,-104.9604654,39.7803167,-104.9625227,39.7801333
-17595,6940,10152,0.0583015149781026,0.0583015149781026,-104.9587435,39.7819608,-104.9592664,39.7822976
-18120,6030,10257,0.0455676937571294,0.0455676937571294,-105.0106854,39.7854577,-105.010685,39.7858675
-17597,5060,6899,0.402535335538281,0.402535335538281,-104.9594167,39.7728924,-104.9597428,39.769281
-17599,5259,2791,0.130368767280199,0.130368767280199,-104.9597331,39.7681261,-104.9597448,39.7669537
-17600,2791,4469,0.135446736738612,0.135446736738612,-104.9597448,39.7669537,-104.9597421,39.7657356
-17601,4469,884,0.138505584507757,0.138505584507757,-104.9597421,39.7657356,-104.9597488,39.76449
-17602,884,1164,0.139078051750381,0.139078051750381,-104.9597488,39.76449,-104.959733,39.7632393
-17603,1164,9871,0.139057579408235,0.139057579408235,-104.959733,39.7632393,-104.9597508,39.7619888
-17604,9871,8075,0.138249096495162,0.138249096495162,-104.9597508,39.7619888,-104.9597467,39.7607455
-17605,8075,10153,0.00462704346608534,0.00462704346608534,-104.9597467,39.7607455,-104.959748,39.7607039
-17606,10153,3043,0.14110788802663,0.14110788802663,-104.959748,39.7607039,-104.9597701,39.759435
-17607,3043,6341,0.135895639019006,0.135895639019006,-104.9597701,39.759435,-104.9597275,39.7582133
-17608,6341,4343,0.137400774019599,0.137400774019599,-104.9597275,39.7582133,-104.9597614,39.7569779
-17609,4343,5639,0.138956387861239,0.138956387861239,-104.9597614,39.7569779,-104.9597878,39.7557284
-17610,5639,3570,0.141821620771527,0.141821620771527,-104.9597878,39.7557284,-104.9597446,39.7544534
-17611,3570,830,0.137661147763222,0.137661147763222,-104.9597446,39.7544534,-104.9597529,39.7532154
-17612,830,7843,0.140550687821679,0.140550687821679,-104.9597529,39.7532154,-104.9597495,39.7519514
-17613,7843,10088,0.137593188904098,0.137593188904098,-104.9597495,39.7519514,-104.9597448,39.750714
-17614,10088,9941,0.137660243266343,0.137660243266343,-104.9597448,39.750714,-104.9597507,39.749476
-17615,9941,8135,0.139584464123887,0.139584464123887,-104.9597507,39.749476,-104.9597582,39.7482207
-17616,8135,3690,0.141707714550209,0.141707714550209,-104.9597582,39.7482207,-104.959805,39.7469468
-17617,3690,4596,0.241404416022683,0.241404416022683,-104.959805,39.7469468,-104.9598011,39.7447758
-17619,5016,3319,0.0948083090873271,0.0948083090873271,-104.9581399,39.7819575,-104.9570312,39.7819252
-17620,3319,8996,0.0798486506362173,0.0798486506362173,-104.9570312,39.7819252,-104.9560968,39.781931
-17621,8996,7874,0.0190759275307072,0.0190759275307072,-104.9560968,39.781931,-104.9558736,39.7819341
-17622,7874,5755,0.0623471034770475,0.0623471034770475,-104.9558736,39.7819341,-104.9551441,39.7819442
-17623,5755,5758,0.0361266791563275,0.0361266791563275,-104.9551441,39.7819442,-104.9547235,39.7819113
-17624,5758,7327,0.0520708883616353,0.0520708883616353,-104.9547235,39.7819113,-104.9541142,39.7819179
-17626,5016,10154,0.164101634929309,0.164101634929309,-104.9581399,39.7819575,-104.9581426,39.7834333
-17627,10155,2882,0.710681950052773,0.710681950052773,-104.9592396,39.7916405,-104.9592584,39.7852492
-17629,8136,6947,0.130119100803365,0.130119100803365,-104.9592611,39.7837879,-104.9592799,39.7826178
-17630,6947,10156,0.0163542378359644,0.0163542378359644,-104.9592799,39.7826178,-104.9592737,39.7824708
-17631,10156,10157,0.00955659663824098,0.00955659663824098,-104.9592737,39.7824708,-104.9592701,39.7823849
-17632,10157,10158,0.00677541465471327,0.00677541465471327,-104.9592701,39.7823849,-104.9592675,39.782324
-17633,10158,10152,0.00293705056146173,0.00293705056146173,-104.9592675,39.782324,-104.9592664,39.7822976
-17634,10152,6939,0.0371287028604903,0.0371287028604903,-104.9592664,39.7822976,-104.9592691,39.7819637
-17636,3318,10150,0.0438638328395073,0.0438638328395073,-104.957059,39.7805126,-104.9570912,39.7801189
-17714,9945,8394,0.147641485758692,0.147641485758692,-104.9846155,39.7523823,-104.9833985,39.7533244
-17659,10160,586,0.405583280940818,0.405583280940818,-104.986015,39.7800954,-104.9889771,39.7829454
-17672,10163,8930,0.930392444069162,0.930392444069162,-104.9855751,39.7798803,-104.9961216,39.7819588
-17675,9053,10164,0.0371557833436508,0.0371557833436508,-104.985575,39.7800251,-104.9860095,39.7800376
-17693,2913,2780,0.0748123840669465,0.0748123840669465,-104.9733488,39.7664884,-104.9727319,39.7669657
-17694,2780,7147,0.116677483921202,0.116677483921202,-104.9727319,39.7669657,-104.9721123,39.7679007
-17696,9056,10047,0.141134759881648,0.141134759881648,-104.9734488,39.7704351,-104.9733504,39.7691681
-17698,7147,5254,0.0284105210258417,0.0284105210258417,-104.9721123,39.7679007,-104.9721136,39.7681562
-17699,5254,10166,0.132906284217118,0.132906284217118,-104.9721136,39.7681562,-104.9720707,39.769351
-17701,6403,10167,0.108541157226703,0.108541157226703,-104.9723255,39.770589,-104.9732322,39.7712725
-17703,6403,6401,0.049228330409525,0.049228330409525,-104.9723255,39.770589,-104.9719701,39.7702406
-17705,10168,10169,0.0501555453420122,0.0501555453420122,-104.9728475,39.7695543,-104.9734325,39.76959
-17707,10047,10169,0.0474349977604191,0.0474349977604191,-104.9733504,39.7691681,-104.9734325,39.76959
-17708,10169,9056,0.0939811582148226,0.0939811582148226,-104.9734325,39.76959,-104.9734488,39.7704351
-17710,9947,3675,0.0669754214474556,0.0669754214474556,-104.9790113,39.7480975,-104.9787278,39.747536
-17712,9204,9945,0.144775125391256,0.144775125391256,-104.9858044,39.7514551,-104.9846155,39.7523823
-17715,8394,2691,0.147869553829969,0.147869553829969,-104.9833985,39.7533244,-104.9821794,39.7542678
-17716,2691,8040,0.145836065451416,0.145836065451416,-104.9821794,39.7542678,-104.9809778,39.7551988
-17717,8040,6567,0.144877875233717,0.144877875233717,-104.9809778,39.7551988,-104.9797794,39.7561201
-17718,6567,4448,0.14778294563884,0.14778294563884,-104.9797794,39.7561201,-104.9785732,39.7570722
-17719,4448,8414,0.0749502518363333,0.0749502518363333,-104.9785732,39.7570722,-104.9779515,39.7575475
-17720,8414,5496,0.069451420913351,0.069451420913351,-104.9779515,39.7575475,-104.9773755,39.757988
-17721,5496,7070,0.148876703091943,0.148876703091943,-104.9773755,39.757988,-104.9761539,39.7589423
-17722,7070,2040,0.14567151330703,0.14567151330703,-104.9761539,39.7589423,-104.9749522,39.7598712
-17723,2040,8073,0.130264739930752,0.130264739930752,-104.9749522,39.7598712,-104.9738736,39.7606988
-17725,8076,3328,0.0639927694114461,0.0639927694114461,-104.9580824,39.7607455,-104.9573341,39.760728
-17728,7879,7332,0.105697567981392,0.105697567981392,-104.9561163,39.7607348,-104.9548798,39.7607265
-17730,2080,2677,0.104069678874741,0.104069678874741,-104.9536567,39.7607265,-104.9524392,39.7607246
-17731,2677,4126,0.107112553379611,0.107112553379611,-104.9524392,39.7607246,-104.9511861,39.7607235
-17732,4126,6682,0.108353172096875,0.108353172096875,-104.9511861,39.7607235,-104.9499185,39.7607282
-17734,7925,5320,0.0826824039230849,0.0826824039230849,-104.9739262,39.7620073,-104.9746129,39.7614836
-17735,5320,2041,0.146468953410165,0.146468953410165,-104.9746129,39.7614836,-104.9758158,39.7605455
-17736,2041,7072,0.146479190259677,0.146479190259677,-104.9758158,39.7605455,-104.9770228,39.7596104
-17737,7072,5498,0.148482454254276,0.148482454254276,-104.9770228,39.7596104,-104.9782485,39.7586642
-17738,5498,4450,0.145207190897223,0.145207190897223,-104.9782485,39.7586642,-104.9794422,39.7577351
-17739,4450,6569,0.147094399400618,0.147094399400618,-104.9794422,39.7577351,-104.9806536,39.7567956
-17740,6569,8042,0.145385409804858,0.145385409804858,-104.9806536,39.7567956,-104.9818522,39.755868
-17741,8042,2693,0.146247210391541,0.146247210391541,-104.9818522,39.755868,-104.9830605,39.7549369
-17742,2693,8396,0.145676314519276,0.145676314519276,-104.9830605,39.7549369,-104.9842635,39.754009
-17743,8396,9946,0.148129197746433,0.148129197746433,-104.9842635,39.754009,-104.9854693,39.7530523
-17744,9946,9324,0.145860656071838,0.145860656071838,-104.9854693,39.7530523,-104.9866859,39.7521326
-17745,9324,10171,0.0856023563285992,0.0856023563285992,-104.9866859,39.7521326,-104.9873856,39.7515819
-17746,10171,7893,0.060719319188507,0.060719319188507,-104.9873856,39.7515819,-104.9878898,39.7511973
-17747,7893,10172,0.145992330998255,0.145992330998255,-104.9878898,39.7511973,-104.9890951,39.7502672
-17749,8285,5779,0.146744468691812,0.146744468691812,-104.9903025,39.7493228,-104.9915202,39.7483927
-17750,5779,8575,0.145685998707777,0.145685998707777,-104.9915202,39.7483927,-104.9927205,39.7474627
-17752,6706,10173,0.0983542102154105,0.0983542102154105,-104.99393,39.7465367,-104.9947299,39.745901
-17754,8485,10174,0.145917669946454,0.145917669946454,-104.995128,39.7455847,-104.9963422,39.7446625
-17755,10174,4934,0.364858401137942,0.364858401137942,-104.9963422,39.7446625,-104.9993415,39.7423284
-17757,8073,5319,0.0151134525874084,0.0151134525874084,-104.9738736,39.7606988,-104.9737854,39.7608166
-17758,5319,2906,0.0542680076543073,0.0542680076543073,-104.9737854,39.7608166,-104.9733507,39.7611723
-17760,9487,1173,0.143948575233632,0.143948575233632,-104.9487218,39.7619316,-104.9487381,39.7632261
-17761,1173,893,0.138648954033686,0.138648954033686,-104.9487381,39.7632261,-104.9487381,39.764473
-17762,893,4476,0.138420042799995,0.138420042799995,-104.9487381,39.764473,-104.9487249,39.7657178
-17763,4476,2799,0.139158608638433,0.139158608638433,-104.9487249,39.7657178,-104.9487061,39.7669692
-17764,2799,5267,0.125667753140422,0.125667753140422,-104.9487061,39.7669692,-104.9487209,39.7680993
-17765,5267,6904,0.122725840536987,0.122725840536987,-104.9487209,39.7680993,-104.9487209,39.769203
-17766,6904,7758,0.206944002479267,0.206944002479267,-104.9487209,39.769203,-104.9487638,39.7710638
-17767,7758,6358,0.203735904589123,0.203735904589123,-104.9487638,39.7710638,-104.9486541,39.7728941
-17768,6358,2391,0.110758482838084,0.110758482838084,-104.9486541,39.7728941,-104.9486382,39.7738901
-17769,2391,7822,0.137036631860385,0.137036631860385,-104.9486382,39.7738901,-104.9486378,39.7751225
-17771,9877,903,0.274330614761652,0.274330614761652,-104.9392992,39.7619966,-104.9393102,39.7644637
-17772,903,9481,0.129817379023696,0.129817379023696,-104.9393102,39.7644637,-104.9392929,39.7656311
-17775,5984,2102,0.100487934544075,0.100487934544075,-104.9257912,39.7801245,-104.9269671,39.7801311
-17776,2102,6508,0.243143603771944,0.243143603771944,-104.9269671,39.7801311,-104.9298124,39.7801232
-17778,6993,399,0.279873647693424,0.279873647693424,-104.9316377,39.7804571,-104.9349127,39.7804818
-17779,399,10175,0.059173942672277,0.059173942672277,-104.9349127,39.7804818,-104.9356047,39.7805014
-17780,10175,6196,0.0719242777998184,0.0719242777998184,-104.9356047,39.7805014,-104.9364456,39.7804736
-17782,6196,10175,0.0719242777998184,0.0719242777998184,-104.9364456,39.7804736,-104.9356047,39.7805014
-17784,10175,10177,0.187235722056553,0.187235722056553,-104.9356047,39.7805014,-104.9359775,39.7821607
-17789,998,8512,0.0641582208600105,0.0641582208600105,-104.9876372,39.7594706,-104.9875407,39.7588984
-17790,8512,3305,0.0698159988608895,0.0698159988608895,-104.9875407,39.7588984,-104.9874361,39.7582757
-17802,9953,10171,0.0758245915635617,0.0758245915635617,-104.9873896,39.7522638,-104.9873856,39.7515819
-17803,10171,8417,0.0691188092256886,0.0691188092256886,-104.9873856,39.7515819,-104.9873865,39.7509603
-17804,8417,7892,0.0154287387029138,0.0154287387029138,-104.9873865,39.7509603,-104.987378,39.7508217
-17805,7892,9203,0.0639309073349984,0.0639309073349984,-104.987378,39.7508217,-104.9873873,39.7502468
-17844,5741,5515,0.1393794725611,0.1393794725611,-104.9994129,39.7730041,-104.9994301,39.7742575
-17807,998,2698,0.471311768879255,0.471311768879255,-104.9876372,39.7594706,-104.9872963,39.7637011
-17809,2563,997,0.102700798846865,0.102700798846865,-104.9865077,39.7643898,-104.9873902,39.763763
-17811,9490,10181,0.787839518624737,0.787839518624737,-104.9975705,39.7571365,-105.0023462,39.7631964
-17813,10182,10183,0.017972037737444,0.017972037737444,-104.9959538,39.755728,-104.9958016,39.7558395
-17814,8277,10182,0.0269375538426571,0.0269375538426571,-104.9961783,39.755558,-104.9959538,39.755728
-17824,10189,9815,0.381548994115635,0.381548994115635,-104.9772538,39.7792023,-104.9728236,39.7796294
-17826,10190,2445,0.108497544218855,0.108497544218855,-104.9982065,39.7695207,-104.9982447,39.770496
-17827,2445,3235,0.140113229632804,0.140113229632804,-104.9982447,39.770496,-104.9982618,39.771756
-17828,3235,5740,0.13721905173768,0.13721905173768,-104.9982618,39.771756,-104.9982189,39.7729896
-17829,5740,5514,0.142685575827079,0.142685575827079,-104.9982189,39.7729896,-104.998222,39.7742728
-17830,5514,6451,0.135469883258712,0.135469883258712,-104.998222,39.7742728,-104.9982284,39.7754911
-17831,6451,6918,0.118104639956123,0.118104639956123,-104.9982284,39.7754911,-104.9981886,39.7765528
-17832,6918,8114,0.200145379388081,0.200145379388081,-104.9981886,39.7765528,-104.9982189,39.7783526
-17841,10191,2446,0.12170288352426,0.12170288352426,-104.9994069,39.7694121,-104.9994058,39.7705066
-17842,2446,3236,0.138990302772576,0.138990302772576,-104.9994058,39.7705066,-104.9994549,39.771756
-17843,3236,5741,0.138828799197264,0.138828799197264,-104.9994549,39.771756,-104.9994129,39.7730041
-17845,5515,6452,0.137212079229824,0.137212079229824,-104.9994301,39.7742575,-104.9993731,39.7754907
-17846,6452,6919,0.118102418388258,0.118102418388258,-104.9993731,39.7754907,-104.9993645,39.7765528
-17847,6919,8115,0.204539971673672,0.204539971673672,-104.9993645,39.7765528,-104.9993433,39.7783922
-17848,8115,2817,0.195950897476267,0.195950897476267,-104.9993433,39.7783922,-104.9993302,39.7801544
-17850,1418,10192,0.0403415193863986,0.0403415193863986,-104.9993559,39.7819419,-104.9993559,39.7823047
-17854,10196,10197,0.298773764193864,0.298773764193864,-104.9706144,39.7902177,-104.9732548,39.7884561
-17858,10197,10201,0.0878537760845695,0.0878537760845695,-104.9732548,39.7884561,-104.9732119,39.7892455
-17859,10202,292,0.12590153135235,0.12590153135235,-105.0028295,39.7602418,-105.0040727,39.760849
-17860,292,10203,0.0920635687067585,0.0920635687067585,-105.0040727,39.760849,-105.0049871,39.7612865
-17862,8296,912,0.421752257927472,0.421752257927472,-104.9951571,39.7549879,-104.9985313,39.7577551
-17863,912,7280,0.346969669094077,0.346969669094077,-104.9985313,39.7577551,-105.0017017,39.7597036
-17865,7279,911,0.343598202777143,0.343598202777143,-105.0017875,39.7595933,-104.998644,39.7576675
-17866,911,8296,0.421457000722742,0.421457000722742,-104.998644,39.7576675,-104.9951571,39.7549879
-17899,10211,10209,0.112127267328736,0.112127267328736,-104.9981065,39.7669418,-104.9969347,39.7673952
-17868,10204,293,0.122668884457017,0.122668884457017,-105.0027544,39.7602964,-105.0037495,39.7610913
-17870,7280,10204,0.11154380602626,0.11154380602626,-105.0017017,39.7597036,-105.0027544,39.7602964
-17872,7280,10202,0.113468069847095,0.113468069847095,-105.0017017,39.7597036,-105.0028295,39.7602418
-17874,10203,305,0.0245172766294025,0.0245172766294025,-105.0049871,39.7612865,-105.0052248,39.7614099
-17876,10205,9191,0.0917966102805814,0.0917966102805814,-105.0050575,39.7612239,-105.0041591,39.7607716
-17877,9191,9065,0.0437309955207218,0.0437309955207218,-105.0041591,39.7607716,-105.0037267,39.7605614
-17879,305,7972,0.0096955565592884,0.0096955565592884,-105.0052248,39.7614099,-105.0052958,39.7614779
-17880,7972,289,0.0364664216753188,0.0364664216753188,-105.0052958,39.7614779,-105.0056941,39.7615954
-17882,291,10205,0.0247656280633611,0.0247656280633611,-105.0052999,39.7613459,-105.0050575,39.7612239
-17884,5356,3010,0.0411976507153233,0.0411976507153233,-104.9861098,39.7479555,-104.9864574,39.7482121
-17885,3010,9955,0.055133452370554,0.055133452370554,-104.9864574,39.7482121,-104.98691,39.7485653
-17887,4390,9202,0.103596100254428,0.103596100254428,-104.9873785,39.7489186,-104.9882201,39.7495889
-17888,9202,10172,0.106228487315193,0.106228487315193,-104.9882201,39.7495889,-104.9890951,39.7502672
-17889,10172,8635,0.104885206719794,0.104885206719794,-104.9890951,39.7502672,-104.9899626,39.7509342
-17890,8635,10207,0.0526738998782486,0.0526738998782486,-104.9899626,39.7509342,-104.9904003,39.7512676
-17891,10207,8290,0.0540408904782361,0.0540408904782361,-104.9904003,39.7512676,-104.9908493,39.7516097
-17893,10181,10208,0.34674805442663,0.34674805442663,-105.0023462,39.7631964,-105.0001687,39.7658275
-17895,9277,9062,0.54179107306149,0.54179107306149,-105.0019955,39.7638914,-105.0060948,39.7601751
-17897,10209,10210,0.15255018083046,0.15255018083046,-104.9969347,39.7673952,-104.9953391,39.76801
-17901,9277,10208,0.265946775924501,0.265946775924501,-105.0019955,39.7638914,-105.0001687,39.7658275
-17902,10208,10211,0.215451375996435,0.215451375996435,-105.0001687,39.7658275,-104.9981065,39.7669418
-17904,4431,5085,0.143171262303537,0.143171262303537,-104.9891666,39.7174681,-104.9908403,39.7174879
-17905,5085,2810,0.11012443165944,0.11012443165944,-104.9908403,39.7174879,-104.9921278,39.7174945
-17906,2810,4675,0.158582360684903,0.158582360684903,-104.9921278,39.7174945,-104.9939817,39.7175143
-17908,10212,9184,0.112885017008347,0.112885017008347,-105.0024206,39.7184748,-105.002927,39.7194123
-17909,9184,10213,0.167377068446941,0.167377068446941,-105.002927,39.7194123,-105.0029442,39.7209175
-18960,10410,7220,0.0501782415904674,0.0501782415904674,-104.9957751,39.7209292,-104.9963617,39.7209372
-17922,6563,8888,0.042430320182906,0.042430320182906,-104.9850303,39.7241197,-104.984536,39.724087
-18662,7647,10214,0.0701815380438801,0.0701815380438801,-105.0345838,39.7277084,-105.03453,39.7283382
-17924,6563,9296,0.044068382651895,0.044068382651895,-104.9850303,39.7241197,-104.9850256,39.724516
-17926,10215,7090,0.0147548324313622,0.0147548324313622,-104.9851861,39.7232104,-104.9850136,39.7232083
-17928,10216,4749,0.0152354550229313,0.0152354550229313,-104.9854611,39.7226759,-104.9854584,39.7225389
-17930,7570,10217,0.020843135953545,0.020843135953545,-104.986258,39.7248774,-104.9865017,39.7248795
-17931,10217,10218,0.00309719141124637,0.00309719141124637,-104.9865017,39.7248795,-104.9865379,39.7248787
-17932,10218,10219,0.0172058483004327,0.0172058483004327,-104.9865379,39.7248787,-104.986739,39.7248742
-17933,10219,10220,0.0101474090092483,0.0101474090092483,-104.986739,39.7248742,-104.9868576,39.7248715
-17934,10220,10221,0.0360135260366549,0.0360135260366549,-104.9868576,39.7248715,-104.9872787,39.7248713
-17972,4922,2816,0.0400924263132539,0.0400924263132539,-104.9919185,39.7316877,-104.9916596,39.7319883
-17974,2816,6585,0.00731734573972315,0.00731734573972315,-104.9916596,39.7319883,-104.9916584,39.7320541
-17975,6585,5367,0.200230086509337,0.200230086509337,-104.9916584,39.7320541,-104.9916497,39.7338548
-17976,5367,7125,0.155428268463703,0.155428268463703,-104.9916497,39.7338548,-104.9916497,39.7352526
-17977,7125,613,0.178580861083004,0.178580861083004,-104.9916497,39.7352526,-104.9916591,39.7368586
-17978,613,10025,0.175711834233665,0.175711834233665,-104.9916591,39.7368586,-104.9916503,39.7384388
-17979,10025,5802,0.173776139007193,0.173776139007193,-104.9916503,39.7384388,-104.9916445,39.7400016
-17981,10240,4687,0.0705066389488715,0.0705066389488715,-104.9949413,39.7336839,-104.9941176,39.7336555
-17983,4687,4687,0.000550727458732684,0.000550727458732684,-104.9941236,39.7336537,-104.9941176,39.7336555
-17984,4687,4687,0.000550727458732684,0.000550727458732684,-104.9941176,39.7336555,-104.9941236,39.7336537
-18009,8002,984,0.100041012213977,0.100041012213977,-104.9752512,39.7272769,-104.9740814,39.7272791
-17985,4687,10240,0.0700034048729296,0.0700034048729296,-104.9941236,39.7336537,-104.9949413,39.7336839
-18666,5656,5188,0.106406434125344,0.106406434125344,-105.0410801,39.7255057,-105.0410909,39.7245488
-17988,7225,10241,0.0510702903225008,0.0510702903225008,-104.9965056,39.7336859,-104.9971028,39.7336811
-17989,10241,10242,0.042886354540747,0.042886354540747,-104.9971028,39.7336811,-104.9976043,39.7336771
-17990,10242,10243,0.00251406456949564,0.00251406456949564,-104.9976043,39.7336771,-104.9976337,39.733677
-17991,10243,10244,0.0456685462506317,0.0456685462506317,-104.9976337,39.733677,-104.9981677,39.7336833
-17992,10244,6646,0.0418628731234282,0.0418628731234282,-104.9981677,39.7336833,-104.9986572,39.7336891
-17993,6646,10245,0.0664019508555837,0.0664019508555837,-104.9986572,39.7336891,-104.9994337,39.733694
-17994,10245,3947,0.060646848519195,0.060646848519195,-104.9994337,39.733694,-105.0001429,39.7336985
-17995,3947,5379,0.0623892176423501,0.0623892176423501,-105.0001429,39.7336985,-105.0008725,39.7336985
-17997,1213,10080,0.0402726084737909,0.0402726084737909,-104.986618,39.727272,-104.9861473,39.727283
-17998,10080,10246,0.108362052771117,0.108362052771117,-104.9861473,39.727283,-104.9848802,39.7272853
-17999,10246,10095,0.0546330327153493,0.0546330327153493,-104.9848802,39.7272853,-104.9842414,39.72728
-18000,10095,8786,0.0549646837479,0.0549646837479,-104.9842414,39.72728,-104.9835987,39.7272766
-18001,8786,8792,0.105830391023483,0.105830391023483,-104.9835987,39.7272766,-104.9823612,39.7272763
-18002,8792,3158,0.105240490373796,0.105240490373796,-104.9823612,39.7272763,-104.9811306,39.7272781
-18159,4090,6035,0.19402761072914,0.19402761072914,-105.0141021,39.7838734,-105.0141159,39.7856183
-18003,3158,4977,0.10185576028858,0.10185576028858,-104.9811306,39.7272781,-104.9799397,39.7272649
-18004,4977,10247,0.0996051433548501,0.0996051433548501,-104.9799397,39.7272649,-104.978775,39.7272619
-18005,10247,9657,0.103966153648075,0.103966153648075,-104.978775,39.7272619,-104.9775593,39.727263
-18006,9657,6607,0.0489689324196462,0.0489689324196462,-104.9775593,39.727263,-104.9769867,39.7272649
-18007,6607,5049,0.0497044916016373,0.0497044916016373,-104.9769867,39.7272649,-104.9764055,39.727267
-18008,5049,8002,0.0987213073079673,0.0987213073079673,-104.9764055,39.727267,-104.9752512,39.7272769
-18010,984,5105,0.0497125648622764,0.0497125648622764,-104.9740814,39.7272791,-104.9735001,39.7272799
-18011,5105,8832,0.0485496698653307,0.0485496698653307,-104.9735001,39.7272799,-104.9729324,39.7272785
-18012,8832,9412,0.0501680163419149,0.0501680163419149,-104.9729324,39.7272785,-104.9723458,39.7272828
-18013,9412,7150,0.0490112280018507,0.0490112280018507,-104.9723458,39.7272828,-104.9717727,39.727283
-18014,7150,2798,0.0490643527188194,0.0490643527188194,-104.9717727,39.727283,-104.971199,39.7272868
-18015,2798,5116,0.0499797709026575,0.0499797709026575,-104.971199,39.7272868,-104.9706146,39.727291
-18016,5116,9330,0.049524695482998,0.049524695482998,-104.9706146,39.727291,-104.9700355,39.7272893
-18017,9330,4715,0.0504823610322626,0.0504823610322626,-104.9700355,39.7272893,-104.9694452,39.727288
-18018,4715,8873,0.0985202776506121,0.0985202776506121,-104.9694452,39.727288,-104.9682932,39.7272934
-18019,8873,7354,0.0991107696717597,0.0991107696717597,-104.9682932,39.7272934,-104.9671343,39.7272994
-18020,7354,5413,0.108951695628557,0.108951695628557,-104.9671343,39.7272994,-104.9658604,39.7273116
-18022,8149,8697,0.098981334337126,0.098981334337126,-104.9394514,39.727421,-104.9406072,39.727374
-18023,8697,10248,0.0156545770448285,0.0156545770448285,-104.9406072,39.727374,-104.940779,39.7273254
-18025,10248,7104,0.0902072497093339,0.0902072497093339,-104.940779,39.7273254,-104.9418336,39.727309
-18026,7104,449,0.046531670732617,0.046531670732617,-104.9418336,39.727309,-104.9423777,39.727311
-18027,449,854,0.0445732430501775,0.0445732430501775,-104.9423777,39.727311,-104.9428989,39.7273129
-18028,854,10249,0.0446596776858281,0.0446596776858281,-104.9428989,39.7273129,-104.9434211,39.7273161
-18029,10249,9698,0.0482515561513205,0.0482515561513205,-104.9434211,39.7273161,-104.9439853,39.7273195
-18030,9698,10250,0.0474036186605965,0.0474036186605965,-104.9439853,39.7273195,-104.9445396,39.7273207
-18031,10250,6018,0.047797038051314,0.047797038051314,-104.9445396,39.7273207,-104.9450985,39.727322
-18032,6018,10251,0.0473952539943275,0.0473952539943275,-104.9450985,39.727322,-104.9456527,39.7273237
-18033,10251,3455,0.0464887102201997,0.0464887102201997,-104.9456527,39.7273237,-104.9461963,39.7273253
-18034,3455,7682,0.0950045363584629,0.0950045363584629,-104.9461963,39.7273253,-104.9473072,39.7273292
-19711,10628,10629,0.0313669947000456,0.0313669947000456,-105.0039101,39.7341658,-105.0042425,39.7342851
-18035,7682,8018,0.0938092255843609,0.0938092255843609,-104.9473072,39.7273292,-104.9484041,39.7273359
-18036,8018,6695,0.0944228486315978,0.0944228486315978,-104.9484041,39.7273359,-104.9495082,39.7273395
-18037,6695,4132,0.0905761672491303,0.0905761672491303,-104.9495082,39.7273395,-104.9505673,39.7273334
-18727,7644,9832,0.176300161007389,0.176300161007389,-105.0318854,39.7277175,-105.0318908,39.729303
-18729,6212,7649,0.275730709453964,0.275730709453964,-105.0367467,39.7257609,-105.0367537,39.7282406
-18038,4132,8863,0.0309494848264702,0.0309494848264702,-104.9505673,39.7273334,-104.9509292,39.7273333
-18039,8863,2633,0.0676202306028496,0.0676202306028496,-104.9509292,39.7273333,-104.9517199,39.7273329
-18040,2633,8861,0.0311034897002001,0.0311034897002001,-104.9517199,39.7273329,-104.9520836,39.7273323
-18041,8861,2052,0.0676910103216562,0.0676910103216562,-104.9520836,39.7273323,-104.9528751,39.7273272
-18042,2052,8871,0.0313177900642343,0.0313177900642343,-104.9528751,39.7273272,-104.9532413,39.7273255
-18043,8871,7982,0.067271802615166,0.067271802615166,-104.9532413,39.7273255,-104.9540279,39.7273206
-18044,7982,7981,0.0326778162339826,0.0326778162339826,-104.9540279,39.7273206,-104.95441,39.7273185
-18045,7981,7321,0.0976461329299173,0.0976461329299173,-104.95441,39.7273185,-104.9555518,39.7273179
-18046,7321,7887,0.0987923725207189,0.0987923725207189,-104.9555518,39.7273179,-104.956707,39.7273201
-18047,7887,3343,0.0990941084892765,0.0990941084892765,-104.956707,39.7273201,-104.9578657,39.7273135
-18048,3343,5022,0.0986991080291596,0.0986991080291596,-104.9578657,39.7273135,-104.9590198,39.7273177
-18049,5022,8729,0.0995709770506032,0.0995709770506032,-104.9590198,39.7273177,-104.9601841,39.7273144
-18050,8729,6262,0.0984844587143486,0.0984844587143486,-104.9601841,39.7273144,-104.9613357,39.7273124
-18051,6262,1012,0.100435040495632,0.100435040495632,-104.9613357,39.7273124,-104.9625101,39.7273084
-18052,1012,3920,0.0983845018704443,0.0983845018704443,-104.9625101,39.7273084,-104.9636605,39.7273016
-18053,3920,3146,0.0986126436689597,0.0986126436689597,-104.9636605,39.7273016,-104.9648136,39.7273031
-18054,3146,5413,0.0895267655685447,0.0895267655685447,-104.9648136,39.7273031,-104.9658604,39.7273116
-18056,7083,10246,0.183851267240735,0.183851267240735,-104.9848713,39.7256319,-104.9848802,39.7272853
-19713,10624,10625,0.048946191319968,0.048946191319968,-105.0029777,39.7364814,-105.0033774,39.7367965
-18057,10246,3811,0.198873820859187,0.198873820859187,-104.9848802,39.7272853,-104.9848706,39.7290738
-18058,3811,5919,0.153816946395634,0.153816946395634,-104.9848706,39.7290738,-104.9848641,39.7304571
-18059,5919,918,0.176756350909337,0.176756350909337,-104.9848641,39.7304571,-104.98484,39.7320466
-18060,918,2205,0.200653782293274,0.200653782293274,-104.98484,39.7320466,-104.9848518,39.7338511
-18061,2205,4854,0.158832380963048,0.158832380963048,-104.9848518,39.7338511,-104.9848436,39.7352795
-18062,4854,9478,0.174098421618631,0.174098421618631,-104.9848436,39.7352795,-104.9848486,39.7368452
-18063,9478,5457,0.176480352381434,0.176480352381434,-104.9848486,39.7368452,-104.9848604,39.7384323
-18065,10252,9243,0.056682383190515,0.056682383190515,-105.0065259,39.7255278,-105.005875,39.7256239
-18067,9110,10252,0.0330932350677699,0.0330932350677699,-105.0069105,39.725495,-105.0065259,39.7255278
-18069,10253,6203,0.215345161639468,0.215345161639468,-105.0092129,39.7256572,-105.0067229,39.7253691
-18071,9115,10254,0.0491155354462148,0.0491155354462148,-105.0110763,39.7256175,-105.010502,39.7256195
-18075,10254,10255,0.0642041289943666,0.0642041289943666,-105.010502,39.7256195,-105.0097514,39.7256305
-18076,10255,10253,0.0461489416178021,0.0461489416178021,-105.0097514,39.7256305,-105.0092129,39.7256572
-18077,10253,9108,0.280904320228077,0.280904320228077,-105.0092129,39.7256572,-105.0059283,39.7256613
-18106,4661,10263,0.0487469518611321,0.0487469518611321,-105.0193192,39.7874319,-105.0198897,39.7874342
-18107,10263,1291,0.0497384845482417,0.0497384845482417,-105.0198897,39.7874342,-105.0204718,39.7874371
-18108,1291,10264,0.0496989025904687,0.0496989025904687,-105.0204718,39.7874371,-105.0210534,39.7874313
-18109,10264,4563,0.0505706606603651,0.0505706606603651,-105.0210534,39.7874313,-105.0216452,39.7874253
-18110,4563,10265,0.0486836289638941,0.0486836289638941,-105.0216452,39.7874253,-105.0222149,39.787432
-18111,10265,6287,0.0497296125808977,0.0497296125808977,-105.0222149,39.787432,-105.0227969,39.7874344
-18112,6287,10135,0.0504212055729903,0.0504212055729903,-105.0227969,39.7874344,-105.023387,39.7874357
-18113,10135,2731,0.0489350482169507,0.0489350482169507,-105.023387,39.7874357,-105.0239597,39.7874332
-18114,2731,6420,0.048465461986869,0.048465461986869,-105.0239597,39.7874332,-105.0245269,39.7874302
-18115,6420,5790,0.0578817224647719,0.0578817224647719,-105.0245269,39.7874302,-105.0252043,39.7874266
-18117,8844,10266,0.374943168729483,0.374943168729483,-105.0064203,39.7882499,-105.0106756,39.7890735
-18166,2719,9346,0.101115603929332,0.101115603929332,-105.0239361,39.7820944,-105.0251194,39.7820982
-18167,9346,9392,0.0111914858812043,0.0111914858812043,-105.0251194,39.7820982,-105.0252309,39.782151
-18168,9392,3751,0.0968414516342271,0.0968414516342271,-105.0252309,39.782151,-105.0263639,39.7821708
-18169,3751,10278,0.0782538471461698,0.0782538471461698,-105.0263639,39.7821708,-105.0272582,39.7823223
-18175,4073,6058,0.198316836648763,0.198316836648763,-105.0316273,39.7838408,-105.0316334,39.7856243
-18176,6058,5798,0.200796475018558,0.200796475018558,-105.0316334,39.7856243,-105.0316273,39.7874301
-18197,6750,5252,0.185979531851002,0.185979531851002,-105.0275762,39.7639672,-105.0295723,39.7646329
-18198,5252,3974,0.035323188020151,0.035323188020151,-105.0295723,39.7646329,-105.0299675,39.7647258
-18200,9357,2431,0.202519432604137,0.202519432604137,-105.0363814,39.7731219,-105.0363839,39.7713006
-18201,2431,9370,0.199383622965617,0.199383622965617,-105.0363839,39.7713006,-105.0363839,39.7695075
-18202,9370,1686,0.206118508992277,0.206118508992277,-105.0363839,39.7695075,-105.0363632,39.7676539
-18203,1686,6875,0.204292305654176,0.204292305654176,-105.0363632,39.7676539,-105.0363465,39.7658167
-18588,6666,1137,0.0495387040987843,0.0495387040987843,-105.0398227,39.780198,-105.0404024,39.780201
-18589,1137,6968,0.0501615414722825,0.0501615414722825,-105.0404024,39.780201,-105.0409894,39.7802021
-18590,6968,7504,0.0501273333828588,0.0501273333828588,-105.0409894,39.7802021,-105.041576,39.7802031
-18591,7504,9407,0.0988444534637431,0.0988444534637431,-105.041576,39.7802031,-105.0427327,39.7802037
-18592,9407,7479,0.0538727285881741,0.0538727285881741,-105.0427327,39.7802037,-105.0433631,39.7802085
-18593,7479,5581,0.0510099428615072,0.0510099428615072,-105.0433631,39.7802085,-105.04396,39.7802131
-18594,5581,10328,0.0992130715738959,0.0992130715738959,-105.04396,39.7802131,-105.045121,39.7802175
-18595,10328,10329,0.693578278671619,0.693578278671619,-105.045121,39.7802175,-105.0532374,39.7802069
-18597,1845,2579,0.175048810960168,0.175048810960168,-105.031231,39.721358,-105.0312476,39.7229322
-18598,2579,5177,0.17911429796522,0.17911429796522,-105.0312476,39.7229322,-105.031239,39.724543
-18599,5177,10332,0.0225943601934419,0.0225943601934419,-105.031239,39.724543,-105.0312506,39.724746
-18604,6211,7648,0.275618961394926,0.275618961394926,-105.0356646,39.7257653,-105.0356619,39.728244
-18605,7648,8065,0.262676196305861,0.262676196305861,-105.0356619,39.728244,-105.0356674,39.7306063
-18711,2590,5183,0.178568260386205,0.178568260386205,-105.0372775,39.7229371,-105.0372815,39.724543
-18712,5183,5651,0.104244503206479,0.104244503206479,-105.0372815,39.724543,-105.0372987,39.7254804
-18747,6210,10338,0.0125158344567017,0.0125158344567017,-105.0337279,39.7260547,-105.0338594,39.7261041
-18748,10338,10206,0.0559739547988456,0.0559739547988456,-105.0338594,39.7261041,-105.0345139,39.726102
-18749,10206,10338,0.0559739547988456,0.0559739547988456,-105.0345139,39.726102,-105.0338594,39.7261041
-18751,2596,5186,0.177768815603995,0.177768815603995,-105.0389102,39.7229396,-105.0389187,39.7245383
-18758,2588,5182,0.176322049262719,0.176322049262719,-105.0361794,39.7229441,-105.0361829,39.7245298
-18759,5182,5650,0.106248688527315,0.106248688527315,-105.0361829,39.7245298,-105.0361904,39.7254853
-18765,10339,10341,0.0322810460432902,0.0322810460432902,-105.0047672,39.7397925,-105.0049362,39.7395329
-18767,4492,10342,0.0173161946805903,0.0173161946805903,-105.0052379,39.7395355,-105.0050354,39.7395334
-18768,10342,10341,0.00848220864637094,0.00848220864637094,-105.0050354,39.7395334,-105.0049362,39.7395329
-18770,5616,10343,0.00845077111169589,0.00845077111169589,-105.0015651,39.7393715,-105.0014663,39.7393735
-18771,10343,10344,0.0509950035054565,0.0509950035054565,-105.0014663,39.7393735,-105.0008699,39.7393725
-18772,10344,9634,0.100553817919852,0.100553817919852,-105.0008699,39.7393725,-105.0008673,39.7384682
-18950,6234,7639,0.179364622734642,0.179364622734642,-104.9975473,39.7256987,-104.9975661,39.7273117
-18789,10350,10131,1.72659496196287,1.72659496196287,-104.9945291,39.7683411,-104.9893756,39.7833551
-18791,10210,10350,0.0784105528331039,0.0784105528331039,-104.9953391,39.76801,-104.9945291,39.7683411
-18793,9064,10351,0.108141289805084,0.108141289805084,-104.9980982,39.766727,-104.9969332,39.7671064
-18795,10351,8944,0.165792281012932,0.165792281012932,-104.9969332,39.7671064,-104.9951643,39.7677183
-18797,8946,8970,0.101566925839608,0.101566925839608,-104.9938162,39.7672158,-104.9947845,39.7677453
-18805,431,8911,0.368100622266312,0.368100622266312,-104.9935559,39.7671283,-104.9912548,39.7699266
-18807,8935,10353,0.0653020622045421,0.0653020622045421,-104.9904048,39.7737279,-104.990472,39.7731429
-18865,217,6354,0.250152442533131,0.250152442533131,-105.0109346,39.7232696,-105.0110405,39.7255178
-18867,10372,10373,0.00433033984408308,0.00433033984408308,-105.0086117,39.7209279,-105.0085612,39.7209251
-18809,2956,8964,0.839971785186466,0.839971785186466,-104.9919912,39.7706248,-104.9950202,39.7634385
-18811,10353,8914,0.0131507104865587,0.0131507104865587,-104.990472,39.7731429,-104.9904906,39.7730255
-18813,10354,8436,0.0634565167907247,0.0634565167907247,-105.0148848,39.7420462,-105.014551,39.7415365
-18815,8440,10354,0.130317184994069,0.130317184994069,-105.0158022,39.7429821,-105.0148848,39.7420462
-18818,8431,4422,0.07184295360215,0.07184295360215,-105.0163799,39.7437893,-105.0169124,39.7442891
-18820,8435,10355,0.137076541565926,0.137076541565926,-105.0147581,39.7421922,-105.015729,39.7431732
-18825,9181,10356,0.159461421615407,0.159461421615407,-105.0158598,39.7429416,-105.0153708,39.7415577
-18827,10357,10358,0.20146281055654,0.20146281055654,-105.0148187,39.7409989,-105.0144967,39.7392041
-18829,9180,10359,0.028613707454695,0.028613707454695,-105.0141257,39.7376931,-105.0141666,39.7374377
-18833,10360,10361,0.0535066603860974,0.0535066603860974,-105.0142282,39.7371345,-105.0143588,39.7366639
-18835,10361,10362,0.0845690343766548,0.0845690343766548,-105.0143588,39.7366639,-105.0146327,39.7359331
-18836,10362,9179,0.0218653086870073,0.0218653086870073,-105.0146327,39.7359331,-105.0147208,39.7357485
-19605,10512,10584,0.0688213399515618,0.0688213399515618,-104.9902689,39.7091497,-104.9910734,39.7091553
-20576,10864,10865,0.0279630258161778,0.0279630258161778,-105.0249015,39.7609531,-105.024575,39.7609374
-18838,10363,8434,0.438288246661524,0.438288246661524,-105.013913,39.7376771,-105.0143556,39.741604
-18840,8433,10364,0.0515496120111284,0.0515496120111284,-105.0141326,39.7366784,-105.0140112,39.7371325
-18842,10365,10363,0.0256601639624377,0.0256601639624377,-105.0139511,39.7374482,-105.013913,39.7376771
-18844,10364,10365,0.0354783965202197,0.0354783965202197,-105.0140112,39.7371325,-105.0139511,39.7374482
-18848,10367,8387,0.416611762681733,0.416611762681733,-105.0138601,39.7376849,-105.0139458,39.741431
-18850,10366,10367,0.0267687636085769,0.0267687636085769,-105.0139219,39.7374489,-105.0138601,39.7376849
-18852,10368,10369,0.0527715034881913,0.0527715034881913,-105.0143032,39.7371374,-105.0144214,39.7366716
-18854,10370,10368,0.0348446889076446,0.0348446889076446,-105.01426,39.737449,-105.0143032,39.7371374
-18856,10371,10370,0.031482834490968,0.031482834490968,-105.0142451,39.7377319,-105.01426,39.737449
-18858,9836,10370,0.0328670117804623,0.0328670117804623,-105.0142819,39.7377441,-105.01426,39.737449
-18921,10399,10400,0.0895277934361984,0.0895277934361984,-105.0126923,39.7491278,-105.0134743,39.7485923
-18922,10400,10401,0.16717380860502,0.16717380860502,-105.0134743,39.7485923,-105.0137455,39.7471034
-18923,10402,10383,0.0291115464827756,0.0291115464827756,-105.012332,39.7504473,-105.0124996,39.7502194
-18924,10383,10403,0.0309778660865677,0.0309778660865677,-105.0124996,39.7502194,-105.0122636,39.750008
-18925,10403,10390,0.0429604527526701,0.0429604527526701,-105.0122636,39.750008,-105.0126243,39.749739
-18927,10404,10405,0.0626862314087788,0.0626862314087788,-105.0107841,39.7498186,-105.0109524,39.7503673
-18930,10406,10405,0.108269005965165,0.108269005965165,-105.0097302,39.7501122,-105.0109524,39.7503673
-18932,1241,6737,0.0570520014832054,0.0570520014832054,-105.0205242,39.7613979,-105.0203579,39.760901
-18934,8100,6923,0.164900679548878,0.164900679548878,-105.0200789,39.7613979,-105.018184,39.7611196
-18936,6923,8099,0.163064822440362,0.163064822440362,-105.018184,39.7611196,-105.016277,39.7610801
-18938,7928,8098,0.0730856765280865,0.0730856765280865,-105.0162425,39.7603392,-105.0160862,39.7609854
-18940,4039,4644,0.0827836448037734,0.0827836448037734,-105.0178323,39.7180402,-105.018682,39.7183967
-18943,10407,7448,0.103189406011465,0.103189406011465,-105.0127225,39.7148426,-105.0139289,39.7148415
-19852,10659,3379,0.102335766847439,0.102335766847439,-105.035226,39.7385493,-105.0346077,39.7377613
-18945,4142,10108,0.0206474020512083,0.0206474020512083,-104.9827054,39.7147303,-104.9827539,39.7145484
-18947,5674,2620,0.178145491343884,0.178145491343884,-104.9975487,39.7209311,-104.9975509,39.7225332
-18948,2620,5201,0.177501253416424,0.177501253416424,-104.9975509,39.7225332,-104.9975447,39.7241295
-18949,5201,6234,0.174487220572856,0.174487220572856,-104.9975447,39.7241295,-104.9975473,39.7256987
-18951,7639,8773,0.176238488140281,0.176238488140281,-104.9975661,39.7273117,-104.9975826,39.7288966
-18952,8773,8053,0.178917033730472,0.178917033730472,-104.9975826,39.7288966,-104.9976187,39.7305054
-18953,8053,6598,0.176988972177145,0.176988972177145,-104.9976187,39.7305054,-104.9976193,39.7320971
-18954,6598,10243,0.175681180141988,0.175681180141988,-104.9976193,39.7320971,-104.9976337,39.733677
-18956,1841,7856,0.0582284853716934,0.0582284853716934,-104.9921535,39.7209342,-104.9928343,39.7209379
-18957,7856,4669,0.101085168807405,0.101085168807405,-104.9928343,39.7209379,-104.994016,39.720921
-18979,1764,4509,0.0491583937075752,0.0491583937075752,-104.9769042,39.7146962,-104.9763295,39.7146995
-18980,4509,4971,0.0991296803100638,0.0991296803100638,-104.9763295,39.7146995,-104.9751706,39.7147065
-18981,4971,1516,0.0482432726972035,0.0482432726972035,-104.9751706,39.7147065,-104.9746066,39.7147099
-18982,1516,5304,0.0536166306041211,0.0536166306041211,-104.9746066,39.7147099,-104.9739798,39.7147152
-18983,5304,7951,0.0505628420768163,0.0505628420768163,-104.9739798,39.7147152,-104.9733887,39.7147202
-18984,7951,7950,0.0124795676036534,0.0124795676036534,-104.9733887,39.7147202,-104.9732428,39.7147202
-18985,7950,1083,0.0132964314605761,0.0132964314605761,-104.9732428,39.7147202,-104.9730883,39.714707
-18986,1083,8958,0.019091432638578,0.019091432638578,-104.9730883,39.714707,-104.9728651,39.714707
-18987,8958,1750,0.0565301426139895,0.0565301426139895,-104.9728651,39.714707,-104.9722042,39.714707
-18988,1750,6636,0.100698502633469,0.100698502633469,-104.9722042,39.714707,-104.9710271,39.7146913
-18989,6636,5425,0.0992142460676437,0.0992142460676437,-104.9710271,39.7146913,-104.9698675,39.7147124
-18990,5425,7398,0.100582854167636,0.100582854167636,-104.9698675,39.7147124,-104.9686917,39.7147256
-18992,5674,10413,0.0446816032988726,0.0446816032988726,-104.9975487,39.7209311,-104.9980711,39.720935
-18993,10413,6641,0.0419959523464037,0.0419959523464037,-104.9980711,39.720935,-104.9985621,39.7209387
-18994,6641,3958,0.140215488391596,0.140215488391596,-104.9985621,39.7209387,-105.0002015,39.7209321
-18997,9265,10213,0.108979878639585,0.108979878639585,-105.0016701,39.7209304,-105.0029442,39.7209175
-19957,10683,10676,0.203409384148671,0.203409384148671,-105.0434219,39.7384701,-105.0434166,39.7366408
-18998,10213,9182,0.221716360786737,0.221716360786737,-105.0029442,39.7209175,-105.0055365,39.720906
-18999,9182,4360,0.00485021965067944,0.00485021965067944,-105.0055365,39.720906,-105.0055932,39.7209068
-19000,4360,6082,0.123504109096694,0.123504109096694,-105.0055932,39.7209068,-105.007037,39.720887
-19240,10459,8221,0.147319836582293,0.147319836582293,-104.9924125,39.7416474,-104.9936301,39.74071
-19002,1269,4533,0.203350040591983,0.203350040591983,-105.0203986,39.7184231,-105.0227761,39.7184297
-19003,4533,8579,0.198512187124204,0.198512187124204,-105.0227761,39.7184297,-105.0250969,39.7184502
-19005,1841,2613,0.177111353706323,0.177111353706323,-104.9921535,39.7209342,-104.9921516,39.722527
-19006,2613,10414,0.0530626159965885,0.0530626159965885,-104.9921516,39.722527,-104.992154,39.7230042
-19007,10414,5196,0.124494794308613,0.124494794308613,-104.992154,39.7230042,-104.9921597,39.7241238
-19008,5196,6239,0.171651899926933,0.171651899926933,-104.9921597,39.7241238,-104.9921634,39.7256675
-19010,4186,4182,0.0154308679587021,0.0154308679587021,-104.9921793,39.7147876,-104.9923595,39.714781
-19011,4182,3367,0.101326829934178,0.101326829934178,-104.9923595,39.714781,-104.993544,39.7147942
-19012,3367,3370,0.0389167828857067,0.0389167828857067,-104.993544,39.7147942,-104.9939989,39.7148008
-19013,3370,10415,0.0493793417329401,0.0493793417329401,-104.9939989,39.7148008,-104.9945762,39.7148008
-19014,10415,7424,0.0519282840216647,0.0519282840216647,-104.9945762,39.7148008,-104.9951833,39.7148008
-19015,7424,10416,0.0508505433229276,0.0508505433229276,-104.9951833,39.7148008,-104.9957778,39.7148008
-19016,10416,7831,0.0497300351350067,0.0497300351350067,-104.9957778,39.7148008,-104.9963592,39.7148008
-19017,7831,9197,0.188452322853961,0.188452322853961,-104.9963592,39.7148008,-104.9985624,39.7147937
-19019,5549,10417,0.0198343104325793,0.0198343104325793,-104.9920738,39.6893875,-104.9923056,39.6893875
-19020,10417,2562,0.366597076665755,0.366597076665755,-104.9923056,39.6893875,-104.9965885,39.6893017
-19021,2562,9783,0.236171353579108,0.236171353579108,-104.9965885,39.6893017,-104.9993276,39.6890403
-19022,9783,9781,0.00643634199106272,0.00643634199106272,-104.9993276,39.6890403,-104.9994018,39.6890498
-19958,10676,10668,0.135367639799285,0.135367639799285,-105.0434166,39.7366408,-105.0433886,39.7354236
-19023,9781,9160,0.00367738923970995,0.00367738923970995,-104.9994018,39.6890498,-104.9994442,39.6890552
-19025,9156,9260,0.0939135311905937,0.0939135311905937,-104.9956359,39.7036162,-104.9954471,39.7027842
-19040,10419,435,0.0296899237003876,0.0296899237003876,-104.9404266,39.7837714,-104.9400813,39.7837417
-19042,6361,6912,0.413025051484806,0.413025051484806,-104.9406234,39.7728953,-104.9406406,39.7691809
-19043,6912,5272,0.122458972713872,0.122458972713872,-104.9406406,39.7691809,-104.9406406,39.7680796
-19044,5272,2806,0.132101617817113,0.132101617817113,-104.9406406,39.7680796,-104.9406492,39.7668916
-19045,2806,9480,0.135002111088791,0.135002111088791,-104.9406492,39.7668916,-104.9406528,39.7656775
-19046,9480,901,0.134968752710231,0.134968752710231,-104.9406528,39.7656775,-104.9406492,39.7644637
-19048,9486,9873,0.018915562611857,0.018915562611857,-104.9406618,39.7619502,-104.9406644,39.7617801
-19049,9873,3055,0.182137362251337,0.182137362251337,-104.9406644,39.7617801,-104.9406663,39.7601421
-19050,3055,9669,0.205422822851571,0.205422822851571,-104.9406663,39.7601421,-104.9406749,39.7582947
-19051,9669,4352,0.202508200405289,0.202508200405289,-104.9406749,39.7582947,-104.9406749,39.7564735
-19052,4352,7924,0.0557579828978423,0.0557579828978423,-104.9406749,39.7564735,-104.9406835,39.7559721
-19053,7924,7923,0.106391305814005,0.106391305814005,-104.9406835,39.7559721,-104.9406835,39.7550153
-19054,7923,3580,0.0580075342624614,0.0580075342624614,-104.9406835,39.7550153,-104.9407092,39.754494
-19055,3580,788,0.184224770380015,0.184224770380015,-104.9407092,39.754494,-104.9407607,39.7528377
-19056,788,10089,0.199795465587569,0.199795465587569,-104.9407607,39.7528377,-104.9407655,39.7510409
-19057,10089,491,0.20084069572648,0.20084069572648,-104.9407655,39.7510409,-104.9407607,39.7492347
-19058,491,489,0.205477824650125,0.205477824650125,-104.9407607,39.7492347,-104.9407865,39.7473869
-19059,489,4589,0.272976340428597,0.272976340428597,-104.9407865,39.7473869,-104.9408036,39.744932
-19060,4589,1978,0.12991989572877,0.12991989572877,-104.9408036,39.744932,-104.9407693,39.7437639
-19061,1978,1994,0.0147512164813181,0.0147512164813181,-104.9407693,39.7437639,-104.9407521,39.7436319
-19062,1994,705,0.187141061542779,0.187141061542779,-104.9407521,39.7436319,-104.9407521,39.7419489
-19063,705,642,0.0623803538473296,0.0623803538473296,-104.9407521,39.7419489,-104.9407521,39.7413879
-19064,642,10422,0.140896965982946,0.140896965982946,-104.9407521,39.7413879,-104.9407436,39.7401208
-19067,9469,4898,0.180547202392339,0.180547202392339,-104.9407436,39.7367085,-104.9407436,39.7350848
-19068,4898,4899,0.0469687370152221,0.0469687370152221,-104.9407436,39.7350848,-104.9407436,39.7346624
-19069,4899,9422,0.11449972298661,0.11449972298661,-104.9407436,39.7346624,-104.9407521,39.7336327
-19070,9422,2230,0.0888113879114828,0.0888113879114828,-104.9407521,39.7336327,-104.9407521,39.732834
-19071,2230,961,0.0851419553312056,0.0851419553312056,-104.9407521,39.732834,-104.9407521,39.7320683
-19072,961,5943,0.118166848545009,0.118166848545009,-104.9407521,39.7320683,-104.9407521,39.7310056
-19073,5943,8869,0.0594604755013997,0.0594604755013997,-104.9407521,39.7310056,-104.9407607,39.7304709
-19074,8869,3766,0.149125823202066,0.149125823202066,-104.9407607,39.7304709,-104.9407704,39.7291298
-19075,3766,10248,0.200641473563849,0.200641473563849,-104.9407704,39.7291298,-104.940779,39.7273254
-19076,10248,1211,0.0471365210908597,0.0471365210908597,-104.940779,39.7273254,-104.940806,39.726902
-19077,1211,8567,0.147435833594552,0.147435833594552,-104.940806,39.726902,-104.940796,39.7255761
-19078,8567,6541,0.161851618274563,0.161851618274563,-104.940796,39.7255761,-104.9407779,39.7241206
-19079,6541,4746,0.176177241775495,0.176177241775495,-104.9407779,39.7241206,-104.9407779,39.7225362
-19081,4159,2359,0.17021782028236,0.17021782028236,-104.9407748,39.7209356,-104.9407802,39.7194048
-19082,2359,9694,0.178145500592375,0.178145500592375,-104.9407802,39.7194048,-104.9407779,39.7178027
-19083,9694,5170,0.174004040417809,0.174004040417809,-104.9407779,39.7178027,-104.9407951,39.7162379
-19085,6362,6447,0.0914589915157797,0.0914589915157797,-104.940457,39.7728953,-104.9404516,39.7737178
-19086,6447,2399,0.0149004167256546,0.0149004167256546,-104.9404516,39.7737178,-104.9404527,39.7738518
-19087,2399,9454,0.2205749898237,0.2205749898237,-104.9404527,39.7738518,-104.9405378,39.7758344
-19089,519,831,0.121986604363099,0.121986604363099,-104.9416292,39.7807961,-104.9429184,39.780325
-19090,831,10147,0.141772461765667,0.141772461765667,-104.9429184,39.780325,-104.9445492,39.7800907
-19091,10147,10428,0.0119979325853114,0.0119979325853114,-104.9445492,39.7800907,-104.9445492,39.7799828
-19093,8145,9501,0.0198122134799104,0.0198122134799104,-104.9480016,39.7837973,-104.9477699,39.7837907
-19094,9501,1751,0.0440125388452957,0.0440125388452957,-104.9477699,39.7837907,-104.9472549,39.7837973
-19095,1751,6012,0.168131959250809,0.168131959250809,-104.9472549,39.7837973,-104.9452877,39.7838286
-19096,6012,832,0.205336624614562,0.205336624614562,-104.9452877,39.7838286,-104.9428851,39.783794
-19097,832,518,0.168135736431663,0.168135736431663,-104.9428851,39.783794,-104.9409175,39.7837817
-19098,518,6513,0.0279910233322091,0.0279910233322091,-104.9409175,39.7837817,-104.9405902,39.7837714
-19099,6513,10419,0.0139795197071191,0.0139795197071191,-104.9405902,39.7837714,-104.9404266,39.7837714
-19102,10049,8612,0.0522928783615643,0.0522928783615643,-105.0003395,39.7496422,-105.0007767,39.7499711
-19103,8612,8474,0.0521996072275175,0.0521996072275175,-105.0007767,39.7499711,-105.0012293,39.7502862
-19142,5220,8777,0.146640601075408,0.146640601075408,-104.9888573,39.7273254,-104.9874242,39.7266013
-19105,10430,10358,0.245136281681027,0.245136281681027,-105.0132616,39.7411936,-105.0144967,39.7392041
-19108,5628,9568,0.110078124608504,0.110078124608504,-104.9727792,39.7181791,-104.9714922,39.7181793
-19110,8421,10357,0.296407311680596,0.296407311680596,-105.0127281,39.7431253,-105.0148187,39.7409989
-19114,2386,9558,0.0348995825647377,0.0348995825647377,-104.9468949,39.7115125,-104.9465426,39.7113542
-19115,9558,8798,0.125658984531748,0.125658984531748,-104.9465426,39.7113542,-104.9457531,39.7104012
-19120,8185,9450,0.339524971346509,0.339524971346509,-104.936636,39.7114077,-104.9405977,39.7115958
-19121,9450,8690,0.0176125961717604,0.0176125961717604,-104.9405977,39.7115958,-104.9408036,39.7115964
-19122,8690,7659,0.0477249226862614,0.0477249226862614,-104.9408036,39.7115964,-104.9413615,39.7115918
-19123,7659,6718,0.103225505465316,0.103225505465316,-104.9413615,39.7115918,-104.9425631,39.711506
-19125,2190,8128,0.151455687504874,0.151455687504874,-105.0139689,39.7423726,-105.0124026,39.7430088
-19126,8128,7827,0.106341251390527,0.106341251390527,-105.0124026,39.7430088,-105.0113366,39.7435015
-19127,7827,10432,0.221434541654845,0.221434541654845,-105.0113366,39.7435015,-105.0087952,39.7438851
-19128,10432,6961,0.0131395719721806,0.0131395719721806,-105.0087952,39.7438851,-105.0086651,39.743948
-19129,6961,10433,0.0134328380462519,0.0134328380462519,-105.0086651,39.743948,-105.0085243,39.7440016
-19130,10433,10434,0.0869062764565781,0.0869062764565781,-105.0085243,39.7440016,-105.007666,39.7444203
-19131,10434,8597,0.00983583049657532,0.00983583049657532,-105.007666,39.7444203,-105.0075587,39.7444522
-19132,8597,10435,0.0222534876112211,0.0222534876112211,-105.0075587,39.7444522,-105.0073243,39.7445392
-19134,10050,3168,0.0821216282435351,0.0821216282435351,-105.0006176,39.749423,-105.0012883,39.7488943
-19141,7961,5220,0.0901667996290929,0.0901667996290929,-104.9896006,39.7279005,-104.9888573,39.7273254
-19144,8388,10437,0.320984694668417,0.320984694668417,-105.0138882,39.7419658,-105.0110862,39.743887
-19146,10437,6962,0.186002986440568,0.186002986440568,-105.0110862,39.743887,-105.0094763,39.7450121
-19147,6962,10438,0.0184374963317956,0.0184374963317956,-105.0094763,39.7450121,-105.0092941,39.7451008
-19148,10438,1881,0.209774050468257,0.209774050468257,-105.0092941,39.7451008,-105.0074729,39.746365
-19149,1881,8569,0.224745848084877,0.224745848084877,-105.0074729,39.746365,-105.00526,39.747456
-19150,8569,9988,0.0831717180377924,0.0831717180377924,-105.00526,39.747456,-105.0043843,39.7477818
-19151,9988,8477,0.0648356679758423,0.0648356679758423,-105.0043843,39.7477818,-105.003633,39.7477024
-19152,8477,8463,0.0835421546655635,0.0835421546655635,-105.003633,39.7477024,-105.0026615,39.7476216
-19960,9517,10684,0.210192276965542,0.210192276965542,-105.0410776,39.740352,-105.0410722,39.7384617
-19154,8800,8811,0.31904932389546,0.31904932389546,-104.9467659,39.7116096,-104.9494453,39.7136057
-19162,10428,3871,0.0534454265709194,0.0534454265709194,-104.9445492,39.7799828,-104.9440637,39.7796798
-19163,3871,840,0.0992542187222657,0.0992542187222657,-104.9440637,39.7796798,-104.942905,39.7797416
-19164,840,4272,0.128018795895479,0.128018795895479,-104.942905,39.7797416,-104.9418717,39.778908
-19166,9283,10439,0.0445989165425857,0.0445989165425857,-104.9624039,39.7800174,-104.961882,39.7800192
-19168,10440,9282,0.395349042842448,0.395349042842448,-104.9622414,39.7801259,-104.9667713,39.7808486
-19170,7136,2300,0.0954980884416659,0.0954980884416659,-104.9684185,39.7783922,-104.9691692,39.7790284
-19171,2300,6804,0.197911548357853,0.197911548357853,-104.9691692,39.7790284,-104.9688098,39.7807867
-19173,7956,8539,0.0718200140953678,0.0718200140953678,-104.9677476,39.7808918,-104.9669081,39.7808609
-19174,8539,9282,0.0117697082839477,0.0117697082839477,-104.9669081,39.7808609,-104.9667713,39.7808486
-19176,10442,1349,0.0573473302810492,0.0573473302810492,-104.9735925,39.7715442,-104.9740676,39.7719084
-19178,10443,8521,0.0309849382045455,0.0309849382045455,-105.0041255,39.7507938,-105.0043742,39.7505911
-19180,10151,10440,0.0401979143660666,0.0401979143660666,-104.961771,39.7801275,-104.9622414,39.7801259
-19182,10439,5059,0.220890379574485,0.220890379574485,-104.961882,39.7800192,-104.9592971,39.780022
-19183,5059,5013,0.0908635547178716,0.0908635547178716,-104.9592971,39.780022,-104.9582338,39.780024
-19184,5013,3349,0.0925982666666752,0.0925982666666752,-104.9582338,39.780024,-104.9571502,39.780022
-19185,3349,7877,0.0609717199349519,0.0609717199349519,-104.9571502,39.780022,-104.9564367,39.7800204
-19186,7877,5761,0.0981025803398981,0.0981025803398981,-104.9564367,39.7800204,-104.9552887,39.7800158
-19187,5761,7325,0.0996396951750833,0.0996396951750833,-104.9552887,39.7800158,-104.9541227,39.7800179
-19961,10684,10674,0.204298559687633,0.204298559687633,-105.0410722,39.7384617,-105.0410696,39.7366244
-19188,7325,2064,0.0938077886809335,0.0938077886809335,-104.9541227,39.7800179,-104.953025,39.7800093
-20575,10863,10864,0.0111548544892698,0.0111548544892698,-105.0250317,39.7609599,-105.0249015,39.7609531
-19189,2064,2650,0.094440127839499,0.094440127839499,-104.953025,39.7800093,-104.9519199,39.7800007
-19801,7638,6235,0.180302575380181,0.180302575380181,-104.9969636,39.7273173,-104.9969633,39.7256958
-19190,2650,10444,0.141197448312795,0.141197448312795,-104.9519199,39.7800007,-104.9502676,39.7799945
-19191,10444,9821,0.0323105619062287,0.0323105619062287,-104.9502676,39.7799945,-104.9498895,39.7799931
-19192,9821,9822,0.0144436267959073,0.0144436267959073,-104.9498895,39.7799931,-104.9497205,39.7799952
-19193,9822,3476,0.28088366035949,0.28088366035949,-104.9497205,39.7799952,-104.9464336,39.7799807
-19194,3476,10445,0.0704996285836985,0.0704996285836985,-104.9464336,39.7799807,-104.9456086,39.7799808
-19195,10445,10428,0.0905303391563005,0.0905303391563005,-104.9456086,39.7799808,-104.9445492,39.7799828
-19197,10167,10442,0.0431387292722099,0.0431387292722099,-104.9732322,39.7712725,-104.9735925,39.7715442
-19199,8408,8568,0.191490020507546,0.191490020507546,-105.0080042,39.7473225,-105.0063682,39.7484987
-19200,8568,10012,0.119004756390235,0.119004756390235,-105.0063682,39.7484987,-105.0057345,39.7494516
-19335,8631,10474,0.189944426919074,0.189944426919074,-105.0072049,39.7537723,-105.0056485,39.7525532
-19201,10012,8461,0.097400081996938,0.097400081996938,-105.0057345,39.7494516,-105.0049189,39.7500632
-19203,4275,3348,0.0888431357806069,0.0888431357806069,-104.9582338,39.7789377,-104.9571942,39.7789304
-19204,3348,7876,0.0640319779657538,0.0640319779657538,-104.9571942,39.7789304,-104.9564449,39.7789288
-19205,7876,5760,0.0967358830871852,0.0967358830871852,-104.9564449,39.7789288,-104.9553129,39.7789264
-19206,5760,7324,0.101239369924108,0.101239369924108,-104.9553129,39.7789264,-104.9541282,39.778924
-19207,7324,2063,0.0946165731852714,0.0946165731852714,-104.9541282,39.778924,-104.953021,39.7789217
-19208,2063,2649,0.0935569331707932,0.0935569331707932,-104.953021,39.7789217,-104.9519262,39.7789194
-19209,2649,4105,0.0971375052394303,0.0971375052394303,-104.9519262,39.7789194,-104.9507895,39.7789171
-19210,4105,6689,0.0855494277301445,0.0855494277301445,-104.9507895,39.7789171,-104.9497884,39.7789167
-19211,6689,356,0.101026474697068,0.101026474697068,-104.9497884,39.7789167,-104.9486062,39.7789125
-19212,356,7688,0.0921469063041614,0.0921469063041614,-104.9486062,39.7789125,-104.9475279,39.7789103
-19213,7688,3475,0.0946165920204556,0.0946165920204556,-104.9475279,39.7789103,-104.9464207,39.778908
-19215,6939,9228,0.0827641347919428,0.0827641347919428,-104.9592691,39.7819637,-104.9592628,39.7812194
-19216,9228,6380,0.0767643689707359,0.0767643689707359,-104.9592628,39.7812194,-104.9592745,39.7805291
-19217,6380,5058,0.0447215279971903,0.0447215279971903,-104.9592745,39.7805291,-104.9592906,39.7801271
-19219,5015,3318,0.0976390934138488,0.0976390934138488,-104.9582016,39.7805126,-104.957059,39.7805126
-19221,7829,10449,0.170073568021036,0.170073568021036,-104.9917479,39.7578961,-104.9903397,39.7589766
-19222,9276,9490,0.227893235973284,0.227893235973284,-104.9957422,39.7556449,-104.9975705,39.7571365
-19224,5808,10450,0.0444182254226453,0.0444182254226453,-104.9878972,39.7431235,-104.9873945,39.7430227
-19228,10452,10453,0.00899294746602318,0.00899294746602318,-104.9908137,39.7415403,-104.9908874,39.7414826
-19262,561,8788,0.108355823884287,0.108355823884287,-104.984845,39.7400568,-104.9835778,39.7400469
-19264,10465,10081,0.106367191723871,0.106367191723871,-104.9873778,39.7399976,-104.9861338,39.7399945
-19265,10081,9467,0.08060964495203,0.08060964495203,-104.9861338,39.7399945,-104.9851948,39.7400592
-19376,8634,10174,0.107642527980188,0.107642527980188,-104.9972254,39.7453524,-104.9963422,39.7446625
-19283,1943,10467,0.139113140483037,0.139113140483037,-104.9902169,39.7384586,-104.9888355,39.7377977
-19284,10467,1941,0.145058671955531,0.145058671955531,-104.9888355,39.7377977,-104.9873753,39.7384618
-19309,10472,10450,0.0244300101434338,0.0244300101434338,-104.9873927,39.7432424,-104.9873945,39.7430227
-19310,10450,6986,0.0907684588887198,0.0907684588887198,-104.9873945,39.7430227,-104.9873935,39.7422064
-19311,6986,649,0.0550434251335652,0.0550434251335652,-104.9873935,39.7422064,-104.9873881,39.7417114
-19312,649,9973,0.0116984093357102,0.0116984093357102,-104.9873881,39.7417114,-104.9873866,39.7416062
-19313,9973,6700,0.0127993614182147,0.0127993614182147,-104.9873866,39.7416062,-104.9873849,39.7414911
-20578,10796,10801,0.065843170036926,0.065843170036926,-105.0226193,39.761283,-105.021849,39.761283
-19315,5030,10465,0.0131766099040461,0.0131766099040461,-104.987378,39.7401161,-104.9873778,39.7399976
-19316,10465,339,0.0452586039857602,0.0452586039857602,-104.9873778,39.7399976,-104.9873725,39.7395906
-19317,339,10468,0.0402192785877108,0.0402192785877108,-104.9873725,39.7395906,-104.9873734,39.7392289
-19318,10468,1941,0.0852977829408983,0.0852977829408983,-104.9873734,39.7392289,-104.9873753,39.7384618
-19319,1941,610,0.177606555639393,0.177606555639393,-104.9873753,39.7384618,-104.9873582,39.7368646
-19320,610,4852,0.177691892562915,0.177691892562915,-104.9873582,39.7368646,-104.987369,39.7352666
-19321,4852,2203,0.156985921773534,0.156985921773534,-104.987369,39.7352666,-104.9873753,39.7338548
-19324,5917,1620,0.152034755665853,0.152034755665853,-104.987439,39.7304505,-104.9874196,39.7290833
-19325,1620,1212,0.201729915857126,0.201729915857126,-104.9874196,39.7290833,-104.9874175,39.7272691
-19326,1212,8782,0.0140233440789759,0.0140233440789759,-104.9874175,39.7272691,-104.9874245,39.7271431
-19336,4837,9074,0.0183273901669081,0.0183273901669081,-104.9983742,39.7111927,-104.9985883,39.7111864
-19338,9315,9317,0.0726807266351068,0.0726807266351068,-104.9406148,39.7146468,-104.9406062,39.7153004
-19339,9317,8692,0.104147766047402,0.104147766047402,-104.9406062,39.7153004,-104.9406148,39.716237
-19341,9315,1952,0.0315809029571794,0.0315809029571794,-104.9406148,39.7146468,-104.9402458,39.7146371
-19343,10140,10142,0.0644750868788433,0.0644750868788433,-104.967225,39.7796681,-104.967563,39.7791497
-19344,10142,10475,0.0151531719907858,0.0151531719907858,-104.967563,39.7791497,-104.9676782,39.7790461
-19345,10475,7137,0.053510410167183,0.053510410167183,-104.9676782,39.7790461,-104.9680592,39.7786642
-19347,480,9282,0.132450958735296,0.132450958735296,-104.9669782,39.7796681,-104.9667713,39.7808486
-19348,9282,10138,0.0564427245863012,0.0564427245863012,-104.9667713,39.7808486,-104.9667127,39.7813542
-19350,8464,10476,0.175984833399768,0.175984833399768,-105.0014282,39.7464074,-105.0032157,39.7456226
-19352,10047,5253,0.112186249238367,0.112186249238367,-104.9733504,39.7691681,-104.9733576,39.7681592
-19353,5253,2320,0.0249537355545513,0.0249537355545513,-104.9733576,39.7681592,-104.9733543,39.7679348
-19355,10166,6401,0.0992919669903468,0.0992919669903468,-104.9720707,39.769351,-104.9719701,39.7702406
-19359,10479,9948,0.0516511853374245,0.0516511853374245,-104.9998192,39.7473335,-104.9993873,39.7470087
-19360,9948,8509,0.0517093587612889,0.0517093587612889,-104.9993873,39.7470087,-104.9989592,39.7466802
-19362,6189,10479,0.146782090008868,0.146782090008868,-104.9986323,39.7482873,-104.9998192,39.7473335
-19387,10455,5805,0.0524139320350963,0.0524139320350963,-104.9915438,39.7409769,-104.9911089,39.7406447
-19364,10047,10168,0.0607581388382602,0.0607581388382602,-104.9733504,39.7691681,-104.9728475,39.7695543
-19365,10168,10480,0.0679196955639713,0.0679196955639713,-104.9728475,39.7695543,-104.972292,39.7699911
-19366,10480,6401,0.0390713513194924,0.0390713513194924,-104.972292,39.7699911,-104.9719701,39.7702406
-19367,6401,10481,0.052200136280437,0.052200136280437,-104.9719701,39.7702406,-104.9715413,39.7705749
-19368,10481,6166,0.221487121294822,0.221487121294822,-104.9715413,39.7705749,-104.9697218,39.7719933
-19369,6166,4284,0.1514940030025,0.1514940030025,-104.9697218,39.7719933,-104.9683885,39.7728911
-19371,2320,2779,0.107781391844326,0.107781391844326,-104.9733543,39.7679348,-104.9733522,39.7669655
-20580,10867,10868,0.0137448223074376,0.0137448223074376,-105.0244043,39.7612864,-105.0245651,39.7612868
-20581,10868,10869,0.0278742902489333,0.0278742902489333,-105.0245651,39.7612868,-105.0248912,39.7612876
-19372,2779,2913,0.05305189541044,0.05305189541044,-104.9733522,39.7669655,-104.9733488,39.7664884
-19374,8509,9595,0.106794270102757,0.106794270102757,-104.9989592,39.7466802,-104.9980797,39.7459982
-19375,9595,8634,0.102427753876907,0.102427753876907,-104.9980797,39.7459982,-104.9972254,39.7453524
-19377,10174,10482,0.096139738297761,0.096139738297761,-104.9963422,39.7446625,-104.9955435,39.7440539
-19378,10482,9194,0.00978224253563326,0.00978224253563326,-104.9955435,39.7440539,-104.9954622,39.743992
-19380,4397,3002,0.108243017625134,0.108243017625134,-104.9946157,39.7433367,-104.9937158,39.742652
-19381,3002,10484,0.0989194559777293,0.0989194559777293,-104.9937158,39.742652,-104.9929004,39.7420209
-19382,10484,5962,0.00617092845740214,0.00617092845740214,-104.9929004,39.7420209,-104.9928478,39.7419829
-19383,5962,10485,0.00542857584263607,0.00542857584263607,-104.9928478,39.7419829,-104.9928052,39.7419467
-19384,10485,10459,0.0472755549262459,0.0472755549262459,-104.9928052,39.7419467,-104.9924125,39.7416474
-19385,10459,7579,0.0528643874539915,0.0528643874539915,-104.9924125,39.7416474,-104.9919734,39.7413127
-19429,7287,32,0.190572580502828,0.190572580502828,-104.9833604,39.7019722,-104.9833417,39.7002584
-19386,7579,10455,0.0523778989124976,0.0523778989124976,-104.9919734,39.7413127,-104.9915438,39.7409769
-19423,10488,7294,0.0690612889349745,0.0690612889349745,-104.9810224,39.7026345,-104.9810028,39.7020136
-19424,7294,36,0.192538942320683,0.192538942320683,-104.9810028,39.7020136,-104.9809867,39.7002821
-19388,5805,10462,0.081956103355699,0.081956103355699,-104.9911089,39.7406447,-104.9904372,39.7401189
-19389,10462,8768,0.0169741195442503,0.0169741195442503,-104.9904372,39.7401189,-104.9903111,39.740001
-19391,6189,9950,0.0503550239981861,0.0503550239981861,-104.9986323,39.7482873,-104.9990547,39.7486029
-19392,9950,7557,0.0535053183585621,0.0535053183585621,-104.9990547,39.7486029,-104.9994986,39.7489421
-19393,7557,9952,0.0524048074288428,0.0524048074288428,-104.9994986,39.7489421,-104.9999037,39.7492958
-19394,9952,10429,0.0135095901515659,0.0135095901515659,-104.9999037,39.7492958,-105.0000136,39.7493831
-19396,10479,9627,0.0675900234291702,0.0675900234291702,-104.9998192,39.7473335,-105.0003825,39.746907
-19400,3201,6115,0.203275445399412,0.203275445399412,-104.9757389,39.711117,-104.9757389,39.7092889
-19401,6115,1910,0.199619230795837,0.199619230795837,-104.9757389,39.7092889,-104.9757282,39.7074937
-19402,1910,9218,0.202850123370343,0.202850123370343,-104.9757282,39.7074937,-104.9757497,39.7056695
-19403,9218,9216,0.20345414072247,0.20345414072247,-104.9757497,39.7056695,-104.9757563,39.7038398
-19404,9216,7300,0.200631055524996,0.200631055524996,-104.9757563,39.7038398,-104.9757669,39.7020355
-19405,7300,45,0.202263602143448,0.202263602143448,-104.9757669,39.7020355,-104.9757682,39.7002165
-19406,45,3545,0.200651259904661,0.200651259904661,-104.9757682,39.7002165,-104.9757691,39.698412
-19407,3545,4239,0.201942446714699,0.201942446714699,-104.9757691,39.698412,-104.9757777,39.6965959
-19408,4239,1800,0.2054130837632,0.2054130837632,-104.9757777,39.6965959,-104.97579,39.6947486
-19409,1800,8710,0.197537787183869,0.197537787183869,-104.97579,39.6947486,-104.97579,39.6929721
-19410,8710,6527,0.132676718293593,0.132676718293593,-104.97579,39.6929721,-104.9759135,39.6917827
-19695,8145,9492,0.255789380087541,0.255789380087541,-104.9480016,39.7837973,-104.9497268,39.7819174
-19697,10419,10619,0.294868097569216,0.294868097569216,-104.9404266,39.7837714,-104.940416,39.7864232
-19806,10411,7868,0.176421872480467,0.176421872480467,-104.9969604,39.7209341,-104.9969607,39.7193475
-19698,10619,10620,0.511264415982815,0.511264415982815,-104.940416,39.7864232,-104.939871,39.791002
-19699,6199,496,0.110329672635447,0.110329672635447,-104.9404705,39.7816234,-104.9404434,39.7826154
-19700,496,10419,0.128549351195957,0.128549351195957,-104.9404434,39.7826154,-104.9404266,39.7837714
-19704,10623,10624,0.299844457035978,0.299844457035978,-105.0031654,39.7337887,-105.0029777,39.7364814
-19705,10624,10625,0.048946191319968,0.048946191319968,-105.0029777,39.7364814,-105.0033774,39.7367965
-19706,10625,10626,0.0564187161790662,0.0564187161790662,-105.0033774,39.7367965,-105.0040372,39.7367991
-19707,10626,10627,0.261222980592435,0.261222980592435,-105.0040372,39.7367991,-105.0051511,39.7346116
-19717,10626,10634,0.247667737296111,0.247667737296111,-105.0040372,39.7367991,-105.0040521,39.7345718
-19925,10679,9511,0.20648099094332,0.20648099094332,-105.0358012,39.7384625,-105.0358145,39.7403194
-19926,9511,4579,0.132833459370163,0.132833459370163,-105.0358145,39.7403194,-105.0358145,39.741514
-19930,10680,10673,0.208792718350027,0.208792718350027,-105.0375666,39.7384701,-105.0375559,39.7365924
-19931,10673,7131,0.201766496696079,0.201766496696079,-105.0375559,39.7365924,-105.0375424,39.7347779
-19933,626,10681,0.1702021482017,0.1702021482017,-105.0363381,39.7365871,-105.0363564,39.7350565
-19934,5672,10665,0.0500710082270115,0.0500710082270115,-104.997538,39.7179373,-104.9969526,39.7179403
-19935,10665,7218,0.0509007134728753,0.0509007134728753,-104.9969526,39.7179403,-104.9963575,39.7179434
-19937,252,10245,0.178490785331426,0.178490785331426,-104.9994279,39.7320888,-104.9994337,39.733694
-19938,10245,7120,0.17638987203806,0.17638987203806,-104.9994337,39.733694,-104.9994256,39.7352803
-19939,7120,9641,0.177259535907282,0.177259535907282,-104.9994256,39.7352803,-104.9994122,39.7368744
-19944,10675,10682,0.203454780542957,0.203454780542957,-105.041646,39.7366287,-105.0416549,39.7384584
-19945,10682,9518,0.211007495388792,0.211007495388792,-105.0416549,39.7384584,-105.0416701,39.740356
-19946,9518,4583,0.129742461291969,0.129742461291969,-105.0416701,39.740356,-105.0416673,39.7415228
-19948,10646,7221,0.050795229275335,0.050795229275335,-104.9969581,39.7230021,-104.9963642,39.722998
-19949,7221,10672,0.0490058421037179,0.0490058421037179,-104.9963642,39.722998,-104.9957912,39.722999
-19950,10672,4950,0.0520761745786515,0.0520761745786515,-104.9957912,39.722999,-104.9951823,39.723
-19954,10414,5089,0.112638269786332,0.112638269786332,-104.992154,39.7230042,-104.990837,39.7230104
-19956,9520,10683,0.208034746403896,0.208034746403896,-105.0434189,39.740341,-105.0434219,39.7384701
-19992,10649,10664,0.050141841785608,0.050141841785608,-105.0422444,39.7384617,-105.0428308,39.738465
-19993,10664,10683,0.0505455538112256,0.0505455538112256,-105.0428308,39.738465,-105.0434219,39.7384701
-19994,10683,5590,0.0494937724947863,0.0494937724947863,-105.0434219,39.7384701,-105.0440007,39.7384751
-19995,5590,10661,0.0507309659863408,0.0507309659863408,-105.0440007,39.7384751,-105.044594,39.7384771
-19996,10661,7533,0.0505856564507496,0.0505856564507496,-105.044594,39.7384771,-105.0451856,39.7384792
-19997,7533,10689,0.686347942133366,0.686347942133366,-105.0451856,39.7384792,-105.0532125,39.7384977
-19998,8645,2200,0.0278160442123186,0.0278160442123186,-105.0040083,39.7506996,-105.0039004,39.7509356
-20003,2200,10693,0.020138493184414,0.020138493184414,-105.0039004,39.7509356,-105.0040848,39.7508229
-20004,10693,10443,0.00475150856262823,0.00475150856262823,-105.0040848,39.7508229,-105.0041255,39.7507938
-20006,8461,9621,0.0222962026291256,0.0222962026291256,-105.0049189,39.7500632,-105.0046936,39.7501642
-20007,9621,10690,0.0515741214544805,0.0515741214544805,-105.0046936,39.7501642,-105.0042718,39.7504958
-20026,9466,8724,0.0514719719174867,0.0514719719174867,-104.9603865,39.7432158,-104.9597878,39.7432643
-20027,8724,5029,0.0566937822140094,0.0566937822140094,-104.9597878,39.7432643,-104.9591698,39.7434491
-20028,5029,4595,0.0969267875718062,0.0969267875718062,-104.9591698,39.7434491,-104.9581328,39.7438013
-20030,5321,630,0.142142547339574,0.142142547339574,-104.9754804,39.7621615,-104.9743045,39.7630654
-20031,630,2908,0.116052443784823,0.116052443784823,-104.9743045,39.7630654,-104.9733498,39.7638075
-20039,10696,5549,0.959761090863438,0.959761090863438,-104.9925954,39.6807655,-104.9920738,39.6893875
-20040,5549,9172,0.201153438061066,0.201153438061066,-104.9920738,39.6893875,-104.9923108,39.6911873
-20042,140,1484,0.198676673012775,0.198676673012775,-104.9924893,39.6930233,-104.99246,39.6948099
-20043,1484,3760,0.212665318664513,0.212665318664513,-104.99246,39.6948099,-104.9918765,39.696669
-20044,3760,4181,0.394425022611864,0.394425022611864,-104.9918765,39.696669,-104.9925156,39.7001819
-20045,4181,7302,0.250045496408828,0.250045496408828,-104.9925156,39.7001819,-104.9940584,39.7020918
-20046,7302,9078,0.0121023798774685,0.0121023798774685,-104.9940584,39.7020918,-104.9941364,39.7021826
-419,418,419,0.0843359701726921,0.0843359701726921,-104.9449438,39.7443271,-104.94552,39.7449427
-20049,9127,9931,0.188027723664679,0.188027723664679,-104.9983536,39.7098782,-104.9975856,39.7082938
-20051,9189,10417,0.27289630775387,0.27289630775387,-104.9938171,39.6915486,-104.9923056,39.6893875
-20052,10417,10698,0.903351534370563,0.903351534370563,-104.9923056,39.6893875,-104.9926383,39.6812675
-20055,5803,10456,0.063915425232113,0.063915425232113,-104.9916422,39.7401229,-104.9923896,39.7401331
-20056,10456,8278,0.0463525975312068,0.0463525975312068,-104.9923896,39.7401331,-104.9929317,39.740136
-20057,8278,7582,0.0531670184257572,0.0531670184257572,-104.9929317,39.740136,-104.9935535,39.7401388
-20586,10860,10865,0.0197306093936785,0.0197306093936785,-105.02457,39.7611148,-105.024575,39.7609374
-20058,7582,10460,0.0605194201118807,0.0605194201118807,-104.9935535,39.7401388,-104.9942613,39.7401385
-20059,10460,5965,0.08096413889014,0.08096413889014,-104.9942613,39.7401385,-104.9952082,39.7401418
-20060,5965,7403,0.00793698029885246,0.00793698029885246,-104.9952082,39.7401418,-104.995301,39.7401401
-20061,7403,7216,0.100604138655543,0.100604138655543,-104.995301,39.7401401,-104.9964776,39.7401434
-20062,7216,2998,0.041051117053356,0.041051117053356,-104.9964776,39.7401434,-104.9969577,39.7401458
-20064,4930,9632,0.0194691711485179,0.0194691711485179,-104.9981378,39.7401663,-104.998365,39.7401779
-20066,8788,8794,0.107030125953622,0.107030125953622,-104.9835778,39.7400469,-104.9823264,39.7400238
-20067,8794,8875,0.105785558321332,0.105785558321332,-104.9823264,39.7400238,-104.9810892,39.7400264
-20068,8875,7355,0.0541942506273543,0.0541942506273543,-104.9810892,39.7400264,-104.9804554,39.7400222
-20069,7355,8881,0.0482515848497253,0.0482515848497253,-104.9804554,39.7400222,-104.9798911,39.7400184
-20070,8881,7128,0.0482774346717123,0.0482774346717123,-104.9798911,39.7400184,-104.9793265,39.7400224
-20071,7128,9311,0.0491067830497851,0.0491067830497851,-104.9793265,39.7400224,-104.9787522,39.7400264
-20072,9311,9658,0.100701059147573,0.100701059147573,-104.9787522,39.7400264,-104.9775745,39.740019
-20073,9658,5054,0.0949533068688616,0.0949533068688616,-104.9775745,39.740019,-104.9764641,39.7400314
-20074,5054,5041,0.0261633102483298,0.0261633102483298,-104.9764641,39.7400314,-104.9761583,39.7400231
-20075,5041,6318,0.0238469793810048,0.0238469793810048,-104.9761583,39.7400231,-104.9758794,39.7400231
-20077,8004,7999,0.0412811844037432,0.0412811844037432,-104.9752839,39.740019,-104.9748011,39.740019
-20078,7999,5161,0.00972594837361757,0.00972594837361757,-104.9748011,39.740019,-104.9746885,39.7400066
-20079,5161,976,0.0450966381773304,0.0450966381773304,-104.9746885,39.7400066,-104.9741611,39.7400028
-20080,976,9235,0.0690703393173828,0.0690703393173828,-104.9741611,39.7400028,-104.9733535,39.7400168
-20081,9235,8835,0.0284556853366966,0.0284556853366966,-104.9733535,39.7400168,-104.9730207,39.7400163
-20082,8835,7138,0.0744435936983682,0.0744435936983682,-104.9730207,39.7400163,-104.9721501,39.7400093
-20083,7138,7152,0.0242079619729824,0.0242079619729824,-104.9721501,39.7400093,-104.971867,39.7400066
-20084,7152,5018,0.0530487604133438,0.0530487604133438,-104.971867,39.7400066,-104.9712466,39.7400022
-20085,5018,5127,0.027179522018167,0.027179522018167,-104.9712466,39.7400022,-104.9709293,39.7400169
-20086,5127,5120,0.017329383802427,0.017329383802427,-104.9709293,39.7400169,-104.9707273,39.7400042
-20087,5120,9413,0.051025645765313,0.051025645765313,-104.9707273,39.7400042,-104.9701307,39.740015
-20088,9413,4720,0.0442143222009164,0.0442143222009164,-104.9701307,39.740015,-104.9696136,39.7400134
-20089,4720,6788,0.103544897956421,0.103544897956421,-104.9696136,39.7400134,-104.9684027,39.7400015
-20090,6788,7360,0.101885712989061,0.101885712989061,-104.9684027,39.7400015,-104.9672112,39.73999
-20091,7360,5420,0.104686903511504,0.104686903511504,-104.9672112,39.73999,-104.9659869,39.7399811
-20092,5420,8551,0.104297582912284,0.104297582912284,-104.9659869,39.7399811,-104.9647671,39.7399797
-20093,8551,3891,0.113854917229397,0.113854917229397,-104.9647671,39.7399797,-104.9634356,39.7399908
-20094,3891,1021,0.10275177677768,0.10275177677768,-104.9634356,39.7399908,-104.962234,39.7399776
-20095,1021,10069,0.0524825810706004,0.0524825810706004,-104.962234,39.7399776,-104.9616202,39.7399794
-20096,10069,6266,0.0519011168646154,0.0519011168646154,-104.9616202,39.7399794,-104.9610132,39.7399811
-20097,6266,8727,0.107637396904871,0.107637396904871,-104.9610132,39.7399811,-104.9597547,39.7399579
-20098,8727,5027,0.0851589615138914,0.0851589615138914,-104.9597547,39.7399579,-104.9587811,39.7401193
-20099,5027,3339,0.11913667157964,0.11913667157964,-104.9587811,39.7401193,-104.9573922,39.7402049
-20100,3339,7884,0.0947347804724537,0.0947347804724537,-104.9573922,39.7402049,-104.9562845,39.7401863
-20101,7884,7339,0.0992406279882494,0.0992406279882494,-104.9562845,39.7401863,-104.9551239,39.7401771
-20588,10840,3589,0.00659451799404467,0.00659451799404467,-105.0245771,39.760862,-105.0245881,39.7608033
-20102,7339,7978,0.0297388680985265,0.0297388680985265,-104.9551239,39.7401771,-104.9547761,39.7401752
-20103,7978,8546,0.0509861753484279,0.0509861753484279,-104.9547761,39.7401752,-104.9541798,39.7401771
-20105,2065,2068,0.0539613780445048,0.0539613780445048,-104.9536131,39.740176,-104.9529821,39.7401847
-20106,2068,2651,0.0458462130492323,0.0458462130492323,-104.9529821,39.7401847,-104.952446,39.7401771
-20107,2651,2668,0.0527824371940605,0.0527824371940605,-104.952446,39.7401771,-104.9518287,39.740174
-20108,2668,4106,0.0471315276476818,0.0471315276476818,-104.9518287,39.740174,-104.9512775,39.7401701
-20109,4106,4138,0.0531150768123695,0.0531150768123695,-104.9512775,39.7401701,-104.9506563,39.7401717
-20110,4138,6691,0.0513109258939151,0.0513109258939151,-104.9506563,39.7401717,-104.9500562,39.7401702
-20111,6691,6699,0.049849518680298,0.049849518680298,-104.9500562,39.7401702,-104.9494732,39.7401674
-20112,6699,8027,0.0540642003294053,0.0540642003294053,-104.9494732,39.7401674,-104.9488409,39.7401691
-20113,8027,8022,0.0351680439773276,0.0351680439773276,-104.9488409,39.7401691,-104.9484296,39.7401675
-20114,8022,7697,0.0642576699742132,0.0642576699742132,-104.9484296,39.7401675,-104.9476781,39.7401632
-20116,7687,3442,0.0653852338257918,0.0653852338257918,-104.9472834,39.7401592,-104.9465187,39.7401565
-20117,3442,3465,0.0302046503739114,0.0302046503739114,-104.9465187,39.7401565,-104.9461659,39.7401427
-20118,3465,10643,0.044572996690839,0.044572996690839,-104.9461659,39.7401427,-104.9456446,39.7401427
-20119,10643,6010,0.0210253210935206,0.0210253210935206,-104.9456446,39.7401427,-104.9453987,39.7401427
-20120,6010,6022,0.0302819861909932,0.0302819861909932,-104.9453987,39.7401427,-104.9450447,39.7401345
-20121,6022,3877,0.0720170103408001,0.0720170103408001,-104.9450447,39.7401345,-104.9442025,39.7401262
-20122,3877,9699,0.0188604413742797,0.0188604413742797,-104.9442025,39.7401262,-104.9439825,39.7401139
-20123,9699,862,0.0931148831029757,0.0931148831029757,-104.9439825,39.7401139,-104.9428936,39.7401262
-20124,862,7102,0.0867114852734781,0.0867114852734781,-104.9428936,39.7401262,-104.9418797,39.7401097
-20125,7102,10422,0.0971484542236891,0.0971484542236891,-104.9418797,39.7401097,-104.9407436,39.7401208
-20126,10422,8701,0.0148135271633134,0.0148135271633134,-104.9407436,39.7401208,-104.9405708,39.7401304
-20127,8701,8159,0.0903601598115808,0.0903601598115808,-104.9405708,39.7401304,-104.939514,39.7401304
-20128,8159,8147,0.0485272097981868,0.0485272097981868,-104.939514,39.7401304,-104.9389466,39.7401205
-20129,8147,7605,0.046972846594418,0.046972846594418,-104.9389466,39.7401205,-104.9383973,39.7401139
-20130,7605,7256,0.0980906813073136,0.0980906813073136,-104.9383973,39.7401139,-104.9372502,39.7401262
-20131,7256,7592,0.0949493294075893,0.0949493294075893,-104.9372502,39.7401262,-104.93614,39.7401073
-20132,7592,2011,0.0535765472330524,0.0535765472330524,-104.93614,39.7401073,-104.9355134,39.7401073
-20133,2011,9174,0.0440404642371946,0.0440404642371946,-104.9355134,39.7401073,-104.9349984,39.7401007
-20134,9174,10644,0.101018897202585,0.101018897202585,-104.9349984,39.7401007,-104.933817,39.7401097
-20135,10644,2752,0.0964161425505398,0.0964161425505398,-104.933817,39.7401097,-104.9326896,39.7401271
-12318,2500,2501,0.00534847597168918,0.00534847597168918,-105.0073403,39.7545386,-105.0073403,39.7545867
-20137,6988,7015,0.0469900401605619,0.0469900401605619,-104.9320716,39.7401271,-104.9315223,39.7401139
-20138,7015,2275,0.0506564830109395,0.0506564830109395,-104.9315223,39.7401139,-104.9309301,39.7401271
-20139,2275,8216,0.0480971521401402,0.0480971521401402,-104.9309301,39.7401271,-104.9303676,39.7401304
-20140,8216,3600,0.0492447661071067,0.0492447661071067,-104.9303676,39.7401304,-104.9297917,39.7401253
-20141,3600,8213,0.0494471155350359,0.0494471155350359,-104.9297917,39.7401253,-104.9292134,39.7401271
-20142,8213,7515,0.0477024371424333,0.0477024371424333,-104.9292134,39.7401271,-104.9286555,39.7401271
-20143,7515,7526,0.0508405166895622,0.0508405166895622,-104.9286555,39.7401271,-104.9280609,39.7401262
-20144,7526,4566,0.0460266764289813,0.0460266764289813,-104.9280609,39.7401262,-104.9275226,39.7401271
-20145,4566,2124,0.0528615774272691,0.0528615774272691,-104.9275226,39.7401271,-104.9269046,39.7401403
-20146,2124,5990,0.094672374588883,0.094672374588883,-104.9269046,39.7401403,-104.9257974,39.7401337
-20147,5990,7671,0.0990838490707958,0.0990838490707958,-104.9257974,39.7401337,-104.9246387,39.7401205
-20179,10247,9298,0.182738392624498,0.182738392624498,-104.978775,39.7272619,-104.9787693,39.7256185
-20180,9298,6549,0.169619845811395,0.169619845811395,-104.9787693,39.7256185,-104.9787573,39.7240931
-20182,4768,6330,0.178054483343927,0.178054483343927,-104.9787498,39.7224871,-104.9787889,39.7208861
-20183,6330,9308,0.0134883336553362,0.0134883336553362,-104.9787889,39.7208861,-104.9788375,39.7207707
-20148,7671,10702,3.41813541281698,3.41813541281698,-104.9246387,39.7401205,-104.8846622,39.7401611
-20149,425,10112,0.0131850564749253,0.0131850564749253,-105.0219946,39.7404498,-105.0218404,39.7404488
-20186,8247,10155,0.516700602330837,0.516700602330837,-104.963496,39.7883396,-104.9592396,39.7916405
-20187,10155,3322,0.265485774934506,0.265485774934506,-104.9592396,39.7916405,-104.9570057,39.7933001
-20188,3322,10706,0.131436234594263,0.131436234594263,-104.9570057,39.7933001,-104.956777,39.794469
-20189,10139,10705,0.06021736831636,0.06021736831636,-104.9644686,39.7876212,-104.9639599,39.787996
-20195,8510,10708,0.0176825351734809,0.0176825351734809,-104.9964255,39.7486125,-104.9962843,39.7487287
-20197,10708,8571,0.116072750239478,0.116072750239478,-104.9962843,39.7487287,-104.9953197,39.7494633
-20199,5783,8281,0.147480988666932,0.147480988666932,-104.9941411,39.7504097,-104.9929142,39.7513421
-20200,8281,8293,0.145093730312322,0.145093730312322,-104.9929142,39.7513421,-104.9917306,39.7522773
-20201,8293,7900,0.146177040292133,0.146177040292133,-104.9917306,39.7522773,-104.9905138,39.7532009
-20202,7900,8854,0.145687210047232,0.145687210047232,-104.9905138,39.7532009,-104.9893092,39.7541277
-20203,8854,9321,0.148905174298523,0.148905174298523,-104.9893092,39.7541277,-104.9880818,39.7550779
-20206,8401,5454,0.142235461954992,0.142235461954992,-104.9868716,39.7559951,-104.9857094,39.7569105
-20207,5454,8504,0.00556744232684514,0.00556744232684514,-104.9857094,39.7569105,-104.9856564,39.7569396
-20208,8504,8047,0.149428079475645,0.149428079475645,-104.9856564,39.7569396,-104.9844325,39.7578991
-20209,8047,6575,0.142472133135735,0.142472133135735,-104.9844325,39.7578991,-104.9832626,39.7588117
-20210,6575,4456,0.146389787991077,0.146389787991077,-104.9832626,39.7588117,-104.9820633,39.7597515
-20211,4456,5504,0.146266130363807,0.146266130363807,-104.9820633,39.7597515,-104.9808533,39.7606816
-20264,10722,5574,0.00764881869126048,0.00764881869126048,-105.044096,39.7739592,-105.0440065,39.7739591
-20317,10737,10730,0.156440332314784,0.156440332314784,-105.0250397,39.7599942,-105.0250776,39.7585876
-20319,10738,10739,0.00846222116823016,0.00846222116823016,-105.0235235,39.7590488,-105.0234882,39.7589777
-20570,10858,10856,0.341000703608857,0.341000703608857,-105.0190584,39.7597333,-105.0218184,39.7619476
-20572,10859,10860,0.0100014874858022,0.0100014874858022,-105.024453,39.7611158,-105.02457,39.7611148
-20784,10945,10292,0.00633905697400916,0.00633905697400916,-105.0279522,39.7613862,-105.0280151,39.7614164
-321,153,154,0.039197729386179,0.039197729386179,-104.9572293,39.7448211,-104.9570001,39.7445158
-18675,1570,2751,0.10523982327052,0.10523982327052,-105.0399911,39.7245463,-105.0400126,39.7254926
-20591,10795,10802,0.0763744143850755,0.0763744143850755,-105.0227368,39.7610963,-105.0218433,39.761098
-20216,632,6405,0.146056665643101,0.146056665643101,-104.976027,39.7644195,-104.9748213,39.7653503
-20217,6405,4277,0.144766275996567,0.144766275996567,-104.9748213,39.7653503,-104.9736331,39.7662781
-20218,4277,2913,0.0337236702585465,0.0337236702585465,-104.9736331,39.7662781,-104.9733488,39.7664884
-20250,9384,8111,0.200921327710714,0.200921327710714,-105.0451339,39.7765688,-105.0451206,39.7783757
-20251,8111,10328,0.204798818746646,0.204798818746646,-105.0451206,39.7783757,-105.045121,39.7802175
diff --git a/src/bd_astar/tester/ways2data b/src/bd_astar/tester/ways2data
deleted file mode 100755
index f9340cb..0000000
--- a/src/bd_astar/tester/ways2data
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/usr/bin/perl -w
-use strict;
-
-sub Usage {
-    die "Usage: ways2data tab ways.txt\n";
-}
-
-my $tab   = shift @ARGV || Usage();
-my $wfile = shift @ARGV || Usage();
-
-open(IN, $wfile) || die "Failed to open '$wfile' for read : $!\n";
-
-print <<EOF;
-
-drop table if exists $tab cascade;
-create table $tab (
-    id integer not null primary key,
-    source integer,
-    target integer,
-    cost float8,
-    reverse_cost float8,
-    s_x float8,
-    s_y float8,
-    t_x float8,
-    t_y float8
-);
-
-copy table $tab (id, source, target, cost, reverse_cost, s_x, s_y, t_x, t_y) from stdin;
-EOF
-
-while (my $x = <IN>) {
-    $x =~ s/,/\t/g;
-    print $x;
-}
-print "\\.\n";
-
-close(IN);
diff --git a/src/bd_dijkstra/doc/doc-bdDijkstra.queries b/src/bd_dijkstra/doc/doc-bdDijkstra.queries
deleted file mode 100644
index c37c49a..0000000
--- a/src/bd_dijkstra/doc/doc-bdDijkstra.queries
+++ /dev/null
@@ -1,35 +0,0 @@
-BEGIN;
-BEGIN
-SET client_min_messages TO NOTICE;
-SET
---q1
-SELECT * FROM pgr_bdDijkstra(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost FROM edge_table',
-    2, 3, false, false);
-NOTICE:  Deprecated Signature of pgr_bdDijkstra
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |   2 |   4 |    1
-   1 |   5 |   8 |    1
-   2 |   6 |   5 |    1
-   3 |   3 |  -1 |    0
-(4 rows)
-
---q2
-SELECT * FROM pgr_bdDijkstra(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
-    2, 3, true, true);
-NOTICE:  Deprecated Signature of pgr_bdDijkstra
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |   2 |   4 |    1
-   1 |   5 |   8 |    1
-   2 |   6 |   9 |    1
-   3 |   9 |  16 |    1
-   4 |   4 |   3 |    1
-   5 |   3 |  -1 |    0
-(6 rows)
-
---q3
-ROLLBACK;
-ROLLBACK
diff --git a/src/bd_dijkstra/sql/CMakeLists.txt b/src/bd_dijkstra/sql/CMakeLists.txt
deleted file mode 100644
index b49de6f..0000000
--- a/src/bd_dijkstra/sql/CMakeLists.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-# Append in local scope
-list(APPEND PACKAGE_SQL_FILES
-    ${CMAKE_CURRENT_SOURCE_DIR}/bdDijkstra-v2.sql
-    )
-
-# set in parent scope
-set(PACKAGE_SQL_FILES "${PACKAGE_SQL_FILES}" PARENT_SCOPE)
-
diff --git a/src/bd_dijkstra/sql/bdDijkstra-v2.sql b/src/bd_dijkstra/sql/bdDijkstra-v2.sql
deleted file mode 100644
index 2a66df3..0000000
--- a/src/bd_dijkstra/sql/bdDijkstra-v2.sql
+++ /dev/null
@@ -1,53 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2016 pgRouting developers
-Mail: project at pgrouting.org
-
-Copyright (c) 2016 Celia Virginia Vergara Castillo
-mail: vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-
--- V2 signature
-CREATE OR REPLACE FUNCTION pgr_bdDijkstra(edges_sql TEXT, start_vid INTEGER, end_vid INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
-RETURNS SETOF pgr_costresult AS
-$BODY$
-DECLARE
-has_reverse BOOLEAN;
-sql TEXT;
-BEGIN
-    RAISE NOTICE 'Deprecated Signature of pgr_bdDijkstra';
-    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
-    sql = edges_sql;
-    IF (has_reverse != has_rcost) THEN
-        IF (has_reverse) THEN
-            sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
-        ELSE
-            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
-        END IF;
-    END IF;
-
-    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
-    FROM _pgr_bdDijkstra(sql, start_vid, end_vid, directed, false);
-  END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
diff --git a/src/bd_dijkstra/test/bd_dijkstra-any-00.data b/src/bd_dijkstra/test/bd_dijkstra-any-00.data
deleted file mode 100644
index 2f320cd..0000000
--- a/src/bd_dijkstra/test/bd_dijkstra-any-00.data
+++ /dev/null
@@ -1,17280 +0,0 @@
-
-drop table if exists bdd_ways cascade;
-create table bdd_ways (
-    id integer not null primary key,
-    source integer,
-    target integer,
-    cost float8,
-    reverse_cost float8
-);
-
-copy bdd_ways (id, source, target, cost, reverse_cost) from stdin;
-18129	10271	10265	0.407629542119694	0.407629542119694
-14822	9426	3606	0.0603186413824967	0.0603186413824967
-16176	5812	7719	0.198519002375015	0.198519002375015
-16177	7719	9841	1.21182332618964	1.21182332618964
-16178	137	1482	0.199034161669709	0.199034161669709
-16179	1482	3758	0.20606858724026	0.20606858724026
-16217	7903	7844	0.0651768093591436	0.0651768093591436
-16218	7844	6725	0.105799860394335	0.105799860394335
-15793	2298	2322	0.00529554982932783	0.00529554982932783
-14854	9432	9433	0.00987428384236239	0.00987428384236239
-19732	4490	10638	0.0159213769578026	0.0159213769578026
-19734	10639	10640	0.115517684408379	0.115517684408379
-19736	10643	5491	0.200611432022914	0.200611432022914
-19737	5491	9472	0.173586542348893	0.173586542348893
-16211	7730	9848	1.41098736584228	1.41098736584228
-19766	8868	3770	0.15451665559366	0.15451665559366
-19767	3770	10249	0.199225315153312	0.199225315153312
-19769	9471	4895	0.183643472400882	0.183643472400882
-19770	4895	9419	0.162738965694015	0.162738965694015
-16694	9991	9992	0.00824975577533471	0.00824975577533471
-16253	9862	7741	0.405750287416545	0.405750287416545
-16254	7741	5836	0.199719306282583	0.199719306282583
-16255	5836	9863	0.20307644815808	0.20307644815808
-445	449	450	0.199450473576153	0.199450473576153
-20724	9339	9399	0.00989025456720925	0.00989025456720925
-20725	9399	10912	0.0075300269970097	0.0075300269970097
-20727	10911	9342	0.00831469236711343	0.00831469236711343
-18403	7778	10286	0.0505898966958872	0.0505898966958872
-273	283	284	0.0964719650645454	0.0964719650645454
-275	285	286	0.0574345831683482	0.0574345831683482
-276	286	287	0.00381671595135443	0.00381671595135443
-277	288	286	0.0749798421316384	0.0749798421316384
-267	277	278	0.026080790494895	0.026080790494895
-19535	10550	10547	0.0727126892007364	0.0727126892007364
-240	247	248	0.0772679392991742	0.0772679392991742
-242	249	250	0.0969982430766615	0.0969982430766615
-19500	10527	10528	0.0180139213913488	0.0180139213913488
-16008	9778	9779	0.0944640625920965	0.0944640625920965
-15463	8882	1361	0.00984596954833585	0.00984596954833585
-11520	658	713	0.150268576052698	0.150268576052698
-270	280	281	0.0978981798906238	0.0978981798906238
-16247	7743	5838	0.199906773104335	0.199906773104335
-505	499	500	0.0224810261782308	0.0224810261782308
-19508	10448	10534	0.00643702567875165	0.00643702567875165
-16434	9896	3281	0.0340559329983669	0.0340559329983669
-19458	10492	10506	0.00750267115612711	0.00750267115612711
-16700	9995	9996	0.0459960991438913	0.0459960991438913
-17222	5174	8210	0.200775724104805	0.200775724104805
-17224	4240	7299	0.0119914556826953	0.0119914556826953
-345	346	347	0.130802492327731	0.130802492327731
-347	348	349	0.135557185972568	0.135557185972568
-348	349	350	0.136845365159024	0.136845365159024
-355	357	358	0.388256388951567	0.388256388951567
-356	358	359	0.410677079496879	0.410677079496879
-18458	10297	6395	0.0910083144293941	0.0910083144293941
-18424	8333	10290	0.150248967925867	0.150248967925867
-18426	8331	7848	0.20002866768649	0.20002866768649
-16185	9843	7721	1.49406009526399	1.49406009526399
-18230	2552	10281	0.408042509102773	0.408042509102773
-568	561	562	0.0238735645312088	0.0238735645312088
-509	503	504	0.0378269387886271	0.0378269387886271
-510	504	505	0.131422581642966	0.131422581642966
-511	505	506	0.13298824931129	0.13298824931129
-512	506	507	0.0469418788297666	0.0469418788297666
-513	507	508	0.00800396830514923	0.00800396830514923
-514	508	509	0.189986229051577	0.189986229051577
-521	516	517	0.0463139600038384	0.0463139600038384
-12956	1507	1599	0.174395269936236	0.174395269936236
-19854	9521	10661	0.207011877470032	0.207011877470032
-11687	773	774	0.0194846935551434	0.0194846935551434
-20577	10865	10866	0.00985918265048112	0.00985918265048112
-15197	3400	9212	0.0496967641825266	0.0496967641825266
-3594	3445	1174	0.142771364790872	0.142771364790872
-3595	1174	897	0.139794356108886	0.139794356108886
-19561	10564	10565	0.0196154846965349	0.0196154846965349
-16270	6159	9867	0.121531820960243	0.121531820960243
-11805	8417	8418	0.134805848745127	0.134805848745127
-18434	8357	10291	0.154597709113849	0.154597709113849
-15269	8698	8458	0.108561000163296	0.108561000163296
-16600	3169	9952	0.143650464740249	0.143650464740249
-971	982	983	0.153004941982632	0.153004941982632
-19467	10511	10512	0.0226507231527583	0.0226507231527583
-19468	10512	10513	0.0195038602641882	0.0195038602641882
-16605	9954	9955	0.0548421550272179	0.0548421550272179
-16733	5003	10004	0.0399314883998924	0.0399314883998924
-16677	9979	9980	0.023537846703909	0.023537846703909
-15811	9714	9715	0.0297752747528411	0.0297752747528411
-12949	1304	1330	0.0581647037716416	0.0581647037716416
-11964	5499	7073	0.148280923478534	0.148280923478534
-18453	9427	4296	0.104102993198957	0.104102993198957
-20603	10836	10820	0.0118777812250081	0.0118777812250081
-20604	10820	10827	0.0109415807816948	0.0109415807816948
-318	326	327	0.287313248528131	0.287313248528131
-919	933	934	0.0476774715690845	0.0476774715690845
-920	934	935	0.0499176342652801	0.0499176342652801
-921	935	936	0.0512339711733563	0.0512339711733563
-12002	6577	5507	0.29282736629382	0.29282736629382
-2397	2072	2388	0.0939943538292093	0.0939943538292093
-17363	7241	3255	0.194151227318962	0.194151227318962
-3612	954	3458	0.174654702147255	0.174654702147255
-3613	3458	3459	0.161855899930502	0.161855899930502
-3614	3459	3460	0.184505780617563	0.184505780617563
-3615	3460	3461	0.174076203888655	0.174076203888655
-12954	1477	1478	0.162422090556836	0.162422090556836
-16746	6830	10008	0.0662012224002346	0.0662012224002346
-19537	10551	4704	0.0179029738053875	0.0179029738053875
-16747	10008	3664	0.0562861796352498	0.0562861796352498
-12008	8513	4459	0.0575373844976813	0.0575373844976813
-12009	4459	5508	0.146438493557302	0.146438493557302
-11575	1594	1595	0.149695612752929	0.149695612752929
-18383	8920	8960	0.0494721849144557	0.0494721849144557
-19652	10605	10528	0.00763160148090486	0.00763160148090486
-1706	1727	204	0.0785826238386085	0.0785826238386085
-11578	1595	1767	0.0524448615311058	0.0524448615311058
-351	353	354	0.0783794642996216	0.0783794642996216
-16749	53	10005	0.150239248303575	0.150239248303575
-20036	7837	816	0.140917505829302	0.140917505829302
-20637	10876	10878	0.031770930566573	0.031770930566573
-16183	1702	133	0.201630131124766	0.201630131124766
-16753	6829	10009	0.0465845830870589	0.0465845830870589
-18737	2600	1858	0.180581857071932	0.180581857071932
-14686	1987	2318	0.198940266900504	0.198940266900504
-1928	1941	1942	0.123855031305308	0.123855031305308
-18741	8070	7651	0.262731372814963	0.262731372814963
-14685	1546	1987	0.20778014181537	0.20778014181537
-12334	8656	8657	0.0212762444700433	0.0212762444700433
-18873	7825	7987	0.015602795644656	0.015602795644656
-12352	8668	8669	0.00723037090372959	0.00723037090372959
-18669	9460	1818	0.156714358591483	0.156714358591483
-18185	5799	6059	0.199739960113703	0.199739960113703
-18862	9131	9178	0.0368320416365925	0.0368320416365925
-16606	9955	7890	0.148662937956551	0.148662937956551
-12197	424	2296	0.092590985158808	0.092590985158808
-328	329	330	0.0301965908229701	0.0301965908229701
-329	330	331	0.00308879550687601	0.00308879550687601
-15797	2324	2349	0.0197202421063636	0.0197202421063636
-16293	2377	2409	0.0804076908745063	0.0804076908745063
-17370	3254	7297	0.216186214827155	0.216186214827155
-18195	8107	9376	0.183361036437535	0.183361036437535
-17371	7297	40	0.193403542976089	0.193403542976089
-389	391	392	0.10291889633356	0.10291889633356
-18880	1927	7249	0.20098536077548	0.20098536077548
-12842	2658	461	0.235239531220745	0.235239531220745
-18457	7020	10297	0.095413640203737	0.095413640203737
-14684	1545	1546	0.195783826439231	0.195783826439231
-16302	2721	2722	0.0283898956128369	0.0283898956128369
-18674	1569	1570	0.17732367890712	0.17732367890712
-19651	10604	10605	0.00569731320684084	0.00569731320684084
-12365	8674	8675	0.00395306971093599	0.00395306971093599
-18885	80	7308	0.203338584644882	0.203338584644882
-18462	9528	9293	0.135413968590027	0.135413968590027
-17073	8133	10070	0.277242310734424	0.277242310734424
-18887	3267	7247	0.200784680682105	0.200784680682105
-16306	2851	2852	0.0109060813984903	0.0109060813984903
-18803	8953	10352	0.0713096059986916	0.0713096059986916
-12360	8670	8671	0.0527368404826503	0.0527368404826503
-19915	8054	8774	0.178101620538173	0.178101620538173
-19027	10418	8995	0.822032321709027	0.822032321709027
-16313	2929	2636	0.0522503580010493	0.0522503580010493
-18123	10266	7936	0.0422734852594549	0.0422734852594549
-11696	1005	1006	0.0249036708868205	0.0249036708868205
-19031	9820	9825	0.141867922710985	0.141867922710985
-17076	828	3568	0.137092229325187	0.137092229325187
-20641	10879	4802	0.0562973461233787	0.0562973461233787
-19035	9497	9495	0.0285635113459611	0.0285635113459611
-2071	2074	2075	0.135495947312548	0.135495947312548
-15936	9757	6254	0.229061306545615	0.229061306545615
-3229	3143	3144	0.198651066611581	0.198651066611581
-3231	3145	1186	0.167106782855451	0.167106782855451
-20275	10725	6473	0.00777253007071417	0.00777253007071417
-20276	6473	10726	0.00774087009692378	0.00774087009692378
-20277	10710	5573	0.00807679050419555	0.00807679050419555
-16287	1363	2160	0.150908240771596	0.150908240771596
-18901	10379	10378	0.00446883067059111	0.00446883067059111
-18181	6056	4071	0.17853957848987	0.17853957848987
-16288	2160	2273	0.031688963076218	0.031688963076218
-15792	2131	2298	0.0834787229201596	0.0834787229201596
-17362	1905	7241	0.196305657515643	0.196305657515643
-20796	10943	7661	0.00258138052005919	0.00258138052005919
-20797	7661	10931	0.00256438171506516	0.00256438171506516
-17367	3197	6112	0.203543642625323	0.203543642625323
-19564	10566	10567	0.0877791462313442	0.0877791462313442
-17839	9059	10189	0.106477983280495	0.106477983280495
-17124	42	4240	0.19030237977338	0.19030237977338
-15941	9758	9759	0.0631588158295344	0.0631588158295344
-17151	4781	4823	0.202239291799058	0.202239291799058
-14110	421	3623	0.253988429085779	0.253988429085779
-20309	10730	10731	0.0277808040232953	0.0277808040232953
-19606	10584	10500	0.00674103787689334	0.00674103787689334
-18677	2800	2801	0.105225983369234	0.105225983369234
-17096	3720	3721	0.196415457175175	0.196415457175175
-19914	6599	8054	0.176409123849899	0.176409123849899
-14113	3767	3768	0.109524379066099	0.109524379066099
-19575	10571	10572	0.0878577106463745	0.0878577106463745
-19578	7458	10573	0.00838425457343401	0.00838425457343401
-13363	6192	9050	0.200728781748151	0.200728781748151
-18684	3608	1316	0.176123680044276	0.176123680044276
-16406	9888	9885	0.103994018141439	0.103994018141439
-20348	10747	10734	0.124798183375822	0.124798183375822
-13367	487	9053	0.0916792010447841	0.0916792010447841
-17112	3776	3932	0.0318567386044335	0.0318567386044335
-18472	7703	9005	0.191779872148763	0.191779872148763
-13566	4	3088	0.053682748576131	0.053682748576131
-14690	2868	3129	0.152693011202245	0.152693011202245
-19632	10519	10594	0.0691883113691504	0.0691883113691504
-16442	9898	9900	0.0593229160576478	0.0593229160576478
-19557	10561	10562	0.0114115661676901	0.0114115661676901
-17140	3200	3089	0.200962427212495	0.200962427212495
-19588	10578	7459	0.00830641959761081	0.00830641959761081
-19590	10509	10579	0.0688000441577074	0.0688000441577074
-4371	4093	4094	0.0474398468296831	0.0474398468296831
-14821	4531	9426	0.131844452515128	0.131844452515128
-20313	10734	10735	0.135778003167023	0.135778003167023
-16512	8896	9922	0.103245634213484	0.103245634213484
-19627	10592	10501	0.0068017037739497	0.0068017037739497
-3432	3319	3320	0.201627360859163	0.201627360859163
-3631	1572	3475	0.135693159195378	0.135693159195378
-3632	3475	3476	0.119283891700122	0.119283891700122
-3634	3211	3477	0.201273972346718	0.201273972346718
-3635	3477	1922	0.201175175309244	0.201175175309244
-17122	4176	3542	0.20232729922556	0.20232729922556
-16444	9901	9902	0.179094898504736	0.179094898504736
-20287	9383	6472	0.201518688053588	0.201518688053588
-20014	8858	10180	0.0735203760297937	0.0735203760297937
-19233	10457	10420	0.0372086096742178	0.0372086096742178
-4657	4299	3840	0.0473685540434106	0.0473685540434106
-14125	3659	3925	0.129261803351535	0.129261803351535
-3623	3469	3470	0.140706278566204	0.140706278566204
-18908	10386	10387	0.0302347602157808	0.0302347602157808
-15943	9760	8085	0.0293664602336856	0.0293664602336856
-18142	10269	6300	0.0570177692907992	0.0570177692907992
-17020	10057	10058	0.15155359133236	0.15155359133236
-17158	5010	5011	0.0757362739800239	0.0757362739800239
-16649	9960	9968	0.0812055546813917	0.0812055546813917
-17022	10055	10058	0.0158274438461504	0.0158274438461504
-20617	10793	10829	0.0486626332146345	0.0486626332146345
-17292	7745	7192	0.403926945097788	0.403926945097788
-17953	8781	10225	0.0170107340919314	0.0170107340919314
-17142	4509	4616	0.202021015829292	0.202021015829292
-14706	5161	5162	0.0515278311632085	0.0515278311632085
-17293	7192	8754	0.202354446551741	0.202354446551741
-16653	9971	9972	0.0159150831985239	0.0159150831985239
-17955	10229	10228	0.0205875980561605	0.0205875980561605
-16775	9905	10011	0.0628512846047373	0.0628512846047373
-20430	10790	10791	0.0319464035455711	0.0319464035455711
-17144	4683	4684	0.183413882011105	0.183413882011105
-17482	367	368	0.0073956069596753	0.0073956069596753
-17483	368	4274	0.0740383655738795	0.0740383655738795
-18131	6045	4102	0.143663826029319	0.143663826029319
-17166	3547	48	0.197940166378652	0.197940166378652
-17957	10231	10232	0.0468160398694911	0.0468160398694911
-19584	10563	10576	0.0699872416467849	0.0699872416467849
-19587	10577	10578	0.0879343964012276	0.0879343964012276
-16540	7834	812	0.139228180638449	0.139228180638449
-20323	10742	10732	0.00891011779971553	0.00891011779971553
-14118	3946	4047	0.0370997345222532	0.0370997345222532
-20325	10743	10744	0.00292597509729593	0.00292597509729593
-17681	9050	9814	0.396292789359983	0.396292789359983
-17683	10165	9814	0.392184725428778	0.392184725428778
-17303	3516	4258	0.201418622589808	0.201418622589808
-17690	6173	6191	0.0979652724466413	0.0979652724466413
-17305	8744	8715	0.198903931890441	0.198903931890441
-19815	6602	8057	0.177734109816075	0.177734109816075
-20432	10754	10792	0.00161805170064806	0.00161805170064806
-5752	4838	5081	0.0155515271366432	0.0155515271366432
-14703	5104	5105	0.188886837572701	0.188886837572701
-19833	10653	10654	0.205572346227123	0.205572346227123
-4807	4413	4414	0.0998668735468864	0.0998668735468864
-3650	3488	3106	0.174737901377497	0.174737901377497
-3651	3106	3491	0.194747174928978	0.194747174928978
-17379	5746	5747	0.00818765310677506	0.00818765310677506
-20468	10818	10755	0.173765546097308	0.173765546097308
-17164	1802	4242	0.207580745712203	0.207580745712203
-6015	5267	5268	0.103281094663511	0.103281094663511
-18137	10263	10272	0.406284221439373	0.406284221439373
-17291	10085	7745	0.543012306463268	0.543012306463268
-14709	5330	4870	0.190973371939833	0.190973371939833
-18138	4093	6038	0.184675507720467	0.184675507720467
-16651	9969	9970	0.100708681464822	0.100708681464822
-14710	4870	2220	0.162414391352976	0.162414391352976
-18505	6386	17	0.132879414135856	0.132879414135856
-14727	6220	6303	0.0511187399227223	0.0511187399227223
-17176	5390	5408	0.208329703574267	0.208329703574267
-20791	8358	10898	0.00761490800516594	0.00761490800516594
-17146	1801	4241	0.206257539278646	0.206257539278646
-14731	6303	5467	0.125799145673022	0.125799145673022
-18536	5557	10309	0.366989977501724	0.366989977501724
-14723	6016	5469	0.171433952660857	0.171433952660857
-18516	2412	10295	0.0120882825664803	0.0120882825664803
-17153	1911	4839	0.199025256937054	0.199025256937054
-17154	4839	3202	0.202009935716231	0.202009935716231
-18288	6762	6873	0.146634632629247	0.146634632629247
-20338	10735	10738	0.035049164748108	0.035049164748108
-18690	5770	5771	0.102556159708994	0.102556159708994
-20424	10785	10786	0.0731561229415083	0.0731561229415083
-5740	1710	5071	0.202613094112382	0.202613094112382
-14744	2216	4866	0.159742631617364	0.159742631617364
-18148	6033	4087	0.198416361234407	0.198416361234407
-17476	4654	473	0.0704097319033273	0.0704097319033273
-18150	4100	6044	0.175955927487578	0.175955927487578
-6851	5860	5861	0.109631940187014	0.109631940187014
-14841	7164	7777	0.0983349446501409	0.0983349446501409
-18242	6768	3993	0.201258062688176	0.201258062688176
-18273	6645	6666	0.202152498738845	0.202152498738845
-20386	10770	10771	0.0535943445752728	0.0535943445752728
-6983	5958	5959	0.149650557500517	0.149650557500517
-18306	3982	7041	0.200503190670894	0.200503190670894
-20438	10796	10797	0.0670860233753639	0.0670860233753639
-20500	10838	10824	0.0121125751150814	0.0121125751150814
-14725	977	5162	0.0458445478179373	0.0458445478179373
-6627	5707	1851	0.181903999460801	0.181903999460801
-3671	3508	3509	0.00436333612190551	0.00436333612190551
-3672	3509	3510	0.046781667512879	0.046781667512879
-7657	3346	6356	0.257422789129267	0.257422789129267
-14872	3240	5733	0.139141273161543	0.139141273161543
-18469	9138	10300	0.19595637710121	0.19595637710121
-18266	1691	6545	0.203809181046432	0.203809181046432
-18272	6629	6645	0.186774688365716	0.186774688365716
-8163	6669	2301	0.106319016804013	0.106319016804013
-14130	9280	9279	0.186364690747119	0.186364690747119
-14771	2209	923	0.186974313150198	0.186974313150198
-18247	9377	8108	0.184107753412847	0.184107753412847
-18704	7871	4059	0.176577842625336	0.176577842625336
-15923	9752	9072	0.0836347230210634	0.0836347230210634
-18541	7538	8363	0.0639425794382817	0.0639425794382817
-14134	509	9280	0.0291273215905741	0.0291273215905741
-15926	498	9102	0.0623752088587868	0.0623752088587868
-11651	8350	4542	0.134464503460642	0.134464503460642
-18291	6752	3975	0.201306126180051	0.201306126180051
-14752	5933	6903	0.0776419963986988	0.0776419963986988
-15930	9755	8063	0.0157417186886108	0.0157417186886108
-8622	3936	5625	0.097083190357132	0.097083190357132
-14891	9021	8103	0.0999072642817978	0.0999072642817978
-11386	8241	8242	0.105664996309114	0.105664996309114
-11647	7709	8347	0.0834163322393992	0.0834163322393992
-12254	8618	8619	0.0216515691565663	0.0216515691565663
-20225	8757	10713	0.181625832679021	0.181625832679021
-11373	437	8225	0.0125774855889878	0.0125774855889878
-20018	6572	4453	0.146908325275574	0.146908325275574
-20512	10063	10060	0.007549583111055	0.007549583111055
-12048	8527	8528	0.0740401240439702	0.0740401240439702
-14785	7957	5458	0.175576789379919	0.175576789379919
-12271	8518	8628	0.0787132719056346	0.0787132719056346
-11383	8239	8240	0.0842941433278933	0.0842941433278933
-11370	7971	7972	0.0117965527041302	0.0117965527041302
-11414	7984	7985	0.287379755335746	0.287379755335746
-11432	415	8254	0.452015989776023	0.452015989776023
-20350	10730	2968	0.0120941619304981	0.0120941619304981
-8748	5336	6979	0.175571360985687	0.175571360985687
-3691	3527	3528	0.0472108481996503	0.0472108481996503
-3692	3528	2737	0.0483230367668469	0.0483230367668469
-3697	3532	3533	0.0559788343200402	0.0559788343200402
-15221	3833	8055	0.052921136155694	0.052921136155694
-12311	8645	8476	0.144977480276504	0.144977480276504
-12312	8476	8646	0.198472144343311	0.198472144343311
-12314	8643	8559	0.0228329493898265	0.0228329493898265
-20367	10748	10749	0.0037547184046713	0.0037547184046713
-9843	7548	7549	0.124919366653633	0.124919366653633
-12301	4845	8524	0.0473127526043962	0.0473127526043962
-18331	7594	6751	0.14027973854483	0.14027973854483
-11791	8037	2687	0.147733787935878	0.147733787935878
-15865	8762	8763	0.0396940145175954	0.0396940145175954
-20529	10029	10846	0.0100359682174695	0.0100359682174695
-17959	6241	5194	0.169083036600962	0.169083036600962
-18370	6889	5250	0.0518724586298984	0.0518724586298984
-15225	8180	5297	0.041720314716376	0.041720314716376
-9071	2781	7147	0.103689348353689	0.103689348353689
-3710	3546	1524	0.0515313284334221	0.0515313284334221
-20305	10728	8110	0.168482747904973	0.168482747904973
-3711	1524	3547	0.0494425170647519	0.0494425170647519
-14739	6538	6607	0.183986331427456	0.183986331427456
-11372	290	437	0.0112130207438012	0.0112130207438012
-18381	8535	8919	0.0499954488007408	0.0499954488007408
-12246	8615	4817	0.146110905108578	0.146110905108578
-11425	8251	8078	0.7456254172446	0.7456254172446
-12247	4817	5788	0.143910603528138	0.143910603528138
-12818	299	8256	0.476082599329394	0.476082599329394
-20410	8976	9207	0.0123297683183119	0.0123297683183119
-12263	8621	8622	0.00671006625102598	0.00671006625102598
-11559	8319	7714	0.15000222129108	0.15000222129108
-15229	8334	8335	0.02937581800825	0.02937581800825
-18377	6069	2549	0.201785565265125	0.201785565265125
-11447	387	8258	0.356209179582772	0.356209179582772
-11812	1881	8316	0.0255940628377938	0.0255940628377938
-14781	921	2207	0.190721648601815	0.190721648601815
-20233	10711	10715	0.00692211182471866	0.00692211182471866
-20363	9209	8991	0.0223079019168015	0.0223079019168015
-18388	8990	9001	0.0110856339057274	0.0110856339057274
-20651	10033	10881	0.0461798387778834	0.0461798387778834
-13366	9052	487	0.0981014313599177	0.0981014313599177
-12303	8639	8640	0.0320591977276875	0.0320591977276875
-20243	10716	10713	0.0141769281388351	0.0141769281388351
-14749	4864	2214	0.160302668775638	0.160302668775638
-13468	309	9094	0.0506545738820493	0.0506545738820493
-18336	1689	7624	0.203108569942922	0.203108569942922
-12937	1303	1970	0.0130832107015757	0.0130832107015757
-20525	10839	1286	0.00844906120646156	0.00844906120646156
-10918	8035	5970	0.0219813767800627	0.0219813767800627
-14913	7600	2016	0.104505986927597	0.104505986927597
-20351	2968	10750	0.0147633294839236	0.0147633294839236
-15880	8763	8762	0.0396940145175954	0.0396940145175954
-20353	9401	9336	0.00949287140929792	0.00949287140929792
-12244	8613	8614	0.00356038865266788	0.00356038865266788
-11216	8164	8165	0.0796169077304663	0.0796169077304663
-14132	9279	507	0.0225847659450503	0.0225847659450503
-15875	8940	8978	0.0300860996423522	0.0300860996423522
-11429	8253	319	0.299890155674121	0.299890155674121
-20371	2707	10756	0.00655605333712087	0.00655605333712087
-14677	3794	9330	0.199283554137764	0.199283554137764
-18476	4295	2411	0.100910451832155	0.100910451832155
-18478	5542	9039	0.101169435731023	0.101169435731023
-11770	3014	8406	0.0500338703103734	0.0500338703103734
-11823	8421	8424	0.377719915283211	0.377719915283211
-10669	7915	6847	0.0947158385157811	0.0947158385157811
-3731	3565	3566	0.0486546976993217	0.0486546976993217
-3732	3566	3567	0.109486664803565	0.109486664803565
-3733	3567	1037	0.105564006595596	0.105564006595596
-11897	8466	8467	0.103343928827087	0.103343928827087
-11947	397	8496	0.0965081758273934	0.0965081758273934
-18380	8494	8535	0.0492964457876769	0.0492964457876769
-20364	8991	10755	0.00786332111355482	0.00786332111355482
-12162	8315	8569	0.02262255215678	0.02262255215678
-12218	8594	2290	0.0213925904868369	0.0213925904868369
-14931	3354	2767	0.0942765011393086	0.0942765011393086
-18498	9212	9220	0.133514882064815	0.133514882064815
-20706	9190	10885	0.00984120017613085	0.00984120017613085
-12373	8677	8678	0.0486250060422128	0.0486250060422128
-14967	7610	7264	0.0940136459475559	0.0940136459475559
-15895	9441	5377	0.102059140746775	0.102059140746775
-13974	9251	9129	0.169864606266652	0.169864606266652
-20368	10749	10733	0.00357512667889407	0.00357512667889407
-14674	2227	943	0.182649781226047	0.182649781226047
-14178	3784	8864	0.153337805989006	0.153337805989006
-19290	10470	8767	0.117748080941626	0.117748080941626
-12575	8759	8760	0.0168627139608601	0.0168627139608601
-14983	8789	8796	0.105952161931752	0.105952161931752
-14984	8796	8878	0.106413855851218	0.106413855851218
-20419	10774	3587	0.00984290685312232	0.00984290685312232
-15867	8770	8771	0.0147638851882813	0.0147638851882813
-11263	8195	8196	0.0967030898556648	0.0967030898556648
-16192	5817	7723	0.19660431304726	0.19660431304726
-20360	8992	10754	0.00404589397436802	0.00404589397436802
-19297	10471	1942	0.0559273520312209	0.0559273520312209
-15868	8833	5588	0.0188635032964949	0.0188635032964949
-19299	9959	564	0.00433589917958362	0.00433589917958362
-20814	10936	7168	0.0050166121287054	0.0050166121287054
-20823	10780	9337	0.0124085195369407	0.0124085195369407
-19301	1942	10467	0.0736734316331574	0.0736734316331574
-12854	4133	6696	0.093947304456844	0.093947304456844
-15004	6269	9466	0.0522837092305697	0.0522837092305697
-19305	10464	10461	0.0144782338635936	0.0144782338635936
-19307	10467	611	0.103622552493386	0.103622552493386
-11685	8366	1032	0.0209886592874132	0.0209886592874132
-20820	10919	8330	0.00776069150921458	0.00776069150921458
-11643	8347	4658	0.0580128250256257	0.0580128250256257
-12924	8890	8891	0.0884309215437497	0.0884309215437497
-15230	8360	8248	0.0379210675749848	0.0379210675749848
-13013	8916	2892	0.160989403082392	0.160989403082392
-12051	8531	8529	0.0116601753914343	0.0116601753914343
-20828	9205	8443	0.0104227726118747	0.0104227726118747
-18615	7410	5865	0.176922387553379	0.176922387553379
-14852	8621	9432	0.00675320800603643	0.00675320800603643
-18616	5865	9447	0.157075160700523	0.157075160700523
-18618	1314	9447	0.0196279343381406	0.0196279343381406
-11994	8505	8048	0.149802391835517	0.149802391835517
-18621	2586	5181	0.176412393215512	0.176412393215512
-18622	5181	5649	0.1069372720504	0.1069372720504
-19473	7476	10517	0.0101658403815209	0.0101658403815209
-19474	10517	10518	0.00993077177126307	0.00993077177126307
-18480	9040	9120	0.135103567036488	0.135103567036488
-20833	10944	10951	0.17747662532422	0.17747662532422
-19475	10518	10519	0.0191608413173093	0.0191608413173093
-19512	10537	10447	0.00647615513057594	0.00647615513057594
-2	2	3	0.283463280100036	0.283463280100036
-3	3	4	0.0333775918694363	0.0333775918694363
-18628	1310	9484	0.175555113641419	0.175555113641419
-12242	8611	8612	0.0998376585619669	0.0998376585619669
-5	5	6	0.348594358341424	0.348594358341424
-15909	9104	9105	0.0387441124726526	0.0387441124726526
-15903	6134	8603	0.0260893170771595	0.0260893170771595
-15878	8833	8770	0.0398025148628561	0.0398025148628561
-13625	7013	2274	0.0942922296438968	0.0942922296438968
-15024	4136	2663	0.0946854927112821	0.0946854927112821
-13651	9159	1177	0.0568269678125187	0.0568269678125187
-6	6	7	0.250747670173169	0.250747670173169
-20837	10949	10945	0.0947762411619158	0.0947762411619158
-15887	8842	9619	0.0119243513569086	0.0119243513569086
-19481	10511	10486	0.0687637700371023	0.0687637700371023
-13777	9191	292	0.0113408171424215	0.0113408171424215
-19493	10463	10523	0.0181472136448415	0.0181472136448415
-13799	9195	5081	0.0314508853846434	0.0314508853846434
-19487	10426	10427	0.0081618196829418	0.0081618196829418
-18570	10325	10322	0.0277653060168724	0.0277653060168724
-15042	6787	4718	0.0916704601824836	0.0916704601824836
-15043	4718	9414	0.0490846601218478	0.0490846601218478
-19494	10523	7469	0.0159566577035026	0.0159566577035026
-13814	4934	9200	0.0155640797101011	0.0155640797101011
-13008	8914	2891	0.0117402105605065	0.0117402105605065
-17570	10143	10144	0.0307556488479174	0.0307556488479174
-20841	10952	10940	0.18759449218266	0.18759449218266
-15726	7317	9449	0.0375532628709029	0.0375532628709029
-15904	8603	9697	0.00690416936559141	0.00690416936559141
-13877	4478	2804	0.135897648680331	0.135897648680331
-18633	4044	4045	0.00275409212275412	0.00275409212275412
-15057	9477	6733	0.054468335249091	0.054468335249091
-15058	6733	9313	0.0446744870999848	0.0446744870999848
-13910	9228	3317	0.0850892170141282	0.0850892170141282
-12689	2057	8805	0.133235184271089	0.133235184271089
-18656	6223	7657	0.27620827404325	0.27620827404325
-15858	9732	9739	0.0147062242308904	0.0147062242308904
-20843	10954	10751	0.181296524715589	0.181296524715589
-16082	366	255	0.573997033805984	0.573997033805984
-16084	9817	9818	0.0154245817929875	0.0154245817929875
-16127	4555	9122	0.0381695434595099	0.0381695434595099
-14675	943	5941	0.178224321703034	0.178224321703034
-15285	8799	3187	0.00972670306222712	0.00972670306222712
-15873	8879	8889	0.108518344615814	0.108518344615814
-15405	9585	9582	0.0323190665796029	0.0323190665796029
-16246	9859	7743	0.402195232762633	0.402195232762633
-13026	1537	4265	0.200987668621859	0.200987668621859
-3749	3578	3579	0.097584814173116	0.097584814173116
-3750	3579	848	0.0994883860112991	0.0994883860112991
-3752	3580	3581	0.0190511917089631	0.0190511917089631
-19488	10427	4703	0.0206936304458077	0.0206936304458077
-20829	8443	10954	0.0118059106132393	0.0118059106132393
-16351	7009	2285	0.0978474396198024	0.0978474396198024
-16382	9879	9771	0.00992783408407401	0.00992783408407401
-16432	9894	9895	0.0235353492080929	0.0235353492080929
-14329	9328	602	0.0664699646577648	0.0664699646577648
-20848	10950	10953	0.0184888911494772	0.0184888911494772
-13445	9078	9079	0.200451693111106	0.200451693111106
-16391	3033	9847	0.0236566168850551	0.0236566168850551
-15437	9602	9603	0.109740104543279	0.109740104543279
-18475	9005	4295	0.117455212214086	0.117455212214086
-19609	10585	10503	0.00693839845805758	0.00693839845805758
-16644	564	565	0.0167681949380125	0.0167681949380125
-18641	5875	7416	0.178910174745805	0.178910174745805
-16758	7565	10010	0.0537198584701325	0.0537198584701325
-13557	9032	9033	0.185435393968361	0.185435393968361
-19028	8995	7690	0.0430021373921601	0.0430021373921601
-17062	10068	2247	0.0643618782275657	0.0643618782275657
-16833	593	9915	0.00807834974542274	0.00807834974542274
-18614	4049	7410	0.176200842798068	0.176200842798068
-16902	74	7306	0.205595181095446	0.205595181095446
-17068	10069	675	0.181147813198563	0.181147813198563
-17009	4847	10051	0.0109841519151342	0.0109841519151342
-13581	9133	9134	0.0795179133195768	0.0795179133195768
-17207	9891	234	0.00951110757861507	0.00951110757861507
-19644	10601	10602	0.00459389199037625	0.00459389199037625
-14887	7456	5693	0.103533596199028	0.103533596199028
-15073	9480	8706	0.0156808972883418	0.0156808972883418
-18617	9447	1314	0.0196279343381406	0.0196279343381406
-19477	10520	10521	0.0112440070511006	0.0112440070511006
-19479	1872	10522	0.0183337010143588	0.0183337010143588
-18629	9484	5862	0.00360275623818702	0.00360275623818702
-17406	3210	6122	0.199774981063921	0.199774981063921
-15450	9609	9610	0.118608570416781	0.118608570416781
-14988	9309	9464	0.101172548296122	0.101172548296122
-15965	1443	7623	0.202446963416806	0.202446963416806
-13793	4819	8514	0.148483674564771	0.148483674564771
-3766	2339	3595	0.17591583054365	0.17591583054365
-3767	3595	3596	0.243702533330372	0.243702533330372
-15851	5596	9735	0.0497175089074512	0.0497175089074512
-15124	6515	226	0.0653425651240956	0.0653425651240956
-15449	9608	9609	0.0645563810419252	0.0645563810419252
-13914	4840	9230	0.275162192340763	0.275162192340763
-13922	9137	9233	0.0899935621999505	0.0899935621999505
-3788	1148	1821	0.103455086525091	0.103455086525091
-18632	7408	4044	0.178025429971464	0.178025429971464
-15247	9542	8177	0.0166658349694615	0.0166658349694615
-15460	9613	9614	0.039786363249444	0.039786363249444
-15461	8882	9615	0.0277165465497567	0.0277165465497567
-15546	9646	9647	0.0122997635777285	0.0122997635777285
-15889	8978	1101	0.0278428503732722	0.0278428503732722
-236	30	31	0.0623462807475453	0.0623462807475453
-239	246	247	0.10870569104286	0.10870569104286
-19602	10483	10583	0.0688347644552014	0.0688347644552014
-19497	7457	10525	0.0182919034833847	0.0182919034833847
-15292	9561	9562	0.0285639174620334	0.0285639174620334
-16011	9781	9782	0.0666625832869129	0.0666625832869129
-204	216	217	0.0495486567174314	0.0495486567174314
-16105	9825	9826	0.769429574289864	0.769429574289864
-19504	10531	10532	0.00490376342058079	0.00490376342058079
-19505	10532	10533	0.0113536336982688	0.0113536336982688
-15983	4420	7372	0.10794760335784	0.10794760335784
-16336	6683	8026	0.0934572989494279	0.0934572989494279
-15146	8245	9501	0.259647287125597	0.259647287125597
-16378	2678	4127	0.105747053096561	0.105747053096561
-15168	9509	3381	0.0515085102071127	0.0515085102071127
-14670	9413	5473	0.178785252044424	0.178785252044424
-15438	9603	2287	0.0101078833454114	0.0101078833454114
-16618	7974	3673	0.0581937370992888	0.0581937370992888
-16393	9876	3281	0.0515999951055545	0.0515999951055545
-11613	742	743	0.188831137780044	0.188831137780044
-16792	6964	10013	0.15953431348719	0.15953431348719
-16830	9911	10017	0.00322492509560211	0.00322492509560211
-17016	10055	10056	0.150978646033743	0.150978646033743
-17201	10074	6392	0.100421160552702	0.100421160552702
-19702	10621	10622	0.0560876276790842	0.0560876276790842
-17391	10095	8785	0.114852910416621	0.114852910416621
-18648	4053	10111	0.195636353938149	0.195636353938149
-17545	8264	8929	0.192238762103777	0.192238762103777
-19596	10507	10581	0.0688892384795374	0.0688892384795374
-18652	8072	7653	0.262512305989993	0.262512305989993
-18119	4085	6030	0.181292795599691	0.181292795599691
-17647	8242	223	0.0953499590487046	0.0953499590487046
-17960	5194	10233	0.0515871143302905	0.0515871143302905
-17964	10236	10232	0.0350820368831285	0.0350820368831285
-17785	8986	8497	0.0646311177616063	0.0646311177616063
-17753	10173	8485	0.0489434224402369	0.0489434224402369
-11535	1543	1544	0.137939265537406	0.137939265537406
-17819	8676	10186	0.0370735665978641	0.0370735665978641
-17777	6508	6993	0.160336610713707	0.160336610713707
-3801	3083	3195	0.200442064419022	0.200442064419022
-3802	3195	3622	0.204398520601987	0.204398520601987
-3803	3622	1902	0.199020966616341	0.199020966616341
-3804	1902	3624	0.19721596773449	0.19721596773449
-17851	10193	10194	0.0260169590696429	0.0260169590696429
-12958	1630	1631	0.127437048321071	0.127437048321071
-18661	10206	7647	0.17872352996795	0.17872352996795
-19942	10671	4953	0.0511372085610231	0.0511372085610231
-12964	1770	1771	0.0893785434926153	0.0893785434926153
-18602	7656	6222	0.275287629645573	0.275287629645573
-18232	2550	6070	0.201831098039417	0.201831098039417
-18761	10339	10340	0.0412859123428405	0.0412859123428405
-4425	950	4134	0.165887036500793	0.165887036500793
-4426	4134	4135	0.171020798065652	0.171020798065652
-4427	4135	4136	0.184950521487565	0.184950521487565
-18817	10355	8431	0.088262856016995	0.088262856016995
-4447	4149	4150	0.111495530172709	0.111495530172709
-4448	4150	4151	0.101644653962629	0.101644653962629
-19603	10583	10496	0.00675773327585877	0.00675773327585877
-19855	10661	10662	0.203042057763788	0.203042057763788
-20643	10879	10877	0.0314570447479651	0.0314570447479651
-19158	8423	8388	0.0601966609853944	0.0601966609853944
-19615	10587	10502	0.00686995556939521	0.00686995556939521
-12339	8656	2501	0.0156699758852849	0.0156699758852849
-19328	9895	10473	0.0277673159561869	0.0277673159561869
-19490	10441	10447	0.0184697170100914	0.0184697170100914
-19492	10448	10463	0.00504831489789659	0.00504831489789659
-19428	10489	7287	0.156514421452779	0.156514421452779
-19286	563	9967	0.0537140867907163	0.0537140867907163
-19621	10589	10590	0.0274773310120508	0.0274773310120508
-19441	10492	10493	0.0201930874558464	0.0201930874558464
-19789	9476	4873	0.191586478139089	0.191586478139089
-19805	2619	10411	0.177645225629424	0.177645225629424
-18409	10287	10288	0.0734556316276251	0.0734556316276251
-20191	462	10707	0.132640175005266	0.132640175005266
-14823	3606	9335	0.071748078170483	0.071748078170483
-14824	9335	9402	0.00997675672475066	0.00997675672475066
-14825	9402	8301	0.0653806855821323	0.0653806855821323
-14830	4022	8322	0.0483334251113916	0.0483334251113916
-14832	5668	7026	0.0386007852757077	0.0386007852757077
-4468	4163	4164	0.0480674059146442	0.0480674059146442
-4469	4164	991	0.0502312521862823	0.0502312521862823
-14857	8907	9435	0.0508107102861791	0.0508107102861791
-14859	9436	9437	0.0520105887104481	0.0520105887104481
-15729	9448	9449	0.154385795199696	0.154385795199696
-18619	9447	9452	0.260663192513491	0.260663192513491
-14936	5495	8700	0.014007087915999	0.014007087915999
-20590	2705	10795	0.0154885940353102	0.0154885940353102
-14972	2754	7005	0.0961416158900631	0.0961416158900631
-15045	5118	4946	0.0490898990370342	0.0490898990370342
-15046	4946	7151	0.0490351349560296	0.0490351349560296
-15963	6397	4362	0.0791794536243071	0.0791794536243071
-15989	9452	4506	0.0512507321563124	0.0512507321563124
-16056	308	4648	0.208884022844132	0.208884022844132
-15158	9504	7749	0.203686953618576	0.203686953618576
-16076	8934	9417	0.0908088237702457	0.0908088237702457
-16106	9826	214	0.019707054216564	0.019707054216564
-19536	10547	10551	0.00289118198627037	0.00289118198627037
-16257	8751	9267	0.200818549492747	0.200818549492747
-16332	5124	7146	0.105923351259383	0.105923351259383
-3817	3633	3634	0.395318196729382	0.395318196729382
-16359	2326	5997	0.152345269926906	0.152345269926906
-5101	4522	4624	0.135948680255943	0.135948680255943
-18688	2602	1859	0.181461056809498	0.181461056809498
-16455	9910	8957	0.00642990572974513	0.00642990572974513
-16456	8957	9911	0.00773671564019088	0.00773671564019088
-16715	132	1701	0.201952446468105	0.201952446468105
-17236	31	134	0.108163538194537	0.108163538194537
-17237	134	246	0.0735610173824186	0.0735610173824186
-17521	3940	6651	0.0163911525787958	0.0163911525787958
-18097	10256	2169	0.0491222602233141	0.0491222602233141
-18207	8329	7847	0.200166859157176	0.200166859157176
-18394	5586	2554	0.157693803770027	0.157693803770027
-18972	7756	3621	0.0947044796448553	0.0947044796448553
-19237	10458	10457	0.00406582159548868	0.00406582159548868
-19229	10453	10454	0.0676096530689986	0.0676096530689986
-3858	3667	3668	0.0415319443079903	0.0415319443079903
-3859	3668	3669	0.0482985746708946	0.0482985746708946
-19322	2203	916	0.200210598103272	0.200210598103272
-15203	7160	9528	0.0514241954874698	0.0514241954874698
-19690	10616	10397	0.0495068144600769	0.0495068144600769
-19692	10617	10398	0.0503641661598134	0.0503641661598134
-19879	5198	10672	0.124230342536198	0.124230342536198
-19967	10686	9720	0.110372440140764	0.110372440140764
-19969	9505	1931	0.205435822074821	0.205435822074821
-19971	9711	1933	0.17400772229687	0.17400772229687
-19972	1933	10306	0.208946577187585	0.208946577187585
-3875	3685	3686	0.109844105363612	0.109844105363612
-17510	10120	10119	0.158859506306984	0.158859506306984
-676	669	670	0.102292085856109	0.102292085856109
-3893	3696	3697	0.200080946502272	0.200080946502272
-3894	3697	3698	0.204567969900071	0.204567969900071
-3896	3699	3700	0.197370997762066	0.197370997762066
-20255	5749	10704	0.00800649085379587	0.00800649085379587
-20320	10739	10740	0.00883881362478868	0.00883881362478868
-15207	1113	9529	0.0508930389416975	0.0508930389416975
-15251	9544	9536	0.0327374869648338	0.0327374869648338
-15379	8806	2642	0.105298522418053	0.105298522418053
-18635	7865	1846	0.175356787311383	0.175356787311383
-15485	9612	9616	0.0684703360070514	0.0684703360070514
-15516	9635	3736	0.0550573183727317	0.0550573183727317
-19480	10522	10511	0.00442285695753415	0.00442285695753415
-15574	9660	9464	0.175338544663329	0.175338544663329
-15598	7585	2003	0.0946559616738872	0.0946559616738872
-15618	9679	9680	0.101799223111765	0.101799223111765
-15640	9666	9667	0.00676039634627663	0.00676039634627663
-15683	8023	7680	0.104281288426574	0.104281288426574
-15704	7666	2329	0.100028756753634	0.100028756753634
-15755	3356	2760	0.0982705119459115	0.0982705119459115
-1110	1126	1127	0.154576986104079	0.154576986104079
-2347	2338	2265	0.095819812257735	0.095819812257735
-12348	8664	8665	0.0099818469883938	0.0099818469883938
-20799	10928	6772	0.00617692305613739	0.00617692305613739
-1176	1191	1192	0.0992884317332444	0.0992884317332444
-20800	6772	10949	0.00765667567444528	0.00765667567444528
-441	439	440	0.131394781189403	0.131394781189403
-2798	2750	2752	0.210544806502819	0.210544806502819
-20666	10888	10889	0.0790962373353106	0.0790962373353106
-19518	6854	10540	0.00704975834948009	0.00704975834948009
-17074	10070	7842	0.137917824166884	0.137917824166884
-320	63	64	0.0374489603047296	0.0374489603047296
-62	68	69	0.0422209546479027	0.0422209546479027
-12003	5507	7080	0.146738996592278	0.146738996592278
-109	116	117	0.143188450690636	0.143188450690636
-18456	10296	7020	0.00773615182989558	0.00773615182989558
-134	142	143	0.102085903671524	0.102085903671524
-18414	7445	8376	0.0994737732965907	0.0994737732965907
-153	162	163	0.0752431334530451	0.0752431334530451
-18417	10289	8332	0.15046170994065	0.15046170994065
-323	206	207	0.0117249781899754	0.0117249781899754
-222	233	234	0.0133914034588106	0.0133914034588106
-269	279	280	0.111130387977042	0.111130387977042
-304	312	313	0.0760674046765663	0.0760674046765663
-378	380	381	0.042583144928967	0.042583144928967
-334	335	336	0.0838277836552233	0.0838277836552233
-18422	6881	8361	0.201914074104345	0.201914074104345
-367	368	369	0.0822344709508681	0.0822344709508681
-541	535	536	0.186883681615866	0.186883681615866
-11516	528	591	0.200155681159152	0.200155681159152
-15254	9538	9539	0.0173547475022314	0.0173547475022314
-659	649	650	0.011039314445329	0.011039314445329
-11464	701	5	0.465980985000995	0.465980985000995
-16702	9996	9629	0.03889405892702	0.03889405892702
-12966	1824	1825	0.0102076592436785	0.0102076592436785
-18427	7848	2983	0.204332357907837	0.204332357907837
-16420	3283	3331	0.0144926793767328	0.0144926793767328
-794	799	800	0.10010177351148	0.10010177351148
-11695	896	1005	0.0164907467236235	0.0164907467236235
-18433	6878	8357	0.204690873329425	0.204690873329425
-863	876	877	0.10476487069157	0.10476487069157
-883	898	899	0.104753841122432	0.104753841122432
-884	899	864	0.0807039229442354	0.0807039229442354
-927	941	942	0.0494985310502231	0.0494985310502231
-16705	9999	9629	0.0289087737479417	0.0289087737479417
-17026	3489	3490	0.0719959563000755	0.0719959563000755
-18682	3408	3539	0.176214327588196	0.176214327588196
-18442	8299	10294	0.012207810422513	0.012207810422513
-1076	1092	1093	0.17117547982738	0.17117547982738
-15790	2105	2106	0.167962867985551	0.167962867985551
-1100	1116	1117	0.101443140583253	0.101443140583253
-1122	1138	1139	0.131688298285365	0.131688298285365
-2171	2170	2171	0.00661609813602913	0.00661609813602913
-19434	10489	10109	0.051734430819511	0.051734430819511
-16849	9890	3358	0.0252874452199061	0.0252874452199061
-16171	7732	6631	0.170999473020786	0.170999473020786
-1145	1163	1164	0.10638131618854	0.10638131618854
-2233	2234	2235	0.107325767093377	0.107325767093377
-16734	10004	5726	0.044310348629928	0.044310348629928
-19574	7473	10571	0.0063271995041771	0.0063271995041771
-1286	1311	1312	0.0523154141859772	0.0523154141859772
-18191	5793	6053	0.200818759010255	0.200818759010255
-12198	2296	2417	0.0275462737865406	0.0275462737865406
-1335	1360	142	0.202746839209369	0.202746839209369
-1357	1386	1387	0.204107383179499	0.204107383179499
-1384	1411	1412	0.132938489820146	0.132938489820146
-1385	1412	1413	0.131234196689436	0.131234196689436
-16835	10018	10019	0.00449297276091322	0.00449297276091322
-1459	1481	1482	0.0508965659313026	0.0508965659313026
-533	397	398	0.176353791704941	0.176353791704941
-1483	1503	1504	0.10868886965133	0.10868886965133
-17373	3540	4236	0.201662628453229	0.201662628453229
-1505	47	1524	0.198761508803526	0.198761508803526
-16510	9930	8899	0.028599893322584	0.028599893322584
-19459	10506	10507	0.0718336837694179	0.0718336837694179
-16953	10037	10038	0.0209544596641532	0.0209544596641532
-1573	1601	1602	0.162785877407261	0.162785877407261
-1622	1650	1651	0.0538894092860146	0.0538894092860146
-1645	1672	1673	0.130835848827306	0.130835848827306
-1667	1692	1693	0.050088176287895	0.050088176287895
-1694	1718	1719	0.0873988319892153	0.0873988319892153
-1719	1738	1456	0.0837159374419676	0.0837159374419676
-1750	1769	1772	0.200154711336709	0.200154711336709
-1772	1790	1791	0.0243124544354895	0.0243124544354895
-12976	2866	2867	0.0166252705046511	0.0166252705046511
-1804	1817	1818	0.0911976784518576	0.0911976784518576
-11690	836	837	0.0102634119335747	0.0102634119335747
-1854	1868	1869	0.0969507802969199	0.0969507802969199
-18890	6123	3212	0.200920158955186	0.200920158955186
-13010	2892	2956	0.114118910643116	0.114118910643116
-1900	1913	1087	0.0825040978126541	0.0825040978126541
-11531	1232	1233	0.136649469135664	0.136649469135664
-3101	3032	3035	0.0672642720958143	0.0672642720958143
-16771	7290	7418	0.177711115784665	0.177711115784665
-2076	2079	2080	0.00320241388686281	0.00320241388686281
-20267	7552	10721	0.0076233085405271	0.0076233085405271
-2099	2101	2102	0.0617614998037007	0.0617614998037007
-2178	2178	2179	0.133414657501795	0.133414657501795
-20703	10902	10893	0.0137674602252582	0.0137674602252582
-18186	6059	4074	0.199239203137735	0.199239203137735
-2271	2271	2274	0.132133232701666	0.132133232701666
-2297	2295	2044	0.383761223862801	0.383761223862801
-2323	2315	2316	0.330214470935474	0.330214470935474
-12347	8663	8664	0.0257805479932851	0.0257805479932851
-2391	2374	2380	0.0606466728888714	0.0606466728888714
-17368	6112	1906	0.199361824625973	0.199361824625973
-2461	2451	2452	0.13645541326163	0.13645541326163
-2505	2485	2486	0.101289554682704	0.101289554682704
-2559	1939	371	0.224011572183979	0.224011572183979
-19236	5960	10458	0.00935537130778975	0.00935537130778975
-20487	10833	10834	0.0146368261080025	0.0146368261080025
-17152	4823	1911	0.202007841348173	0.202007841348173
-15939	9756	1179	0.0444859500137061	0.0444859500137061
-3746	3576	3577	0.10159835449875	0.10159835449875
-3791	2772	3612	0.203936793927218	0.203936793927218
-3792	3612	3613	0.107839344756473	0.107839344756473
-2787	2741	2742	0.198829139661659	0.198829139661659
-15945	9761	9759	0.0391671909462338	0.0391671909462338
-2831	2780	2781	0.0528298940705434	0.0528298940705434
-19569	10568	10569	0.0878244193957737	0.0878244193957737
-2880	2824	2825	0.0974259616864288	0.0974259616864288
-2902	2845	2846	0.808353421265405	0.808353421265405
-17512	10121	10120	0.0252089130538733	0.0252089130538733
-18124	7936	10267	0.178836603986638	0.178836603986638
-17213	3773	3774	0.00322537908461904	0.00322537908461904
-4010	3797	3798	0.0496772635509661	0.0496772635509661
-20618	10829	10811	0.00710063413803192	0.00710063413803192
-4056	3836	542	0.0542189434563804	0.0542189434563804
-16431	9893	9894	0.0272038809490012	0.0272038809490012
-4079	3854	3855	0.107248137237127	0.107248137237127
-4105	3874	1534	0.0983074346464974	0.0983074346464974
-4130	3892	3893	0.176077888960898	0.176077888960898
-3140	2139	3065	0.10712340392365	0.10712340392365
-14117	3945	3946	0.0482205385893945	0.0482205385893945
-19586	7471	10577	0.00638268050836497	0.00638268050836497
-18680	1852	3185	0.180570803347185	0.180570803347185
-4350	4077	4078	0.0772510249569655	0.0772510249569655
-4372	4094	4095	0.0479505811649138	0.0479505811649138
-19591	10579	10498	0.00651919101450697	0.00651919101450697
-3306	3214	3215	0.0471079000187924	0.0471079000187924
-3328	3230	3231	0.132391302135547	0.132391302135547
-19626	10513	10592	0.0688709903222838	0.0688709903222838
-3398	3295	3296	0.0155356242142858	0.0155356242142858
-19230	10454	10455	0.0118389292817843	0.0118389292817843
-20315	10736	10737	0.159656650881409	0.159656650881409
-18079	6355	10255	0.0661057533214939	0.0661057533214939
-3483	3361	3362	0.201966263198038	0.201966263198038
-4636	4280	4281	0.102934268159845	0.102934268159845
-16647	9969	5457	0.0123677166569097	0.0123677166569097
-16903	7306	3263	0.199172661453728	0.199172661453728
-19484	6853	10408	0.00698312522129821	0.00698312522129821
-19234	10420	10457	0.0372086096742178	0.0372086096742178
-19820	10648	3951	0.0619393226511354	0.0619393226511354
-20630	10847	10760	0.0141138073557462	0.0141138073557462
-4772	4383	4384	0.143358020264065	0.143358020264065
-4773	4384	2688	0.1475761156103	0.1475761156103
-19822	10648	9252	0.121899654224586	0.121899654224586
-17019	10054	10057	0.00913318334502991	0.00913318334502991
-19885	7405	10416	0.200852838610439	0.200852838610439
-18259	7775	9395	0.0553851197391209	0.0553851197391209
-4859	3019	4445	0.0478223869342914	0.0478223869342914
-20466	10753	10817	0.0682187434932547	0.0682187434932547
-19877	10671	6237	0.122419389056498	0.122419389056498
-19878	6237	5198	0.175009695046305	0.175009695046305
-18518	10303	10304	0.0239997630410034	0.0239997630410034
-4902	3446	4478	0.091694374773876	0.091694374773876
-19966	9509	10686	0.206010969949978	0.206010969949978
-19567	10565	7474	0.0766585847384353	0.0766585847384353
-14126	3925	419	0.00806156942685905	0.00806156942685905
-3723	3558	2895	0.0536764980359733	0.0536764980359733
-3795	3615	3616	0.170284963942666	0.170284963942666
-20220	9234	6625	0.292333005384616	0.292333005384616
-14111	3623	3659	0.11789221451213	0.11789221451213
-3861	3670	3671	0.0217628748782358	0.0217628748782358
-17030	3607	3490	0.0408681491476405	0.0408681491476405
-15948	9763	9764	0.10655007034609	0.10655007034609
-17086	504	3946	0.0996587778769702	0.0996587778769702
-20151	8263	8850	0.190160460059289	0.190160460059289
-17097	3721	2249	0.175979650666522	0.175979650666522
-3955	2834	3751	0.211238280484951	0.211238280484951
-4024	3809	3810	0.0544429181408591	0.0544429181408591
-20310	10731	10732	0.0936889543382987	0.0936889543382987
-4047	2945	3827	0.152861408667566	0.152861408667566
-20433	10792	10793	0.0378257433013547	0.0378257433013547
-4179	3929	3930	0.138165941069034	0.138165941069034
-18286	6824	3986	0.13302202745972	0.13302202745972
-20336	10747	10740	0.0348319951594156	0.0348319951594156
-5524	4925	4926	0.124694107926995	0.124694107926995
-4269	4013	4014	0.135510024687662	0.135510024687662
-20344	10743	10749	0.0091415179335324	0.0091415179335324
-17114	3959	582	0.020964645373322	0.020964645373322
-14696	4947	5018	0.17692836025714	0.17692836025714
-4361	4085	4086	0.0439979039927832	0.0439979039927832
-20443	10800	10797	0.0184411605361648	0.0184411605361648
-4436	1838	4143	0.106284873443858	0.106284873443858
-4437	4143	4144	0.0526768909687255	0.0526768909687255
-4456	4154	4155	0.103915690256788	0.103915690256788
-4457	4155	4156	0.103695542240372	0.103695542240372
-4476	4169	727	0.0512571810638195	0.0512571810638195
-4477	727	4170	0.0478531500173987	0.0478531500173987
-5818	5133	5134	0.102145042918239	0.102145042918239
-5912	5193	5194	0.024083404138801	0.024083404138801
-20491	10835	10836	0.00603667118796414	0.00603667118796414
-15862	9742	9737	0.126226895338302	0.126226895338302
-5931	5209	5210	0.693210396806986	0.693210396806986
-16531	9230	9133	0.0319382574203035	0.0319382574203035
-4627	1616	4276	0.105592921129571	0.105592921129571
-20628	10756	10873	0.0143552752086545	0.0143552752086545
-20696	10910	4524	0.00942218117840877	0.00942218117840877
-18136	6043	10263	0.201163508503498	0.201163508503498
-4695	4331	808	0.139418137507802	0.139418137507802
-4698	4332	4333	0.161361651356291	0.161361651356291
-6050	4013	5293	0.134925136075026	0.134925136075026
-18073	6354	6355	0.0448917156923931	0.0448917156923931
-4744	4362	4363	0.107836470275357	0.107836470275357
-4765	4378	4379	0.183602249353544	0.183602249353544
-20634	10876	10877	0.0283642470117633	0.0283642470117633
-18170	5801	6061	0.198751914750946	0.198751914750946
-4835	4430	4431	0.145138896688942	0.145138896688942
-4862	4446	4447	0.0474277072247471	0.0474277072247471
-18509	9355	10301	0.00184585558113331	0.00184585558113331
-6260	174	1704	0.202197382513594	0.202197382513594
-4958	4516	4517	0.0491656169358357	0.0491656169358357
-4983	4534	4535	0.0998419246339525	0.0998419246339525
-19921	10413	7869	0.176021720356684	0.176021720356684
-5064	4589	4590	0.0154062452430768	0.0154062452430768
-5086	4607	4608	0.119245405144689	0.119245405144689
-5111	4630	4631	0.139104857432868	0.139104857432868
-20788	5700	10925	0.00572872738726038	0.00572872738726038
-3915	2811	3713	0.0582509515897595	0.0582509515897595
-3917	3714	3715	0.0974014881112134	0.0974014881112134
-20790	10947	8358	0.00657767070033128	0.00657767070033128
-5221	4709	4710	0.122314419308335	0.122314419308335
-5243	875	4463	0.138237545752752	0.138237545752752
-18318	7366	7442	0.0771284931905011	0.0771284931905011
-5315	4770	4771	0.0488277782804066	0.0488277782804066
-5336	2332	4786	0.0940516760159238	0.0940516760159238
-5388	4825	97	0.199068637854245	0.199068637854245
-17092	4597	9466	0.17373336205738	0.17373336205738
-5437	4857	4858	0.0515825872815672	0.0515825872815672
-5483	4893	4894	0.046048954675788	0.046048954675788
-5531	4931	4932	0.018084718359645	0.018084718359645
-6850	4421	5860	0.102045619820979	0.102045619820979
-6892	5894	5697	0.0947186956045014	0.0947186956045014
-5585	1550	4269	0.196429076934968	0.196429076934968
-3934	3732	3733	0.121703755972038	0.121703755972038
-3936	3734	3735	0.176733819603511	0.176733819603511
-5609	4988	4989	0.201206746854351	0.201206746854351
-6912	5908	1999	0.0940717232862836	0.0940717232862836
-5705	932	2217	0.184097423724296	0.184097423724296
-5753	5081	5082	0.054538974474369	0.054538974474369
-5760	5088	1840	0.180073513278395	0.180073513278395
-5785	2782	5108	0.132016677253578	0.132016677253578
-18555	7706	2990	0.19846083928125	0.19846083928125
-18352	3981	7040	0.199881951179414	0.199881951179414
-5885	5176	130	0.21663995111842	0.21663995111842
-14774	5924	3807	0.151382817559166	0.151382817559166
-17792	8508	6179	0.109482524773714	0.109482524773714
-5955	5228	5229	0.0697529045378229	0.0697529045378229
-5977	1247	4556	0.132973381558885	0.132973381558885
-20546	10755	2961	0.0206004250178228	0.0206004250178228
-6055	3817	5296	0.100909929183789	0.100909929183789
-6076	172	1729	0.256606586411632	0.256606586411632
-6122	5349	4219	0.225702767955147	0.225702767955147
-6172	5388	1958	0.131227861001577	0.131227861001577
-20555	10853	10028	0.0104514157116194	0.0104514157116194
-6194	3028	5401	0.132618210317087	0.132618210317087
-18508	10301	9355	0.00184585558113331	0.00184585558113331
-6264	1941	5456	0.107892445399082	0.107892445399082
-6308	2067	5487	0.0160838439354733	0.0160838439354733
-6329	5502	5503	0.0544715490547718	0.0544715490547718
-20506	10834	10840	0.00711722931583218	0.00711722931583218
-7656	5012	3346	0.092992178848436	0.092992178848436
-20397	10758	10759	0.00383951895664098	0.00383951895664098
-19830	10649	10650	0.203375176962632	0.203375176962632
-18258	6760	7775	0.140758515508444	0.140758515508444
-6495	3928	5619	0.089155871041537	0.089155871041537
-6517	963	5279	0.100667730658223	0.100667730658223
-7856	6469	6470	0.161667024351427	0.161667024351427
-14751	929	5933	0.176747364710656	0.176747364710656
-6673	3933	5622	0.0990284128542063	0.0990284128542063
-14716	5687	933	0.176256990051995	0.176256990051995
-20475	10824	10825	0.0252031422821514	0.0252031422821514
-6694	5571	5749	0.0485856779635153	0.0485856779635153
-6695	5749	5750	0.0408085368300434	0.0408085368300434
-3964	1865	3758	0.048211663801055	0.048211663801055
-3965	3758	3759	0.0426076537269238	0.0426076537269238
-11217	443	444	0.0957304857475106	0.0957304857475106
-6741	5790	5791	0.0533877005590012	0.0533877005590012
-6764	5808	5809	0.0505689128275476	0.0505689128275476
-6788	5828	5829	0.0547714293876055	0.0547714293876055
-18151	6044	10264	0.200762745716695	0.200762745716695
-6809	365	4683	0.0475091694046952	0.0475091694046952
-6832	5852	1635	0.119748990570207	0.119748990570207
-18333	7291	3229	0.082496713136994	0.082496713136994
-6884	4667	1334	0.0975135676636165	0.0975135676636165
-6901	5900	2304	0.084800082911027	0.084800082911027
-6971	5951	5952	0.0992113626066069	0.0992113626066069
-14748	6733	4864	0.192735673325504	0.192735673325504
-18279	6738	6739	0.202843884763896	0.202843884763896
-7077	898	4479	0.137748361044457	0.137748361044457
-18284	6793	6794	0.0655358337845971	0.0655358337845971
-7099	5645	4359	0.0906469204279695	0.0906469204279695
-7124	6037	6038	0.0494419955897028	0.0494419955897028
-7168	6071	6072	0.0522594599242274	0.0522594599242274
-11649	8349	7711	0.138715670988872	0.138715670988872
-11989	8046	6574	0.143315424684023	0.143315424684023
-11652	4542	1283	0.131430485325992	0.131430485325992
-17217	1908	6114	0.200603968094547	0.200603968094547
-20549	10805	10854	0.0404087571222208	0.0404087571222208
-11385	8240	8241	0.317652248043028	0.317652248043028
-15924	9072	9753	0.0703936306326387	0.0703936306326387
-18551	9428	7705	0.2040983825575	0.2040983825575
-20556	10028	10805	0.0117396717425925	0.0117396717425925
-20452	10807	10808	0.0757678652544946	0.0757678652544946
-7529	6285	2831	0.200979085137746	0.200979085137746
-15928	9754	5382	0.011733427647939	0.011733427647939
-7553	4092	6302	0.0803403744103832	0.0803403744103832
-7580	6315	3820	0.130703255177956	0.130703255177956
-7677	1716	6365	0.197561364927668	0.197561364927668
-7751	5773	6410	0.160605281527339	0.160605281527339
-18359	7774	7775	0.0541753575171131	0.0541753575171131
-7777	6426	2486	0.134234515445665	0.134234515445665
-12252	122	8617	0.0393889261650165	0.0393889261650165
-7883	6494	6495	0.00940457999056201	0.00940457999056201
-7884	6495	5423	0.0969372989858353	0.0969372989858353
-3980	3771	3772	0.0481390459121498	0.0481390459121498
-3981	3772	3777	0.0470016129182315	0.0470016129182315
-7927	1795	6524	0.13760350708633	0.13760350708633
-8001	6561	6562	0.0546858550544455	0.0546858550544455
-11445	8257	385	0.474417191747682	0.474417191747682
-8048	6593	6594	0.0289242599655845	0.0289242599655845
-18526	9154	9352	0.0531084744773735	0.0531084744773735
-8069	6605	6606	1.2681000346061	1.2681000346061
-8092	4244	6622	0.082630423756929	0.082630423756929
-8093	6622	6623	0.0749027437652235	0.0749027437652235
-3996	3787	3788	0.0979026300528609	0.0979026300528609
-3997	3788	3789	0.0995935295086316	0.0995935295086316
-9386	7325	7326	0.0119980817003928	0.0119980817003928
-20477	10789	10826	0.0103983863250137	0.0103983863250137
-20507	10840	10823	0.00612377712997262	0.00612377712997262
-8262	841	6717	0.175943907281508	0.175943907281508
-9533	7395	7396	0.139422525474238	0.139422525474238
-20405	10779	8354	0.0261167106000956	0.0261167106000956
-8335	6764	6765	0.0503863905918892	0.0503863905918892
-8336	6765	6766	0.0491492877930629	0.0491492877930629
-4013	983	3800	0.100500044528257	0.100500044528257
-4014	3800	3801	0.0985249152645202	0.0985249152645202
-15231	8248	8334	0.0146425177596963	0.0146425177596963
-8409	3830	6807	0.0888447463890759	0.0888447463890759
-18321	6063	2543	0.201974991797574	0.201974991797574
-8457	6832	1495	0.201208565152389	0.201208565152389
-19836	2624	5204	0.178927982846839	0.178927982846839
-18379	8493	8494	0.0504160144523199	0.0504160144523199
-8503	6860	6861	0.0162922756173271	0.0162922756173271
-8527	3425	6874	0.0494311548712974	0.0494311548712974
-8599	1237	4811	0.0968243021950299	0.0968243021950299
-8699	1327	6954	0.11293333226081	0.11293333226081
-8743	6978	6843	0.0844431261667327	0.0844431261667327
-8770	6990	6991	0.0486520030390688	0.0486520030390688
-8791	7006	4358	0.202474203830337	0.202474203830337
-8792	4358	7007	0.00688683462760985	0.00688683462760985
-8840	7032	6092	0.0997655880788332	0.0997655880788332
-12243	8612	8613	0.138493887289201	0.138493887289201
-8862	2493	2840	0.128352303826166	0.128352303826166
-8889	7059	4436	0.0844445583973766	0.0844445583973766
-15879	8770	8763	0.0140298928163018	0.0140298928163018
-12248	5788	8274	0.146502988080446	0.146502988080446
-20224	10712	8757	0.0605456526720602	0.0605456526720602
-15789	9625	2105	0.0133775626084498	0.0133775626084498
-9093	4150	2344	0.174578433496429	0.174578433496429
-12934	8900	8688	0.0533584685274483	0.0533584685274483
-18558	10316	10317	0.318647498327865	0.318647498327865
-9165	7197	7198	0.272798906116362	0.272798906116362
-9189	7209	3616	0.0495666126691076	0.0495666126691076
-10453	3743	5856	0.10095556193443	0.10095556193443
-20231	10714	10715	0.0286157939247338	0.0286157939247338
-20392	10774	10770	0.00608971066273246	0.00608971066273246
-9337	4780	1523	0.0520500965787765	0.0520500965787765
-20017	8044	6572	0.144143863155146	0.144143863155146
-20561	10856	10798	0.00573758430075899	0.00573758430075899
-10672	7485	7454	0.0961864249467466	0.0961864249467466
-15863	9737	9743	0.0881669372882309	0.0881669372882309
-9436	7346	4173	0.192934476657366	0.192934476657366
-10721	7452	5690	0.129238470693044	0.129238470693044
-20510	638	10782	0.00926383363589588	0.00926383363589588
-18479	9039	9040	0.136726032574097	0.136726032574097
-9591	7412	5066	0.050234753132255	0.050234753132255
-9612	2128	5998	0.154063403679123	0.154063403679123
-16186	7721	5815	0.197248711738883	0.197248711738883
-9637	1423	7186	0.128478917444104	0.128478917444104
-11449	8259	8260	0.319737139262779	0.319737139262779
-9690	1895	7457	0.0666302144465139	0.0666302144465139
-9691	7457	7458	0.0198488245240688	0.0198488245240688
-19476	10519	10520	0.0516997558936505	0.0516997558936505
-9736	7494	5544	0.102560827713484	0.102560827713484
-16038	9802	9796	0.0179822727083053	0.0179822727083053
-11790	6564	8037	0.143771757250665	0.143771757250665
-9810	7528	7529	0.208257062216787	0.208257062216787
-9836	7542	7543	0.0265476903097887	0.0265476903097887
-18631	9484	7408	0.179068927816078	0.179068927816078
-15241	9537	9539	0.0227628365288052	0.0227628365288052
-20526	1286	10810	0.0112823826001832	0.0112823826001832
-9968	7619	7620	0.0778364486506147	0.0778364486506147
-9969	7620	7621	0.111522724623373	0.111522724623373
-9988	7625	1491	0.204666735578584	0.204666735578584
-10072	7660	2775	0.203041970554709	0.203041970554709
-10073	2775	6897	0.203220599619524	0.203220599619524
-10091	7671	690	0.200329217944331	0.200329217944331
-10115	2354	4156	0.173430880829093	0.173430880829093
-10138	3577	5644	0.141664156461633	0.141664156461633
-10164	7702	7703	0.0486413772868685	0.0486413772868685
-10187	7030	7715	0.0498024158316235	0.0498024158316235
-12249	8274	8295	0.153451254229228	0.153451254229228
-11642	1281	8347	0.0589263897659084	0.0589263897659084
-10281	7757	2638	0.20261361621015	0.20261361621015
-12251	8616	122	0.0306511482720316	0.0306511482720316
-10351	5524	6462	0.155650660428743	0.155650660428743
-11777	5360	8407	0.147060404896327	0.147060404896327
-20362	10734	9209	0.0303997458302742	0.0303997458302742
-10404	4224	7568	0.0462000499013743	0.0462000499013743
-10427	5696	6320	0.173275054190131	0.173275054190131
-16041	9802	9797	0.0106947269448384	0.0106947269448384
-10504	1036	7842	0.0544400914304572	0.0544400914304572
-12047	8526	8527	0.0840721683590618	0.0840721683590618
-10550	4923	5368	0.0856922507743825	0.0856922507743825
-16085	9818	9819	0.0412898984205639	0.0412898984205639
-10600	7873	7874	0.202540822887829	0.202540822887829
-10623	7886	1192	0.167316235534945	0.167316235534945
-20558	10845	2957	0.00878460299692283	0.00878460299692283
-10644	7563	7901	0.105394463133352	0.105394463133352
-12237	1599	8609	0.00546433627657245	0.00546433627657245
-20564	10825	1287	0.00477901915260098	0.00477901915260098
-10749	6942	7958	0.162394709841225	0.162394709841225
-10796	7983	947	0.174677658409185	0.174677658409185
-10817	6492	4607	0.147058520431446	0.147058520431446
-12476	5450	5427	0.050269770055972	0.050269770055972
-10839	6220	8004	0.052907543789053	0.052907543789053
-15731	7157	8801	0.0199400844261404	0.0199400844261404
-16956	10040	9425	0.0116537581995054	0.0116537581995054
-10942	4686	4956	0.099446723287275	0.099446723287275
-16188	7203	1784	0.197361998677517	0.197361998677517
-10964	6721	4791	0.136892276030183	0.136892276030183
-10986	5402	3133	0.105232928623448	0.105232928623448
-20369	10733	10746	0.00402873670536954	0.00402873670536954
-12735	8822	7751	0.202267643963295	0.202267643963295
-16205	7728	5823	0.195806305910918	0.195806305910918
-15885	9619	8879	0.0100154912435563	0.0100154912435563
-16189	1784	4247	0.203808666270494	0.203808666270494
-11109	8035	807	0.0159273560245565	0.0159273560245565
-11132	8133	6270	0.051417429454822	0.051417429454822
-11156	2087	2654	0.0953557861022671	0.0953557861022671
-11157	2654	4115	0.0506170186006763	0.0506170186006763
-11208	8161	8162	0.355822290917686	0.355822290917686
-11220	8169	106	0.241259609778708	0.241259609778708
-11240	8178	8182	0.0195790567337129	0.0195790567337129
-20821	8330	10923	0.00839528658401215	0.00839528658401215
-17791	3305	8508	0.0362477709828647	0.0362477709828647
-11322	8214	5950	0.203024250253409	0.203024250253409
-13061	8944	8945	0.0479106655937031	0.0479106655937031
-11349	1754	4801	0.0245317247967943	0.0245317247967943
-11390	8244	8245	0.0389791405679458	0.0389791405679458
-17817	9286	10185	0.00969626713044654	0.00969626713044654
-11462	8270	701	0.039999373678842	0.039999373678842
-11492	8281	8282	0.00503511807894305	0.00503511807894305
-11538	8302	8303	0.0107298944611382	0.0107298944611382
-11571	7713	8322	0.206137749537799	0.206137749537799
-11573	1766	7715	0.157141019260281	0.157141019260281
-13237	9010	4325	0.222509982407309	0.222509982407309
-11632	1278	4529	0.134276517370514	0.134276517370514
-11724	8374	8375	0.133513247237079	0.133513247237079
-11797	8414	4446	0.0913151320718964	0.0913151320718964
-11798	4446	6565	0.148651456771305	0.148651456771305
-11799	6565	8038	0.145022863674794	0.145022863674794
-13411	4426	9064	0.0342337858603608	0.0342337858603608
-11882	8457	1807	0.101184879886606	0.101184879886606
-13518	7635	7602	0.0983630321096794	0.0983630321096794
-11995	8048	6576	0.143165005086162	0.143165005086162
-12062	8532	3932	0.283100338690813	0.283100338690813
-12064	8532	3745	0.0315839509500456	0.0315839509500456
-12065	3745	8533	0.0402006397458181	0.0402006397458181
-16198	1788	6622	0.140253824514813	0.140253824514813
-12143	2334	7677	0.0942814693046897	0.0942814693046897
-13771	2561	9189	0.0689861433647756	0.0689861433647756
-18571	10322	10326	0.0103554459054315	0.0103554459054315
-15556	9654	9655	0.107168580692288	0.107168580692288
-12220	8596	8597	0.100597506592905	0.100597506592905
-12284	8235	7279	0.114584410389232	0.114584410389232
-12290	8634	8488	0.146216431524827	0.146216431524827
-15445	9605	9606	0.0107985098434616	0.0107985098434616
-12402	8686	2352	0.174110261708509	0.174110261708509
-12403	2352	4154	0.17319721774215	0.17319721774215
-12445	8705	902	0.277961591263562	0.277961591263562
-16201	7209	5822	0.204832695484964	0.204832695484964
-14071	3116	6673	0.099476803467174	0.099476803467174
-12563	729	7060	0.0981255480039199	0.0981255480039199
-12670	8793	5460	0.173942223750684	0.173942223750684
-12698	8808	8810	0.00713796130621387	0.00713796130621387
-12701	2643	8805	0.104981962462916	0.104981962462916
-12721	3633	3295	0.250204598549556	0.250204598549556
-16683	9985	9930	0.0816514509832002	0.0816514509832002
-12762	3506	8170	0.201022944642928	0.201022944642928
-15870	8842	8843	0.0221571458561984	0.0221571458561984
-15950	9765	9766	0.0194093177763062	0.0194093177763062
-12930	3167	8897	0.107237063498964	0.107237063498964
-14520	3985	7053	0.133213475028965	0.133213475028965
-15337	9564	9565	0.0333323202761363	0.0333323202761363
-15952	9765	9758	0.0491105082028732	0.0491105082028732
-13016	8918	8921	0.143291466888449	0.143291466888449
-13097	8917	8959	0.032086215385934	0.032086215385934
-13121	640	8968	0.045462010282231	0.045462010282231
-13175	4472	2794	0.133415072213096	0.133415072213096
-13447	9080	4647	0.227691913723815	0.227691913723815
-19029	7690	8144	0.0861073402797158	0.0861073402797158
-13280	4312	7812	0.197562058294396	0.197562058294396
-20373	10757	10758	0.0390214492856105	0.0390214492856105
-13466	9093	9091	0.0528525628364664	0.0528525628364664
-15458	1970	8766	0.0532545399938913	0.0532545399938913
-13600	2311	6580	0.108271978342533	0.108271978342533
-13622	3355	9148	0.0901126087179192	0.0901126087179192
-15127	8268	225	0.129419996314042	0.129419996314042
-15855	9737	9738	0.0422997339419691	0.0422997339419691
-15953	9758	9764	0.0382745737843307	0.0382745737843307
-13641	9152	327	0.371274069669657	0.371274069669657
-13690	6833	6976	0.085342873664165	0.085342873664165
-15860	9707	9741	0.0544957036472965	0.0544957036472965
-13709	6929	3818	0.116035215256342	0.116035215256342
-15411	7964	9590	0.052042549974644	0.052042549974644
-18495	15	6384	0.132622389900901	0.132622389900901
-18578	10319	10327	0.0490398009212077	0.0490398009212077
-13818	8483	6705	0.147706661087796	0.147706661087796
-13972	9250	9251	0.0609360549506678	0.0609360549506678
-20378	10761	10762	0.0703070927126279	0.0703070927126279
-14062	6351	2574	0.0264285559063396	0.0264285559063396
-4057	542	3837	0.0481841661951123	0.0481841661951123
-20619	10811	10850	0.0311826470096292	0.0311826470096292
-14143	9286	9287	0.00349243594701226	0.00349243594701226
-15782	2533	9708	0.0671466764878958	0.0671466764878958
-18700	1376	9773	0.0602159412724284	0.0602159412724284
-19501	10528	10529	0.0145223093781074	0.0145223093781074
-16094	9821	9496	0.0522797219291825	0.0522797219291825
-16682	9984	9985	0.111071610148866	0.111071610148866
-16220	9022	9008	0.10706671130041	0.10706671130041
-16222	9850	7740	0.404338691233817	0.404338691233817
-16223	7740	5835	0.200008410058821	0.200008410058821
-14438	6143	4017	0.133566629484228	0.133566629484228
-14458	9168	3834	0.0502958887489777	0.0502958887489777
-16499	8709	8890	0.00781309402153006	0.00781309402153006
-14504	9364	2172	0.0261972288759813	0.0261972288759813
-16631	9312	9964	0.536418418139307	0.536418418139307
-16632	9964	9965	0.081644512591407	0.081644512591407
-15472	8892	1971	0.0354218020701201	0.0354218020701201
-14617	9402	9350	0.13375643872535	0.13375643872535
-14954	7265	7584	0.0944614970989242	0.0944614970989242
-4076	3852	3853	0.00162344592902021	0.00162344592902021
-15099	7228	2370	0.054925658104601	0.054925658104601
-16381	9878	9879	0.0338421848775343	0.0338421848775343
-16508	9928	9929	0.0170279633676167	0.0170279633676167
-16525	5158	7669	0.0405110122092171	0.0405110122092171
-16594	9950	9951	0.140650325269802	0.140650325269802
-17419	10101	10102	0.0281887857345848	0.0281887857345848
-16852	9866	6519	0.0479747206312546	0.0479747206312546
-16968	10038	10045	0.00348952632939911	0.00348952632939911
-17638	10159	9498	0.0561256700305383	0.0561256700305383
-17642	8238	524	0.198799957504709	0.198799957504709
-17105	331	10064	0.12693044123038	0.12693044123038
-17422	10082	10083	0.0318734478115971	0.0318734478115971
-17268	4260	3518	0.200851927356296	0.200851927356296
-17398	7305	3261	0.198983160217956	0.198983160217956
-17400	3509	4251	0.199228485757107	0.199228485757107
-17911	4835	9197	0.134589353492833	0.134589353492833
-17544	8941	8264	0.168906883412351	0.168906883412351
-18155	10135	10136	0.408197365852498	0.408197365852498
-17572	10145	10146	0.0800519816931861	0.0800519816931861
-17628	2882	8136	0.162489310093733	0.162489310093733
-18601	10335	7656	0.178628836370645	0.178628836370645
-17816	9287	10184	0.0350560568035198	0.0350560568035198
-17966	6242	10236	0.0113656789072773	0.0113656789072773
-17886	9955	4390	0.0561034767074801	0.0561034767074801
-17918	5173	6867	0.199959252458115	0.199959252458115
-17919	6867	5276	0.0971272913038605	0.0971272913038605
-19066	5495	9469	0.177422724680083	0.177422724680083
-19037	9496	9494	0.0281063525870562	0.0281063525870562
-18774	9642	7121	0.176777734913143	0.176777734913143
-19101	10429	10049	0.0400790686743565	0.0400790686743565
-19617	10477	10588	0.0688805182452796	0.0688805182452796
-19314	6700	5030	0.15289416238876	0.15289416238876
-19425	36	3535	0.208182345564595	0.208182345564595
-19426	3535	4231	0.197905943796208	0.197905943796208
-19462	10478	10483	0.0205384885375563	0.0205384885375563
-19725	4489	10627	0.00886289645656064	0.00886289645656064
-19764	5140	5153	0.0242552277861381	0.0242552277861381
-20136	2752	6988	0.0528412012093399	0.0528412012093399
-19927	4579	8367	0.130318576605927	0.130318576605927
-20000	10690	8645	0.0319530891427096	0.0319530891427096
-4106	1534	3875	0.0874992877759652	0.0874992877759652
-20047	9078	9193	0.27590001979893	0.27590001979893
-397	400	401	0.186988741368815	0.186988741368815
-398	401	402	0.0834459188949902	0.0834459188949902
-400	403	313	0.0512719310633618	0.0512719310633618
-402	404	405	0.135745743044228	0.135745743044228
-404	406	407	0.304825723005793	0.304825723005793
-406	408	409	0.43926972528011	0.43926972528011
-408	410	411	0.386425449179561	0.386425449179561
-410	412	413	0.296429557961552	0.296429557961552
-411	413	414	0.0146716283322865	0.0146716283322865
-412	414	415	0.325808855480319	0.325808855480319
-414	416	328	0.121195048255912	0.121195048255912
-416	329	416	0.287289513548727	0.287289513548727
-417	416	417	0.245312696429149	0.245312696429149
-20053	1955	8185	0.122183214039011	0.122183214039011
-20198	8571	5783	0.145694845246542	0.145694845246542
-14833	7026	8320	0.0139341057083995	0.0139341057083995
-14834	8320	7029	0.0476978989477955	0.0476978989477955
-15442	9600	8606	0.035907314389173	0.035907314389173
-19656	10607	10531	0.00409092160847847	0.00409092160847847
-20737	10917	10886	0.0142612706482701	0.0142612706482701
-14870	9363	2450	0.140513945011527	0.140513945011527
-11514	269	270	0.151462432210479	0.151462432210479
-12364	8672	8674	0.0109017354569362	0.0109017354569362
-12	12	13	0.134681710739383	0.134681710739383
-14892	8103	9009	0.099173697837006	0.099173697837006
-14893	9009	8146	0.0976735888216106	0.0976735888216106
-33	36	37	0.0487053100188426	0.0487053100188426
-14912	7271	7600	0.0956539249415721	0.0956539249415721
-18874	7987	218	0.124810113553517	0.124810113553517
-18876	3520	84	0.204554290109371	0.204554290109371
-15454	8884	9611	0.0785818613777641	0.0785818613777641
-322	154	206	0.0287029588335131	0.0287029588335131
-18627	9483	1310	0.220178764490314	0.220178764490314
-18894	10375	10376	0.00936614397970835	0.00936614397970835
-15122	8269	9491	0.0542877044701678	0.0542877044701678
-18715	7650	8069	0.263314494448216	0.263314494448216
-15971	8998	4214	0.0961806119218467	0.0961806119218467
-551	544	545	0.0205710614294522	0.0205710614294522
-15166	7386	9508	0.0293624650986513	0.0293624650986513
-18679	2589	1852	0.179197761430995	0.179197761430995
-602	593	594	0.0187536593392831	0.0187536593392831
-16091	9818	526	0.0930965533879819	0.0930965533879819
-13959	448	9111	0.0841767201213853	0.0841767201213853
-16119	427	4010	0.113680084788302	0.113680084788302
-17947	10226	10227	0.0385043082181171	0.0385043082181171
-16175	7201	5812	0.201274753121947	0.201274753121947
-699	693	694	0.0993204992661042	0.0993204992661042
-16265	9865	7738	0.345896015945794	0.345896015945794
-16341	9873	8704	0.014474001055321	0.014474001055321
-11688	774	775	0.0224766779818413	0.0224766779818413
-16464	1081	9912	0.0130855777393443	0.0130855777393443
-18428	2983	10286	0.340223280394145	0.340223280394145
-16719	485	10003	0.0666623735199971	0.0666623735199971
-18212	2988	7850	0.201655156198778	0.201655156198778
-18213	7850	6382	0.201197176818258	0.201197176818258
-17132	1799	4238	0.205173852791716	0.205173852791716
-268	278	279	0.0669047721045728	0.0669047721045728
-18436	10287	10292	0.102997198003519	0.102997198003519
-17134	3543	44	0.198313047920784	0.198313047920784
-15194	7392	9524	0.0521516926212219	0.0521516926212219
-19559	10563	10553	0.0196751082256841	0.0196751082256841
-19864	10666	10667	0.12344950946071	0.12344950946071
-1022	827	1037	0.134288205933024	0.134288205933024
-19991	10682	10649	0.0504069045792634	0.0504069045792634
-327	328	329	0.206425005842362	0.206425005842362
-15245	9540	9541	0.00803794786000152	0.00803794786000152
-14681	446	727	0.207769052846247	0.207769052846247
-18636	1846	2580	0.177268272488638	0.177268272488638
-15883	9594	8842	0.0247081602797847	0.0247081602797847
-18445	1124	10289	0.0496295455281554	0.0496295455281554
-15483	9622	9623	0.0434553081653394	0.0434553081653394
-15784	9596	2105	0.0159980383240888	0.0159980383240888
-18450	7849	2986	0.202541671618508	0.202541671618508
-15540	1221	8429	0.105180771417586	0.105180771417586
-17095	3719	3720	0.174398206796096	0.174398206796096
-12950	1330	1331	0.0133918888831226	0.0133918888831226
-19570	10569	7462	0.00803939319633032	0.00803939319633032
-1312	1338	1339	0.0991205046552405	0.0991205046552405
-15958	9768	9769	0.0623405517746533	0.0623405517746533
-325	268	153	0.064083026712354	0.064083026712354
-386	388	389	0.0751873239589982	0.0751873239589982
-1392	1419	1420	0.399589215327938	0.399589215327938
-16282	9096	9098	0.0807475840805468	0.0807475840805468
-391	393	394	0.185819928048464	0.185819928048464
-15753	6671	2023	0.100119371100459	0.100119371100459
-18126	6042	10262	0.201564202628959	0.201564202628959
-17137	4425	1909	0.200241543203617	0.200241543203617
-16013	9783	9784	0.0337977814282775	0.0337977814282775
-12006	8049	6578	0.147083508160087	0.147083508160087
-2343	2334	2335	0.271393460830069	0.271393460830069
-19952	4670	7857	0.100774147000306	0.100774147000306
-20659	8289	5957	0.0879515292456205	0.0879515292456205
-12349	8665	8666	0.0489645255680358	0.0489645255680358
-1536	1559	1560	0.0937807122385258	0.0937807122385258
-2410	2115	2401	0.446933916798798	0.446933916798798
-19581	7470	10575	0.00667183269883622	0.00667183269883622
-1557	1582	1583	0.0811305260417956	0.0811305260417956
-469	472	473	0.100239678379349	0.100239678379349
-569	562	563	0.0844940522055572	0.0844940522055572
-12010	5508	7081	0.146350144860015	0.146350144860015
-2663	2621	2622	0.0420400210402162	0.0420400210402162
-16696	9597	7094	0.00600769898364912	0.00600769898364912
-18883	7310	84	0.202570183098447	0.202570183098447
-16736	7419	10004	0.204798388413466	0.204798388413466
-1623	1651	1652	0.0452674748546477	0.0452674748546477
-12948	1303	1304	0.066448544071591	0.066448544071591
-20711	10885	10914	0.126940460926274	0.126940460926274
-20712	10914	5881	0.00554916008288024	0.00554916008288024
-16509	9929	9930	0.0673766892433469	0.0673766892433469
-1643	1670	1671	0.136647738333876	0.136647738333876
-19534	6856	10550	0.00719456093421717	0.00719456093421717
-19538	4704	10552	0.0168576392161317	0.0168576392161317
-19539	10552	10553	0.00416995013524246	0.00416995013524246
-11689	775	836	0.0388095868373909	0.0388095868373909
-20	21	22	0.0174708821601448	0.0174708821601448
-16449	9906	9907	0.130469688472308	0.130469688472308
-41	44	45	0.0507831501846365	0.0507831501846365
-17298	7736	5829	0.204153885319898	0.204153885319898
-64	70	71	0.046163806906163	0.046163806906163
-18467	10299	10298	0.126605139952982	0.126605139952982
-18685	1316	1372	0.177012768030012	0.177012768030012
-1826	1842	1843	0.155652098486701	0.155652098486701
-19783	3732	10633	0.0548138207459151	0.0548138207459151
-1846	1861	1862	0.0495211888216282	0.0495211888216282
-177	186	187	0.102075274690852	0.102075274690852
-202	214	215	0.233063347854791	0.233063347854791
-271	281	282	0.0968799942510371	0.0968799942510371
-335	336	337	0.26926308578439	0.26926308578439
-14122	3945	503	0.0521094341958735	0.0521094341958735
-1949	1964	1965	0.100541047482359	0.100541047482359
-503	497	498	0.332501427216364	0.332501427216364
-508	502	503	0.0804669922754196	0.0804669922754196
-19271	10424	10425	0.0133101789702176	0.0133101789702176
-19460	10507	10477	0.0195042673008727	0.0195042673008727
-12962	1631	1599	0.105987129966341	0.105987129966341
-11814	2150	2151	0.12777055976042	0.12777055976042
-18730	7649	8066	0.263509830967107	0.263509830967107
-18671	2605	1538	0.176823430683456	0.176823430683456
-20037	816	3558	0.154160936652516	0.154160936652516
-20700	10894	10895	0.0022719801727208	0.0022719801727208
-17029	3606	3607	0.0180484124991241	0.0180484124991241
-850	863	864	0.0616242283467915	0.0616242283467915
-18683	3539	3608	0.177667253998454	0.177667253998454
-20825	9400	10954	0.0122123114573311	0.0122123114573311
-872	885	886	0.105399149486358	0.105399149486358
-19920	2621	10413	0.177079309456246	0.177079309456246
-892	906	907	0.104783494637697	0.104783494637697
-12344	8660	8661	0.0179171962919351	0.0179171962919351
-17141	3089	4509	0.200737491088575	0.200737491088575
-16291	2376	2377	0.00482087191216397	0.00482087191216397
-963	974	975	0.202802632214452	0.202802632214452
-17135	44	4412	0.404761668333185	0.404761668333185
-17088	10071	9940	0.138093381903903	0.138093381903903
-16845	10022	10018	0.0055152683612349	0.0055152683612349
-17952	10226	10230	0.0192923880160408	0.0192923880160408
-20322	10741	10742	0.00907488670500163	0.00907488670500163
-1113	1129	1130	0.204124873969403	0.204124873969403
-16607	7890	9325	0.145145340110648	0.145145340110648
-15260	9550	9551	0.0630135708366092	0.0630135708366092
-19433	10110	10489	0.0489242953920304	0.0489242953920304
-16954	10038	10039	0.0207511303582817	0.0207511303582817
-12357	8669	8668	0.00723037090372959	0.00723037090372959
-1183	1198	1199	0.0305943034250603	0.0305943034250603
-19442	10493	10494	0.0196148764551294	0.0196148764551294
-19443	10494	10495	0.0228284210093234	0.0228284210093234
-2633	2594	2595	0.0115937480855902	0.0115937480855902
-1205	1220	1221	0.0900481853791487	0.0900481853791487
-18180	5796	6056	0.200195877654712	0.200195877654712
-11707	1245	1246	0.0231530055304531	0.0231530055304531
-19444	10495	10496	0.0213401735101805	0.0213401735101805
-19445	10496	10497	0.0182367704590367	0.0182367704590367
-2703	2659	2660	0.155649282617483	0.155649282617483
-19446	10497	10498	0.0203055071588043	0.0203055071588043
-2724	107	2679	0.0450807290855188	0.0450807290855188
-1266	1286	1287	0.0202842890457172	0.0202842890457172
-18451	2986	7704	0.199650644692106	0.199650644692106
-16289	1363	2376	0.00344312944616261	0.00344312944616261
-19447	10498	10499	0.0196160459333464	0.0196160459333464
-14693	2225	4875	0.162113763012991	0.162113763012991
-1308	1334	1335	0.129255645714035	0.129255645714035
-14695	4946	4947	0.168905093573288	0.168905093573288
-1332	1357	1358	0.136424467862451	0.136424467862451
-19448	10499	10487	0.023296750596408	0.023296750596408
-2841	2789	2790	0.0523852002781698	0.0523852002781698
-15843	7795	9723	0.020416694003674	0.020416694003674
-18886	7308	3267	0.201549354300641	0.201549354300641
-19449	10487	10500	0.022940948763835	0.022940948763835
-17307	5827	7735	0.20365816745981	0.20365816745981
-2499	2480	2481	0.265342544498994	0.265342544498994
-19450	10500	10501	0.0189264900266028	0.0189264900266028
-18889	1923	6123	0.200475462008098	0.200475462008098
-1428	1451	1452	0.107578729884622	0.107578729884622
-18647	7412	4053	0.176566575042864	0.176566575042864
-1452	1471	1472	0.147622384612895	0.147622384612895
-19451	10501	10502	0.0200830353316625	0.0200830353316625
-2953	2897	2898	0.0472912053919854	0.0472912053919854
-16310	2439	2721	0.0812562615874829	0.0812562615874829
-12320	1302	1603	0.00893905362813633	0.00893905362813633
-19452	10502	10503	0.0197272337869401	0.0197272337869401
-19453	10503	7482	0.0181814350817939	0.0181814350817939
-19038	9494	229	0.0588468541295868	0.0588468541295868
-1498	1517	1518	0.199413272863754	0.199413272863754
-15846	9732	1098	0.0848710138660927	0.0848710138660927
-19454	7482	10504	0.0196839111368948	0.0196839111368948
-19455	10504	10505	0.017559948119168	0.017559948119168
-13365	9051	9052	0.103390283727961	0.103390283727961
-2998	1652	2935	0.112349122861115	0.112349122861115
-17375	1796	4235	0.206436210016501	0.206436210016501
-13963	9247	9102	0.0619095710643366	0.0619095710643366
-1534	1557	1558	0.0743776380849984	0.0743776380849984
-19916	8774	7640	0.176934657107496	0.176934657107496
-19917	7640	6233	0.179269287981755	0.179269287981755
-1556	1581	1582	0.0903340712116846	0.0903340712116846
-18461	9354	9528	0.135770728089025	0.135770728089025
-19456	10505	7464	0.0643341844968674	0.0643341844968674
-19919	5202	2621	0.177194532329155	0.177194532329155
-1603	1634	1635	0.0667169559865797	0.0667169559865797
-15911	9239	9240	0.00759910247117962	0.00759910247117962
-3133	2004	3061	0.0946875314878615	0.0946875314878615
-1648	1675	1676	0.0232219414191173	0.0232219414191173
-1649	1676	1677	0.104810655650978	0.104810655650978
-18412	7776	7163	0.0985154391997448	0.0985154391997448
-3153	3077	3078	0.0921654003892753	0.0921654003892753
-1666	1129	1692	0.0515669276869657	0.0515669276869657
-256	264	265	0.00881331069899833	0.00881331069899833
-19580	10574	7470	0.0064160385090956	0.0064160385090956
-1690	1714	1715	0.111918529606987	0.111918529606987
-12366	8674	8671	0.0118216471510326	0.0118216471510326
-18801	10352	9812	0.039652100920871	0.039652100920871
-379	381	382	0.0684082960066799	0.0684082960066799
-16308	2827	2851	0.00473328951361683	0.00473328951361683
-20640	10878	10879	0.0287629224507079	0.0287629224507079
-20278	5573	10727	0.00799925463089475	0.00799925463089475
-18122	2538	10266	0.180269607102109	0.180269607102109
-1907	1919	1920	0.101419584890654	0.101419584890654
-16419	3282	3283	0.0297579469637327	0.0297579469637327
-11533	1234	1235	0.136499599599558	0.136499599599558
-18135	4099	6043	0.191045620861521	0.191045620861521
-16763	4439	9868	0.0469300202486105	0.0469300202486105
-257	265	257	0.0618021904449226	0.0618021904449226
-3413	3306	3307	0.147259003832799	0.147259003832799
-1997	2009	2010	0.0436503011483876	0.0436503011483876
-381	383	384	0.174765079599045	0.174765079599045
-3437	3324	3325	0.13969071524798	0.13969071524798
-2020	2029	2030	0.0536884532048604	0.0536884532048604
-14708	5223	5330	0.173633760067415	0.173633760067415
-17179	5410	5449	0.194891408787823	0.194891408787823
-2041	2049	2050	0.203224924896292	0.203224924896292
-15894	9255	9441	0.0812248966226341	0.0812248966226341
-2068	2071	2072	0.108635365611271	0.108635365611271
-383	385	386	0.313694212518365	0.313694212518365
-15938	9757	9756	0.156652526688463	0.156652526688463
-2092	1220	2094	0.120498651922126	0.120498651922126
-16738	725	51	0.242028173240196	0.242028173240196
-19560	10553	10564	0.0204794292027182	0.0204794292027182
-2166	2165	2166	0.0846335919696035	0.0846335919696035
-19638	10597	10526	0.00694709641094844	0.00694709641094844
-3597	3446	2803	0.137873345883867	0.137873345883867
-16317	2510	3005	0.00592207877923616	0.00592207877923616
-17174	5326	5327	0.109586213492937	0.109586213492937
-16740	4437	10005	0.047793833799427	0.047793833799427
-3644	3483	3484	0.202897902969007	0.202897902969007
-2231	2232	2233	0.0942717670146639	0.0942717670146639
-2232	2233	2234	0.0947564865992517	0.0947564865992517
-16741	10005	4510	0.0465117651564764	0.0465117651564764
-2248	2251	2252	0.0515208780131149	0.0515208780131149
-16742	4510	10006	0.0392105126712721	0.0392105126712721
-3687	3523	3524	0.057537938641533	0.057537938641533
-2276	2276	2277	0.201064010739015	0.201064010739015
-18183	6051	5769	0.201340675613812	0.201340675613812
-18863	9178	2185	0.000908525082812035	0.000908525082812035
-14108	502	3544	0.223192299132	0.223192299132
-16417	3130	3281	0.0400386431725339	0.0400386431725339
-16286	1362	1363	0.0694355006798695	0.0694355006798695
-3729	3563	3564	0.1023601599905	0.1023601599905
-13961	9112	9247	0.133632751867418	0.133632751867418
-2325	1348	1614	0.104366499106977	0.104366499106977
-18909	10388	10381	0.014813120492833	0.014813120492833
-18903	10381	10380	0.00882005349877488	0.00882005349877488
-18454	4296	10295	0.0897566766881454	0.0897566766881454
-14692	941	2225	0.184174515609916	0.184174515609916
-19558	10562	10563	0.0196153093677919	0.0196153093677919
-16743	10006	7566	0.0419162617939555	0.0419162617939555
-19568	7474	10568	0.0062936328481519	0.0062936328481519
-18905	10382	10383	0.00831887899673018	0.00831887899673018
-17147	4241	3546	0.202185735299221	0.202185735299221
-14720	937	2221	0.184339220920538	0.184339220920538
-18637	2580	7383	0.244324669292135	0.244324669292135
-2484	2467	2468	0.0154146632189528	0.0154146632189528
-17183	5608	5658	0.149882473899379	0.149882473899379
-3908	3707	3708	0.138080579549583	0.138080579549583
-2555	2532	2533	0.191131540477931	0.191131540477931
-2556	2533	254	0.098486007419044	0.098486007419044
-19573	10570	7473	0.00674972719310255	0.00674972719310255
-2577	1090	2550	0.0509764502640852	0.0509764502640852
-17311	5685	5705	0.205154639659543	0.205154639659543
-20594	10852	10864	0.00559477666444464	0.00559477666444464
-2602	2568	2565	0.0838899757725962	0.0838899757725962
-13584	9079	9135	0.0736016285399027	0.0736016285399027
-3952	3748	3749	0.123087650580437	0.123087650580437
-2626	2587	2588	0.00484286584971978	0.00484286584971978
-2627	2588	2589	0.0472712028951763	0.0472712028951763
-18404	10286	7165	0.0480937532986949	0.0480937532986949
-18406	9349	8340	0.136218529796162	0.136218529796162
-13586	9135	9136	0.116423294527986	0.116423294527986
-14719	5893	937	0.0748599535472642	0.0748599535472642
-2721	2676	2677	0.00391406141859358	0.00391406141859358
-18735	4002	7603	0.202077020511888	0.202077020511888
-17677	6029	10165	0.522362145407342	0.522362145407342
-17480	344	5940	0.0510780896194201	0.0510780896194201
-2823	2771	2261	0.100546651913918	0.100546651913918
-18144	10275	10261	0.405650212701817	0.405650212701817
-12350	8663	8667	0.00958750951684791	0.00958750951684791
-4125	3888	3889	0.19728512260693	0.19728512260693
-2839	2788	1047	0.105687024742303	0.105687024742303
-2840	1047	2789	0.0528381886609336	0.0528381886609336
-12351	8667	8668	0.0176529909929813	0.0176529909929813
-19572	10564	10570	0.0698992084212194	0.0698992084212194
-16413	9458	9887	0.0468003057153474	0.0468003057153474
-2910	785	2854	0.0936375066158938	0.0936375066158938
-12361	8671	8672	0.0146217858658369	0.0146217858658369
-2955	2899	2900	0.139071498957734	0.139071498957734
-20621	10800	10799	0.0197706815366264	0.0197706815366264
-16441	5747	9898	0.0366397439833697	0.0366397439833697
-3003	2938	2939	0.343360355018568	0.343360355018568
-20697	4524	10911	0.0102002426471616	0.0102002426471616
-20441	10798	10799	0.0151893809033584	0.0151893809033584
-3052	2983	2984	0.049669116788992	0.049669116788992
-17130	4371	4372	0.0862019013563638	0.0862019013563638
-3072	3004	3006	0.148595619798792	0.148595619798792
-20009	9620	10046	0.0380951574175552	0.0380951574175552
-4390	4106	695	0.201687631399372	0.201687631399372
-18702	2606	1861	0.182749323037212	0.182749323037212
-3122	2901	3051	0.104668558602022	0.104668558602022
-20265	5574	10723	0.0117861788911356	0.0117861788911356
-20266	10724	7552	0.00870010659628447	0.00870010659628447
-19624	10591	10497	0.00644185269782912	0.00644185269782912
-19579	10573	10574	0.0879788736402366	0.0879788736402366
-18895	10376	10377	0.0641298068195797	0.0641298068195797
-20011	10694	10695	0.0242395353024572	0.0242395353024572
-17687	6171	6172	0.0391351463481426	0.0391351463481426
-3160	3084	3085	0.0490903700114876	0.0490903700114876
-19594	10580	10495	0.00720293691626167	0.00720293691626167
-3180	3100	3101	0.129889039932712	0.129889039932712
-17168	5241	5262	0.201125324676422	0.201125324676422
-17121	1798	4176	0.205688375484509	0.205688375484509
-3202	3118	3119	0.112364882779035	0.112364882779035
-14726	5162	6220	0.0504817306174529	0.0504817306174529
-3225	3140	3141	0.161478257380345	0.161478257380345
-13781	438	3176	0.297045355127737	0.297045355127737
-19813	5371	10633	0.121358837066421	0.121358837066421
-3298	3207	2047	0.106039987596014	0.106039987596014
-17169	5262	1912	0.201876443466571	0.201876443466571
-4605	3695	4261	0.0511463408235916	0.0511463408235916
-3320	3225	3226	0.12416264535459	0.12416264535459
-19269	10421	10423	0.00254934916501421	0.00254934916501421
-18686	1372	4116	0.0631464225691973	0.0631464225691973
-20456	10811	10791	0.0266421174352104	0.0266421174352104
-20624	10873	10804	0.10579809531994	0.10579809531994
-18140	10260	10273	0.404128367861769	0.404128367861769
-4673	4035	4316	0.0606123696093501	0.0606123696093501
-3387	3285	3286	0.00355897702027561	0.00355897702027561
-3388	3286	3287	0.0772193168955733	0.0772193168955733
-18146	10276	10258	0.404206655907194	0.404206655907194
-4696	808	3552	0.152717552993661	0.152717552993661
-3410	3303	3304	0.147141483236073	0.147141483236073
-20283	10722	10688	0.0815558763222832	0.0815558763222832
-20448	10804	10757	0.0136201124223367	0.0136201124223367
-20785	10292	10946	0.00447271282341959	0.00447271282341959
-19630	10593	10504	0.00657829834277663	0.00657829834277663
-3431	3318	3319	0.157091916454475	0.157091916454475
-20450	10805	10806	0.0327940652155406	0.0327940652155406
-4743	1385	4362	0.103327121803573	0.103327121803573
-18254	6754	8093	0.140439193425512	0.140439193425512
-18250	9369	6873	0.0520299718080319	0.0520299718080319
-20787	10932	5700	0.00677435562999442	0.00677435562999442
-3475	3354	3355	0.201619360833214	0.201619360833214
-14728	6303	5053	0.0505955795491821	0.0505955795491821
-3501	59	3374	0.0977645612190622	0.0977645612190622
-4808	4414	4415	0.102078381821333	0.102078381821333
-3525	3393	3394	0.0602077843108352	0.0602077843108352
-18251	6873	8493	0.0500003986375519	0.0500003986375519
-3545	656	1887	0.0518725917476049	0.0518725917476049
-14732	5467	6342	0.17284299485541	0.17284299485541
-3566	1664	1683	0.0314909646044893	0.0314909646044893
-17138	1909	4488	0.199449310001805	0.199449310001805
-18256	7043	3984	0.199449230757582	0.199449230757582
-4925	3762	2559	0.0885452473584724	0.0885452473584724
-18261	6496	2547	0.410253746717568	0.410253746717568
-3637	3478	3266	0.200452444377038	0.200452444377038
-3638	3266	3479	0.201663130575812	0.201663130575812
-20636	4518	10876	0.0502632727704227	0.0502632727704227
-3656	1794	3493	0.171297280470528	0.171297280470528
-18171	6061	4076	0.198476287736927	0.198476287736927
-20376	10759	10760	0.116931333825994	0.116931333825994
-3702	3537	3538	0.048566556365416	0.048566556365416
-20385	10293	10769	0.0538892457987372	0.0538892457987372
-18174	6420	6455	0.4094647827628	0.4094647827628
-5048	4577	4578	0.133343896044873	0.133343896044873
-3745	3575	3576	0.0911473636959273	0.0911473636959273
-3747	3577	3469	0.101252045857741	0.101252045857741
-20384	10767	10768	0.0160296914364663	0.0160296914364663
-17309	4261	5684	0.20074031502923	0.20074031502923
-18311	7054	7244	0.0289643230302344	0.0289643230302344
-20470	10819	10820	0.0323669425461701	0.0323669425461701
-14736	4161	4770	0.262098569801346	0.262098569801346
-5118	4637	4638	0.0862888373921514	0.0862888373921514
-18265	6532	1691	0.20439620202731	0.20439620202731
-20472	10821	10822	0.0473810496096361	0.0473810496096361
-5168	2615	4670	0.0537518017226415	0.0537518017226415
-18530	9153	9524	0.0561612407510351	0.0561612407510351
-17081	882	4467	0.138148999917071	0.138148999917071
-20012	10207	7896	0.145636470907972	0.145636470907972
-20423	10784	10785	0.00445123207828982	0.00445123207828982
-19137	10436	10430	0.0315234230528839	0.0315234230528839
-17145	4684	1801	0.196612355705575	0.196612355705575
-3889	3694	83	0.201794860941248	0.201794860941248
-18574	10316	10323	0.0808271649311999	0.0808271649311999
-17148	3546	46	0.198774198414449	0.198774198414449
-3912	3710	3711	0.148294717491307	0.148294717491307
-20615	10786	10857	0.0479734082124594	0.0479734082124594
-18267	6545	2438	0.164157220604829	0.164157220604829
-17099	332	3745	0.0956275481171213	0.0956275481171213
-14740	6607	3802	0.199799384709315	0.199799384709315
-18269	5736	5525	0.155855016610815	0.155855016610815
-5281	4748	4749	0.0137701294893219	0.0137701294893219
-3961	3755	3756	0.201785607236284	0.201785607236284
-3963	3757	1865	0.238183107088451	0.238183107088451
-18538	10309	10310	0.222695826046938	0.222695826046938
-4053	3833	3834	0.0227974048946719	0.0227974048946719
-18576	10324	10320	0.158325840757882	0.158325840757882
-5401	3070	4833	0.174791291148441	0.174791291148441
-20827	9001	9205	0.0113889892669974	0.0113889892669974
-16010	9780	9781	0.00910284197008254	0.00910284197008254
-18606	8065	6592	0.262343816062173	0.262343816062173
-18608	2631	5208	0.201029440504885	0.201029440504885
-20328	10745	10742	0.0339039031846942	0.0339039031846942
-4098	1552	3870	0.130787042699874	0.130787042699874
-16079	9815	9284	0.0214365694827313	0.0214365694827313
-18703	1861	7871	0.177358977412927	0.177358977412927
-5445	4865	4866	0.0483753395839426	0.0483753395839426
-4124	2246	3888	0.176179418850458	0.176179418850458
-18692	1856	5978	0.157563244482301	0.157563244482301
-5513	4918	1222	0.0334183748575429	0.0334183748575429
-4193	3941	3942	0.10150841538758	0.10150841538758
-18280	6739	6757	0.185196443942793	0.185196443942793
-18287	3986	6762	0.199195011240905	0.199195011240905
-4211	3961	3962	0.203354581445588	0.203354581445588
-18282	6460	6792	0.289344591592559	0.289344591592559
-18709	7654	7506	0.191266971634704	0.191266971634704
-4258	4004	4005	0.0557864946968893	0.0557864946968893
-18293	6900	6901	0.125065642459057	0.125065642459057
-4279	4022	4023	0.136471513645059	0.136471513645059
-18285	6794	6824	0.0676234540262284	0.0676234540262284
-20412	10780	10737	0.00327519593576582	0.00327519593576582
-5639	1165	885	0.138504687840451	0.138504687840451
-18705	4059	9745	0.17218742858343	0.17218742858343
-5680	5036	5037	0.13925145495263	0.13925145495263
-4340	4070	4006	0.0527657969561626	0.0527657969561626
-4341	4006	4071	0.045563339939639	0.045563339939639
-18706	9745	3863	0.0360430655172132	0.0360430655172132
-4363	4087	1214	0.050228703045046	0.050228703045046
-18708	6218	7654	0.273874816557472	0.273874816557472
-14701	5065	986	0.133961657579708	0.133961657579708
-4385	4078	4080	0.499220390775423	0.499220390775423
-17161	5086	5087	0.0305453434226413	0.0305453434226413
-4410	4124	3048	0.142041157035339	0.142041157035339
-18547	10315	7542	0.326789019301198	0.326789019301198
-5780	4917	5106	0.0912724900005868	0.0912724900005868
-4431	4139	2389	0.109327413388579	0.109327413388579
-5754	5082	5083	0.0244848814587712	0.0244848814587712
-18548	7542	5567	0.0788647232749776	0.0788647232749776
-5829	5144	5145	0.0718528722690416	0.0718528722690416
-4478	4170	4171	0.114300734663783	0.114300734663783
-14104	421	3767	0.239382300921688	0.239382300921688
-5849	1966	5160	0.213373795201997	0.213373795201997
-4498	1369	4184	0.105991036166523	0.105991036166523
-17123	3542	42	0.197838013671145	0.197838013671145
-18295	1428	6901	0.00619376962359973	0.00619376962359973
-18296	6901	6968	0.214788257098635	0.214788257098635
-5920	5198	5199	0.0509206897939403	0.0509206897939403
-4576	4176	1777	0.0501165848501884	0.0501165848501884
-20629	10873	10847	0.0359844691550279	0.0359844691550279
-18356	7764	7765	0.203486837058476	0.203486837058476
-18353	7040	3427	0.201724758100166	0.201724758100166
-6017	3447	5269	0.0916999906376171	0.0916999906376171
-4669	4312	4313	0.0844811623232087	0.0844811623232087
-18355	7763	7764	0.18255985476615	0.18255985476615
-20388	10772	10773	0.00806462172146812	0.00806462172146812
-4690	1574	4327	0.172428634063548	0.172428634063548
-14761	7128	660	0.183084210873309	0.183084210873309
-18307	7041	3428	0.200871545358079	0.200871545358079
-4768	2038	4380	0.146902820961905	0.146902820961905
-18357	7765	7253	0.0959812077322034	0.0959812077322034
-17178	5409	5410	0.041431272963648	0.041431272963648
-4841	4434	4435	0.0243817622036277	0.0243817622036277
-19636	10595	10596	0.0236895488952709	0.0236895488952709
-20494	10814	10837	0.00453902687683386	0.00453902687683386
-12316	8640	8559	0.0170391288088959	0.0170391288088959
-4864	4448	4449	0.051463626660104	0.051463626660104
-14105	3767	490	0.17231974049998	0.17231974049998
-18310	7244	7054	0.0289643230302344	0.0289643230302344
-4906	3886	865	0.080856531304005	0.080856531304005
-14762	660	7162	0.177556995744578	0.177556995744578
-14106	490	492	0.200841500024827	0.200841500024827
-6278	5468	5223	0.0507325637005759	0.0507325637005759
-20498	2955	10783	0.00926966063781334	0.00926966063781334
-18511	9529	10302	0.134870017545438	0.134870017545438
-18559	10317	10318	0.0818849597364774	0.0818849597364774
-5006	4551	4552	0.0605833275140723	0.0605833275140723
-20497	10805	2955	0.011923850145444	0.011923850145444
-6365	1258	377	0.0777271141684953	0.0777271141684953
-5032	3218	4567	0.203476554448063	0.203476554448063
-18309	3989	7244	0.103816807067418	0.103816807067418
-6389	5536	5537	0.0941709460297732	0.0941709460297732
-5052	4580	4581	0.0994044886957745	0.0994044886957745
-19827	9253	7642	0.176656738058614	0.176656738058614
-18315	7190	1430	0.126827993445383	0.126827993445383
-18691	2597	1856	0.178902858758576	0.178902858758576
-6529	1038	5638	0.106710156184621	0.106710156184621
-5211	4703	4704	0.0593965930317325	0.0593965930317325
-18320	7455	6063	0.193748278871749	0.193748278871749
-5307	4763	4764	0.0623737801227747	0.0623737801227747
-20402	10771	10761	0.045832556045337	0.045832556045337
-6659	5732	716	0.0227471694550216	0.0227471694550216
-5331	3596	4783	0.0944705655668644	0.0944705655668644
-14107	492	502	0.277229511676695	0.277229511676695
-6732	5783	5784	0.103949862025848	0.103949862025848
-14767	7420	4860	0.190666070334235	0.190666070334235
-20406	8354	10772	0.00730920335045724	0.00730920335045724
-6754	5799	5800	0.0473962648551068	0.0473962648551068
-14769	7430	4858	0.18998910813567	0.18998910813567
-5443	4863	4864	0.0452091651037792	0.0452091651037792
-19834	10654	9725	0.196434640947063	0.196434640947063
-6799	2741	5836	0.0500630331544159	0.0500630331544159
-20523	2708	10752	0.00659207654644855	0.00659207654644855
-18323	7479	7480	0.203575671880267	0.203575671880267
-18329	6073	7593	0.194237102947714	0.194237102947714
-5506	4912	2121	0.0993922299820147	0.0993922299820147
-19837	5204	5602	0.169326060361496	0.169326060361496
-6868	3299	5873	0.0385426751655708	0.0385426751655708
-5529	4929	4930	0.0186787878300106	0.0186787878300106
-5530	4930	4931	0.150638241291928	0.150638241291928
-20519	10815	10845	0.0426977620157165	0.0426977620157165
-6909	5905	5906	0.0925705753401188	0.0925705753401188
-5581	4968	4969	0.19364655602673	0.19364655602673
-20802	10942	606	0.00932539286509621	0.00932539286509621
-20522	10808	2708	0.0062556157491122	0.0062556157491122
-5631	3571	5004	0.140817256140417	0.140817256140417
-18338	2435	7632	0.201752260263955	0.201752260263955
-20016	2696	8044	0.148197142125826	0.148197142125826
-5653	2345	4151	0.175358365382788	0.175358365382788
-18327	1432	7191	0.123062885737589	0.123062885737589
-6998	2684	5970	0.144359466732262	0.144359466732262
-5670	679	5028	0.00422540721209624	0.00422540721209624
-5671	5028	5029	0.199984733552555	0.199984733552555
-20382	10765	10766	0.0345648031474255	0.0345648031474255
-18350	7716	6756	0.141149359906032	0.141149359906032
-5748	5078	5079	0.20268033504505	0.20268033504505
-18163	10259	6036	0.2014076606309	0.2014076606309
-14704	5105	3799	0.199599075644316	0.199599075644316
-18162	2170	10259	0.118558518008842	0.118558518008842
-20019	4453	5501	0.145746885757253	0.145746885757253
-5830	5145	2118	0.0459910302398271	0.0459910302398271
-20020	5501	7075	0.147873409818305	0.147873409818305
-14776	5927	3806	0.151596310173331	0.151596310173331
-5853	4622	5163	0.10255879316328	0.10255879316328
-18343	7662	5247	0.110734380038432	0.110734380038432
-20022	8291	7898	0.145585163841291	0.145585163841291
-7192	6084	6085	0.188916282974339	0.188916282974339
-18345	6874	1684	0.205522453761373	0.205522453761373
-20542	2953	10853	0.0105529318413212	0.0105529318413212
-18348	2429	7700	0.202520445331427	0.202520445331427
-20024	8856	9319	0.148299248554164	0.148299248554164
-7238	4839	1519	0.0519761467059316	0.0519761467059316
-14772	923	5925	0.177924520685585	0.177924520685585
-20544	10831	10809	0.07258379165013	0.07258379165013
-5934	4646	3645	0.198637387669602	0.198637387669602
-20537	10850	10851	0.00393462806086889	0.00393462806086889
-7284	6141	11	0.135513694564746	0.135513694564746
-5958	5230	5231	0.202816769336327	0.202816769336327
-20538	10764	10852	0.00745697116010785	0.00745697116010785
-7311	5071	6157	0.164940273242935	0.164940273242935
-5976	4624	1247	0.13286062727511	0.13286062727511
-5978	4556	2725	0.132159028738313	0.132159028738313
-20539	10852	10833	0.00647861100893927	0.00647861100893927
-7339	6169	6170	0.0619567458929491	0.0619567458929491
-5998	5256	5257	0.103904946256075	0.103904946256075
-19289	10469	10470	0.0657689911002152	0.0657689911002152
-20550	10854	10842	0.00418096419493106	0.00418096419493106
-6016	5268	3447	0.109289564409357	0.109289564409357
-20541	10846	2953	0.0102415664506872	0.0102415664506872
-6042	2870	5284	0.0497761483323909	0.0497761483323909
-20446	10802	10794	0.010877497210246	0.010877497210246
-6066	1342	5306	0.205811743638723	0.205811743638723
-20547	2961	10838	0.0117661269256179	0.0117661269256179
-7483	6261	1188	0.16816674729097	0.16816674729097
-6138	3644	4554	0.0976185559336041	0.0976185559336041
-18364	7802	1660	0.0598129332818693	0.0598129332818693
-7554	6302	1356	0.0804502555219789	0.0804502555219789
-6209	5412	1185	0.167137462035015	0.167137462035015
-6210	1185	5413	0.0233182677092941	0.0233182677092941
-14730	6318	6303	0.0522173167652759	0.0522173167652759
-20234	10715	10714	0.0286157939247338	0.0286157939247338
-20565	1287	10855	0.00858462136960439	0.00858462136960439
-6251	5443	779	0.0160681132894306	0.0160681132894306
-14783	4856	7862	0.182896538603858	0.182896538603858
-6272	5463	5464	0.0498340640254978	0.0498340640254978
-20235	10714	8820	0.0168131405425372	0.0168131405425372
-6293	5477	3890	0.10549800375505	0.10549800375505
-16545	7835	9934	0.137971408959184	0.137971408959184
-6362	351	5522	0.0335008525021526	0.0335008525021526
-16018	9787	9788	0.0995758326234823	0.0995758326234823
-6387	5535	2028	0.107888528337289	0.107888528337289
-20242	10717	10716	0.029516495512001	0.029516495512001
-7774	5212	6424	0.109568567873903	0.109568567873903
-16546	9934	9935	0.139302196645357	0.139302196645357
-20562	10798	10807	0.0058401189840652	0.0058401189840652
-15113	3050	7229	0.0133472139691031	0.0133472139691031
-20245	8372	6959	0.0489264341729089	0.0489264341729089
-11422	8078	8079	0.0484137060021889	0.0484137060021889
-6473	5599	5600	0.108658521887425	0.108658521887425
-15115	7996	7997	0.209391166364433	0.209391166364433
-18367	7754	8093	0.0507390772270922	0.0507390772270922
-20352	10751	9401	0.00837355044160468	0.00837355044160468
-6492	5616	5617	0.0720767157725574	0.0720767157725574
-14721	2221	4871	0.160443069505019	0.160443069505019
-18368	8093	6894	0.0518148786998363	0.0518148786998363
-16020	9789	9788	0.073636854952175	0.073636854952175
-7896	6503	6504	0.201046575537805	0.201046575537805
-16547	9935	3668	0.222625726498778	0.222625726498778
-11416	8000	8034	0.303468507056762	0.303468507056762
-6579	5669	5670	0.150406237761818	0.150406237761818
-20845	10954	10937	0.131662909083966	0.131662909083966
-6604	5693	4324	0.222481680681729	0.222481680681729
-18371	5250	7594	0.0499247461563453	0.0499247461563453
-15222	8101	8102	0.077833708774634	0.077833708774634
-18372	7594	5883	0.083286408265142	0.083286408265142
-6714	5766	2843	0.181402526618843	0.181402526618843
-14742	5935	931	0.176525948040391	0.176525948040391
-20409	8971	8976	0.00824136098890487	0.00824136098890487
-17573	10146	4643	0.00925827675066928	0.00925827675066928
-8175	6672	3101	0.17546713620256	0.17546713620256
-11210	300	106	0.00724031766776508	0.00724031766776508
-8223	6696	951	0.177624298281023	0.177624298281023
-6856	4317	5865	0.0513037576080921	0.0513037576080921
-18335	7611	1689	0.102723820359578	0.102723820359578
-20356	10752	10753	0.178510491347886	0.178510491347886
-6873	5878	5879	0.686284794666677	0.686284794666677
-11609	3416	7035	0.200128365503357	0.200128365503357
-11610	7035	8338	0.189938999172283	0.189938999172283
-6895	5896	4960	0.0956843495121368	0.0956843495121368
-11335	8218	251	0.176906123725318	0.176906123725318
-17668	10162	10161	0.0392525789715303	0.0392525789715303
-8321	6751	5251	0.0499574491010493	0.0499574491010493
-17670	8260	9051	0.230562637224967	0.230562637224967
-8340	6769	5533	0.120999789974565	0.120999789974565
-11366	7971	1892	0.0488719799669425	0.0488719799669425
-6977	4442	5511	0.147695461409276	0.147695461409276
-14750	2214	929	0.185352492811126	0.185352492811126
-7030	4913	5988	0.198333075719104	0.198333075719104
-18693	5978	6025	0.00688297127309608	0.00688297127309608
-11612	3418	742	0.19996057055502	0.19996057055502
-20437	10795	10796	0.0230619881865373	0.0230619881865373
-11948	8496	8497	0.0216014239716138	0.0216014239716138
-7132	1290	6044	0.0502638300231986	0.0502638300231986
-11686	1032	773	0.0128283485920152	0.0128283485920152
-8554	4804	6890	0.135875328970406	0.135875328970406
-11767	2687	8406	0.0738017906986337	0.0738017906986337
-8601	2178	596	0.0528183519637533	0.0528183519637533
-7225	6106	6107	0.101643082422806	0.101643082422806
-11821	8422	8423	0.175711465733647	0.175711465733647
-8624	109	720	0.104166949267626	0.104166949267626
-18552	7705	2988	0.199131268231619	0.199131268231619
-14770	4858	2209	0.16101488662795	0.16101488662795
-7328	6165	6166	0.0995968460919669	0.0995968460919669
-12286	8526	8525	0.0214801658544325	0.0214801658544325
-7376	337	6196	0.0756391181616623	0.0756391181616623
-12217	8592	8593	0.114913209514243	0.114913209514243
-12317	8559	2500	0.0435792910401613	0.0435792910401613
-8839	528	7032	0.050727128416239	0.050727128416239
-7478	6259	1180	0.207751884347626	0.207751884347626
-18554	9429	7706	0.20403157089995	0.20403157089995
-15821	8564	8565	0.0641361466923926	0.0641361466923926
-8860	7045	7046	0.134234542647931	0.134234542647931
-7498	4598	3688	0.240872387579393	0.240872387579393
-7499	3688	6270	0.142331405185985	0.142331405185985
-20649	10880	1676	0.0578550543011222	0.0578550543011222
-12236	8586	1599	0.0967599085697604	0.0967599085697604
-7572	5861	1309	0.178473387298321	0.178473387298321
-18324	7480	7524	0.15130858595047	0.15130858595047
-7598	6323	6324	0.205483069278936	0.205483069278936
-17836	9362	1627	0.0523901213643909	0.0523901213643909
-14759	7101	5464	0.170276074046912	0.170276074046912
-14760	5464	7128	0.178804240685068	0.178804240685068
-7640	6024	3875	0.0993805589791004	0.0993805589791004
-16021	9788	9790	0.320911397883896	0.320911397883896
-9035	7131	7132	0.0496921831493493	0.0496921831493493
-18491	9168	9169	0.133423914370859	0.133423914370859
-17837	1627	5679	0.10292857902181	0.10292857902181
-9059	2896	5632	0.0842038197459281	0.0842038197459281
-20806	7427	10935	0.00559704943884798	0.00559704943884798
-12938	1970	8709	0.0935507240006809	0.0935507240006809
-11439	511	8252	0.25940626826434	0.25940626826434
-7695	5168	6377	0.177825109084943	0.177825109084943
-20708	7442	10913	0.0784445493600802	0.0784445493600802
-9099	6388	7159	0.131345505242465	0.131345505242465
-11441	8256	8255	0.0395721958074786	0.0395721958074786
-19809	5615	9635	0.105426130739244	0.105426130739244
-9145	5720	7186	0.100417695742859	0.100417695742859
-11443	8254	8257	0.03964069530807	0.03964069530807
-7788	6432	6433	0.0533345329573706	0.0533345329573706
-12939	8709	8766	0.0775671350558112	0.0775671350558112
-9187	7207	7208	0.0500116374722849	0.0500116374722849
-7811	838	6446	0.0830965282034823	0.0830965282034823
-7816	6449	2813	0.0739587262737054	0.0739587262737054
-12260	8617	8618	0.00726192949201925	0.00726192949201925
-20803	606	10913	0.0113017508087441	0.0113017508087441
-9235	7240	7241	0.0498075431237363	0.0498075431237363
-7861	6474	6475	0.692905896897531	0.692905896897531
-12942	8804	1331	0.0594619846778877	0.0594619846778877
-12264	8622	8616	0.0863852743591186	0.0863852743591186
-7908	6511	6512	0.107336468131195	0.107336468131195
-20811	10951	7034	0.00453220039269765	0.00453220039269765
-13006	8912	8913	0.031616887141609	0.031616887141609
-7929	4175	6525	0.0337195393803404	0.0337195393803404
-20394	10762	10775	0.00651572160316994	0.00651572160316994
-20400	3591	10771	0.0086403574168429	0.0086403574168429
-8000	6560	6561	0.05117078549911	0.05117078549911
-18914	10389	10392	0.00619620469246147	0.00619620469246147
-8024	6580	6581	0.135411748293681	0.135411748293681
-8047	5711	6593	0.0649690182450408	0.0649690182450408
-20509	10841	638	0.00591881170263726	0.00591881170263726
-12270	8627	8518	0.0752716608672627	0.0752716608672627
-15918	9104	9746	0.00764030702792677	0.00764030702792677
-8143	6654	1583	0.150966803397046	0.150966803397046
-18477	2411	5542	0.101313827089111	0.101313827089111
-15876	8978	9002	0.0205305754568531	0.0205305754568531
-8295	6735	6736	0.0734967400485445	0.0734967400485445
-12273	8629	8517	0.0368940227401467	0.0368940227401467
-8322	5251	6752	0.0513511942917184	0.0513511942917184
-17214	3774	8403	0.176505403414048	0.176505403414048
-11789	4445	6564	0.147259159007996	0.147259159007996
-8396	516	6411	0.245438474982929	0.245438474982929
-19810	9635	9643	0.17762409301406	0.17762409301406
-19811	9643	7122	0.176833292049994	0.176833292049994
-9834	7540	7541	0.0505839701248518	0.0505839701248518
-8443	1465	5441	0.103147915206822	0.103147915206822
-13470	9094	9095	0.186249123099868	0.186249123099868
-9909	7585	3060	0.206196737198557	0.206196737198557
-8516	6868	4142	0.0958725861464383	0.0958725861464383
-18481	9120	6391	0.130087180946324	0.130087180946324
-8559	1248	4557	0.13273864991069	0.13273864991069
-18488	9153	9154	0.0316379611455697	0.0316379611455697
-10040	7380	7647	0.073513516250253	0.073513516250253
-8638	6926	6927	0.0519431626477688	0.0519431626477688
-8640	6928	2302	0.107037203280329	0.107037203280329
-18492	9169	9170	0.136492159060533	0.136492159060533
-8683	1000	4222	0.0557449369548998	0.0557449369548998
-15905	8603	8604	0.0748338508215397	0.0748338508215397
-13757	8439	9181	0.0861617636196398	0.0861617636196398
-10162	2158	7701	0.118289099292956	0.118289099292956
-8752	6982	6983	0.20266520881126	0.20266520881126
-12326	8650	8651	0.106050821827968	0.106050821827968
-18298	6995	6996	0.187375849458261	0.187375849458261
-14103	418	421	0.212232135618177	0.212232135618177
-11436	8255	7984	0.498708139076575	0.498708139076575
-18497	9201	9212	0.134547599555241	0.134547599555241
-19881	2617	10410	0.177201589274352	0.177201589274352
-8821	13	7020	0.00925156011318802	0.00925156011318802
-14676	5941	3794	0.153141383772443	0.153141383772443
-8846	6085	742	0.0513498235273795	0.0513498235273795
-19287	9967	10468	0.111280897910296	0.111280897910296
-8898	267	7062	0.0377688740912094	0.0377688740912094
-20847	10946	10950	0.100177888201708	0.100177888201708
-18612	1850	9261	0.181237135841786	0.181237135841786
-18361	7374	7802	0.0447005696877022	0.0447005696877022
-8973	7099	900	0.0469763030340631	0.0469763030340631
-14047	4836	389	0.0490717904305928	0.0490717904305928
-12310	8644	8645	0.447909393812679	0.447909393812679
-8996	7110	7111	0.00729890302499032	0.00729890302499032
-8997	7111	7112	0.0821157489631964	0.0821157489631964
-19296	10470	10471	0.0561834077462884	0.0561834077462884
-9018	7120	3944	0.0625799505809278	0.0625799505809278
-20228	8758	8818	0.0478043651923457	0.0478043651923457
-14140	9284	9285	0.260183964007922	0.260183964007922
-10472	1612	7829	0.00870018444151776	0.00870018444151776
-9067	7146	1144	0.138617590256283	0.138617590256283
-9068	1144	873	0.140306927162159	0.140306927162159
-16081	9816	366	0.168828958006928	0.168828958006928
-19882	10410	7867	0.175655958248639	0.175655958248639
-9135	5185	5653	0.105406920017136	0.105406920017136
-19292	10469	10471	0.0669585268555214	0.0669585268555214
-14789	9417	9415	0.0546470920616291	0.0546470920616291
-14678	9330	9301	0.189092694124095	0.189092694124095
-16087	9493	9819	0.0602377998698223	0.0602377998698223
-9262	5135	5150	0.0243532262877801	0.0243532262877801
-14663	9300	6543	0.20364721866244	0.20364721866244
-9311	4256	7276	0.202152573812647	0.202152573812647
-20396	10777	10758	0.00300729649615889	0.00300729649615889
-16088	9819	9820	0.154328326827327	0.154328326827327
-9435	7345	7346	0.0190810494123846	0.0190810494123846
-18624	6136	9460	0.0524172265643075	0.0524172265643075
-20568	10857	10787	0.0362929048752591	0.0362929048752591
-18625	9460	2258	0.0501132934741927	0.0501132934741927
-15897	9441	9042	0.0240046794304529	0.0240046794304529
-16387	9458	9459	0.0276860712412084	0.0276860712412084
-11214	8163	391	0.128403364715461	0.128403364715461
-9803	6610	7523	0.196894261944695	0.196894261944695
-15456	9612	9605	0.0879146885908635	0.0879146885908635
-18630	5862	9484	0.00360275623818702	0.00360275623818702
-11351	4798	8227	0.0561921807720747	0.0561921807720747
-9936	4537	7602	0.2557209782077	0.2557209782077
-11457	8266	8267	0.4367852597313	0.4367852597313
-11491	6185	8281	0.106123839405449	0.106123839405449
-11244	8185	8162	0.0231522248365289	0.0231522248365289
-18634	4045	7865	0.17751242949901	0.17751242949901
-18698	5868	1320	0.176912291429695	0.176912291429695
-10141	6347	3032	0.0935494731718596	0.0935494731718596
-11771	8406	4385	0.0534654755495647	0.0534654755495647
-19883	7867	3716	0.104069204828323	0.104069204828323
-11834	8430	8431	0.087830432319228	0.087830432319228
-10212	7733	7734	0.0513578872611552	0.0513578872611552
-19884	3716	7405	0.200874185823139	0.200874185823139
-11852	8443	8444	0.0120541689820552	0.0120541689820552
-10235	2742	7741	0.0499109655825577	0.0499109655825577
-19913	10244	6599	0.17675930412674	0.17675930412674
-15270	8458	8459	0.0175633548114394	0.0175633548114394
-10253	1700	7749	0.00587012913148048	0.00587012913148048
-20002	10691	10692	0.0226226455892357	0.0226226455892357
-11911	8472	8473	0.00378078844043477	0.00378078844043477
-10274	3194	6110	0.20159656533977	0.20159656533977
-11953	8041	6568	0.145503350739709	0.145503350739709
-10298	6399	3614	0.133348580117153	0.133348580117153
-11992	5503	7077	0.147510556806948	0.147510556806948
-19496	10524	7457	0.0831219334199701	0.0831219334199701
-10398	7619	7807	0.0285985320629965	0.0285985320629965
-15922	1816	9751	0.110608853519784	0.110608853519784
-11917	8476	1302	0.0550753650708828	0.0550753650708828
-20647	10880	10034	0.0300539000602635	0.0300539000602635
-10474	6225	7658	0.277054905467397	0.277054905467397
-11996	6576	4457	0.148175074796056	0.148175074796056
-12215	8590	8591	0.0896761056675667	0.0896761056675667
-12240	1246	8611	0.0161729384224601	0.0161729384224601
-10602	7875	741	0.0900908109241702	0.0900908109241702
-16451	9903	9904	0.00638068663878895	0.00638068663878895
-12161	8568	8315	0.127606752812743	0.127606752812743
-16022	9791	9792	0.180221045869865	0.180221045869865
-12376	7853	4674	0.113693675785271	0.113693675785271
-12377	4674	8679	0.101029871301971	0.101029871301971
-19472	10516	7476	0.0110661304777454	0.0110661304777454
-16024	363	9793	0.0338194849383131	0.0338194849383131
-12518	5916	3788	0.153505057727295	0.153505057727295
-10815	3667	7993	0.06101955432425	0.06101955432425
-17063	2247	4880	0.17655557289719	0.17655557289719
-18644	1374	1318	0.176938793518256	0.176938793518256
-20668	1127	10890	0.00915451265400173	0.00915451265400173
-15804	1934	9711	0.166526724215667	0.166526724215667
-15805	9711	9506	0.0388070303408929	0.0388070303408929
-15809	9713	7112	0.0121509406944637	0.0121509406944637
-17109	4052	8135	0.162752784015343	0.162752784015343
-12609	7223	8772	0.0487324288024552	0.0487324288024552
-10935	6177	3306	0.106502895543558	0.106502895543558
-10936	3306	8049	0.0536769065211004	0.0536769065211004
-16203	7727	9845	1.20908168114497	1.20908168114497
-10955	8058	8059	0.079137340429329	0.079137340429329
-16612	9327	9942	0.147120185144049	0.147120185144049
-17066	5478	9963	0.164315977100666	0.164315977100666
-17067	9963	10069	0.0117569437064922	0.0117569437064922
-12661	6331	6548	0.107973460603441	0.107973460603441
-12679	3638	8797	0.0132415259966435	0.0132415259966435
-16962	10044	10040	0.011239967337662	0.011239967337662
-12708	6861	5165	0.179825321478717	0.179825321478717
-11020	1485	143	0.200555984903635	0.200555984903635
-11021	143	8087	0.297571119969413	0.297571119969413
-17011	9424	10052	0.0266755832635793	0.0266755832635793
-12731	8820	7196	0.0815503609966838	0.0815503609966838
-17038	10062	9210	0.00792923279445615	0.00792923279445615
-11062	3436	7764	0.0490279707439403	0.0490279707439403
-16025	9793	9792	0.141538634561804	0.141538634561804
-12773	8830	4166	0.0867031847297172	0.0867031847297172
-16209	6627	5825	0.203615270524375	0.203615270524375
-16207	7210	6624	0.114867174949551	0.114867174949551
-16210	5825	7730	0.194825716270604	0.194825716270604
-13015	8917	8918	0.0110325419879542	0.0110325419879542
-13019	8923	8924	0.0459300988872919	0.0459300988872919
-11247	8187	5274	0.160867422208887	0.160867422208887
-19514	10535	10538	0.0037920381346196	0.0037920381346196
-13024	6190	280	0.0860979970314494	0.0860979970314494
-11276	8174	8198	0.367460344283523	0.367460344283523
-18156	4088	6034	0.199039273787356	0.199039273787356
-13094	1749	8958	0.0802223716795591	0.0802223716795591
-11325	5154	2237	0.0295446835402977	0.0295446835402977
-18719	4048	7409	0.17730031135953	0.17730031135953
-13118	8967	1742	0.0145216501585431	0.0145216501585431
-18386	8971	8972	0.00871865668631088	0.00871865668631088
-13072	8913	8952	0.0749880743663527	0.0749880743663527
-17640	230	8241	0.144923812025645	0.144923812025645
-13560	9033	578	0.049912950240993	0.049912950240993
-11377	8237	4850	0.0778446846789704	0.0778446846789704
-18720	7409	5864	0.175843787012913	0.175843787012913
-11410	2864	7808	0.201887571458386	0.201887571458386
-11526	8300	809	0.0681077085457417	0.0681077085457417
-18653	7653	10176	0.157020875630107	0.157020875630107
-13241	7916	4418	0.196768399976565	0.196768399976565
-11566	7031	7379	0.100426092571383	0.100426092571383
-11568	7379	1594	0.158671241159827	0.158671241159827
-17820	10186	10187	0.0184687744290435	0.0184687744290435
-13263	4963	6826	0.0748897830948627	0.0748897830948627
-11599	7782	8332	0.0501574795892601	0.0501574795892601
-11600	8332	1125	0.0495676895406725	0.0495676895406725
-11644	4658	8348	0.011012895464713	0.011012895464713
-18918	10397	10398	0.0105062475981655	0.0105062475981655
-17913	6562	4748	0.176744370871331	0.176744370871331
-11715	8369	8370	0.101679025311835	0.101679025311835
-11747	8387	8388	0.0596706311453888	0.0596706311453888
-11775	8121	2683	0.119321215072029	0.119321215072029
-13389	8267	9048	0.0706232625221708	0.0706232625221708
-11997	4457	5505	0.144543593212435	0.144543593212435
-19642	10599	10600	0.00461558236551731	0.00461558236551731
-12058	153	3776	0.311946607437041	0.311946607437041
-13750	6895	9177	0.1538081352177	0.1538081352177
-12164	4818	7560	0.10615031357403	0.10615031357403
-15934	6257	9756	0.181030993335028	0.181030993335028
-18568	10324	10321	0.144976741381278	0.144976741381278
-20260	6471	10699	0.00720326005355295	0.00720326005355295
-12382	440	8680	0.0360714923590191	0.0360714923590191
-13919	482	483	0.00751372921095178	0.00751372921095178
-20414	3586	10773	0.00983155874827391	0.00983155874827391
-12480	8712	8713	0.0991407463070431	0.0991407463070431
-15455	9611	9612	0.086225314993736	0.086225314993736
-20417	8993	10775	0.0123681069665026	0.0123681069665026
-19623	10508	10591	0.0688242418092362	0.0688242418092362
-14087	6816	2943	0.102402811156445	0.102402811156445
-12571	8755	8756	0.0991408859101036	0.0991408859101036
-18658	9831	7643	0.17655772025733	0.17655772025733
-16026	9792	9793	0.141538634561804	0.141538634561804
-14200	5104	8831	0.0500819471783367	0.0500819471783367
-16028	9794	9795	0.0352990859554557	0.0352990859554557
-12690	8805	8806	0.0205962859747724	0.0205962859747724
-14297	1952	9317	0.0799385706307454	0.0799385706307454
-12747	5350	4220	0.0793424677909429	0.0793424677909429
-16029	9796	9797	0.0144472492683917	0.0144472492683917
-20288	6472	10687	0.0642398609947935	0.0642398609947935
-14311	8859	8501	0.0340924315859818	0.0340924315859818
-14330	602	8973	0.0577848630730138	0.0577848630730138
-16030	9797	9798	0.0484390320890552	0.0484390320890552
-16031	9798	9799	0.00754569346896809	0.00754569346896809
-14334	2420	8925	0.0583291679544673	0.0583291679544673
-12784	8834	5470	0.171286135301765	0.171286135301765
-12785	5470	8835	0.178924287864237	0.178924287864237
-16033	9799	9800	0.00706845342179734	0.00706845342179734
-14357	513	9331	0.0549879463430077	0.0549879463430077
-12804	3763	2560	0.0898130023336766	0.0898130023336766
-12820	8849	8848	0.188203677867594	0.188203677867594
-16035	9800	6871	0.0378217549395311	0.0378217549395311
-20159	6155	10163	0.0614761289722609	0.0614761289722609
-12915	967	5281	0.138474892352542	0.138474892352542
-16687	9988	8314	0.0384286340006129	0.0384286340006129
-12991	8908	306	0.0182421240862306	0.0182421240862306
-13032	8926	8928	0.185901221322606	0.185901221322606
-16689	1824	9989	0.0121513664645164	0.0121513664645164
-13107	8963	8964	0.0484369444463125	0.0484369444463125
-19516	10539	10536	0.00249155177103479	0.00249155177103479
-19470	10514	10515	0.0196261730033966	0.0196261730033966
-13156	8988	8989	0.00631722030409862	0.00631722030409862
-19649	10600	10601	0.0174353644977756	0.0174353644977756
-18928	10405	10396	0.00112670264684339	0.00112670264684339
-18410	10288	8327	0.00700530123739539	0.00700530123739539
-14672	9414	4877	0.190941051800692	0.190941051800692
-14673	4877	2227	0.162460717202061	0.162460717202061
-13231	4409	9009	0.223227137223831	0.223227137223831
-237	31	134	0.108163538194537	0.108163538194537
-14831	8322	5668	0.0494625040984646	0.0494625040984646
-18415	8376	3409	0.101754880454598	0.101754880454598
-15848	9733	9731	0.0169747446876837	0.0169747446876837
-13335	3971	7017	0.0998321056196178	0.0998321056196178
-18626	2258	9475	0.0453120140623152	0.0453120140623152
-13471	9095	9092	0.294331677800491	0.294331677800491
-13512	7797	9114	0.0647363210214912	0.0647363210214912
-15901	9499	9500	0.157325995690783	0.157325995690783
-13697	9167	7423	0.127782150083045	0.127782150083045
-20289	10687	10697	0.00276887237539732	0.00276887237539732
-13718	8097	9171	0.00881240787098174	0.00881240787098174
-13751	9178	9130	0.0262505906254233	0.0262505906254233
-15391	9259	9571	0.107861175514815	0.107861175514815
-15783	2106	9596	0.166115711722291	0.166115711722291
-13852	1774	4412	0.0465225826542141	0.0465225826542141
-20380	10763	10764	0.00723047037301379	0.00723047037301379
-15452	9609	9598	0.128875611115748	0.128875611115748
-14144	9287	4651	0.182099578171645	0.182099578171645
-15807	9712	7111	0.0179279183487844	0.0179279183487844
-14230	8860	4113	0.0915086936553939	0.0915086936553939
-15819	9705	8564	0.0112418070831931	0.0112418070831931
-14250	8157	7606	0.0899264482990573	0.0899264482990573
-19499	10526	10527	0.0418767441965843	0.0418767441965843
-16078	9814	9815	0.177867255933272	0.177867255933272
-14354	5520	6454	0.134959237439496	0.134959237439496
-16224	5835	9851	0.203722282298932	0.203722282298932
-14425	1233	6137	0.0491477874140339	0.0491477874140339
-16468	9914	9902	0.117059110726511	0.117059110726511
-16500	8890	8891	0.0884309215437497	0.0884309215437497
-16591	9948	8492	0.14561270804365	0.14561270804365
-16470	9915	3282	0.193717589764618	0.193717589764618
-14541	6915	9375	0.0102720812466755	0.0102720812466755
-16501	8891	3167	0.0148460110144783	0.0148460110144783
-16593	9949	9950	0.145366288858291	0.145366288858291
-14609	8990	8994	0.00979628795431279	0.00979628795431279
-14794	3335	7882	0.0961603685796077	0.0961603685796077
-17101	332	10014	0.240821045601335	0.240821045601335
-14816	9424	9425	0.0673114946358147	0.0673114946358147
-17065	9474	5478	0.175247470145414	0.175247470145414
-15103	3050	9489	0.102745543982247	0.102745543982247
-16898	8714	8743	0.201991786328297	0.201991786328297
-16402	9880	9878	0.04752967411177	0.04752967411177
-16959	10041	10042	0.0119234352124219	0.0119234352124219
-16556	9939	2889	0.0528287697048915	0.0528287697048915
-18646	5867	7412	0.177003576876814	0.177003576876814
-16623	9957	9958	0.00927766896119108	0.00927766896119108
-17017	10056	10054	0.00431206144532878	0.00431206144532878
-16635	9967	9937	0.0755376260933099	0.0755376260933099
-16636	9937	9968	0.0848568890148885	0.0848568890148885
-17507	8389	10114	0.0670519033214907	0.0670519033214907
-17069	675	9465	0.179146976203574	0.179146976203574
-17040	8988	10063	0.00586346085648923	0.00586346085648923
-18726	6207	7644	0.18227085937915	0.18227085937915
-18724	4060	7415	0.175525264809921	0.175525264809921
-16759	10010	55	0.0502605990705626	0.0502605990705626
-17565	10138	8539	0.0573375717149566	0.0573375717149566
-17283	8717	8746	0.200951019692623	0.200951019692623
-17285	76	3515	0.20373476556842	0.20373476556842
-17286	3515	4257	0.200873634983474	0.200873634983474
-17288	10023	5839	0.200541247802215	0.200541247802215
-18744	6227	5190	0.106449102002429	0.106449102002429
-17655	10140	480	0.0210901662616695	0.0210901662616695
-17657	8540	9827	0.194565529373187	0.194565529373187
-17427	10105	10106	0.0219929458534896	0.0219929458534896
-17857	10200	10197	0.0144828525731025	0.0144828525731025
-18236	7037	3424	0.201298115256081	0.201298115256081
-17786	8497	9214	0.0149001836759509	0.0149001836759509
-18667	5188	2601	0.176856921267491	0.176856921267491
-15257	8538	9547	0.0461864635130014	0.0461864635130014
-15834	9727	4582	0.339362052888466	0.339362052888466
-18239	6764	3988	0.20124356936137	0.20124356936137
-17648	223	227	0.245258634538467	0.245258634538467
-19708	10627	10621	0.090662464616454	0.090662464616454
-17961	10234	10235	0.0087318555012696	0.0087318555012696
-19710	10623	10628	0.0762458230270849	0.0762458230270849
-17727	3328	7879	0.104097845117031	0.104097845117031
-18725	7415	10336	0.0555461867275064	0.0555461867275064
-17748	10172	8285	0.147249823900369	0.147249823900369
-19600	10582	10478	0.00442384590255706	0.00442384590255706
-16294	2409	2439	0.0170153678743566	0.0170153678743566
-18663	2592	5184	0.178895247307371	0.178895247307371
-15835	4582	8370	0.135357878279395	0.135357878279395
-17987	10240	7225	0.133765909115813	0.133765909115813
-18776	10123	3737	0.13151506607382	0.13151506607382
-19243	10420	8480	0.0202782525837911	0.0202782525837911
-18831	10359	10360	0.0341232753962164	0.0341232753962164
-19553	6857	10560	0.00726201622420357	0.00726201622420357
-19940	9641	6649	0.164927985335569	0.164927985335569
-18941	4644	1269	0.146851000824624	0.146851000824624
-19118	10431	8430	0.136066207456442	0.136066207456442
-19278	10421	6707	0.0993066662474356	0.0993066662474356
-15836	8370	5297	0.134414346058358	0.134414346058358
-19047	901	9486	0.27949052314451	0.27949052314451
-19612	10586	10499	0.00658715235564877	0.00658715235564877
-15838	9728	7437	0.0439886907558265	0.0439886907558265
-19065	10422	5495	0.202007910819525	0.202007910819525
-15840	9729	9702	0.0777181684296862	0.0777181684296862
-15841	9702	9730	0.0351380099433058	0.0351380099433058
-19273	10425	10173	0.013664079145809	0.013664079145809
-19160	10429	10050	0.0518274489533285	0.0518274489533285
-20574	10861	10862	0.011368530817607	0.011368530817607
-19554	10560	10548	0.0725121719316359	0.0725121719316359
-19461	10477	10478	0.0230516224965269	0.0230516224965269
-19438	10491	6859	0.0113764020129076	0.0113764020129076
-19277	8487	10421	0.0474605500221532	0.0474605500221532
-19226	8479	10451	0.0120282782230604	0.0120282782230604
-19482	10486	10487	0.00666482250083992	0.00666482250083992
-19412	1903	7239	0.197394669243537	0.197394669243537
-19323	916	5917	0.178370202088171	0.178370202088171
-19329	10473	9894	0.0172442514416892	0.0172442514416892
-19662	10608	10609	0.151226661870126	0.151226661870126
-19357	3170	9949	0.0476976092634506	0.0476976092634506
-19703	10622	10623	0.11468932159706	0.11468932159706
-19379	9194	4397	0.102701543160846	0.102701543160846
-19846	10657	10658	0.207612047714745	0.207612047714745
-19735	10641	10642	0.0869223005082275	0.0869223005082275
-423	422	423	0.0170753331475834	0.0170753331475834
-18892	3649	3275	0.147518961348099	0.147518961348099
-20076	6318	8004	0.0509194903724274	0.0509194903724274
-20104	8546	2065	0.048454988097841	0.048454988097841
-20204	9321	10178	0.0841675532676054	0.0841675532676054
-20205	10178	8401	0.0611444527276629	0.0611444527276629
-259	266	267	0.0502803318432383	0.0502803318432383
-14829	6148	4022	0.133340280271954	0.133340280271954
-20293	10704	10700	0.011586826540776	0.011586826540776
-14835	7029	7396	0.0697085759052968	0.0697085759052968
-20259	10688	6471	0.00765068827927408	0.00765068827927408
-17971	10234	10239	0.0311817416438077	0.0311817416438077
-20294	10700	10709	0.0186270421112036	0.0186270421112036
-14868	8305	8308	0.0233992723150567	0.0233992723150567
-421	420	421	0.0887343803029098	0.0887343803029098
-424	254	424	0.214565868461505	0.214565868461505
-425	424	425	0.179345861037356	0.179345861037356
-18900	10380	10379	0.00404144992313864	0.00404144992313864
-312	320	321	0.234451594909332	0.234451594909332
-14897	6102	8202	0.215105101107824	0.215105101107824
-19648	10603	10600	0.0301818413703728	0.0301818413703728
-176	185	186	0.0998871295042773	0.0998871295042773
-20301	9381	10729	0.0209062182463086	0.0209062182463086
-196	205	208	0.198149371104724	0.198149371104724
-16280	9869	4511	0.0441265369006206	0.0441265369006206
-15850	9734	5596	0.0497405541513423	0.0497405541513423
-19563	7475	10566	0.00626126200522767	0.00626126200522767
-248	255	256	0.148914456277168	0.148914456277168
-14938	8158	7604	0.0947062136756459	0.0947062136756459
-305	313	314	0.0701186694040595	0.0701186694040595
-14691	3129	941	0.177390618833456	0.177390618833456
-371	263	372	0.159425481094297	0.159425481094297
-372	262	373	0.154271040601459	0.154271040601459
-373	374	375	0.0498842542371797	0.0498842542371797
-20302	6466	9378	0.155873782837014	0.155873782837014
-315	323	324	0.151711567725454	0.151711567725454
-554	548	549	0.0392699857827163	0.0392699857827163
-14993	7973	7142	0.0462138706300854	0.0462138706300854
-17218	6114	3199	0.202944002497817	0.202944002497817
-317	325	326	0.0648164274191724	0.0648164274191724
-17027	3490	3584	0.0598495371899439	0.0598495371899439
-652	642	643	0.0146721427737165	0.0146721427737165
-18423	8361	8333	0.20323919891824	0.20323919891824
-15011	9469	459	0.0480419410466021	0.0480419410466021
-15012	459	7107	0.043866666346984	0.043866666346984
-11803	8415	8416	0.145780714117446	0.145780714117446
-18731	8066	10337	0.199884513966678	0.199884513966678
-17082	4467	2789	0.134890565512634	0.134890565512634
-788	793	794	0.093857943582342	0.093857943582342
-15029	7883	3337	0.0968744267307773	0.0968744267307773
-18907	10384	10385	0.0177708173335528	0.0177708173335528
-11693	868	895	0.0109449511220029	0.0109449511220029
-16597	8570	5785	0.145695604703312	0.145695604703312
-17133	4238	3543	0.202299079539728	0.202299079539728
-18439	7914	2971	0.147770970542825	0.147770970542825
-16408	9882	9889	0.0253610023428754	0.0253610023428754
-16601	9952	7558	0.0955122170701592	0.0955122170701592
-15050	6016	979	0.0500664854607423	0.0500664854607423
-16409	9889	9879	0.0208518700779087	0.0208518700779087
-995	753	1009	0.150380388134057	0.150380388134057
-15070	9479	610	0.10571035032404	0.10571035032404
-16411	9459	9889	0.012002862934972	0.012002862934972
-1016	1028	1029	0.0655213058855568	0.0655213058855568
-15964	4362	1443	0.198880292667991	0.198880292667991
-16695	9599	9597	0.0527492023482324	0.0527492023482324
-19585	10576	7471	0.00669407122815783	0.00669407122815783
-1119	1135	1136	0.187278154980764	0.187278154980764
-15144	9498	6689	0.0114561417292809	0.0114561417292809
-15795	2323	2324	0.0158381890637799	0.0158381890637799
-20623	2706	10873	0.00650373799697247	0.00650373799697247
-1164	558	1182	0.0726820398635713	0.0726820398635713
-15984	7372	5328	0.126515384088506	0.126515384088506
-16002	9775	6870	0.0380746194857137	0.0380746194857137
-11807	8419	8395	0.147975384561768	0.147975384561768
-16009	9779	9780	0.0100019925159617	0.0100019925159617
-331	207	332	0.116329690490202	0.116329690490202
-20314	10735	10736	0.00660332250129021	0.00660332250129021
-1412	1265	1438	0.0988256135069692	0.0988256135069692
-15147	9501	1753	0.946728932771196	0.946728932771196
-542	536	537	0.223575651807191	0.223575651807191
-1437	1457	1458	0.00733898986406934	0.00733898986406934
-15845	9731	9732	0.0664836940914448	0.0664836940914448
-15172	9512	9513	0.0495248806719176	0.0495248806719176
-15173	9513	9514	0.0500036838355924	0.0500036838355924
-16841	10021	9876	0.0316463232135525	0.0316463232135525
-12011	7081	2030	0.145136996076302	0.145136996076302
-12961	1633	1631	0.0197483532588124	0.0197483532588124
-16037	9801	9802	0.187730927470077	0.187730927470077
-1680	1705	1706	0.200641448140145	0.200641448140145
-15255	9539	9533	0.0958097111651336	0.0958097111651336
-16278	9869	3639	0.110423900704732	0.110423900704732
-1701	1648	1723	0.062496099688971	0.062496099688971
-16118	8309	427	0.26882010834223	0.26882010834223
-250	257	258	0.156601202821138	0.156601202821138
-1726	1744	1745	1.09817431556355	1.09817431556355
-16141	9831	7016	0.0255913598249866	0.0255913598249866
-16142	7016	7028	0.027160195994677	0.027160195994677
-251	259	260	0.154968238345174	0.154968238345174
-1778	1796	1797	0.0510193327806952	0.0510193327806952
-15256	9533	9546	0.0701631467931239	0.0701631467931239
-4282	4025	4026	0.0836518662560613	0.0836518662560613
-4283	4026	2975	0.0536630317560949	0.0536630317560949
-252	261	262	0.0449524282619667	0.0449524282619667
-17948	10228	8780	0.031808150523084	0.031808150523084
-1803	1816	1817	0.0829077522721667	0.0829077522721667
-4294	2858	4032	0.190837980669502	0.190837980669502
-4296	4033	4034	0.0984313521955559	0.0984313521955559
-4297	4034	4035	0.124316100856361	0.124316100856361
-4299	1488	135	0.200939910778157	0.200939910778157
-4300	135	1703	0.200530915425065	0.200530915425065
-253	262	259	0.0587496721634218	0.0587496721634218
-1830	1846	1847	0.0521892409260155	0.0521892409260155
-4310	4043	1394	0.105949182025439	0.105949182025439
-4311	1394	4044	0.0525758001653233	0.0525758001653233
-4312	4044	4045	0.00275409212275412	0.00275409212275412
-4313	4045	4046	0.048684142933598	0.048684142933598
-4314	4046	4048	0.0522538202962548	0.0522538202962548
-11581	1889	1890	0.200726535096683	0.200726535096683
-254	259	263	0.0633181950748288	0.0633181950748288
-1901	1087	1914	0.0231926567105046	0.0231926567105046
-4323	4055	4056	0.0506868932206778	0.0506868932206778
-4324	4056	4057	0.0525415825536361	0.0525415825536361
-4325	4057	1106	0.049505238452812	0.049505238452812
-4326	1106	4058	0.103487473030962	0.103487473030962
-255	263	264	0.0528764032574804	0.0528764032574804
-1921	1933	1934	0.0492173865000396	0.0492173865000396
-1929	1942	1943	0.119118027307007	0.119118027307007
-4337	4067	4068	0.0478289627129219	0.0478289627129219
-4338	4068	4069	0.0505441496304245	0.0505441496304245
-4339	4069	4070	0.0498130318292156	0.0498130318292156
-4342	4071	4072	0.0561534117303384	0.0561534117303384
-4343	4072	4073	0.0484769480819301	0.0484769480819301
-18384	8960	8961	0.0519015690499355	0.0519015690499355
-544	538	539	0.0154777376492066	0.0154777376492066
-2042	2050	2051	0.199194779708592	0.199194779708592
-12337	8654	8655	0.0104809427005404	0.0104809427005404
-4355	3965	4081	0.411489005127648	0.411489005127648
-4356	4081	4082	0.106344190536588	0.106344190536588
-4358	4083	1074	0.0829286899836406	0.0829286899836406
-4359	1074	2497	0.0840300949352524	0.0840300949352524
-16773	3182	3277	0.192234323904948	0.192234323904948
-2067	2069	2070	0.202510221820354	0.202510221820354
-19432	8707	10110	0.0968673163006813	0.0968673163006813
-4370	4092	4093	0.0521723369054183	0.0521723369054183
-4373	4095	4096	0.0511584997280867	0.0511584997280867
-4374	4096	4097	0.0510055304226098	0.0510055304226098
-14753	6934	5930	0.0358835820845479	0.0358835820845479
-545	539	540	0.260599478311813	0.260599478311813
-2113	2114	2115	0.0866449228578761	0.0866449228578761
-12341	2501	8642	0.0589286767766051	0.0589286767766051
-4383	4104	2729	0.0487767884709024	0.0487767884709024
-4387	748	1566	0.142516569011717	0.142516569011717
-16443	9900	9901	0.201666693845683	0.201666693845683
-546	540	541	0.0326517480806501	0.0326517480806501
-547	541	542	0.0254047336234174	0.0254047336234174
-2158	2156	2157	0.218243127550759	0.218243127550759
-2160	2158	2159	0.0821511858388999	0.0821511858388999
-16173	4250	9840	0.39197341800201	0.39197341800201
-19464	10508	10509	0.0204161788330557	0.0204161788330557
-18178	5791	6050	0.202074681821779	0.202074681821779
-20702	10891	10902	0.0170035110425561	0.0170035110425561
-16216	8620	7903	0.142599898878985	0.142599898878985
-11816	2201	2202	0.15535054028393	0.15535054028393
-17089	9940	8134	0.138649146182337	0.138649146182337
-17090	8134	3689	0.141996254884573	0.141996254884573
-2222	2222	2223	0.0488100805647676	0.0488100805647676
-2223	2223	2224	0.0512642786009998	0.0512642786009998
-14639	2243	2244	0.0354564943031107	0.0354564943031107
-17091	3689	4597	0.241148863142693	0.241148863142693
-2264	2264	2265	0.176035436319457	0.176035436319457
-14641	2244	2272	0.0187003459565438	0.0187003459565438
-16312	2722	2929	0.0126176772334624	0.0126176772334624
-14127	419	417	0.0606641044076811	0.0606641044076811
-2285	2284	2285	0.184338950183701	0.184338950183701
-17024	10059	6431	0.0170040072643452	0.0170040072643452
-20326	10744	10738	0.00650370546328925	0.00650370546328925
-2307	2304	1995	0.0793159537973265	0.0793159537973265
-16363	7010	2769	0.112453696268037	0.112453696268037
-16364	2769	3365	0.103853901930967	0.103853901930967
-20334	2967	10745	0.0137335338280324	0.0137335338280324
-2375	2363	964	0.101155075878388	0.101155075878388
-16463	9886	1081	0.198408324686945	0.198408324686945
-16466	9913	9912	0.00925208668760351	0.00925208668760351
-17365	10091	3085	0.200980490545583	0.200980490545583
-17304	4258	8744	0.201266280518922	0.201266280518922
-2443	2434	2435	0.0498096064689081	0.0498096064689081
-18192	6053	4068	0.142529657997643	0.142529657997643
-16717	5546	10002	2.41636756690016	2.41636756690016
-14694	4875	4946	0.19209064576365	0.19209064576365
-2465	1228	2455	0.0986019921641189	0.0986019921641189
-17232	243	244	0.123936016070967	0.123936016070967
-17233	244	245	0.0423914167747626	0.0423914167747626
-17234	245	30	0.0421885133223055	0.0421885133223055
-17235	30	31	0.0623462807475453	0.0623462807475453
-20321	10740	10741	0.00961494122957245	0.00961494122957245
-20520	10845	10841	0.0515194041185215	0.0515194041185215
-19715	10630	10631	0.0208944523636977	0.0208944523636977
-14699	4164	4773	0.260608636385053	0.260608636385053
-2587	2559	2560	0.109781786773584	0.109781786773584
-18391	7038	3425	0.202488499072253	0.202488499072253
-18395	2554	3861	0.207477450927098	0.207477450927098
-20741	10913	7366	0.0901821833329384	0.0901821833329384
-2613	2576	2373	0.0436228403965834	0.0436228403965834
-19620	10524	10589	0.00570573305761744	0.00570573305761744
-18401	1425	7176	0.174145888646233	0.174145888646233
-20347	10745	10747	0.0185775892434006	0.0185775892434006
-2677	2638	2639	0.294941945704345	0.294941945704345
-19655	10606	10607	0.00514986150833142	0.00514986150833142
-18881	7249	3271	0.203031342103983	0.203031342103983
-20742	7366	10907	0.0328095866921768	0.0328095866921768
-2729	2684	2685	0.0539600310135124	0.0539600310135124
-17508	10114	10116	0.025112430125901	0.025112430125901
-17946	10225	10226	0.00737359034109891	0.00737359034109891
-14688	2393	2798	0.189312144234638	0.189312144234638
-18130	10265	6045	0.200929523136355	0.200929523136355
-2876	2499	2821	0.136005417598284	0.136005417598284
-12974	2797	2822	0.0772628603550689	0.0772628603550689
-19658	9394	8493	0.0491161384071996	0.0491161384071996
-19659	8493	6763	0.145715875084599	0.145715875084599
-14698	5033	4164	0.121872885708228	0.121872885708228
-17172	3092	5304	0.202230215982892	0.202230215982892
-3021	2953	2954	0.00990774005844554	0.00990774005844554
-19694	10618	8145	0.956513774549446	0.956513774549446
-19803	5200	10646	0.12476083696761	0.12476083696761
-14722	4871	6016	0.191389811056615	0.191389811056615
-20794	8908	10948	0.0132755925041989	0.0132755925041989
-19880	10672	2617	0.0529554442967168	0.0529554442967168
-19918	6233	5202	0.175854776488408	0.175854776488408
-18502	9278	9526	0.133752339971597	0.133752339971597
-3064	2995	2996	0.132712872312529	0.132712872312529
-19901	10663	10676	0.0513919786820835	0.0513919786820835
-19973	10306	619	0.00429215823862154	0.00429215823862154
-17075	7842	828	0.141317632530522	0.141317632530522
-17970	10238	10234	0.0188321983270746	0.0188321983270746
-18897	10377	10378	0.0131134839493858	0.0131134839493858
-17180	5449	5450	0.206640976814444	0.206640976814444
-17113	3932	3959	0.0402088808240704	0.0402088808240704
-19990	10684	10682	0.0498254818797545	0.0498254818797545
-18513	9294	10302	0.00151227516682341	0.00151227516682341
-3252	2365	3163	0.175456016528149	0.175456016528149
-19267	10446	8486	0.0130023858176566	0.0130023858176566
-15217	9530	539	0.0270882933911684	0.0270882933911684
-18503	9526	9353	0.135313261796309	0.135313261796309
-18902	10378	10381	0.0118745691698922	0.0118745691698922
-20282	10710	10722	0.0492625817369533	0.0492625817369533
-19437	10490	10491	0.0516785382045006	0.0516785382045006
-16422	3358	3034	0.0480216533576434	0.0480216533576434
-17185	5659	5660	0.024871407903781	0.024871407903781
-18512	10302	9294	0.00151227516682341	0.00151227516682341
-18681	3185	3408	0.173742073092489	0.173742073092489
-15235	9533	9534	0.025845258726166	0.025845258726166
-15243	9534	9535	0.0751513734309232	0.0751513734309232
-14715	5686	5687	0.105315223547906	0.105315223547906
-19826	10647	9253	0.122215184303521	0.122215184303521
-20299	10728	5578	0.0498927645754841	0.0498927645754841
-15281	9557	9556	0.01686832436596	0.01686832436596
-15283	9557	9558	0.0154433036380546	0.0154433036380546
-17312	5705	5706	0.401673875470838	0.401673875470838
-3564	3426	3427	0.0516847701108369	0.0516847701108369
-15400	9579	3315	0.0326402169295471	0.0326402169295471
-15402	9580	9581	0.331383974435327	0.331383974435327
-15403	9582	9583	0.0120173707764648	0.0120173707764648
-18689	1859	5770	0.176521953507317	0.176521953507317
-3659	3496	3497	0.100604510338319	0.100604510338319
-15426	8637	4935	0.0862034738049073	0.0862034738049073
-15429	9597	8608	0.0815311130388188	0.0815311130388188
-14717	933	5818	0.11375652775637	0.11375652775637
-3704	3540	3541	0.0487079158287504	0.0487079158287504
-20304	9382	10728	0.0315682813160642	0.0315682813160642
-15490	9618	8464	0.061043367869745	0.061043367869745
-15492	9627	9626	0.0311123551122936	0.0311123551122936
-17382	5814	2314	0.0781390219671105	0.0781390219671105
-20431	10791	10754	0.00545772790966665	0.00545772790966665
-3935	3733	3734	0.176323868665952	0.176323868665952
-20425	10786	10787	0.0471980291688183	0.0471980291688183
-16275	9868	3657	0.128315234485653	0.128315234485653
-17111	3775	3776	0.0186255054019669	0.0186255054019669
-20436	10794	10795	0.0773551964908624	0.0773551964908624
-4030	3814	3815	0.205898323776278	0.205898323776278
-14114	3768	3623	0.0676593021490157	0.0676593021490157
-20311	10732	10733	0.00871128803713245	0.00871128803713245
-17485	321	4992	0.0357053960194593	0.0357053960194593
-4135	1293	3896	0.0646203690871901	0.0646203690871901
-16181	9842	5547	0.812121023854291	0.812121023854291
-15562	9299	9657	0.183361943567776	0.183361943567776
-15563	9657	3803	0.198879262059456	0.198879262059456
-18244	9371	2433	0.198605382792158	0.198605382792158
-20442	10799	10800	0.0197706815366264	0.0197706815366264
-4153	2788	3908	0.132166336514103	0.132166336514103
-19582	10575	10562	0.0700205995742609	0.0700205995742609
-16266	7738	5831	0.20157737543677	0.20157737543677
-17685	6154	6155	0.459645187119716	0.459645187119716
-4242	3991	3227	0.0177155969329486	0.0177155969329486
-4243	3227	3992	0.0329982706824684	0.0329982706824684
-19465	10509	10510	0.0192818852758557	0.0192818852758557
-20445	10801	10802	0.0205768304881295	0.0205768304881295
-4285	658	1885	0.048605694225596	0.048605694225596
-14724	5469	977	0.135303141818757	0.135303141818757
-4308	4042	3999	0.107188720026654	0.107188720026654
-15626	9687	9688	0.091295408872665	0.091295408872665
-18437	10292	8442	0.00675422790693776	0.00675422790693776
-20447	10794	10803	0.118731077964576	0.118731077964576
-4347	4075	4076	0.0470687599943484	0.0470687599943484
-4349	1002	4077	0.216843974938131	0.216843974938131
-20454	10809	10810	0.100342747602662	0.100342747602662
-4420	4130	4131	0.121697779505431	0.121697779505431
-19593	10478	10580	0.068856662719705	0.068856662719705
-20625	10804	10874	0.0625386897444795	0.0625386897444795
-18253	3979	6754	0.201867515357413	0.201867515357413
-4514	4194	4195	0.10298973821829	0.10298973821829
-15674	9685	9686	0.0593326737516342	0.0593326737516342
-20460	10813	10814	0.0263810628539784	0.0263810628539784
-4540	1339	4214	0.206331927913881	0.206331927913881
-15694	7269	2024	0.188168800569156	0.188168800569156
-19466	10510	10511	0.0234630277187848	0.0234630277187848
-20626	10788	10875	0.12707186988651	0.12707186988651
-14733	6342	4868	0.191023303912105	0.191023303912105
-18638	7383	5180	0.100367385774354	0.100367385774354
-15713	1050	3913	0.111080496528689	0.111080496528689
-18173	6048	6420	0.20192046475531	0.20192046475531
-4662	1707	4301	0.203353286347824	0.203353286347824
-15737	3771	8867	0.1545281811215	0.1545281811215
-18694	6025	5978	0.00688297127309608	0.00688297127309608
-18468	10298	9138	0.0199498887128462	0.0199498887128462
-17131	4372	1799	0.197593407061799	0.197593407061799
-15759	3487	5346	0.100946337054167	0.100946337054167
-20632	8227	6090	0.135158757751447	0.135158757751447
-18263	6067	6514	0.193791754137247	0.193791754137247
-4805	4410	4411	0.102107994490615	0.102107994490615
-19823	9252	7641	0.177252004679102	0.177252004679102
-15778	9119	9707	0.0214606208419429	0.0214606208419429
-15780	9707	9703	0.181325566879256	0.181325566879256
-14737	4770	6526	0.178169149120729	0.178169149120729
-4824	534	475	0.0459278377034575	0.0459278377034575
-15830	7134	9724	0.00382519149625338	0.00382519149625338
-434	433	364	0.11596793090747	0.11596793090747
-17139	4488	3200	0.20282742100359	0.20282742100359
-20710	7365	10885	0.00202939174918317	0.00202939174918317
-20738	10886	10887	0.038658244493302	0.038658244493302
-4921	4492	4493	0.0619945774719425	0.0619945774719425
-18268	2438	5736	0.170878783790289	0.170878783790289
-4947	3640	4511	0.128546240241841	0.128546240241841
-2413	2403	2404	0.136554071110129	0.136554071110129
-11806	8418	8419	0.144478674207108	0.144478674207108
-470	473	474	0.189801845816516	0.189801845816516
-14741	3802	5935	0.15521301123556	0.15521301123556
-4998	4544	4545	0.135440573029242	0.135440573029242
-2670	2628	2629	0.199951181775354	0.199951181775354
-18532	10307	7540	0.709454997862857	0.709454997862857
-5075	4599	1025	0.0544629152641776	0.0544629152641776
-17143	4616	4617	0.200408905820063	0.200408905820063
-20669	10890	10891	0.0251214927041886	0.0251214927041886
-14743	931	2216	0.184594913416957	0.184594913416957
-5094	4615	4618	0.110635552941058	0.110635552941058
-19633	10594	10505	0.00660487490366482	0.00660487490366482
-20709	10913	7365	0.234512277592806	0.234512277592806
-20713	5881	10915	0.0114767201911695	0.0114767201911695
-18275	6667	1427	0.0124761175920816	0.0124761175920816
-18575	10323	10324	0.133190640971179	0.133190640971179
-19540	10553	10554	0.069921649249612	0.069921649249612
-19541	10554	7472	0.00672748885261455	0.00672748885261455
-19542	7472	10555	0.00636055689076091	0.00636055689076091
-20479	10827	10828	0.0321786032396296	0.0321786032396296
-5172	3232	4672	0.135963226577445	0.135963226577445
-17294	8754	10015	0.202671913712405	0.202671913712405
-23	24	25	0.131395177842502	0.131395177842502
-24	25	26	0.132981987743145	0.132981987743145
-18535	5555	10308	0.537923452261619	0.537923452261619
-5196	4693	4694	0.101324047402986	0.101324047402986
-17084	505	4047	0.193244409170512	0.193244409170512
-20013	7896	8858	0.144841565186615	0.144841565186615
-18281	6757	6460	0.11412288805936	0.11412288805936
-5239	4723	4724	0.173697663092072	0.173697663092072
-57	61	62	0.0954500024095661	0.0954500024095661
-18609	5208	6228	0.175202487961463	0.175202487961463
-18543	10313	5554	0.549870500653692	0.549870500653692
-5310	4766	3155	0.0172249530452766	0.0172249530452766
-78	84	85	0.0505639086324271	0.0505639086324271
-19778	10632	5380	0.0979518829901303	0.0979518829901303
-20481	10792	10829	0.0269599370404467	0.0269599370404467
-5457	4876	4877	0.0499120224253174	0.0499120224253174
-96	101	102	0.0321305027576107	0.0321305027576107
-97	102	103	0.0620448910426151	0.0620448910426151
-18782	10348	10344	0.0162360672802701	0.0162360672802701
-5478	4135	4890	0.0934025271750886	0.0934025271750886
-121	128	129	0.177008602394702	0.177008602394702
-244	251	252	0.175978023607631	0.175978023607631
-18294	6901	1428	0.00619376962359973	0.00619376962359973
-5500	4907	4908	0.100175479072509	0.100175479072509
-140	148	149	0.0975727004199176	0.0975727004199176
-393	395	396	0.169106051700542	0.169106051700542
-18784	10348	10349	0.00525970147109288	0.00525970147109288
-5522	4924	4677	0.103650586835971	0.103650586835971
-18546	7539	10314	0.65633531431652	0.65633531431652
-18297	6968	6995	0.202610377838011	0.202610377838011
-5676	3669	5032	0.215322761034264	0.215322761034264
-173	182	183	0.0984047094047537	0.0984047094047537
-174	183	184	0.100655002347226	0.100655002347226
-16515	5454	5455	0.104997960992542	0.104997960992542
-20485	10832	10763	0.0351600114003883	0.0351600114003883
-5779	2576	4917	0.032816005995912	0.032816005995912
-192	202	203	0.199740801936021	0.199740801936021
-193	203	169	0.402428218597258	0.402428218597258
-14755	5931	927	0.177893389603082	0.177893389603082
-5803	5121	5122	0.103540820168727	0.103540820168727
-225	49	236	0.00807621055546913	0.00807621055546913
-18672	1538	1539	0.106836085520251	0.106836085520251
-14756	927	2212	0.186014347432929	0.186014347432929
-5852	1967	4622	0.105142035615429	0.105142035615429
-282	292	293	0.038589084717098	0.038589084717098
-283	293	294	0.0763501630731075	0.0763501630731075
-285	295	296	0.17581051150028	0.17581051150028
-14758	4862	7101	0.190667289560019	0.190667289560019
-5875	4334	5174	0.0464101693595893	0.0464101693595893
-350	351	352	0.0901523030384508	0.0901523030384508
-353	355	356	0.108591561133878	0.108591561133878
-369	370	371	0.00989155289209397	0.00989155289209397
-18304	7116	6758	0.139614208847036	0.139614208847036
-517	511	512	0.231881303387922	0.231881303387922
-518	512	513	0.0504031171767775	0.0504031171767775
-12256	8620	8618	0.1042966231246	0.1042966231246
-6051	5293	5294	0.1322760806231	0.1322760806231
-18305	6758	3982	0.20021257935936	0.20021257935936
-574	248	567	0.654270176053915	0.654270176053915
-575	264	568	0.0404038185731676	0.0404038185731676
-19637	10596	10597	0.0126826750829723	0.0126826750829723
-20403	10761	10778	0.00417068578422797	0.00417068578422797
-6437	2444	5569	0.02055703905507	0.02055703905507
-614	605	606	0.0427456634033912	0.0427456634033912
-11697	1006	1032	0.0356944242966225	0.0356944242966225
-18485	7779	9146	0.0491523501803915	0.0491523501803915
-19922	7869	3723	0.102610678307364	0.102610678307364
-20528	10783	10029	0.0108754318867703	0.0108754318867703
-6839	2922	5305	0.104995892978265	0.104995892978265
-634	544	624	0.0671323040254876	0.0671323040254876
-635	624	625	0.00434381837571047	0.00434381837571047
-20428	10788	10789	0.0563042197472527	0.0563042197472527
-18340	7633	7634	0.201343863199868	0.201343863199868
-20531	2704	10847	0.00595682994262844	0.00595682994262844
-18337	7624	2435	0.20163475178063	0.20163475178063
-655	645	646	0.15124021105117	0.15124021105117
-11518	656	657	0.200075413530476	0.200075413530476
-18341	7634	7661	0.00671626059696149	0.00671626059696149
-18342	7661	7662	0.197150609042501	0.197150609042501
-6951	5687	5936	0.0500693590985736	0.0500693590985736
-6952	5936	5453	0.049749026364738	0.049749026364738
-18121	10257	2538	0.176222237628552	0.176222237628552
-18344	5247	6874	0.0949718672307841	0.0949718672307841
-20408	10778	8971	0.00240570116723256	0.00240570116723256
-7025	5987	5146	0.0839973170950687	0.0839973170950687
-687	680	681	0.00253308666004397	0.00253308666004397
-688	681	682	0.0177686502456197	0.0177686502456197
-20536	10790	10850	0.034182335159618	0.034182335159618
-18351	6756	3981	0.199906908242653	0.199906908242653
-7046	5996	5997	0.0183612294578931	0.0183612294578931
-7047	5997	5998	0.0939822022965603	0.0939822022965603
-16701	9996	9997	0.0529811614609842	0.0529811614609842
-20223	10711	10712	0.0485921897229188	0.0485921897229188
-7066	4209	6007	0.100592936440223	0.100592936440223
-719	715	716	0.14011322934495	0.14011322934495
-18164	6036	4091	0.184872985391224	0.184872985391224
-18360	7775	7374	0.049527285222362	0.049527285222362
-7242	1086	6117	0.0183572728116315	0.0183572728116315
-20444	10797	10801	0.0204844414155983	0.0204844414155983
-14778	5928	925	0.176931188736704	0.176931188736704
-7325	6163	6164	0.404282808510336	0.404282808510336
-757	756	757	0.0403523543057396	0.0403523543057396
-758	758	759	0.10406364243601	0.10406364243601
-20552	10810	10855	0.0274674933149076	0.0274674933149076
-7375	340	337	0.0516827997381363	0.0516827997381363
-778	783	784	0.143355100800641	0.143355100800641
-18365	1660	7716	0.0501099513590678	0.0501099513590678
-7418	5550	6228	0.0493634763375772	0.0493634763375772
-798	803	806	1.01502432527974	1.01502432527974
-20237	10712	8819	0.0494540965066323	0.0494540965066323
-7441	1600	1601	0.0713701116113288	0.0713701116113288
-814	825	826	0.10637782371988	0.10637782371988
-815	826	827	0.107195537700229	0.107195537700229
-20239	10716	10717	0.029516495512001	0.029516495512001
-7466	2930	5311	0.101596891275597	0.101596891275597
-836	849	850	0.0925483728292225	0.0925483728292225
-837	850	851	0.184151560988971	0.184151560988971
-20241	8817	10717	0.0237033604501814	0.0237033604501814
-7541	6292	65	0.186329349943054	0.186329349943054
-857	870	871	0.202831473953724	0.202831473953724
-14121	4084	3945	0.0818484712615532	0.0818484712615532
-18787	10347	10345	0.045081440573134	0.045081440573134
-7826	2505	6454	0.100016861256994	0.100016861256994
-876	889	890	0.105571186658179	0.105571186658179
-877	890	891	0.105688383652669	0.105688383652669
-11418	8067	8068	0.0483239948134963	0.0483239948134963
-7848	6464	6465	0.0519215197465546	0.0519215197465546
-894	908	909	0.110040792413973	0.110040792413973
-896	910	911	0.148938852784508	0.148938852784508
-11420	8068	8077	0.744996900508782	0.744996900508782
-7872	6484	6485	0.109350713693358	0.109350713693358
-914	928	929	0.0454506765778274	0.0454506765778274
-15223	8102	5299	0.0276921695746079	0.0276921695746079
-16761	10006	10010	0.188081556068426	0.188081556068426
-20354	9336	10730	0.00773852906846938	0.00773852906846938
-7965	6543	6544	0.0483732045653669	0.0483732045653669
-954	966	967	0.0990431305437434	0.0990431305437434
-19650	10601	10604	0.0245600833310456	0.0245600833310456
-18271	6463	6629	0.159535181156963	0.159535181156963
-20358	10736	9208	0.00987870578899212	0.00987870578899212
-11333	3953	8218	0.0887906096153549	0.0887906096153549
-976	987	988	0.0367128135573791	0.0367128135573791
-18911	10389	10390	0.0499832893351177	0.0499832893351177
-8132	6646	6647	0.176189320777164	0.176189320777164
-20359	9208	8992	0.00952006614931064	0.00952006614931064
-18533	7540	5565	0.0799101067174197	0.0799101067174197
-15227	8248	1474	0.0211145699437457	0.0211145699437457
-11427	8252	8251	0.0497577863871374	0.0497577863871374
-8228	5488	6699	0.203871251538877	0.203871251538877
-1013	1025	1026	0.240326237485559	0.240326237485559
-1014	1026	1027	0.140197604091005	0.140197604091005
-11524	8299	6771	0.0679188084680006	0.0679188084680006
-8280	6724	1837	0.0673898837011532	0.0673898837011532
-16769	3180	3279	0.131366088579917	0.131366088579917
-11560	7714	8320	0.204692599225755	0.204692599225755
-18785	10349	3941	0.0399279993421446	0.0399279993421446
-1055	1071	1072	0.193562714729093	0.193562714729093
-18374	2425	6794	0.0832162654729584	0.0832162654729584
-8378	6787	5475	0.176557126416642	0.176557126416642
-1079	1095	1096	0.106445830238736	0.106445830238736
-1081	1097	1098	0.0486277340974482	0.0486277340974482
-18378	2549	8381	0.409599255943821	0.409599255943821
-8425	4370	2496	0.102227972652095	0.102227972652095
-1101	1117	1118	0.104134759343337	0.104134759343337
-19670	9361	9367	0.104968988119014	0.104968988119014
-11768	8406	8391	0.072368398733761	0.072368398733761
-11405	6191	577	0.346853696348124	0.346853696348124
-11711	2125	2126	0.0693722119224359	0.0693722119224359
-1121	1137	1138	0.209246619241212	0.209246619241212
-11896	1345	8466	0.0539854948645785	0.0539854948645785
-8519	3823	6870	0.0122276886226055	0.0122276886226055
-1142	1161	1045	0.106182749069371	0.106182749069371
-1143	1045	1162	0.0572035723632033	0.0572035723632033
-11949	8497	8498	0.0157235898061176	0.0157235898061176
-8563	6893	6894	0.0563604312984052	0.0563604312984052
-1161	1180	1181	0.108807320753836	0.108807320753836
-1162	1181	555	0.0264412731929892	0.0264412731929892
-11990	6574	4455	0.147936408791814	0.147936408791814
-8587	6905	6906	0.00825706398143248	0.00825706398143248
-1181	1196	1197	0.0308045840002764	0.0308045840002764
-16676	9978	9979	0.0911222888155273	0.0911222888155273
-12046	8525	8526	0.0214801658544325	0.0214801658544325
-8609	4639	1260	0.0990232299326886	0.0990232299326886
-20366	10746	10748	0.00389959559054649	0.00389959559054649
-8754	6984	6985	0.142274771709776	0.142274771709776
-15273	8632	8698	0.0321488809830426	0.0321488809830426
-12327	8651	8462	0.0863896937468126	0.0863896937468126
-8825	7022	7023	0.132397309217195	0.132397309217195
-15906	8604	1831	0.0312706435771371	0.0312706435771371
-8982	704	420	0.200616718436647	0.200616718436647
-1261	1282	24	0.134590345997008	0.134590345997008
-18452	7704	9427	0.203142152499049	0.203142152499049
-12940	8766	1971	0.0880952038111177	0.0880952038111177
-12050	8529	8530	0.0322062217802774	0.0322062217802774
-1281	1306	1307	0.102064457561207	0.102064457561207
-12052	8529	8412	0.0524928623134227	0.0524928623134227
-20805	10934	7427	0.00626540347624637	0.00626540347624637
-9106	7163	7164	0.0532969377049032	0.0532969377049032
-1301	1326	1327	0.0908036524111016	0.0908036524111016
-1302	1327	1328	0.187321516717609	0.187321516717609
-20389	10773	10765	0.00486729953892219	0.00486729953892219
-20812	7034	10952	0.00504516380305115	0.00504516380305115
-12945	8883	8884	0.0693524767029838	0.0693524767029838
-9177	1813	7200	0.0899820045120437	0.0899820045120437
-12258	8619	8617	0.025123815719297	0.025123815719297
-9178	132	7201	0.0532452299195118	0.0532452299195118
-13064	8946	8947	0.0850173355126965	0.0850173355126965
-9301	7274	6989	0.145898107890786	0.145898107890786
-1340	1368	1369	0.19896343011117	0.19896343011117
-20815	7168	10919	0.00784309361436635	0.00784309361436635
-9323	7286	7287	0.0531798537803958	0.0531798537803958
-18312	7244	7291	0.112193704343122	0.112193704343122
-20817	10953	10288	0.00348743524444471	0.00348743524444471
-20818	10288	10921	0.00283999263123215	0.00283999263123215
-9345	7305	6323	0.0511693918815177	0.0511693918815177
-20831	10939	10947	0.189387199061175	0.189387199061175
-20504	10061	10815	0.00579629159172248	0.00579629159172248
-12268	8625	8626	0.00924470302738606	0.00924470302738606
-18317	7365	7366	0.190091232151663	0.190091232151663
-18915	10393	10394	0.0257178211457629	0.0257178211457629
-9548	5843	7400	0.197969196756037	0.197969196756037
-1402	1428	1429	0.0514192906451236	0.0514192906451236
-19551	10559	10558	0.0350073244923259	0.0350073244923259
-20372	10756	10757	0.119877702556756	0.119877702556756
-18474	9006	9005	0.01365486811001	0.01365486811001
-9618	6255	7423	0.201105238361345	0.201105238361345
-1423	1446	1447	0.102065186535373	0.102065186535373
-12355	8667	8662	0.00824054620763183	0.00824054620763183
-13473	9096	9097	0.0791788196488147	0.0791788196488147
-13558	9033	9033	0.000550802138422688	0.000550802138422688
-9720	5436	7485	0.210597915191446	0.210597915191446
-1445	1465	778	0.201931327083159	0.201931327083159
-16745	10007	6830	0.0463356709963923	0.0463356709963923
-18484	9139	9145	0.0170083591694009	0.0170083591694009
-18486	9146	1121	0.0502889247784144	0.0502889247784144
-13588	9137	9132	0.0916872062208973	0.0916872062208973
-18564	10320	10321	0.148893183386122	0.148893183386122
-1470	1490	1454	0.0984270848036789	0.0984270848036789
-11793	8412	1301	0.0102820603565046	0.0102820603565046
-13649	9157	9158	0.11057157733623	0.11057157733623
-9923	7595	5945	0.197471792675123	0.197471792675123
-1492	1512	1513	0.240760864140441	0.240760864140441
-1493	1513	1514	0.0903356876724302	0.0903356876724302
-18489	9154	9164	0.0526957444463644	0.0526957444463644
-9949	7606	7607	0.0349507847949759	0.0349507847949759
-1512	1531	1532	0.421840818868262	0.421840818868262
-1514	1533	1534	0.0990053945754622	0.0990053945754622
-18920	10391	10399	0.0111591670236662	0.0111591670236662
-10025	6642	3954	0.137704462550789	0.137704462550789
-1533	1556	1557	0.0904418216599082	0.0904418216599082
-1535	1558	1559	0.0987505899129773	0.0987505899129773
-19486	10409	10426	0.0202821728904968	0.0202821728904968
-10050	7651	7652	0.0462326431468639	0.0462326431468639
-1552	1577	1578	0.0904564264247089	0.0904564264247089
-1554	1579	1580	0.0903173650147356	0.0903173650147356
-18611	2585	1850	0.178619647699559	0.178619647699559
-19139	479	10436	0.0608772998887891	0.0608772998887891
-10147	7693	7694	0.00731957097451548	0.00731957097451548
-1571	1598	1600	0.0527554061663716	0.0527554061663716
-18460	6389	9354	0.131365686337894	0.131365686337894
-13942	9095	9242	0.111189675764469	0.111189675764469
-10218	6638	5410	0.0525082825873588	0.0525082825873588
-11529	809	810	0.133518358438394	0.133518358438394
-16258	9267	3529	0.187765741537081	0.187765741537081
-10288	7759	7760	0.0990614933501691	0.0990614933501691
-1610	1640	1641	0.0829769157452624	0.0829769157452624
-1611	1641	1642	0.0110107206173314	0.0110107206173314
-14142	478	9286	0.110440686979957	0.110440686979957
-10359	6835	4056	0.176947127899101	0.176947127899101
-10360	4056	7791	0.153314942388554	0.153314942388554
-16039	9796	9803	0.17034831343451	0.17034831343451
-20229	8818	8827	0.0165504595782256	0.0165504595782256
-15466	9616	9605	0.0511543414269977	0.0511543414269977
-10664	7914	2973	0.0665734173113744	0.0665734173113744
-1646	1673	1674	0.136622102626379	0.136622102626379
-1647	1674	1675	0.135851990536989	0.135851990536989
-15467	9605	7963	0.0172079120084978	0.0172079120084978
-1668	1693	1694	0.101380870701686	0.101380870701686
-11218	3630	8166	0.0456744230751041	0.0456744230751041
-15788	9639	9625	0.0212057259943503	0.0212057259943503
-11369	8219	7971	0.0335395055556045	0.0335395055556045
-16195	7725	5820	0.195527635044049	0.195527635044049
-16196	5820	7207	0.20506620423787	0.20506620423787
-11659	7036	3421	0.201375612760589	0.201375612760589
-11773	2681	5358	0.147201059924865	0.147201059924865
-17216	8420	1908	0.199697066538748	0.199697066538748
-16157	9835	9836	0.024879986991164	0.024879986991164
-18699	1320	1376	0.177502821070015	0.177502821070015
-12115	8553	8554	0.175311002200187	0.175311002200187
-19503	10530	10531	0.0385295444601748	0.0385295444601748
-16538	9932	9933	0.139509514048293	0.139509514048293
-1717	1736	1737	0.0422973816408655	0.0422973816408655
-17220	3087	9830	0.198791677003679	0.198791677003679
-12205	8587	7095	0.0103763001462627	0.0103763001462627
-1748	1765	1768	0.20159496635188	0.20159496635188
-12332	8654	8655	0.0104809427005404	0.0104809427005404
-19506	10533	7232	0.00927443019901883	0.00927443019901883
-12444	8704	8705	0.0186821732215156	0.0186821732215156
-1767	1785	1786	0.049264963521636	0.049264963521636
-16454	9909	9910	0.124306713488191	0.124306713488191
-12491	8717	8718	0.055230353030641	0.055230353030641
-12493	8719	8720	0.118556931073074	0.118556931073074
-16535	4328	8117	0.102336137979151	0.102336137979151
-1810	1826	1827	0.198453556780362	0.198453556780362
-18642	7416	4062	0.177070510498962	0.177070510498962
-12605	384	4685	0.0512286127934627	0.0512286127934627
-1838	1854	1855	0.0513002538457751	0.0513002538457751
-1839	1855	1856	0.0505552484656801	0.0505552484656801
-16789	8649	10013	0.223567773525098	0.223567773525098
-12632	2360	3710	0.110712951608372	0.110712951608372
-1858	1870	1871	0.100377935012122	0.100377935012122
-17014	10053	10054	0.0101091220768254	0.0101091220768254
-12810	8258	8846	0.197578956532281	0.197578956532281
-12812	8846	6028	0.064250785290107	0.064250785290107
-12814	8847	8848	0.169735694825716	0.169735694825716
-12816	8848	297	0.081779930762806	0.081779930762806
-16613	9942	2685	0.29520243699611	0.29520243699611
-12926	8892	8893	0.0723033727126927	0.0723033727126927
-13020	8924	8925	0.0102645296363106	0.0102645296363106
-13048	8934	8935	0.109609070074496	0.109609070074496
-14679	9301	445	0.205255827063182	0.205255827063182
-17965	10232	10237	0.0287772787854116	0.0287772787854116
-18916	10395	10396	0.0665707610088623	0.0665707610088623
-17673	8930	8847	0.0672232407607821	0.0672232407607821
-19611	10510	10586	0.0687878070750461	0.0687878070750461
-1895	1909	1910	0.0533681732492523	0.0533681732492523
-18738	1858	7870	0.177701929540755	0.177701929540755
-18722	1312	9772	0.242272496904356	0.242272496904356
-13294	4282	4326	0.048552671008238	0.048552671008238
-1916	1928	1929	0.105818779358726	0.105818779358726
-18739	7870	4057	0.175799763463846	0.175799763463846
-18654	6221	7655	0.275174189153955	0.275174189153955
-1942	1956	1957	0.0270768788779568	0.0270768788779568
-13392	311	9059	0.0124055357740245	0.0124055357740245
-18659	7643	6205	0.176055293755678	0.176055293755678
-13405	8942	9061	0.112337222040467	0.112337222040467
-19275	10446	10424	0.0353155595120025	0.0353155595120025
-1960	1977	1978	0.0139641936224905	0.0139641936224905
-13485	9102	308	0.0118340647108347	0.0118340647108347
-20374	10758	3588	0.00620515380678302	0.00620515380678302
-18262	2547	6067	0.202075066970098	0.202075066970098
-13520	9073	117	0.110830423506594	0.110830423506594
-13529	5647	9088	0.177768687230353	0.177768687230353
-19599	1871	10582	0.0185256932684462	0.0185256932684462
-13548	447	2999	0.0894668373271695	0.0894668373271695
-13553	9126	579	0.319404247396224	0.319404247396224
-18657	7657	10331	0.158775443026926	0.158775443026926
-13716	6715	4211	0.0895901111539728	0.0895901111539728
-2012	2021	2022	0.202353267688237	0.202353267688237
-18846	10364	10366	0.0360011605118072	0.0360011605118072
-13805	9197	6639	0.199762828560815	0.199762828560815
-18572	10317	10318	0.0818849597364774	0.0818849597364774
-2037	2046	2047	0.202843850092204	0.202843850092204
-2038	2047	2048	0.202089258953368	0.202089258953368
-19239	8480	10459	0.145581432505511	0.145581432505511
-13871	2282	3603	0.0995034643784278	0.0995034643784278
-2058	746	1564	0.142548749521321	0.142548749521321
-12345	8661	8662	0.0184782413605156	0.0184782413605156
-13933	9117	9237	0.0487812750222334	0.0487812750222334
-13946	9243	9109	0.0432001724914345	0.0432001724914345
-20415	10773	10767	0.0164543942872072	0.0164543942872072
-15289	7065	9559	0.00979064512162057	0.00979064512162057
-15406	9582	9586	0.261696459707034	0.261696459707034
-14374	512	3439	0.0820413167433817	0.0820413167433817
-15291	9560	9561	0.0474312472960203	0.0474312472960203
-20033	3666	9939	0.222490979962601	0.222490979962601
-14436	9351	6743	0.133828356760244	0.133828356760244
-2083	2084	2085	0.132628008561016	0.132628008561016
-20269	10721	10704	0.0408769490843711	0.0408769490843711
-20257	7553	10687	0.047722995184739	0.047722995184739
-14596	9395	7373	0.0500503806511319	0.0500503806511319
-2107	1822	2109	0.0984259671843471	0.0984259671843471
-18860	10369	10362	0.0840816587742034	0.0840816587742034
-20253	10719	5572	0.00788824170654016	0.00788824170654016
-16690	9989	9990	0.0859897279747206	0.0859897279747206
-2125	1981	1966	0.0405441466490896	0.0405441466490896
-16692	8314	8651	0.0716207548906764	0.0716207548906764
-16847	3130	9896	0.0388183147420438	0.0388183147420438
-12343	8658	8659	0.0326641917954917	0.0326641917954917
-16277	4438	9869	0.0429816129844846	0.0429816129844846
-2254	2256	2257	0.179026041725141	0.179026041725141
-18714	6214	7650	0.274890248386652	0.274890248386652
-2282	2281	2282	0.208433952181449	0.208433952181449
-18413	7163	7445	0.101226183618457	0.101226183618457
-2309	1585	1646	0.0852956059582778	0.0852956059582778
-17366	3085	3197	0.201028238760753	0.201028238760753
-16424	3406	3407	0.0260120249027955	0.0260120249027955
-487	487	488	0.0915902876023465	0.0915902876023465
-2504	2153	2485	0.135805715389887	0.135805715389887
-15259	9549	9550	0.0733424963845631	0.0733424963845631
-17078	8074	9872	0.138360291064547	0.138360291064547
-604	595	596	0.135530584935403	0.135530584935403
-2561	2534	2535	0.131236307359374	0.131236307359374
-11701	1064	1065	0.0735266946881119	0.0735266946881119
-11702	1065	1066	0.144526540080904	0.144526540080904
-2641	1094	1110	0.0327560682713917	0.0327560682713917
-12965	1823	1824	0.115786401746133	0.115786401746133
-2716	2671	2672	0.137037719250731	0.137037719250731
-16268	9866	8748	0.200740333998757	0.200740333998757
-2739	2694	2695	0.0520216844496084	0.0520216844496084
-18678	2801	2589	0.177457369167133	0.177457369167133
-11691	837	867	0.00774513207370433	0.00774513207370433
-11692	867	868	0.00951825440201693	0.00951825440201693
-2894	2838	2839	0.0194790124967281	0.0194790124967281
-16704	9998	9999	0.0072772776659045	0.0072772776659045
-16598	5785	8280	0.146209128325821	0.146209128325821
-2965	1143	2908	0.0621246078682317	0.0621246078682317
-16603	7894	9953	0.113998968091224	0.113998968091224
-3043	2974	2975	0.149630303255577	0.149630303255577
-18440	2971	10293	0.0852727734364054	0.0852727734364054
-3066	2997	2998	0.0208518874255557	0.0208518874255557
-18441	10293	8299	0.0364176386342536	0.0364176386342536
-3086	3018	3019	0.14545556926134	0.14545556926134
-18443	7498	10290	0.0505394400731725	0.0505394400731725
-3112	3044	3045	0.100624292928738	0.100624292928738
-18471	2985	7703	0.198649870528673	0.198649870528673
-16707	9623	9998	0.0621574034637008	0.0621574034637008
-3136	3062	2284	0.0981125078289405	0.0981125078289405
-19669	10610	9361	0.0491952199145155	0.0491952199145155
-3158	3082	3083	0.0983700193882712	0.0983700193882712
-11703	1066	1158	0.148869854474817	0.148869854474817
-3181	3101	3102	0.0962927982103224	0.0962927982103224
-18133	4095	6040	0.192431028537818	0.192431028537818
-18446	10289	7781	0.0503825451517732	0.0503825451517732
-3230	3144	3145	0.203548069983679	0.203548069983679
-18448	9292	9527	0.134072690600401	0.134072690600401
-11705	1159	1244	0.147081474347396	0.147081474347396
-3281	3193	3194	0.106476946636896	0.106476946636896
-16416	3034	3130	0.0869691229324941	0.0869691229324941
-3302	3210	3211	0.0503243467464606	0.0503243467464606
-18899	10379	10380	0.00404144992313864	0.00404144992313864
-11709	1301	1302	0.0358989065327031	0.0358989065327031
-3325	3227	3228	0.131949141660574	0.131949141660574
-12952	1330	1361	0.0263074187615997	0.0263074187615997
-3400	3297	3298	0.0238019064284447	0.0238019064284447
-3489	1140	907	0.140863651036277	0.140863651036277
-16744	7566	10007	0.0424762897679241	0.0424762897679241
-18732	9833	7646	0.178089933314901	0.178089933314901
-3516	3387	3388	0.0211650011658898	0.0211650011658898
-12955	1478	1507	0.126108135430878	0.126108135430878
-3561	3424	3425	0.0612760168169184	0.0612760168169184
-16837	10019	9847	0.0370069651425935	0.0370069651425935
-3583	3438	1421	0.115878563365398	0.115878563365398
-12960	1632	1633	0.128348569926215	0.128348569926215
-3684	3520	3521	0.0506146313810284	0.0506146313810284
-18464	10298	9139	0.0193791784570559	0.0193791784570559
-3734	1037	3568	0.052776292073227	0.052776292073227
-19333	2826	10473	0.01148052310696	0.01148052310696
-18465	9139	541	0.0794672162259436	0.0794672162259436
-3755	3585	3586	0.0186262558199583	0.0186262558199583
-17071	4599	3687	0.240616539690475	0.240616539690475
-3805	3624	3250	0.195616461429944	0.195616461429944
-11577	1766	1595	0.0489656343684566	0.0489656343684566
-3825	3641	3642	0.0193156490955763	0.0193156490955763
-17299	5829	8716	0.20447937601548	0.20447937601548
-3847	3658	3639	0.0475522464454704	0.0475522464454704
-18869	10144	10372	0.0637708443692985	0.0637708443692985
-16541	812	3553	0.152482276035164	0.152482276035164
-20222	7195	10711	0.0935594253631277	0.0935594253631277
-19431	10003	8707	0.100281643377189	0.100281643377189
-3891	3519	3695	0.200167523328644	0.200167523328644
-16751	6829	10008	0.0961527504424716	0.0961527504424716
-3916	3713	3714	0.1010804805974	0.1010804805974
-15272	8538	8632	0.0716756500086966	0.0716756500086966
-3938	3736	3737	0.112607595972795	0.112607595972795
-18125	4097	6042	0.191481087124581	0.191481087124581
-19576	10572	7461	0.00811745051204977	0.00811745051204977
-12969	1970	1971	0.103498330022734	0.103498330022734
-4039	3819	3820	0.147623529549067	0.147623529549067
-18745	5190	2608	0.176866790100876	0.176866790100876
-4127	3890	3891	0.179468370845182	0.179468370845182
-12335	8652	8653	0.0109021010822668	0.0109021010822668
-4149	3906	1161	0.136761513456038	0.136761513456038
-17950	6559	10229	0.0124761805379247	0.0124761805379247
-4173	1891	706	0.0588353275400914	0.0588353275400914
-14115	3623	3925	0.0987645160792797	0.0987645160792797
-16843	10020	10021	0.00337377443816097	0.00337377443816097
-4194	3942	3943	0.176445012103913	0.176445012103913
-18245	2433	9358	0.201879495148218	0.201879495148218
-18189	6055	5795	0.200795798534704	0.200795798534704
-4450	3345	4152	0.10312101394972	0.10312101394972
-18872	9232	7825	0.160805002055775	0.160805002055775
-4529	4204	4205	0.278098742346476	0.278098742346476
-18399	2541	10285	0.412599954612644	0.412599954612644
-4637	4281	913	0.111497113872301	0.111497113872301
-16900	4255	3513	0.200996147699506	0.200996147699506
-15919	9746	7414	0.0221971015175522	0.0221971015175522
-4682	4322	4323	0.0558862625971893	0.0558862625971893
-16298	2636	2637	0.0033759355903552	0.0033759355903552
-18879	6125	1927	0.199518260048308	0.199518260048308
-4761	1489	145	0.199750566224671	0.199750566224671
-18696	4055	6400	0.176933507030136	0.176933507030136
-16300	2637	2160	0.00247295077408309	0.00247295077408309
-4832	1268	4428	0.206285087175769	0.206285087175769
-18888	7247	1923	0.201674729042946	0.201674729042946
-4997	4543	4544	0.132688906239847	0.132688906239847
-16650	9968	9969	0.0122299544992289	0.0122299544992289
-13009	2891	2892	0.172319187220424	0.172319187220424
-5024	4562	4563	0.200718931282707	0.200718931282707
-16315	3005	1362	0.00318470714397005	0.00318470714397005
-5188	4685	4686	0.177776490265982	0.177776490265982
-17297	10086	7736	0.198049290500642	0.198049290500642
-20272	10721	10703	0.0411977345042915	0.0411977345042915
-5368	3223	4808	0.133968729582188	0.133968729582188
-18898	10378	10379	0.00446883067059111	0.00446883067059111
-5393	4828	4829	0.40282604477454	0.40282604477454
-20273	10703	10725	0.144609051598102	0.144609051598102
-5414	4842	1486	0.202708226253938	0.202708226253938
-5490	458	4898	0.0468723555946229	0.0468723555946229
-19112	8424	10118	0.19768851226159	0.19768851226159
-5515	1212	4920	0.232222389672051	0.232222389672051
-19281	10466	8768	0.124416605605605	0.124416605605605
-5542	2537	4941	0.438197641658083	0.438197641658083
-20340	10739	10748	0.00884971981393432	0.00884971981393432
-19231	10455	10456	0.1184623603546	0.1184623603546
-5626	3284	1058	0.0983991410952824	0.0983991410952824
-18347	7686	2429	0.200029751476084	0.200029751476084
-17080	1162	882	0.139677295386473	0.139677295386473
-6004	5259	5260	0.066486526131314	0.066486526131314
-14136	9281	509	0.032133360210872	0.032133360210872
-17116	4052	3775	0.00847774353709404	0.00847774353709404
-6616	5699	5700	0.00800603928165774	0.00800603928165774
-19812	7122	5371	0.176755455393693	0.176755455393693
-6777	5820	5821	0.0499181980722273	0.0499181980722273
-4400	4114	4115	0.202509931844666	0.202509931844666
-11451	8258	8261	0.200629988067775	0.200629988067775
-19818	10647	5606	0.0519771701713562	0.0519771701713562
-6974	2119	5953	0.0979282440578051	0.0979282440578051
-4402	4117	2874	0.134125988252719	0.134125988252719
-4403	2874	4118	0.140174877049639	0.140174877049639
-17149	46	4780	0.204228808601968	0.204228808601968
-7674	1498	187	0.203419998803368	0.203419998803368
-7719	6393	6394	0.135380647167761	0.135380647167761
-20324	10732	10743	0.016217938211146	0.016217938211146
-7749	6408	6409	0.240033624288878	0.240033624288878
-20330	10744	10736	0.0345659354386547	0.0345659354386547
-7835	4630	1259	0.131787660470127	0.131787660470127
-5519	4922	2815	0.0131824278657025	0.0131824278657025
-7914	3652	89	0.238216692287668	0.238216692287668
-17155	3202	3091	0.199774901839453	0.199774901839453
-7937	6530	6531	0.246221323543984	0.246221323543984
-20342	2965	10747	0.0130500853290149	0.0130500853290149
-7957	3453	6015	0.103911955569673	0.103911955569673
-17306	8715	5827	0.20364289358169	0.20364289358169
-7981	6550	6526	0.0499792827976588	0.0499792827976588
-18128	10269	10270	0.123006178444702	0.123006178444702
-8007	6565	6566	0.0461778743400118	0.0461778743400118
-12262	8500	8621	0.00391508697358849	0.00391508697358849
-20346	10731	10745	0.0882403942542692	0.0882403942542692
-8080	6611	6612	0.10285099566632	0.10285099566632
-20503	10831	10061	0.00544027190297384	0.00544027190297384
-17159	5011	5064	0.204989668883762	0.204989668883762
-14700	4773	5065	0.177184173799166	0.177184173799166
-8102	6628	6630	0.0733305516170216	0.0733305516170216
-14712	935	5453	0.176927806170623	0.176927806170623
-8148	6658	1326	0.126702346827637	0.126702346827637
-14707	5162	5223	0.123984475685155	0.123984475685155
-8332	6761	6762	0.0544299595372282	0.0544299595372282
-17167	48	5241	0.405295346029575	0.405295346029575
-8384	6791	4603	0.174075741649446	0.174075741649446
-20516	6731	10843	0.0163123315737135	0.0163123315737135
-17171	5280	3092	0.401948502237413	0.401948502237413
-8434	6821	1593	0.0969711334947841	0.0969711334947841
-14711	2220	935	0.183060496140458	0.183060496140458
-8536	6880	1128	0.0335501177019022	0.0335501177019022
-19635	10525	10595	0.00694156278564008	0.00694156278564008
-18504	9353	6386	0.133800859600802	0.133800859600802
-8556	6891	6418	0.133199850282798	0.133199850282798
-8557	6418	4625	0.132396793169127	0.132396793169127
-17175	5327	5390	0.196700288812187	0.196700288812187
-18507	8379	10301	0.115242670596916	0.115242670596916
-8578	6280	6899	0.103595480205117	0.103595480205117
-4404	4118	4119	0.131974592337134	0.131974592337134
-18510	10301	9529	0.136169474903607	0.136169474903607
-4406	4120	4121	0.394524879292727	0.394524879292727
-19640	10596	10598	0.0045286617175965	0.0045286617175965
-8728	3385	6959	0.0627894298641218	0.0627894298641218
-18496	6384	9201	0.134997571408585	0.134997571408585
-18514	10302	5543	0.103400383164669	0.103400383164669
-8779	6999	7000	0.178967474513147	0.178967474513147
-18515	5543	2412	0.101763704229338	0.101763704229338
-8803	5141	2236	0.0248346840292332	0.0248346840292332
-19831	10650	10651	0.138361801446117	0.138361801446117
-8887	3285	1059	0.0976623415502941	0.0976623415502941
-17182	5607	5608	0.205054564403698	0.205054564403698
-8909	3021	7068	0.0519035642154067	0.0519035642154067
-4407	3574	4122	0.137780007377075	0.137780007377075
-14713	5453	5664	0.115365301333729	0.115365301333729
-9019	3944	7121	0.0616182757003265	0.0616182757003265
-18655	7655	10305	0.198541985736116	0.198541985736116
-9043	7135	4276	0.121250513345306	0.121250513345306
-18147	10258	6033	0.201162874084808	0.201162874084808
-9226	7232	7233	0.0701236279353194	0.0701236279353194
-18152	10264	10277	0.407566866193853	0.407566866193853
-9304	6121	1920	0.204110733126185	0.204110733126185
-18153	4104	6047	0.112519690969595	0.112519690969595
-11446	385	387	0.611916175000286	0.611916175000286
-17478	5886	323	0.0446797516163588	0.0446797516163588
-9352	6077	7309	0.0481617931874556	0.0481617931874556
-20395	10775	10776	0.00739420688081638	0.00739420688081638
-18154	6047	10135	0.201285870335585	0.201285870335585
-20429	10789	10790	0.0478990795077935	0.0478990795077935
-9375	7320	1193	0.16722266002845	0.16722266002845
-18274	6666	6667	0.19713796716552	0.19713796716552
-9396	4346	6344	0.137277828740194	0.137277828740194
-7038	2477	5911	0.20568880939919	0.20568880939919
-9526	7390	6591	0.199950723674749	0.199950723674749
-9527	6591	7113	0.204992725577621	0.204992725577621
-4408	4122	4123	0.139283771950412	0.139283771950412
-20440	8230	10798	0.00724995456680097	0.00724995456680097
-9657	7441	7443	0.137227628583058	0.137227628583058
-17487	4652	4653	0.0539741907357585	0.0539741907357585
-9708	7472	7473	0.0204539718039878	0.0204539718039878
-18246	9358	9377	0.403042223701425	0.403042223701425
-9812	7530	3064	0.202502418308833	0.202502418308833
-17689	6172	6173	0.109301053367223	0.109301053367223
-9839	7545	7546	0.200378656030458	0.200378656030458
-17691	6191	6192	0.114641917935369	0.114641917935369
-9862	7563	7564	0.144864127295822	0.144864127295822
-18248	8108	10283	0.203688042743378	0.203688042743378
-9912	7587	7588	0.0177693522294632	0.0177693522294632
-12245	8614	8615	0.00283454394049719	0.00283454394049719
-20023	7898	8856	0.145457290364043	0.145457290364043
-20462	10063	10815	0.0787418608501839	0.0787418608501839
-10159	5268	6906	0.123203894056526	0.123203894056526
-20464	10816	10812	0.0195704583026571	0.0195704583026571
-11511	8294	8295	0.0520431495126935	0.0520431495126935
-18214	6382	6383	0.202997553277811	0.202997553277811
-10231	6520	7739	0.0500835268559568	0.0500835268559568
-18257	3984	6760	0.19949668413334	0.19949668413334
-10280	7447	7757	0.470575008371913	0.470575008371913
-11783	8122	8036	0.0779413781888185	0.0779413781888185
-14738	6526	6538	0.170206219459847	0.170206219459847
-10497	4733	6800	0.110360790137427	0.110360790137427
-20473	10823	10777	0.00660874071248581	0.00660874071248581
-10520	7847	7425	0.0489570822105033	0.0489570822105033
-18522	4015	10297	0.0710067813209419	0.0710067813209419
-10541	7855	7856	0.177133627375528	0.177133627375528
-10542	7856	2614	0.178768427477815	0.178768427477815
-18524	1880	9146	0.0581549975210073	0.0581549975210073
-10589	7869	6640	0.0423030177562977	0.0423030177562977
-18270	5525	6463	0.15576453739372	0.15576453739372
-10616	7882	4885	0.155749664880603	0.155749664880603
-18528	9272	9525	0.133068770502091	0.133068770502091
-10639	7897	7898	0.052238135352395	0.052238135352395
-10663	7913	7914	0.0662287183378057	0.0662287183378057
-18276	1427	6667	0.0124761175920816	0.0124761175920816
-14745	4866	6690	0.193273433165028	0.193273433165028
-12385	1624	3930	0.0974730336125312	0.0974730336125312
-18277	6667	6720	0.144754021853131	0.144754021853131
-10816	7993	6492	0.0854037034050773	0.0854037034050773
-14747	6732	6733	0.0789150394398201	0.0789150394398201
-12453	3191	6107	0.202925463206431	0.202925463206431
-16202	5822	7727	0.19552660887524	0.19552660887524
-18539	5559	10311	0.589298128069539	0.589298128069539
-10890	3025	8025	0.123630898552104	0.123630898552104
-15899	9255	7490	0.0311439652684609	0.0311439652684609
-18550	4298	9428	0.104368579037722	0.104368579037722
-11283	8190	8201	0.0778576783996018	0.0778576783996018
-4409	4123	4124	0.135738728632571	0.135738728632571
-13171	7691	8995	0.0242708657605628	0.0242708657605628
-11527	809	8301	0.0665080068102908	0.0665080068102908
-15908	9084	9085	0.0343875506043555	0.0343875506043555
-14757	2212	4862	0.162593070375603	0.162593070375603
-11742	8382	8383	0.00390317600089655	0.00390317600089655
-18302	5737	2440	0.171112285574699	0.171112285574699
-11766	8404	8405	0.0591205771532174	0.0591205771532174
-11998	5505	7079	0.147126356992669	0.147126356992669
-12060	332	268	0.0944572536860071	0.0944572536860071
-4411	3048	4125	0.136438064344983	0.136438064344983
-20391	10766	10774	0.00648510043864555	0.00648510043864555
-4412	4125	4126	0.00355827872013668	0.00355827872013668
-19845	9516	10657	0.207937764412144	0.207937764412144
-16200	1790	7209	0.198939694041251	0.198939694041251
-20399	10763	3591	0.00757376863172981	0.00757376863172981
-12520	8729	1189	0.0214820993457698	0.0214820993457698
-20644	10877	4517	0.0511435578342218	0.0511435578342218
-12620	8775	4920	0.0124622300083447	0.0124622300083447
-20646	10035	10880	0.0235473019855852	0.0235473019855852
-12646	5921	920	0.178961176893159	0.178961176893159
-12691	8806	8807	0.0113998193117656	0.0113998193117656
-12822	8261	493	0.226877195561116	0.226877195561116
-13034	8927	585	0.0555278029535648	0.0555278029535648
-14668	6327	4166	0.169217141640748	0.169217141640748
-14856	9434	8907	0.112945329265115	0.112945329265115
-20835	10948	10929	0.0711141044607233	0.0711141044607233
-13572	2184	9130	0.046228028674551	0.046228028674551
-4413	4126	4127	0.123682116907034	0.123682116907034
-4414	4127	4128	0.0151340374611755	0.0151340374611755
-14780	5922	921	0.178257163080484	0.178257163080484
-13824	9203	7891	0.0449920400202888	0.0449920400202888
-13970	9249	9250	0.0321739674064664	0.0321739674064664
-20559	2957	10784	0.0120134443189883	0.0120134443189883
-14029	9262	6653	0.100609617198747	0.100609617198747
-15915	9746	9747	0.0832769023011374	0.0832769023011374
-11415	7985	8000	0.0154063290418794	0.0154063290418794
-14233	8687	6694	0.0247755996269239	0.0247755996269239
-20569	10787	10858	0.0193290169195346	0.0193290169195346
-14464	6149	3994	0.0989127437299345	0.0989127437299345
-14635	9387	9388	0.0403809617749613	0.0403809617749613
-11212	391	392	0.10291889633356	0.10291889633356
-14604	9397	9398	0.123826706008273	0.123826706008273
-14637	9406	2243	0.00956376056529555	0.00956376056529555
-15410	9588	9589	0.0190893984820006	0.0190893984820006
-15440	9601	1507	0.00768187987530518	0.00768187987530518
-16383	9771	9880	0.0381827012246672	0.0381827012246672
-16620	9937	9938	0.0704692374785171	0.0704692374785171
-11802	8392	8415	0.148179257170155	0.148179257170155
-16809	4996	728	0.102190274976312	0.102190274976312
-11640	8346	4530	0.131615785848543	0.131615785848543
-16853	6519	9854	0.0497714413737895	0.0497714413737895
-4415	4128	1171	0.138086753058786	0.138086753058786
-17269	3518	82	0.205066129886621	0.205066129886621
-11951	8499	8500	0.0607548345173342	0.0607548345173342
-17324	6799	7351	0.103019517606604	0.103019517606604
-11991	4455	5503	0.144667643977852	0.144667643977852
-17388	5920	3810	0.153093198888871	0.153093198888871
-17389	3810	10095	0.199017480070308	0.199017480070308
-17407	6122	1921	0.202694690919031	0.202694690919031
-17408	1921	7246	0.200797963530598	0.200797963530598
-12044	8523	8524	0.0621486337289915	0.0621486337289915
-17448	3247	10109	0.0544983800214201	0.0544983800214201
-4416	1171	891	0.137903948024362	0.137903948024362
-12113	8552	672	0.00266902064060136	0.00266902064060136
-17549	10132	10133	2.25328864155446	2.25328864155446
-17666	8928	10162	0.0972564668123919	0.0972564668123919
-12288	8528	8526	0.152174217990106	0.152174217990106
-17729	7332	2080	0.104548139781884	0.104548139781884
-12329	8641	8652	0.00987690479251785	0.00987690479251785
-12331	8653	8654	0.00928748638267964	0.00928748638267964
-17751	8575	6706	0.145927899456713	0.145927899456713
-12936	8688	8689	0.0364958929125483	0.0364958929125483
-17774	7679	5984	0.100495969018847	0.100495969018847
-17787	9214	536	0.151808926625465	0.151808926625465
-17822	10188	10186	0.041401555151972	0.041401555151972
-17852	10195	5678	0.0176253194989635	0.0176253194989635
-17170	1912	5280	0.200459610115248	0.200459610115248
-4417	891	4129	0.140986849802137	0.140986849802137
-12947	1304	1303	0.066448544071591	0.066448544071591
-18995	3958	5601	0.119729821294068	0.119729821294068
-18382	8919	8920	0.0492932118239397	0.0492932118239397
-19080	4746	4159	0.17797879706873	0.17797879706873
-13065	8947	8948	0.014693528299895	0.014693528299895
-19135	3168	8470	0.0222426676149063	0.0222426676149063
-20824	9337	9400	0.0122401419030242	0.0122401419030242
-19172	6804	7956	0.0915174498096421	0.0915174498096421
-19618	10588	10494	0.00731369728944242	0.00731369728944242
-19331	9893	10473	0.0200896227314349	0.0200896227314349
-15874	8889	8940	0.103516223202584	0.103516223202584
-19358	9949	10479	0.0590930811213136	0.0590930811213136
-19413	7239	3251	0.195270640148282	0.195270640148282
-19962	10674	10685	0.14613727594919	0.14613727594919
-18473	9005	9006	0.01365486811001	0.01365486811001
-20041	9172	140	0.204724385208342	0.204724385208342
-18917	10396	10397	0.0952180129620757	0.0952180129620757
-20063	2998	4930	0.100928455718765	0.100928455718765
-20587	10865	10840	0.00838601883021894	0.00838601883021894
-4418	4129	2776	0.133433939347385	0.133433939347385
-14836	7396	7377	0.030817448743492	0.030817448743492
-14837	7377	3410	0.100816825455254	0.100816825455254
-15447	9607	9608	0.0162401698909022	0.0162401698909022
-309	317	318	0.0119735018205437	0.0119735018205437
-13531	5648	3387	0.0436500601039895	0.0436500601039895
-14946	8215	8212	0.101284367879663	0.101284367879663
-13555	408	9127	0.613912488305853	0.613912488305853
-14981	9463	7091	0.107883940343108	0.107883940343108
-14982	7091	8789	0.108748219147477	0.108748219147477
-13650	9158	9159	0.0150152429008076	0.0150152429008076
-15063	8874	7430	0.0504536590179092	0.0504536590179092
-17072	3687	8133	0.141298637785039	0.141298637785039
-18493	9170	5545	0.102571946583037	0.102571946583037
-15171	9511	9512	0.0502858420296349	0.0502858420296349
-15174	9514	9515	0.0498070291463972	0.0498070291463972
-18566	10322	10323	0.186113882409967	0.186113882409967
-16100	9824	9817	0.0308009946802063	0.0308009946802063
-16101	9817	8245	0.0866075022072335	0.0866075022072335
-15444	8607	9604	0.0180426861021608	0.0180426861021608
-16161	3728	722	0.106535324504203	0.106535324504203
-16174	9840	7201	0.0108095014749508	0.0108095014749508
-16239	9856	7742	0.4032601166124	0.4032601166124
-16240	7742	5837	0.199863858168715	0.199863858168715
-15881	8762	9238	0.022425928034548	0.022425928034548
-16327	3906	3134	0.109247651866168	0.109247651866168
-16328	3134	5403	0.105230091275359	0.105230091275359
-17203	10075	10076	0.206234100938924	0.206234100938924
-17253	5918	917	0.179236073493399	0.179236073493399
-18223	1695	6884	0.201956855870188	0.201956855870188
-15286	3187	9268	0.0103389762120735	0.0103389762120735
-19421	34	3533	0.2073108703911	0.2073108703911
-19436	6852	10490	0.151686039209942	0.151686039209942
-19663	10609	9366	0.0532084205099813	0.0532084205099813
-19847	10658	7133	0.20071321213787	0.20071321213787
-19953	7857	10414	0.0579007631193554	0.0579007631193554
-19293	10471	8765	0.117981892754207	0.117981892754207
-19987	9727	10653	0.0514452608394938	0.0514452608394938
-19988	10653	1103	0.0505009558673589	0.0505009558673589
-15432	9598	7965	0.00918826645895189	0.00918826645895189
-15465	9615	9616	0.0488173542586425	0.0488173542586425
-15505	2286	4494	0.207036482148074	0.207036482148074
-18430	7784	10291	0.0493825781706533	0.0493825781706533
-15468	7963	9610	0.0129310975383002	0.0129310975383002
-15643	9669	8703	0.0154036792176203	0.0154036792176203
-15293	9561	9563	0.0354006218838869	0.0354006218838869
-15662	5995	7675	0.101107003151938	0.101107003151938
-15469	9610	9613	0.00340267268464027	0.00340267268464027
-15685	3450	6014	0.102083800598865	0.102083800598865
-18613	9261	4049	0.17355432372221	0.17355432372221
-15707	8686	8810	0.0279306326987703	0.0279306326987703
-15471	9606	8892	0.117003908235376	0.117003908235376
-15762	2940	6814	0.0992967316903301	0.0992967316903301
-15764	6595	9701	0.0232598991470647	0.0232598991470647
-14656	9410	9411	0.19733052173904	0.19733052173904
-20261	10720	5750	0.00799491979378441	0.00799491979378441
-2336	1153	2328	0.201597448584961	0.201597448584961
-17300	8716	8745	0.199099643459498	0.199099643459498
-19471	10515	10516	0.00520398584376517	0.00520398584376517
-20611	10819	10828	0.0109320789190355	0.0109320789190355
-20612	10828	10821	0.0197366861798755	0.0197366861798755
-20613	10821	10870	0.0252155503065758	0.0252155503065758
-478	480	212	0.0356029775534751	0.0356029775534751
-15859	9740	9707	0.0569780852958723	0.0569780852958723
-515	509	510	0.286655598001641	0.286655598001641
-520	514	515	0.226862534758366	0.226862534758366
-15253	9545	9538	0.0260796874031177	0.0260796874031177
-624	614	615	0.101063162513791	0.101063162513791
-19463	10483	10508	0.019159575222575	0.019159575222575
-17219	3199	3087	0.202098851695834	0.202098851695834
-702	696	697	0.1055651557861	0.1055651557861
-15544	9645	9646	0.00692347068679982	0.00692347068679982
-776	778	779	0.103928492069641	0.103928492069641
-15955	6396	500	0.195346208359328	0.195346208359328
-913	927	928	0.0495542499145439	0.0495542499145439
-915	929	930	0.0493548663548942	0.0493548663548942
-15957	9767	9768	0.0474477023795114	0.0474477023795114
-932	947	948	0.100759864187185	0.100759864187185
-15960	9770	7450	0.0160716244910599	0.0160716244910599
-955	967	968	0.0165679791310418	0.0165679791310418
-957	969	970	0.197449816642368	0.197449816642368
-15913	9240	9745	0.0339191222144473	0.0339191222144473
-980	991	992	0.138684932577873	0.138684932577873
-15891	9002	7513	0.0667178592447727	0.0667178592447727
-1003	1016	1017	0.039629871856248	0.039629871856248
-1004	1017	1018	0.176155002789907	0.176155002789907
-19469	10513	10514	0.0200709923319022	0.0200709923319022
-16388	9459	9771	0.0286077698371324	0.0286077698371324
-1087	1103	1104	0.338644304966299	0.338644304966299
-17156	3091	4971	0.202252452796884	0.202252452796884
-16103	255	8239	0.267325536990832	0.267325536990832
-1170	1186	1187	0.0990780990020656	0.0990780990020656
-16337	8026	3444	0.219522804846043	0.219522804846043
-1298	1323	1324	0.104021267127805	0.104021267127805
-1299	1324	1325	0.0988550932780109	0.0988550932780109
-16392	9847	9876	0.0466572032639634	0.0466572032639634
-1322	1347	1348	0.145300158256776	0.145300158256776
-387	389	390	0.101909828504342	0.101909828504342
-19511	10536	10537	0.0367294544686212	0.0367294544686212
-1469	1489	1490	0.0976691429125615	0.0976691429125615
-12005	8512	8049	0.105397118565585	0.105397118565585
-18733	7646	6209	0.175022021354251	0.175022021354251
-16766	5003	7290	0.0493746723595829	0.0493746723595829
-1495	1515	1473	0.1629816039782	0.1629816039782
-1497	1516	1517	0.202642438735294	0.202642438735294
-16788	10012	8649	0.310114997807766	0.310114997807766
-1549	1574	1575	0.0819858846366358	0.0819858846366358
-1550	1575	1576	0.0787364050378914	0.0787364050378914
-12359	8664	8670	0.00994780391809775	0.00994780391809775
-16806	9858	3171	0.0510524682713306	0.0510524682713306
-1570	1597	1598	0.101896558922667	0.101896558922667
-2686	2646	2647	0.164307180037452	0.164307180037452
-17103	9923	330	0.250512453112542	0.250512453112542
-1650	1677	1678	0.13227170643909	0.13227170643909
-11530	810	811	0.199368445906152	0.199368445906152
-16952	10036	10037	0.00823596195269871	0.00823596195269871
-1704	1725	1726	0.0532102629650272	0.0532102629650272
-17039	9210	8988	0.00924605732532601	0.00924605732532601
-1762	1487	1782	0.108567137541803	0.108567137541803
-14689	2798	2868	0.199650986040528	0.199650986040528
-17136	4412	4425	0.202602949014775	0.202602949014775
-17489	472	4654	0.0574342005254488	0.0574342005254488
-1935	1949	1223	0.041131087786823	0.041131087786823
-1937	1950	1951	0.0773266220673917	0.0773266220673917
-16304	2826	2827	0.0584380832256012	0.0584380832256012
-17962	10235	5193	0.0148018460000789	0.0148018460000789
-2187	2187	2188	0.0698088769426891	0.0698088769426891
-17834	10187	10188	0.0373456729353608	0.0373456729353608
-17023	10058	10059	0.043764797810192	0.043764797810192
-2261	2261	2262	0.20174624930555	0.20174624930555
-20285	10701	10709	0.0172154433985116	0.0172154433985116
-16421	3331	3358	0.0229870189622456	0.0229870189622456
-20297	5579	7524	0.0531120067375217	0.0531120067375217
-12353	8669	8661	0.00857375962495721	0.00857375962495721
-16657	3462	3464	0.173665424327281	0.173665424327281
-19565	10567	7463	0.00795043725476521	0.00795043725476521
-17162	5087	5107	0.202243070877092	0.202243070877092
-19034	10159	9497	0.0427022948506461	0.0427022948506461
-20744	9001	10918	0.332184959452437	0.332184959452437
-20748	10921	10922	0.0509227801768603	0.0509227801768603
-20749	10923	10924	0.18669804780169	0.18669804780169
-20750	10925	10926	0.0392592111051346	0.0392592111051346
-20752	10927	10928	0.00711510327217607	0.00711510327217607
-20754	10929	10930	0.0834966641757845	0.0834966641757845
-20756	10931	10932	0.0408755067283247	0.0408755067283247
-20758	10933	10934	0.0399346912680156	0.0399346912680156
-20760	10935	10936	0.0903151185359097	0.0903151185359097
-20762	10937	8302	0.00392992290489043	0.00392992290489043
-20763	8302	10927	0.00412640673301695	0.00412640673301695
-20765	10918	3754	0.00609979968071289	0.00609979968071289
-20766	3754	10938	0.00661123306657495	0.00661123306657495
-20768	10920	7783	0.00949225948867298	0.00949225948867298
-20769	7783	10939	0.00900064827794335	0.00900064827794335
-20771	10940	3415	0.00746326017722055	0.00746326017722055
-20772	3415	10941	0.00571991053425525	0.00571991053425525
-20774	10938	10942	0.117980886182769	0.117980886182769
-20776	10941	10943	0.040800141538403	0.040800141538403
-20778	10929	8910	0.00644678344686978	0.00644678344686978
-20779	8910	10944	0.00853909895805364	0.00853909895805364
-20781	10926	10280	0.00413065470277064	0.00413065470277064
-20782	10280	10933	0.00507364819278473	0.00507364819278473
-16513	9922	1630	0.0152212141119797	0.0152212141119797
-16537	3671	9932	0.221180884679333	0.221180884679333
-16539	9933	7834	0.139783679739911	0.139783679739911
-16790	10013	7828	0.227723092786938	0.227723092786938
-18645	1318	5867	0.177222990129465	0.177222990129465
-16960	10042	10043	0.0112267703364208	0.0112267703364208
-17266	3520	4261	0.200318193124263	0.200318193124263
-18444	10290	1124	0.0512555936349529	0.0512555936349529
-17645	7	9825	0.783906819132393	0.783906819132393
-18721	5864	1312	0.178403401011926	0.178403401011926
-18408	6096	10287	0.0607868213781131	0.0607868213781131
-17821	10187	10188	0.0373456729353608	0.0373456729353608
-17849	2817	1418	0.198773063708036	0.198773063708036
-17914	4748	4144	0.180736428235498	0.180736428235498
-17915	4144	2362	0.17239723292509	0.17239723292509
-18664	5184	5652	0.105551381348891	0.105551381348891
-18600	10333	10334	0.176228489643034	0.176228489643034
-18763	10341	10340	0.0478284118767837	0.0478284118767837
-18822	10356	10117	0.120644655146847	0.120644655146847
-12967	1825	1881	0.094094502294363	0.094094502294363
-19280	10465	10466	0.126391742395325	0.126391742395325
-19156	8422	10431	0.296704595839795	0.296704595839795
-19440	7907	10492	0.0345487307061229	0.0345487307061229
-20295	10709	10710	0.0460287189373458	0.0460287189373458
-3578	3435	3436	0.0484142710611121	0.0484142710611121
-3579	3436	2495	0.0837858518069818	0.0837858518069818
-3580	2495	3437	0.120116992356444	0.120116992356444
-3581	3437	2842	0.00242442592962248	0.00242442592962248
-14124	506	3659	0.275685944218073	0.275685944218073
-16901	3513	74	0.203700975919817	0.203700975919817
-18139	6038	10260	0.200840451178757	0.200840451178757
-19824	7641	5603	0.172193293465978	0.172193293465978
-19832	10652	10653	0.149094174776889	0.149094174776889
-16543	3555	814	0.153171011691858	0.153171011691858
-20427	10755	10788	0.051994279761698	0.051994279761698
-11503	6094	2973	0.264851184287827	0.264851184287827
-11438	8034	511	0.21998121248842	0.21998121248842
-16767	7290	3183	0.0591297362625136	0.0591297362625136
-20517	10806	10844	0.0093521291785604	0.0093521291785604
-18290	6889	6752	0.139920838374264	0.139920838374264
-11434	8077	8253	0.0508611139110148	0.0508611139110148
-20513	10060	10809	0.00760770059759869	0.00760770059759869
-18366	7716	7754	0.0519727898310098	0.0519727898310098
-11784	8036	2685	0.144743408596787	0.144743408596787
-11570	8321	7713	0.150502362587478	0.150502362587478
-18376	8353	6069	0.193914067776721	0.193914067776721
-12066	8533	8534	0.0445577347958965	0.0445577347958965
-16678	9979	9981	0.0909471727810372	0.0909471727810372
-20808	10948	8326	0.017351380837649	0.017351380837649
-13031	590	8926	0.147745966959296	0.147745966959296
-18483	9138	9139	0.0109683239632665	0.0109683239632665
-16502	3167	9925	0.137835608828632	0.137835608828632
-16961	10043	10044	0.075399787572802	0.075399787572802
-17393	67	3508	0.205321571793414	0.205321571793414
-17395	68	7304	0.202979892499458	0.202979892499458
-17650	303	395	0.11664951410225	0.11664951410225
-18596	10330	1845	0.0286669821878414	0.0286669821878414
-18996	5601	9265	0.00587624613864547	0.00587624613864547
-19117	402	10431	0.249198506812358	0.249198506812358
-19489	4703	10441	0.0209493756701814	0.0209493756701814
-19929	9514	10680	0.206733607617385	0.206733607617385
-20583	10849	9338	0.00790665036605531	0.00790665036605531
-20193	10707	9813	0.31051590829715	0.31051590829715
-19738	9472	4893	0.184563607099297	0.184563607099297
-19739	4893	9418	0.161581410791365	0.161581410791365
-19740	9418	955	0.17512104217346	0.17512104217346
-19741	955	8865	0.17730267158364	0.17730267158364
-19745	4908	6614	0.202025102521769	0.202025102521769
-19746	6614	9456	0.193906231686937	0.193906231686937
-19747	9456	10644	0.207835763228408	0.207835763228408
-19748	10644	647	0.139231068042996	0.139231068042996
-19807	7868	3718	0.103509284327612	0.103509284327612
-19756	9305	1209	0.168197350020426	0.168197350020426
-19906	9507	10678	0.206369047895258	0.206369047895258
-17115	582	4052	0.0200066549889732	0.0200066549889732
-20290	10700	10701	0.0224013855081139	0.0224013855081139
-15856	9738	9733	0.00602831355714784	0.00602831355714784
-16390	9811	3033	0.00758642111179705	0.00758642111179705
-17208	234	10075	0.0065072113132931	0.0065072113132931
-18209	3991	6766	0.202297976338321	0.202297976338321
-314	322	323	0.0362830323344	0.0362830323344
-17944	10224	7938	0.0484797623817722	0.0484797623817722
-11519	657	658	0.200633396770054	0.200633396770054
-18400	7187	1425	0.131517435591527	0.131517435591527
-16448	9905	9906	0.00998689980616885	0.00998689980616885
-1705	1726	1727	0.0778502303245676	0.0778502303245676
-19817	3729	10647	0.0543545423636727	0.0543545423636727
-20793	10938	8908	0.0180004191395181	0.0180004191395181
-19241	8221	10460	0.0833729876311698	0.0833729876311698
-18639	5180	2582	0.17723417320802	0.17723417320802
-20291	10701	10703	0.028889965052559	0.028889965052559
-19963	4945	7404	0.157747728004848	0.157747728004848
-5109	4628	4629	0.132844583260552	0.132844583260552
-13926	8916	8922	0.136369708465648	0.136369708465648
-19964	7404	10415	0.200029723937468	0.200029723937468
-12274	8517	8518	0.0318537260898596	0.0318537260898596
-302	310	311	0.0714603355500818	0.0714603355500818
-307	315	316	0.0430385391585726	0.0430385391585726
-333	333	334	0.130005791781119	0.130005791781119
-501	338	339	0.0809671757461818	0.0809671757461818
-337	340	336	0.244398847800565	0.244398847800565
-339	341	342	0.368758396632831	0.368758396632831
-341	343	344	0.267836247641829	0.267836247641829
-1553	1578	1579	0.0969614959298273	0.0969614959298273
-360	362	363	0.19757055700413	0.19757055700413
-361	363	358	0.235481235248911	0.235481235248911
-365	366	367	0.102920688901431	0.102920688901431
-374	376	377	0.135433574317766	0.135433574317766
-376	378	379	0.134391053348824	0.134391053348824
-485	478	486	0.209563350313202	0.209563350313202
-489	489	490	0.0633762863456435	0.0633762863456435
-491	491	492	0.0663732872105415	0.0663732872105415
-493	493	494	0.169203096380544	0.169203096380544
-495	5	495	0.258130691528307	0.258130691528307
-496	495	496	0.152370734557831	0.152370734557831
-523	518	519	0.337507977198885	0.337507977198885
-525	520	521	0.106662672722042	0.106662672722042
-527	522	523	0.0555974633225448	0.0555974633225448
-529	524	525	0.0282350762510443	0.0282350762510443
-530	525	526	0.0218806529722405	0.0218806529722405
-532	527	397	0.320431501428441	0.320431501428441
-11515	270	528	0.19992365959325	0.19992365959325
-535	529	530	0.455513641378482	0.455513641378482
-537	531	532	0.375956762810707	0.375956762810707
-11371	7972	290	0.0119699038475456	0.0119699038475456
-14734	4868	2218	0.161837248854237	0.161837248854237
-6872	5877	5878	0.0844725820315708	0.0844725820315708
-16249	9860	8753	0.202765718025687	0.202765718025687
-16250	8753	9861	0.201364638358659	0.201364638358659
-16251	9861	3662	0.165177264018871	0.165177264018871
-20720	9398	9340	0.00984702702877527	0.00984702702877527
-16256	9863	8751	0.202603541868936	0.202603541868936
-16260	3650	88	0.266027674120579	0.266027674120579
-16261	88	3524	0.203075294530693	0.203075294530693
-16262	3524	9864	0.20046430405241	0.20046430405241
-16263	9864	6517	0.135079896017257	0.135079896017257
-19523	6855	10544	0.00712022213135496	0.00712022213135496
-19524	10544	10545	0.0729342151704198	0.0729342151704198
-19526	10427	10546	0.0076995400840501	0.0076995400840501
-19527	10546	10545	0.0321755552809886	0.0321755552809886
-19528	10545	10547	0.0194542890583841	0.0194542890583841
-19529	10547	10548	0.0207030648178635	0.0207030648178635
-19530	10548	10543	0.0190435691175833	0.0190435691175833
-19531	10543	10549	0.0747704686946873	0.0747704686946873
-19532	10549	6859	0.00739470505760699	0.00739470505760699
-19543	10555	10556	0.0878912692065361	0.0878912692065361
-19544	10556	7460	0.0082175900444136	0.0082175900444136
-11808	8395	2692	0.146729521611774	0.146729521611774
-19546	6852	10557	0.00689466829919516	0.00689466829919516
-19547	10557	10558	0.00988642805887056	0.00988642805887056
-19548	10558	10559	0.0350073244923259	0.0350073244923259
-19550	10409	10559	0.0205641181514586	0.0205641181514586
-343	345	346	0.0953881878570937	0.0953881878570937
-357	359	360	0.0408490640041322	0.0408490640041322
-359	361	362	0.026041104546106	0.026041104546106
-19800	8772	7638	0.176309543452907	0.176309543452907
-19802	6235	5200	0.174765267300994	0.174765267300994
-14862	8517	9439	0.0489472304938478	0.0489472304938478
-14864	9387	9440	0.0279990514780242	0.0279990514780242
-206	104	218	0.105140809305177	0.105140809305177
-207	218	219	0.425726992195474	0.425726992195474
-208	219	220	0.341194420964085	0.341194420964085
-564	250	558	0.137167107757782	0.137167107757782
-566	559	560	0.116737480647973	0.116737480647973
-570	563	564	0.00248176882120935	0.00248176882120935
-571	564	565	0.0167681949380125	0.0167681949380125
-573	566	248	0.898480310845601	0.898480310845601
-577	569	570	0.20355346310439	0.20355346310439
-578	570	571	0.196730394721169	0.196730394721169
-579	571	572	0.203615183123948	0.203615183123948
-580	572	573	0.198181200751108	0.198181200751108
-14119	4047	3768	0.167133877022618	0.167133877022618
-16964	10030	10041	0.01368783886441	0.01368783886441
-17397	72	7305	0.205159206156883	0.205159206156883
-18238	8494	6764	0.145768349374275	0.145768349374275
-19608	10515	10585	0.0689638415978994	0.0689638415978994
-18764	10340	10339	0.0412859123428405	0.0412859123428405
-18823	10117	10113	0.0135016334010227	0.0135016334010227
-19106	10358	10371	0.165108727109845	0.165108727109845
-19491	10447	10448	0.0188144168916081	0.0188144168916081
-20034	9939	10087	0.139116164222915	0.139116164222915
-20585	10868	10860	0.0191301130167572	0.0191301130167572
-16225	9851	8750	0.201618763717288	0.201618763717288
-16226	8750	9852	0.201631838787549	0.201631838787549
-16227	9852	3528	0.200735525849656	0.200735525849656
-16228	3528	92	0.203732802229698	0.203732802229698
-16230	9853	7739	0.398547510805713	0.398547510805713
-16231	7739	5833	0.201507956367007	0.201507956367007
-16232	5833	9854	0.202599224942483	0.202599224942483
-16233	9854	8749	0.200829688485991	0.200829688485991
-16234	8749	9855	0.20199683583572	0.20199683583572
-16235	9855	3526	0.201154889365918	0.201154889365918
-16236	3526	90	0.202910490655376	0.202910490655376
-16237	90	3653	0.220628466219896	0.220628466219896
-16241	5837	9857	0.2019855844315	0.2019855844315
-16242	9857	8752	0.20368896268505	0.20368896268505
-16243	8752	9858	0.200451227373991	0.200451227373991
-16244	9858	3660	0.230907711206458	0.230907711206458
-16248	5838	9860	0.202297457689378	0.202297457689378
-19645	10602	7824	0.0258612340137364	0.0258612340137364
-363	364	365	0.559719374351914	0.559719374351914
-19907	10678	9721	0.0996291174385701	0.0996291174385701
-506	500	501	0.0135415609654236	0.0135415609654236
-561	555	249	0.135203722470136	0.135203722470136
-11580	1888	1889	0.200666363671928	0.200666363671928
-15798	2349	2131	0.0298025813439396	0.0298025813439396
-539	533	534	0.0326127113197712	0.0326127113197712
-19790	4873	2223	0.160309891999679	0.160309891999679
-19791	2223	939	0.184480311036498	0.184480311036498
-19793	6601	8056	0.176023947078255	0.176023947078255
-18090	1076	4197	0.0860162512015724	0.0860162512015724
-19867	5588	10668	0.0462472353637014	0.0462472353637014
-19868	10668	3867	0.0484404910203503	0.0484404910203503
-16756	10007	10009	0.110124788745591	0.110124788745591
-20270	10704	10719	0.0406376536123098	0.0406376536123098
-20705	10912	9190	0.00712573261129369	0.00712573261129369
-18194	10279	8107	0.203288621260674	0.203288621260674
-20434	10793	8352	0.0594105399024928	0.0594105399024928
-458	461	462	0.198429530791892	0.198429530791892
-460	463	464	0.0462542784573108	0.0462542784573108
-462	465	466	0.144675049024067	0.144675049024067
-17120	4175	1798	0.171169073462998	0.171169073462998
-464	265	467	0.159364568867095	0.159364568867095
-18157	6034	6309	0.201831068920315	0.201831068920315
-4816	4421	3998	0.17545447475176	0.17545447475176
-4922	4493	4494	0.0159365819430951	0.0159365819430951
-5210	4702	4703	0.066548442936564	0.066548442936564
-7813	6447	2400	0.0150551554736642	0.0150551554736642
-16544	814	7835	0.140306546265127	0.140306546265127
-12308	8643	8644	0.0690537561530006	0.0690537561530006
-17649	227	303	0.195568266331611	0.195568266331611
-7918	6517	6518	0.0762261509888863	0.0762261509888863
-17937	10218	10222	0.0404413602972235	0.0404413602972235
-17938	10222	10219	0.0368645715567014	0.0368645715567014
-8128	6642	6643	0.177723704306915	0.177723704306915
-17941	10223	10220	0.00249551892827132	0.00249551892827132
-17943	10222	10224	0.00241172243246435	0.00241172243246435
-8312	6745	6746	0.136482587401898	0.136482587401898
-18754	7413	5870	0.17727401445854	0.17727401445854
-18755	5870	1322	0.17769011554913	0.17769011554913
-19718	10634	10631	0.0223829659698328	0.0223829659698328
-19728	5372	10636	0.0113147577104563	0.0113147577104563
-11655	8352	8354	0.0940321887930874	0.0940321887930874
-12943	1331	8882	0.0183910567310257	0.0183910567310257
-13038	8921	8931	0.0826069320981336	0.0826069320981336
-15877	9002	8833	0.267177283911404	0.267177283911404
-13924	219	9234	0.1533276461132	0.1533276461132
-14664	6543	4752	0.198706695176553	0.198706695176553
-14064	5103	7930	0.0939071679637344	0.0939071679637344
-15409	9587	9588	0.102439715732603	0.102439715732603
-17271	7309	3269	0.20118551117184	0.20118551117184
-19597	10581	10493	0.00740818165509206	0.00740818165509206
-17856	10198	10199	0.0985751913110846	0.0985751913110846
-17916	2362	5630	0.113519118424065	0.113519118424065
-17920	5276	3075	0.102745112375949	0.102745112375949
-19227	10451	10452	0.0446144989444803	0.0446144989444803
-20035	10087	7837	0.13791526067504	0.13791526067504
-418	417	418	0.0816052997413777	0.0816052997413777
-20262	5750	10721	0.00796157509542264	0.00796157509542264
-3789	1821	3611	0.0958389453890581	0.0958389453890581
-3790	3611	2772	0.203476606019223	0.203476606019223
-3793	3613	3614	0.132946325644283	0.132946325644283
-3796	3616	3617	0.204716112848492	0.204716112848492
-3797	3617	3618	0.195623928497501	0.195623928497501
-427	426	427	0.387676950856037	0.387676950856037
-429	428	429	0.0146752084107322	0.0146752084107322
-430	429	430	0.036859949213086	0.036859949213086
-431	430	431	0.0704161362424121	0.0704161362424121
-432	431	432	0.590519007108071	0.590519007108071
-4284	2975	658	0.052473064124837	0.052473064124837
-4286	1885	270	0.0500105419976734	0.0500105419976734
-4287	270	4027	0.0498040073250557	0.0498040073250557
-4288	4027	4028	0.0589001114271481	0.0589001114271481
-4289	4028	4029	0.0431017175700998	0.0431017175700998
-4360	2497	4085	0.0418616206629569	0.0418616206629569
-4362	4086	4087	0.0498519055829618	0.0498519055829618
-4375	4097	4098	0.0489802870312836	0.0489802870312836
-4376	4098	4099	0.0495757400917575	0.0495757400917575
-4377	4099	1289	0.0496665540814756	0.0496665540814756
-4388	1566	4105	0.137573017409453	0.137573017409453
-4391	695	4107	0.201385149795677	0.201385149795677
-4393	4108	4109	0.0199664273987825	0.0199664273987825
-14838	3410	8377	0.101986580237	0.101986580237
-14839	8377	7446	0.0983251649921582	0.0983251649921582
-14840	7446	7164	0.102406305295689	0.102406305295689
-14842	7777	9006	0.0511080596626327	0.0511080596626327
-14843	9006	1118	0.0498086503332092	0.0498086503332092
-14844	1118	9427	0.0503946729534928	0.0503946729534928
-14845	9427	7495	0.0500441160343634	0.0500441160343634
-14846	7495	9428	0.0499148481472719	0.0499148481472719
-16340	8082	9873	0.204288977647072	0.204288977647072
-16284	2160	2852	0.333640243849923	0.333640243849923
-16319	7334	9870	0.105486497466828	0.105486497466828
-16320	9870	3330	0.104529154175209	0.104529154175209
-16321	3330	5008	0.105000246042652	0.105000246042652
-16322	5008	9871	0.101110660676404	0.101110660676404
-16323	9871	6279	0.105691817248501	0.105691817248501
-16324	6279	9872	0.052158145666091	0.052158145666091
-16325	9872	1044	0.0524997416021315	0.0524997416021315
-16326	1044	3906	0.105460879039182	0.105460879039182
-16329	5403	7356	0.10569318364656	0.10569318364656
-16330	7356	6784	0.104889107310835	0.104889107310835
-16331	6784	5124	0.210810768544514	0.210810768544514
-20721	9340	10905	0.00789820611305507	0.00789820611305507
-20723	10753	9339	0.007875732855517	0.007875732855517
-20728	9342	9396	0.0106743790650573	0.0106743790650573
-20729	9396	10915	0.00762676803615786	0.00762676803615786
-20731	10886	10916	0.00379288018005415	0.00379288018005415
-20732	10916	10888	0.0491926355480291	0.0491926355480291
-20733	10888	10897	0.0175392611655491	0.0175392611655491
-20735	5884	5882	0.0407543500383345	0.0407543500383345
-20739	10916	10896	0.0428179717864665	0.0428179717864665
-19515	10538	10539	0.0270370607457707	0.0270370607457707
-19519	10540	10541	0.0721562499053708	0.0721562499053708
-19520	6858	10542	0.00731747119062453	0.00731747119062453
-19521	10542	10543	0.072308027249243	0.072308027249243
-19641	10598	10599	0.0410277962156296	0.0410277962156296
-19647	10527	10603	0.00759964014854772	0.00759964014854772
-8	8	9	0.136291899256532	0.136291899256532
-9	9	10	0.137589063327607	0.137589063327607
-10	10	11	0.132825874246234	0.132825874246234
-18420	9372	1692	0.204432374496239	0.204432374496239
-18421	1692	6881	0.204488584881531	0.204488584881531
-279	289	290	0.0346246156131069	0.0346246156131069
-280	290	291	0.0090342150661118	0.0090342150661118
-287	297	298	0.583705095697001	0.583705095697001
-288	298	299	0.306214311798175	0.306214311798175
-290	300	106	0.00724031766776508	0.00724031766776508
-16839	9888	10020	0.0079899169832474	0.0079899169832474
-292	301	302	0.137922345506014	0.137922345506014
-293	302	303	0.195856797695859	0.195856797695859
-295	304	305	0.071509984134022	0.071509984134022
-296	305	291	0.00958395052624692	0.00958395052624692
-298	306	307	0.132706668323714	0.132706668323714
-300	308	309	0.180558406302622	0.180558406302622
-13564	3088	497	0.0577004807279618	0.0577004807279618
-549	543	426	0.352446625998258	0.352446625998258
-552	546	547	0.162031197296959	0.162031197296959
-555	549	550	0.0907371722674166	0.0907371722674166
-16080	9284	9816	0.896094060874208	0.896094060874208
-922	936	937	0.0492564901299232	0.0492564901299232
-923	937	938	0.0472982580528762	0.0472982580528762
-924	938	939	0.0491354084196454	0.0491354084196454
-925	939	940	0.0508720309451131	0.0508720309451131
-926	940	941	0.0492045261244582	0.0492045261244582
-928	942	943	0.0497647165539241	0.0497647165539241
-929	943	944	0.0490705088651407	0.0490705088651407
-930	944	945	0.0603455693296164	0.0603455693296164
-931	946	947	0.0401316151990327	0.0401316151990327
-933	948	949	0.0998226264147839	0.0998226264147839
-934	949	950	0.0983576522120727	0.0983576522120727
-15935	9756	9757	0.156652526688463	0.156652526688463
-2725	2680	2681	0.0108684198063562	0.0108684198063562
-2726	2681	2682	0.048953084737917	0.048953084737917
-2727	2682	2683	0.0539629704453868	0.0539629704453868
-2728	2683	2684	0.0523967582185389	0.0523967582185389
-2730	2685	2686	0.0561874543205358	0.0561874543205358
-2731	2686	2687	0.0505746825733151	0.0505746825733151
-2732	2687	2688	0.0532702991765301	0.0532702991765301
-2733	2688	2689	0.0520434204860384	0.0520434204860384
-2734	2689	2690	0.0469426670134342	0.0469426670134342
-2735	2690	2691	0.0055983554055492	0.0055983554055492
-2736	2691	2692	0.0527791994653692	0.0527791994653692
-2737	2692	2693	0.0530982869497539	0.0530982869497539
-2738	2693	2694	0.0517656440902012	0.0517656440902012
-2740	2695	2696	0.0564222695417846	0.0564222695417846
-2741	2696	2697	0.0491123681137852	0.0491123681137852
-2743	2698	2563	0.102019026624601	0.102019026624601
-2745	2699	2700	0.132875620799413	0.132875620799413
-2746	2700	2701	0.135383174760531	0.135383174760531
-2747	2701	2702	0.142428760025563	0.142428760025563
-2749	2703	2704	0.0110418183352839	0.0110418183352839
-3232	1186	3146	0.0222724242580952	0.0222724242580952
-3233	3146	3147	0.199414112058729	0.199414112058729
-3235	3148	3149	0.202164772668483	0.202164772668483
-3236	3149	3150	0.200873635711822	0.200873635711822
-3238	1549	3151	0.20099284178908	0.20099284178908
-3239	3151	284	0.102708547785912	0.102708547785912
-3241	3152	3153	0.190699299195112	0.190699299195112
-3242	3153	3154	0.20682256355895	0.20682256355895
-3244	3155	3156	0.180582058742099	0.180582058742099
-3245	3156	3157	0.169576673169674	0.169576673169674
-3246	3157	3158	0.182296097160239	0.182296097160239
-3247	3158	3159	0.198872141197801	0.198872141197801
-3248	3159	3160	0.150969541792736	0.150969541792736
-3250	3161	3162	0.20389937284006	0.20389937284006
-14826	8301	6748	0.0667725814392886	0.0667725814392886
-14827	6748	7911	0.0672145953526644	0.0672145953526644
-14828	7911	6148	0.0663282745787247	0.0663282745787247
-258	257	266	0.0587628088830451	0.0587628088830451
-19749	647	7274	0.134298165118703	0.134298165118703
-19750	7274	1989	0.0916188684792704	0.0916188684792704
-19751	1989	1973	0.0380843237979454	0.0380843237979454
-19752	1973	4593	0.133556226393108	0.133556226393108
-19753	4593	6480	0.132288869732613	0.132288869732613
-19754	6480	2468	0.142585895231316	0.142585895231316
-19758	9421	959	0.172665861332853	0.172665861332853
-19759	959	10645	0.13147788241291	0.13147788241291
-19760	1208	9304	0.168127340065809	0.168127340065809
-20582	10869	10849	0.0156424449925145	0.0156424449925145
-19762	9148	5948	0.203948884455816	0.203948884455816
-19763	5948	5140	0.230511938313211	0.230511938313211
-19771	9419	957	0.173152824232778	0.173152824232778
-19772	957	8866	0.177567389214567	0.177567389214567
-19773	8866	3772	0.153916736097948	0.153916736097948
-19774	3772	10250	0.199306990270457	0.199306990270457
-19776	5481	9962	0.172319939483889	0.172319939483889
-19784	10633	5611	0.0523352586472612	0.0523352586472612
-19785	5611	10632	0.0574818788883128	0.0574818788883128
-19786	10632	3948	0.0628606527024246	0.0628606527024246
-19788	5471	9476	0.170862748175182	0.170862748175182
-19795	10242	7118	0.176747024157438	0.176747024157438
-19797	10241	6597	0.176287163937986	0.176287163937986
-19798	6597	8052	0.177501084527478	0.177501084527478
-19799	8052	8772	0.17769668863416	0.17769668863416
-20115	7697	7687	0.0337511699796145	0.0337511699796145
-19903	5589	10662	0.0571161687994488	0.0571161687994488
-19904	10662	7532	0.0504117571952022	0.0504117571952022
-19905	7532	10677	0.0997820208770486	0.0997820208770486
-19909	2313	6581	0.0799825399923036	0.0799825399923036
-19911	9640	7119	0.178268282456568	0.178268282456568
-19912	7119	10244	0.176467674531692	0.176467674531692
-19924	625	10679	0.208701850480872	0.208701850480872
-3596	897	3446	0.139044776802754	0.139044776802754
-3598	2803	3447	0.126707874592684	0.126707874592684
-3599	3447	3448	0.123301295397385	0.123301295397385
-3601	3449	3450	0.173676950071542	0.173676950071542
-3602	3450	2355	0.178205364659248	0.178205364659248
-3603	2355	3451	0.173197360497638	0.173197360497638
-19562	10565	7475	0.0791516149409225	0.0791516149409225
-3604	3451	3452	0.173541943088937	0.173541943088937
-17079	9872	1162	0.139149030623918	0.139149030623918
-3605	3452	3453	0.1769778659128	0.1769778659128
-3606	3453	3454	0.165627970000561	0.165627970000561
-3607	3454	1205	0.168543363105219	0.168543363105219
-3608	1205	3455	0.0221544930319224	0.0221544930319224
-3609	3455	3456	0.199430319568372	0.199430319568372
-3610	3456	3457	0.153671457388635	0.153671457388635
-3611	3457	954	0.177011997745418	0.177011997745418
-3616	3461	3023	0.066721008314693	0.066721008314693
-3617	3023	609	0.0626815132610695	0.0626815132610695
-3618	609	3465	0.0706324711687883	0.0706324711687883
-3620	3466	3467	0.0872559719077514	0.0872559719077514
-3621	3467	3468	0.0185752884131515	0.0185752884131515
-3624	3470	3471	0.137381540377109	0.137381540377109
-3625	3471	3472	0.139227388345715	0.139227388345715
-3627	3473	2394	0.0888475437763938	0.0888475437763938
-3628	2394	3474	0.138668820339117	0.138668820339117
-3630	752	1572	0.142095074047717	0.142095074047717
-3636	1922	3478	0.201186325897418	0.201186325897418
-3639	3479	78	0.204132972246117	0.204132972246117
-3640	78	3480	0.203867249894849	0.203867249894849
-3641	3480	3481	0.201309535256297	0.201309535256297
-3642	3481	3482	0.20059690465602	0.20059690465602
-3643	3482	3483	0.19983968701354	0.19983968701354
-3645	3484	3485	0.206291326448342	0.206291326448342
-17801	8859	9953	0.0450786858997054	0.0450786858997054
-3647	1956	3486	0.372627158727207	0.372627158727207
-3649	3487	3488	0.176001514646942	0.176001514646942
-3652	3491	3492	0.0183360753269697	0.0183360753269697
-3653	3492	1957	0.294352299971408	0.294352299971408
-3655	1514	1794	0.180158106731211	0.180158106731211
-3657	3493	3494	0.410250831833552	0.410250831833552
-3658	3494	3495	0.80930180387284	0.80930180387284
-3660	3497	3498	0.0969369694749486	0.0969369694749486
-3661	3498	3499	0.0991356893770485	0.0991356893770485
-3662	3499	3500	0.0998795294298673	0.0998795294298673
-3663	3500	3501	0.0512305304785401	0.0512305304785401
-3664	3501	3502	0.04790242821524	0.04790242821524
-3665	3502	3503	0.0976724268185372	0.0976724268185372
-3666	3503	3504	0.099556042023676	0.099556042023676
-3667	3504	3505	0.0928685437479174	0.0928685437479174
-3668	3505	3506	0.0161263903021828	0.0161263903021828
-3670	3507	3508	0.0452502277318962	0.0452502277318962
-3673	3510	3511	0.00276384344441178	0.00276384344441178
-3674	3511	3512	0.10075109326777	0.10075109326777
-3675	3512	3513	0.0463453549611142	0.0463453549611142
-3676	3513	3514	0.0488777906121745	0.0488777906121745
-3677	3514	3515	0.0517011274556552	0.0517011274556552
-3678	3515	3480	0.0495708012211316	0.0495708012211316
-3679	3480	3516	0.0493402083699287	0.0493402083699287
-3680	3516	3517	0.0507690156276584	0.0507690156276584
-3681	3517	3518	0.0480408906902884	0.0480408906902884
-3682	3518	3519	0.0499402493817724	0.0499402493817724
-3683	3519	3520	0.0491944164243011	0.0491944164243011
-3685	3521	3522	0.048707440700188	0.048707440700188
-3686	3522	3523	0.0553123927733894	0.0553123927733894
-3688	3524	3525	0.0491959341758901	0.0491959341758901
-3689	3525	3526	0.0471666433723512	0.0471666433723512
-3690	3526	3527	0.0512305206815533	0.0512305206815533
-3693	2737	3529	0.051933950168584	0.051933950168584
-3694	3529	3530	0.02212553176718	0.02212553176718
-3695	3530	3531	0.0926927616463166	0.0926927616463166
-3698	3533	3534	0.0505032949697016	0.0505032949697016
-3699	3534	3535	0.0486395723695605	0.0486395723695605
-3700	3535	3536	0.0490245580059416	0.0490245580059416
-3701	3536	3537	0.0505772192147856	0.0505772192147856
-3703	3538	3540	0.0504276967004131	0.0504276967004131
-3705	3541	3542	0.0472106572615262	0.0472106572615262
-3706	3542	1776	0.0526607102662498	0.0526607102662498
-3707	1776	3543	0.0501355164587406	0.0501355164587406
-3708	3543	3545	0.0479683302933595	0.0479683302933595
-3709	3545	3546	0.0512089379810606	0.0512089379810606
-3712	3547	3548	0.0501783172118128	0.0501783172118128
-3714	3549	3550	0.0951894457465396	0.0951894457465396
-3716	3374	3551	0.137804864391147	0.137804864391147
-3717	3552	3553	0.0519171995444708	0.0519171995444708
-3718	3553	3554	0.0504125238991067	0.0504125238991067
-3719	3554	3555	0.0509345511135035	0.0509345511135035
-3720	3555	3556	0.0352813695033733	0.0352813695033733
-3721	3556	3557	0.0165592866582096	0.0165592866582096
-3722	3557	3558	0.0492318634139881	0.0492318634139881
-3724	2895	3559	0.10435477566087	0.10435477566087
-3725	3559	3560	0.106943183049813	0.106943183049813
-3726	3560	3561	0.104660660979737	0.104660660979737
-3727	3561	3562	0.110121719044693	0.110121719044693
-3728	3562	3563	0.102966459525542	0.102966459525542
-3730	3564	3565	0.0562722873891167	0.0562722873891167
-3735	3568	3569	0.0531044201649232	0.0531044201649232
-3736	3569	3570	0.106391147104451	0.106391147104451
-3737	3570	3571	0.101252017782574	0.101252017782574
-3738	3571	3323	0.106405710576167	0.106405710576167
-3739	3323	3572	0.102008288172629	0.102008288172629
-3740	3572	3573	0.10165616841443	0.10165616841443
-3741	3573	2074	0.102582871487582	0.102582871487582
-3742	2074	2671	0.108231570849142	0.108231570849142
-3743	2671	3574	0.10456159833902	0.10456159833902
-5002	115	4548	0.0219059413647985	0.0219059413647985
-3744	3574	3575	0.112649473969198	0.112649473969198
-3748	3469	3578	0.102738780677217	0.102738780677217
-3751	848	3580	0.194594151891157	0.194594151891157
-3780	799	3582	0.202016106794537	0.202016106794537
-3753	3581	3583	0.0933177632696428	0.0933177632696428
-3756	3586	3587	0.0427524561216555	0.0427524561216555
-20307	3851	3852	0.0199150113624835	0.0199150113624835
-3757	3587	3588	0.00652614157776479	0.00652614157776479
-3758	3588	3589	0.0165416326790114	0.0165416326790114
-3759	3589	3590	0.0292914453635219	0.0292914453635219
-3760	3590	3591	0.012398142936734	0.012398142936734
-3761	3591	3592	0.00808918004643223	0.00808918004643223
-3762	3592	3593	0.0105968786869326	0.0105968786869326
-3764	3487	3594	0.175200690864457	0.175200690864457
-17310	5684	5685	0.200644913348264	0.200644913348264
-3765	3594	2339	0.174981229925885	0.174981229925885
-3768	3596	3597	0.239259126523314	0.239259126523314
-3770	1985	1969	0.0388238770836811	0.0388238770836811
-3771	1969	3598	0.103685036459381	0.103685036459381
-3772	3598	3599	0.103278210249803	0.103278210249803
-3774	3600	685	0.204822140654993	0.204822140654993
-3775	685	1984	0.157051714392723	0.157051714392723
-3777	2473	3601	0.204732098938096	0.204732098938096
-3778	3601	3602	0.203258463693205	0.203258463693205
-3779	3602	799	0.197950165384785	0.197950165384785
-3781	3582	3603	0.209363914186111	0.209363914186111
-3782	3603	3604	0.202974468009462	0.202974468009462
-3783	3604	3063	0.201030651985273	0.201030651985273
-3784	3063	3605	0.183452467298283	0.183452467298283
-3785	3605	3609	0.0173247613422977	0.0173247613422977
-3786	3609	3610	0.100167424900963	0.100167424900963
-3787	3610	1148	0.0998182719974527	0.0998182719974527
-3798	3618	3619	1.41244277904247	1.41244277904247
-3799	3620	3621	0.200419085699923	0.200419085699923
-3800	3621	3083	0.197049820413636	0.197049820413636
-3806	3250	3625	0.214852973763206	0.214852973763206
-3807	3625	37	0.19341482884534	0.19341482884534
-3808	37	3536	0.207817408343139	0.207817408343139
-3809	3536	3626	0.197537787183869	0.197537787183869
-3810	3626	3627	0.0725803332096263	0.0725803332096263
-3812	3628	3629	0.0377891893344826	0.0377891893344826
-3814	3630	108	0.222508950073657	0.222508950073657
-3815	108	3631	0.48374336677931	0.48374336677931
-3816	3631	3632	1.29923590650812	1.29923590650812
-17118	3959	510	0.232935824119298	0.232935824119298
-4428	4136	4137	0.173313517100692	0.173313517100692
-4429	4137	4138	0.202530185785573	0.202530185785573
-18158	6309	10170	0.40356001102466	0.40356001102466
-4432	2389	4140	0.139183902890425	0.139183902890425
-4434	4141	4142	0.197054107936505	0.197054107936505
-4438	4144	4145	0.0537117632250494	0.0537117632250494
-4439	4145	965	0.101471161400112	0.101471161400112
-4440	965	4146	0.104100628512796	0.104100628512796
-4441	4146	3163	0.0969051144320847	0.0969051144320847
-4442	3163	4147	0.101372524256092	0.101372524256092
-4443	4147	4148	0.0308326213261154	0.0308326213261154
-4445	3914	1051	0.113795014444698	0.113795014444698
-4446	1051	4149	0.10964029932362	0.10964029932362
-4449	4151	3345	0.104243278330047	0.104243278330047
-4451	4152	4153	0.102419695022811	0.102419695022811
-4452	4153	2058	0.103354746635848	0.103354746635848
-4453	2058	2644	0.104156201229462	0.104156201229462
-4454	2644	4110	0.102077109293643	0.102077109293643
-5804	5122	5123	0.00520045876973269	0.00520045876973269
-4455	4110	4154	0.102551400025576	0.102551400025576
-4458	4156	3451	0.102085683319337	0.102085683319337
-4459	3451	4157	0.103915702611829	0.103915702611829
-4460	4157	3881	0.104147627332173	0.104147627332173
-4461	3881	844	0.102547271473588	0.102547271473588
-4462	844	4158	0.103915708789956	0.103915708789956
-4463	4158	4159	0.0473715373473714	0.0473715373473714
-4465	4160	4161	0.0487952389865543	0.0487952389865543
-4466	4161	4162	0.0503092120983125	0.0503092120983125
-4467	4162	4163	0.0998399649224705	0.0998399649224705
-4470	991	4165	0.0616573964011522	0.0616573964011522
-4471	4165	4166	0.0374515064164708	0.0374515064164708
-4472	4166	4167	0.0500586202169859	0.0500586202169859
-4473	4167	4168	0.0490747432154895	0.0490747432154895
-4474	4168	1546	0.0500170304502106	0.0500170304502106
-4475	1546	4169	0.0485801531295538	0.0485801531295538
-5773	5098	5099	0.136491222225544	0.136491222225544
-4479	4171	4172	0.0171013114970861	0.0171013114970861
-4480	4172	4173	0.100095278405447	0.100095278405447
-4481	4173	4174	0.0193707742575379	0.0193707742575379
-4482	4174	3125	0.0983746933912928	0.0983746933912928
-4483	3125	3149	0.017633000291927	0.017633000291927
-4485	3759	1483	0.205504619788951	0.205504619788951
-4486	1483	139	0.199306955290764	0.199306955290764
-3818	3634	3635	0.193271661183235	0.193271661183235
-3844	50	2744	0.0297683374213274	0.0297683374213274
-3819	3635	3636	0.259071020170312	0.259071020170312
-3820	3636	3637	0.220352934884474	0.220352934884474
-3821	3637	3638	0.0146799692899151	0.0146799692899151
-3822	3638	3629	0.546064092681382	0.546064092681382
-3823	3629	3628	0.0377891893344826	0.0377891893344826
-3848	3639	3640	0.0377019004254023	0.0377019004254023
-3824	3628	3641	0.274746435577415	0.274746435577415
-3827	3643	3630	0.145379834812045	0.145379834812045
-3829	3644	3645	0.10937380292523	0.10937380292523
-3831	3646	3647	0.118367900276814	0.118367900276814
-3833	3648	3649	0.0133410304783532	0.0133410304783532
-3834	3649	3650	0.0429585103622675	0.0429585103622675
-3835	3650	3651	0.0204151163658954	0.0204151163658954
-3836	3651	3652	0.035861428044368	0.035861428044368
-3837	3652	3653	0.0519097060940613	0.0519097060940613
-3838	3653	2733	0.0215181506261361	0.0215181506261361
-3839	2733	3184	0.0284884125498342	0.0284884125498342
-3840	3184	3654	0.0523000942930375	0.0523000942930375
-3841	3654	3655	0.0449577371290542	0.0449577371290542
-3842	3655	3656	0.0854917295991763	0.0854917295991763
-3843	3656	50	0.0260531877334927	0.0260531877334927
-3845	2744	3657	0.0566089274642789	0.0566089274642789
-3846	3657	3658	0.0492739020617726	0.0492739020617726
-3849	3640	3660	0.0409815373213546	0.0409815373213546
-3850	3660	3661	0.0430567519340905	0.0430567519340905
-3851	3661	3662	0.0468129367556475	0.0468129367556475
-3852	3662	3663	0.0487340718514498	0.0487340718514498
-3853	3663	3664	0.0766168893066023	0.0766168893066023
-3854	3664	3665	0.0775543535398568	0.0775543535398568
-3856	2887	3666	0.0966953683989245	0.0966953683989245
-3857	3666	3667	0.0610272459393337	0.0610272459393337
-3860	3669	3670	0.0315853053568594	0.0315853053568594
-3862	3671	3672	0.0504610774094253	0.0504610774094253
-3863	3672	3673	0.0499084817958282	0.0499084817958282
-3864	3673	3674	0.0598581313257637	0.0598581313257637
-3865	3674	3675	0.0415918035714469	0.0415918035714469
-3866	3675	3676	0.0971838117715375	0.0971838117715375
-3867	3676	3677	0.0757910145140814	0.0757910145140814
-3868	3677	3678	0.0241351496511796	0.0241351496511796
-3869	3678	3679	0.10921148844503	0.10921148844503
-3870	3679	3680	0.0604791133362521	0.0604791133362521
-3871	3680	3681	0.0497662614550786	0.0497662614550786
-3872	3681	3682	0.0284371260175335	0.0284371260175335
-3873	3682	3683	0.0775136719631998	0.0775136719631998
-3874	3683	3684	0.0986272672973807	0.0986272672973807
-3876	3686	1026	0.103637164673652	0.103637164673652
-5148	4657	4658	0.0518173498658282	0.0518173498658282
-3877	1026	3687	0.0559565437232701	0.0559565437232701
-3878	3687	3688	0.0511859173489266	0.0511859173489266
-3879	3688	3689	0.0520066703615513	0.0520066703615513
-3880	3689	3690	0.049253728288425	0.049253728288425
-3882	2886	3691	0.113429848834015	0.113429848834015
-3884	3215	3692	0.202752541360657	0.202752541360657
-3885	3692	1926	0.199353224720545	0.199353224720545
-3886	1926	3693	0.200351682125873	0.200351682125873
-3887	3693	3270	0.203854022504707	0.203854022504707
-3888	3270	3694	0.200935067748901	0.200935067748901
-3890	83	3519	0.205087956532059	0.205087956532059
-3892	3695	3696	0.201007421421966	0.201007421421966
-3897	3217	3701	0.1352188342505	0.1352188342505
-3898	131	1718	0.251512260994622	0.251512260994622
-15946	9759	9762	0.240661719520644	0.240661719520644
-3900	3702	3703	0.0933150678138448	0.0933150678138448
-3901	3703	3704	0.137025546490973	0.137025546490973
-3902	3704	3705	0.132801372713675	0.132801372713675
-3903	3705	1668	0.132757296812598	0.132757296812598
-3904	1668	3706	0.138337667643286	0.138337667643286
-3905	3706	2449	0.137198901653783	0.137198901653783
-3906	2449	3239	0.137027047572602	0.137027047572602
-3909	3708	3709	0.0594114493059888	0.0594114493059888
-3910	3709	109	0.057220909251565	0.057220909251565
-3913	3711	3712	0.139485170169946	0.139485170169946
-3914	3712	2811	0.114534953425458	0.114534953425458
-3918	3715	3716	0.0528065388297546	0.0528065388297546
-3919	3716	3717	0.0498986148500866	0.0498986148500866
-3920	3717	3718	0.0501983896755627	0.0501983896755627
-3921	3718	3722	0.0513311819624353	0.0513311819624353
-3922	3722	3723	0.0447895916462849	0.0447895916462849
-3923	3723	3724	0.0431436061631746	0.0431436061631746
-3924	3724	3725	0.0306469500311329	0.0306469500311329
-3926	3726	3727	0.194057523355391	0.194057523355391
-3927	3727	723	0.155998303022368	0.155998303022368
-3928	723	3728	0.0204200466887832	0.0204200466887832
-3929	3728	3729	0.122760919468851	0.122760919468851
-3930	3729	3730	0.0554195837686694	0.0554195837686694
-3931	3730	520	0.0841868989778494	0.0841868989778494
-3932	520	3731	0.0926590200371809	0.0926590200371809
-3933	3731	3732	0.0560537701957185	0.0560537701957185
-3937	3735	3736	0.177568883213635	0.177568883213635
-3939	3737	3738	0.0596027628340358	0.0596027628340358
-3940	3738	2286	0.015731383207611	0.015731383207611
-3942	191	3739	0.20409229769904	0.20409229769904
-3943	3739	3740	0.196754914184827	0.196754914184827
-3945	3741	3742	0.0963531048469524	0.0963531048469524
-3947	3743	1867	0.211893481628119	0.211893481628119
-3948	1867	3744	0.190309691295086	0.190309691295086
-3949	3744	3369	0.156379911113779	0.156379911113779
-3951	3746	3747	0.0084501441528746	0.0084501441528746
-3953	3749	3750	0.291896586304336	0.291896586304336
-3957	3752	3753	0.00678737857974005	0.00678737857974005
-3958	3753	3754	0.00811546596932882	0.00811546596932882
-3959	3754	605	0.11345488105994	0.11345488105994
-3966	3759	3760	0.0543424988109601	0.0543424988109601
-3967	3760	3761	0.0124828328696103	0.0124828328696103
-3969	3762	3763	0.109035140401267	0.109035140401267
-3970	3763	3764	0.13451246019454	0.13451246019454
-3971	3764	1077	0.0751290727356026	0.0751290727356026
-3972	1077	2521	0.125841042831383	0.125841042831383
-3974	3765	3766	0.0155018141702848	0.0155018141702848
-3975	3766	3769	0.0925922303926536	0.0925922303926536
-3976	3769	450	0.0446743427321934	0.0446743427321934
-3977	450	855	0.0454696499518695	0.0454696499518695
-3978	855	3770	0.0458292249661059	0.0458292249661059
-5269	4111	4741	0.0999126780220414	0.0999126780220414
-3979	3770	3771	0.0463680305523856	0.0463680305523856
-3982	3777	3778	0.0472655889206378	0.0472655889206378
-3983	3778	3456	0.0457775618734605	0.0457775618734605
-3984	3456	3779	0.0949352444381587	0.0949352444381587
-3985	3779	3780	0.0949175907228116	0.0949175907228116
-3986	3780	3781	0.0934360991992659	0.0934360991992659
-3987	3781	3782	0.0927263272279538	0.0927263272279538
-3988	3782	2659	0.0984051754942233	0.0984051754942233
-3989	2659	2053	0.0987467204032972	0.0987467204032972
-3990	2053	3783	0.0990728400130522	0.0990728400130522
-3991	3783	3784	0.0514218472521816	0.0514218472521816
-3992	3784	3785	0.0779176889813446	0.0779176889813446
-3993	3785	3786	0.0982592928032825	0.0982592928032825
-3994	3786	3344	0.100047583059044	0.100047583059044
-3995	3344	3787	0.0997075658602957	0.0997075658602957
-3998	3789	1013	0.0991145515008367	0.0991145515008367
-3999	1013	3790	0.0988154439008836	0.0988154439008836
-4000	3790	3147	0.100818484811759	0.100818484811759
-4001	3147	3128	0.0882379333310365	0.0882379333310365
-4002	3128	3791	0.10924064572907	0.10924064572907
-4003	3791	3792	0.0990892368110052	0.0990892368110052
-4004	3792	3793	0.0983279071551189	0.0983279071551189
-4005	3793	3794	0.0488397000978433	0.0488397000978433
-4006	3794	3795	0.0500279563406491	0.0500279563406491
-4007	3795	2868	0.0499678370514067	0.0499678370514067
-4008	2868	3796	0.048583428681526	0.048583428681526
-4009	3796	3797	0.0504566053315115	0.0504566053315115
-4011	3798	3799	0.0451531325504455	0.0451531325504455
-4012	3799	983	0.0519296915637561	0.0519296915637561
-4015	3801	3802	0.0483738114958222	0.0483738114958222
-4016	3802	3803	0.0519812355103751	0.0519812355103751
-4017	3803	3804	0.101642680761132	0.101642680761132
-4018	3804	3805	0.100202026962745	0.100202026962745
-4019	3805	3806	0.0490200510242293	0.0490200510242293
-4020	3806	3159	0.0527906095396228	0.0527906095396228
-4021	3159	3807	0.0508058777981011	0.0508058777981011
-4022	3807	3808	0.0547154240766913	0.0547154240766913
-4023	3808	3809	0.105580069148102	0.105580069148102
-4025	3810	3811	0.0543737037127348	0.0543737037127348
-16058	9242	237	0.236847878323095	0.236847878323095
-4026	3811	3812	0.108778018122892	0.108778018122892
-4027	3812	1620	0.10920973774803	0.10920973774803
-4029	3813	3814	0.083969278056869	0.083969278056869
-4031	3815	3816	0.139162136479248	0.139162136479248
-4032	3816	3817	0.128842029582485	0.128842029582485
-4034	3818	2303	0.104861015321702	0.104861015321702
-4035	2303	130	0.0947837852263858	0.0947837852263858
-4036	130	155	0.2039982188818	0.2039982188818
-4037	155	1719	0.251031715971117	0.251031715971117
-4040	3820	3821	0.253858034970465	0.253858034970465
-4041	3821	765	0.158798770965753	0.158798770965753
-4042	765	3822	0.38766252452626	0.38766252452626
-4044	3823	3824	0.6423341602363	0.6423341602363
-4045	3825	3826	0.0763938085811643	0.0763938085811643
-5338	4787	4788	0.201919584850824	0.201919584850824
-4049	3828	3829	0.0709013283805701	0.0709013283805701
-4051	3830	3831	0.161299122027925	0.161299122027925
-4052	3832	3833	0.0520709463921909	0.0520709463921909
-4054	3834	3835	0.133913000116738	0.133913000116738
-4055	3835	3836	0.135958385150602	0.135958385150602
-4059	3838	3839	0.195689058153451	0.195689058153451
-4061	3840	3841	0.104161008191779	0.104161008191779
-4062	3841	3842	0.204332097790775	0.204332097790775
-4063	3842	2989	0.198305038809848	0.198305038809848
-4064	2989	3843	0.202007841321225	0.202007841321225
-4065	3843	3844	0.201085745402869	0.201085745402869
-4066	3844	3845	0.203153756914823	0.203153756914823
-4067	3845	3846	0.201463782012409	0.201463782012409
-4068	3846	1694	0.201944163047273	0.201944163047273
-4069	1694	3847	0.201007884572681	0.201007884572681
-4070	3847	2442	0.173966646957408	0.173966646957408
-4071	2442	3848	0.171462594138623	0.171462594138623
-5362	4804	4805	0.138916058502817	0.138916058502817
-4072	3848	3849	0.15641185610528	0.15641185610528
-4073	3849	3850	0.155873108146064	0.155873108146064
-4074	3850	3851	0.11951230715733	0.11951230715733
-4075	3851	3852	0.0199150113624835	0.0199150113624835
-4078	2606	3854	0.176099789319583	0.176099789319583
-4081	3856	3857	0.204451648584923	0.204451648584923
-4082	3857	3858	0.27633741171005	0.27633741171005
-4084	3859	3860	0.194935828897222	0.194935828897222
-4085	3860	2553	0.201807589121279	0.201807589121279
-4086	2553	3861	0.201183796555208	0.201183796555208
-4087	3861	3862	0.206144933368939	0.206144933368939
-4088	3863	3864	0.174004040356707	0.174004040356707
-4089	3864	3865	0.176177241775495	0.176177241775495
-4090	3865	3866	0.0719661295510201	0.0719661295510201
-4091	3866	1862	0.105391351050826	0.105391351050826
-4092	1862	2607	0.183084733810089	0.183084733810089
-4094	3867	3868	0.135844661693153	0.135844661693153
-4096	1431	3869	0.122681533981215	0.122681533981215
-4099	3870	3871	0.0814181379314414	0.0814181379314414
-4101	3038	3872	0.194090812408951	0.194090812408951
-4103	3579	3873	0.140995166985651	0.140995166985651
-4104	3873	3874	0.0908684940539539	0.0908684940539539
-4108	2397	3876	0.142303739641396	0.142303739641396
-4110	3877	702	0.203534713775632	0.203534713775632
-4111	702	3878	0.201204188260029	0.201204188260029
-4113	3879	3880	0.176189861258557	0.176189861258557
-4114	3880	2357	0.178601291381029	0.178601291381029
-4115	2357	3881	0.172977248757485	0.172977248757485
-4116	3881	3882	0.173963704924205	0.173963704924205
-4117	3882	3883	0.177248873598787	0.177248873598787
-4118	3883	3884	0.165174683174039	0.165174683174039
-4120	3885	899	0.068233075024198	0.068233075024198
-4121	899	3886	0.136382558439915	0.136382558439915
-4123	3887	2246	0.064586200340924	0.064586200340924
-4126	3889	3890	0.173108811078515	0.173108811078515
-4128	3891	673	0.180805922237936	0.180805922237936
-4129	673	3892	0.00347134617206091	0.00347134617206091
-4131	3893	3894	0.173412160606882	0.173412160606882
-4132	3894	3686	0.239804659108201	0.239804659108201
-4133	3686	3895	0.139339505088047	0.139339505088047
-4134	3895	1293	0.0712429362693845	0.0712429362693845
-4136	3896	3897	0.00461464942878269	0.00461464942878269
-4137	3897	3898	0.00296969221564957	0.00296969221564957
-4138	3898	3899	0.135099018741423	0.135099018741423
-4139	3899	3900	0.133736401013675	0.133736401013675
-4140	3900	826	0.1432668721319	0.1432668721319
-4141	826	3567	0.140539270126583	0.140539270126583
-4142	3567	3901	0.141736858580205	0.141736858580205
-4143	3901	3902	0.138513379846183	0.138513379846183
-4144	3902	3903	0.137738276341516	0.137738276341516
-4145	3903	3041	0.133834213982	0.133834213982
-4146	3041	3904	0.143195912483998	0.143195912483998
-4147	3904	3905	0.00371612313723013	0.00371612313723013
-4148	3905	3906	0.138485181869722	0.138485181869722
-4150	1161	880	0.143460648556329	0.143460648556329
-4151	880	3907	0.137181190587279	0.137181190587279
-4152	3907	2788	0.133979203320047	0.133979203320047
-4154	3908	3909	0.11929025073176	0.11929025073176
-4155	3909	3910	0.092551367353814	0.092551367353814
-4157	734	1555	0.128698646905998	0.128698646905998
-4158	1555	3911	0.10223670466325	0.10223670466325
-4159	3911	3912	0.0209102658501846	0.0209102658501846
-4160	3913	3914	0.290781445277807	0.290781445277807
-4161	3914	3915	0.112536676265492	0.112536676265492
-4162	3915	3916	0.199777886092506	0.199777886092506
-4163	3916	3917	0.0912727874005277	0.0912727874005277
-4164	3917	3918	0.112620851967747	0.112620851967747
-4166	3919	1187	0.167283340526576	0.167283340526576
-4167	1187	3920	0.0212753866211399	0.0212753866211399
-4168	3920	3790	0.200229524215252	0.200229524215252
-4169	3790	3921	0.153151160013799	0.153151160013799
-4170	3921	3922	0.0549370836226997	0.0549370836226997
-4171	3923	3924	0.0360721076371334	0.0360721076371334
-4174	706	3926	0.117999308023824	0.117999308023824
-4175	3926	3702	0.0450373928319521	0.0450373928319521
-4176	3702	3927	0.114850773809758	0.114850773809758
-4177	3927	3928	0.0608860897951607	0.0608860897951607
-4178	3928	3929	0.107271550927247	0.107271550927247
-4180	3930	1666	0.1330788885459	0.1330788885459
-4181	1666	3931	0.137468360449037	0.137468360449037
-4182	3931	2447	0.134834989989903	0.134834989989903
-4183	2447	3237	0.140199730422516	0.140199730422516
-4184	3237	3933	0.138639782785987	0.138639782785987
-4185	3933	3934	0.138811739329711	0.138811739329711
-4186	3934	3935	0.134204059449961	0.134204059449961
-4187	3935	3936	0.123276584845079	0.123276584845079
-4189	3937	3938	0.126045478045544	0.126045478045544
-4190	3938	3939	0.0651492893105391	0.0651492893105391
-4191	3939	3940	0.0221401135391512	0.0221401135391512
-4192	3940	3941	0.0717318471783874	0.0717318471783874
-4195	3943	3944	0.176615684469352	0.176615684469352
-4196	3944	3947	0.176604135108539	0.176604135108539
-4197	3947	3948	0.122323573259462	0.122323573259462
-4198	3948	3949	0.0559214984515419	0.0559214984515419
-5481	4892	3459	0.0941890822437752	0.0941890822437752
-4199	3949	3950	0.176269184745743	0.176269184745743
-4200	3950	3951	0.05590117541301	0.05590117541301
-4201	3951	3952	0.122088386939327	0.122088386939327
-4202	3952	3953	0.0603148497739477	0.0603148497739477
-4203	3953	3954	0.117311769773874	0.117311769773874
-4204	3954	3955	0.0719490460324168	0.0719490460324168
-4205	3955	3956	0.106538056002006	0.106538056002006
-4206	3956	3957	0.177243078500478	0.177243078500478
-4207	3957	2623	0.176288453506598	0.176288453506598
-4208	2623	3958	0.177546592271005	0.177546592271005
-4209	3958	3960	0.168966442415293	0.168966442415293
-4210	3960	3961	0.111586533238696	0.111586533238696
-4213	3963	3964	0.265623714493738	0.265623714493738
-4214	3965	3966	0.511616430940774	0.511616430940774
-4216	1726	3967	0.0896760315303362	0.0896760315303362
-4217	3967	3968	0.0558858522230369	0.0558858522230369
-4218	3968	3969	0.109150490871186	0.109150490871186
-4219	3970	3971	0.202576252334461	0.202576252334461
-4220	3971	3972	0.199655908563659	0.199655908563659
-4221	3972	3973	0.201550568367269	0.201550568367269
-4223	3974	3975	0.0432784618651284	0.0432784618651284
-4224	3975	3976	0.0119312921672435	0.0119312921672435
-4225	3976	3977	0.0412856988441699	0.0412856988441699
-4226	3977	3978	0.00523979822286268	0.00523979822286268
-4227	3978	3979	0.0456580481243959	0.0456580481243959
-4228	3979	3980	0.0491163050630244	0.0491163050630244
-4229	3980	3981	0.0519851803283443	0.0519851803283443
-4230	3981	1662	0.0500503143032265	0.0500503143032265
-4231	1662	3982	0.0526516968240738	0.0526516968240738
-4232	3982	3983	0.0511950181994891	0.0511950181994891
-4233	3983	3984	0.0508169123465841	0.0508169123465841
-16267	5831	9866	0.203286686616951	0.203286686616951
-4234	3984	3985	0.0684638947838088	0.0684638947838088
-4235	3985	3986	0.0523508233196537	0.0523508233196537
-4236	3986	3987	0.0497154897229056	0.0497154897229056
-4237	3987	2423	0.0326188031399601	0.0326188031399601
-4238	2423	3988	0.017392306107988	0.017392306107988
-4239	3988	3989	0.0330055324383025	0.0330055324383025
-4240	3989	3990	0.0159023099545875	0.0159023099545875
-4241	3990	3991	0.049454634736183	0.049454634736183
-4244	3992	3993	0.049036974566433	0.049036974566433
-4245	3993	3994	0.0522504960301449	0.0522504960301449
-4246	3994	3995	0.113779671004445	0.113779671004445
-4247	3995	3996	0.292866933952659	0.292866933952659
-4248	3996	3997	0.135719788812757	0.135719788812757
-4249	3997	2492	0.131298969381918	0.131298969381918
-4250	2492	2838	0.134023703042734	0.134023703042734
-4252	3998	3999	0.177673273882055	0.177673273882055
-4253	3999	4000	0.178724202369687	0.178724202369687
-4254	4000	4001	0.0914256352612055	0.0914256352612055
-4255	1820	4002	0.0854127756728086	0.0854127756728086
-4256	4002	4003	0.0734940058422204	0.0734940058422204
-4257	4003	4004	0.122094789640982	0.122094789640982
-4260	4006	4007	0.167588698662527	0.167588698662527
-4261	4007	4008	0.199884724997956	0.199884724997956
-4262	4008	4009	0.0119868161378673	0.0119868161378673
-4263	371	1930	0.0503613323391642	0.0503613323391642
-4264	1930	1940	0.0838300296248713	0.0838300296248713
-4265	1940	4010	0.121947021037263	0.121947021037263
-4266	4010	4011	0.132309346356631	0.132309346356631
-4267	4011	4012	0.135165905730987	0.135165905730987
-4268	4012	4013	0.133333876014397	0.133333876014397
-4270	4014	12	0.13580168948729	0.13580168948729
-4271	12	4015	0.00286884184731271	0.00286884184731271
-4272	4015	4016	0.132033234839576	0.132033234839576
-4273	4016	4017	0.133567851795101	0.133567851795101
-4274	4017	4018	0.134726706981619	0.134726706981619
-4275	4018	4019	0.130892412762661	0.130892412762661
-4276	4019	4020	0.134212591203429	0.134212591203429
-4277	4020	4021	0.133433911973159	0.133433911973159
-4278	4021	4022	0.137281795417315	0.137281795417315
-4280	4023	4024	0.0689781307016059	0.0689781307016059
-4281	4024	4025	0.0667654814327236	0.0667654814327236
-5576	4965	4966	0.209377126181678	0.209377126181678
-4290	4029	1890	0.0489976212541555	0.0489976212541555
-4291	1890	4030	0.050071397214541	0.050071397214541
-4293	4031	2858	0.24990384929118	0.24990384929118
-4301	1703	4036	0.19686036595886	0.19686036595886
-4302	4036	4037	2.41616418836648	2.41616418836648
-4303	4038	4039	0.0356847858191414	0.0356847858191414
-4305	4040	4041	0.105425319125276	0.105425319125276
-4306	4041	2256	0.104244973047941	0.104244973047941
-4307	2256	4042	0.103519804078257	0.103519804078257
-4309	3999	4043	0.105003607246795	0.105003607246795
-17679	10164	8262	0.207810693253635	0.207810693253635
-4315	4048	3390	0.0527412463264476	0.0527412463264476
-4316	3390	4049	0.0507539981345734	0.0507539981345734
-4317	4049	4050	0.0520284075919789	0.0520284075919789
-4318	4050	3408	0.0512087059000605	0.0512087059000605
-4319	3408	4051	0.0486341315555791	0.0486341315555791
-4320	4051	4053	0.052533034496925	0.052533034496925
-4321	4053	4054	0.0524475036704537	0.0524475036704537
-4322	4054	4055	0.0498829272923159	0.0498829272923159
-4327	4058	4059	0.051190260382352	0.051190260382352
-4328	4059	3864	0.0501467689985101	0.0501467689985101
-4329	3864	4060	0.0537746384669306	0.0537746384669306
-4330	4060	4061	0.0463502740457097	0.0463502740457097
-4331	4061	4062	0.0561959746447094	0.0561959746447094
-4357	4082	4083	0.157884781724872	0.157884781724872
-4332	4062	4063	0.69866413721226	0.69866413721226
-4333	1273	4064	0.135036752261437	0.135036752261437
-4334	4064	4065	0.129590074598046	0.129590074598046
-4335	4065	4066	0.132616575444838	0.132616575444838
-4344	4073	1390	0.0502435222683857	0.0502435222683857
-4345	1390	4074	0.0493046140403362	0.0493046140403362
-4346	4074	4075	0.0491422603337744	0.0491422603337744
-4351	4078	4079	0.241190031557862	0.241190031557862
-4352	4079	4080	0.258242852029617	0.258242852029617
-4353	4080	1629	0.215143938153131	0.215143938153131
-4354	1629	3965	0.0839336295727996	0.0839336295727996
-4364	1214	4088	0.0489795542886091	0.0489795542886091
-4365	4088	4089	0.0498843047924572	0.0498843047924572
-4366	4089	4090	0.0487540785114809	0.0487540785114809
-4367	4090	2167	0.0506698655714413	0.0506698655714413
-4368	2167	4091	0.0491950203791528	0.0491950203791528
-4369	4091	4092	0.0488189222411035	0.0488189222411035
-4378	1289	4100	0.0495624053047352	0.0495624053047352
-4379	4100	4101	0.0531970268279652	0.0531970268279652
-4380	4101	4102	0.0527877658733148	0.0527877658733148
-4381	4102	4103	0.0491029186922276	0.0491029186922276
-4382	4103	4104	0.053313065445571	0.053313065445571
-18127	10262	10268	0.40641745688608	0.40641745688608
-4394	4109	2351	0.147790101003017	0.147790101003017
-4395	2351	4110	0.174343137234229	0.174343137234229
-4396	4110	4111	0.175176728788125	0.175176728788125
-4397	4111	4112	0.174887842567366	0.174887842567366
-4398	4112	4113	0.163616410243985	0.163616410243985
-14847	9428	3841	0.049872105512027	0.049872105512027
-14848	3841	9429	0.0507867978829422	0.0507867978829422
-14849	9429	5551	0.0504705023896622	0.0504705023896622
-14850	5551	9430	0.0160626819091423	0.0160626819091423
-324	207	268	0.0408317858918375	0.0408317858918375
-14851	9430	9431	0.771810690268124	0.771810690268124
-14860	2500	9438	0.0367185859571526	0.0367185859571526
-14866	8307	6350	0.0205009601935279	0.0205009601935279
-14871	2450	3240	0.14088111565627	0.14088111565627
-14873	5733	5517	0.138655367104914	0.138655367104914
-14874	5517	9442	0.136397019838813	0.136397019838813
-14875	9442	6920	0.112250527906817	0.112250527906817
-14877	6505	9443	0.246198454475103	0.246198454475103
-14878	9443	9444	0.0254384620147021	0.0254384620147021
-14879	9444	6994	0.4499142851013	0.4499142851013
-14880	6994	9445	0.29050322706034	0.29050322706034
-14881	9445	2104	0.111341186723118	0.111341186723118
-14882	2104	9446	1.81122771510753	1.81122771510753
-14883	5328	6848	0.0996617587695029	0.0996617587695029
-14884	6848	9012	0.0991299503198925	0.0991299503198925
-14886	7486	7456	0.0976540916227753	0.0976540916227753
-14888	5693	9010	0.102057355365657	0.102057355365657
-14889	9010	4967	0.099866873546368	0.099866873546368
-14890	4967	9021	0.10207838306375	0.10207838306375
-14894	8146	9004	0.111615935651551	0.111615935651551
-14896	8691	6102	0.204110733056615	0.204110733056615
-14898	8202	8814	0.0690569326601991	0.0690569326601991
-14900	8175	8161	0.034748414576393	0.034748414576393
-14901	8161	9450	0.0195282497941032	0.0195282497941032
-14902	9450	9315	0.339258874320837	0.339258874320837
-14904	8694	8155	0.0907837492404858	0.0907837492404858
-14905	8155	7617	0.0954335805182596	0.0954335805182596
-14906	7617	7270	0.0932816974435063	0.0932816974435063
-14908	4159	8695	0.0152616593160753	0.0152616593160753
-14909	8695	8156	0.0918092963851245	0.0918092963851245
-14910	8156	7618	0.0923894575376538	0.0923894575376538
-14911	7618	7271	0.0946959525813305	0.0946959525813305
-14914	2016	353	0.0344076794786212	0.0344076794786212
-14915	353	9451	0.0583270070041971	0.0583270070041971
-14916	9451	2762	0.099099248852826	0.099099248852826
-14917	2762	7003	0.098484917717332	0.098484917717332
-14918	7003	2266	0.0978645165955224	0.0978645165955224
-14919	2266	3595	0.100545762919748	0.100545762919748
-14920	3595	7518	0.100532638471033	0.100532638471033
-14921	7518	2095	0.100840428744565	0.100840428744565
-14922	2095	5977	0.100495257348787	0.100495257348787
-14923	5977	7667	0.098120652849283	0.098120652849283
-14924	7667	2331	0.102096265330692	0.102096265330692
-14925	2331	9453	0.0789173504157379	0.0789173504157379
-14926	8149	7608	0.0961605881004872	0.0961605881004872
-14927	7608	7261	0.102411721946463	0.102411721946463
-14928	7261	7598	0.095880146438169	0.095880146438169
-14929	7598	2021	0.09187670783236	0.09187670783236
-14930	2021	3354	0.0948528618506519	0.0948528618506519
-14932	2767	7012	0.0931566808998339	0.0931566808998339
-14934	9454	9455	0.0975625637539845	0.0975625637539845
-14937	8700	8158	0.0941289748217691	0.0941289748217691
-14939	7604	7255	0.0976568291897231	0.0976568291897231
-14940	7255	7591	0.0955299991432501	0.0955299991432501
-14941	7591	9173	0.0963387600574313	0.0963387600574313
-14942	9173	9456	0.0980688321229376	0.0980688321229376
-14943	9456	2750	0.102866303298183	0.102866303298183
-14944	2750	7014	0.0961030844605866	0.0961030844605866
-14945	7014	8215	0.0956816865795296	0.0956816865795296
-14947	8212	7523	0.100548507087909	0.100548507087909
-14948	7523	2123	0.0946806328213609	0.0946806328213609
-14949	2123	5989	0.102767406722396	0.102767406722396
-14950	5989	7670	0.0976490581696009	0.0976490581696009
-15962	9768	6397	0.0094036846623539	0.0094036846623539
-14968	7264	7583	0.0956208531243363	0.0956208531243363
-14969	7583	2000	0.0924757762963627	0.0924757762963627
-14970	2000	3360	0.0937229366395869	0.0937229366395869
-14971	3360	2754	0.0967493265415074	0.0967493265415074
-14973	7005	2280	0.0993735606220099	0.0993735606220099
-14974	2280	3602	0.103462577447113	0.103462577447113
-14975	3602	7527	0.0995273521026476	0.0995273521026476
-14976	7527	2135	0.0983330050282197	0.0983330050282197
-14977	2135	5992	0.103459989161242	0.103459989161242
-14978	5992	7672	0.100271460506145	0.100271460506145
-14979	7672	9462	3.03786386467958	3.03786386467958
-14980	5809	9463	0.110364660453643	0.110364660453643
-14989	9464	5043	0.119299198506528	0.119299198506528
-14990	5043	7994	0.118519999914902	0.118519999914902
-14991	7994	9236	0.117759209590851	0.117759209590851
-14992	9236	7973	0.0614780310106107	0.0614780310106107
-14994	7142	5131	0.10575888699282	0.10575888699282
-14995	5131	4724	0.10504840556341	0.10504840556341
-14996	4724	6791	0.107330054626072	0.107330054626072
-14997	6791	7363	0.103200510788566	0.103200510788566
-14998	7363	5422	0.104113985923971	0.104113985923971
-14999	5422	8554	0.105490524385859	0.105490524385859
-15000	8554	3893	0.111457422157238	0.111457422157238
-15001	3893	1024	0.103888468957379	0.103888468957379
-15002	1024	9465	0.0550364598534795	0.0550364598534795
-15003	9465	6269	0.0513684711391166	0.0513684711391166
-15006	9467	9468	0.0801572222360596	0.0801572222360596
-15007	9468	5030	0.106840142374901	0.106840142374901
-18579	3437	7765	0.0485278339531173	0.0485278339531173
-15009	6619	8699	0.0954507670467869	0.0954507670467869
-15010	8699	9469	0.014222614535116	0.014222614535116
-15013	7107	455	0.0456695914542558	0.0456695914542558
-15015	860	9470	0.0919474974486486	0.0919474974486486
-15016	9470	9471	0.0500014374448159	0.0500014374448159
-15017	9471	6021	0.0453621576916579	0.0453621576916579
-15018	6021	9472	0.0470758089061738	0.0470758089061738
-15019	9472	3460	0.0470036762545936	0.0470036762545936
-15020	3460	7685	0.0954954207572325	0.0954954207572325
-15021	7685	8021	0.0933841388460347	0.0933841388460347
-15022	8021	6698	0.0960778131259482	0.0960778131259482
-15023	6698	4136	0.0911259816816344	0.0911259816816344
-15025	2663	8548	0.0930424439627818	0.0930424439627818
-15026	8548	8547	0.100542623889621	0.100542623889621
-15027	8547	7338	0.099089032401214	0.099089032401214
-15028	7338	7883	0.0990804723784167	0.0990804723784167
-15030	3337	5025	0.101286501750056	0.101286501750056
-15031	5025	9473	0.0504081121726349	0.0504081121726349
-15032	9473	8728	0.0508783896228212	0.0508783896228212
-15033	8728	3720	0.054613750451979	0.054613750451979
-16212	9849	7734	1.41107486941703	1.41107486941703
-15034	3720	6265	0.0510651820396187	0.0510651820396187
-15035	6265	9474	0.0526179865653065	0.0526179865653065
-15036	9474	1019	0.0530796783692756	0.0530796783692756
-15037	1019	3889	0.105690016076173	0.105690016076173
-15038	3889	8550	0.11082035773048	0.11082035773048
-15039	8550	5418	0.102756492849076	0.102756492849076
-15040	5418	7359	0.109377907466232	0.109377907466232
-15041	7359	6787	0.102485488457906	0.102485488457906
-15044	9414	5118	0.0507526262754685	0.0507526262754685
-15047	7151	9476	0.0506273642355044	0.0506273642355044
-15048	9476	8834	0.0494473424354765	0.0494473424354765
-15049	8834	6016	0.046054397015081	0.046054397015081
-15051	979	5330	0.0485530564436786	0.0485530564436786
-15052	5330	8003	0.0503217691422663	0.0503217691422663
-15053	8003	6342	0.0507584862620106	0.0507584862620106
-15054	6342	5051	0.0488177307212986	0.0488177307212986
-15055	5051	6690	0.0488248354973201	0.0488248354973201
-15056	6690	9477	0.0468154058850837	0.0468154058850837
-15059	9313	7101	0.0478106623792446	0.0478106623792446
-15060	7101	8880	0.0490142389962295	0.0490142389962295
-15061	8880	7420	0.0493429457759385	0.0493429457759385
-15062	7420	8874	0.0545354482418663	0.0545354482418663
-15064	7430	8793	0.0542698797022772	0.0542698797022772
-15065	8793	7862	0.0521693260437922	0.0521693260437922
-395	399	5	0.209508946543956	0.209508946543956
-15066	7862	8787	0.05844527692302	0.05844527692302
-15067	8787	7957	0.0531372993824669	0.0531372993824669
-15068	7957	9478	0.0541270300244316	0.0541270300244316
-15069	9478	9479	0.108902531529915	0.108902531529915
-15072	4481	9480	0.0910756678915429	0.0910756678915429
-15074	8706	9481	0.10111000413597	0.10111000413597
-15075	9481	9175	0.105113918003998	0.105113918003998
-15076	9175	7259	0.105567381342615	0.105567381342615
-15077	7259	7589	0.103856965848258	0.103856965848258
-15079	3366	2770	0.104765166628809	0.104765166628809
-15080	2770	9176	0.11373488606323	0.11373488606323
-15081	9176	2260	0.11073804654165	0.11073804654165
-15082	2260	3611	0.0999509846289259	0.0999509846289259
-15083	3611	7516	0.100649754002954	0.100649754002954
-15084	7516	2109	0.103508831759163	0.103508831759163
-15085	2109	5999	0.10202033489304	0.10202033489304
-15086	5999	7660	0.0994984857017093	0.0994984857017093
-15087	7660	2328	0.04986487628669	0.04986487628669
-15118	9482	9225	0.0953635356752473	0.0953635356752473
-15120	9455	301	0.129823177853557	0.129823177853557
-15116	9490	8276	0.218414071885788	0.218414071885788
-15121	301	8269	0.152583336977896	0.152583336977896
-15126	226	8268	0.0760384791094216	0.0760384791094216
-15128	225	9482	0.128957275100235	0.128957275100235
-15130	9491	460	0.0667391949721685	0.0667391949721685
-15132	460	575	0.113707068563865	0.113707068563865
-15133	575	6199	0.0290617477448439	0.0290617477448439
-15135	9492	8244	0.032549465488295	0.032549465488295
-15136	8244	9493	0.0198582826309584	0.0198582826309584
-15138	6689	228	0.0134361080204136	0.0134361080204136
-15139	228	9494	0.0329072670561094	0.0329072670561094
-15140	9494	9495	0.0242107567854742	0.0242107567854742
-15142	9496	9497	0.0238335404645399	0.0238335404645399
-15143	9497	9498	0.0343814713189183	0.0343814713189183
-15966	7623	6935	0.205023089639109	0.205023089639109
-15967	6935	5889	0.201769701232267	0.201769701232267
-15968	5889	7449	0.284161489263658	0.284161489263658
-15969	7449	1636	0.117888722564013	0.117888722564013
-15970	1636	8998	0.102786876242831	0.102786876242831
-15972	4214	8094	0.0961834163674376	0.0961834163674376
-15973	8094	194	0.104992906429488	0.104992906429488
-15974	194	2923	0.0991259111035959	0.0991259111035959
-15975	2923	5306	0.0991964539292107	0.0991964539292107
-15976	5306	1461	0.0983899476582488	0.0983899476582488
-15977	1461	5434	0.104614166406686	0.104614166406686
-15978	5434	5973	0.107640436770916	0.107640436770916
-15979	5973	9014	0.00660364948230504	0.00660364948230504
-15980	9014	7915	0.0975740293794765	0.0975740293794765
-15981	7915	6437	0.105749746230322	0.105749746230322
-16016	9786	9159	0.00790012825467591	0.00790012825467591
-15982	6437	4420	0.102051245715481	0.102051245715481
-15985	5328	7056	0.0812625038007973	0.0812625038007973
-15986	7056	9772	0.0538313043287529	0.0538313043287529
-15987	9772	4318	0.0518980074233638	0.0518980074233638
-15988	4318	9452	0.0516277273460522	0.0516277273460522
-15990	4506	4116	0.0518058126204102	0.0518058126204102
-15991	4116	7809	0.0517374039809394	0.0517374039809394
-15992	7809	5068	0.0991665346425536	0.0991665346425536
-15993	5068	9773	0.0531370753578357	0.0531370753578357
-15994	9773	6836	0.0533167080983746	0.0533167080983746
-15995	6836	6978	0.101324072393449	0.101324072393449
-15996	6978	7941	0.102826343168107	0.102826343168107
-15997	7941	9015	0.0975512129036908	0.0975512129036908
-15998	9015	6780	0.448938989090037	0.448938989090037
-15999	6780	9774	0.408854845876832	0.408854845876832
-16000	9076	9768	0.0663101767153915	0.0663101767153915
-16004	9776	1455	0.0526013194004238	0.0526013194004238
-16006	9777	1736	0.0786842572590025	0.0786842572590025
-16092	526	9805	0.0239836164906123	0.0239836164906123
-16044	9806	9807	0.10708389115039	0.10708389115039
-16046	9808	9779	0.598201231733375	0.598201231733375
-16048	9809	8448	0.00611949423172489	0.00611949423172489
-16050	497	315	0.38487204905166	0.38487204905166
-16051	315	9125	0.309277404563432	0.309277404563432
-16053	9092	238	0.378305028269765	0.378305028269765
-14687	2318	2393	0.204381692629994	0.204381692629994
-16054	238	599	0.20185675523074	0.20185675523074
-16055	599	9810	1.85367980178975	1.85367980178975
-16057	4648	9242	0.316343707887743	0.316343707887743
-16530	9931	9230	0.37930803087461	0.37930803087461
-16060	8979	9416	0.148643981954463	0.148643981954463
-16062	9129	442	0.133338694466943	0.133338694466943
-16063	442	341	0.15400049730887	0.15400049730887
-16064	341	8432	0.0419891636299648	0.0419891636299648
-16066	8912	8951	0.033170976893888	0.033170976893888
-16068	9812	8911	0.0471463735469582	0.0471463735469582
-16070	8259	6154	0.322113932922047	0.322113932922047
-16072	8262	9813	0.347409770060633	0.347409770060633
-16073	9813	8849	0.384076686987265	0.384076686987265
-16075	8850	8934	0.249988221702048	0.249988221702048
-15149	1055	2652	0.0975577285651678	0.0975577285651678
-15178	9518	9519	0.0502534780761684	0.0502534780761684
-15150	2652	6953	0.198623612037648	0.198623612037648
-15152	9492	9502	0.376572648781266	0.376572648781266
-15156	3293	102	0.41551161582069	0.41551161582069
-15160	4010	9505	0.052772682936521	0.052772682936521
-15161	9505	7047	0.0525680538450832	0.0525680538450832
-15162	7047	7019	0.0303888581356532	0.0303888581356532
-15163	7019	9506	0.0673030688563473	0.0673030688563473
-15164	9506	9507	0.0483154741652978	0.0483154741652978
-15165	9507	7386	0.0202051235057141	0.0202051235057141
-16629	9962	9963	0.200783522780218	0.200783522780218
-15167	9508	9509	0.0505081496090435	0.0505081496090435
-15169	3381	9510	0.054679375210741	0.054679375210741
-15170	9510	9511	0.0487967465713328	0.0487967465713328
-15175	9515	9516	0.0511072604930319	0.0511072604930319
-15176	9516	9517	0.199298430530572	0.199298430530572
-15177	9517	9518	0.0506626460359665	0.0506626460359665
-15179	9519	9520	0.0992839733792875	0.0992839733792875
-2659	2617	2618	0.0492730897550554	0.0492730897550554
-15180	9520	5591	0.0515928611698618	0.0515928611698618
-15181	5591	9521	0.0485416940170638	0.0485416940170638
-15182	9521	7534	0.0495967074681937	0.0495967074681937
-15183	7534	9522	0.687013260502188	0.687013260502188
-15184	4010	253	0.115254186613677	0.115254186613677
-15185	253	9523	0.265666797076755	0.265666797076755
-16090	9493	9818	0.0359382002911722	0.0359382002911722
-16093	9805	9821	0.0110994776170347	0.0110994776170347
-16096	9495	9822	0.0517988653877033	0.0517988653877033
-16097	9822	9823	0.0110663007110829	0.0110663007110829
-16098	9823	525	0.0383908840803154	0.0383908840803154
-16099	525	9824	0.0469464980296333	0.0469464980296333
-16107	214	9827	0.778079889437356	0.778079889437356
-16108	9827	8266	0.110384878461573	0.110384878461573
-16109	8266	8259	0.22035773346297	0.22035773346297
-16111	426	5290	0.135279903383581	0.135279903383581
-16112	5290	6969	0.13394711160262	0.13394711160262
-16113	6969	9	0.133723176212026	0.133723176212026
-12362	8672	8673	0.0280927507040958	0.0280927507040958
-16114	9	6393	0.135759876984547	0.135759876984547
-16116	543	2417	0.140823258017981	0.140823258017981
-16117	2417	8309	0.134744289641959	0.134744289641959
-16121	9523	8323	0.0490645159279825	0.0490645159279825
-16122	8323	2296	0.111956296963114	0.111956296963114
-16123	2296	425	0.133707313641353	0.133707313641353
-16125	8580	9121	0.223068039429751	0.223068039429751
-16129	4649	7955	0.0999111170250792	0.0999111170250792
-16130	7955	9828	0.0800171872297717	0.0800171872297717
-16131	9829	8581	0.047687571765354	0.047687571765354
-16133	9073	1815	0.113861635058861	0.113861635058861
-16134	1815	9030	0.0294613091189667	0.0294613091189667
-16135	9030	9035	0.0740720067279475	0.0740720067279475
-16136	9035	2259	0.0101253625653209	0.0101253625653209
-16137	2259	6127	0.0869883467865613	0.0869883467865613
-16138	6127	3970	0.0982525233162176	0.0982525233162176
-16139	3970	4005	0.0213357195383616	0.0213357195383616
-16170	9839	7732	1.81004213705151	1.81004213705151
-16140	4005	9831	0.0527909920856998	0.0527909920856998
-16143	7028	9832	0.0518403992809488	0.0518403992809488
-16144	9832	1405	0.0193610465151665	0.0193610465151665
-16145	1405	9086	0.0330290864914803	0.0330290864914803
-16146	9086	9833	0.0517615954401031	0.0517615954401031
-16147	9833	7389	0.013992344500971	0.013992344500971
-16148	7389	7381	0.039974198258354	0.039974198258354
-16149	7381	5215	0.0612246627137571	0.0612246627137571
-16150	5215	3395	0.05711231452959	0.05711231452959
-16152	7953	9834	0.0172080507351113	0.0172080507351113
-16154	9834	274	0.0658337540289098	0.0658337540289098
-16156	2189	9835	0.248404343096233	0.248404343096233
-16214	8735	9837	1.99433693652165	1.99433693652165
-16215	8737	9838	0.871081020569746	0.871081020569746
-4419	2776	4130	0.131599235651272	0.131599235651272
-16159	9143	9028	0.680206597840058	0.680206597840058
-16163	722	8058	0.174054831255352	0.174054831255352
-16164	8058	521	0.0821177779256467	0.0821177779256467
-16165	521	6603	0.0924366308750619	0.0924366308750619
-16166	6603	5373	0.180047417371753	0.180047417371753
-16168	1948	2528	0.0688038536836977	0.0688038536836977
-16333	7146	2907	0.104983935013538	0.104983935013538
-16334	2907	7925	0.0494998939900097	0.0494998939900097
-16338	3444	3467	0.0304982971000002	0.0304982971000002
-16339	3467	8082	0.246312262462312	0.246312262462312
-16342	8704	8153	0.0931754474511838	0.0931754474511838
-16343	8153	7614	0.0941189496630448	0.0941189496630448
-16344	7614	7267	0.0948021938707784	0.0948021938707784
-16345	7267	7586	0.0921634745405222	0.0921634745405222
-16346	7586	7587	0.0431064926802277	0.0431064926802277
-16347	7587	2005	0.0500940428381568	0.0500940428381568
-16348	2005	3364	0.0956080752868491	0.0956080752868491
-16349	3364	2759	0.0936601356465838	0.0936601356465838
-16350	2759	7009	0.0948690491965415	0.0948690491965415
-16352	2285	3605	0.100419536914451	0.100419536914451
-16353	3605	7531	0.0985834303955712	0.0985834303955712
-16354	7531	2140	0.105692387990087	0.105692387990087
-16355	2140	5996	0.104777507715381	0.104777507715381
-16356	5996	7676	0.0990116406010299	0.0990116406010299
-16357	7676	9874	1.60848579675559	1.60848579675559
-17199	2711	10073	0.10997712384001	0.10997712384001
-16358	9875	2326	1.55889022258017	1.55889022258017
-16360	5997	2127	0.151773007567564	0.151773007567564
-16361	2127	3609	0.151558147644208	0.151558147644208
-16362	3609	7010	0.212760869396779	0.212760869396779
-16365	3365	2006	0.0553745270182344	0.0553745270182344
-16366	2006	7588	0.0502101113635407	0.0502101113635407
-16367	7588	7258	0.104315488387994	0.104315488387994
-16368	7258	7615	0.106145187491952	0.106145187491952
-16369	7615	9877	0.104437372352784	0.104437372352784
-16429	9892	3407	0.0665957848901693	0.0665957848901693
-16430	3407	9893	0.16801404607557	0.16801404607557
-16433	9895	9896	0.440540235104303	0.440540235104303
-16436	9897	9898	0.0704932318773383	0.0704932318773383
-16438	95	3655	0.111235679997702	0.111235679997702
-16440	9899	5747	0.0711149911978779	0.0711149911978779
-16445	9902	9903	0.536321309295718	0.536321309295718
-16453	9908	9909	0.550826257700494	0.550826257700494
-16458	9907	9908	0.00771583659604379	0.00771583659604379
-16460	9909	9912	0.0865311626257968	0.0865311626257968
-16461	9912	9910	0.0378168798460609	0.0378168798460609
-16471	3282	9916	0.18653100874984	0.18653100874984
-16473	9917	8680	0.0249041944601551	0.0249041944601551
-19510	10535	10536	0.0273195782326388	0.0273195782326388
-16475	8507	9918	0.021850852998121	0.021850852998121
-16476	9918	3018	0.0101317448895217	0.0101317448895217
-16478	9919	9920	0.0829003664734834	0.0829003664734834
-16479	9921	3681	0.0300651916457247	0.0300651916457247
-16668	9926	9974	0.105582813458159	0.105582813458159
-16669	9588	1633	0.0730557533632891	0.0730557533632891
-16671	9928	9975	0.0177169257267767	0.0177169257267767
-117	124	125	0.0336263849765442	0.0336263849765442
-16672	9975	9929	0.0234356081852519	0.0234356081852519
-16674	9976	9977	0.0468170562405583	0.0468170562405583
-16710	104	7825	0.0602462277844684	0.0602462277844684
-16712	104	3757	0.402008044434906	0.402008044434906
-16713	3757	1487	0.204145741130723	0.204145741130723
-16714	1487	132	0.199447130341484	0.199447130341484
-16716	1701	5546	0.198096603236586	0.198096603236586
-16777	69	3510	0.205561826495526	0.205561826495526
-4421	1201	4132	0.0220332988005433	0.0220332988005433
-16718	7283	485	0.11761309283436	0.11761309283436
-16720	10003	3244	0.0554692551325786	0.0554692551325786
-16721	3244	7234	0.20486059291662	0.20486059291662
-16722	7234	1896	0.200393401337734	0.200393401337734
-16723	1896	6106	0.199619177779868	0.199619177779868
-16724	6106	3190	0.204209613390108	0.204209613390108
-16725	3190	3074	0.20155062603718	0.20155062603718
-17204	10076	9899	0.140445516840247	0.140445516840247
-17206	10077	9891	0.365702001724341	0.365702001724341
-17210	9916	551	0.0168353379628002	0.0168353379628002
-17211	551	10077	0.029511971826839	0.029511971826839
-17221	9830	5174	0.203086414023487	0.203086414023487
-17225	7299	3774	0.0270450210392685	0.0270450210392685
-17227	10078	240	0.11490035547177	0.11490035547177
-17229	240	241	0.0697724132050665	0.0697724132050665
-17230	241	242	0.0623380559401012	0.0623380559401012
-17231	242	243	0.121807717540091	0.121807717540091
-17238	246	247	0.10870569104286	0.10870569104286
-17239	247	248	0.0772679392991742	0.0772679392991742
-17241	235	3406	0.0743704107751119	0.0743704107751119
-17242	3406	10079	0.167074762801468	0.167074762801468
-17244	331	10014	0.0356018290483491	0.0356018290483491
-17245	10014	8533	0.134990804356131	0.134990804356131
-17247	510	8534	0.190527366373376	0.190527366373376
-17249	9649	6335	0.0185334131201332	0.0185334131201332
-17250	6335	10080	0.0823637888630556	0.0823637888630556
-17251	10080	3812	0.199228355515768	0.199228355515768
-17252	3812	5918	0.151375161417453	0.151375161417453
-17254	917	2204	0.201707005619294	0.201707005619294
-17255	2204	4853	0.158074944552835	0.158074944552835
-17506	10119	8389	0.0881257330115891	0.0881257330115891
-17514	10115	4493	0.0857000040414071	0.0857000040414071
-17515	4493	10122	0.00789608138487867	0.00789608138487867
-17516	10122	10123	0.0829902602540724	0.0829902602540724
-17517	10123	3738	0.117121022748715	0.117121022748715
-16415	3033	3034	0.026586968802262	0.026586968802262
-17518	3738	5617	0.105494461178937	0.105494461178937
-17519	5617	10124	0.0771328841888806	0.0771328841888806
-18717	1848	7866	0.175365518810985	0.175365518810985
-17520	10124	3940	0.0438462962781839	0.0438462962781839
-18649	10111	1854	0.1585792263447	0.1585792263447
-17522	6651	7970	0.100526894140491	0.100526894140491
-17523	7970	10125	0.0156643759566378	0.0156643759566378
-17525	342	10126	0.0436005942347808	0.0436005942347808
-17527	10126	10121	0.0408685827486489	0.0408685827486489
-17529	8016	10127	0.0296331396909763	0.0296331396909763
-17533	9200	10128	0.0316360066553629	0.0316360066553629
-17535	10128	3937	0.0160944313012695	0.0160944313012695
-17537	10125	10129	0.0323384241188202	0.0323384241188202
-17540	8937	10130	0.0382349269331771	0.0382349269331771
-18160	6035	10256	0.201529974874074	0.201529974874074
-18081	3725	3961	0.10669546577579	0.10669546577579
-18082	3961	5599	0.120037242247265	0.120037242247265
-18083	5599	10212	0.0720417181829305	0.0720417181829305
-18085	6582	8060	0.177813026382298	0.177813026382298
-18087	79	3516	0.204359090736991	0.204359090736991
-18089	10257	1076	0.140362637117951	0.140362637117951
-18092	8839	10258	0.0505579939719693	0.0505579939719693
-18093	10258	1216	0.0474392361763922	0.0474392361763922
-18094	1216	6309	0.0509984491369365	0.0509984491369365
-18095	6309	4788	0.0491735679878017	0.0491735679878017
-18418	8332	8359	0.203675131612914	0.203675131612914
-18096	4788	10256	0.0504039235105897	0.0504039235105897
-18098	2169	10259	0.0494310424509836	0.0494310424509836
-18099	10259	6301	0.0486534339401342	0.0486534339401342
-18100	6301	10260	0.0495166429402865	0.0495166429402865
-18101	10260	6428	0.0494555977491468	0.0494555977491468
-18102	6428	10261	0.0500541316962619	0.0500541316962619
-18103	10261	8837	0.049703265213276	0.049703265213276
-18104	8837	10262	0.0487206483354329	0.0487206483354329
-18105	10262	4661	0.0502842889238415	0.0502842889238415
-18210	6766	8919	0.14588598272053	0.14588598272053
-18215	6383	6883	0.201049789723751	0.201049789723751
-18217	9380	6467	0.149037633666744	0.149037633666744
-18218	6467	5528	0.155039270882985	0.155039270882985
-18219	5528	5739	0.157509840329179	0.157509840329179
-18220	5739	2443	0.171457541049395	0.171457541049395
-18221	2443	9373	0.174175733096206	0.174175733096206
-18222	9373	1695	0.20076305206058	0.20076305206058
-18224	6884	8362	0.203398590237467	0.203398590237467
-18225	8362	8336	0.20070690829837	0.20070690829837
-18226	8336	7851	0.201718717149991	0.201718717149991
-18228	9334	6072	0.194542227529238	0.194542227529238
-18229	6072	2552	0.201793795787929	0.201793795787929
-18231	10282	2550	0.408975962052575	0.408975962052575
-18233	6070	9333	0.193859431649891	0.193859431649891
-18235	3976	7037	0.199530180994258	0.199530180994258
-200	212	213	0.0847562945477418	0.0847562945477418
-18390	3978	7038	0.19806787554915	0.19806787554915
-18392	3425	3425	0.000442266584977921	0.000442266584977921
-18397	9331	6062	0.201652000193759	0.201652000193759
-18398	6062	2541	0.201129932352607	0.201129932352607
-18581	5716	10279	0.0494611669239994	0.0494611669239994
-18582	10279	7436	0.0477007849303031	0.0477007849303031
-18583	7436	10283	0.0501702475316452	0.0501702475316452
-17420	10101	10103	0.0112555006692224	0.0112555006692224
-18584	10283	7175	0.0483500943699416	0.0483500943699416
-18585	7175	6738	0.0504392554289189	0.0504392554289189
-18586	6738	7790	0.0494479351051842	0.0494479351051842
-18587	7790	6666	0.0500428725179926	0.0500428725179926
-19485	10408	10409	0.0449233009136641	0.0449233009136641
-18958	4669	4949	0.0991091352300086	0.0991091352300086
-18959	4949	10410	0.051350182738824	0.051350182738824
-18961	7220	10411	0.0512063955237151	0.0512063955237151
-18962	10411	5674	0.0503168586815151	0.0503168586815151
-18964	5851	1441	0.115857091100705	0.115857091100705
-18965	1441	10412	0.122824478936007	0.122824478936007
-18966	10412	7622	0.0791461153811418	0.0791461153811418
-18967	7622	6933	0.202629079077677	0.202629079077677
-18968	6933	5888	0.202049147826104	0.202049147826104
-18969	5888	10407	0.149951393120126	0.149951393120126
-18971	4142	7756	0.106122091000002	0.106122091000002
-18973	3621	1827	0.0998991515255571	0.0998991515255571
-18974	1827	10091	0.0457369036734835	0.0457369036734835
-18975	10091	10090	0.0485102588443954	0.0485102588443954
-18976	10090	5102	0.00428121670773934	0.00428121670773934
-18977	5102	9830	0.0472330884345854	0.0472330884345854
-18978	9830	1764	0.0499536922707767	0.0499536922707767
-19245	5031	10461	0.0349404698955745	0.0349404698955745
-19246	10461	10462	0.146091635323691	0.146091635323691
-19247	10462	5803	0.103032761304249	0.103032761304249
-19249	10129	4929	0.0162234814669486	0.0162234814669486
-19250	4929	2997	0.0775054077358341	0.0775054077358341
-19251	2997	7215	0.0556994645707447	0.0556994645707447
-19252	7215	4943	0.101417024663026	0.101417024663026
-19253	4943	4680	0.100527034724402	0.100527034724402
-19254	4680	7861	0.10148450975115	0.10148450975115
-19255	7861	5802	0.109659923162335	0.109659923162335
-19256	5802	8768	0.114010676979814	0.114010676979814
-19257	8768	10464	0.134804410176221	0.134804410176221
-19258	10464	338	0.0847524339031626	0.0847524339031626
-19259	338	10465	0.0582049460436449	0.0582049460436449
-19261	9467	561	0.02991036647086	0.02991036647086
-15187	8324	9523	0.0327715210342319	0.0327715210342319
-15189	9403	6744	0.131603339182178	0.131603339182178
-15190	6744	6144	0.131367316381262	0.131367316381262
-15191	6144	4018	0.137213550559119	0.137213550559119
-15192	4018	7022	0.137229962505115	0.137229962505115
-15193	7022	7392	0.129151524081427	0.129151524081427
-15195	9524	9525	0.0293502828068984	0.0293502828068984
-15196	9525	3400	0.0502879609443278	0.0502879609443278
-15198	9212	8374	0.0509876682022625	0.0509876682022625
-15199	8374	9526	0.0501407630476736	0.0501407630476736
-15201	7443	9527	0.0485275735168955	0.0485275735168955
-15202	9527	7160	0.0501690368011668	0.0501690368011668
-15204	9528	7772	0.0491757515961192	0.0491757515961192
-19414	3251	7295	0.215557365491205	0.215557365491205
-19415	7295	38	0.193056632398898	0.193056632398898
-19416	38	3537	0.207444876530122	0.207444876530122
-19417	3537	4232	0.199406339345135	0.199406339345135
-19419	3248	7289	0.216790622749105	0.216790622749105
-19420	7289	34	0.19126988034169	0.19126988034169
-19660	6763	3987	0.201101495268523	0.201101495268523
-19664	9366	9360	0.104402218346712	0.104402218346712
-19665	9360	10609	0.0511942469588291	0.0511942469588291
-19666	10609	10608	0.151226661870126	0.151226661870126
-19668	10608	10610	0.149537813443153	0.149537813443153
-19674	1809	10611	0.33816836736717	0.33816836736717
-19676	10376	10403	0.0245741855053009	0.0245741855053009
-19678	10612	1810	0.127204321184034	0.127204321184034
-19681	10613	10400	0.0511661482023126	0.0511661482023126
-16697	7094	9611	0.00886963723885407	0.00886963723885407
-19683	10614	10404	0.0688061700167682	0.0688061700167682
-19873	9513	4580	0.132311871209248	0.132311871209248
-19684	10404	10611	0.093589959625359	0.093589959625359
-17421	10103	10082	0.0236886540751766	0.0236886540751766
-19685	10611	10612	0.0295914472405657	0.0295914472405657
-19686	10612	10614	0.0207133170517971	0.0207133170517971
-19688	10615	10399	0.0680853608411523	0.0680853608411523
-19742	8865	3778	0.153182304960692	0.153182304960692
-19743	3778	10251	0.199472712546792	0.199472712546792
-20418	10775	10774	0.0781617215430941	0.0781617215430941
-19804	10646	2619	0.0523061501297365	0.0523061501297365
-19839	10655	10656	0.208642261382715	0.208642261382715
-19840	10656	9515	0.207256465232075	0.207256465232075
-19841	9515	4581	0.131476935756536	0.131476935756536
-19842	4581	8369	0.136571452698726	0.136571452698726
-19843	8369	5296	0.134437189399661	0.134437189399661
-19849	9510	10659	0.196832023994668	0.196832023994668
-19850	10659	10660	0.00933491084100046	0.00933491084100046
-19857	10663	10664	0.203268481110854	0.203268481110854
-19858	10664	4584	0.340902950197611	0.340902950197611
-19859	4584	6443	0.133958738324445	0.133958738324445
-19860	6443	5300	0.13749324562242	0.13749324562242
-19862	10665	7406	0.149893826243372	0.149893826243372
-19865	10667	9512	0.206545737430627	0.206545737430627
-608	599	600	0.326867712180581	0.326867712180581
-19870	10669	10666	0.0946602410525992	0.0946602410525992
-19871	10666	10670	0.114297265097593	0.114297265097593
-19872	10670	9513	0.206208296842551	0.206208296842551
-20654	6734	10882	0.0587106683934502	0.0587106683934502
-19874	4580	8368	0.136014360939856	0.136014360939856
-19875	8368	3817	0.133956606983629	0.133956606983629
-19887	627	10669	0.00369254651812945	0.00369254651812945
-19888	10669	10673	0.0509541857454109	0.0509541857454109
-19889	10673	7185	0.0463624089792375	0.0463624089792375
-19890	7185	10655	0.00294147338451417	0.00294147338451417
-19891	10655	10658	0.0513792379314705	0.0513792379314705
-19892	10658	9726	0.0479329871824602	0.0479329871824602
-19893	9726	10654	0.050711837363241	0.050711837363241
-19894	10654	1102	0.049608905570541	0.049608905570541
-19895	1102	10674	0.051538155846358	0.051538155846358
-19896	10674	7514	0.0472454257465845	0.0472454257465845
-19897	7514	10675	0.00204366911425749	0.00204366911425749
-19898	10675	10650	0.0481859646371305	0.0481859646371305
-19899	10650	3868	0.0500586048613679	0.0500586048613679
-16182	5547	1702	0.197838014226301	0.197838014226301
-19900	3868	10663	0.00177015306197821	0.00177015306197821
-19902	10676	5589	0.0437900336804139	0.0437900336804139
-19975	9710	10678	0.0499234178433857	0.0499234178433857
-19976	10678	9722	0.0489092169162438	0.0489092169162438
-19977	9722	10686	0.0503973293919778	0.0503973293919778
-19978	10686	3380	0.0518081278246911	0.0518081278246911
-19979	3380	10660	0.0523052391085021	0.0523052391085021
-19980	10660	10679	0.0495088072044065	0.0495088072044065
-19981	10679	10667	0.0507313759263116	0.0507313759263116
-19982	10667	10670	0.0483586645716411	0.0483586645716411
-19983	10670	10680	0.0518679752837857	0.0518679752837857
-19984	10680	10656	0.050123635320888	0.050123635320888
-19985	10656	10657	0.0496280116055878	0.0496280116055878
-19986	10657	9727	0.0488069327339047	0.0488069327339047
-19989	1103	10684	0.0492526075164636	0.0492526075164636
-656	646	647	0.146781335789774	0.146781335789774
-20153	9416	8943	0.363005134814212	0.363005134814212
-20155	9241	426	0.0770893533882784	0.0770893533882784
-20157	461	6171	0.271278721099677	0.271278721099677
-20161	1795	8719	0.00999704268874585	0.00999704268874585
-20163	4233	1795	0.205432809418909	0.205432809418909
-20165	3252	7296	0.216277689734072	0.216277689734072
-20166	7296	39	0.192678596239665	0.192678596239665
-20167	39	3538	0.207091579860447	0.207091579860447
-20168	3538	4234	0.200695550258567	0.200695550258567
-20170	6489	3675	0.150803028705812	0.150803028705812
-20172	9313	4863	0.191918567433925	0.191918567433925
-20173	4863	2213	0.160028953629168	0.160028953629168
-20174	2213	928	0.187511558441934	0.187511558441934
-17423	10083	10104	0.109040593432451	0.109040593432451
-20175	928	5932	0.175834480120689	0.175834480120689
-20176	5932	3804	0.153555987473657	0.153555987473657
-20178	3804	10247	0.200040701273324	0.200040701273324
-20181	6549	4768	0.17858020416066	0.17858020416066
-20185	10705	8247	0.0550533285282311	0.0550533285282311
-15205	7772	9040	0.0507978153373748	0.0507978153373748
-15206	9040	1113	0.0497891730866418	0.0497891730866418
-15208	9529	7493	0.0494909698776819	0.0494909698776819
-15209	7493	9169	0.051731129981418	0.051731129981418
-15210	9169	3835	0.0502567043103765	0.0502567043103765
-15212	5624	3708	0.103423232464888	0.103423232464888
-15213	3708	718	0.104893137935114	0.104893137935114
-15214	718	9442	0.108559355644902	0.108559355644902
-15215	9442	8519	0.0865482797270432	0.0865482797270432
-15218	539	540	0.260599478311813	0.260599478311813
-15220	9430	9531	0.0962600395709663	0.0962600395709663
-15232	8334	8360	0.0525484415568663	0.0525484415568663
-15234	9532	9533	0.00803607126282377	0.00803607126282377
-16285	2852	1362	0.131790180095648	0.131790180095648
-15236	9534	9535	0.0751513734309232	0.0751513734309232
-15237	9535	9536	0.0195917533971332	0.0195917533971332
-15238	9536	9537	0.0515491230280822	0.0515491230280822
-18878	3216	6125	0.202386413121619	0.202386413121619
-15239	9537	9538	0.0217956250277941	0.0217956250277941
-15248	8177	9543	0.0137987617761691	0.0137987617761691
-15249	9541	9542	0.0585754347953461	0.0585754347953461
-15262	9552	9550	0.00461416645458039	0.00461416645458039
-15263	9550	8208	0.00942903742084459	0.00942903742084459
-15264	8208	8203	0.268586250441468	0.268586250441468
-15265	8203	8187	0.252138571661244	0.252138571661244
-15267	8182	9552	0.0592295781497915	0.0592295781497915
-15275	9553	392	0.159342904018314	0.159342904018314
-15276	392	443	0.100075433980265	0.100075433980265
-15277	443	8209	0.110751336507506	0.110751336507506
-15278	3258	9554	0.029060284587417	0.029060284587417
-15279	9555	9556	0.0194857519875014	0.0194857519875014
-15280	9556	9557	0.01686832436596	0.01686832436596
-15284	9558	8799	0.0124547414515574	0.0124547414515574
-15287	9268	8812	0.43752637477907	0.43752637477907
-15372	9568	7345	0.407049578137861	0.407049578137861
-15373	7345	7369	0.0183549065123627	0.0183549065123627
-15374	7369	7156	0.617874851338927	0.617874851338927
-15375	7156	8802	0.0193374199518318	0.0193374199518318
-15376	8802	7317	0.278372348360029	0.278372348360029
-15377	7317	7975	0.104085714382657	0.104085714382657
-15378	7975	8806	0.102424669696849	0.102424669696849
-20689	10900	10890	0.00428101320774671	0.00428101320774671
-15380	2642	4108	0.0801282359532547	0.0801282359532547
-15882	9238	9569	0.375213941828735	0.375213941828735
-4422	4132	3782	0.199943657895071	0.199943657895071
-15381	4108	7064	0.0951259934580263	0.0951259934580263
-15383	993	9570	0.0346111476896159	0.0346111476896159
-15385	9570	2914	0.0185752046128979	0.0185752046128979
-15393	9572	9573	0.0529385333780706	0.0529385333780706
-15394	9574	9575	0.235820407161737	0.235820407161737
-15395	8031	9576	0.0470934184180165	0.0470934184180165
-15396	9577	9578	0.0233972200853265	0.0233972200853265
-15398	8797	9577	0.0680401949692739	0.0680401949692739
-15404	9583	9584	0.0189997554494897	0.0189997554494897
-15413	8399	9591	0.147004287358107	0.147004287358107
-15414	9591	9592	0.0201167087704522	0.0201167087704522
-15415	9592	8857	0.127975925737851	0.127975925737851
-15416	8857	7897	0.144523217943683	0.144523217943683
-15864	9238	9744	0.017876559138977	0.017876559138977
-765	765	766	0.102953430637808	0.102953430637808
-15417	7897	8290	0.14604137147811	0.14604137147811
-15418	8290	8283	0.146330295926468	0.146330295926468
-15419	8283	9593	0.142033870447888	0.142033870447888
-15420	9593	5781	0.00569268198805717	0.00569268198805717
-15421	5781	8573	0.144843439528192	0.144843439528192
-15422	8573	6709	0.145981160506706	0.145981160506706
-15423	6709	8489	0.147059173742998	0.147059173742998
-20690	10890	10906	0.00389182243300479	0.00389182243300479
-15424	8489	9595	0.146421765893647	0.146421765893647
-15425	9595	8637	0.147888642293711	0.147888642293711
-15427	4935	9590	0.0193454164735318	0.0193454164735318
-15430	8608	1478	0.0099286705971119	0.0099286705971119
-15433	7965	9599	0.0149228575371813	0.0149228575371813
-15434	9599	9600	0.0470176213777162	0.0470176213777162
-16271	9867	94	0.0502509464237392	0.0502509464237392
-16273	9867	3654	0.100162413874862	0.100162413874862
-15435	9600	9601	0.0734739685688771	0.0734739685688771
-15436	9601	9602	0.120469898327734	0.120469898327734
-15474	9617	9618	0.0309123358720865	0.0309123358720865
-15475	9618	9620	0.138252717835719	0.138252717835719
-15476	9620	8583	0.0318418680569216	0.0318418680569216
-15477	8583	8311	0.113486958547973	0.113486958547973
-15478	8311	2808	0.019311822890669	0.019311822890669
-15479	2808	9621	0.209882261055166	0.209882261055166
-15480	9621	8522	0.0161981079077479	0.0161981079077479
-15481	8522	8465	0.180991531047255	0.180991531047255
-15487	9624	8468	0.0340418553637742	0.0340418553637742
-15786	9625	9596	0.0115036173464072	0.0115036173464072
-15489	9626	9618	0.0131866115872677	0.0131866115872677
-15494	4937	9617	0.0698272217766147	0.0698272217766147
-15496	9628	9607	0.229575641341845	0.229575641341845
-15497	9607	9629	0.399617180847297	0.399617180847297
-15498	9629	8646	0.256050430773093	0.256050430773093
-15500	9630	7969	0.0158758080194332	0.0158758080194332
-20692	10907	5885	0.00586950671491746	0.00586950671491746
-20693	5885	10908	0.00728749668565428	0.00728749668565428
-15501	7969	6652	0.0898251140375734	0.0898251140375734
-15502	6652	3939	0.0164838165497055	0.0164838165497055
-15504	5618	2286	0.10606737169151	0.10606737169151
-15506	4494	9631	0.0855716406365801	0.0855716406365801
-15508	9632	9630	0.0305358161263308	0.0305358161263308
-15510	9633	4938	0.00998098524134014	0.00998098524134014
-15511	4938	6650	0.146459053749354	0.146459053749354
-15512	6650	3942	0.0669626682021978	0.0669626682021978
-15513	3942	9634	0.0625685122990456	0.0625685122990456
-15514	9634	5614	0.0589940973382129	0.0589940973382129
-15515	5614	9635	0.0521244888471325	0.0521244888471325
-15518	9636	9633	0.0394950652718853	0.0394950652718853
-15520	9637	4687	0.0148908622684888	0.0148908622684888
-15522	5369	9637	0.0293813837370069	0.0293813837370069
-15524	9638	4939	0.016179725599566	0.016179725599566
-15525	4939	7226	0.0545709952111213	0.0545709952111213
-15526	7226	9640	0.0899454990944897	0.0899454990944897
-15527	9640	6648	0.0447546990135401	0.0447546990135401
-15528	6648	9641	0.0618904241631349	0.0618904241631349
-15529	9641	3943	0.062420581454241	0.062420581454241
-15530	3943	9642	0.0627968141202241	0.0627968141202241
-15531	9642	5613	0.0612320254822175	0.0612320254822175
-15532	5613	9643	0.0497740720528068	0.0497740720528068
-15533	9643	3735	0.0551525120669933	0.0551525120669933
-15534	3735	4491	0.207391837271035	0.207391837271035
-15535	4491	129	0.109629298465467	0.109629298465467
-15536	129	7948	0.0410521986313786	0.0410521986313786
-15537	7948	2527	0.287151637527745	0.287151637527745
-15538	2527	9644	0.066959748271427	0.066959748271427
-15539	9644	1221	0.102833533420687	0.102833533420687
-16595	9951	6712	0.00734129639736197	0.00734129639736197
-15542	618	9638	0.0309196803723069	0.0309196803723069
-15548	9647	9648	0.0291957554146951	0.0291957554146951
-15549	7572	9649	0.0425327114545183	0.0425327114545183
-15551	9650	9651	0.00414955523410263	0.00414955523410263
-15553	9651	9652	0.0110054302366685	0.0110054302366685
-15555	9652	9653	0.018743029705938	0.018743029705938
-15558	9656	4160	0.0156451635843959	0.0156451635843959
-15559	4160	4769	0.262100180691146	0.262100180691146
-15560	4769	6550	0.17763389531497	0.17763389531497
-15561	6550	9299	0.171507609467602	0.171507609467602
-15564	3803	5934	0.15587305192408	0.15587305192408
-15565	5934	930	0.176935041153743	0.176935041153743
-15566	930	2215	0.185037322727603	0.185037322727603
-15567	2215	4865	0.15888388268895	0.15888388268895
-15568	4865	9477	0.193757182508649	0.193757182508649
-15569	9477	5466	0.16958064463752	0.16958064463752
-15570	5466	9658	0.179556785798918	0.179556785798918
-15571	9658	9659	0.177338892845698	0.177338892845698
-15572	9659	662	0.00516539932395329	0.00516539932395329
-18431	10291	7169	0.0508784288394603	0.0508784288394603
-15573	662	9660	0.00343592323317494	0.00343592323317494
-15575	9464	4609	0.17585408606	0.17585408606
-15576	4609	6490	0.148161596916065	0.148161596916065
-15577	6490	7974	0.0885778987826885	0.0885778987826885
-15579	4336	9656	0.0458791064556152	0.0458791064556152
-15581	7573	3556	0.0299599314208067	0.0299599314208067
-15583	851	7096	0.0990470064031014	0.0990470064031014
-15584	7096	9661	0.0107677923604542	0.0107677923604542
-15585	9661	9662	0.0081027242638239	0.0081027242638239
-15586	9662	9663	0.00747970901198794	0.00747970901198794
-15587	9663	9664	0.00836437719840195	0.00836437719840195
-15588	9664	9665	0.00928103292942469	0.00928103292942469
-15589	9665	9666	0.00696482735297281	0.00696482735297281
-15590	9666	9667	0.00676039634627663	0.00676039634627663
-15591	9667	9668	0.00737940382126904	0.00737940382126904
-15592	9668	9669	0.0330209265296029	0.0330209265296029
-15593	9669	8703	0.0154036792176203	0.0154036792176203
-15594	8703	8152	0.0935877668611654	0.0935877668611654
-15595	8152	7613	0.0937841622026169	0.0937841622026169
-15596	7613	7266	0.0918493440897444	0.0918493440897444
-15597	7266	7585	0.0967046653962524	0.0967046653962524
-15599	2003	3363	0.0896469251714999	0.0896469251714999
-15600	3363	2757	0.0953909752557553	0.0953909752557553
-15601	2757	9670	0.0852737689905025	0.0852737689905025
-15602	9670	9671	0.00427910266137011	0.00427910266137011
-15603	9671	7008	0.00522846022655691	0.00522846022655691
-15604	7008	9672	0.00318311155269209	0.00318311155269209
-15605	9672	9673	0.00446550904917084	0.00446550904917084
-15606	9673	9674	0.0041674932546887	0.0041674932546887
-15607	9674	2283	0.0902343315694916	0.0902343315694916
-15608	2283	3604	0.0998061678618656	0.0998061678618656
-15609	3604	7530	0.0990712121378624	0.0990712121378624
-15610	7530	2138	0.109343720002506	0.109343720002506
-15611	2138	5995	0.0993207600682094	0.0993207600682094
-15612	5995	7675	0.101107003151938	0.101107003151938
-15613	7675	9675	0.0981911301047578	0.0981911301047578
-15614	9675	9676	0.100210056589884	0.100210056589884
-15615	9676	9677	0.100165741773797	0.100165741773797
-15616	9677	9678	0.100142214318315	0.100142214318315
-15617	9678	9679	0.0993326168253197	0.0993326168253197
-899	913	914	0.147143450226327	0.147143450226327
-20715	10914	9397	0.00810191720556871	0.00810191720556871
-15619	9680	9681	0.102717909771226	0.102717909771226
-15620	9681	9682	0.100023276858498	0.100023276858498
-15621	9682	9683	0.100843312370816	0.100843312370816
-15622	9683	9684	0.101658088937986	0.101658088937986
-15623	9684	9685	0.0375181649725389	0.0375181649725389
-15624	9685	9686	0.0593326737516342	0.0593326737516342
-15625	9686	9687	0.102011015676098	0.102011015676098
-15627	9688	9689	0.110065273053945	0.110065273053945
-15628	9689	9690	0.109733851792721	0.109733851792721
-15629	9690	9691	0.0939207749458389	0.0939207749458389
-15630	9691	9692	0.102876500148466	0.102876500148466
-15631	9692	9693	0.0940860472810003	0.0940860472810003
-15633	851	7096	0.0990470064031014	0.0990470064031014
-15634	7096	9661	0.0107677923604542	0.0107677923604542
-15635	9661	9662	0.0081027242638239	0.0081027242638239
-15636	9662	9663	0.00747970901198794	0.00747970901198794
-15637	9663	9664	0.00836437719840195	0.00836437719840195
-15638	9664	9665	0.00928103292942469	0.00928103292942469
-15639	9665	9666	0.00696482735297281	0.00696482735297281
-15641	9667	9668	0.00737940382126904	0.00737940382126904
-15642	9668	9669	0.0330209265296029	0.0330209265296029
-15644	8703	8152	0.0935877668611654	0.0935877668611654
-20716	9397	9341	0.0111932287865196	0.0111932287865196
-15645	8152	7613	0.0937841622026169	0.0937841622026169
-15646	7613	7266	0.0918493440897444	0.0918493440897444
-15647	7266	7585	0.0967046653962524	0.0967046653962524
-15648	7585	2003	0.0946559616738872	0.0946559616738872
-15649	2003	3363	0.0896469251714999	0.0896469251714999
-15650	3363	2757	0.0953909752557553	0.0953909752557553
-15651	2757	9670	0.0852737689905025	0.0852737689905025
-15652	9670	9671	0.00427910266137011	0.00427910266137011
-15653	9671	7008	0.00522846022655691	0.00522846022655691
-15654	7008	9672	0.00318311155269209	0.00318311155269209
-15655	9672	9673	0.00446550904917084	0.00446550904917084
-15656	9673	9674	0.0041674932546887	0.0041674932546887
-15657	9674	2283	0.0902343315694916	0.0902343315694916
-15658	2283	3604	0.0998061678618656	0.0998061678618656
-15659	3604	7530	0.0990712121378624	0.0990712121378624
-940	955	956	0.0467857248690536	0.0467857248690536
-15660	7530	2138	0.109343720002506	0.109343720002506
-15661	2138	5995	0.0993207600682094	0.0993207600682094
-15663	7675	9675	0.0981911301047578	0.0981911301047578
-15664	9675	9676	0.100210056589884	0.100210056589884
-15665	9676	9677	0.100165741773797	0.100165741773797
-15666	9677	9678	0.100142214318315	0.100142214318315
-20717	9341	10910	0.0086655068036058	0.0086655068036058
-15667	9678	9679	0.0993326168253197	0.0993326168253197
-15668	9679	9680	0.101799223111765	0.101799223111765
-15669	9680	9681	0.102717909771226	0.102717909771226
-15670	9681	9682	0.100023276858498	0.100023276858498
-15671	9682	9683	0.100843312370816	0.100843312370816
-15672	9683	9684	0.101658088937986	0.101658088937986
-15673	9684	9685	0.0375181649725389	0.0375181649725389
-15675	9686	9687	0.102011015676098	0.102011015676098
-15676	9687	9688	0.091295408872665	0.091295408872665
-15677	9688	9689	0.110065273053945	0.110065273053945
-15678	9689	9690	0.109733851792721	0.109733851792721
-15679	9690	9691	0.0939207749458389	0.0939207749458389
-15680	9691	9692	0.102876500148466	0.102876500148466
-15681	9692	9693	0.0940860472810003	0.0940860472810003
-15684	7680	3450	0.103468199661171	0.103468199661171
-15686	6014	3880	0.103612570358144	0.103612570358144
-15687	3880	842	0.103458609408344	0.103458609408344
-15688	842	7097	0.103202015659942	0.103202015659942
-15689	7097	9694	0.047717886337947	0.047717886337947
-15690	9694	8693	0.0153273459011852	0.0153273459011852
-15691	8693	8154	0.0909950973067502	0.0909950973067502
-15692	8154	7616	0.0940844002869557	0.0940844002869557
-20719	10885	9398	0.0070860203578635	0.0070860203578635
-15693	7616	7269	0.0941699315585107	0.0941699315585107
-15695	2024	3357	0.101537173300766	0.101537173300766
-15696	3357	2761	0.09936727049288	0.09936727049288
-15697	2761	7002	0.0992423706702366	0.0992423706702366
-15698	7002	2264	0.0979906184711561	0.0979906184711561
-15699	2264	3594	0.0994063483699449	0.0994063483699449
-15700	3594	7517	0.101662572945496	0.101662572945496
-15701	7517	2099	0.100157096238172	0.100157096238172
-15702	2099	5976	0.101294873446063	0.101294873446063
-15703	5976	7666	0.100715370574341	0.100715370574341
-15705	2329	9695	0.166702045988164	0.166702045988164
-15706	8023	8686	0.102850512121315	0.102850512121315
-15708	8810	7064	0.0240522165973304	0.0240522165973304
-15710	8803	7155	0.0191394427517654	0.0191394427517654
-15711	7155	6281	0.12107437233707	0.12107437233707
-15712	6281	1050	0.111583194341316	0.111583194341316
-15714	3913	3150	0.158539469564201	0.158539469564201
-15715	3150	3124	0.0198304894474349	0.0198304894474349
-15716	3124	7370	0.0954616596060542	0.0954616596060542
-15717	7370	7346	0.018354860843617	0.018354860843617
-15718	7346	6806	0.0981383819816197	0.0981383819816197
-15719	6806	6802	0.0198184437093697	0.0198184437093697
-15720	6802	4711	0.111589534373845	0.111589534373845
-15721	4711	782	0.0471200606837116	0.0471200606837116
-15722	782	5113	0.0527296074626885	0.0527296074626885
-15723	5113	1545	0.0490000601275782	0.0490000601275782
-15724	1545	6325	0.0500984428583215	0.0500984428583215
-15728	9449	9696	0.165726699390797	0.165726699390797
-15732	8801	5164	0.779026857141219	0.779026857141219
-15734	9303	1207	0.168708605950551	0.168708605950551
-15735	1207	9698	0.0215813490172367	0.0215813490172367
-15736	9698	3771	0.199072281764282	0.199072281764282
-15738	8867	958	0.177734005515433	0.177734005515433
-15739	958	9420	0.172099550054797	0.172099550054797
-15740	9420	4896	0.162799282631442	0.162799282631442
-15741	4896	9470	0.183516274472291	0.183516274472291
-15742	9470	5493	0.174731799993968	0.174731799993968
-15743	5493	9699	0.19822011575815	0.19822011575815
-15745	6718	4833	0.101679501011927	0.101679501011927
-15746	4833	6378	0.103648655421083	0.103648655421083
-15747	6378	3188	0.103521991883946	0.103521991883946
-15749	8692	1060	0.0921643567251203	0.0921643567251203
-15750	1060	1697	0.0932426366322247	0.0932426366322247
-15751	1697	7268	0.0954492333486145	0.0954492333486145
-15752	7268	6671	0.0907592732101769	0.0907592732101769
-15754	2023	3356	0.0971424118361729	0.0971424118361729
-15756	2760	7001	0.10039029368168	0.10039029368168
-15757	7001	2263	0.0995790205304853	0.0995790205304853
-15758	2263	3487	0.100064167822274	0.100064167822274
-15760	5346	2098	0.0987082712844417	0.0987082712844417
-15761	2098	2940	0.101254724790906	0.101254724790906
-15763	6814	9700	0.201962621208867	0.201962621208867
-15766	9701	9702	0.01946308379228	0.01946308379228
-15767	9702	7793	0.0917115184551997	0.0917115184551997
-15768	7793	9703	0.0139663687397926	0.0139663687397926
-15769	9703	9044	0.0844498524584079	0.0844498524584079
-15770	9044	1093	0.00878466321187049	0.00878466321187049
-15771	1093	7489	0.0946907062423257	0.0946907062423257
-15772	7489	3839	0.0924847260791552	0.0924847260791552
-15773	3839	9041	0.00820472152594153	0.00820472152594153
-15774	9041	5598	0.0888252595207534	0.0888252595207534
-15775	5598	9038	0.0124773684874939	0.0124773684874939
-15776	9038	7546	0.0939528798953845	0.0939528798953845
-15817	9704	9705	0.0108623818240175	0.0108623818240175
-15777	7546	9706	0.691905770916309	0.691905770916309
-15800	1403	9709	0.0705866891174833	0.0705866891174833
-15801	9709	620	0.0978636674417251	0.0978636674417251
-15802	620	9710	0.210732715068668	0.210732715068668
-15803	9710	1934	0.00294671517895333	0.00294671517895333
-15812	9716	2323	0.0248152326425255	0.0248152326425255
-15814	9717	9718	0.0914794540174667	0.0914794540174667
-15815	9718	9719	0.0447183943765151	0.0447183943765151
-19498	10525	10526	0.0198486557174526	0.0198486557174526
-15816	9719	9704	0.266399501314719	0.266399501314719
-15823	622	9720	0.114642644128587	0.114642644128587
-15824	9720	9721	0.0112307689682394	0.0112307689682394
-15825	9721	9722	0.0869660670624723	0.0869660670624723
-15826	9722	9508	0.205466270114504	0.205466270114504
-15828	9723	8889	0.0324596924967659	0.0324596924967659
-15829	8889	7134	0.00993032916751998	0.00993032916751998
-15831	9724	9725	0.00760667507368999	0.00760667507368999
-15832	9725	9726	0.189210618262835	0.189210618262835
-15833	9726	9727	0.207046790394153	0.207046790394153
-19270	10423	10424	0.0241914475611954	0.0241914475611954
-435	364	434	0.342302602243315	0.342302602243315
-437	435	436	0.251313063977777	0.251313063977777
-438	291	437	0.00683009618704691	0.00683009618704691
-439	437	438	0.127267952892383	0.127267952892383
-18188	4070	6055	0.154839029661679	0.154839029661679
-2329	914	2297	0.0421335193471221	0.0421335193471221
-2331	2320	2321	0.0970544429847538	0.0970544429847538
-2332	2321	2325	0.106348268281835	0.106348268281835
-2334	2326	2327	0.097322097365987	0.097322097365987
-2335	2327	1153	0.100532392748858	0.100532392748858
-2338	2329	2330	0.176644411418714	0.176644411418714
-2339	2330	2331	0.174810883246149	0.174810883246149
-2340	2331	2332	0.246452825481674	0.246452825481674
-12346	8662	8663	0.00747381550039305	0.00747381550039305
-15258	8632	9548	0.0273148076656665	0.0273148076656665
-2341	2332	2333	0.239714451404855	0.239714451404855
-2342	2333	2334	0.0332654390408316	0.0332654390408316
-2344	2335	2336	0.129842641397919	0.129842641397919
-2346	2337	2338	0.0990445311811364	0.0990445311811364
-2348	2265	2339	0.101695232363891	0.101695232363891
-2349	2339	2340	0.100657111492997	0.100657111492997
-2350	2340	2100	0.0993531902440497	0.0993531902440497
-20593	3590	10852	0.00726410078461852	0.00726410078461852
-20595	10864	10861	0.0184079229928756	0.0184079229928756
-20596	10861	10869	0.0187971985012912	0.0187971985012912
-20598	10844	10816	0.176342451403751	0.176342451403751
-20599	10816	10784	0.0180725957817606	0.0180725957817606
-18882	3271	7310	0.200940882978518	0.200940882978518
-20600	10784	10835	0.00593511915863137	0.00593511915863137
-20602	2958	10836	0.0107685222165634	0.0107685222165634
-20605	10827	10870	0.0187474646325031	0.0187474646325031
-20606	10870	10871	0.0569206829492766	0.0569206829492766
-20746	10919	10920	0.0829974075948199	0.0829974075948199
-20607	10872	10858	0.118628394955246	0.118628394955246
-20609	2959	10837	0.0110654933350888	0.0110654933350888
-20610	10837	10819	0.0119664824389379	0.0119664824389379
-11704	1158	1159	0.143826308402294	0.143826308402294
-16709	10000	10001	0.0457062376473756	0.0457062376473756
-20652	9411	7929	0.0718148143148174	0.0718148143148174
-20655	4390	9954	0.0752796609482001	0.0752796609482001
-20656	9954	10883	0.0805000116188462	0.0805000116188462
-20657	10883	10884	0.00921180121982239	0.00921180121982239
-20658	10884	8289	0.0487008508548274	0.0487008508548274
-20660	5957	6482	0.0027689648671592	0.0027689648671592
-20661	6482	5774	0.120389794748458	0.120389794748458
-20662	5774	4620	0.0232425190443662	0.0232425190443662
-20663	4620	5809	0.169650245221728	0.169650245221728
-20664	5809	10472	0.013534248318244	0.013534248318244
-2394	2385	2386	0.330871173224232	0.330871173224232
-2396	2387	2072	0.091718253525282	0.091718253525282
-2398	2388	2389	0.0952556218940292	0.0952556218940292
-2399	2389	2390	0.088517954558777	0.088517954558777
-2400	2390	2391	0.100075566647637	0.100075566647637
-2401	2391	2392	0.0940014926636224	0.0940014926636224
-2402	2392	2394	0.0931645591460492	0.0931645591460492
-2403	2394	2395	0.0490422843236324	0.0490422843236324
-2404	2396	2397	0.101232025457682	0.101232025457682
-2405	2397	835	0.0985806787691326	0.0985806787691326
-2406	835	2398	0.196049611343252	0.196049611343252
-2407	2398	2399	0.0153233199302382	0.0153233199302382
-2408	2399	2400	0.00232458495354821	0.00232458495354821
-2412	2402	2403	0.0775441054784182	0.0775441054784182
-2415	2405	2406	0.101142772155656	0.101142772155656
-498	441	442	0.0937180388509973	0.0937180388509973
-500	443	444	0.0957304857475106	0.0957304857475106
-14680	445	446	0.198543865097556	0.198543865097556
-443	447	448	0.0518475604896436	0.0518475604896436
-446	450	451	0.1546192530483	0.1546192530483
-310	318	319	0.318271935051083	0.318271935051083
-447	451	452	0.176746748854474	0.176746748854474
-448	452	453	0.173946054533759	0.173946054533759
-449	453	454	0.161145911336434	0.161145911336434
-450	454	455	0.183605091547984	0.183605091547984
-452	456	457	0.174314536622101	0.174314536622101
-453	457	458	0.162044543484691	0.162044543484691
-454	458	459	0.182862983981988	0.182862983981988
-456	460	6	0.0823027301557762	0.0823027301557762
-1198	1212	1213	0.0683736094322978	0.0683736094322978
-465	266	468	0.155710664946604	0.155710664946604
-466	469	470	0.0207613766308904	0.0207613766308904
-468	471	472	0.378751941435673	0.378751941435673
-472	475	476	0.0306017516715067	0.0306017516715067
-474	477	478	0.142331986757376	0.142331986757376
-476	401	479	0.0792493107270532	0.0792493107270532
-480	481	482	0.61054856130416	0.61054856130416
-481	482	483	0.00751372921095178	0.00751372921095178
-482	483	484	0.0775332394520986	0.0775332394520986
-483	484	485	0.089248827005011	0.089248827005011
-17372	40	3540	0.206359755216492	0.206359755216492
-19502	10529	10530	0.0177249357864871	0.0177249357864871
-2653	2611	2612	0.141657164390576	0.141657164390576
-2654	2612	2613	0.112637909268372	0.112637909268372
-2655	2613	2614	0.0580743648208686	0.0580743648208686
-17439	9901	10107	0.0190863480039502	0.0190863480039502
-2656	2614	2615	0.100743891980042	0.100743891980042
-2657	2615	2616	0.100475490032633	0.100475490032633
-2658	2616	2617	0.0513770343819779	0.0513770343819779
-2660	2618	2619	0.0511386540650187	0.0511386540650187
-2661	2619	2620	0.0507766966271612	0.0507766966271612
-2662	2620	2621	0.0437935865590098	0.0437935865590098
-2664	2622	2623	0.138741239129278	0.138741239129278
-2665	2623	2624	0.0616812798954739	0.0616812798954739
-2666	2624	2625	0.041735581046466	0.041735581046466
-2668	2626	2627	0.080053274568439	0.080053274568439
-2669	2627	2628	0.0586986059075718	0.0586986059075718
-2672	2630	2631	0.0511347279443915	0.0511347279443915
-2673	2631	2632	0.0473711830288774	0.0473711830288774
-2701	1199	2633	0.0222472727939579	0.0222472727939579
-2800	2469	2753	0.205232670024875	0.205232670024875
-2801	2753	2754	0.200329673691245	0.200329673691245
-2802	2754	796	0.200317660350865	0.200317660350865
-2803	796	2755	0.202508246596186	0.202508246596186
-2804	2755	2756	0.202966691897007	0.202966691897007
-2805	2756	2757	0.203516573136303	0.203516573136303
-2806	2757	2758	0.206901705972361	0.206901705972361
-2807	2758	2759	0.18527317626533	0.18527317626533
-2809	2760	2761	0.172193089993048	0.172193089993048
-2810	2761	2337	0.176949778602699	0.176949778602699
-2811	2337	2762	0.175813497300624	0.175813497300624
-2812	2762	2763	0.241500363205236	0.241500363205236
-2813	2763	2764	0.135070479950714	0.135070479950714
-2814	2764	2765	0.106502558770285	0.106502558770285
-2815	2765	2766	0.0334927078919062	0.0334927078919062
-2816	2766	2767	0.200988096936329	0.200988096936329
-2817	2767	2768	0.200799068465386	0.200799068465386
-2819	2769	1141	0.136317655493671	0.136317655493671
-2820	1141	908	0.140881200888928	0.140881200888928
-1246	190	1268	0.101376125490378	0.101376125490378
-20670	10891	10892	0.0391113232197559	0.0391113232197559
-20671	10892	10893	0.0381065586329798	0.0381065586329798
-20672	10893	10894	0.00879572218910387	0.00879572218910387
-20673	10894	6880	0.00914047873035344	0.00914047873035344
-20675	10895	10896	0.0564298376836357	0.0564298376836357
-20676	10896	10897	0.0882221479591311	0.0882221479591311
-20677	10897	10898	0.0915468728847566	0.0915468728847566
-20678	10898	10889	0.0977975944203811	0.0977975944203811
-12368	8665	8670	0.0146509072378509	0.0146509072378509
-20679	10889	10899	0.0863988642991602	0.0863988642991602
-20680	10899	10900	0.00621581990565306	0.00621581990565306
-20682	10899	10901	0.0272487435286037	0.0272487435286037
-20683	10902	10892	0.0353963477419812	0.0353963477419812
-20685	10903	10904	0.0311951245060147	0.0311951245060147
-20686	10905	8231	0.00978569112678673	0.00978569112678673
-20687	8231	10753	0.00720642488718956	0.00720642488718956
-11	11	12	0.132606225003913	0.132606225003913
-13	13	14	0.261405445974353	0.261405445974353
-14	14	15	0.0524534751729061	0.0524534751729061
-15	15	16	0.0498286567506269	0.0498286567506269
-16	16	17	0.0506321145105979	0.0506321145105979
-17	17	18	0.0480115772672805	0.0480115772672805
-19	19	20	0.586520216245135	0.586520216245135
-21	22	23	0.0471109050306669	0.0471109050306669
-22	23	24	0.117066818844753	0.117066818844753
-25	26	27	0.131659873107185	0.131659873107185
-27	28	29	0.0945023300061256	0.0945023300061256
-28	29	32	0.0547795902237084	0.0547795902237084
-29	32	33	0.0472851468321661	0.0472851468321661
-30	33	34	0.0541728824006047	0.0541728824006047
-1	1	2	0.182682884421833	0.182682884421833
-31	34	35	0.0481653228438301	0.0481653228438301
-32	35	36	0.0518878807765827	0.0518878807765827
-34	37	38	0.0490317013211587	0.0490317013211587
-35	38	39	0.0492286314169291	0.0492286314169291
-36	39	40	0.0502550749626562	0.0502550749626562
-37	40	41	0.0504947813294015	0.0504947813294015
-19671	9367	10610	0.0557753987785757	0.0557753987785757
-38	41	42	0.0486093395250147	0.0486093395250147
-39	42	43	0.0502383575999221	0.0502383575999221
-40	43	44	0.0498102685006676	0.0498102685006676
-42	45	46	0.0520249865615885	0.0520249865615885
-43	46	47	0.0510850489044332	0.0510850489044332
-44	47	48	0.0480642310133195	0.0480642310133195
-45	48	49	0.0520776483582305	0.0520776483582305
-47	50	51	0.0661075861419648	0.0661075861419648
-48	51	52	0.0568810950926816	0.0568810950926816
-49	52	53	0.0608706853363099	0.0608706853363099
-50	53	54	0.0662114802606989	0.0662114802606989
-51	54	55	0.0474185291403829	0.0474185291403829
-52	55	56	0.0539297292184645	0.0539297292184645
-53	56	57	0.108686747732496	0.108686747732496
-54	57	58	0.187258749990905	0.187258749990905
-56	59	60	1.21682866156064	1.21682866156064
-58	62	65	0.111732852527499	0.111732852527499
-60	66	67	0.0462182288009238	0.0462182288009238
-61	67	68	0.0059633062869109	0.0059633062869109
-63	69	70	0.0080040379689871	0.0080040379689871
-65	71	72	0.00371377887510826	0.00371377887510826
-66	72	73	0.0481593874311522	0.0481593874311522
-67	73	74	0.0476872742951146	0.0476872742951146
-68	74	75	0.050981067010882	0.050981067010882
-69	75	76	0.047311096476864	0.047311096476864
-70	76	77	0.00343925081784597	0.00343925081784597
-71	77	78	0.0504851331557092	0.0504851331557092
-72	78	79	0.0447329738384301	0.0447329738384301
-73	79	80	0.00573274424924571	0.00573274424924571
-74	80	81	0.048934333458383	0.048934333458383
-75	81	82	0.0451562090400863	0.0451562090400863
-76	82	83	0.0525053441886158	0.0525053441886158
-77	83	84	0.0468507536792171	0.0468507536792171
-79	85	86	0.0489620579654281	0.0489620579654281
-80	86	87	0.056293962476598	0.056293962476598
-81	87	88	0.0565505675369976	0.0565505675369976
-82	88	89	0.049261447484153	0.049261447484153
-83	89	90	0.0461992376398338	0.0461992376398338
-84	90	91	0.0452410545911285	0.0452410545911285
-85	91	92	0.040125194779582	0.040125194779582
-86	92	93	0.0417705541366205	0.0417705541366205
-87	93	94	0.0307746903425865	0.0307746903425865
-88	94	95	0.0484715360122363	0.0484715360122363
-90	58	96	0.0988139178735054	0.0988139178735054
-91	96	97	0.101340345409915	0.101340345409915
-92	97	98	0.0883916436599661	0.0883916436599661
-93	98	99	0.0102766637725455	0.0102766637725455
-94	99	100	0.0815080239205417	0.0815080239205417
-95	100	101	0.0191432455952872	0.0191432455952872
-99	104	105	0.149790406602899	0.149790406602899
-100	106	107	0.104888043119077	0.104888043119077
-101	107	108	0.276057285299863	0.276057285299863
-103	109	110	0.318041485575751	0.318041485575751
-105	111	112	0.0487653491195207	0.0487653491195207
-106	113	114	0.160343090933149	0.160343090933149
-107	114	115	0.208121584183608	0.208121584183608
-111	118	119	0.137350395143796	0.137350395143796
-113	120	121	0.356240759753107	0.356240759753107
-114	121	122	0.149871853701347	0.149871853701347
-115	122	123	0.148228608040365	0.148228608040365
-116	123	124	0.294126045752515	0.294126045752515
-118	125	126	0.131313615022207	0.131313615022207
-119	126	127	0.263795049720844	0.263795049720844
-123	130	131	0.221071288024568	0.221071288024568
-125	132	133	0.0549684068983719	0.0549684068983719
-126	133	135	0.0478699749630446	0.0478699749630446
-127	135	136	0.130706329520293	0.130706329520293
-128	136	137	0.0495130025200929	0.0495130025200929
-129	137	138	0.0194653537975714	0.0194653537975714
-130	138	139	0.0302495949579548	0.0302495949579548
-131	139	140	0.097138516429268	0.097138516429268
-133	141	142	0.0984160429772276	0.0984160429772276
-1414	1439	1440	0.0969799596597411	0.0969799596597411
-135	143	144	0.094779584184767	0.094779584184767
-136	144	145	0.102947980955417	0.102947980955417
-137	145	146	0.0998791210708115	0.0998791210708115
-138	146	147	0.10354963170018	0.10354963170018
-139	147	148	0.0970503169891706	0.0970503169891706
-141	149	150	0.0462633170535789	0.0462633170535789
-142	150	151	0.0859494466376985	0.0859494466376985
-143	151	152	0.084056042435147	0.084056042435147
-144	152	131	0.0865811985903579	0.0865811985903579
-145	131	155	0.0846809008371401	0.0846809008371401
-146	155	156	0.0860732350550831	0.0860732350550831
-147	156	157	0.0810260254286054	0.0810260254286054
-148	157	158	0.0821650587696609	0.0821650587696609
-149	158	159	0.0810216994355951	0.0810216994355951
-150	159	160	0.0856058417834562	0.0856058417834562
-151	160	161	0.0815928873404902	0.0815928873404902
-152	161	162	0.00737779613210769	0.00737779613210769
-154	163	164	0.00763240627009494	0.00763240627009494
-155	164	165	0.0713522613021865	0.0713522613021865
-156	165	166	0.00987473687183569	0.00987473687183569
-157	166	167	0.0668981585963986	0.0668981585963986
-158	167	168	0.0113627652096004	0.0113627652096004
-159	168	169	0.0796520415458163	0.0796520415458163
-160	169	170	0.0789939822174276	0.0789939822174276
-161	170	171	0.0216393201096419	0.0216393201096419
-162	171	172	0.05739626274334	0.05739626274334
-163	172	173	0.0799414498698892	0.0799414498698892
-164	173	174	0.161327077814812	0.161327077814812
-165	174	175	0.292992058630926	0.292992058630926
-166	175	176	0.108231632340063	0.108231632340063
-167	176	177	0.106370208061557	0.106370208061557
-168	177	178	0.0920329418240447	0.0920329418240447
-169	178	179	0.199657740223053	0.199657740223053
-170	179	180	0.100614906430247	0.100614906430247
-1461	1483	1484	0.0976853528091841	0.0976853528091841
-171	180	181	0.0991515808605787	0.0991515808605787
-172	181	182	0.101348037813126	0.101348037813126
-175	184	185	0.0991513776470571	0.0991513776470571
-178	187	188	0.0984378662868895	0.0984378662868895
-179	188	189	0.709590130188447	0.709590130188447
-180	190	191	0.100578501060841	0.100578501060841
-181	191	192	0.0991218871214513	0.0991218871214513
-182	192	193	0.20342936542853	0.20342936542853
-183	193	194	0.207080695389682	0.207080695389682
-184	194	195	0.202642969626672	0.202642969626672
-185	195	196	0.201913108682536	0.201913108682536
-186	196	197	0.201920207523846	0.201920207523846
-187	197	198	0.201206377797867	0.201206377797867
-188	198	199	0.199728327239083	0.199728327239083
-189	199	200	0.179903776297828	0.179903776297828
-190	200	201	0.00513723410606708	0.00513723410606708
-191	201	202	0.207079558909688	0.207079558909688
-194	169	204	0.256940343045097	0.256940343045097
-195	204	205	0.14761309930181	0.14761309930181
-384	386	387	0.312847187378026	0.312847187378026
-197	208	209	0.0482198776992404	0.0482198776992404
-198	209	210	1.36238336075367	1.36238336075367
-199	211	212	0.0762056360151952	0.0762056360151952
-210	221	222	0.10839564681744	0.10839564681744
-212	223	224	0.197685755221764	0.197685755221764
-213	224	225	0.136500664002185	0.136500664002185
-215	226	227	0.0378358956085511	0.0378358956085511
-217	228	229	0.0700057652168164	0.0700057652168164
-218	229	230	0.156709235598665	0.156709235598665
-220	231	232	0.0710636642555904	0.0710636642555904
-223	234	235	0.0652725377045483	0.0652725377045483
-227	237	238	0.33099974682308	0.33099974682308
-19951	4950	4670	0.10032168356836	0.10032168356836
-229	239	240	0.145321847286165	0.145321847286165
-230	240	241	0.0697724132050665	0.0697724132050665
-231	241	242	0.0623380559401012	0.0623380559401012
-232	242	243	0.121807717540091	0.121807717540091
-233	243	244	0.123936016070967	0.123936016070967
-234	244	245	0.0423914167747626	0.0423914167747626
-235	245	30	0.0421885133223055	0.0421885133223055
-238	134	246	0.0735610173824186	0.0735610173824186
-246	253	254	0.386604280856974	0.386604280856974
-261	271	272	0.0791195509987444	0.0791195509987444
-262	272	273	0.0178978198366689	0.0178978198366689
-263	273	274	0.0364878269996901	0.0364878269996901
-264	274	275	0.130636800507014	0.130636800507014
-265	275	276	0.0381201943550558	0.0381201943550558
-272	282	283	0.097546663905458	0.097546663905458
-556	66	551	0.00841985913797999	0.00841985913797999
-557	551	552	0.04510313602044	0.04510313602044
-559	553	554	0.116858726253731	0.116858726253731
-562	249	556	0.0347143242166075	0.0347143242166075
-563	557	250	0.0320475892789012	0.0320475892789012
-581	573	574	3.62449911588374	3.62449911588374
-582	495	575	0.042579905853808	0.042579905853808
-583	575	576	0.0263063929759334	0.0263063929759334
-585	577	311	0.0472092453507094	0.0472092453507094
-587	578	579	0.310605662522472	0.310605662522472
-589	580	206	0.0784574482758401	0.0784574482758401
-591	581	582	0.323379230044806	0.323379230044806
-593	583	584	0.18304036244052	0.18304036244052
-595	585	586	0.0719402278196197	0.0719402278196197
-597	587	588	0.0168822192889414	0.0168822192889414
-599	589	590	0.0668977161070656	0.0668977161070656
-601	592	593	0.00991684169352972	0.00991684169352972
-606	597	598	0.0427315746706827	0.0427315746706827
-610	601	602	0.0635315500234909	0.0635315500234909
-611	602	603	0.0528935910157463	0.0528935910157463
-16699	9993	9994	0.012991856325609	0.012991856325609
-612	603	604	0.0535739683641864	0.0535739683641864
-615	606	307	0.0053241575287587	0.0053241575287587
-616	307	607	0.210415758379136	0.210415758379136
-618	608	609	0.0943257357645838	0.0943257357645838
-620	610	611	0.12631191015444	0.12631191015444
-621	611	612	0.121362330065702	0.121362330065702
-11699	1033	1034	0.0933842207119007	0.0933842207119007
-622	612	613	0.120087101438352	0.120087101438352
-623	613	614	0.109496386514743	0.109496386514743
-625	615	616	0.099485158811405	0.099485158811405
-626	616	617	0.0380723765849069	0.0380723765849069
-627	617	618	0.0166082915806853	0.0166082915806853
-629	619	620	0.0454138336035488	0.0454138336035488
-630	620	621	0.0942731398582661	0.0942731398582661
-631	621	622	0.00735436876666859	0.00735436876666859
-632	622	623	0.102647301082546	0.102647301082546
-633	623	544	0.0305138174261522	0.0305138174261522
-636	625	626	0.0461061908767262	0.0461061908767262
-637	626	627	0.0495093856599813	0.0495093856599813
-639	628	629	0.00822721040716169	0.00822721040716169
-640	629	630	0.102896638771385	0.102896638771385
-641	630	631	0.106879933016847	0.106879933016847
-642	631	632	0.103715813554019	0.103715813554019
-643	632	633	0.10692744992309	0.10692744992309
-644	633	634	0.103895780437174	0.103895780437174
-645	634	635	0.10514306949893	0.10514306949893
-647	636	637	0.00886536795801057	0.00886536795801057
-648	637	638	0.204097990393348	0.204097990393348
-649	638	639	0.00993994545767469	0.00993994545767469
-651	640	641	0.322116221139114	0.322116221139114
-653	643	644	0.14058289547664	0.14058289547664
-654	644	645	0.143886814663415	0.143886814663415
-657	647	648	0.1449055455771	0.1449055455771
-660	650	651	0.0986374455510098	0.0986374455510098
-661	651	652	0.109870142544629	0.109870142544629
-662	652	653	0.107278100090415	0.107278100090415
-663	653	654	0.105274765421146	0.105274765421146
-664	654	655	0.107321673078917	0.107321673078917
-665	655	659	0.103426909396494	0.103426909396494
-666	659	660	0.0476206970204551	0.0476206970204551
-667	660	661	0.0487580750629072	0.0487580750629072
-668	661	662	0.103115405190933	0.103115405190933
-669	662	663	0.118337011744519	0.118337011744519
-670	663	664	0.118107974454135	0.118107974454135
-671	664	665	0.223948343500364	0.223948343500364
-672	665	666	0.106040631048838	0.106040631048838
-673	666	667	0.0256000736542961	0.0256000736542961
-674	667	668	0.0803036973488277	0.0803036973488277
-675	668	669	0.107519240980512	0.107519240980512
-1662	1688	1689	0.0492594246995293	0.0492594246995293
-677	670	671	0.106757477563009	0.106757477563009
-678	671	672	0.103159385358598	0.103159385358598
-679	672	673	0.111733647900791	0.111733647900791
-680	673	674	0.10480806031483	0.10480806031483
-681	674	675	0.0524357665703955	0.0524357665703955
-682	675	676	0.0522607419390769	0.0522607419390769
-683	676	677	0.0516311575112871	0.0516311575112871
-684	677	678	0.0529566114294976	0.0529566114294976
-685	678	679	0.0524070698016137	0.0524070698016137
-686	679	680	0.187479766906081	0.187479766906081
-690	683	684	0.0954023275162926	0.0954023275162926
-691	684	685	0.100472575096637	0.100472575096637
-692	685	686	0.0954830683114717	0.0954830683114717
-693	686	687	0.0981912656165647	0.0981912656165647
-694	687	688	0.0529127579061837	0.0529127579061837
-695	688	689	0.097652475318391	0.097652475318391
-696	689	690	0.0954475604442949	0.0954475604442949
-697	690	691	1.04422795392214	1.04422795392214
-698	692	693	0.101491505067343	0.101491505067343
-700	694	695	0.0992328230839297	0.0992328230839297
-701	695	696	0.102484361376735	0.102484361376735
-703	697	698	0.0986965284486813	0.0986965284486813
-704	698	699	0.0994466333494717	0.0994466333494717
-705	699	700	0.0997814367951755	0.0997814367951755
-706	700	702	0.0968138925983087	0.0968138925983087
-707	702	703	0.100377700728806	0.100377700728806
-708	703	704	0.0945219805489684	0.0945219805489684
-709	704	705	0.101319162842739	0.101319162842739
-711	706	707	0.0929527445510612	0.0929527445510612
-712	707	708	0.132514897770158	0.132514897770158
-713	708	709	0.136169309583257	0.136169309583257
-714	709	710	0.133600704636896	0.133600704636896
-715	710	711	0.131877184107974	0.131877184107974
-716	711	712	0.137129048962243	0.137129048962243
-717	712	714	0.139625593223683	0.139625593223683
-718	714	715	0.140147388874583	0.140147388874583
-720	716	717	0.139181895573122	0.139181895573122
-721	717	718	0.136478657719685	0.136478657719685
-722	718	719	0.0608836584293049	0.0608836584293049
-723	719	720	0.0543052596791692	0.0543052596791692
-724	720	721	0.402215107963206	0.402215107963206
-726	722	723	0.109800761131151	0.109800761131151
-728	724	725	0.0404933936313706	0.0404933936313706
-729	725	726	0.0429068637575149	0.0429068637575149
-730	726	54	0.117488559492451	0.117488559492451
-732	728	729	0.201386679597364	0.201386679597364
-733	729	730	0.204011830144653	0.204011830144653
-734	730	731	0.199761692314281	0.199761692314281
-17425	10099	10083	0.0366406616748247	0.0366406616748247
-735	731	732	0.201563131430502	0.201563131430502
-736	732	733	0.402282143818784	0.402282143818784
-737	734	735	0.0902645098486118	0.0902645098486118
-738	735	736	0.0928507623233121	0.0928507623233121
-739	736	737	0.0900332912586976	0.0900332912586976
-740	737	738	0.0739532182409675	0.0739532182409675
-741	738	739	0.100409435325613	0.100409435325613
-742	739	740	0.0918337393875257	0.0918337393875257
-743	740	741	0.0605135925040139	0.0605135925040139
-744	741	744	0.09764928319827	0.09764928319827
-745	744	745	0.100176801141236	0.100176801141236
-746	745	746	0.0948931710062943	0.0948931710062943
-747	746	747	0.0932950961705344	0.0932950961705344
-748	747	748	0.0948942633213168	0.0948942633213168
-749	748	749	0.0880271421463829	0.0880271421463829
-750	749	750	0.101773658707536	0.101773658707536
-751	750	751	0.094781491782375	0.094781491782375
-752	751	752	0.0909312964030863	0.0909312964030863
-754	753	754	0.0476837940219257	0.0476837940219257
-755	754	755	0.0476837940207114	0.0476837940207114
-756	755	756	0.100492444483886	0.100492444483886
-760	760	761	0.278292588595779	0.278292588595779
-18241	8960	6768	0.145513824807152	0.145513824807152
-762	762	763	0.102174293003021	0.102174293003021
-763	763	764	0.0992571756698332	0.0992571756698332
-764	764	765	0.100622536912342	0.100622536912342
-766	766	767	0.101850111631528	0.101850111631528
-767	767	768	0.0961954013729948	0.0961954013729948
-768	768	769	0.207085640087389	0.207085640087389
-769	769	770	0.1068825400281	0.1068825400281
-770	770	771	0.105967528573409	0.105967528573409
-771	771	772	0.107278769323728	0.107278769323728
-772	772	199	0.0969401274978018	0.0969401274978018
-773	199	776	0.101328977128045	0.101328977128045
-774	776	777	0.0984004881984158	0.0984004881984158
-775	777	778	0.0991276696889056	0.0991276696889056
-779	784	785	0.101305408476756	0.101305408476756
-780	785	786	0.0976265458519536	0.0976265458519536
-781	786	787	0.0966903245975086	0.0966903245975086
-783	788	789	0.0146697046803596	0.0146697046803596
-784	789	790	0.0984239882007814	0.0984239882007814
-785	790	791	0.0942419953953979	0.0942419953953979
-786	791	792	0.0942417343682122	0.0942417343682122
-787	792	793	0.0942331855902031	0.0942331855902031
-789	794	795	0.0937138545964453	0.0937138545964453
-790	795	796	0.0956046195795482	0.0956046195795482
-791	796	797	0.0946549122760597	0.0946549122760597
-792	797	798	0.100527766007763	0.100527766007763
-793	798	799	0.10316918665	0.10316918665
-795	800	801	0.103459881633314	0.103459881633314
-796	801	802	0.0997925526863961	0.0997925526863961
-797	802	803	0.0998006432146063	0.0998006432146063
-854	804	805	0.1238606801811	0.1238606801811
-799	807	808	0.10163704947704	0.10163704947704
-800	808	812	0.0515064726572222	0.0515064726572222
-801	812	813	0.0494547954602067	0.0494547954602067
-802	813	814	0.051447981297694	0.051447981297694
-803	814	815	0.0525679212147471	0.0525679212147471
-804	815	816	0.0487973630951461	0.0487973630951461
-805	816	817	0.0522598325196538	0.0522598325196538
-806	817	818	0.103406751654374	0.103406751654374
-807	818	819	0.10785615815132	0.10785615815132
-808	819	820	0.10473605712406	0.10473605712406
-809	820	821	0.112264494558786	0.112264494558786
-810	821	822	0.0974128787334051	0.0974128787334051
-811	822	823	0.107993299539667	0.107993299539667
-812	823	824	0.0548178827467902	0.0548178827467902
-17428	10106	10103	0.0082057240713584	0.0082057240713584
-1819	1835	1836	0.0691383900190408	0.0691383900190408
-813	824	825	0.0508588332180354	0.0508588332180354
-816	827	828	0.0512039318870449	0.0512039318870449
-817	828	829	0.0518718595198435	0.0518718595198435
-818	829	830	0.106833526059922	0.106833526059922
-820	831	832	0.385745696022263	0.385745696022263
-821	832	833	0.404856481972801	0.404856481972801
-823	834	835	0.105948732119107	0.105948732119107
-824	835	838	0.0910625591495108	0.0910625591495108
-826	839	840	0.0919963536570051	0.0919963536570051
-828	841	842	0.174755253051921	0.174755253051921
-829	842	843	0.178568082023164	0.178568082023164
-830	843	844	0.17297498203528	0.17297498203528
-831	844	845	0.173265495891133	0.173265495891133
-832	845	846	0.177949551875208	0.177949551875208
-833	846	847	0.164704515205255	0.164704515205255
-835	848	849	0.140807407128784	0.140807407128784
-839	852	853	0.167627273627897	0.167627273627897
-840	853	854	0.0221861617364752	0.0221861617364752
-841	854	855	0.199351380476648	0.199351380476648
-842	855	856	0.154506611729302	0.154506611729302
-843	856	857	0.177121299660486	0.177121299660486
-844	857	858	0.173233506037634	0.173233506037634
-845	858	859	0.161447290254498	0.161447290254498
-846	859	860	0.184417991926907	0.184417991926907
-847	860	861	0.174097913655798	0.174097913655798
-848	861	862	0.200651350067359	0.200651350067359
-851	864	865	0.136205566327931	0.136205566327931
-852	865	866	0.134098020570816	0.134098020570816
-853	866	804	0.130206342500308	0.130206342500308
-855	805	869	0.151636521465058	0.151636521465058
-856	869	870	0.0565102957854785	0.0565102957854785
-859	872	873	0.106081890543097	0.106081890543097
-860	873	874	0.104885275538693	0.104885275538693
-861	874	875	0.105346104071406	0.105346104071406
-862	875	876	0.105115636520032	0.105115636520032
-16596	6712	8570	0.146117658845452	0.146117658845452
-864	877	878	0.106492224339564	0.106492224339564
-865	878	879	0.105226257982301	0.105226257982301
-866	879	880	0.109300044149485	0.109300044149485
-867	880	881	0.105305755069531	0.105305755069531
-868	881	882	0.0524982326673818	0.0524982326673818
-869	882	883	0.0527289587191423	0.0527289587191423
-870	883	884	0.104777165086199	0.104777165086199
-871	884	885	0.101110616467656	0.101110616467656
-873	886	887	0.105175290472485	0.105175290472485
-874	887	888	0.105460060240618	0.105460060240618
-875	888	889	0.104542724277831	0.104542724277831
-878	891	892	0.107871242081588	0.107871242081588
-879	892	893	0.100327397599291	0.100327397599291
-880	893	894	0.10715921423401	0.10715921423401
-11694	895	896	0.0160104862378167	0.0160104862378167
-881	894	897	0.103236099875311	0.103236099875311
-882	897	898	0.106539225146671	0.106539225146671
-16754	10009	7565	0.0493392725986542	0.0493392725986542
-20639	10032	10878	0.0503841615701827	0.0503841615701827
-885	864	900	0.0968355268957622	0.0968355268957622
-886	900	901	0.0921857962021889	0.0921857962021889
-887	901	902	0.0154453872411826	0.0154453872411826
-888	902	903	0.099023611112339	0.099023611112339
-889	903	904	0.106658816969038	0.106658816969038
-890	904	905	0.102850064051981	0.102850064051981
-891	905	906	0.106374102165022	0.106374102165022
-893	907	908	0.107980942566683	0.107980942566683
-897	911	912	0.0137000260099873	0.0137000260099873
-900	914	915	0.266296417735211	0.266296417735211
-902	916	917	0.109365780913081	0.109365780913081
-903	917	918	0.110688879788924	0.110688879788924
-904	918	919	0.0528048087506356	0.0528048087506356
-905	919	920	0.0548227612983216	0.0548227612983216
-1909	1921	1922	0.0521063364540888	0.0521063364540888
-12333	8655	8656	0.00566894958463717	0.00566894958463717
-906	920	921	0.0600921295133805	0.0600921295133805
-907	921	922	0.0524145297386554	0.0524145297386554
-908	922	923	0.0533449751273277	0.0533449751273277
-909	923	924	0.0522830317618348	0.0522830317618348
-910	924	925	0.0531296104749593	0.0531296104749593
-911	925	926	0.0494870453453698	0.0494870453453698
-912	926	927	0.0490530439973252	0.0490530439973252
-916	930	931	0.0484862367563559	0.0484862367563559
-917	931	932	0.0491192175023229	0.0491192175023229
-918	932	933	0.0512499454427793	0.0512499454427793
-935	950	951	0.0925005138771614	0.0925005138771614
-936	951	952	0.09155937925052	0.09155937925052
-937	952	953	0.096647434304121	0.096647434304121
-938	953	954	0.0946813321937467	0.0946813321937467
-939	954	955	0.0465376592907314	0.0465376592907314
-941	956	957	0.0470827842175089	0.0470827842175089
-942	957	958	0.0477097696809632	0.0477097696809632
-943	958	959	0.0469673192776546	0.0469673192776546
-944	959	857	0.0470271779665272	0.0470271779665272
-945	857	452	0.0433482724753884	0.0433482724753884
-946	452	960	0.0461959621064724	0.0461959621064724
-947	960	456	0.0448744265859584	0.0448744265859584
-948	456	961	0.0477309298676521	0.0477309298676521
-950	962	963	0.203057783136815	0.203057783136815
-951	963	964	0.111884367881333	0.111884367881333
-952	964	965	0.176567620505235	0.176567620505235
-953	965	966	0.178378901323504	0.178378901323504
-958	970	971	0.205957142551392	0.205957142551392
-960	972	973	0.204078625402165	0.204078625402165
-961	973	282	0.115147222371539	0.115147222371539
-964	976	977	0.0518319225146996	0.0518319225146996
-965	977	978	0.124228855322375	0.124228855322375
-966	978	979	0.172234101769625	0.172234101769625
-967	979	980	0.191895457064314	0.191895457064314
-968	980	981	0.160844607226305	0.160844607226305
-969	981	936	0.183612712644296	0.183612712644296
-18742	7651	6216	0.274731695307389	0.274731695307389
-970	936	982	0.178134725901618	0.178134725901618
-972	983	984	0.199061323006722	0.199061323006722
-973	984	985	0.188587247900735	0.188587247900735
-974	985	986	0.0433580404548831	0.0433580404548831
-975	986	987	0.125051012370851	0.125051012370851
-977	988	989	0.141681092806979	0.141681092806979
-978	989	990	0.0574887447164737	0.0574887447164737
-979	990	991	0.201644088462744	0.201644088462744
-981	992	993	0.0142751187411164	0.0142751187411164
-983	994	995	0.198087310718341	0.198087310718341
-984	995	996	0.021294324874815	0.021294324874815
-986	997	998	0.477759831198138	0.477759831198138
-988	999	1000	0.107359092710075	0.107359092710075
-989	1000	1001	0.213427542201395	0.213427542201395
-990	1001	1002	0.0204216124756694	0.0204216124756694
-991	1002	1003	0.169295945736254	0.169295945736254
-992	1003	1004	0.202119044170343	0.202119044170343
-993	1004	1007	0.405136142942317	0.405136142942317
-994	1008	753	0.128100004965855	0.128100004965855
-996	1009	277	0.197304277838347	0.197304277838347
-998	1010	1011	0.168461631075683	0.168461631075683
-999	1011	1012	0.0217275963794507	0.0217275963794507
-1000	1012	1013	0.199706135128057	0.199706135128057
-1001	1013	1014	0.154996233446664	0.154996233446664
-1002	1014	1015	0.0484476295387052	0.0484476295387052
-1005	1018	1019	0.198018950245581	0.198018950245581
-1006	1019	1020	0.173297369328456	0.173297369328456
-1007	1020	1021	0.177035115256862	0.177035115256862
-1008	1021	1022	0.17859043694682	0.17859043694682
-1009	1022	674	0.00356025053355106	0.00356025053355106
-1010	674	1023	0.00366943257948706	0.00366943257948706
-1011	1023	1024	0.17484373239475	0.17484373239475
-1012	1024	1025	0.173998681621435	0.173998681621435
-1015	1027	1028	0.0704684258530158	0.0704684258530158
-1017	1029	1030	0.0048505404615695	0.0048505404615695
-1018	1030	1031	0.00340295138148338	0.00340295138148338
-1019	1031	1035	0.134848566335067	0.134848566335067
-1020	1035	1036	0.137493615415566	0.137493615415566
-16764	9868	2745	0.0490633016235184	0.0490633016235184
-1021	1036	827	0.141821861187588	0.141821861187588
-1023	1037	1038	0.144096028267239	0.144096028267239
-1024	1038	1039	0.13873602575008	0.13873602575008
-1025	1039	1040	0.137557829611355	0.137557829611355
-1026	1040	1041	0.134490266221638	0.134490266221638
-1027	1041	1042	0.141541481862683	0.141541481862683
-1028	1042	1043	0.00492593525103261	0.00492593525103261
-1029	1043	1044	0.138593778312369	0.138593778312369
-1030	1044	1045	0.140603553737706	0.140603553737706
-1031	1045	881	0.137936273445967	0.137936273445967
-1032	881	1046	0.138493298016227	0.138493298016227
-1033	1046	1047	0.135001777755027	0.135001777755027
-1034	1047	1048	0.131055322767976	0.131055322767976
-1035	1048	1049	0.124939018757432	0.124939018757432
-1037	1050	1051	0.292899479856136	0.292899479856136
-1038	1051	1052	0.166422260927488	0.166422260927488
-1040	735	1053	0.129020329518136	0.129020329518136
-1042	1054	1055	0.104556386299221	0.104556386299221
-1044	1056	1057	0.0821976961903273	0.0821976961903273
-1046	1058	1059	0.198827335717405	0.198827335717405
-1048	1060	1061	0.168836903384636	0.168836903384636
-1050	1062	1063	0.404705159588638	0.404705159588638
-1051	1067	1068	0.132512985213334	0.132512985213334
-1052	1068	1069	0.13497040303733	0.13497040303733
-1053	1069	1070	0.132768776601327	0.132768776601327
-1056	1072	1073	0.0939030414376985	0.0939030414376985
-1058	1074	1075	0.180616569310233	0.180616569310233
-1059	1075	1076	0.0336398662027363	0.0336398662027363
-1060	1076	1077	0.0410609349522483	0.0410609349522483
-1061	1077	1078	0.0827433862317427	0.0827433862317427
-1062	1078	1079	0.0826887112506465	0.0826887112506465
-1064	1080	464	0.0761353371210495	0.0761353371210495
-1065	464	1081	0.349900041786437	0.349900041786437
-1066	1081	1082	0.00956876487693368	0.00956876487693368
-1068	1083	1084	0.207455473901342	0.207455473901342
-1069	1084	1085	0.20253048003379	0.20253048003379
-1070	1085	1086	0.20117520633799	0.20117520633799
-1071	1086	1087	0.200445374909098	0.200445374909098
-1073	1088	1089	0.193552555847569	0.193552555847569
-1074	1089	1090	0.201907921550129	0.201907921550129
-1075	1090	1091	0.409168814751628	0.409168814751628
-1078	1094	1095	0.176210660233647	0.176210660233647
-1082	1098	1099	0.214073333831546	0.214073333831546
-1083	1099	1100	0.273059176292595	0.273059176292595
-1085	1101	1102	0.177543118890406	0.177543118890406
-1086	1102	1103	0.205192174072119	0.205192174072119
-1089	1105	1106	0.177750162727048	0.177750162727048
-1090	1106	1107	0.0539560094135977	0.0539560094135977
-1091	1107	1108	0.122234944576301	0.122234944576301
-1092	1108	1109	0.177333676437683	0.177333676437683
-1093	1109	1110	0.180925459405873	0.180925459405873
-1095	1111	1112	0.128811671442731	0.128811671442731
-1096	1112	1113	0.134815073580703	0.134815073580703
-1097	1113	1114	0.136688571742098	0.136688571742098
-1098	1114	1115	0.101403665812315	0.101403665812315
-1099	1115	1116	0.102067679100378	0.102067679100378
-1102	1118	1119	0.204345080233058	0.204345080233058
-1103	1119	1120	0.199139333361331	0.199139333361331
-1104	1120	1121	0.0469911073941159	0.0469911073941159
-1105	1121	1122	0.0592169845475301	0.0592169845475301
-1106	1122	1123	0.0953718885827498	0.0953718885827498
-1107	1123	1124	0.0510557799357253	0.0510557799357253
-1108	1124	1125	0.150795725410384	0.150795725410384
-1109	1125	1126	0.203566805558282	0.203566805558282
-1111	1127	1128	0.0472430646130033	0.0472430646130033
-1112	1128	1129	0.205543981836037	0.205543981836037
-1114	1130	1131	0.164841461931526	0.164841461931526
-1115	1131	1132	0.171242319742711	0.171242319742711
-1116	1132	1133	0.15535130673221	0.15535130673221
-1117	1133	1134	0.155906924058663	0.155906924058663
-1118	1134	1135	0.158641971110509	0.158641971110509
-1120	1136	1137	0.202486056810199	0.202486056810199
-1124	1140	1141	0.106376038726262	0.106376038726262
-1125	1141	1142	0.11299023410348	0.11299023410348
-1127	1143	1144	0.105553895231553	0.105553895231553
-1128	1144	1145	0.104117784384988	0.104117784384988
-1129	1145	1146	0.103483298103444	0.103483298103444
-1131	1147	1148	0.20922373460901	0.20922373460901
-1132	1148	1149	0.150393643985841	0.150393643985841
-1133	1149	1150	0.0550246362758013	0.0550246362758013
-1134	1150	1151	0.102697719375893	0.102697719375893
-1135	1151	1152	0.0983530643806034	0.0983530643806034
-1136	1152	1153	0.0500465548413358	0.0500465548413358
-1137	1153	1154	0.957298194837815	0.957298194837815
-1138	1155	1156	0.108691319059022	0.108691319059022
-1139	1156	1157	0.102249102579738	0.102249102579738
-1140	1157	1160	0.108168549451273	0.108168549451273
-1141	1160	1161	0.101829092464478	0.101829092464478
-1144	1162	1163	0.0512778300683452	0.0512778300683452
-1146	1164	1165	0.100040433804019	0.100040433804019
-1147	1165	1166	0.107579273983848	0.107579273983848
-1148	1166	1167	0.103452121653836	0.103452121653836
-1149	1167	1168	0.102717798897395	0.102717798897395
-1150	1168	1169	0.106376023896376	0.106376023896376
-1151	1169	1170	0.105583034841699	0.105583034841699
-1152	1170	1171	0.105884448878202	0.105884448878202
-1153	1171	1172	0.107984392656028	0.107984392656028
-1154	1172	1173	0.100211807661524	0.100211807661524
-1156	1174	1175	0.0651406407561477	0.0651406407561477
-1157	1176	1177	0.0916420940843904	0.0916420940843904
-1158	1177	1178	0.317057086238115	0.317057086238115
-1159	1178	1179	0.0403904373250439	0.0403904373250439
-1160	1179	1180	0.087664479851631	0.087664479851631
-1163	555	558	0.0996109464859662	0.0996109464859662
-1165	1182	1183	0.200712633020301	0.200712633020301
-1166	1183	141	0.201303158931495	0.201303158931495
-1167	141	1184	0.160264959796536	0.160264959796536
-1169	1185	1186	0.0892826433471673	0.0892826433471673
-16608	9325	9944	0.146983175121654	0.146983175121654
-1171	1187	1011	0.0980488049438762	0.0980488049438762
-1172	1011	1188	0.100351187096818	0.100351187096818
-1173	1188	1189	0.0991689160182861	0.0991689160182861
-1174	1189	1190	0.0985624561842153	0.0985624561842153
-1175	1190	1191	0.0992629404802966	0.0992629404802966
-1177	1192	1193	0.0982024972051538	0.0982024972051538
-1178	1193	1194	0.0979660824445765	0.0979660824445765
-1179	1194	1195	0.0324477724054976	0.0324477724054976
-1180	1195	1196	0.0675268282620706	0.0675268282620706
-1182	1197	1198	0.0679368973278076	0.0679368973278076
-1184	1199	1200	0.0686815112230977	0.0686815112230977
-1185	1200	1201	0.0309923494566171	0.0309923494566171
-1186	1201	1202	0.0899174664521967	0.0899174664521967
-1187	1202	1203	0.0945518763756908	0.0945518763756908
-1188	1203	1204	0.0933113340782308	0.0933113340782308
-1189	1204	1205	0.09509225728821	0.09509225728821
-1190	1205	1206	0.0947055520559319	0.0947055520559319
-1191	1206	1207	0.0954663818870976	0.0954663818870976
-1192	1207	1208	0.0457748420522195	0.0457748420522195
-1193	1208	853	0.0452361278424885	0.0452361278424885
-1194	853	1209	0.0465328064656566	0.0465328064656566
-1195	1209	1210	0.0443349306457526	0.0443349306457526
-1196	1210	1211	0.0926255737985973	0.0926255737985973
-1200	1214	1215	0.199187167786165	0.199187167786165
-1201	1215	1216	0.200954541481784	0.200954541481784
-1202	1216	1217	0.405030982441888	0.405030982441888
-1203	1218	1219	0.0492032479248998	0.0492032479248998
-1204	1219	1220	0.0957003230509211	0.0957003230509211
-1206	1221	1222	0.0745042299709739	0.0745042299709739
-1207	1222	1223	0.102728552500243	0.102728552500243
-1208	1223	1224	0.112933078893132	0.112933078893132
-1210	1225	1226	0.132646861758746	0.132646861758746
-1212	1227	1228	0.133737749967366	0.133737749967366
-1213	1228	1229	0.138340301298334	0.138340301298334
-1214	1229	1230	0.133937469551528	0.133937469551528
-1215	1230	1231	0.133215122537399	0.133215122537399
-1216	1231	1236	0.135593895539884	0.135593895539884
-1217	1236	1237	0.134329596288595	0.134329596288595
-1218	1237	1238	0.133838756927755	0.133838756927755
-1220	1239	1240	0.201119608536246	0.201119608536246
-1222	1241	1242	0.0687159203588902	0.0687159203588902
-1223	1242	1243	0.133400908392016	0.133400908392016
-1224	1243	1247	0.135380581131659	0.135380581131659
-1225	1247	1248	0.134002229768192	0.134002229768192
-1226	1248	1249	0.133545106900313	0.133545106900313
-1227	1249	1250	0.135368900396577	0.135368900396577
-1228	1250	1251	0.135024432224222	0.135024432224222
-1229	1251	1252	0.104469760585228	0.104469760585228
-1230	1252	1253	0.0306570001135196	0.0306570001135196
-1231	1253	1254	0.0720522950545032	0.0720522950545032
-1232	1254	1255	0.0658986376594475	0.0658986376594475
-1233	1255	1256	0.0399746208950617	0.0399746208950617
-1234	1256	1257	0.0944491578366609	0.0944491578366609
-1235	1257	1258	0.132766928353997	0.132766928353997
-1236	1258	1259	0.135424431672451	0.135424431672451
-1237	1259	1260	0.140672385455392	0.140672385455392
-1238	1260	1261	0.134975501941172	0.134975501941172
-1239	1261	1262	0.0645486549169547	0.0645486549169547
-1240	1262	1263	0.0682069680036474	0.0682069680036474
-1241	1263	1264	0.132661334326961	0.132661334326961
-1242	1264	1265	0.198750077150319	0.198750077150319
-1243	1265	1266	0.153240793837705	0.153240793837705
-1245	273	1267	0.0675767060379672	0.0675767060379672
-1247	1268	1269	0.0991648269688332	0.0991648269688332
-1248	1269	1270	0.105715575753422	0.105715575753422
-1249	1270	1271	0.096909170039208	0.096909170039208
-1251	1272	1273	0.132822339876578	0.132822339876578
-1252	1273	1274	0.108602805332053	0.108602805332053
-1253	1274	1275	0.0271637528935803	0.0271637528935803
-1254	1275	1276	0.112230208152067	0.112230208152067
-1255	1276	1277	0.0176649567962355	0.0176649567962355
-1256	1277	1278	0.135399208639876	0.135399208639876
-1257	1278	1279	0.134958357098824	0.134958357098824
-1258	1279	1280	0.13471438954866	0.13471438954866
-1259	1280	1281	0.0527317447874755	0.0527317447874755
-1260	1281	1282	0.0822068643990868	0.0822068643990868
-1262	24	1283	0.0541075654220215	0.0541075654220215
-1263	1283	1284	0.0277584904979192	0.0277584904979192
-1264	1284	1285	0.0119510600074318	0.0119510600074318
-1265	1285	1286	0.00765101800505865	0.00765101800505865
-1267	1287	1288	0.0102422085479252	0.0102422085479252
-1269	1289	1290	0.18749026453307	0.18749026453307
-1270	1290	1291	0.200784792674354	0.200784792674354
-1271	1291	1292	0.406662337861329	0.406662337861329
-1272	1293	1028	0.104130177494266	0.104130177494266
-1274	1294	1295	0.209580478517529	0.209580478517529
-1275	1295	1296	0.202179673681852	0.202179673681852
-1276	1296	1297	0.102644670381459	0.102644670381459
-1277	1297	1298	0.08553722531747	0.08553722531747
-1278	1299	1300	0.10911250090994	0.10911250090994
-1279	1300	1305	0.103516561820708	0.103516561820708
-1280	1305	1306	0.107188605435255	0.107188605435255
-1282	1307	1308	0.104254785791266	0.104254785791266
-1283	1308	1309	0.104981820314566	0.104981820314566
-1284	1309	1310	0.0539236153779667	0.0539236153779667
-1285	1310	1311	0.0525379554780919	0.0525379554780919
-1287	1312	1313	0.0516652738700608	0.0516652738700608
-1288	1313	1314	0.0506813468547144	0.0506813468547144
-1289	1314	1315	0.0508976456987324	0.0508976456987324
-1290	1315	1316	0.0521616744394787	0.0521616744394787
-1291	1316	1317	0.0506396099336441	0.0506396099336441
-1292	1317	1318	0.0516214270666003	0.0516214270666003
-1293	1318	1319	0.0518951446578895	0.0518951446578895
-1294	1319	1320	0.0518013233234396	0.0518013233234396
-1295	1320	1321	0.0498510970504219	0.0498510970504219
-1296	1321	1322	0.0511186989957182	0.0511186989957182
-1297	1322	1323	0.0508331487974254	0.0508331487974254
-1300	1325	1326	0.08881123864976	0.08881123864976
-1304	499	1329	0.167484239247501	0.167484239247501
-1305	1329	1332	0.203905657642638	0.203905657642638
-1306	1332	1333	0.204847680679676	0.204847680679676
-1307	1333	1334	0.201123583387407	0.201123583387407
-1309	1335	1336	0.157474175144751	0.157474175144751
-1310	1336	1337	0.117575441930224	0.117575441930224
-1311	1337	1338	0.0942761529447682	0.0942761529447682
-1313	1339	1340	0.0991229934735866	0.0991229934735866
-1314	1340	193	0.100574656408132	0.100574656408132
-1315	193	1341	0.102057084030905	0.102057084030905
-1316	1341	1342	0.101342753238197	0.101342753238197
-1317	1342	1343	0.0983873083767276	0.0983873083767276
-1318	1343	1344	0.103799446896886	0.103799446896886
-1320	1345	1346	0.0125938712274396	0.0125938712274396
-1323	1348	1349	0.273909093656176	0.273909093656176
-1325	1350	1351	0.136546503712986	0.136546503712986
-1326	1351	1352	0.134960662965356	0.134960662965356
-1327	1352	1353	0.12926179848792	0.12926179848792
-1328	1353	1354	0.137757238088674	0.137757238088674
-1329	1354	1355	0.134312853283448	0.134312853283448
-1330	1355	1356	0.132780195397846	0.132780195397846
-1334	1359	1360	0.200708631878513	0.200708631878513
-1336	142	1364	0.213116678885437	0.213116678885437
-1338	1365	1366	0.152775417186349	0.152775417186349
-1339	1367	1368	0.213588518747439	0.213588518747439
-1341	1369	1370	0.0932290478454428	0.0932290478454428
-1342	1371	1372	0.0501807359890933	0.0501807359890933
-1343	1372	1373	0.0506488838331464	0.0506488838331464
-1344	1373	1374	0.0509778039678037	0.0509778039678037
-1345	1374	1375	0.0510804446988023	0.0510804446988023
-1346	1375	1376	0.0530938888935116	0.0530938888935116
-1347	1376	1377	0.0533676128248485	0.0533676128248485
-1348	1377	1378	0.0492215264037076	0.0492215264037076
-1349	1378	1379	0.0493909004241748	0.0493909004241748
-1350	1379	1380	0.102775081126436	0.102775081126436
-1351	1380	1381	0.100172308119327	0.100172308119327
-1353	1382	1383	0.0341877559991377	0.0341877559991377
-1354	1383	1384	0.104577694208817	0.104577694208817
-1356	1385	1386	0.193890579001187	0.193890579001187
-2459	714	2450	0.108569713532818	0.108569713532818
-1358	1387	1388	0.203368582544414	0.203368582544414
-1359	1388	1389	0.203745939128333	0.203745939128333
-1361	1390	1391	0.199208620541168	0.199208620541168
-1362	1391	1392	0.199941300123434	0.199941300123434
-1364	1393	1394	0.177657657089983	0.177657657089983
-1365	1394	1395	0.177656134299769	0.177656134299769
-1366	1395	1396	0.0721099099294465	0.0721099099294465
-1367	1396	1397	0.103333445330309	0.103333445330309
-1368	1397	1398	0.177111308895875	0.177111308895875
-1369	1398	1399	0.177390305757292	0.177390305757292
-1370	1399	1400	0.0617135848764214	0.0617135848764214
-1371	1400	1401	0.0203196347458361	0.0203196347458361
-1373	1402	1403	0.0235752242204257	0.0235752242204257
-1375	1404	1402	0.00627534757508794	0.00627534757508794
-1377	1405	1406	0.205561430653916	0.205561430653916
-1378	1406	1407	0.198211407371417	0.198211407371417
-1379	1407	1404	0.205478920022626	0.205478920022626
-1381	1408	1409	0.100293396704139	0.100293396704139
-2482	2015	1998	0.0374209544699414	0.0374209544699414
-1382	1409	1410	0.293581023203639	0.293581023203639
-1386	1413	1414	0.135399373352711	0.135399373352711
-1387	1414	1415	0.134222064866511	0.134222064866511
-1388	1415	1416	0.135554703950228	0.135554703950228
-1390	1417	1418	0.0459508709120374	0.0459508709120374
-1391	1418	1419	0.202303287973101	0.202303287973101
-1394	1421	1422	0.101428183167069	0.101428183167069
-1395	1422	1423	0.0971760324958247	0.0971760324958247
-1396	1423	1424	0.100465380366459	0.100465380366459
-1397	1424	1425	0.0503823697773718	0.0503823697773718
-1398	1425	1426	0.0484682644313395	0.0484682644313395
-1399	1426	1427	0.0493995225121813	0.0493995225121813
-1400	1427	1138	0.0500574902796296	0.0500574902796296
-1401	1138	1428	0.0487273610513856	0.0487273610513856
-1403	1429	1430	0.0510517494638005	0.0510517494638005
-1404	1430	1431	0.0485479238043371	0.0485479238043371
-1405	1431	1432	0.0499990939034271	0.0499990939034271
-1406	1432	1433	0.0540496336498359	0.0540496336498359
-1408	1434	1435	0.101502735016485	0.101502735016485
-1409	1435	1436	0.0975542961638382	0.0975542961638382
-1410	1436	1437	0.099750341261668	0.099750341261668
-1411	1437	1265	0.0977907961309881	0.0977907961309881
-1413	1438	1439	0.100436447451859	0.100436447451859
-1416	1441	1442	0.100952147732681	0.100952147732681
-1417	1442	1329	0.0966125375658313	0.0966125375658313
-1418	1329	1386	0.101098635736807	0.101098635736807
-1419	1386	1443	0.103303628365074	0.103303628365074
-1420	1443	1444	0.105351454494942	0.105351454494942
-1421	1444	1445	0.104823988220675	0.104823988220675
-1422	1445	1446	0.0939934684249721	0.0939934684249721
-1424	1447	1448	0.0986593061594928	0.0986593061594928
-1425	1448	1449	0.102799709683289	0.102799709683289
-1426	1449	1450	0.0947158385157811	0.0947158385157811
-1427	1450	1451	0.0999075147918272	0.0999075147918272
-1429	1452	784	0.0977509062908684	0.0977509062908684
-1431	1453	1454	0.0719801500300486	0.0719801500300486
-1432	1454	147	0.198407848383786	0.198407848383786
-1433	147	1455	0.0338525123105229	0.0338525123105229
-1435	151	1456	0.201963345264684	0.201963345264684
-1438	1458	1459	0.393387760227334	0.393387760227334
-1439	1460	1343	0.203476082408649	0.203476082408649
-1440	1343	1461	0.205811743637529	0.205811743637529
-1441	1461	1462	0.203884797606556	0.203884797606556
-1442	1462	1463	0.199707411933497	0.199707411933497
-1443	1463	1464	0.202654089186264	0.202654089186264
-1444	1464	1465	0.201184980777767	0.201184980777767
-1446	778	1466	0.187246918966658	0.187246918966658
-1447	1466	1467	0.197539000166948	0.197539000166948
-1448	1467	1468	0.208212504536917	0.208212504536917
-1450	1469	1470	0.186875447219802	0.186875447219802
-1451	173	1471	0.256211082856798	0.256211082856798
-1454	1473	1474	0.0115011236026218	0.0115011236026218
-1455	1474	1475	0.0782239536830869	0.0782239536830869
-1456	1475	1476	0.086773238144748	0.086773238144748
-1457	1476	1479	0.0924870142175924	0.0924870142175924
-1458	1479	1480	0.37958729242533	0.37958729242533
-1460	1482	1483	0.0482525610515095	0.0482525610515095
-1463	1183	1360	0.0998764831880159	0.0998764831880159
-1464	1360	1485	0.101348070124559	0.101348070124559
-1465	1485	1486	0.0984049068298888	0.0984049068298888
-1467	1487	1488	0.111519868825334	0.111519868825334
-1471	1454	1491	0.201276239535877	0.201276239535877
-1473	1492	1493	0.102671300709598	0.102671300709598
-1474	1493	1494	0.114201675013651	0.114201675013651
-1475	1494	1495	0.100620235623392	0.100620235623392
-1476	1495	1496	0.0991406161889474	0.0991406161889474
-1477	1496	1497	0.0998844924107287	0.0998844924107287
-1478	1497	1498	0.102075212599034	0.102075212599034
-1479	1498	1499	0.0984215743592215	0.0984215743592215
-1480	1499	1500	0.710275264674714	0.710275264674714
-1481	1501	1502	0.109574036549915	0.109574036549915
-1482	1502	1503	0.290817056726042	0.290817056726042
-1484	1504	1505	0.0925327391334129	0.0925327391334129
-1485	1505	1506	0.0984021297067109	0.0984021297067109
-1486	1506	1508	0.0976913946915281	0.0976913946915281
-1489	1509	1510	0.0972031962531711	0.0972031962531711
-1490	1510	1511	0.029446204772298	0.029446204772298
-1494	1514	1515	0.0918220075397064	0.0918220075397064
-1499	1518	1519	0.202094906389576	0.202094906389576
-1500	1519	1520	0.199707443263373	0.199707443263373
-1501	1520	1521	0.202063984146535	0.202063984146535
-1502	1521	1522	0.20219834838932	0.20219834838932
-1503	1522	1523	0.199783925434931	0.199783925434931
-1504	1523	47	0.203533027899534	0.203533027899534
-2599	2565	2566	0.0719878134592224	0.0719878134592224
-1506	1524	1525	0.202471618520659	0.202471618520659
-1507	1525	1526	0.207090708341307	0.207090708341307
-1508	1526	1527	0.19569314849173	0.19569314849173
-1509	1527	1528	0.200397251106195	0.200397251106195
-1511	1529	1530	2.00893755060013	2.00893755060013
-1516	1535	1536	0.100586492660266	0.100586492660266
-1518	1009	1537	0.0517503943444181	0.0517503943444181
-1519	1537	1540	0.0418405299236717	0.0418405299236717
-1520	1540	1541	0.0515572086033239	0.0515572086033239
-1521	1541	1542	0.0506297333875711	0.0506297333875711
-1522	1542	1547	0.050402272284143	0.050402272284143
-1523	1547	972	0.0996461444866795	0.0996461444866795
-1524	972	1548	0.0962022319753865	0.0962022319753865
-1525	1548	1549	0.0953657467513535	0.0953657467513535
-1526	1549	1550	0.0963437695650725	0.0963437695650725
-1528	1551	1552	0.142721374587541	0.142721374587541
-1529	1552	1553	0.0277011537567162	0.0277011537567162
-1530	1554	1555	0.0435488620803952	0.0435488620803952
-1531	1555	1053	0.0900813280777187	0.0900813280777187
-1532	1053	1556	0.091689363858679	0.091689363858679
-1537	1560	1561	0.060529314582724	0.060529314582724
-1538	1561	1562	0.0982757577888809	0.0982757577888809
-16447	9904	9905	0.234187757526107	0.234187757526107
-1539	1562	1563	0.0964555264462913	0.0964555264462913
-1540	1563	1564	0.0948745488688521	0.0948745488688521
-1541	1564	1565	0.0967033454927318	0.0967033454927318
-1542	1565	1566	0.0968058200777679	0.0968058200777679
-1543	1566	1567	0.0857541821683109	0.0857541821683109
-1544	1567	1568	0.099340207555012	0.099340207555012
-1545	1568	1571	0.0938405349536985	0.0938405349536985
-1546	1571	1572	0.0960880186310076	0.0960880186310076
-1548	1573	1574	0.0687509395523497	0.0687509395523497
-1551	1576	1577	0.102936179368501	0.102936179368501
-1555	1580	1581	0.0874483930882581	0.0874483930882581
-1558	1583	1584	0.322225767594647	0.322225767594647
-1559	1585	158	0.325178498041831	0.325178498041831
-1560	158	1586	0.248813969770461	0.248813969770461
-1562	1587	1588	0.682458212363131	0.682458212363131
-1563	1589	1590	0.093984831401002	0.093984831401002
-1564	1590	1591	0.0969174980637894	0.0969174980637894
-1565	1591	1592	0.0961947351154639	0.0961947351154639
-1566	1592	1593	0.0903125194205546	0.0903125194205546
-1567	1593	768	0.157881413911052	0.157881413911052
-1568	768	1596	0.172691061788589	0.172691061788589
-1569	1596	1597	0.125221889854682	0.125221889854682
-11466	780	781	0.0395520182900152	0.0395520182900152
-14682	727	782	0.194557772372847	0.194557772372847
-1575	1603	1604	0.122808892568626	0.122808892568626
-1576	1604	1605	0.14134447308364	0.14134447308364
-1577	1605	1606	0.00315234288642188	0.00315234288642188
-1578	1606	1607	0.00237760055681402	0.00237760055681402
-1579	1607	1034	0.102833271602923	0.102833271602923
-1580	1034	1608	0.043468513404088	0.043468513404088
-1581	1608	1033	0.049915824892393	0.049915824892393
-1582	1033	1609	0.0942592902205972	0.0942592902205972
-1583	1609	1610	0.146590259158182	0.146590259158182
-1585	1611	1612	0.124755429872932	0.124755429872932
-1587	1613	1614	0.146275547777326	0.146275547777326
-1588	1614	1615	0.26514479082652	0.26514479082652
-1589	1615	1616	0.120777633356172	0.120777633356172
-1590	1616	1617	0.146979440780155	0.146979440780155
-1591	1617	1618	0.586436662116935	0.586436662116935
-10219	5410	5429	0.0496147818599398	0.0496147818599398
-1592	1618	1619	0.120318550023187	0.120318550023187
-1593	1620	1621	0.123170513487948	0.123170513487948
-1594	1621	1622	0.0891128334653611	0.0891128334653611
-1595	1622	1623	0.0126945079405001	0.0126945079405001
-1597	1624	1625	0.0361628363016983	0.0361628363016983
-1598	1625	1626	0.0965078268867085	0.0965078268867085
-1599	1626	1627	0.122881556236448	0.122881556236448
-1601	1628	1629	0.0514694071076013	0.0514694071076013
-1604	1635	1337	0.196038913624896	0.196038913624896
-1605	1337	1636	0.207228602655476	0.207228602655476
-1606	1636	1637	0.20264296962565	0.20264296962565
-1607	1637	1638	0.203387402917304	0.203387402917304
-1608	1638	1639	0.0190931929940632	0.0190931929940632
-1609	1639	1640	0.0954982678568342	0.0954982678568342
-1612	1642	1643	0.0969376424953903	0.0969376424953903
-1613	1643	1644	0.0932591849763066	0.0932591849763066
-1614	1644	769	0.109404688325734	0.109404688325734
-1616	1645	1646	0.0870106428010285	0.0870106428010285
-1617	1646	1647	0.21369947718983	0.21369947718983
-1618	1647	160	0.103968034130831	0.103968034130831
-1619	160	1648	0.148969074067601	0.148969074067601
-1620	1648	1649	0.102090714125769	0.102090714125769
-1621	1649	1650	0.152016365267068	0.152016365267068
-1624	1652	1653	3.12548314855053	3.12548314855053
-1625	1654	1655	0.099787477314555	0.099787477314555
-1626	1655	1656	0.0573939833292015	0.0573939833292015
-1627	1656	1657	0.0412244638452508	0.0412244638452508
-1628	1657	1658	0.159748945001355	0.159748945001355
-1630	1659	1660	0.0562485254553907	0.0562485254553907
-1631	1660	1661	0.140693983223782	0.140693983223782
-1632	1661	1662	0.199243791884909	0.199243791884909
-1633	1662	1663	0.200873345889282	0.200873345889282
-1634	1663	1664	0.200754056548572	0.200754056548572
-1636	1665	1626	0.102716653811918	0.102716653811918
-1637	1626	1666	0.1010071593638	0.1010071593638
-1638	1666	1667	0.101237955319616	0.101237955319616
-1639	1667	1668	0.101237948338119	0.101237948338119
-1640	1668	711	0.101306598900241	0.101306598900241
-1641	711	1669	0.10042603616611	0.10042603616611
-1642	1669	1670	0.0958961450641524	0.0958961450641524
-1644	1671	1672	0.137716093557474	0.137716093557474
-2762	2714	2715	0.0991860693431078	0.0991860693431078
-1651	1678	1679	0.133306617824866	0.133306617824866
-1652	1679	1250	0.131938339831678	0.131938339831678
-1653	1250	1680	0.132959450261057	0.132959450261057
-1654	1680	1681	0.132733669106231	0.132733669106231
-1655	1681	1682	0.132964768190064	0.132964768190064
-1657	1683	1684	0.0490945965896849	0.0490945965896849
-1658	1684	1685	0.0490108159838641	0.0490108159838641
-1659	1685	1686	0.0499458328019049	0.0499458328019049
-1660	1686	1687	0.0506073899683783	0.0506073899683783
-1661	1687	1688	0.0999922931051382	0.0999922931051382
-1663	1689	1690	0.0532341368396536	0.0532341368396536
-1664	1690	1691	0.0494816378016481	0.0494816378016481
-1665	1691	1129	0.0483962553320354	0.0483962553320354
-2786	2740	2741	0.204165004811902	0.204165004811902
-1669	1694	1695	0.0515058444916569	0.0515058444916569
-1670	1695	1696	0.049583388064832	0.049583388064832
-1672	1697	1698	0.164817053327799	0.164817053327799
-1674	1699	1700	0.200184975462711	0.200184975462711
-1676	1701	1702	0.0562043024646792	0.0562043024646792
-1677	1702	1703	0.0473559609478773	0.0473559609478773
-1679	1704	1705	0.398746605392666	0.398746605392666
-1681	1706	1365	0.144540603588288	0.144540603588288
-1682	1365	1707	0.0528990154558718	0.0528990154558718
-1683	1707	1708	0.10134484884037	0.10134484884037
-1684	1708	1709	0.0991459088544214	0.0991459088544214
-1685	1709	1710	0.100657696530189	0.100657696530189
-1686	1710	1711	0.102825031241611	0.102825031241611
-1687	1711	1712	0.0822822408497534	0.0822822408497534
-1688	1712	1713	0.0873989484445677	0.0873989484445677
-1689	1713	1714	0.083724486939572	0.083724486939572
-1691	1715	1716	0.0772899080720762	0.0772899080720762
-1693	1717	1718	0.0829924152482612	0.0829924152482612
-12973	1824	2797	0.01303984476973	0.01303984476973
-1695	1719	1720	0.0851881782403355	0.0851881782403355
-1696	1720	1721	0.0815306594337643	0.0815306594337643
-1697	1721	1586	0.0807934684584117	0.0807934684584117
-1698	1586	1722	0.0815207303880199	0.0815207303880199
-1699	1722	1649	0.0940041718050458	0.0940041718050458
-1702	1723	1724	0.079056501466603	0.079056501466603
-1703	1724	1725	0.0798640413181071	0.0798640413181071
-1707	204	1728	0.0808035328564148	0.0808035328564148
-1708	1728	1729	0.0793099389847985	0.0793099389847985
-1709	1729	1471	0.0807902086419881	0.0807902086419881
-1710	1471	1730	0.159227595521595	0.159227595521595
-1712	1731	1732	0.00918106235729301	0.00918106235729301
-1713	1732	1733	0.0904244628649386	0.0904244628649386
-1714	1733	1734	0.1024374483727	0.1024374483727
-1715	1734	1735	0.102816532682191	0.102816532682191
-1716	1735	1736	0.0492571813589573	0.0492571813589573
-1718	1737	1738	0.0480836518232765	0.0480836518232765
-1720	1456	1739	0.0851993535054976	0.0851993535054976
-1722	1740	1741	0.0851913863702705	0.0851913863702705
-1724	1742	1743	1.05721580006997	1.05721580006997
-1727	1746	1747	0.203318990561603	0.203318990561603
-1728	1747	1748	0.105159616756228	0.105159616756228
-1730	1749	1750	0.0560818664301058	0.0560818664301058
-1732	1751	1752	0.478248386364013	0.478248386364013
-1733	1752	1753	0.443656760721259	0.443656760721259
-1735	1754	1755	0.1348267792147	0.1348267792147
-1736	1755	1756	0.129877519863856	0.129877519863856
-1738	1757	1758	0.139572444331893	0.139572444331893
-1740	1759	151	0.222068972422621	0.222068972422621
-1742	1760	1761	0.217075886587119	0.217075886587119
-1744	95	1762	0.0857577538793466	0.0857577538793466
-1746	1763	1764	0.202675621070888	0.202675621070888
-1747	1764	1765	0.199646627713467	0.199646627713467
-1749	1768	1769	0.203715891739879	0.203715891739879
-18799	8969	430	0.0787540687567586	0.0787540687567586
-1751	1772	1773	0.1980611092504	0.1980611092504
-1752	1773	1774	0.203412766578772	0.203412766578772
-1753	1774	1775	0.202109933054243	0.202109933054243
-1754	1775	43	0.202669215310678	0.202669215310678
-1755	43	1776	0.197841814631247	0.197841814631247
-1756	1776	1777	0.202676328377112	0.202676328377112
-1757	1777	1778	0.204936151058667	0.204936151058667
-1758	1778	1779	0.1977714314521	0.1977714314521
-1759	1779	1780	0.0315877327413917	0.0315877327413917
-1760	1780	1781	0.0188253963586558	0.0188253963586558
-1763	1782	570	0.0446437216270623	0.0446437216270623
-1764	570	1783	0.0483070548371257	0.0483070548371257
-1765	1783	1784	0.0445253123220399	0.0445253123220399
-1766	1784	1785	0.0510546887722961	0.0510546887722961
-1768	1786	1787	0.0533839966500878	0.0533839966500878
-1769	1787	1788	0.0521924619717138	0.0521924619717138
-1770	1788	1789	0.0490694542852552	0.0490694542852552
-1771	1789	1790	0.0491381693257593	0.0491381693257593
-1774	1792	1793	0.188232081449375	0.188232081449375
-1775	1793	1794	0.0938047512624172	0.0938047512624172
-1777	1795	1796	0.0479551643273822	0.0479551643273822
-1779	1797	1798	0.0506257576844139	0.0506257576844139
-1780	1798	1778	0.0476226019606038	0.0476226019606038
-1781	1778	1799	0.0506000833049729	0.0506000833049729
-1782	1799	1800	0.0489339836382716	0.0489339836382716
-1783	1800	1801	0.0520587364066008	0.0520587364066008
-1784	1801	1526	0.0499381116869285	0.0499381116869285
-1785	1526	1802	0.0482912843745838	0.0482912843745838
-1786	1802	1803	0.052312654556816	0.052312654556816
-1788	466	1804	0.00820558552351573	0.00820558552351573
-1789	1804	1805	0.0939988504660162	0.0939988504660162
-1790	1805	1806	0.0853375028247139	0.0853375028247139
-1792	1807	1808	0.0203438851658787	0.0203438851658787
-1793	1808	1809	0.0251680266073563	0.0251680266073563
-1794	1809	1810	0.203784780502352	0.203784780502352
-1795	1810	1811	0.245267310527272	0.245267310527272
-1797	1812	1513	0.252426666173968	0.252426666173968
-1799	1479	1813	0.176119796231885	0.176119796231885
-1800	1813	1814	0.410709550491308	0.410709550491308
-1802	1815	1816	0.0577133885110317	0.0577133885110317
-1805	1818	1819	0.0740878722178254	0.0740878722178254
-1806	1819	1820	0.135457901381645	0.135457901381645
-1808	1821	1822	0.206145194610924	0.206145194610924
-1812	1828	1829	0.106425576539939	0.106425576539939
-1813	1829	1830	0.105266693821804	0.105266693821804
-1814	1830	1831	0.0587144262982408	0.0587144262982408
-1815	1831	1832	0.0458724352500271	0.0458724352500271
-1817	1833	1834	0.199229532947629	0.199229532947629
-1820	1836	1837	0.0309799563804686	0.0309799563804686
-1822	1838	1839	0.146418601014837	0.146418601014837
-1823	1839	1840	0.141683677614281	0.141683677614281
-1824	1840	1841	0.111588649653809	0.111588649653809
-1827	1844	1845	0.101354924922083	0.101354924922083
-1828	1845	1397	0.106656735273228	0.106656735273228
-1829	1397	1846	0.052351737797171	0.052351737797171
-1831	1847	1848	0.0531037804059208	0.0531037804059208
-1832	1848	1849	0.0506063775898189	0.0506063775898189
-1833	1849	1850	0.0517100300362486	0.0517100300362486
-1834	1850	1851	0.0523258164287328	0.0523258164287328
-1835	1851	1852	0.0499829479152778	0.0499829479152778
-1836	1852	1853	0.051505297770613	0.051505297770613
-1837	1853	1854	0.051498980863322	0.051498980863322
-1840	1856	1857	0.051410475877809	0.051410475877809
-1841	1857	1858	0.0513674435994921	0.0513674435994921
-1842	1858	1109	0.0515213919005775	0.0515213919005775
-1843	1109	1859	0.0506198107739765	0.0506198107739765
-1844	1859	1860	0.0511967416282439	0.0511967416282439
-1845	1860	1861	0.0519748871795966	0.0519748871795966
-1847	1862	1863	0.0554265580601903	0.0554265580601903
-1848	1863	1864	0.397067534239407	0.397067534239407
-1849	1865	1481	0.206774260684103	0.206774260684103
-1850	1481	136	0.199116779757445	0.199116779757445
-1852	1866	1867	0.100566373592942	0.100566373592942
-1853	1867	1868	0.101320817159016	0.101320817159016
-1855	1869	1295	0.0991404141660552	0.0991404141660552
-1856	1295	1368	0.0970426412791379	0.0970426412791379
-1857	1368	1870	0.108154398880898	0.108154398880898
-1859	1871	1872	0.100234830388367	0.100234830388367
-1860	1872	1873	0.0980754533399867	0.0980754533399867
-1861	1873	1874	0.101854943741879	0.101854943741879
-1862	1874	1875	0.0125795021137856	0.0125795021137856
-1863	1875	1876	0.0797821176517698	0.0797821176517698
-1864	1876	1877	0.103719210283603	0.103719210283603
-1866	1740	1878	0.161887620550325	0.161887620550325
-1868	1879	1880	0.0487542093720633	0.0487542093720633
-1869	1880	1122	0.0510369170722426	0.0510369170722426
-1871	1882	1883	0.588595740779303	0.588595740779303
-1872	1884	1885	0.152111272923972	0.152111272923972
-1873	1885	1886	0.199118819593963	0.199118819593963
-1874	1886	1887	0.200266209543398	0.200266209543398
-1876	1891	1892	0.0559298383062073	0.0559298383062073
-2989	776	2928	0.18503947742992	0.18503947742992
-1878	1893	1894	0.32823055853467	0.32823055853467
-1880	1895	1896	0.106010053095039	0.106010053095039
-1881	1896	1897	0.0966039225045284	0.0966039225045284
-1882	1897	1898	0.101329648076306	0.101329648076306
-1883	1898	1899	0.105723867542497	0.105723867542497
-1884	1899	1900	0.100059117952088	0.100059117952088
-1885	1900	1901	0.0102909725043749	0.0102909725043749
-1886	1901	1902	0.0917204387150709	0.0917204387150709
-1887	1902	1903	0.0488400104067164	0.0488400104067164
-1888	1903	1904	0.0516943831129701	0.0516943831129701
-1889	1904	1905	0.0485157141379251	0.0485157141379251
-1890	1905	1906	0.00454251169325352	0.00454251169325352
-1891	1906	1907	0.0474170350841876	0.0474170350841876
-1892	1907	1908	0.0520037008543052	0.0520037008543052
-1893	1908	1772	0.0471189408868131	0.0471189408868131
-1894	1772	1909	0.0492432884260358	0.0492432884260358
-1896	1910	1911	0.0495320112775386	0.0495320112775386
-1897	1911	1520	0.0493945814205325	0.0493945814205325
-1898	1520	1912	0.0533971088216985	0.0533971088216985
-1899	1912	1913	0.0492909868241652	0.0492909868241652
-1902	1914	1915	0.0940987095228026	0.0940987095228026
-1903	1915	1916	0.102901306177953	0.102901306177953
-1904	1916	1917	0.099610911557729	0.099610911557729
-1905	1917	1918	0.102910577647033	0.102910577647033
-1906	1918	1919	0.0967734482498666	0.0967734482498666
-1908	1920	1921	0.0462806189179572	0.0462806189179572
-1910	1922	1923	0.0456516788886206	0.0456516788886206
-1911	1923	1924	0.0505452419126903	0.0505452419126903
-1912	1924	1925	0.0504057374799388	0.0504057374799388
-1913	1925	1926	0.0476340401482501	0.0476340401482501
-1914	1926	1927	0.051053036843087	0.051053036843087
-1915	1927	1928	0.049153971321488	0.049153971321488
-1918	1930	1931	0.0561439680866497	0.0561439680866497
-1919	1931	1932	0.053826281457259	0.053826281457259
-3034	2965	2966	0.00876223324596343	0.00876223324596343
-1920	1932	1933	0.0477206876272752	0.0477206876272752
-1923	1935	1936	0.066876205689997	0.066876205689997
-1924	1937	1938	0.0446617758397252	0.0446617758397252
-1925	1938	1939	0.0840391912235338	0.0840391912235338
-1926	1939	1940	0.227469383602409	0.227469383602409
-1931	1944	1945	0.0952703264542464	0.0952703264542464
-1932	1945	1946	0.0974265293580338	0.0974265293580338
-1933	1947	1948	0.151605873109213	0.151605873109213
-1938	1952	1953	0.109258836266427	0.109258836266427
-1939	1953	1954	0.122481399421688	0.122481399421688
-1940	1954	1955	0.119684093740802	0.119684093740802
-1943	1957	1958	0.204446635842756	0.204446635842756
-1944	1958	1959	0.0997279110592744	0.0997279110592744
-1945	1959	1960	1.05168738215655	1.05168738215655
-1946	1960	1961	1.71048983577162	1.71048983577162
-1947	1962	1963	2.33567129984142	2.33567129984142
-1948	1963	1964	1.08148581800227	1.08148581800227
-1950	1965	1966	0.103934061554546	0.103934061554546
-1951	1966	1967	0.0454999873171455	0.0454999873171455
-1952	1967	1968	0.0964089929828049	0.0964089929828049
-1953	1968	1969	0.125489170754965	0.125489170754965
-1954	1969	1972	0.165851140560008	0.165851140560008
-1955	1972	1973	0.145299005046435	0.145299005046435
-1956	1973	1974	0.145772913358701	0.145772913358701
-1957	1974	1975	0.149974913959851	0.149974913959851
-1958	1975	1976	0.145057930633755	0.145057930633755
-1959	1976	1977	0.143477867614704	0.143477867614704
-1961	1978	420	0.0932140793920545	0.0932140793920545
-1963	1963	1979	1.08603450886527	1.08603450886527
-1964	1979	1980	0.0983329965983175	0.0983329965983175
-1965	1980	1981	0.0917353737473226	0.0917353737473226
-1966	1981	1982	0.055771341470748	0.055771341470748
-1967	1982	1983	0.0968737393586206	0.0968737393586206
-1968	1983	1984	0.0954710209286709	0.0954710209286709
-1969	1984	1985	0.0293519873253464	0.0293519873253464
-1970	1985	1986	0.0704554284720801	0.0704554284720801
-1971	1986	1988	0.095403189447009	0.095403189447009
-1972	1988	1989	0.146040552740524	0.146040552740524
-1973	1989	1990	0.147511070915923	0.147511070915923
-1974	1990	1991	0.147511070914708	0.147511070914708
-1975	1991	1992	0.145306416846094	0.145306416846094
-1976	1992	1993	0.143786568306041	0.143786568306041
-1977	1993	1994	0.0151225768059817	0.0151225768059817
-1978	1994	420	0.0955903616259906	0.0955903616259906
-1980	1995	157	0.328733376766768	0.328733376766768
-1981	157	1721	0.24955962831592	0.24955962831592
-1983	1996	1997	0.475009767293493	0.475009767293493
-1984	1998	1999	0.203988417966153	0.203988417966153
-1985	1999	2000	0.200819821039785	0.200819821039785
-1986	2000	794	0.198875475027904	0.198875475027904
-1987	794	2001	0.203566311480143	0.203566311480143
-1988	2001	2002	0.201451879254481	0.201451879254481
-1989	2002	2003	0.203252240244887	0.203252240244887
-1990	2003	2004	0.204825535738971	0.204825535738971
-1991	2004	2005	0.188227904196053	0.188227904196053
-1992	2005	2006	0.0174353644977756	0.0174353644977756
-1994	353	2007	0.251582112428801	0.251582112428801
-1995	2007	2008	0.132634173204781	0.132634173204781
-1996	2008	2009	0.107027307843563	0.107027307843563
-1999	2011	646	0.139457974349072	0.139457974349072
-2000	646	2012	0.135033465549491	0.135033465549491
-2001	2012	1990	0.089412705524254	0.089412705524254
-2002	1990	1974	0.0383268944933106	0.0383268944933106
-2003	1974	2013	0.133766034901227	0.133766034901227
-2004	2013	2014	0.133581539638141	0.133581539638141
-2005	2014	2015	0.142379951799733	0.142379951799733
-2007	2016	2017	0.251899237124673	0.251899237124673
-2008	2017	2018	0.133367826813466	0.133367826813466
-2009	2018	2019	0.10602884511386	0.10602884511386
-2010	2019	2020	0.0337181930055553	0.0337181930055553
-2011	2020	2021	0.200388320757191	0.200388320757191
-2014	2023	2024	0.171565352607288	0.171565352607288
-2016	2025	2026	0.0477258088803687	0.0477258088803687
-2017	2026	2027	0.0809138557734271	0.0809138557734271
-2018	2027	2028	0.105296432652635	0.105296432652635
-2021	2030	2031	0.0518714690593594	0.0518714690593594
-2023	2032	2033	0.10377665457529	0.10377665457529
-2024	2033	2034	0.105027724692891	0.105027724692891
-2025	2034	2035	0.0547353150471903	0.0547353150471903
-2026	2035	2036	0.0513505470015755	0.0513505470015755
-2027	2036	2037	0.0518915831567366	0.0518915831567366
-2028	2038	2039	0.101144662033058	0.101144662033058
-2029	2039	2040	0.00469012569566242	0.00469012569566242
-2030	2040	2041	0.105219334964384	0.105219334964384
-2032	2042	2043	0.0933903014689556	0.0933903014689556
-2033	2043	559	0.0150758315973471	0.0150758315973471
-2034	559	2044	0.0636386622186814	0.0636386622186814
-2035	2044	2045	0.0177005397698663	0.0177005397698663
-2039	2048	1918	0.201578926546004	0.201578926546004
-2040	1918	2049	0.199006200917286	0.199006200917286
-2043	2051	70	0.203396158473628	0.203396158473628
-2045	1197	2052	0.0220081346494975	0.0220081346494975
-2046	2052	2053	0.200331631924477	0.200331631924477
-2047	2053	2054	0.154360922478377	0.154360922478377
-2048	2054	948	0.176666608936966	0.176666608936966
-2049	948	2055	0.165719712872644	0.165719712872644
-2050	2055	2056	0.169383792792816	0.169383792792816
-2052	2057	2058	0.174576187564815	0.174576187564815
-2053	2058	2059	0.172745648066703	0.172745648066703
-2054	2059	2060	0.176912657229173	0.176912657229173
-2055	2060	2061	0.164650081589568	0.164650081589568
-2057	2062	746	0.0627806188777907	0.0627806188777907
-2059	1564	2063	0.138541795103745	0.138541795103745
-2060	2063	2064	0.12093608528602	0.12093608528602
-2062	2065	693	0.201596255528806	0.201596255528806
-2063	693	2066	0.202309385780635	0.202309385780635
-2065	2067	2068	0.201208296937256	0.201208296937256
-2069	2072	2073	0.141581011374908	0.141581011374908
-2072	2075	2076	0.13960716604907	0.13960716604907
-2073	2076	2077	0.137352432815083	0.137352432815083
-2074	2077	2078	0.139172335676639	0.139172335676639
-2075	2078	2079	0.137570556837278	0.137570556837278
-2077	2080	2081	0.124260733003778	0.124260733003778
-2078	2081	2082	0.0143334567754311	0.0143334567754311
-2079	2082	1169	0.140817691182502	0.140817691182502
-2080	1169	889	0.136202795453782	0.136202795453782
-2081	889	2083	0.140272589797925	0.140272589797925
-2082	2083	2084	0.132655733622477	0.132655733622477
-2084	2085	2086	0.130758013034065	0.130758013034065
-2085	1055	2087	0.365531347335866	0.365531347335866
-2086	2087	2088	0.13568199350655	0.13568199350655
-2087	2088	2089	0.14074386927803	0.14074386927803
-2088	2089	2090	0.132744503428598	0.132744503428598
-2090	2091	2092	0.0599168224199403	0.0599168224199403
-2091	2093	1220	0.0866154902836551	0.0866154902836551
-2093	2095	2096	0.243872573445978	0.243872573445978
-2094	2096	2097	0.241082179338788	0.241082179338788
-2096	2098	2099	0.174814701889178	0.174814701889178
-2097	2099	2100	0.175154975379932	0.175154975379932
-2100	2102	2103	0.114419579517541	0.114419579517541
-2101	2103	2104	0.285214999643623	0.285214999643623
-2102	2104	2107	0.394315301182406	0.394315301182406
-2104	333	2108	0.278529398579064	0.278529398579064
-2106	1150	1822	0.102734424254821	0.102734424254821
-2108	2109	2110	0.202389435684367	0.202389435684367
-2109	2110	2111	0.203214045748693	0.203214045748693
-2110	2111	2112	0.241815761631872	0.241815761631872
-2111	2112	2113	0.100823640639482	0.100823640639482
-2112	2113	2114	0.00265953685516916	0.00265953685516916
-2114	2115	2116	0.238307263458502	0.238307263458502
-2116	2117	2118	0.172019623051487	0.172019623051487
-2117	2118	2119	0.0267252812490126	0.0267252812490126
-2118	2119	2120	0.200138632498134	0.200138632498134
-2119	2120	2121	0.20340922729078	0.20340922729078
-2120	2121	2122	0.197749465935997	0.197749465935997
-2121	2122	2123	0.20148284791492	0.20148284791492
-2122	2123	2124	0.206967663578278	0.206967663578278
-2123	2124	688	0.198127359399408	0.198127359399408
-2124	688	1981	0.162008033573987	0.162008033573987
-2127	2127	2128	0.0963587083366664	0.0963587083366664
-2128	2128	1149	0.101309363144821	0.101309363144821
-2130	2129	2130	0.268413747321973	0.268413747321973
-15791	2106	2131	0.0329007751166605	0.0329007751166605
-2131	2130	2132	0.135315648859656	0.135315648859656
-2133	2133	2134	0.206936888424913	0.206936888424913
-2134	2134	2135	0.199680286737687	0.199680286737687
-2135	2135	801	0.201106069676904	0.201106069676904
-2136	801	2136	0.201743876713814	0.201743876713814
-2137	2136	2137	0.208870260631958	0.208870260631958
-2138	2137	2138	0.202159360168084	0.202159360168084
-2139	2138	2139	0.199627649413879	0.199627649413879
-2140	2139	2140	0.186052011799078	0.186052011799078
-2142	2141	2142	0.0396569310433899	0.0396569310433899
-2168	2167	2168	0.189234637777307	0.189234637777307
-2143	2142	2143	0.0683760552809121	0.0683760552809121
-2144	2143	2144	0.00806043179372478	0.00806043179372478
-2145	2144	2145	0.00436074705638217	0.00436074705638217
-2146	2145	2146	0.00359181344508779	0.00359181344508779
-2147	2146	2147	0.00395340009925433	0.00395340009925433
-2148	2147	2148	0.136610372293043	0.136610372293043
-2149	2148	2149	0.180604844053974	0.180604844053974
-2152	2152	2153	0.132023781927159	0.132023781927159
-2153	2153	2154	0.135708940609739	0.135708940609739
-2154	2154	1415	0.130555983926377	0.130555983926377
-2155	1415	1355	0.134241500709378	0.134241500709378
-2156	1355	2155	0.0746101236889861	0.0746101236889861
-2161	2159	2161	0.133841125283574	0.133841125283574
-2162	2161	2162	0.1372260849468	0.1372260849468
-2163	2162	2163	0.128741940100472	0.128741940100472
-2164	2163	2164	0.135391700615332	0.135391700615332
-2169	2168	2169	0.201124079513876	0.201124079513876
-2170	2169	2170	0.108103708021473	0.108103708021473
-2172	2172	2173	0.13444261016809	0.13444261016809
-2173	2173	2174	0.13827137965728	0.13827137965728
-2174	2174	2175	0.134068324786893	0.134068324786893
-2175	2175	2176	0.133067365005956	0.133067365005956
-2176	2176	2177	0.135535927176987	0.135535927176987
-2177	2177	2178	0.134471884610529	0.134471884610529
-2180	2180	2181	0.201420608111328	0.201420608111328
-2182	2182	2183	0.0166632573599522	0.0166632573599522
-2183	2183	2184	0.101864448677803	0.101864448677803
-2184	2184	2185	0.047789206759145	0.047789206759145
-2185	2185	2186	0.0423227378750124	0.0423227378750124
-4423	3782	4133	0.154572357311794	0.154572357311794
-2186	2186	2187	0.66062410841751	0.66062410841751
-2188	2188	1945	0.10637947146537	0.10637947146537
-2189	1945	2189	0.148995294788127	0.148995294788127
-2211	2212	2213	0.0467155303221573	0.0467155303221573
-2190	2189	2190	0.327169136665339	0.327169136665339
-2192	2191	2192	0.0188299118027414	0.0188299118027414
-2193	2192	2193	0.210910851782462	0.210910851782462
-2195	2194	2195	0.365278744815015	0.365278744815015
-2196	2195	2196	0.0130424738912125	0.0130424738912125
-2197	2196	2197	0.0449464311286017	0.0449464311286017
-2198	2197	2198	0.0030293307914236	0.0030293307914236
-2199	2198	2199	0.128682754082238	0.128682754082238
-2200	2199	2200	0.110573702095649	0.110573702095649
-2202	2203	2204	0.10817464433389	0.10817464433389
-2203	2204	2205	0.107622599984834	0.107622599984834
-2204	2205	2206	0.108403921870099	0.108403921870099
-2205	2206	2207	0.060733439657354	0.060733439657354
-2206	2207	2208	0.0534350684854931	0.0534350684854931
-2207	2208	2209	0.0529414575701877	0.0529414575701877
-2208	2209	2210	0.0527447832774698	0.0527447832774698
-2209	2210	2211	0.102434337721347	0.102434337721347
-2210	2211	2212	0.0503091444283059	0.0503091444283059
-2212	2213	2214	0.0457845256573543	0.0457845256573543
-2213	2214	2215	0.0483154919494593	0.0483154919494593
-2214	2215	2216	0.0500256719211907	0.0500256719211907
-2215	2216	2217	0.0483324272045254	0.0483324272045254
-2216	2217	2218	0.0492693454756351	0.0492693454756351
-2217	2218	2219	0.0514417765088717	0.0514417765088717
-2218	2219	2220	0.0488786158333744	0.0488786158333744
-2219	2220	981	0.0498905437062621	0.0498905437062621
-2220	981	2221	0.0506165357374516	0.0506165357374516
-2221	2221	2222	0.046223636949906	0.046223636949906
-2224	2224	2225	0.051453756147013	0.051453756147013
-2225	2225	2226	0.0468957891600155	0.0468957891600155
-2226	2226	2227	0.0492631927304953	0.0492631927304953
-2227	2227	2228	0.0520252151650071	0.0520252151650071
-2228	2228	2229	0.0550486617142997	0.0550486617142997
-2229	2230	2231	0.0139385553943917	0.0139385553943917
-2230	2231	2232	0.0929550410270359	0.0929550410270359
-2234	2236	2237	0.0961215858652653	0.0961215858652653
-2235	2237	2238	0.0993231725885536	0.0993231725885536
-19654	10604	10606	0.0711515052063537	0.0711515052063537
-2236	2238	2239	0.0986901078011995	0.0986901078011995
-2237	2239	2120	0.100412717366674	0.100412717366674
-2238	2120	2240	0.0994425769829808	0.0994425769829808
-2239	2240	2241	0.0986741447066025	0.0986741447066025
-2240	2241	2242	0.196986803845301	0.196986803845301
-2241	2245	2246	0.0853554831080311	0.0853554831080311
-2242	2246	1017	0.10642802452306	0.10642802452306
-2243	1017	2247	0.0517185594306615	0.0517185594306615
-2244	2247	2248	0.0530774886579764	0.0530774886579764
-16655	3462	3463	0.083025520087948	0.083025520087948
-2245	2248	2249	0.0515725288155829	0.0515725288155829
-2246	2249	2250	0.0550106406637853	0.0550106406637853
-2247	2250	2251	0.0492291609495858	0.0492291609495858
-2250	2253	2254	0.068064098421736	0.068064098421736
-2251	2254	381	0.0653278702953464	0.0653278702953464
-2253	2255	2256	0.176933367276823	0.176933367276823
-2255	2257	1830	0.176665129086282	0.176665129086282
-2257	1817	2258	0.0851310356517557	0.0851310356517557
-2258	2258	2259	0.0498677366751348	0.0498677366751348
-2260	2260	2261	0.20430957984894	0.20430957984894
-2263	2263	2264	0.172785898975569	0.172785898975569
-2265	2265	2266	0.17364958356586	0.17364958356586
-2266	2266	2267	0.245119251352525	0.245119251352525
-2267	2267	2268	0.132589695523512	0.132589695523512
-2268	2268	2269	0.106738596174206	0.106738596174206
-2269	2269	2270	0.0337285830402062	0.0337285830402062
-20279	7555	7554	0.0146999916602211	0.0146999916602211
-2270	2270	2271	0.269363966522552	0.269363966522552
-2273	2275	684	0.204569111503518	0.204569111503518
-2274	684	1986	0.157853726642528	0.157853726642528
-2278	2278	2279	0.207434558661452	0.207434558661452
-2279	2279	2280	0.20034839537718	0.20034839537718
-2280	2280	798	0.19667070755531	0.19667070755531
-2281	798	2281	0.204476797355414	0.204476797355414
-2283	2282	2283	0.201226119347201	0.201226119347201
-2284	2283	2284	0.201775247020165	0.201775247020165
-2287	2286	2287	0.00679684653457476	0.00679684653457476
-2288	2287	2288	0.00351717235619697	0.00351717235619697
-2289	2288	2289	0.00475072672267961	0.00475072672267961
-2290	2289	2290	0.085203263947135	0.085203263947135
-2292	2291	2292	0.21658567369152	0.21658567369152
-2293	2292	2293	0.294285406846423	0.294285406846423
-2295	1532	2294	0.0895735364116296	0.0895735364116296
-2296	2294	2295	0.130472447344756	0.130472447344756
-2298	2044	560	0.0834414685220809	0.0834414685220809
-2299	560	913	0.519257886958262	0.519257886958262
-2300	913	2297	0.14849143076931	0.14849143076931
-2301	2297	2299	0.276635413291223	0.276635413291223
-2356	2345	2346	0.126022029068994	0.126022029068994
-2302	2299	2300	0.882147486934507	0.882147486934507
-2304	2301	2302	0.171837385748798	0.171837385748798
-2305	2302	2303	0.168190952055295	0.168190952055295
-2308	1995	1585	0.0793668846267203	0.0793668846267203
-2310	1646	2305	0.0800618116658591	0.0800618116658591
-2311	2305	2306	0.0800532572745142	0.0800532572745142
-2312	2306	2307	0.0808374839403145	0.0808374839403145
-2313	2307	2308	0.0793040216351705	0.0793040216351705
-2315	2309	2310	0.0976846110372701	0.0976846110372701
-2317	2311	2312	0.131380688058575	0.131380688058575
-2318	2312	2313	0.00313000089825153	0.00313000089825153
-2319	2313	2157	0.109122831884578	0.109122831884578
-2320	2157	2314	0.0470081550211631	0.0470081550211631
-2321	2314	441	0.0450344666647882	0.0450344666647882
-2326	1614	2317	0.105832922283753	0.105832922283753
-2327	2317	2319	0.101211119794553	0.101211119794553
-2328	2319	914	0.105388128978222	0.105388128978222
-2351	2100	2341	0.101951720072048	0.101951720072048
-2352	2341	2342	0.101030261985598	0.101030261985598
-2353	2342	2330	0.0997965680595524	0.0997965680595524
-2354	2330	2343	0.101856778567858	0.101856778567858
-2355	2344	2345	0.0735649917770033	0.0735649917770033
-2357	2346	2347	0.106673075682264	0.106673075682264
-2358	2347	2348	0.104262034499471	0.104262034499471
-2359	2348	2057	0.103127373430199	0.103127373430199
-2360	2057	2350	0.104860273903505	0.104860273903505
-2361	2350	2351	0.102072059078566	0.102072059078566
-2362	2351	2352	0.10208795508847	0.10208795508847
-2363	2352	2353	0.103003886322398	0.103003886322398
-2364	2353	2354	0.104842753763622	0.104842753763622
-2365	2354	2355	0.102079170592138	0.102079170592138
-2366	2355	2356	0.104157794922069	0.104157794922069
-2367	2356	2357	0.102771960719463	0.102771960719463
-2368	2357	843	0.10323381873133	0.10323381873133
-2369	843	2358	0.104166303367793	0.104166303367793
-2370	2358	2359	0.04678514768012	0.04678514768012
-2372	2360	2361	0.106536201799638	0.106536201799638
-2373	2361	2362	0.0524641553188961	0.0524641553188961
-2374	2362	2363	0.0542089866141956	0.0542089866141956
-2376	964	2364	0.101990510698998	0.101990510698998
-2377	2364	2365	0.0991028819964669	0.0991028819964669
-2378	2365	2366	0.101583146356588	0.101583146356588
-2379	2366	2367	0.0976663347579885	0.0976663347579885
-2380	2367	2368	0.137463391512845	0.137463391512845
-2382	2369	2370	0.0935927888835794	0.0935927888835794
-2383	2370	2371	0.22137940675351	0.22137940675351
-2384	93	2372	0.144113051799641	0.144113051799641
-2386	2373	2374	0.118928753039855	0.118928753039855
-18871	9233	10374	0.171083495652578	0.171083495652578
-2387	2374	2375	0.0543464584708682	0.0543464584708682
-2389	2378	2379	0.0407086995566738	0.0407086995566738
-2392	2381	2382	0.0375038196347678	0.0375038196347678
-2393	2383	2384	0.0259773773232023	0.0259773773232023
-2416	2406	2407	0.0997923351013975	0.0997923351013975
-2417	2407	2408	0.102411248163046	0.102411248163046
-2418	2408	2410	0.102005785733823	0.102005785733823
-2419	2410	2411	0.0465568279250156	0.0465568279250156
-2420	2411	1116	0.0498480806250605	0.0498480806250605
-2421	1116	2412	0.0524212085974951	0.0524212085974951
-2422	2412	2413	0.00643722349691115	0.00643722349691115
-2423	2413	2414	0.0569639986120168	0.0569639986120168
-2424	2414	2415	0.054429107165009	0.054429107165009
-2426	1254	2416	0.203595366987771	0.203595366987771
-2427	2416	2418	0.194946286421225	0.194946286421225
-2429	2419	2420	0.10553685574305	0.10553685574305
-2430	2420	2421	0.100987191369147	0.100987191369147
-2431	2421	2422	0.140456845404627	0.140456845404627
-2432	2423	2424	0.132127040761259	0.132127040761259
-2433	2424	2425	0.0836330996531634	0.0836330996531634
-2434	2425	2426	0.048846065804279	0.048846065804279
-2435	2426	2427	0.133578105271454	0.133578105271454
-2437	2428	2429	0.0517867804859422	0.0517867804859422
-2438	2429	2430	0.0498462274807045	0.0498462274807045
-2439	2430	2431	0.0505796838521555	0.0505796838521555
-2440	2431	2432	0.04930585188023	0.04930585188023
-2441	2432	2433	0.0511391992663707	0.0511391992663707
-2442	2433	2434	0.049421053488602	0.049421053488602
-2444	2435	2436	0.0499548965774192	0.0499548965774192
-2446	2437	2438	0.0498278119665032	0.0498278119665032
-2447	2438	1131	0.0475201423687532	0.0475201423687532
-2448	1131	2440	0.0499034161165238	0.0499034161165238
-2449	2440	2441	0.0519460604074748	0.0519460604074748
-2450	2441	2442	0.103666385736129	0.103666385736129
-2451	2442	2443	0.0495636449318867	0.0495636449318867
-2452	2443	2444	0.0508868110117968	0.0508868110117968
-2454	2445	2446	0.0992414144632343	0.0992414144632343
-2455	2446	2447	0.0995661619141735	0.0995661619141735
-2456	2447	2448	0.102918667647187	0.102918667647187
-2457	2448	2449	0.103317708000917	0.103317708000917
-2458	2449	714	0.103614639817309	0.103614639817309
-2460	2450	2451	0.0843633084104915	0.0843633084104915
-2462	2452	2453	0.133209824518529	0.133209824518529
-2463	2453	2454	0.136026824487267	0.136026824487267
-2464	2454	1228	0.0997640460624544	0.0997640460624544
-2466	2455	2173	0.100670279604477	0.100670279604477
-2467	2173	2456	0.101681998391895	0.101681998391895
-2468	2456	2457	0.135717601546705	0.135717601546705
-2469	2457	2458	0.125216072912334	0.125216072912334
-2470	2458	1253	0.13515574813911	0.13515574813911
-2472	1811	2459	0.0528114155967436	0.0528114155967436
-2474	489	2460	0.0154146680516237	0.0154146680516237
-2475	2460	2461	0.0956622199995578	0.0956622199995578
-2476	2461	2462	0.050324686032827	0.050324686032827
-2477	2462	2463	0.0440541436649478	0.0440541436649478
-2478	2463	2464	0.09025955144498	0.09025955144498
-2479	2464	2465	0.00954118829962817	0.00954118829962817
-2480	2465	2466	0.0924623221003645	0.0924623221003645
-2481	2466	2015	0.0557729059183765	0.0557729059183765
-2483	1998	2467	0.0939242873690555	0.0939242873690555
-2485	2468	2469	0.0807187230923558	0.0807187230923558
-2486	2469	2470	0.0660886283093114	0.0660886283093114
-2487	2470	2471	0.0307524582434291	0.0307524582434291
-2488	2471	2277	0.0631719504961159	0.0631719504961159
-2489	2277	2278	0.040321437937915	0.040321437937915
-2490	2278	2472	0.0579924273198359	0.0579924273198359
-2491	2472	2473	0.039564008523498	0.039564008523498
-2492	2473	2474	0.0566191459993118	0.0566191459993118
-2493	2474	2475	0.0461657995077916	0.0461657995077916
-2494	2475	2476	0.0573841993244499	0.0573841993244499
-2495	2476	2133	0.0413742441677564	0.0413742441677564
-2496	2133	2477	0.100557820130683	0.100557820130683
-2497	2477	2478	0.100232094382669	0.100232094382669
-2523	1412	1352	0.126262872161581	0.126262872161581
-2498	2478	2479	3.80416722159948	3.80416722159948
-17380	5747	2721	0.292296181002999	0.292296181002999
-2500	2481	2482	0.133762433378551	0.133762433378551
-2502	2483	2484	0.132763004680832	0.132763004680832
-2503	2484	2153	0.135437121880425	0.135437121880425
-2506	2486	2487	0.0976687527368442	0.0976687527368442
-2507	2487	2488	0.100497620432408	0.100497620432408
-2508	2488	1263	0.0968234302487817	0.0968234302487817
-2510	2489	2490	0.129998303918767	0.129998303918767
-2511	2490	2491	0.131427328920895	0.131427328920895
-2512	2491	2492	0.134959393077107	0.134959393077107
-2513	2492	2493	0.13352181172892	0.13352181172892
-2514	2493	2494	0.134977098269894	0.134977098269894
-2515	2494	2495	0.133660770711518	0.133660770711518
-2517	2496	1452	0.127643758305543	0.127643758305543
-2519	2497	2498	0.181370133617083	0.181370133617083
-2521	2481	2499	0.0828768372746742	0.0828768372746742
-2522	2499	1412	0.137652613646732	0.137652613646732
-2524	1352	2502	0.0676943813373141	0.0676943813373141
-2526	2503	2504	0.133817315449894	0.133817315449894
-2527	2504	2505	0.135673996947998	0.135673996947998
-2528	2505	2506	0.131966049224978	0.131966049224978
-2529	2506	2507	0.147529903316466	0.147529903316466
-2530	2507	2508	0.139391603159038	0.139391603159038
-16296	2509	2510	0.0284493842376544	0.0284493842376544
-2532	2511	2512	0.0269759988952267	0.0269759988952267
-2533	2512	2513	0.0303785309203703	0.0303785309203703
-2534	2513	2514	0.100988065805353	0.100988065805353
-2535	2514	2515	0.134258813820628	0.134258813820628
-2536	2515	2516	0.1356600895436	0.1356600895436
-2537	2516	2517	0.13329676442141	0.13329676442141
-2538	2517	1672	0.132852712666159	0.132852712666159
-2539	1672	2518	0.137264898504848	0.137264898504848
-2540	2518	2453	0.136447294484888	0.136447294484888
-2541	2453	2519	0.136891385699314	0.136891385699314
-2542	2519	2520	0.134024921907499	0.134024921907499
-2544	2521	2522	0.0902887501429021	0.0902887501429021
-2545	2522	2523	0.0432770654501463	0.0432770654501463
-2546	2523	2524	0.0452800647802491	0.0452800647802491
-2547	2524	2525	0.0887962039212883	0.0887962039212883
-2549	2526	2527	0.14861247431244	0.14861247431244
-2550	2527	2528	0.177718576341635	0.177718576341635
-2552	2529	2530	0.0550007858390758	0.0550007858390758
-2553	2530	2531	0.0537231597686698	0.0537231597686698
-2557	254	1937	0.0763145446596447	0.0763145446596447
-2562	2536	2537	0.0969383510155091	0.0969383510155091
-2564	2523	2538	0.041595541767366	0.041595541767366
-2565	2538	2539	0.0446801019224323	0.0446801019224323
-2567	2540	2541	0.0535606711091096	0.0535606711091096
-2568	2541	2542	0.0510376050613383	0.0510376050613383
-2569	2542	2543	0.048208042370787	0.048208042370787
-2570	2543	2544	0.0495068215823226	0.0495068215823226
-2571	2544	2545	0.0497291777137453	0.0497291777137453
-2572	2545	2546	0.0482680412228731	0.0482680412228731
-2573	2546	2547	0.0511986246623993	0.0511986246623993
-2574	2547	2548	0.0481311400848056	0.0481311400848056
-2575	2548	2549	0.05133533567668	0.05133533567668
-2576	2549	1090	0.0473365047010202	0.0473365047010202
-2578	2550	2551	0.0490112208554607	0.0490112208554607
-2579	2551	2552	0.0504551815276218	0.0504551815276218
-2580	2552	2553	0.0492845875119232	0.0492845875119232
-2581	2553	2554	0.0515497460521136	0.0515497460521136
-2582	2554	2555	0.0526862102053863	0.0526862102053863
-2583	2555	2556	0.0982237295878	0.0982237295878
-2584	2556	2557	0.264254691363992	0.264254691363992
-2585	1004	2558	0.099742520234474	0.099742520234474
-2588	2560	1078	0.149639182772472	0.149639182772472
-2589	1078	2522	0.184839011544187	0.184839011544187
-2591	1484	2561	0.33893453481304	0.33893453481304
-2592	2561	2562	0.36930331062994	0.36930331062994
-2594	2563	2295	0.235151876914131	0.235151876914131
-2596	2141	2564	0.0808696846181639	0.0808696846181639
-2628	2589	2590	0.046646895086832	0.046646895086832
-2597	2564	1224	0.24032404212478	0.24032404212478
-2600	2373	2567	0.1712601795962	0.1712601795962
-2601	2567	2568	0.00945648555666562	0.00945648555666562
-2603	2565	2569	0.0807956808253844	0.0807956808253844
-2604	2569	2570	0.076951583144574	0.076951583144574
-2605	2570	2571	0.0476131935554626	0.0476131935554626
-2607	2572	2568	0.0312593605711727	0.0312593605711727
-2609	2569	2573	0.0486149705677772	0.0486149705677772
-2610	2570	2574	0.0674260333743846	0.0674260333743846
-2612	2567	2575	0.0505261001159507	0.0505261001159507
-2615	2577	2578	0.10424034664628	0.10424034664628
-2616	2578	2579	0.103512640883379	0.103512640883379
-2617	2579	1398	0.105102630546257	0.105102630546257
-2618	1398	2580	0.0531367598624707	0.0531367598624707
-2619	2580	2581	0.0517085263170068	0.0517085263170068
-2620	2581	2582	0.0723991341895349	0.0723991341895349
-2621	2582	2583	0.0331676268132885	0.0331676268132885
-2622	2583	2584	0.0138525911142565	0.0138525911142565
-2623	2584	2585	0.037416228202987	0.037416228202987
-2624	2585	2586	0.00994286750486891	0.00994286750486891
-2625	2586	2587	0.040254104254433	0.040254104254433
-2629	2590	2591	0.00335375549834044	0.00335375549834044
-2630	2591	2592	0.0463774647105825	0.0463774647105825
-2631	2592	2593	0.00549997045042586	0.00549997045042586
-2632	2593	2594	0.0383542392436341	0.0383542392436341
-2634	2595	2596	0.0344869484873441	0.0344869484873441
-2635	2596	2597	0.0176627396467139	0.0176627396467139
-2636	2597	2598	0.0280292044334563	0.0280292044334563
-2637	2598	2599	0.0242403080070769	0.0242403080070769
-2638	2599	1569	0.0218944112855232	0.0218944112855232
-2639	1569	2600	0.0286200762867591	0.0286200762867591
-2640	2600	1094	0.018347539243156	0.018347539243156
-2642	1110	2601	0.0142742072830798	0.0142742072830798
-2643	2601	2602	0.0369383896439539	0.0369383896439539
-2644	2602	2603	0.00917687822572764	0.00917687822572764
-2645	2603	2604	0.0430608643022986	0.0430608643022986
-2646	2604	2605	0.00238679099543715	0.00238679099543715
-2647	2605	2606	0.0472847267591164	0.0472847267591164
-2648	2606	2607	0.0508445190476207	0.0508445190476207
-2649	2607	2608	0.00234361810734104	0.00234361810734104
-2650	2608	2609	0.0517900277245267	0.0517900277245267
-2652	2610	2611	0.145180979465517	0.145180979465517
-2674	2632	2634	0.599531015097949	0.599531015097949
-2675	2635	2181	0.0871692653780363	0.0871692653780363
-2676	2181	2638	0.0863959675292808	0.0863959675292808
-2679	2640	2641	0.121944822987822	0.121944822987822
-2681	2642	2643	0.0194925006650245	0.0194925006650245
-2682	2643	2350	0.134347723988409	0.134347723988409
-2683	2350	2644	0.173564798460366	0.173564798460366
-2684	2644	2645	0.174686152075606	0.174686152075606
-2685	2645	2646	0.175389969986131	0.175389969986131
-2688	2648	747	0.0612580153194998	0.0612580153194998
-2689	747	1565	0.142756107755667	0.142756107755667
-2690	1565	2649	0.138016127389502	0.138016127389502
-2691	2649	2650	0.12023627946696	0.12023627946696
-2693	2651	694	0.200802439501944	0.200802439501944
-2695	2652	2653	0.127019992895419	0.127019992895419
-2696	2653	2654	0.201028199806741	0.201028199806741
-2697	2654	2655	0.134212276460076	0.134212276460076
-2698	2655	2656	0.140083368586782	0.140083368586782
-2699	2656	2657	0.13046105136647	0.13046105136647
-2702	2633	2659	0.199675824720705	0.199675824720705
-2704	2660	949	0.174693421852154	0.174693421852154
-2705	949	2661	0.165148304595761	0.165148304595761
-2706	2661	2662	0.173966950291824	0.173966950291824
-2707	2662	2663	0.184218102738583	0.184218102738583
-2708	2663	2664	0.172496811774092	0.172496811774092
-2710	2665	2666	0.394651095737645	0.394651095737645
-2711	2667	2668	0.201414903082426	0.201414903082426
-17301	8745	4260	0.201420130125937	0.201420130125937
-2713	2669	2388	0.109456559825348	0.109456559825348
-2714	2388	2670	0.140828374595316	0.140828374595316
-2717	2672	2673	0.139177577172101	0.139177577172101
-2718	2673	2674	0.137352749762486	0.137352749762486
-2719	2674	2675	0.139830667816654	0.139830667816654
-2720	2675	2676	0.136669684605715	0.136669684605715
-2722	2677	2678	0.12447911414286	0.12447911414286
-2750	2704	2705	0.0292446267270126	0.0292446267270126
-2751	2705	2706	0.00658282845173238	0.00658282845173238
-2752	2706	2707	0.0151449443945988	0.0151449443945988
-2753	2707	2708	0.0714770438658631	0.0714770438658631
-2754	2708	2709	0.00822853556213401	0.00822853556213401
-2756	2710	8	0.130042568169854	0.130042568169854
-2757	8	2711	0.118166571537094	0.118166571537094
-2759	2712	2713	0.102388493919056	0.102388493919056
-2760	2713	2416	0.103111259495513	0.103111259495513
-2761	2416	2714	0.100631617654013	0.100631617654013
-2764	2716	2717	0.200655449563851	0.200655449563851
-2765	2717	2718	0.200753725915124	0.200753725915124
-2766	2718	1440	0.196942260224429	0.196942260224429
-2767	1440	2719	0.00947384243402213	0.00947384243402213
-2768	2719	2720	0.190389032049707	0.190389032049707
-2770	2723	2724	0.133138466543617	0.133138466543617
-2771	2724	2725	0.135835722389097	0.135835722389097
-2772	2725	2726	0.133534041022806	0.133534041022806
-2773	2726	2727	0.134234713813183	0.134234713813183
-2774	2727	1681	0.134687505819062	0.134687505819062
-2775	1681	2728	0.137316317225174	0.137316317225174
-2777	2729	2730	0.104120921025978	0.104120921025978
-2778	2730	2731	0.201486044854047	0.201486044854047
-2779	2731	2732	0.409054627036075	0.409054627036075
-2780	2733	2734	0.231399786377778	0.231399786377778
-2781	2734	2735	0.0901704059113055	0.0901704059113055
-2782	2735	2736	0.0825094909725568	0.0825094909725568
-2783	2737	2738	0.200363396709187	0.200363396709187
-2784	2738	2739	0.20121833925615	0.20121833925615
-2785	2739	2740	0.202399438971847	0.202399438971847
-2788	2742	2743	0.404396545451488	0.404396545451488
-2789	2744	1762	0.0647074290459755	0.0647074290459755
-2790	1762	2372	0.0925216625359094	0.0925216625359094
-2791	2372	2745	0.0223137340397398	0.0223137340397398
-2792	2745	2737	0.050045237249892	0.050045237249892
-2794	2746	2747	0.14840065064165	0.14840065064165
-2796	2748	2749	0.200822547172327	0.200822547172327
-2797	2749	2750	0.193145905748916	0.193145905748916
-2821	908	2770	0.128136612557408	0.128136612557408
-2824	2261	2772	0.10049786598023	0.10049786598023
-2825	2772	2773	0.106378037300959	0.106378037300959
-2826	2773	2110	0.093897002068377	0.093897002068377
-2827	2110	2774	0.107389868338328	0.107389868338328
-2828	2774	2775	0.0994873393877801	0.0994873393877801
-2850	2776	2777	0.10879749556538	0.10879749556538
-2855	2804	866	0.20027757395038	0.20027757395038
-2829	2775	2778	1.00147658782101	1.00147658782101
-2830	2779	2780	0.0530172029480301	0.0530172029480301
-2832	2781	2782	0.107966324930259	0.107966324930259
-2833	2782	2783	0.103296913871679	0.103296913871679
-2834	2783	2784	0.105735267915707	0.105735267915707
-2835	2784	2785	0.104367827383757	0.104367827383757
-2836	2785	2786	0.106026097865505	0.106026097865505
-2837	2786	2787	0.104661406473263	0.104661406473263
-2838	2787	2788	0.109120444986171	0.109120444986171
-2842	2790	2791	0.105111335997404	0.105111335997404
-2843	2791	2792	0.100650542913524	0.100650542913524
-2844	2792	2793	0.105228706955749	0.105228706955749
-2845	2793	2794	0.119444969275907	0.119444969275907
-2846	2794	2795	0.0942235633572651	0.0942235633572651
-2847	2795	2084	0.102241906689643	0.102241906689643
-2848	2084	2796	0.105000278025472	0.105000278025472
-2849	2796	2776	0.104992294488636	0.104992294488636
-2851	2777	2799	0.102990536508203	0.102990536508203
-2852	2799	2802	0.104419262818378	0.104419262818378
-3832	3274	3648	0.198107670536066	0.198107670536066
-2853	2802	2803	0.106343009363166	0.106343009363166
-2854	2803	2804	0.0880619154851023	0.0880619154851023
-2856	866	2805	0.0997722055250997	0.0997722055250997
-2857	2805	2806	0.0898296288997372	0.0898296288997372
-2858	2806	2807	0.0154103032800591	0.0154103032800591
-2860	1345	2808	0.0745089191630195	0.0745089191630195
-2862	2809	2810	0.0999390470653334	0.0999390470653334
-2863	2810	2811	0.098203415750831	0.098203415750831
-2864	2811	2812	0.105704456533214	0.105704456533214
-2865	2812	1841	0.178602078382633	0.178602078382633
-2867	2813	2814	0.147059691176011	0.147059691176011
-2869	2815	2816	0.0358929050784097	0.0358929050784097
-2871	2817	2818	0.202436914455554	0.202436914455554
-2872	2818	721	0.208959052889522	0.208959052889522
-2873	721	2819	0.195578398743409	0.195578398743409
-2874	2819	2820	0.132104447079437	0.132104447079437
-2875	2820	2499	0.133495572380704	0.133495572380704
-2877	2821	2823	0.131028201505055	0.131028201505055
-2878	2823	2154	0.134224367729179	0.134224367729179
-2879	2154	2824	0.137197819412826	0.137197819412826
-2881	2825	2828	0.100509300133652	0.100509300133652
-2882	2828	2829	0.098379052864586	0.098379052864586
-2883	2829	1264	0.0995905743898471	0.0995905743898471
-2884	1264	2830	0.0991885382845514	0.0991885382845514
-2885	2830	2831	0.0990153060665791	0.0990153060665791
-2886	2831	2718	0.0991269733313679	0.0991269733313679
-2887	2718	2832	0.100500652429342	0.100500652429342
-2888	2832	2833	0.0102715407543069	0.0102715407543069
-2889	2833	2834	0.0960953974534679	0.0960953974534679
-2890	2834	2835	0.0326867749280955	0.0326867749280955
-2891	2835	2836	0.134256786764763	0.134256786764763
-2892	2836	2837	0.113988792124523	0.113988792124523
-2893	2837	2838	0.0204082374430359	0.0204082374430359
-2895	2839	2840	0.113685974247049	0.113685974247049
-2896	2840	2841	0.132754406259035	0.132754406259035
-2897	2841	2842	0.136852657742897	0.136852657742897
-2899	1793	2843	0.0809702263007341	0.0809702263007341
-2900	2843	2844	0.0969425296921621	0.0969425296921621
-2901	2844	2845	0.413436446480526	0.413436446480526
-2903	2263	2847	0.179984264422638	0.179984264422638
-2904	2847	2848	0.174004040987329	0.174004040987329
-2905	2848	2849	0.194108624427032	0.194108624427032
-2907	2850	1276	0.172413086756907	0.172413086756907
-2909	2853	785	0.245123885631009	0.245123885631009
-2911	2854	2855	0.0854841952170884	0.0854841952170884
-2912	2855	2747	0.0762350203886263	0.0762350203886263
-2913	2747	2856	0.0859704175448271	0.0859704175448271
-2914	2856	2857	0.100779098585589	0.100779098585589
-2915	2857	2858	0.0905252463288938	0.0905252463288938
-2917	2859	2860	0.0227727209766704	0.0227727209766704
-2918	361	1735	0.198105222979832	0.198105222979832
-2919	1735	2861	0.0382126884100893	0.0382126884100893
-2920	148	2862	0.0438716250050412	0.0438716250050412
-2921	1003	2863	0.0520715649387988	0.0520715649387988
-2922	2863	2864	0.0982728809134093	0.0982728809134093
-2923	2864	2865	0.0994946507259965	0.0994946507259965
-3895	3698	3699	0.204838159377623	0.204838159377623
-2924	2865	2869	0.090463384362138	0.090463384362138
-2925	2869	2870	0.0564720828613131	0.0564720828613131
-2926	2870	2871	0.0608640771597173	0.0608640771597173
-2927	2872	2873	0.044011799999607	0.044011799999607
-2928	2873	2088	0.0931496819660856	0.0931496819660856
-2929	2088	2655	0.0960691148224413	0.0960691148224413
-2930	2655	2874	0.0937706080748846	0.0937706080748846
-2931	2874	2875	0.0828791997484075	0.0828791997484075
-2932	2875	2876	0.093218621711434	0.093218621711434
-2933	2876	2877	0.0704167162147941	0.0704167162147941
-2935	2878	2879	0.0887403720940643	0.0887403720940643
-2936	2879	2880	0.0909098673154509	0.0909098673154509
-2937	2880	2881	0.0882058988614067	0.0882058988614067
-2938	2881	2882	0.181777411929199	0.181777411929199
-2940	2883	2884	0.115661337881372	0.115661337881372
-2941	2884	2885	0.14826485880128	0.14826485880128
-2942	2885	2886	0.112251623213379	0.112251623213379
-2943	2886	2887	0.119994591224275	0.119994591224275
-2944	2887	2888	0.178622958928809	0.178622958928809
-2945	2888	2889	0.00412533177852682	0.00412533177852682
-2946	2889	2890	0.00481474032387871	0.00481474032387871
-2947	2890	2893	0.135290874001292	0.135290874001292
-2948	2893	2894	0.137892832771659	0.137892832771659
-2949	2894	817	0.140150092060959	0.140150092060959
-2950	817	2895	0.143808402694827	0.143808402694827
-2951	2895	2896	0.0697081016101773	0.0697081016101773
-2952	2896	2897	0.0168682725384664	0.0168682725384664
-2954	2898	2899	0.139071498957887	0.139071498957887
-2956	2900	2901	0.139727551358826	0.139727551358826
-2957	2901	2902	0.00293554606295758	0.00293554606295758
-2958	2902	2903	0.102721876435386	0.102721876435386
-2959	2903	2904	0.0305452475451112	0.0305452475451112
-2960	2904	2905	0.00503713742922791	0.00503713742922791
-2961	2905	2906	0.0458567885450819	0.0458567885450819
-2962	2906	2907	0.0981295261146626	0.0981295261146626
-2963	2907	628	0.0369055971430695	0.0369055971430695
-2964	628	1143	0.0958611496898419	0.0958611496898419
-2966	2908	2909	0.0463126901024473	0.0463126901024473
-2967	2909	872	0.0318684671228471	0.0318684671228471
-2968	872	2910	0.0711758745978235	0.0711758745978235
-2969	2910	2911	0.067495322638235	0.067495322638235
-2970	2911	2912	0.033747661319103	0.033747661319103
-2971	2912	2913	0.0475024757380027	0.0475024757380027
-2973	2914	2915	0.202578999998173	0.202578999998173
-2975	2916	2917	0.184685764171195	0.184685764171195
-2976	2917	2918	0.00737265767013589	0.00737265767013589
-2978	2919	2920	0.110148820147866	0.110148820147866
-2979	2920	584	0.039258317875865	0.039258317875865
-2980	584	2921	0.228363185041033	0.228363185041033
-2982	2922	1341	0.198962442111046	0.198962442111046
-2983	1341	2923	0.207039061514662	0.207039061514662
-2984	2923	2924	0.201175175238786	0.201175175238786
-2985	2924	2925	0.203376851393596	0.203376851393596
-2986	2925	2926	0.201920207523594	0.201920207523594
-2987	2926	2927	0.200452413161122	0.200452413161122
-2988	2927	776	0.201931296094781	0.201931296094781
-2990	2928	2930	0.209285084837907	0.209285084837907
-2991	2930	2931	0.197960209647655	0.197960209647655
-2992	2931	171	0.402036974102358	0.402036974102358
-2994	2932	2933	0.200508042098485	0.200508042098485
-2995	170	1728	0.257039245710078	0.257039245710078
-2996	1728	2934	0.145411467525923	0.145411467525923
-2999	2935	2936	0.0880513532781809	0.0880513532781809
-3025	2957	2958	0.01030947748559	0.01030947748559
-3000	2936	209	0.228338005511316	0.228338005511316
-3002	2937	2938	0.107611509993879	0.107611509993879
-3005	2940	2941	0.175855452328419	0.175855452328419
-3006	2941	2942	0.174909636552997	0.174909636552997
-3007	2942	2943	0.192197232795451	0.192197232795451
-3009	2944	546	0.0293283601170504	0.0293283601170504
-3010	546	2945	0.155746660532693	0.155746660532693
-3012	1475	2946	0.311303155924368	0.311303155924368
-3013	2946	2947	0.184883982264712	0.184883982264712
-3014	2947	2948	0.224685205653341	0.224685205653341
-3016	2949	2950	0.0888669853746646	0.0888669853746646
-3017	2950	2951	0.114577615588497	0.114577615588497
-3018	1225	2952	0.114132076273042	0.114132076273042
-3019	2952	2161	0.115442153745618	0.115442153745618
-3020	2161	2953	0.105428749590907	0.105428749590907
-3022	2954	2955	0.0114463280554541	0.0114463280554541
-3023	2955	639	0.18619297340356	0.18619297340356
-3024	639	2957	0.0509835810434449	0.0509835810434449
-3026	2958	2959	0.0353738821651235	0.0353738821651235
-3027	2959	2960	0.00284670794487764	0.00284670794487764
-3028	2960	1288	0.104793015683124	0.104793015683124
-3029	1288	2961	0.051496901479137	0.051496901479137
-3030	2961	2962	0.00960868888037157	0.00960868888037157
-3031	2962	2963	0.0208687174266634	0.0208687174266634
-3032	2963	2964	0.0498882614596582	0.0498882614596582
-3033	2964	2965	0.123304259264834	0.123304259264834
-3035	2966	2967	0.00908677871596767	0.00908677871596767
-3036	2967	2968	0.115854235202851	0.115854235202851
-3037	2968	2969	0.00700956571064615	0.00700956571064615
-3038	2969	2970	0.00940368205913038	0.00940368205913038
-3039	2970	2971	0.0666840110355875	0.0666840110355875
-3040	2971	2972	0.0679662165544488	0.0679662165544488
-3041	2972	2973	0.0630976433471776	0.0630976433471776
-3042	2973	2974	0.0491600079555241	0.0491600079555241
-3044	2975	2976	0.0997731403964804	0.0997731403964804
-3045	2976	2977	0.100715566829797	0.100715566829797
-3046	2977	2978	0.0996876914159973	0.0996876914159973
-3047	2978	2979	0.10126058971698	0.10126058971698
-3048	2979	2980	0.103346225532192	0.103346225532192
-3049	2980	2981	0.0983114005972926	0.0983114005972926
-3050	2981	2982	0.09874223460454	0.09874223460454
-3051	2982	2983	0.0510749251490339	0.0510749251490339
-3053	2984	2985	0.0505192363533637	0.0505192363533637
-3054	2985	1120	0.0491942863881514	0.0491942863881514
-3055	1120	2986	0.0517085444587275	0.0517085444587275
-3056	2986	2987	0.0504766444323722	0.0504766444323722
-3057	2987	2988	0.0508471211122413	0.0508471211122413
-3058	2988	2989	0.0482147566017866	0.0482147566017866
-3059	2989	2990	0.0513143127772338	0.0513143127772338
-3060	2990	2991	0.0501432318630803	0.0501432318630803
-3061	2991	2992	0.788648410502006	0.788648410502006
-3062	2993	2994	0.01555628530979	0.01555628530979
-3063	2994	2995	0.10729267423115	0.10729267423115
-13562	2999	2165	0.242533262128423	0.242533262128423
-3067	2998	3000	0.0998948824480635	0.0998948824480635
-3068	3000	3001	0.145910673725247	0.145910673725247
-3069	3001	3002	0.147264770664277	0.147264770664277
-3070	3002	3003	0.145706831644125	0.145706831644125
-3071	3003	3004	0.146381189481243	0.146381189481243
-3073	3006	3007	0.143637545441942	0.143637545441942
-3074	3007	3008	0.14139337588105	0.14139337588105
-3075	3008	3009	0.0340034784472366	0.0340034784472366
-3076	3009	3010	0.117637494210671	0.117637494210671
-3077	3010	3011	0.1483412167568	0.1483412167568
-3078	3011	3012	0.146200597856632	0.146200597856632
-3079	3012	3013	0.146656153847153	0.146656153847153
-3080	3013	3014	0.219897120549826	0.219897120549826
-3081	3014	2686	0.0729664723843293	0.0729664723843293
-3082	2686	3015	0.146055074464899	0.146055074464899
-3083	3015	3016	0.115984680072215	0.115984680072215
-3084	3016	3017	0.0102106792826024	0.0102106792826024
-3085	3017	3018	0.0188093561808277	0.0188093561808277
-3087	3019	3020	0.14624208166964	0.14624208166964
-3088	3020	3021	0.149932974568378	0.149932974568378
-3089	3021	2900	0.114654486829615	0.114654486829615
-3091	3022	3023	0.0936947193853168	0.0936947193853168
-3093	3024	3025	0.0922829109447797	0.0922829109447797
-3095	3026	3027	0.10419715248802	0.10419715248802
-3096	3027	3028	0.108587123231645	0.108587123231645
-3097	3028	3029	0.103455866634876	0.103455866634876
-3099	3030	3031	0.0828114972096423	0.0828114972096423
-3100	3031	3032	0.0151385207198175	0.0151385207198175
-3102	3035	3036	0.131928682141755	0.131928682141755
-3103	3036	3037	0.0286281442546585	0.0286281442546585
-3104	3037	3038	0.0830678583996061	0.0830678583996061
-3105	3038	3039	0.0820487800074757	0.0820487800074757
-3107	3040	3041	0.0592379768525999	0.0592379768525999
-3108	3041	1041	0.101867076922678	0.101867076922678
-3109	1041	3042	0.108431988254042	0.108431988254042
-3110	3042	3043	0.103209130509255	0.103209130509255
-3111	3043	3044	0.103439867243447	0.103439867243447
-3113	3045	3046	0.1080426022678	0.1080426022678
-3114	3046	3047	0.106399445317148	0.106399445317148
-3115	3047	2078	0.104328053424176	0.104328053424176
-3116	2078	2675	0.103849131822114	0.103849131822114
-3117	2675	3048	0.106371798877004	0.106371798877004
-3118	3048	3049	0.1089909908922	0.1089909908922
-3120	2995	3050	0.0829711714500804	0.0829711714500804
-3123	3051	3052	0.0304368475861105	0.0304368475861105
-19556	10441	10561	0.00875730102663828	0.00875730102663828
-3124	3053	3054	0.10469695146486	0.10469695146486
-3125	3054	3026	0.105413327506124	0.105413327506124
-3127	3055	3056	0.0146859459125862	0.0146859459125862
-3128	3056	3057	0.0899179636493607	0.0899179636493607
-3129	3057	3058	0.0968918459632465	0.0968918459632465
-3130	3058	3059	0.0931803123592361	0.0931803123592361
-3131	3059	3060	0.0924628769882567	0.0924628769882567
-3132	3060	2004	0.0909779529022995	0.0909779529022995
-3134	3061	2758	0.0983285272926963	0.0983285272926963
-3135	2758	3062	0.094848132376921	0.094848132376921
-3137	2284	3063	0.10273020958756	0.10273020958756
-3138	3063	3064	0.09684156688728	0.09684156688728
-3139	3064	2139	0.105654196010103	0.105654196010103
-3141	3065	3066	0.101995188106893	0.101995188106893
-4424	4133	950	0.17542265784203	0.17542265784203
-3142	3066	3067	1.00083609181461	1.00083609181461
-3143	3068	3069	0.10392860568863	0.10392860568863
-3144	3069	3070	0.10232907709913	0.10232907709913
-3145	3070	3071	0.103927869583062	0.103927869583062
-3146	3071	3072	0.102097379803977	0.102097379803977
-3147	3072	3073	0.0487909895079958	0.0487909895079958
-3149	1294	3074	0.105333551259412	0.105333551259412
-3150	3074	3075	0.0524798747272766	0.0524798747272766
-3151	3075	3076	0.0475858963921332	0.0475858963921332
-3152	3076	3077	0.00514079080382434	0.00514079080382434
-3154	3078	3079	0.0117186508515134	0.0117186508515134
-3155	3079	3080	0.0860074021370197	0.0860074021370197
-3156	3080	3081	0.0112654570741388	0.0112654570741388
-3157	3081	3082	0.0998426271509478	0.0998426271509478
-3159	3083	3084	0.0978722553449722	0.0978722553449722
-3161	3085	3086	0.0498003240048994	0.0498003240048994
-3162	3086	3087	0.0499820755044021	0.0499820755044021
-3163	3087	1765	0.0500932715547668	0.0500932715547668
-3164	1765	3089	0.0453737460403596	0.0453737460403596
-3165	3089	3090	0.0566344564433548	0.0566344564433548
-3166	3090	3091	0.0479788729039099	0.0479788729039099
-3167	3091	1517	0.0504584819239423	0.0504584819239423
-3168	1517	3092	0.0513918113913408	0.0513918113913408
-3169	3092	3093	0.0524695902697227	0.0524695902697227
-3170	3093	1084	0.0829756278031258	0.0829756278031258
-3171	1084	3094	0.018362425266723	0.018362425266723
-3172	3094	3095	0.100037197959638	0.100037197959638
-3173	3095	3096	0.0986501993185581	0.0986501993185581
-3174	3096	3097	0.100130714805898	0.100130714805898
-3175	3097	2046	0.103528392648025	0.103528392648025
-3176	2046	3098	0.0976518708062817	0.0976518708062817
-3177	3098	3099	0.0995509890492463	0.0995509890492463
-3179	1954	3100	0.060604506910361	0.060604506910361
-3182	3102	3103	0.0990114382918269	0.0990114382918269
-3183	3103	3104	0.100593787088956	0.100593787088956
-3184	3104	3105	0.0983789631442794	0.0983789631442794
-3185	3105	2848	0.0976433646550276	0.0976433646550276
-3186	2848	3106	0.102064870879311	0.102064870879311
-3187	3106	3107	0.10100271733246	0.10100271733246
-3188	3107	3108	0.0995828832367363	0.0995828832367363
-3189	3108	2942	0.101438732689929	0.101438732689929
-3190	2942	3109	0.100378814460195	0.100378814460195
-3191	3109	3110	1.25206634961555	1.25206634961555
-3192	3111	3112	0.015422388825789	0.015422388825789
-3193	3112	3113	0.11412427509118	0.11412427509118
-3194	3113	3114	0.468645573431598	0.468645573431598
-3196	2023	3115	0.177146580591063	0.177146580591063
-3197	3115	3102	0.173943728587952	0.173943728587952
-3198	3102	3116	0.193451028525805	0.193451028525805
-3200	3117	1806	0.211443534426126	0.211443534426126
-3201	1806	3118	0.193022911848757	0.193022911848757
-3203	3119	3120	0.0940041909856305	0.0940041909856305
-3204	3120	3121	0.197561396619787	0.197561396619787
-3206	3122	3123	0.200799900699528	0.200799900699528
-3207	3124	3125	0.200863237154928	0.200863237154928
-3208	3125	3126	0.201874389323119	0.201874389323119
-3210	3127	3128	0.0750470474178356	0.0750470474178356
-3211	3128	3131	0.0761135403806392	0.0761135403806392
-3213	3029	3132	0.132611387982682	0.132611387982682
-3214	3132	3133	0.00539409864485362	0.00539409864485362
-3215	3133	3134	0.139160450695908	0.139160450695908
-3216	3134	1160	0.139291641031025	0.139291641031025
-3217	1160	879	0.139609262878975	0.139609262878975
-3218	879	3135	0.138493325710101	0.138493325710101
-3219	3135	2787	0.134090008076189	0.134090008076189
-3220	2787	3136	0.1321642245327	0.1321642245327
-3221	3136	3137	0.21408080552497	0.21408080552497
-3222	3137	3138	0.144895915790921	0.144895915790921
-3223	3138	3139	0.169628584853264	0.169628584853264
-3226	3141	3142	0.202888440515448	0.202888440515448
-3227	3142	2878	0.162092717607055	0.162092717607055
-3251	3162	2365	0.110303719018863	0.110303719018863
-3254	3164	3165	0.240177393696762	0.240177393696762
-3255	3165	3166	0.102768151984011	0.102768151984011
-3256	3166	3167	0.0509818546092244	0.0509818546092244
-3258	3168	3169	0.0591373244934598	0.0591373244934598
-3259	3169	3170	0.0530870196657507	0.0530870196657507
-3261	3171	3172	0.201914360897617	0.201914360897617
-3262	3172	3173	0.203130900823478	0.203130900823478
-3263	3173	3174	0.201562825315852	0.201562825315852
-3264	3174	3175	0.19958273918251	0.19958273918251
-3265	3175	3177	0.402921101557674	0.402921101557674
-3266	3178	3179	0.0905536808669309	0.0905536808669309
-3267	3179	3180	0.0577627490058349	0.0577627490058349
-3268	3180	3181	0.0505235668696686	0.0505235668696686
-3269	3181	3182	0.065160532538722	0.065160532538722
-3270	3182	3183	0.00793078546182679	0.00793078546182679
-3271	3183	3184	0.0531842364372946	0.0531842364372946
-3273	2386	3186	0.0378622155960126	0.0378622155960126
-3274	3186	3187	0.0069150542380481	0.0069150542380481
-3275	3187	3188	0.0174713630038869	0.0174713630038869
-3277	3189	3190	0.10095397068423	0.10095397068423
-3278	3190	3191	0.102948552858793	0.102948552858793
-3279	3191	3192	0.099117357243018	0.099117357243018
-3280	3192	3193	0.10499121023248	0.10499121023248
-3282	3194	3195	0.0985672231580753	0.0985672231580753
-3283	3195	3196	0.0975023503923766	0.0975023503923766
-16511	8899	8896	0.0458243741253751	0.0458243741253751
-3284	3196	3197	0.0505627463090716	0.0505627463090716
-3285	3197	3198	0.0500221717072617	0.0500221717072617
-3286	3198	3199	0.046867135973938	0.046867135973938
-3287	3199	1768	0.0529832159562647	0.0529832159562647
-3288	1768	3200	0.0470467690925653	0.0470467690925653
-3289	3200	3201	0.0524586560775799	0.0524586560775799
-3290	3201	3202	0.0495946350720587	0.0495946350720587
-3291	3202	1518	0.052984641558086	0.052984641558086
-3292	1518	3203	0.100125608990258	0.100125608990258
-3293	3203	1085	0.0831191573838339	0.0831191573838339
-3294	1085	3204	0.01719627237498	0.01719627237498
-3295	3204	3205	0.100278521536605	0.100278521536605
-3296	3205	3206	0.100159169300764	0.100159169300764
-3297	3206	3207	0.0980766730481921	0.0980766730481921
-3299	2047	3208	0.0998503328239714	0.0998503328239714
-3300	3208	3209	0.0991174142787685	0.0991174142787685
-3301	3209	3210	0.0465862087261248	0.0465862087261248
-3303	3211	3212	0.0483226107842397	0.0483226107842397
-3304	3212	3213	0.0508033572812722	0.0508033572812722
-3305	3213	3214	0.0520095145740976	0.0520095145740976
-3307	3215	3216	0.047636983079693	0.047636983079693
-3308	3216	3217	0.00228390635402469	0.00228390635402469
-3309	3217	3218	0.0492156902021281	0.0492156902021281
-3310	3218	3219	0.105720878983862	0.105720878983862
-3312	3220	3221	0.135734479783406	0.135734479783406
-3313	3221	2519	0.14595602798476	0.14595602798476
-3314	2519	3222	0.126165217374209	0.126165217374209
-3315	3222	1229	0.098841689459618	0.098841689459618
-3316	1229	3223	0.098924974953348	0.098924974953348
-3317	3223	2174	0.100839404349716	0.100839404349716
-3318	2174	3224	0.101432888438354	0.101432888438354
-3319	3224	3225	0.137343472225008	0.137343472225008
-3321	3226	379	0.0754564811292303	0.0754564811292303
-3322	379	63	0.0417835231628563	0.0417835231628563
-3323	63	1255	0.0152981335887719	0.0152981335887719
-3326	3228	3229	0.0836292502069327	0.0836292502069327
-3327	3229	3230	0.0485562677029858	0.0485562677029858
-3330	3232	3233	0.105369806952797	0.105369806952797
-3331	3233	3234	0.0244901910381055	0.0244901910381055
-3332	3235	3236	0.101967463967826	0.101967463967826
-3333	3236	3237	0.10049747789636	0.10049747789636
-3334	3237	3238	0.0983034665163014	0.0983034665163014
-3335	3238	3239	0.103439327677052	0.103439327677052
-3336	3239	715	0.100109252929192	0.100109252929192
-3337	715	3240	0.10857516210103	0.10857516210103
-3338	3240	3241	0.0836693243428755	0.0836693243428755
-3340	1256	2714	0.204938708369458	0.204938708369458
-3341	2714	3242	0.194775016549959	0.194775016549959
-3343	3243	3244	0.104619278832535	0.104619278832535
-3344	3244	3245	0.0999091629456622	0.0999091629456622
-3345	3245	3246	0.0969207243261653	0.0969207243261653
-3346	3246	3247	0.100620613481727	0.100620613481727
-3347	3247	3248	0.051818780315465	0.051818780315465
-3348	3248	3249	0.0493068623564548	0.0493068623564548
-3349	3249	3250	0.102061915203609	0.102061915203609
-3350	3250	3251	0.0474417721331526	0.0474417721331526
-3351	3251	3252	0.0496832213808208	0.0496832213808208
-3352	3252	3253	0.00274646412019378	0.00274646412019378
-3353	3253	3254	0.0454267490135207	0.0454267490135207
-3354	3254	3255	0.00458544852460102	0.00458544852460102
-3355	3255	3256	0.0483268582508211	0.0483268582508211
-3357	3257	3258	0.0459440862493274	0.0459440862493274
-3358	3258	3259	0.236332489020417	0.236332489020417
-3360	3260	2735	0.173472989255867	0.173472989255867
-3362	594	2050	0.105283533842597	0.105283533842597
-3363	2050	3261	0.0509100007310826	0.0509100007310826
-3364	3261	3262	0.0467523465641757	0.0467523465641757
-3365	3262	3263	0.0481309278210478	0.0481309278210478
-3366	3263	3264	0.051732585346973	0.051732585346973
-3367	3264	3265	0.0457622961694799	0.0457622961694799
-3368	3265	3266	0.0530171123380122	0.0530171123380122
-3369	3266	3267	0.0451783444295864	0.0451783444295864
-3370	3267	3268	0.0542978455447466	0.0542978455447466
-3371	3268	3269	0.0466844058034087	0.0466844058034087
-3372	3269	3270	0.050646295110284	0.050646295110284
-3373	3270	3271	0.0484988623690369	0.0484988623690369
-3374	3271	3272	0.0498932625841468	0.0498932625841468
-3375	3272	3273	0.0470944745658083	0.0470944745658083
-3376	3273	3274	0.0579078107783869	0.0579078107783869
-3377	3274	3275	0.151893561253266	0.151893561253266
-3378	3275	3276	0.0516549077274405	0.0516549077274405
-3379	3276	2734	0.0976564411094966	0.0976564411094966
-3380	2734	3277	0.0486100790727351	0.0486100790727351
-3381	3277	3278	0.0497906140365211	0.0497906140365211
-3382	3278	3279	0.0484124404037645	0.0484124404037645
-3383	3279	3280	0.00653599515433254	0.00653599515433254
-3384	3280	3178	0.0418764820732136	0.0418764820732136
-3385	3178	3284	0.0979449587868123	0.0979449587868123
-3386	3284	3285	0.201022039935831	0.201022039935831
-3389	3287	2316	0.156303067302058	0.156303067302058
-20281	10719	10710	0.0549191742699874	0.0549191742699874
-3390	2316	3288	0.10952595107857	0.10952595107857
-3391	3288	3289	0.0403941356128906	0.0403941356128906
-3392	3289	3290	0.0912238346425634	0.0912238346425634
-3393	3290	3291	0.0816082032445177	0.0816082032445177
-3394	3291	3292	0.0169509581328033	0.0169509581328033
-3395	3292	3293	0.0433466637454668	0.0433466637454668
-3396	3293	3294	0.0186582685984772	0.0186582685984772
-3397	3294	3295	0.152140762364393	0.152140762364393
-3403	3299	1325	0.177116632986756	0.177116632986756
-3404	1325	1381	0.178046664647513	0.178046664647513
-3406	1057	3300	0.119136901138604	0.119136901138604
-3408	3301	1581	0.141640668502809	0.141640668502809
-3409	1581	3302	0.308989164663259	0.308989164663259
-3411	3304	3305	0.143837220516125	0.143837220516125
-3412	3305	3306	0.147698693465714	0.147698693465714
-3414	3307	3308	0.146426311775338	0.146426311775338
-3415	3308	3309	0.146463761248984	0.146463761248984
-3416	3309	3310	0.146549783304075	0.146549783304075
-3417	3310	2029	0.145425360285073	0.145425360285073
-3418	2029	3311	0.146713513284486	0.146713513284486
-3419	3311	634	0.143866210964815	0.143866210964815
-3420	634	3312	0.147112545494359	0.147112545494359
-3421	3312	3313	0.145900102395242	0.145900102395242
-3422	3313	2321	0.147128656269274	0.147128656269274
-3424	3314	3315	0.0970240945457023	0.0970240945457023
-3425	3315	2190	0.185651929243496	0.185651929243496
-3427	737	1557	0.13315596414531	0.13315596414531
-3429	3316	3317	0.0821429797668101	0.0821429797668101
-3434	3321	3322	0.579886710164932	0.579886710164932
-3436	3323	3324	0.139196729808835	0.139196729808835
-3438	3325	3326	0.13668278082176	0.13668278082176
-3439	3326	3045	0.137860640994287	0.137860640994287
-3440	3045	3327	0.13778919161955	0.13778919161955
-3441	3327	3328	0.00447003605120276	0.00447003605120276
-3442	3328	3329	0.0233867925544547	0.0233867925544547
-3443	3329	3330	0.116012449407873	0.116012449407873
-3444	3330	1166	0.139882774592672	0.139882774592672
-3445	1166	886	0.137525679366119	0.137525679366119
-3446	886	3332	0.139657446365043	0.139657446365043
-3447	3332	2793	0.133361291612613	0.133361291612613
-3448	2793	3333	0.132228102569741	0.132228102569741
-3450	3334	3335	0.0903059057199572	0.0903059057199572
-3451	3335	3336	0.154418186694308	0.154418186694308
-3452	3336	3337	0.192225493046604	0.192225493046604
-3453	3337	3338	0.174660133594583	0.174660133594583
-3454	3338	3339	0.202477883587996	0.202477883587996
-3455	3339	3340	0.0759856229646665	0.0759856229646665
-3456	3340	3341	0.00965813264254578	0.00965813264254578
-3458	3342	1191	0.166878049186437	0.166878049186437
-3459	1191	3343	0.0216063183857929	0.0216063183857929
-3460	3343	3344	0.200920604325059	0.200920604325059
-3462	2346	3345	0.174959253236807	0.174959253236807
-3463	3345	1535	0.0463919707335885	0.0463919707335885
-3465	3346	3347	0.27909963341584	0.27909963341584
-3466	3347	740	0.112084486383373	0.112084486383373
-3467	740	1560	0.139918597194563	0.139918597194563
-3468	1560	3348	0.140278682022104	0.140278682022104
-3469	3348	3349	0.121438604958881	0.121438604958881
-3471	3350	3351	0.173966017570494	0.173966017570494
-3472	3351	3352	0.16543284170321	0.16543284170321
-3474	3353	3354	0.201189633952299	0.201189633952299
-3477	3356	3357	0.174637614655306	0.174637614655306
-3479	2467	3359	0.203720276949683	0.203720276949683
-3480	3359	3360	0.200874146006411	0.200874146006411
-3481	3360	795	0.199720493083652	0.199720493083652
-3482	795	3361	0.203163577363555	0.203163577363555
-3484	3362	3363	0.203261629260278	0.203261629260278
-3485	3363	3061	0.206912153397241	0.206912153397241
-3486	3061	3364	0.186005329793712	0.186005329793712
-3488	3365	1140	0.135699508009882	0.135699508009882
-3490	907	3366	0.12816779719188	0.12816779719188
-3492	3367	1297	0.200952363448705	0.200952363448705
-3494	3368	3369	0.101405416836813	0.101405416836813
-3495	3369	3370	0.0983850243457341	0.0983850243457341
-3497	3371	3372	0.0654246270475212	0.0654246270475212
-3498	3372	2939	0.0903071880553539	0.0903071880553539
-3499	2939	3373	0.0855248234583031	0.0855248234583031
-3500	3373	59	0.083918142781954	0.083918142781954
-3502	3374	3375	0.253631602277532	0.253631602277532
-3503	3376	3377	0.201161683466984	0.201161683466984
-3505	3378	623	0.0117822953093903	0.0117822953093903
-3506	623	3379	0.132533255410588	0.132533255410588
-3507	3379	3380	0.0779035335014782	0.0779035335014782
-3508	3380	3381	0.206545256567466	0.206545256567466
-20694	10906	10909	0.0421787313564029	0.0421787313564029
-3509	3381	3382	0.13283549460514	0.13283549460514
-3510	3382	3383	0.135569425081515	0.135569425081515
-3511	3383	3384	0.136156970349478	0.136156970349478
-3512	3384	3385	0.132775661568888	0.132775661568888
-3514	2584	3386	0.177011208890761	0.177011208890761
-3515	3386	3387	0.0885846426355864	0.0885846426355864
-3518	3389	3390	0.176205550995696	0.176205550995696
-3519	3390	3391	0.169210992899206	0.169210992899206
-3520	3391	3392	0.0099077669914251	0.0099077669914251
-3521	3392	1849	0.175456016508954	0.175456016508954
-3522	1849	2583	0.178501996899051	0.178501996899051
-3524	600	3393	0.2153977841733	0.2153977841733
-3526	3394	3395	0.118920951518272	0.118920951518272
-3527	3395	3396	0.142989811640976	0.142989811640976
-3528	3396	3397	0.262177718796624	0.262177718796624
-3530	14	3398	0.133564321671034	0.133564321671034
-3531	3398	3399	0.133563180552006	0.133563180552006
-3532	3399	3400	0.135746766447532	0.135746766447532
-3533	3400	3401	0.133513247236878	0.133513247236878
-3534	3401	3402	0.0998328095575455	0.0998328095575455
-3535	3402	3403	0.0352154332682272	0.0352154332682272
-3536	3403	2405	0.0667725534497617	0.0667725534497617
-3537	2405	3404	0.0682403264820305	0.0682403264820305
-3538	3404	3405	0.033013773721009	0.033013773721009
-3539	3405	3409	0.0499933274562477	0.0499933274562477
-3540	3409	3410	0.0543299225353451	0.0543299225353451
-3541	3410	1767	0.0526619512572465	0.0526619512572465
-3542	1767	3411	0.150417295173728	0.150417295173728
-3543	3411	2979	0.204011051874628	0.204011051874628
-3544	2979	656	0.0515792906446319	0.0515792906446319
-3546	1887	591	0.0491592770696459	0.0491592770696459
-3547	591	3412	0.0481379602388448	0.0481379602388448
-3548	3412	3413	0.102266489872996	0.102266489872996
-3549	3413	1888	0.0486842125387167	0.0486842125387167
-3550	1888	3414	0.0510943840977224	0.0510943840977224
-3551	3414	3415	0.00919583632372114	0.00919583632372114
-3552	3415	3416	0.0353489043837471	0.0353489043837471
-17077	3568	8074	0.699339640197117	0.699339640197117
-3553	3416	3417	0.050093361124945	0.050093361124945
-3554	3417	3418	0.0498820440925909	0.0498820440925909
-3555	3418	3419	0.0498984530952944	0.0498984530952944
-3556	3419	3420	0.00880663819045291	0.00880663819045291
-3557	3420	3421	0.0410819827191675	0.0410819827191675
-3558	3421	3422	0.0491592770696459	0.0491592770696459
-3559	3422	3423	0.0205377029518591	0.0205377029518591
-3560	3423	3424	0.02549703249469	0.02549703249469
-3562	3425	3425	0.000442266584977921	0.000442266584977921
-3563	3425	3426	0.0816315051221547	0.0816315051221547
-3565	3427	1664	0.0502947464100412	0.0502947464100412
-3567	1683	3428	0.020460323508623	0.020460323508623
-3568	3428	3429	0.0515955226949506	0.0515955226949506
-3569	3429	3430	0.133978887334031	0.133978887334031
-3570	3430	2427	0.13659869274501	0.13659869274501
-3571	2427	2428	0.063830021941611	0.063830021941611
-3572	2428	3231	0.0696897365044123	0.0696897365044123
-3573	3231	3431	0.132766742414187	0.132766742414187
-3574	3431	3432	0.106360486773292	0.106360486773292
-3575	3432	3433	0.0970117847237812	0.0970117847237812
-3576	3433	3434	0.1971376871667	0.1971376871667
-19819	5606	10648	0.0581167522759965	0.0581167522759965
-3577	3434	3435	0.133491532527273	0.133491532527273
-3582	2842	3438	0.0923852774741301	0.0923852774741301
-3584	1421	317	0.102691144252484	0.102691144252484
-3585	317	513	0.0772222660891488	0.0772222660891488
-3586	513	3439	0.0612593596381532	0.0612593596381532
-3587	3439	3440	0.148872782400453	0.148872782400453
-3588	3440	2540	0.197920167618774	0.197920167618774
-3589	2540	3441	0.415850973508269	0.415850973508269
-3590	3442	699	0.201963508155417	0.201963508155417
-3591	699	3443	0.200352700158165	0.200352700158165
-3593	3444	3445	0.0185806742090463	0.0185806742090463
-20212	5504	7078	0.147322900830237	0.147322900830237
-20213	7078	2034	0.146401533431931	0.146401533431931
-20214	2034	5323	0.145002332578884	0.145002332578884
-20215	5323	632	0.146882687938452	0.146882687938452
-4488	138	4177	0.203369481928684	0.203369481928684
-4489	4177	1741	0.0411375852444616	0.0411375852444616
-4490	1741	4178	0.159371364409943	0.159371364409943
-4492	4179	4180	0.471114595558298	0.471114595558298
-4493	4180	4181	0.219268705400549	0.219268705400549
-4495	4182	4183	0.0994268923770179	0.0994268923770179
-4496	4183	1296	0.100075433980265	0.100075433980265
-4497	1296	1369	0.0964029757899856	0.0964029757899856
-5794	5116	3795	0.199284062960758	0.199284062960758
-18557	318	10316	0.0220547227626022	0.0220547227626022
-4499	4184	4185	0.301634217878433	0.301634217878433
-4501	2809	3744	0.0998445716696615	0.0998445716696615
-4502	3744	4186	0.10131230641957	0.10131230641957
-4504	4187	4188	0.132156563746112	0.132156563746112
-4505	4188	4189	0.132402395077485	0.132402395077485
-4506	4189	4190	0.137552756241722	0.137552756241722
-4507	4190	4191	0.13379771872617	0.13379771872617
-4508	4191	1671	0.132214775902914	0.132214775902914
-4509	1671	4192	0.137147368544834	0.137147368544834
-4510	4192	2452	0.138219895716206	0.138219895716206
-4511	2452	3221	0.134932977312539	0.134932977312539
-4512	3221	4193	0.133628518122145	0.133628518122145
-4515	4195	554	0.154583323244677	0.154583323244677
-4516	554	4196	0.0224725093154139	0.0224725093154139
-4517	4083	4197	0.170590775930264	0.170590775930264
-4518	4197	3764	0.0397497113610314	0.0397497113610314
-4520	2820	1411	0.135923564862653	0.135923564862653
-4521	1411	1351	0.125050095081124	0.125050095081124
-4523	4198	4199	0.454148647656551	0.454148647656551
-4525	4200	4201	0.133477223659273	0.133477223659273
-4526	4201	4202	0.132617384077965	0.132617384077965
-4527	4202	4203	0.134214836424706	0.134214836424706
-4531	4206	1274	0.135021280032386	0.135021280032386
-4533	4207	4208	0.280988389053987	0.280988389053987
-4534	4209	4210	0.209285084830873	0.209285084830873
-4535	4210	4211	0.203065667561202	0.203065667561202
-4537	4212	3742	0.11682398880887	0.11682398880887
-4538	3742	4213	0.111567725645095	0.111567725645095
-4539	4213	1339	0.201798845648163	0.201798845648163
-4541	4214	4215	0.203408625976642	0.203408625976642
-4542	4215	4216	0.204114710404745	0.204114710404745
-4543	4216	4217	0.199718562750948	0.199718562750948
-4544	4217	4218	0.198271148516705	0.198271148516705
-4545	4218	771	0.17255385564489	0.17255385564489
-4547	2307	165	0.313487377331004	0.313487377331004
-4549	4219	4220	0.186213228977795	0.186213228977795
-4551	754	1537	0.148966155582635	0.148966155582635
-4553	4221	4222	0.161148121345995	0.161148121345995
-4554	4222	4223	0.216135114601666	0.216135114601666
-4555	4223	2863	0.186375265274556	0.186375265274556
-4556	2863	4224	0.202043234198664	0.202043234198664
-4558	2306	163	0.315813218507964	0.315813218507964
-4560	2936	4225	0.221837398274975	0.221837398274975
-4561	4226	4227	0.032037204481033	0.032037204481033
-4562	4227	3117	0.0749583948430369	0.0749583948430369
-4563	3117	4228	0.116878015161696	0.116878015161696
-4564	4228	4229	0.198835732908948	0.198835732908948
-4565	4229	3631	0.67836534857008	0.67836534857008
-4567	4230	4231	0.0278521738101303	0.0278521738101303
-4568	4231	3626	0.0483370034898742	0.0483370034898742
-4569	3626	4232	0.0510217447847317	0.0510217447847317
-4570	4232	4233	0.0469996469262497	0.0469996469262497
-4571	4233	4234	0.00322569080192639	0.00322569080192639
-4572	4234	4235	0.0476498478152495	0.0476498478152495
-4573	4235	4236	0.00275575991011001	0.00275575991011001
-4574	4236	4237	0.0466374525425622	0.0466374525425622
-4575	4237	4176	0.0490297893404984	0.0490297893404984
-4577	1777	4238	0.0499406466420926	0.0499406466420926
-4578	4238	4239	0.0481565861804565	0.0481565861804565
-4579	4239	4241	0.0519465642125291	0.0519465642125291
-4580	4241	1525	0.0497346926389818	0.0497346926389818
-4581	1525	4242	0.0484856348902157	0.0484856348902157
-4582	4242	4243	0.0507187078501555	0.0507187078501555
-4584	4244	4245	0.0527177379947323	0.0527177379947323
-4585	4245	4246	0.0464286276535365	0.0464286276535365
-4586	4246	4247	0.0517965186978674	0.0517965186978674
-4587	4247	4248	0.0444043495278385	0.0444043495278385
-4588	4248	569	0.0503939700372948	0.0503939700372948
-4589	569	4249	0.0487604458581461	0.0487604458581461
-4590	4249	4250	0.049686610105401	0.049686610105401
-4591	4250	3757	0.0516485422129312	0.0516485422129312
-4593	233	4251	0.0506501019029544	0.0506501019029544
-4594	4251	4252	0.049085285550805	0.049085285550805
-4595	4252	4253	0.0509968613887819	0.0509968613887819
-4596	4253	4254	0.0502265448038836	0.0502265448038836
-4597	4254	4255	0.0465382189133341	0.0465382189133341
-4598	4255	4256	0.0510900830663337	0.0510900830663337
-4599	4256	4257	0.0497787434592631	0.0497787434592631
-4600	4257	3481	0.048623750791878	0.048623750791878
-4601	3481	4258	0.0500598342416855	0.0500598342416855
-4602	4258	4259	0.0490673464291656	0.0490673464291656
-4603	4259	4260	0.0504371465498466	0.0504371465498466
-4604	4260	3695	0.0479901081376225	0.0479901081376225
-4606	4261	4262	0.0501538740654185	0.0501538740654185
-4607	4262	4263	0.0491706548036751	0.0491706548036751
-4608	4263	4264	0.0565833994828839	0.0565833994828839
-4610	277	4265	0.0528934097089145	0.0528934097089145
-4611	4265	4266	0.0968160140004115	0.0968160140004115
-20627	10752	10756	0.0716547469239426	0.0716547469239426
-4612	4266	4267	0.0968245593658874	0.0968245593658874
-4613	4267	973	0.0982940228399724	0.0982940228399724
-4614	973	4268	0.0961120665100732	0.0961120665100732
-4615	4268	3151	0.0982830823377853	0.0982830823377853
-4616	3151	4269	0.0956500899819903	0.0956500899819903
-4617	4269	4270	0.0774758788411222	0.0774758788411222
-4619	4271	3870	0.115440404669678	0.115440404669678
-4620	3870	839	0.0968819352907846	0.0968819352907846
-4621	839	4272	0.0909531666656291	0.0909531666656291
-4623	3911	4273	0.0389706485750465	0.0389706485750465
-4624	369	4274	0.037543890411303	0.037543890411303
-4625	4274	4275	0.0617087098520115	0.0617087098520115
-4629	2912	4277	0.0342245606725147	0.0342245606725147
-4630	4277	4278	0.104948893572031	0.104948893572031
-4631	4278	3313	0.105285822276279	0.105285822276279
-4632	3313	4279	0.10593807567588	0.10593807567588
-4634	1347	1613	0.100174688565551	0.100174688565551
-4635	1613	4280	0.104997472753206	0.104997472753206
-4665	4282	4283	0.0977314379471645	0.0977314379471645
-4639	4284	4285	0.190476396365953	0.190476396365953
-4640	4285	4286	0.254383171783508	0.254383171783508
-4642	4287	1279	0.116253581720056	0.116253581720056
-4643	1279	4288	0.133001385838575	0.133001385838575
-4644	4288	4289	0.132041969489344	0.132041969489344
-4645	4289	4290	0.131385678442372	0.131385678442372
-4647	3405	4291	0.101549832168715	0.101549832168715
-4648	4291	4292	0.100523519517599	0.100523519517599
-4649	4292	4293	0.100138462817161	0.100138462817161
-5953	5195	5227	0.170006104257124	0.170006104257124
-4650	4293	4294	0.099847555472709	0.099847555472709
-4651	4294	4295	0.0503614009997415	0.0503614009997415
-4652	4295	1117	0.0494296215921	0.0494296215921
-4653	1117	4296	0.050087846881447	0.050087846881447
-4654	4296	4297	0.0495578429804187	0.0495578429804187
-4655	4297	4298	0.0515578068709943	0.0515578068709943
-20458	10785	10812	0.0256322806680483	0.0256322806680483
-4656	4298	4299	0.00303478875120781	0.00303478875120781
-4659	4300	1508	0.0639307257992365	0.0639307257992365
-4660	1508	179	0.201223720751325	0.201223720751325
-4661	179	1707	0.203441168484602	0.203441168484602
-4663	4301	4302	0.143365965722663	0.143365965722663
-4686	4303	4304	0.0764005624211503	0.0764005624211503
-4664	4302	4305	2.47136733106287	2.47136733106287
-17126	4306	4307	0.198891077653185	0.198891077653185
-17128	4308	4309	0.137004722426324	0.137004722426324
-4666	4283	4310	0.00807297378678342	0.00807297378678342
-4667	4310	4311	0.088125570928718	0.088125570928718
-4668	4311	4312	0.0140203745468903	0.0140203745468903
-19629	10518	10593	0.0691965251351115	0.0691965251351115
-4670	4313	4314	0.114544256923558	0.114544256923558
-4671	4314	4315	0.197539157423005	0.197539157423005
-4672	4315	4035	0.10133193665102	0.10133193665102
-4675	3389	4317	0.176922247784819	0.176922247784819
-4676	4317	1313	0.17698917639034	0.17698917639034
-4677	1313	4318	0.2429613537943	0.2429613537943
-4678	4318	4319	0.0830631503019858	0.0830631503019858
-4679	4319	4320	0.0977203133854136	0.0977203133854136
-4680	4320	4321	0.113818121601187	0.113818121601187
-4681	4321	4322	0.0984100223094627	0.0984100223094627
-4683	4323	4324	0.0484810817232728	0.0484810817232728
-4684	4324	4325	0.0969202903062125	0.0969202903062125
-4685	4325	4303	0.026431034063363	0.026431034063363
-4687	4304	4326	0.107959479077584	0.107959479077584
-4689	4302	1574	0.191677995814021	0.191677995814021
-4691	3672	4328	0.125428790986072	0.125428790986072
-4692	4328	4329	0.0951720176425212	0.0951720176425212
-4693	4329	4330	0.139038263486678	0.139038263486678
-4694	4330	4331	0.139714401472726	0.139714401472726
-4700	4334	4335	0.200429884058467	0.200429884058467
-4702	2368	4336	0.0171503416673458	0.0171503416673458
-4704	2899	4337	0.105099867009157	0.105099867009157
-4705	4337	4338	0.106056680315678	0.106056680315678
-4706	4338	4339	0.104589847143113	0.104589847143113
-4707	4339	4340	0.370832351150224	0.370832351150224
-4708	4340	4341	0.0529480373416704	0.0529480373416704
-4709	4341	3902	0.107541125657943	0.107541125657943
-4710	3902	1039	0.104784630542914	0.104784630542914
-4711	1039	4342	0.104777071004161	0.104777071004161
-4712	4342	4343	0.105248493254523	0.105248493254523
-4713	4343	4344	0.101108879740712	0.101108879740712
-4714	4344	3325	0.105024412220906	0.105024412220906
-4715	3325	4345	0.102246237774905	0.102246237774905
-4716	4345	4346	0.102726745739932	0.102726745739932
-4717	4346	2076	0.108443527267173	0.108443527267173
-4718	2076	2673	0.108454042008862	0.108454042008862
-6026	4668	5275	0.106680903376796	0.106680903376796
-20495	10837	10818	0.00314569094185422	0.00314569094185422
-4719	2673	4123	0.102664740305431	0.102664740305431
-4720	4123	4347	0.110043125382133	0.110043125382133
-4721	4347	4348	0.0925868711229396	0.0925868711229396
-4722	4348	4349	0.101256639304288	0.101256639304288
-4723	4349	3471	0.100333218908324	0.100333218908324
-4724	3471	4350	0.101033713236321	0.101033713236321
-4726	850	4351	0.101364060095961	0.101364060095961
-4727	4351	4352	0.0951618291875102	0.0951618291875102
-4728	4352	4353	0.0166431794757682	0.0166431794757682
-4729	4353	4354	0.0900251519018866	0.0900251519018866
-4730	4354	4355	0.0948464364966571	0.0948464364966571
-4731	4355	4356	0.0929916889983271	0.0929916889983271
-4732	4356	4357	0.0946584559856625	0.0946584559856625
-4733	4357	2002	0.0939147825318954	0.0939147825318954
-4734	2002	3362	0.0961201849767339	0.0961201849767339
-4735	3362	2756	0.0936202724465644	0.0936202724465644
-4736	2756	4358	0.0928604520153806	0.0928604520153806
-4738	4359	3874	0.0985792493705747	0.0985792493705747
-4740	4360	4361	0.589746493190754	0.589746493190754
-4742	501	1385	0.0995647502781281	0.0995647502781281
-4745	4363	4364	0.205829363021429	0.205829363021429
-4746	4364	4365	0.0921122756854079	0.0921122756854079
-4747	4365	4366	0.00988128080256074	0.00988128080256074
-4748	4366	4367	0.0897681081567516	0.0897681081567516
-4749	4367	4368	0.098598628932225	0.098598628932225
-4750	4368	4369	0.0959412440063823	0.0959412440063823
-4751	4369	4370	0.102131783313602	0.102131783313602
-4752	4370	783	0.172155062898013	0.172155062898013
-4753	783	4373	0.095162556755669	0.095162556755669
-4754	4373	4374	0.0961947364240104	0.0961947364240104
-4755	4374	2746	0.0976874440589729	0.0976874440589729
-4756	2746	4375	0.105035684135392	0.105035684135392
-4757	4375	4376	0.0939930714928361	0.0939930714928361
-4758	4376	4031	0.0955624767971731	0.0955624767971731
-4759	4031	4377	0.0560443290529964	0.0560443290529964
-4760	4377	1489	0.204591889958277	0.204591889958277
-4762	145	1731	0.201807709171719	0.201807709171719
-4763	1731	360	0.203461803126836	0.203461803126836
-4767	2902	2038	0.0702037411311871	0.0702037411311871
-4769	4380	4381	0.147155318321419	0.147155318321419
-4770	4381	4382	0.144957308053315	0.144957308053315
-4771	4382	4383	0.149312485085308	0.149312485085308
-4774	2688	4385	0.0765539017627299	0.0765539017627299
-4775	4385	4386	0.0705753548513159	0.0705753548513159
-4776	4386	4387	0.146933743759007	0.146933743759007
-4777	4387	4388	0.145923980731529	0.145923980731529
-4778	4388	4389	0.144339759907671	0.144339759907671
-4779	4389	4390	0.150103166473839	0.150103166473839
-4780	4390	4391	0.137983810664432	0.137983810664432
-4781	4391	4392	0.0104056356944031	0.0104056356944031
-4782	4392	4393	0.140241416108271	0.140241416108271
-4783	4393	4394	0.1481833156111	0.1481833156111
-4784	4394	4395	0.146837535132845	0.146837535132845
-4785	4395	4396	0.147176845167591	0.147176845167591
-4786	4396	4397	0.145625871999305	0.145625871999305
-4788	1072	4398	0.0934237929296376	0.0934237929296376
-4790	4399	4400	0.1229191337931	0.1229191337931
-4791	4400	4401	0.117696624021516	0.117696624021516
-4792	4401	3916	0.0730141443209756	0.0730141443209756
-4794	4402	4403	3.26030129970045	3.26030129970045
-4795	4403	1705	0.202698536609182	0.202698536609182
-4796	1705	176	0.202718600973581	0.202718600973581
-4797	176	1503	0.201219684641614	0.201219684641614
-4798	1503	4404	0.202286968554481	0.202286968554481
-4799	4404	4405	0.200141278145387	0.200141278145387
-4800	4405	4406	0.0308542467827185	0.0308542467827185
-4801	4406	4407	0.168200323230532	0.168200323230532
-4802	4407	4408	0.11307645922142	0.11307645922142
-4803	4408	4409	0.0961947310408444	0.0961947310408444
-4804	4409	4410	0.0983990775592717	0.0983990775592717
-4806	4411	4413	0.099863884884034	0.099863884884034
-4809	4415	4416	0.102810116828889	0.102810116828889
-4810	4416	4417	0.0991628298509216	0.0991628298509216
-4811	4417	4418	0.0969872745595907	0.0969872745595907
-4812	4418	4419	0.0998556913489604	0.0998556913489604
-4813	4419	4420	0.0958355207238061	0.0958355207238061
-4814	4420	1307	0.243760388907656	0.243760388907656
-4815	1307	4421	0.179135026824832	0.179135026824832
-4818	4422	477	0.0591204183570981	0.0591204183570981
-4819	477	486	0.338636165035717	0.338636165035717
-4820	486	320	0.186794052108965	0.186794052108965
-4821	320	324	0.464671835959624	0.464671835959624
-4822	324	531	0.0559979023034973	0.0559979023034973
-4823	531	534	0.263162604733165	0.263162604733165
-4825	475	530	0.435551136576821	0.435551136576821
-4826	530	393	0.115152140819887	0.115152140819887
-4827	393	4423	0.203655322253385	0.203655322253385
-4828	4423	4424	0.538171924126244	0.538171924126244
-4829	4424	4426	0.419488421877639	0.419488421877639
-4830	4426	4427	0.0323139283448777	0.0323139283448777
-4833	4428	4429	0.198930926845217	0.198930926845217
-4837	4432	4433	0.200460087837485	0.200460087837485
-4839	2920	3260	0.28373274915572	0.28373274915572
-4842	4436	726	0.0998645775500999	0.0998645775500999
-4843	726	52	0.170560718436498	0.170560718436498
-4844	52	4437	0.100090869280248	0.100090869280248
-4845	4437	3658	0.0591716781283333	0.0591716781283333
-4846	3658	4438	0.103033016475492	0.103033016475492
-4847	4438	4439	0.00533542340358722	0.00533542340358722
-4848	4439	3530	0.0426683766285225	0.0426683766285225
-4850	4440	1490	0.0653862418347059	0.0653862418347059
-4851	1490	146	0.199762763358791	0.199762763358791
-4853	1733	4441	0.200262923415945	0.200262923415945
-4855	3554	4442	0.0495302719350299	0.0495302719350299
-4856	4442	4443	0.0498850541236187	0.0498850541236187
-4857	4443	4444	0.0512856921549244	0.0512856921549244
-4858	4444	3019	0.0117591853989501	0.0117591853989501
-4860	4445	4382	0.0530835076360593	0.0530835076360593
-4861	4382	4446	0.0528074946120117	0.0528074946120117
-4863	4447	4448	0.00600839331926655	0.00600839331926655
-4865	4449	4450	0.0531891993832321	0.0531891993832321
-4866	4450	4451	0.0546720224408421	0.0546720224408421
-4867	4451	4452	0.0492877204975977	0.0492877204975977
-4868	4452	4453	0.0555740263590881	0.0555740263590881
-4869	4453	4454	0.0508522899950145	0.0508522899950145
-4870	4454	4455	0.0539540438907939	0.0539540438907939
-4871	4455	4456	0.05278127500741	0.05278127500741
-4872	4456	4457	0.0520682148022883	0.0520682148022883
-4873	4457	4458	0.0535945839553328	0.0535945839553328
-4874	4458	3308	0.105299206866662	0.105299206866662
-4875	3308	4459	0.0532887340145185	0.0532887340145185
-4876	4459	4460	0.0519293867850164	0.0519293867850164
-4878	2911	4461	0.104626210772024	0.104626210772024
-4879	4461	4462	0.107626289516013	0.107626289516013
-4880	4462	4463	0.104079175744358	0.104079175744358
-4881	4463	4464	0.104771521557699	0.104771521557699
-4882	4464	4465	0.105968126634263	0.105968126634263
-6192	5399	5400	0.276164012064383	0.276164012064383
-4883	4465	4466	0.105797186557688	0.105797186557688
-4884	4466	3135	0.104882643737148	0.104882643737148
-4885	3135	3907	0.109352834062615	0.109352834062615
-4886	3907	1046	0.105412573797977	0.105412573797977
-4887	1046	4467	0.052770391738213	0.052770391738213
-4888	4467	4468	0.0520438840305316	0.0520438840305316
-4889	4468	4469	0.10568608900916	0.10568608900916
-4890	4469	4470	0.101335564568208	0.101335564568208
-4891	4470	3332	0.103121923835041	0.103121923835041
-4892	3332	4471	0.106386988921342	0.106386988921342
-4893	4471	4472	0.0168550696022494	0.0168550696022494
-4894	4472	4473	0.0917114246562582	0.0917114246562582
-4895	4473	2083	0.101916806851718	0.101916806851718
-4896	2083	4474	0.104993787286419	0.104993787286419
-4897	4474	4129	0.105139069056382	0.105139069056382
-4898	4129	4475	0.108754567624091	0.108754567624091
-4899	4475	4476	0.10144670106953	0.10144670106953
-4900	4476	4477	0.106139118962841	0.106139118962841
-4901	4477	3446	0.105344236005182	0.105344236005182
-4903	4478	4479	0.0124618097268169	0.0124618097268169
-4904	4479	4480	0.085822453683645	0.085822453683645
-4905	4480	3886	0.0198123941785865	0.0198123941785865
-4907	865	4481	0.0967884909448593	0.0967884909448593
-4909	345	4482	0.111183183932549	0.111183183932549
-4910	4483	1892	0.0285476317873184	0.0285476317873184
-4912	4360	4484	0.465117334225162	0.465117334225162
-4913	4484	4485	0.0326010116755978	0.0326010116755978
-4915	4486	4487	0.175931100170174	0.175931100170174
-4916	4487	4489	0.100342363380826	0.100342363380826
-4917	4489	4490	0.161656025882071	0.161656025882071
-4918	4490	4491	0.0905242566324277	0.0905242566324277
-4919	4491	1950	0.169005169872083	0.169005169872083
-4920	1950	4492	0.126063150124326	0.126063150124326
-4924	4081	3762	0.180617937803326	0.180617937803326
-4926	2559	4495	0.0875396307338273	0.0875396307338273
-4927	4495	4496	0.0902282586364627	0.0902282586364627
-4928	4496	4497	0.0878475091612825	0.0878475091612825
-4929	4497	4498	0.266301743580547	0.266301743580547
-4930	180	1708	0.203431976552675	0.203431976552675
-4931	1708	4499	0.201230804203475	0.201230804203475
-4932	4499	1575	0.27729796539772	0.27729796539772
-4933	1575	4500	0.182259795470885	0.182259795470885
-4934	4501	4502	0.199005560216138	0.199005560216138
-4935	4502	4503	0.153202263597584	0.153202263597584
-4937	4504	4505	0.176923776962641	0.176923776962641
-4938	4505	1315	0.176127860687443	0.176127860687443
-4939	1315	1371	0.176782045374234	0.176782045374234
-4940	1371	4506	0.0626491861453163	0.0626491861453163
-4941	4506	4507	0.0851767549198192	0.0851767549198192
-4943	3035	4508	0.210570172682267	0.210570172682267
-4945	54	4510	0.19332295953062	0.19332295953062
-4946	4510	3640	0.0466160975278989	0.0466160975278989
-4948	4511	3531	0.0618894465423491	0.0618894465423491
-4949	3531	4512	0.0905408166059636	0.0905408166059636
-4951	3926	707	0.0755598922064861	0.0755598922064861
-4952	707	4513	0.0978688769552162	0.0978688769552162
-4953	4513	4514	0.0992771410926943	0.0992771410926943
-4954	4514	4188	0.135836888761709	0.135836888761709
-4955	4188	2514	0.135033448601963	0.135033448601963
-4956	2514	4515	0.13515296788921	0.13515296788921
-4957	4515	4516	0.136409392488761	0.136409392488761
-4959	4517	4518	0.0356088442137805	0.0356088442137805
-4960	4518	4519	0.0503802448307333	0.0503802448307333
-4961	4519	4520	0.127581150438839	0.127581150438839
-4962	4520	4521	0.132742519290442	0.132742519290442
-4963	4521	4522	0.13263462094456	0.13263462094456
-4964	4522	1243	0.132622916068163	0.132622916068163
-4965	1243	4523	0.132744954601011	0.132744954601011
-4966	4523	2724	0.131940306625131	0.131940306625131
-4967	2724	4524	0.125887507119952	0.125887507119952
-4968	4524	4525	0.0073166618478819	0.0073166618478819
-4970	4526	4527	0.188224997765616	0.188224997765616
-4971	4527	3419	0.20066865963842	0.20066865963842
-4973	4528	4529	0.132643815391647	0.132643815391647
-4974	4529	4288	0.134447795927953	0.134447795927953
-4975	4288	4530	0.0675286789518799	0.0675286789518799
-4976	4530	4531	0.0681514911729941	0.0681514911729941
-4978	1833	2628	0.0976402650867344	0.0976402650867344
-4980	4532	4428	0.101312368020336	0.101312368020336
-4981	4428	4533	0.0998335149833254	0.0998335149833254
-4982	4533	4534	0.1027774706977	0.1027774706977
-4984	4535	1833	0.103500237720645	0.103500237720645
-4986	4536	4537	0.0953225774659935	0.0953225774659935
-4988	4538	4539	0.19878482816443	0.19878482816443
-4989	4539	2830	0.201604542004037	0.201604542004037
-4990	2830	1438	0.197694612690532	0.197694612690532
-4991	1438	4540	0.179002123409013	0.179002123409013
-4993	4541	25	0.138059623303707	0.138059623303707
-4994	25	4542	0.0645746983944002	0.0645746983944002
-4995	4542	2964	0.0670651945252806	0.0670651945252806
-4999	4545	4546	0.142258977482996	0.142258977482996
-5001	4547	115	0.110830423505847	0.110830423505847
-5003	4548	4549	0.0776585367690646	0.0776585367690646
-5004	4549	4550	0.199094650034446	0.199094650034446
-5005	4550	4551	0.100232131513911	0.100232131513911
-5007	4552	2292	0.132777862181536	0.132777862181536
-5008	2292	4553	0.0918166647273585	0.0918166647273585
-5009	4553	2534	0.18135507208955	0.18135507208955
-5011	2627	4554	0.0924500575644084	0.0924500575644084
-5012	4554	4555	0.10983037862614	0.10983037862614
-5014	4523	4556	0.135380005592348	0.135380005592348
-5015	4556	4557	0.134346145402708	0.134346145402708
-5016	4557	4558	0.133189336887005	0.133189336887005
-5017	4558	1680	0.13514752705788	0.13514752705788
-5018	1680	4559	0.137419251565084	0.137419251565084
-5020	4560	4064	0.13135456684589	0.13135456684589
-5021	4064	4561	0.134278993416053	0.134278993416053
-5023	4101	4562	0.159933235501875	0.159933235501875
-5025	4563	4564	0.407964486856081	0.407964486856081
-5026	4565	2188	0.10962848253063	0.10962848253063
-17150	4780	4781	0.199841658014134	0.199841658014134
-5028	4566	687	0.202530686471354	0.202530686471354
-5029	687	1982	0.159069792202276	0.159069792202276
-5030	1982	1967	0.0383650278893233	0.0383650278893233
-5033	4567	1928	0.199711508236703	0.199711508236703
-5034	1928	4568	0.201653602761609	0.201653602761609
-5035	4568	3272	0.202185746700204	0.202185746700204
-5036	3272	4569	0.20093413075273	0.20093413075273
-5037	4569	85	0.20339775981857	0.20339775981857
-5038	85	3521	0.203998373883698	0.203998373883698
-5039	3521	4262	0.200473333246826	0.200473333246826
-5040	4262	4570	0.200485802986416	0.200485802986416
-5041	4570	4571	0.201223720769428	0.201223720769428
-5042	4571	4572	0.205786578364508	0.205786578364508
-5043	4572	4573	0.200686081138238	0.200686081138238
-5044	4573	4574	0.200311699167283	0.200311699167283
-5045	4575	4576	0.13275170286213	0.13275170286213
-5046	4576	4011	0.136238719327193	0.136238719327193
-5049	4578	3382	0.130912952312419	0.130912952312419
-5050	3382	4579	0.10420964387947	0.10420964387947
-5051	4579	4580	0.100328081358343	0.100328081358343
-5053	4581	4582	0.100688559836452	0.100688559836452
-5054	4582	1104	0.099555514740453	0.099555514740453
-5055	1104	4583	0.100465419279427	0.100465419279427
-5056	4583	4584	0.100511332021349	0.100511332021349
-5057	4584	4585	0.0999153218838928	0.0999153218838928
-5059	3498	4586	0.198271673699608	0.198271673699608
-5060	4586	4587	0.203313884946152	0.203313884946152
-5062	4588	3598	0.162446986671654	0.162446986671654
-5065	4590	4591	0.145581982651648	0.145581982651648
-20699	10909	10894	0.00288177410229764	0.00288177410229764
-5066	4591	4592	0.145302049591696	0.145302049591696
-5067	4592	2013	0.147364635735888	0.147364635735888
-5068	2013	4593	0.147376079792043	0.147376079792043
-5069	4593	4594	0.146031742389181	0.146031742389181
-5071	4595	4596	0.179128666689522	0.179128666689522
-5072	4596	4597	0.0491363059718978	0.0491363059718978
-5073	4597	4598	0.0534283507033442	0.0534283507033442
-5074	4598	4599	0.051162571237203	0.051162571237203
-5076	1025	3894	0.103299911807114	0.103299911807114
-5077	3894	4600	0.113012549862716	0.113012549862716
-5078	4600	4601	0.103445240313361	0.103445240313361
-5079	4601	4602	0.110216736617757	0.110216736617757
-5080	4602	4603	0.098537605440947	0.098537605440947
-5081	4603	4604	0.10689939615188	0.10689939615188
-5082	4604	4605	0.104556664577465	0.104556664577465
-5083	4605	4606	0.106796784548208	0.106796784548208
-5084	4606	2884	0.106044347623682	0.106044347623682
-5085	2884	4607	0.118270695339941	0.118270695339941
-6370	5524	5525	0.0492521789985846	0.0492521789985846
-5087	4608	4609	0.117800444995037	0.117800444995037
-5088	4609	4610	0.102641376464428	0.102641376464428
-5089	4610	4611	0.0494099001663831	0.0494099001663831
-5090	4611	4612	0.0461096147761951	0.0461096147761951
-5091	4612	4613	0.102709817700352	0.102709817700352
-5092	4613	4614	0.107788478157863	0.107788478157863
-5093	4614	4615	0.106309381819152	0.106309381819152
-5095	4618	4619	0.107514865026302	0.107514865026302
-5096	4619	4620	0.109618128547838	0.109618128547838
-5098	4621	4622	0.0890723635550207	0.0890723635550207
-5100	4623	4522	0.133190665745901	0.133190665745901
-5102	4624	4625	0.133658094916269	0.133658094916269
-5103	4625	4626	0.133656501053085	0.133656501053085
-5104	4626	1679	0.135152153872346	0.135152153872346
-5105	1679	4627	0.135024432224219	0.135024432224219
-5106	4627	2458	0.13515140493347	0.13515140493347
-5107	2458	3226	0.138004027692966	0.138004027692966
-5108	3226	4628	0.134323473833378	0.134323473833378
-5110	4629	4630	0.135446542572512	0.135446542572512
-19829	9519	10649	0.210072579992032	0.210072579992032
-5113	4632	4633	0.0947313767183171	0.0947313767183171
-5115	4634	4635	0.0557913419625853	0.0557913419625853
-5116	4635	4636	0.0662366225916723	0.0662366225916723
-5117	4636	4637	0.113593419326123	0.113593419326123
-5120	4639	4640	0.132773960128622	0.132773960128622
-5121	4640	2488	0.134241502580257	0.134241502580257
-5122	2488	2829	0.133449886794901	0.133449886794901
-5123	2829	1437	0.199500232175966	0.199500232175966
-5124	1437	4641	0.151025004831673	0.151025004831673
-5126	4642	114	0.107737280643715	0.107737280643715
-5127	114	4643	0.05007218616811	0.05007218616811
-5129	4644	4645	0.207043620739087	0.207043620739087
-5130	4645	1842	0.100003312332805	0.100003312332805
-5131	1842	2639	0.103345313678593	0.103345313678593
-5132	2639	4646	0.199597531872746	0.199597531872746
-5133	4646	4647	0.110338949764664	0.110338949764664
-5134	4647	4648	0.0862326024249021	0.0862326024249021
-5135	4648	4649	0.00885483385456902	0.00885483385456902
-5136	4649	4650	0.198772614686204	0.198772614686204
-5138	275	4651	0.385379364010995	0.385379364010995
-5139	4651	4652	0.41471692527459	0.41471692527459
-5140	4652	4653	0.0539741907357585	0.0539741907357585
-5141	4653	4654	0.022194548523775	0.022194548523775
-5142	4654	4206	0.207869157343365	0.207869157343365
-5144	4655	4656	0.134281006104493	0.134281006104493
-5145	4656	2404	0.0664009097985413	0.0664009097985413
-5146	2404	4287	0.0661523414774278	0.0661523414774278
-5147	4287	4657	0.134479579019433	0.134479579019433
-5149	4658	4659	0.0841530151799317	0.0841530151799317
-5150	4659	23	0.134991372812694	0.134991372812694
-5152	4098	4660	0.191146561014702	0.191146561014702
-5153	4660	4661	0.201619149588839	0.201619149588839
-5154	4661	4662	0.406108499193961	0.406108499193961
-5155	1948	2564	0.13210280054913	0.13210280054913
-5157	4663	388	0.102051980712047	0.102051980712047
-5159	1442	4664	0.0822712120832148	0.0822712120832148
-5160	4664	4665	0.119816357959701	0.119816357959701
-5161	4665	4666	0.204097543225869	0.204097543225869
-5162	4666	4667	0.203014171650501	0.203014171650501
-5164	4668	1869	0.212544115775742	0.212544115775742
-5165	1869	4183	0.200120502606903	0.200120502606903
-5167	4669	2615	0.177891060007606	0.177891060007606
-5169	4670	4671	0.124038366426802	0.124038366426802
-5171	2421	3232	0.143042998317255	0.143042998317255
-5173	4672	2028	0.132076698976753	0.132076698976753
-5174	2028	4673	0.145972981302679	0.145972981302679
-5175	4673	4674	0.125161327150552	0.125161327150552
-5177	3368	4675	0.102054188376367	0.102054188376367
-5178	4675	3714	0.0982241705421038	0.0982241705421038
-5179	3714	4676	0.103510692140635	0.103510692140635
-5181	4677	4678	0.0648734285683964	0.0648734285683964
-5182	4678	615	0.177689539069832	0.177689539069832
-5183	615	4679	0.176110549937417	0.176110549937417
-5184	4679	4680	0.173776320124656	0.173776320124656
-5186	4681	4682	0.184513059882878	0.184513059882878
-5187	4682	4685	0.175211932943401	0.175211932943401
-5189	4686	4687	0.349232193394911	0.349232193394911
-5191	1357	4688	0.13277378561117	0.13277378561117
-5193	4689	4690	0.459634230640815	0.459634230640815
-5194	4691	4692	0.0991279407871357	0.0991279407871357
-5195	4692	4693	0.0976485109623955	0.0976485109623955
-5197	4694	4695	0.0991197857977998	0.0991197857977998
-5198	4695	4696	0.10132403770971	0.10132403770971
-5199	4696	4697	0.0991849406088648	0.0991849406088648
-5201	1637	4698	0.104258284661182	0.104258284661182
-5202	4698	4215	0.0991281021081487	0.0991281021081487
-5203	4215	4699	0.0976569662788289	0.0976569662788289
-5204	4699	195	0.10058858208642	0.10058858208642
-5205	195	2924	0.0991416985641161	0.0991416985641161
-5206	2924	4700	0.0991366648288655	0.0991366648288655
-5207	4700	1462	0.100582700478246	0.100582700478246
-5208	1462	4701	0.102418321557774	0.102418321557774
-5212	4704	1872	0.0821525251365273	0.0821525251365273
-17295	10015	3501	0.20024191652091	0.20024191652091
-5214	1445	4705	0.199727367553687	0.199727367553687
-5215	4705	4706	0.203375496003776	0.203375496003776
-5216	4706	4707	0.201909493723453	0.201909493723453
-5218	4708	403	0.0454257390325356	0.0454257390325356
-5219	403	314	0.0562503326449317	0.0562503326449317
-5220	314	4709	0.11119492664509	0.11119492664509
-5222	4711	4170	0.194203357035268	0.194203357035268
-5223	4170	4712	0.208127290131148	0.208127290131148
-5224	4712	4713	0.198927723766577	0.198927723766577
-5225	4713	4714	0.204935128047674	0.204935128047674
-5226	4714	4715	0.188520271439654	0.188520271439654
-5227	4715	3793	0.199712422815397	0.199712422815397
-5228	3793	4716	0.152617432717184	0.152617432717184
-5229	4716	944	0.17742675257367	0.17742675257367
-5230	944	2228	0.183696049186415	0.183696049186415
-5231	2228	4717	0.162619098965448	0.162619098965448
-5232	4717	4718	0.189722276081874	0.189722276081874
-5233	4718	4719	0.171945095410338	0.171945095410338
-5234	4719	4720	0.177429725627003	0.177429725627003
-5235	4720	4721	0.102690706769844	0.102690706769844
-5236	4721	4722	0.0746285232074726	0.0746285232074726
-5237	4722	668	0.00411462210691817	0.00411462210691817
-5238	668	4723	0.00380364497345728	0.00380364497345728
-5240	4724	4604	0.175355420651263	0.175355420651263
-5242	1146	875	0.136296969384937	0.136296969384937
-5244	4463	2783	0.133890793284356	0.133890793284356
-5245	2783	4725	0.132805963492264	0.132805963492264
-5246	4725	4726	0.129702593554695	0.129702593554695
-5247	4726	4727	0.147549019452937	0.147549019452937
-5249	4728	4729	0.134556994040934	0.134556994040934
-5250	4729	4730	0.00403637583696172	0.00403637583696172
-5251	4730	4731	0.00537071495727797	0.00537071495727797
-5252	4731	4732	0.135502150823282	0.135502150823282
-5253	4732	4733	0.139193822038205	0.139193822038205
-5254	4733	820	0.139638598300339	0.139638598300339
-5255	820	3561	0.13948292881931	0.13948292881931
-5256	3561	4734	0.140172337301063	0.140172337301063
-5257	4734	4339	0.137170074560425	0.137170074560425
-5258	4339	4735	0.138982548276464	0.138982548276464
-5259	4735	3054	0.142752059367152	0.142752059367152
-5260	3054	4736	0.133100340642693	0.133100340642693
-5261	4736	4737	0.00492593525024253	0.00492593525024253
-5263	4738	3350	0.0528651873534889	0.0528651873534889
-5264	3350	4739	0.10426363885095	0.10426363885095
-5265	4739	4740	0.102034414473958	0.102034414473958
-14766	5462	7420	0.173120091654239	0.173120091654239
-5266	4740	2059	0.102862063735102	0.102862063735102
-5267	2059	2645	0.103513208640623	0.103513208640623
-5268	2645	4111	0.104240888550753	0.104240888550753
-5270	4741	4742	0.102769926646245	0.102769926646245
-5271	4742	4743	0.104240916363933	0.104240916363933
-5272	4743	3452	0.105180194746781	0.105180194746781
-5273	3452	4744	0.10036641032569	0.10036641032569
-5274	4744	3882	0.105711927066125	0.105711927066125
-5275	3882	845	0.10371038656759	0.10371038656759
-5276	845	4745	0.104689829390385	0.104689829390385
-5277	4745	4746	0.0469848225431211	0.0469848225431211
-5279	2610	4747	0.106209148179485	0.106209148179485
-5280	4747	4748	0.0529916423937814	0.0529916423937814
-5282	4749	4750	0.0385383772070312	0.0385383772070312
-5283	4750	966	0.102580898845139	0.102580898845139
-5285	990	4751	0.0998368598850094	0.0998368598850094
-5286	4751	4752	0.0507426333200071	0.0507426333200071
-5287	4752	4753	0.0483650078238011	0.0483650078238011
-5288	4753	1987	0.0507354905741477	0.0507354905741477
-5289	1987	4754	0.0483663202205498	0.0483663202205498
-5290	4754	446	0.051479549664384	0.051479549664384
-5291	446	4712	0.0483577654581108	0.0483577654581108
-5292	4712	4755	0.101297109225192	0.101297109225192
-5293	4755	4756	0.0117741801721385	0.0117741801721385
-5294	4756	4757	0.0826634733388868	0.0826634733388868
-5295	4757	4758	0.0342509974874732	0.0342509974874732
-5296	4758	4759	0.0175268141449879	0.0175268141449879
-5297	4759	4760	0.0234785463070149	0.0234785463070149
-5298	4760	4761	0.0484972333709921	0.0484972333709921
-5299	4761	3126	0.0271800985558075	0.0271800985558075
-5300	3126	3148	0.0183600177870361	0.0183600177870361
-5301	3148	3143	0.0330468719768483	0.0330468719768483
-5302	3143	4762	0.0646645186035183	0.0646645186035183
-5303	4762	3915	0.0595606911380279	0.0595606911380279
-5304	3915	1052	0.123917065152439	0.123917065152439
-5305	1052	4399	0.111768087862579	0.111768087862579
-5306	4399	4763	0.0469346079446244	0.0469346079446244
-5308	4764	4765	0.103730937833073	0.103730937833073
-5311	3155	4767	0.101587564129846	0.101587564129846
-5312	4767	4768	0.101450282305199	0.101450282305199
-5313	4768	4769	0.102136172096814	0.102136172096814
-5314	4769	4770	0.0492382919352757	0.0492382919352757
-5316	4771	4772	0.100332506519832	0.100332506519832
-5317	4772	4773	0.0490390048099826	0.0490390048099826
-5318	4773	989	0.0495269165196006	0.0495269165196006
-5320	4774	4775	0.110656269548842	0.110656269548842
-5321	4775	4776	0.0922568863786424	0.0922568863786424
-5322	4776	4777	0.0968744294941002	0.0968744294941002
-5323	4777	4778	0.0933681364009737	0.0933681364009737
-5324	4778	2017	0.096243154582377	0.096243154582377
-5325	2017	2007	0.0302079551181684	0.0302079551181684
-5326	2007	4779	0.0612998845077431	0.0612998845077431
-5327	4779	2763	0.0939372654248904	0.0939372654248904
-5328	2763	4782	0.0939831368366747	0.0939831368366747
-5329	4782	2267	0.0946761779636641	0.0946761779636641
-5330	2267	3596	0.0957452269737562	0.0957452269737562
-5332	4783	2096	0.0938496563543502	0.0938496563543502
-5333	2096	4784	0.0942585077375453	0.0942585077375453
-5334	4784	4785	0.0947863905236846	0.0947863905236846
-5335	4785	2332	0.0940516760171392	0.0940516760171392
-6607	5694	5695	0.0154325675938591	0.0154325675938591
-5337	4089	4787	0.198005363606862	0.198005363606862
-5339	4788	4789	0.404049086255387	0.404049086255387
-5340	4790	119	0.0976422064224313	0.0976422064224313
-5341	119	4791	0.0958834096516534	0.0958834096516534
-5342	4791	2312	0.0465244099907656	0.0465244099907656
-5344	4792	2484	0.133450471266853	0.133450471266853
-5345	2484	2823	0.13353766665554	0.13353766665554
-5346	2823	1414	0.132023734494372	0.132023734494372
-5347	1414	1354	0.131894209152808	0.131894209152808
-5348	1354	4793	0.0769784662870068	0.0769784662870068
-5350	4794	4795	0.0387509077758481	0.0387509077758481
-5351	4795	2952	0.134935498636386	0.134935498636386
-5352	2952	4796	0.136197421914805	0.136197421914805
-5353	4796	4797	0.129998438382796	0.129998438382796
-5354	4797	4798	0.134935065412598	0.134935065412598
-5356	2635	4799	0.200962590925039	0.200962590925039
-5357	4799	4800	0.183883066303689	0.183883066303689
-5358	4801	4802	0.0508168176081005	0.0508168176081005
-5359	4802	4516	0.0829526060571819	0.0829526060571819
-6631	5709	5710	0.263510763458761	0.263510763458761
-5360	4516	4803	0.133849874797103	0.133849874797103
-5361	4803	4804	0.135491260752817	0.135491260752817
-5363	4805	1674	0.127474088546245	0.127474088546245
-5364	1674	4806	0.138137679733803	0.138137679733803
-5366	4807	2455	0.134491411129426	0.134491411129426
-5367	2455	3223	0.138294178425788	0.138294178425788
-5369	4808	4809	0.133134706345954	0.133134706345954
-5370	4809	4810	0.135569856870466	0.135569856870466
-5371	4810	4811	0.134368341783309	0.134368341783309
-5372	4811	4812	0.133035455825063	0.133035455825063
-5374	4813	4814	0.201931453578911	0.201931453578911
-5376	123	4815	0.0586808902574419	0.0586808902574419
-5377	1608	1158	0.0531893778682351	0.0531893778682351
-5378	1158	4816	0.0522853387259307	0.0522853387259307
-5379	4816	4817	0.0528559175260399	0.0528559175260399
-5380	4817	4818	0.0526139267336242	0.0526139267336242
-5382	4819	4820	0.146802081972091	0.146802081972091
-5383	4820	4821	0.146390170205012	0.146390170205012
-5384	4821	4822	0.0767990953688077	0.0767990953688077
-5386	3289	4824	0.0733337823028737	0.0733337823028737
-5387	4824	4825	0.151650147757225	0.151650147757225
-5389	97	3502	0.20326475820455	0.20326475820455
-5390	3502	4826	0.200021830134173	0.200021830134173
-5391	4826	4827	0.204558997826367	0.204558997826367
-5392	4827	4828	0.201476703732084	0.201476703732084
-5394	4829	4830	0.558813274805265	0.558813274805265
-5395	3635	1894	0.33996915967689	0.33996915967689
-5396	1894	4831	0.234959433855918	0.234959433855918
-5397	4831	3288	0.0548366602436518	0.0548366602436518
-5399	3879	4832	0.175154251791819	0.175154251791819
-5400	4832	3070	0.175288290924905	0.175288290924905
-5402	4833	4834	0.239573627081124	0.239573627081124
-5404	3962	4835	0.197156843459588	0.197156843459588
-5405	4835	4836	0.094417767822886	0.094417767822886
-5406	4836	388	0.087554257922167	0.087554257922167
-5407	388	1384	0.157773442883539	0.157773442883539
-5408	1384	4837	0.0895725883825947	0.0895725883825947
-5409	4837	325	0.282856295391869	0.282856295391869
-6684	2175	5744	0.101148378971839	0.101148378971839
-5410	325	4838	0.0837092029011689	0.0837092029011689
-5411	4838	4840	0.0963811879451104	0.0963811879451104
-5412	4840	4841	0.421707851811283	0.421707851811283
-5415	1486	144	0.196859858102641	0.196859858102641
-5417	2194	4843	0.069400098080988	0.069400098080988
-5418	4843	4844	0.128982538897387	0.128982538897387
-5420	4845	4846	0.127385402005959	0.127385402005959
-5421	4846	4847	0.0485354577138893	0.0485354577138893
-5422	4847	2197	0.0570536883887032	0.0570536883887032
-5423	2197	2198	0.0030293307914236	0.0030293307914236
-5425	2191	4848	0.228805525488878	0.228805525488878
-5427	4281	2319	0.149466526420244	0.149466526420244
-5428	2319	4849	0.264070561759483	0.264070561759483
-5430	4850	4851	0.124106376215018	0.124106376215018
-5432	4852	4853	0.107373531206162	0.107373531206162
-5433	4853	4854	0.108589473424165	0.108589473424165
-5434	4854	4855	0.105767467639199	0.105767467639199
-5435	4855	4856	0.0608956612626877	0.0608956612626877
-5436	4856	4857	0.0536676140413411	0.0536676140413411
-5438	4858	4859	0.053767328384899	0.053767328384899
-5439	4859	4860	0.0517270733374725	0.0517270733374725
-5440	4860	4861	0.0506527251945452	0.0506527251945452
-5441	4861	4862	0.0500931909858678	0.0500931909858678
-5442	4862	4863	0.0473439516711298	0.0473439516711298
-5444	4864	4865	0.0521797446029276	0.0521797446029276
-17093	9466	677	0.17846620541914	0.17846620541914
-17094	677	3719	0.359015096413943	0.359015096413943
-5446	4866	4867	0.0492134016241179	0.0492134016241179
-5447	4867	4868	0.0506066180898924	0.0506066180898924
-5448	4868	4869	0.0483319487475015	0.0483319487475015
-5449	4869	4870	0.0507611555520018	0.0507611555520018
-5450	4870	980	0.0494869052239766	0.0494869052239766
-5451	980	4871	0.0481249293188332	0.0481249293188332
-5452	4871	4872	0.0462779203242365	0.0462779203242365
-20332	10741	10746	0.00836528320993219	0.00836528320993219
-5453	4872	4873	0.0504026300689218	0.0504026300689218
-5454	4873	4874	0.0485554829183078	0.0485554829183078
-5455	4874	4875	0.0534696334958417	0.0534696334958417
-6731	5782	5783	0.00425137254991275	0.00425137254991275
-5456	4875	4876	0.0484412552758981	0.0484412552758981
-5458	4877	4717	0.0471074620934606	0.0471074620934606
-5459	4717	4878	0.132709338239974	0.132709338239974
-5461	4879	3888	0.0983476297531957	0.0983476297531957
-5462	3888	1018	0.103492590132028	0.103492590132028
-5463	1018	4880	0.0514136092144711	0.0514136092144711
-5464	4880	4881	0.0525893579522226	0.0525893579522226
-5465	4881	3721	0.0533162444253223	0.0533162444253223
-5466	3721	4882	0.0519823122660099	0.0519823122660099
-5467	4882	4883	0.0522344210852062	0.0522344210852062
-5468	4883	4884	0.0505876398657049	0.0505876398657049
-5469	4884	3336	0.0998762512001326	0.0998762512001326
-5470	3336	4885	0.0991185753255084	0.0991185753255084
-5471	4885	4886	0.0963539908668941	0.0963539908668941
-5472	4886	4887	0.0885379825241657	0.0885379825241657
-5473	4887	4888	0.0119373214867398	0.0119373214867398
-5474	4888	2056	0.0843994384439808	0.0843994384439808
-5475	2056	4889	0.0133131298111966	0.0133131298111966
-5476	4889	2662	0.0974967707832978	0.0974967707832978
-5477	2662	4135	0.0954371783119999	0.0954371783119999
-5479	4890	4891	0.0937877451974264	0.0937877451974264
-5480	4891	4892	0.0948153596322219	0.0948153596322219
-5482	3459	4893	0.0478001833146321	0.0478001833146321
-5484	4894	4895	0.0479027082737571	0.0479027082737571
-5485	4895	4896	0.0478122905377956	0.0478122905377956
-5486	4896	859	0.0923773172496592	0.0923773172496592
-5487	859	454	0.0453886692992681	0.0453886692992681
-5488	454	4897	0.0453208554339034	0.0453208554339034
-5489	4897	458	0.0453479211780813	0.0453479211780813
-5492	4899	4900	0.0139467367099566	0.0139467367099566
-5493	4900	4901	0.0360421538971705	0.0360421538971705
-5494	4901	4902	0.0578381423218813	0.0578381423218813
-5495	4902	4903	0.00552719826630604	0.00552719826630604
-5496	4903	4904	0.0875768226675012	0.0875768226675012
-5497	4904	4905	0.0943606682528015	0.0943606682528015
-5498	4905	4906	0.0967192189659533	0.0967192189659533
-5499	4906	4907	0.098185525305783	0.098185525305783
-5501	4908	2748	0.100541646868693	0.100541646868693
-5502	2748	4909	0.0966275722613029	0.0966275722613029
-5503	4909	4910	0.0992689355907326	0.0992689355907326
-5504	4910	4911	0.101479918551735	0.101479918551735
-6779	5822	3617	0.0484295076881561	0.0484295076881561
-5505	4911	4912	0.0969181343296834	0.0969181343296834
-5507	2121	4913	0.0979459294550903	0.0979459294550903
-5508	4913	4914	0.0979869433285632	0.0979869433285632
-5509	4914	4915	0.197888030311115	0.197888030311115
-5510	3113	4916	0.205521796352519	0.205521796352519
-5511	4916	4917	0.213014583006008	0.213014583006008
-5514	1222	4919	0.098914174918745	0.098914174918745
-5516	4920	1622	0.0585646429204787	0.0585646429204787
-5517	1622	4921	0.122620409777708	0.122620409777708
-5518	4921	4922	0.218423462474676	0.218423462474676
-5520	2815	4923	0.167710746898946	0.167710746898946
-5521	4923	4924	0.0980438120983448	0.0980438120983448
-5523	4677	4925	0.0746274432259007	0.0746274432259007
-5525	4926	617	0.0797365701263369	0.0797365701263369
-5526	617	4927	0.125187481931903	0.125187481931903
-5527	4927	4928	0.0778528067673226	0.0778528067673226
-5528	4928	4929	0.199074396611122	0.199074396611122
-5532	4932	4933	0.00438034032424269	0.00438034032424269
-5533	4933	4934	0.0884200199820011	0.0884200199820011
-5534	4934	4935	0.245891005874257	0.245891005874257
-5535	4935	4936	0.142250751986944	0.142250751986944
-5536	4936	4937	0.0173695104401488	0.0173695104401488
-5538	4938	4939	0.203545296385478	0.203545296385478
-5540	1358	4940	0.12982829991663	0.12982829991663
-5543	4079	2536	0.319784261068233	0.319784261068233
-5545	4926	616	0.0701041786984163	0.0701041786984163
-5546	616	4942	0.177022653633518	0.177022653633518
-5547	4942	4943	0.172063039899941	0.172063039899941
-5549	4944	4945	0.149558307265757	0.149558307265757
-5550	4945	3715	0.0517838841978355	0.0517838841978355
-5551	3715	4948	0.104024626392335	0.104024626392335
-5552	4948	4949	0.174823058982553	0.174823058982553
-5553	4949	2616	0.177668474307762	0.177668474307762
-5554	2616	4950	0.0535070014349516	0.0535070014349516
-5555	4950	4951	0.124049062817869	0.124049062817869
-5556	4951	4952	0.174777210980769	0.174777210980769
-5557	4952	4953	0.127620790205472	0.127620790205472
-5558	4953	4954	0.0551759306609038	0.0551759306609038
-5559	4954	4955	0.176133032867453	0.176133032867453
-5560	4955	4956	0.177512737206305	0.177512737206305
-5562	4406	4957	0.277669971565855	0.277669971565855
-5564	4958	4959	0.199658223163124	0.199658223163124
-5566	1598	1655	0.160087686125488	0.160087686125488
-5568	4960	1592	0.199275601482479	0.199275601482479
-5569	1592	1643	0.201203252625689	0.201203252625689
-5571	4961	4369	0.0888591183295397	0.0888591183295397
-5572	4369	1450	0.193863730230332	0.193863730230332
-5573	1450	4962	0.20633144077854	0.20633144077854
-5575	4963	4964	0.865026893272847	0.865026893272847
-5577	4966	4413	0.196777109156883	0.196777109156883
-5578	4413	4967	0.224682445917882	0.224682445917882
-5579	4967	4304	0.221012468473467	0.221012468473467
-5582	4969	4970	0.107069922554974	0.107069922554974
-5583	4970	4972	0.0948495530272937	0.0948495530272937
-5586	4269	4973	0.080198786030782	0.080198786030782
-5587	4974	4767	0.0973607348320062	0.0973607348320062
-5588	4767	4975	0.179413565332346	0.179413565332346
-5589	4975	4976	0.169917329199621	0.169917329199621
-5590	4976	4977	0.181948721536683	0.181948721536683
-5591	4977	3805	0.200239828466703	0.200239828466703
-5592	3805	4978	0.152216995314545	0.152216995314545
-5594	3620	4979	0.203157103314032	0.203157103314032
-5595	4979	2366	0.112909559408727	0.112909559408727
-5596	2366	4147	0.176980531073324	0.176980531073324
-5597	4147	4980	0.0231632311908037	0.0231632311908037
-5599	4981	4982	0.122490029160582	0.122490029160582
-5600	4982	4983	0.198021379234554	0.198021379234554
-5602	4831	3290	0.14433688220634	0.14433688220634
-5604	4248	1783	0.203809923376497	0.203809923376497
-5605	1783	4984	0.197266471488896	0.197266471488896
-5606	4984	4985	0.203487572214077	0.203487572214077
-5607	4985	4986	0.197825547248631	0.197825547248631
-5608	4986	4987	2.41542068401941	2.41542068401941
-5610	4989	4990	0.0962172324904451	0.0962172324904451
-5611	4990	3077	0.102766134165042	0.102766134165042
-5613	4991	322	0.0217232354992756	0.0217232354992756
-5614	322	4992	0.0357866971477297	0.0357866971477297
-5615	4992	4993	0.0111993418256192	0.0111993418256192
-5618	4994	3114	0.0796924849623814	0.0796924849623814
-5619	3114	4995	0.20745656668227	0.20745656668227
-5621	4996	4997	0.202175143533063	0.202175143533063
-5622	4997	4998	0.201486340865611	0.201486340865611
-5623	4998	4999	0.201289887939002	0.201289887939002
-5624	4999	5000	0.201274447612783	0.201274447612783
-5625	5000	5001	0.402211090441065	0.402211090441065
-5627	1058	5002	0.0523412516567849	0.0523412516567849
-5628	5002	5003	0.185331167798599	0.185331167798599
-5629	5003	3655	0.0518833582791727	0.0518833582791727
-5632	5004	4344	0.139169147250759	0.139169147250759
-5633	4344	5005	0.13717907888566	0.13717907888566
-5634	5005	3044	0.136502893019444	0.136502893019444
-5635	3044	5006	0.140687498507325	0.140687498507325
-5636	5006	5007	0.0045870406114538	0.0045870406114538
-5637	5007	5008	0.137903992793689	0.137903992793689
-5638	5008	1165	0.1390388743026	0.1390388743026
-5640	885	4470	0.139218366547603	0.139218366547603
-5641	4470	2792	0.134293285442621	0.134293285442621
-5642	2792	5009	0.131431211174063	0.131431211174063
-5644	5012	739	0.391173244940122	0.391173244940122
-5645	739	1559	0.139743785900176	0.139743785900176
-5646	1559	4275	0.141288921951359	0.141288921951359
-5647	4275	5013	0.120791048813674	0.120791048813674
-5648	5013	5014	0.0105624832499152	0.0105624832499152
-5649	5014	5015	0.0438951959332696	0.0438951959332696
-5650	5015	5016	0.160752036464104	0.160752036464104
-5652	5017	2345	0.117820938280592	0.117820938280592
-5654	4151	1536	0.0491815160552347	0.0491815160552347
-5655	1536	4765	0.126517768209698	0.126517768209698
-5656	4765	5019	0.175921623374803	0.175921623374803
-5657	5019	5020	0.0764689744574068	0.0764689744574068
-5658	5020	5021	0.102480731304504	0.102480731304504
-5659	5021	1190	0.167860102396295	0.167860102396295
-5660	1190	5022	0.022286088803945	0.022286088803945
-5661	5022	3787	0.1996828431131	0.1996828431131
-5662	3787	5023	0.154628071522294	0.154628071522294
-5687	5040	1763	0.201152967219908	0.201152967219908
-5663	5023	2252	0.333559522830682	0.333559522830682
-5664	2252	5024	0.0290309763494638	0.0290309763494638
-5665	5024	4884	0.148258019557603	0.148258019557603
-5666	4884	5025	0.194698119191853	0.194698119191853
-5667	5025	5026	0.176313474196241	0.176313474196241
-5668	5026	5027	0.192373972114261	0.192373972114261
-5669	5027	679	0.169442185038323	0.169442185038323
-5672	5029	4596	0.157086480064782	0.157086480064782
-5674	5030	5031	0.105448542276863	0.105448542276863
-5677	5032	5034	0.00520403492524916	0.00520403492524916
-5678	5034	5035	0.00442576451440448	0.00442576451440448
-5679	5035	5036	0.135764863246336	0.135764863246336
-5681	5037	813	0.139038307562208	0.139038307562208
-5682	813	3554	0.152271167865336	0.152271167865336
-5684	5038	5039	0.16037248823512	0.16037248823512
-5686	2368	5040	0.131780679502724	0.131780679502724
-5689	5041	5042	0.178235693488978	0.178235693488978
-5690	5042	663	0.00303458618342364	0.00303458618342364
-5691	663	5043	0.17896901951739	0.17896901951739
-5692	5043	4608	0.175810797673871	0.175810797673871
-5693	4608	5044	0.116588664300191	0.116588664300191
-5694	5044	5045	0.0312349930548565	0.0312349930548565
-5695	5045	3670	0.147012417470316	0.147012417470316
-5697	5046	4162	0.0660609059196111	0.0660609059196111
-5698	4162	4771	0.262084611870375	0.262084611870375
-5699	4771	5047	0.17859412824458	0.17859412824458
-5700	5047	5048	0.1691727396202	0.1691727396202
-5701	5048	5049	0.184472749838431	0.184472749838431
-5702	5049	3801	0.20027318311003	0.20027318311003
-5703	3801	5050	0.154503416019497	0.154503416019497
-5704	5050	932	0.176703352691921	0.176703352691921
-5706	2217	4867	0.160601247675141	0.160601247675141
-5707	4867	5051	0.19278749199245	0.19278749199245
-5708	5051	5052	0.171738832244774	0.171738832244774
-5709	5052	5053	0.125039053144726	0.125039053144726
-5710	5053	5054	0.0536646579213684	0.0536646579213684
-5712	2413	5055	0.0539797182371141	0.0539797182371141
-5713	5055	5056	0.0555511846145791	0.0555511846145791
-5714	5056	5057	0.0564985233788716	0.0564985233788716
-5715	5058	5059	0.0116997793337229	0.0116997793337229
-5716	5059	369	0.121769364056454	0.121769364056454
-5717	369	1558	0.13936986171661	0.13936986171661
-5718	1558	738	0.139138948896028	0.139138948896028
-5719	738	5060	0.392796141218442	0.392796141218442
-5721	5061	5062	0.12142771399357	0.12142771399357
-5722	5062	5063	0.0553958184996893	0.0553958184996893
-5723	5063	4434	0.0566894209705876	0.0566894209705876
-5724	4434	2921	0.313688166061769	0.313688166061769
-5726	5062	422	0.127478280907992	0.127478280907992
-5727	422	5063	0.108364291033736	0.108364291033736
-5729	5066	5067	0.177224259300569	0.177224259300569
-5730	5067	1319	0.176633232309172	0.176633232309172
-5731	1319	1375	0.177680959479223	0.177680959479223
-5732	1375	5068	0.0602164425054291	0.0602164425054291
-5733	5068	288	0.02427348670764	0.02427348670764
-5734	288	5069	0.0611513015273674	0.0611513015273674
-5735	5069	4693	0.113806398942027	0.113806398942027
-5736	4693	5070	0.156397394554719	0.156397394554719
-5738	1493	182	0.220724132280051	0.220724132280051
-5739	182	1710	0.202718600976859	0.202718600976859
-5742	5072	5073	0.0235981208081862	0.0235981208081862
-5743	5073	5074	0.173346209176791	0.173346209176791
-5744	5074	5075	0.183560584904857	0.183560584904857
-5746	5076	5077	0.201201481229781	0.201201481229781
-5747	5077	5078	0.196158089713223	0.196158089713223
-5750	5080	304	0.450334409862505	0.450334409862505
-5755	5083	4179	0.23271473726582	0.23271473726582
-5757	5084	5085	0.100586570089845	0.100586570089845
-5758	5085	3712	0.0974495496468689	0.0974495496468689
-5759	3712	5088	0.107190885250137	0.107190885250137
-5761	1840	2612	0.176114771519943	0.176114771519943
-5762	2612	5089	0.0532850041931226	0.0532850041931226
-5763	5089	5090	0.123805391077944	0.123805391077944
-5764	5090	5091	0.0921824286504112	0.0921824286504112
-5765	5091	5092	0.0849604613604367	0.0849604613604367
-5767	5093	4077	0.0433656831085181	0.0433656831085181
-5768	4077	5094	0.807132686207363	0.807132686207363
-5769	5092	5095	0.184721084541763	0.184721084541763
-5770	5095	5096	0.112121546650621	0.112121546650621
-5771	5096	5097	0.012405493892182	0.012405493892182
-12067	8534	8532	0.0417307390941294	0.0417307390941294
-5774	5099	5100	0.195348601056539	0.195348601056539
-5775	5100	5101	1.61385249170336	1.61385249170336
-5776	4334	5102	0.201130889411283	0.201130889411283
-5778	5103	2576	0.52830768269949	0.52830768269949
-5782	1145	874	0.139433776255124	0.139433776255124
-5783	874	4462	0.13822164303959	0.13822164303959
-5784	4462	2782	0.134807869792579	0.134807869792579
-5786	5108	5109	0.136531475414142	0.136531475414142
-5787	5110	5111	0.166792389966844	0.166792389966844
-5788	5111	5112	0.0444779706577198	0.0444779706577198
-5789	5113	4169	0.194541086455447	0.194541086455447
-5790	4169	4754	0.20739031390672	0.20739031390672
-5791	4754	5114	0.19819923300798	0.19819923300798
-5792	5114	5115	0.205574207946515	0.205574207946515
-5793	5115	5116	0.18969176296687	0.18969176296687
-5795	3795	5117	0.153449380032665	0.153449380032665
-5796	5117	942	0.178860285004076	0.178860285004076
-5797	942	2226	0.181510674241125	0.181510674241125
-5798	2226	4876	0.162456954471732	0.162456954471732
-5799	4876	5118	0.192077540660028	0.192077540660028
-5800	5118	5119	0.169639680241679	0.169639680241679
-5801	5119	5120	0.176431836448169	0.176431836448169
-5805	5123	5124	0.138482206224941	0.138482206224941
-5807	5125	5126	0.196467690434778	0.196467690434778
-5809	5127	5128	0.177236972666439	0.177236972666439
-5810	5128	666	0.00411429224620583	0.00411429224620583
-5811	666	5129	0.00398081510277296	0.00398081510277296
-5812	5129	5130	0.0219503048251099	0.0219503048251099
-5813	5130	5131	0.152662411900591	0.152662411900591
-5814	5131	4605	0.174323615227633	0.174323615227633
-5815	4605	3691	0.233536002014651	0.233536002014651
-5816	3691	5132	0.0578224768050087	0.0578224768050087
-5817	4901	5133	0.0573209620432963	0.0573209620432963
-5819	5134	5135	0.102452742724465	0.102452742724465
-5820	5135	5136	0.101180875593513	0.101180875593513
-5821	5136	5137	0.0993172550227887	0.0993172550227887
-5822	5137	5138	0.0973174615516026	0.0973174615516026
-5823	5138	5139	0.0592813821516456	0.0592813821516456
-5824	5139	5140	0.0572628386692297	0.0572628386692297
-5825	5140	5141	0.0908568563064313	0.0908568563064313
-5826	5141	5142	0.108696465338082	0.108696465338082
-5827	5142	5143	0.117446225438567	0.117446225438567
-5828	5143	5144	0.115052510861077	0.115052510861077
-5831	2118	5146	0.132113404680538	0.132113404680538
-5832	5146	5147	0.0733188328504862	0.0733188328504862
-5833	5147	5148	0.0348417204507369	0.0348417204507369
-5860	3449	5168	0.101446764740706	0.101446764740706
-5835	4903	5149	0.0928559279225574	0.0928559279225574
-5836	5149	5150	0.101009488468598	0.101009488468598
-5837	5150	5151	0.101494340144734	0.101494340144734
-12222	8597	8598	0.00932829170104997	0.00932829170104997
-12223	8598	8599	0.0244824521093208	0.0244824521093208
-5838	5151	5152	0.100261540674961	0.100261540674961
-5839	5152	5153	0.221241395423211	0.221241395423211
-5840	5153	2236	0.0908651857276488	0.0908651857276488
-5841	2236	5154	0.10116756602451	0.10116756602451
-5842	5154	5155	0.114191873365342	0.114191873365342
-5843	5155	5156	0.113038208940698	0.113038208940698
-5844	5156	2119	0.121856512679973	0.121856512679973
-5845	2119	5157	0.125333022212683	0.125333022212683
-5846	5157	5158	0.121389833666029	0.121389833666029
-5847	5158	5159	0.0390946612702668	0.0390946612702668
-5850	5160	2133	0.195466658548015	0.195466658548015
-5854	5163	2476	0.202535777887142	0.202535777887142
-5856	5164	5165	0.0156138568041909	0.0156138568041909
-5857	5165	5166	0.100589160353206	0.100589160353206
-5858	5166	5167	0.104247833927165	0.104247833927165
-5859	5167	3449	0.104250422099089	0.104250422099089
-5861	5168	3879	0.102808830950679	0.102808830950679
-5862	3879	841	0.103522696858037	0.103522696858037
-5863	841	5169	0.102719682704035	0.102719682704035
-5864	5169	5170	0.0474110701835865	0.0474110701835865
-5866	5171	5172	0.106685417852495	0.106685417852495
-5867	5172	5173	0.0515553847760644	0.0515553847760644
-5868	5173	4988	0.0505202363313306	0.0505202363313306
-17163	5107	1802	0.195280530173469	0.195280530173469
-5869	4988	962	0.105015490507221	0.105015490507221
-5870	962	4141	0.100506431839732	0.100506431839732
-5871	4141	3161	0.101307790482977	0.101307790482977
-5872	3161	3620	0.0948143449717999	0.0948143449717999
-5873	3620	1826	0.102953991217456	0.102953991217456
-5874	1826	4334	0.0954488426398559	0.0954488426398559
-5876	5174	1763	0.050455869495655	0.050455869495655
-5877	1763	4616	0.0477367574799653	0.0477367574799653
-5878	4616	5175	0.0514444022852647	0.0514444022852647
-5879	5175	4306	0.0486177089369888	0.0486177089369888
-5880	4306	994	0.0512355770161431	0.0512355770161431
-5881	994	4309	0.0460747606120818	0.0460747606120818
-5882	4309	2915	0.0558782384698847	0.0558782384698847
-5883	2915	2916	0.0205535416898751	0.0205535416898751
-5909	5190	5191	0.0526195895778432	0.0526195895778432
-5887	587	588	0.0168822192889414	0.0168822192889414
-5888	588	5177	0.110837670707715	0.110837670707715
-5889	5177	1399	0.106464576541899	0.106464576541899
-5890	1399	5178	0.00837287829367045	0.00837287829367045
-5891	5178	5179	0.0973274399582508	0.0973274399582508
-5892	5179	5180	0.0713882284598403	0.0713882284598403
-5893	5180	3386	0.0465173628433736	0.0465173628433736
-5894	3386	5181	0.0466294338105993	0.0466294338105993
-5895	5181	5182	0.0461505269276214	0.0461505269276214
-5896	5182	2801	0.0476762891770853	0.0476762891770853
-5897	2801	5183	0.0462906353191723	0.0462906353191723
-5898	5183	5184	0.0462689908237556	0.0462689908237556
-5899	5184	5185	0.0466469950505128	0.0466469950505128
-5900	5185	5186	0.0471146492559741	0.0471146492559741
-5901	5186	5187	0.045278465180898	0.045278465180898
-5902	5187	1570	0.0464406557272166	0.0464406557272166
-5903	1570	1095	0.0464745881593838	0.0464745881593838
-5904	1095	5188	0.0475893065083787	0.0475893065083787
-7153	6059	6060	0.0479619125752321	0.0479619125752321
-5905	5188	5189	0.0454253204645735	0.0454253204645735
-5906	5189	1538	0.0460968804258839	0.0460968804258839
-5907	1538	3854	0.04697776477365	0.04697776477365
-5908	3854	5190	0.0530473283120516	0.0530473283120516
-5911	5192	5193	0.0515193353777817	0.0515193353777817
-5913	5194	5195	0.0687779636933597	0.0687779636933597
-5914	5195	5090	0.141994718426853	0.141994718426853
-5915	5090	5196	0.112634336237225	0.112634336237225
-5916	5196	5197	0.0575743623042855	0.0575743623042855
-5917	5197	4671	0.100935765794822	0.100935765794822
-5918	4671	4951	0.0999693670841652	0.0999693670841652
-5919	4951	5198	0.0511858126232579	0.0511858126232579
-5921	5199	5200	0.0499779255146796	0.0499779255146796
-5922	5200	5201	0.0499920394458099	0.0499920394458099
-5923	5201	5202	0.0457134833999458	0.0457134833999458
-5924	5202	5203	0.0421294446780762	0.0421294446780762
-5925	5203	3957	0.137188173752203	0.137188173752203
-5926	3957	5204	0.0640931318030062	0.0640931318030062
-5927	5204	5205	0.0544857674041209	0.0544857674041209
-5928	5205	5206	0.0521757463337926	0.0521757463337926
-5929	5207	5208	0.0487730947754618	0.0487730947754618
-5930	5208	5209	0.0493635031974476	0.0493635031974476
-5932	5211	5212	0.207489392195287	0.207489392195287
-5933	5212	4646	0.099390326989904	0.099390326989904
-5935	3645	4555	0.0986517427687235	0.0986517427687235
-5937	5213	5214	0.322259629928437	0.322259629928437
-5938	5215	5216	0.143730822686287	0.143730822686287
-5939	5216	5217	0.0599126619694891	0.0599126619694891
-5940	5217	5218	0.202016907937226	0.202016907937226
-5942	5219	5220	0.186576382334646	0.186576382334646
-5944	5221	5222	0.13343391197395	0.13343391197395
-5945	5222	2558	0.200662474351154	0.200662474351154
-5946	2558	5224	0.208372800213582	0.208372800213582
-5947	5225	4431	0.102067442103011	0.102067442103011
-5948	4431	3711	0.0989108306469789	0.0989108306469789
-5949	3711	5226	0.107183313746265	0.107183313746265
-5950	5226	1839	0.179335285582576	0.179335285582576
-17165	4242	3547	0.202237742052361	0.202237742052361
-5951	1839	2611	0.178227308228011	0.178227308228011
-5952	2611	5195	0.176210949140518	0.176210949140518
-20492	10836	10813	0.00305693422510609	0.00305693422510609
-7198	6089	1755	0.0565523921918465	0.0565523921918465
-18301	5526	5737	0.156444459924747	0.156444459924747
-5957	4512	5230	0.200430868604248	0.200430868604248
-5959	5231	5232	0.20240814685365	0.20240814685365
-5960	5232	5233	0.200177276698155	0.200177276698155
-5961	5233	5234	0.403649470879027	0.403649470879027
-5962	3278	3181	0.152742056397443	0.152742056397443
-5964	3927	3703	0.0675866941557576	0.0675866941557576
-5965	3703	708	0.0999635221991015	0.0999635221991015
-5966	708	5235	0.0981118109963614	0.0981118109963614
-5967	5235	5236	0.0989915986442654	0.0989915986442654
-5968	5236	4189	0.135714784882046	0.135714784882046
-5969	4189	2515	0.133468058331593	0.133468058331593
-5970	2515	5237	0.135326951582466	0.135326951582466
-5971	5237	4803	0.135895734874124	0.135895734874124
-5972	4803	5238	0.136371570616542	0.136371570616542
-5973	5238	5239	0.126834347813211	0.126834347813211
-5974	5239	5240	0.133492367602304	0.133492367602304
-5975	5240	4624	0.131817065741689	0.131817065741689
-7224	4702	6106	0.102350270818551	0.102350270818551
-5979	2725	5242	0.133090700331069	0.133090700331069
-5981	5243	5244	0.0777207800874593	0.0777207800874593
-5982	5244	5245	0.710188326706697	0.710188326706697
-5983	3974	5246	0.196425810260379	0.196425810260379
-5984	5246	3422	0.201357225192724	0.201357225192724
-5986	3423	5247	0.0491810142725505	0.0491810142725505
-5987	5247	5248	0.0477450735797267	0.0477450735797267
-5989	5249	5250	0.055676102895211	0.055676102895211
-5990	5250	5251	0.140244564447974	0.140244564447974
-5991	5251	5252	0.170294636723478	0.170294636723478
-5993	5253	5254	0.106323677730181	0.106323677730181
-5994	5254	5108	0.109212547805518	0.109212547805518
-5995	5108	4725	0.103272467122344	0.103272467122344
-5996	4725	5255	0.103742512264204	0.103742512264204
-5997	5255	5256	0.105340810076794	0.105340810076794
-5999	5257	3136	0.108092936006134	0.108092936006134
-6000	3136	3908	0.107682657630117	0.107682657630117
-7243	6117	6118	0.0967566510311658	0.0967566510311658
-6001	3908	1048	0.108571568461532	0.108571568461532
-6002	1048	5258	0.101973343920372	0.101973343920372
-6003	5258	5259	0.106357911571636	0.106357911571636
-6005	5260	5009	0.0315381518095178	0.0315381518095178
-6006	5009	3333	0.108118604625977	0.108118604625977
-6007	3333	5261	0.119315074925742	0.119315074925742
-6008	5261	5263	0.0963665691070474	0.0963665691070474
-6009	5263	5264	0.0432816561908272	0.0432816561908272
-6010	5264	2085	0.0535379351296007	0.0535379351296007
-6011	2085	5265	0.105640004427027	0.105640004427027
-6012	5265	4130	0.106366490545515	0.106366490545515
-6013	4130	5266	0.109451940113279	0.109451940113279
-6014	5266	5267	0.101101610243622	0.101101610243622
-6018	5269	5270	0.0982982274574071	0.0982982274574071
-6019	5270	804	0.0991956500472809	0.0991956500472809
-6020	804	5271	0.0978879869631794	0.0978879869631794
-6021	5271	5272	0.0909649766992318	0.0909649766992318
-6022	5272	5273	0.0146836193769648	0.0146836193769648
-6024	5274	1956	0.174868207801427	0.174868207801427
-6027	5275	5276	0.0506368419660478	0.0506368419660478
-6028	5276	4990	0.0537681631666927	0.0537681631666927
-6029	4990	5277	0.102832227368728	0.102832227368728
-6030	5277	5278	0.0856095541145101	0.0856095541145101
-6032	1548	4268	0.202455793335308	0.202455793335308
-6033	4268	283	0.117344693446838	0.117344693446838
-6035	4141	5279	0.202925527060843	0.202925527060843
-6036	5279	2364	0.110547560275979	0.110547560275979
-6037	2364	4146	0.176928363643229	0.176928363643229
-6038	4146	5281	0.187030458155785	0.187030458155785
-6039	5281	5282	0.011246856594195	0.011246856594195
-6041	5283	2870	0.194705331985994	0.194705331985994
-6043	5285	5286	0.301111320410511	0.301111320410511
-6044	5287	5288	0.185724938270304	0.185724938270304
-6045	5288	5289	0.213285003773079	0.213285003773079
-6047	5290	5291	0.13629389839255	0.13629389839255
-6048	5291	5292	0.13355771854799	0.13355771854799
-6049	5292	4013	0.133867532403999	0.133867532403999
-6052	5294	3384	0.128421314744864	0.128421314744864
-6053	3384	5295	0.104229219478348	0.104229219478348
-6054	5295	3817	0.102592362577248	0.102592362577248
-6056	5296	5297	0.0990440053907464	0.0990440053907464
-6057	5297	5298	0.00501097787172802	0.00501097787172802
-6058	5298	5299	0.26852367463784	0.26852367463784
-6059	5299	5300	0.02711052781377	0.02711052781377
-6060	5300	5301	0.101042477184366	0.101042477184366
-6061	5301	5302	0.0980158544732548	0.0980158544732548
-6062	5302	5303	0.68853335666363	0.68853335666363
-6063	4532	3739	0.10058657036035	0.10058657036035
-6064	3739	5305	0.101344660556636	0.101344660556636
-6065	5305	1342	0.202678391855073	0.202678391855073
-6067	5306	4700	0.20166419460726	0.20166419460726
-6068	4700	5307	0.201175175307418	0.201175175307418
-6069	5307	5308	0.201920176537304	0.201920176537304
-6070	5308	5309	0.201920207593883	0.201920207593883
-6071	5309	777	0.201196100270561	0.201196100270561
-6072	777	5310	0.185040940142678	0.185040940142678
-6073	5310	5311	0.201942415647541	0.201942415647541
-6074	5311	5312	0.206000886771111	0.206000886771111
-7322	6161	6162	0.200977808302969	0.200977808302969
-6077	1729	5313	0.145417053241999	0.145417053241999
-6079	5314	5315	0.262924523321611	0.262924523321611
-6080	5316	3497	0.142809169887552	0.142809169887552
-6082	2903	5317	0.0402215187360589	0.0402215187360589
-6083	5317	5318	0.00632191300841853	0.00632191300841853
-6084	5318	5319	0.00945274881783772	0.00945274881783772
-6085	5319	5320	0.102488283152376	0.102488283152376
-6086	5320	5321	0.105737259840933	0.105737259840933
-6087	5321	5322	0.104280118546109	0.104280118546109
-6088	5322	5323	0.105008595801197	0.105008595801197
-6089	5323	5324	0.107079302112312	0.107079302112312
-6090	5324	3311	0.104784168499708	0.104784168499708
-6091	3311	5325	0.104972132929345	0.104972132929345
-6093	5328	5329	0.148443179384572	0.148443179384572
-6094	5329	4320	0.122968314186663	0.122968314186663
-6095	4320	5331	0.133138685881437	0.133138685881437
-6096	5331	5332	0.129500346452113	0.129500346452113
-6097	5332	5072	0.094543402764425	0.094543402764425
-6098	5072	5333	0.0140267468815188	0.0140267468815188
-7348	5506	4458	0.146478928082641	0.146478928082641
-6099	5333	5334	0.0971985352126134	0.0971985352126134
-6100	5334	5335	0.0675695345311337	0.0675695345311337
-6101	5335	5336	0.135628949553031	0.135628949553031
-6102	5336	5337	0.134096180080561	0.134096180080561
-6103	5337	5338	0.121603742223712	0.121603742223712
-6104	5338	5339	0.288999775625269	0.288999775625269
-6105	5339	5340	0.295278488962845	0.295278488962845
-6106	5340	5341	0.386769671992271	0.386769671992271
-6107	5341	5342	0.199175415622423	0.199175415622423
-18500	9718	6670	0.0335166183519053	0.0335166183519053
-6108	272	2532	0.233490999842372	0.233490999842372
-6109	2532	2534	0.010275790210419	0.010275790210419
-6111	5343	5344	0.134883731263317	0.134883731263317
-6112	5344	2487	0.132908396505932	0.132908396505932
-6113	2487	2828	0.130466466605355	0.130466466605355
-6114	2828	1436	0.203164250472258	0.203164250472258
-6115	1436	5345	0.151025004833817	0.151025004833817
-6117	5346	5347	0.17552323432827	0.17552323432827
-6118	5347	3107	0.175398997422213	0.175398997422213
-6119	3107	5348	0.192385063711178	0.192385063711178
-6121	1515	5349	0.354712199012844	0.354712199012844
-6123	4219	5350	0.184992548254205	0.184992548254205
-6124	5350	5351	0.809194581386362	0.809194581386362
-6125	3828	5352	0.158319505042179	0.158319505042179
-6127	3683	5353	0.00756991430853718	0.00756991430853718
-6128	5353	5354	0.0600900021718448	0.0600900021718448
-6129	5354	5355	0.0486030977669072	0.0486030977669072
-6130	5355	5356	0.00770962942235081	0.00770962942235081
-6132	5357	5358	0.0529187112553076	0.0529187112553076
-6133	5358	5359	0.0513821813874635	0.0513821813874635
-6134	5359	5360	0.0534444522847469	0.0534444522847469
-6135	5360	5361	0.0503260757639254	0.0503260757639254
-6137	5362	5363	0.199678713236371	0.199678713236371
-6139	4554	5364	0.257952059435159	0.257952059435159
-6141	2203	5365	0.125513593247199	0.125513593247199
-6142	5365	5366	0.121103405669087	0.121103405669087
-6143	5366	5367	0.118905793541669	0.118905793541669
-6144	5367	5368	0.110432655754222	0.110432655754222
-7394	6208	6209	0.0520019237828089	0.0520019237828089
-6145	5368	4924	0.050653673780936	0.050653673780936
-6146	4924	5369	0.0113612305905717	0.0113612305905717
-6148	5370	5371	0.0511886893302135	0.0511886893302135
-6149	5371	3733	0.0547546687048594	0.0547546687048594
-6150	3733	5372	0.0739604711312813	0.0739604711312813
-6151	5372	5373	0.0333758188249575	0.0333758188249575
-6152	5373	5374	0.0326832624474652	0.0326832624474652
-6153	5374	4487	0.0687015455014252	0.0687015455014252
-6155	5375	5376	0.083676019608772	0.083676019608772
-6157	5377	5378	0.539527941615599	0.539527941615599
-6158	5379	5380	0.024339909926927	0.024339909926927
-6159	5380	5381	0.0572545808576417	0.0572545808576417
-6161	5382	5383	0.0919429478923695	0.0919429478923695
-6162	5383	4632	0.0667555867186957	0.0667555867186957
-6163	4632	4638	0.073630878201174	0.073630878201174
-6164	4638	4551	0.135095610306562	0.135095610306562
-6165	4551	5384	0.293762175707744	0.293762175707744
-6167	2098	5385	0.176238767515036	0.176238767515036
-6168	5385	3108	0.175113982885218	0.175113982885218
-6169	3108	5386	0.213105615274275	0.213105615274275
-6170	5386	5387	0.16568697132589	0.16568697132589
-6171	5387	5388	0.0444779706577198	0.0444779706577198
-6173	1958	3829	0.172873649500925	0.172873649500925
-6174	3829	3827	0.0048313839727239	0.0048313839727239
-6175	3827	5389	0.152170039924714	0.152170039924714
-6176	5389	547	0.0103214739502372	0.0103214739502372
-6177	547	3259	0.110383801281946	0.110383801281946
-6178	3259	3297	0.0174353644977756	0.0174353644977756
-6180	4220	5391	0.40468883776866	0.40468883776866
-6181	1473	5392	0.374922653008132	0.374922653008132
-6182	5392	2947	0.18613051410303	0.18613051410303
-6184	5393	5394	0.133683449538656	0.133683449538656
-6185	5394	5395	0.00436494876438714	0.00436494876438714
-6186	5395	5396	0.00413948116283948	0.00413948116283948
-6187	5396	5397	0.135591162545584	0.135591162545584
-6188	5397	5398	0.140883972058497	0.140883972058497
-6189	5398	823	0.138673141914839	0.138673141914839
-6190	823	3564	0.136111333534187	0.136111333534187
-6191	3564	5399	0.14331239683406	0.14331239683406
-6193	5400	3028	0.141885844467344	0.141885844467344
-7436	5227	5219	0.0266079784612615	0.0266079784612615
-6195	5401	5402	0.00584885314190653	0.00584885314190653
-6196	5402	5403	0.138593356569714	0.138593356569714
-6197	5403	1157	0.139497033685325	0.139497033685325
-6198	1157	878	0.139538816070218	0.139538816070218
-6199	878	4466	0.138604668182001	0.138604668182001
-6200	4466	2786	0.1346682214983	0.1346682214983
-6201	2786	5257	0.131712815882714	0.131712815882714
-6202	5257	5404	0.212033227364557	0.212033227364557
-6203	5404	5405	0.140381205630714	0.140381205630714
-6204	5405	5406	0.175882952103236	0.175882952103236
-6206	4761	5407	0.0777628340765697	0.0777628340765697
-6207	5407	5411	0.121860688460736	0.121860688460736
-6208	5411	5412	0.203436645645446	0.203436645645446
-6211	5413	3128	0.197988223180436	0.197988223180436
-6213	5414	5415	0.127346625489507	0.127346625489507
-6214	5415	5416	0.202431697844534	0.202431697844534
-6216	5417	5418	0.0360920642856509	0.0360920642856509
-18249	10283	10284	0.0379598203284706	0.0379598203284706
-6217	5418	5419	0.175688258529037	0.175688258529037
-6218	5419	5420	0.176513424391556	0.176513424391556
-6219	5420	671	0.183363162969023	0.183363162969023
-6220	671	5421	0.00332688246962709	0.00332688246962709
-6221	5421	5422	0.175194594065608	0.175194594065608
-6222	5422	4601	0.174116514777802	0.174116514777802
-6223	4601	5423	0.141050765485302	0.141050765485302
-6225	2950	5424	0.133468479991587	0.133468479991587
-6226	5425	3096	0.198372842511786	0.198372842511786
-6227	3096	3206	0.203187034114148	0.203187034114148
-6228	3206	5426	0.199398136177365	0.199398136177365
-6229	5426	1916	0.200785704053696	0.200785704053696
-6231	5427	5428	0.208049356186156	0.208049356186156
-6232	5428	5429	0.195358366621449	0.195358366621449
-6233	5429	5430	0.0822508872394256	0.0822508872394256
-6234	5431	3740	0.099853044127537	0.099853044127537
-6235	3740	5432	0.079904711368683	0.079904711368683
-6236	5432	5433	0.0177357578673254	0.0177357578673254
-6237	5433	1299	0.160881213225809	0.160881213225809
-6238	1299	1344	0.0431325120453993	0.0431325120453993
-6239	1344	5434	0.202930771593003	0.202930771593003
-6240	5434	5435	0.195937805328833	0.195937805328833
-6241	5435	4701	0.00964060014055181	0.00964060014055181
-6242	4701	5436	0.088911763330732	0.088911763330732
-6243	5436	5437	0.105079205678488	0.105079205678488
-6244	5437	5438	0.0943047001329777	0.0943047001329777
-6245	5438	5439	0.100620360394738	0.100620360394738
-6246	5439	5440	0.0146794154501444	0.0146794154501444
-6247	5440	4965	0.086276226710605	0.086276226710605
-6248	4965	5441	0.10739345579216	0.10739345579216
-6249	5441	5442	0.0951717377148208	0.0951717377148208
-6250	5442	5443	0.0976857174224503	0.0976857174224503
-6252	779	5444	0.0823735255229089	0.0823735255229089
-6253	5444	5445	0.102122427250782	0.102122427250782
-6254	5445	4958	0.133513290288167	0.133513290288167
-6255	4958	5446	0.0684224753039321	0.0684224753039321
-6256	5446	5447	0.00769468892365438	0.00769468892365438
-6257	5447	5448	0.199639504943165	0.199639504943165
-6258	5448	1501	0.201263981115328	0.201263981115328
-6259	1501	174	0.201029338652354	0.201029338652354
-6261	1704	1730	0.0545082426213867	0.0545082426213867
-6262	1730	5451	0.146076957823045	0.146076957823045
-6263	5451	5452	1.20615427321132	1.20615427321132
-6265	5456	5457	0.107171013555617	0.107171013555617
-6266	5457	5458	0.0551341429674013	0.0551341429674013
-6267	5458	5459	0.053860211885536	0.053860211885536
-6268	5459	5460	0.109859438734606	0.109859438734606
-6269	5460	5461	0.104952215686531	0.104952215686531
-6270	5461	5462	0.0537660564474852	0.0537660564474852
-6271	5462	5463	0.0468001440268365	0.0468001440268365
-6273	5464	5465	0.0487076064705391	0.0487076064705391
-6274	5465	5466	0.096682643717806	0.096682643717806
-6275	5466	5052	0.0976295695745084	0.0976295695745084
-6276	5052	5467	0.0498503558842522	0.0498503558842522
-6277	5467	5468	0.0500897185974344	0.0500897185974344
-6279	5223	978	0.0483462615206691	0.0483462615206691
-6280	978	5469	0.0500186833718628	0.0500186833718628
-6281	5469	5470	0.0466179289686935	0.0466179289686935
-6282	5470	5471	0.0496889709391185	0.0496889709391185
-6283	5471	5472	0.0500395303728477	0.0500395303728477
-6284	5472	4947	0.0500649255411997	0.0500649255411997
-6285	4947	5119	0.0486069729184005	0.0486069729184005
-6286	5119	5473	0.0497694572157541	0.0497694572157541
-6287	5473	4719	0.0482501223288259	0.0482501223288259
-6288	4719	5474	0.0825694493004343	0.0825694493004343
-6289	5474	5475	0.013401399089124	0.013401399089124
-6290	5475	5476	0.103889728134339	0.103889728134339
-6291	5476	5419	0.103815153646491	0.103815153646491
-6292	5419	5477	0.109635415021011	0.109635415021011
-6294	3890	1020	0.105962717150938	0.105962717150938
-6295	1020	5478	0.052027246508575	0.052027246508575
-6296	5478	5479	0.0524872333525023	0.0524872333525023
-6297	5479	3719	0.052252544610622	0.052252544610622
-6298	3719	5480	0.0538013756911254	0.0538013756911254
-6299	5480	5481	0.0436600330786078	0.0436600330786078
-6300	5481	5482	0.00837974421686285	0.00837974421686285
-14763	7162	4611	0.176903840452458	0.176903840452458
-6301	5482	5026	0.040489278057912	0.040489278057912
-6302	5026	3338	0.107876149200874	0.107876149200874
-6303	3338	5483	0.0990429074228521	0.0990429074228521
-6304	5483	5484	0.0966066822218646	0.0966066822218646
-6305	5484	5485	0.085086759759281	0.085086759759281
-6306	5485	5486	0.0169728889677259	0.0169728889677259
-6307	5486	2067	0.0825646387998858	0.0825646387998858
-6309	5487	2667	0.0866869262626222	0.0866869262626222
-6310	2667	2664	0.00897895817052901	0.00897895817052901
-6311	2664	4137	0.0908182867369719	0.0908182867369719
-6312	4137	5488	0.0965705527653259	0.0965705527653259
-6313	5488	5489	0.0942751679467969	0.0942751679467969
-6314	5489	5490	0.0959916716400224	0.0959916716400224
-6315	5490	3461	0.0933212956911074	0.0933212956911074
-6316	3461	5491	0.0467923341231575	0.0467923341231575
-6317	5491	5492	0.0479894648111637	0.0479894648111637
-6318	5492	5493	0.094030978726141	0.094030978726141
-6319	5493	861	0.0920531787302436	0.0920531787302436
-6320	861	5494	0.092346282981082	0.092346282981082
-6321	5494	5495	0.091117734759624	0.091117734759624
-20501	10824	10839	0.0279151158292869	0.0279151158292869
-6323	5496	5497	0.0512308809047994	0.0512308809047994
-6324	5497	5498	0.0547050066584288	0.0547050066584288
-6325	5498	5499	0.0532065647068504	0.0532065647068504
-6326	5499	5500	0.0520026026999989	0.0520026026999989
-6327	5500	5501	0.0600453089722235	0.0600453089722235
-6328	5501	5502	0.0451373924487277	0.0451373924487277
-7588	6319	6320	0.0874047970677394	0.0874047970677394
-6330	5503	5504	0.0512021800904844	0.0512021800904844
-6331	5504	5505	0.0535897595927606	0.0535897595927606
-6332	5505	5506	0.0503264318858696	0.0503264318858696
-6333	5506	5507	0.0549843628648472	0.0549843628648472
-6334	5507	3309	0.0521587927419047	0.0521587927419047
-6335	3309	5508	0.0557422576502987	0.0557422576502987
-6336	5508	5509	0.0498065817995712	0.0498065817995712
-6338	5510	5511	0.10273263586878	0.10273263586878
-6339	5511	5512	0.103095987250104	0.103095987250104
-6340	5512	3020	0.0125186689867189	0.0125186689867189
-6341	3020	5513	0.0466432236195876	0.0466432236195876
-6342	5513	4381	0.0509815437370977	0.0509815437370977
-6344	5514	5515	0.103259680904514	0.103259680904514
-6345	5515	3934	0.0990266173550878	0.0990266173550878
-6346	3934	5516	0.10122291130851	0.10122291130851
-6347	5516	3707	0.107162793104657	0.107162793104657
-6348	3707	717	0.101965718351369	0.101965718351369
-6349	717	5517	0.10489500722876	0.10489500722876
-6350	5517	5518	0.0880249775504832	0.0880249775504832
-6352	5519	4201	0.0955388621117037	0.0955388621117037
-6353	4201	1068	0.10398483351111	0.10398483351111
-6354	1068	2504	0.101881809876575	0.101881809876575
-6355	2504	5520	0.10295538196753	0.10295538196753
-6356	5520	1231	0.0964004159007037	0.0964004159007037
-6357	1231	4809	0.0995624903271375	0.0995624903271375
-6358	4809	2176	0.101169164261142	0.101169164261142
-6359	2176	5521	0.102032335854251	0.102032335854251
-6360	5521	348	0.0731550647240869	0.0731550647240869
-6361	348	351	0.0329026304601732	0.0329026304601732
-6363	5522	4629	0.122115753805888	0.122115753805888
-6364	4629	1258	0.132003632804436	0.132003632804436
-6366	377	4544	0.0548661978897115	0.0548661978897115
-6367	4544	2700	0.136738193723685	0.136738193723685
-6368	2700	5523	0.130559333935347	0.130559333935347
-6371	5525	1133	0.0486624445582808	0.0486624445582808
-6372	1133	5526	0.0510752177714687	0.0510752177714687
-6373	5526	5527	0.0534768474459495	0.0534768474459495
-6374	5527	3849	0.0993499397911337	0.0993499397911337
-20247	6972	10718	0.0278784612667637	0.0278784612667637
-6375	3849	5528	0.0502810849564127	0.0502810849564127
-6376	5528	5529	0.0506206995449551	0.0506206995449551
-6378	3432	5530	0.0954898525843842	0.0954898525843842
-6379	5530	1409	0.0985492973952367	0.0985492973952367
-6380	1409	5531	0.102140021124127	0.102140021124127
-6381	5531	3995	0.106588318724824	0.106588318724824
-6382	3995	5532	0.089989655098645	0.089989655098645
-6383	5532	5533	0.0940983975381981	0.0940983975381981
-6384	5533	3749	0.102559803256087	0.102559803256087
-6385	3749	5534	0.132377311804748	0.132377311804748
-6388	2028	5536	0.103552176267271	0.103552176267271
-6391	3402	5538	0.101285303038309	0.101285303038309
-6392	5538	5539	0.0982612440798091	0.0982612440798091
-6393	5539	5540	0.104203916508807	0.104203916508807
-6394	5540	5541	0.0994909347746214	0.0994909347746214
-6395	5541	5542	0.0496866830167122	0.0496866830167122
-6396	5542	1115	0.0483270289965061	0.0483270289965061
-6397	1115	5543	0.0505090974663915	0.0505090974663915
-6398	5543	5544	0.051466523607823	0.051466523607823
-6399	5544	5545	0.0509771831188889	0.0509771831188889
-18369	6894	6889	0.0506808956189271	0.0506808956189271
-6400	5545	3837	0.0484293465449961	0.0484293465449961
-6402	5546	5547	0.0572465530818606	0.0572465530818606
-6403	5547	4036	0.051041556606541	0.051041556606541
-6404	4036	5548	0.0609619584955507	0.0609619584955507
-6405	1878	4178	0.0543518295000293	0.0543518295000293
-6406	4178	5549	0.0885356562805968	0.0885356562805968
-6408	1863	2630	0.0954187587481574	0.0954187587481574
-6409	2630	2609	0.0942841337329746	0.0942841337329746
-6410	2609	5207	0.106776685868403	0.106776685868403
-6411	5207	5191	0.0702035466323056	0.0702035466323056
-6412	5191	5550	0.105689823753241	0.105689823753241
-6414	5551	5552	0.13548002915508	0.13548002915508
-6415	5552	5553	0.0682592832885596	0.0682592832885596
-6416	5553	19	0.0650116042038798	0.0650116042038798
-6417	19	2991	0.133631170313494	0.133631170313494
-6418	2991	5554	0.0524731372315077	0.0524731372315077
-6419	5554	1882	0.0490816557393864	0.0490816557393864
-6420	1882	5555	0.0508829391590993	0.0508829391590993
-6421	5555	5556	0.0494818870663145	0.0494818870663145
-6422	5556	5557	0.0511609921162368	0.0511609921162368
-6423	5557	5558	0.0498069369814246	0.0498069369814246
-6424	5558	5559	0.0494751154031395	0.0494751154031395
-6425	5559	5560	0.0510095826256232	0.0510095826256232
-18695	5978	4055	0.196460738141722	0.196460738141722
-6426	5560	5561	0.100658038986824	0.100658038986824
-6427	5561	5562	0.100189919501299	0.100189919501299
-6428	5562	5243	0.0999621826427635	0.0999621826427635
-6429	5243	5563	0.0514845629022423	0.0514845629022423
-6430	5563	5564	0.0509507800422364	0.0509507800422364
-6431	5564	5565	0.0506384299937204	0.0506384299937204
-6432	5565	5566	0.0502094012018427	0.0502094012018427
-6433	5566	5567	0.0352773306402212	0.0352773306402212
-6434	5567	1696	0.0663073245001768	0.0663073245001768
-6435	1696	5568	0.200475700974595	0.200475700974595
-6436	5568	2444	0.175243279627828	0.175243279627828
-6438	5569	5570	0.150878938410471	0.150878938410471
-6439	5570	5571	0.0520399442807291	0.0520399442807291
-6440	5571	5572	0.00805055351559969	0.00805055351559969
-6441	5572	5573	0.0547971824088202	0.0547971824088202
-6442	5573	5529	0.0419651880906561	0.0419651880906561
-6443	5529	5574	0.00738334312936163	0.00738334312936163
-6444	5574	5575	0.0892116998808573	0.0892116998808573
-6445	5575	5576	0.0587189734757016	0.0587189734757016
-6446	5576	5577	0.143444822058071	0.143444822058071
-6447	5577	5578	0.0305007791534936	0.0305007791534936
-6448	5578	5579	0.0181914980281834	0.0181914980281834
-6449	5579	5580	0.150469022298562	0.150469022298562
-6450	5580	5581	0.204922214354376	0.204922214354376
-6451	5581	5582	0.0983186744589269	0.0983186744589269
-6452	5582	1433	0.108782481382419	0.108782481382419
-6453	1433	5583	0.123482673613688	0.123482673613688
-6454	5583	5584	0.0754033254163114	0.0754033254163114
-6455	5584	5585	0.194791277181441	0.194791277181441
-6456	5585	5586	0.0533068649535537	0.0533068649535537
-6457	5586	2555	0.14827848293408	0.14827848293408
-6458	2555	5587	0.408042656170713	0.408042656170713
-6459	5588	5589	0.135112968623698	0.135112968623698
-6460	5589	5590	0.203702085134274	0.203702085134274
-6461	5590	5591	0.207620262278034	0.207620262278034
-6462	5591	4585	0.131035476997682	0.131035476997682
-6463	4585	5592	0.072769358589151	0.072769358589151
-6464	5592	5593	0.0625746572307696	0.0625746572307696
-6465	5593	5301	0.137225765514935	0.137225765514935
-6467	5594	5595	0.274145349571988	0.274145349571988
-6468	5595	5596	0.205443804135366	0.205443804135366
-6469	5596	5597	0.121926623756206	0.121926623756206
-6470	5597	5598	0.202580256912195	0.202580256912195
-6472	4361	5599	0.206258701511779	0.206258701511779
-6474	5600	5601	0.168149469233138	0.168149469233138
-6476	2625	5205	0.166253482314503	0.166253482314503
-6502	5622	5516	0.138783948073856	0.138783948073856
-6477	5205	5602	0.15603138237828	0.15603138237828
-6478	5602	5603	0.0341829476854199	0.0341829476854199
-6479	5603	5604	0.162233690102157	0.162233690102157
-6480	5604	5605	0.176890418224524	0.176890418224524
-6481	5605	5606	0.121703194532156	0.121703194532156
-6482	5606	5609	0.0547747917576354	0.0547747917576354
-6483	5609	5610	0.177274555583034	0.177274555583034
-6484	5610	5611	0.0562757523743122	0.0562757523743122
-6485	5611	5381	0.0971287684245127	0.0971287684245127
-6486	5381	5370	0.0242294178668139	0.0242294178668139
-6487	5370	5612	0.177146422666141	0.177146422666141
-6488	5612	5613	0.176947014024794	0.176947014024794
-6489	5613	5614	0.177715418603807	0.177715418603807
-6490	5614	5615	0.0918268918834614	0.0918268918834614
-6491	5615	5616	0.00795060277662081	0.00795060277662081
-6493	5617	5618	0.0159556400855116	0.0159556400855116
-6496	5619	5620	0.132547309025511	0.132547309025511
-6497	5620	1667	0.132931219459218	0.132931219459218
-6498	1667	5621	0.138273532739947	0.138273532739947
-6499	5621	2448	0.13601631946961	0.13601631946961
-6500	2448	3238	0.136726308588665	0.136726308588665
-6501	3238	5622	0.14083949408811	0.14083949408811
-6503	5516	5623	0.135704638458681	0.135704638458681
-6504	5623	5624	0.00588469429500613	0.00588469429500613
-6505	5624	5625	0.115900802279231	0.115900802279231
-6506	5625	5626	0.19877742240622	0.19877742240622
-6507	5626	110	0.101954628240396	0.101954628240396
-6508	110	2818	0.0990079626838536	0.0990079626838536
-6509	2818	1419	0.203073935940985	0.203073935940985
-6510	1419	5627	0.11954884298017	0.11954884298017
-6511	2917	5628	0.0366435746314918	0.0366435746314918
-6513	3710	5629	0.104723848956837	0.104723848956837
-6514	5629	5630	0.0524718119166661	0.0524718119166661
-6515	5630	5631	0.0523604583661445	0.0523604583661445
-6516	5631	963	0.102688945741692	0.102688945741692
-6519	2898	5632	0.0542316769914945	0.0542316769914945
-6520	5632	5633	0.0508977749431617	0.0508977749431617
-6521	5633	5634	0.106035617894042	0.106035617894042
-6522	5634	4734	0.104599442261749	0.104599442261749
-6524	5635	5399	0.0949731678048623	0.0949731678048623
-6525	5399	5636	0.053273863098243	0.053273863098243
-6526	5636	5637	0.0532054766684841	0.0532054766684841
-6527	5637	3901	0.105282590951624	0.105282590951624
-6528	3901	1038	0.105350981348288	0.105350981348288
-6530	5638	5639	0.103436146317209	0.103436146317209
-6531	5639	5004	0.104923546637106	0.104923546637106
-6532	5004	3324	0.10200854500581	0.10200854500581
-20515	10842	6731	0.00724303302685487	0.00724303302685487
-6533	3324	5640	0.105949384946318	0.105949384946318
-6534	5640	5641	0.102726616753478	0.102726616753478
-6535	5641	2075	0.105470656717315	0.105470656717315
-6536	2075	2672	0.106385362776241	0.106385362776241
-6537	2672	4122	0.107308593371936	0.107308593371936
-6538	4122	5642	0.107983920400391	0.107983920400391
-6539	5642	5643	0.0919555733248638	0.0919555733248638
-7832	6456	349	0.0697483782641925	0.0697483782641925
-6540	5643	5644	0.101410180701687	0.101410180701687
-6541	5644	3470	0.100777601888944	0.100777601888944
-6542	3470	5645	0.101863251928372	0.101863251928372
-6543	5645	3873	0.0981959903542781	0.0981959903542781
-6544	3873	849	0.100085165894781	0.100085165894781
-6546	1400	5646	0.00898751016812899	0.00898751016812899
-6547	5646	5647	0.190632434837625	0.190632434837625
-6548	5647	3388	0.011727623160982	0.011727623160982
-6549	3388	5648	0.0568259028608414	0.0568259028608414
-6550	5648	5649	0.00637619061562419	0.00637619061562419
-6551	5649	5650	0.0463019954871414	0.0463019954871414
-6552	5650	2800	0.0477133812275841	0.0477133812275841
-6553	2800	5651	0.0470719166287448	0.0470719166287448
-6554	5651	5652	0.0458325636837201	0.0458325636837201
-6555	5652	5653	0.046653544202397	0.046653544202397
-6556	5653	5654	0.0464726377537293	0.0464726377537293
-6557	5654	5655	0.0469344544346564	0.0469344544346564
-6558	5655	2751	0.046215112991852	0.046215112991852
-6559	2751	1096	0.0461039483088431	0.0461039483088431
-6560	1096	5656	0.0452023576254509	0.0452023576254509
-6561	5656	5657	0.0460150379661812	0.0460150379661812
-6562	5657	1539	0.0464321875423527	0.0464321875423527
-6563	1539	3855	0.0473472190950861	0.0473472190950861
-6565	4485	345	0.22138299033862	0.22138299033862
-6566	345	5661	0.163308085042962	0.163308085042962
-6567	5661	5662	0.065819748510902	0.065819748510902
-6568	5661	5663	0.0801840013229962	0.0801840013229962
-6569	3287	5665	0.0688755620206119	0.0688755620206119
-6570	5665	5666	0.0427865432685629	0.0427865432685629
-6571	5666	523	0.0741847082758752	0.0741847082758752
-6572	523	5667	0.0513515905827488	0.0513515905827488
-6573	5667	597	0.0787762757947461	0.0787762757947461
-6574	597	4825	0.152733980621547	0.152733980621547
-6576	2530	1931	0.0607754389242505	0.0607754389242505
-6578	5668	5669	0.20518077925237	0.20518077925237
-6580	5670	2976	0.052930873102536	0.052930873102536
-6582	5671	5672	0.0669604143503768	0.0669604143503768
-6583	5672	3722	0.0539771509338677	0.0539771509338677
-6584	3722	5673	0.103203771462203	0.103203771462203
-6585	5673	5674	0.175725539559539	0.175725539559539
-6587	5675	5676	0.204879915807757	0.204879915807757
-6588	5677	5678	0.00677682168687122	0.00677682168687122
-6589	5678	1665	0.0567234226799308	0.0567234226799308
-6590	1665	5679	0.122659531226911	0.122659531226911
-6592	5680	5681	0.862768870925976	0.862768870925976
-6593	5682	5683	0.164927546324728	0.164927546324728
-6594	5683	4367	0.0355730578333277	0.0355730578333277
-6595	4367	1448	0.193853665061985	0.193853665061985
-6596	1448	5688	0.205590441563944	0.205590441563944
-6598	5689	5690	0.100594816308247	0.100594816308247
-6599	5690	5691	0.0991234853564762	0.0991234853564762
-6601	5438	5692	0.211107914724763	0.211107914724763
-6602	5692	4415	0.193109246091061	0.193109246091061
-6603	4415	5693	0.226139344299967	0.226139344299967
-6606	4323	5694	0.0859068688818743	0.0859068688818743
-6608	5695	5696	0.0748977449692987	0.0748977449692987
-6609	5696	5073	0.0868839085552243	0.0868839085552243
-6610	5073	5333	0.0187220275557185	0.0187220275557185
-6612	5697	1590	0.201198112839976	0.201198112839976
-18141	10274	10269	0.134684266769083	0.134684266769083
-6613	1590	1640	0.20125093456728	0.20125093456728
-6615	5698	5699	0.200385663675414	0.200385663675414
-6617	5700	5701	0.196514919519562	0.196514919519562
-6618	5701	5248	0.110632746994	0.110632746994
-6619	5248	5702	0.0945616875172071	0.0945616875172071
-6620	5702	1685	0.205454867561864	0.205454867561864
-6621	1685	5703	0.206063854698429	0.206063854698429
-6622	5703	2430	0.199691165132387	0.199691165132387
-6623	2430	5704	0.202603259150386	0.202603259150386
-6625	4504	4050	0.176201016140026	0.176201016140026
-6626	4050	5707	0.173108439499024	0.173108439499024
-6628	1851	2587	0.179402678295732	0.179402678295732
-6630	5708	5709	0.275624196707738	0.275624196707738
-6632	5710	5711	0.261275347332411	0.261275347332411
-6634	5712	5713	0.0444779706577198	0.0444779706577198
-6635	5714	5715	0.183336097782058	0.183336097782058
-6636	5715	5716	0.203064462732684	0.203064462732684
-6638	5717	5718	0.153081250432522	0.153081250432522
-6639	5718	5719	0.011675447758709	0.011675447758709
-6641	1422	5720	0.117935613657917	0.117935613657917
-6643	5721	5722	0.194099197890973	0.194099197890973
-6644	5722	2542	0.201930616083342	0.201930616083342
-6645	2542	5723	0.411877202316789	0.411877202316789
-6646	5724	624	0.116891424974631	0.116891424974631
-6648	5725	5726	0.225973303098124	0.225973303098124
-6649	5726	3656	0.0613034024300807	0.0613034024300807
-6651	5727	5728	0.116763945302488	0.116763945302488
-6652	3634	5729	0.249262670016259	0.249262670016259
-6653	5729	5730	0.0886979206005476	0.0886979206005476
-6654	5730	5731	0.061003880318824	0.061003880318824
-6655	5731	3294	0.169569384240282	0.169569384240282
-6657	5730	5729	0.0886979206005476	0.0886979206005476
-18322	2543	7478	0.411854888798545	0.411854888798545
-6660	716	5733	0.106180030125168	0.106180030125168
-6661	5733	5734	0.0889628078792179	0.0889628078792179
-6663	5735	5736	0.0499420076759338	0.0499420076759338
-6664	5736	1132	0.0480445960055664	0.0480445960055664
-6665	1132	5737	0.0493807651843696	0.0493807651843696
-6666	5737	5738	0.0542607296398929	0.0542607296398929
-6667	5738	3848	0.102653360815707	0.102653360815707
-6668	3848	5739	0.0481952973910705	0.0481952973910705
-6669	5739	5570	0.0504068578554883	0.0504068578554883
-6671	5740	5741	0.102055279401325	0.102055279401325
-6672	5741	3933	0.103350213888063	0.103350213888063
-6675	5742	4200	0.0968208569301817	0.0968208569301817
-6676	4200	4193	0.0357662020116287	0.0357662020116287
-6677	4193	1067	0.0660115016724451	0.0660115016724451
-6678	1067	2520	0.0682249892032966	0.0682249892032966
-6679	2520	2503	0.0444235862340648	0.0444235862340648
-6680	2503	5743	0.0929237526477458	0.0929237526477458
-6681	5743	1230	0.097564382820973	0.097564382820973
-6682	1230	4808	0.0974618272678182	0.0974618272678182
-6683	4808	2175	0.100974351727253	0.100974351727253
-6685	5744	5745	0.139227813146129	0.139227813146129
-20421	10782	10783	0.171335167034037	0.171335167034037
-6686	5745	4628	0.122998125096167	0.122998125096167
-6687	4628	378	0.0772242252157125	0.0772242252157125
-6688	378	1257	0.0550380704812319	0.0550380704812319
-6689	1257	4543	0.132381944494249	0.132381944494249
-6690	4543	2715	0.0724896248395526	0.0724896248395526
-7972	6547	5411	0.11011441218455	0.11011441218455
-6691	2715	2699	0.0727973179644107	0.0727973179644107
-6692	2699	5748	0.121810190364873	0.121810190364873
-6696	5750	5751	0.00763183841002978	0.00763183841002978
-6697	5751	5752	0.692257458082336	0.692257458082336
-6698	2026	4672	0.134236367930218	0.134236367930218
-6699	4672	5753	0.102239429594337	0.102239429594337
-6700	5753	5754	0.100506379378587	0.100506379378587
-6702	5755	5756	0.2002287044093	0.2002287044093
-6704	5757	5758	0.173042563926175	0.173042563926175
-6706	5759	744	0.063721377479395	0.063721377479395
-6707	744	1562	0.141424652289019	0.141424652289019
-6708	1562	5760	0.139452228533295	0.139452228533295
-6709	5760	5761	0.121153404070921	0.121153404070921
-6710	5761	5762	0.0103214683330101	0.0103214683330101
-6711	5762	5763	0.04652452941841	0.04652452941841
-6712	5764	5765	0.155984788161682	0.155984788161682
-6716	5767	5768	0.200784793626825	0.200784793626825
-6743	3756	5769	0.0494129956173261	0.0494129956173261
-7994	6557	2764	0.0940480727939324	0.0940480727939324
-6717	5768	5772	0.846413211947238	0.846413211947238
-6718	5772	517	0.0606861281340196	0.0606861281340196
-6719	517	5773	0.188473310975888	0.188473310975888
-6721	5774	5775	0.0796153059223016	0.0796153059223016
-6722	5775	5776	0.00646390558051832	0.00646390558051832
-6723	5776	3007	0.1066159594542	0.1066159594542
-6724	3007	5777	0.100407769542541	0.100407769542541
-6725	5777	4393	0.00579135202620092	0.00579135202620092
-6726	4393	5778	0.102044175747327	0.102044175747327
-6727	5778	5779	0.107668499777307	0.107668499777307
-6728	5779	5780	0.108043382155599	0.108043382155599
-6729	5780	5781	0.101222003009649	0.101222003009649
-6730	5781	5782	0.103527244594317	0.103527244594317
-6733	5784	5785	0.0519740547318723	0.0519740547318723
-6734	5785	5786	0.0540518378903488	0.0540518378903488
-6735	5786	5787	0.105403398355375	0.105403398355375
-6736	5787	5788	0.0515636589786252	0.0515636589786252
-6737	5788	5789	0.0542361941294726	0.0542361941294726
-6738	5789	1159	0.0519632563805573	0.0519632563805573
-6739	1159	1609	0.055296326623055	0.055296326623055
-6742	5791	3756	0.0502859716725157	0.0502859716725157
-6744	5769	5792	0.0505152652453619	0.0505152652453619
-6745	5792	5793	0.0487326254633791	0.0487326254633791
-6746	5793	5794	0.0492772484970981	0.0492772484970981
-6747	5794	5795	0.0490197084274457	0.0490197084274457
-6748	5795	4008	0.0494402902066907	0.0494402902066907
-6749	4008	5796	0.0498144967732103	0.0498144967732103
-6750	5796	5797	0.0492676243070722	0.0492676243070722
-6751	5797	5798	0.0496699296957128	0.0496699296957128
-6752	5798	1392	0.0490530110641543	0.0490530110641543
-6753	1392	5799	0.0511729331725758	0.0511729331725758
-6755	5800	5801	0.0504747882864981	0.0504747882864981
-6756	5801	2540	0.0519704512694329	0.0519704512694329
-6758	5802	5803	0.0134893781959873	0.0134893781959873
-6759	5803	5804	0.0651761990637723	0.0651761990637723
-6760	5804	5805	0.00867856878189995	0.00867856878189995
-6761	5805	5806	0.145096674327765	0.145096674327765
-6762	5806	5807	0.146807263740651	0.146807263740651
-6763	5807	5808	0.0971857772299024	0.0971857772299024
-8041	6591	5218	0.10367384999594	0.10367384999594
-6766	5810	5811	0.146768415759705	0.146768415759705
-6768	1701	5812	0.0556890737408001	0.0556890737408001
-6769	5812	5813	0.0500299056894462	0.0500299056894462
-6770	5813	572	0.048773855210923	0.048773855210923
-6771	572	4985	0.0488849816155661	0.0488849816155661
-6772	4985	5815	0.0487728428614096	0.0487728428614096
-6773	5815	5816	0.0486567223604475	0.0486567223604475
-6774	5816	5817	0.0490027802416811	0.0490027802416811
-6775	5817	5819	0.0533578755133891	0.0533578755133891
-6776	5819	5820	0.0539390556466382	0.0539390556466382
-6778	5821	5822	0.0489941039004867	0.0489941039004867
-6780	3617	5823	0.0506292858836976	0.0506292858836976
-6781	5823	5824	0.0500724300001191	0.0500724300001191
-6782	5824	5825	0.0499880884355422	0.0499880884355422
-6783	5825	5099	0.0484306981291016	0.0484306981291016
-6784	5099	5826	0.0978349213689401	0.0978349213689401
-8066	6604	2108	0.411848469661871	0.411848469661871
-6786	3484	5827	0.0514683137992155	0.0514683137992155
-6787	5827	5828	0.0484135897290906	0.0484135897290906
-6789	5829	3698	0.0457527085543311	0.0457527085543311
-6790	3698	5705	0.0484471809833024	0.0484471809833024
-6791	5705	4572	0.0515108919391295	0.0515108919391295
-6792	4572	5830	0.105767692426024	0.105767692426024
-6793	5830	5831	0.0553912495449553	0.0553912495449553
-6794	5831	5832	0.0496407969110197	0.0496407969110197
-6795	5832	5833	0.0474198419855964	0.0474198419855964
-6796	5833	5834	0.0495588851512039	0.0495588851512039
-6797	5834	5835	0.0489032950107884	0.0489032950107884
-6798	5835	2741	0.0480512246257303	0.0480512246257303
-6800	5836	5232	0.0488850197079726	0.0488850197079726
-6801	5232	5837	0.0498079610709467	0.0498079610709467
-6802	5837	3174	0.0480709718129458	0.0480709718129458
-6803	3174	5838	0.0510747433773575	0.0510747433773575
-6804	5838	4999	0.0480555922075882	0.0480555922075882
-8084	6614	6615	0.0939591856631224	0.0939591856631224
-6805	4999	5839	0.0491139247433474	0.0491139247433474
-6806	5839	731	0.0513728158017048	0.0513728158017048
-18529	9525	9153	0.0559524577768326	0.0559524577768326
-6807	731	5840	0.100363141472313	0.100363141472313
-6810	4683	1528	0.0512242368793757	0.0512242368793757
-6811	1528	5087	0.0490096920376181	0.0490096920376181
-6812	5087	5841	0.0531197353238214	0.0531197353238214
-6813	5841	5011	0.0514391840217863	0.0514391840217863
-6814	5011	1747	0.0499193361712115	0.0499193361712115
-6815	1747	5608	0.0521168381912245	0.0521168381912245
-6816	5608	5842	0.0474458476070982	0.0474458476070982
-6817	5842	5449	0.0516188826793533	0.0516188826793533
-6818	5449	5428	0.0497563082276933	0.0497563082276933
-6819	5428	5390	0.0522374705433985	0.0522374705433985
-6820	5390	5843	0.0480447601658553	0.0480447601658553
-6822	5844	5845	0.0146913941785162	0.0146913941785162
-6823	5845	1699	0.184528247922268	0.184528247922268
-6824	1699	5846	0.0932680068963059	0.0932680068963059
-6825	5846	5847	0.0932852372069282	0.0932852372069282
-6826	5847	3120	0.098410300465854	0.098410300465854
-6827	3120	5848	0.0905968964383526	0.0905968964383526
-6828	5848	5849	0.19461602791519	0.19461602791519
-8104	239	6631	0.0428753899381976	0.0428753899381976
-6830	5850	5851	0.0206820775273506	0.0206820775273506
-6833	1635	5853	0.0933590693142476	0.0933590693142476
-6834	5853	5854	0.015431953306933	0.015431953306933
-6835	5854	4213	0.0860217230993429	0.0860217230993429
-6836	4213	5855	0.0995731813164872	0.0995731813164872
-6837	5855	192	0.102944368273924	0.102944368273924
-6838	192	2922	0.0977156398673512	0.0977156398673512
-6840	5305	1460	0.094441811393562	0.094441811393562
-6841	1460	5433	0.104542660065313	0.104542660065313
-6843	5856	1868	0.210287860037949	0.210287860037949
-6844	1868	4186	0.189585415099738	0.189585415099738
-6846	5432	5857	0.104903215241116	0.104903215241116
-6847	5857	5858	0.105720950651237	0.105720950651237
-6848	5858	5859	0.105743888331652	0.105743888331652
-6849	5859	4421	0.104252361029944	0.104252361029944
-6852	5861	5862	0.0519463280728807	0.0519463280728807
-6853	5862	5863	0.0520746976816124	0.0520746976816124
-6854	5863	5864	0.053223022054701	0.053223022054701
-6855	5864	4317	0.0510499917933612	0.0510499917933612
-8127	6232	6642	0.179146147134138	0.179146147134138
-6857	5865	4505	0.0514748271562017	0.0514748271562017
-6858	4505	3608	0.0515275362522861	0.0515275362522861
-6859	3608	5866	0.050240952107019	0.050240952107019
-6860	5866	5867	0.0507479546434346	0.0507479546434346
-6861	5867	5067	0.0521453287858806	0.0521453287858806
-6862	5067	5868	0.051338093574988	0.051338093574988
-6863	5868	5869	0.0516032507649761	0.0516032507649761
-6864	5869	5870	0.0504748368648883	0.0504748368648883
-6865	5870	5871	0.0517263613465763	0.0517263613465763
-6866	5871	5872	0.102624635673	0.102624635673
-6867	5872	3299	0.100255573957512	0.100255573957512
-6869	5873	5874	0.0663164411935832	0.0663164411935832
-6870	5874	5875	0.0488050085545576	0.0488050085545576
-6871	5875	5876	0.702184603750594	0.702184603750594
-6874	4525	5880	0.0113022768719971	0.0113022768719971
-6875	5880	5881	0.00806516295239482	0.00806516295239482
-6876	5881	5882	0.0293119532501538	0.0293119532501538
-6877	5882	5883	0.0236481545130312	0.0236481545130312
-6878	5883	5884	0.0171068759325808	0.0171068759325808
-6879	5884	5885	0.034181660212992	0.034181660212992
-6880	5885	5887	0.100387180512852	0.100387180512852
-6882	4433	5888	0.29159089003557	0.29159089003557
-6883	5888	4667	0.102395884967111	0.102395884967111
-6885	1334	1389	0.100271016747699	0.100271016747699
-6886	1389	5889	0.10737593920352	0.10737593920352
-6887	5889	5890	0.105882607972477	0.105882607972477
-6888	5890	4707	0.0969202900217867	0.0969202900217867
-6889	4707	5891	0.0993764614715991	0.0993764614715991
-6890	5891	5892	0.0973957865151901	0.0973957865151901
-6891	5892	5894	0.0203600085186263	0.0203600085186263
-6893	5697	5895	0.0355610028885881	0.0355610028885881
-6894	5895	5896	0.0640153359599377	0.0640153359599377
-6896	4960	5897	0.0913255616395888	0.0913255616395888
-6897	5897	766	0.157641216727225	0.157641216727225
-6898	766	5898	0.395381245817633	0.395381245817633
-6899	5898	5899	0.0981801741162947	0.0981801741162947
-6900	5899	5900	0.174689811260162	0.174689811260162
-6902	2304	156	0.331433636002878	0.331433636002878
-6903	156	1720	0.249409879986366	0.249409879986366
-6904	1720	5901	0.152027484629828	0.152027484629828
-6906	5902	5903	1.05455714042968	1.05455714042968
-6907	491	5904	0.0146888160266615	0.0146888160266615
-6908	5904	5905	0.0975979556077691	0.0975979556077691
-6910	5906	5907	0.0945117172125904	0.0945117172125904
-6911	5907	5908	0.096024253167286	0.096024253167286
-6913	1999	3359	0.0933322730569792	0.0933322730569792
-6914	3359	2753	0.0957031890234733	0.0957031890234733
-6915	2753	5909	0.0964098595755736	0.0964098595755736
-6916	5909	2279	0.103797892128295	0.103797892128295
-6917	2279	3601	0.0979307072208472	0.0979307072208472
-6918	3601	5910	0.101687049589159	0.101687049589159
-6919	5910	2134	0.103076736979193	0.103076736979193
-6920	2134	5911	0.0994872973933105	0.0994872973933105
-6921	5911	5912	0.098205073412404	0.098205073412404
-6944	5930	5931	0.00713304879374381	0.00713304879374381
-6922	5912	5913	1.00880972234204	1.00880972234204
-6923	5914	3921	0.0830806742363044	0.0830806742363044
-6924	3921	1014	0.0989804018365723	0.0989804018365723
-6925	1014	5915	0.0998222515540108	0.0998222515540108
-6926	5915	5916	0.104139822117371	0.104139822117371
-6927	5916	5023	0.0793768943130485	0.0793768943130485
-6929	5917	5918	0.112165266092601	0.112165266092601
-6930	5918	5919	0.108065845165718	0.108065845165718
-6931	5919	5920	0.0537421133423824	0.0537421133423824
-6932	5920	5921	0.0547683090118863	0.0547683090118863
-6933	5921	5922	0.0617512871216813	0.0617512871216813
-6934	5922	5923	0.0505486132029595	0.0505486132029595
-6935	5923	5924	0.0485674117985671	0.0485674117985671
-6936	5924	5925	0.00910751947845144	0.00910751947845144
-6937	5925	3160	0.040672974998317	0.040672974998317
-6938	3160	5926	0.0119123696733134	0.0119123696733134
-6939	5926	5927	0.0422638247579918	0.0422638247579918
-6940	5927	5928	0.00946046354749371	0.00946046354749371
-6941	5928	4978	0.0392608349230605	0.0392608349230605
-6942	4978	5929	0.00830374951839601	0.00830374951839601
-6943	5929	5930	0.04322033436118	0.04322033436118
-12307	8642	8643	0.0298175315684779	0.0298175315684779
-6945	5931	5932	0.0454758802600548	0.0454758802600548
-6946	5932	5933	0.0473060152011751	0.0473060152011751
-6947	5933	5934	0.0496187677804403	0.0496187677804403
-6948	5934	5935	0.0504477908402203	0.0504477908402203
-6949	5935	5050	0.0515402266931002	0.0515402266931002
-6950	5050	5687	0.0468197679026621	0.0468197679026621
-6953	5453	982	0.0502364246424336	0.0502364246424336
-6954	982	5937	0.0968891441459385	0.0968891441459385
-6955	5937	5938	0.0503259455718068	0.0503259455718068
-6956	5938	5939	0.0502893520356679	0.0502893520356679
-6957	5939	3129	0.0485573864514234	0.0485573864514234
-6958	3129	5117	0.0498372694791184	0.0498372694791184
-6959	5117	5941	0.0493022558846739	0.0493022558846739
-6960	5941	4716	0.0507626244890517	0.0507626244890517
-6961	4716	5942	0.142284142826663	0.142284142826663
-6963	5943	5944	0.01393899602166	0.01393899602166
-6964	5944	5945	0.364458473389243	0.364458473389243
-6965	5945	5946	0.0993153072226578	0.0993153072226578
-6966	5946	5947	0.101492282005104	0.101492282005104
-6967	5947	5948	0.101164116161519	0.101164116161519
-6968	5948	5949	0.102917574680079	0.102917574680079
-6969	5949	5950	0.099000654458151	0.099000654458151
-6970	5950	5951	0.102683540906436	0.102683540906436
-6972	5952	5145	0.0645729302199529	0.0645729302199529
-6973	5145	2119	0.0381578888853594	0.0381578888853594
-6975	5953	5954	0.100685153983508	0.100685153983508
-6976	5954	5955	0.195476970380349	0.195476970380349
-6978	5511	5956	0.144816938742182	0.144816938742182
-6979	5956	2899	0.0164641943336492	0.0164641943336492
-6981	5957	5776	0.0786471324555583	0.0786471324555583
-6982	5776	5958	0.142074016754489	0.142074016754489
-6984	5959	5960	0.119153206354199	0.119153206354199
-6985	5960	5961	0.0270871445537288	0.0270871445537288
-6986	5961	5962	0.145839788109516	0.145839788109516
-6987	5962	5963	0.00712354730707594	0.00712354730707594
-6988	5963	5964	0.140131025523345	0.140131025523345
-6989	5964	5965	0.140225597174846	0.140225597174846
-6990	5965	4943	0.0161740048379517	0.0161740048379517
-6992	5354	5966	0.0365984296224293	0.0365984296224293
-8275	6722	2311	0.00867549185460531	0.00867549185460531
-6993	5966	5967	0.107476511645453	0.107476511645453
-6994	5967	5968	0.147256677185358	0.147256677185358
-6995	5968	5969	0.146721278462678	0.146721278462678
-6996	5969	5361	0.147170892096024	0.147170892096024
-6997	5361	2684	0.148391053722383	0.148391053722383
-6999	5970	807	0.0217813759552713	0.0217813759552713
-7001	5971	4332	0.0931508534748433	0.0931508534748433
-7002	4332	5038	0.0953468172233397	0.0953468172233397
-7004	5972	5857	0.176936009900748	0.176936009900748
-7005	5857	1300	0.178425403895618	0.178425403895618
-7006	1300	5973	0.247668336727678	0.247668336727678
-7008	5974	5975	0.19695744936537	0.19695744936537
-7010	1502	4378	0.103568243200344	0.103568243200344
-7012	5976	2341	0.175343347413509	0.175343347413509
-7013	2341	5977	0.176971375987128	0.176971375987128
-7014	5977	4784	0.243234077821538	0.243234077821538
-7015	4784	5979	0.240492752461347	0.240492752461347
-7016	5979	5980	0.0330257004550899	0.0330257004550899
-7017	5980	5981	0.271622774119548	0.271622774119548
-7018	5981	5982	0.132843712894559	0.132843712894559
-7020	5983	5984	0.0865708728240205	0.0865708728240205
-7021	5984	5985	0.115162845747273	0.115162845747273
-7023	758	5986	0.228351368086018	0.228351368086018
-7026	5146	5157	0.0344312485594002	0.0344312485594002
-7027	5157	5953	0.0793791794144798	0.0793791794144798
-7028	5953	2240	0.201141072863101	0.201141072863101
-7029	2240	4913	0.204101361959596	0.204101361959596
-7031	5988	5989	0.202410682591791	0.202410682591791
-7032	5989	5990	0.204104998697393	0.204104998697393
-7033	5990	689	0.195952399265096	0.195952399265096
-7034	689	1980	0.165723809852799	0.165723809852799
-7035	1980	1965	0.0389234534803582	0.0389234534803582
-7036	1965	5991	0.211595737081182	0.211595737081182
-7037	5991	2477	0.19787541766453	0.19787541766453
-7039	5911	5992	0.199600309761125	0.199600309761125
-7040	5992	802	0.200311937766574	0.200311937766574
-7041	802	5993	0.204076160777324	0.204076160777324
-7042	5993	5994	0.207502868601311	0.207502868601311
-7043	5994	5995	0.201507936335064	0.201507936335064
-18161	10256	2170	0.118696748630409	0.118696748630409
-7044	5995	3065	0.198422916856477	0.198422916856477
-7045	3065	5996	0.187785068593932	0.187785068593932
-7048	5998	1151	0.103522476706234	0.103522476706234
-7049	1151	5999	0.201885859106491	0.201885859106491
-7050	5999	2774	0.203030941446461	0.203030941446461
-7051	2774	6000	0.200151361396455	0.200151361396455
-7053	4375	2856	0.142504312909228	0.142504312909228
-7054	2856	6001	0.0983652484533134	0.0983652484533134
-7055	6001	6002	0.0964239306891795	0.0964239306891795
-7056	6002	6003	0.098310599923513	0.098310599923513
-7057	6003	1761	0.137700629072643	0.137700629072643
-7058	1761	6004	0.100513600298964	0.100513600298964
-7059	6004	3822	0.0995871831820294	0.0995871831820294
-7060	3822	5898	0.137360760654976	0.137360760654976
-7061	5898	6005	0.132447355715672	0.132447355715672
-7063	1597	1654	0.133194225128182	0.133194225128182
-7064	1654	6006	0.125247640008909	0.125247640008909
-7065	6006	4209	0.0896990215886268	0.0896990215886268
-7067	6007	200	0.0969312782671765	0.0969312782671765
-7069	6008	6009	0.237519218216988	0.237519218216988
-7071	6010	700	0.202130694041649	0.202130694041649
-7072	700	6011	0.200920157017241	0.200920157017241
-7074	1752	6012	0.41064210801689	0.41064210801689
-7076	6013	898	0.069285729612221	0.069285729612221
-7079	5168	6014	0.173942254032852	0.173942254032852
-7080	6014	2356	0.178647695597581	0.178647695597581
-7081	2356	4157	0.173431342052579	0.173431342052579
-7082	4157	4744	0.174265758482508	0.174265758482508
-7083	4744	6015	0.17586665041424	0.17586665041424
-7084	6015	6017	0.166030537226764	0.166030537226764
-7085	6017	1206	0.168368552768231	0.168368552768231
-7086	1206	6018	0.0222310506019077	0.0222310506019077
-7087	6018	3777	0.199517083270274	0.199517083270274
-7088	3777	6019	0.15332994885881	0.15332994885881
-7089	6019	956	0.176955920540622	0.176955920540622
-7090	956	6020	0.174665514088028	0.174665514088028
-7091	6020	4894	0.161958937862416	0.161958937862416
-7092	4894	6021	0.18390531780345	0.18390531780345
-7093	6021	5492	0.174079428498661	0.174079428498661
-7094	5492	6022	0.20029370655809	0.20029370655809
-7096	3037	6023	0.213499262828813	0.213499262828813
-7098	3578	5645	0.141952777714747	0.141952777714747
-8369	876	4464	0.138360134725968	0.138360134725968
-7100	4359	4350	0.0475473932483631	0.0475473932483631
-7101	4350	1533	0.0507609705805194	0.0507609705805194
-7102	1533	6024	0.087689125787215	0.087689125787215
-7103	6024	3036	0.0935380351023268	0.0935380351023268
-7105	2396	6026	0.14381066174273	0.14381066174273
-7107	1270	4534	0.202622361744701	0.202622361744701
-7108	4534	6027	0.199229442979025	0.199229442979025
-7110	6028	6029	0.912875631293974	0.912875631293974
-7112	1075	2498	0.0816070075181441	0.0816070075181441
-7113	2498	6030	0.0415787253165096	0.0415787253165096
-7114	6030	6031	0.0433303737265817	0.0433303737265817
-7116	6032	6033	0.0508682336735258	0.0508682336735258
-7117	6033	1215	0.0487831269807967	0.0487831269807967
-7118	1215	6034	0.0505678656124617	0.0505678656124617
-7119	6034	4787	0.0490298276079548	0.0490298276079548
-7120	4787	6035	0.0502099740409632	0.0502099740409632
-7121	6035	2168	0.0503125854793333	0.0503125854793333
-7122	2168	6036	0.0482434584483166	0.0482434584483166
-17215	8403	8420	0.200752773596098	0.200752773596098
-7123	6036	6037	0.0486536038515005	0.0486536038515005
-7125	6038	6039	0.0499795151912972	0.0499795151912972
-7126	6039	6040	0.0491412278477837	0.0491412278477837
-7127	6040	6041	0.0497771068440158	0.0497771068440158
-7128	6041	6042	0.0494653664650395	0.0494653664650395
-7129	6042	4660	0.0491491990718702	0.0491491990718702
-7130	4660	6043	0.0497609288638681	0.0497609288638681
-7131	6043	1290	0.0489747324983769	0.0489747324983769
-7133	6044	4562	0.0495973986652376	0.0495973986652376
-7134	4562	6045	0.0489640905184848	0.0489640905184848
-7135	6045	6046	0.0491691479666822	0.0491691479666822
-7136	6046	6047	0.0507578186257211	0.0507578186257211
-7137	6047	2730	0.0500913644840885	0.0500913644840885
-7138	2730	6048	0.0486937991070737	0.0486937991070737
-7139	6048	6049	0.0563508416708434	0.0563508416708434
-7140	6049	6050	0.0543668616299433	0.0543668616299433
-7141	6050	3755	0.049786406684993	0.049786406684993
-7142	3755	6051	0.0495857892809515	0.0495857892809515
-7143	6051	6052	0.0496881410470813	0.0496881410470813
-7144	6052	6053	0.0491149994031363	0.0491149994031363
-18545	5563	7539	0.0787059485791879	0.0787059485791879
-7145	6053	6054	0.0498540025598143	0.0498540025598143
-7146	6054	6055	0.0489875409651698	0.0489875409651698
-7147	6055	4007	0.0499802866726516	0.0499802866726516
-7148	4007	6056	0.0488162842829032	0.0488162842829032
-7149	6056	6057	0.0489359547659716	0.0489359547659716
-7150	6057	6058	0.0509862761511403	0.0509862761511403
-7151	6058	1391	0.0507897478531174	0.0507897478531174
-7152	1391	6059	0.0484575520219378	0.0484575520219378
-7154	6060	6061	0.051268887373703	0.051268887373703
-7155	6061	3440	0.0523540538479921	0.0523540538479921
-7156	3440	6062	0.0526542821957606	0.0526542821957606
-7157	6062	5722	0.0500652354639954	0.0500652354639954
-7158	5722	6063	0.0491749564449066	0.0491749564449066
-7159	6063	6064	0.0490553316653512	0.0490553316653512
-7160	6064	6065	0.0504053225202572	0.0504053225202572
-7161	6065	6066	0.0491577785316978	0.0491577785316978
-7162	6066	6067	0.0500917004504544	0.0500917004504544
-7163	6067	6068	0.0487330457346556	0.0487330457346556
-7164	6068	6069	0.0500468552276867	0.0500468552276867
-7165	6069	1089	0.0473039342434908	0.0473039342434908
-7166	1089	6070	0.0519349767204956	0.0519349767204956
-7167	6070	6071	0.0483547253107021	0.0483547253107021
-7169	6072	3860	0.0495593243927177	0.0495593243927177
-7170	3860	6073	0.0493012970703545	0.0493012970703545
-7171	6073	5585	0.0529959751032204	0.0529959751032204
-7173	1003	5222	0.108094382628624	0.108094382628624
-7175	6074	3213	0.169273308004073	0.169273308004073
-7176	3213	6075	0.200540081035548	0.200540081035548
-7177	6075	1924	0.199718283006537	0.199718283006537
-7178	1924	6076	0.202212418704144	0.202212418704144
-7179	6076	3268	0.201184980777767	0.201184980777767
-7180	3268	6077	0.201398824177077	0.201398824177077
-7181	6077	81	0.202519482529809	0.202519482529809
-7182	81	3517	0.205035908609294	0.205035908609294
-7183	3517	4259	0.201561198640626	0.201561198640626
-7184	4259	6078	0.201877222241407	0.201877222241407
-7185	6078	6079	0.198020897047098	0.198020897047098
-7186	6079	5828	0.204359521871182	0.204359521871182
-7187	5828	6080	0.203452288011347	0.203452288011347
-7188	6080	6081	0.199577893436046	0.199577893436046
-7189	6082	4198	0.0554105901874734	0.0554105901874734
-8462	1578	6834	0.296770354889592	0.296770354889592
-7190	4198	6083	0.479532197769768	0.479532197769768
-7193	6085	3417	0.199987779646285	0.199987779646285
-7195	5561	6086	0.0785728419075768	0.0785728419075768
-7196	6086	6087	0.711200705359908	0.711200705359908
-7197	6088	6089	0.0569381576865727	0.0569381576865727
-7199	1755	4797	0.0569796757564415	0.0569796757564415
-7200	4797	6090	0.0568688820659326	0.0568688820659326
-7201	6090	2163	0.0576467707798926	0.0576467707798926
-7202	2163	6091	0.115287318699314	0.115287318699314
-7204	4029	6092	0.199820514844545	0.199820514844545
-7205	6092	3413	0.201407533266255	0.201407533266255
-7207	6093	6094	0.0604203300865654	0.0604203300865654
-7208	6094	6095	0.0494745769978518	0.0494745769978518
-7209	6095	6096	0.0926701881064251	0.0926701881064251
-7210	6096	4028	0.05825540400242	0.05825540400242
-7212	5558	6097	0.589453817263917	0.589453817263917
-7213	111	6098	0.0840698350347185	0.0840698350347185
-7214	6098	5387	0.102649580636379	0.102649580636379
-7216	6099	4834	0.0618019179836103	0.0618019179836103
-7217	4834	6100	0.103506880889302	0.103506880889302
-7218	6100	6101	0.102436270515026	0.102436270515026
-7219	6101	6102	0.0462582791506537	0.0462582791506537
-7221	5388	6103	0.0951666989097628	0.0951666989097628
-7222	6103	6104	0.103533109860882	0.103533109860882
-17793	6179	8402	0.062258154453335	0.062258154453335
-7223	6104	6105	1.01266363478673	1.01266363478673
-7226	6107	6108	0.0985711721031886	0.0985711721031886
-7227	6108	6109	0.106459269312792	0.106459269312792
-7228	6109	6110	0.106833918076069	0.106833918076069
-7229	6110	3622	0.0989181087898918	0.0989181087898918
-7230	3622	6111	0.098886772683552	0.098886772683552
-7231	6111	6112	0.0498651872917774	0.0498651872917774
-7232	6112	6113	0.0465544361472323	0.0465544361472323
-7233	6113	6114	0.048644459525012	0.048644459525012
-7234	6114	1769	0.0504837415599517	0.0504837415599517
-7235	1769	4488	0.0559949291466801	0.0559949291466801
-7236	4488	6115	0.0469382916231929	0.0469382916231929
-7237	6115	4839	0.0486148679353184	0.0486148679353184
-7239	1519	5280	0.0508144170388461	0.0508144170388461
-7240	5280	6116	0.0496680994860777	0.0496680994860777
-7241	6116	1086	0.0854394240121282	0.0854394240121282
-7244	6118	5426	0.102968153598516	0.102968153598516
-7245	5426	6119	0.101169119900675	0.101169119900675
-7246	6119	2048	0.10059076820208	0.10059076820208
-7247	2048	6120	0.0997250287478783	0.0997250287478783
-7248	6120	6121	0.100591265363907	0.100591265363907
-7249	6121	6122	0.0474195280765072	0.0474195280765072
-7250	6122	3477	0.0495243305794908	0.0495243305794908
-7251	3477	6123	0.0472960657562571	0.0472960657562571
-7252	6123	6075	0.0518212274102399	0.0518212274102399
-7253	6075	6124	0.0477720158174774	0.0477720158174774
-7254	6124	3692	0.0491494225474026	0.0491494225474026
-7255	3692	6125	0.0492733746042409	0.0492733746042409
-7256	6125	4567	0.0513179295413005	0.0513179295413005
-7257	4567	6126	0.104996585237884	0.104996585237884
-7259	6127	6128	0.202552708883543	0.202552708883543
-7260	6128	6129	0.200575382409089	0.200575382409089
-7261	6129	6130	0.200851528697639	0.200851528697639
-7263	6131	4042	0.178407205955933	0.178407205955933
-7264	4042	6132	0.176658257473219	0.176658257473219
-7265	6132	6133	0.173893747367395	0.173893747367395
-7266	6133	1832	0.00321363581065808	0.00321363581065808
-7267	1832	6134	0.0979518830790181	0.0979518830790181
-7268	6134	2577	0.0768544895315019	0.0768544895315019
-7270	2974	713	0.0553033256449361	0.0553033256449361
-7271	713	1884	0.049816225531446	0.049816225531446
-7272	1884	269	0.0489259588819734	0.0489259588819734
-7273	269	6135	0.049929244786193	0.049929244786193
-7274	6135	6095	0.0608968307992014	0.0608968307992014
-7276	1819	6136	0.206807888451467	0.206807888451467
-7278	6137	6138	0.137211297869344	0.137211297869344
-7280	6139	4576	0.0888580713995718	0.0888580713995718
-7281	4576	6140	0.134023429450374	0.134023429450374
-7282	6140	5292	0.135037120828343	0.135037120828343
-7283	5292	6141	0.134292125855752	0.134292125855752
-7285	11	6142	0.134290112908847	0.134290112908847
-7286	6142	6143	0.134379347336523	0.134379347336523
-7287	6143	6144	0.135319045428869	0.135319045428869
-7288	6144	6145	0.133823509557072	0.133823509557072
-7289	6145	6146	0.133595456488811	0.133595456488811
-7290	6146	6147	0.132813208199385	0.132813208199385
-7291	6147	6148	0.135903166352965	0.135903166352965
-7293	6149	5532	0.117263436099258	0.117263436099258
-7294	5532	6150	0.292646155170772	0.292646155170772
-7296	4069	6054	0.143532163506992	0.143532163506992
-7297	6054	5794	0.200517814130868	0.200517814130868
-7299	6151	6152	0.134234537479531	0.134234537479531
-7300	6152	2491	0.134965193585355	0.134965193585355
-7301	2491	2836	0.132191750515313	0.132191750515313
-7303	2760	6153	0.17786816992516	0.17786816992516
-7304	6153	3104	0.174733256162163	0.174733256162163
-7305	3104	6156	0.194828104098244	0.194828104098244
-7307	62	3549	0.192897189560382	0.192897189560382
-7309	191	5855	0.144500472019434	0.144500472019434
-7313	1335	6158	0.164940728280041	0.164940728280041
-7315	3709	719	0.105637457999026	0.105637457999026
-7317	3184	6159	0.175088076753778	0.175088076753778
-7318	6159	91	0.0479220492178455	0.0479220492178455
-7319	91	3527	0.203258724621779	0.203258724621779
-7320	3527	6160	0.201096029386997	0.201096029386997
-7321	6160	6161	0.201913621123293	0.201913621123293
-7323	6162	5834	0.203525395170747	0.203525395170747
-7324	5834	6163	0.200952914390398	0.200952914390398
-7326	3276	3651	0.182839298131176	0.182839298131176
-7329	6166	4285	0.103763551261197	0.103763551261197
-7331	1617	6167	0.103830241851319	0.103830241851319
-7333	6168	2159	0.117895446926253	0.117895446926253
-7334	2159	4795	0.11289998607803	0.11289998607803
-7335	4795	1226	0.113625921506999	0.113625921506999
-7337	4401	4400	0.117696624021516	0.117696624021516
-7341	2320	4278	0.147648925220672	0.147648925220672
-7342	4278	6174	0.145039413918761	0.145039413918761
-7343	6174	633	0.147839808469135	0.147839808469135
-7344	633	5324	0.144274087604939	0.144274087604939
-7345	5324	2036	0.144878759704946	0.144878759704946
-7346	2036	6175	0.146765627629388	0.146765627629388
-7347	6175	5506	0.146988764364424	0.146988764364424
-7349	4458	6176	0.146285529633972	0.146285529633972
-7350	6176	6177	0.143815084290611	0.143815084290611
-7351	6177	6178	0.149072223288683	0.149072223288683
-7352	6178	6179	0.102502676747671	0.102502676747671
-7353	6179	6180	0.0433701075577025	0.0433701075577025
-7354	6180	6181	0.146972104646326	0.146972104646326
-7355	6181	6182	0.147344314502621	0.147344314502621
-7356	6182	6183	0.145754933885852	0.145754933885852
-7357	6183	6184	0.147948446924155	0.147948446924155
-7358	6184	6185	0.145005273136899	0.145005273136899
-7359	6185	6186	0.141478743986661	0.141478743986661
-7360	6186	5784	0.0051191432185562	0.0051191432185562
-7361	5784	6187	0.145606807182671	0.145606807182671
-7362	6187	6188	0.145777030768037	0.145777030768037
-7363	6188	6189	0.147177496711371	0.147177496711371
-7365	999	4221	0.0806091686632927	0.0806091686632927
-7366	4221	6190	0.102381971527348	0.102381971527348
-7367	6190	6193	0.0984965085324321	0.0984965085324321
-7368	6193	969	0.0952400858484175	0.0952400858484175
-7369	969	6194	0.0506536388127553	0.0506536388127553
-7370	6194	5287	0.0506057613654141	0.0506057613654141
-7371	5287	3152	0.0954510374534177	0.0954510374534177
-7372	3152	4968	0.0960843478924756	0.0960843478924756
-7373	4968	6195	0.0415654887010154	0.0415654887010154
-15921	9749	9750	0.0318908811678005	0.0318908811678005
-7401	6213	6214	0.0495719593537107	0.0495719593537107
-7374	335	340	0.288826145863276	0.288826145863276
-7378	519	6197	0.0784497798176465	0.0784497798176465
-7379	6197	6198	0.0395399248279629	0.0395399248279629
-7380	6198	6199	0.019955626672929	0.019955626672929
-7382	6200	6201	0.0919482301684137	0.0919482301684137
-7383	6201	6202	0.111020276961071	0.111020276961071
-7385	4485	6203	0.0919528384362936	0.0919528384362936
-7386	6203	4199	0.0670783480641165	0.0670783480641165
-7387	4199	6204	0.129739883939344	0.129739883939344
-7388	6204	6083	0.021522983414344	0.021522983414344
-7390	1820	6205	0.059780784078693	0.059780784078693
-7391	6205	6206	0.0520794903588436	0.0520794903588436
-7392	6206	6207	0.0535277276856965	0.0535277276856965
-7393	6207	6208	0.052616435606338	0.052616435606338
-7395	6209	6210	0.054197774205049	0.054197774205049
-7396	6210	600	0.122572832169608	0.122572832169608
-7397	600	6211	0.0472521628905724	0.0472521628905724
-7398	6211	5708	0.0430357389006543	0.0430357389006543
-7399	5708	6212	0.0495085394583916	0.0495085394583916
-7400	6212	6213	0.0462483397604104	0.0462483397604104
-7402	6214	6215	0.0428153220943109	0.0428153220943109
-7403	6215	6216	0.0471000262746752	0.0471000262746752
-7404	6216	6217	0.0473822229177533	0.0473822229177533
-7405	6217	1100	0.091970261814681	0.091970261814681
-7406	1100	6218	0.0449415553049736	0.0449415553049736
-7407	6218	6219	0.0480654852744355	0.0480654852744355
-7408	6219	6221	0.0454218674668918	0.0454218674668918
-7409	6221	3858	0.0463369187822574	0.0463369187822574
-7410	3858	6222	0.0463493111972249	0.0463493111972249
-7411	6222	5594	0.0512843332286284	0.0512843332286284
-7412	5594	6223	0.0568069326737853	0.0568069326737853
-7413	6223	6224	0.0525700432289869	0.0525700432289869
-7414	6224	6225	0.0976339163821139	0.0976339163821139
-7439	6242	6243	0.0662881511283164	0.0662881511283164
-7415	6225	6226	0.598121759063317	0.598121759063317
-7416	3855	6227	0.0533569775705536	0.0533569775705536
-7417	6227	5550	0.054545728952838	0.054545728952838
-7419	6228	6229	0.0491582246006862	0.0491582246006862
-7420	6229	6230	0.632851875022697	0.632851875022697
-7421	4649	6231	0.0998318489902405	0.0998318489902405
-7423	3956	6232	0.132968901609209	0.132968901609209
-7424	6232	6233	0.0436348818689085	0.0436348818689085
-7425	6233	6234	0.0454822742996404	0.0454822742996404
-7426	6234	6235	0.049945575036802	0.049945575036802
-7427	6235	6236	0.0503304157761669	0.0503304157761669
-7428	6236	6237	0.0508263629674458	0.0508263629674458
-7429	6237	4952	0.0505868421691217	0.0505868421691217
-7430	4952	4681	0.10191805721873	0.10191805721873
-7431	4681	6238	0.099594470461032	0.099594470461032
-7432	6238	6239	0.057251122773958	0.057251122773958
-7433	6239	6240	0.108863184827896	0.108863184827896
-7434	6240	5092	0.0381385955203522	0.0381385955203522
-7435	5092	5227	0.108194428858344	0.108194428858344
-7437	5219	6241	0.0418231546106276	0.0418231546106276
-7438	6241	6242	0.0122130870650471	0.0122130870650471
-7442	1601	1657	0.147607723017958	0.147607723017958
-7444	5765	6244	0.238854062350574	0.238854062350574
-7445	6244	5899	0.278312459096762	0.278312459096762
-7446	5899	1600	0.0794217837629518	0.0794217837629518
-7448	4405	4957	0.275380198668453	0.275380198668453
-7450	4315	4502	0.0962009886521744	0.0962009886521744
-7451	4502	6245	0.0998685092157526	0.0998685092157526
-7452	6245	5078	0.0969948238046964	0.0969948238046964
-7453	5078	6246	0.102086344844989	0.102086344844989
-7454	6246	6247	0.102069890156656	0.102069890156656
-7455	6247	6248	0.0998684901150858	0.0998684901150858
-7456	6248	6249	0.099157147424293	0.099157147424293
-7457	6249	6250	0.0998927126402804	0.0998927126402804
-7459	4376	2857	0.174778525570848	0.174778525570848
-7461	1656	6251	0.113089099397014	0.113089099397014
-7462	6251	4210	0.0895877408394824	0.0895877408394824
-7463	4210	6252	0.0984078699260149	0.0984078699260149
-7464	6252	202	0.0984164433029134	0.0984164433029134
-7465	202	2930	0.0999116533304243	0.0999116533304243
-7467	5311	1467	0.0969591422712861	0.0969591422712861
-7468	1467	5446	0.104331765041419	0.104331765041419
-7470	6253	6254	0.108544830855141	0.108544830855141
-7471	6254	6255	0.0440614876081187	0.0440614876081187
-7472	6255	6256	0.10258169252724	0.10258169252724
-7473	6256	6257	0.0426791560290334	0.0426791560290334
-7474	6257	1181	0.0541704333597994	0.0541704333597994
-7476	6258	5341	0.664349456749629	0.664349456749629
-7480	1556	736	0.1281317837441	0.1281317837441
-7482	6260	6261	0.0586102720745076	0.0586102720745076
-7484	1188	6262	0.0214828666370953	0.0214828666370953
-7485	6262	3789	0.199388923153335	0.199388923153335
-7486	3789	5915	0.154872293830304	0.154872293830304
-7487	5915	6263	0.0506492890867135	0.0506492890867135
-7488	6264	2248	0.0665325760000431	0.0665325760000431
-7489	2248	4881	0.176090081583566	0.176090081583566
-7490	4881	6265	0.19613430259676	0.19613430259676
-7491	6265	5479	0.175348484443179	0.175348484443179
-7492	5479	6266	0.176845636908204	0.176845636908204
-7493	6266	6267	0.178089834743743	0.178089834743743
-7494	6267	676	0.00240181041514711	0.00240181041514711
-7495	676	6268	0.00459391026290071	0.00459391026290071
-7496	6268	6269	0.174858851790528	0.174858851790528
-7497	6269	4598	0.173764465207871	0.173764465207871
-7500	6270	6271	0.133612621428605	0.133612621428605
-7501	6271	6272	0.00412533177852682	0.00412533177852682
-7502	6272	6273	0.00367565176707242	0.00367565176707242
-7503	6273	6274	0.134146296121319	0.134146296121319
-20534	10849	10832	0.00532626442143788	0.00532626442143788
-7504	6274	6275	0.138338671785307	0.138338671785307
-7505	6275	829	0.140763564032817	0.140763564032817
-7506	829	3569	0.13985476308825	0.13985476308825
-7507	3569	5638	0.139885286720423	0.139885286720423
-7508	5638	4342	0.139394668795268	0.139394668795268
-7509	4342	6276	0.136887040523289	0.136887040523289
-7510	6276	3042	0.135179672321338	0.135179672321338
-7511	3042	6277	0.141328751765533	0.141328751765533
-7512	6277	6278	0.0048613905607292	0.0048613905607292
-7513	6278	6279	0.138461653724603	0.138461653724603
-7514	6279	1163	0.137550674895164	0.137550674895164
-7515	1163	883	0.14127337175944	0.14127337175944
-7516	883	4468	0.137815416161984	0.137815416161984
-7517	4468	2790	0.135224582480649	0.135224582480649
-7518	2790	5258	0.130698751805084	0.130698751805084
-7519	5258	6280	0.127788689349157	0.127788689349157
-7521	6281	4149	0.293690516229792	0.293690516229792
-7522	4149	4399	0.168839008279682	0.168839008279682
-7524	6202	6282	0.107543949920042	0.107543949920042
-7525	6282	6283	0.203165579542053	0.203165579542053
-7526	6283	2881	0.158375292404745	0.158375292404745
-7528	6284	6285	0.199406415880408	0.199406415880408
-7530	2831	1439	0.198717844078091	0.198717844078091
-7531	1439	6286	0.198972452931936	0.198972452931936
-7533	4103	6046	0.129598634612641	0.129598634612641
-7534	6046	6287	0.200664408696912	0.200664408696912
-7535	6287	6288	0.407763176533057	0.407763176533057
-7536	3356	6289	0.17574244534878	0.17574244534878
-7537	6289	3103	0.174022554549137	0.174022554549137
-7538	3103	6290	0.195576263268451	0.195576263268451
-7539	6290	6291	0.0184164625226683	0.0184164625226683
-7543	5848	6293	0.0908806324614032	0.0908806324614032
-7544	6293	6294	0.111642131539399	0.111642131539399
-7546	6295	6296	0.199763041133193	0.199763041133193
-7547	6297	4228	0.205146518268072	0.205146518268072
-7548	4228	6298	0.220075142380819	0.220075142380819
-7549	6299	6300	0.269225278413762	0.269225278413762
-7550	6300	6301	0.135380699238895	0.135380699238895
-7551	6301	6037	0.201685647547083	0.201685647547083
-7552	6037	4092	0.180825512734332	0.180825512734332
-8788	5909	7005	0.202308283638507	0.202308283638507
-7555	1356	1434	0.0619921139139986	0.0619921139139986
-7556	1434	1416	0.0702533335118034	0.0702533335118034
-7557	1416	2824	0.130534926760632	0.130534926760632
-7558	2824	2485	0.13649413612348	0.13649413612348
-7559	2485	6304	0.132600390611243	0.132600390611243
-7560	6304	6305	0.13375224687231	0.13375224687231
-7562	6293	6306	0.193932773048905	0.193932773048905
-7564	6307	4033	0.1068931298406	0.1068931298406
-7566	6308	1505	0.201208565153675	0.201208565153675
-7567	1505	178	0.201696340498873	0.201696340498873
-7568	178	1706	0.202420430939935	0.202420430939935
-7569	1706	6310	0.205872571954156	0.205872571954156
-7571	1393	5861	0.176199480761084	0.176199480761084
-7573	1309	5328	0.243304763536767	0.243304763536767
-17643	524	9824	0.0585508481458027	0.0585508481458027
-7575	6311	6312	0.480549704702292	0.480549704702292
-7576	4368	1449	0.194542255499986	0.194542255499986
-7577	1449	6313	0.208609985343506	0.208609985343506
-7578	6313	6314	0.103555170544593	0.103555170544593
-7579	6314	6315	0.0981349608621905	0.0981349608621905
-7581	3820	5895	0.101734690953305	0.101734690953305
-7583	6316	6317	0.456743307850688	0.456743307850688
-7584	5896	1591	0.201196573887444	0.201196573887444
-7585	1591	1642	0.201704599280981	0.201704599280981
-7587	4303	6319	0.0895876341901528	0.0895876341901528
-7589	6320	5074	0.0881249654942257	0.0881249654942257
-7590	5074	6321	0.0822356991688935	0.0822356991688935
-7592	3098	3208	0.20139821402018	0.20139821402018
-7593	3208	6120	0.199810792778826	0.199810792778826
-7594	6120	1919	0.202180610053987	0.202180610053987
-7595	1919	6322	0.202387552164505	0.202387552164505
-7596	6322	3262	0.201452153939087	0.201452153939087
-7597	3262	6323	0.198460905873661	0.198460905873661
-7599	6325	6326	0.0490995020648654	0.0490995020648654
-7600	6326	6327	0.055368676730927	0.055368676730927
-7601	6327	6328	0.0309445801475025	0.0309445801475025
-7602	6328	992	0.0695937269558986	0.0695937269558986
-7603	992	5033	0.0562459052664965	0.0562459052664965
-8836	2977	657	0.0520837064464313	0.0520837064464313
-7604	5033	6329	0.0516777216994855	0.0516777216994855
-7605	6329	5046	0.105372499364086	0.105372499364086
-7606	5046	4160	0.118696493530277	0.118696493530277
-7607	4160	6330	0.136699581092316	0.136699581092316
-7608	6330	4974	0.128955324206818	0.128955324206818
-7609	4974	4766	0.151821196012923	0.151821196012923
-7610	4766	6331	0.118237006648706	0.118237006648706
-7611	6331	6332	0.150079343538278	0.150079343538278
-7612	6332	6333	0.165501031184984	0.165501031184984
-7613	6333	6334	0.0461738747625761	0.0461738747625761
-7614	6334	6335	0.133457305058149	0.133457305058149
-7615	6335	1212	0.134967826650912	0.134967826650912
-7617	2900	6336	0.106167707809224	0.106167707809224
-7618	6336	6337	0.104928236912142	0.104928236912142
-7619	6337	4735	0.104475212628964	0.104475212628964
-7620	4735	6338	0.102406513567036	0.102406513567036
-7621	6338	6339	0.111236760215522	0.111236760215522
-7622	6339	5400	0.102611714232847	0.102611714232847
-7623	5400	6340	0.108937307551118	0.108937307551118
-7624	6340	3903	0.106714805368354	0.106714805368354
-7625	3903	1040	0.101833845648583	0.101833845648583
-7626	1040	6276	0.108458622663871	0.108458622663871
-7627	6276	6341	0.106851583282394	0.106851583282394
-7628	6341	5005	0.0997823108241272	0.0997823108241272
-7629	5005	3326	0.104184561842385	0.104184561842385
-7630	3326	6343	0.103107525114489	0.103107525114489
-7631	6343	6344	0.102577524667858	0.102577524667858
-7632	6344	2077	0.109057202290834	0.109057202290834
-7633	2077	2674	0.105238001385814	0.105238001385814
-7634	2674	4124	0.102908082653388	0.102908082653388
-7635	4124	6345	0.111237019236159	0.111237019236159
-7636	6345	6346	0.0932071004983952	0.0932071004983952
-7637	6346	6347	0.101110239024215	0.101110239024215
-7638	6347	3472	0.0998858354760893	0.0998858354760893
-7639	3472	6024	0.100184077827119	0.100184077827119
-7641	3875	6348	0.0931831682605449	0.0931831682605449
-7642	6348	851	0.00806942804368034	0.00806942804368034
-7644	6349	6350	0.122741608307903	0.122741608307903
-7646	6351	6352	0.0367221312616467	0.0367221312616467
-7648	6353	6352	0.031587926861642	0.031587926861642
-7649	6352	6353	0.031587926861642	0.031587926861642
-7651	4284	5406	0.209059343043956	0.209059343043956
-7652	5406	3139	0.106127827196287	0.106127827196287
-7653	3139	3924	0.0976499059560775	0.0976499059560775
-7654	3924	5060	0.353918950652385	0.353918950652385
-7655	5060	5012	0.0994873589954365	0.0994873589954365
-7658	6356	2071	0.094898000530225	0.094898000530225
-7659	2071	2669	0.0951372963506741	0.0951372963506741
-7660	2669	4139	0.0930605458860926	0.0930605458860926
-7661	4139	6357	0.0866508308410144	0.0866508308410144
-7662	6357	6358	0.100153967379628	0.100153967379628
-7663	6358	6359	0.094521960675225	0.094521960675225
-7664	6359	834	0.394334341459341	0.394334341459341
-7665	834	871	0.00699086459728944	0.00699086459728944
-7666	871	6360	0.0985643561678323	0.0985643561678323
-7667	6360	6361	0.0919153430634884	0.0919153430634884
-7668	6361	6362	0.0142210252134503	0.0142210252134503
-7670	6363	6250	0.198277134301598	0.198277134301598
-7671	6250	6258	0.115286899945233	0.115286899945233
-7672	6258	6364	0.0878557774552784	0.0878557774552784
-7673	6364	1498	0.200867314778576	0.200867314778576
-7675	187	5877	0.162832287710312	0.162832287710312
-7676	5877	1716	0.0499429374304698	0.0499429374304698
-7678	6365	1582	0.142378532382676	0.142378532382676
-7679	1582	6366	1.28806099537571	1.28806099537571
-7680	6367	2271	0.093525872105216	0.093525872105216
-7681	2271	6368	0.0953526699152847	0.0953526699152847
-7682	6368	6369	0.0956103425754401	0.0956103425754401
-7683	6369	2130	0.0946975078442247	0.0946975078442247
-7684	2130	5981	0.0976635368625979	0.0976635368625979
-7685	5981	6370	0.0910203235542429	0.0910203235542429
-7686	6370	2335	0.0939706612325521	0.0939706612325521
-7687	2335	6371	1.7470149025737	1.7470149025737
-7688	96	3500	0.202527213410831	0.202527213410831
-7689	3500	6372	0.200485391157046	0.200485391157046
-7690	6372	6373	0.200744473183588	0.200744473183588
-7691	6373	6374	0.203425216522523	0.203425216522523
-7692	6374	261	0.363896677888795	0.363896677888795
-7693	261	6375	0.041137585532266	0.041137585532266
-7694	6375	6376	0.527231991542063	0.527231991542063
-8934	2865	7087	0.201874708309178	0.201874708309178
-7696	6377	3069	0.174367166483664	0.174367166483664
-7697	3069	6378	0.175688037406208	0.175688037406208
-7698	6378	6379	0.195293035214527	0.195293035214527
-7700	5015	6380	0.0917013339896307	0.0917013339896307
-7702	380	6381	0.0601450697094338	0.0601450697094338
-7703	6381	3398	0.0950953426294514	0.0950953426294514
-7704	3398	6384	0.0512135480319707	0.0512135480319707
-7705	6384	6385	0.0512477474787707	0.0512477474787707
-7706	6385	6386	0.0508150751685789	0.0508150751685789
-7707	6386	6387	0.0467877396177586	0.0467877396177586
-7708	6387	6388	0.102738526459791	0.102738526459791
-7709	6388	6389	0.0502022657375815	0.0502022657375815
-7710	6389	6390	0.0495952560526731	0.0495952560526731
-7711	6390	6391	0.0506266673865361	0.0506266673865361
-7712	6391	1111	0.0484464674507555	0.0484464674507555
-7714	4654	1272	0.131229439030854	0.131229439030854
-7715	1272	6392	0.0233060632854453	0.0233060632854453
-7716	6392	4560	0.111717062627726	0.111717062627726
-7717	4560	2711	0.115276038939543	0.115276038939543
-7718	2711	6393	0.157827401374253	0.157827401374253
-7720	6394	6142	0.134287937529063	0.134287937529063
-7721	6142	4016	0.132933704994743	0.132933704994743
-7722	4016	6395	0.00906250528140326	0.00906250528140326
-7723	6395	382	0.124591902443133	0.124591902443133
-7725	5850	6396	0.00523272011597534	0.00523272011597534
-7726	6396	501	0.199511293598505	0.199511293598505
-7727	501	6397	0.217152349025227	0.217152349025227
-7728	6397	6398	0.36755359975324	0.36755359975324
-7730	3613	6399	0.21266860576331	0.21266860576331
-7732	6401	6402	0.038551456513769	0.038551456513769
-7733	6402	6403	0.01171446339475	0.01171446339475
-7735	2909	6404	0.0724414530545414	0.0724414530545414
-7736	6404	6405	0.105070094163828	0.105070094163828
-7737	6405	6174	0.106062498124406	0.106062498124406
-7738	6174	3312	0.104669820520163	0.104669820520163
-7739	3312	6406	0.105292804834109	0.105292804834109
-7741	5545	2415	0.0733757601851338	0.0733757601851338
-7743	5056	4299	0.0731858562049149	0.0731858562049149
-7745	5093	6407	0.0155546054802435	0.0155546054802435
-7747	3914	4762	0.124500033165113	0.124500033165113
-7750	6409	5773	0.332202382721644	0.332202382721644
-7752	6410	6411	0.0178672618817003	0.0178672618817003
-7754	6409	6412	0.0520862922994697	0.0520862922994697
-7756	6231	6413	0.198055274582402	0.198055274582402
-7758	6414	6415	0.189433856898839	0.189433856898839
-7759	6416	4038	0.0834324728266378	0.0834324728266378
-7761	6417	4521	0.134579982196382	0.134579982196382
-7762	4521	5240	0.13502405245006	0.13502405245006
-7763	5240	6418	0.13412336654487	0.13412336654487
-7764	6418	6419	0.133878890575632	0.133878890575632
-7765	6419	1678	0.134913237668999	0.134913237668999
-7766	1678	6421	0.134568146094945	0.134568146094945
-7767	6421	2457	0.135266114631303	0.135266114631303
-7768	2457	3225	0.138075006668938	0.138075006668938
-7769	3225	5745	0.134195295626898	0.134195295626898
-7770	5745	5522	0.132936679979251	0.132936679979251
-7771	5522	6422	0.135417328130375	0.135417328130375
-7772	6422	6423	0.137879539043021	0.137879539043021
-7776	6425	6426	0.131565838315989	0.131565838315989
-9014	7117	7118	0.0653478278832396	0.0653478278832396
-7778	2486	2825	0.134659485620958	0.134659485620958
-7779	2825	1435	0.20171777298344	0.20171777298344
-7780	1435	6427	0.150355567395556	0.150355567395556
-7782	4094	6039	0.18817564016619	0.18817564016619
-7783	6039	6428	0.201342188276825	0.201342188276825
-7784	6428	6429	0.404705192201308	0.404705192201308
-7785	6430	2403	0.202864038761159	0.202864038761159
-7786	2403	6431	0.0331723473682169	0.0331723473682169
-7787	6431	6432	0.176045966759895	0.176045966759895
-7789	6433	6434	0.0826623084672878	0.0826623084672878
-7790	6434	6435	0.102944521823956	0.102944521823956
-7791	6435	6436	0.00978588535341196	0.00978588535341196
-7793	6131	5859	0.176922247784819	0.176922247784819
-7794	5859	1306	0.176947022701008	0.176947022701008
-7795	1306	6437	0.245961882429388	0.245961882429388
-7797	4379	175	0.0949912703955897	0.0949912703955897
-7799	6438	6439	0.118265132463411	0.118265132463411
-7800	426	6440	0.136068759302944	0.136068759302944
-7801	6440	6140	0.13326442219696	0.13326442219696
-7802	6140	4012	0.134504046499466	0.134504046499466
-7803	4012	6441	0.132430300578831	0.132430300578831
-7804	6441	6442	0.13523718007968	0.13523718007968
-7805	6442	3383	0.131020837855346	0.131020837855346
-7807	6443	5593	0.101318153214668	0.101318153214668
-7809	5592	6444	0.0976166388579658	0.0976166388579658
-7810	6444	6445	0.491425863708822	0.491425863708822
-7814	2400	6448	0.282522157819803	0.282522157819803
-7817	2813	6450	0.086833012009872	0.086833012009872
-7819	6451	6452	0.0978256934477298	0.0978256934477298
-7820	6452	3935	0.102019422492613	0.102019422492613
-7821	3935	5623	0.0992172562512715	0.0992172562512715
-7823	6453	4202	0.100516365940058	0.100516365940058
-7824	4202	1069	0.100502974298411	0.100502974298411
-7825	1069	2505	0.106288157429336	0.106288157429336
-7827	6454	1236	0.0948029547901802	0.0948029547901802
-7828	1236	4810	0.0999111243280575	0.0999111243280575
-7829	4810	2177	0.101346858256007	0.101346858256007
-7830	2177	595	0.0594373309242362	0.0594373309242362
-7831	595	6456	0.0424911721972826	0.0424911721972826
-7833	349	6422	0.0713248739505624	0.0713248739505624
-7834	6422	4630	0.121079515215535	0.121079515215535
-7836	1259	376	0.0755636106904258	0.0755636106904258
-7837	376	4545	0.0608816123146845	0.0608816123146845
-7838	4545	2701	0.135701731606855	0.135701731606855
-7839	2701	6457	0.126994454068005	0.126994454068005
-7841	6458	6459	0.0454788769710747	0.0454788769710747
-7842	6459	6460	0.0496400956308302	0.0496400956308302
-7843	6460	6461	0.0515972381206	0.0515972381206
-7845	6462	6463	0.0483118204156802	0.0483118204156802
-7846	6463	1134	0.0499784066419261	0.0499784066419261
-7847	1134	6464	0.0497410465605515	0.0497410465605515
-7849	6465	6466	0.0544130408961272	0.0544130408961272
-7850	6466	3850	0.0472855484942146	0.0472855484942146
-7851	3850	6467	0.0501739162143614	0.0501739162143614
-7852	6467	5576	0.0486954285842123	0.0486954285842123
-7854	6468	4673	0.110758148850492	0.110758148850492
-7855	4673	6469	0.101963932591745	0.101963932591745
-7857	5575	6471	0.0065719182159958	0.0065719182159958
-7858	6471	6472	0.0420124186537075	0.0420124186537075
-7859	6472	6473	0.0412603655949121	0.0412603655949121
-7860	6473	6474	0.00681975388326533	0.00681975388326533
-7862	6476	3433	0.101986471383689	0.101986471383689
-7864	6477	6478	0.14533158628719	0.14533158628719
-7865	6478	6479	0.146043976986052	0.146043976986052
-7866	6479	2014	0.145258231311968	0.145258231311968
-7867	2014	6480	0.148541120069898	0.148541120069898
-7868	6480	6481	0.146497737165933	0.146497737165933
-7870	6482	6483	0.108282286689265	0.108282286689265
-7871	6483	6484	0.108491401341724	0.108491401341724
-7873	6485	6486	0.107588206878742	0.107588206878742
-7874	6486	6487	0.108152480667507	0.108152480667507
-7875	6487	6488	0.101444382501879	0.101444382501879
-7876	6488	6489	0.0964116258051976	0.0964116258051976
-7877	6489	6490	0.100996661509111	0.100996661509111
-7878	6490	6491	0.0875395650093709	0.0875395650093709
-7879	6491	5045	0.0321137501610987	0.0321137501610987
-7880	5045	6492	0.117702359393688	0.117702359393688
-7882	6493	6494	0.102121868544675	0.102121868544675
-7885	5423	6497	0.104998299985498	0.104998299985498
-7887	6498	2276	0.0954001386196214	0.0954001386196214
-7888	2276	3599	0.06824353272523	0.06824353272523
-7889	3599	6499	0.0293198911712676	0.0293198911712676
-7890	6499	6500	0.100538255640661	0.100538255640661
-7891	6500	5163	0.0991059325809468	0.0991059325809468
-7892	5163	5160	0.0380087655441681	0.0380087655441681
-7893	5160	5991	0.104706554354607	0.104706554354607
-7894	5991	6501	0.100402260808534	0.100402260808534
-7895	6501	6502	1.04365943145138	1.04365943145138
-7898	435	6505	0.0386263503887606	0.0386263503887606
-7899	6505	335	0.101999106210783	0.101999106210783
-18520	9719	10306	0.125645609854682	0.125645609854682
-7901	6506	6507	1.29783680025226	1.29783680025226
-7902	6507	5983	0.103637474886707	0.103637474886707
-7903	5983	2101	0.103292266259067	0.103292266259067
-9126	1424	7178	0.131577423131136	0.131577423131136
-7904	2101	6508	0.248902894245049	0.248902894245049
-7906	6509	6510	0.360508984578831	0.360508984578831
-7907	6510	6511	0.0349379067210739	0.0349379067210739
-7909	6512	6513	0.304262851034051	0.304262851034051
-7910	6513	6198	0.252538456966519	0.252538456966519
-7911	6198	576	0.0366939406022336	0.0366939406022336
-7912	576	6515	0.0946945974761285	0.0946945974761285
-7915	89	3525	0.202675004351493	0.202675004351493
-7916	3525	6516	0.201208326437589	0.201208326437589
-7917	6516	6517	0.125720317267139	0.125720317267139
-7919	6518	6519	0.200829668984099	0.200829668984099
-7920	6519	5832	0.202502182884777	0.202502182884777
-7921	5832	6520	0.201241567556278	0.201241567556278
-7922	6520	6521	0.396923547399649	0.396923547399649
-7923	6522	6523	0.133027344486413	0.133027344486413
-7924	6523	4230	0.0509058477475031	0.0509058477475031
-7925	4230	3627	0.095634183764131	0.095634183764131
-7926	3627	1795	0.17402508350424	0.17402508350424
-7928	6524	4175	0.0888021060703878	0.0888021060703878
-17651	395	780	0.411550362143881	0.411550362143881
-7930	6525	1780	0.0441669339202922	0.0441669339202922
-7931	1780	4371	0.0730695211007641	0.0730695211007641
-7932	4371	6527	0.0615136660388587	0.0615136660388587
-7933	6527	365	0.0331373286455635	0.0331373286455635
-7935	6528	6529	0.918393000112345	0.918393000112345
-7936	6529	6530	0.220602612202271	0.220602612202271
-7938	6531	6533	0.0857049610334614	0.0857049610334614
-7940	5175	3090	0.40371590303619	0.40371590303619
-7941	3090	3201	0.197838998920199	0.197838998920199
-7943	6407	4688	0.196571833896643	0.196571833896643
-7944	4688	4940	0.140125445900248	0.140125445900248
-7946	6170	5019	0.102773469761832	0.102773469761832
-7947	5019	3351	0.103514032973499	0.103514032973499
-7948	3351	6534	0.103149871890818	0.103149871890818
-7949	6534	6535	0.102775789327764	0.102775789327764
-9173	5349	5392	0.0859339245649361	0.0859339245649361
-7950	6535	2060	0.103192691678964	0.103192691678964
-7951	2060	2646	0.101884046964041	0.101884046964041
-7952	2646	4112	0.105519033634909	0.105519033634909
-7953	4112	6536	0.103005071327601	0.103005071327601
-7954	6536	6537	0.102995851811127	0.102995851811127
-7955	6537	6539	0.1029998815793	0.1029998815793
-7956	6539	3453	0.102546625331303	0.102546625331303
-7958	6015	3883	0.103459903316916	0.103459903316916
-7959	3883	846	0.104834602248929	0.104834602248929
-7960	846	6540	0.101388253991195	0.101388253991195
-7961	6540	6541	0.0479102302548626	0.0479102302548626
-7963	988	6542	0.0976255225844962	0.0976255225844962
-7964	6542	6543	0.0510763365802728	0.0510763365802728
-7966	6544	2318	0.0507276043625414	0.0507276043625414
-7967	2318	5114	0.0505908057304328	0.0505908057304328
-7968	5114	445	0.0485658434846568	0.0485658434846568
-7969	445	4713	0.0498146803357513	0.0498146803357513
-7970	4713	6546	0.0983637452954902	0.0983637452954902
-7971	6546	6547	0.0998347883215936	0.0998347883215936
-7973	5411	3144	0.088816521791746	0.088816521791746
-7974	3144	3916	0.112464236744585	0.112464236744585
-7976	6332	6548	0.108272865647673	0.108272865647673
-7977	6548	3156	0.104441457482765	0.104441457482765
-7978	3156	4975	0.102775440582403	0.102775440582403
-7979	4975	6549	0.100365138716245	0.100365138716245
-7980	6549	6550	0.102792800397101	0.102792800397101
-7982	6526	5047	0.0492847670519182	0.0492847670519182
-7983	5047	6551	0.0975745067522553	0.0975745067522553
-17653	9285	10141	0.0935043743671756	0.0935043743671756
-7984	6551	5065	0.0520838428726065	0.0520838428726065
-7985	5065	987	0.0487655351272014	0.0487655351272014
-7987	6552	6553	0.11141163822183	0.11141163822183
-7988	6553	6554	0.0931288050453943	0.0931288050453943
-7989	6554	6555	0.0954267012259227	0.0954267012259227
-7990	6555	6556	0.0932230978560399	0.0932230978560399
-7991	6556	2018	0.096637647678534	0.096637647678534
-7992	2018	2008	0.0302895913994428	0.0302895913994428
-7993	2008	6557	0.0614415106208342	0.0614415106208342
-7995	2764	6558	0.0940583318372542	0.0940583318372542
-7996	6558	2268	0.0933570415002435	0.0933570415002435
-7998	5192	6559	0.0436786412585742	0.0436786412585742
-7999	6559	6560	0.0106994466158069	0.0106994466158069
-8002	6562	6563	0.0505000952437127	0.0505000952437127
-8004	3018	6564	0.0487830282291943	0.0487830282291943
-8005	6564	4383	0.0508423763728808	0.0508423763728808
-8006	4383	6565	0.0576100244421376	0.0576100244421376
-8008	6566	6567	0.00412306976586438	0.00412306976586438
-8009	6567	6568	0.0539582974681531	0.0539582974681531
-8010	6568	6569	0.0519961096093482	0.0519961096093482
-8011	6569	6570	0.0542246799430147	0.0542246799430147
-8012	6570	6571	0.0518803862854092	0.0518803862854092
-17654	10141	10140	0.10337885268614	0.10337885268614
-8013	6571	6572	0.0555098728995741	0.0555098728995741
-8014	6572	6573	0.0518861583127315	0.0518861583127315
-8015	6573	6574	0.0518860343451018	0.0518860343451018
-8016	6574	6575	0.0508332520538339	0.0508332520538339
-8017	6575	6576	0.0544506518702307	0.0544506518702307
-8018	6576	6176	0.0529383120108553	0.0529383120108553
-8019	6176	6577	0.0529043310628525	0.0529043310628525
-8020	6577	3307	0.0513720664630444	0.0513720664630444
-8021	3307	6578	0.0555027664653656	0.0555027664653656
-8022	6578	6579	0.0497858933197237	0.0497858933197237
-8026	916	6582	0.0644004913493865	0.0644004913493865
-8027	6582	6583	0.0568408799781512	0.0568408799781512
-8028	6583	6584	0.122686442934717	0.122686442934717
-8029	6584	6585	0.119086225858405	0.119086225858405
-8031	4637	6586	0.0681807162053014	0.0681807162053014
-8032	6586	4550	0.0899357767109733	0.0899357767109733
-8033	4550	6587	0.293817867332518	0.293817867332518
-8034	6587	6588	0.104136881172081	0.104136881172081
-8035	6588	6589	0.0983651040648428	0.0983651040648428
-8036	6589	6129	0.0990923096855932	0.0990923096855932
-8037	6129	3972	0.0982639550962464	0.0982639550962464
-8038	3972	6590	0.099057650475641	0.099057650475641
-17935	10221	8779	0.0167456719913715	0.0167456719913715
-8039	6590	1407	0.099982611141039	0.099982611141039
-8040	1407	6591	0.096574089288832	0.096574089288832
-8042	5218	3376	0.0125708011673062	0.0125708011673062
-8043	3376	3397	0.0411038350876113	0.0411038350876113
-8044	3397	6592	0.0474630685655207	0.0474630685655207
-8045	6592	5717	0.0112629167716475	0.0112629167716475
-8046	5717	5711	0.0353931291626462	0.0353931291626462
-8049	6594	6595	0.0372589458613009	0.0372589458613009
-8051	6596	6597	0.0491446235593822	0.0491446235593822
-8052	6597	6598	0.0512739101828601	0.0512739101828601
-8053	6598	6599	0.0445968134228137	0.0445968134228137
-8054	6599	6600	0.0456401369039379	0.0456401369039379
-8055	6600	252	0.0644261415780049	0.0644261415780049
-8056	252	3949	0.0630622102110069	0.0630622102110069
-8057	3949	6601	0.0624388506180743	0.0624388506180743
-8058	6601	5610	0.057495014751868	0.057495014751868
-8059	5610	6602	0.0530621910173341	0.0530621910173341
-8060	6602	3731	0.0543021802328704	0.0543021802328704
-8061	3731	6603	0.107126213030051	0.107126213030051
-8062	6603	4486	0.0992014153017681	0.0992014153017681
-8064	302	396	0.456543205648827	0.456543205648827
-8065	396	6604	0.263692963912388	0.263692963912388
-8067	2108	5986	0.103617400145952	0.103617400145952
-8068	5986	6605	0.103377873268697	0.103377873268697
-9343	7304	2051	0.0535709121596095	0.0535709121596095
-8070	4763	6169	0.176859243925992	0.176859243925992
-8123	6640	6641	0.17629957299909	0.17629957299909
-8071	6169	6260	0.145538243855646	0.145538243855646
-8072	6260	3917	0.186355414418251	0.186355414418251
-8075	6608	6609	0.216668843775513	0.216668843775513
-8076	6609	5988	0.0945207273969085	0.0945207273969085
-8077	5988	2122	0.100941576479339	0.100941576479339
-8078	2122	6610	0.0983635555045419	0.0983635555045419
-8079	6610	6611	0.0970315915473971	0.0970315915473971
-8081	6612	6613	0.0935811526066721	0.0935811526066721
-8082	6613	2749	0.0990634268639465	0.0990634268639465
-8083	2749	6614	0.105679418235948	0.105679418235948
-8085	6615	6616	0.101635566171867	0.101635566171867
-8086	6616	6617	0.0962607674133666	0.0962607674133666
-8087	6617	6618	0.0951534169408166	0.0951534169408166
-8088	6618	6619	0.0938879229278784	0.0938879229278784
-17940	6560	10223	0.0802385671723254	0.0802385671723254
-8090	6620	6621	0.160330485968093	0.160330485968093
-8094	6623	1791	0.109097036983099	0.109097036983099
-8095	1791	3615	0.039522374569603	0.039522374569603
-8096	3615	6624	0.0738542372087066	0.0738542372087066
-8097	6624	6625	0.00831390386589708	0.00831390386589708
-8098	6625	6626	0.070757439886615	0.070757439886615
-8099	6626	6627	0.0728730586061825	0.0728730586061825
-8100	6627	5098	0.0960515227378026	0.0960515227378026
-8101	5098	6628	0.0550201636939116	0.0550201636939116
-8103	6630	239	0.0379460853943731	0.0379460853943731
-13573	9130	3	0.109013561390269	0.109013561390269
-8105	6631	6632	0.0782857815609104	0.0782857815609104
-8106	6632	6533	0.166563544591406	0.166563544591406
-8108	4496	6633	0.110872689467253	0.110872689467253
-8109	6633	2525	0.333067333185797	0.333067333185797
-8111	6530	6634	0.0105197308884475	0.0105197308884475
-9336	7300	4780	0.0501146245066156	0.0501146245066156
-8112	6634	6635	2.4458667171276	2.4458667171276
-8113	6636	3095	0.197330202512711	0.197330202512711
-8114	3095	3205	0.202310741049047	0.202310741049047
-8115	3205	6118	0.200935805580311	0.200935805580311
-8116	6118	1915	0.200185455389542	0.200185455389542
-8118	6637	5842	0.204932644380513	0.204932644380513
-8119	5842	6638	0.194625839062785	0.194625839062785
-8121	6639	3724	0.202719550339155	0.202719550339155
-8122	3724	6640	0.104515203903702	0.104515203903702
-8124	6641	2622	0.176067278462879	0.176067278462879
-8125	2622	5203	0.176917243967006	0.176917243967006
-8126	5203	6232	0.177139986115085	0.177139986115085
-8129	6643	6644	0.177268373064057	0.177268373064057
-8130	6644	6600	0.175826872766799	0.175826872766799
-8131	6600	6646	0.177773484713149	0.177773484713149
-8133	6647	6648	0.177957472274986	0.177957472274986
-8134	6648	6649	0.169816854222751	0.169816854222751
-8135	6649	6650	0.0183704581232897	0.0183704581232897
-8136	6650	6651	0.180283145370232	0.180283145370232
-8137	6651	6652	0.0228081566299403	0.0228081566299403
-8139	6653	1499	0.197154421185115	0.197154421185115
-8140	1499	188	0.204153885319108	0.204153885319108
-8141	188	5878	0.159028819712238	0.159028819712238
-8142	5878	6654	0.24236157922448	0.24236157922448
-8144	1583	6655	0.303396334779096	0.303396334779096
-8145	6656	5874	0.176427569810156	0.176427569810156
-8146	5874	6657	0.00810609260917888	0.00810609260917888
-8147	6657	6658	0.0470608013663409	0.0470608013663409
-8150	6659	6660	0.255748331282284	0.255748331282284
-8151	6661	6662	0.00688301382680834	0.00688301382680834
-8152	6662	6663	0.392909871907801	0.392909871907801
-8153	6664	1758	0.130752459577202	0.130752459577202
-8154	1758	6314	0.0908112834588078	0.0908112834588078
-8155	6314	6665	0.191679756807403	0.191679756807403
-8156	6665	763	0.155864734453911	0.155864734453911
-8157	763	6668	0.0989081569703109	0.0989081569703109
-8158	6668	1760	0.0778502447443476	0.0778502447443476
-8159	1760	6003	0.221657363761595	0.221657363761595
-8160	6003	5765	0.101345142024656	0.101345142024656
-8161	5765	4032	0.0976983696193598	0.0976983696193598
-8162	4032	6669	0.0654151166199609	0.0654151166199609
-8164	2301	1759	0.0929594689620956	0.0929594689620956
-8165	1759	150	0.2063607315498	0.2063607315498
-8166	150	1738	0.199773882802826	0.199773882802826
-8168	1953	3100	0.166887359049361	0.166887359049361
-8170	370	2529	0.0016410050164606	0.0016410050164606
-8171	2529	6670	0.0654370448512421	0.0654370448512421
-8200	6684	1172	0.140728922414785	0.140728922414785
-8172	6670	1937	0.344573874886115	0.344573874886115
-8174	6671	6672	0.176399723080376	0.176399723080376
-8176	3101	6673	0.188864615641403	0.188864615641403
-8178	4227	1805	0.201844384843532	0.201844384843532
-8179	1805	6674	0.203096969054999	0.203096969054999
-8180	6674	5847	0.205632777843381	0.205632777843381
-8181	5847	6675	0.197984723567939	0.197984723567939
-8183	6676	4226	0.190839047917349	0.190839047917349
-8185	4212	1268	0.185384243862507	0.185384243862507
-8187	6677	2875	0.129732620530101	0.129732620530101
-8188	2875	6678	0.138723736947104	0.138723736947104
-8189	6678	6679	0.13144235424121	0.13144235424121
-8190	6679	6680	0.782596772143326	0.782596772143326
-8191	3575	5642	0.141762411979774	0.141762411979774
-8192	5642	4347	0.140039066988463	0.140039066988463
-8193	4347	6345	0.13859354874742	0.13859354874742
-8194	6345	3049	0.140317315615912	0.140317315615912
-8195	3049	3024	0.0669551847418331	0.0669551847418331
-8196	3024	6681	0.0663747225163875	0.0663747225163875
-8197	6681	6682	0.00550527045183645	0.00550527045183645
-8198	6682	6683	0.122014480736259	0.122014480736259
-8199	6683	6684	0.0145554158979999	0.0145554158979999
-8201	1172	892	0.137892873302074	0.137892873302074
-8202	892	4475	0.139838739747675	0.139838739747675
-8203	4475	2777	0.135724572944392	0.135724572944392
-8204	2777	5266	0.129198654341627	0.129198654341627
-8205	5266	6685	0.122514628608539	0.122514628608539
-8206	6685	6686	0.20769100942942	0.20769100942942
-8207	6686	6357	0.202692590161251	0.202692590161251
-8208	6357	2390	0.107324644883127	0.107324644883127
-8209	2390	6687	0.139594845742255	0.139594845742255
-8210	6687	6688	0.0752686220951058	0.0752686220951058
-8211	6688	749	0.0665961818211898	0.0665961818211898
-8212	749	1567	0.140763317861176	0.140763317861176
-8213	1567	6689	0.140174033607804	0.140174033607804
-8215	6691	696	0.200953877059722	0.200953877059722
-8216	696	6692	0.202493921890496	0.202493921890496
-8218	508	6693	0.0440506867837982	0.0440506867837982
-8219	6694	1202	0.170408371052522	0.170408371052522
-8220	1202	6695	0.022095029398504	0.022095029398504
-8221	6695	3781	0.199196539116323	0.199196539116323
-8222	3781	6696	0.154646276165852	0.154646276165852
-8224	951	6697	0.162889491053556	0.162889491053556
-8225	6697	4890	0.17202029430472	0.17202029430472
-8226	4890	6698	0.182585439334225	0.182585439334225
-8227	6698	5488	0.173629132461636	0.173629132461636
-8230	6700	6701	0.054263196932367	0.054263196932367
-8231	6701	5807	0.103685962200744	0.103685962200744
-8232	5807	6702	0.106632774624389	0.106632774624389
-8233	6702	6703	0.0962060876195832	0.0962060876195832
-8234	6703	5959	0.00690380150934747	0.00690380150934747
-8235	5959	6704	0.00415729025946559	0.00415729025946559
-8236	6704	3004	0.101332185729619	0.101332185729619
-8237	3004	4395	0.106412326585027	0.106412326585027
-8238	4395	6705	0.103936208820228	0.103936208820228
-8239	6705	6706	0.108885043469445	0.108885043469445
-8240	6706	6707	0.0530572853327784	0.0530572853327784
-8241	6707	6708	0.0508918154467618	0.0508918154467618
-8242	6708	6709	0.103982459974641	0.103982459974641
-8243	6709	6710	0.100220871190445	0.100220871190445
-8244	6710	6711	0.00631643031082491	0.00631643031082491
-8245	6711	6188	0.105471969629518	0.105471969629518
-8246	6188	6712	0.0552929480053166	0.0552929480053166
-8247	6712	6713	0.051155648874288	0.051155648874288
-8249	4495	6714	0.112097289917407	0.112097289917407
-8250	6714	1079	0.0913714399600763	0.0913714399600763
-8251	1079	2524	0.245312559433029	0.245312559433029
-8253	6006	6251	0.204148069385731	0.204148069385731
-8254	6251	6715	0.203065667560916	0.203065667560916
-8256	2935	6716	0.266313303297407	0.266313303297407
-8257	6416	3741	0.135496222887927	0.135496222887927
-8258	3741	5854	0.117997896305679	0.117997896305679
-8260	2305	161	0.314948131318509	0.314948131318509
-8263	6717	3071	0.175732613824838	0.175732613824838
-8264	3071	6718	0.173767654321711	0.173767654321711
-8265	6718	6100	0.243539432543733	0.243539432543733
-8267	3290	98	0.422419964097428	0.422419964097428
-8269	4373	2854	0.205542196291208	0.205542196291208
-8271	6719	1596	0.0969388330111528	0.0969388330111528
-8273	118	6721	0.0966297992771619	0.0966297992771619
-8274	6721	6722	0.0414535753801991	0.0414535753801991
-8276	2311	6580	0.108271978342533	0.108271978342533
-8277	6580	6723	0.0197325066377101	0.0197325066377101
-8301	4041	6740	0.178573713835442	0.178573713835442
-8302	6740	1829	0.177333893618754	0.177333893618754
-8279	4433	6724	0.324356944785499	0.324356944785499
-8282	6725	6088	0.0237314605310015	0.0237314605310015
-8283	6088	4822	0.0875664870066569	0.0875664870066569
-8284	4822	6726	0.0475371228844605	0.0475371228844605
-8285	6726	4515	0.133316815943664	0.133316815943664
-8286	4515	5237	0.132189806591607	0.132189806591607
-9507	2581	5179	0.178384896285487	0.178384896285487
-8287	5237	6727	0.137381332135233	0.137381332135233
-8288	6727	6728	0.132866818946611	0.132866818946611
-8289	6728	1673	0.133389434002772	0.133389434002772
-8290	1673	6729	0.137304160443328	0.137304160443328
-8292	6730	6731	0.0127908749904874	0.0127908749904874
-8324	6753	6754	0.0516246355995179	0.0516246355995179
-8293	6731	6734	0.253997048781863	0.253997048781863
-8294	6734	6735	0.103152527560213	0.103152527560213
-8296	6736	6737	0.0131672047429292	0.0131672047429292
-8298	4636	5383	0.185495216645111	0.185495216645111
-8300	5972	4041	0.174731707729605	0.174731707729605
-8303	1829	6741	0.102538685907791	0.102538685907791
-8304	4575	6440	0.137081553799117	0.137081553799117
-8305	6440	5291	0.136014333235461	0.136014333235461
-8306	5291	6742	0.135023999424587	0.135023999424587
-8307	6742	10	0.133312225882616	0.133312225882616
-8308	10	6394	0.135032006709	0.135032006709
-8309	6394	6743	0.132451340826744	0.132451340826744
-8310	6743	6744	0.135765849385072	0.135765849385072
-8311	6744	6745	0.133823531129847	0.133823531129847
-8313	6746	6747	0.134513077577228	0.134513077577228
-8314	6747	6748	0.134201163774105	0.134201163774105
-8316	6749	1938	0.0948580215175547	0.0948580215175547
-8318	307	5887	0.0912856383131267	0.0912856383131267
-8319	5887	6750	0.00721526462075332	0.00721526462075332
-8320	6750	6751	0.0269156344716724	0.0269156344716724
-8323	6752	6753	0.0510955164610192	0.0510955164610192
-8325	6754	6755	0.0510906826304937	0.0510906826304937
-8326	6755	6756	0.0511615632316368	0.0511615632316368
-8327	6756	1661	0.0519510824904343	0.0519510824904343
-8328	1661	6758	0.0509873448397052	0.0509873448397052
-8329	6758	6759	0.0522106080921687	0.0522106080921687
-8330	6759	6760	0.0506887592311432	0.0506887592311432
-18752	5186	5654	0.105380231545906	0.105380231545906
-8331	6760	6761	0.0573063184317804	0.0573063184317804
-8333	6762	6763	0.0501245455122697	0.0501245455122697
-8334	6763	6764	0.0489376044154541	0.0489376044154541
-8337	6766	6767	0.0490039328328154	0.0490039328328154
-8338	6767	6768	0.0513498171240697	0.0513498171240697
-8339	6768	6769	0.0498709246005866	0.0498709246005866
-8341	5533	6770	0.292387787290413	0.292387787290413
-8343	2972	6771	0.121066844508317	0.121066844508317
-8344	6771	6093	0.143799158144466	0.143799158144466
-8345	6093	6772	0.01594646132934	0.01594646132934
-8346	6772	6773	0.00797333604469033	0.00797333604469033
-8347	6773	6774	0.00589372782719237	0.00589372782719237
-8349	6775	6776	0.135681018337986	0.135681018337986
-8350	6776	2490	0.131411131535027	0.131411131535027
-8351	2490	2835	0.135427320939223	0.135427320939223
-8353	4067	6052	0.133451561970317	0.133451561970317
-8354	6052	5792	0.201431723471221	0.201431723471221
-8356	6777	6778	0.137939265537406	0.137939265537406
-8358	6658	6779	0.0952206682824548	0.0952206682824548
-8359	6779	1328	0.20245506080321	0.20245506080321
-9582	1393	7408	0.0523989189771459	0.0523989189771459
-8360	1328	6780	0.24344994454685	0.24344994454685
-8362	6781	6338	0.132299767169153	0.132299767169153
-18540	10312	7538	0.710682259466036	0.710682259466036
-8363	6338	3026	0.142960379522958	0.142960379522958
-8364	3026	6782	0.131957413991529	0.131957413991529
-8365	6782	6783	0.00572653872195823	0.00572653872195823
-8366	6783	6784	0.13893806084239	0.13893806084239
-8367	6784	1155	0.138805738856212	0.138805738856212
-8368	1155	876	0.139884571461894	0.139884571461894
-8370	4464	2784	0.134142589801556	0.134142589801556
-8371	2784	5255	0.132457483790055	0.132457483790055
-8372	5255	4727	0.21307200925813	0.21307200925813
-8373	4727	5126	0.0748266761428759	0.0748266761428759
-8374	5126	6785	0.0660204248306932	0.0660204248306932
-8375	6785	4284	0.173603246809035	0.173603246809035
-8377	6786	6787	0.142696164770821	0.142696164770821
-8379	5475	6788	0.1766899367412	0.1766899367412
-8380	6788	6789	0.178262795240798	0.178262795240798
-8381	6789	669	0.0038695834466259	0.0038695834466259
-8382	669	6790	0.00298242718157566	0.00298242718157566
-8383	6790	6791	0.175654700740653	0.175654700740653
-8385	4603	6493	0.141540356779896	0.141540356779896
-8386	6493	6795	0.235592097571248	0.235592097571248
-8387	6795	6796	0.135380255100289	0.135380255100289
-8388	6796	6797	0.00458123097756658	0.00458123097756658
-8389	6797	6798	0.00459235047115107	0.00459235047115107
-8390	6798	6799	0.135291654892361	0.135291654892361
-8391	6799	6800	0.141019064418211	0.141019064418211
-8392	6800	821	0.136459904501488	0.136459904501488
-8393	821	3562	0.138377698701616	0.138377698701616
-8395	5772	516	0.0304460136124682	0.0304460136124682
-8397	6411	6801	0.0202183008206165	0.0202183008206165
-8398	6802	469	0.0770276556079661	0.0770276556079661
-8399	469	4171	0.115648628347006	0.115648628347006
-8400	4171	6803	0.135804309767261	0.135804309767261
-8401	6803	4756	0.071946790437269	0.071946790437269
-8403	6804	6805	0.127899734301329	0.127899734301329
-8405	6803	4172	0.13716080109606	0.13716080109606
-8406	4172	470	0.118198242572908	0.118198242572908
-8407	470	6806	0.0738815709398357	0.0738815709398357
-8410	6807	6808	0.0966312020179035	0.0966312020179035
-8411	6808	6809	0.078738376832051	0.078738376832051
-8412	6809	3373	0.430297684252256	0.430297684252256
-8414	6810	6811	0.203442237788957	0.203442237788957
-8415	1476	6812	0.245653934383614	0.245653934383614
-8416	6812	6813	0.412460631108446	0.412460631108446
-8418	6814	6815	0.174359151043162	0.174359151043162
-8419	6815	3109	0.176366303019304	0.176366303019304
-8420	3109	6816	0.193801807541949	0.193801807541949
-8421	6816	6817	0.0198367109802725	0.0198367109802725
-8422	6817	6104	0.210336723998741	0.210336723998741
-8424	6818	4370	0.0431318765981996	0.0431318765981996
-8426	2496	1451	0.0985317859583251	0.0985317859583251
-8427	1451	2853	0.10657030011201	0.10657030011201
-8428	2853	6819	0.0983314928072937	0.0983314928072937
-8429	6819	6665	0.0998633676523793	0.0998633676523793
-8430	6665	6820	0.100599054724802	0.100599054724802
-8431	6820	3821	0.10490937410086	0.10490937410086
-8432	3821	5897	0.102058293498771	0.102058293498771
-9656	6387	7441	0.131317068143471	0.131317068143471
-8433	5897	6821	0.102847878519627	0.102847878519627
-8435	1593	1644	0.201270216910902	0.201270216910902
-8436	1644	6822	0.105737900324602	0.105737900324602
-8437	6822	4218	0.0969375306307301	0.0969375306307301
-8438	4218	6823	0.101326281592707	0.101326281592707
-8439	6823	198	0.0969958932624718	0.0969958932624718
-8440	198	2927	0.100607212393453	0.100607212393453
-8441	2927	5309	0.0991277824360909	0.0991277824360909
-8442	5309	1465	0.0998634796625755	0.0998634796625755
-8445	1176	6825	0.181656671362534	0.181656671362534
-8447	6826	6827	0.865493060175873	0.865493060175873
-8448	3119	6828	0.283790323154486	0.283790323154486
-8450	3496	6829	0.0523352446605108	0.0523352446605108
-8451	6829	6830	0.0732524388814314	0.0732524388814314
-8452	6830	3663	0.0505681915693724	0.0505681915693724
-8453	3663	4996	0.130580462322132	0.130580462322132
-8455	6831	6247	0.199011000686174	0.199011000686174
-8456	6247	6832	0.199751548882436	0.199751548882436
-8458	1495	184	0.20195222577189	0.20195222577189
-8459	184	1712	0.203399715506048	0.203399715506048
-8460	1712	6833	0.205087968397347	0.205087968397347
-8461	6833	1578	0.200928350075194	0.200928350075194
-8463	6835	5869	0.177962583931279	0.177962583931279
-8464	5869	1321	0.176970219219333	0.176970219219333
-8465	1321	1377	0.177352733194459	0.177352733194459
-8466	1377	6836	0.0602165463968322	0.0602165463968322
-8467	6836	6837	0.0823104914192672	0.0823104914192672
-8468	6837	4694	0.116790101887087	0.116790101887087
-18756	1322	1378	0.175845021978343	0.175845021978343
-8469	4694	6838	0.160065096905242	0.160065096905242
-8470	6838	5335	0.187163981040998	0.187163981040998
-8471	5335	6839	0.265241255095212	0.265241255095212
-8473	4319	4507	0.0895898957022207	0.0895898957022207
-8474	4507	6840	0.0124803827841914	0.0124803827841914
-8475	6840	6841	0.091716588631721	0.091716588631721
-8476	6841	6842	0.00740292454463184	0.00740292454463184
-8477	6842	285	0.0146970591982782	0.0146970591982782
-8478	285	5069	0.0844368792913957	0.0844368792913957
-13551	9125	9126	0.0538488930045225	0.0538488930045225
-8479	5069	6837	0.103562524850142	0.103562524850142
-8480	6837	6843	0.0961927404969427	0.0961927404969427
-8481	6843	6844	0.0998943541512786	0.0998943541512786
-8482	6844	6845	0.102052212683234	0.102052212683234
-8483	6845	6846	0.456427940885819	0.456427940885819
-8484	6847	4419	0.193121729151288	0.193121729151288
-8485	4419	6848	0.226127592349504	0.226127592349504
-8486	6848	5329	0.136063050211474	0.136063050211474
-8488	4363	1444	0.202825103543368	0.202825103543368
-8489	1444	6849	0.200067420030691	0.200067420030691
-8490	6849	6850	0.207042581432814	0.207042581432814
-8491	6850	5890	0.198967544378973	0.198967544378973
-8493	6851	6852	0.0470486102019036	0.0470486102019036
-8494	6852	6853	0.0201453367541323	0.0201453367541323
-8495	6853	6854	0.0193839654418635	0.0193839654418635
-8496	6854	6855	0.0201881052382051	0.0201881052382051
-8497	6855	6856	0.0195037980214848	0.0195037980214848
-8498	6856	6857	0.0198459509091597	0.0198459509091597
-8499	6857	6858	0.0195037180586887	0.0195037180586887
-8500	6858	6859	0.0199058270401761	0.0199058270401761
-8501	6859	1871	0.0228399539785669	0.0228399539785669
-8504	6861	6862	0.100580939051626	0.100580939051626
-8505	6862	6863	0.206622253376394	0.206622253376394
-8506	6863	6377	0.103010255262607	0.103010255262607
-8507	6377	4832	0.10370389707419	0.10370389707419
-8508	4832	6717	0.103234622646169	0.103234622646169
-8509	6717	6864	0.103703073117676	0.103703073117676
-8510	6864	6865	0.0481477570236711	0.0481477570236711
-8512	5856	6866	0.107372117361429	0.107372117361429
-8513	6866	6867	0.050649728561771	0.050649728561771
-8514	6867	4989	0.0553571225017631	0.0553571225017631
-8515	4989	6868	0.101318948663251	0.101318948663251
-8518	6869	3823	0.172685696470764	0.172685696470764
-8520	6870	5902	0.0785311515160625	0.0785311515160625
-8521	5902	6871	0.0681549663304684	0.0681549663304684
-8522	6871	1996	0.0322361485277902	0.0322361485277902
-8523	1996	1587	0.080539505433719	0.080539505433719
-8524	1587	6872	0.0787299872144713	0.0787299872144713
-8525	6872	1652	0.0828966049530784	0.0828966049530784
-9751	2441	5738	0.170975903813153	0.170975903813153
-8528	6874	5702	0.0496353984033346	0.0496353984033346
-8529	5702	6875	0.0484896470155752	0.0484896470155752
-8530	6875	6876	0.0523105680266916	0.0523105680266916
-8531	6876	6877	0.100875098780012	0.100875098780012
-8532	6877	6878	0.0515810406741165	0.0515810406741165
-8533	6878	6879	0.0480493192441991	0.0480493192441991
-8534	6879	6532	0.0493288645061034	0.0493288645061034
-8535	6532	6880	0.0170276228852009	0.0170276228852009
-8537	1128	6881	0.0506249344560303	0.0506249344560303
-8538	6881	6882	0.0501120958003525	0.0501120958003525
-8539	6882	6883	0.0495209017571618	0.0495209017571618
-8540	6883	3846	0.0513776048731037	0.0513776048731037
-8541	3846	6884	0.0512508950828751	0.0512508950828751
-8542	6884	5564	0.0499163404494349	0.0499163404494349
-8543	5564	6885	0.0796596960320095	0.0796596960320095
-8544	6885	6886	0.709637932237075	0.709637932237075
-8545	3929	5619	0.0645570027229576	0.0645570027229576
-8546	5619	3704	0.0990278562894358	0.0990278562894358
-9775	2551	7512	0.408787216175776	0.408787216175776
-8547	3704	709	0.100036425190807	0.100036425190807
-8548	709	6887	0.100506522060904	0.100506522060904
-8549	6887	6888	0.0973098804153082	0.0973098804153082
-8550	6888	4190	0.138652686970481	0.138652686970481
-8551	4190	2516	0.130567043389136	0.130567043389136
-8552	2516	6727	0.134515842897036	0.134515842897036
-8553	6727	4804	0.136148376446663	0.136148376446663
-8555	6890	6891	0.127464290413413	0.127464290413413
-8558	4625	1248	0.132737908659339	0.132737908659339
-8560	4557	2726	0.131937670977173	0.131937670977173
-8561	2726	6892	0.133086814424956	0.133086814424956
-8562	6892	6893	0.0108053798662109	0.0108053798662109
-8564	6894	6753	0.13855912942418	0.13855912942418
-8565	6753	3977	0.202975190536315	0.202975190536315
-8567	4726	5125	0.0514216994322944	0.0514216994322944
-8569	6895	2262	0.104167713702112	0.104167713702112
-8570	2262	3612	0.100511868469799	0.100511868469799
-8571	3612	6896	0.101962634245626	0.101962634245626
-8572	6896	2111	0.0983046285910296	0.0983046285910296
-8573	2111	6000	0.10637347320659	0.10637347320659
-8574	6000	6897	0.0969032855683131	0.0969032855683131
-8575	6897	6898	1.19574032306189	1.19574032306189
-8576	3909	1049	0.101955415333633	0.101955415333633
-8577	1049	6280	0.110396580345644	0.110396580345644
-8580	4727	6902	0.104166457963925	0.104166457963925
-8581	6902	5404	0.105633279342784	0.105633279342784
-8582	5404	3137	0.103462723581867	0.103462723581867
-8583	3137	3910	0.106566211179802	0.106566211179802
-8585	6685	6904	0.1009798833353	0.1009798833353
-8586	6904	6905	0.0978861772455395	0.0978861772455395
-8588	6906	6907	0.0919209174538617	0.0919209174538617
-8589	6907	3448	0.0130685497791993	0.0130685497791993
-8590	3448	6908	0.0816132292801626	0.0816132292801626
-8591	6908	6909	0.0115722967665996	0.0115722967665996
-8592	6909	6910	0.0993816484498638	0.0993816484498638
-8593	6910	805	0.0976551438474913	0.0976551438474913
-8594	805	6911	0.0993747261569693	0.0993747261569693
-8595	6911	6912	0.089888887106785	0.089888887106785
-8596	6912	6913	0.0146747703329366	0.0146747703329366
-8598	6914	1237	0.101225406841245	0.101225406841245
-8600	4811	2178	0.0990205816012607	0.0990205816012607
-8602	596	6305	0.0508308915230223	0.0508308915230223
-8603	6305	350	0.0658146671565848	0.0658146671565848
-8604	350	6425	0.0344816945169531	0.0344816945169531
-8605	6425	6423	0.0330039992635189	0.0330039992635189
-8606	6423	5343	0.065281602891384	0.065281602891384
-8607	5343	4631	0.0645633414559121	0.0645633414559121
-8608	4631	4639	0.0344816846016407	0.0344816846016407
-8610	1260	4538	0.0975702004070908	0.0975702004070908
-8611	4538	4546	0.0337389213160247	0.0337389213160247
-8612	4546	6284	0.0652815653305245	0.0652815653305245
-8613	6284	2702	0.0682127836725729	0.0682127836725729
-8614	2702	2716	0.0295959518245788	0.0295959518245788
-8615	2716	6915	0.102272155307925	0.102272155307925
-8617	277	6916	0.0242091643473284	0.0242091643473284
-8618	6916	6917	0.127799932481727	0.127799932481727
-8620	6918	6919	0.100490474583826	0.100490474583826
-8621	6919	3936	0.103902551113693	0.103902551113693
-8623	5625	109	0.104159188317199	0.104159188317199
-9852	7555	7556	0.127428116197139	0.127428116197139
-8625	720	6920	0.107136629659166	0.107136629659166
-8626	6920	6921	0.0878190742496679	0.0878190742496679
-8627	6921	760	0.053327069779034	0.053327069779034
-8628	760	4203	0.0493954421158038	0.0493954421158038
-19719	10631	10629	0.0181769844157554	0.0181769844157554
-8629	4203	4204	0.0379739020862165	0.0379739020862165
-8630	4204	1070	0.0609601987006813	0.0609601987006813
-8631	1070	1071	0.0198138913639204	0.0198138913639204
-8632	1071	2506	0.0820743434648716	0.0820743434648716
-8634	6922	6923	0.0332474984310345	0.0332474984310345
-8635	6923	6924	0.0309457475923951	0.0309457475923951
-8636	6924	6925	0.06835161173269	0.06835161173269
-8641	2302	152	0.296479047850973	0.296479047850973
-8642	152	1739	0.201132602649999	0.201132602649999
-8643	1739	1717	0.0492912051446921	0.0492912051446921
-8645	6315	6820	0.175487833230143	0.175487833230143
-8646	6820	764	0.157172405718933	0.157172405718933
-8647	764	6004	0.389410143877071	0.389410143877071
-8648	6004	6244	0.10052021368651	0.10052021368651
-11455	8264	8265	0.215908830963319	0.215908830963319
-8649	6244	6929	0.161155152616492	0.161155152616492
-8651	6930	6931	0.00809135923630026	0.00809135923630026
-8652	6931	6869	0.0905079323611068	0.0905079323611068
-8653	6869	6932	0.702159216296169	0.702159216296169
-8654	4432	6933	0.289985249196455	0.289985249196455
-8655	6933	4666	0.0976954476351155	0.0976954476351155
-8656	4666	1333	0.0998446345260267	0.0998446345260267
-8657	1333	1388	0.0991189577824547	0.0991189577824547
-8658	1388	6935	0.105783123390058	0.105783123390058
-8659	6935	6850	0.108467199591529	0.108467199591529
-8660	6850	4706	0.0984536865396038	0.0984536865396038
-8661	4706	6936	0.0998638834924626	0.0998638834924626
-8662	6936	1757	0.0991299509071506	0.0991299509071506
-8664	2103	5985	0.0990139620475444	0.0990139620475444
-8665	5985	6937	0.103423317739921	0.103423317739921
-8666	6937	6938	0.197320023520399	0.197320023520399
-8667	6939	6940	0.0449145362146055	0.0449145362146055
-8668	6940	5016	0.051579913616047	0.051579913616047
-8670	6941	5111	0.0702390251054822	0.0702390251054822
-8671	5111	4709	0.111086762480312	0.111086762480312
-8672	4709	6805	0.12579570489738	0.12579570489738
-8673	6805	6942	0.0911912161186586	0.0911912161186586
-8674	6942	6943	0.0891583873267196	0.0891583873267196
-8675	6943	5415	0.0932705447088281	0.0932705447088281
-8676	5415	3141	0.0911590609752313	0.0911590609752313
-8677	3141	6944	0.0907415627456138	0.0907415627456138
-8678	6944	6945	0.0904253930261683	0.0904253930261683
-8679	6945	6282	0.0922034833120112	0.0922034833120112
-8680	6282	6946	0.0889556226914396	0.0889556226914396
-8681	6946	6947	0.115025423362082	0.115025423362082
-19720	10629	10630	0.00318458504180934	0.00318458504180934
-8684	4222	6948	0.095205143123347	0.095205143123347
-8685	6948	6949	0.0983217542586648	0.0983217542586648
-8686	6949	970	0.0973398284250994	0.0973398284250994
-8732	6248	6975	0.200150775141685	0.200150775141685
-8687	970	6950	0.0518030391212137	0.0518030391212137
-8688	6950	5288	0.0521176321182923	0.0521176321182923
-8689	5288	3153	0.0937167269922867	0.0937167269922867
-8690	3153	4969	0.095648805014101	0.095648805014101
-8691	4969	6951	0.121296465267735	0.121296465267735
-8717	1073	2508	0.0718764157350201	0.0718764157350201
-8692	6951	6952	0.17298014935093	0.17298014935093
-8694	2653	4114	0.0446473392844233	0.0446473392844233
-8695	4114	6503	0.0806749392848293	0.0806749392848293
-11460	8268	8269	0.0284404063889237	0.0284404063889237
-8696	6503	6953	0.0279965631557129	0.0279965631557129
-8698	6779	1327	0.149226176774822	0.149226176774822
-8700	4207	6955	0.0359776758472589	0.0359776758472589
-8701	6955	6956	0.0798254305300323	0.0798254305300323
-8702	4494	6957	0.0178038045740406	0.0178038045740406
-8703	6957	6958	0.00431775087438634	0.00431775087438634
-8704	6958	2148	0.120300859607691	0.120300859607691
-8705	2148	6960	0.151431823224066	0.151431823224066
-8706	6960	6961	0.22023318510828	0.22023318510828
-8707	6961	6962	0.137151335408755	0.137151335408755
-8708	6962	6963	0.0242055632480646	0.0242055632480646
-8709	6963	2150	0.0925314192010664	0.0925314192010664
-8710	2150	6964	0.068609567754435	0.068609567754435
-8712	6808	6965	0.180937589294771	0.180937589294771
-8713	6966	761	0.0469463147130834	0.0469463147130834
-8714	761	4205	0.0748160898012537	0.0748160898012537
-8715	4205	4398	0.0770157906569643	0.0770157906569643
-8716	4398	1073	0.0796290264805075	0.0796290264805075
-8746	6967	5689	0.127751851222379	0.127751851222379
-8719	271	2710	0.601401594481822	0.601401594481822
-11825	321	7799	0.115552151499094	0.115552151499094
-8720	2710	6969	0.136362355996719	0.136362355996719
-8721	6969	6742	0.135618421861975	0.135618421861975
-8722	6742	6141	0.132822121773709	0.132822121773709
-8723	6141	4014	0.136061285283967	0.136061285283967
-8724	4014	6970	0.13345730315891	0.13345730315891
-8725	6970	6971	0.133022272157071	0.133022272157071
-8726	6971	6972	0.0472485991851602	0.0472485991851602
-8727	6972	3385	0.0819883397602158	0.0819883397602158
-8729	6959	6973	0.0390638293285452	0.0390638293285452
-19721	10630	10622	0.0559555137804764	0.0559555137804764
-8731	6974	6248	0.201212600703242	0.201212600703242
-8733	6975	1496	0.201553427836696	0.201553427836696
-8734	1496	185	0.202686112287629	0.202686112287629
-8735	185	1713	0.204711477509581	0.204711477509581
-8736	1713	6976	0.201975316682274	0.201975316682274
-8737	6976	1579	0.167005027356132	0.167005027356132
-8738	1579	6977	0.309934492691155	0.309934492691155
-8739	1105	5871	0.176266848523138	0.176266848523138
-8740	5871	1323	0.177439022365804	0.177439022365804
-8741	1323	1379	0.176412320749863	0.176412320749863
-8742	1379	6978	0.0608448771470547	0.0608448771470547
-8744	6843	4695	0.114533137035158	0.114533137035158
-11961	2694	6570	0.292174399102456	0.292174399102456
-8745	4695	6967	0.15860414860374	0.15860414860374
-8747	5689	5336	0.153402847395547	0.153402847395547
-8749	6979	6980	0.0492417429246164	0.0492417429246164
-8750	6980	6981	0.0330798745582329	0.0330798745582329
-8751	6981	6982	0.110138574841473	0.110138574841473
-8756	6986	6701	0.0557097589480938	0.0557097589480938
-8757	6701	6987	0.145037158424782	0.145037158424782
-8759	6988	648	0.139238555969963	0.139238555969963
-8760	648	683	0.0653158999110773	0.0653158999110773
-8761	683	6989	0.0669742957793313	0.0669742957793313
-8762	6989	1988	0.0901527916408211	0.0901527916408211
-8763	1988	1972	0.0388238770836602	0.0388238770836602
-8764	1972	4588	0.104222260658419	0.104222260658419
-8765	4588	4594	0.0293535516568484	0.0293535516568484
-8766	4594	6498	0.0726584855189905	0.0726584855189905
-8767	6498	6481	0.0601855426433911	0.0601855426433911
-8768	6481	2470	0.141630886586724	0.141630886586724
-10003	6678	7628	0.0924131784678609	0.0924131784678609
-8771	6991	2401	0.344415463633539	0.344415463633539
-8772	2401	6992	0.121260728440928	0.121260728440928
-8773	6992	6604	0.426798504146684	0.426798504146684
-8774	6604	6993	0.0779497578426637	0.0779497578426637
-8775	6993	6994	0.328092841207435	0.328092841207435
-8776	6994	6997	0.409387625139532	0.409387625139532
-8777	6997	6998	0.0280465218891248	0.0280465218891248
-8778	6998	6999	0.240899685742567	0.240899685742567
-8780	7001	7002	0.172502393042501	0.172502393042501
-8781	7002	2338	0.177215228547836	0.177215228547836
-8782	2338	7003	0.175043780881437	0.175043780881437
-8783	7003	4782	0.243888745485023	0.243888745485023
-8784	4782	6558	0.132880580598771	0.132880580598771
-8785	6558	7004	0.106726338328234	0.106726338328234
-8787	2471	5909	0.20581191299575	0.20581191299575
-8789	7005	797	0.197387527656916	0.197387527656916
-10028	5604	7642	0.0520984767564003	0.0520984767564003
-8790	797	7006	0.203747525811746	0.203747525811746
-8793	7007	7008	0.196982052931457	0.196982052931457
-8794	7008	3062	0.205201724322207	0.205201724322207
-8795	3062	7009	0.184895139192435	0.184895139192435
-8796	7009	7010	0.0217892666308482	0.0217892666308482
-8798	7011	7012	0.200694925007541	0.200694925007541
-8799	7012	6367	0.0706060127631708	0.0706060127631708
-8800	6367	7013	0.13113311504647	0.13113311504647
-8801	7013	5949	0.203040029193448	0.203040029193448
-11962	6570	4451	0.149457420972406	0.149457420972406
-8802	5949	5141	0.190833355605879	0.190833355605879
-8804	2236	4909	0.189094446681925	0.189094446681925
-8805	4909	6613	0.199822606976101	0.199822606976101
-8806	6613	7014	0.196131290300381	0.196131290300381
-8807	7014	7015	0.207545863379423	0.207545863379423
-10052	7653	1099	0.0482102658012733	0.0482102658012733
-8809	4072	6057	0.192026411520301	0.192026411520301
-20532	10847	10848	0.0340308021704454	0.0340308021704454
-8810	6057	5797	0.200508266391225	0.200508266391225
-8812	7016	7017	0.20408918142509	0.20408918142509
-8813	7017	6590	0.201086157953578	0.201086157953578
-8814	6590	7018	0.202602619918689	0.202602619918689
-8816	7019	4577	0.129538344988774	0.129538344988774
-8817	4577	6441	0.138680608354748	0.138680608354748
-8818	6441	5293	0.134070515766336	0.134070515766336
-8819	5293	6970	0.13449026404854	0.13449026404854
-8820	6970	13	0.134902446032247	0.134902446032247
-8822	7020	382	0.124884712447894	0.124884712447894
-8823	382	7021	0.135229787557418	0.135229787557418
-8824	7021	7022	0.132193897477211	0.132193897477211
-8826	7023	7024	0.137222417835135	0.137222417835135
-8827	7024	7025	0.130431649234377	0.130431649234377
-8828	7025	7026	0.138849105164774	0.138849105164774
-8830	6206	7027	0.182945185531037	0.182945185531037
-8831	7027	7028	0.175756239821697	0.175756239821697
-20483	10830	10831	0.0908860058291454	0.0908860058291454
-8833	7029	7030	0.203242108673725	0.203242108673725
-8834	7030	7031	0.150413392817758	0.150413392817758
-8835	7031	2977	0.0550192556799276	0.0550192556799276
-8837	657	1886	0.0454008957908892	0.0454008957908892
-8838	1886	528	0.053551482812009	0.053551482812009
-8841	6092	1889	0.0508386682559075	0.0508386682559075
-8842	1889	7033	0.0498613554304776	0.0498613554304776
-8843	7033	7034	0.00951828955857414	0.00951828955857414
-8844	7034	7035	0.036894485571684	0.036894485571684
-8845	7035	6085	0.0480584959434146	0.0480584959434146
-8847	742	4527	0.0498820470218468	0.0498820470218468
-8848	4527	7036	0.0491481642660053	0.0491481642660053
-8849	7036	5246	0.0491592800418928	0.0491592800418928
-8850	5246	7037	0.0481362905740046	0.0481362905740046
-8851	7037	7038	0.0454453697348376	0.0454453697348376
-8852	7038	7039	0.0963504134151864	0.0963504134151864
-8853	7039	7040	0.0519319872070824	0.0519319872070824
-8854	7040	1663	0.0497523111621545	0.0497523111621545
-8855	1663	7041	0.0529510578680093	0.0529510578680093
-8856	7041	7042	0.0505381295725577	0.0505381295725577
-8857	7042	7043	0.0514848181594461	0.0514848181594461
-8858	7043	7044	0.0741692266458179	0.0741692266458179
-8861	7046	2493	0.132768776448504	0.132768776448504
-20533	10817	10849	0.0041587253937853	0.0041587253937853
-8864	2531	1932	0.0596099109005186	0.0596099109005186
-8865	1932	7047	0.205921914653592	0.205921914653592
-8867	7048	4043	0.179136537042624	0.179136537042624
-8868	4043	7049	0.176989263158491	0.176989263158491
-8869	7049	7050	0.100459005094488	0.100459005094488
-8871	7051	5531	0.109415807818528	0.109415807818528
-8872	5531	7052	0.29371056329192	0.29371056329192
-8874	7053	6824	0.0545745509742182	0.0545745509742182
-8875	6824	2424	0.081950775026488	0.081950775026488
-8876	2424	7054	0.050315704306832	0.050315704306832
-8877	7054	3228	0.0836964212853156	0.0836964212853156
-8879	4957	4034	0.0947298154946536	0.0947298154946536
-8881	7055	5863	0.174726781940175	0.174726781940175
-8882	5863	1311	0.179868913340571	0.179868913340571
-8883	1311	7056	0.241558820409428	0.241558820409428
-8885	7057	1506	0.131503726493835	0.131503726493835
-8886	1506	7058	0.131454642278669	0.131454642278669
-8888	1059	7059	0.104267738567829	0.104267738567829
-10122	3779	7683	0.15407703010384	0.15407703010384
-8890	4436	56	0.118965433489173	0.118965433489173
-8891	56	5316	0.100608812091724	0.100608812091724
-8892	5316	3496	0.0998861232245216	0.0998861232245216
-8893	3496	3665	0.201207219763356	0.201207219763356
-8894	3665	7060	0.199611951396181	0.199611951396181
-8895	7060	7061	0.203598851492666	0.203598851492666
-8896	7061	5840	0.200253664127546	0.200253664127546
-8897	5840	267	0.165246780486595	0.165246780486595
-8899	7062	7063	0.478103640034168	0.478103640034168
-8900	7064	5164	0.146200467670157	0.146200467670157
-8901	5164	6860	0.179928785347538	0.179928785347538
-8902	6860	7065	0.0135383927129561	0.0135383927129561
-8903	7065	2385	0.105505653234926	0.105505653234926
-8905	3637	7066	0.183542084850882	0.183542084850882
-8907	5956	7067	0.0986953923423101	0.0986953923423101
-8908	7067	3021	0.00874922983807779	0.00874922983807779
-20416	10767	10781	0.00791916641108638	0.00791916641108638
-8910	7068	4380	0.0528744797047038	0.0528744797047038
-8911	4380	7069	0.100067477522489	0.100067477522489
-8912	7069	7070	0.00503051016222424	0.00503051016222424
-8913	7070	7071	0.0533378396892988	0.0533378396892988
-8914	7071	7072	0.0517118729985249	0.0517118729985249
-8915	7072	7073	0.0528720185185965	0.0528720185185965
-8916	7073	7074	0.0524160104100909	0.0524160104100909
-8917	7074	7075	0.0591259627190951	0.0591259627190951
-8918	7075	7076	0.0472141967853771	0.0472141967853771
-8919	7076	7077	0.0523938554164358	0.0523938554164358
-8920	7077	7078	0.0519698920804767	0.0519698920804767
-18299	6996	6464	0.157978818539649	0.157978818539649
-18300	6464	5526	0.155386531700968	0.155386531700968
-8921	7078	7079	0.0533446665935528	0.0533446665935528
-8922	7079	6175	0.0539515629761608	0.0539515629761608
-8923	6175	7080	0.0522978151475426	0.0522978151475426
-19723	10628	10634	0.0467495933951474	0.0467495933951474
-8924	7080	3310	0.051621129553778	0.051621129553778
-8925	3310	7081	0.0537939712546602	0.0537939712546602
-8926	7081	7082	0.0517442194955157	0.0517442194955157
-8957	6821	767	0.155663516472162	0.155663516472162
-8928	6333	7083	0.0368397497726965	0.0368397497726965
-8930	7084	756	0.02205451477657	0.02205451477657
-8931	756	1542	0.146566188527195	0.146566188527195
-8933	7085	7086	0.470303961651379	0.470303961651379
-8936	6193	6949	0.198646201862192	0.198646201862192
-8937	6949	7088	0.203154460121287	0.203154460121287
-8938	7088	7089	0.0315254339634626	0.0315254339634626
-11963	4451	5499	0.142902063925945	0.142902063925945
-8939	1547	4267	0.203186762796229	0.203186762796229
-8940	4267	281	0.118834586231474	0.118834586231474
-8942	4988	5631	0.199717559309749	0.199717559309749
-8943	5631	2363	0.114164400355602	0.114164400355602
-8944	2363	4145	0.172388156251151	0.172388156251151
-8945	4145	4750	0.181329134759237	0.181329134759237
-8946	4750	7090	0.0742131518569267	0.0742131518569267
-8947	7090	6563	0.101353119972535	0.101353119972535
-8949	561	652	0.180277903435168	0.180277903435168
-8950	652	7091	0.1782898608686	0.1782898608686
-8951	7091	4618	0.177690137841113	0.177690137841113
-8952	4618	6484	0.148000947434632	0.148000947434632
-8953	6484	3683	0.147902463423831	0.147902463423831
-8955	7092	562	0.138318567115304	0.138318567115304
-14765	7355	5462	0.177046926118077	0.177046926118077
-8958	767	6719	0.219350766482543	0.219350766482543
-8959	6719	6005	0.0551645975375965	0.0551645975375965
-8961	7093	7094	0.0134618314671123	0.0134618314671123
-8962	7094	7095	0.0768336523164077	0.0768336523164077
-8964	4351	7096	0.187825105408858	0.187825105408858
-8966	5169	7097	0.173957232527163	0.173957232527163
-8967	7097	2358	0.178391537286392	0.178391537286392
-8968	2358	4158	0.173186099094122	0.173186099094122
-8969	4158	4745	0.175498953556533	0.175498953556533
-8970	4745	6540	0.175479189908249	0.175479189908249
-8971	6540	7098	0.165132887334241	0.165132887334241
-8974	900	4481	0.13673901951185	0.13673901951185
-8975	4481	2805	0.133564794339907	0.133564794339907
-8976	2805	5271	0.130621351715569	0.130621351715569
-8977	5271	6911	0.123597927289001	0.123597927289001
-8978	6911	7100	0.15221685519733	0.15221685519733
-8979	7100	6360	0.259362269049004	0.259362269049004
-8981	7102	704	0.204412961923	0.204412961923
-19726	10627	10635	0.0226092820114286	0.0226092820114286
-8984	7103	1210	0.168411442672594	0.168411442672594
-8985	1210	7104	0.0210253069731913	0.0210253069731913
-8986	7104	3769	0.199568149574658	0.199568149574658
-8987	3769	7105	0.154728508227155	0.154728508227155
-8988	7105	960	0.176377624617973	0.176377624617973
-8989	960	7106	0.174688777733473	0.174688777733473
-8990	7106	4897	0.160532597504136	0.160532597504136
-8991	4897	7107	0.182971792068578	0.182971792068578
-8992	7107	5494	0.175655210225522	0.175655210225522
-8994	7108	7109	0.103100291492917	0.103100291492917
-8995	7109	7110	0.101964294660044	0.101964294660044
-8998	7112	6130	0.00642185713601216	0.00642185713601216
-8999	6130	3973	0.100482235790598	0.100482235790598
-9000	3973	7018	0.0985643830580019	0.0985643830580019
-9001	7018	1404	0.0976294798550341	0.0976294798550341
-9002	1404	7113	0.0934722476940573	0.0934722476940573
-9003	7113	3377	0.114974498647875	0.114974498647875
-9004	3377	5719	0.0923374297912636	0.0923374297912636
-9006	4633	4552	0.211900461491767	0.211900461491767
-9008	7114	1219	0.0873426128412716	0.0873426128412716
-9009	1219	7115	0.154859667381265	0.154859667381265
-9011	128	4195	0.0990809801322014	0.0990809801322014
-9012	4195	2526	0.225168737431611	0.225168737431611
-9015	7118	7119	0.0484685816363468	0.0484685816363468
-9016	7119	6647	0.0431240450937402	0.0431240450937402
-9017	6647	7120	0.0651283567093235	0.0651283567093235
-9020	7121	5612	0.0589161599786899	0.0589161599786899
-9021	5612	7122	0.0519812671049742	0.0519812671049742
-9022	7122	3734	0.0556068739901258	0.0556068739901258
-9024	4852	7123	0.126059374848785	0.126059374848785
-9025	7123	7124	0.118149722641793	0.118149722641793
-9026	7124	7125	0.121835161075312	0.121835161075312
-9027	7125	7126	0.110094663779518	0.110094663779518
-9028	7126	4678	0.101155068622002	0.101155068622002
-9029	4678	4925	0.0375558738681089	0.0375558738681089
-9031	7127	5718	0.122304701667431	0.122304701667431
-9033	7129	7130	0.00755996146089403	0.00755996146089403
-11437	7984	8034	0.589388539362218	0.589388539362218
-9034	7130	7131	0.0405147672355999	0.0405147672355999
-15917	9748	9104	0.13371062185673	0.13371062185673
-9036	7132	7133	0.0505601360898234	0.0505601360898234
-9037	7133	7134	0.050337833066874	0.050337833066874
-9039	2563	2043	0.341755774769512	0.341755774769512
-9040	2043	4280	0.587618591665046	0.587618591665046
-9041	4280	2317	0.145996435168453	0.145996435168453
-9042	2317	7135	0.26875426467805	0.26875426467805
-9044	4276	6167	0.145395831525207	0.145395831525207
-9045	6167	7136	0.583394412429138	0.583394412429138
-9046	7136	7137	0.0430989040252276	0.0430989040252276
-9048	7138	7139	0.17847978963111	0.17847978963111
-9049	7139	665	0.00426988518248375	0.00426988518248375
-9050	665	7140	0.0039363004033923	0.0039363004033923
-9051	7140	7141	0.126828000444838	0.126828000444838
-9052	7141	7142	0.0463243816448395	0.0463243816448395
-9053	7142	4606	0.175854779813893	0.175854779813893
-13036	8929	8930	0.492762775909981	0.492762775909981
-9054	4606	2885	0.129583918723674	0.129583918723674
-9056	818	3559	0.139007675873083	0.139007675873083
-9057	3559	5633	0.138607438022671	0.138607438022671
-9060	5632	7143	0.0971697431213832	0.0971697431213832
-9061	7143	4337	0.0573209846859246	0.0573209846859246
-9062	4337	6336	0.137619327969477	0.137619327969477
-9063	6336	3051	0.138690015537613	0.138690015537613
-9064	3051	7144	0.13740372400277	0.13740372400277
-9065	7144	7145	0.00531536492655497	0.00531536492655497
-9066	7145	7146	0.138359891845979	0.138359891845979
-9069	873	4461	0.138000198054367	0.138000198054367
-9070	4461	2781	0.134827246932882	0.134827246932882
-9073	6941	5768	0.263560531238909	0.263560531238909
-9074	5768	7148	0.00867578094755507	0.00867578094755507
-9075	6325	4168	0.192770537182593	0.192770537182593
-9076	4168	4753	0.208190261859574	0.208190261859574
-9077	4753	6544	0.199662965025148	0.199662965025148
-9078	6544	7149	0.203286576405629	0.203286576405629
-9079	7149	7150	0.188877376950956	0.188877376950956
-9080	7150	3796	0.199750569153682	0.199750569153682
-9081	3796	5939	0.152615142478991	0.152615142478991
-9082	5939	940	0.17776127985835	0.17776127985835
-9083	940	2224	0.184599395002716	0.184599395002716
-9084	2224	4874	0.160770298676863	0.160770298676863
-9085	4874	7151	0.191866995309803	0.191866995309803
-9086	7151	5472	0.170431656658562	0.170431656658562
-9087	5472	7152	0.177051030738846	0.177051030738846
-9089	7153	7154	0.0893451644905786	0.0893451644905786
-9090	7154	6170	0.0753374734775839	0.0753374734775839
-9091	6170	4764	0.177646502224828	0.177646502224828
-9092	4764	4150	0.173084945690311	0.173084945690311
-9094	2344	7155	0.117646857783728	0.117646857783728
-9095	7155	7156	0.0188390787773898	0.0188390787773898
-9096	7156	7157	0.234434662963778	0.234434662963778
-9097	7157	7158	0.0252454738977112	0.0252454738977112
-9100	7159	7160	0.136141908223257	0.136141908223257
-9101	7160	7161	0.134175303690261	0.134175303690261
-9102	7161	5540	0.104957650418394	0.104957650418394
-9103	5540	2408	0.0972515972300324	0.0972515972300324
-9104	2408	4293	0.0986699082335262	0.0986699082335262
-9105	4293	7163	0.053830719074408	0.053830719074408
-9107	7164	7165	0.0631810706690825	0.0631810706690825
-9108	7165	2982	0.341967827784909	0.341967827784909
-9109	2982	7166	0.203801982791161	0.203801982791161
-9110	7166	7167	0.199088364823678	0.199088364823678
-9111	7167	7168	0.00801722711592813	0.00801722711592813
-9112	7168	7169	0.0420988990456398	0.0420988990456398
-9113	7169	7170	0.153973329045923	0.153973329045923
-9114	7170	6877	0.206323620437175	0.206323620437175
-9115	6877	1688	0.202556013709455	0.202556013709455
-10335	2984	7779	0.0471482180711068	0.0471482180711068
-9116	1688	7171	0.203959165094635	0.203959165094635
-9117	7171	2434	0.200457262733771	0.200457262733771
-9118	2434	7172	0.202529539970889	0.202529539970889
-9119	7172	6459	0.289084578375032	0.289084578375032
-19730	5374	10637	0.0120223368882016	0.0120223368882016
-9120	6459	7173	0.114101346723939	0.114101346723939
-9121	7173	7174	0.184116579370581	0.184116579370581
-9122	7174	7175	0.203885371802177	0.203885371802177
-9123	7175	7176	0.042345014713444	0.042345014713444
-9124	7176	7177	0.0543545796747623	0.0543545796747623
-9125	7177	1424	0.112240471555906	0.112240471555906
-9128	7179	6066	0.193267920890686	0.193267920890686
-9129	6066	2546	0.202503184194707	0.202503184194707
-9130	2546	7180	0.41050413821522	0.41050413821522
-9131	6215	7181	0.274932291342238	0.274932291342238
-9132	7181	7182	0.263103709588239	0.263103709588239
-9133	7182	7183	0.130644941399459	0.130644941399459
-9134	2594	5185	0.17867940782894	0.17867940782894
-9137	5066	4054	0.176950276628118	0.176950276628118
-9138	4054	7184	0.19508037930475	0.19508037930475
-19295	10466	10470	0.0590667450333129	0.0590667450333129
-9139	7184	1855	0.159486883286254	0.159486883286254
-9140	1855	2595	0.177991984486361	0.177991984486361
-9142	7132	7185	0.200740739267956	0.200740739267956
-9144	317	5720	0.10120960072344	0.10120960072344
-9146	7186	7178	0.0998150102985703	0.0998150102985703
-9147	7178	7187	0.0486556483534758	0.0486556483534758
-9148	7187	7188	0.0504244958733159	0.0504244958733159
-9149	7188	6720	0.0492257170939005	0.0492257170939005
-9150	6720	1139	0.0498554245278369	0.0498554245278369
-9151	1139	6900	0.0496729718772752	0.0496729718772752
-9152	6900	7189	0.0498269762893686	0.0498269762893686
-9153	7189	7190	0.0493080365100491	0.0493080365100491
-9154	7190	3869	0.0507905077365378	0.0507905077365378
-9155	3869	7191	0.0511248031667964	0.0511248031667964
-9156	7191	5583	0.0514153335527058	0.0514153335527058
-9158	6374	7192	0.0508291685906189	0.0508291685906189
-9159	7192	4828	0.0505211822659055	0.0505211822659055
-9160	4828	7193	0.0991435070786191	0.0991435070786191
-9161	7193	7194	0.0991520630524694	0.0991520630524694
-9162	7194	7195	0.0477883926406413	0.0477883926406413
-9163	7195	7196	0.0494484339552123	0.0494484339552123
-9164	7196	7197	0.0162046310747774	0.0162046310747774
-9166	7198	6674	0.0990044216409842	0.0990044216409842
-9167	6674	3118	0.097669089391913	0.097669089391913
-9168	3118	7199	0.284505571449601	0.284505571449601
-9169	7199	6008	0.094118222257641	0.094118222257641
-9170	6008	2844	0.0930401433253343	0.0930401433253343
-9171	2844	3493	0.0866696350082772	0.0866696350082772
-9172	3493	5349	0.0889131869713594	0.0889131869713594
-9174	5392	2946	0.0903397575627338	0.0903397575627338
-9175	2946	6812	0.0903546565690543	0.0903546565690543
-9176	6812	1813	0.0889131954631002	0.0889131954631002
-9179	7201	7202	0.0514316470718889	0.0514316470718889
-9180	7202	571	0.0452247620537137	0.0452247620537137
-9181	571	4984	0.0498774301127379	0.0498774301127379
-9182	4984	7203	0.0499341834444621	0.0499341834444621
-9183	7203	7204	0.048540539361363	0.048540539361363
-9184	7204	7205	0.049454954432791	0.049454954432791
-9185	7205	7206	0.0536988191890685	0.0536988191890685
-9186	7206	7207	0.0531339953218732	0.0531339953218732
-9188	7208	7209	0.0488986834694409	0.0488986834694409
-10408	7087	974	0.0520701135747565	0.0520701135747565
-9190	3616	7210	0.0490025655343953	0.0490025655343953
-9191	7210	7211	0.0492346778344629	0.0492346778344629
-9192	7211	6627	0.0474835705848566	0.0474835705848566
-9193	6627	7212	0.0259857221754392	0.0259857221754392
-9195	7213	2937	0.0797219985274474	0.0797219985274474
-9197	4927	7214	0.0675624031978383	0.0675624031978383
-9198	7214	7215	0.172837829649445	0.172837829649445
-9199	7215	7216	0.0152456900319388	0.0152456900319388
-9201	7217	7218	0.150068688599712	0.150068688599712
-9202	7218	3717	0.0523950557178934	0.0523950557178934
-9203	3717	7219	0.104026300075926	0.104026300075926
-9204	7219	7220	0.176478214187187	0.176478214187187
-9205	7220	2618	0.176744455093666	0.176744455093666
-9206	2618	7221	0.0524078444870275	0.0524078444870275
-9207	7221	5199	0.124408908082812	0.124408908082812
-9208	5199	6236	0.175254349133775	0.175254349133775
-9209	6236	7222	0.181371367707484	0.181371367707484
-9210	7222	7223	0.17624861030264	0.17624861030264
-10431	7818	3372	0.256942906695214	0.256942906695214
-9211	7223	7224	0.177882160330428	0.177882160330428
-9212	7224	6596	0.176655139096338	0.176655139096338
-9213	6596	7225	0.176764713771947	0.176764713771947
-9214	7225	7117	0.195263815592674	0.195263815592674
-9215	7117	7226	0.162883394969853	0.162883394969853
-9217	7227	7228	0.0929813395053153	0.0929813395053153
-9218	7228	7229	0.0382886967355643	0.0382886967355643
-9220	5754	5537	0.136674994706822	0.136674994706822
-9222	7230	2419	0.0601608416165443	0.0601608416165443
-9224	7231	1877	0.0370441528846065	0.0370441528846065
-9225	1877	7232	0.131692111532173	0.131692111532173
-9227	7233	7234	0.109254283787097	0.109254283787097
-9228	7234	7235	0.0988980977520615	0.0988980977520615
-9229	7235	7236	0.100150595242985	0.100150595242985
-9230	7236	7237	0.0982491727225652	0.0982491727225652
-9231	7237	7238	0.102801611377818	0.102801611377818
-9232	7238	3624	0.10072637054969	0.10072637054969
-9233	3624	7239	0.0490877236423196	0.0490877236423196
-9234	7239	7240	0.0506406047895119	0.0506406047895119
-9236	7241	7242	0.053434962453162	0.053434962453162
-9238	7243	2049	0.0999533143701506	0.0999533143701506
-9239	2049	6322	0.101276003642563	0.101276003642563
-9240	6322	7245	0.101332248433824	0.101332248433824
-9241	7245	7246	0.0464773018813961	0.0464773018813961
-9242	7246	3478	0.0519094915924	0.0519094915924
-9243	3478	7247	0.0444674652348498	0.0444674652348498
-9244	7247	6076	0.0542711695249793	0.0542711695249793
-9245	6076	7248	0.0457685619049607	0.0457685619049607
-9246	7248	3693	0.0511581578497335	0.0511581578497335
-9247	3693	7249	0.0484213428818718	0.0484213428818718
-9248	7249	4568	0.050423249762551	0.050423249762551
-9249	4568	7250	0.105671525256593	0.105671525256593
-9251	3486	5352	0.142707971743977	0.142707971743977
-9252	5352	5389	0.0672375375003041	0.0672375375003041
-9254	6807	7251	0.174038770872886	0.174038770872886
-9255	5582	7252	0.0700127444942287	0.0700127444942287
-9256	3438	7253	0.0456922323357007	0.0456922323357007
-9257	7253	5712	0.0536735809918437	0.0536735809918437
-9258	5712	7254	0.0996465050991051	0.0996465050991051
-9259	7254	7177	0.0990312619116669	0.0990312619116669
-9261	2234	5135	0.107869698056021	0.107869698056021
-9263	5150	4905	0.0686856789021931	0.0686856789021931
-9264	4905	6617	0.200618729294218	0.200618729294218
-9265	6617	7255	0.197431040074393	0.197431040074393
-9266	7255	7256	0.208183749937444	0.208183749937444
-9267	7256	645	0.141740585620374	0.141740585620374
-9268	645	7257	0.130628958724451	0.130628958724451
-9269	7257	1991	0.0908850253123808	0.0908850253123808
-9270	1991	1975	0.0373563291181619	0.0373563291181619
-9271	1975	4592	0.133760117820733	0.133760117820733
-9272	4592	6479	0.133361447138617	0.133361447138617
-9273	6479	2465	0.142787478559072	0.142787478559072
-9275	7258	905	0.276860539558146	0.276860539558146
-9276	905	7259	0.128469118479352	0.128469118479352
-9278	7260	7261	0.202325557275685	0.202325557275685
-9279	7261	7262	0.200099452464053	0.200099452464053
-9281	6555	7263	0.106048977208119	0.106048977208119
-9283	2464	5907	0.204805215249635	0.204805215249635
-9284	5907	7264	0.200064951669816	0.200064951669816
-9285	7264	792	0.198575253788857	0.198575253788857
-9286	792	7265	0.203153130979463	0.203153130979463
-20553	10855	10830	0.00226863418878014	0.00226863418878014
-9287	7265	4356	0.200718125919129	0.200718125919129
-9288	4356	7266	0.203231013450801	0.203231013450801
-9289	7266	3059	0.208369469805255	0.208369469805255
-9290	3059	7267	0.184116398047724	0.184116398047724
-9292	7268	7269	0.172274443384772	0.172274443384772
-9293	7269	7270	0.174965358395498	0.174965358395498
-9294	7270	7271	0.171051925436011	0.171051925436011
-9295	7271	4777	0.251271094456806	0.251271094456806
-9297	7272	7273	0.142786274588455	0.142786274588455
-9298	7273	7257	0.143845033730321	0.143845033730321
-9299	7257	2012	0.148104007431453	0.148104007431453
-9300	2012	7274	0.146908840218292	0.146908840218292
-9303	3209	6121	0.198338421830571	0.198338421830571
-9305	1920	7245	0.200452444306493	0.200452444306493
-9306	7245	3264	0.201454965709232	0.201454965709232
-9307	3264	7275	0.199928677430985	0.199928677430985
-9308	7275	75	0.205218774272454	0.205218774272454
-9309	75	3514	0.203667659516003	0.203667659516003
-9310	3514	4256	0.200449218475779	0.200449218475779
-9312	7276	7277	0.199018039984475	0.199018039984475
-9314	3099	7278	0.127218718588174	0.127218718588174
-9315	7279	7280	0.0142903725965103	0.0142903725965103
-9316	7280	7281	0.105207552208829	0.105207552208829
-9317	7282	7283	0.0344899807253543	0.0344899807253543
-9318	7283	221	0.0709873405596775	0.0709873405596775
-9319	221	484	0.00880336166381634	0.00880336166381634
-9320	484	7284	0.0467023879280561	0.0467023879280561
-9321	7284	7285	0.0520434565562666	0.0520434565562666
-9322	7285	7286	0.0966986010135768	0.0966986010135768
-9324	7287	7288	0.0474221057340072	0.0474221057340072
-9325	7288	7289	0.0544896557893494	0.0544896557893494
-18313	7291	7292	0.0491935106031602	0.0491935106031602
-12266	8623	8624	0.00987394368395642	0.00987394368395642
-9326	7289	7293	0.050792182381771	0.050792182381771
-9327	7293	7294	0.0490541601102182	0.0490541601102182
-9328	7294	3625	0.0491311379128154	0.0491311379128154
-9329	3625	7295	0.0500044548990436	0.0500044548990436
-9330	7295	7296	0.0493114932484129	0.0493114932484129
-9331	7296	7297	0.0492273088766844	0.0492273088766844
-9332	7297	7298	0.0497149327544833	0.0497149327544833
-9333	7298	7299	0.052416983039433	0.052416983039433
-9334	7299	1775	0.0489179547921138	0.0489179547921138
-9335	1775	7300	0.0992252392752366	0.0992252392752366
-9338	1523	7301	0.0991304181855472	0.0991304181855472
-9340	4180	7302	0.159005264658095	0.159005264658095
-9342	7303	7304	0.0508070845581107	0.0508070845581107
-9344	2051	7305	0.0464895652372381	0.0464895652372381
-9346	6323	7306	0.0487652334573382	0.0487652334573382
-9347	7306	7275	0.0511008721086019	0.0511008721086019
-9348	7275	7307	0.0472167292045061	0.0472167292045061
-9349	7307	3479	0.0519136696037329	0.0519136696037329
-9350	3479	7308	0.0469673771341736	0.0469673771341736
-9351	7308	6077	0.0514245726695928	0.0514245726695928
-9353	7309	3694	0.0517124258100223	0.0517124258100223
-9354	3694	7310	0.0465067719763774	0.0465067719763774
-9355	7310	4569	0.0489536209610463	0.0489536209610463
-9356	4569	7311	0.0489635595580148	0.0489635595580148
-9357	7311	7312	0.0558091568866214	0.0558091568866214
-9359	5166	6862	0.178524347295205	0.178524347295205
-10575	7382	7866	0.0530283440074436	0.0530283440074436
-9361	5665	7313	0.0484754519993524	0.0484754519993524
-9362	7313	7314	0.161386441141289	0.161386441141289
-9363	7314	57	0.142345062746265	0.142345062746265
-9365	3497	7315	0.199650199137315	0.199650199137315
-9366	7315	7316	0.20195222577189	0.20195222577189
-9368	7317	7318	0.0198371749129227	0.0198371749129227
-9369	7318	2347	0.132104544578518	0.132104544578518
-9370	2347	4152	0.17573096379452	0.17573096379452
-9371	4152	4739	0.172852869151079	0.172852869151079
-9372	4739	6534	0.176755786446123	0.176755786446123
-9373	6534	7319	0.165399065875657	0.165399065875657
-9376	1193	7321	0.0221951663944447	0.0221951663944447
-9377	7321	3785	0.200018254719297	0.200018254719297
-9379	6356	2387	0.110864888603468	0.110864888603468
-9380	2387	7322	0.139379472361554	0.139379472361554
-9381	7322	7323	0.046481070265731	0.046481070265731
-9382	7323	745	0.0926146092564692	0.0926146092564692
-9383	745	1563	0.142337228385207	0.142337228385207
-9384	1563	7324	0.139015648234869	0.139015648234869
-9385	7324	7325	0.121637038292373	0.121637038292373
-9387	7326	1054	0.0187920378071022	0.0187920378071022
-9388	1054	7327	0.1804815052178	0.1804815052178
-9389	7327	7328	0.200952784069958	0.200952784069958
-9390	7328	2873	0.135770477885413	0.135770477885413
-9391	2873	7329	0.140734857106897	0.140734857106897
-9392	7329	7330	0.130551116437319	0.130551116437319
-9394	3573	5641	0.135671111475822	0.135671111475822
-9395	5641	4346	0.139178472263861	0.139178472263861
-9397	6344	3047	0.139334930188281	0.139334930188281
-9398	3047	7331	0.13779347001033	0.13779347001033
-9399	7331	7332	0.00320242529462838	0.00320242529462838
-9400	7332	7333	0.124149220639337	0.124149220639337
-9401	7333	7334	0.0152895413448354	0.0152895413448354
-9402	7334	1168	0.139240705026111	0.139240705026111
-9403	1168	888	0.137184892852111	0.137184892852111
-9404	888	4473	0.140290329638987	0.140290329638987
-9405	4473	2795	0.133122605689938	0.133122605689938
-18387	8972	8990	0.0135489498420418	0.0135489498420418
-9406	2795	5263	0.132274155849312	0.132274155849312
-9408	5264	7335	0.142105114812744	0.142105114812744
-9409	7336	7337	0.0976207961374284	0.0976207961374284
-9410	7337	4886	0.157275932372423	0.157275932372423
-9411	4886	7338	0.185720302610988	0.185720302610988
-9412	7338	5484	0.174899259954025	0.174899259954025
-9413	5484	7339	0.200596009359583	0.200596009359583
-9415	7001	7340	0.179314344082203	0.179314344082203
-9416	7340	3105	0.172536320867715	0.172536320867715
-9417	3105	7341	0.196295851159965	0.196295851159965
-9418	7341	7342	0.0146987319128723	0.0146987319128723
-9419	7342	5274	0.233778976885029	0.233778976885029
-9421	61	3550	0.201334976523304	0.201334976523304
-9423	4229	1512	0.0573285646726125	0.0573285646726125
-9424	1512	1812	0.080316497766985	0.080316497766985
-9425	1812	1792	0.0864981124104349	0.0864981124104349
-9426	1792	5766	0.0789087886834876	0.0789087886834876
-9427	5766	7199	0.0992911764787047	0.0992911764787047
-9428	7199	6828	0.11119492664509	0.11119492664509
-9429	6828	5849	0.0944254133826228	0.0944254133826228
-9430	5849	6009	0.0132155676036954	0.0132155676036954
-9431	6009	6306	0.0820521132716854	0.0820521132716854
-9432	6306	7343	0.105450198242036	0.105450198242036
-9433	7343	6621	0.143519415278471	0.143519415278471
-9434	6621	7344	1.27038946039582	1.27038946039582
-9437	4173	4758	0.21160422195521	0.21160422195521
-9439	7347	7348	0.135937832662874	0.135937832662874
-9440	7348	7349	0.00392915540186096	0.00392915540186096
-9441	7349	7350	0.00435925191977174	0.00435925191977174
-9442	7350	7351	0.134680718743296	0.134680718743296
-9443	7351	7352	0.142353643667365	0.142353643667365
-9444	7352	822	0.136144392169031	0.136144392169031
-9445	822	3563	0.139511434934294	0.139511434934294
-9447	4757	6547	0.198421257470946	0.198421257470946
-9448	6547	7353	0.203512578195826	0.203512578195826
-9449	7353	7354	0.189733642798723	0.189733642798723
-9450	7354	3791	0.198902472958717	0.198902472958717
-9452	7356	1156	0.139895555737197	0.139895555737197
-9453	1156	877	0.139167763247538	0.139167763247538
-9454	877	4465	0.138362926550376	0.138362926550376
-9455	4465	2785	0.134223449290719	0.134223449290719
-9456	2785	5256	0.132255447080442	0.132255447080442
-10701	7933	7934	0.0165824928197296	0.0165824928197296
-9457	5256	6902	0.213396689593523	0.213396689593523
-9458	6902	7357	0.137952680025601	0.137952680025601
-9460	7358	7359	0.0873817304884455	0.0873817304884455
-9461	7359	5476	0.17425617170475	0.17425617170475
-9462	5476	7360	0.176755476074969	0.176755476074969
-9463	7360	7361	0.179271064370159	0.179271064370159
-9464	7361	670	0.00299320804688776	0.00299320804688776
-9465	670	7362	0.00367138449467953	0.00367138449467953
-9466	7362	7363	0.175413304982356	0.175413304982356
-9467	7363	4602	0.174300257248449	0.174300257248449
-9468	4602	6494	0.14109328269368	0.14109328269368
-9470	6339	3027	0.140999530277673	0.140999530277673
-9471	3027	7364	0.134294188280294	0.134294188280294
-9472	7364	7367	0.00539295394286677	0.00539295394286677
-9473	7367	7368	0.0958510973743428	0.0958510973743428
-9474	7369	7370	0.0190810494123846	0.0190810494123846
-9475	7370	4174	0.200419085556528	0.200419085556528
-9476	4174	4759	0.205255972403598	0.205255972403598
-9478	7371	1504	0.200818042076817	0.200818042076817
-9479	1504	177	0.202381091183512	0.202381091183512
-9481	7048	5860	0.176960295698989	0.176960295698989
-9482	5860	1308	0.177680958846967	0.177680958846967
-9483	1308	7372	0.242287040915104	0.242287040915104
-9485	7373	7374	0.0554606112260645	0.0554606112260645
-9486	7374	6759	0.139083865409791	0.139083865409791
-9487	6759	3983	0.201208667852087	0.201208667852087
-9488	3983	7042	0.200146227687253	0.200146227687253
-9489	7042	3429	0.200588668938452	0.200588668938452
-9491	7375	7376	0.134975501915893	0.134975501915893
-9492	7376	2494	0.132763759551609	0.132763759551609
-9493	2494	2841	0.125447252672452	0.125447252672452
-9495	7377	1766	0.0535653036014808	0.0535653036014808
-9496	1766	7378	0.148946577862237	0.148946577862237
-9497	7378	7379	0.151136159766357	0.151136159766357
-9498	7379	2978	0.0542010510807056	0.0542010510807056
-9500	6210	7380	0.184339220967731	0.184339220967731
-9501	7380	7381	0.177783326711723	0.177783326711723
-9503	7055	4046	0.178402656739544	0.178402656739544
-9504	4046	7382	0.177334708763743	0.177334708763743
-9505	7382	1847	0.175265460280809	0.175265460280809
-9506	1847	2581	0.177411624203835	0.177411624203835
-9508	5179	7383	0.0621659509396009	0.0621659509396009
-9510	7384	5530	0.101603812835917	0.101603812835917
-9511	5530	6476	0.0959541548395336	0.0959541548395336
-9512	6476	7385	0.197309689587966	0.197309689587966
-9514	7386	4578	0.133367493492184	0.133367493492184
-9515	4578	6442	0.135224444657643	0.135224444657643
-9516	6442	5294	0.135202388191056	0.135202388191056
-9517	5294	6971	0.132090452543352	0.132090452543352
-9519	7387	6793	0.0526421759963202	0.0526421759963202
-9520	6793	2426	0.0832334466071371	0.0832334466071371
-9521	2426	7292	0.0515611894823623	0.0515611894823623
-9522	7292	3230	0.0818841223845197	0.0818841223845197
-9523	3230	7388	0.142866769580008	0.142866769580008
-9525	7389	7390	0.203322823967769	0.203322823967769
-9529	7391	7392	0.135325738854945	0.135325738854945
-9530	7392	7393	0.132395815694125	0.132395815694125
-9531	7393	7394	0.135014881681412	0.135014881681412
-9532	7394	7395	0.132077333868835	0.132077333868835
-9535	7397	621	0.0257970801977961	0.0257970801977961
-9537	4075	6060	0.199263565882924	0.199263565882924
-9538	6060	5800	0.199550446273018	0.199550446273018
-9540	7398	3097	0.199450454556748	0.199450454556748
-9541	3097	3207	0.202536688546866	0.202536688546866
-9542	3207	6119	0.201707926741417	0.201707926741417
-9543	6119	1917	0.201109266380341	0.201109266380341
-9544	1917	7243	0.20045244430598	0.20045244430598
-9545	7243	594	0.202390514467061	0.202390514467061
-9547	7399	5843	0.208569621956493	0.208569621956493
-9549	7400	5659	0.10300363118025	0.10300363118025
-9550	5659	7401	0.0544972381418925	0.0544972381418925
-9552	6194	6950	0.191455920710939	0.191455920710939
-9553	6950	7402	0.209004541630565	0.209004541630565
-9555	4943	7403	0.0144437903083984	0.0144437903083984
-9556	7403	3000	0.101061674656442	0.101061674656442
-9558	6639	3962	0.136668682711291	0.136668682711291
-9559	3962	4361	0.121869293781819	0.121869293781819
-20411	9207	10780	0.0112983850763668	0.0112983850763668
-9561	5171	5225	0.145976272368254	0.145976272368254
-9562	5225	1866	0.0654044096593951	0.0654044096593951
-9563	1866	5084	0.0770856255669816	0.0770856255669816
-9564	5084	2809	0.113066726070966	0.113066726070966
-9565	2809	3368	0.152693063908693	0.152693063908693
-9566	3368	7404	0.0530057643448654	0.0530057643448654
-9567	7404	4944	0.0497811011847154	0.0497811011847154
-9568	4944	7405	0.0515530101953733	0.0515530101953733
-9569	7405	7217	0.0502978935844785	0.0502978935844785
-9570	7217	7406	0.0537233169488665	0.0537233169488665
-9571	7406	7407	0.0412354910733997	0.0412354910733997
-9572	6416	4212	0.100784166153009	0.100784166153009
-9573	4212	190	0.175257609965618	0.175257609965618
-9574	190	4532	0.201882877149858	0.201882877149858
-9575	4532	5431	0.198227529862783	0.198227529862783
-9576	5431	5972	0.107244272330712	0.107244272330712
-9577	5972	2255	0.104270609577454	0.104270609577454
-9578	2255	6131	0.104982960169425	0.104982960169425
-9579	6131	3998	0.104249966263654	0.104249966263654
-9580	3998	7048	0.105712541492873	0.105712541492873
-9581	7048	1393	0.105952500116488	0.105952500116488
-9583	7408	7055	0.0530917174300864	0.0530917174300864
-9584	7055	7409	0.0515249594325266	0.0515249594325266
-9585	7409	3389	0.0512512544679775	0.0512512544679775
-9586	3389	7410	0.0515249594325266	0.0515249594325266
-9587	7410	4504	0.051986836558228	0.051986836558228
-9588	4504	3539	0.0507992547126353	0.0507992547126353
-9589	3539	7411	0.0505170014633714	0.0505170014633714
-9590	7411	7412	0.0515690276546841	0.0515690276546841
-9592	5066	6400	0.0525526328752235	0.0525526328752235
-9593	6400	6835	0.0526723733629873	0.0526723733629873
-9594	6835	7413	0.0505686622438464	0.0505686622438464
-9595	7413	1105	0.0506198937481409	0.0506198937481409
-9596	1105	7414	0.0824276303743622	0.0824276303743622
-9598	3863	7415	0.0529481461592885	0.0529481461592885
-9599	7415	6656	0.0485933921065039	0.0485933921065039
-9600	6656	7416	0.0551266417503484	0.0551266417503484
-9601	7416	7417	0.698080046436177	0.698080046436177
-9602	3179	7418	0.0616464790427922	0.0616464790427922
-9603	7418	5002	0.0485639637102659	0.0485639637102659
-9604	5002	7419	0.0540110826611525	0.0540110826611525
-9605	7419	5725	0.0437502401390831	0.0437502401390831
-9606	5725	724	0.0271601591292424	0.0271601591292424
-9607	724	7059	0.100733087825974	0.100733087825974
-9608	7059	7314	0.111000885564944	0.111000885564944
-9610	7421	3610	0.212938945536276	0.212938945536276
-9611	3610	2128	0.151144951480704	0.151144951480704
-10843	154	8006	0.0789597424143419	0.0789597424143419
-9613	5998	2327	0.147931201391184	0.147931201391184
-9614	2327	7422	0.151462381546094	0.151462381546094
-9615	2016	354	0.0832039426217647	0.0832039426217647
-9616	354	2024	0.270665538753682	0.270665538753682
-9620	4944	7424	0.200356357596052	0.200356357596052
-9622	2981	7425	0.200823510551274	0.200823510551274
-9623	7425	7426	0.200629159279387	0.200629159279387
-9624	7426	7427	0.00781704540286186	0.00781704540286186
-9625	7427	7428	0.196215671376464	0.196215671376464
-9626	7428	6876	0.205224182417126	0.205224182417126
-9627	6876	1687	0.205021376956907	0.205021376956907
-9628	1687	7429	0.205696359665547	0.205696359665547
-9629	7429	2432	0.199163881347575	0.199163881347575
-9630	2432	7431	0.20247617593456	0.20247617593456
-9632	6213	7432	0.274944028390563	0.274944028390563
-9633	7432	7433	0.263513794727665	0.263513794727665
-9634	7433	6594	0.262579264502597	0.262579264502597
-9636	7254	1423	0.111990529719831	0.111990529719831
-10866	1577	8015	0.266859669077532	0.266859669077532
-9639	7434	7435	0.184117705049588	0.184117705049588
-9640	7435	7436	0.203503143312405	0.203503143312405
-9642	6593	7437	0.098508708246921	0.098508708246921
-9643	7437	7127	0.0085733378066782	0.0085733378066782
-9645	7411	4051	0.176201016140517	0.176201016140517
-9646	4051	7438	0.186623330561976	0.186623330561976
-9647	7438	1853	0.167040016171723	0.167040016171723
-9648	1853	2591	0.179034976108436	0.179034976108436
-9650	7439	6064	0.193434831975152	0.193434831975152
-9651	6064	2544	0.202007823415783	0.202007823415783
-9652	2544	7440	0.411378882387366	0.411378882387366
-9653	7129	627	0.200330694412442	0.200330694412442
-9655	18	6387	0.132089927812284	0.132089927812284
-9658	7443	7444	0.13397887621517	0.13397887621517
-9659	7444	5539	0.105571329036095	0.105571329036095
-9660	5539	2407	0.0968730605007166	0.0968730605007166
-9661	2407	4292	0.100193275722424	0.100193275722424
-9662	4292	7445	0.0505436928211805	0.0505436928211805
-9663	7445	7446	0.0548363595380854	0.0548363595380854
-9665	7447	7448	0.169947053382904	0.169947053382904
-9667	5852	1336	0.19937663187299	0.19937663187299
-9668	1336	6158	0.0597086585632686	0.0597086585632686
-9669	6158	7449	0.153340690716036	0.153340690716036
-9671	7450	4365	0.199972383812324	0.199972383812324
-9672	4365	1447	0.201108937861992	0.201108937861992
-9673	1447	7451	0.20199467881708	0.20199467881708
-9674	7451	6664	0.0985180993542889	0.0985180993542889
-9675	6664	1757	0.102800794441344	0.102800794441344
-9676	1757	3819	0.106482209599855	0.106482209599855
-9677	3819	5892	0.0976679798408968	0.0976679798408968
-9679	5332	5070	0.101261676099905	0.101261676099905
-9680	5070	6838	0.100657370443561	0.100657370443561
-9681	6838	6967	0.0976725983678986	0.0976725983678986
-9682	6967	7452	0.102800093286128	0.102800093286128
-9683	7452	7453	0.0998547767838799	0.0998547767838799
-9685	5437	7454	0.211535646678045	0.211535646678045
-9686	7454	4416	0.194570832918176	0.194570832918176
-9687	4416	7456	0.224677107455919	0.224677107455919
-9688	7456	4322	0.22100369073056	0.22100369073056
-9692	7458	7459	0.0196177061643605	0.0196177061643605
-9693	7459	7460	0.0200797614980701	0.0200797614980701
-9694	7460	7461	0.0204220717617775	0.0204220717617775
-9695	7461	7462	0.0192753952773127	0.0192753952773127
-9696	7462	7463	0.0197376280100197	0.0197376280100197
-9697	7463	1874	0.0201396312288959	0.0201396312288959
-9698	1874	7464	0.101865928676763	0.101865928676763
-9699	7464	7465	0.0516398712444199	0.0516398712444199
-9700	5894	1589	0.201207684972719	0.201207684972719
-9701	1589	1639	0.202832052664544	0.202832052664544
-9703	7466	7467	0.461510399426298	0.461510399426298
-9704	7468	7469	0.0656477480578156	0.0656477480578156
-9705	7469	7470	0.0202314805703126	0.0202314805703126
-9706	7470	7471	0.0196155905306545	0.0196155905306545
-9707	7471	7472	0.0198466389215673	0.0198466389215673
-9709	7473	7474	0.0193760769839274	0.0193760769839274
-10941	7859	4686	0.105458193161767	0.105458193161767
-16187	5815	7203	0.20368767335866	0.20368767335866
-9710	7474	7475	0.0199577496151493	0.0199577496151493
-9711	7475	1873	0.0221306450398483	0.0221306450398483
-9712	1873	7476	0.0228930859552116	0.0228930859552116
-9713	7476	7477	0.00597945379667752	0.00597945379667752
-9714	7477	7481	0.0633102446327588	0.0633102446327588
-9715	7481	7482	0.00659734634558833	0.00659734634558833
-9716	7482	7483	0.0122662226221965	0.0122662226221965
-9717	7483	7484	0.0357233876730641	0.0357233876730641
-9718	7484	4185	0.0600540815299224	0.0600540815299224
-9721	7485	4417	0.198257535408126	0.198257535408126
-9722	4417	7486	0.220999648574169	0.220999648574169
-9723	7486	4321	0.223933764288424	0.223933764288424
-9725	4364	1446	0.20650017701017	0.20650017701017
-9726	1446	7487	0.199709617072806	0.199709617072806
-9727	7487	6936	0.203411194568703	0.203411194568703
-9728	6936	5891	0.202831423382765	0.202831423382765
-9730	7488	7489	0.219847500079542	0.219847500079542
-9731	7489	7490	0.112284636925509	0.112284636925509
-9733	7491	7492	0.104975617952237	0.104975617952237
-9734	7492	7493	0.133826104897821	0.133826104897821
-9735	7493	7494	0.136182988757468	0.136182988757468
-9737	5544	2414	0.0621561786197408	0.0621561786197408
-9739	5055	4297	0.0642451197659933	0.0642451197659933
-9740	4297	7495	0.104062899405527	0.104062899405527
-9741	7495	7496	0.203687229874764	0.203687229874764
-9742	7496	2987	0.200108037782066	0.200108037782066
-9743	2987	7497	0.201819339453719	0.201819339453719
-9744	7497	7498	0.0489089257680099	0.0489089257680099
-9745	7498	7499	0.151764240821653	0.151764240821653
-9746	7499	7500	0.203024715164671	0.203024715164671
-9747	7500	6882	0.202091910987955	0.202091910987955
-9748	6882	1693	0.203443247701908	0.203443247701908
-9749	1693	7501	0.204709999833149	0.204709999833149
-9750	7501	2441	0.166684898047837	0.166684898047837
-9752	5738	5527	0.157552520143968	0.157552520143968
-9753	5527	6465	0.155770587020073	0.155770587020073
-9754	6465	7502	0.156429247159158	0.156429247159158
-9755	7502	7503	0.187478248770476	0.187478248770476
-9756	7503	7504	0.202724737429487	0.202724737429487
-10985	7367	5402	0.104549154022735	0.104549154022735
-9757	7504	1429	0.207912295088567	0.207912295088567
-9758	1429	7189	0.130843883831593	0.130843883831593
-9760	6219	7505	0.274122910361615	0.274122910361615
-9761	7505	7506	0.19636903427064	0.19636903427064
-9763	2603	5189	0.177622776028071	0.177622776028071
-9764	5189	5657	0.106425186945832	0.106425186945832
-9766	7507	7508	0.0438255563694837	0.0438255563694837
-9767	7508	4058	0.0100861958439265	0.0100861958439265
-9768	4058	7509	0.0353348287032789	0.0353348287032789
-9769	7509	7510	0.141940367411715	0.141940367411715
-9770	7510	1860	0.1765997957518	0.1765997957518
-9771	1860	2604	0.182058234750596	0.182058234750596
-9773	7511	6071	0.194146348690461	0.194146348690461
-9774	6071	2551	0.201763197291639	0.201763197291639
-9776	7513	7514	0.138564330925234	0.138564330925234
-9778	7515	686	0.203088920175274	0.203088920175274
-9779	686	1983	0.159242254447937	0.159242254447937
-9780	1983	1968	0.0374282123082397	0.0374282123082397
-9781	1968	4621	0.107323343903913	0.107323343903913
-9782	4621	6500	0.103085986769995	0.103085986769995
-9783	6500	2474	0.199627678773596	0.199627678773596
-9785	7516	2773	0.203153140061273	0.203153140061273
-9786	2773	6896	0.203229996829736	0.203229996829736
-9788	5346	7517	0.175498987947166	0.175498987947166
-9789	7517	2340	0.175921748142843	0.175921748142843
-9790	2340	7518	0.175670305695009	0.175670305695009
-9791	7518	4783	0.243270382660677	0.243270382660677
-9792	4783	7519	0.239583168661009	0.239583168661009
-9793	7519	7520	0.0339478111046773	0.0339478111046773
-9794	7520	6369	0.269882786903903	0.269882786903903
-9795	6369	7521	0.132466649716692	0.132466649716692
-9797	7522	5952	0.201032381768493	0.201032381768493
-9798	5952	5144	0.0336716082597733	0.0336716082597733
-9799	5144	5156	0.0326057448432317	0.0326057448432317
-9800	5156	2239	0.132989211721542	0.132989211721542
-9801	2239	4912	0.203447012505169	0.203447012505169
-9802	4912	6610	0.203165550596053	0.203165550596053
-18325	7524	7525	0.0423335034846442	0.0423335034846442
-9804	7523	7526	0.205397811211562	0.205397811211562
-9806	2475	5910	0.203278121280476	0.203278121280476
-9807	5910	7527	0.201064010596531	0.201064010596531
-9808	7527	800	0.20177431388955	0.20177431388955
-9809	800	7528	0.202244021720306	0.202244021720306
-9811	7529	7530	0.20077292216439	0.20077292216439
-9813	3064	7531	0.184973544349351	0.184973544349351
-9815	2632	5362	0.0801274749327823	0.0801274749327823
-9816	5362	5209	0.120994383618796	0.120994383618796
-9817	5209	6229	0.174510675248847	0.174510675248847
-9819	7532	7533	0.202574921872807	0.202574921872807
-9820	7533	7534	0.206092993605617	0.206092993605617
-9821	7534	6444	0.205010086254005	0.205010086254005
-9822	6444	5302	0.199728470714505	0.199728470714505
-9824	6656	4061	0.176855547581016	0.176855547581016
-9825	4061	7535	0.242794235361762	0.242794235361762
-9827	7536	6086	0.100844609398613	0.100844609398613
-9828	6086	7537	0.100375721785614	0.100375721785614
-9829	7537	7538	0.0511607864629355	0.0511607864629355
-9830	7538	5244	0.0495951653375039	0.0495951653375039
-9831	5244	7539	0.0519761520574234	0.0519761520574234
-9832	7539	6885	0.0502414304638419	0.0502414304638419
-9833	6885	7540	0.0499615650233233	0.0499615650233233
-9835	7541	7542	0.0351445858107267	0.0351445858107267
-9838	7544	7545	0.105704455648811	0.105704455648811
-9841	2556	7547	0.195916474446361	0.195916474446361
-9842	6224	7548	0.277797708537317	0.277797708537317
-9845	7550	7551	0.196848690524097	0.196848690524097
-9846	7551	5751	0.202697238266629	0.202697238266629
-9847	5751	7552	0.00795047859513932	0.00795047859513932
-9848	7552	7553	0.129731824653906	0.129731824653906
-9849	7553	6474	0.0638707232076661	0.0638707232076661
-9850	6474	7554	0.0334363679568542	0.0334363679568542
-20015	10180	2696	0.367929886679579	0.367929886679579
-9851	7554	7555	0.0146999916602211	0.0146999916602211
-9853	3170	7557	0.145194224111084	0.145194224111084
-9854	7557	7558	0.0835128735178232	0.0835128735178232
-9855	7558	7559	0.0585562750239905	0.0585562750239905
-9856	7559	6713	0.00611903533894709	0.00611903533894709
-9857	6713	7560	0.146921779963022	0.146921779963022
-9858	7560	5786	0.142766734982168	0.142766734982168
-9859	5786	7561	0.147333855208616	0.147333855208616
-11082	6285	2717	0.0986458045481302	0.0986458045481302
-9860	7561	7562	0.151251680669446	0.151251680669446
-9861	7562	7563	0.142846459249546	0.142846459249546
-9863	7564	3303	0.147900845771263	0.147900845771263
-9865	5316	7565	0.0511409811054889	0.0511409811054889
-9866	7565	7566	0.1490174605609	0.1490174605609
-9867	7566	3661	0.0439544289403808	0.0439544289403808
-9868	3661	3171	0.198821466322938	0.198821466322938
-9870	1541	4266	0.201902575581856	0.201902575581856
-9871	4266	280	0.117279281695443	0.117279281695443
-9873	1540	755	0.148174446133403	0.148174446133403
-9874	755	7567	0.109511008516479	0.109511008516479
-9875	7568	7569	0.504435059432168	0.504435059432168
-9876	5172	5629	0.20005288591208	0.20005288591208
-9877	5629	2361	0.11286306962317	0.11286306962317
-9878	2361	4143	0.172420177163863	0.172420177163863
-9879	4143	4747	0.180602807146659	0.180602807146659
-9880	4747	6561	0.177131591078149	0.177131591078149
-9881	6561	7570	0.0829182513004679	0.0829182513004679
-9882	7570	7571	0.0849604902234264	0.0849604902234264
-9883	7571	7572	0.039332803551206	0.039332803551206
-9885	3557	7573	0.0207104909362794	0.0207104909362794
-9886	7573	5510	0.0781175186423301	0.0781175186423301
-9887	5510	2897	0.0422469044547541	0.0422469044547541
-9889	3682	7574	0.193399178760091	0.193399178760091
-9890	7574	7575	0.146546921459533	0.146546921459533
-9891	7575	5359	0.14787210152478	0.14787210152478
-9892	5359	2682	0.147887137976142	0.147887137976142
-9893	2682	7576	0.0606198046830208	0.0606198046830208
-9895	4620	7577	0.120158924963582	0.120158924963582
-9896	7577	6702	0.146317084486212	0.146317084486212
-9897	6702	7578	0.146734472806395	0.146734472806395
-9898	7578	7579	0.145050961623328	0.145050961623328
-9899	7579	7580	0.00770297520415462	0.00770297520415462
-9900	7580	7581	0.13912090851738	0.13912090851738
-9901	7581	7582	0.0411773493232422	0.0411773493232422
-9903	2466	5908	0.205955273119341	0.205955273119341
-9904	5908	7583	0.198595406640257	0.198595406640257
-9905	7583	793	0.198805543342419	0.198805543342419
-9906	793	7584	0.20315326209993	0.20315326209993
-9907	7584	4357	0.202186223769753	0.202186223769753
-9908	4357	7585	0.201775154423619	0.201775154423619
-9910	3060	7586	0.187004558668975	0.187004558668975
-9913	7588	906	0.27600804903505	0.27600804903505
-9914	906	7589	0.12928644320394	0.12928644320394
-9916	6671	7590	0.0565797137930955	0.0565797137930955
-9917	5136	5151	0.022597397933528	0.022597397933528
-9918	5151	4906	0.0926596414619678	0.0926596414619678
-9919	4906	6616	0.200362179375123	0.200362179375123
-9920	6616	7591	0.195770799250889	0.195770799250889
-9921	7591	7592	0.206820957598552	0.206820957598552
-9925	6556	7596	0.107470441058094	0.107470441058094
-9926	7596	7597	0.0323668981715237	0.0323668981715237
-9927	7597	7598	0.201852282407455	0.201852282407455
-9928	7598	7599	0.202247125760461	0.202247125760461
-9930	7600	4778	0.250803140264124	0.250803140264124
-9932	1647	159	0.135282147606574	0.135282147606574
-9933	159	1722	0.249462326524164	0.249462326524164
-9935	6872	7601	0.692595810332122	0.692595810332122
-9938	6136	7603	0.0512178060127243	0.0512178060127243
-9939	7603	4004	0.0522781951051087	0.0522781951051087
-9941	2233	5134	0.145435815612977	0.145435815612977
-9942	5134	5149	0.0255338309274142	0.0255338309274142
-9943	5149	4904	0.0300983323579011	0.0300983323579011
-9944	4904	6618	0.200495686198041	0.200495686198041
-9945	6618	7604	0.20246265981009	0.20246265981009
-9946	7604	7605	0.201805887092512	0.201805887092512
-9948	6554	7606	0.105208061763435	0.105208061763435
-9950	7607	7608	0.199144734139014	0.199144734139014
-9951	7608	7609	0.20258734096308	0.20258734096308
-9953	2463	5906	0.205561292129907	0.205561292129907
-9954	5906	7610	0.199734725303301	0.199734725303301
-9955	7610	791	0.198807553256576	0.198807553256576
-9956	791	7612	0.203565382214395	0.203565382214395
-9957	7612	4355	0.201053666601032	0.201053666601032
-9958	4355	7613	0.202489967264216	0.202489967264216
-9959	7613	3058	0.208369032173912	0.208369032173912
-9960	3058	7614	0.183994647182619	0.183994647182619
-9961	7614	7615	0.026448194348771	0.026448194348771
-9963	1697	7616	0.173745206459615	0.173745206459615
-9964	7616	7617	0.177904510236026	0.177904510236026
-9965	7617	7618	0.1681272184952	0.1681272184952
-9966	7618	4776	0.251475825917774	0.251475825917774
-9970	3746	7622	0.0932397806145687	0.0932397806145687
-9971	7622	4665	0.0961947321638159	0.0961947321638159
-9972	4665	1332	0.102043584181961	0.102043584181961
-9973	1332	1387	0.0976513845787387	0.0976513845787387
-9974	1387	7623	0.104092676384345	0.104092676384345
-9975	7623	6849	0.109393568832939	0.109393568832939
-9976	6849	4705	0.0983852710944781	0.0983852710944781
-9977	4705	7487	0.0961948643858329	0.0961948643858329
-9978	7487	7451	0.0969202901634112	0.0969202901634112
-9979	7451	5688	0.104320933330224	0.104320933330224
-9980	5688	6313	0.0969730195141145	0.0969730195141145
-9981	6313	4962	0.100610954866441	0.100610954866441
-9982	4962	6819	0.104277744196946	0.104277744196946
-9983	6819	762	0.165411660097114	0.165411660097114
-9984	762	786	0.134384238449809	0.134384238449809
-9985	786	6001	0.286482254105535	0.286482254105535
-9986	6001	5764	0.0815255628306487	0.0815255628306487
-11219	8167	8168	0.194203872480123	0.194203872480123
-9989	1491	149	0.200485771831907	0.200485771831907
-9990	149	1737	0.201708050623858	0.201708050623858
-9992	7313	5666	0.0386975210921627	0.0386975210921627
-9993	5666	522	0.0596630213761568	0.0596630213761568
-9994	522	4824	0.183721500047411	0.183721500047411
-9996	2254	7626	0.0984544191189144	0.0984544191189144
-9998	7627	7329	0.0447853238574392	0.0447853238574392
-9999	7329	2089	0.0938827847318007	0.0938827847318007
-10000	2089	2656	0.0939761287497805	0.0939761287497805
-10001	2656	4118	0.0946147674881846	0.0946147674881846
-10002	4118	6678	0.0843387660785722	0.0843387660785722
-10004	7628	7629	0.0982828610797249	0.0982828610797249
-10006	5220	5095	0.120687418213095	0.120687418213095
-10008	7630	6413	0.109655980715331	0.109655980715331
-10009	6413	4650	0.0986378512210248	0.0986378512210248
-10010	4650	7631	0.100237060358401	0.100237060358401
-10011	7631	3646	0.0896866361421679	0.0896866361421679
-10012	3646	4536	0.103452838278423	0.103452838278423
-10013	4536	7635	0.257545536230436	0.257545536230436
-10015	7636	7637	0.0362863399636557	0.0362863399636557
-10016	7637	383	0.0504266976907422	0.0504266976907422
-10017	383	4682	0.05031361216385	0.05031361216385
-10018	4682	295	0.0506583134955018	0.0506583134955018
-10019	295	4954	0.0497648033018035	0.0497648033018035
-10021	7222	7638	0.0496667318298412	0.0496667318298412
-10022	7638	7639	0.0515292350274089	0.0515292350274089
-10023	7639	7640	0.0459421846016502	0.0459421846016502
-10024	7640	6642	0.0415805639651593	0.0415805639651593
-10026	3954	7641	0.0608839417644586	0.0608839417644586
-10027	7641	5604	0.0589168683204242	0.0589168683204242
-18697	6400	5868	0.177478717288294	0.177478717288294
-10029	7642	3727	0.0543818576839699	0.0543818576839699
-10031	1239	4813	0.0888202681133088	0.0888202681133088
-10032	4813	2165	0.138535770033239	0.138535770033239
-10034	4003	7643	0.0510385957556285	0.0510385957556285
-10035	7643	7027	0.0529371470208169	0.0529371470208169
-10036	7027	7644	0.0521180983869426	0.0521180983869426
-10037	7644	7645	0.0537600930137936	0.0537600930137936
-10038	7645	7646	0.0510719245712091	0.0510719245712091
-10039	7646	7380	0.0524231241843369	0.0524231241843369
-10041	7647	3393	0.0461297697153075	0.0461297697153075
-10043	3394	7648	0.0445992136926928	0.0445992136926928
-10044	7648	5709	0.0478831918410465	0.0478831918410465
-10045	5709	7649	0.04548718787965	0.04548718787965
-10046	7649	7432	0.0484717768195407	0.0484717768195407
-10047	7432	7650	0.0437375947901795	0.0437375947901795
-10048	7650	7181	0.0470644094329018	0.0470644094329018
-10049	7181	7651	0.0469937345825467	0.0469937345825467
-10051	7652	7653	0.0459694430265719	0.0459694430265719
-10053	1099	7654	0.0453903142377476	0.0453903142377476
-10054	7654	7505	0.0471008131744324	0.0471008131744324
-10055	7505	7655	0.0439789031058606	0.0439789031058606
-10056	7655	3857	0.0492561227403211	0.0492561227403211
-10057	3857	7656	0.0443253739114241	0.0443253739114241
-10058	7656	5595	0.054031927582118	0.054031927582118
-10059	5595	7657	0.0531350620266369	0.0531350620266369
-10060	7657	7548	0.0548032505549166	0.0548032505549166
-10061	7548	7658	0.0961567115661112	0.0961567115661112
-10063	5169	6864	0.176934896372569	0.176934896372569
-10064	6864	3072	0.175748977102837	0.175748977102837
-10065	3072	7659	0.163990749862373	0.163990749862373
-10067	3292	100	0.415519355639239	0.415519355639239
-10069	5731	3291	0.149792492427265	0.149792492427265
-10071	1152	7660	0.199718823841446	0.199718823841446
-10074	6897	7663	0.241129252553979	0.241129252553979
-13575	2	9131	0.186044551751923	0.186044551751923
-10075	7663	7664	0.101783451026811	0.101783451026811
-10076	7664	7665	0.289306992458348	0.289306992458348
-10078	6814	7666	0.176577592408465	0.176577592408465
-12084	8539	8540	0.241661980997098	0.241661980997098
-10079	7666	2342	0.176188966635474	0.176188966635474
-10080	2342	7667	0.17458351857957	0.17458351857957
-10081	7667	4785	0.245723521469374	0.245723521469374
-10082	4785	7668	0.239480958817199	0.239480958817199
-10084	5159	7669	0.0600603744377636	0.0600603744377636
-10085	7669	5954	0.140826727437097	0.140826727437097
-10086	5954	2241	0.203480008894553	0.203480008894553
-10087	2241	4914	0.201437462212311	0.201437462212311
-10088	4914	6609	0.201231500080185	0.201231500080185
-10089	6609	7670	0.19693744890168	0.19693744890168
-11324	5142	5154	0.0222389853288599	0.0222389853288599
-16191	7205	5817	0.204256012568379	0.204256012568379
-10090	7670	7671	0.205535401167156	0.205535401167156
-10092	690	1979	0.162739101905996	0.162739101905996
-10093	1979	1964	0.0397992509913644	0.0397992509913644
-10094	1964	6501	0.211697424646872	0.211697424646872
-10095	6501	2478	0.193626535181341	0.193626535181341
-10096	2478	5912	0.20926896109112	0.20926896109112
-10097	5912	7672	0.199195490528656	0.199195490528656
-10098	7672	803	0.201999137953248	0.201999137953248
-10099	803	7673	0.202608278725201	0.202608278725201
-10100	7673	7674	0.205563081575912	0.205563081575912
-10101	7674	7675	0.203265447696938	0.203265447696938
-10102	7675	3066	0.200093208772811	0.200093208772811
-10103	3066	7676	0.18728661128175	0.18728661128175
-10105	7677	6370	0.270615231348292	0.270615231348292
-10106	6370	7678	0.131279919418432	0.131279919418432
-10108	6507	7679	0.113730821063582	0.113730821063582
-10109	7679	6937	0.113695193803527	0.113695193803527
-10111	759	6605	0.202732181741343	0.202732181741343
-10113	5167	7680	0.173408491477124	0.173408491477124
-10114	7680	2354	0.177734023432563	0.177734023432563
-11350	4801	4798	0.0316348130565604	0.0316348130565604
-10116	4156	4743	0.17475749351339	0.17475749351339
-10117	4743	6539	0.176484628682033	0.176484628682033
-10118	6539	7681	0.164515462701881	0.164515462701881
-10119	7681	1204	0.1695248683934	0.1695248683934
-10120	1204	7682	0.0218451192643306	0.0218451192643306
-10121	7682	3779	0.199697518421981	0.199697518421981
-10123	7683	953	0.176289634687175	0.176289634687175
-10124	953	7684	0.174800312403385	0.174800312403385
-10125	7684	4892	0.161444055531775	0.161444055531775
-10126	4892	7685	0.184678055138444	0.184678055138444
-10127	7685	5490	0.173583753319791	0.173583753319791
-10128	5490	3022	0.0680856463383254	0.0680856463383254
-18346	1684	7686	0.206269012853702	0.206269012853702
-10129	3022	608	0.0626103319165951	0.0626103319165951
-10130	608	7687	0.0714136208255542	0.0714136208255542
-10132	751	1571	0.141098847639908	0.141098847639908
-10133	1571	7688	0.136160171060933	0.136160171060933
-10134	7688	355	0.0540631216358879	0.0540631216358879
-11381	7	8238	0.233069627316498	0.233069627316498
-10136	3031	7689	0.212052347410258	0.212052347410258
-10139	5644	4349	0.138628444284297	0.138628444284297
-10140	4349	6347	0.140074045976997	0.140074045976997
-10143	7690	7691	0.036360966917709	0.036360966917709
-13576	9131	2186	0.0494030185182178	0.0494030185182178
-10144	7691	7692	0.019090691679145	0.019090691679145
-10145	7692	7629	0.138695116564921	0.138695116564921
-10146	7629	7693	0.131928656438508	0.131928656438508
-10148	7694	7695	0.805329256404935	0.805329256404935
-10149	6359	2392	0.110097282540218	0.110097282540218
-10150	2392	7696	0.139362539585628	0.139362539585628
-10152	7697	698	0.20136290155584	0.20136290155584
-10153	698	7698	0.201586501703314	0.201586501703314
-10155	7699	894	0.281945866493957	0.281945866493957
-10156	894	4477	0.138715715492195	0.138715715492195
-10157	4477	2802	0.13960527461951	0.13960527461951
-10158	2802	5268	0.12511734550188	0.12511734550188
-10161	4794	2158	0.120027593160305	0.120027593160305
-11430	319	412	0.178792036530689	0.178792036530689
-11459	224	8268	0.046644646559722	0.046644646559722
-10165	7703	1119	0.0497953640754775	0.0497953640754775
-10166	1119	7704	0.0511005498462644	0.0511005498462644
-10167	7704	7496	0.0499039643779027	0.0499039643779027
-10168	7496	7705	0.050496479725261	0.050496479725261
-10169	7705	3842	0.0493242373326315	0.0493242373326315
-10170	3842	7706	0.0511368055077475	0.0511368055077475
-10171	7706	5553	0.0516924374908146	0.0516924374908146
-10173	5552	7707	0.497797594406761	0.497797594406761
-10174	7708	6434	0.169523036166009	0.169523036166009
-10175	6434	4659	0.115447272077866	0.115447272077866
-10176	4659	7709	0.0610101187906253	0.0610101187906253
-10177	7709	1282	0.0565434694494923	0.0565434694494923
-10178	1282	4541	0.131357223988847	0.131357223988847
-10179	4541	7710	0.132140893738002	0.132140893738002
-10180	7710	7711	0.0696094980092003	0.0696094980092003
-10181	7711	7712	0.0619159407722012	0.0619159407722012
-10183	4024	7713	0.0484316979076645	0.0484316979076645
-10184	7713	5669	0.0520933568419111	0.0520933568419111
-10185	5669	7714	0.0498366654518003	0.0498366654518003
-10186	7714	7030	0.0492177257934086	0.0492177257934086
-19495	7469	10524	0.0198269485983196	0.0198269485983196
-10188	7715	7378	0.0506230529615687	0.0506230529615687
-10189	7378	1594	0.0506283698630863	0.0506283698630863
-10190	1594	3411	0.0491667634825631	0.0491667634825631
-10191	3411	7717	0.105657808428602	0.105657808428602
-10192	7717	7718	0.0940313147486449	0.0940313147486449
-10193	5546	7719	0.0535907784173066	0.0535907784173066
-10194	7719	7720	0.0530201286004126	0.0530201286004126
-10195	7720	573	0.0448716576991108	0.0448716576991108
-10196	573	4986	0.0479600812575622	0.0479600812575622
-10197	4986	7721	0.0515371092658245	0.0515371092658245
-10198	7721	7722	0.0482855644451139	0.0482855644451139
-10199	7722	7723	0.0490137565654263	0.0490137565654263
-10200	7723	7724	0.0538141529532141	0.0538141529532141
-10201	7724	7725	0.0529684395598169	0.0529684395598169
-10202	7725	7726	0.0518724854854175	0.0518724854854175
-10203	7726	7727	0.04727777135042	0.04727777135042
-10204	7727	3618	0.0472245509762166	0.0472245509762166
-10205	3618	7728	0.0514814686878799	0.0514814686878799
-10206	7728	7729	0.0518724978816832	0.0518724978816832
-10207	7729	7730	0.0486618474944759	0.0486618474944759
-10208	7730	5100	0.0498159875736575	0.0498159875736575
-10209	5100	7731	0.0971611599806991	0.0971611599806991
-10210	7731	7732	0.0537738540349519	0.0537738540349519
-10211	7732	7733	0.048775543246574	0.048775543246574
-10213	7734	1529	0.0486197396153865	0.0486197396153865
-10214	1529	6533	0.0236551874497837	0.0236551874497837
-10216	1748	5658	0.0690555262759062	0.0690555262759062
-10217	5658	6638	0.0663249571304488	0.0663249571304488
-10220	5429	5327	0.0495383987324496	0.0495383987324496
-10221	5327	7400	0.0488963197685218	0.0488963197685218
-10223	3485	7735	0.019269671719438	0.019269671719438
-10224	7735	6080	0.0527262897841316	0.0527262897841316
-10225	6080	7736	0.0518491308674393	0.0518491308674393
-10226	7736	3699	0.0473298672855462	0.0473298672855462
-10227	3699	4573	0.0991704429707509	0.0991704429707509
-10228	4573	7737	0.1025259519958	0.1025259519958
-10229	7737	7738	0.0567267064163172	0.0567267064163172
-10230	7738	6520	0.0485788201580239	0.0485788201580239
-11562	4026	8321	0.0489622731658017	0.0489622731658017
-10232	7739	6163	0.0483379374847878	0.0483379374847878
-10233	6163	7740	0.0487487301271992	0.0487487301271992
-10234	7740	2742	0.0481924761788732	0.0481924761788732
-10236	7741	5233	0.0485076742472366	0.0485076742472366
-10237	5233	7742	0.0501847785254714	0.0501847785254714
-10238	7742	3175	0.0518961094220257	0.0518961094220257
-10239	3175	7743	0.0477088260821206	0.0477088260821206
-10240	7743	5000	0.0480456206813873	0.0480456206813873
-10241	5000	7744	0.0507496702288809	0.0507496702288809
-10242	7744	732	0.0500052182058767	0.0500052182058767
-10243	732	7062	0.0993780460470829	0.0993780460470829
-10244	7062	568	0.179642317491375	0.179642317491375
-10245	568	6375	0.221062471524952	0.221062471524952
-10246	6375	7745	0.0502032533440095	0.0502032533440095
-10247	7745	4829	0.0496813089217868	0.0496813089217868
-10248	4829	7746	0.10134770204508	0.10134770204508
-10249	7746	7747	0.19682163321823	0.19682163321823
-10250	7747	7748	0.0148866727143693	0.0148866727143693
-10251	7748	1062	0.0938295581784946	0.0938295581784946
-10252	1062	1700	0.0910684866897701	0.0910684866897701
-10254	7749	7750	0.088136254722807	0.088136254722807
-10255	7750	7751	0.0102851011578735	0.0102851011578735
-10256	7751	6675	0.0807868256992296	0.0807868256992296
-10258	5566	7541	0.078830239472867	0.078830239472867
-10259	7541	7752	0.71007082854504	0.71007082854504
-10260	7753	7754	0.0555561071332203	0.0555561071332203
-10261	7754	6755	0.141035585683202	0.141035585683202
-10262	6755	3980	0.200595577576722	0.200595577576722
-10263	3980	7039	0.198840384599884	0.198840384599884
-10264	7039	3426	0.202741409948142	0.202741409948142
-10266	6623	1789	0.083407855110509	0.083407855110509
-10267	1789	7208	0.197984235440067	0.197984235440067
-10268	7208	5821	0.204810690510051	0.204810690510051
-10269	5821	7726	0.195060536702397	0.195060536702397
-10270	7726	7755	1.41312394826698	1.41312394826698
-10271	3161	7756	0.200885724863022	0.200885724863022
-10272	7756	3082	0.196495825635974	0.196495825635974
-10273	3082	3194	0.201063950220373	0.201063950220373
-10275	6110	1901	0.201670811128578	0.201670811128578
-10277	441	5814	0.0584483555155252	0.0584483555155252
-10278	5814	5376	0.210901593054405	0.210901593054405
-10282	2638	5211	0.135802363910714	0.135802363910714
-10284	5376	7115	0.169184130655589	0.169184130655589
-10286	6686	7758	0.0966310054355491	0.0966310054355491
-10287	7758	7759	0.103268100856542	0.103268100856542
-10289	7760	7761	0.0931830345887697	0.0931830345887697
-10290	7761	870	0.209204581827195	0.209204581827195
-10292	6165	6785	0.0415827902651337	0.0415827902651337
-10293	6785	7357	0.102001818508737	0.102001818508737
-10294	7357	5405	0.112234858942921	0.112234858942921
-10295	5405	3138	0.103097089620426	0.103097089620426
-10296	3138	7762	0.00572680722694595	0.00572680722694595
-10297	6991	6399	0.078057620939779	0.078057620939779
-10299	3614	2112	0.200468732564122	0.200468732564122
-10300	2112	7766	0.09707938317328	0.09707938317328
-10301	7766	7663	0.107055697326901	0.107055697326901
-10303	869	7100	0.0985676933380822	0.0985676933380822
-11668	7785	8358	0.00862504224759753	0.00862504224759753
-10305	2502	7767	0.133821378293258	0.133821378293258
-10306	7767	4793	0.137187308277769	0.137187308277769
-10307	4793	2155	0.138619015999951	0.138619015999951
-10308	2155	6302	0.131440648996103	0.131440648996103
-10309	6302	6427	0.0971164197766542	0.0971164197766542
-10310	6427	5345	0.100480546860285	0.100480546860285
-10311	5345	4641	0.0997483726431183	0.0997483726431183
-10312	4641	1266	0.0975658909823655	0.0975658909823655
-10313	1266	4540	0.103828265337942	0.103828265337942
-10314	4540	6286	0.102716645609349	0.102716645609349
-10315	6286	2720	0.0979601908800836	0.0979601908800836
-10317	2598	5187	0.177611938217315	0.177611938217315
-10318	5187	5655	0.104799417596727	0.104799417596727
-10319	5655	7768	0.00220165954800827	0.00220165954800827
-10321	7769	6068	0.194290902090962	0.194290902090962
-10322	6068	2548	0.201654782967819	0.201654782967819
-10323	2548	7770	0.410001897212591	0.410001897212591
-10324	6390	7771	0.13140278725488	0.13140278725488
-10325	7771	7772	0.135404012160521	0.135404012160521
-10326	7772	7773	0.135386059531021	0.135386059531021
-10327	7773	5541	0.102606539353157	0.102606539353157
-10328	5541	2410	0.100544408114452	0.100544408114452
-10329	2410	4294	0.100431298726032	0.100431298726032
-10330	4294	7776	0.0501127826077893	0.0501127826077893
-10331	7776	7777	0.0533516278326779	0.0533516278326779
-10332	7777	7778	0.0636719509277386	0.0636719509277386
-10333	7778	7702	0.142867174122929	0.142867174122929
-10334	7702	2984	0.198167346423749	0.198167346423749
-10336	7779	1879	0.0577899859499687	0.0577899859499687
-10337	1879	7780	0.0975763172911078	0.0975763172911078
-10338	7780	7781	0.049615978114649	0.049615978114649
-10339	7781	7782	0.151461070035101	0.151461070035101
-10340	7782	7783	0.00828406172358757	0.00828406172358757
-10341	7783	7784	0.0408643643931965	0.0408643643931965
-10342	7784	7785	0.155195634964959	0.155195634964959
-10343	7785	6879	0.203175602967298	0.203175602967298
-10344	6879	1690	0.204417069906845	0.204417069906845
-10345	1690	7786	0.203521868851454	0.203521868851454
-10346	7786	2437	0.163479024443522	0.163479024443522
-10347	2437	2436	0.0381118302971424	0.0381118302971424
-10348	2436	5735	0.132411428624817	0.132411428624817
-10349	5735	7787	0.0686968769014223	0.0686968769014223
-10350	7787	5524	0.0876693797427073	0.0876693797427073
-10352	6462	6461	0.046218455398192	0.046218455398192
-10353	6461	7788	0.114101346725552	0.114101346725552
-10354	7788	7789	0.186352786707342	0.186352786707342
-10355	7789	7790	0.201819126377908	0.201819126377908
-10356	7790	1426	0.209991688515331	0.209991688515331
-10357	1426	7188	0.131433687737374	0.131433687737374
-10361	7791	7792	0.0221530824058495	0.0221530824058495
-10362	7792	1857	0.178051972210932	0.178051972210932
-10363	1857	2599	0.180197954723075	0.180197954723075
-10365	7793	7794	0.133052671328159	0.133052671328159
-10366	7794	7795	0.00451480555637825	0.00451480555637825
-10368	7796	316	0.0810108111113459	0.0810108111113459
-10369	316	7797	0.0132929754360195	0.0132929754360195
-10371	7798	1715	0.146657336243231	0.146657336243231
-10373	4991	5886	0.0409007612541298	0.0409007612541298
-10374	5886	7799	0.0133509392362763	0.0133509392362763
-10375	7799	6955	0.0302227835880131	0.0302227835880131
-10376	6955	120	0.355050454211798	0.355050454211798
-10378	6998	7800	0.287485052767515	0.287485052767515
-10379	7800	2107	0.0799880901292185	0.0799880901292185
-10381	7801	7330	0.0459693673262965	0.0459693673262965
-10382	7330	2069	0.0513405380116942	0.0513405380116942
-10383	2069	2090	0.0410799126461524	0.0410799126461524
-10384	2090	2665	0.0609107459124439	0.0609107459124439
-10385	2665	2657	0.0344762888596363	0.0344762888596363
-10386	2657	4120	0.0653569613260274	0.0653569613260274
-10387	4120	4119	0.025633469399215	0.025633469399215
-10388	4119	6679	0.0800230712461371	0.0800230712461371
-10389	6679	7803	0.0968450624184265	0.0968450624184265
-10390	7803	7693	0.101842612257672	0.101842612257672
-10392	4983	7804	0.15108225604362	0.15108225604362
-10393	7804	7805	0.125613899900368	0.125613899900368
-10394	7805	7806	0.243703765368195	0.243703765368195
-10395	6511	833	0.205796808568101	0.205796808568101
-10396	833	1752	0.10962713348726	0.10962713348726
-10399	7807	6997	0.603696470077293	0.603696470077293
-10401	6510	7620	0.115341473380206	0.115341473380206
-10403	1004	4224	0.0542745916357659	0.0542745916357659
-10405	7568	7808	0.0520701135747565	0.0520701135747565
-10406	7808	7085	0.0476697019408349	0.0476697019408349
-10407	7085	7087	0.0498741800030606	0.0498741800030606
-10410	7411	5866	0.177233832171644	0.177233832171644
-10411	5866	1317	0.177356465730534	0.177356465730534
-10412	1317	1373	0.176201016352257	0.176201016352257
-20226	10713	10016	0.0211937599266337	0.0211937599266337
-10413	1373	7809	0.0646527574308656	0.0646527574308656
-10414	7809	6841	0.0827327683846137	0.0827327683846137
-18362	7802	7116	0.00767249278335644	0.00767249278335644
-18363	7116	7802	0.00767249278335644	0.00767249278335644
-10416	7810	7811	0.101331501186014	0.101331501186014
-10417	7811	7812	0.10060881119881	0.10060881119881
-10418	7812	7813	0.20266387330204	0.20266387330204
-10419	7813	6245	0.198305641519059	0.198305641519059
-10420	6245	7814	0.197228200241648	0.197228200241648
-10422	1492	181	0.220815542326235	0.220815542326235
-10423	181	1709	0.205644626708499	0.205644626708499
-10424	1709	7815	0.201521495468828	0.201521495468828
-10425	7815	1576	0.244181862134779	0.244181862134779
-11867	8450	529	0.00567706315765741	0.00567706315765741
-10426	1576	7816	0.227813240625087	0.227813240625087
-10428	6320	7817	0.183577601350202	0.183577601350202
-10430	7213	7818	0.101757750903819	0.101757750903819
-10433	962	6868	0.198984557339899	0.198984557339899
-10434	6868	5277	0.0940706344008526	0.0940706344008526
-10435	5277	3079	0.10232261403939	0.10232261403939
-10437	7204	5816	0.204032094058756	0.204032094058756
-10438	5816	7722	0.196359705603447	0.196359705603447
-10439	7722	7819	1.20817529596719	1.20817529596719
-10440	4246	1785	0.204162289925295	0.204162289925295
-10441	1785	7820	0.0718319226119568	0.0718319226119568
-10442	6026	3876	0.103447229282558	0.103447229282558
-10443	3876	7821	0.100516631601798	0.100516631601798
-10444	7322	2073	0.0916901418746821	0.0916901418746821
-10445	2073	2670	0.0954589635577965	0.0954589635577965
-10446	2670	4140	0.0958506641044589	0.0958506641044589
-10447	4140	6687	0.0883798780131798	0.0883798780131798
-10448	6687	7822	0.0995993099363261	0.0995993099363261
-10449	7822	7696	0.0932435604543702	0.0932435604543702
-10450	7696	3474	0.0968263022183935	0.0968263022183935
-10451	3474	7823	0.0468407500328621	0.0468407500328621
-10452	5171	3743	0.0993415474645253	0.0993415474645253
-10454	5856	4668	0.0981986239232037	0.0981986239232037
-10455	4668	1294	0.100268721006653	0.100268721006653
-10456	1294	1367	0.0977359423737142	0.0977359423737142
-10457	1367	3189	0.105552448113217	0.105552448113217
-10458	3189	6851	0.101177318178783	0.101177318178783
-10459	6851	4702	0.101416251034793	0.101416251034793
-10460	4702	7468	0.0970718218675625	0.0970718218675625
-10461	7468	1895	0.103477998735846	0.103477998735846
-10462	1895	7824	0.0967350574153813	0.0967350574153813
-10463	7824	7233	0.101338813079015	0.101338813079015
-10464	7233	3243	0.207470752756408	0.207470752756408
-10465	3243	7282	0.19399363779074	0.19399363779074
-10466	7282	7825	0.149563284680896	0.149563284680896
-10468	2141	7826	0.157978675104427	0.157978675104427
-10469	7826	7827	0.306989543465552	0.306989543465552
-10470	7827	7828	0.364212228682904	0.364212228682904
-16042	9797	9804	0.0714393127860209	0.0714393127860209
-10475	7658	7549	0.158167365995463	0.158167365995463
-10477	5846	7750	0.200199460183562	0.200199460183562
-10479	466	7198	0.196816395654282	0.196816395654282
-10481	7268	7830	0.172430116159174	0.172430116159174
-10483	7217	7831	0.199372618146519	0.199372618146519
-10485	6256	7832	0.202992310919435	0.202992310919435
-10487	7833	4331	0.102741254079324	0.102741254079324
-10488	4331	7834	0.0526098265130649	0.0526098265130649
-10489	7834	5037	0.0501135526518646	0.0501135526518646
-10490	5037	7835	0.0494507564303858	0.0494507564303858
-10491	7835	7836	0.0506565934234891	0.0506565934234891
-10492	7836	7837	0.0500464479643974	0.0500464479643974
-10493	7837	2894	0.0524402316173641	0.0524402316173641
-10494	2894	7838	0.107557027285785	0.107557027285785
-10495	7838	7839	0.103734242634521	0.103734242634521
-10496	7839	4733	0.104796091296626	0.104796091296626
-10498	6800	7352	0.103066456507469	0.103066456507469
-10499	7352	5398	0.104939276238433	0.104939276238433
-10500	5398	7840	0.054043807018549	0.054043807018549
-10501	7840	7841	0.0495084984704332	0.0495084984704332
-10502	7841	3900	0.109926182600774	0.109926182600774
-10503	3900	1036	0.101980966587827	0.101980966587827
-10505	7842	6275	0.0499604206116259	0.0499604206116259
-10506	6275	7843	0.109041406945306	0.109041406945306
-10508	7844	7845	0.0640842858387461	0.0640842858387461
-10509	7845	1756	0.058813700126345	0.058813700126345
-10510	1756	4796	0.0566305502204531	0.0566305502204531
-10511	4796	2162	0.113835660361901	0.113835660361901
-10512	2162	7846	0.116364205137553	0.116364205137553
-10514	6135	4027	0.149896567221218	0.149896567221218
-10515	4027	7032	0.200991141471739	0.200991141471739
-10516	7032	3412	0.200534935685617	0.200534935685617
-10517	3412	7633	0.0497828282990497	0.0497828282990497
-10518	7633	5698	0.0497412906945155	0.0497412906945155
-10519	5698	7847	0.050919685731899	0.050919685731899
-10521	7425	7166	0.104570214872527	0.104570214872527
-10522	7166	7848	0.0473158420873474	0.0473158420873474
-10523	7848	7780	0.0502827033263459	0.0502827033263459
-10524	7780	1123	0.100516868229367	0.100516868229367
-10525	1123	7849	0.0509916038841254	0.0509916038841254
-10526	7849	7497	0.0507179555279218	0.0507179555279218
-10527	7497	7850	0.0492496392928742	0.0492496392928742
-10528	7850	3843	0.0492532755342339	0.0492532755342339
-10529	3843	7851	0.0511792577413519	0.0511792577413519
-10530	7851	5556	0.0504327266312592	0.0504327266312592
-10561	7757	6414	0.14886592682355	0.14886592682355
-10531	5556	7852	0.789293029376444	0.789293029376444
-10532	1618	7136	0.164980324326418	0.164980324326418
-10534	2027	5535	0.0854267701089729	0.0854267701089729
-10535	5535	6450	0.110522246345964	0.110522246345964
-10536	6450	6468	0.0325389081934527	0.0325389081934527
-10537	6468	7853	0.124455504811187	0.124455504811187
-10538	7853	7854	0.192779349126015	0.192779349126015
-10540	3713	7855	0.105701897268654	0.105701897268654
-10543	2614	7857	0.0507605301255621	0.0507605301255621
-10544	7857	5197	0.124727455067454	0.124727455067454
-10545	5197	6238	0.172240941584424	0.172240941584424
-10546	6238	7637	0.187669509666877	0.187669509666877
-10547	7637	7858	0.175500793784226	0.175500793784226
-10548	7858	7859	0.174943439798306	0.174943439798306
-10551	5368	7126	0.152826634682226	0.152826634682226
-10552	7126	614	0.179980225267387	0.179980225267387
-10553	614	7860	0.174053494498076	0.174053494498076
-10554	7860	7861	0.175067683150656	0.175067683150656
-10556	3960	5600	0.12071802041193	0.12071802041193
-10558	6724	4799	0.0913013732116182	0.0913013732116182
-10559	4799	2180	0.0880940650188129	0.0880940650188129
-10560	2180	7757	0.0839974084607818	0.0839974084607818
-10562	6414	4645	0.149015796662155	0.149015796662155
-10563	4645	1271	0.151238114292438	0.151238114292438
-10564	1271	4535	0.201873592117884	0.201873592117884
-10565	4535	7863	0.199199232202906	0.199199232202906
-10567	7864	6740	0.106132792016662	0.106132792016662
-10568	6740	2257	0.103696160263475	0.103696160263475
-10569	2257	6132	0.104845212424081	0.104845212424081
-10570	6132	4000	0.104492371103569	0.104492371103569
-10571	4000	7049	0.105765984719426	0.105765984719426
-10572	7049	1395	0.105619552065538	0.105619552065538
-10573	1395	7865	0.0532676910827188	0.0532676910827188
-12077	2695	8043	0.149120560873017	0.149120560873017
-10574	7865	7382	0.0513518590570076	0.0513518590570076
-10576	7866	3392	0.0498722666723731	0.0498722666723731
-10578	2360	5226	0.147034135602084	0.147034135602084
-10579	5226	5088	0.140218763176125	0.140218763176125
-10580	5088	2812	0.112317158065107	0.112317158065107
-10581	2812	7855	0.0589853238635922	0.0589853238635922
-10582	7855	4676	0.102566908777836	0.102566908777836
-10583	4676	4948	0.0965475772401715	0.0965475772401715
-10584	4948	7867	0.0515742481536382	0.0515742481536382
-10585	7867	7219	0.0513689618533378	0.0513689618533378
-10586	7219	7868	0.0507197202929207	0.0507197202929207
-10587	7868	5673	0.0490781046009859	0.0490781046009859
-10588	5673	7869	0.0456643057832586	0.0456643057832586
-10591	7792	7870	0.049146171652799	0.049146171652799
-10592	7870	1108	0.0521568671722949	0.0521568671722949
-10593	1108	5770	0.0506160748755952	0.0506160748755952
-10594	5770	7510	0.0513174323114612	0.0513174323114612
-10595	7510	7871	0.0508676871173128	0.0508676871173128
-10596	7871	3865	0.0498216783929082	0.0498216783929082
-10598	3866	7535	0.105586605139886	0.105586605139886
-10599	7535	7872	0.748786770151958	0.748786770151958
-10603	741	1561	0.140274508504629	0.140274508504629
-10604	1561	7876	0.139940443617856	0.139940443617856
-10605	7876	7877	0.121382404560649	0.121382404560649
-10607	3572	5640	0.141095915979936	0.141095915979936
-10608	5640	4345	0.139634312621283	0.139634312621283
-10609	4345	6343	0.13679021957376	0.13679021957376
-10610	6343	3046	0.13698802953883	0.13698802953883
-10611	3046	7878	0.138953332142948	0.138953332142948
-10612	7878	7879	0.00536944182123181	0.00536944182123181
-10613	7879	7880	0.11582084881522	0.11582084881522
-10615	7881	7882	0.0939943673024045	0.0939943673024045
-10617	4885	7883	0.18871104587798	0.18871104587798
-10618	7883	5483	0.174801190512252	0.174801190512252
-10619	5483	7884	0.200940942998637	0.200940942998637
-10620	7884	7885	0.0780811261571653	0.0780811261571653
-10621	7885	3341	0.00930901113126469	0.00930901113126469
-10624	1192	7887	0.0222318154701858	0.0222318154701858
-10625	7887	3786	0.199739451308706	0.199739451308706
-10627	7888	5967	0.106945706764055	0.106945706764055
-10628	5967	7889	0.0517538867982505	0.0517538867982505
-10629	7889	3011	0.055433069584998	0.055433069584998
-10630	3011	7890	0.0504905501442438	0.0504905501442438
-10631	7890	4389	0.0518336432467722	0.0518336432467722
-10632	4389	7891	0.106909075712535	0.106909075712535
-10633	7891	7892	0.0447272763477039	0.0447272763477039
-10634	7892	7893	0.0604871538278066	0.0604871538278066
-10635	7893	7894	0.0527248029948841	0.0527248029948841
-10636	7894	7895	0.0510420835040534	0.0510420835040534
-10637	7895	7896	0.0538542282588573	0.0538542282588573
-10638	7896	7897	0.0528352422268061	0.0528352422268061
-10640	7898	7899	0.0483963113823249	0.0483963113823249
-10641	7899	7900	0.00514045868709644	0.00514045868709644
-10642	7900	6183	0.105068526303449	0.105068526303449
-10643	6183	7563	0.106218150970674	0.106218150970674
-10646	7902	7903	0.144865462765669	0.144865462765669
-10647	7903	7904	0.00237466940700901	0.00237466940700901
-10648	7904	6985	0.0721296292058115	0.0721296292058115
-10649	6985	4820	0.0719786596117478	0.0719786596117478
-10650	4820	7905	0.147529402397198	0.147529402397198
-10651	7905	7906	0.144081069806214	0.144081069806214
-10653	3189	1870	0.209495964340019	0.209495964340019
-10654	1870	7907	0.0977397792259224	0.0977397792259224
-10655	7907	4184	0.106328113718199	0.106328113718199
-10656	4184	7908	0.403661295666813	0.403661295666813
-10657	7908	4837	0.108683081676812	0.108683081676812
-10659	7909	7910	0.270199990406442	0.270199990406442
-10660	7911	810	0.0673953106393502	0.0673953106393502
-10661	810	7912	0.0687323400006804	0.0687323400006804
-10662	7912	7913	0.136720833756656	0.136720833756656
-10666	2255	5858	0.174722136683236	0.174722136683236
-10667	5858	1305	0.178402656879188	0.178402656879188
-10668	1305	7915	0.248888691440438	0.248888691440438
-12170	8573	8574	0.0987973765101899	0.0987973765101899
-10670	6847	7916	0.0984178968171368	0.0984178968171368
-10671	7916	7485	0.0976761282305841	0.0976761282305841
-10673	7454	5692	0.103533596199028	0.103533596199028
-10674	5692	7917	0.101331500328489	0.101331500328489
-10675	7917	4966	0.0998668108920524	0.0998668108920524
-10676	4966	7918	0.102812100555259	0.102812100555259
-10677	7918	7919	0.0983963905872725	0.0983963905872725
-10678	7919	7920	0.0991546561543948	0.0991546561543948
-10679	7920	7921	0.0991411977449166	0.0991411977449166
-10680	7921	7922	0.106421383510006	0.106421383510006
-10682	7923	7924	0.106391305814005	0.106391305814005
-10684	7925	629	0.0646550267727614	0.0646550267727614
-10685	629	7926	0.00919464810452742	0.00919464810452742
-10686	7927	7928	0.0412650483746168	0.0412650483746168
-10687	7928	7929	0.155361420508855	0.155361420508855
-10688	7929	6922	0.0195376725753923	0.0195376725753923
-10689	6922	6736	0.174720460074468	0.174720460074468
-10691	7930	7931	0.0129516773904198	0.0129516773904198
-10692	7931	1511	0.391618540945239	0.391618540945239
-10693	1511	7932	0.0409032080648905	0.0409032080648905
-10694	7932	3280	0.112386881702983	0.112386881702983
-10696	4635	6586	0.185505221951206	0.185505221951206
-10698	6668	787	0.109054104365323	0.109054104365323
-10699	787	6002	0.243058044096108	0.243058044096108
-10702	7934	1008	1.1041513689359	1.1041513689359
-10704	4497	7935	0.109080059964542	0.109080059964542
-10705	7935	7936	0.375437621590472	0.375437621590472
-10706	7936	7937	0.0440200903162904	0.0440200903162904
-10708	3966	3963	0.0923048136404676	0.0923048136404676
-10710	6243	7938	0.0544857736456965	0.0544857736456965
-10711	7938	7571	0.0517149905092859	0.0517149905092859
-10712	7571	7939	0.0378829783952266	0.0378829783952266
-10714	7940	5872	0.0757028634173436	0.0757028634173436
-10715	5872	1324	0.177578299705823	0.177578299705823
-10716	1324	1380	0.1760884455939	0.1760884455939
-10717	1380	7941	0.0581557503278793	0.0581557503278793
-10718	7941	6844	0.0845562612846107	0.0845562612846107
-10719	6844	4696	0.11746862405599	0.11746862405599
-10720	4696	7452	0.157863437357233	0.157863437357233
-10722	5690	5337	0.242972143995655	0.242972143995655
-10724	7942	7943	0.14470003055266	0.14470003055266
-10725	7943	1056	0.118222446008981	0.118222446008981
-10726	1056	7944	0.0800381081986229	0.0800381081986229
-10727	7944	6249	0.201854530416454	0.201854530416454
-10728	6249	7945	0.201602089629263	0.201602089629263
-10729	7945	1497	0.20081804408168	0.20081804408168
-10730	1497	186	0.202686112287629	0.202686112287629
-10731	186	7798	0.0846089584800808	0.0846089584800808
-10732	7798	1714	0.126110593452085	0.126110593452085
-10734	7946	1580	0.141640668503246	0.141640668503246
-10735	1580	7947	0.292520501534348	0.292520501534348
-10736	7948	2142	0.372172819192242	0.372172819192242
-10738	7949	7950	0.022809009376778	0.022809009376778
-10739	7950	2916	0.200611278039498	0.200611278039498
-10741	2915	7951	0.200419085698686	0.200419085698686
-10743	7952	7953	0.0110105423016681	0.0110105423016681
-10745	7954	7631	0.201162741792968	0.201162741792968
-16610	5355	7889	0.146740030035641	0.146740030035641
-10746	7631	7955	0.197131063915064	0.197131063915064
-10748	7956	6942	0.115194637181012	0.115194637181012
-12305	8628	8641	0.0276795827309073	0.0276795827309073
-10750	4939	4687	0.409424899618544	0.409424899618544
-10751	4687	7959	0.501489716289273	0.501489716289273
-10752	7959	7960	0.103838798829226	0.103838798829226
-10753	7960	5096	0.0880537297967434	0.0880537297967434
-10754	5096	7961	0.0549628705336601	0.0549628705336601
-10756	7962	7963	0.129400960231747	0.129400960231747
-10757	7963	7964	0.0109989745271633	0.0109989745271633
-10758	7964	7093	0.177295071329975	0.177295071329975
-10759	7093	7965	0.0553949557893182	0.0553949557893182
-10760	7965	3937	0.0117544286846151	0.0117544286846151
-10761	3937	7966	0.0655333417817751	0.0655333417817751
-10762	7966	7967	0.00514903654400709	0.00514903654400709
-10763	7967	7968	0.0154207763703831	0.0154207763703831
-10764	7968	7969	0.120137734300265	0.120137734300265
-10765	7969	7970	0.0235045509998941	0.0235045509998941
-10766	7970	4938	0.199335986652222	0.199335986652222
-10768	6788	4721	0.150986476371322	0.150986476371322
-10769	4721	667	0.112227110724083	0.112227110724083
-10770	667	5130	0.0364809731603039	0.0364809731603039
-10771	5130	7141	0.148468037583607	0.148468037583607
-10772	7141	7973	0.0653535267620459	0.0653535267620459
-10773	7973	2883	0.0864280151657955	0.0864280151657955
-10774	2883	4607	0.164926871665991	0.164926871665991
-10775	4607	5044	0.166914948534143	0.166914948534143
-10776	5044	6491	0.0452504465788914	0.0452504465788914
-10777	6491	7974	0.124696259323388	0.124696259323388
-10778	7974	3674	0.0837503652675649	0.0837503652675649
-10780	7975	7976	0.0210158411356976	0.0210158411356976
-10781	7976	2348	0.132347730703915	0.132347730703915
-10782	2348	4153	0.174709468744017	0.174709468744017
-10783	4153	4740	0.173977137035244	0.173977137035244
-10784	4740	6535	0.176711434597363	0.176711434597363
-10785	6535	7977	0.164237503877208	0.164237503877208
-10787	7978	692	0.202230219594829	0.202230219594829
-10788	692	7979	0.202124611474851	0.202124611474851
-10790	7980	1194	0.168544434179807	0.168544434179807
-10791	1194	7981	0.0214611132807924	0.0214611132807924
-10793	1195	7982	0.0213718360054606	0.0213718360054606
-10794	7982	3783	0.200590566648469	0.200590566648469
-10795	3783	7983	0.155575717720948	0.155575717720948
-10797	947	7986	0.165669448326255	0.165669448326255
-10798	7986	4887	0.171543568824384	0.171543568824384
-10800	104	7987	0.0531910934067007	0.0531910934067007
-10801	7987	7283	0.14149347529597	0.14149347529597
-10803	4249	1782	0.204738067086155	0.204738067086155
-10804	1782	7202	0.196638037803866	0.196638037803866
-10805	7202	5813	0.202462167506831	0.202462167506831
-10806	5813	7720	0.198881694965003	0.198881694965003
-10831	5664	5936	0.10457956834692	0.10457956834692
-10807	7720	7988	2.41654683926542	2.41654683926542
-10808	3557	815	0.15408456375045	0.15408456375045
-10809	815	7836	0.141625491803193	0.141625491803193
-10810	7836	7989	0.137956171688053	0.137956171688053
-10811	7989	7990	0.133814544271225	0.133814544271225
-10812	7990	7991	0.00435891657982006	0.00435891657982006
-10813	7991	7992	0.00504883599617259	0.00504883599617259
-10814	7992	3667	0.218697319390466	0.218697319390466
-10818	4607	7994	0.175458215250442	0.175458215250442
-10819	7994	7995	0.17352002006779	0.17352002006779
-10820	7995	664	0.00413178605963205	0.00413178605963205
-10821	664	7998	0.00436495014442939	0.00436495014442939
-10822	7998	7999	0.17836184127639	0.17836184127639
-10824	6329	4163	0.106458655644295	0.106458655644295
-10825	4163	4772	0.262069785544738	0.262069785544738
-10826	4772	6551	0.176006441608747	0.176006441608747
-10827	6551	8001	0.169733521019883	0.169733521019883
-10828	8001	8002	0.186888519126424	0.186888519126424
-10829	8002	3800	0.199472684499289	0.199472684499289
-10830	3800	5664	0.0496163554354094	0.0496163554354094
-10832	5936	934	0.175672791884477	0.175672791884477
-10833	934	5818	0.103656977616086	0.103656977616086
-10834	5818	2219	0.0798383163598858	0.0798383163598858
-10835	2219	4869	0.163069738486709	0.163069738486709
-10836	4869	8003	0.190225091069506	0.190225091069506
-10837	8003	5468	0.173414227417019	0.173414227417019
-10838	5468	6220	0.124444185392524	0.124444185392524
-10841	5175	8005	0.198062000656316	0.198062000656316
-10844	8006	681	0.244474486801046	0.244474486801046
-10845	681	3340	0.0902358208620103	0.0902358208620103
-10847	7885	682	0.0896800723137281	0.0896800723137281
-10848	682	580	0.244861214317874	0.244861214317874
-10850	5334	6321	0.121951239816061	0.121951239816061
-10851	6321	8007	0.186507250461399	0.186507250461399
-10852	8007	8008	0.042606728375189	0.042606728375189
-10853	8008	8009	0.0463471911266823	0.0463471911266823
-10854	8009	8010	0.0102891732268637	0.0102891732268637
-10855	8010	8011	0.0998884840922572	0.0998884840922572
-10856	8011	8012	0.201197445523876	0.201197445523876
-10857	8012	6246	0.199805617134822	0.199805617134822
-10858	6246	8013	0.200864024373594	0.200864024373594
-10859	8013	2310	0.103900456751802	0.103900456751802
-10860	2310	1494	0.0983991417332815	0.0983991417332815
-10861	1494	183	0.203419998804159	0.203419998804159
-10862	183	1711	0.201968707186781	0.201968707186781
-16611	7889	9327	0.146157951939095	0.146157951939095
-10863	1711	8014	0.204806773712675	0.204806773712675
-10864	8014	6157	0.126319530562447	0.126319530562447
-10865	6157	1577	0.0829958932471693	0.0829958932471693
-10867	7968	8016	0.0140119714836204	0.0140119714836204
-10869	2294	1531	0.46192746891159	0.46192746891159
-10871	8017	1203	0.169906498983342	0.169906498983342
-10872	1203	8018	0.0221945337202718	0.0221945337202718
-10873	8018	3780	0.199572680726093	0.199572680726093
-10874	3780	8019	0.153206883868779	0.153206883868779
-10875	8019	952	0.177861736820837	0.177861736820837
-10876	952	8020	0.175149595226483	0.175149595226483
-10877	8020	4891	0.159178167143814	0.159178167143814
-10878	4891	8021	0.18577336394487	0.18577336394487
-10879	8021	5489	0.173842148316324	0.173842148316324
-10880	5489	8022	0.202303315910377	0.202303315910377
-10882	5166	8023	0.173986701720281	0.173986701720281
-10883	8023	2353	0.177612171175383	0.177612171175383
-10884	2353	4155	0.173655528353614	0.173655528353614
-10885	4155	4742	0.173355871166643	0.173355871166643
-10886	4742	6537	0.176328961502794	0.176328961502794
-10887	6537	8024	0.165303556900913	0.165303556900913
-10889	3030	3025	0.111248274146309	0.111248274146309
-10891	8025	8026	0.0640627296443105	0.0640627296443105
-10893	3576	5643	0.138707185733922	0.138707185733922
-10894	5643	4348	0.139896948951005	0.139896948951005
-10895	4348	6346	0.137784232527167	0.137784232527167
-10897	8027	697	0.20001854589906	0.20001854589906
-10898	697	8028	0.202096920971429	0.202096920971429
-10900	8029	2876	0.123948984730939	0.123948984730939
-10901	2876	7628	0.141637704476922	0.141637704476922
-10902	7628	7803	0.129093895003183	0.129093895003183
-10903	7803	8030	0.203887723487366	0.203887723487366
-10904	750	1568	0.143385969503008	0.143385969503008
-10905	1568	356	0.136646760403047	0.136646760403047
-10907	3449	6863	0.17900718937772	0.17900718937772
-10908	6863	3068	0.174598273817653	0.174598273817653
-10909	3068	8031	0.0302783785251902	0.0302783785251902
-10910	8031	3188	0.14422007961407	0.14422007961407
-10912	3499	8032	0.199010937916898	0.199010937916898
-10913	8032	8033	0.200333001057217	0.200333001057217
-10915	5667	598	0.0644126037668526	0.0644126037668526
-10916	598	58	0.177763601732474	0.177763601732474
-10919	5970	8036	0.0505810885650185	0.0505810885650185
-10920	8036	3015	0.0580577132309736	0.0580577132309736
-10921	3015	8037	0.0464238660315039	0.0464238660315039
-10922	8037	4384	0.0544799142925035	0.0544799142925035
-10923	4384	8038	0.0538947325800234	0.0538947325800234
-10924	8038	8039	0.0466438161180549	0.0466438161180549
-10925	8039	8040	0.00584498801301113	0.00584498801301113
-10926	8040	8041	0.0523763426314988	0.0523763426314988
-10927	8041	8042	0.0530979313391782	0.0530979313391782
-10928	8042	8043	0.107654120371494	0.107654120371494
-10929	8043	8044	0.0544759880197041	0.0544759880197041
-10930	8044	8045	0.0487657640583263	0.0487657640583263
-10931	8045	8046	0.0550233762997563	0.0550233762997563
-10932	8046	8047	0.0497918467778446	0.0497918467778446
-10933	8047	8048	0.0560301584180681	0.0560301584180681
-10934	8048	6177	0.0498105660603093	0.0498105660603093
-10937	8049	8050	0.0514663482815545	0.0514663482815545
-10939	5597	7545	0.109426166768049	0.109426166768049
-10940	7545	8051	0.69043474044403	0.69043474044403
-10943	4956	7224	0.100934524697699	0.100934524697699
-10944	7224	8052	0.0514703494422073	0.0514703494422073
-10945	8052	8053	0.0516967622411713	0.0516967622411713
-10946	8053	8054	0.0428181869535947	0.0428181869535947
-10947	8054	6644	0.0437760044869343	0.0437760044869343
-10948	6644	251	0.0675496864417695	0.0675496864417695
-10949	251	3950	0.064659952202738	0.064659952202738
-10950	3950	8056	0.0623263752149148	0.0623263752149148
-10951	8056	5609	0.0582215030638228	0.0582215030638228
-10952	5609	8057	0.0511983070002347	0.0511983070002347
-10953	8057	3730	0.0552226014136858	0.0552226014136858
-10954	3730	8058	0.106434809873425	0.106434809873425
-10956	5917	8060	0.0615467128621124	0.0615467128621124
-10957	8060	8061	0.0595626505884908	0.0595626505884908
-10958	8061	8062	0.120093210467761	0.120093210467761
-10960	8063	4634	0.154652934390646	0.154652934390646
-10961	4634	4549	0.20934037971115	0.20934037971115
-10962	4549	8064	0.293727880710195	0.293727880710195
-10966	5216	3396	0.0579299126969349	0.0579299126969349
-10967	3396	8065	0.0454362838279539	0.0454362838279539
-10968	8065	5710	0.0481473121637486	0.0481473121637486
-10969	5710	8066	0.0449725321072065	0.0449725321072065
-10970	8066	7433	0.0497100835030792	0.0497100835030792
-10971	7433	8069	0.0438793771122388	0.0438793771122388
-10972	8069	7182	0.0471375837035957	0.0471375837035957
-20567	10854	10857	0.225655121951984	0.225655121951984
-10973	7182	8070	0.0452974861696144	0.0452974861696144
-10974	8070	8071	0.0479228077199932	0.0479228077199932
-10975	8071	8072	0.0470353472529161	0.0470353472529161
-10976	8072	1097	0.0443841816938638	0.0443841816938638
-10978	8073	5318	0.014674630653103	0.014674630653103
-10979	5318	2905	0.0312080465120251	0.0312080465120251
-10980	2905	7145	0.104770590384922	0.104770590384922
-10981	7145	5123	0.105925863098076	0.105925863098076
-10982	5123	4737	0.104660211196924	0.104660211196924
-10983	4737	6783	0.106266768581811	0.106266768581811
-10984	6783	7367	0.10603565613408	0.10603565613408
-12610	8772	8773	0.0502119000696978	0.0502119000696978
-10987	3133	3905	0.108335751010408	0.108335751010408
-10988	3905	1043	0.106035430930181	0.106035430930181
-10989	1043	8074	0.0531930855223622	0.0531930855223622
-10990	8074	6278	0.0525006902367685	0.0525006902367685
-10991	6278	8075	0.105351603899057	0.105351603899057
-10992	8075	5007	0.100650315286722	0.100650315286722
-10993	5007	8076	0.0416106781167173	0.0416106781167173
-10995	8025	7689	0.0805451553909581	0.0805451553909581
-10996	7689	4508	0.0814563900003029	0.0814563900003029
-10997	4508	3466	0.0836603655346893	0.0836603655346893
-10998	3466	6023	0.0805527124085535	0.0805527124085535
-10999	6023	3872	0.0834734840918988	0.0834734840918988
-11000	3872	8080	0.0833038712417768	0.0833038712417768
-11002	3967	8081	0.0785869791186196	0.0785869791186196
-11004	6348	3039	0.0931730621198353	0.0931730621198353
-11005	3039	8080	0.190356710856614	0.190356710856614
-11006	8080	8082	0.0884015044030203	0.0884015044030203
-11008	6424	4647	0.0970252568524678	0.0970252568524678
-11009	4647	8083	0.151040975226462	0.151040975226462
-16204	9846	7728	0.404619504399153	0.404619504399153
-11010	4970	8084	0.141573509395187	0.141573509395187
-11012	6398	7450	0.0587460292912133	0.0587460292912133
-11013	7450	5682	0.0978645396723703	0.0978645396723703
-11014	5682	8085	0.19215729634673	0.19215729634673
-11015	8085	6825	0.00461462117405417	0.00461462117405417
-11016	6825	549	0.386380234242036	0.386380234242036
-11017	549	6259	0.219376470776871	0.219376470776871
-11018	6259	8086	0.305359073933419	0.305359073933419
-11019	8086	1485	0.202208842336051	0.202208842336051
-11023	8088	8089	0.0138986527527033	0.0138986527527033
-11024	8089	8090	0.00683010177656819	0.00683010177656819
-11025	8090	8091	0.110435202693889	0.110435202693889
-11026	7961	8092	0.198854876063874	0.198854876063874
-11028	5855	1340	0.201837936768745	0.201837936768745
-11029	1340	8094	0.205566060887405	0.205566060887405
-11030	8094	4699	0.204173926089909	0.204173926089909
-11031	4699	8095	0.200461574437924	0.200461574437924
-11032	8095	8096	0.201918867294297	0.201918867294297
-11033	8096	6823	0.198988761465987	0.198988761465987
-11034	6823	772	0.204865532850049	0.204865532850049
-11036	6007	6252	0.210749028817316	0.210749028817316
-11037	6252	8097	0.20159640654511	0.20159640654511
-11039	6091	8098	0.0302498178580294	0.0302498178580294
-11040	8098	8099	0.0194131905433523	0.0194131905433523
-11041	8099	6924	0.166900367789548	0.166900367789548
-11042	6924	8100	0.161859559583179	0.161859559583179
-11043	8100	1241	0.0380629815604356	0.0380629815604356
-11045	6980	7942	0.133638145181839	0.133638145181839
-11046	7942	5338	0.0765467348148991	0.0765467348148991
-11048	5442	7919	0.212135491175046	0.212135491175046
-11049	7919	4410	0.19312496970157	0.19312496970157
-11050	4410	8103	0.226886968788061	0.226886968788061
-11051	8103	4283	0.17035467585884	0.17035467585884
-11053	8104	7854	0.0946426330892721	0.0946426330892721
-11054	7854	8105	0.0433309511619061	0.0433309511619061
-11055	8106	6776	0.129541839197132	0.129541839197132
-11056	6776	6152	0.13334664352248	0.13334664352248
-11057	6152	3997	0.133550546612879	0.133550546612879
-11058	3997	7046	0.134234793318191	0.134234793318191
-11059	7046	7376	0.132775137258175	0.132775137258175
-11060	7376	3435	0.135417405491425	0.135417405491425
-11063	7764	5715	0.0517371191288579	0.0517371191288579
-11064	5715	8107	0.0482057757930101	0.0482057757930101
-11065	8107	7435	0.0500858095958938	0.0500858095958938
-11066	7435	8108	0.0493949795014098	0.0493949795014098
-11067	8108	7174	0.049625706970036	0.049625706970036
-11068	7174	6739	0.0493949818685724	0.0493949818685724
-11069	6739	7789	0.0481559013551591	0.0481559013551591
-11070	7789	6645	0.0506327285203027	0.0506327285203027
-11071	6645	1136	0.0491201558695857	0.0491201558695857
-11072	1136	6995	0.0494363433732341	0.0494363433732341
-11073	6995	7503	0.049590164320003	0.049590164320003
-11074	7503	8109	0.100703299932673	0.100703299932673
-11075	8109	7480	0.0534769030186113	0.0534769030186113
-11076	7480	5580	0.0516905707687601	0.0516905707687601
-11077	5580	8110	0.0497706020063474	0.0497706020063474
-11078	8110	8111	0.0487450776836639	0.0487450776836639
-11079	8111	8112	0.694365013204936	0.694365013204936
-11080	1262	4539	0.0997555409236608	0.0997555409236608
-11081	4539	6285	0.098678051142926	0.098678051142926
-11083	2717	8113	0.100251109237605	0.100251109237605
-11085	8114	8115	0.096187670432143	0.096187670432143
-11086	8115	5626	0.201348891867615	0.201348891867615
-11088	2507	8116	0.0493483893872719	0.0493483893872719
-11089	8116	1238	0.100702597753866	0.100702597753866
-11090	1238	4792	0.032813432065695	0.032813432065695
-11091	4792	4812	0.0677278405661894	0.0677278405661894
-11092	4812	2152	0.0672921980026174	0.0672921980026174
-11093	2152	2179	0.0344341477791983	0.0344341477791983
-11094	2179	6304	0.100339028034619	0.100339028034619
-11095	6304	6426	0.101616906343387	0.101616906343387
-11096	6426	5344	0.101029409154815	0.101029409154815
-11097	5344	4640	0.0949596649493475	0.0949596649493475
-11098	4640	1261	0.0990622828589398	0.0990622828589398
-11100	3674	8117	0.125664760723522	0.125664760723522
-11101	8117	8118	0.0959168081132613	0.0959168081132613
-11102	8118	8119	0.126940211454871	0.126940211454871
-11103	8119	8120	0.01117909521949	0.01117909521949
-11104	8120	2680	0.0506435066002237	0.0506435066002237
-11105	2680	7576	0.0851117723335375	0.0851117723335375
-11106	7576	7833	0.0050110745435388	0.0050110745435388
-16206	5823	7210	0.206033080289906	0.206033080289906
-11107	7833	8121	0.0770500763169566	0.0770500763169566
-11108	8121	8035	0.0465513466723509	0.0465513466723509
-11110	807	8122	0.0835494437055617	0.0835494437055617
-11111	8122	8123	0.0673397864842803	0.0673397864842803
-11112	8123	3017	0.0101257363562013	0.0101257363562013
-11114	8124	8125	0.0101518907891953	0.0101518907891953
-11115	8125	2367	0.124673068713839	0.124673068713839
-11116	2367	8126	0.113318754907998	0.113318754907998
-11117	8126	1826	0.2011636326138	0.2011636326138
-11119	8127	8128	0.150025905824831	0.150025905824831
-11121	2887	8129	0.081938792894379	0.081938792894379
-11122	8129	8130	0.106964546123147	0.106964546123147
-11123	8130	4728	0.104978647949955	0.104978647949955
-11124	4728	6795	0.108689532522494	0.108689532522494
-11125	6795	7347	0.102216150252819	0.102216150252819
-11126	7347	5393	0.105889579896167	0.105889579896167
-11127	5393	8131	0.054562518485416	0.054562518485416
-11128	8131	8132	0.0481675689920574	0.0481675689920574
-11129	8132	3895	0.109975096473535	0.109975096473535
-11130	3895	1027	0.10512607647723	0.10512607647723
-11131	1027	8133	0.0540856357592879	0.0540856357592879
-12777	8831	8832	0.188959131880304	0.188959131880304
-11133	6270	8134	0.0524343047299347	0.0524343047299347
-11134	8134	8135	0.0535628703960502	0.0535628703960502
-11136	8136	8137	0.085310565822113	0.085310565822113
-11137	8137	6283	0.0924164471878071	0.0924164471878071
-11138	6283	8138	0.0880043396162394	0.0880043396162394
-11139	8138	8139	0.093883258506383	0.093883258506383
-11140	8139	3142	0.0916816056478044	0.0916816056478044
-11141	3142	5416	0.0909467644852468	0.0909467644852468
-11142	5416	8140	0.0909305385237858	0.0909305385237858
-11144	3154	4972	0.0951253779669951	0.0951253779669951
-11145	4972	8141	0.159341748119657	0.159341748119657
-11147	8142	7088	0.0975513520982515	0.0975513520982515
-11148	7088	971	0.0957796137604222	0.0957796137604222
-11149	971	7402	0.0550171923708008	0.0550171923708008
-11150	7402	5289	0.0484207753056408	0.0484207753056408
-11152	3320	8143	0.077853024278325	0.077853024278325
-11153	8143	5756	0.0805728425443714	0.0805728425443714
-11154	5756	7328	0.0873058149168626	0.0873058149168626
-11155	7328	2087	0.0932446680916279	0.0932446680916279
-12803	4082	3763	0.178907695562899	0.178907695562899
-11158	4115	4117	0.0440125760632801	0.0440125760632801
-11159	4117	6504	0.0374084190760855	0.0374084190760855
-11160	6504	6677	0.044394894025319	0.044394894025319
-11161	6677	8029	0.0937961823239111	0.0937961823239111
-11162	8029	8144	0.0511329046048641	0.0511329046048641
-11163	8144	8145	0.0135266374241744	0.0135266374241744
-11165	4223	1001	0.0531658581374023	0.0531658581374023
-11167	4374	2855	0.170827518580558	0.170827518580558
-11169	8146	4313	0.17183605887504	0.17183605887504
-11171	5444	7921	0.207916650376417	0.207916650376417
-11172	7921	4408	0.197533961318481	0.197533961318481
-11174	8147	644	0.13870723980062	0.13870723980062
-11175	644	7273	0.132830481063153	0.132830481063153
-11176	7273	1992	0.0923486278054484	0.0923486278054484
-11177	1992	1976	0.0346172149199892	0.0346172149199892
-11178	1976	4591	0.135026001443702	0.135026001443702
-11179	4591	6478	0.132622992610531	0.132622992610531
-12836	8855	8856	0.0453127355156614	0.0453127355156614
-11180	6478	2462	0.14279254357733	0.14279254357733
-11182	8148	8149	0.201096301426274	0.201096301426274
-11183	8149	8150	0.201154462707023	0.201154462707023
-11185	2461	5905	0.204782750962282	0.204782750962282
-11186	5905	8151	0.200573430726899	0.200573430726899
-11187	8151	790	0.199941729347635	0.199941729347635
-11188	790	3583	0.202642621733606	0.202642621733606
-11189	3583	4354	0.202475015345548	0.202475015345548
-11190	4354	8152	0.200309115545572	0.200309115545572
-11191	8152	3057	0.206933046688651	0.206933046688651
-11192	3057	8153	0.186611026973769	0.186611026973769
-11194	1060	8154	0.173008298211734	0.173008298211734
-11195	8154	8155	0.177900871903465	0.177900871903465
-11196	8155	8156	0.167407375878646	0.167407375878646
-11197	8156	4775	0.251673348312152	0.251673348312152
-11198	4775	6553	0.132857734263153	0.132857734263153
-11199	6553	8157	0.106438324963657	0.106438324963657
-11201	2232	5133	0.19052148019247	0.19052148019247
-11202	5133	4902	0.0151263568070176	0.0151263568070176
-11203	4902	6619	0.197484990473566	0.197484990473566
-11205	8158	8159	0.20585122765193	0.20585122765193
-11207	8160	8161	0.016887203978	0.016887203978
-11221	106	61	0.00533283632570931	0.00533283632570931
-11222	61	65	0.207145778882675	0.207145778882675
-11224	103	8170	0.0169041191858478	0.0169041191858478
-11225	8170	8171	0.361108877807587	0.361108877807587
-11226	8171	8172	0.190446564346409	0.190446564346409
-11228	8173	8174	0.0754029121625499	0.0754029121625499
-11229	8174	8175	0.417052793540933	0.417052793540933
-11231	8176	8177	0.0299391686417842	0.0299391686417842
-11232	8177	8178	0.202215537578589	0.202215537578589
-11233	8178	8179	0.11808571362223	0.11808571362223
-11234	8179	8163	0.126818785158071	0.126818785158071
-11236	4228	8181	0.209470643186114	0.209470643186114
-11269	4227	8200	0.197818013323833	0.197818013323833
-11237	8181	65	0.190124873120192	0.190124873120192
-11238	65	8172	0.00592368117466438	0.00592368117466438
-11239	8172	8178	0.446545243407564	0.446545243407564
-12886	8876	655	0.00596005420121878	0.00596005420121878
-11242	8183	8184	0.228538005170478	0.228538005170478
-11245	8162	8186	0.154667884886688	0.154667884886688
-11246	8186	8187	0.175562487769928	0.175562487769928
-11249	3633	8188	0.0150923041998694	0.0150923041998694
-11250	8188	8189	0.270579217097142	0.270579217097142
-11251	8189	8176	0.0989590805052705	0.0989590805052705
-11253	8163	3643	0.149826975112258	0.149826975112258
-11255	8190	1804	0.201671276037755	0.201671276037755
-11257	8191	8192	0.0154162495075233	0.0154162495075233
-11258	8192	8193	0.181517364616001	0.181517364616001
-11259	8193	8194	0.180264399151985	0.180264399151985
-11261	8181	3550	0.192378625445026	0.192378625445026
-11264	8186	8197	0.16597516800592	0.16597516800592
-11265	8197	8198	0.19583924016197	0.19583924016197
-11267	8199	8197	0.123986592502342	0.123986592502342
-11271	8194	8171	0.202821007714315	0.202821007714315
-11272	8171	8195	0.195495736534207	0.195495736534207
-11273	8195	8201	0.207035429354564	0.207035429354564
-11275	8202	8174	0.0167300114490718	0.0167300114490718
-11277	8198	8167	0.130702597640292	0.130702597640292
-11278	8167	8203	0.122618976220882	0.122618976220882
-11279	8203	8204	0.327046093817032	0.327046093817032
-11280	4228	4229	0.198835732908948	0.198835732908948
-11281	4229	8205	0.301334691508365	0.301334691508365
-11282	8206	8190	0.113799565910968	0.113799565910968
-11284	8201	4227	0.0154895076655846	0.0154895076655846
-11286	8207	8200	0.0930040479254132	0.0930040479254132
-11288	8193	8184	0.208283527691618	0.208283527691618
-11316	5155	2238	0.0837223321108041	0.0837223321108041
-11289	8184	8189	0.18616179415052	0.18616179415052
-11291	3257	8208	0.321455747501831	0.321455747501831
-11293	443	8209	0.110751336507506	0.110751336507506
-11294	392	8179	0.178734728363983	0.178734728363983
-11296	8162	6291	0.216060929512084	0.216060929512084
-11297	6291	7342	0.196043159951137	0.196043159951137
-11645	8348	6433	0.104796073662296	0.104796073662296
-11299	7342	5274	0.233799434282417	0.233799434282417
-11300	61	3550	0.201334976523304	0.201334976523304
-11301	3550	4229	0.200151526253302	0.200151526253302
-11303	5279	3162	0.0990447395902117	0.0990447395902117
-11304	3162	4979	0.101293558978732	0.101293558978732
-11305	4979	8126	0.0993695918525221	0.0993695918525221
-11306	8126	4335	0.0910331896522206	0.0910331896522206
-11307	4335	8210	0.0476841899874069	0.0476841899874069
-11308	8210	5040	0.0521232799197054	0.0521232799197054
-11309	5040	8005	0.0976580173278249	0.0976580173278249
-11310	8005	4307	0.0466427658725356	0.0466427658725356
-11311	4307	995	0.052631404385892	0.052631404385892
-11313	8211	5951	0.199050744316133	0.199050744316133
-11314	5951	5143	0.0913688712241713	0.0913688712241713
-11315	5143	5155	0.025420878561629	0.025420878561629
-11317	2238	4911	0.203010994943857	0.203010994943857
-11318	4911	6611	0.201886473833407	0.201886473833407
-11319	6611	8212	0.197101479655197	0.197101479655197
-11320	8212	8213	0.206955997470903	0.206955997470903
-11323	5950	5142	0.147533492116586	0.147533492116586
-11326	2237	4910	0.20422309503448	0.20422309503448
-11327	4910	6612	0.200274596012582	0.200274596012582
-11328	6612	8215	0.196974435405611	0.196974435405611
-11329	8215	8216	0.208072957327714	0.208072957327714
-11331	7959	8217	0.0106613346433968	0.0106613346433968
-11337	289	8219	0.0101386145536838	0.0101386145536838
-11338	8219	4483	0.0263974796072716	0.0263974796072716
-11340	8220	289	0.116841869555958	0.116841869555958
-11483	8221	8222	0.0466544327533727	0.0466544327533727
-11342	8223	7906	0.0355112223964134	0.0355112223964134
-11343	7906	4187	0.0959478466054884	0.0959478466054884
-11344	4187	8224	0.108554994700497	0.108554994700497
-11345	8224	2512	0.0267513344361619	0.0267513344361619
-11346	2512	6726	0.134329958691173	0.134329958691173
-11347	6726	8226	0.0541066682112551	0.0541066682112551
-11348	8226	1754	0.0582360854290831	0.0582360854290831
-11352	8227	8228	0.0477813036978224	0.0477813036978224
-11353	8228	2164	0.0100092856224142	0.0100092856224142
-11354	2164	8229	0.117341992338054	0.117341992338054
-11355	8229	6417	0.132790064578642	0.132790064578642
-11356	6417	6925	0.066680142142332	0.066680142142332
-11357	6925	4623	0.0658013116163711	0.0658013116163711
-11358	4623	1242	0.132924383309181	0.132924383309181
-11359	1242	8230	0.117419950970456	0.117419950970456
-11360	8230	2709	0.0877593926636965	0.0877593926636965
-11361	2709	2723	0.0586886121966142	0.0586886121966142
-11362	2723	8231	0.126334352112189	0.126334352112189
-11363	8231	8232	0.00800071585537006	0.00800071585537006
-11364	8232	8233	0.00985605768408299	0.00985605768408299
-11368	8223	8219	0.0801446034429079	0.0801446034429079
-11374	8234	8235	0.161648892640997	0.161648892640997
-11375	8235	8236	0.12616333160407	0.12616333160407
-11379	4843	910	0.143586236704503	0.143586236704503
-16194	9844	7725	1.4119245996206	1.4119245996206
-11388	2064	8243	0.0180732464676321	0.0180732464676321
-11389	8243	8244	0.307196973753055	0.307196973753055
-11392	8246	3316	0.0456634204130967	0.0456634204130967
-11394	6201	6945	0.172713645832468	0.172713645832468
-11395	6945	8138	0.203649557134895	0.203649557134895
-11396	8138	2880	0.164233861501064	0.164233861501064
-11398	6200	6944	0.169916988893137	0.169916988893137
-11399	6944	8139	0.203898136987997	0.203898136987997
-11400	8139	2879	0.160611633174386	0.160611633174386
-11401	2879	6408	0.0322091251783491	0.0322091251783491
-11402	6408	6412	0.266159968303504	0.266159968303504
-11403	6412	8247	0.0505479778201866	0.0505479778201866
-11407	6190	6948	0.200111149085838	0.200111149085838
-11408	6948	8142	0.198760931377031	0.198760931377031
-11409	8142	2864	0.201908008890848	0.201908008890848
-11412	8249	8067	0.737441419701283	0.737441419701283
-11424	8079	8250	0.738983904805809	0.738983904805809
-11431	412	415	0.636538521199656	0.636538521199656
-18912	10390	10391	0.0580503615423655	0.0580503615423655
-11453	8262	8263	0.292162593230546	0.292162593230546
-11468	781	8271	0.782578824666181	0.782578824666181
-11597	8330	8331	0.0435245851176098	0.0435245851176098
-11469	8272	8270	0.782084992370784	0.782084992370784
-11471	1610	1244	0.0543175525667992	0.0543175525667992
-11472	1244	8273	0.0533400242428221	0.0533400242428221
-11473	8273	8274	0.0526029519682926	0.0526029519682926
-11474	8274	8275	0.0534350213865012	0.0534350213865012
-11476	8276	1610	0.0663295545530221	0.0663295545530221
-11478	1610	8277	0.135789656985465	0.135789656985465
-11480	7861	8278	0.0143942343868779	0.0143942343868779
-11481	8278	7581	0.0343415060903181	0.0343415060903181
-11482	7581	8221	0.0532138886249367	0.0532138886249367
-11484	8222	5964	0.00591714471910066	0.00591714471910066
-11485	5964	8279	0.00703516905841087	0.00703516905841087
-11486	8279	3001	0.0966235655424771	0.0966235655424771
-11488	8275	7561	0.103690392766705	0.103690392766705
-11489	7561	8280	0.0558620890554655	0.0558620890554655
-11490	8280	6185	0.0505017539528047	0.0505017539528047
-11493	8282	8283	0.101387037651418	0.101387037651418
-11494	8283	8284	0.102270654549379	0.102270654549379
-11495	8284	8285	0.10797805598011	0.10797805598011
-11496	8285	8286	0.106400672091098	0.106400672091098
-11497	8286	4392	0.102247824152268	0.102247824152268
-11498	4392	8287	0.0166274126542335	0.0166274126542335
-11499	8287	8288	0.0799445865529155	0.0799445865529155
-11500	8288	3008	0.023689428581565	0.023689428581565
-11501	3008	8289	0.0297886059757376	0.0297886059757376
-11505	8290	8291	0.051999610902965	0.051999610902965
-11506	8291	8292	0.0471972516257623	0.0471972516257623
-11507	8292	8293	0.00657484491051097	0.00657484491051097
-11508	8293	6184	0.103933630763566	0.103933630763566
-11509	6184	7562	0.106067817024884	0.106067817024884
-11510	7562	8294	0.105991654619724	0.105991654619724
-11512	8295	8296	0.0523765388441753	0.0523765388441753
-11522	8297	8298	0.429589849820924	0.429589849820924
-11537	6093	8302	0.0171793049902436	0.0171793049902436
-11539	8303	8304	0.00530856583912826	0.00530856583912826
-11541	2195	8305	0.128463648918522	0.128463648918522
-11543	8306	8307	0.0111673306658244	0.0111673306658244
-11545	8308	8306	0.0470759818626725	0.0470759818626725
-11547	8309	8310	0.0336302381688336	0.0336302381688336
-11549	8311	8312	0.0219555493879181	0.0219555493879181
-11550	8312	8313	0.036241706253738	0.036241706253738
-11598	8331	7782	0.0493369824555625	0.0493369824555625
-11551	8313	8314	0.0512913124797426	0.0512913124797426
-11552	8314	8315	0.107868186928524	0.107868186928524
-11553	8315	8316	0.223470506469832	0.223470506469832
-11554	8316	8317	0.211788929267968	0.211788929267968
-11555	8317	6963	0.0143636308232266	0.0143636308232266
-16197	7207	1788	0.198027086450295	0.198027086450295
-11556	6963	2151	0.0672032541987901	0.0672032541987901
-11557	2151	8318	0.127422890827039	0.127422890827039
-11563	8321	5670	0.0510922996821663	0.0510922996821663
-11564	5670	8319	0.0512128921942442	0.0512128921942442
-11565	8319	7031	0.0489988317743493	0.0489988317743493
-13192	2925	5307	0.0991225747078309	0.0991225747078309
-17794	8402	10178	0.0874671474005437	0.0874671474005437
-11583	8323	8324	0.0415122975666244	0.0415122975666244
-11585	8325	8326	0.0105737020216599	0.0105737020216599
-11586	8326	8327	0.0170186899048993	0.0170186899048993
-11587	8327	4030	0.059373245074661	0.059373245074661
-11588	4030	8328	0.00887102858910589	0.00887102858910589
-11589	8328	7033	0.192077028988682	0.192077028988682
-11590	7033	3414	0.20009224997208	0.20009224997208
-11591	3414	7634	0.0490496792565584	0.0490496792565584
-11592	7634	5699	0.0501609282125079	0.0501609282125079
-11593	5699	8329	0.0491062363102631	0.0491062363102631
-11594	8329	7426	0.0512345906571307	0.0512345906571307
-11595	7426	7167	0.100906650593457	0.100906650593457
-11596	7167	8330	0.0074706340310152	0.0074706340310152
-11601	1125	8333	0.0515421912286004	0.0515421912286004
-11602	8333	7499	0.0491232128122514	0.0491232128122514
-11603	7499	6382	0.0528674106807856	0.0528674106807856
-11604	6382	3844	0.0491757077428548	0.0491757077428548
-11605	3844	8336	0.0505763419832581	0.0505763419832581
-11606	8336	5560	0.0511234189065501	0.0511234189065501
-11607	5560	7536	0.078259792036463	0.078259792036463
-17795	10178	10179	0.00714983889336217	0.00714983889336217
-11608	7536	8337	0.710353127144862	0.710353127144862
-11615	8339	8340	0.0545607270452329	0.0545607270452329
-11616	8340	6778	0.0500886204125654	0.0500886204125654
-11617	6778	1543	0.044749974690185	0.044749974690185
-11618	1543	7913	0.0484257128218018	0.0484257128218018
-11619	7913	1232	0.0498960080732329	0.0498960080732329
-11620	1232	6138	0.0513577550981739	0.0513577550981739
-11621	6138	1234	0.0484184731965446	0.0484184731965446
-11622	1234	4025	0.049897443897038	0.049897443897038
-11624	8341	6746	0.131938356933677	0.131938356933677
-11625	6746	6146	0.134278510793599	0.134278510793599
-11626	6146	4020	0.131808341418281	0.131808341418281
-11627	4020	7024	0.13680573147125	0.13680573147125
-11628	7024	7394	0.133543322276702	0.133543322276702
-11629	7394	3403	0.129241253411212	0.129241253411212
-11631	4656	1278	0.11609492718799	0.11609492718799
-11633	4529	8342	0.13081541679387	0.13081541679387
-11634	8342	8343	0.131875462531589	0.131875462531589
-11636	1275	4561	0.135792686790169	0.135792686790169
-11637	4561	8344	0.129597362082905	0.129597362082905
-11638	8344	8345	0.132615292246902	0.132615292246902
-11654	8351	8352	0.00642310935412446	0.00642310935412446
-11656	8354	3585	0.00948998635035479	0.00948998635035479
-11658	8355	7036	0.189514043057238	0.189514043057238
-11661	3420	7662	0.0473953664812579	0.0473953664812579
-11662	7662	5701	0.051310070537927	0.051310070537927
-11663	5701	8356	0.0493288418218244	0.0493288418218244
-11664	8356	7428	0.0514646959507586	0.0514646959507586
-11665	7428	7170	0.101185693406291	0.101185693406291
-11666	7170	8357	0.0511732963069457	0.0511732963069457
-11667	8357	7785	0.0488740378204359	0.0488740378204359
-11669	8358	8359	0.0429199500385996	0.0429199500385996
-11670	8359	1126	0.0542934514543922	0.0542934514543922
-11671	1126	8361	0.0465752610792189	0.0465752610792189
-11672	8361	7500	0.0458657856618734	0.0458657856618734
-11673	7500	6383	0.0540969092476656	0.0540969092476656
-11674	6383	3845	0.0488658545954006	0.0488658545954006
-11675	3845	8362	0.0512974137325796	0.0512974137325796
-11676	8362	5562	0.0492074321979192	0.0492074321979192
-11677	5562	8363	0.0405073414501016	0.0405073414501016
-11678	8363	7537	0.0387636388049137	0.0387636388049137
-11679	7537	8364	0.709659016245144	0.709659016245144
-11680	533	532	0.177767664549368	0.177767664549368
-11681	532	8365	0.019932032746647	0.019932032746647
-11683	8366	2195	0.0764354088651933	0.0764354088651933
-11712	3383	8367	0.106809468593159	0.106809468593159
-11713	8367	8368	0.0971987897456675	0.0971987897456675
-11714	8368	8369	0.0991386674985246	0.0991386674985246
-11717	5295	6973	0.135215470337054	0.135215470337054
-11718	6973	8371	0.00923487504976077	0.00923487504976077
-11719	8371	8372	0.0216052571390285	0.0216052571390285
-11720	8372	16	0.105179593848414	0.105179593848414
-11721	16	6385	0.131720726068438	0.131720726068438
-11722	6385	8373	0.136425162652677	0.136425162652677
-11723	8373	8374	0.133357418298716	0.133357418298716
-11725	8375	5538	0.102551146645578	0.102551146645578
-11726	5538	2406	0.101276420369131	0.101276420369131
-11727	2406	4291	0.0994536245434588	0.0994536245434588
-11728	4291	8376	0.0498495835403536	0.0498495835403536
-11729	8376	8377	0.0555205772000376	0.0555205772000376
-11730	8377	7717	0.202770146499174	0.202770146499174
-11731	7717	2980	0.203558742671124	0.203558742671124
-11733	6381	7626	0.0677965571067337	0.0677965571067337
-11734	7626	8378	0.0657902652889389	0.0657902652889389
-11736	3813	8379	0.0683672879873519	0.0683672879873519
-11737	8379	7491	0.0530440410997852	0.0530440410997852
-11738	7491	3832	0.0868122883126915	0.0868122883126915
-11740	8129	8380	0.134532326319759	0.134532326319759
-11741	8380	8382	0.00458704251135175	0.00458704251135175
-11743	8383	8384	0.136207849444979	0.136207849444979
-11744	8384	7838	0.138328826392976	0.138328826392976
-11746	8385	8386	0.0871147692827014	0.0871147692827014
-11749	8389	8390	0.0947169874364547	0.0947169874364547
-19614	10514	10587	0.0689139357560502	0.0689139357560502
-11751	8391	4386	0.0534420102551264	0.0534420102551264
-11752	4386	8392	0.0520924012173649	0.0520924012173649
-11753	8392	8393	0.0473152332925311	0.0473152332925311
-11754	8393	8394	0.00593400942031918	0.00593400942031918
-11755	8394	8395	0.0526072167549377	0.0526072167549377
-11756	8395	8396	0.0535245842073366	0.0535245842073366
-11757	8396	8397	0.0520127953812383	0.0520127953812383
-11758	8397	8398	0.0525440381176666	0.0525440381176666
-11759	8398	8399	0.105725944401461	0.105725944401461
-11760	8399	8400	0.0963534079842441	0.0963534079842441
-11761	8400	8401	0.00721402202643277	0.00721402202643277
-11762	8401	8402	0.0642819932248178	0.0642819932248178
-11763	8402	6180	0.0440229088580127	0.0440229088580127
-11764	6180	3304	0.105719811244021	0.105719811244021
-11765	3304	8404	0.104473728049028	0.104473728049028
-11776	2683	5360	0.148134497863423	0.148134497863423
-11779	8408	8409	0.0170504242210171	0.0170504242210171
-11780	8409	8410	0.0301331300599118	0.0301331300599118
-11781	8410	8408	0.024630163522097	0.024630163522097
-11786	8411	7068	0.119279864672347	0.119279864672347
-11787	7068	5513	0.148575970390717	0.148575970390717
-11788	5513	4445	0.14563348668729	0.14563348668729
-11795	8413	543	0.028789081158834	0.028789081158834
-11800	8038	2689	0.14574049201504	0.14574049201504
-11801	2689	8392	0.146364813323007	0.146364813323007
-11810	8316	8410	0.0688632882143238	0.0688632882143238
-11818	8318	8421	0.163109524565458	0.163109524565458
-11820	2202	8422	0.0636527332062032	0.0636527332062032
-11827	8425	8426	0.235001983383898	0.235001983383898
-11829	8427	2187	0.0976945121262096	0.0976945121262096
-11830	2187	8428	0.113051166751879	0.113051166751879
-11832	8429	8427	0.106790392513668	0.106790392513668
-11836	8432	8433	0.316135432263608	0.316135432263608
-11838	8434	8435	0.0739062863270344	0.0739062863270344
-16014	9785	9166	0.0737839272607517	0.0737839272607517
-11840	8436	8437	0.305296163280187	0.305296163280187
-11842	8438	8439	0.0899401823641934	0.0899401823641934
-11843	8439	8440	0.0855827793815302	0.0855827793815302
-11845	8441	533	0.0890672230330435	0.0890672230330435
-11847	8325	3752	0.00830034500152871	0.00830034500152871
-11848	3752	8442	0.100105658665385	0.100105658665385
-11849	8442	6773	0.103872958239997	0.103872958239997
-11850	6773	8303	0.0295834023794743	0.0295834023794743
-11851	8303	8443	0.122024126507826	0.122024126507826
-11854	8365	8445	0.12649848699983	0.12649848699983
-11856	8445	8446	0.0774789975708123	0.0774789975708123
-11858	6522	8447	0.124835406842481	0.124835406842481
-11860	8447	4244	0.0110439553261759	0.0110439553261759
-11861	4244	1787	0.20168643392703	0.20168643392703
-11862	1787	7206	0.198352393557477	0.198352393557477
-11863	7206	5819	0.204146640542909	0.204146640542909
-11864	5819	7724	0.196992932786583	0.196992932786583
-11865	7724	8448	0.0469826616672844	0.0469826616672844
-11866	8448	8449	1.1597652413984	1.1597652413984
-15932	1178	9158	0.281206093212011	0.281206093212011
-11868	529	476	0.196533269115043	0.196533269115043
-11869	476	8451	0.00692492598385206	0.00692492598385206
-11871	8452	8450	0.118857471050118	0.118857471050118
-11873	8446	8453	0.0472361723035857	0.0472361723035857
-11875	8453	1808	0.0616092600190724	0.0616092600190724
-11876	1808	8454	0.103675532542851	0.103675532542851
-11878	8455	8452	0.0832501988122618	0.0832501988122618
-11880	8456	8455	0.0488208935536257	0.0488208935536257
-11883	1807	8456	0.0645719953824934	0.0645719953824934
-11885	8454	8460	0.0468848260297017	0.0468848260297017
-11887	8460	8461	0.191542303309411	0.191542303309411
-11888	8461	8462	0.143814933384229	0.143814933384229
-11926	8479	7578	0.0514183930388008	0.0514183930388008
-11889	8462	8312	0.0813843178601785	0.0813843178601785
-11890	8312	8463	0.108687135880293	0.108687135880293
-11891	8463	8464	0.171307568098715	0.171307568098715
-11892	8464	7962	0.138415151415673	0.138415151415673
-11894	8465	8457	0.0468050869550622	0.0468050869550622
-11899	8468	3170	0.018103312819976	0.018103312819976
-11901	8469	8466	0.0123424922846296	0.0123424922846296
-11902	8466	8311	0.0903233113904637	0.0903233113904637
-11904	8470	8469	0.0396717564170432	0.0396717564170432
-11906	8296	8273	0.152532135373756	0.152532135373756
-11907	8273	5789	0.146346014371488	0.146346014371488
-11908	5789	4816	0.144635236179438	0.144635236179438
-11909	4816	8471	0.144945711618013	0.144945711618013
-11910	8471	8472	0.00337499193971306	0.00337499193971306
-13477	9099	9096	0.0859011649600223	0.0859011649600223
-11912	8473	8474	0.141151348464777	0.141151348464777
-11913	8474	8475	0.13279343346844	0.13279343346844
-11915	1346	8475	0.0349627710606267	0.0349627710606267
-11919	8313	8477	0.0691895872331652	0.0691895872331652
-11921	4846	8478	0.326789742990523	0.326789742990523
-11923	5031	6987	0.0623597305249406	0.0623597305249406
-11924	6987	5806	0.105799056021075	0.105799056021075
-11925	5806	8479	0.0532916983351864	0.0532916983351864
-11927	7578	8480	0.0539921866859616	0.0539921866859616
-11928	8480	8481	0.0438686505947476	0.0438686505947476
-11929	8481	5961	0.00656699811047763	0.00656699811047763
-11930	5961	8482	0.00665108194893408	0.00665108194893408
-11931	8482	3003	0.0997303043018087	0.0997303043018087
-11932	3003	4396	0.10605079021574	0.10605079021574
-11933	4396	8483	0.102726296828384	0.102726296828384
-11934	8483	8484	0.00648258609012086	0.00648258609012086
-11935	8484	8485	0.100141708737386	0.100141708737386
-11936	8485	8486	0.0275311475026058	0.0275311475026058
-11937	8486	8487	0.0265062604992808	0.0265062604992808
-11938	8487	8488	0.0523458198440316	0.0523458198440316
-11939	8488	8489	0.104751027795859	0.104751027795859
-11940	8489	8490	0.0990693987095691	0.0990693987095691
-11941	8490	8491	0.00745857832944624	0.00745857832944624
-11942	8491	8492	0.0518088588950486	0.0518088588950486
-11943	8492	6189	0.054888246037165	0.054888246037165
-11945	6632	7733	0.112596009055585	0.112596009055585
-12071	8507	3552	0.071078699522552	0.071078699522552
-11946	7733	8495	2.00712592676004	2.00712592676004
-11954	6568	4449	0.147875161573861	0.147875161573861
-11955	4449	5497	0.144351276811523	0.144351276811523
-11956	5497	7071	0.14871904829256	0.14871904829256
-11958	8501	8502	0.146058647776188	0.146058647776188
-11959	8502	8397	0.148207146508282	0.148207146508282
-11960	8397	2694	0.144837053832231	0.144837053832231
-11966	4737	8503	0.0843423130679838	0.0843423130679838
-11967	8399	5455	0.141833750205801	0.141833750205801
-11968	5455	2697	0.00495891013188563	0.00495891013188563
-11969	2697	8045	0.148003641728593	0.148003641728593
-11970	8045	6573	0.144311748140391	0.144311748140391
-11971	6573	4454	0.147824934616054	0.147824934616054
-11972	4454	5502	0.144725467857806	0.144725467857806
-11973	5502	7076	0.14772137009526	0.14772137009526
-11974	7076	2033	0.146029155751578	0.146029155751578
-11975	2033	5322	0.146208700799923	0.146208700799923
-11976	5322	631	0.145784380568713	0.145784380568713
-11977	631	6404	0.147332884437086	0.147332884437086
-11978	6404	2910	0.0722929712454625	0.0722929712454625
-11980	8504	8505	0.0580359403583064	0.0580359403583064
-11981	8505	6178	0.0499592014591395	0.0499592014591395
-11982	6178	8506	0.0514685264155668	0.0514685264155668
-11983	8506	8508	0.0359450086839816	0.0359450086839816
-11985	8509	8491	0.145477011516465	0.145477011516465
-11986	8491	6711	0.147675146026861	0.147675146026861
-11987	6711	8510	0.0119577509852376	0.0119577509852376
-11999	7079	2035	0.146591134901683	0.146591134901683
-12000	2035	8511	0.144080341921709	0.144080341921709
-12001	8506	6577	0.292638121021149	0.292638121021149
-12013	8514	7905	0.14392744613234	0.14392744613234
-12014	7905	8224	0.144594704272466	0.144594704272466
-12015	8224	2513	0.0408485952047996	0.0408485952047996
-12017	8223	4514	0.129566346086565	0.129566346086565
-12018	4514	5236	0.132336483238921	0.132336483238921
-12019	5236	6888	0.137583446360535	0.137583446360535
-12020	6888	8515	0.134749292102011	0.134749292102011
-18562	2839	2837	0.0398814314105002	0.0398814314105002
-12021	8515	1670	0.131131933535458	0.131131933535458
-12022	1670	8516	0.137025514768393	0.137025514768393
-12023	8516	2451	0.140387467109701	0.140387467109701
-12024	2451	3220	0.132796169496021	0.132796169496021
-12025	3220	3241	0.0110949892633217	0.0110949892633217
-12026	3241	5742	0.122723226676881	0.122723226676881
-12027	5742	5734	0.0121046279679281	0.0121046279679281
-12028	5734	5519	0.122276751203955	0.122276751203955
-12029	5519	5518	0.0183360434030607	0.0183360434030607
-12030	5518	6453	0.115919443239594	0.115919443239594
-12031	6453	8519	0.0186206290164017	0.0186206290164017
-12032	8519	6921	0.113511395757215	0.113511395757215
-12033	6921	6966	0.278590640144845	0.278590640144845
-12034	6966	2480	0.0421290693071181	0.0421290693071181
-12035	2480	2819	0.0832464241503531	0.0832464241503531
-12036	2819	1420	0.203808019181798	0.203808019181798
-12037	1420	1350	0.0610460440330561	0.0610460440330561
-12038	1350	386	0.0313326355302306	0.0313326355302306
-12039	386	8520	0.00828931624769023	0.00828931624769023
-12041	8521	8522	0.0528158272532374	0.0528158272532374
-12042	8522	8461	0.0240744692191342	0.0240744692191342
-12045	8524	8525	0.099226587437181	0.099226587437181
-12056	6652	7968	0.116416731661103	0.116416731661103
-13645	9155	9152	0.125537210877253	0.125537210877253
-12069	3016	8123	0.0144820950034519	0.0144820950034519
-12070	8123	8507	0.0310425416681892	0.0310425416681892
-12072	3552	4443	0.0963694960086714	0.0963694960086714
-12074	8536	8537	0.125429093404429	0.125429093404429
-12075	8537	8398	0.148732331324902	0.148732331324902
-12076	8398	2695	0.143717697009194	0.143717697009194
-12078	8043	6571	0.143486226041694	0.143486226041694
-15271	8458	8538	0.130887342573391	0.130887342573391
-12079	6571	4452	0.149648787475973	0.149648787475973
-12080	4452	5500	0.142780903948531	0.142780903948531
-12081	5500	7074	0.148102852377504	0.148102852377504
-12082	7074	2032	0.145681586591459	0.145681586591459
-12086	2886	7993	0.218441304114497	0.218441304114497
-12088	8130	8541	0.134523622254369	0.134523622254369
-12089	8541	8542	0.00481474032387871	0.00481474032387871
-12090	8542	8543	0.00504824966940074	0.00504824966940074
-12091	8543	8544	0.135980275793844	0.135980275793844
-12092	8544	7839	0.139416199289129	0.139416199289129
-12093	7839	819	0.136947671655105	0.136947671655105
-12094	819	3560	0.140872852825874	0.140872852825874
-12095	3560	5634	0.139405079534224	0.139405079534224
-12096	5634	4338	0.141217557097108	0.141217557097108
-12097	4338	6337	0.135602213042785	0.135602213042785
-12098	6337	3053	0.134723773393479	0.134723773393479
-12100	3691	8545	0.139072808044494	0.139072808044494
-12101	5485	8546	0.200596752868582	0.200596752868582
-12103	4888	8547	0.185876236918155	0.185876236918155
-12104	8547	5486	0.175599681021845	0.175599681021845
-12106	4889	8548	0.187588829795577	0.187588829795577
-12107	8548	5487	0.174192187356096	0.174192187356096
-12109	8549	8550	0.0264199145705686	0.0264199145705686
-12110	8550	5477	0.172910339815493	0.172910339815493
-12111	5477	8551	0.17777655236626	0.17777655236626
-12112	8551	8552	0.179401923989104	0.179401923989104
-12114	672	8553	0.00419226671708486	0.00419226671708486
-12116	8554	4600	0.174009465824247	0.174009465824247
-12117	4600	6497	0.141315269300352	0.141315269300352
-12118	6497	3685	0.0979207012351752	0.0979207012351752
-12119	3685	8132	0.140340825489325	0.140340825489325
-12120	8132	8555	0.134412189177842	0.134412189177842
-12121	8555	8556	0.00412533177852682	0.00412533177852682
-12122	8556	8557	0.00459814794721775	0.00459814794721775
-12123	8557	8558	0.132902025218854	0.132902025218854
-12124	8558	7841	0.138710880861165	0.138710880861165
-12125	7841	825	0.140880437202465	0.140880437202465
-12126	825	3566	0.136859579672601	0.136859579672601
-12127	3566	5637	0.14457832436944	0.14457832436944
-12128	5637	4341	0.139173250387063	0.139173250387063
-12129	4341	6340	0.137021300435373	0.137021300435373
-12130	6340	8560	0.107881318168938	0.107881318168938
-12131	2245	4879	0.176153654685445	0.176153654685445
-12132	4879	7358	0.24873496630677	0.24873496630677
-12133	7358	6786	0.0656034947664249	0.0656034947664249
-12134	6786	4878	0.0544981388589161	0.0544981388589161
-12135	4878	5942	0.524256212186461	0.524256212186461
-12136	5942	8561	0.0631406553785623	0.0631406553785623
-12137	8561	3127	0.0936118840285326	0.0936118840285326
-12138	3127	3131	0.0777309112767711	0.0777309112767711
-12139	3131	5914	0.112365280295693	0.112365280295693
-12140	5914	2245	0.331560162235425	0.331560162235425
-12142	8562	2334	2.72525423343991	2.72525423343991
-12144	7677	5980	0.0954252288299854	0.0954252288299854
-12145	5980	2129	0.0933556137052187	0.0933556137052187
-12146	2129	7520	0.0952025856529876	0.0952025856529876
-12147	7520	8563	0.0935887718802941	0.0935887718802941
-12148	8563	2270	0.0947410402071955	0.0947410402071955
-12149	2270	7011	0.0942715716828769	0.0942715716828769
-12150	7011	2766	0.0940480616870089	0.0940480616870089
-12151	2766	3353	0.0940568781185638	0.0940568781185638
-12152	3353	2010	0.0938087738322925	0.0938087738322925
-12153	2010	2020	0.00116816859457691	0.00116816859457691
-12154	2020	7597	0.0929046375775443	0.0929046375775443
-12155	7597	7260	0.0977180089067193	0.0977180089067193
-12156	7260	7607	0.0981798145414121	0.0981798145414121
-12157	7607	8148	0.0984109366674247	0.0984109366674247
-12158	8148	8566	0.099556755200234	0.099556755200234
-12159	8566	8567	0.0161715318927219	0.0161715318927219
-12165	7560	8570	0.0547324150634264	0.0547324150634264
-12166	8570	6187	0.0510334947129921	0.0510334947129921
-12167	6187	8571	0.106459447476842	0.106459447476842
-12168	8571	8572	0.00500250155273319	0.00500250155273319
-12169	8572	8573	0.102179560181125	0.102179560181125
-12171	8574	8575	0.108491319350075	0.108491319350075
-12172	8575	8576	0.100542104447219	0.100542104447219
-12173	8576	8577	0.00648974428476286	0.00648974428476286
-12174	8577	4394	0.10502201579173	0.10502201579173
-12175	4394	3006	0.104610459063575	0.104610459063575
-12176	3006	5958	0.107806604319072	0.107806604319072
-12177	5958	8578	0.00423483079275732	0.00423483079275732
-12178	8578	7577	0.0996748095395635	0.0996748095395635
-12179	7577	5809	0.11590556985698	0.11590556985698
-12181	5431	4429	0.103577041627779	0.103577041627779
-12182	4429	4040	0.0675516196999984	0.0675516196999984
-12183	4040	8579	0.0337698992215471	0.0337698992215471
-12184	8579	6027	0.102046173899402	0.102046173899402
-12185	6027	7864	0.042576537412	0.042576537412
-12186	7864	7863	0.0569874056816302	0.0569874056816302
-12187	7863	1834	0.10010879574602	0.10010879574602
-12188	1834	1828	0.0220165954761323	0.0220165954761323
-12189	1828	2629	0.0778176858176647	0.0778176858176647
-12190	2629	5364	0.0924919399829741	0.0924919399829741
-12191	5364	8580	0.0666180932686517	0.0666180932686517
-12192	8580	514	0.0427668694783733	0.0427668694783733
-12193	514	8581	0.0733005757458476	0.0733005757458476
-12194	8581	411	0.0548642593724076	0.0548642593724076
-12195	411	8582	0.0193916055385274	0.0193916055385274
-12200	8463	8583	0.030501567860775	0.030501567860775
-12202	8584	8585	0.0144536004398608	0.0144536004398608
-12203	8585	8586	0.0148984012969261	0.0148984012969261
-12204	8586	8587	0.0138457363467684	0.0138457363467684
-12206	7095	8584	0.00198726095451303	0.00198726095451303
-12208	8587	8588	0.0738864008587524	0.0738864008587524
-12209	8588	8088	0.0459979828668163	0.0459979828668163
-12211	8588	8088	0.0459979828668163	0.0459979828668163
-12213	7962	8589	0.0119871256203592	0.0119871256203592
-12219	2290	8595	0.0472264457525012	0.0472264457525012
-12224	8600	6960	0.0627185145557708	0.0627185145557708
-12225	6960	8590	0.111002569075664	0.111002569075664
-12226	8590	8601	0.0399166681864525	0.0399166681864525
-12227	8601	8602	0.0122006420704012	0.0122006420704012
-12229	8602	8601	0.0122006420704012	0.0122006420704012
-12231	8605	8606	0.0364944571667735	0.0364944571667735
-12232	8606	8607	0.0128764646733806	0.0128764646733806
-12233	8607	8608	0.0546695374625623	0.0546695374625623
-12234	8608	8585	0.00588263593176519	0.00588263593176519
-12238	6350	8610	0.0529261007223787	0.0529261007223787
-12276	2459	8630	0.034376801437	0.034376801437
-12278	8630	8631	0.0429012342669158	0.0429012342669158
-12279	8631	8478	0.0881202047420162	0.0881202047420162
-12280	8478	6349	0.0631900183412494	0.0631900183412494
-12281	6349	8610	0.106156240617891	0.106156240617891
-12282	8610	8633	0.00782193502715287	0.00782193502715287
-12283	8633	8235	0.439089917447406	0.439089917447406
-13838	2963	1284	0.0976236721102847	0.0976236721102847
-12291	8488	6708	0.146276219075305	0.146276219075305
-12292	6708	8574	0.146922373978856	0.146922373978856
-12293	8574	5780	0.145168342719135	0.145168342719135
-12294	5780	8284	0.145457218481639	0.145457218481639
-12295	8284	8635	0.147985754967018	0.147985754967018
-12296	8635	7895	0.145231730226047	0.145231730226047
-12297	7895	8636	0.145188764989583	0.145188764989583
-12298	8636	8536	0.0230398310291247	0.0230398310291247
-12300	8637	8638	0.051750923168378	0.051750923168378
-12306	8641	8642	0.0388526899017529	0.0388526899017529
-12322	8647	8648	0.0689932486013888	0.0689932486013888
-12324	8409	8649	0.174821115803257	0.174821115803257
-12330	8652	8653	0.0109021010822668	0.0109021010822668
-12370	127	8676	0.0230804767650593	0.0230804767650593
-13861	1773	4425	0.0478826481852338	0.0478826481852338
-12371	8676	127	0.0230804767650593	0.0230804767650593
-12374	8678	2814	0.00715247655230442	0.00715247655230442
-12375	2814	7853	0.0872240502720576	0.0872240502720576
-12379	552	3283	0.201374804580202	0.201374804580202
-12380	3283	439	0.0140574737901418	0.0140574737901418
-12381	439	440	0.131394781189403	0.131394781189403
-12383	8680	592	0.0279554969032489	0.0279554969032489
-12386	3930	5620	0.102308093785748	0.102308093785748
-12387	5620	3705	0.100376481944534	0.100376481944534
-12388	3705	710	0.100626287480694	0.100626287480694
-12389	710	8681	0.0994362797990831	0.0994362797990831
-12390	8681	8515	0.0993120225558452	0.0993120225558452
-12391	8515	4191	0.136253535658325	0.136253535658325
-12392	4191	2517	0.134250356653895	0.134250356653895
-12393	2517	6728	0.132309702657946	0.132309702657946
-12394	6728	4805	0.136509007433592	0.136509007433592
-12395	4805	8682	0.134957701338679	0.134957701338679
-12397	8683	433	0.845576760689761	0.845576760689761
-12398	433	481	1.45081348243216	1.45081348243216
-12399	481	8684	0.52437215594792	0.52437215594792
-12401	8685	8686	0.010167997865452	0.010167997865452
-12404	4154	4741	0.172602377991032	0.172602377991032
-12405	4741	6536	0.177057900654184	0.177057900654184
-12406	6536	8687	0.165392784618956	0.165392784618956
-12408	5170	6865	0.176928364472993	0.176928364472993
-12409	6865	3073	0.175467136201966	0.175467136201966
-12410	3073	8690	0.1637299437242	0.1637299437242
-12411	8690	8160	0.0198260554201283	0.0198260554201283
-12412	8160	8691	0.0330442022067904	0.0330442022067904
-12414	8692	8693	0.174036627821078	0.174036627821078
-12415	8693	8694	0.176955606262412	0.176955606262412
-12416	8694	8695	0.169605643175659	0.169605643175659
-12417	8695	4774	0.249824848381595	0.249824848381595
-12418	4774	6552	0.130776357701309	0.130776357701309
-12419	6552	8696	0.13038749521243	0.13038749521243
-12420	8696	8566	0.0104649837792038	0.0104649837792038
-12421	8566	8697	0.196337242565984	0.196337242565984
-13908	6946	8137	0.20217075396909	0.20217075396909
-12422	8697	3765	0.201163077899324	0.201163077899324
-12423	3765	5944	0.202700667134599	0.202700667134599
-12424	5944	2231	0.203264325905827	0.203264325905827
-12425	2231	4900	0.203310133896795	0.203310133896795
-12426	4900	8699	0.223846600901437	0.223846600901437
-12427	8699	8700	0.179880034662439	0.179880034662439
-12428	8700	8701	0.204289810782798	0.204289810782798
-12429	8701	643	0.139830079927305	0.139830079927305
-12430	643	7272	0.132835494541237	0.132835494541237
-12431	7272	1993	0.110816863894031	0.110816863894031
-12432	1993	1977	0.01986880052865	0.01986880052865
-12433	1977	4590	0.131129399902762	0.131129399902762
-12434	4590	6477	0.129388315999052	0.129388315999052
-12435	6477	2460	0.143087746743813	0.143087746743813
-12436	2460	5904	0.206205054401277	0.206205054401277
-12437	5904	8702	0.200106396563715	0.200106396563715
-12438	8702	789	0.199795050779324	0.199795050779324
-12439	789	3581	0.193812626433148	0.193812626433148
-12440	3581	4353	0.211337121932246	0.211337121932246
-12441	4353	8703	0.201766897339093	0.201766897339093
-12442	8703	3056	0.204698740459713	0.204698740459713
-12443	3056	8704	0.1838941823989	0.1838941823989
-12446	902	8706	0.131578356152921	0.131578356152921
-12447	8706	2807	0.139128342169529	0.139128342169529
-12448	2807	5273	0.132055095159837	0.132055095159837
-12449	5273	6913	0.122503450982406	0.122503450982406
-12450	6913	6362	0.41302368771275	0.41302368771275
-12452	3076	3191	0.200008210348418	0.200008210348418
-12454	6107	1897	0.202849718138185	0.202849718138185
-12455	1897	7235	0.199081659570441	0.199081659570441
-12456	7235	3245	0.204781971579143	0.204781971579143
-12457	3245	8707	0.0557878826660101	0.0557878826660101
-12458	8707	7285	0.154953879613548	0.154953879613548
-12459	7285	28	0.190200511167853	0.190200511167853
-12461	7212	8708	0.0837159569795295	0.0837159569795295
-12463	8708	6525	0.0119790128871836	0.0119790128871836
-12464	6525	1779	0.0293911622529401	0.0293911622529401
-12465	1779	4372	0.0502766443311638	0.0502766443311638
-12466	4372	8710	0.0490277911002061	0.0490277911002061
-12467	8710	4684	0.0539189737855212	0.0539189737855212
-12468	4684	1527	0.0474102490920647	0.0474102490920647
-12469	1527	5107	0.0489757310519715	0.0489757310519715
-19288	10468	10469	0.0662296445612727	0.0662296445612727
-12470	5107	8711	0.0509607682871969	0.0509607682871969
-12471	8711	5064	0.0518326919728752	0.0518326919728752
-12472	5064	1746	0.0537415293364607	0.0537415293364607
-12473	1746	5607	0.04913949394522	0.04913949394522
-12474	5607	6637	0.0470345659561698	0.0470345659561698
-12475	6637	5450	0.0502526613335692	0.0502526613335692
-12477	5427	5408	0.0488836182047643	0.0488836182047643
-12478	5408	7399	0.051895578159039	0.051895578159039
-12479	7399	8712	0.1038123024378	0.1038123024378
-12481	8713	8714	0.0490473159959526	0.0490473159959526
-12482	8714	7277	0.0483828604327117	0.0483828604327117
-12483	7277	3483	0.0998765627131917	0.0998765627131917
-12484	3483	8715	0.048840271287456	0.048840271287456
-12485	8715	6079	0.0473684752554207	0.0473684752554207
-12486	6079	8716	0.055154161978582	0.055154161978582
-12487	8716	3697	0.0479069878085689	0.0479069878085689
-12488	3697	5685	0.0473941467783467	0.0473941467783467
-12489	5685	4571	0.0495504189878239	0.0495504189878239
-12490	4571	8717	0.0532110753130406	0.0532110753130406
-12495	8720	6626	0.0151124856958777	0.0151124856958777
-12496	6626	7211	0.0534737559078532	0.0534737559078532
-12497	7211	5824	0.205145340397742	0.205145340397742
-12498	5824	7729	0.196126806182622	0.196126806182622
-12499	7729	8721	1.41081273670029	1.41081273670029
-12500	8722	6630	0.00966193494482075	0.00966193494482075
-12501	6630	5826	0.0378008975972725	0.0378008975972725
-12502	5826	7731	0.193712690967488	0.193712690967488
-12503	7731	8723	1.80961969384046	1.80961969384046
-12504	1781	8722	0.107247989428491	0.107247989428491
-12506	7401	6529	0.108235119976502	0.108235119976502
-12508	4596	8724	0.16807497837827	0.16807497837827
-12509	8724	8725	0.178846116420602	0.178846116420602
-12510	8725	678	0.00426139259412424	0.00426139259412424
-12511	678	8726	0.00479379013962442	0.00479379013962442
-12512	8726	8727	0.179790579190484	0.179790579190484
-12513	8727	5480	0.174201148052584	0.174201148052584
-12514	5480	8728	0.175423920421782	0.175423920421782
-12515	8728	4882	0.196140148835561	0.196140148835561
-12516	4882	2250	0.176600887954475	0.176600887954475
-12517	2250	5916	0.3321793201224	0.3321793201224
-12519	3788	8729	0.199339438501115	0.199339438501115
-12521	1189	8730	0.167786544262905	0.167786544262905
-12522	8730	7154	0.107569635985836	0.107569635985836
-12524	8731	8732	0.130443287352145	0.130443287352145
-12526	8732	6531	0.0215721025681021	0.0215721025681021
-12527	6531	8733	0.0174468386055745	0.0174468386055745
-12551	8748	6518	0.0472889047630053	0.0472889047630053
-12552	6518	8749	0.0506856290604236	0.0506856290604236
-12548	4570	8746	0.0496686599585209	0.0496686599585209
-12549	8746	8747	0.0568130428191116	0.0568130428191116
-12528	8733	8734	4.18362578562758	4.18362578562758
-12529	6533	8735	0.0310320915845362	0.0310320915845362
-12530	8735	8733	0.0639013406897381	0.0639013406897381
-12531	8733	8736	0.0575832242503326	0.0575832242503326
-12532	8736	1744	0.0585281295770588	0.0585281295770588
-12533	1744	8737	0.0551795735412136	0.0551795735412136
-12534	8737	6634	0.0667321861738512	0.0667321861738512
-12535	6634	8738	1.14684827666039	1.14684827666039
-12536	8739	8740	0.050189520794265	0.050189520794265
-12537	8740	8741	0.0520205890853532	0.0520205890853532
-12538	8741	8742	0.0975475062746334	0.0975475062746334
-12539	8742	8743	0.0478496643069703	0.0478496643069703
-12540	8743	7276	0.0507419704012955	0.0507419704012955
-12541	7276	3482	0.0993982386954757	0.0993982386954757
-12542	3482	8744	0.05053480573854	0.05053480573854
-12543	8744	6078	0.0468212480872111	0.0468212480872111
-12544	6078	8745	0.052325451958986	0.052325451958986
-12545	8745	3696	0.0475592999209775	0.0475592999209775
-12546	3696	5684	0.0505577280347845	0.0505577280347845
-12547	5684	4570	0.0496336429817659	0.0496336429817659
-12550	8747	8748	0.0555882070947718	0.0555882070947718
-12553	8749	6161	0.0483586179330098	0.0483586179330098
-12554	6161	8750	0.0494030122591725	0.0494030122591725
-12555	8750	2739	0.0483430371417139	0.0483430371417139
-12556	2739	8751	0.0499840332207257	0.0499840332207257
-12557	8751	5230	0.0498899174438866	0.0498899174438866
-12558	5230	8752	0.0487864097624457	0.0487864097624457
-12559	8752	3172	0.0492052393668883	0.0492052393668883
-12560	3172	8753	0.048649307652154	0.048649307652154
-12561	8753	4997	0.0504970791491002	0.0504970791491002
-12562	4997	729	0.0994774482962559	0.0994774482962559
-12564	7060	7316	0.100261995636978	0.100261995636978
-12565	7316	4587	0.101339695102535	0.101339695102535
-12566	4587	8033	0.0978749879893347	0.0978749879893347
-12567	8033	6373	0.096169791555938	0.096169791555938
-12568	6373	8754	0.0556932821262755	0.0556932821262755
-12569	8754	4827	0.0506856253200211	0.0506856253200211
-12570	4827	8755	0.0976778629222165	0.0976778629222165
-12572	8756	8757	0.0483546146560771	0.0483546146560771
-12573	8757	8758	0.00678547758181753	0.00678547758181753
-12574	8758	8759	0.0425788070077018	0.0425788070077018
-12577	2375	8761	0.0800348658330501	0.0800348658330501
-12579	8761	2381	0.0565526295759939	0.0565526295759939
-12580	2381	2378	0.0732152007668199	0.0732152007668199
-12581	2378	2379	0.0407086995566738	0.0407086995566738
-12582	2379	2383	0.00264328007897714	0.00264328007897714
-12583	2383	2571	0.0689488793496812	0.0689488793496812
-12585	8761	2375	0.0800348658330501	0.0800348658330501
-12587	1510	7932	0.0417550445525859	0.0417550445525859
-12589	8764	4921	0.0107315298188712	0.0107315298188712
-12590	4921	8062	0.0635329705608418	0.0635329705608418
-12591	8062	6584	0.176700679215808	0.176700679215808
-12592	6584	5366	0.199428899537142	0.199428899537142
-12593	5366	7124	0.156701102941306	0.156701102941306
-12594	7124	612	0.178308153840751	0.178308153840751
-12595	612	1943	0.177718886558766	0.177718886558766
-12596	1943	8765	0.0553792982616949	0.0553792982616949
-12597	8765	8767	0.0568805264393287	0.0568805264393287
-12625	8778	8779	0.0386703080825578	0.0386703080825578
-12598	8767	8768	0.0596299154046411	0.0596299154046411
-12600	8217	8764	0.0348766827140038	0.0348766827140038
-12602	8769	7960	0.0121246465842421	0.0121246465842421
-12636	8782	8776	0.0415201856091735	0.0415201856091735
-12603	7960	7858	0.191569398536593	0.191569398536593
-12604	7858	384	0.0511824976047815	0.0511824976047815
-12606	4685	296	0.0500706281631231	0.0500706281631231
-12607	296	4955	0.0491810974692235	0.0491810974692235
-12608	4955	7223	0.104958162725722	0.104958162725722
-12611	8773	8774	0.043865298365945	0.043865298365945
-12612	8774	6643	0.0451313849693394	0.0451313849693394
-12613	6643	8218	0.0697309457073312	0.0697309457073312
-12614	8218	3952	0.0651671851260823	0.0651671851260823
-12616	1623	8769	0.0363096662742893	0.0363096662742893
-12618	5097	8775	0.0318529970242771	0.0318529970242771
-12622	8776	8777	0.018725243223035	0.018725243223035
-12623	8777	6243	0.106972614023441	0.106972614023441
-12624	6243	8778	0.0466697025677041	0.0466697025677041
-12626	8779	5192	0.0833353912042221	0.0833353912042221
-12627	5192	8780	0.0302234211776424	0.0302234211776424
-12628	8780	8781	0.0269541929474085	0.0269541929474085
-12629	8781	2610	0.119870657472311	0.119870657472311
-12630	2610	1838	0.176410752987704	0.176410752987704
-12631	1838	2360	0.17767880886817	0.17767880886817
-12633	3710	4430	0.0984187629622127	0.0984187629622127
-12634	4430	5171	0.100485171973402	0.100485171973402
-12638	968	8783	0.0450647850917565	0.0450647850917565
-12640	8783	6332	0.0179790401179982	0.0179790401179982
-12641	6332	8784	0.166916939377104	0.166916939377104
-12642	8784	8785	0.0824631793427953	0.0824631793427953
-12643	8785	8786	0.100743867095121	0.100743867095121
-12644	8786	3809	0.198861011407653	0.198861011407653
-12645	3809	5921	0.152448419282946	0.152448419282946
-12647	920	2206	0.198794444530698	0.198794444530698
-12648	2206	4855	0.161210664735901	0.161210664735901
-12649	4855	8787	0.176180330331867	0.176180330331867
-12650	8787	5459	0.173977209442215	0.173977209442215
-12651	5459	8788	0.179581076943561	0.179581076943561
-12652	8788	653	0.182661218967331	0.182661218967331
-12653	653	8789	0.175533060842227	0.175533060842227
-12654	8789	4615	0.178562453757686	0.178562453757686
-12655	4615	6485	0.147124798702961	0.147124798702961
-12656	6485	3681	0.150536039008347	0.150536039008347
-12658	5282	8790	0.0413354062568629	0.0413354062568629
-12660	8790	6331	0.0121138578035044	0.0121138578035044
-12662	6548	8791	0.16625102712937	0.16625102712937
-12663	8791	8792	0.184061439099574	0.184061439099574
-12664	8792	3808	0.198594245045878	0.198594245045878
-12665	3808	5923	0.153339826215406	0.153339826215406
-12666	5923	922	0.17696116360303	0.17696116360303
-12667	922	2208	0.186196659484346	0.186196659484346
-12668	2208	4857	0.160795645903838	0.160795645903838
-12669	4857	8793	0.191420788288479	0.191420788288479
-12671	5460	8794	0.176401987583553	0.176401987583553
-12672	8794	8795	0.177191749793072	0.177191749793072
-12673	8795	654	0.00549383449703672	0.00549383449703672
-12674	654	8796	0.178534682523657	0.178534682523657
-12675	8796	4614	0.177531607780329	0.177531607780329
-12676	4614	6486	0.147678461213278	0.147678461213278
-12677	6486	3679	0.150313310591357	0.150313310591357
-12681	8798	8799	0.123466110327723	0.123466110327723
-12682	8799	3186	0.00950854696516887	0.00950854696516887
-12683	3186	8800	0.0308360436433676	0.0308360436433676
-12685	8801	8802	0.231947805663281	0.231947805663281
-12686	8802	8803	0.0199646364044365	0.0199646364044365
-12687	8803	5017	0.0091876036672495	0.0091876036672495
-12692	7064	8808	0.0247148912105672	0.0247148912105672
-12693	8808	8685	0.0234885972598816	0.0234885972598816
-20809	8326	10950	0.0125120772932362	0.0125120772932362
-16680	9982	9983	0.0455494891280306	0.0455494891280306
-15872	7130	8879	0.124695897236049	0.124695897236049
-12694	8685	8023	0.100302779247875	0.100302779247875
-12696	8809	8685	0.057365793634115	0.057365793634115
-12699	8810	4109	0.100464246278784	0.100464246278784
-12700	4109	2643	0.0901887127804005	0.0901887127804005
-12702	8805	7976	0.102773783270916	0.102773783270916
-12703	7976	7318	0.104083044705694	0.104083044705694
-12704	7318	8803	0.278830952538266	0.278830952538266
-12706	8811	8812	0.108086464170563	0.108086464170563
-12707	8812	6861	0.0114665228848291	0.0114665228848291
-12709	5165	8809	0.109306863073043	0.109306863073043
-12710	8809	8808	0.0510932247106912	0.0510932247106912
-12712	8798	6379	0.100799788599422	0.100799788599422
-12713	6379	6099	0.0584802680423258	0.0584802680423258
-12714	6099	8202	0.382882462386682	0.382882462386682
-12716	8813	8173	0.0533183303572635	0.0533183303572635
-12718	8814	8815	0.0594781662619651	0.0594781662619651
-12720	8815	3633	0.0139674412080793	0.0139674412080793
-14286	6672	3115	0.0991095918198707	0.0991095918198707
-15288	8812	7065	0.0171061341992079	0.0171061341992079
-12722	3295	8191	0.195769878320479	0.195769878320479
-12723	8191	103	0.207801078913796	0.207801078913796
-12724	103	3505	0.201240848446412	0.201240848446412
-12725	3505	8816	0.20140010471513	0.20140010471513
-12726	8816	8817	0.0467910785706761	0.0467910785706761
-12727	8817	8759	0.155886707244551	0.155886707244551
-12728	8759	8818	0.0209382564173288	0.0209382564173288
-12729	8818	8819	0.0390294530141924	0.0390294530141924
-12730	8819	8820	0.0609459777309488	0.0609459777309488
-12732	7196	5844	0.199996639851393	0.199996639851393
-12733	5844	7747	0.201963345264684	0.201963345264684
-12734	7747	8821	0.660668042362938	0.660668042362938
-12737	6675	8823	0.018377691001392	0.018377691001392
-12738	8823	3121	0.0817086617793047	0.0817086617793047
-12739	3121	3122	0.0189462201356829	0.0189462201356829
-12740	3122	6294	0.0736313115214917	0.0736313115214917
-12741	6294	6295	0.0205616464638412	0.0205616464638412
-12742	6295	6620	0.098958190214706	0.098958190214706
-14308	9323	2191	0.217246414275379	0.217246414275379
-12743	6620	7343	0.0741923893812443	0.0741923893812443
-12744	7343	2845	0.101548527960204	0.101548527960204
-12745	2845	3494	0.101534987318255	0.101534987318255
-12746	3494	5350	0.0785982086314387	0.0785982086314387
-12748	4220	2948	0.0852112039835386	0.0852112039835386
-12749	2948	2949	0.056569943078372	0.056569943078372
-12750	2949	6813	0.0330539311277449	0.0330539311277449
-12751	6813	6810	0.0675878090482117	0.0675878090482117
-12752	6810	1814	0.0227606927419569	0.0227606927419569
-12753	1814	8824	0.984700828985706	0.984700828985706
-12754	8823	8825	0.40169861106651	0.40169861106651
-12779	3798	5937	0.1524274277381	0.1524274277381
-12755	8826	7748	0.668566967249301	0.668566967249301
-12756	7748	5845	0.201518653480334	0.201518653480334
-12757	5845	7197	0.200485803128442	0.200485803128442
-12758	7197	8827	0.180703533412633	0.180703533412633
-12759	8827	8760	0.0207611083367854	0.0207611083367854
-12760	8760	8828	0.203176551906279	0.203176551906279
-12761	8828	3506	0.200871002946695	0.200871002946695
-12763	8170	8192	0.20854015704238	0.20854015704238
-12764	8192	3296	0.195770030101267	0.195770030101267
-12765	3296	8183	0.100143064441761	0.100143064441761
-12766	8183	8188	0.148673984504934	0.148673984504934
-12767	8188	8813	0.0159417159428289	0.0159417159428289
-12769	2918	8829	0.0404869067666165	0.0404869067666165
-12771	8829	6328	0.00908621391699812	0.00908621391699812
-12772	6328	8830	0.0795394987314785	0.0795394987314785
-12774	4166	4751	0.202375182887314	0.202375182887314
-12775	4751	6542	0.197696304569089	0.197696304569089
-12776	6542	8831	0.204678217467742	0.204678217467742
-12778	8832	3798	0.199708223967288	0.199708223967288
-12780	5937	938	0.177624298285183	0.177624298285183
-12781	938	2222	0.185255991502605	0.185255991502605
-12782	2222	4872	0.159853083829866	0.159853083829866
-12783	4872	8834	0.191323978817286	0.191323978817286
-12787	28	8836	0.0411233276076822	0.0411233276076822
-15407	8527	8524	0.00632598868026626	0.00632598868026626
-16685	9986	9987	0.0852803879953952	0.0852803879953952
-12788	8830	4165	0.0810572303723974	0.0810572303723974
-12790	4096	6041	0.191845009601904	0.191845009601904
-12791	6041	8837	0.201496335450174	0.201496335450174
-12792	8837	8838	0.406062586796109	0.406062586796109
-12793	4086	6031	0.181162285735164	0.181162285735164
-12794	6031	6032	0.0171385466290399	0.0171385466290399
-12795	6032	8839	0.201396970557967	0.201396970557967
-12796	8839	2539	0.0036249646793062	0.0036249646793062
-12797	2539	7937	0.222367701142404	0.222367701142404
-12798	7937	8840	0.179081080346528	0.179081080346528
-12799	8520	8841	0.0687184646666591	0.0687184646666591
-12801	8841	298	0.017862044588972	0.017862044588972
-12802	298	4082	0.0176901086131869	0.0176901086131869
-12805	2560	6714	0.0892568890732451	0.0892568890732451
-12806	6714	6633	0.0879831056932755	0.0879831056932755
-12807	6633	8844	0.0442062339102578	0.0442062339102578
-12808	8844	7935	0.0446455487862746	0.0446455487862746
-12809	7935	8845	0.265612509858697	0.265612509858697
-12817	297	299	0.88607517832177	0.88607517832177
-12823	493	589	0.268896577305787	0.268896577305787
-12824	589	8850	0.33804717039653	0.33804717039653
-12826	8589	8851	0.042366080089372	0.042366080089372
-12828	8851	4936	0.0170501490589131	0.0170501490589131
-12829	4936	8509	0.143621366769105	0.143621366769105
-12831	8852	8853	0.0917176896741063	0.0917176896741063
-12832	8853	7564	0.105551904949528	0.105551904949528
-12833	7564	6182	0.105801475446669	0.105801475446669
-12834	6182	8854	0.10583574357693	0.10583574357693
-12835	8854	8855	0.00547189672663909	0.00547189672663909
-18650	1854	2593	0.177389867684494	0.177389867684494
-12837	8856	8857	0.0555847646631402	0.0555847646631402
-12838	8857	8858	0.0519115005666898	0.0519115005666898
-12839	8858	8636	0.0515833043565609	0.0515833043565609
-12840	8636	8859	0.0207966249820583	0.0207966249820583
-12844	8860	1198	0.169110109980516	0.169110109980516
-12845	1198	8861	0.0226617213022113	0.0226617213022113
-12847	8862	1200	0.170240075619945	0.170240075619945
-12848	1200	8863	0.0219879091267488	0.0219879091267488
-12850	8864	7983	0.0505037947042799	0.0505037947042799
-12851	7983	2054	0.099824917404873	0.099824917404873
-12852	2054	2660	0.101497408945607	0.101497408945607
-12853	2660	4133	0.0961563998269834	0.0961563998269834
-12855	6696	8019	0.0939673290333738	0.0939673290333738
-12856	8019	7683	0.0941529054095407	0.0941529054095407
-12857	7683	3457	0.0935091254143676	0.0935091254143676
-12858	3457	8865	0.0461569199164165	0.0461569199164165
-12859	8865	6019	0.0480340625550536	0.0480340625550536
-12860	6019	8866	0.0464697146879775	0.0464697146879775
-12861	8866	8867	0.048094543326443	0.048094543326443
-12862	8867	8868	0.0461790217746061	0.0461790217746061
-12863	8868	856	0.0449646613539359	0.0449646613539359
-12864	856	451	0.0470078764226648	0.0470078764226648
-12865	451	7105	0.0432708485882178	0.0432708485882178
-12866	7105	8869	0.0939007256947679	0.0939007256947679
-12868	8870	1196	0.168829878028139	0.168829878028139
-12869	1196	8871	0.021661446985008	0.021661446985008
-12871	4760	5407	0.0842978699895538	0.0842978699895538
-12873	4755	6546	0.199683159238461	0.199683159238461
-12874	6546	8872	0.20436535055464	0.20436535055464
-12875	8872	8873	0.188956325706579	0.188956325706579
-12876	8873	3792	0.199291485976659	0.199291485976659
-17796	10179	9318	0.114755253361823	0.114755253361823
-12877	3792	8561	0.13059037096191	0.13059037096191
-12879	5926	924	0.178374370928188	0.178374370928188
-12880	924	2210	0.187308783265319	0.187308783265319
-12881	2210	4859	0.159743099068053	0.159743099068053
-12882	4859	8874	0.192629276936053	0.192629276936053
-12883	8874	5461	0.172330101173688	0.172330101173688
-12884	5461	8875	0.177416584260724	0.177416584260724
-12885	8875	8876	0.176433616828762	0.176433616828762
-12887	655	8877	0.00413648661723727	0.00413648661723727
-12888	8877	8878	0.173943602457692	0.173943602457692
-12889	8878	4613	0.177428437243737	0.177428437243737
-12890	4613	6487	0.148280300321704	0.148280300321704
-12891	6487	3678	0.149828166583799	0.149828166583799
-12893	5929	926	0.177267011666895	0.177267011666895
-12894	926	2211	0.187019197552967	0.187019197552967
-12895	2211	4861	0.161667462022208	0.161667462022208
-12896	4861	8880	0.191414125057248	0.191414125057248
-12897	8880	5463	0.170299846109482	0.170299846109482
-12898	5463	8881	0.177990586801656	0.177990586801656
-12899	8881	8885	0.177780189019753	0.177780189019753
-12900	8885	659	0.00646246375156384	0.00646246375156384
-12901	659	8886	0.177011471342036	0.177011471342036
-12902	8886	4612	0.177005843155015	0.177005843155015
-12903	4612	6488	0.148001366258512	0.148001366258512
-12904	6488	3676	0.150380555650091	0.150380555650091
-12906	1621	8061	0.152748999526467	0.152748999526467
-12907	8061	6583	0.177490187745079	0.177490187745079
-12908	6583	5365	0.198863610387104	0.198863610387104
-12909	5365	7123	0.157919035747255	0.157919035747255
-12911	8092	8887	0.220134314041521	0.220134314041521
-12913	8887	8888	0.191841135190913	0.191841135190913
-12914	8888	967	0.0966749413586244	0.0966749413586244
-12916	5281	4980	0.256490434532314	0.256490434532314
-12917	4980	4148	0.0387618071437701	0.0387618071437701
-12918	4148	8125	0.0859291558348279	0.0859291558348279
-12919	8125	2368	0.179404398665568	0.179404398665568
-12920	2368	996	0.270881468937897	0.270881468937897
-12921	996	2914	0.0678890736084051	0.0678890736084051
-12922	2914	2917	0.0548386478267142	0.0548386478267142
-12927	8894	8895	0.135035418511701	0.135035418511701
-12929	8896	3167	0.11730986547504	0.11730986547504
-12932	8898	8899	0.10458723954588	0.10458723954588
-12971	8901	8709	0.120698197647431	0.120698197647431
-12978	8902	8903	0.00973401952734473	0.00973401952734473
-12979	8903	7902	0.144472845078957	0.144472845078957
-12980	7902	1225	0.0118169371778595	0.0118169371778595
-12982	8904	8902	0.0775029978833242	0.0775029978833242
-12984	8905	8906	0.061203121949655	0.061203121949655
-12986	8906	8907	0.00497763084611722	0.00497763084611722
-12987	8907	121	0.154154812192847	0.154154812192847
-12988	121	8904	0.0610449885391548	0.0610449885391548
-12990	8325	8908	0.013157216132198	0.013157216132198
-12992	306	8909	0.108316294946991	0.108316294946991
-12994	8328	8910	0.00899626589788406	0.00899626589788406
-12995	8910	8338	0.040824296618527	0.040824296618527
-12996	8338	6084	0.0494050923488005	0.0494050923488005
-12997	6084	8909	0.0118673496888767	0.0118673496888767
-12998	8909	743	0.0430251864291126	0.0430251864291126
-12999	743	4526	0.0484294102772242	0.0484294102772242
-13000	4526	607	0.0194349740430761	0.0194349740430761
-13001	607	8355	0.0344276469779443	0.0344276469779443
-13002	8355	3974	0.0402278696203799	0.0402278696203799
-13004	8911	2658	0.732133935065161	0.732133935065161
-13012	8915	8916	0.408272009335824	0.408272009335824
-13090	1914	6117	0.200190217467506	0.200190217467506
-13018	8922	8923	0.320042964228513	0.320042964228513
-13022	8265	8926	0.339879399665874	0.339879399665874
-13027	4265	279	0.0652387434169228	0.0652387434169228
-13029	494	8927	0.349190481522976	0.349190481522976
-13040	8104	8678	0.200106495095782	0.200106495095782
-13042	8932	8933	0.108557788789167	0.108557788789167
-13044	8677	8932	0.0500470435519063	0.0500470435519063
-13046	8933	6917	0.0967430583925215	0.0967430583925215
-13050	8936	8937	0.198244621757318	0.198244621757318
-13084	8956	8756	0.203550658006643	0.203550658006643
-13052	8938	8939	0.428260593428089	0.428260593428089
-13053	8939	8425	0.201936465504692	0.201936465504692
-13055	8939	8941	0.203022755730075	0.203022755730075
-13057	8931	8942	0.152950212219782	0.152950212219782
-13059	8943	8931	0.0786273196751871	0.0786273196751871
-19033	256	10159	0.12356745711476	0.12356745711476
-13063	8945	8946	0.104572805049419	0.104572805049419
-13067	8949	432	0.545131832456565	0.545131832456565
-13068	432	8950	0.686001065667251	0.686001065667251
-13070	8951	8949	0.0797207044078447	0.0797207044078447
-13074	8952	8953	0.195031053860659	0.195031053860659
-13076	99	3503	0.199966819322067	0.199966819322067
-13077	3503	8954	0.201518791118212	0.201518791118212
-13078	8954	8755	0.203764704692679	0.203764704692679
-13079	8755	7193	0.202942329745549	0.202942329745549
-13080	7193	7746	0.401362186865274	0.401362186865274
-13081	7746	8955	0.585986287872625	0.585986287872625
-13082	101	3504	0.19989908085758	0.19989908085758
-13083	3504	8956	0.200106829133291	0.200106829133291
-13085	8756	7194	0.202942348322105	0.202942348322105
-13087	1087	8957	0.00893112007684357	0.00893112007684357
-13088	8957	1082	0.038563824899443	0.038563824899443
-13091	6117	3204	0.200871492111254	0.200871492111254
-13092	3204	3094	0.202111971416858	0.202111971416858
-13093	3094	1749	0.143511782143127	0.143511782143127
-13096	8925	8917	0.011822810789309	0.011822810789309
-13098	8959	602	0.0536722144567161	0.0536722144567161
-13099	602	8962	0.0387695912622113	0.0387695912622113
-13100	8962	8948	0.175808350127672	0.175808350127672
-13101	8948	428	0.00954052470619231	0.00954052470619231
-13102	428	7933	0.160696268160677	0.160696268160677
-13104	8918	8924	0.012486102804665	0.012486102804665
-13105	8924	2420	0.0580706601904793	0.0580706601904793
-13108	8964	8965	0.125224497044451	0.125224497044451
-13110	8965	2192	0.356365737888712	0.356365737888712
-13135	4848	1531	0.0955193854848385	0.0955193854848385
-13111	2192	1611	0.254354724276405	0.254354724276405
-13112	1611	8852	0.0391111849621532	0.0391111849621532
-13114	8966	7934	0.183569029359489	0.183569029359489
-13116	2045	8967	0.0657780447895409	0.0657780447895409
-13119	1742	5213	0.229560371023495	0.229560371023495
-13120	5213	640	0.0648517231107158	0.0648517231107158
-14585	9392	2833	0.210508246764738	0.210508246764738
-13122	7933	8963	0.200908071446329	0.200908071446329
-13124	7934	8969	0.0906737639231845	0.0906737639231845
-13125	8969	429	0.0698124130115735	0.0698124130115735
-13126	429	8947	0.0102744112219317	0.0102744112219317
-13127	8947	8970	0.0586653743681201	0.0586653743681201
-13128	8970	601	0.102766368620144	0.102766368620144
-13157	8989	1285	0.118339572755071	0.118339572755071
-13129	601	8973	0.0999362244261846	0.0999362244261846
-13130	8973	8918	0.0326860113699392	0.0326860113699392
-13132	2193	8237	0.11471912407663	0.11471912407663
-13133	8237	8974	0.0761048371438857	0.0761048371438857
-13443	9077	4179	0.169049790102584	0.169049790102584
-13137	8974	4844	0.0408566656014099	0.0408566656014099
-13139	8975	8915	0.161267451240187	0.161267451240187
-13164	8976	8977	0.00802909585520281	0.00802909585520281
-13140	8915	8979	0.511309857046827	0.511309857046827
-13142	8950	8980	0.295444981113679	0.295444981113679
-13144	8981	8982	0.155762064195337	0.155762064195337
-14605	9398	8233	0.0099630690934953	0.0099630690934953
-13146	8983	8984	0.153794064127447	0.153794064127447
-13148	8985	8986	0.0143228031361841	0.0143228031361841
-13149	8986	8496	0.0694983470285585	0.0694983470285585
-13150	8496	398	0.120004619664384	0.120004619664384
-13151	398	8987	0.0577858842103034	0.0577858842103034
-13152	8987	637	0.099744132155093	0.099744132155093
-13153	637	6436	0.0832880379381437	0.0832880379381437
-13154	6436	21	0.0571009168797096	0.0571009168797096
-13155	21	8988	0.0791847444931621	0.0791847444931621
-13158	1285	2962	0.0719310735484076	0.0719310735484076
-13159	2962	8991	0.0186493582069224	0.0186493582069224
-13160	8991	8992	0.187353348628226	0.187353348628226
-13161	8992	8351	0.0990161897507714	0.0990161897507714
-13162	8351	8993	0.00963797122366648	0.00963797122366648
-13163	8993	8976	0.0698946708143702	0.0698946708143702
-13165	8977	8994	0.012930744273385	0.012930744273385
-13167	8451	8985	0.0708838190049254	0.0708838190049254
-13169	2877	7692	0.030123526159425	0.030123526159425
-13173	8996	8143	0.201053290850133	0.201053290850133
-13174	8143	8997	0.150730663136006	0.150730663136006
-13176	2794	5261	0.132082373792006	0.132082373792006
-13178	5853	1338	0.200417735783644	0.200417735783644
-13179	1338	8998	0.206394741682614	0.206394741682614
-13181	8998	4698	0.201909087963534	0.201909087963534
-13182	4698	8999	0.201909088033291	0.201909088033291
-13183	8999	9000	0.201186325895839	0.201186325895839
-13184	9000	6822	0.198983321230549	0.198983321230549
-13185	6822	770	0.132908321867952	0.132908321867952
-13187	1638	8999	0.102808714105755	0.102808714105755
-13188	8999	4216	0.0999229348013983	0.0999229348013983
-13189	4216	8095	0.0991443160837587	0.0991443160837587
-13190	8095	196	0.0991307294664674	0.0991307294664674
-13191	196	2925	0.0983869258474561	0.0983869258474561
-13193	5307	1463	0.0991311193927209	0.0991311193927209
-13194	1463	5437	0.103145293575034	0.103145293575034
-13196	1641	9000	0.10355145810147	0.10355145810147
-13197	9000	4217	0.0998824134603326	0.0998824134603326
-13198	4217	8096	0.0998581597847897	0.0998581597847897
-13199	8096	197	0.0983977211710877	0.0983977211710877
-13200	197	2926	0.0983895151379973	0.0983895151379973
-13201	2926	5308	0.0991337377550934	0.0991337377550934
-13202	5308	1464	0.0991224618714554	0.0991224618714554
-13203	1464	5440	0.103536651588581	0.103536651588581
-13205	201	2928	0.102050045456718	0.102050045456718
-13206	2928	5310	0.0991386153517731	0.0991386153517731
-13207	5310	1466	0.099890094841465	0.099890094841465
-13208	1466	5445	0.102288602469368	0.102288602469368
-13209	5445	9003	0.20221504164542	0.20221504164542
-13210	9003	7922	0.00954769987851559	0.00954769987851559
-13211	7922	4407	0.193513161405962	0.193513161405962
-13212	4407	9004	0.22689488985342	0.22689488985342
-13213	9004	4314	0.17109885981524	0.17109885981524
-13214	4314	4501	0.0954627697803603	0.0954627697803603
-13215	4501	7813	0.103538745444113	0.103538745444113
-13216	7813	5077	0.099141030065187	0.099141030065187
-13217	5077	8012	0.101361319209047	0.101361319209047
-13218	8012	6831	0.0984053279969797	0.0984053279969797
-13219	6831	6983	0.0507122349978986	0.0507122349978986
-13220	6983	6974	0.0492014587539049	0.0492014587539049
-13221	6974	7944	0.0815359432635548	0.0815359432635548
-13222	7944	6363	0.117492028011777	0.117492028011777
-13223	6363	6659	0.128518000967454	0.128518000967454
-13224	6659	5340	0.248378842685992	0.248378842685992
-13225	5340	9007	0.436836188101395	0.436836188101395
-13226	5447	9008	0.0954198714626642	0.0954198714626642
-13227	9008	5974	0.0150605452925665	0.0150605452925665
-13229	5443	7920	0.209496436784339	0.209496436784339
-13230	7920	4409	0.196049081122935	0.196049081122935
-13232	9009	4311	0.174051720567411	0.174051720567411
-13234	5439	7917	0.209760382857472	0.209760382857472
-13235	7917	4414	0.1967831025196	0.1967831025196
-13236	4414	9010	0.224679521512281	0.224679521512281
-13239	5435	9011	0.112718312199178	0.112718312199178
-13240	9011	7916	0.0954502097686848	0.0954502097686848
-13242	4418	9012	0.223944278058007	0.223944278058007
-13243	9012	9013	0.163728342208645	0.163728342208645
-13244	9014	9011	0.193580953488763	0.193580953488763
-13272	5331	5695	0.176288296878523	0.176288296878523
-13246	1844	2578	0.172509377214494	0.172509377214494
-13248	6839	8008	0.0576758204139334	0.0576758204139334
-13250	8009	6981	0.144663680916955	0.144663680916955
-13252	9015	6845	0.0843525238323184	0.0843525238323184
-13253	6845	4689	0.0881118827688874	0.0881118827688874
-13254	4689	4697	0.0264412698588759	0.0264412698588759
-13255	4697	7466	0.0631647371963507	0.0631647371963507
-13256	7466	9016	0.0866600751763154	0.0866600751763154
-13257	9016	7453	0.0117533037462049	0.0117533037462049
-13258	7453	2091	0.0764142388554106	0.0764142388554106
-13259	2091	5691	0.0521281816109867	0.0521281816109867
-13260	5691	5680	0.0375154291161679	0.0375154291161679
-13261	5680	6316	0.0896056080016293	0.0896056080016293
-13262	6316	4963	0.0888719448734625	0.0888719448734625
-13264	6826	5338	0.0370211552910964	0.0370211552910964
-13266	9016	9017	0.044781886028432	0.044781886028432
-13267	6842	4692	0.112329114895897	0.112329114895897
-13268	4692	5332	0.162956489748023	0.162956489748023
-13270	6840	4691	0.113830246405759	0.113830246405759
-13271	4691	5331	0.0755697574983074	0.0755697574983074
-13274	5694	6319	0.174033677833605	0.174033677833605
-13275	6319	9018	0.182109806928741	0.182109806928741
-13277	4310	7811	0.201267372547373	0.201267372547373
-13278	7811	8010	0.202389778156291	0.202389778156291
-13281	7812	5076	0.100599027218817	0.100599027218817
-13282	5076	8011	0.100623102109681	0.100623102109681
-13283	8011	6982	0.147599810375252	0.147599810375252
-13284	6982	7943	0.131458423393202	0.131458423393202
-13285	7943	3300	0.0829788157522616	0.0829788157522616
-13286	3300	5727	0.0905493512456201	0.0905493512456201
-13287	5727	5339	0.0993780908642813	0.0993780908642813
-13289	9019	9020	0.473924441922911	0.473924441922911
-13290	5441	7918	0.212183518066811	0.212183518066811
-13291	7918	4411	0.196063540031297	0.196063540031297
-13292	4411	9021	0.221019052884505	0.221019052884505
-13293	9021	4282	0.176970513595043	0.176970513595043
-13295	4326	9018	0.0881179267079727	0.0881179267079727
-13296	9018	7810	0.0594732573783121	0.0594732573783121
-13297	7810	7817	0.0279069878470498	0.0279069878470498
-13298	7817	5075	0.0895984878523876	0.0895984878523876
-13299	5075	8007	0.082290456587143	0.082290456587143
-13300	8007	6839	0.0433776365307967	0.0433776365307967
-13301	6839	6979	0.105025257907842	0.105025257907842
-14885	9012	7486	0.0983880214663299	0.0983880214663299
-13303	9003	4959	0.128621575011946	0.128621575011946
-13304	4959	9022	0.0561090389096707	0.0561090389096707
-13305	9022	9023	0.219664135455113	0.219664135455113
-13307	9024	1734	0.0339090081692689	0.0339090081692689
-13308	1734	9025	0.199586826055962	0.199586826055962
-13310	162	1723	0.148414326457229	0.148414326457229
-13312	164	1724	0.19589389224901	0.19589389224901
-13313	1724	9026	0.21539258017212	0.21539258017212
-13315	166	1725	0.23958811593923	0.23958811593923
-13316	1725	9027	0.172261015966003	0.172261015966003
-13318	168	1727	0.256304305915683	0.256304305915683
-13319	1727	8081	0.0911159242290505	0.0911159242290505
-13321	9028	9029	0.0459665066705729	0.0459665066705729
-13323	9030	9031	0.204682511562437	0.204682511562437
-13324	9031	6588	0.201464690183835	0.201464690183835
-13325	6588	7109	0.201819605073549	0.201819605073549
-13326	7109	9034	0.0380490136329461	0.0380490136329461
-13327	9035	9036	0.202787954952135	0.202787954952135
-13328	9036	6589	0.200863566889439	0.200863566889439
-13329	6589	7110	0.201074334121883	0.201074334121883
-13331	9037	9031	0.102130234291417	0.102130234291417
-13332	9031	9036	0.101294841162053	0.101294841162053
-13333	9036	6128	0.0961527434944637	0.0961527434944637
-13334	6128	3971	0.0990967592348727	0.0990967592348727
-13336	7017	1406	0.0990967592360877	0.0990967592360877
-13337	1406	7390	0.0982252697684911	0.0982252697684911
-13338	7390	5217	0.100064145492252	0.100064145492252
-13340	5377	9038	0.0981767550682586	0.0981767550682586
-13342	9041	9042	0.107883824327089	0.107883824327089
-13344	9043	9044	0.111762023714712	0.111762023714712
-13346	7805	9045	0.163613143703316	0.163613143703316
-13347	4982	9046	0.151151791011959	0.151151791011959
-13348	9046	4333	0.0931833318260777	0.0931833318260777
-13349	4333	5039	0.084348128639754	0.084348128639754
-13351	2869	9047	0.0643526028257267	0.0643526028257267
-13352	2869	5283	0.189728403936972	0.189728403936972
-13354	9048	6951	0.21054969022045	0.21054969022045
-13355	6951	8084	0.110877740512572	0.110877740512572
-13356	8084	8141	0.0381711926062465	0.0381711926062465
-13357	8141	5971	0.0998550766587588	0.0998550766587588
-13358	5971	9046	0.165019740176851	0.165019740176851
-13359	9046	7804	0.203892252907028	0.203892252907028
-13360	7804	9049	0.488623985679594	0.488623985679594
-13361	577	9048	0.0924966938169246	0.0924966938169246
-13369	9054	1743	0.0233197702600261	0.0233197702600261
-13370	1743	4270	0.277932467642318	0.277932467642318
-13371	4270	310	0.0394728122356983	0.0394728122356983
-13372	310	577	0.0535172942987349	0.0535172942987349
-13374	9055	9056	0.0694449359265994	0.0694449359265994
-13375	9056	2325	0.190938968451781	0.190938968451781
-13376	2325	4279	0.147346976573119	0.147346976573119
-13378	4286	9055	0.0222915391297905	0.0222915391297905
-13380	1349	1615	0.0587612563553368	0.0587612563553368
-13381	1615	7135	0.106001129731548	0.106001129731548
-13383	5260	9057	0.107843300513683	0.107843300513683
-13384	6952	9058	0.0875153511963366	0.0875153511963366
-13386	9058	5767	0.0813716345984657	0.0813716345984657
-13387	5767	312	0.370850163813996	0.370850163813996
-13390	9048	9052	0.36535949731556	0.36535949731556
-13394	9060	8966	0.196473660543131	0.196473660543131
-13396	9061	5080	0.358471972755657	0.358471972755657
-13397	5080	9062	0.674602285535072	0.674602285535072
-13398	9062	3176	0.289568864041751	0.289568864041751
-13399	3176	527	0.133561854308294	0.133561854308294
-18560	10318	10319	0.255397297870644	0.255397297870644
-13400	527	343	0.340886700679976	0.340886700679976
-13401	343	537	0.428322489908352	0.428322489908352
-13402	537	474	0.822980283733396	0.822980283733396
-13403	474	8438	0.152037422281902	0.152037422281902
-13407	4427	9063	0.114941491865609	0.114941491865609
-13409	9063	8912	0.118971180199303	0.118971180199303
-13413	8236	125	0.0903470808346396	0.0903470808346396
-13415	9065	9066	0.0810250214751567	0.0810250214751567
-13417	9066	7279	0.116655009841785	0.116655009841785
-13419	276	9067	0.0692041764264314	0.0692041764264314
-13500	9108	9109	0.0476133357747153	0.0476133357747153
-13421	9067	2189	0.114532021981465	0.114532021981465
-13423	9068	4553	0.327000385366346	0.327000385366346
-13425	8428	9069	0.0507531626876375	0.0507531626876375
-13426	9069	9068	0.00529520129182755	0.00529520129182755
-13428	9070	9071	0.0606488327577038	0.0606488327577038
-13430	9071	9072	0.009176031077042	0.009176031077042
-13431	9072	4642	0.175105976981708	0.175105976981708
-13432	4642	7954	0.0487370399178714	0.0487370399178714
-13433	7954	4547	0.158995972178669	0.158995972178669
-13434	4547	9073	0.292416775735491	0.292416775735491
-13436	9074	9075	0.0675438073285673	0.0675438073285673
-13438	9075	409	0.0146789910973018	0.0146789910973018
-13439	409	9076	0.0166512433271008	0.0166512433271008
-13441	4838	326	0.0588523383992881	0.0588523383992881
-13449	9081	9082	0.443932946896766	0.443932946896766
-13451	1401	9083	0.0611691476045831	0.0611691476045831
-13453	9083	6208	0.0330698135159164	0.0330698135159164
-13454	6208	7645	0.178373846931983	0.178373846931983
-13455	7645	9086	0.177258150455768	0.177258150455768
-13498	9107	3956	0.0601050509878674	0.0601050509878674
-13457	9087	9088	1.73315945419765	1.73315945419765
-13458	9088	410	0.265082533171925	0.265082533171925
-13459	410	9080	0.715047499183354	0.715047499183354
-13460	9080	9089	0.194455760903183	0.194455760903183
-13462	9089	9090	0.0550554662137945	0.0550554662137945
-13464	9091	9092	0.473459458640042	0.473459458640042
-13475	9098	9032	0.307889980671666	0.307889980671666
-13479	9090	9099	0.0142223937707519	0.0142223937707519
-13481	9100	9093	0.193628424072927	0.193628424072927
-13483	9101	9100	0.0626625130905001	0.0626625130905001
-13487	9103	346	0.140681499904037	0.140681499904037
-13522	9037	8064	0.00660497864323473	0.00660497864323473
-13489	3955	9081	0.113309674251049	0.113309674251049
-13491	6240	5091	0.078819968233945	0.078819968233945
-13493	9082	9103	0.0435368095566408	0.0435368095566408
-13494	9103	347	0.193850840943334	0.193850840943334
-13495	347	404	0.026466812116417	0.026466812116417
-13496	404	9106	0.11755875033606	0.11755875033606
-13501	9109	9107	0.387486870322022	0.387486870322022
-13503	6204	9110	0.181291651373991	0.181291651373991
-13505	9111	9112	0.0153902940291749	0.0153902940291749
-13506	9112	9101	0.137209683962048	0.137209683962048
-13508	9113	9111	0.075192531928865	0.075192531928865
-15014	455	860	0.0461629164957839	0.0461629164957839
-13510	9114	9115	0.148585418330877	0.148585418330877
-13514	8582	9116	0.0682625654668292	0.0682625654668292
-13516	9116	237	0.0139438438014188	0.0139438438014188
-13517	237	7635	0.17396601741799	0.17396601741799
-13519	7602	9073	0.102023996019348	0.102023996019348
-13521	117	9037	0.091769841511351	0.091769841511351
-13523	8064	6587	0.198394254239174	0.198394254239174
-13524	6587	5384	0.100320867880051	0.100320867880051
-13525	5384	7108	0.0976180261019357	0.0976180261019357
-13526	7108	2293	0.101160557994969	0.101160557994969
-13527	2293	9117	0.0816968455207608	0.0816968455207608
-13583	9134	9079	0.189350301331036	0.189350301331036
-13533	9118	6217	0.00293554606374767	0.00293554606374767
-13534	6217	7652	0.27452915439238	0.27452915439238
-13535	7652	8071	0.262369838158816	0.262369838158816
-13536	8071	9119	0.0614463164636613	0.0614463164636613
-13538	9118	7768	0.0286215741177868	0.0286215741177868
-13540	9121	9122	0.0549317968438626	0.0549317968438626
-13541	9122	9080	0.148946547669597	0.148946547669597
-13543	9121	4555	0.0367880997749164	0.0367880997749164
-13545	216	9123	0.047880969118268	0.047880969118268
-13547	9123	447	0.333206339887537	0.333206339887537
-13549	2999	9124	0.314861669735557	0.314861669735557
-13554	579	408	0.862576839598051	0.862576839598051
-13568	9128	9129	0.16941277010836	0.16941277010836
-13570	9124	9128	0.0550015048734635	0.0550015048734635
-13578	9132	220	0.766585324287615	0.766585324287615
-13615	7609	7262	0.111890561964914	0.111890561964914
-13579	220	566	0.637748069235424	0.637748069235424
-13587	9136	9137	0.450871833260349	0.450871833260349
-13590	8684	222	0.184496371824925	0.184496371824925
-13591	222	9140	0.487607813488587	0.487607813488587
-13593	9140	9077	0.174302500151122	0.174302500151122
-13594	9077	9141	0.280690469581891	0.280690469581891
-13596	9142	118	0.0916021886608042	0.0916021886608042
-13597	118	6721	0.0966297992771619	0.0966297992771619
-13598	6721	6722	0.0414535753801991	0.0414535753801991
-13599	6722	2311	0.00867549185460531	0.00867549185460531
-13601	6580	6723	0.0197325066377101	0.0197325066377101
-13603	9029	1240	0.0358410792262526	0.0358410792262526
-13604	1240	4790	0.0578956777475445	0.0578956777475445
-13605	4790	4814	0.0309664941935945	0.0309664941935945
-13606	4814	2156	0.0660634330770184	0.0660634330770184
-13607	2156	2166	0.00298513757197415	0.00298513757197415
-13608	2166	2183	0.165657322423627	0.165657322423627
-13609	2183	9070	0.039996230308656	0.039996230308656
-13611	3728	9143	0.0374422730466023	0.0374422730466023
-13613	3765	8150	0.099678431004031	0.099678431004031
-13614	8150	7609	0.0943510009713305	0.0943510009713305
-13616	7262	7595	0.0635463262031531	0.0635463262031531
-13617	7595	7599	0.0220206440979588	0.0220206440979588
-13618	7599	9144	0.0741982381570415	0.0741982381570415
-15078	7589	3366	0.105686563985576	0.105686563985576
-13619	9144	2022	0.0197545563564228	0.0197545563564228
-13620	2022	9147	0.0829434723735258	0.0829434723735258
-13621	9147	3355	0.0108199721778022	0.0108199721778022
-13623	9148	2768	0.0035576669192827	0.0035576669192827
-13624	2768	7013	0.0948918648713715	0.0948918648713715
-13626	2274	8214	0.00623184642483798	0.00623184642483798
-13627	8214	9149	0.0892902468185094	0.0892902468185094
-13628	9149	8211	0.0144047767787734	0.0144047767787734
-13629	8211	7521	0.0807484203861095	0.0807484203861095
-13630	7521	7522	0.0178959760293508	0.0178959760293508
-13631	7522	2132	0.0761585237127413	0.0761585237127413
-13632	2132	2117	0.0261874332320613	0.0261874332320613
-13633	2117	5982	0.0706516490311829	0.0706516490311829
-13634	5982	5987	0.0312102623276897	0.0312102623276897
-13635	5987	5148	0.0542024830967572	0.0542024830967572
-13636	5148	7678	0.00643849229968441	0.00643849229968441
-13637	7678	9150	0.0270552275766841	0.0270552275766841
-13638	9150	5159	0.0130471422397109	0.0130471422397109
-13639	5159	2336	0.0550815403379387	0.0550815403379387
-17797	9318	9592	0.0276370219250994	0.0276370219250994
-15154	9503	7694	0.0985863309924877	0.0985863309924877
-13640	2336	9151	2.70099171821299	2.70099171821299
-15853	9736	5597	0.026161521554181	0.026161521554181
-13642	327	390	0.428713460971309	0.428713460971309
-13643	390	216	1.2612581668138	1.2612581668138
-13647	4841	9156	0.020245918680072	0.020245918680072
-13653	9127	4841	0.714489743272739	0.714489743272739
-13655	9160	9161	0.0611231237623731	0.0611231237623731
-13657	9161	9162	0.0094906074947222	0.0094906074947222
-13658	9162	360	0.119259910634054	0.119259910634054
-13659	360	4441	0.0977181725107	0.0977181725107
-13660	4441	9025	0.101356058092401	0.101356058092401
-13661	9025	361	0.102083424277621	0.102083424277621
-13662	361	6661	0.148732998262686	0.148732998262686
-13663	6661	1457	0.0814814185857237	0.0814814185857237
-13664	1457	6930	0.0803380398809936	0.0803380398809936
-13665	6930	9163	0.0870015008277124	0.0870015008277124
-13666	9163	3826	0.0559780942251715	0.0559780942251715
-13667	3826	5901	0.113837481725673	0.113837481725673
-13668	5901	1650	0.336368580358266	0.336368580358266
-13669	1650	9026	0.0808050552206421	0.0808050552206421
-13670	9026	9027	0.0815322500516298	0.0815322500516298
-13671	9027	3968	0.0749133242052919	0.0749133242052919
-13672	3968	205	0.163780553378706	0.163780553378706
-13673	205	2934	0.0793233966793332	0.0793233966793332
-13674	2934	2932	0.00660572151012338	0.00660572151012338
-13675	2932	5313	0.0749133313668845	0.0749133313668845
-13676	5313	5314	0.039721686292112	0.039721686292112
-13677	5314	1472	0.0396600103919334	0.0396600103919334
-13678	1472	5451	0.159004638765101	0.159004638765101
-13679	5451	7909	0.201247264593271	0.201247264593271
-13680	7909	4403	0.196833842084677	0.196833842084677
-13681	4403	6310	0.199805236650359	0.199805236650359
-13682	6310	6311	0.0399338522027804	0.0399338522027804
-13683	6311	9019	0.0787211142615482	0.0787211142615482
-18919	10398	10391	0.0932116121589892	0.0932116121589892
-13684	9019	4301	0.0803301037321015	0.0803301037321015
-13685	4301	4499	0.100692334161908	0.100692334161908
-13686	4499	7815	0.0988002674680887	0.0988002674680887
-13687	7815	5071	0.0991802868019195	0.0991802868019195
-13688	5071	8014	0.103571412588639	0.103571412588639
-13689	8014	6833	0.0839453108807348	0.0839453108807348
-14657	9411	6735	0.143528351506247	0.143528351506247
-13691	6976	7946	0.0984345173677437	0.0984345173677437
-13692	7946	3301	0.0874467814940938	0.0874467814940938
-13693	3301	6365	0.0895995351805866	0.0895995351805866
-13694	6365	6654	0.083807023997277	0.083807023997277
-13695	6654	9165	0.68755983150845	0.68755983150845
-13696	9166	9167	0.0102840052604526	0.0102840052604526
-13698	7423	7832	0.102961269389569	0.102961269389569
-13699	7832	1182	0.0975615453999259	0.0975615453999259
-13700	1182	1359	0.100609727856237	0.100609727856237
-13701	1359	8086	0.0998738624212929	0.0998738624212929
-13702	8086	4842	0.0999569203615348	0.0999569203615348
-13703	4842	4377	0.103593486995353	0.103593486995353
-13704	4377	2859	0.305366704359361	0.305366704359361
-13705	2859	7625	0.0937028559888649	0.0937028559888649
-13706	7625	6669	0.0349417471907859	0.0349417471907859
-13707	6669	6928	0.181245567189969	0.181245567189969
-13708	6928	6929	0.056563910069816	0.056563910069816
-15200	9526	7443	0.0505254725980933	0.0505254725980933
-13710	3818	5176	0.0844451203946057	0.0844451203946057
-13711	5176	5900	0.0873882937906588	0.0873882937906588
-13712	5900	1602	0.0969475981594534	0.0969475981594534
-13713	1602	1645	0.147610823352004	0.147610823352004
-13714	1645	1658	0.00734081920779586	0.00734081920779586
-13715	1658	6715	0.113834950309784	0.113834950309784
-13717	4211	8097	0.0991353106844716	0.0991353106844716
-13719	9171	203	0.0903750729081993	0.0903750729081993
-13720	203	2931	0.102769081645998	0.102769081645998
-13721	2931	5312	0.098402268229521	0.098402268229521
-13722	5312	1469	0.0726981009727233	0.0726981009727233
-13723	1469	1468	0.023502610730772	0.023502610730772
-13724	1468	5448	0.104140699419407	0.104140699419407
-13726	3761	9166	0.069031653563667	0.069031653563667
-13728	4177	9172	0.109548350633249	0.109548350633249
-13730	9144	5946	0.201030224778112	0.201030224778112
-13731	5946	5137	0.27511296352744	0.27511296352744
-13732	5137	5152	0.0232058578864935	0.0232058578864935
-13733	5152	4907	0.10620133994029	0.10620133994029
-15464	1361	9615	0.0375616902705351	0.0375616902705351
-13734	4907	6615	0.200738818803378	0.200738818803378
-13735	6615	9173	0.1939198547813	0.1939198547813
-13736	9173	9174	0.208269220932895	0.208269220932895
-13738	9147	5947	0.203116974549126	0.203116974549126
-13740	7615	904	0.277200719177449	0.277200719177449
-13741	904	9175	0.127974248210887	0.127974248210887
-13743	7010	7421	0.0949619514323781	0.0949619514323781
-13744	7421	1142	0.0432881849429407	0.0432881849429407
-13745	1142	1147	0.0608947786947552	0.0608947786947552
-13746	1147	909	0.0792487229277921	0.0792487229277921
-13788	1669	9192	0.136278654988626	0.136278654988626
-13747	909	9176	0.125103752996271	0.125103752996271
-13748	9176	2771	0.202343174331141	0.202343174331141
-13749	2771	6895	0.198817638053719	0.198817638053719
-13753	9179	1	0.207517415173182	0.207517415173182
-13755	8437	9180	0.124967984057199	0.124967984057199
-13759	9182	4484	0.465234327006532	0.465234327006532
-13760	4484	4485	0.0326010116755978	0.0326010116755978
-13762	9183	9184	0.0646101092104256	0.0646101092104256
-13764	9185	9186	0.026977202251753	0.026977202251753
-13765	9186	9187	0.0154692834867904	0.0154692834867904
-13766	9187	6713	0.0145607005435147	0.0145607005435147
-13768	232	9188	0.0841812454433435	0.0841812454433435
-13770	9188	2561	0.00954099557633664	0.00954099557633664
-13773	8233	9190	0.00698491885871168	0.00698491885871168
-13774	9190	605	0.212601143616712	0.212601143616712
-13776	394	9191	0.174546619141482	0.174546619141482
-13779	294	4424	0.271505686802405	0.271505686802405
-13783	1892	4513	0.135635571790495	0.135635571790495
-13784	4513	5235	0.13338423256793	0.13338423256793
-13785	5235	6887	0.13498931648718	0.13498931648718
-13786	6887	8681	0.133693861256586	0.133693861256586
-13787	8681	1669	0.132070065253788	0.132070065253788
-13790	8903	8620	0.147899148341854	0.147899148341854
-13791	8620	6984	0.0740139001970076	0.0740139001970076
-13792	6984	4819	0.0711240597778575	0.0711240597778575
-13794	8514	8220	0.0695233221555377	0.0695233221555377
-13796	9193	9141	0.231480473302438	0.231480473302438
-13817	9194	8483	0.144876329810161	0.144876329810161
-13798	9193	9195	0.405940766693276	0.405940766693276
-13800	5081	9196	0.0826803218524669	0.0826803218524669
-13801	9196	7908	0.24773379383735	0.24773379383735
-13802	7908	1383	0.130538600450066	0.130538600450066
-13803	1383	4663	0.14493811446872	0.14493811446872
-13822	8286	9202	0.148093750497898	0.148093750497898
-13804	4663	9197	0.14786450905396	0.14786450905396
-13807	231	1184	0.314149545717651	0.314149545717651
-13808	1184	1364	0.114004540105804	0.114004540105804
-13810	1364	8087	0.130984174828509	0.130984174828509
-14659	939	5938	0.17856727191407	0.17856727191407
-14660	5938	3797	0.152203615831491	0.152203615831491
-13811	8087	9162	0.16050280483824	0.16050280483824
-13812	9162	9198	0.0132941963216631	0.0132941963216631
-18577	10320	10319	0.350878667314418	0.350878667314418
-20839	10930	10948	0.105680421147412	0.105680421147412
-13813	9198	9199	3.17004296851045	3.17004296851045
-17798	9592	10180	0.0765579819092659	0.0765579819092659
-13839	1284	9210	0.120028974895433	0.120028974895433
-13816	4931	9194	0.407318560179548	0.407318560179548
-13819	6705	8577	0.147047679886064	0.147047679886064
-13820	8577	5778	0.145526475675905	0.145526475675905
-13821	5778	8286	0.144657100371242	0.144657100371242
-13823	9202	9203	0.102081942931647	0.102081942931647
-13825	7891	9204	0.145701377036231	0.145701377036231
-13827	8994	9205	0.0106390736530004	0.0106390736530004
-13828	9205	8304	0.117212668938715	0.117212668938715
-13829	8304	6774	0.0328401658585753	0.0328401658585753
-13830	6774	3753	0.196045019335809	0.196045019335809
-13831	3753	8325	0.00916875381027056	0.00916875381027056
-13833	8444	9206	0.0130864665707206	0.0130864665707206
-13834	9206	9207	0.00957370688012094	0.00957370688012094
-13835	9207	9208	0.169933774193856	0.169933774193856
-13836	9208	9209	0.168302394118973	0.168302394118973
-15503	3939	5618	0.12194000294889	0.12194000294889
-13837	9209	2963	0.0205458196072096	0.0205458196072096
-13840	9210	9211	0.00588390321087397	0.00588390321087397
-13841	9211	22	0.0556252544592051	0.0556252544592051
-13842	22	6435	0.0767592442346679	0.0767592442346679
-13843	6435	636	0.0822615503744666	0.0822615503744666
-13844	636	9213	0.103246384420422	0.103246384420422
-13845	9213	535	0.0273108213340879	0.0273108213340879
-13846	535	9214	0.138573391347307	0.138573391347307
-13847	9214	8498	0.0276472257994952	0.0276472257994952
-13848	8498	8441	0.0465142466162739	0.0465142466162739
-13850	9215	8403	0.0487070540067587	0.0487070540067587
-13851	8403	1774	0.0526991311069308	0.0526991311069308
-13853	4412	9216	0.0527074152255093	0.0527074152255093
-13854	9216	4781	0.0501079093501001	0.0501079093501001
-14661	3797	9412	0.199399735185058	0.199399735185058
-13855	4781	1522	0.0511423250179406	0.0511423250179406
-13856	1522	5241	0.0480297777865987	0.0480297777865987
-13857	5241	463	0.0533178386766155	0.0533178386766155
-13859	9217	8420	0.0487543044755043	0.0487543044755043
-13860	8420	1773	0.0502154238610622	0.0502154238610622
-13862	4425	9218	0.050643583977918	0.050643583977918
-13863	9218	4823	0.0514478917449482	0.0514478917449482
-13864	4823	1521	0.0514834990326773	0.0514834990326773
-13865	1521	5262	0.0474439861374267	0.0474439861374267
-13866	5262	9219	0.0530746980864797	0.0530746980864797
-13868	6499	2472	0.199600310338802	0.199600310338802
-13870	7007	2282	0.0992844503488553	0.0992844503488553
-13872	3603	7529	0.0990493561706104	0.0990493561706104
-13873	7529	2137	0.105524175995486	0.105524175995486
-13874	2137	5994	0.104734285723653	0.104734285723653
-13875	5994	7674	0.100897460064117	0.100897460064117
-13996	5841	434	0.0624248318177171	0.0624248318177171
-13876	7674	9221	1.00510923817581	1.00510923817581
-13878	2804	5269	0.128688734978596	0.128688734978596
-13879	5269	6909	0.123348542786119	0.123348542786119
-13881	4480	5270	0.264392216770053	0.264392216770053
-13882	5270	6910	0.123553912188766	0.123553912188766
-13884	7761	6908	0.206924774668396	0.206924774668396
-13886	6907	7760	0.209013911598568	0.209013911598568
-13887	7760	9222	0.202410018751594	0.202410018751594
-13888	6905	7759	0.206351576128965	0.206351576128965
-13889	7759	6359	0.203865759483167	0.203865759483167
-13891	9223	6448	0.190233422734384	0.190233422734384
-13892	6448	6992	0.620734926195411	0.620734926195411
-13893	6992	2116	0.412221337604484	0.412221337604484
-13894	2116	7665	0.206015761732372	0.206015761732372
-13935	9237	254	0.129619446290563	0.129619446290563
-13895	7665	9224	1.85930539190202	1.85930539190202
-13896	9225	2398	0.224331288063009	0.224331288063009
-13897	2398	6361	0.106327129111224	0.106327129111224
-17281	7311	3273	0.201986093156211	0.201986093156211
-13899	6446	9223	0.123505309386589	0.123505309386589
-13901	8984	8975	0.295278766625452	0.295278766625452
-13903	8980	8981	0.155353173279186	0.155353173279186
-13905	9226	8104	0.184150710275748	0.184150710275748
-13907	9227	6946	0.038429344582371	0.038429344582371
-13912	6380	9229	0.104471273298691	0.104471273298691
-14662	9412	9300	0.189453948637121	0.189453948637121
-13916	566	9231	1.43965285379934	1.43965285379934
-13917	9136	9232	0.238873404598648	0.238873404598648
-13920	483	7284	0.0730945677376631	0.0730945677376631
-13928	278	6916	0.0415405366115252	0.0415405366115252
-13930	9235	9236	0.360270886139133	0.360270886139133
-13931	9236	2883	0.0595125074168401	0.0595125074168401
-13936	254	8324	0.235611866233999	0.235611866233999
-13938	8324	8310	0.066787627422688	0.066787627422688
-13940	8310	9241	0.146021189936251	0.146021189936251
-13944	9099	7796	0.300588795121337	0.300588795121337
-13948	9244	9113	0.144188675545464	0.144188675545464
-13950	9106	9244	0.0499156662848634	0.0499156662848634
-13952	9245	9246	0.123118530171941	0.123118530171941
-13954	405	406	0.0103894659763889	0.0103894659763889
-13955	406	9245	0.0664778537431541	0.0664778537431541
-13957	407	9033	0.137547423766831	0.137547423766831
-17289	5839	7744	0.201433070586795	0.201433070586795
-13965	9097	9248	0.39480102328572	0.39480102328572
-13966	9248	9249	0.0955291664142426	0.0955291664142426
-13968	9246	9248	0.157049002786803	0.157049002786803
-13976	3952	9252	0.0592126025244243	0.0592126025244243
-13977	9252	5605	0.0597855652504274	0.0597855652504274
-13978	5605	9253	0.0521408060475983	0.0521408060475983
-13979	9253	3728	0.0545524879363147	0.0545524879363147
-13981	7951	7949	0.019092168905179	0.019092168905179
-13983	7949	3093	0.182702780383174	0.182702780383174
-15893	9254	9255	0.183718623774573	0.183718623774573
-13984	3093	3203	0.200818235908537	0.200818235908537
-13985	3203	6116	0.201635970571119	0.201635970571119
-13986	6116	1913	0.201179241726354	0.201179241726354
-13987	1913	9219	0.201184980777767	0.201184980777767
-13988	9219	463	0.200400773809621	0.200400773809621
-13989	463	7301	0.202731579470961	0.202731579470961
-13990	7301	49	0.204762753950758	0.204762753950758
-13991	49	3548	0.19703986640102	0.19703986640102
-13992	3548	4243	0.201964288701916	0.201964288701916
-13993	4243	1803	0.208102375283595	0.208102375283595
-13994	1803	8711	0.194851559567089	0.194851559567089
-13995	8711	5841	0.20424687376631	0.20424687376631
-17660	586	8936	0.0435552950105704	0.0435552950105704
-13997	434	8731	0.0205731062854678	0.0205731062854678
-13999	3219	3112	0.203925882799295	0.203925882799295
-14000	3112	3641	0.260678130684959	0.260678130684959
-14001	3641	9256	0.0279085029397156	0.0279085029397156
-14003	9257	8801	0.0249979934697134	0.0249979934697134
-14665	4752	4167	0.209025457745472	0.209025457745472
-14005	9256	9257	0.0367111693692818	0.0367111693692818
-14007	9258	3642	0.0274131048639432	0.0274131048639432
-14008	3642	9259	0.086632322467807	0.086632322467807
-14009	9259	3111	0.171051850512145	0.171051850512145
-14010	3111	3219	0.203481486479522	0.203481486479522
-14012	7158	9258	0.038998695665846	0.038998695665846
-14014	3219	6126	0.202012344464496	0.202012344464496
-14015	6126	1929	0.202386985868189	0.202386985868189
-14016	1929	2919	0.0171463622508283	0.0171463622508283
-14017	2919	7250	0.183561589747783	0.183561589747783
-14018	7250	3274	0.20118632596822	0.20118632596822
-14019	3274	7312	0.203193267560765	0.203193267560765
-14021	9260	9157	0.0588873613464273	0.0588873613464273
-14022	9157	6253	0.473629275671798	0.473629275671798
-14023	6253	9167	0.20379925953003	0.20379925953003
-14024	9167	231	0.364607283214556	0.364607283214556
-14026	9171	2308	0.0877328075526686	0.0877328075526686
-14027	2308	167	0.314493617652356	0.314493617652356
-14030	6653	9263	0.598539344332022	0.598539344332022
-14031	5448	5975	0.113227741973857	0.113227741973857
-14032	5975	9023	0.0895901368528646	0.0895901368528646
-14033	9023	4404	0.197536219691709	0.197536219691709
-14034	4404	7371	0.107978748074207	0.107978748074207
-14035	7371	6307	0.0697549406367758	0.0697549406367758
-14036	6307	6308	0.0220857912106748	0.0220857912106748
-14037	6308	4316	0.20668661359579	0.20668661359579
-14038	4316	4503	0.0921482766473363	0.0921482766473363
-14039	4503	7814	0.109821870874264	0.109821870874264
-14040	7814	5079	0.102137328159445	0.102137328159445
-14041	5079	8013	0.0998289131041121	0.0998289131041121
-14042	8013	6832	0.10065041616734	0.10065041616734
-14043	6832	6975	0.0990932842629603	0.0990932842629603
-14044	6975	7945	0.100601003970672	0.100601003970672
-14045	7945	6364	0.097675013601381	0.097675013601381
-14049	9264	9265	0.128352927336665	0.128352927336665
-14051	3219	5061	0.0565378582983479	0.0565378582983479
-14052	5061	4916	0.0521329784642155	0.0521329784642155
-17662	488	10160	0.037999512945138	0.037999512945138
-14053	4916	5228	0.130202288917824	0.130202288917824
-14054	5228	5106	0.0572735085516971	0.0572735085516971
-14055	5106	5229	0.0124802378810982	0.0124802378810982
-14056	5229	4995	0.288542415463076	0.288542415463076
-14057	4995	9266	0.20116472075537	0.20116472075537
-14666	4167	6326	0.178657902009272	0.178657902009272
-14058	9266	7066	0.0118986523075564	0.0118986523075564
-14059	7066	3636	0.140199736242294	0.140199736242294
-14061	9266	6351	0.197550871457279	0.197550871457279
-14063	2574	5103	0.0764020591743967	0.0764020591743967
-14065	7930	1893	0.0520626532677435	0.0520626532677435
-14066	1893	2315	0.115168818798466	0.115168818798466
-14068	7341	6156	0.0983814711715662	0.0983814711715662
-14069	6156	6290	0.0991170792397538	0.0991170792397538
-14070	6290	3116	0.0983982120263374	0.0983982120263374
-14072	6673	8185	0.0325158694936318	0.0325158694936318
-14074	3188	9268	0.0244851420549388	0.0244851420549388
-14075	9268	8800	0.0276968906605859	0.0276968906605859
-14077	6718	9269	0.103071842817105	0.103071842817105
-14078	9269	8160	0.0477581921413061	0.0477581921413061
-14080	7342	3492	0.198422050793999	0.198422050793999
-14081	3492	9270	0.0991145839577047	0.0991145839577047
-17664	10161	6173	0.109897620785603	0.109897620785603
-14082	9270	5386	0.100577308895159	0.100577308895159
-14083	5386	9271	0.100588544879537	0.100588544879537
-14084	9271	6817	0.101321511979085	0.101321511979085
-14160	7023	7393	0.135757251453186	0.135757251453186
-14161	7393	9272	0.0789156635630832	0.0789156635630832
-14166	9278	7444	0.0517309727495982	0.0517309727495982
-14129	9279	9280	0.186364690747119	0.186364690747119
-14085	6817	9273	5.01601743028969	5.01601743028969
-14086	9274	6816	4.59997811614881	4.59997811614881
-14088	2943	5348	0.200890409378397	0.200890409378397
-14089	5348	3491	0.0990328236882064	0.0990328236882064
-14090	3491	2849	0.0998105211493863	0.0998105211493863
-14091	2849	7341	0.0991252344530307	0.0991252344530307
-14093	9271	6103	0.208876201356377	0.208876201356377
-14095	9270	6098	0.16565447863601	0.16565447863601
-14096	6098	9275	0.0444779706577198	0.0444779706577198
-14097	9269	6101	0.238835584318973	0.238835584318973
-17799	10180	8536	0.0726583525558809	0.0726583525558809
-14099	8294	9276	0.192103991232145	0.192103991232145
-14101	4423	9277	0.533016938094048	0.533016938094048
-14138	9282	9283	0.384483999025896	0.384483999025896
-14146	4993	9288	0.0718457938229626	0.0718457938229626
-14148	9288	471	0.0203590276008878	0.0203590276008878
-14149	471	6430	0.0161743745423695	0.0161743745423695
-14150	6430	4655	0.1348214737413	0.1348214737413
-14151	4655	1277	0.119151021074222	0.119151021074222
-14152	1277	4528	0.128606742393323	0.128606742393323
-14153	4528	9289	0.132757697104501	0.132757697104501
-14154	9289	9290	0.133347126872573	0.133347126872573
-14155	9290	9291	0.0102673262572307	0.0102673262572307
-14156	9291	6745	0.131970868855064	0.131970868855064
-14157	6745	6145	0.131356474267846	0.131356474267846
-14158	6145	4019	0.135781040149455	0.135781040149455
-14159	4019	7023	0.135014116939136	0.135014116939136
-14162	9272	3401	0.0502252760733361	0.0502252760733361
-14163	3401	9220	0.0499780107614713	0.0499780107614713
-17968	8778	10231	0.0192769916187002	0.0192769916187002
-14164	9220	8375	0.0494394335916504	0.0494394335916504
-14165	8375	9278	0.0493971533103994	0.0493971533103994
-14167	7444	9292	0.0498509119548639	0.0498509119548639
-14168	9292	7161	0.0504322249542888	0.0504322249542888
-14169	7161	9293	0.049549545616498	0.049549545616498
-14671	5473	9414	0.169600878974653	0.169600878974653
-14170	9293	7773	0.0509361632349417	0.0509361632349417
-14171	7773	9039	0.0499454477956979	0.0499454477956979
-14172	9039	1114	0.0547655871790504	0.0547655871790504
-14173	1114	9294	0.0447798115689078	0.0447798115689078
-14174	9294	7494	0.0527731793085291	0.0527731793085291
-14175	7494	9170	0.0488063990880333	0.0488063990880333
-14176	9170	3836	0.0502683027746479	0.0502683027746479
-14180	7818	2938	0.0876396467302253	0.0876396467302253
-14181	2938	6809	0.0888992165922937	0.0888992165922937
-14182	6809	1960	0.772041478396669	0.772041478396669
-17800	8536	8859	0.0293889142934455	0.0293889142934455
-14183	1960	9295	0.960771522024492	0.960771522024492
-14184	7571	9296	0.161476693063143	0.161476693063143
-14185	9296	8888	0.0634729683022204	0.0634729683022204
-14187	9297	6334	0.0129309336441387	0.0129309336441387
-14188	6334	7083	0.0225608570291498	0.0225608570291498
-14189	7083	8784	0.107920119748436	0.107920119748436
-14190	8784	8791	0.106332666658533	0.106332666658533
-14191	8791	3157	0.106749034536814	0.106749034536814
-14192	3157	4976	0.101195319793441	0.101195319793441
-14193	4976	9298	0.0996902493641346	0.0996902493641346
-14194	9298	9299	0.104226329823663	0.104226329823663
-14195	9299	6538	0.0493134523648135	0.0493134523648135
-14196	6538	5048	0.0489874238643872	0.0489874238643872
-14197	5048	8001	0.0994531494791736	0.0994531494791736
-14198	8001	985	0.0994551795792203	0.0994551795792203
-14199	985	5104	0.0491411684949994	0.0491411684949994
-14201	8831	9300	0.0488242916251385	0.0488242916251385
-14202	9300	7149	0.0497002324101769	0.0497002324101769
-14203	7149	2393	0.0492946529104208	0.0492946529104208
-14204	2393	5115	0.0502354677891233	0.0502354677891233
-14205	5115	9301	0.0497154080261439	0.0497154080261439
-14206	9301	4714	0.049399080188397	0.049399080188397
-14207	4714	8872	0.0991624253785381	0.0991624253785381
-14208	8872	7353	0.0988972303255353	0.0988972303255353
-14209	7353	5412	0.107964313206197	0.107964313206197
-14210	5412	3145	0.0906444248702148	0.0906444248702148
-14211	3145	3919	0.0988223626592478	0.0988223626592478
-18204	6875	8356	0.205977621151269	0.205977621151269
-14212	3919	3918	0.0189862588635382	0.0189862588635382
-14213	3918	1010	0.0826936905404967	0.0826936905404967
-14214	1010	6261	0.0974734196824701	0.0974734196824701
-14215	6261	8730	0.0989075877241795	0.0989075877241795
-14216	8730	7153	0.0605847994240266	0.0605847994240266
-14217	7153	5021	0.0499889577891061	0.0499889577891061
-14218	5021	9302	0.0549823108734392	0.0549823108734392
-14219	9302	3342	0.0335617577180335	0.0335617577180335
-14220	3342	3352	0.0674788037125104	0.0674788037125104
-14221	3352	7886	0.0299418452790484	0.0299418452790484
-14222	7886	7319	0.0732493043433617	0.0732493043433617
-14223	7319	7320	0.0259215863697348	0.0259215863697348
-14224	7320	7977	0.0775267077551995	0.0775267077551995
-14225	7977	7980	0.0233987016260196	0.0233987016260196
-14226	7980	2061	0.0796038188827741	0.0796038188827741
-14227	2061	8870	0.0167451229489977	0.0167451229489977
-14228	8870	2647	0.0876006586657796	0.0876006586657796
-14229	2647	8860	0.0114861984991212	0.0114861984991212
-14231	4113	8862	0.00848374045935965	0.00848374045935965
-14232	8862	8687	0.0949896568056219	0.0949896568056219
-14234	6694	8024	0.0782864986898227	0.0782864986898227
-14235	8024	8017	0.0158816052839578	0.0158816052839578
-18205	8356	10280	0.196081618210442	0.196081618210442
-14236	8017	7681	0.0911745487086236	0.0911745487086236
-14237	7681	3454	0.0980849682512979	0.0980849682512979
-14238	3454	6017	0.0971271293907499	0.0971271293907499
-14239	6017	9303	0.0906101063303862	0.0906101063303862
-14240	9303	3884	0.022021804982538	0.022021804982538
-14241	3884	9304	0.0244079810975188	0.0244079810975188
-14242	9304	852	0.0462417773626911	0.0462417773626911
-14243	852	847	0.0318832988859635	0.0318832988859635
-14244	847	9305	0.0129480432587025	0.0129480432587025
-14245	9305	7103	0.0469858120705144	0.0469858120705144
-14246	7103	7098	0.0440436114993002	0.0440436114993002
-14247	7098	8567	0.0448162532507988	0.0448162532507988
-14248	8567	8696	0.0173715559267549	0.0173715559267549
-14249	8696	8157	0.112872102261494	0.112872102261494
-14251	7606	7263	0.0986452262534628	0.0986452262534628
-14252	7263	7596	0.0935891946661749	0.0935891946661749
-14253	7596	2019	0.0979493336941006	0.0979493336941006
-14254	2019	2009	0.0254598809515577	0.0254598809515577
-14255	2009	9306	0.0651506123907477	0.0651506123907477
-14256	9306	2765	0.0942796454050606	0.0942796454050606
-14257	2765	7004	0.0945020258355606	0.0945020258355606
-14258	7004	2269	0.094510288095609	0.094510288095609
-14259	2269	3597	0.0938178496086605	0.0938178496086605
-14260	3597	7519	0.0940495689740582	0.0940495689740582
-14261	7519	2097	0.0954278502201834	0.0954278502201834
-14262	2097	5979	0.093364277402532	0.093364277402532
-14263	5979	7668	0.0947328877466294	0.0947328877466294
-14264	7668	2333	0.0940581587738673	0.0940581587738673
-14290	7340	2847	0.0976411590956878	0.0976411590956878
-14291	2847	3488	0.099134038329873	0.099134038329873
-14265	2333	9307	2.72967592410639	2.72967592410639
-14266	7939	9297	0.0419487931711618	0.0419487931711618
-14268	9308	8124	0.0322650869587369	0.0322650869587369
-14270	6489	4610	0.147433811602258	0.147433811602258
-14271	4610	9309	0.176778253451623	0.176778253451623
-14272	9309	9310	0.173976128689665	0.173976128689665
-14273	9310	661	0.00410310170227956	0.00410310170227956
-14274	661	9311	0.181937703339546	0.181937703339546
-14275	9311	9312	0.00955167864142152	0.00955167864142152
-14276	9312	5465	0.170285054650927	0.170285054650927
-14277	5465	9313	0.170744821866598	0.170744821866598
-14279	1959	9314	0.0338130460518869	0.0338130460518869
-14280	6865	9315	0.0139507857568572	0.0139507857568572
-14304	3303	9322	0.10510832723533	0.10510832723533
-14282	1952	1061	0.0629715521271105	0.0629715521271105
-14283	1061	1698	0.0954893713474356	0.0954893713474356
-14284	1698	7830	0.0914331784434328	0.0914331784434328
-14285	7830	6672	0.0912502234487567	0.0912502234487567
-14287	3115	6289	0.0998478865183477	0.0998478865183477
-14288	6289	6153	0.0969141122634902	0.0969141122634902
-14289	6153	7340	0.100591515239683	0.100591515239683
-14292	3488	5347	0.102266398355838	0.102266398355838
-14293	5347	5385	0.100999909961237	0.100999909961237
-14294	5385	2941	0.100298515709498	0.100298515709498
-14295	2941	6815	0.100200854484763	0.100200854484763
-14296	6815	9316	0.597950743493465	0.597950743493465
-14299	9318	9319	0.0328706223087289	0.0328706223087289
-14300	9319	9320	0.0460951861554719	0.0460951861554719
-14332	8959	603	0.0768028618845699	0.0768028618845699
-14301	9320	9321	0.0066600520489618	0.0066600520489618
-14302	9321	6181	0.104280480431139	0.104280480431139
-14303	6181	3303	0.107915728386056	0.107915728386056
-14305	9322	7829	0.125883411444605	0.125883411444605
-14306	7829	9323	0.0108681676592021	0.0108681676592021
-14339	5536	6469	0.142307267119589	0.142307267119589
-14309	2191	9060	0.337657954437192	0.337657954437192
-14312	8501	9324	0.0507516559976904	0.0507516559976904
-14313	9324	8418	0.0529402152835436	0.0529402152835436
-14314	8418	9204	0.0536170041098827	0.0536170041098827
-16428	9891	9892	0.0636662665142278	0.0636662665142278
-14316	9204	8416	0.0537868101405785	0.0537868101405785
-14317	8416	4388	0.0529171329453403	0.0529171329453403
-14318	4388	9325	0.0509479826022637	0.0509479826022637
-14319	9325	3012	0.0488022545854277	0.0488022545854277
-14320	3012	9326	0.0106897373905654	0.0106897373905654
-14321	9326	9327	0.0465239604768105	0.0465239604768105
-14322	9327	5968	0.0526629141875595	0.0526629141875595
-14323	5968	7574	0.106363762970419	0.106363762970419
-14324	7574	3677	0.190331060201359	0.190331060201359
-14326	604	9328	0.0383191315904674	0.0383191315904674
-14327	9328	8962	0.0878512488922689	0.0878512488922689
-14336	2420	3233	0.140764271648617	0.140764271648617
-14337	3233	5753	0.137661630591373	0.137661630591373
-14338	5753	5536	0.137436976875483	0.137436976875483
-14340	6469	8679	0.121371092902246	0.121371092902246
-14341	8679	9329	0.0309595800848719	0.0309595800848719
-20573	10860	10861	0.0279030600601915	0.0279030600601915
-14342	6914	8116	0.133600464645887	0.133600464645887
-14343	8116	2483	0.133445859176034	0.133445859176034
-14344	2483	2482	0.047686047945258	0.047686047945258
-14345	2482	2821	0.0880230568241511	0.0880230568241511
-14346	2821	1413	0.131238509050086	0.131238509050086
-14347	1413	1353	0.132733599584258	0.132733599584258
-14348	1353	7767	0.0733149237137966	0.0733149237137966
-14350	6729	2454	0.137919009046371	0.137919009046371
-14351	2454	3222	0.134234515444875	0.134234515444875
-14352	3222	5743	0.134597141931663	0.134597141931663
-14353	5743	5520	0.133175062767026	0.133175062767026
-14355	6454	6914	0.135018185869381	0.135018185869381
-14358	9331	5721	0.0487615183925519	0.0487615183925519
-14359	5721	7455	0.0500566721474228	0.0500566721474228
-14360	7455	7439	0.0502188861539984	0.0502188861539984
-14361	7439	9332	0.0497229240568787	0.0497229240568787
-14362	9332	7179	0.0495263907597367	0.0495263907597367
-14363	7179	6514	0.0494836674166392	0.0494836674166392
-14364	6514	7769	0.0494751212766029	0.0494751212766029
-14365	7769	8353	0.0493044680149371	0.0493044680149371
-14366	8353	1088	0.0496035740367965	0.0496035740367965
-14367	1088	9333	0.0494070055394434	0.0494070055394434
-18206	10280	8329	0.00812836711491393	0.00812836711491393
-14368	9333	7511	0.0493300687211978	0.0493300687211978
-14369	7511	9334	0.0505963663421883	0.0505963663421883
-14370	9334	3859	0.0512115816031079	0.0512115816031079
-14371	3859	7593	0.0500990561172611	0.0500990561172611
-14372	7593	5584	0.0522011302499861	0.0522011302499861
-14376	6393	4066	0.134479200667361	0.134479200667361
-17290	7744	10084	0.402391291558362	0.402391291558362
-14377	4066	8345	0.135023999423797	0.135023999423797
-14378	8345	9290	0.135014881750995	0.135014881750995
-14380	9290	8343	0.132811220384574	0.132811220384574
-14381	8343	4290	0.133533987407519	0.133533987407519
-14382	4290	9335	0.135902936474728	0.135902936474728
-14383	9335	3489	0.0587665939642116	0.0587665939642116
-14384	3489	7712	0.0755904198902593	0.0755904198902593
-14385	7712	27	0.134715758792357	0.134715758792357
-14386	27	2969	0.137103389587981	0.137103389587981
-14387	2969	9336	0.0109860620784292	0.0109860620784292
-14388	9336	9337	0.167759812178903	0.167759812178903
-14389	9337	9206	0.00926254133366712	0.00926254133366712
-14390	9206	8977	0.0113535458246787	0.0113535458246787
-14391	8977	8972	0.0088289433819593	0.0088289433819593
-14392	8972	3592	0.0571990081351957	0.0571990081351957
-14393	3592	9338	0.0469245704560806	0.0469245704560806
-14394	9338	9339	0.0729443531618577	0.0729443531618577
-14395	9339	8232	0.00668286428887123	0.00668286428887123
-14396	8232	9340	0.00979627303730314	0.00979627303730314
-14397	9340	9341	0.118389238398527	0.118389238398527
-14398	9341	4525	0.00524840053732967	0.00524840053732967
-14399	4525	9342	0.013599142214923	0.013599142214923
-17917	5630	5173	0.1998812615077	0.1998812615077
-14400	9342	5242	0.122003116630053	0.122003116630053
-14401	5242	6892	0.132288650893496	0.132288650893496
-14402	6892	9343	0.135024052446379	0.135024052446379
-14403	9343	1682	0.135717283468362	0.135717283468362
-14404	1682	9344	0.13652220484586	0.13652220484586
-14405	9344	9345	0.105458278319657	0.105458278319657
-14406	9345	2418	0.102009831688775	0.102009831688775
-14407	2418	3242	0.101232559655988	0.101232559655988
-14408	3242	5748	0.0982858511104491	0.0982858511104491
-14409	5748	374	0.0623624460797668	0.0623624460797668
-14410	374	5523	0.0701701821949803	0.0701701821949803
-14411	5523	6457	0.135950108709595	0.135950108709595
-14412	6457	6915	0.143043041710545	0.143043041710545
-14413	6915	8113	0.201708935806819	0.201708935806819
-14414	8113	2832	0.20096393469179	0.20096393469179
-14415	2832	9346	0.204633312594591	0.204633312594591
-14416	9346	414	0.202451705011007	0.202451705011007
-14417	414	9347	0.0102632917291373	0.0102632917291373
-14419	9348	9349	0.0562572963351917	0.0562572963351917
-14420	9349	8300	0.00966827703924115	0.00966827703924115
-14421	8300	6777	0.0385409578619094	0.0385409578619094
-14422	6777	1544	0.0462211024255861	0.0462211024255861
-14423	1544	7912	0.0490573153021717	0.0490573153021717
-14424	7912	1233	0.049290008691593	0.049290008691593
-14426	6137	1235	0.0484278864865507	0.0484278864865507
-14427	1235	4023	0.0513600630217092	0.0513600630217092
-14429	9350	6747	0.132068580931606	0.132068580931606
-14430	6747	6147	0.133962898476652	0.133962898476652
-14431	6147	4021	0.132523387247295	0.132523387247295
-14432	4021	7025	0.136778977327424	0.136778977327424
-14433	7025	7395	0.133533581691074	0.133533581691074
-14434	7395	3404	0.129273092410981	0.129273092410981
-14437	6743	6143	0.132668974575322	0.132668974575322
-14439	4017	7021	0.135416440349126	0.135416440349126
-15949	9764	9765	0.0507119344408952	0.0507119344408952
-14440	7021	2253	0.0670945211351968	0.0670945211351968
-14441	2253	7391	0.0705505249778064	0.0705505249778064
-14442	7391	8378	0.0284601613193826	0.0284601613193826
-14443	8378	9352	0.0168078916798857	0.0168078916798857
-14444	9352	9164	0.0309569561418734	0.0309569561418734
-14445	9164	3399	0.0498252251835071	0.0498252251835071
-14446	3399	9201	0.0503897904067021	0.0503897904067021
-14447	9201	8373	0.0497143012199282	0.0497143012199282
-14448	8373	9353	0.0509790068650631	0.0509790068650631
-14449	9353	7441	0.0496189650212473	0.0496189650212473
-14450	7441	7159	0.100702050774509	0.100702050774509
-14451	7159	9354	0.0494661713985568	0.0494661713985568
-14452	9354	7771	0.0505861336269105	0.0505861336269105
-14453	7771	9120	0.0493839312690347	0.0493839312690347
-14454	9120	1112	0.0512647827333792	0.0512647827333792
-14455	1112	9355	0.0498795134320378	0.0498795134320378
-14456	9355	7492	0.0488194630548967	0.0488194630548967
-14457	7492	9168	0.0520827219058429	0.0520827219058429
-14460	9356	8961	0.0504011792295747	0.0504011792295747
-14461	8961	3748	0.0493839208030821	0.0493839208030821
-14462	3748	6769	0.0968984775923487	0.0968984775923487
-14463	6769	6149	0.102435146849327	0.102435146849327
-14465	3994	7051	0.102115193238577	0.102115193238577
-14466	7051	1408	0.0946641824527164	0.0946641824527164
-14467	1408	7388	0.085462530975882	0.085462530975882
-14468	7388	7384	0.0170925061959903	0.0170925061959903
-18773	9634	9642	0.177090825598433	0.177090825598433
-14469	7384	3431	0.0989346539047275	0.0989346539047275
-14470	3431	7700	0.0518438186201772	0.0518438186201772
-14471	7700	5704	0.048946112444104	0.048946112444104
-14472	5704	9357	0.0519385112225497	0.0519385112225497
-14473	9357	7431	0.0487842422429383	0.0487842422429383
-14474	7431	9358	0.0504551193593522	0.0504551193593522
-14475	9358	7172	0.0479047859915454	0.0479047859915454
-14476	7172	6792	0.0511502123352556	0.0511502123352556
-14477	6792	7632	0.00188047440472113	0.00188047440472113
-14478	7632	7787	0.0496192518214323	0.0496192518214323
-14480	9359	8535	0.0508077855400009	0.0508077855400009
-14481	8535	6765	0.145782759028854	0.145782759028854
-14482	6765	3990	0.201170058672575	0.201170058672575
-14484	1252	9360	0.0508116162596578	0.0508116162596578
-14485	9360	2713	0.151002345273532	0.151002345273532
-14486	2713	9361	0.150151679268698	0.150151679268698
-14487	9361	9345	0.0467087251829664	0.0467087251829664
-14489	604	9362	0.304555126012675	0.304555126012675
-19303	10466	10464	0.0570509910756543	0.0570509910756543
-14490	9362	3931	0.0491525010465484	0.0491525010465484
-14491	3931	5621	0.101973762448865	0.101973762448865
-14492	5621	3706	0.101962569966911	0.101962569966911
-14493	3706	712	0.103443032392629	0.103443032392629
-14494	712	9192	0.0968373320357312	0.0968373320357312
-14495	9192	9363	0.0080975223718546	0.0080975223718546
-14496	9363	8516	0.0893732443225825	0.0893732443225825
-14497	8516	4192	0.13424362136155	0.13424362136155
-14498	4192	2518	0.136440133151325	0.136440133151325
-14499	2518	6729	0.134978640871206	0.134978640871206
-14500	6729	1227	0.0997687727623418	0.0997687727623418
-14501	1227	4806	0.0366740513167213	0.0366740513167213
-14502	4806	4807	0.0623613194343192	0.0623613194343192
-14503	4807	9364	0.0735708513932139	0.0735708513932139
-14505	2172	9365	0.10218559205586	0.10218559205586
-14506	9365	6421	0.131466128237451	0.131466128237451
-14507	6421	4627	0.133072729014262	0.133072729014262
-14508	4627	1251	0.132619751836754	0.132619751836754
-14509	1251	9366	0.0509582244384895	0.0509582244384895
-14510	9366	4559	0.0827794726054668	0.0827794726054668
-14511	4559	2712	0.0689589814233185	0.0689589814233185
-14512	2712	2728	0.0619836012735683	0.0619836012735683
-14513	2728	9367	0.087518882590742	0.087518882590742
-14514	9367	9344	0.0476225838725891	0.0476225838725891
-14515	9344	9368	0.00985438954363147	0.00985438954363147
-14516	9368	9369	0.0491094576501381	0.0491094576501381
-18778	10124	10345	0.0125614259192805	0.0125614259192805
-14517	9369	7774	0.00626697755243391	0.00626697755243391
-14518	7774	6761	0.141378168804538	0.141378168804538
-14519	6761	3985	0.199192140414955	0.199192140414955
-14521	7053	7044	0.0653254811284965	0.0653254811284965
-14522	7044	7387	0.0682830004024069	0.0682830004024069
-14523	7387	3430	0.133588924605445	0.133588924605445
-14524	3430	7686	0.0503796411863715	0.0503796411863715
-14525	7686	5703	0.0508582113883613	0.0508582113883613
-14526	5703	9370	0.0488667197641872	0.0488667197641872
-14527	9370	7429	0.0516445969542144	0.0516445969542144
-14528	7429	9371	0.0490112318671292	0.0490112318671292
-14529	9371	7171	0.0508482971319457	0.0508482971319457
-14530	7171	7624	0.0496771306838175	0.0496771306838175
-14531	7624	7786	0.0493747865229187	0.0493747865229187
-14532	7786	6545	0.0503324450079726	0.0503324450079726
-14533	6545	1130	0.0509050056370777	0.0509050056370777
-14534	1130	9372	0.0485943238040251	0.0485943238040251
-14535	9372	7501	0.0507738202300539	0.0507738202300539
-14536	7501	3847	0.101870167526128	0.101870167526128
-14537	3847	9373	0.0504389434046066	0.0504389434046066
-14538	9373	5568	0.0510557052627446	0.0510557052627446
-14539	5568	7550	0.0950790701641584	0.0950790701641584
-18779	10345	10346	0.00436025817920743	0.00436025817920743
-14540	7550	9374	0.691166878065482	0.691166878065482
-14542	9375	3750	0.0991970412293978	0.0991970412293978
-14543	3750	6775	0.030090245676364	0.030090245676364
-14544	6775	6770	0.06895159402243	0.06895159402243
-14545	6770	6151	0.0638158634824408	0.0638158634824408
-14546	6151	6150	0.0359509846886602	0.0359509846886602
-14547	6150	3996	0.0963309366011696	0.0963309366011696
-14548	3996	7052	0.102479688313932	0.102479688313932
-14549	7052	7045	0.0330120960596164	0.0330120960596164
-14550	7045	1410	0.0660204937565387	0.0660204937565387
-14551	1410	7375	0.0682166301368544	0.0682166301368544
-14552	7375	7385	0.0295959064634691	0.0295959064634691
-14553	7385	3434	0.103723384358152	0.103723384358152
-14554	3434	7763	0.0498679267683769	0.0498679267683769
-14555	7763	5714	0.0489397855227354	0.0489397855227354
-14556	5714	9376	0.0504544990745908	0.0504544990745908
-14557	9376	7434	0.0512120959316622	0.0512120959316622
-14558	7434	9377	0.0478236988076173	0.0478236988076173
-14559	9377	7173	0.0504644501870281	0.0504644501870281
-14560	7173	6757	0.0487932478126772	0.0487932478126772
-14561	6757	7788	0.0524425771479912	0.0524425771479912
-14562	7788	6629	0.0465854765801166	0.0465854765801166
-14563	6629	1135	0.050756073904441	0.050756073904441
-14564	1135	6996	0.0489590899927541	0.0489590899927541
-14565	6996	7502	0.0500614988346772	0.0500614988346772
-14566	7502	9378	0.0592142721743878	0.0592142721743878
-14567	9378	9379	0.0408406813526211	0.0408406813526211
-14568	9379	7525	0.051644217383113	0.051644217383113
-14569	7525	9380	0.00488834581127681	0.00488834581127681
-14570	9380	9381	0.0137184453378057	0.0137184453378057
-14571	9381	5577	0.0352923239739852	0.0352923239739852
-14572	5577	9382	0.0499195542635391	0.0499195542635391
-14573	9382	9383	0.00207675636441744	0.00207675636441744
-14574	9383	9384	0.047500863548095	0.047500863548095
-14575	9384	9385	0.692939297157353	0.692939297157353
-14576	9347	9386	0.0638147684012153	0.0638147684012153
-14578	9386	7985	0.00659385915044033	0.00659385915044033
-14579	7985	9389	0.0876122732807676	0.0876122732807676
-14581	9390	9391	0.0645406329993705	0.0645406329993705
-14583	9391	413	0.0102638039419597	0.0102638039419597
-14584	413	9392	0.19657163498794	0.19657163498794
-14586	2833	2489	0.134959283423391	0.134959283423391
-14587	2489	8106	0.133489509437131	0.133489509437131
-14588	8106	9375	0.13422540798818	0.13422540798818
-14589	9375	5534	0.213451017222507	0.213451017222507
-14590	5534	9356	0.201724072155003	0.201724072155003
-14591	9356	9393	0.10196574773319	0.10196574773319
-14592	9393	9359	0.100498646625457	0.100498646625457
-14593	9359	9394	0.0995312761976722	0.0995312761976722
-14594	9394	9368	0.101332513335273	0.101332513335273
-14595	9368	9395	0.0524188937894899	0.0524188937894899
-14597	7373	1659	0.103861210410172	0.103861210410172
-14598	1659	7753	0.101665764300136	0.101665764300136
-14599	7753	6893	0.102477314257262	0.102477314257262
-14600	6893	5249	0.10178809746081	0.10178809746081
-14601	5249	9396	0.145009648698155	0.145009648698155
-14602	9396	5880	0.0121536325330439	0.0121536325330439
-14603	5880	9397	0.00548191654733534	0.00548191654733534
-14606	8233	9399	0.00646043089308406	0.00646043089308406
-14607	9399	3593	0.11814466181621	0.11814466181621
-14608	3593	8990	0.0502713142680652	0.0502713142680652
-14610	8994	8444	0.0112418070839832	0.0112418070839832
-14611	8444	9400	0.0106637167987107	0.0106637167987107
-14612	9400	9401	0.175022698409133	0.175022698409133
-14613	9401	2970	0.0101077489563562	0.0101077489563562
-15358	9566	9564	0.0244609132808449	0.0244609132808449
-15359	9564	9567	0.0131773798008107	0.0131773798008107
-18780	10346	10347	0.0407216504299826	0.0407216504299826
-14614	2970	8339	0.136426769448966	0.136426769448966
-14615	8339	9348	0.135169766224191	0.135169766224191
-17064	4880	9474	0.196578675384766	0.196578675384766
-14616	9348	9402	0.134813162708373	0.134813162708373
-14618	9350	8341	0.135569890655856	0.135569890655856
-14619	8341	9291	0.132813255317002	0.132813255317002
-14620	9291	9403	0.135124075128598	0.135124075128598
-14621	9403	9351	0.135070525267418	0.135070525267418
-14622	9351	6393	0.134155373542404	0.134155373542404
-14624	9393	8920	0.0508713694865286	0.0508713694865286
-14625	8920	6767	0.14583235659915	0.14583235659915
-14626	6767	3992	0.20138079206452	0.20138079206452
-14628	9389	6049	0.0198174454501223	0.0198174454501223
-14629	6049	5790	0.202409458864074	0.202409458864074
-14630	5790	9404	0.390889741592557	0.390889741592557
-14631	9389	8000	0.0874325326194809	0.0874325326194809
-14632	8000	9390	0.00587109212749533	0.00587109212749533
-14634	9405	9387	0.104292734331338	0.104292734331338
-14643	6926	912	0.0399977157837286	0.0399977157837286
-14645	3853	9379	0.0160272455480019	0.0160272455480019
-14646	9379	8109	0.188409381404142	0.188409381404142
-14647	8109	9407	0.202174997774683	0.202174997774683
-18781	10347	10348	0.0132995316754344	0.0132995316754344
-14649	5569	7551	0.0943021955909244	0.0943021955909244
-14650	7551	9408	0.692224615113747	0.692224615113747
-14651	7543	9409	0.0534301345278006	0.0534301345278006
-14652	6725	4821	0.0796194906426482	0.0796194906426482
-14653	4821	2511	0.108135424106199	0.108135424106199
-14654	2511	8224	0.0376491716837282	0.0376491716837282
-14787	9415	9416	0.31094582672675	0.31094582672675
-14791	2891	8923	0.457832400708685	0.457832400708685
-14793	5024	3335	0.0983906046596767	0.0983906046596767
-14795	7882	7337	0.102026433082927	0.102026433082927
-14796	7337	7986	0.092185977990205	0.092185977990205
-14797	7986	2055	0.0946262859427162	0.0946262859427162
-14798	2055	2661	0.105023750774947	0.105023750774947
-14799	2661	4134	0.100547305543173	0.100547305543173
-14800	4134	6697	0.0891067622100312	0.0891067622100312
-14801	6697	8020	0.0955965901798936	0.0955965901798936
-14802	8020	7684	0.0959578997394599	0.0959578997394599
-14803	7684	3458	0.0944062286409825	0.0944062286409825
-14804	3458	9418	0.046227752797198	0.046227752797198
-14805	9418	6020	0.0461318959590008	0.0461318959590008
-14806	6020	9419	0.0476773807861996	0.0476773807861996
-19851	10660	10659	0.00933491084100046	0.00933491084100046
-14807	9419	9420	0.0464971294902911	0.0464971294902911
-14808	9420	9421	0.0470997921907546	0.0470997921907546
-14809	9421	858	0.0457230540386264	0.0457230540386264
-14810	858	453	0.0467078777528092	0.0467078777528092
-14811	453	7106	0.0457758284617094	0.0457758284617094
-14812	7106	457	0.0455135048722811	0.0455135048722811
-14813	457	9422	0.0463689143813771	0.0463689143813771
-14815	9423	9424	0.00582356405087118	0.00582356405087118
-14817	9425	6432	0.0926350815349589	0.0926350815349589
-14818	6432	4657	0.117278685803448	0.117278685803448
-14819	4657	1280	0.116593491044555	0.116593491044555
-14820	1280	4531	0.132186730302242	0.132186730302242
-14951	7670	9457	3.41600373692151	3.41600373692151
-14952	3583	7612	0.0941905477613176	0.0941905477613176
-14953	7612	7265	0.0936588343585109	0.0936588343585109
-14955	7584	2001	0.0944700456489753	0.0944700456489753
-14956	2001	3361	0.0949233780276755	0.0949233780276755
-14957	3361	2755	0.0936752171867012	0.0936752171867012
-14958	2755	7006	0.0959502415519421	0.0959502415519421
-14959	7006	2281	0.099513679348955	0.099513679348955
-14960	2281	3582	0.100891029071921	0.100891029071921
-14961	3582	7528	0.100887947066067	0.100887947066067
-14962	7528	2136	0.103412071247308	0.103412071247308
-14963	2136	5993	0.100671897064821	0.100671897064821
-14964	5993	7673	0.0999667195935639	0.0999667195935639
-14986	8886	7162	0.0452381047162121	0.0452381047162121
-14985	8878	8886	0.104437941202429	0.104437941202429
-14987	7162	9309	0.0512658726512666	0.0512658726512666
-15109	7996	6927	0.0217805821755954	0.0217805821755954
-15110	6927	5675	0.030815905152866	0.030815905152866
-14965	7673	9461	2.89733038736532	2.89733038736532
-14966	8151	7610	0.094248596661074	0.094248596661074
-15088	2328	9485	2.88346551451846	2.88346551451846
-15089	9486	3468	0.447301506508283	0.447301506508283
-15090	3468	3445	0.0309512876225537	0.0309512876225537
-15091	3445	7699	0.105014135175069	0.105014135175069
-15092	7699	9487	0.105691765273947	0.105691765273947
-15093	9487	6684	0.102061996358298	0.102061996358298
-15094	6684	4128	0.108739719526669	0.108739719526669
-15095	4128	9488	0.104836941153267	0.104836941153267
-15096	9488	2082	0.105803010632854	0.105803010632854
-15097	2082	7334	0.1052078044876	0.1052078044876
-15101	9489	2994	0.0812267643509346	0.0812267643509346
-15105	2996	4851	0.0525302115232072	0.0525302115232072
-15106	4851	7227	0.0344830493164063	0.0344830493164063
-15107	7227	2369	0.0550241369558443	0.0550241369558443
-15108	2369	7996	0.056554238974086	0.056554238974086
-16370	9877	8705	0.102117755919592	0.102117755919592
-16371	8705	9486	0.014467692878557	0.014467692878557
-16373	8076	3329	0.0677844820507112	0.0677844820507112
-16374	3329	7880	0.139626392785753	0.139626392785753
-16375	7880	7333	0.105584363104376	0.105584363104376
-16376	7333	2081	0.10500807653965	0.10500807653965
-16377	2081	2678	0.105119136499329	0.105119136499329
-16491	6692	8028	0.103532298857838	0.103532298857838
-16379	4127	6683	0.108621189217377	0.108621189217377
-16385	9881	9882	0.0163548118473388	0.0163548118473388
-16386	9882	9458	0.0203986664758761	0.0203986664758761
-16394	3281	9883	0.00468216635493236	0.00468216635493236
-16396	9884	9458	0.0218243339760988	0.0218243339760988
-16398	9883	9884	0.00648970201006769	0.00648970201006769
-16400	9885	9886	0.267423928903385	0.267423928903385
-16401	9886	9880	0.296075289776302	0.296075289776302
-16403	9878	9881	0.0274154521009071	0.0274154521009071
-16404	9881	9887	0.0188694353495207	0.0188694353495207
-16405	9887	9888	0.0187489585891175	0.0187489585891175
-19509	10534	10535	0.00388440521802765	0.00388440521802765
-16425	3407	9890	0.502103946549802	0.502103946549802
-16426	9890	3331	0.0251683632208894	0.0251683632208894
-16481	7888	3680	0.0532502584498927	0.0532502584498927
-16483	4595	8006	0.101626087251738	0.101626087251738
-16484	8006	580	0.022127419381672	0.022127419381672
-16485	580	7979	0.165894151722243	0.165894151722243
-16486	7979	9923	0.0456395565118553	0.0456395565118553
-16487	9923	2066	0.0539845223115493	0.0539845223115493
-16488	2066	2641	0.100182277305196	0.100182277305196
-16489	2641	4107	0.0977431302735631	0.0977431302735631
-16490	4107	6692	0.10418977795868	0.10418977795868
-16492	8028	7698	0.0982299872130606	0.0982299872130606
-16493	7698	3443	0.0993337912559461	0.0993337912559461
-16494	3443	6011	0.101499429536563	0.101499429536563
-16495	6011	3878	0.0977083732706848	0.0977083732706848
-16496	3878	9924	0.0991972529095445	0.0991972529095445
-16497	9924	420	0.100553893040038	0.100553893040038
-16504	8592	9925	0.120377099914021	0.120377099914021
-16505	9925	9926	0.107491921110891	0.107491921110891
-16506	9926	9927	0.123107053114174	0.123107053114174
-16517	8288	3009	0.0410924117477314	0.0410924117477314
-16519	9451	4779	0.246284579163	0.246284579163
-16520	4779	6557	0.132912762129515	0.132912762129515
-16521	6557	9306	0.107414375743234	0.107414375743234
-16523	5147	9150	0.0526798805531595	0.0526798805531595
-16527	862	703	0.202686588734239	0.202686588734239
-16528	703	9924	0.202942846886287	0.202942846886287
-16533	9141	9155	0.0471076181125112	0.0471076181125112
-16549	9936	8118	0.163748197039451	0.163748197039451
-16550	8118	4329	0.102460572786022	0.102460572786022
-16551	4329	9932	0.0509040459853039	0.0509040459853039
-16552	9932	5034	0.0506801147751554	0.0506801147751554
-16553	5034	9935	0.0507841642169636	0.0507841642169636
-16554	9935	7991	0.0519996695117493	0.0519996695117493
-16555	7991	9939	0.0501954054420559	0.0501954054420559
-16557	2889	8382	0.106173445564903	0.106173445564903
-16558	8382	8542	0.105198351895408	0.105198351895408
-16559	8542	4730	0.104923019039301	0.104923019039301
-16560	4730	6797	0.109090547930583	0.109090547930583
-16561	6797	7349	0.101581569748298	0.101581569748298
-16562	7349	5395	0.107089477151985	0.107089477151985
-16563	5395	8556	0.104796077599276	0.104796077599276
-17270	82	7309	0.202171029293651	0.202171029293651
-16564	8556	3897	0.106860413590027	0.106860413590027
-16565	3897	1030	0.106538064092827	0.106538064092827
-16566	1030	6272	0.104663636918357	0.104663636918357
-16567	6272	9940	0.0522044777389819	0.0522044777389819
-16568	9940	9941	0.0539741744852114	0.0539741744852114
-16570	5969	9942	0.0525274850765404	0.0525274850765404
-16571	9942	9943	0.0464624768491459	0.0464624768491459
-16572	9943	3013	0.00948387351005329	0.00948387351005329
-16573	3013	9944	0.0499659888588949	0.0499659888588949
-16574	9944	4387	0.0525459349585223	0.0525459349585223
-16575	4387	8415	0.053989635677053	0.053989635677053
-16576	8415	9945	0.0518942546071768	0.0518942546071768
-16577	9945	8419	0.054710567315966	0.054710567315966
-16578	8419	9946	0.0495941326709913	0.0495941326709913
-16579	9946	8502	0.0543577768356107	0.0543577768356107
-16580	8502	8537	0.0523876514778538	0.0523876514778538
-16581	8537	9591	0.106159293603162	0.106159293603162
-16582	9591	9318	0.0186755424929809	0.0186755424929809
-16584	3674	9947	0.0925100597395306	0.0925100597395306
-16585	9947	9936	0.0741653442201567	0.0741653442201567
-16586	9936	5811	0.0698256524972049	0.0698256524972049
-16587	5811	7575	0.109874082628797	0.109874082628797
-16588	7575	8407	0.0534887493842637	0.0534887493842637
-16589	8407	5969	0.0514820185730379	0.0514820185730379
-16615	5811	5357	0.148515460139762	0.148515460139762
-16616	5357	8119	0.104815937410374	0.104815937410374
-16621	9938	9956	0.0146143299800706	0.0146143299800706
-16622	9956	9957	0.0128596804561102	0.0128596804561102
-16624	9958	9959	0.0111717692412778	0.0111717692412778
-16625	9959	9960	0.00928483420505699	0.00928483420505699
-16626	9960	9938	0.0070355984277229	0.0070355984277229
-16628	9961	9962	0.526903283655783	0.526903283655783
-16630	9963	9312	1.46582798607179	1.46582798607179
-16633	9965	9966	0.00412165910041822	0.00412165910041822
-16634	9966	9967	0.0757681110838303	0.0757681110838303
-16638	9965	9957	0.0717225435233069	0.0717225435233069
-16640	9964	9958	0.0807216833328343	0.0807216833328343
-16642	9967	9956	0.0290555152245672	0.0290555152245672
-16645	565	7092	0.0721739648747923	0.0721739648747923
-16646	7092	9969	0.0060839008927764	0.0060839008927764
-16658	651	9973	0.109528403212781	0.109528403212781
-16660	3165	8089	0.106908291090671	0.106908291090671
-16662	9927	8897	0.00902355166325831	0.00902355166325831
-16663	8897	8899	0.00817755039331079	0.00817755039331079
-16665	8896	8898	0.0955954321276197	0.0955954321276197
-16666	8898	3166	0.0120380596695599	0.0120380596695599
-16726	3074	5275	0.102580698126288	0.102580698126288
-16727	5275	6866	0.0979724094285353	0.0979724094285353
-17386	5920	919	0.177782086780631	0.177782086780631
-16728	6866	5172	0.198907590330119	0.198907590330119
-16730	8563	6368	0.270917565484422	0.270917565484422
-16731	6368	9149	0.131210826087923	0.131210826087923
-16779	73	3512	0.203753724402901	0.203753724402901
-16780	3512	4254	0.201507995491671	0.201507995491671
-16781	4254	8742	0.199898657335298	0.199898657335298
-16782	8742	8713	0.201418841949	0.201418841949
-16784	3511	4252	0.198740800817733	0.198740800817733
-16785	4252	8741	0.201811596521788	0.201811596521788
-16786	8741	8712	0.201811329628688	0.201811329628688
-16794	4264	8747	0.202686112287629	0.202686112287629
-16795	8747	8718	0.200629598901607	0.200629598901607
-16797	4264	9864	0.0549036584382557	0.0549036584382557
-16798	9864	6516	0.0494449113838383	0.0494449113838383
-16799	6516	9855	0.048981731510525	0.048981731510525
-16800	9855	6160	0.0501282016561891	0.0501282016561891
-16801	6160	9852	0.0487763612951203	0.0487763612951203
-16802	9852	2738	0.0474245519497852	0.0474245519497852
-16803	2738	9267	0.050437767682916	0.050437767682916
-16804	9267	4512	0.0485383641713966	0.0485383641713966
-16805	4512	9858	0.0494525517955229	0.0494525517955229
-16807	3171	9861	0.047855446066228	0.047855446066228
-16808	9861	4996	0.0491871460939442	0.0491871460939442
-16810	728	3665	0.0984709387661759	0.0984709387661759
-16811	3665	7315	0.0976596112157836	0.0976596112157836
-16812	7315	4586	0.099898936211385	0.099898936211385
-16813	4586	8032	0.100609280081376	0.100609280081376
-16814	8032	6372	0.100607138332673	0.100607138332673
-16815	6372	10015	0.0481181392934118	0.0481181392934118
-16816	10015	4826	0.0474935217651045	0.0474935217651045
-16817	4826	8954	0.102669069502609	0.102669069502609
-16818	8954	8956	0.0962963283421786	0.0962963283421786
-16819	8956	10016	0.0513191391251647	0.0513191391251647
-16820	10016	8816	0.0499640269903021	0.0499640269903021
-16821	8816	8828	0.0154260311566384	0.0154260311566384
-16822	8828	8206	0.163758839265649	0.163758839265649
-16824	7312	87	0.200996583193063	0.200996583193063
-16825	87	3523	0.203555810471145	0.203555810471145
-16826	3523	4264	0.199602301480838	0.199602301480838
-16828	7312	3648	0.154169800390109	0.154169800390109
-16832	10017	593	0.487939330962151	0.487939330962151
-16851	8718	9866	0.0548710295017979	0.0548710295017979
-16854	9854	6162	0.0501051333475743	0.0501051333475743
-16855	6162	9851	0.0483439490024107	0.0483439490024107
-16856	9851	2740	0.0471290060929331	0.0471290060929331
-16857	2740	9863	0.0493697108471136	0.0493697108471136
-16858	9863	5231	0.0496606668462506	0.0496606668462506
-16859	5231	9857	0.0497084193128251	0.0497084193128251
-16860	9857	3173	0.0501789646371779	0.0501789646371779
-16861	3173	9860	0.0494391268160734	0.0494391268160734
-16862	9860	4998	0.0489685461673918	0.0489685461673918
-16863	4998	10023	0.0484162493280967	0.0484162493280967
-16864	10023	730	0.0507353905968115	0.0507353905968115
-16865	730	7061	0.101358904320696	0.101358904320696
-16867	8718	5830	0.204166330856198	0.204166330856198
-16868	5830	7737	0.202033972193846	0.202033972193846
-16869	7737	10024	0.307945705057077	0.307945705057077
-16870	594	7303	0.202197872623945	0.202197872623945
-16871	7303	66	0.20266387330283	0.20266387330283
-16872	66	3507	0.204877942956717	0.204877942956717
-16873	3507	233	0.199133503403233	0.199133503403233
-16874	233	8739	0.200473333247617	0.200473333247617
-16876	9203	4390	0.147691017735613	0.147691017735613
-16878	1943	10025	0.122583563426404	0.122583563426404
-16879	10025	7860	0.110082433757866	0.110082433757866
-16880	7860	4679	0.101138191051348	0.101138191051348
-16881	4679	4942	0.0999327202014087	0.0999327202014087
-16882	4942	7214	0.0998696563081419	0.0998696563081419
-16883	7214	4928	0.0376169687692631	0.0376169687692631
-16884	4928	9636	0.014060573587084	0.014060573587084
-16886	9870	1167	0.138451400347842	0.138451400347842
-16887	1167	887	0.138706454254422	0.138706454254422
-16888	887	4471	0.139683302205089	0.139683302205089
-16890	9488	1170	0.13939401140641	0.13939401140641
-16891	1170	890	0.137058995578611	0.137058995578611
-16892	890	4474	0.140851028519895	0.140851028519895
-16893	4474	2796	0.132878137732711	0.132878137732711
-16894	2796	5265	0.13228574865076	0.13228574865076
-16895	5265	10026	0.123565762779561	0.123565762779561
-16896	5633	7143	0.082551113540924	0.082551113540924
-16899	8743	4255	0.199339176026767	0.199339176026767
-16905	6305	6456	0.135927811837651	0.135927811837651
-16906	6456	5521	0.134557743068365	0.134557743068365
-16907	5521	5744	0.134669392965434	0.134669392965434
-16908	5744	3224	0.133413468985769	0.133413468985769
-16909	3224	2456	0.134335811293817	0.134335811293817
-16910	2456	9365	0.137895860915298	0.137895860915298
-16911	9365	1677	0.134681074434199	0.134681074434199
-16912	1677	10027	0.135027096454707	0.135027096454707
-16913	10027	6891	0.134223449290887	0.134223449290887
-16914	6891	5239	0.133857055503606	0.133857055503606
-16915	5239	4520	0.134947645289316	0.134947645289316
-16916	4520	8229	0.133768415422039	0.133768415422039
-16917	8229	6091	0.136267738734572	0.136267738734572
-16918	6091	7927	0.0726325260844626	0.0726325260844626
-16919	7927	7846	0.0557691009082279	0.0557691009082279
-16920	7846	9410	0.0110872018563396	0.0110872018563396
-16921	9410	6730	0.0681749492551086	0.0681749492551086
-16922	6730	10028	0.0472579211328822	0.0472579211328822
-16923	10028	2954	0.0113307920442751	0.0113307920442751
-16924	2954	10029	0.0100409346238736	0.0100409346238736
-16925	10029	6168	0.125005736653953	0.125005736653953
-16926	6168	7701	0.0662611499745025	0.0662611499745025
-16927	7701	8987	0.0202942911891754	0.0202942911891754
-16928	8987	9213	0.01474166778393	0.01474166778393
-16929	9213	7708	0.0256851882115953	0.0256851882115953
-16930	7708	10030	0.0413405317485577	0.0413405317485577
-16931	10030	10031	0.036234422910969	0.036234422910969
-16932	10031	9423	0.0490701245377313	0.0490701245377313
-16934	10027	6419	0.132846643372958	0.132846643372958
-16935	6419	4626	0.132395451164353	0.132395451164353
-16936	4626	1249	0.132966501814055	0.132966501814055
-16937	1249	4558	0.132618380312988	0.132618380312988
-16938	4558	2727	0.131821083937229	0.131821083937229
-16939	2727	9343	0.133429127887654	0.133429127887654
-16941	8228	10032	0.0522172382940556	0.0522172382940556
-16942	10032	4519	0.0809723084454978	0.0809723084454978
-16943	4519	5238	0.135835767836828	0.135835767836828
-16944	5238	6890	0.133656501060031	0.133656501060031
-16945	6890	8682	0.133080513446367	0.133080513446367
-16946	8682	10033	0.014533820296874	0.014533820296874
-16947	10033	10034	0.045058130648326	0.045058130648326
-16948	10034	10035	0.0185816236497386	0.0185816236497386
-16949	10035	1675	0.0576680457580287	0.0576680457580287
-16950	1675	9364	0.135024432224183	0.135024432224183
-16955	10039	10040	0.0721995210382621	0.0721995210382621
-16958	10037	10041	0.0717852961267022	0.0717852961267022
-16966	10043	10031	0.025182886777608	0.025182886777608
-16969	10045	10039	0.0209823477511839	0.0209823477511839
-16971	8478	9438	0.0521271400869927	0.0521271400869927
-16972	9438	8905	0.0558565070780073	0.0558565070780073
-16974	8478	4846	0.326789742990523	0.326789742990523
-17070	9465	4599	0.173875508685798	0.173875508685798
-16976	8474	1065	0.0530498075975429	0.0530498075975429
-16977	1065	1604	0.0517738709202157	0.0517738709202157
-16978	1604	2199	0.109121538786623	0.109121538786623
-16979	2199	4846	0.101668961251418	0.101668961251418
-16981	8583	10046	0.0456665785984412	0.0456665785984412
-16982	10046	8467	0.0226345136731024	0.0226345136731024
-16983	8467	9624	0.0229241644266869	0.0229241644266869
-16985	2321	10047	0.097235186001144	0.097235186001144
-16987	4279	6406	0.146870704035985	0.146870704035985
-16988	6406	635	0.144187230253749	0.144187230253749
-16989	635	5325	0.14662773102424	0.14662773102424
-16990	5325	2031	0.146219173461136	0.146219173461136
-19672	10610	10608	0.149537813443153	0.149537813443153
-16991	2031	7082	0.144853503450252	0.144853503450252
-16992	7082	5509	0.146165117461088	0.146165117461088
-16993	5509	4460	0.146698487596664	0.146698487596664
-16994	4460	6579	0.146306787683811	0.146306787683811
-16995	6579	8050	0.147127627497255	0.147127627497255
-16996	8050	998	0.0663040704360148	0.0663040704360148
-16997	998	8404	0.225438240771773	0.225438240771773
-16998	8404	9322	0.147049060577026	0.147049060577026
-16999	9322	8853	0.146215405021224	0.146215405021224
-17000	8853	7901	0.148314641191611	0.148314641191611
-17001	7901	8294	0.139664345335099	0.139664345335099
-17002	8294	8275	0.153027219017765	0.153027219017765
-17003	8275	5787	0.145945595293254	0.145945595293254
-17004	5787	4818	0.144804477618788	0.144804477618788
-17005	4818	10048	0.148574277364319	0.148574277364319
-17006	10048	10049	0.141579838501947	0.141579838501947
-17007	10049	10050	0.0340492732837983	0.0340492732837983
-17012	10052	2402	0.196242393649725	0.196242393649725
-17032	8989	10060	0.00622693936167768	0.00622693936167768
-17033	10060	10061	0.0756461423573197	0.0756461423573197
-17034	10061	2960	0.00915137839377932	0.00915137839377932
-17036	9211	23	0.0239583762029722	0.0239583762029722
-17042	1225	7845	0.140995210775646	0.140995210775646
-17043	7845	6089	0.129051193087075	0.129051193087075
-17044	6089	8226	0.135326560563343	0.135326560563343
-17107	6692	328	0.0434519039634918	0.0434519039634918
-17046	1226	8903	0.113651762618459	0.113651762618459
-17048	10065	6628	1.29415946940766	1.29415946940766
-17050	10066	4340	0.062140618563636	0.062140618563636
-17051	4340	5636	0.138107358521106	0.138107358521106
-17052	5636	3565	0.143998480732308	0.143998480732308
-17053	3565	824	0.136450026224328	0.136450026224328
-17054	824	7840	0.139827641423356	0.139827641423356
-17055	7840	10067	0.139718785770158	0.139718785770158
-17056	10067	8131	0.276864248380317	0.276864248380317
-17058	2251	4883	0.177313835055438	0.177313835055438
-17059	4883	9473	0.195033286388948	0.195033286388948
-17060	9473	5482	0.176110607852179	0.176110607852179
-17187	10072	4065	0.107057267328692	0.107057267328692
-17188	4065	8344	0.135746766447532	0.135746766447532
-17189	8344	9289	0.134278993416053	0.134278993416053
-17190	9289	8342	0.133553201715071	0.133553201715071
-17191	8342	4289	0.132478531756059	0.132478531756059
-17192	4289	8346	0.0683305663670944	0.0683305663670944
-17193	8346	9426	0.0684183152680821	0.0684183152680821
-17194	9426	3584	0.0602567059919197	0.0602567059919197
-17195	3584	7710	0.0737335540738928	0.0737335540738928
-17196	7710	26	0.134781615428443	0.134781615428443
-17197	26	2966	0.136258381357618	0.136258381357618
-17256	4853	9479	0.17362135223772	0.17362135223772
-17257	9479	5456	0.178335939458279	0.178335939458279
-17258	5456	10081	0.171904914212928	0.171904914212928
-17259	10081	9468	0.0143846440391869	0.0143846440391869
-17260	9468	651	0.173171640777506	0.173171640777506
-17261	651	9463	0.177611656329381	0.177611656329381
-17262	9463	4619	0.178590206270819	0.178590206270819
-17263	4619	6483	0.145677633501431	0.145677633501431
-17264	6483	5356	0.195804224423801	0.195804224423801
-17272	3269	7248	0.202454633754466	0.202454633754466
-17273	7248	1925	0.201278474909205	0.201278474909205
-17274	1925	6124	0.199550873736161	0.199550873736161
-17275	6124	3214	0.201694321030812	0.201694321030812
-17277	8746	4263	0.201096167532594	0.201096167532594
-17278	4263	3522	0.200484985070532	0.200484985070532
-17279	3522	86	0.203786942061633	0.203786942061633
-17280	86	7311	0.202274691239897	0.202274691239897
-17313	8120	4330	0.101819432050732	0.101819432050732
-17314	4330	9933	0.0499862309964707	0.0499862309964707
-17315	9933	5036	0.0532026214375408	0.0532026214375408
-17316	5036	9934	0.0508858224299175	0.0508858224299175
-17317	9934	7989	0.0496485523816978	0.0496485523816978
-17318	7989	10087	0.0512786229284607	0.0512786229284607
-17319	10087	2893	0.052637962933787	0.052637962933787
-17320	2893	8384	0.104983198266762	0.104983198266762
-17321	8384	8544	0.106333933974543	0.106333933974543
-17322	8544	4732	0.104863197448763	0.104863197448763
-17323	4732	6799	0.109607467159477	0.109607467159477
-17325	7351	5397	0.105666168592591	0.105666168592591
-17326	5397	10067	0.0531956914071383	0.0531956914071383
-17327	10067	8558	0.0516135381916136	0.0516135381916136
-17328	8558	3899	0.109335032698536	0.109335032698536
-17329	3899	1035	0.101631825737619	0.101631825737619
-17330	1035	10070	0.0547697896222192	0.0547697896222192
-17331	10070	6274	0.051631982755097	0.051631982755097
-17332	6274	10071	0.0521047224845183	0.0521047224845183
-17333	10071	10088	0.0548081026494783	0.0548081026494783
-17334	10088	581	0.115692672611639	0.115692672611639
-17335	581	3544	1.0812915383048	1.0812915383048
-17336	3544	10089	0.426746641833072	0.426746641833072
-17337	10089	8702	0.015131733429425	0.015131733429425
-17338	8702	8151	0.097451189179214	0.097451189179214
-17340	1827	3084	0.201158270757163	0.201158270757163
-17341	3084	3196	0.201063388532037	0.201063388532037
-17342	3196	6111	0.203191571447184	0.203191571447184
-17343	6111	1904	0.198857964292004	0.198857964292004
-17344	1904	7240	0.195269710490606	0.195269710490606
-17345	7240	3253	0.196518038239943	0.196518038239943
-17347	10090	3086	0.200629327787617	0.200629327787617
-17348	3086	3198	0.202620201680719	0.202620201680719
-17349	3198	6113	0.202237159025195	0.202237159025195
-17350	6113	1907	0.200888583811516	0.200888583811516
-17351	1907	7242	0.194884252844044	0.194884252844044
-17352	7242	9217	0.00483789456398776	0.00483789456398776
-17353	9217	3256	0.188566052149982	0.188566052149982
-17354	3256	9215	0.0119202066492219	0.0119202066492219
-17355	9215	7298	0.204144558375252	0.204144558375252
-17356	7298	41	0.19415380637197	0.19415380637197
-17357	41	3541	0.205611824864656	0.205611824864656
-17358	3541	4237	0.201941106279095	0.201941106279095
-17359	4237	1797	0.206450634390855	0.206450634390855
-17360	1797	6524	0.103413068253841	0.103413068253841
-17377	9185	10092	0.0314361336881962	0.0314361336881962
-17384	10093	10094	0.234828178944131	0.234828178944131
-17401	4251	8740	0.200540582414647	0.200540582414647
-17403	10096	4253	0.402448073126268	0.402448073126268
-17404	4253	71	0.405085488859101	0.405085488859101
-17409	7246	3265	0.200993245572831	0.200993245572831
-17410	3265	7307	0.200743622516842	0.200743622516842
-17411	7307	77	0.204688793990349	0.204688793990349
-17413	10097	10082	0.0500367848211035	0.0500367848211035
-17415	10098	10099	0.0500389645311151	0.0500389645311151
-17416	10099	10082	0.0162280043989145	0.0162280043989145
-17418	10100	10101	0.0207018118679025	0.0207018118679025
-17430	10092	10048	0.0309885486655971	0.0309885486655971
-17431	10048	8614	0.0518778938210734	0.0518778938210734
-17432	8614	8472	0.0531907688732488	0.0531907688732488
-17433	8472	1066	0.0523689032311119	0.0523689032311119
-17434	1066	1606	0.051557001219416	0.051557001219416
-17435	1606	8366	0.139200065042292	0.139200065042292
-17437	6713	10092	0.0743345743256074	0.0743345743256074
-17441	3193	3081	0.201349842824614	0.201349842824614
-17442	3081	10108	0.178416289777232	0.178416289777232
-17444	3193	6109	0.202397968765167	0.202397968765167
-17445	6109	1899	0.201875824929032	0.201875824929032
-17446	1899	7237	0.199007784951822	0.199007784951822
-17447	7237	3247	0.203972993087409	0.203972993087409
-17449	10109	7288	0.156689817874906	0.156689817874906
-17450	7288	33	0.190916174685026	0.190916174685026
-17451	33	3532	0.205910894729705	0.205910894729705
-17452	3532	6522	0.0640042155752525	0.0640042155752525
-17454	3078	3192	0.201894846275699	0.201894846275699
-17455	3192	6108	0.201673919779454	0.201673919779454
-17456	6108	1898	0.20260827746412	0.20260827746412
-17457	1898	7236	0.20276033286578	0.20276033286578
-17458	7236	3246	0.202520180127379	0.202520180127379
-17459	3246	10110	0.0550544054800148	0.0550544054800148
-17460	10110	7286	0.154666066923182	0.154666066923182
-17461	7286	29	0.190176683040096	0.190176683040096
-17463	1900	7238	0.196467409698081	0.196467409698081
-17464	7238	3249	0.197271278467775	0.197271278467775
-17465	3249	7293	0.215893772854934	0.215893772854934
-17466	7293	35	0.191661158901488	0.191661158901488
-17467	35	3534	0.208592623812739	0.208592623812739
-17468	3534	6523	0.163291338158479	0.163291338158479
-17470	10108	5278	0.0774622106782589	0.0774622106782589
-17471	5278	3080	0.101220750760019	0.101220750760019
-17472	3080	3193	0.201400503113628	0.201400503113628
-17474	5940	471	0.312751802930415	0.312751802930415
-18580	7765	5716	0.0511772806374418	0.0511772806374418
-17491	10112	10093	0.359402757134602	0.359402757134602
-17492	10093	10113	0.194903624807864	0.194903624807864
-17493	10113	2201	0.0582804268216835	0.0582804268216835
-17494	2201	10114	0.186967502007765	0.186967502007765
-17495	10114	8390	0.0733141120559894	0.0733141120559894
-17496	8390	10115	0.462273198293161	0.462273198293161
-17498	9631	400	0.267469433354519	0.267469433354519
-17531	10127	4931	0.0143150280274793	0.0143150280274793
-17499	400	10116	0.288854082427149	0.288854082427149
-17500	10116	10117	0.226779392941661	0.226779392941661
-17539	8982	8937	0.19614593492264	0.19614593492264
-17501	10117	10118	0.252256323985904	0.252256323985904
-17502	10118	8413	0.301706026949727	0.301706026949727
-17504	10094	9835	0.207906613588927	0.207906613588927
-17542	10131	10132	0.234004969584105	0.234004969584105
-17547	8426	8983	0.15801309875704	0.15801309875704
-17550	10130	10134	0.614829488291655	0.614829488291655
-17551	7135	4849	0.106906878995063	0.106906878995063
-17552	4849	915	0.103932392061615	0.103932392061615
-17553	915	2299	0.103080430089244	0.103080430089244
-17554	2299	10137	0.014910815675823	0.014910815675823
-17556	10137	9054	0.0810396295718394	0.0810396295718394
-17558	10138	6943	0.064892686762443	0.064892686762443
-17559	6943	8140	0.201702874937987	0.201702874937987
-17560	8140	10139	0.469612869716675	0.469612869716675
-17562	7137	211	0.0939410437080962	0.0939410437080962
-17563	211	480	0.0535285680999835	0.0535285680999835
-17598	6899	5259	0.128421696790864	0.128421696790864
-17566	8539	10140	0.135369629803794	0.135369629803794
-17568	10141	10142	0.0931846548427409	0.0931846548427409
-17575	10147	10148	0.0907607828573939	0.0907607828573939
-17576	10148	9823	0.350917184183612	0.350917184183612
-17577	9823	9805	0.0148959688810153	0.0148959688810153
-17578	9805	10149	0.0247571116201832	0.0247571116201832
-17579	10149	8243	0.229215025506836	0.229215025506836
-17580	8243	9502	0.0511227471188157	0.0511227471188157
-17581	9502	7326	0.0563854594047154	0.0563854594047154
-17582	7326	5762	0.0999481200631645	0.0999481200631645
-17583	5762	7873	0.0518041802099649	0.0518041802099649
-17584	7873	10150	0.102000136506063	0.102000136506063
-17585	10150	5014	0.098101103191891	0.098101103191891
-17586	5014	5058	0.089850875454823	0.089850875454823
-18718	7866	4048	0.178217561946718	0.178217561946718
-17587	5058	10151	0.211959888507267	0.211959888507267
-17589	215	9282	0.125167866609679	0.125167866609679
-17591	213	9816	0.299047510838406	0.299047510838406
-17593	9229	9826	0.176982927136907	0.176982927136907
-17595	6940	10152	0.0583015149781026	0.0583015149781026
-18120	6030	10257	0.0455676937571294	0.0455676937571294
-17597	5060	6899	0.402535335538281	0.402535335538281
-17599	5259	2791	0.130368767280199	0.130368767280199
-17600	2791	4469	0.135446736738612	0.135446736738612
-17601	4469	884	0.138505584507757	0.138505584507757
-17602	884	1164	0.139078051750381	0.139078051750381
-17603	1164	9871	0.139057579408235	0.139057579408235
-17604	9871	8075	0.138249096495162	0.138249096495162
-17605	8075	10153	0.00462704346608534	0.00462704346608534
-17606	10153	3043	0.14110788802663	0.14110788802663
-17607	3043	6341	0.135895639019006	0.135895639019006
-17608	6341	4343	0.137400774019599	0.137400774019599
-17609	4343	5639	0.138956387861239	0.138956387861239
-17610	5639	3570	0.141821620771527	0.141821620771527
-17611	3570	830	0.137661147763222	0.137661147763222
-17612	830	7843	0.140550687821679	0.140550687821679
-17613	7843	10088	0.137593188904098	0.137593188904098
-17614	10088	9941	0.137660243266343	0.137660243266343
-17615	9941	8135	0.139584464123887	0.139584464123887
-17616	8135	3690	0.141707714550209	0.141707714550209
-17617	3690	4596	0.241404416022683	0.241404416022683
-17619	5016	3319	0.0948083090873271	0.0948083090873271
-17620	3319	8996	0.0798486506362173	0.0798486506362173
-17621	8996	7874	0.0190759275307072	0.0190759275307072
-17622	7874	5755	0.0623471034770475	0.0623471034770475
-17623	5755	5758	0.0361266791563275	0.0361266791563275
-17624	5758	7327	0.0520708883616353	0.0520708883616353
-17626	5016	10154	0.164101634929309	0.164101634929309
-17627	10155	2882	0.710681950052773	0.710681950052773
-17629	8136	6947	0.130119100803365	0.130119100803365
-17630	6947	10156	0.0163542378359644	0.0163542378359644
-17631	10156	10157	0.00955659663824098	0.00955659663824098
-17632	10157	10158	0.00677541465471327	0.00677541465471327
-17633	10158	10152	0.00293705056146173	0.00293705056146173
-17634	10152	6939	0.0371287028604903	0.0371287028604903
-17636	3318	10150	0.0438638328395073	0.0438638328395073
-17714	9945	8394	0.147641485758692	0.147641485758692
-17659	10160	586	0.405583280940818	0.405583280940818
-17672	10163	8930	0.930392444069162	0.930392444069162
-17675	9053	10164	0.0371557833436508	0.0371557833436508
-17693	2913	2780	0.0748123840669465	0.0748123840669465
-17694	2780	7147	0.116677483921202	0.116677483921202
-17696	9056	10047	0.141134759881648	0.141134759881648
-17698	7147	5254	0.0284105210258417	0.0284105210258417
-17699	5254	10166	0.132906284217118	0.132906284217118
-17701	6403	10167	0.108541157226703	0.108541157226703
-17703	6403	6401	0.049228330409525	0.049228330409525
-17705	10168	10169	0.0501555453420122	0.0501555453420122
-17707	10047	10169	0.0474349977604191	0.0474349977604191
-17708	10169	9056	0.0939811582148226	0.0939811582148226
-17710	9947	3675	0.0669754214474556	0.0669754214474556
-17712	9204	9945	0.144775125391256	0.144775125391256
-17715	8394	2691	0.147869553829969	0.147869553829969
-17716	2691	8040	0.145836065451416	0.145836065451416
-17717	8040	6567	0.144877875233717	0.144877875233717
-17718	6567	4448	0.14778294563884	0.14778294563884
-17719	4448	8414	0.0749502518363333	0.0749502518363333
-17720	8414	5496	0.069451420913351	0.069451420913351
-17721	5496	7070	0.148876703091943	0.148876703091943
-17722	7070	2040	0.14567151330703	0.14567151330703
-17723	2040	8073	0.130264739930752	0.130264739930752
-17725	8076	3328	0.0639927694114461	0.0639927694114461
-17728	7879	7332	0.105697567981392	0.105697567981392
-17730	2080	2677	0.104069678874741	0.104069678874741
-17731	2677	4126	0.107112553379611	0.107112553379611
-17732	4126	6682	0.108353172096875	0.108353172096875
-17734	7925	5320	0.0826824039230849	0.0826824039230849
-17735	5320	2041	0.146468953410165	0.146468953410165
-17736	2041	7072	0.146479190259677	0.146479190259677
-17737	7072	5498	0.148482454254276	0.148482454254276
-17738	5498	4450	0.145207190897223	0.145207190897223
-17739	4450	6569	0.147094399400618	0.147094399400618
-17740	6569	8042	0.145385409804858	0.145385409804858
-17741	8042	2693	0.146247210391541	0.146247210391541
-17742	2693	8396	0.145676314519276	0.145676314519276
-17743	8396	9946	0.148129197746433	0.148129197746433
-17744	9946	9324	0.145860656071838	0.145860656071838
-17745	9324	10171	0.0856023563285992	0.0856023563285992
-17746	10171	7893	0.060719319188507	0.060719319188507
-17747	7893	10172	0.145992330998255	0.145992330998255
-17749	8285	5779	0.146744468691812	0.146744468691812
-17750	5779	8575	0.145685998707777	0.145685998707777
-17752	6706	10173	0.0983542102154105	0.0983542102154105
-17754	8485	10174	0.145917669946454	0.145917669946454
-17755	10174	4934	0.364858401137942	0.364858401137942
-17757	8073	5319	0.0151134525874084	0.0151134525874084
-17758	5319	2906	0.0542680076543073	0.0542680076543073
-17760	9487	1173	0.143948575233632	0.143948575233632
-17761	1173	893	0.138648954033686	0.138648954033686
-17762	893	4476	0.138420042799995	0.138420042799995
-17763	4476	2799	0.139158608638433	0.139158608638433
-17764	2799	5267	0.125667753140422	0.125667753140422
-17765	5267	6904	0.122725840536987	0.122725840536987
-17766	6904	7758	0.206944002479267	0.206944002479267
-17767	7758	6358	0.203735904589123	0.203735904589123
-17768	6358	2391	0.110758482838084	0.110758482838084
-17769	2391	7822	0.137036631860385	0.137036631860385
-17771	9877	903	0.274330614761652	0.274330614761652
-17772	903	9481	0.129817379023696	0.129817379023696
-17775	5984	2102	0.100487934544075	0.100487934544075
-17776	2102	6508	0.243143603771944	0.243143603771944
-17778	6993	399	0.279873647693424	0.279873647693424
-17779	399	10175	0.059173942672277	0.059173942672277
-17780	10175	6196	0.0719242777998184	0.0719242777998184
-17782	6196	10175	0.0719242777998184	0.0719242777998184
-17784	10175	10177	0.187235722056553	0.187235722056553
-17789	998	8512	0.0641582208600105	0.0641582208600105
-17790	8512	3305	0.0698159988608895	0.0698159988608895
-17802	9953	10171	0.0758245915635617	0.0758245915635617
-17803	10171	8417	0.0691188092256886	0.0691188092256886
-17804	8417	7892	0.0154287387029138	0.0154287387029138
-17805	7892	9203	0.0639309073349984	0.0639309073349984
-17844	5741	5515	0.1393794725611	0.1393794725611
-17807	998	2698	0.471311768879255	0.471311768879255
-17809	2563	997	0.102700798846865	0.102700798846865
-17811	9490	10181	0.787839518624737	0.787839518624737
-17813	10182	10183	0.017972037737444	0.017972037737444
-17814	8277	10182	0.0269375538426571	0.0269375538426571
-17824	10189	9815	0.381548994115635	0.381548994115635
-17826	10190	2445	0.108497544218855	0.108497544218855
-17827	2445	3235	0.140113229632804	0.140113229632804
-17828	3235	5740	0.13721905173768	0.13721905173768
-17829	5740	5514	0.142685575827079	0.142685575827079
-17830	5514	6451	0.135469883258712	0.135469883258712
-17831	6451	6918	0.118104639956123	0.118104639956123
-17832	6918	8114	0.200145379388081	0.200145379388081
-17841	10191	2446	0.12170288352426	0.12170288352426
-17842	2446	3236	0.138990302772576	0.138990302772576
-17843	3236	5741	0.138828799197264	0.138828799197264
-17845	5515	6452	0.137212079229824	0.137212079229824
-17846	6452	6919	0.118102418388258	0.118102418388258
-17847	6919	8115	0.204539971673672	0.204539971673672
-17848	8115	2817	0.195950897476267	0.195950897476267
-17850	1418	10192	0.0403415193863986	0.0403415193863986
-17854	10196	10197	0.298773764193864	0.298773764193864
-17858	10197	10201	0.0878537760845695	0.0878537760845695
-17859	10202	292	0.12590153135235	0.12590153135235
-17860	292	10203	0.0920635687067585	0.0920635687067585
-17862	8296	912	0.421752257927472	0.421752257927472
-17863	912	7280	0.346969669094077	0.346969669094077
-17865	7279	911	0.343598202777143	0.343598202777143
-17866	911	8296	0.421457000722742	0.421457000722742
-17899	10211	10209	0.112127267328736	0.112127267328736
-17868	10204	293	0.122668884457017	0.122668884457017
-17870	7280	10204	0.11154380602626	0.11154380602626
-17872	7280	10202	0.113468069847095	0.113468069847095
-17874	10203	305	0.0245172766294025	0.0245172766294025
-17876	10205	9191	0.0917966102805814	0.0917966102805814
-17877	9191	9065	0.0437309955207218	0.0437309955207218
-17879	305	7972	0.0096955565592884	0.0096955565592884
-17880	7972	289	0.0364664216753188	0.0364664216753188
-17882	291	10205	0.0247656280633611	0.0247656280633611
-17884	5356	3010	0.0411976507153233	0.0411976507153233
-17885	3010	9955	0.055133452370554	0.055133452370554
-17887	4390	9202	0.103596100254428	0.103596100254428
-17888	9202	10172	0.106228487315193	0.106228487315193
-17889	10172	8635	0.104885206719794	0.104885206719794
-17890	8635	10207	0.0526738998782486	0.0526738998782486
-17891	10207	8290	0.0540408904782361	0.0540408904782361
-17893	10181	10208	0.34674805442663	0.34674805442663
-17895	9277	9062	0.54179107306149	0.54179107306149
-17897	10209	10210	0.15255018083046	0.15255018083046
-17901	9277	10208	0.265946775924501	0.265946775924501
-17902	10208	10211	0.215451375996435	0.215451375996435
-17904	4431	5085	0.143171262303537	0.143171262303537
-17905	5085	2810	0.11012443165944	0.11012443165944
-17906	2810	4675	0.158582360684903	0.158582360684903
-17908	10212	9184	0.112885017008347	0.112885017008347
-17909	9184	10213	0.167377068446941	0.167377068446941
-18960	10410	7220	0.0501782415904674	0.0501782415904674
-17922	6563	8888	0.042430320182906	0.042430320182906
-18662	7647	10214	0.0701815380438801	0.0701815380438801
-17924	6563	9296	0.044068382651895	0.044068382651895
-17926	10215	7090	0.0147548324313622	0.0147548324313622
-17928	10216	4749	0.0152354550229313	0.0152354550229313
-17930	7570	10217	0.020843135953545	0.020843135953545
-17931	10217	10218	0.00309719141124637	0.00309719141124637
-17932	10218	10219	0.0172058483004327	0.0172058483004327
-17933	10219	10220	0.0101474090092483	0.0101474090092483
-17934	10220	10221	0.0360135260366549	0.0360135260366549
-17972	4922	2816	0.0400924263132539	0.0400924263132539
-17974	2816	6585	0.00731734573972315	0.00731734573972315
-17975	6585	5367	0.200230086509337	0.200230086509337
-17976	5367	7125	0.155428268463703	0.155428268463703
-17977	7125	613	0.178580861083004	0.178580861083004
-17978	613	10025	0.175711834233665	0.175711834233665
-17979	10025	5802	0.173776139007193	0.173776139007193
-17981	10240	4687	0.0705066389488715	0.0705066389488715
-17983	4687	4687	0.000550727458732684	0.000550727458732684
-17984	4687	4687	0.000550727458732684	0.000550727458732684
-18009	8002	984	0.100041012213977	0.100041012213977
-17985	4687	10240	0.0700034048729296	0.0700034048729296
-18666	5656	5188	0.106406434125344	0.106406434125344
-17988	7225	10241	0.0510702903225008	0.0510702903225008
-17989	10241	10242	0.042886354540747	0.042886354540747
-17990	10242	10243	0.00251406456949564	0.00251406456949564
-17991	10243	10244	0.0456685462506317	0.0456685462506317
-17992	10244	6646	0.0418628731234282	0.0418628731234282
-17993	6646	10245	0.0664019508555837	0.0664019508555837
-17994	10245	3947	0.060646848519195	0.060646848519195
-17995	3947	5379	0.0623892176423501	0.0623892176423501
-17997	1213	10080	0.0402726084737909	0.0402726084737909
-17998	10080	10246	0.108362052771117	0.108362052771117
-17999	10246	10095	0.0546330327153493	0.0546330327153493
-18000	10095	8786	0.0549646837479	0.0549646837479
-18001	8786	8792	0.105830391023483	0.105830391023483
-18002	8792	3158	0.105240490373796	0.105240490373796
-18159	4090	6035	0.19402761072914	0.19402761072914
-18003	3158	4977	0.10185576028858	0.10185576028858
-18004	4977	10247	0.0996051433548501	0.0996051433548501
-18005	10247	9657	0.103966153648075	0.103966153648075
-18006	9657	6607	0.0489689324196462	0.0489689324196462
-18007	6607	5049	0.0497044916016373	0.0497044916016373
-18008	5049	8002	0.0987213073079673	0.0987213073079673
-18010	984	5105	0.0497125648622764	0.0497125648622764
-18011	5105	8832	0.0485496698653307	0.0485496698653307
-18012	8832	9412	0.0501680163419149	0.0501680163419149
-18013	9412	7150	0.0490112280018507	0.0490112280018507
-18014	7150	2798	0.0490643527188194	0.0490643527188194
-18015	2798	5116	0.0499797709026575	0.0499797709026575
-18016	5116	9330	0.049524695482998	0.049524695482998
-18017	9330	4715	0.0504823610322626	0.0504823610322626
-18018	4715	8873	0.0985202776506121	0.0985202776506121
-18019	8873	7354	0.0991107696717597	0.0991107696717597
-18020	7354	5413	0.108951695628557	0.108951695628557
-18022	8149	8697	0.098981334337126	0.098981334337126
-18023	8697	10248	0.0156545770448285	0.0156545770448285
-18025	10248	7104	0.0902072497093339	0.0902072497093339
-18026	7104	449	0.046531670732617	0.046531670732617
-18027	449	854	0.0445732430501775	0.0445732430501775
-18028	854	10249	0.0446596776858281	0.0446596776858281
-18029	10249	9698	0.0482515561513205	0.0482515561513205
-18030	9698	10250	0.0474036186605965	0.0474036186605965
-18031	10250	6018	0.047797038051314	0.047797038051314
-18032	6018	10251	0.0473952539943275	0.0473952539943275
-18033	10251	3455	0.0464887102201997	0.0464887102201997
-18034	3455	7682	0.0950045363584629	0.0950045363584629
-19711	10628	10629	0.0313669947000456	0.0313669947000456
-18035	7682	8018	0.0938092255843609	0.0938092255843609
-18036	8018	6695	0.0944228486315978	0.0944228486315978
-18037	6695	4132	0.0905761672491303	0.0905761672491303
-18727	7644	9832	0.176300161007389	0.176300161007389
-18729	6212	7649	0.275730709453964	0.275730709453964
-18038	4132	8863	0.0309494848264702	0.0309494848264702
-18039	8863	2633	0.0676202306028496	0.0676202306028496
-18040	2633	8861	0.0311034897002001	0.0311034897002001
-18041	8861	2052	0.0676910103216562	0.0676910103216562
-18042	2052	8871	0.0313177900642343	0.0313177900642343
-18043	8871	7982	0.067271802615166	0.067271802615166
-18044	7982	7981	0.0326778162339826	0.0326778162339826
-18045	7981	7321	0.0976461329299173	0.0976461329299173
-18046	7321	7887	0.0987923725207189	0.0987923725207189
-18047	7887	3343	0.0990941084892765	0.0990941084892765
-18048	3343	5022	0.0986991080291596	0.0986991080291596
-18049	5022	8729	0.0995709770506032	0.0995709770506032
-18050	8729	6262	0.0984844587143486	0.0984844587143486
-18051	6262	1012	0.100435040495632	0.100435040495632
-18052	1012	3920	0.0983845018704443	0.0983845018704443
-18053	3920	3146	0.0986126436689597	0.0986126436689597
-18054	3146	5413	0.0895267655685447	0.0895267655685447
-18056	7083	10246	0.183851267240735	0.183851267240735
-19713	10624	10625	0.048946191319968	0.048946191319968
-18057	10246	3811	0.198873820859187	0.198873820859187
-18058	3811	5919	0.153816946395634	0.153816946395634
-18059	5919	918	0.176756350909337	0.176756350909337
-18060	918	2205	0.200653782293274	0.200653782293274
-18061	2205	4854	0.158832380963048	0.158832380963048
-18062	4854	9478	0.174098421618631	0.174098421618631
-18063	9478	5457	0.176480352381434	0.176480352381434
-18065	10252	9243	0.056682383190515	0.056682383190515
-18067	9110	10252	0.0330932350677699	0.0330932350677699
-18069	10253	6203	0.215345161639468	0.215345161639468
-18071	9115	10254	0.0491155354462148	0.0491155354462148
-18075	10254	10255	0.0642041289943666	0.0642041289943666
-18076	10255	10253	0.0461489416178021	0.0461489416178021
-18077	10253	9108	0.280904320228077	0.280904320228077
-18106	4661	10263	0.0487469518611321	0.0487469518611321
-18107	10263	1291	0.0497384845482417	0.0497384845482417
-18108	1291	10264	0.0496989025904687	0.0496989025904687
-18109	10264	4563	0.0505706606603651	0.0505706606603651
-18110	4563	10265	0.0486836289638941	0.0486836289638941
-18111	10265	6287	0.0497296125808977	0.0497296125808977
-18112	6287	10135	0.0504212055729903	0.0504212055729903
-18113	10135	2731	0.0489350482169507	0.0489350482169507
-18114	2731	6420	0.048465461986869	0.048465461986869
-18115	6420	5790	0.0578817224647719	0.0578817224647719
-18117	8844	10266	0.374943168729483	0.374943168729483
-18166	2719	9346	0.101115603929332	0.101115603929332
-18167	9346	9392	0.0111914858812043	0.0111914858812043
-18168	9392	3751	0.0968414516342271	0.0968414516342271
-18169	3751	10278	0.0782538471461698	0.0782538471461698
-18175	4073	6058	0.198316836648763	0.198316836648763
-18176	6058	5798	0.200796475018558	0.200796475018558
-18197	6750	5252	0.185979531851002	0.185979531851002
-18198	5252	3974	0.035323188020151	0.035323188020151
-18200	9357	2431	0.202519432604137	0.202519432604137
-18201	2431	9370	0.199383622965617	0.199383622965617
-18202	9370	1686	0.206118508992277	0.206118508992277
-18203	1686	6875	0.204292305654176	0.204292305654176
-18588	6666	1137	0.0495387040987843	0.0495387040987843
-18589	1137	6968	0.0501615414722825	0.0501615414722825
-18590	6968	7504	0.0501273333828588	0.0501273333828588
-18591	7504	9407	0.0988444534637431	0.0988444534637431
-18592	9407	7479	0.0538727285881741	0.0538727285881741
-18593	7479	5581	0.0510099428615072	0.0510099428615072
-18594	5581	10328	0.0992130715738959	0.0992130715738959
-18595	10328	10329	0.693578278671619	0.693578278671619
-18597	1845	2579	0.175048810960168	0.175048810960168
-18598	2579	5177	0.17911429796522	0.17911429796522
-18599	5177	10332	0.0225943601934419	0.0225943601934419
-18604	6211	7648	0.275618961394926	0.275618961394926
-18605	7648	8065	0.262676196305861	0.262676196305861
-18711	2590	5183	0.178568260386205	0.178568260386205
-18712	5183	5651	0.104244503206479	0.104244503206479
-18747	6210	10338	0.0125158344567017	0.0125158344567017
-18748	10338	10206	0.0559739547988456	0.0559739547988456
-18749	10206	10338	0.0559739547988456	0.0559739547988456
-18751	2596	5186	0.177768815603995	0.177768815603995
-18758	2588	5182	0.176322049262719	0.176322049262719
-18759	5182	5650	0.106248688527315	0.106248688527315
-18765	10339	10341	0.0322810460432902	0.0322810460432902
-18767	4492	10342	0.0173161946805903	0.0173161946805903
-18768	10342	10341	0.00848220864637094	0.00848220864637094
-18770	5616	10343	0.00845077111169589	0.00845077111169589
-18771	10343	10344	0.0509950035054565	0.0509950035054565
-18772	10344	9634	0.100553817919852	0.100553817919852
-18950	6234	7639	0.179364622734642	0.179364622734642
-18789	10350	10131	1.72659496196287	1.72659496196287
-18791	10210	10350	0.0784105528331039	0.0784105528331039
-18793	9064	10351	0.108141289805084	0.108141289805084
-18795	10351	8944	0.165792281012932	0.165792281012932
-18797	8946	8970	0.101566925839608	0.101566925839608
-18805	431	8911	0.368100622266312	0.368100622266312
-18807	8935	10353	0.0653020622045421	0.0653020622045421
-18865	217	6354	0.250152442533131	0.250152442533131
-18867	10372	10373	0.00433033984408308	0.00433033984408308
-18809	2956	8964	0.839971785186466	0.839971785186466
-18811	10353	8914	0.0131507104865587	0.0131507104865587
-18813	10354	8436	0.0634565167907247	0.0634565167907247
-18815	8440	10354	0.130317184994069	0.130317184994069
-18818	8431	4422	0.07184295360215	0.07184295360215
-18820	8435	10355	0.137076541565926	0.137076541565926
-18825	9181	10356	0.159461421615407	0.159461421615407
-18827	10357	10358	0.20146281055654	0.20146281055654
-18829	9180	10359	0.028613707454695	0.028613707454695
-18833	10360	10361	0.0535066603860974	0.0535066603860974
-18835	10361	10362	0.0845690343766548	0.0845690343766548
-18836	10362	9179	0.0218653086870073	0.0218653086870073
-19605	10512	10584	0.0688213399515618	0.0688213399515618
-20576	10864	10865	0.0279630258161778	0.0279630258161778
-18838	10363	8434	0.438288246661524	0.438288246661524
-18840	8433	10364	0.0515496120111284	0.0515496120111284
-18842	10365	10363	0.0256601639624377	0.0256601639624377
-18844	10364	10365	0.0354783965202197	0.0354783965202197
-18848	10367	8387	0.416611762681733	0.416611762681733
-18850	10366	10367	0.0267687636085769	0.0267687636085769
-18852	10368	10369	0.0527715034881913	0.0527715034881913
-18854	10370	10368	0.0348446889076446	0.0348446889076446
-18856	10371	10370	0.031482834490968	0.031482834490968
-18858	9836	10370	0.0328670117804623	0.0328670117804623
-18921	10399	10400	0.0895277934361984	0.0895277934361984
-18922	10400	10401	0.16717380860502	0.16717380860502
-18923	10402	10383	0.0291115464827756	0.0291115464827756
-18924	10383	10403	0.0309778660865677	0.0309778660865677
-18925	10403	10390	0.0429604527526701	0.0429604527526701
-18927	10404	10405	0.0626862314087788	0.0626862314087788
-18930	10406	10405	0.108269005965165	0.108269005965165
-18932	1241	6737	0.0570520014832054	0.0570520014832054
-18934	8100	6923	0.164900679548878	0.164900679548878
-18936	6923	8099	0.163064822440362	0.163064822440362
-18938	7928	8098	0.0730856765280865	0.0730856765280865
-18940	4039	4644	0.0827836448037734	0.0827836448037734
-18943	10407	7448	0.103189406011465	0.103189406011465
-19852	10659	3379	0.102335766847439	0.102335766847439
-18945	4142	10108	0.0206474020512083	0.0206474020512083
-18947	5674	2620	0.178145491343884	0.178145491343884
-18948	2620	5201	0.177501253416424	0.177501253416424
-18949	5201	6234	0.174487220572856	0.174487220572856
-18951	7639	8773	0.176238488140281	0.176238488140281
-18952	8773	8053	0.178917033730472	0.178917033730472
-18953	8053	6598	0.176988972177145	0.176988972177145
-18954	6598	10243	0.175681180141988	0.175681180141988
-18956	1841	7856	0.0582284853716934	0.0582284853716934
-18957	7856	4669	0.101085168807405	0.101085168807405
-18979	1764	4509	0.0491583937075752	0.0491583937075752
-18980	4509	4971	0.0991296803100638	0.0991296803100638
-18981	4971	1516	0.0482432726972035	0.0482432726972035
-18982	1516	5304	0.0536166306041211	0.0536166306041211
-18983	5304	7951	0.0505628420768163	0.0505628420768163
-18984	7951	7950	0.0124795676036534	0.0124795676036534
-18985	7950	1083	0.0132964314605761	0.0132964314605761
-18986	1083	8958	0.019091432638578	0.019091432638578
-18987	8958	1750	0.0565301426139895	0.0565301426139895
-18988	1750	6636	0.100698502633469	0.100698502633469
-18989	6636	5425	0.0992142460676437	0.0992142460676437
-18990	5425	7398	0.100582854167636	0.100582854167636
-18992	5674	10413	0.0446816032988726	0.0446816032988726
-18993	10413	6641	0.0419959523464037	0.0419959523464037
-18994	6641	3958	0.140215488391596	0.140215488391596
-18997	9265	10213	0.108979878639585	0.108979878639585
-19957	10683	10676	0.203409384148671	0.203409384148671
-18998	10213	9182	0.221716360786737	0.221716360786737
-18999	9182	4360	0.00485021965067944	0.00485021965067944
-19000	4360	6082	0.123504109096694	0.123504109096694
-19240	10459	8221	0.147319836582293	0.147319836582293
-19002	1269	4533	0.203350040591983	0.203350040591983
-19003	4533	8579	0.198512187124204	0.198512187124204
-19005	1841	2613	0.177111353706323	0.177111353706323
-19006	2613	10414	0.0530626159965885	0.0530626159965885
-19007	10414	5196	0.124494794308613	0.124494794308613
-19008	5196	6239	0.171651899926933	0.171651899926933
-19010	4186	4182	0.0154308679587021	0.0154308679587021
-19011	4182	3367	0.101326829934178	0.101326829934178
-19012	3367	3370	0.0389167828857067	0.0389167828857067
-19013	3370	10415	0.0493793417329401	0.0493793417329401
-19014	10415	7424	0.0519282840216647	0.0519282840216647
-19015	7424	10416	0.0508505433229276	0.0508505433229276
-19016	10416	7831	0.0497300351350067	0.0497300351350067
-19017	7831	9197	0.188452322853961	0.188452322853961
-19019	5549	10417	0.0198343104325793	0.0198343104325793
-19020	10417	2562	0.366597076665755	0.366597076665755
-19021	2562	9783	0.236171353579108	0.236171353579108
-19022	9783	9781	0.00643634199106272	0.00643634199106272
-19958	10676	10668	0.135367639799285	0.135367639799285
-19023	9781	9160	0.00367738923970995	0.00367738923970995
-19025	9156	9260	0.0939135311905937	0.0939135311905937
-19040	10419	435	0.0296899237003876	0.0296899237003876
-19042	6361	6912	0.413025051484806	0.413025051484806
-19043	6912	5272	0.122458972713872	0.122458972713872
-19044	5272	2806	0.132101617817113	0.132101617817113
-19045	2806	9480	0.135002111088791	0.135002111088791
-19046	9480	901	0.134968752710231	0.134968752710231
-19048	9486	9873	0.018915562611857	0.018915562611857
-19049	9873	3055	0.182137362251337	0.182137362251337
-19050	3055	9669	0.205422822851571	0.205422822851571
-19051	9669	4352	0.202508200405289	0.202508200405289
-19052	4352	7924	0.0557579828978423	0.0557579828978423
-19053	7924	7923	0.106391305814005	0.106391305814005
-19054	7923	3580	0.0580075342624614	0.0580075342624614
-19055	3580	788	0.184224770380015	0.184224770380015
-19056	788	10089	0.199795465587569	0.199795465587569
-19057	10089	491	0.20084069572648	0.20084069572648
-19058	491	489	0.205477824650125	0.205477824650125
-19059	489	4589	0.272976340428597	0.272976340428597
-19060	4589	1978	0.12991989572877	0.12991989572877
-19061	1978	1994	0.0147512164813181	0.0147512164813181
-19062	1994	705	0.187141061542779	0.187141061542779
-19063	705	642	0.0623803538473296	0.0623803538473296
-19064	642	10422	0.140896965982946	0.140896965982946
-19067	9469	4898	0.180547202392339	0.180547202392339
-19068	4898	4899	0.0469687370152221	0.0469687370152221
-19069	4899	9422	0.11449972298661	0.11449972298661
-19070	9422	2230	0.0888113879114828	0.0888113879114828
-19071	2230	961	0.0851419553312056	0.0851419553312056
-19072	961	5943	0.118166848545009	0.118166848545009
-19073	5943	8869	0.0594604755013997	0.0594604755013997
-19074	8869	3766	0.149125823202066	0.149125823202066
-19075	3766	10248	0.200641473563849	0.200641473563849
-19076	10248	1211	0.0471365210908597	0.0471365210908597
-19077	1211	8567	0.147435833594552	0.147435833594552
-19078	8567	6541	0.161851618274563	0.161851618274563
-19079	6541	4746	0.176177241775495	0.176177241775495
-19081	4159	2359	0.17021782028236	0.17021782028236
-19082	2359	9694	0.178145500592375	0.178145500592375
-19083	9694	5170	0.174004040417809	0.174004040417809
-19085	6362	6447	0.0914589915157797	0.0914589915157797
-19086	6447	2399	0.0149004167256546	0.0149004167256546
-19087	2399	9454	0.2205749898237	0.2205749898237
-19089	519	831	0.121986604363099	0.121986604363099
-19090	831	10147	0.141772461765667	0.141772461765667
-19091	10147	10428	0.0119979325853114	0.0119979325853114
-19093	8145	9501	0.0198122134799104	0.0198122134799104
-19094	9501	1751	0.0440125388452957	0.0440125388452957
-19095	1751	6012	0.168131959250809	0.168131959250809
-19096	6012	832	0.205336624614562	0.205336624614562
-19097	832	518	0.168135736431663	0.168135736431663
-19098	518	6513	0.0279910233322091	0.0279910233322091
-19099	6513	10419	0.0139795197071191	0.0139795197071191
-19102	10049	8612	0.0522928783615643	0.0522928783615643
-19103	8612	8474	0.0521996072275175	0.0521996072275175
-19142	5220	8777	0.146640601075408	0.146640601075408
-19105	10430	10358	0.245136281681027	0.245136281681027
-19108	5628	9568	0.110078124608504	0.110078124608504
-19110	8421	10357	0.296407311680596	0.296407311680596
-19114	2386	9558	0.0348995825647377	0.0348995825647377
-19115	9558	8798	0.125658984531748	0.125658984531748
-19120	8185	9450	0.339524971346509	0.339524971346509
-19121	9450	8690	0.0176125961717604	0.0176125961717604
-19122	8690	7659	0.0477249226862614	0.0477249226862614
-19123	7659	6718	0.103225505465316	0.103225505465316
-19125	2190	8128	0.151455687504874	0.151455687504874
-19126	8128	7827	0.106341251390527	0.106341251390527
-19127	7827	10432	0.221434541654845	0.221434541654845
-19128	10432	6961	0.0131395719721806	0.0131395719721806
-19129	6961	10433	0.0134328380462519	0.0134328380462519
-19130	10433	10434	0.0869062764565781	0.0869062764565781
-19131	10434	8597	0.00983583049657532	0.00983583049657532
-19132	8597	10435	0.0222534876112211	0.0222534876112211
-19134	10050	3168	0.0821216282435351	0.0821216282435351
-19141	7961	5220	0.0901667996290929	0.0901667996290929
-19144	8388	10437	0.320984694668417	0.320984694668417
-19146	10437	6962	0.186002986440568	0.186002986440568
-19147	6962	10438	0.0184374963317956	0.0184374963317956
-19148	10438	1881	0.209774050468257	0.209774050468257
-19149	1881	8569	0.224745848084877	0.224745848084877
-19150	8569	9988	0.0831717180377924	0.0831717180377924
-19151	9988	8477	0.0648356679758423	0.0648356679758423
-19152	8477	8463	0.0835421546655635	0.0835421546655635
-19960	9517	10684	0.210192276965542	0.210192276965542
-19154	8800	8811	0.31904932389546	0.31904932389546
-19162	10428	3871	0.0534454265709194	0.0534454265709194
-19163	3871	840	0.0992542187222657	0.0992542187222657
-19164	840	4272	0.128018795895479	0.128018795895479
-19166	9283	10439	0.0445989165425857	0.0445989165425857
-19168	10440	9282	0.395349042842448	0.395349042842448
-19170	7136	2300	0.0954980884416659	0.0954980884416659
-19171	2300	6804	0.197911548357853	0.197911548357853
-19173	7956	8539	0.0718200140953678	0.0718200140953678
-19174	8539	9282	0.0117697082839477	0.0117697082839477
-19176	10442	1349	0.0573473302810492	0.0573473302810492
-19178	10443	8521	0.0309849382045455	0.0309849382045455
-19180	10151	10440	0.0401979143660666	0.0401979143660666
-19182	10439	5059	0.220890379574485	0.220890379574485
-19183	5059	5013	0.0908635547178716	0.0908635547178716
-19184	5013	3349	0.0925982666666752	0.0925982666666752
-19185	3349	7877	0.0609717199349519	0.0609717199349519
-19186	7877	5761	0.0981025803398981	0.0981025803398981
-19187	5761	7325	0.0996396951750833	0.0996396951750833
-19961	10684	10674	0.204298559687633	0.204298559687633
-19188	7325	2064	0.0938077886809335	0.0938077886809335
-20575	10863	10864	0.0111548544892698	0.0111548544892698
-19189	2064	2650	0.094440127839499	0.094440127839499
-19801	7638	6235	0.180302575380181	0.180302575380181
-19190	2650	10444	0.141197448312795	0.141197448312795
-19191	10444	9821	0.0323105619062287	0.0323105619062287
-19192	9821	9822	0.0144436267959073	0.0144436267959073
-19193	9822	3476	0.28088366035949	0.28088366035949
-19194	3476	10445	0.0704996285836985	0.0704996285836985
-19195	10445	10428	0.0905303391563005	0.0905303391563005
-19197	10167	10442	0.0431387292722099	0.0431387292722099
-19199	8408	8568	0.191490020507546	0.191490020507546
-19200	8568	10012	0.119004756390235	0.119004756390235
-19335	8631	10474	0.189944426919074	0.189944426919074
-19201	10012	8461	0.097400081996938	0.097400081996938
-19203	4275	3348	0.0888431357806069	0.0888431357806069
-19204	3348	7876	0.0640319779657538	0.0640319779657538
-19205	7876	5760	0.0967358830871852	0.0967358830871852
-19206	5760	7324	0.101239369924108	0.101239369924108
-19207	7324	2063	0.0946165731852714	0.0946165731852714
-19208	2063	2649	0.0935569331707932	0.0935569331707932
-19209	2649	4105	0.0971375052394303	0.0971375052394303
-19210	4105	6689	0.0855494277301445	0.0855494277301445
-19211	6689	356	0.101026474697068	0.101026474697068
-19212	356	7688	0.0921469063041614	0.0921469063041614
-19213	7688	3475	0.0946165920204556	0.0946165920204556
-19215	6939	9228	0.0827641347919428	0.0827641347919428
-19216	9228	6380	0.0767643689707359	0.0767643689707359
-19217	6380	5058	0.0447215279971903	0.0447215279971903
-19219	5015	3318	0.0976390934138488	0.0976390934138488
-19221	7829	10449	0.170073568021036	0.170073568021036
-19222	9276	9490	0.227893235973284	0.227893235973284
-19224	5808	10450	0.0444182254226453	0.0444182254226453
-19228	10452	10453	0.00899294746602318	0.00899294746602318
-19262	561	8788	0.108355823884287	0.108355823884287
-19264	10465	10081	0.106367191723871	0.106367191723871
-19265	10081	9467	0.08060964495203	0.08060964495203
-19376	8634	10174	0.107642527980188	0.107642527980188
-19283	1943	10467	0.139113140483037	0.139113140483037
-19284	10467	1941	0.145058671955531	0.145058671955531
-19309	10472	10450	0.0244300101434338	0.0244300101434338
-19310	10450	6986	0.0907684588887198	0.0907684588887198
-19311	6986	649	0.0550434251335652	0.0550434251335652
-19312	649	9973	0.0116984093357102	0.0116984093357102
-19313	9973	6700	0.0127993614182147	0.0127993614182147
-20578	10796	10801	0.065843170036926	0.065843170036926
-19315	5030	10465	0.0131766099040461	0.0131766099040461
-19316	10465	339	0.0452586039857602	0.0452586039857602
-19317	339	10468	0.0402192785877108	0.0402192785877108
-19318	10468	1941	0.0852977829408983	0.0852977829408983
-19319	1941	610	0.177606555639393	0.177606555639393
-19320	610	4852	0.177691892562915	0.177691892562915
-19321	4852	2203	0.156985921773534	0.156985921773534
-19324	5917	1620	0.152034755665853	0.152034755665853
-19325	1620	1212	0.201729915857126	0.201729915857126
-19326	1212	8782	0.0140233440789759	0.0140233440789759
-19336	4837	9074	0.0183273901669081	0.0183273901669081
-19338	9315	9317	0.0726807266351068	0.0726807266351068
-19339	9317	8692	0.104147766047402	0.104147766047402
-19341	9315	1952	0.0315809029571794	0.0315809029571794
-19343	10140	10142	0.0644750868788433	0.0644750868788433
-19344	10142	10475	0.0151531719907858	0.0151531719907858
-19345	10475	7137	0.053510410167183	0.053510410167183
-19347	480	9282	0.132450958735296	0.132450958735296
-19348	9282	10138	0.0564427245863012	0.0564427245863012
-19350	8464	10476	0.175984833399768	0.175984833399768
-19352	10047	5253	0.112186249238367	0.112186249238367
-19353	5253	2320	0.0249537355545513	0.0249537355545513
-19355	10166	6401	0.0992919669903468	0.0992919669903468
-19359	10479	9948	0.0516511853374245	0.0516511853374245
-19360	9948	8509	0.0517093587612889	0.0517093587612889
-19362	6189	10479	0.146782090008868	0.146782090008868
-19387	10455	5805	0.0524139320350963	0.0524139320350963
-19364	10047	10168	0.0607581388382602	0.0607581388382602
-19365	10168	10480	0.0679196955639713	0.0679196955639713
-19366	10480	6401	0.0390713513194924	0.0390713513194924
-19367	6401	10481	0.052200136280437	0.052200136280437
-19368	10481	6166	0.221487121294822	0.221487121294822
-19369	6166	4284	0.1514940030025	0.1514940030025
-19371	2320	2779	0.107781391844326	0.107781391844326
-20580	10867	10868	0.0137448223074376	0.0137448223074376
-20581	10868	10869	0.0278742902489333	0.0278742902489333
-19372	2779	2913	0.05305189541044	0.05305189541044
-19374	8509	9595	0.106794270102757	0.106794270102757
-19375	9595	8634	0.102427753876907	0.102427753876907
-19377	10174	10482	0.096139738297761	0.096139738297761
-19378	10482	9194	0.00978224253563326	0.00978224253563326
-19380	4397	3002	0.108243017625134	0.108243017625134
-19381	3002	10484	0.0989194559777293	0.0989194559777293
-19382	10484	5962	0.00617092845740214	0.00617092845740214
-19383	5962	10485	0.00542857584263607	0.00542857584263607
-19384	10485	10459	0.0472755549262459	0.0472755549262459
-19385	10459	7579	0.0528643874539915	0.0528643874539915
-19429	7287	32	0.190572580502828	0.190572580502828
-19386	7579	10455	0.0523778989124976	0.0523778989124976
-19423	10488	7294	0.0690612889349745	0.0690612889349745
-19424	7294	36	0.192538942320683	0.192538942320683
-19388	5805	10462	0.081956103355699	0.081956103355699
-19389	10462	8768	0.0169741195442503	0.0169741195442503
-19391	6189	9950	0.0503550239981861	0.0503550239981861
-19392	9950	7557	0.0535053183585621	0.0535053183585621
-19393	7557	9952	0.0524048074288428	0.0524048074288428
-19394	9952	10429	0.0135095901515659	0.0135095901515659
-19396	10479	9627	0.0675900234291702	0.0675900234291702
-19400	3201	6115	0.203275445399412	0.203275445399412
-19401	6115	1910	0.199619230795837	0.199619230795837
-19402	1910	9218	0.202850123370343	0.202850123370343
-19403	9218	9216	0.20345414072247	0.20345414072247
-19404	9216	7300	0.200631055524996	0.200631055524996
-19405	7300	45	0.202263602143448	0.202263602143448
-19406	45	3545	0.200651259904661	0.200651259904661
-19407	3545	4239	0.201942446714699	0.201942446714699
-19408	4239	1800	0.2054130837632	0.2054130837632
-19409	1800	8710	0.197537787183869	0.197537787183869
-19410	8710	6527	0.132676718293593	0.132676718293593
-19695	8145	9492	0.255789380087541	0.255789380087541
-19697	10419	10619	0.294868097569216	0.294868097569216
-19806	10411	7868	0.176421872480467	0.176421872480467
-19698	10619	10620	0.511264415982815	0.511264415982815
-19699	6199	496	0.110329672635447	0.110329672635447
-19700	496	10419	0.128549351195957	0.128549351195957
-19704	10623	10624	0.299844457035978	0.299844457035978
-19705	10624	10625	0.048946191319968	0.048946191319968
-19706	10625	10626	0.0564187161790662	0.0564187161790662
-19707	10626	10627	0.261222980592435	0.261222980592435
-19717	10626	10634	0.247667737296111	0.247667737296111
-19925	10679	9511	0.20648099094332	0.20648099094332
-19926	9511	4579	0.132833459370163	0.132833459370163
-19930	10680	10673	0.208792718350027	0.208792718350027
-19931	10673	7131	0.201766496696079	0.201766496696079
-19933	626	10681	0.1702021482017	0.1702021482017
-19934	5672	10665	0.0500710082270115	0.0500710082270115
-19935	10665	7218	0.0509007134728753	0.0509007134728753
-19937	252	10245	0.178490785331426	0.178490785331426
-19938	10245	7120	0.17638987203806	0.17638987203806
-19939	7120	9641	0.177259535907282	0.177259535907282
-19944	10675	10682	0.203454780542957	0.203454780542957
-19945	10682	9518	0.211007495388792	0.211007495388792
-19946	9518	4583	0.129742461291969	0.129742461291969
-19948	10646	7221	0.050795229275335	0.050795229275335
-19949	7221	10672	0.0490058421037179	0.0490058421037179
-19950	10672	4950	0.0520761745786515	0.0520761745786515
-19954	10414	5089	0.112638269786332	0.112638269786332
-19956	9520	10683	0.208034746403896	0.208034746403896
-19992	10649	10664	0.050141841785608	0.050141841785608
-19993	10664	10683	0.0505455538112256	0.0505455538112256
-19994	10683	5590	0.0494937724947863	0.0494937724947863
-19995	5590	10661	0.0507309659863408	0.0507309659863408
-19996	10661	7533	0.0505856564507496	0.0505856564507496
-19997	7533	10689	0.686347942133366	0.686347942133366
-19998	8645	2200	0.0278160442123186	0.0278160442123186
-20003	2200	10693	0.020138493184414	0.020138493184414
-20004	10693	10443	0.00475150856262823	0.00475150856262823
-20006	8461	9621	0.0222962026291256	0.0222962026291256
-20007	9621	10690	0.0515741214544805	0.0515741214544805
-20026	9466	8724	0.0514719719174867	0.0514719719174867
-20027	8724	5029	0.0566937822140094	0.0566937822140094
-20028	5029	4595	0.0969267875718062	0.0969267875718062
-20030	5321	630	0.142142547339574	0.142142547339574
-20031	630	2908	0.116052443784823	0.116052443784823
-20039	10696	5549	0.959761090863438	0.959761090863438
-20040	5549	9172	0.201153438061066	0.201153438061066
-20042	140	1484	0.198676673012775	0.198676673012775
-20043	1484	3760	0.212665318664513	0.212665318664513
-20044	3760	4181	0.394425022611864	0.394425022611864
-20045	4181	7302	0.250045496408828	0.250045496408828
-20046	7302	9078	0.0121023798774685	0.0121023798774685
-419	418	419	0.0843359701726921	0.0843359701726921
-20049	9127	9931	0.188027723664679	0.188027723664679
-20051	9189	10417	0.27289630775387	0.27289630775387
-20052	10417	10698	0.903351534370563	0.903351534370563
-20055	5803	10456	0.063915425232113	0.063915425232113
-20056	10456	8278	0.0463525975312068	0.0463525975312068
-20057	8278	7582	0.0531670184257572	0.0531670184257572
-20586	10860	10865	0.0197306093936785	0.0197306093936785
-20058	7582	10460	0.0605194201118807	0.0605194201118807
-20059	10460	5965	0.08096413889014	0.08096413889014
-20060	5965	7403	0.00793698029885246	0.00793698029885246
-20061	7403	7216	0.100604138655543	0.100604138655543
-20062	7216	2998	0.041051117053356	0.041051117053356
-20064	4930	9632	0.0194691711485179	0.0194691711485179
-20066	8788	8794	0.107030125953622	0.107030125953622
-20067	8794	8875	0.105785558321332	0.105785558321332
-20068	8875	7355	0.0541942506273543	0.0541942506273543
-20069	7355	8881	0.0482515848497253	0.0482515848497253
-20070	8881	7128	0.0482774346717123	0.0482774346717123
-20071	7128	9311	0.0491067830497851	0.0491067830497851
-20072	9311	9658	0.100701059147573	0.100701059147573
-20073	9658	5054	0.0949533068688616	0.0949533068688616
-20074	5054	5041	0.0261633102483298	0.0261633102483298
-20075	5041	6318	0.0238469793810048	0.0238469793810048
-20077	8004	7999	0.0412811844037432	0.0412811844037432
-20078	7999	5161	0.00972594837361757	0.00972594837361757
-20079	5161	976	0.0450966381773304	0.0450966381773304
-20080	976	9235	0.0690703393173828	0.0690703393173828
-20081	9235	8835	0.0284556853366966	0.0284556853366966
-20082	8835	7138	0.0744435936983682	0.0744435936983682
-20083	7138	7152	0.0242079619729824	0.0242079619729824
-20084	7152	5018	0.0530487604133438	0.0530487604133438
-20085	5018	5127	0.027179522018167	0.027179522018167
-20086	5127	5120	0.017329383802427	0.017329383802427
-20087	5120	9413	0.051025645765313	0.051025645765313
-20088	9413	4720	0.0442143222009164	0.0442143222009164
-20089	4720	6788	0.103544897956421	0.103544897956421
-20090	6788	7360	0.101885712989061	0.101885712989061
-20091	7360	5420	0.104686903511504	0.104686903511504
-20092	5420	8551	0.104297582912284	0.104297582912284
-20093	8551	3891	0.113854917229397	0.113854917229397
-20094	3891	1021	0.10275177677768	0.10275177677768
-20095	1021	10069	0.0524825810706004	0.0524825810706004
-20096	10069	6266	0.0519011168646154	0.0519011168646154
-20097	6266	8727	0.107637396904871	0.107637396904871
-20098	8727	5027	0.0851589615138914	0.0851589615138914
-20099	5027	3339	0.11913667157964	0.11913667157964
-20100	3339	7884	0.0947347804724537	0.0947347804724537
-20101	7884	7339	0.0992406279882494	0.0992406279882494
-20588	10840	3589	0.00659451799404467	0.00659451799404467
-20102	7339	7978	0.0297388680985265	0.0297388680985265
-20103	7978	8546	0.0509861753484279	0.0509861753484279
-20105	2065	2068	0.0539613780445048	0.0539613780445048
-20106	2068	2651	0.0458462130492323	0.0458462130492323
-20107	2651	2668	0.0527824371940605	0.0527824371940605
-20108	2668	4106	0.0471315276476818	0.0471315276476818
-20109	4106	4138	0.0531150768123695	0.0531150768123695
-20110	4138	6691	0.0513109258939151	0.0513109258939151
-20111	6691	6699	0.049849518680298	0.049849518680298
-20112	6699	8027	0.0540642003294053	0.0540642003294053
-20113	8027	8022	0.0351680439773276	0.0351680439773276
-20114	8022	7697	0.0642576699742132	0.0642576699742132
-20116	7687	3442	0.0653852338257918	0.0653852338257918
-20117	3442	3465	0.0302046503739114	0.0302046503739114
-20118	3465	10643	0.044572996690839	0.044572996690839
-20119	10643	6010	0.0210253210935206	0.0210253210935206
-20120	6010	6022	0.0302819861909932	0.0302819861909932
-20121	6022	3877	0.0720170103408001	0.0720170103408001
-20122	3877	9699	0.0188604413742797	0.0188604413742797
-20123	9699	862	0.0931148831029757	0.0931148831029757
-20124	862	7102	0.0867114852734781	0.0867114852734781
-20125	7102	10422	0.0971484542236891	0.0971484542236891
-20126	10422	8701	0.0148135271633134	0.0148135271633134
-20127	8701	8159	0.0903601598115808	0.0903601598115808
-20128	8159	8147	0.0485272097981868	0.0485272097981868
-20129	8147	7605	0.046972846594418	0.046972846594418
-20130	7605	7256	0.0980906813073136	0.0980906813073136
-20131	7256	7592	0.0949493294075893	0.0949493294075893
-20132	7592	2011	0.0535765472330524	0.0535765472330524
-20133	2011	9174	0.0440404642371946	0.0440404642371946
-20134	9174	10644	0.101018897202585	0.101018897202585
-20135	10644	2752	0.0964161425505398	0.0964161425505398
-12318	2500	2501	0.00534847597168918	0.00534847597168918
-20137	6988	7015	0.0469900401605619	0.0469900401605619
-20138	7015	2275	0.0506564830109395	0.0506564830109395
-20139	2275	8216	0.0480971521401402	0.0480971521401402
-20140	8216	3600	0.0492447661071067	0.0492447661071067
-20141	3600	8213	0.0494471155350359	0.0494471155350359
-20142	8213	7515	0.0477024371424333	0.0477024371424333
-20143	7515	7526	0.0508405166895622	0.0508405166895622
-20144	7526	4566	0.0460266764289813	0.0460266764289813
-20145	4566	2124	0.0528615774272691	0.0528615774272691
-20146	2124	5990	0.094672374588883	0.094672374588883
-20147	5990	7671	0.0990838490707958	0.0990838490707958
-20179	10247	9298	0.182738392624498	0.182738392624498
-20180	9298	6549	0.169619845811395	0.169619845811395
-20182	4768	6330	0.178054483343927	0.178054483343927
-20183	6330	9308	0.0134883336553362	0.0134883336553362
-20148	7671	10702	3.41813541281698	3.41813541281698
-20149	425	10112	0.0131850564749253	0.0131850564749253
-20186	8247	10155	0.516700602330837	0.516700602330837
-20187	10155	3322	0.265485774934506	0.265485774934506
-20188	3322	10706	0.131436234594263	0.131436234594263
-20189	10139	10705	0.06021736831636	0.06021736831636
-20195	8510	10708	0.0176825351734809	0.0176825351734809
-20197	10708	8571	0.116072750239478	0.116072750239478
-20199	5783	8281	0.147480988666932	0.147480988666932
-20200	8281	8293	0.145093730312322	0.145093730312322
-20201	8293	7900	0.146177040292133	0.146177040292133
-20202	7900	8854	0.145687210047232	0.145687210047232
-20203	8854	9321	0.148905174298523	0.148905174298523
-20206	8401	5454	0.142235461954992	0.142235461954992
-20207	5454	8504	0.00556744232684514	0.00556744232684514
-20208	8504	8047	0.149428079475645	0.149428079475645
-20209	8047	6575	0.142472133135735	0.142472133135735
-20210	6575	4456	0.146389787991077	0.146389787991077
-20211	4456	5504	0.146266130363807	0.146266130363807
-20264	10722	5574	0.00764881869126048	0.00764881869126048
-20317	10737	10730	0.156440332314784	0.156440332314784
-20319	10738	10739	0.00846222116823016	0.00846222116823016
-20570	10858	10856	0.341000703608857	0.341000703608857
-20572	10859	10860	0.0100014874858022	0.0100014874858022
-20784	10945	10292	0.00633905697400916	0.00633905697400916
-321	153	154	0.039197729386179	0.039197729386179
-18675	1570	2751	0.10523982327052	0.10523982327052
-20591	10795	10802	0.0763744143850755	0.0763744143850755
-20216	632	6405	0.146056665643101	0.146056665643101
-20217	6405	4277	0.144766275996567	0.144766275996567
-20218	4277	2913	0.0337236702585465	0.0337236702585465
-20250	9384	8111	0.200921327710714	0.200921327710714
-20251	8111	10328	0.204798818746646	0.204798818746646
-\.
diff --git a/src/bd_dijkstra/test/bd_dijkstra-any-01.result b/src/bd_dijkstra/test/bd_dijkstra-any-01.result
deleted file mode 100644
index a83377b..0000000
--- a/src/bd_dijkstra/test/bd_dijkstra-any-01.result
+++ /dev/null
@@ -1,102 +0,0 @@
-NOTICE:  Deprecated Signature of pgr_bdDijkstra
-0|5700|20787|0.006774
-1|10932|20756|0.040876
-2|10931|20797|0.002564
-3|7661|20796|0.002581
-4|10943|20776|0.040800
-5|10941|20772|0.005720
-6|3415|20771|0.007463
-7|10940|20841|0.187594
-8|10952|20812|0.005045
-9|7034|20811|0.004532
-10|10951|20833|0.177477
-11|10944|20779|0.008539
-12|8910|20778|0.006447
-13|10929|20835|0.071114
-14|10948|20794|0.013276
-15|8908|12990|0.013157
-16|8325|13831|0.009169
-17|3753|13830|0.196045
-18|6774|13829|0.032840
-19|8304|13828|0.117213
-20|9205|13827|0.010639
-21|8994|13165|0.012931
-22|8977|13164|0.008029
-23|8976|13163|0.069895
-24|8993|13162|0.009638
-25|8351|13161|0.099016
-26|8992|13160|0.187353
-27|8991|13159|0.018649
-28|2962|13158|0.071931
-29|1285|13157|0.118340
-30|8989|13156|0.006317
-31|8988|13155|0.079185
-32|21|13154|0.057101
-33|6436|13153|0.083288
-34|637|13152|0.099744
-35|8987|13151|0.057786
-36|398|13150|0.120005
-37|8496|13149|0.069498
-38|8986|13148|0.014323
-39|8985|13167|0.070884
-40|8451|11869|0.006925
-41|476|11868|0.196533
-42|529|11867|0.005677
-43|8450|11871|0.118857
-44|8452|11878|0.083250
-45|8455|11880|0.048821
-46|8456|11883|0.064572
-47|1807|11882|0.101185
-48|8457|11894|0.046805
-49|8465|15481|0.180992
-50|8522|15480|0.016198
-51|9621|15479|0.209882
-52|2808|15478|0.019312
-53|8311|15477|0.113487
-54|8583|16981|0.045667
-55|10046|16982|0.022635
-56|8467|16983|0.022924
-57|9624|15487|0.034042
-58|8468|11899|0.018103
-59|3170|19357|0.047698
-60|9949|19358|0.059093
-61|10479|19359|0.051651
-62|9948|19360|0.051709
-63|8509|19374|0.106794
-64|9595|19375|0.102428
-65|8634|19376|0.107643
-66|10174|19377|0.096140
-67|10482|19378|0.009782
-68|9194|19379|0.102702
-69|4397|19380|0.108243
-70|3002|19381|0.098919
-71|10484|19382|0.006171
-72|5962|19383|0.005429
-73|10485|19384|0.047276
-74|10459|19385|0.052864
-75|7579|19386|0.052378
-76|10455|19387|0.052414
-77|5805|19388|0.081956
-78|10462|19389|0.016974
-79|8768|12598|0.059630
-80|8767|19290|0.117748
-81|10470|19289|0.065769
-82|10469|19288|0.066230
-83|10468|19287|0.111281
-84|9967|16642|0.029056
-85|9956|16621|0.014614
-86|9938|16626|0.007036
-87|9960|16649|0.081206
-88|9968|16650|0.012230
-89|9969|16647|0.012368
-90|5457|6266|0.055134
-91|5458|6267|0.053860
-92|5459|6268|0.109859
-93|5460|6269|0.104952
-94|5461|6270|0.053766
-95|5462|6271|0.046800
-96|5463|12897|0.170300
-97|8880|15060|0.049014
-98|7101|15059|0.047811
-99|9313|15058|0.044674
-100|6733|-1|0.000000
diff --git a/src/bd_dijkstra/test/bd_dijkstra-any-01.test.sql b/src/bd_dijkstra/test/bd_dijkstra-any-01.test.sql
deleted file mode 100644
index b284356..0000000
--- a/src/bd_dijkstra/test/bd_dijkstra-any-01.test.sql
+++ /dev/null
@@ -1,23 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-select (r).seq, (r).id1, (r).id2, round((r).cost::numeric, 6) from ( select pgr_bddijkstra('select * from bdd_ways'::text, 5700, 6733, true, true) as r ) as foo;
diff --git a/src/bd_dijkstra/test/bd_dijkstra-any-02.result b/src/bd_dijkstra/test/bd_dijkstra-any-02.result
deleted file mode 100644
index a2bfe1d..0000000
--- a/src/bd_dijkstra/test/bd_dijkstra-any-02.result
+++ /dev/null
@@ -1,61 +0,0 @@
-NOTICE:  Deprecated Signature of pgr_bdDijkstra
-0|6585|17975|0.200230
-1|5367|17976|0.155428
-2|7125|17977|0.178581
-3|613|17978|0.175712
-4|10025|17979|0.173776
-5|5802|6758|0.013489
-6|5803|6759|0.065176
-7|5804|6760|0.008679
-8|5805|6761|0.145097
-9|5806|6762|0.146807
-10|5807|6763|0.097186
-11|5808|6764|0.050569
-12|5809|20663|0.169650
-13|4620|20662|0.023243
-14|5774|20661|0.120390
-15|6482|20660|0.002769
-16|5957|20659|0.087952
-17|8289|20658|0.048701
-18|10884|20657|0.009212
-19|10883|20656|0.080500
-20|9954|20655|0.075280
-21|4390|16876|0.147691
-22|9203|17805|0.063931
-23|7892|17804|0.015429
-24|8417|17803|0.069119
-25|10171|17802|0.075825
-26|9953|17801|0.045079
-27|8859|17800|0.029389
-28|8536|17799|0.072658
-29|10180|17798|0.076558
-30|9592|17797|0.027637
-31|9318|17796|0.114755
-32|10179|17795|0.007150
-33|10178|17794|0.087467
-34|8402|17793|0.062258
-35|6179|17792|0.109483
-36|8508|17791|0.036248
-37|3305|17790|0.069816
-38|8512|17789|0.064158
-39|998|17807|0.471312
-40|2698|2743|0.102019
-41|2563|9039|0.341756
-42|2043|9040|0.587619
-43|4280|9041|0.145996
-44|2317|9042|0.268754
-45|7135|9043|0.121251
-46|4276|9044|0.145396
-47|6167|9045|0.583394
-48|7136|9046|0.043099
-49|7137|19345|0.053510
-50|10475|19344|0.015153
-51|10142|19343|0.064475
-52|10140|17566|0.135370
-53|8539|17565|0.057338
-54|10138|17558|0.064893
-55|6943|17559|0.201703
-56|8140|17560|0.469613
-57|10139|20189|0.060217
-58|10705|20185|0.055053
-59|8247|-1|0.000000
diff --git a/src/bd_dijkstra/test/bd_dijkstra-any-02.test.sql b/src/bd_dijkstra/test/bd_dijkstra-any-02.test.sql
deleted file mode 100644
index d2ea42e..0000000
--- a/src/bd_dijkstra/test/bd_dijkstra-any-02.test.sql
+++ /dev/null
@@ -1,23 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-select (r).seq, (r).id1, (r).id2, round((r).cost::numeric, 6) from ( select pgr_bddijkstra('select * from bdd_ways'::text, 6585, 8247, true, true) as r ) as foo;
diff --git a/src/bd_dijkstra/test/bd_dijkstra-any-03.result b/src/bd_dijkstra/test/bd_dijkstra-any-03.result
deleted file mode 100644
index 1da08ed..0000000
--- a/src/bd_dijkstra/test/bd_dijkstra-any-03.result
+++ /dev/null
@@ -1,3 +0,0 @@
-NOTICE: Deprecated Signature of pgr_bdDijkstra
-0|14822|14822|0.060319
-1|-1|-1|0.000000
diff --git a/src/bd_dijkstra/test/bd_dijkstra-any-03.test.sql b/src/bd_dijkstra/test/bd_dijkstra-any-03.test.sql
deleted file mode 100644
index 601724d..0000000
--- a/src/bd_dijkstra/test/bd_dijkstra-any-03.test.sql
+++ /dev/null
@@ -1,23 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-select (r).seq, (r).id2, (r).id2, round((r).cost::numeric, 6) from ( select pgr_bddijkstra('select * from bdd_ways'::text, 9426, 3606, true, true) as r ) as foo;
diff --git a/src/bd_dijkstra/test/bd_dijkstra-any-04.result b/src/bd_dijkstra/test/bd_dijkstra-any-04.result
deleted file mode 100644
index 59b94cc..0000000
--- a/src/bd_dijkstra/test/bd_dijkstra-any-04.result
+++ /dev/null
@@ -1,3 +0,0 @@
-NOTICE:  Deprecated Signature of pgr_bdDijkstra
-0|3606|14822|0.060319
-1|9426|-1|0.000000
diff --git a/src/bd_dijkstra/test/bd_dijkstra-any-04.test.sql b/src/bd_dijkstra/test/bd_dijkstra-any-04.test.sql
deleted file mode 100644
index 2bca691..0000000
--- a/src/bd_dijkstra/test/bd_dijkstra-any-04.test.sql
+++ /dev/null
@@ -1,23 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-select (r).seq, (r).id1, (r).id2, round((r).cost::numeric, 6) from ( select pgr_bddijkstra('select * from bdd_ways'::text, 3606, 9426, true, true) as r ) as foo;
diff --git a/src/bd_dijkstra/test/bd_dijkstra-any-05.result b/src/bd_dijkstra/test/bd_dijkstra-any-05.result
deleted file mode 100644
index c092c44..0000000
--- a/src/bd_dijkstra/test/bd_dijkstra-any-05.result
+++ /dev/null
@@ -1,102 +0,0 @@
-NOTICE:  Deprecated Signature of pgr_bdDijkstra
-0|6733|15058|0.044674
-1|9313|15059|0.047811
-2|7101|15060|0.049014
-3|8880|12897|0.170300
-4|5463|6271|0.046800
-5|5462|6270|0.053766
-6|5461|6269|0.104952
-7|5460|6268|0.109859
-8|5459|6267|0.053860
-9|5458|6266|0.055134
-10|5457|16647|0.012368
-11|9969|16650|0.012230
-12|9968|16649|0.081206
-13|9960|16626|0.007036
-14|9938|16621|0.014614
-15|9956|16642|0.029056
-16|9967|19287|0.111281
-17|10468|19288|0.066230
-18|10469|19289|0.065769
-19|10470|19290|0.117748
-20|8767|12598|0.059630
-21|8768|19389|0.016974
-22|10462|19388|0.081956
-23|5805|19387|0.052414
-24|10455|19386|0.052378
-25|7579|19385|0.052864
-26|10459|19384|0.047276
-27|10485|19383|0.005429
-28|5962|19382|0.006171
-29|10484|19381|0.098919
-30|3002|19380|0.108243
-31|4397|19379|0.102702
-32|9194|19378|0.009782
-33|10482|19377|0.096140
-34|10174|19376|0.107643
-35|8634|19375|0.102428
-36|9595|19374|0.106794
-37|8509|19360|0.051709
-38|9948|19359|0.051651
-39|10479|19358|0.059093
-40|9949|19357|0.047698
-41|3170|11899|0.018103
-42|8468|15487|0.034042
-43|9624|16983|0.022924
-44|8467|16982|0.022635
-45|10046|16981|0.045667
-46|8583|15477|0.113487
-47|8311|15478|0.019312
-48|2808|15479|0.209882
-49|9621|15480|0.016198
-50|8522|15481|0.180992
-51|8465|11894|0.046805
-52|8457|11882|0.101185
-53|1807|11883|0.064572
-54|8456|11880|0.048821
-55|8455|11878|0.083250
-56|8452|11871|0.118857
-57|8450|11867|0.005677
-58|529|11868|0.196533
-59|476|11869|0.006925
-60|8451|13167|0.070884
-61|8985|13148|0.014323
-62|8986|13149|0.069498
-63|8496|13150|0.120005
-64|398|13151|0.057786
-65|8987|13152|0.099744
-66|637|13153|0.083288
-67|6436|13154|0.057101
-68|21|13155|0.079185
-69|8988|13156|0.006317
-70|8989|13157|0.118340
-71|1285|13158|0.071931
-72|2962|13159|0.018649
-73|8991|13160|0.187353
-74|8992|13161|0.099016
-75|8351|13162|0.009638
-76|8993|13163|0.069895
-77|8976|13164|0.008029
-78|8977|13165|0.012931
-79|8994|13827|0.010639
-80|9205|13828|0.117213
-81|8304|13829|0.032840
-82|6774|13830|0.196045
-83|3753|13831|0.009169
-84|8325|12990|0.013157
-85|8908|20794|0.013276
-86|10948|20835|0.071114
-87|10929|20778|0.006447
-88|8910|20779|0.008539
-89|10944|20833|0.177477
-90|10951|20811|0.004532
-91|7034|20812|0.005045
-92|10952|20841|0.187594
-93|10940|20771|0.007463
-94|3415|20772|0.005720
-95|10941|20776|0.040800
-96|10943|20796|0.002581
-97|7661|20797|0.002564
-98|10931|20756|0.040876
-99|10932|20787|0.006774
-100|5700|-1|0.000000
diff --git a/src/bd_dijkstra/test/bd_dijkstra-any-05.test.sql b/src/bd_dijkstra/test/bd_dijkstra-any-05.test.sql
deleted file mode 100644
index 85104bb..0000000
--- a/src/bd_dijkstra/test/bd_dijkstra-any-05.test.sql
+++ /dev/null
@@ -1,23 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-select (r).seq, (r).id1, (r).id2, round((r).cost::numeric, 6) from ( select pgr_bddijkstra('select * from bdd_ways'::text, 6733, 5700, true, true) as r ) as foo;
diff --git a/src/bd_dijkstra/test/bd_dijkstra-any-06.result b/src/bd_dijkstra/test/bd_dijkstra-any-06.result
deleted file mode 100644
index 771d25b..0000000
--- a/src/bd_dijkstra/test/bd_dijkstra-any-06.result
+++ /dev/null
@@ -1,61 +0,0 @@
-NOTICE:  Deprecated Signature of pgr_bdDijkstra
-0|8247|20185|0.055053
-1|10705|20189|0.060217
-2|10139|17560|0.469613
-3|8140|17559|0.201703
-4|6943|17558|0.064893
-5|10138|17565|0.057338
-6|8539|17566|0.135370
-7|10140|19343|0.064475
-8|10142|19344|0.015153
-9|10475|19345|0.053510
-10|7137|9046|0.043099
-11|7136|9045|0.583394
-12|6167|9044|0.145396
-13|4276|9043|0.121251
-14|7135|9042|0.268754
-15|2317|9041|0.145996
-16|4280|9040|0.587619
-17|2043|9039|0.341756
-18|2563|2743|0.102019
-19|2698|17807|0.471312
-20|998|17789|0.064158
-21|8512|17790|0.069816
-22|3305|17791|0.036248
-23|8508|17792|0.109483
-24|6179|17793|0.062258
-25|8402|17794|0.087467
-26|10178|17795|0.007150
-27|10179|17796|0.114755
-28|9318|17797|0.027637
-29|9592|17798|0.076558
-30|10180|17799|0.072658
-31|8536|17800|0.029389
-32|8859|17801|0.045079
-33|9953|17802|0.075825
-34|10171|17803|0.069119
-35|8417|17804|0.015429
-36|7892|17805|0.063931
-37|9203|16876|0.147691
-38|4390|20655|0.075280
-39|9954|20656|0.080500
-40|10883|20657|0.009212
-41|10884|20658|0.048701
-42|8289|20659|0.087952
-43|5957|20660|0.002769
-44|6482|20661|0.120390
-45|5774|20662|0.023243
-46|4620|20663|0.169650
-47|5809|6764|0.050569
-48|5808|6763|0.097186
-49|5807|6762|0.146807
-50|5806|6761|0.145097
-51|5805|6760|0.008679
-52|5804|6759|0.065176
-53|5803|6758|0.013489
-54|5802|17979|0.173776
-55|10025|17978|0.175712
-56|613|17977|0.178581
-57|7125|17976|0.155428
-58|5367|17975|0.200230
-59|6585|-1|0.000000
diff --git a/src/bd_dijkstra/test/bd_dijkstra-any-06.test.sql b/src/bd_dijkstra/test/bd_dijkstra-any-06.test.sql
deleted file mode 100644
index eb4bc4c..0000000
--- a/src/bd_dijkstra/test/bd_dijkstra-any-06.test.sql
+++ /dev/null
@@ -1,23 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-select (r).seq, (r).id1, (r).id2, round((r).cost::numeric, 6) from ( select pgr_bddijkstra('select * from bdd_ways'::text, 8247, 6585, true, true) as r ) as foo;
diff --git a/src/bd_dijkstra/test/doc-bdDijkstra.result b/src/bd_dijkstra/test/doc-bdDijkstra.result
deleted file mode 100644
index fbfb422..0000000
--- a/src/bd_dijkstra/test/doc-bdDijkstra.result
+++ /dev/null
@@ -1,15 +0,0 @@
---q1
-NOTICE:  Deprecated Signature of pgr_bdDijkstra
-0|2|4|1
-1|5|8|1
-2|6|5|1
-3|3|-1|0
---q2
-NOTICE:  Deprecated Signature of pgr_bdDijkstra
-0|2|4|1
-1|5|8|1
-2|6|9|1
-3|9|16|1
-4|4|3|1
-5|3|-1|0
---q3
diff --git a/src/bd_dijkstra/test/doc-bdDijkstra.test.sql b/src/bd_dijkstra/test/doc-bdDijkstra.test.sql
deleted file mode 100644
index 150a83f..0000000
--- a/src/bd_dijkstra/test/doc-bdDijkstra.test.sql
+++ /dev/null
@@ -1,15 +0,0 @@
-------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
---              PGR_bdDijkstra
-------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
-
-\echo --q1
-SELECT * FROM pgr_bdDijkstra(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost FROM edge_table',
-    2, 3, false, false);
-\echo --q2
-SELECT * FROM pgr_bdDijkstra(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
-    2, 3, true, true);
-\echo --q3
diff --git a/src/bd_dijkstra/test/test.conf b/src/bd_dijkstra/test/test.conf
deleted file mode 100644
index 030969d..0000000
--- a/src/bd_dijkstra/test/test.conf
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/usr/bin/perl -w
-
-%main::tests = (
-    'any' => {
-        'comment' => 'Bi-directional Dijkstra test for any versions.',
-        'data' => ['bd_dijkstra-any-00.data'],
-        'tests' => [qw(
-            doc-bdDijkstra
-            bd_dijkstra-any-01
-            bd_dijkstra-any-02
-            bd_dijkstra-any-03
-            bd_dijkstra-any-04
-            bd_dijkstra-any-05
-            bd_dijkstra-any-06)],
-        'documentation' => [qw(
-            doc-bdDijkstra
-            )]
-        },
-#    'vpg-vpgis' => {}, # for version specific tests
-#    '8-1' => {},       # for pg 8.x and postgis 1.x
-#    '9.2-2.1' => {},   # for pg 9.2 and postgis 2.1
-);
-
-1;
diff --git a/src/common/doc/CMakeLists.txt b/src/common/doc/CMakeLists.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/src/common/doc/cost_result.rst b/src/common/doc/cost_result.rst
deleted file mode 100644
index c5f7950..0000000
--- a/src/common/doc/cost_result.rst
+++ /dev/null
@@ -1,87 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _type_cost_result:
-
-pgr_costResult[]
-===============================================================================
-
-.. index::
-    single: pgr_costResult[]
-
-Name
--------------------------------------------------------------------------------
-
-``pgr_costResult[]`` — A set of records to describe a path result with cost attribute.
-
-
-Description
--------------------------------------------------------------------------------
-
-.. code-block:: sql
-
-    CREATE TYPE pgr_costResult AS
-    (
-        seq integer,
-        id1 integer,
-        id2 integer,
-        cost float8
-    );
-
-:seq:   sequential ID indicating the path order
-:id1:   generic name, to be specified by the function, typically the node id
-:id2:   generic name, to be specified by the function, typically the edge id
-:cost:  cost attribute
-
-
-.. _type_cost_result3:
-
-pgr_costResult3[] - Multiple Path Results with Cost
-===============================================================================
-
-.. index::
-    single: pgr_costResult3[]
-
-Name
--------------------------------------------------------------------------------
-
-``pgr_costResult3[]`` — A set of records to describe a path result with cost attribute.
-
-
-Description
--------------------------------------------------------------------------------
-
-.. code-block:: sql
-
-    CREATE TYPE pgr_costResult3 AS
-    (
-        seq integer,
-        id1 integer,
-        id2 integer,
-        id3 integer,
-        cost float8
-    );
-
-:seq:   sequential ID indicating the path order
-:id1:   generic name, to be specified by the function, typically the path id
-:id2:   generic name, to be specified by the function, typically the node id
-:id3:   generic name, to be specified by the function, typically the edge id
-:cost:  cost attribute
-
-
-.. rubric:: History
-
-* New in version 2.0.0
-* Replaces ``path_result``
-
-
-See Also
--------------------------------------------------------------------------------
-
-* :ref:`introduction`
diff --git a/src/common/doc/geom_result.rst b/src/common/doc/geom_result.rst
deleted file mode 100644
index bc9e522..0000000
--- a/src/common/doc/geom_result.rst
+++ /dev/null
@@ -1,53 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _type_geom_result:
-
-pgr_geomResult[]
-===============================================================================
-
-.. index::
-	single: pgr_geomResult[]
-
-Name
--------------------------------------------------------------------------------
-
-``pgr_geomResult[]`` — A set of records to describe a path result with geometry attribute.
-
-
-Description
--------------------------------------------------------------------------------
-
-.. code-block:: sql
-
-    CREATE TYPE pgr_geomResult AS
-    (
-        seq integer,
-        id1 integer,
-        id2 integer,
-        geom geometry
-    );
-
-:seq:   sequential ID indicating the path order
-:id1:   generic name, to be specified by the function
-:id2:   generic name, to be specified by the function
-:geom:  geometry attribute
-
-
-.. rubric:: History
-
-* New in version 2.0.0
-* Replaces ``geoms``
-
-
-See Also
--------------------------------------------------------------------------------
-
-* :ref:`introduction`
-
diff --git a/src/common/doc/pgr_version.rst b/src/common/doc/pgr_version.rst
deleted file mode 100644
index 49352af..0000000
--- a/src/common/doc/pgr_version.rst
+++ /dev/null
@@ -1,78 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_version:
-
-pgr_version
-===============================================================================
-
-.. index::
-	single: version()
-
-Name
--------------------------------------------------------------------------------
-
-``pgr_version`` — Query for pgRouting version information.
-
-
-Synopsis
--------------------------------------------------------------------------------
-
-Returns a table with pgRouting version information.
-
-.. code-block:: sql
-
-	table() pgr_version();
-
-
-Description
--------------------------------------------------------------------------------
-
-Returns a table with:
-
-:version: ``varchar`` pgRouting version
-:tag: ``varchar`` Git tag of pgRouting build
-:hash: ``varchar`` Git hash of pgRouting build
-:branch: ``varchar`` Git branch of pgRouting build
-:boost: ``varchar`` Boost version
-
-
-.. rubric:: History
-
-* New in version 2.0.0
-
-
-Examples
--------------------------------------------------------------------------------
-
-* Query for full version string
-
-.. code-block:: sql
-
-    SELECT pgr_version();
-
-                      pgr_version
-    -----------------------------------------------
-     (2.2.0,pgrouting-2.2.0,9fd33c5,master,1.54.0)
-    (1 row)
-
-
-
-* Query for ``version`` and ``boost`` attribute
-
-.. code-block:: sql
-
-    SELECT version, boost FROM pgr_version();
-
-      version  | boost
-    -----------+--------
-     2.2.0-dev | 1.49.0
-    (1 row)
-
-
diff --git a/src/common/doc/types_index.rst b/src/common/doc/types_index.rst
deleted file mode 100644
index 8cbd943..0000000
--- a/src/common/doc/types_index.rst
+++ /dev/null
@@ -1,27 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _data_types:
-
-pgRouting Data Types
-===============================================================================
-
-The following are commonly used data types for some of the pgRouting functions.
-
-  -  :ref:`type_cost_result` -  A set of records to describe a path result with cost attribute.
-  -  :ref:`pgr_costResult3[] <type_cost_result3>` - A set of records to describe a path result with cost attribute.
-  -  :ref:`pgr_geomResult <type_geom_result>` - A set of records to describe a path result with geometry attribute.
-
-
-
-.. toctree::
-   :hidden:
-
-	pgr_costResult[] - Path Result with Cost <cost_result>
-	pgr_geomResult[] - Path Result with Geometry  <geom_result>
diff --git a/src/common/sql/CMakeLists.txt b/src/common/sql/CMakeLists.txt
deleted file mode 100644
index 9219504..0000000
--- a/src/common/sql/CMakeLists.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-# Append in local scope
-LIST(APPEND PACKAGE_SQL_FILES
-    ${CMAKE_CURRENT_SOURCE_DIR}/pgRouting-header.sql
-    ${CMAKE_CURRENT_SOURCE_DIR}/pgrouting-types.sql
-    ${CMAKE_CURRENT_SOURCE_DIR}/pgrouting_version.sql
-    ${CMAKE_CURRENT_SOURCE_DIR}/pgrouting_utilities.sql
-    ${CMAKE_CURRENT_SOURCE_DIR}/pgr_parameter_check.sql
-    ${CMAKE_CURRENT_SOURCE_DIR}/utilities_pgr.sql
-    ${CMAKE_CURRENT_SOURCE_DIR}/noUnderUtilities.sql
-    ${CMAKE_CURRENT_SOURCE_DIR}/createIndex.sql
-    #${CMAKE_CURRENT_SOURCE_DIR}/findClosestEdge.sql
-    ${CMAKE_CURRENT_SOURCE_DIR}/_point_toId.sql
-    
-)
-
-# set in parent scope
-SET(PACKAGE_SQL_FILES "${PACKAGE_SQL_FILES}" PARENT_SCOPE)
diff --git a/src/common/sql/_point_toId.sql b/src/common/sql/_point_toId.sql
deleted file mode 100644
index a5e9f90..0000000
--- a/src/common/sql/_point_toId.sql
+++ /dev/null
@@ -1,81 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Author: Stephen Woodbridge <woodbri at imaptools.com>
-Author: Vicky Vergara <vicky_vergara at hotmail,com>
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-/*
-.. function:: _pgr_pointToId(point geometry, tolerance double precision,vname text,srid integer)
-Using tolerance to determine if its an existing point:
-    - Inserts a point into the vertices table "vertname" with the srid "srid", 
-and returns
-    - the id of the new point
-    - the id of the existing point.
-   
-Tolerance is the minimal distance between existing points and the new point to create a new point.
-
-Last changes: 2013-03-22
-
-HISTORY
-Last changes: 2013-03-22
-2013-08-19: handling schemas
-*/
-
-CREATE OR REPLACE FUNCTION _pgr_pointToId(
-    point geometry, 
-    tolerance double precision,
-    vertname text,
-    srid integer)
-
-  RETURNS bigint AS
-$BODY$
-DECLARE
-    rec record;
-    pid bigint;
-
-BEGIN
-    EXECUTE 'SELECT ST_Distance(
-        the_geom,
-        ST_GeomFromText(ST_AsText('
-                || quote_literal(point::text)
-                || '),'
-            || srid ||')) AS d, id, the_geom
-    FROM '||_pgr_quote_ident(vertname)||'
-    WHERE ST_DWithin(
-        the_geom, 
-        ST_GeomFromText(
-            ST_AsText(' || quote_literal(point::text) ||'),
-            ' || srid || '),' || tolerance||')
-    ORDER BY d
-    LIMIT 1' INTO rec ;
-    IF rec.id IS NOT NULL THEN
-        pid := rec.id;
-    ELSE
-        execute 'INSERT INTO '||_pgr_quote_ident(vertname)||' (the_geom) VALUES ('||quote_literal(point::text)||')';
-        pid := lastval();
-END IF;
-
-RETURN pid;
-
-END;
-$BODY$
-LANGUAGE plpgsql VOLATILE STRICT;
-
diff --git a/src/common/sql/createIndex.sql b/src/common/sql/createIndex.sql
deleted file mode 100644
index 96efa7a..0000000
--- a/src/common/sql/createIndex.sql
+++ /dev/null
@@ -1,115 +0,0 @@
-/*PGR-GNU*****************************************************************
-
- FILE: createIndex.sql
-
- Copyright (c) 2014 Celia Virginia Vergara Castillo
- vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-
-
-/************************************************************************
-.. function:: _pgr_createIndex(tab, col,indextype)
-              _pgr_createIndex(sname,tname,colname,indextypes)
-              
-   if the column is not indexed it creates a 'gist' index otherwise a 'btree' index
-   Examples:  
-	* 	 select  _pgr_createIndex('tab','col','btree');
-	* 	 select  _pgr_createIndex('myschema','mytable','col','gist');
-	* 	 perform 'select _pgr_createIndex('||quote_literal('tab')||','||quote_literal('col')||','||quote_literal('btree'))' ;
-	* 	 perform 'select _pgr_createIndex('||quote_literal('myschema')||','||quote_literal('mytable')||','||quote_literal('col')||','||quote_literal('gist')')' ;
-   Precondition:
-      sname.tname.colname is a valid column on table tname in schema sname
-      indext  is the indexType btree or gist
-   Postcondition:
-      sname.tname.colname its indexed using the indextype
-
-  
-   Author: Vicky Vergara <vicky_vergara at hotmail.com>>
-
-  HISTORY
-     Created: 2014/JUL/28 
-************************************************************************/
-
-CREATE OR REPLACE FUNCTION _pgr_createIndex(
-    sname text, tname text, colname text, indext text,
-    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
-RETURNS void AS
-$BODY$
-DECLARE
-    debuglevel text;
-    naming record;
-    tabname text;
-    query text;
-    msgKind int;
-BEGIN
-  msgKind = 0; -- debug_
-
-  execute 'show client_min_messages' into debuglevel;
-  tabname=_pgr_quote_ident(sname||'.'||tname);
-  perform _pgr_msg(msgKind, fnName, 'Checking ' || colname || ' column in ' || tabname || ' is indexed');
-    IF (_pgr_isColumnIndexed(sname,tname,colname, 0, fnName)) then
-       perform _pgr_msg(msgKind, fnName);
-    else
-      if indext = 'gist' then
-        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||' 
-                         on '||tabname||' using gist('||quote_ident(colname)||')';
-      else
-        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||' 
-                         on '||tabname||' using btree('||quote_ident(colname)||')';
-      end if;
-      perform _pgr_msg(msgKind, fnName, 'Adding index ' || tabname || '_' ||  colname || '_idx');
-      perform _pgr_msg(msgKind, fnName, ' Using ' ||  query);
-      set client_min_messages  to warning;
-      BEGIN
-        execute query;
-        EXCEPTION WHEN others THEN
-          perform _pgr_onError( true, reportErrs, fnName,
-            'Could not create index on:' || colname, SQLERRM);
-      END;
-      execute 'set client_min_messages  to '|| debuglevel;
-      perform _pgr_msg(msgKind, fnName);
-    END IF;
-END;
-
-$BODY$
-  LANGUAGE plpgsql VOLATILE STRICT;
-
-
-CREATE OR REPLACE FUNCTION _pgr_createIndex(tabname text, colname text, indext text,
-    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
-RETURNS void AS
-$BODY$
-DECLARE
-    naming record;
-    sname text;
-    tname text;
-
-BEGIN
-    select * from _pgr_getTableName(tabname, 2, fnName)  into naming;
-    sname=naming.sname;
-    tname=naming.tname;
-    execute _pgr_createIndex(sname, tname, colname, indext, reportErrs, fnName);
-END;
-
-$BODY$
-  LANGUAGE plpgsql VOLATILE STRICT;
-
-
diff --git a/src/common/sql/findClosestEdge.sql b/src/common/sql/findClosestEdge.sql
deleted file mode 100644
index 29829eb..0000000
--- a/src/common/sql/findClosestEdge.sql
+++ /dev/null
@@ -1,100 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-/*
- *  pgr_findClosestEdge(edges_sql text, pnt geometry, tol float8)
- *
- *  Given and table of edges with a spatial index on the_geom
- *  and a point geometry search for the closest edge within tol distance to the edges
- *  then compute the projection of the point onto the line segment and select source or target
- *  based on whether the projected point is closer to the respective end and return source or target.
- *  If no edge is within tol distance then return -1
-  IF az > pi()/2 AND az < pi() OR az > 3 * pi()/2 THEN - then to the right
-*/
-
-CREATE OR REPLACE FUNCTION pgr_findClosestEdge(
-    edges_sql text,
-    point_geom geometry,
-    tolerance float8,
-
-    OUT edge_id BIGINT,
-    OUT fraction FLOAT,
-    OUT side CHAR)
-    returns SETOF RECORD AS
-$body$
-DECLARE
-    safe_sql text;
-    sql text;
-    rec RECORD;
-BEGIN
-
-    IF (tolerance < 0 ) THEN
-        RAISE EXCEPTION 'Invalid value for tolerance';
-    END IF;
-
-    safe_sql =  'SELECT * from ('|| edges_sql ||' ) AS __a__';
-
-    BEGIN
-        EXECUTE safe_sql || ' LIMIT 1' into rec;
-        EXCEPTION WHEN OTHERS THEN
-            RAISE EXCEPTION 'Could not execute query please verify syntax of: '
-            USING HINT = edges_sql;
-    END;
-
-    BEGIN
-        EXECUTE 'SELECT id, the_geom  from ('||safe_sql||') as __b__' into rec;
-        EXCEPTION
-            WHEN OTHERS THEN
-                RAISE EXCEPTION 'An expected column was not found in the query'
-                  USING HINT = 'Please veryfy the column names: id, the_geom';
-    END;
-
-    sql =' 
-    WITH
-    safesql AS (' || safe_sql || '),
-    close_ones AS
-    (SELECT id, the_geom AS line,
-        ST_Distance(the_geom,' || quote_literal(point_geom::TEXT) ||'::geometry ) AS distance,
-        ST_ClosestPoint(the_geom,' || quote_literal(point_geom::TEXT) || '::geometry) AS blade
-        FROM  safesql
-        WHERE ST_DWithin(the_geom,' || quote_literal(point_geom::TEXT) ||'::geometry, ' || tolerance || ')),
-    closest_ones AS
-    (SELECT min(distance) min_dist FROM close_ones),
-    third_q AS
-    (SELECT DISTINCT(id) id, distance, line, blade FROM close_ones WHERE distance = (select min_dist from closest_ones) ORDER BY id LIMIT 1),
-    dump_values AS
-    (SELECT id, 
-        (ST_length(ST_GeometryN(st_split(line, blade),1))/ST_length(line))::FLOAT AS fraction,
-        (line << ' || quote_literal(point_geom::TEXT) || '::geometry) as rightSide
-        FROM third_q)
-    SELECT id::BIGINT,
-           fraction::FLOAT,
-           (CASE WHEN rightSide THEN ''r'' ELSE ''l'' END)::char FROM dump_values';
-
-    RETURN query EXECUTE sql;
-
-END;
-$body$
-  language plpgsql volatile
-  cost 5;
-
diff --git a/src/common/sql/noUnderUtilities.sql b/src/common/sql/noUnderUtilities.sql
deleted file mode 100644
index e3df719..0000000
--- a/src/common/sql/noUnderUtilities.sql
+++ /dev/null
@@ -1,111 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-FILE: noUnderUtilities.sql
-
-Copyright (c) 2015 Celia Vriginia Vergara Castillo
-Mail: vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-
-CREATE OR REPLACE FUNCTION pgr_getTableName(IN tab text,OUT sname text,OUT tname text)
-RETURNS RECORD AS
-$BODY$ 
-BEGIN
-    raise notice 'pgr_getTableName: This function will no longer be soported';
-    select * from _pgr_getTableName(tab, 0, 'pgr_getTableName') into sname,tname;
-END;
-$BODY$
-LANGUAGE plpgsql VOLATILE STRICT;
-
-CREATE OR REPLACE FUNCTION pgr_getColumnName(tab text, col text)
-RETURNS text AS
-$BODY$
-BEGIN
-    raise notice 'pgr_getColumnName: This function will no longer be soported';
-    return _pgr_getColumnName(tab,col, 0, 'pgr_getColumnName');
-END;
-$BODY$
-LANGUAGE plpgsql VOLATILE STRICT;
-
-CREATE OR REPLACE FUNCTION pgr_isColumnInTable(tab text, col text)
-RETURNS boolean AS
-$BODY$
-DECLARE
-    cname text;
-BEGIN
-    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
-    select * from _pgr_getColumnName(tab,col,0, 'pgr_isColumnInTable') into cname;
-    return  cname IS not NULL;
-END;
-$BODY$
-  LANGUAGE plpgsql VOLATILE STRICT;
-
-CREATE OR REPLACE FUNCTION pgr_isColumnIndexed(tab text, col text)
-RETURNS boolean AS
-$BODY$
-BEGIN
-    raise notice 'pgr_isColumnIndexed: This function will no longer be soported';
-    return  _pgr_isColumnIndexed(tab,col);
-END;
-$BODY$
-LANGUAGE plpgsql VOLATILE STRICT;
-
-
-create or replace function pgr_quote_ident(idname text)
-returns text as
-$BODY$
-BEGIN
-    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
-    return  _pgr_quote_ident(idname);
-END;
-$BODY$
-LANGUAGE plpgsql VOLATILE STRICT;
-
-CREATE OR REPLACE FUNCTION pgr_versionless(v1 text, v2 text)
-RETURNS boolean AS
-$BODY$
-BEGIN
-    raise notice 'pgr_versionless: This function will no longer be soported';
-    return  _pgr_versionless(v1,v2);
-END;
-$BODY$
-LANGUAGE plpgsql VOLATILE STRICT;
-
-create or replace function pgr_startPoint(g geometry)
-    returns geometry as
-$body$
-BEGIN
-    raise notice 'pgr_startPoint: This function will no longer be soported';
-    return  _pgr_startPoint(g);
-END;
-$body$
-language plpgsql IMMUTABLE;
-
-
-
-create or replace function pgr_endPoint(g geometry)
-    returns geometry as
-$body$
-BEGIN
-    raise notice 'pgr_endPoint: This function will no longer be soported';
-    return  _pgr_endPoint(g);
-END;
-$body$
-language plpgsql IMMUTABLE;
diff --git a/src/common/sql/pgRouting-header.sql b/src/common/sql/pgRouting-header.sql
deleted file mode 100644
index 218fb7b..0000000
--- a/src/common/sql/pgRouting-header.sql
+++ /dev/null
@@ -1,37 +0,0 @@
-\echo Use "CREATE EXTENSION pgrouting" to load this file. \quit
-
-
-
-
---- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
----
---- pgRouting provides geospatial routing functionality.
---- http://pgrouting.org
---- copyright 
---- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
----
----
---- This is free software; you can redistribute and/or modify it:
---- the terms of the GNU General Public Licence. See the COPYING file.
---- the terms of the MIT-X Licence. See the COPYING file.
----
---- The following functions have MIT-X licence:
----     pgr_version()
----     pgr_tsp(matrix float8[][], startpt integer, endpt integer DEFAULT -1, OUT seq integer, OUT id integer)
----     _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
----     pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
----
----
---- All other functions are under GNU General Public Licence.
----
---- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
---
--- WARNING: Any change in this file must be evaluated for compatibility.
---          Changes cleanly handled by postgis_upgrade.sql are fine,
---          other changes will require a bump in Major version.
---          Currently only function replaceble by CREATE OR REPLACE
---          are cleanly handled.
---
--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
diff --git a/src/common/sql/pgr_parameter_check.sql b/src/common/sql/pgr_parameter_check.sql
deleted file mode 100644
index 0c88312..0000000
--- a/src/common/sql/pgr_parameter_check.sql
+++ /dev/null
@@ -1,162 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-File: pgr_parameter_check.sql
-
-Copyright (c) 2014 Celia Virginia Vergara Castillo
-Mail: vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-
------------------------------------------------------------------------
--- Function _pgr_parameter_check
--- Check's the parameters type of the sql input
------------------------------------------------------------------------
-
--- change the default to true when all the functions will use the bigint
--- put TRUE when it uses BGINT
--- Query styles:
--- dijkstra (id, source, target, cost, [reverse_cost])
--- johnson (source, target, cost, [reverse_cost])
-
-CREATE OR REPLACE FUNCTION _pgr_parameter_check(fn text, sql text, big boolean default false)
-  RETURNS bool AS
-  $BODY$  
-
-  DECLARE
-  rec record;
-  rec1 record;
-  has_rcost boolean;
-  safesql text;
-  BEGIN 
-    IF (big) THEN
-       RAISE EXCEPTION 'This function is for old style functions';
-    END IF;
-
-    -- checking query is executable
-    BEGIN
-      safesql =  'select * from ('||sql||' ) AS __a__ limit 1';
-      execute safesql into rec;
-      EXCEPTION
-        WHEN OTHERS THEN
-            RAISE EXCEPTION 'Could not execute query please verify syntax of: '
-              USING HINT = sql;
-    END;
-
-    -- checking the fixed columns and data types of the integers
-    IF fn IN ('dijkstra','astar') THEN
-        BEGIN
-          execute 'select id,source,target,cost  from ('||safesql||') as __b__' into rec;
-          EXCEPTION
-            WHEN OTHERS THEN
-                RAISE EXCEPTION 'An expected column was not found in the query'
-                  USING ERRCODE = 'XX000',
-                   HINT = 'Please veryfy the column names: id, source, target, cost';
-        END;
-        execute 'select pg_typeof(id)::text as id_type, pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
-            || ' from ('||safesql||') AS __b__ ' into rec;
-        -- Version 2.0.0 is more restrictive
-        IF NOT(   (rec.id_type in ('integer'::text))
-              AND (rec.source_type in ('integer'::text))
-              AND (rec.target_type in ('integer'::text))
-              AND (rec.cost_type = 'double precision'::text)) THEN
-            RAISE EXCEPTION 'Error, columns ''source'', ''target'' must be of type int4, ''cost'' must be of type float8'
-            USING ERRCODE = 'XX000';
-        END IF;
-    END IF;
- 
-
-    IF fn IN ('astar') THEN
-        BEGIN
-          execute 'select x1,y1,x2,y2  from ('||safesql||') as __b__' into rec;
-          EXCEPTION
-            WHEN OTHERS THEN
-                RAISE EXCEPTION 'An expected column was not found in the query'
-                  USING ERRCODE = 'XX000',
-                   HINT = 'Please veryfy the column names: x1,y1, x2,y2';
-        END;
-        execute 'select pg_typeof(x1)::text as x1_type, pg_typeof(y1)::text as y1_type, pg_typeof(x2)::text as x2_type, pg_typeof(y2)::text as y2_type'
-            || ' from ('||safesql||') AS __b__ ' into rec;
-        -- Version 2.0.0 is more restrictive
-        IF NOT(   (rec.x1_type = 'double precision'::text)
-              AND (rec.y1_type = 'double precision'::text)
-              AND (rec.x2_type = 'double precision'::text)
-              AND (rec.y2_type = 'double precision'::text)) THEN
-            RAISE EXCEPTION 'Columns: x1, y1, x2, y2 must be of type float8'
-            USING ERRCODE = 'XX000';
-        END IF;
-    END IF;
-
-    -- checking the fixed columns and data types of the integers
-    IF fn IN ('johnson') THEN
-        BEGIN
-          execute 'select source,target,cost  from ('||safesql||') as __b__' into rec;
-          EXCEPTION
-            WHEN OTHERS THEN
-                RAISE EXCEPTION 'An expected column was not found in the query'
-                  USING HINT = 'Please veryfy the column names: id, source, target, cost',
-                         ERRCODE = 'XX000';
-        END;
-
-        execute 'select pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
-            || ' from ('||safesql||') AS __b__ ' into rec;
-        -- Version 2.0.0 is more restrictive
-        IF NOT(   (rec.source_type in ('integer'::text))
-              AND (rec.target_type in ('integer'::text))
-              AND (rec.cost_type = 'double precision'::text)) THEN
-            RAISE EXCEPTION 'Support for source,target columns only of type: integer. Support for Cost: double precision'
-            USING ERRCODE = 'XX000';
-        END IF;
-    END IF;
-
-
-    -- Checking the data types of the optional reverse_cost";
-    has_rcost := false;
-    IF fn IN ('johnson','dijkstra','astar') THEN
-      BEGIN
-        execute 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||safesql||' ) AS __b__ limit 1 ' into rec1;
-        has_rcost := true;
-        EXCEPTION
-          WHEN OTHERS THEN
-            has_rcost = false;
-            return has_rcost;  
-      END;
-      if (has_rcost) then
-        IF (big) then
-           IF  not (rec1.rev_type in ('bigint'::text, 'integer'::text, 'smallint'::text, 'double precision'::text, 'real'::text)) then
-             RAISE EXCEPTION 'Illegar type in optional parameter reverse_cost.'
-             USING ERRCODE = 'XX000';
-           END IF;
-        ELSE -- Version 2.0.0 is more restrictive
-           IF (rec1.rev_type != 'double precision') then
-             RAISE EXCEPTION 'Illegal type in optional parameter reverse_cost, must be of type float8'
-             USING ERRCODE = 'XX000';
-           END IF;
-        END IF;
-      end if;
-      return true;
-    END IF;
-    -- just for keeps
-    return true;
-  END
-  $BODY$
-  LANGUAGE plpgsql VOLATILE
-  COST 1;
-
-
diff --git a/src/common/sql/pgrouting-types.sql b/src/common/sql/pgrouting-types.sql
deleted file mode 100644
index ac63ecf..0000000
--- a/src/common/sql/pgrouting-types.sql
+++ /dev/null
@@ -1,54 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
---  pgRouting 2.0 types
-
-
-
-CREATE TYPE pgr_costResult AS
-(
-    seq integer,
-    id1 integer,
-    id2 integer,
-    cost float8
-);
-
-
-
-CREATE TYPE pgr_costResult3 AS
-(
-    seq integer,
-    id1 integer,
-    id2 integer,
-    id3 integer,
-    cost float8
-);
-
-CREATE TYPE pgr_geomResult AS
-(
-    seq integer,
-    id1 integer,
-    id2 integer,
-    geom geometry
-);
-
diff --git a/src/common/sql/pgrouting_utilities.sql b/src/common/sql/pgrouting_utilities.sql
deleted file mode 100644
index ae778c9..0000000
--- a/src/common/sql/pgrouting_utilities.sql
+++ /dev/null
@@ -1,471 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-FILE: pgrouting_utilities.sql
-
-Copyright (c) 2015 Celia Vriginia Vergara Castillo
-Copyright (c) 2015 REgina Obe
-Mail: vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-
-
-/*
-.. function:: _pgr_getTableName(tab)
-
-   Examples:
-        *          select * from  _pgr_getTableName('tab');
-        *        naming record;
-                 execute 'select * from  _pgr_getTableName('||quote_literal(tab)||')' INTO naming;
-                 schema=naming.sname; table=naming.tname
-
-
-   Returns (schema,name) of table "tab" considers Caps and when not found considers lowercases
-           (schema,NULL) when table was not found
-           (NULL,NULL) when schema was not found.
-
-   Author: Vicky Vergara <vicky_vergara at hotmail.com>>
-  
-  HISTORY
-     2015/11/01 Changed to handle views and refactored
-     Created: 2013/08/19  for handling schemas
-
-*/
-
-
-CREATE OR REPLACE FUNCTION _pgr_getTableName(IN tab text, IN reportErrs int default 0, IN fnName text default '_pgr_getTableName', OUT sname text,OUT tname text)
-  RETURNS RECORD AS
-$$
-DECLARE
-        naming record;
-        i integer;
-        query text;
-        sn text; -- schema name
-        tn text; -- table name
-        ttype text; --table type for future use
-        err boolean;
-        debuglevel text;
-        var_types text[] = ARRAY['BASE TABLE', 'VIEW'];
-BEGIN
-
-    execute 'show client_min_messages' into debuglevel;
-
-
-    perform _pgr_msg( 0, fnName, 'Checking table ' || tab || ' exists');
-    --RAISE DEBUG 'Checking % exists',tab;
-
-    i := strpos(tab,'.');
-    IF (i <> 0) THEN
-        sn := split_part(tab, '.',1); 
-        tn := split_part(tab, '.',2);
-    ELSE
-        sn := current_schema;
-        tn := tab;
-    END IF;
-
-
-   SELECT schema_name INTO sname 
-   FROM information_schema.schemata WHERE schema_name = sn;
-
-    IF sname IS NOT NULL THEN -- found schema (as is)
-       SELECT table_name, table_type INTO tname, ttype 
-       FROM information_schema.tables 
-       WHERE
-                table_type = ANY(var_types) and
-                table_schema = sname and
-                table_name = tn ;
-        IF tname is NULL THEN
-            SELECT table_name, table_type INTO tname, ttype 
-            FROM information_schema.tables 
-            WHERE
-                table_type  = ANY(var_types) and
-                table_schema = sname and
-                table_name = lower(tn) ORDER BY table_name;
-        END IF;
-    END IF;
-    IF sname is NULL or tname is NULL THEN --schema not found or table not found
-        SELECT schema_name INTO sname 
-        FROM information_schema.schemata 
-        WHERE schema_name = lower(sn) ;
-
-        IF sname IS NOT NULL THEN -- found schema (with lower caps)
-            SELECT table_name, table_type INTO tname, ttype 
-            FROM information_schema.tables 
-            WHERE
-                table_type  =  ANY(var_types) and
-                table_schema = sname and
-                table_name= tn ;
-                
-           IF tname IS NULL THEN
-                SELECT table_name, table_type INTO tname, ttype 
-                FROM information_schema.tables 
-                WHERE
-                    table_type  =  ANY(var_types) and
-                    table_schema = sname and
-                    table_name= lower(tn) ;
-           END IF;
-        END IF;
-    END IF;
-   err = (sname IS NULL OR tname IS NULL);
-   perform _pgr_onError(err, reportErrs, fnName, 'Table ' || tab ||' not found',' Check your table name', 'Table '|| tab || ' found');
-
-END;
-$$
-LANGUAGE plpgsql VOLATILE STRICT;
-
-
-
-/*
-.. function:: _pgr_getColumnName(sname,tname,col,reportErrs default 1) returns text
-.. function:: _pgr_getColumnName(tab,col,reportErrs default 1) returns text
-
-    Returns:
-          cname  registered column "col" in table "tab" or "sname.tname" considers Caps and when not found considers lowercases
-          NULL   when "tab"/"sname"/"tname" is not found or when "col" is not in table "tab"/"sname.tname"
-    unless otherwise indicated raises notices on errors
-
- Examples:
-        *          select  _pgr_getColumnName('tab','col');
-        *          select  _pgr_getColumnName('myschema','mytable','col');
-                 execute 'select _pgr_getColumnName('||quote_literal('tab')||','||quote_literal('col')||')' INTO column;
-                 execute 'select _pgr_getColumnName('||quote_literal(sname)||','||quote_literal(sname)||','||quote_literal('col')||')' INTO column;
-
-   Author: Vicky Vergara <vicky_vergara at hotmail.com>>
-
-  HISTORY
-     Created: 2013/08/19  for handling schemas
-     Modified: 2014/JUL/28 added overloadig
-*/
-
-
-CREATE OR REPLACE FUNCTION _pgr_getColumnName(sname text, tname text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
-RETURNS text AS
-$BODY$
-DECLARE
-    cname text;
-    naming record;
-    err boolean;
-BEGIN
-
-    execute 'SELECT column_name FROM information_schema.columns
-          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(col) into cname;
-
-    IF cname is null  THEN
-    execute 'SELECT column_name FROM information_schema.columns
-          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(lower(col))  into cname;
-    END if;
-
-    err = cname is null;
-
-    perform _pgr_onError(err, reportErrs, fnName,  'Column '|| col ||' not found', ' Check your column name','Column '|| col || ' found');
-    RETURN cname;
-END;
-$BODY$
-LANGUAGE plpgsql VOLATILE STRICT;
-
-
-
-CREATE OR REPLACE FUNCTION _pgr_getColumnName(tab text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
-RETURNS text AS
-$BODY$
-DECLARE
-    sname text;
-    tname text;
-    cname text;
-    naming record;
-    err boolean;
-BEGIN
-    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
-    sname=naming.sname;
-    tname=naming.tname;
-
-    select * into cname from _pgr_getColumnName(sname,tname,col,reportErrs, fnName);
-    RETURN cname;
-END;
-
-$BODY$
-LANGUAGE plpgsql VOLATILE STRICT;
-
-
-/*
-.. function:: _pgr_isColumnInTable(tab, col)
-
-   Examples:
-        *          select  _pgr_isColumnName('tab','col');
-        *        flag boolean;
-                 execute 'select _pgr_getColumnName('||quote_literal('tab')||','||quote_literal('col')||')' INTO flag;
-
-   Returns true  if column "col" exists in table "tab"
-           false when "tab" doesn't exist or when "col" is not in table "tab"
-
-   Author: Stephen Woodbridge <woodbri at imaptools.com>
-
-   Modified by: Vicky Vergara <vicky_vergara at hotmail.com>>
-
-  HISTORY
-     Modified: 2013/08/19  for handling schemas
-*/
-CREATE OR REPLACE FUNCTION _pgr_isColumnInTable(tab text, col text)
-RETURNS boolean AS
-$BODY$
-DECLARE
-    cname text;
-BEGIN
-    select * from _pgr_getColumnName(tab,col,0, '_pgr_isColumnInTable') into cname;
-    return cname is not null;
-END;
-$BODY$
-  LANGUAGE plpgsql VOLATILE STRICT;
-
-
-/*
-.. function:: _pgr_isColumnIndexed(tab, col)
-
-   Examples:
-        *          select  _pgr_isColumnIndexed('tab','col');
-        *        flag boolean;
-                 execute 'select _pgr_getColumnIndexed('||quote_literal('tab')||','||quote_literal('col')||')' INTO flag;
-
-   Author: Stephen Woodbridge <woodbri at imaptools.com>
-
-   Modified by: Vicky Vergara <vicky_vergara at hotmail.com>>
-
-   Returns true  when column "col" in table "tab" is indexed.
-           false when table "tab"  is not found or
-                 when column "col" is nor found in table "tab" or
-                   when column "col" is not indexed
-*/
-
-CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(sname text, tname text, cname text,
-      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
-RETURNS boolean AS
-$BODY$
-DECLARE
-    naming record;
-    rec record;
-    pkey text;
-BEGIN
-    SELECT
-          pg_attribute.attname into pkey
-         --  format_type(pg_attribute.atttypid, pg_attribute.atttypmod)
-          FROM pg_index, pg_class, pg_attribute
-          WHERE
-                  pg_class.oid = _pgr_quote_ident(sname||'.'||tname)::regclass AND
-                  indrelid = pg_class.oid AND
-                  pg_attribute.attrelid = pg_class.oid AND
-                  pg_attribute.attnum = any(pg_index.indkey)
-                  AND indisprimary;
-
-    IF pkey=cname then
-          RETURN TRUE;
-    END IF;
-
-    SELECT a.index_name,
-           b.attname,
-           b.attnum,
-           a.indisunique,
-           a.indisprimary
-      INTO rec
-      FROM ( SELECT a.indrelid,
-                    a.indisunique,
-                    a.indisprimary,
-                    c.relname index_name,
-                    unnest(a.indkey) index_num
-               FROM pg_index a,
-                    pg_class b,
-                    pg_class c,
-                    pg_namespace d
-              WHERE b.relname=tname
-                AND b.relnamespace=d.oid
-                AND d.nspname=sname
-                AND b.oid=a.indrelid
-                AND a.indexrelid=c.oid
-           ) a,
-           pg_attribute b
-     WHERE a.indrelid = b.attrelid
-       AND a.index_num = b.attnum
-       AND b.attname = cname
-  ORDER BY a.index_name,
-           a.index_num;
-
-  RETURN FOUND;
-  EXCEPTION WHEN OTHERS THEN
-    perform _pgr_onError( true, reportErrs, fnName,
-    'Error when checking for the postgres system attributes', SQLERR);
-    RETURN FALSE;
-END;
-$BODY$
-  LANGUAGE plpgsql VOLATILE STRICT;
-
-CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(tab text, col text,
-      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
-RETURNS boolean AS
-$BODY$
-DECLARE
-    naming record;
-    rec record;
-    sname text;
-    tname text;
-    cname text;
-    pkey text;
-    value boolean;
-BEGIN
-    SELECT * into naming FROM _pgr_getTableName(tab, 0, fnName);
-    sname=naming.sname;
-    tname=naming.tname;
-    IF sname IS NULL OR tname IS NULL THEN
-        RETURN FALSE;
-    END IF;
-    SELECT * into cname from _pgr_getColumnName(sname, tname, col, 0, fnName) ;
-    IF cname IS NULL THEN
-        RETURN FALSE;
-    END IF;
-    select * into value  from _pgr_isColumnIndexed(sname, tname, cname, reportErrs, fnName);
-    return value;
-END
-$BODY$
-  LANGUAGE plpgsql VOLATILE STRICT;
-
-/*
-.. function:: _pgr_quote_ident(text)
-
-   Author: Stephen Woodbridge <woodbri at imaptools.com>
-
-   Function to split a string on '.' characters and then quote the
-   components as postgres identifiers and then join them back together
-   with '.' characters. multile '.' will get collapsed into a single
-   '.' so 'schema...table' till get returned as 'schema."table"' and
-   'Schema.table' becomes '"Schema'.'table"'
-
-*/
-
-create or replace function _pgr_quote_ident(idname text)
-    returns text as
-$body$
-declare
-    t text[];
-    pgver text;
-
-begin
-    pgver := regexp_replace(version(), E'^PostgreSQL ([^ ]+)[ ,].*$', E'\\1');
-
-    if _pgr_versionless(pgver, '9.2') then
-        select into t array_agg(quote_ident(term)) from
-            (select nullif(unnest, '') as term
-               from unnest(string_to_array(idname, '.'))) as foo;
-    else
-        select into t array_agg(quote_ident(term)) from
-            (select unnest(string_to_array(idname, '.', '')) as term) as foo;
-    end if;
-    return array_to_string(t, '.');
-end;
-$body$
-language plpgsql immutable;
-
-/*
- * function for comparing version strings.
- * Ex: select _pgr_version_less(postgis_lib_version(), '2.1');
-
-   Author: Stephen Woodbridge <woodbri at imaptools.com>
- *
- * needed because postgis 2.1 deprecates some function names and
- * we need to detect the version at runtime
-*/
-CREATE OR REPLACE FUNCTION _pgr_versionless(v1 text, v2 text)
-  RETURNS boolean AS
-$BODY$
-
-
-declare
-    v1a text[];
-    v2a text[];
-    nv1 integer;
-    nv2 integer;
-    ne1 integer;
-    ne2 integer;
-
-begin
-    -- separate components into an array, like:
-    -- '2.1.0-beta3dev'  =>  {2,1,0,beta3dev}
-    v1a := regexp_matches(v1, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
-    v2a := regexp_matches(v2, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
-
-    -- convert modifiers to numbers for comparison
-    -- we do not delineate between alpha1, alpha2, alpha3, etc
-    ne1 := case when v1a[4] is null or v1a[4]='' then 5
-                when v1a[4] ilike 'rc%' then 4
-                when v1a[4] ilike 'beta%' then 3
-                when v1a[4] ilike 'alpha%' then 2
-                when v1a[4] ilike 'dev%' then 1
-                else 0 end;
-
-    ne2 := case when v2a[4] is null or v2a[4]='' then 5
-                when v2a[4] ilike 'rc%' then 4
-                when v2a[4] ilike 'beta%' then 3
-                when v2a[4] ilike 'alpha%' then 2
-                when v2a[4] ilike 'dev%' then 1
-                else 0 end;
-
-    nv1 := v1a[1]::integer * 10000 +
-           coalesce(v1a[2], '0')::integer * 1000 +
-           coalesce(v1a[3], '0')::integer *  100 + ne1;
-    nv2 := v2a[1]::integer * 10000 +
-           coalesce(v2a[2], '0')::integer * 1000 +
-           coalesce(v2a[3], '0')::integer *  100 + ne2;
-
-    --raise notice 'nv1: %, nv2: %, ne1: %, ne2: %', nv1, nv2, ne1, ne2;
-
-    return nv1 < nv2;
-end;
-$BODY$
-  LANGUAGE plpgsql IMMUTABLE STRICT
-  COST 1;
-
-create or replace function _pgr_startPoint(g geometry)
-    returns geometry as
-$body$
-declare
-
-begin
-    if geometrytype(g) ~ '^MULTI' then
-        return st_startpoint(st_geometryn(g,1));
-    else
-        return st_startpoint(g);
-    end if;
-end;
-$body$
-language plpgsql IMMUTABLE;
-
-
-
-create or replace function _pgr_endPoint(g geometry)
-    returns geometry as
-$body$
-declare
-
-begin
-    if geometrytype(g) ~ '^MULTI' then
-        return st_endpoint(st_geometryn(g,1));
-    else
-        return st_endpoint(g);
-    end if;
-end;
-$body$
-language plpgsql IMMUTABLE;
-
diff --git a/src/common/sql/pgrouting_version.sql b/src/common/sql/pgrouting_version.sql
deleted file mode 100644
index deaf474..0000000
--- a/src/common/sql/pgrouting_version.sql
+++ /dev/null
@@ -1,37 +0,0 @@
--- -------------------------------------------------------------------
--- pgrouting_version.sql
--- AuthorL Stephen Woodbridge <woodbri at imaptools.com>
--- Copyright 2013 Stephen Woodbridge
--- This file is release unde an MIT-X license.
--- -------------------------------------------------------------------
-
-/*
-.. function:: pgr_version()
-
-   Author: Stephen Woodbridge <woodbri at imaptools.com>
-
-   Returns the version of pgrouting,Git build,Git hash, Git branch and boost
-*/
-
-CREATE OR REPLACE FUNCTION pgr_version()
-RETURNS TABLE(
-		"version" varchar, 
-		tag varchar,
-		hash varchar,
-		branch varchar,
-		boost varchar
-	) AS
-$BODY$
-
-DECLARE
-
-BEGIN
-    RETURN QUERY SELECT '${PGROUTING_VERSION}'::varchar AS version, 
-    					'${PGROUTING_FULL_VERSION}'::varchar AS tag, 
-                        '${PGROUTING_GIT_HASH}'::varchar AS hash, 
-                        '${PGROUTING_GIT_BRANCH}'::varchar AS branch, 
-                        '${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}'::varchar AS boost;
-END;
-$BODY$
-LANGUAGE plpgsql IMMUTABLE;
-
diff --git a/src/common/sql/utilities_pgr.sql b/src/common/sql/utilities_pgr.sql
deleted file mode 100644
index ce4f0d5..0000000
--- a/src/common/sql/utilities_pgr.sql
+++ /dev/null
@@ -1,288 +0,0 @@
-/*PGR-GNU*****************************************************************
-
- utilities_pgr.sql
-
- Copyright (c) 2014 Celia Virginia Vergara Castillo
- vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-
-/************************************************************************
-.. function:: _pgr_onError(errCond,reportErrs,functionname,msgerr,hinto,msgok)
-  
-  If the error condition is is true, i.e., there is an error,
-   it will raise a message based on the reportErrs:
-  0: debug_      raise debug_
-  1: report     raise notice
-  2: abort      throw a raise_exception  
-   Examples:  
-   
-	*	preforn _pgr_onError( idname=gname, 2, 'pgr_createToplogy',
-                     'Two columns share the same name');
-	*	preforn _pgr_onError( idname=gname, 2, 'pgr_createToplogy',
-                     'Two columns share the same name', 'Idname and gname must be different');
-    *	preforn _pgr_onError( idname=gname, 2, 'pgr_createToplogy',
-                     'Two columns share the same name', 'Idname and gname must be different',
-                     'Column names are OK');
-
-   
-   Author: Vicky Vergara <vicky_vergara at hotmail.com>>
-
-  HISTORY
-     Created: 2014/JUl/28  handling the errors, and have a more visual output
-  
-************************************************************************/
-
-CREATE OR REPLACE FUNCTION _pgr_onError(
-  IN errCond boolean,  -- true there is an error
-  IN reportErrs int,   -- 0, 1 or 2
-  IN fnName text,      -- function name that generates the error
-  IN msgerr text,      -- error message
-  IN hinto text default 'No hint', -- hint help
-  IN msgok text default 'OK')      -- message if everything is ok
-  RETURNS void AS
-$BODY$
-BEGIN
-  if errCond=true then 
-     if reportErrs=0 then
-       raise debug '----> PGR DEBUG in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
-     else
-       if reportErrs = 2 then
-         raise notice '----> PGR ERROR in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
-         raise raise_exception;
-       else
-         raise notice '----> PGR NOTICE in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
-       end if;
-     end if;
-  else
-       raise debug 'PGR ----> %: %',fnName,msgok;
-  end if;
-END;
-$BODY$
-LANGUAGE plpgsql VOLATILE STRICT;
-
-/************************************************************************
-.. function:: _pgr_msg(msgKind, fnName, msg)
-  
-  It will raise a message based on the msgKind:
-  0: debug_      raise debug_
-  1: notice     raise notice
-  anything else: report     raise notice
-
-   Examples:  
-   
-	*	preforn _pgr_msg( 1, 'pgr_createToplogy', 'Starting a long process... ');
-	*	preforn _pgr_msg( 1, 'pgr_createToplogy');
-
-   
-   Author: Vicky Vergara <vicky_vergara at hotmail.com>>
-
-  HISTORY
-     Created: 2014/JUl/28  handling the errors, and have a more visual output
-  
-************************************************************************/
-
-CREATE OR REPLACE FUNCTION _pgr_msg(IN msgKind int, IN fnName text, IN msg text default '---->OK')
-  RETURNS void AS
-$BODY$
-BEGIN
-  if msgKind = 0 then
-       raise debug '----> PGR DEBUG in %: %',fnName,msg;
-  else
-       raise notice '----> PGR NOTICE in %: %',fnName,msg;
-  end if;
-END;
-$BODY$
-LANGUAGE plpgsql VOLATILE STRICT;
-
-
-/************************************************************************
-.. function:: _pgr_getColumnType(sname,tname,col,reportErrs,fnName) returns text
-.. function:: _pgr_getColumnType(tab,col,reportErrs,fname) returns text
-
-    Returns:
-          type   the types of the registered column "col" in table "tab" or "sname.tname" 
-          NULL   when "tab"/"sname"/"tname" is not found or when "col" is not in table "tab"/"sname.tname"
-    unless otherwise indicated raises debug_  on errors
- 
- Examples:  
-	* 	 select  _pgr_getColumnType('tab','col');
-	* 	 select  _pgr_getColumnType('myschema','mytable','col');
-        	 execute 'select _pgr_getColumnType('||quote_literal('tab')||','||quote_literal('col')||')' INTO column;
-        	 execute 'select _pgr_getColumnType('||quote_literal(sname)||','||quote_literal(sname)||','||quote_literal('col')||')' INTO column;
-
-   Author: Vicky Vergara <vicky_vergara at hotmail.com>>
-
-  HISTORY
-     Created: 2014/JUL/28 
-************************************************************************/
-
-CREATE OR REPLACE FUNCTION _pgr_getColumnType(sname text, tname text, cname text,
-     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
-RETURNS text AS
-$BODY$
-DECLARE
-    ctype text;
-    naming record;
-    err boolean;
-BEGIN
-
-    EXECUTE 'select data_type  from information_schema.columns ' 
-            || 'where table_name = '||quote_literal(tname)
-                 || ' and table_schema=' || quote_literal(sname)
-                 || ' and column_name='||quote_literal(cname)
-       into ctype;
-    err = ctype is null;
-    perform _pgr_onError(err, reportErrs, fnName,
-            'Type of Column '|| cname ||' not found',
-            'Check your column name',
-            'OK: Type of Column '|| cname || ' is ' || ctype);
-    RETURN ctype;
-END;
-
-$BODY$
-LANGUAGE plpgsql VOLATILE STRICT;
-
-
-CREATE OR REPLACE FUNCTION _pgr_getColumnType(tab text, col text,
-     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
-RETURNS text AS
-$BODY$
-DECLARE
-    sname text;
-    tname text;
-    cname text;
-    ctype text;
-    naming record;
-    err boolean;
-BEGIN
-  
-    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
-    sname=naming.sname;
-    tname=naming.tname;
-    select * into cname from _pgr_getColumnName(tab,col,reportErrs, fnName) ;
-    select * into ctype from _pgr_getColumnType(sname,tname,cname,reportErrs, fnName);
-    RETURN ctype;
-END;
-
-$BODY$
-LANGUAGE plpgsql VOLATILE STRICT;
-
-
-
-
-
-/************************************************************************
-.. function:: _pgr_get_statement( sql ) returns the original statement if its a prepared statement
-
-    Returns:
-          sname,vname  registered schemaname, vertices table name 
-    
-          
- Examples:  
-    select * from _pgr_dijkstra(_pgr_get_statament($1),$2,$3,$4);
-
-   Author: Vicky Vergara <vicky_vergara at hotmail.com>>
-
-  HISTORY
-     Created: 2014/JUL/27 
-************************************************************************/
-CREATE OR REPLACE FUNCTION _pgr_get_statement(o_sql text)
-RETURNS text AS
-$BODY$
-DECLARE
-sql TEXT;
-BEGIN
-    EXECUTE 'SELECT statement FROM pg_prepared_statements WHERE name ='  || quote_literal(o_sql) || ' limit 1 ' INTO sql;
-    IF (sql IS NULL) THEN
-      RETURN   o_sql;
-    ELSE
-      RETURN  regexp_replace(sql, '(.)* as ', '', 'i');
-    END IF;
-END
-$BODY$
-LANGUAGE plpgsql STABLE STRICT;
-
-
-/************************************************************************
-.. function:: _pgr_checkVertTab(vertname,columnsArr,reportErrs) returns record of sname,vname
-
-    Returns:
-          sname,vname  registered schemaname, vertices table name 
-    
-    if the table is not found will stop any further checking.
-    if a column is missing, then its added as integer ---  (id also as integer but is bigserial when the vertices table is created with the pgr functions)
-          
- Examples:  
-	* 	execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","cnt","chk"}''::text[])' into naming;
-	* 	execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","ein","eout"}''::text[])' into naming;
-
-   Author: Vicky Vergara <vicky_vergara at hotmail.com>>
-
-  HISTORY
-     Created: 2014/JUL/27 
-************************************************************************/
-CREATE OR REPLACE FUNCTION _pgr_checkVertTab(vertname text, columnsArr  text[],
-    IN reportErrs int default 1, IN fnName text default '_pgr_checkVertTab',
-    OUT sname text,OUT vname text)
-RETURNS record AS
-$BODY$
-DECLARE
-    cname text;
-    colname text;
-    naming record;
-    debuglevel text;
-    err  boolean;
-    msgKind int;
-
-BEGIN
-    msgKind = 0; -- debug_
-    execute 'show client_min_messages' into debuglevel;
-
-    perform _pgr_msg(msgKind, fnName, 'Checking table ' || vertname || ' exists');
-       select * from _pgr_getTableName(vertname, 0, fnName) into naming;
-       sname=naming.sname;
-       vname=naming.tname;
-       err = sname is NULL or vname is NULL;
-    perform _pgr_onError( err, 2, fnName,
-          'Vertex Table: ' || vertname || ' not found',
-          'Please create ' || vertname || ' using  _pgr_createTopology() or pgr_createVerticesTable()',
-          'Vertex Table: ' || vertname || ' found');
-    
-
-    perform _pgr_msg(msgKind, fnName, 'Checking columns of ' || vertname);
-      FOREACH cname IN ARRAY columnsArr
-      loop
-         select _pgr_getcolumnName(vertname, cname, 0, fnName) into colname;
-         if colname is null then
-           perform _pgr_msg(msgKind, fnName, 'Adding column ' || cname || ' in ' || vertname);
-           set client_min_messages  to warning;
-                execute 'ALTER TABLE '||_pgr_quote_ident(vertname)||' ADD COLUMN '||cname|| ' integer';
-           execute 'set client_min_messages  to '|| debuglevel;
-           perform _pgr_msg(msgKind, fnName);
-         end if;
-      end loop;
-    perform _pgr_msg(msgKind, fnName, 'Finished checking columns of ' || vertname);
-
-    perform _pgr_createIndex(vertname , 'id' , 'btree', reportErrs, fnName);
- END
-$BODY$
-LANGUAGE plpgsql VOLATILE STRICT;
-
diff --git a/src/common/src/CMakeLists.txt b/src/common/src/CMakeLists.txt
index ac26041..a4f2d1c 100644
--- a/src/common/src/CMakeLists.txt
+++ b/src/common/src/CMakeLists.txt
@@ -1,19 +1,23 @@
-ADD_LIBRARY(common OBJECT 
+ADD_LIBRARY(common OBJECT
     postgres_connection.c
     e_report.c
-    restrictions_input.c
+    restrict_input.c
     basePath_SSEC.cpp
 
     points_input.c
     matrixRows_input.c
     get_check_data.c
     edges_input.c
-    
+    orders_input.c
+    orders_input.c
+    vehicles_input.c
+
     coordinates_input.c
     arrays_input.c
 
     time_msg.c
     pgr_assert.cpp
+    identifier.cpp
 
     basic_vertex.cpp
     xy_vertex.cpp
diff --git a/src/common/src/arrays_input.c b/src/common/src/arrays_input.c
index d2cb14c..211310a 100644
--- a/src/common/src/arrays_input.c
+++ b/src/common/src/arrays_input.c
@@ -22,17 +22,14 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#include "./postgres_connection.h"
+#include "c_common/arrays_input.h"
 
 #include "utils/lsyscache.h"
 #include "catalog/pg_type.h"
-#include "utils/array.h"
 
 
-#include "./pgr_types.h"
-#include "./time_msg.h"
-#include "./debug_macro.h"
-#include "./arrays_input.h"
+#include "c_common/time_msg.h"
+#include "c_common/debug_macro.h"
 #include <assert.h>
 
 static
diff --git a/src/common/src/arrays_input.h b/src/common/src/arrays_input.h
deleted file mode 100644
index 7671b23..0000000
--- a/src/common/src/arrays_input.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: arrays_input.h
-
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifndef SRC_COMMON_SRC_ARRAYS_INPUT_H_
-#define SRC_COMMON_SRC_ARRAYS_INPUT_H_
-#pragma once
-
-#include "./pgr_types.h"
-
-int64_t* pgr_get_bigIntArray(size_t *arrlen, ArrayType *input);
-
-// Allows the input array to be empty
-int64_t* pgr_get_bigIntArray_allowEmpty(size_t *arrlen, ArrayType *input);
-
-#endif  // SRC_COMMON_SRC_ARRAYS_INPUT_H_
diff --git a/src/common/src/basePath_SSEC.cpp b/src/common/src/basePath_SSEC.cpp
index b28c955..98b670b 100644
--- a/src/common/src/basePath_SSEC.cpp
+++ b/src/common/src/basePath_SSEC.cpp
@@ -21,15 +21,15 @@ along with this program; if not, write to the Free Software
 
 ********************************************************************PGR-GNU*/
 
-#include "./basePath_SSEC.hpp"
+#include "cpp_common/basePath_SSEC.hpp"
 
 #include <deque>
 #include <iostream>
 #include <algorithm>
 #include <utility>
 
-#include "./pgr_types.h"
-#include "./pgr_assert.h"
+#include "c_types/general_path_element_t.h"
+#include "cpp_common/pgr_assert.h"
 
 void Path::push_front(Path_t data) {
     path.push_front(data);
@@ -149,9 +149,10 @@ void Path::append(const Path &other) {
         *this = other;
         return;
     }
+#if 0
     pgassert(path.back().cost == 0);
+#endif
     pgassert(path.back().edge == -1);
-
     m_end_id = other.m_end_id;
 
     auto last = path.back();
@@ -211,3 +212,110 @@ void Path::get_pg_ksp_path(
         sequence++;
     }
 }
+
+
+/** @brief Sorts a path by node, aggcost ascending
+ *
+ * nodes ASC
+ * agg_cost ASC
+ */
+void
+Path::sort_by_node_agg_cost() {
+    std::sort(path.begin(), path.end(),
+            [](const Path_t &l, const  Path_t &r)
+            {return l.node < r.node;});
+    std::stable_sort(path.begin(), path.end(),
+            [](const Path_t &l, const  Path_t &r)
+            {return l.agg_cost < r.agg_cost;});
+}
+
+/*
+ * FRIENDS
+ */
+
+
+size_t
+collapse_paths(
+        General_path_element_t **ret_path,
+        const std::deque< Path > &paths) {
+    size_t sequence = 0;
+    for (const Path &path : paths) {
+        if (path.path.size() > 0)
+            path.generate_postgres_data(ret_path, sequence);
+    }
+    return sequence;
+}
+
+/*
+ * sort the paths by size from greater to smaller
+ *        and sort each path by node
+ * all the nodes on p2 are going to be compared
+ * with the nodes of p1
+ *
+ * When both paths reach the node and p1.agg_cost > p2.agg_cost
+ *    erase the node of p1
+ *    (can't erase from p2 because we loose the iterators
+ *     so in a future cycle it will be deleted)
+ *
+ * sort the paths by start_id,
+ */
+
+void
+equi_cost(std::deque< Path > &paths) {
+    /* sort paths by size: largest first */
+    std::sort(paths.begin(), paths.end(),
+            [](const Path &e1, const Path &e2)->bool {
+            return e2.size() < e1.size();
+            });
+
+    /* sort each path by node: smaller id first */
+    for (auto &p : paths) {
+        if (p.size() < 2) continue;
+        std::sort(p.begin(), p.end(),
+                [](const Path_t &e1, const Path_t &e2)->bool {
+                return e1.node < e2.node;
+                });
+    }
+
+    for (auto &p1 : paths) {
+        for (const auto &p2 : paths) {
+            if (p1.start_id() == p2.start_id()) continue;
+            for (const auto &stop : p2.path) {
+                /* find the node of p2 in p1 */
+                auto pos = lower_bound(p1.begin(), p1.end(), stop,
+                        [](const Path_t &l, const Path_t &r)->bool {
+                        return l.node < r.node;
+                        });
+
+                if (pos != p1.end()
+                        && (stop.node == pos->node)
+                        && (stop.agg_cost < pos->agg_cost)) {
+                    /* both share the same node &
+                     * the second path has the smallest
+                     *  So erasing from the first path */
+                    p1.erase(pos);
+                }
+            }
+        }
+    }
+    /* sort paths by start_id */
+    std::sort(paths.begin(), paths.end(),
+            [](const Path &e1, const Path &e2)->bool {
+            return e1.start_id() < e2.start_id();
+            });
+
+    /* sort each path by agg_cost, node */
+    for (auto &path : paths) {
+        path.sort_by_node_agg_cost();
+    }
+}
+
+
+size_t
+count_tuples(const std::deque< Path > &paths) {
+    size_t count(0);
+    for (const Path &e : paths) {
+        count += e.path.size();
+    }
+    return count;
+}
diff --git a/src/common/src/basePath_SSEC.hpp b/src/common/src/basePath_SSEC.hpp
deleted file mode 100644
index 99d23d0..0000000
--- a/src/common/src/basePath_SSEC.hpp
+++ /dev/null
@@ -1,331 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-File: basePath_SSEC.hpp
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifndef SRC_COMMON_SRC_BASEPATH_SSEC_HPP_
-#define SRC_COMMON_SRC_BASEPATH_SSEC_HPP_
-#pragma once
-
-
-#include <boost/config.hpp>
-#include <boost/graph/adjacency_list.hpp>
-
-
-#include <deque>
-#include <vector>
-#include <iostream>
-#include <algorithm>
-#include "./pgr_types.h"
-#include "./pgr_base_graph.hpp"
-
-
-class Path {
-    typedef std::deque< Path_t >::iterator pthIt;
-    typedef std::deque< Path_t >::const_iterator ConstpthIt;
-
- private:
-    std::deque< Path_t > path;
-    int64_t m_start_id;
-    int64_t m_end_id;
-    double m_tot_cost;
-
- public:
-    Path(): m_tot_cost(0) {}
-    Path(int64_t s_id, int64_t e_id)
-        : m_start_id(s_id), m_end_id(e_id), m_tot_cost(0)
-    {}
-    Path(const Path&) = default;
-    int64_t start_id() const {return m_start_id;}
-    void start_id(int64_t value) {m_start_id = value;}
-    int64_t end_id()  const {return m_end_id;}
-    void end_id(int64_t value) {m_end_id = value;}
-    double tot_cost()  const {return m_tot_cost;}
-
-    size_t size() const {return path.size();}
-    bool empty() const {return path.empty();}
-
-    void push_front(Path_t data);
-    void push_back(Path_t data);
-    const Path_t& operator[](size_t i) const {return path[i];}
-    Path_t& operator[](size_t i) {return path[i];}
-
-    pthIt begin() {return path.begin();}
-    pthIt end() {return path.end();}
-    ConstpthIt begin() const {return path.begin();}
-    ConstpthIt end() const {return path.end();}
-
-
-    void erase(pthIt pos) {path.erase(pos);}
-    const Path_t& back() const {return path.back();}
-    Path_t& back() {return path.back();}
-    const Path_t& front() const {return path.front();}
-    Path_t& front() {return path.front();}
-
-
-    Path_t set_data(
-            int64_t d_from,
-            int64_t d_to,
-            int64_t d_vertex,
-            int64_t d_edge,
-            double d_cost,
-            double d_tot_cost);
-
-    void push_front(
-            int64_t d_vertex,
-            int64_t d_edge,
-            double d_cost,
-            double d_tot_cost);
-    void clear();
-
-    friend std::ostream& operator<<(std::ostream &log, const Path &p);
-
-
-    void reverse();
-
-    Path  getSubpath(unsigned int j) const;
-
-
-    bool isEqual(const Path &subpath) const;
-    void appendPath(const Path &o_path);
-    void append(const Path &other);
-    void empty_path(unsigned int d_vertex);
-
-    void get_pg_dd_path(
-            General_path_element_t **ret_path,
-            size_t &sequence) const;
-
-    void get_pg_ksp_path(
-            General_path_element_t **ret_path,
-            size_t &sequence, int routeId) const;
-
-    void generate_postgres_data(
-            General_path_element_t **postgres_data,
-            size_t &sequence) const;
-
-    friend size_t collapse_paths(
-            General_path_element_t **ret_path,
-            const std::deque< Path > &paths) {
-        size_t sequence = 0;
-        for (const Path &path : paths) {
-            if (path.path.size() > 0)
-                path.generate_postgres_data(ret_path, sequence);
-        }
-        return sequence;
-    }
-
-
-
-    /*
-     * sort the paths by size from greater to smaller
-     *        and sort each path by node
-     * all the nodes on p2 are going to be compared
-     * with the nodes of p1
-     *
-     * When both paths reach the node and p1.agg_cost > p2.agg_cost
-     *    erase the node of p1
-     *    (can't erase from p2 because we loose the iterators
-     *     so in a future cycle it will be deleted)
-     *
-     * sort the paths by start_id,
-     */
-
-    friend void equi_cost(std::deque< Path > &paths) {
-        /* sort paths by size: largest first */
-        std::sort(paths.begin(), paths.end(),
-                [](const Path &e1, const Path &e2)->bool {
-                return e2.size() < e1.size();
-                });
-
-        /* sort each path by node: smaller id first */
-        for (auto &p : paths) {
-            if (p.size() < 2) continue;
-            std::sort(p.begin(), p.end(),
-                    [](const Path_t &e1, const Path_t &e2)->bool {
-                    return e1.node < e2.node;
-                    });
-        }
-
-        for (auto &p1 : paths) {
-            for (const auto &p2 : paths) {
-                if (p1.start_id() == p2.start_id()) continue;
-                for (const auto &stop : p2.path) {
-                    /* find the node of p2 in p1 */
-                    auto pos = lower_bound(p1.begin(), p1.end(), stop,
-                            [](const Path_t &l, const Path_t &r)->bool {
-                            return l.node < r.node;
-                            });
-
-                    if (pos != p1.end()
-                            && (stop.node == pos->node)
-                            && (stop.agg_cost < pos->agg_cost)) {
-                        /* both share the same node &
-                         * the second path has the smallest
-                         *  So erasing from the first path */
-                        p1.erase(pos);
-                    }
-                }
-            }
-        }
-
-        /* sort paths by start_id */
-        std::sort(paths.begin(), paths.end(),
-                [](const Path &e1, const Path &e2)->bool {
-                return e1.start_id() < e2.start_id();
-                });
-
-        /* sort each path by agg_cost, node */
-        for (auto &path : paths) {
-            /* least influential data first */
-            std::sort(path.begin(), path.end(),
-                    [](const Path_t &l, const  Path_t &r)
-                    { return l.node < r.node;});
-            /* preserve the order of what we did before */
-            std::stable_sort(path.begin(), path.end(),
-                    [](const Path_t &l, const  Path_t &r)
-                    { return l.agg_cost < r.agg_cost;});
-        }
-    }
-
-    friend size_t count_tuples(const std::deque< Path > &paths) {
-        size_t count(0);
-        for (const Path &e : paths) {
-            count += e.path.size();
-        }
-        return count;
-    }
-
-
-    template <typename G , typename V> Path(
-            G &graph,
-            V v_source,
-            double distance,
-            const std::vector<V> &predecessors,
-            const std::vector<double> &distances) :
-        m_start_id(graph.graph[v_source].id),
-        m_end_id(graph.graph[v_source].id) {
-        for (V i = 0; i < distances.size(); ++i) {
-            if (distances[i] <= distance) {
-                auto cost = distances[i] - distances[predecessors[i]];
-                auto edge_id = graph.get_edge_id(predecessors[i], i, cost);
-                push_back(
-                        {graph[i].id,
-                        edge_id, cost,
-                        distances[i]});
-            }
-        }
-    }
-
-
-
-    template <typename G , typename V> Path(
-            const G &graph,
-            const V v_source,
-            const V v_target,
-            const std::vector<V> &predecessors,
-            const std::vector<double> &distances,
-            bool only_cost,
-            bool normal = true) :
-        m_start_id(graph.graph[v_source].id),
-        m_end_id(graph.graph[v_target].id) {
-            if (!only_cost) {
-                complete_path(graph,
-                        v_source,
-                        v_target,
-                        predecessors,
-                        distances,
-                        normal);
-                return;
-            }
-            /*
-             * only_cost
-             */
-            if (v_target != predecessors[v_target]) {
-                push_front(
-                        {graph.graph[v_target].id,
-                        -1,
-                        distances[v_target],
-                        distances[v_target]});
-            }
-            return;
-        }
-
-    /*! @brief constructs a path based on results
-     *
-     * Normal = false for reversed search path like in pgr_bdDijkstra
-     */
-    template <typename G , typename V> void complete_path(
-            const G &graph,
-            const V v_source,
-            const V v_target,
-            const std::vector<V> &predecessors,
-            const std::vector<double> &distances,
-            bool normal) {
-        // no path was found
-        if (v_target == predecessors[v_target]) {
-            return;
-        }
-
-        /*
-         * set the target
-         */
-        auto target = v_target;
-
-        /*
-         * the last stop is the target
-         */
-        push_front(
-                {graph.graph[target].id, -1,
-                0,  distances[target]});
-
-        /*
-         * get the path
-         */
-        while (target != v_source) {
-            /*
-             * done when the predecesor of the target is the target
-             */
-            if (target == predecessors[target]) break;
-
-            /*
-             * Inserting values in the path
-             */
-            auto cost = distances[target] - distances[predecessors[target]];
-            auto vertex_id = graph.graph[predecessors[target]].id;
-            auto edge_id = normal?
-                graph.get_edge_id(predecessors[target], target, cost)
-                : graph.get_edge_id(target, predecessors[target], cost);
-
-            push_front({
-                    vertex_id,
-                    edge_id,
-                    cost,
-                    distances[target] - cost});
-            target = predecessors[target];
-        }
-
-        return;
-    }
-};
-
-
-#endif  // SRC_COMMON_SRC_BASEPATH_SSEC_HPP_
diff --git a/src/common/src/basic_edge.cpp b/src/common/src/basic_edge.cpp
index 7ff0480..72b4ab3 100644
--- a/src/common/src/basic_edge.cpp
+++ b/src/common/src/basic_edge.cpp
@@ -22,7 +22,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#include "./basic_edge.h"
+#include "cpp_common/basic_edge.h"
 
 
 namespace pgrouting {
diff --git a/src/common/src/basic_edge.h b/src/common/src/basic_edge.h
deleted file mode 100644
index fdf09a7..0000000
--- a/src/common/src/basic_edge.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*PGR-GNU*****************************************************************
- *
-
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifndef SRC_COMMON_SRC_BASIC_EDGE_H_
-#define SRC_COMMON_SRC_BASIC_EDGE_H_
-#pragma once
-
-#include "./pgr_types.h"
-
-
-namespace pgrouting {
-
-class Basic_edge{
- public:
-     void cp_members(const Basic_edge &other);
-
- public:
-     int64_t source;
-     int64_t target;
-
-     int64_t id;
-     double cost;
-};
-
-}  // namespace pgrouting
-
-#endif  // SRC_COMMON_SRC_BASIC_EDGE_H_
diff --git a/src/common/src/basic_vertex.cpp b/src/common/src/basic_vertex.cpp
index e39b13d..4180bd5 100644
--- a/src/common/src/basic_vertex.cpp
+++ b/src/common/src/basic_vertex.cpp
@@ -22,15 +22,14 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#include "./basic_vertex.h"
+#include "cpp_common/basic_vertex.h"
 
 #include <vector>
 #include <algorithm>
 #include <sstream>
 #include <ostream>
 
-#include "./pgr_types.h"
-#include "./pgr_assert.h"
+#include "cpp_common/pgr_assert.h"
 
 
 namespace pgrouting {
diff --git a/src/common/src/basic_vertex.h b/src/common/src/basic_vertex.h
deleted file mode 100644
index 12532e7..0000000
--- a/src/common/src/basic_vertex.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*PGR-GNU*****************************************************************
- *
-
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifndef SRC_COMMON_SRC_BASIC_VERTEX_H_
-#define SRC_COMMON_SRC_BASIC_VERTEX_H_
-#pragma once
-
-#include <vector>
-#include <ostream>
-
-#include "./pgr_types.h"
-
-
-
-namespace pgrouting {
-
-class Basic_vertex {
- public:
-     Basic_vertex() :
-         id(0) {}
-     Basic_vertex(const Basic_vertex &v) :
-         id(v.id) {}
-
-     explicit Basic_vertex(const int64_t _id) :
-         id(_id) {}
-
-     Basic_vertex(const pgr_edge_t &other, bool is_source) :
-         id(is_source? other.source : other.target) {}
-
-     void cp_members(const Basic_vertex &other) {
-         this->id = other.id;
-     }
-
-
-     friend std::ostream& operator<<(std::ostream& log, const Basic_vertex &v);
- public:
-     int64_t id;
-};
-
-size_t check_vertices(std::vector < Basic_vertex > vertices);
-
-
-std::vector < Basic_vertex > extract_vertices(
-        std::vector < Basic_vertex > vertices,
-        const pgr_edge_t *data_edges, int64_t count);
-
-std::vector < Basic_vertex > extract_vertices(
-        std::vector < Basic_vertex > vertices,
-        const std::vector < pgr_edge_t > data_edges);
-
-std::vector < Basic_vertex > extract_vertices(
-        const pgr_edge_t *data_edges, int64_t count);
-
-std::vector < Basic_vertex > extract_vertices(
-        const std::vector < pgr_edge_t > data_edges);
-
-
-}  // namespace pgrouting
-
-#endif  // SRC_COMMON_SRC_BASIC_VERTEX_H_
diff --git a/src/common/src/ch_vertex.h b/src/common/src/ch_vertex.h
index 6e986ff..4d80f13 100644
--- a/src/common/src/ch_vertex.h
+++ b/src/common/src/ch_vertex.h
@@ -32,8 +32,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 #include <sstream>
 #include <vector>
 
-#include "./pgr_types.h"
-#include "./identifiers.hpp"
+#include "c_types/pgr_edge_t.h"
+#include "cpp_common/identifiers.hpp"
 
 namespace pgrouting {
 
diff --git a/src/common/src/coordinates_input.c b/src/common/src/coordinates_input.c
index e41a525..80020db 100644
--- a/src/common/src/coordinates_input.c
+++ b/src/common/src/coordinates_input.c
@@ -22,13 +22,13 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#include "./postgres_connection.h"
+#include "c_common/coordinates_input.h"
 
-#include "./coordinates_input.h"
-#include "./debug_macro.h"
-#include "./pgr_types.h"
-#include "./get_check_data.h"
-#include "./time_msg.h"
+#include "c_types/column_info_t.h"
+
+#include "c_common/debug_macro.h"
+#include "c_common/get_check_data.h"
+#include "c_common/time_msg.h"
 
 
 
diff --git a/src/common/src/coordinates_input.h b/src/common/src/coordinates_input.h
deleted file mode 100644
index f9a8cfe..0000000
--- a/src/common/src/coordinates_input.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: distances_input.h
-#include "./pgr_types.h"
-
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-#ifndef SRC_COMMON_SRC_COORDINATES_INPUT_H_
-#define SRC_COMMON_SRC_COORDINATES_INPUT_H_
-#pragma once
-
-#include "./pgr_types.h"
-
-/*!
-  bigint id,
-  float x,
-  float y,
-  */
-void pgr_get_coordinates(
-        char *sql,
-        Coordinate_t **coordinates,
-        size_t *total_coordinates);
-
-#endif  // SRC_COMMON_SRC_COORDINATES_INPUT_H_
diff --git a/src/common/src/debug_macro.h b/src/common/src/debug_macro.h
deleted file mode 100644
index 952fde1..0000000
--- a/src/common/src/debug_macro.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-File: debug_macro.h
-
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifndef SRC_COMMON_SRC_DEBUG_MACRO_H_
-#define SRC_COMMON_SRC_DEBUG_MACRO_H_
-#pragma once
-
-#ifndef NDEBUG
-
-#include "./postgres_connection.h"
-
-#define PGR_DBG(...) \
-    elog(DEBUG3, __VA_ARGS__)
-#else
-#define PGR_DBG(...) do { ; } while (0)
-#endif
-
-#endif  // SRC_COMMON_SRC_DEBUG_MACRO_H_
diff --git a/src/common/src/e_report.c b/src/common/src/e_report.c
index 9e95a32..c88831b 100644
--- a/src/common/src/e_report.c
+++ b/src/common/src/e_report.c
@@ -23,9 +23,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
  ********************************************************************PGR-GNU*/
 
-#include "./postgres_connection.h"
-#include "./debug_macro.h"
-#include "./e_report.h"
+#include "c_common/postgres_connection.h"
+#include "c_common/debug_macro.h"
+#include "c_common/e_report.h"
 
 void
 pgr_notice(
diff --git a/src/common/src/e_report.h b/src/common/src/e_report.h
deleted file mode 100644
index aa8d7a7..0000000
--- a/src/common/src/e_report.h
+++ /dev/null
@@ -1,136 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: e_report.h
-
-Function's developer:
-Copyright (c) 2016 Celia Virginia Vergara Castillo
-Mail: vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- ********************************************************************PGR-GNU*/
-
-#pragma once
-
-/*! @name Postgres ereport
- *  Send notice or error to postgreSQL (cleans the char *)
- *
- *  From the C++ err_msg, log_msg, notice_msg are returned as a (char *),
- *
- *  Before exiting the C code the pointers need to be freed:
- *   - This task can be done when there is no error,
- *   - Call to ERROR, gives the control back to postgreSQL 
- *     - leaves a leak
- *
- * on C++ side, the message to be returned;
- * ~~~~{.c}
- * std::ostringstream log;
- * log << "the messaage";
- * log_msg = strdup(log.str().c_str());
- * ~~~~
- *
- *
- *  The char* messages are cleared.
- *  New messages are made with palloc
- *
- *  when there is ERROR then postgreSQL takes over control
- *
- *  @warning When error: Free all data not created with palloc before calling
- *
- */
-///@{
-/*! @brief notice & error
- *
- *  ~~~~{.c}
- *  pgr_notice(&log_msg, &notice_msg, &error_msg);
- *
- *  precondition: before calling ereport
- *      assert(!*log_msg);
- *      assert(!*notice_msg);
- *      assert(!*error_msg);
- *  ~~~~
- */
-void
-pgr_global_report(
-        char* log_msg,
-        char* notice_msg,
-        char* error_msg);
-
-/*! @brief notice with no hint
- *
- *  ~~~~{.c}
- *  pgr_notice(&log_msg, &notice_msg);
- *
- *  precondition: before calling ereport
- *      assert(!log_msg);
- *      assert(!notice_msg);
- *  ~~~~
- */
-void
-pgr_notice(
-        char* notice_msg
-        );
-
-/*! @brief notice with hint
- *
- *  ~~~~{.c}
- *  pgr_notice(&log_msg, &notice_msg);
- *
- *  precondition: before calling ereport
- *      assert(!log_msg);
- *      assert(!notice_msg);
- *  ~~~~
- */
-void
-pgr_notice2(
-        char* log_msg,
-        char* notice_msg
-        );
-
-/*! @brief error with no hint
- *
- * 
- *  ~~~~{.c}
- *  if (err_msg) {
- *      pfree(<data>);
- *  }
- *  pgr_error(&error_msg);
- *
- *  precondition: before calling ereport
- *      assert(!*error_msg);
- *  ~~~~
- */
-void
-pgr_error(char* error_msg);
-
-/*! @brief error with hint
- *
- *  ~~~~{.c}
- *  if (err_msg) {
- *      pfree(<data>);
- *  }
- *  pgr_error(&log_msg, &error_msg);
- *
- *  precondition: before calling ereport
- *      assert(!*log_msg);
- *      assert(!*error_msg);
- *  ~~~~
- */
-void
-pgr_error2(
-        char* log_msg,
-        char* error_msg);
-///@}
diff --git a/src/common/src/edges_input.c b/src/common/src/edges_input.c
index d2028db..2d816a2 100644
--- a/src/common/src/edges_input.c
+++ b/src/common/src/edges_input.c
@@ -22,12 +22,13 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#include "./postgres_connection.h"
-#include "./debug_macro.h"
-#include "./pgr_types.h"
-#include "./get_check_data.h"
-#include "./edges_input.h"
-#include "./time_msg.h"
+#include "c_common/edges_input.h"
+
+#include "c_types/column_info_t.h"
+
+#include "c_common/debug_macro.h"
+#include "c_common/get_check_data.h"
+#include "c_common/time_msg.h"
 
 static
 void fetch_basic_edge(
diff --git a/src/common/src/edges_input.h b/src/common/src/edges_input.h
deleted file mode 100644
index 20130d0..0000000
--- a/src/common/src/edges_input.h
+++ /dev/null
@@ -1,241 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: edges_input.h
-
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifndef SRC_COMMON_SRC_EDGES_INPUT_H_
-#define SRC_COMMON_SRC_EDGES_INPUT_H_
-#pragma once
-
-#include "./pgr_types.h"
-
-
-/*! @brief edges_sql without id parameter
- 
-~~~~{.c}
-SELECT source, target, cost, [reverse_cost]
-FROM edge_table;
-~~~~
-
-Currently used in: allpairs
-
- at param[in] edges_sql
- at param[out] edges
- at param[out] total_edges
-*/
-void pgr_get_edges_no_id(
-        char *edges_sql,
-        pgr_edge_t **edges,
-        size_t *total_edges);
-
-
-
-/*! @brief basic edge_sql
-
-For queries of the type:
-~~~~{.c}
-SELECT id, source, target, cost, [reverse_cost]
-FROM edge_table;
-~~~~
-
- at param[in] edges_sql
- at param[out] edges
- at param[out] total_edges
-*/
-void pgr_get_edges(
-        char *edges_sql,
-        pgr_edge_t **edges,
-        size_t *total_edges);
-void pgr_get_edges_reversed(
-        char *edges_sql,
-        pgr_edge_t **edges,
-        size_t *total_edges);
-
-
-
-/*! @brief Edges with x, y vertices values
-
-For queries of the type:
-~~~~{.c}
-SELECT id, source, target, cost, [reverse_cost], x1, y1, x2, y2
-FROM edge_table;
-~~~~
-
- at param[in] edges_sql
- at param[out] edges
- at param[out] total_edges
-*/
-void pgr_get_edges_xy(
-        char *edges_sql,
-        Pgr_edge_xy_t **edges,
-        size_t *total_edges);
-
-/*! @brief for many to 1 on aStar
-
-Used internally
-
-Transforms queries of the type:
-~~~~{.c}
-SELECT id, source, target, cost, [reverse_cost], x1, y1, x2, y2
-FROM edge_table;
-~~~~
-
-to
-~~~~{.c}
-SELECT id, target, source, cost, [reverse_cost], x1, y1, x2, y2
-FROM edge_table;
-~~~~
-
- at param[in] edges_sql
- at param[out] edges
- at param[out] total_edges
-*/
-void pgr_get_edges_xy_reversed(
-        char *edges_sql,
-        Pgr_edge_xy_t **edges,
-        size_t *total_edges);
-
-
-/*! @brief read edges for flow
-
-Edges:
-
-bigint id,
-bigint source,
-bigint target,
-bigint capacity,
-bigint reverse_capacity
-
- at param[in] sql
- at param[out] edges
- at param[out] total_edges
-*/
-void pgr_get_flow_edges(
-    char *sql,
-    pgr_edge_t **edges,
-    size_t *total_edges);
-
-/*! @brief read basic edges
-
-Edges:
-
-bigint id,
-bigint source,
-bigint target
-
- at param[in] sql
- at param[out] edges
- at param[out] total_edges
-*/
-void pgr_get_basic_edges(
-    char *sql,
-    pgr_basic_edge_t **edges,
-    size_t *total_edges);
-
-
-
-/* **************** FOR USERS DOCUMENTATION
-basic_edges_sql_start
-
-Description of the edges_sql query
-...............................................................................
-
-:edges_sql: an SQL query, which should return a set of rows with the following columns:
-
-================  ===================   ======== =================================================
-Column            Type                  Default  Description
-================  ===================   ======== =================================================
-**id**            ``ANY-INTEGER``                Identifier of the edge.
-**source**        ``ANY-INTEGER``                Identifier of the first end point vertex of the edge.
-**target**        ``ANY-INTEGER``                Identifier of the second end point vertex of the edge.
-**cost**          ``ANY-NUMERICAL``              Weight of the edge  `(source, target)`
-                                                   - When negative: edge `(source, target)` does not exist, therefore it's not part of the graph.
-**reverse_cost**  ``ANY-NUMERICAL``       -1     Weight of the edge `(target, source)`,
-                                                   - When negative: edge `(target, source)` does not exist, therefore it's not part of the graph.
-================  ===================   ======== =================================================
-
-Where:
-
-:ANY-INTEGER: SMALLINT, INTEGER, BIGINT
-:ANY-NUMERICAL: SMALLINT, INTEGER, BIGINT, REAL, FLOAT
-
-basic_edges_sql_end
-
-no_id_edges_sql_start
-
-Description of the edges_sql query
-...............................................................................
-
-:edges_sql: an SQL query, which should return a set of rows with the following columns:
-
-================  ===================   ======== =================================================
-Column            Type                  Default  Description
-================  ===================   ======== =================================================
-**source**        ``ANY-INTEGER``                Identifier of the first end point vertex of the edge.
-**target**        ``ANY-INTEGER``                Identifier of the second end point vertex of the edge.
-**cost**          ``ANY-NUMERICAL``              Weight of the edge  `(source, target)`
-                                                  * When negative: edge `(source, target)` does not exist, therefore it's not part of the graph.
-**reverse_cost**  ``ANY-NUMERICAL``       -1     Weight of the edge `(target, source)`,
-                                                  - When negative: edge `(target, source)` does not exist, therefore it's not part of the graph.
-================  ===================   ======== =================================================
-
-Where:
-
-:ANY-INTEGER: SMALLINT, INTEGER, BIGINT
-:ANY-NUMERICAL: SMALLINT, INTEGER, BIGINT, REAL, FLOAT
-
-no_id_edges_sql_end
-
-
-xy_edges_sql_start
-
-Description of the edges_sql query
-...............................................................................
-
-:edges_sql: an SQL query, which should return a set of rows with the following columns:
-
-================  ===================   ======== =================================================
-Column            Type                  Default  Description
-================  ===================   ======== =================================================
-**id**            ``ANY-INTEGER``                Identifier of the edge.
-**source**        ``ANY-INTEGER``                Identifier of the first end point vertex of the edge.
-**target**        ``ANY-INTEGER``                Identifier of the second end point vertex of the edge.
-**cost**          ``ANY-NUMERICAL``              Weight of the edge  `(source, target)`
-                                                   - When negative: edge `(source, target)` does not exist, therefore it's not part of the graph.
-**reverse_cost**  ``ANY-NUMERICAL``       -1     Weight of the edge `(target, source)`,
-                                                   - When negative: edge `(target, source)` does not exist, therefore it's not part of the graph.
-
-**x1**            ``ANY-NUMERICAL``              X coordinate of `source` vertex.
-**y1**            ``ANY-NUMERICAL``              Y coordinate of `source` vertex.
-**x2**            ``ANY-NUMERICAL``              X coordinate of `target` vertex.
-**y2**            ``ANY-NUMERICAL``              Y coordinate of `target` vertex.
-================  ===================   ======== =================================================
-
-Where:
-
-:ANY-INTEGER: SMALLINT, INTEGER, BIGINT
-:ANY-NUMERICAL: SMALLINT, INTEGER, BIGINT, REAL, FLOAT
-
-xy_edges_sql_end
-*/
-
-#endif  // SRC_COMMON_SRC_EDGES_INPUT_H_
diff --git a/src/common/src/get_check_data.c b/src/common/src/get_check_data.c
index 6e4528f..d49d6a0 100644
--- a/src/common/src/get_check_data.c
+++ b/src/common/src/get_check_data.c
@@ -22,14 +22,11 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#include "./../../common/src/postgres_connection.h"
+#include "c_common/get_check_data.h"
 
 #include "catalog/pg_type.h"
 
-
-#include "./pgr_types.h"
-#include "./debug_macro.h"
-#include "./get_check_data.h"
+#include "c_common/debug_macro.h"
 
 char*
 pgr_stradd(const char* a, const char* b) {
@@ -89,6 +86,9 @@ void pgr_fetch_column_info(
                 case CHAR1:
                     pgr_check_char_type(info[i]);
                     break;
+                case ANY_INTEGER_ARRAY:
+                    pgr_check_any_integerarray_type(info[i]);
+                    break;
                 default:
                     elog(ERROR, "Unknown type of column %s", info[i].name);
             }
@@ -122,6 +122,17 @@ pgr_check_any_integer_type(Column_info_t info) {
     }
 }
 
+void
+pgr_check_any_integerarray_type(Column_info_t info) {
+    if (!(info.type == INT2ARRAYOID
+                || info.type == INT4ARRAYOID
+                || info.type == 1016)) {
+        elog(ERROR,
+                "Unexpected Column '%s' type. Expected ANY-INTEGER-ARRAY",
+                info.name);
+    }
+}
+
 void pgr_check_any_numerical_type(Column_info_t info) {
     if (!(info.type == INT2OID
                 || info.type == INT4OID
@@ -193,7 +204,7 @@ pgr_SPI_getBigInt(HeapTuple *tuple, TupleDesc *tupdesc, Column_info_t info) {
 double
 pgr_SPI_getFloat8(HeapTuple *tuple, TupleDesc *tupdesc, Column_info_t info) {
     Datum binval;
-    bool isnull;
+    bool isnull = false;
     double value = 0.0;
     binval = SPI_getbinval(*tuple, *tupdesc, info.colNumber, &isnull);
     if (isnull)
diff --git a/src/common/src/get_check_data.h b/src/common/src/get_check_data.h
deleted file mode 100644
index 5140119..0000000
--- a/src/common/src/get_check_data.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: get_check_data.h
-
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifndef SRC_COMMON_SRC_GET_CHECK_DATA_H_
-#define SRC_COMMON_SRC_GET_CHECK_DATA_H_
-#pragma once
-
-bool column_found(int colNumber);
-
-void pgr_fetch_column_info(
-        Column_info_t info[],
-        int info_size);
-
-void pgr_check_any_integer_type(Column_info_t info);
-void pgr_check_any_numerical_type(Column_info_t info);
-void pgr_check_char_type(Column_info_t info);
-void pgr_check_text_type(Column_info_t info);
-void pgr_check_boolean_type(Column_info_t info);
-
-
-char pgr_SPI_getChar(
-        HeapTuple *tuple,
-        TupleDesc *tupdesc,
-        Column_info_t info,
-        bool strict,
-        char default_value);
-
-int64_t pgr_SPI_getBigInt(
-        HeapTuple *tuple,
-        TupleDesc *tupdesc,
-        Column_info_t info);
-
-double  pgr_SPI_getFloat8(
-        HeapTuple *tuple,
-        TupleDesc *tupdesc,
-        Column_info_t info);
-
-char* pgr_SPI_getText(
-        HeapTuple *tuple,
-        TupleDesc *tupdesc,
-        Column_info_t info);
-
-char* pgr_stradd(const char *a, const char *b);
-
-#endif  // SRC_COMMON_SRC_GET_CHECK_DATA_H_
diff --git a/src/common/src/identifier.cpp b/src/common/src/identifier.cpp
new file mode 100644
index 0000000..3975860
--- /dev/null
+++ b/src/common/src/identifier.cpp
@@ -0,0 +1,56 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#include "cpp_common/identifier.h"
+
+
+namespace pgrouting {
+
+
+Identifier::Identifier(
+        const size_t _idx,
+        const int64_t _id) :
+    m_idx(_idx),
+    m_id(_id) {}
+
+size_t
+Identifier::idx() const {
+    return m_idx;
+}
+
+int64_t
+Identifier::id() const {
+    return m_id;
+}
+
+void
+Identifier::reset_id(int64_t _id) {
+    m_id = _id;
+}
+
+std::ostream& operator<<(std::ostream& log, const Identifier &ident) {
+    log << "id(idx) = " << ident.id() << "(" << ident.idx() << ")";
+    return log;
+}
+
+}  // namespace pgrouting
diff --git a/src/common/src/identifiers.hpp b/src/common/src/identifiers.hpp
deleted file mode 100644
index 6860c3d..0000000
--- a/src/common/src/identifiers.hpp
+++ /dev/null
@@ -1,364 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-File: identifiers.hpp
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer: 
-Copyright (c) 2016 Rohith Reddy
-Mail: 
-
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- ********************************************************************PGR-GNU*/
-
-#ifndef SRC_COMMON_SRC_IDENTIFIERS_HPP_
-#define SRC_COMMON_SRC_IDENTIFIERS_HPP_
-#pragma once
-
-#include <set>
-#include <algorithm>
-#include <sstream>
-#include <iterator>
-#include <iostream>
-#include <stdexcept>
-
-template <typename T>
-class Identifiers {
- public:
-    typedef typename std::set<T>::iterator iterator;
-    typedef typename std::set<T>::const_iterator const_iterator;
-
-    Identifiers<T>() = default;
-    /* TODO avoid pointers */
-    Identifiers<T>(T* container, size_t size) {
-        for (size_t i = 0; i < size; ++i) {
-            m_ids.insert(container[i]);
-        }
-    }
-
-    const std::set<T>& ids() const;
-    size_t size() const { return m_ids.size(); }
-    //! \brief Returns true when the set is empty
-    inline bool empty() const { return m_ids.empty(); }
-    inline void clear() { m_ids.clear(); }
-    bool has(const T element) const;
-    bool isDisjoint(const T other) const;
-    bool isDisjoint(const Identifiers<T> &other) const;
-    void insert(const Identifiers<T> &other);
-    void insert(const T &other);
-    iterator begin() { return m_ids.begin(); }
-    const_iterator begin() const { return m_ids.begin(); }
-    iterator end() { return m_ids.end(); }
-    const_iterator end() const { return m_ids.end(); }
-    bool operator ==(const Identifiers<T> &other) const;
-    const T& operator[](size_t index) const;
-
-    //! @name  mathematical set operations
-    /// @{
-
-    Identifiers<T> operator +(const T &other) const;
-    Identifiers<T> operator *(const T &other) const;
-    Identifiers<T> operator -(const T &other) const;
-    Identifiers<T> operator +(const Identifiers<T> &other) const;
-    Identifiers<T> operator *(const Identifiers<T> &other) const;
-    Identifiers<T> operator -(const Identifiers<T> &other) const;
-    Identifiers<T>& operator +=(const T &other);
-    Identifiers<T>& operator *=(const T &other);
-    Identifiers<T>& operator -=(const T &other);
-    Identifiers<T>& operator +=(const Identifiers<T> &other);
-    Identifiers<T>& operator *=(const Identifiers<T> &other);
-    Identifiers<T>& operator -=(const Identifiers<T> &other);
-    /// @}
-
-    template<T>
-    friend std::ostream& operator<<(
-            std::ostream& os,
-            const Identifiers<T>& identifiers);
-
- private:
-    std::set<T> m_ids;
-};
-
-
-
-
-//! \brief Returns a set of identifiers of type *set<T>*
-template <typename T>
-const std::set<T>& Identifiers<T>::ids() const {
-    return m_ids;
-}
-
-//! \brief Returns a boolean value true or false
-/*!
-  @param [in] other Identifier of type *T*
-  Returns:
-  true: If other is in this set
-  false: Otherwise
-  */
-template <typename T>
-bool Identifiers<T>::has(const T other) const {
-    return (m_ids.find(other) != m_ids.end());
-}
-
-//! \brief Returns a boolean value true or false
-/*!
-  @param [in] other is an identifier of type *T*
-  Returns:
-  true: If other is not in this set
-  false: Otherwise
-  */
-template <typename T>
-bool Identifiers<T>::isDisjoint(const T other) const {
-    return (m_ids.find(other) == m_ids.end());
-}
-
-//! \brief Returns a boolean value true or false
-/*!
-  @param [in] other is set of identifiers of type *Identifiers<T>*
-  Returns:
-  true: If other and this set are disjoint
-  false: otherwise
-  */
-template <typename T>
-bool Identifiers<T>::isDisjoint(const Identifiers<T> &other) const {
-    for (auto identifier : other.ids()) {
-        if (!(m_ids.find(identifier) == m_ids.end())) {
-            return false;
-        }
-    }
-    return true;
-}
-
-//! \brief Inserts a set of identifiers of type *Identifiers<T>* to this set
-/*!
-  @param [in] other is a set of identifiers
-  */
-template <typename T>
-void Identifiers<T>::insert(const Identifiers<T> &other) {
-    m_ids.insert(other.ids().begin(), other.ids().end());
-}
-
-//! \brief Inserts an identifier of type *T* to this set
-/*!
-  @param [in] other is an identifier of type *T*
-  */
-template <typename T>
-void Identifiers<T>::insert(const T &other) {
-    m_ids.insert(other);
-}
-
-//! \brief Returns a boolean value
-/*!
-  @param [in] other is a set of identifiers of type *Identifiers<T>*
-  Returns:
-  true: If other and this set are equivalent
-  false: Otherwise
-  */
-template <typename T>
-bool Identifiers<T>::operator ==(const Identifiers<T> &other) const {
-    return std::equal(m_ids.begin(), m_ids.end(), other.ids().begin());
-}
-
-
-//! \brief Returns a set of identifiers of type *Identifiers<T>*
-/*!
-  @param [in] other is an identifier of type *T*
-  Returns the set union of other with this set
-  */
-template <typename T>
-Identifiers<T> Identifiers<T>::operator +(const T &other) const {
-    Identifiers<T> union_ids;
-    union_ids.insert(*this);
-    union_ids.insert(other);
-    return union_ids;
-}
-
-//! \brief Returns a set of identifiers of type *Identifiers<T>*
-/*!
-  @param [in] other is an identifier of type *T*
-  Returns the set intersection of other with this set
-  */
-template <typename T>
-Identifiers<T> Identifiers<T>::operator *(const T &other) const {
-    Identifiers<T> intersect_ids;
-    intersect_ids.insert(*this);
-    intersect_ids *= other;
-    return intersect_ids;
-}
-
-//! \brief Returns a set of identifiers of type *Identifiers<T>*
-/*!
-  @param [in] other is an identifier of type *T*
-  Returns the set difference between this set and other
-  */
-template <typename T>
-Identifiers<T> Identifiers<T>::operator -(const T &other) const {
-    Identifiers<T> diff_ids;
-    diff_ids.insert(*this);
-    diff_ids -= other;
-    return diff_ids;
-}
-
-//! \brief Returns a set of identifiers of type *Identifiers<T>*
-/*!
-  @param [in] other is a set of identifiers of type *Identifiers<T>*
-  Returns the set union of other with this set
-  */
-template <typename T>
-Identifiers<T> Identifiers<T>::operator +(const Identifiers<T> &other) const {
-    Identifiers<T> union_ids;
-    union_ids.insert(*this);
-    union_ids.insert(other);
-    return union_ids;
-}
-
-//! \brief Returns a set of identifiers of type *Identifiers<T>*
-/*!
-  @param [in] other is a set of identifiers of type *Identifiers<T>*
-  Returns the set intersection of other with this set
-  */
-template <typename T>
-Identifiers<T> Identifiers<T>::operator *(const Identifiers<T> &other) const {
-    Identifiers<T> intersect_ids;
-    intersect_ids.insert(*this);
-    intersect_ids *= other;
-    return intersect_ids;
-}
-
-//! \brief Returns a set of identifiers of type *Identifiers<T>*
-/*!
-  @param [in] other is a set of identifiers of type *Identifiers<T>*
-  Returns the set difference between this set and other
-  */
-template <typename T>
-Identifiers<T> Identifiers<T>::operator -(const Identifiers<T> &other) const {
-    Identifiers<T> diff_ids;
-    diff_ids.insert(*this);
-    diff_ids -= other;
-    return diff_ids;
-}
-
-
-//! \brief Returns a set of identifiers of type *Identifiers<T>&*
-/*!
-  @param [in] other is an identifiers of type *T*
-  Replaces this set with the set union of other with this set
-  */
-template <typename T>
-Identifiers<T>& Identifiers<T>::operator +=(const T &other) {
-    this->insert(other);
-    return *this;
-}
-
-//! \brief Returns a set of identifiers of type *Identifiers<T>&*
-/*!
-  @param [in] other is an identifiers of type *T*
-  Replaces this set with the set intersection of other with this set
-  */
-template <typename T>
-Identifiers<T>& Identifiers<T>::operator *=(const T &other) {
-    if (m_ids.find(other) != m_ids.end()) {
-        m_ids.clear();
-        m_ids.insert(other);
-    } else {
-        m_ids.clear();
-    }
-    return *this;
-}
-
-//! \brief Returns a set of identifiers of type *Identifiers<T>&*
-/*!
-  @param [in] other is a set of identifiers of type *T*
-  Replaces this set with the set difference between this set and other
-  */
-template <typename T>
-Identifiers<T>& Identifiers<T>::operator -=(const T &other) {
-    if (m_ids.find(other) != m_ids.end()) {
-        m_ids.erase(m_ids.find(other));
-    }
-    return *this;
-}
-
-
-//! \brief Returns a set of identifiers of type *Identifiers<T>&*
-/*!
-  @param [in] other is a set of identifiers of type *Identifiers<T>*
-  Replaces this set with the set union of other with this set
-  */
-template <typename T>
-Identifiers<T>& Identifiers<T>::operator +=(const Identifiers<T> &other) {
-    this->insert(other);
-    return *this;
-}
-
-//! \brief Returns a set of identifiers of type *Identifiers<T>&*
-/*!
-  @param [in] other is a set of identifiers of type *Identifiers<T>*
-  Replaces this set with the set intersection of other with this set
-  */
-template <typename T>
-Identifiers<T>& Identifiers<T>::operator *=(const Identifiers<T> &other) {
-    for (auto identifier : m_ids) {
-        if (other.ids().find(identifier) == other.ids().end()) {
-            m_ids.erase(m_ids.find(identifier));
-        }
-    }
-    return *this;
-}
-
-//! \brief Returns a set of identifiers of type *Identifiers<T>&*
-/*!
-  @param [in] other is a set of identifiers of type *Identifiers<T>*
-  Replaces this set with the set difference between this set and other
-  */
-template <typename T>
-Identifiers<T>& Identifiers<T>::operator -=(const Identifiers<T> &other) {
-    for (auto identifier : m_ids) {
-        if (other.ids().find(identifier) != other.ids().end()) {
-            m_ids.erase(m_ids.find(identifier));
-        }
-    }
-    return *this;
-}
-
-//! \brief Prints the set of identifiers
-template <typename T>
-std::ostream& operator<<(std::ostream& os, const Identifiers<T>& identifiers) {
-    os << "{";
-    for (auto identifier : identifiers.ids()) {
-        os << identifier << ", ";
-    }
-    os << "}";
-    return os;
-}
-
-//! \brief Returns an identifier of type *T* at position *index* in the set
-/*!
-  @param [in] index is of type size_t 
-  */
-template <typename T>
-const T& Identifiers<T>::operator[](size_t index) const {
-        if (index >= size()) {
-            throw std::out_of_range("Index out of bounds");
-        }
-        return *std::next(m_ids.begin(), index);
-}
-
-
-#endif  // SRC_COMMON_SRC_IDENTIFIERS_HPP_
diff --git a/src/common/src/matrixRows_input.c b/src/common/src/matrixRows_input.c
index 313c5c6..984a89e 100644
--- a/src/common/src/matrixRows_input.c
+++ b/src/common/src/matrixRows_input.c
@@ -22,13 +22,13 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#include "./postgres_connection.h"
+#include "c_common/matrixRows_input.h"
 
-#include "./debug_macro.h"
-#include "./pgr_types.h"
-#include "./get_check_data.h"
-#include "./time_msg.h"
-#include "./matrixRows_input.h"
+#include "c_types/column_info_t.h"
+
+#include "c_common/debug_macro.h"
+#include "c_common/get_check_data.h"
+#include "c_common/time_msg.h"
 
 
 
@@ -107,7 +107,7 @@ void pgr_get_matrixRows(
 
             SPITupleTable *tuptable = SPI_tuptable;
             TupleDesc tupdesc = SPI_tuptable->tupdesc;
-            PGR_DBG("processing %ld edge tupĺes", ntuples);
+            PGR_DBG("processing %ld matrix cell tupĺes", ntuples);
 
             size_t t;
             for (t = 0; t < ntuples; t++) {
@@ -131,5 +131,5 @@ void pgr_get_matrixRows(
     }
 
     (*total_rows) = total_tuples;
-    time_msg(" reading Edges", start_t, clock());
+    time_msg(" reading matrix cells", start_t, clock());
 }
diff --git a/src/common/src/matrixRows_input.h b/src/common/src/matrixRows_input.h
deleted file mode 100644
index 8ce6675..0000000
--- a/src/common/src/matrixRows_input.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: distances_input.h
-
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifndef SRC_COMMON_SRC_MATRIXROWS_INPUT_H_
-#define SRC_COMMON_SRC_MATRIXROWS_INPUT_H_
-#pragma once
-
-#include "./pgr_types.h"
-
-/*!
-  bigint start_vid,
-  bigint end_vid,
-  float agg_cost,
-  */
-void pgr_get_matrixRows(
-        char *sql,
-        Matrix_cell_t **distaces,
-        size_t *total_distances);
-
-#endif  // SRC_COMMON_SRC_MATRIXROWS_INPUT_H_
diff --git a/src/common/src/orders_input.c b/src/common/src/orders_input.c
new file mode 100644
index 0000000..3c4549d
--- /dev/null
+++ b/src/common/src/orders_input.c
@@ -0,0 +1,219 @@
+/*PGR-GNU*****************************************************************
+File: pd_orders_input.c
+
+Copyright (c) 2016 Celia Virginia Vergara Castillo
+vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+#include "c_common/orders_input.h"
+
+#include "c_types/column_info_t.h"
+
+#include "c_common/debug_macro.h"
+#include "c_common/get_check_data.h"
+#include "c_common/time_msg.h"
+
+
+static
+void fetch_pd_orders(
+        HeapTuple *tuple,
+        TupleDesc *tupdesc,
+        Column_info_t info[14],
+        bool matrix_version,
+        PickDeliveryOrders_t *pd_order) {
+    pd_order->id = pgr_SPI_getBigInt(tuple, tupdesc, info[0]);
+    pd_order->demand = pgr_SPI_getFloat8(tuple, tupdesc, info[1]);
+
+    /*
+     * the pickups
+     */
+    pd_order->pick_x = matrix_version ? 
+        0 : pgr_SPI_getFloat8(tuple, tupdesc, info[2]);
+    pd_order->pick_y =  matrix_version ? 
+        0 : pgr_SPI_getFloat8(tuple, tupdesc, info[3]);
+    pd_order->pick_open_t = pgr_SPI_getFloat8(tuple, tupdesc, info[4]);
+    pd_order->pick_close_t = pgr_SPI_getFloat8(tuple, tupdesc, info[5]);
+    pd_order->pick_service_t = column_found(info[6].colNumber) ?
+        pgr_SPI_getFloat8(tuple, tupdesc, info[6]) : 0;
+
+    /*
+     * the deliveries
+     */
+    pd_order->deliver_x =  matrix_version ?
+        0 : pgr_SPI_getFloat8(tuple, tupdesc, info[7]);
+    pd_order->deliver_y =  matrix_version ?
+        0 : pgr_SPI_getFloat8(tuple, tupdesc, info[8]);
+    pd_order->deliver_open_t = pgr_SPI_getFloat8(tuple, tupdesc, info[9]);
+    pd_order->deliver_close_t = pgr_SPI_getFloat8(tuple, tupdesc, info[10]);
+    pd_order->deliver_service_t = column_found(info[11].colNumber) ?
+        pgr_SPI_getFloat8(tuple, tupdesc, info[11]) : 0;
+
+    pd_order->pick_node_id = matrix_version ? 
+        pgr_SPI_getBigInt(tuple, tupdesc, info[12]) : 0;
+    pd_order->deliver_node_id = matrix_version ? 
+        pgr_SPI_getBigInt(tuple, tupdesc, info[13]) : 0;
+}
+
+
+
+static
+void
+pgr_get_pd_orders_general(
+        char *pd_orders_sql,
+        PickDeliveryOrders_t **pd_orders,
+        size_t *total_pd_orders,
+        bool with_id) {
+    clock_t start_t = clock();
+
+    const int tuple_limit = 1000000;
+
+    PGR_DBG("pgr_get_pd_orders_data");
+    PGR_DBG("%s", pd_orders_sql);
+
+    Column_info_t info[14];
+
+    int i;
+    for (i = 0; i < 14; ++i) {
+        info[i].colNumber = -1;
+        info[i].type = 0;
+        info[i].strict = true;
+        info[i].eType = ANY_NUMERICAL;
+    }
+
+    info[0].name = strdup("id");
+    info[1].name = strdup("demand");
+    info[2].name = strdup("p_x");
+    info[3].name = strdup("p_y");
+    info[4].name = strdup("p_open");
+    info[5].name = strdup("p_close");
+    info[6].name = strdup("p_service");
+    info[7].name = strdup("d_x");
+    info[8].name = strdup("d_y");
+    info[9].name = strdup("d_open");
+    info[10].name = strdup("d_close");
+    info[11].name = strdup("d_service");
+    info[12].name = strdup("p_node_id");
+    info[13].name = strdup("d_node_id");
+
+    info[0].eType = ANY_INTEGER;
+    info[12].eType = ANY_INTEGER;
+    info[13].eType = ANY_INTEGER;
+
+    /* service is optional*/
+    info[6].strict = false;
+    info[11].strict = false;
+    /* nodes are going to be ignored*/
+    info[12].strict = false;
+    info[13].strict = false;
+
+    if (with_id) {
+        /* (x,y) values are ignored*/
+        info[2].strict = false;
+        info[3].strict = false;
+        info[7].strict = false;
+        info[8].strict = false;
+        /* nodes are compulsory*/
+        info[12].strict = true;
+        info[13].strict = true;
+    }
+
+
+
+    size_t ntuples;
+    size_t total_tuples;
+
+    void *SPIplan;
+    SPIplan = pgr_SPI_prepare(pd_orders_sql);
+    Portal SPIportal;
+    SPIportal = pgr_SPI_cursor_open(SPIplan);
+
+    bool moredata = TRUE;
+    (*total_pd_orders) = total_tuples = 0;
+
+    /* on the first tuple get the column numbers */
+
+    while (moredata == TRUE) {
+        SPI_cursor_fetch(SPIportal, TRUE, tuple_limit);
+        if (total_tuples == 0) {
+            pgr_fetch_column_info(info, 14);
+        }
+        ntuples = SPI_processed;
+        total_tuples += ntuples;
+        PGR_DBG("SPI_processed %ld", ntuples);
+        if (ntuples > 0) {
+            if ((*pd_orders) == NULL)
+                (*pd_orders) = (PickDeliveryOrders_t *)palloc0(
+                        total_tuples * sizeof(PickDeliveryOrders_t));
+            else
+                (*pd_orders) = (PickDeliveryOrders_t *)repalloc(
+                        (*pd_orders),
+                        total_tuples * sizeof(PickDeliveryOrders_t));
+
+            if ((*pd_orders) == NULL) {
+                elog(ERROR, "Out of memory");
+            }
+
+            size_t t;
+            SPITupleTable *tuptable = SPI_tuptable;
+            TupleDesc tupdesc = SPI_tuptable->tupdesc;
+            PGR_DBG("processing %ld", ntuples);
+            for (t = 0; t < ntuples; t++) {
+                HeapTuple tuple = tuptable->vals[t];
+                fetch_pd_orders(&tuple, &tupdesc, info, with_id,
+                        &(*pd_orders)[total_tuples - ntuples + t]);
+            }
+            SPI_freetuptable(tuptable);
+        } else {
+            moredata = FALSE;
+        }
+    }
+
+    SPI_cursor_close(SPIportal);
+
+    if (total_tuples == 0) {
+        (*total_pd_orders) = 0;
+        PGR_DBG("NO orders");
+        return;
+    }
+
+    (*total_pd_orders) = total_tuples;
+    if (with_id) {
+        PGR_DBG("Finish reading %ld orders for matrix", (*total_pd_orders));
+    } else {
+        PGR_DBG("Finish reading %ld orders for eucledian", (*total_pd_orders));
+    }
+    time_msg("reading edges", start_t, clock());
+}
+
+void
+pgr_get_pd_orders(
+        char *pd_orders_sql,
+        PickDeliveryOrders_t **pd_orders,
+        size_t *total_pd_orders) {
+    pgr_get_pd_orders_general(pd_orders_sql, pd_orders, total_pd_orders, false);
+}
+
+void
+pgr_get_pd_orders_with_id(
+        char *pd_orders_sql,
+        PickDeliveryOrders_t **pd_orders,
+        size_t *total_pd_orders) {
+    pgr_get_pd_orders_general(pd_orders_sql, pd_orders, total_pd_orders, true);
+}
diff --git a/src/common/src/pgr_alloc.cpp b/src/common/src/pgr_alloc.cpp
index 3ba4c28..85d2353 100644
--- a/src/common/src/pgr_alloc.cpp
+++ b/src/common/src/pgr_alloc.cpp
@@ -22,7 +22,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#include "./pgr_alloc.hpp"
+#include "cpp_common/pgr_alloc.hpp"
 #include <string>
 
 char *
diff --git a/src/common/src/pgr_alloc.hpp b/src/common/src/pgr_alloc.hpp
deleted file mode 100644
index 67d6c9a..0000000
--- a/src/common/src/pgr_alloc.hpp
+++ /dev/null
@@ -1,83 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: pgr_palloc.hpp
-
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifndef SRC_COMMON_SRC_PGR_ALLOC_HPP_
-#define SRC_COMMON_SRC_PGR_ALLOC_HPP_
-#pragma once
-
-
-extern "C" {
-#if PGSQL_VERSION < 94
-#ifdef __MINGW32__
-#include <winsock2.h>
-#include <windows.h>
-#endif
-#endif
-
-#include "./postgres_connection.h"
-#include <utils/palloc.h>
-}
-
-#include <string>
-
-/*! \fn pgr_alloc(std::size_t size, T *ptr)
- 
-\brief allocates memory
-
-- Does a malloc or realloc depending on the ptr value
-- To be used only on C++ code
-- To be used when returning results to postgres
-- free must occur in the C code
-
-\param[in] size
-\param[in] ptr
-\returns pointer to the first byte of allocated space
-
- */
-
-
-template <typename T>
-T*
-pgr_alloc(std::size_t size, T* ptr) {
-    if (!ptr) {
-        ptr = static_cast<T*>(SPI_palloc(size * sizeof(T)));
-    } else {
-        ptr = static_cast<T*>(SPI_repalloc(ptr, size * sizeof(T)));
-    }
-    return ptr;
-}
-
-template <typename T>
-T*
-pgr_free(T* ptr) {
-    if (ptr) {
-        pfree(ptr);
-    }
-    return nullptr;
-}
-
-char *
-pgr_msg(const std::string &msg);
-
-#endif  // SRC_COMMON_SRC_PGR_ALLOC_HPP_
diff --git a/src/common/src/pgr_assert.cpp b/src/common/src/pgr_assert.cpp
index 2249a79..80a8602 100644
--- a/src/common/src/pgr_assert.cpp
+++ b/src/common/src/pgr_assert.cpp
@@ -9,7 +9,7 @@
  * the terms of the MIT License. Please file MIT-LICENSE for details.
  *
  *****************************************************************PGR-MIT*/
-#include "./pgr_assert.h"
+#include "cpp_common/pgr_assert.h"
 
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/src/common/src/pgr_assert.h b/src/common/src/pgr_assert.h
deleted file mode 100644
index 129f0e1..0000000
--- a/src/common/src/pgr_assert.h
+++ /dev/null
@@ -1,136 +0,0 @@
-/*PGR-MIT******************************************************************
- *
- * file pgr_assert.h
- *
- * Copyright 2014 Stephen Woodbridge <woodbri at imaptools.com>
- * Copyright 2014 Vicky Vergara <vicky_vergara at hotmail.com>
- *      
- * This is free software; you can redistribute and/or modify it under
- * the terms of the MIT License. Please file MIT-LICENSE for details.
- *  
- *****************************************************************PGR-MIT*/
-
-#ifndef  SRC_COMMON_SRC_PGR_ASSERT_H_
-#define  SRC_COMMON_SRC_PGR_ASSERT_H_
-#pragma once
-
-#include <string>
-#include <exception>
-
-#ifdef assert
-#undef assert
-#endif
-
-
-/*! @file
- *
- * Assertions Handling
- *
- * @brief An assert functionality that uses C++ throw().
- *
- * This file provides an alternative to assert functionality that will
- * convert all pgassert() into C++ throw using an AssertFailedException class.
- *
- * This allows catching errors and do appropriate clean up 
- * re-throw if needed to catch errors in the postgresql environment
- *
- * **Do not crash the backend server.**
- */
-
-
-#ifndef __STRING
-#define __STRING(x) #x
-#endif
-
-#define __TOSTRING(x) __STRING(x)
-
-
-/*! @def pgassert(expr)
- * @brief Uses the standard assert syntax.
- *
- * When an assertion fails it will throw \ref AssertFailedException and what()
- * will return a string like "AssertFailedException(2+2 == 5) at t.cpp:11"
- *
- * Example:
- * @code
-    #include <iostream>
-    #include "pgr_assert.h"
-
-    int main() {
-
-        try {
-            pgassert(2+2 == 4);
-            pgassert(2+2 == 5);
-        }
-        catch (AssertFailedException &e) {
-            std::cout << e.what() << "\n";
-        }
-        catch (std::exception& e) {
-            std::cout << e.what() << "\n";
-        }
-        catch(...) {
-            std::cout << "Caught unknown exception!\n";
-        }
-        return 0;
-    }
-    @endcode
- */
-#ifdef NDEBUG
-#define pgassert(expr) ((void)0)
-#else
-#define pgassert(expr) \
-    ((expr) \
-     ? static_cast<void>(0) \
-     : throw AssertFailedException( \
-         "AssertFailedException: " __STRING(expr) \
-         " at " __FILE__ ":" __TOSTRING(__LINE__) + get_backtrace() ) )
-#endif
-
-/*! @def pgassertwm(expr, msg)
-  @brief Adds a message to the assertion.
- 
- Example:
- @code
-    pgassert(2+2 == 5, "Expected a 4 as result");
-    std::ostringstream log;
-    log << "Expected a 4 as result"
-    pgassert(2+2 == 5, log.str());
- @endcode
-*/
-
-#ifdef NDEBUG
-#define pgassertwm(expr, msg) ((void)0)
-#else
-#define pgassertwm(expr, msg) \
-    ((expr) \
-     ? static_cast<void>(0) \
-     : throw AssertFailedException( \
-         "AssertFailedException: " __STRING(expr) \
-         " at " __FILE__ ":" __TOSTRING(__LINE__) + get_backtrace(msg) ) )
-#endif
-
-/*! @brief returns the execution path of the trace
- 
-  In case of a failed exception the backtrace can be is shown in the error message.
-
-  Does not work for windows, please read:
-  http://stackoverflow.com/questions/27639931/can-not-find-execinfo-h-when-setup-malpack
- 
- */
-std::string get_backtrace();
-std::string get_backtrace(const std::string &);
-
-/*! @class AssertFailedException
- * @brief Extends std::exception and is the exception that we throw if an assert fails.
- */
-class AssertFailedException : public std::exception {
- private:
-     const std::string str;   ///< Holds what() we got as message
-
- public:
-     virtual const char *what() const throw();
-     explicit AssertFailedException(std::string msg);
-     virtual ~AssertFailedException() throw() {}
-};
-
-#endif  //  SRC_COMMON_SRC_PGR_ASSERT_H_
diff --git a/src/common/src/pgr_base_graph.hpp b/src/common/src/pgr_base_graph.hpp
deleted file mode 100644
index d9517d7..0000000
--- a/src/common/src/pgr_base_graph.hpp
+++ /dev/null
@@ -1,870 +0,0 @@
-/*PGR-GNU*****************************************************************
- *
-
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifndef SRC_COMMON_SRC_PGR_BASE_GRAPH_HPP_
-#define SRC_COMMON_SRC_PGR_BASE_GRAPH_HPP_
-#pragma once
-
-#include <boost/graph/iteration_macros.hpp>
-#include <boost/config.hpp>
-#include <boost/graph/adjacency_list.hpp>
-#include <boost/graph/graph_utility.hpp>
-
-#include <deque>
-#include <vector>
-#include <set>
-#include <map>
-#include <limits>
-
-#include "./pgr_types.h"  // for pgr_edge_t
-
-#include "./ch_vertex.h"
-#include "./ch_edge.h"
-#include "./basic_vertex.h"
-#include "./xy_vertex.h"
-
-#include "./basic_edge.h"
-#include "./pgr_assert.h"
-
-namespace pgrouting {
-
-/*! @brief boost::graph simplified to pgRouting needs
-
-  This class gives the handling basics of a boost::graph of kind G
-  where G:
-  can be an undirected graph or a directed graph.
-
-Requiremets:
-============
-
-A vertex class T_V
-------------------
-
-Current Available vertex classes:
-- Basic_vertex
-- XY_vertex
-
-
-An edge class T_E
------------------
-
-Current Available edge classes:
-- Basic_edge
-
-extract_vertices function
--------------------------
-
-Data obtained from postgresql is stored in
-A C array of pgr_edge_t type.
-
-~~~~{.c}
-std::vector< T_V >
-extract_vertices(pgr_edge_t *, size_t)
-~~~~
-
-
-Data obtained from postgresql is stored in
-o a vector container.
-
-~~~~{.c}
-std::vector< T_V >
-extract_vertices(std::vector< pgr_edge_t >)
-~~~~
-
-Boost Graph
--------------
-
-The code is prepared to be used for:
-- boost::adjacency_list graph type
-- boost::undirectedS when the graph is UNDIRECTED
-- boost::bidirectionalS when the graph is DIRECTED
-
-
-~~~~{.c}
-boost::adjacency_list
-< boost::vecS,  // not tested with other values
-boost::vecS,  // not tested with other values
-boost::undirectedS,  // USinG UNDIRECTED
-Basic_vertex,  // the vertex class
-Basic_edge >   // the edge class
-~~~~
-
-
-
-Example Usage:
-=============
-
-For this example we will use:
-- Basic_vertex
-- Basic_edge
-- pgr_edge_t
-
-
-Create Graph type
------------------
-
-~~~~{.c}
-typedef typename
-graph::Pgr_base_graph <
-boost::adjacency_list <
-boost::vecS,
-    boost::vecS,
-    boost::bidirectionalS,
-    Basic_vertex,
-    Basic_edge >,
-    Basic_vertex,
-    Basic_edge >
-
-    DirectedGraph;
-~~~~
-
-
-Initializing the graph
-------------------------------
-
-Graph initialization is for seting the Vertices of the graph.
-
-//TODO discuss if also the edges
-
-Vector of unique vertices of the graph
-~~~~{.c}
-size_t total_edges;
-pgr_edge_t *my_edges = NULL;
-pgr_get_edges(edges_sql, &my_edges, &total_tuples);
-std::vector< Basic_Vertex > vertices(pgrouting::extract_vertices(my_edges));
-~~~~
-
-There are several ways to initialize the graph
-
-~~~~{.c}
-// 1. Initializes an empty graph
-pgrouting::DirectedGraph digraph(gType);
-
-// 2. Initializes a graph based on the vertices
-pgrouting::DirectedGraph digraph(
-    verices,
-    gType);
-vertices.clear();
-
-3. Initializes a graph based on the extracted vertices
-pgrouting::DirectedGraph digraph(
-    pgrouting::extract_vertices(my_edges, total_edges);
-    gType);
-
-4. Initializes a graph based on the extracted vertices
-pgrouting::DirectedGraph digraph(
-    pgrouting::extract_vertices(my_edges);
-    gType);
-~~~~
-
-1. Initializes an empty graph
-  - vertices vector size is 0
-
-2. Initializes a graph based on the vertices:
-  - vertices vector size is vertices.size()
-  - the vertices are inserted
-  - vertices container can be clared to free memory
-
-3. Initializes a graph based on the vertices extracted
-  - from edges stored on a C array
-  - the vertices are inserted
-
-4. Initializes a graph based on the vertices extracted
-  - from edges stored on a vector
-  - the vertices are inserted
-
-
-Fill the graph
----------------------
-
-After initializing the graph with the vertices, the edges can be added.
-
-~~~~{.c}
-// inserting edges from a C array
-digraph.insert_edges(my_edges, total_edges);
-
-// adding more edges to the graph from a vector container
-digraph.insert_edges(new_edges);
-~~~~
-
-*/
-
-namespace graph {
-template <class G, typename Vertex, typename Edge>
-class Pgr_base_graph;
-
-}  // namespace graph
-
-
-/** @name Graph types
-  Type      |   pgRouting
-  :---------: | :---------------------
-  UndirectedGraph | Basic undirected graph
-  DirectedGraph | Basic directed graph
-  xyUndirectedGraph | X & Y values stored on the vertex
-  xyDirectedGraph | X & Y values stored on the vertex
-  */
-//@{
-typedef graph::Pgr_base_graph <
-boost::adjacency_list < boost::vecS, boost::vecS,
-    boost::undirectedS,
-    Basic_vertex, Basic_edge >,
-    Basic_vertex, Basic_edge > UndirectedGraph;
-
-typedef graph::Pgr_base_graph <
-boost::adjacency_list < boost::vecS, boost::vecS,
-    boost::bidirectionalS,
-    Basic_vertex, Basic_edge >,
-    Basic_vertex, Basic_edge > DirectedGraph;
-
-typedef graph::Pgr_base_graph <
-boost::adjacency_list < boost::listS, boost::vecS,
-    boost::undirectedS,
-    XY_vertex, Basic_edge >,
-    XY_vertex, Basic_edge > xyUndirectedGraph;
-
-typedef graph::Pgr_base_graph <
-boost::adjacency_list < boost::listS, boost::vecS,
-    boost::bidirectionalS,
-    XY_vertex, Basic_edge >,
-    XY_vertex, Basic_edge > xyDirectedGraph;
-
-//@}
-
-
-namespace graph {
-
-template <class G, typename T_V, typename T_E>
-class Pgr_base_graph {
- public:
-     /** @name Graph related types
-       Type      |     boost meaning     |   pgRouting meaning
-       :---------: | :-------------------- | :----------------------
-       G        | boost::adjacency_list |   Graph
-       V        | vertex_descriptor     |   Think of it as local ID of a vertex
-       E        | edge_descriptor       |   Think of it as local ID of an edge
-       V_i      | vertex_iterator       |   To cycle the vertices of the Graph
-       E_i      | edge_iterator         |   To cycle the edges of the Graph
-       EO_i     | out_edge_iterator     |   To cycle the out going edges of a vertex
-       EI_i     | in_edge_iterator      |   To cycle the in coming edges of a vertex (only in bidirectional graphs)
-       */
-     //@{
-     typedef G B_G;
-     typedef T_E G_T_E;
-     typedef typename boost::graph_traits < G >::vertex_descriptor V;
-     typedef typename boost::graph_traits < G >::edge_descriptor E;
-     typedef typename boost::graph_traits < G >::vertex_iterator V_i;
-     typedef typename boost::graph_traits < G >::edge_iterator E_i;
-     typedef typename boost::graph_traits < G >::out_edge_iterator EO_i;
-     typedef typename boost::graph_traits < G >::in_edge_iterator EI_i;
-
-     typedef typename boost::graph_traits < G >::vertices_size_type
-         vertices_size_type;
-     typedef typename boost::graph_traits < G >::edges_size_type
-         edges_size_type;
-     typedef typename boost::graph_traits < G >::degree_size_type
-         degree_size_type;
-
-     //@}
-
-     /** @name Id handling related types
-       Type      |  Meaning       |   pgRouting Meaning
-       :---------: | :------------- | :----------------------
-       id_to_V  | maps id -> V   | given an id store the V
-       LI       | Left Iterator  | iterates over id_to_V
-       */
-     //@{
-
-     typedef typename std::map< int64_t, V > id_to_V;
-     typedef typename id_to_V::const_iterator LI;
-
-     //@}
-
-     //! @name The Graph
-     //@{
-     G graph;                //!< The graph
-     size_t m_num_vertices;  //!< local count.
-     graphType m_gType;      //!< type (DIRECTED or UNDIRECTED)
-     //@}
-
-     //! @name Id mapping handling
-     //@{
-
-     id_to_V  vertices_map;   //!< id -> graph id
-
-     //@}
-
-     //! @name Graph Modification
-     //@{
-     //! Used for storing the removed_edges
-
-     std::deque< T_E > removed_edges;
-
-     //@}
-
-
-
-     //! @name The Graph
-     //@{
-     //! @brief Constructor
-     /*!
-       - Prepares the graph to be of type gtype
-       - inserts the vertices
-       - The vertices must be checked (if necessary)  before calling the constructor
-       */
-     Pgr_base_graph< G , T_V, T_E >(
-             const std::vector< T_V > &vertices, graphType gtype)
-         : graph(vertices.size()),
-         m_num_vertices(vertices.size()),
-         m_gType(gtype) {
-             pgassert(boost::num_vertices(graph) == num_vertices());
-             pgassert(boost::num_vertices(graph) == vertices.size());
-#if 0
-             // This code does not work with contraction
-             pgassert(pgrouting::check_vertices(vertices) == 0);
-#endif
-             size_t i = 0;
-             for (auto vi = boost::vertices(graph).first;
-                     vi != boost::vertices(graph).second; ++vi) {
-                 vertices_map[vertices[i].id] = (*vi);
-                 graph[(*vi)].cp_members(vertices[i++]);
-             }
-         }
-
-     /*!
-       Prepares the _graph_ to be of type gtype with 0 vertices
-       */
-     explicit Pgr_base_graph< G , T_V, T_E >(graphType gtype)
-         : graph(0),
-         m_num_vertices(0),
-         m_gType(gtype) {
-         }
-
-
-     //! @name Insert edges
-     //@{
-     /*! @brief Inserts *count* edges of type *T* into the graph
-      *
-      *  Converts the edges to a std::vector<T> & calls the overloaded
-      *  twin function.
-      *
-      *  @param edges
-      *  @param count
-      */
-     template < typename T >
-         void insert_edges(const T *edges, int64_t count) {
-             insert_edges(std::vector < T >(edges, edges + count));
-         }
-
-     /*! @brief Inserts *count* edges of type *pgr_edge_t* into the graph
-
-        The set of edges should not have an illegal vertex defined
-
-        When the graph is empty calls:
-        - @b extract_vertices
-        and throws an exception if there are illegal vertices.
-
-
-        When developing:
-          - if an illegal vertex is found an exception is thrown
-          - That means that the set of vertices should be checked in the
-            code that is being developed
-
-        No edge is inserted when there is an error on the vertices
-
-        @param edges
-      */
-     template < typename T >
-         void insert_edges(const std::vector < T > &edges) {
-#if 0
-             // This code does not work with contraction
-             if (num_vertices() == 0) {
-                 auto vertices = pgrouting::extract_vertices(edges);
-                 pgassert(pgrouting::check_vertices(vertices) == 0);
-                 add_vertices(vertices);
-             }
-#endif
-             for (const auto edge : edges) {
-                 graph_add_edge(edge);
-             }
-         }
-     //@}
-
- private:
-     /*! @brief adds the vertices into the graph
-      *
-      * PRECONDITIONS:
-      * ~~~~~{.c}
-      * precondition(boost::num_vertices(graph) == 0);
-      * for (vertex : vertices)
-      *    precondition(!has_vertex(vertex.id));
-      * ~~~~~
-      *
-      * POSTCONDITIONS:
-      * ~~~~~{.c}
-      * postcondition(boost::num_vertices(graph) == vertices.size());
-      * for (vertex : vertices)
-      *    precondition(has_vertex(vertex.id));
-      * ~~~~~
-      */
-     void add_vertices(std::vector< T_V > vertices);
-
- public:
-     //! @name boost wrappers with original id
-     //@{
-     //! @brief get the out-degree  of a vertex
-
-     /*!
-       @returns 0: The out degree of a vertex that its not in the graph
-
-       @param [in] vertex_id original vertex id
-       */
-     degree_size_type out_degree(int64_t vertex_id) const {
-         if (!has_vertex(vertex_id)) {
-             return 0;
-         }
-         return out_degree(get_V(vertex_id));
-     }
-     degree_size_type in_degree(int64_t vertex_id) const {
-         if (!has_vertex(vertex_id)) {
-             return 0;
-         }
-         return is_directed()?
-             in_degree(get_V(vertex_id))
-             :  out_degree(get_V(vertex_id));
-     }
-
-
-     /*! @brief get the vertex descriptor of the vertex
-
-       When the vertex does not exist
-       - creates a new vetex
-
-       @return V: The vertex descriptor of the vertex
-       */
-     V get_V(const T_V &vertex) {
-         auto vm_s(vertices_map.find(vertex.id));
-         if (vm_s == vertices_map.end()) {
-             auto v =  add_vertex(graph);
-             graph[v].cp_members(vertex);
-             vertices_map[vertex.id] =  v;
-             return v;
-         }
-         return vm_s->second;
-     }
-
-     /*! @brief get the vertex descriptor of the vid
-
-       Call has_vertex(vid) before calling this function
-
-       @return V: The vertex descriptor of the vertex
-       */
-     V get_V(int64_t vid) const {
-         pgassert(has_vertex(vid));
-         return vertices_map.find(vid)->second;
-     }
-
-     //! @brief True when vid is in the graph
-     bool has_vertex(int64_t vid) const {
-         return vertices_map.find(vid) != vertices_map.end();
-     }
-
-
-
-     //! @name to be or not to be
-     //@{
-
-     bool is_directed() const {return m_gType == DIRECTED;}
-     bool is_undirected() const {return m_gType == UNDIRECTED;}
-     bool is_source(V v_idx, E e_idx) const {return v_idx == source(e_idx);}
-     bool is_target(V v_idx, E e_idx) const {return v_idx == target(e_idx);}
-
-     //@}
-
-     //! @name boost wrappers with V
-     //@{
-
-
-     T_E& operator[](E e_idx) {return graph[e_idx];}
-     const T_E& operator[](E e_idx) const {return graph[e_idx];}
-
-     T_V& operator[](V v_idx) {return graph[v_idx];}
-     const T_V& operator[](V v_idx) const {return graph[v_idx];}
-
-     V source(E e_idx) const {return boost::source(e_idx, graph);}
-     V target(E e_idx) const {return boost::target(e_idx, graph);}
-     V adjacent(V v_idx, E e_idx) const {
-         pgassert(is_source(v_idx, e_idx) || is_target(v_idx, e_idx));
-         return is_source(v_idx, e_idx)?
-             target(e_idx) :
-             source(e_idx);
-     }
-
-
-     /*! @brief in degree of a vertex
-      *
-      * - when its undirected there is no "concept" of in degree
-      *   - out degree is returned
-      * - on directed in degree of vertex is returned
-      */
-     degree_size_type in_degree(V &v) const {
-         return is_directed()?
-             boost::in_degree(v, graph) :
-             boost::out_degree(v, graph);
-     }
-
-     /*! @brief out degree of a vertex
-      *
-      * regardles of undirected or directed graph
-      * - out degree is returned
-      */
-     degree_size_type out_degree(V &v) const {
-         return boost::out_degree(v, graph);
-     }
-
-     //@}
-
-
-     //! @name edge disconection/reconnection
-     //@{
-     //! @brief Disconnects all edges from p_from to p_to
-     /*!
-
-       - No edge is disconnected if the vertices id's do not exist in the graph
-       - All removed edges are stored for future reinsertion
-       - All parallel edges are disconnected (automatically by boost)
-
-       ![disconnect_edge(2,3) on an UNDIRECTED graph](disconnectEdgeUndirected.png)
-       ![disconnect_edge(2,3) on a DIRECTED graph](disconnectEdgeDirected.png)
-
-       @param [in] p_from original vertex id of the starting point of the edge
-       @param [in] p_to   original vertex id of the ending point of the edge
-       */
-     void disconnect_edge(int64_t p_from, int64_t p_to);
-
-
-     //! @brief Disconnects the outgoing edges of a vertex
-     /*!
-
-       - No edge is disconnected if it doesn't exist in the graph
-       - Removed edges are stored for future reinsertion
-       - all outgoing edges with the edge_id are removed if they exist
-
-       @param [in] vertex_id original vertex
-       @param [in] edge_id original edge_id
-       */
-     void disconnect_out_going_edge(int64_t vertex_id, int64_t edge_id);
-
-
-
-
-     //! @brief Disconnects all incoming and outgoing edges from the vertex
-     /*!
-       boost::graph doesn't recommend th to insert/remove vertices, so a vertex removal is
-       simulated by disconnecting the vertex from the graph
-
-       - No edge is disconnected if the vertices id's do not exist in the graph
-       - All removed edges are stored for future reinsertion
-       - All parallel edges are disconnected (automatically by boost)
-
-       ![disconnect_vertex(2) on an UNDIRECTED graph](disconnectVertexUndirected.png)
-       ![disconnect_vertex(2) on a DIRECTED graph](disconnectVertexDirected.png)
-
-       @param [in] p_vertex original vertex id of the starting point of the edge
-       */
-     void disconnect_vertex(int64_t p_vertex);
-     void disconnect_vertex(V vertex);
-
-
-     //! @brief Reconnects all edges that were removed
-     void restore_graph();
-
-     //@}
-
-     //! @name only for stand by program
-     //@{
-
-     friend std::ostream& operator<<(
-             std::ostream &log, const Pgr_base_graph< G, T_V, T_E > &g) {
-         typename Pgr_base_graph< G, T_V, T_E >::EO_i out, out_end;
-
-         for (auto vi = vertices(g.graph).first;
-                 vi != vertices(g.graph).second; ++vi) {
-             if ((*vi) >= g.m_num_vertices) break;
-             log << (*vi) << ": " << " out_edges_of(" << g.graph[(*vi)] << "):";
-             for (boost::tie(out, out_end) = out_edges(*vi, g.graph);
-                     out != out_end; ++out) {
-                 log << ' '
-                     << g.graph[*out].id << "=("
-                     << g[g.source(*out)].id << ", "
-                     << g[g.target(*out)].id << ") = "
-                     << g.graph[*out].cost <<"\t";
-             }
-             log << std::endl;
-         }
-         return log;
-     }
-
-     //@}
-
-
-     int64_t get_edge_id(V from, V to, double &distance) const;
-
-     size_t num_vertices() const { return boost::num_vertices(graph);}
-
-
-     void graph_add_edge(const T_E &edge);
-
-     template < typename T >
-         void graph_add_edge(const T &edge);
-};
-
-
-
-
-template < class G, typename T_V, typename T_E >
-void
-Pgr_base_graph< G, T_V, T_E >::disconnect_edge(int64_t p_from, int64_t p_to) {
-    T_E d_edge;
-
-    // nothing to do, the vertex doesn't exist
-    if (!has_vertex(p_from) || !has_vertex(p_to)) return;
-
-    EO_i out, out_end;
-    V g_from(get_V(p_from));
-    V g_to(get_V(p_to));
-
-    // store the edges that are going to be removed
-    for (boost::tie(out, out_end) = out_edges(g_from, graph);
-            out != out_end; ++out) {
-        if (target(*out) == g_to) {
-            d_edge.id = graph[*out].id;
-            d_edge.source = graph[source(*out)].id;
-            d_edge.target = graph[target(*out)].id;
-            d_edge.cost = graph[*out].cost;
-            removed_edges.push_back(d_edge);
-        }
-    }
-    // the actual removal
-    boost::remove_edge(g_from, g_to, graph);
-}
-
-
-
-template < class G, typename T_V, typename T_E >
-void
-Pgr_base_graph< G, T_V, T_E >::disconnect_out_going_edge(
-        int64_t vertex_id, int64_t edge_id) {
-    T_E d_edge;
-
-    // nothing to do, the vertex doesn't exist
-    if (!has_vertex(vertex_id)) return;
-    auto v_from(get_V(vertex_id));
-
-    EO_i out, out_end;
-    bool change = true;
-    // store the edge that are going to be removed
-    while (change) {
-        change = false;
-        for (boost::tie(out, out_end) = out_edges(v_from, graph);
-                out != out_end; ++out) {
-            if (graph[*out].id  == edge_id) {
-                d_edge.id = graph[*out].id;
-                d_edge.source = graph[source(*out)].id;
-                d_edge.target = graph[target(*out)].id;
-                d_edge.cost = graph[*out].cost;
-                removed_edges.push_back(d_edge);
-                boost::remove_edge((*out), graph);
-                change = true;
-                break;
-            }
-        }
-    }
-}
-
-
-template < class G, typename T_V, typename T_E >
-void
-Pgr_base_graph< G, T_V, T_E >::disconnect_vertex(int64_t vertex) {
-    if (!has_vertex(vertex)) return;
-    disconnect_vertex(get_V(vertex));
-}
-
-template < class G, typename T_V, typename T_E >
-void
-Pgr_base_graph< G, T_V, T_E >::disconnect_vertex(V vertex) {
-    T_E d_edge;
-
-    EO_i out, out_end;
-    // store the edges that are going to be removed
-    for (boost::tie(out, out_end) = out_edges(vertex, graph);
-            out != out_end; ++out) {
-        d_edge.id = graph[*out].id;
-        d_edge.source = graph[source(*out)].id;
-        d_edge.target = graph[target(*out)].id;
-        d_edge.cost = graph[*out].cost;
-        removed_edges.push_back(d_edge);
-    }
-
-    // special case
-    if (m_gType == DIRECTED) {
-        EI_i in, in_end;
-        for (boost::tie(in, in_end) = in_edges(vertex, graph);
-                in != in_end; ++in) {
-            d_edge.id = graph[*in].id;
-            d_edge.source = graph[source(*in)].id;
-            d_edge.target = graph[target(*in)].id;
-            d_edge.cost = graph[*in].cost;
-            removed_edges.push_back(d_edge);
-        }
-    }
-
-    // delete incoming and outgoing edges from the vertex
-    boost::clear_vertex(vertex, graph);
-}
-
-template < class G, typename T_V, typename T_E >
-void
-Pgr_base_graph< G, T_V, T_E >::restore_graph() {
-    while (removed_edges.size() != 0) {
-        graph_add_edge(removed_edges[0]);
-        removed_edges.pop_front();
-    }
-}
-
-
-template < class G, typename T_V, typename T_E >
-int64_t
-Pgr_base_graph< G, T_V, T_E >::get_edge_id(
-        V from,
-        V to,
-        double &distance) const {
-    E e;
-    EO_i out_i, out_end;
-    V v_source, v_target;
-    double minCost =  (std::numeric_limits<double>::max)();
-    int64_t minEdge = -1;
-    for (boost::tie(out_i, out_end) = boost::out_edges(from, graph);
-            out_i != out_end; ++out_i) {
-        e = *out_i;
-        v_target = target(e);
-        v_source = source(e);
-        if ((from == v_source) && (to == v_target)
-                && (distance == graph[e].cost))
-            return graph[e].id;
-        if ((from == v_source) && (to == v_target)
-                && (minCost > graph[e].cost)) {
-            minCost = graph[e].cost;
-            minEdge = graph[e].id;
-        }
-    }
-    distance = minEdge == -1? 0: minCost;
-    return minEdge;
-}
-
-
-template < class G, typename T_V, typename T_E >
-void
-Pgr_base_graph< G, T_V, T_E >::graph_add_edge(const T_E &edge ) {
-    bool inserted;
-    typename Pgr_base_graph< G, T_V, T_E >::LI vm_s, vm_t;
-    typename Pgr_base_graph< G, T_V, T_E >::E e;
-
-    vm_s = vertices_map.find(edge.source);
-    if (vm_s == vertices_map.end()) {
-        vertices_map[edge.source]=  m_num_vertices;
-        vm_s = vertices_map.find(edge.source);
-    }
-
-    vm_t = vertices_map.find(edge.target);
-    if (vm_t == vertices_map.end()) {
-        vertices_map[edge.target]=  m_num_vertices;
-        vm_t = vertices_map.find(edge.target);
-    }
-
-    if (edge.cost >= 0) {
-        boost::tie(e, inserted) =
-            boost::add_edge(vm_s->second, vm_t->second, graph);
-        graph[e].cp_members(edge);
-    }
-}
-
-
-template < class G, typename T_V, typename T_E >
-template < typename T>
-void
-Pgr_base_graph< G, T_V, T_E >::graph_add_edge(const T &edge) {
-    bool inserted;
-    typename Pgr_base_graph< G, T_V, T_E >::E e;
-    if ((edge.cost < 0) && (edge.reverse_cost < 0))
-        return;
-
-    /*
-     * true: for source
-     * false: for target
-     */
-    auto vm_s = get_V(T_V(edge, true));
-    auto vm_t = get_V(T_V(edge, false));
-
-    pgassert(vertices_map.find(edge.source) != vertices_map.end());
-    pgassert(vertices_map.find(edge.target) != vertices_map.end());
-    if (edge.cost >= 0) {
-        boost::tie(e, inserted) =
-            boost::add_edge(vm_s, vm_t, graph);
-        graph[e].cost = edge.cost;
-        graph[e].id = edge.id;
-    }
-
-    if (edge.reverse_cost >= 0) {
-        boost::tie(e, inserted) =
-            boost::add_edge(vm_t, vm_s, graph);
-
-        graph[e].cost = edge.reverse_cost;
-        graph[e].id = edge.id;
-    }
-}
-
-/******************  PRIVATE *******************/
-
-template < class G, typename T_V, typename T_E >
-void
-Pgr_base_graph< G, T_V, T_E >::add_vertices(
-        std::vector< T_V > vertices) {
-    pgassert(m_num_vertices == 0);
-    for (const auto vertex : vertices) {
-        pgassert(vertices_map.find(vertex.id) == vertices_map.end());
-
-        auto v =  add_vertex(graph);
-        vertices_map[vertex.id] =  m_num_vertices++;
-        graph[v].cp_members(vertex);
-
-        pgassert(boost::num_vertices(graph) == num_vertices());
-    }
-    return;
-}
-
-}  // namespace graph
-}  // namespace pgrouting
-
-#endif  // SRC_COMMON_SRC_PGR_BASE_GRAPH_HPP_
diff --git a/src/common/src/pgr_types.h b/src/common/src/pgr_types.h
deleted file mode 100644
index 4ac8339..0000000
--- a/src/common/src/pgr_types.h
+++ /dev/null
@@ -1,265 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: pgr_types.h
-
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifndef SRC_COMMON_SRC_PGR_TYPES_H_
-#define SRC_COMMON_SRC_PGR_TYPES_H_
-#pragma once
-
-
-#ifdef __cplusplus
-
-#include <cstddef>
-
-#else  // __cplusplus
-
-// for bool
-#ifdef __GNUC__
-#pragma GCC diagnostic ignored "-pedantic"
-#endif
-
-#include <postgres.h>
-
-#ifdef __GNUC__
-#pragma GCC diagnostic pop
-#endif
-
-// For NULL & size_t
-#include <stdlib.h>
-
-
-#endif  // __cplusplus
-
-// For int64_t etc
-#include <stdint.h>
-
-typedef struct  {
-    int64_t id;
-    double x;
-    double y;
-} Coordinate_t;
-
-typedef struct edge_astar {
-    int id;
-    int source;
-    int target;
-    double cost;
-    double reverse_cost;
-    double s_x;
-    double s_y;
-    double t_x;
-    double t_y;
-} edge_astar_t;
-
-typedef struct {
-    int64_t id;
-    int64_t source;
-    int64_t target;
-    double cost;
-    double reverse_cost;
-    double x1;
-    double y1;
-    double x2;
-    double y2;
-} Pgr_edge_xy_t;
-
-
-typedef struct {
-    int64_t vertex_id;
-    int64_t edge_id;
-    double cost;
-} path_element_t;
-
-/*
- * This one is for processing
- */
-struct Path_t{
-    int64_t node;
-    int64_t edge;
-    double cost;
-    double agg_cost;
-};
-
-/*
- * This ones are for returning the info to postgres
- */
-
-typedef struct {
-    int seq;
-    int64_t start_id;
-    int64_t end_id;
-    int64_t node;
-    int64_t edge;
-    double cost;
-    double agg_cost;
-} General_path_element_t;
-
-
-typedef struct {
-    int route_id;
-    int path_id;
-    int path_seq;
-    int64_t start_vid;
-    int64_t end_vid;
-    int64_t node;
-    int64_t edge;
-    double cost;
-    double agg_cost;
-    double route_agg_cost;
-} Routes_t;
-
-
-typedef struct {
-  int64_t id;
-  int64_t source;
-  int64_t target;
-  bool going;
-  bool coming;
-  int64_t edge_id;
-} pgr_basic_edge_t;
-
-typedef struct {
-    int64_t id;
-    int64_t source;
-    int64_t target;
-    double cost;
-    double reverse_cost;
-} pgr_edge_t;
-
-typedef struct {
-  int64_t edge;
-  int64_t source;
-  int64_t target;
-  int64_t flow;
-  int64_t residual_capacity;
-} pgr_flow_t;
-
-typedef struct {
-    int seq;
-    int64_t source;
-    int64_t edge;
-    double cost;
-} pgr_path_t;
-
-typedef struct matrix_cell {
-    int64_t from_vid;
-    int64_t to_vid;
-    double cost;
-} Matrix_cell_t;
-
-// Restrictions used in pgr_turnRestrictions
-
-#define  MAX_RULE_LENGTH 5
-typedef struct {
-    int64_t target_id;
-    double to_cost;
-    int64_t via[MAX_RULE_LENGTH];
-}
-Restrict_t;
-
-typedef struct {
-    int64_t pid;
-    int64_t edge_id;
-    char side;  // 'r', 'l', 'b' (default is both)
-    double fraction;
-    int64_t vertex_id;  // number is negative and is used for processing
-} Point_on_edge_t;
-
-// used for getting the data
-typedef
-enum {
-    ANY_INTEGER,
-    ANY_NUMERICAL,
-    TEXT,
-    CHAR1
-} expectType;
-
-typedef
-struct {
-    int colNumber;
-    uint64_t type;
-    bool strict;
-    char *name;
-    expectType eType;
-} Column_info_t;
-
-
-/**************************************************************************
- * return type for contraction
- * ***********************************************************************/
-typedef struct {
-    int64_t id;
-    char* type;
-    int64_t source;
-    int64_t target;
-    double cost;
-    int64_t *contracted_vertices;
-    int contracted_vertices_size;
-} pgr_contracted_blob;
-
-
-
-enum graphType {UNDIRECTED = 0, DIRECTED};
-
-/**************************************************************************
- * pickDelivery types
- * ***********************************************************************/
-typedef struct {
-    int64_t id;
-    double x;
-    double y;
-    double demand;
-    double Etime;
-    double Ltime;
-    double Stime;
-    int64_t Pindex;
-    int64_t Dindex;
-    double Ddist;
-} Customer_t;
-
-/*
-   OUT seq INTEGER,        done in the .c code
-   OUT vehicle_seq INTEGER,
-   OUT vehicle_id INTEGER,
-   OUT order_id BIGINT,
-   OUT travelTime FLOAT,
-   OUT arrivalTime FLOAT,
-   OUT waitTime FLOAT,
-   OUT serviceTime FLOAT,
-   OUT departureTime FLOAT,
-   */
-
-typedef struct  {
-    int vehicle_id;
-    int vehicle_seq;
-    int64_t order_id;
-    double travelTime;
-    double arrivalTime;
-    double waitTime;
-    double serviceTime;
-    double departureTime;
-} General_vehicle_orders_t;
-
-/*************************************************************************/
-
-#endif  // SRC_COMMON_SRC_PGR_TYPES_H_
diff --git a/src/common/src/points_input.c b/src/common/src/points_input.c
index e44edea..54ca17f 100644
--- a/src/common/src/points_input.c
+++ b/src/common/src/points_input.c
@@ -22,11 +22,12 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#include "./postgres_connection.h"
-#include "./debug_macro.h"
-#include "./pgr_types.h"
-#include "./get_check_data.h"
-#include "./points_input.h"
+#include "c_common/points_input.h"
+
+#include "c_types/column_info_t.h"
+
+#include "c_common/debug_macro.h"
+#include "c_common/get_check_data.h"
 
 
 
diff --git a/src/common/src/points_input.h b/src/common/src/points_input.h
deleted file mode 100644
index d54115f..0000000
--- a/src/common/src/points_input.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: points_input.h
-
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifndef SRC_COMMON_SRC_POINTS_INPUT_H_
-#define SRC_COMMON_SRC_POINTS_INPUT_H_
-#pragma once
-
-#include "./pgr_types.h"
-
-/*! @brief pgr_get_points 
-
-For queries of the type:
-~~~~{.c}
-SELECT pid, edge_id, fraction, [side]
-FROM edge_table;
-~~~~
-
- at param[in] points_sql
- at param[out] points
- at param[out] total_points
-*/
-void pgr_get_points(
-        char *points_sql,
-        Point_on_edge_t **points,
-        size_t *total_points);
-
-
-/* ******************** FOR USERS DOCUMENTATION
-
-points_sql_start
-
-Description of the Points SQL query
-...............................................................................
-
-:points_sql: an SQL query, which should return a set of rows with the following columns:
-
-============ ================= =================================================
-Column            Type              Description
-============ ================= =================================================
-**pid**      ``ANY-INTEGER``   (optional) Identifier of the point.
-                                 - If column present, it can not be NULL. 
-                                 - If column not present, a sequential identifier will be given automatically.
-
-**edge_id**  ``ANY-INTEGER``   Identifier of the "closest" edge to the point.
-**fraction** ``ANY-NUMERICAL`` Value in <0,1> that indicates the relative postition from the first end point of the edge.
-**side**     ``CHAR``          (optional) Value in ['b', 'r', 'l', NULL] indicating if the point is:
-                                 - In the right, left of the edge or
-                                 - If it doesn't matter with 'b' or NULL.
-                                 - If column not present 'b' is considered.
-============ ================= =================================================
-
-Where:
-
-:ANY-INTEGER: smallint, int, bigint
-:ANY-NUMERICAL: smallint, int, bigint, real, float
-
-points_sql_end
-
-*/
-
-
-#endif  // SRC_COMMON_SRC_POINTS_INPUT_H_
diff --git a/src/common/src/postgres_connection.c b/src/common/src/postgres_connection.c
index d82e85f..6765894 100644
--- a/src/common/src/postgres_connection.c
+++ b/src/common/src/postgres_connection.c
@@ -22,14 +22,14 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#include "./postgres_connection.h"
+#include "c_common/postgres_connection.h"
 #include "utils/builtins.h"
 
 #include "catalog/pg_type.h"
 
 #include <string.h>
 
-#include "./debug_macro.h"
+#include "c_common/debug_macro.h"
 
 void
 pgr_send_error(int errcode) {
diff --git a/src/common/src/postgres_connection.h b/src/common/src/postgres_connection.h
deleted file mode 100644
index ffbad67..0000000
--- a/src/common/src/postgres_connection.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: postgres_connection.h
-
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-#ifndef SRC_COMMON_SRC_POSTGRES_CONNECTION_H_
-#define SRC_COMMON_SRC_POSTGRES_CONNECTION_H_
-#pragma once
-
-
-
-#ifdef __GNUC__
-#pragma GCC diagnostic ignored "-pedantic"
-#endif
-
-#include <postgres.h>
-
-
-
-#ifdef __GNUC__
-#pragma GCC diagnostic ignored "-Wsign-conversion"
-#pragma GCC diagnostic ignored "-Wunused-parameter"
-#endif
-
-#include "executor/spi.h"
-
-#ifdef __GNUC__
-#pragma GCC diagnostic pop
-#pragma GCC diagnostic pop
-#pragma GCC diagnostic pop
-#endif
-
-#include "utils/builtins.h"  // for text_to_cstring
-
-#if PGSQL_VERSION > 92
-#include "access/htup_details.h"
-#endif
-
-
-#ifdef __GNUC__
-#pragma GCC diagnostic ignored "-Wunused-parameter"
-#endif
-
-#include <funcapi.h>
-#include <fmgr.h>
-
-#ifdef __GNUC__
-#pragma GCC diagnostic pop
-#endif
-
-
-void pgr_send_error(int errcode);
-void pgr_SPI_finish(void);
-void pgr_SPI_connect(void);
-SPIPlanPtr pgr_SPI_prepare(char* sql);
-Portal pgr_SPI_cursor_open(SPIPlanPtr SPIplan);
-char* pgr_cstring2char(const char *inStr);
-
-#endif  // SRC_COMMON_SRC_POSTGRES_CONNECTION_H_
diff --git a/src/common/src/restrict_input.c b/src/common/src/restrict_input.c
new file mode 100644
index 0000000..2012a3f
--- /dev/null
+++ b/src/common/src/restrict_input.c
@@ -0,0 +1,173 @@
+/*PGR-GNU*****************************************************************
+File: restrict_input.c
+
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#include "c_common/restrict_input.h"
+
+#include "c_types/column_info_t.h"
+
+#include "c_common/debug_macro.h"
+#include "c_common/time_msg.h"
+#include "c_common/get_check_data.h"
+
+#if 1
+
+static
+void fetch_restriction(
+        HeapTuple *tuple,
+        TupleDesc *tupdesc,
+        Column_info_t info[4],
+        Restrict_t *restriction) {
+    restriction->id = pgr_SPI_getBigInt(tuple, tupdesc, info[0]);
+    restriction->cost = pgr_SPI_getFloat8(tuple, tupdesc,  info[1]);
+    char *str = DatumGetCString(
+            SPI_getvalue(*tuple, *tupdesc, info[2].colNumber));
+
+// TODO(someone) because its text, no guarantee the text read is correct
+// move this code to c++ to tokenize the integers.
+    int i = 0;
+    for (i = 0; i < MAX_RULE_LENGTH; ++i) restriction->restricted_edges[i] = -1;
+    str[0] = ',';
+    if (str != NULL) {
+        char *token = NULL;
+        int i = 0;
+
+        token = (char *)strtok(str, " ,");
+
+        while (token != NULL && i < MAX_RULE_LENGTH) {
+            restriction->restricted_edges[i] = atoi(token);
+            i++;
+            token = (char *)strtok(NULL, " ,");
+        }
+    }
+}
+
+#endif
+
+
+void
+pgr_get_restriction_data(
+        char *restrictions_sql,
+        Restrict_t **restrictions,
+        size_t *total_restrictions) {
+    const int tuple_limit = 1000000;
+    clock_t start_t = clock();
+
+    PGR_DBG("pgr_get_restriction_data");
+    PGR_DBG("%s", restrictions_sql);
+    Column_info_t info[3];
+
+    int i;
+    for (i = 0; i < 3; ++i) {
+        info[i].colNumber = -1;
+        info[i].type = 0;
+        info[i].strict = true;
+        info[i].eType = ANY_INTEGER;
+    }
+    info[0].name = strdup("id");
+    info[1].name = strdup("cost");
+    info[2].name = strdup("restricted_edges");
+
+    info[1].eType = ANY_NUMERICAL;
+    info[2].eType = ANY_INTEGER_ARRAY;
+
+#if 0
+    // experiment starts
+
+    size_t total_tuples = (*total_restrictions) ;
+
+    (*restrictions) = (Restrict_t *)palloc0(sizeof(Restrict_t));
+
+    (*restrictions)[0].id = 1;
+    (*restrictions)[0].cost = -1;
+    (*restrictions)[0].restricted_edges[0] = 4;
+    (*restrictions)[0].restricted_edges[1] = 7;
+
+    // experiment ends
+#endif
+
+#if 1
+    size_t ntuples;
+    size_t total_tuples;
+
+    void *SPIplan;
+    SPIplan = pgr_SPI_prepare(restrictions_sql);
+    Portal SPIportal;
+    SPIportal = pgr_SPI_cursor_open(SPIplan);
+
+    bool moredata = TRUE;
+    (*total_restrictions) = total_tuples = 0;
+
+
+    while (moredata == TRUE) {
+        SPI_cursor_fetch(SPIportal, TRUE, tuple_limit);
+        if (total_tuples == 0) {
+            pgr_fetch_column_info(info, 3);
+        }
+        ntuples = SPI_processed;
+        total_tuples += ntuples;
+        PGR_DBG("SPI_processed %ld", ntuples);
+        if (ntuples > 0) {
+            if ((*restrictions) == NULL)
+                (*restrictions) = (Restrict_t *)palloc0(
+                        total_tuples * sizeof(Restrict_t));
+            else
+                (*restrictions) = (Restrict_t *)repalloc(
+                        (*restrictions),
+                        total_tuples * sizeof(Restrict_t));
+
+            if ((*restrictions) == NULL) {
+                elog(ERROR, "Out of memory");
+            }
+
+            size_t t;
+            SPITupleTable *tuptable = SPI_tuptable;
+            TupleDesc tupdesc = SPI_tuptable->tupdesc;
+            PGR_DBG("processing %ld", ntuples);
+            for (t = 0; t < ntuples; t++) {
+                HeapTuple tuple = tuptable->vals[t];
+                fetch_restriction(&tuple, &tupdesc, info,
+                        &(*restrictions)[total_tuples - ntuples + t]);
+            }
+            SPI_freetuptable(tuptable);
+        } else {
+            moredata = FALSE;
+        }
+    }
+
+    SPI_cursor_close(SPIportal);
+
+    if (total_tuples == 0) {
+        (*total_restrictions) = 0;
+        PGR_DBG("NO restrictions");
+        return;
+    }
+
+    (*total_restrictions) = total_tuples;
+#endif
+    PGR_DBG("Finish reading %ld data, %ld",
+            total_tuples,
+            (*total_restrictions));
+    clock_t end_t = clock();
+    time_msg(" reading Restrictions", start_t, end_t);
+}
diff --git a/src/common/src/restrictions_input.c b/src/common/src/restrictions_input.c
index b4dde83..7d03428 100644
--- a/src/common/src/restrictions_input.c
+++ b/src/common/src/restrictions_input.c
@@ -22,13 +22,13 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
+#include "c_common/restrictions_input.h"
 
-#include "./postgres_connection.h"
-#include "./debug_macro.h"
-#include "./pgr_types.h"
-#include "./time_msg.h"
-#include "./get_check_data.h"
-#include "./restrictions_input.h"
+#include "c_types/column_info_t.h"
+
+#include "c_common/debug_macro.h"
+#include "c_common/time_msg.h"
+#include "c_common/get_check_data.h"
 
 
 static
diff --git a/src/common/src/restrictions_input.h b/src/common/src/restrictions_input.h
deleted file mode 100644
index 9243973..0000000
--- a/src/common/src/restrictions_input.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: restrictions_input.h
-
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifndef SRC_COMMON_SRC_RESTRICTIONS_INPUT_H_
-#define SRC_COMMON_SRC_RESTRICTIONS_INPUT_H_
-#pragma once
-
-#include "./pgr_types.h"
-
-void pgr_get_restriction_data(
-        char *restrictions_sql,
-        Restrict_t **restructions,
-        size_t *total_restrictions);
-
-#endif  // SRC_COMMON_SRC_RESTRICTIONS_INPUT_H_
diff --git a/src/common/src/time_msg.c b/src/common/src/time_msg.c
index cd0cac5..e4e7096 100644
--- a/src/common/src/time_msg.c
+++ b/src/common/src/time_msg.c
@@ -24,9 +24,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  ********************************************************************PGR-GNU*/
 
 #include <time.h>
-#include "./postgres_connection.h"
+#include "c_common/postgres_connection.h"
 
-#include "./time_msg.h"
+#include "c_common/time_msg.h"
 
 
 void time_msg(char *msg, clock_t start_t, clock_t end_t) {
diff --git a/src/common/src/time_msg.h b/src/common/src/time_msg.h
deleted file mode 100644
index 0e96a45..0000000
--- a/src/common/src/time_msg.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-FILE: time_msg.h
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- ********************************************************************PGR-GNU*/
-
-#ifndef SRC_COMMON_SRC_TIME_MSG_H_
-#define SRC_COMMON_SRC_TIME_MSG_H_
-#pragma once
-
-#include <time.h>
-#include <stdio.h>
-
-void time_msg(char *msg, clock_t start_t, clock_t end_t);
-
-#endif  // SRC_COMMON_SRC_TIME_MSG_H_
diff --git a/src/common/src/vehicles_input.c b/src/common/src/vehicles_input.c
new file mode 100644
index 0000000..8768d4f
--- /dev/null
+++ b/src/common/src/vehicles_input.c
@@ -0,0 +1,275 @@
+/*PGR-GNU*****************************************************************
+File: vehicles_input.c
+
+Copyright (c) 2016 Celia Virginia Vergara Castillo
+vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+#include "c_common/vehicles_input.h"
+
+#include <limits.h>
+#if PGSQL_VERSION > 96
+#include <float.h>
+#endif
+
+#if PGSQL_VERSION == 100
+#include <float.h>
+#endif
+
+
+#include "c_types/column_info_t.h"
+
+#include "c_common/debug_macro.h"
+#include "c_common/get_check_data.h"
+#include "c_common/time_msg.h"
+
+
+static
+void fetch_vehicles(
+        HeapTuple *tuple,
+        TupleDesc *tupdesc,
+        Column_info_t info[16],
+        Vehicle_t *vehicle,
+        bool with_id) {
+
+    vehicle->id = pgr_SPI_getBigInt(tuple, tupdesc, info[0]);
+    vehicle->capacity = pgr_SPI_getFloat8(tuple, tupdesc, info[1]);
+
+    vehicle->start_x = with_id ?
+        0 :
+        pgr_SPI_getFloat8(tuple, tupdesc, info[2]);
+    vehicle->start_y = with_id ?
+        0 :
+        pgr_SPI_getFloat8(tuple, tupdesc, info[3]);
+
+    vehicle->speed = column_found(info[13].colNumber) ?
+        pgr_SPI_getFloat8(tuple, tupdesc, info[13]) :
+        1;
+    vehicle->cant_v =  column_found(info[4].colNumber) ?
+        pgr_SPI_getBigInt(tuple, tupdesc, info[4]) :
+        1;
+    vehicle->start_open_t = column_found(info[5].colNumber) ?
+        pgr_SPI_getFloat8(tuple, tupdesc, info[5]) :
+        0;
+    vehicle->start_close_t = column_found(info[6].colNumber) ?
+        pgr_SPI_getFloat8(tuple, tupdesc, info[6]) :
+        DBL_MAX;
+    vehicle->start_service_t = column_found(info[7].colNumber) ?
+        pgr_SPI_getFloat8(tuple, tupdesc, info[7]) :
+        0;
+
+
+    if (!(column_found(info[8].colNumber)) && column_found(info[9].colNumber)) {
+        ereport(ERROR,
+                (errmsg("Column \'%s\' not Found", info[8].name),
+                 errhint("%s was found, also column is expected %s ", info[9].name, info[8].name)));
+    }
+    if (column_found(info[8].colNumber) && !(column_found(info[9].colNumber))) {
+        ereport(ERROR,
+                (errmsg("Column \'%s\' not Found", info[9].name),
+                 errhint("%s was found, also column is expected %s ", info[8].name, info[9].name)));
+    }
+
+    vehicle->end_x = column_found(info[8].colNumber) ?
+        pgr_SPI_getFloat8(tuple, tupdesc, info[8]) :
+        vehicle->start_x;
+    vehicle->end_y = column_found(info[9].colNumber) ?
+        pgr_SPI_getFloat8(tuple, tupdesc, info[9]) :
+        vehicle->start_y;
+
+    if (!(column_found(info[10].colNumber)) && column_found(info[11].colNumber)) {
+        ereport(ERROR,
+                (errmsg("Column \'%s\' not Found", info[10].name),
+                 errhint("%s was found, also column is expected %s ", info[10].name, info[11].name)));
+    }
+
+    if (column_found(info[10].colNumber) && !(column_found(info[11].colNumber))) {
+        ereport(ERROR,
+                (errmsg("Column \'%s\' not Found", info[11].name),
+                 errhint("%s was found, also column is expected %s ", info[11].name, info[10].name)));
+    }
+    vehicle->end_open_t = column_found(info[10].colNumber) ?
+        pgr_SPI_getFloat8(tuple, tupdesc, info[10]) :
+        vehicle->start_open_t;
+    vehicle->end_close_t = column_found(info[11].colNumber) ?
+        pgr_SPI_getFloat8(tuple, tupdesc, info[11]) :
+        vehicle->start_close_t;
+    vehicle->end_service_t = column_found(info[12].colNumber) ?
+        pgr_SPI_getFloat8(tuple, tupdesc, info[12]) :
+        vehicle->start_service_t;
+
+    vehicle->speed = column_found(info[13].colNumber) ?
+        pgr_SPI_getFloat8(tuple, tupdesc, info[13]) :
+        1;
+    vehicle->start_node_id = with_id ?
+        pgr_SPI_getBigInt(tuple, tupdesc, info[14]) :
+        0;
+    vehicle->end_node_id = with_id ?
+        (column_found(info[12].colNumber) ?
+            pgr_SPI_getBigInt(tuple, tupdesc, info[15]) :
+            vehicle->start_node_id) :
+        0;
+}
+
+
+
+static
+void pgr_get_vehicles_general(
+        char *vehicles_sql,
+        Vehicle_t **vehicles,
+        size_t *total_vehicles,
+        bool with_id) {
+    clock_t start_t = clock();
+
+    const int tuple_limit = 1000000;
+
+    PGR_DBG("pgr_get_vehicles");
+    PGR_DBG("%s", vehicles_sql);
+
+    Column_info_t info[16];
+
+    int i;
+    for (i = 0; i < 16; ++i) {
+        info[i].colNumber = -1;
+        info[i].type = 0;
+        info[i].strict = true;
+        info[i].eType = ANY_NUMERICAL;
+    }
+
+    info[0].name = strdup("id");
+    info[1].name = strdup("capacity");
+    info[2].name = strdup("start_x");
+    info[3].name = strdup("start_y");
+    info[4].name = strdup("number");
+    info[5].name = strdup("start_open");
+    info[6].name = strdup("start_close");
+    info[7].name = strdup("start_service");
+    info[8].name = strdup("end_x");
+    info[9].name = strdup("end_y");
+    info[10].name = strdup("end_open");
+    info[11].name = strdup("end_close");
+    info[12].name = strdup("end_service");
+    info[13].name = strdup("speed");
+    info[14].name = strdup("start_node_id");
+    info[15].name = strdup("end_node_id");
+
+    info[0].eType = ANY_INTEGER;
+    info[4].eType = ANY_INTEGER;
+    info[14].eType = ANY_INTEGER;
+    info[15].eType = ANY_INTEGER;
+
+    for (i = 4; i < 16; ++i) {
+        info[i].strict = false;
+    }
+
+    if (with_id) {
+        /*
+         *  with id, then start_x and start_y are optional
+         *  start_node_id is compulsory
+         */
+        info[2].strict = false;
+        info[3].strict = false;
+        info[14].strict = true;
+
+    }
+
+    size_t ntuples;
+    size_t total_tuples;
+
+    void *SPIplan;
+    SPIplan = pgr_SPI_prepare(vehicles_sql);
+    Portal SPIportal;
+    SPIportal = pgr_SPI_cursor_open(SPIplan);
+
+    bool moredata = TRUE;
+    (*total_vehicles) = total_tuples = 0;
+
+    /* on the first tuple get the column numbers */
+
+    while (moredata == TRUE) {
+        SPI_cursor_fetch(SPIportal, TRUE, tuple_limit);
+        if (total_tuples == 0) {
+            pgr_fetch_column_info(info, 16);
+        }
+        ntuples = SPI_processed;
+        total_tuples += ntuples;
+        PGR_DBG("SPI_processed %ld", ntuples);
+        if (ntuples > 0) {
+            if ((*vehicles) == NULL)
+                (*vehicles) = (Vehicle_t *)palloc0(
+                        total_tuples * sizeof(Vehicle_t));
+            else
+                (*vehicles) = (Vehicle_t *)repalloc(
+                        (*vehicles),
+                        total_tuples * sizeof(Vehicle_t));
+
+            if ((*vehicles) == NULL) {
+                elog(ERROR, "Out of memory");
+            }
+
+            size_t t;
+            SPITupleTable *tuptable = SPI_tuptable;
+            TupleDesc tupdesc = SPI_tuptable->tupdesc;
+            PGR_DBG("processing %ld", ntuples);
+            for (t = 0; t < ntuples; t++) {
+                HeapTuple tuple = tuptable->vals[t];
+                fetch_vehicles(&tuple, &tupdesc, info,
+                        &(*vehicles)[total_tuples - ntuples + t], with_id);
+            }
+            SPI_freetuptable(tuptable);
+        } else {
+            moredata = FALSE;
+        }
+    }
+
+    SPI_cursor_close(SPIportal);
+
+    if (total_tuples == 0) {
+        (*total_vehicles) = 0;
+        PGR_DBG("NO orders");
+        return;
+    }
+
+    (*total_vehicles) = total_tuples;
+    if (with_id) {
+        PGR_DBG("Finish reading %ld vehicles for matrix", (*total_vehicles));
+    } else {
+        PGR_DBG("Finish reading %ld vehicles for eucledian", (*total_vehicles));
+    }
+    time_msg("reading edges", start_t, clock());
+
+}
+
+void
+pgr_get_vehicles(
+        char *vehicles_sql,
+        Vehicle_t **vehicles,
+        size_t *total_vehicles) {
+    pgr_get_vehicles_general( vehicles_sql, vehicles, total_vehicles, false);
+}
+
+void
+pgr_get_vehicles_with_id(
+        char *vehicles_sql,
+        Vehicle_t **vehicles,
+        size_t *total_vehicles) {
+    pgr_get_vehicles_general(vehicles_sql, vehicles, total_vehicles, true);
+}
+
diff --git a/src/common/src/xy_vertex.cpp b/src/common/src/xy_vertex.cpp
index 5fb0978..c97ee3b 100644
--- a/src/common/src/xy_vertex.cpp
+++ b/src/common/src/xy_vertex.cpp
@@ -22,13 +22,12 @@
 
  ********************************************************************PGR-GNU*/
 
-#include "./xy_vertex.h"
+#include "cpp_common/xy_vertex.h"
 
 #include <vector>
 #include <algorithm>
 
-#include "./pgr_types.h"
-#include "./pgr_assert.h"
+#include "cpp_common/pgr_assert.h"
 
 
 namespace pgrouting {
diff --git a/src/common/src/xy_vertex.h b/src/common/src/xy_vertex.h
deleted file mode 100644
index 34e4276..0000000
--- a/src/common/src/xy_vertex.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/*PGR-GNU*****************************************************************
- *
-
- Copyright (c) 2015 Celia Virginia Vergara Castillo
- vicky_vergara at hotmail.com
-
- ------
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- ********************************************************************PGR-GNU*/
-
-#ifndef SRC_COMMON_SRC_XY_VERTEX_H_
-#define SRC_COMMON_SRC_XY_VERTEX_H_
-#pragma once
-
-#ifdef Max
-#undef Max
-#endif
-#ifdef Min
-#undef Min
-#endif
-
-#include <CGAL/Simple_cartesian.h>
-#include <vector>
-
-#include "./pgr_types.h"
-
-
-namespace pgrouting {
-
-// typedef boost::geometry::model::d2::point_xy<double> Point;
-typedef CGAL::Simple_cartesian<double> Simple_cartasian;
-typedef Simple_cartasian::Point_2  Point;
-
-
-class XY_vertex {
- public:
-  XY_vertex() = default;
-  XY_vertex(const XY_vertex &) = default;
-  XY_vertex(const int64_t _id, double _x, double _y) :
-      id(_id), point(_x, _y) {
-      }
-
-  XY_vertex(const Pgr_edge_xy_t &other, bool is_source) :
-      id(is_source? other.source : other.target),
-      point(is_source? Point(other.x1, other.y1) : Point(other.x2, other.y2))
-      {}
-
-
-  double x() const {return point.x();}
-  double y() const {return point.y();}
-
-  inline void cp_members(const XY_vertex &other) {
-      this->id = other.id;
-      this->point = other.point;
-  }
-
-  friend std::ostream& operator<<(std::ostream& log, const XY_vertex &v);
-  bool operator==(const XY_vertex &rhs) const;
-
- public:
-  int64_t id;
-  Point point;
-};
-
-size_t
-check_vertices(std::vector < XY_vertex > vertices);
-
-std::vector < XY_vertex >
-extract_vertices(
-    const Pgr_edge_xy_t *data_edges, int64_t count);
-
-std::vector < XY_vertex >
-extract_vertices(
-    const std::vector < Pgr_edge_xy_t > &data_edges);
-
-#if 0
-std::vector < XY_vertex > extract_vertices(
-    std::vector < XY_vertex > vertices,
-    const Pgr_edge_xy_t *data_edges, int64_t count);
-
-std::vector < XY_vertex > extract_vertices(
-    std::vector < XY_vertex > vertices,
-    const std::vector < Pgr_edge_xy_t > data_edges);
-#endif
-
-}  // namespace pgrouting
-
-#endif  // SRC_COMMON_SRC_XY_VERTEX_H_
diff --git a/src/common/test/doc-pgr_version.result b/src/common/test/doc-pgr_version.result
new file mode 100644
index 0000000..aec10c6
--- /dev/null
+++ b/src/common/test/doc-pgr_version.result
@@ -0,0 +1,14 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT version FROM pgr_version();
+ version 
+---------
+ 2.5.0
+(1 row)
+
+-- q2
+ROLLBACK;
+ROLLBACK
diff --git a/src/common/test/doc-pgr_version.test.sql b/src/common/test/doc-pgr_version.test.sql
new file mode 100644
index 0000000..2db6c2d
--- /dev/null
+++ b/src/common/test/doc-pgr_version.test.sql
@@ -0,0 +1,7 @@
+
+--------------------------------------------------------------------------------
+--                pgr_version
+--------------------------------------------------------------------------------
+\echo -- q1
+SELECT version FROM pgr_version(); 
+\echo -- q2
diff --git a/src/common/test/pgtap/no_underscored-2x.test.sql b/src/common/test/pgtap/no_underscored-2x.test.sql
deleted file mode 100644
index c7f68c2..0000000
--- a/src/common/test/pgtap/no_underscored-2x.test.sql
+++ /dev/null
@@ -1,60 +0,0 @@
-
-\i setup.sql
-
-
-SELECT plan(18);
-
-set client_min_messages to WARNING;
-SELECT  results_eq('SELECT  1, sname, tname  FROM pgr_getTableName(''EDGe_table'')', 
-    'SELECT 1, ''public''::TEXT, ''edge_table''::TEXT ');
-SELECT  results_eq('SELECT  2, sname, tname FROM pgr_getTableName(''EDes2'')',
-    'SELECT 2, ''public''::TEXT, NULL::TEXT ');
-
-
-SELECT  results_eq('SELECT  3,  pgr_getColumnName(''EDGe_table'', ''SOuRce'')' ,
-    'SELECT 3, ''source''::TEXT ');
-SELECT  results_eq('SELECT  4,  pgr_getColumnName(''EDes2'', ''SOuRce'') ',
-    'SELECT 4,  NULL::TEXT ');
-SELECT  results_eq('SELECT  5,  pgr_getColumnName(''EDes2'', ''SOuce'') ',
-    'SELECT 5,  NULL::TEXT ');
-SELECT  results_eq('SELECT  6,  pgr_getColumnName(''EDes2'', ''SOuce'') ',
-    'SELECT 6,  NULL::TEXT ');
-
-
-SELECT  results_eq('SELECT  7, pgr_isColumnInTable(''EDGe_table'', ''SOuRce'') ',
-    'SELECT 7, true ');
-SELECT  results_eq('SELECT  8, pgr_isColumnInTable(''EDes2'', ''SOuRce'')',
-    'SELECT 8,  false ');
-SELECT  results_eq('SELECT  9, pgr_isColumnInTable(''EDes2'', ''SOuce'')',
-    'SELECT 9,  false ');
-SELECT  results_eq('SELECT  10, pgr_isColumnInTable(''EDes2'', ''SOuce'')',
-    'SELECT 10,  false ');
-
-
-SELECT  results_eq('SELECT  11, pgr_isColumnIndexed(''EDGe_table'', ''id'') ',
-    'SELECT 11, true ');
-SELECT  results_eq('SELECT  12, pgr_isColumnIndexed(''EDGe_table'', ''X1'') ',
-    'SELECT 12,  false ');
-
-
-SELECT  results_eq('SELECT  13, pgr_versionless(''2.1.0foobar23'', ''2.1'') ',
-    'SELECT 13,  true ');
-SELECT  results_eq('SELECT  14, pgr_versionless(''2.1.0foobar23'', ''2.1-rc1'') ',
-    'SELECT 14,  true ');
-SELECT  results_eq('SELECT  15, pgr_versionless(''2.1.0foobar23'', ''2.1-beta'') ',
-    'SELECT 15,  true ');
-
-
-SELECT  results_eq('SELECT  16, pgr_quote_ident(''idname.text'') ',
-    'SELECT 16,  ''idname.text''::TEXT ');
-
-SELECT  results_eq('SELECT  17, pgr_startPoint(the_geom)::TEXT  FROM edge_table where id = 1 ',
-    'SELECT 17, ''010100000000000000000000400000000000000000''::TEXT ');
-
-SELECT  results_eq('SELECT  18, pgr_endPoint(the_geom)::TEXT  FROM edge_table where id = 1 ', 
-    'SELECT 18, ''01010000000000000000000040000000000000F03F''::TEXT ');
-
--- Finish the tests and clean up.
-SELECT * FROM finish();
-ROLLBACK;
-
diff --git a/src/common/test/test.conf b/src/common/test/test.conf
index a178654..ce466a7 100644
--- a/src/common/test/test.conf
+++ b/src/common/test/test.conf
@@ -6,9 +6,11 @@
         'data' => ['sampledata.data'],
         'tests' => [qw( 
             versionless-any-01
+            doc-pgr_version
             )],
 
         'documentation' => [qw(
+            doc-pgr_version
             )],
 
         'dummyStorage' => [qw(
diff --git a/src/common/test/versionless-any-01.result b/src/common/test/versionless-any-01.result
index dab5e3a..92e0b66 100644
--- a/src/common/test/versionless-any-01.result
+++ b/src/common/test/versionless-any-01.result
@@ -1,61 +1,395 @@
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-t
-f
-f
-f
-f
-f
-f
-f
-f
-f
-f
-f
-f
-f
-f
-f
-f
-f
-f
-f
-f
-f
-f
-f
-f
-f
-f
-f
-f
-f
-f
-f
-f
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+select _pgr_versionless('2.1.0foobar23', '2.1');
+ _pgr_versionless 
+------------------
+ t
+(1 row)
+
+select _pgr_versionless('2.1.0foobar23', '2.1-rc1');
+ _pgr_versionless 
+------------------
+ t
+(1 row)
+
+select _pgr_versionless('2.1.0foobar23', '2.1-beta');
+ _pgr_versionless 
+------------------
+ t
+(1 row)
+
+select _pgr_versionless('2.1.0foobar23', '2.1-alpha');
+ _pgr_versionless 
+------------------
+ t
+(1 row)
+
+select _pgr_versionless('2.1.0foobar23', '2.1-dev');
+ _pgr_versionless 
+------------------
+ t
+(1 row)
+
+select _pgr_versionless('2.1.0foobar23', '2.1rc1');
+ _pgr_versionless 
+------------------
+ t
+(1 row)
+
+select _pgr_versionless('2.1.0foobar23', '2.1beta');
+ _pgr_versionless 
+------------------
+ t
+(1 row)
+
+select _pgr_versionless('2.1.0foobar23', '2.1alpha');
+ _pgr_versionless 
+------------------
+ t
+(1 row)
+
+select _pgr_versionless('2.1.0foobar23', '2.1dev');
+ _pgr_versionless 
+------------------
+ t
+(1 row)
+
+select _pgr_versionless('2.1.0-dev', '2.1');
+ _pgr_versionless 
+------------------
+ t
+(1 row)
+
+select _pgr_versionless('2.1.0-dev', '2.1-rc1');
+ _pgr_versionless 
+------------------
+ t
+(1 row)
+
+select _pgr_versionless('2.1.0-dev', '2.1-beta');
+ _pgr_versionless 
+------------------
+ t
+(1 row)
+
+select _pgr_versionless('2.1.0-dev', '2.1-alpha');
+ _pgr_versionless 
+------------------
+ t
+(1 row)
+
+select _pgr_versionless('2.1.0-dev', '2.1rc1');
+ _pgr_versionless 
+------------------
+ t
+(1 row)
+
+select _pgr_versionless('2.1.0-dev', '2.1beta');
+ _pgr_versionless 
+------------------
+ t
+(1 row)
+
+select _pgr_versionless('2.1.0-dev', '2.1alpha');
+ _pgr_versionless 
+------------------
+ t
+(1 row)
+
+select _pgr_versionless('2.1.0-alpha', '2.1');
+ _pgr_versionless 
+------------------
+ t
+(1 row)
+
+select _pgr_versionless('2.1.0-alpha', '2.1-rc1');
+ _pgr_versionless 
+------------------
+ t
+(1 row)
+
+select _pgr_versionless('2.1.0-alpha', '2.1-beta');
+ _pgr_versionless 
+------------------
+ t
+(1 row)
+
+select _pgr_versionless('2.1.0-alpha', '2.1rc1');
+ _pgr_versionless 
+------------------
+ t
+(1 row)
+
+select _pgr_versionless('2.1.0-alpha', '2.1beta');
+ _pgr_versionless 
+------------------
+ t
+(1 row)
+
+select _pgr_versionless('2.1.0-beta', '2.1');
+ _pgr_versionless 
+------------------
+ t
+(1 row)
+
+select _pgr_versionless('2.1.0-beta', '2.1-rc1');
+ _pgr_versionless 
+------------------
+ t
+(1 row)
+
+select _pgr_versionless('2.1.0-beta', '2.1rc1');
+ _pgr_versionless 
+------------------
+ t
+(1 row)
+
+select _pgr_versionless('2.0.0', '2.1');
+ _pgr_versionless 
+------------------
+ t
+(1 row)
+
+select _pgr_versionless('2.1', '2.1.3');
+ _pgr_versionless 
+------------------
+ t
+(1 row)
+
+select _pgr_versionless('1.05', '2.0.0');
+ _pgr_versionless 
+------------------
+ t
+(1 row)
+
+select _pgr_versionless('1.05', '2.0');
+ _pgr_versionless 
+------------------
+ t
+(1 row)
+
+select _pgr_versionless('1.05', '2');
+ _pgr_versionless 
+------------------
+ t
+(1 row)
+
+select _pgr_versionless('2.1', '2.1.0foobar23');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+select _pgr_versionless('2.1-rc1', '2.1.0foobar23');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+select _pgr_versionless('2.1-beta', '2.1.0foobar23');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+select _pgr_versionless('2.1-alpha', '2.1.0foobar23');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+select _pgr_versionless('2.1-dev', '2.1.0foobar23');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+select _pgr_versionless('2.1rc1', '2.1.0foobar23');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+select _pgr_versionless('2.1beta', '2.1.0foobar23');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+select _pgr_versionless('2.1alpha', '2.1.0foobar23');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+select _pgr_versionless('2.1dev', '2.1.0foobar23');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+select _pgr_versionless('2.1', '2.1.0-dev');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+select _pgr_versionless('2.1-rc1', '2.1.0-dev');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+select _pgr_versionless('2.1-beta', '2.1.0-dev');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+select _pgr_versionless('2.1-alpha', '2.1.0-dev');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+select _pgr_versionless('2.1rc1', '2.1.0-dev');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+select _pgr_versionless('2.1beta', '2.1.0-dev');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+select _pgr_versionless('2.1alpha', '2.1.0-dev');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+select _pgr_versionless('2.1', '2.1.0-alpha');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+select _pgr_versionless('2.1-rc1', '2.1.0-alpha');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+select _pgr_versionless('2.1-beta', '2.1.0-alpha');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+select _pgr_versionless('2.1rc1', '2.1.0-alpha');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+select _pgr_versionless('2.1beta', '2.1.0-alpha');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+select _pgr_versionless('2.1', '2.1.0-beta');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+select _pgr_versionless('2.1-rc1', '2.1.0-beta');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+select _pgr_versionless('2.1rc1', '2.1.0-beta');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+select _pgr_versionless('2.1', '2.0.0');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+select _pgr_versionless('2.1.3', '2.1');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+select _pgr_versionless('2.0.0', '1.05');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+select _pgr_versionless('2.0', '1.05');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+select _pgr_versionless('2', '1.05');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+select _pgr_versionless('2', '2.0.0foobar');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+select _pgr_versionless('2.1', '2.1.0');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+select _pgr_versionless('2.1.0beta3dev', '2.1.0beta1dev');
+ _pgr_versionless 
+------------------
+ f
+(1 row)
+
+ROLLBACK;
+ROLLBACK
diff --git a/src/components/src/CMakeLists.txt b/src/components/src/CMakeLists.txt
new file mode 100644
index 0000000..b6d7b31
--- /dev/null
+++ b/src/components/src/CMakeLists.txt
@@ -0,0 +1,12 @@
+ADD_LIBRARY(components OBJECT
+    connectedComponents.c
+	strongComponents.c
+	biconnectedComponents.c
+    articulationPoints.c
+    bridges.c
+
+    connectedComponents_driver.cpp
+	strongComponents_driver.cpp
+    biconnectedComponents_driver.cpp
+    articulationPoints_driver.cpp
+    bridges_driver.cpp)
diff --git a/src/components/src/articulationPoints.c b/src/components/src/articulationPoints.c
new file mode 100644
index 0000000..45e24a5
--- /dev/null
+++ b/src/components/src/articulationPoints.c
@@ -0,0 +1,251 @@
+/*PGR-GNU*****************************************************************
+File: articulationPoints.c
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+/** @file articulationPoints.c
+ * @brief Connecting code with postgres.
+ *
+ * This file is fully documented for understanding
+ *  how the postgres connectinon works
+ *
+ * TODO Remove unnecessary comments before submiting the function.
+ * some comments are in form of PGR_DBG message
+ */
+
+/**
+ *  postgres_connection.h 
+ *
+ *  - should always be first in the C code
+ */
+#include "c_common/postgres_connection.h"
+
+
+/* for macro PGR_DBG */
+#include "c_common/debug_macro.h"
+/* for pgr_global_report */
+#include "c_common/e_report.h"
+/* for time_msg & clock */
+#include "c_common/time_msg.h"
+/* for functions to get edges information */
+#include "c_common/edges_input.h"
+
+#include "drivers/components/articulationPoints_driver.h"  // the link to the C++ code of the function
+
+PGDLLEXPORT Datum articulationPoints(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(articulationPoints);
+
+
+/******************************************************************************/
+/*                          MODIFY AS NEEDED                                  */
+static
+void
+process(
+        char* edges_sql,
+        pgr_components_rt **result_tuples,
+        size_t *result_count) {
+    /*
+     *  https://www.postgresql.org/docs/current/static/spi-spi-connect.html
+     */
+    pgr_SPI_connect();
+
+    (*result_tuples) = NULL;
+    (*result_count) = 0;
+
+    PGR_DBG("Load data");
+    pgr_edge_t *edges = NULL;
+    size_t total_edges = 0;
+
+    pgr_get_edges(edges_sql, &edges, &total_edges);
+    PGR_DBG("Total %ld edges in query:", total_edges);
+
+    if (total_edges == 0) {
+        PGR_DBG("No edges found");
+        pgr_SPI_finish();
+        return;
+    }
+
+    PGR_DBG("Starting processing");
+    clock_t start_t = clock();
+    char *log_msg = NULL;
+    char *notice_msg = NULL;
+    char *err_msg = NULL;
+    do_pgr_articulationPoints(
+            edges,
+            total_edges,
+#if 0
+    /*
+     *  handling arrays example
+     */
+
+            start_vidsArr, size_start_vidsArr,
+            end_vidsArr, size_end_vidsArr,
+#endif
+
+            result_tuples,
+            result_count,
+            &log_msg,
+            &notice_msg,
+            &err_msg);
+
+    time_msg(" processing pgr_articulationPoints", start_t, clock());
+    PGR_DBG("Returning %ld tuples", *result_count);
+
+    if (err_msg) {
+        if (*result_tuples) pfree(*result_tuples);
+    }
+    pgr_global_report(log_msg, notice_msg, err_msg);
+
+    if (edges) pfree(edges);
+    if (log_msg) pfree(log_msg);
+    if (notice_msg) pfree(notice_msg);
+    if (err_msg) pfree(err_msg);
+#if 0
+    /*
+     *  handling arrays example
+     */
+
+    if (end_vidsArr) pfree(end_vidsArr);
+    if (start_vidsArr) pfree(start_vidsArr);
+#endif
+
+    pgr_SPI_finish();
+}
+/*                                                                            */
+/******************************************************************************/
+
+PGDLLEXPORT Datum articulationPoints(PG_FUNCTION_ARGS) {
+    FuncCallContext     *funcctx;
+    TupleDesc           tuple_desc;
+
+    /**************************************************************************/
+    /*                          MODIFY AS NEEDED                              */
+    /*                                                                        */
+    pgr_components_rt *result_tuples = NULL;
+    size_t result_count = 0;
+    /*                                                                        */
+    /**************************************************************************/
+
+    if (SRF_IS_FIRSTCALL()) {
+        MemoryContext   oldcontext;
+        funcctx = SRF_FIRSTCALL_INIT();
+        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
+
+
+        /**********************************************************************/
+        /*                          MODIFY AS NEEDED                          */
+        /*
+           TEXT,
+    BIGINT,
+    BIGINT,
+         **********************************************************************/
+
+
+        PGR_DBG("Calling process");
+        process(
+                text_to_cstring(PG_GETARG_TEXT_P(0)),
+#if 0
+                /*
+                 *  handling arrays example
+                 */
+
+                PG_GETARG_ARRAYTYPE_P(1),
+                PG_GETARG_ARRAYTYPE_P(2),
+#endif
+                &result_tuples,
+                &result_count);
+
+        /*                                                                    */
+        /**********************************************************************/
+
+#if PGSQL_VERSION > 94
+        funcctx->max_calls = (uint32_t)result_count;
+#else
+        funcctx->max_calls = (uint32_t)result_count;
+#endif
+        funcctx->user_fctx = result_tuples;
+        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
+                != TYPEFUNC_COMPOSITE) {
+            ereport(ERROR,
+                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+                     errmsg("function returning record called in context "
+                         "that cannot accept type record")));
+        }
+
+        funcctx->tuple_desc = tuple_desc;
+        MemoryContextSwitchTo(oldcontext);
+    }
+
+    funcctx = SRF_PERCALL_SETUP();
+    tuple_desc = funcctx->tuple_desc;
+    result_tuples = (pgr_components_rt*) funcctx->user_fctx;
+
+    if (funcctx->call_cntr < funcctx->max_calls) {
+        HeapTuple    tuple;
+        Datum        result;
+        Datum        *values;
+        bool*        nulls;
+
+        /**********************************************************************/
+        /*                          MODIFY AS NEEDED                          */
+        /*
+               OUT seq INTEGER,
+               OUT component BIGINT,
+               OUT n_seq INTEGER,
+               OUT node BIGINT
+         ***********************************************************************/
+
+        values = palloc(2 * sizeof(Datum));
+        nulls = palloc(2 * sizeof(bool));
+
+
+        size_t i;
+        for (i = 0; i < 2; ++i) {
+            nulls[i] = false;
+        }
+
+        // postgres starts counting from 1
+        values[0] = Int32GetDatum(funcctx->call_cntr + 1);
+        values[1] = Int64GetDatum(result_tuples[funcctx->call_cntr].identifier);
+        /**********************************************************************/
+
+        tuple = heap_form_tuple(tuple_desc, values, nulls);
+        result = HeapTupleGetDatum(tuple);
+        SRF_RETURN_NEXT(funcctx, result);
+    } else {
+        /**********************************************************************/
+        /*                          MODIFY AS NEEDED                          */
+
+        PGR_DBG("Clean up code");
+
+        /**********************************************************************/
+
+        SRF_RETURN_DONE(funcctx);
+    }
+}
+
diff --git a/src/components/src/articulationPoints_driver.cpp b/src/components/src/articulationPoints_driver.cpp
new file mode 100644
index 0000000..09fb418
--- /dev/null
+++ b/src/components/src/articulationPoints_driver.cpp
@@ -0,0 +1,135 @@
+/*PGR-GNU*****************************************************************
+File: articulationPoints_driver.cpp
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer: 
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#include "drivers/components/articulationPoints_driver.h"
+
+#include <sstream>
+#include <deque>
+#include <vector>
+
+#include "components/pgr_components.hpp"
+
+#include "cpp_common/pgr_alloc.hpp"
+#include "cpp_common/pgr_assert.h"
+
+
+
+
+
+/************************************************************
+  TEXT,
+    BIGINT,
+    BIGINT,
+ ***********************************************************/
+
+template < class G >
+static
+std::vector<pgr_components_rt>
+pgr_articulationPoints(
+        G &graph) {
+    std::vector<pgr_components_rt> results;
+    Pgr_components< G > fn_components;
+    return fn_components.articulationPoints(graph);
+}
+
+
+void
+do_pgr_articulationPoints(
+        pgr_edge_t  *data_edges,
+        size_t total_edges,
+        pgr_components_rt **return_tuples,
+        size_t *return_count,
+        char ** log_msg,
+        char ** notice_msg,
+        char ** err_msg) {
+    std::ostringstream log;
+    std::ostringstream err;
+    std::ostringstream notice;
+    try {
+        pgassert(!(*log_msg));
+        pgassert(!(*notice_msg));
+        pgassert(!(*err_msg));
+        pgassert(!(*return_tuples));
+        pgassert(*return_count == 0);
+        pgassert(total_edges != 0);
+
+        graphType gType = UNDIRECTED;
+
+        std::vector<pgr_components_rt> results;
+
+        log << "Working with Undirected Graph\n";
+        pgrouting::ComponentsUndiGraph undigraph(gType);
+        undigraph.insert_edges(data_edges, total_edges);
+        results = pgr_articulationPoints(
+                undigraph);
+
+        auto count = results.size();
+
+        if (count == 0) {
+            (*return_tuples) = NULL;
+            (*return_count) = 0;
+            notice <<
+                "No paths found between start_vid and end_vid vertices";
+            return;
+        }
+
+        (*return_tuples) = pgr_alloc(count, (*return_tuples));
+        for (size_t i = 0; i < count; i++) {
+            *((*return_tuples) + i) = results[i];
+        }
+        (*return_count) = count;
+
+        pgassert(*err_msg == NULL);
+        *log_msg = log.str().empty()?
+            *log_msg :
+            pgr_msg(log.str().c_str());
+        *notice_msg = notice.str().empty()?
+            *notice_msg :
+            pgr_msg(notice.str().c_str());
+    } catch (AssertFailedException &except) {
+        (*return_tuples) = pgr_free(*return_tuples);
+        (*return_count) = 0;
+        err << except.what();
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    } catch (std::exception &except) {
+        (*return_tuples) = pgr_free(*return_tuples);
+        (*return_count) = 0;
+        err << except.what();
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    } catch(...) {
+        (*return_tuples) = pgr_free(*return_tuples);
+        (*return_count) = 0;
+        err << "Caught unknown exception!";
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    }
+}
+
diff --git a/src/components/src/biconnectedComponents.c b/src/components/src/biconnectedComponents.c
new file mode 100644
index 0000000..95d8874
--- /dev/null
+++ b/src/components/src/biconnectedComponents.c
@@ -0,0 +1,253 @@
+/*PGR-GNU*****************************************************************
+File: biconnectedComponents.c
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+/** @file biconnectedComponents.c
+ * @brief Connecting code with postgres.
+ *
+ * This file is fully documented for understanding
+ *  how the postgres connectinon works
+ *
+ * TODO Remove unnecessary comments before submiting the function.
+ * some comments are in form of PGR_DBG message
+ */
+
+/**
+ *  postgres_connection.h 
+ *
+ *  - should always be first in the C code
+ */
+#include "c_common/postgres_connection.h"
+
+
+/* for macro PGR_DBG */
+#include "c_common/debug_macro.h"
+/* for pgr_global_report */
+#include "c_common/e_report.h"
+/* for time_msg & clock */
+#include "c_common/time_msg.h"
+/* for functions to get edges information */
+#include "c_common/edges_input.h"
+
+#include "drivers/components/biconnectedComponents_driver.h"  // the link to the C++ code of the function
+
+PGDLLEXPORT Datum biconnectedComponents(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(biconnectedComponents);
+
+
+/******************************************************************************/
+/*                          MODIFY AS NEEDED                                  */
+static
+void
+process(
+        char* edges_sql,
+        pgr_components_rt **result_tuples,
+        size_t *result_count) {
+    /*
+     *  https://www.postgresql.org/docs/current/static/spi-spi-connect.html
+     */
+    pgr_SPI_connect();
+
+    (*result_tuples) = NULL;
+    (*result_count) = 0;
+
+    PGR_DBG("Load data");
+    pgr_edge_t *edges = NULL;
+    size_t total_edges = 0;
+
+    pgr_get_edges(edges_sql, &edges, &total_edges);
+    PGR_DBG("Total %ld edges in query:", total_edges);
+
+    if (total_edges == 0) {
+        PGR_DBG("No edges found");
+        pgr_SPI_finish();
+        return;
+    }
+
+    PGR_DBG("Starting processing");
+    clock_t start_t = clock();
+    char *log_msg = NULL;
+    char *notice_msg = NULL;
+    char *err_msg = NULL;
+    do_pgr_biconnectedComponents(
+            edges,
+            total_edges,
+#if 0
+    /*
+     *  handling arrays example
+     */
+
+            start_vidsArr, size_start_vidsArr,
+            end_vidsArr, size_end_vidsArr,
+#endif
+
+            result_tuples,
+            result_count,
+            &log_msg,
+            &notice_msg,
+            &err_msg);
+
+    time_msg(" processing pgr_biconnectedComponents", start_t, clock());
+    PGR_DBG("Returning %ld tuples", *result_count);
+
+    if (err_msg) {
+        if (*result_tuples) pfree(*result_tuples);
+    }
+    pgr_global_report(log_msg, notice_msg, err_msg);
+
+    if (edges) pfree(edges);
+    if (log_msg) pfree(log_msg);
+    if (notice_msg) pfree(notice_msg);
+    if (err_msg) pfree(err_msg);
+#if 0
+    /*
+     *  handling arrays example
+     */
+
+    if (end_vidsArr) pfree(end_vidsArr);
+    if (start_vidsArr) pfree(start_vidsArr);
+#endif
+
+    pgr_SPI_finish();
+}
+/*                                                                            */
+/******************************************************************************/
+
+PGDLLEXPORT Datum biconnectedComponents(PG_FUNCTION_ARGS) {
+    FuncCallContext     *funcctx;
+    TupleDesc           tuple_desc;
+
+    /**************************************************************************/
+    /*                          MODIFY AS NEEDED                              */
+    /*                                                                        */
+    pgr_components_rt *result_tuples = NULL;
+    size_t result_count = 0;
+    /*                                                                        */
+    /**************************************************************************/
+
+    if (SRF_IS_FIRSTCALL()) {
+        MemoryContext   oldcontext;
+        funcctx = SRF_FIRSTCALL_INIT();
+        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
+
+
+        /**********************************************************************/
+        /*                          MODIFY AS NEEDED                          */
+        /*
+           TEXT,
+    BIGINT,
+    BIGINT,
+         **********************************************************************/
+
+
+        PGR_DBG("Calling process");
+        process(
+                text_to_cstring(PG_GETARG_TEXT_P(0)),
+#if 0
+                /*
+                 *  handling arrays example
+                 */
+
+                PG_GETARG_ARRAYTYPE_P(1),
+                PG_GETARG_ARRAYTYPE_P(2),
+#endif
+                &result_tuples,
+                &result_count);
+
+        /*                                                                    */
+        /**********************************************************************/
+
+#if PGSQL_VERSION > 94
+        funcctx->max_calls = (uint32_t)result_count;
+#else
+        funcctx->max_calls = (uint32_t)result_count;
+#endif
+        funcctx->user_fctx = result_tuples;
+        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
+                != TYPEFUNC_COMPOSITE) {
+            ereport(ERROR,
+                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+                     errmsg("function returning record called in context "
+                         "that cannot accept type record")));
+        }
+
+        funcctx->tuple_desc = tuple_desc;
+        MemoryContextSwitchTo(oldcontext);
+    }
+
+    funcctx = SRF_PERCALL_SETUP();
+    tuple_desc = funcctx->tuple_desc;
+    result_tuples = (pgr_components_rt*) funcctx->user_fctx;
+
+    if (funcctx->call_cntr < funcctx->max_calls) {
+        HeapTuple    tuple;
+        Datum        result;
+        Datum        *values;
+        bool*        nulls;
+
+        /**********************************************************************/
+        /*                          MODIFY AS NEEDED                          */
+        /*
+               OUT seq INTEGER,
+               OUT component BIGINT,
+               OUT n_seq INTEGER,
+               OUT node BIGINT
+         ***********************************************************************/
+
+        values = palloc(6 * sizeof(Datum));
+        nulls = palloc(6 * sizeof(bool));
+
+
+        size_t i;
+        for (i = 0; i < 6; ++i) {
+            nulls[i] = false;
+        }
+
+        // postgres starts counting from 1
+        values[0] = Int32GetDatum(funcctx->call_cntr + 1);
+        values[1] = Int64GetDatum(result_tuples[funcctx->call_cntr].component);
+        values[2] = Int32GetDatum(result_tuples[funcctx->call_cntr].n_seq);
+        values[3] = Int64GetDatum(result_tuples[funcctx->call_cntr].identifier);
+        /**********************************************************************/
+
+        tuple = heap_form_tuple(tuple_desc, values, nulls);
+        result = HeapTupleGetDatum(tuple);
+        SRF_RETURN_NEXT(funcctx, result);
+    } else {
+        /**********************************************************************/
+        /*                          MODIFY AS NEEDED                          */
+
+        PGR_DBG("Clean up code");
+
+        /**********************************************************************/
+
+        SRF_RETURN_DONE(funcctx);
+    }
+}
+
diff --git a/src/components/src/biconnectedComponents_driver.cpp b/src/components/src/biconnectedComponents_driver.cpp
new file mode 100644
index 0000000..4c7b2c7
--- /dev/null
+++ b/src/components/src/biconnectedComponents_driver.cpp
@@ -0,0 +1,135 @@
+/*PGR-GNU*****************************************************************
+File: biconnectedComponents_driver.cpp
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer: 
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#include "drivers/components/biconnectedComponents_driver.h"
+
+#include <sstream>
+#include <deque>
+#include <vector>
+
+#include "components/pgr_components.hpp"
+
+#include "cpp_common/pgr_alloc.hpp"
+#include "cpp_common/pgr_assert.h"
+
+
+
+
+
+/************************************************************
+  TEXT,
+    BIGINT,
+    BIGINT,
+ ***********************************************************/
+
+template < class G >
+static
+std::vector<pgr_components_rt>
+pgr_biconnectedComponents(
+        G &graph) {
+    std::vector<pgr_components_rt> results;
+    Pgr_components< G > fn_components;
+    return fn_components.biconnectedComponents(graph);
+}
+
+
+void
+do_pgr_biconnectedComponents(
+        pgr_edge_t  *data_edges,
+        size_t total_edges,
+        pgr_components_rt **return_tuples,
+        size_t *return_count,
+        char ** log_msg,
+        char ** notice_msg,
+        char ** err_msg) {
+    std::ostringstream log;
+    std::ostringstream err;
+    std::ostringstream notice;
+    try {
+        pgassert(!(*log_msg));
+        pgassert(!(*notice_msg));
+        pgassert(!(*err_msg));
+        pgassert(!(*return_tuples));
+        pgassert(*return_count == 0);
+        pgassert(total_edges != 0);
+
+        graphType gType = DIRECTED;
+
+        std::vector<pgr_components_rt> results;
+
+        log << "Working with Undirected Graph\n";
+        pgrouting::ComponentsUndiGraph undigraph(gType);
+        undigraph.insert_edges(data_edges, total_edges);
+        results = pgr_biconnectedComponents(
+                undigraph);
+
+        auto count = results.size();
+
+        if (count == 0) {
+            (*return_tuples) = NULL;
+            (*return_count) = 0;
+            notice <<
+                "No paths found between start_vid and end_vid vertices";
+            return;
+        }
+
+        (*return_tuples) = pgr_alloc(count, (*return_tuples));
+        for (size_t i = 0; i < count; i++) {
+            *((*return_tuples) + i) = results[i];
+        }
+        (*return_count) = count;
+
+        pgassert(*err_msg == NULL);
+        *log_msg = log.str().empty()?
+            *log_msg :
+            pgr_msg(log.str().c_str());
+        *notice_msg = notice.str().empty()?
+            *notice_msg :
+            pgr_msg(notice.str().c_str());
+    } catch (AssertFailedException &except) {
+        (*return_tuples) = pgr_free(*return_tuples);
+        (*return_count) = 0;
+        err << except.what();
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    } catch (std::exception &except) {
+        (*return_tuples) = pgr_free(*return_tuples);
+        (*return_count) = 0;
+        err << except.what();
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    } catch(...) {
+        (*return_tuples) = pgr_free(*return_tuples);
+        (*return_count) = 0;
+        err << "Caught unknown exception!";
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    }
+}
+
diff --git a/src/components/src/bridges.c b/src/components/src/bridges.c
new file mode 100644
index 0000000..e53a480
--- /dev/null
+++ b/src/components/src/bridges.c
@@ -0,0 +1,251 @@
+/*PGR-GNU*****************************************************************
+File: bridges.c
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+/** @file bridges.c
+ * @brief Connecting code with postgres.
+ *
+ * This file is fully documented for understanding
+ *  how the postgres connectinon works
+ *
+ * TODO Remove unnecessary comments before submiting the function.
+ * some comments are in form of PGR_DBG message
+ */
+
+/**
+ *  postgres_connection.h 
+ *
+ *  - should always be first in the C code
+ */
+#include "c_common/postgres_connection.h"
+
+
+/* for macro PGR_DBG */
+#include "c_common/debug_macro.h"
+/* for pgr_global_report */
+#include "c_common/e_report.h"
+/* for time_msg & clock */
+#include "c_common/time_msg.h"
+/* for functions to get edges information */
+#include "c_common/edges_input.h"
+
+#include "drivers/components/bridges_driver.h"  // the link to the C++ code of the function
+
+PGDLLEXPORT Datum bridges(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(bridges);
+
+
+/******************************************************************************/
+/*                          MODIFY AS NEEDED                                  */
+static
+void
+process(
+        char* edges_sql,
+        pgr_components_rt **result_tuples,
+        size_t *result_count) {
+    /*
+     *  https://www.postgresql.org/docs/current/static/spi-spi-connect.html
+     */
+    pgr_SPI_connect();
+
+    (*result_tuples) = NULL;
+    (*result_count) = 0;
+
+    PGR_DBG("Load data");
+    pgr_edge_t *edges = NULL;
+    size_t total_edges = 0;
+
+    pgr_get_edges(edges_sql, &edges, &total_edges);
+    PGR_DBG("Total %ld edges in query:", total_edges);
+
+    if (total_edges == 0) {
+        PGR_DBG("No edges found");
+        pgr_SPI_finish();
+        return;
+    }
+
+    PGR_DBG("Starting processing");
+    clock_t start_t = clock();
+    char *log_msg = NULL;
+    char *notice_msg = NULL;
+    char *err_msg = NULL;
+    do_pgr_bridges(
+            edges,
+            total_edges,
+#if 0
+    /*
+     *  handling arrays example
+     */
+
+            start_vidsArr, size_start_vidsArr,
+            end_vidsArr, size_end_vidsArr,
+#endif
+
+            result_tuples,
+            result_count,
+            &log_msg,
+            &notice_msg,
+            &err_msg);
+
+    time_msg(" processing pgr_bridges", start_t, clock());
+    PGR_DBG("Returning %ld tuples", *result_count);
+
+    if (err_msg) {
+        if (*result_tuples) pfree(*result_tuples);
+    }
+    pgr_global_report(log_msg, notice_msg, err_msg);
+
+    if (edges) pfree(edges);
+    if (log_msg) pfree(log_msg);
+    if (notice_msg) pfree(notice_msg);
+    if (err_msg) pfree(err_msg);
+#if 0
+    /*
+     *  handling arrays example
+     */
+
+    if (end_vidsArr) pfree(end_vidsArr);
+    if (start_vidsArr) pfree(start_vidsArr);
+#endif
+
+    pgr_SPI_finish();
+}
+/*                                                                            */
+/******************************************************************************/
+
+PGDLLEXPORT Datum bridges(PG_FUNCTION_ARGS) {
+    FuncCallContext     *funcctx;
+    TupleDesc           tuple_desc;
+
+    /**************************************************************************/
+    /*                          MODIFY AS NEEDED                              */
+    /*                                                                        */
+    pgr_components_rt *result_tuples = NULL;
+    size_t result_count = 0;
+    /*                                                                        */
+    /**************************************************************************/
+
+    if (SRF_IS_FIRSTCALL()) {
+        MemoryContext   oldcontext;
+        funcctx = SRF_FIRSTCALL_INIT();
+        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
+
+
+        /**********************************************************************/
+        /*                          MODIFY AS NEEDED                          */
+        /*
+           TEXT,
+    BIGINT,
+    BIGINT,
+         **********************************************************************/
+
+
+        PGR_DBG("Calling process");
+        process(
+                text_to_cstring(PG_GETARG_TEXT_P(0)),
+#if 0
+                /*
+                 *  handling arrays example
+                 */
+
+                PG_GETARG_ARRAYTYPE_P(1),
+                PG_GETARG_ARRAYTYPE_P(2),
+#endif
+                &result_tuples,
+                &result_count);
+
+        /*                                                                    */
+        /**********************************************************************/
+
+#if PGSQL_VERSION > 94
+        funcctx->max_calls = (uint32_t)result_count;
+#else
+        funcctx->max_calls = (uint32_t)result_count;
+#endif
+        funcctx->user_fctx = result_tuples;
+        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
+                != TYPEFUNC_COMPOSITE) {
+            ereport(ERROR,
+                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+                     errmsg("function returning record called in context "
+                         "that cannot accept type record")));
+        }
+
+        funcctx->tuple_desc = tuple_desc;
+        MemoryContextSwitchTo(oldcontext);
+    }
+
+    funcctx = SRF_PERCALL_SETUP();
+    tuple_desc = funcctx->tuple_desc;
+    result_tuples = (pgr_components_rt*) funcctx->user_fctx;
+
+    if (funcctx->call_cntr < funcctx->max_calls) {
+        HeapTuple    tuple;
+        Datum        result;
+        Datum        *values;
+        bool*        nulls;
+
+        /**********************************************************************/
+        /*                          MODIFY AS NEEDED                          */
+        /*
+               OUT seq INTEGER,
+               OUT component BIGINT,
+               OUT n_seq INTEGER,
+               OUT node BIGINT
+         ***********************************************************************/
+
+        values = palloc(2 * sizeof(Datum));
+        nulls = palloc(2 * sizeof(bool));
+
+
+        size_t i;
+        for (i = 0; i < 2; ++i) {
+            nulls[i] = false;
+        }
+
+        // postgres starts counting from 1
+        values[0] = Int32GetDatum(funcctx->call_cntr + 1);
+        values[1] = Int64GetDatum(result_tuples[funcctx->call_cntr].identifier);
+        /*********************************************************************/
+
+        tuple = heap_form_tuple(tuple_desc, values, nulls);
+        result = HeapTupleGetDatum(tuple);
+        SRF_RETURN_NEXT(funcctx, result);
+    } else {
+        /**********************************************************************/
+        /*                          MODIFY AS NEEDED                          */
+
+        PGR_DBG("Clean up code");
+
+        /**********************************************************************/
+
+        SRF_RETURN_DONE(funcctx);
+    }
+}
+
diff --git a/src/components/src/bridges_driver.cpp b/src/components/src/bridges_driver.cpp
new file mode 100644
index 0000000..96d192c
--- /dev/null
+++ b/src/components/src/bridges_driver.cpp
@@ -0,0 +1,135 @@
+/*PGR-GNU*****************************************************************
+File: bridges_driver.cpp
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer: 
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#include "drivers/components/bridges_driver.h"
+
+#include <sstream>
+#include <deque>
+#include <vector>
+
+#include "components/pgr_components.hpp"
+
+#include "cpp_common/pgr_alloc.hpp"
+#include "cpp_common/pgr_assert.h"
+
+
+
+
+
+/************************************************************
+  TEXT,
+    BIGINT,
+    BIGINT,
+ ***********************************************************/
+
+template < class G >
+static
+std::vector<pgr_components_rt>
+pgr_bridges(
+        G &graph) {
+    std::vector<pgr_components_rt> results;
+    Pgr_components< G > fn_components;
+    return fn_components.bridges(graph);
+}
+
+
+void
+do_pgr_bridges(
+        pgr_edge_t  *data_edges,
+        size_t total_edges,
+        pgr_components_rt **return_tuples,
+        size_t *return_count,
+        char ** log_msg,
+        char ** notice_msg,
+        char ** err_msg) {
+    std::ostringstream log;
+    std::ostringstream err;
+    std::ostringstream notice;
+    try {
+        pgassert(!(*log_msg));
+        pgassert(!(*notice_msg));
+        pgassert(!(*err_msg));
+        pgassert(!(*return_tuples));
+        pgassert(*return_count == 0);
+        pgassert(total_edges != 0);
+
+        graphType gType = UNDIRECTED;
+
+        std::vector<pgr_components_rt> results;
+
+        log << "Working with Undirected Graph\n";
+        pgrouting::ComponentsUndiGraph undigraph(gType);
+        undigraph.insert_edges(data_edges, total_edges);
+        results = pgr_bridges(
+                undigraph);
+
+        auto count = results.size();
+
+        if (count == 0) {
+            (*return_tuples) = NULL;
+            (*return_count) = 0;
+            notice <<
+                "No paths found between start_vid and end_vid vertices";
+            return;
+        }
+
+        (*return_tuples) = pgr_alloc(count, (*return_tuples));
+        for (size_t i = 0; i < count; i++) {
+            *((*return_tuples) + i) = results[i];
+        }
+        (*return_count) = count;
+
+        pgassert(*err_msg == NULL);
+        *log_msg = log.str().empty()?
+            *log_msg :
+            pgr_msg(log.str().c_str());
+        *notice_msg = notice.str().empty()?
+            *notice_msg :
+            pgr_msg(notice.str().c_str());
+    } catch (AssertFailedException &except) {
+        (*return_tuples) = pgr_free(*return_tuples);
+        (*return_count) = 0;
+        err << except.what();
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    } catch (std::exception &except) {
+        (*return_tuples) = pgr_free(*return_tuples);
+        (*return_count) = 0;
+        err << except.what();
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    } catch(...) {
+        (*return_tuples) = pgr_free(*return_tuples);
+        (*return_count) = 0;
+        err << "Caught unknown exception!";
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    }
+}
+
diff --git a/src/components/src/connectedComponents.c b/src/components/src/connectedComponents.c
new file mode 100644
index 0000000..990fbda
--- /dev/null
+++ b/src/components/src/connectedComponents.c
@@ -0,0 +1,253 @@
+/*PGR-GNU*****************************************************************
+File: connectedComponents.c
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+/** @file connectedComponents.c
+ * @brief Connecting code with postgres.
+ *
+ * This file is fully documented for understanding
+ *  how the postgres connectinon works
+ *
+ * TODO Remove unnecessary comments before submiting the function.
+ * some comments are in form of PGR_DBG message
+ */
+
+/**
+ *  postgres_connection.h 
+ *
+ *  - should always be first in the C code
+ */
+#include "c_common/postgres_connection.h"
+
+
+/* for macro PGR_DBG */
+#include "c_common/debug_macro.h"
+/* for pgr_global_report */
+#include "c_common/e_report.h"
+/* for time_msg & clock */
+#include "c_common/time_msg.h"
+/* for functions to get edges information */
+#include "c_common/edges_input.h"
+
+#include "drivers/components/connectedComponents_driver.h"  // the link to the C++ code of the function
+
+PGDLLEXPORT Datum connectedComponents(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(connectedComponents);
+
+
+/******************************************************************************/
+/*                          MODIFY AS NEEDED                                  */
+static
+void
+process(
+        char* edges_sql,
+        pgr_components_rt **result_tuples,
+        size_t *result_count) {
+    /*
+     *  https://www.postgresql.org/docs/current/static/spi-spi-connect.html
+     */
+    pgr_SPI_connect();
+
+    (*result_tuples) = NULL;
+    (*result_count) = 0;
+
+    PGR_DBG("Load data");
+    pgr_edge_t *edges = NULL;
+    size_t total_edges = 0;
+
+    pgr_get_edges(edges_sql, &edges, &total_edges);
+    PGR_DBG("Total %ld edges in query:", total_edges);
+
+    if (total_edges == 0) {
+        PGR_DBG("No edges found");
+        pgr_SPI_finish();
+        return;
+    }
+
+    PGR_DBG("Starting processing");
+    clock_t start_t = clock();
+    char *log_msg = NULL;
+    char *notice_msg = NULL;
+    char *err_msg = NULL;
+    do_pgr_connectedComponents(
+            edges,
+            total_edges,
+#if 0
+    /*
+     *  handling arrays example
+     */
+
+            start_vidsArr, size_start_vidsArr,
+            end_vidsArr, size_end_vidsArr,
+#endif
+
+            result_tuples,
+            result_count,
+            &log_msg,
+            &notice_msg,
+            &err_msg);
+
+    time_msg(" processing pgr_connectedComponents", start_t, clock());
+    PGR_DBG("Returning %ld tuples", *result_count);
+
+    if (err_msg) {
+        if (*result_tuples) pfree(*result_tuples);
+    }
+    pgr_global_report(log_msg, notice_msg, err_msg);
+
+    if (edges) pfree(edges);
+    if (log_msg) pfree(log_msg);
+    if (notice_msg) pfree(notice_msg);
+    if (err_msg) pfree(err_msg);
+#if 0
+    /*
+     *  handling arrays example
+     */
+
+    if (end_vidsArr) pfree(end_vidsArr);
+    if (start_vidsArr) pfree(start_vidsArr);
+#endif
+
+    pgr_SPI_finish();
+}
+/*                                                                            */
+/******************************************************************************/
+
+PGDLLEXPORT Datum connectedComponents(PG_FUNCTION_ARGS) {
+    FuncCallContext     *funcctx;
+    TupleDesc           tuple_desc;
+
+    /**************************************************************************/
+    /*                          MODIFY AS NEEDED                              */
+    /*                                                                        */
+    pgr_components_rt *result_tuples = NULL;
+    size_t result_count = 0;
+    /*                                                                        */
+    /**************************************************************************/
+
+    if (SRF_IS_FIRSTCALL()) {
+        MemoryContext   oldcontext;
+        funcctx = SRF_FIRSTCALL_INIT();
+        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
+
+
+        /**********************************************************************/
+        /*                          MODIFY AS NEEDED                          */
+        /*
+           TEXT,
+    BIGINT,
+    BIGINT,
+         **********************************************************************/
+
+
+        PGR_DBG("Calling process");
+        process(
+                text_to_cstring(PG_GETARG_TEXT_P(0)),
+#if 0
+                /*
+                 *  handling arrays example
+                 */
+
+                PG_GETARG_ARRAYTYPE_P(1),
+                PG_GETARG_ARRAYTYPE_P(2),
+#endif
+                &result_tuples,
+                &result_count);
+
+        /*                                                                    */
+        /**********************************************************************/
+
+#if PGSQL_VERSION > 94
+        funcctx->max_calls = (uint32_t)result_count;
+#else
+        funcctx->max_calls = (uint32_t)result_count;
+#endif
+        funcctx->user_fctx = result_tuples;
+        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
+                != TYPEFUNC_COMPOSITE) {
+            ereport(ERROR,
+                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+                     errmsg("function returning record called in context "
+                         "that cannot accept type record")));
+        }
+
+        funcctx->tuple_desc = tuple_desc;
+        MemoryContextSwitchTo(oldcontext);
+    }
+
+    funcctx = SRF_PERCALL_SETUP();
+    tuple_desc = funcctx->tuple_desc;
+    result_tuples = (pgr_components_rt*) funcctx->user_fctx;
+
+    if (funcctx->call_cntr < funcctx->max_calls) {
+        HeapTuple    tuple;
+        Datum        result;
+        Datum        *values;
+        bool*        nulls;
+
+        /**********************************************************************/
+        /*                          MODIFY AS NEEDED                          */
+        /*
+               OUT seq INTEGER,
+               OUT component BIGINT,
+               OUT n_seq INTEGER,
+               OUT node BIGINT
+         ***********************************************************************/
+
+        values = palloc(6 * sizeof(Datum));
+        nulls = palloc(6 * sizeof(bool));
+
+
+        size_t i;
+        for (i = 0; i < 6; ++i) {
+            nulls[i] = false;
+        }
+
+        // postgres starts counting from 1
+        values[0] = Int32GetDatum(funcctx->call_cntr + 1);
+        values[1] = Int64GetDatum(result_tuples[funcctx->call_cntr].component);
+        values[2] = Int32GetDatum(result_tuples[funcctx->call_cntr].n_seq);
+        values[3] = Int64GetDatum(result_tuples[funcctx->call_cntr].identifier);
+        /**********************************************************************/
+
+        tuple = heap_form_tuple(tuple_desc, values, nulls);
+        result = HeapTupleGetDatum(tuple);
+        SRF_RETURN_NEXT(funcctx, result);
+    } else {
+        /**********************************************************************/
+        /*                          MODIFY AS NEEDED                          */
+
+        PGR_DBG("Clean up code");
+
+        /**********************************************************************/
+
+        SRF_RETURN_DONE(funcctx);
+    }
+}
+
diff --git a/src/components/src/connectedComponents_driver.cpp b/src/components/src/connectedComponents_driver.cpp
new file mode 100644
index 0000000..0c688e0
--- /dev/null
+++ b/src/components/src/connectedComponents_driver.cpp
@@ -0,0 +1,135 @@
+/*PGR-GNU*****************************************************************
+File: connectedComponents_driver.cpp
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer: 
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#include "drivers/components/connectedComponents_driver.h"
+
+#include <sstream>
+#include <deque>
+#include <vector>
+
+#include "components/pgr_components.hpp"
+
+#include "cpp_common/pgr_alloc.hpp"
+#include "cpp_common/pgr_assert.h"
+
+
+
+
+
+/************************************************************
+  TEXT,
+    BIGINT,
+    BIGINT,
+ ***********************************************************/
+
+template < class G >
+static
+std::vector<pgr_components_rt>
+pgr_connectedComponents(
+        G &graph) {
+    std::vector<pgr_components_rt> results;
+    Pgr_components< G > fn_components;
+    return fn_components.connectedComponents(graph);
+}
+
+
+void
+do_pgr_connectedComponents(
+        pgr_edge_t  *data_edges,
+        size_t total_edges,
+        pgr_components_rt **return_tuples,
+        size_t *return_count,
+        char ** log_msg,
+        char ** notice_msg,
+        char ** err_msg) {
+    std::ostringstream log;
+    std::ostringstream err;
+    std::ostringstream notice;
+    try {
+        pgassert(!(*log_msg));
+        pgassert(!(*notice_msg));
+        pgassert(!(*err_msg));
+        pgassert(!(*return_tuples));
+        pgassert(*return_count == 0);
+        pgassert(total_edges != 0);
+
+        graphType gType = UNDIRECTED;
+
+        std::vector<pgr_components_rt> results;
+
+        log << "Working with Undirected Graph\n";
+        pgrouting::ComponentsUndiGraph undigraph(gType);
+        undigraph.insert_edges(data_edges, total_edges);
+        results = pgr_connectedComponents(
+                undigraph);
+
+        auto count = results.size();
+
+        if (count == 0) {
+            (*return_tuples) = NULL;
+            (*return_count) = 0;
+            notice <<
+                "No paths found between start_vid and end_vid vertices";
+            return;
+        }
+
+        (*return_tuples) = pgr_alloc(count, (*return_tuples));
+        for (size_t i = 0; i < count; i++) {
+            *((*return_tuples) + i) = results[i];
+        }
+        (*return_count) = count;
+
+        pgassert(*err_msg == NULL);
+        *log_msg = log.str().empty()?
+            *log_msg :
+            pgr_msg(log.str().c_str());
+        *notice_msg = notice.str().empty()?
+            *notice_msg :
+            pgr_msg(notice.str().c_str());
+    } catch (AssertFailedException &except) {
+        (*return_tuples) = pgr_free(*return_tuples);
+        (*return_count) = 0;
+        err << except.what();
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    } catch (std::exception &except) {
+        (*return_tuples) = pgr_free(*return_tuples);
+        (*return_count) = 0;
+        err << except.what();
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    } catch(...) {
+        (*return_tuples) = pgr_free(*return_tuples);
+        (*return_count) = 0;
+        err << "Caught unknown exception!";
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    }
+}
+
diff --git a/src/components/src/strongComponents.c b/src/components/src/strongComponents.c
new file mode 100644
index 0000000..ac615a4
--- /dev/null
+++ b/src/components/src/strongComponents.c
@@ -0,0 +1,253 @@
+/*PGR-GNU*****************************************************************
+File: strongComponents.c
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+/** @file strongComponents.c
+ * @brief Connecting code with postgres.
+ *
+ * This file is fully documented for understanding
+ *  how the postgres connectinon works
+ *
+ * TODO Remove unnecessary comments before submiting the function.
+ * some comments are in form of PGR_DBG message
+ */
+
+/**
+ *  postgres_connection.h 
+ *
+ *  - should always be first in the C code
+ */
+#include "c_common/postgres_connection.h"
+
+
+/* for macro PGR_DBG */
+#include "c_common/debug_macro.h"
+/* for pgr_global_report */
+#include "c_common/e_report.h"
+/* for time_msg & clock */
+#include "c_common/time_msg.h"
+/* for functions to get edges information */
+#include "c_common/edges_input.h"
+
+#include "drivers/components/strongComponents_driver.h"  // the link to the C++ code of the function
+
+PGDLLEXPORT Datum strongComponents(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(strongComponents);
+
+
+/******************************************************************************/
+/*                          MODIFY AS NEEDED                                  */
+static
+void
+process(
+        char* edges_sql,
+        pgr_components_rt **result_tuples,
+        size_t *result_count) {
+    /*
+     *  https://www.postgresql.org/docs/current/static/spi-spi-connect.html
+     */
+    pgr_SPI_connect();
+
+    (*result_tuples) = NULL;
+    (*result_count) = 0;
+
+    PGR_DBG("Load data");
+    pgr_edge_t *edges = NULL;
+    size_t total_edges = 0;
+
+    pgr_get_edges(edges_sql, &edges, &total_edges);
+    PGR_DBG("Total %ld edges in query:", total_edges);
+
+    if (total_edges == 0) {
+        PGR_DBG("No edges found");
+        pgr_SPI_finish();
+        return;
+    }
+
+    PGR_DBG("Starting processing");
+    clock_t start_t = clock();
+    char *log_msg = NULL;
+    char *notice_msg = NULL;
+    char *err_msg = NULL;
+    do_pgr_strongComponents(
+            edges,
+            total_edges,
+#if 0
+    /*
+     *  handling arrays example
+     */
+
+            start_vidsArr, size_start_vidsArr,
+            end_vidsArr, size_end_vidsArr,
+#endif
+
+            result_tuples,
+            result_count,
+            &log_msg,
+            &notice_msg,
+            &err_msg);
+
+    time_msg(" processing pgr_strongComponents", start_t, clock());
+    PGR_DBG("Returning %ld tuples", *result_count);
+
+    if (err_msg) {
+        if (*result_tuples) pfree(*result_tuples);
+    }
+    pgr_global_report(log_msg, notice_msg, err_msg);
+
+    if (edges) pfree(edges);
+    if (log_msg) pfree(log_msg);
+    if (notice_msg) pfree(notice_msg);
+    if (err_msg) pfree(err_msg);
+#if 0
+    /*
+     *  handling arrays example
+     */
+
+    if (end_vidsArr) pfree(end_vidsArr);
+    if (start_vidsArr) pfree(start_vidsArr);
+#endif
+
+    pgr_SPI_finish();
+}
+/*                                                                            */
+/******************************************************************************/
+
+PGDLLEXPORT Datum strongComponents(PG_FUNCTION_ARGS) {
+    FuncCallContext     *funcctx;
+    TupleDesc           tuple_desc;
+
+    /**************************************************************************/
+    /*                          MODIFY AS NEEDED                              */
+    /*                                                                        */
+    pgr_components_rt *result_tuples = NULL;
+    size_t result_count = 0;
+    /*                                                                        */
+    /**************************************************************************/
+
+    if (SRF_IS_FIRSTCALL()) {
+        MemoryContext   oldcontext;
+        funcctx = SRF_FIRSTCALL_INIT();
+        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
+
+
+        /**********************************************************************/
+        /*                          MODIFY AS NEEDED                          */
+        /*
+           TEXT,
+    BIGINT,
+    BIGINT,
+         **********************************************************************/
+
+
+        PGR_DBG("Calling process");
+        process(
+                text_to_cstring(PG_GETARG_TEXT_P(0)),
+#if 0
+                /*
+                 *  handling arrays example
+                 */
+
+                PG_GETARG_ARRAYTYPE_P(1),
+                PG_GETARG_ARRAYTYPE_P(2),
+#endif
+                &result_tuples,
+                &result_count);
+
+        /*                                                                    */
+        /**********************************************************************/
+
+#if PGSQL_VERSION > 94
+        funcctx->max_calls = (uint32_t)result_count;
+#else
+        funcctx->max_calls = (uint32_t)result_count;
+#endif
+        funcctx->user_fctx = result_tuples;
+        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
+                != TYPEFUNC_COMPOSITE) {
+            ereport(ERROR,
+                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+                     errmsg("function returning record called in context "
+                         "that cannot accept type record")));
+        }
+
+        funcctx->tuple_desc = tuple_desc;
+        MemoryContextSwitchTo(oldcontext);
+    }
+
+    funcctx = SRF_PERCALL_SETUP();
+    tuple_desc = funcctx->tuple_desc;
+    result_tuples = (pgr_components_rt*) funcctx->user_fctx;
+
+    if (funcctx->call_cntr < funcctx->max_calls) {
+        HeapTuple    tuple;
+        Datum        result;
+        Datum        *values;
+        bool*        nulls;
+
+        /**********************************************************************/
+        /*                          MODIFY AS NEEDED                          */
+        /*
+               OUT seq INTEGER,
+               OUT component BIGINT,
+               OUT n_seq INTEGER,
+               OUT node BIGINT
+         ***********************************************************************/
+
+        values = palloc(6 * sizeof(Datum));
+        nulls = palloc(6 * sizeof(bool));
+
+
+        size_t i;
+        for (i = 0; i < 6; ++i) {
+            nulls[i] = false;
+        }
+
+        // postgres starts counting from 1
+        values[0] = Int32GetDatum(funcctx->call_cntr + 1);
+        values[1] = Int64GetDatum(result_tuples[funcctx->call_cntr].component);
+        values[2] = Int32GetDatum(result_tuples[funcctx->call_cntr].n_seq);
+        values[3] = Int64GetDatum(result_tuples[funcctx->call_cntr].identifier);
+        /**********************************************************************/
+
+        tuple = heap_form_tuple(tuple_desc, values, nulls);
+        result = HeapTupleGetDatum(tuple);
+        SRF_RETURN_NEXT(funcctx, result);
+    } else {
+        /**********************************************************************/
+        /*                          MODIFY AS NEEDED                          */
+
+        PGR_DBG("Clean up code");
+
+        /**********************************************************************/
+
+        SRF_RETURN_DONE(funcctx);
+    }
+}
+
diff --git a/src/components/src/strongComponents_driver.cpp b/src/components/src/strongComponents_driver.cpp
new file mode 100644
index 0000000..51a9565
--- /dev/null
+++ b/src/components/src/strongComponents_driver.cpp
@@ -0,0 +1,135 @@
+/*PGR-GNU*****************************************************************
+File: strongComponents_driver.cpp
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer: 
+Copyright (c) 2017 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#include "drivers/components/strongComponents_driver.h"
+
+#include <sstream>
+#include <deque>
+#include <vector>
+
+#include "components/pgr_components.hpp"
+
+#include "cpp_common/pgr_alloc.hpp"
+#include "cpp_common/pgr_assert.h"
+
+
+
+
+
+/************************************************************
+  TEXT,
+    BIGINT,
+    BIGINT,
+ ***********************************************************/
+
+template < class G >
+static
+std::vector<pgr_components_rt>
+pgr_strongComponents(
+        G &graph) {
+    std::vector<pgr_components_rt> results;
+    Pgr_components< G > fn_components;
+    return fn_components.strongComponents(graph);
+}
+
+
+void
+do_pgr_strongComponents(
+        pgr_edge_t  *data_edges,
+        size_t total_edges,
+        pgr_components_rt **return_tuples,
+        size_t *return_count,
+        char ** log_msg,
+        char ** notice_msg,
+        char ** err_msg) {
+    std::ostringstream log;
+    std::ostringstream err;
+    std::ostringstream notice;
+    try {
+        pgassert(!(*log_msg));
+        pgassert(!(*notice_msg));
+        pgassert(!(*err_msg));
+        pgassert(!(*return_tuples));
+        pgassert(*return_count == 0);
+        pgassert(total_edges != 0);
+
+        graphType gType = DIRECTED;
+
+        std::vector<pgr_components_rt> results;
+
+        log << "Working with Directed Graph\n";
+        pgrouting::DirectedGraph digraph(gType);
+        digraph.insert_edges(data_edges, total_edges);
+        results = pgr_strongComponents(
+                digraph);
+
+        auto count = results.size();
+
+        if (count == 0) {
+            (*return_tuples) = NULL;
+            (*return_count) = 0;
+            notice <<
+                "No paths found between start_vid and end_vid vertices";
+            return;
+        }
+
+        (*return_tuples) = pgr_alloc(count, (*return_tuples));
+        for (size_t i = 0; i < count; i++) {
+            *((*return_tuples) + i) = results[i];
+        }
+        (*return_count) = count;
+
+        pgassert(*err_msg == NULL);
+        *log_msg = log.str().empty()?
+            *log_msg :
+            pgr_msg(log.str().c_str());
+        *notice_msg = notice.str().empty()?
+            *notice_msg :
+            pgr_msg(notice.str().c_str());
+    } catch (AssertFailedException &except) {
+        (*return_tuples) = pgr_free(*return_tuples);
+        (*return_count) = 0;
+        err << except.what();
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    } catch (std::exception &except) {
+        (*return_tuples) = pgr_free(*return_tuples);
+        (*return_count) = 0;
+        err << except.what();
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    } catch(...) {
+        (*return_tuples) = pgr_free(*return_tuples);
+        (*return_count) = 0;
+        err << "Caught unknown exception!";
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    }
+}
+
diff --git a/src/components/test/doc-pgr_articulationPoints.result b/src/components/test/doc-pgr_articulationPoints.result
new file mode 100644
index 0000000..4bbe0b6
--- /dev/null
+++ b/src/components/test/doc-pgr_articulationPoints.result
@@ -0,0 +1,30 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_articulationPoints(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
+ seq | node 
+-----+------
+   1 |    2
+   2 |    5
+   3 |    8
+   4 |   10
+(4 rows)
+
+-- q2
+SELECT * FROM pgr_articulationPoints(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
+ seq | node 
+-----+------
+   1 |    2
+   2 |    5
+   3 |    8
+   4 |   10
+(4 rows)
+
+ROLLBACK;
+ROLLBACK
diff --git a/src/components/test/doc-pgr_articulationPoints.test.sql b/src/components/test/doc-pgr_articulationPoints.test.sql
new file mode 100644
index 0000000..704c13b
--- /dev/null
+++ b/src/components/test/doc-pgr_articulationPoints.test.sql
@@ -0,0 +1,10 @@
+
+\echo -- q1
+SELECT * FROM pgr_articulationPoints(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
+
+\echo -- q2
+SELECT * FROM pgr_articulationPoints(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
diff --git a/src/components/test/doc-pgr_biconnectedComponents.result b/src/components/test/doc-pgr_biconnectedComponents.result
new file mode 100644
index 0000000..afaa41c
--- /dev/null
+++ b/src/components/test/doc-pgr_biconnectedComponents.result
@@ -0,0 +1,58 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_biconnectedComponents(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
+ seq | component | n_seq | edge 
+-----+-----------+-------+------
+   1 |         1 |     1 |    1
+   2 |         2 |     1 |    2
+   3 |         2 |     2 |    3
+   4 |         2 |     3 |    4
+   5 |         2 |     4 |    5
+   6 |         2 |     5 |    8
+   7 |         2 |     6 |    9
+   8 |         2 |     7 |   10
+   9 |         2 |     8 |   11
+  10 |         2 |     9 |   12
+  11 |         2 |    10 |   13
+  12 |         2 |    11 |   15
+  13 |         2 |    12 |   16
+  14 |         6 |     1 |    6
+  15 |         7 |     1 |    7
+  16 |        14 |     1 |   14
+  17 |        17 |     1 |   17
+  18 |        18 |     1 |   18
+(18 rows)
+
+-- q2
+SELECT * FROM pgr_biconnectedComponents(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
+ seq | component | n_seq | edge 
+-----+-----------+-------+------
+   1 |         1 |     1 |    1
+   2 |         2 |     1 |    2
+   3 |         2 |     2 |    3
+   4 |         2 |     3 |    4
+   5 |         2 |     4 |    5
+   6 |         2 |     5 |    8
+   7 |         2 |     6 |    9
+   8 |         2 |     7 |   10
+   9 |         2 |     8 |   11
+  10 |         2 |     9 |   12
+  11 |         2 |    10 |   13
+  12 |         2 |    11 |   15
+  13 |         2 |    12 |   16
+  14 |         6 |     1 |    6
+  15 |         7 |     1 |    7
+  16 |        14 |     1 |   14
+  17 |        17 |     1 |   17
+  18 |        18 |     1 |   18
+(18 rows)
+
+ROLLBACK;
+ROLLBACK
diff --git a/src/components/test/doc-pgr_biconnectedComponents.test.sql b/src/components/test/doc-pgr_biconnectedComponents.test.sql
new file mode 100644
index 0000000..afecf02
--- /dev/null
+++ b/src/components/test/doc-pgr_biconnectedComponents.test.sql
@@ -0,0 +1,10 @@
+
+\echo -- q1
+SELECT * FROM pgr_biconnectedComponents(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
+
+\echo -- q2
+SELECT * FROM pgr_biconnectedComponents(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
diff --git a/src/components/test/doc-pgr_bridges.result b/src/components/test/doc-pgr_bridges.result
new file mode 100644
index 0000000..649046d
--- /dev/null
+++ b/src/components/test/doc-pgr_bridges.result
@@ -0,0 +1,34 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_bridges(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
+ seq | edge 
+-----+------
+   1 |    1
+   2 |    6
+   3 |    7
+   4 |   14
+   5 |   17
+   6 |   18
+(6 rows)
+
+-- q2
+SELECT * FROM pgr_bridges(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
+ seq | edge 
+-----+------
+   1 |    1
+   2 |    6
+   3 |    7
+   4 |   14
+   5 |   17
+   6 |   18
+(6 rows)
+
+ROLLBACK;
+ROLLBACK
diff --git a/src/components/test/doc-pgr_bridges.test.sql b/src/components/test/doc-pgr_bridges.test.sql
new file mode 100644
index 0000000..1e514e9
--- /dev/null
+++ b/src/components/test/doc-pgr_bridges.test.sql
@@ -0,0 +1,10 @@
+
+\echo -- q1
+SELECT * FROM pgr_bridges(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
+
+\echo -- q2
+SELECT * FROM pgr_bridges(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
diff --git a/src/components/test/doc-pgr_connectedComponents.result b/src/components/test/doc-pgr_connectedComponents.result
new file mode 100644
index 0000000..da041b1
--- /dev/null
+++ b/src/components/test/doc-pgr_connectedComponents.result
@@ -0,0 +1,56 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_connectedComponents(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
+ seq | component | n_seq | node 
+-----+-----------+-------+------
+   1 |         1 |     1 |    1
+   2 |         1 |     2 |    2
+   3 |         1 |     3 |    3
+   4 |         1 |     4 |    4
+   5 |         1 |     5 |    5
+   6 |         1 |     6 |    6
+   7 |         1 |     7 |    7
+   8 |         1 |     8 |    8
+   9 |         1 |     9 |    9
+  10 |         1 |    10 |   10
+  11 |         1 |    11 |   11
+  12 |         1 |    12 |   12
+  13 |         1 |    13 |   13
+  14 |        14 |     1 |   14
+  15 |        14 |     2 |   15
+  16 |        16 |     1 |   16
+  17 |        16 |     2 |   17
+(17 rows)
+
+-- q2
+SELECT * FROM pgr_connectedComponents(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
+ seq | component | n_seq | node 
+-----+-----------+-------+------
+   1 |         1 |     1 |    1
+   2 |         1 |     2 |    2
+   3 |         1 |     3 |    3
+   4 |         1 |     4 |    4
+   5 |         1 |     5 |    5
+   6 |         1 |     6 |    6
+   7 |         1 |     7 |    7
+   8 |         1 |     8 |    8
+   9 |         1 |     9 |    9
+  10 |         1 |    10 |   10
+  11 |         1 |    11 |   11
+  12 |         1 |    12 |   12
+  13 |         1 |    13 |   13
+  14 |        14 |     1 |   14
+  15 |        14 |     2 |   15
+  16 |        16 |     1 |   16
+  17 |        16 |     2 |   17
+(17 rows)
+
+ROLLBACK;
+ROLLBACK
diff --git a/src/components/test/doc-pgr_connectedComponents.test.sql b/src/components/test/doc-pgr_connectedComponents.test.sql
new file mode 100644
index 0000000..bbef5d1
--- /dev/null
+++ b/src/components/test/doc-pgr_connectedComponents.test.sql
@@ -0,0 +1,10 @@
+
+\echo -- q1
+SELECT * FROM pgr_connectedComponents(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
+
+\echo -- q2
+SELECT * FROM pgr_connectedComponents(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
diff --git a/src/components/test/doc-pgr_strongComponents.result b/src/components/test/doc-pgr_strongComponents.result
new file mode 100644
index 0000000..ad97903
--- /dev/null
+++ b/src/components/test/doc-pgr_strongComponents.result
@@ -0,0 +1,56 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_strongComponents(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
+ seq | component | n_seq | node 
+-----+-----------+-------+------
+   1 |         1 |     1 |    1
+   2 |         1 |     2 |    2
+   3 |         1 |     3 |    3
+   4 |         1 |     4 |    4
+   5 |         1 |     5 |    5
+   6 |         1 |     6 |    6
+   7 |         1 |     7 |    7
+   8 |         1 |     8 |    8
+   9 |         1 |     9 |    9
+  10 |         1 |    10 |   10
+  11 |         1 |    11 |   11
+  12 |         1 |    12 |   12
+  13 |         1 |    13 |   13
+  14 |        14 |     1 |   14
+  15 |        14 |     2 |   15
+  16 |        16 |     1 |   16
+  17 |        16 |     2 |   17
+(17 rows)
+
+-- q2
+SELECT * FROM pgr_strongComponents(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
+ seq | component | n_seq | node 
+-----+-----------+-------+------
+   1 |         1 |     1 |    1
+   2 |         1 |     2 |    2
+   3 |         1 |     3 |    3
+   4 |         1 |     4 |    4
+   5 |         1 |     5 |    5
+   6 |         1 |     6 |    6
+   7 |         1 |     7 |    7
+   8 |         1 |     8 |    8
+   9 |         1 |     9 |    9
+  10 |         1 |    10 |   10
+  11 |         1 |    11 |   11
+  12 |         1 |    12 |   12
+  13 |         1 |    13 |   13
+  14 |        14 |     1 |   14
+  15 |        14 |     2 |   15
+  16 |        16 |     1 |   16
+  17 |        16 |     2 |   17
+(17 rows)
+
+ROLLBACK;
+ROLLBACK
diff --git a/src/components/test/doc-pgr_strongComponents.test.sql b/src/components/test/doc-pgr_strongComponents.test.sql
new file mode 100644
index 0000000..963b0a3
--- /dev/null
+++ b/src/components/test/doc-pgr_strongComponents.test.sql
@@ -0,0 +1,10 @@
+
+\echo -- q1
+SELECT * FROM pgr_strongComponents(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
+
+\echo -- q2
+SELECT * FROM pgr_strongComponents(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
diff --git a/src/components/test/pgtap/connectedComponentsV-compare-dijkstra.sql b/src/components/test/pgtap/connectedComponentsV-compare-dijkstra.sql
new file mode 100644
index 0000000..a39d35c
--- /dev/null
+++ b/src/components/test/pgtap/connectedComponentsV-compare-dijkstra.sql
@@ -0,0 +1,73 @@
+\i setup.sql
+
+SELECT plan(1156);
+
+SET client_min_messages TO ERROR;
+
+UPDATE edge_table SET cost = cost + 0.001 * id * id, reverse_cost = reverse_cost + 0.001 * id * id;
+
+CREATE or REPLACE FUNCTION connectedcomponentsv_compare_dijkstra(cant INTEGER default 17)
+RETURNS SETOF TEXT AS
+$BODY$
+DECLARE
+inner_sql TEXT;
+dijkstra_sql TEXT;
+connectedcomponentsv_sql TEXT;
+BEGIN
+
+    FOR i IN 1.. cant LOOP
+        FOR j IN 1.. cant LOOP
+
+            -- DIRECTED
+            inner_sql := 'SELECT id, source, target, cost, reverse_cost FROM edge_table';
+            dijkstra_sql := 'SELECT * FROM pgr_dijkstra($$' || inner_sql || '$$, ' || i || ', ' || j
+                || ', true)';
+
+            connectedcomponentsv_sql := 'SELECT * FROM pgr_connectedcomponentsv($$' || inner_sql || '$$, ' || i || ', ' || j
+                || ', true)';
+            RETURN query SELECT set_eq(connectedcomponentsv_sql, dijkstra_sql, connectedcomponentsv_sql);
+
+
+            inner_sql := 'SELECT id, source, target, cost FROM edge_table';
+            dijkstra_sql := 'SELECT * FROM pgr_dijkstra($$' || inner_sql || '$$, ' || i || ', ' || j
+                || ', true)';
+
+            connectedcomponentsv_sql := 'SELECT * FROM pgr_connectedcomponentsv($$' || inner_sql || '$$, ' || i || ', ' || j
+                || ', true)';
+            RETURN query SELECT set_eq(connectedcomponentsv_sql, dijkstra_sql, connectedcomponentsv_sql);
+
+
+
+            -- UNDIRECTED
+            inner_sql := 'SELECT id, source, target, cost, reverse_cost FROM edge_table';
+            dijkstra_sql := 'SELECT * FROM pgr_dijkstra($$' || inner_sql || '$$, ' || i || ', ' || j
+                || ', false)';
+
+            connectedcomponentsv_sql := 'SELECT * FROM pgr_connectedcomponentsv($$' || inner_sql || '$$, ' || i || ', ' || j
+                || ', false)';
+            RETURN query SELECT set_eq(connectedcomponentsv_sql, dijkstra_sql, connectedcomponentsv_sql);
+
+
+            inner_sql := 'SELECT id, source, target, cost FROM edge_table';
+            dijkstra_sql := 'SELECT * FROM pgr_dijkstra($$' || inner_sql || '$$, ' || i || ', ' || j
+                || ', false)';
+
+            connectedcomponentsv_sql := 'SELECT * FROM pgr_connectedcomponentsv($$' || inner_sql || '$$, ' || i || ', ' || j
+                || ', false)';
+            RETURN query SELECT set_eq(connectedcomponentsv_sql, dijkstra_sql, connectedcomponentsv_sql);
+
+
+        END LOOP;
+    END LOOP;
+
+    RETURN;
+END
+$BODY$
+language plpgsql;
+
+SELECT * from connectedcomponentsv_compare_dijkstra();
+
+
+SELECT * FROM finish();
+ROLLBACK;
+
diff --git a/src/components/test/pgtap/connectedComponentsV-innerQuery.sql b/src/components/test/pgtap/connectedComponentsV-innerQuery.sql
new file mode 100644
index 0000000..8d9af98
--- /dev/null
+++ b/src/components/test/pgtap/connectedComponentsV-innerQuery.sql
@@ -0,0 +1,21 @@
+\i setup.sql
+
+SELECT plan(137);
+SET client_min_messages TO ERROR;
+
+
+SELECT has_function('pgr_connectedcomponentsv',
+    ARRAY['text', 'bigint', 'bigint', 'boolean','boolean']);
+
+SELECT function_returns('pgr_connectedcomponentsv',
+    ARRAY['text', 'bigint', 'bigint', 'boolean','boolean'],
+    'setof record');
+
+SELECT style_dijkstra('pgr_connectedcomponentsv', ', 2, 3)');
+SELECT style_dijkstra('pgr_connectedcomponentsv', ', 2, 3, true)');
+SELECT style_dijkstra('pgr_connectedcomponentsv', ', 2, 3, false)');
+
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/src/components/test/pgtap/connectedComponentsV-typesCheck.sql b/src/components/test/pgtap/connectedComponentsV-typesCheck.sql
new file mode 100644
index 0000000..6a6d339
--- /dev/null
+++ b/src/components/test/pgtap/connectedComponentsV-typesCheck.sql
@@ -0,0 +1,15 @@
+
+SELECT plan(4);
+
+SELECT has_function('pgr_connectedcomponentsv');
+
+SELECT has_function('pgr_connectedcomponentsv', ARRAY[ 'text', 'bigint', 'bigint', 'boolean', 'boolean' ]);
+
+SELECT function_returns('pgr_connectedcomponentsv', ARRAY[ 'text', 'bigint', 'bigint', 'boolean', 'boolean' ], 'setof record');
+
+-- testing column names
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_connectedcomponentsv'$$,
+    $$SELECT  '{"","","","directed","only_cost","seq","path_seq","node","edge","cost","agg_cost"}'::TEXT[] $$
+);
+
diff --git a/src/components/test/test.conf b/src/components/test/test.conf
new file mode 100644
index 0000000..f891814
--- /dev/null
+++ b/src/components/test/test.conf
@@ -0,0 +1,25 @@
+#!/usr/bin/perl -w
+
+%main::tests = (
+    'any' => {
+        'comment' => 'Components test for any versions.',
+        'data' => [ ],
+        'tests' => [qw(
+            doc-pgr_connectedComponents
+            doc-pgr_strongComponents
+            doc-pgr_biconnectedComponents
+            doc-pgr_articulationPoints
+            doc-pgr_bridges
+            )],
+        'documentation' => [qw(
+            doc-pgr_connectedComponents
+            doc-pgr_strongComponents
+            doc-pgr_biconnectedComponents
+            doc-pgr_articulationPoints
+            doc-pgr_bridges
+            )]
+    },
+
+);
+
+1;
diff --git a/src/contraction/doc/contraction-family.rst b/src/contraction/doc/contraction-family.rst
deleted file mode 100644
index 707d718..0000000
--- a/src/contraction/doc/contraction-family.rst
+++ /dev/null
@@ -1,527 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-
-.. _contraction:
-
-Contraction - Family of functions
-===============================================================================
-
-
-.. include:: proposed.rst
-   :start-after: begin-warn-expr
-   :end-before: end-warn-expr
-
-:ref:`pgr_contractGraph`
-
-.. toctree::
-    :hidden:
-
-    pgr_contractGraph
-
-Introduction
--------------
-
-In big graphs, like the road graphs, or electric networks, graph contraction can be used to speed up some graph algorithms. Contraction reduces the size of the graph by removing some of the vertices and edges and, for example, might add edges that represent a sequence of original edges decreasing the total time and space used in graph algorithms.
-
-This implementation gives a flexible framework for adding contraction algorithms in the future, currently, it supports two algorithms:
-
- 1. Dead end contraction
- 2. Linear contraction
-
-Allowing the user to:
-
-  - Forbid contraction on a set of nodes.
-  - Decide the order of the contraction algorithms and set the maximum number of times they are to be executed.
-
-.. note:: UNDER DISCUSSION:  Forbid contraction on a set of edges
-
-Dead end contraction
--------------------------------------------------------------------------------
-In the algorithm, dead end contraction is represented by 1.
-
-Dead end nodes
-......................
-
-The definition of a dead end node is different for a directed and an undirected graph.
-
-In case of a undirected graph, a node is considered a dead end node if
-
- - The number of adjacent vertices is 1.
-
-In case of an directed graph, a node is considered a dead end node if
-
- - There are no outgoing edges and has at least one incoming edge.
- - There is one incoming and one outgoing edge with the same identifier.
-
-.. rubric:: Examples
-
-- The green node ``B`` represents a dead end node
-- The node ``A`` is the only node connecting to ``B``.
-- Node ``A`` is part of the rest of the graph and has an unlimited number of incoming and outgoing edges.
-- Directed graph
-
-.. graphviz::
-
-    digraph G {
-        A [style=filled;color=deepskyblue];
-        B [style=filled; color=green];
-        "G" [shape=tripleoctagon;
-        style=filled;color=deepskyblue;
-        label = "Rest of the Graph"];
-
-        rankdir=LR;
-        G -> A [dir=none, weight=1, penwidth=3];
-        A -> B;
-    }
-
-
-Operation: Dead End Contraction
-.....................................
-
-The dead end contraction will stop until there are no more dead end nodes.
-For example from the following graph:
-
-- Node ``A`` is connected to the rest of the graph by an unlimited number of edges.
-- Node ``B`` is connected to the rest of the graph with one incoming edge.
-- Node ``B`` is the only node connecting to ``C``.
-- The green node ``C`` represents a `Dead End` node
-
-.. graphviz::
-
-    digraph G {
-        A [style=filled;color=deepskyblue];
-        B [style=filled; color=deepskyblue];
-        C [style=filled; color=green];
-        "G" [shape=tripleoctagon;
-        style=filled;color=deepskyblue;
-        label = "Rest of the Graph"];
-
-        rankdir=LR;
-        G -> A [dir=none, weight=1, penwidth=3];
-        A -> B;
-        B -> C;
-    }
-
-
-After contracting ``C``, node ``B`` is now a `Dead End` node and is contracted:
-
-.. graphviz::
-
-    digraph G {
-        A [style=filled;color=deepskyblue];
-        B [style=filled; color=green;label="B {C}";];
-        "G" [shape=tripleoctagon;
-        style=filled;color=deepskyblue;
-        label = "Rest of the Graph"];
-
-        rankdir=LR;
-        G -> A [dir=none, weight=1, penwidth=3];
-        A -> B;
-    }
-
-Node ``B`` gets contracted
-
-.. graphviz::
-
-    digraph G {
-        A [style=filled;color=deepskyblue;label="A {B, C}";];
-        "G" [shape=tripleoctagon;
-        style=filled;color=deepskyblue;
-        label = "Rest of the Graph"];
-
-        rankdir=LR;
-        G -> A [dir=none, weight=1, penwidth=3];
-    }
-
-Nodes ``B`` and ``C`` belong to node ``A``.
-
-
-
-Not Dead End nodes
-......................
-
-In this graph ``B`` is not a `dead end` node.
-
-.. graphviz::
-
-    digraph G {
-        A [style=filled;color=deepskyblue];
-        B [style=filled; color=red];
-        "G" [shape=tripleoctagon;
-        style=filled;color=deepskyblue;
-        label = "Rest of the Graph"];
-
-        G -> A [dir=none, weight=1, penwidth=3];
-        B -> A;
-    }
-
-Linear contraction
--------------------------------------------------------------------------------
-In the algorithm, linear contraction is represented by 2.
-
-Linear nodes
-......................
-
-A node is considered a linear node if satisfies the following:
-
-- The number of adjacent vertices are 2.
-- Should have at least one incoming edge and one outgoing edge.
-
-.. rubric:: Examples
-
-- The green node ``B`` represents a linear node
-- The nodes ``A`` and ``C`` are the only nodes connecting to ``B``.
-- Node ``A`` is part of the rest of the graph and has an unlimited number of incoming and outgoing edges.
-- Node ``C`` is part of the rest of the graph and has an unlimited number of incoming and outgoing edges.
-- Directed graph
-
-.. graphviz::
-
-    digraph G {
-        A [style=filled;color=deepskyblue];
-        B [style=filled; color=green];
-        C [style=filled;color=deepskyblue];
-        "G" [shape=tripleoctagon;
-        style=filled;color=deepskyblue;
-        label = "Rest of the Graph"];
-
-        rankdir=LR;
-        G -> A [dir=none, weight=1, penwidth=3];
-        G -> C [dir=none, weight=1, penwidth=3];
-        A -> B;
-        B -> C;
-    }
-
-Operation: Linear Contraction
-.....................................
-
-The linear contraction will stop until there are no more linear nodes.
-For example from the following graph:
-
-- Node ``A`` is connected to the rest of the graph by an unlimited number of edges.
-- Node ``B`` is connected to the rest of the graph with one incoming edge and one outgoing edge.
-- Node ``C`` is connected to the rest of the graph with one incoming edge and one outgoing edge.
-- Node ``D`` is connected to the rest of the graph by an unlimited number of edges.
-- The green nodes ``B`` and ``C`` represents `Linear` nodes.
-
-.. graphviz::
-
-    digraph G {
-        A [style=filled;color=deepskyblue];
-        B [style=filled; color=green];
-        C [style=filled; color=green];
-        D [style=filled; color=deepskyblue];
-        "G" [shape=tripleoctagon;
-        style=filled;color=deepskyblue;
-        label = "Rest of the Graph"];
-
-        rankdir=LR;
-        G -> A [dir=none, weight=1, penwidth=3];
-        G -> D [dir=none, weight=1, penwidth=3];
-        A -> B;
-        B -> C;
-        C -> D;
-
-    }
-
-After contracting ``B``, a new edge gets inserted between ``A`` and ``C`` which is represented by red color.
-
-.. graphviz::
-
-    digraph G {
-        A [style=filled;color=deepskyblue];
-        C [style=filled; color=green];
-        D [style=filled; color=deepskyblue];
-        "G" [shape=tripleoctagon;
-        style=filled;color=deepskyblue;
-        label = "Rest of the Graph"];
-
-        rankdir=LR;
-        G -> A [dir=none, weight=1, penwidth=3];
-        G -> D [dir=none, weight=1, penwidth=3];
-        A -> C [label="{B}";color=red]
-        C -> D;
-
-    }
-
-Node ``C`` is `linear node` and gets contracted.
-
-.. graphviz::
-
-    digraph G {
-        A [style=filled;color=deepskyblue];
-        D [style=filled; color=deepskyblue];
-        "G" [shape=tripleoctagon;
-        style=filled;color=deepskyblue;
-        label = "Rest of the Graph"];
-
-        rankdir=LR;
-        G -> A [dir=none, weight=1, penwidth=3];
-        G -> D [dir=none, weight=1, penwidth=3];
-        A -> D [label="{B, C}";color=red];
-
-    }
-
-Nodes ``B`` and ``C`` belong to edge connecting ``A`` and ``D`` which is represented by red color.
-
-Not Linear nodes
-......................
-
-In this graph ``B`` is not a `linear` node.
-
-.. graphviz::
-
-    digraph G {
-        A [style=filled;color=deepskyblue];
-        B [style=filled; color=red];
-        C [style=filled;color=deepskyblue];
-        "G" [shape=tripleoctagon;
-        style=filled;color=deepskyblue;
-        label = "Rest of the Graph"];
-
-        rankdir=LR;
-        G -> A [dir=none, weight=1, penwidth=3];
-        G -> C [dir=none, weight=1, penwidth=3];
-        A -> B;
-        C -> B;
-    }
-
-
-The cycle
----------
-
-Contracting a graph, can be done with more than one operation. The order of the operations affect the resulting contracted graph, after applying one operation, the set of vertices that can be contracted by another operation changes.
-
-This implementation, cycles ``max_cycles`` times through ``operations_order`` .
-
-.. code-block:: none
-
-    <input>
-    do max_cycles times {
-        for (operation in operations_order)
-         { do operation }
-    }
-    <output>
-
-
-Contracting Sample Data
--------------------------------------------------------------
-
-In this section, building and using a contracted graph will be shown by example.
-
-- The :ref:`sampledata` for an undirected graph is used
-- a dead end operation first followed by a linear operation.
-
-The original graph:
-
-.. image:: images/undirected_sampledata_a.png
-
-After doing a dead end contraction operation:
-
-.. image:: images/undirected_sampledata_b.png
-
-Doing a linear contraction operation to the graph above
-
-.. image:: images/undirected_sampledata_c.png
-
-
-There are five cases, in this documentation, which arise when calculating the shortest path between a given source and target.
-In this examples, ``pgr_dijkstra`` is used.
-
-- **Case 1**: Both source and target belong to the contracted graph.
-- **Case 2**: Source belongs to a contracted graph, while target belongs to a edge subgraph.
-- **Case 3**: Source belongs to a vertex subgraph, while target belongs to an edge subgraph.
-- **Case 4**: Source belongs to a contracted graph, while target belongs to an vertex subgraph.
-- **Case 5**: The path contains a new edge added by the contraction algorithm.
-
-Construction of the graph in the database
-..........................................
-
-.. rubric:: Original Data
-
-The following query shows the original data involved in the contraction operation.
-
-.. literalinclude:: doc-contraction.queries
-   :start-after: -- q00
-   :end-before: -- q01
-
-.. rubric:: Contraction Results
-
-.. literalinclude:: doc-contraction.queries
-   :start-after: -- q2
-   :end-before: -- q3
-
-The above results do not represent the contracted graph. They represent the changes done to the graph after applying the contraction algorithm. We can see that vertices like 6 and 11 do not appear in the contraction results because they were not affected by the contraction algorithm.
-
-.. rubric:: step 1
-
-Adding extra columns to the ``edge_table`` and ``edge_table_vertices_pgr`` tables:
-
-=======================  ==================================================
-Column                    Description
-=======================  ==================================================
-**contracted_vertices**    The vertices set belonging to the vertex/edge
-**is_contracted**          On a `vertex` table: when ``true`` the vertex is contracted, so is not part of the contracted graph.
-**is_contracted**          On an `edge` table: when ``true`` the edge was generated by the contraction algorithm.
-=======================  ==================================================
-
-Using the following queries:
-
-.. literalinclude:: doc-contraction.queries
-   :start-after: -- q1
-   :end-before: -- q2
-
-.. rubric:: step 2
-
-For simplicity, in this documentation, store the results of the call to pgr_contractGraph in a temporary table
-
-.. literalinclude:: doc-contraction.queries
-   :start-after: -- q3
-   :end-before: -- q4
-
-.. rubric:: step 3
-
-Update the `vertex` and `edge` tables using the results of the call to pgr_contraction
-
-- In `edge_table_vertices_pgr.is_contracted` indicate the vertices that are contracted.
-
-.. literalinclude:: doc-contraction.queries
-   :start-after: -- q4
-   :end-before: -- q5
-
-- Add to `edge_table_vertices_pgr.contracted_vertices`  the contracted vertices belonging to the vertices.
-
-.. literalinclude:: doc-contraction.queries
-   :start-after: -- q6
-   :end-before: -- q7
-
-- Insert the new edges generated by  pgr_contractGraph.
-
-.. literalinclude:: doc-contraction.queries
-   :start-after: -- q8
-   :end-before: -- q9
-
-.. rubric:: step 3.1
-
-Verify visually the updates.
-
-- On the `edge_table_vertices_pgr`
-
-.. literalinclude:: doc-contraction.queries
-   :start-after: -- q7
-   :end-before: -- q8
-
-- On the `edge_table`
-
-.. literalinclude:: doc-contraction.queries
-   :start-after: -- q9
-   :end-before: -- q10
-
-- vertices that belong to the contracted graph are the non contracted vertices
-
-.. literalinclude:: doc-contraction.queries
-   :start-after: -- q10
-   :end-before: -- case1
-
-.. rubric:: case 1: Both source and target belong to the contracted graph.
-
-Inspecting the contracted graph above, vertex 3 and vertex 11 are part of the contracted graph. In the following query:
-
- - vertices_in_graph hold the vertices that belong to the contracted graph.
- - when selecting the edges, only edges that have the source and the target in that set are the edges belonging to the contracted graph, that is done in the WHERE clause.
-
-Visually, looking at the original graph, going from 3 to 11: 3 -> 6 -> 11, and in the contracted graph, it is also 3 -> 6 -> 11.
-The results, on the contracted graph match the results as if it was done on the original graph.
-
-.. literalinclude:: doc-contraction.queries
-   :start-after: -- case1
-   :end-before: -- case2
-
-.. rubric:: case 2: Source belongs to the contracted graph, while target belongs to a edge subgraph.
-
-Inspecting the contracted graph above, vertex 3 is part of the contracted graph and vertex 1 belongs to the contracted subgraph of edge 19. In the following query:
-  - expand1 holds the contracted vertices of the edge where vertex 1 belongs. (belongs to edge 19).
-  - vertices_in_graph hold the vertices that belong to the contracted graph and also the contracted vertices of edge 19.
-  - when selecting the edges, only edges that have the source and the target in that set are the edges belonging to the contracted graph, that is done in the WHERE clause.
-
-Visually, looking at the original graph, going from 3 to 1: 3 -> 2 -> 1, and in the contracted graph, it is also 3 -> 2 -> 1.
-The results, on the contracted graph match the results as if it was done on the original graph.
-
-.. literalinclude:: doc-contraction.queries
-   :start-after: -- case2
-   :end-before: -- case3
-
-
-.. rubric:: case 3: Source belongs to a vertex subgraph, while target belongs to an edge subgraph.
-
-Inspecting the contracted graph above, vertex 7 belongs to the contracted subgraph of vertex 5 and vertex 13 belongs to the contracted subgraph of edge 21. In the following query:
-
- - expand7 holds the contracted vertices of vertex where vertex 7 belongs. (belongs to vertex 5)
- - expand13 holds the contracted vertices of edge where vertex 13 belongs. (belongs to edge 21)
- - vertices_in_graph hold the vertices that belong to the contracted graph, contracted vertices of vertex 5 and contracted vertices of edge 21.
- - when selecting the edges, only edges that have the source and the target in that set are the edges belonging to the contracted graph, that is done in the WHERE clause.
-
-Visually, looking at the original graph, going from 7 to 13: 7 -> 8 -> 5 -> 10 -> 13, and in the contracted graph, it is also 7 -> 8 -> 5 -> 10 -> 13.
-The results, on the contracted graph match the results as if it was done on the original graph.
-
-.. literalinclude:: doc-contraction.queries
-   :start-after: -- case3
-   :end-before: -- case4
-
-
-.. rubric:: case 4: Source belongs to the contracted graph, while target belongs to an vertex subgraph.
-
-Inspecting the contracted graph above, vertex 3 is part of the contracted graph and vertex 7 belongs to the contracted subgraph of vertex 5. In the following query:
-
- - expand7 holds the contracted vertices of vertex where vertex 7 belongs. (belongs to vertex 5)
- - vertices_in_graph hold the vertices that belong to the contracted graph and the contracted vertices of vertex 5.
- - when selecting the edges, only edges that have the source and the target in that set are the edges belonging to the contracted graph, that is done in the WHERE clause.
-
-Visually, looking at the original graph, going from 3 to 7: 3 -> 2 -> 5 -> 8 -> 7, but in the contracted graph, it is 3 -> 5 -> 8 -> 7.
-The results, on the contracted graph do not match the results as if it was done on the original graph. This is because the path contains edge 19 which is added by the contraction algorithm.
-
-.. literalinclude:: doc-contraction.queries
-   :start-after: -- case4
-   :end-before: -- case5q1
-
-.. rubric:: case 5: The path contains an edge added by the contraction algorithm.
-
-In the previous example we can see that the path from vertex 3 to vertex 7 contains an edge which is added by the contraction algorithm.
-
-.. literalinclude:: doc-contraction.queries
-   :start-after: -- case5q1
-   :end-before: -- case5q2
-
-Inspecting the contracted graph above, edge 19 should be expanded. In the following query:
-
- - first_dijkstra holds the results of the dijkstra query.
- - edges_to_expand holds the edges added by the contraction algorithm and included in the path.
- - vertices_in_graph hold the vertices that belong to the contracted graph, vertices of the contracted solution and the contracted vertices of the edges added by the contraction algorithm and included in the contracted solution.
- - when selecting the edges, only edges that have the source and the target in that set are the edges belonging to the contracted graph, that is done in the WHERE clause.
-
-Visually, looking at the original graph, going from 3 to 7: 3 -> 2 -> 5 -> 8 -> 7, and in the contracted graph, it is also 3 -> 2 -> 5 -> 8 -> 7.
-The results, on the contracted graph match the results as if it was done on the original graph.
-
-.. literalinclude:: doc-contraction.queries
-   :start-after: -- case5q2
-   :end-before: -- end
-
-See Also
--------------
-
-* http://www.cs.cmu.edu/afs/cs/academic/class/15210-f12/www/lectures/lecture16.pdf
-* http://algo2.iti.kit.edu/documents/routeplanning/geisberger_dipl.pdf
-* The queries use :ref:`pgr_contractGraph` function and the :ref:`sampledata` network.
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
-
diff --git a/src/contraction/doc/doc-contraction.queries b/src/contraction/doc/doc-contraction.queries
deleted file mode 100644
index ef82961..0000000
--- a/src/contraction/doc/doc-contraction.queries
+++ /dev/null
@@ -1,362 +0,0 @@
-BEGIN;
-BEGIN
-SET client_min_messages TO NOTICE;
-SET
--- q00
-SELECT id, source, target, cost, reverse_cost FROM edge_table;
- id | source | target | cost | reverse_cost 
-----+--------+--------+------+--------------
-  1 |      1 |      2 |    1 |            1
-  2 |      2 |      3 |   -1 |            1
-  3 |      3 |      4 |   -1 |            1
-  4 |      2 |      5 |    1 |            1
-  5 |      3 |      6 |    1 |           -1
-  6 |      7 |      8 |    1 |            1
-  7 |      8 |      5 |    1 |            1
-  8 |      5 |      6 |    1 |            1
-  9 |      6 |      9 |    1 |            1
- 10 |      5 |     10 |    1 |            1
- 11 |      6 |     11 |    1 |           -1
- 12 |     10 |     11 |    1 |           -1
- 13 |     11 |     12 |    1 |           -1
- 14 |     10 |     13 |    1 |            1
- 15 |      9 |     12 |    1 |            1
- 16 |      4 |      9 |    1 |            1
- 17 |     14 |     15 |    1 |            1
- 18 |     16 |     17 |    1 |            1
-(18 rows)
-
--- q01
-SET client_min_messages TO ERROR;
-SET
--- q1
-ALTER TABLE edge_table ADD contracted_vertices BIGINT[];
-ALTER TABLE
-ALTER TABLE edge_table_vertices_pgr ADD contracted_vertices BIGINT[];
-ALTER TABLE
-ALTER TABLE edge_table ADD is_contracted BOOLEAN DEFAULT false;
-ALTER TABLE
-ALTER TABLE edge_table_vertices_pgr ADD is_contracted BOOLEAN DEFAULT false;
-ALTER TABLE
-SET client_min_messages TO NOTICE;
-SET
--- q2
-SELECT * FROM pgr_contractGraph(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    array[1,2], directed:=true);
- seq | type | id | contracted_vertices | source | target | cost 
------+------+----+---------------------+--------+--------+------
-   1 | v    |  5 | {7,8}               |     -1 |     -1 |   -1
-   2 | v    | 15 | {14}                |     -1 |     -1 |   -1
-   3 | v    | 17 | {16}                |     -1 |     -1 |   -1
-   4 | e    | -1 | {1,2}               |      3 |      5 |    2
-   5 | e    | -2 | {4}                 |      9 |      3 |    2
-   6 | e    | -3 | {10,13}             |      5 |     11 |    2
-   7 | e    | -4 | {12}                |     11 |      9 |    2
-(7 rows)
-
--- q3
-SELECT * INTO contraction_results
-FROM pgr_contractGraph(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    array[1,2], directed:=true);
-SELECT 7
--- q4
-UPDATE edge_table_vertices_pgr
-SET is_contracted = true
-WHERE id IN (SELECT  unnest(contracted_vertices) FROM  contraction_results);
-UPDATE 10
--- q5
-SELECT id, is_contracted
-FROM edge_table_vertices_pgr
-ORDER BY id;
- id | is_contracted 
-----+---------------
-  1 | t
-  2 | t
-  3 | f
-  4 | t
-  5 | f
-  6 | f
-  7 | t
-  8 | t
-  9 | f
- 10 | t
- 11 | f
- 12 | t
- 13 | t
- 14 | t
- 15 | f
- 16 | t
- 17 | f
-(17 rows)
-
--- q6
-UPDATE edge_table_vertices_pgr
-SET contracted_vertices = contraction_results.contracted_vertices
-FROM contraction_results
-WHERE type = 'v' AND edge_table_vertices_pgr.id = contraction_results.id;
-UPDATE 3
--- q7
-SELECT id, contracted_vertices, is_contracted 
-FROM edge_table_vertices_pgr
-ORDER BY id;
- id | contracted_vertices | is_contracted 
-----+---------------------+---------------
-  1 |                     | t
-  2 |                     | t
-  3 |                     | f
-  4 |                     | t
-  5 | {7,8}               | f
-  6 |                     | f
-  7 |                     | t
-  8 |                     | t
-  9 |                     | f
- 10 |                     | t
- 11 |                     | f
- 12 |                     | t
- 13 |                     | t
- 14 |                     | t
- 15 | {14}                | f
- 16 |                     | t
- 17 | {16}                | f
-(17 rows)
-
--- q8
-INSERT INTO edge_table(source, target, cost, reverse_cost, contracted_vertices, is_contracted)
-SELECT source, target, cost, -1, contracted_vertices, true
-FROM contraction_results
-WHERE type = 'e';
-INSERT 0 4
--- q9
-SELECT id, source, target, cost, reverse_cost, contracted_vertices, is_contracted 
-FROM edge_table
-ORDER BY id;
- id | source | target | cost | reverse_cost | contracted_vertices | is_contracted 
-----+--------+--------+------+--------------+---------------------+---------------
-  1 |      1 |      2 |    1 |            1 |                     | f
-  2 |      2 |      3 |   -1 |            1 |                     | f
-  3 |      3 |      4 |   -1 |            1 |                     | f
-  4 |      2 |      5 |    1 |            1 |                     | f
-  5 |      3 |      6 |    1 |           -1 |                     | f
-  6 |      7 |      8 |    1 |            1 |                     | f
-  7 |      8 |      5 |    1 |            1 |                     | f
-  8 |      5 |      6 |    1 |            1 |                     | f
-  9 |      6 |      9 |    1 |            1 |                     | f
- 10 |      5 |     10 |    1 |            1 |                     | f
- 11 |      6 |     11 |    1 |           -1 |                     | f
- 12 |     10 |     11 |    1 |           -1 |                     | f
- 13 |     11 |     12 |    1 |           -1 |                     | f
- 14 |     10 |     13 |    1 |            1 |                     | f
- 15 |      9 |     12 |    1 |            1 |                     | f
- 16 |      4 |      9 |    1 |            1 |                     | f
- 17 |     14 |     15 |    1 |            1 |                     | f
- 18 |     16 |     17 |    1 |            1 |                     | f
- 19 |      3 |      5 |    2 |           -1 | {1,2}               | t
- 20 |      9 |      3 |    2 |           -1 | {4}                 | t
- 21 |      5 |     11 |    2 |           -1 | {10,13}             | t
- 22 |     11 |      9 |    2 |           -1 | {12}                | t
-(22 rows)
-
--- q10
-SELECT id  FROM edge_table_vertices_pgr
-WHERE is_contracted = false
-ORDER BY id;
- id 
-----
-  3
-  5
-  6
-  9
- 11
- 15
- 17
-(7 rows)
-
--- case1
-SELECT * FROM pgr_dijkstra(
-    $$
-    WITH
-    vertices_in_graph AS (
-        SELECT id  FROM edge_table_vertices_pgr WHERE is_contracted = false)
-    SELECT id, source, target, cost, reverse_cost 
-    FROM edge_table 
-    WHERE source IN (SELECT * FROM vertices_in_graph)
-    AND target IN (SELECT * FROM vertices_in_graph)
-    $$,
-    3, 11, false);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |    3 |    5 |    1 |        0
-   2 |        2 |    6 |   11 |    1 |        1
-   3 |        3 |   11 |   -1 |    0 |        2
-(3 rows)
-
--- case2
-SELECT * FROM pgr_dijkstra(
-    $$
-    WITH
-    expand_edges AS (SELECT id, unnest(contracted_vertices) AS vertex FROM edge_table),
-    expand1 AS (SELECT contracted_vertices FROM edge_table
-        WHERE id IN (SELECT id FROM expand_edges WHERE vertex = 1)),
-    vertices_in_graph AS (
-        SELECT id  FROM edge_table_vertices_pgr WHERE is_contracted = false
-        UNION
-        SELECT unnest(contracted_vertices) FROM expand1)
-    SELECT id, source, target, cost, reverse_cost
-    FROM edge_table
-    WHERE source IN (SELECT * FROM vertices_in_graph)
-    AND target IN (SELECT * FROM vertices_in_graph)
-    $$,
-    3, 1, false);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |    3 |    2 |    1 |        0
-   2 |        2 |    2 |    1 |    1 |        1
-   3 |        3 |    1 |   -1 |    0 |        2
-(3 rows)
-
--- case3
-SELECT * FROM pgr_dijkstra(
-    $$
-    WITH
-
-    expand_vertices AS (SELECT id, unnest(contracted_vertices) AS vertex FROM edge_table_vertices_pgr),
-    expand7 AS (SELECT contracted_vertices FROM edge_table_vertices_pgr
-        WHERE id IN (SELECT id FROM expand_vertices WHERE vertex = 7)),
-
-    expand_edges AS (SELECT id, unnest(contracted_vertices) AS vertex FROM edge_table),
-    expand13 AS (SELECT contracted_vertices FROM edge_table
-        WHERE id IN (SELECT id FROM expand_edges WHERE vertex = 13)),
-
-    vertices_in_graph AS (
-        SELECT id  FROM edge_table_vertices_pgr WHERE is_contracted = false
-        UNION
-        SELECT unnest(contracted_vertices) FROM expand13
-        UNION
-        SELECT unnest(contracted_vertices) FROM expand7)
-
-    SELECT id, source, target, cost, reverse_cost
-    FROM edge_table
-    WHERE source IN (SELECT * FROM vertices_in_graph)
-    AND target IN (SELECT * FROM vertices_in_graph)
-    $$,
-    7, 13, false);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |    7 |    6 |    1 |        0
-   2 |        2 |    8 |    7 |    1 |        1
-   3 |        3 |    5 |   10 |    1 |        2
-   4 |        4 |   10 |   14 |    1 |        3
-   5 |        5 |   13 |   -1 |    0 |        4
-(5 rows)
-
--- case4
-SELECT * FROM  pgr_dijkstra(
-    $$
-    WITH
-    expand_vertices AS (SELECT id, unnest(contracted_vertices) AS vertex FROM edge_table_vertices_pgr),
-    expand7 AS (SELECT contracted_vertices FROM edge_table_vertices_pgr
-        WHERE id IN (SELECT id FROM expand_vertices WHERE vertex = 7)),
-    vertices_in_graph AS (
-        SELECT id  FROM edge_table_vertices_pgr WHERE is_contracted = false
-        UNION
-        SELECT unnest(contracted_vertices) FROM expand7)
-    SELECT id, source, target, cost, reverse_cost
-    FROM edge_table
-    WHERE source IN (SELECT * FROM vertices_in_graph)
-    AND target IN (SELECT * FROM vertices_in_graph)
-    $$,
-    3, 7, false);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |    3 |   19 |    2 |        0
-   2 |        2 |    5 |    7 |    1 |        2
-   3 |        3 |    8 |    6 |    1 |        3
-   4 |        4 |    7 |   -1 |    0 |        4
-(4 rows)
-
--- case5q1
-WITH
-first_dijkstra AS (
-    SELECT * FROM  pgr_dijkstra(
-        $$
-        WITH
-        expand_vertices AS (SELECT id, unnest(contracted_vertices) AS vertex FROM edge_table_vertices_pgr),
-        expand7 AS (SELECT contracted_vertices FROM edge_table_vertices_pgr
-            WHERE id IN (SELECT id FROM expand_vertices WHERE vertex = 7)),
-        vertices_in_graph AS (
-            SELECT id  FROM edge_table_vertices_pgr WHERE is_contracted = false
-            UNION
-            SELECT unnest(contracted_vertices) FROM expand7)
-        SELECT id, source, target, cost, reverse_cost
-        FROM edge_table
-        WHERE source IN (SELECT * FROM vertices_in_graph)
-        AND target IN (SELECT * FROM vertices_in_graph)
-        $$,
-        3, 7, false))
-SELECT edge, contracted_vertices
-    FROM first_dijkstra JOIN edge_table
-    ON (edge = id)
-    WHERE is_contracted = true;
- edge | contracted_vertices 
-------+---------------------
-   19 | {1,2}
-(1 row)
-
--- case5q2
-SELECT * FROM pgr_dijkstra($$
-    WITH
-    -- This returns the results from case 2
-    first_dijkstra AS (
-        SELECT * FROM  pgr_dijkstra(
-            '
-            WITH
-            expand_vertices AS (SELECT id, unnest(contracted_vertices) AS vertex FROM edge_table_vertices_pgr),
-            expand7 AS (SELECT contracted_vertices FROM edge_table_vertices_pgr
-                WHERE id IN (SELECT id FROM expand_vertices WHERE vertex = 7)),
-            vertices_in_graph AS (
-                SELECT id  FROM edge_table_vertices_pgr WHERE is_contracted = false
-                UNION
-                SELECT unnest(contracted_vertices) FROM expand7)
-            SELECT id, source, target, cost, reverse_cost
-            FROM edge_table
-            WHERE source IN (SELECT * FROM vertices_in_graph)
-            AND target IN (SELECT * FROM vertices_in_graph)
-            ',
-            3, 7, false)),
-
-    -- edges that need expansion and the vertices to be expanded.
-    edges_to_expand AS (
-        SELECT edge, contracted_vertices
-        FROM first_dijkstra JOIN edge_table
-        ON (edge = id)
-        WHERE is_contracted = true),
-
-    vertices_in_graph AS (
-        -- the nodes of the contracted solution
-        SELECT node FROM first_dijkstra
-        UNION
-        -- the nodes of the expanding sections
-        SELECT unnest(contracted_vertices) FROM edges_to_expand)
-
-    SELECT id, source, target, cost, reverse_cost
-    FROM edge_table
-    WHERE source IN (SELECT * FROM vertices_in_graph)
-    AND target IN (SELECT * FROM vertices_in_graph)
-    -- not including the expanded edges
-    AND id NOT IN (SELECT edge FROM edges_to_expand)
-    $$,
-    3, 7, false);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |    3 |    2 |    1 |        0
-   2 |        2 |    2 |    4 |    1 |        1
-   3 |        3 |    5 |    7 |    1 |        2
-   4 |        4 |    8 |    6 |    1 |        3
-   5 |        5 |    7 |   -1 |    0 |        4
-(5 rows)
-
--- end
-ROLLBACK;
-ROLLBACK
diff --git a/src/contraction/doc/pgr_contractGraph.rst b/src/contraction/doc/pgr_contractGraph.rst
deleted file mode 100644
index 284eedc..0000000
--- a/src/contraction/doc/pgr_contractGraph.rst
+++ /dev/null
@@ -1,172 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_contractGraph:
-
-pgr_contractGraph - Proposed
-===============================================================================
-
-``pgr_contractGraph`` — Performs graph contraction and returns the contracted vertices and edges.
-
-
-.. figure:: images/boost-inside.jpeg
-   :target: http://www.boost.org/libs/graph
-
-   Boost Graph Inside
-
-.. rubric:: Availability: 2.3.0
-
-.. include:: proposed.rst
-   :start-after: begin-warn-expr
-   :end-before: end-warn-expr
-
-
-Synopsis
--------------
-
-Contraction reduces the size of the graph by removing some of the vertices and edges and, for example, might add edges that represent a sequence of original edges decreasing the total time and space used in graph algorithms.
-
-Characteristics
--------------------------------------------------------------------------------
-
-The main Characteristics are:
-  - Process is done only on edges with positive costs.
-
-  - There are two types of contraction methods used namely,
-
-    - Dead End Contraction
-    - Linear Contraction
-
-  - The values returned include the added edges and contracted vertices.
-
-  - The returned values are ordered as follows:
-
-    - column `id` ascending when type = `v`
-    - column `id` descending when type = `e`
-
-
-
-Signature Summary:
-------------------
-
-The pgr_contractGraph function has the following signatures:
-
-.. code-block:: none
-
-    pgr_contractGraph(edges_sql, contraction_order)
-    pgr_contractGraph(edges_sql, contraction_order, max_cycles, forbidden_vertices, directed)
-
-    RETURNS SETOF (seq, type, id, contracted_vertices, source, target, cost)
-
-
-Signatures
--------------------------------------------------------------------------------
-
-.. index::
-    single: contractGraph(Minimal Use)
-
-Minimal signature
-.......................................
-
-.. code-block:: none
-
-    pgr_contractGraph(edges_sql, contraction_order)
-
-:Example: Making a dead end contraction and a linear contraction.
-
-.. literalinclude:: doc-contractGraph.queries
-   :start-after: -- q1
-   :end-before: -- q2
-
-Complete signature
-.......................................
-
-.. code-block:: none
-
-    pgr_contractGraph(edges_sql, contraction_order, max_cycles, forbidden_vertices, directed)
-
-:Example: Making a dead end contraction and a linear contraction and vertex 2 is forbidden from contraction
-
-.. literalinclude:: doc-contractGraph.queries
-   :start-after: -- q2
-   :end-before: -- q3
-
-
-.. include:: pgRouting-concepts.rst
-    :start-after: basic_edges_sql_start
-    :end-before: basic_edges_sql_end
-
-
-Description of the parameters of the signatures
--------------------------------------------------------------------------------
-
-======================= ====================== =================================================
-Column                  Type                   Description
-======================= ====================== =================================================
-**edges_sql**           ``TEXT``               SQL query as described above.
-**contraction_order**   ``ARRAY[ANY-INTEGER]`` Ordered contraction operations.
-                                                -  1 = Dead end contraction
-                                                -  2 = Linear contraction
-**forbidden_vertices**  ``ARRAY[ANY-INTEGER]`` (optional). Identifiers of vertices forbidden from contraction. Default is an empty array.
-**max_cycles**          ``INTEGER``            (optional). Number of times the contraction operations on `contraction_order` will be performed. Default is 1.
-**directed**            ``BOOLEAN``            * When ``true`` the graph is considered as `Directed`.
-                                               * When ``false`` the graph is considered as `Undirected`.
-======================= ====================== =================================================
-
-
-Description of the return values
--------------------------------------------------------------------------------
-
-RETURNS SETOF  (seq, type, id, contracted_vertices, source, target, cost)
-
-The function returns a single row. The columns of the row are:
-
-============================ =================   ===================================================================
-Column                       Type                Description
-============================ =================   ===================================================================
-**seq**                      ``INTEGER``         Sequential value starting from **1**.
-**type**                     ``TEXT``            Type of the `id`.
-                                                  - 'v' when `id` is an identifier of a vertex.
-                                                  - 'e' when `id` is an identifier of an edge.
-**id**                       ``BIGINT``          Identifier of:
-                                                  * the  vertex when `type = 'v'`.
-
-                                                    - The vertex belongs to the edge_table passed as a parameter.
-                                                  * the edge when `type = 'e'`.
-
-                                                    - The `id` is a decreasing sequence starting from **-1**.
-
-                                                    - Representing a pseudo `id` as is not incorporated into the edge_table.
-**contracted_vertices**      ``ARRAY[BIGINT]``   Array of contracted vertex identifiers.
-**source**                   ``BIGINT``          Identifier of the source vertex of the current edge `id`. Valid values when `type = 'e'`.
-**target**                   ``BIGINT``          Identifier of the target vertex of the current edge `id`. Valid values when `type = 'e'`.
-**cost**                     ``FLOAT``           Weight of the edge (`source`, `target`). Valid values when `type = 'e'`.
-============================ =================   ===================================================================
-
-Examples
-========
-
-:Example: Only dead end contraction
-
-.. literalinclude:: doc-contractGraph.queries
-   :start-after: -- q3
-   :end-before: -- q4
-
-:Example: Only linear contraction
-
-.. literalinclude:: doc-contractGraph.queries
-   :start-after: -- q4
-   :end-before: -- q5
-
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
-
diff --git a/src/contraction/doc/proof_of_concept.queries b/src/contraction/doc/proof_of_concept.queries
deleted file mode 100644
index 84f0558..0000000
--- a/src/contraction/doc/proof_of_concept.queries
+++ /dev/null
@@ -1,106 +0,0 @@
-Adding an additional column to store if its part of the contracted graph
-ALTER TABLE edge_table ADD is_contracted BOOLEAN DEFAULT false;
-ALTER TABLE
-Adding a new edges joining vertices 3 and 5 with cost=2 to the edge table
-INSERT INTO edge_table(source, target, cost, reverse_cost, is_contracted) 
-VALUES (3, 5, 2, 2, true);
-INSERT 0 1
-Adding a new edges joining vertices 3 and 9 with cost=2 to the edge table
-INSERT INTO edge_table(source, target, cost, reverse_cost, is_contracted) 
-VALUES (3, 9, 2, 2, true);
-INSERT 0 1
-Adding a new edges joining vertices 5 and 11 with cost=2 to the edge table
-INSERT INTO edge_table(source, target, cost, reverse_cost, is_contracted) 
-VALUES (5, 11, 2, 2, true);
-INSERT 0 1
-Adding a new edges joining vertices 9 and 11 with cost=2 to the edge table
-INSERT INTO edge_table(source, target, cost, reverse_cost, is_contracted) 
-VALUES (9, 11, 2, 2, true);
-INSERT 0 1
-Case 1: Both source and target belong to the contracted graph.
-We are going to route from 3 to 11
-Since 3 and 11 both are in the contracted graph we need not add any vertices.
-SELECT * FROM 
-pgr_dijkstra('SELECT id, source, target, cost, reverse_cost FROM edge_table where source IN (3, 5, 6, 9, 11, 15, 17) AND target IN (3, 5, 6, 9, 11, 15, 17)',
-3, 11, false);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |    3 |    5 |    1 |        0
-   2 |        2 |    6 |   11 |    1 |        1
-   3 |        3 |   11 |   -1 |    0 |        2
-(3 rows)
-
-Case 2: source belongs to a contracted graph, while target belongs to a vertex subgraph.
-We are going to route from 3 to 7
-Since 7 is in the contracted subgraph of vertex 5 we add {7, 8} to the vertex set, so the vertex set becomes (3, 5, 6, 7, 8, 9, 11, 15, 17)
-SELECT * FROM 
-pgr_dijkstra('SELECT id, source, target, cost, reverse_cost FROM edge_table where source IN (3, 5, 6, 9, 11, 15, 17,   7, 8)	 AND target IN (3, 5, 6, 9, 11, 15, 17,   7, 8)',
-3, 7, false);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |    3 |   19 |    2 |        0
-   2 |        2 |    5 |    7 |    1 |        2
-   3 |        3 |    8 |    6 |    1 |        3
-   4 |        4 |    7 |   -1 |    0 |        4
-(4 rows)
-
-Case 3: source belongs to a contracted graph, while target belongs to a edge subgraph.
-We are going to route from 3 to 13
-Since 13 is in the contracted subgraph of edge (5, 11) we add {10, 13} to the vertex set, so the vertex set becomes (3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17)
-SELECT * FROM 
-pgr_dijkstra('SELECT id, source, target, cost, reverse_cost FROM edge_table where source IN (3, 5, 6, 9, 11, 15, 17,    10, 13) AND target IN (3, 5, 6, 9, 11, 15, 17,    10, 13)',
-3, 13, false);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |    3 |    5 |    1 |        0
-   2 |        2 |    6 |   11 |    1 |        1
-   3 |        3 |   11 |   12 |    1 |        2
-   4 |        4 |   10 |   14 |    1 |        3
-   5 |        5 |   13 |   -1 |    0 |        4
-(5 rows)
-
-Case 4: source belongs to a vertex subgraph, while target belongs to a edge subgraph.
-We are going to route from 7 to 13
-Since 13 is in the contracted subgraph of edge (5, 11) we add {10, 13} to the vertex set, and since 7 is in the contracted subgraph of vertex 5 we add {7, 8} to the vertex sets (3, 5, 6, 7, 8, 9, 11, 15, 17)
-SELECT * FROM 
-pgr_dijkstra('SELECT id, source, target, cost, reverse_cost FROM edge_table where source IN (3, 5, 6, 9, 11, 15, 17,    7, 8,   10, 13) AND target IN (3, 5, 6, 9, 11, 15, 17,    7, 8,   10, 13)',
-7, 13, false);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |    7 |    6 |    1 |        0
-   2 |        2 |    8 |    7 |    1 |        1
-   3 |        3 |    5 |   10 |    1 |        2
-   4 |        4 |   10 |   14 |    1 |        3
-   5 |        5 |   13 |   -1 |    0 |        4
-(5 rows)
-
-Case 5: The path contains a shortcut.
-
-We are going to route from 3 to 9
-Since 3 and 9 both are in the contracted graph we need not add any vertices.
-SELECT * FROM 
-pgr_dijkstra('SELECT id, source, target, cost, reverse_cost FROM edge_table where source IN (3, 5, 6, 7, 8, 9, 11, 15, 17) AND target IN (3, 5, 6, 7, 8, 9, 11, 15, 17)',
-3, 9, false);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |    3 |   20 |    2 |        0
-   2 |        2 |    9 |   -1 |    0 |        2
-(2 rows)
-
-SELECT is_contracted FROM edge_table WHERE id=20;
- is_contracted 
----------------
- t
-(1 row)
-
-This implies that it is a shortcut and should be expanded
-SELECT * FROM 
-pgr_dijkstra('SELECT id, source, target, cost, reverse_cost FROM edge_table where source IN (3, 5, 6, 7, 8, 9, 11, 15, 17) AND target IN (3, 5, 6, 7, 8, 9, 11, 15, 17) AND is_contracted=false',
-3, 9, false);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |    3 |    5 |    1 |        0
-   2 |        2 |    6 |    9 |    1 |        1
-   3 |        3 |    9 |   -1 |    0 |        2
-(3 rows)
-
diff --git a/src/contraction/sql/CMakeLists.txt b/src/contraction/sql/CMakeLists.txt
deleted file mode 100644
index 04645d4..0000000
--- a/src/contraction/sql/CMakeLists.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-LIST(APPEND PACKAGE_SQL_FILES
-    ${CMAKE_CURRENT_SOURCE_DIR}/contractGraph.sql
-)
-
-# set in parent scope
-SET(PACKAGE_SQL_FILES "${PACKAGE_SQL_FILES}" PARENT_SCOPE)
diff --git a/src/contraction/sql/contractGraph.sql b/src/contraction/sql/contractGraph.sql
deleted file mode 100644
index 4c77ff1..0000000
--- a/src/contraction/sql/contractGraph.sql
+++ /dev/null
@@ -1,47 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: contractGraph.sql
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer: 
-Copyright (c) 2016 Rohith Reddy
-Mail: 
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-CREATE OR REPLACE FUNCTION pgr_contractGraph(
-    edges_sql TEXT,
-    contraction_order BIGINT[],
-    max_cycles integer DEFAULT 1,
-    forbidden_vertices BIGINT[] DEFAULT ARRAY[]::BIGINT[],
-    directed BOOLEAN DEFAULT true,
-    OUT seq integer,
-    OUT type TEXT,
-    OUT id BIGINT,
-    OUT contracted_vertices BIGINT[],
-    OUT source BIGINT,
-    OUT target BIGINT,
-    OUT cost float)
-
-  RETURNS SETOF RECORD AS
- '$libdir/${PGROUTING_LIBRARY_NAME}', 'contractGraph'
-    LANGUAGE c IMMUTABLE STRICT;
-
diff --git a/src/contraction/src/contractGraph.c b/src/contraction/src/contractGraph.c
index 5b16f8e..84a00f0 100644
--- a/src/contraction/src/contractGraph.c
+++ b/src/contraction/src/contractGraph.c
@@ -27,7 +27,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#include "./../../common/src/postgres_connection.h"
+#include "c_common/postgres_connection.h"
 #include "utils/array.h"
 #include "catalog/pg_type.h"
 #include "utils/lsyscache.h"
@@ -36,13 +36,13 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 #define INT8ARRAYOID    1016
 #endif
 
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/e_report.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/edges_input.h"
-#include "./../../common/src/arrays_input.h"
-#include "./contractGraph_driver.h"
+#include "c_common/debug_macro.h"
+#include "c_common/e_report.h"
+#include "c_common/time_msg.h"
+#include "c_types/contracted_rt.h"
+#include "c_common/edges_input.h"
+#include "c_common/arrays_input.h"
+#include "drivers/contraction/contractGraph_driver.h"
 
 PGDLLEXPORT Datum contractGraph(PG_FUNCTION_ARGS);
 PG_FUNCTION_INFO_V1(contractGraph);
@@ -56,7 +56,7 @@ process(char* edges_sql,
         ArrayType* forbidden,
 
         bool directed,
-        pgr_contracted_blob **result_tuples,
+        contracted_rt **result_tuples,
         size_t *result_count) {
     /*
      * nothing to do
@@ -132,7 +132,7 @@ contractGraph(PG_FUNCTION_ARGS) {
     TupleDesc            tuple_desc;
 
     /**********************************************************************/
-    pgr_contracted_blob  *result_tuples = NULL;
+    contracted_rt  *result_tuples = NULL;
     size_t result_count = 0;
     /**********************************************************************/
 
@@ -179,13 +179,13 @@ contractGraph(PG_FUNCTION_ARGS) {
 
     funcctx = SRF_PERCALL_SETUP();
     tuple_desc = funcctx->tuple_desc;
-    result_tuples = (pgr_contracted_blob*) funcctx->user_fctx;
+    result_tuples = (contracted_rt*) funcctx->user_fctx;
 
     if (funcctx->call_cntr < funcctx->max_calls) {
         HeapTuple   tuple;
         Datum       result;
         Datum       *values;
-        char        *nulls;
+        bool        *nulls;
         int16 typlen;
         size_t      call_cntr = funcctx->call_cntr;
 
diff --git a/src/contraction/src/contractGraph_driver.cpp b/src/contraction/src/contractGraph_driver.cpp
index 7bd11d4..adea204 100644
--- a/src/contraction/src/contractGraph_driver.cpp
+++ b/src/contraction/src/contractGraph_driver.cpp
@@ -27,18 +27,17 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
  ********************************************************************PGR-GNU*/
 
-#include "./contractGraph_driver.h"
+#include "drivers/contraction/contractGraph_driver.h"
 
 #include <string.h>
 #include <sstream>
 #include <deque>
 #include <vector>
 
-#include "./pgr_contractionGraph.hpp"
-#include "./pgr_contract.hpp"
+#include "contraction/pgr_contractionGraph.hpp"
+#include "contraction/pgr_contract.hpp"
 
-#include "./../../common/src/pgr_alloc.hpp"
-#include "./../../common/src/pgr_types.h"
+#include "cpp_common/pgr_alloc.hpp"
 
 static
 bool
@@ -81,7 +80,7 @@ static void process_contraction(
     Identifiers<typename G::V> forbid_vertices;
     for (const auto &vertex : forbidden_vertices) {
         if (graph.has_vertex(vertex)) {
-            forbid_vertices.insert(graph.get_V(vertex));
+            forbid_vertices += graph.get_V(vertex);
         }
     }
 
@@ -119,7 +118,7 @@ void get_postgres_result(
         G &graph,
         const Identifiers<int64_t> remaining_vertices,
         const std::vector< pgrouting::CH_edge > shortcut_edges,
-        pgr_contracted_blob **return_tuples) {
+        contracted_rt **return_tuples) {
     (*return_tuples) = pgr_alloc(
             remaining_vertices.size() + shortcut_edges.size(),
             (*return_tuples));
@@ -179,7 +178,7 @@ do_pgr_contractGraph(
         size_t size_contraction_order,
         int64_t max_cycles,
         bool directed,
-        pgr_contracted_blob **return_tuples,
+        contracted_rt **return_tuples,
         size_t *return_count,
         char **log_msg,
         char **notice_msg,
diff --git a/src/contraction/src/contractGraph_driver.h b/src/contraction/src/contractGraph_driver.h
deleted file mode 100644
index 21b09f7..0000000
--- a/src/contraction/src/contractGraph_driver.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: contractGraph_driver.h
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer: 
-Copyright (c) 2016 Rohith Reddy
-Mail: 
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifndef SRC_CONTRACTION_SRC_CONTRACTGRAPH_DRIVER_H_
-#define SRC_CONTRACTION_SRC_CONTRACTGRAPH_DRIVER_H_
-#pragma once
-
-#include "./../../common/src/pgr_types.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-    /*********************************************************
-        edges_sql TEXT,
-        contraction_order BIGINT[],
-        forbidden_vertices BIGINT[] DEFAULT ARRAY[]::BIGINT[],
-        max_cycles integer DEFAULT 1,
-        directed BOOLEAN DEFAULT true
-     ********************************************************/
-    void
-        do_pgr_contractGraph(
-               pgr_edge_t  *data_edges,
-        size_t total_tuples,
-        int64_t *forbidden_vertices,
-        size_t size_forbidden_vertices,
-        int64_t *contraction_order,
-        size_t size_contraction_order,
-        int64_t max_cycles,
-        bool directed,
-        pgr_contracted_blob **return_tuples,
-        size_t *return_count,
-        char **log_msg,
-        char **notice_msg,
-        char **err_msg);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif  // SRC_CONTRACTION_SRC_CONTRACTGRAPH_DRIVER_H_
diff --git a/src/contraction/src/pgr_contract.hpp b/src/contraction/src/pgr_contract.hpp
deleted file mode 100644
index 5e008fb..0000000
--- a/src/contraction/src/pgr_contract.hpp
+++ /dev/null
@@ -1,183 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: pgr_contract.hpp
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer: 
-Copyright (c) 2016 Rohith Reddy
-Mail: 
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifndef SRC_CONTRACTION_SRC_PGR_CONTRACT_HPP_
-#define SRC_CONTRACTION_SRC_PGR_CONTRACT_HPP_
-#pragma once
-
-#include <deque>
-#include <vector>
-#include "../../common/src/pgr_assert.h"
-
-#include "./pgr_contractionGraph.hpp"
-#include "./pgr_linearContraction.hpp"
-#include "./pgr_deadEndContraction.hpp"
-
-namespace pgrouting {
-namespace contraction {
-
-
-template < class G >
-class Pgr_contract {
-    typedef typename G::V V;
-
-
-    void perform_deadEnd(G &graph,
-            Identifiers<V> forbidden_vertices,
-            std::ostringstream& debug) {
-        Pgr_deadend<G> deadendContractor;
-        debug << "Setting forbidden_vertices";
-        deadendContractor.setForbiddenVertices(forbidden_vertices);
-
-        deadendContractor.calculateVertices(graph);
-        try {
-            deadendContractor.doContraction(graph);
-        }
-        catch ( ... ) {
-            debug << "Caught unknown exception!\n";
-        }
-    }
-
-
-    void perform_linear(G &graph,
-            Identifiers<V>& forbidden_vertices,
-            std::ostringstream& debug) {
-        std::ostringstream linear_debug;
-        Pgr_linear<G> linearContractor;
-        linearContractor.setForbiddenVertices(forbidden_vertices);
-        linearContractor.calculateVertices(graph);
-        try {
-            linearContractor.doContraction(graph);
-        }
-        catch ( ... ) {
-            linear_debug << "Caught unknown exception!\n";
-        }
-        debug << linear_debug.str().c_str() << "\n";
-    }
-
-
- public:
-    Pgr_contract(
-            G &graph,
-            Identifiers<V> forbidden_vertices,
-            std::vector<int64_t> contraction_order,
-            int64_t max_cycles,
-            Identifiers<int64_t> &remaining_vertices,
-            std::vector<pgrouting::CH_edge> &shortcut_edges,
-            std::ostringstream& debug) {
-        std::deque<int64_t> contract_order;
-        //  push -1 to indicate the start of the queue
-        contract_order.push_back(-1);
-        contract_order.insert(
-                contract_order.end(),
-                contraction_order.begin(), contraction_order.end());
-        for (int64_t i = 0; i < max_cycles; ++i) {
-            int64_t front = contract_order.front();
-            debug << "Starting cycle " << i+1 << "\n";
-            contract_order.pop_front();
-            contract_order.push_back(front);
-            front = contract_order.front();
-            while (front != -1) {
-                switch (front) {
-                    case -1:
-                        debug << "Finished cycle " << i+1 << std::endl;
-                        break;
-                    default:
-                        debug << "contraction "<< front
-                            << " asked" << std::endl;
-                        if (front == 1) {
-#ifndef NDEBUG
-                            debug << "Graph before dead end contraction"
-                                << std::endl;
-                            graph.print_graph(debug);
-                            debug << "Performing dead end contraction"
-                                << std::endl;
-#endif
-                            perform_deadEnd(graph, forbidden_vertices, debug);
-#ifndef NDEBUG
-                            debug << "Graph after dead end contraction"
-                                << std::endl;
-                            graph.print_graph(debug);
-#endif
-                        } else if (front == 2) {
-#ifndef NDEBUG
-                            debug << "Graph before linear contraction"
-                                << std::endl;
-                            graph.print_graph(debug);
-                            debug << "Performing linear contraction"
-                                << std::endl;
-#endif
-                            perform_linear(graph, forbidden_vertices, debug);
-#ifndef NDEBUG
-                            debug << "Graph after linear contraction"
-                                << std::endl;
-                            graph.print_graph(debug);
-#endif
-                        }
-                        contract_order.pop_front();
-                        contract_order.push_back(front);
-                        front = contract_order.front();
-                }
-            }
-        }
-        remaining_vertices = graph.get_changed_vertices();
-        debug << "Printing shortcuts\n";
-        for (auto shortcut : graph.shortcuts) {
-            debug << shortcut;
-            shortcut_edges.push_back(shortcut);
-        }
-    }
-
-#if 0
-    bool is_valid_contraction_number(int number) {
-        switch (number) {
-            case -2:
-                return false;
-                break;
-            case -1:
-                return false;
-                break;
-            case 0:
-                return true;
-                break;
-            case 1:
-                return true;
-                break;
-            default:
-                return false;
-                break;
-        }
-    }
-#endif
-};
-
-}  // namespace contraction
-}  // namespace pgrouting
-
-#endif  // SRC_CONTRACTION_SRC_PGR_CONTRACT_HPP_
diff --git a/src/contraction/src/pgr_contractionGraph.hpp b/src/contraction/src/pgr_contractionGraph.hpp
deleted file mode 100644
index 3025f0e..0000000
--- a/src/contraction/src/pgr_contractionGraph.hpp
+++ /dev/null
@@ -1,300 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: pgr_contractionGraph.hpp
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer:
-Copyright (c) 2016 Rohith Reddy
-Mail:
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- ********************************************************************PGR-GNU*/
-
-#ifndef SRC_CONTRACTION_SRC_PGR_CONTRACTIONGRAPH_HPP_
-#define SRC_CONTRACTION_SRC_PGR_CONTRACTIONGRAPH_HPP_
-#pragma once
-
-
-#include <limits>
-#include <algorithm>
-#include <vector>
-
-#include "../../common/src/pgr_base_graph.hpp"
-
-
-namespace pgrouting {
-
-namespace graph {
-template <class G, typename T_V, typename T_E>
-class Pgr_contractionGraph;
-}
-
-    typedef  graph::Pgr_contractionGraph <
-    boost::adjacency_list < boost::listS, boost::vecS,
-    boost::undirectedS,
-    CH_vertex, CH_edge >,
-    CH_vertex, CH_edge > CHUndirectedGraph;
-
-    typedef  graph::Pgr_contractionGraph <
-    boost::adjacency_list < boost::listS, boost::vecS,
-    boost::bidirectionalS,
-    CH_vertex, CH_edge >,
-    CH_vertex, CH_edge > CHDirectedGraph;
-
-namespace graph {
-
-template <class G, typename T_V, typename T_E>
-class Pgr_contractionGraph : public Pgr_base_graph<G, T_V, T_E> {
- public:
-     typedef typename boost::graph_traits < G >::vertex_descriptor V;
-     typedef typename boost::graph_traits < G >::edge_descriptor E;
-     typedef typename boost::graph_traits < G >::vertex_iterator V_i;
-     typedef typename boost::graph_traits < G >::edge_iterator E_i;
-     typedef typename boost::graph_traits < G >::out_edge_iterator EO_i;
-     typedef typename boost::graph_traits < G >::in_edge_iterator EI_i;
-     typedef typename boost::graph_traits < G >::degree_size_type
-         degree_size_type;
-
-     Identifiers<V> removed_vertices;
-     std::vector<T_E> shortcuts;
-
-     /*! @brief Binary function that accepts two elements , and returns a value convertible to bool.
-       Used as a compare function to sort the edges in increasing order of edge id
-       */
-     static bool compareById(const T_E &edge1, const T_E &edge2) {
-         return edge1.id > edge2.id;
-     }
-
-     /*!
-       Prepares the _graph_ to be of type *gtype*
-       */
-     explicit Pgr_contractionGraph< G , T_V, T_E >(graphType gtype)
-         : Pgr_base_graph< G , T_V, T_E >(gtype) {
-         }
-
-     /*! @brief get the vertex descriptors of adjacent vertices of *v*
-       @param [in] v vertex_descriptor
-       @return Identifiers<V>: The set of vertex descriptors adjacent to the given vertex *v*
-       */
-     Identifiers<V> find_adjacent_vertices(V v) const {
-         EO_i out, out_end;
-         EI_i in, in_end;
-         Identifiers<V> adjacent_vertices;
-
-         for (boost::tie(out, out_end) = out_edges(v, this->graph);
-                 out != out_end; ++out) {
-             adjacent_vertices += this->adjacent(v, *out);
-         }
-         for (boost::tie(in, in_end) = in_edges(v, this->graph);
-                 in != in_end; ++in) {
-             adjacent_vertices += this->adjacent(v, *in);
-         }
-         return adjacent_vertices;
-     }
-
-
-     std::vector<int64_t> get_ids(
-             Identifiers<int64_t> boost_ids) const {
-         std::vector<int64_t> ids(boost_ids.size());
-         size_t count = 0;
-         for (auto id : boost_ids) {
-             ids[count++] = this->graph[id].id;
-         }
-         return ids;
-     }
-
-
-     /*! @brief vertices with at least one contracted vertex
-      *
-       @result The vids Identifiers with at least one contracted vertex
-       */
-     Identifiers<int64_t> get_changed_vertices() {
-        Identifiers<int64_t> vids;
-         for (auto vi = vertices(this->graph).first;
-                 vi != vertices(this->graph).second;
-                 ++vi) {
-             if (!removed_vertices.has(*vi)
-                     && this->graph[*vi].has_contracted_vertices()) {
-                 vids += this->graph[*vi].id;
-             }
-         }
-         return vids;
-     }
-
-
-     /*! @brief get the edge with minimum cost between two vertices
-       @param [in] source vertex_descriptor of source vertex
-       @param [in] destination vertex_descriptor of target vertex
-       @return E: The edge descriptor of the edge with minimum cost
-       */
-     E get_min_cost_edge(V source, V destination) {
-         EO_i out_i, out_end;
-         E min_cost_edge;
-         double min_cost = (std::numeric_limits<double>::max)();
-         for (boost::tie(out_i, out_end) =
-                 boost::out_edges(source, this->graph);
-                 out_i != out_end; ++out_i) {
-             auto e = *out_i;
-             if (this->target(e) == destination) {
-                 if (this->graph[e].cost < min_cost) {
-                     min_cost = this->graph[e].cost;
-                     min_cost_edge = e;
-                 }
-             }
-         }
-         return min_cost_edge;
-     }
-
-     /*! @brief The number of edges from @b neighbor to @b vertex
-
-       @param [in] vertex is the target of the edges
-       @param [in] neighbor is the source of the edges
-       @return degree_size_type: The in-degree of *vertex* from *neighbor*
-       */
-     degree_size_type in_degree_from_vertex(V vertex, V neighbor) {
-         return out_degree_to_vertex(neighbor, vertex);
-     }
-
-     /*! @brief The number of edges from @b vertex to @b neighbor
-
-       @param [in] vertex vertex_descriptor of the given vertex
-       @param [in] neighbor vertex_descriptor of neighbor
-       @return degree_size_type: The out-degree of *vertex* to *neighbor*
-       */
-     degree_size_type out_degree_to_vertex(V vertex, V neighbor) {
-         degree_size_type degree = 0;
-         EO_i out_i, out_end;
-         for (boost::tie(out_i, out_end) =
-                 boost::out_edges(vertex, this->graph);
-                 out_i != out_end; ++out_i) {
-             if (this->is_directed()
-                     && (this->is_source(vertex, *out_i)
-                         && this->is_target(neighbor, *out_i))) {
-                 degree++;
-             } else if (this->is_undirected() &&
-                     this->adjacent(vertex, *out_i) == neighbor) {
-                 degree++;
-             }
-         }
-         return degree;
-     }
-
-
-     /*! @brief print the graph with contracted vertices of
-       all vertices and edges
-       */
-     void print_graph(std::ostringstream &log) {
-         EO_i out, out_end;
-         for (auto vi = vertices(this->graph).first;
-                 vi != vertices(this->graph).second;
-                 ++vi) {
-             if ((*vi) >= this->m_num_vertices) break;
-             log << this->graph[*vi].id << "(" << (*vi) << ")"
-                 << this->graph[*vi].contracted_vertices() << std::endl;
-             log << " out_edges_of(" << this->graph[*vi].id << "):";
-             for (boost::tie(out, out_end) = out_edges(*vi, this->graph);
-                     out != out_end; ++out) {
-                 log << ' ' << this->graph[*out].id
-                     << "=(" << this->graph[this->source(*out)].id
-                     << ", " << this->graph[this->target(*out)].id << ") = "
-                     <<  this->graph[*out].cost <<"\t";
-             }
-             log << std::endl;
-         }
-     }
-
-
-
-     /*! @brief get the contracted vertex ids of a given vertex in array format
-       @param [in] vid vertex_id
-
-       @returns ids of contracted_vertices
-       */
-     std::vector<int64_t> get_contracted_vertices(int64_t vid) {
-         if (!this->has_vertex(vid)) return std::vector<int64_t>();
-         auto  v = this->get_V(vid);
-         std::vector<int64_t> ids(this->graph[v].contracted_vertices().size());
-
-         size_t count = 0;
-         for (auto idx :  this->graph[v].contracted_vertices()) {
-             ids[count++] =  this->graph[idx].id;
-         }
-         return ids;
-     }
-
-
-
-
-
-     /*! @brief add the contracted vertices of an edge *e* to the vertex *v*
-       @param [in] v vertex_descriptor
-       @param [in] e Edge of type *T_E*
-       */
-     void add_contracted_edge_vertices(V v, T_E &e) {
-         for (auto vid : e.contracted_vertices()) {
-             this->graph[v].add_vertex_id(vid);
-         }
-         e.clear_contracted_vertices();
-     }
-
-
-     /*! @brief add edges(shortuct) to the graph during contraction
-
-       a -> b -> c
-
-       a -> c
-
-       edge (a, c) is a new edge e
-       e.contracted_vertices = b + b.contracted vertices
-       b is "removed" disconnected from the graph
-       - by removing all edges to/from b
-
-
-       @param [in] edge of type *T_E* is to be added
-       */
-
-     void add_shortcut(const T_E &edge) {
-         std::ostringstream log;
-         bool inserted;
-         E e;
-         if (edge.cost < 0)
-             return;
-
-         pgassert(this->vertices_map.find(edge.source)
-                 != this->vertices_map.end());
-         pgassert(this->vertices_map.find(edge.target)
-                 != this->vertices_map.end());
-
-         auto vm_s = this->get_V(edge.source);
-         auto vm_t = this->get_V(edge.target);
-
-         boost::tie(e, inserted) =
-             boost::add_edge(vm_s, vm_t, this->graph);
-
-         this->graph[e].cp_members(edge);
-
-         shortcuts.push_back(edge);
-     }
-};
-
-}  // namespace graph
-}  // namespace pgrouting
-
-#endif  // SRC_CONTRACTION_SRC_PGR_CONTRACTIONGRAPH_HPP_
diff --git a/src/contraction/src/pgr_deadEndContraction.hpp b/src/contraction/src/pgr_deadEndContraction.hpp
deleted file mode 100644
index a2b2ecf..0000000
--- a/src/contraction/src/pgr_deadEndContraction.hpp
+++ /dev/null
@@ -1,408 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: pgr_deadend.hpp
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer: 
-Copyright (c) 2016 Rohith Reddy
-Mail: 
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- ********************************************************************PGR-GNU*/
-
-#ifndef SRC_CONTRACTION_SRC_PGR_DEADENDCONTRACTION_HPP_
-#define SRC_CONTRACTION_SRC_PGR_DEADENDCONTRACTION_HPP_
-#pragma once
-
-
-#include <queue>
-#include <functional>
-#include <vector>
-#include "../../common/src/identifiers.hpp"
-
-namespace pgrouting {
-namespace contraction {
-
-template < class G >
-class Pgr_deadend {
- private:
-     typedef typename G::V V;
-     typedef typename G::E E;
-
- public:
-     void setForbiddenVertices(
-             Identifiers<V> forbidden_vertices);
-
-     void calculateVertices(G &graph);
-     /// @brief true when \b v is a dead end
-     bool is_dead_end(G &graph, V v);
-     void add_if_dead_end(G &graph, V v);
-     void doContraction(G &graph);
-
- private:
-     Identifiers<V> deadendVertices;
-     Identifiers<V> forbiddenVertices;
-     std::ostringstream debug;
-};
-
-/******* IMPLEMENTATION ************/
-template < class G >
-void
-Pgr_deadend< G >::setForbiddenVertices(
-        Identifiers<V> forbidden_vertices) {
-#ifndef NDEBUG
-    debug << "Setting forbidden vertices\n";
-#endif
-    forbiddenVertices = forbidden_vertices;
-}
-
-
-template < class G >
-void Pgr_deadend<G>::calculateVertices(G &graph) {
-    debug << "Calculating vertices\n";
-
-    for (auto vi = vertices(graph.graph).first;
-            vi != vertices(graph.graph).second;
-            ++vi) {
-#ifndef NDEBUG
-        debug << "Checking vertex " << graph[(*vi)].id << '\n';
-#endif
-        if (is_dead_end(graph, *vi)) {
-#ifndef NDEBUG
-            debug << "Adding " << graph[(*vi)].id << " to dead end" << '\n';
-#endif
-            deadendVertices += (*vi);
-        }
-    }
-    deadendVertices -= forbiddenVertices;
-}
-
-template < class G >
-bool Pgr_deadend<G>::is_dead_end(G &graph, V v) {
-#ifndef NDEBUG
-    debug << "Is dead end: " << graph.graph[v].id << "?\n";
-#endif
-
-    if (forbiddenVertices.has(v)) {
-        /**
-         * - fobbiden_vertices
-         *   - Not considered as dead end
-         */
-
-        return false;
-    }
-
-    if (graph.is_undirected()) {
-        /**
-         * undirected:
-         * ----------
-         *   - There is only one adjacent vertex:
-         *   - All adjcent edges are from a single vertex
-         *
-
-         @dot
-         graph G {
-         graph [rankdir=LR];
-         subgraph cluster0 {
-         node [shape=point,height=0.2,style=filled,color=black];
-         style=filled;
-         color=lightgrey;
-         a0; a1; a2;
-         label = "rest of graph";
-         }
-         v [color=green];
-         v -- a0;
-         v -- a0;
-         }
-         @enddot
-
-         */
-        Identifiers<V> adjacent_vertices = graph.find_adjacent_vertices(v);
-        if (adjacent_vertices.size() == 1) {
-            return true;
-        }
-        return false;
-    }
-
-    pgassert(graph.is_directed());
-    /*
-     * directed graph
-     *
-     * is dead end when:
-     *  (2) one incoming edge, no outgoing edge (dead end)
-     *  (3) one outgoing edge, one incoming edge
-     *       and both are from/to the same vertex
-     *  (4) many incoming edges
-     *       and no outgoing edges
-     *  (5) many outgoing edges TODO but all go to same vertex
-     *       and no incoming edges
-     *
-     * NOT dead end when:
-     *  (3) one outgoing edge, one incoming edge
-     *       and both from/to different vertex
-     *
-     * note: when contracting case 4 & 5, the vertex has to be
-     *       part of all the adjacent vertices
-     */
-
-    if (graph.in_degree(v) == 0 && graph.out_degree(v) == 1) {
-        /**
-         * directed
-         * ----------
-         *  case (1):  (dead start)
-         *   - one outgoing edge,
-         *   - no incoming edge
-         *
-
-         @dot
-         digraph G {
-         graph [rankdir=LR];
-         subgraph cluster0 {
-         node [shape=point,height=0.2,style=filled,color=black];
-         style=filled;
-         color=lightgrey;
-         a0; a1; a2;
-         label = "rest of graph";
-         }
-         v [color=green];
-         v -> a0;
-         }
-         @enddot
-
-         */
-        return true;
-    }
-
-    if (graph.in_degree(v) == 1 && graph.out_degree(v) == 0) {
-        /**
-         * case (2):  (dead end)
-         *   - no outgoing edge,
-         *   - one incoming edge
-         *
-
-         @dot
-         digraph G {
-         graph [rankdir=LR];
-         subgraph cluster0 {
-         node [shape=point,height=0.2,style=filled,color=black];
-         style=filled;
-         color=lightgrey;
-         a0; a1; a2;
-         label = "rest of graph";
-         }
-         v [color=green];
-         a0 -> v;
-         }
-         @enddot
-
-         */
-        return true;
-    }
-
-    if (graph.out_degree(v) == 1 && graph.in_degree(v) == 1) {
-        /**
-         * case (3):
-         *   - one outgoing edge,
-         *   - one incoming edge
-         *   - one adjacent vertex
-         *
-
-         @dot
-         digraph G {
-         graph [rankdir=LR];
-         subgraph cluster0 {
-         node [shape=point,height=0.2,style=filled,color=black];
-         style=filled;
-         color=lightgrey;
-         a0; a1; a2;
-         label = "rest of graph";
-         }
-         v [color=green];
-         v -> a0;
-         a0 -> v;
-         }
-         @enddot
-
-         */
-        auto out_e = *(out_edges(v, graph.graph).first);
-        auto in_e = *(in_edges(v, graph.graph).first);
-
-        auto out_v = graph.is_source(v, out_e) ?
-            graph.target(out_e) : graph.source(out_e);
-        auto in_v = graph.is_source(v, in_e) ?
-            graph.target(in_e) : graph.source(in_e);
-
-        if (out_v == in_v) {
-            return true;
-        }
-        return false;
-    }
-
-    if (graph.in_degree(v) > 0 && graph.out_degree(v) == 0) {
-        /**
-         * case (4):
-         *   - no outgoing edge,
-         *   - many incoming edges
-         *
-         *
-
-         @dot
-         digraph G {
-         graph [rankdir=LR];
-         subgraph cluster0 {
-         node [shape=point,height=0.2,style=filled,color=black];
-         style=filled;
-         color=lightgrey;
-         a0; a1; a2;
-         label = "rest of graph";
-         }
-         v [color=green];
-         a0 -> v;
-         a1 -> v;
-         a0 -> v;
-         }
-         @enddot
-
-         */
-        return true;
-    }
-
-    if (graph.in_degree(v) > 0 && graph.out_degree(v) > 0) {
-        /**
-         * case (5):
-         *   - many outgoing edge,
-         *   - many incoming edges
-         *   - All adjacent edges are from a single vertex
-         *
-         *
-
-         @dot
-         digraph G {
-         graph [rankdir=LR];
-         subgraph cluster0 {
-         node [shape=point,height=0.2,style=filled,color=black];
-         style=filled;
-         color=lightgrey;
-         a0; a1; a2;
-         label = "rest of graph";
-         }
-         v [color=green];
-         a0 -> v;
-         a0 -> v;
-         v -> a0;
-         v -> a0;
-         }
-         @enddot
-
-         */
-
-        auto adjacent_vertices = graph.find_adjacent_vertices(v);
-        if (adjacent_vertices.size() == 1) {
-            return true;
-        }
-    }
-    debug << "Is Not Dead End\n";
-    return false;
-}
-
-template < class G >
-void
-Pgr_deadend<G>::add_if_dead_end(G &graph, V v) {
-    if (is_dead_end(graph, v)) {
-        deadendVertices += v;
-    }
-}
-
-template < class G >
-void
-Pgr_deadend<G>::doContraction(G &graph) {
-#ifndef NDEBUG
-    debug << "Performing contraction\n";
-#endif
-    std::priority_queue<V, std::vector<V>, std::greater<V> > deadendPriority;
-
-    for (V deadendVertex : deadendVertices) {
-        deadendPriority.push(deadendVertex);
-    }
-
-    while (!deadendPriority.empty()) {
-        V current_vertex = deadendPriority.top();
-        deadendPriority.pop();
-
-        if (!is_dead_end(graph, current_vertex)) {
-            continue;
-        }
-
-        Identifiers<V> adjacent_vertices =
-            graph.find_adjacent_vertices(current_vertex);
-
-        for (auto adjacent_vertex : adjacent_vertices) {
-#ifndef NDEBUG
-            debug << "Contracting current vertex "
-                << graph[current_vertex].id << std::endl;
-#endif
-            graph[adjacent_vertex].add_contracted_vertex(
-                    graph[current_vertex], current_vertex);
-
-#ifndef NDEBUG
-            debug << "Adding contracted vertices of the edge\n";
-#endif
-            auto o_edges = out_edges(current_vertex, graph.graph);
-            for (auto out = o_edges.first;
-                    out != o_edges.second;
-                    ++out) {
-                debug << graph.graph[*out];
-                graph.add_contracted_edge_vertices(
-                        adjacent_vertex, graph[*out]);
-            }
-            auto i_edges = in_edges(current_vertex, graph.graph);
-            for (auto in = i_edges.first;
-                    in != i_edges.second; ++in) {
-#ifndef NDEBUG
-                debug << graph.graph[*in];
-#endif
-                graph.add_contracted_edge_vertices(adjacent_vertex, graph[*in]);
-            }
-#ifndef NDEBUG
-            debug << "Current Vertex:\n";
-            debug << graph[current_vertex];
-            debug << "Adjacent Vertex:\n";
-            debug << graph[adjacent_vertex];
-#endif
-            graph.disconnect_vertex(current_vertex);
-            deadendVertices -= current_vertex;
-#ifndef NDEBUG
-            debug << "Adjacent vertex dead_end?: "
-                << is_dead_end(graph, adjacent_vertex)
-                << std::endl;
-#endif
-            if (is_dead_end(graph, adjacent_vertex)
-                    && !forbiddenVertices.has(adjacent_vertex)) {
-                deadendVertices += adjacent_vertex;
-                deadendPriority.push(adjacent_vertex);
-            }
-        }
-    }
-}
-
-}  // namespace contraction
-}  // namespace pgrouting
-
-#endif  // SRC_CONTRACTION_SRC_PGR_DEADENDCONTRACTION_HPP_
diff --git a/src/contraction/src/pgr_linearContraction.hpp b/src/contraction/src/pgr_linearContraction.hpp
deleted file mode 100644
index 6c36e54..0000000
--- a/src/contraction/src/pgr_linearContraction.hpp
+++ /dev/null
@@ -1,274 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: pgr_linear.c
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer: 
-Copyright (c) 2016 Rohith Reddy
-Mail: 
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- ********************************************************************PGR-GNU*/
-
-#ifndef SRC_CONTRACTION_SRC_PGR_LINEARCONTRACTION_HPP_
-#define SRC_CONTRACTION_SRC_PGR_LINEARCONTRACTION_HPP_
-#pragma once
-
-
-#include <queue>
-#include <functional>
-#include <vector>
-
-#include "../../common/src/identifiers.hpp"
-
-
-namespace pgrouting {
-namespace contraction {
-
-template < class G >
-class Pgr_linear {
- private:
-     typedef typename G::V V;
-     typedef typename G::E E;
-     typedef typename G::V_i V_i;
-     typedef typename G::E_i E_i;
-     typedef typename G::EO_i EO_i;
-     typedef typename G::EI_i EI_i;
-     typedef typename G::degree_size_type degree_size_type;
-
-
- public:
-     Pgr_linear():last_edge_id(0) {}
-     void setForbiddenVertices(
-             Identifiers<V> forbidden_vertices);
-     void calculateVertices(G &graph);
-     void doContraction(G &graph);
-
- private:
-     int64_t get_next_id() {
-         return --last_edge_id;
-     }
-
-     bool is_linear(G &graph, V v);
-     void add_if_linear(G &graph, V v);
-     void add_edge_pair(V vertex, int64_t &incoming_eid,
-             int64_t &outgoing_eid);
-     void add_shortcut(G &graph, V vertex,
-             E incoming_edge,
-             E outgoing_edge);
-     void add_shortcut(G &graph,
-             pgrouting::CH_edge &shortcut);
-
- private:
-     Identifiers<V> linearVertices;
-     Identifiers<V> forbiddenVertices;
-
-     int64_t last_edge_id;
-     std::ostringstream debug;
-};
-
-/*************** IMPLEMENTTION **************/
-
-template < class G >
-void
-Pgr_linear< G >::setForbiddenVertices(
-        Identifiers<V> forbidden_vertices) {
-    debug << "Setting forbidden vertices\n";
-    forbiddenVertices = forbidden_vertices;
-}
-
-
-template < class G >
-bool Pgr_linear<G>::is_linear(G &graph, V v) {
-    degree_size_type in_degree, out_degree;
-    in_degree = graph.in_degree(v);
-    out_degree = graph.out_degree(v);
-    Identifiers<V> adjacent_vertices = graph.find_adjacent_vertices(v);
-    if (adjacent_vertices.size() == 2) {
-        if (in_degree > 0 && out_degree > 0) {
-            debug << graph.graph[v].id << " is linear " << std::endl;
-            return true;
-        }
-    }
-    debug << graph.graph[v].id << " is not linear " << std::endl;
-    return false;
-}
-
-template < class G >
-void Pgr_linear<G>::calculateVertices(G &graph) {
-    debug << "Calculating vertices\n";
-    V_i vi;
-    for (vi = vertices(graph.graph).first;
-            vi != vertices(graph.graph).second;
-            ++vi) {
-        debug << "Checking vertex " << graph.graph[(*vi)].id << '\n';
-        if (is_linear(graph, *vi)) {
-            linearVertices += (*vi);
-        }
-    }
-    linearVertices -= forbiddenVertices;
-}
-
-
-
-template < class G >
-void Pgr_linear<G>::doContraction(G &graph) {
-    std::ostringstream contraction_debug;
-    contraction_debug << "Performing contraction\n";
-    std::priority_queue<V, std::vector<V>, std::greater<V> > linearPriority;
-    for (const auto linearVertex : linearVertices) {
-        linearPriority.push(linearVertex);
-    }
-    contraction_debug << "Linear vertices" << std::endl;
-    for (const auto v : linearVertices) {
-        contraction_debug << graph[v].id << ", ";
-    }
-    contraction_debug << std::endl;
-    while (!linearPriority.empty()) {
-        V current_vertex = linearPriority.top();
-        linearPriority.pop();
-        if (!is_linear(graph, current_vertex)) {
-            linearVertices -= current_vertex;
-            continue;
-        }
-        Identifiers<V> adjacent_vertices =
-            graph.find_adjacent_vertices(current_vertex);
-        pgassert(adjacent_vertices.size() == 2);
-        V vertex_1 = adjacent_vertices[0];
-        V vertex_2 = adjacent_vertices[1];
-        contraction_debug << "Adjacent vertices\n";
-        contraction_debug << graph[vertex_1].id
-            << ", " << graph[vertex_2].id
-            << std::endl;
-
-        if (graph.m_gType == DIRECTED) {
-            if (graph.out_degree_to_vertex(vertex_1, current_vertex) > 0 &&
-                    graph.in_degree_from_vertex(vertex_2, current_vertex) > 0) {
-                E e1 = graph.get_min_cost_edge(vertex_1,
-                        current_vertex);
-                E e2 = graph.get_min_cost_edge(current_vertex,
-                        vertex_2);
-                add_shortcut(graph, current_vertex, e1, e2);
-            }
-
-            if (graph.out_degree_to_vertex(vertex_2, current_vertex) > 0 &&
-                    graph.in_degree_from_vertex(vertex_1, current_vertex) > 0) {
-                E e1 = graph.get_min_cost_edge(vertex_2,
-                        current_vertex);
-                E e2 = graph.get_min_cost_edge(current_vertex,
-                        vertex_1);
-                add_shortcut(graph, current_vertex, e1, e2);
-            }
-        } else if (graph.m_gType == UNDIRECTED) {
-            if (graph.out_degree_to_vertex(vertex_1, current_vertex) > 0 &&
-                    graph.in_degree_from_vertex(vertex_2, current_vertex) > 0) {
-                contraction_debug << "UNDIRECTED graph before contraction\n";
-                graph.print_graph(contraction_debug);
-                E e1 = graph.get_min_cost_edge(vertex_1,
-                        current_vertex);
-                E e2 = graph.get_min_cost_edge(current_vertex,
-                        vertex_2);
-                add_shortcut(graph, current_vertex, e1, e2);
-            }
-        }
-
-        graph.disconnect_vertex(current_vertex);
-        linearVertices -= current_vertex;
-        if (is_linear(graph, vertex_1)
-                && !forbiddenVertices.has(vertex_1)) {
-            linearPriority.push(vertex_1);
-            linearVertices += vertex_1;
-        }
-        if (is_linear(graph, vertex_2)
-                && !forbiddenVertices.has(vertex_2)) {
-            linearPriority.push(vertex_2);
-            linearVertices += vertex_2;
-        }
-    }
-    debug << contraction_debug.str().c_str() << "\n";
-}
-
-
-/*! \brief add edges(shortuct) to the graph during contraction
-
-  a --incomming--> b ---outgoing--> c
-
-  a -> c
-
-  edge (a, c) is a new edge: @b shortcut
-  e.contracted_vertices = b + b.contracted vertices
-  b is "removed" disconnected from the graph
-  - by removing all edges to/from b
-  */
-
-template < class G >
-void
-Pgr_linear<G>::add_shortcut(
-        G &graph, V vertex,
-        E incoming_edge,
-        E outgoing_edge) {
-    pgassert(incoming_edge != outgoing_edge);
-
-    auto a = graph.adjacent(vertex, incoming_edge);
-    auto c = graph.adjacent(vertex, outgoing_edge);
-    pgassert(a != vertex);
-    pgassert(a != c);
-    pgassert(vertex != c);
-
-    if (graph.is_undirected()) {
-        Identifiers<V> adjacent_vertices = graph.find_adjacent_vertices(vertex);
-        V vertex_1 = adjacent_vertices[0];
-        V vertex_2 = adjacent_vertices[1];
-        E shortcut_E;
-        CH_edge shortcut(get_next_id(), graph[vertex_1].id,
-                graph[vertex_2].id,
-                graph[incoming_edge].cost + graph[outgoing_edge].cost);
-        shortcut.add_contracted_vertex(graph[vertex], vertex);
-        shortcut.add_contracted_edge_vertices(graph[incoming_edge]);
-        shortcut.add_contracted_edge_vertices(graph[outgoing_edge]);
-        debug << "Adding shortcut\n";
-        debug << shortcut;
-        graph.add_shortcut(shortcut);
-        debug << "Added shortcut\n";
-    } else {
-        CH_edge shortcut(
-                get_next_id(),
-                graph[a].id,
-                graph[c].id,
-                graph[incoming_edge].cost + graph[outgoing_edge].cost);
-        shortcut.add_contracted_vertex(graph[vertex], vertex);
-        shortcut.add_contracted_edge_vertices(graph[incoming_edge]);
-        shortcut.add_contracted_edge_vertices(graph[outgoing_edge]);
-        debug << "Adding shortcut\n";
-        debug << shortcut;
-        graph.add_shortcut(shortcut);
-        debug << "Added shortcut\n";
-    }
-}
-template < class G >
-void Pgr_linear<G>::add_shortcut(G &graph,
-        pgrouting::CH_edge &shortcut) {
-    graph.add_shortcut(shortcut);
-}
-
-}  // namespace contraction
-}  // namespace pgrouting
-
-#endif  // SRC_CONTRACTION_SRC_PGR_LINEARCONTRACTION_HPP_
diff --git a/src/contraction/test/directed-deadend.result b/src/contraction/test/directed-deadend.result
index 34baa1d..0a416aa 100644
--- a/src/contraction/test/directed-deadend.result
+++ b/src/contraction/test/directed-deadend.result
@@ -1,11 +1,61 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 --q1 Checking dead end contraction for single edge
-1|v|2|{1}|-1|-1|-1
+/*
+\echo --q0 Checking for valid contraction
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 1',
+    ARRAY[-1]::integer[], 1, ARRAY[]::BIGINT[], true);
+*/
+
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 1',
+    ARRAY[1]::integer[], 1, ARRAY[]::BIGINT[], true);
+ seq | type | id | contracted_vertices | source | target | cost 
+-----+------+----+---------------------+--------+--------+------
+   1 | v    |  2 | {1}                 |     -1 |     -1 |   -1
+(1 row)
+
 --q2 Checking dead end contraction for two edges
-1|v|3|{1,2}|-1|-1|-1
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id < 3',
+    ARRAY[1]::integer[], 1, ARRAY[]::BIGINT[], true);
+ seq | type | id | contracted_vertices | source | target | cost 
+-----+------+----+---------------------+--------+--------+------
+   1 | v    |  3 | {1,2}               |     -1 |     -1 |   -1
+(1 row)
+
 --q3 Checking dead end contraction for sample data
-1|v|2|{1}|-1|-1|-1
-2|v|5|{7,8}|-1|-1|-1
-3|v|10|{13}|-1|-1|-1
-4|v|15|{14}|-1|-1|-1
-5|v|17|{16}|-1|-1|-1
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[1]::integer[], 1, ARRAY[]::BIGINT[], true);
+ seq | type | id | contracted_vertices | source | target | cost 
+-----+------+----+---------------------+--------+--------+------
+   1 | v    |  2 | {1}                 |     -1 |     -1 |   -1
+   2 | v    |  5 | {7,8}               |     -1 |     -1 |   -1
+   3 | v    | 10 | {13}                |     -1 |     -1 |   -1
+   4 | v    | 15 | {14}                |     -1 |     -1 |   -1
+   5 | v    | 17 | {16}                |     -1 |     -1 |   -1
+(5 rows)
+
 --q5 Checking dead end contraction for a graph with no dead end vertex
+/*
+-- this test fails becuse parameter is wrong
+\echo --q4 Checking that forbidden vertices can only be one dimensional or empty
+SELECT * FROM pgr_contractGraph(
+	'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 1',
+	ARRAY[ [2,3,4,5], [4,5,6,7] ]::BIGINT[][], ARRAY[0]::integer[], 1, true);
+-- \echo --q4 -------------------------------------------
+*/
+SELECT * FROM pgr_contractGraph(
+	'SELECT id, source, target, cost, reverse_cost FROM edge_table 
+	WHERE id = 2 OR id = 4 OR id = 5 OR id = 8',
+	ARRAY[1]::integer[], 1, ARRAY[]::BIGINT[], true);
+ seq | type | id | contracted_vertices | source | target | cost 
+-----+------+----+---------------------+--------+--------+------
+(0 rows)
+
+ROLLBACK;
+ROLLBACK
diff --git a/src/contraction/test/directed-development.result b/src/contraction/test/directed-development.result
index 6a1b034..fbde94d 100644
--- a/src/contraction/test/directed-development.result
+++ b/src/contraction/test/directed-development.result
@@ -1,50 +1,165 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 --q1 Checking dead end contraction for single edge
-1|v|2|{1}|-1|-1|-1
+/*
+-- this test fails becuse parameter is wrong
+\echo --q0 Checking for valid contraction
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 1',
+    ARRAY[-1]::integer[], 1, ARRAY[]::BIGINT[], true);
+*/
+
+
+
+
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 1',
+    ARRAY[1]::integer[], 1, ARRAY[]::BIGINT[], true);
+ seq | type | id | contracted_vertices | source | target | cost 
+-----+------+----+---------------------+--------+--------+------
+   1 | v    |  2 | {1}                 |     -1 |     -1 |   -1
+(1 row)
+
 --q2 Checking dead end contraction for two edges
-1|v|3|{1,2}|-1|-1|-1
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id < 3',
+    ARRAY[1]::integer[], 1, ARRAY[]::BIGINT[], true);
+ seq | type | id | contracted_vertices | source | target | cost 
+-----+------+----+---------------------+--------+--------+------
+   1 | v    |  3 | {1,2}               |     -1 |     -1 |   -1
+(1 row)
+
 --q3 Checking dead end contraction for sample data
-1|v|2|{1}|-1|-1|-1
-2|v|5|{7,8}|-1|-1|-1
-3|v|10|{13}|-1|-1|-1
-4|v|15|{14}|-1|-1|-1
-5|v|17|{16}|-1|-1|-1
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[1]::integer[], 1, ARRAY[]::BIGINT[], true);
+ seq | type | id | contracted_vertices | source | target | cost 
+-----+------+----+---------------------+--------+--------+------
+   1 | v    |  2 | {1}                 |     -1 |     -1 |   -1
+   2 | v    |  5 | {7,8}               |     -1 |     -1 |   -1
+   3 | v    | 10 | {13}                |     -1 |     -1 |   -1
+   4 | v    | 15 | {14}                |     -1 |     -1 |   -1
+   5 | v    | 17 | {16}                |     -1 |     -1 |   -1
+(5 rows)
+
 --q5 Checking dead end contraction for a graph with no dead end vertex
+SELECT * FROM pgr_contractGraph(
+	'SELECT id, source, target, cost, reverse_cost FROM edge_table 
+	WHERE id = 2 OR id = 4 OR id = 5 OR id = 8',
+	ARRAY[1]::integer[], 1, ARRAY[]::BIGINT[], true);
+ seq | type | id | contracted_vertices | source | target | cost 
+-----+------+----+---------------------+--------+--------+------
+(0 rows)
+
 --q6 Checking for linear vertices case 1
-1|e|-1|{3}|4|6|2
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table 
+    WHERE id = 3 OR id = 5',
+    ARRAY[2]::integer[], 1, ARRAY[]::BIGINT[], true);
+ seq | type | id | contracted_vertices | source | target | cost 
+-----+------+----+---------------------+--------+--------+------
+   1 | e    | -1 | {3}                 |      4 |      6 |    2
+(1 row)
+
 --q7 Checking for linear vertices case 2
-1|e|-1|{5}|6|10|2
-2|e|-2|{5}|10|6|2
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table 
+    WHERE id = 8 OR id = 10',
+    ARRAY[2]::integer[], 1, ARRAY[]::BIGINT[], true);
+ seq | type | id | contracted_vertices | source | target | cost 
+-----+------+----+---------------------+--------+--------+------
+   1 | e    | -1 | {5}                 |      6 |     10 |    2
+   2 | e    | -2 | {5}                 |     10 |      6 |    2
+(2 rows)
+
 --q8 Checking for linear vertices case 3
-1|e|-1|{2}|3|5|2
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table 
+    WHERE id = 2 OR id = 4',
+    ARRAY[2]::integer[], 1, ARRAY[]::BIGINT[], true);
+ seq | type | id | contracted_vertices | source | target | cost 
+-----+------+----+---------------------+--------+--------+------
+   1 | e    | -1 | {2}                 |      3 |      5 |    2
+(1 row)
+
 --q9 Checking for linear vertices case 4
-1|e|-1|{6}|3|9|2
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table 
+    WHERE id = 5 OR id = 9',
+    ARRAY[2]::integer[], 1, ARRAY[]::BIGINT[], true);
+ seq | type | id | contracted_vertices | source | target | cost 
+-----+------+----+---------------------+--------+--------+------
+   1 | e    | -1 | {6}                 |      3 |      9 |    2
+(1 row)
+
 --q10 Checking linear contraction for sample data
-1|e|-1|{4}|9|3|2
-2|e|-2|{8}|5|7|2
-3|e|-3|{8}|7|5|2
-4|e|-4|{12}|11|9|2
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table' ,
+    ARRAY[2]::integer[], 1, ARRAY[]::BIGINT[], true);
+ seq | type | id | contracted_vertices | source | target | cost 
+-----+------+----+---------------------+--------+--------+------
+   1 | e    | -1 | {4}                 |      9 |      3 |    2
+   2 | e    | -2 | {8}                 |      5 |      7 |    2
+   3 | e    | -3 | {8}                 |      7 |      5 |    2
+   4 | e    | -4 | {12}                |     11 |      9 |    2
+(4 rows)
+
 --q11 Checking dead end, linear contraction for sample data
-1|v|5|{7,8}|-1|-1|-1
-2|v|15|{14}|-1|-1|-1
-3|v|17|{16}|-1|-1|-1
-4|e|-1|{1,2}|3|5|2
-5|e|-2|{4}|9|3|2
-6|e|-3|{10,13}|5|11|2
-7|e|-4|{12}|11|9|2
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table' ,
+    ARRAY[1, 2]::integer[], 1, ARRAY[]::BIGINT[], true);
+ seq | type | id | contracted_vertices | source | target | cost 
+-----+------+----+---------------------+--------+--------+------
+   1 | v    |  5 | {7,8}               |     -1 |     -1 |   -1
+   2 | v    | 15 | {14}                |     -1 |     -1 |   -1
+   3 | v    | 17 | {16}                |     -1 |     -1 |   -1
+   4 | e    | -1 | {1,2}               |      3 |      5 |    2
+   5 | e    | -2 | {4}                 |      9 |      3 |    2
+   6 | e    | -3 | {10,13}             |      5 |     11 |    2
+   7 | e    | -4 | {12}                |     11 |      9 |    2
+(7 rows)
+
 --q12 Checking linear contraction, dead end for sample data
-1|v|2|{1}|-1|-1|-1
-2|v|5|{7,8}|-1|-1|-1
-3|v|10|{13}|-1|-1|-1
-4|v|15|{14}|-1|-1|-1
-5|v|17|{16}|-1|-1|-1
-6|e|-1|{4}|9|3|2
-7|e|-2|{8}|5|7|2
-8|e|-3|{8}|7|5|2
-9|e|-4|{12}|11|9|2
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table' ,
+     ARRAY[2, 1]::integer[], 1, ARRAY[]::BIGINT[], true);
+ seq | type | id | contracted_vertices | source | target | cost 
+-----+------+----+---------------------+--------+--------+------
+   1 | v    |  2 | {1}                 |     -1 |     -1 |   -1
+   2 | v    |  5 | {7,8}               |     -1 |     -1 |   -1
+   3 | v    | 10 | {13}                |     -1 |     -1 |   -1
+   4 | v    | 15 | {14}                |     -1 |     -1 |   -1
+   5 | v    | 17 | {16}                |     -1 |     -1 |   -1
+   6 | e    | -1 | {4}                 |      9 |      3 |    2
+   7 | e    | -2 | {8}                 |      5 |      7 |    2
+   8 | e    | -3 | {8}                 |      7 |      5 |    2
+   9 | e    | -4 | {12}                |     11 |      9 |    2
+(9 rows)
+
 --q13 Checking linear contraction for a square like graph
-1|e|-1|{2}|3|5|2
-2|e|-2|{2,5}|3|6|3
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table 
+    WHERE id = 2 OR id = 4 OR id = 5 OR id = 8',
+    ARRAY[2]::integer[], 1, ARRAY[]::BIGINT[], true);
+ seq | type | id | contracted_vertices | source | target | cost 
+-----+------+----+---------------------+--------+--------+------
+   1 | e    | -1 | {2}                 |      3 |      5 |    2
+   2 | e    | -2 | {2,5}               |      3 |      6 |    3
+(2 rows)
+
 --q14 Checking linear contraction, dead end for a square like graph
-1|v|3|{2,5,6}|-1|-1|-1
-2|e|-1|{2}|3|5|2
-3|e|-2|{2,5}|3|6|3
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table 
+    WHERE id = 2 OR id = 4 OR id = 5 OR id = 8',
+    ARRAY[2, 1]::integer[], 1, ARRAY[]::BIGINT[], true);
+ seq | type | id | contracted_vertices | source | target | cost 
+-----+------+----+---------------------+--------+--------+------
+   1 | v    |  3 | {2,5,6}             |     -1 |     -1 |   -1
+   2 | e    | -1 | {2}                 |      3 |      5 |    2
+   3 | e    | -2 | {2,5}               |      3 |      6 |    3
+(3 rows)
+
+ROLLBACK;
+ROLLBACK
diff --git a/src/contraction/test/directed-linear.result b/src/contraction/test/directed-linear.result
index 99d451f..d196eb3 100644
--- a/src/contraction/test/directed-linear.result
+++ b/src/contraction/test/directed-linear.result
@@ -1,17 +1,70 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 --q6 Checking for linear vertices case 1
-1|e|-1|{3}|4|6|2
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table 
+    WHERE id = 3 OR id = 5',
+    ARRAY[2]::integer[], 1, ARRAY[]::BIGINT[], true);
+ seq | type | id | contracted_vertices | source | target | cost 
+-----+------+----+---------------------+--------+--------+------
+   1 | e    | -1 | {3}                 |      4 |      6 |    2
+(1 row)
+
 --q7 Checking for linear vertices case 2
-1|e|-1|{5}|6|10|2
-2|e|-2|{5}|10|6|2
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table 
+    WHERE id = 8 OR id = 10',
+    ARRAY[2]::integer[], 1, ARRAY[]::BIGINT[], true);
+ seq | type | id | contracted_vertices | source | target | cost 
+-----+------+----+---------------------+--------+--------+------
+   1 | e    | -1 | {5}                 |      6 |     10 |    2
+   2 | e    | -2 | {5}                 |     10 |      6 |    2
+(2 rows)
+
 --q8 Checking for linear vertices case 3
-1|e|-1|{2}|3|5|2
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table 
+    WHERE id = 2 OR id = 4',
+    ARRAY[2]::integer[], 1, ARRAY[]::BIGINT[], true);
+ seq | type | id | contracted_vertices | source | target | cost 
+-----+------+----+---------------------+--------+--------+------
+   1 | e    | -1 | {2}                 |      3 |      5 |    2
+(1 row)
+
 --q9 Checking for linear vertices case 4
-1|e|-1|{6}|3|9|2
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table 
+    WHERE id = 5 OR id = 9',
+    ARRAY[2]::integer[], 1, ARRAY[]::BIGINT[], true);
+ seq | type | id | contracted_vertices | source | target | cost 
+-----+------+----+---------------------+--------+--------+------
+   1 | e    | -1 | {6}                 |      3 |      9 |    2
+(1 row)
+
 --q10 Checking linear contraction for sample data
-1|e|-1|{4}|9|3|2
-2|e|-2|{8}|5|7|2
-3|e|-3|{8}|7|5|2
-4|e|-4|{12}|11|9|2
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table' ,
+    ARRAY[2]::integer[], 1, ARRAY[]::BIGINT[], true);
+ seq | type | id | contracted_vertices | source | target | cost 
+-----+------+----+---------------------+--------+--------+------
+   1 | e    | -1 | {4}                 |      9 |      3 |    2
+   2 | e    | -2 | {8}                 |      5 |      7 |    2
+   3 | e    | -3 | {8}                 |      7 |      5 |    2
+   4 | e    | -4 | {12}                |     11 |      9 |    2
+(4 rows)
+
 --q13 Checking linear contraction for a square like graph
-1|e|-1|{2}|3|5|2
-2|e|-2|{2,5}|3|6|3
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table 
+    WHERE id = 2 OR id = 4 OR id = 5 OR id = 8',
+    ARRAY[2]::integer[], 1, ARRAY[]::BIGINT[], true);
+ seq | type | id | contracted_vertices | source | target | cost 
+-----+------+----+---------------------+--------+--------+------
+   1 | e    | -1 | {2}                 |      3 |      5 |    2
+   2 | e    | -2 | {2,5}               |      3 |      6 |    3
+(2 rows)
+
+ROLLBACK;
+ROLLBACK
diff --git a/src/contraction/test/doc-contractGraph.result b/src/contraction/test/doc-contractGraph.result
index e94997e..7b3757f 100644
--- a/src/contraction/test/doc-contractGraph.result
+++ b/src/contraction/test/doc-contractGraph.result
@@ -1,28 +1,62 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 -- q1
-1|v|5|{7,8}|-1|-1|-1
-2|v|15|{14}|-1|-1|-1
-3|v|17|{16}|-1|-1|-1
-4|e|-1|{1,2}|3|5|2
-5|e|-2|{4}|9|3|2
-6|e|-3|{10,13}|5|11|2
-7|e|-4|{12}|11|9|2
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[1, 2]);
+ seq | type | id | contracted_vertices | source | target | cost 
+-----+------+----+---------------------+--------+--------+------
+   1 | v    |  5 | {7,8}               |     -1 |     -1 |   -1
+   2 | v    | 15 | {14}                |     -1 |     -1 |   -1
+   3 | v    | 17 | {16}                |     -1 |     -1 |   -1
+   4 | e    | -1 | {1,2}               |      3 |      5 |    2
+   5 | e    | -2 | {4}                 |      9 |      3 |    2
+   6 | e    | -3 | {10,13}             |      5 |     11 |    2
+   7 | e    | -4 | {12}                |     11 |      9 |    2
+(7 rows)
+
 -- q2
-1|v|2|{1}|-1|-1|-1
-2|v|5|{7,8}|-1|-1|-1
-3|v|15|{14}|-1|-1|-1
-4|v|17|{16}|-1|-1|-1
-5|e|-1|{4}|9|3|2
-6|e|-2|{10,13}|5|11|2
-7|e|-3|{12}|11|9|2
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+ARRAY[1, 2], forbidden_vertices:=ARRAY[2]);
+ seq | type | id | contracted_vertices | source | target | cost 
+-----+------+----+---------------------+--------+--------+------
+   1 | v    |  2 | {1}                 |     -1 |     -1 |   -1
+   2 | v    |  5 | {7,8}               |     -1 |     -1 |   -1
+   3 | v    | 15 | {14}                |     -1 |     -1 |   -1
+   4 | v    | 17 | {16}                |     -1 |     -1 |   -1
+   5 | e    | -1 | {4}                 |      9 |      3 |    2
+   6 | e    | -2 | {10,13}             |      5 |     11 |    2
+   7 | e    | -3 | {12}                |     11 |      9 |    2
+(7 rows)
+
 -- q3
-1|v|2|{1}|-1|-1|-1
-2|v|5|{7,8}|-1|-1|-1
-3|v|10|{13}|-1|-1|-1
-4|v|15|{14}|-1|-1|-1
-5|v|17|{16}|-1|-1|-1
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+ARRAY[1]);
+ seq | type | id | contracted_vertices | source | target | cost 
+-----+------+----+---------------------+--------+--------+------
+   1 | v    |  2 | {1}                 |     -1 |     -1 |   -1
+   2 | v    |  5 | {7,8}               |     -1 |     -1 |   -1
+   3 | v    | 10 | {13}                |     -1 |     -1 |   -1
+   4 | v    | 15 | {14}                |     -1 |     -1 |   -1
+   5 | v    | 17 | {16}                |     -1 |     -1 |   -1
+(5 rows)
+
 -- q4
-1|e|-1|{4}|9|3|2
-2|e|-2|{8}|5|7|2
-3|e|-3|{8}|7|5|2
-4|e|-4|{12}|11|9|2
--- q5
\ No newline at end of file
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+ARRAY[2]);
+ seq | type | id | contracted_vertices | source | target | cost 
+-----+------+----+---------------------+--------+--------+------
+   1 | e    | -1 | {4}                 |      9 |      3 |    2
+   2 | e    | -2 | {8}                 |      5 |      7 |    2
+   3 | e    | -3 | {8}                 |      7 |      5 |    2
+   4 | e    | -4 | {12}                |     11 |      9 |    2
+(4 rows)
+
+-- q5
+ROLLBACK;
+ROLLBACK
diff --git a/src/contraction/test/doc-contraction.result b/src/contraction/test/doc-contraction.result
index 131b60f..7e015f5 100644
--- a/src/contraction/test/doc-contraction.result
+++ b/src/contraction/test/doc-contraction.result
@@ -1,128 +1,339 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 -- q00
-1|1|2|1|1
-2|2|3|-1|1
-3|3|4|-1|1
-4|2|5|1|1
-5|3|6|1|-1
-6|7|8|1|1
-7|8|5|1|1
-8|5|6|1|1
-9|6|9|1|1
-10|5|10|1|1
-11|6|11|1|-1
-12|10|11|1|-1
-13|11|12|1|-1
-14|10|13|1|1
-15|9|12|1|1
-16|4|9|1|1
-17|14|15|1|1
-18|16|17|1|1
 -- q01
+SET client_min_messages TO ERROR;
+SET
 -- q1
+ALTER TABLE edge_table ADD contracted_vertices BIGINT[];
+ALTER TABLE
+ALTER TABLE edge_table_vertices_pgr ADD contracted_vertices BIGINT[];
+ALTER TABLE
+ALTER TABLE edge_table ADD is_contracted BOOLEAN DEFAULT false;
+ALTER TABLE
+ALTER TABLE edge_table_vertices_pgr ADD is_contracted BOOLEAN DEFAULT false;
+ALTER TABLE
+SET client_min_messages TO NOTICE;
+SET
 -- q2
-1|v|5|{7,8}|-1|-1|-1
-2|v|15|{14}|-1|-1|-1
-3|v|17|{16}|-1|-1|-1
-4|e|-1|{1,2}|3|5|2
-5|e|-2|{4}|9|3|2
-6|e|-3|{10,13}|5|11|2
-7|e|-4|{12}|11|9|2
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    array[1,2], directed:=true);
+ seq | type | id | contracted_vertices | source | target | cost 
+-----+------+----+---------------------+--------+--------+------
+   1 | v    |  5 | {7,8}               |     -1 |     -1 |   -1
+   2 | v    | 15 | {14}                |     -1 |     -1 |   -1
+   3 | v    | 17 | {16}                |     -1 |     -1 |   -1
+   4 | e    | -1 | {1,2}               |      3 |      5 |    2
+   5 | e    | -2 | {4}                 |      9 |      3 |    2
+   6 | e    | -3 | {10,13}             |      5 |     11 |    2
+   7 | e    | -4 | {12}                |     11 |      9 |    2
+(7 rows)
+
 -- q3
+SELECT * INTO contraction_results
+FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    array[1,2], directed:=true);
+SELECT 7
 -- q4
+UPDATE edge_table_vertices_pgr
+SET is_contracted = true
+WHERE id IN (SELECT  unnest(contracted_vertices) FROM  contraction_results);
+UPDATE 10
 -- q5
-1|t
-2|t
-3|f
-4|t
-5|f
-6|f
-7|t
-8|t
-9|f
-10|t
-11|f
-12|t
-13|t
-14|t
-15|f
-16|t
-17|f
+SELECT id, is_contracted
+FROM edge_table_vertices_pgr
+ORDER BY id;
+ id | is_contracted 
+----+---------------
+  1 | t
+  2 | t
+  3 | f
+  4 | t
+  5 | f
+  6 | f
+  7 | t
+  8 | t
+  9 | f
+ 10 | t
+ 11 | f
+ 12 | t
+ 13 | t
+ 14 | t
+ 15 | f
+ 16 | t
+ 17 | f
+(17 rows)
+
 -- q6
+UPDATE edge_table_vertices_pgr
+SET contracted_vertices = contraction_results.contracted_vertices
+FROM contraction_results
+WHERE type = 'v' AND edge_table_vertices_pgr.id = contraction_results.id;
+UPDATE 3
 -- q7
-1||t
-2||t
-3||f
-4||t
-5|{7,8}|f
-6||f
-7||t
-8||t
-9||f
-10||t
-11||f
-12||t
-13||t
-14||t
-15|{14}|f
-16||t
-17|{16}|f
+SELECT id, contracted_vertices, is_contracted 
+FROM edge_table_vertices_pgr
+ORDER BY id;
+ id | contracted_vertices | is_contracted 
+----+---------------------+---------------
+  1 |                     | t
+  2 |                     | t
+  3 |                     | f
+  4 |                     | t
+  5 | {7,8}               | f
+  6 |                     | f
+  7 |                     | t
+  8 |                     | t
+  9 |                     | f
+ 10 |                     | t
+ 11 |                     | f
+ 12 |                     | t
+ 13 |                     | t
+ 14 |                     | t
+ 15 | {14}                | f
+ 16 |                     | t
+ 17 | {16}                | f
+(17 rows)
+
 -- q8
+INSERT INTO edge_table(source, target, cost, reverse_cost, contracted_vertices, is_contracted)
+SELECT source, target, cost, -1, contracted_vertices, true
+FROM contraction_results
+WHERE type = 'e';
+INSERT 0 4
 -- q9
-1|1|2|1|1||f
-2|2|3|-1|1||f
-3|3|4|-1|1||f
-4|2|5|1|1||f
-5|3|6|1|-1||f
-6|7|8|1|1||f
-7|8|5|1|1||f
-8|5|6|1|1||f
-9|6|9|1|1||f
-10|5|10|1|1||f
-11|6|11|1|-1||f
-12|10|11|1|-1||f
-13|11|12|1|-1||f
-14|10|13|1|1||f
-15|9|12|1|1||f
-16|4|9|1|1||f
-17|14|15|1|1||f
-18|16|17|1|1||f
-23|3|5|2|-1|{1,2}|t
-24|9|3|2|-1|{4}|t
-25|5|11|2|-1|{10,13}|t
-26|11|9|2|-1|{12}|t
+SELECT id, source, target, cost, reverse_cost, contracted_vertices, is_contracted 
+FROM edge_table
+ORDER BY id;
+ id | source | target | cost | reverse_cost | contracted_vertices | is_contracted 
+----+--------+--------+------+--------------+---------------------+---------------
+  1 |      1 |      2 |    1 |            1 |                     | f
+  2 |      2 |      3 |   -1 |            1 |                     | f
+  3 |      3 |      4 |   -1 |            1 |                     | f
+  4 |      2 |      5 |    1 |            1 |                     | f
+  5 |      3 |      6 |    1 |           -1 |                     | f
+  6 |      7 |      8 |    1 |            1 |                     | f
+  7 |      8 |      5 |    1 |            1 |                     | f
+  8 |      5 |      6 |    1 |            1 |                     | f
+  9 |      6 |      9 |    1 |            1 |                     | f
+ 10 |      5 |     10 |    1 |            1 |                     | f
+ 11 |      6 |     11 |    1 |           -1 |                     | f
+ 12 |     10 |     11 |    1 |           -1 |                     | f
+ 13 |     11 |     12 |    1 |           -1 |                     | f
+ 14 |     10 |     13 |    1 |            1 |                     | f
+ 15 |      9 |     12 |    1 |            1 |                     | f
+ 16 |      4 |      9 |    1 |            1 |                     | f
+ 17 |     14 |     15 |    1 |            1 |                     | f
+ 18 |     16 |     17 |    1 |            1 |                     | f
+ 19 |      3 |      5 |    2 |           -1 | {1,2}               | t
+ 20 |      9 |      3 |    2 |           -1 | {4}                 | t
+ 21 |      5 |     11 |    2 |           -1 | {10,13}             | t
+ 22 |     11 |      9 |    2 |           -1 | {12}                | t
+(22 rows)
+
 -- q10
-3
-5
-6
-9
-11
-15
-17
+SELECT id  FROM edge_table_vertices_pgr
+WHERE is_contracted = false
+ORDER BY id;
+ id 
+----
+  3
+  5
+  6
+  9
+ 11
+ 15
+ 17
+(7 rows)
+
 -- case1
-1|1|3|5|1|0
-2|2|6|11|1|1
-3|3|11|-1|0|2
+SELECT * FROM pgr_dijkstra(
+    $$
+    WITH
+    vertices_in_graph AS (
+        SELECT id  FROM edge_table_vertices_pgr WHERE is_contracted = false)
+    SELECT id, source, target, cost, reverse_cost 
+    FROM edge_table 
+    WHERE source IN (SELECT * FROM vertices_in_graph)
+    AND target IN (SELECT * FROM vertices_in_graph)
+    $$,
+    3, 11, false);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    3 |    5 |    1 |        0
+   2 |        2 |    6 |   11 |    1 |        1
+   3 |        3 |   11 |   -1 |    0 |        2
+(3 rows)
+
 -- case2
-1|1|3|2|1|0
-2|2|2|1|1|1
-3|3|1|-1|0|2
+SELECT * FROM pgr_dijkstra(
+    $$
+    WITH
+    expand_edges AS (SELECT id, unnest(contracted_vertices) AS vertex FROM edge_table),
+    expand1 AS (SELECT contracted_vertices FROM edge_table
+        WHERE id IN (SELECT id FROM expand_edges WHERE vertex = 1)),
+    vertices_in_graph AS (
+        SELECT id  FROM edge_table_vertices_pgr WHERE is_contracted = false
+        UNION
+        SELECT unnest(contracted_vertices) FROM expand1)
+    SELECT id, source, target, cost, reverse_cost
+    FROM edge_table
+    WHERE source IN (SELECT * FROM vertices_in_graph)
+    AND target IN (SELECT * FROM vertices_in_graph)
+    $$,
+    3, 1, false);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    3 |    2 |    1 |        0
+   2 |        2 |    2 |    1 |    1 |        1
+   3 |        3 |    1 |   -1 |    0 |        2
+(3 rows)
+
 -- case3
-1|1|7|6|1|0
-2|2|8|7|1|1
-3|3|5|10|1|2
-4|4|10|14|1|3
-5|5|13|-1|0|4
+SELECT * FROM pgr_dijkstra(
+    $$
+    WITH
+
+    expand_vertices AS (SELECT id, unnest(contracted_vertices) AS vertex FROM edge_table_vertices_pgr),
+    expand7 AS (SELECT contracted_vertices FROM edge_table_vertices_pgr
+        WHERE id IN (SELECT id FROM expand_vertices WHERE vertex = 7)),
+
+    expand_edges AS (SELECT id, unnest(contracted_vertices) AS vertex FROM edge_table),
+    expand13 AS (SELECT contracted_vertices FROM edge_table
+        WHERE id IN (SELECT id FROM expand_edges WHERE vertex = 13)),
+
+    vertices_in_graph AS (
+        SELECT id  FROM edge_table_vertices_pgr WHERE is_contracted = false
+        UNION
+        SELECT unnest(contracted_vertices) FROM expand13
+        UNION
+        SELECT unnest(contracted_vertices) FROM expand7)
+
+    SELECT id, source, target, cost, reverse_cost
+    FROM edge_table
+    WHERE source IN (SELECT * FROM vertices_in_graph)
+    AND target IN (SELECT * FROM vertices_in_graph)
+    $$,
+    7, 13, false);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    7 |    6 |    1 |        0
+   2 |        2 |    8 |    7 |    1 |        1
+   3 |        3 |    5 |   10 |    1 |        2
+   4 |        4 |   10 |   14 |    1 |        3
+   5 |        5 |   13 |   -1 |    0 |        4
+(5 rows)
+
 -- case4
-1|1|3|23|2|0
-2|2|5|7|1|2
-3|3|8|6|1|3
-4|4|7|-1|0|4
+SELECT * FROM  pgr_dijkstra(
+    $$
+    WITH
+    expand_vertices AS (SELECT id, unnest(contracted_vertices) AS vertex FROM edge_table_vertices_pgr),
+    expand7 AS (SELECT contracted_vertices FROM edge_table_vertices_pgr
+        WHERE id IN (SELECT id FROM expand_vertices WHERE vertex = 7)),
+    vertices_in_graph AS (
+        SELECT id  FROM edge_table_vertices_pgr WHERE is_contracted = false
+        UNION
+        SELECT unnest(contracted_vertices) FROM expand7)
+    SELECT id, source, target, cost, reverse_cost
+    FROM edge_table
+    WHERE source IN (SELECT * FROM vertices_in_graph)
+    AND target IN (SELECT * FROM vertices_in_graph)
+    $$,
+    3, 7, false);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    3 |   19 |    2 |        0
+   2 |        2 |    5 |    7 |    1 |        2
+   3 |        3 |    8 |    6 |    1 |        3
+   4 |        4 |    7 |   -1 |    0 |        4
+(4 rows)
+
 -- case5q1
-23|{1,2}
+WITH
+first_dijkstra AS (
+    SELECT * FROM  pgr_dijkstra(
+        $$
+        WITH
+        expand_vertices AS (SELECT id, unnest(contracted_vertices) AS vertex FROM edge_table_vertices_pgr),
+        expand7 AS (SELECT contracted_vertices FROM edge_table_vertices_pgr
+            WHERE id IN (SELECT id FROM expand_vertices WHERE vertex = 7)),
+        vertices_in_graph AS (
+            SELECT id  FROM edge_table_vertices_pgr WHERE is_contracted = false
+            UNION
+            SELECT unnest(contracted_vertices) FROM expand7)
+        SELECT id, source, target, cost, reverse_cost
+        FROM edge_table
+        WHERE source IN (SELECT * FROM vertices_in_graph)
+        AND target IN (SELECT * FROM vertices_in_graph)
+        $$,
+        3, 7, false))
+SELECT edge, contracted_vertices
+    FROM first_dijkstra JOIN edge_table
+    ON (edge = id)
+    WHERE is_contracted = true;
+ edge | contracted_vertices 
+------+---------------------
+   19 | {1,2}
+(1 row)
+
 -- case5q2
-1|1|3|2|1|0
-2|2|2|4|1|1
-3|3|5|7|1|2
-4|4|8|6|1|3
-5|5|7|-1|0|4
+SELECT * FROM pgr_dijkstra($$
+    WITH
+    -- This returns the results from case 2
+    first_dijkstra AS (
+        SELECT * FROM  pgr_dijkstra(
+            '
+            WITH
+            expand_vertices AS (SELECT id, unnest(contracted_vertices) AS vertex FROM edge_table_vertices_pgr),
+            expand7 AS (SELECT contracted_vertices FROM edge_table_vertices_pgr
+                WHERE id IN (SELECT id FROM expand_vertices WHERE vertex = 7)),
+            vertices_in_graph AS (
+                SELECT id  FROM edge_table_vertices_pgr WHERE is_contracted = false
+                UNION
+                SELECT unnest(contracted_vertices) FROM expand7)
+            SELECT id, source, target, cost, reverse_cost
+            FROM edge_table
+            WHERE source IN (SELECT * FROM vertices_in_graph)
+            AND target IN (SELECT * FROM vertices_in_graph)
+            ',
+            3, 7, false)),
+
+    -- edges that need expansion and the vertices to be expanded.
+    edges_to_expand AS (
+        SELECT edge, contracted_vertices
+        FROM first_dijkstra JOIN edge_table
+        ON (edge = id)
+        WHERE is_contracted = true),
+
+    vertices_in_graph AS (
+        -- the nodes of the contracted solution
+        SELECT node FROM first_dijkstra
+        UNION
+        -- the nodes of the expanding sections
+        SELECT unnest(contracted_vertices) FROM edges_to_expand)
+
+    SELECT id, source, target, cost, reverse_cost
+    FROM edge_table
+    WHERE source IN (SELECT * FROM vertices_in_graph)
+    AND target IN (SELECT * FROM vertices_in_graph)
+    -- not including the expanded edges
+    AND id NOT IN (SELECT edge FROM edges_to_expand)
+    $$,
+    3, 7, false);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    3 |    2 |    1 |        0
+   2 |        2 |    2 |    4 |    1 |        1
+   3 |        3 |    5 |    7 |    1 |        2
+   4 |        4 |    8 |    6 |    1 |        3
+   5 |        5 |    7 |   -1 |    0 |        4
+(5 rows)
+
 -- end
+ROLLBACK;
+ROLLBACK
diff --git a/src/contraction/test/doc-contraction.test.sql b/src/contraction/test/doc-contraction.test.sql
index a576b15..21046c7 100644
--- a/src/contraction/test/doc-contraction.test.sql
+++ b/src/contraction/test/doc-contraction.test.sql
@@ -1,5 +1,4 @@
 \echo -- q00
-SELECT id, source, target, cost, reverse_cost FROM edge_table;
 \echo -- q01
 
 SET client_min_messages TO ERROR;
diff --git a/src/contraction/test/expand_graph.result b/src/contraction/test/expand_graph.result
index f6f4086..070247e 100644
--- a/src/contraction/test/expand_graph.result
+++ b/src/contraction/test/expand_graph.result
@@ -1,78 +1,242 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 step 1: Initial edge table
-1|1|2|1|1
-2|2|3|-1|1
-3|3|4|-1|1
-4|2|5|1|1
-5|3|6|1|-1
-6|7|8|1|1
-7|8|5|1|1
-8|5|6|1|1
-9|6|9|1|1
-10|5|10|1|1
-11|6|11|1|-1
-12|10|11|1|-1
-13|11|12|1|-1
-14|10|13|1|1
-15|9|12|1|1
-16|4|9|1|1
-17|14|15|1|1
-18|16|17|1|1
+SELECT id, source, target, cost, reverse_cost FROM edge_table;
+ id | source | target | cost | reverse_cost 
+----+--------+--------+------+--------------
+  1 |      1 |      2 |    1 |            1
+  2 |      2 |      3 |   -1 |            1
+  3 |      3 |      4 |   -1 |            1
+  4 |      2 |      5 |    1 |            1
+  5 |      3 |      6 |    1 |           -1
+  6 |      7 |      8 |    1 |            1
+  7 |      8 |      5 |    1 |            1
+  8 |      5 |      6 |    1 |            1
+  9 |      6 |      9 |    1 |            1
+ 10 |      5 |     10 |    1 |            1
+ 11 |      6 |     11 |    1 |           -1
+ 12 |     10 |     11 |    1 |           -1
+ 13 |     11 |     12 |    1 |           -1
+ 14 |     10 |     13 |    1 |            1
+ 15 |      9 |     12 |    1 |            1
+ 16 |      4 |      9 |    1 |            1
+ 17 |     14 |     15 |    1 |            1
+ 18 |     16 |     17 |    1 |            1
+(18 rows)
+
 step 2: Initial vertex table
-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
+SELECT id FROM edge_table_vertices_pgr;
+ id 
+----
+  1
+  2
+  3
+  4
+  5
+  6
+  7
+  8
+  9
+ 10
+ 11
+ 12
+ 13
+ 14
+ 15
+ 16
+ 17
+(17 rows)
+
 step 3: Adding is_contracted column to edge_table......
+ALTER TABLE edge_table ADD is_contracted BOOLEAN DEFAULT false;
+ALTER TABLE
 step 4: Adding contracted_vertices column to edge_table.....
+ALTER TABLE edge_table ADD contracted_vertices integer[];
+ALTER TABLE
 step 5: Adding is_contracted column to edge_table......
+ALTER TABLE edge_table_vertices_pgr ADD is_contracted BOOLEAN DEFAULT false;
+ALTER TABLE
 step 6: Adding contracted_vertices column to edge_table.....
+ALTER TABLE edge_table_vertices_pgr ADD contracted_vertices integer[];
+ALTER TABLE
 step 7: Edge table after adding columns
-1|1|2|1|1|f|
-2|2|3|-1|1|f|
-3|3|4|-1|1|f|
-4|2|5|1|1|f|
-5|3|6|1|-1|f|
-6|7|8|1|1|f|
-7|8|5|1|1|f|
-8|5|6|1|1|f|
-9|6|9|1|1|f|
-10|5|10|1|1|f|
-11|6|11|1|-1|f|
-12|10|11|1|-1|f|
-13|11|12|1|-1|f|
-14|10|13|1|1|f|
-15|9|12|1|1|f|
-16|4|9|1|1|f|
-17|14|15|1|1|f|
-18|16|17|1|1|f|
+SELECT id, source, target, cost, reverse_cost, is_contracted, contracted_vertices FROM edge_table;
+ id | source | target | cost | reverse_cost | is_contracted | contracted_vertices 
+----+--------+--------+------+--------------+---------------+---------------------
+  1 |      1 |      2 |    1 |            1 | f             | 
+  2 |      2 |      3 |   -1 |            1 | f             | 
+  3 |      3 |      4 |   -1 |            1 | f             | 
+  4 |      2 |      5 |    1 |            1 | f             | 
+  5 |      3 |      6 |    1 |           -1 | f             | 
+  6 |      7 |      8 |    1 |            1 | f             | 
+  7 |      8 |      5 |    1 |            1 | f             | 
+  8 |      5 |      6 |    1 |            1 | f             | 
+  9 |      6 |      9 |    1 |            1 | f             | 
+ 10 |      5 |     10 |    1 |            1 | f             | 
+ 11 |      6 |     11 |    1 |           -1 | f             | 
+ 12 |     10 |     11 |    1 |           -1 | f             | 
+ 13 |     11 |     12 |    1 |           -1 | f             | 
+ 14 |     10 |     13 |    1 |            1 | f             | 
+ 15 |      9 |     12 |    1 |            1 | f             | 
+ 16 |      4 |      9 |    1 |            1 | f             | 
+ 17 |     14 |     15 |    1 |            1 | f             | 
+ 18 |     16 |     17 |    1 |            1 | f             | 
+(18 rows)
+
 step 8: Vertex table after adding columns
-1|f|
-2|f|
-3|f|
-4|f|
-5|f|
-6|f|
-7|f|
-8|f|
-9|f|
-10|f|
-11|f|
-12|f|
-13|f|
-14|f|
-15|f|
-16|f|
-17|f|
+SELECT id, is_contracted, contracted_vertices FROM edge_table_vertices_pgr;
+ id | is_contracted | contracted_vertices 
+----+---------------+---------------------
+  1 | f             | 
+  2 | f             | 
+  3 | f             | 
+  4 | f             | 
+  5 | f             | 
+  6 | f             | 
+  7 | f             | 
+  8 | f             | 
+  9 | f             | 
+ 10 | f             | 
+ 11 | f             | 
+ 12 | f             | 
+ 13 | f             | 
+ 14 | f             | 
+ 15 | f             | 
+ 16 | f             | 
+ 17 | f             | 
+(17 rows)
+
+CREATE OR REPLACE FUNCTION pgr_update_contraction_columns(
+	edge_table text,
+	forbidden_vertices BIGINT[],
+	contraction_order integer[],
+	max_cycles integer,
+	directed BOOLEAN
+)
+RETURNS integer AS $total$
+declare
+total integer;
+contracted_vertex integer;
+query text;
+update_query text;
+split_query text;
+insert_query text;
+row record;
+split_row record;
+BEGIN
+total := 0;
+query := 'SELECT * FROM pgr_contractGraph('|| quote_literal(edge_table)||', ' || quote_literal(forbidden_vertices)||', ' || quote_literal(contraction_order)||', ' || quote_literal(max_cycles)||', ' || quote_literal(directed) || ')';
+    FOR row IN EXECUTE(query)
+    LOOP
+        
+        -- contracted_vertices_array := row.contracted_vertices;
+        -- If it is a vertex we update the two columns of the vertex table 
+        IF row.type = 'v' THEN
+            total := total + 1;
+            -- raise notice 'vertex';
+            update_query := 'UPDATE edge_table_vertices_pgr SET contracted_vertices = array_append(contracted_vertices, ';  
+            FOREACH contracted_vertex IN ARRAY row.contracted_vertices
+            LOOP
+                EXECUTE update_query || quote_literal(contracted_vertex) 
+                || ') WHERE id = ' || quote_literal(row.id);
+                EXECUTE 'UPDATE edge_table_vertices_pgr SET is_contracted = true WHERE id = '
+                || quote_literal(contracted_vertex);
+                -- raise notice 'cv: %', contracted_vertex;
+            END LOOP;
+        -- If it is an edge we insert a new entry to the edge table 
+        ELSEIF row.type = 'e' THEN
+            total := total + 1;
+            -- raise notice 'edge';
+            insert_query := 'INSERT INTO edge_table(id, source, target, cost, reverse_cost, is_contracted, contracted_vertices) VALUES ('
+            || quote_literal(row.id)|| ', '
+            || quote_literal(row.source)|| ', '
+            || quote_literal(row.target)|| ', '
+            || quote_literal(row.cost)|| ', '
+            || quote_literal(-1)|| ', '
+            || quote_literal(true)|| ', '
+            || quote_literal(row.contracted_vertices)
+            || ')';
+            EXECUTE insert_query;
+            FOREACH contracted_vertex IN ARRAY row.contracted_vertices
+            LOOP
+            EXECUTE 'UPDATE edge_table_vertices_pgr SET is_contracted = true WHERE id = '
+                || quote_literal(contracted_vertex);
+            END LOOP;
+        END IF;
+        -- raise notice 'id: %, type: %, cv: %',row.id, row.type, row.contracted_vertices;
+    END LOOP;
+
+   RETURN total;
+   END;
+   $total$ LANGUAGE plpgsql;
+CREATE FUNCTION
+CREATE OR REPLACE FUNCTION pgr_expand_contracted_graph(
+    original_edge_table text,
+    original_vertex_table text,
+    contracted_edge_table text,
+    contracted_vertex_table text
+)
+RETURNS integer AS $total$
+declare
+total integer;
+contracted_vertex integer;
+query text;
+row record;
+BEGIN
+    total := 0;
+    query := 'SELECT * FROM '
+    || quote_ident(contracted_edge_table)
+    ||' WHERE id < 0 ';
+    FOR row IN EXECUTE(query)
+    LOOP
+        -- Inserting the contracted vertices into the vertex table
+        FOREACH contracted_vertex IN ARRAY row.contracted_vertices
+        LOOP
+            EXECUTE 'INSERT INTO ' || quote_ident(contracted_vertex_table) || '(id, is_contracted)' ||' VALUES ('
+            || quote_literal(contracted_vertex) || ', false);';   
+        END LOOP;
+        -- Adding the edges(id < 0) between these vertices to the edge table
+        EXECUTE 'INSERT INTO ' 
+        || quote_ident(contracted_edge_table) 
+        || ' SELECT * FROM ' || quote_ident(original_edge_table)
+        || ' WHERE source = ANY(' || quote_literal(row.contracted_vertices) || ')'
+        || ' OR target = ANY(' || quote_literal(row.contracted_vertices) || ')'
+        || ' AND id > 0';
+
+    END LOOP;
+
+    -- Removing all those edges with id < 0
+    EXECUTE 'DELETE FROM ' 
+    || quote_ident(contracted_edge_table)
+    || ' WHERE id < 0';
+
+    query := 'SELECT * FROM '|| quote_ident(contracted_vertex_table)||' WHERE array_length(contracted_vertices, 1) > 0';
+    FOR row IN EXECUTE(query)
+    LOOP
+        -- Inserting the contracted vertices into the vertex table
+        FOREACH contracted_vertex IN ARRAY row.contracted_vertices
+        LOOP
+            EXECUTE 'INSERT INTO ' || quote_ident(contracted_vertex_table) || '(id, is_contracted)' ||' VALUES ('
+            || quote_literal(contracted_vertex) || ', false);';    
+        END LOOP;
+        -- Adding the edges(id < 0) between these vertices to the edge table
+        EXECUTE 'INSERT INTO ' 
+        || quote_ident(contracted_edge_table) 
+        || ' SELECT * FROM ' || quote_ident(original_edge_table)
+        || ' WHERE source = ANY(' || quote_literal(row.contracted_vertices) || ')'
+        || ' OR target = ANY(' || quote_literal(row.contracted_vertices) || ')'
+        || ' AND id > 0';
+    EXECUTE 'UPDATE '
+    || quote_ident(contracted_vertex_table)
+    || ' SET contracted_vertices = NULL' 
+    || ' WHERE array_length(contracted_vertices, 1) > 0 ';
+    END LOOP;
+
+RETURN total;
+END;
+   $total$ LANGUAGE plpgsql;
+CREATE FUNCTION
+ROLLBACK;
+ROLLBACK
diff --git a/src/contraction/test/expand_graph_without_function.result b/src/contraction/test/expand_graph_without_function.result
index 4cb2078..a28103e 100644
--- a/src/contraction/test/expand_graph_without_function.result
+++ b/src/contraction/test/expand_graph_without_function.result
@@ -1,78 +1,152 @@
-step 1: Initial edge table
-1|1|2|1|1
-2|2|3|-1|1
-3|3|4|-1|1
-4|2|5|1|1
-5|3|6|1|-1
-6|7|8|1|1
-7|8|5|1|1
-8|5|6|1|1
-9|6|9|1|1
-10|5|10|1|1
-11|6|11|1|-1
-12|10|11|1|-1
-13|11|12|1|-1
-14|10|13|1|1
-15|9|12|1|1
-16|4|9|1|1
-17|14|15|1|1
-18|16|17|1|1
-step 2: Initial vertex table
-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-step 3: Adding is_contracted column to edge_table......
-step 4: Adding contracted_vertices column to edge_table.....
-step 5: Adding is_contracted column to edge_table......
-step 6: Adding contracted_vertices column to edge_table.....
-step 7: Edge table after adding columns
-1|1|2|1|1|f|
-2|2|3|-1|1|f|
-3|3|4|-1|1|f|
-4|2|5|1|1|f|
-5|3|6|1|-1|f|
-6|7|8|1|1|f|
-7|8|5|1|1|f|
-8|5|6|1|1|f|
-9|6|9|1|1|f|
-10|5|10|1|1|f|
-11|6|11|1|-1|f|
-12|10|11|1|-1|f|
-13|11|12|1|-1|f|
-14|10|13|1|1|f|
-15|9|12|1|1|f|
-16|4|9|1|1|f|
-17|14|15|1|1|f|
-18|16|17|1|1|f|
-step 8: Vertex table after adding columns
-1|f|
-2|f|
-3|f|
-4|f|
-5|f|
-6|f|
-7|f|
-8|f|
-9|f|
-10|f|
-11|f|
-12|f|
-13|f|
-14|f|
-15|f|
-16|f|
-17|f|
\ No newline at end of file
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+SELECT 'step 1: Initial edge table';
+          ?column?          
+----------------------------
+ step 1: Initial edge table
+(1 row)
+
+SELECT id, source, target, cost, reverse_cost FROM edge_table;
+ id | source | target | cost | reverse_cost 
+----+--------+--------+------+--------------
+  1 |      1 |      2 |    1 |            1
+  2 |      2 |      3 |   -1 |            1
+  3 |      3 |      4 |   -1 |            1
+  4 |      2 |      5 |    1 |            1
+  5 |      3 |      6 |    1 |           -1
+  6 |      7 |      8 |    1 |            1
+  7 |      8 |      5 |    1 |            1
+  8 |      5 |      6 |    1 |            1
+  9 |      6 |      9 |    1 |            1
+ 10 |      5 |     10 |    1 |            1
+ 11 |      6 |     11 |    1 |           -1
+ 12 |     10 |     11 |    1 |           -1
+ 13 |     11 |     12 |    1 |           -1
+ 14 |     10 |     13 |    1 |            1
+ 15 |      9 |     12 |    1 |            1
+ 16 |      4 |      9 |    1 |            1
+ 17 |     14 |     15 |    1 |            1
+ 18 |     16 |     17 |    1 |            1
+(18 rows)
+
+SELECT 'step 2: Initial vertex table';
+           ?column?           
+------------------------------
+ step 2: Initial vertex table
+(1 row)
+
+SELECT id FROM edge_table_vertices_pgr;
+ id 
+----
+  1
+  2
+  3
+  4
+  5
+  6
+  7
+  8
+  9
+ 10
+ 11
+ 12
+ 13
+ 14
+ 15
+ 16
+ 17
+(17 rows)
+
+SELECT 'step 3: Adding is_contracted column to edge_table......';
+                        ?column?                         
+---------------------------------------------------------
+ step 3: Adding is_contracted column to edge_table......
+(1 row)
+
+ALTER TABLE edge_table ADD is_contracted BOOLEAN DEFAULT false;
+ALTER TABLE
+SELECT 'step 4: Adding contracted_vertices column to edge_table.....';
+                           ?column?                           
+--------------------------------------------------------------
+ step 4: Adding contracted_vertices column to edge_table.....
+(1 row)
+
+ALTER TABLE edge_table ADD contracted_vertices integer[];
+ALTER TABLE
+SELECT 'step 5: Adding is_contracted column to edge_table......';
+                        ?column?                         
+---------------------------------------------------------
+ step 5: Adding is_contracted column to edge_table......
+(1 row)
+
+ALTER TABLE edge_table_vertices_pgr ADD is_contracted BOOLEAN DEFAULT false;
+ALTER TABLE
+SELECT 'step 6: Adding contracted_vertices column to edge_table.....';
+                           ?column?                           
+--------------------------------------------------------------
+ step 6: Adding contracted_vertices column to edge_table.....
+(1 row)
+
+ALTER TABLE edge_table_vertices_pgr ADD contracted_vertices integer[];
+ALTER TABLE
+SELECT 'step 7: Edge table after adding columns';
+                ?column?                 
+-----------------------------------------
+ step 7: Edge table after adding columns
+(1 row)
+
+SELECT id, source, target, cost, reverse_cost, is_contracted, contracted_vertices FROM edge_table;
+ id | source | target | cost | reverse_cost | is_contracted | contracted_vertices 
+----+--------+--------+------+--------------+---------------+---------------------
+  1 |      1 |      2 |    1 |            1 | f             | 
+  2 |      2 |      3 |   -1 |            1 | f             | 
+  3 |      3 |      4 |   -1 |            1 | f             | 
+  4 |      2 |      5 |    1 |            1 | f             | 
+  5 |      3 |      6 |    1 |           -1 | f             | 
+  6 |      7 |      8 |    1 |            1 | f             | 
+  7 |      8 |      5 |    1 |            1 | f             | 
+  8 |      5 |      6 |    1 |            1 | f             | 
+  9 |      6 |      9 |    1 |            1 | f             | 
+ 10 |      5 |     10 |    1 |            1 | f             | 
+ 11 |      6 |     11 |    1 |           -1 | f             | 
+ 12 |     10 |     11 |    1 |           -1 | f             | 
+ 13 |     11 |     12 |    1 |           -1 | f             | 
+ 14 |     10 |     13 |    1 |            1 | f             | 
+ 15 |      9 |     12 |    1 |            1 | f             | 
+ 16 |      4 |      9 |    1 |            1 | f             | 
+ 17 |     14 |     15 |    1 |            1 | f             | 
+ 18 |     16 |     17 |    1 |            1 | f             | 
+(18 rows)
+
+SELECT 'step 8: Vertex table after adding columns';
+                 ?column?                  
+-------------------------------------------
+ step 8: Vertex table after adding columns
+(1 row)
+
+SELECT id, is_contracted, contracted_vertices FROM edge_table_vertices_pgr;
+ id | is_contracted | contracted_vertices 
+----+---------------+---------------------
+  1 | f             | 
+  2 | f             | 
+  3 | f             | 
+  4 | f             | 
+  5 | f             | 
+  6 | f             | 
+  7 | f             | 
+  8 | f             | 
+  9 | f             | 
+ 10 | f             | 
+ 11 | f             | 
+ 12 | f             | 
+ 13 | f             | 
+ 14 | f             | 
+ 15 | f             | 
+ 16 | f             | 
+ 17 | f             | 
+(17 rows)
+
+ROLLBACK;
+ROLLBACK
diff --git a/src/contraction/test/proof_of_concept.result b/src/contraction/test/proof_of_concept.result
index 480b539..1e9f91c 100644
--- a/src/contraction/test/proof_of_concept.result
+++ b/src/contraction/test/proof_of_concept.result
@@ -1,47 +1,137 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 Adding an additional column to store if its part of the contracted graph
+ALTER TABLE edge_table ADD is_contracted BOOLEAN DEFAULT false;
+ALTER TABLE
 Adding a new edge joining vertices 3 and 5 with cost=2 to the edge table
+INSERT INTO edge_table(id, source, target, cost, reverse_cost, is_contracted)
+VALUES (19, 3, 5, 2, 2, true);
+INSERT 0 1
 Adding a new edge joining vertices 3 and 9 with cost=2 to the edge table
+INSERT INTO edge_table(id, source, target, cost, reverse_cost, is_contracted)
+VALUES (20, 3, 9, 2, 2, true);
+INSERT 0 1
 Adding a new edge joining vertices 5 and 11 with cost=2 to the edge table
+INSERT INTO edge_table(id, source, target, cost, reverse_cost, is_contracted)
+VALUES (21, 5, 11, 2, 2, true);
+INSERT 0 1
 Adding a new edge joining vertices 9 and 11 with cost=2 to the edge table
+INSERT INTO edge_table(id, source, target, cost, reverse_cost, is_contracted)
+VALUES (22, 9, 11, 2, 2, true);
+INSERT 0 1
 Case 1: Both source and target belong to the contracted graph.
 We are going to route from 3 to 11
 Since 3 and 11 both are in the contracted graph we need not add any vertices.
-1|1|3|5|1|0
-2|2|6|11|1|1
-3|3|11|-1|0|2
+SELECT * FROM
+pgr_dijkstra($$
+    SELECT id, source, target, cost, reverse_cost
+    FROM edge_table
+    WHERE source IN (3, 5, 6, 9, 11, 15, 17)
+        AND target IN (3, 5, 6, 9, 11, 15, 17)$$,
+    3, 11, false);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    3 |    5 |    1 |        0
+   2 |        2 |    6 |   11 |    1 |        1
+   3 |        3 |   11 |   -1 |    0 |        2
+(3 rows)
+
 Case 2: source belongs to a contracted graph, while target belongs to a vertex subgraph.
 We are going to route from 3 to 7
 Since 7 is in the contracted subgraph of vertex 5 we add {7, 8} to the vertex set, so the vertex set becomes (3, 5, 6, 7, 8, 9, 11, 15, 17)
-1|1|3|19|2|0
-2|2|5|7|1|2
-3|3|8|6|1|3
-4|4|7|-1|0|4
+SELECT * FROM pgr_dijkstra($$
+    SELECT id, source, target, cost, reverse_cost
+    FROM edge_table
+    WHERE source IN (3, 5, 6, 9, 11, 15, 17,   7, 8)
+        AND target IN (3, 5, 6, 9, 11, 15, 17,   7, 8)$$,
+    3, 7, false);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    3 |   19 |    2 |        0
+   2 |        2 |    5 |    7 |    1 |        2
+   3 |        3 |    8 |    6 |    1 |        3
+   4 |        4 |    7 |   -1 |    0 |        4
+(4 rows)
+
 Case 3: source belongs to a contracted graph, while target belongs to a edge subgraph.
 We are going to route from 3 to 13
 Since 13 is in the contracted subgraph of edge (5, 11) we add {10, 13} to the vertex set, so the vertex set becomes (3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17)
-1|1|3|5|1|0
-2|2|6|11|1|1
-3|3|11|12|1|2
-4|4|10|14|1|3
-5|5|13|-1|0|4
+SELECT * FROM pgr_dijkstra($$
+    SELECT id, source, target, cost, reverse_cost
+    FROM edge_table
+    WHERE source IN (3, 5, 6, 9, 11, 15, 17,    10, 13)
+        AND target IN (3, 5, 6, 9, 11, 15, 17,    10, 13)$$,
+    3, 13, false);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    3 |    5 |    1 |        0
+   2 |        2 |    6 |   11 |    1 |        1
+   3 |        3 |   11 |   12 |    1 |        2
+   4 |        4 |   10 |   14 |    1 |        3
+   5 |        5 |   13 |   -1 |    0 |        4
+(5 rows)
+
 Case 4: source belongs to a vertex subgraph, while target belongs to a edge subgraph.
 We are going to route from 7 to 13
 Since 13 is in the contracted subgraph of edge (5, 11) we add {10, 13} to the vertex set, and since 7 is in the contracted subgraph of vertex 5 we add {7, 8} to the vertex sets (3, 5, 6, 7, 8, 9, 11, 15, 17)
-1|1|7|6|1|0
-2|2|8|7|1|1
-3|3|5|10|1|2
-4|4|10|14|1|3
-5|5|13|-1|0|4
-Case 5: The path contains a shortcut. 
+SELECT * FROM pgr_dijkstra($$
+    SELECT id, source, target, cost, reverse_cost
+    FROM edge_table
+    WHERE source IN (3, 5, 6, 9, 11, 15, 17,    7, 8,   10, 13)
+        AND target IN (3, 5, 6, 9, 11, 15, 17,   7, 8,   10, 13)$$,
+    7, 13, false);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    7 |    6 |    1 |        0
+   2 |        2 |    8 |    7 |    1 |        1
+   3 |        3 |    5 |   10 |    1 |        2
+   4 |        4 |   10 |   14 |    1 |        3
+   5 |        5 |   13 |   -1 |    0 |        4
+(5 rows)
+
+Case 5: The path contains a shortcut.
 We are going to route from 3 to 9
 Since 3 and 9 both are in the contracted graph we need not add any vertices.
-1|1|3|20|2|0
-2|2|9|-1|0|2
-19|3|5|2|2|t
-20|3|9|2|2|t
-21|5|11|2|2|t
-22|9|11|2|2|t
+SELECT * FROM pgr_dijkstra($$
+    SELECT id, source, target, cost, reverse_cost
+    FROM edge_table
+    WHERE source IN (3, 5, 6, 7, 8, 9, 11, 15, 17)
+        AND target IN (3, 5, 6, 7, 8, 9, 11, 15, 17)$$,
+    3, 9, false);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    3 |   20 |    2 |        0
+   2 |        2 |    9 |   -1 |    0 |        2
+(2 rows)
+
+SELECT id, source, target, cost, reverse_cost, is_contracted
+FROM edge_table
+WHERE is_contracted = true
+ORDER BY id;
+ id | source | target | cost | reverse_cost | is_contracted 
+----+--------+--------+------+--------------+---------------
+ 19 |      3 |      5 |    2 |            2 | t
+ 20 |      3 |      9 |    2 |            2 | t
+ 21 |      5 |     11 |    2 |            2 | t
+ 22 |      9 |     11 |    2 |            2 | t
+(4 rows)
+
 This implies that it is a shortcut and should be expanded
-1|1|3|5|1|0
-2|2|6|9|1|1
-3|3|9|-1|0|2
\ No newline at end of file
+SELECT * FROM pgr_dijkstra($$
+    SELECT id, source, target, cost, reverse_cost
+    FROM edge_table
+    WHERE source IN (3, 5, 6, 7, 8, 9, 11, 15, 17)
+        AND target IN (3, 5, 6, 7, 8, 9, 11, 15, 17)
+        AND is_contracted=false$$,
+    3, 9, false);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    3 |    5 |    1 |        0
+   2 |        2 |    6 |    9 |    1 |        1
+   3 |        3 |    9 |   -1 |    0 |        2
+(3 rows)
+
+ROLLBACK;
+ROLLBACK
diff --git a/src/contraction/test/proof_of_concept.test.sql b/src/contraction/test/proof_of_concept.test.sql
index 4d045f1..a933d9e 100644
--- a/src/contraction/test/proof_of_concept.test.sql
+++ b/src/contraction/test/proof_of_concept.test.sql
@@ -3,27 +3,27 @@
 ALTER TABLE edge_table ADD is_contracted BOOLEAN DEFAULT false;
 
 \echo Adding a new edge joining vertices 3 and 5 with cost=2 to the edge table
-INSERT INTO edge_table(id, source, target, cost, reverse_cost, is_contracted) 
+INSERT INTO edge_table(id, source, target, cost, reverse_cost, is_contracted)
 VALUES (19, 3, 5, 2, 2, true);
 
 \echo Adding a new edge joining vertices 3 and 9 with cost=2 to the edge table
-INSERT INTO edge_table(id, source, target, cost, reverse_cost, is_contracted) 
+INSERT INTO edge_table(id, source, target, cost, reverse_cost, is_contracted)
 VALUES (20, 3, 9, 2, 2, true);
 
 \echo Adding a new edge joining vertices 5 and 11 with cost=2 to the edge table
-INSERT INTO edge_table(id, source, target, cost, reverse_cost, is_contracted) 
+INSERT INTO edge_table(id, source, target, cost, reverse_cost, is_contracted)
 VALUES (21, 5, 11, 2, 2, true);
 
 \echo Adding a new edge joining vertices 9 and 11 with cost=2 to the edge table
-INSERT INTO edge_table(id, source, target, cost, reverse_cost, is_contracted) 
+INSERT INTO edge_table(id, source, target, cost, reverse_cost, is_contracted)
 VALUES (22, 9, 11, 2, 2, true);
 
 
 
 \echo Case 1: Both source and target belong to the contracted graph.
 \echo We are going to route from 3 to 11
-\echo  Since 3 and 11 both are in the contracted graph we need not add any vertices. 
-SELECT * FROM 
+\echo  Since 3 and 11 both are in the contracted graph we need not add any vertices.
+SELECT * FROM
 pgr_dijkstra($$
     SELECT id, source, target, cost, reverse_cost
     FROM edge_table
@@ -42,47 +42,47 @@ SELECT * FROM pgr_dijkstra($$
         AND target IN (3, 5, 6, 9, 11, 15, 17,   7, 8)$$,
     3, 7, false);
 
-\echo Case 3: source belongs to a contracted graph, while target belongs to a edge subgraph. 
+\echo Case 3: source belongs to a contracted graph, while target belongs to a edge subgraph.
 \echo We are going to route from 3 to 13
 \echo  Since 13 is in the contracted subgraph of edge (5, 11) we add {10, 13} to the vertex set, so the vertex set becomes (3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17)
 SELECT * FROM pgr_dijkstra($$
     SELECT id, source, target, cost, reverse_cost
     FROM edge_table
-    WHERE source IN (3, 5, 6, 9, 11, 15, 17,    10, 13) 
+    WHERE source IN (3, 5, 6, 9, 11, 15, 17,    10, 13)
         AND target IN (3, 5, 6, 9, 11, 15, 17,    10, 13)$$,
     3, 13, false);
 
-\echo Case 4: source belongs to a vertex subgraph, while target belongs to a edge subgraph. 
+\echo Case 4: source belongs to a vertex subgraph, while target belongs to a edge subgraph.
 \echo We are going to route from 7 to 13
 \echo Since 13 is in the contracted subgraph of edge (5, 11) we add {10, 13} to the vertex set, and since 7 is in the contracted subgraph of vertex 5 we add {7, 8} to the vertex sets (3, 5, 6, 7, 8, 9, 11, 15, 17)
 SELECT * FROM pgr_dijkstra($$
     SELECT id, source, target, cost, reverse_cost
-    FROM edge_table 
-    WHERE source IN (3, 5, 6, 9, 11, 15, 17,    7, 8,   10, 13) 
+    FROM edge_table
+    WHERE source IN (3, 5, 6, 9, 11, 15, 17,    7, 8,   10, 13)
         AND target IN (3, 5, 6, 9, 11, 15, 17,   7, 8,   10, 13)$$,
     7, 13, false);
 
 \echo Case 5: The path contains a shortcut.
 \echo We are going to route from 3 to 9
-\echo Since 3 and 9 both are in the contracted graph we need not add any vertices. 
+\echo Since 3 and 9 both are in the contracted graph we need not add any vertices.
 SELECT * FROM pgr_dijkstra($$
-    SELECT id, source, target, cost, reverse_cost 
+    SELECT id, source, target, cost, reverse_cost
     FROM edge_table
     WHERE source IN (3, 5, 6, 7, 8, 9, 11, 15, 17)
         AND target IN (3, 5, 6, 7, 8, 9, 11, 15, 17)$$,
     3, 9, false);
 
-SELECT id, source, target, cost, reverse_cost, is_contracted 
-FROM edge_table 
-WHERE is_contracted = true 
+SELECT id, source, target, cost, reverse_cost, is_contracted
+FROM edge_table
+WHERE is_contracted = true
 ORDER BY id;
 
 \echo This implies that it is a shortcut and should be expanded
 SELECT * FROM pgr_dijkstra($$
-    SELECT id, source, target, cost, reverse_cost 
-    FROM edge_table 
-    WHERE source IN (3, 5, 6, 7, 8, 9, 11, 15, 17) 
-        AND target IN (3, 5, 6, 7, 8, 9, 11, 15, 17) 
+    SELECT id, source, target, cost, reverse_cost
+    FROM edge_table
+    WHERE source IN (3, 5, 6, 7, 8, 9, 11, 15, 17)
+        AND target IN (3, 5, 6, 7, 8, 9, 11, 15, 17)
         AND is_contracted=false$$,
     3, 9, false);
 
diff --git a/src/contraction/test/proof_of_concept_1.result b/src/contraction/test/proof_of_concept_1.result
index a414eeb..8bf02ff 100644
--- a/src/contraction/test/proof_of_concept_1.result
+++ b/src/contraction/test/proof_of_concept_1.result
@@ -1,68 +1,135 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 Adding an additional column to store if its part of the contracted graph
+ALTER TABLE edge_table ADD is_contracted BOOLEAN DEFAULT false;
+ALTER TABLE
 Adding a new edges joining vertices 3 and 5 with cost=2 to the edge table
+INSERT INTO edge_table(source, target, cost, reverse_cost, is_contracted) 
+VALUES (3, 5, 2, 2, true);
+INSERT 0 1
 Adding a new edges joining vertices 3 and 9 with cost=2 to the edge table
+INSERT INTO edge_table(source, target, cost, reverse_cost, is_contracted) 
+VALUES (3, 9, 2, 2, true);
+INSERT 0 1
 Adding a new edges joining vertices 5 and 11 with cost=2 to the edge table
+INSERT INTO edge_table(source, target, cost, reverse_cost, is_contracted) 
+VALUES (5, 11, 2, 2, true);
+INSERT 0 1
 Adding a new edges joining vertices 9 and 11 with cost=2 to the edge table
+INSERT INTO edge_table(source, target, cost, reverse_cost, is_contracted) 
+VALUES (9, 11, 2, 2, true);
+INSERT 0 1
 Case 1: Both source and target belong to the contracted graph.
 We are going to route from 3 to 11
 Since 3 and 11 both are in the contracted graph we need not add any vertices.
-1|1|3|5|1|0
-2|2|6|11|1|1
-3|3|11|-1|0|2
+SELECT * FROM 
+pgr_dijkstra('SELECT id, source, target, cost, reverse_cost FROM edge_table where source IN (3, 5, 6, 9, 11, 15, 17) AND target IN (3, 5, 6, 9, 11, 15, 17) AND is_contracted=false',
+3, 11, false);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    3 |    5 |    1 |        0
+   2 |        2 |    6 |   11 |    1 |        1
+   3 |        3 |   11 |   -1 |    0 |        2
+(3 rows)
+
 Case 2: source belongs to a contracted graph, while target belongs to a vertex subgraph.
 We are going to route from 3 to 7
 Since 7 is in the contracted subgraph of vertex 5 we add {7, 8} to the vertex set, so the vertex set becomes (3, 5, 6, 7, 8, 9, 11, 15, 17)
-1|1|3|5|1|0
-2|2|6|8|1|1
-3|3|5|7|1|2
-4|4|8|6|1|3
-5|5|7|-1|0|4
+SELECT * FROM 
+pgr_dijkstra('SELECT id, source, target, cost, reverse_cost FROM edge_table where source IN (3, 5, 6, 9, 11, 15, 17,   7, 8)	 AND target IN (3, 5, 6, 9, 11, 15, 17,   7, 8) AND is_contracted=false',
+3, 7, false);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    3 |    5 |    1 |        0
+   2 |        2 |    6 |    8 |    1 |        1
+   3 |        3 |    5 |    7 |    1 |        2
+   4 |        4 |    8 |    6 |    1 |        3
+   5 |        5 |    7 |   -1 |    0 |        4
+(5 rows)
+
 Case 3: source belongs to a contracted graph, while target belongs to a edge subgraph.
 We are going to route from 3 to 13
 Since 13 is in the contracted subgraph of edge (5, 11) we add {10, 13} to the vertex set, so the vertex set becomes (3, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17)
-1|1|3|5|1|0
-2|2|6|8|1|1
-3|3|5|10|1|2
-4|4|10|14|1|3
-5|5|13|-1|0|4
+SELECT * FROM 
+pgr_dijkstra('SELECT id, source, target, cost, reverse_cost FROM edge_table where source IN (3, 5, 6, 9, 11, 15, 17,    10, 13) AND target IN (3, 5, 6, 9, 11, 15, 17,    10, 13) AND is_contracted=false',
+3, 13, false);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    3 |    5 |    1 |        0
+   2 |        2 |    6 |    8 |    1 |        1
+   3 |        3 |    5 |   10 |    1 |        2
+   4 |        4 |   10 |   14 |    1 |        3
+   5 |        5 |   13 |   -1 |    0 |        4
+(5 rows)
+
 Case 4: source belongs to a vertex subgraph, while target belongs to a edge subgraph.
 We are going to route from 7 to 13
 Since 13 is in the contracted subgraph of edge (5, 11) we add {10, 13} to the vertex set, and since 7 is in the contracted subgraph of vertex 5 we add {7, 8} to the vertex sets (3, 5, 6, 7, 8, 9, 11, 15, 17)
-1|1|7|6|1|0
-2|2|8|7|1|1
-3|3|5|10|1|2
-4|4|10|14|1|3
-5|5|13|-1|0|4
+SELECT * FROM 
+pgr_dijkstra('SELECT id, source, target, cost, reverse_cost FROM edge_table where source IN (3, 5, 6, 9, 11, 15, 17,    7, 8,   10, 13) AND target IN (3, 5, 6, 9, 11, 15, 17,    7, 8,   10, 13) AND is_contracted=false',
+7, 13, false);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    7 |    6 |    1 |        0
+   2 |        2 |    8 |    7 |    1 |        1
+   3 |        3 |    5 |   10 |    1 |        2
+   4 |        4 |   10 |   14 |    1 |        3
+   5 |        5 |   13 |   -1 |    0 |        4
+(5 rows)
+
 Case 5: The path contains a shortcut.
- 
+
 We are going to route from 3 to 9
 Since 3 and 9 both are in the contracted graph we need not add any vertices.
-1|1|3|5|1|0
-2|2|6|9|1|1
-3|3|9|-1|0|2
-1|1|2|1|1|f
-2|2|3|-1|1|f
-3|3|4|-1|1|f
-4|2|5|1|1|f
-5|3|6|1|-1|f
-6|7|8|1|1|f
-7|8|5|1|1|f
-8|5|6|1|1|f
-9|6|9|1|1|f
-10|5|10|1|1|f
-11|6|11|1|-1|f
-12|10|11|1|-1|f
-13|11|12|1|-1|f
-14|10|13|1|1|f
-15|9|12|1|1|f
-16|4|9|1|1|f
-17|14|15|1|1|f
-18|16|17|1|1|f
-19|3|5|2|2|t
-20|3|9|2|2|t
-21|5|11|2|2|t
-22|9|11|2|2|t
+SELECT * FROM 
+pgr_dijkstra('SELECT id, source, target, cost, reverse_cost FROM edge_table where source IN (3, 5, 6, 7, 8, 9, 11, 15, 17) AND target IN (3, 5, 6, 7, 8, 9, 11, 15, 17) AND is_contracted=false',
+3, 9, false);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    3 |    5 |    1 |        0
+   2 |        2 |    6 |    9 |    1 |        1
+   3 |        3 |    9 |   -1 |    0 |        2
+(3 rows)
+
+SELECT id, source, target, cost, reverse_cost, is_contracted FROM edge_table ORDER BY id;
+ id | source | target | cost | reverse_cost | is_contracted 
+----+--------+--------+------+--------------+---------------
+  1 |      1 |      2 |    1 |            1 | f
+  2 |      2 |      3 |   -1 |            1 | f
+  3 |      3 |      4 |   -1 |            1 | f
+  4 |      2 |      5 |    1 |            1 | f
+  5 |      3 |      6 |    1 |           -1 | f
+  6 |      7 |      8 |    1 |            1 | f
+  7 |      8 |      5 |    1 |            1 | f
+  8 |      5 |      6 |    1 |            1 | f
+  9 |      6 |      9 |    1 |            1 | f
+ 10 |      5 |     10 |    1 |            1 | f
+ 11 |      6 |     11 |    1 |           -1 | f
+ 12 |     10 |     11 |    1 |           -1 | f
+ 13 |     11 |     12 |    1 |           -1 | f
+ 14 |     10 |     13 |    1 |            1 | f
+ 15 |      9 |     12 |    1 |            1 | f
+ 16 |      4 |      9 |    1 |            1 | f
+ 17 |     14 |     15 |    1 |            1 | f
+ 18 |     16 |     17 |    1 |            1 | f
+ 23 |      3 |      5 |    2 |            2 | t
+ 24 |      3 |      9 |    2 |            2 | t
+ 25 |      5 |     11 |    2 |            2 | t
+ 26 |      9 |     11 |    2 |            2 | t
+(22 rows)
+
 This implies that it is a shortcut and should be expanded
-1|1|3|5|1|0
-2|2|6|9|1|1
-3|3|9|-1|0|2
\ No newline at end of file
+SELECT * FROM 
+pgr_dijkstra('SELECT id, source, target, cost, reverse_cost FROM edge_table where source IN (3, 5, 6, 7, 8, 9, 11, 15, 17) AND target IN (3, 5, 6, 7, 8, 9, 11, 15, 17) AND is_contracted=false',
+3, 9, false);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    3 |    5 |    1 |        0
+   2 |        2 |    6 |    9 |    1 |        1
+   3 |        3 |    9 |   -1 |    0 |        2
+(3 rows)
+
+ROLLBACK;
+ROLLBACK
diff --git a/src/contraction/test/return_types.result b/src/contraction/test/return_types.result
index fc9f9f1..824b201 100644
--- a/src/contraction/test/return_types.result
+++ b/src/contraction/test/return_types.result
@@ -1,43 +1,121 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 --q1
+/*
+bigint (-9,223,372,036,854,775,808) to (9,223,372,036,854,775,807)
+int	(-2,147,483,648) to (2,147,483,647)
+*/
+/*
+Testing for ids > 10^8
+*/
+UPDATE edge_table
+SET id = id + POWER(10, 8),
+	source = source + POWER(10, 8),
+	target = target + POWER(10, 8);
+UPDATE 18
 --q2
+UPDATE edge_table_vertices_pgr
+SET id = id + POWER(10, 8);
+UPDATE 17
 --q3
-1|v|100000002|{100000001}|-1|-1|-1
-2|v|100000005|{100000007,100000008}|-1|-1|-1
-3|v|100000010|{100000013}|-1|-1|-1
-4|v|100000015|{100000014}|-1|-1|-1
-5|v|100000017|{100000016}|-1|-1|-1
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[1]::integer[], 1, ARRAY[]::BIGINT[], true);
+ seq | type |    id     |  contracted_vertices  | source | target | cost 
+-----+------+-----------+-----------------------+--------+--------+------
+   1 | v    | 100000002 | {100000001}           |     -1 |     -1 |   -1
+   2 | v    | 100000005 | {100000007,100000008} |     -1 |     -1 |   -1
+   3 | v    | 100000010 | {100000013}           |     -1 |     -1 |   -1
+   4 | v    | 100000015 | {100000014}           |     -1 |     -1 |   -1
+   5 | v    | 100000017 | {100000016}           |     -1 |     -1 |   -1
+(5 rows)
+
 --q4
-1|e|-1|{100000004}|100000009|100000003|2
-2|e|-2|{100000008}|100000005|100000007|2
-3|e|-3|{100000008}|100000007|100000005|2
-4|e|-4|{100000012}|100000011|100000009|2
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2]::integer[], 1, ARRAY[]::BIGINT[], true);
+ seq | type | id | contracted_vertices |  source   |  target   | cost 
+-----+------+----+---------------------+-----------+-----------+------
+   1 | e    | -1 | {100000004}         | 100000009 | 100000003 |    2
+   2 | e    | -2 | {100000008}         | 100000005 | 100000007 |    2
+   3 | e    | -3 | {100000008}         | 100000007 | 100000005 |    2
+   4 | e    | -4 | {100000012}         | 100000011 | 100000009 |    2
+(4 rows)
+
 --q5
-1|v|100000005|{100000007,100000008}|-1|-1|-1
-2|v|100000015|{100000014}|-1|-1|-1
-3|v|100000017|{100000016}|-1|-1|-1
-4|e|-1|{100000001,100000002}|100000003|100000005|2
-5|e|-2|{100000004}|100000009|100000003|2
-6|e|-3|{100000010,100000013}|100000005|100000011|2
-7|e|-4|{100000012}|100000011|100000009|2
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[1, 2]::integer[], 1, ARRAY[]::BIGINT[], true);
+ seq | type |    id     |  contracted_vertices  |  source   |  target   | cost 
+-----+------+-----------+-----------------------+-----------+-----------+------
+   1 | v    | 100000005 | {100000007,100000008} |        -1 |        -1 |   -1
+   2 | v    | 100000015 | {100000014}           |        -1 |        -1 |   -1
+   3 | v    | 100000017 | {100000016}           |        -1 |        -1 |   -1
+   4 | e    |        -1 | {100000001,100000002} | 100000003 | 100000005 |    2
+   5 | e    |        -2 | {100000004}           | 100000009 | 100000003 |    2
+   6 | e    |        -3 | {100000010,100000013} | 100000005 | 100000011 |    2
+   7 | e    |        -4 | {100000012}           | 100000011 | 100000009 |    2
+(7 rows)
+
+ROLLBACK;
+ROLLBACK
+/*
+Testing for ids > 10^12
+*/
+BEGIN;
+BEGIN
 --q6
+UPDATE edge_table
+SET id = id + POWER(10, 12),
+	source = source + POWER(10, 12),
+	target = target + POWER(10, 12);
+UPDATE 18
 --q7
+UPDATE edge_table_vertices_pgr
+SET id = id + POWER(10, 12);
+UPDATE 17
 --q8
-1|v|1000000000002|{1000000000001}|-1|-1|-1
-2|v|1000000000005|{1000000000007,1000000000008}|-1|-1|-1
-3|v|1000000000010|{1000000000013}|-1|-1|-1
-4|v|1000000000015|{1000000000014}|-1|-1|-1
-5|v|1000000000017|{1000000000016}|-1|-1|-1
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[1]::integer[], 1, ARRAY[]::BIGINT[], true);
+ seq | type |      id       |      contracted_vertices      | source | target | cost 
+-----+------+---------------+-------------------------------+--------+--------+------
+   1 | v    | 1000000000002 | {1000000000001}               |     -1 |     -1 |   -1
+   2 | v    | 1000000000005 | {1000000000007,1000000000008} |     -1 |     -1 |   -1
+   3 | v    | 1000000000010 | {1000000000013}               |     -1 |     -1 |   -1
+   4 | v    | 1000000000015 | {1000000000014}               |     -1 |     -1 |   -1
+   5 | v    | 1000000000017 | {1000000000016}               |     -1 |     -1 |   -1
+(5 rows)
+
 --q9
-1|e|-1|{1000000000004}|1000000000009|1000000000003|2
-2|e|-2|{1000000000008}|1000000000005|1000000000007|2
-3|e|-3|{1000000000008}|1000000000007|1000000000005|2
-4|e|-4|{1000000000012}|1000000000011|1000000000009|2
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2]::integer[], 1, ARRAY[]::BIGINT[], true);
+ seq | type | id | contracted_vertices |    source     |    target     | cost 
+-----+------+----+---------------------+---------------+---------------+------
+   1 | e    | -1 | {1000000000004}     | 1000000000009 | 1000000000003 |    2
+   2 | e    | -2 | {1000000000008}     | 1000000000005 | 1000000000007 |    2
+   3 | e    | -3 | {1000000000008}     | 1000000000007 | 1000000000005 |    2
+   4 | e    | -4 | {1000000000012}     | 1000000000011 | 1000000000009 |    2
+(4 rows)
+
 --q10
-1|v|1000000000005|{1000000000007,1000000000008}|-1|-1|-1
-2|v|1000000000015|{1000000000014}|-1|-1|-1
-3|v|1000000000017|{1000000000016}|-1|-1|-1
-4|e|-1|{1000000000001,1000000000002}|1000000000003|1000000000005|2
-5|e|-2|{1000000000004}|1000000000009|1000000000003|2
-6|e|-3|{1000000000010,1000000000013}|1000000000005|1000000000011|2
-7|e|-4|{1000000000012}|1000000000011|1000000000009|2
---q11
\ No newline at end of file
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[1, 2]::integer[], 1, ARRAY[]::BIGINT[], true);
+ seq | type |      id       |      contracted_vertices      |    source     |    target     | cost 
+-----+------+---------------+-------------------------------+---------------+---------------+------
+   1 | v    | 1000000000005 | {1000000000007,1000000000008} |            -1 |            -1 |   -1
+   2 | v    | 1000000000015 | {1000000000014}               |            -1 |            -1 |   -1
+   3 | v    | 1000000000017 | {1000000000016}               |            -1 |            -1 |   -1
+   4 | e    |            -1 | {1000000000001,1000000000002} | 1000000000003 | 1000000000005 |    2
+   5 | e    |            -2 | {1000000000004}               | 1000000000009 | 1000000000003 |    2
+   6 | e    |            -3 | {1000000000010,1000000000013} | 1000000000005 | 1000000000011 |    2
+   7 | e    |            -4 | {1000000000012}               | 1000000000011 | 1000000000009 |    2
+(7 rows)
+
+--q11
+ROLLBACK;
+ROLLBACK
diff --git a/src/contraction/test/sampleData.result b/src/contraction/test/sampleData.result
index ff145dc..00be4ca 100644
--- a/src/contraction/test/sampleData.result
+++ b/src/contraction/test/sampleData.result
@@ -1,6 +1,19 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 --q0 Checking dead end contraction for workshop data
-1|v|2|{1}|-1|-1|-1
-2|v|5|{7,8}|-1|-1|-1
-3|v|10|{13}|-1|-1|-1
-4|v|15|{14}|-1|-1|-1
-5|v|17|{16}|-1|-1|-1
+SELECT * FROM pgr_contractGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[1]::integer[], 1, ARRAY[]::BIGINT[], true);
+ seq | type | id | contracted_vertices | source | target | cost 
+-----+------+----+---------------------+--------+--------+------
+   1 | v    |  2 | {1}                 |     -1 |     -1 |   -1
+   2 | v    |  5 | {7,8}               |     -1 |     -1 |   -1
+   3 | v    | 10 | {13}                |     -1 |     -1 |   -1
+   4 | v    | 15 | {14}                |     -1 |     -1 |   -1
+   5 | v    | 17 | {16}                |     -1 |     -1 |   -1
+(5 rows)
+
+ROLLBACK;
+ROLLBACK
diff --git a/src/contraction/test/test.conf b/src/contraction/test/test.conf
index 4e98f98..3d8917b 100644
--- a/src/contraction/test/test.conf
+++ b/src/contraction/test/test.conf
@@ -5,23 +5,28 @@
         'comment' => 'Contraction test for any versions.',
         'data' => [ ],
         'tests' => [qw(
+            doc-contraction
+            doc-contractGraph
+            proof_of_concept
+
             sampleData
             return_types
-            proof_of_concept
             proof_of_concept_1
             expand_graph_without_function
             expand_graph
-            doc-contraction
             directed-development
             directed-deadend
             directed-linear
-            doc-contractGraph
             )],
 
         'documentation' => [qw(
-            doc-contractGraph
+
             doc-contraction
+            doc-contractGraph
+            proof_of_concept
+
             )],
+
 		'nottested' => [qw(
             )]
     },
diff --git a/src/convenience/doc/doc-conversion.queries b/src/convenience/doc/doc-conversion.queries
deleted file mode 100644
index 083eeda..0000000
--- a/src/convenience/doc/doc-conversion.queries
+++ /dev/null
@@ -1,71 +0,0 @@
-BEGIN;
-BEGIN
-SET client_min_messages TO NOTICE;
-SET
---q1
-SELECT * FROM pgr_pointtoedgenode('edge_table', 'POINT(2 0)'::geometry, 0.02);
- pgr_pointtoedgenode 
----------------------
-                   1
-(1 row)
-
-SELECT * FROM pgr_pointtoedgenode('edge_table', 'POINT(3 2)'::geometry, 0.02);
- pgr_pointtoedgenode 
----------------------
-                   6
-(1 row)
-
---q2
-SELECT st_astext(e) FROM (SELECT unnest(pgr_flipedges(ARRAY[
-'LINESTRING(2 1,2 2)'::geometry,
-'LINESTRING(2 2,2 3)'::geometry,
-'LINESTRING(2 2,2 3)'::geometry,
-'LINESTRING(2 2,3 2)'::geometry,
-'LINESTRING(3 2,4 2)'::geometry,
-'LINESTRING(4 1,4 2)'::geometry,
-'LINESTRING(3 1,4 1)'::geometry,
-'LINESTRING(2 1,3 1)'::geometry,
-'LINESTRING(2 0,2 1)'::geometry,
-'LINESTRING(2 0,2 1)'::geometry]::geometry[])) AS e) AS foo;
-NOTICE:  Deperecated function: pgr_flipEdges
-      st_astext      
----------------------
- LINESTRING(2 1,2 2)
- LINESTRING(2 2,2 3)
- LINESTRING(2 3,2 2)
- LINESTRING(2 2,3 2)
- LINESTRING(3 2,4 2)
- LINESTRING(4 2,4 1)
- LINESTRING(4 1,3 1)
- LINESTRING(3 1,2 1)
- LINESTRING(2 1,2 0)
- LINESTRING(2 0,2 1)
-(10 rows)
-
---q3
-SELECT ST_AsText(g) FROM 
-    (SELECT unnest(pgr_texttopoints('2,0;2,1;3,1;2,2', 0)) AS g) AS foo;
-NOTICE:  Deperecated function: pgr_textToPoints
- st_astext  
-------------
- POINT(2 0)
- POINT(2 1)
- POINT(3 1)
- POINT(2 2)
-(4 rows)
-
---q4
-SELECT * FROM pgr_pointstovids(
-    pgr_texttopoints('2,0;2,1;3,1;2,2', 0),
-    'edge_table'
-);
-NOTICE:  Deperecated function: pgr_textToPoints
-NOTICE:  Deperecated function: pgr_pointsToVids
- pgr_pointstovids 
-------------------
- {1,2,3,5}
-(1 row)
-
---q5
-ROLLBACK;
-ROLLBACK
diff --git a/src/convenience/doc/doc-matrix.queries b/src/convenience/doc/doc-matrix.queries
deleted file mode 100644
index 179cf13..0000000
--- a/src/convenience/doc/doc-matrix.queries
+++ /dev/null
@@ -1,121 +0,0 @@
-BEGIN;
-BEGIN
-SET client_min_messages TO NOTICE;
-SET
---q1
-SELECT * FROM pgr_pointstodmatrix(pgr_texttopoints('2,0;2,1;3,1;2,2', 0));
-NOTICE:  Deperecated function: pgr_textToPoints
-NOTICE:  Deprecated function pgr_pointsToDMatrix
-                                              dmatrix                                              |    ids    
----------------------------------------------------------------------------------------------------+-----------
- {{0,1,1.4142135623731,2},{1,0,1,1},{1.4142135623731,1,0,1.4142135623731},{2,1,1.4142135623731,0}} | {1,2,3,4}
-(1 row)
-
---q1.1
-SELECT * from pgr_tsp(
-    (SELECT dMatrix FROM pgr_pointstodmatrix(pgr_texttopoints('2,0;2,1;3,1;2,2', 0))
-    ),
-    1
-);
-NOTICE:  Deperecated function: pgr_textToPoints
-NOTICE:  Deprecated function pgr_pointsToDMatrix
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
- seq | id 
------+----
-   0 |  1
-   1 |  3
-   2 |  2
-   3 |  0
-(4 rows)
-
---q2
-SELECT * FROM pgr_vidstodmatrix(
-    ARRAY[1,2,3,5],
-    ARRAY(select the_geom FROM edge_table_vertices_pgr WHERE id in (1,2,3,5)),
-    'edge_table'
-);
-NOTICE:  Deprecated function pgr_vidsToDMatrix
-                  dmatrix                  |    ids    
--------------------------------------------+-----------
- {{0,1,4,2},{1,0,3,1},{4,3,0,2},{2,1,2,0}} | {1,2,3,5}
-(1 row)
-
---q2.1
-SELECT * FROM pgr_vidstodmatrix(
-    pgr_pointstovids(pgr_texttopoints('2,0;2,1;3,1;2,2', 0), 'edge_table'),
-    pgr_texttopoints('2,0;2,1;3,1;2,2', 0),
-    'edge_table');
-NOTICE:  Deperecated function: pgr_textToPoints
-NOTICE:  Deperecated function: pgr_textToPoints
-NOTICE:  Deperecated function: pgr_pointsToVids
-NOTICE:  Deprecated function pgr_vidsToDMatrix
-                  dmatrix                  |    ids    
--------------------------------------------+-----------
- {{0,1,4,2},{1,0,3,1},{4,3,0,2},{2,1,2,0}} | {1,2,3,5}
-(1 row)
-
---q2.2
-SELECT * FROM pgr_tsp(
-    (SELECT dMatrix FROM pgr_vidstodmatrix(
-        pgr_pointstovids(pgr_texttopoints('2,0;2,1;3,1;2,2', 0), 'edge_table'),
-        pgr_texttopoints('2,0;2,1;3,1;2,2', 0),
-        'edge_table')
-    ),
-    1
-);
-NOTICE:  Deperecated function: pgr_textToPoints
-NOTICE:  Deperecated function: pgr_textToPoints
-NOTICE:  Deperecated function: pgr_pointsToVids
-NOTICE:  Deprecated function pgr_vidsToDMatrix
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
- seq | id 
------+----
-   0 |  1
-   1 |  2
-   2 |  3
-   3 |  0
-(4 rows)
-
---q3
-SELECT * FROM pgr_vidsToDMatrix(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
-    array[1,2,3,5],
-    true, true, false);
-NOTICE:  Deprecated function pgr_vidsToDMatrix
-             pgr_vidstodmatrix             
--------------------------------------------
- {{0,1,2,2},{1,0,1,1},{2,1,0,4},{2,1,4,0}}
-(1 row)
-
-SELECT * FROM pgr_vidsToDMatrix(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
-    array[1,2,3,5],
-    true, true, true);
-NOTICE:  Deprecated function pgr_vidsToDMatrix
-             pgr_vidstodmatrix             
--------------------------------------------
- {{0,1,2,2},{1,0,1,1},{2,1,0,2},{2,1,2,0}}
-(1 row)
-
---q4
-SELECT * FROM pgr_tsp(
-    (SELECT pgr_vidsToDMatrix(
-        'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
-        array[1,2,3,5],
-        true, true, true)
-    ),
-    1
-);
-NOTICE:  Deprecated function pgr_vidsToDMatrix
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
- seq | id 
------+----
-   0 |  1
-   1 |  2
-   2 |  3
-   3 |  0
-(4 rows)
-
---q5
-ROLLBACK;
-ROLLBACK
diff --git a/src/convenience/doc/pgr_pointToEdgeNode.rst b/src/convenience/doc/pgr_pointToEdgeNode.rst
deleted file mode 100644
index 72ef049..0000000
--- a/src/convenience/doc/pgr_pointToEdgeNode.rst
+++ /dev/null
@@ -1,86 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_point_to_edgenode:
-
-pgr_pointToEdgeNode - Proposed
-==============================================================================
-
-.. index::
-        single: pointToEdgeNode(Complete Signature) --proposed
-
-Name
-------------------------------------------------------------------------------
-
-``pgr_pointToEdgeNode`` - Converts a point to a ``vertex_id`` based on closest edge.
-
-
-.. include:: proposed.rst
-   :start-after: begin-warn-expr
-   :end-before: end-warn-expr
-
-
-Synopsis
-------------------------------------------------------------------------------
-
-The function returns:
-
-  - ``integer`` that is the vertex id of the closest edge in the ``edges`` table within the ``tol`` tolerance of ``pnt``. The vertex is selected by projection the ``pnt`` onto the edge and selecting which vertex is closer along the edge.
-
-.. code-block:: sql
-
-        integer pgr_pointToEdgeNode(edges text, pnt geometry, tol float8)
-
-
-Description
------------------------------------------------------------------------------
-
-Given an table ``edges`` with a spatial index on ``the_geom`` and a point geometry search for the closest edge within ``tol`` distance to the edges then compute the projection of the point onto the line segment and select source or target based on whether the projected point is closer to the respective end and return the source or target value.
-
-.. rubric:: Parameters
-
-The function accepts the following parameters:
-
-:edges: ``text`` The name of the edge table or view. (may contain the schema name AS well).
-:pnt: ``geometry`` A point geometry object in the same SRID as ``edges``.
-:tol: ``float8`` The maximum search distance for an edge.
-
-.. warning::
-
-    If no edge is within tol distance then return -1
-
-The ``edges`` table must have the following columns:
-
-    * ``source``
-    * ``target``
-    * ``the_geom``
-
-.. rubric:: History
-
-* Proposed in version 2.1.0
-
-
-Examples
------------------------------------------------------------------------------
-
-.. literalinclude:: doc-conversion.queries
-   :start-after: --q1
-   :end-before: --q2
-
-The example uses the :ref:`sampledata` network.
-
-See Also
------------------------------------------------------------------------------
-
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
-
diff --git a/src/convenience/sql/CMakeLists.txt b/src/convenience/sql/CMakeLists.txt
deleted file mode 100644
index afc5cc9..0000000
--- a/src/convenience/sql/CMakeLists.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-# Append in local scope
-LIST(APPEND PACKAGE_SQL_FILES
-    ${CMAKE_CURRENT_SOURCE_DIR}/pgrouting_conversion_tools.sql
-    ${CMAKE_CURRENT_SOURCE_DIR}/pgrouting_dmatrix_tools.sql
-    ${CMAKE_CURRENT_SOURCE_DIR}/pgr_vidsToDMatrix.sql
-)
-
-# set in parent scope
-SET(PACKAGE_SQL_FILES "${PACKAGE_SQL_FILES}" PARENT_SCOPE)
diff --git a/src/convenience/sql/pgr_vidsToDMatrix.sql b/src/convenience/sql/pgr_vidsToDMatrix.sql
deleted file mode 100644
index 706f16a..0000000
--- a/src/convenience/sql/pgr_vidsToDMatrix.sql
+++ /dev/null
@@ -1,92 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; IF not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-CREATE OR REPLACE FUNCTION pgr_vidsToDMatrix(sql TEXT, vids  INTEGER[], dir BOOLEAN, has_rcost BOOLEAN, want_symmetric BOOLEAN)
-RETURNS float8[] AS
-$BODY$
-DECLARE
-directed BOOLEAN;
-has_reverse BOOLEAN;
-edges_sql TEXT;
-dmatrix_row float8[];
-dmatrix float8[];
-cell RECORD;
-unique_vids INTEGER[];
-total BIGINT;
-from_v BIGINT;
-to_v BIGINT;
-BEGIN
-    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
-    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
-    edges_sql = sql;
-    IF (has_reverse != has_rcost) THEN
-        IF (has_reverse) THEN
-            sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
-        ELSE
-            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
-        END IF;
-    END IF;
-
-    unique_vids :=  ARRAY(SELECT DISTINCT UNNEST(vids) ORDER BY 1);
-
-    IF want_symmetric THEN
-        directed = false;
-    ELSE
-        directed = dir;
-    END IF;
-
-    total := array_length(unique_vids, 1);
-
-    -- initializing dmatrix
-    FOR i in 1 .. total LOOP
-        dmatrix_row := dmatrix_row || '+Infinity'::float8;
-    END LOOP;
-    FOR i in 1 .. total LOOP
-    dmatrix := dmatrix || ARRAY[dmatrix_row];
-    dmatrix[i][i] = 0;
-    END LOOP;
-
-    CREATE TEMP TABLE __x___y____temp AS
-        WITH result AS
-            (SELECT unnest(unique_vids) AS vid)
-        SELECT row_number() OVER() AS idx, vid FROM result;
-
-    FOR cell IN SELECT * FROM pgr_dijkstraCostMatrix(sql, unique_vids, directed) LOOP
-        SELECT idx INTO from_v FROM __x___y____temp WHERE vid =  cell.start_vid;
-        SELECT idx INTO to_v FROM __x___y____temp WHERE vid =  cell.end_vid;
-
-        dmatrix[from_v][to_v] = cell.agg_cost;
-        dmatrix[to_v][from_v] = cell.agg_cost;
-    END LOOP;
-
-    DROP TABLE IF EXISTS __x___y____temp;
-    RETURN dmatrix;
-
-    EXCEPTION WHEN others THEN 
-       DROP TABLE IF EXISTS __x___y____temp;
-       raise exception '% %', SQLERRM, SQLSTATE;
-END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100;
-
diff --git a/src/convenience/sql/pgrouting_conversion_tools.sql b/src/convenience/sql/pgrouting_conversion_tools.sql
deleted file mode 100644
index ca9a58d..0000000
--- a/src/convenience/sql/pgrouting_conversion_tools.sql
+++ /dev/null
@@ -1,186 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-create or replace function pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
-    returns integer as
-$body$
-/*
- *  pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
- *
- *  Given and table of edges with a spatial index on the_geom
- *  and a point geometry search for the closest edge within tol distance to the edges
- *  then compute the projection of the point onto the line segment and select source or target
- *  based on whether the projected point is closer to the respective end and return source or target.
- *  If no edge is within tol distance then return -1
-*/
-declare
-    rr record;
-    pct float;
-    debuglevel text;
-    
-begin
-    -- find the closest edge within tol distance
-    execute 'select * from ' || _pgr_quote_ident(edges) || 
-            ' where st_dwithin(''' || pnt::text ||
-            '''::geometry, the_geom, ' || tol || ') order by st_distance(''' || pnt::text ||
-            '''::geometry, the_geom) asc limit 1' into rr;
-
-    if rr.the_geom is not null then
-        -- deal with MULTILINESTRINGS
-        if geometrytype(rr.the_geom)='MULTILINESTRING' THEN
-            rr.the_geom := ST_GeometryN(rr.the_geom, 1);
-        end if;
-
-        -- project the point onto the linestring
-        execute 'show client_min_messages' into debuglevel;
-        SET client_min_messages='ERROR';
-        pct := st_line_locate_point(rr.the_geom, pnt);
-        execute 'set client_min_messages  to '|| debuglevel;
-
-        -- return the node we are closer to
-        if pct < 0.5 then
-            return rr.source;
-        else
-            return rr.target;
-        end if;
-    else
-        -- return a failure to find an edge within tol distance
-        return -1;
-    end if;
-end;
-$body$
-  language plpgsql volatile
-  cost 5;
-
-
-----------------------------------------------------------------------------
-
-create or replace function pgr_flipedges(ga geometry[])
-    returns geometry[] as
-$body$
-/*
- *  pgr_flipedges(ga geometry[])
- *
- *  Given an array of linestrings that are supposedly connected end to end like the results
- *  of a route, check the edges and flip any end for end if they do not connect with the
- *  previous seegment and return the array with the segments flipped as appropriate.
- *
- *  NOTE: no error checking is done for conditions like adjacent edges are not connected.
-*/
-declare
-    nn integer;
-    i integer;
-    g geometry;
-    
-begin
-    RAISE NOTICE 'Deperecated function: pgr_flipEdges';
-    -- get the count of edges, and return if only one edge
-    nn := array_length(ga, 1);
-    if nn=1 then
-        return ga;
-    end if;
-
-    -- determine if first needs to be flipped
-    g := _pgr_startpoint(ga[1]);
-
-    -- if the start of the first is connected to the second then it needs to be flipped
-    if _pgr_startpoint(ga[2])=g or _pgr_endpoint(ga[2])=g then
-        ga[1] := st_reverse(ga[1]);
-    end if;
-    g := _pgr_endpoint(ga[1]);
-
-    -- now if  the end of the last edge matchs the end of the current edge we need to flip it
-    for i in 2 .. nn loop
-        if _pgr_endpoint(ga[i])=g then
-            ga[i] := st_reverse(ga[i]);
-        end if;
-        -- save the end of this edge into the last end for the next cycle
-        g := _pgr_endpoint(ga[i]);
-    end loop;
-
-    return ga;
-end;
-$body$
-    language plpgsql immutable;
-
-
-------------------------------------------------------------------------------
-
-create or replace function pgr_texttopoints(pnts text, srid integer DEFAULT(4326))
-    returns geometry[] as
-$body$
-/*
- *  pgr_texttopoints(pnts text, srid integer DEFAULT(4326))
- *
- *  Given a text string of the format "x,y;x,y;x,y;..." and the srid to use,
- *  split the string and create and array point geometries
-*/
-declare
-    a text[];
-    t text;
-    p geometry;
-    g geometry[];
-    
-begin
-    RAISE NOTICE 'Deperecated function: pgr_textToPoints';
-    -- convert commas to space and split on ';'
-    a := string_to_array(replace(pnts, ',', ' '), ';');
-    -- convert each 'x y' into a point geometry and concattenate into a new array
-    for t in select unnest(a) loop
-        p := st_pointfromtext('POINT(' || t || ')', srid);
-        g := g || p;
-    end loop;
-
-    return g;
-end;
-$body$
-    language plpgsql immutable;
-
------------------------------------------------------------------------
-
-create or replace function pgr_pointstovids(pnts geometry[], edges text, tol float8 DEFAULT(0.01))
-    returns integer[] as
-$body$
-/*
- *  pgr_pointstovids(pnts geometry[], edges text, tol float8 DEFAULT(0.01))
- *
- *  Given an array of point geometries and an edge table and a max search tol distance
- *  convert points into vertex ids using pgr_pointtoedgenode()
- *
- *  NOTE: You need to check the results for any vids=-1 which indicates if failed to locate an edge
-*/
-declare
-    v integer[];
-    g geometry;
-    
-begin
-    RAISE NOTICE 'Deperecated function: pgr_pointsToVids';
-    -- cycle through each point and locate the nearest edge and vertex on that edge
-    for g in select unnest(pnts) loop
-        v := v || pgr_pointtoedgenode(edges, g, tol);
-    end loop;
-
-    return v;
-end;
-$body$
-    language plpgsql stable;
-
diff --git a/src/convenience/sql/pgrouting_dmatrix_tools.sql b/src/convenience/sql/pgrouting_dmatrix_tools.sql
deleted file mode 100644
index e497183..0000000
--- a/src/convenience/sql/pgrouting_dmatrix_tools.sql
+++ /dev/null
@@ -1,144 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-create or replace function pgr_pointstodmatrix(pnts geometry[], mode integer default (0), OUT dmatrix double precision[], OUT ids integer[])
-    returns record as
-$body$
-/*
- *  pgr_pointstodmatrix(pnts geometry[], OUT dmatrix double precision[], OUT ids integer[])
- *
- *  Create a distance symmetric distance matrix suitable for TSP using Euclidean distances
- *  based on the st_distance(). You might want to create a variant of this the uses st_distance_sphere()
- *  or st_distance_spheriod() or some other function.
- *
-*/
-declare
-    r record;
-    
-begin
-    RAISE NOTICE 'Deprecated function pgr_pointsToDMatrix';
-    dmatrix := array[]::double precision[];
-    ids := array[]::integer[];
-
-    -- create an id for each point in the array and unnest it into a table nodes in the with clause
-    for r in with nodes as (select row_number() over()::integer as id, p from (select unnest(pnts) as p) as foo)
-        -- compute a row of distances
-        select i, array_agg(dist) as arow from (
-            select a.id as i, b.id as j, 
-                case when mode=0
-                    then st_distance(a.p, b.p)
-                    else st_distance_sphere(a.p, b.p)
-                end as dist
-              from nodes a, nodes b
-             order by a.id, b.id
-           ) as foo group by i order by i loop
-
-        -- you must concat an array[array[]] to make dmatrix[][]
-        -- concat the row of distances to the dmatrix
-        dmatrix := array_cat(dmatrix, array[r.arow]);
-        ids := ids || array[r.i];
-    end loop;
-end;
-$body$
-    language plpgsql stable;
-
-
-------------------------------------------------------------------------------
-
-create or replace function pgr_vidstodmatrix(IN vids integer[], IN pnts geometry[], IN edges text, tol float8 DEFAULT(0.1), OUT dmatrix double precision[], OUT ids integer[])
-    returns record as
-$body$
-/*
- *  pgr_vidstodmatrix(IN vids integer[], IN pnts geometry[], IN edges text, tol float8 DEFAULT(0.1),
- *                    OUT dmatrix double precision[], OUT ids integer[])
- *
- *  This function that's an array vertex ids, the original array of points, the edge table name and a tol.
- *  It then computes kdijkstra() distances for each vertex to all the other vertices and creates a symmetric
- *  distances matrix suitable for TSP. The pnt array and the tol are used to establish a BBOX for limiteding
- *  selection of edges.the extents of the points is expanded by tol.
- *
- *  NOTES:
- *  1. we compute a symmetric matrix because TSP requires that so the distances are better the Euclidean but
- *     but are not perfect
- *  2. kdijkstra() can fail to find a path between some of the vertex ids. We to not detect this other than
- *     the cost might get set to -1.0, so the dmatrix should be checked for this as it makes it invalid for TSP
- *
-*/
-declare
-    i integer;
-    j integer;
-    nn integer;
-    rr record;
-    bbox geometry;
-    t float8[];
-
-begin
-    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
-    -- check if the input arrays has any -1 values, maybe this whould be a raise exception
-    if vids @> ARRAY[-1] then
-    raise notice 'Some vids are undefined (-1)!';
-    dmatrix := null;
-    ids := null;
-    return;
-    end if;
-
-    ids := vids;
-
-    -- get the count of nodes
-    nn := array_length(vids,1);
-
-    -- zero out a dummy row
-    for i in 1 .. nn loop
-        t := t || 0.0::float8;
-    end loop;
-
-    -- using the dummy row, zero out the whole matrix
-    for i in 1 .. nn loop
-    dmatrix := dmatrix || ARRAY[t];
-    end loop;
-
-    for i in 1 .. nn-1 loop
-        j := i;
-        -- compute the bbox for the point needed for this row
-        select st_expand(st_collect(pnts[id]), tol) into bbox
-          from (select generate_series as id from generate_series(i, nn)) as foo;
-
-        -- compute kdijkstra() for this row
-        for rr in execute 'select * from pgr_dijkstracost($1, $2, $3, false)'
-                  using 'select id, source, target, cost from ' || edges || 
-                        ' where the_geom && ''' || bbox::text || '''::geometry'::text, vids[i], vids[i+1:nn] loop
-
-            -- TODO need to check that all node were reachable from source
-            -- I think unreachable paths between nodes returns cost=-1.0
-
-            -- populate the matrix with the cost values, remember this is symmetric
-            j := j + 1;
-            -- raise notice 'cost(%,%)=%', i, j, rr.agg_cost;
-            dmatrix[i][j] := rr.agg_cost;
-            dmatrix[j][i] := rr.agg_cost;
-        end loop;
-    end loop;
-
-end;
-$body$
-    language plpgsql stable cost 200;
-
diff --git a/src/convenience/test/doc-conversion.result b/src/convenience/test/doc-conversion.result
deleted file mode 100644
index c7db8f3..0000000
--- a/src/convenience/test/doc-conversion.result
+++ /dev/null
@@ -1,26 +0,0 @@
---q1
-1
-6
---q2
-NOTICE:  Deperecated function: pgr_flipEdges
-LINESTRING(2 1,2 2)
-LINESTRING(2 2,2 3)
-LINESTRING(2 3,2 2)
-LINESTRING(2 2,3 2)
-LINESTRING(3 2,4 2)
-LINESTRING(4 2,4 1)
-LINESTRING(4 1,3 1)
-LINESTRING(3 1,2 1)
-LINESTRING(2 1,2 0)
-LINESTRING(2 0,2 1)
---q3
-NOTICE:  Deperecated function: pgr_textToPoints
-POINT(2 0)
-POINT(2 1)
-POINT(3 1)
-POINT(2 2)
---q4
-NOTICE:  Deperecated function: pgr_textToPoints
-NOTICE:  Deperecated function: pgr_pointsToVids
-{1,2,3,5}
---q5
diff --git a/src/convenience/test/doc-conversion.test.sql b/src/convenience/test/doc-conversion.test.sql
deleted file mode 100644
index 5a49f71..0000000
--- a/src/convenience/test/doc-conversion.test.sql
+++ /dev/null
@@ -1,26 +0,0 @@
-\echo --q1
-SELECT * FROM pgr_pointtoedgenode('edge_table', 'POINT(2 0)'::geometry, 0.02);
-SELECT * FROM pgr_pointtoedgenode('edge_table', 'POINT(3 2)'::geometry, 0.02);
-
-\echo --q2
-SELECT st_astext(e) FROM (SELECT unnest(pgr_flipedges(ARRAY[
-'LINESTRING(2 1,2 2)'::geometry,
-'LINESTRING(2 2,2 3)'::geometry,
-'LINESTRING(2 2,2 3)'::geometry,
-'LINESTRING(2 2,3 2)'::geometry,
-'LINESTRING(3 2,4 2)'::geometry,
-'LINESTRING(4 1,4 2)'::geometry,
-'LINESTRING(3 1,4 1)'::geometry,
-'LINESTRING(2 1,3 1)'::geometry,
-'LINESTRING(2 0,2 1)'::geometry,
-'LINESTRING(2 0,2 1)'::geometry]::geometry[])) AS e) AS foo;
-\echo --q3
-SELECT ST_AsText(g) FROM 
-    (SELECT unnest(pgr_texttopoints('2,0;2,1;3,1;2,2', 0)) AS g) AS foo;
-
-\echo --q4
-SELECT * FROM pgr_pointstovids(
-    pgr_texttopoints('2,0;2,1;3,1;2,2', 0),
-    'edge_table'
-);
-\echo --q5
diff --git a/src/convenience/test/doc-matrix.result b/src/convenience/test/doc-matrix.result
deleted file mode 100644
index 1a5b06e..0000000
--- a/src/convenience/test/doc-matrix.result
+++ /dev/null
@@ -1,44 +0,0 @@
---q1
-NOTICE:  Deperecated function: pgr_textToPoints
-NOTICE:  Deprecated function pgr_pointsToDMatrix
-{{0,1,1.4142135623731,2},{1,0,1,1},{1.4142135623731,1,0,1.4142135623731},{2,1,1.4142135623731,0}}|{1,2,3,4}
---q1.1
-NOTICE:  Deperecated function: pgr_textToPoints
-NOTICE:  Deprecated function pgr_pointsToDMatrix
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-0|1
-1|3
-2|2
-3|0
---q2
-NOTICE:  Deprecated function pgr_vidsToDMatrix
-{{0,1,4,2},{1,0,3,1},{4,3,0,2},{2,1,2,0}}|{1,2,3,5}
---q2.1
-NOTICE:  Deperecated function: pgr_textToPoints
-NOTICE:  Deperecated function: pgr_textToPoints
-NOTICE:  Deperecated function: pgr_pointsToVids
-NOTICE:  Deprecated function pgr_vidsToDMatrix
-{{0,1,4,2},{1,0,3,1},{4,3,0,2},{2,1,2,0}}|{1,2,3,5}
---q2.2
-NOTICE:  Deperecated function: pgr_textToPoints
-NOTICE:  Deperecated function: pgr_textToPoints
-NOTICE:  Deperecated function: pgr_pointsToVids
-NOTICE:  Deprecated function pgr_vidsToDMatrix
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-0|1
-1|2
-2|3
-3|0
---q3
-NOTICE:  Deprecated function pgr_vidsToDMatrix
-{{0,1,2,2},{1,0,1,1},{2,1,0,4},{2,1,4,0}}
-NOTICE:  Deprecated function pgr_vidsToDMatrix
-{{0,1,2,2},{1,0,1,1},{2,1,0,2},{2,1,2,0}}
---q4
-NOTICE:  Deprecated function pgr_vidsToDMatrix
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-0|1
-1|2
-2|3
-3|0
---q5
diff --git a/src/convenience/test/doc-matrix.test.sql b/src/convenience/test/doc-matrix.test.sql
deleted file mode 100644
index 94b2263..0000000
--- a/src/convenience/test/doc-matrix.test.sql
+++ /dev/null
@@ -1,55 +0,0 @@
-
-\echo --q1
-SELECT * FROM pgr_pointstodmatrix(pgr_texttopoints('2,0;2,1;3,1;2,2', 0));
-
-\echo --q1.1
-SELECT * from pgr_tsp(
-    (SELECT dMatrix FROM pgr_pointstodmatrix(pgr_texttopoints('2,0;2,1;3,1;2,2', 0))
-    ),
-    1
-);
-
-\echo --q2
-
-SELECT * FROM pgr_vidstodmatrix(
-    ARRAY[1,2,3,5],
-    ARRAY(select the_geom FROM edge_table_vertices_pgr WHERE id in (1,2,3,5)),
-    'edge_table'
-);
-
-\echo --q2.1
-SELECT * FROM pgr_vidstodmatrix(
-    pgr_pointstovids(pgr_texttopoints('2,0;2,1;3,1;2,2', 0), 'edge_table'),
-    pgr_texttopoints('2,0;2,1;3,1;2,2', 0),
-    'edge_table');
-
-\echo --q2.2
-SELECT * FROM pgr_tsp(
-    (SELECT dMatrix FROM pgr_vidstodmatrix(
-        pgr_pointstovids(pgr_texttopoints('2,0;2,1;3,1;2,2', 0), 'edge_table'),
-        pgr_texttopoints('2,0;2,1;3,1;2,2', 0),
-        'edge_table')
-    ),
-    1
-);
-\echo --q3
-SELECT * FROM pgr_vidsToDMatrix(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
-    array[1,2,3,5],
-    true, true, false);
-
-SELECT * FROM pgr_vidsToDMatrix(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
-    array[1,2,3,5],
-    true, true, true);
-\echo --q4
-SELECT * FROM pgr_tsp(
-    (SELECT pgr_vidsToDMatrix(
-        'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
-        array[1,2,3,5],
-        true, true, true)
-    ),
-    1
-);
-\echo --q5
-
diff --git a/src/convenience/test/test.conf b/src/convenience/test/test.conf
deleted file mode 100644
index ffac8cb..0000000
--- a/src/convenience/test/test.conf
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/perl -w
-
-%main::tests = (
-    'any' => {
-        'comment' => 'pgr_createTopology, pgr_analyzegraph, and pgr_analyzeOneway tests for any versions.',
-        'data' => ['sampledata.data'],
-        'tests' => [qw( 
-            vidstodmatrix-any-01
-            doc-conversion
-            )],
-        'linux' => [qw( 
-            doc-matrix
-            )],
-
-        'documentation' => [qw(
-            doc-matrix
-            doc-conversion
-            )],
-
-        'dummyStorage' => [qw(
-            )]
-
-    },
-# 'vpg-vpgis' => {}, # for version specific tests
-# '8-1' => {}, # for pg 8.x and postgis 1.x
-# '9.2-2.1' => {}, # for pg 9.2 and postgis 2.1
-);
-
-1;
diff --git a/src/convenience/test/vidstodmatrix-any-01.result b/src/convenience/test/vidstodmatrix-any-01.result
deleted file mode 100644
index b85fac0..0000000
--- a/src/convenience/test/vidstodmatrix-any-01.result
+++ /dev/null
@@ -1,4 +0,0 @@
-NOTICE:  Deprecated function pgr_vidsToDMatrix
-{{0,3,2,6,5,4},{3,0,3,3,2,5},{2,3,0,4,3,2},{6,3,4,0,3,2},{5,2,3,3,0,3},{4,5,2,2,3,0}}
-NOTICE:  Deprecated function pgr_vidsToDMatrix
-{{0,3,2,4,5,4},{3,0,3,3,2,5},{2,3,0,2,3,2},{4,3,2,0,1,2},{5,2,3,1,0,3},{4,5,2,2,3,0}}
diff --git a/src/convenience/test/vidstodmatrix-any-01.test.sql b/src/convenience/test/vidstodmatrix-any-01.test.sql
deleted file mode 100644
index c3ea7bf..0000000
--- a/src/convenience/test/vidstodmatrix-any-01.test.sql
+++ /dev/null
@@ -1,33 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-SET client_min_messages TO NOTICE;
-    select * from pgr_vidsToDMatrix(
-        'select id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost from edge_table',
-        array[1,5,13,11,12,4],
-        true, true, false);
-
-    select * from pgr_vidsToDMatrix(
-        'select id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost from edge_table',
-        array[1,5,13,11,12,4],
-        true, true, true);
diff --git a/src/costMatrix/doc/cost-category.rst b/src/costMatrix/doc/cost-category.rst
deleted file mode 100644
index 83bff70..0000000
--- a/src/costMatrix/doc/cost-category.rst
+++ /dev/null
@@ -1,73 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _Cost:
-
-Cost - Category
-===============================================================================
-
-.. index from here
-
-* :ref:`pgr_aStarCost`
-* :ref:`pgr_dijkstraCost`
-* :ref:`pgr_withPointsCost`
-
-.. index to here
-
-.. include:: proposed.rst
-    :start-after: begin-warning
-    :end-before: end-warning
-
-General Information
--------------------------------------------------------------------------------
-
-
-Characteristics
-................
-
-The main Characteristics are:
-
-* Each function works as part of the family it belongs to.
-* It does not return a path.
-* Returns the sum of the costs of the resulting path(s) for pair combination of nodes in the graph.
-* Process is done only on edges with positive costs.
-* Values are returned when there is a path.
-
-  * The returned values are in the form of a set of `(start_vid, end_vid, agg_cost)`.
-
-  * When the starting vertex and ending vertex are the same, there is no path.
-
-    * The `agg_cost` int the non included values `(v, v)` is `0`.
-
-  * When the starting vertex and ending vertex are the different and there is no path.
-
-    * The `agg_cost` in the non included values `(u, v)` is :math:`\infty`.
-
-* Let be the case the values returned are stored in a table, so the unique index would be the pair: `(start_vid, end_vid)`.
-
-* Depending on the function and its parameters, the results can be symmetric.
-
-  * The  `agg_cost` of `(u, v)` is the same as for `(v, u)`.
-
-* Any duplicated value in the `start_vids` or in `end_vids` are ignored.
-
-* The returned values are ordered:
-
-  * `start_vid` ascending
-  * `end_vid` ascending
-
-
-
-See Also
-................
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
diff --git a/src/costMatrix/doc/costMatrix-category.rst b/src/costMatrix/doc/costMatrix-category.rst
deleted file mode 100644
index c6b3e78..0000000
--- a/src/costMatrix/doc/costMatrix-category.rst
+++ /dev/null
@@ -1,104 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _CostMatrix:
-
-Cost Matrix - Category
-===============================================================================
-
-.. index from here
-
-* :ref:`pgr_aStarCostMatrix`
-* :ref:`pgr_dijkstraCostMatrix`
-* :ref:`pgr_withPointsCostMatrix`
-
-.. index to here
-
-.. include:: proposed.rst
-    :start-after: begin-warning
-    :end-before: end-warning
-
-.. toctree::
-    :hidden:
-
-    pgr_aStarCostMatrix
-    pgr_dijkstraCostMatrix
-    pgr_withPointsCostMatrix
-
-
-General Information
--------------------------------------------------------------------------------
-
-Synopsis
-...................
-
-:ref:`tsp` needs as input a symmetric cost matrix and no edge `(u, v)` must value :math:`\infty`.
-
-This collection of functions will return a cost matrix in form of a table.
-
-
-Characteristics
-................
-
-The main Characteristics are:
-
-* Can be used as input to :ref:`pgr_tsp`.
-
-  * :directly: when the resulting matrix is symmetric and there is no :math:`\infty` value.
-  * It will be the users responsibility to make the matrix symmetric.
-
-    * By using geometric or harmonic average of the non symmetric values.
-    * By using max or min the non symmetric values.
-    * By setting the upper triangle to be the mirror image of the lower triangle.
-    * By setting the lower triangle to be the mirror image of the upper triangle.
-
-  * It is also the users responsibility to fix an :math:`\infty` value.
-
-* Each function works as part of the family it belongs to.
-* It does not return a path.
-* Returns the sum of the costs of the shortest path for pair combination of nodes in the graph.
-* Process is done only on edges with positive costs.
-* Values are returned when there is a path.
-
-  * The returned values are in the form of a set of `(start_vid, end_vid, agg_cost)`.
-
-  * When the starting vertex and ending vertex are the same, there is no path.
-
-    * The `agg_cost` int the non included values `(v, v)` is `0`.
-
-  * When the starting vertex and ending vertex are the different and there is no path.
-
-    * The `agg_cost` in the non included values `(u, v)` is :math:`\infty`.
-
-* Let be the case the values returned are stored in a table, so the unique index would be the pair: `(start_vid, end_vid)`.
-
-* Depending on the function and its parameters, the results can be symmetric.
-
-  * The  `agg_cost` of `(u, v)` is the same as for `(v, u)`.
-
-* Any duplicated value in the `start_vids` are ignored.
-
-* The returned values are ordered:
-
-  * `start_vid` ascending
-  * `end_vid` ascending
-
-* Running time: approximately :math:`O(| start\_vids | * (V \log V + E))`
-
-
-
-See Also
-................
-
-* :ref:`pgr_tsp`
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
diff --git a/src/costMatrix/doc/dmatrix_return_values.txt b/src/costMatrix/doc/dmatrix_return_values.txt
deleted file mode 100644
index 45fad6f..0000000
--- a/src/costMatrix/doc/dmatrix_return_values.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-.. 
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-
-Description of the return values
-...............................................................................
-
-Returns set of ``(start_vid, end_vid, agg_cost)``
-
-============= ============= =================================================
-Column        Type          Description
-============= ============= =================================================
-**start_vid** ``BIGINT``    Identifier of the starting vertex.
-**end_vid**   ``BIGINT``    Identifier of the ending vertex.
-**agg_cost**  ``FLOAT``     Aggregate cost of the shortest path from ``start_vid`` to ``end_vid``.
-============= ============= =================================================
-
diff --git a/src/costMatrix/doc/doc-pgr_fooDmatrix.queries b/src/costMatrix/doc/doc-pgr_fooDmatrix.queries
deleted file mode 100644
index 8fe65ed..0000000
--- a/src/costMatrix/doc/doc-pgr_fooDmatrix.queries
+++ /dev/null
@@ -1,196 +0,0 @@
-BEGIN;
-BEGIN
-SET client_min_messages TO NOTICE;
-SET
--- dijkstra q1
-SELECT * FROM pgr_dijkstraCostMatrix(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5)
-);
- start_vid | end_vid | agg_cost 
------------+---------+----------
-         1 |       2 |        1
-         1 |       3 |        6
-         1 |       4 |        5
-         2 |       1 |        1
-         2 |       3 |        5
-         2 |       4 |        4
-         3 |       1 |        2
-         3 |       2 |        1
-         3 |       4 |        3
-         4 |       1 |        3
-         4 |       2 |        2
-         4 |       3 |        1
-(12 rows)
-
--- dijkstra q2
-SELECT * FROM pgr_dijkstraCostMatrix(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
-    false
-);
- start_vid | end_vid | agg_cost 
------------+---------+----------
-         1 |       2 |        1
-         1 |       3 |        2
-         1 |       4 |        3
-         2 |       1 |        1
-         2 |       3 |        1
-         2 |       4 |        2
-         3 |       1 |        2
-         3 |       2 |        1
-         3 |       4 |        1
-         4 |       1 |        3
-         4 |       2 |        2
-         4 |       3 |        1
-(12 rows)
-
--- dijkstra q3
-SELECT * FROM pgr_TSP(
-    $$
-    SELECT * FROM pgr_dijkstraCostMatrix(
-        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-        (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
-        false
-    )
-    $$,
-    randomize := false
-);
- seq | node | cost | agg_cost 
------+------+------+----------
-   1 |    1 |    1 |        0
-   2 |    2 |    1 |        1
-   3 |    3 |    1 |        2
-   4 |    4 |    3 |        3
-   5 |    1 |    0 |        6
-(5 rows)
-
--- dijkstra q4
--- withPoints q1
-SELECT * FROM pgr_withPointsCostMatrix(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
-    'SELECT pid, edge_id, fraction from pointsOfInterest',
-    array[-1, 3, 6, -6]);
- start_vid | end_vid | agg_cost 
------------+---------+----------
-        -6 |      -1 |      1.3
-        -6 |       3 |      4.3
-        -6 |       6 |      1.3
-        -1 |      -6 |      1.3
-        -1 |       3 |      5.6
-        -1 |       6 |      2.6
-         3 |      -6 |      1.7
-         3 |      -1 |      1.6
-         3 |       6 |        1
-         6 |      -6 |      1.3
-         6 |      -1 |      2.6
-         6 |       3 |        3
-(12 rows)
-
--- withPoints q2
-SELECT * FROM pgr_withPointsCostMatrix(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
-    'SELECT pid, edge_id, fraction from pointsOfInterest',
-    array[-1, 3, 6, -6], directed := false);
- start_vid | end_vid | agg_cost 
------------+---------+----------
-        -6 |      -1 |      1.3
-        -6 |       3 |      1.7
-        -6 |       6 |      1.3
-        -1 |      -6 |      1.3
-        -1 |       3 |      1.6
-        -1 |       6 |      2.6
-         3 |      -6 |      1.7
-         3 |      -1 |      1.6
-         3 |       6 |        1
-         6 |      -6 |      1.3
-         6 |      -1 |      2.6
-         6 |       3 |        1
-(12 rows)
-
--- withPoints q3
-SELECT * FROM pgr_TSP(
-    $$
-    SELECT * FROM pgr_withPointsCostMatrix(
-        'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
-        'SELECT pid, edge_id, fraction from pointsOfInterest',
-        array[-1, 3, 6, -6], directed := false);
-    $$,
-    randomize := false
-);
- seq | node | cost | agg_cost 
------+------+------+----------
-   1 |   -6 |  1.3 |        0
-   2 |   -1 |  1.6 |      1.3
-   3 |    3 |    1 |      2.9
-   4 |    6 |  1.3 |      3.9
-   5 |   -6 |    0 |      5.2
-(5 rows)
-
--- withPoints q4
--- astar q1
-SELECT * FROM pgr_aStarCostMatrix(
-    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
-    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5)
-);
- start_vid | end_vid | agg_cost 
------------+---------+----------
-         1 |       2 |        1
-         1 |       3 |        6
-         1 |       4 |        5
-         2 |       1 |        1
-         2 |       3 |        5
-         2 |       4 |        4
-         3 |       1 |        2
-         3 |       2 |        1
-         3 |       4 |        3
-         4 |       1 |        3
-         4 |       2 |        2
-         4 |       3 |        1
-(12 rows)
-
--- astar q2
-SELECT * FROM pgr_aStarCostMatrix(
-    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
-    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
-    directed := false, heuristic := 2
-);
- start_vid | end_vid | agg_cost 
------------+---------+----------
-         1 |       2 |        1
-         1 |       3 |        2
-         1 |       4 |        3
-         2 |       1 |        1
-         2 |       3 |        1
-         2 |       4 |        2
-         3 |       1 |        2
-         3 |       2 |        1
-         3 |       4 |        1
-         4 |       1 |        3
-         4 |       2 |        2
-         4 |       3 |        1
-(12 rows)
-
--- astar q3
-SELECT * FROM pgr_TSP(
-    $$
-    SELECT * FROM pgr_aStarCostMatrix(
-        'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
-        (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
-        directed:= false, heuristic := 2
-    )
-    $$,
-    randomize := false
-);
- seq | node | cost | agg_cost 
------+------+------+----------
-   1 |    1 |    1 |        0
-   2 |    2 |    1 |        1
-   3 |    3 |    1 |        2
-   4 |    4 |    3 |        3
-   5 |    1 |    0 |        6
-(5 rows)
-
--- astar q4
-ROLLBACK;
-ROLLBACK
diff --git a/src/costMatrix/doc/pgr_aStarCostMatrix.rst b/src/costMatrix/doc/pgr_aStarCostMatrix.rst
deleted file mode 100644
index 2d5eaeb..0000000
--- a/src/costMatrix/doc/pgr_aStarCostMatrix.rst
+++ /dev/null
@@ -1,161 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_aStarCostMatrix:
-
-pgr_aStarCostMatrix - proposed
-===============================================================================
-
-Name
--------------------------------------------------------------------------------
-
-``pgr_aStarCostMatrix`` - Calculates the a cost matrix using :ref:`pgr_aStar`.
-
-
-.. include:: proposed.rst
-   :start-after: begin-warning
-   :end-before: end-warning
-
-
-
-.. figure:: images/boost-inside.jpeg
-   :target: http://www.boost.org/libs/graph
-
-   Boost Graph Inside
-
-.. rubric:: Availability: 2.4.0
-
-Synopsis
--------------------------------------------------------------------------------
-
-Using aStar algorithm, calculate and return a cost matrix.
-
-Signature Summary
------------------
-
-.. code-block:: none
-
-    pgr_aStarCostMatrix(edges_sql, vids)
-    pgr_aStarCostMatrix(edges_sql, vids, directed, heuristic, factor, epsilon)
-    RETURNS SET OF (start_vid, end_vid, agg_cost)
-
-
-
-Signatures
--------------------------------------------------------------------------------
-
-.. index::
-    single: aStarCostMatrix(Minimal Use) - Proposed
-
-Minimal Signature
-...............................................................................
-
-The minimal signature:
-    - Is for a **directed** graph.
-
-.. code-block:: none
-
-    pgr_aStarCostMatrix(edges_sql, vids)
-    RETURNS SET OF (start_vid, end_vid, agg_cost)
-
-
-:Example: Cost matrix for vertices 1, 2, 3, and 4.
-
-
-.. literalinclude:: doc-pgr_fooDmatrix.queries
-   :start-after: -- astar q1
-   :end-before: -- astar q2
-
-
-.. index::
-    single: aStarCostMatrix(Complete Signature) - Proposed
-
-Complete Signature
-...............................................................................
-
-.. code-block:: none
-
-    pgr_aStarCostMatrix(edges_sql, vids, directed, heuristic, factor, epsilon)
-    RETURNS SET OF (start_vid, end_vid, agg_cost)
-
-
-:Example: Cost matrix for an undirected graph for vertices 1, 2, 3, and 4.
-
-This example returns a symmetric cost matrix.
-
-.. literalinclude:: doc-pgr_fooDmatrix.queries
-   :start-after: -- astar q2
-   :end-before: -- astar q3
-
-
-Description of the Signatures
--------------------------------------------------------------------------------
-
-.. include:: pgRouting-concepts.rst
-    :start-after: xy_edges_sql_start
-    :end-before: xy_edges_sql_end
-
-
-Description of the parameters of the signatures
-...............................................................................
-
-================ ====================== =================================================
-Parameter        Type                   Description
-================ ====================== =================================================
-**edges_sql**    ``TEXT``               Edges SQL query as described above.
-**vids**         ``ARRAY[ANY-INTEGER]`` Array of vertices_identifiers.
-**directed**     ``BOOLEAN``            - Optional.
-
-                                          - When ``false`` the graph is considered as Undirected.
-                                          - Default is ``true`` which considers the graph as Directed.
-
-**heuristic**    ``INTEGER``            (optional). Heuristic number. Current valid values 0~5. Default ``5``
-
-                                          - 0: h(v) = 0 (Use this value to compare with pgr_dijkstra)
-                                          - 1: h(v) abs(max(dx, dy))
-                                          - 2: h(v) abs(min(dx, dy))
-                                          - 3: h(v) = dx * dx + dy * dy
-                                          - 4: h(v) = sqrt(dx * dx + dy * dy)
-                                          - 5: h(v) = abs(dx) + abs(dy)
-
-**factor**       ``FLOAT``              (optional). For units manipulation. :math:`factor > 0`.  Default ``1``.
-**epsilon**      ``FLOAT``              (optional). For less restricted results. :math:`epsilon >= 1`.  Default ``1``.
-================ ====================== =================================================
-
-
-
-.. include:: pgRouting-concepts.rst
-    :start-after: return_cost_start
-    :end-before: return_cost_end
-
-
-
-Examples
--------------------------------------------------------------------------------
-
-:Example: Use with tsp
-
-.. literalinclude:: doc-pgr_fooDmatrix.queries
-   :start-after: -- astar q3
-   :end-before: -- astar q4
-
-
-See Also
--------------------------------------------------------------------------------
-
-* :ref:`astar`
-* :ref:`costMatrix`
-* :ref:`tsp`
-* The queries use the :ref:`sampledata` network.
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
-
diff --git a/src/costMatrix/doc/pgr_dijkstraCostMatrix.rst b/src/costMatrix/doc/pgr_dijkstraCostMatrix.rst
deleted file mode 100644
index c7cc3f4..0000000
--- a/src/costMatrix/doc/pgr_dijkstraCostMatrix.rst
+++ /dev/null
@@ -1,144 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_dijkstraCostMatrix:
-
-pgr_dijkstraCostMatrix - proposed
-===============================================================================
-
-Name
--------------------------------------------------------------------------------
-
-``pgr_dijkstraCostMatrix`` - Calculates the a cost matrix using pgr_dijktras.
-
-
-.. include:: proposed.rst
-   :start-after: begin-warning
-   :end-before: end-warning
-
-
-.. figure:: images/boost-inside.jpeg
-   :target: http://www.boost.org/libs/graph
-
-   Boost Graph Inside
-
-.. rubric:: Availability: 2.3.0
-
-Synopsis
--------------------------------------------------------------------------------
-
-Using Dijkstra algorithm, calculate and return a cost matrix.
-
-Signature Summary
------------------
-
-.. code-block:: none
-
-    pgr_dijkstraCostMatrix(edges_sql, start_vids)
-    pgr_dijkstraCostMatrix(edges_sql, start_vids, directed)
-    RETURNS SET OF (start_vid, end_vid, agg_cost)
-
-
-
-Signatures
--------------------------------------------------------------------------------
-
-.. index::
-    single: dijkstraCostMatrix(Minimal Use) - Proposed
-
-Minimal Signature
-...............................................................................
-
-The minimal signature:
-    - Is for a **directed** graph.
-
-.. code-block:: none
-
-    pgr_dijkstraCostMatrix(edges_sql, start_vid)
-    RETURNS SET OF (start_vid, end_vid, agg_cost)
-
-
-:Example: Cost matrix for vertices 1, 2, 3, and 4.
-
-
-.. literalinclude:: doc-pgr_fooDmatrix.queries
-   :start-after: -- dijkstra q1
-   :end-before: -- dijkstra q2
-
-
-.. index::
-    single: dijkstraCostMatrix(Complete Signature) - Proposed
-
-Complete Signature
-...............................................................................
-
-.. code-block:: none
-
-    pgr_dijkstraCostMatrix(edges_sql, start_vids, directed:=true)
-    RETURNS SET OF (start_vid, end_vid, agg_cost)
-
-
-:Example: Cost matrix for an undirected graph for vertices 1, 2, 3, and 4.
-
-This example returns a symmetric cost matrix.
-
-.. literalinclude:: doc-pgr_fooDmatrix.queries
-   :start-after: -- dijkstra q2
-   :end-before: -- dijkstra q3
-
-
-Description of the Signatures
--------------------------------------------------------------------------------
-
-.. include:: pgRouting-concepts.rst
-    :start-after: basic_edges_sql_start
-    :end-before: basic_edges_sql_end
-
-
-
-Description of the parameters of the signatures
-...............................................................................
-
-================ ====================== =================================================
-Parameter        Type                   Description
-================ ====================== =================================================
-**edges_sql**    ``TEXT``               Edges SQL query as described above.
-**start_vids**   ``ARRAY[ANY-INTEGER]`` Array of identifiers of the vertices.
-**directed**     ``BOOLEAN``            (optional). When ``false`` the graph is considered as Undirected. Default is ``true`` which considers the graph as Directed.
-================ ====================== =================================================
-
-
-.. include:: pgRouting-concepts.rst
-    :start-after: return_cost_start
-    :end-before: return_cost_end
-
-
-Examples
--------------------------------------------------------------------------------
-
-:Example: Use with tsp
-
-.. literalinclude:: doc-pgr_fooDmatrix.queries
-   :start-after: -- dijkstra q3
-   :end-before: -- dijkstra q4
-
-
-See Also
--------------------------------------------------------------------------------
-
-* :ref:`dijkstra`
-* :ref:`costMatrix`
-* :ref:`tsp`
-* The queries use the :ref:`sampledata` network.
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
-
diff --git a/src/costMatrix/sql/CMakeLists.txt b/src/costMatrix/sql/CMakeLists.txt
deleted file mode 100644
index aaab586..0000000
--- a/src/costMatrix/sql/CMakeLists.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-# Append in local scope
-LIST(APPEND PACKAGE_SQL_FILES
-    ${CMAKE_CURRENT_SOURCE_DIR}/withPointsCostMatrix.sql
-    ${CMAKE_CURRENT_SOURCE_DIR}/dijkstraCostMatrix.sql
-    ${CMAKE_CURRENT_SOURCE_DIR}/astarCostMatrix.sql
-
-    )
-
-# set in parent scope
-SET(PACKAGE_SQL_FILES "${PACKAGE_SQL_FILES}" PARENT_SCOPE)
diff --git a/src/costMatrix/sql/astarCostMatrix.sql b/src/costMatrix/sql/astarCostMatrix.sql
deleted file mode 100644
index c793afc..0000000
--- a/src/costMatrix/sql/astarCostMatrix.sql
+++ /dev/null
@@ -1,51 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: astar.sql
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer: 
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: 
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-CREATE OR REPLACE FUNCTION pgr_astarCostMatrix(
-    edges_sql TEXT, -- XY edges sql
-    vids ANYARRAY,
-    directed BOOLEAN DEFAULT true,
-    heuristic INTEGER DEFAULT 5,
-    factor FLOAT DEFAULT 1.0,
-    epsilon FLOAT DEFAULT 1.0,
-    OUT start_vid BIGINT,
-    OUT end_vid BIGINT,
-    OUT agg_cost FLOAT)
-
-RETURNS SETOF RECORD AS
-$BODY$
-BEGIN
-    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
-    FROM _pgr_astar(_pgr_get_statement($1), $2, $2, $3, $4, $5, $6, true) a;
-END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
-
diff --git a/src/costMatrix/sql/withPointsCostMatrix.sql b/src/costMatrix/sql/withPointsCostMatrix.sql
deleted file mode 100644
index ca5d106..0000000
--- a/src/costMatrix/sql/withPointsCostMatrix.sql
+++ /dev/null
@@ -1,53 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: withPointsCost.sql
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer: 
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: 
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-/*
-MANY TO MANY
-*/
-
-CREATE OR REPLACE FUNCTION pgr_withPointsCostMatrix(
-    edges_sql TEXT,
-    points_sql TEXT,
-    pids ANYARRAY,
-    directed BOOLEAN DEFAULT true,
-    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
-
-    OUT start_vid BIGINT,
-    OUT end_vid BIGINT,
-    OUT agg_cost float)
-RETURNS SETOF RECORD AS
-$BODY$
-BEGIN
-    RETURN query SELECT a.start_pid, a.end_pid, a.agg_cost
-        FROM _pgr_withPoints($1, $2, $3, $3, $4,  $5, TRUE, TRUE) AS a;
-END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
diff --git a/src/costMatrix/test/doc-pgr_fooDmatrix-mac.test.sql b/src/costMatrix/test/doc-pgr_fooDmatrix-mac.test.sql
index 007e026..0ad5918 100644
--- a/src/costMatrix/test/doc-pgr_fooDmatrix-mac.test.sql
+++ b/src/costMatrix/test/doc-pgr_fooDmatrix-mac.test.sql
@@ -1,5 +1,4 @@
 
-SET client_min_messages TO WARNING;
 \echo -- dijkstra q1
 SELECT * FROM pgr_dijkstraCostMatrix(
     'SELECT id, source, target, cost, reverse_cost FROM edge_table',
diff --git a/src/costMatrix/test/doc-pgr_fooDmatrix-windows.result b/src/costMatrix/test/doc-pgr_fooDmatrix-windows.result
index 6eb4be0..d760348 100644
--- a/src/costMatrix/test/doc-pgr_fooDmatrix-windows.result
+++ b/src/costMatrix/test/doc-pgr_fooDmatrix-windows.result
@@ -1,66 +1,324 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 -- dijkstra q1
-1|2|1
-1|3|6
-1|4|5
-2|1|1
-2|3|5
-2|4|4
-3|1|2
-3|2|1
-3|4|3
-4|1|3
-4|2|2
-4|3|1
+SELECT * FROM pgr_dijkstraCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5)
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         1 |       2 |        1
+         1 |       3 |        6
+         1 |       4 |        5
+         2 |       1 |        1
+         2 |       3 |        5
+         2 |       4 |        4
+         3 |       1 |        2
+         3 |       2 |        1
+         3 |       4 |        3
+         4 |       1 |        3
+         4 |       2 |        2
+         4 |       3 |        1
+(12 rows)
+
 -- dijkstra q2
-1|2|1
-1|3|2
-1|4|3
-2|1|1
-2|3|1
-2|4|2
-3|1|2
-3|2|1
-3|4|1
-4|1|3
-4|2|2
-4|3|1
+SELECT * FROM pgr_dijkstraCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+    false
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         1 |       2 |        1
+         1 |       3 |        2
+         1 |       4 |        3
+         2 |       1 |        1
+         2 |       3 |        1
+         2 |       4 |        2
+         3 |       1 |        2
+         3 |       2 |        1
+         3 |       4 |        1
+         4 |       1 |        3
+         4 |       2 |        2
+         4 |       3 |        1
+(12 rows)
+
 -- dijkstra q3
-1|1|1|0
-2|2|1|1
-3|3|1|2
-4|4|3|3
-5|1|0|6
+SELECT * FROM pgr_TSP(
+    $$
+    SELECT * FROM pgr_dijkstraCostMatrix(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+        (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+        false
+    )
+    $$,
+    randomize := false
+);
+ seq | node | cost | agg_cost 
+-----+------+------+----------
+   1 |    1 |    1 |        0
+   2 |    2 |    1 |        1
+   3 |    3 |    1 |        2
+   4 |    4 |    3 |        3
+   5 |    1 |    0 |        6
+(5 rows)
+
 -- dijkstra q4
 -- withPoints q1
--6|-1|1.3
--6|3|4.3
--6|6|1.3
--1|-6|1.3
--1|3|5.6
--1|6|2.6
-3|-6|1.7
-3|-1|1.6
-3|6|1
-6|-6|1.3
-6|-1|2.6
-6|3|3
+SELECT * FROM pgr_withPointsCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction from pointsOfInterest',
+    array[-1, 3, 6, -6]);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+        -6 |      -1 |      1.3
+        -6 |       3 |      4.3
+        -6 |       6 |      1.3
+        -1 |      -6 |      1.3
+        -1 |       3 |      5.6
+        -1 |       6 |      2.6
+         3 |      -6 |      1.7
+         3 |      -1 |      1.6
+         3 |       6 |        1
+         6 |      -6 |      1.3
+         6 |      -1 |      2.6
+         6 |       3 |        3
+(12 rows)
+
 -- withPoints q2
--6|-1|1.3
--6|3|1.7
--6|6|1.3
--1|-6|1.3
--1|3|1.6
--1|6|2.6
-3|-6|1.7
-3|-1|1.6
-3|6|1
-6|-6|1.3
-6|-1|2.6
-6|3|1
+SELECT * FROM pgr_withPointsCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction from pointsOfInterest',
+    array[-1, 3, 6, -6], directed := false);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+        -6 |      -1 |      1.3
+        -6 |       3 |      1.7
+        -6 |       6 |      1.3
+        -1 |      -6 |      1.3
+        -1 |       3 |      1.6
+        -1 |       6 |      2.6
+         3 |      -6 |      1.7
+         3 |      -1 |      1.6
+         3 |       6 |        1
+         6 |      -6 |      1.3
+         6 |      -1 |      2.6
+         6 |       3 |        1
+(12 rows)
+
 -- withPoints q3
-1|-6|1.3|0
-2|6|1|1.3
-3|3|1.6|2.3
-4|-1|1.3|3.9
-5|-6|0|5.2
+SELECT * FROM pgr_TSP(
+    $$
+    SELECT * FROM pgr_withPointsCostMatrix(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+        'SELECT pid, edge_id, fraction from pointsOfInterest',
+        array[-1, 3, 6, -6], directed := false);
+    $$,
+    randomize := false
+);
+ seq | node | cost | agg_cost 
+-----+------+------+----------
+   1 |   -6 |  1.3 |        0
+   2 |    6 |    1 |      1.3
+   3 |    3 |  1.6 |      2.3
+   4 |   -1 |  1.3 |      3.9
+   5 |   -6 |    0 |      5.2
+(5 rows)
+
 -- withPoints q4
+-- astar q1
+SELECT * FROM pgr_aStarCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5)
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       1 |        1
+         3 |       1 |        2
+         4 |       1 |        3
+         1 |       2 |        1
+         3 |       2 |        1
+         4 |       2 |        2
+         1 |       3 |        6
+         2 |       3 |        5
+         4 |       3 |        1
+         1 |       4 |        5
+         2 |       4 |        4
+         3 |       4 |        3
+(12 rows)
+
+-- astar q2
+SELECT * FROM pgr_aStarCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+    directed := false, heuristic := 2
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       1 |        1
+         3 |       1 |        2
+         4 |       1 |        3
+         1 |       2 |        1
+         3 |       2 |        1
+         4 |       2 |        2
+         1 |       3 |        2
+         2 |       3 |        1
+         4 |       3 |        1
+         1 |       4 |        3
+         2 |       4 |        2
+         3 |       4 |        1
+(12 rows)
+
+-- astar q3
+SELECT * FROM pgr_TSP(
+    $$
+    SELECT * FROM pgr_aStarCostMatrix(
+        'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+        (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+        directed:= false, heuristic := 2
+    )
+    $$,
+    randomize := false
+);
+ seq | node | cost | agg_cost 
+-----+------+------+----------
+   1 |    1 |    1 |        0
+   2 |    2 |    1 |        1
+   3 |    3 |    1 |        2
+   4 |    4 |    3 |        3
+   5 |    1 |    0 |        6
+(5 rows)
+
+-- astar q4
+-- bdDijkstra q1
+SELECT * FROM pgr_bdDijkstraCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5)
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         1 |       2 |        1
+         1 |       3 |        6
+         1 |       4 |        5
+         2 |       1 |        1
+         2 |       3 |        5
+         2 |       4 |        4
+         3 |       1 |        2
+         3 |       2 |        1
+         3 |       4 |        3
+         4 |       1 |        3
+         4 |       2 |        2
+         4 |       3 |        1
+(12 rows)
+
+-- bdDijkstra q2
+SELECT * FROM pgr_bdDijkstraCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+    false
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         1 |       2 |        1
+         1 |       3 |        2
+         1 |       4 |        3
+         2 |       1 |        1
+         2 |       3 |        1
+         2 |       4 |        2
+         3 |       1 |        2
+         3 |       2 |        1
+         3 |       4 |        1
+         4 |       1 |        3
+         4 |       2 |        2
+         4 |       3 |        1
+(12 rows)
+
+-- bdDijkstra q3
+SELECT * FROM pgr_TSP(
+    $$
+    SELECT * FROM pgr_bdDijkstraCostMatrix(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+        (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+        false
+    )
+    $$,
+    randomize := false
+);
+ seq | node | cost | agg_cost 
+-----+------+------+----------
+   1 |    1 |    1 |        0
+   2 |    2 |    1 |        1
+   3 |    3 |    1 |        2
+   4 |    4 |    3 |        3
+   5 |    1 |    0 |        6
+(5 rows)
+
+-- bdDijkstra q4
+-- bdAstar q1
+SELECT * FROM pgr_bdAstarCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5)
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         1 |       2 |        1
+         1 |       3 |        6
+         1 |       4 |        5
+         2 |       1 |        1
+         2 |       3 |        5
+         2 |       4 |        4
+         3 |       1 |        2
+         3 |       2 |        1
+         3 |       4 |        3
+         4 |       1 |        3
+         4 |       2 |        2
+         4 |       3 |        1
+(12 rows)
+
+-- bdAstar q2
+SELECT * FROM pgr_bdAstarCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+    false
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         1 |       2 |        1
+         1 |       3 |        2
+         1 |       4 |        3
+         2 |       1 |        1
+         2 |       3 |        1
+         2 |       4 |        2
+         3 |       1 |        2
+         3 |       2 |        1
+         3 |       4 |        1
+         4 |       1 |        3
+         4 |       2 |        2
+         4 |       3 |        1
+(12 rows)
+
+-- bdAstar q3
+SELECT * FROM pgr_TSP(
+    $$
+    SELECT * FROM pgr_bdAstarCostMatrix(
+        'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+        (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+        false
+    )
+    $$,
+    randomize := false
+);
+ seq | node | cost | agg_cost 
+-----+------+------+----------
+   1 |    1 |    1 |        0
+   2 |    2 |    1 |        1
+   3 |    3 |    1 |        2
+   4 |    4 |    3 |        3
+   5 |    1 |    0 |        6
+(5 rows)
+
+-- bdAstar q4
+ROLLBACK;
+ROLLBACK
diff --git a/src/costMatrix/test/doc-pgr_fooDmatrix-windows.test.sql b/src/costMatrix/test/doc-pgr_fooDmatrix-windows.test.sql
index 007e026..e03bd21 100644
--- a/src/costMatrix/test/doc-pgr_fooDmatrix-windows.test.sql
+++ b/src/costMatrix/test/doc-pgr_fooDmatrix-windows.test.sql
@@ -1,5 +1,7 @@
 
-SET client_min_messages TO WARNING;
+------------------------
+-- dijkstra
+------------------------
 \echo -- dijkstra q1
 SELECT * FROM pgr_dijkstraCostMatrix(
     'SELECT id, source, target, cost, reverse_cost FROM edge_table',
@@ -24,7 +26,9 @@ SELECT * FROM pgr_TSP(
 );
 \echo -- dijkstra q4
 
+------------------------
 -- withPoints
+------------------------
 \echo -- withPoints q1
 SELECT * FROM pgr_withPointsCostMatrix(
     'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
@@ -47,3 +51,85 @@ SELECT * FROM pgr_TSP(
 );
 \echo -- withPoints q4
 
+
+------------------------
+-- pgr_aStar
+------------------------
+\echo -- astar q1
+SELECT * FROM pgr_aStarCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5)
+);
+\echo -- astar q2
+SELECT * FROM pgr_aStarCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+    directed := false, heuristic := 2
+);
+\echo -- astar q3
+SELECT * FROM pgr_TSP(
+    $$
+    SELECT * FROM pgr_aStarCostMatrix(
+        'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+        (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+        directed:= false, heuristic := 2
+    )
+    $$,
+    randomize := false
+);
+\echo -- astar q4
+
+
+------------------------
+-- bddijkstra
+------------------------
+\echo -- bdDijkstra q1
+SELECT * FROM pgr_bdDijkstraCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5)
+);
+\echo -- bdDijkstra q2
+SELECT * FROM pgr_bdDijkstraCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+    false
+);
+\echo -- bdDijkstra q3
+SELECT * FROM pgr_TSP(
+    $$
+    SELECT * FROM pgr_bdDijkstraCostMatrix(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+        (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+        false
+    )
+    $$,
+    randomize := false
+);
+\echo -- bdDijkstra q4
+
+------------------------
+-- bdAstar
+------------------------
+\echo -- bdAstar q1
+SELECT * FROM pgr_bdAstarCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5)
+);
+\echo -- bdAstar q2
+SELECT * FROM pgr_bdAstarCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+    false
+);
+\echo -- bdAstar q3
+SELECT * FROM pgr_TSP(
+    $$
+    SELECT * FROM pgr_bdAstarCostMatrix(
+        'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+        (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+        false
+    )
+    $$,
+    randomize := false
+);
+\echo -- bdAstar q4
diff --git a/src/costMatrix/test/doc-pgr_fooDmatrix.result b/src/costMatrix/test/doc-pgr_fooDmatrix.result
index 5841300..7c96952 100644
--- a/src/costMatrix/test/doc-pgr_fooDmatrix.result
+++ b/src/costMatrix/test/doc-pgr_fooDmatrix.result
@@ -1,99 +1,324 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 -- dijkstra q1
-1|2|1
-1|3|6
-1|4|5
-2|1|1
-2|3|5
-2|4|4
-3|1|2
-3|2|1
-3|4|3
-4|1|3
-4|2|2
-4|3|1
+SELECT * FROM pgr_dijkstraCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5)
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         1 |       2 |        1
+         1 |       3 |        6
+         1 |       4 |        5
+         2 |       1 |        1
+         2 |       3 |        5
+         2 |       4 |        4
+         3 |       1 |        2
+         3 |       2 |        1
+         3 |       4 |        3
+         4 |       1 |        3
+         4 |       2 |        2
+         4 |       3 |        1
+(12 rows)
+
 -- dijkstra q2
-1|2|1
-1|3|2
-1|4|3
-2|1|1
-2|3|1
-2|4|2
-3|1|2
-3|2|1
-3|4|1
-4|1|3
-4|2|2
-4|3|1
+SELECT * FROM pgr_dijkstraCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+    false
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         1 |       2 |        1
+         1 |       3 |        2
+         1 |       4 |        3
+         2 |       1 |        1
+         2 |       3 |        1
+         2 |       4 |        2
+         3 |       1 |        2
+         3 |       2 |        1
+         3 |       4 |        1
+         4 |       1 |        3
+         4 |       2 |        2
+         4 |       3 |        1
+(12 rows)
+
 -- dijkstra q3
-1|1|1|0
-2|2|1|1
-3|3|1|2
-4|4|3|3
-5|1|0|6
+SELECT * FROM pgr_TSP(
+    $$
+    SELECT * FROM pgr_dijkstraCostMatrix(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+        (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+        false
+    )
+    $$,
+    randomize := false
+);
+ seq | node | cost | agg_cost 
+-----+------+------+----------
+   1 |    1 |    1 |        0
+   2 |    2 |    1 |        1
+   3 |    3 |    1 |        2
+   4 |    4 |    3 |        3
+   5 |    1 |    0 |        6
+(5 rows)
+
 -- dijkstra q4
 -- withPoints q1
--6|-1|1.3
--6|3|4.3
--6|6|1.3
--1|-6|1.3
--1|3|5.6
--1|6|2.6
-3|-6|1.7
-3|-1|1.6
-3|6|1
-6|-6|1.3
-6|-1|2.6
-6|3|3
+SELECT * FROM pgr_withPointsCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction from pointsOfInterest',
+    array[-1, 3, 6, -6]);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+        -6 |      -1 |      1.3
+        -6 |       3 |      4.3
+        -6 |       6 |      1.3
+        -1 |      -6 |      1.3
+        -1 |       3 |      5.6
+        -1 |       6 |      2.6
+         3 |      -6 |      1.7
+         3 |      -1 |      1.6
+         3 |       6 |        1
+         6 |      -6 |      1.3
+         6 |      -1 |      2.6
+         6 |       3 |        3
+(12 rows)
+
 -- withPoints q2
--6|-1|1.3
--6|3|1.7
--6|6|1.3
--1|-6|1.3
--1|3|1.6
--1|6|2.6
-3|-6|1.7
-3|-1|1.6
-3|6|1
-6|-6|1.3
-6|-1|2.6
-6|3|1
+SELECT * FROM pgr_withPointsCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction from pointsOfInterest',
+    array[-1, 3, 6, -6], directed := false);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+        -6 |      -1 |      1.3
+        -6 |       3 |      1.7
+        -6 |       6 |      1.3
+        -1 |      -6 |      1.3
+        -1 |       3 |      1.6
+        -1 |       6 |      2.6
+         3 |      -6 |      1.7
+         3 |      -1 |      1.6
+         3 |       6 |        1
+         6 |      -6 |      1.3
+         6 |      -1 |      2.6
+         6 |       3 |        1
+(12 rows)
+
 -- withPoints q3
-1|-6|1.3|0
-2|-1|1.6|1.3
-3|3|1|2.9
-4|6|1.3|3.9
-5|-6|0|5.2
+SELECT * FROM pgr_TSP(
+    $$
+    SELECT * FROM pgr_withPointsCostMatrix(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+        'SELECT pid, edge_id, fraction from pointsOfInterest',
+        array[-1, 3, 6, -6], directed := false);
+    $$,
+    randomize := false
+);
+ seq | node | cost | agg_cost 
+-----+------+------+----------
+   1 |   -6 |  1.3 |        0
+   2 |   -1 |  1.6 |      1.3
+   3 |    3 |    1 |      2.9
+   4 |    6 |  1.3 |      3.9
+   5 |   -6 |    0 |      5.2
+(5 rows)
+
 -- withPoints q4
 -- astar q1
-1|2|1
-1|3|6
-1|4|5
-2|1|1
-2|3|5
-2|4|4
-3|1|2
-3|2|1
-3|4|3
-4|1|3
-4|2|2
-4|3|1
+SELECT * FROM pgr_aStarCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5)
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       1 |        1
+         3 |       1 |        2
+         4 |       1 |        3
+         1 |       2 |        1
+         3 |       2 |        1
+         4 |       2 |        2
+         1 |       3 |        6
+         2 |       3 |        5
+         4 |       3 |        1
+         1 |       4 |        5
+         2 |       4 |        4
+         3 |       4 |        3
+(12 rows)
+
 -- astar q2
-1|2|1
-1|3|2
-1|4|3
-2|1|1
-2|3|1
-2|4|2
-3|1|2
-3|2|1
-3|4|1
-4|1|3
-4|2|2
-4|3|1
+SELECT * FROM pgr_aStarCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+    directed := false, heuristic := 2
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       1 |        1
+         3 |       1 |        2
+         4 |       1 |        3
+         1 |       2 |        1
+         3 |       2 |        1
+         4 |       2 |        2
+         1 |       3 |        2
+         2 |       3 |        1
+         4 |       3 |        1
+         1 |       4 |        3
+         2 |       4 |        2
+         3 |       4 |        1
+(12 rows)
+
 -- astar q3
-1|1|1|0
-2|2|1|1
-3|3|1|2
-4|4|3|3
-5|1|0|6
+SELECT * FROM pgr_TSP(
+    $$
+    SELECT * FROM pgr_aStarCostMatrix(
+        'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+        (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+        directed:= false, heuristic := 2
+    )
+    $$,
+    randomize := false
+);
+ seq | node | cost | agg_cost 
+-----+------+------+----------
+   1 |    1 |    1 |        0
+   2 |    2 |    1 |        1
+   3 |    3 |    1 |        2
+   4 |    4 |    3 |        3
+   5 |    1 |    0 |        6
+(5 rows)
+
 -- astar q4
+-- bdDijkstra q1
+SELECT * FROM pgr_bdDijkstraCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5)
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         1 |       2 |        1
+         1 |       3 |        6
+         1 |       4 |        5
+         2 |       1 |        1
+         2 |       3 |        5
+         2 |       4 |        4
+         3 |       1 |        2
+         3 |       2 |        1
+         3 |       4 |        3
+         4 |       1 |        3
+         4 |       2 |        2
+         4 |       3 |        1
+(12 rows)
+
+-- bdDijkstra q2
+SELECT * FROM pgr_bdDijkstraCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+    false
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         1 |       2 |        1
+         1 |       3 |        2
+         1 |       4 |        3
+         2 |       1 |        1
+         2 |       3 |        1
+         2 |       4 |        2
+         3 |       1 |        2
+         3 |       2 |        1
+         3 |       4 |        1
+         4 |       1 |        3
+         4 |       2 |        2
+         4 |       3 |        1
+(12 rows)
+
+-- bdDijkstra q3
+SELECT * FROM pgr_TSP(
+    $$
+    SELECT * FROM pgr_bdDijkstraCostMatrix(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+        (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+        false
+    )
+    $$,
+    randomize := false
+);
+ seq | node | cost | agg_cost 
+-----+------+------+----------
+   1 |    1 |    1 |        0
+   2 |    2 |    1 |        1
+   3 |    3 |    1 |        2
+   4 |    4 |    3 |        3
+   5 |    1 |    0 |        6
+(5 rows)
+
+-- bdDijkstra q4
+-- bdAstar q1
+SELECT * FROM pgr_bdAstarCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5)
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         1 |       2 |        1
+         1 |       3 |        6
+         1 |       4 |        5
+         2 |       1 |        1
+         2 |       3 |        5
+         2 |       4 |        4
+         3 |       1 |        2
+         3 |       2 |        1
+         3 |       4 |        3
+         4 |       1 |        3
+         4 |       2 |        2
+         4 |       3 |        1
+(12 rows)
+
+-- bdAstar q2
+SELECT * FROM pgr_bdAstarCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+    false
+);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         1 |       2 |        1
+         1 |       3 |        2
+         1 |       4 |        3
+         2 |       1 |        1
+         2 |       3 |        1
+         2 |       4 |        2
+         3 |       1 |        2
+         3 |       2 |        1
+         3 |       4 |        1
+         4 |       1 |        3
+         4 |       2 |        2
+         4 |       3 |        1
+(12 rows)
+
+-- bdAstar q3
+SELECT * FROM pgr_TSP(
+    $$
+    SELECT * FROM pgr_bdAstarCostMatrix(
+        'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+        (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+        false
+    )
+    $$,
+    randomize := false
+);
+ seq | node | cost | agg_cost 
+-----+------+------+----------
+   1 |    1 |    1 |        0
+   2 |    2 |    1 |        1
+   3 |    3 |    1 |        2
+   4 |    4 |    3 |        3
+   5 |    1 |    0 |        6
+(5 rows)
+
+-- bdAstar q4
+ROLLBACK;
+ROLLBACK
diff --git a/src/costMatrix/test/doc-pgr_fooDmatrix.test.sql b/src/costMatrix/test/doc-pgr_fooDmatrix.test.sql
index 5a4ce39..e03bd21 100644
--- a/src/costMatrix/test/doc-pgr_fooDmatrix.test.sql
+++ b/src/costMatrix/test/doc-pgr_fooDmatrix.test.sql
@@ -80,3 +80,56 @@ SELECT * FROM pgr_TSP(
 \echo -- astar q4
 
 
+------------------------
+-- bddijkstra
+------------------------
+\echo -- bdDijkstra q1
+SELECT * FROM pgr_bdDijkstraCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5)
+);
+\echo -- bdDijkstra q2
+SELECT * FROM pgr_bdDijkstraCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+    false
+);
+\echo -- bdDijkstra q3
+SELECT * FROM pgr_TSP(
+    $$
+    SELECT * FROM pgr_bdDijkstraCostMatrix(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+        (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+        false
+    )
+    $$,
+    randomize := false
+);
+\echo -- bdDijkstra q4
+
+------------------------
+-- bdAstar
+------------------------
+\echo -- bdAstar q1
+SELECT * FROM pgr_bdAstarCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5)
+);
+\echo -- bdAstar q2
+SELECT * FROM pgr_bdAstarCostMatrix(
+    'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+    (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+    false
+);
+\echo -- bdAstar q3
+SELECT * FROM pgr_TSP(
+    $$
+    SELECT * FROM pgr_bdAstarCostMatrix(
+        'SELECT id, source, target, cost, reverse_cost, x1, y1, x2, y2 FROM edge_table',
+        (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 5),
+        false
+    )
+    $$,
+    randomize := false
+);
+\echo -- bdAstar q4
diff --git a/src/dijkstra/doc/dijkstra-family.rst b/src/dijkstra/doc/dijkstra-family.rst
deleted file mode 100644
index e0dcf8e..0000000
--- a/src/dijkstra/doc/dijkstra-family.rst
+++ /dev/null
@@ -1,127 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _dijkstra:
-
-Dijkstra - Family of functions
-===============================================================================
-
-.. index from here
-
-* :ref:`pgr_dijkstra` - Dijkstra's algorithm for the shortest paths.
-* :ref:`pgr_dijkstraCost` - Get the aggregate cost of the shortest paths.
-* :ref:`pgr_dijkstraCostMatrix` - Use pgr_dijkstra to create a costs matrix.
-* :ref:`pgr_drivingDistance` - Use pgr_dijkstra to calculate catchament information.
-* :ref:`pgr_ksp` - Use Yen algorithm with pgr_dijkstra to get the K shortest paths.
-* :ref:`pgr_dijkstraVia` - Get a route of a seuence of vertices.
-
-.. index to here
-
-
-.. toctree::
-    :hidden:
-
-    pgr_dijkstra
-    pgr_dijkstraCost
-    pgr_dijkstraCostMatrix
-    pgr_drivingDistance
-    pgr_KSP
-    pgr_dijkstraVia
-
-
-The problem definition (Advanced documentation)
------------------------------------------------
-
-
-Given the following query:
-
-
-pgr_dijkstra(:math:`sql, start_{vid}, end_{vid}, directed`)
-
-where  :math:`sql = \{(id_i, source_i, target_i, cost_i, reverse\_cost_i)\}`
-
-and
-
-  - :math:`source = \bigcup source_i`,
-  - :math:`target = \bigcup target_i`,
-
-The graphs are defined as follows:
-
-.. rubric:: Directed graph
-
-The weighted directed graph, :math:`G_d(V,E)`, is definied by:
-
-* the set of vertices  :math:`V`
-
-  - :math:`V = source \cup target \cup {start_{vid}} \cup  {end_{vid}}`
-
-* the set of edges :math:`E`
-
-  - :math:`E = \begin{cases} &\{(source_i, target_i, cost_i) \text{ when } cost >=0 \} &\quad  \text{ if } reverse\_cost = \varnothing \\ \\ &\{(source_i, target_i, cost_i) \text{ when } cost >=0 \} \\ \cup &\{(target_i, source_i, reverse\_cost_i) \text{ when } reverse\_cost_i >=0)\} &\quad \text{ if } reverse\_cost \neq \varnothing \\ \end{cases}`
-
-
-
-.. rubric:: Undirected graph
-
-The weighted undirected graph, :math:`G_u(V,E)`, is definied by:
-
-* the set of vertices  :math:`V`
-
-  - :math:`V = source \cup target \cup {start_v{vid}} \cup  {end_{vid}}`
-
-
-* the set of edges :math:`E`
-
-  - :math:`E = \begin{cases} &\{(source_i, target_i, cost_i) \text{ when } cost >=0 \} \\ \cup &\{(target_i, source_i, cost_i) \text{ when } cost >=0 \}  &\quad  \text{ if } reverse\_cost = \varnothing \\ \\ &\{(source_i, target_i, cost_i) \text{ when } cost >=0 \} \\ \cup &\{(target_i, source_i, cost_i) \text{ when } cost >=0 \} \\ \cup &\{(target_i, source_i, reverse\_cost_i) \text{ when } reverse\_cost_i >=0)\} \\ \cup &\{(source_i, target_i, reverse\_cost_i) \text{ when } reverse\_co [...]
-
-
-
-.. rubric:: The problem
-
-Given:
-
-  - :math:`start_{vid} \in V` a starting vertex
-  - :math:`end_{vid} \in V` an ending vertex
-  - :math:`G(V,E) = \begin{cases}  G_d(V,E) &\quad \text{ if } directed = true \\ G_u(V,E) &\quad \text{ if } directed = false \\ \end{cases}`
-
-Then:
-
-.. math:: \text{pgr_dijkstra}(sql, start_{vid}, end_{vid}, directed) =
-  \begin{cases}
-  \text{shortest path } \boldsymbol{\pi} \text{ between } start_{vid} \text{and } end_{vid} &\quad \text{if } \exists  \boldsymbol{\pi}  \\
-  \varnothing &\quad \text{otherwise} \\
-  \end{cases}
-
-:math:`\boldsymbol{\pi} = \{(path\_seq_i, node_i, edge_i, cost_i, agg\_cost_i)\}`
-
-where:
-  - :math:`path\_seq_i = i`
-  - :math:`path\_seq_{| \pi |} = | \pi |`
-  - :math:`node_i \in V`
-  - :math:`node_1 = start_{vid}`
-  - :math:`node_{| \pi |}  = end_{vid}`
-  - :math:`\forall i \neq | \pi |, \quad (node_i, node_{i+1}, cost_i) \in E`
-  - :math:`edge_i  = \begin{cases}  id_{(node_i, node_{i+1},cost_i)}  &\quad  \text{when } i \neq | \pi | \\ -1 &\quad  \text{when } i = | \pi | \\ \end{cases}`
-  - :math:`cost_i = cost_{(node_i, node_{i+1})}`
-  - :math:`agg\_cost_i  = \begin{cases}  0   &\quad  \text{when } i = 1  \\ \displaystyle\sum_{k=1}^{i}  cost_{(node_{k-1}, node_k)}  &\quad  \text{when } i \neq 1 \\ \end{cases}`
-
-
-
-In other words: The algorithm returns a the shortest path between :math:`start_{vid}` and :math:`end_{vid}` , if it exists, in terms of a sequence of nodes  and of edges,
-  - :math:`path\_seq` indicates the relative position in the path of the :math:`node` or :math:`edge`.
-  - :math:`cost` is the cost of the edge to be used to go to the next node.
-  - :math:`agg\_cost` is the cost from the :math:`start_{vid}` up to the node.
-
-
-If there is no path, the resulting set is empty.
-
-
-
-
-
diff --git a/src/dijkstra/doc/dijkstra-v2.queries b/src/dijkstra/doc/dijkstra-v2.queries
deleted file mode 100644
index a5dcc34..0000000
--- a/src/dijkstra/doc/dijkstra-v2.queries
+++ /dev/null
@@ -1,51 +0,0 @@
-SET client_min_messages TO notice;
-SET
---q1
-SELECT * FROM pgr_dijkstra(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
-    2,3, true, false);
-NOTICE:  Deprecated function
- seq | id1 | id2 | cost 
------+-----+-----+------
-(0 rows)
-
---q2
-SELECT * FROM pgr_dijkstra(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
-    2,3, true, true);
-NOTICE:  Deprecated function
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |   2 |   4 |    1
-   1 |   5 |   8 |    1
-   2 |   6 |   9 |    1
-   3 |   9 |  16 |    1
-   4 |   4 |   3 |    1
-   5 |   3 |  -1 |    0
-(6 rows)
-
---q3
-SELECT * FROM pgr_dijkstra(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost FROM edge_table',
-     2, 3, false, false);
-NOTICE:  Deprecated function
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |   2 |   4 |    1
-   1 |   5 |   8 |    1
-   2 |   6 |   5 |    1
-   3 |   3 |  -1 |    0
-(4 rows)
-
---q4
-SELECT * FROM pgr_dijkstra(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
-     2, 3, false, true);
-NOTICE:  Deprecated function
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |   2 |   2 |    1
-   1 |   3 |  -1 |    0
-(2 rows)
-
---q5
diff --git a/src/dijkstra/doc/doc-pgr_dijkstra.queries b/src/dijkstra/doc/doc-pgr_dijkstra.queries
deleted file mode 100644
index a61fe72..0000000
--- a/src/dijkstra/doc/doc-pgr_dijkstra.queries
+++ /dev/null
@@ -1,622 +0,0 @@
-BEGIN;
-BEGIN
-SET client_min_messages TO NOTICE;
-SET
--- q1
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    2, 3
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |    2 |    4 |    1 |        0
-   2 |        2 |    5 |    8 |    1 |        1
-   3 |        3 |    6 |    9 |    1 |        2
-   4 |        4 |    9 |   16 |    1 |        3
-   5 |        5 |    4 |    3 |    1 |        4
-   6 |        6 |    3 |   -1 |    0 |        5
-(6 rows)
-
--- q2
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    2, 3,
-    FALSE
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |    2 |    2 |    1 |        0
-   2 |        2 |    3 |   -1 |    0 |        1
-(2 rows)
-
--- q3
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost FROM edge_table',
-    2, ARRAY[3,5],
-    FALSE
-);
- seq | path_seq | end_vid | node | edge | cost | agg_cost 
------+----------+---------+------+------+------+----------
-   1 |        1 |       3 |    2 |    4 |    1 |        0
-   2 |        2 |       3 |    5 |    8 |    1 |        1
-   3 |        3 |       3 |    6 |    5 |    1 |        2
-   4 |        4 |       3 |    3 |   -1 |    0 |        3
-   5 |        1 |       5 |    2 |    4 |    1 |        0
-   6 |        2 |       5 |    5 |   -1 |    0 |        1
-(6 rows)
-
--- q4
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    ARRAY[2,11], 5
-);
- seq | path_seq | start_vid | node | edge | cost | agg_cost 
------+----------+-----------+------+------+------+----------
-   1 |        1 |         2 |    2 |    4 |    1 |        0
-   2 |        2 |         2 |    5 |   -1 |    0 |        1
-   3 |        1 |        11 |   11 |   13 |    1 |        0
-   4 |        2 |        11 |   12 |   15 |    1 |        1
-   5 |        3 |        11 |    9 |    9 |    1 |        2
-   6 |        4 |        11 |    6 |    8 |    1 |        3
-   7 |        5 |        11 |    5 |   -1 |    0 |        4
-(7 rows)
-
--- q5
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    ARRAY[2,11], ARRAY[3,5],
-    FALSE
-);
- seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
------+----------+-----------+---------+------+------+------+----------
-   1 |        1 |         2 |       3 |    2 |    2 |    1 |        0
-   2 |        2 |         2 |       3 |    3 |   -1 |    0 |        1
-   3 |        1 |         2 |       5 |    2 |    4 |    1 |        0
-   4 |        2 |         2 |       5 |    5 |   -1 |    0 |        1
-   5 |        1 |        11 |       3 |   11 |   11 |    1 |        0
-   6 |        2 |        11 |       3 |    6 |    5 |    1 |        1
-   7 |        3 |        11 |       3 |    3 |   -1 |    0 |        2
-   8 |        1 |        11 |       5 |   11 |   11 |    1 |        0
-   9 |        2 |        11 |       5 |    6 |    8 |    1 |        1
-  10 |        3 |        11 |       5 |    5 |   -1 |    0 |        2
-(10 rows)
-
--- q6
--- q7
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    2, 3
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |    2 |    4 |    1 |        0
-   2 |        2 |    5 |    8 |    1 |        1
-   3 |        3 |    6 |    9 |    1 |        2
-   4 |        4 |    9 |   16 |    1 |        3
-   5 |        5 |    4 |    3 |    1 |        4
-   6 |        6 |    3 |   -1 |    0 |        5
-(6 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    2, 5
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |    2 |    4 |    1 |        0
-   2 |        2 |    5 |   -1 |    0 |        1
-(2 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    2, ARRAY[3,5]
-);
- seq | path_seq | end_vid | node | edge | cost | agg_cost 
------+----------+---------+------+------+------+----------
-   1 |        1 |       3 |    2 |    4 |    1 |        0
-   2 |        2 |       3 |    5 |    8 |    1 |        1
-   3 |        3 |       3 |    6 |    9 |    1 |        2
-   4 |        4 |       3 |    9 |   16 |    1 |        3
-   5 |        5 |       3 |    4 |    3 |    1 |        4
-   6 |        6 |       3 |    3 |   -1 |    0 |        5
-   7 |        1 |       5 |    2 |    4 |    1 |        0
-   8 |        2 |       5 |    5 |   -1 |    0 |        1
-(8 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    11, 3
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |   11 |   13 |    1 |        0
-   2 |        2 |   12 |   15 |    1 |        1
-   3 |        3 |    9 |   16 |    1 |        2
-   4 |        4 |    4 |    3 |    1 |        3
-   5 |        5 |    3 |   -1 |    0 |        4
-(5 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    11, 5
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |   11 |   13 |    1 |        0
-   2 |        2 |   12 |   15 |    1 |        1
-   3 |        3 |    9 |    9 |    1 |        2
-   4 |        4 |    6 |    8 |    1 |        3
-   5 |        5 |    5 |   -1 |    0 |        4
-(5 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    ARRAY[2,11], 5
-);
- seq | path_seq | start_vid | node | edge | cost | agg_cost 
------+----------+-----------+------+------+------+----------
-   1 |        1 |         2 |    2 |    4 |    1 |        0
-   2 |        2 |         2 |    5 |   -1 |    0 |        1
-   3 |        1 |        11 |   11 |   13 |    1 |        0
-   4 |        2 |        11 |   12 |   15 |    1 |        1
-   5 |        3 |        11 |    9 |    9 |    1 |        2
-   6 |        4 |        11 |    6 |    8 |    1 |        3
-   7 |        5 |        11 |    5 |   -1 |    0 |        4
-(7 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    ARRAY[2, 11], ARRAY[3,5]
-);
- seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
------+----------+-----------+---------+------+------+------+----------
-   1 |        1 |         2 |       3 |    2 |    4 |    1 |        0
-   2 |        2 |         2 |       3 |    5 |    8 |    1 |        1
-   3 |        3 |         2 |       3 |    6 |    9 |    1 |        2
-   4 |        4 |         2 |       3 |    9 |   16 |    1 |        3
-   5 |        5 |         2 |       3 |    4 |    3 |    1 |        4
-   6 |        6 |         2 |       3 |    3 |   -1 |    0 |        5
-   7 |        1 |         2 |       5 |    2 |    4 |    1 |        0
-   8 |        2 |         2 |       5 |    5 |   -1 |    0 |        1
-   9 |        1 |        11 |       3 |   11 |   13 |    1 |        0
-  10 |        2 |        11 |       3 |   12 |   15 |    1 |        1
-  11 |        3 |        11 |       3 |    9 |   16 |    1 |        2
-  12 |        4 |        11 |       3 |    4 |    3 |    1 |        3
-  13 |        5 |        11 |       3 |    3 |   -1 |    0 |        4
-  14 |        1 |        11 |       5 |   11 |   13 |    1 |        0
-  15 |        2 |        11 |       5 |   12 |   15 |    1 |        1
-  16 |        3 |        11 |       5 |    9 |    9 |    1 |        2
-  17 |        4 |        11 |       5 |    6 |    8 |    1 |        3
-  18 |        5 |        11 |       5 |    5 |   -1 |    0 |        4
-(18 rows)
-
--- q8
--- q9
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    2, 3,
-    FALSE
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |    2 |    2 |    1 |        0
-   2 |        2 |    3 |   -1 |    0 |        1
-(2 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    2, 5,
-    FALSE
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |    2 |    4 |    1 |        0
-   2 |        2 |    5 |   -1 |    0 |        1
-(2 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    11, 3,
-    FALSE
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |   11 |   11 |    1 |        0
-   2 |        2 |    6 |    5 |    1 |        1
-   3 |        3 |    3 |   -1 |    0 |        2
-(3 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    11, 5,
-    FALSE
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |   11 |   11 |    1 |        0
-   2 |        2 |    6 |    8 |    1 |        1
-   3 |        3 |    5 |   -1 |    0 |        2
-(3 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    ARRAY[2,11], 5,
-    FALSE
-);
- seq | path_seq | start_vid | node | edge | cost | agg_cost 
------+----------+-----------+------+------+------+----------
-   1 |        1 |         2 |    2 |    4 |    1 |        0
-   2 |        2 |         2 |    5 |   -1 |    0 |        1
-   3 |        1 |        11 |   11 |   12 |    1 |        0
-   4 |        2 |        11 |   10 |   10 |    1 |        1
-   5 |        3 |        11 |    5 |   -1 |    0 |        2
-(5 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    2, ARRAY[3,5],
-    FALSE
-);
- seq | path_seq | end_vid | node | edge | cost | agg_cost 
------+----------+---------+------+------+------+----------
-   1 |        1 |       3 |    2 |    2 |    1 |        0
-   2 |        2 |       3 |    3 |   -1 |    0 |        1
-   3 |        1 |       5 |    2 |    4 |    1 |        0
-   4 |        2 |       5 |    5 |   -1 |    0 |        1
-(4 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    ARRAY[2, 11], ARRAY[3,5],
-    FALSE
-);
- seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
------+----------+-----------+---------+------+------+------+----------
-   1 |        1 |         2 |       3 |    2 |    2 |    1 |        0
-   2 |        2 |         2 |       3 |    3 |   -1 |    0 |        1
-   3 |        1 |         2 |       5 |    2 |    4 |    1 |        0
-   4 |        2 |         2 |       5 |    5 |   -1 |    0 |        1
-   5 |        1 |        11 |       3 |   11 |   11 |    1 |        0
-   6 |        2 |        11 |       3 |    6 |    5 |    1 |        1
-   7 |        3 |        11 |       3 |    3 |   -1 |    0 |        2
-   8 |        1 |        11 |       5 |   11 |   11 |    1 |        0
-   9 |        2 |        11 |       5 |    6 |    8 |    1 |        1
-  10 |        3 |        11 |       5 |    5 |   -1 |    0 |        2
-(10 rows)
-
--- q10
--- q11
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost FROM edge_table',
-    2, 3
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-(0 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost FROM edge_table',
-    2, 5
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |    2 |    4 |    1 |        0
-   2 |        2 |    5 |   -1 |    0 |        1
-(2 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost FROM edge_table',
-    11, 3
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-(0 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost FROM edge_table',
-    11, 5
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-(0 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost FROM edge_table',
-    ARRAY[2,11], 5
-);
- seq | path_seq | start_vid | node | edge | cost | agg_cost 
------+----------+-----------+------+------+------+----------
-   1 |        1 |         2 |    2 |    4 |    1 |        0
-   2 |        2 |         2 |    5 |   -1 |    0 |        1
-(2 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost FROM edge_table',
-    2, ARRAY[3,5]
-);
- seq | path_seq | end_vid | node | edge | cost | agg_cost 
------+----------+---------+------+------+------+----------
-   1 |        1 |       5 |    2 |    4 |    1 |        0
-   2 |        2 |       5 |    5 |   -1 |    0 |        1
-(2 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost FROM edge_table',
-    ARRAY[2, 11], ARRAY[3,5]
-);
- seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
------+----------+-----------+---------+------+------+------+----------
-   1 |        1 |         2 |       5 |    2 |    4 |    1 |        0
-   2 |        2 |         2 |       5 |    5 |   -1 |    0 |        1
-(2 rows)
-
--- q12
--- q13
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost FROM edge_table',
-    2, 3,
-    FALSE
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |    2 |    4 |    1 |        0
-   2 |        2 |    5 |    8 |    1 |        1
-   3 |        3 |    6 |    5 |    1 |        2
-   4 |        4 |    3 |   -1 |    0 |        3
-(4 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost FROM edge_table',
-    2, 5,
-    FALSE
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |    2 |    4 |    1 |        0
-   2 |        2 |    5 |   -1 |    0 |        1
-(2 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost FROM edge_table',
-    11, 3,
-    FALSE
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |   11 |   11 |    1 |        0
-   2 |        2 |    6 |    5 |    1 |        1
-   3 |        3 |    3 |   -1 |    0 |        2
-(3 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost FROM edge_table',
-    11, 5,
-    FALSE
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |   11 |   11 |    1 |        0
-   2 |        2 |    6 |    8 |    1 |        1
-   3 |        3 |    5 |   -1 |    0 |        2
-(3 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost FROM edge_table',
-    ARRAY[2,11], 5,
-    FALSE
-);
- seq | path_seq | start_vid | node | edge | cost | agg_cost 
------+----------+-----------+------+------+------+----------
-   1 |        1 |         2 |    2 |    4 |    1 |        0
-   2 |        2 |         2 |    5 |   -1 |    0 |        1
-   3 |        1 |        11 |   11 |   12 |    1 |        0
-   4 |        2 |        11 |   10 |   10 |    1 |        1
-   5 |        3 |        11 |    5 |   -1 |    0 |        2
-(5 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost FROM edge_table',
-    2, ARRAY[3,5],
-    FALSE
-);
- seq | path_seq | end_vid | node | edge | cost | agg_cost 
------+----------+---------+------+------+------+----------
-   1 |        1 |       3 |    2 |    4 |    1 |        0
-   2 |        2 |       3 |    5 |    8 |    1 |        1
-   3 |        3 |       3 |    6 |    5 |    1 |        2
-   4 |        4 |       3 |    3 |   -1 |    0 |        3
-   5 |        1 |       5 |    2 |    4 |    1 |        0
-   6 |        2 |       5 |    5 |   -1 |    0 |        1
-(6 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost FROM edge_table',
-    ARRAY[2, 11], ARRAY[3,5],
-    FALSE
-);
- seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
------+----------+-----------+---------+------+------+------+----------
-   1 |        1 |         2 |       3 |    2 |    4 |    1 |        0
-   2 |        2 |         2 |       3 |    5 |    8 |    1 |        1
-   3 |        3 |         2 |       3 |    6 |    5 |    1 |        2
-   4 |        4 |         2 |       3 |    3 |   -1 |    0 |        3
-   5 |        1 |         2 |       5 |    2 |    4 |    1 |        0
-   6 |        2 |         2 |       5 |    5 |   -1 |    0 |        1
-   7 |        1 |        11 |       3 |   11 |   11 |    1 |        0
-   8 |        2 |        11 |       3 |    6 |    5 |    1 |        1
-   9 |        3 |        11 |       3 |    3 |   -1 |    0 |        2
-  10 |        1 |        11 |       5 |   11 |   11 |    1 |        0
-  11 |        2 |        11 |       5 |    6 |    8 |    1 |        1
-  12 |        3 |        11 |       5 |    5 |   -1 |    0 |        2
-(12 rows)
-
--- q14
--- q15
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    2, 3,
-    TRUE     
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |    2 |    4 |    1 |        0
-   2 |        2 |    5 |    8 |    1 |        1
-   3 |        3 |    6 |    9 |    1 |        2
-   4 |        4 |    9 |   16 |    1 |        3
-   5 |        5 |    4 |    3 |    1 |        4
-   6 |        6 |    3 |   -1 |    0 |        5
-(6 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    2,3 
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |    2 |    4 |    1 |        0
-   2 |        2 |    5 |    8 |    1 |        1
-   3 |        3 |    6 |    9 |    1 |        2
-   4 |        4 |    9 |   16 |    1 |        3
-   5 |        5 |    4 |    3 |    1 |        4
-   6 |        6 |    3 |   -1 |    0 |        5
-(6 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    2, ARRAY[3],
-    TRUE     
-);
- seq | path_seq | end_vid | node | edge | cost | agg_cost 
------+----------+---------+------+------+------+----------
-   1 |        1 |       3 |    2 |    4 |    1 |        0
-   2 |        2 |       3 |    5 |    8 |    1 |        1
-   3 |        3 |       3 |    6 |    9 |    1 |        2
-   4 |        4 |       3 |    9 |   16 |    1 |        3
-   5 |        5 |       3 |    4 |    3 |    1 |        4
-   6 |        6 |       3 |    3 |   -1 |    0 |        5
-(6 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    2, ARRAY[3]
-);
- seq | path_seq | end_vid | node | edge | cost | agg_cost 
------+----------+---------+------+------+------+----------
-   1 |        1 |       3 |    2 |    4 |    1 |        0
-   2 |        2 |       3 |    5 |    8 |    1 |        1
-   3 |        3 |       3 |    6 |    9 |    1 |        2
-   4 |        4 |       3 |    9 |   16 |    1 |        3
-   5 |        5 |       3 |    4 |    3 |    1 |        4
-   6 |        6 |       3 |    3 |   -1 |    0 |        5
-(6 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    ARRAY[2], ARRAY[3],
-    TRUE
-);
- seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
------+----------+-----------+---------+------+------+------+----------
-   1 |        1 |         2 |       3 |    2 |    4 |    1 |        0
-   2 |        2 |         2 |       3 |    5 |    8 |    1 |        1
-   3 |        3 |         2 |       3 |    6 |    9 |    1 |        2
-   4 |        4 |         2 |       3 |    9 |   16 |    1 |        3
-   5 |        5 |         2 |       3 |    4 |    3 |    1 |        4
-   6 |        6 |         2 |       3 |    3 |   -1 |    0 |        5
-(6 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    ARRAY[2], ARRAY[3]
-);
- seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
------+----------+-----------+---------+------+------+------+----------
-   1 |        1 |         2 |       3 |    2 |    4 |    1 |        0
-   2 |        2 |         2 |       3 |    5 |    8 |    1 |        1
-   3 |        3 |         2 |       3 |    6 |    9 |    1 |        2
-   4 |        4 |         2 |       3 |    9 |   16 |    1 |        3
-   5 |        5 |         2 |       3 |    4 |    3 |    1 |        4
-   6 |        6 |         2 |       3 |    3 |   -1 |    0 |        5
-(6 rows)
-
-SET client_min_messages TO NOTICE;
-SET
-SELECT * FROM pgr_dijkstra(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
-    2, 3,
-    TRUE,    
-    TRUE      
-);
-NOTICE:  Deprecated function
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |   2 |   4 |    1
-   1 |   5 |   8 |    1
-   2 |   6 |   9 |    1
-   3 |   9 |  16 |    1
-   4 |   4 |   3 |    1
-   5 |   3 |  -1 |    0
-(6 rows)
-
--- q16
--- q17
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    2, 3,
-    FALSE     
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |    2 |    2 |    1 |        0
-   2 |        2 |    3 |   -1 |    0 |        1
-(2 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    2, ARRAY[3],
-    FALSE     
-);
- seq | path_seq | end_vid | node | edge | cost | agg_cost 
------+----------+---------+------+------+------+----------
-   1 |        1 |       3 |    2 |    2 |    1 |        0
-   2 |        2 |       3 |    3 |   -1 |    0 |        1
-(2 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    ARRAY[2], 3,
-    FALSE
-);
- seq | path_seq | start_vid | node | edge | cost | agg_cost 
------+----------+-----------+------+------+------+----------
-   1 |        1 |         2 |    2 |    2 |    1 |        0
-   2 |        2 |         2 |    3 |   -1 |    0 |        1
-(2 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    ARRAY[2], ARRAY[3],
-    FALSE
-);
- seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
------+----------+-----------+---------+------+------+------+----------
-   1 |        1 |         2 |       3 |    2 |    2 |    1 |        0
-   2 |        2 |         2 |       3 |    3 |   -1 |    0 |        1
-(2 rows)
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
-    2, 3,
-    FALSE,    
-    TRUE      
-);
-NOTICE:  Deprecated function
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |   2 |   2 |    1
-   1 |   3 |  -1 |    0
-(2 rows)
-
--- q18
-ROLLBACK;
-ROLLBACK
diff --git a/src/dijkstra/doc/pgr_dijkstra.rst b/src/dijkstra/doc/pgr_dijkstra.rst
deleted file mode 100644
index ef8608b..0000000
--- a/src/dijkstra/doc/pgr_dijkstra.rst
+++ /dev/null
@@ -1,333 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_dijkstra:
-
-pgr_dijkstra
-===============================================================================
-
-``pgr_dijkstra`` — Returns the shortest path(s) using Dijkstra algorithm.
-In particular, the Dijkstra algorithm implemented by Boost.Graph.
-
-.. figure:: images/boost-inside.jpeg
-   :target: http://www.boost.org/libs/graph/doc/dijkstra_shortest_paths.html
-
-   Boost Graph Inside
-
-.. rubric:: Availability
-
-* pgr_dijkstra(one to one) 2.0.0, signature change 2.1.0
-* pgr_dijkstra(other signatures) 2.1.0
-
-Synopsis
--------------------------------------------------------------------------------
-
-Dijkstra's algorithm, conceived by Dutch computer scientist Edsger Dijkstra in 1956.
-It is a graph search algorithm that solves the shortest path problem for
-a graph with non-negative edge path costs, producing a shortest path from
-a starting vertex (``start_vid``) to an ending vertex (``end_vid``).
-This implementation can be used with a directed graph and an undirected graph.
-
-Characteristics
--------------------------------------------------------------------------------
-
-The main Characteristics are:
-  - Process is done only on edges with positive costs.
-  - Values are returned when there is a path.
-
-    - When the starting vertex and ending vertex are the same, there is no path.
-
-      - The `agg_cost` the non included values `(v, v)` is `0`
-
-    - When the starting vertex and ending vertex are the different and there is no path:
-
-      - The `agg_cost` the non included values `(u, v)` is :math:`\infty`
-
-  - For optimization purposes, any duplicated value in the `start_vids` or `end_vids` are ignored.
-
-  - The returned values are ordered:
-
-    - `start_vid` ascending
-    - `end_vid` ascending
-
-  - Running time: :math:`O(| start\_vids | * (V \log V + E))`
-
-
-Signature Summary
------------------
-
-.. code-block:: none
-
-    pgr_dijkstra(edges_sql, start_vid,  end_vid)
-    pgr_dijkstra(edges_sql, start_vid,  end_vid,  directed:=true)
-    pgr_dijkstra(edges_sql, start_vid,  end_vids, directed:=true)
-    pgr_dijkstra(edges_sql, start_vids, end_vid,  directed:=true)
-    pgr_dijkstra(edges_sql, start_vids, end_vids, directed:=true)
-
-    RETURNS SET OF (seq, path_seq [, start_vid] [, end_vid], node, edge, cost, agg_cost)
-        OR EMPTY SET
-
-
-Signatures
--------------------------------------------------------------------------------
-
-.. index::
-    single: dijkstra(Minimal Use)
-
-Minimal signature
-.......................................
-
-.. code-block:: none
-
-    pgr_dijkstra(TEXT edges_sql, BIGINT start_vid, BIGINT end_vid)
-    RETURNS SET OF (seq, path_seq, node, edge, cost, agg_cost) or EMPTY SET
-
-The minimal signature is for a **directed** graph from one ``start_vid`` to one ``end_vid``.
-
-:Example:
-
-.. literalinclude:: doc-pgr_dijkstra.queries
-   :start-after: -- q1
-   :end-before: -- q2
-
-
-.. index::
-    single: dijkstra(One to One)
-
-pgr_dijkstra One to One
-.......................................
-
-.. code-block:: none
-
-    pgr_dijkstra(TEXT edges_sql, BIGINT start_vid, BIGINT end_vid,
-        BOOLEAN directed:=true);
-    RETURNS SET OF (seq, path_seq, node, edge, cost, agg_cost) or EMPTY SET
-
-This signature finds the shortest path from one ``start_vid`` to one ``end_vid``:
-  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
-  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
-
-:Example:
-
-.. literalinclude:: doc-pgr_dijkstra.queries
-   :start-after: -- q2
-   :end-before: -- q3
-
-
-.. index::
-    single: dijkstra(One to Many)
-
-pgr_dijkstra One to many
-.......................................
-
-.. code-block:: none
-
-    pgr_dijkstra(TEXT edges_sql, BIGINT start_vid, ARRAY[ANY_INTEGER] end_vids,
-        BOOLEAN directed:=true);
-    RETURNS SET OF (seq, path_seq, end_vid, node, edge, cost, agg_cost) or EMPTY SET
-
-This signature finds the shortest path from one ``start_vid`` to each ``end_vid`` in ``end_vids``:
-  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
-  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
-
-Using this signature, will load once the graph and perform a one to one `pgr_dijkstra`
-where the starting vertex is fixed, and stop when all ``end_vids`` are reached.
-
-  - The result is equivalent to the union of the results of the one to one `pgr_dijkstra`.
-  - The extra ``end_vid`` in the result is used to distinguish to which path it belongs.
-
-:Example:
-
-.. literalinclude:: doc-pgr_dijkstra.queries
-   :start-after: -- q3
-   :end-before: -- q4
-
-
-
-
-.. index::
-    single: dijkstra(Many to One)
-
-pgr_dijkstra Many to One
-.......................................
-
-.. code-block:: none
-
-    pgr_dijkstra(TEXT edges_sql, ARRAY[ANY_INTEGER] start_vids, BIGINT end_vid,
-        BOOLEAN directed:=true);
-    RETURNS SET OF (seq, path_seq, start_vid, node, edge, cost, agg_cost) or EMPTY SET
-
-This signature finds the shortest path from each ``start_vid`` in  ``start_vids`` to one ``end_vid``:
-  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
-  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
-
-Using this signature, will load once the graph and perform several one to one `pgr_dijkstra`
-where the ending vertex is fixed.
-
-  - The result is the union of the results of the one to one `pgr_dijkstra`.
-  - The extra ``start_vid`` in the result is used to distinguish to which path it belongs.
-
-:Example:
-
-.. literalinclude:: doc-pgr_dijkstra.queries
-   :start-after: -- q4
-   :end-before: -- q5
-
-
-
-.. index::
-    single: dijkstra(Many to Many)
-
-pgr_dijkstra Many to Many
-.......................................
-
-.. code-block:: none
-
-    pgr_dijkstra(TEXT edges_sql, ARRAY[ANY_INTEGER] start_vids, ARRAY[ANY_INTEGER] end_vids,
-        BOOLEAN directed:=true);
-    RETURNS SET OF (seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost) or EMPTY SET
-
-This signature finds the shortest path from each ``start_vid`` in  ``start_vids`` to each ``end_vid`` in ``end_vids``:
-  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
-  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
-
-Using this signature, will load once the graph and perform several one to Many `pgr_dijkstra`
-for all ``start_vids``.
-
-  - The result is the union of the results of the one to one `pgr_dijkstra`.
-  - The extra ``start_vid`` in the result is used to distinguish to which path it belongs.
-
-The extra ``start_vid`` and ``end_vid`` in the result is used to distinguish to which path it belongs.
-
-:Example:
-
-.. literalinclude:: doc-pgr_dijkstra.queries
-   :start-after: -- q5
-   :end-before: -- q6
-
-Description of the Signatures
--------------------------------------------------------------------------------
-
-.. include:: pgRouting-concepts.rst
-    :start-after: basic_edges_sql_start
-    :end-before: basic_edges_sql_end
-
-
-.. pgr_dijkstra_parameters_start
-
-Description of the parameters of the signatures
-...............................................................................
-
-============== ================== ======== =================================================
-Column         Type               Default     Description
-============== ================== ======== =================================================
-**sql**        ``TEXT``                    SQL query as described above.
-**start_vid**  ``BIGINT``                  Identifier of the starting vertex of the path.
-**start_vids** ``ARRAY[BIGINT]``           Array of identifiers of starting vertices.
-**end_vid**    ``BIGINT``                  Identifier of the ending vertex of the path.
-**end_vids**   ``ARRAY[BIGINT]``           Array of identifiers of ending vertices.
-**directed**   ``BOOLEAN``        ``true`` - When ``true`` Graph is considered `Directed`
-                                           - When ``false`` the graph is considered as `Undirected`.
-============== ================== ======== =================================================
-
-.. pgr_dijkstra_parameters_end
-
-
-.. include:: pgRouting-concepts.rst
-    :start-after: return_path_start
-    :end-before: return_path_end
-
-
-Additional Examples
---------------------------------------------------------------------------------------
-
-The examples of this section are based on the :ref:`sampledata` network.
-
-The examples include combinations from starting vertices 2 and 11 to ending vertices 3 and 5 in a directed and
-undirected graph with and with out reverse_cost.
-
-Examples for queries marked as ``directed`` with ``cost`` and ``reverse_cost`` columns
-.........................................................................................
-
-The examples in this section use the following :ref:`fig1`
-
-.. literalinclude:: doc-pgr_dijkstra.queries
-   :start-after: -- q7
-   :end-before: -- q8
-
-
-
-Examples for queries marked as ``undirected`` with ``cost`` and ``reverse_cost`` columns
-.........................................................................................
-
-The examples in this section use the following :ref:`fig2`
-
-.. literalinclude:: doc-pgr_dijkstra.queries
-   :start-after: -- q9
-   :end-before: -- q10
-
-
-Examples for queries marked as ``directed`` with ``cost`` column
-.........................................................................................
-
-The examples in this section use the following :ref:`fig3`
-
-.. literalinclude:: doc-pgr_dijkstra.queries
-   :start-after: -- q11
-   :end-before: -- q12
-
-
-Examples for queries marked as ``undirected`` with ``cost`` column
-.........................................................................................
-
-The examples in this section use the following :ref:`fig4`
-
-.. literalinclude:: doc-pgr_dijkstra.queries
-   :start-after: -- q13
-   :end-before: -- q14
-
-
-Equvalences between signatures
-.........................................................................................
-
-:Examples: For queries marked as ``directed`` with ``cost`` and ``reverse_cost`` columns
-
-The examples in this section use the following:
-
-* :ref:`fig1`
-
-.. literalinclude:: doc-pgr_dijkstra.queries
-   :start-after: -- q15
-   :end-before: -- q16
-
-
-
-:Examples: For queries marked as ``undirected`` with ``cost`` and ``reverse_cost`` columns
-
-The examples in this section use the following:
-
-* :ref:`fig2`
-
-.. literalinclude:: doc-pgr_dijkstra.queries
-   :start-after: -- q17
-   :end-before: -- q18
-
-
-
-See Also
--------------------------------------------------------------------------------
-
-* http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm
-* The queries use the :ref:`sampledata` network.
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
-
diff --git a/src/dijkstra/doc/pgr_dijkstraCost.rst b/src/dijkstra/doc/pgr_dijkstraCost.rst
deleted file mode 100644
index 32fd5ae..0000000
--- a/src/dijkstra/doc/pgr_dijkstraCost.rst
+++ /dev/null
@@ -1,255 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_dijkstraCost:
-
-pgr_dijkstraCost
-===============================================================================
-
-
-Synopsis
--------------------------------------------------------------------------------
-
-``pgr_dijkstraCost``
-
-Using Dijkstra algorithm implemented by Boost.Graph, and extract only the
-aggregate cost of the shortest path(s) found, for the combination of vertices given.
-
-.. figure:: images/boost-inside.jpeg
-   :target: http://www.boost.org/libs/graph/doc/dijkstra_shortest_paths.html
-
-   Boost Graph Inside
-
-.. rubric:: Availability
-
-* pgr_dijkstraCost(all signatures) 2.2.0
-
-The ``pgr_dijkstraCost`` algorithm, is a good choice to calculate the sum of the costs
-of the shortest path for a subset of pairs of nodes of the graph.
-We make use of the Boost's implementation of dijkstra which runs in
-:math:`O(V \log V + E)` time.
-
-Characteristics
--------------------------------------------------------------------------------
-
-The main Characteristics are:
-  - It does not return a path.
-  - Returns the sum of the costs of the shortest path for pair combination of nodes in the graph.
-  - Process is done only on edges with positive costs.
-  - Values are returned when there is a path.
-
-    - The returned values are in the form of a set of `(start_vid, end_vid, agg_cost)`.
-
-    - When the starting vertex and ending vertex are the same, there is no path.
-
-      - The `agg_cost` int the non included values `(v, v)` is `0`
-
-    - When the starting vertex and ending vertex are the different and there is no path.
-
-      - The `agg_cost` in the non included values `(u, v)` is :math:`\infty`
-
-  - Let be the case the values returned are stored in a table, so the unique index would be the pair:
-    `(start_vid, end_vid)`.
-
-  - For undirected graphs, the results are symmetric.
-
-    - The  `agg_cost` of `(u, v)` is the same as for `(v, u)`.
-
-  - Any duplicated value in the `start_vids` or `end_vids` is ignored.
-
-  - The returned values are ordered:
-
-    - `start_vid` ascending
-    - `end_vid` ascending
-
-  - Running time: :math:`O(| start\_vids | * (V \log V + E))`
-
-Signature Summary
--------------------------------------------------------------------------------
-
-.. code-block:: none
-
-     pgr_dijkstraCost(edges_sql, start_vid, end_vid);
-     pgr_dijkstraCost(edges_sql, start_vid, end_vid, directed);
-     pgr_dijkstraCost(edges_sql, start_vids, end_vid, directed);
-     pgr_dijkstraCost(edges_sql, start_vid, end_vids, directed);
-     pgr_dijkstraCost(edges_sql, start_vids, end_vids, directed);
-
-	 RETURNS SET OF (start_vid, end_vid, agg_cost) or EMPTY SET
-
-
-
-Signatures
--------------------------------------------------------------------------------
-
-.. index::
-	single: dijkstraCost(Minimal Use)
-
-Minimal signature
-...............................................................................
-
-The minimal signature is for a **directed** graph from one ``start_vid`` to one ``end_vid``:
-
-.. code-block:: none
-
-     pgr_dijkstraCost(TEXT edges_sql, BIGINT start_vid, BIGINT end_vid)
-	 RETURNS SET OF (start_vid, end_vid, agg_cost) or EMPTY SET
-
-
-.. rubric:: Example
-
-.. literalinclude:: doc-pgr_dijkstraCost.queries
-   :start-after: --q1
-   :end-before: --q2
-
-
-
-.. index::
-	single: dijkstraCost(One to One)
-
-pgr_dijkstraCost One to One
-...............................................................................
-
-
-This signature performs a Dijkstra from one ``start_vid`` to one ``end_vid``:
-  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
-  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
-
-.. code-block:: none
-
-    pgr_dijkstraCost(TEXT edges_sql, BIGINT start_vid, BIGINT end_vid,
-			 BOOLEAN directed:=true);
-	RETURNS SET OF (start_vid, end_vid, agg_cost) or EMPTY SET
-
-:Example:
-
-.. literalinclude:: doc-pgr_dijkstraCost.queries
-    :start-after: --q2
-    :end-before: --q3
-
-
-.. index::
-    single: dijkstraCost(One to Many)
-
-pgr_dijkstraCost One to Many
-...............................................................................
-
-.. code-block:: none
-
-    pgr_dijkstraCost(TEXT edges_sql, BIGINT start_vid, array[ANY_INTEGER] end_vids,
-	    BOOLEAN directed:=true);
-	RETURNS SET OF (start_vid, end_vid, agg_cost) or EMPTY SET
-
-This signature performs a Dijkstra from one ``start_vid`` to each ``end_vid`` in ``end_vids``:
-  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
-  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
-
-
-:Example:
-
-.. literalinclude:: doc-pgr_dijkstraCost.queries
-   :start-after: --q4
-   :end-before: --q5
-
-
-
-
-.. index::
-	single: dijkstraCost(Many to One)
-
-pgr_dijkstraCost Many to One
-...............................................................................
-
-.. code-block:: none
-
-    pgr_dijkstraCost(TEXT edges_sql, array[ANY_INTEGER] start_vids, BIGINT end_vid,
-			 BOOLEAN directed:=true);
-	RETURNS SET OF (start_vid, end_vid, agg_cost) or EMPTY SET
-
-This signature performs a Dijkstra from each ``start_vid`` in  ``start_vids`` to one ``end_vid``:
-  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
-  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
-
-
-:Example:
-
-.. literalinclude:: doc-pgr_dijkstraCost.queries
-    :start-after: --q3
-    :end-before: --q4
-
-
-
-.. index::
-	single: dijkstraCost(Many to Many)
-
-pgr_dijkstraCost Many to Many
-...............................................................................
-
-.. code-block:: none
-
-    pgr_dijkstraCost(TEXT edges_sql, array[ANY_INTEGER] start_vids, array[ANY_INTEGER] end_vids,
-	    BOOLEAN directed:=true);
-	RETURNS SET OF (start_vid, end_vid, agg_cost) or EMPTY SET
-
-This signature performs a Dijkstra from each ``start_vid`` in  ``start_vids`` to each ``end_vid`` in ``end_vids``:
-  -  on a **directed** graph when ``directed`` flag is missing or is set to ``true``.
-  -  on an **undirected** graph when ``directed`` flag is set to ``false``.
-
-:Example:
-
-.. literalinclude:: doc-pgr_dijkstraCost.queries
-   :start-after: --q5
-   :end-before: --q6
-
-
-
-Description of the Signatures
--------------------------------------------------------------------------------
-
-.. include:: pgRouting-concepts.rst
-    :start-after: basic_edges_sql_start
-    :end-before: basic_edges_sql_end
-
-.. include:: ./pgr_dijkstra.rst
-    :start-after: pgr_dijkstra_parameters_start
-    :end-before: pgr_dijkstra_parameters_end
-
-.. include:: pgRouting-concepts.rst
-    :start-after: return_cost_start
-    :end-before: return_cost_end
-
-
-Additional Examples
--------------------------------------------------------------------------------
-
-:Example 1: Demonstration of repeated values are ignored, and result is sorted.
-
-.. literalinclude:: doc-pgr_dijkstraCost.queries
-    :start-after: --q6
-    :end-before: --q7
-
-:Example 2: Making `start_vids` the same as `end_vids`
-
-.. literalinclude:: doc-pgr_dijkstraCost.queries
-    :start-after: --q7
-    :end-before: --q8
-
-
-
-See Also
--------------------------------------------------------------------------------
-
-* http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm
-* :ref:`sampledata` network.
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
-
diff --git a/src/dijkstra/doc/pgr_dijkstraVia.rst b/src/dijkstra/doc/pgr_dijkstraVia.rst
deleted file mode 100644
index e1deb6e..0000000
--- a/src/dijkstra/doc/pgr_dijkstraVia.rst
+++ /dev/null
@@ -1,188 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_dijkstraVia:
-
-pgr_dijkstraVia - Proposed
-===============================================================================
-
-
-Name
--------------------------------------------------------------------------------
-
-``pgr_dijkstraVia`` — Using dijkstra algorithm, it finds the route that goes through
-a list of vertices.
-
-
-.. figure:: images/boost-inside.jpeg
-   :target: http://www.boost.org/libs/graph
-
-   Boost Graph Inside
-
-.. rubric:: Availability: 2.2.0
-
-
-Synopsis
--------------------------------------------------------------------------------
-
-Given a list of vertices and a graph, this function is equivalent to finding the
-shortest path between :math:`vertex_i` and :math:`vertex_{i+1}` for all :math:`i < size\_of(vertex_via)`.
-
-The paths represents the sections of the route.
-
-.. note:: This is a proposed function
-
-Signatrue Summary
--------------------------------------------------------------------------------
-
-.. code-block:: none
-
-    pgr_dijkstraVia(edges_sql, via_vertices)
-    pgr_dijkstraVia(edges_sql, via_vertices, directed, strict, U_turn_on_edge)
-
-    RETURNS SET OF (seq, path_pid, path_seq, start_vid, end_vid,
-        node, edge, cost, agg_cost, route_agg_cost) or EMPTY SET
-
-Signatures
--------------------------------------------------------------------------------
-
-.. index::
-    single: dijkstraVia(Minimal Use) - proposed
-
-Minimal Signature
-...............................................................................
-
-.. code-block:: none
-
-    pgr_dijkstraVia(edges_sql, via_vertices)
-    RETURNS SET OF (seq, path_pid, path_seq, start_vid, end_vid,
-        node, edge, cost, agg_cost, route_agg_cost) or EMPTY SET
-
-:Example: Find the route that visits the vertices 1 3 9  in that order
-
-.. literalinclude:: doc-pgr_dijkstraVia.queries
-    :start-after: --q00
-    :end-before: -- q0
-
-.. index::
-    single: dijkstraVia(Full signature) - proposed
-
-Complete Signature
-...............................................................................
-
-.. code-block:: none
-
-    pgr_dijkstraVia(edges_sql, via_vertices, directed, strict, U_turn_on_edge)
-    RETURNS SET OF (seq, path_pid, path_seq, start_vid, end_vid,
-        node, edge, cost, agg_cost, route_agg_cost) or EMPTY SET
-
-
-:Example: Find the route that visits the vertices 1 3 9  in that order on an undirected graph, avoiding U-turns when possible
-
-.. literalinclude:: doc-pgr_dijkstraVia.queries
-    :start-after: -- q0
-    :end-before: -- q1
-
-
-Description of the Signature
--------------------------------------------------------------------------------
-
-.. include:: pgRouting-concepts.rst
-    :start-after: basic_edges_sql_start
-    :end-before: basic_edges_sql_end
-
-.. include:: ../sql_queries/dijkstraVia.sql
-    :start-after: pgr_dijkstra_via_parameters_start
-    :end-before: pgr_dijkstra_via_parameters_end
-
-Description of the parameters of the signatures
-...............................................................................
-
-=================== ====================== =================================================
-Parameter           Type                   Description
-=================== ====================== =================================================
-**edges_sql**       ``TEXT``               SQL query as described above.
-**via_vertices**    ``ARRAY[ANY-INTEGER]`` Array of vertices identifiers
-**directed**        ``BOOLEAN``            (optional) Default is true (is directed). When set to false the graph is considered as Undirected
-**strict**          ``BOOLEAN``            (optional) ignores if a subsection of the route is missing and returns everything it found Default is true (is directed). When set to false the graph is considered as Undirected
-**U_turn_on_edge**  ``BOOLEAN``            (optional) Default is true (is directed). When set to false the graph is considered as Undirected
-=================== ====================== =================================================
-
-
-Description of the return values
-...............................................................................
-
-Returns set of ``(start_vid, end_vid, agg_cost)``
-
-================== ============= =================================================
-Column             Type          Description
-================== ============= =================================================
-**seq**            ``BIGINT``    Sequential value starting from 1.
-**path_pid**       ``BIGINT``    Identifier of the path.
-**path_seq**       ``BIGINT``    Sequential value starting from 1 for the path.
-**start_vid**      ``BIGINT``    Identifier of the starting vertex of the path.
-**end_vid**        ``BIGINT``    Identifier of the ending vertex of the path.
-**node**           ``BIGINT``    Identifier of the node in the path from start_vid to end_vid.
-**edge**           ``BIGINT``    Identifier of the edge used to go from node to the next node in the path sequence. -1 for the last node of the path. -2 for the last node of the route.
-**cost**           ``FLOAT``     Cost to traverse from ``node`` using ``edge`` to the next node in the route sequence.
-**agg_cost**       ``FLOAT``     Total cost from ``start_vid`` to ``end_vid`` of the path.
-**route_agg_cost** ``FLOAT``     Total cost from ``start_vid`` of ``path_pid = 1`` to ``end_vid`` of the current ``path_pid`` .
-================== ============= =================================================
-
-
-Examples
--------------------------------------------------------------------------------
-
-:Example 1: Find the route that visits the vertices 1 5 3 9 4 in that order
-
-.. literalinclude:: doc-pgr_dijkstraVia.queries
-    :start-after: -- q1
-    :end-before: -- q2
-
-:Example 2: What's the aggregate cost of the third path?
-
-.. literalinclude:: doc-pgr_dijkstraVia.queries
-    :start-after: -- q2
-    :end-before: -- q3
-
-:Example 3: What's the route's aggregate cost of the route at the end of the third path?
-
-.. literalinclude:: doc-pgr_dijkstraVia.queries
-    :start-after: -- q3
-    :end-before: -- q4
-
-:Example 4: How are the nodes visited in the route?
-
-.. literalinclude:: doc-pgr_dijkstraVia.queries
-    :start-after: -- q4
-    :end-before: -- q5
-
-:Example 5: What are the aggregate costs of the route when the visited vertices are reached?
-
-.. literalinclude:: doc-pgr_dijkstraVia.queries
-    :start-after: -- q5
-    :end-before: -- q6
-
-:Example 6: show the route's seq and aggregate cost and a status of "passes in front" or "visits" node 9
-
-.. literalinclude:: doc-pgr_dijkstraVia.queries
-    :start-after: -- q6
-
-
-See Also
--------------------------------------------------------------------------------
-
-* http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm
-* :ref:`sampledata` network.
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
-
diff --git a/src/dijkstra/sql/CMakeLists.txt b/src/dijkstra/sql/CMakeLists.txt
deleted file mode 100644
index f43a970..0000000
--- a/src/dijkstra/sql/CMakeLists.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-# Append in local scope
-LIST(APPEND PACKAGE_SQL_FILES
-    ${CMAKE_CURRENT_SOURCE_DIR}/dijkstra.sql
-    ${CMAKE_CURRENT_SOURCE_DIR}/dijkstraCost.sql
-    ${CMAKE_CURRENT_SOURCE_DIR}/dijkstraVia.sql
-)
-
-# set in parent scope
-SET(PACKAGE_SQL_FILES "${PACKAGE_SQL_FILES}" PARENT_SCOPE)
diff --git a/src/dijkstra/sql/dijkstra.sql b/src/dijkstra/sql/dijkstra.sql
deleted file mode 100644
index 7ff9dd0..0000000
--- a/src/dijkstra/sql/dijkstra.sql
+++ /dev/null
@@ -1,219 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-mail: vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-/*FOR USERS DOCUMENTATION
-
-The following applies to:
-    pgr_dijkstra
-    pgr_dijkstraCost
-    pgr_dijkstraCostMatrix
-
-pgr_dijkstra_parameters_start
-
-Description of the parameters of the signatures
-...............................................................................
-
-============== ================== ======== =================================================
-Column         Type               Default     Description
-============== ================== ======== =================================================
-**sql**        ``TEXT``                    SQL query as described above.
-**start_vid**  ``BIGINT``                  Identifier of the starting vertex of the path.
-**start_vids** ``ARRAY[BIGINT]``           Array of identifiers of starting vertices.
-**end_vid**    ``BIGINT``                  Identifier of the ending vertex of the path.
-**end_vids**   ``ARRAY[BIGINT]``           Array of identifiers of ending vertices.
-**directed**   ``BOOLEAN``        ``true`` - When ``true`` Graph is considered `Directed`
-                                           - When ``false`` the graph is considered as `Undirected`.
-============== ================== ======== =================================================
-
-pgr_dijkstra_parameters_end
-
-FOR-USER*/
-
-CREATE OR REPLACE FUNCTION _pgr_dijkstra(edges_sql TEXT, start_vid BIGINT, end_vid BIGINT, directed BOOLEAN,
-    only_cost BOOLEAN DEFAULT false,
-  OUT seq integer, OUT path_seq integer, OUT node BIGINT, OUT edge BIGINT, OUT cost float, OUT agg_cost float)
-  RETURNS SETOF RECORD AS
- '$libdir/${PGROUTING_LIBRARY_NAME}', 'one_to_one_dijkstra'
-    LANGUAGE c IMMUTABLE STRICT;
-
-    -- One to many
-
-
-CREATE OR REPLACE FUNCTION _pgr_dijkstra(edges_sql TEXT, start_vid BIGINT, end_vids ANYARRAY, directed BOOLEAN DEFAULT true,
-    only_cost BOOLEAN DEFAULT false,
-  OUT seq integer, OUT path_seq integer, OUT end_vid BIGINT, OUT node BIGINT, OUT edge BIGINT, OUT cost float, OUT agg_cost float)
-  RETURNS SETOF RECORD AS
- '$libdir/${PGROUTING_LIBRARY_NAME}', 'one_to_many_dijkstra'
-    LANGUAGE c IMMUTABLE STRICT;
-
-
---  many to one
-
-
-CREATE OR REPLACE FUNCTION _pgr_dijkstra(edges_sql TEXT, start_vids ANYARRAY, end_vid BIGINT, directed BOOLEAN DEFAULT true,
-    only_cost BOOLEAN DEFAULT false,
-    OUT seq integer, OUT path_seq integer, OUT start_vid BIGINT, OUT node BIGINT, OUT edge BIGINT, OUT cost float, OUT agg_cost float)
-RETURNS SETOF RECORD AS
-'$libdir/${PGROUTING_LIBRARY_NAME}', 'many_to_one_dijkstra'
-LANGUAGE c IMMUTABLE STRICT;
-
---  many to many
-
-
-CREATE OR REPLACE FUNCTION _pgr_dijkstra(edges_sql TEXT, start_vids ANYARRAY, end_vids ANYARRAY, directed BOOLEAN DEFAULT true,
-    only_cost BOOLEAN DEFAULT false,
-    OUT seq integer, OUT path_seq integer, OUT start_vid BIGINT, OUT end_vid BIGINT, OUT node BIGINT, OUT edge BIGINT, OUT cost float, OUT agg_cost float)
-RETURNS SETOF RECORD AS
-'$libdir/${PGROUTING_LIBRARY_NAME}', 'many_to_many_dijkstra'
-LANGUAGE c IMMUTABLE STRICT;
-
-
-
-
-
--- V2 signature
-CREATE OR REPLACE FUNCTION pgr_dijkstra(edges_sql TEXT, start_vid INTEGER, end_vid INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
-RETURNS SETOF pgr_costresult AS
-$BODY$
-DECLARE
-has_reverse BOOLEAN;
-sql TEXT;
-BEGIN
-    RAISE NOTICE 'Deprecated function';
-    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
-    sql = edges_sql;
-    IF (has_reverse != has_rcost) THEN
-        IF (has_reverse) THEN
-            sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
-        ELSE
-            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
-        END IF;
-    END IF;
-
-    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
-    FROM _pgr_dijkstra(sql, start_vid, end_vid, directed, false);
-  END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
-
-
--- V3 signature 1 to 1
-CREATE OR REPLACE FUNCTION pgr_dijkstra(edges_sql TEXT, start_vid BIGINT, end_vid BIGINT,
-    OUT seq integer,  OUT path_seq integer, OUT node BIGINT, OUT edge BIGINT, OUT cost float, OUT agg_cost float)
-RETURNS SETOF RECORD AS
-$BODY$
-DECLARE
- statement_txt record;
- sql TEXT;
-BEGIN
-    RETURN query
-    SELECT * FROM _pgr_dijkstra(_pgr_get_statement($1), start_vid, end_vid, true, false);
-  END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
-
-
--- V3 signature 1 to 1
-CREATE OR REPLACE FUNCTION pgr_dijkstra(edges_sql TEXT, start_vid BIGINT, end_vid BIGINT, directed BOOLEAN,
-    OUT seq integer,  OUT path_seq integer, OUT node BIGINT, OUT edge BIGINT, OUT cost float, OUT agg_cost float)
-RETURNS SETOF RECORD AS
-$BODY$
-DECLARE
-BEGIN
-    RETURN query SELECT *
-    FROM _pgr_dijkstra(_pgr_get_statement($1), start_vid, end_vid, directed, false);
-  END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
-
-
-
-
-
-
---     DIJKSTRA
-
-
-/***********************************
-        ONE TO MANY
-***********************************/
-
-CREATE OR REPLACE FUNCTION pgr_dijkstra(edges_sql TEXT, start_vid BIGINT, end_vids ANYARRAY, directed BOOLEAN DEFAULT true,
-  OUT seq integer, OUT path_seq integer, OUT end_vid BIGINT, OUT node BIGINT, OUT edge BIGINT, OUT cost float, OUT agg_cost float)
-RETURNS SETOF RECORD AS
-$BODY$
-BEGIN
-    RETURN query SELECT *
-    FROM _pgr_dijkstra(_pgr_get_statement($1), $2, $3, $4);
-END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
-
-
-
-/***********************************
-        MANY TO ONE
-***********************************/
-
-CREATE OR REPLACE FUNCTION pgr_dijkstra(edges_sql TEXT, start_vids ANYARRAY, end_vid BIGINT, directed BOOLEAN DEFAULT true,
-  OUT seq integer, OUT path_seq integer, OUT start_vid BIGINT, OUT node BIGINT, OUT edge BIGINT, OUT cost float, OUT agg_cost float)
-RETURNS SETOF RECORD AS
-$BODY$
-BEGIN
-    RETURN query SELECT *
-    FROM _pgr_dijkstra(_pgr_get_statement($1), $2, $3, $4);
-END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
-
-
-
-/***********************************
-        MANY TO MANY
-***********************************/
-
-CREATE OR REPLACE FUNCTION pgr_dijkstra(edges_sql TEXT, start_vids ANYARRAY, end_vids ANYARRAY, directed BOOLEAN DEFAULT true,
-    OUT seq integer, OUT path_seq integer, OUT start_vid BIGINT, OUT end_vid BIGINT, OUT node BIGINT, OUT edge BIGINT, OUT cost float, OUT agg_cost float)
-RETURNS SETOF RECORD AS
-$BODY$
-BEGIN
-    RETURN query SELECT *
-    FROM _pgr_dijkstra(_pgr_get_statement($1), $2, $3, $4);
-END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
diff --git a/src/dijkstra/sql/dijkstraCost.sql b/src/dijkstra/sql/dijkstraCost.sql
deleted file mode 100644
index 257573e..0000000
--- a/src/dijkstra/sql/dijkstraCost.sql
+++ /dev/null
@@ -1,103 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-mail: vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-
---     DIJKSTRA COST
-
-/***********************************
-        ONE TO ONE
-***********************************/
-CREATE OR REPLACE FUNCTION pgr_dijkstraCost(edges_sql TEXT, BIGINT, BIGINT, directed BOOLEAN DEFAULT true,
-    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
-RETURNS SETOF RECORD AS
-$BODY$
-BEGIN
-    return query SELECT $2, $3, a.agg_cost
-    FROM _pgr_dijkstra($1, $2, $3, $4, true) a;
-  END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
-
-
-/***********************************
-        ONE TO MANY
-***********************************/
-
-
-CREATE OR REPLACE FUNCTION pgr_dijkstraCost(edges_sql TEXT, BIGINT, end_vids ANYARRAY, directed BOOLEAN DEFAULT true,
-    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
-RETURNS SETOF RECORD AS
-$BODY$
-BEGIN
-    RETURN query SELECT $2, a.end_vid, a.agg_cost
-    FROM _pgr_dijkstra(_pgr_get_statement($1), $2, $3, $4, true) a;
-END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
-
-
-/***********************************
-        MANY TO ONE
-***********************************/
-
-CREATE OR REPLACE FUNCTION pgr_dijkstraCost(edges_sql TEXT, start_vids ANYARRAY, BIGINT, directed BOOLEAN DEFAULT true,
-    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
-RETURNS SETOF RECORD AS
-$BODY$
-BEGIN
-    RETURN query SELECT a.start_vid, $3, a.agg_cost
-    FROM _pgr_dijkstra(_pgr_get_statement($1), $2, $3, $4, true) a;
-END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
-
-
-
-/***********************************
-        MANY TO MANY
-***********************************/
-
-CREATE OR REPLACE FUNCTION pgr_dijkstraCost(edges_sql TEXT, start_vids ANYARRAY, end_vids ANYARRAY, directed BOOLEAN DEFAULT true,
-    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
-RETURNS SETOF RECORD AS
-$BODY$
-BEGIN
-    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
-    FROM _pgr_dijkstra(_pgr_get_statement($1), $2, $3, $4, true) a;
-END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
-
-
-
diff --git a/src/dijkstra/sql/dijkstraVia.sql b/src/dijkstra/sql/dijkstraVia.sql
deleted file mode 100644
index a15d465..0000000
--- a/src/dijkstra/sql/dijkstraVia.sql
+++ /dev/null
@@ -1,76 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: dijkstraViaVertex.sql
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-
-Function's developer: 
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-/*FOR USERS DOCUMENTATION
-
-pgr_dijkstra_via_parameters_start
-
-Description of the parameters of the signatures
-...............................................................................
-
-=================== ====================== ========= =========================================
-Parameter           Type                   Default   Description
-=================== ====================== ========= =========================================
-**edges_sql**       ``TEXT``                         SQL query as described above.
-**via_vertices**    ``ARRAY[ANY-INTEGER]``           Array of ordered vertices identifiers that are going to be visited.
-**directed**        ``BOOLEAN``            ``true``  - When ``true`` Graph is considered `Directed`
-                                                     - When ``false`` the graph is considered as Undirected.
-**strict**          ``BOOLEAN``            ``false`` - When ``false`` ignores missing paths returning all paths found
-                                                     - When ``true`` if a path is missing stops and returns `EMPTY SET`
-**U_turn_on_edge**  ``BOOLEAN``            ``true``  - When ``true`` departing from a visited vertex will not try to avoid using the edge used to reach it.  In other words, U turn using the edge with same `id` is allowed.
-                                                     - When ``false`` when a departing from a visited vertex tries to avoid using the edge used to reach it.  In other words, U turn using the edge with same `id` is used when no other path is found.
-=================== ====================== ========= =========================================
-
-pgr_dijkstra_via_parameters_end
-
-USER*/
-
-
-CREATE OR REPLACE FUNCTION pgr_dijkstraVia(
-    edges_sql TEXT,
-    via_vertices ANYARRAY,
-    directed BOOLEAN DEFAULT TRUE,
-    strict BOOLEAN DEFAULT FALSE,
-    U_turn_on_edge BOOLEAN DEFAULT TRUE,
-
-
-    OUT seq INTEGER,
-    OUT path_id INTEGER,
-    OUT path_seq INTEGER,
-    OUT start_vid BIGINT,
-    OUT end_vid BIGINT,
-    OUT node BIGINT,
-    OUT edge BIGINT,
-    OUT cost FLOAT,
-    OUT agg_cost FLOAT,
-    OUT route_agg_cost FLOAT)
-
-  RETURNS SETOF RECORD AS
- '$libdir/${PGROUTING_LIBRARY_NAME}', 'dijkstraVia'
-    LANGUAGE c IMMUTABLE STRICT;
-
-
diff --git a/src/dijkstra/src/CMakeLists.txt b/src/dijkstra/src/CMakeLists.txt
index e3b688d..0910dd2 100644
--- a/src/dijkstra/src/CMakeLists.txt
+++ b/src/dijkstra/src/CMakeLists.txt
@@ -1,9 +1,6 @@
 ADD_LIBRARY(dijkstra OBJECT
-        one_to_one_dijkstra.c
-        one_to_many_dijkstra.c
-        many_to_one_dijkstra.c
-        many_to_many_dijkstra.c
+        dijkstra.c
         dijkstraVia.c
 
-        many_to_many_dijkstra_driver.cpp 
+        dijkstra_driver.cpp 
         dijkstraVia_driver.cpp)
diff --git a/src/dijkstra/src/dijkstra.c b/src/dijkstra/src/dijkstra.c
new file mode 100644
index 0000000..a746a5a
--- /dev/null
+++ b/src/dijkstra/src/dijkstra.c
@@ -0,0 +1,236 @@
+/*PGR-GNU*****************************************************************
+
+File: many_to_many_dijkstra.c
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer: 
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#include "c_common/postgres_connection.h"
+#include "utils/array.h"
+
+#include "c_common/debug_macro.h"
+#include "c_common/e_report.h"
+#include "c_common/time_msg.h"
+#include "c_common/edges_input.h"
+#include "c_common/arrays_input.h"
+#include "drivers/dijkstra/dijkstra_driver.h"
+
+PG_MODULE_MAGIC;
+
+PGDLLEXPORT Datum many_to_many_dijkstra(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(many_to_many_dijkstra);
+
+static
+void
+process(
+        char* edges_sql,
+        ArrayType *starts,
+        ArrayType *ends,
+        bool directed,
+        bool only_cost,
+        bool normal,
+        General_path_element_t **result_tuples,
+        size_t *result_count) {
+    pgr_SPI_connect();
+
+    int64_t* start_vidsArr = NULL;
+    size_t size_start_vidsArr = 0;
+
+    int64_t* end_vidsArr = NULL;
+    size_t size_end_vidsArr = 0;
+
+    pgr_edge_t *edges = NULL;
+    size_t total_edges = 0;
+    if (normal) {
+        pgr_get_edges(edges_sql, &edges, &total_edges);
+        start_vidsArr = (int64_t*)
+            pgr_get_bigIntArray(&size_start_vidsArr, starts);
+        end_vidsArr = (int64_t*)
+            pgr_get_bigIntArray(&size_end_vidsArr, ends);
+    } else {
+        pgr_get_edges_reversed(edges_sql, &edges, &total_edges);
+        end_vidsArr = (int64_t*)
+            pgr_get_bigIntArray(&size_end_vidsArr, starts);
+        start_vidsArr = (int64_t*)
+            pgr_get_bigIntArray(&size_start_vidsArr, ends);
+    }
+
+    if (total_edges == 0) {
+        if (end_vidsArr) pfree(end_vidsArr);
+        if (start_vidsArr) pfree(start_vidsArr);
+        pgr_SPI_finish();
+        return;
+    }
+
+    PGR_DBG("Starting timer");
+    clock_t start_t = clock();
+    char* log_msg = NULL;
+    char* notice_msg = NULL;
+    char* err_msg = NULL;
+    do_pgr_many_to_many_dijkstra(
+            edges, total_edges,
+            start_vidsArr, size_start_vidsArr,
+            end_vidsArr, size_end_vidsArr,
+
+            directed,
+            only_cost,
+            normal,
+
+            result_tuples,
+            result_count,
+
+            &log_msg,
+            &notice_msg,
+            &err_msg);
+
+    if (only_cost) {
+        time_msg("processing pgr_dijkstraCost", start_t, clock());
+    } else {
+        time_msg("processing pgr_dijkstra", start_t, clock());
+    }
+
+
+    if (err_msg && (*result_tuples)) {
+        pfree(*result_tuples);
+        (*result_tuples) = NULL;
+        (*result_count) = 0;
+    }
+
+    pgr_global_report(log_msg, notice_msg, err_msg);
+
+    if (log_msg) pfree(log_msg);
+    if (notice_msg) pfree(notice_msg);
+    if (err_msg) pfree(err_msg);
+    if (edges) pfree(edges);
+    if (start_vidsArr) pfree(start_vidsArr);
+    if (end_vidsArr) pfree(end_vidsArr);
+    pgr_SPI_finish();
+}
+
+PGDLLEXPORT Datum
+many_to_many_dijkstra(PG_FUNCTION_ARGS) {
+    FuncCallContext     *funcctx;
+    TupleDesc            tuple_desc;
+
+    /**********************************************************************/
+    General_path_element_t  *result_tuples = NULL;
+    size_t result_count = 0;
+    /**********************************************************************/
+
+    if (SRF_IS_FIRSTCALL()) {
+        MemoryContext   oldcontext;
+        funcctx = SRF_FIRSTCALL_INIT();
+        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
+
+
+        /**********************************************************************/
+        // pgr_dijkstra(
+        // sql TEXT,
+        // start_vids ANYARRAY,
+        // end_vids ANYARRAY,
+        // directed BOOLEAN default true,
+        // only_cost BOOLEAN default false
+        // normal BOOLEAN default true
+
+        process(
+                text_to_cstring(PG_GETARG_TEXT_P(0)),
+                PG_GETARG_ARRAYTYPE_P(1),
+                PG_GETARG_ARRAYTYPE_P(2),
+                PG_GETARG_BOOL(3),
+                PG_GETARG_BOOL(4),
+                PG_GETARG_BOOL(5),
+                &result_tuples,
+                &result_count);
+
+        /**********************************************************************/
+
+#if PGSQL_VERSION > 95
+        funcctx->max_calls = result_count;
+#else
+        funcctx->max_calls = (uint32_t)result_count;
+#endif
+
+        funcctx->user_fctx = result_tuples;
+        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
+                != TYPEFUNC_COMPOSITE) {
+            ereport(ERROR,
+                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+                     errmsg("function returning record called in context "
+                         "that cannot accept type record")));
+        }
+
+        funcctx->tuple_desc = tuple_desc;
+        MemoryContextSwitchTo(oldcontext);
+    }
+
+    funcctx = SRF_PERCALL_SETUP();
+    tuple_desc = funcctx->tuple_desc;
+    result_tuples = (General_path_element_t*) funcctx->user_fctx;
+
+    if (funcctx->call_cntr < funcctx->max_calls) {
+        HeapTuple    tuple;
+        Datum        result;
+        Datum        *values;
+        bool*        nulls;
+        size_t       call_cntr = funcctx->call_cntr;
+
+        /**********************************************************************/
+        // OUT seq INTEGER,
+        // OUT path_seq INTEGER,
+        // OUT start_vid BIGINT,
+        // OUT end_vid BIGINT,
+        // OUT node BIGINT,
+        // OUT edge BIGINT,
+        // OUT cost FLOAT,
+        // OUT agg_cost FLOAT)
+
+        size_t numb = 8;
+        values = palloc(numb * sizeof(Datum));
+        nulls = palloc(numb * sizeof(bool));
+
+        size_t i;
+        for (i = 0; i < numb; ++i) {
+            nulls[i] = false;
+        }
+
+        values[0] = Int32GetDatum(call_cntr + 1);
+        values[1] = Int32GetDatum(result_tuples[call_cntr].seq);
+        values[2] = Int64GetDatum(result_tuples[call_cntr].start_id);
+        values[3] = Int64GetDatum(result_tuples[call_cntr].end_id);
+        values[4] = Int64GetDatum(result_tuples[call_cntr].node);
+        values[5] = Int64GetDatum(result_tuples[call_cntr].edge);
+        values[6] = Float8GetDatum(result_tuples[call_cntr].cost);
+        values[7] = Float8GetDatum(result_tuples[call_cntr].agg_cost);
+        /**********************************************************************/
+
+        tuple = heap_form_tuple(tuple_desc, values, nulls);
+        result = HeapTupleGetDatum(tuple);
+        SRF_RETURN_NEXT(funcctx, result);
+    } else {
+        SRF_RETURN_DONE(funcctx);
+    }
+}
+
diff --git a/src/dijkstra/src/dijkstraVia.c b/src/dijkstra/src/dijkstraVia.c
index bc93d9f..52b9bd6 100644
--- a/src/dijkstra/src/dijkstraVia.c
+++ b/src/dijkstra/src/dijkstraVia.c
@@ -25,16 +25,15 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#include "./../../common/src/postgres_connection.h"
+#include "c_common/postgres_connection.h"
 #include "utils/array.h"
 
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/e_report.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/edges_input.h"
-#include "./../../common/src/arrays_input.h"
-#include "./dijkstraVia_driver.h"
+#include "c_common/debug_macro.h"
+#include "c_common/e_report.h"
+#include "c_common/time_msg.h"
+#include "c_common/edges_input.h"
+#include "c_common/arrays_input.h"
+#include "drivers/dijkstra/dijkstraVia_driver.h"
 
 PGDLLEXPORT Datum dijkstraVia(PG_FUNCTION_ARGS);
 PG_FUNCTION_INFO_V1(dijkstraVia);
diff --git a/src/dijkstra/src/dijkstraVia_driver.cpp b/src/dijkstra/src/dijkstraVia_driver.cpp
index 8599df4..2af7965 100644
--- a/src/dijkstra/src/dijkstraVia_driver.cpp
+++ b/src/dijkstra/src/dijkstraVia_driver.cpp
@@ -25,17 +25,16 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#include "./dijkstraVia_driver.h"
+#include "drivers/dijkstra/dijkstraVia_driver.h"
 
 #include <sstream>
 #include <deque>
 #include <vector>
 
-#include "./pgr_dijkstra.hpp"
+#include "dijkstra/pgr_dijkstra.hpp"
 
-#include "./../../common/src/pgr_alloc.hpp"
-#include "./../../common/src/pgr_assert.h"
-#include "./../../common/src/pgr_types.h"
+#include "cpp_common/pgr_alloc.hpp"
+#include "cpp_common/pgr_assert.h"
 
 
 template <class G>
diff --git a/src/dijkstra/src/dijkstraVia_driver.h b/src/dijkstra/src/dijkstraVia_driver.h
deleted file mode 100644
index 7da7893..0000000
--- a/src/dijkstra/src/dijkstraVia_driver.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: dijkstraViaVertex.c
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-
-Function's developer: 
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifndef SRC_DIJKSTRA_SRC_DIJKSTRAVIA_DRIVER_H_
-#define SRC_DIJKSTRA_SRC_DIJKSTRAVIA_DRIVER_H_
-#pragma once
-
-#include "./../../common/src/pgr_types.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-    /*
-       CREATE OR REPLACE FUNCTION pgr_dijkstraViaVertices(
-       sql text,
-       vertices anyarray,
-       directed boolean default true,
-       */
-    void
-        do_pgr_dijkstraVia(
-                pgr_edge_t  *data_edges,  size_t total_edges,
-                int64_t  *via_vidsArr,    size_t size_via_vidsArr,
-                bool directed,
-                bool strict,
-                bool U_turn_on_edge,
-                Routes_t **return_tuples, size_t *return_count,
-
-                char** log_msg,
-                char** notice_msg,
-                char** err_msg);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif  // SRC_DIJKSTRA_SRC_DIJKSTRAVIA_DRIVER_H_
diff --git a/src/dijkstra/src/dijkstra_driver.cpp b/src/dijkstra/src/dijkstra_driver.cpp
new file mode 100644
index 0000000..f91d768
--- /dev/null
+++ b/src/dijkstra/src/dijkstra_driver.cpp
@@ -0,0 +1,174 @@
+/*PGR-GNU*****************************************************************
+File: many_to_many_dijkstra_driver.cpp
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer: 
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail: vicky_vergara at hotmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#include "drivers/dijkstra/dijkstra_driver.h"
+
+#include <sstream>
+#include <deque>
+#include <vector>
+#include <algorithm>
+
+#include "dijkstra/pgr_dijkstra.hpp"
+
+#include "cpp_common/pgr_alloc.hpp"
+#include "cpp_common/pgr_assert.h"
+
+template < class G >
+std::deque< Path >
+pgr_dijkstra(
+        G &graph,
+        std::vector < int64_t > sources,
+        std::vector < int64_t > targets,
+        bool only_cost,
+        bool normal) {
+    std::sort(sources.begin(), sources.end());
+    sources.erase(
+            std::unique(sources.begin(), sources.end()),
+            sources.end());
+
+    std::sort(targets.begin(), targets.end());
+    targets.erase(
+            std::unique(targets.begin(), targets.end()),
+            targets.end());
+
+    Pgr_dijkstra< G > fn_dijkstra;
+    auto paths = fn_dijkstra.dijkstra(graph, sources, targets, only_cost);
+
+    if (!normal) {
+        for (auto &path : paths) {
+            path.reverse();
+        }
+    }
+    return paths;
+}
+
+
+
+// CREATE OR REPLACE FUNCTION pgr_dijkstra(
+// sql text,
+// start_vids anyarray,
+// end_vids anyarray,
+// directed boolean default true,
+void
+do_pgr_many_to_many_dijkstra(
+        pgr_edge_t  *data_edges,
+        size_t total_edges,
+        int64_t  *start_vidsArr,
+        size_t size_start_vidsArr,
+        int64_t  *end_vidsArr,
+        size_t size_end_vidsArr,
+        bool directed,
+        bool only_cost,
+        bool normal,
+        General_path_element_t **return_tuples,
+        size_t *return_count,
+        char ** log_msg,
+        char ** notice_msg,
+        char ** err_msg) {
+    std::ostringstream log;
+    std::ostringstream err;
+    std::ostringstream notice;
+
+    try {
+        pgassert(total_edges != 0);
+        pgassert(!(*log_msg));
+        pgassert(!(*notice_msg));
+        pgassert(!(*err_msg));
+        pgassert(!(*return_tuples));
+        pgassert(*return_count == 0);
+
+        graphType gType = directed? DIRECTED: UNDIRECTED;
+
+        log << "Inserting vertices into a c++ vector structure";
+        std::vector<int64_t>
+            start_vertices(start_vidsArr, start_vidsArr + size_start_vidsArr);
+        std::vector< int64_t >
+            end_vertices(end_vidsArr, end_vidsArr + size_end_vidsArr);
+
+        std::deque< Path >paths;
+        if (directed) {
+            log << "\nWorking with directed Graph";
+            pgrouting::DirectedGraph digraph(gType);
+            digraph.insert_edges(data_edges, total_edges);
+            paths = pgr_dijkstra(
+                    digraph,
+                    start_vertices, end_vertices,
+                    only_cost, normal);
+        } else {
+            log << "\nWorking with Undirected Graph";
+            pgrouting::UndirectedGraph undigraph(gType);
+            undigraph.insert_edges(data_edges, total_edges);
+            paths = pgr_dijkstra(
+                    undigraph,
+                    start_vertices, end_vertices,
+                    only_cost, normal);
+        }
+
+        size_t count(0);
+        count = count_tuples(paths);
+
+        if (count == 0) {
+            (*return_tuples) = NULL;
+            (*return_count) = 0;
+            notice <<
+                "No paths found";
+            *log_msg = pgr_msg(notice.str().c_str());
+            return;
+        }
+
+        (*return_tuples) = pgr_alloc(count, (*return_tuples));
+        log << "\nConverting a set of paths into the tuples";
+        (*return_count) = (collapse_paths(return_tuples, paths));
+
+        *log_msg = log.str().empty()?
+            *log_msg :
+            pgr_msg(log.str().c_str());
+        *notice_msg = notice.str().empty()?
+            *notice_msg :
+            pgr_msg(notice.str().c_str());
+    } catch (AssertFailedException &except) {
+        (*return_tuples) = pgr_free(*return_tuples);
+        (*return_count) = 0;
+        err << except.what();
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    } catch (std::exception &except) {
+        (*return_tuples) = pgr_free(*return_tuples);
+        (*return_count) = 0;
+        err << except.what();
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    } catch(...) {
+        (*return_tuples) = pgr_free(*return_tuples);
+        (*return_count) = 0;
+        err << "Caught unknown exception!";
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    }
+}
diff --git a/src/dijkstra/src/many_to_many_dijkstra.c b/src/dijkstra/src/many_to_many_dijkstra.c
deleted file mode 100644
index cab39ef..0000000
--- a/src/dijkstra/src/many_to_many_dijkstra.c
+++ /dev/null
@@ -1,225 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-File: many_to_many_dijkstra.c
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer: 
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#include "./../../common/src/postgres_connection.h"
-#include "utils/array.h"
-
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/e_report.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/edges_input.h"
-#include "./../../common/src/arrays_input.h"
-#include "./many_to_many_dijkstra_driver.h"
-
-PGDLLEXPORT Datum many_to_many_dijkstra(PG_FUNCTION_ARGS);
-PG_FUNCTION_INFO_V1(many_to_many_dijkstra);
-
-static
-void
-process(
-        char* edges_sql,
-        ArrayType *starts,
-        ArrayType *ends,
-        bool directed,
-        bool only_cost,
-        General_path_element_t **result_tuples,
-        size_t *result_count) {
-    pgr_SPI_connect();
-
-    int64_t* start_vidsArr = NULL;
-    size_t size_start_vidsArr = 0;
-    start_vidsArr = (int64_t*)
-        pgr_get_bigIntArray(&size_start_vidsArr, starts);
-
-    int64_t* end_vidsArr = NULL;
-    size_t size_end_vidsArr = 0;
-    end_vidsArr = (int64_t*)
-        pgr_get_bigIntArray(&size_end_vidsArr, ends);
-
-    pgr_edge_t *edges = NULL;
-    size_t total_edges = 0;
-    pgr_get_edges(edges_sql, &edges, &total_edges);
-
-
-    if (total_edges == 0) {
-        if (end_vidsArr) pfree(end_vidsArr);
-        if (start_vidsArr) pfree(start_vidsArr);
-        pgr_SPI_finish();
-        return;
-    }
-
-    PGR_DBG("Starting timer");
-    clock_t start_t = clock();
-    char* log_msg = NULL;
-    char* notice_msg = NULL;
-    char* err_msg = NULL;
-    do_pgr_many_to_many_dijkstra(
-            edges, total_edges,
-            start_vidsArr, size_start_vidsArr,
-            end_vidsArr, size_end_vidsArr,
-
-            directed,
-            only_cost,
-            true,  // normal
-
-            result_tuples,
-            result_count,
-
-            &log_msg,
-            &notice_msg,
-            &err_msg);
-
-    if (only_cost) {
-        time_msg("processing pgr_dijkstraCost(many to many)", start_t, clock());
-    } else {
-        time_msg("processing pgr_dijkstra(many to many)", start_t, clock());
-    }
-
-
-    if (err_msg && (*result_tuples)) {
-        pfree(*result_tuples);
-        (*result_tuples) = NULL;
-        (*result_count) = 0;
-    }
-
-    pgr_global_report(log_msg, notice_msg, err_msg);
-
-    if (log_msg) pfree(log_msg);
-    if (notice_msg) pfree(notice_msg);
-    if (err_msg) pfree(err_msg);
-    if (edges) pfree(edges);
-    if (start_vidsArr) pfree(start_vidsArr);
-    if (end_vidsArr) pfree(end_vidsArr);
-    pgr_SPI_finish();
-}
-
-PGDLLEXPORT Datum
-many_to_many_dijkstra(PG_FUNCTION_ARGS) {
-    FuncCallContext     *funcctx;
-    TupleDesc            tuple_desc;
-
-    /**********************************************************************/
-    General_path_element_t  *result_tuples = NULL;
-    size_t result_count = 0;
-    /**********************************************************************/
-
-    if (SRF_IS_FIRSTCALL()) {
-        MemoryContext   oldcontext;
-        funcctx = SRF_FIRSTCALL_INIT();
-        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
-
-
-        /**********************************************************************/
-        // pgr_dijkstra(
-        // sql TEXT,
-        // start_vids ANYARRAY,
-        // end_vids ANYARRAY,
-        // directed BOOLEAN default true,
-        // only_cost BOOLEAN default false
-
-        process(
-                text_to_cstring(PG_GETARG_TEXT_P(0)),
-                PG_GETARG_ARRAYTYPE_P(1),
-                PG_GETARG_ARRAYTYPE_P(2),
-                PG_GETARG_BOOL(3),
-                PG_GETARG_BOOL(4),
-                &result_tuples,
-                &result_count);
-
-        /**********************************************************************/
-
-#if PGSQL_VERSION > 95
-        funcctx->max_calls = result_count;
-#else
-        funcctx->max_calls = (uint32_t)result_count;
-#endif
-
-        funcctx->user_fctx = result_tuples;
-        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
-                != TYPEFUNC_COMPOSITE) {
-            ereport(ERROR,
-                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-                     errmsg("function returning record called in context "
-                         "that cannot accept type record")));
-        }
-
-        funcctx->tuple_desc = tuple_desc;
-        MemoryContextSwitchTo(oldcontext);
-    }
-
-    funcctx = SRF_PERCALL_SETUP();
-    tuple_desc = funcctx->tuple_desc;
-    result_tuples = (General_path_element_t*) funcctx->user_fctx;
-
-    if (funcctx->call_cntr < funcctx->max_calls) {
-        HeapTuple    tuple;
-        Datum        result;
-        Datum        *values;
-        bool*        nulls;
-        size_t       call_cntr = funcctx->call_cntr;
-
-        /**********************************************************************/
-        // OUT seq INTEGER,
-        // OUT path_seq INTEGER,
-        // OUT start_vid BIGINT,
-        // OUT end_vid BIGINT,
-        // OUT node BIGINT,
-        // OUT edge BIGINT,
-        // OUT cost FLOAT,
-        // OUT agg_cost FLOAT)
-
-        size_t numb = 8;
-        values = palloc(numb * sizeof(Datum));
-        nulls = palloc(numb * sizeof(bool));
-
-        size_t i;
-        for (i = 0; i < numb; ++i) {
-            nulls[i] = false;
-        }
-
-        values[0] = Int32GetDatum(call_cntr + 1);
-        values[1] = Int32GetDatum(result_tuples[call_cntr].seq);
-        values[2] = Int64GetDatum(result_tuples[call_cntr].start_id);
-        values[3] = Int64GetDatum(result_tuples[call_cntr].end_id);
-        values[4] = Int64GetDatum(result_tuples[call_cntr].node);
-        values[5] = Int64GetDatum(result_tuples[call_cntr].edge);
-        values[6] = Float8GetDatum(result_tuples[call_cntr].cost);
-        values[7] = Float8GetDatum(result_tuples[call_cntr].agg_cost);
-        /**********************************************************************/
-
-        tuple = heap_form_tuple(tuple_desc, values, nulls);
-        result = HeapTupleGetDatum(tuple);
-        SRF_RETURN_NEXT(funcctx, result);
-    } else {
-        SRF_RETURN_DONE(funcctx);
-    }
-}
-
diff --git a/src/dijkstra/src/many_to_many_dijkstra_driver.cpp b/src/dijkstra/src/many_to_many_dijkstra_driver.cpp
deleted file mode 100644
index f0ee9dd..0000000
--- a/src/dijkstra/src/many_to_many_dijkstra_driver.cpp
+++ /dev/null
@@ -1,175 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: many_to_many_dijkstra_driver.cpp
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer: 
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#include "./many_to_many_dijkstra_driver.h"
-
-#include <sstream>
-#include <deque>
-#include <vector>
-#include <algorithm>
-
-#include "./pgr_dijkstra.hpp"
-
-#include "../../common/src/pgr_alloc.hpp"
-#include "./../../common/src/pgr_assert.h"
-#include "./../../common/src/pgr_types.h"
-
-template < class G >
-std::deque< Path >
-pgr_dijkstra(
-        G &graph,
-        std::vector < int64_t > sources,
-        std::vector < int64_t > targets,
-        bool only_cost,
-        bool normal) {
-    std::sort(sources.begin(), sources.end());
-    sources.erase(
-            std::unique(sources.begin(), sources.end()),
-            sources.end());
-
-    std::sort(targets.begin(), targets.end());
-    targets.erase(
-            std::unique(targets.begin(), targets.end()),
-            targets.end());
-
-    Pgr_dijkstra< G > fn_dijkstra;
-    auto paths = fn_dijkstra.dijkstra(graph, sources, targets, only_cost);
-
-    if (!normal) {
-        for (auto &path : paths) {
-            path.reverse();
-        }
-    }
-    return paths;
-}
-
-
-
-// CREATE OR REPLACE FUNCTION pgr_dijkstra(
-// sql text,
-// start_vids anyarray,
-// end_vids anyarray,
-// directed boolean default true,
-void
-do_pgr_many_to_many_dijkstra(
-        pgr_edge_t  *data_edges,
-        size_t total_edges,
-        int64_t  *start_vidsArr,
-        size_t size_start_vidsArr,
-        int64_t  *end_vidsArr,
-        size_t size_end_vidsArr,
-        bool directed,
-        bool only_cost,
-        bool normal,
-        General_path_element_t **return_tuples,
-        size_t *return_count,
-        char ** log_msg,
-        char ** notice_msg,
-        char ** err_msg) {
-    std::ostringstream log;
-    std::ostringstream err;
-    std::ostringstream notice;
-
-    try {
-        pgassert(total_edges != 0);
-        pgassert(!(*log_msg));
-        pgassert(!(*notice_msg));
-        pgassert(!(*err_msg));
-        pgassert(!(*return_tuples));
-        pgassert(*return_count == 0);
-
-        graphType gType = directed? DIRECTED: UNDIRECTED;
-
-        log << "Inserting vertices into a c++ vector structure";
-        std::vector<int64_t>
-            start_vertices(start_vidsArr, start_vidsArr + size_start_vidsArr);
-        std::vector< int64_t >
-            end_vertices(end_vidsArr, end_vidsArr + size_end_vidsArr);
-
-        std::deque< Path >paths;
-        if (directed) {
-            log << "\nWorking with directed Graph";
-            pgrouting::DirectedGraph digraph(gType);
-            digraph.insert_edges(data_edges, total_edges);
-            paths = pgr_dijkstra(
-                    digraph,
-                    start_vertices, end_vertices,
-                    only_cost, normal);
-        } else {
-            log << "\nWorking with Undirected Graph";
-            pgrouting::UndirectedGraph undigraph(gType);
-            undigraph.insert_edges(data_edges, total_edges);
-            paths = pgr_dijkstra(
-                    undigraph,
-                    start_vertices, end_vertices,
-                    only_cost, normal);
-        }
-
-        size_t count(0);
-        count = count_tuples(paths);
-
-        if (count == 0) {
-            (*return_tuples) = NULL;
-            (*return_count) = 0;
-            notice <<
-                "No paths found";
-            *log_msg = pgr_msg(notice.str().c_str());
-            return;
-        }
-
-        (*return_tuples) = pgr_alloc(count, (*return_tuples));
-        log << "\nConverting a set of paths into the tuples";
-        (*return_count) = (collapse_paths(return_tuples, paths));
-
-        *log_msg = log.str().empty()?
-            *log_msg :
-            pgr_msg(log.str().c_str());
-        *notice_msg = notice.str().empty()?
-            *notice_msg :
-            pgr_msg(notice.str().c_str());
-    } catch (AssertFailedException &except) {
-        (*return_tuples) = pgr_free(*return_tuples);
-        (*return_count) = 0;
-        err << except.what();
-        *err_msg = pgr_msg(err.str().c_str());
-        *log_msg = pgr_msg(log.str().c_str());
-    } catch (std::exception &except) {
-        (*return_tuples) = pgr_free(*return_tuples);
-        (*return_count) = 0;
-        err << except.what();
-        *err_msg = pgr_msg(err.str().c_str());
-        *log_msg = pgr_msg(log.str().c_str());
-    } catch(...) {
-        (*return_tuples) = pgr_free(*return_tuples);
-        (*return_count) = 0;
-        err << "Caught unknown exception!";
-        *err_msg = pgr_msg(err.str().c_str());
-        *log_msg = pgr_msg(log.str().c_str());
-    }
-}
diff --git a/src/dijkstra/src/many_to_many_dijkstra_driver.h b/src/dijkstra/src/many_to_many_dijkstra_driver.h
deleted file mode 100644
index 3bc8b17..0000000
--- a/src/dijkstra/src/many_to_many_dijkstra_driver.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-File: many_to_many_dijkstra_driver.h
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer: 
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifndef SRC_DIJKSTRA_SRC_MANY_TO_MANY_DIJKSTRA_DRIVER_H_
-#define SRC_DIJKSTRA_SRC_MANY_TO_MANY_DIJKSTRA_DRIVER_H_
-
-#include "./../../common/src/pgr_types.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-    //  CREATE OR REPLACE FUNCTION pgr_dijkstra(
-    //  sql text,
-    //  start_vids anyarray,
-    //  end_vids anyarray,
-    //  directed boolean default true,
-    void do_pgr_many_to_many_dijkstra(
-            pgr_edge_t  *data_edges,
-            size_t total_tuples,
-            int64_t  *start_vidsArr,
-            size_t size_start_vidsArr,
-            int64_t  *end_vidsArr,
-            size_t size_end_vidsArr,
-            bool directed,
-            bool only_cost,
-            bool normal,
-
-            General_path_element_t **return_tuples,
-            size_t *return_count,
-
-            char** log_msg,
-            char** notice_msg,
-            char** err_msg);
-
-#ifdef __cplusplus
-    }
-#endif
-
-#endif  // SRC_DIJKSTRA_SRC_MANY_TO_MANY_DIJKSTRA_DRIVER_H_
diff --git a/src/dijkstra/src/many_to_one_dijkstra.c b/src/dijkstra/src/many_to_one_dijkstra.c
deleted file mode 100644
index a82a1a4..0000000
--- a/src/dijkstra/src/many_to_one_dijkstra.c
+++ /dev/null
@@ -1,212 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-File: many_to_one_dijkstra.c
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer: 
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#include "./../../common/src/postgres_connection.h"
-#include "utils/array.h"
-
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/e_report.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/edges_input.h"
-#include "./../../common/src/arrays_input.h"
-#include "./many_to_many_dijkstra_driver.h"
-
-PGDLLEXPORT Datum many_to_one_dijkstra(PG_FUNCTION_ARGS);
-PG_FUNCTION_INFO_V1(many_to_one_dijkstra);
-
-static
-void
-process(
-        char* edges_sql,
-        ArrayType *starts,
-        int64_t end_vid,
-        bool directed,
-        bool only_cost,
-        General_path_element_t **result_tuples,
-        size_t *result_count) {
-    pgr_SPI_connect();
-
-    int64_t* start_vidsArr = NULL;
-    size_t size_start_vidsArr = 0;
-    start_vidsArr = (int64_t*)
-        pgr_get_bigIntArray(&size_start_vidsArr, starts);
-
-    pgr_edge_t *edges = NULL;
-    size_t total_edges = 0;
-    pgr_get_edges_reversed(edges_sql, &edges, &total_edges);
-
-    if (total_edges == 0) {
-        if (start_vidsArr) pfree(start_vidsArr);
-        pgr_SPI_finish();
-        return;
-    }
-
-    PGR_DBG("Starting timer");
-    clock_t start_t = clock();
-    char* log_msg = NULL;
-    char* notice_msg = NULL;
-    char* err_msg = NULL;
-    do_pgr_many_to_many_dijkstra(
-            edges, total_edges,
-            &end_vid, 1,
-            start_vidsArr, size_start_vidsArr,
-
-            directed,
-            only_cost,
-            false,  // data is reversed
-            result_tuples,
-            result_count,
-
-            &log_msg,
-            &notice_msg,
-            &err_msg);
-
-    if (only_cost) {
-        time_msg("processing pgr_dijkstraCost(many to one)", start_t, clock());
-    } else {
-        time_msg("processing pgr_dijkstra(many to one)", start_t, clock());
-    }
-
-    if (err_msg && (*result_tuples)) {
-        pfree(*result_tuples);
-        (*result_count) = 0;
-        (*result_tuples) = NULL;
-    }
-
-    pgr_global_report(log_msg, notice_msg, err_msg);
-
-    if (log_msg) pfree(log_msg);
-    if (notice_msg) pfree(notice_msg);
-    if (err_msg) pfree(err_msg);
-    if (edges) pfree(edges);
-    if (start_vidsArr) pfree(start_vidsArr);
-
-    pgr_SPI_finish();
-}
-
-PGDLLEXPORT Datum
-many_to_one_dijkstra(PG_FUNCTION_ARGS) {
-    FuncCallContext     *funcctx;
-    TupleDesc            tuple_desc;
-
-    /**********************************************************************/
-    General_path_element_t  *result_tuples = NULL;
-    size_t result_count = 0;
-    /**********************************************************************/
-
-    if (SRF_IS_FIRSTCALL()) {
-        MemoryContext   oldcontext;
-        funcctx = SRF_FIRSTCALL_INIT();
-        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
-
-
-        /**********************************************************************/
-        // pgr_dijkstra(
-        // sql TEXT,
-        // start_vids ANYARRAY,
-        // end_vid BIGINT,
-        // directed BOOLEAN default true,
-        // only_cost BOOLEAN default false
-
-        process(
-                text_to_cstring(PG_GETARG_TEXT_P(0)),
-                PG_GETARG_ARRAYTYPE_P(1),
-                PG_GETARG_INT64(2),
-                PG_GETARG_BOOL(3),
-                PG_GETARG_BOOL(4),
-                &result_tuples,
-                &result_count);
-
-
-#if PGSQL_VERSION > 95
-        funcctx->max_calls = result_count;
-#else
-        funcctx->max_calls = (uint32_t)result_count;
-#endif
-        funcctx->user_fctx = result_tuples;
-        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
-                != TYPEFUNC_COMPOSITE) {
-            ereport(ERROR,
-                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-                     errmsg("function returning record called in context "
-                         "that cannot accept type record")));
-        }
-
-        funcctx->tuple_desc = tuple_desc;
-        MemoryContextSwitchTo(oldcontext);
-    }
-
-    funcctx = SRF_PERCALL_SETUP();
-    tuple_desc = funcctx->tuple_desc;
-    result_tuples = (General_path_element_t*) funcctx->user_fctx;
-
-    if (funcctx->call_cntr < funcctx->max_calls) {
-        HeapTuple    tuple;
-        Datum        result;
-        Datum        *values;
-        bool*        nulls;
-        size_t       call_cntr = funcctx->call_cntr;
-
-        /**********************************************************************/
-        // OUT seq INTEGER,
-        // OUT path_seq INTEGER,
-        // OUT start_vid BIGINT,
-        // OUT node BIGINT,
-        // OUT edge BIGINT,
-        // OUT cost FLOAT,
-        // OUT agg_cost FLOAT)
-
-        size_t numb = 7;
-        values = palloc(numb * sizeof(Datum));
-        nulls = palloc(numb * sizeof(bool));
-
-        size_t i;
-        for (i = 0; i < numb; ++i) {
-            nulls[i] = false;
-        }
-
-        values[0] = Int32GetDatum(call_cntr + 1);
-        values[1] = Int32GetDatum(result_tuples[call_cntr].seq);
-        values[2] = Int64GetDatum(result_tuples[call_cntr].start_id);
-        values[3] = Int64GetDatum(result_tuples[call_cntr].node);
-        values[4] = Int64GetDatum(result_tuples[call_cntr].edge);
-        values[5] = Float8GetDatum(result_tuples[call_cntr].cost);
-        values[6] = Float8GetDatum(result_tuples[call_cntr].agg_cost);
-        /**********************************************************************/
-
-        tuple = heap_form_tuple(tuple_desc, values, nulls);
-        result = HeapTupleGetDatum(tuple);
-        SRF_RETURN_NEXT(funcctx, result);
-    } else {
-        SRF_RETURN_DONE(funcctx);
-    }
-}
-
diff --git a/src/dijkstra/src/one_to_many_dijkstra.c b/src/dijkstra/src/one_to_many_dijkstra.c
deleted file mode 100644
index de9f4b0..0000000
--- a/src/dijkstra/src/one_to_many_dijkstra.c
+++ /dev/null
@@ -1,216 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: one_to_many_dijkstra.c
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer:
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#include "./../../common/src/postgres_connection.h"
-#include "utils/array.h"
-
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/e_report.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/edges_input.h"
-#include "./../../common/src/arrays_input.h"
-#include "./many_to_many_dijkstra_driver.h"
-
-PGDLLEXPORT Datum one_to_many_dijkstra(PG_FUNCTION_ARGS);
-PG_FUNCTION_INFO_V1(one_to_many_dijkstra);
-
-
-static
-void
-process(
-        char* edges_sql,
-        int64_t start_vid,
-        ArrayType *ends,
-        bool directed,
-        bool only_cost,
-        General_path_element_t **result_tuples,
-        size_t *result_count) {
-    pgr_SPI_connect();
-
-    int64_t* end_vidsArr = NULL;;
-    size_t size_end_vidsArr = 0;
-    end_vidsArr = (int64_t*)
-        pgr_get_bigIntArray(&size_end_vidsArr, ends);
-
-    pgr_edge_t *edges = NULL;
-    size_t total_edges = 0;
-    pgr_get_edges(edges_sql, &edges, &total_edges);
-
-    if (total_edges == 0) {
-        if (end_vidsArr) pfree(end_vidsArr);
-        pgr_SPI_finish();
-        return;
-    }
-
-    PGR_DBG("Starting timer");
-    clock_t start_t = clock();
-    char* log_msg = NULL;
-    char* notice_msg = NULL;
-    char* err_msg = NULL;
-    do_pgr_many_to_many_dijkstra(
-            edges, total_edges,
-            &start_vid, 1,
-            end_vidsArr, size_end_vidsArr,
-
-            directed,
-            only_cost,
-            true,  // normal
-
-            result_tuples,
-            result_count,
-
-            &log_msg,
-            &notice_msg,
-            &err_msg);
-
-    if (only_cost) {
-        time_msg("processing pgr_dijkstraCost(one to many)", start_t, clock());
-    } else {
-        time_msg("processing pgr_dijkstra(one to many)", start_t, clock());
-    }
-
-
-    if (err_msg && (*result_tuples)) {
-        pfree(*result_tuples);
-        (*result_count) = 0;
-        (*result_tuples) = NULL;
-    }
-
-    pgr_global_report(log_msg, notice_msg, err_msg);
-
-    if (log_msg) pfree(log_msg);
-    if (notice_msg) pfree(notice_msg);
-    if (err_msg) pfree(err_msg);
-    if (edges) pfree(edges);
-    if (end_vidsArr) pfree(end_vidsArr);
-
-    pgr_SPI_finish();
-}
-
-PGDLLEXPORT Datum
-one_to_many_dijkstra(PG_FUNCTION_ARGS) {
-    FuncCallContext     *funcctx;
-    TupleDesc            tuple_desc;
-
-    /**********************************************************************/
-    General_path_element_t  *result_tuples = 0;
-    size_t result_count = 0;
-    /**********************************************************************/
-
-    if (SRF_IS_FIRSTCALL()) {
-        MemoryContext   oldcontext;
-        funcctx = SRF_FIRSTCALL_INIT();
-        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
-
-
-        /**********************************************************************/
-        // pgr_dijkstra(
-        // sql TEXT,
-        // start_vid BIGINT,
-        // end_vids ANYARRAY,
-        // directed BOOLEAN default true,
-        // only_cost BOOLEAN default false
-
-        process(
-                text_to_cstring(PG_GETARG_TEXT_P(0)),
-                PG_GETARG_INT64(1),
-                PG_GETARG_ARRAYTYPE_P(2),
-                PG_GETARG_BOOL(3),
-                PG_GETARG_BOOL(4),
-                &result_tuples,
-                &result_count);
-
-        /**********************************************************************/
-
-
-#if PGSQL_VERSION > 95
-        funcctx->max_calls = result_count;
-#else
-        funcctx->max_calls = (uint32_t)result_count;
-#endif
-
-        funcctx->user_fctx = result_tuples;
-        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
-                != TYPEFUNC_COMPOSITE) {
-            ereport(ERROR,
-                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-                     errmsg("function returning record called in context "
-                         "that cannot accept type record")));
-        }
-
-        funcctx->tuple_desc = tuple_desc;
-        MemoryContextSwitchTo(oldcontext);
-    }
-
-    funcctx = SRF_PERCALL_SETUP();
-    tuple_desc = funcctx->tuple_desc;
-    result_tuples = (General_path_element_t*) funcctx->user_fctx;
-
-    if (funcctx->call_cntr < funcctx->max_calls) {
-        HeapTuple    tuple;
-        Datum        result;
-        Datum        *values;
-        bool*        nulls;
-        size_t       call_cntr = funcctx->call_cntr;
-
-        /**********************************************************************/
-        // OUT seq INTEGER,
-        // OUT path_seq INTEGER,
-        // OUT end_vid BIGINT,
-        // OUT node BIGINT,
-        // OUT edge BIGINT,
-        // OUT cost FLOAT,
-        // OUT agg_cost FLOAT)
-
-        size_t numb = 7;
-        values = palloc(numb * sizeof(Datum));
-        nulls = palloc(numb * sizeof(bool));
-
-        size_t i;
-        for (i = 0; i < numb; ++i) {
-            nulls[i] = false;
-        }
-
-        values[0] = Int32GetDatum(call_cntr + 1);
-        values[1] = Int32GetDatum(result_tuples[call_cntr].seq);
-        values[2] = Int64GetDatum(result_tuples[call_cntr].end_id);
-        values[3] = Int64GetDatum(result_tuples[call_cntr].node);
-        values[4] = Int64GetDatum(result_tuples[call_cntr].edge);
-        values[5] = Float8GetDatum(result_tuples[call_cntr].cost);
-        values[6] = Float8GetDatum(result_tuples[call_cntr].agg_cost);
-        /**********************************************************************/
-
-        tuple = heap_form_tuple(tuple_desc, values, nulls);
-        result = HeapTupleGetDatum(tuple);
-        SRF_RETURN_NEXT(funcctx, result);
-    } else {
-        SRF_RETURN_DONE(funcctx);
-    }
-}
diff --git a/src/dijkstra/src/one_to_one_dijkstra.c b/src/dijkstra/src/one_to_one_dijkstra.c
deleted file mode 100644
index 674205d..0000000
--- a/src/dijkstra/src/one_to_one_dijkstra.c
+++ /dev/null
@@ -1,209 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: one_to_one_dijkstra.c
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer:
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#include "./../../common/src/postgres_connection.h"
-
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/e_report.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/edges_input.h"
-#include "./many_to_many_dijkstra_driver.h"
-
-PG_MODULE_MAGIC;
-
-PGDLLEXPORT Datum one_to_one_dijkstra(PG_FUNCTION_ARGS);
-PG_FUNCTION_INFO_V1(one_to_one_dijkstra);
-
-static
-void
-process(
-        char* edges_sql,
-        int64_t start_vid,
-        int64_t end_vid,
-        bool directed,
-        bool only_cost,
-        General_path_element_t **result_tuples,
-        size_t *result_count) {
-    if (start_vid == end_vid) {
-        return;
-    }
-
-    pgr_SPI_connect();
-
-    pgr_edge_t *edges = NULL;
-    size_t total_edges = 0;
-    pgr_get_edges(edges_sql, &edges, &total_edges);
-
-    if (total_edges == 0) {
-        pgr_SPI_finish();
-        return;
-    }
-
-    PGR_DBG("Starting timer");
-    clock_t start_t = clock();
-    char* log_msg = NULL;
-    char* notice_msg = NULL;
-    char* err_msg = NULL;
-    do_pgr_many_to_many_dijkstra(
-            edges, total_edges,
-            &start_vid, 1,
-            &end_vid, 1,
-
-            directed,
-            only_cost,
-            true,  // normal
-
-            result_tuples,
-            result_count,
-
-            &log_msg,
-            &notice_msg,
-            &err_msg);
-
-    if (only_cost) {
-        time_msg("processing pgr_dijkstraCost(one to one)", start_t, clock());
-    } else {
-        time_msg("processing pgr_dijkstra(one to one)", start_t, clock());
-    }
-
-    if (err_msg && (*result_tuples)) {
-        pfree(*result_tuples);
-        (*result_count) = 0;
-        (*result_tuples) = NULL;
-    }
-
-    pgr_global_report(log_msg, notice_msg, err_msg);
-
-    if (log_msg) pfree(log_msg);
-    if (notice_msg) pfree(notice_msg);
-    if (err_msg) pfree(err_msg);
-    if (edges) pfree(edges);
-
-    pgr_SPI_finish();
-}
-
-
-PGDLLEXPORT Datum
-one_to_one_dijkstra(PG_FUNCTION_ARGS) {
-    FuncCallContext     *funcctx;
-    TupleDesc            tuple_desc;
-
-    /**********************************************************************/
-    General_path_element_t  *result_tuples = 0;
-    size_t result_count = 0;
-    /**********************************************************************/
-
-    if (SRF_IS_FIRSTCALL()) {
-        MemoryContext   oldcontext;
-        funcctx = SRF_FIRSTCALL_INIT();
-        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
-
-
-        /**********************************************************************/
-        // pgr_dijkstra(
-        // sql TEXT,
-        // start_vids BIGINT,
-        // end_vid BIGINT,
-        // directed BOOLEAN default true,
-
-        process(
-                text_to_cstring(PG_GETARG_TEXT_P(0)),
-                PG_GETARG_INT64(1),
-                PG_GETARG_INT64(2),
-                PG_GETARG_BOOL(3),
-                PG_GETARG_BOOL(4),
-                &result_tuples,
-                &result_count);
-
-        /**********************************************************************/
-
-#if PGSQL_VERSION > 95
-        funcctx->max_calls = result_count;
-#else
-        funcctx->max_calls = (uint32_t)result_count;
-#endif
-
-        funcctx->user_fctx = result_tuples;
-        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
-                != TYPEFUNC_COMPOSITE) {
-            ereport(ERROR,
-                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-                     errmsg("function returning record called in context "
-                         "that cannot accept type record")));
-        }
-
-        funcctx->tuple_desc = tuple_desc;
-        MemoryContextSwitchTo(oldcontext);
-    }
-
-    funcctx = SRF_PERCALL_SETUP();
-    tuple_desc = funcctx->tuple_desc;
-    result_tuples = (General_path_element_t*) funcctx->user_fctx;
-
-    if (funcctx->call_cntr < funcctx->max_calls) {
-        HeapTuple    tuple;
-        Datum        result;
-        Datum        *values;
-        bool*        nulls;
-        size_t       call_cntr = funcctx->call_cntr;
-
-        /**********************************************************************/
-        // OUT seq INTEGER,
-        // OUT path_seq INTEGER,
-        // OUT node BIGINT,
-        // OUT edge BIGINT,
-        // OUT cost FLOAT,
-        // OUT agg_cost FLOAT
-
-        size_t numb = 6;
-        values = palloc(numb * sizeof(Datum));
-        nulls = palloc(numb * sizeof(bool));
-
-
-        size_t i;
-        for (i = 0; i < numb; ++i) {
-            nulls[i] = false;
-        }
-
-        values[0] = Int32GetDatum(call_cntr + 1);
-        values[1] = Int32GetDatum(result_tuples[call_cntr].seq);
-        values[2] = Int64GetDatum(result_tuples[call_cntr].node);
-        values[3] = Int64GetDatum(result_tuples[call_cntr].edge);
-        values[4] = Float8GetDatum(result_tuples[call_cntr].cost);
-        values[5] = Float8GetDatum(result_tuples[call_cntr].agg_cost);
-        /**********************************************************************/
-
-        tuple = heap_form_tuple(tuple_desc, values, nulls);
-        result = HeapTupleGetDatum(tuple);
-        SRF_RETURN_NEXT(funcctx, result);
-    } else {
-        SRF_RETURN_DONE(funcctx);
-    }
-}
diff --git a/src/dijkstra/src/pgr_dijkstra.hpp b/src/dijkstra/src/pgr_dijkstra.hpp
deleted file mode 100644
index d394e95..0000000
--- a/src/dijkstra/src/pgr_dijkstra.hpp
+++ /dev/null
@@ -1,585 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifndef SRC_DIJKSTRA_SRC_PGR_DIJKSTRA_HPP_
-#define SRC_DIJKSTRA_SRC_PGR_DIJKSTRA_HPP_
-#pragma once
-
-#include <boost/config.hpp>
-#include <boost/graph/adjacency_list.hpp>
-#include <boost/graph/dijkstra_shortest_paths.hpp>
-
-#include <deque>
-#include <set>
-#include <vector>
-#include <algorithm>
-
-#include "./../../common/src/basePath_SSEC.hpp"
-#include "./../../common/src/pgr_base_graph.hpp"
-#if 0
-#include "./../../common/src/signalhandler.h"
-#endif
-
-
-template < class G > class Pgr_dijkstra;
-// user's functions
-// for development
-
-template < class G >
-std::deque<Path>
-pgr_drivingDistance(
-        G &graph,
-        std::vector< int64_t > start_vids,
-        double distance,
-        bool equicost) {
-    Pgr_dijkstra< G > fn_dijkstra;
-    return fn_dijkstra.drivingDistance(graph, start_vids, distance, equicost);
-}
-
-
-template < class G >
-Path
-pgr_drivingDistance(
-        G &graph,
-        int64_t  source,
-        double distance) {
-    Pgr_dijkstra< G > fn_dijkstra;
-    return fn_dijkstra.drivingDistance(graph, source, distance);
-}
-
-
-/* 1 to 1*/
-template < class G >
-Path
-pgr_dijkstra(
-        G &graph,
-        int64_t source,
-        int64_t target,
-        bool only_cost = false) {
-    Pgr_dijkstra< G > fn_dijkstra;
-    return fn_dijkstra.dijkstra(graph, source, target, only_cost);
-}
-
-/* 1 to many*/
-template < class G >
-std::deque<Path>
-pgr_dijkstra(
-        G &graph,
-        int64_t  source,
-        std::vector< int64_t > targets,
-        bool only_cost = false) {
-    std::sort(targets.begin(), targets.end());
-    targets.erase(
-            std::unique(targets.begin(), targets.end()),
-            targets.end());
-    Pgr_dijkstra< G > fn_dijkstra;
-    return fn_dijkstra.dijkstra(graph, source, targets, only_cost);
-}
-
-/* many to 1*/
-template < class G >
-std::deque<Path>
-pgr_dijkstra(
-        G &graph,
-        std::vector< int64_t > sources,
-        int64_t  target,
-        bool only_cost = false) {
-    std::sort(sources.begin(), sources.end());
-    sources.erase(
-            std::unique(sources.begin(), sources.end()),
-            sources.end());
-
-    Pgr_dijkstra< G > fn_dijkstra;
-    return fn_dijkstra.dijkstra(graph, sources, target, only_cost);
-}
-
-/* Many to Many */
-template < class G >
-std::deque<Path>
-pgr_dijkstra(
-        G &graph,
-        std::vector< int64_t > sources,
-        std::vector< int64_t > targets,
-        bool only_cost = false) {
-    std::sort(sources.begin(), sources.end());
-    sources.erase(
-            std::unique(sources.begin(), sources.end()),
-            sources.end());
-
-    std::sort(targets.begin(), targets.end());
-    targets.erase(
-            std::unique(targets.begin(), targets.end()),
-            targets.end());
-
-    Pgr_dijkstra< G > fn_dijkstra;
-    return fn_dijkstra.dijkstra(graph, sources, targets, only_cost);
-}
-
-
-
-//******************************************
-
-template < class G >
-class Pgr_dijkstra {
- public:
-     typedef typename G::V V;
-
-     //! @name drivingDistance
-     //@{
-     //! 1 to distance
-     Path
-         drivingDistance(
-                 G &graph,
-                 int64_t start_vertex,
-                 double distance);
-
-
-     //! many to distance
-     std::deque<Path> drivingDistance(
-             G &graph,
-             std::vector< int64_t > start_vertex,
-             double distance,
-             bool equiCostFlag);
-     //@}
-
-     //! @name Dijkstra
-     //@{
-     //! one to one
-     Path dijkstra(
-             G &graph,
-             int64_t start_vertex,
-             int64_t end_vertex,
-             bool only_cost = false);
-
-     //! Many to one
-     std::deque<Path> dijkstra(
-             G &graph,
-             const std::vector < int64_t > &start_vertex,
-             int64_t end_vertex,
-             bool only_cost = false);
-
-     //! Many to Many
-     std::deque<Path> dijkstra(
-             G &graph,
-             const std::vector< int64_t > &start_vertex,
-             const std::vector< int64_t > &end_vertex,
-             bool only_cost = false);
-
-     //! one to Many
-     std::deque<Path> dijkstra(
-             G &graph,
-             int64_t start_vertex,
-             const std::vector< int64_t > &end_vertex,
-             bool only_cost = false);
-     //@}
-
- private:
-     //! Call to Dijkstra  1 source to 1 target
-     bool dijkstra_1_to_1(
-             G &graph,
-             V source,
-             V target);
-
-     //! Call to Dijkstra  1 source to distance
-     bool dijkstra_1_to_distance(
-             G &graph,
-             V source,
-             double distance);
-
-     //! Call to Dijkstra  1 source to many targets
-     bool dijkstra_1_to_many(
-             G &graph,
-             V source,
-             const std::vector< V > &targets);
-
-     void clear() {
-         predecessors.clear();
-         distances.clear();
-         nodesInDistance.clear();
-     }
-
-
-
-
-     // used when multiple goals
-     std::deque<Path> get_paths(
-             const G &graph,
-             V source,
-             std::vector< V > &targets,
-             bool only_cost) const {
-         std::deque<Path> paths;
-         for (const auto target : targets) {
-             paths.push_back(Path(
-                         graph,
-                         source, target,
-                         predecessors, distances,
-                         only_cost, true));
-         }
-         return paths;
-     }
-
-
-
-     //! @name members;
-     //@{
-     struct found_goals{};  //!< exception for termination
-     std::vector< V > predecessors;
-     std::vector< double > distances;
-     std::deque< V > nodesInDistance;
-     //@}
-
-     //! @name Stopping classes
-     //@{
-     //! class for stopping when 1 target is found
-     class dijkstra_one_goal_visitor : public boost::default_dijkstra_visitor {
-      public:
-          explicit dijkstra_one_goal_visitor(V goal) : m_goal(goal) {}
-          template <class B_G>
-              void examine_vertex(V &u, B_G &g) {
-#if 0
-                  REG_SIGINT;
-                  THROW_ON_SIGINT;
-#endif
-                  if (u == m_goal) throw found_goals();
-                  num_edges(g);
-              }
-      private:
-          V m_goal;
-     };
-
-     //! class for stopping when all targets are found
-     class dijkstra_many_goal_visitor : public boost::default_dijkstra_visitor {
-      public:
-          explicit dijkstra_many_goal_visitor(std::vector< V > goals)
-              :m_goals(goals.begin(), goals.end()) {}
-          template <class B_G>
-              void examine_vertex(V u, B_G &g) {
-#if 0
-                  REG_SIGINT;
-                  THROW_ON_SIGINT;
-#endif
-                  auto s_it = m_goals.find(u);
-                  if (s_it == m_goals.end()) return;
-                  // we found one more goal
-                  m_goals.erase(s_it);
-                  if (m_goals.size() == 0) throw found_goals();
-                  num_edges(g);
-              }
-      private:
-          std::set< V > m_goals;
-     };
-
-
-     //! class for stopping when a distance/cost has being surpassed
-     class dijkstra_distance_visitor : public boost::default_dijkstra_visitor {
-      public:
-          explicit dijkstra_distance_visitor(
-                  double distance_goal,
-                  std::deque< V > &nodesInDistance,
-                  std::vector< double > &distances) :
-              m_distance_goal(distance_goal),
-              m_nodes(nodesInDistance),
-              m_dist(distances) {
-              }
-          template <class B_G>
-              void examine_vertex(V u, B_G &g) {
-#if 0
-                  REG_SIGINT;
-                  THROW_ON_SIGINT;
-#endif
-                  m_nodes.push_back(u);
-                  if (m_dist[u] >= m_distance_goal) throw found_goals();
-                  num_edges(g);
-              }
-      private:
-          double m_distance_goal;
-          std::deque< V > &m_nodes;
-          std::vector< double > &m_dist;
-     };
-
-
-     //@}
-};
-
-
-/******************** IMPLEMENTTION ******************/
-
-
-
-// preparation for many to distance
-template < class G >
-std::deque< Path >
-Pgr_dijkstra< G >::drivingDistance(
-        G &graph,
-        std::vector< int64_t > start_vertex,
-        double distance,
-        bool equicost) {
-    clear();
-
-    predecessors.resize(graph.num_vertices());
-    distances.resize(graph.num_vertices());
-
-
-    // perform the algorithm
-    std::deque< Path > paths;
-    for (const auto &vertex : start_vertex) {
-        paths.push_back(
-                drivingDistance(graph, vertex, distance));
-    }
-    if (equicost) {
-        equi_cost(paths);
-    }
-    return paths;
-}
-
-template < class G >
-Path
-Pgr_dijkstra< G >::drivingDistance(
-        G &graph,
-        int64_t start_vertex,
-        double distance) {
-    clear();
-
-    predecessors.resize(graph.num_vertices());
-    distances.resize(graph.num_vertices());
-
-    // get source;
-    if (!graph.has_vertex(start_vertex)) {
-        /* The node has to be in the path*/
-        Path p(start_vertex, start_vertex);
-        p.push_back({start_vertex, -1, 0, 0});
-        return p;
-    }
-
-    auto v_source(graph.get_V(start_vertex));;
-    dijkstra_1_to_distance(graph, v_source, distance);
-
-    auto path = Path(graph, v_source, distance, predecessors, distances);
-
-    std::sort(path.begin(), path.end(),
-            [](const Path_t &l, const  Path_t &r)
-            {return l.node < r.node;});
-    std::stable_sort(path.begin(), path.end(),
-            [](const Path_t &l, const  Path_t &r)
-            {return l.agg_cost < r.agg_cost;});
-    return path;
-}
-
-//! Dijkstra 1 to 1
-template < class G >
-Path
-Pgr_dijkstra< G >::dijkstra(
-        G &graph,
-        int64_t start_vertex,
-        int64_t end_vertex,
-        bool only_cost) {
-    clear();
-
-    // adjust predecessors and distances vectors
-    predecessors.resize(graph.num_vertices());
-    distances.resize(graph.num_vertices());
-
-
-    if (!graph.has_vertex(start_vertex)
-            || !graph.has_vertex(end_vertex)) {
-        return Path(start_vertex, end_vertex);
-    }
-
-    // get the graphs source and target
-    auto v_source(graph.get_V(start_vertex));
-    auto v_target(graph.get_V(end_vertex));
-
-    // perform the algorithm
-    dijkstra_1_to_1(graph, v_source, v_target);
-
-    // get the results
-    return Path(
-            graph,
-            v_source, v_target,
-            predecessors, distances,
-            only_cost, true);
-}
-
-//! Dijkstra 1 to many
-template < class G >
-std::deque<Path>
-Pgr_dijkstra< G >::dijkstra(
-        G &graph,
-        int64_t start_vertex,
-        const std::vector< int64_t > &end_vertex,
-        bool only_cost) {
-    // adjust predecessors and distances vectors
-    clear();
-
-    predecessors.resize(graph.num_vertices());
-    distances.resize(graph.num_vertices());
-
-    // get the graphs source and target
-    if (!graph.has_vertex(start_vertex))
-        return std::deque<Path>();
-    auto v_source(graph.get_V(start_vertex));
-
-    std::set< V > s_v_targets;
-    for (const auto &vertex : end_vertex) {
-        if (graph.has_vertex(vertex)) {
-            s_v_targets.insert(graph.get_V(vertex));
-        }
-    }
-
-    std::vector< V > v_targets(s_v_targets.begin(), s_v_targets.end());
-    // perform the algorithm
-    dijkstra_1_to_many(graph, v_source, v_targets);
-
-    std::deque< Path > paths;
-    // get the results // route id are the targets
-    paths = get_paths(graph, v_source, v_targets, only_cost);
-
-    std::stable_sort(paths.begin(), paths.end(),
-            [](const Path &e1, const Path &e2)->bool {
-            return e1.end_id() < e2.end_id();
-            });
-
-    return paths;
-}
-
-// preparation for many to 1
-template < class G >
-std::deque<Path>
-Pgr_dijkstra< G >::dijkstra(
-        G &graph,
-        const std::vector < int64_t > &start_vertex,
-        int64_t end_vertex,
-        bool only_cost) {
-    std::deque<Path> paths;
-
-    for (const auto &start : start_vertex) {
-        paths.push_back(
-                dijkstra(graph, start, end_vertex, only_cost));
-    }
-
-    std::stable_sort(paths.begin(), paths.end(),
-            [](const Path &e1, const Path &e2)->bool {
-            return e1.start_id() < e2.start_id();
-            });
-    return paths;
-}
-
-
-// preparation for many to many
-template < class G >
-std::deque<Path>
-Pgr_dijkstra< G >::dijkstra(
-        G &graph,
-        const std::vector< int64_t > &start_vertex,
-        const std::vector< int64_t > &end_vertex,
-        bool only_cost) {
-    // a call to 1 to many is faster for each of the sources
-    std::deque<Path> paths;
-    for (const auto &start : start_vertex) {
-        auto r_paths = dijkstra(graph, start, end_vertex, only_cost);
-        paths.insert(paths.begin(), r_paths.begin(), r_paths.end());
-    }
-
-    std::sort(paths.begin(), paths.end(),
-            [](const Path &e1, const Path &e2)->bool {
-            return e1.end_id() < e2.end_id();
-            });
-    std::stable_sort(paths.begin(), paths.end(),
-            [](const Path &e1, const Path &e2)->bool {
-            return e1.start_id() < e2.start_id();
-            });
-    return paths;
-}
-
-
-//! Call to Dijkstra  1 source to 1 target
-template < class G >
-bool
-Pgr_dijkstra< G >::dijkstra_1_to_1(
-        G &graph,
-        V source,
-        V target) {
-    bool found = false;
-    try {
-        boost::dijkstra_shortest_paths(graph.graph, source,
-                boost::predecessor_map(&predecessors[0])
-                .weight_map(get(&G::G_T_E::cost, graph.graph))
-                .distance_map(&distances[0])
-                .visitor(dijkstra_one_goal_visitor(target)));
-    }
-    catch(found_goals &) {
-        found = true;  // Target vertex found
-    } catch (...) {
-    }
-    return found;
-}
-
-
-//! Call to Dijkstra  1 source to distance
-template < class G >
-bool
-Pgr_dijkstra< G >::dijkstra_1_to_distance(G &graph, V source, double distance) {
-    bool found = false;
-    try {
-        boost::dijkstra_shortest_paths(graph.graph, source,
-                boost::predecessor_map(&predecessors[0])
-                .weight_map(get(&G::G_T_E::cost, graph.graph))
-                .distance_map(&distances[0])
-                .visitor(dijkstra_distance_visitor(
-                        distance,
-                        nodesInDistance,
-                        distances)));
-    }
-    catch(found_goals &) {
-        found = true;
-    } catch (...) {
-    }
-    return found;
-}
-
-//! Call to Dijkstra  1 source to many targets
-template <class G>
-bool
-Pgr_dijkstra< G >::dijkstra_1_to_many(
-        G &graph,
-        V source,
-        const std::vector< V > &targets) {
-    bool found = false;
-    try {
-        boost::dijkstra_shortest_paths(graph.graph, source,
-                boost::predecessor_map(&predecessors[0])
-                .weight_map(get(&G::G_T_E::cost, graph.graph))
-                .distance_map(&distances[0])
-                .visitor(dijkstra_many_goal_visitor(targets)));
-    }
-    catch(found_goals &) {
-        found = true;  // Target vertex found
-    } catch (...) {
-    }
-    return found;
-}
-
-#endif  // SRC_DIJKSTRA_SRC_PGR_DIJKSTRA_HPP_
diff --git a/src/dijkstra/test/dijkstra-v2.result b/src/dijkstra/test/dijkstra-v2.result
deleted file mode 100644
index 39b17e7..0000000
--- a/src/dijkstra/test/dijkstra-v2.result
+++ /dev/null
@@ -1,21 +0,0 @@
---q1
-NOTICE:  Deprecated function
---q2
-NOTICE:  Deprecated function
-0|2|4|1
-1|5|8|1
-2|6|9|1
-3|9|16|1
-4|4|3|1
-5|3|-1|0
---q3
-NOTICE:  Deprecated function
-0|2|4|1
-1|5|8|1
-2|6|5|1
-3|3|-1|0
---q4
-NOTICE:  Deprecated function
-0|2|2|1
-1|3|-1|0
---q5
diff --git a/src/dijkstra/test/dijkstra-v2.test.sql b/src/dijkstra/test/dijkstra-v2.test.sql
deleted file mode 100644
index 9615059..0000000
--- a/src/dijkstra/test/dijkstra-v2.test.sql
+++ /dev/null
@@ -1,26 +0,0 @@
-------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
---              PGR_dijkstra  V.2.0
-------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
-
-\echo --q1
-SELECT * FROM pgr_dijkstra(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
-    2,3, true, false);
-\echo --q2
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
-    2,3, true, true);
-\echo --q3
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost FROM edge_table',
-     2, 3, false, false);
-\echo --q4
-
-SELECT * FROM pgr_dijkstra(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
-     2, 3, false, true);
-\echo --q5
diff --git a/src/dijkstra/test/doc-pgr_dijkstra.result b/src/dijkstra/test/doc-pgr_dijkstra.result
index f9dbedd..285e4ab 100644
--- a/src/dijkstra/test/doc-pgr_dijkstra.result
+++ b/src/dijkstra/test/doc-pgr_dijkstra.result
@@ -1,226 +1,590 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 -- q1
-1|1|2|4|1|0
-2|2|5|8|1|1
-3|3|6|9|1|2
-4|4|9|16|1|3
-5|5|4|3|1|4
-6|6|3|-1|0|5
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, 3
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    4 |    1 |        0
+   2 |        2 |    5 |    8 |    1 |        1
+   3 |        3 |    6 |    9 |    1 |        2
+   4 |        4 |    9 |   16 |    1 |        3
+   5 |        5 |    4 |    3 |    1 |        4
+   6 |        6 |    3 |   -1 |    0 |        5
+(6 rows)
+
 -- q2
-1|1|2|2|1|0
-2|2|3|-1|0|1
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, 3,
+    FALSE
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    2 |    1 |        0
+   2 |        2 |    3 |   -1 |    0 |        1
+(2 rows)
+
 -- q3
-1|1|3|2|4|1|0
-2|2|3|5|8|1|1
-3|3|3|6|5|1|2
-4|4|3|3|-1|0|3
-5|1|5|2|4|1|0
-6|2|5|5|-1|0|1
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost FROM edge_table',
+    2, ARRAY[3,5],
+    FALSE
+);
+ seq | path_seq | end_vid | node | edge | cost | agg_cost 
+-----+----------+---------+------+------+------+----------
+   1 |        1 |       3 |    2 |    4 |    1 |        0
+   2 |        2 |       3 |    5 |    8 |    1 |        1
+   3 |        3 |       3 |    6 |    5 |    1 |        2
+   4 |        4 |       3 |    3 |   -1 |    0 |        3
+   5 |        1 |       5 |    2 |    4 |    1 |        0
+   6 |        2 |       5 |    5 |   -1 |    0 |        1
+(6 rows)
+
 -- q4
-1|1|2|2|4|1|0
-2|2|2|5|-1|0|1
-3|1|11|11|13|1|0
-4|2|11|12|15|1|1
-5|3|11|9|9|1|2
-6|4|11|6|8|1|3
-7|5|11|5|-1|0|4
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2,11], 5
+);
+ seq | path_seq | start_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+------+------+------+----------
+   1 |        1 |         2 |    2 |    4 |    1 |        0
+   2 |        2 |         2 |    5 |   -1 |    0 |        1
+   3 |        1 |        11 |   11 |   13 |    1 |        0
+   4 |        2 |        11 |   12 |   15 |    1 |        1
+   5 |        3 |        11 |    9 |    9 |    1 |        2
+   6 |        4 |        11 |    6 |    8 |    1 |        3
+   7 |        5 |        11 |    5 |   -1 |    0 |        4
+(7 rows)
+
 -- q5
-1|1|2|3|2|2|1|0
-2|2|2|3|3|-1|0|1
-3|1|2|5|2|4|1|0
-4|2|2|5|5|-1|0|1
-5|1|11|3|11|11|1|0
-6|2|11|3|6|5|1|1
-7|3|11|3|3|-1|0|2
-8|1|11|5|11|11|1|0
-9|2|11|5|6|8|1|1
-10|3|11|5|5|-1|0|2
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2,11], ARRAY[3,5],
+    FALSE
+);
+ seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+---------+------+------+------+----------
+   1 |        1 |         2 |       3 |    2 |    2 |    1 |        0
+   2 |        2 |         2 |       3 |    3 |   -1 |    0 |        1
+   3 |        1 |         2 |       5 |    2 |    4 |    1 |        0
+   4 |        2 |         2 |       5 |    5 |   -1 |    0 |        1
+   5 |        1 |        11 |       3 |   11 |   11 |    1 |        0
+   6 |        2 |        11 |       3 |    6 |    5 |    1 |        1
+   7 |        3 |        11 |       3 |    3 |   -1 |    0 |        2
+   8 |        1 |        11 |       5 |   11 |   11 |    1 |        0
+   9 |        2 |        11 |       5 |    6 |    8 |    1 |        1
+  10 |        3 |        11 |       5 |    5 |   -1 |    0 |        2
+(10 rows)
+
 -- q6
 -- q7
-1|1|2|4|1|0
-2|2|5|8|1|1
-3|3|6|9|1|2
-4|4|9|16|1|3
-5|5|4|3|1|4
-6|6|3|-1|0|5
-1|1|2|4|1|0
-2|2|5|-1|0|1
-1|1|3|2|4|1|0
-2|2|3|5|8|1|1
-3|3|3|6|9|1|2
-4|4|3|9|16|1|3
-5|5|3|4|3|1|4
-6|6|3|3|-1|0|5
-7|1|5|2|4|1|0
-8|2|5|5|-1|0|1
-1|1|11|13|1|0
-2|2|12|15|1|1
-3|3|9|16|1|2
-4|4|4|3|1|3
-5|5|3|-1|0|4
-1|1|11|13|1|0
-2|2|12|15|1|1
-3|3|9|9|1|2
-4|4|6|8|1|3
-5|5|5|-1|0|4
-1|1|2|2|4|1|0
-2|2|2|5|-1|0|1
-3|1|11|11|13|1|0
-4|2|11|12|15|1|1
-5|3|11|9|9|1|2
-6|4|11|6|8|1|3
-7|5|11|5|-1|0|4
-1|1|2|3|2|4|1|0
-2|2|2|3|5|8|1|1
-3|3|2|3|6|9|1|2
-4|4|2|3|9|16|1|3
-5|5|2|3|4|3|1|4
-6|6|2|3|3|-1|0|5
-7|1|2|5|2|4|1|0
-8|2|2|5|5|-1|0|1
-9|1|11|3|11|13|1|0
-10|2|11|3|12|15|1|1
-11|3|11|3|9|16|1|2
-12|4|11|3|4|3|1|3
-13|5|11|3|3|-1|0|4
-14|1|11|5|11|13|1|0
-15|2|11|5|12|15|1|1
-16|3|11|5|9|9|1|2
-17|4|11|5|6|8|1|3
-18|5|11|5|5|-1|0|4
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, 3
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    4 |    1 |        0
+   2 |        2 |    5 |    8 |    1 |        1
+   3 |        3 |    6 |    9 |    1 |        2
+   4 |        4 |    9 |   16 |    1 |        3
+   5 |        5 |    4 |    3 |    1 |        4
+   6 |        6 |    3 |   -1 |    0 |        5
+(6 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, 5
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    4 |    1 |        0
+   2 |        2 |    5 |   -1 |    0 |        1
+(2 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, ARRAY[3,5]
+);
+ seq | path_seq | end_vid | node | edge | cost | agg_cost 
+-----+----------+---------+------+------+------+----------
+   1 |        1 |       3 |    2 |    4 |    1 |        0
+   2 |        2 |       3 |    5 |    8 |    1 |        1
+   3 |        3 |       3 |    6 |    9 |    1 |        2
+   4 |        4 |       3 |    9 |   16 |    1 |        3
+   5 |        5 |       3 |    4 |    3 |    1 |        4
+   6 |        6 |       3 |    3 |   -1 |    0 |        5
+   7 |        1 |       5 |    2 |    4 |    1 |        0
+   8 |        2 |       5 |    5 |   -1 |    0 |        1
+(8 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    11, 3
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |   11 |   13 |    1 |        0
+   2 |        2 |   12 |   15 |    1 |        1
+   3 |        3 |    9 |   16 |    1 |        2
+   4 |        4 |    4 |    3 |    1 |        3
+   5 |        5 |    3 |   -1 |    0 |        4
+(5 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    11, 5
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |   11 |   13 |    1 |        0
+   2 |        2 |   12 |   15 |    1 |        1
+   3 |        3 |    9 |    9 |    1 |        2
+   4 |        4 |    6 |    8 |    1 |        3
+   5 |        5 |    5 |   -1 |    0 |        4
+(5 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2,11], 5
+);
+ seq | path_seq | start_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+------+------+------+----------
+   1 |        1 |         2 |    2 |    4 |    1 |        0
+   2 |        2 |         2 |    5 |   -1 |    0 |        1
+   3 |        1 |        11 |   11 |   13 |    1 |        0
+   4 |        2 |        11 |   12 |   15 |    1 |        1
+   5 |        3 |        11 |    9 |    9 |    1 |        2
+   6 |        4 |        11 |    6 |    8 |    1 |        3
+   7 |        5 |        11 |    5 |   -1 |    0 |        4
+(7 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2, 11], ARRAY[3,5]
+);
+ seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+---------+------+------+------+----------
+   1 |        1 |         2 |       3 |    2 |    4 |    1 |        0
+   2 |        2 |         2 |       3 |    5 |    8 |    1 |        1
+   3 |        3 |         2 |       3 |    6 |    9 |    1 |        2
+   4 |        4 |         2 |       3 |    9 |   16 |    1 |        3
+   5 |        5 |         2 |       3 |    4 |    3 |    1 |        4
+   6 |        6 |         2 |       3 |    3 |   -1 |    0 |        5
+   7 |        1 |         2 |       5 |    2 |    4 |    1 |        0
+   8 |        2 |         2 |       5 |    5 |   -1 |    0 |        1
+   9 |        1 |        11 |       3 |   11 |   13 |    1 |        0
+  10 |        2 |        11 |       3 |   12 |   15 |    1 |        1
+  11 |        3 |        11 |       3 |    9 |   16 |    1 |        2
+  12 |        4 |        11 |       3 |    4 |    3 |    1 |        3
+  13 |        5 |        11 |       3 |    3 |   -1 |    0 |        4
+  14 |        1 |        11 |       5 |   11 |   13 |    1 |        0
+  15 |        2 |        11 |       5 |   12 |   15 |    1 |        1
+  16 |        3 |        11 |       5 |    9 |    9 |    1 |        2
+  17 |        4 |        11 |       5 |    6 |    8 |    1 |        3
+  18 |        5 |        11 |       5 |    5 |   -1 |    0 |        4
+(18 rows)
+
 -- q8
 -- q9
-1|1|2|2|1|0
-2|2|3|-1|0|1
-1|1|2|4|1|0
-2|2|5|-1|0|1
-1|1|11|11|1|0
-2|2|6|5|1|1
-3|3|3|-1|0|2
-1|1|11|11|1|0
-2|2|6|8|1|1
-3|3|5|-1|0|2
-1|1|2|2|4|1|0
-2|2|2|5|-1|0|1
-3|1|11|11|12|1|0
-4|2|11|10|10|1|1
-5|3|11|5|-1|0|2
-1|1|3|2|2|1|0
-2|2|3|3|-1|0|1
-3|1|5|2|4|1|0
-4|2|5|5|-1|0|1
-1|1|2|3|2|2|1|0
-2|2|2|3|3|-1|0|1
-3|1|2|5|2|4|1|0
-4|2|2|5|5|-1|0|1
-5|1|11|3|11|11|1|0
-6|2|11|3|6|5|1|1
-7|3|11|3|3|-1|0|2
-8|1|11|5|11|11|1|0
-9|2|11|5|6|8|1|1
-10|3|11|5|5|-1|0|2
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, 3,
+    FALSE
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    2 |    1 |        0
+   2 |        2 |    3 |   -1 |    0 |        1
+(2 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, 5,
+    FALSE
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    4 |    1 |        0
+   2 |        2 |    5 |   -1 |    0 |        1
+(2 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    11, 3,
+    FALSE
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |   11 |   11 |    1 |        0
+   2 |        2 |    6 |    5 |    1 |        1
+   3 |        3 |    3 |   -1 |    0 |        2
+(3 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    11, 5,
+    FALSE
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |   11 |   11 |    1 |        0
+   2 |        2 |    6 |    8 |    1 |        1
+   3 |        3 |    5 |   -1 |    0 |        2
+(3 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2,11], 5,
+    FALSE
+);
+ seq | path_seq | start_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+------+------+------+----------
+   1 |        1 |         2 |    2 |    4 |    1 |        0
+   2 |        2 |         2 |    5 |   -1 |    0 |        1
+   3 |        1 |        11 |   11 |   12 |    1 |        0
+   4 |        2 |        11 |   10 |   10 |    1 |        1
+   5 |        3 |        11 |    5 |   -1 |    0 |        2
+(5 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, ARRAY[3,5],
+    FALSE
+);
+ seq | path_seq | end_vid | node | edge | cost | agg_cost 
+-----+----------+---------+------+------+------+----------
+   1 |        1 |       3 |    2 |    2 |    1 |        0
+   2 |        2 |       3 |    3 |   -1 |    0 |        1
+   3 |        1 |       5 |    2 |    4 |    1 |        0
+   4 |        2 |       5 |    5 |   -1 |    0 |        1
+(4 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2, 11], ARRAY[3,5],
+    FALSE
+);
+ seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+---------+------+------+------+----------
+   1 |        1 |         2 |       3 |    2 |    2 |    1 |        0
+   2 |        2 |         2 |       3 |    3 |   -1 |    0 |        1
+   3 |        1 |         2 |       5 |    2 |    4 |    1 |        0
+   4 |        2 |         2 |       5 |    5 |   -1 |    0 |        1
+   5 |        1 |        11 |       3 |   11 |   11 |    1 |        0
+   6 |        2 |        11 |       3 |    6 |    5 |    1 |        1
+   7 |        3 |        11 |       3 |    3 |   -1 |    0 |        2
+   8 |        1 |        11 |       5 |   11 |   11 |    1 |        0
+   9 |        2 |        11 |       5 |    6 |    8 |    1 |        1
+  10 |        3 |        11 |       5 |    5 |   -1 |    0 |        2
+(10 rows)
+
 -- q10
 -- q11
-1|1|2|4|1|0
-2|2|5|-1|0|1
-1|1|2|2|4|1|0
-2|2|2|5|-1|0|1
-1|1|5|2|4|1|0
-2|2|5|5|-1|0|1
-1|1|2|5|2|4|1|0
-2|2|2|5|5|-1|0|1
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost FROM edge_table',
+    2, 3
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+(0 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost FROM edge_table',
+    2, 5
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    4 |    1 |        0
+   2 |        2 |    5 |   -1 |    0 |        1
+(2 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost FROM edge_table',
+    11, 3
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+(0 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost FROM edge_table',
+    11, 5
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+(0 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost FROM edge_table',
+    ARRAY[2,11], 5
+);
+ seq | path_seq | start_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+------+------+------+----------
+   1 |        1 |         2 |    2 |    4 |    1 |        0
+   2 |        2 |         2 |    5 |   -1 |    0 |        1
+(2 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost FROM edge_table',
+    2, ARRAY[3,5]
+);
+ seq | path_seq | end_vid | node | edge | cost | agg_cost 
+-----+----------+---------+------+------+------+----------
+   1 |        1 |       5 |    2 |    4 |    1 |        0
+   2 |        2 |       5 |    5 |   -1 |    0 |        1
+(2 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost FROM edge_table',
+    ARRAY[2, 11], ARRAY[3,5]
+);
+ seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+---------+------+------+------+----------
+   1 |        1 |         2 |       5 |    2 |    4 |    1 |        0
+   2 |        2 |         2 |       5 |    5 |   -1 |    0 |        1
+(2 rows)
+
 -- q12
 -- q13
-1|1|2|4|1|0
-2|2|5|8|1|1
-3|3|6|5|1|2
-4|4|3|-1|0|3
-1|1|2|4|1|0
-2|2|5|-1|0|1
-1|1|11|11|1|0
-2|2|6|5|1|1
-3|3|3|-1|0|2
-1|1|11|11|1|0
-2|2|6|8|1|1
-3|3|5|-1|0|2
-1|1|2|2|4|1|0
-2|2|2|5|-1|0|1
-3|1|11|11|12|1|0
-4|2|11|10|10|1|1
-5|3|11|5|-1|0|2
-1|1|3|2|4|1|0
-2|2|3|5|8|1|1
-3|3|3|6|5|1|2
-4|4|3|3|-1|0|3
-5|1|5|2|4|1|0
-6|2|5|5|-1|0|1
-1|1|2|3|2|4|1|0
-2|2|2|3|5|8|1|1
-3|3|2|3|6|5|1|2
-4|4|2|3|3|-1|0|3
-5|1|2|5|2|4|1|0
-6|2|2|5|5|-1|0|1
-7|1|11|3|11|11|1|0
-8|2|11|3|6|5|1|1
-9|3|11|3|3|-1|0|2
-10|1|11|5|11|11|1|0
-11|2|11|5|6|8|1|1
-12|3|11|5|5|-1|0|2
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost FROM edge_table',
+    2, 3,
+    FALSE
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    4 |    1 |        0
+   2 |        2 |    5 |    8 |    1 |        1
+   3 |        3 |    6 |    5 |    1 |        2
+   4 |        4 |    3 |   -1 |    0 |        3
+(4 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost FROM edge_table',
+    2, 5,
+    FALSE
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    4 |    1 |        0
+   2 |        2 |    5 |   -1 |    0 |        1
+(2 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost FROM edge_table',
+    11, 3,
+    FALSE
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |   11 |   11 |    1 |        0
+   2 |        2 |    6 |    5 |    1 |        1
+   3 |        3 |    3 |   -1 |    0 |        2
+(3 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost FROM edge_table',
+    11, 5,
+    FALSE
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |   11 |   11 |    1 |        0
+   2 |        2 |    6 |    8 |    1 |        1
+   3 |        3 |    5 |   -1 |    0 |        2
+(3 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost FROM edge_table',
+    ARRAY[2,11], 5,
+    FALSE
+);
+ seq | path_seq | start_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+------+------+------+----------
+   1 |        1 |         2 |    2 |    4 |    1 |        0
+   2 |        2 |         2 |    5 |   -1 |    0 |        1
+   3 |        1 |        11 |   11 |   12 |    1 |        0
+   4 |        2 |        11 |   10 |   10 |    1 |        1
+   5 |        3 |        11 |    5 |   -1 |    0 |        2
+(5 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost FROM edge_table',
+    2, ARRAY[3,5],
+    FALSE
+);
+ seq | path_seq | end_vid | node | edge | cost | agg_cost 
+-----+----------+---------+------+------+------+----------
+   1 |        1 |       3 |    2 |    4 |    1 |        0
+   2 |        2 |       3 |    5 |    8 |    1 |        1
+   3 |        3 |       3 |    6 |    5 |    1 |        2
+   4 |        4 |       3 |    3 |   -1 |    0 |        3
+   5 |        1 |       5 |    2 |    4 |    1 |        0
+   6 |        2 |       5 |    5 |   -1 |    0 |        1
+(6 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost FROM edge_table',
+    ARRAY[2, 11], ARRAY[3,5],
+    FALSE
+);
+ seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+---------+------+------+------+----------
+   1 |        1 |         2 |       3 |    2 |    4 |    1 |        0
+   2 |        2 |         2 |       3 |    5 |    8 |    1 |        1
+   3 |        3 |         2 |       3 |    6 |    5 |    1 |        2
+   4 |        4 |         2 |       3 |    3 |   -1 |    0 |        3
+   5 |        1 |         2 |       5 |    2 |    4 |    1 |        0
+   6 |        2 |         2 |       5 |    5 |   -1 |    0 |        1
+   7 |        1 |        11 |       3 |   11 |   11 |    1 |        0
+   8 |        2 |        11 |       3 |    6 |    5 |    1 |        1
+   9 |        3 |        11 |       3 |    3 |   -1 |    0 |        2
+  10 |        1 |        11 |       5 |   11 |   11 |    1 |        0
+  11 |        2 |        11 |       5 |    6 |    8 |    1 |        1
+  12 |        3 |        11 |       5 |    5 |   -1 |    0 |        2
+(12 rows)
+
 -- q14
 -- q15
-1|1|2|4|1|0
-2|2|5|8|1|1
-3|3|6|9|1|2
-4|4|9|16|1|3
-5|5|4|3|1|4
-6|6|3|-1|0|5
-1|1|2|4|1|0
-2|2|5|8|1|1
-3|3|6|9|1|2
-4|4|9|16|1|3
-5|5|4|3|1|4
-6|6|3|-1|0|5
-1|1|3|2|4|1|0
-2|2|3|5|8|1|1
-3|3|3|6|9|1|2
-4|4|3|9|16|1|3
-5|5|3|4|3|1|4
-6|6|3|3|-1|0|5
-1|1|3|2|4|1|0
-2|2|3|5|8|1|1
-3|3|3|6|9|1|2
-4|4|3|9|16|1|3
-5|5|3|4|3|1|4
-6|6|3|3|-1|0|5
-1|1|2|3|2|4|1|0
-2|2|2|3|5|8|1|1
-3|3|2|3|6|9|1|2
-4|4|2|3|9|16|1|3
-5|5|2|3|4|3|1|4
-6|6|2|3|3|-1|0|5
-1|1|2|3|2|4|1|0
-2|2|2|3|5|8|1|1
-3|3|2|3|6|9|1|2
-4|4|2|3|9|16|1|3
-5|5|2|3|4|3|1|4
-6|6|2|3|3|-1|0|5
-NOTICE:  Deprecated function
-0|2|4|1
-1|5|8|1
-2|6|9|1
-3|9|16|1
-4|4|3|1
-5|3|-1|0
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, 3,
+    TRUE     
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    4 |    1 |        0
+   2 |        2 |    5 |    8 |    1 |        1
+   3 |        3 |    6 |    9 |    1 |        2
+   4 |        4 |    9 |   16 |    1 |        3
+   5 |        5 |    4 |    3 |    1 |        4
+   6 |        6 |    3 |   -1 |    0 |        5
+(6 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2,3 
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    4 |    1 |        0
+   2 |        2 |    5 |    8 |    1 |        1
+   3 |        3 |    6 |    9 |    1 |        2
+   4 |        4 |    9 |   16 |    1 |        3
+   5 |        5 |    4 |    3 |    1 |        4
+   6 |        6 |    3 |   -1 |    0 |        5
+(6 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, ARRAY[3],
+    TRUE     
+);
+ seq | path_seq | end_vid | node | edge | cost | agg_cost 
+-----+----------+---------+------+------+------+----------
+   1 |        1 |       3 |    2 |    4 |    1 |        0
+   2 |        2 |       3 |    5 |    8 |    1 |        1
+   3 |        3 |       3 |    6 |    9 |    1 |        2
+   4 |        4 |       3 |    9 |   16 |    1 |        3
+   5 |        5 |       3 |    4 |    3 |    1 |        4
+   6 |        6 |       3 |    3 |   -1 |    0 |        5
+(6 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, ARRAY[3]
+);
+ seq | path_seq | end_vid | node | edge | cost | agg_cost 
+-----+----------+---------+------+------+------+----------
+   1 |        1 |       3 |    2 |    4 |    1 |        0
+   2 |        2 |       3 |    5 |    8 |    1 |        1
+   3 |        3 |       3 |    6 |    9 |    1 |        2
+   4 |        4 |       3 |    9 |   16 |    1 |        3
+   5 |        5 |       3 |    4 |    3 |    1 |        4
+   6 |        6 |       3 |    3 |   -1 |    0 |        5
+(6 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2], ARRAY[3],
+    TRUE
+);
+ seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+---------+------+------+------+----------
+   1 |        1 |         2 |       3 |    2 |    4 |    1 |        0
+   2 |        2 |         2 |       3 |    5 |    8 |    1 |        1
+   3 |        3 |         2 |       3 |    6 |    9 |    1 |        2
+   4 |        4 |         2 |       3 |    9 |   16 |    1 |        3
+   5 |        5 |         2 |       3 |    4 |    3 |    1 |        4
+   6 |        6 |         2 |       3 |    3 |   -1 |    0 |        5
+(6 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2], ARRAY[3]
+);
+ seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+---------+------+------+------+----------
+   1 |        1 |         2 |       3 |    2 |    4 |    1 |        0
+   2 |        2 |         2 |       3 |    5 |    8 |    1 |        1
+   3 |        3 |         2 |       3 |    6 |    9 |    1 |        2
+   4 |        4 |         2 |       3 |    9 |   16 |    1 |        3
+   5 |        5 |         2 |       3 |    4 |    3 |    1 |        4
+   6 |        6 |         2 |       3 |    3 |   -1 |    0 |        5
+(6 rows)
+
 -- q16
 -- q17
-1|1|2|2|1|0
-2|2|3|-1|0|1
-1|1|3|2|2|1|0
-2|2|3|3|-1|0|1
-1|1|2|2|2|1|0
-2|2|2|3|-1|0|1
-1|1|2|3|2|2|1|0
-2|2|2|3|3|-1|0|1
-NOTICE:  Deprecated function
-0|2|2|1
-1|3|-1|0
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, 3,
+    FALSE     
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    2 |    1 |        0
+   2 |        2 |    3 |   -1 |    0 |        1
+(2 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, ARRAY[3],
+    FALSE     
+);
+ seq | path_seq | end_vid | node | edge | cost | agg_cost 
+-----+----------+---------+------+------+------+----------
+   1 |        1 |       3 |    2 |    2 |    1 |        0
+   2 |        2 |       3 |    3 |   -1 |    0 |        1
+(2 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2], 3,
+    FALSE
+);
+ seq | path_seq | start_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+------+------+------+----------
+   1 |        1 |         2 |    2 |    2 |    1 |        0
+   2 |        2 |         2 |    3 |   -1 |    0 |        1
+(2 rows)
+
+SELECT * FROM pgr_dijkstra(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[2], ARRAY[3],
+    FALSE
+);
+ seq | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
+-----+----------+-----------+---------+------+------+------+----------
+   1 |        1 |         2 |       3 |    2 |    2 |    1 |        0
+   2 |        2 |         2 |       3 |    3 |   -1 |    0 |        1
+(2 rows)
+
 -- q18
+ROLLBACK;
+ROLLBACK
diff --git a/src/dijkstra/test/doc-pgr_dijkstra.test.sql b/src/dijkstra/test/doc-pgr_dijkstra.test.sql
index 41aa7b9..d41bcd7 100644
--- a/src/dijkstra/test/doc-pgr_dijkstra.test.sql
+++ b/src/dijkstra/test/doc-pgr_dijkstra.test.sql
@@ -219,16 +219,8 @@ SELECT * FROM pgr_dijkstra(
     'SELECT id, source, target, cost, reverse_cost FROM edge_table',
     ARRAY[2], ARRAY[3]
 );
--- Version 2.0
-SET client_min_messages TO NOTICE;
-SELECT * FROM pgr_dijkstra(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
-    2, 3,
-    TRUE,    -- directed flag
-    TRUE      -- has_rcost
-);
-\echo -- q16
 
+\echo -- q16
 
 
 -- Equivalences for :ref:`fig2-undirect-Cost-Reverse` 
@@ -256,12 +248,5 @@ SELECT * FROM pgr_dijkstra(
     ARRAY[2], ARRAY[3],
     FALSE
 );
--- Version 2.0
-SELECT * FROM pgr_dijkstra(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
-    2, 3,
-    FALSE,    -- directed flag
-    TRUE      -- has_rcost
-);
-\echo -- q18
 
+\echo -- q18
diff --git a/src/dijkstra/test/doc-pgr_dijkstraCost.result b/src/dijkstra/test/doc-pgr_dijkstraCost.result
index 3be3c5f..ddb9a9b 100644
--- a/src/dijkstra/test/doc-pgr_dijkstraCost.result
+++ b/src/dijkstra/test/doc-pgr_dijkstraCost.result
@@ -1,30 +1,85 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 --q1
-2|3|5
+SELECT * FROM pgr_dijkstraCost(
+    'select id, source, target, cost, reverse_cost from edge_table',
+    2, 3);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       3 |        5
+(1 row)
+
 --q2
-2|3|1
+SELECT * FROM pgr_dijkstraCost(
+    'select id, source, target, cost, reverse_cost from edge_table',
+    2, 3, false);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       3 |        1
+(1 row)
+
 --q3
-2|3|5
-7|3|6
+SELECT * FROM pgr_dijkstraCost(
+    'select id, source, target, cost, reverse_cost from edge_table',
+    ARRAY[2, 7], 3);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       3 |        5
+         7 |       3 |        6
+(2 rows)
+
 --q4
-2|3|5
-2|11|3
+SELECT * FROM pgr_dijkstraCost(
+    'select id, source, target, cost, reverse_cost from edge_table',
+    2, ARRAY[3, 11]);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       3 |        5
+         2 |      11 |        3
+(2 rows)
+
 --q5
-2|3|5
-2|11|3
-7|3|6
-7|11|4
+SELECT * FROM pgr_dijkstraCost(
+    'select id, source, target, cost, reverse_cost from edge_table',
+    ARRAY[2, 7], ARRAY[3, 11]);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         2 |       3 |        5
+         2 |      11 |        3
+         7 |       3 |        6
+         7 |      11 |        4
+(4 rows)
+
 --q6
-3|4|3
-3|5|2
-4|3|1
-4|5|3
-5|3|4
-5|4|3
+SELECT * FROM pgr_dijkstraCost(
+        'select id, source, target, cost, reverse_cost from edge_table',
+            ARRAY[5, 3, 4, 3, 3, 4], ARRAY[3, 5, 3, 4]);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         3 |       4 |        3
+         3 |       5 |        2
+         4 |       3 |        1
+         4 |       5 |        3
+         5 |       3 |        4
+         5 |       4 |        3
+(6 rows)
+
 --q7
-3|4|3
-3|5|2
-4|3|1
-4|5|3
-5|3|4
-5|4|3
+SELECT * FROM pgr_dijkstraCost(
+        'select id, source, target, cost, reverse_cost from edge_table',
+            ARRAY[5, 3, 4], ARRAY[5, 3, 4]);
+ start_vid | end_vid | agg_cost 
+-----------+---------+----------
+         3 |       4 |        3
+         3 |       5 |        2
+         4 |       3 |        1
+         4 |       5 |        3
+         5 |       3 |        4
+         5 |       4 |        3
+(6 rows)
+
 --q8
+ROLLBACK;
+ROLLBACK
diff --git a/src/dijkstra/test/doc-pgr_dijkstraVia.result b/src/dijkstra/test/doc-pgr_dijkstraVia.result
index a63254d..241fd80 100644
--- a/src/dijkstra/test/doc-pgr_dijkstraVia.result
+++ b/src/dijkstra/test/doc-pgr_dijkstraVia.result
@@ -1,55 +1,134 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 --q00
-1|1|1|1|3|1|1|1|0|0
-2|1|2|1|3|2|4|1|1|1
-3|1|3|1|3|5|8|1|2|2
-4|1|4|1|3|6|9|1|3|3
-5|1|5|1|3|9|16|1|4|4
-6|1|6|1|3|4|3|1|5|5
-7|1|7|1|3|3|-1|0|6|6
-8|2|1|3|9|3|5|1|0|6
-9|2|2|3|9|6|9|1|1|7
-10|2|3|3|9|9|-2|0|2|8
+SELECT * FROM pgr_dijkstraVia(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table order by id',
+    ARRAY[1, 3, 9]
+);
+ seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost | route_agg_cost 
+-----+---------+----------+-----------+---------+------+------+------+----------+----------------
+   1 |       1 |        1 |         1 |       3 |    1 |    1 |    1 |        0 |              0
+   2 |       1 |        2 |         1 |       3 |    2 |    4 |    1 |        1 |              1
+   3 |       1 |        3 |         1 |       3 |    5 |    8 |    1 |        2 |              2
+   4 |       1 |        4 |         1 |       3 |    6 |    9 |    1 |        3 |              3
+   5 |       1 |        5 |         1 |       3 |    9 |   16 |    1 |        4 |              4
+   6 |       1 |        6 |         1 |       3 |    4 |    3 |    1 |        5 |              5
+   7 |       1 |        7 |         1 |       3 |    3 |   -1 |    0 |        6 |              6
+   8 |       2 |        1 |         3 |       9 |    3 |    5 |    1 |        0 |              6
+   9 |       2 |        2 |         3 |       9 |    6 |    9 |    1 |        1 |              7
+  10 |       2 |        3 |         3 |       9 |    9 |   -2 |    0 |        2 |              8
+(10 rows)
+
 -- q0
-1|1|1|1|3|1|1|1|0|0
-2|1|2|1|3|2|2|1|1|1
-3|1|3|1|3|3|-1|0|2|2
-4|2|1|3|9|3|5|1|0|2
-5|2|2|3|9|6|9|1|1|3
-6|2|3|3|9|9|-2|0|2|4
+SELECT * FROM pgr_dijkstraVia(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table order by id',
+    ARRAY[1, 3, 9], false, strict:=true, U_turn_on_edge:=false
+);
+ seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost | route_agg_cost 
+-----+---------+----------+-----------+---------+------+------+------+----------+----------------
+   1 |       1 |        1 |         1 |       3 |    1 |    1 |    1 |        0 |              0
+   2 |       1 |        2 |         1 |       3 |    2 |    2 |    1 |        1 |              1
+   3 |       1 |        3 |         1 |       3 |    3 |   -1 |    0 |        2 |              2
+   4 |       2 |        1 |         3 |       9 |    3 |    5 |    1 |        0 |              2
+   5 |       2 |        2 |         3 |       9 |    6 |    9 |    1 |        1 |              3
+   6 |       2 |        3 |         3 |       9 |    9 |   -2 |    0 |        2 |              4
+(6 rows)
+
 -- q1
-1|1|1|1|5|1|1|1|0|0
-2|1|2|1|5|2|4|1|1|1
-3|1|3|1|5|5|-1|0|2|2
-4|2|1|5|3|5|8|1|0|2
-5|2|2|5|3|6|9|1|1|3
-6|2|3|5|3|9|16|1|2|4
-7|2|4|5|3|4|3|1|3|5
-8|2|5|5|3|3|-1|0|4|6
-9|3|1|3|9|3|5|1|0|6
-10|3|2|3|9|6|9|1|1|7
-11|3|3|3|9|9|-1|0|2|8
-12|4|1|9|4|9|16|1|0|8
-13|4|2|9|4|4|-2|0|1|9
+SELECT * FROM pgr_dijkstraVia(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table order by id',
+    ARRAY[1, 5, 3, 9, 4]
+);
+ seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost | route_agg_cost 
+-----+---------+----------+-----------+---------+------+------+------+----------+----------------
+   1 |       1 |        1 |         1 |       5 |    1 |    1 |    1 |        0 |              0
+   2 |       1 |        2 |         1 |       5 |    2 |    4 |    1 |        1 |              1
+   3 |       1 |        3 |         1 |       5 |    5 |   -1 |    0 |        2 |              2
+   4 |       2 |        1 |         5 |       3 |    5 |    8 |    1 |        0 |              2
+   5 |       2 |        2 |         5 |       3 |    6 |    9 |    1 |        1 |              3
+   6 |       2 |        3 |         5 |       3 |    9 |   16 |    1 |        2 |              4
+   7 |       2 |        4 |         5 |       3 |    4 |    3 |    1 |        3 |              5
+   8 |       2 |        5 |         5 |       3 |    3 |   -1 |    0 |        4 |              6
+   9 |       3 |        1 |         3 |       9 |    3 |    5 |    1 |        0 |              6
+  10 |       3 |        2 |         3 |       9 |    6 |    9 |    1 |        1 |              7
+  11 |       3 |        3 |         3 |       9 |    9 |   -1 |    0 |        2 |              8
+  12 |       4 |        1 |         9 |       4 |    9 |   16 |    1 |        0 |              8
+  13 |       4 |        2 |         9 |       4 |    4 |   -2 |    0 |        1 |              9
+(13 rows)
+
 -- q2
-2
+SELECT agg_cost FROM  pgr_dijkstraVia(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table order by id',
+    ARRAY[1, 5, 3, 9, 4]
+) 
+WHERE path_id = 3 AND edge <0;
+ agg_cost 
+----------
+        2
+(1 row)
+
 -- q3
-8
+SELECT route_agg_cost FROM  pgr_dijkstraVia(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table order by id',
+    ARRAY[1, 5, 3, 9, 4]
+)
+WHERE path_id = 3 AND edge < 0;
+ route_agg_cost 
+----------------
+              8
+(1 row)
+
 -- q4
-1|1
-2|2
-3|5
-4|6
-5|9
-6|4
-7|3
-8|6
-9|9
-10|4
+SELECT row_number() over () as node_seq, node 
+FROM  pgr_dijkstraVia(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table order by id',
+    ARRAY[1, 5, 3, 9, 4]
+) 
+WHERE edge <> -1 ORDER BY seq;
+ node_seq | node 
+----------+------
+        1 |    1
+        2 |    2
+        3 |    5
+        4 |    6
+        5 |    9
+        6 |    4
+        7 |    3
+        8 |    6
+        9 |    9
+       10 |    4
+(10 rows)
+
 -- q5
-1|2
-2|6
-3|8
-4|9
+SELECT path_id, route_agg_cost FROM  pgr_dijkstraVia(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table order by id',
+    ARRAY[1, 5, 3, 9, 4]
+) 
+WHERE edge < 0;
+ path_id | route_agg_cost 
+---------+----------------
+       1 |              2
+       2 |              6
+       3 |              8
+       4 |              9
+(4 rows)
+
 -- q6
-6|4|9|2|passes in front
-11|8|9|2|visits
+SELECT seq, route_agg_cost, node, agg_cost ,
+CASE WHEN edge = -1 THEN 'visits'
+ELSE 'passes in front'
+END as status
+FROM  pgr_dijkstraVia(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table order by id',
+    ARRAY[1, 5, 3, 9, 4])
+WHERE node = 9 and (agg_cost  <> 0 or seq = 1);
+ seq | route_agg_cost | node | agg_cost |     status      
+-----+----------------+------+----------+-----------------
+   6 |              4 |    9 |        2 | passes in front
+  11 |              8 |    9 |        2 | visits
+(2 rows)
+
+ROLLBACK;
+ROLLBACK
diff --git a/src/dijkstra/test/issue-353.result b/src/dijkstra/test/issue-353.result
deleted file mode 100644
index b4686ec..0000000
--- a/src/dijkstra/test/issue-353.result
+++ /dev/null
@@ -1,4 +0,0 @@
-1..3
-ok 1 - 1
-ok 2 - 2
-ok 3 - 3
diff --git a/src/dijkstra/test/many_to_1.result b/src/dijkstra/test/many_to_1.result
deleted file mode 100644
index b34d93e..0000000
--- a/src/dijkstra/test/many_to_1.result
+++ /dev/null
@@ -1,35 +0,0 @@
-1|1|2|2|4|1|0
-2|2|2|5|8|1|1
-3|3|2|6|9|1|2
-4|4|2|9|16|1|3
-5|5|2|4|3|1|4
-6|6|2|3|-1|0|5
-1|1|2|2|2|1|0
-2|2|2|3|-1|0|1
-1|1|2|2|4|1|0
-2|2|2|5|8|1|1
-3|3|2|6|5|1|2
-4|4|2|3|-1|0|3
-1|1|2|2|4|1|0
-2|2|2|5|8|1|1
-3|3|2|6|9|1|2
-4|4|2|9|16|1|3
-5|5|2|4|3|1|4
-6|6|2|3|-1|0|5
-7|1|11|11|13|1|0
-8|2|11|12|15|1|1
-9|3|11|9|16|1|2
-10|4|11|4|3|1|3
-11|5|11|3|-1|0|4
-1|1|2|2|2|1|0
-2|2|2|3|-1|0|1
-3|1|11|11|11|1|0
-4|2|11|6|5|1|1
-5|3|11|3|-1|0|2
-1|1|2|2|4|1|0
-2|2|2|5|8|1|1
-3|3|2|6|5|1|2
-4|4|2|3|-1|0|3
-5|1|11|11|11|1|0
-6|2|11|6|5|1|1
-7|3|11|3|-1|0|2
diff --git a/src/dijkstra/test/many_to_1.test.sql b/src/dijkstra/test/many_to_1.test.sql
deleted file mode 100644
index d44b5c5..0000000
--- a/src/dijkstra/test/many_to_1.test.sql
+++ /dev/null
@@ -1,52 +0,0 @@
-
--- Examples for :ref:`fig1-direct-Cost-Reverse` 
--------------------------------------------------------------------------------
-
-
-     
-
-
-    SELECT * FROM pgr_dijkstra(
-            'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-            array[2], 3
-        );
-
-
-    SELECT * FROM pgr_dijkstra(
-            'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-            array[2], 3, false
-        );
-
-    SELECT * FROM pgr_dijkstra(
-            'SELECT id, source, target, cost FROM edge_table',
-            array[2], 3
-        );
-
-    SELECT * FROM pgr_dijkstra(
-            'SELECT id, source, target, cost FROM edge_table',
-            array[2], 3, false
-        );
-
-
-    SELECT * FROM pgr_dijkstra(
-            'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-            array[2,11], 3
-        );
-
-
-    SELECT * FROM pgr_dijkstra(
-            'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-            array[2,11], 3, false
-        );
-
-    SELECT * FROM pgr_dijkstra(
-            'SELECT id, source, target, cost FROM edge_table',
-            array[2,11], 3
-        );
-
-    SELECT * FROM pgr_dijkstra(
-            'SELECT id, source, target, cost FROM edge_table',
-            array[2,11], 3, false
-        );
-
-
diff --git a/src/dijkstra/test/test.conf b/src/dijkstra/test/test.conf
index 7173fc9..3215662 100644
--- a/src/dijkstra/test/test.conf
+++ b/src/dijkstra/test/test.conf
@@ -5,11 +5,9 @@
         'comment' => 'Dijkstra test for any versions.',
         'data' => [ ],
         'tests' => [qw(
-            dijkstra-v2
             doc-pgr_dijkstra
             doc-pgr_dijkstraVia
             doc-pgr_dijkstraCost
-            many_to_1
             )],
         'documentation' => [qw(
             doc-pgr_dijkstra
@@ -17,10 +15,6 @@
             doc-pgr_dijkstraCost
             )]
         ,'notests' => [qw(
-            dijkstra-v2
-            doc-pgr_dijkstraVia
-            doc-pgr_dijkstraCost
-            many_to_1
             )]
     },
 
diff --git a/src/dijkstraTRSP/src/CMakeLists.txt b/src/dijkstraTRSP/src/CMakeLists.txt
new file mode 100644
index 0000000..e2a3b4f
--- /dev/null
+++ b/src/dijkstraTRSP/src/CMakeLists.txt
@@ -0,0 +1,5 @@
+ADD_LIBRARY(dijkstraTRSP OBJECT
+    dijkstraTRSP.c
+    dijkstraTRSP_driver.cpp
+    restriction.cpp
+    )
diff --git a/src/dijkstraTRSP/src/dijkstraTRSP.c b/src/dijkstraTRSP/src/dijkstraTRSP.c
new file mode 100644
index 0000000..70c550b
--- /dev/null
+++ b/src/dijkstraTRSP/src/dijkstraTRSP.c
@@ -0,0 +1,285 @@
+/*PGR-GNU*****************************************************************
+File: dijkstraTRSP.c
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2017 Vidhan Jain
+Mail: vidhanj1307 at gmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+/** @file dijkstraTRSP.c
+ * @brief Connecting code with postgres.
+ *
+ * This file is fully documented for understanding
+ *  how the postgres connectinon works
+ *
+ * TODO Remove unnecessary comments before submiting the function.
+ * some comments are in form of PGR_DBG message
+ */
+
+/**
+ *  postgres_connection.h
+ *
+ *  - should always be first in the C code
+ */
+#include "c_common/postgres_connection.h"
+
+
+/* for macro PGR_DBG */
+#include "c_common/debug_macro.h"
+/* for pgr_global_report */
+#include "c_common/e_report.h"
+/* for time_msg & clock */
+#include "c_common/time_msg.h"
+/* for functions to get edges information */
+#include "c_common/edges_input.h"
+#include "c_common/restrict_input.h"
+
+#include "drivers/dijkstraTRSP/dijkstraTRSP_driver.h"  // the link to the C++ code of the function
+
+PGDLLEXPORT Datum dijkstraTRSP(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(dijkstraTRSP);
+
+
+/******************************************************************************/
+/*                          MODIFY AS NEEDED                                  */
+static
+void
+process(
+        char* edges_sql,
+        char *restrictions_sql,
+        int64_t start_vid,
+        int64_t end_vid,
+        bool directed,
+        bool only_cost,
+        bool strict,
+        General_path_element_t **result_tuples,
+        size_t *result_count) {
+    pgr_SPI_connect();
+    /*
+     *  https://www.postgresql.org/docs/current/static/spi-spi-connect.html
+     */
+    (*result_tuples) = NULL;
+    (*result_count) = 0;
+    PGR_DBG("\n\n\n\n\n\nEdge query: %s\n", edges_sql);
+    PGR_DBG("Restrictions query: %s\n", restrictions_sql);
+    PGR_DBG("source: %lu | destination: %lu\n\n", start_vid, end_vid);
+
+    PGR_DBG("Load data");
+    pgr_edge_t *edges = NULL;
+    size_t total_edges = 0;
+
+    if (start_vid == end_vid) {
+        /*
+         * https://www.postgresql.org/docs/current/static/spi-spi-finish.html
+         */
+        pgr_SPI_finish();
+        return;
+    }
+
+    pgr_get_edges(edges_sql, &edges, &total_edges);
+    PGR_DBG("Total %ld edges in query:", total_edges);
+
+    PGR_DBG("Load restrictions");
+    Restrict_t *restrictions = NULL;
+    size_t total_restrictions = 0;
+
+    pgr_get_restriction_data(restrictions_sql, &restrictions,
+        &total_restrictions);
+
+#if 1
+    size_t i = 0;
+    while(i < total_restrictions) {
+        PGR_DBG("id: %ld cost: %lf", restrictions[i].id, restrictions[i].cost);
+        int j = 0;
+        while(restrictions[i].restricted_edges[j] != -1) {
+            PGR_DBG("%ld ", restrictions[i].restricted_edges[j]);
+            j++;
+        }
+        PGR_DBG("\n");
+        i++;
+    }
+#endif
+
+    if (total_edges == 0) {
+        PGR_DBG("No edges found");
+        pgr_SPI_finish();
+        return;
+    }
+
+    PGR_DBG("Starting processing");
+    clock_t start_t = clock();
+    char *log_msg = NULL;
+    char *notice_msg = NULL;
+    char *err_msg = NULL;
+    do_pgr_dijkstraTRSP(
+            edges,
+            total_edges,
+            restrictions,
+            total_restrictions,
+            start_vid,
+            end_vid,
+            directed,
+            only_cost,
+            strict,
+            result_tuples,
+            result_count,
+            &log_msg,
+            &notice_msg,
+            &err_msg);
+
+    time_msg(" processing pgr_dijkstraTRSP", start_t, clock());
+    PGR_DBG("Returning %ld tuples", *result_count);
+
+    if (err_msg) {
+        if (*result_tuples) pfree(*result_tuples);
+    }
+    pgr_global_report(log_msg, notice_msg, err_msg);
+    if (edges) pfree(edges);
+    if (log_msg) pfree(log_msg);
+    if (notice_msg) pfree(notice_msg);
+    if (err_msg) pfree(err_msg);
+    if (restrictions) pfree(restrictions);
+    pgr_SPI_finish();
+}
+/*                                                                            */
+/******************************************************************************/
+
+PGDLLEXPORT Datum dijkstraTRSP(PG_FUNCTION_ARGS) {
+    FuncCallContext     *funcctx;
+    TupleDesc           tuple_desc;
+
+    /**************************************************************************/
+    /*                          MODIFY AS NEEDED                              */
+    /*                                                                        */
+    General_path_element_t  *result_tuples = NULL;
+    size_t result_count = 0;
+    /*                                                                        */
+    /**************************************************************************/
+
+    if (SRF_IS_FIRSTCALL()) {
+        MemoryContext   oldcontext;
+        funcctx = SRF_FIRSTCALL_INIT();
+        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
+
+
+        /**********************************************************************/
+        /*                          MODIFY AS NEEDED                          */
+        /*
+           TEXT,
+    TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    strict BOOLEAN DEFAULT false
+         **********************************************************************/
+
+
+        PGR_DBG("Calling process");
+        process(
+                text_to_cstring(PG_GETARG_TEXT_P(0)),
+                text_to_cstring(PG_GETARG_TEXT_P(1)),
+                PG_GETARG_INT64(2),
+                PG_GETARG_INT64(3),
+                PG_GETARG_BOOL(4),
+                PG_GETARG_BOOL(5),
+                PG_GETARG_BOOL(6),
+                &result_tuples,
+                &result_count);
+
+
+        /*                                                                    */
+        /**********************************************************************/
+
+#if PGSQL_VERSION > 94
+        funcctx->max_calls = result_count;
+#else
+        funcctx->max_calls = (uint32_t)result_count;
+#endif
+        funcctx->user_fctx = result_tuples;
+        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
+                != TYPEFUNC_COMPOSITE) {
+            ereport(ERROR,
+                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+                     errmsg("function returning record called in context "
+                         "that cannot accept type record")));
+        }
+
+        funcctx->tuple_desc = tuple_desc;
+        MemoryContextSwitchTo(oldcontext);
+    }
+
+    funcctx = SRF_PERCALL_SETUP();
+    tuple_desc = funcctx->tuple_desc;
+    result_tuples = (General_path_element_t*) funcctx->user_fctx;
+
+    if (funcctx->call_cntr < funcctx->max_calls) {
+        HeapTuple    tuple;
+        Datum        result;
+        Datum        *values;
+        bool*        nulls;
+
+        /**********************************************************************/
+        /*                          MODIFY AS NEEDED                          */
+        /*
+               OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+         ***********************************************************************/
+
+        values = palloc(6 * sizeof(Datum));
+        nulls = palloc(6 * sizeof(bool));
+
+
+        size_t i;
+        for (i = 0; i < 6; ++i) {
+            nulls[i] = false;
+        }
+
+        // postgres starts counting from 1
+        values[0] = Int32GetDatum(funcctx->call_cntr + 1);
+        values[1] = Int32GetDatum(result_tuples[funcctx->call_cntr].seq);
+        values[2] = Int64GetDatum(result_tuples[funcctx->call_cntr].node);
+        values[3] = Int64GetDatum(result_tuples[funcctx->call_cntr].edge);
+        values[4] = Float8GetDatum(result_tuples[funcctx->call_cntr].cost);
+        values[5] = Float8GetDatum(result_tuples[funcctx->call_cntr].agg_cost);
+        /**********************************************************************/
+
+        tuple = heap_form_tuple(tuple_desc, values, nulls);
+        result = HeapTupleGetDatum(tuple);
+        SRF_RETURN_NEXT(funcctx, result);
+    } else {
+        /**********************************************************************/
+        /*                          MODIFY AS NEEDED                          */
+
+        PGR_DBG("Clean up code");
+
+        /**********************************************************************/
+
+        SRF_RETURN_DONE(funcctx);
+    }
+}
diff --git a/src/dijkstraTRSP/src/dijkstraTRSP_driver.cpp b/src/dijkstraTRSP/src/dijkstraTRSP_driver.cpp
new file mode 100644
index 0000000..a82f625
--- /dev/null
+++ b/src/dijkstraTRSP/src/dijkstraTRSP_driver.cpp
@@ -0,0 +1,186 @@
+/*PGR-GNU*****************************************************************
+File: dijkstraTRSP_driver.cpp
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2017 Vidhan Jain
+Mail: vidhanj1307 at gmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#include "drivers/dijkstraTRSP/dijkstraTRSP_driver.h"
+
+#include <sstream>
+#include <deque>
+#include <vector>
+
+#include "dijkstraTRSP/pgr_dijkstraTRSP.hpp"
+
+#include "cpp_common/pgr_alloc.hpp"
+#include "cpp_common/pgr_assert.h"
+
+#if 1
+template < class G >
+static
+Path
+pgr_dijkstraTRSP(
+        G &graph,
+        const std::vector< Restriction >& restrictions_array,
+        const std::vector< pgr_edge_t > edges,
+        int64_t source,
+        int64_t target,
+        std::string& log,
+        bool only_cost = false,
+        bool strict = false) {
+
+    Pgr_dijkstraTRSP< G > fn_TRSP;
+    Path path = fn_TRSP.dijkstraTRSP(graph,
+                    restrictions_array,
+                    edges,
+                    source,
+                    target,
+                    only_cost,
+                    strict);
+    log += fn_TRSP.log.str().c_str();
+    return path;
+}
+#endif
+
+void
+do_pgr_dijkstraTRSP(
+        pgr_edge_t *data_edges,
+        size_t total_edges,
+        Restrict_t *restrictions,
+        size_t total_restrictions,
+        int64_t start_vid,
+        int64_t end_vid,
+        bool directed,
+        bool only_cost,
+        bool strict,
+        General_path_element_t **return_tuples,
+        size_t *return_count,
+        char ** log_msg,
+        char ** notice_msg,
+        char ** err_msg) {
+    std::ostringstream log;
+    std::ostringstream err;
+    std::ostringstream notice;
+    try {
+        pgassert(!(*log_msg));
+        pgassert(!(*notice_msg));
+        pgassert(!(*err_msg));
+        pgassert(!(*return_tuples));
+        pgassert(*return_count == 0);
+        pgassert(total_edges != 0);
+
+        log << "\n----------------------------------------\nRestrictions data\n";
+        std::vector< Restriction > restrict_array;
+        for(size_t i = 0;i < total_restrictions;i++) {
+            restrict_array.push_back( Restriction(restrictions[i]) );
+        }
+        log << "\n-------------------------------------------------------------\nStart from here\n";
+        for (const auto &it: restrict_array) {
+            log << it << "\n";
+        }
+        log <<"-----------------------------------------------------------------\n";
+
+        graphType gType = directed? DIRECTED: UNDIRECTED;
+
+        std::vector < pgr_edge_t > edges(data_edges, data_edges + total_edges);
+
+        Path path;
+        std::string logstr;
+        if (directed) {
+            log << "Working with directed Graph\n";
+            pgrouting::DirectedGraph digraph(gType);
+            Pgr_dijkstraTRSP < pgrouting::DirectedGraph > fn_TRSP;
+            digraph.insert_edges(edges);
+            path = pgr_dijkstraTRSP(digraph,
+                    restrict_array,
+                    edges,
+                    start_vid,
+                    end_vid,
+                    logstr,
+                    only_cost,
+                    strict);
+        } else {
+            log << "Working with Undirected Graph\n";
+            pgrouting::UndirectedGraph undigraph(gType);
+            Pgr_dijkstraTRSP < pgrouting::UndirectedGraph > fn_TRSP;
+            undigraph.insert_edges(data_edges, total_edges);
+        #if 0
+            path = pgr_dijkstraTRSP(undigraph,
+                    restrict_array,
+                    edges,
+                    start_vid,
+                    end_vid,
+                    logstr,
+                    only_cost,
+                    strict);
+        #endif
+        }
+        log << logstr;
+        auto count = path.size();
+        log << "\nCount = " << count;
+
+        if (count == 0) {
+            (*return_tuples) = NULL;
+            (*return_count) = 0;
+            notice <<
+                "No paths found between start_vid and end_vid vertices";
+        } else {
+            (*return_tuples) = pgr_alloc(count, (*return_tuples));
+            size_t sequence = 0;
+            path.generate_postgres_data(return_tuples, sequence);
+            (*return_count) = sequence;
+        }
+
+        pgassert(*err_msg == NULL);
+        *log_msg = log.str().empty()?
+            *log_msg :
+            pgr_msg(log.str().c_str());
+        #if 0
+        *notice_msg = notice.str().empty()?
+            *notice_msg :
+            pgr_msg(notice.str().c_str());
+        #endif
+        pgassert(!log.str().empty());
+    } catch (AssertFailedException &except) {
+        (*return_tuples) = pgr_free(*return_tuples);
+        (*return_count) = 0;
+        err << except.what();
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    } catch (std::exception &except) {
+        (*return_tuples) = pgr_free(*return_tuples);
+        (*return_count) = 0;
+        err << except.what();
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    } catch(...) {
+        (*return_tuples) = pgr_free(*return_tuples);
+        (*return_count) = 0;
+        err << "Caught unknown exception!";
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    }
+}
diff --git a/src/dijkstraTRSP/src/restriction.cpp b/src/dijkstraTRSP/src/restriction.cpp
new file mode 100644
index 0000000..ecb41a4
--- /dev/null
+++ b/src/dijkstraTRSP/src/restriction.cpp
@@ -0,0 +1,52 @@
+/*PGR-GNU*****************************************************************
+File: restriction.cpp
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2017 Vidhan Jain
+Mail: vidhanj1307 at gmail.com
+
+------
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+********************************************************************PGR-GNU*/
+
+#include "dijkstraTRSP/restriction.h"
+
+#include <vector>
+#include <memory>
+#include <utility>
+#include <limits>
+
+Restriction::Restriction(const Restrict_t &r) :
+    m_id(r.id),
+    m_cost(r.cost) {
+        for(auto &it: r.restricted_edges) {
+            if (it == -1) break;
+            restrict_edges(it);
+        }
+    }
+
+std::ostream&
+operator << (std::ostream &log, const Restriction& r) {
+    log << "\n--------------------------------\nRestriction\n";
+    log << "ID: " << r.id() << "\nRestricion edge sequence: ";
+    for (const auto &v : r.restrict_edges()) {
+        log << v <<" ";
+    }
+    log << "\n";
+    log << "Cost: " << r.cost() << "\n";
+    return log;
+}
diff --git a/src/dijkstraTRSP/test/custom.result b/src/dijkstraTRSP/test/custom.result
new file mode 100644
index 0000000..ece264a
--- /dev/null
+++ b/src/dijkstraTRSP/test/custom.result
@@ -0,0 +1,25 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 8
+);
+ seq | path_seq | node | edge | cost | agg_cost
+-----+----------+------+------+------+----------
+(0 rows)
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 8,
+    FALSE
+);
+ seq | path_seq | node | edge | cost | agg_cost
+-----+----------+------+------+------+----------
+(0 rows)
+
+ROLLBACK;
+ROLLBACK
diff --git a/src/dijkstraTRSP/test/custom.test.sql b/src/dijkstraTRSP/test/custom.test.sql
new file mode 100644
index 0000000..6184e95
--- /dev/null
+++ b/src/dijkstraTRSP/test/custom.test.sql
@@ -0,0 +1,12 @@
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 8
+);
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 8,
+    FALSE
+);
diff --git a/src/dijkstraTRSP/test/doc-dijkstraTRSP.result b/src/dijkstraTRSP/test/doc-dijkstraTRSP.result
new file mode 100644
index 0000000..1f9b68c
--- /dev/null
+++ b/src/dijkstraTRSP/test/doc-dijkstraTRSP.result
@@ -0,0 +1,36 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 3
+);
+ seq | path_seq | node | edge | cost | agg_cost
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    4 |    1 |        0
+   2 |        2 |    5 |    8 |    1 |        1
+   3 |        3 |    6 |    9 |    1 |        2
+   4 |        4 |    9 |   16 |    1 |        3
+   5 |        5 |    4 |    3 |    1 |        4
+   6 |        6 |    3 |   -1 |    0 |        5
+(6 rows)
+
+-- q2
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 3,
+    FALSE
+);
+ seq | path_seq | node | edge | cost | agg_cost
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    2 |    1 |        0
+   2 |        2 |    3 |   -1 |    0 |        1
+(2 rows)
+
+-- q3
+ROLLBACK;
+ROLLBACK
diff --git a/src/dijkstraTRSP/test/doc-dijkstraTRSP.test.sql b/src/dijkstraTRSP/test/doc-dijkstraTRSP.test.sql
new file mode 100644
index 0000000..a006a6f
--- /dev/null
+++ b/src/dijkstraTRSP/test/doc-dijkstraTRSP.test.sql
@@ -0,0 +1,16 @@
+
+\echo -- q1
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 3
+);
+
+\echo -- q2
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 3,
+    FALSE
+);
+\echo -- q3
diff --git a/src/dijkstraTRSP/test/pgtap/custom.sql b/src/dijkstraTRSP/test/pgtap/custom.sql
new file mode 100644
index 0000000..50c824b
--- /dev/null
+++ b/src/dijkstraTRSP/test/pgtap/custom.sql
@@ -0,0 +1,163 @@
+\i setup.sql
+
+SELECT plan(7);
+
+SET client_min_messages TO WARNING;
+
+UPDATE edge_table SET cost = cost + 0.001 * id * id, reverse_cost = reverse_cost + 0.001 * id * id;
+
+SELECT todo_start();
+
+
+PREPARE q1 AS
+SELECT seq,
+       edge
+FROM pgr_dijkstraTRSP('SELECT id, source, target, cost, reverse_cost
+FROM edge_table', 'SELECT * FROM restrict WHERE id in (1)', 2, 8);
+
+PREPARE q2 AS
+SELECT seq, edge FROM ( VALUES
+	(1, 4),
+	(2, 8),
+	(3, 11),
+	(4, 12),
+	(5, 10),
+	(6, 7),
+	(7, -1) )
+AS t(seq, edge);
+
+SELECT set_eq('q1', 'q2', 'Testing from source 2 to target 8 with restriction on edges as follows 4 -> 7');
+
+
+
+PREPARE q3 AS
+SELECT seq,
+       edge
+FROM pgr_dijkstraTRSP('SELECT id, source, target, cost, reverse_cost
+FROM edge_table', 'SELECT * FROM restrict WHERE id in (2)', 8, 11);
+
+PREPARE q4 AS
+SELECT seq, edge FROM ( VALUES
+	(1, 7),
+	(2, 10),
+	(3, 12),
+	(4, -1) )
+AS t(seq, edge);
+
+SELECT set_eq('q3', 'q4', 'Testing from source 8 to target 11 with restriction on edges as follows 7 -> 8 -> 11');
+
+
+
+PREPARE q5 AS
+SELECT seq,
+       edge
+FROM pgr_dijkstraTRSP('SELECT id, source, target, cost, reverse_cost
+FROM edge_table', 'SELECT * FROM restrict WHERE id in (2, 3)', 7, 3);
+
+PREPARE q6 AS
+SELECT seq, edge FROM ( VALUES
+	(1, 6),
+	(2, 7),
+	(3, 8),
+	(4, 9),
+	(5, 16),
+	(6, 3),
+	(7, -1) )
+AS t(seq, edge);
+
+SELECT set_eq('q5', 'q6', 'Testing from source 7 to target 3 with restriction on edges as follows 7 -> 8 -> 11 and 7 -> 8 -> 5');
+
+
+
+PREPARE q7 AS
+SELECT seq,
+       edge
+FROM pgr_dijkstraTRSP('SELECT id, source, target, cost, reverse_cost
+FROM edge_table', 'SELECT * FROM restrict WHERE id in (4)', 7, 1);
+
+PREPARE q8 AS
+SELECT seq, edge FROM ( VALUES
+	(1, 6),
+	(2, 7),
+	(3, 8),
+	(4, 5),
+	(5, 2),
+	(6, 1),
+	(7, -1) )
+AS t(seq, edge);
+
+SELECT set_eq('q7', 'q8', 'Testing from source 7 to target 1 with restriction on edges as follows 7 -> 4');
+
+
+
+PREPARE q9 AS
+SELECT seq,
+       edge
+FROM pgr_dijkstraTRSP('SELECT id, source, target, cost, reverse_cost
+FROM edge_table', 'SELECT * FROM restrict WHERE id in (4, 5)', 8, 4);
+
+PREPARE q10 AS
+SELECT seq, edge FROM ( VALUES
+	(1, 7),
+	(2, 10),
+	(3, 12),
+	(4, 13),
+	(5, 15),
+	(6, 16),
+	(7, -1) )
+AS t(seq, edge);
+
+SELECT set_eq('q9', 'q10', 'Testing from source 8 to target 4 with restriction on edges as follows 7 -> 8 and 7 -> 4');
+
+
+
+PREPARE q11 AS
+SELECT seq,
+       edge
+FROM pgr_dijkstraTRSP('SELECT id, source, target, cost, reverse_cost
+FROM edge_table', 'SELECT * FROM restrict WHERE id in (4, 5)', 7, 1);
+
+PREPARE q12 AS
+SELECT seq, edge FROM ( VALUES
+	(1, 6),
+	(2, 7),
+	(3, 10),
+	(4, 12),
+	(5, 13),
+	(6, 15),
+	(7, 9),
+	(8, 5),
+	(9, 2),
+	(10, 1),
+	(11, -1) )
+AS t(seq, edge);
+
+SELECT set_eq('q11', 'q12', 'Testing from source 7 to target 1 with restriction on edges as follows 7 -> 8 and 7 -> 4'); 
+
+
+
+PREPARE q13 AS
+SELECT seq,
+       edge
+FROM pgr_dijkstraTRSP('SELECT id, source, target, cost, reverse_cost
+FROM edge_table', 'SELECT * FROM restrict WHERE id in (6, 7)', 12, 7);
+
+PREPARE q14 AS
+SELECT seq, edge FROM ( VALUES
+	(1, 15),
+	(2, 9),
+	(3, 5),
+	(4, 2),
+	(5, 4),
+	(6, 7),
+	(7, 6),
+	(8, -1) )
+AS t(seq, edge);
+
+SELECT set_eq('q13', 'q14', 'Testing from source 12 to target 7 with restriction on edges as follows 9 -> 11 and 9 -> 8'); 
+
+
+SELECT todo_end();
+
+SELECT finish();
+ROLLBACK;
diff --git a/src/dijkstraTRSP/test/pgtap/dijkstraTRSP-compare-dijkstra.sql b/src/dijkstraTRSP/test/pgtap/dijkstraTRSP-compare-dijkstra.sql
new file mode 100644
index 0000000..2ab3dda
--- /dev/null
+++ b/src/dijkstraTRSP/test/pgtap/dijkstraTRSP-compare-dijkstra.sql
@@ -0,0 +1,75 @@
+\i setup.sql
+
+SELECT plan(1157);
+
+SET client_min_messages TO ERROR;
+
+UPDATE edge_table SET cost = cost + 0.001 * id * id, reverse_cost = reverse_cost + 0.001 * id * id;
+
+SELECT has_function('pgr_dijkstratrsp');
+
+CREATE or REPLACE FUNCTION dijkstratrsp_compare_dijkstra(cant INTEGER default 17)
+RETURNS SETOF TEXT AS
+$BODY$
+DECLARE
+inner_sql TEXT;
+restricted_sql TEXT;
+dijkstra_sql TEXT;
+dijkstratrsp_sql TEXT;
+BEGIN
+
+    FOR i IN 1.. cant LOOP
+        FOR j IN 1.. cant LOOP
+
+            -- DIRECTED
+            inner_sql := 'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7';
+            dijkstra_sql := 'SELECT * FROM pgr_dijkstra($$' || inner_sql || '$$, ' || i || ', ' || j
+                || ', true)';
+
+            restricted_sql := 'SELECT * FROM restrict WHERE id IN (1)';
+            dijkstratrsp_sql := 'SELECT * FROM pgr_dijkstratrsp($$' || inner_sql || '$$, $$' || restricted_sql || '$$, '|| i || ', ' || j
+                || ', true)';
+            RETURN query SELECT set_eq(dijkstratrsp_sql, dijkstra_sql, dijkstratrsp_sql);
+
+            -- UNDIRECTED
+            inner_sql := 'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7';
+            dijkstra_sql := 'SELECT * FROM pgr_dijkstra($$' || inner_sql || '$$, ' || i || ', ' || j
+                || ', false)';
+
+            restricted_sql := 'SELECT * FROM restrict WHERE id in (1)';
+            dijkstratrsp_sql := 'SELECT * FROM pgr_dijkstratrsp($$' || inner_sql || '$$, $$' || restricted_sql || '$$, '|| i || ', ' || j
+                || ', false)';
+            RETURN query SELECT set_eq(dijkstratrsp_sql, dijkstra_sql, dijkstratrsp_sql);
+
+	    -- ALL RESTRICTIONS DIRECTED
+            inner_sql := 'SELECT id, source, target, cost, reverse_cost FROM edge_table';
+            dijkstra_sql := 'SELECT * FROM pgr_dijkstra($$' || inner_sql || '$$, ' || i || ', ' || j
+                || ', true)';
+
+            restricted_sql := 'SELECT * FROM restrict';
+            dijkstratrsp_sql := 'SELECT * FROM pgr_dijkstratrsp($$' || inner_sql || '$$, $$' || restricted_sql || '$$, '|| i || ', ' || j
+                || ', true)';
+            RETURN query SELECT set_eq(dijkstratrsp_sql, dijkstra_sql, dijkstratrsp_sql);
+
+            -- ALL RESTRICTIONS UNDIRECTED
+            inner_sql := 'SELECT id, source, target, cost, reverse_cost FROM edge_table';
+            dijkstra_sql := 'SELECT * FROM pgr_dijkstra($$' || inner_sql || '$$, ' || i || ', ' || j
+                || ', false)';
+
+            restricted_sql := 'SELECT * FROM restrict';
+            dijkstratrsp_sql := 'SELECT * FROM pgr_dijkstratrsp($$' || inner_sql || '$$, $$' || restricted_sql || '$$, '|| i || ', ' || j
+                || ', false)';
+            RETURN query SELECT set_eq(dijkstratrsp_sql, dijkstra_sql, dijkstratrsp_sql);
+
+
+        END LOOP;
+    END LOOP;
+
+    RETURN;
+END
+$BODY$
+language plpgsql;
+SELECT * from dijkstratrsp_compare_dijkstra();
+
+SELECT * FROM finish();
+ROLLBACK;
diff --git a/src/dijkstraTRSP/test/pgtap/dijkstraTRSP-innerQuery.sql b/src/dijkstraTRSP/test/pgtap/dijkstraTRSP-innerQuery.sql
new file mode 100644
index 0000000..3c0cfed
--- /dev/null
+++ b/src/dijkstraTRSP/test/pgtap/dijkstraTRSP-innerQuery.sql
@@ -0,0 +1,19 @@
+\i setup.sql
+
+SELECT plan(137);
+SET client_min_messages TO ERROR;
+
+
+SELECT has_function('pgr_dijkstratrsp',
+    ARRAY['text', 'text', 'bigint', 'bigint', 'boolean','boolean','boolean']);
+
+SELECT function_returns('pgr_dijkstratrsp',
+    ARRAY['text', 'text', 'bigint', 'bigint', 'boolean','boolean','boolean'],
+    'setof record');
+
+SELECT style_dijkstraTRSP('pgr_dijkstratrsp', ', $$SELECT * FROM restrict$$, 2, 3)');
+SELECT style_dijkstraTRSP('pgr_dijkstratrsp', ', $$SELECT * FROM restrict$$, 2, 3, true)');
+SELECT style_dijkstraTRSP('pgr_dijkstratrsp', ', $$SELECT * FROM restrict$$, 2, 3, false)');
+
+SELECT finish();
+ROLLBACK;
diff --git a/src/dijkstraTRSP/test/pgtap/dijkstraTRSP-typesCheck.sql b/src/dijkstraTRSP/test/pgtap/dijkstraTRSP-typesCheck.sql
new file mode 100644
index 0000000..0c791a0
--- /dev/null
+++ b/src/dijkstraTRSP/test/pgtap/dijkstraTRSP-typesCheck.sql
@@ -0,0 +1,16 @@
+
+SELECT plan(4);
+
+SELECT has_function('pgr_dijkstratrsp');
+
+SELECT has_function('pgr_dijkstratrsp', ARRAY[ 'text', 'text', 'bigint', 'bigint', 'boolean', 'boolean', 'boolean' ]);
+
+SELECT function_returns('pgr_dijkstratrsp',
+    ARRAY[ 'text', 'text', 'bigint', 'bigint', 'boolean', 'boolean', 'boolean' ],
+    'setof record');
+
+-- testing column names
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_dijkstratrsp'$$,
+    $$SELECT  '{"","","","","directed","only_cost","strict","seq","path_seq","node","edge","cost","agg_cost"}'::TEXT[] $$
+);
diff --git a/src/dijkstraTRSP/test/pgtap/empty_set_NO_default_strict.sql b/src/dijkstraTRSP/test/pgtap/empty_set_NO_default_strict.sql
new file mode 100644
index 0000000..e1475e7
--- /dev/null
+++ b/src/dijkstraTRSP/test/pgtap/empty_set_NO_default_strict.sql
@@ -0,0 +1,258 @@
+\i setup.sql
+
+SELECT plan(20);
+
+----------------------------------------------------------------------------------------------------------------
+-- testing from an existing starting vertex to a non-existing destination
+----------------------------------------------------------------------------------------------------------------
+
+-- in directed graph
+-- with restrictions
+PREPARE q1 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 3,
+    strict := false
+);
+
+-- in undirected graph
+-- with restrictions
+PREPARE q2 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 3,
+    FALSE,
+    strict := false
+);
+
+-- in directed graph
+-- without restrictions
+PREPARE q3 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    2, 3,
+    strict := false
+);
+
+-- in undirected graph
+-- without restrictions
+PREPARE q4 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    2, 3,
+    FALSE,
+    strict := false
+);
+
+----------------------------------------------------------------------------------------------------------------
+-- testing from an non-existing starting vertex to an existing destination
+----------------------------------------------------------------------------------------------------------------
+
+-- in directed graph
+-- with restrictions
+PREPARE q5 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    6, 8,
+    strict := false
+);
+
+-- in undirected graph
+-- with restrictions
+PREPARE q6 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    6, 8,
+    FALSE,
+    strict := false
+);
+
+-- in directed graph
+-- without restrictions
+PREPARE q7 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    6, 8,
+    strict := false
+);
+
+-- in undirected graph
+-- without restrictions
+PREPARE q8 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    6, 8,
+    FALSE,
+    strict := false
+);
+
+----------------------------------------------------------------------------------------------------------------
+-- testing from a non-existing starting vertex to a non-existing destination
+----------------------------------------------------------------------------------------------------------------
+
+-- in directed graph
+-- with restrictions
+PREPARE q9 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    1, 17,
+    strict := false
+);
+
+-- in undirected graph
+-- with restrictions
+PREPARE q10 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    1, 17,
+    FALSE,
+    strict := false
+);
+
+-- in directed graph
+-- without restrictions
+PREPARE q11 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    1, 17,
+    strict := false
+);
+
+-- in undirected graph
+-- without restrictions
+PREPARE q12 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    1, 17,
+    FALSE,
+    strict := false
+);
+
+----------------------------------------------------------------------------------------------------------------
+-- testing from an existing starting vertex to the same destination
+----------------------------------------------------------------------------------------------------------------
+
+-- in directed graph
+-- with restrictions
+PREPARE q13 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 2,
+    strict := false
+);
+
+-- in undirected graph
+-- with restrictions
+PREPARE q14 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 2,
+    FALSE,
+    strict := false
+);
+
+-- in directed graph
+-- without restrictions
+PREPARE q15 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    2, 2,
+    strict := false
+);
+
+-- in undirected graph
+-- without restrictions
+PREPARE q16 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    2, 2,
+    FALSE,
+    strict := false
+);
+
+----------------------------------------------------------------------------------------------------------------
+-- testing from an existing starting vertex in one component to an existing destination in another component
+----------------------------------------------------------------------------------------------------------------
+-- in directed graph
+-- with restrictions
+PREPARE q17 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id IN (4, 7, 17)',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 14,
+    strict := false
+);
+
+-- in undirected graph
+-- with restrictions
+PREPARE q18 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id IN (4, 7, 17)',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 14,
+    FALSE,
+    strict := false
+);
+
+-- in directed graph
+-- without restrictions
+PREPARE q19 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id IN (4, 7, 17)',
+    'SELECT * FROM restrict where id > 10',
+    2, 14,
+    strict := false
+);
+
+-- in undirected graph
+-- without restrictions
+PREPARE q20 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id IN (4, 7, 17)',
+    'SELECT * FROM restrict where id > 10',
+    2, 14,
+    FALSE,
+    strict := false
+);
+
+----------------------------------------------------------------------------------------------------------------
+
+SELECT is_empty('q1');
+SELECT is_empty('q2');
+SELECT is_empty('q3');
+SELECT is_empty('q4');
+SELECT is_empty('q5');
+SELECT is_empty('q6');
+SELECT is_empty('q7');
+SELECT is_empty('q8');
+SELECT is_empty('q9');
+SELECT is_empty('q10');
+SELECT is_empty('q11');
+SELECT is_empty('q12');
+SELECT is_empty('q13');
+SELECT is_empty('q14');
+SELECT is_empty('q15');
+SELECT is_empty('q16');
+SELECT is_empty('q17');
+SELECT is_empty('q18');
+SELECT is_empty('q19');
+SELECT is_empty('q20');
+
+SELECT * FROM finish();
+ROLLBACK;
diff --git a/src/dijkstraTRSP/test/pgtap/empty_set_default_strict.sql b/src/dijkstraTRSP/test/pgtap/empty_set_default_strict.sql
new file mode 100644
index 0000000..d0a2254
--- /dev/null
+++ b/src/dijkstraTRSP/test/pgtap/empty_set_default_strict.sql
@@ -0,0 +1,238 @@
+\i setup.sql
+
+SELECT plan(20);
+
+----------------------------------------------------------------------------------------------------------------
+-- testing from an existing starting vertex to a non-existing destination
+----------------------------------------------------------------------------------------------------------------
+
+-- in directed graph
+-- with restrictions
+PREPARE q1 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 3
+);
+
+-- in undirected graph
+-- with restrictions
+PREPARE q2 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 3,
+    FALSE
+);
+
+-- in directed graph
+-- without restrictions
+PREPARE q3 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    2, 3
+);
+
+-- in undirected graph
+-- without restrictions
+PREPARE q4 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    2, 3,
+    FALSE
+);
+
+----------------------------------------------------------------------------------------------------------------
+-- testing from an non-existing starting vertex to an existing destination
+----------------------------------------------------------------------------------------------------------------
+
+-- in directed graph
+-- with restrictions
+PREPARE q5 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    6, 8
+);
+
+-- in undirected graph
+-- with restrictions
+PREPARE q6 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    6, 8,
+    FALSE
+);
+
+-- in directed graph
+-- without restrictions
+PREPARE q7 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    6, 8
+);
+
+-- in undirected graph
+-- without restrictions
+PREPARE q8 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    6, 8,
+    FALSE
+);
+
+----------------------------------------------------------------------------------------------------------------
+-- testing from a non-existing starting vertex to a non-existing destination
+----------------------------------------------------------------------------------------------------------------
+
+-- in directed graph
+-- with restrictions
+PREPARE q9 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    1, 17
+);
+
+-- in undirected graph
+-- with restrictions
+PREPARE q10 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    1, 17,
+    FALSE
+);
+
+-- in directed graph
+-- without restrictions
+PREPARE q11 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    1, 17
+);
+
+-- in undirected graph
+-- without restrictions
+PREPARE q12 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    1, 17,
+    FALSE
+);
+
+----------------------------------------------------------------------------------------------------------------
+-- testing from an existing starting vertex to the same destination
+----------------------------------------------------------------------------------------------------------------
+
+-- in directed graph
+-- with restrictions
+PREPARE q13 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 2
+);
+
+-- in undirected graph
+-- with restrictions
+PREPARE q14 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 2,
+    FALSE
+);
+
+-- in directed graph
+-- without restrictions
+PREPARE q15 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    2, 2
+);
+
+-- in undirected graph
+-- without restrictions
+PREPARE q16 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    2, 2,
+    FALSE
+);
+
+----------------------------------------------------------------------------------------------------------------
+-- testing from an existing starting vertex in one component to an existing destination in another component
+----------------------------------------------------------------------------------------------------------------
+-- in directed graph
+-- with restrictions
+PREPARE q17 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id IN (4, 7, 17)',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 14
+);
+
+-- in undirected graph
+-- with restrictions
+PREPARE q18 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id IN (4, 7, 17)',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 14,
+    FALSE
+);
+
+-- in directed graph
+-- without restrictions
+PREPARE q19 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id IN (4, 7, 17)',
+    'SELECT * FROM restrict where id > 10',
+    2, 14
+);
+
+-- in undirected graph
+-- without restrictions
+PREPARE q20 AS
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id IN (4, 7, 17)',
+    'SELECT * FROM restrict where id > 10',
+    2, 14,
+    FALSE
+);
+
+----------------------------------------------------------------------------------------------------------------
+
+SELECT is_empty('q1');
+SELECT is_empty('q2');
+SELECT is_empty('q3');
+SELECT is_empty('q4');
+SELECT is_empty('q5');
+SELECT is_empty('q6');
+SELECT is_empty('q7');
+SELECT is_empty('q8');
+SELECT is_empty('q9');
+SELECT is_empty('q10');
+SELECT is_empty('q11');
+SELECT is_empty('q12');
+SELECT is_empty('q13');
+SELECT is_empty('q14');
+SELECT is_empty('q15');
+SELECT is_empty('q16');
+SELECT is_empty('q17');
+SELECT is_empty('q18');
+SELECT is_empty('q19');
+SELECT is_empty('q20');
+
+SELECT * FROM finish();
+ROLLBACK;
diff --git a/src/dijkstraTRSP/test/pgtap_design.result b/src/dijkstraTRSP/test/pgtap_design.result
new file mode 100644
index 0000000..4f12272
--- /dev/null
+++ b/src/dijkstraTRSP/test/pgtap_design.result
@@ -0,0 +1,196 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 3
+);
+seq | path_seq | node | edge | cost | agg_cost
+-----+----------+------+------+------+----------
+(0 rows)
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 3,
+    FALSE
+);
+seq | path_seq | node | edge | cost | agg_cost
+-----+----------+------+------+------+----------
+(0 rows)
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    2, 3
+);
+seq | path_seq | node | edge | cost | agg_cost
+-----+----------+------+------+------+----------
+(0 rows)
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    2, 3,
+    FALSE
+);
+seq | path_seq | node | edge | cost | agg_cost
+-----+----------+------+------+------+----------
+(0 rows)
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    6, 8
+);
+seq | path_seq | node | edge | cost | agg_cost
+-----+----------+------+------+------+----------
+(0 rows)
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    6, 8,
+    FALSE
+);
+seq | path_seq | node | edge | cost | agg_cost
+-----+----------+------+------+------+----------
+(0 rows)
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    6, 8
+);
+seq | path_seq | node | edge | cost | agg_cost
+-----+----------+------+------+------+----------
+(0 rows)
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    6, 8,
+    FALSE
+);
+seq | path_seq | node | edge | cost | agg_cost
+-----+----------+------+------+------+----------
+(0 rows)
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    1, 17
+);
+seq | path_seq | node | edge | cost | agg_cost
+-----+----------+------+------+------+----------
+(0 rows)
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    1, 17,
+    FALSE
+);
+seq | path_seq | node | edge | cost | agg_cost
+-----+----------+------+------+------+----------
+(0 rows)
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    1, 17
+);
+seq | path_seq | node | edge | cost | agg_cost
+-----+----------+------+------+------+----------
+(0 rows)
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    1, 17,
+    FALSE
+);
+seq | path_seq | node | edge | cost | agg_cost
+-----+----------+------+------+------+----------
+(0 rows)
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 2
+);
+seq | path_seq | node | edge | cost | agg_cost
+-----+----------+------+------+------+----------
+(0 rows)
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 2,
+    FALSE
+);
+seq | path_seq | node | edge | cost | agg_cost
+-----+----------+------+------+------+----------
+(0 rows)
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    2, 2
+);
+seq | path_seq | node | edge | cost | agg_cost
+-----+----------+------+------+------+----------
+(0 rows)
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    2, 2,
+    FALSE
+);
+seq | path_seq | node | edge | cost | agg_cost
+-----+----------+------+------+------+----------
+(0 rows)
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id IN (4, 7, 17)',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 14
+);
+seq | path_seq | node | edge | cost | agg_cost
+-----+----------+------+------+------+----------
+(0 rows)
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id IN (4, 7, 17)',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 14,
+    FALSE
+);
+seq | path_seq | node | edge | cost | agg_cost
+-----+----------+------+------+------+----------
+(0 rows)
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id IN (4, 7, 17)',
+    'SELECT * FROM restrict where id > 10',
+    2, 14
+);
+seq | path_seq | node | edge | cost | agg_cost
+-----+----------+------+------+------+----------
+(0 rows)
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id IN (4, 7, 17)',
+    'SELECT * FROM restrict where id > 10',
+    2, 14,
+    FALSE
+);
+seq | path_seq | node | edge | cost | agg_cost
+-----+----------+------+------+------+----------
+(0 rows)
+
+ROLLBACK;
+ROLLBACK
diff --git a/src/dijkstraTRSP/test/pgtap_design.test.sql b/src/dijkstraTRSP/test/pgtap_design.test.sql
new file mode 100644
index 0000000..ec5dce2
--- /dev/null
+++ b/src/dijkstraTRSP/test/pgtap_design.test.sql
@@ -0,0 +1,129 @@
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 3
+);
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 3,
+    FALSE
+);
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    2, 3
+);
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    2, 3,
+    FALSE
+);
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    6, 8
+);
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    6, 8,
+    FALSE
+);
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    6, 8
+);
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    6, 8,
+    FALSE
+);
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    1, 17
+);
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    1, 17,
+    FALSE
+);
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    1, 17
+);
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    1, 17,
+    FALSE
+);
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 2
+);
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 2,
+    FALSE
+);
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    2, 2
+);
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id = 4 OR id = 7',
+    'SELECT * FROM restrict where id > 10',
+    2, 2,
+    FALSE
+);
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id IN (4, 7, 17)',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 14
+);
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id IN (4, 7, 17)',
+    'SELECT * FROM restrict WHERE id IN (1)',
+    2, 14,
+    FALSE
+);
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id IN (4, 7, 17)',
+    'SELECT * FROM restrict where id > 10',
+    2, 14
+);
+
+SELECT * FROM pgr_dijkstraTRSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table WHERE id IN (4, 7, 17)',
+    'SELECT * FROM restrict where id > 10',
+    2, 14,
+    FALSE
+);
diff --git a/src/dijkstraTRSP/test/test.conf b/src/dijkstraTRSP/test/test.conf
new file mode 100644
index 0000000..8bcc0ec
--- /dev/null
+++ b/src/dijkstraTRSP/test/test.conf
@@ -0,0 +1,16 @@
+#!/usr/bin/perl -w
+
+%main::tests = (
+    'any' => {
+        'comment' => 'Dijkstra test for any versions.',
+        'data' => [ ],
+        'tests' => [qw(
+            )],
+        'documentation' => [qw(
+            doc-dijkstraTRSP
+            )]
+    },
+
+);
+
+1;
diff --git a/src/driving_distance/doc/doc-pgr_drivingDistance.queries b/src/driving_distance/doc/doc-pgr_drivingDistance.queries
deleted file mode 100644
index b23f5be..0000000
--- a/src/driving_distance/doc/doc-pgr_drivingDistance.queries
+++ /dev/null
@@ -1,339 +0,0 @@
-BEGIN;
-BEGIN
-SET client_min_messages TO NOTICE;
-SET
---q1
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-
-
-
-
-SELECT * FROM pgr_drivingDistance(
-        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-        2, 3
-      );
- seq | node | edge | cost | agg_cost 
------+------+------+------+----------
-   1 |    2 |   -1 |    0 |        0
-   2 |    1 |    1 |    1 |        1
-   3 |    5 |    4 |    1 |        1
-   4 |    6 |    8 |    1 |        2
-   5 |    8 |    7 |    1 |        2
-   6 |   10 |   10 |    1 |        2
-   7 |    7 |    6 |    1 |        3
-   8 |    9 |    9 |    1 |        3
-   9 |   11 |   12 |    1 |        3
-  10 |   13 |   14 |    1 |        3
-(10 rows)
-
-SELECT * FROM pgr_drivingDistance(
-        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-        13, 3
-      );
- seq | node | edge | cost | agg_cost 
------+------+------+------+----------
-   1 |   13 |   -1 |    0 |        0
-   2 |   10 |   14 |    1 |        1
-   3 |    5 |   10 |    1 |        2
-   4 |   11 |   12 |    1 |        2
-   5 |    2 |    4 |    1 |        3
-   6 |    6 |    8 |    1 |        3
-   7 |    8 |    7 |    1 |        3
-   8 |   12 |   13 |    1 |        3
-(8 rows)
-
-SELECT * FROM pgr_drivingDistance(
-        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-        array[2,13], 3
-      );
- seq | from_v | node | edge | cost | agg_cost 
------+--------+------+------+------+----------
-   1 |      2 |    2 |   -1 |    0 |        0
-   2 |      2 |    1 |    1 |    1 |        1
-   3 |      2 |    5 |    4 |    1 |        1
-   4 |      2 |    6 |    8 |    1 |        2
-   5 |      2 |    8 |    7 |    1 |        2
-   6 |      2 |   10 |   10 |    1 |        2
-   7 |      2 |    7 |    6 |    1 |        3
-   8 |      2 |    9 |    9 |    1 |        3
-   9 |      2 |   11 |   12 |    1 |        3
-  10 |      2 |   13 |   14 |    1 |        3
-  11 |     13 |   13 |   -1 |    0 |        0
-  12 |     13 |   10 |   14 |    1 |        1
-  13 |     13 |    5 |   10 |    1 |        2
-  14 |     13 |   11 |   12 |    1 |        2
-  15 |     13 |    2 |    4 |    1 |        3
-  16 |     13 |    6 |    8 |    1 |        3
-  17 |     13 |    8 |    7 |    1 |        3
-  18 |     13 |   12 |   13 |    1 |        3
-(18 rows)
-
-SELECT * FROM pgr_drivingDistance(
-        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-        array[2,13], 3, equicost:=true
-      );
- seq | from_v | node | edge | cost | agg_cost 
------+--------+------+------+------+----------
-   1 |      2 |    2 |   -1 |    0 |        0
-   2 |      2 |    1 |    1 |    1 |        1
-   3 |      2 |    5 |    4 |    1 |        1
-   4 |      2 |    6 |    8 |    1 |        2
-   5 |      2 |    8 |    7 |    1 |        2
-   6 |      2 |    7 |    6 |    1 |        3
-   7 |      2 |    9 |    9 |    1 |        3
-   8 |     13 |   13 |   -1 |    0 |        0
-   9 |     13 |   10 |   14 |    1 |        1
-  10 |     13 |   11 |   12 |    1 |        2
-  11 |     13 |   12 |   13 |    1 |        3
-(11 rows)
-
---q2
-SELECT * FROM pgr_drivingDistance(
-        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-        2, 3, false
-      );
- seq | node | edge | cost | agg_cost 
------+------+------+------+----------
-   1 |    2 |   -1 |    0 |        0
-   2 |    1 |    1 |    1 |        1
-   3 |    3 |    2 |    1 |        1
-   4 |    5 |    4 |    1 |        1
-   5 |    4 |    3 |    1 |        2
-   6 |    6 |    8 |    1 |        2
-   7 |    8 |    7 |    1 |        2
-   8 |   10 |   10 |    1 |        2
-   9 |    7 |    6 |    1 |        3
-  10 |    9 |   16 |    1 |        3
-  11 |   11 |   12 |    1 |        3
-  12 |   13 |   14 |    1 |        3
-(12 rows)
-
-SELECT * FROM pgr_drivingDistance(
-        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-        13, 3, false
-      );
- seq | node | edge | cost | agg_cost 
------+------+------+------+----------
-   1 |   13 |   -1 |    0 |        0
-   2 |   10 |   14 |    1 |        1
-   3 |    5 |   10 |    1 |        2
-   4 |   11 |   12 |    1 |        2
-   5 |    2 |    4 |    1 |        3
-   6 |    6 |    8 |    1 |        3
-   7 |    8 |    7 |    1 |        3
-   8 |   12 |   13 |    1 |        3
-(8 rows)
-
-SELECT * FROM pgr_drivingDistance(
-        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-        array[2,13], 3, false
-      );
- seq | from_v | node | edge | cost | agg_cost 
------+--------+------+------+------+----------
-   1 |      2 |    2 |   -1 |    0 |        0
-   2 |      2 |    1 |    1 |    1 |        1
-   3 |      2 |    3 |    2 |    1 |        1
-   4 |      2 |    5 |    4 |    1 |        1
-   5 |      2 |    4 |    3 |    1 |        2
-   6 |      2 |    6 |    8 |    1 |        2
-   7 |      2 |    8 |    7 |    1 |        2
-   8 |      2 |   10 |   10 |    1 |        2
-   9 |      2 |    7 |    6 |    1 |        3
-  10 |      2 |    9 |   16 |    1 |        3
-  11 |      2 |   11 |   12 |    1 |        3
-  12 |      2 |   13 |   14 |    1 |        3
-  13 |     13 |   13 |   -1 |    0 |        0
-  14 |     13 |   10 |   14 |    1 |        1
-  15 |     13 |    5 |   10 |    1 |        2
-  16 |     13 |   11 |   12 |    1 |        2
-  17 |     13 |    2 |    4 |    1 |        3
-  18 |     13 |    6 |    8 |    1 |        3
-  19 |     13 |    8 |    7 |    1 |        3
-  20 |     13 |   12 |   13 |    1 |        3
-(20 rows)
-
-SELECT * FROM pgr_drivingDistance(
-        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-        array[2,13], 3, false, equicost:=true
-      );
- seq | from_v | node | edge | cost | agg_cost 
------+--------+------+------+------+----------
-   1 |      2 |    2 |   -1 |    0 |        0
-   2 |      2 |    1 |    1 |    1 |        1
-   3 |      2 |    3 |    2 |    1 |        1
-   4 |      2 |    5 |    4 |    1 |        1
-   5 |      2 |    4 |    3 |    1 |        2
-   6 |      2 |    6 |    8 |    1 |        2
-   7 |      2 |    8 |    7 |    1 |        2
-   8 |      2 |    7 |    6 |    1 |        3
-   9 |      2 |    9 |   16 |    1 |        3
-  10 |     13 |   13 |   -1 |    0 |        0
-  11 |     13 |   10 |   14 |    1 |        1
-  12 |     13 |   11 |   12 |    1 |        2
-  13 |     13 |   12 |   13 |    1 |        3
-(13 rows)
-
---q3
-SELECT * FROM pgr_drivingDistance(
-        'SELECT id, source, target, cost FROM edge_table',
-        2, 3
-      );
- seq | node | edge | cost | agg_cost 
------+------+------+------+----------
-   1 |    2 |   -1 |    0 |        0
-   2 |    5 |    4 |    1 |        1
-   3 |    6 |    8 |    1 |        2
-   4 |   10 |   10 |    1 |        2
-   5 |    9 |    9 |    1 |        3
-   6 |   11 |   11 |    1 |        3
-   7 |   13 |   14 |    1 |        3
-(7 rows)
-
-SELECT * FROM pgr_drivingDistance(
-        'SELECT id, source, target, cost FROM edge_table',
-        13, 3
-      );
- seq | node | edge | cost | agg_cost 
------+------+------+------+----------
-   1 |   13 |   -1 |    0 |        0
-(1 row)
-
-SELECT * FROM pgr_drivingDistance(
-        'SELECT id, source, target, cost FROM edge_table',
-        array[2,13], 3
-      );
- seq | from_v | node | edge | cost | agg_cost 
------+--------+------+------+------+----------
-   1 |      2 |    2 |   -1 |    0 |        0
-   2 |      2 |    5 |    4 |    1 |        1
-   3 |      2 |    6 |    8 |    1 |        2
-   4 |      2 |   10 |   10 |    1 |        2
-   5 |      2 |    9 |    9 |    1 |        3
-   6 |      2 |   11 |   11 |    1 |        3
-   7 |      2 |   13 |   14 |    1 |        3
-   8 |     13 |   13 |   -1 |    0 |        0
-(8 rows)
-
-SELECT * FROM pgr_drivingDistance(
-        'SELECT id, source, target, cost FROM edge_table',
-        array[2,13], 3, equicost:=true
-      );
- seq | from_v | node | edge | cost | agg_cost 
------+--------+------+------+------+----------
-   1 |      2 |    2 |   -1 |    0 |        0
-   2 |      2 |    5 |    4 |    1 |        1
-   3 |      2 |    6 |    8 |    1 |        2
-   4 |      2 |   10 |   10 |    1 |        2
-   5 |      2 |    9 |    9 |    1 |        3
-   6 |      2 |   11 |   11 |    1 |        3
-   7 |     13 |   13 |   -1 |    0 |        0
-(7 rows)
-
---q4
-SELECT * FROM pgr_drivingDistance(
-        'SELECT id, source, target, cost FROM edge_table',
-        2, 3, false
-      );
- seq | node | edge | cost | agg_cost 
------+------+------+------+----------
-   1 |    2 |   -1 |    0 |        0
-   2 |    1 |    1 |    1 |        1
-   3 |    5 |    4 |    1 |        1
-   4 |    6 |    8 |    1 |        2
-   5 |    8 |    7 |    1 |        2
-   6 |   10 |   10 |    1 |        2
-   7 |    3 |    5 |    1 |        3
-   8 |    7 |    6 |    1 |        3
-   9 |    9 |    9 |    1 |        3
-  10 |   11 |   12 |    1 |        3
-  11 |   13 |   14 |    1 |        3
-(11 rows)
-
-SELECT * FROM pgr_drivingDistance(
-        'SELECT id, source, target, cost FROM edge_table',
-        13, 3, false
-      );
- seq | node | edge | cost | agg_cost 
------+------+------+------+----------
-   1 |   13 |   -1 |    0 |        0
-   2 |   10 |   14 |    1 |        1
-   3 |    5 |   10 |    1 |        2
-   4 |   11 |   12 |    1 |        2
-   5 |    2 |    4 |    1 |        3
-   6 |    6 |    8 |    1 |        3
-   7 |    8 |    7 |    1 |        3
-   8 |   12 |   13 |    1 |        3
-(8 rows)
-
-SELECT * FROM pgr_drivingDistance(
-        'SELECT id, source, target, cost FROM edge_table',
-        array[2,13], 3, false
-      );
- seq | from_v | node | edge | cost | agg_cost 
------+--------+------+------+------+----------
-   1 |      2 |    2 |   -1 |    0 |        0
-   2 |      2 |    1 |    1 |    1 |        1
-   3 |      2 |    5 |    4 |    1 |        1
-   4 |      2 |    6 |    8 |    1 |        2
-   5 |      2 |    8 |    7 |    1 |        2
-   6 |      2 |   10 |   10 |    1 |        2
-   7 |      2 |    3 |    5 |    1 |        3
-   8 |      2 |    7 |    6 |    1 |        3
-   9 |      2 |    9 |    9 |    1 |        3
-  10 |      2 |   11 |   12 |    1 |        3
-  11 |      2 |   13 |   14 |    1 |        3
-  12 |     13 |   13 |   -1 |    0 |        0
-  13 |     13 |   10 |   14 |    1 |        1
-  14 |     13 |    5 |   10 |    1 |        2
-  15 |     13 |   11 |   12 |    1 |        2
-  16 |     13 |    2 |    4 |    1 |        3
-  17 |     13 |    6 |    8 |    1 |        3
-  18 |     13 |    8 |    7 |    1 |        3
-  19 |     13 |   12 |   13 |    1 |        3
-(19 rows)
-
-SELECT * FROM pgr_drivingDistance(
-        'SELECT id, source, target, cost FROM edge_table',
-        array[2,13], 3, false, equicost:=true
-      );
- seq | from_v | node | edge | cost | agg_cost 
------+--------+------+------+------+----------
-   1 |      2 |    2 |   -1 |    0 |        0
-   2 |      2 |    1 |    1 |    1 |        1
-   3 |      2 |    5 |    4 |    1 |        1
-   4 |      2 |    6 |    8 |    1 |        2
-   5 |      2 |    8 |    7 |    1 |        2
-   6 |      2 |    3 |    5 |    1 |        3
-   7 |      2 |    7 |    6 |    1 |        3
-   8 |      2 |    9 |    9 |    1 |        3
-   9 |     13 |   13 |   -1 |    0 |        0
-  10 |     13 |   10 |   14 |    1 |        1
-  11 |     13 |   11 |   12 |    1 |        2
-  12 |     13 |   12 |   13 |    1 |        3
-(12 rows)
-
---q5
-ROLLBACK;
-ROLLBACK
diff --git a/src/driving_distance/doc/doc-pgr_drivingdistance-v2.queries b/src/driving_distance/doc/doc-pgr_drivingdistance-v2.queries
deleted file mode 100644
index ef22884..0000000
--- a/src/driving_distance/doc/doc-pgr_drivingdistance-v2.queries
+++ /dev/null
@@ -1,32 +0,0 @@
-BEGIN;
-BEGIN
-SET client_min_messages TO NOTICE;
-SET
-SET client_min_messages TO NOTICE;
-SET
---q1
-SELECT * FROM pgr_drivingDistance(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost FROM edge_table',
-    7, 1.5, false, false
-) ;
-NOTICE:  Deprecated function
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |   7 |  -1 |    0
-   1 |   8 |   6 |    1
-(2 rows)
-
-SELECT * FROM pgr_drivingDistance(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
-    7, 1.5, true, true
-) ;
-NOTICE:  Deprecated function
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |   7 |  -1 |    0
-   1 |   8 |   6 |    1
-(2 rows)
-
---q2
-ROLLBACK;
-ROLLBACK
diff --git a/src/driving_distance/doc/drivingDistance-category.rst b/src/driving_distance/doc/drivingDistance-category.rst
deleted file mode 100644
index 460992e..0000000
--- a/src/driving_distance/doc/drivingDistance-category.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-
-.. _drivingDistance:
-
-Driving Distance - Category
-===============================================================================
-
-.. index from here
-
-* :ref:`pgr_drivingDistance` - Driving Distance based on pgr_dijkstra
-* :ref:`pgr_withPointsDD` - Driving Distance based on pgr_withPoints
-* Post pocessing
-
-  * :ref:`pgr_alphaShape` - Alpha shape computation
-  * :ref:`pgr_points_as_polygon` - Polygon around set of points
-
-.. index to here
-
-
-.. toctree::
-    :hidden:
-
-    pgr_alphaShape.rst
-    pgr_pointsAsPolygon.rst
-
diff --git a/src/driving_distance/doc/pgr_drivingDistance.rst b/src/driving_distance/doc/pgr_drivingDistance.rst
deleted file mode 100644
index ce9f63b..0000000
--- a/src/driving_distance/doc/pgr_drivingDistance.rst
+++ /dev/null
@@ -1,186 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_drivingDistance:
-
-pgr_drivingDistance
-===============================================================================
-
-
-Name
--------------------------------------------------------------------------------
-
-``pgr_drivingDistance`` - Returns the driving distance from a start node.
-
-
-.. figure:: images/boost-inside.jpeg
-   :target: http://www.boost.org/libs/graph
-
-   Boost Graph Inside
-
-.. rubric:: Availability
-
-* pgr_drivingDistance(single vertex) 2.0.0, signature change 2.1.0
-* pgr_drivingDistance(multiple vertices) 2.1.0
-
-
-Synopsis
--------------------------------------------------------------------------------
-
-Using Dijkstra algorithm, extracts all the nodes that have costs less than or equal to the value ``distance``.
-The edges extracted will conform the corresponding spanning tree.
-
-Signature Summary
--------------------------------------------------------------------------------
-
-.. code-block:: sql
-
-    pgr_drivingDistance(edges_sql, start_vid, distance)
-    pgr_drivingDistance(edges_sql, start_vid, distance, directed)
-    pgr_drivingDistance(edges_sql, start_vids, distance, directed, equicost)
-
-    RETURNS SET OF (seq, [start_vid,] node, edge, cost, agg_cost)
-
-
-Signatures
--------------------------------------------------------------------------------
-
-.. index::
-	single: drivingDistance(Minimal Use)
-
-Minimal Use
-...................
-
-.. code-block:: sql
-
-    pgr_drivingDistance(edges_sql, start_vid, distance)
-    RETURNS SET OF (seq, node, edge, cost, agg_cost)
-
-
-
-.. index::
-	single: drivingDistance(Single Start Vertex)
-
-Driving Distance From A Single Starting Vertex
-..............................................
-
-.. code-block:: sql
-
-    pgr_drivingDistance(edges_sql, start_vid, distance, directed)
-    RETURNS SET OF (seq, node, edge, cost, agg_cost)
-
-
-.. index::
-	single: drivingDistance(Multiple Starting Vertices)
-
-Driving Distance From Multiple Starting Vertices
-.................................................
-
-.. code-block:: sql
-
-    pgr_drivingDistance(edges_sql, start_vids, distance, directed, equicost)
-    RETURNS SET OF (seq, start_vid, node, edge, cost, agg_cost)
-
-Description of the Signatures
--------------------------------------------------------------------------------
-
-.. include:: pgRouting-concepts.rst
-    :start-after: basic_edges_sql_start
-    :end-before: basic_edges_sql_end
-
-
-Description of the parameters of the signatures
-.................................................
-
-============== ====================== =================================================
-Column          Type                  Description
-============== ====================== =================================================
-**edges_sql**  ``TEXT``               SQL query as described above.
-**start_vid**  ``BIGINT``             Identifier of the starting vertex.
-**start_vids** ``ARRAY[ANY-INTEGER]`` Array of identifiers of starting vertices.
-**distance**   ``FLOAT``              Upper limit for the inclusion of the node in the result.
-**directed**   ``BOOLEAN``            (optional). When ``false`` the graph is considered as Undirected. Default is ``true`` which considers the graph as Directed.
-**equicost**   ``BOOLEAN``            (optional). When ``true`` the node will only appear in the closest ``start_vid`` list.  Default is ``false`` which resembles several calls using the single starting point signatures. Tie brakes are arbitrarely.
-============== ====================== =================================================
-
-
-
-Description of the return values
-.................................................
-
-Returns set of ``(seq [, start_v], node, edge, cost, agg_cost)``
-
-============== =========== =================================================
-Column         Type        Description
-============== =========== =================================================
-**seq**        ``INTEGER`` Sequential value starting from **1**.
-**start_vid**  ``INTEGER`` Identifier of the starting vertex.
-**node**       ``BIGINT``  Identifier of the node in the path within the limits from ``start_vid``.
-**edge**       ``BIGINT``  Identifier of the edge used to arrive to ``node``. ``0`` when the ``node`` is the ``start_vid``.
-**cost**       ``FLOAT``   Cost to traverse ``edge``.
-**agg_cost**   ``FLOAT``   Aggregate cost from ``start_vid`` to ``node``.
-============== =========== =================================================
-
-
-
-Additional Examples
--------------------------------------------------------------------------------
-
-Examples for queries marked as ``directed`` with ``cost`` and ``reverse_cost`` columns
-................................................................................................
-
-The examples in this section use the following :ref:`fig1`
-
-.. literalinclude:: doc-pgr_drivingDistance.queries
-   :start-after: --q1
-   :end-before: --q2
-
-Examples for queries marked as ``undirected`` with ``cost`` and ``reverse_cost`` columns
-................................................................................................
-
-The examples in this section use the following :ref:`fig2`
-
-
-.. literalinclude:: doc-pgr_drivingDistance.queries
-   :start-after: --q2
-   :end-before: --q3
-
-Examples for queries marked as ``directed`` with ``cost`` column
-......................................................................................
-
-The examples in this section use the following :ref:`fig3`
-
-.. literalinclude:: doc-pgr_drivingDistance.queries
-   :start-after: --q3
-   :end-before: --q4
-
-
-
-Examples for queries marked as ``undirected`` with ``cost`` column
-......................................................................................
-
-The examples in this section use the following :ref:`fig4`
-
-.. literalinclude:: doc-pgr_drivingDistance.queries
-   :start-after: --q4
-   :end-before: --q5
-
-
-See Also
--------------------------------------------------------------------------------
-
-* :ref:`pgr_alphashape` - Alpha shape computation
-* :ref:`pgr_points_as_polygon` - Polygon around set of points
-* :ref:`sampledata` network.
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
-
diff --git a/src/driving_distance/sql/CMakeLists.txt b/src/driving_distance/sql/CMakeLists.txt
deleted file mode 100644
index 7f05fe3..0000000
--- a/src/driving_distance/sql/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-# Append in local scope
-LIST(APPEND PACKAGE_SQL_FILES
-    ${CMAKE_CURRENT_SOURCE_DIR}/withPoints_dd.sql
-    ${CMAKE_CURRENT_SOURCE_DIR}/routing_dd.sql)
-
-# set in parent scope
-SET(PACKAGE_SQL_FILES "${PACKAGE_SQL_FILES}" PARENT_SCOPE)
diff --git a/src/driving_distance/sql/routing_dd.sql b/src/driving_distance/sql/routing_dd.sql
deleted file mode 100644
index 32e8012..0000000
--- a/src/driving_distance/sql/routing_dd.sql
+++ /dev/null
@@ -1,95 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-CREATE OR REPLACE FUNCTION pgr_drivingDistance(
-    edges_sql text,
-    start_vids anyarray,
-    distance FLOAT,
-    directed BOOLEAN DEFAULT TRUE,
-    equicost BOOLEAN DEFAULT FALSE,
-    OUT seq integer,
-    OUT from_v  bigint,
-    OUT node bigint,
-    OUT edge bigint,
-    OUT cost FLOAT,
-    OUT agg_cost FLOAT)
-  RETURNS SETOF RECORD AS
-     '$libdir/${PGROUTING_LIBRARY_NAME}', 'driving_many_to_dist'
- LANGUAGE c VOLATILE STRICT;
-
-
-CREATE OR REPLACE FUNCTION pgr_drivingDistance(
-    edges_sql text,
-    start_vid bigint,
-    distance FLOAT8,
-    directed BOOLEAN DEFAULT TRUE,
-    OUT seq integer,
-    OUT node bigint,
-    OUT edge bigint,
-    OUT cost FLOAT,
-    OUT agg_cost FLOAT)
-  RETURNS SETOF RECORD AS
-$BODY$
-    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
-    FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false) a;
-$BODY$
-LANGUAGE SQL VOLATILE
-COST 100
-ROWS 1000;
-
-
-
--- OLD SIGNATURE
-CREATE OR REPLACE FUNCTION pgr_drivingDistance(edges_sql text, source bigint, distance FLOAT8, directed BOOLEAN, has_rcost BOOLEAN)
-  RETURNS SETOF pgr_costresult AS
-  $BODY$
-  DECLARE
-  has_reverse BOOLEAN;
-  sql TEXT;
-  BEGIN
-      RAISE NOTICE 'Deprecated function';
-
-      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, FALSE);
-
-      sql = edges_sql;
-      IF (has_reverse != has_rcost) THEN
-         IF (has_reverse) THEN 
-             -- the user says it doesn't have reverse cost but its false
-             -- removing from query
-             RAISE NOTICE 'Contradiction found: has_rcost set to false but reverse_cost column found';
-             sql = 'SELECT id, source, target, cost, -1 as reverse_cost FROM (' || edges_sql || ') __q ';
-         ELSE
-             -- the user says it has reverse cost but its false
-             -- can't do anything
-             RAISE EXCEPTION 'has_rcost set to true but reverse_cost not found';
-         END IF;
-      END IF;
-
-      RETURN query SELECT seq - 1 AS seq, node::integer AS id1, edge::integer AS id2, agg_cost AS cost
-                FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false);
-  END
-  $BODY$
-  LANGUAGE plpgsql VOLATILE
-  COST 100
-  ROWS 1000;
-
diff --git a/src/driving_distance/sql/withPoints_dd.sql b/src/driving_distance/sql/withPoints_dd.sql
deleted file mode 100644
index 25b0807..0000000
--- a/src/driving_distance/sql/withPoints_dd.sql
+++ /dev/null
@@ -1,71 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: withPoints_dd.sql
-
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-CREATE OR REPLACE FUNCTION pgr_withPointsDD(
-    edges_sql TEXT,
-    points_sql TEXT,
-    start_pid ANYARRAY,
-    distance FLOAT,
-
-    directed BOOLEAN DEFAULT TRUE,
-    driving_side CHAR DEFAULT 'b', 
-    details BOOLEAN DEFAULT FALSE, 
-    equicost BOOLEAN DEFAULT FALSE, 
-
-    OUT seq INTEGER,
-    OUT start_vid BIGINT,
-    OUT node BIGINT,
-    OUT edge BIGINT,
-    OUT cost FLOAT,
-    OUT agg_cost FLOAT)
-  RETURNS SETOF RECORD AS
-     '$libdir/${PGROUTING_LIBRARY_NAME}', 'many_withPointsDD'
- LANGUAGE c VOLATILE STRICT;
-
-
-CREATE OR REPLACE FUNCTION pgr_withPointsDD(
-    edges_sql TEXT,
-    points_sql TEXT,
-    start_pid BIGINT,
-    distance FLOAT,
-
-    directed BOOLEAN DEFAULT TRUE,
-    driving_side CHAR DEFAULT 'b', 
-    details BOOLEAN DEFAULT FALSE, 
-
-    OUT seq INTEGER,
-    OUT node BIGINT,
-    OUT edge BIGINT,
-    OUT cost FLOAT,
-    OUT agg_cost FLOAT)
-  RETURNS SETOF RECORD AS
-$BODY$
-    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
-    FROM pgr_withPointsDD($1, $2, ARRAY[$3]::BIGINT[], $4, $5, $6, $7, false) a;
-$BODY$
-LANGUAGE SQL VOLATILE
-COST 100
-ROWS 1000;
-
-
diff --git a/src/driving_distance/src/drivedist_driver.cpp b/src/driving_distance/src/drivedist_driver.cpp
index 442d8d3..e38ceb9 100644
--- a/src/driving_distance/src/drivedist_driver.cpp
+++ b/src/driving_distance/src/drivedist_driver.cpp
@@ -22,20 +22,61 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
  ********************************************************************PGR-GNU*/
 
-#include "./drivedist_driver.h"
+#include "drivers/driving_distance/drivedist_driver.h"
 
 #include <sstream>
 #include <deque>
 #include <vector>
 
-#include "./../../dijkstra/src/pgr_dijkstra.hpp"
+#include "dijkstra/pgr_dijkstra.hpp"
 
-#include "../../common/src/pgr_alloc.hpp"
-#include "./../../common/src/pgr_assert.h"
-#include "./../../common/src/pgr_types.h"
+#include "cpp_common/pgr_alloc.hpp"
+#include "cpp_common/pgr_assert.h"
 
+#undef WITH_TIME
+#ifdef WITH_TIME
+#include <ctime>
+#include <chrono>
 
+static
+void
+start_timing(
+        std::time_t &start_t,
+        std::chrono::steady_clock::time_point &begin_elapsed,
+        clock_t &begin) {
+    begin = clock();
+    start_t = std::time(NULL);
+    begin_elapsed = std::chrono::steady_clock::now();
+}
 
+static
+void
+end_timing(
+        const std::time_t start_t,
+        std::chrono::steady_clock::time_point& begin_elapsed,
+        clock_t &begin,
+        std::ostringstream &log) {
+    clock_t end = clock();
+    double elapsed_secs =
+        static_cast<double>(end - begin)
+        / static_cast<double>(CLOCKS_PER_SEC);
+
+    std::time_t end_t = std::time(NULL);
+    std::chrono::steady_clock::time_point end_elapsed =
+        std::chrono::steady_clock::now();
+
+    typedef std::chrono::duration<int, std::milli> millisecs_t;
+    millisecs_t duration = std::chrono::duration_cast<millisecs_t>(
+            end_elapsed - begin_elapsed);
+
+    log << "Execution started at: " << std::ctime(&start_t);
+    log << "Execution ended at:   " << std::ctime(&end_t);
+    log << "Elapsed time: "
+        << static_cast<double>(duration.count())/static_cast<double>(1000)
+        << " Seconds.\n";
+    log << "User CPU time: -> " << elapsed_secs << " seconds\n";
+}
+#endif
 
 void
 do_pgr_driving_many_to_dist(
@@ -66,23 +107,78 @@ do_pgr_driving_many_to_dist(
         std::deque<Path> paths;
         std::vector<int64_t> start_vertices(start_vertex, start_vertex + s_len);
 
+        auto vertices(pgrouting::extract_vertices(data_edges, total_edges));
+
+#ifdef WITH_TIME
+        clock_t begin;
+        std::time_t start_t;
+        std::chrono::steady_clock::time_point begin_elapsed;
+#endif
+
         if (directedFlag) {
-            pgrouting::DirectedGraph digraph(gType);
-            digraph.insert_edges(data_edges, total_edges);
+#ifdef WITH_TIME
+            start_timing(start_t, begin_elapsed, begin);
+            log << "*********Creating graph at time: " << std::ctime(&start_t) << "\n";
+#endif
+            pgrouting::DirectedGraph digraph(vertices, gType);
+#ifdef WITH_TIME
+            end_timing(start_t, begin_elapsed, begin, log);
+#endif
+
+#ifdef WITH_TIME
+            start_timing(start_t, begin_elapsed, begin);
+            log << "********Inserting edges at time: " << std::ctime(&start_t) << "\n";
+#endif
+            digraph.insert_edges(data_edges, total_edges, true);
+#ifdef WITH_TIME
+            end_timing(start_t, begin_elapsed, begin, log);
+#endif
+
+#ifdef WITH_TIME
+            start_timing(start_t, begin_elapsed, begin);
+            log << "*******Calling the C++ call to pgr_drivingDistance: " << std::ctime(&start_t) << "\n";
+#endif
             paths = pgr_drivingDistance(
-                    digraph, start_vertices, distance, equiCostFlag);
+                    digraph, start_vertices, distance, equiCostFlag, log);
+#ifdef WITH_TIME
+            end_timing(start_t, begin_elapsed, begin, log);
+#endif
         } else {
-            pgrouting::UndirectedGraph undigraph(gType);
-            undigraph.insert_edges(data_edges, total_edges);
+#ifdef WITH_TIME
+            start_timing(start_t, begin_elapsed, begin);
+            log << "******Creating graph at time: " << std::ctime(&start_t) << "\n";
+#endif
+            pgrouting::UndirectedGraph undigraph(vertices, gType);
+#ifdef WITH_TIME
+            end_timing(start_t, begin_elapsed, begin, log);
+#endif
+
+#ifdef WITH_TIME
+            start_timing(start_t, begin_elapsed, begin);
+            log << "*******Inserting edges at time: " << std::ctime(&start_t) << "\n";
+#endif
+            undigraph.insert_edges(data_edges, total_edges, true);
+#ifdef WITH_TIME
+            end_timing(start_t, begin_elapsed, begin, log);
+#endif
+
+#ifdef WITH_TIME
+            start_timing(start_t, begin_elapsed, begin);
+            log << "*******Calling the C++ call to pgr_drivingDistance: " << std::ctime(&start_t) << "\n";
+#endif
             paths = pgr_drivingDistance(
-                    undigraph, start_vertices, distance, equiCostFlag);
+                    undigraph, start_vertices, distance, equiCostFlag, log);
+#ifdef WITH_TIME
+            end_timing(start_t, begin_elapsed, begin, log);
+#endif
         }
 
         size_t count(count_tuples(paths));
 
 
         if (count == 0) {
-            *notice_msg = pgr_msg("No return values was found");
+            log << "\nNo return values were found";
+            *notice_msg = pgr_msg(log.str().c_str());
             return;
         }
         *return_tuples = pgr_alloc(count, (*return_tuples));
@@ -108,7 +204,7 @@ do_pgr_driving_many_to_dist(
         err << except.what();
         *err_msg = pgr_msg(err.str().c_str());
         *log_msg = pgr_msg(log.str().c_str());
-    } catch(...) {
+    } catch( ... ) {
         (*return_tuples) = pgr_free(*return_tuples);
         (*return_count) = 0;
         err << "Caught unknown exception!";
diff --git a/src/driving_distance/src/drivedist_driver.h b/src/driving_distance/src/drivedist_driver.h
deleted file mode 100644
index 0162127..0000000
--- a/src/driving_distance/src/drivedist_driver.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: boost_interface_drivedist.h
-
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifndef SRC_DRIVING_DISTANCE_SRC_DRIVEDIST_DRIVER_H_
-#define SRC_DRIVING_DISTANCE_SRC_DRIVEDIST_DRIVER_H_
-
-#include "./../../common/src/pgr_types.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-    void do_pgr_driving_many_to_dist(
-            pgr_edge_t* edges, size_t total_edges,
-            int64_t* start_vertex, size_t s_len,
-            double distance,
-            bool directed,
-            bool equicost,
-            General_path_element_t** return_tuples, size_t* return_count,
-            char **log_msg,
-            char **notice_msg,
-            char **err_msg);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif  // SRC_DRIVING_DISTANCE_SRC_DRIVEDIST_DRIVER_H_
diff --git a/src/driving_distance/src/many_to_dist_driving_distance.c b/src/driving_distance/src/many_to_dist_driving_distance.c
index 4dec43b..f47023a 100644
--- a/src/driving_distance/src/many_to_dist_driving_distance.c
+++ b/src/driving_distance/src/many_to_dist_driving_distance.c
@@ -22,16 +22,16 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
  ********************************************************************PGR-GNU*/
 
-#include "./../../common/src/postgres_connection.h"
+#include "c_common/postgres_connection.h"
 #include "utils/array.h"
 
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/e_report.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/edges_input.h"
-#include "./../../common/src/arrays_input.h"
-#include "./drivedist_driver.h"
+#include "c_common/debug_macro.h"
+#include "c_common/e_report.h"
+#include "c_common/time_msg.h"
+
+#include "c_common/edges_input.h"
+#include "c_common/arrays_input.h"
+#include "drivers/driving_distance/drivedist_driver.h"
 
 
 PGDLLEXPORT Datum driving_many_to_dist(PG_FUNCTION_ARGS);
diff --git a/src/driving_distance/src/many_to_dist_withPointsDD.c b/src/driving_distance/src/many_to_dist_withPointsDD.c
index 69d68d5..c67727f 100644
--- a/src/driving_distance/src/many_to_dist_withPointsDD.c
+++ b/src/driving_distance/src/many_to_dist_withPointsDD.c
@@ -22,18 +22,19 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#include "./../../common/src/postgres_connection.h"
+#include "c_common/postgres_connection.h"
 #include "utils/array.h"
 
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/e_report.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/edges_input.h"
-#include "./../../common/src/arrays_input.h"
-#include "./../../common/src/points_input.h"
-#include "./../../withPoints/src/get_new_queries.h"
-#include "./withPoints_dd_driver.h"
+#include "c_common/debug_macro.h"
+#include "c_common/e_report.h"
+#include "c_common/time_msg.h"
+
+#include "c_common/edges_input.h"
+#include "c_common/arrays_input.h"
+#include "c_common/points_input.h"
+
+#include "drivers/withPoints/get_new_queries.h"
+#include "drivers/driving_distance/withPoints_dd_driver.h"
 
 
 PGDLLEXPORT Datum many_withPointsDD(PG_FUNCTION_ARGS);
diff --git a/src/driving_distance/src/withPoints_dd_driver.cpp b/src/driving_distance/src/withPoints_dd_driver.cpp
index 05cd363..f6aabe4 100644
--- a/src/driving_distance/src/withPoints_dd_driver.cpp
+++ b/src/driving_distance/src/withPoints_dd_driver.cpp
@@ -28,19 +28,18 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 ********************************************************************PGR-GNU*/
 
 
-#include "./withPoints_dd_driver.h"
+#include "drivers/driving_distance/withPoints_dd_driver.h"
 
 #include <sstream>
 #include <deque>
 #include <vector>
 #include <algorithm>
 
-#include "./../../dijkstra/src/pgr_dijkstra.hpp"
+#include "dijkstra/pgr_dijkstra.hpp"
 #include "./../../withPoints/src/pgr_withPoints.hpp"
 
 
-#include "./../../common/src/pgr_alloc.hpp"
-#include "./../../common/src/pgr_types.h"
+#include "cpp_common/pgr_alloc.hpp"
 
 
 /**********************************************************************/
@@ -131,13 +130,13 @@ do_pgr_many_withPointsDD(
             digraph.insert_edges(edges, total_edges);
             digraph.insert_edges(new_edges);
             paths = pgr_drivingDistance(
-                    digraph, start_vids, distance, equiCost);
+                    digraph, start_vids, distance, equiCost, log);
         } else {
             pgrouting::UndirectedGraph undigraph(gType);
             undigraph.insert_edges(edges, total_edges);
             undigraph.insert_edges(new_edges);
             paths = pgr_drivingDistance(
-                    undigraph, start_vids, distance, equiCost);
+                    undigraph, start_vids, distance, equiCost, log);
         }
 
         for (auto &path : paths) {
diff --git a/src/driving_distance/src/withPoints_dd_driver.h b/src/driving_distance/src/withPoints_dd_driver.h
deleted file mode 100644
index 4738109..0000000
--- a/src/driving_distance/src/withPoints_dd_driver.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: withPoints_driver.h
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer: 
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: 
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifndef SRC_DRIVING_DISTANCE_SRC_WITHPOINTS_DD_DRIVER_H_
-#define SRC_DRIVING_DISTANCE_SRC_WITHPOINTS_DD_DRIVER_H_
-#pragma once
-
-#include "./../../common/src/pgr_types.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-    void do_pgr_many_withPointsDD(
-            pgr_edge_t      *edges,             size_t total_edges,
-            Point_on_edge_t *points_p,          size_t total_points,
-            pgr_edge_t      *edges_of_points,   size_t total_edges_of_points,
-
-            int64_t  *start_pids_arr,    size_t s_len,
-            double distance,
-
-            bool directed,
-            char driving_side,
-            bool details,
-            bool equiCost,
-
-            General_path_element_t **return_tuples, size_t *return_count,
-            char** log_msg,
-            char** notice_msg,
-            char ** err_msg);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif  // SRC_DRIVING_DISTANCE_SRC_WITHPOINTS_DD_DRIVER_H_
diff --git a/src/driving_distance/test/dijksraDD-issue729.result b/src/driving_distance/test/dijksraDD-issue729.result
new file mode 100644
index 0000000..9db7799
--- /dev/null
+++ b/src/driving_distance/test/dijksraDD-issue729.result
@@ -0,0 +1,71 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+ALTER TABLE edge_table
+DROP COLUMN IF EXISTS node_count,
+ADD COLUMN node_count INTEGER;
+NOTICE:  column "node_count" of relation "edge_table" does not exist, skipping
+ALTER TABLE
+UPDATE edge_table AS edge_table
+SET node_count=count.sum
+FROM
+        (SELECT
+        from_v,
+        sum(node) AS sum
+        FROM
+            pgr_drivingDistance(
+            'SELECT id, source, target, ST_Length(the_geom) AS cost FROM edge_table',
+            ARRAY(SELECT DISTINCT source FROM edge_table),
+            1,
+            false)
+    GROUP BY from_v) AS count
+    WHERE edge_table.source=count.from_v
+    ;
+UPDATE 18
+ALTER TABLE edge_table
+DROP COLUMN IF EXISTS another_column,
+ADD COLUMN another_column INTEGER;
+NOTICE:  column "another_column" of relation "edge_table" does not exist, skipping
+ALTER TABLE
+DROP TABLE IF EXISTS network;
+NOTICE:  table "network" does not exist, skipping
+DROP TABLE
+CREATE TABLE network AS
+SELECT *
+from (
+    VALUES
+    (1::int, 1::int, 2::int, 100::int),
+    (2::int, 2::int, 3::int, 100::int),
+    (3::int, 3::int, 4::int, 100::int),
+    (4::int, 5::int, 6::int, 100::int)
+) as t (id, source,target,cost);
+SELECT 4
+ALTER TABLE network
+DROP COLUMN IF EXISTS node_count,
+ADD COLUMN node_count INTEGER;
+NOTICE:  column "node_count" of relation "network" does not exist, skipping
+ALTER TABLE
+UPDATE network AS network
+SET node_count=count.sum
+FROM
+(SELECT
+    from_v,
+    sum(node) AS sum
+    FROM
+    pgr_drivingDistance(
+        'SELECT id, source, target, cost FROM network',
+        ARRAY(SELECT DISTINCT source FROM network),
+        1,
+        false)
+    GROUP BY from_v) AS count
+WHERE network.source=count.from_v
+;
+UPDATE 4
+ALTER TABLE network
+DROP COLUMN IF EXISTS another_column,
+ADD COLUMN another_column INTEGER;
+NOTICE:  column "another_column" of relation "network" does not exist, skipping
+ALTER TABLE
+ROLLBACK;
+ROLLBACK
diff --git a/src/driving_distance/test/issue729.test.sql b/src/driving_distance/test/dijksraDD-issue729.test.sql
similarity index 100%
rename from src/driving_distance/test/issue729.test.sql
rename to src/driving_distance/test/dijksraDD-issue729.test.sql
diff --git a/src/driving_distance/test/doc-pgr_drivingDistance.result b/src/driving_distance/test/doc-pgr_drivingDistance.result
index 50cef61..83759bf 100644
--- a/src/driving_distance/test/doc-pgr_drivingDistance.result
+++ b/src/driving_distance/test/doc-pgr_drivingDistance.result
@@ -1,178 +1,312 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 --q1
-1|2|-1|0|0
-2|1|1|1|1
-3|5|4|1|1
-4|6|8|1|2
-5|8|7|1|2
-6|10|10|1|2
-7|7|6|1|3
-8|9|9|1|3
-9|11|12|1|3
-10|13|14|1|3
-1|13|-1|0|0
-2|10|14|1|1
-3|5|10|1|2
-4|11|12|1|2
-5|2|4|1|3
-6|6|8|1|3
-7|8|7|1|3
-8|12|13|1|3
-1|2|2|-1|0|0
-2|2|1|1|1|1
-3|2|5|4|1|1
-4|2|6|8|1|2
-5|2|8|7|1|2
-6|2|10|10|1|2
-7|2|7|6|1|3
-8|2|9|9|1|3
-9|2|11|12|1|3
-10|2|13|14|1|3
-11|13|13|-1|0|0
-12|13|10|14|1|1
-13|13|5|10|1|2
-14|13|11|12|1|2
-15|13|2|4|1|3
-16|13|6|8|1|3
-17|13|8|7|1|3
-18|13|12|13|1|3
-1|2|2|-1|0|0
-2|2|1|1|1|1
-3|2|5|4|1|1
-4|2|6|8|1|2
-5|2|8|7|1|2
-6|2|7|6|1|3
-7|2|9|9|1|3
-8|13|13|-1|0|0
-9|13|10|14|1|1
-10|13|11|12|1|2
-11|13|12|13|1|3
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+        2, 3
+      );
+ seq | node | edge | cost | agg_cost 
+-----+------+------+------+----------
+   1 |    2 |   -1 |    0 |        0
+   2 |    1 |    1 |    1 |        1
+   3 |    5 |    4 |    1 |        1
+   4 |    6 |    8 |    1 |        2
+   5 |    8 |    7 |    1 |        2
+   6 |   10 |   10 |    1 |        2
+   7 |    7 |    6 |    1 |        3
+   8 |    9 |    9 |    1 |        3
+   9 |   11 |   12 |    1 |        3
+  10 |   13 |   14 |    1 |        3
+(10 rows)
+
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+        13, 3
+      );
+ seq | node | edge | cost | agg_cost 
+-----+------+------+------+----------
+   1 |   13 |   -1 |    0 |        0
+   2 |   10 |   14 |    1 |        1
+   3 |    5 |   10 |    1 |        2
+   4 |   11 |   12 |    1 |        2
+   5 |    2 |    4 |    1 |        3
+   6 |    6 |    8 |    1 |        3
+   7 |    8 |    7 |    1 |        3
+   8 |   12 |   13 |    1 |        3
+(8 rows)
+
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+        array[2,13], 3
+      );
+ seq | from_v | node | edge | cost | agg_cost 
+-----+--------+------+------+------+----------
+   1 |      2 |    2 |   -1 |    0 |        0
+   2 |      2 |    1 |    1 |    1 |        1
+   3 |      2 |    5 |    4 |    1 |        1
+   4 |      2 |    6 |    8 |    1 |        2
+   5 |      2 |    8 |    7 |    1 |        2
+   6 |      2 |   10 |   10 |    1 |        2
+   7 |      2 |    7 |    6 |    1 |        3
+   8 |      2 |    9 |    9 |    1 |        3
+   9 |      2 |   11 |   12 |    1 |        3
+  10 |      2 |   13 |   14 |    1 |        3
+  11 |     13 |   13 |   -1 |    0 |        0
+  12 |     13 |   10 |   14 |    1 |        1
+  13 |     13 |    5 |   10 |    1 |        2
+  14 |     13 |   11 |   12 |    1 |        2
+  15 |     13 |    2 |    4 |    1 |        3
+  16 |     13 |    6 |    8 |    1 |        3
+  17 |     13 |    8 |    7 |    1 |        3
+  18 |     13 |   12 |   13 |    1 |        3
+(18 rows)
+
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+        array[2,13], 3, equicost:=true
+      );
+ seq | from_v | node | edge | cost | agg_cost 
+-----+--------+------+------+------+----------
+   1 |      2 |    2 |   -1 |    0 |        0
+   2 |      2 |    1 |    1 |    1 |        1
+   3 |      2 |    5 |    4 |    1 |        1
+   4 |      2 |    6 |    8 |    1 |        2
+   5 |      2 |    8 |    7 |    1 |        2
+   6 |      2 |    7 |    6 |    1 |        3
+   7 |      2 |    9 |    9 |    1 |        3
+   8 |     13 |   13 |   -1 |    0 |        0
+   9 |     13 |   10 |   14 |    1 |        1
+  10 |     13 |   11 |   12 |    1 |        2
+  11 |     13 |   12 |   13 |    1 |        3
+(11 rows)
+
 --q2
-1|2|-1|0|0
-2|1|1|1|1
-3|3|2|1|1
-4|5|4|1|1
-5|4|3|1|2
-6|6|8|1|2
-7|8|7|1|2
-8|10|10|1|2
-9|7|6|1|3
-10|9|16|1|3
-11|11|12|1|3
-12|13|14|1|3
-1|13|-1|0|0
-2|10|14|1|1
-3|5|10|1|2
-4|11|12|1|2
-5|2|4|1|3
-6|6|8|1|3
-7|8|7|1|3
-8|12|13|1|3
-1|2|2|-1|0|0
-2|2|1|1|1|1
-3|2|3|2|1|1
-4|2|5|4|1|1
-5|2|4|3|1|2
-6|2|6|8|1|2
-7|2|8|7|1|2
-8|2|10|10|1|2
-9|2|7|6|1|3
-10|2|9|16|1|3
-11|2|11|12|1|3
-12|2|13|14|1|3
-13|13|13|-1|0|0
-14|13|10|14|1|1
-15|13|5|10|1|2
-16|13|11|12|1|2
-17|13|2|4|1|3
-18|13|6|8|1|3
-19|13|8|7|1|3
-20|13|12|13|1|3
-1|2|2|-1|0|0
-2|2|1|1|1|1
-3|2|3|2|1|1
-4|2|5|4|1|1
-5|2|4|3|1|2
-6|2|6|8|1|2
-7|2|8|7|1|2
-8|2|7|6|1|3
-9|2|9|16|1|3
-10|13|13|-1|0|0
-11|13|10|14|1|1
-12|13|11|12|1|2
-13|13|12|13|1|3
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+        2, 3, false
+      );
+ seq | node | edge | cost | agg_cost 
+-----+------+------+------+----------
+   1 |    2 |   -1 |    0 |        0
+   2 |    1 |    1 |    1 |        1
+   3 |    3 |    2 |    1 |        1
+   4 |    5 |    4 |    1 |        1
+   5 |    4 |    3 |    1 |        2
+   6 |    6 |    8 |    1 |        2
+   7 |    8 |    7 |    1 |        2
+   8 |   10 |   10 |    1 |        2
+   9 |    7 |    6 |    1 |        3
+  10 |    9 |   16 |    1 |        3
+  11 |   11 |   12 |    1 |        3
+  12 |   13 |   14 |    1 |        3
+(12 rows)
+
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+        13, 3, false
+      );
+ seq | node | edge | cost | agg_cost 
+-----+------+------+------+----------
+   1 |   13 |   -1 |    0 |        0
+   2 |   10 |   14 |    1 |        1
+   3 |    5 |   10 |    1 |        2
+   4 |   11 |   12 |    1 |        2
+   5 |    2 |    4 |    1 |        3
+   6 |    6 |    8 |    1 |        3
+   7 |    8 |    7 |    1 |        3
+   8 |   12 |   13 |    1 |        3
+(8 rows)
+
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+        array[2,13], 3, false
+      );
+ seq | from_v | node | edge | cost | agg_cost 
+-----+--------+------+------+------+----------
+   1 |      2 |    2 |   -1 |    0 |        0
+   2 |      2 |    1 |    1 |    1 |        1
+   3 |      2 |    3 |    2 |    1 |        1
+   4 |      2 |    5 |    4 |    1 |        1
+   5 |      2 |    4 |    3 |    1 |        2
+   6 |      2 |    6 |    8 |    1 |        2
+   7 |      2 |    8 |    7 |    1 |        2
+   8 |      2 |   10 |   10 |    1 |        2
+   9 |      2 |    7 |    6 |    1 |        3
+  10 |      2 |    9 |   16 |    1 |        3
+  11 |      2 |   11 |   12 |    1 |        3
+  12 |      2 |   13 |   14 |    1 |        3
+  13 |     13 |   13 |   -1 |    0 |        0
+  14 |     13 |   10 |   14 |    1 |        1
+  15 |     13 |    5 |   10 |    1 |        2
+  16 |     13 |   11 |   12 |    1 |        2
+  17 |     13 |    2 |    4 |    1 |        3
+  18 |     13 |    6 |    8 |    1 |        3
+  19 |     13 |    8 |    7 |    1 |        3
+  20 |     13 |   12 |   13 |    1 |        3
+(20 rows)
+
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+        array[2,13], 3, false, equicost:=true
+      );
+ seq | from_v | node | edge | cost | agg_cost 
+-----+--------+------+------+------+----------
+   1 |      2 |    2 |   -1 |    0 |        0
+   2 |      2 |    1 |    1 |    1 |        1
+   3 |      2 |    3 |    2 |    1 |        1
+   4 |      2 |    5 |    4 |    1 |        1
+   5 |      2 |    4 |    3 |    1 |        2
+   6 |      2 |    6 |    8 |    1 |        2
+   7 |      2 |    8 |    7 |    1 |        2
+   8 |      2 |    7 |    6 |    1 |        3
+   9 |      2 |    9 |   16 |    1 |        3
+  10 |     13 |   13 |   -1 |    0 |        0
+  11 |     13 |   10 |   14 |    1 |        1
+  12 |     13 |   11 |   12 |    1 |        2
+  13 |     13 |   12 |   13 |    1 |        3
+(13 rows)
+
 --q3
-1|2|-1|0|0
-2|5|4|1|1
-3|6|8|1|2
-4|10|10|1|2
-5|9|9|1|3
-6|11|11|1|3
-7|13|14|1|3
-1|13|-1|0|0
-1|2|2|-1|0|0
-2|2|5|4|1|1
-3|2|6|8|1|2
-4|2|10|10|1|2
-5|2|9|9|1|3
-6|2|11|11|1|3
-7|2|13|14|1|3
-8|13|13|-1|0|0
-1|2|2|-1|0|0
-2|2|5|4|1|1
-3|2|6|8|1|2
-4|2|10|10|1|2
-5|2|9|9|1|3
-6|2|11|11|1|3
-7|13|13|-1|0|0
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost FROM edge_table',
+        2, 3
+      );
+ seq | node | edge | cost | agg_cost 
+-----+------+------+------+----------
+   1 |    2 |   -1 |    0 |        0
+   2 |    5 |    4 |    1 |        1
+   3 |    6 |    8 |    1 |        2
+   4 |   10 |   10 |    1 |        2
+   5 |    9 |    9 |    1 |        3
+   6 |   11 |   11 |    1 |        3
+   7 |   13 |   14 |    1 |        3
+(7 rows)
+
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost FROM edge_table',
+        13, 3
+      );
+ seq | node | edge | cost | agg_cost 
+-----+------+------+------+----------
+   1 |   13 |   -1 |    0 |        0
+(1 row)
+
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost FROM edge_table',
+        array[2,13], 3
+      );
+ seq | from_v | node | edge | cost | agg_cost 
+-----+--------+------+------+------+----------
+   1 |      2 |    2 |   -1 |    0 |        0
+   2 |      2 |    5 |    4 |    1 |        1
+   3 |      2 |    6 |    8 |    1 |        2
+   4 |      2 |   10 |   10 |    1 |        2
+   5 |      2 |    9 |    9 |    1 |        3
+   6 |      2 |   11 |   11 |    1 |        3
+   7 |      2 |   13 |   14 |    1 |        3
+   8 |     13 |   13 |   -1 |    0 |        0
+(8 rows)
+
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost FROM edge_table',
+        array[2,13], 3, equicost:=true
+      );
+ seq | from_v | node | edge | cost | agg_cost 
+-----+--------+------+------+------+----------
+   1 |      2 |    2 |   -1 |    0 |        0
+   2 |      2 |    5 |    4 |    1 |        1
+   3 |      2 |    6 |    8 |    1 |        2
+   4 |      2 |   10 |   10 |    1 |        2
+   5 |      2 |    9 |    9 |    1 |        3
+   6 |      2 |   11 |   11 |    1 |        3
+   7 |     13 |   13 |   -1 |    0 |        0
+(7 rows)
+
 --q4
-1|2|-1|0|0
-2|1|1|1|1
-3|5|4|1|1
-4|6|8|1|2
-5|8|7|1|2
-6|10|10|1|2
-7|3|5|1|3
-8|7|6|1|3
-9|9|9|1|3
-10|11|12|1|3
-11|13|14|1|3
-1|13|-1|0|0
-2|10|14|1|1
-3|5|10|1|2
-4|11|12|1|2
-5|2|4|1|3
-6|6|8|1|3
-7|8|7|1|3
-8|12|13|1|3
-1|2|2|-1|0|0
-2|2|1|1|1|1
-3|2|5|4|1|1
-4|2|6|8|1|2
-5|2|8|7|1|2
-6|2|10|10|1|2
-7|2|3|5|1|3
-8|2|7|6|1|3
-9|2|9|9|1|3
-10|2|11|12|1|3
-11|2|13|14|1|3
-12|13|13|-1|0|0
-13|13|10|14|1|1
-14|13|5|10|1|2
-15|13|11|12|1|2
-16|13|2|4|1|3
-17|13|6|8|1|3
-18|13|8|7|1|3
-19|13|12|13|1|3
-1|2|2|-1|0|0
-2|2|1|1|1|1
-3|2|5|4|1|1
-4|2|6|8|1|2
-5|2|8|7|1|2
-6|2|3|5|1|3
-7|2|7|6|1|3
-8|2|9|9|1|3
-9|13|13|-1|0|0
-10|13|10|14|1|1
-11|13|11|12|1|2
-12|13|12|13|1|3
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost FROM edge_table',
+        2, 3, false
+      );
+ seq | node | edge | cost | agg_cost 
+-----+------+------+------+----------
+   1 |    2 |   -1 |    0 |        0
+   2 |    1 |    1 |    1 |        1
+   3 |    5 |    4 |    1 |        1
+   4 |    6 |    8 |    1 |        2
+   5 |    8 |    7 |    1 |        2
+   6 |   10 |   10 |    1 |        2
+   7 |    3 |    5 |    1 |        3
+   8 |    7 |    6 |    1 |        3
+   9 |    9 |    9 |    1 |        3
+  10 |   11 |   12 |    1 |        3
+  11 |   13 |   14 |    1 |        3
+(11 rows)
+
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost FROM edge_table',
+        13, 3, false
+      );
+ seq | node | edge | cost | agg_cost 
+-----+------+------+------+----------
+   1 |   13 |   -1 |    0 |        0
+   2 |   10 |   14 |    1 |        1
+   3 |    5 |   10 |    1 |        2
+   4 |   11 |   12 |    1 |        2
+   5 |    2 |    4 |    1 |        3
+   6 |    6 |    8 |    1 |        3
+   7 |    8 |    7 |    1 |        3
+   8 |   12 |   13 |    1 |        3
+(8 rows)
+
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost FROM edge_table',
+        array[2,13], 3, false
+      );
+ seq | from_v | node | edge | cost | agg_cost 
+-----+--------+------+------+------+----------
+   1 |      2 |    2 |   -1 |    0 |        0
+   2 |      2 |    1 |    1 |    1 |        1
+   3 |      2 |    5 |    4 |    1 |        1
+   4 |      2 |    6 |    8 |    1 |        2
+   5 |      2 |    8 |    7 |    1 |        2
+   6 |      2 |   10 |   10 |    1 |        2
+   7 |      2 |    3 |    5 |    1 |        3
+   8 |      2 |    7 |    6 |    1 |        3
+   9 |      2 |    9 |    9 |    1 |        3
+  10 |      2 |   11 |   12 |    1 |        3
+  11 |      2 |   13 |   14 |    1 |        3
+  12 |     13 |   13 |   -1 |    0 |        0
+  13 |     13 |   10 |   14 |    1 |        1
+  14 |     13 |    5 |   10 |    1 |        2
+  15 |     13 |   11 |   12 |    1 |        2
+  16 |     13 |    2 |    4 |    1 |        3
+  17 |     13 |    6 |    8 |    1 |        3
+  18 |     13 |    8 |    7 |    1 |        3
+  19 |     13 |   12 |   13 |    1 |        3
+(19 rows)
+
+SELECT * FROM pgr_drivingDistance(
+        'SELECT id, source, target, cost FROM edge_table',
+        array[2,13], 3, false, equicost:=true
+      );
+ seq | from_v | node | edge | cost | agg_cost 
+-----+--------+------+------+------+----------
+   1 |      2 |    2 |   -1 |    0 |        0
+   2 |      2 |    1 |    1 |    1 |        1
+   3 |      2 |    5 |    4 |    1 |        1
+   4 |      2 |    6 |    8 |    1 |        2
+   5 |      2 |    8 |    7 |    1 |        2
+   6 |      2 |    3 |    5 |    1 |        3
+   7 |      2 |    7 |    6 |    1 |        3
+   8 |      2 |    9 |    9 |    1 |        3
+   9 |     13 |   13 |   -1 |    0 |        0
+  10 |     13 |   10 |   14 |    1 |        1
+  11 |     13 |   11 |   12 |    1 |        2
+  12 |     13 |   12 |   13 |    1 |        3
+(12 rows)
+
 --q5
+ROLLBACK;
+ROLLBACK
diff --git a/src/driving_distance/test/doc-pgr_drivingDistance.test.sql b/src/driving_distance/test/doc-pgr_drivingDistance.test.sql
index 4d61eb3..d19101f 100644
--- a/src/driving_distance/test/doc-pgr_drivingDistance.test.sql
+++ b/src/driving_distance/test/doc-pgr_drivingDistance.test.sql
@@ -1,30 +1,3 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
---              PGR_drivingDistance  V3
-------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
 
 \echo --q1
 SELECT * FROM pgr_drivingDistance(
diff --git a/src/driving_distance/test/doc-pgr_drivingdistance-v2.result b/src/driving_distance/test/doc-pgr_drivingdistance-v2.result
deleted file mode 100644
index 7221d5a..0000000
--- a/src/driving_distance/test/doc-pgr_drivingdistance-v2.result
+++ /dev/null
@@ -1,8 +0,0 @@
---q1
-NOTICE:  Deprecated function
-0|7|-1|0
-1|8|6|1
-NOTICE:  Deprecated function
-0|7|-1|0
-1|8|6|1
---q2
diff --git a/src/driving_distance/test/doc-pgr_drivingdistance-v2.test.sql b/src/driving_distance/test/doc-pgr_drivingdistance-v2.test.sql
deleted file mode 100644
index 285c5e5..0000000
--- a/src/driving_distance/test/doc-pgr_drivingdistance-v2.test.sql
+++ /dev/null
@@ -1,19 +0,0 @@
-------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
---              PGR_drivingDistance
-------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
-
-SET client_min_messages TO NOTICE;
-
-\echo --q1
-SELECT * FROM pgr_drivingDistance(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost FROM edge_table',
-    7, 1.5, false, false
-) ;
-
-SELECT * FROM pgr_drivingDistance(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
-    7, 1.5, true, true
-) ;
-\echo --q2
diff --git a/src/driving_distance/test/drivingdistance-any-00.result b/src/driving_distance/test/drivingdistance-any-00.result
deleted file mode 100644
index 74465da..0000000
--- a/src/driving_distance/test/drivingdistance-any-00.result
+++ /dev/null
@@ -1,575 +0,0 @@
-NOTICE:  Deprecated function
-0|1274|-1|0.00
-1|1222|3799|1.00
-2|1273|1249|1.00
-3|1275|1250|1.00
-4|1326|3800|1.00
-5|1170|3798|2.00
-6|1221|3748|2.00
-7|1223|3850|2.00
-8|1272|1248|2.00
-9|1276|1251|2.00
-10|1325|3749|2.00
-11|1327|1301|2.00
-12|1378|3801|2.00
-13|1118|3797|3.00
-14|1169|1147|3.00
-15|1171|3849|3.00
-16|1220|3697|3.00
-17|1224|1200|3.00
-18|1271|1247|3.00
-19|1277|1252|3.00
-20|1324|1299|3.00
-21|1328|1302|3.00
-22|1377|3750|3.00
-23|1379|3852|3.00
-24|1430|3802|3.00
-25|1066|3796|4.00
-26|1117|1096|4.00
-27|1119|3848|4.00
-28|1168|3696|4.00
-29|1172|1149|4.00
-30|1219|1196|4.00
-31|1225|1201|4.00
-32|1270|1246|4.00
-33|1278|1253|4.00
-34|1323|3647|4.00
-35|1329|1303|4.00
-36|1376|1350|4.00
-37|1380|1353|4.00
-38|1429|3751|4.00
-39|1431|3853|4.00
-40|1482|3803|4.00
-41|1014|3795|5.00
-42|1065|1045|5.00
-43|1067|1046|5.00
-44|1116|3695|5.00
-45|1120|1098|5.00
-46|1167|1145|5.00
-47|1173|3951|5.00
-48|1218|1195|5.00
-49|1226|4003|5.00
-50|1269|1245|5.00
-51|1279|1254|5.00
-52|1322|1297|5.00
-53|1330|4004|5.00
-54|1375|3648|5.00
-55|1381|1354|5.00
-56|1428|1401|5.00
-57|1432|1404|5.00
-58|1481|1453|5.00
-59|1483|1454|5.00
-60|1534|3804|5.00
-61|962|3794|6.00
-62|1013|3744|6.00
-63|1015|3846|6.00
-64|1064|1044|6.00
-65|1068|1047|6.00
-66|1115|1094|6.00
-67|1121|1099|6.00
-68|1166|3594|6.00
-69|1174|1151|6.00
-70|1217|1194|6.00
-71|1227|4054|6.00
-72|1268|1244|6.00
-73|1280|1255|6.00
-74|1321|1296|6.00
-75|1331|1305|6.00
-76|1374|1348|6.00
-77|1382|4005|6.00
-78|1427|3649|6.00
-79|1433|1405|6.00
-80|1480|3701|6.00
-81|1484|3905|6.00
-82|1533|1504|6.00
-83|1535|1505|6.00
-84|1586|3805|6.00
-85|910|3793|7.00
-86|961|3743|7.00
-87|963|3845|7.00
-88|1012|993|7.00
-89|1016|996|7.00
-90|1063|3643|7.00
-91|1069|3949|7.00
-92|1114|1093|7.00
-93|1122|1100|7.00
-94|1165|1143|7.00
-95|1175|1152|7.00
-96|1216|3493|7.00
-97|1228|1204|7.00
-98|1267|1243|7.00
-99|1281|1256|7.00
-100|1320|1295|7.00
-101|1332|1306|7.00
-102|1373|1347|7.00
-103|1383|4056|7.00
-104|1426|3598|7.00
-105|1434|4006|7.00
-106|1479|3650|7.00
-107|1485|1456|7.00
-108|1532|1503|7.00
-109|1536|1506|7.00
-110|1585|3754|7.00
-111|1587|3856|7.00
-112|1638|3806|7.00
-113|858|3792|8.00
-114|909|3742|8.00
-115|911|3844|8.00
-116|960|3692|8.00
-117|964|945|8.00
-118|1011|992|8.00
-119|1017|997|8.00
-120|1062|1042|8.00
-121|1070|1049|8.00
-122|1113|1092|8.00
-123|1123|4052|8.00
-124|1164|3492|8.00
-125|1176|1153|8.00
-126|1215|1192|8.00
-127|1229|4156|8.00
-128|1266|1242|8.00
-129|1282|1257|8.00
-130|1319|1294|8.00
-131|1333|1307|8.00
-132|1372|1346|8.00
-133|1384|4107|8.00
-134|1425|3547|8.00
-135|1435|4057|8.00
-136|1478|3599|8.00
-137|1486|4007|8.00
-138|1531|1502|8.00
-139|1537|1507|8.00
-140|1584|1554|8.00
-141|1588|1557|8.00
-142|1637|1606|8.00
-143|1639|1607|8.00
-144|1690|3807|8.00
-145|806|3791|9.00
-146|857|3741|9.00
-147|859|3843|9.00
-148|908|3691|9.00
-149|912|3895|9.00
-150|959|941|9.00
-151|965|946|9.00
-152|1010|991|9.00
-153|1018|998|9.00
-154|1061|1041|9.00
-155|1071|1050|9.00
-156|1112|1091|9.00
-157|1124|4103|9.00
-158|1163|1141|9.00
-159|1177|1154|9.00
-160|1214|1191|9.00
-161|1230|4207|9.00
-162|1265|1241|9.00
-163|1283|1258|9.00
-164|1318|1293|9.00
-165|1334|1308|9.00
-166|1371|1345|9.00
-167|1385|1358|9.00
-168|1424|1397|9.00
-169|1436|4108|9.00
-170|1477|3548|9.00
-171|1487|1458|9.00
-172|1530|1501|9.00
-173|1538|1508|9.00
-174|1583|3652|9.00
-175|1589|1558|9.00
-176|1636|3704|9.00
-177|1640|3908|9.00
-178|1689|1657|9.00
-179|1691|1658|9.00
-180|1742|3808|9.00
-181|754|3790|10.00
-182|805|3740|10.00
-183|807|3842|10.00
-184|856|3690|10.00
-185|860|3894|10.00
-186|907|890|10.00
-187|913|895|10.00
-188|958|3590|10.00
-189|966|947|10.00
-190|1009|990|10.00
-191|1019|999|10.00
-192|1060|1040|10.00
-193|1072|4102|10.00
-194|1111|1090|10.00
-195|1125|1103|10.00
-196|1162|3390|10.00
-197|1178|1155|10.00
-198|1213|3340|10.00
-199|1231|4258|10.00
-200|1264|1240|10.00
-201|1284|1259|10.00
-202|1317|3341|10.00
-203|1335|4259|10.00
-204|1370|1344|10.00
-205|1386|4209|10.00
-206|1423|1396|10.00
-207|1437|1409|10.00
-208|1476|1448|10.00
-209|1488|4109|10.00
-210|1529|1500|10.00
-211|1539|1509|10.00
-212|1582|3601|10.00
-213|1590|4009|10.00
-214|1635|1604|10.00
-215|1641|1609|10.00
-216|1688|3705|10.00
-217|1692|3909|10.00
-218|1741|1708|10.00
-219|1743|1709|10.00
-220|1794|3809|10.00
-1|1274|-1|0.00|0.00
-2|1222|3799|1.00|1.00
-3|1273|1249|1.00|1.00
-4|1275|1250|1.00|1.00
-5|1326|3800|1.00|1.00
-6|1170|3798|1.00|2.00
-7|1221|3748|1.00|2.00
-8|1223|3850|1.00|2.00
-9|1272|1248|1.00|2.00
-10|1276|1251|1.00|2.00
-11|1325|3749|1.00|2.00
-12|1327|1301|1.00|2.00
-13|1378|3801|1.00|2.00
-14|1118|3797|1.00|3.00
-15|1169|1147|1.00|3.00
-16|1171|3849|1.00|3.00
-17|1220|3697|1.00|3.00
-18|1224|1200|1.00|3.00
-19|1271|1247|1.00|3.00
-20|1277|1252|1.00|3.00
-21|1324|1299|1.00|3.00
-22|1328|1302|1.00|3.00
-23|1377|3750|1.00|3.00
-24|1379|3852|1.00|3.00
-25|1430|3802|1.00|3.00
-26|1066|3796|1.00|4.00
-27|1117|1096|1.00|4.00
-28|1119|3848|1.00|4.00
-29|1168|3696|1.00|4.00
-30|1172|1149|1.00|4.00
-31|1219|1196|1.00|4.00
-32|1225|1201|1.00|4.00
-33|1270|1246|1.00|4.00
-34|1278|1253|1.00|4.00
-35|1323|3647|1.00|4.00
-36|1329|1303|1.00|4.00
-37|1376|1350|1.00|4.00
-38|1380|1353|1.00|4.00
-39|1429|3751|1.00|4.00
-40|1431|3853|1.00|4.00
-41|1482|3803|1.00|4.00
-42|1014|3795|1.00|5.00
-43|1065|1045|1.00|5.00
-44|1067|1046|1.00|5.00
-45|1116|3695|1.00|5.00
-46|1120|1098|1.00|5.00
-47|1167|1145|1.00|5.00
-48|1173|3951|1.00|5.00
-49|1218|1195|1.00|5.00
-50|1226|4003|1.00|5.00
-51|1269|1245|1.00|5.00
-52|1279|1254|1.00|5.00
-53|1322|1297|1.00|5.00
-54|1330|4004|1.00|5.00
-55|1375|3648|1.00|5.00
-56|1381|1354|1.00|5.00
-57|1428|1401|1.00|5.00
-58|1432|1404|1.00|5.00
-59|1481|1453|1.00|5.00
-60|1483|1454|1.00|5.00
-61|1534|3804|1.00|5.00
-62|962|3794|1.00|6.00
-63|1013|3744|1.00|6.00
-64|1015|3846|1.00|6.00
-65|1064|1044|1.00|6.00
-66|1068|1047|1.00|6.00
-67|1115|1094|1.00|6.00
-68|1121|1099|1.00|6.00
-69|1166|3594|1.00|6.00
-70|1174|1151|1.00|6.00
-71|1217|1194|1.00|6.00
-72|1227|4054|1.00|6.00
-73|1268|1244|1.00|6.00
-74|1280|1255|1.00|6.00
-75|1321|1296|1.00|6.00
-76|1331|1305|1.00|6.00
-77|1374|1348|1.00|6.00
-78|1382|4005|1.00|6.00
-79|1427|3649|1.00|6.00
-80|1433|1405|1.00|6.00
-81|1480|3701|1.00|6.00
-82|1484|3905|1.00|6.00
-83|1533|1504|1.00|6.00
-84|1535|1505|1.00|6.00
-85|1586|3805|1.00|6.00
-86|910|3793|1.00|7.00
-87|961|3743|1.00|7.00
-88|963|3845|1.00|7.00
-89|1012|993|1.00|7.00
-90|1016|996|1.00|7.00
-91|1063|3643|1.00|7.00
-92|1069|3949|1.00|7.00
-93|1114|1093|1.00|7.00
-94|1122|1100|1.00|7.00
-95|1165|1143|1.00|7.00
-96|1175|1152|1.00|7.00
-97|1216|3493|1.00|7.00
-98|1228|1204|1.00|7.00
-99|1267|1243|1.00|7.00
-100|1281|1256|1.00|7.00
-101|1320|1295|1.00|7.00
-102|1332|1306|1.00|7.00
-103|1373|1347|1.00|7.00
-104|1383|4056|1.00|7.00
-105|1426|3598|1.00|7.00
-106|1434|4006|1.00|7.00
-107|1479|3650|1.00|7.00
-108|1485|1456|1.00|7.00
-109|1532|1503|1.00|7.00
-110|1536|1506|1.00|7.00
-111|1585|3754|1.00|7.00
-112|1587|3856|1.00|7.00
-113|1638|3806|1.00|7.00
-114|858|3792|1.00|8.00
-115|909|3742|1.00|8.00
-116|911|3844|1.00|8.00
-117|960|3692|1.00|8.00
-118|964|945|1.00|8.00
-119|1011|992|1.00|8.00
-120|1017|997|1.00|8.00
-121|1062|1042|1.00|8.00
-122|1070|1049|1.00|8.00
-123|1113|1092|1.00|8.00
-124|1123|4052|1.00|8.00
-125|1164|3492|1.00|8.00
-126|1176|1153|1.00|8.00
-127|1215|1192|1.00|8.00
-128|1229|4156|1.00|8.00
-129|1266|1242|1.00|8.00
-130|1282|1257|1.00|8.00
-131|1319|1294|1.00|8.00
-132|1333|1307|1.00|8.00
-133|1372|1346|1.00|8.00
-134|1384|4107|1.00|8.00
-135|1425|3547|1.00|8.00
-136|1435|4057|1.00|8.00
-137|1478|3599|1.00|8.00
-138|1486|4007|1.00|8.00
-139|1531|1502|1.00|8.00
-140|1537|1507|1.00|8.00
-141|1584|1554|1.00|8.00
-142|1588|1557|1.00|8.00
-143|1637|1606|1.00|8.00
-144|1639|1607|1.00|8.00
-145|1690|3807|1.00|8.00
-146|806|3791|1.00|9.00
-147|857|3741|1.00|9.00
-148|859|3843|1.00|9.00
-149|908|3691|1.00|9.00
-150|912|3895|1.00|9.00
-151|959|941|1.00|9.00
-152|965|946|1.00|9.00
-153|1010|991|1.00|9.00
-154|1018|998|1.00|9.00
-155|1061|1041|1.00|9.00
-156|1071|1050|1.00|9.00
-157|1112|1091|1.00|9.00
-158|1124|4103|1.00|9.00
-159|1163|1141|1.00|9.00
-160|1177|1154|1.00|9.00
-161|1214|1191|1.00|9.00
-162|1230|4207|1.00|9.00
-163|1265|1241|1.00|9.00
-164|1283|1258|1.00|9.00
-165|1318|1293|1.00|9.00
-166|1334|1308|1.00|9.00
-167|1371|1345|1.00|9.00
-168|1385|1358|1.00|9.00
-169|1424|1397|1.00|9.00
-170|1436|4108|1.00|9.00
-171|1477|3548|1.00|9.00
-172|1487|1458|1.00|9.00
-173|1530|1501|1.00|9.00
-174|1538|1508|1.00|9.00
-175|1583|3652|1.00|9.00
-176|1589|1558|1.00|9.00
-177|1636|3704|1.00|9.00
-178|1640|3908|1.00|9.00
-179|1689|1657|1.00|9.00
-180|1691|1658|1.00|9.00
-181|1742|3808|1.00|9.00
-182|754|3790|1.00|10.00
-183|805|3740|1.00|10.00
-184|807|3842|1.00|10.00
-185|856|3690|1.00|10.00
-186|860|3894|1.00|10.00
-187|907|890|1.00|10.00
-188|913|895|1.00|10.00
-189|958|3590|1.00|10.00
-190|966|947|1.00|10.00
-191|1009|990|1.00|10.00
-192|1019|999|1.00|10.00
-193|1060|1040|1.00|10.00
-194|1072|4102|1.00|10.00
-195|1111|1090|1.00|10.00
-196|1125|1103|1.00|10.00
-197|1162|3390|1.00|10.00
-198|1178|1155|1.00|10.00
-199|1213|3340|1.00|10.00
-200|1231|4258|1.00|10.00
-201|1264|1240|1.00|10.00
-202|1284|1259|1.00|10.00
-203|1317|3341|1.00|10.00
-204|1335|4259|1.00|10.00
-205|1370|1344|1.00|10.00
-206|1386|4209|1.00|10.00
-207|1423|1396|1.00|10.00
-208|1437|1409|1.00|10.00
-209|1476|1448|1.00|10.00
-210|1488|4109|1.00|10.00
-211|1529|1500|1.00|10.00
-212|1539|1509|1.00|10.00
-213|1582|3601|1.00|10.00
-214|1590|4009|1.00|10.00
-215|1635|1604|1.00|10.00
-216|1641|1609|1.00|10.00
-217|1688|3705|1.00|10.00
-218|1692|3909|1.00|10.00
-219|1741|1708|1.00|10.00
-220|1743|1709|1.00|10.00
-221|1794|3809|1.00|10.00
-1|1274|-1|0.00|0.00
-2|1275|1250|1.00|1.00
-3|1326|3800|1.00|1.00
-4|1276|1251|1.00|2.00
-5|1327|3851|1.00|2.00
-6|1378|3801|1.00|2.00
-7|1277|1252|1.00|3.00
-8|1328|1302|1.00|3.00
-9|1379|3852|1.00|3.00
-10|1430|3802|1.00|3.00
-11|1278|1253|1.00|4.00
-12|1329|3953|1.00|4.00
-13|1380|1353|1.00|4.00
-14|1431|1403|1.00|4.00
-15|1482|3803|1.00|4.00
-16|1279|1254|1.00|5.00
-17|1330|4004|1.00|5.00
-18|1381|1354|1.00|5.00
-19|1432|3904|1.00|5.00
-20|1483|1454|1.00|5.00
-21|1534|3804|1.00|5.00
-22|1280|1255|1.00|6.00
-23|1331|4055|1.00|6.00
-24|1382|4005|1.00|6.00
-25|1433|1405|1.00|6.00
-26|1484|1455|1.00|6.00
-27|1535|3855|1.00|6.00
-28|1586|3805|1.00|6.00
-29|1281|1256|1.00|7.00
-30|1332|4106|1.00|7.00
-31|1383|4056|1.00|7.00
-32|1434|1406|1.00|7.00
-33|1485|1456|1.00|7.00
-34|1536|1506|1.00|7.00
-35|1587|1556|1.00|7.00
-36|1638|3806|1.00|7.00
-37|1282|1257|1.00|8.00
-38|1333|4157|1.00|8.00
-39|1384|4107|1.00|8.00
-40|1435|1407|1.00|8.00
-41|1486|4007|1.00|8.00
-42|1537|1507|1.00|8.00
-43|1588|1557|1.00|8.00
-44|1639|1607|1.00|8.00
-45|1690|3807|1.00|8.00
-46|1283|1258|1.00|9.00
-47|1334|4208|1.00|9.00
-48|1385|1358|1.00|9.00
-49|1436|4108|1.00|9.00
-50|1487|1458|1.00|9.00
-51|1538|4008|1.00|9.00
-52|1589|1558|1.00|9.00
-53|1640|1608|1.00|9.00
-54|1691|3858|1.00|9.00
-55|1742|3808|1.00|9.00
-56|1284|1259|1.00|10.00
-57|1335|4259|1.00|10.00
-58|1386|4209|1.00|10.00
-59|1437|1409|1.00|10.00
-60|1488|4109|1.00|10.00
-61|1539|1509|1.00|10.00
-62|1590|1559|1.00|10.00
-63|1641|3959|1.00|10.00
-64|1692|1659|1.00|10.00
-65|1743|3859|1.00|10.00
-66|1794|3809|1.00|10.00
-1|1274|-1|0.00|0.00
-2|1275|1250|1.00|1.00
-3|1326|3800|1.00|1.00
-4|1276|1251|1.00|2.00
-5|1327|3851|1.00|2.00
-6|1378|3801|1.00|2.00
-7|1277|1252|1.00|3.00
-8|1328|1302|1.00|3.00
-9|1379|3852|1.00|3.00
-10|1430|3802|1.00|3.00
-11|1278|1253|1.00|4.00
-12|1329|3953|1.00|4.00
-13|1380|1353|1.00|4.00
-14|1431|1403|1.00|4.00
-15|1482|3803|1.00|4.00
-16|1279|1254|1.00|5.00
-17|1330|4004|1.00|5.00
-18|1381|1354|1.00|5.00
-19|1432|3904|1.00|5.00
-20|1483|1454|1.00|5.00
-21|1534|3804|1.00|5.00
-22|1280|1255|1.00|6.00
-23|1331|4055|1.00|6.00
-24|1382|4005|1.00|6.00
-25|1433|1405|1.00|6.00
-26|1484|1455|1.00|6.00
-27|1535|3855|1.00|6.00
-28|1586|3805|1.00|6.00
-29|1281|1256|1.00|7.00
-30|1332|4106|1.00|7.00
-31|1383|4056|1.00|7.00
-32|1434|1406|1.00|7.00
-33|1485|1456|1.00|7.00
-34|1536|1506|1.00|7.00
-35|1587|1556|1.00|7.00
-36|1638|3806|1.00|7.00
-37|1282|1257|1.00|8.00
-38|1333|4157|1.00|8.00
-39|1384|4107|1.00|8.00
-40|1435|1407|1.00|8.00
-41|1486|4007|1.00|8.00
-42|1537|1507|1.00|8.00
-43|1588|1557|1.00|8.00
-44|1639|1607|1.00|8.00
-45|1690|3807|1.00|8.00
-46|1283|1258|1.00|9.00
-47|1334|4208|1.00|9.00
-48|1385|1358|1.00|9.00
-49|1436|4108|1.00|9.00
-50|1487|1458|1.00|9.00
-51|1538|4008|1.00|9.00
-52|1589|1558|1.00|9.00
-53|1640|1608|1.00|9.00
-54|1691|3858|1.00|9.00
-55|1742|3808|1.00|9.00
-56|1284|1259|1.00|10.00
-57|1335|4259|1.00|10.00
-58|1386|4209|1.00|10.00
-59|1437|1409|1.00|10.00
-60|1488|4109|1.00|10.00
-61|1539|1509|1.00|10.00
-62|1590|1559|1.00|10.00
-63|1641|3959|1.00|10.00
-64|1692|1659|1.00|10.00
-65|1743|3859|1.00|10.00
-66|1794|3809|1.00|10.00
diff --git a/src/driving_distance/test/drivingdistance-any-00.test.sql b/src/driving_distance/test/drivingdistance-any-00.test.sql
deleted file mode 100644
index 4d7e890..0000000
--- a/src/driving_distance/test/drivingdistance-any-00.test.sql
+++ /dev/null
@@ -1,65 +0,0 @@
--- each ring will increase by 4 because it is on a square grid
--- to find the start node number
--- SELECT *, st_distance(st_makepoint(25,25), the_geom) from vertices_tmp where st_dwithin(st_makepoint(25,25), the_geom, 1.0) order by st_distance(st_makepoint(25,25), the_geom) limit 1;
-
-    -- create 50x50 grid of overlapping lines horizontal and vertical
-
-    DO $$
-    DECLARE debuglevel TEXT;
-    BEGIN
-
-        EXECUTE 'show client_min_messages' into debuglevel;
-
-        SET client_min_messages TO WARNING;
-
-        create table ddunnoded (
-            id serial not null primary key
-        );
-
-        PERFORM  addgeometrycolumn('ddunnoded', 'the_geom', ST_SRID('POINT(0 0)'::geometry), 'LINESTRING', 2);
-
-        INSERT into ddunnoded (the_geom)
-        SELECT st_astext(st_makeline(st_makepoint(0,s1), st_makepoint(51,s1))) from (SELECT generate_series(1,50) as s1) as foo
-        union all
-        SELECT st_astext(st_makeline(st_makepoint(s1,0), st_makepoint(s1,51))) from (SELECT generate_series(1,50) as s1) as foo;
-
-        -- node the grid so we can use it
-        PERFORM pgr_nodenetwork('ddunnoded',0.000001);
-
-        -- copy the noded table into a table we can use for a graph
-        -- and add the required columns
-
-
-        create table ddnoded2 (
-            gid serial not null primary key,
-            id integer,
-            source integer,
-            target integer,
-            cost float8
-        );
-
-        PERFORM addgeometrycolumn('ddnoded2', 'the_geom', ST_SRID('POINT(0 0)'::geometry), 'LINESTRING', 2);
-
-        insert into ddnoded2 (id, cost, the_geom)
-        SELECT a.id, 1.0::float8 as cost, a.the_geom
-        from ddunnoded_noded a order by id, sub_id;
-
-        -- now create a topology
-        PERFORM pgr_createtopology('ddnoded2', 0.000001, id:='gid');
-
-        -- Total query runtime: 8080 ms.
-
-
-        execute 'set client_min_messages  to '|| debuglevel;
-    END $$;
-
-    --this are equivalent
-    SELECT seq, id1, id2, round(cost::numeric, 2) from pgr_drivingdistance('SELECT id, source, target, 1.0::float8 as cost from ddnoded2', 1274, 10, false, false);
-    SELECT seq, node, edge, round(cost::numeric, 2), round(agg_cost::numeric,2) from pgr_drivingdistance('SELECT id, source, target, 1.0::float8 as cost from ddnoded2', 1274, 10, false);
-
-
-    --- this ones are equivalent
-    SELECT seq, node, edge, round(cost::numeric, 2), round(agg_cost::numeric,2) from pgr_drivingdistance('SELECT id, source, target, 1.0::float8 as cost from ddnoded2', 1274, 10, true);
-    SELECT seq, node, edge, round(cost::numeric, 2), round(agg_cost::numeric,2) from pgr_drivingdistance('SELECT id, source, target, 1.0::float8 as cost from ddnoded2', 1274, 10);
-
-
diff --git a/src/driving_distance/test/issue729.result b/src/driving_distance/test/issue729.result
deleted file mode 100644
index 61e6d74..0000000
--- a/src/driving_distance/test/issue729.result
+++ /dev/null
@@ -1,5 +0,0 @@
-NOTICE:  column "node_count" of relation "edge_table" does not exist, skipping
-NOTICE:  column "another_column" of relation "edge_table" does not exist, skipping
-NOTICE:  table "network" does not exist, skipping
-NOTICE:  column "node_count" of relation "network" does not exist, skipping
-NOTICE:  column "another_column" of relation "network" does not exist, skipping
diff --git a/src/driving_distance/test/test.conf b/src/driving_distance/test/test.conf
index cd14af3..b382c56 100644
--- a/src/driving_distance/test/test.conf
+++ b/src/driving_distance/test/test.conf
@@ -5,14 +5,11 @@
         'comment' => 'Driving Distance test for any versions.',
         'data' => [],
         'tests' => [qw(
-            drivingdistance-any-00
+            dijksraDD-issue729
             doc-pgr_drivingDistance
-            doc-pgr_drivingdistance-v2
-            issue729
             )],
         'documentation' => [qw(
             doc-pgr_drivingDistance
-            doc-pgr_drivingdistance-v2
             )]
     },
 #    'vpg-vpgis' => {}, # for version specific tests
diff --git a/src/internalQueryTests/src/testXYedges.c b/src/internalQueryTests/src/testXYedges.c
index 57617c3..955e7b3 100644
--- a/src/internalQueryTests/src/testXYedges.c
+++ b/src/internalQueryTests/src/testXYedges.c
@@ -27,14 +27,12 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#include "./../../common/src/postgres_connection.h"
-#include "utils/array.h"
-
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/edges_input.h"
+#include "c_common/postgres_connection.h"
 
 #include "./testXYedges_driver.h"
+#include "c_common/edges_input.h"
+#include "c_common/debug_macro.h"
+
 
 PGDLLEXPORT Datum testXYedges(PG_FUNCTION_ARGS);
 
diff --git a/src/internalQueryTests/src/testXYedges_driver.cpp b/src/internalQueryTests/src/testXYedges_driver.cpp
index c88241e..4082821 100644
--- a/src/internalQueryTests/src/testXYedges_driver.cpp
+++ b/src/internalQueryTests/src/testXYedges_driver.cpp
@@ -37,7 +37,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 #include "./../../dijkstra/src/pgr_dijkstra.hpp"
 
 #include "./../../common/src/pgr_assert.h"
-#include "./../../common/src/pgr_types.h"
 
 /************************************************************
   edges_sql TEXT
diff --git a/src/internalQueryTests/src/testXYedges_driver.h b/src/internalQueryTests/src/testXYedges_driver.h
index 1ff4672..64a7199 100644
--- a/src/internalQueryTests/src/testXYedges_driver.h
+++ b/src/internalQueryTests/src/testXYedges_driver.h
@@ -29,7 +29,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 #ifndef SRC_INTERNALQUERYTESTS_SRC_TESTXYEDGES_DRIVER_H_
 #define SRC_INTERNALQUERYTESTS_SRC_TESTXYEDGES_DRIVER_H_
 
-#include "./../../common/src/pgr_types.h"
+#include "c_types/pgr_edge_xy_t.h"
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/src/internalQueryTests/src/test_c_edges.c b/src/internalQueryTests/src/test_c_edges.c
index 42db34c..c243bf8 100644
--- a/src/internalQueryTests/src/test_c_edges.c
+++ b/src/internalQueryTests/src/test_c_edges.c
@@ -27,12 +27,11 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#include "./../../common/src/postgres_connection.h"
-#include "utils/array.h"
+#include "c_common/postgres_connection.h"
 
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/edges_input.h"
+#include "c_common/debug_macro.h"
+
+#include "c_common/edges_input.h"
 
 #include "./test_c_edges_driver.h"
 
diff --git a/src/internalQueryTests/src/test_c_edges_driver.cpp b/src/internalQueryTests/src/test_c_edges_driver.cpp
index 617f919..ac36cc8 100644
--- a/src/internalQueryTests/src/test_c_edges_driver.cpp
+++ b/src/internalQueryTests/src/test_c_edges_driver.cpp
@@ -37,7 +37,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 #include "./../../dijkstra/src/pgr_dijkstra.hpp"
 
 #include "./../../common/src/pgr_assert.h"
-#include "./../../common/src/pgr_types.h"
 
 /************************************************************
   edges_sql TEXT
diff --git a/src/internalQueryTests/src/test_c_edges_driver.h b/src/internalQueryTests/src/test_c_edges_driver.h
index ec01d36..0c5e711 100644
--- a/src/internalQueryTests/src/test_c_edges_driver.h
+++ b/src/internalQueryTests/src/test_c_edges_driver.h
@@ -29,7 +29,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 #ifndef SRC_TESTCEDGES_SRC_TEST_C_EDGES_DRIVER_H_
 #define SRC_TESTCEDGES_SRC_TEST_C_EDGES_DRIVER_H_
 
-#include "./../../common/src/pgr_types.h"
+#include "c_types/pgr_edge_t.h"
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/src/internalQueryTests/src/test_matrixRows.c b/src/internalQueryTests/src/test_matrixRows.c
index 97e172f..d753e9c 100644
--- a/src/internalQueryTests/src/test_matrixRows.c
+++ b/src/internalQueryTests/src/test_matrixRows.c
@@ -27,13 +27,12 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#include "./../../common/src/postgres_connection.h"
-#include "utils/array.h"
+#include "c_common/postgres_connection.h"
 
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/matrixRows_input.h"
 
+#include "c_common/matrixRows_input.h"
+
+#include "c_common/debug_macro.h"
 #include "./test_matrixRows_driver.h"
 
 PGDLLEXPORT Datum test_matrixRows(PG_FUNCTION_ARGS);
diff --git a/src/internalQueryTests/src/test_matrixRows_driver.h b/src/internalQueryTests/src/test_matrixRows_driver.h
index a26cd0a..beac198 100644
--- a/src/internalQueryTests/src/test_matrixRows_driver.h
+++ b/src/internalQueryTests/src/test_matrixRows_driver.h
@@ -30,7 +30,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 #define SRC_INTERNALQUERYTESTS_SRC_TEST_MATRIXROWS_DRIVER_H_
 #pragma once
 
-#include "./../../common/src/pgr_types.h"
+#include "c_types/matrix_cell_t.h"
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/src/kdijkstra/doc/doc-kdijkstra.queries b/src/kdijkstra/doc/doc-kdijkstra.queries
deleted file mode 100644
index 5a31979..0000000
--- a/src/kdijkstra/doc/doc-kdijkstra.queries
+++ /dev/null
@@ -1,52 +0,0 @@
-BEGIN;
-BEGIN
-SET client_min_messages TO NOTICE;
-SET
--- q1
-SELECT * FROM pgr_kdijkstraCost(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost FROM edge_table',
-    10, array[4,12], false, false);
-NOTICE:  Deprecated function. Use pgr_dijkstraCost instead.
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |  10 |   4 |    4
-   1 |  10 |  12 |    2
-(2 rows)
-
--- q2
-SELECT * FROM pgr_kdijkstraPath(
-      'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost FROM edge_table',
-      10, array[4,12], false, false);
-NOTICE:  Deprecated function: Use pgr_dijkstra instead.
- seq | id1 | id2 | id3 | cost 
------+-----+-----+-----+------
-   0 |   4 |  10 |  12 |    1
-   1 |   4 |  11 |  13 |    1
-   2 |   4 |  12 |  15 |    1
-   3 |   4 |   9 |  16 |    1
-   4 |   4 |   4 |  -1 |    0
-   5 |  12 |  10 |  12 |    1
-   6 |  12 |  11 |  13 |    1
-   7 |  12 |  12 |  -1 |    0
-(8 rows)
-
--- q3
-SELECT id1 AS path, st_AStext(st_linemerge(st_union(b.the_geom))) AS the_geom
-  FROM pgr_kdijkstraPath(
-                  'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost FROM edge_table',
-                  10, array[4,12], false, false
-            ) a,
-            edge_table b
-WHERE a.id3=b.id
-GROUP by id1
-ORDER by id1;
-NOTICE:  Deprecated function: Use pgr_dijkstra instead.
- path |            the_geom             
-------+---------------------------------
-    4 | LINESTRING(2 3,3 3,4 3,4 2,4 1)
-   12 | LINESTRING(2 3,3 3,4 3)
-(2 rows)
-
--- q4
-ROLLBACK;
-ROLLBACK
diff --git a/src/kdijkstra/sql/CMakeLists.txt b/src/kdijkstra/sql/CMakeLists.txt
deleted file mode 100644
index 933cd12..0000000
--- a/src/kdijkstra/sql/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-# Append in local scope
-LIST(APPEND PACKAGE_SQL_FILES
-    ${CMAKE_CURRENT_SOURCE_DIR}/kdijkstra-V2.2.sql
-)
-
-# set in parent scope
-SET(PACKAGE_SQL_FILES "${PACKAGE_SQL_FILES}" PARENT_SCOPE)
diff --git a/src/kdijkstra/sql/kdijkstra-V2.2.sql b/src/kdijkstra/sql/kdijkstra-V2.2.sql
deleted file mode 100644
index 953d9bb..0000000
--- a/src/kdijkstra/sql/kdijkstra-V2.2.sql
+++ /dev/null
@@ -1,195 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; IF not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-
-CREATE OR REPLACE FUNCTION pgr_kdijkstraPath(
-    sql text,
-    source INTEGER,
-    targets INTEGER ARRAY,
-    directed BOOLEAN,
-    has_rcost BOOLEAN)
-    RETURNS SETOF pgr_costResult3 AS
-    $BODY$
-    DECLARE
-    has_reverse BOOLEAN;
-    new_sql TEXT;
-    result pgr_costResult3;
-    tmp pgr_costResult3;
-    sseq INTEGER;
-    i INTEGER;
-    BEGIN
-        RAISE NOTICE 'Deprecated function: Use pgr_dijkstra instead.';
-        has_reverse =_pgr_parameter_check('dijkstra', sql, false);
-        new_sql = sql;
-        IF (array_ndims(targets) != 1) THEN
-            raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
-            USING ERRCODE = 'XX000';
-        END IF;
-
-        IF (has_reverse != has_rcost) THEN
-            IF (has_reverse) THEN
-                new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
-            ELSE
-                raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
-                USING ERRCODE = 'XX000';
-            END IF;
-        END IF;
-        SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
-
-        sseq = 0; i = 1;
-        FOR result IN 
-            SELECT seq, a.end_vid::INTEGER AS id1, a.node::INTEGER AS i2, a.edge::INTEGER AS id3, cost
-            FROM pgr_dijkstra(new_sql, source, targets, directed) a ORDER BY a.end_vid, seq LOOP
-            WHILE (result.id1 != targets[i]) LOOP
-                tmp.seq = sseq;
-                tmp.id1 = targets[i];
-                IF (targets[i] = source) THEN
-                    tmp.id2 = source;
-                    tmp.cost =0;
-                ELSE
-                    tmp.id2 = 0;
-                    tmp.cost = -1;
-                END IF;
-                tmp.id3 = -1;
-                RETURN next tmp;
-                i = i + 1;
-                sseq = sseq + 1;
-            END LOOP;
-        IF (result.id1 = targets[i] AND result.id3 != -1) THEN
-            result.seq = sseq;
-            RETURN next result;
-            sseq = sseq + 1;
-            CONTINUE;
-        END IF;
-        IF (result.id1 = targets[i] AND result.id3 = -1) THEN
-            result.seq = sseq;
-            RETURN next result;
-            i = i + 1;
-            sseq = sseq + 1;
-            CONTINUE;
-        END IF;
-    END LOOP;
-    WHILE (i <= array_length(targets,1)) LOOP
-        tmp.seq = sseq;
-        tmp.id1 = targets[i];
-        IF (targets[i] = source) THEN
-            tmp.id2 = source;
-            tmp.cost = 0;
-        ELSE
-            tmp.id2 = 0;
-            tmp.cost = -1;
-        END IF;
-        tmp.id3 = -1;
-        RETURN next tmp;
-        i = i + 1;
-        sseq = sseq + 1;
-    END LOOP;
-
-END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
-
-
-CREATE OR REPLACE FUNCTION pgr_kdijkstracost(
-    sql text,
-    source INTEGER,
-    targets INTEGER array,
-    directed BOOLEAN,
-    has_rcost BOOLEAN)
-RETURNS SETOF pgr_costResult AS
-$BODY$
-DECLARE
-has_reverse BOOLEAN;
-new_sql TEXT;
-result pgr_costResult;
-tmp pgr_costResult;
-sseq INTEGER;
-i INTEGER;
-BEGIN
-    RAISE NOTICE 'Deprecated function. Use pgr_dijkstraCost instead.';
-    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
-    new_sql = sql;
-    IF (array_ndims(targets) != 1) THEN
-        raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
-        USING ERRCODE = 'XX000';
-    END IF;
-
-
-    IF (has_reverse != has_rcost) THEN
-        IF (has_reverse) THEN
-            new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
-        ELSE
-            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
-            USING ERRCODE = 'XX000';
-        END IF;
-    END IF;
-
-    SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
-
-    sseq = 0; i = 1;
-    FOR result IN 
-        SELECT ((row_number() over()) -1)::INTEGER, a.start_vid::INTEGER, a.end_vid::INTEGER, agg_cost
-        FROM pgr_dijkstraCost(new_sql, source, targets, directed) a ORDER BY end_vid LOOP
-        WHILE (result.id2 != targets[i]) LOOP
-            tmp.seq = sseq;
-            tmp.id1 = source;
-            tmp.id2 = targets[i];
-            IF (targets[i] = source) THEN
-                tmp.cost = 0;
-            ELSE
-                tmp.cost = -1;
-            END IF;
-            RETURN next tmp;
-            i = i + 1;
-            sseq = sseq + 1;
-        END LOOP;
-        IF (result.id2 = targets[i]) THEN
-            result.seq = sseq;
-            RETURN next result;
-            i = i + 1;
-            sseq = sseq + 1;
-        END IF;
-    END LOOP;
-    WHILE (i <= array_length(targets,1)) LOOP
-        tmp.seq = sseq;
-        tmp.id1 = source;
-        tmp.id2 = targets[i];
-        IF (targets[i] = source) THEN
-            tmp.cost = 0;
-        ELSE
-            tmp.cost = -1;
-        END IF;
-        RETURN next tmp;
-        i = i + 1;
-        sseq = sseq + 1;
-    END LOOP;
-
-END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
-
-
diff --git a/src/kdijkstra/test/doc-kdijkstra.result b/src/kdijkstra/test/doc-kdijkstra.result
deleted file mode 100644
index 2f98464..0000000
--- a/src/kdijkstra/test/doc-kdijkstra.result
+++ /dev/null
@@ -1,19 +0,0 @@
--- q1
-NOTICE:  Deprecated function. Use pgr_dijkstraCost instead.
-0|10|4|4
-1|10|12|2
--- q2
-NOTICE:  Deprecated function: Use pgr_dijkstra instead.
-0|4|10|12|1
-1|4|11|13|1
-2|4|12|15|1
-3|4|9|16|1
-4|4|4|-1|0
-5|12|10|12|1
-6|12|11|13|1
-7|12|12|-1|0
--- q3
-NOTICE:  Deprecated function: Use pgr_dijkstra instead.
-4|LINESTRING(2 3,3 3,4 3,4 2,4 1)
-12|LINESTRING(2 3,3 3,4 3)
--- q4
diff --git a/src/kdijkstra/test/doc-kdijkstra.test.sql b/src/kdijkstra/test/doc-kdijkstra.test.sql
deleted file mode 100644
index 8604973..0000000
--- a/src/kdijkstra/test/doc-kdijkstra.test.sql
+++ /dev/null
@@ -1,24 +0,0 @@
-------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
---              PGR_kdijkstraPath
-------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
-\echo -- q1
-SELECT * FROM pgr_kdijkstraCost(
-    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost FROM edge_table',
-    10, array[4,12], false, false);
-\echo -- q2
-SELECT * FROM pgr_kdijkstraPath(
-      'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost FROM edge_table',
-      10, array[4,12], false, false);
-\echo -- q3
-SELECT id1 AS path, st_AStext(st_linemerge(st_union(b.the_geom))) AS the_geom
-  FROM pgr_kdijkstraPath(
-                  'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost FROM edge_table',
-                  10, array[4,12], false, false
-            ) a,
-            edge_table b
-WHERE a.id3=b.id
-GROUP by id1
-ORDER by id1;
-\echo -- q4
diff --git a/src/kdijkstra/test/test.conf b/src/kdijkstra/test/test.conf
deleted file mode 100644
index ebbd3d9..0000000
--- a/src/kdijkstra/test/test.conf
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/usr/bin/perl -w
-
-%main::tests = (
-    'any' => {
-        'comment' => 'KDijkstra test for any versions.',
-        'data' => [qw(
-            )],
-
-        'tests' => [qw(
-            doc-kdijkstra
-            )],
-
-        'documentation' => [qw(
-            doc-kdijkstra
-
-            )],
-
-        },
-#    'vpg-vpgis' => {}, # for version specific tests
-#    '8-1' => {},       # for pg 8.x and postgis 1.x
-#    '9.2-2.1' => {},   # for pg 9.2 and postgis 2.1
-);
-
-1;
diff --git a/src/ksp/doc/KSP-category.rst b/src/ksp/doc/KSP-category.rst
deleted file mode 100644
index ba23ad9..0000000
--- a/src/ksp/doc/KSP-category.rst
+++ /dev/null
@@ -1,23 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-
-.. _KSP:
-
-KSP Category
-===============================================================================
-
-.. index from here
-
-* :ref:`pgr_KSP` - Driving Distance based on pgr_dijkstra
-* :ref:`pgr_withPointsKSP` - Driving Distance based on pgr_dijkstra
-
-.. index to here
-
-
diff --git a/src/ksp/doc/doc-ksp-v2.queries b/src/ksp/doc/doc-ksp-v2.queries
deleted file mode 100644
index d6885b1..0000000
--- a/src/ksp/doc/doc-ksp-v2.queries
+++ /dev/null
@@ -1,51 +0,0 @@
-BEGIN;
-BEGIN
-SET client_min_messages TO NOTICE;
-SET
---q1
-SELECT * FROM pgr_ksp(
-   'SELECT id, source, target, cost FROM edge_table order by id',
-   7, 12, 2, false
- );
-NOTICE:  Deprecated function
- seq | id1 | id2 | id3 | cost 
------+-----+-----+-----+------
-   0 |   0 |   7 |   6 |    1
-   1 |   0 |   8 |   7 |    1
-   2 |   0 |   5 |   8 |    1
-   3 |   0 |   6 |   9 |    1
-   4 |   0 |   9 |  15 |    1
-   5 |   0 |  12 |  -1 |    0
-   6 |   1 |   7 |   6 |    1
-   7 |   1 |   8 |   7 |    1
-   8 |   1 |   5 |   8 |    1
-   9 |   1 |   6 |  11 |    1
-  10 |   1 |  11 |  13 |    1
-  11 |   1 |  12 |  -1 |    0
-(12 rows)
-
---q2
-SELECT * FROM pgr_ksp(
-   'SELECT id, source, target, cost, reverse_cost FROM edge_table order by id',
-   7, 12, 2, true
- );
-NOTICE:  Deprecated function
- seq | id1 | id2 | id3 | cost 
------+-----+-----+-----+------
-   0 |   0 |   7 |   6 |    1
-   1 |   0 |   8 |   7 |    1
-   2 |   0 |   5 |   8 |    1
-   3 |   0 |   6 |   9 |    1
-   4 |   0 |   9 |  15 |    1
-   5 |   0 |  12 |  -1 |    0
-   6 |   1 |   7 |   6 |    1
-   7 |   1 |   8 |   7 |    1
-   8 |   1 |   5 |   8 |    1
-   9 |   1 |   6 |  11 |    1
-  10 |   1 |  11 |  13 |    1
-  11 |   1 |  12 |  -1 |    0
-(12 rows)
-
---q3
-ROLLBACK;
-ROLLBACK
diff --git a/src/ksp/doc/doc-ksp.queries b/src/ksp/doc/doc-ksp.queries
deleted file mode 100644
index c24eeb1..0000000
--- a/src/ksp/doc/doc-ksp.queries
+++ /dev/null
@@ -1,294 +0,0 @@
-BEGIN;
-BEGIN
-SET client_min_messages TO NOTICE;
-SET
---q1
-SELECT * FROM pgr_KSP(
-     'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-      2, 12, 2, 
-      true   
-   );
-NOTICE:  Deprecated function
- seq | id1 | id2 | id3 | cost 
------+-----+-----+-----+------
-   0 |   0 |   2 |   4 |    1
-   1 |   0 |   5 |   8 |    1
-   2 |   0 |   6 |   9 |    1
-   3 |   0 |   9 |  15 |    1
-   4 |   0 |  12 |  -1 |    0
-   5 |   1 |   2 |   4 |    1
-   6 |   1 |   5 |   8 |    1
-   7 |   1 |   6 |  11 |    1
-   8 |   1 |  11 |  13 |    1
-   9 |   1 |  12 |  -1 |    0
-(10 rows)
-
-SELECT * FROM pgr_KSP(
-     'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-      2, 12, 2,
-      directed:=true   
-   );
- seq | path_id | path_seq | node | edge | cost | agg_cost 
------+---------+----------+------+------+------+----------
-   1 |       1 |        1 |    2 |    4 |    1 |        0
-   2 |       1 |        2 |    5 |    8 |    1 |        1
-   3 |       1 |        3 |    6 |    9 |    1 |        2
-   4 |       1 |        4 |    9 |   15 |    1 |        3
-   5 |       1 |        5 |   12 |   -1 |    0 |        4
-   6 |       2 |        1 |    2 |    4 |    1 |        0
-   7 |       2 |        2 |    5 |    8 |    1 |        1
-   8 |       2 |        3 |    6 |   11 |    1 |        2
-   9 |       2 |        4 |   11 |   13 |    1 |        3
-  10 |       2 |        5 |   12 |   -1 |    0 |        4
-(10 rows)
-
-SELECT * FROM pgr_KSP(
-     'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-      2, 12, 2
-   );
- seq | path_id | path_seq | node | edge | cost | agg_cost 
------+---------+----------+------+------+------+----------
-   1 |       1 |        1 |    2 |    4 |    1 |        0
-   2 |       1 |        2 |    5 |    8 |    1 |        1
-   3 |       1 |        3 |    6 |    9 |    1 |        2
-   4 |       1 |        4 |    9 |   15 |    1 |        3
-   5 |       1 |        5 |   12 |   -1 |    0 |        4
-   6 |       2 |        1 |    2 |    4 |    1 |        0
-   7 |       2 |        2 |    5 |    8 |    1 |        1
-   8 |       2 |        3 |    6 |   11 |    1 |        2
-   9 |       2 |        4 |   11 |   13 |    1 |        3
-  10 |       2 |        5 |   12 |   -1 |    0 |        4
-(10 rows)
-
---q2
-SELECT * FROM pgr_KSP(
-     'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-      2, 12, 2
-   );
- seq | path_id | path_seq | node | edge | cost | agg_cost 
------+---------+----------+------+------+------+----------
-   1 |       1 |        1 |    2 |    4 |    1 |        0
-   2 |       1 |        2 |    5 |    8 |    1 |        1
-   3 |       1 |        3 |    6 |    9 |    1 |        2
-   4 |       1 |        4 |    9 |   15 |    1 |        3
-   5 |       1 |        5 |   12 |   -1 |    0 |        4
-   6 |       2 |        1 |    2 |    4 |    1 |        0
-   7 |       2 |        2 |    5 |    8 |    1 |        1
-   8 |       2 |        3 |    6 |   11 |    1 |        2
-   9 |       2 |        4 |   11 |   13 |    1 |        3
-  10 |       2 |        5 |   12 |   -1 |    0 |        4
-(10 rows)
-
-SELECT * FROM pgr_KSP(
-     'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-      2, 12, 2, heap_paths:=true
-   );
- seq | path_id | path_seq | node | edge | cost | agg_cost 
------+---------+----------+------+------+------+----------
-   1 |       1 |        1 |    2 |    4 |    1 |        0
-   2 |       1 |        2 |    5 |    8 |    1 |        1
-   3 |       1 |        3 |    6 |    9 |    1 |        2
-   4 |       1 |        4 |    9 |   15 |    1 |        3
-   5 |       1 |        5 |   12 |   -1 |    0 |        4
-   6 |       2 |        1 |    2 |    4 |    1 |        0
-   7 |       2 |        2 |    5 |    8 |    1 |        1
-   8 |       2 |        3 |    6 |   11 |    1 |        2
-   9 |       2 |        4 |   11 |   13 |    1 |        3
-  10 |       2 |        5 |   12 |   -1 |    0 |        4
-  11 |       3 |        1 |    2 |    4 |    1 |        0
-  12 |       3 |        2 |    5 |   10 |    1 |        1
-  13 |       3 |        3 |   10 |   12 |    1 |        2
-  14 |       3 |        4 |   11 |   13 |    1 |        3
-  15 |       3 |        5 |   12 |   -1 |    0 |        4
-(15 rows)
-
-SELECT * FROM pgr_KSP(
-     'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-      2, 12, 2, true, true
-   );
- seq | path_id | path_seq | node | edge | cost | agg_cost 
------+---------+----------+------+------+------+----------
-   1 |       1 |        1 |    2 |    4 |    1 |        0
-   2 |       1 |        2 |    5 |    8 |    1 |        1
-   3 |       1 |        3 |    6 |    9 |    1 |        2
-   4 |       1 |        4 |    9 |   15 |    1 |        3
-   5 |       1 |        5 |   12 |   -1 |    0 |        4
-   6 |       2 |        1 |    2 |    4 |    1 |        0
-   7 |       2 |        2 |    5 |    8 |    1 |        1
-   8 |       2 |        3 |    6 |   11 |    1 |        2
-   9 |       2 |        4 |   11 |   13 |    1 |        3
-  10 |       2 |        5 |   12 |   -1 |    0 |        4
-  11 |       3 |        1 |    2 |    4 |    1 |        0
-  12 |       3 |        2 |    5 |   10 |    1 |        1
-  13 |       3 |        3 |   10 |   12 |    1 |        2
-  14 |       3 |        4 |   11 |   13 |    1 |        3
-  15 |       3 |        5 |   12 |   -1 |    0 |        4
-(15 rows)
-
---q3
-SELECT * FROM pgr_KSP(
-     'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-      2, 12, 2, directed:=false
-   );
- seq | path_id | path_seq | node | edge | cost | agg_cost 
------+---------+----------+------+------+------+----------
-   1 |       1 |        1 |    2 |    2 |    1 |        0
-   2 |       1 |        2 |    3 |    3 |    1 |        1
-   3 |       1 |        3 |    4 |   16 |    1 |        2
-   4 |       1 |        4 |    9 |   15 |    1 |        3
-   5 |       1 |        5 |   12 |   -1 |    0 |        4
-   6 |       2 |        1 |    2 |    4 |    1 |        0
-   7 |       2 |        2 |    5 |    8 |    1 |        1
-   8 |       2 |        3 |    6 |   11 |    1 |        2
-   9 |       2 |        4 |   11 |   13 |    1 |        3
-  10 |       2 |        5 |   12 |   -1 |    0 |        4
-(10 rows)
-
-SELECT * FROM pgr_KSP(
-     'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-      2, 12, 2, false, true
-   );
- seq | path_id | path_seq | node | edge | cost | agg_cost 
------+---------+----------+------+------+------+----------
-   1 |       1 |        1 |    2 |    2 |    1 |        0
-   2 |       1 |        2 |    3 |    3 |    1 |        1
-   3 |       1 |        3 |    4 |   16 |    1 |        2
-   4 |       1 |        4 |    9 |   15 |    1 |        3
-   5 |       1 |        5 |   12 |   -1 |    0 |        4
-   6 |       2 |        1 |    2 |    4 |    1 |        0
-   7 |       2 |        2 |    5 |    8 |    1 |        1
-   8 |       2 |        3 |    6 |   11 |    1 |        2
-   9 |       2 |        4 |   11 |   13 |    1 |        3
-  10 |       2 |        5 |   12 |   -1 |    0 |        4
-  11 |       3 |        1 |    2 |    4 |    1 |        0
-  12 |       3 |        2 |    5 |   10 |    1 |        1
-  13 |       3 |        3 |   10 |   12 |    1 |        2
-  14 |       3 |        4 |   11 |   13 |    1 |        3
-  15 |       3 |        5 |   12 |   -1 |    0 |        4
-  16 |       4 |        1 |    2 |    4 |    1 |        0
-  17 |       4 |        2 |    5 |   10 |    1 |        1
-  18 |       4 |        3 |   10 |   12 |    1 |        2
-  19 |       4 |        4 |   11 |   11 |    1 |        3
-  20 |       4 |        5 |    6 |    9 |    1 |        4
-  21 |       4 |        6 |    9 |   15 |    1 |        5
-  22 |       4 |        7 |   12 |   -1 |    0 |        6
-(22 rows)
-
---q4
-SELECT  * FROM pgr_KSP(
-     'SELECT id, source, target, cost FROM edge_table',
-      2, 3, 2
-   );
- seq | path_id | path_seq | node | edge | cost | agg_cost 
------+---------+----------+------+------+------+----------
-(0 rows)
-
-SELECT  * FROM pgr_KSP(
-     'SELECT id, source, target, cost FROM edge_table',
-      2, 12, 2
-   );
- seq | path_id | path_seq | node | edge | cost | agg_cost 
------+---------+----------+------+------+------+----------
-   1 |       1 |        1 |    2 |    4 |    1 |        0
-   2 |       1 |        2 |    5 |    8 |    1 |        1
-   3 |       1 |        3 |    6 |    9 |    1 |        2
-   4 |       1 |        4 |    9 |   15 |    1 |        3
-   5 |       1 |        5 |   12 |   -1 |    0 |        4
-   6 |       2 |        1 |    2 |    4 |    1 |        0
-   7 |       2 |        2 |    5 |    8 |    1 |        1
-   8 |       2 |        3 |    6 |   11 |    1 |        2
-   9 |       2 |        4 |   11 |   13 |    1 |        3
-  10 |       2 |        5 |   12 |   -1 |    0 |        4
-(10 rows)
-
-SELECT   * FROM pgr_KSP(
-     'SELECT id, source, target, cost FROM edge_table',
-      2, 12, 2, heap_paths:=true
-   );
- seq | path_id | path_seq | node | edge | cost | agg_cost 
------+---------+----------+------+------+------+----------
-   1 |       1 |        1 |    2 |    4 |    1 |        0
-   2 |       1 |        2 |    5 |    8 |    1 |        1
-   3 |       1 |        3 |    6 |    9 |    1 |        2
-   4 |       1 |        4 |    9 |   15 |    1 |        3
-   5 |       1 |        5 |   12 |   -1 |    0 |        4
-   6 |       2 |        1 |    2 |    4 |    1 |        0
-   7 |       2 |        2 |    5 |    8 |    1 |        1
-   8 |       2 |        3 |    6 |   11 |    1 |        2
-   9 |       2 |        4 |   11 |   13 |    1 |        3
-  10 |       2 |        5 |   12 |   -1 |    0 |        4
-  11 |       3 |        1 |    2 |    4 |    1 |        0
-  12 |       3 |        2 |    5 |   10 |    1 |        1
-  13 |       3 |        3 |   10 |   12 |    1 |        2
-  14 |       3 |        4 |   11 |   13 |    1 |        3
-  15 |       3 |        5 |   12 |   -1 |    0 |        4
-(15 rows)
-
-SELECT  * FROM pgr_KSP(
-     'SELECT id, source, target, cost FROM edge_table',
-      2, 12, 2, true, true
-   );
- seq | path_id | path_seq | node | edge | cost | agg_cost 
------+---------+----------+------+------+------+----------
-   1 |       1 |        1 |    2 |    4 |    1 |        0
-   2 |       1 |        2 |    5 |    8 |    1 |        1
-   3 |       1 |        3 |    6 |    9 |    1 |        2
-   4 |       1 |        4 |    9 |   15 |    1 |        3
-   5 |       1 |        5 |   12 |   -1 |    0 |        4
-   6 |       2 |        1 |    2 |    4 |    1 |        0
-   7 |       2 |        2 |    5 |    8 |    1 |        1
-   8 |       2 |        3 |    6 |   11 |    1 |        2
-   9 |       2 |        4 |   11 |   13 |    1 |        3
-  10 |       2 |        5 |   12 |   -1 |    0 |        4
-  11 |       3 |        1 |    2 |    4 |    1 |        0
-  12 |       3 |        2 |    5 |   10 |    1 |        1
-  13 |       3 |        3 |   10 |   12 |    1 |        2
-  14 |       3 |        4 |   11 |   13 |    1 |        3
-  15 |       3 |        5 |   12 |   -1 |    0 |        4
-(15 rows)
-
---q5
-SELECT  * FROM pgr_KSP(
-     'SELECT id, source, target, cost FROM edge_table',
-      2, 12, 2, directed:=false
-   );
- seq | path_id | path_seq | node | edge | cost | agg_cost 
------+---------+----------+------+------+------+----------
-   1 |       1 |        1 |    2 |    4 |    1 |        0
-   2 |       1 |        2 |    5 |    8 |    1 |        1
-   3 |       1 |        3 |    6 |    9 |    1 |        2
-   4 |       1 |        4 |    9 |   15 |    1 |        3
-   5 |       1 |        5 |   12 |   -1 |    0 |        4
-   6 |       2 |        1 |    2 |    4 |    1 |        0
-   7 |       2 |        2 |    5 |    8 |    1 |        1
-   8 |       2 |        3 |    6 |   11 |    1 |        2
-   9 |       2 |        4 |   11 |   13 |    1 |        3
-  10 |       2 |        5 |   12 |   -1 |    0 |        4
-(10 rows)
-
-SELECT  * FROM pgr_KSP(
-     'SELECT id, source, target, cost FROM edge_table',
-      2, 12, 2, directed:=false, heap_paths:=true
-   );
- seq | path_id | path_seq | node | edge | cost | agg_cost 
------+---------+----------+------+------+------+----------
-   1 |       1 |        1 |    2 |    4 |    1 |        0
-   2 |       1 |        2 |    5 |    8 |    1 |        1
-   3 |       1 |        3 |    6 |    9 |    1 |        2
-   4 |       1 |        4 |    9 |   15 |    1 |        3
-   5 |       1 |        5 |   12 |   -1 |    0 |        4
-   6 |       2 |        1 |    2 |    4 |    1 |        0
-   7 |       2 |        2 |    5 |    8 |    1 |        1
-   8 |       2 |        3 |    6 |   11 |    1 |        2
-   9 |       2 |        4 |   11 |   13 |    1 |        3
-  10 |       2 |        5 |   12 |   -1 |    0 |        4
-  11 |       3 |        1 |    2 |    4 |    1 |        0
-  12 |       3 |        2 |    5 |   10 |    1 |        1
-  13 |       3 |        3 |   10 |   12 |    1 |        2
-  14 |       3 |        4 |   11 |   13 |    1 |        3
-  15 |       3 |        5 |   12 |   -1 |    0 |        4
-(15 rows)
-
---q6
-ROLLBACK;
-ROLLBACK
diff --git a/src/ksp/doc/pgr_KSP.rst b/src/ksp/doc/pgr_KSP.rst
deleted file mode 100644
index 8820cad..0000000
--- a/src/ksp/doc/pgr_KSP.rst
+++ /dev/null
@@ -1,181 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_ksp:
-
-pgr_KSP
-===============================================================================
-
-Name
--------------------------------------------------------------------------------
-
-``pgr_KSP`` — Returns the "K" shortest paths.
-
-
-.. figure:: images/boost-inside.jpeg
-   :target: http://www.boost.org/libs/graph
-
-   Boost Graph Inside
-
-.. rubric:: Availability: 2.0.0
-
-* Signature change 2.1.0
-
-
-Synopsis
--------------------------------------------------------------------------------
-
-The K shortest path routing algorithm based on Yen's algorithm. "K" is the number of shortest paths desired.
-
-Signature Summary
--------------------------------------------------------------------------------
-
-.. code-block:: sql
-
-    pgr_KSP(edges_sql, start_vid, end_vid, K);
-    pgr_KSP(edges_sql, start_vid, end_vid, k, directed, heap_paths)
-    RETURNS SET OF (seq, path_id, path_seq, node, edge, cost, agg_cost) or EMPTY SET
-
-Signatures
--------------------------------------------------------------------------------
-
-.. index::
-  single: KSP(Minimal Signature)
-
-Minimal Signature
-..................
-
-.. code-block:: sql
-
-    pgr_ksp(edges_sql, start_vid, end_vid, K);
-    RETURNS SET OF (seq, path_id, path_seq, node, edge, cost, agg_cost) or EMPTY SET
-
-
-.. index::
-  single: ksp(Complete Signature)
-
-Complete Signature
-...................
-
-.. code-block:: sql
-
-    pgr_KSP(edges_sql, start_vid, end_vid, k, directed, heap_paths)
-    RETURNS SET OF (seq, path_id, path_seq, node, edge, cost, agg_cost) or EMPTY SET
-
-
-Description of the Signatures
--------------------------------------------------------------------------------
-
-.. include:: pgRouting-concepts.rst
-    :start-after: basic_edges_sql_start
-    :end-before: basic_edges_sql_end
-
-Description of the parameters of the signatures
-..................................................
-
-============== ============ =================================================
-Column         Type           Description
-============== ============ =================================================
-**edges_sql**   ``TEXT``    SQL query as described above.
-**start_vid**   ``BIGINT``  Identifier of the starting vertex.
-**end_vid**     ``BIGINT``  Identifier of the ending vertex.
-**k**           ``INTEGER`` The desiered number of paths.
-**directed**    ``BOOLEAN`` (optional). When ``false`` the graph is considered as Undirected. Default is ``true`` which considers the graph as Directed.
-**heap_paths**  ``BOOLEAN`` (optional). When ``true`` returns all the paths stored in the process heap. Default is ``false`` which only returns ``k`` paths.
-============== ============ =================================================
-
-Roughly, if the shortest path has ``N`` edges, the heap will contain about than ``N * k`` paths for small value of ``k`` and ``k > 1``.
-
-
-
-Description of the return values
-...................................
-
-Returns set of ``(seq, path_seq, path_id, node, edge, cost, agg_cost)``
-
-============== =========== =================================================
-Column         Type        Description
-============== =========== =================================================
-**seq**        ``INTEGER`` Sequential value starting from **1**.
-**path_seq**   ``INTEGER`` Relative position in the path of ``node`` and ``edge``. Has value **1** for the beginning of a path.
-**path_id**    ``BIGINT``  Path identifier. The ordering of the paths For two paths i, j if i < j then agg_cost(i) <= agg_cost(j).
-**node**       ``BIGINT``  Identifier of the node in the path.
-**edge**       ``BIGINT``  Identifier of the edge used to go from ``node`` to the next node in the path sequence. ``-1`` for the last node of the route.
-**cost**       ``FLOAT``   Cost to traverse from ``node`` using ``edge`` to the next node in the path sequence.
-**agg_cost**   ``FLOAT``   Aggregate cost from ``start_vid`` to ``node``.
-============== =========== =================================================
-
-
-.. warning:: During the transition to 3.0, because pgr_ksp version 2.0 doesn't have defined a directed flag nor a heap_path flag, when pgr_ksp is used with only one flag version 2.0 signature will be used.
-
-
-Additional Examples
-------------------------------------------------------------------------------------------
-
-Examples to handle the one flag to choose signatures
-.........................................................................................
-
-The examples in this section use the following :ref:`fig1`
-
-.. literalinclude:: doc-ksp.queries
-    :start-after: --q1
-    :end-before: --q2
-
-
-Examples for queries marked as ``directed`` with ``cost`` and ``reverse_cost`` columns
-.........................................................................................
-
-The examples in this section use the following :ref:`fig1`
-
-.. literalinclude:: doc-ksp.queries
-    :start-after: --q2
-    :end-before: --q3
-
-
-
-Examples for queries marked as ``undirected`` with ``cost`` and ``reverse_cost`` columns
-.........................................................................................
-
-The examples in this section use the following :ref:`fig2`
-
-.. literalinclude:: doc-ksp.queries
-    :start-after: --q3
-    :end-before: --q4
-
-
-Examples for queries marked as ``directed`` with ``cost`` column
-.........................................................................................
-
-The examples in this section use the following :ref:`fig3`
-
-
-.. literalinclude:: doc-ksp.queries
-    :start-after: --q4
-    :end-before: --q5
-
-
-Examples for queries marked as ``undirected`` with ``cost`` column
-.........................................................................................
-
-The examples in this section use the following :ref:`fig4`
-
-.. literalinclude:: doc-ksp.queries
-    :start-after: --q5
-    :end-before: --q6
-
-See Also
--------------------------------------------------------------------------------
-
-* http://en.wikipedia.org/wiki/K_shortest_path_routing
-* :ref:`sampledata` network.
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
diff --git a/src/ksp/sql/CMakeLists.txt b/src/ksp/sql/CMakeLists.txt
deleted file mode 100644
index c45978a..0000000
--- a/src/ksp/sql/CMakeLists.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-# Append in local scope
-LIST(APPEND PACKAGE_SQL_FILES
-    ${CMAKE_CURRENT_SOURCE_DIR}/routing_ksp.sql 
-    ${CMAKE_CURRENT_SOURCE_DIR}/withPoints_ksp.sql 
-)
-        
-# set in parent scope
-SET(PACKAGE_SQL_FILES "${PACKAGE_SQL_FILES}" PARENT_SCOPE)
-
diff --git a/src/ksp/sql/routing_ksp.sql b/src/ksp/sql/routing_ksp.sql
deleted file mode 100644
index 13a226f..0000000
--- a/src/ksp/sql/routing_ksp.sql
+++ /dev/null
@@ -1,78 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: routing_ksp.sql
-
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-
-CREATE OR REPLACE FUNCTION _pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer, directed boolean, heap_paths boolean,
-  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
-  RETURNS SETOF RECORD AS
-    '$libdir/${PGROUTING_LIBRARY_NAME}', 'kshortest_path'
-    LANGUAGE c STABLE STRICT;
-
--- V2 the graph is directed and there are no heap paths 
-CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid integer, end_vid integer, k integer, has_rcost boolean)
-  RETURNS SETOF pgr_costresult3 AS
-  $BODY$  
-  DECLARE
-  has_reverse boolean;
-  sql TEXT;
-  BEGIN
-      RAISE NOTICE 'Deprecated function';
-      has_reverse =_pgr_parameter_check('ksp', edges_sql::text, false);
-      sql = edges_sql;
-      IF (has_reverse != has_rcost) THEN
-         IF (has_rcost) THEN
-           -- user says that it has reverse_cost but its not true
-           RAISE EXCEPTION 'has_reverse_cost set to true but reverse_cost not found';
-         ELSE  
-           -- user says that it does not have reverse_cost but it does have it
-           -- to ignore we remove reverse_cost from the query
-           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
-         END IF;
-      END IF;
-
-      RETURN query SELECT ((row_number() over()) -1)::integer  AS seq,  (path_id - 1)::integer AS id1, node::integer AS id2, edge::integer AS id3, cost 
-            FROM _pgr_ksp(sql::text, start_vid, end_vid, k, TRUE, FALSE) WHERE path_id <= k;
-  END
-  $BODY$
-  LANGUAGE plpgsql VOLATILE
-  COST 100
-  ROWS 1000;
-
-
-CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer,
-  directed boolean default true, heap_paths boolean default false,
-  --directed boolean, heap_paths boolean,
-  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
-  RETURNS SETOF RECORD AS
-  $BODY$
-  DECLARE
-  BEGIN
-         RETURN query SELECT *
-                FROM _pgr_ksp(edges_sql::text, start_vid, end_vid, k, directed, heap_paths);
-  END
-  $BODY$
-  LANGUAGE plpgsql VOLATILE
-  COST 100
-  ROWS 1000;
-
diff --git a/src/ksp/sql/withPoints_ksp.sql b/src/ksp/sql/withPoints_ksp.sql
deleted file mode 100644
index eaa11a0..0000000
--- a/src/ksp/sql/withPoints_ksp.sql
+++ /dev/null
@@ -1,44 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: withPoints_ksp.sql
-
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-
-CREATE OR REPLACE FUNCTION pgr_withPointsKSP(
-    edges_sql TEXT, 
-    points_sql TEXT,
-    start_pid BIGINT, 
-    end_pid BIGINT, 
-    k INTEGER,
-
-    directed BOOLEAN DEFAULT TRUE,
-    heap_paths BOOLEAN DEFAULT FALSE,
-    driving_side CHAR DEFAULT 'b',
-    details BOOLEAN DEFAULT FALSE,
-
-    OUT seq INTEGER, OUT path_id INTEGER, OUT path_seq INTEGER,
-    OUT node BIGINT, OUT edge BIGINT,
-    OUT cost FLOAT, OUT agg_cost FLOAT)
-  RETURNS SETOF RECORD AS
-    '$libdir/${PGROUTING_LIBRARY_NAME}', 'withPoints_ksp'
-    LANGUAGE c STABLE STRICT;
-
diff --git a/src/ksp/src/ksp.c b/src/ksp/src/ksp.c
index b62b6a3..7e14334 100644
--- a/src/ksp/src/ksp.c
+++ b/src/ksp/src/ksp.c
@@ -22,16 +22,15 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#include "./../../common/src/postgres_connection.h"
+#include "c_common/postgres_connection.h"
 
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/e_report.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/postgres_connection.h"
-#include "./../../common/src/edges_input.h"
+#include "c_common/debug_macro.h"
+#include "c_common/e_report.h"
+#include "c_common/time_msg.h"
 
-#include "./ksp_driver.h"
+#include "c_common/edges_input.h"
+
+#include "drivers/yen/ksp_driver.h"
 
 PGDLLEXPORT Datum kshortest_path(PG_FUNCTION_ARGS);
 PG_FUNCTION_INFO_V1(kshortest_path);
diff --git a/src/ksp/src/ksp_driver.cpp b/src/ksp/src/ksp_driver.cpp
index 0e845c8..38c146d 100644
--- a/src/ksp/src/ksp_driver.cpp
+++ b/src/ksp/src/ksp_driver.cpp
@@ -23,19 +23,18 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 ********************************************************************PGR-GNU*/
 
 
-#include "./ksp_driver.h"
+#include "drivers/yen/ksp_driver.h"
 
 #include <sstream>
 #include <deque>
 #include <vector>
 
-#include "./pgr_ksp.hpp"
+#include "yen/pgr_ksp.hpp"
 
-#include "./../../common/src/pgr_alloc.hpp"
-#include "./../../common/src/pgr_assert.h"
-#include "./../../common/src/pgr_types.h"
+#include "cpp_common/pgr_alloc.hpp"
+#include "cpp_common/pgr_assert.h"
 
-#include "./../../common/src/pgr_base_graph.hpp"
+#include "cpp_common/pgr_base_graph.hpp"
 
 
 
diff --git a/src/ksp/src/ksp_driver.h b/src/ksp/src/ksp_driver.h
deleted file mode 100644
index cfc85ce..0000000
--- a/src/ksp/src/ksp_driver.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: ksp_driver.h
-
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifndef SRC_KSP_SRC_KSP_DRIVER_H_
-#define SRC_KSP_SRC_KSP_DRIVER_H_
-
-#pragma once
-
-#include "./../../common/src/pgr_types.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-    void  do_pgr_ksp(
-            pgr_edge_t  *data_edges,
-            size_t total_edges,
-            int64_t  start_vid,
-            int64_t end_vid,
-            int no_paths,
-            bool directed,
-            bool heap_paths,
-            General_path_element_t **return_tuples,
-            size_t *return_count,
-            char ** log_msg,
-            char ** notice_msg,
-            char ** err_msg);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif  // SRC_KSP_SRC_KSP_DRIVER_H_
diff --git a/src/ksp/src/pgr_ksp.cpp b/src/ksp/src/pgr_ksp.cpp
deleted file mode 100644
index ed692a9..0000000
--- a/src/ksp/src/pgr_ksp.cpp
+++ /dev/null
@@ -1,165 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: pgr_ksp.cpp
-
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-
-#include <deque>
-#include <set>
-
-#include "./../../common/src/pgr_assert.h"
-#include "./../../common/src/basePath_SSEC.hpp"
-
-template < class G >
-void Pgr_ksp< G >::clear() {
-        m_Heap.clear();
-}
-
-template < class G >
-void Pgr_ksp< G >::getFirstSolution(G &graph) {
-     Path path;
-
-     Pgr_dijkstra< G > fn_dijkstra;
-     path = fn_dijkstra.dijkstra(graph, m_start, m_end);
-
-     if (path.empty()) return;
-     curr_result_path = path;
-     m_ResultSet.insert(curr_result_path);
-}
-
-template < class G>
-std::deque<Path>
-Pgr_ksp< G >::Yen(G &graph,
-  int64_t  start_vertex, int64_t end_vertex, int K, bool heap_paths) {
-    /*
-     * No path: already in destination
-     */
-    if ((start_vertex == end_vertex) || (K == 0)) {
-        return std::deque<Path>();
-    }
-    /*
-     * no path: disconnected vertices
-     */
-    if (!graph.has_vertex(start_vertex)
-                || !graph.has_vertex(end_vertex)) {
-        return std::deque<Path>();
-    }
-    m_ResultSet.clear();
-    m_Heap.clear();
-
-    v_source = graph.get_V(start_vertex);
-    v_target = graph.get_V(end_vertex);
-    m_start = start_vertex;
-    m_end = end_vertex;
-    executeYen(graph, K);
-
-    while (!m_ResultSet.empty()) {
-        m_Heap.insert(*m_ResultSet.begin());
-        m_ResultSet.erase(m_ResultSet.begin());
-    }
-    std::deque<Path> l_ResultList(m_Heap.begin(), m_Heap.end());
-
-    std::stable_sort(l_ResultList.begin(), l_ResultList.end(),
-            [](const Path &left, const Path &right) -> bool {
-            for (size_t i = 0 ; i < (std::min)(left.size(), right.size()); ++i) {
-            if (left[i].node < right[i].node) return true;
-            if (left[i].node > right[i].node) return false;
-            }
-            return false;
-            });
-
-    std::stable_sort(l_ResultList.begin(), l_ResultList.end(),
-            [](const Path &left, const Path &right) {
-            return left.size() < right.size();});
-
-    if (!heap_paths && l_ResultList.size() > (size_t) K)
-        l_ResultList.resize(K);
-
-    return l_ResultList;
-}
-
-
-template < class G >
-void Pgr_ksp< G >::removeVertices(G &graph, const Path &subpath) {
-    for (const auto &e : subpath)
-        graph.disconnect_vertex(e.node);
-}
-
-template < class G >
-void Pgr_ksp< G >::doNextCycle(G &graph) {
-
-
-    int64_t spurNodeId;
-
-
-    for (unsigned int i = 0; i < curr_result_path.size(); ++i) {
-
-        spurNodeId = curr_result_path[i].node;
-
-        auto rootPath = curr_result_path.getSubpath(i);
-
-        for (const auto &path : m_ResultSet) {
-            if (path.isEqual(rootPath)) {
-                if (path.size() > i + 1) {
-                    graph.disconnect_edge(path[i].node,     // from
-                            path[i + 1].node);  // to
-                }
-            }
-        }
-
-        removeVertices(graph, rootPath);
-
-        Pgr_dijkstra< G > fn_dijkstra;
-        auto spurPath = fn_dijkstra.dijkstra(graph, spurNodeId, m_end);
-
-        if (spurPath.size() > 0) {
-            rootPath.appendPath(spurPath);
-            m_Heap.insert(rootPath);
-        }
-
-        graph.restore_graph();
-    }
-}
-
-template < class G >
-void Pgr_ksp< G >::executeYen(G &graph, int K) {
-    clear();
-    getFirstSolution(graph);
-
-    if (m_ResultSet.size() == 0) return;  // no path found
-
-    while (m_ResultSet.size() < (unsigned int) K) {
-        doNextCycle(graph);
-        if (m_Heap.empty()) break;
-        curr_result_path = *m_Heap.begin();
-        m_ResultSet.insert(curr_result_path);
-        m_Heap.erase(m_Heap.begin());
-        /*
-         * without the next line withpointsKSP hungs with:
-         *  c++ 4.6
-         *  Debug mode
-         */
-#ifndef NDEBUG
-        log << "end of while heap size" << m_Heap.size();
-#endif
-    }
-}
diff --git a/src/ksp/src/pgr_ksp.hpp b/src/ksp/src/pgr_ksp.hpp
deleted file mode 100644
index 88cf202..0000000
--- a/src/ksp/src/pgr_ksp.hpp
+++ /dev/null
@@ -1,122 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: pgr_ksp.hpp
-
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#pragma once
-
-#include "./../../dijkstra/src/pgr_dijkstra.hpp"
-
-#include <sstream>
-#include <deque>
-#include <vector>
-#include <set>
-#include <limits>
-
-#include "./../../common/src/pgr_assert.h"
-#include "./../../common/src/basePath_SSEC.hpp"
-
-template < class G >
-class Pgr_ksp {
- public:
-     std::deque<Path> Yen(G &graph, int64_t source, int64_t target, int K, bool heap_paths);
-     void clear();
-
- private:
-     class compPaths {
-      public:
-          bool operator()(const Path &p1, const Path &p2) const {
-              /*
-               * less cost is best
-               */
-              if (p1.tot_cost() > p2.tot_cost())
-                  return  false;
-              if (p1.tot_cost() < p2.tot_cost())
-                return  true;
-
-              pgassert(p1.tot_cost() == p2.tot_cost());
-
-              // paths costs are equal now check by length
-              if (p1.size() > p2.size())
-                  return false;
-              if (p1.size() < p2.size())
-                  return true;
-
-              pgassert(p1.tot_cost() == p2.tot_cost());
-              pgassert(p1.size() == p2.size());
-
-              // paths weights & lengths are equal now check by node ID
-              unsigned int i;
-              for (i = 0; i < p1.size(); i++) {
-                  if (p1[i].node >  p2[i].node)
-                      return false;
-                  if (p1[i].node <  p2[i].node)
-                      return true;
-              }
-
-              pgassert(p1.tot_cost() == p2.tot_cost());
-              pgassert(p1.size() == p2.size());
-#ifdef NDEBUG
-              for (i = 0; i < p1.size(); i++) {
-                  pgassert(p1[i].node == p2[i].node);
-              }
-#endif
-
-              // we got here and everything is equal
-              return false;
-          }
-     };
-
-     //! the actual algorithm
-     void executeYen(G &graph, int top_k);
-
-     /** @name Auxiliary function for yen's algorithm */
-     ///@{
-
-     //! Performs the first Dijkstra of the algorithm
-     void getFirstSolution(G &graph);
-     //! Performs the next cycle of the algorithm
-     void doNextCycle(G &graph);
-     //! stores in subPath the first i elements of path
-     void removeVertices(G &graph, const Path &path);
-     ///@}
-
- private:
-     /** @name members */
-     ///@{
-     typedef typename G::V V;
-     V v_source;  //!< source descriptor
-     V v_target;  //!< target descriptor
-     int64_t m_start;  //!< source id
-     int64_t m_end;   //!< target id
-
-     Path curr_result_path;  //!< storage for the current result
-
-     typedef std::set<Path, compPaths> pSet;
-     pSet m_ResultSet;  //!< ordered set of shortest paths
-     pSet m_Heap;  //!< the heap
-
-     std::ostringstream log;
-};
-
-#include "./pgr_ksp.cpp"
-
diff --git a/src/ksp/src/withPoints_ksp.c b/src/ksp/src/withPoints_ksp.c
index 12ae5db..f5579ff 100644
--- a/src/ksp/src/withPoints_ksp.c
+++ b/src/ksp/src/withPoints_ksp.c
@@ -27,17 +27,18 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#include "./../../common/src/postgres_connection.h"
+#include "c_common/postgres_connection.h"
 #include "utils/array.h"
 
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/e_report.h"
-#include "./../../common/src/edges_input.h"
-#include "./../../common/src/points_input.h"
-#include "./../../withPoints/src/get_new_queries.h"
-#include "./withPoints_ksp_driver.h"
-#include "./../../common/src/debug_macro.h"
+#include "c_common/time_msg.h"
+#include "c_common/e_report.h"
+
+#include "c_common/edges_input.h"
+#include "c_common/points_input.h"
+
+#include "drivers/withPoints/get_new_queries.h"
+#include "drivers/yen/withPoints_ksp_driver.h"
+#include "c_common/debug_macro.h"
 
 PGDLLEXPORT Datum withPoints_ksp(PG_FUNCTION_ARGS);
 PG_FUNCTION_INFO_V1(withPoints_ksp);
diff --git a/src/ksp/src/withPoints_ksp_driver.cpp b/src/ksp/src/withPoints_ksp_driver.cpp
index a42d099..a5acb9a 100644
--- a/src/ksp/src/withPoints_ksp_driver.cpp
+++ b/src/ksp/src/withPoints_ksp_driver.cpp
@@ -27,18 +27,18 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#include "./withPoints_ksp_driver.h"
+#include "drivers/yen/withPoints_ksp_driver.h"
 
 
 #include <sstream>
 #include <deque>
 #include <vector>
 
-#include "./pgr_ksp.hpp"
+#include "yen/pgr_ksp.hpp"
 
 #include "./../../withPoints/src/pgr_withPoints.hpp"
-#include "./../../common/src/pgr_alloc.hpp"
-#include "./../../common/src/pgr_assert.h"
+#include "cpp_common/pgr_alloc.hpp"
+#include "cpp_common/pgr_assert.h"
 
 
 // CREATE OR REPLACE FUNCTION pgr_withPointsKSP(
diff --git a/src/ksp/src/withPoints_ksp_driver.h b/src/ksp/src/withPoints_ksp_driver.h
deleted file mode 100644
index 2d95c2a..0000000
--- a/src/ksp/src/withPoints_ksp_driver.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: withPoints_driver.h
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer: 
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: 
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#pragma once
-
-#include "./../../common/src/pgr_types.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-    //  CREATE OR REPLACE FUNCTION pgr_withPointKsp(
-    //  edges_sql TEXT,
-    //  points_sql TEXT,
-    //  start_pid BIGINT,
-    //  end_pid BIGINT,
-    //  directed BOOLEAN DEFAULT true,
-    int do_pgr_withPointsKsp(
-            pgr_edge_t  *edges,             size_t total_edges,
-            Point_on_edge_t  *points,       size_t total_points,
-            pgr_edge_t  *edges_of_points,   size_t total_edges_of_points,
-            int64_t start_pid,
-            int64_t end_pid,
-            int k,
-            bool directed,
-            bool heap_paths,
-            char driving_side,
-            bool details,
-
-            General_path_element_t **return_tuples,
-            size_t *return_count,
-            char ** log_msg,
-            char ** notice_msg,
-            char ** err_msg);
-
-
-#ifdef __cplusplus
-    }
-#endif
-
diff --git a/src/ksp/test/doc-ksp-v2.result b/src/ksp/test/doc-ksp-v2.result
deleted file mode 100644
index d0dc1a4..0000000
--- a/src/ksp/test/doc-ksp-v2.result
+++ /dev/null
@@ -1,29 +0,0 @@
---q1
-NOTICE:  Deprecated function
-0|0|7|6|1
-1|0|8|7|1
-2|0|5|8|1
-3|0|6|9|1
-4|0|9|15|1
-5|0|12|-1|0
-6|1|7|6|1
-7|1|8|7|1
-8|1|5|8|1
-9|1|6|11|1
-10|1|11|13|1
-11|1|12|-1|0
---q2
-NOTICE:  Deprecated function
-0|0|7|6|1
-1|0|8|7|1
-2|0|5|8|1
-3|0|6|9|1
-4|0|9|15|1
-5|0|12|-1|0
-6|1|7|6|1
-7|1|8|7|1
-8|1|5|8|1
-9|1|6|11|1
-10|1|11|13|1
-11|1|12|-1|0
---q3
diff --git a/src/ksp/test/doc-ksp-v2.test.sql b/src/ksp/test/doc-ksp-v2.test.sql
deleted file mode 100644
index 55f8e64..0000000
--- a/src/ksp/test/doc-ksp-v2.test.sql
+++ /dev/null
@@ -1,15 +0,0 @@
-
-\echo --q1
-
-SELECT * FROM pgr_ksp(
-   'SELECT id, source, target, cost FROM edge_table order by id',
-   7, 12, 2, false
- );
-
-\echo --q2
-SELECT * FROM pgr_ksp(
-   'SELECT id, source, target, cost, reverse_cost FROM edge_table order by id',
-   7, 12, 2, true
- );
-
-\echo --q3
diff --git a/src/ksp/test/doc-ksp.result b/src/ksp/test/doc-ksp.result
index 488f146..3488172 100644
--- a/src/ksp/test/doc-ksp.result
+++ b/src/ksp/test/doc-ksp.result
@@ -1,174 +1,274 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 --q1
-NOTICE:  Deprecated function
-0|0|2|4|1
-1|0|5|8|1
-2|0|6|9|1
-3|0|9|15|1
-4|0|12|-1|0
-5|1|2|4|1
-6|1|5|8|1
-7|1|6|11|1
-8|1|11|13|1
-9|1|12|-1|0
-1|1|1|2|4|1|0
-2|1|2|5|8|1|1
-3|1|3|6|9|1|2
-4|1|4|9|15|1|3
-5|1|5|12|-1|0|4
-6|2|1|2|4|1|0
-7|2|2|5|8|1|1
-8|2|3|6|11|1|2
-9|2|4|11|13|1|3
-10|2|5|12|-1|0|4
-1|1|1|2|4|1|0
-2|1|2|5|8|1|1
-3|1|3|6|9|1|2
-4|1|4|9|15|1|3
-5|1|5|12|-1|0|4
-6|2|1|2|4|1|0
-7|2|2|5|8|1|1
-8|2|3|6|11|1|2
-9|2|4|11|13|1|3
-10|2|5|12|-1|0|4
+SELECT * FROM pgr_KSP(
+     'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+      2, 12, 2,
+      directed:=true   
+   );
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |    2 |    4 |    1 |        0
+   2 |       1 |        2 |    5 |    8 |    1 |        1
+   3 |       1 |        3 |    6 |    9 |    1 |        2
+   4 |       1 |        4 |    9 |   15 |    1 |        3
+   5 |       1 |        5 |   12 |   -1 |    0 |        4
+   6 |       2 |        1 |    2 |    4 |    1 |        0
+   7 |       2 |        2 |    5 |    8 |    1 |        1
+   8 |       2 |        3 |    6 |   11 |    1 |        2
+   9 |       2 |        4 |   11 |   13 |    1 |        3
+  10 |       2 |        5 |   12 |   -1 |    0 |        4
+(10 rows)
+
+SELECT * FROM pgr_KSP(
+     'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+      2, 12, 2
+   );
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |    2 |    4 |    1 |        0
+   2 |       1 |        2 |    5 |    8 |    1 |        1
+   3 |       1 |        3 |    6 |    9 |    1 |        2
+   4 |       1 |        4 |    9 |   15 |    1 |        3
+   5 |       1 |        5 |   12 |   -1 |    0 |        4
+   6 |       2 |        1 |    2 |    4 |    1 |        0
+   7 |       2 |        2 |    5 |    8 |    1 |        1
+   8 |       2 |        3 |    6 |   11 |    1 |        2
+   9 |       2 |        4 |   11 |   13 |    1 |        3
+  10 |       2 |        5 |   12 |   -1 |    0 |        4
+(10 rows)
+
 --q2
-1|1|1|2|4|1|0
-2|1|2|5|8|1|1
-3|1|3|6|9|1|2
-4|1|4|9|15|1|3
-5|1|5|12|-1|0|4
-6|2|1|2|4|1|0
-7|2|2|5|8|1|1
-8|2|3|6|11|1|2
-9|2|4|11|13|1|3
-10|2|5|12|-1|0|4
-1|1|1|2|4|1|0
-2|1|2|5|8|1|1
-3|1|3|6|9|1|2
-4|1|4|9|15|1|3
-5|1|5|12|-1|0|4
-6|2|1|2|4|1|0
-7|2|2|5|8|1|1
-8|2|3|6|11|1|2
-9|2|4|11|13|1|3
-10|2|5|12|-1|0|4
-11|3|1|2|4|1|0
-12|3|2|5|10|1|1
-13|3|3|10|12|1|2
-14|3|4|11|13|1|3
-15|3|5|12|-1|0|4
-1|1|1|2|4|1|0
-2|1|2|5|8|1|1
-3|1|3|6|9|1|2
-4|1|4|9|15|1|3
-5|1|5|12|-1|0|4
-6|2|1|2|4|1|0
-7|2|2|5|8|1|1
-8|2|3|6|11|1|2
-9|2|4|11|13|1|3
-10|2|5|12|-1|0|4
-11|3|1|2|4|1|0
-12|3|2|5|10|1|1
-13|3|3|10|12|1|2
-14|3|4|11|13|1|3
-15|3|5|12|-1|0|4
+SELECT * FROM pgr_KSP(
+     'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+      2, 12, 2
+   );
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |    2 |    4 |    1 |        0
+   2 |       1 |        2 |    5 |    8 |    1 |        1
+   3 |       1 |        3 |    6 |    9 |    1 |        2
+   4 |       1 |        4 |    9 |   15 |    1 |        3
+   5 |       1 |        5 |   12 |   -1 |    0 |        4
+   6 |       2 |        1 |    2 |    4 |    1 |        0
+   7 |       2 |        2 |    5 |    8 |    1 |        1
+   8 |       2 |        3 |    6 |   11 |    1 |        2
+   9 |       2 |        4 |   11 |   13 |    1 |        3
+  10 |       2 |        5 |   12 |   -1 |    0 |        4
+(10 rows)
+
+SELECT * FROM pgr_KSP(
+     'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+      2, 12, 2, heap_paths:=true
+   );
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |    2 |    4 |    1 |        0
+   2 |       1 |        2 |    5 |    8 |    1 |        1
+   3 |       1 |        3 |    6 |    9 |    1 |        2
+   4 |       1 |        4 |    9 |   15 |    1 |        3
+   5 |       1 |        5 |   12 |   -1 |    0 |        4
+   6 |       2 |        1 |    2 |    4 |    1 |        0
+   7 |       2 |        2 |    5 |    8 |    1 |        1
+   8 |       2 |        3 |    6 |   11 |    1 |        2
+   9 |       2 |        4 |   11 |   13 |    1 |        3
+  10 |       2 |        5 |   12 |   -1 |    0 |        4
+  11 |       3 |        1 |    2 |    4 |    1 |        0
+  12 |       3 |        2 |    5 |   10 |    1 |        1
+  13 |       3 |        3 |   10 |   12 |    1 |        2
+  14 |       3 |        4 |   11 |   13 |    1 |        3
+  15 |       3 |        5 |   12 |   -1 |    0 |        4
+(15 rows)
+
+SELECT * FROM pgr_KSP(
+     'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+      2, 12, 2, true, true
+   );
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |    2 |    4 |    1 |        0
+   2 |       1 |        2 |    5 |    8 |    1 |        1
+   3 |       1 |        3 |    6 |    9 |    1 |        2
+   4 |       1 |        4 |    9 |   15 |    1 |        3
+   5 |       1 |        5 |   12 |   -1 |    0 |        4
+   6 |       2 |        1 |    2 |    4 |    1 |        0
+   7 |       2 |        2 |    5 |    8 |    1 |        1
+   8 |       2 |        3 |    6 |   11 |    1 |        2
+   9 |       2 |        4 |   11 |   13 |    1 |        3
+  10 |       2 |        5 |   12 |   -1 |    0 |        4
+  11 |       3 |        1 |    2 |    4 |    1 |        0
+  12 |       3 |        2 |    5 |   10 |    1 |        1
+  13 |       3 |        3 |   10 |   12 |    1 |        2
+  14 |       3 |        4 |   11 |   13 |    1 |        3
+  15 |       3 |        5 |   12 |   -1 |    0 |        4
+(15 rows)
+
 --q3
-1|1|1|2|2|1|0
-2|1|2|3|3|1|1
-3|1|3|4|16|1|2
-4|1|4|9|15|1|3
-5|1|5|12|-1|0|4
-6|2|1|2|4|1|0
-7|2|2|5|8|1|1
-8|2|3|6|11|1|2
-9|2|4|11|13|1|3
-10|2|5|12|-1|0|4
-1|1|1|2|2|1|0
-2|1|2|3|3|1|1
-3|1|3|4|16|1|2
-4|1|4|9|15|1|3
-5|1|5|12|-1|0|4
-6|2|1|2|4|1|0
-7|2|2|5|8|1|1
-8|2|3|6|11|1|2
-9|2|4|11|13|1|3
-10|2|5|12|-1|0|4
-11|3|1|2|4|1|0
-12|3|2|5|10|1|1
-13|3|3|10|12|1|2
-14|3|4|11|13|1|3
-15|3|5|12|-1|0|4
-16|4|1|2|4|1|0
-17|4|2|5|10|1|1
-18|4|3|10|12|1|2
-19|4|4|11|11|1|3
-20|4|5|6|9|1|4
-21|4|6|9|15|1|5
-22|4|7|12|-1|0|6
+SELECT * FROM pgr_KSP(
+     'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+      2, 12, 2, directed:=false
+   );
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |    2 |    2 |    1 |        0
+   2 |       1 |        2 |    3 |    3 |    1 |        1
+   3 |       1 |        3 |    4 |   16 |    1 |        2
+   4 |       1 |        4 |    9 |   15 |    1 |        3
+   5 |       1 |        5 |   12 |   -1 |    0 |        4
+   6 |       2 |        1 |    2 |    4 |    1 |        0
+   7 |       2 |        2 |    5 |    8 |    1 |        1
+   8 |       2 |        3 |    6 |   11 |    1 |        2
+   9 |       2 |        4 |   11 |   13 |    1 |        3
+  10 |       2 |        5 |   12 |   -1 |    0 |        4
+(10 rows)
+
+SELECT * FROM pgr_KSP(
+     'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+      2, 12, 2, false, true
+   );
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |    2 |    2 |    1 |        0
+   2 |       1 |        2 |    3 |    3 |    1 |        1
+   3 |       1 |        3 |    4 |   16 |    1 |        2
+   4 |       1 |        4 |    9 |   15 |    1 |        3
+   5 |       1 |        5 |   12 |   -1 |    0 |        4
+   6 |       2 |        1 |    2 |    4 |    1 |        0
+   7 |       2 |        2 |    5 |    8 |    1 |        1
+   8 |       2 |        3 |    6 |   11 |    1 |        2
+   9 |       2 |        4 |   11 |   13 |    1 |        3
+  10 |       2 |        5 |   12 |   -1 |    0 |        4
+  11 |       3 |        1 |    2 |    4 |    1 |        0
+  12 |       3 |        2 |    5 |   10 |    1 |        1
+  13 |       3 |        3 |   10 |   12 |    1 |        2
+  14 |       3 |        4 |   11 |   13 |    1 |        3
+  15 |       3 |        5 |   12 |   -1 |    0 |        4
+  16 |       4 |        1 |    2 |    4 |    1 |        0
+  17 |       4 |        2 |    5 |   10 |    1 |        1
+  18 |       4 |        3 |   10 |   12 |    1 |        2
+  19 |       4 |        4 |   11 |   11 |    1 |        3
+  20 |       4 |        5 |    6 |    9 |    1 |        4
+  21 |       4 |        6 |    9 |   15 |    1 |        5
+  22 |       4 |        7 |   12 |   -1 |    0 |        6
+(22 rows)
+
 --q4
-1|1|1|2|4|1|0
-2|1|2|5|8|1|1
-3|1|3|6|9|1|2
-4|1|4|9|15|1|3
-5|1|5|12|-1|0|4
-6|2|1|2|4|1|0
-7|2|2|5|8|1|1
-8|2|3|6|11|1|2
-9|2|4|11|13|1|3
-10|2|5|12|-1|0|4
-1|1|1|2|4|1|0
-2|1|2|5|8|1|1
-3|1|3|6|9|1|2
-4|1|4|9|15|1|3
-5|1|5|12|-1|0|4
-6|2|1|2|4|1|0
-7|2|2|5|8|1|1
-8|2|3|6|11|1|2
-9|2|4|11|13|1|3
-10|2|5|12|-1|0|4
-11|3|1|2|4|1|0
-12|3|2|5|10|1|1
-13|3|3|10|12|1|2
-14|3|4|11|13|1|3
-15|3|5|12|-1|0|4
-1|1|1|2|4|1|0
-2|1|2|5|8|1|1
-3|1|3|6|9|1|2
-4|1|4|9|15|1|3
-5|1|5|12|-1|0|4
-6|2|1|2|4|1|0
-7|2|2|5|8|1|1
-8|2|3|6|11|1|2
-9|2|4|11|13|1|3
-10|2|5|12|-1|0|4
-11|3|1|2|4|1|0
-12|3|2|5|10|1|1
-13|3|3|10|12|1|2
-14|3|4|11|13|1|3
-15|3|5|12|-1|0|4
+SELECT  * FROM pgr_KSP(
+     'SELECT id, source, target, cost FROM edge_table',
+      2, 3, 2
+   );
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+(0 rows)
+
+SELECT  * FROM pgr_KSP(
+     'SELECT id, source, target, cost FROM edge_table',
+      2, 12, 2
+   );
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |    2 |    4 |    1 |        0
+   2 |       1 |        2 |    5 |    8 |    1 |        1
+   3 |       1 |        3 |    6 |    9 |    1 |        2
+   4 |       1 |        4 |    9 |   15 |    1 |        3
+   5 |       1 |        5 |   12 |   -1 |    0 |        4
+   6 |       2 |        1 |    2 |    4 |    1 |        0
+   7 |       2 |        2 |    5 |    8 |    1 |        1
+   8 |       2 |        3 |    6 |   11 |    1 |        2
+   9 |       2 |        4 |   11 |   13 |    1 |        3
+  10 |       2 |        5 |   12 |   -1 |    0 |        4
+(10 rows)
+
+SELECT   * FROM pgr_KSP(
+     'SELECT id, source, target, cost FROM edge_table',
+      2, 12, 2, heap_paths:=true
+   );
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |    2 |    4 |    1 |        0
+   2 |       1 |        2 |    5 |    8 |    1 |        1
+   3 |       1 |        3 |    6 |    9 |    1 |        2
+   4 |       1 |        4 |    9 |   15 |    1 |        3
+   5 |       1 |        5 |   12 |   -1 |    0 |        4
+   6 |       2 |        1 |    2 |    4 |    1 |        0
+   7 |       2 |        2 |    5 |    8 |    1 |        1
+   8 |       2 |        3 |    6 |   11 |    1 |        2
+   9 |       2 |        4 |   11 |   13 |    1 |        3
+  10 |       2 |        5 |   12 |   -1 |    0 |        4
+  11 |       3 |        1 |    2 |    4 |    1 |        0
+  12 |       3 |        2 |    5 |   10 |    1 |        1
+  13 |       3 |        3 |   10 |   12 |    1 |        2
+  14 |       3 |        4 |   11 |   13 |    1 |        3
+  15 |       3 |        5 |   12 |   -1 |    0 |        4
+(15 rows)
+
+SELECT  * FROM pgr_KSP(
+     'SELECT id, source, target, cost FROM edge_table',
+      2, 12, 2, true, true
+   );
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |    2 |    4 |    1 |        0
+   2 |       1 |        2 |    5 |    8 |    1 |        1
+   3 |       1 |        3 |    6 |    9 |    1 |        2
+   4 |       1 |        4 |    9 |   15 |    1 |        3
+   5 |       1 |        5 |   12 |   -1 |    0 |        4
+   6 |       2 |        1 |    2 |    4 |    1 |        0
+   7 |       2 |        2 |    5 |    8 |    1 |        1
+   8 |       2 |        3 |    6 |   11 |    1 |        2
+   9 |       2 |        4 |   11 |   13 |    1 |        3
+  10 |       2 |        5 |   12 |   -1 |    0 |        4
+  11 |       3 |        1 |    2 |    4 |    1 |        0
+  12 |       3 |        2 |    5 |   10 |    1 |        1
+  13 |       3 |        3 |   10 |   12 |    1 |        2
+  14 |       3 |        4 |   11 |   13 |    1 |        3
+  15 |       3 |        5 |   12 |   -1 |    0 |        4
+(15 rows)
+
 --q5
-1|1|1|2|4|1|0
-2|1|2|5|8|1|1
-3|1|3|6|9|1|2
-4|1|4|9|15|1|3
-5|1|5|12|-1|0|4
-6|2|1|2|4|1|0
-7|2|2|5|8|1|1
-8|2|3|6|11|1|2
-9|2|4|11|13|1|3
-10|2|5|12|-1|0|4
-1|1|1|2|4|1|0
-2|1|2|5|8|1|1
-3|1|3|6|9|1|2
-4|1|4|9|15|1|3
-5|1|5|12|-1|0|4
-6|2|1|2|4|1|0
-7|2|2|5|8|1|1
-8|2|3|6|11|1|2
-9|2|4|11|13|1|3
-10|2|5|12|-1|0|4
-11|3|1|2|4|1|0
-12|3|2|5|10|1|1
-13|3|3|10|12|1|2
-14|3|4|11|13|1|3
-15|3|5|12|-1|0|4
+SELECT  * FROM pgr_KSP(
+     'SELECT id, source, target, cost FROM edge_table',
+      2, 12, 2, directed:=false
+   );
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |    2 |    4 |    1 |        0
+   2 |       1 |        2 |    5 |    8 |    1 |        1
+   3 |       1 |        3 |    6 |    9 |    1 |        2
+   4 |       1 |        4 |    9 |   15 |    1 |        3
+   5 |       1 |        5 |   12 |   -1 |    0 |        4
+   6 |       2 |        1 |    2 |    4 |    1 |        0
+   7 |       2 |        2 |    5 |    8 |    1 |        1
+   8 |       2 |        3 |    6 |   11 |    1 |        2
+   9 |       2 |        4 |   11 |   13 |    1 |        3
+  10 |       2 |        5 |   12 |   -1 |    0 |        4
+(10 rows)
+
+SELECT  * FROM pgr_KSP(
+     'SELECT id, source, target, cost FROM edge_table',
+      2, 12, 2, directed:=false, heap_paths:=true
+   );
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |    2 |    4 |    1 |        0
+   2 |       1 |        2 |    5 |    8 |    1 |        1
+   3 |       1 |        3 |    6 |    9 |    1 |        2
+   4 |       1 |        4 |    9 |   15 |    1 |        3
+   5 |       1 |        5 |   12 |   -1 |    0 |        4
+   6 |       2 |        1 |    2 |    4 |    1 |        0
+   7 |       2 |        2 |    5 |    8 |    1 |        1
+   8 |       2 |        3 |    6 |   11 |    1 |        2
+   9 |       2 |        4 |   11 |   13 |    1 |        3
+  10 |       2 |        5 |   12 |   -1 |    0 |        4
+  11 |       3 |        1 |    2 |    4 |    1 |        0
+  12 |       3 |        2 |    5 |   10 |    1 |        1
+  13 |       3 |        3 |   10 |   12 |    1 |        2
+  14 |       3 |        4 |   11 |   13 |    1 |        3
+  15 |       3 |        5 |   12 |   -1 |    0 |        4
+(15 rows)
+
 --q6
+ROLLBACK;
+ROLLBACK
diff --git a/src/ksp/test/doc-ksp.test.sql b/src/ksp/test/doc-ksp.test.sql
index e68f2c1..220db22 100644
--- a/src/ksp/test/doc-ksp.test.sql
+++ b/src/ksp/test/doc-ksp.test.sql
@@ -6,13 +6,6 @@
 
    SELECT * FROM pgr_KSP(
      'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-      2, 12, 2, 
-      true   -- takes the (V2.0) signature (has_rcost = true and works on directed graph)
-   );
-
-
-   SELECT * FROM pgr_KSP(
-     'SELECT id, source, target, cost, reverse_cost FROM edge_table',
       2, 12, 2,
       directed:=true   -- takes the new signature
    );
diff --git a/src/ksp/test/ksp-network.result b/src/ksp/test/ksp-network.result
deleted file mode 100644
index 9620cb7..0000000
--- a/src/ksp/test/ksp-network.result
+++ /dev/null
@@ -1,2 +0,0 @@
-t|t|t
-t|t|t
diff --git a/src/ksp/test/ksp-network.test.sql b/src/ksp/test/ksp-network.test.sql
deleted file mode 100644
index 223e7ea..0000000
--- a/src/ksp/test/ksp-network.test.sql
+++ /dev/null
@@ -1,116 +0,0 @@
---
--- Generate 15 shortest paths between nodes 4 and 5
--- with auto detection
--- V3
---
---  
--- Create a test data base
---
-
-DO $$
-DECLARE debuglevel TEXT;
-BEGIN
-EXECUTE 'show client_min_messages' into debuglevel;
-
-SET client_min_messages = WARNING;
-CREATE table nodes (
-        id serial NOT NULL,
-        vertex INTEGER NOT NULL,
-        name text  not NULL
-);
--- Add a geom column
-PERFORM addgeometrycolumn('','nodes','the_geom',3857,'POINT',2);
-
-CREATE table network (
-        id serial NOT NULL,
-        source INTEGER NOT NULL,
-        target INTEGER NOT NULL,
-        cost double precision,
-        reverse_cost double precision 
-);
--- Add a geom column
-PERFORM addgeometrycolumn('','network','the_geom',3857,'MULTILINESTRING',2);
--- Make the vertexs, location is not important in this example
-INSERT INTO nodes (vertex,the_geom,name) values (0,st_SetSRID(st_makepoint(0,0),3857),'Zero');
-INSERT INTO nodes (vertex,the_geom,name) values (1,st_SetSRID(st_makepoint(1,1),3857),'One');
-INSERT INTO nodes (vertex,the_geom,name) values (2,st_SetSRID(st_makepoint(2,2),3857),'Two');
-INSERT INTO nodes (vertex,the_geom,name) values (3,st_SetSRID(st_makepoint(3,3),3857),'Three');
-INSERT INTO nodes (vertex,the_geom,name) values (4,st_SetSRID(st_makepoint(4,4),3857),'Four');
-INSERT INTO nodes (vertex,the_geom,name) values (5,st_SetSRID(st_makepoint(4,6),3857),'Five');
-INSERT INTO nodes (vertex,the_geom,name) values (6,st_SetSRID(st_makepoint(6,5),3857),'Six');
-INSERT INTO nodes (vertex,the_geom,name) values (7,st_SetSRID(st_makepoint(7,2),3857),'Seven');
-INSERT INTO nodes (vertex,the_geom,name) values (8,st_SetSRID(st_makepoint(4,8),3857),'Eight');
-INSERT INTO nodes (vertex,the_geom,name) values (9,st_SetSRID(st_makepoint(2,8),3857),'Nine');
-INSERT INTO nodes (vertex,the_geom,name) values (10,st_SetSRID(st_makepoint(10,10),3857),'Ten');
-INSERT INTO nodes (vertex,the_geom,name) values (11,st_SetSRID(st_makepoint(1,10),3857),'Eleven');
-INSERT INTO nodes (vertex,the_geom,name) values (12,st_SetSRID(st_makepoint(4,12),3857),'Twelve');
-INSERT INTO nodes (vertex,the_geom,name) values (13,st_SetSRID(st_makepoint(2,12),3857),'Thirteen');
-
-INSERT INTO network(source,target) values(0,1);
-INSERT INTO network(source,target) values(0,2);
-INSERT INTO network(source,target) values(0,3);
-INSERT INTO network(source,target) values(1,0);
-INSERT INTO network(source,target) values(1,2);
-INSERT INTO network(source,target) values(1,7);
-INSERT INTO network(source,target) values(2,0);
-INSERT INTO network(source,target) values(2,1);
-INSERT INTO network(source,target) values(2,5);
-INSERT INTO network(source,target) values(3,0);
-INSERT INTO network(source,target) values(3,4);
-INSERT INTO network(source,target) values(3,10);
-INSERT INTO network(source,target) values(4,3);
-INSERT INTO network(source,target) values(4,6);
-INSERT INTO network(source,target) values(4,5);
-INSERT INTO network(source,target) values(5,2);
-INSERT INTO network(source,target) values(5,4);
-INSERT INTO network(source,target) values(5,9);
-INSERT INTO network(source,target) values(5,13);
-INSERT INTO network(source,target) values(6,4);
-INSERT INTO network(source,target) values(6,7);
-INSERT INTO network(source,target) values(7,6);
-INSERT INTO network(source,target) values(7,8);
-INSERT INTO network(source,target) values(7,1);
-INSERT INTO network(source,target) values(8,7);
-INSERT INTO network(source,target) values(8,11);
-INSERT INTO network(source,target) values(8,12);
-INSERT INTO network(source,target) values(9,5);
-INSERT INTO network(source,target) values(10,3);
-INSERT INTO network(source,target) values(10,11);
-INSERT INTO network(source,target) values(10,12);
-INSERT INTO network(source,target) values(11,8);
-INSERT INTO network(source,target) values(11,10);
-INSERT INTO network(source,target) values(11,13);
-INSERT INTO network(source,target) values(12,10);
-INSERT INTO network(source,target) values(12,8);
-INSERT INTO network(source,target) values(12,13);
-INSERT INTO network(source,target) values(13,12);
-INSERT INTO network(source,target) values(13,5);
-INSERT INTO network(source,target) values(13,11);
--- Create geoms for the network table 
-update  network set 
-    the_geom = st_setsrid(st_geomfromtext('MULTILINESTRING(('|| st_x(s.the_geom) ||' '|| st_y(s.the_geom)|| ','|| st_x(t.the_geom) || ' ' || st_y(t.the_geom) ||'))'),3857)
-    from nodes s, nodes t where network.source=s.vertex and network.target=t.vertex;
-
-update  network set cost = st_length(the_geom);
-update  network set reverse_cost = st_length(the_geom)*5;
-
-
-EXECUTE 'set client_min_messages  to '|| debuglevel;
-END $$;
-
-
--- TESTS START
-
-SELECT DISTINCT node = network.source AS e1,  edge = network.id AS e2, round(network.cost::numeric,4) = round(result.cost::numeric, 4) AS e3
-FROM pgr_ksp(
-    'SELECT id, source, target, cost from network order by id',
-    4, 5::BIGINT,
-    15) result, network where id = edge order by e1, e2, e3;
-
-
-SELECT DISTINCT node = network.source AS e1,  edge = network.id AS e2, round(network.cost::numeric,4) = round(result.cost::numeric, 4) AS e3
-FROM pgr_ksp(
-    'SELECT id, source, target, cost from network order by id',
-    4, 5,
-    15) result, network where id = edge order by e1, e2, e3;
-
diff --git a/src/ksp/test/test.conf b/src/ksp/test/test.conf
index 7c69560..75f281f 100644
--- a/src/ksp/test/test.conf
+++ b/src/ksp/test/test.conf
@@ -5,13 +5,10 @@
         'comment' => 'KSP',
         'data' => [''],
         'tests' => [qw(
-            doc-ksp-v2
             doc-ksp
-            ksp-network
             )],
         'documentation' => [qw(
             doc-ksp
-            doc-ksp-v2
             )]
     },
 #    'vpg-vpgis' => {}, # for version specific tests
diff --git a/src/label_graph/doc/doc-pgr_labelGraph.queries b/src/label_graph/doc/doc-pgr_labelGraph.queries
deleted file mode 100644
index 5162e5f..0000000
--- a/src/label_graph/doc/doc-pgr_labelGraph.queries
+++ /dev/null
@@ -1,24 +0,0 @@
-BEGIN;
-BEGIN
-SET client_min_messages TO NOTICE;
-SET
---q1
-SET client_min_messages TO WARNING;
-SET
-SELECT pgr_labelGraph('edge_table', 'id', 'source', 'target', 'subgraph');
- pgr_labelgraph 
-----------------
- OK
-(1 row)
-
-SELECT subgraph, count(*) FROM edge_table group by subgraph;
- subgraph | count 
-----------+-------
-        1 |    16
-        3 |     1
-        2 |     1
-(3 rows)
-
---q2
-ROLLBACK;
-ROLLBACK
diff --git a/src/label_graph/doc/pgr_labelGraph.rst b/src/label_graph/doc/pgr_labelGraph.rst
deleted file mode 100644
index 2464588..0000000
--- a/src/label_graph/doc/pgr_labelGraph.rst
+++ /dev/null
@@ -1,87 +0,0 @@
-..
-   ****************************************************************************
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_labelGraph:
-
-
-pgr_labelGraph - Proposed
-===============================================================================
-
-Name
--------------------------------------------------------------------------------
-
-``pgr_labelGraph`` — Locates and labels sub-networks within a network which are not topologically connected.
-
-.. include:: proposed.rst
-    :start-after: begin-warn-expr
-    :end-before: end-warn-expr
-
-
-Synopsis
--------------------------------------------------------------------------------
-
-Must be run after ``pgr_createTopology()``. No use of ``geometry`` column. Only ``id``, ``source`` and  ``target`` columns are required.
-
-The function returns:
-
-  - ``OK`` when a column with provided name has been generated and populated successfully. All connected edges will have unique similar integer values. In case of ``rows_where`` condition, non participating rows will have -1 integer values.
-  - ``FAIL`` when the processing cannot be finished due to some error. Notice will be thrown accordingly.
-  - ``rows_where condition generated 0 rows`` when passed SQL condition has not been fulfilled by any row.
-
-.. index::
-	single: labelGraph(Complete Signature) - Proposed
-
-.. code-block:: sql
-
-	varchar pgr_labelGraph(text, text, text, text, text, text)
-
-
-
-Description
--------------------------------------------------------------------------------
-
-A network behind any routing query may consist of sub-networks completely isolated from each other. Possible reasons could be:
-
-- An island with no bridge connecting to the mainland.
-- An edge or mesh of edges failed to connect to other networks because of human negligence during data generation.
-- The data is not properly noded.
-- Topology creation failed to succeed.
-
-pgr_labelGraph() will create an integer column (with the name provided by the user) and will assign same integer values to all those edges in the network which are connected topologically. Thus better analysis regarding network structure is possible. In case of ``rows_where`` condition, non participating rows will have -1 integer values.
-
-Prerequisites:
-Must run ``pgr_createTopology()`` in order to generate ``source`` and ``target`` columns. Primary key column ``id`` should also be there in the network table.
-
-Function accepts the following parameters:
-
-:edge_table: ``text`` Network table name, with optional schema name.
-:id: ``text`` Primary key column name of the network table. Default is ``id``.
-:source: ``text`` Source column name generated after ``pgr_createTopology()``. Default is ``source``.
-:target: ``text`` Target column name generated after ``pgr_createTopology()``. Default is ``target``.
-:subgraph: ``text`` Column name which will hold the integer labels for each sub-graph. Default is ``subgraph``.
-:rows_where: ``text`` The SQL where condition. Default is ``true``, means the processing will be done on the whole table.
-
-
-
-
-Example Usage
--------------------------------------------------------------------------------
-
-The sample data, has 3 subgraphs.
-
-.. literalinclude:: doc-pgr_labelGraph.queries
-   :start-after: --q1
-   :end-before: --q2
-
-
-See Also
--------------------------------------------------------------------------------
-
-* `pgr_createTopology <https://github.com/Zia-/pgrouting/blob/develop/src/common/sql/pgrouting_topology.sql>`_ to create the topology of a table based on its geometry and tolerance value.
diff --git a/src/label_graph/sql/CMakeLists.txt b/src/label_graph/sql/CMakeLists.txt
deleted file mode 100644
index 7cc8c31..0000000
--- a/src/label_graph/sql/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-# Append in local scope
-LIST(APPEND PACKAGE_SQL_FILES
-    ${CMAKE_CURRENT_SOURCE_DIR}/label_graph.sql 
-)
-
-# set in parent scope
-SET(PACKAGE_SQL_FILES "${PACKAGE_SQL_FILES}" PARENT_SCOPE)
diff --git a/src/label_graph/sql/label_graph.sql b/src/label_graph/sql/label_graph.sql
deleted file mode 100644
index 6be3cf3..0000000
--- a/src/label_graph/sql/label_graph.sql
+++ /dev/null
@@ -1,194 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-CREATE OR REPLACE FUNCTION pgr_labelGraph(
-                edge_table text,
-                id text default 'id',
-                source text default 'source',
-                target text default 'target',
-                subgraph text default 'subgraph',
-                rows_where text default 'true'
-        )
-        RETURNS character varying AS
-$BODY$
-
-DECLARE
-        naming record;
-        schema_name text;
-        table_name text;
-        garbage text;
-        incre integer;
-        table_schema_name text;
-        query text;
-        ecnt integer;
-        sql1 text;
-        rec1 record;
-        sql2 text;
-        rec2 record;
-        rec_count record;
-        rec_single record;
-        graph_id integer;
-        gids int [];   
-
-BEGIN   
-        raise notice 'Processing:';
-        raise notice 'pgr_brokenGraph(''%'',''%'',''%'',''%'',''%'',''%'')', edge_table,id,source,target,subgraph,rows_where;
-        raise notice 'Performing initial checks, please hold on ...';
-
-        Raise Notice 'Starting - Checking table ...';
-        BEGIN
-                raise debug 'Checking % table existance', edge_table;
-                execute 'select * from pgr_getTableName('|| quote_literal(edge_table) ||')' into naming;
-                schema_name = naming.sname;
-                table_name = naming.tname;
-                table_schema_name = schema_name||'.'||table_name;
-                IF schema_name is null then
-                        raise notice 'no schema';
-                        return 'FAIL';
-                else 
-                        if table_name is null then
-                                raise notice 'no table';
-                                return 'FAIL';
-                        end if;
-                end if;
-        END;
-        Raise Notice 'Ending - Checking table';
-
-        Raise Notice 'Starting - Checking columns';
-        BEGIN
-                raise debug 'Checking exitance of necessary columns inside % table', edge_table;
-                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(id) ||')' into naming;
-                if naming.pgr_iscolumnintable = 'f' then
-                        raise notice 'no id column';
-                        return 'FAIL';
-                end if;
-                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(source) ||')' into naming;
-                if naming.pgr_iscolumnintable = 'f' then
-                        raise notice 'no source column';
-                        return 'FAIL';
-                end if;
-                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(target) ||')' into naming;
-                if naming.pgr_iscolumnintable = 'f' then
-                        raise notice 'no target column';
-                        return 'FAIL';
-                end if;
-                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(subgraph) ||')' into naming;
-                if naming.pgr_iscolumnintable = 't' then
-                        raise notice 'subgraph column already in the table';
-                        return 'FAIL';
-                end if;
-        END;
-        Raise Notice 'Ending - Checking columns';
-
-        Raise Notice 'Starting - Checking rows_where condition';
-        BEGIN
-                raise debug 'Checking rows_where condition';
-                query='select count(*) from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where;
-                execute query into ecnt;
-                raise debug '-->Rows where condition: OK';
-                raise debug '    --> OK';
-                EXCEPTION WHEN OTHERS THEN
-                        raise notice 'Got %', SQLERRM;
-                        Raise notice 'ERROR: Condition is not correct. Please execute the following query to test your condition';
-                        Raise notice '%', query;
-                        return 'FAIL';
-        END;
-        Raise Notice 'Ending - Checking rows_where condition';
-
-        garbage := 'garbage001';
-        incre := 1;
-        Raise Notice 'Starting - Checking temporary column';
-        Begin
-                raise debug 'Checking Checking temporary columns existance';
-                
-                While True
-                        Loop
-                                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(garbage) ||')' into naming;
-                                If naming.pgr_iscolumnintable = 't' THEN
-                                        incre := incre + 1;
-                                        garbage := 'garbage00'||incre||'';
-                                ELSE
-                                        EXIT;
-                                END IF;
-                        End Loop;
-        End;
-        Raise Notice 'Ending - Checking temporary column';
-
-        Raise Notice 'Starting - Calculating subgraphs';
-        BEGIN
-                --------- Add necessary columns ----------
-                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(subgraph) || ' INTEGER DEFAULT -1';
-                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(garbage) || ' INTEGER DEFAULT 0';
-                graph_id := 1;
-
-                EXECUTE 'select count(*) as count from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where ||'' into rec_count;
-                if rec_count.count = 0 then
-                        RETURN 'rows_where condition generated 0 rows';
-                end if; 
-
-                WHILE TRUE
-                        LOOP
-                                ---------- Assign the very first -1 row graph_id ----------
-                                EXECUTE 'SELECT ' || pgr_quote_ident(id) || ' AS gid FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1 LIMIT 1' INTO rec_single;
-                                EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec_single.gid || '';
-
-                                --------- Search other rows with that particular graph_id -----------
-                                WHILE TRUE
-                                        LOOP
-                                                EXECUTE 'SELECT COUNT(*) FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0' into rec_count;
-                                                ----------- The following if else will check those rows which already have entertained ------------
-                                                IF (rec_count.count > 0) THEN
-                                                        sql1 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0';
-                                                        FOR rec1 IN EXECUTE sql1
-                                                                LOOP
-                                                                        sql2 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| pgr_quote_ident(source) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(source) ||' = '|| rec1.target ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.target ||'';
-                                                                        FOR rec2 IN EXECUTE sql2
-                                                                                LOOP
-                                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec2.gid || '';
-                                                                                END LOOP;
-                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(garbage) || ' = 1 WHERE ' || pgr_quote_ident(id) || ' = ' || rec1.gid || '';
-                                                                END LOOP;
-                                                ELSE
-                                                        EXIT;
-                                                END IF;
-                                        END LOOP;
-                                
-                                ------ Following is to exit the while loop. 0 means no more -1 id.
-                                EXECUTE 'SELECT COUNT(*) AS count FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1' INTO rec_count;
-                                If (rec_count.count = 0) THEN
-                                        EXIT;
-                                ELSE
-                                        graph_id := graph_id + 1;
-                                END IF;
-                        END LOOP;
-
-                ----------- Drop garbage column ------------
-                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' DROP COLUMN ' || pgr_quote_ident(garbage) ||'';
-                Raise Notice 'Successfully complicated calculating subgraphs';
-        END;
-        Raise Notice 'Ending - Calculating subgraphs';
-
-        RETURN 'OK';
-
-END;
-$BODY$
-LANGUAGE plpgsql VOLATILE STRICT;
diff --git a/src/label_graph/test/doc-pgr_labelGraph.result b/src/label_graph/test/doc-pgr_labelGraph.result
index 244e737..34f18d2 100644
--- a/src/label_graph/test/doc-pgr_labelGraph.result
+++ b/src/label_graph/test/doc-pgr_labelGraph.result
@@ -1,6 +1,24 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 --q1
-OK
-1|16
-3|1
-2|1
+SET client_min_messages TO WARNING;
+SET
+SELECT pgr_labelGraph('edge_table', 'id', 'source', 'target', 'subgraph');
+ pgr_labelgraph 
+----------------
+ OK
+(1 row)
+
+SELECT DISTINCT subgraph FROM edge_table ORDER BY subgraph;
+ subgraph 
+----------
+        1
+        2
+        3
+(3 rows)
+
 --q2
+ROLLBACK;
+ROLLBACK
diff --git a/src/label_graph/test/doc-pgr_labelGraph.test.sql b/src/label_graph/test/doc-pgr_labelGraph.test.sql
index 3d8d7af..b7ce27d 100644
--- a/src/label_graph/test/doc-pgr_labelGraph.test.sql
+++ b/src/label_graph/test/doc-pgr_labelGraph.test.sql
@@ -1,5 +1,5 @@
 \echo --q1
 SET client_min_messages TO WARNING;
 SELECT pgr_labelGraph('edge_table', 'id', 'source', 'target', 'subgraph');
-SELECT subgraph, count(*) FROM edge_table group by subgraph;
+SELECT DISTINCT subgraph FROM edge_table ORDER BY subgraph;
 \echo --q2
diff --git a/src/lineGraph/src/CMakeLists.txt b/src/lineGraph/src/CMakeLists.txt
new file mode 100644
index 0000000..86869a9
--- /dev/null
+++ b/src/lineGraph/src/CMakeLists.txt
@@ -0,0 +1,4 @@
+ADD_LIBRARY(lineGraph OBJECT
+    lineGraph.c
+    lineGraph_driver.cpp
+    )
diff --git a/src/lineGraph/src/lineGraph.c b/src/lineGraph/src/lineGraph.c
new file mode 100644
index 0000000..2cb5ed2
--- /dev/null
+++ b/src/lineGraph/src/lineGraph.c
@@ -0,0 +1,223 @@
+/*PGR-GNU*****************************************************************
+File: lineGraph.c
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2017 Vidhan Jain
+Mail: vidhanj1307 at gmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+/** @file lineGraph.c
+ * @brief Connecting code with postgres.
+ *
+ * This file is fully documented for understanding
+ *  how the postgres connectinon works
+ *
+ * TODO Remove unnecessary comments before submiting the function.
+ * some comments are in form of PGR_DBG message
+ */
+
+/**
+ *  postgres_connection.h
+ *
+ *  - should always be first in the C code
+ */
+#include "c_common/postgres_connection.h"
+
+
+/* for macro PGR_DBG */
+#include "c_common/debug_macro.h"
+/* for pgr_global_report */
+#include "c_common/e_report.h"
+/* for time_msg & clock */
+#include "c_common/time_msg.h"
+/* for functions to get edges information */
+#include "c_common/edges_input.h"
+
+#include "drivers/lineGraph/lineGraph_driver.h"  // the link to the C++ code of the function
+
+PGDLLEXPORT Datum lineGraph(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(lineGraph);
+
+
+/******************************************************************************/
+/*                          MODIFY AS NEEDED                                  */
+static
+void
+process(
+        char* edges_sql,
+        bool directed,
+        Line_graph_rt **result_tuples,
+        size_t *result_count) {
+    /*
+     *  https://www.postgresql.org/docs/current/static/spi-spi-connect.html
+     */
+    PGR_DBG("\nSQL QUERY: %s\n", edges_sql);
+    if (directed) PGR_DBG("\nDirectedGraph\n");
+    else PGR_DBG("\nUndirectedGraph\n");
+    pgr_SPI_connect();
+
+    (*result_tuples) = NULL;
+    (*result_count) = 0;
+
+    PGR_DBG("Load data");
+    pgr_edge_t *edges = NULL;
+    size_t total_edges = 0;
+
+    pgr_get_edges(edges_sql, &edges, &total_edges);
+    PGR_DBG("Total %ld edges in query:", total_edges);
+
+    if (total_edges == 0) {
+        PGR_DBG("No edges found");
+        pgr_SPI_finish();
+        return;
+    }
+
+    PGR_DBG("Starting processing");
+    clock_t start_t = clock();
+    char *log_msg = NULL;
+    char *notice_msg = NULL;
+    char *err_msg = NULL;
+    do_pgr_lineGraph(
+            edges,
+            total_edges,
+            directed,
+            result_tuples,
+            result_count,
+            &log_msg,
+            &notice_msg,
+            &err_msg);
+
+    time_msg(" processing pgr_lineGraph", start_t, clock());
+    PGR_DBG("Returning %ld tuples", *result_count);
+
+    if (err_msg) {
+        if (*result_tuples) pfree(*result_tuples);
+    }
+    pgr_global_report(log_msg, notice_msg, err_msg);
+
+    if (edges) pfree(edges);
+    if (log_msg) pfree(log_msg);
+    if (notice_msg) pfree(notice_msg);
+    if (err_msg) pfree(err_msg);
+
+    pgr_SPI_finish();
+}
+/*                                                                            */
+/******************************************************************************/
+
+PGDLLEXPORT Datum lineGraph(PG_FUNCTION_ARGS) {
+    FuncCallContext     *funcctx;
+    TupleDesc           tuple_desc;
+
+    /**************************************************************************/
+    /*                          MODIFY AS NEEDED                              */
+    /*                                                                        */
+    Line_graph_rt  *result_tuples = NULL;
+    size_t result_count = 0;
+    /*                                                                        */
+    /**************************************************************************/
+
+    if (SRF_IS_FIRSTCALL()) {
+        MemoryContext   oldcontext;
+        funcctx = SRF_FIRSTCALL_INIT();
+        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
+
+
+        /**********************************************************************/
+        /*                          MODIFY AS NEEDED                          */
+        /*
+           TEXT,
+    directed BOOLEAN DEFAULT true,
+         **********************************************************************/
+
+
+        PGR_DBG("Calling process");
+        process(
+                text_to_cstring(PG_GETARG_TEXT_P(0)),
+                PG_GETARG_BOOL(1),
+                &result_tuples,
+                &result_count);
+
+
+        /*                                                                    */
+        /**********************************************************************/
+
+#if PGSQL_VERSION > 94
+        funcctx->max_calls = result_count;
+#else
+        funcctx->max_calls = (uint32_t)result_count;
+#endif
+        funcctx->user_fctx = result_tuples;
+        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
+                != TYPEFUNC_COMPOSITE) {
+            ereport(ERROR,
+                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+                     errmsg("function returning record called in context "
+                         "that cannot accept type record")));
+        }
+
+        funcctx->tuple_desc = tuple_desc;
+        MemoryContextSwitchTo(oldcontext);
+    }
+
+    funcctx = SRF_PERCALL_SETUP();
+    tuple_desc = funcctx->tuple_desc;
+    result_tuples = (Line_graph_rt*) funcctx->user_fctx;
+
+    if (funcctx->call_cntr < funcctx->max_calls) {
+        HeapTuple    tuple;
+        Datum        result;
+        Datum        *values;
+        bool*        nulls;
+
+        values = palloc(5 * sizeof(Datum));
+        nulls = palloc(5 * sizeof(bool));
+
+
+        size_t i;
+        for (i = 0; i < 5; ++i) {
+            nulls[i] = false;
+        }
+
+        // postgres starts counting from 1
+        values[0] = Int32GetDatum(funcctx->call_cntr + 1);
+        values[1] = Int64GetDatum(result_tuples[funcctx->call_cntr].source);
+        values[2] = Int64GetDatum(result_tuples[funcctx->call_cntr].target);
+        values[3] = Float8GetDatum(result_tuples[funcctx->call_cntr].cost);
+        values[4] = Float8GetDatum(result_tuples[funcctx->call_cntr].reverse_cost);
+
+        tuple = heap_form_tuple(tuple_desc, values, nulls);
+        result = HeapTupleGetDatum(tuple);
+        SRF_RETURN_NEXT(funcctx, result);
+    } else {
+        /**********************************************************************/
+        /*                          MODIFY AS NEEDED                          */
+
+        PGR_DBG("Clean up code");
+
+        /**********************************************************************/
+
+        SRF_RETURN_DONE(funcctx);
+    }
+}
diff --git a/src/lineGraph/src/lineGraph_driver.cpp b/src/lineGraph/src/lineGraph_driver.cpp
new file mode 100644
index 0000000..f67ed49
--- /dev/null
+++ b/src/lineGraph/src/lineGraph_driver.cpp
@@ -0,0 +1,157 @@
+/*PGR-GNU*****************************************************************
+File: lineGraph_driver.cpp
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2017 Vidhan Jain
+Mail: vidhanj1307 at gmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#include "drivers/lineGraph/lineGraph_driver.h"
+
+#include <sstream>
+#include <deque>
+#include <vector>
+
+#include "dijkstra/pgr_dijkstra.hpp"
+
+#include "cpp_common/pgr_alloc.hpp"
+#include "cpp_common/pgr_assert.h"
+
+#include "lineGraph/pgr_lineGraph.hpp"
+
+void get_postgres_result(
+        std::vector< Line_graph_rt > edge_result,
+        Line_graph_rt **return_tuples,
+        size_t &sequence) {
+    (*return_tuples) = pgr_alloc(
+            (int)edge_result.size(),
+            (*return_tuples));
+
+    for (const auto &edge: edge_result) {
+        (*return_tuples)[sequence] = {edge.id, edge.source, edge.target, edge.cost, edge.reverse_cost};
+        sequence++;
+    }
+}
+
+void
+do_pgr_lineGraph(
+        pgr_edge_t  *data_edges,
+        size_t total_edges,
+        bool directed,
+        Line_graph_rt **return_tuples,
+        size_t *return_count,
+        char ** log_msg,
+        char ** notice_msg,
+        char ** err_msg) {
+    std::ostringstream log;
+    std::ostringstream err;
+    std::ostringstream notice;
+    try {
+        pgassert(!(*log_msg));
+        pgassert(!(*notice_msg));
+        pgassert(!(*err_msg));
+        pgassert(!(*return_tuples));
+        pgassert(*return_count == 0);
+        pgassert(total_edges != 0);
+
+        std::vector< Line_graph_rt > results;
+        graphType gType = directed?DIRECTED:UNDIRECTED;
+
+        pgrouting::DirectedGraph digraph(gType);
+        digraph.insert_edges(data_edges, total_edges);
+        if (!directed) {
+            for (size_t ind = 0; ind < total_edges; ind++) {
+                std::swap(data_edges[ind].source, data_edges[ind].target);
+                data_edges[ind].id *= -1;
+            }
+
+            digraph.insert_edges(data_edges, total_edges);
+
+            for (size_t ind = 0;ind < total_edges; ind++) {
+                std::swap(data_edges[ind].source, data_edges[ind].target);
+                data_edges[ind].id *= -1;
+            }
+        }
+
+        digraph.m_num_vertices = 1000;
+        log << digraph << "\n";
+
+        pgrouting::LinearDirectedGraph line(gType);
+        line.insert_vertices(data_edges, total_edges);
+        line.transform(digraph);
+
+        std::vector< Line_graph_rt > line_graph_edges;
+        if (directed) {
+            line_graph_edges = line.get_postgres_results_directed();
+        } else {
+            line_graph_edges = line.get_postgres_results_undirected();
+        }
+
+        auto count = line_graph_edges.size();
+
+        if (count == 0) {
+            (*return_tuples) = NULL;
+            (*return_count) = 0;
+            notice <<
+                "No paths found between start_vid and end_vid vertices";
+        } else {
+            size_t sequence = 0;
+
+            get_postgres_result(
+                line_graph_edges,
+                return_tuples,
+                sequence
+            );
+            (*return_count) = sequence;
+        }
+        log << line.log.str().c_str() << "\n\n\n";
+        log << line << "\n";
+
+        pgassert(*err_msg == NULL);
+        *log_msg = log.str().empty()?
+            *log_msg :
+            pgr_msg(log.str().c_str());
+        *notice_msg = notice.str().empty()?
+            *notice_msg :
+            pgr_msg(notice.str().c_str());
+    } catch (AssertFailedException &except) {
+        (*return_tuples) = pgr_free(*return_tuples);
+        (*return_count) = 0;
+        err << except.what();
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    } catch (std::exception &except) {
+        (*return_tuples) = pgr_free(*return_tuples);
+        (*return_count) = 0;
+        err << except.what();
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    } catch(...) {
+        (*return_tuples) = pgr_free(*return_tuples);
+        (*return_count) = 0;
+        err << "Caught unknown exception!";
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    }
+}
diff --git a/src/lineGraph/test/doc-pgr_lineGraph.result b/src/lineGraph/test/doc-pgr_lineGraph.result
new file mode 100644
index 0000000..d6744bd
--- /dev/null
+++ b/src/lineGraph/test/doc-pgr_lineGraph.result
@@ -0,0 +1,210 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_lineGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
+ seq | source | target | cost | reverse_cost 
+-----+--------+--------+------+--------------
+   1 |    -16 |     -3 |    1 |           -1
+   2 |    -15 |     -9 |    1 |            1
+   3 |    -14 |    -10 |    1 |            1
+   4 |    -14 |     12 |    1 |           -1
+   5 |    -10 |     -7 |    1 |            1
+   6 |    -10 |     -4 |    1 |            1
+   7 |    -10 |      8 |    1 |            1
+   8 |     -9 |     -8 |    1 |            1
+   9 |     -9 |     11 |    1 |           -1
+  10 |     -8 |     -7 |    1 |            1
+  11 |     -8 |     -4 |    1 |            1
+  12 |     -7 |     -6 |    1 |            1
+  13 |     -4 |     -1 |    1 |            1
+  14 |     -3 |     -2 |    1 |           -1
+  15 |     -3 |      5 |    1 |           -1
+  16 |     -2 |     -1 |    1 |           -1
+  17 |     -2 |      4 |    1 |           -1
+  18 |      5 |     -8 |    1 |           -1
+  19 |      5 |      9 |    1 |           -1
+  20 |      5 |     11 |    1 |           -1
+  21 |      7 |     -4 |    1 |            1
+  22 |      8 |     11 |    1 |           -1
+  23 |     10 |     12 |    1 |           -1
+  24 |     11 |     13 |    1 |           -1
+  25 |     12 |     13 |    1 |           -1
+  26 |     13 |    -15 |    1 |           -1
+  27 |     16 |     -9 |    1 |            1
+  28 |     16 |     15 |    1 |            1
+(28 rows)
+
+-- q2
+SELECT * FROM pgr_lineGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    FALSE
+);
+ seq | source | target | cost | reverse_cost 
+-----+--------+--------+------+--------------
+   1 |     -2 |     -1 |    1 |           -1
+   2 |     -4 |     -1 |    1 |           -1
+   3 |      4 |     -1 |    1 |           -1
+   4 |      1 |      4 |    1 |           -1
+   5 |     -2 |      4 |    1 |           -1
+   6 |     -1 |      4 |    1 |           -1
+   7 |     -2 |      1 |    1 |           -1
+   8 |     -4 |      1 |    1 |           -1
+   9 |      4 |      1 |    1 |           -1
+  10 |      1 |     -2 |    1 |           -1
+  11 |     -4 |     -2 |    1 |           -1
+  12 |     -1 |     -2 |    1 |           -1
+  13 |      4 |     -2 |    1 |           -1
+  14 |      1 |     -4 |    1 |           -1
+  15 |     -2 |     -4 |    1 |           -1
+  16 |     -1 |     -4 |    1 |           -1
+  17 |     -3 |     -2 |    1 |           -1
+  18 |      5 |     -2 |    1 |           -1
+  19 |     -3 |      5 |    1 |           -1
+  20 |     -2 |      5 |    1 |           -1
+  21 |     -2 |     -3 |    1 |           -1
+  22 |      5 |     -3 |    1 |           -1
+  23 |    -16 |     -3 |    1 |           -1
+  24 |     16 |     -3 |    1 |           -1
+  25 |     -3 |     16 |    1 |           -1
+  26 |     -3 |    -16 |    1 |           -1
+  27 |      7 |     -4 |    1 |           -1
+  28 |     -8 |     -4 |    1 |           -1
+  29 |    -10 |     -4 |    1 |           -1
+  30 |     -7 |     -4 |    1 |           -1
+  31 |      8 |     -4 |    1 |           -1
+  32 |     10 |     -4 |    1 |           -1
+  33 |      4 |     -7 |    1 |           -1
+  34 |     -8 |     -7 |    1 |           -1
+  35 |    -10 |     -7 |    1 |           -1
+  36 |     -4 |     -7 |    1 |           -1
+  37 |      8 |     -7 |    1 |           -1
+  38 |     10 |     -7 |    1 |           -1
+  39 |      4 |      8 |    1 |           -1
+  40 |      7 |      8 |    1 |           -1
+  41 |    -10 |      8 |    1 |           -1
+  42 |     -4 |      8 |    1 |           -1
+  43 |     -7 |      8 |    1 |           -1
+  44 |     10 |      8 |    1 |           -1
+  45 |      4 |     10 |    1 |           -1
+  46 |      7 |     10 |    1 |           -1
+  47 |     -8 |     10 |    1 |           -1
+  48 |     -4 |     10 |    1 |           -1
+  49 |     -7 |     10 |    1 |           -1
+  50 |      8 |     10 |    1 |           -1
+  51 |      7 |      4 |    1 |           -1
+  52 |     -8 |      4 |    1 |           -1
+  53 |    -10 |      4 |    1 |           -1
+  54 |     -7 |      4 |    1 |           -1
+  55 |      8 |      4 |    1 |           -1
+  56 |     10 |      4 |    1 |           -1
+  57 |      4 |      7 |    1 |           -1
+  58 |     -8 |      7 |    1 |           -1
+  59 |    -10 |      7 |    1 |           -1
+  60 |     -4 |      7 |    1 |           -1
+  61 |      8 |      7 |    1 |           -1
+  62 |     10 |      7 |    1 |           -1
+  63 |      4 |     -8 |    1 |           -1
+  64 |      7 |     -8 |    1 |           -1
+  65 |    -10 |     -8 |    1 |           -1
+  66 |     -4 |     -8 |    1 |           -1
+  67 |     -7 |     -8 |    1 |           -1
+  68 |     10 |     -8 |    1 |           -1
+  69 |      4 |    -10 |    1 |           -1
+  70 |      7 |    -10 |    1 |           -1
+  71 |     -8 |    -10 |    1 |           -1
+  72 |     -4 |    -10 |    1 |           -1
+  73 |     -7 |    -10 |    1 |           -1
+  74 |      8 |    -10 |    1 |           -1
+  75 |      5 |     -8 |    1 |           -1
+  76 |     -9 |     -8 |    1 |           -1
+  77 |      9 |     -8 |    1 |           -1
+  78 |     11 |     -8 |    1 |           -1
+  79 |      5 |      9 |    1 |           -1
+  80 |      8 |      9 |    1 |           -1
+  81 |     -8 |      9 |    1 |           -1
+  82 |     11 |      9 |    1 |           -1
+  83 |      5 |     11 |    1 |           -1
+  84 |      8 |     11 |    1 |           -1
+  85 |     -9 |     11 |    1 |           -1
+  86 |     -8 |     11 |    1 |           -1
+  87 |      9 |     11 |    1 |           -1
+  88 |      8 |      5 |    1 |           -1
+  89 |     -9 |      5 |    1 |           -1
+  90 |     -8 |      5 |    1 |           -1
+  91 |      9 |      5 |    1 |           -1
+  92 |     11 |      5 |    1 |           -1
+  93 |      5 |      8 |    1 |           -1
+  94 |     -9 |      8 |    1 |           -1
+  95 |      9 |      8 |    1 |           -1
+  96 |     11 |      8 |    1 |           -1
+  97 |      5 |     -9 |    1 |           -1
+  98 |      8 |     -9 |    1 |           -1
+  99 |     -8 |     -9 |    1 |           -1
+ 100 |     11 |     -9 |    1 |           -1
+ 101 |     -7 |     -6 |    1 |           -1
+ 102 |      7 |     -6 |    1 |           -1
+ 103 |      6 |      7 |    1 |           -1
+ 104 |     -6 |      7 |    1 |           -1
+ 105 |     -7 |      6 |    1 |           -1
+ 106 |      7 |      6 |    1 |           -1
+ 107 |      6 |     -7 |    1 |           -1
+ 108 |     -6 |     -7 |    1 |           -1
+ 109 |    -15 |     -9 |    1 |           -1
+ 110 |     16 |     -9 |    1 |           -1
+ 111 |     15 |     -9 |    1 |           -1
+ 112 |    -16 |     -9 |    1 |           -1
+ 113 |      9 |     15 |    1 |           -1
+ 114 |     16 |     15 |    1 |           -1
+ 115 |     -9 |     15 |    1 |           -1
+ 116 |    -16 |     15 |    1 |           -1
+ 117 |      9 |    -16 |    1 |           -1
+ 118 |    -15 |    -16 |    1 |           -1
+ 119 |     -9 |    -16 |    1 |           -1
+ 120 |     15 |    -16 |    1 |           -1
+ 121 |    -15 |      9 |    1 |           -1
+ 122 |     16 |      9 |    1 |           -1
+ 123 |     15 |      9 |    1 |           -1
+ 124 |    -16 |      9 |    1 |           -1
+ 125 |      9 |    -15 |    1 |           -1
+ 126 |     16 |    -15 |    1 |           -1
+ 127 |     -9 |    -15 |    1 |           -1
+ 128 |    -16 |    -15 |    1 |           -1
+ 129 |      9 |     16 |    1 |           -1
+ 130 |    -15 |     16 |    1 |           -1
+ 131 |     -9 |     16 |    1 |           -1
+ 132 |     15 |     16 |    1 |           -1
+ 133 |    -14 |    -10 |    1 |           -1
+ 134 |     12 |    -10 |    1 |           -1
+ 135 |     14 |    -10 |    1 |           -1
+ 136 |     10 |     12 |    1 |           -1
+ 137 |    -14 |     12 |    1 |           -1
+ 138 |    -10 |     12 |    1 |           -1
+ 139 |     14 |     12 |    1 |           -1
+ 140 |     10 |     14 |    1 |           -1
+ 141 |    -10 |     14 |    1 |           -1
+ 142 |     12 |     14 |    1 |           -1
+ 143 |    -14 |     10 |    1 |           -1
+ 144 |     12 |     10 |    1 |           -1
+ 145 |     14 |     10 |    1 |           -1
+ 146 |     10 |    -14 |    1 |           -1
+ 147 |    -10 |    -14 |    1 |           -1
+ 148 |     12 |    -14 |    1 |           -1
+ 149 |     11 |     13 |    1 |           -1
+ 150 |     12 |     13 |    1 |           -1
+ 151 |     12 |     11 |    1 |           -1
+ 152 |     13 |     11 |    1 |           -1
+ 153 |     11 |     12 |    1 |           -1
+ 154 |     13 |     12 |    1 |           -1
+ 155 |     13 |    -15 |    1 |           -1
+ 156 |     15 |     13 |    1 |           -1
+ 157 |    -15 |     13 |    1 |           -1
+ 158 |     13 |     15 |    1 |           -1
+(158 rows)
+
+-- q3
+ROLLBACK;
+ROLLBACK
diff --git a/src/lineGraph/test/doc-pgr_lineGraph.test.sql b/src/lineGraph/test/doc-pgr_lineGraph.test.sql
new file mode 100644
index 0000000..ef2b7dc
--- /dev/null
+++ b/src/lineGraph/test/doc-pgr_lineGraph.test.sql
@@ -0,0 +1,12 @@
+
+\echo -- q1
+SELECT * FROM pgr_lineGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table'
+);
+
+\echo -- q2
+SELECT * FROM pgr_lineGraph(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    FALSE
+);
+\echo -- q3
diff --git a/src/lineGraph/test/pgtap/lineGraph-innerQuery.sql b/src/lineGraph/test/pgtap/lineGraph-innerQuery.sql
new file mode 100644
index 0000000..6f10573
--- /dev/null
+++ b/src/lineGraph/test/pgtap/lineGraph-innerQuery.sql
@@ -0,0 +1,20 @@
+\i setup.sql
+
+SELECT plan(137);
+SET client_min_messages TO ERROR;
+
+
+SELECT has_function('pgr_linegraph',
+    ARRAY['text', 'boolean']);
+
+SELECT function_returns('pgr_linegraph',
+    ARRAY['text', 'boolean'],
+    'setof record');
+
+SELECT style_lineGraph('pgr_linegraph', ')');
+SELECT style_lineGraph('pgr_linegraph', ', true)');
+SELECT style_lineGraph('pgr_linegraph', ', false)');
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/src/lineGraph/test/pgtap/lineGraph-typesCheck.sql b/src/lineGraph/test/pgtap/lineGraph-typesCheck.sql
new file mode 100644
index 0000000..0eb3c48
--- /dev/null
+++ b/src/lineGraph/test/pgtap/lineGraph-typesCheck.sql
@@ -0,0 +1,14 @@
+
+SELECT plan(4);
+
+SELECT has_function('pgr_linegraph');
+
+SELECT has_function('pgr_linegraph', ARRAY[ 'text', 'boolean' ]);
+
+SELECT function_returns('pgr_linegraph', ARRAY[ 'text', 'boolean' ], 'setof record');
+
+-- testing column names
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_linegraph'$$,
+    $$SELECT  '{"","directed","seq","source","target","cost","reverse_cost"}'::TEXT[] $$
+);
diff --git a/src/lineGraph/test/test.conf b/src/lineGraph/test/test.conf
new file mode 100644
index 0000000..318f990
--- /dev/null
+++ b/src/lineGraph/test/test.conf
@@ -0,0 +1,17 @@
+#!/usr/bin/perl -w
+
+%main::tests = (
+    'any' => {
+        'comment' => 'LineGrpah test for any versions.',
+        'data' => [ ],
+        'tests' => [qw(
+            doc-pgr_lineGraph
+            )],
+        'documentation' => [qw(
+            doc-pgr_lineGraph
+            )]
+    },
+
+);
+
+1;
diff --git a/src/max_flow/doc/CMakeLists.txt b/src/max_flow/doc/CMakeLists.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/src/max_flow/doc/doc-pgr_edgeDisjointPaths.queries b/src/max_flow/doc/doc-pgr_edgeDisjointPaths.queries
deleted file mode 100644
index 71216b2..0000000
--- a/src/max_flow/doc/doc-pgr_edgeDisjointPaths.queries
+++ /dev/null
@@ -1,91 +0,0 @@
-BEGIN;
-BEGIN
-SET client_min_messages TO NOTICE;
-SET
--- q1
-SELECT * FROM pgr_edgeDisjointPaths(
-    'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table',
-    3, 5
-);
- seq | path_seq | node | edge 
------+----------+------+------
-   1 |        1 |    3 |    2
-   2 |        2 |    2 |    4
-   3 |        3 |    5 |   -1
-   4 |        1 |    3 |    5
-   5 |        2 |    6 |    8
-   6 |        3 |    5 |   -1
-(6 rows)
-
--- q2
-SELECT * FROM pgr_edgeDisjointPaths(
-    'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table',
-    3, 5,
-    directed := false
-);
- seq | path_seq | node | edge 
------+----------+------+------
-   1 |        1 |    3 |    2
-   2 |        2 |    2 |    4
-   3 |        3 |    5 |   -1
-   4 |        1 |    3 |    3
-   5 |        2 |    4 |   16
-   6 |        3 |    9 |    9
-   7 |        4 |    6 |    8
-   8 |        5 |    5 |   -1
-   9 |        1 |    3 |    5
-  10 |        2 |    6 |   11
-  11 |        3 |   11 |   12
-  12 |        4 |   10 |   10
-  13 |        5 |    5 |   -1
-(13 rows)
-
--- q3
-SELECT * FROM pgr_edgeDisjointPaths(
-    'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table',
-    3, ARRAY[4, 5, 10]
-);
- seq | path_seq | end_vid | node | edge 
------+----------+---------+------+------
-   1 |        1 |       5 |    3 |    2
-   2 |        2 |       5 |    2 |    4
-   3 |        3 |       5 |    5 |   -1
-   4 |        1 |       5 |    3 |    5
-   5 |        2 |       5 |    6 |    8
-   6 |        3 |       5 |    5 |   -1
-(6 rows)
-
--- q4
-SELECT * FROM pgr_edgeDisjointPaths(
-    'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table',
-    ARRAY[3, 6], 5
-);
- seq | path_seq | start_vid | node | edge 
------+----------+-----------+------+------
-   1 |        1 |         3 |    3 |    2
-   2 |        2 |         3 |    2 |    4
-   3 |        3 |         3 |    5 |   -1
-   4 |        1 |         6 |    6 |    8
-   5 |        2 |         6 |    5 |   -1
-(5 rows)
-
--- q5
-SELECT * FROM pgr_edgeDisjointPaths(
-    'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table',
-    ARRAY[3, 6], ARRAY[4, 5, 10]
-);
- seq | path_seq | start_vid | end_vid | node | edge 
------+----------+-----------+---------+------+------
-   1 |        1 |         3 |       5 |    3 |    2
-   2 |        2 |         3 |       5 |    2 |    4
-   3 |        3 |         3 |       5 |    5 |   -1
-   4 |        1 |         6 |       5 |    6 |    8
-   5 |        2 |         6 |       5 |    5 |   -1
-   6 |        1 |         6 |       4 |    6 |    9
-   7 |        2 |         6 |       4 |    9 |   16
-   8 |        3 |         6 |       4 |    4 |   -1
-(8 rows)
-
--- q6
-ROLLBACK;
-ROLLBACK
diff --git a/src/max_flow/doc/doc-pgr_maxFlow.queries b/src/max_flow/doc/doc-pgr_maxFlow.queries
deleted file mode 100644
index 7957e35..0000000
--- a/src/max_flow/doc/doc-pgr_maxFlow.queries
+++ /dev/null
@@ -1,75 +0,0 @@
-BEGIN;
-BEGIN
-SET client_min_messages TO NOTICE;
-SET
--- q1
-SELECT * FROM pgr_maxFlow(
-    'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
-    , 6, 11
-);
- pgr_maxflow 
--------------
-         280
-(1 row)
-
--- q2
-SELECT * FROM pgr_maxFlow(
-    'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
-    , 6, ARRAY[11, 1, 13]
-);
- pgr_maxflow 
--------------
-         410
-(1 row)
-
--- q3
-SELECT * FROM pgr_maxFlow(
-    'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
-    , ARRAY[6, 8, 12], 11
-);
- pgr_maxflow 
--------------
-         280
-(1 row)
-
--- q4
-SELECT * FROM pgr_maxFlow(
-    'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
-    , ARRAY[6, 8, 12], ARRAY[1, 3, 11]
-);
- pgr_maxflow 
--------------
-         460
-(1 row)
-
--- q5
-ROLLBACK;
-ROLLBACK
diff --git a/src/max_flow/doc/doc-pgr_maxFlowBoykovKolmogorov.queries b/src/max_flow/doc/doc-pgr_maxFlowBoykovKolmogorov.queries
deleted file mode 100644
index 789e409..0000000
--- a/src/max_flow/doc/doc-pgr_maxFlowBoykovKolmogorov.queries
+++ /dev/null
@@ -1,107 +0,0 @@
-BEGIN;
-BEGIN
-SET client_min_messages TO NOTICE;
-SET
--- q1
-SELECT * FROM pgr_maxFlowBoykovKolmogorov(
-    'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
-    , 6, 11
-);
- seq | edge_id | source | target | flow | residual_capacity 
------+---------+--------+--------+------+-------------------
-   1 |      10 |      5 |     10 |  100 |                30
-   2 |       8 |      6 |      5 |  100 |                30
-   3 |       9 |      6 |      9 |   50 |                80
-   4 |      11 |      6 |     11 |  130 |                 0
-   5 |      15 |      9 |     12 |   50 |                30
-   6 |      12 |     10 |     11 |  100 |                 0
-   7 |      13 |     12 |     11 |   50 |                 0
-(7 rows)
-
--- q2
-SELECT * FROM pgr_maxFlowBoykovKolmogorov(
-    'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
-    , 6, ARRAY[1, 3, 11]
-);
- seq | edge_id | source | target | flow | residual_capacity 
------+---------+--------+--------+------+-------------------
-   1 |       1 |      2 |      1 |   50 |                80
-   2 |       3 |      4 |      3 |   80 |                50
-   3 |       4 |      5 |      2 |   50 |                 0
-   4 |      10 |      5 |     10 |   80 |                50
-   5 |       5 |      6 |      3 |   50 |                 0
-   6 |       8 |      6 |      5 |  130 |                 0
-   7 |       9 |      6 |      9 |  130 |                 0
-   8 |      11 |      6 |     11 |  130 |                 0
-   9 |      15 |      9 |     12 |   50 |                30
-  10 |      16 |      9 |      4 |   80 |                 0
-  11 |      12 |     10 |     11 |   80 |                20
-  12 |      13 |     12 |     11 |   50 |                 0
-(12 rows)
-
--- q3
-SELECT * FROM pgr_maxFlowBoykovKolmogorov(
-    'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
-    , ARRAY[6, 8, 12], 11
-);
- seq | edge_id | source | target | flow | residual_capacity 
------+---------+--------+--------+------+-------------------
-   1 |      10 |      5 |     10 |  100 |                30
-   2 |       8 |      6 |      5 |  100 |                30
-   3 |      11 |      6 |     11 |  130 |                 0
-   4 |      12 |     10 |     11 |  100 |                 0
-   5 |      13 |     12 |     11 |   50 |                 0
-(5 rows)
-
--- q4
-SELECT * FROM pgr_maxFlowBoykovKolmogorov(
-    'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
-    , ARRAY[6, 8, 12], ARRAY[1, 3, 11]
-);
- seq | edge_id | source | target | flow | residual_capacity 
------+---------+--------+--------+------+-------------------
-   1 |       1 |      2 |      1 |   50 |                80
-   2 |       3 |      4 |      3 |   80 |                50
-   3 |       4 |      5 |      2 |   50 |                 0
-   4 |      10 |      5 |     10 |  100 |                30
-   5 |       5 |      6 |      3 |   50 |                 0
-   6 |       8 |      6 |      5 |  130 |                 0
-   7 |       9 |      6 |      9 |   80 |                50
-   8 |      11 |      6 |     11 |  130 |                 0
-   9 |       7 |      8 |      5 |   20 |                30
-  10 |      16 |      9 |      4 |   80 |                 0
-  11 |      12 |     10 |     11 |  100 |                 0
-  12 |      13 |     12 |     11 |   50 |                 0
-(12 rows)
-
--- q5
-ROLLBACK;
-ROLLBACK
diff --git a/src/max_flow/doc/doc-pgr_maxFlowEdmondsKarp.queries b/src/max_flow/doc/doc-pgr_maxFlowEdmondsKarp.queries
deleted file mode 100644
index 6581101..0000000
--- a/src/max_flow/doc/doc-pgr_maxFlowEdmondsKarp.queries
+++ /dev/null
@@ -1,107 +0,0 @@
-BEGIN;
-BEGIN
-SET client_min_messages TO NOTICE;
-SET
--- q1
-SELECT * FROM pgr_maxFlowEdmondsKarp(
-    'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
-    , 6, 11
-);
- seq | edge_id | source | target | flow | residual_capacity 
------+---------+--------+--------+------+-------------------
-   1 |      10 |      5 |     10 |  100 |                30
-   2 |       8 |      6 |      5 |  100 |                30
-   3 |       9 |      6 |      9 |   50 |                80
-   4 |      11 |      6 |     11 |  130 |                 0
-   5 |      15 |      9 |     12 |   50 |                30
-   6 |      12 |     10 |     11 |  100 |                 0
-   7 |      13 |     12 |     11 |   50 |                 0
-(7 rows)
-
--- q2
-SELECT * FROM pgr_maxFlowEdmondsKarp(
-    'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
-   , 6, ARRAY[1, 3, 11]
-);
- seq | edge_id | source | target | flow | residual_capacity 
------+---------+--------+--------+------+-------------------
-   1 |       1 |      2 |      1 |   50 |                80
-   2 |       3 |      4 |      3 |   80 |                50
-   3 |       4 |      5 |      2 |   50 |                 0
-   4 |      10 |      5 |     10 |   80 |                50
-   5 |       5 |      6 |      3 |   50 |                 0
-   6 |       8 |      6 |      5 |  130 |                 0
-   7 |       9 |      6 |      9 |  130 |                 0
-   8 |      11 |      6 |     11 |  130 |                 0
-   9 |      15 |      9 |     12 |   50 |                30
-  10 |      16 |      9 |      4 |   80 |                 0
-  11 |      12 |     10 |     11 |   80 |                20
-  12 |      13 |     12 |     11 |   50 |                 0
-(12 rows)
-
--- q3
-SELECT * FROM pgr_maxFlowEdmondsKarp(
-    'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
-   , ARRAY[6, 8, 12], 11
-);
- seq | edge_id | source | target | flow | residual_capacity 
------+---------+--------+--------+------+-------------------
-   1 |      10 |      5 |     10 |  100 |                30
-   2 |       8 |      6 |      5 |  100 |                30
-   3 |      11 |      6 |     11 |  130 |                 0
-   4 |      12 |     10 |     11 |  100 |                 0
-   5 |      13 |     12 |     11 |   50 |                 0
-(5 rows)
-
--- q4
-SELECT * FROM pgr_maxFlowEdmondsKarp(
-    'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
-   , ARRAY[6, 8, 12], ARRAY[1, 3, 11]
-);
- seq | edge_id | source | target | flow | residual_capacity 
------+---------+--------+--------+------+-------------------
-   1 |       1 |      2 |      1 |   50 |                80
-   2 |       3 |      4 |      3 |   80 |                50
-   3 |       4 |      5 |      2 |   50 |                 0
-   4 |      10 |      5 |     10 |  100 |                30
-   5 |       5 |      6 |      3 |   50 |                 0
-   6 |       8 |      6 |      5 |  130 |                 0
-   7 |       9 |      6 |      9 |   80 |                50
-   8 |      11 |      6 |     11 |  130 |                 0
-   9 |       7 |      8 |      5 |   20 |                30
-  10 |      16 |      9 |      4 |   80 |                 0
-  11 |      12 |     10 |     11 |  100 |                 0
-  12 |      13 |     12 |     11 |   50 |                 0
-(12 rows)
-
--- q5
-ROLLBACK;
-ROLLBACK
diff --git a/src/max_flow/doc/doc-pgr_maxFlowPushRelabel.queries b/src/max_flow/doc/doc-pgr_maxFlowPushRelabel.queries
deleted file mode 100644
index 09f7262..0000000
--- a/src/max_flow/doc/doc-pgr_maxFlowPushRelabel.queries
+++ /dev/null
@@ -1,114 +0,0 @@
-BEGIN;
-BEGIN
-SET client_min_messages TO NOTICE;
-SET
--- q1
-SELECT * FROM pgr_maxFlowPushRelabel(
-    'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
-    , 6, 11
-);
- seq | edge_id | source | target | flow | residual_capacity 
------+---------+--------+--------+------+-------------------
-   1 |      10 |      5 |     10 |  100 |                30
-   2 |       8 |      6 |      5 |  100 |                30
-   3 |       9 |      6 |      9 |   50 |                80
-   4 |      11 |      6 |     11 |  130 |                 0
-   5 |      15 |      9 |     12 |   50 |                30
-   6 |      12 |     10 |     11 |  100 |                 0
-   7 |      13 |     12 |     11 |   50 |                 0
-(7 rows)
-
--- q2
-SELECT * FROM pgr_maxFlowPushRelabel(
-    'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
-    , 6, ARRAY[11, 1, 13]
-);
- seq | edge_id | source | target | flow | residual_capacity 
------+---------+--------+--------+------+-------------------
-   1 |       1 |      2 |      1 |  130 |                 0
-   2 |       4 |      2 |      5 |   20 |                80
-   3 |       2 |      3 |      2 |  100 |                 0
-   4 |       3 |      4 |      3 |   50 |                80
-   5 |       4 |      5 |      2 |   50 |                 0
-   6 |       7 |      5 |      8 |   50 |                80
-   7 |      10 |      5 |     10 |  100 |                30
-   8 |       5 |      6 |      3 |   50 |                 0
-   9 |       8 |      6 |      5 |  130 |                 0
-  10 |       9 |      6 |      9 |  100 |                30
-  11 |      11 |      6 |     11 |  130 |                 0
-  12 |       6 |      7 |      8 |   50 |                 0
-  13 |       6 |      8 |      7 |   50 |                50
-  14 |       7 |      8 |      5 |   50 |                 0
-  15 |      15 |      9 |     12 |   50 |                30
-  16 |      16 |      9 |      4 |   50 |                30
-  17 |      12 |     10 |     11 |  100 |                 0
-  18 |      13 |     12 |     11 |   50 |                 0
-(18 rows)
-
--- q3
-SELECT * FROM pgr_maxFlowPushRelabel(
-    'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
-    , ARRAY[6, 8, 12], 11
-);
- seq | edge_id | source | target | flow | residual_capacity 
------+---------+--------+--------+------+-------------------
-   1 |      10 |      5 |     10 |  100 |                30
-   2 |       8 |      6 |      5 |  100 |                30
-   3 |      11 |      6 |     11 |  130 |                 0
-   4 |      12 |     10 |     11 |  100 |                 0
-   5 |      13 |     12 |     11 |   50 |                 0
-(5 rows)
-
--- q4
-SELECT * FROM pgr_maxFlowPushRelabel(
-    'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
-    , ARRAY[6, 8, 12], ARRAY[1, 3, 11]
-);
- seq | edge_id | source | target | flow | residual_capacity 
------+---------+--------+--------+------+-------------------
-   1 |       1 |      2 |      1 |   50 |                80
-   2 |       3 |      4 |      3 |   80 |                50
-   3 |       4 |      5 |      2 |   50 |                 0
-   4 |      10 |      5 |     10 |  100 |                30
-   5 |       5 |      6 |      3 |   50 |                 0
-   6 |       8 |      6 |      5 |  130 |                 0
-   7 |       9 |      6 |      9 |   30 |               100
-   8 |      11 |      6 |     11 |  130 |                 0
-   9 |       7 |      8 |      5 |   20 |                30
-  10 |      16 |      9 |      4 |   80 |                 0
-  11 |      12 |     10 |     11 |  100 |                 0
-  12 |      13 |     12 |     11 |   50 |                 0
-  13 |      15 |     12 |      9 |   50 |                 0
-(13 rows)
-
--- q5
-ROLLBACK;
-ROLLBACK
diff --git a/src/max_flow/doc/doc-pgr_maximumCardinalityMatching.queries b/src/max_flow/doc/doc-pgr_maximumCardinalityMatching.queries
deleted file mode 100644
index 760e519..0000000
--- a/src/max_flow/doc/doc-pgr_maximumCardinalityMatching.queries
+++ /dev/null
@@ -1,40 +0,0 @@
-BEGIN;
-BEGIN
-SET client_min_messages TO NOTICE;
-SET
--- q1
-SELECT * FROM pgr_maximumCardinalityMatching(
-    'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table'
-);
- seq | edge_id | source | target 
------+---------+--------+--------
-   1 |       1 |      1 |      2
-   2 |       3 |      4 |      3
-   3 |       9 |      6 |      9
-   4 |       6 |      7 |      8
-   5 |      14 |     10 |     13
-   6 |      13 |     11 |     12
-   7 |      17 |     14 |     15
-   8 |      18 |     16 |     17
-(8 rows)
-
--- q2
-SELECT * FROM pgr_maximumCardinalityMatching(
-    'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table',
-    directed := false
-);
- seq | edge_id | source | target 
------+---------+--------+--------
-   1 |       1 |      1 |      2
-   2 |       3 |      3 |      4
-   3 |       9 |      6 |      9
-   4 |       6 |      7 |      8
-   5 |      14 |     10 |     13
-   6 |      13 |     11 |     12
-   7 |      17 |     14 |     15
-   8 |      18 |     16 |     17
-(8 rows)
-
--- q3
-ROLLBACK;
-ROLLBACK
diff --git a/src/max_flow/doc/flow-family.rst b/src/max_flow/doc/flow-family.rst
deleted file mode 100644
index 3286af8..0000000
--- a/src/max_flow/doc/flow-family.rst
+++ /dev/null
@@ -1,101 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _maxFlow:
-
-Flow - Family of functions
-===================================
-
-.. index from here
-
-* :ref:`pgr_maxFlow` - Only the Max flow calculation using Push and Relabel algorithm.
-* :ref:`pgr_maxFlowBoykovKolmogorov` - Boykov and Kolmogorov with details of flow on edges.
-* :ref:`pgr_maxFlowEdmondsKarp` - Edmonds and Karp algorithm with details of flow on edges.
-* :ref:`pgr_maxFlowPushRelabel` - Push and relabel algorithm with details of flow on edges.
-* Applications
-
-  * :ref:`pgr_edgeDisjointPaths` - Calculates edge disjoint paths between two groups of vertices.
-  * :ref:`pgr_maximumCardinalityMatching` - Calculates a maximum cardinality matching in a graph.
-
-.. index to here
-
-
-.. include:: proposed.rst
-   :start-after: begin-warn-expr
-   :end-before: end-warn-expr
-
-.. toctree::
-    :hidden:
-
-    pgr_maxFlow
-    pgr_maxFlowBoykovKolmogorov
-    pgr_maxFlowEdmondsKarp
-    pgr_maxFlowPushRelabel
-    pgr_edgeDisjointPaths
-    pgr_maximumCardinalityMatching
-
-
-Problem definition
-==================
-
-A flow network is a directed graph where each edge has a capacity and a flow.
-The flow through an edge must not exceed the capacity of the edge.
-Additionally, the incoming and outgoing flow of a node must be equal except the for source which only has outgoing flow, and the destination(sink) which only has incoming flow.
-
-Maximum flow algorithms calculate the maximum flow through the graph and the flow of each edge.
-
-The maximum flow through the graph is guaranteed to be the same with all implementations,
-but the actual flow through each edge may vary.
-Given the following query:
-
-pgr_maxFlow :math:`(edges\_sql, source\_vertex, sink\_vertex)`
-
-where :math:`edges\_sql = \{(id_i, source_i, target_i, capacity_i, reverse\_capacity_i)\}`
-
-.. rubric:: Graph definition
-
-The weighted directed graph, :math:`G(V,E)`, is defined as:
-
-* the set of vertices  :math:`V`
-
-  - :math:`source\_vertex  \cup  sink\_vertex  \bigcup  source_i  \bigcup  target_i`
-
-* the set of edges :math:`E`
-
-  - :math:`E = \begin{cases} &\{(source_i, target_i, capacity_i) \text{ when } capacity > 0 \} &\quad  \text{ if } reverse\_capacity = \varnothing \\ \\ &\{(source_i, target_i, capacity_i) \text{ when } capacity > 0 \} \\ \cup &\{(target_i, source_i, reverse\_capacity_i) \text{ when } reverse\_capacity_i > 0)\} &\quad \text{ if } reverse\_capacity \neq \varnothing \\ \end{cases}`
-
-
-.. rubric:: Maximum flow problem
-
-Given:
-
-
-  - :math:`G(V,E)`
-  - :math:`source\_vertex \in V` the source vertex
-  - :math:`sink\_vertex \in V` the sink vertex
-
-Then:
-
-     :math:`pgr\_maxFlow(edges\_sql, source, sink) = \boldsymbol{\Phi}`
-
-     :math:`\boldsymbol{\Phi} = {(id_i, edge\_id_i, source_i, target_i, flow_i, residual\_capacity_i)}`
-
-where:
-
-  :math:`\boldsymbol{\Phi}` is a subset of the original edges with their residual capacity and flow. The maximum flow through the graph can be obtained by aggregating on the source or sink and summing the flow from/to it. In particular:
-
-  - :math:`id_i = i`
-  - :math:`edge\_id = id_i   \text{ in edges_sql}`
-  - :math:`residual\_capacity_i = capacity_i - flow_i`
-
-
-See Also
---------
-
-* https://en.wikipedia.org/wiki/Maximum_flow_problem
diff --git a/src/max_flow/doc/maxFlowApplications.rst b/src/max_flow/doc/maxFlowApplications.rst
deleted file mode 100644
index 620b2c5..0000000
--- a/src/max_flow/doc/maxFlowApplications.rst
+++ /dev/null
@@ -1,60 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _maxFlowApplications:
-
-Applications of Maximum Flow
-============================
-
-  - :ref:`pgr_maximumCardinalityMatching` - Calculates a maximum cardinality matching in a graph.
-  - :ref:`pgr_edgeDisjointPaths` - Calculates edge disjoint paths between two groups of vertices.
-
-Maximum flow algorithms provide solutions to other graph problems.
-
-
-.. include:: proposed.rst
-   :start-after: begin-warn-expr
-   :end-before: end-warn-expr
-
-
-.. toctree::
-        :hidden:
-
-        ./pgr_maximumCardinalityMatching
-        ./pgr_edgeDisjointPaths
-
-
-Applications
----------------------------------------------
-
-Maximum cardinality matching
-...............................
-
-- A matching or independent edge set in a graph is a set of edges without common vertices.
-- A maximum matching is a matching that contains the largest possible number of edges.
-- There may be many maximum matchings.
-- The graph can be directed or undirected.
-
-The :ref:`pgr_maximumCardinalityMatching` function can be used to calculate one such maximum matching.
-
-Edge disjoint paths
-...............................
-
-In a undirected/directed graph, two paths are edge-disjoint(or edge-independant) if they do not have any internal edge in common.
-
-While the number of maximum edge disjoint paths is fixed, there may be several different routes.
-
-The :ref:`pgr_edgeDisjointPaths` function returns the maximum number of paths and possible routes.
-
-
-
-See Also
---------
-
-* https://en.wikipedia.org/wiki/Maximum_flow_problem#Application
diff --git a/src/max_flow/doc/pgr_edgeDisjointPaths.rst b/src/max_flow/doc/pgr_edgeDisjointPaths.rst
deleted file mode 100644
index ae9f8ff..0000000
--- a/src/max_flow/doc/pgr_edgeDisjointPaths.rst
+++ /dev/null
@@ -1,225 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-
-.. _pgr_edgeDisjointPaths:
-
-pgr_edgeDisjointPaths - Proposed
-==========================================
-
-Name
--------------------------------------------------------------------------------
-
-``pgr_edgeDisjointPaths`` — Calculates edge disjoint paths between two groups of vertices.
-
-.. include:: proposed.rst
-   :start-after: begin-warn-expr
-   :end-before: end-warn-expr
-
-
-.. figure:: images/boost-inside.jpeg
-   :target: http://www.boost.org/libs/graph/doc/boykov_kolmogorov_max_flow.html
-
-   Boost Graph Inside
-
-
-
-Synopsis
--------------------------------------------------------------------------------
-
-Calculates the edge disjoint paths between two groups of vertices.
-Utilizes underlying maximum flow algorithms to calculate the paths.
-
-Characteristics:
-----------------
-
-The main characterics are:
-  - Calculates the edge disjoint paths between any two groups of vertices.
-  - Returns EMPTY SET when source and destination are the same, or cannot be reached.
-  - The graph can be directed or undirected.
-  - One to many, many to one, many to many versions are also supported.
-  - Uses :ref:`pgr_maxFlowBoykovKolmogorov` to calculate the paths.
-  - No `cost` or `aggregate cost` of the paths are returned. (Under discussion)
-
-Signature Summary
------------------
-
-.. code-block:: none
-
-    pgr_edgeDisjointPaths(edges_sql, source_vertex, destination_vertex)
-    pgr_edgeDisjointPaths(edges_sql, source_vertex, destination_vertex, directed)
-    pgr_edgeDisjointPaths(edges_sql, source_vertices, destination_vertex, directed)
-    pgr_edgeDisjointPaths(edges_sql, source_vertex, destination_vertices, directed)
-    pgr_edgeDisjointPaths(edges_sql, source_vertices, destination_vertices, directed)
-
-    RETURNS SET OF (seq, path_seq, [start_vid,] [end_vid,] node, edge) OR EMPTY SET
-
-
-Signatures
-----------
-
-.. index::
-    single: edgeDisjointPaths(Minimal Use) - Proposed
-
-Minimal signature
-.................
-
-.. code-block:: none
-
-    pgr_edgeDisjointPaths(edges_sql, source_vertex, destination_vertex)
-    RETURNS SET OF (seq, path_seq, node, edge) OR EMPTY SET
-
-The minimal signature is between `source_vertex` and `destination_vertex` for a `directed` graph.
-
-:Example:
-
-.. literalinclude:: doc-pgr_edgeDisjointPaths.queries
-   :start-after: -- q1
-   :end-before: -- q2
-
-.. index::
-    single: edgeDisjointPaths(One to One) - Proposed
-
-One to One
-.......................................
-
-The available signature calculates edge disjoint paths from one source vertex to one destination vertex.
-The graph can be directed or undirected.
-
-.. code-block:: none
-
-    pgr_edgeDisjointPaths(edges_sql, source_vertex, destination_vertex, directed)
-    RETURNS SET OF (seq, path_seq, node, edge) OR EMPTY SET
-
-:Example:
-
-.. literalinclude:: doc-pgr_edgeDisjointPaths.queries
-   :start-after: -- q2
-   :end-before: -- q3
-
-
-.. index::
-    single: edgeDisjointPaths(One to Many) - Proposed
-
-One to Many
-.......................................
-
-The available signature calculates the maximum flow from one source vertex to many sink vertices.
-
-.. code-block:: none
-
-    pgr_edgeDisjointPaths(edges_sql, source_vertex, destination_vertices, directed)
-    RETURNS SET OF (seq, path_seq, end_vid, node, edge) OR EMPTY SET
-
-:Example:
-
-.. literalinclude:: doc-pgr_edgeDisjointPaths.queries
-   :start-after: -- q3
-   :end-before: -- q4
-
-
-
-.. index::
-    single: edgeDisjointPaths(Many to One) - Proposed
-
-Many to One
-.......................................
-
-The available signature calculates the maximum flow from many source vertices to one sink vertex.
-
-.. code-block:: none
-
-    pgr_edgeDisjointPaths(edges_sql, source_vertices, destination_vertex)
-    RETURNS SET OF (seq, path_seq, start_vid, node, edge)
-      OR EMPTY SET
-
-:Example:
-
-.. literalinclude:: doc-pgr_edgeDisjointPaths.queries
-   :start-after: -- q4
-   :end-before: -- q5
-
-
-
-.. index::
-    single: edgeDisjointPaths(Many to Many) - Proposed
-
-Many to Many
-.......................................
-
-The available signature calculates the maximum flow from many sources to many sinks.
-
-.. code-block:: none
-
-    pgr_edgeDisjointPaths(edges_sql, source_vertices, destination_vertices, directed)
-    RETURNS SET OF (seq, path_seq, start_vid, end_vid, node, edge) OR EMPTY SET
-
-:Example:
-
-.. literalinclude:: doc-pgr_edgeDisjointPaths.queries
-   :start-after: -- q5
-   :end-before: -- q6
-
-
-
-Description of the Signatures
-----------------------------------------------
-
-Description of the SQL query
-.......................................
-
-:edges_sql: an SQL query, which should return a set of rows with the following columns:
-
-====================  ===================   =================================================
-Column                Type                  Description
-====================  ===================   =================================================
-**id**                ``ANY-INTEGER``       Identifier of the edge.
-**source**            ``ANY-INTEGER``       Identifier of the first end point vertex of the edge.
-**target**            ``ANY-INTEGER``       Identifier of the second end point vertex of the edge.
-**going**             ``ANY-NUMERIC``       A positive value represents the existence of the edge (source, target).
-**coming**            ``ANY-NUMERIC``       A positive value represents the existence of the edge (target, source).
-====================  ===================   =================================================
-
-Where:
-  - :ANY-INTEGER: SMALLINT, INTEGER, BIGINT
-  - :ANY-NUMERIC: SMALLINT, INTEGER, BIGINT, REAL, DOUBLE PRECISION
-
-Description of the parameters of the signatures
-........................................................
-
-================= ====================== =================================================
-Column            Type                   Description
-================= ====================== =================================================
-**edges_sql**     ``TEXT``               SQL query as described above.
-**source_vertex** ``BIGINT``             Identifier(s) of the source vertex(vertices).
-**sink_vertex**   ``BIGINT``             Identifier(s) of the destination vertex(vertices).
-**directed**      ``BOOLEAN``            (optional) Determines the type of the graph. Default TRUE.
-================= ====================== =================================================
-
-Description of the return values
-........................................................
-
-============== ========== =================================================
-Column         Type       Description
-============== ========== =================================================
-**seq**        ``INT``    Sequential value starting from **1**.
-**path_seq**   ``INT``    Relative position in the path. Has value **1** for the beginning of a path.
-**start_vid**  ``BIGINT`` Identifier of the starting vertex. Used when multiple starting vertices are in the query.
-**end_vid**    ``BIGINT`` Identifier of the ending vertex. Used when multiple ending vertices are in the query.
-**node**       ``BIGINT`` Identifier of the node in the path from ``start_vid`` to ``end_vid``.
-**edge**       ``BIGINT`` Identifier of the edge used to go from ``node`` to the next node in the path sequence. ``-1`` for the last node of the path.
-============== ========== =================================================
-
-
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
-
diff --git a/src/max_flow/doc/pgr_maxFlow.rst b/src/max_flow/doc/pgr_maxFlow.rst
deleted file mode 100644
index 327e1cb..0000000
--- a/src/max_flow/doc/pgr_maxFlow.rst
+++ /dev/null
@@ -1,190 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_maxFlow:
-
-pgr_maxFlow Proposed
-============================================
-
-
-Name
-----
-
-``pgr_maxFlow`` — Calculates the maximum flow in a directed graph given source(s) and sink(s).
-
-
-.. include:: proposed.rst
-   :start-after: begin-warn-expr
-   :end-before: end-warn-expr
-
-
-.. figure:: images/boost-inside.jpeg
-   :target: http://www.boost.org/libs/graph/doc/push_relabel_max_flow.html
-
-   Boost Graph Inside
-
-
-Synopsis
--------------------------------------------------------------------------------
-
-Calculates the maximum flow in a directed graph from a source node to a sink node.
-
-Characteristics:
-----------------
-
-The main characterics are:
-  - Calculates the flow/residual capacity for each edge. In the output, edges with zero flow are omitted.
-  - The maximum flow through the graph can be calculated by aggregation on source/sink.
-  - Edges must be weighted with non-negative capacities.
-  - Returns 0 if source and sink are the same.
-  - Allows multiple sources and sinks.
-  - Running time: :math:`O( V ^ 3)`
-
-Signature Summary
------------------
-
-.. code-block:: none
-
-    pgr_maxFlow(edges_sql, source_vertex,  sink_vertex)
-    pgr_maxFlow(edges_sql, source_vertices,  sink_vertex)
-    pgr_maxFlow(edges_sql, source_vertex,  sink_vertices)
-    pgr_maxFlow(edges_sql, source_vertices,  sink_vertices)
-    RETURNS BIGINT
-
-
-Signatures
------------------------
-
-.. index::
-    single: maxFlow(One to One) - Proposed
-
-One to One
-.....................................................................
-
-Calculates the maximum flow from one source vertex to one sink vertex in a directed graph.
-
-.. code-block:: none
-
-    pgr_maxFlow(edges_sql, source_vertex,  sink_vertex)
-    RETURNS BIGINT
-
-:Example:
-
-.. literalinclude:: doc-pgr_maxFlow.queries
-   :start-after: -- q1
-   :end-before: -- q2
-
-
-.. index::
-    single: maxFlow(One to Many) - Proposed
-
-One to Many
-.....................................................................
-
-Ccalculates the maximum flow from one source vertex to many sink vertices in a directed graph.
-
-.. code-block:: none
-
-    pgr_maxFlow(edges_sql, source_vertex,  sink_vertices)
-    RETURNS BIGINT
-
-:Example:
-
-.. literalinclude:: doc-pgr_maxFlow.queries
-   :start-after: -- q2
-   :end-before: -- q3
-
-
-.. index::
-    single: maxFlow(Many to One) - Proposed
-
-Many to One
-.....................................................................
-
-Calculates the maximum flow from many source vertices to one sink vertex in a directed graph.
-
-.. code-block:: none
-
-    pgr_maxFlow(edges_sql, source_vertices,  sink_vertex)
-    RETURNS BIGINT
-
-:Example:
-
-.. literalinclude:: doc-pgr_maxFlow.queries
-   :start-after: -- q3
-   :end-before: -- q4
-
-
-.. index::
-    single: maxFlow(Many to Many) - Proposed
-
-Many to Many
-.....................................................................
-
-Calculates the maximum flow from many sources to many sinks in a directed graph.
-
-.. code-block:: none
-
-    pgr_maxFlow(edges_sql, source_vertices,  sink_vertices)
-    RETURNS BIGINT
-
-:Example:
-
-.. literalinclude:: doc-pgr_maxFlow.queries
-   :start-after: -- q4
-   :end-before: -- q5
-
-Description of the Signatures
---------------------------------------------------------
-
-
-Description of the SQL query
-.....................................................................
-
-:edges_sql: an SQL query, which should return a set of rows with the following columns:
-
-====================  ===================   =================================================
-Column                Type                  Description
-====================  ===================   =================================================
-**id**                ``ANY-INTEGER``       Identifier of the edge.
-**source**            ``ANY-INTEGER``       Identifier of the first end point vertex of the edge.
-**target**            ``ANY-INTEGER``       Identifier of the second end point vertex of the edge.
-**capacity**          ``ANY-INTEGER``       Capacity of the edge `(source, target)`. Must be positive.
-**reverse_capacity**  ``ANY-INTEGER``       (optional) Weight of the edge `(target, source)`. Must be positive or null.
-====================  ===================   =================================================
-
-Where:
-
-:ANY-INTEGER: SMALLINT, INTEGER, BIGINT
-
-
-Description of the parameters of the signatures
-.....................................................................
-
-================= ====================== =================================================
-Column            Type                   Description
-================= ====================== =================================================
-**edges_sql**     ``TEXT``               SQL query as described above.
-**source_vertex** ``BIGINT``             Identifier of the source vertex(or vertices).
-**sink_vertex**   ``BIGINT``             Identifier of the sink vertex(or vertices).
-================= ====================== =================================================
-
-
-See Also
---------
-
-* :ref:`maxFlow`
-* http://www.boost.org/libs/graph/doc/push_relabel_max_flow.html
-* https://en.wikipedia.org/wiki/Push%E2%80%93relabel_maximum_flow_algorithm
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
-
diff --git a/src/max_flow/doc/pgr_maxFlowBoykovKolmogorov.rst b/src/max_flow/doc/pgr_maxFlowBoykovKolmogorov.rst
deleted file mode 100644
index 31d1f2b..0000000
--- a/src/max_flow/doc/pgr_maxFlowBoykovKolmogorov.rst
+++ /dev/null
@@ -1,219 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-   INSTRUCTIONS
-   - if section consists of only one value then use this file as index.rst
-   - change [...] (including the square braquets) to appropriate values
-   - one file / function,  may signatures of the same function go in the same file
-
-.. _pgr_maxFlowBoykovKolmogorov:
-
-pgr_maxFlowBoykovKolmogorov - Proposed
-======================================================
-
-
-Name
-----
-
-``pgr_maxFlowBoykovKolmogorov`` — Calculates the maximum flow in a directed graph given a source and a destination. Implemented by Boost Graph Library.
-
-
-
-.. include:: proposed.rst
-   :start-after: begin-warn-expr
-   :end-before: end-warn-expr
-
-
-
-.. figure:: images/boost-inside.jpeg
-   :target: http://www.boost.org/libs/graph/doc/boykov_kolmogorov_max_flow.html
-
-   Boost Graph Inside
-
-
-Synopsis
--------------------------------------------------------------------------------
-
-Calculates the maximum flow in a directed graph from a source node to a sink node.
-Edges must be weighted with non-negative capacities.
-Developed by Boykov and Kolmogorov.
-
-
-Characteristics:
-----------------
-
-The main characterics are:
-  - The graph must be directed.
-  - Calculates the flow/residual capacity for each edge. In the output, edges with zero flow are omitted.
-  - The maximum flow through the graph can be calculated by aggregation on source/sink.
-  - Returns nothing if source and sink are the same.
-  - Allows multiple sources and sinks (See signatures below).
-  - Running time: in general polynomial complexity, performs well on graphs that represent 2D grids (eg.: roads).
-
-Signature Summary
------------------
-
-.. code-block:: none
-
-    pgr_maxFlowBoykovKolmogorov(edges_sql, source_vertex,  sink_vertex)
-    pgr_maxFlowBoykovKolmogorov(edges_sql, source_vertices,  sink_vertex)
-    pgr_maxFlowBoykovKolmogorov(edges_sql, source_vertex,  sink_vertices)
-    pgr_maxFlowBoykovKolmogorov(edges_sql, source_vertices,  sink_vertices)
-    RETURNS SET OF (seq, edge_id, source, target, flow, residual_capacity)
-      OR EMPTY SET
-
-
-Signatures
-----------------------------
-
-.. index::
-    single: maxFlowBoykovKolmogorov(One to One) - Proposed
-
-One to One
-..............................................
-
-The available signature calculates the maximum flow from one source vertex to one sink vertex.
-
-.. code-block:: none
-
-    pgr_maxFlowBoykovKolmogorov(edges_sql, source_vertex,  sink_vertex)
-    RETURNS SET OF (seq, edge_id, source, target, flow, residual_capacity)
-      OR EMPTY SET
-
-:Example:
-
-.. literalinclude:: doc-pgr_maxFlowBoykovKolmogorov.queries
-   :start-after: -- q1
-   :end-before: -- q2
-
-
-.. index::
-    single: maxFlowBoykovKolmogorov(One to Many) - Proposed
-
-One to Many
-..............................................
-
-The available signature calculates the maximum flow from one source vertex to many sink vertices.
-
-.. code-block:: none
-
-    pgr_maxFlowBoykovKolmogorov(edges_sql, source_vertex,  sink_vertices)
-    RETURNS SET OF (id, edge_id, source, target, flow, residual_capacity)
-      OR EMPTY SET
-
-:Example:
-
-.. literalinclude:: doc-pgr_maxFlowBoykovKolmogorov.queries
-   :start-after: -- q2
-   :end-before: -- q3
-
-
-.. index::
-    single: maxFlowBoykovKolmogorov(Many to One) - Proposed
-
-Many to One
-..............................................
-
-The available signature calculates the maximum flow from many source vertices to one sink vertex.
-
-.. code-block:: none
-
-    pgr_maxFlowBoykovKolmogorov(edges_sql, source_vertices,  sink_vertex)
-    RETURNS SET OF (seq, edge_id, source, target, flow, residual_capacity)
-      OR EMPTY SET
-
-:Example:
-
-.. literalinclude:: doc-pgr_maxFlowBoykovKolmogorov.queries
-   :start-after: -- q3
-   :end-before: -- q4
-
-
-.. index::
-    single: maxFlowBoykovKolmogorov(Many to Many) - Proposed
-
-Many to Many
-..............................................
-
-The available signature calculates the maximum flow from many sources to many sinks.
-
-.. code-block:: none
-
-    pgr_maxFlowBoykovKolmogorov(edges_sql, source_vertices,  sink_vertices)
-    RETURNS SET OF (seq, edge_id, source, target, flow, residual_capacity)
-      OR EMPTY SET
-
-:Example:
-
-.. literalinclude:: doc-pgr_maxFlowBoykovKolmogorov.queries
-   :start-after: -- q4
-   :end-before: -- q5
-
-
-
-
-Description of the Signatures
---------------------------------------------------------
-
-Description of the SQL query
-..............................................
-
-:edges_sql: an SQL query, which should return a set of rows with the following columns:
-
-====================  ===================   =================================================
-Column                Type                  Description
-====================  ===================   =================================================
-**id**                ``ANY-INTEGER``       Identifier of the edge.
-**source**            ``ANY-INTEGER``       Identifier of the first end point vertex of the edge.
-**target**            ``ANY-INTEGER``       Identifier of the second end point vertex of the edge.
-**capacity**          ``ANY-INTEGER``       Capacity of the edge `(source, target)`. Must be positive.
-**reverse_capacity**  ``ANY-INTEGER``       (optional) Weight of the edge `(target, source)`. Must be positive or null.
-====================  ===================   =================================================
-
-Where:
-
-:ANY-INTEGER: SMALLINT, INTEGER, BIGINT
-
-
-Description of the parameters of the signatures
-.......................................................
-
-================= ====================== =================================================
-Column            Type                   Description
-================= ====================== =================================================
-**edges_sql**     ``TEXT``               SQL query as described above.
-**source_vertex** ``BIGINT``             Identifier of the source vertex(or vertices).
-**sink_vertex**   ``BIGINT``             Identifier of the sink vertex(or vertices).
-================= ====================== =================================================
-
-Description of the Return Values
-.......................................................
-
-=====================  ====================  =================================================
-Column                 Type                  Description
-=====================  ====================  =================================================
-**seq**                ``INT``               Sequential value starting from **1**.
-**edge_id**            ``BIGINT``            Identifier of the edge in the original query(edges_sql).
-**source**             ``BIGINT``            Identifier of the first end point vertex of the edge.
-**target**             ``BIGINT``            Identifier of the second end point vertex of the edge.
-**flow**               ``BIGINT``            Flow through the edge in the direction (source, target).
-**residual_capacity**  ``BIGINT``            Residual capacity of the edge in the direction (source, target).
-=====================  ====================  =================================================
-
-See Also
---------
-
-* http://www.boost.org/libs/graph/doc/boykov_kolmogorov_max_flow.html
-* http://www.csd.uwo.ca/~yuri/Papers/pami04.pdf
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
-
diff --git a/src/max_flow/doc/pgr_maxFlowEdmondsKarp.rst b/src/max_flow/doc/pgr_maxFlowEdmondsKarp.rst
deleted file mode 100644
index 7bcf50b..0000000
--- a/src/max_flow/doc/pgr_maxFlowEdmondsKarp.rst
+++ /dev/null
@@ -1,209 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-
-.. _pgr_maxFlowEdmondsKarp:
-
-pgr_maxFlowEdmondsKarp - Proposed
-============================================
-
-
-Name
-----
-
-``pgr_maxFlowEdmondsKarp`` — Calculates the maximum flow in a directed graph given a source and a destination. Implemented by Boost Graph Library.
-
-
-.. include:: proposed.rst
-   :start-after: begin-warn-expr
-   :end-before: end-warn-expr
-
-
-.. figure:: images/boost-inside.jpeg
-   :target: http://www.boost.org/libs/graph/doc/edmonds_karp_max_flow.html
-
-   Boost Graph Inside
-
-
-Synopsis
--------------------------------------------------------------------------------
-
-Calculates the maximum flow in a directed graph from a source node to a sink node.
-Edges must be weighted with non-negative capacities.
-Developed by Edmonds and Karp.
-
-
-Characteristics:
-----------------
-
-The main characterics are:
-  - The graph must be directed.
-  - Calculates the flow/residual capacity for each edge. In the output, edges with zero flow are omitted.
-  - The maximum flow through the graph can be calculated by aggregation on source/sink.
-  - Returns nothing if source and sink are the same.
-  - Allows multiple sources and sinks (See signatures below).
-  - Running time: :math:`O(V * E^2)`.
-
-Signature Summary
------------------
-
-.. code-block:: none
-
-    pgr_maxFlowEdmondsKarp(edges_sql, source_vertex,  sink_vertex)
-    pgr_maxFlowEdmondsKarp(edges_sql, source_vertices,  sink_vertex)
-    pgr_maxFlowEdmondsKarp(edges_sql, source_vertex,  sink_vertices)
-    pgr_maxFlowEdmondsKarp(edges_sql, source_vertices,  sink_vertices)
-    RETURNS SET OF (id, edge_id, source, target, flow, residual_capacity)
-      OR EMPTY SET
-
-Signatures
------------------------
-
-.. index::
-    single: maxFlowEdmondsKarp(One to One) - Proposed
-
-One to One
-.................................................
-
-Calculates the maximum flow from one source vertex to one sink vertex on a `directed` graph.
-
-.. code-block:: none
-
-    pgr_maxFlowEdmondsKarp(edges_sql, source_vertex,  sink_vertex)
-    RETURNS SET OF (seq, edge_id, source, target, flow, residual_capacity)
-      OR EMPTY SET
-
-:Example:
-
-.. literalinclude:: doc-pgr_maxFlowEdmondsKarp.queries
-   :start-after: -- q1
-   :end-before: -- q2
-
-.. index::
-    single: maxFlowEdmondsKarp(One to Many) - Proposed
-
-One to Many
-.................................................
-
-Calculates the maximum flow from one source vertex to many sink vertices on a `directed` graph.
-
-.. code-block:: none
-
-    pgr_maxFlowEdmondsKarp(edges_sql, source_vertex,  sink_vertices)
-    RETURNS SET OF (seq, edge_id, source, target, flow, residual_capacity)
-      OR EMPTY SET
-
-:Example:
-
-.. literalinclude:: doc-pgr_maxFlowEdmondsKarp.queries
-   :start-after: -- q2
-   :end-before: -- q3
-
-.. index::
-    single: maxFlowEdmondsKarp(Many to One) - Proposed
-
-Many to One
-.................................................
-
-Calculates the maximum flow from many source vertices to one sink vertex on a `directed` graph.
-
-.. code-block:: none
-
-    pgr_maxFlowEdmondsKarp(edges_sql, source_vertices,  sink_vertex)
-    RETURNS SET OF (seq, edge_id, source, target, flow, residual_capacity)
-      OR EMPTY SET
-
-:Example:
-
-.. literalinclude:: doc-pgr_maxFlowEdmondsKarp.queries
-   :start-after: -- q3
-   :end-before: -- q4
-
-.. index::
-    single: maxFlowEdmondsKarp(Many to Many) - Proposed
-
-Many to Many
-.................................................
-
-Calculates the maximum flow from many sources to many sinks on a `directed` graph.
-
-.. code-block:: none
-
-    pgr_maxFlowEdmondsKarp(edges_sql, source_vertices,  sink_vertices)
-    RETURNS SET OF (seq, edge_id, source, target, flow, residual_capacity)
-      OR EMPTY SET
-
-:Example:
-
-.. literalinclude:: doc-pgr_maxFlowEdmondsKarp.queries
-   :start-after: -- q4
-   :end-before: -- q5
-
-
-
-Description of the Signatures
------------------------------------------------
-
-Description of the SQL query
-.................................................
-
-:edges_sql: an SQL query, which should return a set of rows with the following columns:
-
-====================  ===================   =================================================
-Column                Type                  Description
-====================  ===================   =================================================
-**id**                ``ANY-INTEGER``       Identifier of the edge.
-**source**            ``ANY-INTEGER``       Identifier of the first end point vertex of the edge.
-**target**            ``ANY-INTEGER``       Identifier of the second end point vertex of the edge.
-**capacity**          ``ANY-INTEGER``       Capacity of the edge `(source, target)`. Must be positive.
-**reverse_capacity**  ``ANY-INTEGER``       (optional) Weight of the edge `(target, source)`. Must be positive or null.
-====================  ===================   =================================================
-
-Where:
-
-:ANY-INTEGER: SMALLINT, INTEGER, BIGINT
-
-
-Description of the parameters of the signatures
-.................................................
-
-================= ====================== =================================================
-Column            Type                   Description
-================= ====================== =================================================
-**edges_sql**     ``TEXT``               SQL query as described above.
-**source_vertex** ``BIGINT``             Identifier of the source vertex(or vertices).
-**sink_vertex**   ``BIGINT``             Identifier of the sink vertex(or vertices).
-================= ====================== =================================================
-
-Description of the return values
-.................................................
-
-=====================  ====================  =================================================
-Column                 Type                  Description
-=====================  ====================  =================================================
-**seq**                ``INT``               Sequential value starting from **1**.
-**edge_id**            ``BIGINT``            Identifier of the edge in the original query(edges_sql).
-**source**             ``BIGINT``            Identifier of the first end point vertex of the edge.
-**target**             ``BIGINT``            Identifier of the second end point vertex of the edge.
-**flow**               ``BIGINT``            Flow through the edge in the direction (source, target).
-**residual_capacity**  ``BIGINT``            Residual capacity of the edge in the direction (source, target).
-=====================  ====================  =================================================
-
-See Also
---------
-
-* :ref:`maxFlow`
-* http://www.boost.org/libs/graph/doc/edmonds_karp_max_flow.html
-* https://en.wikipedia.org/wiki/Edmonds%E2%80%93Karp_algorithm
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
-
diff --git a/src/max_flow/doc/pgr_maxFlowPushRelabel.rst b/src/max_flow/doc/pgr_maxFlowPushRelabel.rst
deleted file mode 100644
index 0516895..0000000
--- a/src/max_flow/doc/pgr_maxFlowPushRelabel.rst
+++ /dev/null
@@ -1,213 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-   INSTRUCTIONS
-   - if section consists of only one value then use this file as index.rst
-   - change [...] (including the square braquets) to appropriate values
-   - one file / function,  may signatures of the same function go in the same file
-
-.. _pgr_maxFlowPushRelabel:
-
-pgr_maxFlowPushRelabel Proposed
-============================================
-
-
-Name
-----
-
-``pgr_maxFlowPushRelabel`` — Calculates the maximum flow in a directed graph given a source and a destination.
-
-
-.. include:: proposed.rst
-   :start-after: begin-warn-expr
-   :end-before: end-warn-expr
-
-
-.. figure:: images/boost-inside.jpeg
-   :target: http://www.boost.org/libs/graph/doc/push_relabel_max_flow.html
-
-   Boost Graph Inside
-
-
-Synopsis
--------------------------------------------------------------------------------
-
-Calculates the maximum flow in a directed graph from a source node to a sink node.
-Edges must be weighted with non-negative capacities.
-
-Characteristics:
-----------------
-
-The main characterics are:
-  - Calculates the flow/residual capacity for each edge. In the output, edges with zero flow are omitted.
-  - The maximum flow through the graph can be calculated by aggregation on source/sink.
-  - Returns nothing if source and sink are the same.
-  - Allows multiple sources and sinks.
-  - Running time: :math:`O( V ^ 3)`
-
-Signature Summary
------------------
-
-.. code-block:: none
-
-    pgr_maxFlowPushRelabel(edges_sql, source_vertex,  sink_vertex)
-    pgr_maxFlowPushRelabel(edges_sql, source_vertices,  sink_vertex)
-    pgr_maxFlowPushRelabel(edges_sql, source_vertex,  sink_vertices)
-    pgr_maxFlowPushRelabel(edges_sql, source_vertices,  sink_vertices)
-    RETURNS SET OF (seq, edge_id, source, target, flow, residual_capacity)
-      OR EMPTY SET
-
-
-Signatures
------------------------
-
-.. index::
-    single: maxFlowPushRelabel(One to One) - Proposed
-
-One to One
-.....................................................................
-
-Calculates the maximum flow from one source vertex to one sink vertex in a directed graph.
-
-.. code-block:: none
-
-    pgr_maxFlowPushRelabel(edges_sql, source_vertex,  sink_vertex)
-    RETURNS SET OF (seq, edge_id, source, target, flow, residual_capacity)
-      OR EMPTY SET
-
-:Example:
-
-.. literalinclude:: doc-pgr_maxFlowPushRelabel.queries
-   :start-after: -- q1
-   :end-before: -- q2
-
-
-.. index::
-    single: maxFlowPushRelabel(One to Many) - Proposed
-
-One to Many
-.....................................................................
-
-Ccalculates the maximum flow from one source vertex to many sink vertices in a directed graph.
-
-.. code-block:: none
-
-    pgr_maxFlowPushRelabel(edges_sql, source_vertex,  sink_vertices)
-    RETURNS SET OF (seq, edge_id, source, target, flow, residual_capacity)
-      OR EMPTY SET
-
-:Example:
-
-.. literalinclude:: doc-pgr_maxFlowPushRelabel.queries
-   :start-after: -- q2
-   :end-before: -- q3
-
-
-.. index::
-    single: maxFlowPushRelabel(Many to One) - Proposed
-
-Many to One
-.....................................................................
-
-Calculates the maximum flow from many source vertices to one sink vertex in a directed graph.
-
-.. code-block:: none
-
-    pgr_maxFlowPushRelabel(edges_sql, source_vertices,  sink_vertex)
-    RETURNS SET OF (seq, edge_id, source, target, flow, residual_capacity)
-      OR EMPTY SET
-
-:Example:
-
-.. literalinclude:: doc-pgr_maxFlowPushRelabel.queries
-   :start-after: -- q3
-   :end-before: -- q4
-
-
-.. index::
-    single: maxFlowPushRelabel(Many to Many) - Proposed
-
-Many to Many
-.....................................................................
-
-Calculates the maximum flow from many sources to many sinks in a directed graph.
-
-.. code-block:: none
-
-    pgr_maxFlowPushRelabel(edges_sql, source_vertices,  sink_vertices)
-    RETURNS SET OF (seq, edge_id, source, target, flow, residual_capacity)
-      OR EMPTY SET
-
-:Example:
-
-.. literalinclude:: doc-pgr_maxFlowPushRelabel.queries
-   :start-after: -- q4
-   :end-before: -- q5
-
-Description of the Signatures
---------------------------------------------------------
-
-
-Description of the SQL query
-.....................................................................
-
-:edges_sql: an SQL query, which should return a set of rows with the following columns:
-
-====================  ===================   =================================================
-Column                Type                  Description
-====================  ===================   =================================================
-**id**                ``ANY-INTEGER``       Identifier of the edge.
-**source**            ``ANY-INTEGER``       Identifier of the first end point vertex of the edge.
-**target**            ``ANY-INTEGER``       Identifier of the second end point vertex of the edge.
-**capacity**          ``ANY-INTEGER``       Capacity of the edge `(source, target)`. Must be positive.
-**reverse_capacity**  ``ANY-INTEGER``       (optional) Weight of the edge `(target, source)`. Must be positive or null.
-====================  ===================   =================================================
-
-Where:
-
-:ANY-INTEGER: SMALLINT, INTEGER, BIGINT
-
-
-Description of the parameters of the signatures
-.....................................................................
-
-================= ====================== =================================================
-Column            Type                   Description
-================= ====================== =================================================
-**edges_sql**     ``TEXT``               SQL query as described above.
-**source_vertex** ``BIGINT``             Identifier of the source vertex(or vertices).
-**sink_vertex**   ``BIGINT``             Identifier of the sink vertex(or vertices).
-================= ====================== =================================================
-
-Description of the Return Values
-.....................................................................
-
-=====================  ====================  =================================================
-Column                 Type                  Description
-=====================  ====================  =================================================
-**seq**                ``INT``               Sequential value starting from **1**.
-**edge_id**            ``BIGINT``            Identifier of the edge in the original query(edges_sql).
-**source**             ``BIGINT``            Identifier of the first end point vertex of the edge.
-**target**             ``BIGINT``            Identifier of the second end point vertex of the edge.
-**flow**               ``BIGINT``            Flow through the edge in the direction (source, target).
-**residual_capacity**  ``BIGINT``            Residual capacity of the edge in the direction (source, target).
-=====================  ====================  =================================================
-
-See Also
---------
-
-* :ref:`maxFlow`
-* http://www.boost.org/libs/graph/doc/push_relabel_max_flow.html
-* https://en.wikipedia.org/wiki/Push%E2%80%93relabel_maximum_flow_algorithm
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
-
diff --git a/src/max_flow/doc/pgr_maximumCardinalityMatching.rst b/src/max_flow/doc/pgr_maximumCardinalityMatching.rst
deleted file mode 100644
index da642ff..0000000
--- a/src/max_flow/doc/pgr_maximumCardinalityMatching.rst
+++ /dev/null
@@ -1,171 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_maximumCardinalityMatching:
-
-pgr_maximumCardinalityMatching - Proposed
-============================================================
-
-
-Name
-----
-
-``pgr_maximumCardinalityMatching`` — Calculates a maximum cardinality matching in a graph.
-
-
-.. include:: proposed.rst
-   :start-after: begin-warn-expr
-   :end-before: end-warn-expr
-
-
-.. figure:: images/boost-inside.jpeg
-   :target: http://www.boost.org/libs/graph/doc/maximum_matching.html
-
-   Boost Graph Inside
-
-
-Synopsis
--------------------------------------------------------------------------------
-
-Calculates a maximum cardinality matching in a directed/undirected graph.
-
-- A matching or independent edge set in a graph is a set of edges without common vertices.
-- A maximum matching is a matching that contains the largest possible number of edges.
-- There may be many maximum matchings.
-
-
-Characteristics:
-----------------
-
-The main characterics are:
-  - Calculates **one** possible maximum cardinality matching in a graph.
-  - The graph can be directed or undirected.
-  - Running time: :math:`O( E*V * \alpha(E,V))`
-  - :math:`\alpha(E,V)` is the inverse of the `Ackermann function`_.
-
-  .. _Ackermann function: https://en.wikipedia.org/wiki/Ackermann_function
-
-Signature Summary
------------------
-
-
-.. code-block:: none
-
-    pgr_MaximumCardinalityMatching(edges_sql)
-    pgr_MaximumCardinalityMatching(edges_sql, directed)
-
-    RETURNS SET OF (seq, edge_id, source, target)
-        OR EMPTY SET
-
-
-Signatures
-----------
-
-.. index::
-    single: MaximumCardinalityMatching(Minimal Use) - Proposed
-
-
-
-Minimal signature
-....................
-
-.. code-block:: none
-
-    pgr_MaximumCardinalityMatching(edges_sql)
-    RETURNS SET OF (seq, edge_id, source, target) OR EMPTY SET
-
-The minimal signature calculates one possible maximum cardinality matching on a `directed` graph.
-
-:Example:
-
-.. literalinclude:: doc-pgr_maximumCardinalityMatching.queries
-   :start-after: -- q1
-   :end-before: -- q2
-
-.. index::
-    single: MaximumCardinalityMatching(Complete Signature) - Proposed
-
-Complete signature
-....................
-
-.. code-block:: none
-
-    pgr_MaximumCardinalityMatching(edges_sql, directed)
-    RETURNS SET OF (seq, edge_id, source, target) OR EMPTY SET
-
-
-The complete signature calculates one possible maximum cardinality matching.
-
-:Example:
-
-.. literalinclude:: doc-pgr_maximumCardinalityMatching.queries
-   :start-after: -- q2
-   :end-before: -- q3
-
-
-
-Description of the Signatures
---------------------------------------------------------
-
-
-Description of the SQL query
-...........................................................
-
-:edges_sql: an SQL query, which should return a set of rows with the following columns:
-
-====================  ===================   =================================================
-Column                Type                  Description
-====================  ===================   =================================================
-**id**                ``ANY-INTEGER``       Identifier of the edge.
-**source**            ``ANY-INTEGER``       Identifier of the first end point vertex of the edge.
-**target**            ``ANY-INTEGER``       Identifier of the second end point vertex of the edge.
-**going**             ``ANY-NUMERIC``       A positive value represents the existence of the edge (source, target).
-**coming**            ``ANY-NUMERIC``       A positive value represents the existence of the edge (target, source).
-====================  ===================   =================================================
-
-Where:
-
-  - :ANY-INTEGER: SMALLINT, INTEGER, BIGINT
-  - :ANY-NUMERIC: SMALLINT, INTEGER, BIGINT, REAL, DOUBLE PRECISION
-
-Description of the parameters of the signatures
-...........................................................
-
-================= ====================== =================================================
-Column            Type                   Description
-================= ====================== =================================================
-**edges_sql**     ``TEXT``               SQL query as described above.
-**directed**      ``BOOLEAN``            (optional) Determines the type of the graph. Default TRUE.
-================= ====================== =================================================
-
-Description of the Result
-...........................................................
-
-=====================  ====================  =================================================
-Column                 Type                  Description
-=====================  ====================  =================================================
-**seq**                ``INT``               Sequential value starting from **1**.
-**edge_id**            ``BIGINT``            Identifier of the edge in the original query(edges_sql).
-**source**             ``BIGINT``            Identifier of the first end point vertex of the edge.
-**target**             ``BIGINT``            Identifier of the second end point vertex of the edge.
-=====================  ====================  =================================================
-
-See Also
---------
-
-* :ref:`maxFlow`
-* http://www.boost.org/libs/graph/doc/maximum_matching.html
-* https://en.wikipedia.org/wiki/Matching_%28graph_theory%29
-* https://en.wikipedia.org/wiki/Ackermann_function
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
-
diff --git a/src/max_flow/sql/CMakeLists.txt b/src/max_flow/sql/CMakeLists.txt
deleted file mode 100644
index c20d006..0000000
--- a/src/max_flow/sql/CMakeLists.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-# Append in local scope
-LIST(APPEND PACKAGE_SQL_FILES
-        ${CMAKE_CURRENT_SOURCE_DIR}/max_flow.sql
-        ${CMAKE_CURRENT_SOURCE_DIR}/only_flow.sql
-        ${CMAKE_CURRENT_SOURCE_DIR}/maximum_cardinality_matching.sql
-        ${CMAKE_CURRENT_SOURCE_DIR}/edge_disjoint_paths.sql
-)
-
-# set in parent scope
-SET(PACKAGE_SQL_FILES "${PACKAGE_SQL_FILES}" PARENT_SCOPE)
diff --git a/src/max_flow/sql/edge_disjoint_paths.sql b/src/max_flow/sql/edge_disjoint_paths.sql
deleted file mode 100644
index 83a347e..0000000
--- a/src/max_flow/sql/edge_disjoint_paths.sql
+++ /dev/null
@@ -1,102 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Copyright (c) 2016 Andrea Nardelli
-mail: nrd.nardelli at gmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-
-/***********************************
-        ONE TO ONE
-***********************************/
-
-CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
-    IN edges_sql TEXT,
-    IN source_vertex bigint,
-    IN destination_vertex bigint,
-    IN directed BOOLEAN DEFAULT TRUE,
-    OUT seq INTEGER,
-    OUT path_seq INTEGER,
-    OUT node BIGINT,
-    OUT edge BIGINT
-    )
-  RETURNS SETOF RECORD AS
- '$libdir/${PGROUTING_LIBRARY_NAME}', 'edge_disjoint_paths_one_to_one'
-    LANGUAGE c IMMUTABLE STRICT;
-
-/***********************************
-        ONE TO MANY
-***********************************/
-
-CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
-    IN edges_sql TEXT,
-    IN source_vertex bigint,
-    IN destination_vertices ANYARRAY,
-    IN directed BOOLEAN DEFAULT TRUE,
-    OUT seq INTEGER,
-    OUT path_seq INTEGER,
-    OUT end_vid BIGINT,
-    OUT node BIGINT,
-    OUT edge BIGINT
-    )
-  RETURNS SETOF RECORD AS
- '$libdir/${PGROUTING_LIBRARY_NAME}', 'edge_disjoint_paths_one_to_many'
-    LANGUAGE c IMMUTABLE STRICT;
-
-/***********************************
-        MANY TO ONE
-***********************************/
-
-CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
-    IN edges_sql TEXT,
-    IN source_vertices ANYARRAY,
-    IN destination_vertex BIGINT,
-    IN directed BOOLEAN DEFAULT TRUE,
-    OUT seq INTEGER,
-    OUT path_seq INTEGER,
-    OUT start_vid BIGINT,
-    OUT node BIGINT,
-    OUT edge BIGINT
-    )
-  RETURNS SETOF RECORD AS
- '$libdir/${PGROUTING_LIBRARY_NAME}', 'edge_disjoint_paths_many_to_one'
-    LANGUAGE c IMMUTABLE STRICT;
-
-/***********************************
-        MANY TO MANY
-***********************************/
-
-CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
-    IN edges_sql TEXT,
-    IN source_vertices ANYARRAY,
-    IN destination_vertices ANYARRAY,
-    IN directed BOOLEAN DEFAULT TRUE,
-    OUT seq INTEGER,
-    OUT path_seq INTEGER,
-    OUT start_vid BIGINT,
-    OUT end_vid BIGINT,
-    OUT node BIGINT,
-    OUT edge BIGINT
-    )
-  RETURNS SETOF RECORD AS
- '$libdir/${PGROUTING_LIBRARY_NAME}', 'edge_disjoint_paths_many_to_many'
-    LANGUAGE c IMMUTABLE STRICT;
\ No newline at end of file
diff --git a/src/max_flow/sql/max_flow.sql b/src/max_flow/sql/max_flow.sql
deleted file mode 100644
index 3e17829..0000000
--- a/src/max_flow/sql/max_flow.sql
+++ /dev/null
@@ -1,366 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Copyright (c) 2016 Andrea Nardelli
-mail: nrd.nardelli at gmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-/***********************************
-        ONE TO ONE
-***********************************/
-
---INTERNAL FUNCTIONS
-
-CREATE OR REPLACE FUNCTION _pgr_maxflow(
-    edges_sql TEXT,
-    source_vertex BIGINT,
-    sink_vertex BIGINT,
-    algorithm TEXT DEFAULT 'push_relabel',
-    only_flow BOOLEAN DEFAULT false,
-    OUT seq INTEGER,
-    OUT edge_id BIGINT,
-    OUT source BIGINT,
-    OUT target BIGINT,
-    OUT flow BIGINT,
-    OUT residual_capacity BIGINT
-    )
-  RETURNS SETOF RECORD AS
- '$libdir/${PGROUTING_LIBRARY_NAME}', 'max_flow_one_to_one'
-    LANGUAGE c IMMUTABLE STRICT;
-
---FUNCTIONS
-
-CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
-    edges_sql TEXT,
-    source_vertex BIGINT,
-    sink_vertex BIGINT,
-    OUT seq INTEGER,
-    OUT edge_id BIGINT,
-    OUT source BIGINT,
-    OUT target BIGINT,
-    OUT flow BIGINT,
-    OUT residual_capacity BIGINT
-    )
-  RETURNS SETOF RECORD AS
-  $BODY$
-  BEGIN
-        RETURN QUERY SELECT *
-        FROM _pgr_maxflow(_pgr_get_statement($1), $2, $3, 'push_relabel');
-  END
-  $BODY$
-  LANGUAGE plpgsql VOLATILE;
-
-CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
-    edges_sql TEXT,
-    source_vertex BIGINT,
-    sink_vertex BIGINT,
-    OUT seq INTEGER,
-    OUT edge_id BIGINT,
-    OUT source BIGINT,
-    OUT target BIGINT,
-    OUT flow BIGINT,
-    OUT residual_capacity BIGINT
-    )
-  RETURNS SETOF RECORD AS
-  $BODY$
-  BEGIN
-        RETURN QUERY SELECT *
-        FROM _pgr_maxflow(_pgr_get_statement($1), $2, $3, 'boykov_kolmogorov');
-  END
-  $BODY$
-  LANGUAGE plpgsql VOLATILE;
-
-CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
-    edges_sql TEXT,
-    source_vertex BIGINT,
-    sink_vertex BIGINT,
-    OUT seq INTEGER,
-    OUT edge_id BIGINT,
-    OUT source BIGINT,
-    OUT target BIGINT,
-    OUT flow BIGINT,
-    OUT residual_capacity BIGINT
-    )
-  RETURNS SETOF RECORD AS
-  $BODY$
-  BEGIN
-        RETURN QUERY SELECT *
-        FROM _pgr_maxflow(_pgr_get_statement($1), $2, $3, 'edmonds_karp');
-  END
-  $BODY$
-  LANGUAGE plpgsql VOLATILE;
-
-/***********************************
-        ONE TO MANY
-***********************************/
-
---INTERNAL FUNCTIONS
-
-CREATE OR REPLACE FUNCTION _pgr_maxflow(
-    edges_sql TEXT,
-    source_vertex BIGINT,
-    sink_vertices ANYARRAY,
-    algorithm TEXT DEFAULT 'push_relabel',
-    only_flow BOOLEAN DEFAULT false,
-    OUT seq INTEGER,
-    OUT edge_id BIGINT,
-    OUT source BIGINT,
-    OUT target BIGINT,
-    OUT flow BIGINT,
-    OUT residual_capacity BIGINT
-    )
-  RETURNS SETOF RECORD AS
- '$libdir/${PGROUTING_LIBRARY_NAME}', 'max_flow_one_to_many'
-    LANGUAGE c IMMUTABLE STRICT;
-
---FUNCTIONS
-
-CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
-    edges_sql TEXT,
-    source_vertex BIGINT,
-    sink_vertices ANYARRAY,
-    OUT seq INTEGER,
-    OUT edge_id BIGINT,
-    OUT source BIGINT,
-    OUT target BIGINT,
-    OUT flow BIGINT,
-    OUT residual_capacity BIGINT
-    )
-  RETURNS SETOF RECORD AS
-  $BODY$
-  BEGIN
-        RETURN QUERY SELECT *
-        FROM _pgr_maxflow(_pgr_get_statement($1), $2, $3, 'push_relabel');
-  END
-  $BODY$
-  LANGUAGE plpgsql VOLATILE;
-
-CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
-    edges_sql TEXT,
-    source_vertex BIGINT,
-    sink_vertices ANYARRAY,
-    OUT seq INTEGER,
-    OUT edge_id BIGINT,
-    OUT source BIGINT,
-    OUT target BIGINT,
-    OUT flow BIGINT,
-    OUT residual_capacity BIGINT
-    )
-  RETURNS SETOF RECORD AS
-  $BODY$
-  BEGIN
-        RETURN QUERY SELECT *
-        FROM _pgr_maxflow(_pgr_get_statement($1), $2, $3, 'boykov_kolmogorov');
-  END
-  $BODY$
-  LANGUAGE plpgsql VOLATILE;
-
-CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
-    edges_sql TEXT,
-    source_vertex BIGINT,
-    sink_vertices ANYARRAY,
-    OUT seq INTEGER,
-    OUT edge_id BIGINT,
-    OUT source BIGINT,
-    OUT target BIGINT,
-    OUT flow BIGINT,
-    OUT residual_capacity BIGINT
-    )
-  RETURNS SETOF RECORD AS
-  $BODY$
-  BEGIN
-        RETURN QUERY SELECT *
-        FROM _pgr_maxflow(_pgr_get_statement($1), $2, $3, 'edmonds_karp');
-  END
-  $BODY$
-  LANGUAGE plpgsql VOLATILE;
-
-/***********************************
-        MANY TO ONE
-***********************************/
-
---INTERNAL FUNCTIONS
-
-CREATE OR REPLACE FUNCTION _pgr_maxflow(
-    edges_sql TEXT,
-    source_vertices ANYARRAY,
-    sink_vertex BIGINT,
-    algorithm TEXT DEFAULT 'push_relabel',
-    only_flow BOOLEAN DEFAULT false,
-    OUT seq INTEGER,
-    OUT edge_id BIGINT,
-    OUT source BIGINT,
-    OUT target BIGINT,
-    OUT flow BIGINT,
-    OUT residual_capacity BIGINT
-    )
-  RETURNS SETOF RECORD AS
- '$libdir/${PGROUTING_LIBRARY_NAME}', 'max_flow_many_to_one'
-    LANGUAGE c IMMUTABLE STRICT;
-
---FUNCTIONS
-
-CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
-    edges_sql TEXT,
-    source_vertices ANYARRAY,
-    sink_vertex BIGINT,
-    OUT seq INTEGER,
-    OUT edge_id BIGINT,
-    OUT source BIGINT,
-    OUT target BIGINT,
-    OUT flow BIGINT,
-    OUT residual_capacity BIGINT
-    )
-  RETURNS SETOF RECORD AS
-  $BODY$
-  BEGIN
-        RETURN QUERY SELECT *
-        FROM _pgr_maxflow(_pgr_get_statement($1), $2, $3, 'push_relabel');
-  END
-  $BODY$
-  LANGUAGE plpgsql VOLATILE;
-
-CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
-    edges_sql TEXT,
-    source_vertices ANYARRAY,
-    sink_vertex BIGINT,
-    OUT seq INTEGER,
-    OUT edge_id BIGINT,
-    OUT source BIGINT,
-    OUT target BIGINT,
-    OUT flow BIGINT,
-    OUT residual_capacity BIGINT
-    )
-  RETURNS SETOF RECORD AS
-  $BODY$
-  BEGIN
-        RETURN QUERY SELECT *
-        FROM _pgr_maxflow(_pgr_get_statement($1), $2, $3, 'boykov_kolmogorov');
-  END
-  $BODY$
-  LANGUAGE plpgsql VOLATILE;
-
-CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
-    edges_sql TEXT,
-    source_vertices ANYARRAY,
-    sink_vertex BIGINT,
-    OUT seq INTEGER,
-    OUT edge_id BIGINT,
-    OUT source BIGINT,
-    OUT target BIGINT,
-    OUT flow BIGINT,
-    OUT residual_capacity BIGINT
-    )
-  RETURNS SETOF RECORD AS
-  $BODY$
-  BEGIN
-        RETURN QUERY SELECT *
-        FROM _pgr_maxflow(_pgr_get_statement($1), $2, $3, 'edmonds_karp');
-  END
-  $BODY$
-  LANGUAGE plpgsql VOLATILE;
-
-/***********************************
-        MANY TO MANY
-***********************************/
-
---INTERNAL FUNCTIONS
-
-CREATE OR REPLACE FUNCTION _pgr_maxflow(
-    edges_sql TEXT,
-    source_vertices ANYARRAY,
-    sink_vertices ANYARRAY,
-    algorithm TEXT DEFAULT 'push_relabel',
-    only_flow BOOLEAN DEFAULT false,
-    OUT seq INTEGER,
-    OUT edge_id BIGINT,
-    OUT source BIGINT,
-    OUT target BIGINT,
-    OUT flow BIGINT,
-    OUT residual_capacity BIGINT
-    )
-  RETURNS SETOF RECORD AS
- '$libdir/${PGROUTING_LIBRARY_NAME}', 'max_flow_many_to_many'
-    LANGUAGE c IMMUTABLE STRICT;
-
---FUNCTIONS
-
-CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
-    edges_sql TEXT,
-    source_vertices ANYARRAY,
-    sink_vertices ANYARRAY,
-    OUT seq INTEGER,
-    OUT edge_id BIGINT,
-    OUT source BIGINT,
-    OUT target BIGINT,
-    OUT flow BIGINT,
-    OUT residual_capacity BIGINT
-    )
-  RETURNS SETOF RECORD AS
-  $BODY$
-  BEGIN
-        RETURN QUERY SELECT *
-        FROM _pgr_maxflow(_pgr_get_statement($1), $2, $3, 'push_relabel');
-  END
-  $BODY$
-  LANGUAGE plpgsql VOLATILE;
-
-CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
-    edges_sql TEXT,
-    source_vertices ANYARRAY,
-    sink_vertices ANYARRAY,
-    OUT seq INTEGER,
-    OUT edge_id BIGINT,
-    OUT source BIGINT,
-    OUT target BIGINT,
-    OUT flow BIGINT,
-    OUT residual_capacity BIGINT
-    )
-  RETURNS SETOF RECORD AS
-  $BODY$
-  BEGIN
-        RETURN QUERY SELECT *
-        FROM _pgr_maxflow(_pgr_get_statement($1), $2, $3, 'boykov_kolmogorov');
-  END
-  $BODY$
-  LANGUAGE plpgsql VOLATILE;
-
-CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
-    edges_sql TEXT,
-    source_vertices ANYARRAY,
-    sink_vertices ANYARRAY,
-    OUT seq INTEGER,
-    OUT edge_id BIGINT,
-    OUT source BIGINT,
-    OUT target BIGINT,
-    OUT flow BIGINT,
-    OUT residual_capacity BIGINT
-    )
-  RETURNS SETOF RECORD AS
-  $BODY$
-  BEGIN
-        RETURN QUERY SELECT *
-        FROM _pgr_maxflow(_pgr_get_statement($1), $2, $3, 'edmonds_karp');
-  END
-  $BODY$
-  LANGUAGE plpgsql VOLATILE;
-
diff --git a/src/max_flow/sql/maximum_cardinality_matching.sql b/src/max_flow/sql/maximum_cardinality_matching.sql
deleted file mode 100644
index abfbcef..0000000
--- a/src/max_flow/sql/maximum_cardinality_matching.sql
+++ /dev/null
@@ -1,39 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Copyright (c) 2016 Andrea Nardelli
-mail: nrd.nardelli at gmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
---FUNCTIONS
-
-CREATE OR REPLACE FUNCTION pgr_maximumcardinalitymatching(
-    edges_sql TEXT,
-    directed BOOLEAN DEFAULT TRUE,
-    OUT seq INTEGER,
-    OUT edge_id BIGINT,
-    OUT source BIGINT,
-    OUT target BIGINT
-    )
-  RETURNS SETOF RECORD AS
- '$libdir/${PGROUTING_LIBRARY_NAME}', 'maximum_cardinality_matching'
-    LANGUAGE c IMMUTABLE STRICT;
\ No newline at end of file
diff --git a/src/max_flow/sql/only_flow.sql b/src/max_flow/sql/only_flow.sql
deleted file mode 100644
index c71cdb5..0000000
--- a/src/max_flow/sql/only_flow.sql
+++ /dev/null
@@ -1,86 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-/***********************************
-        ONE TO ONE
-***********************************/
-
-CREATE OR REPLACE FUNCTION pgr_maxFlow(
-    edges_sql TEXT,
-    source_vertices BIGINT,
-    sink_vertices BIGINT
-    )
-  RETURNS BIGINT AS
-  $BODY$
-        SELECT coalesce(sum(flow), 0)::BIGINT
-        FROM _pgr_maxflow(_pgr_get_statement($1), $2, $3, algorithm := 'push_relabel', only_flow := true);
-  $BODY$
-  LANGUAGE SQL VOLATILE;
-
-/***********************************
-        ONE TO MANY
-***********************************/
-
-CREATE OR REPLACE FUNCTION pgr_maxFlow(
-    edges_sql TEXT,
-    source_vertices BIGINT,
-    sink_vertices ANYARRAY
-    )
-  RETURNS BIGINT AS
-  $BODY$
-        SELECT flow
-        FROM _pgr_maxflow(_pgr_get_statement($1), $2, $3, algorithm := 'push_relabel', only_flow := true);
-  $BODY$
-  LANGUAGE SQL VOLATILE;
-
-/***********************************
-        MANY TO ONE
-***********************************/
-
-CREATE OR REPLACE FUNCTION pgr_maxFlow(
-    edges_sql TEXT,
-    source_vertices ANYARRAY,
-    sink_vertices BIGINT
-    )
-  RETURNS BIGINT AS
-  $BODY$
-        SELECT flow
-        FROM _pgr_maxflow(_pgr_get_statement($1), $2, $3, algorithm := 'push_relabel', only_flow := true);
-  $BODY$
-  LANGUAGE SQL VOLATILE;
-
-/***********************************
-        MANY TO MANY
-***********************************/
-
-CREATE OR REPLACE FUNCTION pgr_maxFlow(
-    edges_sql TEXT,
-    source_vertices ANYARRAY,
-    sink_vertices ANYARRAY
-    )
-  RETURNS BIGINT AS
-  $BODY$
-        SELECT flow
-        FROM _pgr_maxflow(_pgr_get_statement($1), $2, $3, algorithm := 'push_relabel', only_flow := true);
-  $BODY$
-  LANGUAGE SQL VOLATILE;
diff --git a/src/max_flow/src/CMakeLists.txt b/src/max_flow/src/CMakeLists.txt
index 483741b..03fa1ff 100644
--- a/src/max_flow/src/CMakeLists.txt
+++ b/src/max_flow/src/CMakeLists.txt
@@ -1,17 +1,12 @@
 ADD_LIBRARY(max_flow OBJECT
-        max_flow_one_to_one.c
-        max_flow_many_to_many.c
-        max_flow_one_to_many.c
-        max_flow_many_to_one.c
+    max_flow.c
+    maximum_cardinality_matching.c
+    edge_disjoint_paths.c
 
-        maximum_cardinality_matching.c
+    max_flow_driver.cpp
+    maximum_cardinality_matching_driver.cpp
+    edge_disjoint_paths_driver.cpp
 
-        edge_disjoint_paths_one_to_one.c
-        edge_disjoint_paths_one_to_many.c
-        edge_disjoint_paths_many_to_many.c
-        edge_disjoint_paths_many_to_one.c
-
-        max_flow_driver.cpp
-        maximum_cardinality_matching_driver.cpp
-        edge_disjoint_paths_driver.cpp
-)
+    pgr_maxflow.cpp
+    pgr_flowgraph.cpp
+    )
diff --git a/src/max_flow/src/edge_disjoint_paths.c b/src/max_flow/src/edge_disjoint_paths.c
new file mode 100644
index 0000000..862668a
--- /dev/null
+++ b/src/max_flow/src/edge_disjoint_paths.c
@@ -0,0 +1,201 @@
+/*PGR-GNU*****************************************************************
+File: edge_disjoint_paths_many_to_many.c
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2016 Andrea Nardelli
+Mail: nrd.nardelli at gmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#include "c_common/postgres_connection.h"
+#include "utils/array.h"
+
+#include "c_common/debug_macro.h"
+#include "c_common/e_report.h"
+#include "c_common/time_msg.h"
+#include "c_common/edges_input.h"
+#include "c_common/arrays_input.h"
+#include "./edge_disjoint_paths_driver.h"
+
+PGDLLEXPORT Datum
+edge_disjoint_paths_many_to_many(PG_FUNCTION_ARGS);
+
+static
+void
+process(
+    char *edges_sql,
+    ArrayType *starts,
+    ArrayType *ends,
+
+    bool directed,
+    General_path_element_t **result_tuples,
+    size_t *result_count) {
+    pgr_SPI_connect();
+
+    size_t size_source_verticesArr = 0;
+    int64_t* source_vertices =
+        pgr_get_bigIntArray(&size_source_verticesArr, starts);
+
+    size_t size_sink_verticesArr = 0;
+    int64_t* sink_vertices =
+        pgr_get_bigIntArray(&size_sink_verticesArr, ends);
+
+
+    pgr_edge_t *edges = NULL;
+    size_t total_edges = 0;
+
+    pgr_get_edges(edges_sql, &edges, &total_edges);
+
+    if (total_edges == 0) {
+        if (source_vertices) pfree(source_vertices);
+        if (sink_vertices) pfree(sink_vertices);
+        pgr_SPI_finish();
+        return;
+    }
+
+
+    PGR_DBG("Starting timer");
+    clock_t start_t = clock();
+    char* log_msg = NULL;
+    char* notice_msg = NULL;
+    char* err_msg = NULL;
+
+    do_pgr_edge_disjoint_paths(
+        edges, total_edges,
+        source_vertices, size_source_verticesArr,
+        sink_vertices, size_sink_verticesArr,
+        directed,
+
+        result_tuples, result_count,
+
+        &log_msg,
+        &notice_msg,
+        &err_msg);
+
+    time_msg("pgr_edgeDisjointPaths(many to many)", start_t, clock());
+
+    if (edges) pfree(edges);
+    if (source_vertices) pfree(source_vertices);
+    if (sink_vertices) pfree(sink_vertices);
+
+    if (err_msg && (*result_tuples)) {
+        pfree(*result_tuples);
+        (*result_tuples) = NULL;
+        (*result_count) = 0;
+    }
+
+    pgr_global_report(log_msg, notice_msg, err_msg);
+
+    if (log_msg) pfree(log_msg);
+    if (notice_msg) pfree(notice_msg);
+    if (err_msg) pfree(err_msg);
+    pgr_SPI_finish();
+}
+
+PG_FUNCTION_INFO_V1(edge_disjoint_paths_many_to_many);
+PGDLLEXPORT Datum
+edge_disjoint_paths_many_to_many(PG_FUNCTION_ARGS) {
+    FuncCallContext *funcctx;
+    TupleDesc tuple_desc;
+
+    /**************************************************************************/
+    General_path_element_t *result_tuples = NULL;
+    size_t result_count = 0;
+    /**************************************************************************/
+
+    if (SRF_IS_FIRSTCALL()) {
+        MemoryContext oldcontext;
+        funcctx = SRF_FIRSTCALL_INIT();
+        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
+
+
+        /**********************************************************************/
+
+        process(
+                text_to_cstring(PG_GETARG_TEXT_P(0)),
+                PG_GETARG_ARRAYTYPE_P(1),
+                PG_GETARG_ARRAYTYPE_P(2),
+                PG_GETARG_BOOL(3),
+                &result_tuples,
+                &result_count);
+
+        /**********************************************************************/
+
+#if PGSQL_VERSION > 95
+        funcctx->max_calls = result_count;
+#else
+        funcctx->max_calls = (uint32_t)result_count;
+#endif
+        funcctx->user_fctx = result_tuples;
+        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
+                != TYPEFUNC_COMPOSITE) {
+            ereport(ERROR,
+                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+                     errmsg("function returning record called in context "
+                         "that cannot accept type record")));
+        }
+
+        funcctx->tuple_desc = tuple_desc;
+        MemoryContextSwitchTo(oldcontext);
+    }
+
+    funcctx = SRF_PERCALL_SETUP();
+    tuple_desc = funcctx->tuple_desc;
+    result_tuples = (General_path_element_t *) funcctx->user_fctx;
+
+    if (funcctx->call_cntr < funcctx->max_calls) {
+        HeapTuple tuple;
+        Datum result;
+        Datum *values;
+        bool *nulls;
+
+        /**********************************************************************/
+        /*                          MODIFY AS NEEDED                          */
+
+        values = palloc(9 * sizeof(Datum));
+        nulls = palloc(9 * sizeof(bool));
+
+        size_t i;
+        for (i = 0; i < 9; ++i) {
+            nulls[i] = false;
+        }
+
+        values[0] = Int32GetDatum(funcctx->call_cntr + 1);
+        values[1] = Int32GetDatum(result_tuples[funcctx->call_cntr].start_id + 1);
+        values[2] = Int32GetDatum(result_tuples[funcctx->call_cntr].seq);
+        values[3] = Int64GetDatum(result_tuples[funcctx->call_cntr].start_id);
+        values[4] = Int64GetDatum(result_tuples[funcctx->call_cntr].end_id);
+        values[5] = Int64GetDatum(result_tuples[funcctx->call_cntr].node);
+        values[6] = Int64GetDatum(result_tuples[funcctx->call_cntr].edge);
+        values[7] = Float8GetDatum(result_tuples[funcctx->call_cntr].cost);
+        values[8] = Float8GetDatum(result_tuples[funcctx->call_cntr].agg_cost);
+        /**********************************************************************/
+
+        tuple = heap_form_tuple(tuple_desc, values, nulls);
+        result = HeapTupleGetDatum(tuple);
+        SRF_RETURN_NEXT(funcctx, result);
+    } else {
+        SRF_RETURN_DONE(funcctx);
+    }
+}
+
diff --git a/src/max_flow/src/edge_disjoint_paths_driver.cpp b/src/max_flow/src/edge_disjoint_paths_driver.cpp
index 00f3c4c..f72d842 100644
--- a/src/max_flow/src/edge_disjoint_paths_driver.cpp
+++ b/src/max_flow/src/edge_disjoint_paths_driver.cpp
@@ -27,25 +27,49 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#include "./pgr_edgedisjointpaths.hpp"
+#include "./edge_disjoint_paths_driver.h"
 
 #include <sstream>
 #include <vector>
 #include <set>
 
-#include "./../../common/src/pgr_alloc.hpp"
-#include "./../../common/src/pgr_assert.h"
-#include "./../../common/src/pgr_types.h"
-
-#include "./edge_disjoint_paths_driver.h"
+#include "./pgr_maxflow.hpp"
+
+#include "cpp_common/identifiers.hpp"
+#include "cpp_common/pgr_alloc.hpp"
+#include "cpp_common/pgr_assert.h"
+
+
+static
+std::vector<General_path_element_t>
+single_execution(
+        std::vector<pgr_edge_t> edges,
+        int64_t source,
+        int64_t target,
+        bool directed) {
+
+    std::set<int64_t> set_source_vertices;
+    std::set<int64_t> set_sink_vertices;
+    set_source_vertices.insert(source);
+    set_sink_vertices.insert(target);
+    pgrouting::graph::PgrFlowGraph G(
+            edges,
+            set_source_vertices,
+            set_sink_vertices, directed);
+
+    /*
+     * boykov_kolmogorov is only for directed graphs
+     */
+    return G.edge_disjoint_paths();
+}
 
 void
 do_pgr_edge_disjoint_paths(
-    pgr_basic_edge_t *data_edges,
+    pgr_edge_t *data_edges,
     size_t total_edges,
-    int64_t *source_vertices,
+    int64_t *sources,
     size_t size_source_verticesArr,
-    int64_t *sink_vertices,
+    int64_t *sinks,
     size_t size_sink_verticesArr,
     bool directed,
     General_path_element_t **return_tuples,
@@ -57,33 +81,82 @@ do_pgr_edge_disjoint_paths(
     std::ostringstream notice;
     std::ostringstream err;
     try {
-        std::vector<General_path_element_t> path_elements;
-        std::set<int64_t> set_source_vertices;
-        std::set<int64_t> set_sink_vertices;
-        for (size_t i = 0; i < size_source_verticesArr; ++i) {
-            set_source_vertices.insert(source_vertices[i]);
+        std::set<int64_t> set_source_vertices(
+                sources, sources + size_source_verticesArr);
+        std::set<int64_t> set_sink_vertices(
+                sinks, sinks + size_sink_verticesArr);
+        std::vector<pgr_edge_t> edges(
+                data_edges, data_edges + total_edges);
+
+
+        std::vector<General_path_element_t> paths;
+        for (const auto &s : set_source_vertices) {
+            for (const auto &t : set_sink_vertices) {
+                auto path = single_execution(
+                        edges,
+                        s,
+                        t,
+                        directed);
+                paths.insert(paths.end(), path.begin(), path.end());
+            }
         }
-        for (size_t i = 0; i < size_sink_verticesArr; ++i) {
-            set_sink_vertices.insert(sink_vertices[i]);
+
+        if (paths.empty()) {
+            *return_tuples = nullptr;
+            *return_count = 0;
+            return;
         }
 
-        pgrouting::flow::PgrEdgeDisjointPathsGraph<pgrouting::FlowGraph> G;
+        /*
+         * Initializing the cost
+         */
+        for (auto &r : paths) {
+            r.agg_cost = r.cost = 0;
+        }
 
         /*
-         * boykov_kolmogorov is only for directed graphs
+         * Calculating the cost
          */
+        auto found = paths.size();
+        for (const auto &e : edges) {
+            for (auto &r : paths) {
+                if (r.edge == e.id) {
+                    r.cost = (r.node == e.source) ?
+                        e.cost : e.reverse_cost;
+                    --found;
+                }
+            }
+            if (found == 0) break;
+        }
+
+        /*
+         * Calculating the agg_cost
+         */
+        auto prev = paths[0];
+        for (auto &r : paths) {
+            if (r.seq == 1) {
+                r.agg_cost = 0;
+            } else {
+                r.agg_cost = prev.agg_cost + prev.cost;
+            }
+            prev = r;
+        }
+
+        /*
+         * Numbering the paths
+         */
+        int path_id(0);
+        for (auto &r : paths) {
+            r.start_id = path_id;
+            if (r.edge == -1) ++path_id;
+        }
 
-        G.create_edge_disjoint_paths_graph(data_edges, total_edges,
-                set_source_vertices,
-                set_sink_vertices, directed);
-        auto flow = G.boykov_kolmogorov();
-        G.get_edge_disjoint_paths(path_elements, flow);
 
-        (*return_tuples) = pgr_alloc(path_elements.size(), (*return_tuples));
-        for (size_t i = 0; i < path_elements.size(); ++i) {
-            (*return_tuples)[i] = path_elements[i];
+        (*return_tuples) = pgr_alloc(paths.size(), (*return_tuples));
+        for (size_t i = 0; i < paths.size(); ++i) {
+            (*return_tuples)[i] = paths[i];
         }
-        *return_count = path_elements.size();
+        *return_count = paths.size();
 
 
         *log_msg = log.str().empty()?
diff --git a/src/max_flow/src/edge_disjoint_paths_driver.h b/src/max_flow/src/edge_disjoint_paths_driver.h
index f25dfe6..2677445 100644
--- a/src/max_flow/src/edge_disjoint_paths_driver.h
+++ b/src/max_flow/src/edge_disjoint_paths_driver.h
@@ -30,7 +30,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 #ifndef SRC_MAX_FLOW_SRC_EDGE_DISJOINT_PATHS_DRIVER_H_
 #define SRC_MAX_FLOW_SRC_EDGE_DISJOINT_PATHS_DRIVER_H_
 
-#include "./../../common/src/pgr_types.h"
+#include "c_types/pgr_edge_t.h"
+#include "c_types/general_path_element_t.h"
+
 
 #ifdef __cplusplus
 extern "C" {
@@ -38,7 +40,7 @@ extern "C" {
 
     void
         do_pgr_edge_disjoint_paths(
-            pgr_basic_edge_t *data_edges,
+            pgr_edge_t *data_edges,
             size_t total_tuples,
             int64_t *source_vertices,
             size_t size_source_verticesArr,
diff --git a/src/max_flow/src/edge_disjoint_paths_many_to_many.c b/src/max_flow/src/edge_disjoint_paths_many_to_many.c
deleted file mode 100644
index 93c01ee..0000000
--- a/src/max_flow/src/edge_disjoint_paths_many_to_many.c
+++ /dev/null
@@ -1,199 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: edge_disjoint_paths_many_to_many.c
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer:
-Copyright (c) 2016 Andrea Nardelli
-Mail: nrd.nardelli at gmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#include "./../../common/src/postgres_connection.h"
-#include "utils/array.h"
-
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/e_report.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/edges_input.h"
-#include "./../../common/src/arrays_input.h"
-#include "./edge_disjoint_paths_driver.h"
-
-PGDLLEXPORT Datum
-edge_disjoint_paths_many_to_many(PG_FUNCTION_ARGS);
-
-static
-void
-process(
-    char *edges_sql,
-    ArrayType *starts,
-    ArrayType *ends,
-
-    bool directed,
-    General_path_element_t **result_tuples,
-    size_t *result_count) {
-    pgr_SPI_connect();
-
-    size_t size_source_verticesArr = 0;
-    int64_t* source_vertices =
-        pgr_get_bigIntArray(&size_source_verticesArr, starts);
-
-    size_t size_sink_verticesArr = 0;
-    int64_t* sink_vertices =
-        pgr_get_bigIntArray(&size_sink_verticesArr, ends);
-
-
-    pgr_basic_edge_t *edges = NULL;
-    size_t total_edges = 0;
-
-    pgr_get_basic_edges(edges_sql, &edges, &total_edges);
-
-    if (total_edges == 0) {
-        if (source_vertices) pfree(source_vertices);
-        if (sink_vertices) pfree(sink_vertices);
-        pgr_SPI_finish();
-        return;
-    }
-
-
-    PGR_DBG("Starting timer");
-    clock_t start_t = clock();
-    char* log_msg = NULL;
-    char* notice_msg = NULL;
-    char* err_msg = NULL;
-
-    do_pgr_edge_disjoint_paths(
-        edges, total_edges,
-        source_vertices, size_source_verticesArr,
-        sink_vertices, size_sink_verticesArr,
-        directed,
-
-        result_tuples, result_count,
-
-        &log_msg,
-        &notice_msg,
-        &err_msg);
-
-    time_msg("pgr_edgeDisjointPaths(many to many)", start_t, clock());
-
-    if (edges) pfree(edges);
-    if (source_vertices) pfree(source_vertices);
-    if (sink_vertices) pfree(sink_vertices);
-
-    if (err_msg && (*result_tuples)) {
-        pfree(*result_tuples);
-        (*result_tuples) = NULL;
-        (*result_count) = 0;
-    }
-
-    pgr_global_report(log_msg, notice_msg, err_msg);
-
-    if (log_msg) pfree(log_msg);
-    if (notice_msg) pfree(notice_msg);
-    if (err_msg) pfree(err_msg);
-    pgr_SPI_finish();
-}
-
-PG_FUNCTION_INFO_V1(edge_disjoint_paths_many_to_many);
-PGDLLEXPORT Datum
-edge_disjoint_paths_many_to_many(PG_FUNCTION_ARGS) {
-    FuncCallContext *funcctx;
-    TupleDesc tuple_desc;
-
-    /**************************************************************************/
-    General_path_element_t *result_tuples = NULL;
-    size_t result_count = 0;
-    /**************************************************************************/
-
-    if (SRF_IS_FIRSTCALL()) {
-        MemoryContext oldcontext;
-        funcctx = SRF_FIRSTCALL_INIT();
-        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
-
-
-        /**********************************************************************/
-
-        process(
-                text_to_cstring(PG_GETARG_TEXT_P(0)),
-                PG_GETARG_ARRAYTYPE_P(1),
-                PG_GETARG_ARRAYTYPE_P(2),
-                PG_GETARG_BOOL(3),
-                &result_tuples,
-                &result_count);
-
-        /**********************************************************************/
-
-#if PGSQL_VERSION > 95
-        funcctx->max_calls = result_count;
-#else
-        funcctx->max_calls = (uint32_t)result_count;
-#endif
-        funcctx->user_fctx = result_tuples;
-        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
-                != TYPEFUNC_COMPOSITE) {
-            ereport(ERROR,
-                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-                     errmsg("function returning record called in context "
-                         "that cannot accept type record")));
-        }
-
-        funcctx->tuple_desc = tuple_desc;
-        MemoryContextSwitchTo(oldcontext);
-    }
-
-    funcctx = SRF_PERCALL_SETUP();
-    tuple_desc = funcctx->tuple_desc;
-    result_tuples = (General_path_element_t *) funcctx->user_fctx;
-
-    if (funcctx->call_cntr < funcctx->max_calls) {
-        HeapTuple tuple;
-        Datum result;
-        Datum *values;
-        bool *nulls;
-
-        /**********************************************************************/
-        /*                          MODIFY AS NEEDED                          */
-
-        values = palloc(6 * sizeof(Datum));
-        nulls = palloc(6 * sizeof(bool));
-
-        size_t i;
-        for (i = 0; i < 6; ++i) {
-            nulls[i] = false;
-        }
-
-        values[0] = Int32GetDatum(funcctx->call_cntr + 1);
-        values[1] = Int32GetDatum(result_tuples[funcctx->call_cntr].seq);
-        values[2] = Int64GetDatum(result_tuples[funcctx->call_cntr].start_id);
-        values[3] = Int64GetDatum(result_tuples[funcctx->call_cntr].end_id);
-        values[4] = Int64GetDatum(result_tuples[funcctx->call_cntr].node);
-        values[5] = Int64GetDatum(result_tuples[funcctx->call_cntr].edge);
-        /**********************************************************************/
-
-        tuple = heap_form_tuple(tuple_desc, values, nulls);
-        result = HeapTupleGetDatum(tuple);
-        SRF_RETURN_NEXT(funcctx, result);
-    } else {
-        SRF_RETURN_DONE(funcctx);
-    }
-}
-
diff --git a/src/max_flow/src/edge_disjoint_paths_many_to_one.c b/src/max_flow/src/edge_disjoint_paths_many_to_one.c
deleted file mode 100644
index bf2b8a6..0000000
--- a/src/max_flow/src/edge_disjoint_paths_many_to_one.c
+++ /dev/null
@@ -1,192 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: edge_disjoint_paths_many_to_one.c
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer:
-Copyright (c) 2016 Andrea Nardelli
-Mail: nrd.nardelli at gmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-
-#include "./../../common/src/postgres_connection.h"
-#include "utils/array.h"
-
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/e_report.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/edges_input.h"
-#include "./../../common/src/arrays_input.h"
-
-#include "./edge_disjoint_paths_driver.h"
-
-PGDLLEXPORT Datum
-edge_disjoint_paths_many_to_one(PG_FUNCTION_ARGS);
-
-/******************************************************************************/
-/*                          MODIFY AS NEEDED                                  */
-static
-void
-process(
-    char *edges_sql,
-    ArrayType *starts,
-    int64_t sink_vertex,
-    bool directed,
-    General_path_element_t **result_tuples,
-    size_t *result_count) {
-    pgr_SPI_connect();
-
-    size_t size_source_verticesArr = 0;
-    int64_t* source_vertices =
-        pgr_get_bigIntArray(&size_source_verticesArr, starts);
-
-    pgr_basic_edge_t *edges = NULL;
-    size_t total_edges = 0;
-    pgr_get_basic_edges(edges_sql, &edges, &total_edges);
-
-    if (total_edges == 0) {
-        if (source_vertices) pfree(source_vertices);
-        pgr_SPI_finish();
-        return;
-    }
-
-    PGR_DBG("Starting timer");
-    clock_t start_t = clock();
-    char* log_msg = NULL;
-    char* notice_msg = NULL;
-    char* err_msg = NULL;
-
-    do_pgr_edge_disjoint_paths(
-            edges, total_edges,
-            source_vertices, size_source_verticesArr,
-            &sink_vertex, 1,
-            directed,
-
-            result_tuples, result_count,
-
-            &log_msg,
-            &notice_msg,
-            &err_msg);
-
-    time_msg("pgr_edgeDisjointPaths(many_to_one)", start_t, clock());
-    if (edges) pfree(edges);
-    if (source_vertices) pfree(source_vertices);
-
-    if (err_msg && (*result_tuples)) {
-        pfree(*result_tuples);
-        (*result_tuples) = NULL;
-        (*result_count) = 0;
-    }
-
-    pgr_global_report(log_msg, notice_msg, err_msg);
-
-    if (log_msg) pfree(log_msg);
-    if (notice_msg) pfree(notice_msg);
-    if (err_msg) pfree(err_msg);
-    pgr_SPI_finish();
-}
-
-PG_FUNCTION_INFO_V1(edge_disjoint_paths_many_to_one);
-PGDLLEXPORT Datum
-edge_disjoint_paths_many_to_one(PG_FUNCTION_ARGS) {
-    FuncCallContext *funcctx;
-    TupleDesc tuple_desc;
-
-    /**************************************************************************/
-    General_path_element_t *result_tuples = NULL;
-    size_t result_count = 0;
-    /**************************************************************************/
-
-    if (SRF_IS_FIRSTCALL()) {
-        MemoryContext oldcontext;
-        funcctx = SRF_FIRSTCALL_INIT();
-        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
-
-
-        /**********************************************************************/
-
-        process(
-                text_to_cstring(PG_GETARG_TEXT_P(0)),
-                PG_GETARG_ARRAYTYPE_P(1),
-                PG_GETARG_INT64(2),
-                PG_GETARG_BOOL(3),
-                &result_tuples,
-                &result_count);
-
-        /**********************************************************************/
-
-#if PGSQL_VERSION > 95
-        funcctx->max_calls = result_count;
-#else
-        funcctx->max_calls = (uint32_t)result_count;
-#endif
-        funcctx->user_fctx = result_tuples;
-        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
-                != TYPEFUNC_COMPOSITE) {
-            ereport(ERROR,
-                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-                     errmsg("function returning record called in context "
-                         "that cannot accept type record")));
-        }
-
-        funcctx->tuple_desc = tuple_desc;
-        MemoryContextSwitchTo(oldcontext);
-    }
-
-    funcctx = SRF_PERCALL_SETUP();
-    tuple_desc = funcctx->tuple_desc;
-    result_tuples = (General_path_element_t *) funcctx->user_fctx;
-
-    if (funcctx->call_cntr < funcctx->max_calls) {
-        HeapTuple tuple;
-        Datum result;
-        Datum *values;
-        bool *nulls;
-
-        /**********************************************************************/
-
-        size_t numb = 5;
-        values = palloc(numb * sizeof(Datum));
-        nulls = palloc(numb * sizeof(bool));
-
-        size_t i;
-        for (i = 0; i < numb; ++i) {
-            nulls[i] = false;
-        }
-
-        values[0] = Int32GetDatum(funcctx->call_cntr + 1);
-        values[1] = Int32GetDatum(result_tuples[funcctx->call_cntr].seq);
-        values[2] = Int64GetDatum(result_tuples[funcctx->call_cntr].start_id);
-        values[3] = Int64GetDatum(result_tuples[funcctx->call_cntr].node);
-        values[4] = Int64GetDatum(result_tuples[funcctx->call_cntr].edge);
-
-        /**********************************************************************/
-
-        tuple = heap_form_tuple(tuple_desc, values, nulls);
-        result = HeapTupleGetDatum(tuple);
-        SRF_RETURN_NEXT(funcctx, result);
-    } else {
-        SRF_RETURN_DONE(funcctx);
-    }
-}
-
diff --git a/src/max_flow/src/edge_disjoint_paths_one_to_many.c b/src/max_flow/src/edge_disjoint_paths_one_to_many.c
deleted file mode 100644
index 5b9ebed..0000000
--- a/src/max_flow/src/edge_disjoint_paths_one_to_many.c
+++ /dev/null
@@ -1,200 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: edge_disjoint_paths_one_to_many.c
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer:
-Copyright (c) 2016 Andrea Nardelli
-Mail: nrd.nardelli at gmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#include "./../../common/src/postgres_connection.h"
-#include "utils/array.h"
-
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/e_report.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/edges_input.h"
-#include "./../../common/src/arrays_input.h"
-#include "./edge_disjoint_paths_driver.h"
-
-PGDLLEXPORT Datum
-edge_disjoint_paths_one_to_many(PG_FUNCTION_ARGS);
-
-/******************************************************************************/
-/*                          MODIFY AS NEEDED                                  */
-static
-void
-process(
-    char *edges_sql,
-    int64_t source_vertex,
-    ArrayType *ends,
-    bool directed,
-    General_path_element_t **result_tuples,
-    size_t *result_count) {
-    pgr_SPI_connect();
-
-    size_t size_sink_verticesArr = 0;
-    int64_t* sink_vertices =
-        pgr_get_bigIntArray(&size_sink_verticesArr, ends);
-
-
-    size_t total_tuples = 0;
-    pgr_basic_edge_t *edges = NULL;
-    pgr_get_basic_edges(edges_sql, &edges, &total_tuples);
-
-    if (total_tuples == 0) {
-        if (sink_vertices) pfree(sink_vertices);
-        pgr_SPI_finish();
-        return;
-    }
-
-    PGR_DBG("Starting timer");
-    clock_t start_t = clock();
-    char* log_msg = NULL;
-    char* notice_msg = NULL;
-    char *err_msg = NULL;
-    do_pgr_edge_disjoint_paths(
-
-        edges, total_tuples,
-        &source_vertex, 1,
-        sink_vertices, size_sink_verticesArr,
-        directed,
-
-        result_tuples, result_count,
-
-        &log_msg,
-        &notice_msg,
-        &err_msg);
-
-    time_msg("pgr_edgeDisjointPaths(one to many)", start_t, clock());
-
-
-    if (edges) pfree(edges);
-    if (sink_vertices) pfree(sink_vertices);
-
-    if (err_msg && (*result_tuples)) {
-        pfree(*result_tuples);
-        (*result_tuples) = NULL;
-        (*result_count) = 0;
-    }
-
-    pgr_global_report(log_msg, notice_msg, err_msg);
-
-    if (log_msg) pfree(log_msg);
-    if (notice_msg) pfree(notice_msg);
-    if (err_msg) pfree(err_msg);
-    pgr_SPI_finish();
-}
-/*                                                                            */
-/******************************************************************************/
-
-PG_FUNCTION_INFO_V1(edge_disjoint_paths_one_to_many);
-PGDLLEXPORT Datum
-edge_disjoint_paths_one_to_many(PG_FUNCTION_ARGS) {
-    FuncCallContext *funcctx;
-    TupleDesc tuple_desc;
-
-    /**************************************************************************/
-    /*                          MODIFY AS NEEDED                              */
-    /*                                                                        */
-    General_path_element_t *result_tuples = NULL;
-    size_t result_count = 0;
-    /*                                                                        */
-    /**************************************************************************/
-
-    if (SRF_IS_FIRSTCALL()) {
-        MemoryContext oldcontext;
-        funcctx = SRF_FIRSTCALL_INIT();
-        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
-
-
-        /**********************************************************************/
-        /*                          MODIFY AS NEEDED                          */
-
-        process(
-            text_to_cstring(PG_GETARG_TEXT_P(0)),
-            PG_GETARG_INT64(1),
-            PG_GETARG_ARRAYTYPE_P(2),
-            PG_GETARG_BOOL(3),
-            &result_tuples,
-            &result_count);
-
-        /*                                                                    */
-        /**********************************************************************/
-
-#if PGSQL_VERSION > 95
-        funcctx->max_calls = result_count;
-#else
-        funcctx->max_calls = (uint32_t)result_count;
-#endif
-        funcctx->user_fctx = result_tuples;
-        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
-            != TYPEFUNC_COMPOSITE) {
-            ereport(ERROR,
-                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-                        errmsg("function returning record called in context "
-                                   "that cannot accept type record")));
-        }
-
-        funcctx->tuple_desc = tuple_desc;
-        MemoryContextSwitchTo(oldcontext);
-    }
-
-    funcctx = SRF_PERCALL_SETUP();
-    tuple_desc = funcctx->tuple_desc;
-    result_tuples = (General_path_element_t *) funcctx->user_fctx;
-
-    if (funcctx->call_cntr < funcctx->max_calls) {
-        HeapTuple tuple;
-        Datum result;
-        Datum *values;
-        bool *nulls;
-
-        /**********************************************************************/
-        /*                          MODIFY AS NEEDED                          */
-
-        values = palloc(5 * sizeof(Datum));
-        nulls = palloc(5 * sizeof(bool));
-
-        size_t i;
-        for (i = 0; i < 5; ++i) {
-            nulls[i] = false;
-        }
-
-        // postgres starts counting from 1
-        values[0] = Int32GetDatum(funcctx->call_cntr + 1);
-        values[1] = Int32GetDatum(result_tuples[funcctx->call_cntr].seq);
-        values[2] = Int64GetDatum(result_tuples[funcctx->call_cntr].end_id);
-        values[3] = Int64GetDatum(result_tuples[funcctx->call_cntr].node);
-        values[4] = Int64GetDatum(result_tuples[funcctx->call_cntr].edge);
-        /**********************************************************************/
-
-        tuple = heap_form_tuple(tuple_desc, values, nulls);
-        result = HeapTupleGetDatum(tuple);
-        SRF_RETURN_NEXT(funcctx, result);
-    } else {
-        SRF_RETURN_DONE(funcctx);
-    }
-}
-
diff --git a/src/max_flow/src/edge_disjoint_paths_one_to_one.c b/src/max_flow/src/edge_disjoint_paths_one_to_one.c
deleted file mode 100644
index c6536e6..0000000
--- a/src/max_flow/src/edge_disjoint_paths_one_to_one.c
+++ /dev/null
@@ -1,196 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: edge_disjoint_paths_one_to_one.c
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer:
-Copyright (c) 2016 Andrea Nardelli
-Mail: nrd.nardelli at gmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#include "./../../common/src/postgres_connection.h"
-
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/e_report.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/edges_input.h"
-#include "./edge_disjoint_paths_driver.h"
-
-PGDLLEXPORT Datum
-edge_disjoint_paths_one_to_one(PG_FUNCTION_ARGS);
-
-/******************************************************************************/
-/*                          MODIFY AS NEEDED                                  */
-static
-void
-process(
-    char *edges_sql,
-    int64_t source_vertex,
-    int64_t sink_vertex,
-    bool directed,
-    General_path_element_t **result_tuples,
-    size_t *result_count) {
-    pgr_SPI_connect();
-
-
-    if (source_vertex == sink_vertex) {
-        pgr_SPI_finish();
-        return;
-    }
-
-    size_t total_tuples = 0;
-    pgr_basic_edge_t *edges = NULL;
-    pgr_get_basic_edges(edges_sql, &edges, &total_tuples);
-
-    if (total_tuples == 0) {
-        pgr_SPI_finish();
-        return;
-    }
-
-    PGR_DBG("Starting timer");
-    clock_t start_t = clock();
-    char* log_msg = NULL;
-    char* notice_msg = NULL;
-    char *err_msg = NULL;
-
-    do_pgr_edge_disjoint_paths(
-        edges, total_tuples,
-        &source_vertex, 1,
-        &sink_vertex, 1,
-        directed,
-        result_tuples,
-        result_count,
-
-        &log_msg,
-        &notice_msg,
-        &err_msg);
-
-    time_msg("pgr_edgeDisjointPaths(one to one)", start_t, clock());
-
-    if (edges) pfree(edges);
-
-    if (err_msg && (*result_tuples)) {
-        pfree(*result_tuples);
-        (*result_count) = 0;
-        (*result_tuples) = NULL;
-    }
-
-    pgr_global_report(log_msg, notice_msg, err_msg);
-
-    if (log_msg) pfree(log_msg);
-    if (notice_msg) pfree(notice_msg);
-    if (err_msg) pfree(err_msg);
-    pgr_SPI_finish();
-}
-/*                                                                            */
-/******************************************************************************/
-
-PG_FUNCTION_INFO_V1(edge_disjoint_paths_one_to_one);
-PGDLLEXPORT Datum
-edge_disjoint_paths_one_to_one(PG_FUNCTION_ARGS) {
-    FuncCallContext *funcctx;
-    TupleDesc tuple_desc;
-
-    /**************************************************************************/
-    /*                          MODIFY AS NEEDED                              */
-    /*                                                                        */
-    General_path_element_t *result_tuples = NULL;
-    size_t result_count = 0;
-    /*                                                                        */
-    /**************************************************************************/
-
-    if (SRF_IS_FIRSTCALL()) {
-        MemoryContext oldcontext;
-        funcctx = SRF_FIRSTCALL_INIT();
-        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
-
-
-        /**********************************************************************/
-        /*                          MODIFY AS NEEDED                          */
-
-        PGR_DBG("Calling process");
-        process(
-                text_to_cstring(PG_GETARG_TEXT_P(0)),
-                PG_GETARG_INT64(1),
-                PG_GETARG_INT64(2),
-                PG_GETARG_BOOL(3),
-                &result_tuples,
-                &result_count);
-
-        /*                                                                    */
-        /**********************************************************************/
-
-#if PGSQL_VERSION > 95
-        funcctx->max_calls = result_count;
-#else
-        funcctx->max_calls = (uint32_t)result_count;
-#endif
-        funcctx->user_fctx = result_tuples;
-        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
-                != TYPEFUNC_COMPOSITE) {
-            ereport(ERROR,
-                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-                     errmsg("function returning record called in context "
-                         "that cannot accept type record")));
-        }
-
-        funcctx->tuple_desc = tuple_desc;
-        MemoryContextSwitchTo(oldcontext);
-    }
-
-    funcctx = SRF_PERCALL_SETUP();
-    tuple_desc = funcctx->tuple_desc;
-    result_tuples = (General_path_element_t *) funcctx->user_fctx;
-
-    if (funcctx->call_cntr < funcctx->max_calls) {
-        HeapTuple tuple;
-        Datum result;
-        Datum *values;
-        bool *nulls;
-
-        /**********************************************************************/
-        /*                          MODIFY AS NEEDED                          */
-
-        values = palloc(4 * sizeof(Datum));
-        nulls = palloc(4 * sizeof(bool));
-
-        size_t i;
-        for (i = 0; i < 4; ++i) {
-            nulls[i] = false;
-        }
-
-        // postgres starts counting from 1
-        values[0] = Int32GetDatum(funcctx->call_cntr + 1);
-        values[1] = Int32GetDatum(result_tuples[funcctx->call_cntr].seq);
-        values[2] = Int64GetDatum(result_tuples[funcctx->call_cntr].node);
-        values[3] = Int64GetDatum(result_tuples[funcctx->call_cntr].edge);
-        /**********************************************************************/
-
-        tuple = heap_form_tuple(tuple_desc, values, nulls);
-        result = HeapTupleGetDatum(tuple);
-        SRF_RETURN_NEXT(funcctx, result);
-    } else {
-        SRF_RETURN_DONE(funcctx);
-    }
-}
-
diff --git a/src/max_flow/src/max_flow.c b/src/max_flow/src/max_flow.c
new file mode 100644
index 0000000..ef8ed45
--- /dev/null
+++ b/src/max_flow/src/max_flow.c
@@ -0,0 +1,224 @@
+/*PGR-GNU*****************************************************************
+File: max_flow_many_to_many.c
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2016 Andrea Nardelli
+Mail: nrd.nardelli at gmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#include "c_common/postgres_connection.h"
+#include "utils/array.h"
+
+
+#include "c_common/debug_macro.h"
+#include "c_common/e_report.h"
+#include "c_common/time_msg.h"
+#include "c_common/edges_input.h"
+#include "c_common/arrays_input.h"
+#include "./max_flow_driver.h"
+
+PGDLLEXPORT Datum
+max_flow_many_to_many(PG_FUNCTION_ARGS);
+
+static
+void
+process(
+        char *edges_sql,
+        ArrayType *starts,
+        ArrayType *ends,
+        int algorithm,
+        bool only_flow,
+        pgr_flow_t **result_tuples,
+        size_t *result_count) {
+    if (algorithm < 1 || algorithm > 3) {
+        elog(ERROR, "Unknown algorithm");
+    }
+
+    pgr_SPI_connect();
+
+    size_t size_source_verticesArr = 0;
+    int64_t* source_vertices =
+        pgr_get_bigIntArray(&size_source_verticesArr, starts);
+
+    size_t size_sink_verticesArr = 0;
+    int64_t* sink_vertices =
+        pgr_get_bigIntArray(&size_sink_verticesArr, ends);
+
+    pgr_edge_t *edges = NULL;
+
+    size_t total_edges = 0;
+
+    /* NOTE:
+     * For flow, cost and reverse_cost are really capacity and reverse_capacity
+     */
+    pgr_get_flow_edges(edges_sql, &edges, &total_edges);
+
+    if (total_edges == 0) {
+        if (source_vertices) pfree(source_vertices);
+        if (sink_vertices) pfree(sink_vertices);
+        pgr_SPI_finish();
+        return;
+    }
+
+
+    PGR_DBG("Starting timer");
+    clock_t start_t = clock();
+    char* log_msg = NULL;
+    char* notice_msg = NULL;
+    char *err_msg = NULL;
+
+    do_pgr_max_flow(
+            edges, total_edges,
+            source_vertices, size_source_verticesArr,
+            sink_vertices, size_sink_verticesArr,
+            algorithm,
+            only_flow,
+
+            result_tuples, result_count,
+
+            &log_msg,
+            &notice_msg,
+            &err_msg);
+
+    if (only_flow) {
+        time_msg("pgr_maxFlow(many to many)",
+                start_t, clock());
+    } else if (algorithm == 1) {
+        time_msg("pgr_maxFlowPushRelabel(many to many)",
+                start_t, clock());
+    } else if (algorithm == 3) {
+        time_msg("pgr_maxFlowEdmondsKarp(many to many)",
+                start_t, clock());
+    } else {
+        time_msg("pgr_maxFlowBoykovKolmogorov(many to many)",
+                start_t, clock());
+    }
+
+
+    if (edges) pfree(edges);
+    if (source_vertices) pfree(source_vertices);
+    if (sink_vertices) pfree(sink_vertices);
+
+    if (err_msg && (*result_tuples)) {
+        pfree(*result_tuples);
+        (*result_tuples) = NULL;
+        (*result_count) = 0;
+    }
+
+    pgr_global_report(log_msg, notice_msg, err_msg);
+
+    if (log_msg) pfree(log_msg);
+    if (notice_msg) pfree(notice_msg);
+    if (err_msg) pfree(err_msg);
+
+    pgr_SPI_finish();
+}
+
+
+PG_FUNCTION_INFO_V1(max_flow_many_to_many);
+PGDLLEXPORT Datum
+max_flow_many_to_many(PG_FUNCTION_ARGS) {
+    FuncCallContext *funcctx;
+    TupleDesc tuple_desc;
+
+    /**************************************************************************/
+    pgr_flow_t *result_tuples = 0;
+    size_t result_count = 0;
+    /**************************************************************************/
+
+    if (SRF_IS_FIRSTCALL()) {
+        MemoryContext oldcontext;
+        funcctx = SRF_FIRSTCALL_INIT();
+        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
+
+
+        /**********************************************************************/
+
+        process(
+                text_to_cstring(PG_GETARG_TEXT_P(0)),
+                PG_GETARG_ARRAYTYPE_P(1),
+                PG_GETARG_ARRAYTYPE_P(2),
+                PG_GETARG_INT32(3),
+                PG_GETARG_BOOL(4),
+                &result_tuples,
+                &result_count);
+
+        /*                                                                    */
+        /**********************************************************************/
+
+#if PGSQL_VERSION > 95
+        funcctx->max_calls = result_count;
+#else
+        funcctx->max_calls = (uint32_t)result_count;
+#endif
+        funcctx->user_fctx = result_tuples;
+        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
+                != TYPEFUNC_COMPOSITE) {
+            ereport(ERROR,
+                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+                     errmsg("function returning record called in context "
+                         "that cannot accept type record")));
+        }
+
+        funcctx->tuple_desc = tuple_desc;
+        MemoryContextSwitchTo(oldcontext);
+    }
+
+    funcctx = SRF_PERCALL_SETUP();
+    tuple_desc = funcctx->tuple_desc;
+    result_tuples = (pgr_flow_t *) funcctx->user_fctx;
+
+    if (funcctx->call_cntr < funcctx->max_calls) {
+        HeapTuple tuple;
+        Datum result;
+        Datum *values;
+        bool *nulls;
+        size_t call_cntr = funcctx->call_cntr;
+
+        /**********************************************************************/
+        /*                          MODIFY AS NEEDED                          */
+        values = palloc(6 * sizeof(Datum));
+        nulls = palloc(6 * sizeof(bool));
+
+        size_t i;
+        for (i = 0; i < 6; ++i) {
+            nulls[i] = false;
+        }
+
+        values[0] = Int32GetDatum(call_cntr + 1);
+        values[1] = Int64GetDatum(result_tuples[call_cntr].edge);
+        values[2] = Int64GetDatum(result_tuples[call_cntr].source);
+        values[3] = Int64GetDatum(result_tuples[call_cntr].target);
+        values[4] = Int64GetDatum(result_tuples[call_cntr].flow);
+        values[5] = Int64GetDatum(result_tuples[call_cntr].residual_capacity);
+        /**********************************************************************/
+
+        tuple = heap_form_tuple(tuple_desc, values, nulls);
+        result = HeapTupleGetDatum(tuple);
+        SRF_RETURN_NEXT(funcctx, result);
+    } else {
+        SRF_RETURN_DONE(funcctx);
+    }
+}
+
diff --git a/src/max_flow/src/max_flow_driver.cpp b/src/max_flow/src/max_flow_driver.cpp
index add4b2a..a53ab4e 100644
--- a/src/max_flow/src/max_flow_driver.cpp
+++ b/src/max_flow/src/max_flow_driver.cpp
@@ -27,31 +27,27 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#include "./pgr_maxflow.hpp"
+#include "./max_flow_driver.h"
 
 #include <sstream>
 #include <vector>
 #include <set>
 
-#include "./max_flow_driver.h"
+#include "./pgr_maxflow.hpp"
 
-#include "../../common/src/pgr_assert.h"
-#include "../../common/src/pgr_alloc.hpp"
-#include "./../../common/src/pgr_types.h"
+#include "cpp_common/pgr_assert.h"
+#include "cpp_common/pgr_alloc.hpp"
 
 
 void
 do_pgr_max_flow(
-        pgr_edge_t *data_edges,
-        size_t total_tuples,
-        int64_t *source_vertices,
-        size_t size_source_verticesArr,
-        int64_t *sink_vertices,
-        size_t size_sink_verticesArr,
-        char *algorithm,
+        pgr_edge_t *data_edges, size_t total_edges,
+        int64_t *source_vertices, size_t size_source_verticesArr,
+        int64_t *sink_vertices, size_t size_sink_verticesArr,
+        int algorithm,
         bool only_flow,
-        pgr_flow_t **return_tuples,
-        size_t *return_count,
+
+        pgr_flow_t **return_tuples, size_t *return_count,
         char** log_msg,
         char** notice_msg,
         char **err_msg) {
@@ -64,19 +60,17 @@ do_pgr_max_flow(
         pgassert(source_vertices);
         pgassert(sink_vertices);
 
-        pgrouting::graph::PgrFlowGraph<pgrouting::FlowGraph> G;
-        std::set<int64_t> set_source_vertices;
-        std::set<int64_t> set_sink_vertices;
-        for (size_t i = 0; i < size_source_verticesArr; ++i) {
-            set_source_vertices.insert(source_vertices[i]);
-        }
-        for (size_t i = 0; i < size_sink_verticesArr; ++i) {
-            set_sink_vertices.insert(sink_vertices[i]);
-        }
-        std::set<int64_t> vertices(set_source_vertices);
-        vertices.insert(set_sink_vertices.begin(), set_sink_vertices.end());
+        std::vector<pgr_edge_t> edges(data_edges, data_edges + total_edges);
+        std::set<int64_t> sources(
+                source_vertices, source_vertices + size_source_verticesArr);
+        std::set<int64_t> targets(
+                sink_vertices, sink_vertices + size_sink_verticesArr);
+
+        std::set<int64_t> vertices(sources);
+        vertices.insert(targets.begin(), targets.end());
+
         if (vertices.size()
-                != (set_source_vertices.size() + set_sink_vertices.size())) {
+                != (sources.size() + targets.size())) {
             *err_msg = pgr_msg("A source found as sink");
             // TODO(vicky) return as hint the sources that are also sinks
             return;
@@ -84,16 +78,17 @@ do_pgr_max_flow(
 
 
 
-        G.create_flow_graph(data_edges, total_tuples, set_source_vertices,
-                set_sink_vertices, algorithm);
+        pgrouting::graph::PgrFlowGraph digraph(
+                edges, sources, targets, algorithm);
+        // digraph.create_flow_graph(edges, sources, targets, algorithm);
 
         int64_t max_flow;
-        if (strcmp(algorithm, "push_relabel") == 0) {
-            max_flow = G.push_relabel();
-        } else if (strcmp(algorithm, "edmonds_karp") == 0) {
-            max_flow = G.edmonds_karp();
-        } else if (strcmp(algorithm, "boykov_kolmogorov") == 0) {
-            max_flow = G.boykov_kolmogorov();
+        if (algorithm == 1) {
+            max_flow = digraph.push_relabel();
+        } else if (algorithm == 3) {
+            max_flow = digraph.edmonds_karp();
+        } else if (algorithm == 2) {
+            max_flow = digraph.boykov_kolmogorov();
         } else {
             log << "Unspecified algorithm!\n";
             *err_msg = pgr_msg(log.str().c_str());
@@ -114,7 +109,7 @@ do_pgr_max_flow(
             edge.residual_capacity = -1;
             flow_edges.push_back(edge);
         } else {
-            G.get_flow_edges(flow_edges);
+            flow_edges = digraph.get_flow_edges();
         }
         (*return_tuples) = pgr_alloc(flow_edges.size(), (*return_tuples));
         for (size_t i = 0; i < flow_edges.size(); ++i) {
diff --git a/src/max_flow/src/max_flow_driver.h b/src/max_flow/src/max_flow_driver.h
index 7706863..a8d4463 100644
--- a/src/max_flow/src/max_flow_driver.h
+++ b/src/max_flow/src/max_flow_driver.h
@@ -30,7 +30,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 #ifndef SRC_MAX_FLOW_SRC_MAX_FLOW_DRIVER_H_
 #define SRC_MAX_FLOW_SRC_MAX_FLOW_DRIVER_H_
 
-#include "./../../common/src/pgr_types.h"
+#include "c_types/pgr_flow_t.h"
+#include "c_types/pgr_edge_t.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -44,7 +45,7 @@ extern "C" {
             size_t size_source_verticesArr,
             int64_t* sink_vertices,
             size_t size_sink_verticesArr,
-            char* algorithm,
+            int algorithm,
             bool only_flow,
             pgr_flow_t **return_tuples,
             size_t *return_count,
diff --git a/src/max_flow/src/max_flow_many_to_many.c b/src/max_flow/src/max_flow_many_to_many.c
deleted file mode 100644
index 729b2a2..0000000
--- a/src/max_flow/src/max_flow_many_to_many.c
+++ /dev/null
@@ -1,227 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: max_flow_many_to_many.c
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer:
-Copyright (c) 2016 Andrea Nardelli
-Mail: nrd.nardelli at gmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#include "./../../common/src/postgres_connection.h"
-#include "utils/array.h"
-
-
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/e_report.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/edges_input.h"
-#include "./../../common/src/arrays_input.h"
-#include "./max_flow_driver.h"
-
-PGDLLEXPORT Datum
-max_flow_many_to_many(PG_FUNCTION_ARGS);
-
-static
-void
-process(
-    char *edges_sql,
-    ArrayType *starts,
-    ArrayType *ends,
-    char *algorithm,
-    bool only_flow,
-    pgr_flow_t **result_tuples,
-    size_t *result_count) {
-    if (!(strcmp(algorithm, "push_relabel") == 0
-                || strcmp(algorithm, "edmonds_karp") == 0
-                || strcmp(algorithm, "boykov_kolmogorov") == 0)) {
-        elog(ERROR, "Unknown algorithm");
-    }
-
-    pgr_SPI_connect();
-
-    size_t size_source_verticesArr = 0;
-    int64_t* source_vertices =
-        pgr_get_bigIntArray(&size_source_verticesArr, starts);
-
-    size_t size_sink_verticesArr = 0;
-    int64_t* sink_vertices =
-        pgr_get_bigIntArray(&size_sink_verticesArr, ends);
-
-    pgr_edge_t *edges = NULL;
-
-    size_t total_edges = 0;
-
-    /* NOTE:
-     * For flow, cost and reverse_cost are really capacity and reverse_capacity
-     */
-    pgr_get_flow_edges(edges_sql, &edges, &total_edges);
-
-    if (total_edges == 0) {
-        if (source_vertices) pfree(source_vertices);
-        if (sink_vertices) pfree(sink_vertices);
-        pgr_SPI_finish();
-        return;
-    }
-
-
-    PGR_DBG("Starting timer");
-    clock_t start_t = clock();
-    char* log_msg = NULL;
-    char* notice_msg = NULL;
-    char *err_msg = NULL;
-
-    do_pgr_max_flow(
-            edges, total_edges,
-            source_vertices, size_source_verticesArr,
-            sink_vertices, size_sink_verticesArr,
-            algorithm,
-            only_flow,
-
-            result_tuples, result_count,
-
-            &log_msg,
-            &notice_msg,
-            &err_msg);
-
-    if (only_flow) {
-        time_msg("pgr_maxFlow(many to many)",
-                start_t, clock());
-    } else if (strcmp(algorithm, "push_relabel") == 0) {
-        time_msg("pgr_maxFlowPushRelabel(many to many)",
-                start_t, clock());
-    } else if (strcmp(algorithm, "edmonds_karp") == 0) {
-        time_msg("pgr_maxFlowEdmondsKarp(many to many)",
-                start_t, clock());
-    } else {
-        time_msg("pgr_maxFlowBoykovKolmogorov(many to many)",
-                start_t, clock());
-    }
-
-
-    if (edges) pfree(edges);
-    if (source_vertices) pfree(source_vertices);
-    if (sink_vertices) pfree(sink_vertices);
-
-    if (err_msg && (*result_tuples)) {
-        pfree(*result_tuples);
-        (*result_tuples) = NULL;
-        (*result_count) = 0;
-    }
-
-    pgr_global_report(log_msg, notice_msg, err_msg);
-
-    if (log_msg) pfree(log_msg);
-    if (notice_msg) pfree(notice_msg);
-    if (err_msg) pfree(err_msg);
-
-    pgr_SPI_finish();
-}
-
-
-PG_FUNCTION_INFO_V1(max_flow_many_to_many);
-PGDLLEXPORT Datum
-max_flow_many_to_many(PG_FUNCTION_ARGS) {
-    FuncCallContext *funcctx;
-    TupleDesc tuple_desc;
-
-    /**************************************************************************/
-    pgr_flow_t *result_tuples = 0;
-    size_t result_count = 0;
-    /**************************************************************************/
-
-    if (SRF_IS_FIRSTCALL()) {
-        MemoryContext oldcontext;
-        funcctx = SRF_FIRSTCALL_INIT();
-        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
-
-
-        /**********************************************************************/
-
-        process(
-                text_to_cstring(PG_GETARG_TEXT_P(0)),
-                PG_GETARG_ARRAYTYPE_P(1),
-                PG_GETARG_ARRAYTYPE_P(2),
-                text_to_cstring(PG_GETARG_TEXT_P(3)),
-                PG_GETARG_BOOL(4),
-                &result_tuples,
-                &result_count);
-
-        /*                                                                    */
-        /**********************************************************************/
-
-#if PGSQL_VERSION > 95
-        funcctx->max_calls = result_count;
-#else
-        funcctx->max_calls = (uint32_t)result_count;
-#endif
-        funcctx->user_fctx = result_tuples;
-        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
-                != TYPEFUNC_COMPOSITE) {
-            ereport(ERROR,
-                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-                     errmsg("function returning record called in context "
-                         "that cannot accept type record")));
-        }
-
-        funcctx->tuple_desc = tuple_desc;
-        MemoryContextSwitchTo(oldcontext);
-    }
-
-    funcctx = SRF_PERCALL_SETUP();
-    tuple_desc = funcctx->tuple_desc;
-    result_tuples = (pgr_flow_t *) funcctx->user_fctx;
-
-    if (funcctx->call_cntr < funcctx->max_calls) {
-        HeapTuple tuple;
-        Datum result;
-        Datum *values;
-        bool *nulls;
-        size_t call_cntr = funcctx->call_cntr;
-
-        /**********************************************************************/
-        /*                          MODIFY AS NEEDED                          */
-        values = palloc(6 * sizeof(Datum));
-        nulls = palloc(6 * sizeof(bool));
-
-        size_t i;
-        for (i = 0; i < 6; ++i) {
-            nulls[i] = false;
-        }
-
-        values[0] = Int32GetDatum(call_cntr + 1);
-        values[1] = Int64GetDatum(result_tuples[call_cntr].edge);
-        values[2] = Int64GetDatum(result_tuples[call_cntr].source);
-        values[3] = Int64GetDatum(result_tuples[call_cntr].target);
-        values[4] = Int64GetDatum(result_tuples[call_cntr].flow);
-        values[5] = Int64GetDatum(result_tuples[call_cntr].residual_capacity);
-        /**********************************************************************/
-
-        tuple = heap_form_tuple(tuple_desc, values, nulls);
-        result = HeapTupleGetDatum(tuple);
-        SRF_RETURN_NEXT(funcctx, result);
-    } else {
-        SRF_RETURN_DONE(funcctx);
-    }
-}
-
diff --git a/src/max_flow/src/max_flow_many_to_one.c b/src/max_flow/src/max_flow_many_to_one.c
deleted file mode 100644
index ccbef09..0000000
--- a/src/max_flow/src/max_flow_many_to_one.c
+++ /dev/null
@@ -1,216 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: max_flow_many_to_one.c
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer:
-Copyright (c) 2016 Andrea Nardelli
-Mail: nrd.nardelli at gmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#include "./../../common/src/postgres_connection.h"
-#include "utils/array.h"
-
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/e_report.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/edges_input.h"
-#include "./../../common/src/arrays_input.h"
-#include "./max_flow_driver.h"
-
-PGDLLEXPORT Datum
-max_flow_many_to_one(PG_FUNCTION_ARGS);
-
-/******************************************************************************/
-/*                          MODIFY AS NEEDED                                  */
-static
-void
-process(
-    char *edges_sql,
-    ArrayType *starts,
-    int64_t sink_vertex,
-    char *algorithm,
-    bool only_flow,
-    pgr_flow_t **result_tuples,
-    size_t *result_count) {
-    if (!(strcmp(algorithm, "push_relabel") == 0
-        || strcmp(algorithm, "edmonds_karp") == 0
-        || strcmp(algorithm, "boykov_kolmogorov") == 0)) {
-        elog(ERROR, "Unknown algorithm");
-    }
-
-    pgr_SPI_connect();
-
-    size_t size_source_verticesArr = 0;
-    int64_t* source_vertices =
-        pgr_get_bigIntArray(&size_source_verticesArr, starts);
-
-    /* NOTE:
-     * For flow, cost and reverse_cost are really capacity and reverse_capacity
-     */
-    pgr_edge_t *edges = NULL;
-    size_t total_tuples = 0;
-    pgr_get_flow_edges(edges_sql, &edges, &total_tuples);
-
-    if (total_tuples == 0) {
-        if (source_vertices) pfree(source_vertices);
-        pgr_SPI_finish();
-        return;
-    }
-
-    PGR_DBG("Starting timer");
-    clock_t start_t = clock();
-    char* log_msg = NULL;
-    char* notice_msg = NULL;
-    char *err_msg = NULL;
-    do_pgr_max_flow(
-            edges, total_tuples,
-            source_vertices, size_source_verticesArr,
-            &sink_vertex, 1,
-            algorithm,
-            only_flow,
-
-            result_tuples, result_count,
-            &log_msg,
-            &notice_msg,
-            &err_msg);
-
-    if (only_flow) {
-        time_msg("pgr_maxFlow(many to many)",
-                start_t, clock());
-    } else if (strcmp(algorithm, "push_relabel") == 0) {
-        time_msg("pgr_maxFlowPushRelabel(many to one)",
-                start_t, clock());
-    } else if (strcmp(algorithm, "edmonds_karp") == 0) {
-        time_msg("pgr_maxFlowEdmondsKarp(many to one)",
-                start_t, clock());
-    } else {
-        time_msg("pgr_maxFlowBoykovKolmogorov(many to one)",
-                start_t, clock());
-    }
-
-    if (edges) pfree(edges);
-    if (source_vertices) pfree(source_vertices);
-
-    if (err_msg && (*result_tuples)) {
-        pfree(*result_tuples);
-        (*result_tuples) = NULL;
-        (*result_count) = 0;
-    }
-
-    pgr_global_report(log_msg, notice_msg, err_msg);
-
-    if (log_msg) pfree(log_msg);
-    if (notice_msg) pfree(notice_msg);
-    if (err_msg) pfree(err_msg);
-
-
-    pgr_SPI_finish();
-}
-/*                                                                            */
-/******************************************************************************/
-
-PG_FUNCTION_INFO_V1(max_flow_many_to_one);
-PGDLLEXPORT Datum
-max_flow_many_to_one(PG_FUNCTION_ARGS) {
-    FuncCallContext *funcctx;
-    TupleDesc tuple_desc;
-
-    /**************************************************************************/
-    pgr_flow_t *result_tuples = 0;
-    size_t result_count = 0;
-    /**************************************************************************/
-
-    if (SRF_IS_FIRSTCALL()) {
-        MemoryContext oldcontext;
-        funcctx = SRF_FIRSTCALL_INIT();
-        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
-
-
-        /**********************************************************************/
-
-        process(
-                text_to_cstring(PG_GETARG_TEXT_P(0)),
-                PG_GETARG_ARRAYTYPE_P(1),
-                PG_GETARG_INT64(2),
-                text_to_cstring(PG_GETARG_TEXT_P(3)),
-                PG_GETARG_BOOL(4),
-                &result_tuples,
-                &result_count);
-
-        /**********************************************************************/
-
-#if PGSQL_VERSION > 95
-        funcctx->max_calls = result_count;
-#else
-        funcctx->max_calls = (uint32_t)result_count;
-#endif
-        funcctx->user_fctx = result_tuples;
-        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
-                != TYPEFUNC_COMPOSITE) {
-            ereport(ERROR,
-                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-                     errmsg("function returning record called in context "
-                         "that cannot accept type record")));
-        }
-
-        funcctx->tuple_desc = tuple_desc;
-        MemoryContextSwitchTo(oldcontext);
-    }
-
-    funcctx = SRF_PERCALL_SETUP();
-    tuple_desc = funcctx->tuple_desc;
-    result_tuples = (pgr_flow_t *) funcctx->user_fctx;
-
-    if (funcctx->call_cntr < funcctx->max_calls) {
-        HeapTuple tuple;
-        Datum result;
-        Datum *values;
-        bool *nulls;
-        size_t call_cntr = funcctx->call_cntr;
-
-        /**********************************************************************/
-        values = palloc(6 * sizeof(Datum));
-        nulls = palloc(6 * sizeof(bool));
-
-        size_t i;
-        for (i = 0; i < 6; ++i) {
-            nulls[i] = false;
-        }
-
-        values[0] = Int32GetDatum(call_cntr + 1);
-        values[1] = Int64GetDatum(result_tuples[call_cntr].edge);
-        values[2] = Int64GetDatum(result_tuples[call_cntr].source);
-        values[3] = Int64GetDatum(result_tuples[call_cntr].target);
-        values[4] = Int64GetDatum(result_tuples[call_cntr].flow);
-        values[5] = Int64GetDatum(result_tuples[call_cntr].residual_capacity);
-        /**********************************************************************/
-
-        tuple = heap_form_tuple(tuple_desc, values, nulls);
-        result = HeapTupleGetDatum(tuple);
-        SRF_RETURN_NEXT(funcctx, result);
-    } else {
-        SRF_RETURN_DONE(funcctx);
-    }
-}
-
diff --git a/src/max_flow/src/max_flow_one_to_many.c b/src/max_flow/src/max_flow_one_to_many.c
deleted file mode 100644
index e74bb33..0000000
--- a/src/max_flow/src/max_flow_one_to_many.c
+++ /dev/null
@@ -1,219 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: max_flow_one_to_many.c
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer:
-Copyright (c) 2016 Andrea Nardelli
-Mail: nrd.nardelli at gmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#include "./../../common/src/postgres_connection.h"
-#include "utils/array.h"
-
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/e_report.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/edges_input.h"
-#include "./../../common/src/arrays_input.h"
-#include "./max_flow_driver.h"
-
-PGDLLEXPORT Datum
-max_flow_one_to_many(PG_FUNCTION_ARGS);
-
-/******************************************************************************/
-static
-void
-process(
-        char *edges_sql,
-        int64_t source_vertex,
-        ArrayType *ends,
-        char *algorithm,
-        bool only_flow,
-        pgr_flow_t **result_tuples,
-        size_t *result_count) {
-    if (!(strcmp(algorithm, "push_relabel") == 0
-                || strcmp(algorithm, "edmonds_karp") == 0
-                || strcmp(algorithm, "boykov_kolmogorov") == 0)) {
-        elog(ERROR, "Unknown algorithm");
-    }
-
-    pgr_SPI_connect();
-
-    size_t size_sink_verticesArr = 0;
-    int64_t* sink_vertices =
-        pgr_get_bigIntArray(&size_sink_verticesArr, ends);
-
-
-
-    /* NOTE:
-     * For flow, cost and reverse_cost are really capacity and reverse_capacity
-     */
-    size_t total_tuples = 0;
-    pgr_edge_t *edges = NULL;
-    pgr_get_flow_edges(edges_sql, &edges, &total_tuples);
-
-    if (total_tuples == 0) {
-        if (sink_vertices) pfree(sink_vertices);
-        pgr_SPI_finish();
-        return;
-    }
-
-    PGR_DBG("Starting processing");
-    clock_t start_t = clock();
-    char* log_msg = NULL;
-    char* notice_msg = NULL;
-    char* err_msg = NULL;
-
-    do_pgr_max_flow(
-            edges, total_tuples,
-            &source_vertex, 1,
-            sink_vertices, size_sink_verticesArr,
-            algorithm,
-            only_flow,
-
-            result_tuples, result_count,
-
-            &log_msg,
-            &notice_msg,
-            &err_msg);
-
-    if (only_flow) {
-        time_msg("pgr_maxFlow(many to many)",
-                start_t, clock());
-    } else if (strcmp(algorithm, "push_relabel") == 0) {
-        time_msg("pgr_maxFlowPushRelabel(one to many)",
-                start_t, clock());
-    } else if (strcmp(algorithm, "edmonds_karp") == 0) {
-        time_msg("pgr_maxFlowEdmondsKarp(one to many)",
-                start_t, clock());
-    } else {
-        time_msg("pgr_maxFlowBoykovKolmogorov(one to many)",
-                start_t, clock());
-    }
-
-
-    if (edges) pfree(edges);
-    if (sink_vertices) pfree(sink_vertices);
-
-    if (err_msg && (*result_tuples)) {
-        pfree(*result_tuples);
-        (*result_tuples) = NULL;
-        (*result_count) = 0;
-    }
-
-    pgr_global_report(log_msg, notice_msg, err_msg);
-
-    if (log_msg) pfree(log_msg);
-    if (notice_msg) pfree(notice_msg);
-    if (err_msg) pfree(err_msg);
-
-    pgr_SPI_finish();
-}
-
-PG_FUNCTION_INFO_V1(max_flow_one_to_many);
-PGDLLEXPORT Datum
-max_flow_one_to_many(PG_FUNCTION_ARGS) {
-    FuncCallContext *funcctx;
-    TupleDesc tuple_desc;
-
-    /**************************************************************************/
-    pgr_flow_t *result_tuples = 0;
-    size_t result_count = 0;
-    /**************************************************************************/
-
-    if (SRF_IS_FIRSTCALL()) {
-        MemoryContext oldcontext;
-        funcctx = SRF_FIRSTCALL_INIT();
-        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
-
-
-        /**********************************************************************/
-
-        process(
-                text_to_cstring(PG_GETARG_TEXT_P(0)),
-                PG_GETARG_INT64(1),
-                PG_GETARG_ARRAYTYPE_P(2),
-                text_to_cstring(PG_GETARG_TEXT_P(3)),
-                PG_GETARG_BOOL(4),
-                &result_tuples,
-                &result_count);
-
-        /**********************************************************************/
-
-#if PGSQL_VERSION > 95
-        funcctx->max_calls = result_count;
-#else
-        funcctx->max_calls = (uint32_t)result_count;
-#endif
-        funcctx->user_fctx = result_tuples;
-        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
-                != TYPEFUNC_COMPOSITE) {
-            ereport(ERROR,
-                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-                     errmsg("function returning record called in context "
-                         "that cannot accept type record")));
-        }
-
-        funcctx->tuple_desc = tuple_desc;
-        MemoryContextSwitchTo(oldcontext);
-    }
-
-    funcctx = SRF_PERCALL_SETUP();
-    tuple_desc = funcctx->tuple_desc;
-    result_tuples = (pgr_flow_t *) funcctx->user_fctx;
-
-    if (funcctx->call_cntr < funcctx->max_calls) {
-        HeapTuple tuple;
-        Datum result;
-        Datum *values;
-        bool *nulls;
-        size_t call_cntr = funcctx->call_cntr;
-
-        /**********************************************************************/
-
-        values = palloc(6 * sizeof(Datum));
-        nulls = palloc(6 * sizeof(bool));
-
-        size_t i;
-        for (i = 0; i < 6; ++i) {
-            nulls[i] = false;
-        }
-
-        values[0] = Int32GetDatum(call_cntr + 1);
-        values[1] = Int64GetDatum(result_tuples[call_cntr].edge);
-        values[2] = Int64GetDatum(result_tuples[call_cntr].source);
-        values[3] = Int64GetDatum(result_tuples[call_cntr].target);
-        values[4] = Int64GetDatum(result_tuples[call_cntr].flow);
-        values[5] = Int64GetDatum(result_tuples[call_cntr].residual_capacity);
-
-        /**********************************************************************/
-
-        tuple = heap_form_tuple(tuple_desc, values, nulls);
-        result = HeapTupleGetDatum(tuple);
-        SRF_RETURN_NEXT(funcctx, result);
-    } else {
-        SRF_RETURN_DONE(funcctx);
-    }
-}
-
diff --git a/src/max_flow/src/max_flow_one_to_one.c b/src/max_flow/src/max_flow_one_to_one.c
deleted file mode 100644
index 427cc00..0000000
--- a/src/max_flow/src/max_flow_one_to_one.c
+++ /dev/null
@@ -1,216 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: max_flow_one_to_one.c
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer:
-Copyright (c) 2016 Andrea Nardelli
-Mail: nrd.nardelli at gmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#include "./../../common/src/postgres_connection.h"
-
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/e_report.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/edges_input.h"
-#include "./max_flow_driver.h"
-
-PGDLLEXPORT Datum
-max_flow_one_to_one(PG_FUNCTION_ARGS);
-
-/******************************************************************************/
-/*                          MODIFY AS NEEDED                                  */
-static
-void
-process(
-        char *edges_sql,
-        int64_t source_vertex,
-        int64_t sink_vertex,
-        char *algorithm,
-        bool only_flow,
-        pgr_flow_t **result_tuples,
-        size_t *result_count) {
-    if (!(strcmp(algorithm, "push_relabel") == 0
-                || strcmp(algorithm, "edmonds_karp") == 0
-                || strcmp(algorithm, "boykov_kolmogorov") == 0)) {
-        elog(ERROR, "Unknown algorithm");
-    }
-
-    if (source_vertex == sink_vertex) {
-        return;
-    }
-
-    pgr_SPI_connect();
-
-    /* NOTE:
-     * For flow, cost and reverse_cost are really capacity and reverse_capacity
-     */
-    size_t total_tuples = 0;
-    pgr_edge_t *edges = NULL;
-    pgr_get_flow_edges(edges_sql, &edges, &total_tuples);
-
-    if (total_tuples == 0) {
-        pgr_SPI_finish();
-        return;
-    }
-
-    PGR_DBG("Starting timer");
-    clock_t start_t = clock();
-    char* log_msg = NULL;
-    char* notice_msg = NULL;
-    char* err_msg = NULL;
-
-    do_pgr_max_flow(
-            edges,
-            total_tuples,
-            &source_vertex, 1,
-            &sink_vertex, 1,
-            algorithm,
-            only_flow,
-
-            result_tuples, result_count,
-
-            &log_msg,
-            &notice_msg,
-            &err_msg);
-
-    if (only_flow) {
-        time_msg("pgr_maxFlow(one to one)",
-                start_t, clock());
-    } else if (strcmp(algorithm, "push_relabel") == 0) {
-        time_msg("pgr_maxFlowPushRelabel(one to one)",
-                start_t, clock());
-    } else if (strcmp(algorithm, "edmonds_karp") == 0) {
-        time_msg("pgr_maxFlowEdmondsKarp(one to one)",
-                start_t, clock());
-    } else {
-        time_msg("pgr_maxFlowBoykovKolmogorov(one to one)",
-                start_t, clock());
-    }
-
-
-    if (edges) pfree(edges);
-
-    if (err_msg && (*result_tuples)) {
-        pfree(*result_tuples);
-        (*result_tuples) = NULL;
-        (*result_count) = 0;
-    }
-
-    pgr_global_report(log_msg, notice_msg, err_msg);
-
-    if (log_msg) pfree(log_msg);
-    if (notice_msg) pfree(notice_msg);
-    if (err_msg) pfree(err_msg);
-
-    pgr_SPI_finish();
-}
-/*                                                                            */
-/******************************************************************************/
-
-PG_FUNCTION_INFO_V1(max_flow_one_to_one);
-PGDLLEXPORT Datum
-max_flow_one_to_one(PG_FUNCTION_ARGS) {
-    FuncCallContext *funcctx;
-    TupleDesc tuple_desc;
-
-    /**************************************************************************/
-    pgr_flow_t *result_tuples = 0;
-    size_t result_count = 0;
-    /**************************************************************************/
-
-    if (SRF_IS_FIRSTCALL()) {
-        MemoryContext oldcontext;
-        funcctx = SRF_FIRSTCALL_INIT();
-        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
-
-
-        /**********************************************************************/
-
-        process(
-                text_to_cstring(PG_GETARG_TEXT_P(0)),
-                PG_GETARG_INT64(1),
-                PG_GETARG_INT64(2),
-                text_to_cstring(PG_GETARG_TEXT_P(3)),
-                PG_GETARG_BOOL(4),
-                &result_tuples,
-                &result_count);
-
-        /**********************************************************************/
-
-#if PGSQL_VERSION > 95
-        funcctx->max_calls = result_count;
-#else
-        funcctx->max_calls = (uint32_t)result_count;
-#endif
-        funcctx->user_fctx = result_tuples;
-        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
-                != TYPEFUNC_COMPOSITE) {
-            ereport(ERROR,
-                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-                     errmsg("function returning record called in context "
-                         "that cannot accept type record")));
-        }
-
-        funcctx->tuple_desc = tuple_desc;
-        MemoryContextSwitchTo(oldcontext);
-    }
-
-    funcctx = SRF_PERCALL_SETUP();
-    tuple_desc = funcctx->tuple_desc;
-    result_tuples = (pgr_flow_t *) funcctx->user_fctx;
-
-    if (funcctx->call_cntr < funcctx->max_calls) {
-        HeapTuple tuple;
-        Datum result;
-        Datum *values;
-        bool *nulls;
-        size_t call_cntr = funcctx->call_cntr;
-
-        /**********************************************************************/
-
-        values = palloc(6 * sizeof(Datum));
-        nulls = palloc(6 * sizeof(bool));
-
-        size_t i;
-        for (i = 0; i < 6; ++i) {
-            nulls[i] = false;
-        }
-
-        values[0] = Int32GetDatum(call_cntr + 1);
-        values[1] = Int64GetDatum(result_tuples[call_cntr].edge);
-        values[2] = Int64GetDatum(result_tuples[call_cntr].source);
-        values[3] = Int64GetDatum(result_tuples[call_cntr].target);
-        values[4] = Int64GetDatum(result_tuples[call_cntr].flow);
-        values[5] = Int64GetDatum(result_tuples[call_cntr].residual_capacity);
-        /**********************************************************************/
-
-        tuple = heap_form_tuple(tuple_desc, values, nulls);
-        result = HeapTupleGetDatum(tuple);
-        SRF_RETURN_NEXT(funcctx, result);
-    } else {
-        SRF_RETURN_DONE(funcctx);
-    }
-}
-
diff --git a/src/max_flow/src/maximum_cardinality_matching.c b/src/max_flow/src/maximum_cardinality_matching.c
index 5125abc..68203a3 100644
--- a/src/max_flow/src/maximum_cardinality_matching.c
+++ b/src/max_flow/src/maximum_cardinality_matching.c
@@ -27,13 +27,12 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#include "./../../common/src/postgres_connection.h"
+#include "c_common/postgres_connection.h"
 
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/e_report.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/edges_input.h"
+#include "c_common/debug_macro.h"
+#include "c_common/e_report.h"
+#include "c_common/time_msg.h"
+#include "c_common/edges_input.h"
 #include "./maximum_cardinality_matching_driver.h"
 
 
diff --git a/src/max_flow/src/maximum_cardinality_matching_driver.cpp b/src/max_flow/src/maximum_cardinality_matching_driver.cpp
index d4cb75e..12009a0 100644
--- a/src/max_flow/src/maximum_cardinality_matching_driver.cpp
+++ b/src/max_flow/src/maximum_cardinality_matching_driver.cpp
@@ -34,9 +34,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 #include "./pgr_maximumcardinalitymatching.hpp"
 
-#include "./../../common/src/pgr_alloc.hpp"
-#include "../../common/src/pgr_assert.h"
-#include "./../../common/src/pgr_types.h"
+#include "cpp_common/pgr_alloc.hpp"
+#include "cpp_common/pgr_assert.h"
 
 
 void
diff --git a/src/max_flow/src/maximum_cardinality_matching_driver.h b/src/max_flow/src/maximum_cardinality_matching_driver.h
index a02fb74..a2f04b3 100644
--- a/src/max_flow/src/maximum_cardinality_matching_driver.h
+++ b/src/max_flow/src/maximum_cardinality_matching_driver.h
@@ -30,7 +30,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 #ifndef SRC_MAX_FLOW_SRC_MAXIMUM_CARDINALITY_MATCHING_DRIVER_H_
 #define SRC_MAX_FLOW_SRC_MAXIMUM_CARDINALITY_MATCHING_DRIVER_H_
 
-#include "./../../common/src/pgr_types.h"
+#include "c_types/pgr_basic_edge_t.h"
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/src/max_flow/src/pgr_edgedisjointpaths.hpp b/src/max_flow/src/pgr_edgedisjointpaths.hpp
deleted file mode 100644
index c00b314..0000000
--- a/src/max_flow/src/pgr_edgedisjointpaths.hpp
+++ /dev/null
@@ -1,266 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Copyright (c) 2016 Andrea Nardelli
-Mail: nrd.nardelli at gmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifndef SRC_MAX_FLOW_SRC_PGR_EDGEDISJOINTPATHS_HPP_
-#define SRC_MAX_FLOW_SRC_PGR_EDGEDISJOINTPATHS_HPP_
-#pragma once
-
-#include <boost/config.hpp>
-#include <boost/graph/adjacency_list.hpp>
-#include <boost/assert.hpp>
-
-
-#include <map>
-#include <utility>
-#include <vector>
-#include <set>
-#include <limits>
-
-#include "./../../common/src/pgr_types.h"
-#include "pgr_maxflow.hpp"
-
-namespace pgrouting {
-namespace flow {    
-
-template<class G>
-class PgrEdgeDisjointPathsGraph {
- public:
-  G boost_graph;
-
-  typedef typename boost::graph_traits<G>::vertex_descriptor V;
-  typedef typename boost::graph_traits<G>::edge_descriptor E;
-  typedef typename boost::graph_traits<G>::vertex_iterator V_it;
-  typedef typename boost::graph_traits<G>::edge_iterator E_it;
-  typedef typename boost::graph_traits<G>::out_edge_iterator Eout_it;
-
-  typename boost::property_map<G, boost::edge_capacity_t>::type capacity;
-  typename boost::property_map<G, boost::edge_reverse_t>::type rev;
-  typename boost::property_map<G, boost::edge_residual_capacity_t>::type
-      residual_capacity;
-
-  std::map<int64_t, V> id_to_V;
-  std::map<V, int64_t> V_to_id;
-  std::map<E, int64_t> E_to_id;
-
-  V source_vertex;
-  V sink_vertex;
-
-  V get_boost_vertex(int64_t id) {
-      return id_to_V[id];
-  }
-
-  int64_t get_vertex_id(V v) {
-      return V_to_id[v];
-  }
-
-  int64_t get_edge_id(E e) {
-      return E_to_id[e];
-  }
-
-  int64_t boykov_kolmogorov() {
-      size_t num_v = boost::num_vertices(boost_graph);
-      std::vector<boost::default_color_type> color(num_v);
-      std::vector<int64_t> distance(num_v);
-      return boost::boykov_kolmogorov_max_flow(boost_graph,
-                                               source_vertex,
-                                               sink_vertex);
-  }
-
-  void create_edge_disjoint_paths_graph(pgr_basic_edge_t *data_edges,
-          size_t total_tuples,
-          const std::set<int64_t> &source_vertices,
-          const std::set<int64_t> &sink_vertices,
-          bool directed) {
-      std::set<int64_t> vertices;
-      for (int64_t source : source_vertices) {
-          vertices.insert(source);
-      }
-      for (int64_t sink : sink_vertices) {
-          vertices.insert(sink);
-      }
-      for (size_t i = 0; i < total_tuples; ++i) {
-          vertices.insert(data_edges[i].source);
-          vertices.insert(data_edges[i].target);
-      }
-      for (int64_t id : vertices) {
-          V v = add_vertex(boost_graph);
-          id_to_V.insert(std::pair<int64_t, V>(id, v));
-          V_to_id.insert(std::pair<V, int64_t>(v, id));
-      }
-      bool added;
-
-      V supersource = add_vertex(boost_graph);
-      for (int64_t source_id : source_vertices) {
-          V source = get_boost_vertex(source_id);
-          E e, e_rev;
-          boost::tie(e, added) =
-              boost::add_edge(supersource, source, boost_graph);
-          boost::tie(e_rev, added) =
-              boost::add_edge(source, supersource, boost_graph);
-          capacity[e] = (std::numeric_limits<int32_t>::max)();
-          capacity[e_rev] = 0;
-          rev[e] = e_rev;
-          rev[e_rev] = e;
-      }
-
-      V supersink = add_vertex(boost_graph);
-      for (int64_t sink_id : sink_vertices) {
-          V sink = get_boost_vertex(sink_id);
-          E e1, e1_rev;
-          boost::tie(e1, added) =
-              boost::add_edge(sink, supersink, boost_graph);
-          boost::tie(e1_rev, added) =
-              boost::add_edge(supersink, sink, boost_graph);
-          capacity[e1] = (std::numeric_limits<int32_t>::max)();
-          capacity[e1_rev] = 0;
-          rev[e1] = e1_rev;
-          rev[e1_rev] = e1;
-      }
-
-      source_vertex = supersource;
-      sink_vertex = supersink;
-
-      capacity = get(boost::edge_capacity, boost_graph);
-      rev = get(boost::edge_reverse, boost_graph);
-      residual_capacity =
-          get(boost::edge_residual_capacity, boost_graph);
-
-      for (size_t i = 0; i < total_tuples; ++i) {
-          V v1 = get_boost_vertex(data_edges[i].source);
-          V v2 = get_boost_vertex(data_edges[i].target);
-          if (directed) {
-              E e, e_rev;
-              boost::tie(e, added) =
-                  boost::add_edge(v1, v2, boost_graph);
-              boost::tie(e_rev, added) =
-                  boost::add_edge(v2, v1, boost_graph);
-              E_to_id.insert(std::pair<E, int64_t>(e, data_edges[i].id));
-              E_to_id.insert(std::pair<E, int64_t>(e_rev,
-                                                   data_edges[i].id));
-              capacity[e] = data_edges[i].going ? 1 : 0;
-              capacity[e_rev] = data_edges[i].coming ? 1 : 0;
-              rev[e] = e_rev;
-              rev[e_rev] = e;
-          } else {
-              if (data_edges[i].going || data_edges[i].coming) {
-                  E e, e_rev;
-                  boost::tie(e, added) =
-                      boost::add_edge(v1, v2, boost_graph);
-                  boost::tie(e_rev, added) =
-                      boost::add_edge(v2, v1, boost_graph);
-                  E_to_id.insert(std::pair<E, int64_t>(e, data_edges[i].id));
-                  E_to_id.insert(std::pair<E, int64_t>(e_rev,
-                                                       data_edges[i].id));
-                  capacity[e] = 1;
-                  capacity[e_rev] = 1;
-                  rev[e] = e_rev;
-                  rev[e_rev] = e;
-              }
-          }
-      }
-  }
-
-  void
-  flow_dfs(V vertex,
-           int64_t path_id,
-           std::vector<std::vector<int64_t> > &paths) {
-      Eout_it ei, e_end;
-      if (boost::edge(vertex, sink_vertex, boost_graph).second) {
-          int64_t v_id = get_vertex_id(vertex);
-          paths[path_id].push_back(v_id);
-      } else {
-          for (boost::tie(ei, e_end) =
-                   boost::out_edges(vertex, boost_graph);
-               ei != e_end; ++ei) {
-              if (residual_capacity[*ei] < capacity[*ei]) {
-                  // exclude this edge from subsequent visits
-                  capacity[*ei] = -1;
-                  int64_t v_id = get_vertex_id(vertex);
-                  paths[path_id].push_back(v_id);
-                  flow_dfs((*ei).m_target,
-                           path_id,
-                           paths);
-                  break;
-              }
-          }
-      }
-  }
-
-  void
-  get_edge_disjoint_paths(std::vector<General_path_element_t> &path_elements,
-                          int64_t flow) {
-      std::vector<std::vector<int64_t> > paths(flow, std::vector<int64_t>());
-      int64_t path_id = 0;
-      Eout_it ei, e_end, ei2, e2_end;
-      for (boost::tie(ei, e_end) =
-               boost::out_edges(source_vertex, boost_graph);
-           ei != e_end; ++ei) {
-          if (capacity[*ei] - residual_capacity[*ei] > 0) {
-              for (boost::tie(ei2, e2_end) =
-                       boost::out_edges((*ei).m_target, boost_graph);
-                   ei2 != e2_end; ++ei2) {
-                  if (capacity[*ei2] - residual_capacity[*ei2]
-                      > 0) {
-                      paths[path_id].push_back(get_vertex_id((*ei2).m_source));
-                      flow_dfs((*ei2).m_target, path_id, paths);
-                      path_id++;
-                  }
-              }
-          }
-      }
-      for (int i = 0; i < flow; i++) {
-          size_t size = paths[i].size();
-          E e;
-          bool exists;
-          size_t j;
-          for (j = 0; j < size - 1; j++) {
-              General_path_element_t edge;
-              edge.seq = static_cast<int>(j + 1);
-              edge.start_id = paths[i][0];
-              edge.end_id = paths[i][size - 1];
-              edge.node = paths[i][j];
-              boost::tie(e, exists) = boost::edge(get_boost_vertex(paths[i][j]),
-                                                  get_boost_vertex(paths[i][j
-                                                      + 1]),
-                                                  boost_graph);
-              edge.edge = get_edge_id(e);
-              path_elements.push_back(edge);
-          }
-          General_path_element_t edge;
-          edge.seq = static_cast<int>(j + 1);
-          edge.start_id = paths[i][0];
-          edge.end_id = paths[i][size - 1];
-          edge.node = paths[i][j];
-          edge.edge = -1;
-          path_elements.push_back(edge);
-      }
-  }
-};
-
-}  // namespace flow
-}  // namespace pgrouting
-
-#endif  // SRC_MAX_FLOW_SRC_PGR_EDGEDISJOINTPATHS_HPP_
diff --git a/src/max_flow/src/pgr_flowgraph.cpp b/src/max_flow/src/pgr_flowgraph.cpp
new file mode 100644
index 0000000..b143bab
--- /dev/null
+++ b/src/max_flow/src/pgr_flowgraph.cpp
@@ -0,0 +1,27 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Copyright (c) 2016 Andrea Nardelli
+Mail: nrd.nardelli at gmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#include "pgr_flowgraph.hpp"
diff --git a/src/max_flow/src/pgr_flowgraph.hpp b/src/max_flow/src/pgr_flowgraph.hpp
new file mode 100644
index 0000000..a891ba9
--- /dev/null
+++ b/src/max_flow/src/pgr_flowgraph.hpp
@@ -0,0 +1,54 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Copyright (c) 2016 Andrea Nardelli
+Mail: nrd.nardelli at gmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#ifndef SRC_MAX_FLOW_SRC_PGR_FLOWGRAPH_HPP_
+#define SRC_MAX_FLOW_SRC_PGR_FLOWGRAPH_HPP_
+#pragma once
+
+#include <boost/config.hpp>
+#include <boost/graph/adjacency_list.hpp>
+
+
+namespace pgrouting {
+
+typedef boost::adjacency_list_traits<boost::vecS, boost::vecS, boost::directedS>
+    Traits;
+typedef boost::adjacency_list<boost::listS, boost::vecS, boost::directedS,
+        // Vertex properties
+        boost::property<boost::vertex_index_t, int64_t,
+        boost::property<boost::vertex_color_t, boost::default_color_type,
+        boost::property<boost::vertex_distance_t, int64_t,
+        boost::property<boost::vertex_predecessor_t, Traits::edge_descriptor>
+        > > >,
+        // Edge properties
+        boost::property<boost::edge_capacity_t, int64_t,
+        boost::property<boost::edge_residual_capacity_t, int64_t,
+        boost::property<boost::edge_reverse_t, Traits::edge_descriptor> > > >
+    FlowGraph;
+
+}  // namespace pgrouting
+
+#endif  // SRC_MAX_FLOW_SRC_PGR_FLOWGRAPH_HPP_
diff --git a/src/max_flow/src/pgr_maxflow.cpp b/src/max_flow/src/pgr_maxflow.cpp
new file mode 100644
index 0000000..4a50347
--- /dev/null
+++ b/src/max_flow/src/pgr_maxflow.cpp
@@ -0,0 +1,310 @@
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Copyright (c) 2016 Andrea Nardelli
+Mail: nrd.nardelli at gmail.com
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#include "pgr_maxflow.hpp"
+
+#include <limits>
+#include <utility>
+#include <vector>
+#include <set>
+
+namespace pgrouting {
+namespace graph {
+
+
+PgrFlowGraph::PgrFlowGraph(
+        const std::vector<pgr_edge_t> &edges,
+        const std::set<int64_t> &source_vertices,
+        const std::set<int64_t> &sink_vertices,
+        int algorithm) {
+    add_vertices(edges, source_vertices, sink_vertices);
+
+    capacity = get(boost::edge_capacity, graph);
+    rev = get(boost::edge_reverse, graph);
+    residual_capacity = get(boost::edge_residual_capacity, graph);
+
+    if (algorithm == 1) {
+        insert_edges_push_relabel(edges);
+    } else {
+        insert_edges(edges);
+    }
+}
+
+PgrFlowGraph::PgrFlowGraph(
+        const std::vector<pgr_edge_t> &edges,
+        const std::set<int64_t> &source_vertices,
+        const std::set<int64_t> &sink_vertices,
+        bool directed) {
+    add_vertices(edges, source_vertices, sink_vertices);
+
+    capacity = get(boost::edge_capacity, graph);
+    rev = get(boost::edge_reverse, graph);
+    residual_capacity =
+        get(boost::edge_residual_capacity, graph);
+
+    insert_edges_edge_disjoint(edges, directed);
+}
+
+/* Inserting edges
+ * Push-relabel requires each edge to be mapped to its reverse with capacity 0.
+ */
+void PgrFlowGraph::insert_edges_push_relabel(
+        const std::vector<pgr_edge_t> &edges) {
+    bool added;
+    for (const auto edge : edges) {
+        V v1 = get_boost_vertex(edge.source);
+        V v2 = get_boost_vertex(edge.target);
+        E e1, e1_rev, e2, e2_rev;
+        if (edge.cost > 0) {
+            boost::tie(e1, added) = boost::add_edge(v1, v2, graph);
+            boost::tie(e1_rev, added) =
+                boost::add_edge(v2, v1, graph);
+            E_to_id.insert(std::pair<E, int64_t>(e1, edge.id));
+            E_to_id.insert(std::pair<E, int64_t>(e1_rev, edge.id));
+            capacity[e1] = (int64_t) edge.cost;
+            capacity[e1_rev] = 0;
+            rev[e1] = e1_rev;
+            rev[e1_rev] = e1;
+        }
+        if (edge.reverse_cost > 0) {
+            boost::tie(e2, added) = boost::add_edge(v2, v1, graph);
+            boost::tie(e2_rev, added) =
+                boost::add_edge(v1, v2, graph);
+            E_to_id.insert(std::pair<E, int64_t>(e2, edge.id));
+            E_to_id.insert(std::pair<E, int64_t>(e2_rev, edge.id));
+            capacity[e2] = (int64_t) edge.reverse_cost;
+            capacity[e2_rev] = 0;
+            rev[e2] = e2_rev;
+            rev[e2_rev] = e2;
+        }
+    }
+}
+
+/* Inserting edges
+ * The other pgr_maxflow algorithms have no such requirement. (can have have as many edges)
+ */
+void PgrFlowGraph::insert_edges(
+        const std::vector<pgr_edge_t> &edges) {
+    bool added;
+    for (const auto edge : edges) {
+        V v1 = get_boost_vertex(edge.source);
+        V v2 = get_boost_vertex(edge.target);
+        E e, e_rev;
+        boost::tie(e, added) = boost::add_edge(v1, v2, graph);
+        boost::tie(e_rev, added) =
+            boost::add_edge(v2, v1, graph);
+        E_to_id.insert(std::pair<E, int64_t>(e, edge.id));
+        E_to_id.insert(std::pair<E, int64_t>(e_rev, edge.id));
+        capacity[e] = edge.cost > 0 ? (int64_t) edge.cost : 0;
+        capacity[e_rev] = edge.reverse_cost > 0
+            ? (int64_t) edge.reverse_cost : 0;
+        rev[e] = e_rev;
+        rev[e_rev] = e;
+    }
+}
+
+/* Inserting edges
+ * for the edge_disjoint_paths  algorithms
+ */
+void PgrFlowGraph::insert_edges_edge_disjoint(
+        const std::vector<pgr_edge_t> &edges,
+        bool directed) {
+    bool added;
+    for (const auto edge : edges) {
+        V v1 = get_boost_vertex(edge.source);
+        V v2 = get_boost_vertex(edge.target);
+        E e, e_rev;
+        boost::tie(e, added) =
+            boost::add_edge(v1, v2, graph);
+        boost::tie(e_rev, added) =
+            boost::add_edge(v2, v1, graph);
+        E_to_id.insert(std::pair<E, int64_t>(e, edge.id));
+        E_to_id.insert(std::pair<E, int64_t>(e_rev,
+                    edge.id));
+        if (directed) {
+            capacity[e] = edge.cost >= 0 ? 1 : 0;
+            capacity[e_rev] = edge.reverse_cost >= 0 ? 1 : 0;
+        } else {
+            if (edge.cost >= 0 || edge.reverse_cost >= 0) {
+                capacity[e] = 1;
+                capacity[e_rev] = 1;
+            }
+        }
+        rev[e] = e_rev;
+        rev[e_rev] = e;
+    }
+}
+
+void PgrFlowGraph::set_supersource(
+        const std::set<int64_t> &source_vertices) {
+    bool added;
+    supersource = add_vertex(graph);
+    for (int64_t source_id : source_vertices) {
+        V source = get_boost_vertex(source_id);
+        E e, e_rev;
+        boost::tie(e, added) =
+            boost::add_edge(supersource, source, graph);
+        boost::tie(e_rev, added) =
+            boost::add_edge(source, supersource, graph);
+
+        capacity[e] = (std::numeric_limits<int32_t>::max)();
+        /* From sources to supersource has 0 capacity*/
+        capacity[e_rev] = 0;
+        rev[e] = e_rev;
+        rev[e_rev] = e;
+    }
+}
+
+void PgrFlowGraph::set_supersink(
+        const std::set<int64_t> &sink_vertices) {
+    bool added;
+    supersink = add_vertex(graph);
+    for (int64_t sink_id : sink_vertices) {
+        V sink = get_boost_vertex(sink_id);
+        E e, e_rev;
+        boost::tie(e, added) = boost::add_edge(sink, supersink, graph);
+        boost::tie(e_rev, added) =
+            boost::add_edge(supersink, sink, graph);
+        /*
+         * NOTE: int64_t crashes the server
+         */
+        /* From sinks to supersink has maximum capacity*/
+        capacity[e] = (std::numeric_limits<int32_t>::max)();
+        /* From supersink to sinks has 0 capacity*/
+        capacity[e_rev] = 0;
+        rev[e] = e_rev;
+        rev[e_rev] = e;
+    }
+}
+
+std::vector<pgr_flow_t>
+PgrFlowGraph::get_flow_edges() const {
+    std::vector<pgr_flow_t> flow_edges;
+    E_it e, e_end;
+    for (boost::tie(e, e_end) = boost::edges(graph); e != e_end;
+            ++e) {
+        // A supersource/supersink is used internally
+        if (((capacity[*e] - residual_capacity[*e]) > 0) &&
+                ((*e).m_source != supersource) &&
+                ((*e).m_target != supersink)) {
+            pgr_flow_t edge;
+            edge.edge = get_edge_id(*e);
+            edge.source = get_vertex_id((*e).m_source);
+            edge.target = get_vertex_id((*e).m_target);
+            edge.flow = capacity[*e] - residual_capacity[*e];
+            edge.residual_capacity = residual_capacity[*e];
+            flow_edges.push_back(edge);
+        }
+    }
+    return flow_edges;
+}
+
+
+
+void
+PgrFlowGraph::flow_dfs(V vertex,
+        int64_t path_id,
+        std::vector<std::vector<int64_t> > &paths) {
+    Eout_it ei, e_end;
+    if (boost::edge(vertex, supersink, graph).second) {
+        int64_t v_id = get_vertex_id(vertex);
+        paths[path_id].push_back(v_id);
+    } else {
+        for (boost::tie(ei, e_end) =
+                boost::out_edges(vertex, graph);
+                ei != e_end; ++ei) {
+            if (residual_capacity[*ei] < capacity[*ei]) {
+                // exclude this edge from subsequent visits
+                capacity[*ei] = -1;
+                int64_t v_id = get_vertex_id(vertex);
+                paths[path_id].push_back(v_id);
+                flow_dfs((*ei).m_target,
+                        path_id,
+                        paths);
+                break;
+            }
+        }
+    }
+}
+
+std::vector<General_path_element_t>
+PgrFlowGraph::get_edge_disjoint_paths(
+        int64_t flow) {
+    std::vector<General_path_element_t> path_elements;
+
+    std::vector<std::vector<int64_t> > paths(flow, std::vector<int64_t>());
+    int64_t path_id = 0;
+    Eout_it ei, e_end, ei2, e2_end;
+    for (boost::tie(ei, e_end) =
+            boost::out_edges(supersource, graph);
+            ei != e_end; ++ei) {
+        if (capacity[*ei] - residual_capacity[*ei] > 0) {
+            for (boost::tie(ei2, e2_end) =
+                    boost::out_edges((*ei).m_target, graph);
+                    ei2 != e2_end; ++ei2) {
+                if (capacity[*ei2] - residual_capacity[*ei2]
+                        > 0) {
+                    paths[path_id].push_back(get_vertex_id((*ei2).m_source));
+                    flow_dfs((*ei2).m_target, path_id, paths);
+                    path_id++;
+                }
+            }
+        }
+    }
+    for (int i = 0; i < flow; i++) {
+        size_t size = paths[i].size();
+        E e;
+        bool exists;
+        size_t j;
+        for (j = 0; j < size - 1; j++) {
+            General_path_element_t edge;
+            edge.seq = static_cast<int>(j + 1);
+            edge.start_id = paths[i][0];
+            edge.end_id = paths[i][size - 1];
+            edge.node = paths[i][j];
+            boost::tie(e, exists) = boost::edge(get_boost_vertex(paths[i][j]),
+                    get_boost_vertex(paths[i][j
+                        + 1]),
+                    graph);
+            edge.edge = get_edge_id(e);
+            path_elements.push_back(edge);
+        }
+        General_path_element_t edge;
+        edge.seq = static_cast<int>(j + 1);
+        edge.start_id = paths[i][0];
+        edge.end_id = paths[i][size - 1];
+        edge.node = paths[i][j];
+        edge.edge = -1;
+        path_elements.push_back(edge);
+    }
+    return path_elements;
+}
+
+
+
+}  // namespace graph
+}  // namespace pgrouting
+
diff --git a/src/max_flow/src/pgr_maxflow.hpp b/src/max_flow/src/pgr_maxflow.hpp
index 231c54c..0a8fece 100644
--- a/src/max_flow/src/pgr_maxflow.hpp
+++ b/src/max_flow/src/pgr_maxflow.hpp
@@ -28,12 +28,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 #define SRC_MAX_FLOW_SRC_PGR_MAXFLOW_HPP_
 #pragma once
 
-#ifdef unlink
-#undef unlink
-#endif
 
-#include <boost/config.hpp>
-#include <boost/graph/adjacency_list.hpp>
+#include "pgr_flowgraph.hpp"
 #include <boost/graph/push_relabel_max_flow.hpp>
 #include <boost/graph/edmonds_karp_max_flow.hpp>
 #include <boost/graph/boykov_kolmogorov_max_flow.hpp>
@@ -46,232 +42,155 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 #include <set>
 #include <limits>
 
-#include "./../../common/src/pgr_types.h"
+#include "c_types/pgr_flow_t.h"
+#include "c_types/pgr_edge_t.h"
+#include "c_types/general_path_element_t.h"
 
 
-namespace pgrouting {
-
-typedef boost::adjacency_list_traits<boost::vecS, boost::vecS, boost::directedS>
-    Traits;
-typedef boost::adjacency_list<boost::listS, boost::vecS, boost::directedS,
-        // Vertex properties
-        boost::property<boost::vertex_name_t, std::string,
-        boost::property<boost::vertex_index_t, int64_t,
-        boost::property<boost::vertex_color_t, boost::default_color_type,
-        boost::property<boost::vertex_distance_t, int64_t,
-        boost::property<boost::vertex_predecessor_t, Traits::edge_descriptor>
-        > > > >,
-        // Edge properties
-        boost::property<boost::edge_capacity_t, int64_t,
-        boost::property<boost::edge_residual_capacity_t, int64_t,
-        boost::property<boost::edge_reverse_t, Traits::edge_descriptor> > > >
-    FlowGraph;
 
+namespace pgrouting {
 namespace graph {
 
-template<class G>
+
 class PgrFlowGraph {
+     typedef boost::graph_traits<FlowGraph>::vertex_descriptor V;
+     typedef boost::graph_traits<FlowGraph>::edge_descriptor E;
+     typedef boost::graph_traits<FlowGraph>::vertex_iterator V_it;
+     typedef boost::graph_traits<FlowGraph>::edge_iterator E_it;
+     typedef boost::graph_traits<FlowGraph>::out_edge_iterator Eout_it;
+
+
+     boost::property_map
+         <FlowGraph, boost::edge_capacity_t>::type capacity;
+     boost::property_map
+         <FlowGraph, boost::edge_reverse_t>::type rev;
+     boost::property_map
+         <FlowGraph, boost::edge_residual_capacity_t>::type residual_capacity;
+
+
  public:
-  G boost_graph;
-
-  typedef typename boost::graph_traits<G>::vertex_descriptor V;
-  typedef typename boost::graph_traits<G>::edge_descriptor E;
-  typedef typename boost::graph_traits<G>::vertex_iterator V_it;
-  typedef typename boost::graph_traits<G>::edge_iterator E_it;
-
-  typename boost::property_map<G, boost::edge_capacity_t>::type capacity;
-  typename boost::property_map<G, boost::edge_reverse_t>::type rev;
-  typename boost::property_map<G, boost::edge_residual_capacity_t>::type
-      residual_capacity;
-
-
-  std::map<int64_t, V> id_to_V;
-  std::map<V, int64_t> V_to_id;
-  std::map<E, int64_t> E_to_id;
-
-  V source_vertex;
-  V sink_vertex;
-
-  V get_boost_vertex(int64_t id) {
-      return id_to_V[id];
-  }
-
-  int64_t get_vertex_id(V v) {
-      return V_to_id[v];
-  }
-
-  int64_t get_edge_id(E e) {
-      return E_to_id[e];
-  }
-
-  int64_t push_relabel() {
-      return boost::push_relabel_max_flow(boost_graph,
-                                          source_vertex,
-                                          sink_vertex);
-  }
-
-  int64_t edmonds_karp() {
-      return boost::edmonds_karp_max_flow(boost_graph,
-                                          source_vertex,
-                                          sink_vertex);
-  }
-
-  int64_t boykov_kolmogorov() {
-      size_t num_v = boost::num_vertices(boost_graph);
-      std::vector<boost::default_color_type> color(num_v);
-      std::vector<int64_t> distance(num_v);
-      return boost::boykov_kolmogorov_max_flow(boost_graph,
-                                               source_vertex,
-                                               sink_vertex);
-  }
-
-  void create_flow_graph(pgr_edge_t *data_edges,
-                         size_t total_tuples,
-                         const std::set<int64_t> &source_vertices,
-                         const std::set<int64_t> &sink_vertices,
-                         char *algorithm) {
-      /* In multi source flow graphs, a super source is created connected to all sources with "infinite" capacity
-       * The same applies for sinks.
-       * To avoid code repetition, a supersource/sink is used even in the one to one signature.
-       */
-
-      /*
-       * vertices = {sources} U {sink} U {edges.source} U {edge.target}
-       */
-      std::set<int64_t> vertices(source_vertices);
-      vertices.insert(sink_vertices.begin(), sink_vertices.end());
-
-      for (size_t i = 0; i < total_tuples; ++i) {
-          vertices.insert(data_edges[i].source);
-          vertices.insert(data_edges[i].target);
-      }
-
-      for (int64_t id : vertices) {
-          V v = add_vertex(boost_graph);
-          id_to_V.insert(std::pair<int64_t, V>(id, v));
-          V_to_id.insert(std::pair<V, int64_t>(v, id));
-      }
-      bool added;
-
-      V supersource = add_vertex(boost_graph);
-      V supersink = add_vertex(boost_graph);
-
-      source_vertex = supersource;
-      sink_vertex = supersink;
-
-      capacity = get(boost::edge_capacity, boost_graph);
-      rev = get(boost::edge_reverse, boost_graph);
-      residual_capacity = get(boost::edge_residual_capacity, boost_graph);
-
-      /* Inserting edges
-       * Push-relabel requires each edge to be mapped to its reverse with capacity 0.
-       * The other algorithms have no such requirement. (can have have as many edges)
-       */
-      if (strcmp(algorithm, "push_relabel") == 0) {
-          for (size_t i = 0; i < total_tuples; ++i) {
-              V v1 = get_boost_vertex(data_edges[i].source);
-              V v2 = get_boost_vertex(data_edges[i].target);
-              E e1, e1_rev, e2, e2_rev;
-              if (data_edges[i].cost > 0) {
-                  boost::tie(e1, added) = boost::add_edge(v1, v2, boost_graph);
-                  boost::tie(e1_rev, added) =
-                      boost::add_edge(v2, v1, boost_graph);
-                  E_to_id.insert(std::pair<E, int64_t>(e1, data_edges[i].id));
-                  E_to_id.insert(std::pair<E, int64_t>(e1_rev,
-                                                       data_edges[i].id));
-                  capacity[e1] = (int64_t) data_edges[i].cost;
-                  capacity[e1_rev] = 0;
-                  rev[e1] = e1_rev;
-                  rev[e1_rev] = e1;
-              }
-              if (data_edges[i].reverse_cost > 0) {
-                  boost::tie(e2, added) = boost::add_edge(v2, v1, boost_graph);
-                  boost::tie(e2_rev, added) =
-                      boost::add_edge(v1, v2, boost_graph);
-                  E_to_id.insert(std::pair<E, int64_t>(e2, data_edges[i].id));
-                  E_to_id.insert(std::pair<E, int64_t>(e2_rev,
-                                                       data_edges[i].id));
-                  capacity[e2] = (int64_t) data_edges[i].reverse_cost;
-                  capacity[e2_rev] = 0;
-                  rev[e2] = e2_rev;
-                  rev[e2_rev] = e2;
-              }
-          }
-      } else {
-          for (size_t i = 0; i < total_tuples; ++i) {
-              V v1 = get_boost_vertex(data_edges[i].source);
-              V v2 = get_boost_vertex(data_edges[i].target);
-              E e, e_rev;
-              boost::tie(e, added) = boost::add_edge(v1, v2, boost_graph);
-              boost::tie(e_rev, added) =
-                  boost::add_edge(v2, v1, boost_graph);
-              E_to_id.insert(std::pair<E, int64_t>(e, data_edges[i].id));
-              E_to_id.insert(std::pair<E, int64_t>(e_rev, data_edges[i].id));
-              capacity[e] =
-                  data_edges[i].cost > 0 ? (int64_t) data_edges[i].cost : 0;
-              capacity[e_rev] = data_edges[i].reverse_cost > 0
-                                ? (int64_t) data_edges[i].reverse_cost : 0;
-              rev[e] = e_rev;
-              rev[e_rev] = e;
-          }
-      }
-      for (int64_t source_id : source_vertices) {
-          V source = get_boost_vertex(source_id);
-          int64_t total = 0;
-          for (auto edge = out_edges(source, boost_graph).first;
-                  edge != out_edges(source, boost_graph).second;
-                  ++edge) {
-             total += capacity[*edge];
-          }
-          E e, e_rev;
-          boost::tie(e, added) =
-              boost::add_edge(supersource, source, boost_graph);
-          boost::tie(e_rev, added) =
-              boost::add_edge(source, supersource, boost_graph);
-
-          capacity[e] = total;
-          /* From sources to supersource has 0 capacity*/
-          capacity[e_rev] = 0;
-          rev[e] = e_rev;
-          rev[e_rev] = e;
-      }
-      for (int64_t sink_id : sink_vertices) {
-          V sink = get_boost_vertex(sink_id);
-          E e, e_rev;
-          boost::tie(e, added) = boost::add_edge(sink, supersink, boost_graph);
-          boost::tie(e_rev, added) =
-              boost::add_edge(supersink, sink, boost_graph);
-          /*
-           * NOTE: int64_t crashes the server
-           */
-          /* From sinks to supersink has maximum capacity*/
-          capacity[e] = (std::numeric_limits<int32_t>::max)();
-          /* From supersink to sinks has 0 capacity*/
-          capacity[e_rev] = 0;
-          rev[e] = e_rev;
-          rev[e_rev] = e;
-      }
-
-  }
-
-  void get_flow_edges(std::vector<pgr_flow_t> &flow_edges) {
-      E_it e, e_end;
-      for (boost::tie(e, e_end) = boost::edges(boost_graph); e != e_end;
-           ++e) {
-          // A supersource/supersink is used internally
-          if (((capacity[*e] - residual_capacity[*e]) > 0) &&
-              ((*e).m_source != source_vertex) &&
-              ((*e).m_target != sink_vertex)) {
-              pgr_flow_t edge;
-              edge.edge = get_edge_id(*e);
-              edge.source = get_vertex_id((*e).m_source);
-              edge.target = get_vertex_id((*e).m_target);
-              edge.flow = capacity[*e] - residual_capacity[*e];
-              edge.residual_capacity = residual_capacity[*e];
-              flow_edges.push_back(edge);
-          }
-      }
-  }
+     int64_t push_relabel() {
+         return boost::push_relabel_max_flow(
+                 graph,
+                 supersource,
+                 supersink);
+     }
+
+     int64_t edmonds_karp() {
+         return boost::edmonds_karp_max_flow(
+                 graph,
+                 supersource,
+                 supersink);
+     }
+
+     int64_t boykov_kolmogorov() {
+         size_t num_v = boost::num_vertices(graph);
+         std::vector<boost::default_color_type> color(num_v);
+         std::vector<int64_t> distance(num_v);
+         return boost::boykov_kolmogorov_max_flow(
+                 graph,
+                 supersource,
+                 supersink);
+     }
+     std::vector<General_path_element_t> edge_disjoint_paths() {
+         size_t num_v = boost::num_vertices(graph);
+         std::vector<boost::default_color_type> color(num_v);
+         std::vector<int64_t> distance(num_v);
+         auto flow = boost::boykov_kolmogorov_max_flow(
+                 graph,
+                 supersource,
+                 supersink);
+         return get_edge_disjoint_paths(flow);
+     }
+
+     PgrFlowGraph(
+             const std::vector<pgr_edge_t> &edges,
+             const std::set<int64_t> &source_vertices,
+             const std::set<int64_t> &sink_vertices,
+             int algorithm);
+
+     PgrFlowGraph(
+             const std::vector<pgr_edge_t> &edges,
+             const std::set<int64_t> &source_vertices,
+             const std::set<int64_t> &sink_vertices,
+             bool directed);
+
+
+     std::vector<pgr_flow_t> get_flow_edges() const;
+
+     std::vector<General_path_element_t> get_edge_disjoint_paths(
+             int64_t flow);
+
+ private:
+     V get_boost_vertex(int64_t id) const {
+         return id_to_V.at(id);
+     }
+
+     int64_t get_vertex_id(V v) const {
+         return V_to_id.at(v);
+     }
+
+     int64_t get_edge_id(E e) const {
+         return E_to_id.at(e);
+     }
+
+     void set_supersource(
+             const std::set<int64_t> &source_vertices);
+     void set_supersink(
+             const std::set<int64_t> &sink_vertices);
+
+     void insert_edges_push_relabel(
+             const std::vector<pgr_edge_t> &edges);
+     void insert_edges(
+             const std::vector<pgr_edge_t> &edges);
+     void insert_edges_edge_disjoint(
+             const std::vector<pgr_edge_t> &edges,
+             bool directed);
+
+     void flow_dfs(
+             V vertex,
+             int64_t path_id,
+             std::vector<std::vector<int64_t> > &paths);
+
+     /*
+      * vertices = {sources} U {sink} U {edges.source} U {edge.target}
+      */
+     template <typename T>
+     void add_vertices(
+             const T &edges,
+             const std::set<int64_t> &source_vertices,
+             const std::set<int64_t> &sink_vertices) {
+         std::set<int64_t> vertices(source_vertices);
+         vertices.insert(sink_vertices.begin(), sink_vertices.end());
+
+         for (const auto e : edges) {
+             vertices.insert(e.source);
+             vertices.insert(e.target);
+         }
+
+         for (const auto id : vertices) {
+             V v = add_vertex(graph);
+             id_to_V.insert(std::pair<int64_t, V>(id, v));
+             V_to_id.insert(std::pair<V, int64_t>(v, id));
+         }
+
+         set_supersource(source_vertices);
+         set_supersink(sink_vertices);
+     }
+
+ private:
+     FlowGraph graph;
+     std::map<int64_t, V> id_to_V;
+     std::map<V, int64_t> V_to_id;
+     std::map<E, int64_t> E_to_id;
+
+
+    /* In multi source flow graphs, a super source is created connected to all sources with "infinite" capacity
+     * The same applies for sinks.
+     * To avoid code repetition, a supersource/sink is used even in the one to one signature.
+     */
+     V supersource;
+     V supersink;
 };
 
 }  // namespace graph
diff --git a/src/max_flow/src/pgr_maximumcardinalitymatching.hpp b/src/max_flow/src/pgr_maximumcardinalitymatching.hpp
index 405880b..6dab935 100644
--- a/src/max_flow/src/pgr_maximumcardinalitymatching.hpp
+++ b/src/max_flow/src/pgr_maximumcardinalitymatching.hpp
@@ -28,10 +28,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 #define SRC_MAX_FLOW_SRC_PGR_MAXIMUMCARDINALITYMATCHING_HPP_
 #pragma once
 
-#include "./../../common/src/pgr_types.h"
-#ifdef unlink
-#undef unlink
-#endif
 
 #include <boost/config.hpp>
 #include <boost/graph/adjacency_list.hpp>
diff --git a/src/max_flow/test/doc-pgr_boykovKolmogorov.result b/src/max_flow/test/doc-pgr_boykovKolmogorov.result
new file mode 100644
index 0000000..3058de9
--- /dev/null
+++ b/src/max_flow/test/doc-pgr_boykovKolmogorov.result
@@ -0,0 +1,90 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_boykovKolmogorov(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , 6, 11
+);
+ seq | edge | start_vid | end_vid | flow | residual_capacity 
+-----+------+-----------+---------+------+-------------------
+   1 |   10 |         5 |      10 |  100 |                30
+   2 |    8 |         6 |       5 |  100 |                30
+   3 |   11 |         6 |      11 |  130 |                 0
+   4 |   12 |        10 |      11 |  100 |                 0
+(4 rows)
+
+-- q2
+SELECT * FROM pgr_boykovKolmogorov(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , 6, ARRAY[1, 3, 11]
+);
+ seq | edge | start_vid | end_vid | flow | residual_capacity 
+-----+------+-----------+---------+------+-------------------
+   1 |    1 |         2 |       1 |   50 |                80
+   2 |    3 |         4 |       3 |   80 |                50
+   3 |    4 |         5 |       2 |   50 |                 0
+   4 |   10 |         5 |      10 |   80 |                50
+   5 |    8 |         6 |       5 |  130 |                 0
+   6 |    9 |         6 |       9 |   80 |                50
+   7 |   11 |         6 |      11 |  130 |                 0
+   8 |   16 |         9 |       4 |   80 |                 0
+   9 |   12 |        10 |      11 |   80 |                20
+(9 rows)
+
+-- q3
+SELECT * FROM pgr_boykovKolmogorov(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , ARRAY[6, 8, 12], 11
+);
+ seq | edge | start_vid | end_vid | flow | residual_capacity 
+-----+------+-----------+---------+------+-------------------
+   1 |   10 |         5 |      10 |  100 |                30
+   2 |    8 |         6 |       5 |  100 |                30
+   3 |   11 |         6 |      11 |  130 |                 0
+   4 |   12 |        10 |      11 |  100 |                 0
+(4 rows)
+
+-- q4
+SELECT * FROM pgr_boykovKolmogorov(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , ARRAY[6, 8, 12], ARRAY[1, 3, 11]
+);
+ seq | edge | start_vid | end_vid | flow | residual_capacity 
+-----+------+-----------+---------+------+-------------------
+   1 |    1 |         2 |       1 |   50 |                80
+   2 |    3 |         4 |       3 |   80 |                50
+   3 |    4 |         5 |       2 |   50 |                 0
+   4 |   10 |         5 |      10 |  100 |                30
+   5 |    8 |         6 |       5 |  130 |                 0
+   6 |    9 |         6 |       9 |   80 |                50
+   7 |   11 |         6 |      11 |  130 |                 0
+   8 |    7 |         8 |       5 |   20 |                30
+   9 |   16 |         9 |       4 |   80 |                 0
+  10 |   12 |        10 |      11 |  100 |                 0
+(10 rows)
+
+-- q5
+ROLLBACK;
+ROLLBACK
diff --git a/src/max_flow/test/doc-pgr_boykovKolmogorov.test.sql b/src/max_flow/test/doc-pgr_boykovKolmogorov.test.sql
new file mode 100644
index 0000000..42b9352
--- /dev/null
+++ b/src/max_flow/test/doc-pgr_boykovKolmogorov.test.sql
@@ -0,0 +1,46 @@
+
+\echo -- q1
+SELECT * FROM pgr_boykovKolmogorov(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , 6, 11
+);
+
+\echo -- q2
+SELECT * FROM pgr_boykovKolmogorov(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , 6, ARRAY[1, 3, 11]
+);
+
+\echo -- q3
+SELECT * FROM pgr_boykovKolmogorov(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , ARRAY[6, 8, 12], 11
+);
+
+\echo -- q4
+SELECT * FROM pgr_boykovKolmogorov(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , ARRAY[6, 8, 12], ARRAY[1, 3, 11]
+);
+
+\echo -- q5
diff --git a/src/max_flow/test/doc-pgr_edgeDisjointPaths.result b/src/max_flow/test/doc-pgr_edgeDisjointPaths.result
index 18a4df2..be2f812 100644
--- a/src/max_flow/test/doc-pgr_edgeDisjointPaths.result
+++ b/src/max_flow/test/doc-pgr_edgeDisjointPaths.result
@@ -1,44 +1,128 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 -- q1
-1|1|3|2
-2|2|2|4
-3|3|5|-1
-4|1|3|5
-5|2|6|8
-6|3|5|-1
+SELECT * FROM pgr_edgeDisjointPaths(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    3, 5
+);
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |    3 |    2 |    1 |        0
+   2 |       1 |        2 |    2 |    4 |    1 |        1
+   3 |       1 |        3 |    5 |   -1 |    0 |        2
+   4 |       2 |        1 |    3 |    5 |    1 |        0
+   5 |       2 |        2 |    6 |    8 |    1 |        1
+   6 |       2 |        3 |    5 |   -1 |    0 |        2
+(6 rows)
+
 -- q2
-1|1|3|2
-2|2|2|4
-3|3|5|-1
-4|1|3|3
-5|2|4|16
-6|3|9|9
-7|4|6|8
-8|5|5|-1
-9|1|3|5
-10|2|6|11
-11|3|11|12
-12|4|10|10
-13|5|5|-1
+SELECT * FROM pgr_edgeDisjointPaths(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    3, 5,
+    directed := false
+);
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |    3 |    2 |    1 |        0
+   2 |       1 |        2 |    2 |    4 |    1 |        1
+   3 |       1 |        3 |    5 |   -1 |    0 |        2
+   4 |       2 |        1 |    3 |    3 |   -1 |        0
+   5 |       2 |        2 |    4 |   16 |    1 |       -1
+   6 |       2 |        3 |    9 |    9 |    1 |        0
+   7 |       2 |        4 |    6 |    8 |    1 |        1
+   8 |       2 |        5 |    5 |   -1 |    0 |        2
+   9 |       3 |        1 |    3 |    5 |    1 |        0
+  10 |       3 |        2 |    6 |   11 |    1 |        1
+  11 |       3 |        3 |   11 |   12 |   -1 |        2
+  12 |       3 |        4 |   10 |   10 |    1 |        1
+  13 |       3 |        5 |    5 |   -1 |    0 |        2
+(13 rows)
+
 -- q3
-1|1|5|3|2
-2|2|5|2|4
-3|3|5|5|-1
-4|1|5|3|5
-5|2|5|6|8
-6|3|5|5|-1
+SELECT * FROM pgr_edgeDisjointPaths(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    3, ARRAY[4, 5, 10]
+);
+ seq | path_id | path_seq | end_vid | node | edge | cost | agg_cost 
+-----+---------+----------+---------+------+------+------+----------
+   1 |       1 |        1 |       4 |    3 |    5 |    1 |        0
+   2 |       1 |        2 |       4 |    6 |    9 |    1 |        1
+   3 |       1 |        3 |       4 |    9 |   16 |    1 |        2
+   4 |       1 |        4 |       4 |    4 |   -1 |    0 |        3
+   5 |       2 |        1 |       5 |    3 |    2 |    1 |        0
+   6 |       2 |        2 |       5 |    2 |    4 |    1 |        1
+   7 |       2 |        3 |       5 |    5 |   -1 |    0 |        2
+   8 |       3 |        1 |       5 |    3 |    5 |    1 |        0
+   9 |       3 |        2 |       5 |    6 |    8 |    1 |        1
+  10 |       3 |        3 |       5 |    5 |   -1 |    0 |        2
+  11 |       4 |        1 |      10 |    3 |    2 |    1 |        0
+  12 |       4 |        2 |      10 |    2 |    4 |    1 |        1
+  13 |       4 |        3 |      10 |    5 |   10 |    1 |        2
+  14 |       4 |        4 |      10 |   10 |   -1 |    0 |        3
+(14 rows)
+
 -- q4
-1|1|3|3|2
-2|2|3|2|4
-3|3|3|5|-1
-4|1|6|6|8
-5|2|6|5|-1
+SELECT * FROM pgr_edgeDisjointPaths(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[3, 6], 5
+);
+ seq | path_id | path_seq | start_vid | node | edge | cost | agg_cost 
+-----+---------+----------+-----------+------+------+------+----------
+   1 |       1 |        1 |         0 |    3 |    2 |    1 |        0
+   2 |       1 |        2 |         0 |    2 |    4 |    1 |        1
+   3 |       1 |        3 |         0 |    5 |   -1 |    0 |        2
+   4 |       2 |        1 |         1 |    3 |    5 |    1 |        0
+   5 |       2 |        2 |         1 |    6 |    8 |    1 |        1
+   6 |       2 |        3 |         1 |    5 |   -1 |    0 |        2
+   7 |       3 |        1 |         2 |    6 |    8 |    1 |        0
+   8 |       3 |        2 |         2 |    5 |   -1 |    0 |        1
+   9 |       4 |        1 |         3 |    6 |    9 |    1 |        0
+  10 |       4 |        2 |         3 |    9 |   16 |    1 |        1
+  11 |       4 |        3 |         3 |    4 |    3 |    1 |        2
+  12 |       4 |        4 |         3 |    3 |    2 |    1 |        3
+  13 |       4 |        5 |         3 |    2 |    4 |    1 |        4
+  14 |       4 |        6 |         3 |    5 |   -1 |    0 |        5
+(14 rows)
+
 -- q5
-1|1|3|5|3|2
-2|2|3|5|2|4
-3|3|3|5|5|-1
-4|1|6|5|6|8
-5|2|6|5|5|-1
-6|1|6|4|6|9
-7|2|6|4|9|16
-8|3|6|4|4|-1
+SELECT * FROM pgr_edgeDisjointPaths(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    ARRAY[3, 6], ARRAY[4, 5, 10]
+);
+ seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost 
+-----+---------+----------+-----------+---------+------+------+------+----------
+   1 |       1 |        1 |         0 |       4 |    3 |    5 |    1 |        0
+   2 |       1 |        2 |         0 |       4 |    6 |    9 |    1 |        1
+   3 |       1 |        3 |         0 |       4 |    9 |   16 |    1 |        2
+   4 |       1 |        4 |         0 |       4 |    4 |   -1 |    0 |        3
+   5 |       2 |        1 |         1 |       5 |    3 |    2 |    1 |        0
+   6 |       2 |        2 |         1 |       5 |    2 |    4 |    1 |        1
+   7 |       2 |        3 |         1 |       5 |    5 |   -1 |    0 |        2
+   8 |       3 |        1 |         2 |       5 |    3 |    5 |    1 |        0
+   9 |       3 |        2 |         2 |       5 |    6 |    8 |    1 |        1
+  10 |       3 |        3 |         2 |       5 |    5 |   -1 |    0 |        2
+  11 |       4 |        1 |         3 |      10 |    3 |    2 |    1 |        0
+  12 |       4 |        2 |         3 |      10 |    2 |    4 |    1 |        1
+  13 |       4 |        3 |         3 |      10 |    5 |   10 |    1 |        2
+  14 |       4 |        4 |         3 |      10 |   10 |   -1 |    0 |        3
+  15 |       5 |        1 |         4 |       4 |    6 |    9 |    1 |        0
+  16 |       5 |        2 |         4 |       4 |    9 |   16 |    1 |        1
+  17 |       5 |        3 |         4 |       4 |    4 |   -1 |    0 |        2
+  18 |       6 |        1 |         5 |       5 |    6 |    8 |    1 |        0
+  19 |       6 |        2 |         5 |       5 |    5 |   -1 |    0 |        1
+  20 |       7 |        1 |         6 |       5 |    6 |    9 |    1 |        0
+  21 |       7 |        2 |         6 |       5 |    9 |   16 |    1 |        1
+  22 |       7 |        3 |         6 |       5 |    4 |    3 |    1 |        2
+  23 |       7 |        4 |         6 |       5 |    3 |    2 |    1 |        3
+  24 |       7 |        5 |         6 |       5 |    2 |    4 |    1 |        4
+  25 |       7 |        6 |         6 |       5 |    5 |   -1 |    0 |        5
+  26 |       8 |        1 |         7 |      10 |    6 |    8 |    1 |        0
+  27 |       8 |        2 |         7 |      10 |    5 |   10 |    1 |        1
+  28 |       8 |        3 |         7 |      10 |   10 |   -1 |    0 |        2
+(28 rows)
+
 -- q6
+ROLLBACK;
+ROLLBACK
diff --git a/src/max_flow/test/doc-pgr_edgeDisjointPaths.test.sql b/src/max_flow/test/doc-pgr_edgeDisjointPaths.test.sql
index db2e395..6442bb0 100644
--- a/src/max_flow/test/doc-pgr_edgeDisjointPaths.test.sql
+++ b/src/max_flow/test/doc-pgr_edgeDisjointPaths.test.sql
@@ -1,34 +1,32 @@
---These tests used the sample data provided here: http://docs.pgrouting.org/2.2/en/doc/src/developer/sampledata.html#sampledata
-
 
 \echo -- q1
 SELECT * FROM pgr_edgeDisjointPaths(
-    'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table',
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
     3, 5
 );
 
 \echo -- q2
 SELECT * FROM pgr_edgeDisjointPaths(
-    'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table',
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
     3, 5,
     directed := false
 );
 
 \echo -- q3
 SELECT * FROM pgr_edgeDisjointPaths(
-    'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table',
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
     3, ARRAY[4, 5, 10]
 );
 
 \echo -- q4
 SELECT * FROM pgr_edgeDisjointPaths(
-    'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table',
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
     ARRAY[3, 6], 5
 );
 
 \echo -- q5
 SELECT * FROM pgr_edgeDisjointPaths(
-    'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table',
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
     ARRAY[3, 6], ARRAY[4, 5, 10]
 );
 
diff --git a/src/max_flow/test/doc-pgr_edmondsKarp.result b/src/max_flow/test/doc-pgr_edmondsKarp.result
new file mode 100644
index 0000000..c24d3bf
--- /dev/null
+++ b/src/max_flow/test/doc-pgr_edmondsKarp.result
@@ -0,0 +1,90 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_edmondsKarp(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , 6, 11
+);
+ seq | edge | start_vid | end_vid | flow | residual_capacity 
+-----+------+-----------+---------+------+-------------------
+   1 |   10 |         5 |      10 |  100 |                30
+   2 |    8 |         6 |       5 |  100 |                30
+   3 |   11 |         6 |      11 |  130 |                 0
+   4 |   12 |        10 |      11 |  100 |                 0
+(4 rows)
+
+-- q2
+SELECT * FROM pgr_edmondsKarp(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+   , 6, ARRAY[1, 3, 11]
+);
+ seq | edge | start_vid | end_vid | flow | residual_capacity 
+-----+------+-----------+---------+------+-------------------
+   1 |    1 |         2 |       1 |   50 |                80
+   2 |    3 |         4 |       3 |   80 |                50
+   3 |    4 |         5 |       2 |   50 |                 0
+   4 |   10 |         5 |      10 |   80 |                50
+   5 |    8 |         6 |       5 |  130 |                 0
+   6 |    9 |         6 |       9 |   80 |                50
+   7 |   11 |         6 |      11 |  130 |                 0
+   8 |   16 |         9 |       4 |   80 |                 0
+   9 |   12 |        10 |      11 |   80 |                20
+(9 rows)
+
+-- q3
+SELECT * FROM pgr_edmondsKarp(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+   , ARRAY[6, 8, 12], 11
+);
+ seq | edge | start_vid | end_vid | flow | residual_capacity 
+-----+------+-----------+---------+------+-------------------
+   1 |   10 |         5 |      10 |  100 |                30
+   2 |    8 |         6 |       5 |  100 |                30
+   3 |   11 |         6 |      11 |  130 |                 0
+   4 |   12 |        10 |      11 |  100 |                 0
+(4 rows)
+
+-- q4
+SELECT * FROM pgr_edmondsKarp(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+   , ARRAY[6, 8, 12], ARRAY[1, 3, 11]
+);
+ seq | edge | start_vid | end_vid | flow | residual_capacity 
+-----+------+-----------+---------+------+-------------------
+   1 |    1 |         2 |       1 |   50 |                80
+   2 |    3 |         4 |       3 |   80 |                50
+   3 |    4 |         5 |       2 |   50 |                 0
+   4 |   10 |         5 |      10 |  100 |                30
+   5 |    8 |         6 |       5 |  130 |                 0
+   6 |    9 |         6 |       9 |   80 |                50
+   7 |   11 |         6 |      11 |  130 |                 0
+   8 |    7 |         8 |       5 |   20 |                30
+   9 |   16 |         9 |       4 |   80 |                 0
+  10 |   12 |        10 |      11 |  100 |                 0
+(10 rows)
+
+-- q5
+ROLLBACK;
+ROLLBACK
diff --git a/src/max_flow/test/doc-pgr_edmondsKarp.test.sql b/src/max_flow/test/doc-pgr_edmondsKarp.test.sql
new file mode 100644
index 0000000..bc07c5c
--- /dev/null
+++ b/src/max_flow/test/doc-pgr_edmondsKarp.test.sql
@@ -0,0 +1,46 @@
+
+\echo -- q1
+SELECT * FROM pgr_edmondsKarp(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , 6, 11
+);
+
+\echo -- q2
+SELECT * FROM pgr_edmondsKarp(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+   , 6, ARRAY[1, 3, 11]
+);
+
+\echo -- q3
+SELECT * FROM pgr_edmondsKarp(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+   , ARRAY[6, 8, 12], 11
+);
+
+\echo -- q4
+SELECT * FROM pgr_edmondsKarp(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+   , ARRAY[6, 8, 12], ARRAY[1, 3, 11]
+);
+
+\echo -- q5
diff --git a/src/max_flow/test/doc-pgr_maxCardinalityMatch.result b/src/max_flow/test/doc-pgr_maxCardinalityMatch.result
new file mode 100644
index 0000000..feb0660
--- /dev/null
+++ b/src/max_flow/test/doc-pgr_maxCardinalityMatch.result
@@ -0,0 +1,40 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_maxCardinalityMatch(
+    'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table'
+);
+ seq | edge | source | target 
+-----+------+--------+--------
+   1 |    1 |      1 |      2
+   2 |    3 |      4 |      3
+   3 |    9 |      6 |      9
+   4 |    6 |      7 |      8
+   5 |   14 |     10 |     13
+   6 |   13 |     11 |     12
+   7 |   17 |     14 |     15
+   8 |   18 |     16 |     17
+(8 rows)
+
+-- q2
+SELECT * FROM pgr_maxCardinalityMatch(
+    'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table',
+    directed := false
+);
+ seq | edge | source | target 
+-----+------+--------+--------
+   1 |    1 |      1 |      2
+   2 |    3 |      3 |      4
+   3 |    9 |      6 |      9
+   4 |    6 |      7 |      8
+   5 |   14 |     10 |     13
+   6 |   13 |     11 |     12
+   7 |   17 |     14 |     15
+   8 |   18 |     16 |     17
+(8 rows)
+
+-- q3
+ROLLBACK;
+ROLLBACK
diff --git a/src/max_flow/test/doc-pgr_maxCardinalityMatch.test.sql b/src/max_flow/test/doc-pgr_maxCardinalityMatch.test.sql
new file mode 100644
index 0000000..457790a
--- /dev/null
+++ b/src/max_flow/test/doc-pgr_maxCardinalityMatch.test.sql
@@ -0,0 +1,13 @@
+
+\echo -- q1
+SELECT * FROM pgr_maxCardinalityMatch(
+    'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table'
+);
+
+\echo -- q2
+SELECT * FROM pgr_maxCardinalityMatch(
+    'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table',
+    directed := false
+);
+
+\echo -- q3
diff --git a/src/max_flow/test/doc-pgr_maxFlow.result b/src/max_flow/test/doc-pgr_maxFlow.result
index 5e29fdb..aadd1fb 100644
--- a/src/max_flow/test/doc-pgr_maxFlow.result
+++ b/src/max_flow/test/doc-pgr_maxFlow.result
@@ -1,9 +1,67 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 -- q1
-280
+SELECT * FROM pgr_maxFlow(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , 6, 11
+);
+ pgr_maxflow 
+-------------
+         230
+(1 row)
+
 -- q2
-410
+SELECT * FROM pgr_maxFlow(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , 6, ARRAY[11, 1, 13]
+);
+ pgr_maxflow 
+-------------
+         340
+(1 row)
+
 -- q3
-280
+SELECT * FROM pgr_maxFlow(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , ARRAY[6, 8, 12], 11
+);
+ pgr_maxflow 
+-------------
+         230
+(1 row)
+
 -- q4
-460
+SELECT * FROM pgr_maxFlow(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , ARRAY[6, 8, 12], ARRAY[1, 3, 11]
+);
+ pgr_maxflow 
+-------------
+         360
+(1 row)
+
 -- q5
+ROLLBACK;
+ROLLBACK
diff --git a/src/max_flow/test/doc-pgr_maxFlow.test.sql b/src/max_flow/test/doc-pgr_maxFlow.test.sql
index e4af301..075b837 100644
--- a/src/max_flow/test/doc-pgr_maxFlow.test.sql
+++ b/src/max_flow/test/doc-pgr_maxFlow.test.sql
@@ -8,11 +8,9 @@ SELECT * FROM pgr_maxFlow(
     'SELECT id,
             source,
             target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
+            capacity,
+            reverse_capacity
+    FROM edge_table'
     , 6, 11
 );
 
@@ -21,11 +19,9 @@ SELECT * FROM pgr_maxFlow(
     'SELECT id,
             source,
             target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
+            capacity,
+            reverse_capacity
+    FROM edge_table'
     , 6, ARRAY[11, 1, 13]
 );
 
@@ -34,11 +30,9 @@ SELECT * FROM pgr_maxFlow(
     'SELECT id,
             source,
             target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
+            capacity,
+            reverse_capacity
+    FROM edge_table'
     , ARRAY[6, 8, 12], 11
 );
 
@@ -47,11 +41,9 @@ SELECT * FROM pgr_maxFlow(
     'SELECT id,
             source,
             target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
+            capacity,
+            reverse_capacity
+    FROM edge_table'
     , ARRAY[6, 8, 12], ARRAY[1, 3, 11]
 );
 
diff --git a/src/max_flow/test/doc-pgr_maxFlowBoykovKolmogorov.result b/src/max_flow/test/doc-pgr_maxFlowBoykovKolmogorov.result
deleted file mode 100644
index 97b9a3d..0000000
--- a/src/max_flow/test/doc-pgr_maxFlowBoykovKolmogorov.result
+++ /dev/null
@@ -1,41 +0,0 @@
--- q1
-1|10|5|10|100|30
-2|8|6|5|100|30
-3|9|6|9|50|80
-4|11|6|11|130|0
-5|15|9|12|50|30
-6|12|10|11|100|0
-7|13|12|11|50|0
--- q2
-1|1|2|1|50|80
-2|3|4|3|80|50
-3|4|5|2|50|0
-4|10|5|10|80|50
-5|5|6|3|50|0
-6|8|6|5|130|0
-7|9|6|9|130|0
-8|11|6|11|130|0
-9|15|9|12|50|30
-10|16|9|4|80|0
-11|12|10|11|80|20
-12|13|12|11|50|0
--- q3
-1|10|5|10|100|30
-2|8|6|5|100|30
-3|11|6|11|130|0
-4|12|10|11|100|0
-5|13|12|11|50|0
--- q4
-1|1|2|1|50|80
-2|3|4|3|80|50
-3|4|5|2|50|0
-4|10|5|10|100|30
-5|5|6|3|50|0
-6|8|6|5|130|0
-7|9|6|9|80|50
-8|11|6|11|130|0
-9|7|8|5|20|30
-10|16|9|4|80|0
-11|12|10|11|100|0
-12|13|12|11|50|0
--- q5
diff --git a/src/max_flow/test/doc-pgr_maxFlowBoykovKolmogorov.test.sql b/src/max_flow/test/doc-pgr_maxFlowBoykovKolmogorov.test.sql
deleted file mode 100644
index 9a3630c..0000000
--- a/src/max_flow/test/doc-pgr_maxFlowBoykovKolmogorov.test.sql
+++ /dev/null
@@ -1,54 +0,0 @@
-
-\echo -- q1
-SELECT * FROM pgr_maxFlowBoykovKolmogorov(
-    'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
-    , 6, 11
-);
-
-\echo -- q2
-SELECT * FROM pgr_maxFlowBoykovKolmogorov(
-    'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
-    , 6, ARRAY[1, 3, 11]
-);
-
-\echo -- q3
-SELECT * FROM pgr_maxFlowBoykovKolmogorov(
-    'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
-    , ARRAY[6, 8, 12], 11
-);
-
-\echo -- q4
-SELECT * FROM pgr_maxFlowBoykovKolmogorov(
-    'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
-    , ARRAY[6, 8, 12], ARRAY[1, 3, 11]
-);
-
-\echo -- q5
diff --git a/src/max_flow/test/doc-pgr_maxFlowEdmondsKarp.result b/src/max_flow/test/doc-pgr_maxFlowEdmondsKarp.result
deleted file mode 100644
index 97b9a3d..0000000
--- a/src/max_flow/test/doc-pgr_maxFlowEdmondsKarp.result
+++ /dev/null
@@ -1,41 +0,0 @@
--- q1
-1|10|5|10|100|30
-2|8|6|5|100|30
-3|9|6|9|50|80
-4|11|6|11|130|0
-5|15|9|12|50|30
-6|12|10|11|100|0
-7|13|12|11|50|0
--- q2
-1|1|2|1|50|80
-2|3|4|3|80|50
-3|4|5|2|50|0
-4|10|5|10|80|50
-5|5|6|3|50|0
-6|8|6|5|130|0
-7|9|6|9|130|0
-8|11|6|11|130|0
-9|15|9|12|50|30
-10|16|9|4|80|0
-11|12|10|11|80|20
-12|13|12|11|50|0
--- q3
-1|10|5|10|100|30
-2|8|6|5|100|30
-3|11|6|11|130|0
-4|12|10|11|100|0
-5|13|12|11|50|0
--- q4
-1|1|2|1|50|80
-2|3|4|3|80|50
-3|4|5|2|50|0
-4|10|5|10|100|30
-5|5|6|3|50|0
-6|8|6|5|130|0
-7|9|6|9|80|50
-8|11|6|11|130|0
-9|7|8|5|20|30
-10|16|9|4|80|0
-11|12|10|11|100|0
-12|13|12|11|50|0
--- q5
diff --git a/src/max_flow/test/doc-pgr_maxFlowEdmondsKarp.test.sql b/src/max_flow/test/doc-pgr_maxFlowEdmondsKarp.test.sql
deleted file mode 100644
index 3de82bc..0000000
--- a/src/max_flow/test/doc-pgr_maxFlowEdmondsKarp.test.sql
+++ /dev/null
@@ -1,57 +0,0 @@
---These tests used the sample data provided here: http://docs.pgrouting.org/2.2/en/doc/src/developer/sampledata.html#sampledata
---The edge in the edge table are augmented with road-like categories for capacity values.
-
-
-\echo -- q1
-SELECT * FROM pgr_maxFlowEdmondsKarp(
-    'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
-    , 6, 11
-);
-
-\echo -- q2
-SELECT * FROM pgr_maxFlowEdmondsKarp(
-    'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
-   , 6, ARRAY[1, 3, 11]
-);
-
-\echo -- q3
-SELECT * FROM pgr_maxFlowEdmondsKarp(
-    'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
-   , ARRAY[6, 8, 12], 11
-);
-
-\echo -- q4
-SELECT * FROM pgr_maxFlowEdmondsKarp(
-    'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
-   , ARRAY[6, 8, 12], ARRAY[1, 3, 11]
-);
-
-\echo -- q5
diff --git a/src/max_flow/test/doc-pgr_maxFlowPushRelabel.result b/src/max_flow/test/doc-pgr_maxFlowPushRelabel.result
deleted file mode 100644
index 86ec9d5..0000000
--- a/src/max_flow/test/doc-pgr_maxFlowPushRelabel.result
+++ /dev/null
@@ -1,48 +0,0 @@
--- q1
-1|10|5|10|100|30
-2|8|6|5|100|30
-3|9|6|9|50|80
-4|11|6|11|130|0
-5|15|9|12|50|30
-6|12|10|11|100|0
-7|13|12|11|50|0
--- q2
-1|1|2|1|130|0
-2|4|2|5|20|80
-3|2|3|2|100|0
-4|3|4|3|50|80
-5|4|5|2|50|0
-6|7|5|8|50|80
-7|10|5|10|100|30
-8|5|6|3|50|0
-9|8|6|5|130|0
-10|9|6|9|100|30
-11|11|6|11|130|0
-12|6|7|8|50|0
-13|6|8|7|50|50
-14|7|8|5|50|0
-15|15|9|12|50|30
-16|16|9|4|50|30
-17|12|10|11|100|0
-18|13|12|11|50|0
--- q3
-1|10|5|10|100|30
-2|8|6|5|100|30
-3|11|6|11|130|0
-4|12|10|11|100|0
-5|13|12|11|50|0
--- q4
-1|1|2|1|50|80
-2|3|4|3|80|50
-3|4|5|2|50|0
-4|10|5|10|100|30
-5|5|6|3|50|0
-6|8|6|5|130|0
-7|9|6|9|30|100
-8|11|6|11|130|0
-9|7|8|5|20|30
-10|16|9|4|80|0
-11|12|10|11|100|0
-12|13|12|11|50|0
-13|15|12|9|50|0
--- q5
diff --git a/src/max_flow/test/doc-pgr_maxFlowPushRelabel.test.sql b/src/max_flow/test/doc-pgr_maxFlowPushRelabel.test.sql
deleted file mode 100644
index 1de13e3..0000000
--- a/src/max_flow/test/doc-pgr_maxFlowPushRelabel.test.sql
+++ /dev/null
@@ -1,59 +0,0 @@
---These tests used the sample data provided here: http://docs.pgrouting.org/2.2/en/doc/src/developer/sampledata.html#sampledata
---The edge in the edge table are augmented with road-like categories for capacity values.
-
-
-
-\echo -- q1
-SELECT * FROM pgr_maxFlowPushRelabel(
-    'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
-    , 6, 11
-);
-
-\echo -- q2
-SELECT * FROM pgr_maxFlowPushRelabel(
-    'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
-    , 6, ARRAY[11, 1, 13]
-);
-
-\echo -- q3
-SELECT * FROM pgr_maxFlowPushRelabel(
-    'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
-    , ARRAY[6, 8, 12], 11
-);
-
-\echo -- q4
-SELECT * FROM pgr_maxFlowPushRelabel(
-    'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id
-    ORDER BY id'
-    , ARRAY[6, 8, 12], ARRAY[1, 3, 11]
-);
-
-\echo -- q5
-
diff --git a/src/max_flow/test/doc-pgr_maximumCardinalityMatching.result b/src/max_flow/test/doc-pgr_maximumCardinalityMatching.result
deleted file mode 100644
index 155e204..0000000
--- a/src/max_flow/test/doc-pgr_maximumCardinalityMatching.result
+++ /dev/null
@@ -1,19 +0,0 @@
--- q1
-1|1|1|2
-2|3|4|3
-3|9|6|9
-4|6|7|8
-5|14|10|13
-6|13|11|12
-7|17|14|15
-8|18|16|17
--- q2
-1|1|1|2
-2|3|3|4
-3|9|6|9
-4|6|7|8
-5|14|10|13
-6|13|11|12
-7|17|14|15
-8|18|16|17
--- q3
diff --git a/src/max_flow/test/doc-pgr_maximumCardinalityMatching.test.sql b/src/max_flow/test/doc-pgr_maximumCardinalityMatching.test.sql
deleted file mode 100644
index 200ae9d..0000000
--- a/src/max_flow/test/doc-pgr_maximumCardinalityMatching.test.sql
+++ /dev/null
@@ -1,15 +0,0 @@
---These tests used the sample data provided here: http://docs.pgrouting.org/2.2/en/doc/src/developer/sampledata.html#sampledata
-
-
-\echo -- q1
-SELECT * FROM pgr_maximumCardinalityMatching(
-    'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table'
-);
-
-\echo -- q2
-SELECT * FROM pgr_maximumCardinalityMatching(
-    'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table',
-    directed := false
-);
-
-\echo -- q3
diff --git a/src/max_flow/test/doc-pgr_pushRelabel.result b/src/max_flow/test/doc-pgr_pushRelabel.result
new file mode 100644
index 0000000..65969cb
--- /dev/null
+++ b/src/max_flow/test/doc-pgr_pushRelabel.result
@@ -0,0 +1,96 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+-- q1
+SELECT * FROM pgr_pushRelabel(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , 6, 11
+);
+ seq | edge | start_vid | end_vid | flow | residual_capacity 
+-----+------+-----------+---------+------+-------------------
+   1 |   10 |         5 |      10 |  100 |                30
+   2 |    8 |         6 |       5 |  100 |                30
+   3 |   11 |         6 |      11 |  130 |                 0
+   4 |   12 |        10 |      11 |  100 |                 0
+(4 rows)
+
+-- q2
+SELECT * FROM pgr_pushRelabel(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , 6, ARRAY[11, 1, 13]
+);
+ seq | edge | start_vid | end_vid | flow | residual_capacity 
+-----+------+-----------+---------+------+-------------------
+   1 |    1 |         2 |       1 |  130 |                 0
+   2 |    2 |         3 |       2 |   80 |                20
+   3 |    3 |         4 |       3 |   80 |                50
+   4 |    4 |         5 |       2 |   50 |                 0
+   5 |    7 |         5 |       8 |   50 |                80
+   6 |   10 |         5 |      10 |   80 |                50
+   7 |    8 |         6 |       5 |  130 |                 0
+   8 |    9 |         6 |       9 |   80 |                50
+   9 |   11 |         6 |      11 |  130 |                 0
+  10 |    6 |         7 |       8 |   50 |                 0
+  11 |    6 |         8 |       7 |   50 |                50
+  12 |    7 |         8 |       5 |   50 |                 0
+  13 |   16 |         9 |       4 |   80 |                 0
+  14 |   12 |        10 |      11 |   80 |                20
+(14 rows)
+
+-- q3
+SELECT * FROM pgr_pushRelabel(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , ARRAY[6, 8, 12], 11
+);
+ seq | edge | start_vid | end_vid | flow | residual_capacity 
+-----+------+-----------+---------+------+-------------------
+   1 |   10 |         5 |      10 |  100 |                30
+   2 |    8 |         6 |       5 |  100 |                30
+   3 |   11 |         6 |      11 |  130 |                 0
+   4 |   12 |        10 |      11 |  100 |                 0
+(4 rows)
+
+-- q4
+SELECT * FROM pgr_pushRelabel(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , ARRAY[6, 8, 12], ARRAY[1, 3, 11]
+);
+ seq | edge | start_vid | end_vid | flow | residual_capacity 
+-----+------+-----------+---------+------+-------------------
+   1 |    1 |         2 |       1 |   50 |                80
+   2 |    3 |         4 |       3 |   80 |                50
+   3 |    4 |         5 |       2 |   50 |                 0
+   4 |   10 |         5 |      10 |  100 |                30
+   5 |    8 |         6 |       5 |  130 |                 0
+   6 |    9 |         6 |       9 |   30 |               100
+   7 |   11 |         6 |      11 |  130 |                 0
+   8 |    7 |         8 |       5 |   20 |                30
+   9 |   16 |         9 |       4 |   80 |                 0
+  10 |   12 |        10 |      11 |  100 |                 0
+  11 |   15 |        12 |       9 |   50 |                 0
+(11 rows)
+
+-- q5
+ROLLBACK;
+ROLLBACK
diff --git a/src/max_flow/test/doc-pgr_pushRelabel.test.sql b/src/max_flow/test/doc-pgr_pushRelabel.test.sql
new file mode 100644
index 0000000..b37f9c1
--- /dev/null
+++ b/src/max_flow/test/doc-pgr_pushRelabel.test.sql
@@ -0,0 +1,51 @@
+--These tests used the sample data provided here: http://docs.pgrouting.org/2.2/en/doc/src/developer/sampledata.html#sampledata
+--The edge in the edge table are augmented with road-like categories for capacity values.
+
+
+
+\echo -- q1
+SELECT * FROM pgr_pushRelabel(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , 6, 11
+);
+
+\echo -- q2
+SELECT * FROM pgr_pushRelabel(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , 6, ARRAY[11, 1, 13]
+);
+
+\echo -- q3
+SELECT * FROM pgr_pushRelabel(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , ARRAY[6, 8, 12], 11
+);
+
+\echo -- q4
+SELECT * FROM pgr_pushRelabel(
+    'SELECT id,
+            source,
+            target,
+            capacity,
+            reverse_capacity
+    FROM edge_table'
+    , ARRAY[6, 8, 12], ARRAY[1, 3, 11]
+);
+
+\echo -- q5
+
diff --git a/src/max_flow/test/pgtap/flow-types-check.sql b/src/max_flow/test/pgtap/flow-types-check.sql
deleted file mode 100644
index 31bd991..0000000
--- a/src/max_flow/test/pgtap/flow-types-check.sql
+++ /dev/null
@@ -1,1398 +0,0 @@
-\i setup.sql
-SET client_min_messages TO WARNING;
-
-SELECT plan(123);
---Boykov-Kolmogorov
-SELECT has_function('pgr_maxflowboykovkolmogorov');
-
-SELECT has_function('pgr_maxflowboykovkolmogorov', ARRAY[
-    'text', 'bigint', 'bigint'
-    ]);
-SELECT has_function('pgr_maxflowboykovkolmogorov', ARRAY[
-    'text', 'anyarray', 'bigint'
-    ]);
-SELECT has_function('pgr_maxflowboykovkolmogorov', ARRAY[
-    'text', 'bigint', 'anyarray'
-    ]);
-SELECT has_function('pgr_maxflowboykovkolmogorov', ARRAY[
-    'text', 'anyarray', 'anyarray'
-    ]);
-
-SELECT function_returns('pgr_maxflowboykovkolmogorov', ARRAY[
-    'text', 'bigint', 'bigint'
-    ], 'setof record');
-SELECT function_returns('pgr_maxflowboykovkolmogorov', ARRAY[
-    'text', 'bigint', 'anyarray'
-    ], 'setof record');
-SELECT function_returns('pgr_maxflowboykovkolmogorov', ARRAY[
-    'text', 'anyarray', 'bigint'
-    ], 'setof record');
-SELECT function_returns('pgr_maxflowboykovkolmogorov', ARRAY[
-    'text', 'anyarray', 'anyarray'
-    ], 'setof record');
-
---Edmonds-Karp
-SELECT has_function('pgr_maxflowedmondskarp');
-
-SELECT has_function('pgr_maxflowedmondskarp', ARRAY[
-    'text', 'bigint', 'bigint'
-    ]);
-SELECT has_function('pgr_maxflowedmondskarp', ARRAY[
-    'text', 'anyarray', 'bigint'
-    ]);
-SELECT has_function('pgr_maxflowedmondskarp', ARRAY[
-    'text', 'bigint', 'anyarray'
-    ]);
-SELECT has_function('pgr_maxflowedmondskarp', ARRAY[
-    'text', 'anyarray', 'anyarray'
-    ]);
-
-SELECT function_returns('pgr_maxflowedmondskarp', ARRAY[
-    'text', 'bigint', 'bigint'
-    ], 'setof record');
-SELECT function_returns('pgr_maxflowedmondskarp', ARRAY[
-    'text', 'bigint', 'anyarray'
-    ], 'setof record');
-SELECT function_returns('pgr_maxflowedmondskarp', ARRAY[
-    'text', 'anyarray', 'bigint'
-    ], 'setof record');
-SELECT function_returns('pgr_maxflowedmondskarp', ARRAY[
-    'text', 'anyarray', 'anyarray'
-    ], 'setof record');
-
---Push-Relabel
-SELECT has_function('pgr_maxflowpushrelabel');
-
-SELECT has_function('pgr_maxflowpushrelabel', ARRAY[
-    'text', 'bigint', 'bigint'
-    ]);
-SELECT has_function('pgr_maxflowpushrelabel', ARRAY[
-    'text', 'anyarray', 'bigint'
-    ]);
-SELECT has_function('pgr_maxflowpushrelabel', ARRAY[
-    'text', 'bigint', 'anyarray'
-    ]);
-SELECT has_function('pgr_maxflowpushrelabel', ARRAY[
-    'text', 'anyarray', 'anyarray'
-    ]);
-
-
-SELECT function_returns('pgr_maxflowpushrelabel', ARRAY[
-    'text', 'bigint', 'bigint'
-    ], 'setof record');
-SELECT function_returns('pgr_maxflowpushrelabel', ARRAY[
-    'text', 'bigint', 'anyarray'
-    ], 'setof record');
-SELECT function_returns('pgr_maxflowpushrelabel', ARRAY[
-    'text', 'anyarray', 'bigint'
-    ], 'setof record');
-SELECT function_returns('pgr_maxflowpushrelabel', ARRAY[
-    'text', 'anyarray', 'anyarray'
-    ], 'setof record');
-
---pgr_max_flow
-SELECT has_function('pgr_maxflow');
-
-SELECT has_function('pgr_maxflow', ARRAY[
-    'text', 'bigint', 'bigint'
-    ]);
-SELECT has_function('pgr_maxflow', ARRAY[
-    'text', 'anyarray', 'bigint'
-    ]);
-SELECT has_function('pgr_maxflow', ARRAY[
-    'text', 'bigint', 'anyarray'
-    ]);
-SELECT has_function('pgr_maxflow', ARRAY[
-    'text', 'anyarray', 'anyarray'
-    ]);
-
-
-SELECT function_returns('pgr_maxflow', ARRAY[
-    'text', 'bigint', 'bigint'
-    ], 'bigint');
-SELECT function_returns('pgr_maxflow', ARRAY[
-    'text', 'bigint', 'anyarray'
-    ], 'bigint');
-SELECT function_returns('pgr_maxflow', ARRAY[
-    'text', 'anyarray', 'bigint'
-    ], 'bigint');
-SELECT function_returns('pgr_maxflow', ARRAY[
-    'text', 'anyarray', 'anyarray'
-    ], 'bigint');
-
--- Push-relabel
-PREPARE pl_q_o2o AS
-SELECT pg_typeof(seq)::text AS t1, pg_typeof(edge_id)::text AS t2,
-    pg_typeof(source)::text AS t3, pg_typeof(target)::text AS t4,
-    pg_typeof(flow)::text AS t5, pg_typeof(residual_capacity)::TEXT AS t6
-    FROM (
-        SELECT * FROM pgr_maxflowpushrelabel(
-            'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-            2, 3) ) AS a
-    limit 1
-;
-PREPARE pl_v_o2o AS
-SELECT  'integer'::text AS t1,'bigint'::text AS t2,
-    'bigint'::text AS t3, 'bigint'::text AS t4,
-    'bigint'::text AS t5, 'bigint'::text AS t6;
-
-PREPARE pl_q_o2m AS
-SELECT pg_typeof(seq)::text AS t1, pg_typeof(edge_id)::text AS t2,
-    pg_typeof(source)::text AS t3, pg_typeof(target)::text AS t4,
-    pg_typeof(flow)::text AS t5, pg_typeof(residual_capacity)::TEXT AS t6
-    FROM (
-        SELECT * FROM pgr_maxflowpushrelabel(
-            'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-            2, ARRAY[3]) ) AS a
-    limit 1
-;
-PREPARE pl_v_o2m AS
-SELECT  'integer'::text AS t1,'bigint'::text AS t2,
-    'bigint'::text AS t3, 'bigint'::text AS t4,
-    'bigint'::text AS t5, 'bigint'::text AS t6;
-
-
-PREPARE pl_q_m2o AS
-SELECT pg_typeof(seq)::text AS t1, pg_typeof(edge_id)::text AS t2,
-    pg_typeof(source)::text AS t3, pg_typeof(target)::text AS t4,
-    pg_typeof(flow)::text AS t5, pg_typeof(residual_capacity)::TEXT AS t6
-    FROM (
-        SELECT * FROM pgr_maxflowpushrelabel(
-            'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-            ARRAY[2], 3) ) AS a
-    limit 1
-;
-PREPARE pl_v_m2o AS
-SELECT  'integer'::text AS t1,'bigint'::text AS t2,
-    'bigint'::text AS t3, 'bigint'::text AS t4,
-    'bigint'::text AS t5, 'bigint'::text AS t6;
-
-PREPARE pl_q_m2m AS
-SELECT pg_typeof(seq)::text AS t1, pg_typeof(edge_id)::text AS t2,
-    pg_typeof(source)::text AS t3, pg_typeof(target)::text AS t4,
-    pg_typeof(flow)::text AS t5, pg_typeof(residual_capacity)::TEXT AS t6
-    FROM (
-        SELECT * FROM pgr_maxflowpushrelabel(
-            'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-            ARRAY[2], ARRAY[3]) ) AS a
-    limit 1
-;
-PREPARE pl_v_m2m AS
-SELECT  'integer'::text AS t1,'bigint'::text AS t2,
-    'bigint'::text AS t3, 'bigint'::text AS t4,
-    'bigint'::text AS t5, 'bigint'::text AS t6;
-
--- Edmonds-Karp
-PREPARE ek_q_o2o AS
-SELECT pg_typeof(seq)::text AS t1, pg_typeof(edge_id)::text AS t2,
-    pg_typeof(source)::text AS t3, pg_typeof(target)::text AS t4,
-    pg_typeof(flow)::text AS t5, pg_typeof(residual_capacity)::TEXT AS t6
-    FROM (
-        SELECT * FROM pgr_maxflowedmondskarp(
-            'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-            2, 3) ) AS a
-    limit 1
-;
-PREPARE ek_v_o2o AS
-SELECT  'integer'::text AS t1,'bigint'::text AS t2,
-    'bigint'::text AS t3, 'bigint'::text AS t4,
-    'bigint'::text AS t5, 'bigint'::text AS t6;
-
-PREPARE ek_q_o2m AS
-SELECT pg_typeof(seq)::text AS t1, pg_typeof(edge_id)::text AS t2,
-    pg_typeof(source)::text AS t3, pg_typeof(target)::text AS t4,
-    pg_typeof(flow)::text AS t5, pg_typeof(residual_capacity)::TEXT AS t6
-    FROM (
-        SELECT * FROM pgr_maxflowedmondskarp(
-            'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-            2, ARRAY[3]) ) AS a
-    limit 1
-;
-PREPARE ek_v_o2m AS
-SELECT  'integer'::text AS t1,'bigint'::text AS t2,
-    'bigint'::text AS t3, 'bigint'::text AS t4,
-    'bigint'::text AS t5, 'bigint'::text AS t6;
-
-
-PREPARE ek_q_m2o AS
-SELECT pg_typeof(seq)::text AS t1, pg_typeof(edge_id)::text AS t2,
-    pg_typeof(source)::text AS t3, pg_typeof(target)::text AS t4,
-    pg_typeof(flow)::text AS t5, pg_typeof(residual_capacity)::TEXT AS t6
-    FROM (
-        SELECT * FROM pgr_maxflowedmondskarp(
-            'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-            ARRAY[2], 3) ) AS a
-    limit 1
-;
-PREPARE ek_v_m2o AS
-SELECT  'integer'::text AS t1,'bigint'::text AS t2,
-    'bigint'::text AS t3, 'bigint'::text AS t4,
-    'bigint'::text AS t5, 'bigint'::text AS t6;
-
-PREPARE ek_q_m2m AS
-SELECT pg_typeof(seq)::text AS t1, pg_typeof(edge_id)::text AS t2,
-    pg_typeof(source)::text AS t3, pg_typeof(target)::text AS t4,
-    pg_typeof(flow)::text AS t5, pg_typeof(residual_capacity)::TEXT AS t6
-    FROM (
-        SELECT * FROM pgr_maxflowedmondskarp(
-            'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-            ARRAY[2], ARRAY[3]) ) AS a
-    limit 1
-;
-PREPARE ek_v_m2m AS
-SELECT  'integer'::text AS t1,'bigint'::text AS t2,
-    'bigint'::text AS t3, 'bigint'::text AS t4,
-    'bigint'::text AS t5, 'bigint'::text AS t6;
-
--- Boykov-Kolmogorov
-PREPARE bk_q_o2o AS
-SELECT pg_typeof(seq)::text AS t1, pg_typeof(edge_id)::text AS t2,
-    pg_typeof(source)::text AS t3, pg_typeof(target)::text AS t4,
-    pg_typeof(flow)::text AS t5, pg_typeof(residual_capacity)::TEXT AS t6
-    FROM (
-        SELECT * FROM pgr_maxflowboykovkolmogorov(
-            'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-            2, 3) ) AS a
-    limit 1
-;
-PREPARE bk_v_o2o AS
-SELECT  'integer'::text AS t1,'bigint'::text AS t2,
-    'bigint'::text AS t3, 'bigint'::text AS t4,
-    'bigint'::text AS t5, 'bigint'::text AS t6;
-
-PREPARE bk_q_o2m AS
-SELECT pg_typeof(seq)::text AS t1, pg_typeof(edge_id)::text AS t2,
-    pg_typeof(source)::text AS t3, pg_typeof(target)::text AS t4,
-    pg_typeof(flow)::text AS t5, pg_typeof(residual_capacity)::TEXT AS t6
-    FROM (
-        SELECT * FROM pgr_maxflowboykovkolmogorov(
-            'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-            2, ARRAY[3]) ) AS a
-    limit 1
-;
-PREPARE bk_v_o2m AS
-SELECT  'integer'::text AS t1,'bigint'::text AS t2,
-    'bigint'::text AS t3, 'bigint'::text AS t4,
-    'bigint'::text AS t5, 'bigint'::text AS t6;
-
-
-PREPARE bk_q_m2o AS
-SELECT pg_typeof(seq)::text AS t1, pg_typeof(edge_id)::text AS t2,
-    pg_typeof(source)::text AS t3, pg_typeof(target)::text AS t4,
-    pg_typeof(flow)::text AS t5, pg_typeof(residual_capacity)::TEXT AS t6
-    FROM (
-        SELECT * FROM pgr_maxflowboykovkolmogorov(
-            'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-            ARRAY[2], 3) ) AS a
-    limit 1
-;
-PREPARE bk_v_m2o AS
-SELECT  'integer'::text AS t1,'bigint'::text AS t2,
-    'bigint'::text AS t3, 'bigint'::text AS t4,
-    'bigint'::text AS t5, 'bigint'::text AS t6;
-
-PREPARE bk_q_m2m AS
-SELECT pg_typeof(seq)::text AS t1, pg_typeof(edge_id)::text AS t2,
-    pg_typeof(source)::text AS t3, pg_typeof(target)::text AS t4,
-    pg_typeof(flow)::text AS t5, pg_typeof(residual_capacity)::TEXT AS t6
-    FROM (
-        SELECT * FROM pgr_maxflowboykovkolmogorov(
-            'SELECT id,
-            source,
-            target,
-            c1.capacity as capacity,
-            c2.capacity as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-            ARRAY[2], ARRAY[3]) ) AS a
-    limit 1
-;
-PREPARE bk_v_m2m AS
-SELECT  'integer'::text AS t1,'bigint'::text AS t2,
-    'bigint'::text AS t3, 'bigint'::text AS t4,
-    'bigint'::text AS t5, 'bigint'::text AS t6;
-
--- testing
--- Push-relabel
-SELECT set_eq('pl_v_o2o', 'pl_q_o2o','1 to 1: Expected returning, columns names & types');
-SELECT set_eq('pl_v_o2m', 'pl_q_o2m','1 to many: Expected returning, columns names & types');
-SELECT set_eq('pl_v_m2o', 'pl_q_m2o','many to 1: Expected returning, columns names & types');
-SELECT set_eq('pl_v_m2m', 'pl_q_m2m','many to many: Expected returning, columns names & types');
-
--- Edmonds-Karp
-SELECT set_eq('ek_v_o2o', 'ek_q_o2o','1 to 1: Expected returning, columns names & types');
-SELECT set_eq('ek_v_o2m', 'ek_q_o2m','1 to many: Expected returning, columns names & types');
-SELECT set_eq('ek_v_m2o', 'ek_q_m2o','many to 1: Expected returning, columns names & types');
-SELECT set_eq('ek_v_m2m', 'ek_q_m2m','many to many: Expected returning, columns names & types');
-
--- Boykov-Kolmogorov
-SELECT set_eq('bk_v_o2o', 'bk_q_o2o','1 to 1: Expected returning, columns names & types');
-SELECT set_eq('bk_v_o2m', 'bk_q_o2m','1 to many: Expected returning, columns names & types');
-SELECT set_eq('bk_v_m2o', 'bk_q_m2o','many to 1: Expected returning, columns names & types');
-SELECT set_eq('bk_v_m2m', 'bk_q_m2m','many to many: Expected returning, columns names & types');
-
-
--- Testing inner query
-
--- Push-relabel
--- id is ANY-INTEGER
-PREPARE pl_id1 AS
-SELECT * FROM pgr_maxflowpushrelabel(
-    'SELECT id::SMALLINT,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE pl_id2 AS
-SELECT * FROM pgr_maxflowpushrelabel(
-    'SELECT id::BIGINT,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE pl_id3 AS
-SELECT * FROM pgr_maxflowpushrelabel(
-    'SELECT id::REAL,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE pl_id4 AS
-SELECT * FROM pgr_maxflowpushrelabel(
-    'SELECT id::FLOAT,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE pl_id5 AS
-SELECT * FROM pgr_maxflowpushrelabel(
-    'SELECT id::TEXT,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-
-SELECT lives_ok('pl_id1',
-    'lives because id is SMALLINT');
-SELECT lives_ok('pl_id2',
-    'lives because id is BIGINT');
-SELECT throws_ok('pl_id3',
-    'XX000','Unexpected Column ''id'' type. Expected ANY-INTEGER',
-    'throws because id is REAL');
-SELECT throws_ok('pl_id4',
-    'XX000','Unexpected Column ''id'' type. Expected ANY-INTEGER',
-    'throws because id is FLOAT');
-SELECT throws_ok('pl_id5',
-    'XX000','Unexpected Column ''id'' type. Expected ANY-INTEGER',
-    'throws because id is TEXT');
-
--- source is ANY-INTEGER
-PREPARE pl_s1 AS
-SELECT * FROM pgr_maxflowpushrelabel(
-    'SELECT id::INTEGER,
-            source::SMALLINT,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE pl_s2 AS
-SELECT * FROM pgr_maxflowpushrelabel(
-    'SELECT id::INTEGER,
-            source::BIGINT,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE pl_s3 AS
-SELECT * FROM pgr_maxflowpushrelabel(
-    'SELECT id::INTEGER,
-            source::REAL,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE pl_s4 AS
-SELECT * FROM pgr_maxflowpushrelabel(
-    'SELECT id::INTEGER,
-            source::FLOAT,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE pl_s5 AS
-SELECT * FROM pgr_maxflowpushrelabel(
-    'SELECT id::INTEGER,
-            source::TEXT,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-
-SELECT lives_ok('pl_s1',
-    'lives because source is SMALLINT');
-SELECT lives_ok('pl_s2',
-    'lives because source is BIGINT');
-SELECT throws_ok('pl_s3',
-    'XX000','Unexpected Column ''source'' type. Expected ANY-INTEGER',
-    'throws because source is REAL');
-SELECT throws_ok('pl_s4',
-    'XX000','Unexpected Column ''source'' type. Expected ANY-INTEGER',
-    'throws because source is FLOAT');
-SELECT throws_ok('pl_s5',
-    'XX000','Unexpected Column ''source'' type. Expected ANY-INTEGER',
-    'throws because source is TEXT');
-        
--- target is ANY-INTEGER
-PREPARE pl_t1 AS
-SELECT * FROM pgr_maxflowpushrelabel(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::SMALLINT,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE pl_t2 AS
-SELECT * FROM pgr_maxflowpushrelabel(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::BIGINT,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE pl_t3 AS
-SELECT * FROM pgr_maxflowpushrelabel(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::REAL,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE pl_t4 AS
-SELECT * FROM pgr_maxflowpushrelabel(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::FLOAT,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE pl_t5 AS
-SELECT * FROM pgr_maxflowpushrelabel(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::TEXT,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-
-SELECT lives_ok('pl_t1',
-    'lives because target is SMALLINT');
-SELECT lives_ok('pl_t2',
-    'lives because target is BIGINT');
-SELECT throws_ok('pl_t3',
-    'XX000','Unexpected Column ''target'' type. Expected ANY-INTEGER',
-    'throws because target is REAL');
-SELECT throws_ok('pl_t4',
-    'XX000','Unexpected Column ''target'' type. Expected ANY-INTEGER',
-    'throws because target is FLOAT');
-SELECT throws_ok('pl_t5',
-    'XX000','Unexpected Column ''target'' type. Expected ANY-INTEGER',
-    'throws because target is TEXT');
-
--- capacity is ANY-INTEGER
-PREPARE pl_c1 AS
-SELECT * FROM pgr_maxflowpushrelabel(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::SMALLINT as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE pl_c2 AS
-SELECT * FROM pgr_maxflowpushrelabel(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::BIGINT as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE pl_c3 AS
-SELECT * FROM pgr_maxflowpushrelabel(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::REAL as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE pl_c4 AS
-SELECT * FROM pgr_maxflowpushrelabel(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::FLOAT as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE pl_c5 AS
-SELECT * FROM pgr_maxflowpushrelabel(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::TEXT as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-
-SELECT lives_ok('pl_c1',
-    'lives because capacity is SMALLINT');
-SELECT lives_ok('pl_c2',
-    'lives because capacity is BIGINT');
-SELECT throws_ok('pl_c3',
-    'XX000','Unexpected Column ''capacity'' type. Expected ANY-INTEGER',
-    'throws because capacity is REAL');
-SELECT throws_ok('pl_c4',
-    'XX000','Unexpected Column ''capacity'' type. Expected ANY-INTEGER',
-    'throws because capacity is FLOAT');
-SELECT throws_ok('pl_c5',
-    'XX000','Unexpected Column ''capacity'' type. Expected ANY-INTEGER',
-    'throws because capacity is TEXT');
-
--- reverse_capacity is ANY-INTEGER
-PREPARE pl_rc1 AS
-SELECT * FROM pgr_maxflowpushrelabel(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::SMALLINT as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE pl_rc2 AS
-SELECT * FROM pgr_maxflowpushrelabel(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::BIGINT as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE pl_rc3 AS
-SELECT * FROM pgr_maxflowpushrelabel(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::REAL as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE pl_rc4 AS
-SELECT * FROM pgr_maxflowpushrelabel(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::FLOAT as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE pl_rc5 AS
-SELECT * FROM pgr_maxflowpushrelabel(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::TEXT as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-
-SELECT lives_ok('pl_rc1',
-    'lives because reverse_capacity is SMALLINT');
-SELECT lives_ok('pl_rc2',
-    'lives because reverse_capacity is BIGINT');
-SELECT throws_ok('pl_rc3',
-    'XX000','Unexpected Column ''reverse_capacity'' type. Expected ANY-INTEGER',
-    'throws because reverse_capacity is REAL');
-SELECT throws_ok('pl_rc4',
-    'XX000','Unexpected Column ''reverse_capacity'' type. Expected ANY-INTEGER',
-    'throws because reverse_capacity is FLOAT');
-SELECT throws_ok('pl_rc5',
-    'XX000','Unexpected Column ''reverse_capacity'' type. Expected ANY-INTEGER',
-    'throws because reverse_capacity is TEXT');
-
-
--- Edmonds-Karp
--- id is ANY-INTEGER
-PREPARE ek_id1 AS
-SELECT * FROM pgr_maxflowedmondskarp(
-    'SELECT id::SMALLINT,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE ek_id2 AS
-SELECT * FROM pgr_maxflowedmondskarp(
-    'SELECT id::BIGINT,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE ek_id3 AS
-SELECT * FROM pgr_maxflowedmondskarp(
-    'SELECT id::REAL,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE ek_id4 AS
-SELECT * FROM pgr_maxflowedmondskarp(
-    'SELECT id::FLOAT,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE ek_id5 AS
-SELECT * FROM pgr_maxflowedmondskarp(
-    'SELECT id::TEXT,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-
-SELECT lives_ok('ek_id1',
-    'lives because id is SMALLINT');
-SELECT lives_ok('ek_id2',
-    'lives because id is BIGINT');
-SELECT throws_ok('ek_id3',
-    'XX000','Unexpected Column ''id'' type. Expected ANY-INTEGER',
-    'throws because id is REAL');
-SELECT throws_ok('ek_id4',
-    'XX000','Unexpected Column ''id'' type. Expected ANY-INTEGER',
-    'throws because id is FLOAT');
-SELECT throws_ok('ek_id5',
-    'XX000','Unexpected Column ''id'' type. Expected ANY-INTEGER',
-    'throws because id is TEXT');
-
--- source is ANY-INTEGER
-PREPARE ek_s1 AS
-SELECT * FROM pgr_maxflowedmondskarp(
-    'SELECT id::INTEGER,
-            source::SMALLINT,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE ek_s2 AS
-SELECT * FROM pgr_maxflowedmondskarp(
-    'SELECT id::INTEGER,
-            source::BIGINT,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE ek_s3 AS
-SELECT * FROM pgr_maxflowedmondskarp(
-    'SELECT id::INTEGER,
-            source::REAL,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE ek_s4 AS
-SELECT * FROM pgr_maxflowedmondskarp(
-    'SELECT id::INTEGER,
-            source::FLOAT,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE ek_s5 AS
-SELECT * FROM pgr_maxflowedmondskarp(
-    'SELECT id::INTEGER,
-            source::TEXT,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-
-SELECT lives_ok('ek_s1',
-    'lives because source is SMALLINT');
-SELECT lives_ok('ek_s2',
-    'lives because source is BIGINT');
-SELECT throws_ok('ek_s3',
-    'XX000','Unexpected Column ''source'' type. Expected ANY-INTEGER',
-    'throws because source is REAL');
-SELECT throws_ok('ek_s4',
-    'XX000','Unexpected Column ''source'' type. Expected ANY-INTEGER',
-    'throws because source is FLOAT');
-SELECT throws_ok('ek_s5',
-    'XX000','Unexpected Column ''source'' type. Expected ANY-INTEGER',
-    'throws because source is TEXT');
-        
--- target is ANY-INTEGER
-PREPARE ek_t1 AS
-SELECT * FROM pgr_maxflowedmondskarp(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::SMALLINT,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE ek_t2 AS
-SELECT * FROM pgr_maxflowedmondskarp(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::BIGINT,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE ek_t3 AS
-SELECT * FROM pgr_maxflowedmondskarp(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::REAL,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE ek_t4 AS
-SELECT * FROM pgr_maxflowedmondskarp(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::FLOAT,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE ek_t5 AS
-SELECT * FROM pgr_maxflowedmondskarp(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::TEXT,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-
-SELECT lives_ok('ek_t1',
-    'lives because target is SMALLINT');
-SELECT lives_ok('ek_t2',
-    'lives because target is BIGINT');
-SELECT throws_ok('ek_t3',
-    'XX000','Unexpected Column ''target'' type. Expected ANY-INTEGER',
-    'throws because target is REAL');
-SELECT throws_ok('ek_t4',
-    'XX000','Unexpected Column ''target'' type. Expected ANY-INTEGER',
-    'throws because target is FLOAT');
-SELECT throws_ok('ek_t5',
-    'XX000','Unexpected Column ''target'' type. Expected ANY-INTEGER',
-    'throws because target is TEXT');
-
--- capacity is ANY-INTEGER
-PREPARE ek_c1 AS
-SELECT * FROM pgr_maxflowedmondskarp(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::SMALLINT as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE ek_c2 AS
-SELECT * FROM pgr_maxflowedmondskarp(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::BIGINT as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE ek_c3 AS
-SELECT * FROM pgr_maxflowedmondskarp(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::REAL as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE ek_c4 AS
-SELECT * FROM pgr_maxflowedmondskarp(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::FLOAT as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE ek_c5 AS
-SELECT * FROM pgr_maxflowedmondskarp(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::TEXT as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-
-SELECT lives_ok('ek_c1',
-    'lives because capacity is SMALLINT');
-SELECT lives_ok('ek_c2',
-    'lives because capacity is BIGINT');
-SELECT throws_ok('ek_c3',
-    'XX000','Unexpected Column ''capacity'' type. Expected ANY-INTEGER',
-    'throws because capacity is REAL');
-SELECT throws_ok('ek_c4',
-    'XX000','Unexpected Column ''capacity'' type. Expected ANY-INTEGER',
-    'throws because capacity is FLOAT');
-SELECT throws_ok('ek_c5',
-    'XX000','Unexpected Column ''capacity'' type. Expected ANY-INTEGER',
-    'throws because capacity is TEXT');
-
--- reverse_capacity is ANY-INTEGER
-PREPARE ek_rc1 AS
-SELECT * FROM pgr_maxflowedmondskarp(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::SMALLINT as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE ek_rc2 AS
-SELECT * FROM pgr_maxflowedmondskarp(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::BIGINT as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE ek_rc3 AS
-SELECT * FROM pgr_maxflowedmondskarp(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::REAL as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE ek_rc4 AS
-SELECT * FROM pgr_maxflowedmondskarp(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::FLOAT as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE ek_rc5 AS
-SELECT * FROM pgr_maxflowedmondskarp(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::TEXT as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-
-SELECT lives_ok('ek_rc1',
-    'lives because reverse_capacity is SMALLINT');
-SELECT lives_ok('ek_rc2',
-    'lives because reverse_capacity is BIGINT');
-SELECT throws_ok('ek_rc3',
-    'XX000','Unexpected Column ''reverse_capacity'' type. Expected ANY-INTEGER',
-    'throws because reverse_capacity is REAL');
-SELECT throws_ok('ek_rc4',
-    'XX000','Unexpected Column ''reverse_capacity'' type. Expected ANY-INTEGER',
-    'throws because reverse_capacity is FLOAT');
-SELECT throws_ok('ek_rc5',
-    'XX000','Unexpected Column ''reverse_capacity'' type. Expected ANY-INTEGER',
-    'throws because reverse_capacity is TEXT');
-
--- Edmonds-Karp
--- id is ANY-INTEGER
-PREPARE bk_id1 AS
-SELECT * FROM pgr_maxflowboykovkolmogorov(
-    'SELECT id::SMALLINT,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE bk_id2 AS
-SELECT * FROM pgr_maxflowboykovkolmogorov(
-    'SELECT id::BIGINT,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE bk_id3 AS
-SELECT * FROM pgr_maxflowboykovkolmogorov(
-    'SELECT id::REAL,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE bk_id4 AS
-SELECT * FROM pgr_maxflowboykovkolmogorov(
-    'SELECT id::FLOAT,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE bk_id5 AS
-SELECT * FROM pgr_maxflowboykovkolmogorov(
-    'SELECT id::TEXT,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-
-SELECT lives_ok('bk_id1',
-    'lives because id is SMALLINT');
-SELECT lives_ok('bk_id2',
-    'lives because id is BIGINT');
-SELECT throws_ok('bk_id3',
-    'XX000','Unexpected Column ''id'' type. Expected ANY-INTEGER',
-    'throws because id is REAL');
-SELECT throws_ok('bk_id4',
-    'XX000','Unexpected Column ''id'' type. Expected ANY-INTEGER',
-    'throws because id is FLOAT');
-SELECT throws_ok('bk_id5',
-    'XX000','Unexpected Column ''id'' type. Expected ANY-INTEGER',
-    'throws because id is TEXT');
-
--- source is ANY-INTEGER
-PREPARE bk_s1 AS
-SELECT * FROM pgr_maxflowboykovkolmogorov(
-    'SELECT id::INTEGER,
-            source::SMALLINT,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE bk_s2 AS
-SELECT * FROM pgr_maxflowboykovkolmogorov(
-    'SELECT id::INTEGER,
-            source::BIGINT,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE bk_s3 AS
-SELECT * FROM pgr_maxflowboykovkolmogorov(
-    'SELECT id::INTEGER,
-            source::REAL,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE bk_s4 AS
-SELECT * FROM pgr_maxflowboykovkolmogorov(
-    'SELECT id::INTEGER,
-            source::FLOAT,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE bk_s5 AS
-SELECT * FROM pgr_maxflowboykovkolmogorov(
-    'SELECT id::INTEGER,
-            source::TEXT,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-
-SELECT lives_ok('bk_s1',
-    'lives because source is SMALLINT');
-SELECT lives_ok('bk_s2',
-    'lives because source is BIGINT');
-SELECT throws_ok('bk_s3',
-    'XX000','Unexpected Column ''source'' type. Expected ANY-INTEGER',
-    'throws because source is REAL');
-SELECT throws_ok('bk_s4',
-    'XX000','Unexpected Column ''source'' type. Expected ANY-INTEGER',
-    'throws because source is FLOAT');
-SELECT throws_ok('bk_s5',
-    'XX000','Unexpected Column ''source'' type. Expected ANY-INTEGER',
-    'throws because source is TEXT');
-        
--- target is ANY-INTEGER
-PREPARE bk_t1 AS
-SELECT * FROM pgr_maxflowboykovkolmogorov(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::SMALLINT,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE bk_t2 AS
-SELECT * FROM pgr_maxflowboykovkolmogorov(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::BIGINT,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE bk_t3 AS
-SELECT * FROM pgr_maxflowboykovkolmogorov(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::REAL,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE bk_t4 AS
-SELECT * FROM pgr_maxflowboykovkolmogorov(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::FLOAT,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE bk_t5 AS
-SELECT * FROM pgr_maxflowboykovkolmogorov(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::TEXT,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-
-SELECT lives_ok('bk_t1',
-    'lives because target is SMALLINT');
-SELECT lives_ok('bk_t2',
-    'lives because target is BIGINT');
-SELECT throws_ok('bk_t3',
-    'XX000','Unexpected Column ''target'' type. Expected ANY-INTEGER',
-    'throws because target is REAL');
-SELECT throws_ok('bk_t4',
-    'XX000','Unexpected Column ''target'' type. Expected ANY-INTEGER',
-    'throws because target is FLOAT');
-SELECT throws_ok('bk_t5',
-    'XX000','Unexpected Column ''target'' type. Expected ANY-INTEGER',
-    'throws because target is TEXT');
-
--- capacity is ANY-INTEGER
-PREPARE bk_c1 AS
-SELECT * FROM pgr_maxflowboykovkolmogorov(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::SMALLINT as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE bk_c2 AS
-SELECT * FROM pgr_maxflowboykovkolmogorov(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::BIGINT as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE bk_c3 AS
-SELECT * FROM pgr_maxflowboykovkolmogorov(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::REAL as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE bk_c4 AS
-SELECT * FROM pgr_maxflowboykovkolmogorov(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::FLOAT as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE bk_c5 AS
-SELECT * FROM pgr_maxflowboykovkolmogorov(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::TEXT as capacity,
-            c2.capacity::INTEGER as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-
-SELECT lives_ok('bk_c1',
-    'lives because capacity is SMALLINT');
-SELECT lives_ok('bk_c2',
-    'lives because capacity is BIGINT');
-SELECT throws_ok('bk_c3',
-    'XX000','Unexpected Column ''capacity'' type. Expected ANY-INTEGER',
-    'throws because capacity is REAL');
-SELECT throws_ok('bk_c4',
-    'XX000','Unexpected Column ''capacity'' type. Expected ANY-INTEGER',
-    'throws because capacity is FLOAT');
-SELECT throws_ok('bk_c5',
-    'XX000','Unexpected Column ''capacity'' type. Expected ANY-INTEGER',
-    'throws because capacity is TEXT');
-
--- reverse_capacity is ANY-INTEGER
-PREPARE bk_rc1 AS
-SELECT * FROM pgr_maxflowboykovkolmogorov(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::SMALLINT as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE bk_rc2 AS
-SELECT * FROM pgr_maxflowboykovkolmogorov(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::BIGINT as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE bk_rc3 AS
-SELECT * FROM pgr_maxflowboykovkolmogorov(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::REAL as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE bk_rc4 AS
-SELECT * FROM pgr_maxflowboykovkolmogorov(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::FLOAT as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-PREPARE bk_rc5 AS
-SELECT * FROM pgr_maxflowboykovkolmogorov(
-    'SELECT id::INTEGER,
-            source::INTEGER,
-            target::INTEGER,
-            c1.capacity::INTEGER as capacity,
-            c2.capacity::TEXT as reverse_capacity
-    FROM edge_table JOIN categories AS c1 USING(category_id), categories AS c2
-    WHERE edge_table.reverse_category_id = c2.category_id',
-    2, 3);
-
-SELECT lives_ok('bk_rc1',
-    'lives because reverse_capacity is SMALLINT');
-SELECT lives_ok('bk_rc2',
-    'lives because reverse_capacity is BIGINT');
-SELECT throws_ok('bk_rc3',
-    'XX000','Unexpected Column ''reverse_capacity'' type. Expected ANY-INTEGER',
-    'throws because reverse_capacity is REAL');
-SELECT throws_ok('bk_rc4',
-    'XX000','Unexpected Column ''reverse_capacity'' type. Expected ANY-INTEGER',
-    'throws because reverse_capacity is FLOAT');
-SELECT throws_ok('bk_rc5',
-    'XX000','Unexpected Column ''reverse_capacity'' type. Expected ANY-INTEGER',
-    'throws because reverse_capacity is TEXT');
-
-SELECT * FROM finish();
-ROLLBACK;
diff --git a/src/max_flow/test/pgtap/flowapplications-types-check.sql b/src/max_flow/test/pgtap/flowapplications-types-check.sql
deleted file mode 100644
index 220023e..0000000
--- a/src/max_flow/test/pgtap/flowapplications-types-check.sql
+++ /dev/null
@@ -1,740 +0,0 @@
-\i setup.sql
-SET client_min_messages TO WARNING;
-
-SELECT plan(71);
-
-SELECT has_function('pgr_edgedisjointpaths');
-
-SELECT has_function('pgr_edgedisjointpaths', ARRAY[
-    'text', 'bigint', 'bigint', 'boolean'
-    ]);
-SELECT has_function('pgr_edgedisjointpaths', ARRAY[
-    'text', 'bigint', 'anyarray', 'boolean'
-    ]);
-SELECT has_function('pgr_edgedisjointpaths', ARRAY[
-    'text', 'anyarray', 'bigint', 'boolean'
-    ]);
-SELECT has_function('pgr_edgedisjointpaths', ARRAY[
-    'text', 'anyarray', 'anyarray', 'boolean'
-    ]);
-
-SELECT has_function('pgr_maximumcardinalitymatching');
-
-SELECT has_function('pgr_maximumcardinalitymatching', ARRAY[
-    'text', 'boolean'
-    ]);
-
-SELECT function_returns('pgr_edgedisjointpaths', ARRAY[
-    'text', 'bigint', 'bigint', 'boolean'
-    ], 'setof record');
-SELECT function_returns('pgr_edgedisjointpaths', ARRAY[
-    'text', 'bigint', 'anyarray', 'boolean'
-    ], 'setof record');
-SELECT function_returns('pgr_edgedisjointpaths', ARRAY[
-    'text', 'anyarray', 'bigint', 'boolean'
-    ], 'setof record');
-SELECT function_returns('pgr_edgedisjointpaths', ARRAY[
-    'text', 'anyarray', 'anyarray', 'boolean'
-    ], 'setof record');
-
-SELECT function_returns('pgr_maximumcardinalitymatching', ARRAY[
-    'text', 'boolean'
-    ], 'setof record');
-
--- Maximum cardinality matching
-PREPARE mcm_dir AS
-SELECT * FROM pgr_maximumCardinalityMatching(
-    'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table'
-);
-PREPARE mcm_undir AS
-SELECT * FROM pgr_maximumCardinalityMatching(
-    'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table',
-    directed := false
-);
-
-SELECT lives_ok('mcm_dir','directed');
-SELECT lives_ok('mcm_undir','undirected');
-
-PREPARE mcm_q AS
-SELECT pg_typeof(seq)::text AS t1, pg_typeof(edge_id)::text AS t2,
-    pg_typeof(source)::text AS t3, pg_typeof(target)::text AS t4
-    FROM (
-        SELECT * FROM pgr_maximumCardinalityMatching(
-        'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table'
-        ) ) AS a
-    limit 1
-;
-
-PREPARE mcm_v AS
-SELECT  'integer'::text AS t1,'bigint'::text AS t2,
-    'bigint'::text AS t3, 'bigint'::text AS t4;
-
-SELECT set_eq('mcm_q', 'mcm_v','Expected returning, columns names & types');
-
-PREPARE mcm_id1 AS
-SELECT * FROM pgr_maximumCardinalityMatching(
-        'SELECT id::SMALLINT,
-                source::INTEGER, 
-                target::INTEGER,
-                cost::INTEGER AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table'
-);
-PREPARE mcm_id2 AS
-SELECT * FROM pgr_maximumCardinalityMatching(
-        'SELECT id::BIGINT,
-                source::INTEGER, 
-                target::INTEGER,
-                cost::INTEGER AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table'
-);
-PREPARE mcm_id3 AS
-SELECT * FROM pgr_maximumCardinalityMatching(
-        'SELECT id::REAL,
-                source::INTEGER, 
-                target::INTEGER,
-                cost::INTEGER AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table'
-);
-PREPARE mcm_id4 AS
-SELECT * FROM pgr_maximumCardinalityMatching(
-        'SELECT id::FLOAT,
-                source::INTEGER, 
-                target::INTEGER,
-                cost::INTEGER AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table'
-);
-PREPARE mcm_id5 AS
-SELECT * FROM pgr_maximumCardinalityMatching(
-        'SELECT id::TEXT,
-                source::INTEGER, 
-                target::INTEGER,
-                cost::INTEGER AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table'
-);
-
-SELECT lives_ok('mcm_id1',
-    'lives because id is SMALLINT');
-SELECT lives_ok('mcm_id2',
-    'lives because id is BIGINT');
-SELECT throws_ok('mcm_id3',
-    'XX000','Unexpected Column ''id'' type. Expected ANY-INTEGER',
-    'throws because id is REAL');
-SELECT throws_ok('mcm_id4',
-    'XX000','Unexpected Column ''id'' type. Expected ANY-INTEGER',
-    'throws because id is FLOAT');
-SELECT throws_ok('mcm_id5',
-    'XX000','Unexpected Column ''id'' type. Expected ANY-INTEGER',
-    'throws because id is TEXT');
-
--- source is ANY-INTEGER
-PREPARE mcm_s1 AS
-SELECT * FROM pgr_maximumCardinalityMatching(
-        'SELECT id::INTEGER,
-                source::SMALLINT, 
-                target::INTEGER,
-                cost::INTEGER AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table'
-);
-PREPARE mcm_s2 AS
-SELECT * FROM pgr_maximumCardinalityMatching(
-        'SELECT id::INTEGER,
-                source::BIGINT, 
-                target::INTEGER,
-                cost::INTEGER AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table'
-);
-PREPARE mcm_s3 AS
-SELECT * FROM pgr_maximumCardinalityMatching(
-        'SELECT id::INTEGER,
-                source::REAL, 
-                target::INTEGER,
-                cost::INTEGER AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table'
-);
-PREPARE mcm_s4 AS
-SELECT * FROM pgr_maximumCardinalityMatching(
-        'SELECT id::INTEGER,
-                source::FLOAT, 
-                target::INTEGER,
-                cost::INTEGER AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table'
-);
-PREPARE mcm_s5 AS
-SELECT * FROM pgr_maximumCardinalityMatching(
-        'SELECT id::INTEGER,
-                source::TEXT, 
-                target::INTEGER,
-                cost::INTEGER AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table'
-);
-
-SELECT lives_ok('mcm_s1',
-    'lives because source is SMALLINT');
-SELECT lives_ok('mcm_s2',
-    'lives because source is BIGINT');
-SELECT throws_ok('mcm_s3',
-    'XX000','Unexpected Column ''source'' type. Expected ANY-INTEGER',
-    'throws because source is REAL');
-SELECT throws_ok('mcm_s4',
-    'XX000','Unexpected Column ''source'' type. Expected ANY-INTEGER',
-    'throws because source is FLOAT');
-SELECT throws_ok('mcm_s5',
-    'XX000','Unexpected Column ''source'' type. Expected ANY-INTEGER',
-    'throws because source is TEXT');
-        
--- target is ANY-INTEGER
-PREPARE mcm_t1 AS
-SELECT * FROM pgr_maximumCardinalityMatching(
-        'SELECT id::INTEGER,
-                source::INTEGER, 
-                target::SMALLINT,
-                cost::INTEGER AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table'
-);
-PREPARE mcm_t2 AS
-SELECT * FROM pgr_maximumCardinalityMatching(
-        'SELECT id::INTEGER,
-                source::INTEGER, 
-                target::BIGINT,
-                cost::INTEGER AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table'
-);
-PREPARE mcm_t3 AS
-SELECT * FROM pgr_maximumCardinalityMatching(
-        'SELECT id::INTEGER,
-                source::INTEGER, 
-                target::REAL,
-                cost::INTEGER AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table'
-);
-PREPARE mcm_t4 AS
-SELECT * FROM pgr_maximumCardinalityMatching(
-        'SELECT id::INTEGER,
-                source::INTEGER, 
-                target::FLOAT,
-                cost::INTEGER AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table'
-);
-PREPARE mcm_t5 AS
-SELECT * FROM pgr_maximumCardinalityMatching(
-        'SELECT id::INTEGER,
-                source::INTEGER, 
-                target::TEXT,
-                cost::INTEGER AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table'
-);
-
-SELECT lives_ok('mcm_t1',
-    'lives because target is SMALLINT');
-SELECT lives_ok('mcm_t2',
-    'lives because target is BIGINT');
-SELECT throws_ok('mcm_t3',
-    'XX000','Unexpected Column ''target'' type. Expected ANY-INTEGER',
-    'throws because target is REAL');
-SELECT throws_ok('mcm_t4',
-    'XX000','Unexpected Column ''target'' type. Expected ANY-INTEGER',
-    'throws because target is FLOAT');
-SELECT throws_ok('mcm_t5',
-    'XX000','Unexpected Column ''target'' type. Expected ANY-INTEGER',
-    'throws because target is TEXT');
-
--- GOING is ANY-NUMERIC
-PREPARE mcm_g1 AS
-SELECT * FROM pgr_maximumCardinalityMatching(
-        'SELECT id::INTEGER,
-                source::INTEGER, 
-                target::INTEGER,
-                cost::SMALLINT AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table'
-);
-PREPARE mcm_g2 AS
-SELECT * FROM pgr_maximumCardinalityMatching(
-        'SELECT id::INTEGER,
-                source::INTEGER, 
-                target::INTEGER,
-                cost::BIGINT AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table'
-);
-PREPARE mcm_g3 AS
-SELECT * FROM pgr_maximumCardinalityMatching(
-        'SELECT id::INTEGER,
-                source::INTEGER, 
-                target::INTEGER,
-                cost::REAL AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table'
-);
-PREPARE mcm_g4 AS
-SELECT * FROM pgr_maximumCardinalityMatching(
-        'SELECT id::INTEGER,
-                source::INTEGER, 
-                target::INTEGER,
-                cost::FLOAT AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table'
-);
-PREPARE mcm_g5 AS
-SELECT * FROM pgr_maximumCardinalityMatching(
-        'SELECT id::INTEGER,
-                source::INTEGER, 
-                target::INTEGER,
-                cost::TEXT AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table'
-);
-
-SELECT lives_ok('mcm_g1',
-    'lives because going is SMALLINT');
-SELECT lives_ok('mcm_g2',
-    'lives because going is BIGINT');
-SELECT lives_ok('mcm_g3',
-    'lives because going is REAL');
-SELECT lives_ok('mcm_g4',
-    'lives because going is FLOAT');
-SELECT throws_ok('mcm_g5',
-    'XX000','Unexpected Column ''going'' type. Expected ANY-NUMERICAL',
-    'throws because going is TEXT');
-        
-
--- coming is ANY-NUMERIC
-PREPARE mcm_c1 AS
-SELECT * FROM pgr_maximumCardinalityMatching(
-        'SELECT id::INTEGER,
-                source::INTEGER, 
-                target::INTEGER,
-                cost::INTEGER AS going,
-                reverse_cost::SMALLINT AS coming FROM edge_table'
-);
-PREPARE mcm_c2 AS
-SELECT * FROM pgr_maximumCardinalityMatching(
-        'SELECT id::INTEGER,
-                source::INTEGER, 
-                target::INTEGER,
-                cost::INTEGER AS going,
-                reverse_cost::BIGINT AS coming FROM edge_table'
-);
-PREPARE mcm_c3 AS
-SELECT * FROM pgr_maximumCardinalityMatching(
-        'SELECT id::INTEGER,
-                source::INTEGER, 
-                target::INTEGER,
-                cost::INTEGER AS going,
-                reverse_cost::REAL AS coming FROM edge_table'
-);
-PREPARE mcm_c4 AS
-SELECT * FROM pgr_maximumCardinalityMatching(
-        'SELECT id::INTEGER,
-                source::INTEGER, 
-                target::INTEGER,
-                cost::INTEGER AS going,
-                reverse_cost::FLOAT AS coming FROM edge_table'
-);
-PREPARE mcm_c5 AS
-SELECT * FROM pgr_maximumCardinalityMatching(
-        'SELECT id::INTEGER,
-                source::INTEGER, 
-                target::INTEGER,
-                cost::INTEGER AS going,
-                reverse_cost::TEXT AS coming FROM edge_table'
-);
-
-SELECT lives_ok('mcm_c1',
-    'lives because coming is SMALLINT');
-SELECT lives_ok('mcm_c2',
-    'lives because coming is BIGINT');
-SELECT lives_ok('mcm_c3',
-    'lives because coming is REAL');
-SELECT lives_ok('mcm_c4',
-    'lives because coming is FLOAT');
-SELECT throws_ok('mcm_c5',
-    'XX000','Unexpected Column ''coming'' type. Expected ANY-NUMERICAL',
-    'throws because coming is TEXT');
-
-
--- Edge disjoint paths
-PREPARE edp_dir AS
-SELECT * FROM pgr_edgeDisjointPaths(
-    'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table',
-    3, 5
-);
-PREPARE edp_undir AS
-SELECT * FROM pgr_edgeDisjointPaths(
-    'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table',
-    3, 5,
-    directed := false
-);
-
-SELECT lives_ok('edp_dir','directed');
-SELECT lives_ok('edp_undir','undirected');
-
--- Boykov-Kolmogorov
-PREPARE edp_q_o2o AS
-SELECT pg_typeof(seq)::text AS t1, pg_typeof(path_seq)::text AS t2,
-    pg_typeof(node)::text AS t3, pg_typeof(edge)::text AS t4
-    FROM (
-        SELECT * FROM pgr_edgeDisjointPaths(
-            'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table',
-        3, 5
-        ) ) AS a
-    limit 1
-;
-PREPARE edp_v_o2o AS
-SELECT  'integer'::text AS t1,'integer'::text AS t2,
-    'bigint'::text AS t3, 'bigint'::text AS t4;
-
-PREPARE edp_q_o2m AS
-SELECT pg_typeof(seq)::text AS t1, pg_typeof(path_seq)::text AS t2,
-    pg_typeof(end_vid)::text as t3,
-    pg_typeof(node)::text AS t4, pg_typeof(edge)::text AS t5
-    FROM (
-        SELECT * FROM pgr_edgeDisjointPaths(
-            'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table',
-        3, ARRAY[5]
-        ) ) AS a
-    limit 1
-;
-PREPARE edp_v_o2m AS
-SELECT  'integer'::text AS t1,'integer'::text AS t2,
-    'bigint'::text AS t3, 'bigint'::text AS t4,
-    'bigint'::text AS t5;
-
-
-PREPARE edp_q_m2o AS
-SELECT pg_typeof(seq)::text AS t1, pg_typeof(path_seq)::text AS t2,
-    pg_typeof(start_vid)::text as t3,
-    pg_typeof(node)::text AS t4, pg_typeof(edge)::text AS t5
-    FROM (
-        SELECT * FROM pgr_edgeDisjointPaths(
-            'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table',
-        ARRAY[3], 5
-        ) ) AS a
-    limit 1
-;
-PREPARE edp_v_m2o AS
-SELECT  'integer'::text AS t1,'integer'::text AS t2,
-    'bigint'::text AS t3, 'bigint'::text AS t4,
-    'bigint'::text AS t5;
-
-PREPARE edp_q_m2m AS
-SELECT pg_typeof(seq)::text AS t1, pg_typeof(path_seq)::text AS t2,
-    pg_typeof(start_vid)::text as t3, pg_typeof(end_vid)::text as t4,
-    pg_typeof(node)::text AS t5, pg_typeof(edge)::text AS t6
-    FROM (
-        SELECT * FROM pgr_edgeDisjointPaths(
-            'SELECT id, source, target, cost AS going, reverse_cost AS coming FROM edge_table',
-        ARRAY[3], ARRAY[5]
-        ) ) AS a
-    limit 1
-;
-PREPARE edp_v_m2m AS
-SELECT  'integer'::text AS t1,'integer'::text AS t2,
-    'bigint'::text AS t3, 'bigint'::text AS t4,
-    'bigint'::text AS t5, 'bigint'::text AS t6;
-
-SELECT set_eq('edp_v_o2o', 'edp_q_o2o','1 to 1: Expected returning, columns names & types');
-SELECT set_eq('edp_v_o2m', 'edp_q_o2m','1 to many: Expected returning, columns names & types');
-SELECT set_eq('edp_v_m2o', 'edp_q_m2o','many to 1: Expected returning, columns names & types');
-SELECT set_eq('edp_v_m2m', 'edp_q_m2m','many to many: Expected returning, columns names & types');
-
-PREPARE edp_id1 AS
-SELECT * FROM pgr_edgeDisjointPaths(
-        'SELECT id::SMALLINT,
-                source::INTEGER, 
-                target::INTEGER,
-                cost::INTEGER AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table',
-                3, 5
-);
-PREPARE edp_id2 AS
-SELECT * FROM pgr_edgeDisjointPaths(
-        'SELECT id::BIGINT,
-                source::INTEGER, 
-                target::INTEGER,
-                cost::INTEGER AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table',
-                3, 5
-);
-PREPARE edp_id3 AS
-SELECT * FROM pgr_edgeDisjointPaths(
-        'SELECT id::REAL,
-                source::INTEGER, 
-                target::INTEGER,
-                cost::INTEGER AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table',
-                3, 5
-);
-PREPARE edp_id4 AS
-SELECT * FROM pgr_edgeDisjointPaths(
-        'SELECT id::FLOAT,
-                source::INTEGER, 
-                target::INTEGER,
-                cost::INTEGER AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table',
-                3, 5
-);
-PREPARE edp_id5 AS
-SELECT * FROM pgr_edgeDisjointPaths(
-        'SELECT id::TEXT,
-                source::INTEGER, 
-                target::INTEGER,
-                cost::INTEGER AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table',
-                3, 5
-);
-
-SELECT lives_ok('edp_id1',
-    'lives because id is SMALLINT');
-SELECT lives_ok('edp_id2',
-    'lives because id is BIGINT');
-SELECT throws_ok('edp_id3',
-    'XX000','Unexpected Column ''id'' type. Expected ANY-INTEGER',
-    'throws because id is REAL');
-SELECT throws_ok('edp_id4',
-    'XX000','Unexpected Column ''id'' type. Expected ANY-INTEGER',
-    'throws because id is FLOAT');
-SELECT throws_ok('edp_id5',
-    'XX000','Unexpected Column ''id'' type. Expected ANY-INTEGER',
-    'throws because id is TEXT');
-
--- source is ANY-INTEGER
-PREPARE edp_s1 AS
-SELECT * FROM pgr_edgeDisjointPaths(
-        'SELECT id::INTEGER,
-                source::SMALLINT, 
-                target::INTEGER,
-                cost::INTEGER AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table',
-                3, 5
-);
-PREPARE edp_s2 AS
-SELECT * FROM pgr_edgeDisjointPaths(
-        'SELECT id::INTEGER,
-                source::BIGINT, 
-                target::INTEGER,
-                cost::INTEGER AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table',
-                3, 5
-);
-PREPARE edp_s3 AS
-SELECT * FROM pgr_edgeDisjointPaths(
-        'SELECT id::INTEGER,
-                source::REAL, 
-                target::INTEGER,
-                cost::INTEGER AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table',
-                3, 5
-);
-PREPARE edp_s4 AS
-SELECT * FROM pgr_edgeDisjointPaths(
-        'SELECT id::INTEGER,
-                source::FLOAT, 
-                target::INTEGER,
-                cost::INTEGER AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table',
-                3, 5
-);
-PREPARE edp_s5 AS
-SELECT * FROM pgr_edgeDisjointPaths(
-        'SELECT id::INTEGER,
-                source::TEXT, 
-                target::INTEGER,
-                cost::INTEGER AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table',
-                3, 5
-);
-
-SELECT lives_ok('edp_s1',
-    'lives because source is SMALLINT');
-SELECT lives_ok('edp_s2',
-    'lives because source is BIGINT');
-SELECT throws_ok('edp_s3',
-    'XX000','Unexpected Column ''source'' type. Expected ANY-INTEGER',
-    'throws because source is REAL');
-SELECT throws_ok('edp_s4',
-    'XX000','Unexpected Column ''source'' type. Expected ANY-INTEGER',
-    'throws because source is FLOAT');
-SELECT throws_ok('edp_s5',
-    'XX000','Unexpected Column ''source'' type. Expected ANY-INTEGER',
-    'throws because source is TEXT');
-        
--- target is ANY-INTEGER
-PREPARE edp_t1 AS
-SELECT * FROM pgr_edgeDisjointPaths(
-        'SELECT id::INTEGER,
-                source::INTEGER, 
-                target::SMALLINT,
-                cost::INTEGER AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table',
-                3, 5
-);
-PREPARE edp_t2 AS
-SELECT * FROM pgr_edgeDisjointPaths(
-        'SELECT id::INTEGER,
-                source::INTEGER, 
-                target::BIGINT,
-                cost::INTEGER AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table',
-                3, 5
-);
-PREPARE edp_t3 AS
-SELECT * FROM pgr_edgeDisjointPaths(
-        'SELECT id::INTEGER,
-                source::INTEGER, 
-                target::REAL,
-                cost::INTEGER AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table',
-                3, 5
-);
-PREPARE edp_t4 AS
-SELECT * FROM pgr_edgeDisjointPaths(
-        'SELECT id::INTEGER,
-                source::INTEGER, 
-                target::FLOAT,
-                cost::INTEGER AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table',
-                3, 5
-);
-PREPARE edp_t5 AS
-SELECT * FROM pgr_edgeDisjointPaths(
-        'SELECT id::INTEGER,
-                source::INTEGER, 
-                target::TEXT,
-                cost::INTEGER AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table',
-                3, 5
-);
-
-SELECT lives_ok('edp_t1',
-    'lives because target is SMALLINT');
-SELECT lives_ok('edp_t2',
-    'lives because target is BIGINT');
-SELECT throws_ok('edp_t3',
-    'XX000','Unexpected Column ''target'' type. Expected ANY-INTEGER',
-    'throws because target is REAL');
-SELECT throws_ok('edp_t4',
-    'XX000','Unexpected Column ''target'' type. Expected ANY-INTEGER',
-    'throws because target is FLOAT');
-SELECT throws_ok('edp_t5',
-    'XX000','Unexpected Column ''target'' type. Expected ANY-INTEGER',
-    'throws because target is TEXT');
-
--- GOING is ANY-NUMERIC
-PREPARE edp_g1 AS
-SELECT * FROM pgr_edgeDisjointPaths(
-        'SELECT id::INTEGER,
-                source::INTEGER, 
-                target::INTEGER,
-                cost::SMALLINT AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table',
-                3, 5
-);
-PREPARE edp_g2 AS
-SELECT * FROM pgr_edgeDisjointPaths(
-        'SELECT id::INTEGER,
-                source::INTEGER, 
-                target::INTEGER,
-                cost::BIGINT AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table',
-                3, 5
-);
-PREPARE edp_g3 AS
-SELECT * FROM pgr_edgeDisjointPaths(
-        'SELECT id::INTEGER,
-                source::INTEGER, 
-                target::INTEGER,
-                cost::REAL AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table',
-                3, 5
-);
-PREPARE edp_g4 AS
-SELECT * FROM pgr_edgeDisjointPaths(
-        'SELECT id::INTEGER,
-                source::INTEGER, 
-                target::INTEGER,
-                cost::FLOAT AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table',
-                3, 5
-);
-PREPARE edp_g5 AS
-SELECT * FROM pgr_edgeDisjointPaths(
-        'SELECT id::INTEGER,
-                source::INTEGER, 
-                target::INTEGER,
-                cost::TEXT AS going,
-                reverse_cost::INTEGER AS coming FROM edge_table',
-                3, 5
-);
-
-SELECT lives_ok('edp_g1',
-    'lives because going is SMALLINT');
-SELECT lives_ok('edp_g2',
-    'lives because going is BIGINT');
-SELECT lives_ok('edp_g3',
-    'lives because going is REAL');
-SELECT lives_ok('edp_g4',
-    'lives because going is FLOAT');
-SELECT throws_ok('edp_g5',
-    'XX000','Unexpected Column ''going'' type. Expected ANY-NUMERICAL',
-    'throws because going is TEXT');
-        
-
--- coming is ANY-NUMERIC
-PREPARE edp_c1 AS
-SELECT * FROM pgr_edgeDisjointPaths(
-        'SELECT id::INTEGER,
-                source::INTEGER, 
-                target::INTEGER,
-                cost::INTEGER AS going,
-                reverse_cost::SMALLINT AS coming FROM edge_table',
-                3, 5
-);
-PREPARE edp_c2 AS
-SELECT * FROM pgr_edgeDisjointPaths(
-        'SELECT id::INTEGER,
-                source::INTEGER, 
-                target::INTEGER,
-                cost::INTEGER AS going,
-                reverse_cost::BIGINT AS coming FROM edge_table',
-                3, 5
-);
-PREPARE edp_c3 AS
-SELECT * FROM pgr_edgeDisjointPaths(
-        'SELECT id::INTEGER,
-                source::INTEGER, 
-                target::INTEGER,
-                cost::INTEGER AS going,
-                reverse_cost::REAL AS coming FROM edge_table',
-                3, 5
-);
-PREPARE edp_c4 AS
-SELECT * FROM pgr_edgeDisjointPaths(
-        'SELECT id::INTEGER,
-                source::INTEGER, 
-                target::INTEGER,
-                cost::INTEGER AS going,
-                reverse_cost::FLOAT AS coming FROM edge_table',
-                3, 5
-);
-PREPARE edp_c5 AS
-SELECT * FROM pgr_edgeDisjointPaths(
-        'SELECT id::INTEGER,
-                source::INTEGER, 
-                target::INTEGER,
-                cost::INTEGER AS going,
-                reverse_cost::TEXT AS coming FROM edge_table',
-                3, 5
-);
-
-SELECT lives_ok('edp_c1',
-    'lives because coming is SMALLINT');
-SELECT lives_ok('edp_c2',
-    'lives because coming is BIGINT');
-SELECT lives_ok('edp_c3',
-    'lives because coming is REAL');
-SELECT lives_ok('edp_c4',
-    'lives because coming is FLOAT');
-SELECT throws_ok('edp_c5',
-    'XX000','Unexpected Column ''coming'' type. Expected ANY-NUMERICAL',
-    'throws because coming is TEXT');
-
-
-
-SELECT * FROM finish();
-ROLLBACK;
\ No newline at end of file
diff --git a/src/max_flow/test/pgtap/internet_example.sql b/src/max_flow/test/pgtap/internet_example.sql
deleted file mode 100644
index 661634f..0000000
--- a/src/max_flow/test/pgtap/internet_example.sql
+++ /dev/null
@@ -1,144 +0,0 @@
-\i setup.sql
-
-SELECT plan(3);
-
-
-/**************************** BOOST EXAMPLE ****************/
-
-CREATE TABLE boost_example(
-    id SERIAL PRIMARY KEY,
-    source BIGINT,
-    target BIGINT,
-    capacity INTEGER
-);
-
-INSERT INTO boost_example (source, target, capacity)
-VALUES 
-(1, 7,3),
-(1, 2, 20),
-(1, 3, 20),
-(2, 6,1),
-(2, 1, 20),
-(2, 4, 20),
-(3, 5,4),
-(3, 4, 20),
-(3, 1, 20),
-(4, 8,5),
-(4, 3, 20),
-(4, 2, 20),
-(5, 6, 20),
-(5, 7, 20),
-(6, 5, 20),
-(6, 8, 20),
-(7, 8, 20),
-(7, 5, 20),
-(8, 7, 20),
-(8, 6, 20)
-;
-
-
-/* NOTE: what is equal between the three algorithms is the maximum flow achieved */
-
-PREPARE boostSample1 AS
-SELECT sum(flow) FROM pgr_maxFlowEdmondsKarp(
-    'SELECT id, source, target,capacity
-    FROM boost_example'
-   ,1, 8) WHERE source = 1;
-
-PREPARE boostSample2 AS
-SELECT * FROM pgr_maxFlowBoykovKolmogorov(
-    'SELECT id, source, target,capacity
-    FROM boost_example'
-   ,1, 8) WHERE source = 1;
-
-PREPARE boostSample3 AS
-SELECT * FROM pgr_maxFlowPushRelabel(
-    'SELECT id, source, target,capacity
-    FROM boost_example'
-   ,1, 8) WHERE source = 1;
-
-PREPARE boostSample4 AS
-SELECT sum(flow) FROM pgr_maxFlowEdmondsKarp(
-    'SELECT id, source, target,capacity
-    FROM boost_example'
-   ,1, 8) WHERE target = 8;
-
-PREPARE boostSample5 AS
-SELECT * FROM pgr_maxFlowBoykovKolmogorov(
-    'SELECT id, source, target,capacity
-    FROM boost_example'
-   ,1, 8) WHERE target = 8;
-
-PREPARE boostSample6 AS
-SELECT * FROM pgr_maxFlowPushRelabel(
-    'SELECT id, source, target,capacity
-    FROM boost_example'
-   ,1, 8) WHERE target = 8;
-
-SELECT ('boostSample1',13, 'BOOST: pgr_maxFlowEdmondsKarp, flow from source is 13');
-SELECT ('boostSample4',13, 'BOOST: pgr_maxFlowEdmondsKarp, flow from source is 13');
-SELECT ('boostSample2',13, 'BOOST: pgr_maxFlowBoykovKolmogorov, flow from source is 13');
-SELECT ('boostSample5',13, 'BOOST: pgr_maxFlowBoykovKolmogorov, flow from source is 13');
-SELECT ('boostSample3',13, 'BOOST: pgr_maxFlowPushRelabel, flow from source is 13');
-SELECT ('boostSample6',13, 'BOOST: pgr_maxFlowPushRelabel, flow from source is 13');
-
-/**************************** WIKI EXAMPLE ****************/
-
-CREATE TABLE wiki_example(
-    id SERIAL PRIMARY KEY,
-    source BIGINT,
-    target BIGINT,
-    capacity INTEGER
-);
-
-/*
-S = 1, O = 2, P = 3, Q = 4, R = 5, T = 6
-*/
-INSERT INTO wiki_example(source, target, capacity)
-VALUES 
-(1, 2, 3),
-(1, 3, 3),
-(2, 3, 2),
-(2, 4, 3),
-(3, 5, 2),
-(4, 5, 4),
-(4, 6, 2),
-(5, 6, 3)
-;
-
-
-PREPARE wikiSample1 AS
-SELECT * FROM pgr_maxFlowEdmondsKarp(
-    'SELECT id, source, target,capacity
-    FROM wiki_example'
-   ,1, 6);
-
-PREPARE wikiSample2 AS
-SELECT * FROM pgr_maxFlowBoykovKolmogorov(
-    'SELECT id, source, target,capacity
-    FROM wiki_example'
-   ,1, 6);
-
-PREPARE wikiSample3 AS
-SELECT * FROM pgr_maxFlowPushRelabel(
-    'SELECT id, source, target,capacity
-    FROM wiki_example'
-   ,1, 6);
-
-PREPARE wikiresult AS
-SELECT *
-FROM (VALUES
-    (1, 1, 1, 2, 3, 0),
-    (2, 2, 1, 3, 2, 1),
-    (3, 4, 2, 4, 3, 0),
-    (4, 5, 3, 5, 2, 0),
-    (5, 6, 4, 5, 1, 3),
-    (6, 7, 4, 6, 2, 0),
-    (7, 8, 5, 6, 3, 0)
-) AS t(seq, edge_id, source, target, flow, residual_capacity);
-
-SELECT set_eq('wikiSample1', 'wikiresult', 'WIKI: pgr_maxFlowEdmondsKarp');
-SELECT set_eq('wikiSample2', 'wikiresult', 'WIKI: pgr_maxFlowBoykovKolmogorov');
-SELECT set_eq('wikiSample3', 'wikiresult', 'WIKI: pgr_maxFlowPushRelabel');
-
-ROLLBACK;
diff --git a/src/max_flow/test/sample_data_categories.sql b/src/max_flow/test/sample_data_categories.sql
deleted file mode 100644
index f5dc20f..0000000
--- a/src/max_flow/test/sample_data_categories.sql
+++ /dev/null
@@ -1,33 +0,0 @@
-CREATE TEMPORARY TABLE category (
-    category_id SERIAL,
-	category text,
-	capacity BIGINT
-);
-
-INSERT INTO category VALUES
-('Motorway', 130),
-('Primary', 100),
-('Regional', 80),
-('Local', 50);
-
-ALTER TABLE edge_table ADD COLUMN category TEXT;
-ALTER TABLE edge_table ADD COLUMN reverse_category TEXT;
-
-UPDATE edge_table SET category = 'Regional', reverse_category = 'Motorway' WHERE id = 1;
-UPDATE edge_table SET category = 'Regional', reverse_category = 'Primary' WHERE id = 2;
-UPDATE edge_table SET category = 'Primary', reverse_category = 'Motorway' WHERE id = 3;
-UPDATE edge_table SET category = 'Primary', reverse_category = 'Local' WHERE id = 4;
-UPDATE edge_table SET category = 'Motorway', reverse_category = 'Local' WHERE id = 5;
-UPDATE edge_table SET category = 'Local', reverse_category = 'Primary' WHERE id = 6;
-UPDATE edge_table SET category = 'Local', reverse_category = 'Motorway' WHERE id = 7;
-UPDATE edge_table SET category = 'Primary', reverse_category = 'Motorway' WHERE id = 8;
-UPDATE edge_table SET category = 'Motorway', reverse_category = 'Regional' WHERE id = 9;
-UPDATE edge_table SET category = 'Motorway', reverse_category = 'Local' WHERE id = 10;
-UPDATE edge_table SET category = 'Motorway', reverse_category = 'Primary' WHERE id = 11;
-UPDATE edge_table SET category = 'Primary', reverse_category = 'Regional' WHERE id = 12;
-UPDATE edge_table SET category = 'Primary', reverse_category = 'Local' WHERE id = 13;
-UPDATE edge_table SET category = 'Regional', reverse_category = 'Motorway' WHERE id = 14;
-UPDATE edge_table SET category = 'Regional', reverse_category = 'Local' WHERE id = 15;
-UPDATE edge_table SET category = 'Regional', reverse_category = 'Regional' WHERE id = 16;
-UPDATE edge_table SET category = 'Motorway', reverse_category = 'Primary' WHERE id = 17;
-UPDATE edge_table SET category = 'Local', reverse_category = 'Motorway' WHERE id = 18;
diff --git a/src/max_flow/test/test.conf b/src/max_flow/test/test.conf
index b765345..76c716d 100644
--- a/src/max_flow/test/test.conf
+++ b/src/max_flow/test/test.conf
@@ -6,18 +6,18 @@
         'data' => [ ],
         'tests' => [qw(
             doc-pgr_maxFlow
-            doc-pgr_maxFlowBoykovKolmogorov
-            doc-pgr_maxFlowPushRelabel
-            doc-pgr_maxFlowEdmondsKarp
-            doc-pgr_maximumCardinalityMatching
+            doc-pgr_boykovKolmogorov
+            doc-pgr_pushRelabel
+            doc-pgr_edmondsKarp
+            doc-pgr_maxCardinalityMatch
             doc-pgr_edgeDisjointPaths
             )],
         'documentation' => [qw(
             doc-pgr_maxFlow
-            doc-pgr_maxFlowBoykovKolmogorov
-            doc-pgr_maxFlowPushRelabel
-            doc-pgr_maxFlowEdmondsKarp
-            doc-pgr_maximumCardinalityMatching
+            doc-pgr_boykovKolmogorov
+            doc-pgr_pushRelabel
+            doc-pgr_edmondsKarp
+            doc-pgr_maxCardinalityMatch
             doc-pgr_edgeDisjointPaths
             )]
     },
diff --git a/src/pickDeliver/doc/doc-pickDeliver.queries b/src/pickDeliver/doc/doc-pickDeliver.queries
deleted file mode 100644
index f4544d4..0000000
--- a/src/pickDeliver/doc/doc-pickDeliver.queries
+++ /dev/null
@@ -1,275 +0,0 @@
-BEGIN;
-BEGIN
-SET client_min_messages TO NOTICE;
-SET
---q1
-SELECT * FROM _pgr_pickDeliver(
-    'select * from customer order by id', 25, 200, 1, 30);
- seq | vehicle_id | vehicle_seq | stop_id |   travel_time    |   arrival_time   | wait_time | service_time |  departure_time  
------+------------+-------------+---------+------------------+------------------+-----------+--------------+------------------
-   1 |          1 |           1 |       0 |                0 |                0 |         0 |            0 |                0
-   2 |          1 |           2 |       5 | 15.1327459504216 | 15.1327459504216 |         0 |           90 | 105.132745950422
-   3 |          1 |           3 |       3 |                1 | 106.132745950422 |         0 |           90 | 196.132745950422
-   4 |          1 |           4 |       7 |                2 | 198.132745950422 |         0 |           90 | 288.132745950422
-   5 |          1 |           5 |       8 | 2.82842712474619 | 290.961173075168 |         0 |           90 | 380.961173075168
-   6 |          1 |           6 |      10 | 3.60555127546399 | 384.566724350632 |         0 |           90 | 474.566724350632
-   7 |          1 |           7 |      11 |                3 | 477.566724350632 |         0 |           90 | 567.566724350632
-   8 |          1 |           8 |       9 | 3.16227766016838 |   570.7290020108 |         0 |           90 |   660.7290020108
-   9 |          1 |           9 |       6 | 2.23606797749979 |   662.9650699883 |         0 |           90 |   752.9650699883
-  10 |          1 |          10 |       4 | 2.23606797749979 |   755.2011379658 |         0 |           90 |   845.2011379658
-  11 |          1 |          11 |       2 | 3.60555127546399 | 848.806689241264 |         0 |           90 | 938.806689241264
-  12 |          1 |          12 |       1 |                2 | 940.806689241264 |         0 |           90 | 1030.80668924126
-  13 |          1 |          13 |      75 |                3 | 1033.80668924126 |         0 |           90 | 1123.80668924126
-  14 |          1 |          14 |       0 | 15.8113883008419 | 1139.61807754211 |         0 |            0 | 1139.61807754211
-  15 |          2 |           1 |       0 |                0 |                0 |         0 |            0 |                0
-  16 |          2 |           2 |      13 | 30.8058436014987 | 30.8058436014987 |         0 |           90 | 120.805843601499
-  17 |          2 |           3 |      17 |                4 | 124.805843601499 |         0 |           90 | 214.805843601499
-  18 |          2 |           4 |      18 |                3 | 217.805843601499 |         0 |           90 | 307.805843601499
-  19 |          2 |           5 |      19 |                5 | 312.805843601499 |         0 |           90 | 402.805843601499
-  20 |          2 |           6 |      15 |                5 | 407.805843601499 |         0 |           90 | 497.805843601499
-  21 |          2 |           7 |      16 |                5 | 502.805843601499 |         0 |           90 | 592.805843601499
-  22 |          2 |           8 |      14 |                2 | 594.805843601499 |         0 |           90 | 684.805843601499
-  23 |          2 |           9 |      12 |                3 | 687.805843601499 |         0 |           90 | 777.805843601499
-  24 |          2 |          10 |       0 | 38.0788655293195 | 815.884709130818 |         0 |            0 | 815.884709130818
-  25 |          3 |           1 |       0 |                0 |                0 |         0 |            0 |                0
-  26 |          3 |           2 |      20 |               10 |               10 |         0 |           90 |              100
-  27 |          3 |           3 |      24 |                5 |              105 |         0 |           90 |              195
-  28 |          3 |           4 |      25 |                2 |              197 |         0 |           90 |              287
-  29 |          3 |           5 |      27 |                2 |              289 |         0 |           90 |              379
-  30 |          3 |           6 |      29 | 3.60555127546399 | 382.605551275464 |         0 |           90 | 472.605551275464
-  31 |          3 |           7 |      30 |                5 | 477.605551275464 |         0 |           90 | 567.605551275464
-  32 |          3 |           8 |      28 |                3 | 570.605551275464 |         0 |           90 | 660.605551275464
-  33 |          3 |           9 |      26 |                2 | 662.605551275464 |         0 |           90 | 752.605551275464
-  34 |          3 |          10 |      23 |                3 | 755.605551275464 |         0 |            0 | 755.605551275464
-  35 |          3 |          11 |     103 |                0 | 755.605551275464 |         0 |           90 | 845.605551275464
-  36 |          3 |          12 |      22 |                3 | 848.605551275464 |         0 |           90 | 938.605551275464
-  37 |          3 |          13 |      21 |                2 | 940.605551275464 |         0 |           90 | 1030.60555127546
-  38 |          3 |          14 |       0 | 10.1980390271856 | 1040.80359030265 |         0 |            0 | 1040.80359030265
-  39 |          4 |           1 |       0 |                0 |                0 |         0 |            0 |                0
-  40 |          4 |           2 |      32 | 31.6227766016838 | 31.6227766016838 |         0 |           90 | 121.622776601684
-  41 |          4 |           3 |      33 |                2 | 123.622776601684 |         0 |           90 | 213.622776601684
-  42 |          4 |           4 |      31 |  5.3851648071345 | 219.007941408818 |         0 |           90 | 309.007941408818
-  43 |          4 |           5 |      35 |                5 | 314.007941408818 |         0 |           90 | 404.007941408818
-  44 |          4 |           6 |      37 |  5.8309518948453 | 409.838893303664 |         0 |           90 | 499.838893303664
-  45 |          4 |           7 |      38 |                2 | 501.838893303664 |         0 |           90 | 591.838893303664
-  46 |          4 |           8 |      39 |                5 | 596.838893303664 |         0 |           90 | 686.838893303664
-  47 |          4 |           9 |      36 |                5 | 691.838893303664 |         0 |            0 | 691.838893303664
-  48 |          4 |          10 |     105 |                0 | 691.838893303664 |         0 |           90 | 781.838893303664
-  49 |          4 |          11 |      34 |                3 | 784.838893303664 |         0 |           90 | 874.838893303664
-  50 |          4 |          12 |       0 | 32.3882694814033 | 907.227162785067 |         0 |            0 | 907.227162785067
-  51 |          5 |           1 |       0 |                0 |                0 |         0 |            0 |                0
-  52 |          5 |           2 |      43 | 16.5529453572468 | 16.5529453572468 |         0 |           90 | 106.552945357247
-  53 |          5 |           3 |      42 |                3 | 109.552945357247 |         0 |           90 | 199.552945357247
-  54 |          5 |           4 |      41 |                2 | 201.552945357247 |         0 |           90 | 291.552945357247
-  55 |          5 |           5 |      40 |                2 | 293.552945357247 |         0 |           90 | 383.552945357247
-  56 |          5 |           6 |      44 |                3 | 386.552945357247 |         0 |           90 | 476.552945357247
-  57 |          5 |           7 |      46 | 2.82842712474619 | 479.381372481993 |         0 |           90 | 569.381372481993
-  58 |          5 |           8 |      45 |                2 | 571.381372481993 |         0 |           90 | 661.381372481993
-  59 |          5 |           9 |      48 |                2 | 663.381372481993 |         0 |           90 | 753.381372481993
-  60 |          5 |          10 |      51 |                3 | 756.381372481993 |         0 |            0 | 756.381372481993
-  61 |          5 |          11 |     101 |                0 | 756.381372481993 |         0 |           90 | 846.381372481993
-  62 |          5 |          12 |      50 | 2.23606797749979 | 848.617440459493 |         0 |           90 | 938.617440459493
-  63 |          5 |          13 |      52 | 3.16227766016838 | 941.779718119661 |         0 |           90 | 1031.77971811966
-  64 |          5 |          14 |      49 |                3 | 1034.77971811966 |         0 |           90 | 1124.77971811966
-  65 |          5 |          15 |      47 |                2 | 1126.77971811966 |         0 |           90 | 1216.77971811966
-  66 |          5 |          16 |       0 | 18.0277563773199 | 1234.80747449698 |         0 |            0 | 1234.80747449698
-  67 |          6 |           1 |       0 |                0 |                0 |         0 |            0 |                0
-  68 |          6 |           2 |      57 |               35 |               35 |         0 |           90 |              125
-  69 |          6 |           3 |      55 |                2 |              127 |         0 |           90 |              217
-  70 |          6 |           4 |      54 |                5 |              222 |         0 |           90 |              312
-  71 |          6 |           5 |      53 |  5.3851648071345 | 317.385164807135 |         0 |           90 | 407.385164807135
-  72 |          6 |           6 |      56 |                4 | 411.385164807135 |         0 |           90 | 501.385164807135
-  73 |          6 |           7 |      58 |                2 | 503.385164807135 |         0 |           90 | 593.385164807135
-  74 |          6 |           8 |      60 |                3 | 596.385164807135 |         0 |           90 | 686.385164807135
-  75 |          6 |           9 |      59 | 10.4403065089106 | 696.825471316045 |         0 |           90 | 786.825471316045
-  76 |          6 |          10 |       0 | 35.0570962859162 | 821.882567601961 |         0 |            0 | 821.882567601961
-  77 |          7 |           1 |       0 |                0 |                0 |         0 |            0 |                0
-  78 |          7 |           2 |      67 | 12.2065556157337 | 12.2065556157337 |         0 |           90 | 102.206555615734
-  79 |          7 |           3 |      65 |                1 | 103.206555615734 |         0 |           90 | 193.206555615734
-  80 |          7 |           4 |      63 |                2 | 195.206555615734 |         0 |           90 | 285.206555615734
-  81 |          7 |           5 |      62 |                5 | 290.206555615734 |         0 |           90 | 380.206555615734
-  82 |          7 |           6 |      74 |                3 | 383.206555615734 |         0 |           90 | 473.206555615734
-  83 |          7 |           7 |      72 |                5 | 478.206555615734 |         0 |           90 | 568.206555615734
-  84 |          7 |           8 |      61 |                3 | 571.206555615734 |         0 |           90 | 661.206555615734
-  85 |          7 |           9 |      64 |                2 | 663.206555615734 |         0 |            0 | 663.206555615734
-  86 |          7 |          10 |     102 |                0 | 663.206555615734 |         0 |           90 | 753.206555615734
-  87 |          7 |          11 |      68 |                3 | 756.206555615734 |         0 |           90 | 846.206555615734
-  88 |          7 |          12 |      66 |  5.3851648071345 | 851.591720422868 |         0 |           90 | 941.591720422868
-  89 |          7 |          13 |      69 |                2 | 943.591720422868 |         0 |           90 | 1033.59172042287
-  90 |          7 |          14 |       0 | 15.8113883008419 | 1049.40310872371 |         0 |            0 | 1049.40310872371
-  91 |          8 |           1 |       0 |                0 |                0 |         0 |            0 |                0
-  92 |          8 |           2 |      81 | 47.4341649025257 | 47.4341649025257 |         0 |           90 | 137.434164902526
-  93 |          8 |           3 |      78 |                3 | 140.434164902526 |         0 |            0 | 140.434164902526
-  94 |          8 |           4 |     104 |                0 | 140.434164902526 |         0 |           90 | 230.434164902526
-  95 |          8 |           5 |      76 |                2 | 232.434164902526 |         0 |           90 | 322.434164902526
-  96 |          8 |           6 |      71 |                5 | 327.434164902526 |         0 |           90 | 417.434164902526
-  97 |          8 |           7 |      70 |                5 | 422.434164902526 |         0 |           90 | 512.434164902526
-  98 |          8 |           8 |      73 |                3 | 515.434164902526 |         0 |           90 | 605.434164902526
-  99 |          8 |           9 |      77 |                4 | 609.434164902526 |         0 |           90 | 699.434164902526
- 100 |          8 |          10 |      79 |                1 | 700.434164902526 |         0 |           90 | 790.434164902526
- 101 |          8 |          11 |      80 |  5.3851648071345 |  795.81932970966 |         0 |           90 |  885.81932970966
- 102 |          8 |          12 |       0 |  51.478150704935 | 937.297480414595 |         0 |            0 | 937.297480414595
- 103 |          9 |           1 |       0 |                0 |                0 |         0 |            0 |                0
- 104 |          9 |           2 |      90 | 20.6155281280883 | 20.6155281280883 |         0 |           90 | 110.615528128088
- 105 |          9 |           3 |      87 |                5 | 115.615528128088 |         0 |           90 | 205.615528128088
- 106 |          9 |           4 |      86 |                1 | 206.615528128088 |         0 |           90 | 296.615528128088
- 107 |          9 |           5 |      83 |                6 | 302.615528128088 |         0 |           90 | 392.615528128088
- 108 |          9 |           6 |      82 |                3 | 395.615528128088 |         0 |           90 | 485.615528128088
- 109 |          9 |           7 |      84 |  5.8309518948453 | 491.446480022934 |         0 |           90 | 581.446480022934
- 110 |          9 |           8 |      85 | 2.82842712474619 |  584.27490714768 |         0 |           90 |  674.27490714768
- 111 |          9 |           9 |      88 |                3 |  677.27490714768 |         0 |           90 |  767.27490714768
- 112 |          9 |          10 |      89 | 2.82842712474619 | 770.103334272426 |         0 |           90 | 860.103334272426
- 113 |          9 |          11 |      91 | 3.60555127546399 |  863.70888554789 |         0 |           90 |  953.70888554789
- 114 |          9 |          12 |       0 | 22.3606797749979 | 976.069565322888 |         0 |            0 | 976.069565322888
- 115 |         10 |           1 |       0 |                0 |                0 |         0 |            0 |                0
- 116 |         10 |           2 |      98 | 30.8058436014987 | 30.8058436014987 |         0 |           90 | 120.805843601499
- 117 |         10 |           3 |      96 |  5.3851648071345 | 126.191008408633 |         0 |           90 | 216.191008408633
- 118 |         10 |           4 |      95 |                2 | 218.191008408633 |         0 |           90 | 308.191008408633
- 119 |         10 |           5 |      94 | 3.60555127546399 | 311.796559684097 |         0 |           90 | 401.796559684097
- 120 |         10 |           6 |      92 | 3.60555127546399 | 405.402110959561 |         0 |           90 | 495.402110959561
- 121 |         10 |           7 |      93 |                2 | 497.402110959561 |         0 |           90 | 587.402110959561
- 122 |         10 |           8 |      97 |                5 | 592.402110959561 |         0 |            0 | 592.402110959561
- 123 |         10 |           9 |     106 |                0 | 592.402110959561 |         0 |           90 | 682.402110959561
- 124 |         10 |          10 |     100 |                5 | 687.402110959561 |         0 |           90 | 777.402110959561
- 125 |         10 |          11 |      99 |                5 | 782.402110959561 |         0 |           90 | 872.402110959561
- 126 |         10 |          12 |       0 | 33.5410196624968 | 905.943130622058 |         0 |            0 | 905.943130622058
- 127 |         -1 |           0 |       0 | 828.936866942834 |                0 |         0 |         9000 | 9828.93686694283
-(127 rows)
-
---q2
-SELECT * FROM _pgr_pickDeliver(
-    'select * from customer order by id', 25, 200, 10, 30);
- seq | vehicle_id | vehicle_seq | stop_id |    travel_time    |   arrival_time   |     wait_time     | service_time |  departure_time  
------+------------+-------------+---------+-------------------+------------------+-------------------+--------------+------------------
-   1 |          1 |           1 |       0 |                 0 |                0 |                 0 |            0 |                0
-   2 |          1 |           2 |       5 |  1.51327459504216 | 1.51327459504216 |  13.4867254049578 |           90 |              105
-   3 |          1 |           3 |       3 |               0.1 |            105.1 |                 0 |           90 |            195.1
-   4 |          1 |           4 |       7 |               0.2 |            195.3 |                 0 |           90 |            285.3
-   5 |          1 |           5 |       8 | 0.282842712474619 | 285.582842712475 |                 0 |           90 | 375.582842712475
-   6 |          1 |           6 |      10 | 0.360555127546399 | 375.943397840021 |                 0 |           90 | 465.943397840021
-   7 |          1 |           7 |      11 |               0.3 | 466.243397840021 |                 0 |           90 | 556.243397840021
-   8 |          1 |           8 |       9 | 0.316227766016838 | 556.559625606038 |                 0 |           90 | 646.559625606038
-   9 |          1 |           9 |       6 | 0.223606797749979 | 646.783232403788 |                 0 |           90 | 736.783232403788
-  10 |          1 |          10 |       4 | 0.223606797749979 | 737.006839201538 |                 0 |           90 | 827.006839201538
-  11 |          1 |          11 |       2 | 0.360555127546399 | 827.367394329084 |                 0 |           90 | 917.367394329084
-  12 |          1 |          12 |       1 |               0.2 | 917.567394329084 |                 0 |           90 | 1007.56739432908
-  13 |          1 |          13 |      75 |               0.3 | 1007.86739432908 |                 0 |           90 | 1097.86739432908
-  14 |          1 |          14 |       0 |  1.58113883008419 | 1099.44853315917 |                 0 |            0 | 1099.44853315917
-  15 |          2 |           1 |       0 |                 0 |                0 |                 0 |            0 |                0
-  16 |          2 |           2 |      13 |  3.08058436014987 | 3.08058436014987 |  26.9194156398501 |           90 |              120
-  17 |          2 |           3 |      17 |               0.4 |            120.4 |                 0 |           90 |            210.4
-  18 |          2 |           4 |      18 |               0.3 |            210.7 |                 0 |           90 |            300.7
-  19 |          2 |           5 |      19 |               0.5 |            301.2 |                 0 |           90 |            391.2
-  20 |          2 |           6 |      15 |               0.5 |            391.7 |                 0 |           90 |            481.7
-  21 |          2 |           7 |      16 |               0.5 |            482.2 |                 0 |           90 |            572.2
-  22 |          2 |           8 |      14 |               0.2 |            572.4 |                 0 |           90 |            662.4
-  23 |          2 |           9 |      12 |               0.3 |            662.7 |                 0 |           90 |            752.7
-  24 |          2 |          10 |       0 |  3.80788655293195 | 756.507886552932 |                 0 |            0 | 756.507886552932
-  25 |          3 |           1 |       0 |                 0 |                0 |                 0 |            0 |                0
-  26 |          3 |           2 |      20 |                 1 |                1 |                 9 |           90 |              100
-  27 |          3 |           3 |      24 |               0.5 |            100.5 |                 0 |           90 |            190.5
-  28 |          3 |           4 |      25 |               0.2 |            190.7 |                 0 |           90 |            280.7
-  29 |          3 |           5 |      27 |               0.2 |            280.9 |                 0 |           90 |            370.9
-  30 |          3 |           6 |      29 | 0.360555127546399 | 371.260555127546 |                 0 |           90 | 461.260555127546
-  31 |          3 |           7 |      30 |               0.5 | 461.760555127546 |                 0 |           90 | 551.760555127546
-  32 |          3 |           8 |      28 |               0.3 | 552.060555127546 |                 0 |           90 | 642.060555127546
-  33 |          3 |           9 |      26 |               0.2 | 642.260555127546 |                 0 |           90 | 732.260555127546
-  34 |          3 |          10 |      23 |               0.3 | 732.560555127546 |                 0 |            0 | 732.560555127546
-  35 |          3 |          11 |     103 |                 0 | 732.560555127546 |                 0 |           90 | 822.560555127546
-  36 |          3 |          12 |      22 |               0.3 | 822.860555127546 |                 0 |           90 | 912.860555127546
-  37 |          3 |          13 |      21 |               0.2 | 913.060555127546 | 0.939444872453691 |           90 |             1004
-  38 |          3 |          14 |       0 |  1.01980390271856 | 1005.01980390272 |                 0 |            0 | 1005.01980390272
-  39 |          4 |           1 |       0 |                 0 |                0 |                 0 |            0 |                0
-  40 |          4 |           2 |      32 |  3.16227766016838 | 3.16227766016838 |  27.8377223398316 |           90 |              121
-  41 |          4 |           3 |      33 |               0.2 |            121.2 |                 0 |           90 |            211.2
-  42 |          4 |           4 |      31 |  0.53851648071345 | 211.738516480713 |                 0 |           90 | 301.738516480713
-  43 |          4 |           5 |      35 |               0.5 | 302.238516480713 |                 0 |           90 | 392.238516480713
-  44 |          4 |           6 |      37 |  0.58309518948453 | 392.821611670198 |                 0 |           90 | 482.821611670198
-  45 |          4 |           7 |      38 |               0.2 | 483.021611670198 |                 0 |           90 | 573.021611670198
-  46 |          4 |           8 |      39 |               0.5 | 573.521611670198 |                 0 |           90 | 663.521611670198
-  47 |          4 |           9 |      36 |               0.5 | 664.021611670198 | 0.978388329802101 |            0 |              665
-  48 |          4 |          10 |     105 |                 0 |              665 |                 0 |           90 |              755
-  49 |          4 |          11 |      34 |               0.3 |            755.3 |                 0 |           90 |            845.3
-  50 |          4 |          12 |       0 |  3.23882694814033 |  848.53882694814 |                 0 |            0 |  848.53882694814
-  51 |          5 |           1 |       0 |                 0 |                0 |                 0 |            0 |                0
-  52 |          5 |           2 |      43 |  1.65529453572468 | 1.65529453572468 |  14.3447054642753 |           90 |              106
-  53 |          5 |           3 |      42 |               0.3 |            106.3 |                 0 |           90 |            196.3
-  54 |          5 |           4 |      41 |               0.2 |            196.5 |                 0 |           90 |            286.5
-  55 |          5 |           5 |      40 |               0.2 |            286.7 |                 0 |           90 |            376.7
-  56 |          5 |           6 |      44 |               0.3 |              377 |                 0 |           90 |              467
-  57 |          5 |           7 |      46 | 0.282842712474619 | 467.282842712475 |                 0 |           90 | 557.282842712475
-  58 |          5 |           8 |      45 |               0.2 | 557.482842712475 |                 0 |           90 | 647.482842712475
-  59 |          5 |           9 |      48 |               0.2 | 647.682842712475 |                 0 |           90 | 737.682842712475
-  60 |          5 |          10 |      51 |               0.3 | 737.982842712475 |                 0 |            0 | 737.982842712475
-  61 |          5 |          11 |     101 |                 0 | 737.982842712475 |                 0 |           90 | 827.982842712475
-  62 |          5 |          12 |      50 | 0.223606797749979 | 828.206449510225 |                 0 |           90 | 918.206449510225
-  63 |          5 |          13 |      52 | 0.316227766016838 | 918.522677276241 |                 0 |           90 | 1008.52267727624
-  64 |          5 |          14 |      49 |               0.3 | 1008.82267727624 |                 0 |           90 | 1098.82267727624
-  65 |          5 |          15 |      47 |               0.2 | 1099.02267727624 |                 0 |           90 | 1189.02267727624
-  66 |          5 |          16 |       0 |  1.80277563773199 | 1190.82545291397 |                 0 |            0 | 1190.82545291397
-  67 |          6 |           1 |       0 |                 0 |                0 |                 0 |            0 |                0
-  68 |          6 |           2 |      57 |               3.5 |              3.5 |              31.5 |           90 |              125
-  69 |          6 |           3 |      55 |               0.2 |            125.2 |                 0 |           90 |            215.2
-  70 |          6 |           4 |      54 |               0.5 |            215.7 |                 0 |           90 |            305.7
-  71 |          6 |           5 |      53 |  0.53851648071345 | 306.238516480713 |                 0 |           90 | 396.238516480713
-  72 |          6 |           6 |      56 |               0.4 | 396.638516480713 |                 0 |           90 | 486.638516480713
-  73 |          6 |           7 |      58 |               0.2 | 486.838516480713 |                 0 |           90 | 576.838516480713
-  74 |          6 |           8 |      60 |               0.3 | 577.138516480713 |                 0 |           90 | 667.138516480713
-  75 |          6 |           9 |      59 |  1.04403065089106 | 668.182547131604 |                 0 |           90 | 758.182547131604
-  76 |          6 |          10 |       0 |  3.50570962859162 | 761.688256760196 |                 0 |            0 | 761.688256760196
-  77 |          7 |           1 |       0 |                 0 |                0 |                 0 |            0 |                0
-  78 |          7 |           2 |      67 |  1.22065556157337 | 1.22065556157337 |  10.7793444384266 |           90 |              102
-  79 |          7 |           3 |      65 |               0.1 |            102.1 |                 0 |           90 |            192.1
-  80 |          7 |           4 |      63 |               0.2 |            192.3 |                 0 |           90 |            282.3
-  81 |          7 |           5 |      62 |               0.5 |            282.8 |                 0 |           90 |            372.8
-  82 |          7 |           6 |      74 |               0.3 |            373.1 |                 0 |           90 |            463.1
-  83 |          7 |           7 |      72 |               0.5 |            463.6 |                 0 |           90 |            553.6
-  84 |          7 |           8 |      61 |               0.3 |            553.9 |                 0 |           90 |            643.9
-  85 |          7 |           9 |      64 |               0.2 |            644.1 |                 0 |            0 |            644.1
-  86 |          7 |          10 |     102 |                 0 |            644.1 |                 0 |           90 |            734.1
-  87 |          7 |          11 |      68 |               0.3 |            734.4 |                 0 |           90 |            824.4
-  88 |          7 |          12 |      66 |  0.53851648071345 | 824.938516480713 |  1.06148351928664 |           90 |              916
-  89 |          7 |          13 |      69 |               0.2 |            916.2 |                 0 |           90 |           1006.2
-  90 |          7 |          14 |       0 |  1.58113883008419 | 1007.78113883008 |                 0 |            0 | 1007.78113883008
-  91 |          8 |           1 |       0 |                 0 |                0 |                 0 |            0 |                0
-  92 |          8 |           2 |      81 |  4.74341649025257 | 4.74341649025257 |  42.2565835097474 |           90 |              137
-  93 |          8 |           3 |      78 |               0.3 |            137.3 |                 0 |            0 |            137.3
-  94 |          8 |           4 |     104 |                 0 |            137.3 |                 0 |           90 |            227.3
-  95 |          8 |           5 |      76 |               0.2 |            227.5 |                 0 |           90 |            317.5
-  96 |          8 |           6 |      71 |               0.5 |              318 |                 0 |           90 |              408
-  97 |          8 |           7 |      70 |               0.5 |            408.5 |                 0 |           90 |            498.5
-  98 |          8 |           8 |      73 |               0.3 |            498.8 |                 0 |           90 |            588.8
-  99 |          8 |           9 |      77 |               0.4 |            589.2 |                 0 |           90 |            679.2
- 100 |          8 |          10 |      79 |               0.1 |            679.3 |                 0 |           90 |            769.3
- 101 |          8 |          11 |      80 |  0.53851648071345 | 769.838516480713 |                 0 |           90 | 859.838516480713
- 102 |          8 |          12 |       0 |   5.1478150704935 | 864.986331551207 |                 0 |            0 | 864.986331551207
- 103 |          9 |           1 |       0 |                 0 |                0 |                 0 |            0 |                0
- 104 |          9 |           2 |      90 |  2.06155281280883 | 2.06155281280883 |  17.9384471871912 |           90 |              110
- 105 |          9 |           3 |      87 |               0.5 |            110.5 |                 0 |           90 |            200.5
- 106 |          9 |           4 |      86 |               0.1 |            200.6 |                 0 |           90 |            290.6
- 107 |          9 |           5 |      83 |               0.6 |            291.2 |                 0 |           90 |            381.2
- 108 |          9 |           6 |      82 |               0.3 |            381.5 |                 0 |           90 |            471.5
- 109 |          9 |           7 |      84 |  0.58309518948453 | 472.083095189485 |                 0 |           90 | 562.083095189485
- 110 |          9 |           8 |      85 | 0.282842712474619 | 562.365937901959 |                 0 |           90 | 652.365937901959
- 111 |          9 |           9 |      88 |               0.3 | 652.665937901959 |                 0 |           90 | 742.665937901959
- 112 |          9 |          10 |      89 | 0.282842712474619 | 742.948780614434 |                 0 |           90 | 832.948780614434
- 113 |          9 |          11 |      91 | 0.360555127546399 |  833.30933574198 |  2.69066425801998 |           90 |              926
- 114 |          9 |          12 |       0 |  2.23606797749979 |   928.2360679775 |                 0 |            0 |   928.2360679775
- 115 |         10 |           1 |       0 |                 0 |                0 |                 0 |            0 |                0
- 116 |         10 |           2 |      98 |  3.08058436014987 | 3.08058436014987 |  26.9194156398501 |           90 |              120
- 117 |         10 |           3 |      96 |  0.53851648071345 | 120.538516480713 |                 0 |           90 | 210.538516480713
- 118 |         10 |           4 |      95 |               0.2 | 210.738516480713 |                 0 |           90 | 300.738516480713
- 119 |         10 |           5 |      94 | 0.360555127546399 |  301.09907160826 |                 0 |           90 |  391.09907160826
- 120 |         10 |           6 |      92 | 0.360555127546399 | 391.459626735806 |                 0 |           90 | 481.459626735806
- 121 |         10 |           7 |      93 |               0.2 | 481.659626735806 |                 0 |           90 | 571.659626735806
- 122 |         10 |           8 |      97 |               0.5 | 572.159626735806 |                 0 |            0 | 572.159626735806
- 123 |         10 |           9 |     106 |                 0 | 572.159626735806 |                 0 |           90 | 662.159626735806
- 124 |         10 |          10 |     100 |               0.5 | 662.659626735806 |                 0 |           90 | 752.659626735806
- 125 |         10 |          11 |      99 |               0.5 | 753.159626735806 |                 0 |           90 | 843.159626735806
- 126 |         10 |          12 |       0 |  3.35410196624968 | 846.513728702056 |                 0 |            0 | 846.513728702056
- 127 |         -1 |           0 |       0 |  82.8936866942834 |                0 |  226.652340603693 |         9000 | 9309.54602729797
-(127 rows)
-
---q3
-ROLLBACK;
-ROLLBACK
diff --git a/src/pickDeliver/doc/pgr_pickDeliver.rst.backup b/src/pickDeliver/doc/pgr_pickDeliver.rst.backup
deleted file mode 100644
index 16a65b4..0000000
--- a/src/pickDeliver/doc/pgr_pickDeliver.rst.backup
+++ /dev/null
@@ -1,229 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-   INSTRUCTIONS
-   - if section consists of only one value then use this file as index.rst
-   - change [...] (including the square braquets) to appropriate values
-   - one file / function,  may signatures of the same function go in the same file
-
-.. _pgr_pickDeliver:
-
-__pgr_pickDeliver
-===============================================================================
-
-
-Name
--------------------------------------------------------------------------------
-
-``_pgr_pickDeliver`` - Pickup and delivery Vehicle Routing Problem
-
-.. warning::  This is developers function.
-
-   - Is not officially in the current release
-   - Functionality currently is incomplete
-   - Final name currently is undecided
-   - Signature can and will change without notice.
-   - Please use :ref:`pgr_gsocvrppdtw` for a non changing Signature between releases
-   - It has the underscore until final functionality and name are decided
-
-
-
-
-
-Synopsis
--------------------------------------------------------------------------------
-
-Problem: Distribute and optimize the pickup-delivery pairs into a fleet of vehicles.
-
-- Optimization problem is NP-hard.
-- pickup and Delivery with time windows.
-- All vehicles are equal.
-
-  - Same Starting location.
-  - Same Ending location which is the same as Starting location.
-  - All vehicles travel at the same speed.
-
-- A customer is for doing a pickup or doing a deliver.
-
-  - has an open time.
-  - has a closing time.
-  - has a service time.
-  - has an (x, y) location.
-
-- There is a customer where to deliver a pickup.
-
-  - travel time between customers is distance / speed
-  - pickup and delivery pair is done with the same vehicle.
-  - A pickup is done before the delivery.
-
-
-Characteristics:
-----------------
-
-- All trucks depart at time 0.
-- No multiple time windows for a location.
-- Less vehicle used is considered better.
-- Less total duration is better.
-- Less wait time is better.
-- the algorithm will raise an exception when
-
-  - If there is a pickup-deliver pair than violates time window
-  - The speed, max_cycles, ma_capacity have illegal values
-
-- Six different initial will be optimized
-  - the best solution found will be result
-
-
-Signature Summary
------------------
-
-.. code-block:: none
-
-    _pgr_pickDeliver(customers_sql, max_vehicles, capacity)
-    _pgr_pickDeliver(customers_sql, max_vehicles, capacity, speed, max_cycles)
-    RETURNS SET OF (seq, vehicle_id, vehicle_seq, stop_id,
-         travel_time, arrival_time, wait_time, service_time,  departure_time)
-
-
-
-Signatures
------------
-
-..
-    Minimal signature
-    .. index::
-    single: _pgr_pickDeliver(Minimal Signature) - developing
-
-Minimal signature
-...................
-
-..
-   Small description, example:
-
-The minimal signature is for `speed = 1`, for a `max_cycles = 30`
-
-.. code-block:: none
-
-    _pgr_pickDeliver(customers_sql, max_vehicles, capacity)
-    RETURNS SET OF (seq, vehicle_id, vehicle_seq, stop_id,
-         travel_time, arrival_time, wait_time, service_time,  departure_time)
-
-:Example:
-
-This example use the following data: TODO put link
-
-.. literalinclude:: doc-pickDeliver.queries
-   :start-after: --q1
-   :end-before: --q2
-
-..
-    Complete signature
-    .. index::
-    single: _pgr_pickDeliver(Cmplete Signature) - developing
-
-
-Complete signature
-....................
-
-This signature performs the optimization based on the optional parameters
-
-
-.. code-block:: none
-
-    _pgr_pickDeliver(customers_sql, max_vehicles, capacity, speed, max_cycles)
-    RETURNS SET OF (seq, vehicle_id, vehicle_seq, stop_id,
-         travel_time, arrival_time, wait_time, service_time,  departure_time)
-
-
-:Example:
-
-This example use the following data: TODO put link
-
-.. literalinclude:: doc-pickDeliver.queries
-   :start-after: --q2
-   :end-before: --q3
-
-Description of the Signatures
--------------------------------
-
-
-Description of the customers_sql query
-.........................................................................................
-
-================  ===================   =================================================
-Column            Type                  Description
-================  ===================   =================================================
-**id**            ``ANY-INTEGER``       Identifier of the customer.
-
-                                        - A value of ``0`` identifies the starting location
-
-**x**             ``ANY-NUMERICAL``     ``X`` coordinate of the location.
-**y**             ``ANY-NUMERICAL``     ``Y`` coordinate of the location.
-**demand**        ``ANY-NUMERICAL``     How much is added / removed from the vehicle.
-
-                                        - Negative value is a delivery,
-                                        - Positive value is a pickup,
-
-**openTime**      ``ANY-NUMERICAL``     The time relative to 0, when the customer opens.
-**closeTime**     ``ANY-NUMERICAL``     The time relative to 0, when the customer closes.
-**serviceTime**   ``ANY-NUMERICAL``     The duration of the loading / unloading.
-**pickup_id**     ``ANY-INTEGER``       Value used when the current customer is a Delivery to find the corresponding Pickup
-**deliver_id**    ``ANY-INTEGER``       Value used when the current customer is a Pickup to find the corresponding Delivery
-================  ===================   =================================================
-
-Where:
-
-:ANY-INTEGER: SMALLINT, INTEGER, BIGINT
-:ANY-NUMERICAL: SMALLINT, INTEGER, BIGINT, REAL, FLOAT
-
-
-Description of the parameters of the signatures
-.........................................................................................
-
-================== =========== ======== =================================================
-Column             Type        Default     Description
-================== =========== ======== =================================================
-**customers_sql**  ``TEXT``             SQL query as described above.
-**max_vehicles**   ``INTEGER``          Maximum number of vehicles in the result. (currently is ignored)
-**capacity**       ``FLOAT``            Capacity of the vehicle.
-**speed**          ``FLOAT``   1        Speed of the vehicle.
-**max_cycles**     ``INTEGER`` 30       A multiplier for internal cycles (currently is ignored)
-================== =========== ======== =================================================
-
-Description of the result
-.........................................................................................
-
-:RETURNS SET OF: (seq, vehicle_id, vehicle_seq, stop_id, travel_time, arrival_time, wait_time, service_time,  departure_time)
-
-=================== ============= =================================================
-Column              Type           Description
-=================== ============= =================================================
-**seq**              INTEGER      Sequential value starting from **1**.
-**vehicle_id**       INTEGER      Current vehicle identifier.
-**vehicle_seq**      INTEGER      Sequential value starting from **1** for the current vehicle.
-**stop_id**          BIGINT       Visited customer identifier.
-**travel_time**      FLOAT        Travel time from previous ``stop_id`` to current ``stop_id``.
-**arrival_time**     FLOAT        Previous ``departure_time`` plus current ``travel_time``.
-**wait_time**        FLOAT        Time spent waiting for ``stop_id`` to open.
-**service_time**     FLOAT        Service time at current stop_id.
-**departure_time**   FLOAT        Previous :math:`departure\_time + travel\_time + wait\_time + service\_time`.
-                                    - When ``stop_id = 0`` and ``vehicle_seq != 1`` has the total time for the current ``vehicle_id``.
-                                    - When ``vehicle_id = -1`` has the aggregate total time
-=================== ============= =================================================
-
-
-
-See Also
--------------------------------------------------------------------------------
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
-
diff --git a/src/pickDeliver/sql/CMakeLists.txt b/src/pickDeliver/sql/CMakeLists.txt
deleted file mode 100644
index dc7e23f..0000000
--- a/src/pickDeliver/sql/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-# Append in local scope
-LIST(APPEND PACKAGE_SQL_FILES
-    ${CMAKE_CURRENT_SOURCE_DIR}/pickDeliver.sql
-)
-
-# set in parent scope
-SET(PACKAGE_SQL_FILES "${PACKAGE_SQL_FILES}" PARENT_SCOPE)
diff --git a/src/pickDeliver/sql/pickDeliver.sql b/src/pickDeliver/sql/pickDeliver.sql
deleted file mode 100644
index 9c98ff6..0000000
--- a/src/pickDeliver/sql/pickDeliver.sql
+++ /dev/null
@@ -1,51 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: pickDeliver.sql
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer: 
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: 
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-CREATE OR REPLACE FUNCTION _pgr_pickDeliver(
-    customers_sql TEXT,
-    max_vehicles INTEGER,
-    capacity FLOAT,
-    speed FLOAT DEFAULT 1, 
-    max_cycles INTEGER DEFAULT 10, 
-
-    OUT seq INTEGER,
-    OUT vehicle_id INTEGER,
-    OUT vehicle_seq INTEGER,
-    OUT stop_id BIGINT,
-    OUT travel_time FLOAT,
-    OUT arrival_time FLOAT,
-    OUT wait_time FLOAT,
-    OUT service_time FLOAT,
-    OUT departure_time FLOAT
-)
-
-  RETURNS SETOF RECORD AS
- '$libdir/${PGROUTING_LIBRARY_NAME}', 'pickDeliver'
-    LANGUAGE c IMMUTABLE STRICT;
-
diff --git a/src/pickDeliver/src/CMakeLists.txt b/src/pickDeliver/src/CMakeLists.txt
index 4d5641b..4187ef2 100644
--- a/src/pickDeliver/src/CMakeLists.txt
+++ b/src/pickDeliver/src/CMakeLists.txt
@@ -1,20 +1,29 @@
 ADD_LIBRARY(pickDeliver OBJECT
-    #   point.cpp
+    base_node.cpp
+    dnode.cpp
     node.cpp
     tw_node.cpp
     vehicle_node.cpp
+
     order.cpp
+    pd_orders.cpp
+    fleet.cpp
     vehicle.cpp
+    pd_problem.cpp
     vehicle_pickDeliver.cpp
+    book_keeping.cpp
 
     solution.cpp
     initial_solution.cpp
     optimize.cpp
 
+    pgr_messages.cpp
     pgr_pickDeliver.cpp
 
+
+    pickDeliverEuclidean_driver.cpp
     pickDeliver_driver.cpp
-    customers_input.c
+    pickDeliverEuclidean.c
     pickDeliver.c
 
     )
diff --git a/src/pickDeliver/src/base_node.cpp b/src/pickDeliver/src/base_node.cpp
new file mode 100644
index 0000000..3bcdf10
--- /dev/null
+++ b/src/pickDeliver/src/base_node.cpp
@@ -0,0 +1,58 @@
+/*PGR-GNU*****************************************************************
+
+FILE: base_node.cpp
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+#include "vrp/base_node.h"
+#include "cpp_common/pgr_assert.h"
+
+namespace pgrouting {
+namespace vrp {
+
+std::ostream& operator << (std::ostream &log, const Base_node &node) {
+    node.print(log);
+    return log;
+}
+
+void
+Base_node::print(std::ostream& os) const {
+    os << id()
+        << "(" << idx() << ")";
+}
+
+Base_node::Base_node(size_t _idx, int64_t _id)
+    : Identifier(_idx, _id) {
+    }
+
+bool
+Base_node::operator ==(const Base_node &rhs) const {
+    if (&rhs == this) return true;
+    return
+        (idx() == rhs.idx())
+         && (id() == rhs.id());
+}
+
+}  //  namespace vrp
+}  //  namespace pgrouting
+
+
diff --git a/src/pickDeliver/src/book_keeping.cpp b/src/pickDeliver/src/book_keeping.cpp
new file mode 100644
index 0000000..baabb52
--- /dev/null
+++ b/src/pickDeliver/src/book_keeping.cpp
@@ -0,0 +1,75 @@
+/*PGR-GNU*****************************************************************
+
+FILE: book_keeping.cpp
+
+Copyright (c) 2017 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+
+#include "vrp/book_keeping.h"
+
+#include <queue>
+#include <iostream>
+
+namespace pgrouting {
+namespace vrp {
+
+Swap_info::Swap_info(const Vehicle_pickDeliver &from,
+        const Vehicle_pickDeliver &to,
+        size_t from_o,
+        size_t to_o,
+        double delta) :
+    from_truck(from),
+    to_truck(to),
+    from_order(from_o),
+    to_order(to_o),
+    estimated_delta(delta)
+    { }
+
+std::ostream& operator << (std::ostream& log, const Swap_info &d) {
+    log << "\n" << d.from_truck.tau() << " --> "
+        << d.from_order
+        << "("
+        << d.from_truck.orders()[d.from_order].pickup().id()
+        << ")"
+        << "\n" << d.to_truck.tau() << " --> "
+        << d.to_order
+        << "("
+        << d.to_truck.orders()[d.to_order].pickup().id()
+        << ")"
+        << "\n" << "delta = " << d.estimated_delta;
+    return log;
+}
+
+
+std::ostream& operator<< (std::ostream &log, const Swap_bk &data) {
+    auto q = data.m_swaps;
+    while (!q.empty()) {
+        log << q.top() << " ";
+        q.pop();
+    }
+    log << '\n';
+    return log;
+}
+
+
+}  // namespace vrp
+}  // namespace pgrouting
diff --git a/src/pickDeliver/src/customers_input.c b/src/pickDeliver/src/customers_input.c
deleted file mode 100644
index 389484e..0000000
--- a/src/pickDeliver/src/customers_input.c
+++ /dev/null
@@ -1,159 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: customers_input.c
-
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- ********************************************************************PGR-GNU*/
-
-#include "./../../common/src/postgres_connection.h"
-
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/get_check_data.h"
-#include "./customers_input.h"
-
-
-static
-void fetch_customer(
-        HeapTuple *tuple,
-        TupleDesc *tupdesc,
-        Column_info_t info[9],
-        Customer_t *customer) {
-    customer->id = pgr_SPI_getBigInt(tuple, tupdesc, info[0]);
-    customer->x = pgr_SPI_getFloat8(tuple, tupdesc, info[1]);
-    customer->y = pgr_SPI_getFloat8(tuple, tupdesc, info[2]);
-    customer->demand = pgr_SPI_getFloat8(tuple, tupdesc, info[3]);
-    customer->Etime = pgr_SPI_getFloat8(tuple, tupdesc, info[4]);
-    customer->Ltime = pgr_SPI_getFloat8(tuple, tupdesc, info[5]);
-    customer->Stime = pgr_SPI_getFloat8(tuple, tupdesc, info[6]);
-    customer->Pindex = pgr_SPI_getBigInt(tuple, tupdesc, info[7]);
-    customer->Dindex = pgr_SPI_getBigInt(tuple, tupdesc, info[8]);
-    customer->Ddist = 0;
-}
-
-
-
-void
-pgr_get_customers_data(
-        char *customers_sql,
-        Customer_t **customers,
-        size_t *total_customers) {
-    const int tuple_limit = 1000000;
-
-    PGR_DBG("pgr_get_customers_data");
-    PGR_DBG("%s", customers_sql);
-
-    Column_info_t info[9];
-
-    int i;
-    for (i = 0; i < 9; ++i) {
-        info[i].colNumber = -1;
-        info[i].type = 0;
-        info[i].strict = true;
-        info[i].eType = ANY_NUMERICAL;
-    }
-
-    /*!
-      int64_t id;
-      double x;
-      double y;
-      double demand;
-      double Etime;
-      double Ltime;
-      double Stime;
-      int64_t Pindex;
-      int64_t Dindex;
-      double Ddist;
-      */
-
-    info[0].name = strdup("id");
-    info[1].name = strdup("x");
-    info[2].name = strdup("y");
-    info[3].name = strdup("demand");
-    info[4].name = strdup("opentime");
-    info[5].name = strdup("closetime");
-    info[6].name = strdup("servicetime");
-    info[7].name = strdup("pindex");
-    info[8].name = strdup("dindex");
-
-    info[0].eType = ANY_INTEGER;
-    info[7].eType = ANY_INTEGER;
-    info[8].eType = ANY_INTEGER;
-
-
-    size_t ntuples;
-    size_t total_tuples;
-
-    void *SPIplan;
-    SPIplan = pgr_SPI_prepare(customers_sql);
-    Portal SPIportal;
-    SPIportal = pgr_SPI_cursor_open(SPIplan);
-
-    bool moredata = TRUE;
-    (*total_customers) = total_tuples = 0;
-
-    /* on the first tuple get the column numbers */
-
-    while (moredata == TRUE) {
-        SPI_cursor_fetch(SPIportal, TRUE, tuple_limit);
-        if (total_tuples == 0) {
-            pgr_fetch_column_info(info, 9);
-        }
-        ntuples = SPI_processed;
-        total_tuples += ntuples;
-        PGR_DBG("SPI_processed %ld", ntuples);
-        if (ntuples > 0) {
-            if ((*customers) == NULL)
-                (*customers) = (Customer_t *)palloc0(
-                        total_tuples * sizeof(Customer_t));
-            else
-                (*customers) = (Customer_t *)repalloc(
-                        (*customers), total_tuples * sizeof(Customer_t));
-
-            if ((*customers) == NULL) {
-                elog(ERROR, "Out of memory");
-            }
-
-            size_t t;
-            SPITupleTable *tuptable = SPI_tuptable;
-            TupleDesc tupdesc = SPI_tuptable->tupdesc;
-            PGR_DBG("processing %ld", ntuples);
-            for (t = 0; t < ntuples; t++) {
-                HeapTuple tuple = tuptable->vals[t];
-                fetch_customer(&tuple, &tupdesc, info,
-                        &(*customers)[total_tuples - ntuples + t]);
-            }
-            SPI_freetuptable(tuptable);
-        } else {
-            moredata = FALSE;
-        }
-    }
-
-    SPI_cursor_close(SPIportal);
-
-    if (total_tuples == 0) {
-        (*total_customers) = 0;
-        PGR_DBG("NO customers");
-        return;
-    }
-
-    (*total_customers) = total_tuples;
-    PGR_DBG("Finish reading %ld data, %ld", total_tuples, (*total_customers));
-}
diff --git a/src/pickDeliver/src/customers_input.h b/src/pickDeliver/src/customers_input.h
deleted file mode 100644
index f295869..0000000
--- a/src/pickDeliver/src/customers_input.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: customers_input.h
-
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- ********************************************************************PGR-GNU*/
-
-#pragma once
-
-#include "./../../common/src/pgr_types.h"
-
-void pgr_get_customers_data(
-        char *customers_sql,
-        Customer_t **customers,
-        size_t *total_customers);
diff --git a/src/pickDeliver/src/dnode.cpp b/src/pickDeliver/src/dnode.cpp
new file mode 100644
index 0000000..d6788b5
--- /dev/null
+++ b/src/pickDeliver/src/dnode.cpp
@@ -0,0 +1,56 @@
+/*PGR-GNU*****************************************************************
+
+FILE: dnode.cpp
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+#include "vrp/dnode.h"
+
+#include "vrp/pgr_pickDeliver.h"
+
+namespace pgrouting {
+namespace vrp {
+
+
+std::ostream& operator << (std::ostream &log, const Dnode &node) {
+    log << node.id()
+        << "(" << node.idx() << ")";
+    return log;
+}
+
+
+double
+Dnode::distance(const Base_node *other) const {
+    return problem->m_cost_matrix.distance(
+            problem->m_cost_matrix.get_index(id()),
+            problem->m_cost_matrix.get_index(other->id()));
+}
+
+
+Dnode::Dnode(size_t id, int64_t original_id, double, double)
+    : Base_node(id, original_id) {
+    }
+
+}  //  namespace vrp
+}  //  namespace pgrouting
+
+
diff --git a/src/pickDeliver/src/fleet.cpp b/src/pickDeliver/src/fleet.cpp
new file mode 100644
index 0000000..2b9f35f
--- /dev/null
+++ b/src/pickDeliver/src/fleet.cpp
@@ -0,0 +1,365 @@
+/*PGR-GNU*****************************************************************
+
+FILE: solution.cpp
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+#include "vrp/fleet.h"
+
+#include <vector>
+#include <memory>
+#include <utility>
+#include <limits>
+
+#include "vrp/dnode.h"
+#include "vrp/pgr_pickDeliver.h"
+
+namespace pgrouting {
+namespace vrp {
+
+
+Fleet::Fleet(const Fleet &fleet) :
+    PD_problem(),
+    m_trucks(fleet.m_trucks),
+    used(fleet.used),
+    un_used(fleet.un_used)
+    {}
+
+Fleet::Fleet(
+        const std::vector<Vehicle_t> &vehicles, double factor) :
+    PD_problem(),
+    used(),
+    un_used() {
+        build_fleet(vehicles, factor);
+        Identifiers<size_t> unused(m_trucks.size());
+        un_used = unused;
+    }
+
+
+Vehicle_pickDeliver
+Fleet::get_truck() {
+    ENTERING();
+    auto idx = un_used.front();
+    msg.log << "Available vehicles: " << un_used << "\n";
+    msg.log << "NOT Available vehicles: " << used << "\n";
+    msg.log << "getting idx" << idx << "\n";
+    pgassertwm(idx < m_trucks.size(), msg.log.str());
+    used += idx;
+    if (un_used.size() > 1) un_used -= idx;
+    EXITING();
+    return m_trucks[idx];
+}
+
+void
+Fleet::release_truck(size_t id) {
+    used -= id;
+    un_used += id;
+}
+
+Vehicle_pickDeliver
+Fleet::get_truck(size_t order) {
+    msg.log << "Available vehicles: " << un_used << "\n";
+    msg.log << "NOT Available vehicles: " << used << "\n";
+    auto idx = un_used.front();
+
+    for (const auto i : un_used) {
+        if (m_trucks[i].feasable_orders().has(order)) {
+            idx = i;
+            msg.log << "getting idx" << idx << "\n";
+            used += idx;
+            if (un_used.size() > 1) un_used -= idx;
+            return m_trucks[idx];
+        }
+    }
+
+    /*
+     * using phoney truck
+     */
+    pgassert(false);
+    return m_trucks.back();
+
+    for (auto truck : m_trucks) {
+        if (truck.feasable_orders().has(order)) {
+            idx = truck.idx();
+            msg.log << "idx" << idx << "size" << m_trucks.size();
+            pgassertwm(idx < m_trucks.size(), msg.get_log());
+            used += idx;
+            if (un_used.size() > 1) un_used -= idx;
+            break;
+        }
+    }
+    return m_trucks[idx];
+}
+
+
+Vehicle_pickDeliver
+Fleet::get_truck(const Order order) {
+    auto id = m_trucks.front().idx();
+    for (auto truck : m_trucks) {
+        if (truck.feasable_orders().has(order.idx())) {
+            id = truck.idx();
+            msg.log << "id" << id
+                << "size" << m_trucks.size();
+            pgassertwm(id < m_trucks.size(), msg.get_log());
+            used += id;
+            if (un_used.size() > 1) un_used -= id;
+            break;
+        }
+    }
+    return m_trucks[id];
+}
+
+
+void
+Fleet::add_vehicle(
+        Vehicle_t vehicle,
+        double factor,
+        std::unique_ptr<Base_node> b_start,
+        const Vehicle_node &starting_site,
+        std::unique_ptr<Base_node> b_end,
+        const Vehicle_node &ending_site) {
+    pgassert(starting_site.is_start() && ending_site.is_end());
+    pgassert(starting_site.opens() <= starting_site.closes());
+    pgassert(ending_site.opens() <= ending_site.closes());
+
+    problem->add_base_node(std::move(b_start));
+    problem->add_base_node(std::move(b_end));
+    problem->add_node(starting_site);
+    problem->add_node(ending_site);
+
+    for (int i = 0; i < vehicle.cant_v; ++i) {
+        m_trucks.push_back(Vehicle_pickDeliver(
+                    m_trucks.size(),
+                    vehicle.id,
+                    starting_site,
+                    ending_site,
+                    vehicle.capacity,
+                    vehicle.speed,
+                    factor));
+        msg.log << "inserting vehicle: " << m_trucks.back().tau() << "\n";
+        pgassert((m_trucks.back().idx() + 1)  == m_trucks.size());
+        pgassert(m_trucks.back().is_ok());
+    }
+}
+
+/*!
+  builds a fleet from a vector of Vehicle_t 
+
+  - creates a phoney truck with unlimited capacity and unlimited closing times
+  - checks that the number of vehicles is a legal value
+  - creates the requested vehicles
+
+  @param[in] vehicles  the list of vehicles
+  @param[in] factor    the multiplier to speed up or slow down
+  */
+bool
+Fleet::build_fleet(
+        std::vector<Vehicle_t> vehicles,
+        double factor) {
+    /*
+     *  creating a phoney truck with max capacity and max window
+     *  with the start & end points of the first vehicle given
+     */
+    vehicles.push_back({
+            /*
+             * id, capacity
+             */
+            -1,
+            std::numeric_limits<double>::infinity(),
+
+            vehicles[0].speed,
+            vehicles[0].start_x,
+            vehicles[0].start_y,
+            vehicles[0].start_node_id,
+
+            /*
+             * cant_v, start_open_t, start_close_t, start_service_t
+             */
+            1,
+            0,
+            std::numeric_limits<double>::infinity(),
+            0,
+
+            vehicles[0].end_x,
+            vehicles[0].end_y,
+            vehicles[0].end_node_id,
+            /*
+             * end_open_t, end_close_t, end_service_t
+             */
+            0,
+            std::numeric_limits<double>::infinity(),
+            0});
+
+
+    for (auto vehicle : vehicles) {
+        if (vehicle.cant_v < 0) {
+            msg.error << "Illegal number of vehicles found vehicle";
+            msg.log << vehicle.cant_v << "< 0 on vehicle " << vehicle.id;
+            return false;
+        }
+
+        if  (problem->m_cost_matrix.empty()) {
+            /*
+             * Euclidean version
+             */
+            auto b_start = create_b_start<Node>(vehicle, problem->node_id());
+            auto starting_site = Vehicle_node(
+                    {problem->node_id()++, vehicle, Tw_node::NodeType::kStart});
+
+            auto b_end = create_b_end<Node>(vehicle, problem->node_id());
+            auto ending_site = Vehicle_node(
+                    {problem->node_id()++, vehicle, Tw_node::NodeType::kEnd});
+
+            if (!(starting_site.is_start() && ending_site.is_end()
+                    && starting_site.opens() <= starting_site.closes()
+                    && ending_site.opens() <= ending_site.closes())) {
+                msg.clear();
+                msg.error << "Illegal values found on vehicle";
+                msg.log << "On vehicle " << vehicle.id << " a condition is not met, verify that:\n"
+                    << "-  start_open <= start_close\n"
+                    << "-  end_open <= end_close\n"
+                    << "-  capacity > 0\n";
+                pgassert(!msg.get_error().empty());
+                return false;
+            }
+
+            pgassert(starting_site.opens() <= starting_site.closes());
+            pgassert(ending_site.opens() <= ending_site.closes());
+            pgassertwm(starting_site.is_start() && ending_site.is_end(), msg.get_error().c_str());
+            add_vehicle(vehicle, factor,
+                    std::move(b_start), starting_site,
+                    std::move(b_end), ending_site);
+        } else {
+            /*
+             * Matrix version
+             */
+            auto b_start = create_b_start<Dnode>(vehicle, problem->node_id());
+            auto starting_site = Vehicle_node(
+                    {problem->node_id()++, vehicle, Tw_node::NodeType::kStart});
+
+            auto b_end = create_b_end<Dnode>(vehicle, problem->node_id());
+            auto ending_site = Vehicle_node(
+                    {problem->node_id()++, vehicle, Tw_node::NodeType::kEnd});
+
+            if (!(starting_site.is_start() && ending_site.is_end()
+                    && starting_site.opens() <= starting_site.closes()
+                    && ending_site.opens() <= ending_site.closes())) {
+                msg.clear();
+                msg.error << "Illegal values found on vehicle";
+                msg.log << "On vehicle " << vehicle.id << " a condition is not met, verify that:\n"
+                    << "-  start_open <= start_close\n"
+                    << "-  end_open <= end_close\n"
+                    << "-  capacity > 0\n";
+                pgassert(!msg.get_error().empty());
+                return false;
+            }
+
+            pgassert(starting_site.opens() <= starting_site.closes());
+            pgassert(ending_site.opens() <= ending_site.closes());
+            pgassert(starting_site.is_start() && ending_site.is_end());
+            add_vehicle(vehicle, factor,
+                    std::move(b_start), starting_site,
+                    std::move(b_end), ending_site);
+        }
+    }
+    Identifiers<size_t> unused(m_trucks.size());
+    un_used = unused;
+    return true;
+}
+
+
+bool
+Fleet::is_fleet_ok() const {
+    ENTERING();
+    if (!msg.get_error().empty()) return false;
+    for (auto truck : m_trucks) {
+        if (!truck.is_ok()) {
+            msg.error << "Illegal values found on vehicle";
+            msg.log << "On vehicle " << truck.id() << " a condition is not met, verify that:\n"
+                << "-  start_open <= start_close\n"
+                << "-  end_open <= end_close\n"
+                << "-  capacity > 0\n";
+            return false;
+        }
+
+        if (!(truck.start_site().is_start()
+                    && truck.end_site().is_end())) {
+            pgassertwm(false, "should never pass through here");
+            msg.error << "Illegal values found on vehicle";
+            return false;
+        }
+        if (!truck.is_feasable()) {
+            msg.error << "Truck is not feasible";
+            return false;
+        }
+    }
+    EXITING();
+    return true;
+}
+
+/**
+ * Given an order,
+ * Cycle trhugh all the trucks to verify if the order can be served by
+ * at least one truck
+ */
+bool
+Fleet::is_order_ok(const Order &order) const {
+    for (const auto truck : m_trucks) {
+        if (!order.is_valid(truck.speed())) continue;
+        if (truck.is_order_feasable(order)) {
+            return true;
+        }
+    }
+    return false;
+}
+
+Vehicle_pickDeliver&
+Fleet::operator[](size_t i) {
+    pgassert(i < m_trucks.size());
+    return m_trucks[i];
+}
+
+void
+Fleet::set_compatibles(const PD_Orders &orders) {
+    for (auto &truck : m_trucks) {
+        truck.set_compatibles(orders);
+    }
+}
+
+/*
+ * FRIENDS
+ */
+
+std::ostream&
+operator << (std::ostream &log, const Fleet &f) {
+    log << "fleet\n";
+    for (const auto v : f.m_trucks) {
+        log << v;
+    }
+    log << "end fleet\n";
+
+    return log;
+}
+
+
+}  //  namespace vrp
+}  //  namespace pgrouting
diff --git a/src/pickDeliver/src/initial_solution.cpp b/src/pickDeliver/src/initial_solution.cpp
index e8c3d08..72cd418 100644
--- a/src/pickDeliver/src/initial_solution.cpp
+++ b/src/pickDeliver/src/initial_solution.cpp
@@ -24,517 +24,106 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  ********************************************************************PGR-GNU*/
 
 
-#include "./initial_solution.h"
+#include "vrp/initial_solution.h"
 #include <deque>
 #include <algorithm>
 #include <set>
-#include "./../../common/src/pgr_assert.h"
-#include "./solution.h"
-#include "./pgr_pickDeliver.h"
+#include "cpp_common/pgr_assert.h"
+#include "vrp/solution.h"
+#include "vrp/pgr_pickDeliver.h"
 
 namespace pgrouting {
 namespace vrp {
 
 void
 Initial_solution::invariant() const {
-    std::set<size_t> orders(assigned);
-
-    orders.insert(unassigned.begin(), unassigned.end());
-
-    /* check the local book keeping is ok */
-    pgassert(all_orders == orders);
-
     /* this checks there is no order duplicated */
-    pgassert(all_orders.size() == orders.size());
+    pgassert(all_orders == (assigned + unassigned));
+    pgassert((assigned * unassigned).empty());
 }
 
 
 Initial_solution::Initial_solution(
         int kind,
-        const Pgr_pickDeliver *p_problem) :
-    Solution(p_problem) {
-        for (const auto &order : problem->orders()) {
-            unassigned.insert(order.id());
-        }
-        all_orders = unassigned;
-        assigned.clear();
+        size_t number_of_orders) :
+    Solution(),
+    all_orders(number_of_orders),
+    unassigned(number_of_orders),
+    assigned() {
+        invariant();
+        pgassert(kind >= 0 && kind < 7);
 
         switch (kind) {
             case 0:
                 one_truck_all_orders();
                 break;
             case 1:
-                one_truck_per_order();
-                break;
             case 2:
-                push_back_while_feasable();
-                break;
             case 3:
-                push_front_while_feasable();
-                break;
             case 4:
-                insert_while_feasable();
-                break;
             case 5:
-                insert_while_compatibleJ();
-                break;
             case 6:
-                insert_while_compatibleI();
+                do_while_foo(kind);
                 break;
+            default: pgassert(false);
         }
-    }
-
 
-
-void
-Initial_solution::fill_truck_while_compatibleJ(
-        Vehicle_pickDeliver &truck,
-        std::set<size_t> &possible_orders) {
-    invariant();
-    /*
-     * Precondition:
-     * truck.orders_in_vehicle intersection assigned == truck.orders_in_vehicle
-     * (all orders in the truck are in the assigned set)
-     */
-    std::set<size_t> invariant_set;
-    std::set_intersection(
-            truck.orders_in_vehicle.begin(),
-            truck.orders_in_vehicle.end(),
-            assigned.begin(), assigned.end(),
-            std::inserter(invariant_set, invariant_set.begin()));
-    pgassert(invariant_set == truck.orders_in_vehicle);
-
-    invariant_set.clear();
-    /*
-     * Precondition:
-     * possible_orders intersection unassigned == possible_orders
-     * (all possible orders are not in the assigned set)
-     */
-    std::set_intersection(possible_orders.begin(), possible_orders.end(),
-            assigned.begin(), assigned.end(),
-            std::inserter(invariant_set, invariant_set.begin()));
-    pgassert(invariant_set.empty());
-
-    /*
-     * termination of recursion
-     */
-    if (possible_orders.empty())
-        return;
-
-    /*
-     * CODE
-     */
-    auto best_order = *possible_orders.begin();
-    size_t max_size(0);
-
-    /*
-     * In the possible orders set look for the order that
-     * has more compatible orders with the current possible orders
-     */
-    for (auto &o : possible_orders) {
-        auto other_orders = problem->orders()[o].m_compatibleJ;
-        auto intersect_orders = problem->orders()[o].subsetJ(possible_orders);
-        if (max_size < intersect_orders.size()) {
-            max_size = intersect_orders.size();
-            best_order = o;
-        }
-    }
-    auto intersect_orders = problem->orders()[best_order].subsetJ(possible_orders);
-
-    truck.insert(problem->orders()[best_order]);
-    if (!truck.is_feasable()) {
-        truck.erase(problem->orders()[best_order]);
-    } else {
-        assigned.insert(best_order);
-        unassigned.erase(unassigned.find(best_order));
-    }
-
-    possible_orders.erase(possible_orders.find(best_order));
-    fill_truck_while_compatibleJ(truck, possible_orders);
     invariant();
 }
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-std::deque<size_t>
-Initial_solution::first_ordersIJ() const {
-    /*
-     * Sorted as:
-     * (| {I}|, | {J}|)
-     * orders: keep sorted based on the number of orders it is compatible with
-     */
-    std::deque<size_t> orders(unassigned.begin(), unassigned.end());
-    const Pgr_pickDeliver *prob = problem;
-    std::sort(orders.begin(), orders.end(), [&prob]
-            (const size_t &lhs, const size_t &rhs) -> bool
-            {return prob->orders()[lhs].m_compatibleJ.size()
-            < prob->orders()[rhs].m_compatibleJ.size();
-            });
-    std::stable_sort(orders.begin(), orders.end(), [&prob]
-            (const size_t &lhs, const size_t &rhs) -> bool
-            {return prob->orders()[lhs].m_compatibleI.size()
-            < prob->orders()[rhs].m_compatibleI.size();
-            });
-    return orders;
-}
-
-
-
-
-
 void
-Initial_solution::insert_while_compatibleJ() {
-    problem->log << "\nInitial_solution::insert_while_compatible\n";
+Initial_solution::do_while_foo(int kind) {
     invariant();
+    pgassert(kind > 0 && kind < 7);
 
-
-    size_t v_id(0);
-    Vehicle_pickDeliver truck(
-            v_id++,
-            problem->m_starting_site,
-            problem->m_ending_site,
-            problem->max_capacity,
-            problem);
+    msg.log << "\nInitial_solution::do_while_foo\n";
+    Identifiers<size_t> notused;
+#if 0
+    bool out_of_trucks(true);
+#endif
 
     while (!unassigned.empty()) {
-        std::deque<size_t> orders(first_ordersIJ());
-
-        if (truck.empty()) {
-            auto order(problem->orders()[orders.front()]);
-            truck.insert(order);
-            assigned.insert(order.id());
-            orders.pop_front();
-            unassigned.erase(unassigned.find(order.id()));
-            invariant();
-
-            std::set<size_t> compatible_orders(
-                    problem->orders()[order.id()].m_compatibleJ);
-            std::set<size_t> possible_orders;
-            std::set_intersection(
-                    compatible_orders.begin(), compatible_orders.end(),
-                    unassigned.begin(), unassigned.end(),
-                    std::inserter(possible_orders, possible_orders.begin()));
-
-
-            fill_truck_while_compatibleJ(truck, possible_orders);
-            fleet.push_back(truck);
-
-            if (unassigned.empty())
-                break;
-
-            Vehicle_pickDeliver newtruck(
-                    v_id++,
-                    problem->m_starting_site,
-                    problem->m_ending_site,
-                    problem->max_capacity,
-                    problem);
-            truck = newtruck;
-        }
-        invariant();
-    }
-}
-
-
-
-void
-Initial_solution::fill_truck_while_compatibleI(
-        Vehicle_pickDeliver &truck,
-        std::set<size_t> &possible_orders) {
-    invariant();
-    /*
-     * Precondition:
-     * truck.orders_in_vehicle intersection assigned == truck.orders_in_vehicle
-     * (all orders in the truck are in the assigned set)
-     */
-    std::set<size_t> invariant_set;
-    std::set_intersection(truck.orders_in_vehicle.begin(), truck.orders_in_vehicle.end(),
-            assigned.begin(), assigned.end(),
-            std::inserter(invariant_set, invariant_set.begin()));
-    pgassert(invariant_set == truck.orders_in_vehicle);
-
-    invariant_set.clear();
-    /*
-     * Precondition:
-     * possible_orders intersection unassigned == possible_orders
-     * (all possible orders are not in the assigned set)
-     */
-    std::set_intersection(possible_orders.begin(), possible_orders.end(),
-            assigned.begin(), assigned.end(),
-            std::inserter(invariant_set, invariant_set.begin()));
-    pgassert(invariant_set.empty());
-
-    /*
-     * termination of recursion
-     */
-    if (possible_orders.empty())
-        return;
-
-    /*
-     * CODE
-     */
-    auto best_order = *possible_orders.begin();
-    size_t max_size(0);
-
-    /*
-     * In the possible orders set look for the order that
-     * has more compatible orders with the current possible orders
-     */
-    for (auto &o : possible_orders) {
-        auto other_orders = problem->orders()[o].m_compatibleI;
-        auto intersect_orders = problem->orders()[o].subsetI(possible_orders);
-        if (max_size < intersect_orders.size()) {
-            max_size = intersect_orders.size();
-            best_order = o;
+        msg.log << unassigned.size() << " unassigned: " << unassigned << "\n";
+        msg.log << assigned.size() << " assigned:" << assigned << "\n";
+        auto current = unassigned.size();
+#if 0
+        auto truck = out_of_trucks?
+            trucks.get_truck(unassigned.front()) :
+            trucks.get_truck();
+#else
+        auto truck = trucks.get_truck(unassigned.front());
+#endif
+        msg.log << "got truck:" << truck.tau() << "\n";
+        /*
+         * kind 1 to 7 work with the same code structure
+         */
+        truck.do_while_feasable(kind, unassigned, assigned);
+        msg.log << unassigned.size() << " unassigned: " << unassigned << "\n";
+        msg.log << assigned.size() << " assigned:" << assigned << "\n";
+        msg.log << "current" << current << " unassigned: " << unassigned.size();
+        pgassertwm(current > unassigned.size(), msg.get_log().c_str());
+
+#if 0
+        if (truck.orders_in_vehicle().empty()) {
+            out_of_trucks = notused.has(truck.idx());
+            if (out_of_trucks) {
+                for (auto t : notused) {
+                    trucks.release_truck(t);
+                }
+            }
+            notused += truck.idx();
+            continue;
         }
-    }
-    auto intersect_orders = problem->orders()[best_order].subsetI(possible_orders);
-
-    truck.insert(problem->orders()[best_order]);
-    if (!truck.is_feasable()) {
-        truck.erase(problem->orders()[best_order]);
-    } else {
-        assigned.insert(best_order);
-        unassigned.erase(unassigned.find(best_order));
-    }
-
-    possible_orders.erase(possible_orders.find(best_order));
-    fill_truck_while_compatibleI(truck, possible_orders);
-    invariant();
-}
-
-
-
-
-
-
-
-
-
-
-
-std::deque<size_t>
-Initial_solution::first_ordersJI() const {
-    /*
-     * Sorted as:
-     * (| {J}|, | {I}|)
-     * orders: keep sorted based on the number of orders it is compatible with
-     */
-    std::deque<size_t> orders(unassigned.begin(), unassigned.end());
-    const Pgr_pickDeliver *prob = problem;
-    std::sort(orders.begin(), orders.end(), [&prob]
-            (const size_t &lhs, const size_t &rhs) -> bool
-            {return prob->orders()[lhs].m_compatibleI.size()
-            < prob->orders()[rhs].m_compatibleI.size();
-            });
-    std::stable_sort(orders.begin(), orders.end(), [&prob]
-            (const size_t &lhs, const size_t &rhs) -> bool
-            {return prob->orders()[lhs].m_compatibleJ.size()
-            < prob->orders()[rhs].m_compatibleJ.size();
-            });
-    return orders;
-}
-
-
-
-void
-Initial_solution::insert_while_compatibleI() {
-    problem->log << "\nInitial_solution::insert_while_compatible\n";
-    invariant();
-
-
-    size_t v_id(0);
-    Vehicle_pickDeliver truck(
-            v_id++,
-            problem->m_starting_site,
-            problem->m_ending_site,
-            problem->max_capacity,
-            problem);
-
-    while (!unassigned.empty()) {
-        std::deque<size_t> orders(first_ordersJI());
-
-        if (truck.empty()) {
-            auto order(problem->orders()[orders.front()]);
-            truck.insert(order);
-            assigned.insert(order.id());
-            orders.pop_front();
-            unassigned.erase(unassigned.find(order.id()));
-            invariant();
-
-            std::set<size_t> compatible_orders(
-                    problem->orders()[order.id()].m_compatibleI);
-            std::set<size_t> possible_orders;
-            std::set_intersection(
-                    compatible_orders.begin(), compatible_orders.end(),
-                    unassigned.begin(), unassigned.end(),
-                    std::inserter(possible_orders, possible_orders.begin()));
-
-
-            fill_truck_while_compatibleI(truck, possible_orders);
-            fleet.push_back(truck);
-
-            if (unassigned.empty())
-                break;
-
-            Vehicle_pickDeliver newtruck(
-                    v_id++,
-                    problem->m_starting_site,
-                    problem->m_ending_site,
-                    problem->max_capacity,
-                    problem);
-            truck = newtruck;
-        }
-        invariant();
-    }
-}
-
-
-
-
-
-void
-Initial_solution::insert_while_feasable() {
-    invariant();
-
-    size_t v_id(0);
-    Vehicle_pickDeliver truck(
-            v_id++,
-            problem->m_starting_site,
-            problem->m_ending_site,
-            problem->max_capacity,
-            problem);
-    problem->log << "\nInitial_solution::insert_while_feasable\n";
-    while (!unassigned.empty()) {
-        auto order(problem->orders()[*unassigned.begin()]);
-
-        truck.insert(order);
-
-        if (!truck.is_feasable()) {
-            truck.erase(order);
-            fleet.push_back(truck);
-            Vehicle_pickDeliver newtruck(
-                    v_id++,
-                    problem->m_starting_site,
-                    problem->m_ending_site,
-                    problem->max_capacity,
-                    problem);
-            truck = newtruck;
-        } else {
-            assigned.insert(*unassigned.begin());
-            unassigned.erase(unassigned.begin());
-        }
-
-        invariant();
-    }
-    if (truck.orders_size() !=0 ) {
+#endif
         fleet.push_back(truck);
-    }
-}
-
-void
-Initial_solution::push_front_while_feasable() {
-    size_t v_id(0);
-    Vehicle_pickDeliver truck(
-            v_id++,
-            problem->m_starting_site,
-            problem->m_ending_site,
-            problem->max_capacity,
-            problem);
-    while (!unassigned.empty()) {
-        auto order(problem->orders()[*unassigned.begin()]);
-
-        truck.push_front(order);
-        if (!truck.is_feasable()) {
-            truck.pop_front();
-            fleet.push_back(truck);
-            Vehicle_pickDeliver newtruck(
-                    v_id++,
-                    problem->m_starting_site,
-                    problem->m_ending_site,
-                    problem->max_capacity,
-                    problem);
-            truck = newtruck;
-        } else {
-            assigned.insert(*unassigned.begin());
-            unassigned.erase(unassigned.begin());
-        }
-
-        invariant();
-    }
-    if (truck.orders_size() !=0 ) {
-        fleet.push_back(truck);
-    }
-}
-
-void
-Initial_solution::push_back_while_feasable() {
-    size_t v_id(0);
-    Vehicle_pickDeliver truck(
-            v_id++,
-            problem->m_starting_site,
-            problem->m_ending_site,
-            problem->max_capacity,
-            problem);
-    while (!unassigned.empty()) {
-        auto order(problem->orders()[*unassigned.begin()]);
-
-        truck.push_back(order);
-        if (!truck.is_feasable()) {
-            truck.pop_back();
-            fleet.push_back(truck);
-            Vehicle_pickDeliver newtruck(
-                    v_id++,
-                    problem->m_starting_site,
-                    problem->m_ending_site,
-                    problem->max_capacity,
-                    problem);
-            truck = newtruck;
-        } else {
-            assigned.insert(*unassigned.begin());
-            unassigned.erase(unassigned.begin());
-        }
-
         invariant();
     }
 
-    if (truck.orders_size() !=0 ) {
-        fleet.push_back(truck);
-    }
-}
-
-
-
-void
-Initial_solution::one_truck_per_order() {
-    size_t v_id(0);
-    while (!unassigned.empty()) {
-        auto order(problem->orders()[*unassigned.begin()]);
-
-        Vehicle_pickDeliver truck(
-                v_id++,
-                problem->m_starting_site,
-                problem->m_ending_site,
-                problem->max_capacity,
-                problem);
-        truck.push_back(order);
-        fleet.push_back(truck);
-
-        assigned.insert(*unassigned.begin());
-        unassigned.erase(unassigned.begin());
-
-        invariant();
-    }
+    pgassertwm(true, msg.get_log().c_str());
+    pgassert(is_feasable());
+    invariant();
 }
 
 
@@ -542,24 +131,21 @@ Initial_solution::one_truck_per_order() {
 
 void
 Initial_solution::one_truck_all_orders() {
-    size_t v_id(0);
-    Vehicle_pickDeliver truck(
-            v_id++,
-            problem->m_starting_site,
-            problem->m_ending_site,
-            problem->max_capacity,
-            problem);
+    invariant();
+    msg.log << "\nInitial_solution::one_truck_all_orders\n";
+    auto truck = trucks.get_truck();
     while (!unassigned.empty()) {
-        auto order(problem->orders()[*unassigned.begin()]);
+        auto order(truck.orders()[*unassigned.begin()]);
 
         truck.insert(order);
 
-        assigned.insert(*unassigned.begin());
-        unassigned.erase(unassigned.begin());
+        assigned += unassigned.front();
+        unassigned.pop_front();
 
         invariant();
     }
     fleet.push_back(truck);
+    invariant();
 }
 
 
diff --git a/src/pickDeliver/src/initial_solution.h b/src/pickDeliver/src/initial_solution.h
deleted file mode 100644
index f89c0a4..0000000
--- a/src/pickDeliver/src/initial_solution.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-FILE: initial_solution.h
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- ********************************************************************PGR-GNU*/
-
-#pragma once
-
-#include <set>
-#include <deque>
-#include "./solution.h"
-
-namespace pgrouting {
-namespace vrp {
-
-
-class Pgr_pickDeliver;
-
-
-class Initial_solution : public Solution {
- public:
-     Initial_solution(
-             int kind,
-             const Pgr_pickDeliver *problem);
-
-     void invariant() const;
-
- private:
-     /*
-      * one truck per order
-      */
-     void one_truck_per_order();
-     void one_truck_all_orders();
-     void push_back_while_feasable();
-     void push_front_while_feasable();
-     void insert_while_feasable();
-
-     void insert_while_compatibleJ();
-     void fill_truck_while_compatibleJ(
-             Vehicle_pickDeliver &truck,
-             std::set<size_t> &possible_orders);
-     std::deque<size_t> first_ordersIJ() const;
-
-     void insert_while_compatibleI();
-     void fill_truck_while_compatibleI(
-             Vehicle_pickDeliver &truck,
-             std::set<size_t> &possible_orders);
-     std::deque<size_t> first_ordersJI() const;
-
-
- private:
-     std::set<size_t> all_orders;
-     std::set<size_t> unassigned;
-     std::set<size_t> assigned;
-};
-
-}  //  namespace vrp
-}  //  namespace pgRouting
diff --git a/src/pickDeliver/src/node.cpp b/src/pickDeliver/src/node.cpp
index 5eeb5e1..d687144 100644
--- a/src/pickDeliver/src/node.cpp
+++ b/src/pickDeliver/src/node.cpp
@@ -23,26 +23,25 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
  ********************************************************************PGR-GNU*/
 
-#include "./node.h"
+#include "vrp/node.h"
+
+#include "cpp_common/pgr_assert.h"
 
 namespace pgrouting {
 namespace vrp {
 
-bool Node::isSamePos(const Node &other) const {
-    return comparable_distance(other) == 0;
+std::ostream& operator << (std::ostream &log, const Node &node) {
+    node.print(log);
+    return log;
 }
 
-#if 0
-double Node::travel_time_to(const Node &other) const {
-    return distance(other);
-}
+void
+Node::print(std::ostream& os) const {
+    os << id()
+#ifndef NDEBUG
+        << "(" << idx() << ")"
 #endif
-
-std::ostream& operator << (std::ostream &log, const Node &node) {
-    log << node.m_original_id
-        << "(" << node.m_id << ")"
-       << "(" << node.m_point.x() << ", " << node.m_point.y() << ")";
-    return log;
+       << " (x,y) = (" << m_point.x() << ", " << m_point.y() << ")";
 }
 
 double
@@ -52,30 +51,33 @@ Node::distance(const Node &other) const {
     return sqrt(dx * dx + dy * dy);
 }
 
+/**
+ * para[in] n bas node to be casted as Node
+ */
 double
-Node::comparable_distance(const Node &other) const {
-    auto dx = m_point.x() - other.m_point.x();
-    auto dy = m_point.y() - other.m_point.y();
-    return dx * dx + dy * dy;
+Node::distance(const Base_node *n) const {
+    return distance(*dynamic_cast<const Node*>(n));
 }
 
-
-Node::Node(size_t id, int64_t original_id, double _x, double _y)
-    : m_point(_x, _y),
-    m_id(id),
-    m_original_id(original_id) {
+/**
+ * @param[in] _idx index to a container
+ * @param[in] _id  original identifier
+ * @param[in] _x   coordinate value
+ * @param[in] _y   coordinate value
+ */
+Node::Node(size_t _idx, int64_t _id, double _x, double _y)
+    : Base_node(_idx, _id),
+        m_point(_x, _y) {
     }
 
 bool
 Node::operator ==(const Node &rhs) const {
     if (&rhs == this) return true;
     return
-        (id() == rhs.id())
-         && (original_id() == rhs.original_id())
+        (idx() == rhs.idx())
+         && (id() == rhs.id())
          && (m_point == rhs.m_point);
 }
 
 }  //  namespace vrp
 }  //  namespace pgrouting
-
-
diff --git a/src/pickDeliver/src/node.h b/src/pickDeliver/src/node.h
deleted file mode 100644
index 25e790f..0000000
--- a/src/pickDeliver/src/node.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-FILE: node.h
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- ********************************************************************PGR-GNU*/
-
-#pragma once
-
-#include <string>
-// #include "./point.h"
-#include "../../common/src/xy_vertex.h"
-
-namespace pgrouting {
-namespace vrp {
-
-/*! \class Node
- * \brief The Node class defines a point in 2D space with an id.
- *
- * A Node is a point that defines a location in 2D space. It maintains
- * a user \c id and an internal \c nid along with its \c x, \c y location.
- * This is the base object that things like depots, customer locations, etc.
- * are built upon.
- *
- */
-
-// class Node : public Point {
-class Node {
- public:
-     /** @name accessors */
-     ///@ {
-
-     inline size_t id() const {return m_id;}
-     inline int64_t original_id() const {return m_original_id;}
-
-     ///@}
-
-     Node(size_t id, int64_t original_id, double _x, double _y);
-
-
-     /** @name state */
-     ///@ {
-
-     bool isSamePos(const Node &other) const;
-#if 0
-     double travel_time_to(const Node &node2) const;
-#endif
-     friend std::ostream& operator << (std::ostream &log, const Node &node);
-     bool operator ==(const Node &rhs) const;
-
-     double distance(const Node &other) const;
-     double comparable_distance(const Node &other) const;
-
-
- private:
-     pgrouting::Point m_point;
-     size_t m_id;                ///< internal node number
-     int64_t m_original_id;  // /< user supplied node number
-};
-
-}  //  namespace vrp
-}  //  namespace pgrouting
diff --git a/src/pickDeliver/src/optimize.cpp b/src/pickDeliver/src/optimize.cpp
index 6ae2732..553a087 100644
--- a/src/pickDeliver/src/optimize.cpp
+++ b/src/pickDeliver/src/optimize.cpp
@@ -28,105 +28,160 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 #include <limits>
 #include <set>
 
-#include "./../../common/src/pgr_assert.h"
+#include "cpp_common/pgr_assert.h"
 
-#include "./solution.h"
-#include "./optimize.h"
-#include "./pgr_pickDeliver.h"
+#include "vrp/solution.h"
+#include "vrp/book_keeping.h"
+#include "vrp/optimize.h"
+#include "vrp/pgr_pickDeliver.h"
 
 namespace pgrouting {
 namespace vrp {
 
 
 Optimize::Optimize(
-        int kind,
         const Solution &old_solution) :
     Solution(old_solution),
     best_solution(old_solution)  {
-        switch (kind) {
-            case 0:
-                sort_by_duration();
-                break;
-            case 1:
-                decrease_truck();
-                break;
-            case 2:
-                move_duration_based();
-                break;
-            case 3:
-                move_wait_time_based();
-                break;
-            case 4:
-                inter_swap();
-                break;
-        }
+        pgassert(false);
+        decrease_truck();
+        inter_swap(fleet.size());
+    }
+
+Optimize::Optimize(
+        const Solution &old_solution,
+        size_t times) :
+    Solution(old_solution),
+    best_solution(old_solution)  {
+        inter_swap(times);
+
         this->fleet = best_solution.fleet;
-        sort_by_duration();
-        delete_empty_truck();
+        msg.log << tau("bestSol before sort by size");
+        sort_by_size();
+        msg.log << tau("bestSol after sort by size");
+        msg.log <<  tau();
     }
 
 
 void
-Optimize::inter_swap() {
-    auto local_limit(fleet.size());
-    size_t i(0);
-    while (inter_swap(false) && (++i < local_limit)) {
+Optimize::inter_swap(size_t times) {
+    msg.log << tau("before sort by size");
+    sort_by_size();
+    msg.log << tau("before decrease");
+    decrease_truck();
+    msg.log << tau("after decrease");
+    sort_by_size();
+    msg.log << tau("after sort by size");
+
+    size_t i = 0;
+    while ((i++ < times) && inter_swap()) {
+        msg.log << tau("after inter swap");
+        msg.log << "\n***************************" << i;
+        std::rotate(fleet.begin(), fleet.begin() + 1, fleet.end());
+        msg.log << tau("before next cycle");
     }
-    i = 0;
-    while (inter_swap(true) && (++i < local_limit)) {
-    }
-    sort_by_duration();
-    delete_empty_truck();
-    this->fleet = best_solution.fleet;
 }
 
+/*
+ * ordering the trucks by number of orders it has
+ * - the truck with more orders wants to:
+ *   - make less time
+ *   - do more orders
+ * The inter_swap objective is to make the trucks with more orders
+ *  - less time consuming
+ */
 bool
-Optimize::inter_swap(bool reversed) {
-//    problem->log << tau("before sort");
-    sort_by_duration();
+Optimize::inter_swap() {
+    msg.log
+        << "\n" <<tau("before inter swap");
     delete_empty_truck();
-    save_if_best();
-    if (reversed) {
-        std::reverse(fleet.begin(), fleet.end());
-    }
-//    problem->log << tau("after sort");
-    auto swapped = false;
-    size_t from_pos(fleet.size()-1);
-    while (from_pos > 1) {
-        for (size_t to_pos = 0; to_pos < from_pos; ++to_pos) {
-            swapped = swap_worse(from_pos, to_pos)? true : swapped;
-            swapped = move_reduce_cost(from_pos, to_pos)? true : swapped;
+    auto swapped_f = false;
+    /*
+     *   .. to ... from ....
+     */
+    for (auto &from : fleet) {
+        for (auto &to : fleet) {
+            if (&from == &to) break;
+
+#if 0
+            msg.log
+                << "\n to " << to.id()
+                << "from " << from.id();
+            auto swapped = false;
+#endif
+            swap_worse(to, from);
+            swapped_f = swap_order() || swapped_f;
+            move_reduce_cost(from, to);
+#if 0
+            msg.log << "++++++++" << p_swaps;
+#endif
         }
-        delete_empty_truck();
-        --from_pos;
     }
-    return swapped;
+    while (!p_swaps.empty()) {
+        swapped_f = swap_order() || swapped_f;
+    }
+
+    msg.log
+        << "\n" <<tau("after");
+    delete_empty_truck();
+
+    return swapped_f;
 }
 
+
+
+/*
+ *   .. to ... from ....
+ */
 bool
-Optimize::swap_worse(size_t from_pos, size_t to_pos) {
-    pgassert(to_pos < from_pos);
-    auto from_truck = fleet[from_pos];
-    auto to_truck = fleet[to_pos];
-    auto swapped(false);
-    auto from_orders(from_truck.orders_in_vehicle);
-    auto to_orders(to_truck.orders_in_vehicle);
-    auto local_limit(from_orders.size() * to_orders.size() + 1);
-
-    while (!from_orders.empty() && --local_limit > 0) {
-        auto from_order(from_truck.get_worse_order(from_orders));
-        from_orders.erase(from_order.id());
-
-        while (!to_orders.empty()) {
-            auto to_order(to_truck.get_worse_order(to_orders));
-            to_orders.erase(to_order.id());
+Optimize::swap_worse(Vehicle_pickDeliver &to, Vehicle_pickDeliver &from) {
+#if 0
+    pgassert(from.orders_in_vehicle().size() <= to.orders_in_vehicle().size());
+#endif
+    auto from_truck = from;
+    auto to_truck = to;
+
+    auto swapped = false;
+
+#if 0
+    auto best_from_order = from_truck.orders_in_vehicle().front();
+    auto best_to_order = to_truck.orders_in_vehicle().front();
+#endif
+    for (auto from_orders = from_truck.orders_in_vehicle();
+            !from_orders.empty();
+            from_orders.pop_front()) {
+        auto from_order = from_truck.orders()[from_orders.front()];
+#if 0
+        pgassert(from_truck.has_order(from_order));
+        msg.log << "\n" << from_orders;
+        msg.log << "\n from " << from_order.idx()
+            << "," << from_order.pickup().original_id();
+        pgassert(from_truck.has_order(from_order));
+#endif
+        auto curr_from_duration = from_truck.duration();
+        pgassert(from_truck.has_order(from_order));
+
+        for (auto to_orders = to_truck.orders_in_vehicle();
+                !to_orders.empty();
+                to_orders.pop_front()) {
+            pgassert(from_truck.has_order(from_order));
+
+            auto to_order = to.orders()[to_orders.front()];
+#if 0
+            msg.log << "\n" << to_orders;
+            msg.log << "\n To " << to_order.idx();
+#endif
+            auto curr_to_duration = to_truck.duration();
 
             /*
              * delete from_order, and to order from their trucks
              */
-            auto curr_from_duration(from_truck.duration());
-            auto curr_to_duration(to_truck.duration());
-
+#if 0
+            pgassert(from_truck.has_order(from_order));
+            msg.log << "\n" << from_truck.tau();
+            msg.log << "\n" << from_order.idx();
+            pgassert(from_truck.has_order(from_order));
+#endif
             from_truck.erase(from_order);
             to_truck.erase(to_order);
 
@@ -140,54 +195,123 @@ Optimize::swap_worse(size_t from_pos, size_t to_pos) {
                 /*
                  * Can swap but:
                  *   - only swap when the total duration is reduced
-                 *   - or from_truck duration is reduced 
+                 *   - or from_truck duration is reduced
                  */
+#if 0
+                msg.log << "\n Can swap";
+                msg.log << "\n Curr_from_duration " << curr_from_duration;
+                msg.log << " Curr_to_duration " << curr_to_duration;
+                msg.log << "\n  new_from_duration "
+                    << from_truck.duration();
+                msg.log << "  new_to_duration " << to_truck.duration();
+#endif
+                auto estimated_delta =
+                    - (curr_from_duration + curr_to_duration)
+                    + (to_truck.duration() + from_truck.duration());
 
-                if (((from_truck.duration() + to_truck.duration())
-                            < (curr_from_duration + curr_to_duration))
-                        || (from_truck.duration() < curr_from_duration)) {
-                    problem->log
-                        << "\n    Swap order " << from_order.id()
-                        << " from truck " << from_truck.id()
-                        << " with order " << to_order.id() << " of truck " << to_truck.id();
-#ifndef NDEBUG
-                    problem->dbg_log << "\nswappping before:";
-                    problem->dbg_log << "\n" << fleet[to_pos].tau();
-                    problem->dbg_log << "\n" << fleet[from_pos].tau();
+#if 1
+                auto estimated_duration = duration() + estimated_delta;
+
+                if (from_truck.duration() < curr_from_duration ||
+                        estimated_delta < 0 ||
+                        estimated_duration < best_solution.duration()) {
 #endif
+                    msg.log
+                        << "\n Found Swap order "
+                        << from_order.pickup().id()
+                        << " from truck " << from_truck.idx()
+                        << " with order " << to_order.pickup().id()
+                        << " of truck " << to_truck.idx();
 
-                    swap_order(from_order, fleet[from_pos], to_order, fleet[to_pos]);
                     swapped = true;
-                    save_if_best();
-                    from_orders.insert(to_order.id());
-#ifndef NDEBUG
-                    problem->dbg_log << "\nswappping after:";
-                    problem->dbg_log << "\n" << fleet[to_pos].tau();
-                    problem->dbg_log << "\n" << fleet[from_pos].tau();
+#if 0
+                    best_to_order = to_order.idx();
+                    best_from_order = from_order.idx();
 #endif
-                    break;
+                    p_swaps.push(
+                            Swap_info(
+                                from,
+                                to,
+                                from_order.idx(),
+                                to_order.idx(),
+                                estimated_delta));
+#if 1
                 }
+#endif
             }
-            /*
-             * wasn't swapped
-             */
-            to_truck = fleet[to_pos];
-            from_truck = fleet[from_pos];
+            to_truck = to;
+            from_truck = from;
         }
+        from_truck = from;
     }
-    return swapped;
+
+    return false && swapped;
+}
+
+
+bool
+Optimize::swap_order() {
+#if 0
+    msg.log << "++++++++" << p_swaps;
+#endif
+    while (!p_swaps.empty()) {
+        auto swap_data = p_swaps.top();
+        p_swaps.pop();
+        size_t from_pos = 0;
+        size_t to_pos = 0;
+
+        for (; from_pos < fleet.size()
+                && fleet[from_pos].idx() != swap_data.from_truck.idx()
+                ; ++from_pos) {
+        }
+        pgassert(from_pos < fleet.size());
+        for (; to_pos < fleet.size()
+                && fleet[to_pos].idx() != swap_data.to_truck.idx()
+                ; ++to_pos) {
+        }
+        pgassert(to_pos < fleet.size());
+
+        if (swap_order(
+                fleet[from_pos].orders()[swap_data.from_order], fleet[from_pos],
+                fleet[to_pos].orders()[swap_data.to_order], fleet[to_pos])) {
+            save_if_best();
+#if 0
+            msg.log
+                << "\n Swapping order "
+                << fleet[from_pos].orders()[
+                    swap_data.from_order].pickup().original_id()
+                << " from truck " << fleet[from_pos].id()
+                << " with order "
+                << fleet[to_pos].orders()[
+                    swap_data.to_order].pickup().original_id()
+                << " of truck " <<  fleet[to_pos].id();
+#endif
+#if 0
+            msg.log << "\nswappping after:";
+            msg.log << "\n" <<  fleet[to_pos].tau();
+            msg.log << "\n" << fleet[from_pos].tau();
+#endif
+            return true;
+        }
+    }
+    return false;
 }
 
 /*
  * from_truck: position of the truck where the order is
  * to truck: truck to put the order
  */
-void
+bool
 Optimize::swap_order(
         const Order from_order,
         Vehicle_pickDeliver &from_truck,
         const Order to_order,
         Vehicle_pickDeliver &to_truck) {
+    if (!from_truck.has_order(from_order)
+            || !to_truck.has_order(to_order)) {
+        return false;
+    }
+
     pgassert(from_truck.has_order(from_order));
     pgassert(to_truck.has_order(to_order));
 
@@ -200,6 +324,28 @@ Optimize::swap_order(
 
     pgassert(from_truck.has_order(to_order));
     pgassert(to_truck.has_order(from_order));
+    return true;
+}
+
+void
+Optimize::sort_by_id() {
+    std::sort(fleet.begin(), fleet.end(), []
+            (const Vehicle_pickDeliver &lhs, const Vehicle_pickDeliver &rhs)
+            -> bool {
+            return lhs.orders_in_vehicle().size()
+            > rhs.orders_in_vehicle().size();
+            });
+}
+
+void
+Optimize::sort_by_size() {
+    sort_by_duration();
+    std::stable_sort(fleet.begin(), fleet.end(), []
+            (const Vehicle_pickDeliver &lhs, const Vehicle_pickDeliver &rhs)
+            -> bool {
+            return lhs.orders_in_vehicle().size()
+            > rhs.orders_in_vehicle().size();
+            });
 }
 
 void
@@ -213,28 +359,30 @@ Optimize::sort_by_duration() {
 
 void
 Optimize::delete_empty_truck() {
-    while (fleet.back().empty()) {
-        problem->log << "\nEmpty truck";
-        fleet.pop_back();
-        save_if_best();
-    }
+    fleet.erase(std::remove_if(
+                fleet.begin(),
+                fleet.end(),
+                [](const Vehicle_pickDeliver &v){
+                return v.orders_in_vehicle().empty();}),
+            fleet.end());
     save_if_best();
 }
 
+#if 0
 void
 Optimize::move_duration_based() {
     auto local_limit(fleet.size());
     size_t i(0);
 
     sort_by_duration();
-    problem->log << tau("\nmove duration based");
+    msg.log << tau("\nmove duration based");
     while (move_reduce_cost() && (++i < local_limit)) { }
     delete_empty_truck();
 
     i = 0;
     sort_by_duration();
     std::reverse(fleet.begin(), fleet.end());
-    problem->log << tau("\nmove duration based");
+    msg.log << tau("\nmove duration based");
     while (move_reduce_cost() && (++i < local_limit)) { }
     sort_by_duration();
     delete_empty_truck();
@@ -250,25 +398,27 @@ Optimize::move_wait_time_based() {
     size_t i(0);
 
     sort_for_move();
-    problem->log << tau("\nmove wait_time based");
+    msg.log << tau("\nmove wait_time based");
     while (move_reduce_cost() && (++i < local_limit)) { }
     delete_empty_truck();
 
     i = 0;
     sort_for_move();
     std::reverse(fleet.begin(), fleet.end());
-    problem->log << tau("\nmove wait_time based");
+    msg.log << tau("\nmove wait_time based");
     while (move_reduce_cost() && (++i < local_limit)) { }
     sort_by_duration();
     delete_empty_truck();
     this->fleet = best_solution.fleet;
 }
+#endif
 
+#if 0
 /*
  * On the current order of the fleet
  * T1 .......Tn-1  Tn Tn+1...... Tsize
  * Tn tries to move orders to trucks
- *      T1 .... Tn-1 
+ *      T1 .... Tn-1
  * So that it gets space for the orders given by
  *      Tn+1 .... Tsize
  * On the first move possible it returns
@@ -277,29 +427,24 @@ Optimize::move_wait_time_based() {
  *
  * Returns true: when a move was possible
  * Returns false: when a move was not possible
- */ 
+ */
 
 
 bool
 Optimize::move_reduce_cost() {
     if (fleet.size() < 2) return false;
+    bool moved = false;
 
     size_t from_pos(fleet.size() - 1);
     while (from_pos > 1) {
         for (size_t to_pos = 0; to_pos < from_pos; ++to_pos) {
-            // problem->log << "\nmove_reduce_cost (" << fleet[from_pos].id()  << ", " << fleet[to_pos].id() << ")";
-            if (move_reduce_cost(from_pos, to_pos)) {
-                if (fleet[from_pos].empty()) {
-                    fleet.erase(fleet.begin() + from_pos);
-                    save_if_best();
-                }
-                return true;
-            }
+            moved = move_reduce_cost(from_pos, to_pos) || moved;
         }
         --from_pos;
     }
-    return false;
+    return moved;
 }
+#endif
 
 /*
  * from_truck trying to make from_truck's duration smaller
@@ -310,49 +455,80 @@ Optimize::move_reduce_cost() {
  * - number of truck remains the same
  * - from_truk duration() can not get larger
  * - the overall duration can get larger
- * 
+ *
  */
 bool
-Optimize::move_reduce_cost(size_t from_pos, size_t to_pos) {
-    pgassert(to_pos < from_pos);
-    auto from_truck = fleet[from_pos];
-    auto to_truck = fleet[to_pos];
-    auto moved(false);
-
-    auto orders(from_truck.orders_in_vehicle);
-    while (!orders.empty()) {
+Optimize::move_reduce_cost(
+        Vehicle_pickDeliver &from,
+        Vehicle_pickDeliver &to) {
+    auto from_truck = from;
+    auto to_truck = to;
+
+    /*
+     * don't move from a real truck to a phoney truck
+     */
+    if (!from_truck.is_phony() && to_truck.is_phony()) {
+        return false;
+    }
+#if 0
+    from.id()  > to.id()
+        ?  to : from;
+#endif
+    size_t from_pos = 0;
+    size_t to_pos = 0;
+
+    for (; from_pos < fleet.size()
+            && fleet[from_pos].idx() != from_truck.idx()
+            ; ++from_pos) {
+    }
+    pgassert(from_pos < fleet.size());
+    for (; to_pos < fleet.size()
+            && fleet[to_pos].idx() != to_truck.idx()
+            ; ++to_pos) {
+    }
+    pgassert(to_pos < fleet.size());
+
+    auto moved = false;
+
+    auto from_orders = from_truck.orders_in_vehicle();
+    while (!from_orders.empty()) {
         /*
-         * get the order that decreases the duration the most
-         * (there is always a worse)
+         * removing an order decreases the duration
          */
-        auto order = from_truck.get_worse_order(orders);
-        orders.erase(order.id());
+        auto order = from_truck.orders()[from_orders.front()];
+        from_orders -= order.idx();
 
         /*
-         * insert it in the next truck
+         * insert it in the "to" truck
          */
         to_truck.insert(order);
         if (to_truck.is_feasable()) {
-            problem->log
-                << "\n    Move order " << order.id()
-                << " from truck " << from_truck.id()
-                << " to truck " << to_truck.id();
+            msg.log
+                << "\n    Move order " << order.pickup().id()
+                << " from truck " << from_truck.idx()
+                << " to truck " << to_truck.idx();
 #ifndef NDEBUG
-            problem->dbg_log << "\nMove before:";
-            problem->dbg_log << "\n" << fleet[to_pos].tau();
-            problem->dbg_log << "\n" << fleet[from_pos].tau();
+            msg.dbg_log << "\nMove before:";
+            msg.dbg_log << "\n" << fleet[to_pos].tau();
+            msg.dbg_log << "\n" << fleet[from_pos].tau();
 #endif
 
+#if 1
             from_truck.erase(order);
+#else
+            to_truck.insert(order);
             move_order(order, fleet[from_pos], fleet[to_pos]);
+#endif
             moved = true;
             save_if_best();
 
 #ifndef NDEBUG
-            problem->dbg_log << "\nMove after:";
-            problem->dbg_log << "\n" << fleet[to_pos].tau();
-            problem->dbg_log << "\n" << fleet[from_pos].tau();
+            msg.dbg_log << "\nMove after:";
+            msg.dbg_log << "\n" << fleet[to_pos].tau();
+            msg.dbg_log << "\n" << fleet[from_pos].tau();
 #endif
+        } else {
+            to_truck.erase(order);
         }
     }
     return moved;
@@ -399,97 +575,72 @@ Optimize::sort_for_move() {
  * Optimize decreasing truck
  *
  * - Objective: try to remove truck with less duration
+ * - Secundary objective, acts like a shake operation
  *
- * Step 1: Sort the fleet, duration DESC
- * Step 2: grab an order from the back of the the fleet
- * Step 3: cycle the fleet & insert in best truck possible
  */
 void
 Optimize::decrease_truck() {
-    bool decreased(true);
-    while (decreased) {
-        decreased = false;
-        sort_by_duration();
-        std::reverse(fleet.begin(), fleet.end());
-        decrease_truck(fleet.size(), decreased);
+    bool decreased(false);
+    for (size_t i = 1; i < fleet.size(); ++i) {
+        decreased = decrease_truck(i) || decreased;
     }
-    this->fleet = best_solution.fleet;
+    if (decreased) {
+        delete_empty_truck();
+        save_if_best();
+        decrease_truck();
+    }
+    save_if_best();
 }
 
-void
-Optimize::decrease_truck(size_t cycle, bool &decreased) {
-    /* end recursion */
-    if (cycle == 0) return;
+bool
+Optimize::decrease_truck(size_t cycle) {
 
-    std::ostringstream err_log;
-    err_log << " --- Cycle " << cycle << "\n";
+    auto position = cycle;
+    for (auto orders = fleet[position].orders_in_vehicle();
+            !orders.empty();
+            orders.pop_front()) {
+        /* Step 2: grab an order */
+        auto order = fleet[position].orders()[orders.front()];
+        pgassert(order.idx() == orders.front());
 
-    /* the front truck move to back */
-    std::rotate(fleet.begin(), fleet.begin() + 1, fleet.end());
-    err_log << "\n after rotate" << tau();
 
-    auto orders(fleet.back().orders_in_vehicle);
-    while (!orders.empty()) {
-        /* Step 2: grab an order */
-        auto order(problem->orders()[*orders.begin()]);
-        orders.erase(orders.begin());
-        err_log << "\n truck with order: " << fleet.back().tau();
-        err_log << "\nOrder" << order << "\n";
-
-        /* Step 3: delete the order from the back of the fleet */
-        pgassertwm(fleet.back().has_order(order), err_log.str());
-        fleet.back().erase(order);
-        pgassertwm(!fleet.back().has_order(order), err_log.str());
-
-        /* Step 3: cycle the fleet & insert in best truck possible */
-        /* current truck is tried last */
-        err_log << " trying ";
-        auto best_truck(fleet.size() - 1);
-        auto current_duration(duration());
-        auto min_delta_duration = (std::numeric_limits<double>::max)();
-        size_t t_i(0);
-        for (auto &truck : fleet) {
-            truck.insert(order);
-            if (!truck.is_feasable()) {
-                err_log << "\n" << truck.tau();
+        /* Step 3:
+         * cycle the fleet
+         * insert in first truck possible
+         */
+
+        for (size_t i = 0; i < position; ++i) {
+            fleet[i].insert(order);
+            if (fleet[i].is_feasable()) {
+                /*
+                 * delete the order from the current truck
+                 */
+                fleet[position].erase(order);
+                break;
             } else {
-                err_log << "\n ******* success " << truck.tau() << "\n";
-                auto delta_duration = duration()-current_duration;
-                if (t_i != fleet.size() - 1
-                        && (delta_duration < min_delta_duration)) {
-                    min_delta_duration = delta_duration;
-                    best_truck = t_i;
-                }
+                fleet[i].erase(order);
             }
-            truck.erase(order);
-            ++t_i;
         }
-        fleet[best_truck].insert(order);
-        save_if_best();
-    }
-
-    if (fleet.back().empty()) {
-        decreased = true;
-        fleet.pop_back();
-        save_if_best();
     }
-    decrease_truck(--cycle, decreased);
+    return fleet[position].orders_in_vehicle().empty();
 }
 
 void
 Optimize::save_if_best() {
     if (duration() < best_solution.duration()) {
         best_solution = (*this);
-        problem->log << "\n*********** best by duration" << best_solution.cost_str();
+        msg.log << "\n*********** best by duration"
+            << best_solution.cost_str();
 #ifndef NDEBUG
-        problem->dbg_log << best_solution.tau("best by duration");
+        msg.dbg_log << best_solution.tau("best by duration");
 #endif
     }
     if (fleet.size() < best_solution.fleet.size()) {
         best_solution = (*this);
-        problem->log << "\n*********** best by fleet size" << best_solution.cost_str();
+        msg.log << "\n*********** best by fleet size"
+            << best_solution.cost_str();
 #ifndef NDEBUG
-        problem->dbg_log << best_solution.tau("best by fleet size");
+        msg.dbg_log << best_solution.tau("best by fleet size");
 #endif
     }
 }
diff --git a/src/pickDeliver/src/optimize.h b/src/pickDeliver/src/optimize.h
deleted file mode 100644
index b27166c..0000000
--- a/src/pickDeliver/src/optimize.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-FILE: optimize.cpp
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- ********************************************************************PGR-GNU*/
-
-#pragma once
-
-#include "./optimize.h"
-
-namespace pgrouting {
-namespace vrp {
-
-class Solution;
-class Pgr_pickDeliver;
-
-
-class Optimize : public Solution {
- public:
-     Optimize(int kind,
-             const Solution &solution);
-
-     /* @brief decrease_truck
-      *
-      * Optimization by decreasing trucks
-      */
-     void decrease_truck();
-     bool move_reduce_cost();
-     void move_wait_time_based();
-     void move_duration_based();
-     void inter_swap();
-     Solution best_solution;
- private:
-     void decrease_truck(size_t, bool&);
-     bool move_reduce_cost(size_t, size_t);
-     void sort_for_move();
-     void sort_by_duration();
-     void delete_empty_truck();
-
-     bool swap_worse(size_t from_pos, size_t to_pos);
-     bool inter_swap(bool reversed);
-
-     void move_order(
-             Order order,
-             Vehicle_pickDeliver &from_truck,
-             Vehicle_pickDeliver &to_truck); 
-     void swap_order(
-             Order from_order,
-             Vehicle_pickDeliver &from_truck,
-             Order to_order,
-             Vehicle_pickDeliver &to_truck); 
-     void save_if_best();
-
-};
-
-}  //  namespace vrp
-}  //  namespace pgrouting
diff --git a/src/pickDeliver/src/order.cpp b/src/pickDeliver/src/order.cpp
index 101edd3..61e3226 100644
--- a/src/pickDeliver/src/order.cpp
+++ b/src/pickDeliver/src/order.cpp
@@ -24,70 +24,50 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  ********************************************************************PGR-GNU*/
 
 
+#include "vrp/order.h"
 
-#include <set>
-#include "./../../common/src/pgr_assert.h"
-#include "./pgr_pickDeliver.h"
-#include "./order.h"
 
 namespace pgrouting {
 namespace vrp {
 
 
-std::set<size_t>
-Order::subsetI(const std::set<size_t> &I) const {
-    std::set<size_t> intersect;
-    std::set_intersection(m_compatibleI.begin(), m_compatibleI.end(),
-            I.begin(), I.end(),
-            std::inserter(intersect, intersect.begin()));
-    return intersect;
+Identifiers<size_t>
+Order::subsetI(const Identifiers<size_t> &I) const {
+    return m_compatibleI * I;
 }
 
-std::set<size_t>
-Order::subsetJ(const std::set<size_t> &J) const {
-    std::set<size_t> intersect;
-    std::set_intersection(m_compatibleJ.begin(), m_compatibleJ.end(),
-            J.begin(), J.end(),
-            std::inserter(intersect, intersect.begin()));
-    return intersect;
+Identifiers<size_t>
+Order::subsetJ(const Identifiers<size_t> &J) const {
+    return m_compatibleJ * J;
 }
 
 
-Order::Order(size_t p_id,
+Order::Order(
+        size_t p_idx, int64_t p_id,
         const Vehicle_node &p_pickup,
-        const Vehicle_node &p_delivery,
-        const Pgr_pickDeliver *p_problem) :
-    m_id(p_id),
-    pickup_id(p_pickup.id()),
-    delivery_id(p_delivery.id()),
-    problem(p_problem) {
-        pgassert(pickup().is_pickup());
-        pgassert(delivery().is_delivery());
+        const Vehicle_node &p_delivery) :
+    Identifier(p_idx, p_id),
+    m_pickup(p_pickup),
+    m_delivery(p_delivery) {
     }
 
 std::ostream&
-operator << (std::ostream &log, const Order &order) {
-    log << "\n\nOrder " << order.m_id << ":\n"
+operator<< (std::ostream &log, const Order &order) {
+    log << "\n\nOrder "
+        << static_cast<Identifier>(order) << ": \n"
         << "\tPickup: " << order.pickup() << "\n"
-        << "\tDelivery: " << order.delivery() << "\n\n";
-    if (order.delivery().is_partially_compatible_IJ(order.pickup())) {
-        log << "\tis_partially_compatible_IJ: ";
-    } else if (order.delivery().is_tight_compatible_IJ(order.pickup())) {
-        log << "\tis_tight_compatible_IJ: ";
-    } else if (order.delivery().is_waitTime_compatible_IJ(order.pickup())) {
-        log << "\tis_waitTime_compatible_IJ: ";
-    } else {
-        pgassert(false);
-    }
+        << "\tDelivery: " << order.delivery() << "\n\n"
+        << "\tTravel time: "
+        << order.pickup().travel_time_to(order.delivery(), 1);
     log << "\nThere are | {I}| = "
         << order.m_compatibleI.size()
-        << " -> order(" << order.id()
+        << " -> order(" << order.idx()
         << ") -> | {J}| = " << order.m_compatibleJ.size()
         << "\n\n {";
     for (const auto o : order.m_compatibleI) {
         log << o << ", ";
     }
-    log << "} -> " << order.id() << " -> {";
+    log << "} -> " << order.idx() << " -> {";
     for (const auto o : order.m_compatibleJ) {
         log << o << ", ";
     }
@@ -99,20 +79,24 @@ operator << (std::ostream &log, const Order &order) {
 
 
 const Vehicle_node&
-Order::delivery() const {return problem->node(delivery_id);}
+Order::delivery() const {
+    return m_delivery;
+}
 
 
 const Vehicle_node&
-Order::pickup() const {return problem->node(pickup_id);}
+Order::pickup() const {
+    return m_pickup;
+}
 
 
 bool
-Order::is_valid() const {
+Order::is_valid(double speed) const {
     return
         pickup().is_pickup()
         && delivery().is_delivery()
-        /* P -> D */
-        && delivery().is_compatible_IJ(pickup());
+        /* IS P -> D */
+        && delivery().is_compatible_IJ(pickup(), speed);
 }
 
 
@@ -123,68 +107,52 @@ Order::is_valid() const {
  * (*this) -> J
  *
  */
-
 void
-Order::setCompatibles() {
-    for (const auto J : problem->orders()) {
-        if (J.id() == id()) continue;
-        if (J.isCompatibleIJ(*this)) {
-            /*
-             * this -> {J}
-             */
-            m_compatibleJ.insert(J.id());
-        }
-        if (this->isCompatibleIJ(J)) {
-            /*
-             * {J} -> this
-             */
-            m_compatibleI.insert(J.id());
-        }
+Order::set_compatibles(const Order J, double speed) {
+    if (J.idx() == idx()) return;
+    if (J.isCompatibleIJ(*this, speed)) {
+        /*
+         * this -> {J}
+         */
+        m_compatibleJ += J.idx();
+    }
+    if (this->isCompatibleIJ(J, speed)) {
+        /*
+         * {J} -> this
+         */
+        m_compatibleI += J.idx();
     }
 }
 
+
 /*
  * True when
  *
  * I -> (*this)
  *
  */
-
 bool
-Order::isCompatibleIJ(const Order &I) const {
+Order::isCompatibleIJ(const Order &I, double speed) const {
     /* this is true in all cases */
     auto all_cases(
-            pickup().is_compatible_IJ(I.pickup())
-            && delivery().is_compatible_IJ(I.pickup()));
+            pickup().is_compatible_IJ(I.pickup(), speed)
+            && delivery().is_compatible_IJ(I.pickup(), speed));
 
     /* case other(P) other(D) this(P) this(D) */
-    auto case1(pickup().is_compatible_IJ(I.delivery())
-            && delivery().is_compatible_IJ(I.delivery()));
+    auto case1(pickup().is_compatible_IJ(I.delivery(), speed)
+            && delivery().is_compatible_IJ(I.delivery(), speed));
 
     /* case other(P) this(P) other(D) this(D) */
-    auto case2(I.delivery().is_compatible_IJ(pickup())
-            && delivery().is_compatible_IJ(I.delivery()));
+    auto case2(I.delivery().is_compatible_IJ(pickup(), speed)
+            && delivery().is_compatible_IJ(I.delivery(), speed));
 
     /* case other(P) this(P) this(D) other(D) */
-    auto case3(I.delivery().is_compatible_IJ(pickup())
-            && I.delivery().is_compatible_IJ(delivery()));
+    auto case3(I.delivery().is_compatible_IJ(pickup(), speed)
+            && I.delivery().is_compatible_IJ(delivery(), speed));
 
     return all_cases &&  (case1 ||  case2 ||  case3);
 }
 
-
-#if 0
-bool
-Order::isOrderCompatibleEnd(const Vehicle_node &node) const {
-    return false;
-}
-
-bool
-Order::isOrderCompatibleStart(const Vehicle_node &node) const {
-    return false;
-}
-#endif
-
 }  //  namespace vrp
 }  //  namespace pgrouting
 
diff --git a/src/pickDeliver/src/order.h b/src/pickDeliver/src/order.h
deleted file mode 100644
index 37a3b65..0000000
--- a/src/pickDeliver/src/order.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-FILE: order.h
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- ********************************************************************PGR-GNU*/
-
-
-#pragma once
-
-#include <set>
-#include <iostream>
-#include "./vehicle_node.h"
-
-namespace pgrouting {
-namespace vrp {
-
-
-class Pgr_pickDeliver;
-class Initial_solution;
-
-
-class Order {
- public:
-     friend class Initial_solution;
-     friend class Pgr_pickDeliver;
-
-     Order(size_t p_id,
-             const Vehicle_node &p_pickup,
-             const Vehicle_node &p_deliver,
-             const Pgr_pickDeliver *p_problem);
-
-     Order(const Order &) = default;
-
-
-
-     /*************accesosrs*/
-
-     inline size_t id() const {return m_id;}
-     const Vehicle_node& delivery() const;
-     const Vehicle_node& pickup() const;
-     void setCompatibles();
-
-     /*!
-      * An order is valid when:
-      *   - The pickup is well formed
-      *   - The delivery is well formed
-      *   - isCompatibleIJ to go to delivery after inmediatly visiting pickup
-      */
-     bool is_valid() const;
-
-
-     bool isCompatibleIJ(const Order &other) const;
-#if 0
-     bool isOrderCompatibleStart(const Vehicle_node &node) const;
-     bool isOrderCompatibleEnd(const Vehicle_node &node) const;
-#endif
-     std::set<size_t> subsetJ(const std::set<size_t> &J) const;
-     std::set<size_t> subsetI(const std::set<size_t> &I) const;
-
-     friend std::ostream& operator << (std::ostream&, const Order &);
-
-     //    void moveOrder(const int toRoute);
- private:
-     size_t m_id;
-
-     size_t pickup_id;
-     size_t delivery_id;
-
-     /*
-      * I = this
-      * I -> {J}
-      */
-     std::set<size_t> m_compatibleJ;
-
-     /*
-      * J = this
-      * {I} -> J
-      */
-     std::set<size_t> m_compatibleI;
-
-
-     /* order belongs to this problem */
-     const Pgr_pickDeliver *problem;
-};
-
-}  //  namespace vrp
-}  //  namespace pgrouting
diff --git a/src/pickDeliver/src/pd_orders.cpp b/src/pickDeliver/src/pd_orders.cpp
new file mode 100644
index 0000000..9047b39
--- /dev/null
+++ b/src/pickDeliver/src/pd_orders.cpp
@@ -0,0 +1,203 @@
+/*PGR-GNU*****************************************************************
+
+FILE: solution.cpp
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+#include "vrp/pd_orders.h"
+
+#include <vector>
+#include <memory>
+#include <utility>
+
+#include "vrp/pgr_pickDeliver.h"
+#include "vrp/dnode.h"
+
+namespace pgrouting {
+namespace vrp {
+
+
+PD_Orders::PD_Orders(
+        const std::vector<PickDeliveryOrders_t> &pd_orders
+        ) {
+    build_orders(pd_orders);
+}
+
+
+void
+PD_Orders:: add_order(
+        const PickDeliveryOrders_t &order,
+        std::unique_ptr<Base_node> b_pick,
+        const Vehicle_node &pick,
+        std::unique_ptr<Base_node> b_drop,
+        const Vehicle_node &drop) {
+    problem->add_base_node(std::move(b_pick));
+    problem->add_base_node(std::move(b_drop));
+    problem->add_node(pick);
+    problem->add_node(drop);
+
+    /*
+     * add into an order
+     */
+    m_orders.push_back(
+            Order(m_orders.size(), order.id,
+                pick,
+                drop));
+}
+
+
+void
+PD_Orders::build_orders(
+        const std::vector<PickDeliveryOrders_t> &pd_orders
+        ) {
+    ENTERING();
+    for (const auto order : pd_orders) {
+        /*
+         * SAMPLE CORRECT INFORMATION
+         *
+         * id | demand | pick_x | pick_y | pick_open_t | pick_close_t | pick_service_t | deliver_x | deliver_y | deliver_open_t | deliver_open_t | deliver_close_t | deliver_service_t
+         * 1  | 10     |   35   |   69   |   448       |   505        |    90          |    45     |   68      |    912         |   967          |    90           |    35
+         */
+
+        if  (problem->m_cost_matrix.empty()) {
+            /*
+             * Euclidean version
+             */
+            auto b_pick = create_b_pick<Node>(order, problem->node_id());
+            Vehicle_node pickup(
+                    {problem->node_id()++, order, Tw_node::NodeType::kPickup});
+
+            auto b_drop = create_b_deliver<Node>(order, problem->node_id());
+            Vehicle_node delivery({
+                    problem->node_id()++,
+                    order,
+                    Tw_node::NodeType::kDelivery});
+
+
+            add_order(order,
+                    std::move(b_pick), pickup,
+                    std::move(b_drop), delivery);
+        } else {
+            /*
+             * matrix version
+             */
+            msg.log << "pickup \n"
+                << "pick_node_id: " << order.pick_node_id
+                << "\n";
+
+            msg.log << "pickup \n"
+                << "deliver_node_id: " << order.deliver_node_id
+                << "\n";
+            auto b_pick = create_b_pick<Dnode>(order, problem->node_id());
+            Vehicle_node pickup(
+                    {problem->node_id()++, order, Tw_node::NodeType::kPickup});
+
+            auto b_drop = create_b_deliver<Dnode>(order, problem->node_id());
+            Vehicle_node delivery({
+                    problem->node_id()++,
+                    order,
+                    Tw_node::NodeType::kDelivery});
+
+            add_order(order,
+                    std::move(b_pick), pickup,
+                    std::move(b_drop), delivery);
+        }
+    }  //  for (creating orders)
+
+    EXITING();
+}
+
+bool
+PD_Orders::is_valid(double speed) const {
+    for (const auto &o : m_orders) {
+        if (!o.is_valid(speed)) {
+            return false;
+        }
+        pgassert(o.pickup().is_pickup());
+        pgassert(o.delivery().is_delivery());
+        /* P -> D */
+        pgassert(o.delivery().is_compatible_IJ(o.pickup(), speed));
+    }
+    return true;
+}
+
+Order&
+PD_Orders::operator[](size_t i) {
+    pgassert(i < m_orders.size());
+    return m_orders[i];
+}
+
+const Order&
+PD_Orders::operator[](size_t i) const {
+    pgassert(i < m_orders.size());
+    return m_orders[i];
+}
+
+void
+PD_Orders::set_compatibles(double speed) {
+    for (auto &I : m_orders) {
+        for (const auto J : m_orders) {
+            I.set_compatibles(J, speed);
+        }
+    }
+}
+
+size_t
+PD_Orders::find_best_J(
+        Identifiers<size_t> &within_this_set) const {
+    pgassert(!within_this_set.empty());
+    auto best_order = within_this_set.front();
+    size_t max_size = 0;
+
+
+    for (auto o : within_this_set) {
+        auto size_J =  m_orders[o].subsetJ(within_this_set).size();
+        if (max_size < size_J) {
+            max_size = size_J;
+            best_order = o;
+        }
+    }
+    return best_order;
+}
+
+
+size_t
+PD_Orders::find_best_I(
+        Identifiers<size_t> &within_this_set) const {
+    pgassert(!within_this_set.empty());
+    auto best_order = within_this_set.front();
+    size_t max_size = 0;
+
+
+    for (auto o : within_this_set) {
+        auto size_I =  m_orders[o].subsetI(within_this_set).size();
+        if (max_size < size_I) {
+            max_size = size_I;
+            best_order = o;
+        }
+    }
+    return best_order;
+}
+
+
+}  //  namespace vrp
+}  //  namespace pgrouting
diff --git a/src/pickDeliver/src/pd_problem.cpp b/src/pickDeliver/src/pd_problem.cpp
new file mode 100644
index 0000000..0e8d3b9
--- /dev/null
+++ b/src/pickDeliver/src/pd_problem.cpp
@@ -0,0 +1,46 @@
+/*PGR-GNU*****************************************************************
+
+FILE: pgr_pickDeliver.h
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+
+#include "vrp/pd_problem.h"
+
+namespace pgrouting {
+namespace vrp {
+
+Pgr_pickDeliver* PD_problem::problem;
+Pgr_messages PD_problem::msg;
+
+PD_problem::PD_problem(Pgr_pickDeliver* p_problem) {
+    PD_problem::problem = p_problem;
+    msg.clear();
+}
+
+PD_problem::PD_problem(const PD_problem &)
+    { }
+
+
+}  //  namespace vrp
+}  //  namespace pgrouting
+
diff --git a/src/pickDeliver/src/pgr_messages.cpp b/src/pickDeliver/src/pgr_messages.cpp
new file mode 100644
index 0000000..b7cb6c7
--- /dev/null
+++ b/src/pickDeliver/src/pgr_messages.cpp
@@ -0,0 +1,83 @@
+/*PGR-GNU*****************************************************************
+
+FILE: pgr_pickDeliver.h
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+
+#include <string>
+#include <sstream>
+#include "cpp_common/pgr_messages.h"
+
+namespace pgrouting {
+
+
+
+std::string
+Pgr_messages::get_log() const {
+    auto str = log.str();
+    return str;
+}
+
+std::string
+Pgr_messages::get_notice() const {
+    auto str = notice.str();
+    return str;
+}
+
+bool
+Pgr_messages::has_error() const {
+    return  !error.str().empty();
+}
+
+std::string
+Pgr_messages::get_error() const {
+    auto str = error.str();
+    return str;
+}
+
+#ifndef NDEBUG
+std::string
+Pgr_messages::get_dbglog() const {
+    return dbg_log.str();
+}
+#endif
+
+void
+Pgr_messages::clear() {
+    log.str("");
+    log.clear();
+
+    notice.str("");
+    notice.clear();
+
+    error.str("");
+    error.clear();
+
+#ifndef NDEBUG
+    dbg_log.str("");
+    dbg_log.clear();
+#endif
+}
+
+
+}  //  namespace pgrouting
diff --git a/src/pickDeliver/src/pgr_pickDeliver.cpp b/src/pickDeliver/src/pgr_pickDeliver.cpp
index dab1044..90988fb 100644
--- a/src/pickDeliver/src/pgr_pickDeliver.cpp
+++ b/src/pickDeliver/src/pgr_pickDeliver.cpp
@@ -23,91 +23,124 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
  ********************************************************************PGR-GNU*/
 
-#include "./pgr_pickDeliver.h"
+#include "vrp/pgr_pickDeliver.h"
 
 #include <sstream>
 #include <string>
 #include <vector>
 #include <algorithm>
+#include <utility>
 
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/pgr_assert.h"
+#include "cpp_common/pgr_assert.h"
 
-#include "./vehicle_node.h"
-#include "./vehicle_pickDeliver.h"
-#include "./order.h"
-#include "./solution.h"
-#include "./initial_solution.h"
-#include "./optimize.h"
+#include "vrp/vehicle_node.h"
+#include "vrp/vehicle_pickDeliver.h"
+#include "vrp/order.h"
+#include "vrp/pd_orders.h"
+#include "vrp/fleet.h"
+#include "vrp/solution.h"
+#include "vrp/initial_solution.h"
+#include "vrp/optimize.h"
 
 namespace pgrouting {
 namespace vrp {
 
 
+// TODO(vicky) delete this function
+bool
+Pgr_pickDeliver::nodesOK() const {
+    ENTERING();
+    if (m_nodes.empty() && m_base_nodes.empty()) return true;
+
+    pgassertwm(m_nodes.size() == m_base_nodes.size(), msg.get_log().c_str());
+    for (size_t i = 0; i < m_nodes.size() ; ++i) {
+        pgassertwm(m_nodes[i].id() ==  m_base_nodes[i]->id(),
+                msg.get_log().c_str());
+        pgassertwm(m_nodes[i].idx() ==  m_base_nodes[i]->idx(),
+                msg.get_log().c_str());
+    }
+    EXITING();
+    return true;
+}
 
 Solution
-Pgr_pickDeliver::solve(const Solution init_solution) {
-    Optimize solution(0, init_solution);
-    solution.decrease_truck();
-    solution.move_duration_based();
-    solution.move_wait_time_based();
-    solution.inter_swap();
-    return solution.best_solution;
+Pgr_pickDeliver::optimize(const Solution solution) {
+    pgassert(false);
+    /*
+     * Optimize a solution
+     */
+#if 1
+    msg.log << "max_cycles: " << m_max_cycles << "\n";
+    Optimize opt_solution(solution, m_max_cycles);
+#else
+    Optimize opt_solution(solution, 1);
+#endif
+    msg.log << opt_solution.best_solution.tau("optimized");
+    return opt_solution.best_solution;
 }
 
 void
 Pgr_pickDeliver::solve() {
-#if 0
-    solutions.push_back(Initial_solution(0, this));
-    solutions.push_back(Initial_solution(1, this));
+    auto initial_sols = solutions;
+
+    if (m_initial_id == 0) {
+        msg.log << "trying all \n";
+        for (int i = 1; i < 7; ++i) {
+            initial_sols.push_back(Initial_solution(i, m_orders.size()));
+            msg.log << "solution " << i << "\n" << initial_sols.back().tau();
+            // TODO(vicky) calculate the time it takes
+            msg.log << "Initial solution " << i
+                << " duration: " << initial_sols.back().duration();
+        }
+    } else {
+        msg.log << "only trying " << m_initial_id << "\n";
+        initial_sols.push_back(Initial_solution(m_initial_id, m_orders.size()));
+        // TODO(vicky) calculate the time it takes
+        msg.log << "Initial solution " << m_initial_id
+            << " duration: " << initial_sols[0].duration();
+    }
 
-    solutions.push_back(solve(solutions.back()));
-#endif
 
-#if 0
-    solutions.push_back(Initial_solution(2, this));
-    solutions.push_back(solve(solutions.back()));
-    solutions.push_back(Initial_solution(3, this));
-    solutions.push_back(solve(solutions.back()));
-#endif
-    solutions.push_back(Initial_solution(4, this));
-    solutions.push_back(solve(solutions.back()));
-#if 0
-    solutions.push_back(Initial_solution(5, this));
-    solutions.push_back(solve(solutions.back()));
-    solutions.push_back(Initial_solution(6, this));
-    solutions.push_back(solve(solutions.back()));
-#endif
-
-#if 1
     /*
      * Sorting solutions: the best is at the back
      */
-    std::sort(solutions.begin(), solutions.end(), []
+    pgassert(!initial_sols.empty());
+    std::sort(initial_sols.begin(), initial_sols.end(), []
             (const Solution &lhs, const Solution &rhs) -> bool {
             return rhs < lhs;
             });
+
+#if 1
+    solutions.push_back(Optimize(initial_sols.back(), m_max_cycles));
+#else
+    solutions.push_back(initial_sols.back());
 #endif
+    pgassert(!solutions.empty());
+
+    msg.log << "best solution duration = " << solutions.back().duration();
 }
 
 
 
-void
-Pgr_pickDeliver::get_postgres_result(
-        std::vector< General_vehicle_orders_t > &result) const {
-    solutions.back().get_postgres_result(result);
+std::vector< General_vehicle_orders_t >
+Pgr_pickDeliver::get_postgres_result() const {
+    auto result = solutions.back().get_postgres_result();
 
     General_vehicle_orders_t aggregates = {
             /*
-             * Vehicle id = -1 indicates its an aggregate row
+             * Vehicle id = -2 indicates its an aggregate row
              *
              * (twv, cv, fleet, wait, duration)
              */
-            -1,
-            solutions.back().twvTot(),
-            solutions.back().cvTot(),
+            -2,  // summary row on vehicle_number
+            solutions.back().twvTot(),  // on vehicle_id
+            solutions.back().cvTot(),   // on vehicle_seq
+            -1,  // on order_id
+            -1,  // on stop_id
+            -2,  // on stop_type (gets increased later by one so it gets -1)
+            -1,  // not accounting total loads
             solutions.back().total_travel_time(),
-            0,  // not accounting arrival_travel_time
+            -1,  // not accounting arrival_travel_time
             solutions.back().wait_time(),
             solutions.back().total_service_time(),
             solutions.back().duration(),
@@ -115,238 +148,184 @@ Pgr_pickDeliver::get_postgres_result(
     result.push_back(aggregates);
 
 
+#ifndef NDEBUG
     for (const auto sol : solutions) {
-        log << sol.tau();
+        msg.log << sol.tau();
     }
+#endif
+    return result;
 }
 
-
-
-/***** Constructor *******/
-
+/** Constructor  for the matrix version
+ *
+ */
 Pgr_pickDeliver::Pgr_pickDeliver(
-        const Customer_t *customers_data, size_t total_customers,
-        int p_max_vehicles,
-        double p_capacity,
-        double p_speed,
+        const std::vector<PickDeliveryOrders_t> &pd_orders,
+        const std::vector<Vehicle_t> &vehicles,
+        const pgrouting::tsp::Dmatrix &cost_matrix,
+        double factor,
         size_t p_max_cycles,
-        std::string &error) :
-    /* Set the depot to be the first ddata found */
-    max_capacity(p_capacity),
-    m_speed(p_speed),
+        int initial) :
+    PD_problem(this),
+    m_initial_id(initial),
     m_max_cycles(p_max_cycles),
-    max_vehicles(p_max_vehicles),
-    m_starting_site({0, customers_data[0], Tw_node::NodeType::kStart, this}),
-    m_ending_site({0, customers_data[0], Tw_node::NodeType::kEnd, this}),
-    m_original_data(customers_data, customers_data + total_customers) {
-        pgassert(m_speed > 0);
-        pgassert(m_max_cycles > 0);
-        pgassert(max_vehicles > 0);
-        std::ostringstream tmplog;
-        error = "";
-
-        log << "\n *** Constructor of problem ***\n";
-
-        /* sort data by id */
-        std::sort(m_original_data.begin(), m_original_data.end(),
-                [] (const Customer_t &c1, const Customer_t &c2)
-                {return c1.id < c2.id;});
-
-        /*
-         * starting node:
-         * id must be 0
-         */
-        if (m_original_data[0].id != 0) {
-            error = "Depot node not found";
+    m_node_id(0),
+    m_nodes(),
+    m_base_nodes(),
+    m_cost_matrix(cost_matrix),
+    m_orders(pd_orders),
+    m_trucks(vehicles, factor) {
+        ENTERING();
+        pgassert(!pd_orders.empty());
+        pgassert(!vehicles.empty());
+        pgassert(!m_cost_matrix.empty());
+        pgassert(m_initial_id > 0 && m_initial_id < 7);
+        pgassert(nodesOK());
+
+        if (!msg.get_error().empty()) {
             return;
         }
 
-        m_starting_site = Vehicle_node(
-                {0, customers_data[0], Tw_node::NodeType::kStart, this});
-        m_ending_site = Vehicle_node(
-                {1, customers_data[0], Tw_node::NodeType::kEnd, this});
-        if (!m_starting_site.is_start()) {
-            log << "DEPOT" << m_starting_site;
-            error = "Illegal values found on the starting site";
+        pgassert(m_trucks.msg.get_error().empty());
+        pgassert(msg.get_error().empty());
+
+        msg.log << "\n Checking fleet ...";
+        if (!m_trucks.is_fleet_ok()) {
+            pgassert(msg.get_error().empty());
+            pgassert(!m_trucks.msg.get_error().empty());
+            msg.error << m_trucks.msg.get_error();
             return;
         }
-        pgassert(m_starting_site.is_start());
-        pgassert(m_ending_site.is_end());
-
-        m_nodes.push_back(m_starting_site);
-        m_nodes.push_back(m_ending_site);
-
-
-        ID order_id(0);
-        ID node_id(2);
-        for (const auto p : m_original_data) {
-            /*
-             * skip Starting site
-             */
-            if (p.id == 0) continue;
-
-            /*
-             * SAMPLE CORRECT INFORMATION
-             *
-             * The Pickup is 11 (pindex == 0)
-             * The Deliver is 1 (dindex == 0)
-             *
-             * id | x | y | demand | etime | Ltime | Stime | pindex | dindex
-             * 1 | 45 | 68 |    -10 |   912 |   967 |    90 |     11 |      0
-             * 11 | 35 | 69 |     10 |   448 |   505 |    90 |      0 |      1
-             *
-             */
-
-            /*
-             * skip deliveries
-             */
-            if (p.Dindex == 0) continue;
-
-            /*
-             * pickup is found
-             */
-            Tw_node pickup({node_id++, p, Tw_node::NodeType::kPickup, this});
-            if (!pickup.is_pickup()) {
-                log << "PICKUP" << pickup;
-                tmplog << "Illegal values found on Pickup " << p.id;
-                error = tmplog.str();
-                return;
-            }
-            pgassert(pickup.is_pickup());
-
-
-            /*
-             * look for corresponding the delivery of the pickup
-             */
-            auto deliver_ptr = std::lower_bound(
-                    m_original_data.begin(),
-                    m_original_data.end(),
-                    p,
-                    [] (const Customer_t &delivery, const Customer_t &pick)
-                    -> bool
-                    {return delivery.id < pick.Dindex;});
-
-            if (deliver_ptr == m_original_data.end()
-                     || deliver_ptr->id != p.Dindex) {
-                tmplog << "For Pickup "
-                    << p.id
-                    << " the corresponding Delivery was not found";
-                error = tmplog.str();
-                return;
-            }
+        msg.log << "fleet OK \n";
 
+#if 0
+        for (const auto t : m_trucks) {
+            msg.log << t << "\n";
+        }
+        for (const auto &o : m_orders) {
+            msg.log << o << "\n";
+        }
+#endif
 
-            /*
-             * delivery is found
-             */
-            Tw_node delivery(
-                    node_id++,
-                    (*deliver_ptr),
-                    Tw_node::NodeType::kDelivery,
-                    this);
-            if (!delivery.is_delivery()) {
-                log << "DELIVERY" << delivery;
-                tmplog << "Illegal values found on Delivery "
-                    << deliver_ptr->id;
-                error = tmplog.str();
+        /*
+         * check the (S, P, D, E) order on all vehicles
+         * stop when a feasible truck is found
+         */
+        msg.log << "\n Checking orders";
+        for (const auto &o : m_orders) {
+            if (!m_trucks.is_order_ok(o)) {
+                msg.error << "Order not feasible on any truck was found";
+                msg.log << "The order "
+                    << o.id()
+                    << " is not feasible on any truck";
+                msg.log << "\n" << o;
+#if 0
+                double old_speed(0);
+                for (auto t : m_trucks) {
+                    if (old_speed == t.speed()) continue;
+                    old_speed = t.speed();
+                    msg.log << "****** With speed: " << t.speed() << "\n";
+                    msg.log << t.start_site() << "\n";
+                    msg.log << o.pickup() << "\n";
+                    msg.log << "travel time to "
+                        << t.start_site().travel_time_to(
+                                o.pickup(), t.speed()) << "\n";
+
+                    msg.log << o.delivery() << "\n";
+                    msg.log << t.end_site() << "\n";
+                    msg.log << "travel time to "
+                        << t.start_site().travel_time_to(
+                                o.delivery(), t.speed())
+                        << "\n";
+                    t.push_back(o);
+                }
+#endif
                 return;
             }
-            pgassert(delivery.is_delivery());
+        }
+        msg.log << "orders OK \n";
 
+        m_trucks.set_compatibles(m_orders);
+#if 0
+        msg.error << "foo";
+        for (const auto t : m_trucks) {
+            msg.log << t << "\n";
+        }
+#endif
+        EXITING();
+    }  //  constructor
 
-            /*
-             * add into an order & check the order
-             */
-            pickup.set_Did(delivery.id());
-            delivery.set_Pid(pickup.id());
-            m_nodes.push_back(pickup);
-            m_nodes.push_back(delivery);
-
-            m_orders.push_back(
-                    Order(order_id, node(node_id - 2),
-                        node(node_id - 1),
-                        this));
-            pgassert(m_orders.back().pickup().is_pickup());
-            pgassert(m_orders.back().delivery().is_delivery());
-            pgassert(static_cast<Tw_node> (m_orders.back().pickup()) == pickup);
 
-            /*
-             * check the (S, P, D, E) order
-             */
-            {
-                Vehicle_pickDeliver truck(
-                        order_id,
-                        m_starting_site,
-                        m_ending_site,
-                        max_capacity,
-                        this);
-                truck.push_back(m_orders.back());
-
-                if (!truck.is_feasable()) {
-                    log << truck << "\n";
-                    tmplog << "The (pickup, delivery) = ("
-                        << m_orders.back().pickup().original_id() << ", "
-                        << m_orders.back().delivery().original_id()
-                        << ") is not feasible";
-                    error = tmplog.str();
-                    return;
-                }
-                pgassert(truck.is_feasable());
-            }  //  check
 
-            ++order_id;
-        }  //  for
+/***** Constructor for the eculedian version *******/
 
-        /*
-         * double check we found all orders
-         */
-        if (((m_orders.size() * 2 + 1) - m_original_data.size()) != 0) {
-            error = "A pickup was not found";
+Pgr_pickDeliver::Pgr_pickDeliver(
+        const std::vector<PickDeliveryOrders_t> &pd_orders,
+        const std::vector<Vehicle_t> &vehicles,
+        double factor,
+        size_t p_max_cycles,
+        int initial) :
+    PD_problem(this),
+    m_initial_id(initial),
+    m_max_cycles(p_max_cycles),
+    m_node_id(0),
+    m_nodes(),
+    m_base_nodes(),
+    m_cost_matrix(),
+    m_orders(pd_orders),
+    m_trucks(vehicles, factor) {
+        ENTERING();
+        pgassert(!pd_orders.empty());
+        pgassert(!vehicles.empty());
+        pgassert(m_cost_matrix.empty());
+        pgassert(factor > 0);
+        pgassert(m_initial_id > 0 && m_initial_id < 7);
+
+        if (!msg.get_error().empty()) {
             return;
         }
 
-        for (auto &o : m_orders) {
-            o.setCompatibles();
-        }
+        pgassert(m_trucks.msg.get_error().empty());
+        pgassert(msg.get_error().empty());
 
-        for (auto o : m_orders) {
-            log << o;
+        msg.log << "\n Checking fleet";
+        if (!m_trucks.is_fleet_ok()) {
+            msg.error << m_trucks.msg.get_error();
+            pgassert(!m_trucks.msg.get_error().empty());
+            return;
         }
-    }  //  constructor
 
+        pgassert(m_trucks.msg.get_error().empty());
 
-const Order
-Pgr_pickDeliver::order_of(const Vehicle_node &node) const {
-    pgassert(node.is_pickup() ||  node.is_delivery());
-    if (node.is_pickup()) {
-        for (const auto o : m_orders) {
-            if (o.pickup().id() == node.id()) {
-                return o;
-            }
-        }
-    }
-    pgassert(node.is_delivery());
 
-    for (const auto o : m_orders) {
-        if (o.delivery().id() == node.id()) {
-            return o;
-        }
-    }
 #ifndef NDEBUG
-    std::ostringstream err_log;
-    err_log << "Order of" << node << " not found";
+        for (const auto t : m_trucks) {
+            msg.log << t << "\n";
+        }
+        for (const auto &o : m_orders) {
+            msg.log << o << "\n";
+        }
 #endif
-    pgassertwm(false, err_log.str());
-    return m_orders[0];
-}
 
+        /*
+         * check the (S, P, D, E) order on all vehicles
+         * stop when a feasible truck is found
+         */
+        msg.log << "\n Checking orders";
+        for (const auto &o : m_orders) {
+            if (!m_trucks.is_order_ok(o)) {
+                msg.error << "Order not feasible on any truck was found";
+                msg.log << "The order "
+                    << o.pickup().order()
+                    << " is not feasible on any truck";
+                msg.log << "\n" << o;
+                return;
+            }
+        }
 
-const Vehicle_node&
-Pgr_pickDeliver::node(ID id) const {
-    pgassert(id < m_nodes.size());
-    pgassert(id == m_nodes[id].id());
-    return m_nodes[id];
-}
+        m_trucks.set_compatibles(m_orders);
+        EXITING();
+    }  //  constructor
 
 
 }  //  namespace vrp
diff --git a/src/pickDeliver/src/pgr_pickDeliver.h b/src/pickDeliver/src/pgr_pickDeliver.h
deleted file mode 100644
index 8a72137..0000000
--- a/src/pickDeliver/src/pgr_pickDeliver.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-FILE: pgr_pickDeliver.h
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- ********************************************************************PGR-GNU*/
-#pragma once
-
-
-#include "./../../common/src/pgr_types.h"
-
-#include <string>
-#include <vector>
-#include <sstream>
-
-#include "./vehicle_node.h"
-#include "./order.h"
-#include "./solution.h"
-
-namespace pgrouting {
-namespace vrp {
-
-
-class Optimize;
-class Initial_solution;
-
-class Pgr_pickDeliver {
-    friend class Vehicle_pickDeliver;
-    friend class Optimize;
-    friend class Initial_solution;
-    friend class Solution;
-    typedef size_t ID;
-
- public:
-    Pgr_pickDeliver(
-            const Customer_t *c1, size_t total_customers,
-            int VehicleLength,
-            double capacity,
-            double speed,
-            size_t max_cycles,
-            std::string &error);
-
-    void solve();
-
-    void get_postgres_result(
-            std::vector< General_vehicle_orders_t > &result) const;
-    /*****************/
-
-    const Order order_of(const Vehicle_node &node) const;
-    const Vehicle_node& node(ID id) const;
-    const std::vector<Order>& orders() const {return m_orders;}
-    double speed() const {return m_speed;}
-
-    /*! \brief get_log
-     *
-     * \returns the current contents of the log and clears the log
-     *
-     */
-    std::ostream& get_log(std::ostream &p_log) const {
-        p_log << log.str() << "\n";
-        log.str("");
-        log.clear();
-        return p_log;
-    }
-
-    Solution solve(const Solution init_solution);
-    size_t max_cycles() const {return m_max_cycles;};
-
- private:
-    double max_capacity;
-    double m_speed;
-    size_t m_max_cycles;
-    int max_vehicles;
-    Vehicle_node m_starting_site, m_ending_site;
-    std::vector<Customer_t> m_original_data;
-    std::vector<Vehicle_node> m_nodes;
-    std::vector<Order> m_orders;
-    std::vector<Solution> solutions;
-    mutable std::ostringstream log;
-#ifndef NDEBUG
-    mutable std::ostringstream dbg_log;
-#endif
-};
-
-}  //  namespace vrp
-}  //  namespace pgrouting
diff --git a/src/pickDeliver/src/pickDeliver.c b/src/pickDeliver/src/pickDeliver.c
index 8e10609..ad06478 100644
--- a/src/pickDeliver/src/pickDeliver.c
+++ b/src/pickDeliver/src/pickDeliver.c
@@ -27,51 +27,51 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
  ********************************************************************PGR-GNU*/
 
-#include "./../../common/src/postgres_connection.h"
-#include "utils/array.h"
-
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/pgr_types.h"
-#include "./customers_input.h"
-
-#include "./pickDeliver_driver.h"
+#include "c_common/postgres_connection.h"
+#include "c_common/debug_macro.h"
+#include "c_common/e_report.h"
+#include "c_common/time_msg.h"
+#include "c_common/orders_input.h"
+#include "c_common/vehicles_input.h"
+#include "c_common/matrixRows_input.h"
+#include "drivers/pickDeliver/pickDeliver_driver.h"
 
 PGDLLEXPORT Datum
 pickDeliver(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(pickDeliver);
 
 
-/*********************************************************************/
-/*                MODIFY AS NEEDED                                   */
 static
 void
-process(char* customers_sql,
-        int max_vehicles,
-        double capacity,
-        double speed,
+process(
+        char* pd_orders_sql,
+        char* vehicles_sql,
+        char* matrix_sql,
+        double factor,
         int max_cycles,
+        int initial_solution_id,
+
         General_vehicle_orders_t **result_tuples,
         size_t *result_count) {
-
-    if (max_vehicles <= 0) {
-        elog(ERROR, "Illegal value in parameter: max_vehicles");
-        (*result_count) = 0;
-        (*result_tuples) = NULL;
-        return;
-    }
-    if (capacity <= 0) {
-        elog(ERROR, "Illegal value in parameter: capacity");
+    if (factor <= 0) {
+        ereport(ERROR,
+                (errcode(ERRCODE_INTERNAL_ERROR),
+                 errmsg("Illegal value in parameter: factor"),
+                 errhint("Value found: %f <= 0", factor)));
         (*result_count) = 0;
         (*result_tuples) = NULL;
         return;
     }
-    if (speed <= 0) {
-        elog(ERROR, "Illegal value in parameter: speed");
+
+    if (max_cycles < 0) {
+        elog(ERROR, "Illegal value in parameter: max_cycles");
         (*result_count) = 0;
         (*result_tuples) = NULL;
         return;
     }
-    if (max_cycles <= 0) {
-        elog(ERROR, "Illegal value in parameter: max_cycles");
+
+    if (initial_solution_id < 0 || initial_solution_id > 6) {
+        elog(ERROR, "Illegal value in parameter: initial");
         (*result_count) = 0;
         (*result_tuples) = NULL;
         return;
@@ -79,63 +79,141 @@ process(char* customers_sql,
 
     pgr_SPI_connect();
 
-    PGR_DBG("Load data");
-    Customer_t *customers_arr = NULL;
-    size_t total_customers = 0;
-    pgr_get_customers_data(customers_sql, &customers_arr, &total_customers);
+    PGR_DBG("Load orders");
+    PickDeliveryOrders_t *pd_orders_arr = NULL;
+    size_t total_pd_orders = 0;
+    pgr_get_pd_orders_with_id(pd_orders_sql,
+           &pd_orders_arr, &total_pd_orders);
+
+    PGR_DBG("Load vehicles");
+    Vehicle_t *vehicles_arr = NULL;
+    size_t total_vehicles = 0;
+    pgr_get_vehicles_with_id(vehicles_sql,
+           &vehicles_arr, &total_vehicles);
+    PGR_DBG("total vehicles %ld", total_vehicles);
+
+
+    for (size_t i = 0; i < total_pd_orders; i++) {
+        PGR_DBG("%ld %f pick %f %f %ld - "
+                "%f %f %f deliver %f %f %ld - %f %f %f ",
+                pd_orders_arr[i].id,
+                pd_orders_arr[i].demand,
+
+                pd_orders_arr[i].pick_x,
+                pd_orders_arr[i].pick_y,
+                pd_orders_arr[i].pick_node_id,
+
+                pd_orders_arr[i].pick_open_t,
+                pd_orders_arr[i].pick_close_t,
+                pd_orders_arr[i].pick_service_t,
+
+                pd_orders_arr[i].deliver_x,
+                pd_orders_arr[i].deliver_y,
+                pd_orders_arr[i].deliver_node_id,
+
+                pd_orders_arr[i].deliver_open_t,
+                pd_orders_arr[i].deliver_close_t,
+                pd_orders_arr[i].deliver_service_t);
+    }
+
+    for (size_t i = 0; i < total_vehicles; i++) {
+        PGR_DBG("%ld %f %f / %ld %f %f %f %f %f / %ld %f %f %f %f %f / %ld ",
+               vehicles_arr[i].id,
+               vehicles_arr[i].capacity,
+               vehicles_arr[i].speed,
+
+               vehicles_arr[i].start_node_id,
+               vehicles_arr[i].start_x,
+               vehicles_arr[i].start_y,
+               vehicles_arr[i].start_open_t,
+               vehicles_arr[i].start_close_t,
+               vehicles_arr[i].start_service_t,
+
+               vehicles_arr[i].end_node_id,
+               vehicles_arr[i].end_x,
+               vehicles_arr[i].end_y,
+               vehicles_arr[i].end_open_t,
+               vehicles_arr[i].end_close_t,
+               vehicles_arr[i].end_service_t,
+
+               vehicles_arr[i].cant_v);
+    }
+
+    PGR_DBG("load matrix");
+    Matrix_cell_t *matrix_cells_arr = NULL;
+    size_t total_cells = 0;
+    pgr_get_matrixRows(matrix_sql, &matrix_cells_arr, &total_cells);
+
 
-    if (total_customers == 0) {
-        PGR_DBG("No customers found");
+    if (total_pd_orders == 0 || total_vehicles == 0 || total_cells == 0) {
         (*result_count) = 0;
         (*result_tuples) = NULL;
         pgr_SPI_finish();
         return;
     }
-    PGR_DBG("Total %ld customers in query:", total_customers);
+    PGR_DBG("Total %ld orders in query:", total_pd_orders);
+    PGR_DBG("Total %ld vehicles in query:", total_vehicles);
+    PGR_DBG("Total %ld matrix cells in query:", total_cells);
+
 
     PGR_DBG("Starting processing");
+            clock_t start_t = clock();
     char *log_msg = NULL;
+    char *notice_msg = NULL;
     char *err_msg = NULL;
+
     do_pgr_pickDeliver(
-            customers_arr, total_customers,
-            max_vehicles,
-            capacity,
-            speed,
+            pd_orders_arr, total_pd_orders,
+            vehicles_arr, total_vehicles,
+            matrix_cells_arr, total_cells,
+
+            factor,
             max_cycles,
+            initial_solution_id,
+
             result_tuples,
             result_count,
+
             &log_msg,
+            &notice_msg,
             &err_msg);
-    PGR_DBG("Returning %ld tuples\n", *result_count);
-    PGR_DBG("Returned log = %s\n", log_msg);
-    if (log_msg) {
-        elog(DEBUG1, "%s", log_msg);
-        free(log_msg);
-    }
-    if (err_msg) {
-        elog(ERROR, "%s", err_msg);
-        free(err_msg);
+
+    time_msg("pgr_pickDeliver", start_t, clock());
+
+    if (err_msg && (*result_tuples)) {
+        pfree(*result_tuples);
+        (*result_count) = 0;
+        (*result_tuples) = NULL;
     }
+#if 1
+    pgr_global_report(log_msg, notice_msg, err_msg);
+#else
+    pgr_global_report(notice_msg, log_msg, err_msg);
+#endif
 
+    if (log_msg) pfree(log_msg);
+    if (notice_msg) pfree(notice_msg);
+    if (err_msg) pfree(err_msg);
+    if (pd_orders_arr) pfree(pd_orders_arr);
+    if (vehicles_arr) pfree(vehicles_arr);
+    if (matrix_cells_arr) pfree(matrix_cells_arr);
 
-    pfree(customers_arr);
     pgr_SPI_finish();
 }
-/*                                                                            */
+
+
+
 /******************************************************************************/
 
-PG_FUNCTION_INFO_V1(pickDeliver);
+
 PGDLLEXPORT Datum
 pickDeliver(PG_FUNCTION_ARGS) {
     FuncCallContext     *funcctx;
     TupleDesc            tuple_desc;
 
     /**************************************************************************/
-    /*                          MODIFY AS NEEDED                              */
-    /*                                                                        */
     General_vehicle_orders_t *result_tuples = 0;
     size_t result_count = 0;
-    /*                                                                        */
     /**************************************************************************/
 
     if (SRF_IS_FIRSTCALL()) {
@@ -143,27 +221,25 @@ pickDeliver(PG_FUNCTION_ARGS) {
         funcctx = SRF_FIRSTCALL_INIT();
         oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
 
-        /**********************************************************************/
-        /*                          MODIFY AS NEEDED                          */
-        /*
+        /**********************************************************************
            orders_sql TEXT,
-           max_vehicles INTEGER,
-           capacity FLOAT,
-           speed FLOAT,
-           max_cycles INTEGER,
+           vehicles_sql TEXT,
+           matrix_cell_sql TEXT,
+           factor FLOAT DEFAULT 1,
+           max_cycles  INTEGER DEFAULT 10,
+           initial_sol INTEGER DEFAULT 4,
          **********************************************************************/
 
-        PGR_DBG("Calling process");
         process(
                 text_to_cstring(PG_GETARG_TEXT_P(0)),
-                PG_GETARG_INT32(1),
-                PG_GETARG_FLOAT8(2),
+                text_to_cstring(PG_GETARG_TEXT_P(1)),
+                text_to_cstring(PG_GETARG_TEXT_P(2)),
                 PG_GETARG_FLOAT8(3),
                 PG_GETARG_INT32(4),
+                PG_GETARG_INT32(5),
                 &result_tuples,
                 &result_count);
 
-        /*                                                                   */
         /*********************************************************************/
 
 #if PGSQL_VERSION > 95
@@ -189,43 +265,53 @@ pickDeliver(PG_FUNCTION_ARGS) {
     result_tuples = (General_vehicle_orders_t*) funcctx->user_fctx;
 
     if (funcctx->call_cntr <  funcctx->max_calls) {
-        HeapTuple    tuple;
-        Datum        result;
-        Datum        *values;
-        bool*        nulls;
+        HeapTuple   tuple;
+        Datum       result;
+        Datum       *values;
+        bool*       nulls;
+        size_t      call_cntr = funcctx->call_cntr;
+
+        /*********************************************************************
+
+          OUT seq INTEGER,
+          OUT vehicle_number INTEGER,
+          OUT vehicle_id BIGINT,
+          OUT vehicle_seq INTEGER,
+          OUT order_id BIGINT,
+          OUT stop_type INT,
+          OUT cargo FLOAT,
+          OUT travel_time FLOAT,
+          OUT arrival_time FLOAT,
+          OUT wait_time FLOAT,
+          OUT service_time FLOAT,
+          OUT departure_time FLOAT
 
-        /*********************************************************************/
-        /*                          MODIFY!!!!!                              */
-        /* This has to match you output otherwise the server crashes          */
-        /*
-           OUT seq INTEGER,
-           OUT vehicle_id INTEGER,
-           OUT vehicle_seq INTEGER,
-           OUT order_id BIGINT,
-           OUT cost FLOAT,
-           OUT agg_cost FLOAT
          *********************************************************************/
 
 
-        values = palloc(9 * sizeof(Datum));
-        nulls = palloc(9 * sizeof(bool));
+        size_t numb = 13;
+        values = palloc(numb * sizeof(Datum));
+        nulls = palloc(numb * sizeof(bool));
 
         size_t i;
-        for (i = 0; i < 9; ++i) {
+        for (i = 0; i < numb; ++i) {
             nulls[i] = false;
         }
 
 
-        // postgres starts counting from 1
         values[0] = Int32GetDatum(funcctx->call_cntr + 1);
-        values[1] = Int32GetDatum(result_tuples[funcctx->call_cntr].vehicle_id);
-        values[2] = Int32GetDatum(result_tuples[funcctx->call_cntr].vehicle_seq);
-        values[3] = Int64GetDatum(result_tuples[funcctx->call_cntr].order_id);
-        values[4] = Float8GetDatum(result_tuples[funcctx->call_cntr].travelTime);
-        values[5] = Float8GetDatum(result_tuples[funcctx->call_cntr].arrivalTime);
-        values[6] = Float8GetDatum(result_tuples[funcctx->call_cntr].waitTime);
-        values[7] = Float8GetDatum(result_tuples[funcctx->call_cntr].serviceTime);
-        values[8] = Float8GetDatum(result_tuples[funcctx->call_cntr].departureTime);
+        values[1] = Int32GetDatum(result_tuples[call_cntr].vehicle_seq);
+        values[2] = Int64GetDatum(result_tuples[call_cntr].vehicle_id);
+        values[3] = Int32GetDatum(result_tuples[call_cntr].stop_seq);
+        values[4] = Int32GetDatum(result_tuples[call_cntr].stop_type + 1);
+        values[5] = Int64GetDatum(result_tuples[call_cntr].stop_id);
+        values[6] = Int64GetDatum(result_tuples[call_cntr].order_id);
+        values[7] = Float8GetDatum(result_tuples[call_cntr].cargo);
+        values[8] = Float8GetDatum(result_tuples[call_cntr].travelTime);
+        values[9] = Float8GetDatum(result_tuples[call_cntr].arrivalTime);
+        values[10] = Float8GetDatum(result_tuples[call_cntr].waitTime);
+        values[11] = Float8GetDatum(result_tuples[call_cntr].serviceTime);
+        values[12] = Float8GetDatum(result_tuples[call_cntr].departureTime);
 
         /*********************************************************************/
 
diff --git a/src/pickDeliver/src/pickDeliverEuclidean.c b/src/pickDeliver/src/pickDeliverEuclidean.c
new file mode 100644
index 0000000..632bd00
--- /dev/null
+++ b/src/pickDeliver/src/pickDeliverEuclidean.c
@@ -0,0 +1,307 @@
+/*PGR-GNU*****************************************************************
+File: pickDeliverEuclidean.c
+
+Generated with Template by:
+Copyright (c) 2017 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail:
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+#include "c_common/postgres_connection.h"
+#include "utils/array.h"
+
+#include "c_common/debug_macro.h"
+#include "c_common/e_report.h"
+#include "c_common/time_msg.h"
+#include "c_common/orders_input.h"
+#include "c_common/vehicles_input.h"
+
+#include "drivers/pickDeliver/pickDeliverEuclidean_driver.h"
+
+PGDLLEXPORT Datum
+pickDeliverEuclidean(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(pickDeliverEuclidean);
+
+
+static
+void
+process(
+        char* pd_orders_sql,
+        char* vehicles_sql,
+        double factor,
+        int max_cycles,
+        int initial_solution_id,
+        General_vehicle_orders_t **result_tuples,
+        size_t *result_count) {
+    if (factor <= 0) {
+        ereport(ERROR,
+                (errcode(ERRCODE_INTERNAL_ERROR),
+                 errmsg("Illegal value in parameter: factor"),
+                 errhint("Value found: %f <= 0", factor)));
+        (*result_count) = 0;
+        (*result_tuples) = NULL;
+        return;
+    }
+
+    if (max_cycles < 0) {
+        ereport(ERROR,
+                (errcode(ERRCODE_INTERNAL_ERROR),
+                 errmsg("Illegal value in parameter: max_cycles"),
+                 errhint("Negative value found: max_cycles: %d ", max_cycles)));
+        (*result_count) = 0;
+        (*result_tuples) = NULL;
+        return;
+    }
+
+    if (initial_solution_id <= 0 || initial_solution_id > 6) {
+        elog(ERROR, "Illegal value in parameter: initial_sol");
+        (*result_count) = 0;
+        (*result_tuples) = NULL;
+        return;
+    }
+
+    pgr_SPI_connect();
+
+    PGR_DBG("Load orders");
+    PickDeliveryOrders_t *pd_orders_arr = NULL;
+    size_t total_pd_orders = 0;
+    pgr_get_pd_orders(pd_orders_sql,
+           &pd_orders_arr, &total_pd_orders);
+
+    PGR_DBG("Load vehicles");
+    Vehicle_t *vehicles_arr = NULL;
+    size_t total_vehicles = 0;
+    pgr_get_vehicles(vehicles_sql,
+           &vehicles_arr, &total_vehicles);
+    PGR_DBG("total vehicles %ld", total_vehicles);
+
+    for (size_t i = 0; i < total_pd_orders; i++) {
+        PGR_DBG("%ld %f pick %f %f %ld - "
+                "%f %f %f deliver %f %f %ld - %f %f %f ",
+                pd_orders_arr[i].id,
+                pd_orders_arr[i].demand,
+
+                pd_orders_arr[i].pick_x,
+                pd_orders_arr[i].pick_y,
+                pd_orders_arr[i].pick_node_id,
+
+                pd_orders_arr[i].pick_open_t,
+                pd_orders_arr[i].pick_close_t,
+                pd_orders_arr[i].pick_service_t,
+
+                pd_orders_arr[i].deliver_x,
+                pd_orders_arr[i].deliver_y,
+                pd_orders_arr[i].deliver_node_id,
+
+                pd_orders_arr[i].deliver_open_t,
+                pd_orders_arr[i].deliver_close_t,
+                pd_orders_arr[i].deliver_service_t);
+    }
+
+
+
+    for (size_t i = 0; i < total_vehicles; i++) {
+        PGR_DBG("%ld %f %f , start %f %f %f %f %f "
+                "end %f %f %f %f %f number %ld ",
+               vehicles_arr[i].id,
+               vehicles_arr[i].capacity,
+               vehicles_arr[i].speed,
+
+               vehicles_arr[i].start_x,
+               vehicles_arr[i].start_y,
+               vehicles_arr[i].start_open_t,
+               vehicles_arr[i].start_close_t,
+               vehicles_arr[i].start_service_t,
+
+               vehicles_arr[i].end_x,
+               vehicles_arr[i].end_y,
+               vehicles_arr[i].end_open_t,
+               vehicles_arr[i].end_close_t,
+               vehicles_arr[i].end_service_t,
+
+               vehicles_arr[i].cant_v);
+    }
+
+    if (total_pd_orders == 0 || total_vehicles == 0) {
+        (*result_count) = 0;
+        (*result_tuples) = NULL;
+        pgr_SPI_finish();
+        return;
+    }
+    PGR_DBG("Total %ld orders in query:", total_pd_orders);
+
+    PGR_DBG("Starting processing");
+    clock_t start_t = clock();
+    char *log_msg = NULL;
+    char *notice_msg = NULL;
+    char *err_msg = NULL;
+    do_pgr_pickDeliverEuclidean(
+            pd_orders_arr, total_pd_orders,
+            vehicles_arr, total_vehicles,
+
+            factor,
+            max_cycles,
+            initial_solution_id,
+
+            result_tuples,
+            result_count,
+
+            &log_msg,
+            &notice_msg,
+            &err_msg);
+    time_msg("_pgr_pickDeliverEuclidean", start_t, clock());
+
+    if (err_msg && (*result_tuples)) {
+        pfree(*result_tuples);
+        (*result_count) = 0;
+        (*result_tuples) = NULL;
+    }
+
+    pgr_global_report(log_msg, notice_msg, err_msg);
+
+    if (log_msg) pfree(log_msg);
+    if (notice_msg) pfree(notice_msg);
+    if (err_msg) pfree(err_msg);
+    if (pd_orders_arr) pfree(pd_orders_arr);
+    if (vehicles_arr) pfree(vehicles_arr);
+
+    pgr_SPI_finish();
+}
+/*                                                                            */
+/******************************************************************************/
+
+PGDLLEXPORT Datum
+pickDeliverEuclidean(PG_FUNCTION_ARGS) {
+    FuncCallContext     *funcctx;
+    TupleDesc            tuple_desc;
+
+    /**************************************************************************/
+    /*                          MODIFY AS NEEDED                              */
+    /*                                                                        */
+    General_vehicle_orders_t *result_tuples = 0;
+    size_t result_count = 0;
+    /*                                                                        */
+    /**************************************************************************/
+
+    if (SRF_IS_FIRSTCALL()) {
+        MemoryContext   oldcontext;
+        funcctx = SRF_FIRSTCALL_INIT();
+        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
+
+        /**********************************************************************/
+        /*                          MODIFY AS NEEDED                          */
+        /*
+           orders_sql TEXT,
+           vehicles_sql INTEGER,
+           max_cycles INTEGER,
+           initial_id INTEGER,
+         **********************************************************************/
+
+        PGR_DBG("Calling process");
+        process(
+                text_to_cstring(PG_GETARG_TEXT_P(0)),
+                text_to_cstring(PG_GETARG_TEXT_P(1)),
+                PG_GETARG_FLOAT8(2),
+                PG_GETARG_INT32(3),
+                PG_GETARG_INT32(4),
+                &result_tuples,
+                &result_count);
+
+        /*                                                                   */
+        /*********************************************************************/
+
+#if PGSQL_VERSION > 95
+        funcctx->max_calls = result_count;
+#else
+        funcctx->max_calls = (uint32_t)result_count;
+#endif
+        funcctx->user_fctx = result_tuples;
+        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
+                != TYPEFUNC_COMPOSITE) {
+            ereport(ERROR,
+                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+                     errmsg("function returning record called in context "
+                         "that cannot accept type record")));
+        }
+
+        funcctx->tuple_desc = tuple_desc;
+        MemoryContextSwitchTo(oldcontext);
+    }
+
+    funcctx = SRF_PERCALL_SETUP();
+    tuple_desc = funcctx->tuple_desc;
+    result_tuples = (General_vehicle_orders_t*) funcctx->user_fctx;
+
+    if (funcctx->call_cntr <  funcctx->max_calls) {
+        HeapTuple   tuple;
+        Datum       result;
+        Datum       *values;
+        bool*       nulls;
+        size_t      call_cntr = funcctx->call_cntr;
+
+        /*********************************************************************/
+        /*                          MODIFY!!!!!                              */
+        /* This has to match you output otherwise the server crashes          */
+        /*
+           OUT seq INTEGER,
+           OUT vehicle_id INTEGER,
+           OUT vehicle_seq INTEGER,
+           OUT order_id BIGINT,
+           OUT cost FLOAT,
+           OUT agg_cost FLOAT
+         *********************************************************************/
+
+
+        size_t numb = 12;
+        values = palloc(numb * sizeof(Datum));
+        nulls = palloc(numb * sizeof(bool));
+
+        size_t i;
+        for (i = 0; i < numb; ++i) {
+            nulls[i] = false;
+        }
+
+
+        // postgres starts counting from 1
+        values[0] = Int32GetDatum(funcctx->call_cntr + 1);
+        values[1] = Int32GetDatum(result_tuples[call_cntr].vehicle_seq);
+        values[2] = Int64GetDatum(result_tuples[call_cntr].vehicle_id);
+        values[3] = Int32GetDatum(result_tuples[call_cntr].stop_seq);
+        values[4] = Int32GetDatum(result_tuples[call_cntr].stop_type + 1);
+        values[5] = Int64GetDatum(result_tuples[call_cntr].order_id);
+        values[6] = Float8GetDatum(result_tuples[call_cntr].cargo);
+        values[7] = Float8GetDatum(result_tuples[call_cntr].travelTime);
+        values[8] = Float8GetDatum(result_tuples[call_cntr].arrivalTime);
+        values[9] = Float8GetDatum(result_tuples[call_cntr].waitTime);
+        values[10] = Float8GetDatum(result_tuples[call_cntr].serviceTime);
+        values[11] = Float8GetDatum(result_tuples[call_cntr].departureTime);
+
+        /*********************************************************************/
+
+        tuple = heap_form_tuple(tuple_desc, values, nulls);
+        result = HeapTupleGetDatum(tuple);
+        SRF_RETURN_NEXT(funcctx, result);
+    } else {
+        SRF_RETURN_DONE(funcctx);
+    }
+}
diff --git a/src/pickDeliver/src/pickDeliverEuclidean_driver.cpp b/src/pickDeliver/src/pickDeliverEuclidean_driver.cpp
new file mode 100644
index 0000000..9de42e8
--- /dev/null
+++ b/src/pickDeliver/src/pickDeliverEuclidean_driver.cpp
@@ -0,0 +1,162 @@
+/*PGR-GNU*****************************************************************
+File: pickDeliver_driver.cpp
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail:
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+ ********************************************************************PGR-GNU*/
+
+
+#include "drivers/pickDeliver/pickDeliverEuclidean_driver.h"
+
+#include <string.h>
+#include <sstream>
+#include <string>
+#include <deque>
+#include <vector>
+
+#include "vrp/pgr_pickDeliver.h"
+
+#include "cpp_common/pgr_assert.h"
+#include "cpp_common/pgr_alloc.hpp"
+
+/************************************************************
+  customers_sql TEXT,
+  max_vehicles INTEGER,
+  factor FLOAT,
+  capacity FLOAT,
+  max_cycles INTEGER,
+ ***********************************************************/
+void
+do_pgr_pickDeliverEuclidean(
+        PickDeliveryOrders_t *customers_arr,
+        size_t total_customers,
+
+        Vehicle_t *vehicles_arr,
+        size_t total_vehicles,
+
+        double factor,
+        int max_cycles,
+        int initial_solution_id,
+
+        General_vehicle_orders_t **return_tuples,
+        size_t *return_count,
+
+        char **log_msg,
+        char **notice_msg,
+        char **err_msg) {
+    std::ostringstream log;
+    std::ostringstream notice;
+    std::ostringstream err;
+    try {
+        std::ostringstream tmp_log;
+        *return_tuples = NULL;
+        *return_count = 0;
+
+        /*
+         * transform to C++ containers
+         */
+        std::vector<PickDeliveryOrders_t> orders(
+                customers_arr, customers_arr + total_customers);
+        std::vector<Vehicle_t> vehicles(
+                vehicles_arr, vehicles_arr + total_vehicles);
+
+        log << "Initialize problem\n";
+        pgrouting::vrp::Pgr_pickDeliver pd_problem(
+                orders,
+                vehicles,
+                factor,
+                max_cycles,
+                initial_solution_id);
+
+        err << pd_problem.msg.get_error();
+        if (!err.str().empty()) {
+            log.str("");
+            log.clear();
+            log << pd_problem.msg.get_error();
+            log << pd_problem.msg.get_log();
+            *log_msg = pgr_msg(log.str().c_str());
+            *err_msg = pgr_msg(err.str().c_str());
+            return;
+        }
+        log << pd_problem.msg.get_log();
+        log << "Finish Reading data\n";
+
+        try {
+            pd_problem.solve();
+        } catch (AssertFailedException &except) {
+            log << pd_problem.msg.get_log();
+            throw except;
+        } catch(...) {
+            log << "Caught unknown exception!";
+            throw;
+        }
+
+        log << pd_problem.msg.get_log();
+        log << "Finish solve\n";
+
+        auto solution = pd_problem.get_postgres_result();
+        log << pd_problem.msg.get_log();
+        log << "solution size: " << solution.size() << "\n";
+
+
+        if (!solution.empty()) {
+            (*return_tuples) = pgr_alloc(solution.size(), (*return_tuples));
+            int seq = 0;
+            for (const auto &row : solution) {
+                (*return_tuples)[seq] = row;
+                ++seq;
+            }
+        }
+        (*return_count) = solution.size();
+
+        log << pd_problem.msg.get_log();
+
+        pgassert(*err_msg == NULL);
+        *log_msg = log.str().empty()?
+            nullptr :
+            pgr_msg(log.str().c_str());
+        *notice_msg = notice.str().empty()?
+            nullptr :
+            pgr_msg(notice.str().c_str());
+    } catch (AssertFailedException &except) {
+        if (*return_tuples) free(*return_tuples);
+        (*return_count) = 0;
+        err << except.what();
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    } catch (std::exception& except) {
+        if (*return_tuples) free(*return_tuples);
+        (*return_count) = 0;
+        err << except.what();
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    } catch(...) {
+        if (*return_tuples) free(*return_tuples);
+        (*return_count) = 0;
+        err << "Caught unknown exception!";
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    }
+}
diff --git a/src/pickDeliver/src/pickDeliver_driver.cpp b/src/pickDeliver/src/pickDeliver_driver.cpp
index 209d64e..4949419 100644
--- a/src/pickDeliver/src/pickDeliver_driver.cpp
+++ b/src/pickDeliver/src/pickDeliver_driver.cpp
@@ -28,7 +28,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  ********************************************************************PGR-GNU*/
 
 
-#include "./pickDeliver_driver.h"
+#include "drivers/pickDeliver/pickDeliver_driver.h"
 
 #include <string.h>
 #include <sstream>
@@ -36,89 +36,147 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 #include <deque>
 #include <vector>
 
-#include "./pgr_pickDeliver.h"
+#include "vrp/pgr_pickDeliver.h"
+#include "cpp_common/Dmatrix.h"
 
-#include "./../../common/src/pgr_assert.h"
-#include "./../../common/src/pgr_alloc.hpp"
+#include "cpp_common/pgr_assert.h"
+#include "cpp_common/pgr_alloc.hpp"
 
-/************************************************************
-  customers_sql TEXT,
-  max_vehicles INTEGER,
-  capacity FLOAT,
-  max_cycles INTEGER,
- ***********************************************************/
 void
 do_pgr_pickDeliver(
-        Customer_t *customers_arr,
+        PickDeliveryOrders_t customers_arr[],
         size_t total_customers,
-        int max_vehicles,
-        double capacity,
-        double speed,
+
+        Vehicle_t *vehicles_arr,
+        size_t total_vehicles,
+
+        Matrix_cell_t *matrix_cells_arr,
+        size_t total_cells,
+
+        double factor,
         int max_cycles,
-        General_vehicle_orders_t **result_tuples,
-        size_t *total_count,
-        char ** log_msg,
-        char ** err_msg) {
+        int initial_solution_id,
+
+        General_vehicle_orders_t **return_tuples,
+        size_t *return_count,
+
+        char **log_msg,
+        char **notice_msg,
+        char **err_msg) {
     std::ostringstream log;
+    std::ostringstream notice;
+    std::ostringstream err;
     try {
-        std::ostringstream tmp_log;
-        *result_tuples = NULL;
-        *total_count = 0;
+        pgassert(!(*log_msg));
+        pgassert(!(*notice_msg));
+        pgassert(!(*err_msg));
+        pgassert(total_customers);
+        pgassert(total_vehicles);
+        pgassert(total_vehicles);
+        pgassert(*return_count == 0);
+        pgassert(!(*return_tuples));
+        log << "do_pgr_pickDeliver\n";
+
+
+        /*
+         * transform to C++ containers
+         */
+        std::vector<PickDeliveryOrders_t> orders(
+                customers_arr, customers_arr + total_customers);
+
+        std::vector<Vehicle_t> vehicles(
+                vehicles_arr, vehicles_arr + total_vehicles);
+
+        std::vector <Matrix_cell_t> data_costs(
+                matrix_cells_arr,
+                matrix_cells_arr + total_cells);
+
+        pgrouting::tsp::Dmatrix cost_matrix(data_costs);
+
+        if (!cost_matrix.has_no_infinity()) {
+            err << "An Infinity value was found on the Matrix";
+            *err_msg = pgr_msg(err.str().c_str());
+            return;
+        }
 
-        log << "Read data\n";
-        std::string error("");
+        // TODO(vicky) wrap with a try and make a throw???
+        log << "Initialize problem\n";
         pgrouting::vrp::Pgr_pickDeliver pd_problem(
-                customers_arr,
-                total_customers,
-                max_vehicles,
-                capacity,
-                speed,
+                orders,
+                vehicles,
+                cost_matrix,
+                factor,
                 max_cycles,
-                error);
-        if (error.compare("")) {
-            pd_problem.get_log(log);
-            *log_msg = strdup(log.str().c_str());
-            *err_msg = strdup(error.c_str());
+                initial_solution_id);
+
+        err << pd_problem.msg.get_error();
+        if (!err.str().empty()) {
+            log << pd_problem.msg.get_log();
+            *log_msg = pgr_msg(log.str().c_str());
+            *err_msg = pgr_msg(err.str().c_str());
             return;
         }
-        pd_problem.get_log(tmp_log);
+        log << pd_problem.msg.get_log();
         log << "Finish Reading data\n";
+        pd_problem.msg.clear();
+
 
         try {
             pd_problem.solve();
         } catch (AssertFailedException &except) {
-            pd_problem.get_log(log);
+            log << pd_problem.msg.get_log();
+            pd_problem.msg.clear();
             throw except;
+        } catch(...) {
+            log << "Caught unknown exception!";
+            throw;
         }
 
-        pd_problem.get_log(log);
+
+        log << pd_problem.msg.get_log();
         log << "Finish solve\n";
+        pd_problem.msg.clear();
 
-        std::vector<General_vehicle_orders_t> solution;
-        pd_problem.get_postgres_result(solution);
-        pd_problem.get_log(tmp_log);
+        auto solution = pd_problem.get_postgres_result();
+        log << pd_problem.msg.get_log();
+        pd_problem.msg.clear();
         log << "solution size: " << solution.size() << "\n";
 
 
-        (*result_tuples) = pgr_alloc(solution.size(), (*result_tuples));
-        int seq = 0;
-        for (const auto &row : solution) {
-            (*result_tuples)[seq] = row;
-            ++seq;
+        if (!solution.empty()) {
+            (*return_tuples) = pgr_alloc(solution.size(), (*return_tuples));
+            int seq = 0;
+            for (const auto &row : solution) {
+                (*return_tuples)[seq] = row;
+                ++seq;
+            }
         }
-        (*total_count) = solution.size();
-
-        pd_problem.get_log(log);
-        *log_msg = strdup(log.str().c_str());
+        (*return_count) = solution.size();
+
+        pgassert(*err_msg == NULL);
+        *log_msg = log.str().empty()?
+            nullptr :
+            pgr_msg(log.str().c_str());
+        *notice_msg = notice.str().empty()?
+            nullptr :
+            pgr_msg(notice.str().c_str());
     } catch (AssertFailedException &except) {
-        log << except.what() << "\n";
-        *err_msg = strdup(log.str().c_str());
+        if (*return_tuples) free(*return_tuples);
+        (*return_count) = 0;
+        err << except.what();
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
     } catch (std::exception& except) {
-        log << except.what() << "\n";
-        *err_msg = strdup(log.str().c_str());
+        if (*return_tuples) free(*return_tuples);
+        (*return_count) = 0;
+        err << except.what();
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
     } catch(...) {
-        log << "Caught unknown exception!\n";
-        *err_msg = strdup(log.str().c_str());
+        if (*return_tuples) free(*return_tuples);
+        (*return_count) = 0;
+        err << "Caught unknown exception!";
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
     }
 }
-
diff --git a/src/pickDeliver/src/pickDeliver_driver.h b/src/pickDeliver/src/pickDeliver_driver.h
deleted file mode 100644
index 037b69e..0000000
--- a/src/pickDeliver/src/pickDeliver_driver.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: pickDeliver_driver.h
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer:
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail:
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- ********************************************************************PGR-GNU*/
-#pragma once
-#ifndef SRC_PICKDELIVER_SRC_PICKDELIVER_DRIVER_H_
-#define SRC_PICKDELIVER_SRC_PICKDELIVER_DRIVER_H_
-
-#include "./../../common/src/pgr_types.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-    /*********************************************************
-      orders_sql TEXT,
-      max_vehicles INTEGER,
-      capacity FLOAT,
-      max_cycles INTEGER,
-     ********************************************************/
-    void do_pgr_pickDeliver(
-            Customer_t *customers_arr, size_t total_customers,
-            int max_vehicles,
-            double capacity,
-            double speed,
-            int max_cycles,
-            General_vehicle_orders_t **return_tuples,
-            size_t *return_count,
-            char ** log_msg,
-            char ** err_msg);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif  //  SRC_PICKDELIVER_SRC_PICKDELIVER_DRIVER_H_
diff --git a/src/pickDeliver/src/solution.cpp b/src/pickDeliver/src/solution.cpp
index 9bb9557..aca7dd3 100644
--- a/src/pickDeliver/src/solution.cpp
+++ b/src/pickDeliver/src/solution.cpp
@@ -23,29 +23,31 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
  ********************************************************************PGR-GNU*/
 
+#include "vrp/solution.h"
 
-#include <string>
 #include <vector>
+#include <string>
+#include <algorithm>
 
-#include "./solution.h"
-#include "./pgr_pickDeliver.h"
+#include "vrp/pgr_pickDeliver.h"
+#include "c_types/pickDeliver/general_vehicle_orders_t.h"
 
 namespace pgrouting {
 namespace vrp {
 
-
-void
-Solution::get_postgres_result(
-        std::vector< General_vehicle_orders_t > &result) const {
+std::vector<General_vehicle_orders_t>
+Solution::get_postgres_result() const {
+    std::vector<General_vehicle_orders_t> result;
     /* postgres numbering starts with 1 */
     int i(1);
     for (const auto truck : fleet) {
-        std::vector< General_vehicle_orders_t > data;
-        truck.get_postgres_result(i, data);
+        std::vector<General_vehicle_orders_t> data =
+            truck.get_postgres_result(i);
         result.insert(result.end(), data.begin(), data.end());
 
         ++i;
     }
+    return result;
 }
 
 
@@ -160,6 +162,15 @@ Solution::tau(const std::string &title) const {
     return log.str();
 }
 
+void
+Solution::sort_by_id() {
+    std::sort(fleet.begin(), fleet.end(), []
+            (const Vehicle_pickDeliver &lhs, const Vehicle_pickDeliver &rhs)
+            -> bool {
+            return lhs.idx() < rhs.idx();
+            });
+}
+
 std::ostream&
 operator << (std::ostream &log, const Solution &solution) {
     for (const auto vehicle : solution.fleet) {
@@ -220,5 +231,16 @@ Solution::operator<(const Solution &s_rhs) const {
     return false;
 }
 
+Solution::Solution() :
+    EPSILON(0.0001),
+    trucks(problem->trucks())
+{
+    ENTERING();
+    for (const auto &t : trucks) {
+        msg.log << t.tau() << "\n";
+    }
+    EXITING();
+}
+
 }  //  namespace vrp
 }  //  namespace pgrouting
diff --git a/src/pickDeliver/src/solution.h b/src/pickDeliver/src/solution.h
deleted file mode 100644
index 786561c..0000000
--- a/src/pickDeliver/src/solution.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-FILE: solution.h
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- ********************************************************************PGR-GNU*/
-#pragma once
-
-#include <deque>
-#include <tuple>
-#include <string>
-#include <vector>
-
-#include "./vehicle_pickDeliver.h"
-#include "./order.h"
-
-namespace pgrouting {
-namespace vrp {
-
-
-class Pgr_pckDeliver;
-class Optimize;
-
-class Solution {
-    friend class Optimize;
- protected:
-     double EPSILON;
-     std::deque<Vehicle_pickDeliver> fleet;
-
-     /* this solution belongs to this problem*/
-     const Pgr_pickDeliver *problem;
-
-
- public:
-     void get_postgres_result(
-             std::vector< General_vehicle_orders_t > &result) const;
-
-
-     /* @brief constructor
-      *
-      * @params [in] p_problem \t pointer to problem
-      *
-      */
-     explicit Solution(const Pgr_pickDeliver *p_problem) :
-         EPSILON(0.0001),
-         problem(p_problem)
-    {};
-
-
-     /* @brief move constructor */
-     Solution(const Solution && sol) :
-         EPSILON(0.0001),
-         fleet(std::move(sol.fleet)),
-         problem(std::move(sol.problem))
-         {};
-
-     /* @brief copy constructor */
-     Solution(const Solution &sol) :
-         EPSILON(0.0001),
-         fleet(sol.fleet),
-         problem(sol.problem)
-    {};
-
-     /* @brief move assignment */
-     Solution& operator = (const Solution && sol) {
-         EPSILON = 0.0001,
-         fleet = sol.fleet;
-         return *this;
-     };
-
-     /* @brief copy assignment */
-     Solution& operator = (const Solution& sol) {
-         EPSILON = 0.0001,
-         fleet = sol.fleet;
-         return *this;
-     };
-
-     std::string cost_str() const;
-     std::string tau(const std::string &title = "Tau") const;
-     friend std::ostream& operator<<(
-             std::ostream &log,
-             const Solution &solution);
-     bool operator <(const Solution &s_rhs) const;
-
-     bool is_feasable() const;
-     double duration() const;
-     double wait_time() const;
-     double total_travel_time() const;
-     double total_service_time() const;
-     int twvTot() const;
-     int cvTot() const;
-     size_t fleet_size() const {return fleet.size();}
-
-     /*
-      * Cost in terms of a tuple
-      * <0> time window violations
-      * <1> capacity violations
-      * <2> fleet size TODO
-      * <3> wait_time
-      * <4> duration
-      */
-     Vehicle::Cost cost() const;
-};
-
-
-}  //  namespace vrp
-}  //  namespace pgrouting
diff --git a/src/pickDeliver/src/tw_node.cpp b/src/pickDeliver/src/tw_node.cpp
index af3cc4d..73dc4b1 100644
--- a/src/pickDeliver/src/tw_node.cpp
+++ b/src/pickDeliver/src/tw_node.cpp
@@ -23,23 +23,31 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
  ********************************************************************PGR-GNU*/
 
-#include "./tw_node.h"
+#include "vrp/tw_node.h"
 
 #include <limits>
 #include <string>
 
-#include "./../../common/src/pgr_assert.h"
+#include "cpp_common/pgr_assert.h"
+#include "vrp/pgr_pickDeliver.h"
 
-#include "./pgr_pickDeliver.h"
 
 namespace pgrouting {
 namespace vrp {
 
 
 double
-Tw_node::travel_time_to(const Node &other) const {
-    pgassert(problem->speed() > 0);
-    return distance(other) / problem->speed();
+Tw_node::travel_time_to(const Tw_node &to, double speed) const {
+    /** TODO(vicky)
+     * shall call Node or Dnode
+     * static cast won't work I think
+     *
+     */
+    auto from =  problem->m_base_nodes[idx()].get();
+    auto destination = problem->m_base_nodes[to.idx()].get();
+    pgassert(speed != 0);
+     /*! @todo TODO evaluate with matrix also*/
+    return from->distance(destination) / speed;
 }
 
 
@@ -47,22 +55,22 @@ Tw_node::travel_time_to(const Node &other) const {
  * I -> J = (*this)
  */
 double
-Tw_node::arrival_j_opens_i(const Tw_node &I) const {
+Tw_node::arrival_j_opens_i(const Tw_node &I, double speed) const {
     if (m_type == kStart) return (std::numeric_limits<double>::max)();
-    return I.opens() + I.service_time() + I.travel_time_to(*this);
+    return I.opens() + I.service_time() + I.travel_time_to(*this, speed);
 }
 
 double
-Tw_node::arrival_j_closes_i(const Tw_node &I) const {
+Tw_node::arrival_j_closes_i(const Tw_node &I, double speed) const {
     if (m_type == kStart) return  (std::numeric_limits<double>::max)();
-    return I.closes() + I.service_time() + I.travel_time_to(*this);
+    return I.closes() + I.service_time() + I.travel_time_to(*this, speed);
 }
 
 
 
 
 bool
-Tw_node::is_compatible_IJ(const Tw_node &I) const {
+Tw_node::is_compatible_IJ(const Tw_node &I, double speed) const {
     /*
      * I /->  kStart
      */
@@ -72,37 +80,39 @@ Tw_node::is_compatible_IJ(const Tw_node &I) const {
      */
     if (I.m_type == kEnd) return false;
 
-    return !is_late_arrival(arrival_j_opens_i(I));
+    return !is_late_arrival(arrival_j_opens_i(I, speed));
 }
 
 bool
-Tw_node::is_partially_compatible_IJ(const Tw_node &I) const {
+Tw_node::is_partially_compatible_IJ(const Tw_node &I, double speed) const {
     return
-        is_compatible_IJ(I)
-         && !is_early_arrival(arrival_j_opens_i(I))
-         && is_late_arrival(arrival_j_closes_i(I));
+        is_compatible_IJ(I, speed)
+        && !is_early_arrival(arrival_j_opens_i(I, speed))
+        && is_late_arrival(arrival_j_closes_i(I, speed));
 }
 
 bool
-Tw_node::is_tight_compatible_IJ(const Tw_node &I) const {
+Tw_node::is_tight_compatible_IJ(const Tw_node &I, double speed) const {
     return
-        is_compatible_IJ(I)
-         && !is_early_arrival(arrival_j_opens_i(I))
-         && !is_late_arrival(arrival_j_closes_i(I));
+        is_compatible_IJ(I, speed)
+        && !is_early_arrival(arrival_j_opens_i(I, speed))
+        && !is_late_arrival(arrival_j_closes_i(I, speed));
 }
 
 bool
-Tw_node::is_partially_waitTime_compatible_IJ(const Tw_node &I) const {
+Tw_node::is_partially_waitTime_compatible_IJ(
+        const Tw_node &I,
+        double speed) const {
     return
-        is_compatible_IJ(I)
-         && is_early_arrival(arrival_j_opens_i(I));
+        is_compatible_IJ(I, speed)
+        && is_early_arrival(arrival_j_opens_i(I, speed));
 }
 
 bool
-Tw_node::is_waitTime_compatible_IJ(const Tw_node &I) const {
+Tw_node::is_waitTime_compatible_IJ(const Tw_node &I, double speed) const {
     return
-        is_compatible_IJ(I)
-         && is_early_arrival(arrival_j_opens_i(I));
+        is_compatible_IJ(I, speed)
+        && is_early_arrival(arrival_j_opens_i(I, speed));
 }
 
 
@@ -122,66 +132,70 @@ bool
 Tw_node::is_start() const {
     return
         m_type == kStart
-         && (0 <= opens())
-         && (opens() < closes())
-         && (service_time() >= 0)
-         && (demand() == 0);
+        && (0 <= opens())
+        && (opens() < closes())
+        && (service_time() >= 0)
+        && (demand() == 0);
 }
 
 bool
 Tw_node::is_pickup() const {
     return m_type == kPickup
-         && (0 <= opens())
-         && (opens() < closes())
-         && (service_time() >= 0)
-         && (demand() > 0);
+        && (0 <= opens())
+        && (opens() < closes())
+        && (service_time() >= 0)
+        && (demand() > 0);
 }
 
 
 bool
 Tw_node::is_delivery() const {
     return m_type == kDelivery
-         && (0 <= opens())
-         && (opens() < closes())
-         && (service_time() >= 0)
-         && (demand() < 0);
+        && (0 <= opens())
+        && (opens() < closes())
+        && (service_time() >= 0)
+        && (demand() < 0);
 }
 
 
 bool
 Tw_node::is_dump() const {
     return m_type == kDump
-         && (0 <= opens())
-         && (opens() < closes())
-         && (service_time() >= 0)
-         && (demand() <= 0);
+        && (0 <= opens())
+        && (opens() < closes())
+        && (service_time() >= 0)
+        && (demand() <= 0);
 }
 
 
 bool
 Tw_node::is_load() const {
     return m_type == kLoad
-         && (0 <= opens())
-         && (opens() < closes())
-         && (service_time() >= 0)
-         && (demand() >= 0);
+        && (0 <= opens())
+        && (opens() < closes())
+        && (service_time() >= 0)
+        && (demand() >= 0);
 }
 
 
 bool
 Tw_node::is_end() const {
     return m_type == kEnd
-         && (0 <= opens())
-         && (opens() < closes())
-         && (service_time() >= 0)
-         && (demand() == 0);
+        && (0 <= opens())
+        && (opens() < closes())
+        && (service_time() >= 0)
+        && (demand() == 0);
 }
 
 
 bool
-Tw_node::operator ==(const Tw_node &rhs) const {
-    if (&rhs == this) return true;
-    return (static_cast<Node>(*this) == static_cast<Node>(rhs));
+Tw_node::operator ==(const Tw_node &other) const {
+    if (&other == this) return true;
+    auto lhs = static_cast<const Node&>(
+            *problem->m_base_nodes[idx()].get());
+    auto rhs = static_cast<const Node&>(
+            *problem->m_base_nodes[other.idx()].get());
+    return lhs == rhs;
 }
 
 
@@ -223,54 +237,54 @@ bool Tw_node::is_valid() const {
 
 Tw_node::Tw_node(
         size_t id,
-        Customer_t data,
-        NodeType type,
-        const Pgr_pickDeliver *p_problem) :
-    Node(id, data.id, data.x, data.y),
-    m_opens(data.Etime),
-    m_closes(data.Ltime),
-    m_service_time(data.Stime),
+        PickDeliveryOrders_t data,
+        NodeType type) :
+    Identifier(id, data.pick_node_id),
+    m_order(data.id),
+    m_opens(data.pick_open_t),
+    m_closes(data.pick_close_t),
+    m_service_time(data.pick_service_t),
     m_demand(data.demand),
-    m_type(type),
-    problem(p_problem) {
+    m_type(type)  {
+        if (m_type == kDelivery) {
+            reset_id(data.deliver_node_id);
+            m_opens = data.deliver_open_t;
+            m_closes = data.deliver_close_t;
+            m_service_time = data.deliver_service_t;
+            m_demand *= -1;
+        }
     }
 
-
 Tw_node::Tw_node(
         size_t id,
-        int64_t original_id,
-        double x,
-        double y,
-        double opens,
-        double closes,
-        double service_time,
-        double demand,
-        NodeType type,
-        const Pgr_pickDeliver *p_problem) :
-    Node(id, original_id, x, y),
-    m_opens(opens),
-    m_closes(closes),
-    m_service_time(service_time),
-    m_demand(demand),
-    m_type(type),
-    problem(p_problem) {
+        Vehicle_t data,
+        NodeType type) :
+    Identifier(id, data.start_node_id),
+    m_opens(data.start_open_t),
+    m_closes(data.start_close_t),
+    m_service_time(data.start_service_t),
+    m_demand(0),
+    m_type(type) {
+        if (m_type == kEnd) {
+            reset_id(data.end_node_id);
+            m_opens = data.end_open_t;
+            m_closes = data.end_close_t;
+            m_service_time = data.end_service_t;
+        }
     }
 
 
 /*! * \brief Print the contents of a Twnode object. */
 std::ostream& operator << (std::ostream &log, const Tw_node &n) {
-    log << static_cast<const Node&>(n)
+    log << static_cast<const Node&>(
+            *n.problem->m_base_nodes[n.idx()].get())
         << "[opens = " << n.m_opens
         << "\tcloses = " << n.m_closes
         << "\tservice = " << n.m_service_time
         << "\tdemand = " << n.m_demand
         << "\ttype = " << n.type_str()
-        << "]";
-    if (n.is_pickup() ||  n.is_delivery()) {
-        log << "->" << n.m_otherid << "\n";
-    } else {
-        log << "\n";
-    }
+        << "]"
+        << "\n";
     return log;
 }
 
diff --git a/src/pickDeliver/src/tw_node.h b/src/pickDeliver/src/tw_node.h
deleted file mode 100644
index 1ff2756..0000000
--- a/src/pickDeliver/src/tw_node.h
+++ /dev/null
@@ -1,299 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-FILE: tw_node.h
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- ********************************************************************PGR-GNU*/
-
-#pragma once
-#include <string>
-
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/pgr_assert.h"
-
-#include "./node.h"
-
-namespace pgrouting {
-namespace vrp {
-
- class Pgr_pickDeliver;
-
-/*! \class Tw_node
- * \brief Extends the \ref Node class to create a Node with time window attributes.
- *
- * A Time Window node is a Node with addition attributes and methods to
- * to support Time Windows and to model a more complex Node need in many
- * vehicle routing problems.
- *
- * Most application specific code will extend this class and define the specific
- * values and requirements for \c type and \c streetid.
- *
- */
-class Tw_node: public Node {
- public:
-     typedef enum {
-         kStart = 0,  // /< starting site
-         kPickup,  // /< pickup site
-         kDelivery,  // /< delivery site
-         kDump,  // /< dump site, empties truck
-         kLoad,  // /< load site, fills the truck
-         kEnd        ///< ending site
-     } NodeType;
-
-
-     inline void set_Pid(size_t id) {
-         pgassert(is_delivery());
-         m_otherid = id;
-     }
-
-     inline void set_Did(size_t id) {
-         pgassert(is_pickup());
-         m_otherid = id;
-     }
-
-     inline size_t Did() const {
-         pgassert(is_pickup());
-         return m_otherid;
-     }
-
-     inline size_t Pid() const {
-         pgassert(is_delivery());
-         return m_otherid;
-     }
-
-
-     /** @name accessors */
-     ///@ {
-
-
-     /*! \brief Returns the opening time.*/
-     inline double opens() const {return m_opens;}
-
-     /*! \brief Returns the closing time. */
-     inline double closes() const {return m_closes;}
-
-     /*! \brief Returns the demand associated with this node. */
-     inline double demand() const {return m_demand;}
-
-     /*! * \brief Returns the service time for this node. */
-     inline double service_time() const { return m_service_time;}
-
-     /*! * \brief Returns the type of this node. */
-     inline NodeType type() const { return m_type;}
-
-     /*! \brief Returns the length of time between the opening and closing. */
-     inline double window_length() const {return m_closes - m_opens;}
-
-     /*! \brief time = distance / speed. */
-     double travel_time_to(const Node &other) const;
-
-     ///@}
-
-     /** @name kind of node
-      *
-      * A true value when;
-      *
-      *   - 0 < opens < closes
-      *   - the type is the requested type
-      *   - the demand are valid for the requested type
-      */
-
-     ///@ {
-
-
-     /*! \brief is_start
-      *
-      * To be a start node:
-      *   - type is kStart
-      *   - demand == 0
-      *
-      **/
-     bool is_start() const;
-
-
-     /*! \brief is_pickup
-      *
-      * To be a pickup node:
-      *   - type is kPickup
-      *   - demand > 0
-      *
-      **/
-     bool is_pickup() const;
-
-
-     /*! \brief is_delivery
-      *
-      * To be a delivery node:
-      *   - type is kDelivery
-      *   - demand < 0
-      *
-      **/
-     bool is_delivery() const;
-
-
-     /*! \brief is_dump
-      *
-      * To be a dump node:
-      *   - type is kDump
-      *   - demand <= 0
-      *
-      **/
-     bool is_dump() const;
-
-
-     /*! \brief is_Load
-      *
-      * To be a Load node:
-      *   - type is kLoad
-      *   - demand >= 0
-      *
-      **/
-     bool is_load() const;
-
-
-     /*! \brief is_end
-      *
-      * To be a End node:
-      *   - type is kEnd
-      *   - demand == 0
-      *
-      **/
-     bool is_end() const;
-
-
-     std::string type_str() const;
-
-     ///@}
-
-
-
-     /*! * \brief Print the contents of a Twnode object. */
-     friend std::ostream& operator << (std::ostream &log, const Tw_node &node);
-
-     bool operator ==(const Tw_node &rhs) const;
-
-
-
-     /*! \brief True when \b arrivalTime is before it \b opens */
-     inline bool is_early_arrival(double arrival_time) const {
-         return arrival_time < m_opens;
-     }
-
-     /*! \brief True when \b arrivalTime is after it \b closes */
-     inline bool is_late_arrival(double arrival_time) const {
-         return arrival_time > m_closes;
-     }
-     /*! \brief True when \b arrivalTime in the time window */
-     inline bool is_on_time(double arrival_time) const {
-         return !is_early_arrival(arrival_time)
-             && !is_late_arrival(arrival_time);
-     }
-
-
-
-
-
-     /** @name document functions */
-     ///@ {
-     /*!
-      * The actual arrival time at \b This node, given that:
-      * \b this node is visited directly after \b other node
-      *   and that the actual arrival time at \b other node was opens(other)
-      **/
-     double arrival_j_opens_i(const Tw_node &I) const;
-
-     /*!
-      * The actual arrival time at \b this node, given that:
-      * \b this node is visited directly after \b other node
-      * and that the actual arrival time at \b other node was closes(other)
-      **/
-     double arrival_j_closes_i(const Tw_node &I) const;
-
-
-     /*
-      * is possible to arrive to \b this after visiting \bother
-      *   - departing as early as possible from \b other it can arrives to \b this
-      */
-     bool is_compatible_IJ(const Tw_node &I) const;
-
-     /*
-      * is possible to arrive to \b this after visiting \bother
-      *   - departing as late as possible from \b other it can arrives to \b this
-      */
-     bool is_partially_compatible_IJ(const Tw_node &I) const;
-
-     /*
-      * is possible to arrive to \b this after visiting \bother
-      *   - departing as late as possible from \b other it can arrives to \b this
-      */
-     bool is_tight_compatible_IJ(const Tw_node &I) const;
-
-     /*
-      * is possible to arrive to \b this after visiting \b other
-      *   - departing as late as possible from \b other it can arrives to \b this
-      */
-     bool is_partially_waitTime_compatible_IJ(const Tw_node &I) const;
-
-     /*
-      * is compatible to arrive to \b this after visiting \b other
-      * - is fully compatible
-      * - does not have a waiting time when arriving as earliest as possible after
-      */
-     bool is_waitTime_compatible_IJ(const Tw_node &I) const;
-
-
-     ///@}
-
-
-
-     Tw_node(const Tw_node &other) = default;
-     Tw_node(
-             size_t id,
-             Customer_t data,
-             NodeType type,
-             const Pgr_pickDeliver *problem);
-
-     Tw_node(
-             size_t id,
-             int64_t p_original_id,
-             double x,
-             double y,
-             double opens,
-             double closes,
-             double service_time,
-             double demand,
-             NodeType type,
-             const Pgr_pickDeliver *problem);
-
- protected:
-     bool is_valid() const;
-
-     double m_opens;        ///< opening time of the node
-     double m_closes;       ///< closing time of the node
-     double m_service_time;  // /< time it takes to be served
-     double m_demand;       ///< The demand for the Node
-     size_t m_otherid;      ///< the other's internal id
-     NodeType m_type;       ///< The demand for the Node
-     const Pgr_pickDeliver *problem;
-};
-
-}  //  namespace vrp
-}  //  namespace pgrouting
diff --git a/src/pickDeliver/src/vehicle.cpp b/src/pickDeliver/src/vehicle.cpp
index edc6908..f5aa761 100644
--- a/src/pickDeliver/src/vehicle.cpp
+++ b/src/pickDeliver/src/vehicle.cpp
@@ -23,7 +23,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
  ********************************************************************PGR-GNU*/
 
-#include "./vehicle.h"
+#include "vrp/vehicle.h"
 
 #include <deque>
 #include <iostream>
@@ -34,9 +34,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 #include <utility>
 #include <vector>
 
-#include "../../common/src/pgr_assert.h"
+#include "cpp_common/pgr_assert.h"
 
-#include "./pgr_pickDeliver.h"
+#include "vrp/pgr_pickDeliver.h"
 
 
 namespace pgrouting {
@@ -77,7 +77,7 @@ Vehicle::insert(std::pair<POS, POS> position_limits, const Vehicle_node &node) {
     return best;
 
     pgassert(best < m_path.size());
-    pgassert(m_path[best].id() == node.id());
+    pgassert(m_path[best].idx() == node.idx());
     invariant();
 }
 
@@ -131,24 +131,34 @@ Vehicle::cost_compare(const Cost &lhs, const Cost &rhs) const {
 
 
 
-void
+std::vector<General_vehicle_orders_t>
 Vehicle::get_postgres_result(
-        int vid,
-        std::vector< General_vehicle_orders_t > &result) const {
+        int vid) const {
+    std::vector<General_vehicle_orders_t> result;
     /* postgres numbering starts with 1 */
-    int i(1);
+    int stop_seq(1);
+    msg.log << "getting solution: " << tau() << "\n";
     for (const auto p_stop : m_path) {
-        General_vehicle_orders_t data =
-                {vid, i,
-                p_stop.original_id(),
-                p_stop.travel_time(),
-                p_stop.arrival_time(),
-                p_stop.wait_time(),
-                p_stop.service_time(),
-                p_stop.departure_time()};
+        General_vehicle_orders_t data = {
+            vid,
+            id(),
+            stop_seq,
+            /* order_id
+             * The order_id is invalid for stops type 0 and 5
+             */
+            (p_stop.type() == 0 || p_stop.type() == 5)? -1 : p_stop.order(),
+            p_stop.id(),
+            p_stop.type(),
+            p_stop.cargo(),
+            p_stop.travel_time(),
+            p_stop.arrival_time(),
+            p_stop.wait_time(),
+            p_stop.service_time(),
+            p_stop.departure_time()};
         result.push_back(data);
-        ++i;
+        ++stop_seq;
     }
+    return result;
 }
 
 
@@ -169,7 +179,7 @@ Vehicle::insert(POS at, Vehicle_node node) {
     evaluate(at);
 
     pgassert(at < m_path.size());
-    pgassert(m_path[at].id() == node.id());
+    pgassert(m_path[at].idx() == node.idx());
     invariant();
 }
 
@@ -184,12 +194,12 @@ Vehicle::deltaTime(const Vehicle_node &node, POS pos) const {
     auto prev = m_path[pos-1];
     auto next = m_path[pos];
     auto original_time = next.travel_time();
-    auto tt_p_n = prev.travel_time_to(node);
+    auto tt_p_n = prev.travel_time_to(node, speed());
     tt_p_n = node.is_early_arrival(prev.departure_time() + tt_p_n) ?
         node.closes() - prev.departure_time()
         : tt_p_n;
 
-    auto tt_n_x = node.travel_time_to(next);
+    auto tt_n_x = node.travel_time_to(next, speed());
     tt_p_n = next.is_early_arrival(
             prev.departure_time() + tt_p_n + node.service_time() + tt_n_x) ?
         next.closes() - (prev.departure_time() + tt_p_n + node.service_time())
@@ -230,11 +240,12 @@ Vehicle::erase(const Vehicle_node &node) {
 
     POS pos = 0;
     for ( ; pos < m_path.size() ; ++pos) {
-        if (node.id() == m_path[pos].id())
+        if (node.idx() == m_path[pos].idx())
             break;
     }
 
     erase(pos);
+    /*! @todo TODO evaluate with matrix also*/
     evaluate(pos);
 
     invariant();
@@ -356,9 +367,9 @@ Vehicle::evaluate(POS from) {
 
     while (node != m_path.end()) {
         if (node == m_path.begin()) {
-            node->evaluate(max_capacity);
+            node->evaluate(m_capacity);
         } else {
-            node->evaluate(*(node - 1), max_capacity);
+            node->evaluate(*(node - 1), m_capacity, speed());
         }
 
         ++node;
@@ -405,7 +416,7 @@ Vehicle::getPosLowLimit(const Vehicle_node &nodeI) const {
 
     /* J == m_path[low_limit - 1] */
     while (low_limit > low
-             && m_path[low_limit - 1].is_compatible_IJ(nodeI)) {
+            && m_path[low_limit - 1].is_compatible_IJ(nodeI, speed())) {
         --low_limit;
     }
 
@@ -437,7 +448,7 @@ Vehicle::getPosHighLimit(const Vehicle_node &nodeJ) const {
 
     /* I == m_path[high_limit] */
     while (high_limit < high
-             && nodeJ.is_compatible_IJ(m_path[high_limit])) {
+            && nodeJ.is_compatible_IJ(m_path[high_limit], speed())) {
         ++high_limit;
     }
 
@@ -445,33 +456,72 @@ Vehicle::getPosHighLimit(const Vehicle_node &nodeJ) const {
     return high_limit;
 }
 
-
+bool
+Vehicle::is_ok() const {
+    pgassert((m_path.front().opens() <= m_path.front().closes())
+        && (m_path.back().opens() <= m_path.back().closes())
+        && (m_capacity > 0));
+    return (start_site().opens() <= start_site().closes())
+        && (end_site().opens() <= end_site().closes())
+        && (m_capacity > 0);
+}
 
 Vehicle::Vehicle(
-        ID p_id,
+        size_t p_idx,
+        int64_t p_id,
         const Vehicle_node &starting_site,
         const Vehicle_node &ending_site,
-        double p_max_capacity) :
-    m_id(p_id),
-    max_capacity(p_max_capacity) {
+        double p_m_capacity,
+        double p_speed,
+        double p_factor) :
+    Identifier(p_idx, p_id),
+    m_capacity(p_m_capacity),
+    m_factor(p_factor),
+    m_speed(p_speed) {
+        ENTERING();
         m_path.clear();
+        pgassert(starting_site.opens() <= starting_site.closes());
+        pgassert(ending_site.opens() <= ending_site.closes());
+        pgassert(capacity() > 0);
+        msg.log << "p_idx: " << p_idx << "\t idx(): " << idx() << "\n";
+        msg.log << "p_id: " << p_id << "\tid(): " << id() << "\n" ;
+        
         m_path.push_back(starting_site);
         m_path.push_back(ending_site);
+
         evaluate(0);
+        msg.log << tau() << "\n";
         invariant();
+        EXITING();
     }
 
+Vehicle::Vehicle(const Vehicle &v) :
+    Identifier(v.idx(), v.id()),
+    PD_problem(),
+    m_path(v.m_path),
+    m_capacity(v.m_capacity),
+    m_factor(v.m_factor),
+    m_speed(v.m_speed) {
+#if 0
+        ENTERING();
+        msg.log << v.tau() << "\n";
+        msg.log << tau() << "\n";
+        EXITING();
+#endif
+}
 
 
 
 std::string
 Vehicle::tau() const {
+    pgassert(m_path.size() > 1);
     std::ostringstream log;
-    log << "Truck " << id() << " (";
+    log << "Truck " << id() << "(" << idx() << ")"
+        << " (";
     for (const auto p_stop : m_path) {
         if (!(p_stop == m_path.front()))
             log << ", ";
-        log << p_stop.original_id();
+        log << p_stop.id();
     }
     log << ")" << " \t(cv, twv, wait_time, duration) = ("
         << cvTot() << ", "
@@ -482,16 +532,27 @@ Vehicle::tau() const {
     return log.str();
 }
 
+double
+Vehicle::speed() const {
+    return m_speed/m_factor;
+}
+
 /****** FRIENDS *******/
 
 std::ostream&
 operator << (std::ostream &log, const Vehicle &v) {
     v.invariant();
     int i(0);
-    log << "\n\n****************** TRUCK " << v.id() << "***************";
+    log << "\n\n****************** " << v.idx() << "th VEHICLE*************\n";
+    log << "id = " << v.id()
+        << "\tcapacity = " << v.m_capacity
+        << "\tfactor = " << v.m_factor << "\n"
+        << "\tspeed = " << v.m_speed << "\n"
+        << "\tnew speed = " << v.speed() << "\n";
+
     for (const auto &path_stop : v.path()) {
-        log << "\nPath_stop" << ++i << "\n";
-        log << path_stop;
+        log << "Path_stop" << ++i << "\n";
+        log << path_stop << "\n";
     }
     return log;
 }
diff --git a/src/pickDeliver/src/vehicle.h b/src/pickDeliver/src/vehicle.h
deleted file mode 100644
index f8f24f7..0000000
--- a/src/pickDeliver/src/vehicle.h
+++ /dev/null
@@ -1,325 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-FILE: vehicle.h
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- ********************************************************************PGR-GNU*/
-
-#pragma once
-
-#include <deque>
-#include <iostream>
-#include <algorithm>
-#include <string>
-#include <tuple>
-#include <utility>
-#include <vector>
-
-
-#include "./vehicle_node.h"
-
-namespace pgrouting {
-namespace vrp {
-
-
-/*! @class Vehicle
- *  @brief Vehicle with time windows
- *
- * General functionality for a vehicle in a VRP problem
- *
- * Recommended use:
- *
- * ~~~~{.c}
- *   Class my_vehicle : public vechicle
- * ~~~~
- *
- * @note All members return @b true when the operation is successful
- *
- * A vehicle is a sequence of @ref Vehicle_node 
- * from @b starting site to @b ending site.
- *
- * @sa @ref Vehicle_node
- */
-
-class Vehicle {
- protected:
-     typedef size_t ID;
-     typedef size_t POS;
-     ID m_id;
-     std::deque< Vehicle_node > m_path;
-     double max_capacity;
-
- public:
-     /*
-      * (twv, cv, fleet_size, wait_time, dureation)
-      */
-     typedef std::tuple< int, int, size_t, double, double > Cost;
-     void get_postgres_result(
-             int vid,
-             std::vector< General_vehicle_orders_t > &result) const;
-
-     Vehicle(
-             ID id,
-             const Vehicle_node &starting_site,
-             const Vehicle_node &ending_site,
-             double max_capacity);
-
-
-
-     /*! @name deque like functions
-
-       @returns True if the operation was performed
-       @warning Assertions are performed for out of range operations
-       @warning no feasability nor time window or capacity violations
-       checks are performed
-       @todo TODO more deque like functions here
-       */
-
-     /*! @brief Invariant
-      * The path must:
-      *   - have at least 2 nodes
-      *   - first node of the path must be Start node
-      *   - last node of the path must be End node
-      *
-      * path: S ..... E
-      */
-     void invariant() const;
-
-
-     /// @ {
-
-     /*! @brief Insert @b node at @b pos position.
-      *
-      * @param[in] pos The position that the node should be inserted.
-      * @param[in] node The node to insert.
-      *
-      */
-     void insert(POS pos, Vehicle_node node);
-
-
-     /*! @brief Insert @b node in best position of the @b position_limits.
-      *
-      * @param[in] position_limits
-      * @param[in] node The node to insert
-      *
-      * @returns position where it was inserted
-      */
-     POS insert(std::pair<POS, POS> position_limits, const Vehicle_node &node);
-
-
-
-
-
-     /*! @brief Evaluated: push_back a node to the path.
-      *
-      * ~~~~{.c}
-      * before: S <nodes> E
-      * after: S <nodes> n E
-      * ~~~~
-      *
-      * @param[in] node to be push_back.
-      */
-     void push_back(const Vehicle_node &node);
-
-     /*! @brief Evaluated: push_back a node to the path.
-      *
-      * ~~~~{.c}
-      * before: S <nodes> E
-      * after: S n <nodes> E
-      * ~~~~
-      *
-      * @param[in] node to be push_back.
-      */
-     void push_front(const Vehicle_node &node);
-
-
-     /*! @brief Evaluated: pop_back a node to the path.
-      *
-      * ~~~~{.c}
-      * before: S <nodes> n E
-      * after: S <nodes> E
-      * ~~~~
-      */
-     void pop_back();
-
-     /*! @brief Evaluated: pop_front a node to the path.
-      *
-      * ~~~~{.c}
-      * before: S n <nodes> E
-      * after: S <nodes> E
-      * ~~~~
-      */
-     void pop_front();
-
-     /*! @brief Erase node.id()
-      *
-      * @note start and ending nodes cannot be erased
-      *
-      * Numbers are positions
-      * before: S .... node.id() .... E
-      * after: S .... .... E
-      *
-      */
-     void erase(const Vehicle_node &node);
-
-
-
-     /*! @brief Erase node at `pos` from the path.
-      *
-      * @note start and ending nodes cannot be erased
-      *
-      * Numbers are positions
-      * before: S 1 2 3 4 5 6 pos 8 9 E
-      * after: S 1 2 3 4 5 6 8 9 E
-      *
-      * @param[in] pos to be erased.
-      */
-     void erase(POS pos);
-
-     /*! @brief return true when no nodes are in the truck 
-      *
-      * ~~~~{.c}
-      * True: S E
-      * False: S <nodes> E
-      * ~~~~
-      */
-     bool empty() const;
-
-     ID id() const {return m_id;}
-
-
-     /// @ {
-     Cost cost() const;
-     bool cost_compare(const Cost&, const Cost&) const;
-
-     double duration() const {
-         return m_path.back().departure_time();
-     }
-     double total_wait_time() const {
-         return m_path.back().total_wait_time();
-     } 
-     double total_travel_time() const {
-         return m_path.back().total_travel_time();
-     } 
-     double total_service_time() const {
-         return m_path.back().total_service_time();
-     } 
-     double free_time() const {
-         return total_wait_time() + (m_path[0].closes() - duration());
-     }
-     int twvTot() const {
-         return m_path.back().twvTot();
-     }
-     int cvTot() const {
-         return m_path.back().cvTot();
-     }
-     bool has_twv() const {
-         return twvTot() != 0;
-     }
-     bool has_cv() const {
-         return cvTot() != 0;
-     }
-     bool is_feasable() const {
-         return !(has_twv() ||  has_cv());
-     }
-     /// @}
-
-
-
-     /*!
-      * @brief Swap two nodes in the path.
-      *
-      * ~~~~{.c}
-      * Before: S <nodesA> I <nodesB> J <nodesC> E
-      * After: S <nodesA> J <nodesB> I <nodesC> E
-      * ~~~~
-      *
-      * @param[in] i The position of the first node to swap.
-      * @param[in] j The position of the second node to swap.
-      */
-     void swap(POS i, POS j);
-
-
-     /*! @name Evaluation
-      *
-      *
-      *
-      * Path evaluation is done incrementally: from a given position to the
-      * end of the path, and intermediate values are cached on each node.
-      * So, for example, changing the path at position 100:
-      * the evaluation function should be called as
-      * @c evaluate(100, maxcapacity)
-      * and from that position to the end of the path will be evaluated.
-      * None of the "unaffected" positions get reevaluated
-      *
-      *
-      *
-      */
-
-     ///@ {
-
-     /*! @brief Evaluate: Evaluate the whole path from the start. */
-     void evaluate();
-
-     /*! @brief Evaluate: Evaluate a path from the given position.
-      *
-      * @param[in] from The starting position in the path for evaluation to
-      * the end of the path.
-      */
-     void evaluate(POS from);
-
-     ///@}
-
-     double deltaTime(const Vehicle_node &node, POS pos) const;
-     POS insert_less_travel_time(const Vehicle_node &node, POS after_pos = 0);
-
-
-
-     /*! @name accessors */
-     ///@ {
-
-     std::deque< Vehicle_node > path() const;
-
-     ///@}
-
-     /*! @name operators */
-     ///@ {
-
-
-     friend std::ostream& operator << (std::ostream &log, const Vehicle &v);
-
-     std::string tau() const;
-
-     friend bool operator<(const Vehicle &lhs, const Vehicle &rhs);
-
-     ///@}
-
-
-
-     std::pair<POS, POS> position_limits(const Vehicle_node node) const;
-
-    private:
-     POS getPosLowLimit(const Vehicle_node &node) const;
-     POS getPosHighLimit(const Vehicle_node &node) const;
-};
-
-}  //  namespace vrp
-}  //  namespace pgrouting
diff --git a/src/pickDeliver/src/vehicle_node.cpp b/src/pickDeliver/src/vehicle_node.cpp
index b904490..3eebdc7 100644
--- a/src/pickDeliver/src/vehicle_node.cpp
+++ b/src/pickDeliver/src/vehicle_node.cpp
@@ -24,7 +24,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  ********************************************************************PGR-GNU*/
 
 
-#include "./vehicle_node.h"
+#include "vrp/vehicle_node.h"
 
 
 namespace pgrouting {
@@ -58,14 +58,19 @@ Vehicle_node::evaluate(double cargoLimit) {
     }
 }
 
+
 /*!
-  \param[in] pred The node preceding this node (in the path).
-  \param[in] cargoLimit The cargo limit of the vehicle.
+  \param[in] pred The node preceding this node in the path.
+  \param[in] cargoLimit of the vehicle.
+  \param[in] speed of the vehicle.
   */
 void
-Vehicle_node::evaluate(const Vehicle_node &pred, double cargoLimit) {
+Vehicle_node::evaluate(
+        const Vehicle_node &pred,
+        double cargoLimit,
+        double speed) {
     /* time */
-    m_travel_time    = pred.travel_time_to(*this);
+    m_travel_time    = pred.travel_time_to(*this, speed);
     m_arrival_time   = pred.departure_time() + travel_time();
     m_wait_time      = is_early_arrival(arrival_time()) ?
         opens() - m_arrival_time :
@@ -79,11 +84,11 @@ Vehicle_node::evaluate(const Vehicle_node &pred, double cargoLimit) {
 
     /* cargo aggregates */
     if (is_dump() &&  pred.cargo() >= 0) {
-        m_demand = -pred.cargo();
+        demand(-pred.cargo());
     }
     m_cargo = pred.cargo() + demand();
 
-    /* cargo aggregates */
+    /* violations aggregates */
 
     m_twvTot = has_twv() ? pred.twvTot() + 1 : pred.twvTot();
     m_cvTot = has_cv(cargoLimit) ? pred.cvTot() + 1 : pred.cvTot();
@@ -94,16 +99,16 @@ Vehicle_node::evaluate(const Vehicle_node &pred, double cargoLimit) {
 
 std::ostream&
 operator << (std::ostream &log, const Vehicle_node &v) {
-    log << static_cast<Tw_node>(v)
+    log << static_cast<const Tw_node&>(v)
         << " twv = " << v.has_twv()
         << ", twvTot = " << v.twvTot()
         << ", cvTot = " << v.cvTot()
         << ", cargo = " << v.cargo()
-        << ", travel _time = " << v.travel_time()
-        << ", arrival _time = " << v.arrival_time()
-        << ", wait _time = " << v.wait_time()
-        << ", service _time = " << v.service_time()
-        << ", departure _time = " << v.departure_time();
+        << ", travel_time = " << v.travel_time()
+        << ", arrival_time = " << v.arrival_time()
+        << ", wait_time = " << v.wait_time()
+        << ", service_time = " << v.service_time()
+        << ", departure_time = " << v.departure_time();
     return log;
 }
 
@@ -143,10 +148,12 @@ Vehicle_node::deltaGeneratesTWV(double delta_time) const {
   and that the actual arrival time at \b other node was arrival(other)
   */
 double
-Vehicle_node::arrival_i_arrives_j(const Vehicle_node &other) const {
+Vehicle_node::arrival_i_arrives_j(
+        const Vehicle_node &other,
+        double speed) const {
     return other.arrival_time()
         + other.service_time()
-        + other.travel_time_to(*this);
+        + other.travel_time_to(*this, speed);
 }
 
 }  //  namespace vrp
diff --git a/src/pickDeliver/src/vehicle_node.h b/src/pickDeliver/src/vehicle_node.h
deleted file mode 100644
index 1a981ff..0000000
--- a/src/pickDeliver/src/vehicle_node.h
+++ /dev/null
@@ -1,183 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-FILE: vehicle_node.h
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- ********************************************************************PGR-GNU*/
-
-#pragma once
-
-
-#include <string>
-
-#include "./tw_node.h"
-
-namespace pgrouting {
-namespace vrp {
-
-
-/*! \class Vehicle_node;
- * \brief Extend Tw_node to evaluate the vehicle at node level
- *
- * This class extends Twnode by adding attributes to store information
- * about the node in a path and provides the tools evaluate the node
- * and to set and get these attribute values.
- */
-
-
-class Vehicle_node: public Tw_node {
- public:
-     /** @name log */
-     ///@ {
-
-     friend std::ostream& operator<<(
-             std::ostream &log, const Vehicle_node &node);
-
-     ///@}
-
-     /** @name Node evaluation accessors */
-     ///@ {
-
-     /*! \brief Truck's travel_time from previous node to this node. */
-     inline double travel_time() const {return m_travel_time;}
-
-     /*! \brief Truck's arrival_time to this node. */
-     inline double arrival_time() const {return m_arrival_time;}
-
-     /*! \brief Truck's wait_time at this node. */
-     inline double wait_time() const {return m_wait_time;}
-
-     /*! \brief Truck's departure_time from this node. */
-     inline double departure_time() const {return m_departure_time;}
-
-     /*! \brief delta_time = departure_time(this) - departure_time(previous) */
-     inline double delta_time() const {return m_delta_time;}
-
-     ///@}
-
-
-
-
-
-
-     /** @name Accumulated evaluation accessors */
-     ///@ {
-
-     /*! \brief Truck's total times it has violated time windows. */
-     inline int twvTot() const {return m_twvTot;}
-
-     /*! \brief Truck's total times it has violated cargo limits. */
-     inline int cvTot() const {return m_cvTot;}
-
-     /*! \brief Truck's total cargo after the node was served. */
-     inline double cargo() const {return m_cargo;}
-
-     /*! \brief Truck's travel duration up to this node. */
-     inline double total_time() const {return m_departure_time;}
-
-     /*! \brief _time spent moving between nodes by the truck */
-     inline double total_travel_time() const {return m_tot_travel_time;}
-
-     /*! \brief _time spent by the truck waiting for nodes to open */
-     inline double total_wait_time() const {return m_tot_wait_time;}
-
-     /*! \brief _time spent by the truck servicing the nodes */
-     inline double total_service_time() const {return m_tot_service_time;}
-
-     ///@}
-
-     /*! \brief True when \b arrival_time + \b delta_time generates TWV.*/
-     bool deltaGeneratesTWV(double delta_time) const;
-
-     /** @name State */
-     ///@ {
-
-     /*! \brief True when the total count for violations are 0 */
-     bool feasible() const {return m_twvTot == 0 &&  m_cvTot == 0;}
-
-     /*! \brief True doesn't have twc nor cv (including total counts) */
-     bool feasible(double cargoLimit) const {
-         return feasible() &&  !has_twv() &&  !has_cv(cargoLimit);
-     }
-
-     /*! \brief True when at this node does not violate time windows */
-     bool has_twv() const {
-         return is_late_arrival(m_arrival_time);
-     }
-
-     /*! \brief True when not violation
-      *
-      * Ending's or start's cargo should be 0
-      **/
-     bool has_cv(double cargoLimit) const {
-         return is_end() ||  is_start() ? m_cargo != 0
-             : m_cargo > cargoLimit ||  m_cargo < 0;
-     }
-     ///@}
-
-     /** @name mutators */
-     ///@ {
-     void evaluate(double cargoLimit);
-     void evaluate(const Vehicle_node &pred, double cargoLimit);
-     ///@}
-
-     /** @name Document*/
-     ///@ {
-
-     /*! \brief returns the arrval time at \b this visited after \b other */
-     double arrival_i_arrives_j(
-             const Vehicle_node &other) const;
-
-     ///@}
-
-
-
-     /*! \brief Construct from parameters */
-     Vehicle_node(const Vehicle_node &node) = default;
-     Vehicle_node(const Tw_node &node);
-
- protected:
-     /** @name Node evaluation members */
-     ///@ {
-
-     double m_travel_time;     ///< Travel time from last node
-     double m_arrival_time;    ///< Arrival time at this node
-     double m_wait_time;       ///< Wait time at this node when early arrival
-     double m_departure_time;  // /< Departure time from this node
-     double m_delta_time;      ///< Departure time - last nodes departure time
-
-     ///@}
-
-     /** @name Accumulated evaluation members */
-     ///@ {
-
-     double m_cargo;           ///< Accumulated cargo
-     int    m_twvTot;          ///< Total count of TWV
-     int    m_cvTot;           ///< Total count of CV
-     double m_tot_wait_time;     ///< Accumulated wait time
-     double m_tot_travel_time;   ///< Accumulated travel time
-     double m_tot_service_time;  // /< Accumulated service time
-
-     ///@}
-};
-
-}  //  namespace vrp
-}  //  namespace pgrouting
diff --git a/src/pickDeliver/src/vehicle_pickDeliver.cpp b/src/pickDeliver/src/vehicle_pickDeliver.cpp
index 5a0176e..b3c5a7e 100644
--- a/src/pickDeliver/src/vehicle_pickDeliver.cpp
+++ b/src/pickDeliver/src/vehicle_pickDeliver.cpp
@@ -2,7 +2,7 @@
 
 FILE: vehicle_pickDeliver.cpp
 
-Copyright (c) 2015 pgRouting developers
+Copyright (c) 2016 pgRouting developers
 Mail: project at pgrouting.org
 
 ------
@@ -23,7 +23,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
  ********************************************************************PGR-GNU*/
 
-#include "./vehicle_pickDeliver.h"
+#include "vrp/vehicle_pickDeliver.h"
 
 #include <iostream>
 #include <deque>
@@ -33,10 +33,10 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 #include <limits>
 
 
-#include "./../../common/src/pgr_assert.h"
-#include "./order.h"
-#include "./vehicle.h"
-#include "./pgr_pickDeliver.h"
+#include "cpp_common/pgr_assert.h"
+#include "vrp/order.h"
+#include "vrp/vehicle.h"
+#include "vrp/pgr_pickDeliver.h"
 
 
 
@@ -45,19 +45,19 @@ namespace vrp {
 
 Order
 Vehicle_pickDeliver::get_worse_order(
-        std::set<size_t> orders) const {
+        Identifiers<size_t> orders) const {
     invariant();
     pgassert(!empty());
 
     // auto orders(of_this_subset);
-    auto worse_order(problem->orders()[*orders.begin()]);
+    auto worse_order(m_orders[*orders.begin()]);
     auto delta_duration((std::numeric_limits<double>::max)());
     auto curr_duration(duration());
     while (!orders.empty()) {
         auto truck(*this);
-        auto order(problem->orders()[*orders.begin()]);
+        auto order = m_orders[*orders.begin()];
         pgassert(truck.has_order(order));
-        orders.erase(orders.begin());
+        orders -= order.idx();
         truck.erase(order);
         auto delta = truck.duration() - curr_duration;
         if (delta < delta_duration) {
@@ -73,29 +73,31 @@ Order
 Vehicle_pickDeliver::get_first_order() const {
     invariant();
     pgassert(!empty());
-    return problem->order_of(m_path[1]);
+    return m_orders[m_path[1].idx()];
 }
 
 
 Vehicle_pickDeliver::Vehicle_pickDeliver(
         size_t id,
+        size_t kind,
         const Vehicle_node &starting_site,
         const Vehicle_node &ending_site,
-        double max_capacity,
-        const Pgr_pickDeliver *p_problem) :
-    Vehicle(id, starting_site, ending_site, max_capacity),
-    cost((std::numeric_limits<double>::max)()),
-    problem(p_problem) {
-        orders_in_vehicle.clear();
-
+        double p_capacity,
+        double p_speed,
+        double factor) :
+    Vehicle(id, kind, starting_site, ending_site, p_capacity, p_speed, factor),
+    cost((std::numeric_limits<double>::max)()) {
+        ENTERING();
+        m_orders_in_vehicle.clear();
         invariant();
+        EXITING();
     }
 
 
 
 bool
 Vehicle_pickDeliver::has_order(const Order &order) const {
-    return !(orders_in_vehicle.find(order.id()) == orders_in_vehicle.end());
+    return m_orders_in_vehicle.has(order.idx());
 }
 
 
@@ -158,7 +160,7 @@ Vehicle_pickDeliver::insert(const Order &order) {
 
         while (deliver_pos.first <= deliver_pos.second) {
             Vehicle::insert(deliver_pos.first, order.delivery());
-            orders_in_vehicle.insert(order.id());
+            m_orders_in_vehicle += order.idx();
             pgassertwm(has_order(order), err_log.str());
 #ifndef NDEBUG
             err_log << "\ndelivery inserted: " << tau();
@@ -186,7 +188,7 @@ Vehicle_pickDeliver::insert(const Order &order) {
 #ifndef NDEBUG
         err_log << "\npickup erased: " << tau();
 #endif
-        orders_in_vehicle.erase(order.id());
+        m_orders_in_vehicle -= order.idx();
         pgassertwm(!has_order(order), err_log.str());
 
         deliver_pos = d_pos_backup;
@@ -207,19 +209,20 @@ Vehicle_pickDeliver::insert(const Order &order) {
     Vehicle::insert(best_pick_pos, order.pickup());
     Vehicle::insert(best_deliver_pos, order.delivery());
 
-    orders_in_vehicle.insert(order.id());
+    m_orders_in_vehicle += order.idx();
     pgassertwm(is_feasable(), err_log.str());
     pgassertwm(has_order(order), err_log.str());
     pgassertwm(!has_cv(), err_log.str());
     invariant();
 }
 
+
 void
 Vehicle_pickDeliver::push_back(const Order &order) {
     invariant();
     pgassert(!has_order(order));
 
-    orders_in_vehicle.insert(order.id());
+    m_orders_in_vehicle += order.idx();
     m_path.insert(m_path.end() - 1, order.pickup());
     m_path.insert(m_path.end() - 1, order.delivery());
     evaluate(m_path.size() - 3);
@@ -231,12 +234,13 @@ Vehicle_pickDeliver::push_back(const Order &order) {
     invariant();
 }
 
+
 void
 Vehicle_pickDeliver::push_front(const Order &order) {
     invariant();
     pgassert(!has_order(order));
 
-    orders_in_vehicle.insert(order.id());
+    m_orders_in_vehicle += order.idx();
     m_path.insert(m_path.begin() + 1, order.delivery());
     m_path.insert(m_path.begin() + 1, order.pickup());
     evaluate(1);
@@ -250,6 +254,80 @@ Vehicle_pickDeliver::push_front(const Order &order) {
 
 
 void
+Vehicle_pickDeliver::do_while_feasable(
+        int kind,
+        Identifiers<size_t> &unassigned,
+        Identifiers<size_t> &assigned) {
+    pgassert(is_feasable());
+#if 0
+    msg.log << "unasigned" << unassigned << "\n";
+    msg.log << "m_feasable_orders" << m_feasable_orders << "\n";
+#endif
+    auto current_feasable = m_feasable_orders * unassigned;
+
+    while (!current_feasable.empty()) {
+#if 0
+        msg.log << "current_feasable" << current_feasable << "\n";
+#endif
+        auto order = m_orders[current_feasable.front()];
+
+        switch (kind) {
+            case 1:
+                push_back(order);
+                pgassert(is_feasable());
+                assigned += order.idx();
+                unassigned -= order.idx();
+                invariant();
+                return;
+                break;
+            case 2:
+                push_back(order);
+                break;
+            case 3:
+                push_front(order);
+                break;
+            case 4:
+                insert(order);
+                break;
+            case 5:
+                order = m_orders[m_orders.find_best_J(current_feasable)];
+                insert(order);
+                break;
+            case 6:
+                order = m_orders[m_orders.find_best_I(current_feasable)];
+                insert(order);
+                break;
+            default: pgassert(false);
+        }
+        if (orders_size() == 1 && !is_feasable()) {
+            pgassert(false);
+        }
+
+        if (!is_feasable()) {
+            erase(order);
+        } else {
+            assigned += order.idx();
+            unassigned -= order.idx();
+            if (kind == 5) {
+                current_feasable = m_orders[order.idx()].subsetJ(
+                        current_feasable);
+            }
+            if (kind == 6) {
+                current_feasable = m_orders[order.idx()].subsetI(
+                        current_feasable);
+            }
+        }
+
+        current_feasable -= order.idx();
+        invariant();
+    }
+
+    pgassert(is_feasable());
+    invariant();
+}
+
+
+void
 Vehicle_pickDeliver::erase(const Order &order) {
     invariant();
     pgassert(has_order(order));
@@ -257,7 +335,7 @@ Vehicle_pickDeliver::erase(const Order &order) {
 
     Vehicle::erase(order.pickup());
     Vehicle::erase(order.delivery());
-    orders_in_vehicle.erase(orders_in_vehicle.find(order.id()));
+    m_orders_in_vehicle -= order.idx();
 
     invariant();
     pgassert(!has_order(order));
@@ -277,35 +355,17 @@ Vehicle_pickDeliver::pop_back() {
 
     pgassert(pick_itr->is_pickup());
 
-    ID deleted_pick_id = pick_itr->id();
-
+    auto deleted_pick_idx = pick_itr->idx();
 
-    auto delivery_id = problem->node(deleted_pick_id).Did();
-
-    m_path.erase((pick_itr + 1).base());
-
-    auto delivery_itr = m_path.rbegin();
-    while (delivery_itr != m_path.rend()
-            && !(delivery_itr->id() ==delivery_id)) {
-        ++delivery_itr;
+    for (const auto o : m_orders) {
+        if (o.pickup().idx() == deleted_pick_idx) {
+            erase(o);
+            invariant();
+            return o.idx();
+        }
     }
-
-    pgassert(delivery_itr->is_delivery());
-    pgassert(delivery_itr->Pid() == deleted_pick_id);
-
-    m_path.erase((delivery_itr + 1).base());
-
-
-    /* figure out from where the evaluation is needed */
-    evaluate(1);
-
-    ID deleted_order_id(
-            problem->order_of(problem->node(deleted_pick_id)).id());
-
-    orders_in_vehicle.erase(orders_in_vehicle.find(deleted_order_id));
-
-    invariant();
-    return deleted_order_id;
+    pgassert(false);
+    return 0;
 }
 
 
@@ -322,33 +382,34 @@ Vehicle_pickDeliver::pop_front() {
 
     pgassert(pick_itr->is_pickup());
 
-    ID deleted_pick_id = pick_itr->id();
-
+    auto deleted_pick_idx = pick_itr->idx();
 
-    auto delivery_id = problem->node(deleted_pick_id).Did();
-
-    m_path.erase(pick_itr);
-
-    auto delivery_itr = m_path.begin();
-    while (delivery_itr != m_path.end()
-            && !(delivery_itr->id() == delivery_id)) {
-        ++delivery_itr;
+    for (const auto o : m_orders) {
+        if (o.pickup().idx() == deleted_pick_idx) {
+            erase(o);
+            invariant();
+            return o.idx();
+        }
     }
 
-    pgassert(delivery_itr->is_delivery());
-    pgassert(delivery_itr->Pid() == deleted_pick_id);
-
-    m_path.erase(delivery_itr);
-
-    evaluate(1);
-
-    ID deleted_order_id(
-            problem->order_of(problem->node(deleted_pick_id)).id());
+    pgassert(false);
+    return 0;
+}
 
-    orders_in_vehicle.erase(orders_in_vehicle.find(deleted_order_id));
+void
+Vehicle_pickDeliver::set_compatibles(const PD_Orders &orders) {
+    m_orders = orders;
+    for (const auto o : orders) {
+        if (is_order_feasable(o)) m_feasable_orders += o.idx();
+    }
+    m_orders.set_compatibles(speed());
+}
 
-    invariant();
-    return deleted_order_id;
+bool
+Vehicle_pickDeliver::is_order_feasable(const Order &order) const {
+    auto test_truck =  *this;
+    test_truck.push_back(order);
+    return test_truck.is_feasable();
 }
 
 
diff --git a/src/pickDeliver/src/vehicle_pickDeliver.h b/src/pickDeliver/src/vehicle_pickDeliver.h
deleted file mode 100644
index 6832d96..0000000
--- a/src/pickDeliver/src/vehicle_pickDeliver.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-FILE: vehicle_pickDeliver.h
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- ********************************************************************PGR-GNU*/
-#pragma once
-
-#include <set>
-#include "./order.h"
-#include "./tw_node.h"
-#include "./vehicle.h"
-
-namespace pgrouting {
-namespace vrp {
-
-
-class Initial_solution;
-class Optimize;
-
-class Vehicle_pickDeliver : public Vehicle {
- protected:
-     double cost;
-     std::set<ID> orders_in_vehicle;  // /< orders inserted in this vehicle
-     const Pgr_pickDeliver *problem;  // /< The vehicle belongs to this problem
-
-
- public:
-     friend class Initial_solution;
-     friend class Optimize;
-
-     Vehicle_pickDeliver(
-             ID id,
-             const Vehicle_node &starting_site,
-             const Vehicle_node &ending_site,
-             double max_capacity,
-             const Pgr_pickDeliver *p_problem);
-
-     Vehicle_pickDeliver(const Vehicle_pickDeliver &) = default;
-
-     size_t orders_size() const {return orders_in_vehicle.size();}
-
-     bool has_order(const Order &order) const;
-
-     /*! @brief puts an order at the end of the truck
-      *
-      * Precondition:
-      * !has_order(order)
-      *
-      * Postcondition:
-      * has_order(order)
-      * !has_cv();
-      *
-      * ~~~~{.c}
-      * Before: S <nodes> E
-      *   After: S <nodes> P D E
-      * ~~~~
-      *
-      * Can generate time window violation
-      * No capacity violation
-      */
-     void push_back(const Order &order);
-
-
-
-     /*! @brief Puts an order at the end front of the truck
-      *
-      * Precondition:
-      * !has_order(order)
-      *
-      * Postcondition:
-      * has_order(order)
-      * !has_cv();
-      *
-      * ~~~~{.c}
-      * Before: S <nodes> E
-      *   After: S P D <nodes> E
-      * ~~~~
-      *
-      * Can generate time window violation
-      * No capacity violation
-      */
-     void push_front(const Order &order);
-
-
-
-     /*! @brief Inserts an order
-      *
-      * Precondition:
-      * !has_order(order)
-      *
-      * Postcondition:
-      * has_order(order)
-      * !has_cv();
-      *
-      * ~~~~{.c}
-      * Before: S <nodes> E
-      *   After: S ....P .... D .... E
-      * ~~~~
-      *
-      * push_back is performed when
-      *   - pickup
-      *
-      * Can generate time window violation
-      * No capacity violation
-      */
-     void insert(const Order &order);
-
-     /* @brief erases the order from the vehicle
-      *
-      * Precondition:
-      * has_order(order)
-      *
-      * Precondition:
-      * !has_order(order)
-      */
-     void erase(const Order &order);
-
-     /* @brief 
-      */
-     Order get_first_order() const;
-     Order get_worse_order(std::set<size_t> of_this_subset) const;
-
-
-     /*!
-      * The order that is picked last is removed
-      *
-      * \returns id of the removed order
-      */
-
-     ID pop_back();
-     ID pop_front();
-};
-
-}  //  namespace vrp
-}  //  namespace pgrouting
-
diff --git a/src/pickDeliver/test/book_from_query.result b/src/pickDeliver/test/book_from_query.result
new file mode 100644
index 0000000..6449137
--- /dev/null
+++ b/src/pickDeliver/test/book_from_query.result
@@ -0,0 +1,186 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+DROP TABLE IF EXISTS jet_stops;
+NOTICE:  table "jet_stops" does not exist, skipping
+DROP TABLE
+DROP TABLE IF EXISTS jet_flyers;
+NOTICE:  table "jet_flyers" does not exist, skipping
+DROP TABLE
+DROP TABLE IF EXISTS jet_orders;
+NOTICE:  table "jet_orders" does not exist, skipping
+DROP TABLE
+DROP TABLE IF EXISTS jet_airplane;
+NOTICE:  table "jet_airplane" does not exist, skipping
+DROP TABLE
+DROP TABLE IF EXISTS jet_trips;
+NOTICE:  table "jet_trips" does not exist, skipping
+DROP TABLE
+DROP TABLE IF EXISTS vrp_solution;
+NOTICE:  table "vrp_solution" does not exist, skipping
+DROP TABLE
+CREATE TABLE jet_stops (
+    id SERIAL,
+    iata_faa TEXT,
+    city TEXT, 
+    x integer,
+    y integer,
+    longitude double precision,
+    latitude double precision
+);
+CREATE TABLE
+INSERT INTO jet_stops (iata_faa, city, longitude, latitude) VALUES
+('BOS',  'Boston', -71.005180999999993, 42.364347000000002),
+('BGR',  'Bangor', -68.828138999999993, 44.807443999999997),
+('MIA',  'Miami',  -80.290555999999995, 25.79325),
+('TEB',  'Teterboro NJ', -74.060837000000006, 40.850102999999997),
+('MVY',  'Martha''s Vineyard', -70.615278000000004, 41.391666999999998),
+('ABE',  'Lehigh Valley', -75.440805999999995, 40.652082999999998),
+('BKW',  'Raleigh County Memorial', -81.124200000000002, 37.787300000000002),
+('BGE',  'Decatur County Industrial', -84.636927799999995, 30.971598100000001);
+INSERT 0 8
+UPDATE jet_stops SET
+x = ST_X(ST_Transform(ST_SetSRID(ST_point(longitude, latitude)::geometry,4326),2163)),
+y = ST_Y(ST_Transform(ST_SetSRID(ST_point(longitude, longitude)::geometry,4326),2163));
+UPDATE 8
+CREATE TABLE jet_flyers AS
+    SELECT
+    row_number() over() AS id,
+    s1.iata_faa  AS from_airport,
+    s2.iata_faa  AS to_airport,
+    (1 + mod(s1.id, 5))::integer AS num_passengers,
+    
+    mod(s1.id,7)*60 AS departureFromTime,
+    
+    (mod(s1.id,7) + 4) * 60 AS arrivalToTime
+    FROM
+    
+    (SELECT * FROM jet_stops WHERE id < 4) AS s1,
+    
+    (SELECT * FROM jet_stops WHERE id >= 4) AS s2
+    WHERE s1.id <> s2.id;
+SELECT 15
+CREATE TABLE jet_orders AS
+    SELECT
+    id,
+    num_passengers AS demand,
+    (SELECT x FROM jet_stops WHERE iata_faa = jet_flyers.from_airport) AS p_x,
+    (SELECT y FROM jet_stops WHERE iata_faa = jet_flyers.from_airport) AS p_y,
+    
+    departureFromTime AS p_open,
+    arrivalToTime AS p_close,
+    (SELECT x FROM jet_stops WHERE iata_faa = jet_flyers.to_airport) AS d_x,
+    (SELECT y FROM jet_stops WHERE iata_faa = jet_flyers.to_airport) AS d_y,
+    departureFromTime AS d_open,
+    arrivalToTime AS d_close,
+    from_airport, to_airport
+    FROM jet_flyers;
+SELECT 15
+CREATE TABLE jet_airplane AS
+SELECT
+    1 AS id,
+    
+    5 AS capacity,
+    
+    10000 AS speed, 
+    20 as "number",
+    x AS start_x, y AS start_y,
+    0 AS start_open,
+    300 AS start_close,
+    0 AS start_service
+    FROM jet_stops
+    WHERE iata_faa = 'TEB';
+SELECT 1
+CREATE TABLE vrp_solution AS
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    $$ SELECT * FROM jet_orders $$,
+    $$ SELECT * FROM jet_airplane $$
+);
+SELECT 47
+CREATE TABLE jet_trips AS
+WITH the_results AS (
+SELECT vrp_solution.*,  from_airport, to_airport,
+CASE WHEN stop_type = 1 THEN ST_POINT(p_x, p_y) 
+        WHEN stop_type = 2 THEN ST_POINT(d_x, d_y)
+        WHEN stop_type = 0 THEN  ST_POINT(start_x, start_y)
+    END AS geom
+FROM vrp_solution LEFT JOIN  jet_orders on (order_id = jet_orders.id)
+LEFT JOIN jet_airplane on (vehicle_id = jet_airplane.id)
+)
+SELECT *, ST_SetSRID(ST_MakeLine(geom, lead(geom) over(order by seq)),2163) AS lines from the_results;
+SELECT 47
+SELECT * FROM jet_orders;
+ id | demand |   p_x   |    p_y    | p_open | p_close |   d_x   |    d_y    | d_open | d_close | from_airport | to_airport 
+----+--------+---------+-----------+--------+---------+---------+-----------+--------+---------+--------------+------------
+  1 |      2 | 2320738 | -10738754 |     60 |     300 | 2138410 | -10946747 |     60 |     300 | BOS          | TEB
+  2 |      2 | 2320738 | -10738754 |     60 |     300 | 2387491 | -10710759 |     60 |     300 | BOS          | MVY
+  3 |      2 | 2320738 | -10738754 |     60 |     300 | 2035311 | -11034361 |     60 |     300 | BOS          | ABE
+  4 |      2 | 2320738 | -10738754 |     60 |     300 | 1644577 | -11358423 |     60 |     300 | BOS          | BKW
+  5 |      2 | 2320738 | -10738754 |     60 |     300 | 1466239 | -11533361 |     60 |     300 | BOS          | BGE
+  6 |      3 | 2383186 | -10578021 |    120 |     360 | 2138410 | -10946747 |    120 |     360 | BGR          | TEB
+  7 |      3 | 2383186 | -10578021 |    120 |     360 | 2387491 | -10710759 |    120 |     360 | BGR          | MVY
+  8 |      3 | 2383186 | -10578021 |    120 |     360 | 2035311 | -11034361 |    120 |     360 | BGR          | ABE
+  9 |      3 | 2383186 | -10578021 |    120 |     360 | 1644577 | -11358423 |    120 |     360 | BGR          | BKW
+ 10 |      3 | 2383186 | -10578021 |    120 |     360 | 1466239 | -11533361 |    120 |     360 | BGR          | BGE
+ 11 |      4 | 1981145 | -11314287 |    180 |     420 | 2138410 | -10946747 |    180 |     420 | MIA          | TEB
+ 12 |      4 | 1981145 | -11314287 |    180 |     420 | 2387491 | -10710759 |    180 |     420 | MIA          | MVY
+ 13 |      4 | 1981145 | -11314287 |    180 |     420 | 2035311 | -11034361 |    180 |     420 | MIA          | ABE
+ 14 |      4 | 1981145 | -11314287 |    180 |     420 | 1644577 | -11358423 |    180 |     420 | MIA          | BKW
+ 15 |      4 | 1981145 | -11314287 |    180 |     420 | 1466239 | -11533361 |    180 |     420 | MIA          | BGE
+(15 rows)
+
+SELECT * FROM jet_trips;
+ seq | vehicle_number | vehicle_id | vehicle_seq | order_id | stop_type | cargo |   travel_time    |   arrival_time   |    wait_time     | service_time |  departure_time  | from_airport | to_airport |                    geom                    |                                           lines                                            
+-----+----------------+------------+-------------+----------+-----------+-------+------------------+------------------+------------------+--------------+------------------+--------------+------------+--------------------------------------------+--------------------------------------------------------------------------------------------
+   1 |              1 |          1 |           1 |       -1 |         1 |     0 |                0 |                0 |                0 |            0 |                0 |              |            |                                            | 
+   2 |              1 |          1 |           2 |        7 |         2 |     3 | 44.2576720187585 | 44.2576720187585 | 75.7423279812415 |            0 |              120 | BGR          | MVY        | 01010000000000008011374241000000E0DC6D64C1 | 
+   3 |              1 |          1 |           3 |        7 |         3 |     0 | 13.2807792199855 | 133.280779219986 |                0 |            0 | 133.280779219986 | BGR          | MVY        |                                            | 
+   4 |              1 |          1 |           4 |        8 |         2 |     3 | 13.2807792199855 | 146.561558439971 |                0 |            0 | 146.561558439971 | BGR          | ABE        | 0101000000000000006F0E3F4100000020DF0B65C1 | 01020000207308000002000000000000006F0E3F4100000020DF0B65C100000000955040410000006017E164C1
+   5 |              1 |          1 |           5 |        1 |         2 |     5 | 17.2437959837734 | 163.805354423745 |                0 |            0 | 163.805354423745 | BOS          | TEB        | 010100000000000000955040410000006017E164C1 | 
+   6 |              1 |          1 |           6 |       12 |         3 |     1 | 7.23856548910072 | 171.043919912845 | 8.95608008715473 |            0 |              180 | MIA          | MVY        |                                            | 
+   7 |              1 |          1 |           7 |       12 |         2 |     5 | 72.7573445433518 | 252.757344543352 |                0 |            0 | 252.757344543352 | MIA          | MVY        | 01010000000000008011374241000000E0DC6D64C1 | 
+   8 |              1 |          1 |           8 |        8 |         3 |     2 | 28.5118433343058 | 281.269187877658 |                0 |            0 | 281.269187877658 | BGR          | ABE        |                                            | 
+   9 |              1 |          1 |           9 |        1 |         3 |     0 | 13.5298251271035 | 294.799013004761 |                0 |            0 | 294.799013004761 | BOS          | TEB        |                                            | 
+  10 |              1 |          1 |          10 |       -1 |         6 |     0 |                0 | 294.799013004761 |                0 |            0 | 294.799013004761 |              |            |                                            | 
+  11 |              2 |          1 |           1 |       -1 |         1 |     0 |                0 |                0 |                0 |            0 |                0 |              |            |                                            | 
+  12 |              2 |          1 |           2 |        4 |         2 |     2 | 27.6594626905513 | 27.6594626905513 | 32.3405373094487 |            0 |               60 | BOS          | BKW        | 01010000000000000021183941000000E01AAA65C1 | 010200002073080000020000000000000021183941000000E01AAA65C10000000021183941000000E01AAA65C1
+  13 |              2 |          1 |           3 |        9 |         2 |     5 | 17.2437959837734 | 77.2437959837734 | 42.7562040162266 |            0 |              120 | BGR          | BKW        | 01010000000000000021183941000000E01AAA65C1 | 
+  14 |              2 |          1 |           4 |        9 |         3 |     2 | 107.450943992363 | 227.450943992363 |                0 |            0 | 227.450943992363 | BGR          | BKW        |                                            | 
+  15 |              2 |          1 |           5 |        4 |         3 |     0 |                0 | 227.450943992363 |                0 |            0 | 227.450943992363 | BOS          | BKW        |                                            | 
+  16 |              2 |          1 |           6 |       -1 |         6 |     0 | 64.2921582205015 | 291.743102212865 |                0 |            0 | 291.743102212865 |              |            |                                            | 
+  17 |              3 |          1 |           1 |       -1 |         1 |     0 |                0 |                0 |                0 |            0 |                0 |              |            |                                            | 
+  18 |              3 |          1 |           2 |        3 |         2 |     2 | 27.6594626905513 | 27.6594626905513 | 32.3405373094487 |            0 |               60 | BOS          | ABE        | 0101000000000000006F0E3F4100000020DF0B65C1 | 01020000207308000002000000000000006F0E3F4100000020DF0B65C1000000007F5F36410000002086FF65C1
+  19 |              3 |          1 |           3 |        5 |         2 |     4 |                0 |               60 |                0 |            0 |               60 | BOS          | BGE        | 0101000000000000007F5F36410000002086FF65C1 | 
+  20 |              3 |          1 |           4 |        3 |         3 |     2 | 41.0916135942603 |  101.09161359426 |                0 |            0 |  101.09161359426 | BOS          | ABE        |                                            | 
+  21 |              3 |          1 |           5 |        5 |         3 |     0 |  75.686454612698 | 176.778068206958 |                0 |            0 | 176.778068206958 | BOS          | BGE        |                                            | 
+  22 |              3 |          1 |           6 |       11 |         2 |     4 | 55.9572699755805 | 232.735338182539 |                0 |            0 | 232.735338182539 | MIA          | TEB        | 010100000000000000955040410000006017E164C1 | 
+  23 |              3 |          1 |           7 |       11 |         3 |     0 | 39.9772350000597 | 272.712573182599 |                0 |            0 | 272.712573182599 | MIA          | TEB        |                                            | 
+  24 |              3 |          1 |           8 |       -1 |         6 |     0 |                0 | 272.712573182599 |                0 |            0 | 272.712573182599 |              |            |                                            | 
+  25 |              4 |          1 |           1 |       -1 |         1 |     0 |                0 |                0 |                0 |            0 |                0 |              |            |                                            | 
+  26 |              4 |          1 |           2 |       13 |         2 |     4 | 39.9772350000597 | 39.9772350000597 |  140.02276499994 |            0 |              180 | MIA          | ABE        | 0101000000000000006F0E3F4100000020DF0B65C1 | 
+  27 |              4 |          1 |           3 |       13 |         3 |     0 | 28.5118433343058 | 208.511843334306 |                0 |            0 | 208.511843334306 | MIA          | ABE        |                                            | 
+  28 |              4 |          1 |           4 |       -1 |         6 |     0 | 13.5298251271035 | 222.041668461409 |                0 |            0 | 222.041668461409 |              |            |                                            | 
+  29 |              5 |          1 |           1 |       -1 |         1 |     0 |                0 |                0 |                0 |            0 |                0 |              |            |                                            | 
+  30 |              5 |          1 |           2 |       14 |         2 |     4 | 39.9772350000597 | 39.9772350000597 |  140.02276499994 |            0 |              180 | MIA          | BKW        | 01010000000000000021183941000000E01AAA65C1 | 
+  31 |              5 |          1 |           3 |       14 |         3 |     0 | 33.9449561967607 | 213.944956196761 |                0 |            0 | 213.944956196761 | MIA          | BKW        |                                            | 
+  32 |              5 |          1 |           4 |       -1 |         6 |     0 | 64.2921582205015 | 278.237114417262 |                0 |            0 | 278.237114417262 |              |            |                                            | 
+  33 |              6 |          1 |           1 |       -1 |         1 |     0 |                0 |                0 |                0 |            0 |                0 |              |            |                                            | 
+  34 |              6 |          1 |           2 |        6 |         2 |     3 | 44.2576720187585 | 44.2576720187585 | 75.7423279812415 |            0 |              120 | BGR          | TEB        | 010100000000000000955040410000006017E164C1 | 
+  35 |              6 |          1 |           3 |        6 |         3 |     0 | 44.2576720187585 | 164.257672018759 |                0 |            0 | 164.257672018759 | BGR          | TEB        |                                            | 
+  36 |              6 |          1 |           4 |       -1 |         6 |     0 |                0 | 164.257672018759 |                0 |            0 | 164.257672018759 |              |            |                                            | 
+  37 |              7 |          1 |           1 |       -1 |         1 |     0 |                0 |                0 |                0 |            0 |                0 |              |            |                                            | 
+  38 |              7 |          1 |           2 |        2 |         2 |     2 | 27.6594626905513 | 27.6594626905513 | 32.3405373094487 |            0 |               60 | BOS          | MVY        | 01010000000000008011374241000000E0DC6D64C1 | 
+  39 |              7 |          1 |           3 |        2 |         3 |     0 | 7.23856548910072 | 67.2385654891007 |                0 |            0 | 67.2385654891007 | BOS          | MVY        |                                            | 
+  40 |              7 |          1 |           4 |       -1 |         6 |     0 | 34.3120504640862 | 101.550615953187 |                0 |            0 | 101.550615953187 |              |            |                                            | 
+  41 |              8 |         -1 |           1 |       -1 |         1 |     0 |                0 |                0 |                0 |            0 |                0 |              |            |                                            | 
+  42 |              8 |         -1 |           2 |       10 |         2 |     3 | 44.2576720187585 | 44.2576720187585 | 75.7423279812415 |            0 |              120 | BGR          | BGE        | 0101000000000000007F5F36410000002086FF65C1 | 01020000207308000002000000000000007F5F36410000002086FF65C1000000007F5F36410000002086FF65C1
+  43 |              8 |         -1 |           3 |       15 |         2 |     7 | 83.8882940842761 | 203.888294084276 |                0 |            0 | 203.888294084276 | MIA          | BGE        | 0101000000000000007F5F36410000002086FF65C1 | 
+  44 |              8 |         -1 |           4 |       15 |         3 |     3 | 55.9572699755805 | 259.845564059857 |                0 |            0 | 259.845564059857 | MIA          | BGE        |                                            | 
+  45 |              8 |         -1 |           5 |       10 |         3 |     0 |                0 | 259.845564059857 |                0 |            0 | 259.845564059857 | BGR          | BGE        |                                            | 
+  46 |              8 |         -1 |           6 |       -1 |         6 |     0 | 89.2149000020176 | 349.060464061874 |                0 |            0 | 349.060464061874 |              |            |                                            | 
+  47 |             -2 |          0 |           0 |       -1 |        -1 |    -1 | 1318.39581333738 |               -1 | 656.006409975332 |            0 | 1974.40222331272 |              |            |                                            | 
+(47 rows)
+
+ROLLBACK;
+ROLLBACK
diff --git a/src/pickDeliver/test/book_from_query.test.sql b/src/pickDeliver/test/book_from_query.test.sql
new file mode 100644
index 0000000..a3c648e
--- /dev/null
+++ b/src/pickDeliver/test/book_from_query.test.sql
@@ -0,0 +1,115 @@
+DROP TABLE IF EXISTS jet_stops;
+DROP TABLE IF EXISTS jet_flyers;
+DROP TABLE IF EXISTS jet_orders;
+DROP TABLE IF EXISTS jet_airplane;
+DROP TABLE IF EXISTS jet_trips;
+DROP TABLE IF EXISTS vrp_solution;
+
+CREATE TABLE jet_stops (
+    id SERIAL,
+    iata_faa TEXT,
+    city TEXT, 
+    x integer,
+    y integer,
+    longitude double precision,
+    latitude double precision
+);
+
+
+INSERT INTO jet_stops (iata_faa, city, longitude, latitude) VALUES
+('BOS',  'Boston', -71.005180999999993, 42.364347000000002),
+('BGR',  'Bangor', -68.828138999999993, 44.807443999999997),
+('MIA',  'Miami',  -80.290555999999995, 25.79325),
+('TEB',  'Teterboro NJ', -74.060837000000006, 40.850102999999997),
+('MVY',  'Martha''s Vineyard', -70.615278000000004, 41.391666999999998),
+('ABE',  'Lehigh Valley', -75.440805999999995, 40.652082999999998),
+('BKW',  'Raleigh County Memorial', -81.124200000000002, 37.787300000000002),
+('BGE',  'Decatur County Industrial', -84.636927799999995, 30.971598100000001);
+
+
+UPDATE jet_stops SET
+x = ST_X(ST_Transform(ST_SetSRID(ST_point(longitude, latitude)::geometry,4326),2163)),
+y = ST_Y(ST_Transform(ST_SetSRID(ST_point(longitude, longitude)::geometry,4326),2163));
+
+
+CREATE TABLE jet_flyers AS
+    SELECT
+    row_number() over() AS id,
+    s1.iata_faa  AS from_airport,
+    s2.iata_faa  AS to_airport,
+    (1 + mod(s1.id, 5))::integer AS num_passengers,
+    -- the passengers don't want to depart before this time
+    mod(s1.id,7)*60 AS departureFromTime,
+    -- the passengers don't want to arrive after this time
+    (mod(s1.id,7) + 4) * 60 AS arrivalToTime
+    FROM
+    -- people departing from BOS BGR MIA TEB
+    (SELECT * FROM jet_stops WHERE id < 4) AS s1,
+    -- people want to go to MVY ABE BKW BGE
+    (SELECT * FROM jet_stops WHERE id >= 4) AS s2
+    WHERE s1.id <> s2.id;
+
+
+-- Listing Create jet_orders table to be used in pgr_pickDeliverEuclidean
+CREATE TABLE jet_orders AS
+    SELECT
+    id,
+    num_passengers AS demand,
+    (SELECT x FROM jet_stops WHERE iata_faa = jet_flyers.from_airport) AS p_x,
+    (SELECT y FROM jet_stops WHERE iata_faa = jet_flyers.from_airport) AS p_y,
+    
+    departureFromTime AS p_open,
+    arrivalToTime AS p_close,
+
+    (SELECT x FROM jet_stops WHERE iata_faa = jet_flyers.to_airport) AS d_x,
+    (SELECT y FROM jet_stops WHERE iata_faa = jet_flyers.to_airport) AS d_y,
+
+    departureFromTime AS d_open,
+    arrivalToTime AS d_close,
+
+    from_airport, to_airport
+
+    FROM jet_flyers;
+
+ 
+--
+CREATE TABLE jet_airplane AS
+SELECT
+    1 AS id,
+    -- small plane
+    5 AS capacity,
+    -- not so fast
+    10000 AS speed, -- mts/min
+    20 as "number",
+    x AS start_x, y AS start_y,
+    0 AS start_open,
+    300 AS start_close,
+    0 AS start_service
+    FROM jet_stops
+    WHERE iata_faa = 'TEB';
+
+CREATE TABLE vrp_solution AS
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    $$ SELECT * FROM jet_orders $$,
+    $$ SELECT * FROM jet_airplane $$
+);
+
+
+CREATE TABLE jet_trips AS
+WITH the_results AS (
+SELECT vrp_solution.*,  from_airport, to_airport,
+CASE WHEN stop_type = 1 THEN ST_POINT(p_x, p_y) 
+        WHEN stop_type = 2 THEN ST_POINT(d_x, d_y)
+        WHEN stop_type = 0 THEN  ST_POINT(start_x, start_y)
+    END AS geom
+FROM vrp_solution LEFT JOIN  jet_orders on (order_id = jet_orders.id)
+LEFT JOIN jet_airplane on (vehicle_id = jet_airplane.id)
+)
+SELECT *, ST_SetSRID(ST_MakeLine(geom, lead(geom) over(order by seq)),2163) AS lines from the_results;
+
+
+SELECT * FROM jet_orders;
+
+SELECT * FROM jet_trips;
+
+
diff --git a/doc/test/CMakeLists.txt b/src/pickDeliver/test/book_vrp.result
similarity index 100%
rename from doc/test/CMakeLists.txt
rename to src/pickDeliver/test/book_vrp.result
diff --git a/src/pickDeliver/test/book_vrp.test.sql b/src/pickDeliver/test/book_vrp.test.sql
new file mode 100644
index 0000000..4c09696
--- /dev/null
+++ b/src/pickDeliver/test/book_vrp.test.sql
@@ -0,0 +1,664 @@
+DROP TABLE IF EXISTS jet_customers;
+
+
+/*
+CREATE TABLE trucks(id integer primary key, truck_name varchar(75), capacity integer );
+INSERT INTO trucks(id, truck_name, capacity)
+VALUES (1, 'Hardy Truck', 800),
+    (2, 'Laurel Truck', 400);
+    
+CREATE TABLE restaurants_99(id integer primary key,  loc_name varchar(150), lon float, lat float);
+INSERT INTO restaurants_99(id, loc_name, lon, lat)
+VALUES (1, 'Bristol, CT', -72.8924, 41.66892),
+     (2, 'Cromwell, CT', -72.67615, 41.60165),
+     (3, 'Danbury, CT', -73.41376, 41.41008),
+     (4, 'Enfield, CT', -72.57634, 41.98837),
+     (5, 'Glastonbury, CT', -72.61592, 41.72646),
+     (6, 'Groton, CT', -72.06683, 41.36298),
+     (7, 'Dayville, CT', -71.8824882, 41.8425568),
+     (8, 'Norwich, CT', -72.10508, 41.51431),
+     (9, 'Stratford, CT',  -73.12182, 41.19878),
+     (10, 'Torrington, CT',  -73.12131, 41.79984),
+     (11, 'Vernon, CT', -72.49305, 41.82647),
+     (12, 'Wallingford, CT', -72.8092, 41.4835);
+*/   
+     
+CREATE TABLE jet_customers (
+    airport character varying,
+    id integer,
+    x double precision,
+    y double precision,
+    pindex integer,
+    dindex integer,
+    demand integer,
+    opentime double precision,
+    closetime double precision,
+    servicetime double precision
+);
+
+
+/*
+--
+-- TOC entry 290 (class 1259 OID 6616043)
+-- Name: vrp1_cost; Type: TABLE; Schema: public; Owner: postgres
+--
+
+CREATE TABLE vrp1_cost (
+    src_id integer,
+    dest_id integer,
+    cost double precision,
+    distance double precision,
+    traveltime double precision
+);
+
+
+
+--
+-- TOC entry 291 (class 1259 OID 6616046)
+-- Name: vrp1_gdist; Type: TABLE; Schema: public; Owner: postgres
+--
+
+CREATE TABLE vrp1_gdist (
+    src_id integer,
+    dest_id integer,
+    cost double precision,
+    distance double precision,
+    traveltime double precision
+);
+
+
+--
+-- TOC entry 285 (class 1259 OID 6607823)
+-- Name: vrp1_orders; Type: TABLE; Schema: public; Owner: postgres
+--
+
+CREATE TABLE vrp1_orders (
+    id integer,
+    x numeric,
+    y numeric,
+    order_unit integer,
+    open_time integer,
+    close_time integer,
+    service_time integer
+);
+
+
+
+--
+-- TOC entry 289 (class 1259 OID 6616034)
+-- Name: vrp1_points; Type: TABLE; Schema: public; Owner: postgres
+--
+
+CREATE TABLE vrp1_points (
+    id integer,
+    pid integer,
+    geom geometry(Point,4326),
+    edge_id integer,
+    fraction double precision,
+    closest_node integer
+);
+
+
+--
+-- TOC entry 297 (class 1259 OID 8777648)
+-- Name: vrpdtw_beer; Type: TABLE; Schema: public; Owner: postgres
+--
+
+CREATE TABLE vrpdtw_beer (
+    rid integer,
+    id integer,
+    x double precision,
+    y double precision,
+    opentime integer,
+    closetime integer,
+    servicetime integer,
+    demand integer,
+    pindex integer,
+    dindex integer
+);
+*/
+
+--
+
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 1, 2320738.4688434978, 126348.38967116659, 0, 2, 4, 3448, 2853448, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 3, 2320738.4688434978, 126348.38967116659, 0, 4, 4, 3448, 2853448, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 5, 2320738.4688434978, 126348.38967116659, 0, 6, 4, 3448, 2853448, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 7, 2320738.4688434978, 126348.38967116659, 0, 8, 4, 3448, 2853448, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 9, 2320738.4688434978, 126348.38967116659, 0, 10, 4, 3448, 2853448, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 11, 2320738.4688434978, 126348.38967116659, 0, 12, 4, 3448, 2853448, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 13, 2383186.1525343237, 448251.25888828852, 0, 14, 4, 3463, 2853463, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 15, 2383186.1525343237, 448251.25888828852, 0, 16, 4, 3463, 2853463, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 17, 2383186.1525343237, 448251.25888828852, 0, 18, 4, 3463, 2853463, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 19, 2383186.1525343237, 448251.25888828852, 0, 20, 4, 3463, 2853463, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 21, 2383186.1525343237, 448251.25888828852, 0, 22, 4, 3463, 2853463, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 23, 2383186.1525343237, 448251.25888828852, 0, 24, 4, 3463, 2853463, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 25, 1981144.5525029898, -1903041.2384292425, 0, 26, 2, 3576, 2853576, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 27, 1981144.5525029898, -1903041.2384292425, 0, 28, 2, 3576, 2853576, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 29, 1981144.5525029898, -1903041.2384292425, 0, 30, 2, 3576, 2853576, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 31, 1981144.5525029898, -1903041.2384292425, 0, 32, 2, 3576, 2853576, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 33, 1981144.5525029898, -1903041.2384292425, 0, 34, 2, 3576, 2853576, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 35, 1981144.5525029898, -1903041.2384292425, 0, 36, 2, 3576, 2853576, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 37, 2138409.5568088419, -119451.50568778868, 0, 38, 5, 3624, 2853624, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 39, 2138409.5568088419, -119451.50568778868, 0, 40, 5, 3624, 2853624, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 41, 2138409.5568088419, -119451.50568778868, 0, 42, 5, 3624, 2853624, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 43, 2138409.5568088419, -119451.50568778868, 0, 44, 5, 3624, 2853624, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 45, 2138409.5568088419, -119451.50568778868, 0, 46, 5, 3624, 2853624, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 47, 2138409.5568088419, -119451.50568778868, 0, 48, 5, 3624, 2853624, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 49, 2387491.1007072991, 34459.351848672632, 0, 50, 1, 4265, 2854265, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 51, 2387491.1007072991, 34459.351848672632, 0, 52, 1, 4265, 2854265, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 53, 2387491.1007072991, 34459.351848672632, 0, 54, 1, 4265, 2854265, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 55, 2387491.1007072991, 34459.351848672632, 0, 56, 1, 4265, 2854265, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 57, 2387491.1007072991, 34459.351848672632, 0, 58, 1, 4265, 2854265, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 59, 2387491.1007072991, 34459.351848672632, 0, 60, 1, 4265, 2854265, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 61, 2035310.7411768832, -176076.78362264115, 0, 62, 1, 4355, 2854355, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 63, 2035310.7411768832, -176076.78362264115, 0, 64, 1, 4355, 2854355, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 65, 2035310.7411768832, -176076.78362264115, 0, 66, 1, 4355, 2854355, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 67, 2035310.7411768832, -176076.78362264115, 0, 68, 1, 4355, 2854355, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 69, 2035310.7411768832, -176076.78362264115, 0, 70, 1, 4355, 2854355, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 71, 2035310.7411768832, -176076.78362264115, 0, 72, 1, 4355, 2854355, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 2, 2320738.4688434978, 126348.38967116659, 1, 0, -4, 3448, 6903448, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 4, 2383186.1525343237, 448251.25888828852, 3, 0, -4, 3448, 6903448, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 6, 1981144.5525029898, -1903041.2384292425, 5, 0, -4, 3448, 6903448, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 8, 2138409.5568088419, -119451.50568778868, 7, 0, -4, 3448, 6903448, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 10, 2387491.1007072991, 34459.351848672632, 9, 0, -4, 3448, 6903448, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 12, 2035310.7411768832, -176076.78362264115, 11, 0, -4, 3448, 6903448, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 14, 2320738.4688434978, 126348.38967116659, 13, 0, -4, 3463, 6903463, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 16, 2383186.1525343237, 448251.25888828852, 15, 0, -4, 3463, 6903463, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 18, 1981144.5525029898, -1903041.2384292425, 17, 0, -4, 3463, 6903463, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 20, 2138409.5568088419, -119451.50568778868, 19, 0, -4, 3463, 6903463, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 22, 2387491.1007072991, 34459.351848672632, 21, 0, -4, 3463, 6903463, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 24, 2035310.7411768832, -176076.78362264115, 23, 0, -4, 3463, 6903463, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 26, 2320738.4688434978, 126348.38967116659, 25, 0, -2, 3576, 6903576, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 28, 2383186.1525343237, 448251.25888828852, 27, 0, -2, 3576, 6903576, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 30, 1981144.5525029898, -1903041.2384292425, 29, 0, -2, 3576, 6903576, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 32, 2138409.5568088419, -119451.50568778868, 31, 0, -2, 3576, 6903576, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 34, 2387491.1007072991, 34459.351848672632, 33, 0, -2, 3576, 6903576, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 36, 2035310.7411768832, -176076.78362264115, 35, 0, -2, 3576, 6903576, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 38, 2320738.4688434978, 126348.38967116659, 37, 0, -5, 3624, 6903624, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 40, 2383186.1525343237, 448251.25888828852, 39, 0, -5, 3624, 6903624, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 42, 1981144.5525029898, -1903041.2384292425, 41, 0, -5, 3624, 6903624, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 44, 2138409.5568088419, -119451.50568778868, 43, 0, -5, 3624, 6903624, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 46, 2387491.1007072991, 34459.351848672632, 45, 0, -5, 3624, 6903624, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 48, 2035310.7411768832, -176076.78362264115, 47, 0, -5, 3624, 6903624, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 50, 2320738.4688434978, 126348.38967116659, 49, 0, -1, 4265, 6904265, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 52, 2383186.1525343237, 448251.25888828852, 51, 0, -1, 4265, 6904265, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 54, 1981144.5525029898, -1903041.2384292425, 53, 0, -1, 4265, 6904265, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 56, 2138409.5568088419, -119451.50568778868, 55, 0, -1, 4265, 6904265, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 58, 2387491.1007072991, 34459.351848672632, 57, 0, -1, 4265, 6904265, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 60, 2035310.7411768832, -176076.78362264115, 59, 0, -1, 4265, 6904265, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 62, 2320738.4688434978, 126348.38967116659, 61, 0, -1, 4355, 6904355, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 64, 2383186.1525343237, 448251.25888828852, 63, 0, -1, 4355, 6904355, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 66, 1981144.5525029898, -1903041.2384292425, 65, 0, -1, 4355, 6904355, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 68, 2138409.5568088419, -119451.50568778868, 67, 0, -1, 4355, 6904355, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 70, 2387491.1007072991, 34459.351848672632, 69, 0, -1, 4355, 6904355, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 72, 2035310.7411768832, -176076.78362264115, 71, 0, -1, 4355, 6904355, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 0, 2138409.5568088419, -119451.50568778868, 0, 0, 0, 0, 7200000, 0);
+
+/*
+--
+-- TOC entry 4292 (class 0 OID 6616043)
+-- Dependencies: 290
+-- Data for Name: vrp1_cost; Type: TABLE DATA; Schema: public; Owner: postgres
+--
+
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (12, 13, 2953.093354567417, 60557.741467469998, 49.218222576123615);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (1, 13, 2951.4358855784913, 46704.633074669997, 49.190598092974852);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (5, 13, 1933.2635307127596, 29674.281907879998, 32.22105884521266);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (6, 13, 4891.243355445933, 78590.388493249993, 81.520722590765544);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (7, 13, 4564.0248344551255, 55146.744125789999, 76.067080574252088);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (4, 13, 358.9916907880604, 4717.2985756400003, 5.983194846467673);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (8, 13, 5126.2324354788034, 62516.944979489999, 85.437207257980063);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (3, 13, 6000.6726547073304, 97970.007298349999, 100.01121091178884);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (9, 13, 4755.4348034907207, 100603.89591172, 79.257246724845345);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (10, 13, 4138.1137957014362, 53942.09578946, 68.968563261690605);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (2, 13, 2224.3765052979202, 44388.04507498, 37.072941754965335);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (11, 13, 1469.4570414749417, 17611.434113070001, 24.490950691249029);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (7, 12, 6552.1443518080496, 86875.647316550007, 109.20240586346749);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (6, 12, 3675.7683635329909, 63485.069269129999, 61.262806058883179);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (1, 12, 1826.0827112688785, 21731.213745190002, 30.434711854481307);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (11, 12, 2681.3122972236029, 46309.024619509997, 44.688538287060048);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (2, 12, 1020.3947307304589, 17188.5257222, 17.006578845507651);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (10, 12, 2827.6100244902282, 43710.459317699999, 47.126833741503802);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (3, 12, 3888.0148463653441, 51173.467957710003, 64.800247439422407);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (9, 12, 2302.9311138070507, 41043.449335719997, 38.382185230117514);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (8, 12, 4463.5497447224634, 58891.64477087, 74.39249574537439);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (4, 12, 2647.2156693505872, 59326.863049970001, 44.120261155843117);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (13, 12, 2983.3734066886564, 60557.741467469998, 49.722890111477604);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (5, 12, 1517.9735472205105, 31428.651624779999, 25.29955912034184);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (1, 11, 2745.3112518799626, 37544.1375137, 45.755187531332709);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (9, 11, 4471.1319444284782, 87264.291763329995, 74.518865740474638);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (10, 11, 4229.3311896072573, 52287.419420220001, 70.488853160120954);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (6, 11, 4506.8776151690954, 62551.773221880001, 75.11462691948492);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (3, 11, 5716.3697956450824, 89593.452941569994, 95.272829927418044);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (5, 11, 1358.6096137713382, 15091.14100876, 22.643493562855635);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (4, 11, 1654.544693329585, 19264.633366329999, 27.575744888826417);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (12, 11, 2668.7904955051708, 46309.024619509997, 44.479841591752844);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (2, 11, 1940.0736462356747, 29252.344344699999, 32.334560770594578);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (13, 11, 1469.4570414749414, 17611.434113070001, 24.490950691249022);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (7, 11, 4064.8414892363171, 50747.73846031, 67.74735815393862);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (8, 11, 3895.6963212041123, 47391.047207520001, 64.928272020068533);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (5, 10, 3368.9527734188123, 42809.778697560003, 56.149212890313535);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (7, 10, 8182.3826173823836, 103032.57156053001, 136.37304362303973);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (11, 10, 4258.7560110340182, 52287.419420220001, 70.979266850566972);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (2, 10, 2839.6114198410569, 43099.30820806, 47.326856997350951);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (1, 10, 1802.3572076471451, 23960.724915679999, 30.039286794119086);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (3, 10, 3599.4301883137537, 49681.572728439998, 59.990503138562559);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (9, 10, 4341.7812292867338, 66755.884535439996, 72.363020488112227);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (4, 10, 3856.5004779654537, 49838.427136099999, 64.275007966090897);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (8, 10, 6294.2596511785378, 90390.880059980002, 104.90432751964229);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (6, 10, 5506.4782699890657, 100431.42119920001, 91.77463783315109);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (12, 10, 2855.7053715208308, 43710.459317699999, 47.595089525347177);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (13, 10, 4192.6582153035215, 53942.09578946, 69.877636921725355);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (10, 9, 4325.4261283707883, 66755.884535439996, 72.090435472846465);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (5, 9, 3398.8938935332781, 72255.826813129999, 56.648231558887964);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (2, 9, 2901.3150770432248, 58231.554459619998, 48.35525128405375);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (4, 9, 4528.1360156633564, 98787.207065139999, 75.46893359438927);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (1, 9, 3788.1003008742573, 55624.35354348, 63.135005014570957);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (11, 9, 4562.232643536373, 87264.291763329995, 76.037210725606215);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (8, 9, 4821.657825336647, 92014.350547320006, 80.360963755610783);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (7, 9, 8117.448634400117, 125749.52752643, 135.29081057333528);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (13, 9, 4864.293753001426, 100603.89591172, 81.071562550023771);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (6, 9, 4033.8764441471735, 90244.940354680002, 67.231274069119564);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (12, 9, 2328.9720943505417, 41043.449335719997, 38.81620157250903);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (3, 9, 2403.8510779993576, 33888.802388440003, 40.064184633322625);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (3, 8, 6769.2775240040783, 109943.3259573, 112.82129206673464);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (1, 8, 5019.7492752187654, 67853.964925620006, 83.662487920312756);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (7, 8, 3295.7908090634696, 40898.252999240001, 54.929846817724496);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (2, 8, 3571.0503376979805, 48617.072219770002, 59.517505628299674);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (9, 8, 4729.9553726845033, 92014.350547320006, 78.832589544741722);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (13, 8, 5123.9825769607578, 62516.944979489999, 85.399709616012629);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (6, 8, 1419.3370493081236, 17108.384354760001, 23.655617488468728);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (12, 8, 4462.5946410243814, 58891.64477087, 74.37657735040635);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (5, 8, 3906.5702317981809, 48659.42172359, 65.109503863303019);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (4, 8, 5406.1709302501031, 65640.18822928, 90.102848837501725);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (10, 8, 6449.5678543462845, 90390.880059980002, 107.49279757243808);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (11, 8, 3903.2468943918611, 47391.047207520001, 65.054114906531012);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (12, 7, 6541.7293294122628, 86875.647316550007, 109.02882215687104);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (3, 7, 9589.308629552168, 136345.04018709, 159.82181049253614);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (10, 7, 8189.9389451185689, 103032.57156053001, 136.49898241864281);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (8, 7, 3295.7035800954918, 40898.252999240001, 54.92839300159153);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (11, 7, 4082.2196582153956, 50747.73846031, 68.036994303589921);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (5, 7, 5106.1634678476485, 62318.437049, 85.102724464127476);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (6, 7, 4426.6022183180712, 55437.00628994, 73.776703638634515);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (2, 7, 5813.0124801427592, 71255.008476129995, 96.88354133571265);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (9, 7, 8025.6589527799933, 125749.52752643, 133.76098254633322);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (13, 7, 4565.7908933697781, 55146.744125789999, 76.096514889496305);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (1, 7, 6646.402085744041, 86176.316629309993, 110.77336809573401);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (4, 7, 4924.7825841578369, 59797.006035819999, 82.079709735963945);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (7, 6, 4433.5593311775692, 55437.00628994, 73.89265551962616);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (13, 6, 4943.220062989687, 78590.388493249993, 82.387001049828115);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (12, 6, 3663.4860364258975, 63485.069269129999, 61.058100607098289);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (11, 6, 4496.7745274249164, 62551.773221880001, 74.946242123748604);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (10, 6, 5650.4592497478006, 100431.42119920001, 94.174320829130011);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (9, 6, 3930.8467680860199, 90244.940354680002, 65.514112801433669);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (8, 6, 1427.2238809627568, 17108.384354760001, 23.787064682712614);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (5, 6, 3477.8202035215431, 61063.323590389999, 57.963670058692387);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (4, 6, 4607.0623256516183, 81392.253960899994, 76.784372094193643);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (3, 6, 5970.1689194055944, 112779.81503285001, 99.502815323426574);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (2, 6, 2771.9417330994952, 57379.320287560004, 46.199028884991584);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (1, 6, 4220.6406706202815, 76835.995936859996, 70.344011177004688);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (1, 5, 1958.2616125989289, 23885.506073140001, 32.637693543315478);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (12, 5, 1532.4187981313769, 31428.651624779999, 25.540313302189613);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (8, 5, 3929.4957334296996, 48659.42172359, 65.491595557161659);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (13, 5, 1958.1139397295849, 29674.281907879998, 32.635232328826412);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (7, 5, 5107.3400430688225, 62318.437049, 85.122334051147035);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (10, 5, 3519.5932763961732, 42809.778697560003, 58.659887939936219);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (9, 5, 3334.7602470546817, 72255.826813129999, 55.57933745091136);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (4, 5, 1621.9562023915164, 29275.540332420002, 27.03260337319194);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (2, 5, 803.70194886187926, 14741.93432463, 13.39503248103132);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (3, 5, 4579.9980982712887, 75253.614561519993, 76.333301637854817);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (11, 5, 1337.554729509015, 15091.14100876, 22.292578825150251);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (6, 5, 3470.5687990098932, 61063.323590389999, 57.842813316831553);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (12, 4, 2616.215006867988, 59326.863049970001, 43.603583447799799);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (11, 4, 1655.8289719890095, 19264.633366329999, 27.597149533150159);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (2, 4, 1887.4981575984907, 43746.497693609999, 31.458302626641512);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (7, 4, 4923.0165252431843, 59797.006035819999, 82.050275420719743);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (8, 4, 5342.146388935982, 65640.18822928, 89.035773148933032);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (9, 4, 4418.556455791293, 98787.207065139999, 73.642607596521557);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (13, 4, 358.9916907880604, 4717.2985756400003, 5.983194846467673);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (10, 4, 3801.2354480020076, 49838.427136099999, 63.353924133366796);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (1, 4, 2614.5575378790622, 44139.442491629998, 43.575958964651036);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (3, 4, 5663.7943070079027, 94785.168599109995, 94.396571783465049);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (6, 4, 4554.3650077465054, 81392.253960899994, 75.906083462441757);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (5, 4, 1596.3851830133301, 29275.540332420002, 26.606419716888833);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (12, 3, 4354.0799478841718, 51173.467957710003, 72.567999131402857);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (13, 3, 6464.3892097938715, 97970.007298349999, 107.73982016323119);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (7, 3, 10033.160154913267, 136345.04018709, 167.21933591522111);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (10, 3, 4016.3136218536224, 49681.572728439998, 66.938560364227044);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (11, 3, 6162.3281003288175, 89593.452941569994, 102.70546833881363);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (9, 3, 2746.7160740841282, 33888.802388440003, 45.778601234735468);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (5, 3, 4998.9893503257272, 75253.614561519993, 83.316489172095459);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (8, 3, 7276.4598265076593, 109943.3259573, 121.27433044179432);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (1, 3, 4325.3148995953306, 52145.170245989997, 72.088581659922184);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (4, 3, 6128.2314724558018, 94785.168599109995, 102.1371912075967);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (6, 3, 6488.6784453181817, 112779.81503285001, 108.14464075530303);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (2, 3, 4501.4105338356794, 65153.684267479999, 75.023508897261323);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (1, 2, 1536.6099447776205, 19506.03254122, 25.610165746293674);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (7, 2, 5827.9602822664219, 71255.008476129995, 97.132671371107037);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (8, 2, 3571.4879476634851, 48617.072219770002, 59.524799127724755);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (5, 2, 793.78947767888133, 14741.93432463, 13.229824627981355);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (9, 2, 2787.0688014921589, 58231.554459619998, 46.451146691535982);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (4, 2, 1923.0315998089593, 43746.497693609999, 32.050526663482657);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (10, 2, 2971.9018308336504, 43099.30820806, 49.53169718056084);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (3, 2, 4032.3066527087663, 65153.684267479999, 67.205110878479431);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (11, 2, 1957.1282276819745, 29252.344344699999, 32.618803794699573);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (12, 2, 984.72735256885392, 17188.5257222, 16.412122542814231);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (13, 2, 2259.1893371470278, 44388.04507498, 37.653155619117129);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (6, 2, 2783.7065664740117, 57379.320287560004, 46.395109441233529);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (3, 1, 3909.9615503187342, 52145.170245989997, 65.166025838645567);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (11, 1, 2796.4128490759304, 37544.1375137, 46.606880817932172);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (13, 1, 3063.0403515469643, 46704.633074669997, 51.050672525782737);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (6, 1, 3770.599595643097, 76835.995936859996, 62.843326594051618);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (10, 1, 1806.0013795626483, 23960.724915679999, 30.100022992710805);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (4, 1, 2726.8826142088951, 44139.442491629998, 45.448043570148251);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (9, 1, 3680.3813452318182, 55624.35354348, 61.339689087196966);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (5, 1, 1633.0740990728355, 23885.506073140001, 27.217901651213925);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (7, 1, 6667.2449036603712, 86176.316629309993, 111.12074839433951);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (8, 1, 4558.3809768325664, 67853.964925620006, 75.97301628054278);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (12, 1, 1833.1811824131848, 21731.213745190002, 30.553019706886413);
+INSERT INTO vrp1_cost (src_id, dest_id, cost, distance, traveltime) VALUES (2, 1, 1103.7327454950807, 19506.03254122, 18.395545758251345);
+
+
+--
+-- TOC entry 4293 (class 0 OID 6616046)
+-- Dependencies: 291
+-- Data for Name: vrp1_gdist; Type: TABLE DATA; Schema: public; Owner: postgres
+--
+
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (1, 2, 19506.03254122, 19506.03254122, 0.0065020108470733333);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (1, 3, 52145.170245989997, 52145.170245989997, 0.017381723415329998);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (1, 4, 44139.442491629998, 44139.442491629998, 0.01471314749721);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (1, 5, 23885.506073140001, 23885.506073140001, 0.0079618353577133334);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (1, 6, 76835.995936859996, 76835.995936859996, 0.025611998645620002);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (1, 7, 86176.316629309993, 86176.316629309993, 0.028725438876436662);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (1, 8, 67853.964925620006, 67853.964925620006, 0.022617988308540001);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (1, 9, 55624.35354348, 55624.35354348, 0.018541451181160001);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (1, 10, 23960.724915679999, 23960.724915679999, 0.0079869083052266678);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (1, 11, 37544.1375137, 37544.1375137, 0.012514712504566667);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (1, 12, 21731.213745190002, 21731.213745190002, 0.0072437379150633334);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (1, 13, 46704.633074669997, 46704.633074669997, 0.01556821102489);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (2, 1, 19506.03254122, 19506.03254122, 0.0065020108470733333);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (2, 3, 65153.684267479999, 65153.684267479999, 0.02171789475582667);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (2, 4, 43746.497693609999, 43746.497693609999, 0.01458216589787);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (2, 5, 14741.93432463, 14741.93432463, 0.0049139781082099994);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (2, 6, 57379.320287560004, 57379.320287560004, 0.019126440095853337);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (2, 7, 71255.008476129995, 71255.008476129995, 0.023751669492043333);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (2, 8, 48617.072219770002, 48617.072219770002, 0.016205690739923333);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (2, 9, 58231.554459619998, 58231.554459619998, 0.019410518153206668);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (2, 10, 43099.30820806, 43099.30820806, 0.014366436069353334);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (2, 11, 29252.344344699999, 29252.344344699999, 0.0097507814482333324);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (2, 12, 17188.5257222, 17188.5257222, 0.0057295085740666669);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (2, 13, 44388.04507498, 44388.04507498, 0.014796015024993333);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (3, 1, 52145.170245989997, 52145.170245989997, 0.017381723415329998);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (3, 2, 65153.684267479999, 65153.684267479999, 0.02171789475582667);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (3, 4, 94785.168599109995, 94785.168599109995, 0.031595056199703334);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (3, 5, 75253.614561519993, 75253.614561519993, 0.025084538187173332);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (3, 6, 112779.81503285001, 112779.81503285001, 0.037593271677616676);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (3, 7, 136345.04018709, 136345.04018709, 0.045448346729030004);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (3, 8, 109943.3259573, 109943.3259573, 0.036647775319099997);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (3, 9, 33888.802388440003, 33888.802388440003, 0.011296267462813335);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (3, 10, 49681.572728439998, 49681.572728439998, 0.016560524242813332);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (3, 11, 89593.452941569994, 89593.452941569994, 0.029864484313856667);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (3, 12, 51173.467957710003, 51173.467957710003, 0.017057822652570002);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (3, 13, 97970.007298349999, 97970.007298349999, 0.032656669099449996);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (4, 1, 44139.442491629998, 44139.442491629998, 0.01471314749721);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (4, 2, 43746.497693609999, 43746.497693609999, 0.01458216589787);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (4, 3, 94785.168599109995, 94785.168599109995, 0.031595056199703334);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (4, 5, 29275.540332420002, 29275.540332420002, 0.0097585134441400007);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (4, 6, 81392.253960899994, 81392.253960899994, 0.0271307513203);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (4, 7, 59797.006035819999, 59797.006035819999, 0.019932335345273333);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (4, 8, 65640.18822928, 65640.18822928, 0.021880062743093332);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (4, 9, 98787.207065139999, 98787.207065139999, 0.032929069021713331);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (4, 10, 49838.427136099999, 49838.427136099999, 0.016612809045366668);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (4, 11, 19264.633366329999, 19264.633366329999, 0.0064215444554433336);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (4, 12, 59326.863049970001, 59326.863049970001, 0.019775621016656666);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (4, 13, 4717.2985756400003, 4717.2985756400003, 0.0015724328585466666);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (5, 1, 23885.506073140001, 23885.506073140001, 0.0079618353577133334);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (5, 2, 14741.93432463, 14741.93432463, 0.0049139781082099994);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (5, 3, 75253.614561519993, 75253.614561519993, 0.025084538187173332);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (5, 4, 29275.540332420002, 29275.540332420002, 0.0097585134441400007);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (5, 6, 61063.323590389999, 61063.323590389999, 0.020354441196796667);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (5, 7, 62318.437049, 62318.437049, 0.020772812349666669);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (5, 8, 48659.42172359, 48659.42172359, 0.016219807241196666);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (5, 9, 72255.826813129999, 72255.826813129999, 0.024085275604376667);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (5, 10, 42809.778697560003, 42809.778697560003, 0.014269926232520002);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (5, 11, 15091.14100876, 15091.14100876, 0.0050303803362533334);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (5, 12, 31428.651624779999, 31428.651624779999, 0.010476217208259999);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (5, 13, 29674.281907879998, 29674.281907879998, 0.0098914273026266646);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (6, 1, 76835.995936859996, 76835.995936859996, 0.025611998645620002);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (6, 2, 57379.320287560004, 57379.320287560004, 0.019126440095853337);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (6, 3, 112779.81503285001, 112779.81503285001, 0.037593271677616676);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (6, 4, 81392.253960899994, 81392.253960899994, 0.0271307513203);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (6, 5, 61063.323590389999, 61063.323590389999, 0.020354441196796667);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (6, 7, 55437.00628994, 55437.00628994, 0.018479002096646668);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (6, 8, 17108.384354760001, 17108.384354760001, 0.0057027947849200003);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (6, 9, 90244.940354680002, 90244.940354680002, 0.030081646784893331);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (6, 10, 100431.42119920001, 100431.42119920001, 0.033477140399733339);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (6, 11, 62551.773221880001, 62551.773221880001, 0.020850591073959999);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (6, 12, 63485.069269129999, 63485.069269129999, 0.021161689756376667);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (6, 13, 78590.388493249993, 78590.388493249993, 0.026196796164416662);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (7, 1, 86176.316629309993, 86176.316629309993, 0.028725438876436662);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (7, 2, 71255.008476129995, 71255.008476129995, 0.023751669492043333);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (7, 3, 136345.04018709, 136345.04018709, 0.045448346729030004);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (7, 4, 59797.006035819999, 59797.006035819999, 0.019932335345273333);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (7, 5, 62318.437049, 62318.437049, 0.020772812349666669);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (7, 6, 55437.00628994, 55437.00628994, 0.018479002096646668);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (7, 8, 40898.252999240001, 40898.252999240001, 0.013632750999746666);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (7, 9, 125749.52752643, 125749.52752643, 0.041916509175476666);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (7, 10, 103032.57156053001, 103032.57156053001, 0.034344190520176669);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (7, 11, 50747.73846031, 50747.73846031, 0.016915912820103334);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (7, 12, 86875.647316550007, 86875.647316550007, 0.028958549105516665);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (7, 13, 55146.744125789999, 55146.744125789999, 0.018382248041930001);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (8, 1, 67853.964925620006, 67853.964925620006, 0.022617988308540001);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (8, 2, 48617.072219770002, 48617.072219770002, 0.016205690739923333);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (8, 3, 109943.3259573, 109943.3259573, 0.036647775319099997);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (8, 4, 65640.18822928, 65640.18822928, 0.021880062743093332);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (8, 5, 48659.42172359, 48659.42172359, 0.016219807241196666);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (8, 6, 17108.384354760001, 17108.384354760001, 0.0057027947849200003);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (8, 7, 40898.252999240001, 40898.252999240001, 0.013632750999746666);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (8, 9, 92014.350547320006, 92014.350547320006, 0.030671450182440003);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (8, 10, 90390.880059980002, 90390.880059980002, 0.030130293353326669);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (8, 11, 47391.047207520001, 47391.047207520001, 0.015797015735840001);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (8, 12, 58891.64477087, 58891.64477087, 0.019630548256956665);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (8, 13, 62516.944979489999, 62516.944979489999, 0.020838981659829999);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (9, 1, 55624.35354348, 55624.35354348, 0.018541451181160001);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (9, 2, 58231.554459619998, 58231.554459619998, 0.019410518153206668);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (9, 3, 33888.802388440003, 33888.802388440003, 0.011296267462813335);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (9, 4, 98787.207065139999, 98787.207065139999, 0.032929069021713331);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (9, 5, 72255.826813129999, 72255.826813129999, 0.024085275604376667);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (9, 6, 90244.940354680002, 90244.940354680002, 0.030081646784893331);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (9, 7, 125749.52752643, 125749.52752643, 0.041916509175476666);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (9, 8, 92014.350547320006, 92014.350547320006, 0.030671450182440003);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (9, 10, 66755.884535439996, 66755.884535439996, 0.022251961511813335);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (9, 11, 87264.291763329995, 87264.291763329995, 0.029088097254443331);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (9, 12, 41043.449335719997, 41043.449335719997, 0.013681149778573333);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (9, 13, 100603.89591172, 100603.89591172, 0.033534631970573339);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (10, 1, 23960.724915679999, 23960.724915679999, 0.0079869083052266678);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (10, 2, 43099.30820806, 43099.30820806, 0.014366436069353334);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (10, 3, 49681.572728439998, 49681.572728439998, 0.016560524242813332);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (10, 4, 49838.427136099999, 49838.427136099999, 0.016612809045366668);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (10, 5, 42809.778697560003, 42809.778697560003, 0.014269926232520002);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (10, 6, 100431.42119920001, 100431.42119920001, 0.033477140399733339);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (10, 7, 103032.57156053001, 103032.57156053001, 0.034344190520176669);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (10, 8, 90390.880059980002, 90390.880059980002, 0.030130293353326669);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (10, 9, 66755.884535439996, 66755.884535439996, 0.022251961511813335);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (10, 11, 52287.419420220001, 52287.419420220001, 0.017429139806740001);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (10, 12, 43710.459317699999, 43710.459317699999, 0.014570153105900001);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (10, 13, 53942.09578946, 53942.09578946, 0.017980698596486665);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (11, 1, 37544.1375137, 37544.1375137, 0.012514712504566667);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (11, 2, 29252.344344699999, 29252.344344699999, 0.0097507814482333324);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (11, 3, 89593.452941569994, 89593.452941569994, 0.029864484313856667);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (11, 4, 19264.633366329999, 19264.633366329999, 0.0064215444554433336);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (11, 5, 15091.14100876, 15091.14100876, 0.0050303803362533334);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (11, 6, 62551.773221880001, 62551.773221880001, 0.020850591073959999);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (11, 7, 50747.73846031, 50747.73846031, 0.016915912820103334);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (11, 8, 47391.047207520001, 47391.047207520001, 0.015797015735840001);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (11, 9, 87264.291763329995, 87264.291763329995, 0.029088097254443331);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (11, 10, 52287.419420220001, 52287.419420220001, 0.017429139806740001);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (11, 12, 46309.024619509997, 46309.024619509997, 0.015436341539836666);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (11, 13, 17611.434113070001, 17611.434113070001, 0.0058704780376900006);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (12, 1, 21731.213745190002, 21731.213745190002, 0.0072437379150633334);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (12, 2, 17188.5257222, 17188.5257222, 0.0057295085740666669);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (12, 3, 51173.467957710003, 51173.467957710003, 0.017057822652570002);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (12, 4, 59326.863049970001, 59326.863049970001, 0.019775621016656666);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (12, 5, 31428.651624779999, 31428.651624779999, 0.010476217208259999);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (12, 6, 63485.069269129999, 63485.069269129999, 0.021161689756376667);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (12, 7, 86875.647316550007, 86875.647316550007, 0.028958549105516665);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (12, 8, 58891.64477087, 58891.64477087, 0.019630548256956665);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (12, 9, 41043.449335719997, 41043.449335719997, 0.013681149778573333);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (12, 10, 43710.459317699999, 43710.459317699999, 0.014570153105900001);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (12, 11, 46309.024619509997, 46309.024619509997, 0.015436341539836666);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (12, 13, 60557.741467469998, 60557.741467469998, 0.020185913822489999);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (13, 1, 46704.633074669997, 46704.633074669997, 0.01556821102489);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (13, 2, 44388.04507498, 44388.04507498, 0.014796015024993333);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (13, 3, 97970.007298349999, 97970.007298349999, 0.032656669099449996);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (13, 4, 4717.2985756400003, 4717.2985756400003, 0.0015724328585466666);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (13, 5, 29674.281907879998, 29674.281907879998, 0.0098914273026266646);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (13, 6, 78590.388493249993, 78590.388493249993, 0.026196796164416662);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (13, 7, 55146.744125789999, 55146.744125789999, 0.018382248041930001);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (13, 8, 62516.944979489999, 62516.944979489999, 0.020838981659829999);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (13, 9, 100603.89591172, 100603.89591172, 0.033534631970573339);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (13, 10, 53942.09578946, 53942.09578946, 0.017980698596486665);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (13, 11, 17611.434113070001, 17611.434113070001, 0.0058704780376900006);
+INSERT INTO vrp1_gdist (src_id, dest_id, cost, distance, traveltime) VALUES (13, 12, 60557.741467469998, 60557.741467469998, 0.020185913822489999);
+
+
+--
+-- TOC entry 4290 (class 0 OID 6607823)
+-- Dependencies: 285
+-- Data for Name: vrp1_orders; Type: TABLE DATA; Schema: public; Owner: postgres
+--
+
+INSERT INTO vrp1_orders (id, x, y, order_unit, open_time, close_time, service_time) VALUES (1, -72.892400, 41.668920, 25, 60, 780, 20);
+INSERT INTO vrp1_orders (id, x, y, order_unit, open_time, close_time, service_time) VALUES (2, -72.676150, 41.601650, 25, 60, 780, 20);
+INSERT INTO vrp1_orders (id, x, y, order_unit, open_time, close_time, service_time) VALUES (3, -73.413760, 41.410080, 25, 60, 780, 20);
+INSERT INTO vrp1_orders (id, x, y, order_unit, open_time, close_time, service_time) VALUES (4, -72.576340, 41.988370, 25, 60, 780, 20);
+INSERT INTO vrp1_orders (id, x, y, order_unit, open_time, close_time, service_time) VALUES (5, -72.615920, 41.726460, 25, 60, 780, 20);
+INSERT INTO vrp1_orders (id, x, y, order_unit, open_time, close_time, service_time) VALUES (6, -72.066830, 41.362980, 25, 60, 780, 20);
+INSERT INTO vrp1_orders (id, x, y, order_unit, open_time, close_time, service_time) VALUES (7, -71.882488, 41.842557, 25, 60, 780, 20);
+INSERT INTO vrp1_orders (id, x, y, order_unit, open_time, close_time, service_time) VALUES (8, -72.105080, 41.514310, 25, 60, 780, 20);
+INSERT INTO vrp1_orders (id, x, y, order_unit, open_time, close_time, service_time) VALUES (9, -73.121820, 41.198780, 25, 60, 780, 20);
+INSERT INTO vrp1_orders (id, x, y, order_unit, open_time, close_time, service_time) VALUES (10, -73.121310, 41.799840, 25, 60, 780, 20);
+INSERT INTO vrp1_orders (id, x, y, order_unit, open_time, close_time, service_time) VALUES (11, -72.493050, 41.826470, 250, 60, 780, 20);
+INSERT INTO vrp1_orders (id, x, y, order_unit, open_time, close_time, service_time) VALUES (12, -72.809200, 41.483500, 25, 60, 780, 20);
+INSERT INTO vrp1_orders (id, x, y, order_unit, open_time, close_time, service_time) VALUES (13, -72.51975, 41.98377, 0, 0, 800, 0);
+
+
+--
+-- TOC entry 4291 (class 0 OID 6616034)
+-- Dependencies: 289
+-- Data for Name: vrp1_points; Type: TABLE DATA; Schema: public; Owner: postgres
+--
+
+INSERT INTO vrp1_points (id, pid, geom, edge_id, fraction, closest_node) VALUES (1, -1, '0101000020E6100000D3BCE3141D3952C0F6D1A92B9FD54440', 134983, 0.38479479629572311, 69021);
+INSERT INTO vrp1_points (id, pid, geom, edge_id, fraction, closest_node) VALUES (2, -2, '0101000020E6100000304CA60A462B52C0B7D100DE02CD4440', 156235, 0.60081527076326913, 174662);
+INSERT INTO vrp1_points (id, pid, geom, edge_id, fraction, closest_node) VALUES (3, -3, '0101000020E61000002619390B7B5A52C0315F5E807DB44440', 155907, 0.60929293991596534, 127670);
+INSERT INTO vrp1_points (id, pid, geom, edge_id, fraction, closest_node) VALUES (4, -4, '0101000020E61000001BD82AC1E22452C07C2C7DE882FE4440', 82159, 0.1088234404534253, 56829);
+INSERT INTO vrp1_points (id, pid, geom, edge_id, fraction, closest_node) VALUES (5, -5, '0101000020E6100000F33CB83B6B2752C014ED2AA4FCDC4440', 226752, 0.87665768706747127, 129246);
+INSERT INTO vrp1_points (id, pid, geom, edge_id, fraction, closest_node) VALUES (6, -6, '0101000020E6100000111956F1460452C0118DEE2076AE4440', 133685, 0.91338793111615413, 28564);
+INSERT INTO vrp1_points (id, pid, geom, edge_id, fraction, closest_node) VALUES (7, -7, '0101000020E610000032C7F2AE7AF851C0080264E8D8EB4440', 263400, 0.83072231921053108, 196779);
+INSERT INTO vrp1_points (id, pid, geom, edge_id, fraction, closest_node) VALUES (8, -8, '0101000020E6100000ADDD76A1B90652C0BD00FBE8D4C14440', 47970, 0.21514413450004088, 25658);
+INSERT INTO vrp1_points (id, pid, geom, edge_id, fraction, closest_node) VALUES (9, -9, '0101000020E6100000EBFF1CE6CB4752C0A88C7F9F71994440', 30632, 0.85391427066903536, 20036);
+INSERT INTO vrp1_points (id, pid, geom, edge_id, fraction, closest_node) VALUES (10, -10, '0101000020E610000060AB048BC34752C02E04392861E64440', 231149, 0.50999310422417587, 153595);
+INSERT INTO vrp1_points (id, pid, geom, edge_id, fraction, closest_node) VALUES (11, -11, '0101000020E6100000BD5296218E1F52C00490DAC4C9E94440', 152917, 0.70955464807036772, 159294);
+INSERT INTO vrp1_points (id, pid, geom, edge_id, fraction, closest_node) VALUES (12, -12, '0101000020E610000016FBCBEEC93352C0D9CEF753E3BD4440', 235710, 0.44298119784627749, 124069);
+INSERT INTO vrp1_points (id, pid, geom, edge_id, fraction, closest_node) VALUES (13, -13, '0101000020E610000025068195432152C09964E42CECFD4440', 220656, 0.77224957554563523, 120633);
+
+
+--
+-- TOC entry 4295 (class 0 OID 8777648)
+-- Dependencies: 297
+-- Data for Name: vrpdtw_beer; Type: TABLE DATA; Schema: public; Owner: postgres
+--
+
+INSERT INTO vrpdtw_beer (rid, id, x, y, opentime, closetime, servicetime, demand, pindex, dindex) VALUES (0, 0, 2219223.0599095495, 43261.330613416343, 0, 780, 0, 0, 0, 0);
+INSERT INTO vrpdtw_beer (rid, id, x, y, opentime, closetime, servicetime, demand, pindex, dindex) VALUES (0, 1, 2219223.0599095495, 43261.330613416343, 0, 780, 0, 50, 0, 2);
+INSERT INTO vrpdtw_beer (rid, id, x, y, opentime, closetime, servicetime, demand, pindex, dindex) VALUES (0, 3, 2219223.0599095495, 43261.330613416343, 0, 780, 0, 50, 0, 4);
+INSERT INTO vrpdtw_beer (rid, id, x, y, opentime, closetime, servicetime, demand, pindex, dindex) VALUES (0, 5, 2219223.0599095495, 43261.330613416343, 0, 780, 0, 50, 0, 6);
+INSERT INTO vrpdtw_beer (rid, id, x, y, opentime, closetime, servicetime, demand, pindex, dindex) VALUES (0, 7, 2219223.0599095495, 43261.330613416343, 0, 780, 0, 50, 0, 8);
+INSERT INTO vrpdtw_beer (rid, id, x, y, opentime, closetime, servicetime, demand, pindex, dindex) VALUES (0, 9, 2219223.0599095495, 43261.330613416343, 0, 780, 0, 50, 0, 10);
+INSERT INTO vrpdtw_beer (rid, id, x, y, opentime, closetime, servicetime, demand, pindex, dindex) VALUES (0, 11, 2219223.0599095495, 43261.330613416343, 0, 780, 0, 50, 0, 12);
+INSERT INTO vrpdtw_beer (rid, id, x, y, opentime, closetime, servicetime, demand, pindex, dindex) VALUES (0, 13, 2219223.0599095495, 43261.330613416343, 0, 780, 0, 50, 0, 14);
+INSERT INTO vrpdtw_beer (rid, id, x, y, opentime, closetime, servicetime, demand, pindex, dindex) VALUES (0, 15, 2219223.0599095495, 43261.330613416343, 0, 780, 0, 50, 0, 16);
+INSERT INTO vrpdtw_beer (rid, id, x, y, opentime, closetime, servicetime, demand, pindex, dindex) VALUES (0, 17, 2219223.0599095495, 43261.330613416343, 0, 780, 0, 50, 0, 18);
+INSERT INTO vrpdtw_beer (rid, id, x, y, opentime, closetime, servicetime, demand, pindex, dindex) VALUES (0, 19, 2219223.0599095495, 43261.330613416343, 0, 780, 0, 50, 0, 20);
+INSERT INTO vrpdtw_beer (rid, id, x, y, opentime, closetime, servicetime, demand, pindex, dindex) VALUES (0, 21, 2219223.0599095495, 43261.330613416343, 0, 780, 0, 200, 0, 22);
+INSERT INTO vrpdtw_beer (rid, id, x, y, opentime, closetime, servicetime, demand, pindex, dindex) VALUES (0, 23, 2219223.0599095495, 43261.330613416343, 0, 780, 0, 50, 0, 24);
+INSERT INTO vrpdtw_beer (rid, id, x, y, opentime, closetime, servicetime, demand, pindex, dindex) VALUES (1, 2, 2201674.04542425, -537.96920408041944, 0, 780, 0, -50, 1, 0);
+INSERT INTO vrpdtw_beer (rid, id, x, y, opentime, closetime, servicetime, demand, pindex, dindex) VALUES (2, 4, 2220804.1661061305, -1824.0976658091467, 0, 780, 0, -50, 3, 0);
+INSERT INTO vrpdtw_beer (rid, id, x, y, opentime, closetime, servicetime, demand, pindex, dindex) VALUES (3, 6, 2170182.7454079189, -42278.887298092624, 0, 780, 0, -50, 5, 0);
+INSERT INTO vrpdtw_beer (rid, id, x, y, opentime, closetime, servicetime, demand, pindex, dindex) VALUES (4, 8, 2214706.3217116385, 42201.317464497493, 0, 780, 0, -50, 7, 0);
+INSERT INTO vrpdtw_beer (rid, id, x, y, opentime, closetime, servicetime, demand, pindex, dindex) VALUES (5, 10, 2221020.0081376741, 13156.086760460585, 0, 780, 0, -50, 9, 0);
+INSERT INTO vrpdtw_beer (rid, id, x, y, opentime, closetime, servicetime, demand, pindex, dindex) VALUES (6, 12, 2276566.54710769, -10390.65374555897, 0, 780, 0, -50, 11, 0);
+INSERT INTO vrpdtw_beer (rid, id, x, y, opentime, closetime, servicetime, demand, pindex, dindex) VALUES (7, 14, 2273317.2298506126, 45902.567392510609, 0, 780, 0, -50, 13, 0);
+INSERT INTO vrpdtw_beer (rid, id, x, y, opentime, closetime, servicetime, demand, pindex, dindex) VALUES (8, 16, 2268126.8554679737, 4674.1135220944607, 0, 780, 0, -50, 15, 0);
+INSERT INTO vrpdtw_beer (rid, id, x, y, opentime, closetime, servicetime, demand, pindex, dindex) VALUES (9, 18, 2200293.6413550111, -57036.325719941706, 0, 780, 0, -50, 17, 0);
+INSERT INTO vrpdtw_beer (rid, id, x, y, opentime, closetime, servicetime, demand, pindex, dindex) VALUES (10, 20, 2179348.5807632855, 7268.5531586333609, 0, 780, 0, -50, 19, 0);
+INSERT INTO vrpdtw_beer (rid, id, x, y, opentime, closetime, servicetime, demand, pindex, dindex) VALUES (11, 22, 2226924.5635206043, 27207.476487862386, 0, 780, 0, -200, 21, 0);
+INSERT INTO vrpdtw_beer (rid, id, x, y, opentime, closetime, servicetime, demand, pindex, dindex) VALUES (12, 24, 2214670.8347013257, -18087.138344661518, 0, 780, 0, -50, 23, 0);
+*/    
+
+/*
+SELECT * FROM pgr_gsoc_vrppdtw(
+    $$ SELECT * FROM jet_customers $$,
+    2, 5);
+
+SELECT * FROM _pgr_pickDeliver(
+    $$ SELECT * FROM jet_customers $$,
+    2, 5);
+
+SELECT * FROM _pgr_pickDeliver(
+    $$ SELECT * FROM jet_customers $$,
+    max_vehicles := 2, capacity :=5, speed := 1);
+*/
+
+/*
+-- converting data to use euclidean
+UPDATE jet_customers SET opentime = 9*60 WHERE opentime = 3448;
+UPDATE jet_customers SET opentime = 9.5*60 WHERE opentime = 3463;
+UPDATE jet_customers SET opentime = 10*60 WHERE opentime = 3576;
+UPDATE jet_customers SET opentime = 10.5*60 WHERE opentime = 3624;
+UPDATE jet_customers SET opentime = 11*60 WHERE opentime = 4265;
+UPDATE jet_customers SET opentime = 11.5*60 WHERE opentime = 4355;
+
+UPDATE jet_customers SET closetime = 11*60 WHERE closetime = 2853448;
+UPDATE jet_customers SET closetime = 11.5*60 WHERE closetime = 2853463;
+UPDATE jet_customers SET closetime = 12*60 WHERE closetime = 2853576;
+UPDATE jet_customers SET closetime = 12.5*60 WHERE closetime = 2853624;
+UPDATE jet_customers SET closetime = 13*60 WHERE closetime = 2854265;
+UPDATE jet_customers SET closetime = 13.5*60 WHERE closetime = 2854355;
+UPDATE jet_customers SET closetime = 14*60 WHERE closetime = 6903448;
+UPDATE jet_customers SET closetime = 14.5*60 WHERE closetime = 6903463;
+UPDATE jet_customers SET closetime = 15*60 WHERE closetime = 6903576;
+UPDATE jet_customers SET closetime = 15.5*60 WHERE closetime = 6903624;
+UPDATE jet_customers SET closetime = 16*60 WHERE closetime = 6904265;
+UPDATE jet_customers SET closetime = 16.5*60 WHERE closetime = 6904355;
+
+UPDATE jet_customers SET servicetime = 2 WHERE servicetime != 0;
+
+WITH
+customer_data AS (SELECT * FROM jet_customers),
+pickups AS (
+    SELECT id, demand, x as pick_x, y as pick_y, opentime as pick_open, closetime as pick_close, servicetime as pick_service
+    FROM  customer_data WHERE pindex = 0 AND id != 0
+),
+deliveries AS (
+    SELECT pindex AS id, x as deliver_x, y as deliver_y, opentime as deliver_open, closetime as deliver_close, servicetime as deliver_service
+    FROM  customer_data WHERE dindex = 0 AND id != 0
+)
+SELECT * INTO jet_orders FROM pickups JOIN deliveries USING(id) ORDER BY pickups.id;
+
+WITH
+customer_data AS (select * from jet_customers)
+SELECT id, x AS start_x, y AS start_y,
+opentime AS start_open, closetime AS start_close,
+2 AS capacity,  5  AS number INTO jet_vehicles
+FROM customer_data WHERE id = 0 LIMIT 1;
+
+SELECT *
+FROM _pgr_pickDeliverEuclidean(
+    $$ SELECT * from jet_orders $$,
+    $$ SELECT * FROM jet_vehicles$$
+);
+*/
+
diff --git a/src/pickDeliver/test/design_pgtap.result b/src/pickDeliver/test/design_pgtap.result
new file mode 100644
index 0000000..a16867b
--- /dev/null
+++ b/src/pickDeliver/test/design_pgtap.result
@@ -0,0 +1,20 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+UPDATE vehicles SET start_open = 5, start_close = 4 WHERE id = 1;
+UPDATE 1
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    $$SELECT * FROM orders$$,
+    $$SELECT * FROM vehicles$$);
+ERROR:  Illegal values found on vehicle
+HINT:  Illegal values found on vehicleOn vehicle 1 a condition is not met, verify that:
+-  start_open <= start_close
+-  end_open <= end_close
+-  capacity > 0
+--> pgrouting::vrp::Pgr_pickDeliver::Pgr_pickDeliver(const std::vector<PickDeliveryOrders_t>&, const std::vector<Vehicle_t>&, double, size_t, int)
+
+UPDATE vehicles SET start_open = 0, start_close = 50 WHERE id = 1;
+ERROR:  current transaction is aborted, commands ignored until end of transaction block
+ROLLBACK;
+ROLLBACK
diff --git a/src/pickDeliver/test/design_pgtap.test.sql b/src/pickDeliver/test/design_pgtap.test.sql
new file mode 100644
index 0000000..394fb67
--- /dev/null
+++ b/src/pickDeliver/test/design_pgtap.test.sql
@@ -0,0 +1,9 @@
+
+UPDATE vehicles SET start_open = 5, start_close = 4 WHERE id = 1;
+
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    $$SELECT * FROM orders$$,
+    $$SELECT * FROM vehicles$$);
+
+UPDATE vehicles SET start_open = 0, start_close = 50 WHERE id = 1;
+
diff --git a/src/pickDeliver/test/differentVechiles-cygwin.result b/src/pickDeliver/test/differentVechiles-cygwin.result
new file mode 100644
index 0000000..38fba09
--- /dev/null
+++ b/src/pickDeliver/test/differentVechiles-cygwin.result
@@ -0,0 +1,2 @@
+t
+t
diff --git a/src/pickDeliver/test/differentVechiles-cygwin.test.sql b/src/pickDeliver/test/differentVechiles-cygwin.test.sql
new file mode 100644
index 0000000..b39f775
--- /dev/null
+++ b/src/pickDeliver/test/differentVechiles-cygwin.test.sql
@@ -0,0 +1,37 @@
+
+
+INSERT into vehicles(start_x, start_y, start_open, start_close, capacity, number)
+VALUES (40, 50, 0, 400, 200, 1);
+
+UPDATE vehicles SET number = 1;
+
+ALTER TABLE vehicles DROP COLUMN number;
+
+SELECT * INTO results
+FROM _pgr_pickDeliverEuclidean(
+    'SELECT * FROM orders ORDER BY id',
+    'SELECT * FROM vehicles',
+    30);
+
+
+WITH
+orders_id AS (
+    SELECT id FROM orders
+), 
+results_id AS (
+    SELECT DISTINCT order_id AS id
+    FROM results
+    WHERE stop_type NOT IN (1, 6, -1)
+    ORDER BY order_id
+)
+SELECT count(*)=53 FROM orders_id LEFT JOIN results_id USING(ID);
+
+WITH
+the_results AS (
+    SELECT * 
+    FROM results
+)
+SELECT ((SELECT max(vehicle_number) FROM results) * 2 + 53 * 2 + 1) =
+    (SELECT count(*) from the_results) AS correct_value;
+
+-- SELECT * FROM results;
diff --git a/src/pickDeliver/test/differentVechiles.result b/src/pickDeliver/test/differentVechiles.result
new file mode 100644
index 0000000..7ec6dc7
--- /dev/null
+++ b/src/pickDeliver/test/differentVechiles.result
@@ -0,0 +1,230 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+INSERT into vehicles(start_x, start_y, start_open, start_close, capacity, number)
+VALUES (40, 50, 0, 400, 200, 25);
+INSERT 0 1
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    'SELECT * FROM orders ORDER BY id',
+    'SELECT * FROM vehicles',
+    30);
+ seq | vehicle_number | vehicle_id | vehicle_seq | order_id | stop_type | cargo |   travel_time    |   arrival_time   | wait_time | service_time |  departure_time  
+-----+----------------+------------+-------------+----------+-----------+-------+------------------+------------------+-----------+--------------+------------------
+   1 |              1 |          1 |           1 |       -1 |         1 |     0 |                0 |                0 |         0 |            0 |                0
+   2 |              1 |          1 |           2 |        5 |         2 |    10 | 15.1327459504216 | 15.1327459504216 |         0 |           90 | 105.132745950422
+   3 |              1 |          1 |           3 |        3 |         2 |    20 |                1 | 106.132745950422 |         0 |           90 | 196.132745950422
+   4 |              1 |          1 |           4 |        5 |         3 |    10 |                2 | 198.132745950422 |         0 |           90 | 288.132745950422
+   5 |              1 |          1 |           5 |        8 |         2 |    30 | 2.82842712474619 | 290.961173075168 |         0 |           90 | 380.961173075168
+   6 |              1 |          1 |           6 |        8 |         3 |    10 | 3.60555127546399 | 384.566724350632 |         0 |           90 | 474.566724350632
+   7 |              1 |          1 |           7 |       11 |         2 |    20 |                3 | 477.566724350632 |         0 |           90 | 567.566724350632
+   8 |              1 |          1 |           8 |        9 |         2 |    30 | 3.16227766016838 |   570.7290020108 |         0 |           90 |   660.7290020108
+   9 |              1 |          1 |           9 |        6 |         2 |    50 | 2.23606797749979 |   662.9650699883 |         0 |           90 |   752.9650699883
+  10 |              1 |          1 |          10 |        9 |         3 |    40 | 2.23606797749979 |   755.2011379658 |         0 |           90 |   845.2011379658
+  11 |              1 |          1 |          11 |        6 |         3 |    20 | 3.60555127546399 | 848.806689241264 |         0 |           90 | 938.806689241264
+  12 |              1 |          1 |          12 |       11 |         3 |    10 |                2 | 940.806689241264 |         0 |           90 | 1030.80668924126
+  13 |              1 |          1 |          13 |        3 |         3 |     0 |                3 | 1033.80668924126 |         0 |           90 | 1123.80668924126
+  14 |              1 |          1 |          14 |       -1 |         6 |     0 | 15.8113883008419 | 1139.61807754211 |         0 |            0 | 1139.61807754211
+  15 |              2 |          1 |           1 |       -1 |         1 |     0 |                0 |                0 |         0 |            0 |                0
+  16 |              2 |          1 |           2 |       13 |         2 |    30 | 30.8058436014987 | 30.8058436014987 |         0 |           90 | 120.805843601499
+  17 |              2 |          1 |           3 |       13 |         3 |     0 |                4 | 124.805843601499 |         0 |           90 | 214.805843601499
+  18 |              2 |          1 |           4 |       18 |         2 |    20 |                3 | 217.805843601499 |         0 |           90 | 307.805843601499
+  19 |              2 |          1 |           5 |       19 |         2 |    30 |                5 | 312.805843601499 |         0 |           90 | 402.805843601499
+  20 |              2 |          1 |           6 |       19 |         3 |    20 |                5 | 407.805843601499 |         0 |           90 | 497.805843601499
+  21 |              2 |          1 |           7 |       16 |         2 |    60 |                5 | 502.805843601499 |         0 |           90 | 592.805843601499
+  22 |              2 |          1 |           8 |       16 |         3 |    20 |                2 | 594.805843601499 |         0 |           90 | 684.805843601499
+  23 |              2 |          1 |           9 |       18 |         3 |     0 |                3 | 687.805843601499 |         0 |           90 | 777.805843601499
+  24 |              2 |          1 |          10 |       50 |         2 |    10 | 53.0094331227943 | 830.815276724293 |         0 |           90 | 920.815276724293
+  25 |              2 |          1 |          11 |       50 |         3 |     0 | 3.16227766016838 | 923.977554384461 |         0 |           90 | 1013.97755438446
+  26 |              2 |          1 |          12 |       49 |         2 |    10 |                3 | 1016.97755438446 |         0 |           90 | 1106.97755438446
+  27 |              2 |          1 |          13 |       49 |         3 |     0 |                2 | 1108.97755438446 |         0 |           90 | 1198.97755438446
+  28 |              2 |          1 |          14 |       -1 |         6 |     0 | 18.0277563773199 | 1217.00531076178 |         0 |            0 | 1217.00531076178
+  29 |              3 |          1 |           1 |       -1 |         1 |     0 |                0 |                0 |         0 |            0 |                0
+  30 |              3 |          1 |           2 |       20 |         2 |    10 |               10 |               10 |         0 |           90 |              100
+  31 |              3 |          1 |           3 |       20 |         3 |     0 |                5 |              105 |         0 |           90 |              195
+  32 |              3 |          1 |           4 |       25 |         2 |    40 |                2 |              197 |         0 |           90 |              287
+  33 |              3 |          1 |           5 |       25 |         3 |     0 |                2 |              289 |         0 |           90 |              379
+  34 |              3 |          1 |           6 |       29 |         2 |    10 | 3.60555127546399 | 382.605551275464 |         0 |           90 | 472.605551275464
+  35 |              3 |          1 |           7 |       30 |         2 |    20 |                5 | 477.605551275464 |         0 |           90 | 567.605551275464
+  36 |              3 |          1 |           8 |       28 |         2 |    40 |                3 | 570.605551275464 |         0 |           90 | 660.605551275464
+  37 |              3 |          1 |           9 |       29 |         3 |    30 |                2 | 662.605551275464 |         0 |           90 | 752.605551275464
+  38 |              3 |          1 |          10 |       23 |         2 |    40 |                3 | 755.605551275464 |         0 |            0 | 755.605551275464
+  39 |              3 |          1 |          11 |       23 |         3 |    30 |                0 | 755.605551275464 |         0 |           90 | 845.605551275464
+  40 |              3 |          1 |          12 |       28 |         3 |    10 |                3 | 848.605551275464 |         0 |           90 | 938.605551275464
+  41 |              3 |          1 |          13 |       30 |         3 |     0 |                2 | 940.605551275464 |         0 |           90 | 1030.60555127546
+  42 |              3 |          1 |          14 |       -1 |         6 |     0 | 10.1980390271856 | 1040.80359030265 |         0 |            0 | 1040.80359030265
+  43 |              4 |          1 |           1 |       -1 |         1 |     0 |                0 |                0 |         0 |            0 |                0
+  44 |              4 |          1 |           2 |       32 |         2 |    30 | 31.6227766016838 | 31.6227766016838 |         0 |           90 | 121.622776601684
+  45 |              4 |          1 |           3 |       33 |         2 |    70 |                2 | 123.622776601684 |         0 |           90 | 213.622776601684
+  46 |              4 |          1 |           4 |       32 |         3 |    40 |  5.3851648071345 | 219.007941408818 |         0 |           90 | 309.007941408818
+  47 |              4 |          1 |           5 |       35 |         2 |    50 |                5 | 314.007941408818 |         0 |           90 | 404.007941408818
+  48 |              4 |          1 |           6 |       33 |         3 |    10 |  5.8309518948453 | 409.838893303664 |         0 |           90 | 499.838893303664
+  49 |              4 |          1 |           7 |       38 |         2 |    40 |                2 | 501.838893303664 |         0 |           90 | 591.838893303664
+  50 |              4 |          1 |           8 |       35 |         3 |    30 |                5 | 596.838893303664 |         0 |           90 | 686.838893303664
+  51 |              4 |          1 |           9 |       36 |         2 |    40 |                5 | 691.838893303664 |         0 |            0 | 691.838893303664
+  52 |              4 |          1 |          10 |       36 |         3 |    30 |                0 | 691.838893303664 |         0 |           90 | 781.838893303664
+  53 |              4 |          1 |          11 |       38 |         3 |     0 |                3 | 784.838893303664 |         0 |           90 | 874.838893303664
+  54 |              4 |          1 |          12 |       -1 |         6 |     0 | 32.3882694814033 | 907.227162785067 |         0 |            0 | 907.227162785067
+  55 |              5 |          1 |           1 |       -1 |         1 |     0 |                0 |                0 |         0 |            0 |                0
+  56 |              5 |          1 |           2 |       43 |         2 |    10 | 16.5529453572468 | 16.5529453572468 |         0 |           90 | 106.552945357247
+  57 |              5 |          1 |           3 |       42 |         2 |    30 |                3 | 109.552945357247 |         0 |           90 | 199.552945357247
+  58 |              5 |          1 |           4 |       43 |         3 |    20 |                2 | 201.552945357247 |         0 |           90 | 291.552945357247
+  59 |              5 |          1 |           5 |       42 |         3 |     0 |                2 | 293.552945357247 |         0 |           90 | 383.552945357247
+  60 |              5 |          1 |           6 |       44 |         2 |    10 |                3 | 386.552945357247 |         0 |           90 | 476.552945357247
+  61 |              5 |          1 |           7 |       44 |         3 |     0 | 2.82842712474619 | 479.381372481993 |         0 |           90 | 569.381372481993
+  62 |              5 |          1 |           8 |       45 |         2 |    10 |                2 | 571.381372481993 |         0 |           90 | 661.381372481993
+  63 |              5 |          1 |           9 |       45 |         3 |     0 |                2 | 663.381372481993 |         0 |           90 | 753.381372481993
+  64 |              5 |          1 |          10 |       51 |         2 |    10 |                3 | 756.381372481993 |         0 |            0 | 756.381372481993
+  65 |              5 |          1 |          11 |       51 |         3 |     0 |                0 | 756.381372481993 |         0 |           90 | 846.381372481993
+  66 |              5 |          1 |          12 |       66 |         2 |    10 |  22.561028345357 |  868.94240082735 |         0 |           90 |  958.94240082735
+  67 |              5 |          1 |          13 |       66 |         3 |     0 |                2 |  960.94240082735 |         0 |           90 | 1050.94240082735
+  68 |              5 |          1 |          14 |       -1 |         6 |     0 | 15.8113883008419 | 1066.75378912819 |         0 |            0 | 1066.75378912819
+  69 |              6 |          1 |           1 |       -1 |         1 |     0 |                0 |                0 |         0 |            0 |                0
+  70 |              6 |          1 |           2 |       57 |         2 |    40 |               35 |               35 |         0 |           90 |              125
+  71 |              6 |          1 |           3 |       57 |         3 |     0 |                2 |              127 |         0 |           90 |              217
+  72 |              6 |          1 |           4 |       54 |         2 |    40 |                5 |              222 |         0 |           90 |              312
+  73 |              6 |          1 |           5 |       53 |         2 |    60 |  5.3851648071345 | 317.385164807135 |         0 |           90 | 407.385164807135
+  74 |              6 |          1 |           6 |       56 |         2 |    90 |                4 | 411.385164807135 |         0 |           90 | 501.385164807135
+  75 |              6 |          1 |           7 |       53 |         3 |    70 |                2 | 503.385164807135 |         0 |           90 | 593.385164807135
+  76 |              6 |          1 |           8 |       54 |         3 |    30 |                3 | 596.385164807135 |         0 |           90 | 686.385164807135
+  77 |              6 |          1 |           9 |       56 |         3 |     0 | 10.4403065089106 | 696.825471316045 |         0 |           90 | 786.825471316045
+  78 |              6 |          1 |          10 |       -1 |         6 |     0 | 35.0570962859162 | 821.882567601961 |         0 |            0 | 821.882567601961
+  79 |              7 |          1 |           1 |       -1 |         1 |     0 |                0 |                0 |         0 |            0 |                0
+  80 |              7 |          1 |           2 |       67 |         2 |    10 | 12.2065556157337 | 12.2065556157337 |         0 |           90 | 102.206555615734
+  81 |              7 |          1 |           3 |       65 |         2 |    20 |                1 | 103.206555615734 |         0 |           90 | 193.206555615734
+  82 |              7 |          1 |           4 |       63 |         2 |    70 |                2 | 195.206555615734 |         0 |           90 | 285.206555615734
+  83 |              7 |          1 |           5 |       62 |         2 |    90 |                5 | 290.206555615734 |         0 |           90 | 380.206555615734
+  84 |              7 |          1 |           6 |       63 |         3 |    40 |                3 | 383.206555615734 |         0 |           90 | 473.206555615734
+  85 |              7 |          1 |           7 |       65 |         3 |    30 |                5 | 478.206555615734 |         0 |           90 | 568.206555615734
+  86 |              7 |          1 |           8 |       67 |         3 |    20 |                3 | 571.206555615734 |         0 |           90 | 661.206555615734
+  87 |              7 |          1 |           9 |       64 |         2 |    30 |                2 | 663.206555615734 |         0 |            0 | 663.206555615734
+  88 |              7 |          1 |          10 |       64 |         3 |    20 |                0 | 663.206555615734 |         0 |           90 | 753.206555615734
+  89 |              7 |          1 |          11 |       62 |         3 |     0 |                3 | 756.206555615734 |         0 |           90 | 846.206555615734
+  90 |              7 |          1 |          12 |       -1 |         6 |     0 | 20.6155281280883 | 866.822083743822 |         0 |            0 | 866.822083743822
+  91 |              8 |          1 |           1 |       -1 |         1 |     0 |                0 |                0 |         0 |            0 |                0
+  92 |              8 |          1 |           2 |       81 |         2 |    30 | 47.4341649025257 | 47.4341649025257 |         0 |           90 | 137.434164902526
+  93 |              8 |          1 |           3 |       78 |         2 |    50 |                3 | 140.434164902526 |         0 |            0 | 140.434164902526
+  94 |              8 |          1 |           4 |       78 |         3 |    30 |                0 | 140.434164902526 |         0 |           90 | 230.434164902526
+  95 |              8 |          1 |           5 |       76 |         2 |    40 |                2 | 232.434164902526 |         0 |           90 | 322.434164902526
+  96 |              8 |          1 |           6 |       71 |         2 |    60 |                5 | 327.434164902526 |         0 |           90 | 417.434164902526
+  97 |              8 |          1 |           7 |       81 |         3 |    30 |                5 | 422.434164902526 |         0 |           90 | 512.434164902526
+  98 |              8 |          1 |           8 |       76 |         3 |    20 |                3 | 515.434164902526 |         0 |           90 | 605.434164902526
+  99 |              8 |          1 |           9 |       71 |         3 |     0 |                4 | 609.434164902526 |         0 |           90 | 699.434164902526
+ 100 |              8 |          1 |          10 |       79 |         2 |    10 |                1 | 700.434164902526 |         0 |           90 | 790.434164902526
+ 101 |              8 |          1 |          11 |       79 |         3 |     0 |  5.3851648071345 |  795.81932970966 |         0 |           90 |  885.81932970966
+ 102 |              8 |          1 |          12 |       -1 |         6 |     0 |  51.478150704935 | 937.297480414595 |         0 |            0 | 937.297480414595
+ 103 |              9 |          1 |           1 |       -1 |         1 |     0 |                0 |                0 |         0 |            0 |                0
+ 104 |              9 |          1 |           2 |       90 |         2 |    10 | 20.6155281280883 | 20.6155281280883 |         0 |           90 | 110.615528128088
+ 105 |              9 |          1 |           3 |       87 |         2 |    30 |                5 | 115.615528128088 |         0 |           90 | 205.615528128088
+ 106 |              9 |          1 |           4 |       86 |         2 |    40 |                1 | 206.615528128088 |         0 |           90 | 296.615528128088
+ 107 |              9 |          1 |           5 |       87 |         3 |    20 |                6 | 302.615528128088 |         0 |           90 | 392.615528128088
+ 108 |              9 |          1 |           6 |       82 |         2 |    40 |                3 | 395.615528128088 |         0 |           90 | 485.615528128088
+ 109 |              9 |          1 |           7 |       84 |         2 |    60 |  5.8309518948453 | 491.446480022934 |         0 |           90 | 581.446480022934
+ 110 |              9 |          1 |           8 |       82 |         3 |    40 | 2.82842712474619 |  584.27490714768 |         0 |           90 |  674.27490714768
+ 111 |              9 |          1 |           9 |       90 |         3 |    30 |                3 |  677.27490714768 |         0 |           90 |  767.27490714768
+ 112 |              9 |          1 |          10 |       84 |         3 |    10 | 2.82842712474619 | 770.103334272426 |         0 |           90 | 860.103334272426
+ 113 |              9 |          1 |          11 |       86 |         3 |     0 | 3.60555127546399 |  863.70888554789 |         0 |           90 |  953.70888554789
+ 114 |              9 |          1 |          12 |       -1 |         6 |     0 | 22.3606797749979 | 976.069565322888 |         0 |            0 | 976.069565322888
+ 115 |             10 |          1 |           1 |       -1 |         1 |     0 |                0 |                0 |         0 |            0 |                0
+ 116 |             10 |          1 |           2 |       98 |         2 |    20 | 30.8058436014987 | 30.8058436014987 |         0 |           90 | 120.805843601499
+ 117 |             10 |          1 |           3 |       96 |         2 |    30 |  5.3851648071345 | 126.191008408633 |         0 |           90 | 216.191008408633
+ 118 |             10 |          1 |           4 |       98 |         3 |    10 |                2 | 218.191008408633 |         0 |           90 | 308.191008408633
+ 119 |             10 |          1 |           5 |       96 |         3 |     0 | 3.60555127546399 | 311.796559684097 |         0 |           90 | 401.796559684097
+ 120 |             10 |          1 |           6 |       92 |         2 |    20 | 3.60555127546399 | 405.402110959561 |         0 |           90 | 495.402110959561
+ 121 |             10 |          1 |           7 |       92 |         3 |     0 |                2 | 497.402110959561 |         0 |           90 | 587.402110959561
+ 122 |             10 |          1 |           8 |       97 |         2 |    30 |                5 | 592.402110959561 |         0 |            0 | 592.402110959561
+ 123 |             10 |          1 |           9 |       97 |         3 |     0 |                0 | 592.402110959561 |         0 |           90 | 682.402110959561
+ 124 |             10 |          1 |          10 |      100 |         2 |    20 |                5 | 687.402110959561 |         0 |           90 | 777.402110959561
+ 125 |             10 |          1 |          11 |      100 |         3 |     0 |                5 | 782.402110959561 |         0 |           90 | 872.402110959561
+ 126 |             10 |          1 |          12 |       -1 |         6 |     0 | 33.5410196624968 | 905.943130622058 |         0 |            0 | 905.943130622058
+ 127 |             -2 |          0 |           0 |       -1 |        -1 |    -1 |  879.42275822512 |               -1 |         0 |         9000 | 9879.42275822512
+(127 rows)
+
+WITH
+orders_id AS (
+    SELECT id FROM orders
+), 
+results_id AS (
+    SELECT DISTINCT order_id AS id
+    FROM _pgr_pickDeliverEuclidean(
+        'SELECT * FROM orders ORDER BY id',
+        'SELECT * FROM vehicles',
+        30)
+    WHERE stop_type NOT IN (0, 5, -1)
+    ORDER BY order_id
+)
+SELECT * FROM orders_id LEFT JOIN results_id USING(ID);
+ id  
+-----
+   3
+   5
+   6
+   8
+   9
+  11
+  13
+  16
+  18
+  19
+  20
+  23
+  25
+  28
+  29
+  30
+  32
+  33
+  35
+  36
+  38
+  42
+  43
+  44
+  45
+  49
+  50
+  51
+  53
+  54
+  56
+  57
+  62
+  63
+  64
+  65
+  66
+  67
+  71
+  76
+  78
+  79
+  81
+  82
+  84
+  86
+  87
+  90
+  92
+  96
+  97
+  98
+ 100
+(53 rows)
+
+WITH
+results AS (
+    SELECT * 
+    FROM _pgr_pickDeliverEuclidean(
+        'SELECT * FROM orders ORDER BY id',
+        'SELECT * FROM vehicles',
+        30)
+)
+SELECT ((1 + (SELECT max(vehicle_id) FROM results) * 2 + 53 * 2) = 
+    (SELECT count(*) from results)) AS correct_value;
+ correct_value 
+---------------
+ f
+(1 row)
+
+ROLLBACK;
+ROLLBACK
diff --git a/src/pickDeliver/test/differentVechiles.test.sql b/src/pickDeliver/test/differentVechiles.test.sql
new file mode 100644
index 0000000..3faf30c
--- /dev/null
+++ b/src/pickDeliver/test/differentVechiles.test.sql
@@ -0,0 +1,34 @@
+
+INSERT into vehicles(start_x, start_y, start_open, start_close, capacity, number)
+VALUES (40, 50, 0, 400, 200, 25);
+
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    'SELECT * FROM orders ORDER BY id',
+    'SELECT * FROM vehicles',
+    30);
+
+WITH
+orders_id AS (
+    SELECT id FROM orders
+), 
+results_id AS (
+    SELECT DISTINCT order_id AS id
+    FROM _pgr_pickDeliverEuclidean(
+        'SELECT * FROM orders ORDER BY id',
+        'SELECT * FROM vehicles',
+        30)
+    WHERE stop_type NOT IN (0, 5, -1)
+    ORDER BY order_id
+)
+SELECT * FROM orders_id LEFT JOIN results_id USING(ID);
+
+WITH
+results AS (
+    SELECT * 
+    FROM _pgr_pickDeliverEuclidean(
+        'SELECT * FROM orders ORDER BY id',
+        'SELECT * FROM vehicles',
+        30)
+)
+SELECT ((1 + (SELECT max(vehicle_id) FROM results) * 2 + 53 * 2) = 
+    (SELECT count(*) from results)) AS correct_value;
diff --git a/src/pickDeliver/test/doc-pickDeliver.result b/src/pickDeliver/test/doc-pickDeliver.result
index 8240f1e..b5b2096 100644
--- a/src/pickDeliver/test/doc-pickDeliver.result
+++ b/src/pickDeliver/test/doc-pickDeliver.result
@@ -1,257 +1,61 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 --q1
-1|1|1|0|0|0|0|0|0
-2|1|2|5|15.1327459504216|15.1327459504216|0|90|105.132745950422
-3|1|3|3|1|106.132745950422|0|90|196.132745950422
-4|1|4|7|2|198.132745950422|0|90|288.132745950422
-5|1|5|8|2.82842712474619|290.961173075168|0|90|380.961173075168
-6|1|6|10|3.60555127546399|384.566724350632|0|90|474.566724350632
-7|1|7|11|3|477.566724350632|0|90|567.566724350632
-8|1|8|9|3.16227766016838|570.7290020108|0|90|660.7290020108
-9|1|9|6|2.23606797749979|662.9650699883|0|90|752.9650699883
-10|1|10|4|2.23606797749979|755.2011379658|0|90|845.2011379658
-11|1|11|2|3.60555127546399|848.806689241264|0|90|938.806689241264
-12|1|12|1|2|940.806689241264|0|90|1030.80668924126
-13|1|13|75|3|1033.80668924126|0|90|1123.80668924126
-14|1|14|0|15.8113883008419|1139.61807754211|0|0|1139.61807754211
-15|2|1|0|0|0|0|0|0
-16|2|2|13|30.8058436014987|30.8058436014987|0|90|120.805843601499
-17|2|3|17|4|124.805843601499|0|90|214.805843601499
-18|2|4|18|3|217.805843601499|0|90|307.805843601499
-19|2|5|19|5|312.805843601499|0|90|402.805843601499
-20|2|6|15|5|407.805843601499|0|90|497.805843601499
-21|2|7|16|5|502.805843601499|0|90|592.805843601499
-22|2|8|14|2|594.805843601499|0|90|684.805843601499
-23|2|9|12|3|687.805843601499|0|90|777.805843601499
-24|2|10|0|38.0788655293195|815.884709130818|0|0|815.884709130818
-25|3|1|0|0|0|0|0|0
-26|3|2|20|10|10|0|90|100
-27|3|3|24|5|105|0|90|195
-28|3|4|25|2|197|0|90|287
-29|3|5|27|2|289|0|90|379
-30|3|6|29|3.60555127546399|382.605551275464|0|90|472.605551275464
-31|3|7|30|5|477.605551275464|0|90|567.605551275464
-32|3|8|28|3|570.605551275464|0|90|660.605551275464
-33|3|9|26|2|662.605551275464|0|90|752.605551275464
-34|3|10|23|3|755.605551275464|0|0|755.605551275464
-35|3|11|103|0|755.605551275464|0|90|845.605551275464
-36|3|12|22|3|848.605551275464|0|90|938.605551275464
-37|3|13|21|2|940.605551275464|0|90|1030.60555127546
-38|3|14|0|10.1980390271856|1040.80359030265|0|0|1040.80359030265
-39|4|1|0|0|0|0|0|0
-40|4|2|32|31.6227766016838|31.6227766016838|0|90|121.622776601684
-41|4|3|33|2|123.622776601684|0|90|213.622776601684
-42|4|4|31|5.3851648071345|219.007941408818|0|90|309.007941408818
-43|4|5|35|5|314.007941408818|0|90|404.007941408818
-44|4|6|37|5.8309518948453|409.838893303664|0|90|499.838893303664
-45|4|7|38|2|501.838893303664|0|90|591.838893303664
-46|4|8|39|5|596.838893303664|0|90|686.838893303664
-47|4|9|36|5|691.838893303664|0|0|691.838893303664
-48|4|10|105|0|691.838893303664|0|90|781.838893303664
-49|4|11|34|3|784.838893303664|0|90|874.838893303664
-50|4|12|0|32.3882694814033|907.227162785067|0|0|907.227162785067
-51|5|1|0|0|0|0|0|0
-52|5|2|43|16.5529453572468|16.5529453572468|0|90|106.552945357247
-53|5|3|42|3|109.552945357247|0|90|199.552945357247
-54|5|4|41|2|201.552945357247|0|90|291.552945357247
-55|5|5|40|2|293.552945357247|0|90|383.552945357247
-56|5|6|44|3|386.552945357247|0|90|476.552945357247
-57|5|7|46|2.82842712474619|479.381372481993|0|90|569.381372481993
-58|5|8|45|2|571.381372481993|0|90|661.381372481993
-59|5|9|48|2|663.381372481993|0|90|753.381372481993
-60|5|10|51|3|756.381372481993|0|0|756.381372481993
-61|5|11|101|0|756.381372481993|0|90|846.381372481993
-62|5|12|50|2.23606797749979|848.617440459493|0|90|938.617440459493
-63|5|13|52|3.16227766016838|941.779718119661|0|90|1031.77971811966
-64|5|14|49|3|1034.77971811966|0|90|1124.77971811966
-65|5|15|47|2|1126.77971811966|0|90|1216.77971811966
-66|5|16|0|18.0277563773199|1234.80747449698|0|0|1234.80747449698
-67|6|1|0|0|0|0|0|0
-68|6|2|57|35|35|0|90|125
-69|6|3|55|2|127|0|90|217
-70|6|4|54|5|222|0|90|312
-71|6|5|53|5.3851648071345|317.385164807135|0|90|407.385164807135
-72|6|6|56|4|411.385164807135|0|90|501.385164807135
-73|6|7|58|2|503.385164807135|0|90|593.385164807135
-74|6|8|60|3|596.385164807135|0|90|686.385164807135
-75|6|9|59|10.4403065089106|696.825471316045|0|90|786.825471316045
-76|6|10|0|35.0570962859162|821.882567601961|0|0|821.882567601961
-77|7|1|0|0|0|0|0|0
-78|7|2|67|12.2065556157337|12.2065556157337|0|90|102.206555615734
-79|7|3|65|1|103.206555615734|0|90|193.206555615734
-80|7|4|63|2|195.206555615734|0|90|285.206555615734
-81|7|5|62|5|290.206555615734|0|90|380.206555615734
-82|7|6|74|3|383.206555615734|0|90|473.206555615734
-83|7|7|72|5|478.206555615734|0|90|568.206555615734
-84|7|8|61|3|571.206555615734|0|90|661.206555615734
-85|7|9|64|2|663.206555615734|0|0|663.206555615734
-86|7|10|102|0|663.206555615734|0|90|753.206555615734
-87|7|11|68|3|756.206555615734|0|90|846.206555615734
-88|7|12|66|5.3851648071345|851.591720422868|0|90|941.591720422868
-89|7|13|69|2|943.591720422868|0|90|1033.59172042287
-90|7|14|0|15.8113883008419|1049.40310872371|0|0|1049.40310872371
-91|8|1|0|0|0|0|0|0
-92|8|2|81|47.4341649025257|47.4341649025257|0|90|137.434164902526
-93|8|3|78|3|140.434164902526|0|0|140.434164902526
-94|8|4|104|0|140.434164902526|0|90|230.434164902526
-95|8|5|76|2|232.434164902526|0|90|322.434164902526
-96|8|6|71|5|327.434164902526|0|90|417.434164902526
-97|8|7|70|5|422.434164902526|0|90|512.434164902526
-98|8|8|73|3|515.434164902526|0|90|605.434164902526
-99|8|9|77|4|609.434164902526|0|90|699.434164902526
-100|8|10|79|1|700.434164902526|0|90|790.434164902526
-101|8|11|80|5.3851648071345|795.81932970966|0|90|885.81932970966
-102|8|12|0|51.478150704935|937.297480414595|0|0|937.297480414595
-103|9|1|0|0|0|0|0|0
-104|9|2|90|20.6155281280883|20.6155281280883|0|90|110.615528128088
-105|9|3|87|5|115.615528128088|0|90|205.615528128088
-106|9|4|86|1|206.615528128088|0|90|296.615528128088
-107|9|5|83|6|302.615528128088|0|90|392.615528128088
-108|9|6|82|3|395.615528128088|0|90|485.615528128088
-109|9|7|84|5.8309518948453|491.446480022934|0|90|581.446480022934
-110|9|8|85|2.82842712474619|584.27490714768|0|90|674.27490714768
-111|9|9|88|3|677.27490714768|0|90|767.27490714768
-112|9|10|89|2.82842712474619|770.103334272426|0|90|860.103334272426
-113|9|11|91|3.60555127546399|863.70888554789|0|90|953.70888554789
-114|9|12|0|22.3606797749979|976.069565322888|0|0|976.069565322888
-115|10|1|0|0|0|0|0|0
-116|10|2|98|30.8058436014987|30.8058436014987|0|90|120.805843601499
-117|10|3|96|5.3851648071345|126.191008408633|0|90|216.191008408633
-118|10|4|95|2|218.191008408633|0|90|308.191008408633
-119|10|5|94|3.60555127546399|311.796559684097|0|90|401.796559684097
-120|10|6|92|3.60555127546399|405.402110959561|0|90|495.402110959561
-121|10|7|93|2|497.402110959561|0|90|587.402110959561
-122|10|8|97|5|592.402110959561|0|0|592.402110959561
-123|10|9|106|0|592.402110959561|0|90|682.402110959561
-124|10|10|100|5|687.402110959561|0|90|777.402110959561
-125|10|11|99|5|782.402110959561|0|90|872.402110959561
-126|10|12|0|33.5410196624968|905.943130622058|0|0|905.943130622058
-127|-1|0|0|828.936866942834|0|0|9000|9828.93686694283
+SELECT * FROM _pgr_pickDeliver(
+    'SELECT * FROM orders ORDER BY id',
+    'SELECT * from vehicles',
+    
+    'WITH
+    A AS (
+        SELECT p_node_id AS id, p_x AS x, p_y AS y FROM orders
+        UNION
+        SELECT d_node_id AS id, d_x, d_y FROM orders
+        UNION
+        SELECT start_node_id, start_x, start_y FROM vehicles
+    )
+    SELECT A.id AS start_vid, B.id AS end_vid, sqrt( (a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y)) AS agg_cost
+    FROM A, A AS B WHERE A.id != B.id'
+    );
+ seq | vehicle_seq | vehicle_id | stop_seq | stop_type | stop_id | order_id | cargo |   travel_time    |   arrival_time   | wait_time | service_time |  departure_time  
+-----+-------------+------------+----------+-----------+---------+----------+-------+------------------+------------------+-----------+--------------+------------------
+   1 |           1 |          1 |        1 |         1 |       6 |       -1 |     0 |                0 |                0 |         0 |            0 |                0
+   2 |           1 |          1 |        2 |         2 |       5 |        3 |    30 |                1 |                1 |         1 |            3 |                5
+   3 |           1 |          1 |        3 |         3 |      11 |        3 |     0 |  1.4142135623731 | 6.41421356237309 |         0 |            3 |  9.4142135623731
+   4 |           1 |          1 |        4 |         2 |       9 |        2 |    20 |  1.4142135623731 | 10.8284271247462 |         0 |            2 | 12.8284271247462
+   5 |           1 |          1 |        5 |         3 |       4 |        2 |     0 |                1 | 13.8284271247462 |         0 |            3 | 16.8284271247462
+   6 |           1 |          1 |        6 |         6 |       6 |       -1 |     0 |  1.4142135623731 | 18.2426406871193 |         0 |            0 | 18.2426406871193
+   7 |           2 |          1 |        1 |         1 |       6 |       -1 |     0 |                0 |                0 |         0 |            0 |                0
+   8 |           2 |          1 |        2 |         2 |       3 |        1 |    10 |                1 |                1 |         1 |            3 |                5
+   9 |           2 |          1 |        3 |         3 |       8 |        1 |     0 | 2.23606797749979 | 7.23606797749979 |         0 |            3 | 10.2360679774998
+  10 |           2 |          1 |        4 |         6 |       6 |       -1 |     0 |                2 | 12.2360679774998 |         0 |            0 | 12.2360679774998
+  11 |          -2 |          0 |        0 |        -1 |      -1 |       -1 |    -1 | 11.4787086646191 |               -1 |         2 |           17 | 30.4787086646191
+(11 rows)
+
 --q2
-1|1|1|0|0|0|0|0|0
-2|1|2|5|1.51327459504216|1.51327459504216|13.4867254049578|90|105
-3|1|3|3|0.1|105.1|0|90|195.1
-4|1|4|7|0.2|195.3|0|90|285.3
-5|1|5|8|0.282842712474619|285.582842712475|0|90|375.582842712475
-6|1|6|10|0.360555127546399|375.943397840021|0|90|465.943397840021
-7|1|7|11|0.3|466.243397840021|0|90|556.243397840021
-8|1|8|9|0.316227766016838|556.559625606038|0|90|646.559625606038
-9|1|9|6|0.223606797749979|646.783232403788|0|90|736.783232403788
-10|1|10|4|0.223606797749979|737.006839201538|0|90|827.006839201538
-11|1|11|2|0.360555127546399|827.367394329084|0|90|917.367394329084
-12|1|12|1|0.2|917.567394329084|0|90|1007.56739432908
-13|1|13|75|0.3|1007.86739432908|0|90|1097.86739432908
-14|1|14|0|1.58113883008419|1099.44853315917|0|0|1099.44853315917
-15|2|1|0|0|0|0|0|0
-16|2|2|13|3.08058436014987|3.08058436014987|26.9194156398501|90|120
-17|2|3|17|0.4|120.4|0|90|210.4
-18|2|4|18|0.3|210.7|0|90|300.7
-19|2|5|19|0.5|301.2|0|90|391.2
-20|2|6|15|0.5|391.7|0|90|481.7
-21|2|7|16|0.5|482.2|0|90|572.2
-22|2|8|14|0.2|572.4|0|90|662.4
-23|2|9|12|0.3|662.7|0|90|752.7
-24|2|10|0|3.80788655293195|756.507886552932|0|0|756.507886552932
-25|3|1|0|0|0|0|0|0
-26|3|2|20|1|1|9|90|100
-27|3|3|24|0.5|100.5|0|90|190.5
-28|3|4|25|0.2|190.7|0|90|280.7
-29|3|5|27|0.2|280.9|0|90|370.9
-30|3|6|29|0.360555127546399|371.260555127546|0|90|461.260555127546
-31|3|7|30|0.5|461.760555127546|0|90|551.760555127546
-32|3|8|28|0.3|552.060555127546|0|90|642.060555127546
-33|3|9|26|0.2|642.260555127546|0|90|732.260555127546
-34|3|10|23|0.3|732.560555127546|0|0|732.560555127546
-35|3|11|103|0|732.560555127546|0|90|822.560555127546
-36|3|12|22|0.3|822.860555127546|0|90|912.860555127546
-37|3|13|21|0.2|913.060555127546|0.939444872453691|90|1004
-38|3|14|0|1.01980390271856|1005.01980390272|0|0|1005.01980390272
-39|4|1|0|0|0|0|0|0
-40|4|2|32|3.16227766016838|3.16227766016838|27.8377223398316|90|121
-41|4|3|33|0.2|121.2|0|90|211.2
-42|4|4|31|0.53851648071345|211.738516480713|0|90|301.738516480713
-43|4|5|35|0.5|302.238516480713|0|90|392.238516480713
-44|4|6|37|0.58309518948453|392.821611670198|0|90|482.821611670198
-45|4|7|38|0.2|483.021611670198|0|90|573.021611670198
-46|4|8|39|0.5|573.521611670198|0|90|663.521611670198
-47|4|9|36|0.5|664.021611670198|0.978388329802101|0|665
-48|4|10|105|0|665|0|90|755
-49|4|11|34|0.3|755.3|0|90|845.3
-50|4|12|0|3.23882694814033|848.53882694814|0|0|848.53882694814
-51|5|1|0|0|0|0|0|0
-52|5|2|43|1.65529453572468|1.65529453572468|14.3447054642753|90|106
-53|5|3|42|0.3|106.3|0|90|196.3
-54|5|4|41|0.2|196.5|0|90|286.5
-55|5|5|40|0.2|286.7|0|90|376.7
-56|5|6|44|0.3|377|0|90|467
-57|5|7|46|0.282842712474619|467.282842712475|0|90|557.282842712475
-58|5|8|45|0.2|557.482842712475|0|90|647.482842712475
-59|5|9|48|0.2|647.682842712475|0|90|737.682842712475
-60|5|10|51|0.3|737.982842712475|0|0|737.982842712475
-61|5|11|101|0|737.982842712475|0|90|827.982842712475
-62|5|12|50|0.223606797749979|828.206449510225|0|90|918.206449510225
-63|5|13|52|0.316227766016838|918.522677276241|0|90|1008.52267727624
-64|5|14|49|0.3|1008.82267727624|0|90|1098.82267727624
-65|5|15|47|0.2|1099.02267727624|0|90|1189.02267727624
-66|5|16|0|1.80277563773199|1190.82545291397|0|0|1190.82545291397
-67|6|1|0|0|0|0|0|0
-68|6|2|57|3.5|3.5|31.5|90|125
-69|6|3|55|0.2|125.2|0|90|215.2
-70|6|4|54|0.5|215.7|0|90|305.7
-71|6|5|53|0.53851648071345|306.238516480713|0|90|396.238516480713
-72|6|6|56|0.4|396.638516480713|0|90|486.638516480713
-73|6|7|58|0.2|486.838516480713|0|90|576.838516480713
-74|6|8|60|0.3|577.138516480713|0|90|667.138516480713
-75|6|9|59|1.04403065089106|668.182547131604|0|90|758.182547131604
-76|6|10|0|3.50570962859162|761.688256760196|0|0|761.688256760196
-77|7|1|0|0|0|0|0|0
-78|7|2|67|1.22065556157337|1.22065556157337|10.7793444384266|90|102
-79|7|3|65|0.1|102.1|0|90|192.1
-80|7|4|63|0.2|192.3|0|90|282.3
-81|7|5|62|0.5|282.8|0|90|372.8
-82|7|6|74|0.3|373.1|0|90|463.1
-83|7|7|72|0.5|463.6|0|90|553.6
-84|7|8|61|0.3|553.9|0|90|643.9
-85|7|9|64|0.2|644.1|0|0|644.1
-86|7|10|102|0|644.1|0|90|734.1
-87|7|11|68|0.3|734.4|0|90|824.4
-88|7|12|66|0.53851648071345|824.938516480713|1.06148351928664|90|916
-89|7|13|69|0.2|916.2|0|90|1006.2
-90|7|14|0|1.58113883008419|1007.78113883008|0|0|1007.78113883008
-91|8|1|0|0|0|0|0|0
-92|8|2|81|4.74341649025257|4.74341649025257|42.2565835097474|90|137
-93|8|3|78|0.3|137.3|0|0|137.3
-94|8|4|104|0|137.3|0|90|227.3
-95|8|5|76|0.2|227.5|0|90|317.5
-96|8|6|71|0.5|318|0|90|408
-97|8|7|70|0.5|408.5|0|90|498.5
-98|8|8|73|0.3|498.8|0|90|588.8
-99|8|9|77|0.4|589.2|0|90|679.2
-100|8|10|79|0.1|679.3|0|90|769.3
-101|8|11|80|0.53851648071345|769.838516480713|0|90|859.838516480713
-102|8|12|0|5.1478150704935|864.986331551207|0|0|864.986331551207
-103|9|1|0|0|0|0|0|0
-104|9|2|90|2.06155281280883|2.06155281280883|17.9384471871912|90|110
-105|9|3|87|0.5|110.5|0|90|200.5
-106|9|4|86|0.1|200.6|0|90|290.6
-107|9|5|83|0.6|291.2|0|90|381.2
-108|9|6|82|0.3|381.5|0|90|471.5
-109|9|7|84|0.58309518948453|472.083095189485|0|90|562.083095189485
-110|9|8|85|0.282842712474619|562.365937901959|0|90|652.365937901959
-111|9|9|88|0.3|652.665937901959|0|90|742.665937901959
-112|9|10|89|0.282842712474619|742.948780614434|0|90|832.948780614434
-113|9|11|91|0.360555127546399|833.30933574198|2.69066425801998|90|926
-114|9|12|0|2.23606797749979|928.2360679775|0|0|928.2360679775
-115|10|1|0|0|0|0|0|0
-116|10|2|98|3.08058436014987|3.08058436014987|26.9194156398501|90|120
-117|10|3|96|0.53851648071345|120.538516480713|0|90|210.538516480713
-118|10|4|95|0.2|210.738516480713|0|90|300.738516480713
-119|10|5|94|0.360555127546399|301.09907160826|0|90|391.09907160826
-120|10|6|92|0.360555127546399|391.459626735806|0|90|481.459626735806
-121|10|7|93|0.2|481.659626735806|0|90|571.659626735806
-122|10|8|97|0.5|572.159626735806|0|0|572.159626735806
-123|10|9|106|0|572.159626735806|0|90|662.159626735806
-124|10|10|100|0.5|662.659626735806|0|90|752.659626735806
-125|10|11|99|0.5|753.159626735806|0|90|843.159626735806
-126|10|12|0|3.35410196624968|846.513728702056|0|0|846.513728702056
-127|-1|0|0|82.8936866942834|0|226.652340603693|9000|9309.54602729797
+SELECT * FROM _pgr_pickDeliver(
+    $$ SELECT * FROM orders ORDER BY id $$,
+    $$ SELECT * FROM vehicles $$,
+    $$ SELECT * from pgr_dijkstraCostMatrix(
+        ' SELECT * FROM edge_table ', ARRAY[3, 4, 5, 8, 9, 11]) 
+    $$
+);
+ seq | vehicle_seq | vehicle_id | stop_seq | stop_type | stop_id | order_id | cargo | travel_time | arrival_time | wait_time | service_time | departure_time 
+-----+-------------+------------+----------+-----------+---------+----------+-------+-------------+--------------+-----------+--------------+----------------
+   1 |           1 |          1 |        1 |         1 |       6 |       -1 |     0 |           0 |            0 |         0 |            0 |              0
+   2 |           1 |          1 |        2 |         2 |       5 |        3 |    30 |           1 |            1 |         1 |            3 |              5
+   3 |           1 |          1 |        3 |         3 |      11 |        3 |     0 |           2 |            7 |         0 |            3 |             10
+   4 |           1 |          1 |        4 |         2 |       9 |        2 |    20 |           2 |           12 |         0 |            2 |             14
+   5 |           1 |          1 |        5 |         3 |       4 |        2 |     0 |           1 |           15 |         0 |            3 |             18
+   6 |           1 |          1 |        6 |         6 |       6 |       -1 |     0 |           4 |           22 |         0 |            0 |             22
+   7 |           2 |          1 |        1 |         1 |       6 |       -1 |     0 |           0 |            0 |         0 |            0 |              0
+   8 |           2 |          1 |        2 |         2 |       3 |        1 |    10 |           5 |            5 |         0 |            3 |              8
+   9 |           2 |          1 |        3 |         3 |       8 |        1 |     0 |           3 |           11 |         0 |            3 |             14
+  10 |           2 |          1 |        4 |         6 |       6 |       -1 |     0 |           0 |           14 |         0 |            0 |             14
+  11 |          -2 |          0 |        0 |        -1 |      -1 |       -1 |    -1 |          18 |           -1 |         1 |           17 |             36
+(11 rows)
+
 --q3
+ROLLBACK;
+ROLLBACK
diff --git a/src/pickDeliver/test/doc-pickDeliver.test.sql b/src/pickDeliver/test/doc-pickDeliver.test.sql
index 1882959..929591b 100644
--- a/src/pickDeliver/test/doc-pickDeliver.test.sql
+++ b/src/pickDeliver/test/doc-pickDeliver.test.sql
@@ -1,8 +1,28 @@
-
 \echo --q1
 SELECT * FROM _pgr_pickDeliver(
-    'select * from customer order by id', 25, 200, 1, 30);
+    'SELECT * FROM orders ORDER BY id',
+    'SELECT * from vehicles',
+    -- matrix query
+    'WITH
+    A AS (
+        SELECT p_node_id AS id, p_x AS x, p_y AS y FROM orders
+        UNION
+        SELECT d_node_id AS id, d_x, d_y FROM orders
+        UNION
+        SELECT start_node_id, start_x, start_y FROM vehicles
+    )
+    SELECT A.id AS start_vid, B.id AS end_vid, sqrt( (a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y)) AS agg_cost
+    FROM A, A AS B WHERE A.id != B.id'
+    );
+
 \echo --q2
+
 SELECT * FROM _pgr_pickDeliver(
-    'select * from customer order by id', 25, 200, 10, 30);
+    $$ SELECT * FROM orders ORDER BY id $$,
+    $$ SELECT * FROM vehicles $$,
+    $$ SELECT * from pgr_dijkstraCostMatrix(
+        ' SELECT * FROM edge_table ', ARRAY[3, 4, 5, 8, 9, 11]) 
+    $$
+);
+
 \echo --q3
diff --git a/src/pickDeliver/test/doc-pickDeliverEuclidean.result b/src/pickDeliver/test/doc-pickDeliverEuclidean.result
new file mode 100644
index 0000000..1971291
--- /dev/null
+++ b/src/pickDeliver/test/doc-pickDeliverEuclidean.result
@@ -0,0 +1,27 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+--q1
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    'SELECT * FROM orders ORDER BY id',
+    'SELECT * from vehicles'
+);
+ seq | vehicle_seq | vehicle_id | stop_seq | stop_type | order_id | cargo |   travel_time    |   arrival_time   | wait_time | service_time |  departure_time  
+-----+-------------+------------+----------+-----------+----------+-------+------------------+------------------+-----------+--------------+------------------
+   1 |           1 |          1 |        1 |         1 |       -1 |     0 |                0 |                0 |         0 |            0 |                0
+   2 |           1 |          1 |        2 |         2 |        3 |    30 |                1 |                1 |         1 |            3 |                5
+   3 |           1 |          1 |        3 |         3 |        3 |     0 |  1.4142135623731 | 6.41421356237309 |         0 |            3 |  9.4142135623731
+   4 |           1 |          1 |        4 |         2 |        2 |    20 |  1.4142135623731 | 10.8284271247462 |         0 |            2 | 12.8284271247462
+   5 |           1 |          1 |        5 |         3 |        2 |     0 |                1 | 13.8284271247462 |         0 |            3 | 16.8284271247462
+   6 |           1 |          1 |        6 |         6 |       -1 |     0 |  1.4142135623731 | 18.2426406871193 |         0 |            0 | 18.2426406871193
+   7 |           2 |          1 |        1 |         1 |       -1 |     0 |                0 |                0 |         0 |            0 |                0
+   8 |           2 |          1 |        2 |         2 |        1 |    10 |                1 |                1 |         1 |            3 |                5
+   9 |           2 |          1 |        3 |         3 |        1 |     0 | 2.23606797749979 | 7.23606797749979 |         0 |            3 | 10.2360679774998
+  10 |           2 |          1 |        4 |         6 |       -1 |     0 |                2 | 12.2360679774998 |         0 |            0 | 12.2360679774998
+  11 |          -2 |          0 |        0 |        -1 |       -1 |    -1 | 11.4787086646191 |               -1 |         2 |           17 | 30.4787086646191
+(11 rows)
+
+--q2
+ROLLBACK;
+ROLLBACK
diff --git a/src/pickDeliver/test/doc-pickDeliverEuclidean.test.sql b/src/pickDeliver/test/doc-pickDeliverEuclidean.test.sql
new file mode 100644
index 0000000..ad3c70c
--- /dev/null
+++ b/src/pickDeliver/test/doc-pickDeliverEuclidean.test.sql
@@ -0,0 +1,6 @@
+\echo --q1
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    'SELECT * FROM orders ORDER BY id',
+    'SELECT * from vehicles'
+);
+\echo --q2
diff --git a/src/pickDeliver/test/jet_customers-cygwin.result b/src/pickDeliver/test/jet_customers-cygwin.result
new file mode 100644
index 0000000..451014f
--- /dev/null
+++ b/src/pickDeliver/test/jet_customers-cygwin.result
@@ -0,0 +1,92 @@
+1|1|0|0
+2|1|27|647.668195716762
+3|1|25|677.668195716762
+4|1|23|707.668195716762
+5|1|26|1452.14702675376
+6|1|21|1482.14702675376
+7|1|19|1512.14702675376
+8|1|7|2129.27989076327
+9|1|5|2159.27989076327
+10|1|3|2189.27989076327
+11|1|1|2219.27989076327
+12|1|24|3581.60492618067
+13|1|20|3611.60492618067
+14|1|12|3641.60492618067
+15|1|4|3671.60492618067
+16|1|17|5429.44895849378
+17|1|6|5459.44895849378
+18|1|15|5904.69466888703
+19|1|13|5934.69466888703
+20|1|11|5964.69466888703
+21|1|9|5994.69466888703
+22|1|18|6352.79983495425
+23|1|10|6382.79983495425
+24|1|2|6412.79983495425
+25|1|28|6856.8191581748
+26|1|22|6886.8191581748
+27|1|16|6916.8191581748
+28|1|8|6946.8191581748
+29|1|14|7386.70206828451
+30|1|0|7504.42207508029
+1|1|1|-1|0|0|0|0|0
+2|1|2|27|0.617668195716762|0.617668195716762|0|30|30.6176681957168
+3|1|3|25|0|30.6176681957168|0|30|60.6176681957168
+4|1|4|23|0|60.6176681957168|0|30|90.6176681957168
+5|1|5|26|0.714478831037001|91.3321470267538|0|30|121.332147026754
+6|1|6|19|0|121.332147026754|0|30|151.332147026754
+7|1|7|7|0.587132864009502|151.919279890763|0|30|181.919279890763
+8|1|8|5|0|181.919279890763|0|30|211.919279890763
+9|1|9|3|0|211.919279890763|0|30|241.919279890763
+10|1|10|1|0|241.919279890763|0|30|271.919279890763
+11|1|11|24|1.33232503541741|273.251604926181|0|30|303.251604926181
+12|1|12|20|0|303.251604926181|0|30|333.251604926181
+13|1|13|12|0|333.251604926181|0|30|363.251604926181
+14|1|14|4|0|363.251604926181|0|30|393.251604926181
+15|1|15|21|1.7278440323131|394.979448958494|0|30|424.979448958494
+16|1|16|17|0|424.979448958494|0|30|454.979448958494
+17|1|17|6|0|454.979448958494|0|30|484.979448958494
+18|1|18|15|0.415245710393256|485.394694668887|0|30|515.394694668887
+19|1|19|13|0|515.394694668887|0|30|545.394694668887
+20|1|20|11|0|545.394694668887|0|30|575.394694668887
+21|1|21|9|0|575.394694668887|0|30|605.394694668887
+22|1|22|18|0.328105166067223|605.722799834954|0|30|635.722799834954
+23|1|23|10|0|635.722799834954|0|30|665.722799834954
+24|1|24|2|0|665.722799834954|0|30|695.722799834954
+25|1|25|28|0.414019323220547|696.136819158175|0|30|726.136819158175
+26|1|26|22|0|726.136819158175|0|30|756.136819158175
+27|1|27|16|0|756.136819158175|0|30|786.136819158175
+28|1|28|8|0|786.136819158175|0|30|816.136819158175
+29|1|29|14|0.409882910109704|816.546702068285|0|30|846.546702068285
+30|1|30|-1|0.117720006795786|846.66442207508|0|0|846.66442207508
+31|-2|0|-1|6.66442207508029|-1|0|840|846.66442207508
+1|1|0|1|-1|1|0|0|0|0|0|0
+2|1|0|2|27|2|6|0.617668195716762|0.617668195716762|0|30|30.6176681957168
+3|1|0|3|25|2|26|0|30.6176681957168|0|30|60.6176681957168
+4|1|0|4|23|2|40|0|60.6176681957168|0|30|90.6176681957168
+5|1|0|5|25|3|20|0.714478831037001|91.3321470267538|0|30|121.332147026754
+6|1|0|6|19|2|36|0|121.332147026754|0|30|151.332147026754
+7|1|0|7|7|2|41|0.587132864009502|151.919279890763|0|30|181.919279890763
+8|1|0|8|5|2|51|0|181.919279890763|0|30|211.919279890763
+9|1|0|9|3|2|68|0|211.919279890763|0|30|241.919279890763
+10|1|0|10|1|2|75|0|241.919279890763|0|30|271.919279890763
+11|1|0|11|23|3|61|1.33232503541741|273.251604926181|0|30|303.251604926181
+12|1|0|12|19|3|45|0|303.251604926181|0|30|333.251604926181
+13|1|0|13|11|3|33|0|333.251604926181|0|30|363.251604926181
+14|1|0|14|3|3|16|0|363.251604926181|0|30|393.251604926181
+15|1|0|15|21|2|22|1.7278440323131|394.979448958494|0|30|424.979448958494
+16|1|0|16|17|2|28|0|424.979448958494|0|30|454.979448958494
+17|1|0|17|5|3|18|0|454.979448958494|0|30|484.979448958494
+18|1|0|18|15|2|20|0.415245710393256|485.394694668887|0|30|515.394694668887
+19|1|0|19|13|2|29|0|515.394694668887|0|30|545.394694668887
+20|1|0|20|11|2|41|0|545.394694668887|0|30|575.394694668887
+21|1|0|21|9|2|54|0|575.394694668887|0|30|605.394694668887
+22|1|0|22|17|3|48|0.328105166067223|605.722799834954|0|30|635.722799834954
+23|1|0|23|9|3|35|0|635.722799834954|0|30|665.722799834954
+24|1|0|24|1|3|28|0|665.722799834954|0|30|695.722799834954
+25|1|0|25|27|3|22|0.414019323220547|696.136819158175|0|30|726.136819158175
+26|1|0|26|21|3|16|0|726.136819158175|0|30|756.136819158175
+27|1|0|27|15|3|14|0|756.136819158175|0|30|786.136819158175
+28|1|0|28|7|3|9|0|786.136819158175|0|30|816.136819158175
+29|1|0|29|13|3|0|0.409882910109704|816.546702068285|0|30|846.546702068285
+30|1|0|30|-1|6|0|0.117720006795786|846.66442207508|0|0|846.66442207508
+31|-2|0|0|-1|-1|-1|6.66442207508029|-1|0|840|846.66442207508
diff --git a/src/pickDeliver/test/jet_customers-cygwin.test.sql b/src/pickDeliver/test/jet_customers-cygwin.test.sql
new file mode 100644
index 0000000..669fc69
--- /dev/null
+++ b/src/pickDeliver/test/jet_customers-cygwin.test.sql
@@ -0,0 +1,104 @@
+
+CREATE TABLE jet_customers (
+    id integer,
+    x integer,
+    y integer,
+    pindex integer,
+    dindex integer,
+    demand integer,
+    opentime double precision,
+    closetime double precision,
+    servicetime double precision
+);
+
+CREATE TABLE stops (
+    iata_faa character varying(20),
+    x integer,
+    y integer,
+    longitude double precision,
+    latitude double precision
+);
+
+--
+-- TOC entry 4256 (class 0 OID 6648805)
+-- Dependencies: 300
+-- Data for Name: jet_customers; Type: TABLE DATA; Schema: public; Owner: postgres
+--
+
+COPY jet_customers (id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) FROM stdin;
+1	1644	-614	0	2	7	0	60000	30
+3	1644	-614	0	4	17	0	60000	30
+5	1644	-614	0	6	10	0	60000	30
+7	1644	-614	0	8	5	0	60000	30
+9	2320	126	0	10	13	0	60000	30
+11	2320	126	0	12	12	0	60000	30
+13	2320	126	0	14	9	0	60000	30
+15	2320	126	0	16	2	0	60000	30
+17	2035	-176	0	18	6	0	60000	30
+19	2035	-176	0	20	16	0	60000	30
+21	2035	-176	0	22	6	0	60000	30
+23	2383	448	0	24	14	0	60000	30
+25	2383	448	0	26	20	0	60000	30
+27	2383	448	0	28	6	0	60000	30
+2	2383	448	1	0	-7	0	60000	30
+4	1981	-1903	3	0	-17	0	60000	30
+6	2035	-176	5	0	-10	0	60000	30
+8	2387	34	7	0	-5	0	60000	30
+10	2383	448	9	0	-13	0	60000	30
+12	1981	-1903	11	0	-12	0	60000	30
+14	2035	-176	13	0	-9	0	60000	30
+16	2387	34	15	0	-2	0	60000	30
+18	2383	448	17	0	-6	0	60000	30
+20	1981	-1903	19	0	-16	0	60000	30
+22	2387	34	21	0	-6	0	60000	30
+24	1981	-1903	23	0	-14	0	60000	30
+26	2035	-176	25	0	-20	0	60000	30
+28	2387	34	27	0	-6	0	60000	30
+0	2138	-119	0	0	0	0	60000	0
+\.
+
+
+--
+-- TOC entry 4255 (class 0 OID 6648802)
+-- Dependencies: 299
+-- Data for Name: stops; Type: TABLE DATA; Schema: public; Owner: postgres
+--
+
+COPY stops (iata_faa, x, y, longitude, latitude) FROM stdin;
+BOS	2320	126	-71.005180999999993	42.364347000000002
+BGR	2383	448	-68.828138999999993	44.807443999999997
+MIA	1981	-1903	-80.290555999999995	25.79325
+TEB	2138	-119	-74.060837000000006	40.850102999999997
+MVY	2387	34	-70.615278000000004	41.391666999999998
+ABE	2035	-176	-75.440805999999995	40.652082999999998
+BKW	1644	-614	-81.124200000000002	37.787300000000002
+BGE	1466	-1424	-84.636927799999995	30.971598100000001
+\.
+
+-- crashes backend
+WITH
+pickups AS (
+    SELECT id, demand, x as p_x, y as p_y, opentime as p_open, closetime as p_close, servicetime as p_service
+    FROM  jet_customers WHERE pindex = 0 AND id != 0
+),
+deliveries AS (
+    SELECT pindex AS id, x as d_x, y as d_y, opentime as d_open, closetime as d_close, servicetime as d_service
+    FROM  jet_customers WHERE dindex = 0 AND id != 0
+)
+SELECT * INTO jet_orders
+FROM pickups JOIN deliveries USING(id) ORDER BY pickups.id;
+
+
+SELECT * FROM pgr_gsoc_vrppdtw(
+    'SELECT id, x, y, demand, opentime, closetime, servicetime, pindex, dindex FROM jet_customers ORDER BY id', 20, 100);
+
+SELECT * FROM _pgr_pickDeliver(
+    'SELECT id, x, y, demand, opentime, closetime, servicetime, pindex, dindex FROM jet_customers ORDER BY id', max_vehicles := 20, capacity:= 100, speed := 1000);
+
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    'SELECT * FROM jet_orders ORDER BY id',
+    'SELECT 0 AS id,
+    2138 AS start_x, -119 AS start_y,
+    0 AS start_open, 60000 AS start_close,
+    100 AS capacity, 20 AS number, 1000 as speed',
+    30);
diff --git a/src/pickDeliver/test/jet_customers.result b/src/pickDeliver/test/jet_customers.result
index b701e82..b941e06 100644
--- a/src/pickDeliver/test/jet_customers.result
+++ b/src/pickDeliver/test/jet_customers.result
@@ -1,31 +1,122 @@
-1|1|1|0|0|0.|0|0|0.
-2|1|2|27|0.617668195716762|0.62|0|30|30.62
-3|1|3|25|0|30.62|0|30|60.62
-4|1|4|2|0|60.62|0|30|90.62
-5|1|5|23|0|90.62|0|30|120.62
-6|1|6|26|0.714478831037001|121.33|0|30|151.33
-7|1|7|19|0|151.33|0|30|181.33
-8|1|8|7|0.587132864009502|181.92|0|30|211.92
-9|1|9|5|0|211.92|0|30|241.92
-10|1|10|3|0|241.92|0|30|271.92
-11|1|11|1|0|271.92|0|30|301.92
-12|1|12|12|1.33232503541741|303.25|0|30|333.25
-13|1|13|4|0|333.25|0|30|363.25
-14|1|14|24|0|363.25|0|30|393.25
-15|1|15|20|0|393.25|0|30|423.25
-16|1|16|21|1.7278440323131|424.98|0|30|454.98
-17|1|17|6|0|454.98|0|30|484.98
-18|1|18|17|0|484.98|0|30|514.98
-19|1|19|14|0|514.98|0|30|544.98
-20|1|20|13|0.415245710393256|545.39|0|30|575.39
-21|1|21|11|0|575.39|0|30|605.39
-22|1|22|9|0|605.39|0|30|635.39
-23|1|23|15|0|635.39|0|30|665.39
-24|1|24|10|0.328105166067223|665.72|0|30|695.72
-25|1|25|18|0|695.72|0|30|725.72
-26|1|26|8|0.414019323220547|726.14|0|30|756.14
-27|1|27|28|0|756.14|0|30|786.14
-28|1|28|22|0|786.14|0|30|816.14
-29|1|29|16|0|816.14|0|30|846.14
-30|1|30|0|0.292249893070981|846.43|0|0|846.43
-31|-1|0|0|6.42906905124578|0.|0|840|846.43
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+CREATE TABLE jet_customers (
+    id integer,
+    x integer,
+    y integer,
+    pindex integer,
+    dindex integer,
+    demand integer,
+    opentime double precision,
+    closetime double precision,
+    servicetime double precision
+);
+CREATE TABLE
+CREATE TABLE stops (
+    iata_faa character varying(20),
+    x integer,
+    y integer,
+    longitude double precision,
+    latitude double precision
+);
+CREATE TABLE
+COPY jet_customers (id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) FROM stdin;
+COPY 29
+COPY stops (iata_faa, x, y, longitude, latitude) FROM stdin;
+COPY 8
+WITH
+pickups AS (
+    SELECT id, demand, x as p_x, y as p_y, opentime as p_open, closetime as p_close, servicetime as p_service
+    FROM  jet_customers WHERE pindex = 0 AND id != 0
+),
+deliveries AS (
+    SELECT pindex AS id, x as d_x, y as d_y, opentime as d_open, closetime as d_close, servicetime as d_service
+    FROM  jet_customers WHERE dindex = 0 AND id != 0
+)
+SELECT * INTO jet_orders
+FROM pickups JOIN deliveries USING(id) ORDER BY pickups.id;
+SELECT 14
+SELECT * FROM _pgr_pickDeliver(
+    'SELECT id, x, y, demand, opentime, closetime, servicetime, pindex, dindex
+     FROM jet_customers ORDER BY id', max_vehicles := 20, capacity:= 100, speed := 1000);
+ seq | vehicle_id | vehicle_seq | stop_id |    travel_time    |   arrival_time    | wait_time | service_time |  departure_time  
+-----+------------+-------------+---------+-------------------+-------------------+-----------+--------------+------------------
+   1 |          1 |           1 |       0 |                 0 |                 0 |         0 |            0 |                0
+   2 |          1 |           2 |      27 | 0.617668195716762 | 0.617668195716762 |         0 |           30 | 30.6176681957168
+   3 |          1 |           3 |      25 |                 0 |  30.6176681957168 |         0 |           30 | 60.6176681957168
+   4 |          1 |           4 |      23 |                 0 |  60.6176681957168 |         0 |           30 | 90.6176681957168
+   5 |          1 |           5 |      26 | 0.714478831037001 |  91.3321470267538 |         0 |           30 | 121.332147026754
+   6 |          1 |           6 |      19 |                 0 |  121.332147026754 |         0 |           30 | 151.332147026754
+   7 |          1 |           7 |       7 | 0.587132864009502 |  151.919279890763 |         0 |           30 | 181.919279890763
+   8 |          1 |           8 |       5 |                 0 |  181.919279890763 |         0 |           30 | 211.919279890763
+   9 |          1 |           9 |       3 |                 0 |  211.919279890763 |         0 |           30 | 241.919279890763
+  10 |          1 |          10 |       1 |                 0 |  241.919279890763 |         0 |           30 | 271.919279890763
+  11 |          1 |          11 |      24 |  1.33232503541741 |  273.251604926181 |         0 |           30 | 303.251604926181
+  12 |          1 |          12 |      20 |                 0 |  303.251604926181 |         0 |           30 | 333.251604926181
+  13 |          1 |          13 |      12 |                 0 |  333.251604926181 |         0 |           30 | 363.251604926181
+  14 |          1 |          14 |       4 |                 0 |  363.251604926181 |         0 |           30 | 393.251604926181
+  15 |          1 |          15 |      21 |   1.7278440323131 |  394.979448958494 |         0 |           30 | 424.979448958494
+  16 |          1 |          16 |      17 |                 0 |  424.979448958494 |         0 |           30 | 454.979448958494
+  17 |          1 |          17 |       6 |                 0 |  454.979448958494 |         0 |           30 | 484.979448958494
+  18 |          1 |          18 |      15 | 0.415245710393256 |  485.394694668887 |         0 |           30 | 515.394694668887
+  19 |          1 |          19 |      13 |                 0 |  515.394694668887 |         0 |           30 | 545.394694668887
+  20 |          1 |          20 |      11 |                 0 |  545.394694668887 |         0 |           30 | 575.394694668887
+  21 |          1 |          21 |       9 |                 0 |  575.394694668887 |         0 |           30 | 605.394694668887
+  22 |          1 |          22 |      18 | 0.328105166067223 |  605.722799834954 |         0 |           30 | 635.722799834954
+  23 |          1 |          23 |      10 |                 0 |  635.722799834954 |         0 |           30 | 665.722799834954
+  24 |          1 |          24 |       2 |                 0 |  665.722799834954 |         0 |           30 | 695.722799834954
+  25 |          1 |          25 |      28 | 0.414019323220547 |  696.136819158175 |         0 |           30 | 726.136819158175
+  26 |          1 |          26 |      22 |                 0 |  726.136819158175 |         0 |           30 | 756.136819158175
+  27 |          1 |          27 |      16 |                 0 |  756.136819158175 |         0 |           30 | 786.136819158175
+  28 |          1 |          28 |       8 |                 0 |  786.136819158175 |         0 |           30 | 816.136819158175
+  29 |          1 |          29 |      14 | 0.409882910109704 |  816.546702068285 |         0 |           30 | 846.546702068285
+  30 |          1 |          30 |       0 | 0.117720006795786 |   846.66442207508 |         0 |            0 |  846.66442207508
+  31 |         -2 |           0 |       0 |  6.66442207508029 |                -1 |         0 |          840 |  846.66442207508
+(31 rows)
+
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    'SELECT * FROM jet_orders ORDER BY id',
+    'SELECT 0 AS id,
+    2138 AS start_x, -119 AS start_y,
+    0 AS start_open, 60000 AS start_close,
+    100 AS capacity, 20 AS number, 1000 as speed',
+    30);
+ seq | vehicle_number | vehicle_id | vehicle_seq | order_id | stop_type | cargo |    travel_time    |   arrival_time    | wait_time | service_time |  departure_time  
+-----+----------------+------------+-------------+----------+-----------+-------+-------------------+-------------------+-----------+--------------+------------------
+   1 |              1 |          0 |           1 |       -1 |         1 |     0 |                 0 |                 0 |         0 |            0 |                0
+   2 |              1 |          0 |           2 |       27 |         2 |     6 | 0.617668195716762 | 0.617668195716762 |         0 |           30 | 30.6176681957168
+   3 |              1 |          0 |           3 |       25 |         2 |    26 |                 0 |  30.6176681957168 |         0 |           30 | 60.6176681957168
+   4 |              1 |          0 |           4 |       23 |         2 |    40 |                 0 |  60.6176681957168 |         0 |           30 | 90.6176681957168
+   5 |              1 |          0 |           5 |       25 |         3 |    20 | 0.714478831037001 |  91.3321470267538 |         0 |           30 | 121.332147026754
+   6 |              1 |          0 |           6 |       19 |         2 |    36 |                 0 |  121.332147026754 |         0 |           30 | 151.332147026754
+   7 |              1 |          0 |           7 |        7 |         2 |    41 | 0.587132864009502 |  151.919279890763 |         0 |           30 | 181.919279890763
+   8 |              1 |          0 |           8 |        5 |         2 |    51 |                 0 |  181.919279890763 |         0 |           30 | 211.919279890763
+   9 |              1 |          0 |           9 |        3 |         2 |    68 |                 0 |  211.919279890763 |         0 |           30 | 241.919279890763
+  10 |              1 |          0 |          10 |        1 |         2 |    75 |                 0 |  241.919279890763 |         0 |           30 | 271.919279890763
+  11 |              1 |          0 |          11 |       23 |         3 |    61 |  1.33232503541741 |  273.251604926181 |         0 |           30 | 303.251604926181
+  12 |              1 |          0 |          12 |       19 |         3 |    45 |                 0 |  303.251604926181 |         0 |           30 | 333.251604926181
+  13 |              1 |          0 |          13 |       11 |         3 |    33 |                 0 |  333.251604926181 |         0 |           30 | 363.251604926181
+  14 |              1 |          0 |          14 |        3 |         3 |    16 |                 0 |  363.251604926181 |         0 |           30 | 393.251604926181
+  15 |              1 |          0 |          15 |       21 |         2 |    22 |   1.7278440323131 |  394.979448958494 |         0 |           30 | 424.979448958494
+  16 |              1 |          0 |          16 |       17 |         2 |    28 |                 0 |  424.979448958494 |         0 |           30 | 454.979448958494
+  17 |              1 |          0 |          17 |        5 |         3 |    18 |                 0 |  454.979448958494 |         0 |           30 | 484.979448958494
+  18 |              1 |          0 |          18 |       15 |         2 |    20 | 0.415245710393256 |  485.394694668887 |         0 |           30 | 515.394694668887
+  19 |              1 |          0 |          19 |       13 |         2 |    29 |                 0 |  515.394694668887 |         0 |           30 | 545.394694668887
+  20 |              1 |          0 |          20 |       11 |         2 |    41 |                 0 |  545.394694668887 |         0 |           30 | 575.394694668887
+  21 |              1 |          0 |          21 |        9 |         2 |    54 |                 0 |  575.394694668887 |         0 |           30 | 605.394694668887
+  22 |              1 |          0 |          22 |       17 |         3 |    48 | 0.328105166067223 |  605.722799834954 |         0 |           30 | 635.722799834954
+  23 |              1 |          0 |          23 |        9 |         3 |    35 |                 0 |  635.722799834954 |         0 |           30 | 665.722799834954
+  24 |              1 |          0 |          24 |        1 |         3 |    28 |                 0 |  665.722799834954 |         0 |           30 | 695.722799834954
+  25 |              1 |          0 |          25 |       27 |         3 |    22 | 0.414019323220547 |  696.136819158175 |         0 |           30 | 726.136819158175
+  26 |              1 |          0 |          26 |       21 |         3 |    16 |                 0 |  726.136819158175 |         0 |           30 | 756.136819158175
+  27 |              1 |          0 |          27 |       15 |         3 |    14 |                 0 |  756.136819158175 |         0 |           30 | 786.136819158175
+  28 |              1 |          0 |          28 |        7 |         3 |     9 |                 0 |  786.136819158175 |         0 |           30 | 816.136819158175
+  29 |              1 |          0 |          29 |       13 |         3 |     0 | 0.409882910109704 |  816.546702068285 |         0 |           30 | 846.546702068285
+  30 |              1 |          0 |          30 |       -1 |         6 |     0 | 0.117720006795786 |   846.66442207508 |         0 |            0 |  846.66442207508
+  31 |             -2 |          0 |           0 |       -1 |        -1 |    -1 |  6.66442207508029 |                -1 |         0 |          840 |  846.66442207508
+(31 rows)
+
+ROLLBACK;
+ROLLBACK
diff --git a/src/pickDeliver/test/jet_customers.test.sql b/src/pickDeliver/test/jet_customers.test.sql
index a619b7c..c713d4f 100644
--- a/src/pickDeliver/test/jet_customers.test.sql
+++ b/src/pickDeliver/test/jet_customers.test.sql
@@ -75,13 +75,27 @@ BKW	1644	-614	-81.124200000000002	37.787300000000002
 BGE	1466	-1424	-84.636927799999995	30.971598100000001
 \.
 
+WITH
+pickups AS (
+    SELECT id, demand, x as p_x, y as p_y, opentime as p_open, closetime as p_close, servicetime as p_service
+    FROM  jet_customers WHERE pindex = 0 AND id != 0
+),
+deliveries AS (
+    SELECT pindex AS id, x as d_x, y as d_y, opentime as d_open, closetime as d_close, servicetime as d_service
+    FROM  jet_customers WHERE dindex = 0 AND id != 0
+)
+SELECT * INTO jet_orders
+FROM pickups JOIN deliveries USING(id) ORDER BY pickups.id;
 
-SELECT seq, vehicle_id, vehicle_seq, stop_id, travel_time,
-    to_char(arrival_time, 'FM9990.99') AS arrival_time,
-    wait_time,  service_time,
-    to_char(departure_time, 'FM9990.99') AS departure_time
-FROM _pgr_pickDeliver(
+SELECT * FROM _pgr_pickDeliver(
     'SELECT id, x, y, demand, opentime, closetime, servicetime, pindex, dindex
-    FROM jet_customers
-    ORDER BY id',
-    max_vehicles := 20, capacity:= 100, speed := 1000);
+     FROM jet_customers ORDER BY id', max_vehicles := 20, capacity:= 100, speed := 1000);
+
+
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    'SELECT * FROM jet_orders ORDER BY id',
+    'SELECT 0 AS id,
+    2138 AS start_x, -119 AS start_y,
+    0 AS start_open, 60000 AS start_close,
+    100 AS capacity, 20 AS number, 1000 as speed',
+    30);
diff --git a/src/pickDeliver/test/jet_customers1.result b/src/pickDeliver/test/jet_customers1.result
new file mode 100644
index 0000000..7b7862a
--- /dev/null
+++ b/src/pickDeliver/test/jet_customers1.result
@@ -0,0 +1,291 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+CREATE TABLE jet_customers (
+    airport character varying,
+    id integer,
+    x double precision,
+    y double precision,
+    pindex integer,
+    dindex integer,
+    demand integer,
+    opentime double precision,
+    closetime double precision,
+    servicetime double precision
+);
+CREATE TABLE
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 1, 2320738.4688434978, 126348.38967116659, 0, 2, 4, 3448, 2853448, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 3, 2320738.4688434978, 126348.38967116659, 0, 4, 4, 3448, 2853448, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 5, 2320738.4688434978, 126348.38967116659, 0, 6, 4, 3448, 2853448, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 7, 2320738.4688434978, 126348.38967116659, 0, 8, 4, 3448, 2853448, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 9, 2320738.4688434978, 126348.38967116659, 0, 10, 4, 3448, 2853448, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 11, 2320738.4688434978, 126348.38967116659, 0, 12, 4, 3448, 2853448, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 13, 2383186.1525343237, 448251.25888828852, 0, 14, 4, 3463, 2853463, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 15, 2383186.1525343237, 448251.25888828852, 0, 16, 4, 3463, 2853463, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 17, 2383186.1525343237, 448251.25888828852, 0, 18, 4, 3463, 2853463, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 19, 2383186.1525343237, 448251.25888828852, 0, 20, 4, 3463, 2853463, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 21, 2383186.1525343237, 448251.25888828852, 0, 22, 4, 3463, 2853463, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 23, 2383186.1525343237, 448251.25888828852, 0, 24, 4, 3463, 2853463, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 25, 1981144.5525029898, -1903041.2384292425, 0, 26, 2, 3576, 2853576, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 27, 1981144.5525029898, -1903041.2384292425, 0, 28, 2, 3576, 2853576, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 29, 1981144.5525029898, -1903041.2384292425, 0, 30, 2, 3576, 2853576, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 31, 1981144.5525029898, -1903041.2384292425, 0, 32, 2, 3576, 2853576, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 33, 1981144.5525029898, -1903041.2384292425, 0, 34, 2, 3576, 2853576, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 35, 1981144.5525029898, -1903041.2384292425, 0, 36, 2, 3576, 2853576, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 37, 2138409.5568088419, -119451.50568778868, 0, 38, 5, 3624, 2853624, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 39, 2138409.5568088419, -119451.50568778868, 0, 40, 5, 3624, 2853624, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 41, 2138409.5568088419, -119451.50568778868, 0, 42, 5, 3624, 2853624, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 43, 2138409.5568088419, -119451.50568778868, 0, 44, 5, 3624, 2853624, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 45, 2138409.5568088419, -119451.50568778868, 0, 46, 5, 3624, 2853624, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 47, 2138409.5568088419, -119451.50568778868, 0, 48, 5, 3624, 2853624, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 49, 2387491.1007072991, 34459.351848672632, 0, 50, 1, 4265, 2854265, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 51, 2387491.1007072991, 34459.351848672632, 0, 52, 1, 4265, 2854265, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 53, 2387491.1007072991, 34459.351848672632, 0, 54, 1, 4265, 2854265, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 55, 2387491.1007072991, 34459.351848672632, 0, 56, 1, 4265, 2854265, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 57, 2387491.1007072991, 34459.351848672632, 0, 58, 1, 4265, 2854265, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 59, 2387491.1007072991, 34459.351848672632, 0, 60, 1, 4265, 2854265, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 61, 2035310.7411768832, -176076.78362264115, 0, 62, 1, 4355, 2854355, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 63, 2035310.7411768832, -176076.78362264115, 0, 64, 1, 4355, 2854355, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 65, 2035310.7411768832, -176076.78362264115, 0, 66, 1, 4355, 2854355, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 67, 2035310.7411768832, -176076.78362264115, 0, 68, 1, 4355, 2854355, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 69, 2035310.7411768832, -176076.78362264115, 0, 70, 1, 4355, 2854355, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 71, 2035310.7411768832, -176076.78362264115, 0, 72, 1, 4355, 2854355, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 2, 2320738.4688434978, 126348.38967116659, 1, 0, -4, 3448, 6903448, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 4, 2383186.1525343237, 448251.25888828852, 3, 0, -4, 3448, 6903448, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 6, 1981144.5525029898, -1903041.2384292425, 5, 0, -4, 3448, 6903448, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 8, 2138409.5568088419, -119451.50568778868, 7, 0, -4, 3448, 6903448, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 10, 2387491.1007072991, 34459.351848672632, 9, 0, -4, 3448, 6903448, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 12, 2035310.7411768832, -176076.78362264115, 11, 0, -4, 3448, 6903448, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 14, 2320738.4688434978, 126348.38967116659, 13, 0, -4, 3463, 6903463, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 16, 2383186.1525343237, 448251.25888828852, 15, 0, -4, 3463, 6903463, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 18, 1981144.5525029898, -1903041.2384292425, 17, 0, -4, 3463, 6903463, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 20, 2138409.5568088419, -119451.50568778868, 19, 0, -4, 3463, 6903463, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 22, 2387491.1007072991, 34459.351848672632, 21, 0, -4, 3463, 6903463, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 24, 2035310.7411768832, -176076.78362264115, 23, 0, -4, 3463, 6903463, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 26, 2320738.4688434978, 126348.38967116659, 25, 0, -2, 3576, 6903576, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 28, 2383186.1525343237, 448251.25888828852, 27, 0, -2, 3576, 6903576, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 30, 1981144.5525029898, -1903041.2384292425, 29, 0, -2, 3576, 6903576, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 32, 2138409.5568088419, -119451.50568778868, 31, 0, -2, 3576, 6903576, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 34, 2387491.1007072991, 34459.351848672632, 33, 0, -2, 3576, 6903576, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 36, 2035310.7411768832, -176076.78362264115, 35, 0, -2, 3576, 6903576, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 38, 2320738.4688434978, 126348.38967116659, 37, 0, -5, 3624, 6903624, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 40, 2383186.1525343237, 448251.25888828852, 39, 0, -5, 3624, 6903624, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 42, 1981144.5525029898, -1903041.2384292425, 41, 0, -5, 3624, 6903624, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 44, 2138409.5568088419, -119451.50568778868, 43, 0, -5, 3624, 6903624, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 46, 2387491.1007072991, 34459.351848672632, 45, 0, -5, 3624, 6903624, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 48, 2035310.7411768832, -176076.78362264115, 47, 0, -5, 3624, 6903624, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 50, 2320738.4688434978, 126348.38967116659, 49, 0, -1, 4265, 6904265, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 52, 2383186.1525343237, 448251.25888828852, 51, 0, -1, 4265, 6904265, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 54, 1981144.5525029898, -1903041.2384292425, 53, 0, -1, 4265, 6904265, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 56, 2138409.5568088419, -119451.50568778868, 55, 0, -1, 4265, 6904265, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 58, 2387491.1007072991, 34459.351848672632, 57, 0, -1, 4265, 6904265, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 60, 2035310.7411768832, -176076.78362264115, 59, 0, -1, 4265, 6904265, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 62, 2320738.4688434978, 126348.38967116659, 61, 0, -1, 4355, 6904355, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 64, 2383186.1525343237, 448251.25888828852, 63, 0, -1, 4355, 6904355, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 66, 1981144.5525029898, -1903041.2384292425, 65, 0, -1, 4355, 6904355, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 68, 2138409.5568088419, -119451.50568778868, 67, 0, -1, 4355, 6904355, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 70, 2387491.1007072991, 34459.351848672632, 69, 0, -1, 4355, 6904355, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 72, 2035310.7411768832, -176076.78362264115, 71, 0, -1, 4355, 6904355, 450000);
+INSERT 0 1
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 0, 2138409.5568088419, -119451.50568778868, 0, 0, 0, 0, 7200000, 0);
+INSERT 0 1
+WITH                      
+customer_data AS (SELECT * FROM jet_customers),
+pickups AS (
+    SELECT id, demand, x as p_x, y as p_y, opentime as p_open, closetime as p_close, servicetime as p_service
+    FROM  customer_data WHERE pindex = 0 AND id != 0
+),
+deliveries AS (
+    SELECT pindex AS id, x as d_x, y as d_y, opentime as d_open, closetime as d_close, servicetime as d_service
+    FROM  customer_data WHERE dindex = 0 AND id != 0
+)
+SELECT * INTO jet_orders FROM pickups JOIN deliveries USING(id) ORDER BY pickups.id;
+SELECT 36
+WITH
+customer_data AS (select * from jet_customers)
+SELECT id, x AS start_x, y AS start_y,
+    opentime AS start_open, closetime AS start_close, 
+    5 AS capacity,  10  AS number INTO jet_vehicles
+FROM customer_data WHERE id = 0 LIMIT 1;
+SELECT 1
+SELECT *
+FROM _pgr_pickDeliverEuclidean(
+    $$ SELECT * from jet_orders $$,
+    $$ SELECT * FROM jet_vehicles $$
+)
+ROLLBACK;
+ seq | vehicle_number | vehicle_id | vehicle_seq | order_id | stop_type | cargo |   travel_time    |   arrival_time   | wait_time | service_time |  departure_time  
+-----+----------------+------------+-------------+----------+-----------+-------+------------------+------------------+-----------+--------------+------------------
+   1 |              1 |          0 |           1 |       -1 |         1 |     0 |                0 |                0 |         0 |            0 |                0
+   2 |              1 |          0 |           2 |       43 |         2 |     5 |                0 |                0 |      3624 |       450000 |           453624
+   3 |              1 |          0 |           3 |       43 |         3 |     0 |                0 |           453624 |         0 |       450000 |           903624
+   4 |              1 |          0 |           4 |       47 |         2 |     5 |                0 |           903624 |         0 |       450000 |          1353624
+   5 |              1 |          0 |           5 |       67 |         3 |     4 |                0 |          1353624 |         0 |       450000 |          1803624
+   6 |              1 |          0 |           6 |       67 |         2 |     5 |  117625.62597458 | 1921249.62597458 |         0 |       450000 | 2371249.62597458
+   7 |              1 |          0 |           7 |       47 |         3 |     0 |                0 | 2371249.62597458 |         0 |       450000 | 2821249.62597458
+   8 |              1 |          0 |           8 |       -1 |         6 |     0 |  117625.62597458 | 2938875.25194916 |         0 |            0 | 2938875.25194916
+   9 |              2 |          0 |           1 |       -1 |         1 |     0 |                0 |                0 |         0 |            0 |                0
+  10 |              2 |          0 |           2 |       21 |         2 |     4 | 618224.886851279 | 618224.886851279 |         0 |       450000 | 1068224.88685128
+  11 |              2 |          0 |           3 |       51 |         3 |     3 |                0 | 1068224.88685128 |         0 |       450000 | 1518224.88685128
+  12 |              2 |          0 |           4 |       55 |         2 |     4 |  413814.30003113 | 1932039.18688241 |         0 |       450000 | 2382039.18688241
+  13 |              2 |          0 |           5 |       51 |         2 |     5 |                0 | 2382039.18688241 |         0 |       450000 | 2832039.18688241
+  14 |              2 |          0 |           6 |       21 |         3 |     1 |                0 | 2832039.18688241 |         0 |       450000 | 3282039.18688241
+  15 |              2 |          0 |           7 |       55 |         3 |     0 | 292797.144074952 | 3574836.33095736 |         0 |       450000 | 4024836.33095736
+  16 |              2 |          0 |           8 |       -1 |         6 |     0 |                0 | 4024836.33095736 |         0 |            0 | 4024836.33095736
+  17 |              3 |          0 |           1 |       -1 |         1 |     0 |                0 |                0 |         0 |            0 |                0
+  18 |              3 |          0 |           2 |        3 |         2 |     4 | 306041.534309013 | 306041.534309013 |         0 |       450000 | 756041.534309013
+  19 |              3 |          0 |           3 |       13 |         3 |     0 |                0 | 756041.534309013 |         0 |       450000 | 1206041.53430901
+  20 |              3 |          0 |           4 |       13 |         2 |     4 | 327904.209196169 | 1533945.74350518 |         0 |       450000 | 1983945.74350518
+  21 |              3 |          0 |           5 |        3 |         3 |     0 |                0 | 1983945.74350518 |         0 |       450000 | 2433945.74350518
+  22 |              3 |          0 |           6 |        7 |         2 |     4 | 327904.209196169 | 2761849.95270135 |         0 |       450000 | 3211849.95270135
+  23 |              3 |          0 |           7 |        7 |         3 |     0 | 306041.534309013 | 3517891.48701036 |         0 |       450000 | 3967891.48701036
+  24 |              3 |          0 |           8 |       -1 |         6 |     0 |                0 | 3967891.48701036 |         0 |            0 | 3967891.48701036
+  25 |              4 |          0 |           1 |       -1 |         1 |     0 |                0 |                0 |         0 |            0 |                0
+  26 |              4 |          0 |           2 |       39 |         2 |     5 |                0 |                0 |      3624 |       450000 |           453624
+  27 |              4 |          0 |           3 |       15 |         3 |     1 | 618224.886851279 | 1071848.88685128 |         0 |       450000 | 1521848.88685128
+  28 |              4 |          0 |           4 |       15 |         2 |     5 |                0 | 1521848.88685128 |         0 |       450000 | 1971848.88685128
+  29 |              4 |          0 |           5 |       39 |         3 |     0 |                0 | 1971848.88685128 |         0 |       450000 | 2421848.88685128
+  30 |              4 |          0 |           6 |       -1 |         6 |     0 | 618224.886851279 | 3040073.77370256 |         0 |            0 | 3040073.77370256
+  31 |              5 |          0 |           1 |       -1 |         1 |     0 |                0 |                0 |         0 |            0 |                0
+  32 |              5 |          0 |           2 |       37 |         2 |     5 |                0 |                0 |      3624 |       450000 |           453624
+  33 |              5 |          0 |           3 |        9 |         3 |     1 | 292797.144074952 | 746421.144074952 |         0 |       450000 | 1196421.14407495
+  34 |              5 |          0 |           4 |        9 |         2 |     5 | 113576.005972599 | 1309997.15004755 |         0 |       450000 | 1759997.15004755
+  35 |              5 |          0 |           5 |        1 |         3 |     1 |                0 | 1759997.15004755 |         0 |       450000 | 2209997.15004755
+  36 |              5 |          0 |           6 |        1 |         2 |     5 |                0 | 2209997.15004755 |         0 |       450000 | 2659997.15004755
+  37 |              5 |          0 |           7 |       37 |         3 |     0 |                0 | 2659997.15004755 |         0 |       450000 | 3109997.15004755
+  38 |              5 |          0 |           8 |       -1 |         6 |     0 | 306041.534309013 | 3416038.68435656 |         0 |            0 | 3416038.68435656
+  39 |              6 |          0 |           1 |       -1 |         1 |     0 |                0 |                0 |         0 |            0 |                0
+  40 |              6 |          0 |           2 |       45 |         2 |     5 |                0 |                0 |      3624 |       450000 |           453624
+  41 |              6 |          0 |           3 |       57 |         3 |     4 | 292797.144074952 | 746421.144074952 |         0 |       450000 | 1196421.14407495
+  42 |              6 |          0 |           4 |       57 |         2 |     5 |                0 | 1196421.14407495 |         0 |       450000 | 1646421.14407495
+  43 |              6 |          0 |           5 |       45 |         3 |     0 |                0 | 1646421.14407495 |         0 |       450000 | 2096421.14407495
+  44 |              6 |          0 |           6 |       -1 |         6 |     0 | 292797.144074952 |  2389218.2881499 |         0 |            0 |  2389218.2881499
+  45 |              7 |          0 |           1 |       -1 |         1 |     0 |                0 |                0 |         0 |            0 |                0
+  46 |              7 |          0 |           2 |       31 |         2 |     2 | 1790509.59682434 | 1790509.59682434 |         0 |       450000 | 2240509.59682434
+  47 |              7 |          0 |           3 |       27 |         2 |     4 |                0 | 2240509.59682434 |         0 |       450000 | 2690509.59682434
+  48 |              7 |          0 |           4 |       27 |         3 |     2 | 2385416.91452406 | 5075926.51134839 |         0 |       450000 | 5525926.51134839
+  49 |              7 |          0 |           5 |       31 |         3 |     0 | 618224.886851279 | 6144151.39819967 |         0 |       450000 | 6594151.39819967
+  50 |              7 |          0 |           6 |       -1 |         6 |     0 |                0 | 6594151.39819967 |         0 |            0 | 6594151.39819967
+  51 |              8 |          0 |           1 |       -1 |         1 |     0 |                0 |                0 |         0 |            0 |                0
+  52 |              8 |          0 |           2 |       65 |         2 |     1 |  117625.62597458 |  117625.62597458 |         0 |       450000 |  567625.62597458
+  53 |              8 |          0 |           3 |       29 |         2 |     3 | 1727813.70643971 | 2295439.33241429 |         0 |       450000 | 2745439.33241429
+  54 |              8 |          0 |           4 |       35 |         2 |     5 |                0 | 2745439.33241429 |         0 |       450000 | 3195439.33241429
+  55 |              8 |          0 |           5 |       29 |         3 |     3 |                0 | 3195439.33241429 |         0 |       450000 | 3645439.33241429
+  56 |              8 |          0 |           6 |       65 |         3 |     2 |                0 | 3645439.33241429 |         0 |       450000 | 4095439.33241429
+  57 |              8 |          0 |           7 |       35 |         3 |     0 | 1727813.70643971 | 5823253.03885399 |         0 |       450000 | 6273253.03885399
+  58 |              8 |          0 |           8 |       -1 |         6 |     0 |  117625.62597458 | 6390878.66482857 |         0 |            0 | 6390878.66482857
+  59 |              9 |          0 |           1 |       -1 |         1 |     0 |                0 |                0 |         0 |            0 |                0
+  60 |              9 |          0 |           2 |       61 |         2 |     1 |  117625.62597458 |  117625.62597458 |         0 |       450000 |  567625.62597458
+  61 |              9 |          0 |           3 |       33 |         2 |     3 | 1727813.70643971 | 2295439.33241429 |         0 |       450000 | 2745439.33241429
+  62 |              9 |          0 |           4 |       25 |         2 |     5 |                0 | 2745439.33241429 |         0 |       450000 | 3195439.33241429
+  63 |              9 |          0 |           5 |       33 |         3 |     3 | 1979653.01367811 |  5175092.3460924 |         0 |       450000 |  5625092.3460924
+  64 |              9 |          0 |           6 |       25 |         3 |     1 | 113576.005972599 |   5738668.352065 |         0 |       450000 |   6188668.352065
+  65 |              9 |          0 |           7 |       61 |         3 |     0 |                0 |   6188668.352065 |         0 |       450000 |   6638668.352065
+  66 |              9 |          0 |           8 |       -1 |         6 |     0 | 306041.534309013 | 6944709.88637401 |         0 |            0 | 6944709.88637401
+  67 |             10 |          0 |           1 |       -1 |         1 |     0 |                0 |                0 |         0 |            0 |                0
+  68 |             10 |          0 |           2 |       63 |         2 |     1 |  117625.62597458 |  117625.62597458 |         0 |       450000 |  567625.62597458
+  69 |             10 |          0 |           3 |       59 |         3 |     0 |                0 |  567625.62597458 |         0 |       450000 | 1017625.62597458
+  70 |             10 |          0 |           4 |       59 |         2 |     1 | 410312.649059432 | 1427938.27503401 |         0 |       450000 | 1877938.27503401
+  71 |             10 |          0 |           5 |       19 |         2 |     5 |  413814.30003113 | 2291752.57506514 |         0 |       450000 | 2741752.57506514
+  72 |             10 |          0 |           6 |       63 |         3 |     4 |                0 | 2741752.57506514 |         0 |       450000 | 3191752.57506514
+  73 |             10 |          0 |           7 |       19 |         3 |     0 | 618224.886851279 | 3809977.46191642 |         0 |       450000 | 4259977.46191642
+  74 |             10 |          0 |           8 |       -1 |         6 |     0 |                0 | 4259977.46191642 |         0 |            0 | 4259977.46191642
+  75 |             11 |         -1 |           1 |       -1 |         1 |     0 |                0 |                0 |         0 |            0 |                0
+  76 |             11 |         -1 |           2 |        5 |         2 |     4 | 306041.534309013 | 306041.534309013 |         0 |       450000 | 756041.534309013
+  77 |             11 |         -1 |           3 |       49 |         3 |     3 |                0 | 756041.534309013 |         0 |       450000 | 1206041.53430901
+  78 |             11 |         -1 |           4 |       49 |         2 |     4 | 113576.005972599 | 1319617.54028161 |         0 |       450000 | 1769617.54028161
+  79 |             11 |         -1 |           5 |       53 |         2 |     5 |                0 | 1769617.54028161 |         0 |       450000 | 2219617.54028161
+  80 |             11 |         -1 |           6 |        5 |         3 |     1 | 1979653.01367811 | 4199270.55395972 |         0 |       450000 | 4649270.55395972
+  81 |             11 |         -1 |           7 |       53 |         3 |     0 |                0 | 4649270.55395972 |         0 |       450000 | 5099270.55395972
+  82 |             11 |         -1 |           8 |       -1 |         6 |     0 | 1790509.59682434 | 6889780.15078406 |         0 |            0 | 6889780.15078406
+  83 |             12 |         -1 |           1 |       -1 |         1 |     0 |                0 |                0 |         0 |            0 |                0
+  84 |             12 |         -1 |           2 |       71 |         2 |     1 |  117625.62597458 |  117625.62597458 |         0 |       450000 |  567625.62597458
+  85 |             12 |         -1 |           3 |       71 |         3 |     0 |                0 |  567625.62597458 |         0 |       450000 | 1017625.62597458
+  86 |             12 |         -1 |           4 |       69 |         2 |     1 |                0 | 1017625.62597458 |         0 |       450000 | 1467625.62597458
+  87 |             12 |         -1 |           5 |       69 |         3 |     0 | 410312.649059432 | 1877938.27503401 |         0 |       450000 | 2327938.27503401
+  88 |             12 |         -1 |           6 |       -1 |         6 |     0 | 292797.144074952 | 2620735.41910896 |         0 |            0 | 2620735.41910896
+  89 |             13 |         -1 |           1 |       -1 |         1 |     0 |                0 |                0 |         0 |            0 |                0
+  90 |             13 |         -1 |           2 |       41 |         2 |     5 |                0 |                0 |      3624 |       450000 |           453624
+  91 |             13 |         -1 |           3 |       11 |         2 |     9 | 306041.534309013 | 759665.534309013 |         0 |       450000 | 1209665.53430901
+  92 |             13 |         -1 |           4 |       23 |         2 |    13 | 327904.209196169 | 1537569.74350518 |         0 |       450000 | 1987569.74350518
+  93 |             13 |         -1 |           5 |       17 |         2 |    17 |                0 | 1987569.74350518 |         0 |       450000 | 2437569.74350518
+  94 |             13 |         -1 |           6 |       23 |         3 |    13 | 714704.698804085 | 3152274.44230927 |         0 |       450000 | 3602274.44230927
+  95 |             13 |         -1 |           7 |       11 |         3 |     9 |                0 | 3602274.44230927 |         0 |       450000 | 4052274.44230927
+  96 |             13 |         -1 |           8 |       41 |         3 |     4 | 1727813.70643971 | 5780088.14874897 |         0 |       450000 | 6230088.14874897
+  97 |             13 |         -1 |           9 |       17 |         3 |     0 |                0 | 6230088.14874897 |         0 |       450000 | 6680088.14874897
+  98 |             13 |         -1 |          10 |       -1 |         6 |     0 | 1790509.59682434 | 8470597.74557331 |         0 |            0 | 8470597.74557331
+  99 |             -2 |          0 |           0 |       -1 |        -1 |    -1 | 29529644.5429109 |               -1 |     18120 |     32400000 | 61947764.5429109
+(99 rows)
+
diff --git a/src/pickDeliver/test/jet_customers1.test.sql b/src/pickDeliver/test/jet_customers1.test.sql
new file mode 100644
index 0000000..771875c
--- /dev/null
+++ b/src/pickDeliver/test/jet_customers1.test.sql
@@ -0,0 +1,120 @@
+
+-- drop table if exists jet_customers;
+-- drop table if exists jet_orders;
+-- drop table if exists jet_vehicles;
+
+
+CREATE TABLE jet_customers (
+    airport character varying,
+    id integer,
+    x double precision,
+    y double precision,
+    pindex integer,
+    dindex integer,
+    demand integer,
+    opentime double precision,
+    closetime double precision,
+    servicetime double precision
+);
+
+
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 1, 2320738.4688434978, 126348.38967116659, 0, 2, 4, 3448, 2853448, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 3, 2320738.4688434978, 126348.38967116659, 0, 4, 4, 3448, 2853448, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 5, 2320738.4688434978, 126348.38967116659, 0, 6, 4, 3448, 2853448, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 7, 2320738.4688434978, 126348.38967116659, 0, 8, 4, 3448, 2853448, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 9, 2320738.4688434978, 126348.38967116659, 0, 10, 4, 3448, 2853448, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 11, 2320738.4688434978, 126348.38967116659, 0, 12, 4, 3448, 2853448, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 13, 2383186.1525343237, 448251.25888828852, 0, 14, 4, 3463, 2853463, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 15, 2383186.1525343237, 448251.25888828852, 0, 16, 4, 3463, 2853463, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 17, 2383186.1525343237, 448251.25888828852, 0, 18, 4, 3463, 2853463, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 19, 2383186.1525343237, 448251.25888828852, 0, 20, 4, 3463, 2853463, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 21, 2383186.1525343237, 448251.25888828852, 0, 22, 4, 3463, 2853463, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 23, 2383186.1525343237, 448251.25888828852, 0, 24, 4, 3463, 2853463, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 25, 1981144.5525029898, -1903041.2384292425, 0, 26, 2, 3576, 2853576, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 27, 1981144.5525029898, -1903041.2384292425, 0, 28, 2, 3576, 2853576, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 29, 1981144.5525029898, -1903041.2384292425, 0, 30, 2, 3576, 2853576, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 31, 1981144.5525029898, -1903041.2384292425, 0, 32, 2, 3576, 2853576, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 33, 1981144.5525029898, -1903041.2384292425, 0, 34, 2, 3576, 2853576, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 35, 1981144.5525029898, -1903041.2384292425, 0, 36, 2, 3576, 2853576, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 37, 2138409.5568088419, -119451.50568778868, 0, 38, 5, 3624, 2853624, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 39, 2138409.5568088419, -119451.50568778868, 0, 40, 5, 3624, 2853624, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 41, 2138409.5568088419, -119451.50568778868, 0, 42, 5, 3624, 2853624, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 43, 2138409.5568088419, -119451.50568778868, 0, 44, 5, 3624, 2853624, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 45, 2138409.5568088419, -119451.50568778868, 0, 46, 5, 3624, 2853624, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 47, 2138409.5568088419, -119451.50568778868, 0, 48, 5, 3624, 2853624, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 49, 2387491.1007072991, 34459.351848672632, 0, 50, 1, 4265, 2854265, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 51, 2387491.1007072991, 34459.351848672632, 0, 52, 1, 4265, 2854265, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 53, 2387491.1007072991, 34459.351848672632, 0, 54, 1, 4265, 2854265, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 55, 2387491.1007072991, 34459.351848672632, 0, 56, 1, 4265, 2854265, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 57, 2387491.1007072991, 34459.351848672632, 0, 58, 1, 4265, 2854265, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 59, 2387491.1007072991, 34459.351848672632, 0, 60, 1, 4265, 2854265, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 61, 2035310.7411768832, -176076.78362264115, 0, 62, 1, 4355, 2854355, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 63, 2035310.7411768832, -176076.78362264115, 0, 64, 1, 4355, 2854355, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 65, 2035310.7411768832, -176076.78362264115, 0, 66, 1, 4355, 2854355, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 67, 2035310.7411768832, -176076.78362264115, 0, 68, 1, 4355, 2854355, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 69, 2035310.7411768832, -176076.78362264115, 0, 70, 1, 4355, 2854355, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 71, 2035310.7411768832, -176076.78362264115, 0, 72, 1, 4355, 2854355, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 2, 2320738.4688434978, 126348.38967116659, 1, 0, -4, 3448, 6903448, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 4, 2383186.1525343237, 448251.25888828852, 3, 0, -4, 3448, 6903448, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 6, 1981144.5525029898, -1903041.2384292425, 5, 0, -4, 3448, 6903448, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 8, 2138409.5568088419, -119451.50568778868, 7, 0, -4, 3448, 6903448, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 10, 2387491.1007072991, 34459.351848672632, 9, 0, -4, 3448, 6903448, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 12, 2035310.7411768832, -176076.78362264115, 11, 0, -4, 3448, 6903448, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 14, 2320738.4688434978, 126348.38967116659, 13, 0, -4, 3463, 6903463, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 16, 2383186.1525343237, 448251.25888828852, 15, 0, -4, 3463, 6903463, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 18, 1981144.5525029898, -1903041.2384292425, 17, 0, -4, 3463, 6903463, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 20, 2138409.5568088419, -119451.50568778868, 19, 0, -4, 3463, 6903463, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 22, 2387491.1007072991, 34459.351848672632, 21, 0, -4, 3463, 6903463, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 24, 2035310.7411768832, -176076.78362264115, 23, 0, -4, 3463, 6903463, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 26, 2320738.4688434978, 126348.38967116659, 25, 0, -2, 3576, 6903576, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 28, 2383186.1525343237, 448251.25888828852, 27, 0, -2, 3576, 6903576, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 30, 1981144.5525029898, -1903041.2384292425, 29, 0, -2, 3576, 6903576, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 32, 2138409.5568088419, -119451.50568778868, 31, 0, -2, 3576, 6903576, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 34, 2387491.1007072991, 34459.351848672632, 33, 0, -2, 3576, 6903576, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 36, 2035310.7411768832, -176076.78362264115, 35, 0, -2, 3576, 6903576, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 38, 2320738.4688434978, 126348.38967116659, 37, 0, -5, 3624, 6903624, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 40, 2383186.1525343237, 448251.25888828852, 39, 0, -5, 3624, 6903624, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 42, 1981144.5525029898, -1903041.2384292425, 41, 0, -5, 3624, 6903624, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 44, 2138409.5568088419, -119451.50568778868, 43, 0, -5, 3624, 6903624, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 46, 2387491.1007072991, 34459.351848672632, 45, 0, -5, 3624, 6903624, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 48, 2035310.7411768832, -176076.78362264115, 47, 0, -5, 3624, 6903624, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 50, 2320738.4688434978, 126348.38967116659, 49, 0, -1, 4265, 6904265, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 52, 2383186.1525343237, 448251.25888828852, 51, 0, -1, 4265, 6904265, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 54, 1981144.5525029898, -1903041.2384292425, 53, 0, -1, 4265, 6904265, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 56, 2138409.5568088419, -119451.50568778868, 55, 0, -1, 4265, 6904265, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 58, 2387491.1007072991, 34459.351848672632, 57, 0, -1, 4265, 6904265, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 60, 2035310.7411768832, -176076.78362264115, 59, 0, -1, 4265, 6904265, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 62, 2320738.4688434978, 126348.38967116659, 61, 0, -1, 4355, 6904355, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 64, 2383186.1525343237, 448251.25888828852, 63, 0, -1, 4355, 6904355, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 66, 1981144.5525029898, -1903041.2384292425, 65, 0, -1, 4355, 6904355, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 68, 2138409.5568088419, -119451.50568778868, 67, 0, -1, 4355, 6904355, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 70, 2387491.1007072991, 34459.351848672632, 69, 0, -1, 4355, 6904355, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 72, 2035310.7411768832, -176076.78362264115, 71, 0, -1, 4355, 6904355, 450000);
+INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 0, 2138409.5568088419, -119451.50568778868, 0, 0, 0, 0, 7200000, 0);
+
+
+-- converting data to use euclidean
+WITH                      
+customer_data AS (SELECT * FROM jet_customers),
+pickups AS (
+    SELECT id, demand, x as p_x, y as p_y, opentime as p_open, closetime as p_close, servicetime as p_service
+    FROM  customer_data WHERE pindex = 0 AND id != 0
+),
+deliveries AS (
+    SELECT pindex AS id, x as d_x, y as d_y, opentime as d_open, closetime as d_close, servicetime as d_service
+    FROM  customer_data WHERE dindex = 0 AND id != 0
+)
+SELECT * INTO jet_orders FROM pickups JOIN deliveries USING(id) ORDER BY pickups.id;
+
+WITH
+customer_data AS (select * from jet_customers)
+SELECT id, x AS start_x, y AS start_y,
+    opentime AS start_open, closetime AS start_close, 
+    5 AS capacity,  10  AS number INTO jet_vehicles
+FROM customer_data WHERE id = 0 LIMIT 1;
+
+SELECT *
+FROM _pgr_pickDeliverEuclidean(
+    $$ SELECT * from jet_orders $$,
+    $$ SELECT * FROM jet_vehicles $$
+)
diff --git a/src/pickDeliver/test/notTestingYet/pickDeliver-innerquery.sql b/src/pickDeliver/test/notTestingYet/pickDeliver-innerquery.sql
new file mode 100644
index 0000000..b7e7d9a
--- /dev/null
+++ b/src/pickDeliver/test/notTestingYet/pickDeliver-innerquery.sql
@@ -0,0 +1,391 @@
+\i setup.sql
+
+SELECT plan(122);
+
+SELECT todo_start('not ready yet');
+
+/* A call looks like this
+SELECT * INTO pickDeliverResults FROM _pgr_pickdeliver(
+    $$SELECT * FROM orders ORDER BY id$$,
+    $$SELECT * FROM vehicles ORDER BY id$$,
+    $$SELECT * FROM dist_matrix$$,
+    30);
+*/
+
+SELECT has_function('_pgr_pickdeliver',
+    ARRAY['text', 'text', 'text', 'integer']);
+
+SELECT function_returns('_pgr_pickdeliver',
+    ARRAY['text', 'text', 'text', 'integer'],
+    'setof record');
+
+/* testing the pick/deliver orders*/
+CREATE OR REPLACE FUNCTION test_anyInteger_orders(fn TEXT, params TEXT[], parameter TEXT) 
+RETURNS SETOF TEXT AS
+$BODY$
+DECLARE
+start_sql TEXT;
+end_sql TEXT;
+query TEXT;
+p TEXT;
+BEGIN
+    start_sql = 'select * from ' || fn || '($$ SELECT ';
+    FOREACH  p IN ARRAY params LOOP
+        IF p = parameter THEN CONTINUE;
+        END IF;
+        start_sql = start_sql || p || ', ';
+    END LOOP;
+    end_sql = ' FROM orders WHERE id = 11$$,
+        $$SELECT * FROM vehicles ORDER BY id$$,
+        $$SELECT * FROM dist_matrix$$,
+        30)';
+    
+    query := start_sql || parameter || '::SMALLINT ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+    
+    query := start_sql || parameter || '::INTEGER ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+    
+    query := start_sql || parameter || '::BIGINT ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+
+    query := start_sql || parameter || '::REAL ' || end_sql;
+    RETURN query SELECT throws_ok(query);
+
+    query := start_sql || parameter || '::FLOAT8 ' || end_sql;
+    RETURN query SELECT throws_ok(query);
+END;
+$BODY$ LANGUAGE plpgsql;
+
+/* testing the pick/deliver orders*/
+CREATE OR REPLACE FUNCTION test_anyNumerical_orders(fn TEXT, params TEXT[], parameter TEXT) 
+RETURNS SETOF TEXT AS
+$BODY$
+DECLARE
+start_sql TEXT;
+end_sql TEXT;
+query TEXT;
+p TEXT;
+BEGIN
+    start_sql = 'select * from ' || fn || '($$ SELECT ';
+    FOREACH  p IN ARRAY params LOOP
+        IF p = parameter THEN CONTINUE;
+        END IF;
+        start_sql = start_sql || p || ', ';
+    END LOOP;
+    end_sql = ' FROM orders WHERE id = 11$$,
+        $$SELECT * FROM vehicles ORDER BY id$$,
+        $$SELECT * FROM dist_matrix$$,
+        30)';
+    
+    query := start_sql || parameter || '::SMALLINT ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+    
+    query := start_sql || parameter || '::INTEGER ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+    
+    query := start_sql || parameter || '::BIGINT ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+
+    query := start_sql || parameter || '::REAL ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+
+    query := start_sql || parameter || '::FLOAT8 ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+END;
+$BODY$ LANGUAGE plpgsql;
+
+/*
+testing the pick/deliver vehicles
+*/
+CREATE OR REPLACE FUNCTION test_anyInteger_vehicles(fn TEXT, params TEXT[], parameter TEXT)
+RETURNS SETOF TEXT AS
+$BODY$
+DECLARE
+start_sql TEXT;
+end_sql TEXT;
+query TEXT;
+p TEXT;
+BEGIN
+    start_sql = 'SELECT * FROM ' || fn || '($$ SELECT * FROM orders WHERE id = 11$$, $$SELECT ';
+
+    FOREACH  p IN ARRAY params LOOP
+        IF p = parameter THEN CONTINUE;
+        END IF;
+        start_sql = start_sql || p || ', ';
+    END LOOP;
+    end_sql = ' FROM vehicles $$,
+        $$SELECT * FROM dist_matrix$$,
+        30)';
+
+    query := start_sql || parameter || '::SMALLINT ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+
+    query := start_sql || parameter || '::INTEGER ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+
+    query := start_sql || parameter || '::BIGINT ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+
+    query := start_sql || parameter || '::REAL ' || end_sql;
+    RETURN query SELECT throws_ok(query);
+
+    query := start_sql || parameter || '::FLOAT8 ' || end_sql;
+    RETURN query SELECT throws_ok(query);
+END;
+$BODY$ LANGUAGE plpgsql;
+
+/*
+testing the pick/deliver vehicles
+ */
+CREATE OR REPLACE FUNCTION test_anyNumerical_vehicles(fn TEXT, params TEXT[], parameter TEXT)
+RETURNS SETOF TEXT AS
+$BODY$
+DECLARE
+start_sql TEXT;
+end_sql TEXT;
+query TEXT;
+p TEXT;
+BEGIN
+    start_sql = 'SELECT * FROM ' || fn || '($$ SELECT * FROM orders WHERE id = 11$$, $$ SELECT ';
+    FOREACH  p IN ARRAY params LOOP
+        IF p = parameter THEN CONTINUE;
+        END IF;
+        start_sql = start_sql || p || ', ';
+    END LOOP;
+    end_sql = ' FROM vehicles $$,
+        $$SELECT * FROM dist_matrix$$,
+        30)';
+
+    query := start_sql || parameter || '::SMALLINT ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+
+    query := start_sql || parameter || '::INTEGER ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+
+    query := start_sql || parameter || '::BIGINT ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+
+    query := start_sql || parameter || '::REAL ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+
+    query := start_sql || parameter || '::FLOAT8 ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+END;
+$BODY$ LANGUAGE plpgsql;
+
+
+/*
+testing the pick/deliver matrix
+*/
+CREATE OR REPLACE FUNCTION test_anyInteger_matrix(fn TEXT, params TEXT[], parameter TEXT)
+RETURNS SETOF TEXT AS
+$BODY$
+DECLARE
+start_sql TEXT;
+end_sql TEXT;
+query TEXT;
+p TEXT;
+BEGIN
+    start_sql = 'SELECT * FROM ' || fn || '(
+        $$ SELECT * FROM orders WHERE id = 11$$,
+        $$ SELECT * FROM vehicles $$,
+        $$ SELECT ';
+
+    FOREACH  p IN ARRAY params LOOP
+        IF p = parameter THEN CONTINUE;
+        END IF;
+        start_sql = start_sql || p || ', ';
+    END LOOP;
+    end_sql = ' FROM dist_matrix $$,
+        30)';
+
+    query := start_sql || parameter || '::SMALLINT ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+
+    query := start_sql || parameter || '::INTEGER ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+
+    query := start_sql || parameter || '::BIGINT ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+
+    query := start_sql || parameter || '::REAL ' || end_sql;
+    RETURN query SELECT throws_ok(query);
+
+    query := start_sql || parameter || '::FLOAT8 ' || end_sql;
+    RETURN query SELECT throws_ok(query);
+END;
+$BODY$ LANGUAGE plpgsql;
+
+/*
+testing the pick/deliver vehicles
+ */
+CREATE OR REPLACE FUNCTION test_anyNumerical_matrix(fn TEXT, params TEXT[], parameter TEXT)
+RETURNS SETOF TEXT AS
+$BODY$
+DECLARE
+start_sql TEXT;
+end_sql TEXT;
+query TEXT;
+p TEXT;
+BEGIN
+    start_sql = 'SELECT * FROM ' || fn || '(
+        $$ SELECT * FROM orders WHERE id = 11$$,
+        $$ SELECT * FROM vehicles $$,
+        $$ SELECT ';
+
+    FOREACH  p IN ARRAY params LOOP
+        IF p = parameter THEN CONTINUE;
+        END IF;
+        start_sql = start_sql || p || ', ';
+    END LOOP;
+    end_sql = ' FROM dist_matrix $$,
+        30)';
+
+    query := start_sql || parameter || '::SMALLINT ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+
+    query := start_sql || parameter || '::INTEGER ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+
+    query := start_sql || parameter || '::BIGINT ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+
+    query := start_sql || parameter || '::REAL ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+
+    query := start_sql || parameter || '::FLOAT8 ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+END;
+$BODY$ LANGUAGE plpgsql;
+
+
+SELECT test_anyInteger_orders('_pgr_pickdeliver',
+    ARRAY['id', 'demand',
+    'pick_node_id', 'pick_open', 'pick_close', 'pick_service',
+    'deliver_node_id', 'deliver_open', 'deliver_close', 'deliver_service'],
+    'id');
+SELECT test_anynumerical_orders('_pgr_pickdeliver',
+    ARRAY['id', 'demand',
+    'pick_node_id', 'pick_open', 'pick_close', 'pick_service',
+    'deliver_node_id', 'deliver_open', 'deliver_close', 'deliver_service'],
+    'demand');
+
+SELECT test_anyInteger_orders('_pgr_pickdeliver',
+    ARRAY['id', 'demand',
+    'pick_node_id', 'pick_open', 'pick_close', 'pick_service',
+    'deliver_node_id', 'deliver_open', 'deliver_close', 'deliver_service'],
+    'pick_node_id');
+SELECT test_anynumerical_orders('_pgr_pickdeliver',
+    ARRAY['id', 'demand',
+    'pick_node_id', 'pick_open', 'pick_close', 'pick_service',
+    'deliver_node_id', 'deliver_open', 'deliver_close', 'deliver_service'],
+    'pick_open');
+SELECT test_anynumerical_orders('_pgr_pickdeliver',
+    ARRAY['id', 'demand',
+    'pick_node_id', 'pick_open', 'pick_close', 'pick_service',
+    'deliver_node_id', 'deliver_open', 'deliver_close', 'deliver_service'],
+    'pick_close');
+SELECT test_anynumerical_orders('_pgr_pickdeliver',
+    ARRAY['id', 'demand',
+    'pick_node_id', 'pick_open', 'pick_close', 'pick_service',
+    'deliver_node_id', 'deliver_open', 'deliver_close', 'deliver_service'],
+    'pick_service');
+
+SELECT test_anyInteger_orders('_pgr_pickdeliver',
+    ARRAY['id', 'demand',
+    'pick_node_id', 'pick_open', 'pick_close', 'pick_service',
+    'deliver_node_id', 'deliver_open', 'deliver_close', 'deliver_service'],
+    'deliver_node_id');
+SELECT test_anynumerical_orders('_pgr_pickdeliver',
+    ARRAY['id', 'demand',
+    'pick_node_id', 'pick_open', 'pick_close', 'pick_service',
+    'deliver_node_id', 'deliver_open', 'deliver_close', 'deliver_service'],
+    'deliver_open');
+SELECT test_anynumerical_orders('_pgr_pickdeliver',
+    ARRAY['id', 'demand',
+    'pick_node_id', 'pick_open', 'pick_close', 'pick_service',
+    'deliver_node_id', 'deliver_open', 'deliver_close', 'deliver_service'],
+    'deliver_close');
+SELECT test_anynumerical_orders('_pgr_pickdeliver',
+    ARRAY['id', 'demand',
+    'pick_node_id', 'pick_open', 'pick_close', 'pick_service',
+    'deliver_node_id', 'deliver_open', 'deliver_close', 'deliver_service'],
+    'deliver_service');
+
+/* Currently this are not used TODO add when they are used
+    'end_x', 'end_y', 'end_open', 'end_close', 'end_service'],
+    'speed' is optional defaults to 1
+    'start_service' is optional defaults to 0
+*/
+/*
+without optional: number
+*/
+SELECT test_anyInteger_vehicles('_pgr_pickdeliver',
+    ARRAY['id', 'capacity', 
+    'start_node_id', 'start_open', 'start_close'],
+    'id');
+SELECT test_anyNumerical_vehicles('_pgr_pickdeliver',
+    ARRAY['id', 'capacity', 
+    'start_node_id', 'start_open', 'start_close'],
+    'capacity');
+SELECT test_anyInteger_vehicles('_pgr_pickdeliver',
+    ARRAY['id', 'capacity', 
+    'start_node_id', 'start_open', 'start_close'],
+    'start_node_id');
+SELECT test_anyNumerical_vehicles('_pgr_pickdeliver',
+    ARRAY['id', 'capacity', 
+    'start_node_id', 'start_open', 'start_close'],
+    'start_open');
+SELECT test_anyNumerical_vehicles('_pgr_pickdeliver',
+    ARRAY['id', 'capacity', 
+    'start_node_id', 'start_open', 'start_close'],
+    'start_close');
+
+
+/*
+with optional: number
+*/
+SELECT test_anyInteger_vehicles('_pgr_pickdeliver',
+    ARRAY['id', 'capacity', 'number',
+    'start_node_id', 'start_open', 'start_close'],
+    'id');
+SELECT test_anyNumerical_vehicles('_pgr_pickdeliver',
+    ARRAY['id', 'capacity', 'number',
+    'start_node_id', 'start_open', 'start_close'],
+    'capacity');
+SELECT test_anyInteger_vehicles('_pgr_pickdeliver',
+    ARRAY['id', 'capacity', 'number',
+    'start_node_id', 'start_open', 'start_close'],
+    'number');
+SELECT test_anyInteger_vehicles('_pgr_pickdeliver',
+    ARRAY['id', 'capacity', 'number',
+    'start_node_id', 'start_open', 'start_close'],
+    'start_node_id');
+SELECT test_anyNumerical_vehicles('_pgr_pickdeliver',
+    ARRAY['id', 'capacity', 'number',
+    'start_node_id', 'start_open', 'start_close'],
+    'start_open');
+SELECT test_anyNumerical_vehicles('_pgr_pickdeliver',
+    ARRAY['id', 'capacity', 'number',
+    'start_node_id', 'start_open', 'start_close'],
+    'start_close');
+
+
+/*
+Testing the matrix
+*/
+SELECT test_anyInteger_matrix('_pgr_pickdeliver',
+    ARRAY['start_vid', 'end_vid', 'agg_cost'],
+    'start_vid');
+SELECT test_anyInteger_matrix('_pgr_pickdeliver',
+    ARRAY['start_vid', 'end_vid', 'agg_cost'],
+    'end_vid');
+SELECT test_anyNumerical_matrix('_pgr_pickdeliver',
+    ARRAY['start_vid', 'end_vid', 'agg_cost'],
+    'agg_cost');
+
+SELECT todo_end();
+
+SELECT finish();
+ROLLBACK;
diff --git a/src/pickDeliver/test/notTestingYet/pickDeliver-types_check.sql b/src/pickDeliver/test/notTestingYet/pickDeliver-types_check.sql
new file mode 100644
index 0000000..0244a94
--- /dev/null
+++ b/src/pickDeliver/test/notTestingYet/pickDeliver-types_check.sql
@@ -0,0 +1,55 @@
+
+\i setup.sql
+
+SELECT plan(3);
+
+SELECT todo_start('Nothing is really implemented yet');
+
+SELECT has_function('_pgr_pickdeliver', ARRAY['text','text', 'text', 'integer']);
+SELECT function_returns('_pgr_pickdeliver', ARRAY['text','text', 'text', 'integer'],'setof record');
+
+
+PREPARE expected_types AS
+SELECT
+'integer'::text AS t1,
+'integer'::text AS t2,
+'bigint'::text AS t3,
+'integer'::text AS t4,
+'bigint'::text AS t5,
+'integer'::text AS t6,
+'double precision'::text AS t7,
+'double precision'::text AS t8,
+'double precision'::text AS t9,
+'double precision'::text AS t10,
+'double precision'::text AS t11,
+'double precision'::text AS t12;
+
+SELECT * INTO pickDeliverResults FROM _pgr_pickdeliver(
+    $$SELECT * FROM orders WHERE id in (11) $$,
+    $$SELECT * FROM vehicles $$,
+    $$SELECT * FROM dist_matrix $$,
+    30);
+
+
+PREPARE real_types AS
+SELECT pg_typeof(seq)::text AS t1,
+pg_typeof(vehicle_number)::text AS t2,
+pg_typeof(vehicle_id)::text AS t3,
+pg_typeof(vehicle_seq)::text AS t4,
+pg_typeof(order_id)::text AS t5,
+pg_typeof(stop_type)::text AS t6,
+pg_typeof(cargo)::text AS t7,
+pg_typeof(travel_time)::text AS t8,
+pg_typeof(arrival_time)::text AS t9,
+pg_typeof(wait_time)::TEXT AS t10,
+pg_typeof(service_time)::TEXT AS t11,
+pg_typeof(departure_time)::TEXT AS t12
+FROM  pickdeliverResults LIMIT 1;
+
+
+SELECT set_eq('expected_types', 'real_types','_pgr_pickdeliver: SHOULD RETURN expected columns names & types');
+
+SELECT todo_end();
+
+SELECT finish();
+ROLLBACK;
diff --git a/src/pickDeliver/test/notTestingYet/pickDeliver_types_check.sql b/src/pickDeliver/test/notTestingYet/pickDeliver_types_check.sql
new file mode 100644
index 0000000..bf96129
--- /dev/null
+++ b/src/pickDeliver/test/notTestingYet/pickDeliver_types_check.sql
@@ -0,0 +1,53 @@
+
+\i setup.sql
+
+SELECT plan(3);
+
+SELECT todo_start('not ready yet');
+
+
+SELECT has_function('_pgr_pickdeliver', ARRAY['text','text', 'integer']);
+SELECT function_returns('_pgr_pickdeliver', ARRAY['text','text', 'integer'],'setof record');
+
+PREPARE expected_types AS
+SELECT
+'integer'::text AS t1,
+'integer'::text AS ta1,
+'bigint'::text AS t2,
+'integer'::text AS t3,
+'bigint'::text AS t4,
+'integer'::text AS t5,
+'double precision'::text AS t6,
+'double precision'::text AS t7,
+'double precision'::text AS t8,
+'double precision'::text AS t9,
+'double precision'::text AS t10,
+'double precision'::text AS t11;
+
+SELECT * INTO pickDeliverResults FROM _pgr_pickdeliverEuclidean(
+    $$SELECT * FROM orders ORDER BY id$$,
+    $$SELECT * FROM vehicles ORDER BY id$$,
+    30);
+
+
+PREPARE real_types AS
+SELECT pg_typeof(seq)::text AS t1,
+pg_typeof(vehicle_number)::text AS ta1,
+pg_typeof(vehicle_id)::text AS t2,
+pg_typeof(stop)::text AS t3,
+pg_typeof(order_id)::text AS t4,
+pg_typeof(stop_type)::text AS t5,
+pg_typeof(cargo)::text AS t6,
+pg_typeof(travel_time)::text AS t7,
+pg_typeof(arrival_time)::text AS t8,
+pg_typeof(wait_time)::TEXT AS t9,
+pg_typeof(service_time)::TEXT AS t10,
+pg_typeof(departure_time)::TEXT AS t11
+FROM  pickdeliverResults LIMIT 1;
+
+SELECT set_eq('expected_types', 'real_types','_pgr_pickdeliverEuclidean: SHOULD RETURN expected columns names & types');
+
+SELECT todo_end();
+
+SELECT finish();
+ROLLBACK;
diff --git a/src/pickDeliver/test/past_example.result b/src/pickDeliver/test/past_example.result
new file mode 100644
index 0000000..e6b34ab
--- /dev/null
+++ b/src/pickDeliver/test/past_example.result
@@ -0,0 +1,266 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+DROP TABLE IF EXISTS orders CASCADE;
+DROP TABLE
+DROP TABLE IF EXISTS vehicles CASCADE;
+DROP TABLE
+DROP TABLE IF EXISTS dist_matrix CASCADE;
+psql:tools/testers/pickDeliver_pgtap_data.sql:4: NOTICE:  table "dist_matrix" does not exist, skipping
+DROP TABLE
+CREATE TABLE orders (
+      id BIGINT PRIMARY KEY, 
+      demand FLOAT, 
+      p_node_id BIGINT,
+      p_x FLOAT, 
+      p_y FLOAT, 
+      p_open FLOAT, 
+      p_close FLOAT, 
+      p_service FLOAT, 
+      d_node_id BIGINT,
+      d_x FLOAT, 
+      d_y FLOAT, 
+      d_open FLOAT, 
+      d_close FLOAT, 
+      d_service FLOAT
+);
+CREATE TABLE
+CREATE TABLE vehicles (
+  id BIGSERIAL PRIMARY KEY, 
+  start_node_id BIGINT,
+  start_x FLOAT, 
+  start_y FLOAT, 
+  start_open FLOAT, 
+  start_close FLOAT, 
+  "number" integer, 
+  capacity FLOAT
+);
+CREATE TABLE
+INSERT INTO orders (id,  demand, 
+p_x,  p_y ,  p_open,  p_close,  p_service, 
+d_x,  d_y ,  d_open,  d_close,  d_service)
+VALUES
+(3,  10, 42, 66,   65,  146, 90, 45, 65, 997, 1068, 90), 
+(5,  10, 42, 65,   15,   67, 90, 40, 66, 170,  225, 90), 
+(6,  20, 40, 69,  621,  702, 90, 45, 70, 825,  870, 90), 
+(8,  20, 38, 68,  255,  324, 90, 35, 66, 357,  410, 90), 
+(9,  10, 38, 70,  534,  605, 90, 42, 68, 727,  782, 90), 
+(11, 10, 35, 69,  448,  505, 90, 45, 68, 912,  967, 90), 
+(13, 30, 22, 75,   30,   92, 90, 18, 75,  99,  148, 90), 
+(16, 40, 20, 85,  475,  528, 90, 22, 85, 567,  620, 90), 
+(18, 20, 15, 75,  179,  254, 90, 25, 85, 652,  721, 90), 
+(19, 10, 15, 80,  278,  345, 90, 20, 80, 384,  429, 90), 
+(20, 10, 30, 50,   10,   73, 90, 25, 50,  65,  144, 90), 
+(23, 10, 28, 55,  732,  777,  0, 28, 55, 732,  777, 90), 
+(25, 40, 25, 52,  169,  224, 90, 23, 52, 261,  316, 90), 
+(28, 20, 23, 55,  546,  593, 90, 28, 52, 812,  883, 90), 
+(29, 10, 20, 50,  358,  405, 90, 25, 55, 622,  701, 90), 
+(30, 10, 20, 55,  449,  504, 90, 30, 52, 914,  965, 90), 
+(32, 30, 10, 40,   31,  100, 90, 10, 35, 200,  237, 90), 
+(33, 40,  8, 40,   87,  158, 90,  2, 40, 383,  434, 90), 
+(35, 10,  5, 35,  283,  344, 90,  0, 45, 567,  624, 90), 
+(36, 10,  5, 45,  665,  716,  0,  5, 45, 665,  716, 90), 
+(38, 30,  0, 40,  479,  522, 90,  8, 45, 751,  816, 90), 
+(42, 20, 33, 32,   68,  149, 90, 35, 30, 264,  321, 90), 
+(43, 10, 33, 35,   16,   80, 90, 35, 32, 166,  235, 90), 
+(44, 10, 32, 30,  359,  412, 90, 30, 32, 448,  509, 90), 
+(45, 10, 30, 30,  541,  600, 90, 28, 30, 632,  693, 90), 
+(49, 10, 28, 35, 1001, 1066, 90, 30, 35,1054, 1127, 90), 
+(50, 10, 26, 32,  815,  880, 90, 25, 35, 912,  969, 90), 
+(51, 10, 25, 30,  725,  786,  0, 25, 30, 725,  786, 90), 
+(53, 20, 44,  5,  286,  347, 90, 38,  5, 471,  534, 90), 
+(54, 40, 42, 10,  186,  257, 90, 35,  5, 562,  629, 90), 
+(56, 30, 40,  5,  385,  436, 90, 38, 15, 651,  740, 90), 
+(57, 40, 40, 15,   35,   87, 90, 42, 15,  95,  158, 90), 
+(62, 20, 50, 35,  262,  317, 90, 45, 30, 734,  777, 90), 
+(63, 50, 50, 40,  171,  218, 90, 53, 35, 353,  412, 90), 
+(64, 10, 48, 30,  632,  693,  0, 48, 30, 632,  693, 90), 
+(65, 10, 48, 40,   76,  129, 90, 53, 30, 450,  505, 90), 
+(66, 10, 47, 35,  826,  875, 90, 45, 35, 916,  969, 90), 
+(67, 10, 47, 40,   12,   77, 90, 50, 30, 531,  610, 90), 
+(71, 20, 95, 35,  293,  360, 90, 88, 30, 574,  643, 90), 
+(76, 10, 90, 35,  203,  260, 90, 92, 30, 478,  551, 90), 
+(78, 20, 88, 35,  109,  170,  0, 88, 35, 109,  170, 90), 
+(79, 10, 87, 30,  668,  731, 90, 85, 25, 769,  820, 90), 
+(81, 30, 85, 35,   47,  124, 90, 95, 30, 387,  456, 90), 
+(82, 20, 75, 55,  369,  420, 90, 68, 60, 555,  612, 90), 
+(84, 20, 70, 58,  458,  523, 90, 63, 58, 737,  802, 90), 
+(86, 10, 66, 55,  173,  238, 90, 60, 60, 836,  889, 90), 
+(87, 20, 65, 55,   85,  144, 90, 72, 55, 265,  338, 90), 
+(90, 10, 60, 55,   20,   84, 90, 65, 60, 645,  708, 90), 
+(92, 20, 67, 85,  368,  441, 90, 65, 85, 475,  518, 90), 
+(96, 10, 60, 80,   95,  156, 90, 65, 82, 285,  336, 90), 
+(97, 30, 60, 85,  561,  622,  0, 60, 85, 561,  622, 90), 
+(98, 20, 58, 75,   30,   84, 90, 62, 80, 196,  239, 90), 
+(100,20, 55, 85,  647,  726, 90, 55, 80, 743,  820, 90);
+INSERT 0 53
+INSERT INTO vehicles (start_x,  start_y,  start_open,  start_close,  "number",  capacity)
+VALUES (40,  50,  0,  1236,  25,  200);
+INSERT 0 1
+WITH points AS (
+    SELECT DISTINCT p_x AS x, p_y AS y FROM orders
+    UNION
+    SELECT DISTINCT d_x, d_y FROM orders),
+t_points AS (SELECT row_number() over() AS id, x, y FROM points),
+first  AS (SELECT orders.id AS id , t_points.id AS p_node_id from orders JOIN t_points ON (x = p_x AND y = p_y)),
+second AS (SELECT orders.id AS id , t_points.id AS d_node_id from orders JOIN t_points ON (x = d_x AND y = d_y)),
+third  AS (SELECT id, p_node_id, d_node_id from first JOIN second USING (id))
+UPDATE orders SET p_node_id = third.p_node_id, d_node_id = third.d_node_id 
+FROM third WHERE third.id = orders.id;
+UPDATE 53
+WITH 
+the_ids AS (SELECT p_node_id AS id FROM orders UNION SELECT d_node_id FROM orders),
+the_max AS (SELECT max(id) FROM the_ids)
+UPDATE vehicles SET start_node_id = max+1 FROM the_max;
+UPDATE 1
+/*
+WITH
+A AS (
+    SELECT p_node_id AS id, p_x AS x, p_y AS y FROM orders
+    UNION
+    SELECT d_node_id, d_x, d_y FROM orders
+    UNION
+    SELECT start_node_id, start_x, start_y FROM vehicles
+)
+SELECT A.id AS start_vid, B.id AS end_vid, sqrt( (a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y)) AS agg_cost
+INTO dist_matrix
+FROM A, A AS B WHERE A.id != B.id;
+*/
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    'SELECT * FROM orders ORDER BY id',
+    'SELECT * from vehicles'
+);
+ seq | vehicle_seq | vehicle_id | stop_seq | stop_type | order_id | cargo |   travel_time    |   arrival_time   | wait_time | service_time |  departure_time  
+-----+-------------+------------+----------+-----------+----------+-------+------------------+------------------+-----------+--------------+------------------
+   1 |           1 |          1 |        1 |         1 |       -1 |     0 |                0 |                0 |         0 |            0 |                0
+   2 |           1 |          1 |        2 |         2 |       13 |    30 | 30.8058436014987 | 30.8058436014987 |         0 |           90 | 120.805843601499
+   3 |           1 |          1 |        3 |         3 |       13 |     0 |                4 | 124.805843601499 |         0 |           90 | 214.805843601499
+   4 |           1 |          1 |        4 |         2 |       18 |    20 |                3 | 217.805843601499 |         0 |           90 | 307.805843601499
+   5 |           1 |          1 |        5 |         2 |       19 |    30 |                5 | 312.805843601499 |         0 |           90 | 402.805843601499
+   6 |           1 |          1 |        6 |         3 |       19 |    20 |                5 | 407.805843601499 |         0 |           90 | 497.805843601499
+   7 |           1 |          1 |        7 |         2 |       16 |    60 |                5 | 502.805843601499 |         0 |           90 | 592.805843601499
+   8 |           1 |          1 |        8 |         3 |       16 |    20 |                2 | 594.805843601499 |         0 |           90 | 684.805843601499
+   9 |           1 |          1 |        9 |         3 |       18 |     0 |                3 | 687.805843601499 |         0 |           90 | 777.805843601499
+  10 |           1 |          1 |       10 |         2 |       50 |    10 | 53.0094331227943 | 830.815276724293 |         0 |           90 | 920.815276724293
+  11 |           1 |          1 |       11 |         3 |       50 |     0 | 3.16227766016838 | 923.977554384461 |         0 |           90 | 1013.97755438446
+  12 |           1 |          1 |       12 |         2 |       49 |    10 |                3 | 1016.97755438446 |         0 |           90 | 1106.97755438446
+  13 |           1 |          1 |       13 |         3 |       49 |     0 |                2 | 1108.97755438446 |         0 |           90 | 1198.97755438446
+  14 |           1 |          1 |       14 |         6 |       -1 |     0 | 18.0277563773199 | 1217.00531076178 |         0 |            0 | 1217.00531076178
+  15 |           2 |          1 |        1 |         1 |       -1 |     0 |                0 |                0 |         0 |            0 |                0
+  16 |           2 |          1 |        2 |         2 |        5 |    10 | 15.1327459504216 | 15.1327459504216 |         0 |           90 | 105.132745950422
+  17 |           2 |          1 |        3 |         2 |        3 |    20 |                1 | 106.132745950422 |         0 |           90 | 196.132745950422
+  18 |           2 |          1 |        4 |         3 |        5 |    10 |                2 | 198.132745950422 |         0 |           90 | 288.132745950422
+  19 |           2 |          1 |        5 |         2 |        8 |    30 | 2.82842712474619 | 290.961173075168 |         0 |           90 | 380.961173075168
+  20 |           2 |          1 |        6 |         3 |        8 |    10 | 3.60555127546399 | 384.566724350632 |         0 |           90 | 474.566724350632
+  21 |           2 |          1 |        7 |         2 |       11 |    20 |                3 | 477.566724350632 |         0 |           90 | 567.566724350632
+  22 |           2 |          1 |        8 |         2 |        9 |    30 | 3.16227766016838 |   570.7290020108 |         0 |           90 |   660.7290020108
+  23 |           2 |          1 |        9 |         2 |        6 |    50 | 2.23606797749979 |   662.9650699883 |         0 |           90 |   752.9650699883
+  24 |           2 |          1 |       10 |         3 |        9 |    40 | 2.23606797749979 |   755.2011379658 |         0 |           90 |   845.2011379658
+  25 |           2 |          1 |       11 |         3 |        6 |    20 | 3.60555127546399 | 848.806689241264 |         0 |           90 | 938.806689241264
+  26 |           2 |          1 |       12 |         3 |       11 |    10 |                2 | 940.806689241264 |         0 |           90 | 1030.80668924126
+  27 |           2 |          1 |       13 |         3 |        3 |     0 |                3 | 1033.80668924126 |         0 |           90 | 1123.80668924126
+  28 |           2 |          1 |       14 |         6 |       -1 |     0 | 15.8113883008419 | 1139.61807754211 |         0 |            0 | 1139.61807754211
+  29 |           3 |          1 |        1 |         1 |       -1 |     0 |                0 |                0 |         0 |            0 |                0
+  30 |           3 |          1 |        2 |         2 |       43 |    10 | 16.5529453572468 | 16.5529453572468 |         0 |           90 | 106.552945357247
+  31 |           3 |          1 |        3 |         2 |       42 |    30 |                3 | 109.552945357247 |         0 |           90 | 199.552945357247
+  32 |           3 |          1 |        4 |         3 |       43 |    20 |                2 | 201.552945357247 |         0 |           90 | 291.552945357247
+  33 |           3 |          1 |        5 |         3 |       42 |     0 |                2 | 293.552945357247 |         0 |           90 | 383.552945357247
+  34 |           3 |          1 |        6 |         2 |       44 |    10 |                3 | 386.552945357247 |         0 |           90 | 476.552945357247
+  35 |           3 |          1 |        7 |         3 |       44 |     0 | 2.82842712474619 | 479.381372481993 |         0 |           90 | 569.381372481993
+  36 |           3 |          1 |        8 |         2 |       45 |    10 |                2 | 571.381372481993 |         0 |           90 | 661.381372481993
+  37 |           3 |          1 |        9 |         3 |       45 |     0 |                2 | 663.381372481993 |         0 |           90 | 753.381372481993
+  38 |           3 |          1 |       10 |         2 |       51 |    10 |                3 | 756.381372481993 |         0 |            0 | 756.381372481993
+  39 |           3 |          1 |       11 |         3 |       51 |     0 |                0 | 756.381372481993 |         0 |           90 | 846.381372481993
+  40 |           3 |          1 |       12 |         2 |       66 |    10 |  22.561028345357 |  868.94240082735 |         0 |           90 |  958.94240082735
+  41 |           3 |          1 |       13 |         3 |       66 |     0 |                2 |  960.94240082735 |         0 |           90 | 1050.94240082735
+  42 |           3 |          1 |       14 |         6 |       -1 |     0 | 15.8113883008419 | 1066.75378912819 |         0 |            0 | 1066.75378912819
+  43 |           4 |          1 |        1 |         1 |       -1 |     0 |                0 |                0 |         0 |            0 |                0
+  44 |           4 |          1 |        2 |         2 |       20 |    10 |               10 |               10 |         0 |           90 |              100
+  45 |           4 |          1 |        3 |         3 |       20 |     0 |                5 |              105 |         0 |           90 |              195
+  46 |           4 |          1 |        4 |         2 |       25 |    40 |                2 |              197 |         0 |           90 |              287
+  47 |           4 |          1 |        5 |         3 |       25 |     0 |                2 |              289 |         0 |           90 |              379
+  48 |           4 |          1 |        6 |         2 |       29 |    10 | 3.60555127546399 | 382.605551275464 |         0 |           90 | 472.605551275464
+  49 |           4 |          1 |        7 |         2 |       30 |    20 |                5 | 477.605551275464 |         0 |           90 | 567.605551275464
+  50 |           4 |          1 |        8 |         2 |       28 |    40 |                3 | 570.605551275464 |         0 |           90 | 660.605551275464
+  51 |           4 |          1 |        9 |         3 |       29 |    30 |                2 | 662.605551275464 |         0 |           90 | 752.605551275464
+  52 |           4 |          1 |       10 |         2 |       23 |    40 |                3 | 755.605551275464 |         0 |            0 | 755.605551275464
+  53 |           4 |          1 |       11 |         3 |       23 |    30 |                0 | 755.605551275464 |         0 |           90 | 845.605551275464
+  54 |           4 |          1 |       12 |         3 |       28 |    10 |                3 | 848.605551275464 |         0 |           90 | 938.605551275464
+  55 |           4 |          1 |       13 |         3 |       30 |     0 |                2 | 940.605551275464 |         0 |           90 | 1030.60555127546
+  56 |           4 |          1 |       14 |         6 |       -1 |     0 | 10.1980390271856 | 1040.80359030265 |         0 |            0 | 1040.80359030265
+  57 |           5 |          1 |        1 |         1 |       -1 |     0 |                0 |                0 |         0 |            0 |                0
+  58 |           5 |          1 |        2 |         2 |       90 |    10 | 20.6155281280883 | 20.6155281280883 |         0 |           90 | 110.615528128088
+  59 |           5 |          1 |        3 |         2 |       87 |    30 |                5 | 115.615528128088 |         0 |           90 | 205.615528128088
+  60 |           5 |          1 |        4 |         2 |       86 |    40 |                1 | 206.615528128088 |         0 |           90 | 296.615528128088
+  61 |           5 |          1 |        5 |         3 |       87 |    20 |                6 | 302.615528128088 |         0 |           90 | 392.615528128088
+  62 |           5 |          1 |        6 |         2 |       82 |    40 |                3 | 395.615528128088 |         0 |           90 | 485.615528128088
+  63 |           5 |          1 |        7 |         2 |       84 |    60 |  5.8309518948453 | 491.446480022934 |         0 |           90 | 581.446480022934
+  64 |           5 |          1 |        8 |         3 |       82 |    40 | 2.82842712474619 |  584.27490714768 |         0 |           90 |  674.27490714768
+  65 |           5 |          1 |        9 |         3 |       90 |    30 |                3 |  677.27490714768 |         0 |           90 |  767.27490714768
+  66 |           5 |          1 |       10 |         3 |       84 |    10 | 2.82842712474619 | 770.103334272426 |         0 |           90 | 860.103334272426
+  67 |           5 |          1 |       11 |         3 |       86 |     0 | 3.60555127546399 |  863.70888554789 |         0 |           90 |  953.70888554789
+  68 |           5 |          1 |       12 |         6 |       -1 |     0 | 22.3606797749979 | 976.069565322888 |         0 |            0 | 976.069565322888
+  69 |           6 |          1 |        1 |         1 |       -1 |     0 |                0 |                0 |         0 |            0 |                0
+  70 |           6 |          1 |        2 |         2 |       81 |    30 | 47.4341649025257 | 47.4341649025257 |         0 |           90 | 137.434164902526
+  71 |           6 |          1 |        3 |         2 |       78 |    50 |                3 | 140.434164902526 |         0 |            0 | 140.434164902526
+  72 |           6 |          1 |        4 |         3 |       78 |    30 |                0 | 140.434164902526 |         0 |           90 | 230.434164902526
+  73 |           6 |          1 |        5 |         2 |       76 |    40 |                2 | 232.434164902526 |         0 |           90 | 322.434164902526
+  74 |           6 |          1 |        6 |         2 |       71 |    60 |                5 | 327.434164902526 |         0 |           90 | 417.434164902526
+  75 |           6 |          1 |        7 |         3 |       81 |    30 |                5 | 422.434164902526 |         0 |           90 | 512.434164902526
+  76 |           6 |          1 |        8 |         3 |       76 |    20 |                3 | 515.434164902526 |         0 |           90 | 605.434164902526
+  77 |           6 |          1 |        9 |         3 |       71 |     0 |                4 | 609.434164902526 |         0 |           90 | 699.434164902526
+  78 |           6 |          1 |       10 |         2 |       79 |    10 |                1 | 700.434164902526 |         0 |           90 | 790.434164902526
+  79 |           6 |          1 |       11 |         3 |       79 |     0 |  5.3851648071345 |  795.81932970966 |         0 |           90 |  885.81932970966
+  80 |           6 |          1 |       12 |         6 |       -1 |     0 |  51.478150704935 | 937.297480414595 |         0 |            0 | 937.297480414595
+  81 |           7 |          1 |        1 |         1 |       -1 |     0 |                0 |                0 |         0 |            0 |                0
+  82 |           7 |          1 |        2 |         2 |       32 |    30 | 31.6227766016838 | 31.6227766016838 |         0 |           90 | 121.622776601684
+  83 |           7 |          1 |        3 |         2 |       33 |    70 |                2 | 123.622776601684 |         0 |           90 | 213.622776601684
+  84 |           7 |          1 |        4 |         3 |       32 |    40 |  5.3851648071345 | 219.007941408818 |         0 |           90 | 309.007941408818
+  85 |           7 |          1 |        5 |         2 |       35 |    50 |                5 | 314.007941408818 |         0 |           90 | 404.007941408818
+  86 |           7 |          1 |        6 |         3 |       33 |    10 |  5.8309518948453 | 409.838893303664 |         0 |           90 | 499.838893303664
+  87 |           7 |          1 |        7 |         2 |       38 |    40 |                2 | 501.838893303664 |         0 |           90 | 591.838893303664
+  88 |           7 |          1 |        8 |         3 |       35 |    30 |                5 | 596.838893303664 |         0 |           90 | 686.838893303664
+  89 |           7 |          1 |        9 |         2 |       36 |    40 |                5 | 691.838893303664 |         0 |            0 | 691.838893303664
+  90 |           7 |          1 |       10 |         3 |       36 |    30 |                0 | 691.838893303664 |         0 |           90 | 781.838893303664
+  91 |           7 |          1 |       11 |         3 |       38 |     0 |                3 | 784.838893303664 |         0 |           90 | 874.838893303664
+  92 |           7 |          1 |       12 |         6 |       -1 |     0 | 32.3882694814033 | 907.227162785067 |         0 |            0 | 907.227162785067
+  93 |           8 |          1 |        1 |         1 |       -1 |     0 |                0 |                0 |         0 |            0 |                0
+  94 |           8 |          1 |        2 |         2 |       98 |    20 | 30.8058436014987 | 30.8058436014987 |         0 |           90 | 120.805843601499
+  95 |           8 |          1 |        3 |         2 |       96 |    30 |  5.3851648071345 | 126.191008408633 |         0 |           90 | 216.191008408633
+  96 |           8 |          1 |        4 |         3 |       98 |    10 |                2 | 218.191008408633 |         0 |           90 | 308.191008408633
+  97 |           8 |          1 |        5 |         3 |       96 |     0 | 3.60555127546399 | 311.796559684097 |         0 |           90 | 401.796559684097
+  98 |           8 |          1 |        6 |         2 |       92 |    20 | 3.60555127546399 | 405.402110959561 |         0 |           90 | 495.402110959561
+  99 |           8 |          1 |        7 |         3 |       92 |     0 |                2 | 497.402110959561 |         0 |           90 | 587.402110959561
+ 100 |           8 |          1 |        8 |         2 |       97 |    30 |                5 | 592.402110959561 |         0 |            0 | 592.402110959561
+ 101 |           8 |          1 |        9 |         3 |       97 |     0 |                0 | 592.402110959561 |         0 |           90 | 682.402110959561
+ 102 |           8 |          1 |       10 |         2 |      100 |    20 |                5 | 687.402110959561 |         0 |           90 | 777.402110959561
+ 103 |           8 |          1 |       11 |         3 |      100 |     0 |                5 | 782.402110959561 |         0 |           90 | 872.402110959561
+ 104 |           8 |          1 |       12 |         6 |       -1 |     0 | 33.5410196624968 | 905.943130622058 |         0 |            0 | 905.943130622058
+ 105 |           9 |          1 |        1 |         1 |       -1 |     0 |                0 |                0 |         0 |            0 |                0
+ 106 |           9 |          1 |        2 |         2 |       67 |    10 | 12.2065556157337 | 12.2065556157337 |         0 |           90 | 102.206555615734
+ 107 |           9 |          1 |        3 |         2 |       65 |    20 |                1 | 103.206555615734 |         0 |           90 | 193.206555615734
+ 108 |           9 |          1 |        4 |         2 |       63 |    70 |                2 | 195.206555615734 |         0 |           90 | 285.206555615734
+ 109 |           9 |          1 |        5 |         2 |       62 |    90 |                5 | 290.206555615734 |         0 |           90 | 380.206555615734
+ 110 |           9 |          1 |        6 |         3 |       63 |    40 |                3 | 383.206555615734 |         0 |           90 | 473.206555615734
+ 111 |           9 |          1 |        7 |         3 |       65 |    30 |                5 | 478.206555615734 |         0 |           90 | 568.206555615734
+ 112 |           9 |          1 |        8 |         3 |       67 |    20 |                3 | 571.206555615734 |         0 |           90 | 661.206555615734
+ 113 |           9 |          1 |        9 |         2 |       64 |    30 |                2 | 663.206555615734 |         0 |            0 | 663.206555615734
+ 114 |           9 |          1 |       10 |         3 |       64 |    20 |                0 | 663.206555615734 |         0 |           90 | 753.206555615734
+ 115 |           9 |          1 |       11 |         3 |       62 |     0 |                3 | 756.206555615734 |         0 |           90 | 846.206555615734
+ 116 |           9 |          1 |       12 |         6 |       -1 |     0 | 20.6155281280883 | 866.822083743822 |         0 |            0 | 866.822083743822
+ 117 |          10 |          1 |        1 |         1 |       -1 |     0 |                0 |                0 |         0 |            0 |                0
+ 118 |          10 |          1 |        2 |         2 |       57 |    40 |               35 |               35 |         0 |           90 |              125
+ 119 |          10 |          1 |        3 |         3 |       57 |     0 |                2 |              127 |         0 |           90 |              217
+ 120 |          10 |          1 |        4 |         2 |       54 |    40 |                5 |              222 |         0 |           90 |              312
+ 121 |          10 |          1 |        5 |         2 |       53 |    60 |  5.3851648071345 | 317.385164807135 |         0 |           90 | 407.385164807135
+ 122 |          10 |          1 |        6 |         2 |       56 |    90 |                4 | 411.385164807135 |         0 |           90 | 501.385164807135
+ 123 |          10 |          1 |        7 |         3 |       53 |    70 |                2 | 503.385164807135 |         0 |           90 | 593.385164807135
+ 124 |          10 |          1 |        8 |         3 |       54 |    30 |                3 | 596.385164807135 |         0 |           90 | 686.385164807135
+ 125 |          10 |          1 |        9 |         3 |       56 |     0 | 10.4403065089106 | 696.825471316045 |         0 |           90 | 786.825471316045
+ 126 |          10 |          1 |       10 |         6 |       -1 |     0 | 35.0570962859162 | 821.882567601961 |         0 |            0 | 821.882567601961
+ 127 |          -2 |          0 |        0 |        -1 |       -1 |    -1 |  879.42275822512 |               -1 |         0 |         9000 | 9879.42275822512
+(127 rows)
+
+ROLLBACK;
+ROLLBACK
diff --git a/src/pickDeliver/test/past_example.test.sql b/src/pickDeliver/test/past_example.test.sql
new file mode 100644
index 0000000..ea9c1e1
--- /dev/null
+++ b/src/pickDeliver/test/past_example.test.sql
@@ -0,0 +1,9 @@
+
+
+\i tools/testers/pickDeliver_pgtap_data.sql
+
+
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    'SELECT * FROM orders ORDER BY id',
+    'SELECT * from vehicles'
+);
diff --git a/src/pickDeliver/test/pgtap/pickDeliver_types_check.sql b/src/pickDeliver/test/pgtap/pickDeliver_types_check.sql
deleted file mode 100644
index aa11961..0000000
--- a/src/pickDeliver/test/pgtap/pickDeliver_types_check.sql
+++ /dev/null
@@ -1,39 +0,0 @@
-
-\i setup.sql
-
-SELECT plan(3);
-
-SELECT has_function('_pgr_pickdeliver', ARRAY['text','integer','double precision','double precision', 'integer']);
-SELECT function_returns('_pgr_pickdeliver', ARRAY['text','integer','double precision','double precision', 'integer'],'setof record');
-
-PREPARE expected_types AS
-SELECT
-'integer'::text AS t1,
-'integer'::text AS t2,
-'integer'::text AS t3,
-'bigint'::text AS t4,
-'double precision'::text AS t5,
-'double precision'::text AS t6,
-'double precision'::text AS t7,
-'double precision'::text AS t8,
-'double precision'::text AS t9;
-
-SELECT * INTO pickDeliverResults FROM _pgr_pickdeliver('SELECT * from customer order by id', 25, 200, 1, 30);
-
-
-PREPARE real_types AS
-SELECT pg_typeof(seq)::text AS t1,
-pg_typeof(vehicle_id)::text AS t2,
-pg_typeof(vehicle_seq)::text AS t3,
-pg_typeof(stop_id)::text AS t4,
-pg_typeof(travel_time)::text AS t5,
-pg_typeof(arrival_time)::text AS t6,
-pg_typeof(wait_time)::TEXT AS t7,
-pg_typeof(service_time)::TEXT AS t8,
-pg_typeof(departure_time)::TEXT AS t9
-FROM  pickdeliverResults LIMIT 1;
-
-SELECT set_eq('expected_types', 'real_types','_pgr_pickdeliver: SHOULD RETURN expected columns names & types');
-
-SELECT finish();
-ROLLBACK;
diff --git a/src/pickDeliver/test/pgtap/wrong_data.sql b/src/pickDeliver/test/pgtap/wrong_data.sql
deleted file mode 100644
index e0f367f..0000000
--- a/src/pickDeliver/test/pgtap/wrong_data.sql
+++ /dev/null
@@ -1,130 +0,0 @@
-
-\i setup.sql
-
-SELECT plan(11);
-
-PREPARE q1 AS
-SELECT * FROM _pgr_pickDeliver(
-    'SELECT *
-    FROM customer ORDER BY id'::text, 25, 200, 1, 30);
-
-
-SELECT lives_ok('q1', 'Original query should not fail');
-
-/*
- id | x  | y  | demand | etime | ltime | stime | pindex | dindex 
-----+----+----+--------+-------+-------+-------+--------+--------
-  0 | 40 | 50 |      0 |     0 |  1236 |     0 |      0 |      0
-*/
-PREPARE q2 AS
-SELECT * FROM _pgr_pickDeliver(
-    'SELECT *
-    FROM customer WHERE id != 0 ORDER BY id'::text, 25, 200, 30);
-
-SELECT throws_ok('q2',
-    'XX000',
-    'Depot node not found',
-    'Should fail: depot is not included in data');
-
-/*
- 11 | 35 | 69 |     10 |   448 |   505 |    90 |      0 |      1
-*/
-PREPARE q3 AS
-SELECT * FROM _pgr_pickDeliver(
-    'SELECT *
-    FROM customer WHERE id != 11 ORDER BY id'::text, 25, 200, 30);
-
-SELECT throws_ok('q3',
-    'XX000',
-    'A pickup was not found',
-    'Should fail: 11 is a Pickup and is missing');
-
-/*
-  1 | 45 | 68 |    -10 |   912 |   967 |    90 |     11 |      0
-*/
-PREPARE q4 AS
-SELECT * FROM _pgr_pickDeliver(
-    'SELECT *
-    FROM customer WHERE id != 1 ORDER BY id'::text, 25, 200, 30);
-
-SELECT throws_ok('q4',
-    'XX000',
-    'For Pickup 11 the corresponding Delivery was not found',
-    'Should fail: id 1 is a delivery and is missing');
-
-UPDATE customer SET closetime = 500 WHERE id =0;
-
-PREPARE q5 AS
-SELECT * FROM _pgr_pickDeliver(
-    'SELECT *
-    FROM customer WHERE id in (0,1,11) ORDER BY id'::text, 25, 200, 30);
-
-SELECT throws_ok('q5',
-    'XX000',
-    'The (pickup, delivery) = (11, 1) is not feasible',
-    'Should fail: Closing time of depot is too small and (pick,deliver) pair generates TWV');
-
---------------------------------------
--- testing wrong data on DEPOT 
---------------------------------------
-UPDATE customer SET opentime = 3000, closetime = 1236 WHERE id =0;
-
-SELECT throws_ok('q5',
-    'XX000',
-    'Illegal values found on the starting site',
-    'Should fail: Opens(DEPOT) > closes(DEPOT)');
-
-UPDATE customer SET opentime = 0, demand = 20 WHERE id =0;
-
-SELECT throws_ok('q5',
-    'XX000',
-    'Illegal values found on the starting site',
-    'Should fail: Demand(DEPOT) != 0');
-
-UPDATE customer SET demand = 0 WHERE id =0;
-
---------------------------------------
--- testing wrong data on pickup 
---------------------------------------
-UPDATE customer SET opentime = 600 WHERE id =11;
-
-SELECT throws_ok('q5',
-    'XX000',
-    'Illegal values found on Pickup 11',
-    'Should fail: Opens(PICKUP) > closes(PICKUP)');
-
-UPDATE customer SET opentime = 448, demand= -20 WHERE id =11;
-
-SELECT throws_ok('q5',
-    'XX000',
-    'Illegal values found on Pickup 11',
-    'Should fail: demand(PICKUP) < 0');
-
-UPDATE customer SET demand= 10 WHERE id =11;
-
---------------------------------------
--- testing wrong data on delivery 
---------------------------------------
-UPDATE customer SET opentime = 1000 WHERE id =1;
-
-SELECT throws_ok('q5',
-    'XX000',
-    'Illegal values found on Delivery 1',
-    'Should fail: Opens(DELIVERY) > closes(DELIVERY)');
-
-UPDATE customer SET opentime = 912, demand= 20 WHERE id =1;
-
-SELECT throws_ok('q5',
-    'XX000',
-    'Illegal values found on Delivery 1',
-    'Should fail: demand(DELIVERY) > 0');
-
-UPDATE customer SET demand = -10 WHERE id =11;
-
-
-
-
-
-
-SELECT finish();
-ROLLBACK;
diff --git a/src/pickDeliver/test/pickDeliver.data b/src/pickDeliver/test/pickDeliver.data
deleted file mode 100644
index ba2018e..0000000
--- a/src/pickDeliver/test/pickDeliver.data
+++ /dev/null
@@ -1,120 +0,0 @@
-DROP TABLE IF EXISTS customer CASCADE;
-CREATE TABLE customer (
-    id INTEGER NOT NULL PRIMARY KEY,
-    x INTEGER,
-    y INTEGER,
-    demand INTEGER,
-    openTime INTEGER,
-    closeTime INTEGER, 
-    serviceTime INTEGER, 
-    pindex INTEGER,
-    dindex INTEGER 
-    );
-copy customer (id, x, y, demand, openTime, closeTime, serviceTime, pindex, dindex) from stdin;
-0	40	50	0	0	1236	0	0	0
-1	45	68	-10	912	967	90	11	0
-2	45	70	-20	825	870	90	6	0
-3	42	66	10	65	146	90	0	75
-4	42	68	-10	727	782	90	9	0
-5	42	65	10	15	67	90	0	7
-6	40	69	20	621	702	90	0	2
-7	40	66	-10	170	225	90	5	0
-8	38	68	20	255	324	90	0	10
-9	38	70	10	534	605	90	0	4
-10	35	66	-20	357	410	90	8	0
-11	35	69	10	448	505	90	0	1
-12	25	85	-20	652	721	90	18	0
-13	22	75	30	30	92	90	0	17
-14	22	85	-40	567	620	90	16	0
-15	20	80	-10	384	429	90	19	0
-16	20	85	40	475	528	90	0	14
-17	18	75	-30	99	148	90	13	0
-18	15	75	20	179	254	90	0	12
-19	15	80	10	278	345	90	0	15
-20	30	50	10	10	73	90	0	24
-21	30	52	-10	914	965	90	30	0
-22	28	52	-20	812	883	90	28	0
-23	28	55	10	732	777	0	0	103
-24	25	50	-10	65	144	90	20	0
-25	25	52	40	169	224	90	0	27
-26	25	55	-10	622	701	90	29	0
-27	23	52	-40	261	316	90	25	0
-28	23	55	20	546	593	90	0	22
-29	20	50	10	358	405	90	0	26
-30	20	55	10	449	504	90	0	21
-31	10	35	-30	200	237	90	32	0
-32	10	40	30	31	100	90	0	31
-33	8	40	40	87	158	90	0	37
-34	8	45	-30	751	816	90	38	0
-35	5	35	10	283	344	90	0	39
-36	5	45	10	665	716	0	0	105
-37	2	40	-40	383	434	90	33	0
-38	0	40	30	479	522	90	0	34
-39	0	45	-10	567	624	90	35	0
-40	35	30	-20	264	321	90	42	0
-41	35	32	-10	166	235	90	43	0
-42	33	32	20	68	149	90	0	40
-43	33	35	10	16	80	90	0	41
-44	32	30	10	359	412	90	0	46
-45	30	30	10	541	600	90	0	48
-46	30	32	-10	448	509	90	44	0
-47	30	35	-10	1054	1127	90	49	0
-48	28	30	-10	632	693	90	45	0
-49	28	35	10	1001	1066	90	0	47
-50	26	32	10	815	880	90	0	52
-51	25	30	10	725	786	0	0	101
-52	25	35	-10	912	969	90	50	0
-53	44	5	20	286	347	90	0	58
-54	42	10	40	186	257	90	0	60
-55	42	15	-40	95	158	90	57	0
-56	40	5	30	385	436	90	0	59
-57	40	15	40	35	87	90	0	55
-58	38	5	-20	471	534	90	53	0
-59	38	15	-30	651	740	90	56	0
-60	35	5	-40	562	629	90	54	0
-61	50	30	-10	531	610	90	67	0
-62	50	35	20	262	317	90	0	68
-63	50	40	50	171	218	90	0	74
-64	48	30	10	632	693	0	0	102
-65	48	40	10	76	129	90	0	72
-66	47	35	10	826	875	90	0	69
-67	47	40	10	12	77	90	0	61
-68	45	30	-20	734	777	90	62	0
-69	45	35	-10	916	969	90	66	0
-70	95	30	-30	387	456	90	81	0
-71	95	35	20	293	360	90	0	77
-72	53	30	-10	450	505	90	65	0
-73	92	30	-10	478	551	90	76	0
-74	53	35	-50	353	412	90	63	0
-75	45	65	-10	997	1068	90	3	0
-76	90	35	10	203	260	90	0	73
-77	88	30	-20	574	643	90	71	0
-78	88	35	20	109	170	0	0	104
-79	87	30	10	668	731	90	0	80
-80	85	25	-10	769	820	90	79	0
-81	85	35	30	47	124	90	0	70
-82	75	55	20	369	420	90	0	85
-83	72	55	-20	265	338	90	87	0
-84	70	58	20	458	523	90	0	89
-85	68	60	-20	555	612	90	82	0
-86	66	55	10	173	238	90	0	91
-87	65	55	20	85	144	90	0	83
-88	65	60	-10	645	708	90	90	0
-89	63	58	-20	737	802	90	84	0
-90	60	55	10	20	84	90	0	88
-91	60	60	-10	836	889	90	86	0
-92	67	85	20	368	441	90	0	93
-93	65	85	-20	475	518	90	92	0
-94	65	82	-10	285	336	90	96	0
-95	62	80	-20	196	239	90	98	0
-96	60	80	10	95	156	90	0	94
-97	60	85	30	561	622	0	0	106
-98	58	75	20	30	84	90	0	95
-99	55	80	-20	743	820	90	100	0
-100	55	85	20	647	726	90	0	99
-101	25	30	-10	725	786	90	51	0
-102	48	30	-10	632	693	90	64	0
-103	28	55	-10	732	777	90	23	0
-104	88	35	-20	109	170	90	78	0
-105	5	45	-10	665	716	90	36	0
-106	60	85	-30	561	622	90	97	0
diff --git a/src/pickDeliver/test/pickDeliver.result b/src/pickDeliver/test/pickDeliver.result
new file mode 100644
index 0000000..66c36af
--- /dev/null
+++ b/src/pickDeliver/test/pickDeliver.result
@@ -0,0 +1,257 @@
+--q1
+1|1|1|-1|0|0|0|0|0
+2|1|2|5|15.1327459504216|15.1327459504216|0|90|105.132745950422
+3|1|3|3|1|106.132745950422|0|90|196.132745950422
+4|1|4|7|2|198.132745950422|0|90|288.132745950422
+5|1|5|8|2.82842712474619|290.961173075168|0|90|380.961173075168
+6|1|6|10|3.60555127546399|384.566724350632|0|90|474.566724350632
+7|1|7|11|3|477.566724350632|0|90|567.566724350632
+8|1|8|9|3.16227766016838|570.7290020108|0|90|660.7290020108
+9|1|9|6|2.23606797749979|662.9650699883|0|90|752.9650699883
+10|1|10|4|2.23606797749979|755.2011379658|0|90|845.2011379658
+11|1|11|2|3.60555127546399|848.806689241264|0|90|938.806689241264
+12|1|12|1|2|940.806689241264|0|90|1030.80668924126
+13|1|13|75|3|1033.80668924126|0|90|1123.80668924126
+14|1|14|-1|15.8113883008419|1139.61807754211|0|0|1139.61807754211
+15|2|1|-1|0|0|0|0|0
+16|2|2|13|30.8058436014987|30.8058436014987|0|90|120.805843601499
+17|2|3|17|4|124.805843601499|0|90|214.805843601499
+18|2|4|18|3|217.805843601499|0|90|307.805843601499
+19|2|5|19|5|312.805843601499|0|90|402.805843601499
+20|2|6|15|5|407.805843601499|0|90|497.805843601499
+21|2|7|16|5|502.805843601499|0|90|592.805843601499
+22|2|8|14|2|594.805843601499|0|90|684.805843601499
+23|2|9|12|3|687.805843601499|0|90|777.805843601499
+24|2|10|50|53.0094331227943|830.815276724293|0|90|920.815276724293
+25|2|11|52|3.16227766016838|923.977554384461|0|90|1013.97755438446
+26|2|12|49|3|1016.97755438446|0|90|1106.97755438446
+27|2|13|47|2|1108.97755438446|0|90|1198.97755438446
+28|2|14|-1|18.0277563773199|1217.00531076178|0|0|1217.00531076178
+29|3|1|-1|0|0|0|0|0
+30|3|2|20|10|10|0|90|100
+31|3|3|24|5|105|0|90|195
+32|3|4|25|2|197|0|90|287
+33|3|5|27|2|289|0|90|379
+34|3|6|29|3.60555127546399|382.605551275464|0|90|472.605551275464
+35|3|7|30|5|477.605551275464|0|90|567.605551275464
+36|3|8|28|3|570.605551275464|0|90|660.605551275464
+37|3|9|26|2|662.605551275464|0|90|752.605551275464
+38|3|10|23|3|755.605551275464|0|0|755.605551275464
+39|3|11|103|0|755.605551275464|0|90|845.605551275464
+40|3|12|22|3|848.605551275464|0|90|938.605551275464
+41|3|13|21|2|940.605551275464|0|90|1030.60555127546
+42|3|14|-1|10.1980390271856|1040.80359030265|0|0|1040.80359030265
+43|4|1|-1|0|0|0|0|0
+44|4|2|32|31.6227766016838|31.6227766016838|0|90|121.622776601684
+45|4|3|33|2|123.622776601684|0|90|213.622776601684
+46|4|4|31|5.3851648071345|219.007941408818|0|90|309.007941408818
+47|4|5|35|5|314.007941408818|0|90|404.007941408818
+48|4|6|37|5.8309518948453|409.838893303664|0|90|499.838893303664
+49|4|7|38|2|501.838893303664|0|90|591.838893303664
+50|4|8|39|5|596.838893303664|0|90|686.838893303664
+51|4|9|36|5|691.838893303664|0|0|691.838893303664
+52|4|10|105|0|691.838893303664|0|90|781.838893303664
+53|4|11|34|3|784.838893303664|0|90|874.838893303664
+54|4|12|-1|32.3882694814033|907.227162785067|0|0|907.227162785067
+55|5|1|-1|0|0|0|0|0
+56|5|2|43|16.5529453572468|16.5529453572468|0|90|106.552945357247
+57|5|3|42|3|109.552945357247|0|90|199.552945357247
+58|5|4|41|2|201.552945357247|0|90|291.552945357247
+59|5|5|40|2|293.552945357247|0|90|383.552945357247
+60|5|6|44|3|386.552945357247|0|90|476.552945357247
+61|5|7|46|2.82842712474619|479.381372481993|0|90|569.381372481993
+62|5|8|45|2|571.381372481993|0|90|661.381372481993
+63|5|9|48|2|663.381372481993|0|90|753.381372481993
+64|5|10|51|3|756.381372481993|0|0|756.381372481993
+65|5|11|101|0|756.381372481993|0|90|846.381372481993
+66|5|12|66|22.561028345357|868.94240082735|0|90|958.94240082735
+67|5|13|69|2|960.94240082735|0|90|1050.94240082735
+68|5|14|-1|15.8113883008419|1066.75378912819|0|0|1066.75378912819
+69|6|1|-1|0|0|0|0|0
+70|6|2|57|35|35|0|90|125
+71|6|3|55|2|127|0|90|217
+72|6|4|54|5|222|0|90|312
+73|6|5|53|5.3851648071345|317.385164807135|0|90|407.385164807135
+74|6|6|56|4|411.385164807135|0|90|501.385164807135
+75|6|7|58|2|503.385164807135|0|90|593.385164807135
+76|6|8|60|3|596.385164807135|0|90|686.385164807135
+77|6|9|59|10.4403065089106|696.825471316045|0|90|786.825471316045
+78|6|10|-1|35.0570962859162|821.882567601961|0|0|821.882567601961
+79|7|1|-1|0|0|0|0|0
+80|7|2|67|12.2065556157337|12.2065556157337|0|90|102.206555615734
+81|7|3|65|1|103.206555615734|0|90|193.206555615734
+82|7|4|63|2|195.206555615734|0|90|285.206555615734
+83|7|5|62|5|290.206555615734|0|90|380.206555615734
+84|7|6|74|3|383.206555615734|0|90|473.206555615734
+85|7|7|72|5|478.206555615734|0|90|568.206555615734
+86|7|8|61|3|571.206555615734|0|90|661.206555615734
+87|7|9|64|2|663.206555615734|0|0|663.206555615734
+88|7|10|102|0|663.206555615734|0|90|753.206555615734
+89|7|11|68|3|756.206555615734|0|90|846.206555615734
+90|7|12|-1|20.6155281280883|866.822083743822|0|0|866.822083743822
+91|8|1|-1|0|0|0|0|0
+92|8|2|81|47.4341649025257|47.4341649025257|0|90|137.434164902526
+93|8|3|78|3|140.434164902526|0|0|140.434164902526
+94|8|4|104|0|140.434164902526|0|90|230.434164902526
+95|8|5|76|2|232.434164902526|0|90|322.434164902526
+96|8|6|71|5|327.434164902526|0|90|417.434164902526
+97|8|7|70|5|422.434164902526|0|90|512.434164902526
+98|8|8|73|3|515.434164902526|0|90|605.434164902526
+99|8|9|77|4|609.434164902526|0|90|699.434164902526
+100|8|10|79|1|700.434164902526|0|90|790.434164902526
+101|8|11|80|5.3851648071345|795.81932970966|0|90|885.81932970966
+102|8|12|-1|51.478150704935|937.297480414595|0|0|937.297480414595
+103|9|1|-1|0|0|0|0|0
+104|9|2|90|20.6155281280883|20.6155281280883|0|90|110.615528128088
+105|9|3|87|5|115.615528128088|0|90|205.615528128088
+106|9|4|86|1|206.615528128088|0|90|296.615528128088
+107|9|5|83|6|302.615528128088|0|90|392.615528128088
+108|9|6|82|3|395.615528128088|0|90|485.615528128088
+109|9|7|84|5.8309518948453|491.446480022934|0|90|581.446480022934
+110|9|8|85|2.82842712474619|584.27490714768|0|90|674.27490714768
+111|9|9|88|3|677.27490714768|0|90|767.27490714768
+112|9|10|89|2.82842712474619|770.103334272426|0|90|860.103334272426
+113|9|11|91|3.60555127546399|863.70888554789|0|90|953.70888554789
+114|9|12|-1|22.3606797749979|976.069565322888|0|0|976.069565322888
+115|10|1|-1|0|0|0|0|0
+116|10|2|98|30.8058436014987|30.8058436014987|0|90|120.805843601499
+117|10|3|96|5.3851648071345|126.191008408633|0|90|216.191008408633
+118|10|4|95|2|218.191008408633|0|90|308.191008408633
+119|10|5|94|3.60555127546399|311.796559684097|0|90|401.796559684097
+120|10|6|92|3.60555127546399|405.402110959561|0|90|495.402110959561
+121|10|7|93|2|497.402110959561|0|90|587.402110959561
+122|10|8|97|5|592.402110959561|0|0|592.402110959561
+123|10|9|106|0|592.402110959561|0|90|682.402110959561
+124|10|10|100|5|687.402110959561|0|90|777.402110959561
+125|10|11|99|5|782.402110959561|0|90|872.402110959561
+126|10|12|-1|33.5410196624968|905.943130622058|0|0|905.943130622058
+127|-2|0|-1|879.42275822512|-1|0|9000|9879.42275822512
+--q2
+1|1|1|1|-1|1|0|0|0|0|0|0
+2|1|1|2|5|2|10|15.1327459504216|15.1327459504216|0|90|105.132745950422
+3|1|1|3|3|2|20|1|106.132745950422|0|90|196.132745950422
+4|1|1|4|5|3|10|2|198.132745950422|0|90|288.132745950422
+5|1|1|5|8|2|30|2.82842712474619|290.961173075168|0|90|380.961173075168
+6|1|1|6|8|3|10|3.60555127546399|384.566724350632|0|90|474.566724350632
+7|1|1|7|11|2|20|3|477.566724350632|0|90|567.566724350632
+8|1|1|8|9|2|30|3.16227766016838|570.7290020108|0|90|660.7290020108
+9|1|1|9|6|2|50|2.23606797749979|662.9650699883|0|90|752.9650699883
+10|1|1|10|9|3|40|2.23606797749979|755.2011379658|0|90|845.2011379658
+11|1|1|11|6|3|20|3.60555127546399|848.806689241264|0|90|938.806689241264
+12|1|1|12|11|3|10|2|940.806689241264|0|90|1030.80668924126
+13|1|1|13|3|3|0|3|1033.80668924126|0|90|1123.80668924126
+14|1|1|14|-1|6|0|15.8113883008419|1139.61807754211|0|0|1139.61807754211
+15|2|1|1|-1|1|0|0|0|0|0|0
+16|2|1|2|13|2|30|30.8058436014987|30.8058436014987|0|90|120.805843601499
+17|2|1|3|13|3|0|4|124.805843601499|0|90|214.805843601499
+18|2|1|4|18|2|20|3|217.805843601499|0|90|307.805843601499
+19|2|1|5|19|2|30|5|312.805843601499|0|90|402.805843601499
+20|2|1|6|19|3|20|5|407.805843601499|0|90|497.805843601499
+21|2|1|7|16|2|60|5|502.805843601499|0|90|592.805843601499
+22|2|1|8|16|3|20|2|594.805843601499|0|90|684.805843601499
+23|2|1|9|18|3|0|3|687.805843601499|0|90|777.805843601499
+24|2|1|10|50|2|10|53.0094331227943|830.815276724293|0|90|920.815276724293
+25|2|1|11|50|3|0|3.16227766016838|923.977554384461|0|90|1013.97755438446
+26|2|1|12|49|2|10|3|1016.97755438446|0|90|1106.97755438446
+27|2|1|13|49|3|0|2|1108.97755438446|0|90|1198.97755438446
+28|2|1|14|-1|6|0|18.0277563773199|1217.00531076178|0|0|1217.00531076178
+29|3|1|1|-1|1|0|0|0|0|0|0
+30|3|1|2|20|2|10|10|10|0|90|100
+31|3|1|3|20|3|0|5|105|0|90|195
+32|3|1|4|25|2|40|2|197|0|90|287
+33|3|1|5|25|3|0|2|289|0|90|379
+34|3|1|6|29|2|10|3.60555127546399|382.605551275464|0|90|472.605551275464
+35|3|1|7|30|2|20|5|477.605551275464|0|90|567.605551275464
+36|3|1|8|28|2|40|3|570.605551275464|0|90|660.605551275464
+37|3|1|9|29|3|30|2|662.605551275464|0|90|752.605551275464
+38|3|1|10|23|2|40|3|755.605551275464|0|0|755.605551275464
+39|3|1|11|23|3|30|0|755.605551275464|0|90|845.605551275464
+40|3|1|12|28|3|10|3|848.605551275464|0|90|938.605551275464
+41|3|1|13|30|3|0|2|940.605551275464|0|90|1030.60555127546
+42|3|1|14|-1|6|0|10.1980390271856|1040.80359030265|0|0|1040.80359030265
+43|4|1|1|-1|1|0|0|0|0|0|0
+44|4|1|2|32|2|30|31.6227766016838|31.6227766016838|0|90|121.622776601684
+45|4|1|3|33|2|70|2|123.622776601684|0|90|213.622776601684
+46|4|1|4|32|3|40|5.3851648071345|219.007941408818|0|90|309.007941408818
+47|4|1|5|35|2|50|5|314.007941408818|0|90|404.007941408818
+48|4|1|6|33|3|10|5.8309518948453|409.838893303664|0|90|499.838893303664
+49|4|1|7|38|2|40|2|501.838893303664|0|90|591.838893303664
+50|4|1|8|35|3|30|5|596.838893303664|0|90|686.838893303664
+51|4|1|9|36|2|40|5|691.838893303664|0|0|691.838893303664
+52|4|1|10|36|3|30|0|691.838893303664|0|90|781.838893303664
+53|4|1|11|38|3|0|3|784.838893303664|0|90|874.838893303664
+54|4|1|12|-1|6|0|32.3882694814033|907.227162785067|0|0|907.227162785067
+55|5|1|1|-1|1|0|0|0|0|0|0
+56|5|1|2|43|2|10|16.5529453572468|16.5529453572468|0|90|106.552945357247
+57|5|1|3|42|2|30|3|109.552945357247|0|90|199.552945357247
+58|5|1|4|43|3|20|2|201.552945357247|0|90|291.552945357247
+59|5|1|5|42|3|0|2|293.552945357247|0|90|383.552945357247
+60|5|1|6|44|2|10|3|386.552945357247|0|90|476.552945357247
+61|5|1|7|44|3|0|2.82842712474619|479.381372481993|0|90|569.381372481993
+62|5|1|8|45|2|10|2|571.381372481993|0|90|661.381372481993
+63|5|1|9|45|3|0|2|663.381372481993|0|90|753.381372481993
+64|5|1|10|51|2|10|3|756.381372481993|0|0|756.381372481993
+65|5|1|11|51|3|0|0|756.381372481993|0|90|846.381372481993
+66|5|1|12|66|2|10|22.561028345357|868.94240082735|0|90|958.94240082735
+67|5|1|13|66|3|0|2|960.94240082735|0|90|1050.94240082735
+68|5|1|14|-1|6|0|15.8113883008419|1066.75378912819|0|0|1066.75378912819
+69|6|1|1|-1|1|0|0|0|0|0|0
+70|6|1|2|57|2|40|35|35|0|90|125
+71|6|1|3|57|3|0|2|127|0|90|217
+72|6|1|4|54|2|40|5|222|0|90|312
+73|6|1|5|53|2|60|5.3851648071345|317.385164807135|0|90|407.385164807135
+74|6|1|6|56|2|90|4|411.385164807135|0|90|501.385164807135
+75|6|1|7|53|3|70|2|503.385164807135|0|90|593.385164807135
+76|6|1|8|54|3|30|3|596.385164807135|0|90|686.385164807135
+77|6|1|9|56|3|0|10.4403065089106|696.825471316045|0|90|786.825471316045
+78|6|1|10|-1|6|0|35.0570962859162|821.882567601961|0|0|821.882567601961
+79|7|1|1|-1|1|0|0|0|0|0|0
+80|7|1|2|67|2|10|12.2065556157337|12.2065556157337|0|90|102.206555615734
+81|7|1|3|65|2|20|1|103.206555615734|0|90|193.206555615734
+82|7|1|4|63|2|70|2|195.206555615734|0|90|285.206555615734
+83|7|1|5|62|2|90|5|290.206555615734|0|90|380.206555615734
+84|7|1|6|63|3|40|3|383.206555615734|0|90|473.206555615734
+85|7|1|7|65|3|30|5|478.206555615734|0|90|568.206555615734
+86|7|1|8|67|3|20|3|571.206555615734|0|90|661.206555615734
+87|7|1|9|64|2|30|2|663.206555615734|0|0|663.206555615734
+88|7|1|10|64|3|20|0|663.206555615734|0|90|753.206555615734
+89|7|1|11|62|3|0|3|756.206555615734|0|90|846.206555615734
+90|7|1|12|-1|6|0|20.6155281280883|866.822083743822|0|0|866.822083743822
+91|8|1|1|-1|1|0|0|0|0|0|0
+92|8|1|2|81|2|30|47.4341649025257|47.4341649025257|0|90|137.434164902526
+93|8|1|3|78|2|50|3|140.434164902526|0|0|140.434164902526
+94|8|1|4|78|3|30|0|140.434164902526|0|90|230.434164902526
+95|8|1|5|76|2|40|2|232.434164902526|0|90|322.434164902526
+96|8|1|6|71|2|60|5|327.434164902526|0|90|417.434164902526
+97|8|1|7|81|3|30|5|422.434164902526|0|90|512.434164902526
+98|8|1|8|76|3|20|3|515.434164902526|0|90|605.434164902526
+99|8|1|9|71|3|0|4|609.434164902526|0|90|699.434164902526
+100|8|1|10|79|2|10|1|700.434164902526|0|90|790.434164902526
+101|8|1|11|79|3|0|5.3851648071345|795.81932970966|0|90|885.81932970966
+102|8|1|12|-1|6|0|51.478150704935|937.297480414595|0|0|937.297480414595
+103|9|1|1|-1|1|0|0|0|0|0|0
+104|9|1|2|90|2|10|20.6155281280883|20.6155281280883|0|90|110.615528128088
+105|9|1|3|87|2|30|5|115.615528128088|0|90|205.615528128088
+106|9|1|4|86|2|40|1|206.615528128088|0|90|296.615528128088
+107|9|1|5|87|3|20|6|302.615528128088|0|90|392.615528128088
+108|9|1|6|82|2|40|3|395.615528128088|0|90|485.615528128088
+109|9|1|7|84|2|60|5.8309518948453|491.446480022934|0|90|581.446480022934
+110|9|1|8|82|3|40|2.82842712474619|584.27490714768|0|90|674.27490714768
+111|9|1|9|90|3|30|3|677.27490714768|0|90|767.27490714768
+112|9|1|10|84|3|10|2.82842712474619|770.103334272426|0|90|860.103334272426
+113|9|1|11|86|3|0|3.60555127546399|863.70888554789|0|90|953.70888554789
+114|9|1|12|-1|6|0|22.3606797749979|976.069565322888|0|0|976.069565322888
+115|10|1|1|-1|1|0|0|0|0|0|0
+116|10|1|2|98|2|20|30.8058436014987|30.8058436014987|0|90|120.805843601499
+117|10|1|3|96|2|30|5.3851648071345|126.191008408633|0|90|216.191008408633
+118|10|1|4|98|3|10|2|218.191008408633|0|90|308.191008408633
+119|10|1|5|96|3|0|3.60555127546399|311.796559684097|0|90|401.796559684097
+120|10|1|6|92|2|20|3.60555127546399|405.402110959561|0|90|495.402110959561
+121|10|1|7|92|3|0|2|497.402110959561|0|90|587.402110959561
+122|10|1|8|97|2|30|5|592.402110959561|0|0|592.402110959561
+123|10|1|9|97|3|0|0|592.402110959561|0|90|682.402110959561
+124|10|1|10|100|2|20|5|687.402110959561|0|90|777.402110959561
+125|10|1|11|100|3|0|5|782.402110959561|0|90|872.402110959561
+126|10|1|12|-1|6|0|33.5410196624968|905.943130622058|0|0|905.943130622058
+127|-2|0|0|-1|-1|-1|879.42275822512|-1|0|9000|9879.42275822512
+--q3
diff --git a/src/pickDeliver/test/pickDeliver.test.sql b/src/pickDeliver/test/pickDeliver.test.sql
new file mode 100644
index 0000000..9dc7ce2
--- /dev/null
+++ b/src/pickDeliver/test/pickDeliver.test.sql
@@ -0,0 +1,10 @@
+\echo --q1
+SELECT * FROM _pgr_pickDeliver(
+    'select * from customer order by id', 25, 200, 1, 30);
+\echo --q2
+
+SELECT * FROM _pgr_pickDeliverEuclidean(
+    'SELECT * FROM orders ORDER BY id',
+    'SELECT * FROM vehicles',
+    30);
+\echo --q3
diff --git a/src/pickDeliver/test/test.conf b/src/pickDeliver/test/test.conf
index 77a5cc8..afade98 100644
--- a/src/pickDeliver/test/test.conf
+++ b/src/pickDeliver/test/test.conf
@@ -3,19 +3,38 @@
 %main::tests = (
     'any' => {
         'comment' => 'Function test for any versions.',
-        'data' => ['pickDeliver.data'],
+        'data' => [],
         'tests' => [qw(
             doc-pickDeliver
-            jet_customers
+            doc-pickDeliverEuclidean
+            past_example
+            )],
+
+        # TODO when finished test results in other systems
+        'windowsssssssssss' => [qw(
+            cygwin-pickDeliver
+            doc-pickDeliverEuclidean-cygwin
+            )],
+        'linux' => [qw(
+            design_pgtap
             )],
+
         'documentation' => [qw(
             doc-pickDeliver
+            doc-pickDeliverEuclidean
             )],
 
 #put here the ones that you are not testing (just a place holder)
         'nottesting' => [qw(
+            jet_customers
+            differentVechiles
+            jet_customers1
+            book_from_query
+
             )]
     },
 );
 
+#            '../../../tools/testers/pickDeliver_pgtap_data.sql',
+#            '../../../tools/testers/vrppdtw_data.sql' ],
 1;
diff --git a/src/topology/doc/doc-pgr_createTopology.queries b/src/topology/doc/doc-pgr_createTopology.queries
deleted file mode 100644
index a20f5f9..0000000
--- a/src/topology/doc/doc-pgr_createTopology.queries
+++ /dev/null
@@ -1,262 +0,0 @@
-BEGIN;
-BEGIN
-SET client_min_messages TO NOTICE;
-SET
-DROP TABLE edge_table_vertices_pgr;
-DROP TABLE
-UPDATE edge_table SET source = NULL,  target = NULL;
-UPDATE 18
---q1
-SELECT  pgr_createTopology('edge_table', 0.001);
-NOTICE:  PROCESSING:
-NOTICE:  pgr_createTopology('edge_table', 0.001, 'the_geom', 'id', 'source', 'target', rows_where := 'true', clean := f)
-NOTICE:  Performing checks, please wait .....
-NOTICE:  Creating Topology, Please wait...
-NOTICE:  -------------> TOPOLOGY CREATED FOR  18 edges
-NOTICE:  Rows with NULL geometry or NULL id: 0
-NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
-NOTICE:  ----------------------------------------------
- pgr_createtopology 
---------------------
- OK
-(1 row)
-
---q1.1
-DROP TABLE edge_table_vertices_pgr;
-DROP TABLE
-UPDATE edge_table SET source = NULL,  target = NULL;
-UPDATE 18
---q2
-SELECT  pgr_createTopology('edge_table', 0.001,
-    'the_geom', 'id', 'source', 'target');
-NOTICE:  PROCESSING:
-NOTICE:  pgr_createTopology('edge_table', 0.001, 'the_geom', 'id', 'source', 'target', rows_where := 'true', clean := f)
-NOTICE:  Performing checks, please wait .....
-NOTICE:  Creating Topology, Please wait...
-NOTICE:  -------------> TOPOLOGY CREATED FOR  18 edges
-NOTICE:  Rows with NULL geometry or NULL id: 0
-NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
-NOTICE:  ----------------------------------------------
- pgr_createtopology 
---------------------
- OK
-(1 row)
-
---q2.1
-SET client_min_messages TO NOTICE;
-SET
---q3
-SELECT  pgr_createTopology('edge_table', 0.001,
-    'id', 'the_geom');
-NOTICE:  PROCESSING:
-NOTICE:  pgr_createTopology('edge_table', 0.001, 'id', 'the_geom', 'source', 'target', rows_where := 'true', clean := f)
-NOTICE:  Performing checks, please wait .....
-NOTICE:  ----> PGR ERROR in pgr_createTopology: Wrong type of Column id:the_geom
-NOTICE:  Unexpected error raise_exception
- pgr_createtopology 
---------------------
- FAIL
-(1 row)
-
---q3.1
-SET client_min_messages TO WARNING;
-SET
-DROP TABLE edge_table_vertices_pgr;
-DROP TABLE
-UPDATE edge_table SET source = NULL,  target = NULL;
-UPDATE 18
---q4
-SELECT  pgr_createTopology('edge_table', 0.001,
-    the_geom:='the_geom', id:='id', source:='source', target:='target');
- pgr_createtopology 
---------------------
- OK
-(1 row)
-
---q4.1
-DROP TABLE edge_table_vertices_pgr;
-DROP TABLE
-UPDATE edge_table SET source = NULL,  target = NULL;
-UPDATE 18
---q5
-SELECT  pgr_createTopology('edge_table', 0.001,
-    source:='source', id:='id', target:='target', the_geom:='the_geom');
- pgr_createtopology 
---------------------
- OK
-(1 row)
-
---q5.1
-DROP TABLE edge_table_vertices_pgr;
-DROP TABLE
-UPDATE edge_table SET source = NULL,  target = NULL;
-UPDATE 18
---q6
-SELECT  pgr_createTopology('edge_table', 0.001, source:='source');
- pgr_createtopology 
---------------------
- OK
-(1 row)
-
---q6.1
---q7
-SELECT  pgr_createTopology('edge_table', 0.001, rows_where:='id < 10');
- pgr_createtopology 
---------------------
- OK
-(1 row)
-
---q7.1
---q8
-SELECT  pgr_createTopology('edge_table', 0.001,
-    rows_where:='the_geom && (SELECT st_buffer(the_geom, 0.05) FROM edge_table WHERE id=5)');
- pgr_createtopology 
---------------------
- OK
-(1 row)
-
---q8.1
---q9
-CREATE TABLE otherTable AS  (SELECT 100 AS gid,  st_point(2.5, 2.5) AS other_geom);
-SELECT 1
-SELECT  pgr_createTopology('edge_table', 0.001,
-    rows_where:='the_geom && (SELECT st_buffer(other_geom, 1) FROM otherTable WHERE gid=100)');
- pgr_createtopology 
---------------------
- OK
-(1 row)
-
---q9.1
---q10
-CREATE TABLE mytable AS (SELECT id AS gid,  the_geom AS mygeom, source AS src , target AS tgt FROM edge_table) ;
-SELECT 18
---q10.1
---q11
-SELECT  pgr_createTopology('mytable', 0.001, 'mygeom', 'gid', 'src', 'tgt', clean := TRUE);
- pgr_createtopology 
---------------------
- OK
-(1 row)
-
---q11.1
-DROP TABLE mytable_vertices_pgr;
-DROP TABLE
-UPDATE mytable SET src = NULL,  tgt = NULL;
-UPDATE 18
-SET client_min_messages TO NOTICE;
-SET
---q12
-SELECT  pgr_createTopology('mytable', 0.001, 'gid', 'mygeom', 'src', 'tgt');
-NOTICE:  PROCESSING:
-NOTICE:  pgr_createTopology('mytable', 0.001, 'gid', 'mygeom', 'src', 'tgt', rows_where := 'true', clean := f)
-NOTICE:  Performing checks, please wait .....
-NOTICE:  ----> PGR ERROR in pgr_createTopology: Wrong type of Column id:mygeom
-NOTICE:  Unexpected error raise_exception
- pgr_createtopology 
---------------------
- FAIL
-(1 row)
-
---q12.1
-SET client_min_messages TO WARNING;
-SET
---q13
-SELECT  pgr_createTopology('mytable', 0.001, the_geom:='mygeom', id:='gid', source:='src', target:='tgt');
- pgr_createtopology 
---------------------
- OK
-(1 row)
-
---q13.1
-DROP TABLE mytable_vertices_pgr;
-DROP TABLE
-UPDATE mytable SET src = NULL,  tgt = NULL;
-UPDATE 18
---q14
-SELECT  pgr_createTopology('mytable', 0.001, source:='src', id:='gid', target:='tgt', the_geom:='mygeom');
- pgr_createtopology 
---------------------
- OK
-(1 row)
-
---q14.1
---q15
-SELECT  pgr_createTopology('mytable', 0.001, 'mygeom', 'gid', 'src', 'tgt', rows_where:='gid < 10');
- pgr_createtopology 
---------------------
- OK
-(1 row)
-
-SELECT  pgr_createTopology('mytable', 0.001, source:='src', id:='gid', target:='tgt', the_geom:='mygeom', rows_where:='gid < 10');
- pgr_createtopology 
---------------------
- OK
-(1 row)
-
-SELECT  pgr_createTopology('mytable', 0.001, 'mygeom', 'gid', 'src', 'tgt', 
-    rows_where:='mygeom && (SELECT st_buffer(mygeom, 1) FROM mytable WHERE gid=5)');
- pgr_createtopology 
---------------------
- OK
-(1 row)
-
-SELECT  pgr_createTopology('mytable', 0.001, source:='src', id:='gid', target:='tgt', the_geom:='mygeom', 
-    rows_where:='mygeom && (SELECT st_buffer(mygeom, 1) FROM mytable WHERE gid=5)');
- pgr_createtopology 
---------------------
- OK
-(1 row)
-
---q15.1
---q16
-SELECT  pgr_createTopology('mytable', 0.001, 'mygeom', 'gid', 'src', 'tgt', 
-    rows_where:='mygeom && (SELECT st_buffer(other_geom, 1) FROM otherTable WHERE gid=100)');
- pgr_createtopology 
---------------------
- OK
-(1 row)
-
-SELECT  pgr_createTopology('mytable', 0.001, source:='src', id:='gid', target:='tgt', the_geom:='mygeom', 
-    rows_where:='mygeom && (SELECT st_buffer(other_geom, 1) FROM otherTable WHERE gid=100)');
- pgr_createtopology 
---------------------
- OK
-(1 row)
-
---q16.1
-SET client_min_messages TO NOTICE;
-SET
---q17
-SELECT pgr_createTopology('edge_table',  0.001, rows_where:='id < 6', clean := true);
-NOTICE:  PROCESSING:
-NOTICE:  pgr_createTopology('edge_table', 0.001, 'the_geom', 'id', 'source', 'target', rows_where := 'id < 6', clean := t)
-NOTICE:  Performing checks, please wait .....
-NOTICE:  Creating Topology, Please wait...
-NOTICE:  -------------> TOPOLOGY CREATED FOR  5 edges
-NOTICE:  Rows with NULL geometry or NULL id: 0
-NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
-NOTICE:  ----------------------------------------------
- pgr_createtopology 
---------------------
- OK
-(1 row)
-
-SELECT pgr_createTopology('edge_table',  0.001);
-NOTICE:  PROCESSING:
-NOTICE:  pgr_createTopology('edge_table', 0.001, 'the_geom', 'id', 'source', 'target', rows_where := 'true', clean := f)
-NOTICE:  Performing checks, please wait .....
-NOTICE:  Creating Topology, Please wait...
-NOTICE:  -------------> TOPOLOGY CREATED FOR  13 edges
-NOTICE:  Rows with NULL geometry or NULL id: 0
-NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
-NOTICE:  ----------------------------------------------
- pgr_createtopology 
---------------------
- OK
-(1 row)
-
---q17.1
-SET client_min_messages TO NOTICE;
-SET
-ROLLBACK;
-ROLLBACK
diff --git a/src/topology/doc/pgr_analyzeGraph.rst b/src/topology/doc/pgr_analyzeGraph.rst
deleted file mode 100644
index e8feffe..0000000
--- a/src/topology/doc/pgr_analyzeGraph.rst
+++ /dev/null
@@ -1,376 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_analyze_graph:
-
-pgr_analyzeGraph
-===============================================================================
-
-
-Name
--------------------------------------------------------------------------------
-
-``pgr_analyzeGraph`` — Analyzes the network topology.
-
-
-Synopsis
--------------------------------------------------------------------------------
-
-The function returns:
-
-  - ``OK`` after the analysis has finished.
-  - ``FAIL`` when the analysis was not completed due to an error.
-
-.. index::
-	single: analyzeGraph(Complete Signature)
-
-.. code-block:: sql
-
-	varchar pgr_analyzeGraph(text edge_table, double precision tolerance,
-                           text the_geom:='the_geom', text id:='id',
-                           text source:='source',text target:='target',text rows_where:='true')
-
-Description
--------------------------------------------------------------------------------
-
-.. rubric:: Prerequisites
-
-The  edge table to be analyzed must contain a source column and a target column filled with id's of the vertices of the segments and the corresponding vertices table <edge_table>_vertices_pgr that stores the vertices information.
-
-  - Use :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create the vertices table.
-  - Use :ref:`pgr_createTopology <pgr_create_topology>` to create the topology and the vertices table.
-
-.. rubric:: Parameters
-
-The analyze graph function accepts the following parameters:
-
-:edge_table: ``text`` Network table name. (may contain the schema name as well)
-:tolerance: ``float8`` Snapping tolerance of disconnected edges. (in projection unit)
-:the_geom: ``text``  Geometry column name of the network table. Default value is ``the_geom``.
-:id: ``text``  Primary key column name of the network table. Default value is ``id``.
-:source: ``text`` Source column name of the network table. Default value is ``source``.
-:target: ``text``  Target column name of the network table.  Default value is ``target``.
-:rows_where: ``text``   Condition to select  a subset or rows.  Default value is ``true`` to indicate all rows.
-
-The function returns:
-
-  - ``OK`` after the analysis has finished.
-
-    * Uses the vertices table: <edge_table>_vertices_pgr.
-    * Fills completely the ``cnt`` and ``chk`` columns of the vertices table.
-    * Returns the analysis of the section of the network defined by  ``rows_where``
-
-  - ``FAIL`` when the analysis was not completed due to an error.
-
-    * The vertices table is not found.
-    * A required column of the Network table is not found or is not of the appropriate type.
-    * The condition is not well formed.
-    * The names of source , target or id are the same.
-    * The SRID of the geometry could not be determined.
-
-
-.. rubric:: The Vertices Table
-
-The vertices table can be created with :ref:`pgr_createVerticesTable <pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>`
-
-The structure of the vertices table is:
-
-:id: ``bigint`` Identifier of the vertex.
-:cnt: ``integer`` Number of vertices in the edge_table that reference this vertex.
-:chk: ``integer``  Indicator that the vertex might have a problem.
-:ein: ``integer`` Number of vertices in the edge_table that reference this vertex as incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`.
-:eout: ``integer`` Number of vertices in the edge_table that reference this vertex as outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`.
-:the_geom: ``geometry`` Point geometry of the vertex.
-
-.. rubric:: History
-
-* New in version 2.0.0
-
-Usage when the edge table's columns MATCH the default values:
--------------------------------------------------------------------------------
-
-.. rubric:: The simplest way to use pgr_analyzeGraph is:
-
-.. code-block:: sql
-
-	 SELECT  pgr_createTopology('edge_table',0.001);
-	 SELECT  pgr_analyzeGraph('edge_table',0.001);
-
-.. rubric:: When the arguments are given in the order described in the parameters:
-
-.. code-block:: sql
-
-	 SELECT  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target');
-
-We get the same result as the simplest way to use the function.
-
-.. warning::  | An error would occur when the arguments are not given in the appropriate order: In this example, the column ``id`` of the table ``mytable`` is passed to the function as the geometry column, and the geometry column ``the_geom`` is passed to the function as the id column.
- | ``SELECT  pgr_analyzeGraph('edge_table',0.001,'id','the_geom','source','target');``
- | ERROR: Can not determine the srid of the geometry "id" in table public.edge_table
-
-.. rubric:: When using the named notation
-
-The order of the parameters do not matter:
-
-.. code-block:: sql
-
-	 SELECT  pgr_analyzeGraph('edge_table',0.001,the_geom:='the_geom',id:='id',source:='source',target:='target');
-
-.. code-block:: sql
-
-	 SELECT  pgr_analyzeGraph('edge_table',0.001,source:='source',id:='id',target:='target',the_geom:='the_geom');
-
-Parameters defined with a default value can be omitted, as long as the value matches the default:
-
-.. code-block:: sql
-
-	 SELECT  pgr_analyzeGraph('edge_table',0.001,source:='source');
-
-.. rubric:: Selecting rows using rows_where parameter
-
-Selecting rows based on the id. Displays the analysis a the section of the network.
-
-.. code-block:: sql
-
-	 SELECT  pgr_analyzeGraph('edge_table',0.001,rows_where:='id < 10');
-
-Selecting the rows where the geometry is near the geometry of row with ``id`` =5 .
-
-.. code-block:: sql
-
-	 SELECT  pgr_analyzeGraph('edge_table',0.001,rows_where:='the_geom && (SELECT st_buffer(the_geom,0.05) FROM edge_table WHERE id=5)');
-
-Selecting the rows where the geometry is near the geometry of the row with ``gid`` =100 of the table ``othertable``.
-
-.. code-block:: sql
-
-        DROP TABLE IF EXISTS otherTable;
-	CREATE TABLE otherTable AS  (SELECT 100 AS gid, st_point(2.5,2.5) AS other_geom) ;
-	SELECT  pgr_analyzeGraph('edge_table',0.001,rows_where:='the_geom && (SELECT st_buffer(other_geom,1) FROM otherTable WHERE gid=100)');
-
-
-
-Usage when the edge table's columns DO NOT MATCH the default values:
--------------------------------------------------------------------------------
-
-For the following table
-
-.. code-block:: sql
-
-	DROP TABLE IF EXISTS mytable;
-	CREATE TABLE mytable AS (SELECT id AS gid, source AS src ,target AS tgt , the_geom AS mygeom FROM edge_table);
-	SELECT pgr_createTopology('mytable',0.001,'mygeom','gid','src','tgt');
-
-.. rubric:: Using positional notation:
-
-The arguments need to be given in the order described in the parameters:
-
-.. code-block:: sql
-
-	 SELECT  pgr_analyzeGraph('mytable',0.001,'mygeom','gid','src','tgt');
-
-.. warning::  | An error would occur when the arguments are not given in the appropriate order: In this example, the column ``gid`` of the table ``mytable`` is passed to the function as the geometry column, and the geometry column ``mygeom`` is passed to the function as the id column.
- | ``SELECT  pgr_analyzeGraph('mytable',0.001,'gid','mygeom','src','tgt');``
- | ERROR: Can not determine the srid of the geometry "gid" in table public.mytable
-
-
-.. rubric:: When using the named notation
-
-The order of the parameters do not matter:
-
-.. code-block:: sql
-
-	 SELECT  pgr_analyzeGraph('mytable',0.001,the_geom:='mygeom',id:='gid',source:='src',target:='tgt');
-
-.. code-block:: sql
-
-	 SELECT  pgr_analyzeGraph('mytable',0.001,source:='src',id:='gid',target:='tgt',the_geom:='mygeom');
-
-In this scenario omitting a parameter would create an error because the default values for the column names do not match the column names of the table.
-
-
-.. rubric:: Selecting rows using rows_where parameter
-
-Selecting rows based on the id.
-
-.. code-block:: sql
-
-	 SELECT  pgr_analyzeGraph('mytable',0.001,'mygeom','gid','src','tgt',rows_where:='gid < 10');
-
-.. code-block:: sql
-
-	 SELECT  pgr_analyzeGraph('mytable',0.001,source:='src',id:='gid',target:='tgt',the_geom:='mygeom',rows_where:='gid < 10');
-
-Selecting the rows WHERE the geometry is near the geometry of row with ``id`` =5 .
-
-.. code-block:: sql
-
-	 SELECT  pgr_analyzeGraph('mytable',0.001,'mygeom','gid','src','tgt',
-	                            rows_where:='mygeom && (SELECT st_buffer(mygeom,1) FROM mytable WHERE gid=5)');
-
-.. code-block:: sql
-
-	 SELECT  pgr_analyzeGraph('mytable',0.001,source:='src',id:='gid',target:='tgt',the_geom:='mygeom',
-	                            rows_where:='mygeom && (SELECT st_buffer(mygeom,1) FROM mytable WHERE gid=5)');
-
-Selecting the rows WHERE the geometry is near the place='myhouse' of the table ``othertable``. (note the use of quote_literal)
-
-.. code-block:: sql
-
-        DROP TABLE IF EXISTS otherTable;
-	CREATE TABLE otherTable AS  (SELECT 'myhouse'::text AS place, st_point(2.5,2.5) AS other_geom) ;
-	SELECT  pgr_analyzeGraph('mytable',0.001,'mygeom','gid','src','tgt',
-                 rows_where:='mygeom && (SELECT st_buffer(other_geom,1) FROM otherTable WHERE place='||quote_literal('myhouse')||')');
-
-.. code-block:: sql
-
-	 SELECT  pgr_analyzeGraph('mytable',0.001,source:='src',id:='gid',target:='tgt',the_geom:='mygeom',
-                 rows_where:='mygeom && (SELECT st_buffer(other_geom,1) FROM otherTable WHERE place='||quote_literal('myhouse')||')');
-
-
-
-Examples
--------------------------------------------------------------------------------
-
-.. code-block:: sql
-
-	SELECT  pgr_createTopology('edge_table',0.001);
-	SELECT pgr_analyzeGraph('edge_table', 0.001);
-	NOTICE:  PROCESSING:
-	NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','true')
-	NOTICE:  Performing checks, pelase wait...
-	NOTICE:  Analyzing for dead ends. Please wait...
-	NOTICE:  Analyzing for gaps. Please wait...
-	NOTICE:  Analyzing for isolated edges. Please wait...
-	NOTICE:  Analyzing for ring geometries. Please wait...
-	NOTICE:  Analyzing for intersections. Please wait...
-	NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
-	NOTICE:                    Isolated segments: 2
-	NOTICE:                            Dead ends: 7
-	NOTICE:  Potential gaps found near dead ends: 1
-	NOTICE:               Intersections detected: 1
-	NOTICE:                      Ring geometries: 0
-
-	 pgr_analyzeGraph
-	--------------------
-	 OK
-	(1 row)
-
-	SELECT  pgr_analyzeGraph('edge_table',0.001,rows_where:='id < 10');
-	NOTICE:  PROCESSING:
-	NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','id < 10')
-	NOTICE:  Performing checks, pelase wait...
-	NOTICE:  Analyzing for dead ends. Please wait...
-	NOTICE:  Analyzing for gaps. Please wait...
-	NOTICE:  Analyzing for isolated edges. Please wait...
-	NOTICE:  Analyzing for ring geometries. Please wait...
-	NOTICE:  Analyzing for intersections. Please wait...
-	NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
-	NOTICE:                    Isolated segments: 0
-	NOTICE:                            Dead ends: 4
-	NOTICE:  Potential gaps found near dead ends: 0
-	NOTICE:               Intersections detected: 0
-	NOTICE:                      Ring geometries: 0
-
-	 pgr_analyzeGraph
-	--------------------
-	 OK
-	(1 row)
-
-	SELECT  pgr_analyzeGraph('edge_table',0.001,rows_where:='id >= 10');
-	NOTICE:  PROCESSING:
-	NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','id >= 10')
-	NOTICE:  Performing checks, pelase wait...
-	NOTICE:  Analyzing for dead ends. Please wait...
-	NOTICE:  Analyzing for gaps. Please wait...
-	NOTICE:  Analyzing for isolated edges. Please wait...
-	NOTICE:  Analyzing for ring geometries. Please wait...
-	NOTICE:  Analyzing for intersections. Please wait...
-	NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
-	NOTICE:                    Isolated segments: 2
-	NOTICE:                            Dead ends: 8
-	NOTICE:  Potential gaps found near dead ends: 1
-	NOTICE:               Intersections detected: 1
-	NOTICE:                      Ring geometries: 0
-
-	 pgr_analyzeGraph
-	--------------------
-	 OK
-	(1 row)
-
-	-- Simulate removal of edges
-	SELECT pgr_createTopology('edge_table', 0.001,rows_where:='id <17');
-	SELECT pgr_analyzeGraph('edge_table', 0.001);
-	NOTICE:  PROCESSING:
-	NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','true')
-	NOTICE:  Performing checks, pelase wait...
-	NOTICE:  Analyzing for dead ends. Please wait...
-	NOTICE:  Analyzing for gaps. Please wait...
-	NOTICE:  Analyzing for isolated edges. Please wait...
-	NOTICE:  Analyzing for ring geometries. Please wait...
-	NOTICE:  Analyzing for intersections. Please wait...
-	NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
-	NOTICE:                    Isolated segments: 0
-	NOTICE:                            Dead ends: 3
-	NOTICE:  Potential gaps found near dead ends: 0
-	NOTICE:               Intersections detected: 0
-	NOTICE:                      Ring geometries: 0
-
-	 pgr_analyzeGraph
-	--------------------
-	 OK
-	(1 row)
-    SELECT pgr_createTopology('edge_table', 0.001,rows_where:='id <17');
-    NOTICE:  PROCESSING:
-    NOTICE:  pgr_createTopology('edge_table',0.001,'the_geom','id','source','target','id <17')
-    NOTICE:  Performing checks, pelase wait .....
-    NOTICE:  Creating Topology, Please wait...
-    NOTICE:  -------------> TOPOLOGY CREATED FOR  16 edges
-    NOTICE:  Rows with NULL geometry or NULL id: 0
-    NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
-    NOTICE:  ----------------------------------------------
-
-	 pgr_analyzeGraph
-	--------------------
-	 OK
-	(1 row)
-
-    SELECT pgr_analyzeGraph('edge_table', 0.001);
-    NOTICE:  PROCESSING:
-    NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','true')
-    NOTICE:  Performing checks, pelase wait...
-    NOTICE:  Analyzing for dead ends. Please wait...
-    NOTICE:  Analyzing for gaps. Please wait...
-    NOTICE:  Analyzing for isolated edges. Please wait...
-    NOTICE:  Analyzing for ring geometries. Please wait...
-    NOTICE:  Analyzing for intersections. Please wait...
-    NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
-    NOTICE:                    Isolated segments: 0
-    NOTICE:                            Dead ends: 3
-    NOTICE:  Potential gaps found near dead ends: 0
-    NOTICE:               Intersections detected: 0
-    NOTICE:                      Ring geometries: 0
-
-	 pgr_analyzeGraph
-	--------------------
-	 OK
-	(1 row)
-
-
-The examples use the :ref:`sampledata` network.
-
-
-See Also
--------------------------------------------------------------------------------
-
-* :ref:`topology`  for an overview of a topology for routing algorithms.
-* :ref:`pgr_analyze_oneway` to analyze directionality of the edges.
-* :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to reconstruct the vertices table based on the source and target information.
-* :ref:`pgr_nodeNetwork <pgr_node_network>` to create nodes to a not noded edge table.
-
diff --git a/src/topology/doc/pgr_analyzeOneWay.rst b/src/topology/doc/pgr_analyzeOneWay.rst
deleted file mode 100644
index 8ed5716..0000000
--- a/src/topology/doc/pgr_analyzeOneWay.rst
+++ /dev/null
@@ -1,139 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_analyze_oneway:
-
-pgr_analyzeOneway
-===============================================================================
-
-
-Name
--------------------------------------------------------------------------------
-
-``pgr_analyzeOneway`` — Analyzes oneway Sstreets and identifies flipped segments.
-
-
-Synopsis
--------------------------------------------------------------------------------
-
-This function analyzes oneway streets in a graph and identifies any flipped segments.
-
-.. index::
-	single: analyzeOneway(Complete Signature)
-
-.. code-block:: sql
-
-	text pgr_analyzeOneway(geom_table text,
-			       text[] s_in_rules, text[] s_out_rules,
-                               text[] t_in_rules, text[] t_out_rules,
-			       text oneway='oneway', text source='source', text target='target',
-			       boolean two_way_if_null=true);
-
-
-Description
--------------------------------------------------------------------------------
-
-The analyses of one way segments is pretty simple but can be a powerful tools to identifying some the potential problems created by setting the direction of a segment the wrong way. A node is a `source` if it has edges the exit from that node and no edges enter that node. Conversely, a node is a `sink` if all edges enter the node but none exit that node. For a `source` type node it is logically impossible to exist because no vehicle can exit the node if no vehicle and enter the node. Lik [...]
-
-So why do we care if the are not feasible? Well if the direction of an edge was reversed by mistake we could generate exactly these conditions. Think about a divided highway and on the north bound lane one segment got entered wrong or maybe a sequence of multiple segments got entered wrong or maybe this happened on a round-about. The result would be potentially a `source` and/or a `sink` node.
-
-So by counting the number of edges entering and exiting each node we can identify both `source` and `sink` nodes so that you can look at those areas of your network to make repairs and/or report the problem back to your data vendor.
-
-.. rubric:: Prerequisites
-
-The  edge table to be analyzed must contain a source column and a target column filled with id's of the vertices of the segments and the corresponding vertices table <edge_table>_vertices_pgr that stores the vertices information.
-
-  - Use :ref:`pgr_createVerticesTable <pgr_create_vert_table>` to create the vertices table.
-  - Use :ref:`pgr_createTopology <pgr_create_topology>` to create the topology and the vertices table.
-
-.. rubric:: Parameters
-
-:edge_table: ``text`` Network table name. (may contain the schema name as well)
-:s_in_rules: ``text[]`` source node **in** rules
-:s_out_rules: ``text[]`` source node **out** rules
-:t_in_rules: ``text[]`` target node **in** rules
-:t_out_rules: ``text[]`` target node **out** rules
-:oneway: ``text`` oneway column name name of the network table. Default value is ``oneway``.
-:source: ``text`` Source column name of the network table. Default value is ``source``.
-:target: ``text``  Target column name of the network table.  Default value is ``target``.
-:two_way_if_null: ``boolean`` flag to treat oneway NULL values as bi-directional.  Default value is ``true``.
-
-.. note:: It is strongly recommended to use the named notation. See :ref:`pgr_createVerticesTable <pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>` for examples.
-
-
-The function returns:
-
-  - ``OK`` after the analysis has finished.
-
-    * Uses the vertices table: <edge_table>_vertices_pgr.
-    * Fills completely the ``ein`` and ``eout`` columns of the vertices table.
-
-  - ``FAIL`` when the analysis was not completed due to an error.
-
-    * The vertices table is not found.
-    * A required column of the Network table is not found or is not of the appropriate type.
-    * The names of source , target or oneway are the same.
-
-The rules are defined as an array of text strings that if match the ``oneway`` value would be counted as ``true`` for the source or target **in** or **out** condition.
-
-.. rubric:: The Vertices Table
-
-The vertices table can be created with :ref:`pgr_createVerticesTable <pgr_create_vert_table>` or :ref:`pgr_createTopology <pgr_create_topology>`
-
-The structure of the vertices table is:
-
-:id: ``bigint`` Identifier of the vertex.
-:cnt: ``integer`` Number of vertices in the edge_table that reference this vertex. See :ref:`pgr_analyzeGgraph <pgr_analyze_graph>`.
-:chk: ``integer``  Indicator that the vertex might have a problem. See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`.
-:ein: ``integer`` Number of vertices in the edge_table that reference this vertex as incoming.
-:eout: ``integer`` Number of vertices in the edge_table that reference this vertex as outgoing.
-:the_geom: ``geometry`` Point geometry of the vertex.
-
-
-.. rubric:: History
-
-* New in version 2.0.0
-
-
-Examples
--------------------------------------------------------------------------------
-
-.. code-block:: sql
-
-	SELECT pgr_analyzeOneway('edge_table',
-        ARRAY['', 'B', 'TF'],
-        ARRAY['', 'B', 'FT'],
-        ARRAY['', 'B', 'FT'],
-        ARRAY['', 'B', 'TF'],
-        oneway:='dir');
-	NOTICE:  PROCESSING:
-	NOTICE:  pgr_analyzeGraph('edge_table','{"",B,TF}','{"",B,FT}','{"",B,FT}','{"",B,TF}','dir','source','target',t)
-	NOTICE:  Analyzing graph for one way street errors.
-	NOTICE:  Analysis 25% complete ...
-	NOTICE:  Analysis 50% complete ...
-	NOTICE:  Analysis 75% complete ...
-	NOTICE:  Analysis 100% complete ...
-	NOTICE:  Found 0 potential problems in directionality
-
-	pgr_analyzeoneway
-	-------------------
-	OK
-	(1 row)
-
-The queries use the :ref:`sampledata` network.
-
-
-See Also
--------------------------------------------------------------------------------
-
-* :ref:`topology`  for an overview of a topology for routing algorithms.
-* :ref:`analytics` for an overview of the analysis of a graph.
-* :ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge table.
-* :ref:`pgr_create_vert_table` to reconstruct the vertices table based on the source and target information.
-
diff --git a/src/topology/doc/pgr_createTopology.rst b/src/topology/doc/pgr_createTopology.rst
deleted file mode 100644
index 17a5b02..0000000
--- a/src/topology/doc/pgr_createTopology.rst
+++ /dev/null
@@ -1,256 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_create_topology:
-
-pgr_createTopology
-===============================================================================
-
-Name
--------------------------------------------------------------------------------
-
-``pgr_createTopology`` — Builds a network topology based on the geometry information.
-
-
-Synopsis
--------------------------------------------------------------------------------
-
-The function returns:
-
-  - ``OK`` after the network topology has been built and the vertices table created.
-  - ``FAIL`` when the network topology was not built due to an error.
-
-.. index::
-	single: createTopology(Complete Signature)
-
-.. code-block:: none
-
-	varchar pgr_createTopology(text edge_table, double precision tolerance,
-                           text the_geom:='the_geom', text id:='id',
-                           text source:='source',text target:='target',
-                           text rows_where:='true', boolean clean:=false)
-
-
-
-Description
--------------------------------------------------------------------------------
-
-.. rubric:: Parameters
-
-The topology creation function accepts the following parameters:
-
-:edge_table: ``text`` Network table name. (may contain the schema name AS well)
-:tolerance: ``float8`` Snapping tolerance of disconnected edges. (in projection unit)
-:the_geom: ``text``  Geometry column name of the network table. Default value is ``the_geom``.
-:id: ``text``  Primary key column name of the network table. Default value is ``id``.
-:source: ``text`` Source column name of the network table. Default value is ``source``.
-:target: ``text``  Target column name of the network table.  Default value is ``target``.
-:rows_where: ``text``   Condition to SELECT a subset or rows.  Default value is ``true`` to indicate
- all rows that where ``source`` or ``target`` have a null value, otherwise the condition is used.
-:clean: ``boolean`` Clean any previous topology.  Default value is ``false``.
-
-.. warning::
-
-    The ``edge_table`` will be affected
-
-	- The ``source`` column values will change.
-	- The ``target`` column values will change.
-        - An index will be created, if it doesn't exists, to speed up the process to the following columns:
-
-	   * ``id``
-	   * ``the_geom``
-	   * ``source``
-	   * ``target``
-
-The function returns:
-
-  - ``OK`` after the network topology has been built.
-
-    * Creates a vertices table: <edge_table>_vertices_pgr.
-    * Fills ``id`` and ``the_geom`` columns of the vertices table.
-    * Fills the source and target columns of the edge table referencing the ``id`` of the vertices table.
-
-
-  - ``FAIL`` when the network topology was not built due to an error:
-
-    * A required column of the Network table is not found or is not of the appropriate type.
-    * The condition is not well formed.
-    * The names of source , target or id are the same.
-    * The SRID of the geometry could not be determined.
-
-
-.. rubric:: The Vertices Table
-
-The vertices table is a requirement of the :ref:`pgr_analyzeGraph <pgr_analyze_graph>` and the :ref:`pgr_analyzeOneway <pgr_analyze_oneway>` functions.
-
-The structure of the vertices table is:
-
-:id: ``bigint`` Identifier of the vertex.
-:cnt: ``integer`` Number of vertices in the edge_table that reference this vertex. See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`.
-:chk: ``integer``  Indicator that the vertex might have a problem. See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`.
-:ein: ``integer`` Number of vertices in the edge_table that reference this vertex AS incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`.
-:eout: ``integer`` Number of vertices in the edge_table that reference this vertex AS outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`.
-:the_geom: ``geometry`` Point geometry of the vertex.
-
-.. rubric:: History
-
-* Renamed in version 2.0.0
-
-Usage when the edge table's columns MATCH the default values:
--------------------------------------------------------------------------------
-
-.. rubric:: The simplest way to use pgr_createTopology is:
-
-.. literalinclude:: doc-pgr_createTopology.queries
-   :start-after: --q1
-   :end-before: --q1.1
-
-
-
-.. rubric:: When the arguments are given in the order described in the parameters:
-
-We get the same result AS the simplest way to use the function.
-
-.. literalinclude:: doc-pgr_createTopology.queries
-   :start-after: --q2
-   :end-before: --q2.1
-
-
-.. warning::  | An error would occur when the arguments are not given in the appropriate order:
-    | In this example, the column ``id`` of the table ``ege_table`` is passed to the function as the geometry column,
-    | and the geometry column ``the_geom`` is passed to the function as the id column.
-
-    .. literalinclude:: doc-pgr_createTopology.queries
-       :start-after: --q3
-       :end-before: --q3.1
-
-
-.. rubric:: When using the named notation
-
-Parameters defined with a default value can be omitted, as long as the value matches the default
-And The order of the parameters would not matter.
-
-.. literalinclude:: doc-pgr_createTopology.queries
-   :start-after: --q4
-   :end-before: --q4.1
-
-.. literalinclude:: doc-pgr_createTopology.queries
-   :start-after: --q5
-   :end-before: --q5.1
-
-.. literalinclude:: doc-pgr_createTopology.queries
-   :start-after: --q6
-   :end-before: --q6.1
-
-.. rubric:: Selecting rows using rows_where parameter
-
-Selecting rows based on the id.
-
-.. literalinclude:: doc-pgr_createTopology.queries
-   :start-after: --q7
-   :end-before: --q7.1
-
-Selecting the rows where the geometry is near the geometry of row with ``id = 5``.
-
-.. literalinclude:: doc-pgr_createTopology.queries
-   :start-after: --q8
-   :end-before: --q8.1
-
-Selecting the rows where the geometry is near the geometry of the row with ``gid`` =100 of the table ``othertable``.
-
-.. literalinclude:: doc-pgr_createTopology.queries
-   :start-after: --q9
-   :end-before: --q9.1
-
-
-
-
-Usage when the edge table's columns DO NOT MATCH the default values:
--------------------------------------------------------------------------------
-
-For the following table
-
-.. literalinclude:: doc-pgr_createTopology.queries
-   :start-after: --q10
-   :end-before: --q10.1
-
-.. rubric:: Using positional notation:
-
-The arguments need to be given in the order described in the parameters.
-
-Note that this example uses clean flag. So it recreates the whole vertices table.
-
-.. literalinclude:: doc-pgr_createTopology.queries
-   :start-after: --q11
-   :end-before: --q11.1
-
-.. warning::  | An error would occur when the arguments are not given in the appropiriate order:
-    | In this example, the column ``gid`` of the table ``mytable`` is passed to the function AS the geometry column,
-    | and the geometry column ``mygeom`` is passed to the function AS the id column.
-
-    .. literalinclude:: doc-pgr_createTopology.queries
-       :start-after: --q12
-       :end-before: --q12.1
-
-
-
-.. rubric:: When using the named notation
-
-In this scenario omitting a parameter would create an error because the default values for the column names do not match the column names of the table.
-The order of the parameters do not matter:
-
-.. literalinclude:: doc-pgr_createTopology.queries
-   :start-after: --q13
-   :end-before: --q13.1
-
-.. literalinclude:: doc-pgr_createTopology.queries
-   :start-after: --q14
-   :end-before: --q14.1
-
-
-.. rubric:: Selecting rows using rows_where parameter
-
-Based on id:
-
-.. literalinclude:: doc-pgr_createTopology.queries
-   :start-after: --q15
-   :end-before: --q15.1
-
-
-Selecting the rows where the geometry is near the geometry of the row with ``gid`` =100 of the table ``othertable``.
-
-.. literalinclude:: doc-pgr_createTopology.queries
-   :start-after: --q16
-   :end-before: --q16.1
-
-
-Examples with full output
--------------------------------------------------------------------------------
-
-This example start a clean topology, with 5 edges, and then its incremented to the rest of the edges.
-
-.. literalinclude:: doc-pgr_createTopology.queries
-   :start-after: --q17
-   :end-before: --q17.1
-
-The example uses the :ref:`sampledata` network.
-
-
-See Also
--------------------------------------------------------------------------------
-
-* :ref:`topology` for an overview of a topology for routing algorithms.
-* :ref:`pgr_create_vert_table` to reconstruct the vertices table based on the source and target information.
-* :ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge table.
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
-
diff --git a/src/topology/doc/pgr_createVerticesTable.rst b/src/topology/doc/pgr_createVerticesTable.rst
deleted file mode 100644
index d7ffa04..0000000
--- a/src/topology/doc/pgr_createVerticesTable.rst
+++ /dev/null
@@ -1,266 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_create_vert_table:
-
-pgr_createVerticesTable
-===============================================================================
-
-Name
--------------------------------------------------------------------------------
-
-``pgr_createVerticesTable`` — Reconstructs the vertices table based on the source and target information.
-
-
-Synopsis
--------------------------------------------------------------------------------
-
-The function returns:
-
-  - ``OK`` after the vertices table has been reconstructed.
-  - ``FAIL`` when the vertices table was not reconstructed due to an error.
-
-.. index::
-	single: createVerticesTable(Complete Signature)
-
-.. code-block:: sql
-
-	pgr_createVerticesTable(edge_table, the_geom, source, target, rows_where)
-    RETURNS VARCHAR
-
-
-
-Description
--------------------------------------------------------------------------------
-
-.. Rubric:: Parameters
-
-The reconstruction of the vertices table  function accepts the following parameters:
-
-:edge_table: ``text`` Network table name. (may contain the schema name as well)
-:the_geom: ``text``  Geometry column name of the network table. Default value is ``the_geom``.
-:source: ``text`` Source column name of the network table. Default value is ``source``.
-:target: ``text``  Target column name of the network table.  Default value is ``target``.
-:rows_where: ``text``   Condition to SELECT a subset or rows.  Default value is ``true`` to indicate all rows.
-
-.. warning::
-
-    The ``edge_table`` will be affected
-
-        - An index will be created, if it doesn't exists, to speed up the process to the following columns:
-
-           * ``the_geom``
-           * ``source``
-           * ``target``
-
-The function returns:
-
-  - ``OK`` after the vertices table has been reconstructed.
-
-    * Creates a vertices table: <edge_table>_vertices_pgr.
-    * Fills ``id`` and ``the_geom`` columns of the vertices table based on the source and target columns of the edge table.
-
-  - ``FAIL`` when the vertices table was not reconstructed due to an error.
-
-    * A required column of the Network table is not found or is not of the appropriate type.
-    * The condition is not well formed.
-    * The names of source, target are the same.
-    * The SRID of the geometry could not be determined.
-
-.. rubric:: The Vertices Table
-
-The vertices table is a requierment of the :ref:`pgr_analyzeGraph <pgr_analyze_graph>` and the :ref:`pgr_analyzeOneway <pgr_analyze_oneway>` functions.
-
-The structure of the vertices table is:
-
-:id: ``bigint`` Identifier of the vertex.
-:cnt: ``integer`` Number of vertices in the edge_table that reference this vertex. See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`.
-:chk: ``integer``  Indicator that the vertex might have a problem. See :ref:`pgr_analyzeGraph <pgr_analyze_graph>`.
-:ein: ``integer`` Number of vertices in the edge_table that reference this vertex as incoming. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`.
-:eout: ``integer`` Number of vertices in the edge_table that reference this vertex as outgoing. See :ref:`pgr_analyzeOneway <pgr_analyze_oneway>`.
-:the_geom: ``geometry`` Point geometry of the vertex.
-
-.. rubric:: History
-
-* Renamed in version 2.0.0
-
-Usage when the edge table's columns MATCH the default values:
--------------------------------------------------------------------------------
-
-.. rubric:: The simplest way to use pgr_createVerticesTable is:
-
-.. code-block:: sql
-
-	 SELECT  pgr_createVerticesTable('edge_table');
-
-
-.. rubric:: When the arguments are given in the order described in the parameters:
-
-.. code-block:: sql
-
-	 SELECT  pgr_createVerticesTable('edge_table','the_geom','source','target');
-
-We get the same result as the simplest way to use the function.
-
-.. warning::  | An error would occur when the arguments are not given in the appropriate order: In this example, the column source column ``source`` of the table ``mytable`` is passed to the function as the geometry column, and the geometry column ``the_geom`` is passed to the function as the source column.
- | ``SELECT  pgr_createVerticesTable('edge_table','source','the_geom','target');``
-
-
-.. rubric:: When using the named notation
-
-The order of the parameters do not matter:
-
-.. code-block:: sql
-
-	 SELECT  pgr_createVerticesTable('edge_table',the_geom:='the_geom',source:='source',target:='target');
-
-.. code-block:: sql
-
-	 SELECT  pgr_createVerticesTable('edge_table',source:='source',target:='target',the_geom:='the_geom');
-
-Parameters defined with a default value can be omitted, as long as the value matches the default:
-
-.. code-block:: sql
-
-	 SELECT  pgr_createVerticesTable('edge_table',source:='source');
-
-.. rubric:: Selecting rows using rows_where parameter
-
-Selecting rows based on the id.
-
-.. code-block:: sql
-
-	 SELECT  pgr_createVerticesTable('edge_table',rows_where:='id < 10');
-
-Selecting the rows where the geometry is near the geometry of row with ``id`` =5 .
-
-.. code-block:: sql
-
-	 SELECT  pgr_createVerticesTable('edge_table',rows_where:='the_geom && (select st_buffer(the_geom,0.5) FROM edge_table WHERE id=5)');
-
-Selecting the rows where the geometry is near the geometry of the row with ``gid`` =100 of the table ``othertable``.
-
-.. code-block:: sql
-
-	DROP TABLE IF EXISTS otherTable;
-	CREATE TABLE otherTable AS  (SELECT 100 AS gid, st_point(2.5,2.5) AS other_geom) ;
-	SELECT  pgr_createVerticesTable('edge_table',rows_where:='the_geom && (select st_buffer(othergeom,0.5) FROM otherTable WHERE gid=100)');
-
-
-
-Usage when the edge table's columns DO NOT MATCH the default values:
--------------------------------------------------------------------------------
-
-For the following table
-
-.. code-block:: sql
-
-	DROP TABLE IF EXISTS mytable;
-	CREATE TABLE mytable AS (SELECT id AS gid, the_geom AS mygeom,source AS src ,target AS tgt FROM edge_table) ;
-
-.. rubric:: Using positional notation:
-
-The arguments need to be given in the order described in the parameters:
-
-.. code-block:: sql
-
-	 SELECT  pgr_createVerticesTable('mytable','mygeom','src','tgt');
-
-.. warning::  | An error would occur when the arguments are not given in the appropriate order: In this example, the column ``src`` of the table ``mytable`` is passed to the function as the geometry column, and the geometry column ``mygeom`` is passed to the function as the source column.
- | ``SELECT  pgr_createVerticesTable('mytable','src','mygeom','tgt');``
-
-
-.. rubric:: When using the named notation
-
-The order of the parameters do not matter:
-
-.. code-block:: sql
-
-	 SELECT  pgr_createVerticesTable('mytable',the_geom:='mygeom',source:='src',target:='tgt');
-
-.. code-block:: sql
-
-	 SELECT  pgr_createVerticesTable('mytable',source:='src',target:='tgt',the_geom:='mygeom');
-
-In this scenario omitting a parameter would create an error because the default values for the column names do not match the column names of the table.
-
-
-.. rubric:: Selecting rows using rows_where parameter
-
-Selecting rows based on the gid.
-
-.. code-block:: sql
-
-	 SELECT  pgr_createVerticesTable('mytable','mygeom','src','tgt',rows_where:='gid < 10');
-
-.. code-block:: sql
-
-	 SELECT  pgr_createVerticesTable('mytable',source:='src',target:='tgt',the_geom:='mygeom',rows_where:='gid < 10');
-
-Selecting the rows where the geometry is near the geometry of row with ``gid`` =5 .
-
-.. code-block:: sql
-
-	 SELECT  pgr_createVerticesTable('mytable','mygeom','src','tgt',
-	                            rows_where:='the_geom && (SELECT st_buffer(mygeom,0.5) FROM mytable WHERE gid=5)');
-
-.. code-block:: sql
-
-	 SELECT  pgr_createVerticesTable('mytable',source:='src',target:='tgt',the_geom:='mygeom',
-	                            rows_where:='mygeom && (SELECT st_buffer(mygeom,0.5) FROM mytable WHERE id=5)');
-
-Selecting the rows where the geometry is near the geometry of the row with ``gid`` =100 of the table ``othertable``.
-
-.. code-block:: sql
-
-	DROP TABLE IF EXISTS otherTable;
-	CREATE TABLE otherTable AS  (SELECT 100 AS gid, st_point(2.5,2.5) AS other_geom) ;
-	SELECT  pgr_createVerticesTable('mytable','mygeom','src','tgt',
-	                            rows_where:='the_geom && (SELECT st_buffer(othergeom,0.5) FROM otherTable WHERE gid=100)');
-
-.. code-block:: sql
-
-	SELECT  pgr_createVerticesTable('mytable',source:='src',target:='tgt',the_geom:='mygeom',
-	                            rows_where:='the_geom && (SELECT st_buffer(othergeom,0.5) FROM otherTable WHERE gid=100)');
-
-
-
-Examples
--------------------------------------------------------------------------------
-
-.. code-block:: sql
-
-	SELECT pgr_createVerticesTable('edge_table');
-	NOTICE:  PROCESSING:
-    NOTICE:  pgr_createVerticesTable('edge_table','the_geom','source','target','true')
-    NOTICE:  Performing checks, pelase wait .....
-    NOTICE:  Populating public.edge_table_vertices_pgr, please wait...
-    NOTICE:    ----->   VERTICES TABLE CREATED WITH  17 VERTICES
-    NOTICE:                                         FOR   18  EDGES
-    NOTICE:    Edges with NULL geometry,source or target: 0
-    NOTICE:                              Edges processed: 18
-    NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
-    NOTICE:  ----------------------------------------------
-
-	 pgr_createVerticesTable
-	--------------------
-	 OK
-	(1 row)
-
-
-The example uses the :ref:`sampledata` network.
-
-
-See Also
--------------------------------------------------------------------------------
-
-* :ref:`topology`  for an overview of a topology for routing algorithms.
-* :ref:`pgr_createTopology <pgr_create_topology>` to create a topology based on the geometry.
-* :ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge table.
-* :ref:`pgr_analyze_oneway` to analyze directionality of the edges.
diff --git a/src/topology/doc/pgr_nodeNetwork.rst b/src/topology/doc/pgr_nodeNetwork.rst
deleted file mode 100644
index 40f956d..0000000
--- a/src/topology/doc/pgr_nodeNetwork.rst
+++ /dev/null
@@ -1,394 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_node_network:
-
-pgr_nodeNetwork
-===============================================================================
-
-Name
--------------------------------------------------------------------------------
-
-``pgr_nodeNetwork`` - Nodes an network edge table.
-
-:Author: Nicolas Ribot
-:Copyright: Nicolas Ribot, The source code is released under the MIT-X license.
-
-
-Synopsis
--------------------------------------------------------------------------------
-
-The function reads edges from a not "noded" network table and writes the "noded" edges into a new table.
-
-.. index::
-	single: pgr_NodeNetwork(Complete Signature)
-
-.. code-block:: sql
-
-    pgr_nodenetwork(edge_table, tolerance, id, text the_geom, table_ending, rows_where, outall)
-    RETURNS TEXT
-
-
-Description
--------------------------------------------------------------------------------
-
-A common problem associated with bringing GIS data into pgRouting is the fact that the data is often not "noded" correctly. This will create invalid topologies, which will result in routes that are incorrect.
-
-What we mean by "noded" is that at every intersection in the road network all the edges will be broken into separate road segments. There are cases like an over-pass and under-pass intersection where you can not traverse from the over-pass to the under-pass, but this function does not have the ability to detect and accommodate those situations.
-
-This function reads the ``edge_table`` table, that has a primary key column ``id`` and geometry column named ``the_geom`` and intersect all the segments in it against all the other segments and then creates a table ``edge_table_noded``. It uses the ``tolerance`` for deciding that multiple nodes within the tolerance are considered the same node.
-
-Parameters
-
-:edge_table: ``text`` Network table name. (may contain the schema name as well)
-:tolerance: ``float8`` tolerance for coincident points (in projection unit)dd
-:id: ``text`` Primary key column name of the network table. Default value is ``id``.
-:the_geom: ``text`` Geometry column name of the network table. Default value is ``the_geom``.
-:table_ending: ``text`` Suffix for the new table's. Default value is ``noded``.
-
-The output table will have for  ``edge_table_noded``
-
-:id: ``bigint`` Unique identifier for the table
-:old_id: ``bigint``  Identifier of the edge in original table
-:sub_id: ``integer`` Segment number of the original edge
-:source: ``integer`` Empty source column to be used with  :ref:`pgr_create_topology` function
-:target: ``integer`` Empty target column to be used with  :ref:`pgr_create_topology` function
-:the geom: ``geometry`` Geometry column of the noded network
-
-.. rubric:: History
-
-* New in version 2.0.0
-
-
-Example
--------------------------------------------------------------------------------
-
-Let's create the topology for the data in :ref:`sampledata`
-
-.. code-block:: sql
-
-	SELECT pgr_createTopology('edge_table', 0.001);
-	NOTICE:  PROCESSING:
-	NOTICE:  pgr_createTopology('edge_table',0.001,'the_geom','id','source','target','true')
-	NOTICE:  Performing checks, pelase wait .....
-	NOTICE:  Creating Topology, Please wait...
-	NOTICE:  -------------> TOPOLOGY CREATED FOR  18 edges
-	NOTICE:  Rows with NULL geometry or NULL id: 0
-	NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
-	NOTICE:  ----------------------------------------------
- 	pgr_createtopology
-	--------------------
- 	 OK
-	(1 row)
-
-Now we can analyze the network.
-
-.. code-block:: sql
-
-	SELECT pgr_analyzegraph('edge_table', 0.001);
-	NOTICE:  PROCESSING:
-	NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','true')
-	NOTICE:  Performing checks, pelase wait...
-	NOTICE:  Analyzing for dead ends. Please wait...
-	NOTICE:  Analyzing for gaps. Please wait...
-	NOTICE:  Analyzing for isolated edges. Please wait...
-	NOTICE:  Analyzing for ring geometries. Please wait...
-	NOTICE:  Analyzing for intersections. Please wait...
-	NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
-	NOTICE:                    Isolated segments: 2
-	NOTICE:                            Dead ends: 7
-	NOTICE:  Potential gaps found near dead ends: 1
-	NOTICE:               Intersections detected: 1
-	NOTICE:                      Ring geometries: 0
- 	pgr_analyzegraph
-	------------------
- 	 OK
-	(1 row)
-
-The analysis tell us that the network has a gap and an intersection. We try to fix the problem using:
-
-.. code-block:: sql
-
-	SELECT pgr_nodeNetwork('edge_table', 0.001);
-	NOTICE:  PROCESSING:
-	NOTICE:  pgr_nodeNetwork('edge_table',0.001,'the_geom','id','noded')
-	NOTICE:  Performing checks, pelase wait .....
-	NOTICE:  Processing, pelase wait .....
-	NOTICE:    Split Edges: 3
-	NOTICE:   Untouched Edges: 15
-	NOTICE:       Total original Edges: 18
-	NOTICE:   Edges generated: 6
-	NOTICE:   Untouched Edges: 15
-	NOTICE:         Total New segments: 21
-	NOTICE:   New Table: public.edge_table_noded
-	NOTICE:  ----------------------------------
- 	pgr_nodenetwork
-	-----------------
- 	 OK
-	(1 row)
-
-Inspecting the generated table, we can see that edges 13,14 and 18 has been segmented
-
-.. code-block:: sql
-
-	SELECT old_id,sub_id FROM edge_table_noded ORDER BY old_id,sub_id;
- 	 old_id | sub_id
-	--------+--------
-  	 1      |      1
-  	 2      |      1
-  	 3      |      1
-  	 4      |      1
-  	 5      |      1
-  	 6      |      1
-  	 7      |      1
-  	 8      |      1
-  	 9      |      1
- 	 10     |      1
- 	 11     |      1
- 	 12     |      1
- 	 13     |      1
- 	 13     |      2
- 	 14     |      1
- 	 14     |      2
- 	 15     |      1
- 	 16     |      1
- 	 17     |      1
- 	 18     |      1
- 	 18     |      2
-	(21 rows)
-
-We can create the topology of the new network
-
-.. code-block:: sql
-
-	SELECT pgr_createTopology('edge_table_noded', 0.001);
-	NOTICE:  PROCESSING:
-	NOTICE:  pgr_createTopology('edge_table_noded',0.001,'the_geom','id','source','target','true')
-	NOTICE:  Performing checks, pelase wait .....
-	NOTICE:  Creating Topology, Please wait...
-	NOTICE:  -------------> TOPOLOGY CREATED FOR  21 edges
-	NOTICE:  Rows with NULL geometry or NULL id: 0
-	NOTICE:  Vertices table for table public.edge_table_noded is: public.edge_table_noded_vertices_pgr
-	NOTICE:  ----------------------------------------------
- 	pgr_createtopology
-	--------------------
- 	 OK
-	(1 row)
-
-Now let's analyze the new topology
-
-.. code-block:: sql
-
-	SELECT pgr_analyzegraph('edge_table_noded', 0.001);
-	NOTICE:  PROCESSING:
-	NOTICE:  pgr_analyzeGraph('edge_table_noded',0.001,'the_geom','id','source','target','true')
-	NOTICE:  Performing checks, pelase wait...
-	NOTICE:  Analyzing for dead ends. Please wait...
-	NOTICE:  Analyzing for gaps. Please wait...
-	NOTICE:  Analyzing for isolated edges. Please wait...
-	NOTICE:  Analyzing for ring geometries. Please wait...
-	NOTICE:  Analyzing for intersections. Please wait...
-	NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
-	NOTICE:                    Isolated segments: 0
-	NOTICE:                            Dead ends: 6
-	NOTICE:  Potential gaps found near dead ends: 0
-	NOTICE:               Intersections detected: 0
-	NOTICE:                      Ring geometries: 0
- 	pgr_createtopology
-	--------------------
- 	 OK
-	(1 row)
-
-
-Images
--------------------------------------------------------------------------------
-
-.. only:: html
-
-	+--------------------------------------+-------------------------------------+
-	|.. Rubric:: Before Image              |.. Rubric:: After Image              |
-	|                                      |                                     |
-	|.. image:: images/before_node_net.png |.. image:: images/after_node_net.png |
-	|   :scale: 60%                        |   :scale: 60%                       |
-	|   :alt: before image                 |   :alt: after image                 |
-	|   :align: left                       |   :align: right                     |
-	+--------------------------------------+-------------------------------------+
-
-
-.. only:: latex
-
-	.. Rubric:: Before Image
-
-	.. image:: images/before_node_net.png
-		:scale: 60%
-		:alt: before image
-		:align: left
-
-
-	.. Rubric:: After Image
-
-	.. image:: images/after_node_net.png
-		:scale: 60%
-		:alt: after image
-		:align: left
-
-
-Comparing the results
--------------------------------------------------------------------------------
-
-Comparing with the Analysis in the original edge_table, we see that.
-
-+------------------+-----------------------------------------+--------------------------------------------------------------+
-|                  |                Before                   |                        After                                 |
-+==================+=========================================+==============================================================+
-|Table name        | edge_table                              | edge_table_noded                                             |
-+------------------+-----------------------------------------+--------------------------------------------------------------+
-|Fields            | All original fields                     | Has only basic fields to do a topology analysis              |
-+------------------+-----------------------------------------+--------------------------------------------------------------+
-|Dead ends         | - Edges with 1 dead end: 1,6,24         | Edges with 1 dead end: 1-1 ,6-1,14-2, 18-1 17-1 18-2         |
-|                  | - Edges with 2 dead ends  17,18         |                                                              |
-|                  |                                         |                                                              |
-|                  | Edge 17's right node is a dead end      |                                                              |
-|                  | because there is no other edge sharing  |                                                              |
-|                  | that same node. (cnt=1)                 |                                                              |
-+------------------+-----------------------------------------+--------------------------------------------------------------+
-|Isolated segments | two isolated segments:  17 and 18 both  | No Isolated segments                                         |
-|                  | they have 2 dead ends                   |  - Edge 17 now shares a node with edges 14-1 and 14-2        |
-|                  |                                         |  - Edges 18-1 and 18-2 share a node with edges 13-1 and 13-2 |
-+------------------+-----------------------------------------+--------------------------------------------------------------+
-|Gaps              | There is a gap between edge 17 and 14   | Edge 14 was segmented                                        |
-|                  | because edge 14 is near to the right    | Now edges: 14-1 14-2 17 share the same node                  |
-|                  | node of edge 17                         | The tolerance value was taken in account                     |
-+------------------+-----------------------------------------+--------------------------------------------------------------+
-|Intersections     | Edges 13 and 18 were intersecting       | Edges were segmented, So, now in the interection's           |
-|                  |                                         | point there is a node and the following edges share it:      |
-|                  |                                         | 13-1 13-2 18-1 18-2                                          |
-+------------------+-----------------------------------------+--------------------------------------------------------------+
-
-Now, we are going to include the segments 13-1, 13-2 14-1, 14-2 ,18-1 and 18-2 into our edge-table, copying the data for dir,cost,and reverse cost with tho following steps:
-
-   - Add a column old_id into edge_table, this column is going to keep track the id of the original edge
-   - Insert only the segmented edges, that is, the ones whose max(sub_id) >1
-
-.. code-block:: sql
-
-	alter table edge_table drop column if exists old_id;
-	alter table edge_table add column old_id integer;
-	insert into edge_table (old_id,dir,cost,reverse_cost,the_geom)
-   		(with
-       		segmented as (select old_id,count(*) as i from edge_table_noded group by old_id)
-   		select  segments.old_id,dir,cost,reverse_cost,segments.the_geom
-       			from edge_table as edges join edge_table_noded as segments on (edges.id = segments.old_id)
-       			where edges.id in (select old_id from segmented where i>1) );
-
-We recreate the topology:
-
-.. code-block:: sql
-
-	SELECT pgr_createTopology('edge_table', 0.001);
-
-	NOTICE:  PROCESSING:
-	NOTICE:  pgr_createTopology('edge_table',0.001,'the_geom','id','source','target','true')
-	NOTICE:  Performing checks, pelase wait .....
-	NOTICE:  Creating Topology, Please wait...
-	NOTICE:  -------------> TOPOLOGY CREATED FOR  24 edges
-	NOTICE:  Rows with NULL geometry or NULL id: 0
-	NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
-	NOTICE:  ----------------------------------------------
- 	pgr_createtopology
-	--------------------
- 	OK
-	(1 row)
-
-
-To get the same analysis results as the topology of edge_table_noded, we do the following query:
-
-.. code-block:: sql
-
-	SELECT pgr_analyzegraph('edge_table', 0.001,rows_where:='id not in (select old_id from edge_table where old_id is not null)');
-
-	NOTICE:  PROCESSING:
-	NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target',
-                                   'id not in (select old_id from edge_table where old_id is not null)')
-	NOTICE:  Performing checks, pelase wait...
-	NOTICE:  Analyzing for dead ends. Please wait...
-	NOTICE:  Analyzing for gaps. Please wait...
-	NOTICE:  Analyzing for isolated edges. Please wait...
-	NOTICE:  Analyzing for ring geometries. Please wait...
-	NOTICE:  Analyzing for intersections. Please wait...
-	NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
-	NOTICE:                    Isolated segments: 0
-	NOTICE:                            Dead ends: 6
-	NOTICE:  Potential gaps found near dead ends: 0
-	NOTICE:               Intersections detected: 0
-	NOTICE:                      Ring geometries: 0
- 	pgr_createtopology
-	--------------------
- 	OK
-	(1 row)
-
-
-To get the same analysis results as the original edge_table, we do the following query:
-
-.. code-block:: sql
-
-	SELECT pgr_analyzegraph('edge_table', 0.001,rows_where:='old_id is null')
-
-	NOTICE:  PROCESSING:
-	NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','old_id is null')
-	NOTICE:  Performing checks, pelase wait...
-	NOTICE:  Analyzing for dead ends. Please wait...
-	NOTICE:  Analyzing for gaps. Please wait...
-	NOTICE:  Analyzing for isolated edges. Please wait...
-	NOTICE:  Analyzing for ring geometries. Please wait...
-	NOTICE:  Analyzing for intersections. Please wait...
-	NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
-	NOTICE:                    Isolated segments: 2
-	NOTICE:                            Dead ends: 7
-	NOTICE:  Potential gaps found near dead ends: 1
-	NOTICE:               Intersections detected: 1
-	NOTICE:                      Ring geometries: 0
- 	pgr_createtopology
-	--------------------
- 	OK
-	(1 row)
-
-Or we can analyze everything because, maybe edge 18 is an overpass, edge 14 is an under pass and there is also a street level juction, and the same happens with edges 17 and 13.
-
-.. code-block:: sql
-
-	SELECT pgr_analyzegraph('edge_table', 0.001);
-
-	NOTICE:  PROCESSING:
-	NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','true')
-	NOTICE:  Performing checks, pelase wait...
-	NOTICE:  Analyzing for dead ends. Please wait...
-	NOTICE:  Analyzing for gaps. Please wait...
-	NOTICE:  Analyzing for isolated edges. Please wait...
-	NOTICE:  Analyzing for ring geometries. Please wait...
-	NOTICE:  Analyzing for intersections. Please wait...
-	NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
-	NOTICE:                    Isolated segments: 0
-	NOTICE:                            Dead ends: 3
-	NOTICE:  Potential gaps found near dead ends: 0
-	NOTICE:               Intersections detected: 5
-	NOTICE:                      Ring geometries: 0
- 	pgr_createtopology
-	--------------------
- 	OK
-	(1 row)
-
-
-See Also
--------------------------------------------------------------------------------
-
-:ref:`topology` for an overview of a topology for routing algorithms.
-:ref:`pgr_analyze_oneway` to analyze directionality of the edges.
-:ref:`pgr_create_topology` to create a topology based on the geometry.
-:ref:`pgr_analyze_graph` to analyze the edges and vertices of the edge table.
diff --git a/src/topology/doc/topology-functions.rst b/src/topology/doc/topology-functions.rst
deleted file mode 100644
index 67e78e0..0000000
--- a/src/topology/doc/topology-functions.rst
+++ /dev/null
@@ -1,33 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _topology_functions:
-
-Topology - Family of Functions
-===============================================================================
-
-The pgRouting's topology of a network, represented with an edge table with source and target attributes and a vertices table associated with it.
-Depending on the algorithm, you can create a topology or just reconstruct the vertices table, You can analyze the topology,
-We also provide a function to node an unoded network.
-
-  -  :ref:`pgr_create_topology` -  to create a topology based on the geometry.
-  -  :ref:`pgr_create_vert_table` - to reconstruct the vertices table based on the source and target information.
-  -  :ref:`pgr_analyze_graph`  - to analyze the edges and vertices of the edge table.
-  -  :ref:`pgr_analyze_oneway` - to analyze directionality of the edges.
-  -  :ref:`pgr_node_network`  -to create nodes to a not noded edge table.
-
-.. toctree::
-  :hidden:
-
-  pgr_createTopology
-  pgr_createVerticesTable
-  pgr_analyzeGraph
-  pgr_analyzeOneWay
-  pgr_nodeNetwork
-
diff --git a/src/topology/sql/CMakeLists.txt b/src/topology/sql/CMakeLists.txt
deleted file mode 100644
index 7ade88f..0000000
--- a/src/topology/sql/CMakeLists.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-# Append in local scope
-LIST(APPEND PACKAGE_SQL_FILES
-    ${CMAKE_CURRENT_SOURCE_DIR}/pgrouting_topology.sql
-    ${CMAKE_CURRENT_SOURCE_DIR}/pgrouting_analytics.sql
-    ${CMAKE_CURRENT_SOURCE_DIR}/create_vertices_table.sql
-    ${CMAKE_CURRENT_SOURCE_DIR}/nodeNetwork.sql
-)
-
-# set in parent scope
-SET(PACKAGE_SQL_FILES "${PACKAGE_SQL_FILES}" PARENT_SCOPE)
diff --git a/src/topology/sql/create_vertices_table.sql b/src/topology/sql/create_vertices_table.sql
deleted file mode 100644
index f46dcc1..0000000
--- a/src/topology/sql/create_vertices_table.sql
+++ /dev/null
@@ -1,254 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: create_vertices_table.sql
-
-Copyright (c) 2013 Celia Virginia Vergara Castillo
-Mail: vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-/* 
-
-This function should not be used directly. Use assign_vertex_id instead
-Inserts a point into the vertices tablei "vname" with the srid "srid", and return an id
-of a new point or an existing point. Tolerance is the minimal distance
-between existing points and the new point to create a new point.
-
-Modified by: Vicky Vergara <vicky_vergara at hotmail,com>
-
-HISTORY
-Last changes: 2013-03-22
-2013-08-19: handling schemas
-*/
-
-
-
-/*
-.. function:: pgr_createVerticesTable(edge_table text, the_geom text, source text default 'source', target text default 'target')
-
-  Based on "source" and "target" columns creates the vetrices_pgr table for edge_table
-  Ignores rows where "source" or "target" have NULL values 
-
-  Author: Vicky Vergara <vicky_vergara at hotmail,com>
-
- HISTORY
-    Created 2013-08-19
-*/
-
-CREATE OR REPLACE FUNCTION pgr_createverticestable(
-   edge_table text,
-   the_geom text DEFAULT 'the_geom'::text,
-   source text DEFAULT 'source'::text,
-   target text DEFAULT 'target'::text,
-    rows_where text DEFAULT 'true'::text
-)
-  RETURNS text AS
-$BODY$
-DECLARE
-    naming record;
-    sridinfo record;
-    sname text;
-    tname text;
-    tabname text;
-    vname text;
-    vertname text;
-    gname text;
-    sourcename text;
-    targetname text;
-    query text;
-    ecnt bigint; 
-    srid integer;
-    sourcetype text;
-    targettype text;
-    sql text;
-    totcount integer;
-    i integer;
-    notincluded integer;
-    included integer;
-    debuglevel text;
-    dummyRec text;
-    fnName text;
-    err bool;
-
-
-BEGIN 
-  fnName = 'pgr_createVerticesTable';
-  raise notice 'PROCESSING:'; 
-  raise notice 'pgr_createVerticesTable(''%'',''%'',''%'',''%'',''%'')',edge_table,the_geom,source,target,rows_where;
-  execute 'show client_min_messages' into debuglevel;
-
-  raise notice 'Performing checks, please wait .....';
-
-  RAISE DEBUG 'Checking % exists',edge_table;
-        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
-                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
-
-    sname=naming.sname;
-    tname=naming.tname;
-    tabname=sname||'.'||tname;
-    vname=tname||'_vertices_pgr';
-    vertname= sname||'.'||vname;
-    rows_where = ' AND ('||rows_where||')';
-  raise debug '--> Edge table exists: OK';
-   
-  raise debug 'Checking column names';
-    select * into sourcename from _pgr_getColumnName(sname, tname,source,2, fnName);
-    select * into targetname from _pgr_getColumnName(sname, tname,target,2, fnName);
-    select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2, fnName);
-
-
-    err = sourcename in (targetname,gname) or  targetname=gname;
-    perform _pgr_onError(err, 2, fnName,
-        'Two columns share the same name', 'Parameter names for the_geom,source and target  must be different');
-  raise debug '--> Column names: OK';
-
-  raise debug 'Checking column types in edge table';
-    select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
-    select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
-
-
-    err = sourcetype not in('integer','smallint','bigint');
-    perform _pgr_onError(err, 2, fnName,
-        'Wrong type of Column source: '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
-
-    err = targettype not in('integer','smallint','bigint');
-    perform _pgr_onError(err, 2, fnName,
-        'Wrong type of Column target: '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found');
-
-  raise debug '-->Column types:OK';
-
-  raise debug 'Checking SRID of geometry column';
-     query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
-        || ' FROM ' || _pgr_quote_ident(tabname)
-        || ' WHERE ' || quote_ident(gname)
-        || ' IS NOT NULL LIMIT 1';
-     raise debug '%',query;
-     EXECUTE query INTO sridinfo;
-
-     err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
-     perform _pgr_onError(err, 2, fnName,
-         'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
-     srid := sridinfo.srid;
-  raise DEBUG '     --> OK';
-
-  raise debug 'Checking and creating Indices';
-     perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
-     perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
-     perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
-  raise DEBUG '-->Check and create indices: OK';
-
-     gname=quote_ident(gname);
-     sourcename=quote_ident(sourcename);
-     targetname=quote_ident(targetname);
-
-
-  BEGIN
-  raise debug 'Checking Condition';
-    -- issue #193 & issue #210 & #213
-    -- this sql is for trying out the where clause
-    -- the select * is to avoid any column name conflicts
-    -- limit 1, just try on first record
-    -- if the where clasuse is ill formed it will be caught in the exception
-    sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
-    EXECUTE sql into dummyRec;
-    -- end 
-
-    -- if above where clasue works this one should work
-    -- any error will be caught by the exception also
-    sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NULL or '||
-		sourcename||' is null or '||targetname||' is null)=true '||rows_where;
-    raise debug '%',sql;
-    EXECUTE SQL  into notincluded;
-    EXCEPTION WHEN OTHERS THEN  
-         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
-         RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
-         RAISE NOTICE '%',sql;
-         RETURN 'FAIL';
-  END;
-
-
-
-    
-  BEGIN
-     raise DEBUG 'initializing %',vertname;
-       execute 'select * from _pgr_getTableName('||quote_literal(vertname)||',0)' into naming;
-       IF sname=naming.sname  AND vname=naming.tname  THEN
-           execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
-           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
-       ELSE
-           set client_min_messages  to warning;
-       	   execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
-       END IF;
-       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
-                quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
-       execute 'CREATE INDEX '||quote_ident(vname||'_the_geom_idx')||' ON '||_pgr_quote_ident(vertname)||'  USING GIST (the_geom)';
-       execute 'set client_min_messages  to '|| debuglevel;
-       raise DEBUG  '  ------>OK'; 
-       EXCEPTION WHEN OTHERS THEN  
-         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
-         RAISE NOTICE 'ERROR: Initializing vertex table';
-         RAISE NOTICE '%',sql;
-         RETURN 'FAIL';
-  END;       
-
-  BEGIN
-       raise notice 'Populating %, please wait...',vertname;
-       sql= 'with
-		lines as ((select distinct '||sourcename||' as id, _pgr_startpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
-		                  ' where ('|| gname || ' IS NULL 
-                                    or '||sourcename||' is null 
-                                    or '||targetname||' is null)=false 
-                                     '||rows_where||')
-			union (select distinct '||targetname||' as id,_pgr_endpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
-			          ' where ('|| gname || ' IS NULL 
-                                    or '||sourcename||' is null 
-                                    or '||targetname||' is null)=false
-                                     '||rows_where||'))
-		,numberedLines as (select row_number() OVER (ORDER BY id) AS i,* from lines )
-		,maxid as (select id,max(i) as maxi from numberedLines group by id)
-		insert into '||_pgr_quote_ident(vertname)||'(id,the_geom)  (select id,the_geom  from numberedLines join maxid using(id) where i=maxi order by id)';
-       RAISE debug '%',sql;
-       execute sql;
-       GET DIAGNOSTICS totcount = ROW_COUNT;
-
-       sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' a, '||_pgr_quote_ident(vertname)||' b 
-            where '||sourcename||'=b.id and '|| targetname||' in (select id from '||_pgr_quote_ident(vertname)||')';
-       RAISE debug '%',sql;
-       execute sql into included;
-
-
-
-       execute 'select max(id) from '||_pgr_quote_ident(vertname) into ecnt;
-       execute 'SELECT setval('||quote_literal(vertname||'_id_seq')||','||coalesce(ecnt,1)||' , false)';
-       raise notice '  ----->   VERTICES TABLE CREATED WITH  % VERTICES', totcount;
-       raise notice '                                       FOR   %  EDGES', included+notincluded;
-       RAISE NOTICE '  Edges with NULL geometry,source or target: %',notincluded;
-       RAISE NOTICE '                            Edges processed: %',included;
-       Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname),_pgr_quote_ident(vertname);
-       raise notice '----------------------------------------------';
-    END;
-    
-    RETURN 'OK';
- EXCEPTION WHEN OTHERS THEN
-   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
-   RETURN 'FAIL';
-END;
-$BODY$
-  LANGUAGE plpgsql VOLATILE STRICT;
-
-COMMENT ON FUNCTION pgr_createVerticesTable(text,text,text,text,text) 
-IS 'args: edge_table, the_geom:=''the_geom'',source:=''source'', target:=''target'' rows_where:=''true'' - creates a vertices table based on the source and target identifiers for selected rows';
diff --git a/src/topology/sql/nodeNetwork.sql b/src/topology/sql/nodeNetwork.sql
deleted file mode 100644
index 43bd16d..0000000
--- a/src/topology/sql/nodeNetwork.sql
+++ /dev/null
@@ -1,289 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Author: Nicolas Ribot, 2013
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-CREATE OR REPLACE FUNCTION pgr_nodeNetwork(edge_table text, tolerance double precision, 
-			id text default 'id', the_geom text default 'the_geom', table_ending text default 'noded',
-            rows_where text DEFAULT ''::text, outall boolean DEFAULT false) RETURNS text AS
-$BODY$
-DECLARE
-	/*
-	 * Author: Nicolas Ribot, 2013
-	*/
-	p_num int := 0;
-	p_ret text := '';
-    pgis_ver_old boolean := _pgr_versionless(postgis_lib_version(), '2.1.0.0');
-    vst_line_substring text;
-    vst_line_locate_point text;
-    intab text;
-    outtab text;
-    n_pkey text;
-    n_geom text;
-    naming record;
-    sname text;
-    tname text;
-    outname text;
-    srid integer;
-    sridinfo record;
-    splits bigint;
-    touched bigint;
-    untouched bigint;
-    geomtype text;
-    debuglevel text;
-    rows_where text;
-   
-
-BEGIN
-  raise notice 'PROCESSING:'; 
-  raise notice 'pgr_nodeNetwork(''%'', %, ''%'', ''%'', ''%'', ''%'',  %)',
-    edge_table, tolerance, id,  the_geom, table_ending, rows_where, outall;
-  raise notice 'Performing checks, please wait .....';
-  execute 'show client_min_messages' into debuglevel;
-
-  BEGIN
-    RAISE DEBUG 'Checking % exists',edge_table;
-    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',0)' into naming;
-    sname=naming.sname;
-    tname=naming.tname;
-    IF sname IS NULL OR tname IS NULL THEN
-	RAISE NOTICE '-------> % not found',edge_table;
-        RETURN 'FAIL';
-    ELSE
-	RAISE DEBUG '  -----> OK';
-    END IF;
-  
-    intab=sname||'.'||tname;
-    outname=tname||'_'||table_ending;
-    outtab= sname||'.'||outname;
-    rows_where = CASE WHEN length(rows_where) > 2 and not outall THEN ' AND (' || rows_where || ')' ELSE '' END;
-    rows_where = CASE WHEN length(rows_where) > 2 THEN ' WHERE (' || rows_where || ')' ELSE '' END;
-  END;
-
-  BEGIN 
-       raise DEBUG 'Checking id column "%" columns in  % ',id,intab;
-       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(id)||')' INTO n_pkey;
-       IF n_pkey is NULL then
-          raise notice  'ERROR: id column "%"  not found in %',id,intab;
-          RETURN 'FAIL';
-       END IF;
-  END; 
-
-
-  BEGIN 
-       raise DEBUG 'Checking id column "%" columns in  % ',the_geom,intab;
-       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(the_geom)||')' INTO n_geom;
-       IF n_geom is NULL then
-          raise notice  'ERROR: the_geom  column "%"  not found in %',the_geom,intab;
-          RETURN 'FAIL';
-       END IF;
-  END;
-
-  IF n_pkey=n_geom THEN
-	raise notice  'ERROR: id and the_geom columns have the same name "%" in %',n_pkey,intab;
-        RETURN 'FAIL';
-  END IF;
- 
-  BEGIN 
-       	raise DEBUG 'Checking the SRID of the geometry "%"', n_geom;
-       	EXECUTE 'SELECT ST_SRID(' || quote_ident(n_geom) || ') as srid '
-          		|| ' FROM ' || _pgr_quote_ident(intab)
-          		|| ' WHERE ' || quote_ident(n_geom)
-          		|| ' IS NOT NULL LIMIT 1' INTO sridinfo;
-       	IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
-        	RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
-           	RETURN 'FAIL';
-       	END IF;
-       	srid := sridinfo.srid;
-       	raise DEBUG '  -----> SRID found %',srid;
-       	EXCEPTION WHEN OTHERS THEN
-           		RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
-           		RETURN 'FAIL';
-  END;
-
-    BEGIN
-      RAISE DEBUG 'Checking "%" column in % is indexed',n_pkey,intab;
-      if (_pgr_isColumnIndexed(intab,n_pkey)) then 
-	RAISE DEBUG '  ------>OK';
-      else 
-        RAISE DEBUG ' ------> Adding  index "%_%_idx".',n_pkey,intab;
-
-	set client_min_messages  to warning;
-        execute 'create  index '||tname||'_'||n_pkey||'_idx on '||_pgr_quote_ident(intab)||' using btree('||quote_ident(n_pkey)||')';
-	execute 'set client_min_messages  to '|| debuglevel;
-      END IF;
-    END;
-
-    BEGIN
-      RAISE DEBUG 'Checking "%" column in % is indexed',n_geom,intab;
-      if (_pgr_iscolumnindexed(intab,n_geom)) then 
-	RAISE DEBUG '  ------>OK';
-      else 
-        RAISE DEBUG ' ------> Adding unique index "%_%_gidx".',intab,n_geom;
-	set client_min_messages  to warning;
-        execute 'CREATE INDEX '
-            || quote_ident(tname || '_' || n_geom || '_gidx' )
-            || ' ON ' || _pgr_quote_ident(intab)
-            || ' USING gist (' || quote_ident(n_geom) || ')';
-	execute 'set client_min_messages  to '|| debuglevel;
-      END IF;
-    END;
----------------
-    BEGIN
-       raise DEBUG 'initializing %',outtab;
-       execute 'select * from _pgr_getTableName('||quote_literal(outtab)||',0)' into naming;
-       IF sname=naming.sname  AND outname=naming.tname  THEN
-           execute 'TRUNCATE TABLE '||_pgr_quote_ident(outtab)||' RESTART IDENTITY';
-           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(outname)||','||quote_literal(n_geom)||')';
-       ELSE
-	   set client_min_messages  to warning;
-       	   execute 'CREATE TABLE '||_pgr_quote_ident(outtab)||' (id bigserial PRIMARY KEY,old_id integer,sub_id integer,
-								source bigint,target bigint)';
-       END IF;
-       execute 'select geometrytype('||quote_ident(n_geom)||') from  '||_pgr_quote_ident(intab)||' limit 1' into geomtype;
-       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(outname)||','||
-                quote_literal(n_geom)||','|| srid||', '||quote_literal(geomtype)||', 2)';
-       execute 'CREATE INDEX '||quote_ident(outname||'_'||n_geom||'_idx')||' ON '||_pgr_quote_ident(outtab)||'  USING GIST ('||quote_ident(n_geom)||')';
-	execute 'set client_min_messages  to '|| debuglevel;
-       raise DEBUG  '  ------>OK'; 
-    END;  
-----------------
-
-
-  raise notice 'Processing, please wait .....';
-
-
-    if pgis_ver_old then
-        vst_line_substring    := 'st_line_substring';
-        vst_line_locate_point := 'st_line_locate_point';
-    else
-        vst_line_substring    := 'st_linesubstring';
-        vst_line_locate_point := 'st_linelocatepoint';
-    end if;
-
---    -- First creates temp table with intersection points
-    p_ret = 'create temp table intergeom on commit drop as (
-        select l1.' || quote_ident(n_pkey) || ' as l1id, 
-               l2.' || quote_ident(n_pkey) || ' as l2id, 
-	       l1.' || quote_ident(n_geom) || ' as line,
-	       _pgr_startpoint(l2.' || quote_ident(n_geom) || ') as source,
-	       _pgr_endpoint(l2.' || quote_ident(n_geom) || ') as target,
-               st_intersection(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ') as geom 
-        from (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l1 
-             join (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l2 
-             on (st_dwithin(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ', ' || tolerance || '))'||
-        'where l1.' || quote_ident(n_pkey) || ' <> l2.' || quote_ident(n_pkey)||' and 
-	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and 
-	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false and 
-	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and 
-	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false  )';
-    raise debug '%',p_ret;	
-    EXECUTE p_ret;	
-
-    -- second temp table with locus (index of intersection point on the line)
-    -- to avoid updating the previous table
-    -- we keep only intersection points occurring onto the line, not at one of its ends
---    drop table if exists inter_loc;
-
---HAD TO CHANGE THIS QUERY
--- p_ret= 'create temp table inter_loc on commit drop as ( 
---        select l1id, l2id, ' || vst_line_locate_point || '(line,point) as locus from (
---        select DISTINCT l1id, l2id, line, (ST_DumpPoints(geom)).geom as point from intergeom) as foo
---        where ' || vst_line_locate_point || '(line,point)<>0 and ' || vst_line_locate_point || '(line,point)<>1)';
-    p_ret= 'create temp table inter_loc on commit drop as ( select * from (
-        (select l1id, l2id, ' || vst_line_locate_point || '(line,source) as locus from intergeom)
-         union
-        (select l1id, l2id, ' || vst_line_locate_point || '(line,target) as locus from intergeom)) as foo
-        where locus<>0 and locus<>1)';
-    raise debug  '%',p_ret;	
-    EXECUTE p_ret;	
-
-    -- index on l1id
-    create index inter_loc_id_idx on inter_loc(l1id);
-
-    -- Then computes the intersection on the lines subset, which is much smaller than full set 
-    -- as there are very few intersection points
-
---- outab needs to be formally created with id, old_id, subid,the_geom, source,target
----  so it can be inmediatly be used with createTopology
-
---   EXECUTE 'drop table if exists ' || _pgr_quote_ident(outtab);
---   EXECUTE 'create table ' || _pgr_quote_ident(outtab) || ' as 
-     P_RET = 'insert into '||_pgr_quote_ident(outtab)||' (old_id,sub_id,'||quote_ident(n_geom)||') (  with cut_locations as (
-           select l1id as lid, locus 
-           from inter_loc
-           -- then generates start and end locus for each line that have to be cut buy a location point
-           UNION ALL
-           select i.l1id  as lid, 0 as locus
-           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
-           UNION ALL
-           select i.l1id  as lid, 1 as locus
-           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
-           order by lid, locus
-       ), 
-       -- we generate a row_number index column for each input line 
-       -- to be able to self-join the table to cut a line between two consecutive locations 
-       loc_with_idx as (
-           select lid, locus, row_number() over (partition by lid order by locus) as idx
-           from cut_locations
-       ) 
-       -- finally, each original line is cut with consecutive locations using linear referencing functions
-       select l.' || quote_ident(n_pkey) || ', loc1.idx as sub_id, ' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus) as ' || quote_ident(n_geom) || ' 
-       from loc_with_idx loc1 join loc_with_idx loc2 using (lid) join ' || _pgr_quote_ident(intab) || ' l on (l.' || quote_ident(n_pkey) || ' = loc1.lid)
-       where loc2.idx = loc1.idx+1
-           -- keeps only linestring geometries
-           and geometryType(' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus)) = ''LINESTRING'') ';
-    raise debug  '%',p_ret;	
-    EXECUTE p_ret;	
-	GET DIAGNOSTICS splits = ROW_COUNT;
-        execute 'with diff as (select distinct old_id from '||_pgr_quote_ident(outtab)||' )
-                 select count(*) from diff' into touched; 
-	-- here, it misses all original line that did not need to be cut by intersection points: these lines
-	-- are already clean
-	-- inserts them in the final result: all lines which gid is not in the res table.
-	EXECUTE 'insert into ' || _pgr_quote_ident(outtab) || ' (old_id , sub_id, ' || quote_ident(n_geom) || ')
-                ( with used as (select distinct old_id from '|| _pgr_quote_ident(outtab)||')
-		select ' ||  quote_ident(n_pkey) || ', 1 as sub_id, ' ||  quote_ident(n_geom) ||
-		' from '|| _pgr_quote_ident(intab) ||' where  '||quote_ident(n_pkey)||' not in (select * from used)' || rows_where || ')';
-	GET DIAGNOSTICS untouched = ROW_COUNT;
-
-	raise NOTICE '  Split Edges: %', touched;
-	raise NOTICE ' Untouched Edges: %', untouched;
-	raise NOTICE '     Total original Edges: %', touched+untouched;
-        RAISE NOTICE ' Edges generated: %', splits;
-	raise NOTICE ' Untouched Edges: %',untouched;
-	raise NOTICE '       Total New segments: %', splits+untouched;
-        RAISE NOTICE ' New Table: %', outtab;
-        RAISE NOTICE '----------------------------------';
-
-    drop table  if exists intergeom;
-    drop table if exists inter_loc;
-    RETURN 'OK';
-END;
-$BODY$
-    LANGUAGE 'plpgsql' VOLATILE STRICT COST 100;
-
-
-COMMENT ON FUNCTION pgr_nodeNetwork(text, double precision, text, text, text, text, boolean )
- IS  'edge_table, tolerance, id:=''id'', the_geom:=''the_geom'', table_ending:=''noded'' ';
-
diff --git a/src/topology/sql/pgrouting_topology.sql b/src/topology/sql/pgrouting_topology.sql
deleted file mode 100644
index af9ccfc..0000000
--- a/src/topology/sql/pgrouting_topology.sql
+++ /dev/null
@@ -1,289 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Author: Christian Gonzalez
-Author: Stephen Woodbridge <woodbri at imaptools.com>
-Author: Vicky Vergara <vicky_vergara at hotmail,com>
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-/*
-.. function:: _pgr_createtopology(edge_table, tolerance,the_geom,id,source,target,rows_where)
-
-Based on the geometry:
-Fill the source and target column for all lines.
-All line end points within a distance less than tolerance, are assigned the same id
-
-Author: Christian Gonzalez <christian.gonzalez at sigis.com.ve>
-Author: Stephen Woodbridge <woodbri at imaptools.com>
-Modified by: Vicky Vergara <vicky_vergara at hotmail,com>
-
-HISTORY
-Last changes: 2013-03-22
-2013-08-19:  handling schemas
-2014-july: fixes issue 211
-*/
-
-CREATE OR REPLACE FUNCTION pgr_createtopology(edge_table text, tolerance double precision, 
-		   the_geom text default 'the_geom', id text default 'id',
-		   source text default 'source', target text default 'target',rows_where text default 'true',
-		   clean boolean default FALSE)
-RETURNS VARCHAR AS
-$BODY$
-
-DECLARE
-    points record;
-    sridinfo record;
-    source_id bigint;
-    target_id bigint;
-    totcount bigint;
-    rowcount bigint;
-    srid integer;
-    sql text;
-    sname text;
-    tname text;
-    tabname text;
-    vname text;
-    vertname text;
-    gname text;
-    idname text;
-    sourcename text;
-    targetname text;
-    notincluded integer;
-    i integer;
-    naming record;
-    info record;
-    flag boolean;
-    query text;
-    idtype text;
-    gtype text;
-    sourcetype text;
-    targettype text;
-    debuglevel text;
-    dummyRec text;
-    fnName text;
-    err bool;
-    msgKind int;
-    emptied BOOLEAN;
-
-BEGIN
-    msgKind = 1; -- notice
-    fnName = 'pgr_createTopology';
-    raise notice 'PROCESSING:'; 
-    raise notice 'pgr_createTopology(''%'', %, ''%'', ''%'', ''%'', ''%'', rows_where := ''%'', clean := %)',edge_table,tolerance,the_geom,id,source,target,rows_where, clean;
-    execute 'show client_min_messages' into debuglevel;
-
-
-    raise notice 'Performing checks, please wait .....';
-
-        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
-                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
-        sname=naming.sname;
-        tname=naming.tname;
-        tabname=sname||'.'||tname;
-        vname=tname||'_vertices_pgr';
-        vertname= sname||'.'||vname;
-        rows_where = ' AND ('||rows_where||')'; 
-      raise DEBUG '     --> OK';
-
-
-      raise debug 'Checking column names in edge table';
-        select * into idname     from _pgr_getColumnName(sname, tname,id,2,fnName);
-        select * into sourcename from _pgr_getColumnName(sname, tname,source,2,fnName);
-        select * into targetname from _pgr_getColumnName(sname, tname,target,2,fnName);
-        select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2,fnName);
-
-
-        err = sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname;
-        perform _pgr_onError( err, 2, fnName,
-               'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
-	       'Column names are OK');
-
-      raise DEBUG '     --> OK';
-
-      raise debug 'Checking column types in edge table';
-        select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
-        select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
-        select * into idtype from _pgr_getColumnType(sname,tname,idname,1, fnName);
-
-        err = idtype not in('integer','smallint','bigint');
-        perform _pgr_onError(err, 2, fnName,
-	       'Wrong type of Column id:'|| idname, ' Expected type of '|| idname || ' is integer,smallint or bigint but '||idtype||' was found');
-
-        err = sourcetype not in('integer','smallint','bigint');
-        perform _pgr_onError(err, 2, fnName,
-	       'Wrong type of Column source:'|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
-
-        err = targettype not in('integer','smallint','bigint');
-        perform _pgr_onError(err, 2, fnName,
-	       'Wrong type of Column target:'|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or bigint but '||targettype||' was found');
-
-      raise DEBUG '     --> OK';
-
-      raise debug 'Checking SRID of geometry column';
-         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
-            || ' FROM ' || _pgr_quote_ident(tabname)
-            || ' WHERE ' || quote_ident(gname)
-            || ' IS NOT NULL LIMIT 1';
-         raise debug '%',query;
-         EXECUTE query INTO sridinfo;
-
-         err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
-         perform _pgr_onError(err, 2, fnName,
-	     'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
-
-         srid := sridinfo.srid;
-      raise DEBUG '     --> OK';
-
-      raise debug 'Checking and creating indices in edge table';
-        perform _pgr_createIndex(sname, tname , idname , 'btree'::text);
-        perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
-        perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
-        perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
-
-        gname=quote_ident(gname);
-        idname=quote_ident(idname);
-        sourcename=quote_ident(sourcename);
-        targetname=quote_ident(targetname);
-      raise DEBUG '     --> OK';
-
-
-
-
-
-    BEGIN 
-        -- issue #193 & issue #210 & #213
-        -- this sql is for trying out the where clause
-        -- the select * is to avoid any column name conflicts
-        -- limit 1, just try on first record
-        -- if the where clasuse is ill formed it will be caught in the exception
-        sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
-        EXECUTE sql into dummyRec;
-        -- end 
-
-        -- if above where clasue works this one should work
-        -- any error will be caught by the exception also
-        sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NOT NULL AND '||
-	    idname||' IS NOT NULL)=false '||rows_where;
-        EXECUTE SQL  into notincluded;
-
-        if clean then 
-            raise debug 'Cleaning previous Topology ';
-               execute 'UPDATE ' || _pgr_quote_ident(tabname) ||
-               ' SET '||sourcename||' = NULL,'||targetname||' = NULL'; 
-        else 
-            raise debug 'Creating topology for edges with non assigned topology';
-            if rows_where=' AND (true)' then
-                rows_where=  ' and ('||quote_ident(sourcename)||' is null or '||quote_ident(targetname)||' is  null)'; 
-            end if;
-        end if;
-        -- my thoery is that the select Count(*) will never go through here
-        EXCEPTION WHEN OTHERS THEN  
-             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
-             RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition'; 
-             RAISE NOTICE '%',sql;
-             RETURN 'FAIL'; 
-    END;    
-
-    BEGIN
-         raise DEBUG 'initializing %',vertname;
-         execute 'select * from _pgr_getTableName('||quote_literal(vertname)
-                                                  || ',0,' || quote_literal(fnName) ||' )' into naming;
-         emptied = false;
-         set client_min_messages  to warning;
-         IF sname=naming.sname AND vname=naming.tname  THEN
-            if clean then 
-                execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
-                execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
-                emptied = true;
-            end if;
-         ELSE -- table doesn't exist
-            execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
-            emptied = true;
-         END IF;
-         IF (emptied) THEN
-             execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
-	         quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
-             perform _pgr_createIndex(vertname , 'the_geom'::text , 'gist'::text);
-         END IF;
-         execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id"}''::text[])' into naming;
-         execute 'set client_min_messages  to '|| debuglevel;
-         raise DEBUG  '  ------>OK'; 
-         EXCEPTION WHEN OTHERS THEN  
-             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
-             RAISE NOTICE 'ERROR: something went wrong when initializing the verties table';
-             RETURN 'FAIL'; 
-    END;       
-
-
-
-    raise notice 'Creating Topology, Please wait...';
-        rowcount := 0;
-        FOR points IN EXECUTE 'SELECT ' || idname || '::bigint AS id,'
-            || ' _pgr_StartPoint(' || gname || ') AS source,'
-            || ' _pgr_EndPoint('   || gname || ') AS target'
-            || ' FROM '  || _pgr_quote_ident(tabname)
-            || ' WHERE ' || gname || ' IS NOT NULL AND ' || idname||' IS NOT NULL '||rows_where
-        LOOP
-
-            rowcount := rowcount + 1;
-            IF rowcount % 1000 = 0 THEN
-                RAISE NOTICE '% edges processed', rowcount;
-            END IF;
-
-
-            source_id := _pgr_pointToId(points.source, tolerance,vertname,srid);
-            target_id := _pgr_pointToId(points.target, tolerance,vertname,srid);
-            BEGIN                         
-                sql := 'UPDATE ' || _pgr_quote_ident(tabname) || 
-                    ' SET '||sourcename||' = '|| source_id::text || ','||targetname||' = ' || target_id::text || 
-                    ' WHERE ' || idname || ' =  ' || points.id::text;
-
-                IF sql IS NULL THEN
-                    RAISE NOTICE 'WARNING: UPDATE % SET source = %, target = % WHERE % = % ', tabname, source_id::text, target_id::text, idname,  points.id::text;
-                ELSE
-                    EXECUTE sql;
-                END IF;
-                EXCEPTION WHEN OTHERS THEN 
-                    RAISE NOTICE '%', SQLERRM;
-                    RAISE NOTICE '%',sql;
-                    RETURN 'FAIL'; 
-            end;
-        END LOOP;
-        raise notice '-------------> TOPOLOGY CREATED FOR  % edges', rowcount;
-        RAISE NOTICE 'Rows with NULL geometry or NULL id: %',notincluded;
-        Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname), _pgr_quote_ident(vertname);
-        raise notice '----------------------------------------------';
-
-    RETURN 'OK';
- EXCEPTION WHEN OTHERS THEN
-   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
-   RETURN 'FAIL';
-END;
-
-
-$BODY$
-LANGUAGE plpgsql VOLATILE STRICT;
-COMMENT ON FUNCTION pgr_createTopology(text, double precision,text,text,text,text,text,boolean) 
-IS 'args: edge_table,tolerance, the_geom:=''the_geom'',source:=''source'', target:=''target'',rows_where:=''true'' - fills columns source and target in the geometry table and creates a vertices table for selected rows';
-
-
-
-
diff --git a/src/topology/test/analyzeOneway-any.result b/src/topology/test/analyzeOneway-any.result
index 738473f..39e9938 100644
--- a/src/topology/test/analyzeOneway-any.result
+++ b/src/topology/test/analyzeOneway-any.result
@@ -1,9 +1,25 @@
- NOTICE:  PROCESSING:
- NOTICE:  pgr_analyzeOneway('edge_table','{"",B,TF}','{"",B,FT}','{"",B,FT}','{"",B,TF}','dir','source','target',t)
- NOTICE:  Analyzing graph for one way street errors.
- NOTICE:  Analysis 25% complete ...
- NOTICE:  Analysis 50% complete ...
- NOTICE:  Analysis 75% complete ...
- NOTICE:  Analysis 100% complete ...
- NOTICE:  Found 0 potential problems in directionality
-OK
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+SELECT pgr_analyzeOneway('edge_table',
+ARRAY['', 'B', 'TF'],
+ARRAY['', 'B', 'FT'],
+ARRAY['', 'B', 'FT'],
+ARRAY['', 'B', 'TF'],
+oneway:='dir');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_analyzeOneway('edge_table','{"",B,TF}','{"",B,FT}','{"",B,FT}','{"",B,TF}','dir','source','target',t)
+NOTICE:  Analyzing graph for one way street errors.
+NOTICE:  Analysis 25% complete ...
+NOTICE:  Analysis 50% complete ...
+NOTICE:  Analysis 75% complete ...
+NOTICE:  Analysis 100% complete ...
+NOTICE:  Found 0 potential problems in directionality
+ pgr_analyzeoneway 
+-------------------
+ OK
+(1 row)
+
+ROLLBACK;
+ROLLBACK
diff --git a/src/topology/test/createVertTab-any.result b/src/topology/test/createVertTab-any.result
index 5382bfa..184821d 100644
--- a/src/topology/test/createVertTab-any.result
+++ b/src/topology/test/createVertTab-any.result
@@ -1,198 +1,306 @@
- NOTICE:  PROCESSING:
- NOTICE:  pgr_createVerticesTable('edge_table','the_geom','source','target','true')
- NOTICE:  Performing checks, please wait .....
- NOTICE:  Populating public.edge_table_vertices_pgr, please wait...
- NOTICE:    ----->   VERTICES TABLE CREATED WITH  17 VERTICES
- NOTICE:                                         FOR   18  EDGES
- NOTICE:    Edges with NULL geometry,source or target: 0
- NOTICE:                              Edges processed: 18
- NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
- NOTICE:  ----------------------------------------------
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_createVerticesTable('edge_table','the_geom','source','target','true')
- NOTICE:  Performing checks, please wait .....
- NOTICE:  Populating public.edge_table_vertices_pgr, please wait...
- NOTICE:    ----->   VERTICES TABLE CREATED WITH  17 VERTICES
- NOTICE:                                         FOR   18  EDGES
- NOTICE:    Edges with NULL geometry,source or target: 0
- NOTICE:                              Edges processed: 18
- NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
- NOTICE:  ----------------------------------------------
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_createVerticesTable('edge_table','the_geom','source','target','true')
- NOTICE:  Performing checks, please wait .....
- NOTICE:  Populating public.edge_table_vertices_pgr, please wait...
- NOTICE:    ----->   VERTICES TABLE CREATED WITH  17 VERTICES
- NOTICE:                                         FOR   18  EDGES
- NOTICE:    Edges with NULL geometry,source or target: 0
- NOTICE:                              Edges processed: 18
- NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
- NOTICE:  ----------------------------------------------
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_createVerticesTable('edge_table','the_geom','source','target','true')
- NOTICE:  Performing checks, please wait .....
- NOTICE:  Populating public.edge_table_vertices_pgr, please wait...
- NOTICE:    ----->   VERTICES TABLE CREATED WITH  17 VERTICES
- NOTICE:                                         FOR   18  EDGES
- NOTICE:    Edges with NULL geometry,source or target: 0
- NOTICE:                              Edges processed: 18
- NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
- NOTICE:  ----------------------------------------------
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_createVerticesTable('edge_table','the_geom','source','target','true')
- NOTICE:  Performing checks, please wait .....
- NOTICE:  Populating public.edge_table_vertices_pgr, please wait...
- NOTICE:    ----->   VERTICES TABLE CREATED WITH  17 VERTICES
- NOTICE:                                         FOR   18  EDGES
- NOTICE:    Edges with NULL geometry,source or target: 0
- NOTICE:                              Edges processed: 18
- NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
- NOTICE:  ----------------------------------------------
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_createVerticesTable('edge_table','the_geom','source','target','id < 10')
- NOTICE:  Performing checks, please wait .....
- NOTICE:  Populating public.edge_table_vertices_pgr, please wait...
- NOTICE:    ----->   VERTICES TABLE CREATED WITH  9 VERTICES
- NOTICE:                                         FOR   10  EDGES
- NOTICE:    Edges with NULL geometry,source or target: 0
- NOTICE:                              Edges processed: 10
- NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
- NOTICE:  ----------------------------------------------
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_createVerticesTable('edge_table','the_geom','source','target','the_geom && (select st_buffer(the_geom,0.5) FROM edge_table WHERE id=5)')
- NOTICE:  Performing checks, please wait .....
- NOTICE:  Populating public.edge_table_vertices_pgr, please wait...
- NOTICE:    ----->   VERTICES TABLE CREATED WITH  9 VERTICES
- NOTICE:                                         FOR   9  EDGES
- NOTICE:    Edges with NULL geometry,source or target: 0
- NOTICE:                              Edges processed: 9
- NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
- NOTICE:  ----------------------------------------------
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_createVerticesTable('edge_table','the_geom','source','target','the_geom && (select st_buffer(other_geom,0.5) FROM otherTable WHERE gid=100)')
- NOTICE:  Performing checks, please wait .....
- NOTICE:  Populating public.edge_table_vertices_pgr, please wait...
- NOTICE:    ----->   VERTICES TABLE CREATED WITH  10 VERTICES
- NOTICE:                                         FOR   12  EDGES
- NOTICE:    Edges with NULL geometry,source or target: 0
- NOTICE:                              Edges processed: 12
- NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
- NOTICE:  ----------------------------------------------
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_createVerticesTable('mytable','mygeom','src','tgt','true')
- NOTICE:  Performing checks, please wait .....
- NOTICE:  Populating public.mytable_vertices_pgr, please wait...
- NOTICE:    ----->   VERTICES TABLE CREATED WITH  17 VERTICES
- NOTICE:                                         FOR   18  EDGES
- NOTICE:    Edges with NULL geometry,source or target: 0
- NOTICE:                              Edges processed: 18
- NOTICE:  Vertices table for table public.mytable is: public.mytable_vertices_pgr
- NOTICE:  ----------------------------------------------
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_createVerticesTable('mytable','mygeom','src','tgt','true')
- NOTICE:  Performing checks, please wait .....
- NOTICE:  Populating public.mytable_vertices_pgr, please wait...
- NOTICE:    ----->   VERTICES TABLE CREATED WITH  17 VERTICES
- NOTICE:                                         FOR   18  EDGES
- NOTICE:    Edges with NULL geometry,source or target: 0
- NOTICE:                              Edges processed: 18
- NOTICE:  Vertices table for table public.mytable is: public.mytable_vertices_pgr
- NOTICE:  ----------------------------------------------
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_createVerticesTable('mytable','mygeom','src','tgt','true')
- NOTICE:  Performing checks, please wait .....
- NOTICE:  Populating public.mytable_vertices_pgr, please wait...
- NOTICE:    ----->   VERTICES TABLE CREATED WITH  17 VERTICES
- NOTICE:                                         FOR   18  EDGES
- NOTICE:    Edges with NULL geometry,source or target: 0
- NOTICE:                              Edges processed: 18
- NOTICE:  Vertices table for table public.mytable is: public.mytable_vertices_pgr
- NOTICE:  ----------------------------------------------
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_createVerticesTable('mytable','mygeom','src','tgt','gid < 10')
- NOTICE:  Performing checks, please wait .....
- NOTICE:  Populating public.mytable_vertices_pgr, please wait...
- NOTICE:    ----->   VERTICES TABLE CREATED WITH  9 VERTICES
- NOTICE:                                         FOR   10  EDGES
- NOTICE:    Edges with NULL geometry,source or target: 0
- NOTICE:                              Edges processed: 10
- NOTICE:  Vertices table for table public.mytable is: public.mytable_vertices_pgr
- NOTICE:  ----------------------------------------------
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_createVerticesTable('mytable','mygeom','src','tgt','gid < 10')
- NOTICE:  Performing checks, please wait .....
- NOTICE:  Populating public.mytable_vertices_pgr, please wait...
- NOTICE:    ----->   VERTICES TABLE CREATED WITH  9 VERTICES
- NOTICE:                                         FOR   10  EDGES
- NOTICE:    Edges with NULL geometry,source or target: 0
- NOTICE:                              Edges processed: 10
- NOTICE:  Vertices table for table public.mytable is: public.mytable_vertices_pgr
- NOTICE:  ----------------------------------------------
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_createVerticesTable('mytable','mygeom','src','tgt','mygeom && (SELECT st_buffer(mygeom,0.5) FROM mytable WHERE gid=5)')
- NOTICE:  Performing checks, please wait .....
- NOTICE:  Populating public.mytable_vertices_pgr, please wait...
- NOTICE:    ----->   VERTICES TABLE CREATED WITH  9 VERTICES
- NOTICE:                                         FOR   9  EDGES
- NOTICE:    Edges with NULL geometry,source or target: 0
- NOTICE:                              Edges processed: 9
- NOTICE:  Vertices table for table public.mytable is: public.mytable_vertices_pgr
- NOTICE:  ----------------------------------------------
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_createVerticesTable('mytable','mygeom','src','tgt','mygeom && (SELECT st_buffer(mygeom,0.5) FROM mytable WHERE gid=5)')
- NOTICE:  Performing checks, please wait .....
- NOTICE:  Populating public.mytable_vertices_pgr, please wait...
- NOTICE:    ----->   VERTICES TABLE CREATED WITH  9 VERTICES
- NOTICE:                                         FOR   9  EDGES
- NOTICE:    Edges with NULL geometry,source or target: 0
- NOTICE:                              Edges processed: 9
- NOTICE:  Vertices table for table public.mytable is: public.mytable_vertices_pgr
- NOTICE:  ----------------------------------------------
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_createVerticesTable('mytable','mygeom','src','tgt','mygeom && (SELECT st_buffer(other_geom,0.5) FROM otherTable WHERE gid=100)')
- NOTICE:  Performing checks, please wait .....
- NOTICE:  Populating public.mytable_vertices_pgr, please wait...
- NOTICE:    ----->   VERTICES TABLE CREATED WITH  10 VERTICES
- NOTICE:                                         FOR   12  EDGES
- NOTICE:    Edges with NULL geometry,source or target: 0
- NOTICE:                              Edges processed: 12
- NOTICE:  Vertices table for table public.mytable is: public.mytable_vertices_pgr
- NOTICE:  ----------------------------------------------
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_createVerticesTable('mytable','mygeom','src','tgt','mygeom && (SELECT st_buffer(other_geom,0.5) FROM otherTable WHERE gid=100)')
- NOTICE:  Performing checks, please wait .....
- NOTICE:  Populating public.mytable_vertices_pgr, please wait...
- NOTICE:    ----->   VERTICES TABLE CREATED WITH  10 VERTICES
- NOTICE:                                         FOR   12  EDGES
- NOTICE:    Edges with NULL geometry,source or target: 0
- NOTICE:                              Edges processed: 12
- NOTICE:  Vertices table for table public.mytable is: public.mytable_vertices_pgr
- NOTICE:  ----------------------------------------------
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_createVerticesTable('edge_table','the_geom','source','target','true')
- NOTICE:  Performing checks, please wait .....
- NOTICE:  Populating public.edge_table_vertices_pgr, please wait...
- NOTICE:    ----->   VERTICES TABLE CREATED WITH  17 VERTICES
- NOTICE:                                         FOR   18  EDGES
- NOTICE:    Edges with NULL geometry,source or target: 0
- NOTICE:                              Edges processed: 18
- NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
- NOTICE:  ----------------------------------------------
-OK
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+SELECT  pgr_createVerticesTable('edge_table');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_createVerticesTable('edge_table','the_geom','source','target','true')
+NOTICE:  Performing checks, please wait .....
+NOTICE:  Populating public.edge_table_vertices_pgr, please wait...
+NOTICE:    ----->   VERTICES TABLE CREATED WITH  17 VERTICES
+NOTICE:                                         FOR   18  EDGES
+NOTICE:    Edges with NULL geometry,source or target: 0
+NOTICE:                              Edges processed: 18
+NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
+NOTICE:  ----------------------------------------------
+ pgr_createverticestable 
+-------------------------
+ OK
+(1 row)
+
+SELECT  pgr_createVerticesTable('edge_table','the_geom','source','target');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_createVerticesTable('edge_table','the_geom','source','target','true')
+NOTICE:  Performing checks, please wait .....
+NOTICE:  Populating public.edge_table_vertices_pgr, please wait...
+NOTICE:    ----->   VERTICES TABLE CREATED WITH  17 VERTICES
+NOTICE:                                         FOR   18  EDGES
+NOTICE:    Edges with NULL geometry,source or target: 0
+NOTICE:                              Edges processed: 18
+NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
+NOTICE:  ----------------------------------------------
+ pgr_createverticestable 
+-------------------------
+ OK
+(1 row)
+
+SELECT  pgr_createVerticesTable('edge_table',the_geom:='the_geom',source:='source',target:='target');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_createVerticesTable('edge_table','the_geom','source','target','true')
+NOTICE:  Performing checks, please wait .....
+NOTICE:  Populating public.edge_table_vertices_pgr, please wait...
+NOTICE:    ----->   VERTICES TABLE CREATED WITH  17 VERTICES
+NOTICE:                                         FOR   18  EDGES
+NOTICE:    Edges with NULL geometry,source or target: 0
+NOTICE:                              Edges processed: 18
+NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
+NOTICE:  ----------------------------------------------
+ pgr_createverticestable 
+-------------------------
+ OK
+(1 row)
+
+SELECT  pgr_createVerticesTable('edge_table',source:='source',target:='target',the_geom:='the_geom');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_createVerticesTable('edge_table','the_geom','source','target','true')
+NOTICE:  Performing checks, please wait .....
+NOTICE:  Populating public.edge_table_vertices_pgr, please wait...
+NOTICE:    ----->   VERTICES TABLE CREATED WITH  17 VERTICES
+NOTICE:                                         FOR   18  EDGES
+NOTICE:    Edges with NULL geometry,source or target: 0
+NOTICE:                              Edges processed: 18
+NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
+NOTICE:  ----------------------------------------------
+ pgr_createverticestable 
+-------------------------
+ OK
+(1 row)
+
+SELECT  pgr_createVerticesTable('edge_table',source:='source');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_createVerticesTable('edge_table','the_geom','source','target','true')
+NOTICE:  Performing checks, please wait .....
+NOTICE:  Populating public.edge_table_vertices_pgr, please wait...
+NOTICE:    ----->   VERTICES TABLE CREATED WITH  17 VERTICES
+NOTICE:                                         FOR   18  EDGES
+NOTICE:    Edges with NULL geometry,source or target: 0
+NOTICE:                              Edges processed: 18
+NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
+NOTICE:  ----------------------------------------------
+ pgr_createverticestable 
+-------------------------
+ OK
+(1 row)
+
+SELECT  pgr_createVerticesTable('edge_table',rows_where:='id < 10');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_createVerticesTable('edge_table','the_geom','source','target','id < 10')
+NOTICE:  Performing checks, please wait .....
+NOTICE:  Populating public.edge_table_vertices_pgr, please wait...
+NOTICE:    ----->   VERTICES TABLE CREATED WITH  9 VERTICES
+NOTICE:                                         FOR   10  EDGES
+NOTICE:    Edges with NULL geometry,source or target: 0
+NOTICE:                              Edges processed: 10
+NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
+NOTICE:  ----------------------------------------------
+ pgr_createverticestable 
+-------------------------
+ OK
+(1 row)
+
+SELECT  pgr_createVerticesTable('edge_table',rows_where:='the_geom && (select st_buffer(the_geom,0.5) FROM edge_table WHERE id=5)');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_createVerticesTable('edge_table','the_geom','source','target','the_geom && (select st_buffer(the_geom,0.5) FROM edge_table WHERE id=5)')
+NOTICE:  Performing checks, please wait .....
+NOTICE:  Populating public.edge_table_vertices_pgr, please wait...
+NOTICE:    ----->   VERTICES TABLE CREATED WITH  9 VERTICES
+NOTICE:                                         FOR   9  EDGES
+NOTICE:    Edges with NULL geometry,source or target: 0
+NOTICE:                              Edges processed: 9
+NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
+NOTICE:  ----------------------------------------------
+ pgr_createverticestable 
+-------------------------
+ OK
+(1 row)
+
+CREATE TABLE otherTable AS  (SELECT 100 AS gid, st_point(2.5,2.5) AS other_geom) ;
+SELECT 1
+SELECT  pgr_createVerticesTable('edge_table',rows_where:='the_geom && (select st_buffer(other_geom,0.5) FROM otherTable WHERE gid=100)');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_createVerticesTable('edge_table','the_geom','source','target','the_geom && (select st_buffer(other_geom,0.5) FROM otherTable WHERE gid=100)')
+NOTICE:  Performing checks, please wait .....
+NOTICE:  Populating public.edge_table_vertices_pgr, please wait...
+NOTICE:    ----->   VERTICES TABLE CREATED WITH  10 VERTICES
+NOTICE:                                         FOR   12  EDGES
+NOTICE:    Edges with NULL geometry,source or target: 0
+NOTICE:                              Edges processed: 12
+NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
+NOTICE:  ----------------------------------------------
+ pgr_createverticestable 
+-------------------------
+ OK
+(1 row)
+
+CREATE TABLE mytable AS (SELECT id AS gid, the_geom AS mygeom,source AS src ,target AS tgt FROM edge_table) ;
+SELECT 18
+SELECT  pgr_createVerticesTable('mytable','mygeom','src','tgt');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_createVerticesTable('mytable','mygeom','src','tgt','true')
+NOTICE:  Performing checks, please wait .....
+NOTICE:  Populating public.mytable_vertices_pgr, please wait...
+NOTICE:    ----->   VERTICES TABLE CREATED WITH  17 VERTICES
+NOTICE:                                         FOR   18  EDGES
+NOTICE:    Edges with NULL geometry,source or target: 0
+NOTICE:                              Edges processed: 18
+NOTICE:  Vertices table for table public.mytable is: public.mytable_vertices_pgr
+NOTICE:  ----------------------------------------------
+ pgr_createverticestable 
+-------------------------
+ OK
+(1 row)
+
+SELECT  pgr_createVerticesTable('mytable',the_geom:='mygeom',source:='src',target:='tgt');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_createVerticesTable('mytable','mygeom','src','tgt','true')
+NOTICE:  Performing checks, please wait .....
+NOTICE:  Populating public.mytable_vertices_pgr, please wait...
+NOTICE:    ----->   VERTICES TABLE CREATED WITH  17 VERTICES
+NOTICE:                                         FOR   18  EDGES
+NOTICE:    Edges with NULL geometry,source or target: 0
+NOTICE:                              Edges processed: 18
+NOTICE:  Vertices table for table public.mytable is: public.mytable_vertices_pgr
+NOTICE:  ----------------------------------------------
+ pgr_createverticestable 
+-------------------------
+ OK
+(1 row)
+
+SELECT  pgr_createVerticesTable('mytable',source:='src',target:='tgt',the_geom:='mygeom');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_createVerticesTable('mytable','mygeom','src','tgt','true')
+NOTICE:  Performing checks, please wait .....
+NOTICE:  Populating public.mytable_vertices_pgr, please wait...
+NOTICE:    ----->   VERTICES TABLE CREATED WITH  17 VERTICES
+NOTICE:                                         FOR   18  EDGES
+NOTICE:    Edges with NULL geometry,source or target: 0
+NOTICE:                              Edges processed: 18
+NOTICE:  Vertices table for table public.mytable is: public.mytable_vertices_pgr
+NOTICE:  ----------------------------------------------
+ pgr_createverticestable 
+-------------------------
+ OK
+(1 row)
+
+SELECT  pgr_createVerticesTable('mytable','mygeom','src','tgt',rows_where:='gid < 10');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_createVerticesTable('mytable','mygeom','src','tgt','gid < 10')
+NOTICE:  Performing checks, please wait .....
+NOTICE:  Populating public.mytable_vertices_pgr, please wait...
+NOTICE:    ----->   VERTICES TABLE CREATED WITH  9 VERTICES
+NOTICE:                                         FOR   10  EDGES
+NOTICE:    Edges with NULL geometry,source or target: 0
+NOTICE:                              Edges processed: 10
+NOTICE:  Vertices table for table public.mytable is: public.mytable_vertices_pgr
+NOTICE:  ----------------------------------------------
+ pgr_createverticestable 
+-------------------------
+ OK
+(1 row)
+
+SELECT  pgr_createVerticesTable('mytable',source:='src',target:='tgt',the_geom:='mygeom',rows_where:='gid < 10');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_createVerticesTable('mytable','mygeom','src','tgt','gid < 10')
+NOTICE:  Performing checks, please wait .....
+NOTICE:  Populating public.mytable_vertices_pgr, please wait...
+NOTICE:    ----->   VERTICES TABLE CREATED WITH  9 VERTICES
+NOTICE:                                         FOR   10  EDGES
+NOTICE:    Edges with NULL geometry,source or target: 0
+NOTICE:                              Edges processed: 10
+NOTICE:  Vertices table for table public.mytable is: public.mytable_vertices_pgr
+NOTICE:  ----------------------------------------------
+ pgr_createverticestable 
+-------------------------
+ OK
+(1 row)
+
+SELECT  pgr_createVerticesTable('mytable','mygeom','src','tgt',
+	                            rows_where:='mygeom && (SELECT st_buffer(mygeom,0.5) FROM mytable WHERE gid=5)');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_createVerticesTable('mytable','mygeom','src','tgt','mygeom && (SELECT st_buffer(mygeom,0.5) FROM mytable WHERE gid=5)')
+NOTICE:  Performing checks, please wait .....
+NOTICE:  Populating public.mytable_vertices_pgr, please wait...
+NOTICE:    ----->   VERTICES TABLE CREATED WITH  9 VERTICES
+NOTICE:                                         FOR   9  EDGES
+NOTICE:    Edges with NULL geometry,source or target: 0
+NOTICE:                              Edges processed: 9
+NOTICE:  Vertices table for table public.mytable is: public.mytable_vertices_pgr
+NOTICE:  ----------------------------------------------
+ pgr_createverticestable 
+-------------------------
+ OK
+(1 row)
+
+SELECT  pgr_createVerticesTable('mytable',source:='src',target:='tgt',the_geom:='mygeom',
+	                            rows_where:='mygeom && (SELECT st_buffer(mygeom,0.5) FROM mytable WHERE gid=5)');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_createVerticesTable('mytable','mygeom','src','tgt','mygeom && (SELECT st_buffer(mygeom,0.5) FROM mytable WHERE gid=5)')
+NOTICE:  Performing checks, please wait .....
+NOTICE:  Populating public.mytable_vertices_pgr, please wait...
+NOTICE:    ----->   VERTICES TABLE CREATED WITH  9 VERTICES
+NOTICE:                                         FOR   9  EDGES
+NOTICE:    Edges with NULL geometry,source or target: 0
+NOTICE:                              Edges processed: 9
+NOTICE:  Vertices table for table public.mytable is: public.mytable_vertices_pgr
+NOTICE:  ----------------------------------------------
+ pgr_createverticestable 
+-------------------------
+ OK
+(1 row)
+
+DROP TABLE IF EXISTS otherTable;
+DROP TABLE
+CREATE TABLE otherTable AS  (SELECT 100 AS gid, st_point(2.5,2.5) AS other_geom) ;
+SELECT 1
+SELECT  pgr_createVerticesTable('mytable','mygeom','src','tgt',
+	                            rows_where:='mygeom && (SELECT st_buffer(other_geom,0.5) FROM otherTable WHERE gid=100)');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_createVerticesTable('mytable','mygeom','src','tgt','mygeom && (SELECT st_buffer(other_geom,0.5) FROM otherTable WHERE gid=100)')
+NOTICE:  Performing checks, please wait .....
+NOTICE:  Populating public.mytable_vertices_pgr, please wait...
+NOTICE:    ----->   VERTICES TABLE CREATED WITH  10 VERTICES
+NOTICE:                                         FOR   12  EDGES
+NOTICE:    Edges with NULL geometry,source or target: 0
+NOTICE:                              Edges processed: 12
+NOTICE:  Vertices table for table public.mytable is: public.mytable_vertices_pgr
+NOTICE:  ----------------------------------------------
+ pgr_createverticestable 
+-------------------------
+ OK
+(1 row)
+
+SELECT  pgr_createVerticesTable('mytable',source:='src',target:='tgt',the_geom:='mygeom',
+	                            rows_where:='mygeom && (SELECT st_buffer(other_geom,0.5) FROM otherTable WHERE gid=100)');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_createVerticesTable('mytable','mygeom','src','tgt','mygeom && (SELECT st_buffer(other_geom,0.5) FROM otherTable WHERE gid=100)')
+NOTICE:  Performing checks, please wait .....
+NOTICE:  Populating public.mytable_vertices_pgr, please wait...
+NOTICE:    ----->   VERTICES TABLE CREATED WITH  10 VERTICES
+NOTICE:                                         FOR   12  EDGES
+NOTICE:    Edges with NULL geometry,source or target: 0
+NOTICE:                              Edges processed: 12
+NOTICE:  Vertices table for table public.mytable is: public.mytable_vertices_pgr
+NOTICE:  ----------------------------------------------
+ pgr_createverticestable 
+-------------------------
+ OK
+(1 row)
+
+SELECT pgr_createVerticesTable('edge_table');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_createVerticesTable('edge_table','the_geom','source','target','true')
+NOTICE:  Performing checks, please wait .....
+NOTICE:  Populating public.edge_table_vertices_pgr, please wait...
+NOTICE:    ----->   VERTICES TABLE CREATED WITH  17 VERTICES
+NOTICE:                                         FOR   18  EDGES
+NOTICE:    Edges with NULL geometry,source or target: 0
+NOTICE:                              Edges processed: 18
+NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
+NOTICE:  ----------------------------------------------
+ pgr_createverticestable 
+-------------------------
+ OK
+(1 row)
+
+ROLLBACK;
+ROLLBACK
diff --git a/src/topology/test/doc-pgr_analyzeGraph.result b/src/topology/test/doc-pgr_analyzeGraph.result
index 5e7f4d2..b98fe3c 100644
--- a/src/topology/test/doc-pgr_analyzeGraph.result
+++ b/src/topology/test/doc-pgr_analyzeGraph.result
@@ -1,378 +1,536 @@
- NOTICE:  PROCESSING:
- NOTICE:  pgr_createTopology('edge_table', 0.001, 'the_geom', 'id', 'source', 'target', rows_where := 'true', clean := t)
- NOTICE:  Performing checks, please wait.....
- NOTICE:  Creating Topology, Please wait...
- NOTICE:  -------------> TOPOLOGY CREATED FOR  18 edges
- NOTICE:  Rows with NULL geometry or NULL id: 0
- NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
- NOTICE:  ----------------------------------------------
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','true')
- NOTICE:  Performing checks, please wait...
- NOTICE:  Analyzing for dead ends. Please wait...
- NOTICE:  Analyzing for gaps. Please wait...
- NOTICE:  Analyzing for isolated edges. Please wait...
- NOTICE:  Analyzing for ring geometries. Please wait...
- NOTICE:  Analyzing for intersections. Please wait...
- NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
- NOTICE:                    Isolated segments: 2
- NOTICE:                            Dead ends: 7
- NOTICE:  Potential gaps found near dead ends: 1
- NOTICE:               Intersections detected: 1
- NOTICE:                      Ring geometries: 0
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','true')
- NOTICE:  Performing checks, please wait...
- NOTICE:  Analyzing for dead ends. Please wait...
- NOTICE:  Analyzing for gaps. Please wait...
- NOTICE:  Analyzing for isolated edges. Please wait...
- NOTICE:  Analyzing for ring geometries. Please wait...
- NOTICE:  Analyzing for intersections. Please wait...
- NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
- NOTICE:                    Isolated segments: 2
- NOTICE:                            Dead ends: 7
- NOTICE:  Potential gaps found near dead ends: 1
- NOTICE:               Intersections detected: 1
- NOTICE:                      Ring geometries: 0
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_analyzeGraph('edge_table',0.001,'id','the_geom','source','target','true')
- NOTICE:  Performing checks, please wait...
- NOTICE:  Got function st_srid(bigint) does not exist
- NOTICE:  ERROR: something went wrong when checking for SRID of id in table public.edge_table
-FAIL
- NOTICE:  PROCESSING:
- NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','true')
- NOTICE:  Performing checks, please wait...
- NOTICE:  Analyzing for dead ends. Please wait...
- NOTICE:  Analyzing for gaps. Please wait...
- NOTICE:  Analyzing for isolated edges. Please wait...
- NOTICE:  Analyzing for ring geometries. Please wait...
- NOTICE:  Analyzing for intersections. Please wait...
- NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
- NOTICE:                    Isolated segments: 2
- NOTICE:                            Dead ends: 7
- NOTICE:  Potential gaps found near dead ends: 1
- NOTICE:               Intersections detected: 1
- NOTICE:                      Ring geometries: 0
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','true')
- NOTICE:  Performing checks, please wait...
- NOTICE:  Analyzing for dead ends. Please wait...
- NOTICE:  Analyzing for gaps. Please wait...
- NOTICE:  Analyzing for isolated edges. Please wait...
- NOTICE:  Analyzing for ring geometries. Please wait...
- NOTICE:  Analyzing for intersections. Please wait...
- NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
- NOTICE:                    Isolated segments: 2
- NOTICE:                            Dead ends: 7
- NOTICE:  Potential gaps found near dead ends: 1
- NOTICE:               Intersections detected: 1
- NOTICE:                      Ring geometries: 0
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','true')
- NOTICE:  Performing checks, please wait...
- NOTICE:  Analyzing for dead ends. Please wait...
- NOTICE:  Analyzing for gaps. Please wait...
- NOTICE:  Analyzing for isolated edges. Please wait...
- NOTICE:  Analyzing for ring geometries. Please wait...
- NOTICE:  Analyzing for intersections. Please wait...
- NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
- NOTICE:                    Isolated segments: 2
- NOTICE:                            Dead ends: 7
- NOTICE:  Potential gaps found near dead ends: 1
- NOTICE:               Intersections detected: 1
- NOTICE:                      Ring geometries: 0
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','id < 10')
- NOTICE:  Performing checks, please wait...
- NOTICE:  Analyzing for dead ends. Please wait...
- NOTICE:  Analyzing for gaps. Please wait...
- NOTICE:  Analyzing for isolated edges. Please wait...
- NOTICE:  Analyzing for ring geometries. Please wait...
- NOTICE:  Analyzing for intersections. Please wait...
- NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
- NOTICE:                    Isolated segments: 0
- NOTICE:                            Dead ends: 4
- NOTICE:  Potential gaps found near dead ends: 0
- NOTICE:               Intersections detected: 0
- NOTICE:                      Ring geometries: 0
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','the_geom && (SELECT st_buffer(the_geom,0.05) FROM edge_table WHERE id=5)')
- NOTICE:  Performing checks, please wait...
- NOTICE:  Analyzing for dead ends. Please wait...
- NOTICE:  Analyzing for gaps. Please wait...
- NOTICE:  Analyzing for isolated edges. Please wait...
- NOTICE:  Analyzing for ring geometries. Please wait...
- NOTICE:  Analyzing for intersections. Please wait...
- NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
- NOTICE:                    Isolated segments: 0
- NOTICE:                            Dead ends: 5
- NOTICE:  Potential gaps found near dead ends: 0
- NOTICE:               Intersections detected: 0
- NOTICE:                      Ring geometries: 0
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','the_geom && (SELECT st_buffer(other_geom,1) FROM otherTable WHERE gid=100)')
- NOTICE:  Performing checks, please wait...
- NOTICE:  Analyzing for dead ends. Please wait...
- NOTICE:  Analyzing for gaps. Please wait...
- NOTICE:  Analyzing for isolated edges. Please wait...
- NOTICE:  Analyzing for ring geometries. Please wait...
- NOTICE:  Analyzing for intersections. Please wait...
- NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
- NOTICE:                    Isolated segments: 2
- NOTICE:                            Dead ends: 10
- NOTICE:  Potential gaps found near dead ends: 1
- NOTICE:               Intersections detected: 1
- NOTICE:                      Ring geometries: 0
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_createTopology('mytable', 0.001, 'mygeom', 'gid', 'src', 'tgt', rows_where := 'true', clean := t)
- NOTICE:  Performing checks, please wait .....
- NOTICE:  Creating Topology, Please wait...
- NOTICE:  -------------> TOPOLOGY CREATED FOR  18 edges
- NOTICE:  Rows with NULL geometry or NULL id: 0
- NOTICE:  Vertices table for table public.mytable is: public.mytable_vertices_pgr
- NOTICE:  ----------------------------------------------
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_analyzeGraph('mytable',0.001,'mygeom','gid','src','tgt','true')
- NOTICE:  Performing checks, please wait...
- NOTICE:  Analyzing for dead ends. Please wait...
- NOTICE:  Analyzing for gaps. Please wait...
- NOTICE:  Analyzing for isolated edges. Please wait...
- NOTICE:  Analyzing for ring geometries. Please wait...
- NOTICE:  Analyzing for intersections. Please wait...
- NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
- NOTICE:                    Isolated segments: 2
- NOTICE:                            Dead ends: 7
- NOTICE:  Potential gaps found near dead ends: 1
- NOTICE:               Intersections detected: 1
- NOTICE:                      Ring geometries: 0
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_analyzeGraph('mytable',0.0001,'gid','mygeom','src','tgt','true')
- NOTICE:  Performing checks, please wait...
- NOTICE:  Got function st_srid(bigint) does not exist
- NOTICE:  ERROR: something went wrong when checking for SRID of gid in table public.mytable
-FAIL
- NOTICE:  PROCESSING:
- NOTICE:  pgr_analyzeGraph('mytable',0.001,'mygeom','gid','src','tgt','true')
- NOTICE:  Performing checks, please wait...
- NOTICE:  Analyzing for dead ends. Please wait...
- NOTICE:  Analyzing for gaps. Please wait...
- NOTICE:  Analyzing for isolated edges. Please wait...
- NOTICE:  Analyzing for ring geometries. Please wait...
- NOTICE:  Analyzing for intersections. Please wait...
- NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
- NOTICE:                    Isolated segments: 2
- NOTICE:                            Dead ends: 7
- NOTICE:  Potential gaps found near dead ends: 1
- NOTICE:               Intersections detected: 1
- NOTICE:                      Ring geometries: 0
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_analyzeGraph('mytable',0.001,'mygeom','gid','src','tgt','true')
- NOTICE:  Performing checks, please wait...
- NOTICE:  Analyzing for dead ends. Please wait...
- NOTICE:  Analyzing for gaps. Please wait...
- NOTICE:  Analyzing for isolated edges. Please wait...
- NOTICE:  Analyzing for ring geometries. Please wait...
- NOTICE:  Analyzing for intersections. Please wait...
- NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
- NOTICE:                    Isolated segments: 2
- NOTICE:                            Dead ends: 7
- NOTICE:  Potential gaps found near dead ends: 1
- NOTICE:               Intersections detected: 1
- NOTICE:                      Ring geometries: 0
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_analyzeGraph('mytable',0.001,'mygeom','gid','src','tgt','gid < 10')
- NOTICE:  Performing checks, please wait...
- NOTICE:  Analyzing for dead ends. Please wait...
- NOTICE:  Analyzing for gaps. Please wait...
- NOTICE:  Analyzing for isolated edges. Please wait...
- NOTICE:  Analyzing for ring geometries. Please wait...
- NOTICE:  Analyzing for intersections. Please wait...
- NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
- NOTICE:                    Isolated segments: 0
- NOTICE:                            Dead ends: 4
- NOTICE:  Potential gaps found near dead ends: 0
- NOTICE:               Intersections detected: 0
- NOTICE:                      Ring geometries: 0
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_analyzeGraph('mytable',0.001,'mygeom','gid','src','tgt','gid < 10')
- NOTICE:  Performing checks, please wait...
- NOTICE:  Analyzing for dead ends. Please wait...
- NOTICE:  Analyzing for gaps. Please wait...
- NOTICE:  Analyzing for isolated edges. Please wait...
- NOTICE:  Analyzing for ring geometries. Please wait...
- NOTICE:  Analyzing for intersections. Please wait...
- NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
- NOTICE:                    Isolated segments: 0
- NOTICE:                            Dead ends: 4
- NOTICE:  Potential gaps found near dead ends: 0
- NOTICE:               Intersections detected: 0
- NOTICE:                      Ring geometries: 0
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_analyzeGraph('mytable',0.001,'mygeom','gid','src','tgt','mygeom && (SELECT st_buffer(mygeom,1) FROM mytable WHERE gid=5)')
- NOTICE:  Performing checks, please wait...
- NOTICE:  Analyzing for dead ends. Please wait...
- NOTICE:  Analyzing for gaps. Please wait...
- NOTICE:  Analyzing for isolated edges. Please wait...
- NOTICE:  Analyzing for ring geometries. Please wait...
- NOTICE:  Analyzing for intersections. Please wait...
- NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
- NOTICE:                    Isolated segments: 1
- NOTICE:                            Dead ends: 5
- NOTICE:  Potential gaps found near dead ends: 0
- NOTICE:               Intersections detected: 1
- NOTICE:                      Ring geometries: 0
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_analyzeGraph('mytable',0.001,'mygeom','gid','src','tgt','mygeom && (SELECT st_buffer(mygeom,1) FROM mytable WHERE gid=5)')
- NOTICE:  Performing checks, please wait...
- NOTICE:  Analyzing for dead ends. Please wait...
- NOTICE:  Analyzing for gaps. Please wait...
- NOTICE:  Analyzing for isolated edges. Please wait...
- NOTICE:  Analyzing for ring geometries. Please wait...
- NOTICE:  Analyzing for intersections. Please wait...
- NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
- NOTICE:                    Isolated segments: 1
- NOTICE:                            Dead ends: 5
- NOTICE:  Potential gaps found near dead ends: 0
- NOTICE:               Intersections detected: 1
- NOTICE:                      Ring geometries: 0
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_analyzeGraph('mytable',0.001,'mygeom','gid','src','tgt','mygeom && (SELECT st_buffer(other_geom,1) FROM otherTable WHERE place='myhouse')')
- NOTICE:  Performing checks, please wait...
- NOTICE:  Analyzing for dead ends. Please wait...
- NOTICE:  Analyzing for gaps. Please wait...
- NOTICE:  Analyzing for isolated edges. Please wait...
- NOTICE:  Analyzing for ring geometries. Please wait...
- NOTICE:  Analyzing for intersections. Please wait...
- NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
- NOTICE:                    Isolated segments: 2
- NOTICE:                            Dead ends: 10
- NOTICE:  Potential gaps found near dead ends: 1
- NOTICE:               Intersections detected: 1
- NOTICE:                      Ring geometries: 0
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_analyzeGraph('mytable',0.001,'mygeom','gid','src','tgt','mygeom && (SELECT st_buffer(other_geom,1) FROM otherTable WHERE place='myhouse')')
- NOTICE:  Performing checks, please wait...
- NOTICE:  Analyzing for dead ends. Please wait...
- NOTICE:  Analyzing for gaps. Please wait...
- NOTICE:  Analyzing for isolated edges. Please wait...
- NOTICE:  Analyzing for ring geometries. Please wait...
- NOTICE:  Analyzing for intersections. Please wait...
- NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
- NOTICE:                    Isolated segments: 2
- NOTICE:                            Dead ends: 10
- NOTICE:  Potential gaps found near dead ends: 1
- NOTICE:               Intersections detected: 1
- NOTICE:                      Ring geometries: 0
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_createTopology('edge_table', 0.001, 'the_geom', 'id', 'source', 'target', rows_where := 'true', clean := t)
- NOTICE:  Performing checks, please wait .....
- NOTICE:  Creating Topology, Please wait...
- NOTICE:  -------------> TOPOLOGY CREATED FOR  18 edges
- NOTICE:  Rows with NULL geometry or NULL id: 0
- NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
- NOTICE:  ----------------------------------------------
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','true')
- NOTICE:  Performing checks, please wait...
- NOTICE:  Analyzing for dead ends. Please wait...
- NOTICE:  Analyzing for gaps. Please wait...
- NOTICE:  Analyzing for isolated edges. Please wait...
- NOTICE:  Analyzing for ring geometries. Please wait...
- NOTICE:  Analyzing for intersections. Please wait...
- NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
- NOTICE:                    Isolated segments: 2
- NOTICE:                            Dead ends: 7
- NOTICE:  Potential gaps found near dead ends: 1
- NOTICE:               Intersections detected: 1
- NOTICE:                      Ring geometries: 0
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','id < 10')
- NOTICE:  Performing checks, please wait...
- NOTICE:  Analyzing for dead ends. Please wait...
- NOTICE:  Analyzing for gaps. Please wait...
- NOTICE:  Analyzing for isolated edges. Please wait...
- NOTICE:  Analyzing for ring geometries. Please wait...
- NOTICE:  Analyzing for intersections. Please wait...
- NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
- NOTICE:                    Isolated segments: 0
- NOTICE:                            Dead ends: 4
- NOTICE:  Potential gaps found near dead ends: 0
- NOTICE:               Intersections detected: 0
- NOTICE:                      Ring geometries: 0
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','id >= 10')
- NOTICE:  Performing checks, please wait...
- NOTICE:  Analyzing for dead ends. Please wait...
- NOTICE:  Analyzing for gaps. Please wait...
- NOTICE:  Analyzing for isolated edges. Please wait...
- NOTICE:  Analyzing for ring geometries. Please wait...
- NOTICE:  Analyzing for intersections. Please wait...
- NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
- NOTICE:                    Isolated segments: 2
- NOTICE:                            Dead ends: 8
- NOTICE:  Potential gaps found near dead ends: 1
- NOTICE:               Intersections detected: 1
- NOTICE:                      Ring geometries: 0
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','id < 17')
- NOTICE:  Performing checks, please wait...
- NOTICE:  Analyzing for dead ends. Please wait...
- NOTICE:  Analyzing for gaps. Please wait...
- NOTICE:  Analyzing for isolated edges. Please wait...
- NOTICE:  Analyzing for ring geometries. Please wait...
- NOTICE:  Analyzing for intersections. Please wait...
- NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
- NOTICE:                    Isolated segments: 0
- NOTICE:                            Dead ends: 3
- NOTICE:  Potential gaps found near dead ends: 0
- NOTICE:               Intersections detected: 0
- NOTICE:                      Ring geometries: 0
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_createTopology('edge_table', 0.001, 'the_geom', 'id', 'source', 'target', rows_where := 'id <17', clean := t)
- NOTICE:  Performing checks, please wait .....
- NOTICE:  Creating Topology, Please wait...
- NOTICE:  -------------> TOPOLOGY CREATED FOR  16 edges
- NOTICE:  Rows with NULL geometry or NULL id: 0
- NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
- NOTICE:  ----------------------------------------------
-OK
- NOTICE:  PROCESSING:
- NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','true')
- NOTICE:  Performing checks, please wait...
- NOTICE:  Analyzing for dead ends. Please wait...
- NOTICE:  Analyzing for gaps. Please wait...
- NOTICE:  Analyzing for isolated edges. Please wait...
- NOTICE:  Analyzing for ring geometries. Please wait...
- NOTICE:  Analyzing for intersections. Please wait...
- NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
- NOTICE:                    Isolated segments: 0
- NOTICE:                            Dead ends: 3
- NOTICE:  Potential gaps found near dead ends: 0
- NOTICE:               Intersections detected: 0
- NOTICE:                      Ring geometries: 0
-OK
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+SELECT  pgr_createTopology('edge_table',0.001, clean := true);
+NOTICE:  PROCESSING:
+NOTICE:  pgr_createTopology('edge_table', 0.001, 'the_geom', 'id', 'source', 'target', rows_where := 'true', clean := t)
+NOTICE:  Performing checks, please wait .....
+NOTICE:  Creating Topology, Please wait...
+NOTICE:  -------------> TOPOLOGY CREATED FOR  18 edges
+NOTICE:  Rows with NULL geometry or NULL id: 0
+NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
+NOTICE:  ----------------------------------------------
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
+SELECT  pgr_analyzeGraph('edge_table',0.001);
+NOTICE:  PROCESSING:
+NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','true')
+NOTICE:  Performing checks, please wait ...
+NOTICE:  Analyzing for dead ends. Please wait...
+NOTICE:  Analyzing for gaps. Please wait...
+NOTICE:  Analyzing for isolated edges. Please wait...
+NOTICE:  Analyzing for ring geometries. Please wait...
+NOTICE:  Analyzing for intersections. Please wait...
+NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+NOTICE:                    Isolated segments: 2
+NOTICE:                            Dead ends: 7
+NOTICE:  Potential gaps found near dead ends: 1
+NOTICE:               Intersections detected: 1
+NOTICE:                      Ring geometries: 0
+ pgr_analyzegraph 
+------------------
+ OK
+(1 row)
+
+SELECT  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','true')
+NOTICE:  Performing checks, please wait ...
+NOTICE:  Analyzing for dead ends. Please wait...
+NOTICE:  Analyzing for gaps. Please wait...
+NOTICE:  Analyzing for isolated edges. Please wait...
+NOTICE:  Analyzing for ring geometries. Please wait...
+NOTICE:  Analyzing for intersections. Please wait...
+NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+NOTICE:                    Isolated segments: 2
+NOTICE:                            Dead ends: 7
+NOTICE:  Potential gaps found near dead ends: 1
+NOTICE:               Intersections detected: 1
+NOTICE:                      Ring geometries: 0
+ pgr_analyzegraph 
+------------------
+ OK
+(1 row)
+
+SELECT  pgr_analyzeGraph('edge_table',0.001,'id','the_geom','source','target');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_analyzeGraph('edge_table',0.001,'id','the_geom','source','target','true')
+NOTICE:  Performing checks, please wait ...
+NOTICE:  Got function st_srid(bigint) does not exist
+NOTICE:  ERROR: something went wrong when checking for SRID of id in table public.edge_table
+ pgr_analyzegraph 
+------------------
+ FAIL
+(1 row)
+
+SELECT  pgr_analyzeGraph('edge_table',0.001,the_geom:='the_geom',id:='id',source:='source',target:='target');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','true')
+NOTICE:  Performing checks, please wait ...
+NOTICE:  Analyzing for dead ends. Please wait...
+NOTICE:  Analyzing for gaps. Please wait...
+NOTICE:  Analyzing for isolated edges. Please wait...
+NOTICE:  Analyzing for ring geometries. Please wait...
+NOTICE:  Analyzing for intersections. Please wait...
+NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+NOTICE:                    Isolated segments: 2
+NOTICE:                            Dead ends: 7
+NOTICE:  Potential gaps found near dead ends: 1
+NOTICE:               Intersections detected: 1
+NOTICE:                      Ring geometries: 0
+ pgr_analyzegraph 
+------------------
+ OK
+(1 row)
+
+SELECT  pgr_analyzeGraph('edge_table',0.001,source:='source',id:='id',target:='target',the_geom:='the_geom');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','true')
+NOTICE:  Performing checks, please wait ...
+NOTICE:  Analyzing for dead ends. Please wait...
+NOTICE:  Analyzing for gaps. Please wait...
+NOTICE:  Analyzing for isolated edges. Please wait...
+NOTICE:  Analyzing for ring geometries. Please wait...
+NOTICE:  Analyzing for intersections. Please wait...
+NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+NOTICE:                    Isolated segments: 2
+NOTICE:                            Dead ends: 7
+NOTICE:  Potential gaps found near dead ends: 1
+NOTICE:               Intersections detected: 1
+NOTICE:                      Ring geometries: 0
+ pgr_analyzegraph 
+------------------
+ OK
+(1 row)
+
+SELECT  pgr_analyzeGraph('edge_table',0.001,source:='source');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','true')
+NOTICE:  Performing checks, please wait ...
+NOTICE:  Analyzing for dead ends. Please wait...
+NOTICE:  Analyzing for gaps. Please wait...
+NOTICE:  Analyzing for isolated edges. Please wait...
+NOTICE:  Analyzing for ring geometries. Please wait...
+NOTICE:  Analyzing for intersections. Please wait...
+NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+NOTICE:                    Isolated segments: 2
+NOTICE:                            Dead ends: 7
+NOTICE:  Potential gaps found near dead ends: 1
+NOTICE:               Intersections detected: 1
+NOTICE:                      Ring geometries: 0
+ pgr_analyzegraph 
+------------------
+ OK
+(1 row)
+
+SELECT  pgr_analyzeGraph('edge_table',0.001,rows_where:='id < 10');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','id < 10')
+NOTICE:  Performing checks, please wait ...
+NOTICE:  Analyzing for dead ends. Please wait...
+NOTICE:  Analyzing for gaps. Please wait...
+NOTICE:  Analyzing for isolated edges. Please wait...
+NOTICE:  Analyzing for ring geometries. Please wait...
+NOTICE:  Analyzing for intersections. Please wait...
+NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+NOTICE:                    Isolated segments: 0
+NOTICE:                            Dead ends: 4
+NOTICE:  Potential gaps found near dead ends: 0
+NOTICE:               Intersections detected: 0
+NOTICE:                      Ring geometries: 0
+ pgr_analyzegraph 
+------------------
+ OK
+(1 row)
+
+SELECT  pgr_analyzeGraph('edge_table',0.001,rows_where:='the_geom && (SELECT st_buffer(the_geom,0.05) FROM edge_table WHERE id=5)');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','the_geom && (SELECT st_buffer(the_geom,0.05) FROM edge_table WHERE id=5)')
+NOTICE:  Performing checks, please wait ...
+NOTICE:  Analyzing for dead ends. Please wait...
+NOTICE:  Analyzing for gaps. Please wait...
+NOTICE:  Analyzing for isolated edges. Please wait...
+NOTICE:  Analyzing for ring geometries. Please wait...
+NOTICE:  Analyzing for intersections. Please wait...
+NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+NOTICE:                    Isolated segments: 0
+NOTICE:                            Dead ends: 5
+NOTICE:  Potential gaps found near dead ends: 0
+NOTICE:               Intersections detected: 0
+NOTICE:                      Ring geometries: 0
+ pgr_analyzegraph 
+------------------
+ OK
+(1 row)
+
+CREATE TABLE otherTable AS  (SELECT 100 AS gid, st_point(2.5,2.5) AS other_geom) ;
+SELECT 1
+SELECT  pgr_analyzeGraph('edge_table',0.001,rows_where:='the_geom && (SELECT st_buffer(other_geom,1) FROM otherTable WHERE gid=100)');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','the_geom && (SELECT st_buffer(other_geom,1) FROM otherTable WHERE gid=100)')
+NOTICE:  Performing checks, please wait ...
+NOTICE:  Analyzing for dead ends. Please wait...
+NOTICE:  Analyzing for gaps. Please wait...
+NOTICE:  Analyzing for isolated edges. Please wait...
+NOTICE:  Analyzing for ring geometries. Please wait...
+NOTICE:  Analyzing for intersections. Please wait...
+NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+NOTICE:                    Isolated segments: 2
+NOTICE:                            Dead ends: 10
+NOTICE:  Potential gaps found near dead ends: 1
+NOTICE:               Intersections detected: 1
+NOTICE:                      Ring geometries: 0
+ pgr_analyzegraph 
+------------------
+ OK
+(1 row)
+
+CREATE TABLE mytable AS (SELECT id AS gid, source AS src ,target AS tgt , the_geom AS mygeom FROM edge_table);
+SELECT 18
+SELECT pgr_createTopology('mytable',0.001,'mygeom','gid','src','tgt', clean := true);
+NOTICE:  PROCESSING:
+NOTICE:  pgr_createTopology('mytable', 0.001, 'mygeom', 'gid', 'src', 'tgt', rows_where := 'true', clean := t)
+NOTICE:  Performing checks, please wait .....
+NOTICE:  Creating Topology, Please wait...
+NOTICE:  -------------> TOPOLOGY CREATED FOR  18 edges
+NOTICE:  Rows with NULL geometry or NULL id: 0
+NOTICE:  Vertices table for table public.mytable is: public.mytable_vertices_pgr
+NOTICE:  ----------------------------------------------
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
+SELECT  pgr_analyzeGraph('mytable',0.001,'mygeom','gid','src','tgt');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_analyzeGraph('mytable',0.001,'mygeom','gid','src','tgt','true')
+NOTICE:  Performing checks, please wait ...
+NOTICE:  Analyzing for dead ends. Please wait...
+NOTICE:  Analyzing for gaps. Please wait...
+NOTICE:  Analyzing for isolated edges. Please wait...
+NOTICE:  Analyzing for ring geometries. Please wait...
+NOTICE:  Analyzing for intersections. Please wait...
+NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+NOTICE:                    Isolated segments: 2
+NOTICE:                            Dead ends: 7
+NOTICE:  Potential gaps found near dead ends: 1
+NOTICE:               Intersections detected: 1
+NOTICE:                      Ring geometries: 0
+ pgr_analyzegraph 
+------------------
+ OK
+(1 row)
+
+SELECT  pgr_analyzeGraph('mytable',0.0001,'gid','mygeom','src','tgt');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_analyzeGraph('mytable',0.0001,'gid','mygeom','src','tgt','true')
+NOTICE:  Performing checks, please wait ...
+NOTICE:  Got function st_srid(bigint) does not exist
+NOTICE:  ERROR: something went wrong when checking for SRID of gid in table public.mytable
+ pgr_analyzegraph 
+------------------
+ FAIL
+(1 row)
+
+SELECT  pgr_analyzeGraph('mytable',0.001,the_geom:='mygeom',id:='gid',source:='src',target:='tgt');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_analyzeGraph('mytable',0.001,'mygeom','gid','src','tgt','true')
+NOTICE:  Performing checks, please wait ...
+NOTICE:  Analyzing for dead ends. Please wait...
+NOTICE:  Analyzing for gaps. Please wait...
+NOTICE:  Analyzing for isolated edges. Please wait...
+NOTICE:  Analyzing for ring geometries. Please wait...
+NOTICE:  Analyzing for intersections. Please wait...
+NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+NOTICE:                    Isolated segments: 2
+NOTICE:                            Dead ends: 7
+NOTICE:  Potential gaps found near dead ends: 1
+NOTICE:               Intersections detected: 1
+NOTICE:                      Ring geometries: 0
+ pgr_analyzegraph 
+------------------
+ OK
+(1 row)
+
+SELECT  pgr_analyzeGraph('mytable',0.001,source:='src',id:='gid',target:='tgt',the_geom:='mygeom');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_analyzeGraph('mytable',0.001,'mygeom','gid','src','tgt','true')
+NOTICE:  Performing checks, please wait ...
+NOTICE:  Analyzing for dead ends. Please wait...
+NOTICE:  Analyzing for gaps. Please wait...
+NOTICE:  Analyzing for isolated edges. Please wait...
+NOTICE:  Analyzing for ring geometries. Please wait...
+NOTICE:  Analyzing for intersections. Please wait...
+NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+NOTICE:                    Isolated segments: 2
+NOTICE:                            Dead ends: 7
+NOTICE:  Potential gaps found near dead ends: 1
+NOTICE:               Intersections detected: 1
+NOTICE:                      Ring geometries: 0
+ pgr_analyzegraph 
+------------------
+ OK
+(1 row)
+
+SELECT  pgr_analyzeGraph('mytable',0.001,'mygeom','gid','src','tgt',rows_where:='gid < 10');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_analyzeGraph('mytable',0.001,'mygeom','gid','src','tgt','gid < 10')
+NOTICE:  Performing checks, please wait ...
+NOTICE:  Analyzing for dead ends. Please wait...
+NOTICE:  Analyzing for gaps. Please wait...
+NOTICE:  Analyzing for isolated edges. Please wait...
+NOTICE:  Analyzing for ring geometries. Please wait...
+NOTICE:  Analyzing for intersections. Please wait...
+NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+NOTICE:                    Isolated segments: 0
+NOTICE:                            Dead ends: 4
+NOTICE:  Potential gaps found near dead ends: 0
+NOTICE:               Intersections detected: 0
+NOTICE:                      Ring geometries: 0
+ pgr_analyzegraph 
+------------------
+ OK
+(1 row)
+
+SELECT  pgr_analyzeGraph('mytable',0.001,source:='src',id:='gid',target:='tgt',the_geom:='mygeom',rows_where:='gid < 10');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_analyzeGraph('mytable',0.001,'mygeom','gid','src','tgt','gid < 10')
+NOTICE:  Performing checks, please wait ...
+NOTICE:  Analyzing for dead ends. Please wait...
+NOTICE:  Analyzing for gaps. Please wait...
+NOTICE:  Analyzing for isolated edges. Please wait...
+NOTICE:  Analyzing for ring geometries. Please wait...
+NOTICE:  Analyzing for intersections. Please wait...
+NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+NOTICE:                    Isolated segments: 0
+NOTICE:                            Dead ends: 4
+NOTICE:  Potential gaps found near dead ends: 0
+NOTICE:               Intersections detected: 0
+NOTICE:                      Ring geometries: 0
+ pgr_analyzegraph 
+------------------
+ OK
+(1 row)
+
+SELECT  pgr_analyzeGraph('mytable',0.001,'mygeom','gid','src','tgt',
+    rows_where:='mygeom && (SELECT st_buffer(mygeom,1) FROM mytable WHERE gid=5)');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_analyzeGraph('mytable',0.001,'mygeom','gid','src','tgt','mygeom && (SELECT st_buffer(mygeom,1) FROM mytable WHERE gid=5)')
+NOTICE:  Performing checks, please wait ...
+NOTICE:  Analyzing for dead ends. Please wait...
+NOTICE:  Analyzing for gaps. Please wait...
+NOTICE:  Analyzing for isolated edges. Please wait...
+NOTICE:  Analyzing for ring geometries. Please wait...
+NOTICE:  Analyzing for intersections. Please wait...
+NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+NOTICE:                    Isolated segments: 1
+NOTICE:                            Dead ends: 5
+NOTICE:  Potential gaps found near dead ends: 0
+NOTICE:               Intersections detected: 1
+NOTICE:                      Ring geometries: 0
+ pgr_analyzegraph 
+------------------
+ OK
+(1 row)
+
+SELECT  pgr_analyzeGraph('mytable',0.001,source:='src',id:='gid',target:='tgt',the_geom:='mygeom',
+    rows_where:='mygeom && (SELECT st_buffer(mygeom,1) FROM mytable WHERE gid=5)');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_analyzeGraph('mytable',0.001,'mygeom','gid','src','tgt','mygeom && (SELECT st_buffer(mygeom,1) FROM mytable WHERE gid=5)')
+NOTICE:  Performing checks, please wait ...
+NOTICE:  Analyzing for dead ends. Please wait...
+NOTICE:  Analyzing for gaps. Please wait...
+NOTICE:  Analyzing for isolated edges. Please wait...
+NOTICE:  Analyzing for ring geometries. Please wait...
+NOTICE:  Analyzing for intersections. Please wait...
+NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+NOTICE:                    Isolated segments: 1
+NOTICE:                            Dead ends: 5
+NOTICE:  Potential gaps found near dead ends: 0
+NOTICE:               Intersections detected: 1
+NOTICE:                      Ring geometries: 0
+ pgr_analyzegraph 
+------------------
+ OK
+(1 row)
+
+DROP TABLE IF EXISTS otherTable;
+DROP TABLE
+CREATE TABLE otherTable AS  (SELECT 'myhouse'::text AS place, st_point(2.5,2.5) AS other_geom) ;
+SELECT 1
+SELECT  pgr_analyzeGraph('mytable',0.001,'mygeom','gid','src','tgt',
+    rows_where:='mygeom && (SELECT st_buffer(other_geom,1) FROM otherTable WHERE place='||quote_literal('myhouse')||')');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_analyzeGraph('mytable',0.001,'mygeom','gid','src','tgt','mygeom && (SELECT st_buffer(other_geom,1) FROM otherTable WHERE place='myhouse')')
+NOTICE:  Performing checks, please wait ...
+NOTICE:  Analyzing for dead ends. Please wait...
+NOTICE:  Analyzing for gaps. Please wait...
+NOTICE:  Analyzing for isolated edges. Please wait...
+NOTICE:  Analyzing for ring geometries. Please wait...
+NOTICE:  Analyzing for intersections. Please wait...
+NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+NOTICE:                    Isolated segments: 2
+NOTICE:                            Dead ends: 10
+NOTICE:  Potential gaps found near dead ends: 1
+NOTICE:               Intersections detected: 1
+NOTICE:                      Ring geometries: 0
+ pgr_analyzegraph 
+------------------
+ OK
+(1 row)
+
+SELECT  pgr_analyzeGraph('mytable',0.001,source:='src',id:='gid',target:='tgt',the_geom:='mygeom',
+    rows_where:='mygeom && (SELECT st_buffer(other_geom,1) FROM otherTable WHERE place='||quote_literal('myhouse')||')');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_analyzeGraph('mytable',0.001,'mygeom','gid','src','tgt','mygeom && (SELECT st_buffer(other_geom,1) FROM otherTable WHERE place='myhouse')')
+NOTICE:  Performing checks, please wait ...
+NOTICE:  Analyzing for dead ends. Please wait...
+NOTICE:  Analyzing for gaps. Please wait...
+NOTICE:  Analyzing for isolated edges. Please wait...
+NOTICE:  Analyzing for ring geometries. Please wait...
+NOTICE:  Analyzing for intersections. Please wait...
+NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+NOTICE:                    Isolated segments: 2
+NOTICE:                            Dead ends: 10
+NOTICE:  Potential gaps found near dead ends: 1
+NOTICE:               Intersections detected: 1
+NOTICE:                      Ring geometries: 0
+ pgr_analyzegraph 
+------------------
+ OK
+(1 row)
+
+SELECT  pgr_createTopology('edge_table',0.001, clean := true);
+NOTICE:  PROCESSING:
+NOTICE:  pgr_createTopology('edge_table', 0.001, 'the_geom', 'id', 'source', 'target', rows_where := 'true', clean := t)
+NOTICE:  Performing checks, please wait .....
+NOTICE:  Creating Topology, Please wait...
+NOTICE:  -------------> TOPOLOGY CREATED FOR  18 edges
+NOTICE:  Rows with NULL geometry or NULL id: 0
+NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
+NOTICE:  ----------------------------------------------
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
+SELECT pgr_analyzeGraph('edge_table', 0.001);
+NOTICE:  PROCESSING:
+NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','true')
+NOTICE:  Performing checks, please wait ...
+NOTICE:  Analyzing for dead ends. Please wait...
+NOTICE:  Analyzing for gaps. Please wait...
+NOTICE:  Analyzing for isolated edges. Please wait...
+NOTICE:  Analyzing for ring geometries. Please wait...
+NOTICE:  Analyzing for intersections. Please wait...
+NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+NOTICE:                    Isolated segments: 2
+NOTICE:                            Dead ends: 7
+NOTICE:  Potential gaps found near dead ends: 1
+NOTICE:               Intersections detected: 1
+NOTICE:                      Ring geometries: 0
+ pgr_analyzegraph 
+------------------
+ OK
+(1 row)
+
+SELECT  pgr_analyzeGraph('edge_table',0.001,rows_where:='id < 10');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','id < 10')
+NOTICE:  Performing checks, please wait ...
+NOTICE:  Analyzing for dead ends. Please wait...
+NOTICE:  Analyzing for gaps. Please wait...
+NOTICE:  Analyzing for isolated edges. Please wait...
+NOTICE:  Analyzing for ring geometries. Please wait...
+NOTICE:  Analyzing for intersections. Please wait...
+NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+NOTICE:                    Isolated segments: 0
+NOTICE:                            Dead ends: 4
+NOTICE:  Potential gaps found near dead ends: 0
+NOTICE:               Intersections detected: 0
+NOTICE:                      Ring geometries: 0
+ pgr_analyzegraph 
+------------------
+ OK
+(1 row)
+
+SELECT  pgr_analyzeGraph('edge_table',0.001,rows_where:='id >= 10');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','id >= 10')
+NOTICE:  Performing checks, please wait ...
+NOTICE:  Analyzing for dead ends. Please wait...
+NOTICE:  Analyzing for gaps. Please wait...
+NOTICE:  Analyzing for isolated edges. Please wait...
+NOTICE:  Analyzing for ring geometries. Please wait...
+NOTICE:  Analyzing for intersections. Please wait...
+NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+NOTICE:                    Isolated segments: 2
+NOTICE:                            Dead ends: 8
+NOTICE:  Potential gaps found near dead ends: 1
+NOTICE:               Intersections detected: 1
+NOTICE:                      Ring geometries: 0
+ pgr_analyzegraph 
+------------------
+ OK
+(1 row)
+
+SELECT  pgr_analyzeGraph('edge_table',0.001,rows_where:='id < 17');
+NOTICE:  PROCESSING:
+NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','id < 17')
+NOTICE:  Performing checks, please wait ...
+NOTICE:  Analyzing for dead ends. Please wait...
+NOTICE:  Analyzing for gaps. Please wait...
+NOTICE:  Analyzing for isolated edges. Please wait...
+NOTICE:  Analyzing for ring geometries. Please wait...
+NOTICE:  Analyzing for intersections. Please wait...
+NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+NOTICE:                    Isolated segments: 0
+NOTICE:                            Dead ends: 3
+NOTICE:  Potential gaps found near dead ends: 0
+NOTICE:               Intersections detected: 0
+NOTICE:                      Ring geometries: 0
+ pgr_analyzegraph 
+------------------
+ OK
+(1 row)
+
+SELECT pgr_createTopology('edge_table', 0.001,rows_where:='id <17', clean := true);
+NOTICE:  PROCESSING:
+NOTICE:  pgr_createTopology('edge_table', 0.001, 'the_geom', 'id', 'source', 'target', rows_where := 'id <17', clean := t)
+NOTICE:  Performing checks, please wait .....
+NOTICE:  Creating Topology, Please wait...
+NOTICE:  -------------> TOPOLOGY CREATED FOR  16 edges
+NOTICE:  Rows with NULL geometry or NULL id: 0
+NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
+NOTICE:  ----------------------------------------------
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
+SELECT pgr_analyzeGraph('edge_table', 0.001);
+NOTICE:  PROCESSING:
+NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','true')
+NOTICE:  Performing checks, please wait ...
+NOTICE:  Analyzing for dead ends. Please wait...
+NOTICE:  Analyzing for gaps. Please wait...
+NOTICE:  Analyzing for isolated edges. Please wait...
+NOTICE:  Analyzing for ring geometries. Please wait...
+NOTICE:  Analyzing for intersections. Please wait...
+NOTICE:              ANALYSIS RESULTS FOR SELECTED EDGES:
+NOTICE:                    Isolated segments: 0
+NOTICE:                            Dead ends: 3
+NOTICE:  Potential gaps found near dead ends: 0
+NOTICE:               Intersections detected: 0
+NOTICE:                      Ring geometries: 0
+ pgr_analyzegraph 
+------------------
+ OK
+(1 row)
+
+ROLLBACK;
+ROLLBACK
diff --git a/src/topology/test/doc-pgr_createTopology.result b/src/topology/test/doc-pgr_createTopology.result
index f2fd0e4..3b3e195 100644
--- a/src/topology/test/doc-pgr_createTopology.result
+++ b/src/topology/test/doc-pgr_createTopology.result
@@ -1,4 +1,13 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+DROP TABLE edge_table_vertices_pgr;
+DROP TABLE
+UPDATE edge_table SET source = NULL,  target = NULL;
+UPDATE 18
 --q1
+SELECT  pgr_createTopology('edge_table', 0.001);
 NOTICE:  PROCESSING:
 NOTICE:  pgr_createTopology('edge_table', 0.001, 'the_geom', 'id', 'source', 'target', rows_where := 'true', clean := f)
 NOTICE:  Performing checks, please wait .....
@@ -7,9 +16,19 @@ NOTICE:  -------------> TOPOLOGY CREATED FOR  18 edges
 NOTICE:  Rows with NULL geometry or NULL id: 0
 NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
 NOTICE:  ----------------------------------------------
-OK
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
 --q1.1
+DROP TABLE edge_table_vertices_pgr;
+DROP TABLE
+UPDATE edge_table SET source = NULL,  target = NULL;
+UPDATE 18
 --q2
+SELECT  pgr_createTopology('edge_table', 0.001,
+    'the_geom', 'id', 'source', 'target');
 NOTICE:  PROCESSING:
 NOTICE:  pgr_createTopology('edge_table', 0.001, 'the_geom', 'id', 'source', 'target', rows_where := 'true', clean := f)
 NOTICE:  Performing checks, please wait .....
@@ -18,64 +37,197 @@ NOTICE:  -------------> TOPOLOGY CREATED FOR  18 edges
 NOTICE:  Rows with NULL geometry or NULL id: 0
 NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
 NOTICE:  ----------------------------------------------
-OK
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
 --q2.1
+SET client_min_messages TO NOTICE;
+SET
 --q3
+SELECT  pgr_createTopology('edge_table', 0.001,
+    'id', 'the_geom');
 NOTICE:  PROCESSING:
 NOTICE:  pgr_createTopology('edge_table', 0.001, 'id', 'the_geom', 'source', 'target', rows_where := 'true', clean := f)
 NOTICE:  Performing checks, please wait .....
 NOTICE:  ----> PGR ERROR in pgr_createTopology: Wrong type of Column id:the_geom
 NOTICE:  Unexpected error raise_exception
-FAIL
+ pgr_createtopology 
+--------------------
+ FAIL
+(1 row)
+
 --q3.1
+SET client_min_messages TO WARNING;
+SET
+DROP TABLE edge_table_vertices_pgr;
+DROP TABLE
+UPDATE edge_table SET source = NULL,  target = NULL;
+UPDATE 18
 --q4
-OK
+SELECT  pgr_createTopology('edge_table', 0.001,
+    the_geom:='the_geom', id:='id', source:='source', target:='target');
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
 --q4.1
+DROP TABLE edge_table_vertices_pgr;
+DROP TABLE
+UPDATE edge_table SET source = NULL,  target = NULL;
+UPDATE 18
 --q5
-OK
+SELECT  pgr_createTopology('edge_table', 0.001,
+    source:='source', id:='id', target:='target', the_geom:='the_geom');
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
 --q5.1
+DROP TABLE edge_table_vertices_pgr;
+DROP TABLE
+UPDATE edge_table SET source = NULL,  target = NULL;
+UPDATE 18
 --q6
-OK
+SELECT  pgr_createTopology('edge_table', 0.001, source:='source');
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
 --q6.1
 --q7
-OK
+SELECT  pgr_createTopology('edge_table', 0.001, rows_where:='id < 10');
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
 --q7.1
 --q8
-OK
+SELECT  pgr_createTopology('edge_table', 0.001,
+    rows_where:='the_geom && (SELECT st_buffer(the_geom, 0.05) FROM edge_table WHERE id=5)');
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
 --q8.1
 --q9
-OK
+CREATE TABLE otherTable AS  (SELECT 100 AS gid,  st_point(2.5, 2.5) AS other_geom);
+SELECT 1
+SELECT  pgr_createTopology('edge_table', 0.001,
+    rows_where:='the_geom && (SELECT st_buffer(other_geom, 1) FROM otherTable WHERE gid=100)');
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
 --q9.1
 --q10
+CREATE TABLE mytable AS (SELECT id AS gid,  the_geom AS mygeom, source AS src , target AS tgt FROM edge_table) ;
+SELECT 18
 --q10.1
 --q11
-OK
+SELECT  pgr_createTopology('mytable', 0.001, 'mygeom', 'gid', 'src', 'tgt', clean := TRUE);
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
 --q11.1
+DROP TABLE mytable_vertices_pgr;
+DROP TABLE
+UPDATE mytable SET src = NULL,  tgt = NULL;
+UPDATE 18
+SET client_min_messages TO NOTICE;
+SET
 --q12
+SELECT  pgr_createTopology('mytable', 0.001, 'gid', 'mygeom', 'src', 'tgt');
 NOTICE:  PROCESSING:
 NOTICE:  pgr_createTopology('mytable', 0.001, 'gid', 'mygeom', 'src', 'tgt', rows_where := 'true', clean := f)
 NOTICE:  Performing checks, please wait .....
 NOTICE:  ----> PGR ERROR in pgr_createTopology: Wrong type of Column id:mygeom
 NOTICE:  Unexpected error raise_exception
-FAIL
+ pgr_createtopology 
+--------------------
+ FAIL
+(1 row)
+
 --q12.1
+SET client_min_messages TO WARNING;
+SET
 --q13
-OK
+SELECT  pgr_createTopology('mytable', 0.001, the_geom:='mygeom', id:='gid', source:='src', target:='tgt');
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
 --q13.1
+DROP TABLE mytable_vertices_pgr;
+DROP TABLE
+UPDATE mytable SET src = NULL,  tgt = NULL;
+UPDATE 18
 --q14
-OK
+SELECT  pgr_createTopology('mytable', 0.001, source:='src', id:='gid', target:='tgt', the_geom:='mygeom');
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
 --q14.1
 --q15
-OK
-OK
-OK
-OK
+SELECT  pgr_createTopology('mytable', 0.001, 'mygeom', 'gid', 'src', 'tgt', rows_where:='gid < 10');
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
+SELECT  pgr_createTopology('mytable', 0.001, source:='src', id:='gid', target:='tgt', the_geom:='mygeom', rows_where:='gid < 10');
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
+SELECT  pgr_createTopology('mytable', 0.001, 'mygeom', 'gid', 'src', 'tgt',
+    rows_where:='mygeom && (SELECT st_buffer(mygeom, 1) FROM mytable WHERE gid=5)');
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
+SELECT  pgr_createTopology('mytable', 0.001, source:='src', id:='gid', target:='tgt', the_geom:='mygeom',
+    rows_where:='mygeom && (SELECT st_buffer(mygeom, 1) FROM mytable WHERE gid=5)');
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
 --q15.1
 --q16
-OK
-OK
+SELECT  pgr_createTopology('mytable', 0.001, 'mygeom', 'gid', 'src', 'tgt',
+    rows_where:='mygeom && (SELECT st_buffer(other_geom, 1) FROM otherTable WHERE gid=100)');
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
+SELECT  pgr_createTopology('mytable', 0.001, source:='src', id:='gid', target:='tgt', the_geom:='mygeom',
+    rows_where:='mygeom && (SELECT st_buffer(other_geom, 1) FROM otherTable WHERE gid=100)');
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
 --q16.1
+SET client_min_messages TO NOTICE;
+SET
 --q17
+SELECT pgr_createTopology('edge_table',  0.001, rows_where:='id < 6', clean := true);
 NOTICE:  PROCESSING:
 NOTICE:  pgr_createTopology('edge_table', 0.001, 'the_geom', 'id', 'source', 'target', rows_where := 'id < 6', clean := t)
 NOTICE:  Performing checks, please wait .....
@@ -84,7 +236,12 @@ NOTICE:  -------------> TOPOLOGY CREATED FOR  5 edges
 NOTICE:  Rows with NULL geometry or NULL id: 0
 NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
 NOTICE:  ----------------------------------------------
-OK
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
+SELECT pgr_createTopology('edge_table',  0.001);
 NOTICE:  PROCESSING:
 NOTICE:  pgr_createTopology('edge_table', 0.001, 'the_geom', 'id', 'source', 'target', rows_where := 'true', clean := f)
 NOTICE:  Performing checks, please wait .....
@@ -93,5 +250,13 @@ NOTICE:  -------------> TOPOLOGY CREATED FOR  13 edges
 NOTICE:  Rows with NULL geometry or NULL id: 0
 NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
 NOTICE:  ----------------------------------------------
-OK
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
 --q17.1
+SET client_min_messages TO NOTICE;
+SET
+ROLLBACK;
+ROLLBACK
diff --git a/src/topology/test/doc-pgr_createTopology.test.sql b/src/topology/test/doc-pgr_createTopology.test.sql
index b7db2d2..91d5fd3 100644
--- a/src/topology/test/doc-pgr_createTopology.test.sql
+++ b/src/topology/test/doc-pgr_createTopology.test.sql
@@ -94,16 +94,16 @@ SELECT  pgr_createTopology('mytable', 0.001, source:='src', id:='gid', target:='
 \echo --q15
 SELECT  pgr_createTopology('mytable', 0.001, 'mygeom', 'gid', 'src', 'tgt', rows_where:='gid < 10');
 SELECT  pgr_createTopology('mytable', 0.001, source:='src', id:='gid', target:='tgt', the_geom:='mygeom', rows_where:='gid < 10');
-SELECT  pgr_createTopology('mytable', 0.001, 'mygeom', 'gid', 'src', 'tgt', 
+SELECT  pgr_createTopology('mytable', 0.001, 'mygeom', 'gid', 'src', 'tgt',
     rows_where:='mygeom && (SELECT st_buffer(mygeom, 1) FROM mytable WHERE gid=5)');
-SELECT  pgr_createTopology('mytable', 0.001, source:='src', id:='gid', target:='tgt', the_geom:='mygeom', 
+SELECT  pgr_createTopology('mytable', 0.001, source:='src', id:='gid', target:='tgt', the_geom:='mygeom',
     rows_where:='mygeom && (SELECT st_buffer(mygeom, 1) FROM mytable WHERE gid=5)');
 \echo --q15.1
 
 \echo --q16
-SELECT  pgr_createTopology('mytable', 0.001, 'mygeom', 'gid', 'src', 'tgt', 
+SELECT  pgr_createTopology('mytable', 0.001, 'mygeom', 'gid', 'src', 'tgt',
     rows_where:='mygeom && (SELECT st_buffer(other_geom, 1) FROM otherTable WHERE gid=100)');
-SELECT  pgr_createTopology('mytable', 0.001, source:='src', id:='gid', target:='tgt', the_geom:='mygeom', 
+SELECT  pgr_createTopology('mytable', 0.001, source:='src', id:='gid', target:='tgt', the_geom:='mygeom',
     rows_where:='mygeom && (SELECT st_buffer(other_geom, 1) FROM otherTable WHERE gid=100)');
 \echo --q16.1
 
diff --git a/src/topology/test/issue900.result b/src/topology/test/issue900.result
index b2b70d7..f9550c0 100644
--- a/src/topology/test/issue900.result
+++ b/src/topology/test/issue900.result
@@ -1,3 +1,13 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+ALTER TABLE edge_table RENAME TO mbta_arc;
+ALTER TABLE
+CREATE TABLE edge_table AS SELECT * FROM mbta_arc;
+SELECT 18
+;
+SELECT pgr_CreateTopology('edge_table', 0.001, 'the_geom', 'id', clean := true);
 NOTICE:  PROCESSING:
 NOTICE:  pgr_createTopology('edge_table', 0.001, 'the_geom', 'id', 'source', 'target', rows_where := 'true', clean := t)
 NOTICE:  Performing checks, please wait .....
@@ -6,4 +16,10 @@ NOTICE:  -------------> TOPOLOGY CREATED FOR  18 edges
 NOTICE:  Rows with NULL geometry or NULL id: 0
 NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
 NOTICE:  ----------------------------------------------
+ pgr_createtopology 
+--------------------
 OK
+(1 row)
+
+ROLLBACK;
+ROLLBACK
diff --git a/src/topology/test/nodeNetwork-any.result b/src/topology/test/nodeNetwork-any.result
index 8250259..dc96f0f 100644
--- a/src/topology/test/nodeNetwork-any.result
+++ b/src/topology/test/nodeNetwork-any.result
@@ -1,3 +1,8 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+SELECT pgr_createTopology('edge_table', 0.001, clean := TRUE);
 NOTICE:  PROCESSING:
 NOTICE:  pgr_createTopology('edge_table', 0.001, 'the_geom', 'id', 'source', 'target', rows_where := 'true', clean := t)
 NOTICE:  Performing checks, please wait .....
@@ -6,7 +11,12 @@ NOTICE:  -------------> TOPOLOGY CREATED FOR  18 edges
 NOTICE:  Rows with NULL geometry or NULL id: 0
 NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
 NOTICE:  ----------------------------------------------
-OK
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
+SELECT pgr_analyzegraph('edge_table', 0.001);
 NOTICE:  PROCESSING:
 NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','true')
 NOTICE:  Performing checks, please wait ...
@@ -21,7 +31,12 @@ NOTICE:                            Dead ends: 7
 NOTICE:  Potential gaps found near dead ends: 1
 NOTICE:               Intersections detected: 1
 NOTICE:                      Ring geometries: 0
-OK
+ pgr_analyzegraph 
+------------------
+ OK
+(1 row)
+
+SELECT pgr_nodeNetwork('edge_table', 0.001);
 NOTICE:  PROCESSING:
 NOTICE:  pgr_nodeNetwork('edge_table', 0.001, 'id', 'the_geom', 'noded', '<NULL>',  f)
 NOTICE:  Performing checks, please wait .....
@@ -34,28 +49,38 @@ NOTICE:   Untouched Edges: 15
 NOTICE:         Total New segments: 21
 NOTICE:   New Table: public.edge_table_noded
 NOTICE:  ----------------------------------
-OK
-1|1
-2|1
-3|1
-4|1
-5|1
-6|1
-7|1
-8|1
-9|1
-10|1
-11|1
-12|1
-13|1
-13|2
-14|1
-14|2
-15|1
-16|1
-17|1
-18|1
-18|2
+ pgr_nodenetwork 
+-----------------
+ OK
+(1 row)
+
+SELECT old_id,sub_id FROM edge_table_noded ORDER BY old_id,sub_id;
+ old_id | sub_id 
+--------+--------
+      1 |      1
+      2 |      1
+      3 |      1
+      4 |      1
+      5 |      1
+      6 |      1
+      7 |      1
+      8 |      1
+      9 |      1
+     10 |      1
+     11 |      1
+     12 |      1
+     13 |      1
+     13 |      2
+     14 |      1
+     14 |      2
+     15 |      1
+     16 |      1
+     17 |      1
+     18 |      1
+     18 |      2
+(21 rows)
+
+SELECT pgr_createTopology('edge_table_noded', 0.001);
 NOTICE:  PROCESSING:
 NOTICE:  pgr_createTopology('edge_table_noded', 0.001, 'the_geom', 'id', 'source', 'target', rows_where := 'true', clean := f)
 NOTICE:  Performing checks, please wait .....
@@ -64,7 +89,12 @@ NOTICE:  -------------> TOPOLOGY CREATED FOR  21 edges
 NOTICE:  Rows with NULL geometry or NULL id: 0
 NOTICE:  Vertices table for table public.edge_table_noded is: public.edge_table_noded_vertices_pgr
 NOTICE:  ----------------------------------------------
-OK
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
+SELECT pgr_analyzegraph('edge_table_noded', 0.001);
 NOTICE:  PROCESSING:
 NOTICE:  pgr_analyzeGraph('edge_table_noded',0.001,'the_geom','id','source','target','true')
 NOTICE:  Performing checks, please wait ...
@@ -79,8 +109,24 @@ NOTICE:                            Dead ends: 6
 NOTICE:  Potential gaps found near dead ends: 0
 NOTICE:               Intersections detected: 0
 NOTICE:                      Ring geometries: 0
-OK
+ pgr_analyzegraph 
+------------------
+ OK
+(1 row)
+
+alter table edge_table drop column if exists old_id;
 NOTICE:  column "old_id" of relation "edge_table" does not exist, skipping
+ALTER TABLE
+alter table edge_table add column old_id integer;
+ALTER TABLE
+insert into edge_table (old_id,dir,cost,reverse_cost,the_geom)
+   (with
+       segmented as (select old_id,count(*) as i from edge_table_noded group by old_id)
+   select  segments.old_id,dir,cost,reverse_cost,segments.the_geom
+       from edge_table as edges join edge_table_noded as segments on (edges.id = segments.old_id) 
+       where edges.id in (select old_id from segmented where i>1) );
+INSERT 0 6
+SELECT pgr_createTopology('edge_table', 0.001);
 NOTICE:  PROCESSING:
 NOTICE:  pgr_createTopology('edge_table', 0.001, 'the_geom', 'id', 'source', 'target', rows_where := 'true', clean := f)
 NOTICE:  Performing checks, please wait .....
@@ -89,7 +135,12 @@ NOTICE:  -------------> TOPOLOGY CREATED FOR  6 edges
 NOTICE:  Rows with NULL geometry or NULL id: 0
 NOTICE:  Vertices table for table public.edge_table is: public.edge_table_vertices_pgr
 NOTICE:  ----------------------------------------------
-OK
+ pgr_createtopology 
+--------------------
+ OK
+(1 row)
+
+SELECT pgr_analyzegraph('edge_table', 0.001,rows_where:='id not in (select old_id from edge_table where old_id is not null)');
 NOTICE:  PROCESSING:
 NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','id not in (select old_id from edge_table where old_id is not null)')
 NOTICE:  Performing checks, please wait ...
@@ -104,7 +155,12 @@ NOTICE:                            Dead ends: 6
 NOTICE:  Potential gaps found near dead ends: 0
 NOTICE:               Intersections detected: 0
 NOTICE:                      Ring geometries: 0
-OK
+ pgr_analyzegraph 
+------------------
+ OK
+(1 row)
+
+SELECT pgr_analyzegraph('edge_table', 0.001,rows_where:='old_id is null');
 NOTICE:  PROCESSING:
 NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','old_id is null')
 NOTICE:  Performing checks, please wait ...
@@ -119,7 +175,12 @@ NOTICE:                            Dead ends: 7
 NOTICE:  Potential gaps found near dead ends: 1
 NOTICE:               Intersections detected: 1
 NOTICE:                      Ring geometries: 0
-OK
+ pgr_analyzegraph 
+------------------
+ OK
+(1 row)
+
+SELECT pgr_analyzegraph('edge_table', 0.001);
 NOTICE:  PROCESSING:
 NOTICE:  pgr_analyzeGraph('edge_table',0.001,'the_geom','id','source','target','true')
 NOTICE:  Performing checks, please wait ...
@@ -134,4 +195,10 @@ NOTICE:                            Dead ends: 3
 NOTICE:  Potential gaps found near dead ends: 0
 NOTICE:               Intersections detected: 5
 NOTICE:                      Ring geometries: 0
-OK
+ pgr_analyzegraph 
+------------------
+ OK
+(1 row)
+
+ROLLBACK;
+ROLLBACK
diff --git a/src/trsp/doc/README.md b/src/trsp/doc/README.md
deleted file mode 100644
index c2a6c5a..0000000
--- a/src/trsp/doc/README.md
+++ /dev/null
@@ -1,1112 +0,0 @@
-BEGIN;
-BEGIN
-SET client_min_messages TO NOTICE;
-SET
-ROLLBACK;
-ROLLBACK
-# Notes on pgr_trsp for version 2.4.0
-Table of contents
-* [Introduction](#introduction)
-  * [The restriction](#the-restriction)
-* [The Vertices Signature Version](#the-vertices-signature-version)
-  * [No path representation differences](#vertices-no-path-representation-differences)
-  * [Routing from/to same location](#routing-fromto-same-location)
-  * [Undirected graph](#vertices-undirected-graph)
-* [The Edges Signature Version](#the-edges-signature-version)
-  * [No path representation differences](#edges-no-path-representation-differences)
-  * [Definition of a path](#definition-of-a-path)
-  * [Points on the same edge](#points-on-the-same-edge)
-  * [Undirected graph](#edges-undirected-graph)
-  * [Using a points of interest table](#using-a-points-of-interest-table)
-  * [Routing from/to the same point](#routing-fromto-the-same-point)
-  * [Passing in front of other points](#passing-in-front-of-other-points)
-  * [Routing from a vertex to a point](#edges-routing-from-a-vertex-to-a-point)
-* [pgr_trspViaVertices](#pgr_trspviavertices)
-  * [pgr_trspViaVertices No path representation differences](#pgr_trspviavertices-no-path-representation-differences)
-  * [when a path does not exist on the route](#when-a-path-does-not-exist-on-the-route)
-  * [from 2 to 3 to 2](#from-2-to-3-to-2)
-* [pgr_trspViaEdges](#pgr_trspviaedges)
-  * [pgr_trspViaEdges No path representation differences](#pgr_trspviaedges-no-path-representation-differences)
-  * [Using a points of interest table](#pgr_trspviaedges-using-the-pointsofinterest-table)
-
-# Introduction
-pgr_trsp code has issues that are not being fixed yet, but as time passes and new functionality is added to pgRouting with wrappers to **hide** the issues, not to fix them.
-
-For clarity on the queries:
-* _pgr_trsp (with underscore) is the original code
-* pgr_trsp (lower case) represents the wrapper calling the original code
-* pgr_TRSP (upper case) represents the wrapper calling the replacement function, depending on the function, it can be:
-  * pgr_dijkstra
-  * pgr_dijkstraVia
-  * pgr_withPoints
-  * _pgr_withPointsVia
-
-This page intentions is to compare the original code with the wrapped version of the trsp group of functions.
-## The restriction
-The restriction used in the examples does not have to do anything with the graph:
-* No vertex has id: 25, 32 or 33
-* No edge has id: 25, 32 or 33
-```
-$$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, 32, 33::TEXT AS via_path$$
-```
-therefore the shortest path expected are as if there was no restriction involved
-# The Vertices signature version
-## (Vertices) No path representation differences
-Original function code
-* Sometimes it crasses the server when no path was found
-* Sometimes represents with Error a no path found
-* Forcing the user to use the wrapper or the replacement function
-
-Calls to the original function of is no longer allowed without restrictions
-```
-SELECT * FROM _pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    1, 15, true, true
-);
-ERROR:  Error computing path: Path Not Found
-```
-dijkstra returns EMPTY SET to represent no path found
-```
-SELECT * FROM pgr_dijkstra(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    1, 15
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-(0 rows)
-
-```
-pgr_trsp use the pgr_dijkstra when there are no restrictions
-therefore returns EMPTY SET to represent no path found
-```
-SELECT * FROM pgr_TRSP(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    1, 15, true, true
-);
- seq | id1 | id2 | cost 
------+-----+-----+------
-(0 rows)
-
-```
-pgr_trsp use the original code when there are restrictions
-therefore throws Error to represent no path found
-```
-SELECT * FROM pgr_trsp(
-     $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-     1, 15, true, true,
-     $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
-);
-ERROR:  Error computing path: Path Not Found
-CONTEXT:  PL/pgSQL function pgr_trsp(text,integer,integer,boolean,boolean,text) line 29 at RETURN QUERY
-```
-## routing from/to same location
-using dijkstra to verify (1 to 1)
-```
-SELECT * FROM pgr_dijkstra(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    1, 1
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-(0 rows)
-
-```
-This call uses the replacement function because there are no restrictions (1 to 1)
-therefore is expected to return EMPTY SET to represent no path found
-```
-SELECT * FROM pgr_TRSP(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    1, 1,  true, true
-);
- seq | id1 | id2 | cost 
------+-----+-----+------
-(0 rows)
-
-```
-call forcing the use of the original code (1 to 1)
-* not longer allowed without restrictions
-
-```
-SELECT * FROM _pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    1, 1,  true, true
-);
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |   1 |   1 |    1
-   1 |   2 |   4 |    1
-   2 |   5 |   8 |    1
-   3 |   6 |   9 |    1
-   4 |   9 |  16 |    1
-   5 |   4 |   3 |    1
-   6 |   3 |   2 |    1
-   7 |   2 |   1 |    1
-   8 |   1 |  -1 |    0
-(9 rows)
-
-```
-trsp with restrictions (1 to 1) use the original code
-is expected to return Error to represent no path found
-```
-SELECT * FROM pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    1, 1,  
-    true, 
-    true,
-    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
-);
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |   1 |   1 |    1
-   1 |   2 |   4 |    1
-   2 |   5 |   8 |    1
-   3 |   6 |   9 |    1
-   4 |   9 |  16 |    1
-   5 |   4 |   3 |    1
-   6 |   3 |   2 |    1
-   7 |   2 |   1 |    1
-   8 |   1 |  -1 |    0
-(9 rows)
-
-```
-trsp calling the original code with restrictions (1 to 1)
-is expected to return Error to represent no path found
-but "finds" a path when there should be no path.
-```
-SELECT * FROM _pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    1, 1,  
-    true, 
-    true,
-    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
-);
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |   1 |   1 |    1
-   1 |   2 |   4 |    1
-   2 |   5 |   8 |    1
-   3 |   6 |   9 |    1
-   4 |   9 |  16 |    1
-   5 |   4 |   3 |    1
-   6 |   3 |   2 |    1
-   7 |   2 |   1 |    1
-   8 |   1 |  -1 |    0
-(9 rows)
-
-```
-## (vertices) Undirected graph
-using Dijkstra to verify the shortest path from (2 to 3) on undirected graph
-```
-SELECT * FROM pgr_dijkstra(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    2, 3, false
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |    2 |    2 |    1 |        0
-   2 |        2 |    3 |   -1 |    0 |        1
-(2 rows)
-
-```
-using the replacement function because there are no restrictions (2 to 3)
-```
-SELECT * FROM pgr_TRSP(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    2, 3,
-    false, 
-    true
-);
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |   2 |   2 |    1
-   1 |   3 |  -1 |    0
-(2 rows)
-
-```
-call forcing the use of the original code
-* not longer allowed without restrictions
-
-```
-SELECT * FROM _pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    2, 3,
-    false, true
-);
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |   2 |   4 |    1
-   1 |   5 |   8 |    1
-   2 |   6 |   9 |    1
-   3 |   9 |  16 |    1
-   4 |   4 |   3 |    1
-   5 |   3 |  -1 |    0
-(6 rows)
-
-```
-trsp with restrictions (2 to 3)
-does not find the shortest path
-```
-SELECT * FROM pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    2, 3,
-    false, true,
-    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
-);
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |   2 |   4 |    1
-   1 |   5 |   8 |    1
-   2 |   6 |   9 |    1
-   3 |   9 |  16 |    1
-   4 |   4 |   3 |    1
-   5 |   3 |  -1 |    0
-(6 rows)
-
-```
-calling the original code with restrictions (2 to 3)
-does not find the shortest path
-```
-SELECT * FROM _pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    2, 3,
-    false, 
-    true,
-    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
-);
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |   2 |   4 |    1
-   1 |   5 |   8 |    1
-   2 |   6 |   9 |    1
-   3 |   9 |  16 |    1
-   4 |   4 |   3 |    1
-   5 |   3 |  -1 |    0
-(6 rows)
-
-```
-# The Edges signature version
-## (Edges) No path representation differences
-Original function code
-* Sometimes it crasses the server when no path was found
-* Sometimes represents with Error a no path found
-* Forcing the user to use the wrapper or the replacement function
-
-Calls to the original function of is no longer allowed without restrictions
-```
-SELECT * FROM _pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    1, 0.5, 17, 0.5, true, true
-);
-ERROR:  Error computing path: Path Not Found
-```
-pgr_withPoints returns EMPTY SET to represent no path found
-```
-SELECT * FROM pgr_withPoints(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    $$(SELECT 1 as pid, 1 as edge_id, 0.5::float as fraction)
-    UNION
-    (SELECT 2, 17, 0.5)$$,
-    -1, -2
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-(0 rows)
-
-```
-## Definition of a path
-Remember that one characteristic of a path is that for a path of N edges it has N+1 vertices.
-
-For this example, suppose points, where the pid are different even if the edge and fraction are different.
-One point might be on the left side other on the right side, pgr_trsp does not take into account
-the side of the point
-calls forcing the use of the original code
-* not longer allowed without restrictions
-
-```
-SELECT * FROM _pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    1, 0.5, 1, 0.5, true, true
-);
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |  -1 |   1 |    0
-(1 row)
-
-```
-* with restrictions
-```
-SELECT * FROM _pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    1, 0.5, 1, 0.5, true, true,
-    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
-);
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |  -1 |   1 |    0
-(1 row)
-
-```
-Using the *pgr_withPoints* it returns a path of N edge and N+1 vertices
-```
-SELECT * FROM pgr_withPoints(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    $$(SELECT 1 as pid, 1 as edge_id, 0.5::float as fraction)
-    UNION
-    (SELECT 2, 1, 0.5)$$,
-    -1, -2
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |   -1 |    1 |    0 |        0
-   2 |        2 |   -2 |   -1 |    0 |        0
-(2 rows)
-
-```
-The *pgr_withPoints* is used when there are no restrictions
-```
-SELECT * FROM pgr_TRSP(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    1, 0.5, 1, 0.5, true, true
-);
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |  -1 |   1 |    0
-   1 |  -2 |  -1 |    0
-(2 rows)
-
-```
-The original *_pgr_trsp* code is used when there are restrictions
-```
-SELECT * FROM pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    1, 0.5, 1, 0.5, true, true,
-    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
-);
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |  -1 |   1 |    0
-(1 row)
-
-```
-note that pgr_withPoints returns an EMPTY SET when the point is the same
-```
-SELECT * FROM pgr_withPoints(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    $$(SELECT 1 as pid, 1 as edge_id, 0.5::float as fraction)
-    UNION
-    (SELECT 2, 1, 0.5)$$,
-    -1, -1
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-(0 rows)
-
-```
-## Points on the same edge
-The *pgr_withPoints* is used when there are no restrictions
-* it returns a path of N edges and N+1 vertices
-```
-SELECT * FROM pgr_TRSP(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    1, 0.5, 1, 0.8, true, true
-);
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |  -1 |   1 |  0.3
-   1 |  -2 |  -1 |    0
-(2 rows)
-
-```
-The original *_pgr_trsp* is used when there are restrictions
-* it returns a path of N edges and N vertex instead of N edge and N+1 vertices
-```
-SELECT * FROM pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    1, 0.5, 1, 0.8, true, true,
-    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
-);
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |  -1 |   1 |  0.3
-(1 row)
-
-```
-## (Edges) Undirected graph
-the shortest path obtained with *pgr_withPoints*
-```
-SELECT * FROM pgr_withPoints(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    $$(SELECT 1 as pid, 4 as edge_id, 0.5::float as fraction)
-    UNION
-    (SELECT 2, 2, 0.8)$$,
-    -1, -2, directed:=false
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |   -1 |    4 |  0.5 |        0
-   2 |        2 |    2 |    2 |  0.8 |      0.5
-   3 |        3 |   -2 |   -1 |    0 |      1.3
-(3 rows)
-
-```
-The original *_pgr_trsp* is used when there are restrictions
-
-```
-SELECT * FROM pgr_TRSP(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    4, 0.5, 2, 0.8, false, true
-);
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |  -1 |   4 |  0.5
-   1 |   2 |   2 |  0.8
-   2 |  -2 |  -1 |    0
-(3 rows)
-
-```
-when using restrictions the original *_pgr_trsp* is used internally
-* it returns a path of N edges and N vertex instead of N edge and N+1 vertices
-* it does not return the shortest path.
-
-```
-SELECT * FROM pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    4, 0.5, 2, 0.8, false, true,
-    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
-);
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |  -1 |   4 |  0.5
-   1 |   5 |   8 |    1
-   2 |   6 |   9 |    1
-   3 |   9 |  16 |    1
-   4 |   4 |   3 |    1
-   5 |   3 |   2 |  0.2
-(6 rows)
-
-```
-## Using a points of interest table
-The points of interest
-```
-SELECT * FROM pointsOfInterest;
- pid |  x  |  y  | edge_id | side | fraction |                  the_geom                  |                  newpoint                  
------+-----+-----+---------+------+----------+--------------------------------------------+--------------------------------------------
-   1 | 1.8 | 0.4 |       1 | l    |      0.4 | 0101000000CDCCCCCCCCCCFC3F9A9999999999D93F | 010100000000000000000000409A9999999999D93F
-   2 | 4.2 | 2.4 |      15 | r    |      0.4 | 0101000000CDCCCCCCCCCC10403333333333330340 | 010100000000000000000010403333333333330340
-   3 | 2.6 | 3.2 |      12 | l    |      0.6 | 0101000000CDCCCCCCCCCC04409A99999999990940 | 0101000000CDCCCCCCCCCC04400000000000000840
-   4 | 0.3 | 1.8 |       6 | r    |      0.3 | 0101000000333333333333D33FCDCCCCCCCCCCFC3F | 0101000000333333333333D33F0000000000000040
-   5 | 2.9 | 1.8 |       5 | l    |      0.8 | 01010000003333333333330740CDCCCCCCCCCCFC3F | 01010000000000000000000840CDCCCCCCCCCCFC3F
-   6 | 2.2 | 1.7 |       4 | b    |      0.7 | 01010000009A99999999990140333333333333FB3F | 01010000000000000000000040333333333333FB3F
-(6 rows)
-
-```
-On *pgr_trsp*, to be able to use the table information:
-* Each parameter has to be extracted explicitly from the table
-* Regardles of the point pid original value
-  * will always be -1 for the first point
-  * will always be -2 for the second point
-```
-SELECT * FROM pgr_TRSP(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
-    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
-    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 6),
-    (SELECT fraction  FROM pointsOfInterest WHERE pid = 6),
-    true, true
-);
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |  -1 |   1 |  0.6
-   1 |   2 |   4 |  0.7
-   2 |  -2 |  -1 |    0
-(3 rows)
-
-```
-On *pgr_withPoints*, to be able to use the table information:
-* select statement on the *pointsOfInterest* table
-* *Negative* the id to represent the id is a pid
-* The points pids in the result are not renumbered
-* The points pids in the result are represented with negative sign
-```
-SELECT * FROM pgr_withPoints(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    $$SELECT pid, edge_id, fraction FROM pointsOfInterest$$,
-    -1, -6
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |   -1 |    1 |  0.6 |        0
-   2 |        2 |    2 |    4 |  0.7 |      0.6
-   3 |        3 |   -6 |   -1 |    0 |      1.3
-(3 rows)
-
-```
-## routing from/to the same point
-using pgr_withPoints to check results
-expecting EMPTY SET to represent no path found
-```
-SELECT * FROM pgr_withPoints(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    $$SELECT pid, edge_id, fraction FROM pointsOfInterest$$,
-    -1, -1
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-(0 rows)
-
-```
-This call uses the replacement function because there are no restrictions
-* Because the pid is not involved the points are considered different
-* it returns a path
-
-```
-SELECT * FROM pgr_TRSP(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
-    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
-    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
-    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
-    true, true
-);
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |  -1 |   1 |    0
-   1 |  -2 |  -1 |    0
-(2 rows)
-
-```
-pgr_trsp with restrictions use the original code
-* it returns a path of N edges and N vertex instead of N edge and N+1 vertices
-
-```
-SELECT * FROM pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
-    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
-    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
-    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
-    true, true,
-    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
-);
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |  -1 |   1 |    0
-(1 row)
-
-```
-## passing in front of other points
-using pgr_withPoints to verify the shortest path from pids (1 to 3)
-```
-SELECT * FROM pgr_withPoints(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    $$SELECT pid, edge_id, fraction FROM pointsOfInterest$$,
-    -1, -3
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |   -1 |    1 |  0.6 |        0
-   2 |        2 |    2 |    4 |    1 |      0.6
-   3 |        3 |    5 |   10 |    1 |      1.6
-   4 |        4 |   10 |   12 |  0.6 |      2.6
-   5 |        5 |   -3 |   -1 |    0 |      3.2
-(5 rows)
-
-```
-**pgr_withPoints** can be used to see when the route passes in front of other points
-In this example point pid=6 is passed in front of
-```
-SELECT * FROM pgr_withPoints(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    $$SELECT pid, edge_id, fraction FROM pointsOfInterest$$,
-    -1, -3, details:=true
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |   -1 |    1 |  0.6 |        0
-   2 |        2 |    2 |    4 |  0.7 |      0.6
-   3 |        3 |   -6 |    4 |  0.3 |      1.3
-   4 |        4 |    5 |   10 |    1 |      1.6
-   5 |        5 |   10 |   12 |  0.6 |      2.6
-   6 |        6 |   -3 |   -1 |    0 |      3.2
-(6 rows)
-
-```
-Can not be used to see if other points are passed in front of.
-The pointsOfInterest table is not part of the parameter
-```
-SELECT * FROM pgr_TRSP(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
-    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
-    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 3),
-    (SELECT fraction  FROM pointsOfInterest WHERE pid = 3),
-    true, true
-);
- seq | id1 | id2 | cost 
------+-----+-----+------
-   0 |  -1 |   1 |  0.6
-   1 |   2 |   4 |    1
-   2 |   5 |  10 |    1
-   3 |  10 |  12 |  0.6
-   4 |  -2 |  -1 |    0
-(5 rows)
-
-```
-## (edges) Routing from a vertex to a point
-Showing *pgr_withPoints* results of the shortest path from vid 6 to pid 1
-```
-SELECT * FROM pgr_withPoints(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    $$SELECT pid, edge_id, fraction FROM pointsOfInterest$$,
-    6, -1
-);
- seq | path_seq | node | edge | cost | agg_cost 
------+----------+------+------+------+----------
-   1 |        1 |    6 |    8 |    1 |        0
-   2 |        2 |    5 |    4 |    1 |        1
-   3 |        3 |    2 |    1 |  0.6 |        2
-   4 |        4 |   -1 |   -1 |    0 |      2.6
-(4 rows)
-
-```
-* Vertex 6 is on edge 8 at 1 fraction
-* Vertex 6 is also edge 11 at 0 fraction
-* Undefined behaviour when at least one of the "points" is an actual vertex
-
-```
-SELECT * FROM pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    8, 1,
-    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
-    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
-    true, true
-);
- seq | id1 | id2 | cost 
------+-----+-----+------
-(0 rows)
-
-SELECT * FROM pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    11, 0,
-    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
-    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
-    true, true
-);
- seq | id1 | id2 | cost 
------+-----+-----+------
-(0 rows)
-
-```
-# pgr_trspViaVertices
-## pgr_trspViaVertices No path representation differences
-pgr_trspViaVertices uses _pgr_trsp which as mentioned before
-* Sometimes it crasses the server when no path was found
-* Sometimes represents with Error a no path found
-* Forcing the user to use the wrapper or the replacement function
-
-Calls to the original function of is no longer allowed without restrictions
-```
-SELECT * FROM _pgr_trspViaVertices(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[1, 15, 2],
-    false, true
-);
-ERROR:  Error computing path: Path Not Found
-CONTEXT:  PL/pgSQL function _pgr_trspviavertices(text,integer[],boolean,boolean,text) line 23 at FOR over SELECT rows
-SELECT * FROM _pgr_trspViaVertices(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[1, 15, 2, 1],
-    false, true
-);
-ERROR:  Error computing path: Path Not Found
-CONTEXT:  PL/pgSQL function _pgr_trspviavertices(text,integer[],boolean,boolean,text) line 23 at FOR over SELECT rows
-```
-**pgr_dijkstraVia** returning what paths of the route it finds or EMPTY SET when non is found
-this case none is found
-```
-SELECT * FROM pgr_dijkstraVia(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[1, 15, 2],
-    false
-);
- seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost | route_agg_cost 
------+---------+----------+-----------+---------+------+------+------+----------+----------------
-(0 rows)
-
-```
-this case only from 2 to 1 is found
-```
-SELECT * FROM pgr_dijkstraVia(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[1, 15, 2, 1],
-    false
-);
- seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost | route_agg_cost 
------+---------+----------+-----------+---------+------+------+------+----------+----------------
-   1 |       3 |        1 |         2 |       1 |    2 |    1 |    1 |        0 |              0
-   2 |       3 |        2 |         2 |       1 |    1 |   -2 |    0 |        1 |              1
-(2 rows)
-
-```
-the **pgr_dijkstraVia** used are for complete routes so its marked as **strict:=true**
-therefore the expected result is EMPTY SET to represent no route was found
-```
-SELECT * FROM pgr_dijkstraVia(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[1, 1, 2],
-    false,
-    strict := true
-);
- seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost | route_agg_cost 
------+---------+----------+-----------+---------+------+------+------+----------+----------------
-(0 rows)
-
-```
-## when a path does not exist on the route
-pgr_TRSPViaVertices using the *pgr_dijkstraVia* when there are no restrictions.
-Because there is no path from 1 to 1 then there is no complete route 1 to 1 to 2
-therefore the expected result is EMPTY SET to represent no route was found
-```
-SELECT * FROM pgr_TRSPViaVertices(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[1, 1, 2],
-    false, true
-);
- seq | id1 | id2 | id3 | cost 
------+-----+-----+-----+------
-(0 rows)
-
-```
-Calls to the original function of is no longer allowed without restrictions
-```
-SELECT * FROM _pgr_trspViaVertices(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[1, 1, 2],
-    false, true
-);
- seq | id1 | id2 | id3 | cost 
------+-----+-----+-----+------
-   1 |   1 |   1 |   1 |    1
-   2 |   1 |   2 |   4 |    1
-   3 |   1 |   5 |   8 |    1
-   4 |   1 |   6 |   9 |    1
-   5 |   1 |   9 |  16 |    1
-   6 |   1 |   4 |   3 |    1
-   7 |   1 |   3 |   2 |    1
-   8 |   1 |   2 |   1 |    1
-   9 |   2 |   1 |   1 |    1
-  10 |   2 |   2 |  -1 |    0
-(10 rows)
-
-```
-with restrictions the original code is used
-```
-SELECT * FROM pgr_trspViaVertices(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[1, 1, 2],
-    false, true,
-    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
-);
- seq | id1 | id2 | id3 | cost 
------+-----+-----+-----+------
-   1 |   1 |   1 |   1 |    1
-   2 |   1 |   2 |   4 |    1
-   3 |   1 |   5 |   8 |    1
-   4 |   1 |   6 |   9 |    1
-   5 |   1 |   9 |  16 |    1
-   6 |   1 |   4 |   3 |    1
-   7 |   1 |   3 |   2 |    1
-   8 |   1 |   2 |   1 |    1
-   9 |   2 |   1 |   1 |    1
-  10 |   2 |   2 |  -1 |    0
-(10 rows)
-
-```
-Using explicitly the original code
-```
-SELECT * FROM _pgr_trspViaVertices(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[1, 1, 2],
-    false, true,
-    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
-);
- seq | id1 | id2 | id3 | cost 
------+-----+-----+-----+------
-   1 |   1 |   1 |   1 |    1
-   2 |   1 |   2 |   4 |    1
-   3 |   1 |   5 |   8 |    1
-   4 |   1 |   6 |   9 |    1
-   5 |   1 |   9 |  16 |    1
-   6 |   1 |   4 |   3 |    1
-   7 |   1 |   3 |   2 |    1
-   8 |   1 |   2 |   1 |    1
-   9 |   2 |   1 |   1 |    1
-  10 |   2 |   2 |  -1 |    0
-(10 rows)
-
-```
-## from 2 to 3 to 2
-dijkstra via shows the shortest route on the two paths
-```
-SELECT * FROM pgr_dijkstraVia(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[2, 3, 2],
-    false 
-);
- seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost | route_agg_cost 
------+---------+----------+-----------+---------+------+------+------+----------+----------------
-   1 |       1 |        1 |         2 |       3 |    2 |    2 |    1 |        0 |              0
-   2 |       1 |        2 |         2 |       3 |    3 |   -1 |    0 |        1 |              1
-   3 |       2 |        1 |         3 |       2 |    3 |    2 |    1 |        0 |              1
-   4 |       2 |        2 |         3 |       2 |    2 |   -2 |    0 |        1 |              2
-(4 rows)
-
-```
-the replacement function **pgr_dijkstraVia** is used because there are no restrictions
-```
-SELECT * FROM pgr_TRSPViaVertices(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[2, 3, 2],
-    false, 
-    true
-);
- seq | id1 | id2 | id3 | cost 
------+-----+-----+-----+------
-   1 |   1 |   2 |   2 |    1
-   2 |   2 |   3 |   2 |    1
-   3 |   2 |   2 |  -1 |    0
-(3 rows)
-
-```
-Calls to the original function of is no longer allowed without restrictions
-```
-SELECT * FROM _pgr_trspViaVertices(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[2, 3, 2],
-    false, 
-    true
-);
- seq | id1 | id2 | id3 | cost 
------+-----+-----+-----+------
-   1 |   1 |   2 |   4 |    1
-   2 |   1 |   5 |   8 |    1
-   3 |   1 |   6 |   9 |    1
-   4 |   1 |   9 |  16 |    1
-   5 |   1 |   4 |   3 |    1
-   6 |   2 |   3 |   2 |    1
-   7 |   2 |   2 |  -1 |    0
-(7 rows)
-
-```
-# pgr_trspViaEdges
-*pgr_trspViaEdges* will use the original code when
-* There are restrictions
-* A point is a vertex in disguise (with pcts value of 0)
-
-What it returns
-* Error to represent no route
-* the points are renumbered to -1, -2 .. -N
-* if a point is part of a path it will **not** show on the path
-
-Exaple execution
-```
-SELECT * FROM pgr_trspViaEdges(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[1, 2, 1], ARRAY[0.1,0.5,0.5],
-    false, true,
-    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
-);
- seq | id1 | id2 | id3 | cost 
------+-----+-----+-----+------
-   1 |   1 |  -1 |   1 |  0.9
-   2 |   1 |   2 |   4 |    1
-   3 |   1 |   5 |   8 |    1
-   4 |   1 |   6 |   9 |    1
-   5 |   1 |   9 |  16 |    1
-   6 |   1 |   4 |   3 |    1
-   7 |   1 |   3 |   2 |    1
-   8 |   2 |   2 |   1 |  0.5
-(8 rows)
-
-```
-A temporay wraper function is used when:
-* There are no restrictions
-* Before: No point is a vertex in disguise (with pcts value of 0)
-* Now: c$Undefined behaviour when a point is a vertex in disguise (with pcts value of 0)
-
-Internaly:
-* builds a new graph and calls pgr_dijkstraVia
-
-What it returns
-* returns EMPTY SET to represent no route
-* edge = -1 in the result to represent the end of a intermediate path
-* edge = -2 in the result to represent the end of the last path & route
-* the points are renumbered to -1, -2 .. -N
-* if a point is part of a path it will show on the path
-
-Note: I do not mention the wrapper name due to the fact that this is not official documentation
-Note: I will use *_pgr_withPointsVia* as the wrapper name just for sake of this notes
-Example excution
-```
-SELECT * FROM _pgr_withPointsVia(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[1, 2, 1], ARRAY[0.1,0.5,0.5],
-    directed := false
-);
- seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost | route_agg_cost 
------+---------+----------+-----------+---------+------+------+------+----------+----------------
-   1 |       1 |        1 |        -1 |      -2 |   -1 |    1 |  0.1 |        0 |              0
-   2 |       1 |        2 |        -1 |      -2 |    2 |    2 |  0.5 |      0.1 |            0.1
-   3 |       1 |        3 |        -1 |      -2 |   -2 |   -1 |    0 |      0.6 |            0.6
-   4 |       2 |        1 |        -2 |      -3 |   -2 |    2 |  0.5 |        0 |            0.6
-   5 |       2 |        2 |        -2 |      -3 |    2 |    1 |  0.5 |      0.5 |            1.1
-   6 |       2 |        3 |        -2 |      -3 |   -3 |   -2 |    0 |        1 |            1.6
-(6 rows)
-
-```
-## pgr_trspViaEdges No path representation differences
-This example no path is found (edge 17 is disconnected) from the big graph.
-* There is a vertex in disguise (fraction 0 or 1)
-* Undefined behaviour
-
-```
-SELECT * FROM pgr_trspViaEdges(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[1, 17, 1], ARRAY[0,0.5,0.5],
-    false, true
-);
- seq | id1 | id2 | id3 | cost 
------+-----+-----+-----+------
-   1 |     |     |     |     
-(1 row)
-
-```
-This example no path is found (edge 17 is disconnected) from the big graph.
-* Has a restriction
-* *pgr_trspViaEdges* original code is used
-* throws error to represent no route was not found
-
-```
-SELECT * FROM pgr_trspViaEdges(
-$$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-ARRAY[1, 17, 1], ARRAY[0.5,0.5,0.5],
-false, true,
-$$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, 32, 33::TEXT AS via_path$$
-);
-server closed the connection unexpectedly
-This probably means the server terminated abnormally
-before or while processing the request.
-The connection to the server was lost. Attempting reset: Failed.
-```
-This example no path is found (edge 17 is disconnected) from the big graph.
-* *_pgr_withPointsVia* is used
-* returns EMPTY SET to represent no route
-
-```
-SELECT * FROM pgr_trspViaEdges(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[1, 17, 1], ARRAY[0.1,0.5,0.5],
-    false, 
-    true
-);
- seq | id1 | id2 | id3 | cost 
------+-----+-----+-----+------
-(0 rows)
-
-```
-## (pgr_trspViaEdges) Using the pointsOfInterest table
-Only routing points
-when *_pgr_withPointsVia* is used
-* the renumbering still takes place
-
-```
-SELECT * FROM pgr_trspViaEdges(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[
-        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
-        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 3),
-        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 6)],
-    ARRAY[
-        (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
-        (SELECT fraction  FROM pointsOfInterest WHERE pid = 3),
-        (SELECT fraction  FROM pointsOfInterest WHERE pid = 6)],
-    false, 
-    true
-);
- seq | id1 | id2 | id3 | cost 
------+-----+-----+-----+------
-   1 |   1 |  -1 |   1 |  0.4
-   2 |   1 |   2 |   4 |  0.3
-   3 |   1 |  -3 |   4 |  0.3
-   4 |   1 |   5 |  10 |    1
-   5 |   1 |  10 |  12 |  0.6
-   6 |   1 |  -2 |  -1 |    0
-   7 |   2 |  -2 |  12 |  0.6
-   8 |   2 |  10 |  10 |    1
-   9 |   2 |   5 |   4 |  0.3
-  10 |   2 |  -3 |  -2 |    0
-(10 rows)
-
-```
-Only routing points
-when originalcode is used (because there is a restriction)
-
-```
-SELECT * FROM pgr_trspViaEdges(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[
-        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
-        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 3),
-        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 6)],
-    ARRAY[
-        (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
-        (SELECT fraction  FROM pointsOfInterest WHERE pid = 3),
-        (SELECT fraction  FROM pointsOfInterest WHERE pid = 6)],
-    false, true,
-    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
-);
- seq | id1 | id2 | id3 | cost 
------+-----+-----+-----+------
-   1 |   1 |  -1 |   1 |  0.6
-   2 |   1 |   2 |   4 |    1
-   3 |   1 |   5 |  10 |    1
-   4 |   1 |  10 |  12 |    1
-   5 |   2 |  11 |  13 |    1
-   6 |   2 |  12 |  15 |    1
-   7 |   2 |   9 |   9 |    1
-   8 |   2 |   6 |   8 |    1
-   9 |   2 |   5 |   4 |  0.3
-(9 rows)
-
-```
-Routing points & vertices
-* vertex 6 is on edge 11 with fraction 0
-* Undefined behavior
-```
-SELECT * FROM pgr_trspViaEdges(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[
-        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
-        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 3),
-        11],
-    ARRAY[
-        (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
-        (SELECT fraction  FROM pointsOfInterest WHERE pid = 3),
-        0],
-    false, 
-    true
-);
- seq | id1 | id2 | id3 | cost 
------+-----+-----+-----+------
-   1 |   1 |  -1 |   1 |  0.6
-   2 |   1 |   2 |   4 |    1
-   3 |   1 |   5 |  10 |    1
-   4 |   1 |  10 |  12 |  0.6
-   5 |   1 |  -2 |  -1 |    0
-(5 rows)
-
-```
-BEGIN;
-BEGIN
-ROLLBACK;
-ROLLBACK
diff --git a/src/trsp/doc/pgr_trsp.rst b/src/trsp/doc/pgr_trsp.rst
deleted file mode 100644
index 3d6a97a..0000000
--- a/src/trsp/doc/pgr_trsp.rst
+++ /dev/null
@@ -1,204 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _trsp:
-
-pgr_trsp - Turn Restriction Shortest Path (TRSP)
-===============================================================================
-
-.. index::
-	single: trsp(text,integer,integer,boolean,boolean)
-	single: trsp(text,integer,integer,boolean,boolean,text)
-	single: trspViaVertices(text,integer,double precision,integer,double precision,boolean,boolean)
-	single: trspViaEdges(text,integer,double precision,integer,double precision,boolean,boolean,text)
-
-Name
--------------------------------------------------------------------------------
-
-``pgr_trsp`` — Returns the shortest path with support for turn restrictions.
-
-
-Synopsis
--------------------------------------------------------------------------------
-
-The turn restricted shorthest path (TRSP) is a shortest path algorithm that can optionally take into account complicated turn restrictions like those found in real world navigable road networks. Performamnce wise it is nearly as fast as the A* search but has many additional features like it works with edges rather than the nodes of the network. Returns a set of :ref:`pgr_costResult <type_cost_result>` (seq, id1, id2, cost) rows, that make up a path.
-
-.. code-block:: sql
-
-	pgr_costResult[] pgr_trsp(sql text, source integer, target integer,
-                    directed boolean, has_rcost boolean [,restrict_sql text]);
-
-
-.. code-block:: sql
-
-	pgr_costResult[] pgr_trsp(sql text, source_edge integer, source_pos float8,
-	                target_edge integer, target_pos float8,
-                    directed boolean, has_rcost boolean [,restrict_sql text]);
-
-.. code-block:: sql
-
-    pgr_costResult3[] pgr_trspViaVertices(sql text, vids integer[],
-                    directed boolean, has_rcost boolean
-                    [, turn_restrict_sql text]);
-
-.. code-block:: sql
-
-     pgr_costResult3[] pgr_trspViaEdges(sql text, eids integer[], pcts float8[],
-                    directed boolean, has_rcost boolean
-                    [, turn_restrict_sql text]);
-
-Description
--------------------------------------------------------------------------------
-
-The Turn Restricted Shortest Path algorithm (TRSP) is similar to the shooting star in that you can specify turn restrictions.
-
-The TRSP setup is mostly the same as :ref:`Dijkstra shortest path <pgr_dijkstra>` with the addition of an optional turn restriction table. This provides an easy way of adding turn restrictions to a road network by placing them in a separate table.
-
-
-:sql: a SQL query, which should return a set of rows with the following columns:
-
-	.. code-block:: sql
-
-		SELECT id, source, target, cost, [,reverse_cost] FROM edge_table
-
-
-	:id: ``int4`` identifier of the edge
-	:source: ``int4`` identifier of the source vertex
-	:target: ``int4`` identifier of the target vertex
-	:cost: ``float8`` value, of the edge traversal cost. A negative cost will prevent the edge from being inserted in the graph.
-	:reverse_cost: (optional) the cost for the reverse traversal of the edge. This is only used when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the above remark about negative costs).
-
-:source: ``int4`` **NODE id** of the start point
-:target: ``int4`` **NODE id** of the end point
-:directed: ``true`` if the graph is directed
-:has_rcost: if ``true``, the ``reverse_cost`` column of the SQL generated set of rows will be used for the cost of the traversal of the edge in the opposite direction.
-
-:restrict_sql: (optional) a SQL query, which should return a set of rows with the following columns:
-
-	.. code-block:: sql
-
-		SELECT to_cost, target_id, via_path FROM restrictions
-
-	:to_cost: ``float8`` turn restriction cost
-	:target_id: ``int4`` target id
-	:via_path: ``text`` comma separated list of edges in the reverse order of ``rule``
-
-Another variant of TRSP allows to specify **EDGE id** of source and target together with a fraction to interpolate the position:
-
-:source_edge: ``int4`` **EDGE id** of the start edge
-:source_pos: ``float8`` fraction of 1 defines the position on the start edge
-:target_edge: ``int4`` **EDGE id** of the end edge
-:target_pos: ``float8`` fraction of 1 defines the position on the end edge
-
-Returns set of :ref:`type_cost_result`:
-
-:seq:   row sequence
-:id1:   node ID
-:id2:   edge ID (``-1`` for the last row)
-:cost:  cost to traverse from ``id1`` using ``id2``
-
-.. rubric:: History
-
-* New in version 2.0.0
-
-Support for Vias
---------------------------------------------------------------------
-
-.. warning:: The Support for Vias functions are prototypes. Not all corner cases are being considered.
-
-
-We also have support for vias where you can say generate a from A to B to C, etc. We support both methods above only you pass an array of vertices or and array of edges and percentage position along the edge in two arrays.
-
-
-
-:sql: a SQL query, which should return a set of rows with the following columns:
-
-	.. code-block:: sql
-
-		SELECT id, source, target, cost, [,reverse_cost] FROM edge_table
-
-
-	:id: ``int4`` identifier of the edge
-	:source: ``int4`` identifier of the source vertex
-	:target: ``int4`` identifier of the target vertex
-	:cost: ``float8`` value, of the edge traversal cost. A negative cost will prevent the edge from being inserted in the graph.
-	:reverse_cost: (optional) the cost for the reverse traversal of the edge. This is only used when the ``directed`` and ``has_rcost`` parameters are ``true`` (see the above remark about negative costs).
-
-:vids: ``int4[]`` An ordered array of **NODE id** the path will go through from start to end.
-:directed: ``true`` if the graph is directed
-:has_rcost: if ``true``, the ``reverse_cost`` column of the SQL generated set of rows will be used for the cost of the traversal of the edge in the opposite direction.
-
-:restrict_sql: (optional) a SQL query, which should return a set of rows with the following columns:
-
-	.. code-block:: sql
-
-		SELECT to_cost, target_id, via_path FROM restrictions
-
-	:to_cost: ``float8`` turn restriction cost
-	:target_id: ``int4`` target id
-	:via_path: ``text`` commar separated list of edges in the reverse order of ``rule``
-
-Another variant of TRSP allows to specify **EDGE id** together with a fraction to interpolate the position:
-
-:eids: ``int4`` An ordered array of **EDGE id** that the path has to traverse
-:pcts: ``float8`` An array of fractional positions along the respective edges in ``eids``, where 0.0 is the start of the edge and 1.0 is the end of the eadge.
-
-Returns set of :ref:`type_cost_result`:
-
-:seq:   row sequence
-:id1:   route ID
-:id2:   node ID
-:id3:   edge ID (``-1`` for the last row)
-:cost:  cost to traverse from ``id2`` using ``id3``
-
-
-.. rubric:: History
-
-* Via Support prototypes new in version 2.1.0
-
-Examples
--------------------------------------------------------------------------------
-
-**Without turn restrictions**
-
-.. literalinclude:: doc-trsp.queries
-   :start-after: --q1
-   :end-before: --q2
-
-
-**With turn restrictions**
-
-Then a query with turn restrictions is created as:
-
-.. literalinclude:: doc-trsp.queries
-   :start-after: --q3
-   :end-before: --q4
-
-
-An example query using vertex ids and via points:
-
-.. literalinclude:: doc-trsp.queries
-   :start-after: --q4
-   :end-before: --q5
-
-
-An example query using edge ids and vias:
-
-.. literalinclude:: doc-trsp.queries
-   :start-after: --q5
-   :end-before: --q6
-
-
-The queries use the :ref:`sampledata` network.
-
-
-See Also
--------------------------------------------------------------------------------
-
-* :ref:`type_cost_result`
diff --git a/src/trsp/sql/CMakeLists.txt b/src/trsp/sql/CMakeLists.txt
deleted file mode 100644
index 8316d20..0000000
--- a/src/trsp/sql/CMakeLists.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-# Append in local scope
-list(APPEND PACKAGE_SQL_FILES
-    #${CMAKE_CURRENT_SOURCE_DIR}/routing_trsp.sql
-    #${CMAKE_CURRENT_SOURCE_DIR}/routing_trsp_vias.sql
-    ${CMAKE_CURRENT_SOURCE_DIR}/trsp_V2.2.sql
-    ${CMAKE_CURRENT_SOURCE_DIR}/vias_trsp_V2.2.sql
-    )
-
-# set in parent scope
-set(PACKAGE_SQL_FILES "${PACKAGE_SQL_FILES}" PARENT_SCOPE)
diff --git a/src/trsp/sql/routing_trsp_vias.sql b/src/trsp/sql/routing_trsp_vias.sql
deleted file mode 100644
index 0a8982a..0000000
--- a/src/trsp/sql/routing_trsp_vias.sql
+++ /dev/null
@@ -1,192 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2013 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-create or replace function _pgr_trspViaVertices(sql text, vids integer[], directed boolean, has_reverse_cost boolean, turn_restrict_sql text DEFAULT NULL::text)
-    RETURNS SETOF pgr_costresult3 AS
-$body$
-/*
- *  pgr_trsp(sql text, vids integer[], directed boolean, has_reverse_cost boolean, turn_restrict_sql text DEFAULT NULL::text)
- *
- *  Compute TRSP with via points. We compute the path between vids[i] and vids[i+1] and chain the results together.
- *
- *  NOTE: this is a prototype function, we can gain a lot of efficiencies by implementing this in C/C++
- *
-*/
-declare
-    i integer;
-    rr pgr_costresult3;
-    lrr pgr_costresult3;
-    lrra boolean := false;
-    seq integer := 0;
-    seq2 integer := 0;
-
-begin
-    -- loop through each pair of vids and compute the path
-    for i in 1 .. array_length(vids, 1)-1 loop
-        seq2 := seq2 + 1;
-        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
-                    from pgr_trsp(sql, vids[i], vids[i+1], directed, has_reverse_cost, turn_restrict_sql) as a loop
-            -- filter out the individual path ends except the last one
-            -- we might not want to do this so we can know where the via points are in the path result
-            -- but this needs more thought
-            --raise notice 'rr: %', rr;
-            if rr.id3 = -1 then
-                lrr := rr;
-                lrra := true;
-            else
-                seq := seq + 1;
-                rr.seq := seq;
-                return next rr;
-            end if;
-        end loop;
-    end loop;
-
-    if lrra then
-        seq := seq + 1;
-        lrr.seq := seq;
-        return next lrr;
-    end if;
-    return;
-end;
-$body$
-    language plpgsql stable
-    cost 100
-    rows 1000;
-
-
-
-
-----------------------------------------------------------------------------------------------------------
-
-create or replace function _pgr_trspViaEdges(sql text, eids integer[], pcts float8[], directed boolean, has_reverse_cost boolean, turn_restrict_sql text DEFAULT NULL::text)
-    RETURNS SETOF pgr_costresult3 AS
-$body$
-/*
- *  pgr_trsp(sql text, eids integer[], pcts float8[], directed boolean, has_reverse_cost boolean, turn_restrict_sql text DEFAULT NULL::text)
- *
- *  Compute TRSP with edge_ids and pposition along edge. We compute the path between eids[i], pcts[i] and eids[i+1], pcts[i+1]
- *  and chain the results together.
- *
- *  NOTE: this is a prototype function, we can gain a lot of efficiencies by implementing this in C/C++
- *
-*/
-declare
-    i integer;
-    rr pgr_costresult3;
-    lrr pgr_costresult3;
-    first boolean := true;
-    seq integer := 0;
-    seq2 integer :=0;
-
-begin
-    if array_length(eids, 1) != array_length(pcts, 1) then
-        raise exception 'The length of arrays eids and pcts must be the same!';
-    end if;
-
-    -- loop through each pair of vids and compute the path
-    for i in 1 .. array_length(eids, 1)-1 loop
-        seq2 := seq2 + 1;
-        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
-                    from _pgr_trsp(sql,
-                                  eids[i], pcts[i],
-                                  eids[i+1], pcts[i+1],
-                                  directed,
-                                  has_reverse_cost,
-                                  turn_restrict_sql) as a loop
-            -- combine intermediate via costs when cost is split across
-            -- two parts of a segment because it stops it and
-            -- restarts the next leg also on it
-            -- we might not want to do this so we can know where the via points are in the path result
-            -- but this needs more thought
-            --
-            -- there are multiple condition we have to deal with
-            -- between the end of one leg and start of the next
-            -- 1. same vertex_id. edge_id=-1; drop record with edge_id=-1
-            -- means: path ends on vertex
-            -- NOTICE:  rr: (19,1,44570022,-1,0)
-            -- NOTICE:  rr: (0,2,44570022,1768045,2.89691196717448)
-            -- 2. vertex_id=-1; sum cost components
-            -- means: path end/starts with the segment
-            -- NOTICE:  rr: (11,2,44569628,1775909,9.32885885148532)
-            -- NOTICE:  rr: (0,3,-1,1775909,0.771386350984395)
-
-            --raise notice 'rr: %', rr;
-            if first then
-                lrr := rr;
-                first := false;
-            else
-                if lrr.id3 = -1 then
-                    lrr := rr;
-                elsif lrr.id3 = rr.id3 then
-                    lrr.cost := lrr.cost + rr.cost;
-                    if rr.id2 = -1 then
-                        rr.id2 := lrr.id2;
-                    end if;
-                else
-                    seq := seq + 1;
-                    lrr.seq := seq;
-                    return next lrr;
-                    lrr := rr;
-                end if;
-            end if;
-        end loop;
-    end loop;
-
-    seq := seq + 1;
-    lrr.seq := seq;
-    return next lrr;
-    return;
-end;
-$body$
-    language plpgsql stable
-    cost 100
-    rows 1000;
-
-
-----------------------------------------------------------------------------------------------------------
-/*this via functions are not documented they will be deleted on 2.2
-
-create or replace function pgr_trsp(sql text, vids integer[], directed boolean, has_reverse_cost boolean, turn_restrict_sql text DEFAULT NULL::text)
-    RETURNS SETOF pgr_costresult AS
-$body$
-begin
-    return query select seq, id2 as id1, id3 as id2, cost from pgr_trspVia( sql, vids, directed, has_reverse_cost, turn_restrict_sql);
-end;
-$body$
-    language plpgsql stable
-    cost 100
-    rows 1000;
-
-
-
-create or replace function pgr_trsp(sql text, eids integer[], pcts float8[], directed boolean, has_reverse_cost boolean, turn_restrict_sql text DEFAULT NULL::text)
-    RETURNS SETOF pgr_costresult AS
-$body$
-begin
-    return query select seq, id2 as id1, id3 as id2, cost from pgr_trspVia(sql, eids, pcts, directed, has_reverse_cost, turn_restrict_sql);
-end;
-$body$
-    language plpgsql stable
-    cost 100
-    rows 1000;
-*/
diff --git a/src/trsp/sql/trsp_V2.2.sql b/src/trsp/sql/trsp_V2.2.sql
deleted file mode 100644
index a6f868f..0000000
--- a/src/trsp/sql/trsp_V2.2.sql
+++ /dev/null
@@ -1,214 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
------------------------------------------------------------------------
--- Core function for time_dependent_shortest_path computation
--- See README for description
------------------------------------------------------------------------
---TODO - Do we need to add another sql text for the query on time-dependent-weights table?
---     - For now just checking with static data, so the query is similar to shortest_paths.
-
-CREATE OR REPLACE FUNCTION _pgr_trsp(
-    sql text,
-    source_vid integer,
-    target_vid integer,
-    directed boolean,
-    has_reverse_cost boolean,
-    turn_restrict_sql text DEFAULT null)
-RETURNS SETOF pgr_costResult
-AS '$libdir/${PGROUTING_LIBRARY_NAME}', 'turn_restrict_shortest_path_vertex'
-LANGUAGE 'c' IMMUTABLE;
-
-CREATE OR REPLACE FUNCTION _pgr_trsp(
-    sql text,
-    source_eid integer,
-    source_pos float8,
-    target_eid integer,
-    target_pos float8,
-    directed boolean,
-    has_reverse_cost boolean,
-    turn_restrict_sql text DEFAULT null)
-RETURNS SETOF pgr_costResult
-AS '$libdir/${PGROUTING_LIBRARY_NAME}', 'turn_restrict_shortest_path_edge'
-LANGUAGE 'c' IMMUTABLE;
-
-
-
-
-/*  pgr_trsp    VERTEX
-
- - if size of restrictions_sql  is Zero or no restrictions_sql are given
-     then call to pgr_dijkstra is made
-
- - because it reads the data wrong, when there is a reverse_cost column:
-   - put all data costs in one cost column and
-   - a call is made to trsp without only the positive values
-*/
-CREATE OR REPLACE FUNCTION pgr_trsp(
-    edges_sql TEXT,
-    start_vid INTEGER,
-    end_vid INTEGER,
-    directed BOOLEAN,
-    has_rcost BOOLEAN,
-    restrictions_sql TEXT DEFAULT NULL)
-RETURNS SETOF pgr_costResult AS
-$BODY$
-DECLARE
-has_reverse BOOLEAN;
-new_sql TEXT;
-trsp_sql TEXT;
-BEGIN
-    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
-
-    new_sql := edges_sql;
-    IF (has_reverse != has_rcost) THEN  -- user contradiction
-        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
-            -- to be on the safe side because it reads the data wrong, sending only postitive values
-            new_sql :=
-            'WITH old_sql AS (' || edges_sql || ')' ||
-            '   SELECT id, source, target, cost FROM old_sql';
-        ELSE -- it does not have reverse_cost but user wants it
-            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
-            USING ERRCODE := 'XX000';
-        END IF;
-    END IF;
-
-    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
-        -- no restrictions then its a dijkstra
-        RETURN query SELECT a.seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
-        FROM pgr_dijkstra(new_sql, start_vid, end_vid, directed) a;
-        RETURN;
-    END IF;
-
-    RETURN query SELECT * FROM _pgr_trsp(new_sql, start_vid, end_vid, directed, has_rcost, restrictions_sql);
-    RETURN;
-END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
-
-
-/* pgr_trspVia Vertices
- - if size of restrictions_sql  is Zero or no restrictions_sql are given
-     then call to pgr_dijkstra is made
-
- - because it reads the data wrong, when there is a reverse_cost column:
-   - put all data costs in one cost column and
-   - a call is made to trspViaVertices without only the positive values
-*/
-CREATE OR REPLACE FUNCTION pgr_trspViaVertices(
-    edges_sql TEXT,
-    via_vids ANYARRAY,
-    directed BOOLEAN,
-    has_rcost BOOLEAN,
-    restrictions_sql TEXT DEFAULT NULL)
-RETURNS SETOF pgr_costResult3 AS
-$BODY$
-DECLARE
-has_reverse BOOLEAN;
-new_sql TEXT;
-BEGIN
-
-    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
-
-    new_sql := edges_sql;
-    IF (has_reverse != has_rcost) THEN  -- user contradiction
-        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
-            new_sql :=
-               'WITH old_sql AS (' || edges_sql || ')' ||
-                '   SELECT id, source, target, cost FROM old_sql';
-        ELSE -- it does not have reverse_cost but user wants it
-            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
-            USING ERRCODE := 'XX000';
-        END IF;
-    END IF;
-
-    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
-        RETURN query SELECT (row_number() over())::INTEGER, path_id:: INTEGER, node::INTEGER,
-            (CASE WHEN edge = -2 THEN -1 ELSE edge END)::INTEGER, cost
-            FROM pgr_dijkstraVia(new_sql, via_vids, directed, strict:=true) WHERE edge != -1;
-        RETURN;
-    END IF;
-
-
-    -- make the call without contradiction from part of the user
-    RETURN query SELECT * FROM _pgr_trspViaVertices(new_sql, via_vids::INTEGER[], directed, has_rcost, restrictions_sql);
-END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
-
-
-CREATE OR REPLACE FUNCTION pgr_trsp(
-    sql text,
-    source_eid integer,
-    source_pos float8,
-    target_eid integer,
-    target_pos float8,
-    directed boolean,
-    has_reverse_cost boolean,
-    turn_restrict_sql text DEFAULT null)
-RETURNS SETOF pgr_costResult AS
-$BODY$
-DECLARE
-has_reverse BOOLEAN;
-new_sql TEXT;
-trsp_sql TEXT;
-BEGIN
-    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
-
-    new_sql := sql;
-    IF (has_reverse != has_reverse_cost) THEN  -- user contradiction
-        IF (has_reverse) THEN
-            -- it has reverse_cost but user don't want it.
-            -- to be on the safe side because it reads the data wrong, sending only postitive values
-            new_sql :=
-            'WITH old_sql AS (' || sql || ')' ||
-            '   SELECT id, source, target, cost FROM old_sql';
-        ELSE -- it does not have reverse_cost but user wants it
-            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
-            USING ERRCODE := 'XX000';
-        END IF;
-    END IF;
-
-    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) THEN
-        -- no restrictions then its a with points
-        RETURN query SELECT a.seq-1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
-        FROM pgr_withpoints(new_sql,
-            '(SELECT 1 as pid, ' || source_eid || 'as edge_id, ' || source_pos || '::float8 as fraction)'
-            || ' UNION '
-            || '(SELECT 2, ' || target_eid || ', ' || target_pos || ')' ::TEXT,
-            -1, -2, directed) a;
-        -- WHERE node != -2;
-        RETURN;
-    END IF;
-
-    RETURN query SELECT * FROM _pgr_trsp(new_sql, source_eid, source_pos, target_eid, target_pos, directed, has_reverse_cost, turn_restrict_sql);
-    RETURN;
-
-END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
diff --git a/src/trsp/sql/viaEdges_v2.2.sql b/src/trsp/sql/viaEdges_v2.2.sql
deleted file mode 100644
index 4a42b29..0000000
--- a/src/trsp/sql/viaEdges_v2.2.sql
+++ /dev/null
@@ -1,85 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2016 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-/* trspViaEdges
-
- - when contradiction (has rcost but does not want it):
-   - the call is made to trsp only with cost column
-
- - When there are no restrictions:
-   a call to _pgr_withPointsVia
- - Else 
-   a call to _pgr_trspViaEdges
-     - which calls repetedly the original C/C++ code
-*/
-
-
-------------------------------
--- pgr_trspViaEdges Wrapper
-------------------------------
-CREATE OR REPLACE FUNCTION pgr_trspViaEdges(
-    sql TEXT,
-    eids INTEGER[],
-    pcts float[],
-    directed BOOLEAN,
-    has_rcost BOOLEAN,
-    turn_restrict_sql text DEFAULT NULL::TEXT)
-    RETURNS SETOF pgr_costresult3 AS
-$BODY$
-DECLARE
-    i INTEGER;
-    rr pgr_costresult3;
-    lrr pgr_costresult3;
-    first BOOLEAN := true;
-    seq INTEGER := 0;
-    seq2 INTEGER :=0;
-    has_reverse BOOLEAN;
-    edges_sql TEXT;
-
-BEGIN
-    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
-    edges_sql := sql;
-    IF (has_reverse != has_rcost) THEN
-        IF (has_reverse) THEN
-            edges_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
-        ELSE
-            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
-        END IF;
-    END IF;
-
-    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) THEN
-        -- no restrictions then its a _pgr_withPointsVia
-        RETURN query SELECT seq-1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
-        FROM _pgr_withPointsVia(edges_sql, eids, pcts, directed)
-        RETURN;
-    END IF;
-
-
-    -- make the call to the original code
-    RETURN query SELECT * FROM _pgr_trspViaEdges(edges_sql, eids, pcts, directed, has_rcost, turn_restrict_sql);
-
-END;
-$BODY$
-LANGUAGE plpgsql VOLATILE
-cost 100
-rows 1000;
diff --git a/src/trsp/sql/viaVertices_v2.2.sql b/src/trsp/sql/viaVertices_v2.2.sql
deleted file mode 100644
index b1205f0..0000000
--- a/src/trsp/sql/viaVertices_v2.2.sql
+++ /dev/null
@@ -1,82 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2016 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-/* trspViaVertices
-
- - when contradiction (has rcost but does not want it):
-   - the call is made to trsp only with cost column
-
- - When there are no restrictions:
-   a call to pgr_dijkstraVia
- - Else 
-   a call to _pgr_trspViaVertices
-     - which calls repetedly the original C/C++ code
-*/
-
-------------------------------
--- pgr_trspViaVertices Wrapper
-------------------------------
-CREATE OR REPLACE FUNCTION pgr_trspViaVertices(
-    edges_sql TEXT,
-    via_vids ANYARRAY,
-    directed BOOLEAN,
-    has_rcost BOOLEAN,
-    restrictions_sql TEXT DEFAULT NULL)
-RETURNS SETOF pgr_costResult3 AS
-$BODY$
-DECLARE
-has_reverse BOOLEAN;
-new_sql TEXT;
-BEGIN
-
-    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
-
-    new_sql := edges_sql;
-    IF (has_reverse != has_rcost) THEN  -- user contradiction
-        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
-            new_sql :=
-               'WITH old_sql AS (' || edges_sql || ')' ||
-                '   SELECT id, source, target, cost FROM old_sql';
-        ELSE -- it does not have reverse_cost but user wants it
-            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
-            USING ERRCODE := 'XX000';
-        END IF;
-    END IF;
-
-    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
-        RETURN query SELECT (row_number() over())::INTEGER, path_id:: INTEGER, node::INTEGER,
-            (CASE WHEN edge = -2 THEN -1 ELSE edge END)::INTEGER, cost
-            FROM pgr_dijkstraVia(new_sql, via_vids, directed, strict:=true) WHERE edge != -1;
-        RETURN;
-    END IF;
-
-
-    -- make the call without contradiction from part of the user
-    RETURN query SELECT * FROM _pgr_trspViaVertices(new_sql, via_vids::INTEGER[], directed, has_rcost, restrictions_sql);
-END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
-
-
diff --git a/src/trsp/sql/vias_trsp_V2.2.sql b/src/trsp/sql/vias_trsp_V2.2.sql
deleted file mode 100644
index 0a752bf..0000000
--- a/src/trsp/sql/vias_trsp_V2.2.sql
+++ /dev/null
@@ -1,220 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-create or replace function _pgr_trspViaVertices(sql text, vids integer[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
-    RETURNS SETOF pgr_costresult3 AS
-$body$
-/*
- *  pgr_trsp(sql text, vids integer[], directed boolean, has_reverse_cost boolean, turn_restrict_sql text DEFAULT NULL::text)
- *
- *  Compute TRSP with via points. We compute the path between vids[i] and vids[i+1] and chain the results together.
- *
- *  NOTE: this is a prototype function, we can gain a lot of efficiencies by implementing this in C/C++
- *
-*/
-declare
-    i integer;
-    rr pgr_costresult3;
-    lrr pgr_costresult3;
-    lrra boolean := false;
-    seq integer := 0;
-    seq2 integer := 0;
-
-begin
-
-    -- loop through each pair of vids and compute the path
-    for i in 1 .. array_length(vids, 1)-1 loop
-        seq2 := seq2 + 1;
-        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
-                    from _pgr_trsp(sql, vids[i], vids[i+1], directed, has_rcost, turn_restrict_sql) as a loop
-            -- filter out the individual path ends except the last one
-            -- we might not want to do this so we can know where the via points are in the path result
-            -- but this needs more thought
-            --raise notice 'rr: %', rr;
-            if rr.id3 = -1 then
-                lrr := rr;
-                lrra := true;
-            else
-                seq := seq + 1;
-                rr.seq := seq;
-                return next rr;
-            end if;
-        end loop;
-    end loop;
-
-    if lrra then
-        seq := seq + 1;
-        lrr.seq := seq;
-        return next lrr;
-    end if;
-    return;
-end;
-$body$
-    language plpgsql stable
-    cost 100
-    rows 1000;
-
-
-
-
-----------------------------------------------------------------------------------------------------------
-
-create or replace function pgr_trspViaEdges(sql text, eids integer[], pcts float8[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
-    RETURNS SETOF pgr_costresult3 AS
-$body$
-/*
- *  pgr_trsp(sql text, eids integer[], pcts float8[], directed boolean, has_reverse_cost boolean, turn_restrict_sql text DEFAULT NULL::text)
- *
- *  Compute TRSP with edge_ids and pposition along edge. We compute the path between eids[i], pcts[i] and eids[i+1], pcts[i+1]
- *  and chain the results together.
- *
- *  NOTE: this is a prototype function, we can gain a lot of efficiencies by implementing this in C/C++
- *
-*/
-declare
-    i integer;
-    rr pgr_costresult3;
-    lrr pgr_costresult3;
-    first boolean := true;
-    seq integer := 0;
-    seq2 integer :=0;
-    has_reverse BOOLEAN;
-    point_is_vertex BOOLEAN := false;
-    edges_sql TEXT;
-    f float;
-
-begin
-    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
-    edges_sql := sql;
-    IF (has_reverse != has_rcost) THEN
-        IF (NOT has_rcost) THEN
-            -- user does not want to use reverse cost column
-            edges_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
-        ELSE
-            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
-        END IF;
-    END IF;
-
-    FOREACH f IN ARRAY pcts LOOP
-        IF f in (0,1) THEN
-           point_is_vertex := true;
-        END IF;
-    END LOOP;
-
-    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) AND NOT point_is_vertex THEN
-        -- no restrictions then its a _pgr_withPointsVia
-        RETURN query SELECT a.seq::INTEGER, path_id::INTEGER AS id1, node::INTEGER AS id2, edge::INTEGER AS id3, cost
-        FROM _pgr_withPointsVia(edges_sql, eids, pcts, directed) a;
-        RETURN;
-    END IF;
-
-    if array_length(eids, 1) != array_length(pcts, 1) then
-        raise exception 'The length of arrays eids and pcts must be the same!';
-    end if;
-
-    -- loop through each pair of vids and compute the path
-    for i in 1 .. array_length(eids, 1)-1 loop
-        seq2 := seq2 + 1;
-        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
-                    from pgr_trsp(edges_sql,
-                                  eids[i], pcts[i],
-                                  eids[i+1], pcts[i+1],
-                                  directed,
-                                  has_rcost,
-                                  turn_restrict_sql) as a loop
-            -- combine intermediate via costs when cost is split across
-            -- two parts of a segment because it stops it and
-            -- restarts the next leg also on it
-            -- we might not want to do this so we can know where the via points are in the path result
-            -- but this needs more thought
-            --
-            -- there are multiple condition we have to deal with
-            -- between the end of one leg and start of the next
-            -- 1. same vertex_id. edge_id=-1; drop record with edge_id=-1
-            -- means: path ends on vertex
-            -- NOTICE:  rr: (19,1,44570022,-1,0)
-            -- NOTICE:  rr: (0,2,44570022,1768045,2.89691196717448)
-            -- 2. vertex_id=-1; sum cost components
-            -- means: path end/starts with the segment
-            -- NOTICE:  rr: (11,2,44569628,1775909,9.32885885148532)
-            -- NOTICE:  rr: (0,3,-1,1775909,0.771386350984395)
-
-            --raise notice 'rr: %', rr;
-            if first then
-                lrr := rr;
-                first := false;
-            else
-                if lrr.id3 = -1 then
-                    lrr := rr;
-                elsif lrr.id3 = rr.id3 then
-                    lrr.cost := lrr.cost + rr.cost;
-                    if rr.id2 = -1 then
-                        rr.id2 := lrr.id2;
-                    end if;
-                else
-                    seq := seq + 1;
-                    lrr.seq := seq;
-                    return next lrr;
-                    lrr := rr;
-                end if;
-            end if;
-        end loop;
-    end loop;
-
-    seq := seq + 1;
-    lrr.seq := seq;
-    return next lrr;
-    return;
-end;
-$body$
-    language plpgsql stable
-    cost 100
-    rows 1000;
-
-
-----------------------------------------------------------------------------------------------------------
-/*this via functions are not documented they will be deleted on 2.2
-
-create or replace function pgr_trsp(sql text, vids integer[], directed boolean, has_reverse_cost boolean, turn_restrict_sql text DEFAULT NULL::text)
-    RETURNS SETOF pgr_costresult AS
-$body$
-begin
-    return query select seq, id2 as id1, id3 as id2, cost from pgr_trspVia( sql, vids, directed, has_reverse_cost, turn_restrict_sql);
-end;
-$body$
-    language plpgsql stable
-    cost 100
-    rows 1000;
-
-
-
-create or replace function pgr_trsp(sql text, eids integer[], pcts float8[], directed boolean, has_reverse_cost boolean, turn_restrict_sql text DEFAULT NULL::text)
-    RETURNS SETOF pgr_costresult AS
-$body$
-begin
-    return query select seq, id2 as id1, id3 as id2, cost from pgr_trspVia(sql, eids, pcts, directed, has_reverse_cost, turn_restrict_sql);
-end;
-$body$
-    language plpgsql stable
-    cost 100
-    rows 1000;
-*/
diff --git a/src/trsp/src/GraphDefinition.cpp b/src/trsp/src/GraphDefinition.cpp
old mode 100755
new mode 100644
index b8b3af5..45f4cda
--- a/src/trsp/src/GraphDefinition.cpp
+++ b/src/trsp/src/GraphDefinition.cpp
@@ -1,3 +1,28 @@
+/*PGR-GNU*****************************************************************
+
+File: GraphDefinition.cpp
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
 
 #ifdef __MINGW32__
 #include <winsock2.h>
@@ -9,8 +34,7 @@
 #include "GraphDefinition.h"
 
 // -------------------------------------------------------------------------
-GraphDefinition::GraphDefinition(void)
-{
+GraphDefinition::GraphDefinition(void) {
     m_lStartEdgeId = -1;
     m_lEndEdgeId = 0;
     m_dStartpart = 0.0;
@@ -23,14 +47,12 @@ GraphDefinition::GraphDefinition(void)
 }
 
 // -------------------------------------------------------------------------
-GraphDefinition::~GraphDefinition(void)
-{
+GraphDefinition::~GraphDefinition(void) {
 }
 
 
 // -------------------------------------------------------------------------
-void GraphDefinition::init()
-{
+void GraphDefinition::init() {
     max_edge_id = 0;
     max_node_id = 0;
     isStartVirtual = false;
@@ -39,10 +61,9 @@ void GraphDefinition::init()
 
 
 // -------------------------------------------------------------------------
-void GraphDefinition::deleteall()
-{
+void GraphDefinition::deleteall() {
     std::vector<GraphEdgeInfo*>::iterator it;
-    for(it  = m_vecEdgeVector.begin(); it != m_vecEdgeVector.end(); it++){
+    for (it = m_vecEdgeVector.begin(); it != m_vecEdgeVector.end(); it++) {
         delete *it;
     }
     m_vecEdgeVector.clear();
@@ -53,19 +74,14 @@ void GraphDefinition::deleteall()
 
 
 // -------------------------------------------------------------------------
-double GraphDefinition::construct_path(long ed_id, int v_pos)
-{
-    if(parent[ed_id].ed_ind[v_pos] == -1)
-    {
-        path_element_t pelement;
+double GraphDefinition::construct_path(long ed_id, long v_pos) {
+    if (parent[ed_id].ed_ind[v_pos] == -1) {
+        path_element_tt pelement;
         GraphEdgeInfo* cur_edge = m_vecEdgeVector[ed_id];
-        if(v_pos == 0)
-        {
+        if (v_pos == 0) {
             pelement.vertex_id = cur_edge->m_lStartNode;
             pelement.cost = cur_edge->m_dCost;
-        }
-        else
-        {
+        } else {
             pelement.vertex_id = cur_edge->m_lEndNode;
             pelement.cost = cur_edge->m_dReverseCost;
         }
@@ -74,17 +90,15 @@ double GraphDefinition::construct_path(long ed_id, int v_pos)
         m_vecPath.push_back(pelement);
         return pelement.cost;
     }
-    double ret = construct_path(parent[ed_id].ed_ind[v_pos], parent[ed_id].v_pos[v_pos]);
-    path_element_t pelement;
+    double ret = construct_path(parent[ed_id].ed_ind[v_pos],
+        parent[ed_id].v_pos[v_pos]);
+    path_element_tt pelement;
     GraphEdgeInfo* cur_edge = m_vecEdgeVector[ed_id];
-    if(v_pos == 0)
-    {
+    if (v_pos == 0) {
         pelement.vertex_id = cur_edge->m_lStartNode;
-        pelement.cost = m_dCost[ed_id].endCost - ret;// cur_edge.m_dCost;
+        pelement.cost = m_dCost[ed_id].endCost - ret;  // cur_edge.m_dCost;
         ret = m_dCost[ed_id].endCost;
-    }
-    else
-    {
+    } else {
         pelement.vertex_id = cur_edge->m_lEndNode;
         pelement.cost = m_dCost[ed_id].startCost - ret;
         ret = m_dCost[ed_id].startCost;
@@ -101,30 +115,24 @@ double GraphDefinition::construct_path(long ed_id, int v_pos)
 double GraphDefinition::getRestrictionCost(
     long edge_ind,
     GraphEdgeInfo& new_edge,
-    bool isStart)
-{
+    bool isStart) {
     double cost = 0.0;
     long edge_id = new_edge.m_lEdgeID;
-    if(m_ruleTable.find(edge_id) == m_ruleTable.end())
-    {    
+    if (m_ruleTable.find(edge_id) == m_ruleTable.end()) {
         return(0.0);
     }
     std::vector<Rule> vecRules = m_ruleTable[edge_id];
     long st_edge_ind = edge_ind;
-    for(const auto &rule : vecRules)
-    {
+    for (const auto &rule : vecRules) {
         bool flag = true;
-        int v_pos = (isStart?0:1);
+        long v_pos = (isStart?0:1);
         edge_ind = st_edge_ind;
-        for(auto const &precedence : rule.precedencelist)
-        {
-            if(edge_ind == -1)
-            {
+        for (auto const &precedence : rule.precedencelist) {
+            if (edge_ind == -1) {
                 flag = false;
                 break;
             }
-            if(precedence != m_vecEdgeVector[edge_ind]->m_lEdgeID)
-            {
+            if (precedence != m_vecEdgeVector[edge_ind]->m_lEdgeID) {
                 flag = false;
                 break;
             }
@@ -132,7 +140,7 @@ double GraphDefinition::getRestrictionCost(
             v_pos = parent[edge_ind].v_pos[v_pos];
             edge_ind = parent_ind;
         }
-        if(flag)
+        if (flag)
             cost += rule.cost;
     }
     return cost;
@@ -146,50 +154,49 @@ void GraphDefinition::explore(
     bool isStart,
     LongVector &vecIndex,
     std::priority_queue<PDP, std::vector<PDP>,
-    std::greater<PDP> > &que)
-{
+    std::greater<PDP> > &que) {
     double extCost = 0.0;
     GraphEdgeInfo* new_edge;
     double totalCost;
-    for(const auto &index : vecIndex)
-    {
+    for (const auto &index : vecIndex) {
         new_edge = m_vecEdgeVector[index];
         extCost = 0.0;
-        if(m_bIsturnRestrictOn)
-        {
-            extCost = getRestrictionCost(cur_edge.m_lEdgeIndex, *new_edge, isStart);
-        }
-        if(new_edge->m_lStartNode == cur_node)
-        {
-            if(new_edge->m_dCost >= 0.0)
-            {
-                if(isStart)
-                    totalCost = m_dCost[cur_edge.m_lEdgeIndex].endCost + new_edge->m_dCost + extCost;
+        if (m_bIsturnRestrictOn) {
+            extCost = getRestrictionCost(cur_edge.m_lEdgeIndex,
+                 *new_edge, isStart);
+        }
+        if (new_edge->m_lStartNode == cur_node) {
+            if (new_edge->m_dCost >= 0.0) {
+                if (isStart)
+                    totalCost = m_dCost[cur_edge.m_lEdgeIndex].endCost +
+                    new_edge->m_dCost + extCost;
                 else
-                    totalCost = m_dCost[cur_edge.m_lEdgeIndex].startCost + new_edge->m_dCost + extCost;
-                if(totalCost < m_dCost[index].endCost)
-                {
+                    totalCost = m_dCost[cur_edge.m_lEdgeIndex].startCost +
+                    new_edge->m_dCost + extCost;
+                if (totalCost < m_dCost[index].endCost) {
                     m_dCost[index].endCost = totalCost;
                     parent[new_edge->m_lEdgeIndex].v_pos[0] = (isStart?0:1);
-                    parent[new_edge->m_lEdgeIndex].ed_ind[0] = cur_edge.m_lEdgeIndex;
-                    que.push(std::make_pair(totalCost, std::make_pair(new_edge->m_lEdgeIndex, true)));
+                    parent[new_edge->m_lEdgeIndex].ed_ind[0] =
+                     cur_edge.m_lEdgeIndex;
+                    que.push(std::make_pair(totalCost,
+                        std::make_pair(new_edge->m_lEdgeIndex, true)));
                 }
             }
-        }
-        else
-        {
-            if(new_edge->m_dReverseCost >= 0.0)
-            {
-                if(isStart)
-                    totalCost = m_dCost[cur_edge.m_lEdgeIndex].endCost + new_edge->m_dReverseCost + extCost;
+        } else {
+            if (new_edge->m_dReverseCost >= 0.0) {
+                if (isStart)
+                    totalCost = m_dCost[cur_edge.m_lEdgeIndex].endCost +
+                    new_edge->m_dReverseCost + extCost;
                 else
-                    totalCost = m_dCost[cur_edge.m_lEdgeIndex].startCost + new_edge->m_dReverseCost + extCost;
-                if(totalCost < m_dCost[index].startCost)
-                {
+                    totalCost = m_dCost[cur_edge.m_lEdgeIndex].startCost +
+                    new_edge->m_dReverseCost + extCost;
+                if (totalCost < m_dCost[index].startCost) {
                     m_dCost[index].startCost = totalCost;
                     parent[new_edge->m_lEdgeIndex].v_pos[1] = (isStart?0:1);
-                    parent[new_edge->m_lEdgeIndex].ed_ind[1] = cur_edge.m_lEdgeIndex;
-                    que.push(std::make_pair(totalCost, std::make_pair(new_edge->m_lEdgeIndex, false)));
+                    parent[new_edge->m_lEdgeIndex].ed_ind[1] =
+                    cur_edge.m_lEdgeIndex;
+                    que.push(std::make_pair(totalCost,
+                        std::make_pair(new_edge->m_lEdgeIndex, false)));
                 }
             }
         }
@@ -200,66 +207,59 @@ void GraphDefinition::explore(
 // -------------------------------------------------------------------------
 int GraphDefinition::multi_dijkstra(
     edge_t *edges,
-    unsigned int edge_count,
+    size_t edge_count,
     std::vector<int> vertices,
     bool directed,
-    bool has_reverse_cost, 
-    path_element_t **path,
-    int *path_count,
+    bool has_reverse_cost,
+    path_element_tt **path,
+    size_t *path_count,
     char **err_msg,
-    std::vector<PDVI> &ruleList)
-{
+    std::vector<PDVI> &ruleList) {
     construct_graph(edges, edge_count, has_reverse_cost, directed);
-    if(ruleList.size() > 0)
-    {
-    m_ruleTable.clear();
-    LongVector vecsource;
-    for(const auto &rule : ruleList)
-    {
-	std::vector<long> temp_precedencelist;
-	temp_precedencelist.clear();
-	for(auto const &seq : rule.second)
-	{
-	    temp_precedencelist.push_back(seq);
-	}
-	int dest_edge_id = rule.second[0];
-	if(m_ruleTable.find(dest_edge_id) != m_ruleTable.end())
-	{
-	    m_ruleTable[dest_edge_id].push_back(Rule(rule.first, temp_precedencelist));
-	}
-	else
-	{
-	    std::vector<Rule> temprules;
-	    temprules.clear();
-	    temprules.push_back(Rule(rule.first, temp_precedencelist));
-	    m_ruleTable.insert(std::make_pair(dest_edge_id, temprules));
-	}
-    }
-    m_bIsturnRestrictOn = true;
+    if (ruleList.size() > 0) {
+        m_ruleTable.clear();
+        LongVector vecsource;
+        for (const auto &rule : ruleList) {
+            std::vector<long> temp_precedencelist;
+            temp_precedencelist.clear();
+            for (auto const &seq : rule.second) {
+                temp_precedencelist.push_back(seq);
+            }
+            long dest_edge_id = rule.second[0];
+            if (m_ruleTable.find(dest_edge_id) != m_ruleTable.end()) {
+                m_ruleTable[dest_edge_id].push_back(Rule(rule.first,
+                    temp_precedencelist));
+            } else {
+                std::vector<Rule> temprules;
+                temprules.clear();
+                temprules.push_back(Rule(rule.first, temp_precedencelist));
+                m_ruleTable.insert(std::make_pair(dest_edge_id, temprules));
+            }
+        }
+        m_bIsturnRestrictOn = true;
     }
     parent = new PARENT_PATH[edge_count + 1];
     m_dCost = new CostHolder[edge_count + 1];
     m_vecPath.clear();
     size_t i;
     size_t total_vertices = vertices.size();
-    for(i = 0; i < total_vertices - 1; i++)
-    {
-    int ret = my_dijkstra(vertices[i], vertices[i + 1], edge_count, err_msg);
-    if(ret < 0)
-    {
-        deleteall();
-        return -1;
-    }
+    for (i = 0; i < total_vertices - 1; i++) {
+        int ret = my_dijkstra(vertices[i], vertices[i + 1], edge_count,
+                err_msg);
+        if (ret < 0) {
+            deleteall();
+            return -1;
+        }
     }
 
-    *path = (path_element_t *) malloc(sizeof(path_element_t) * (m_vecPath.size() + 1));
+    *path = (path_element_tt *) malloc(sizeof(path_element_tt) *
+    (m_vecPath.size() + 1));
     *path_count = static_cast<int>(m_vecPath.size());
 
-    for(int i = 0; i < *path_count; i++)
-    {
-    (*path)[i].vertex_id = m_vecPath[i].vertex_id;
-    (*path)[i].edge_id = m_vecPath[i].edge_id;
-    (*path)[i].cost = m_vecPath[i].cost;
+    for (size_t  i = 0; i < *path_count; i++) {
+        (*path)[i].vertex_id = m_vecPath[i].vertex_id;
+        (*path)[i].edge_id = m_vecPath[i].edge_id;
+        (*path)[i].cost = m_vecPath[i].cost;
     }
     deleteall();
     return 0;
@@ -267,184 +267,159 @@ int GraphDefinition::multi_dijkstra(
 
 
 // -------------------------------------------------------------------------
-int GraphDefinition::my_dijkstra(long start_vertex, long end_vertex, unsigned int edge_count, char **err_msg)
-{
-    if(!m_bIsGraphConstructed)
-    {
-    *err_msg = (char *)"Graph not Ready!";
-    return -1;
+int GraphDefinition::my_dijkstra(long start_vertex, long end_vertex,
+    size_t edge_count, char **err_msg) {
+    if (!m_bIsGraphConstructed) {
+        *err_msg = (char *)"Graph not Ready!";
+        return -1;
     }
     unsigned int i;
-    for(i = 0; i <= edge_count; i++)
-    {
-    m_dCost[i].startCost = 1e15;
-    m_dCost[i].endCost = 1e15;
+    for (i = 0; i <= edge_count; i++) {
+        m_dCost[i].startCost = 1e15;
+        m_dCost[i].endCost = 1e15;
     }
 
-    if(m_mapNodeId2Edge.find(start_vertex) == m_mapNodeId2Edge.end())
-    {
-    *err_msg = (char *)"Source Not Found";
-    deleteall();
-    return -1;
+    if (m_mapNodeId2Edge.find(start_vertex) == m_mapNodeId2Edge.end()) {
+        *err_msg = (char *)"Source Not Found";
+        deleteall();
+        return -1;
     }
 
-    if(m_mapNodeId2Edge.find(end_vertex) == m_mapNodeId2Edge.end())
-    {
-    *err_msg = (char *)"Destination Not Found";
-    deleteall();
-    return -1;
+    if (m_mapNodeId2Edge.find(end_vertex) == m_mapNodeId2Edge.end()) {
+        *err_msg = (char *)"Destination Not Found";
+        deleteall();
+        return -1;
     }
 
     std::priority_queue<PDP, std::vector<PDP>, std::greater<PDP> > que;
     LongVector vecsource = m_mapNodeId2Edge[start_vertex];
     GraphEdgeInfo* cur_edge = NULL;
 
-    for(const auto &source : vecsource)
-    {
-    cur_edge = m_vecEdgeVector[source];
-    if(cur_edge->m_lStartNode == start_vertex)
-    {
-        if(cur_edge->m_dCost >= 0.0)
-        {
-        m_dCost[cur_edge->m_lEdgeIndex].endCost= cur_edge->m_dCost;
-        parent[cur_edge->m_lEdgeIndex].v_pos[0] = -1;
-        parent[cur_edge->m_lEdgeIndex].ed_ind[0] = -1;
-        que.push(std::make_pair(cur_edge->m_dCost, std::make_pair(cur_edge->m_lEdgeIndex, true)));
-        }
-    }
-    else
-    {
-        if(cur_edge->m_dReverseCost >= 0.0)
-        {
-        m_dCost[cur_edge->m_lEdgeIndex].startCost = cur_edge->m_dReverseCost;
-        parent[cur_edge->m_lEdgeIndex].v_pos[1] = -1;
-        parent[cur_edge->m_lEdgeIndex].ed_ind[1] = -1;
-        que.push(std::make_pair(cur_edge->m_dReverseCost, std::make_pair(cur_edge->m_lEdgeIndex, false)));
+    for (const auto &source : vecsource) {
+        cur_edge = m_vecEdgeVector[source];
+        if (cur_edge->m_lStartNode == start_vertex) {
+            if (cur_edge->m_dCost >= 0.0) {
+                m_dCost[cur_edge->m_lEdgeIndex].endCost = cur_edge->m_dCost;
+                parent[cur_edge->m_lEdgeIndex].v_pos[0] = -1;
+                parent[cur_edge->m_lEdgeIndex].ed_ind[0] = -1;
+                que.push(std::make_pair(cur_edge->m_dCost,
+                    std::make_pair(cur_edge->m_lEdgeIndex, true)));
+                }
+            } else {
+                if (cur_edge->m_dReverseCost >= 0.0) {
+                    m_dCost[cur_edge->m_lEdgeIndex].startCost =
+                    cur_edge->m_dReverseCost;
+                    parent[cur_edge->m_lEdgeIndex].v_pos[1] = -1;
+                    parent[cur_edge->m_lEdgeIndex].ed_ind[1] = -1;
+                    que.push(std::make_pair(cur_edge->m_dReverseCost,
+                        std::make_pair(cur_edge->m_lEdgeIndex, false)));
+                    }
+            }
         }
-    }
-    }
-    
-    long cur_node = -1;
 
-    while(!que.empty())
-    {
-    PDP cur_pos = que.top();
-    que.pop();
-    int cured_index = cur_pos.second.first;
-    cur_edge = m_vecEdgeVector[cured_index];
-
-    if(cur_pos.second.second)      // explore edges connected to end node
-    {
-        cur_node = cur_edge->m_lEndNode;
-        if(cur_edge->m_dCost < 0.0)
-        continue;
-        if(cur_node == end_vertex)
-        break;
-        explore(cur_node, *cur_edge, true, cur_edge->m_vecEndConnedtedEdge, que);
-    }
-    else        // explore edges connected to start node
-    {
-        cur_node = cur_edge->m_lStartNode;
-        if(cur_edge->m_dReverseCost < 0.0)
-        continue;
-        if(cur_node == end_vertex)
-        break;
-        explore(cur_node, *cur_edge, false, cur_edge->m_vecStartConnectedEdge, que);
-    }
-    }
-    if(cur_node != end_vertex)
-    {
-    *err_msg = (char *)"Path Not Found";
-    deleteall();
-    return -1;
-    }
-    else
-    {
-    if(cur_node == cur_edge->m_lStartNode)
-    {
-        construct_path(cur_edge->m_lEdgeIndex, 1);
-    }
-    else
-    {
-        construct_path(cur_edge->m_lEdgeIndex, 0);
-    }
-    path_element_t pelement;
-    pelement.vertex_id = end_vertex;
-    pelement.edge_id = -1;
-    pelement.cost = 0.0;
-    m_vecPath.push_back(pelement);
-    }
+        long cur_node = -1;
+
+        while (!que.empty()) {
+            PDP cur_pos = que.top();
+            que.pop();
+            long cured_index = cur_pos.second.first;
+            cur_edge = m_vecEdgeVector[cured_index];
+
+            if (cur_pos.second.second) {  // explore edges connected to end node
+                cur_node = cur_edge->m_lEndNode;
+                if (cur_edge->m_dCost < 0.0)
+                    continue;
+                if (cur_node == end_vertex)
+                    break;
+                explore(cur_node, *cur_edge, true,
+                    cur_edge->m_vecEndConnedtedEdge, que);
+            } else {  // explore edges connected to start node
+                cur_node = cur_edge->m_lStartNode;
+                if (cur_edge->m_dReverseCost < 0.0)
+                    continue;
+                if (cur_node == end_vertex)
+                    break;
+                explore(cur_node, *cur_edge, false,
+                    cur_edge->m_vecStartConnectedEdge, que);
+            }
+        }
+        if (cur_node != end_vertex) {
+            *err_msg = (char *)"Path Not Found";
+            deleteall();
+            return -1;
+        } else {
+            if (cur_node == cur_edge->m_lStartNode) {
+                construct_path(cur_edge->m_lEdgeIndex, 1);
+            } else {
+                construct_path(cur_edge->m_lEdgeIndex, 0);
+            }
+            path_element_tt pelement;
+            pelement.vertex_id = end_vertex;
+            pelement.edge_id = -1;
+            pelement.cost = 0.0;
+            m_vecPath.push_back(pelement);
+        }
     return 0;
 }
 
 
 // -------------------------------------------------------------------------
-int GraphDefinition::my_dijkstra(edge_t *edges, unsigned int edge_count, int start_edge_id, double start_part, int end_edge_id, double end_part, bool directed, bool has_reverse_cost,
-                path_element_t **path, int *path_count, char **err_msg, std::vector<PDVI> &ruleList)
-{
-    if(!m_bIsGraphConstructed)
-    {
-        init();
-        construct_graph(edges, edge_count, has_reverse_cost, directed);
-        m_bIsGraphConstructed = true;
-    }
-    GraphEdgeInfo* start_edge_info = m_vecEdgeVector[m_mapEdgeId2Index[start_edge_id]];
-    edge_t start_edge;
-    long start_vertex, end_vertex;
-    m_dStartpart = start_part;
-    m_dEndPart = end_part;
-    m_lStartEdgeId = start_edge_id;
-    m_lEndEdgeId = end_edge_id;
-
-    if(start_part == 0.0)
-    {
-        start_vertex = start_edge_info->m_lStartNode;
-    }
-    else if(start_part == 1.0)
-    {
-        start_vertex = start_edge_info->m_lEndNode;
-    }
-    else
-    {
-        isStartVirtual = true;
+int GraphDefinition::my_dijkstra(edge_t *edges, size_t edge_count,
+    long start_edge_id, double start_part, long end_edge_id, double end_part,
+    bool directed, bool has_reverse_cost, path_element_tt **path,
+    size_t *path_count, char **err_msg, std::vector<PDVI> &ruleList) {
+    if (!m_bIsGraphConstructed) {
+            init();
+            construct_graph(edges, edge_count, has_reverse_cost, directed);
+            m_bIsGraphConstructed = true;
+        }
+        GraphEdgeInfo* start_edge_info =
+        m_vecEdgeVector[m_mapEdgeId2Index[start_edge_id]];
+        edge_t start_edge;
+        long start_vertex, end_vertex;
+        m_dStartpart = start_part;
+        m_dEndPart = end_part;
         m_lStartEdgeId = start_edge_id;
-        start_vertex = max_node_id + 1;
-        max_node_id++;
-        start_edge.id = max_edge_id + 1;
-        max_edge_id++;
-        start_edge.source = start_vertex;
-        start_edge.reverse_cost = -1.0;
-        if(start_edge_info->m_dCost >= 0.0)
-        {
-            start_edge.target = start_edge_info->m_lEndNode;
-            start_edge.cost = (1.0 - start_part) * start_edge_info->m_dCost;
-            addEdge(start_edge);
-            edge_count++;
-        }
-        if(start_edge_info->m_dReverseCost >= 0.0)
-        {
+        m_lEndEdgeId = end_edge_id;
+
+        if (start_part == 0.0) {
+            start_vertex = start_edge_info->m_lStartNode;
+        } else if (start_part == 1.0) {
+            start_vertex = start_edge_info->m_lEndNode;
+        } else {
+            isStartVirtual = true;
+            m_lStartEdgeId = start_edge_id;
+            start_vertex = max_node_id + 1;
+            max_node_id++;
             start_edge.id = max_edge_id + 1;
             max_edge_id++;
-            start_edge.target = start_edge_info->m_lStartNode;
-            start_edge.cost = start_part * start_edge_info->m_dReverseCost;
-            addEdge(start_edge);
-            edge_count++;
+            start_edge.source = start_vertex;
+            start_edge.reverse_cost = -1.0;
+            if (start_edge_info->m_dCost >= 0.0) {
+                start_edge.target = start_edge_info->m_lEndNode;
+                start_edge.cost = (1.0 - start_part) * start_edge_info->m_dCost;
+                addEdge(start_edge);
+                edge_count++;
+            }
+            if (start_edge_info->m_dReverseCost >= 0.0) {
+                start_edge.id = max_edge_id + 1;
+                max_edge_id++;
+                start_edge.target = start_edge_info->m_lStartNode;
+                start_edge.cost = start_part * start_edge_info->m_dReverseCost;
+                addEdge(start_edge);
+                edge_count++;
+            }
         }
-    }
 
-    GraphEdgeInfo* end_edge_info = m_vecEdgeVector[m_mapEdgeId2Index[end_edge_id]];
+    GraphEdgeInfo* end_edge_info =
+    m_vecEdgeVector[m_mapEdgeId2Index[end_edge_id]];
     edge_t end_edge;
-    
-    if(end_part == 0.0)
-    {
+
+    if (end_part == 0.0) {
         end_vertex = end_edge_info->m_lStartNode;
-    }
-    else if(end_part == 1.0)
-    {
+    } else if (end_part == 1.0) {
         end_vertex = end_edge_info->m_lEndNode;
-    }
-    else
-    {
+    } else {
         isEndVirtual = true;
         m_lEndEdgeId = end_edge_id;
         end_vertex = max_node_id + 1;
@@ -453,15 +428,13 @@ int GraphDefinition::my_dijkstra(edge_t *edges, unsigned int edge_count, int sta
         max_edge_id++;
         end_edge.target = end_vertex;
         end_edge.reverse_cost = -1.0;
-        if(end_edge_info->m_dCost >= 0.0)
-        {
+        if (end_edge_info->m_dCost >= 0.0) {
             end_edge.source = end_edge_info->m_lStartNode;
             end_edge.cost = end_part * end_edge_info->m_dCost;
             addEdge(end_edge);
             edge_count++;
         }
-        if(end_edge_info->m_dReverseCost >= 0.0)
-        {
+        if (end_edge_info->m_dReverseCost >= 0.0) {
             end_edge.source = end_edge_info->m_lEndNode;
             end_edge.id = max_edge_id + 1;
             end_edge.cost = (1.0 - end_part) * end_edge_info->m_dReverseCost;
@@ -470,102 +443,94 @@ int GraphDefinition::my_dijkstra(edge_t *edges, unsigned int edge_count, int sta
         }
     }
 
-    return(my_dijkstra(edges, edge_count, start_vertex, end_vertex, directed, has_reverse_cost, path, path_count, err_msg, ruleList));
+    return(my_dijkstra(edges, edge_count, start_vertex, end_vertex, directed,
+        has_reverse_cost, path, path_count, err_msg, ruleList));
 }
 
 
 // -------------------------------------------------------------------------
-int GraphDefinition:: my_dijkstra(edge_t *edges, unsigned int edge_count, long start_vertex, long end_vertex, bool directed, bool has_reverse_cost,
-                                  path_element_t **path, int *path_count, char **err_msg, std::vector<PDVI> &ruleList)
-{
+int GraphDefinition:: my_dijkstra(edge_t *edges, size_t edge_count,
+    long start_vertex, long end_vertex, bool directed, bool has_reverse_cost,
+    path_element_tt **path, size_t *path_count, char **err_msg,
+    std::vector<PDVI> &ruleList) {
     m_ruleTable.clear();
     LongVector vecsource;
-    for (const auto &rule : ruleList)
-    {
+    for (const auto &rule : ruleList) {
         size_t j;
         size_t seq_cnt = rule.second.size();
-	std::vector<long> temp_precedencelist;
-	temp_precedencelist.clear();
-        for(j = 1; j < seq_cnt; j++)
-        {
+        std::vector<long> temp_precedencelist;
+        temp_precedencelist.clear();
+        for (j = 1; j < seq_cnt; j++) {
             temp_precedencelist.push_back(rule.second[j]);
         }
-        int dest_edge_id = rule.second[0];
-        if(m_ruleTable.find(dest_edge_id) != m_ruleTable.end())
-        {
-            m_ruleTable[dest_edge_id].push_back(Rule(rule.first, temp_precedencelist));
-        }
-        else
-        {
+        long dest_edge_id = rule.second[0];
+        if (m_ruleTable.find(dest_edge_id) != m_ruleTable.end()) {
+            m_ruleTable[dest_edge_id].push_back(Rule(rule.first,
+                temp_precedencelist));
+        } else {
             std::vector<Rule> temprules;
             temprules.clear();
             temprules.push_back(Rule(rule.first, temp_precedencelist));
             m_ruleTable.insert(std::make_pair(dest_edge_id, temprules));
         }
-    
-        if(isStartVirtual)
-        {
-            if(seq_cnt == 2 && rule.second[1] == m_lStartEdgeId)
-            {
+
+        if (isStartVirtual) {
+            if (seq_cnt == 2 && rule.second[1] == m_lStartEdgeId) {
                 vecsource = m_mapNodeId2Edge[start_vertex];
-		for(const auto &source : vecsource)
-                {
+                for (const auto &source : vecsource) {
                     temp_precedencelist.clear();
-                    temp_precedencelist.push_back(m_vecEdgeVector[source]->m_lEdgeID);
-                    m_ruleTable[dest_edge_id].push_back(Rule(rule.first, temp_precedencelist));
+                    temp_precedencelist.push_back(
+                        m_vecEdgeVector[source]->m_lEdgeID);
+                    m_ruleTable[dest_edge_id].push_back(Rule(rule.first,
+                        temp_precedencelist));
                 }
             }
         }
     }
-    if(isEndVirtual)
-    {
-        if(m_ruleTable.find(m_lEndEdgeId) != m_ruleTable.end())
-        {
+    if (isEndVirtual) {
+        if (m_ruleTable.find(m_lEndEdgeId) != m_ruleTable.end()) {
             std::vector<Rule> tmpRules = m_ruleTable[m_lEndEdgeId];
             vecsource = m_mapNodeId2Edge[end_vertex];
-	    for(const auto &source : vecsource)
-            {
-                m_ruleTable.insert(std::make_pair(m_vecEdgeVector[source]->m_lEdgeID, tmpRules));
+            for (const auto &source : vecsource) {
+                m_ruleTable.insert(std::make_pair(
+                    m_vecEdgeVector[source]->m_lEdgeID, tmpRules));
             }
         }
     }
     m_bIsturnRestrictOn = true;
-    return(my_dijkstra(edges, edge_count, start_vertex, end_vertex, directed, has_reverse_cost, path, path_count, err_msg));
+    return(my_dijkstra(edges, edge_count, start_vertex, end_vertex, directed,
+        has_reverse_cost, path, path_count, err_msg));
 }
 
 
 // -------------------------------------------------------------------------
-int GraphDefinition:: my_dijkstra(edge_t *edges, unsigned int edge_count, long start_vertex, long end_vertex, bool directed, bool has_reverse_cost,
-                path_element_t **path, int *path_count, char **err_msg)
-{
-    if(!m_bIsGraphConstructed)
-    {
+int GraphDefinition:: my_dijkstra(edge_t *edges, size_t edge_count,
+    long start_vertex, long end_vertex, bool directed, bool has_reverse_cost,
+    path_element_tt **path, size_t *path_count, char **err_msg) {
+    if (!m_bIsGraphConstructed) {
         init();
         construct_graph(edges, edge_count, has_reverse_cost, directed);
         m_bIsGraphConstructed = true;
     }
-    
+
     std::priority_queue<PDP, std::vector<PDP>, std::greater<PDP> > que;
     parent = new PARENT_PATH[edge_count + 1];
     m_dCost = new CostHolder[edge_count + 1];
     m_vecPath.clear();
 
     unsigned int i;
-    for(i = 0; i <= edge_count; i++)
-    {
+    for (i = 0; i <= edge_count; i++) {
         m_dCost[i].startCost = 1e15;
         m_dCost[i].endCost = 1e15;
     }
-    
-    if(m_mapNodeId2Edge.find(start_vertex) == m_mapNodeId2Edge.end())
-    {
+
+    if (m_mapNodeId2Edge.find(start_vertex) == m_mapNodeId2Edge.end()) {
         *err_msg = (char *)"Source Not Found";
         deleteall();
         return -1;
     }
 
-    if(m_mapNodeId2Edge.find(end_vertex) == m_mapNodeId2Edge.end())
-    {
+    if (m_mapNodeId2Edge.find(end_vertex) == m_mapNodeId2Edge.end()) {
         *err_msg = (char *)"Destination Not Found";
         deleteall();
         return -1;
@@ -574,114 +539,97 @@ int GraphDefinition:: my_dijkstra(edge_t *edges, unsigned int edge_count, long s
     LongVector vecsource = m_mapNodeId2Edge[start_vertex];
     GraphEdgeInfo* cur_edge = NULL;
 
-    for(const auto &source: vecsource)
-    {
+    for (const auto &source : vecsource) {
         cur_edge = m_vecEdgeVector[source];
-        if(cur_edge->m_lStartNode == start_vertex)
-        {
-            if(cur_edge->m_dCost >= 0.0)
-            {
-                m_dCost[cur_edge->m_lEdgeIndex].endCost= cur_edge->m_dCost;
+        if (cur_edge->m_lStartNode == start_vertex) {
+            if (cur_edge->m_dCost >= 0.0) {
+                m_dCost[cur_edge->m_lEdgeIndex].endCost = cur_edge->m_dCost;
                 parent[cur_edge->m_lEdgeIndex].v_pos[0] = -1;
                 parent[cur_edge->m_lEdgeIndex].ed_ind[0] = -1;
-                que.push(std::make_pair(cur_edge->m_dCost, std::make_pair(cur_edge->m_lEdgeIndex, true)));
+                que.push(std::make_pair(cur_edge->m_dCost,
+                    std::make_pair(cur_edge->m_lEdgeIndex, true)));
             }
-        }
-        else
-        {
-            if(cur_edge->m_dReverseCost >= 0.0)
-            {
-                m_dCost[cur_edge->m_lEdgeIndex].startCost = cur_edge->m_dReverseCost;
+        } else {
+            if (cur_edge->m_dReverseCost >= 0.0) {
+                m_dCost[cur_edge->m_lEdgeIndex].startCost =
+                cur_edge->m_dReverseCost;
                 parent[cur_edge->m_lEdgeIndex].v_pos[1] = -1;
                 parent[cur_edge->m_lEdgeIndex].ed_ind[1] = -1;
-                que.push(std::make_pair(cur_edge->m_dReverseCost, std::make_pair(cur_edge->m_lEdgeIndex, false)));
+                que.push(std::make_pair(cur_edge->m_dReverseCost,
+                    std::make_pair(cur_edge->m_lEdgeIndex, false)));
             }
         }
     }
     long cur_node = -1;
 
-    while(!que.empty())
-    {
+    while (!que.empty()) {
         PDP cur_pos = que.top();
         que.pop();
-        int cured_index = cur_pos.second.first;
+        long cured_index = cur_pos.second.first;
         cur_edge = m_vecEdgeVector[cured_index];
 
-        if(cur_pos.second.second)      // explore edges connected to end node
-        {
+        if (cur_pos.second.second) {  // explore edges connected to end node
             cur_node = cur_edge->m_lEndNode;
-            if(cur_edge->m_dCost < 0.0)
+            if (cur_edge->m_dCost < 0.0)
                 continue;
-            if(cur_node == end_vertex)
+            if (cur_node == end_vertex)
                 break;
-            explore(cur_node, *cur_edge, true, cur_edge->m_vecEndConnedtedEdge, que);
-        }
-        else        // explore edges connected to start node
-        {
+            explore(cur_node, *cur_edge, true, cur_edge->m_vecEndConnedtedEdge,
+                que);
+        } else {  // explore edges connected to start node
             cur_node = cur_edge->m_lStartNode;
-            if(cur_edge->m_dReverseCost < 0.0)
+            if (cur_edge->m_dReverseCost < 0.0)
                 continue;
-            if(cur_node == end_vertex)
+            if (cur_node == end_vertex)
                 break;
-            explore(cur_node, *cur_edge, false, cur_edge->m_vecStartConnectedEdge, que);
+            explore(cur_node, *cur_edge, false,
+                cur_edge->m_vecStartConnectedEdge, que);
         }
     }
-    if(cur_node != end_vertex)
-    {
-        if(m_lStartEdgeId == m_lEndEdgeId)
-        {
-            if(get_single_cost(1000.0, path, path_count))
-            {
+    if (cur_node != end_vertex) {
+        if (m_lStartEdgeId == m_lEndEdgeId) {
+            if (get_single_cost(1000.0, path, path_count)) {
                 return 0;
             }
         }
         *err_msg = (char *)"Path Not Found";
         deleteall();
         return -1;
-    }
-    else
-    {
+    } else {
         double total_cost;
-        if(cur_node == cur_edge->m_lStartNode)
-        {
+        if (cur_node == cur_edge->m_lStartNode) {
             total_cost = m_dCost[cur_edge->m_lEdgeIndex].startCost;
             construct_path(cur_edge->m_lEdgeIndex, 1);
-        }
-        else
-        {
+        } else {
             total_cost = m_dCost[cur_edge->m_lEdgeIndex].endCost;
             construct_path(cur_edge->m_lEdgeIndex, 0);
         }
-        path_element_t pelement;
+        path_element_tt pelement;
         pelement.vertex_id = end_vertex;
         pelement.edge_id = -1;
         pelement.cost = 0.0;
         m_vecPath.push_back(pelement);
 
-        if(m_lStartEdgeId == m_lEndEdgeId)
-        {
-            if(get_single_cost(total_cost, path, path_count))
-            {
+        if (m_lStartEdgeId == m_lEndEdgeId) {
+            if (get_single_cost(total_cost, path, path_count)) {
                 return 0;
             }
         }
-        
-        *path = (path_element_t *) malloc(sizeof(path_element_t) * (m_vecPath.size() + 1));
+
+        *path = (path_element_tt *) malloc(sizeof(path_element_tt) *
+        (m_vecPath.size() + 1));
         *path_count = static_cast<int>(m_vecPath.size());
 
-        for(int i = 0; i < *path_count; i++)
-        {
+        for (size_t i = 0; i < *path_count; i++) {
             (*path)[i].vertex_id = m_vecPath[i].vertex_id;
             (*path)[i].edge_id = m_vecPath[i].edge_id;
             (*path)[i].cost = m_vecPath[i].cost;
         }
-        if(isStartVirtual)
-        {
+        if (isStartVirtual) {
             (*path)[0].vertex_id = -1;
             (*path)[0].edge_id = m_lStartEdgeId;
         }
-        if(isEndVirtual)
-        {
+        if (isEndVirtual) {
             *path_count = *path_count - 1;
             (*path)[*path_count - 1].edge_id = m_lEndEdgeId;
         }
@@ -692,56 +640,50 @@ int GraphDefinition:: my_dijkstra(edge_t *edges, unsigned int edge_count, long s
 
 
 // -------------------------------------------------------------------------
-bool GraphDefinition::get_single_cost(double total_cost, path_element_t **path, int *path_count)
-{
-    GraphEdgeInfo* start_edge_info = m_vecEdgeVector[m_mapEdgeId2Index[m_lStartEdgeId]];
-    if(m_dEndPart >= m_dStartpart)
-    {
-        if(start_edge_info->m_dCost >= 0.0 && start_edge_info->m_dCost * (m_dEndPart - m_dStartpart) <= total_cost)
-        {
-            *path = (path_element_t *) malloc(sizeof(path_element_t) * (1));
+bool GraphDefinition::get_single_cost(double total_cost, path_element_tt **path,
+     size_t *path_count) {
+    GraphEdgeInfo* start_edge_info =
+    m_vecEdgeVector[m_mapEdgeId2Index[m_lStartEdgeId]];
+    if (m_dEndPart >= m_dStartpart) {
+        if (start_edge_info->m_dCost >= 0.0 && start_edge_info->m_dCost *
+            (m_dEndPart - m_dStartpart) <= total_cost) {
+            *path = (path_element_tt *) malloc(sizeof(path_element_tt) * (1));
             *path_count = 1;
             (*path)[0].vertex_id = -1;
             (*path)[0].edge_id = m_lStartEdgeId;
-            (*path)[0].cost = start_edge_info->m_dCost * (m_dEndPart - m_dStartpart);
+            (*path)[0].cost = start_edge_info->m_dCost *
+            (m_dEndPart - m_dStartpart);
 
             return true;
         }
-    }
-    else
-    {
-        if(start_edge_info->m_dReverseCost >= 0.0 && start_edge_info->m_dReverseCost * (m_dStartpart - m_dEndPart) <= total_cost)
-        {
-            *path = (path_element_t *) malloc(sizeof(path_element_t) * (1));
+    } else {
+        if (start_edge_info->m_dReverseCost >= 0.0 &&
+            start_edge_info->m_dReverseCost * (m_dStartpart - m_dEndPart) <=
+            total_cost) {
+            *path = (path_element_tt *) malloc(sizeof(path_element_tt) * (1));
             *path_count = 1;
             (*path)[0].vertex_id = -1;
             (*path)[0].edge_id = m_lStartEdgeId;
-            (*path)[0].cost = start_edge_info->m_dReverseCost * (m_dStartpart - m_dEndPart);
+            (*path)[0].cost = start_edge_info->m_dReverseCost *
+            (m_dStartpart - m_dEndPart);
 
             return true;
         }
     }
     return false;
-    
 }
 
 
 // -------------------------------------------------------------------------
-bool GraphDefinition::construct_graph(edge_t* edges, int edge_count, bool has_reverse_cost, bool directed)
-{
-    int i;
-    for(i = 0; i < edge_count; i++)
-    {
-        if(!has_reverse_cost)
-        {
-        if(directed)
-        {
-            edges[i].reverse_cost = -1.0;
-        }
-        else
-        {
-            edges[i].reverse_cost = edges[i].cost;
-        }
+bool GraphDefinition::construct_graph(edge_t* edges, size_t edge_count,
+    bool has_reverse_cost, bool directed) {
+    for (size_t i = 0; i < edge_count; i++) {
+        if (!has_reverse_cost) {
+            if (directed) {
+                edges[i].reverse_cost = -1.0;
+            } else {
+                edges[i].reverse_cost = edges[i].cost;
+            }
         }
         addEdge(edges[i]);
     }
@@ -751,117 +693,106 @@ bool GraphDefinition::construct_graph(edge_t* edges, int edge_count, bool has_re
 
 
 // -------------------------------------------------------------------------
-bool GraphDefinition::connectEdge(GraphEdgeInfo& firstEdge, GraphEdgeInfo& secondEdge, bool bIsStartNodeSame)
-{
-    if(bIsStartNodeSame)
-    {
-        if(firstEdge.m_dReverseCost >= 0.0)
-            firstEdge.m_vecStartConnectedEdge.push_back(secondEdge.m_lEdgeIndex);
-        if(firstEdge.m_lStartNode == secondEdge.m_lStartNode)
-        {
-            if(secondEdge.m_dReverseCost >= 0.0)
-                secondEdge.m_vecStartConnectedEdge.push_back(firstEdge.m_lEdgeIndex);
-        }
-        else
-        {
-            if(secondEdge.m_dCost >= 0.0)
-                secondEdge.m_vecEndConnedtedEdge.push_back(firstEdge.m_lEdgeIndex);
-        }
-    }
-    else
-    {
-        if(firstEdge.m_dCost >= 0.0)
+bool GraphDefinition::connectEdge(GraphEdgeInfo& firstEdge,
+    GraphEdgeInfo& secondEdge, bool bIsStartNodeSame) {
+    if (bIsStartNodeSame) {
+        if (firstEdge.m_dReverseCost >= 0.0)
+            firstEdge.m_vecStartConnectedEdge.push_back(
+                secondEdge.m_lEdgeIndex);
+        if (firstEdge.m_lStartNode == secondEdge.m_lStartNode) {
+            if (secondEdge.m_dReverseCost >= 0.0)
+                secondEdge.m_vecStartConnectedEdge.push_back(
+                    firstEdge.m_lEdgeIndex);
+        } else {
+            if (secondEdge.m_dCost >= 0.0)
+                secondEdge.m_vecEndConnedtedEdge.push_back(
+                    firstEdge.m_lEdgeIndex);
+        }
+    } else {
+        if (firstEdge.m_dCost >= 0.0)
             firstEdge.m_vecEndConnedtedEdge.push_back(secondEdge.m_lEdgeIndex);
-        if(firstEdge.m_lEndNode == secondEdge.m_lStartNode)
-        {
-            if(secondEdge.m_dReverseCost >= 0.0)
-                secondEdge.m_vecStartConnectedEdge.push_back(firstEdge.m_lEdgeIndex);
-        }
-        else
-        {
-            if(secondEdge.m_dCost >= 0.0)
-                secondEdge.m_vecEndConnedtedEdge.push_back(firstEdge.m_lEdgeIndex);
+        if (firstEdge.m_lEndNode == secondEdge.m_lStartNode) {
+            if (secondEdge.m_dReverseCost >= 0.0)
+                secondEdge.m_vecStartConnectedEdge.push_back(
+                    firstEdge.m_lEdgeIndex);
+        } else {
+            if (secondEdge.m_dCost >= 0.0)
+                secondEdge.m_vecEndConnedtedEdge.push_back(
+                    firstEdge.m_lEdgeIndex);
         }
     }
-
     return true;
 }
 
 
 // -------------------------------------------------------------------------
-bool GraphDefinition::addEdge(edge_t edgeIn)
-{
+bool GraphDefinition::addEdge(edge_t edgeIn) {
     // long lTest;
     Long2LongMap::iterator itMap = m_mapEdgeId2Index.find(edgeIn.id);
-    if(itMap != m_mapEdgeId2Index.end())    
+    if (itMap != m_mapEdgeId2Index.end())
         return false;
 
-    
+
     GraphEdgeInfo* newEdge = new GraphEdgeInfo();
     newEdge->m_vecStartConnectedEdge.clear();
     newEdge->m_vecEndConnedtedEdge.clear();
     newEdge->m_vecRestrictedEdge.clear();
     newEdge->m_lEdgeID = edgeIn.id;
-    newEdge->m_lEdgeIndex = m_vecEdgeVector.size();    
+    newEdge->m_lEdgeIndex = m_vecEdgeVector.size();
     newEdge->m_lStartNode = edgeIn.source;
     newEdge->m_lEndNode = edgeIn.target;
     newEdge->m_dCost = edgeIn.cost;
     newEdge->m_dReverseCost = edgeIn.reverse_cost;
 
-    if(edgeIn.id > max_edge_id)
-    {
+    if (edgeIn.id > max_edge_id) {
         max_edge_id = edgeIn.id;
     }
 
-    if(newEdge->m_lStartNode > max_node_id)
-    {
+    if (newEdge->m_lStartNode > max_node_id) {
         max_node_id = newEdge->m_lStartNode;
     }
-    if(newEdge->m_lEndNode > max_node_id)
-    {
+    if (newEdge->m_lEndNode > max_node_id) {
         max_node_id = newEdge->m_lEndNode;
     }
 
-    //Searching the start node for connectivity
-    Long2LongVectorMap::iterator itNodeMap = m_mapNodeId2Edge.find(edgeIn.source);
-    if(itNodeMap != m_mapNodeId2Edge.end())
-    {
-        //Connect current edge with existing edge with start node
-        //connectEdge(
+    // Searching the start node for connectivity
+    Long2LongVectorMap::iterator itNodeMap = m_mapNodeId2Edge.find(
+        edgeIn.source);
+    if (itNodeMap != m_mapNodeId2Edge.end()) {
+        // Connect current edge with existing edge with start node
+        // connectEdge(
         long lEdgeCount = itNodeMap->second.size();
         long lEdgeIndex;
-        for(lEdgeIndex = 0; lEdgeIndex < lEdgeCount; lEdgeIndex++)
-        {
-            long lEdge = itNodeMap->second.at(lEdgeIndex);    
+        for (lEdgeIndex = 0; lEdgeIndex < lEdgeCount; lEdgeIndex++) {
+            long lEdge = itNodeMap->second.at(lEdgeIndex);
             connectEdge(*newEdge, *m_vecEdgeVector[lEdge], true);
         }
     }
 
 
-    //Searching the end node for connectivity
+    // Searching the end node for connectivity
     itNodeMap = m_mapNodeId2Edge.find(edgeIn.target);
-    if(itNodeMap != m_mapNodeId2Edge.end())
-    {
-        //Connect current edge with existing edge with end node
-        //connectEdge(
+    if (itNodeMap != m_mapNodeId2Edge.end()) {
+        // Connect current edge with existing edge with end node
+        // connectEdge(
         long lEdgeCount = itNodeMap->second.size();
         long lEdgeIndex;
-        for(lEdgeIndex = 0; lEdgeIndex < lEdgeCount; lEdgeIndex++)
-        {
-            long lEdge = itNodeMap->second.at(lEdgeIndex);    
+        for (lEdgeIndex = 0; lEdgeIndex < lEdgeCount; lEdgeIndex++) {
+            long lEdge = itNodeMap->second.at(lEdgeIndex);
             connectEdge(*newEdge, *m_vecEdgeVector[lEdge], false);
         }
     }
 
 
 
-    //Add this node and edge into the data structure
+    // Add this node and edge into the data structure
     m_mapNodeId2Edge[edgeIn.source].push_back(newEdge->m_lEdgeIndex);
     m_mapNodeId2Edge[edgeIn.target].push_back(newEdge->m_lEdgeIndex);
 
 
-    //Adding edge to the list
-    m_mapEdgeId2Index.insert(std::make_pair(newEdge->m_lEdgeID, m_vecEdgeVector.size()));
+    // Adding edge to the list
+    m_mapEdgeId2Index.insert(std::make_pair(newEdge->m_lEdgeID,
+        m_vecEdgeVector.size()));
     m_vecEdgeVector.push_back(newEdge);
 
     //
diff --git a/src/trsp/src/GraphDefinition.h b/src/trsp/src/GraphDefinition.h
index 41f35a9..a0578b3 100644
--- a/src/trsp/src/GraphDefinition.h
+++ b/src/trsp/src/GraphDefinition.h
@@ -1,23 +1,26 @@
-#ifndef GRAPHDEFINITION_H
-#define GRAPHDEFINITION_H
+#ifndef SRC_TRSP_SRC_GRAPHDEFINITION_H_
+#define SRC_TRSP_SRC_GRAPHDEFINITION_H_
+
+#include <stdlib.h>
 
 #include <vector>
 #include <map>
 #include <queue>
 #include <string>
-#include <stdlib.h>
 #include <iostream>
+#include <utility>
 #include <functional>
 
+
 #include "trsp.h"
 
-//using namespace std;
+// using namespace std;
 
 typedef std::vector<long> LongVector;
 typedef std::vector<LongVector> VectorOfLongVector;
-typedef std::pair<int, bool> PIB;
+typedef std::pair<long, bool> PIB;
 typedef std::pair<double, PIB> PDP;
-typedef std::pair<double, std::vector<int> > PDVI;
+typedef std::pair<double, std::vector<long> > PDVI;
 
 /*
 typedef struct edge 
@@ -34,21 +37,21 @@ typedef struct path_element
     int vertex_id;
     int edge_id;
     double cost;
-}path_element_t;
+}path_element_tt;
 */
 
-typedef struct{
+typedef struct {
     long ed_ind[2];
-    int v_pos[2];
+    long v_pos[2];
 } PARENT_PATH;
 
-typedef struct Rule{
+typedef struct Rule {
     double cost;
     std::vector<long> precedencelist;
     Rule(double c, std::vector<long> p) : cost(c), precedencelist(p) { }
 }Rule;
 
-typedef struct{
+typedef struct {
     double startCost, endCost;
 } CostHolder;
 
@@ -56,9 +59,8 @@ typedef std::map<long, std::vector<Rule> > RuleTable;
 
 
 
-class GraphEdgeInfo
-{
-public:
+class GraphEdgeInfo {
+ public:
     long m_lEdgeID;
     long m_lEdgeIndex;
     short m_sDirection;
@@ -66,7 +68,7 @@ public:
     double m_dReverseCost;
     LongVector m_vecStartConnectedEdge;
     LongVector m_vecEndConnedtedEdge;
-    //LongVector m_vecConnectedNode;
+    // LongVector m_vecConnectedNode;
     bool m_bIsLeadingRestrictedEdge;
     VectorOfLongVector m_vecRestrictedEdge;
 
@@ -78,77 +80,81 @@ public:
 
 
 typedef std::vector<GraphEdgeInfo*> GraphEdgeVector;
-typedef std::map<long,LongVector> Long2LongVectorMap;
-typedef std::map<long,long> Long2LongMap;
+typedef std::map<long, LongVector> Long2LongVectorMap;
+typedef std::map<long, long> Long2LongMap;
 
 
 
 
-class GraphDefinition
-{
-public:
+class GraphDefinition {
+ public:
     GraphDefinition(void);
     ~GraphDefinition(void);
 
     int my_dijkstra(long start_vertex, long end_vertex,
-                    unsigned int edge_count, char** err_msg);
+                    size_t edge_count, char** err_msg);
 
-    int my_dijkstra(edge_t *edges, unsigned int edge_count,
+    int my_dijkstra(edge_t *edges, size_t edge_count,
                     long start_vertex, long end_vertex,
                     bool directed, bool has_reverse_cost,
-                    path_element_t **path, int *path_count,
+                    path_element_tt **path, size_t *path_count,
                     char **err_msg);
 
-    int my_dijkstra(edge_t *edges, unsigned int edge_count,
+    int my_dijkstra(edge_t *edges, size_t edge_count,
                     long start_vertex, long end_vertex,
                     bool directed, bool has_reverse_cost,
-                    path_element_t **path, int *path_count,
+                    path_element_tt **path, size_t *path_count,
                     char **err_msg,
                     std::vector<PDVI> &ruleList);
 
-    int my_dijkstra(edge_t *edges, unsigned int edge_count,
-                    int start_edge, double start_part,
-                    int end_edge, double end_part,
+    int my_dijkstra(edge_t *edges, size_t edge_count,
+                    long start_edge, double start_part,
+                    long end_edge, double end_part,
                     bool directed, bool has_reverse_cost,
-                    path_element_t **path, int *path_count,
+                    path_element_tt **path, size_t *path_count,
                     char **err_msg,
                     std::vector<PDVI> &ruleList);
 
-    int multi_dijkstra(edge_t *edges, unsigned int edge_count,
+    int multi_dijkstra(edge_t *edges, size_t edge_count,
                        std::vector<int> vertices,
                        bool directed, bool has_reverse_cost,
-                       path_element_t **path, int *path_count,
+                       path_element_tt **path, size_t *path_count,
                        char **err_msg,
                        std::vector<PDVI> &ruleList);
 
-    bool construct_graph(edge_t *edges, int edge_count,
+    bool construct_graph(edge_t *edges, size_t edge_count,
                          bool has_reverse_cost, bool directed);
 
 
-private:
-    double construct_path(long ed_id, int v_pos);
-    void explore(long cur_node, GraphEdgeInfo& cur_edge, bool isStart, LongVector &vecIndex, std::priority_queue<PDP, std::vector<PDP>, std::greater<PDP> > &que);
-    double getRestrictionCost(long cur_node, GraphEdgeInfo& new_edge, bool isStart);
+ private:
+    double construct_path(long ed_id, long v_pos);
+    void explore(long cur_node, GraphEdgeInfo& cur_edge, bool isStart,
+                 LongVector &vecIndex, std::priority_queue<PDP,
+                 std::vector<PDP>, std::greater<PDP> > &que);
+    double getRestrictionCost(long cur_node, GraphEdgeInfo& new_edge,
+                              bool isStart);
     bool addEdge(edge edgeIn);
-    bool connectEdge(GraphEdgeInfo& firstEdge, GraphEdgeInfo& secondEdge, bool bIsStartNodeSame);
-    bool get_single_cost(double total_cost, path_element_t **path, int *path_count);
+    bool connectEdge(GraphEdgeInfo& firstEdge, GraphEdgeInfo& secondEdge,
+                     bool bIsStartNodeSame);
+    bool get_single_cost(double total_cost, path_element_tt **path,
+                         size_t *path_count);
     void init();
     void deleteall();
 
-private:
+ private:
     GraphEdgeVector m_vecEdgeVector;
     Long2LongMap m_mapEdgeId2Index;
     Long2LongVectorMap m_mapNodeId2Edge;
     long max_node_id;
-    int max_edge_id;
-    int m_lStartEdgeId;
-    int m_lEndEdgeId;
+    long max_edge_id;
+    long m_lStartEdgeId;
+    long m_lEndEdgeId;
     double m_dStartpart;
     double m_dEndPart;
     bool isStartVirtual;
     bool isEndVirtual;
-    
-    std::vector <path_element_t> m_vecPath;
+
+    std::vector <path_element_tt> m_vecPath;
     PARENT_PATH *parent;
     CostHolder *m_dCost;
     RuleTable m_ruleTable;
@@ -156,4 +162,4 @@ private:
     bool m_bIsGraphConstructed;
 };
 
-#endif
+#endif  // SRC_TRSP_SRC_GRAPHDEFINITION_H_
diff --git a/src/trsp/src/trsp.c b/src/trsp/src/trsp.c
index 21e0bf1..f475144 100644
--- a/src/trsp/src/trsp.c
+++ b/src/trsp/src/trsp.c
@@ -1,36 +1,74 @@
+/*PGR-GNU*****************************************************************
+
+File: trsp.c
+
+Generated with Template by:
+Copyright (c) 2013 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+
+#include "c_common/postgres_connection.h"
+#include "catalog/pg_type.h"
+#include "c_common/debug_macro.h"
+
+
+#if 0
+#include "utils/array.h"
 #include "postgres.h"
 #include "executor/spi.h"
 #include "funcapi.h"
-#include "catalog/pg_type.h"
 #if PGSQL_VERSION > 92
 #include "access/htup_details.h"
 #endif
 
 #include "fmgr.h"
+#endif
+
 #include "trsp.h"
 
 PGDLLEXPORT Datum turn_restrict_shortest_path_vertex(PG_FUNCTION_ARGS);
 PGDLLEXPORT Datum turn_restrict_shortest_path_edge(PG_FUNCTION_ARGS);
 
+#if 0
 #undef DEBUG
-//#define DEBUG 1
+// #define DEBUG 1
 
 #ifdef DEBUG
 #define DBG(format, arg...)                     \
     elog(NOTICE, format , ## arg)
 #else
-#define DBG(format,...) do { ; } while (0)
+#define DBG(format, ...) do { ; } while (0)
+#endif
 #endif
 
+#if 0
 // The number of tuples to fetch from the SPI cursor at each iteration
 #define TUPLIMIT 1000
 
-//#ifdef PG_MODULE_MAGIC
-//PG_MODULE_MAGIC;
-//#endif
+// #ifdef PG_MODULE_MAGIC
+// PG_MODULE_MAGIC;
+// #endif
+#endif
 
-typedef struct edge_columns
-{
+typedef struct edge_columns {
   int id;
   int source;
   int target;
@@ -38,8 +76,7 @@ typedef struct edge_columns
   int reverse_cost;
 } edge_columns_t;
 
-typedef struct restrict_columns
-{
+typedef struct restrict_columns {
   int target_id;
   int via_path;
   int to_cost;
@@ -47,26 +84,25 @@ typedef struct restrict_columns
 
 
 
+#if 0
 static char *
-text2char(text *in)
-{
+text2char(text *in) {
   char *out = palloc(VARSIZE(in));
 
   memcpy(out, VARDATA(in), VARSIZE(in) - VARHDRSZ);
   out[VARSIZE(in) - VARHDRSZ] = '\0';
   return out;
 }
+#endif
 
 static int
-finish(int code, int ret)
-{
-  DBG("In finish, trying to disconnect from spi %d",ret);
+finish(int code, int ret) {
+  PGR_DBG("In finish, trying to disconnect from spi %d", ret);
   code = SPI_finish();
-  if (code  != SPI_OK_FINISH )
-  {
-    elog(ERROR,"couldn't disconnect from SPI");
-    return -1 ;
-  }			
+  if (code != SPI_OK_FINISH) {
+    elog(ERROR, "couldn't disconnect from SPI");
+    return -1;
+  }
   return ret;
 }
 
@@ -76,11 +112,10 @@ finish(int code, int ret)
 */
 static int
 fetch_restrict_columns(SPITupleTable *tuptable,
-                       restrict_columns_t *restrict_columns)
-{
-  restrict_columns->target_id = SPI_fnumber(SPI_tuptable->tupdesc, "target_id");
-  restrict_columns->via_path = SPI_fnumber(SPI_tuptable->tupdesc, "via_path");
-  restrict_columns->to_cost =  SPI_fnumber(SPI_tuptable->tupdesc, "to_cost");
+                       restrict_columns_t *restrict_columns) {
+  restrict_columns->target_id = SPI_fnumber(tuptable->tupdesc, "target_id");
+  restrict_columns->via_path = SPI_fnumber(tuptable->tupdesc, "via_path");
+  restrict_columns->to_cost =  SPI_fnumber(tuptable->tupdesc, "to_cost");
   if (restrict_columns->target_id == SPI_ERROR_NOATTRIBUTE ||
       restrict_columns->via_path == SPI_ERROR_NOATTRIBUTE ||
       restrict_columns->to_cost == SPI_ERROR_NOATTRIBUTE) {
@@ -89,10 +124,12 @@ fetch_restrict_columns(SPITupleTable *tuptable,
     return -1;
   }
 
-  if (SPI_gettypeid(SPI_tuptable->tupdesc, restrict_columns->target_id) != INT4OID ||
-      SPI_gettypeid(SPI_tuptable->tupdesc, restrict_columns->via_path) != TEXTOID ||
-      SPI_gettypeid(SPI_tuptable->tupdesc, restrict_columns->to_cost) != FLOAT8OID) {
-    elog(ERROR, "Error, restriction columns 'target_id' must be of type int4, 'via_path' must be of type text, 'to_cost' must be of type float8");
+  if (SPI_gettypeid(tuptable->tupdesc,
+       restrict_columns->target_id) != INT4OID ||
+     SPI_gettypeid(tuptable->tupdesc, restrict_columns->via_path) != TEXTOID ||
+     SPI_gettypeid(tuptable->tupdesc, restrict_columns->to_cost) != FLOAT8OID) {
+    elog(ERROR, "Error, restriction columns 'target_id' must be of type int4,"
+     "'via_path' must be of type text, 'to_cost' must be of type float8");
     return -1;
   }
 
@@ -101,72 +138,66 @@ fetch_restrict_columns(SPITupleTable *tuptable,
 
 /*
  * This function fetches the edge columns from the SPITupleTable.
- * 
-*/ 
+ *
+*/
 static int
-fetch_edge_columns(SPITupleTable *tuptable, edge_columns_t *edge_columns, 
-                   bool has_reverse_cost)
-{
-  edge_columns->id = SPI_fnumber(SPI_tuptable->tupdesc, "id");
-  edge_columns->source = SPI_fnumber(SPI_tuptable->tupdesc, "source");
-  edge_columns->target = SPI_fnumber(SPI_tuptable->tupdesc, "target");
-  edge_columns->cost = SPI_fnumber(SPI_tuptable->tupdesc, "cost");
+fetch_edge_columns(SPITupleTable *tuptable, edge_columns_t *edge_columns,
+                   bool has_reverse_cost) {
+  edge_columns->id = SPI_fnumber(tuptable->tupdesc, "id");
+  edge_columns->source = SPI_fnumber(tuptable->tupdesc, "source");
+  edge_columns->target = SPI_fnumber(tuptable->tupdesc, "target");
+  edge_columns->cost = SPI_fnumber(tuptable->tupdesc, "cost");
   if (edge_columns->id == SPI_ERROR_NOATTRIBUTE ||
       edge_columns->source == SPI_ERROR_NOATTRIBUTE ||
       edge_columns->target == SPI_ERROR_NOATTRIBUTE ||
-      edge_columns->cost == SPI_ERROR_NOATTRIBUTE) 
-    {
+      edge_columns->cost == SPI_ERROR_NOATTRIBUTE) {
       elog(ERROR, "Error, query must return columns "
            "'id', 'source', 'target' and 'cost'");
       return -1;
     }
 
-  if (SPI_gettypeid(SPI_tuptable->tupdesc, edge_columns->source) != INT4OID ||
-      SPI_gettypeid(SPI_tuptable->tupdesc, edge_columns->target) != INT4OID ||
-      SPI_gettypeid(SPI_tuptable->tupdesc, edge_columns->cost) != FLOAT8OID) 
-    {
-      elog(ERROR, "Error, columns 'source', 'target' must be of type int4, 'cost' must be of type float8");
+  if (SPI_gettypeid(tuptable->tupdesc, edge_columns->source) != INT4OID ||
+      SPI_gettypeid(tuptable->tupdesc, edge_columns->target) != INT4OID ||
+      SPI_gettypeid(tuptable->tupdesc, edge_columns->cost) != FLOAT8OID) {
+      elog(ERROR, "Error, columns 'source', 'target' must be of type int4, "
+      "'cost' must be of type float8");
       return -1;
     }
 
-  DBG("columns: id %i source %i target %i cost %i", 
-      edge_columns->id, edge_columns->source, 
+  PGR_DBG("columns: id %i source %i target %i cost %i",
+      edge_columns->id, edge_columns->source,
       edge_columns->target, edge_columns->cost);
 
-  if (has_reverse_cost)
-    {
-      edge_columns->reverse_cost = SPI_fnumber(SPI_tuptable->tupdesc, 
+  if (has_reverse_cost) {
+      edge_columns->reverse_cost = SPI_fnumber(tuptable->tupdesc,
                                                "reverse_cost");
 
-      if (edge_columns->reverse_cost == SPI_ERROR_NOATTRIBUTE) 
-        {
+      if (edge_columns->reverse_cost == SPI_ERROR_NOATTRIBUTE) {
           elog(ERROR, "Error, reverse_cost is used, but query did't return "
                "'reverse_cost' column");
           return -1;
         }
 
-      if (SPI_gettypeid(SPI_tuptable->tupdesc, edge_columns->reverse_cost) 
-          != FLOAT8OID) 
-        {
+      if (SPI_gettypeid(tuptable->tupdesc, edge_columns->reverse_cost)
+          != FLOAT8OID) {
           elog(ERROR, "Error, columns 'reverse_cost' must be of type float8");
           return -1;
         }
 
-      DBG("columns: reverse_cost cost %i", edge_columns->reverse_cost);
+      PGR_DBG("columns: reverse_cost cost %i", edge_columns->reverse_cost);
     }
-    
+
   return 0;
 }
 
 /*
  * To fetch a edge from Tuple.
- * 
+ *
  */
- 
+
 static void
-fetch_edge(HeapTuple *tuple, TupleDesc *tupdesc, 
-           edge_columns_t *edge_columns, edge_t *target_edge)
-{
+fetch_edge(HeapTuple *tuple, TupleDesc *tupdesc,
+           edge_columns_t *edge_columns, edge_t *target_edge) {
   Datum binval;
   bool isnull;
 
@@ -190,9 +221,8 @@ fetch_edge(HeapTuple *tuple, TupleDesc *tupdesc,
     elog(ERROR, "cost contains a null value");
   target_edge->cost = DatumGetFloat8(binval);
 
-  if (edge_columns->reverse_cost != -1) 
-    {
-      binval = SPI_getbinval(*tuple, *tupdesc, edge_columns->reverse_cost, 
+  if (edge_columns->reverse_cost != -1) {
+      binval = SPI_getbinval(*tuple, *tupdesc, edge_columns->reverse_cost,
                              &isnull);
       if (isnull)
         elog(ERROR, "reverse_cost contains a null value");
@@ -200,7 +230,7 @@ fetch_edge(HeapTuple *tuple, TupleDesc *tupdesc,
     }
 
   /*
-  DBG("edge: %i, %i, %i, %f, %f", target_edge->id, target_edge->source,
+  PGR_DBG("edge: %i, %i, %i, %f, %f", target_edge->id, target_edge->source,
     target_edge->target, target_edge->cost, target_edge->reverse_cost);
   */
 }
@@ -208,21 +238,21 @@ fetch_edge(HeapTuple *tuple, TupleDesc *tupdesc,
 
 /*
  * To fetch a edge from Tuple.
- * 
+ *
  */
- 
+
 static void
-fetch_restrict(HeapTuple *tuple, TupleDesc *tupdesc, 
-           restrict_columns_t *restrict_columns, restrict_t *rest)
-{
+fetch_restrict(HeapTuple *tuple, TupleDesc *tupdesc,
+           restrict_columns_t *restrict_columns, restrict_t *rest) {
   Datum binval;
   bool isnull;
   int t;
 
-  for(t=0; t<MAX_RULE_LENGTH;++t)
+  for (t = 0; t < MAX_RULE_LENGTH; ++t)
     rest->via[t] = -1;
 
-  binval = SPI_getbinval(*tuple, *tupdesc, restrict_columns->target_id, &isnull);
+  binval = SPI_getbinval(*tuple, *tupdesc, restrict_columns->target_id,
+       &isnull);
   if (isnull)
     elog(ERROR, "target_id contains a null value");
   rest->target_id = DatumGetInt32(binval);
@@ -231,25 +261,24 @@ fetch_restrict(HeapTuple *tuple, TupleDesc *tupdesc,
   if (isnull)
     elog(ERROR, "to_cost contains a null value");
   rest->to_cost = DatumGetFloat8(binval);
-  char *str = DatumGetCString(SPI_getvalue(*tuple, *tupdesc, restrict_columns->via_path));
+  char *str = DatumGetCString(SPI_getvalue(*tuple, *tupdesc,
+       restrict_columns->via_path));
 
-  //DBG("restriction: %f, %i, %s", rest->to_cost, rest->target_id, str);
+  // PGR_DBG("restriction: %f, %i, %s", rest->to_cost, rest->target_id, str);
 
   if (str != NULL) {
     char* pch = NULL;
     int ci = 0;
 
-    pch = (char *)strtok (str," ,");
+    pch = (char *)strtok(str, " ,");
 
-    while (pch != NULL && ci < MAX_RULE_LENGTH)
-    {
+    while (pch != NULL && ci < MAX_RULE_LENGTH) {
       rest->via[ci] = atoi(pch);
-      //DBG("    rest->via[%i]=%i", ci, rest->via[ci]);
+      // PGR_DBG("    rest->via[%i]=%i", ci, rest->via[ci]);
       ci++;
-      pch = (char *)strtok (NULL, " ,");
+      pch = (char *)strtok(NULL, " ,");
     }
   }
-
 }
 
 
@@ -257,37 +286,37 @@ fetch_restrict(HeapTuple *tuple, TupleDesc *tupdesc,
 static int compute_trsp(
     char* sql,
     int dovertex,
-    int start_id,
+    int64_t start_id,
     double start_pos,
-    int end_id,
+    int64_t end_id,
     double end_pos,
-    bool directed, 
+    bool directed,
     bool has_reverse_cost,
     char* restrict_sql,
-    path_element_t **path,
-    int *path_count) 
-{
+    path_element_tt **path,
+    size_t *path_count) {
 
   int SPIcode;
   SPIPlanPtr SPIplan;
   Portal SPIportal;
   bool moredata = TRUE;
-  int ntuples;
+  uint32_t TUPLIMIT = 1000;
+  uint32_t ntuples;
 
   edge_t *edges = NULL;
-  int total_tuples = 0;
+  uint32_t total_tuples = 0;
 #ifndef _MSC_VER
-  edge_columns_t edge_columns = {.id= -1, .source= -1, .target= -1, 
-                                 .cost= -1, .reverse_cost= -1};
-#else // _MSC_VER
+  edge_columns_t edge_columns = {.id = -1, .source = -1, .target = -1,
+                                 .cost = -1, .reverse_cost = -1};
+#else  // _MSC_VER
   edge_columns_t edge_columns = {-1, -1, -1, -1, -1};
-#endif //_MSC_VER
+#endif  // _MSC_VER
   restrict_t *restricts = NULL;
-  int total_restrict_tuples = 0;
-  restrict_columns_t restrict_columns = {.target_id= -1, .via_path= -1,
-                                 .to_cost= -1};
-  int v_max_id=0;
-  int v_min_id=INT_MAX;
+  uint32_t total_restrict_tuples = 0;
+  restrict_columns_t restrict_columns = {.target_id = -1, .via_path = -1,
+                                 .to_cost = -1};
+  int64_t v_max_id = 0;
+  int64_t v_min_id = INT_MAX;
 
   /* track if start and end are both in edge tuples */
   int s_count = 0;
@@ -295,29 +324,32 @@ static int compute_trsp(
 
   char *err_msg;
   int ret = -1;
-  register int z;
+  uint32_t z;
+
+  PGR_DBG("start turn_restrict_shortest_path\n");
 
-  DBG("start turn_restrict_shortest_path\n");
-        
   SPIcode = SPI_connect();
   if (SPIcode  != SPI_OK_CONNECT) {
-      elog(ERROR, "turn_restrict_shortest_path: couldn't open a connection to SPI");
+      elog(ERROR, "turn_restrict_shortest_path: "
+      "couldn't open a connection to SPI");
       return -1;
   }
 
   SPIplan = SPI_prepare(sql, 0, NULL);
   if (SPIplan  == NULL) {
-      elog(ERROR, "turn_restrict_shortest_path: couldn't create query plan via SPI");
+      elog(ERROR, "turn_restrict_shortest_path: "
+      "couldn't create query plan via SPI");
       return -1;
   }
 
   if ((SPIportal = SPI_cursor_open(NULL, SPIplan, NULL, NULL, true)) == NULL) {
-      elog(ERROR, "turn_restrict_shortest_path: SPI_cursor_open('%s') returns NULL", sql);
+      elog(ERROR, "turn_restrict_shortest_path: "
+      "SPI_cursor_open('%s') returns NULL", sql);
       return -1;
   }
 
   while (moredata == TRUE) {
-      //DBG("calling SPI_cursor_fetch");
+      // PGR_DBG("calling SPI_cursor_fetch");
       SPI_cursor_fetch(SPIportal, TRUE, TUPLIMIT);
 
       if (SPI_tuptable == NULL) {
@@ -326,14 +358,14 @@ static int compute_trsp(
       }
 
       if (edge_columns.id == -1) {
-          if (fetch_edge_columns(SPI_tuptable, &edge_columns, 
+          if (fetch_edge_columns(SPI_tuptable, &edge_columns,
                                  has_reverse_cost) == -1)
-	        return finish(SPIcode, ret);
+                return finish(SPIcode, ret);
       }
 
       ntuples = SPI_processed;
 
-      //DBG("Reading edges: %i - %i", total_tuples, total_tuples+ntuples);
+      // PGR_DBG("Reading edges: %i - %i", total_tuples, total_tuples+ntuples);
 
       total_tuples += ntuples;
 
@@ -345,107 +377,106 @@ static int compute_trsp(
 
           if (edges == NULL) {
               elog(ERROR, "Out of memory");
-              return finish(SPIcode, ret);	  
+              return finish(SPIcode, ret);
           }
 
-          int t;
+          uint32_t t;
           SPITupleTable *tuptable = SPI_tuptable;
           TupleDesc tupdesc = SPI_tuptable->tupdesc;
-                
+
           for (t = 0; t < ntuples; t++) {
-              //if (t%100 == 0) { DBG("    t: %i", t); }
+              // if (t%100 == 0) { PGR_DBG("    t: %i", t); }
               HeapTuple tuple = tuptable->vals[t];
-              fetch_edge(&tuple, &tupdesc, &edge_columns, 
+              fetch_edge(&tuple, &tupdesc, &edge_columns,
                          &edges[total_tuples - ntuples + t]);
           }
-          //DBG("calling SPI_freetuptable");
+          // PGR_DBG("calling SPI_freetuptable");
           SPI_freetuptable(tuptable);
-          //DBG("back from SPI_freetuptable");
-      } 
-      else {
+          // PGR_DBG("back from SPI_freetuptable");
+      } else {
           moredata = FALSE;
       }
   }
   SPI_cursor_close(SPIportal);
 
-  //defining min and max vertex id
-      
-  //DBG("Total %i edge tuples", total_tuples);
-    
-  for(z=0; z<total_tuples; z++) {
-    if(edges[z].source<v_min_id)
-      v_min_id=edges[z].source;
-  
-    if(edges[z].source>v_max_id)
-      v_max_id=edges[z].source;
-		            
-    if(edges[z].target<v_min_id)
-      v_min_id=edges[z].target;
-
-    if(edges[z].target>v_max_id)
-      v_max_id=edges[z].target;      
-								        
-    //DBG("%i <-> %i", v_min_id, v_max_id);
-							
+  // defining min and max vertex id
+
+  // DBG("Total %i edge tuples", total_tuples);
+
+  for (z = 0; z < total_tuples; z++) {
+    if (edges[z].source < v_min_id)
+      v_min_id = edges[z].source;
+
+    if (edges[z].source > v_max_id)
+      v_max_id = edges[z].source;
+
+    if (edges[z].target < v_min_id)
+      v_min_id = edges[z].target;
+
+    if (edges[z].target > v_max_id)
+      v_max_id = edges[z].target;
+
+    // DBG("%i <-> %i", v_min_id, v_max_id);
   }
-	
-  //::::::::::::::::::::::::::::::::::::  
-  //:: reducing vertex id (renumbering)
-  //::::::::::::::::::::::::::::::::::::
-  for(z=0; z<total_tuples; z++) {
-    //check if edges[] contains source and target
+
+  // ::::::::::::::::::::::::::::::::::::
+  // :: reducing vertex id (renumbering)
+  // ::::::::::::::::::::::::::::::::::::
+  for (z = 0; z < total_tuples; z++) {
+    // check if edges[] contains source and target
     if (dovertex) {
-        if(edges[z].source == start_id || edges[z].target == start_id)
+        if (edges[z].source == start_id || edges[z].target == start_id)
           ++s_count;
-        if(edges[z].source == end_id || edges[z].target == end_id)
+        if (edges[z].source == end_id || edges[z].target == end_id)
           ++t_count;
-    }
-    else {
-        if(edges[z].id == start_id)
+    } else {
+        if (edges[z].id == start_id)
           ++s_count;
-        if(edges[z].id == end_id)
+        if (edges[z].id == end_id)
           ++t_count;
     }
 
-    edges[z].source-=v_min_id;
-    edges[z].target-=v_min_id;
+    edges[z].source -= v_min_id;
+    edges[z].target -= v_min_id;
     edges[z].cost = edges[z].cost;
-    //DBG("edgeID: %i SRc:%i - %i, cost: %f", edges[z].id,edges[z].source, edges[z].target,edges[z].cost);      
-    
+    // PGR_DBG("edgeID: %i SRc:%i - %i, cost: %f",
+    // edges[z].id,edges[z].source, edges[z].target,edges[z].cost);
   }
 
-  DBG("Min vertex id: %i , Max vid: %i",v_min_id,v_max_id);
-  DBG("Total %i edge tuples", total_tuples);
+  PGR_DBG("Min vertex id: %ld , Max vid: %ld", v_min_id, v_max_id);
+  PGR_DBG("Total %i edge tuples", total_tuples);
 
-  if(s_count == 0) {
+  if (s_count == 0) {
     elog(ERROR, "Start id was not found.");
     return -1;
   }
-      
-  if(t_count == 0) {
+
+  if (t_count == 0) {
     elog(ERROR, "Target id was not found.");
     return -1;
   }
-  
+
   if (dovertex) {
       start_id -= v_min_id;
       end_id   -= v_min_id;
   }
-  
-  DBG("Fetching restriction tuples\n");
-        
+
+  PGR_DBG("Fetching restriction tuples\n");
+
   if (restrict_sql == NULL) {
-      DBG("Sql for restrictions is null.");
-  }
-  else {
+      PGR_DBG("Sql for restrictions is null.");
+  } else {
       SPIplan = SPI_prepare(restrict_sql, 0, NULL);
       if (SPIplan  == NULL) {
-          elog(ERROR, "turn_restrict_shortest_path: couldn't create query plan via SPI");
+          elog(ERROR, "turn_restrict_shortest_path: "
+          "couldn't create query plan via SPI");
           return -1;
       }
 
-      if ((SPIportal = SPI_cursor_open(NULL, SPIplan, NULL, NULL, true)) == NULL) {
-          elog(ERROR, "turn_restrict_shortest_path: SPI_cursor_open('%s') returns NULL", restrict_sql);
+      if ((SPIportal = SPI_cursor_open(NULL, SPIplan, NULL, NULL, true)) \
+       == NULL) {
+          elog(ERROR, "turn_restrict_shortest_path:"
+          " SPI_cursor_open('%s') returns NULL", restrict_sql);
           return -1;
       }
 
@@ -454,8 +485,9 @@ static int compute_trsp(
           SPI_cursor_fetch(SPIportal, TRUE, TUPLIMIT);
 
           if (restrict_columns.target_id == -1) {
-              if (fetch_restrict_columns(SPI_tuptable, &restrict_columns) == -1) {
-                DBG("fetch_restrict_columns failed!");
+              if (fetch_restrict_columns(SPI_tuptable, &restrict_columns) \
+              == -1) {
+                PGR_DBG("fetch_restrict_columns failed!");
                 return finish(SPIcode, ret);
               }
           }
@@ -463,20 +495,21 @@ static int compute_trsp(
           ntuples = SPI_processed;
           total_restrict_tuples += ntuples;
 
-          //DBG("Reading Restrictions: %i", total_restrict_tuples);
+          // DBG("Reading Restrictions: %i", total_restrict_tuples);
 
           if (ntuples > 0) {
               if (!restricts)
                 restricts = palloc(total_restrict_tuples * sizeof(restrict_t));
               else
-                restricts = repalloc(restricts, total_restrict_tuples * sizeof(restrict_t));
+                restricts = repalloc(restricts,
+                    total_restrict_tuples * sizeof(restrict_t));
 
               if (restricts == NULL) {
                   elog(ERROR, "Out of memory");
                   return finish(SPIcode, ret);
               }
 
-              int t;
+              uint32_t t;
               SPITupleTable *tuptable = SPI_tuptable;
               TupleDesc tupdesc = SPI_tuptable->tupdesc;
 
@@ -486,70 +519,70 @@ static int compute_trsp(
                              &restricts[total_restrict_tuples - ntuples + t]);
               }
               SPI_freetuptable(tuptable);
-          }
-          else {
+          } else {
               moredata = FALSE;
           }
       }
       SPI_cursor_close(SPIportal);
-
   }
 
 #ifdef DEBUG_OFF
     int t;
-    for (t=0; t<total_restrict_tuples; t++) {
-        DBG("restricts: %.2f, %i, %i, %i, %i, %i, %i", restricts[t].to_cost, restricts[t].target_id, restricts[t].via[0], restricts[t].via[1], restricts[t].via[2], restricts[t].via[3], restricts[t].via[4]);
+    for (t=0; t < total_restrict_tuples; t++) {
+        PGR_DBG("restricts: %.2f, %i, %i, %i, %i, %i, %i",
+        restricts[t].to_cost, restricts[t].target_id, restricts[t].via[0],
+        restricts[t].via[1], restricts[t].via[2], restricts[t].via[3],
+        restricts[t].via[4]);
     }
 #endif
 
-  DBG("Total %i restriction tuples", total_restrict_tuples);
+  PGR_DBG("Total %i restriction tuples", total_restrict_tuples);
 
   if (dovertex) {
-      DBG("Calling trsp_node_wrapper\n");
-      /** hack always returns 0 -1 when installed on EDB VC++ 64-bit without this **/
-      #if defined(__MINGW64__) 
+      PGR_DBG("Calling trsp_node_wrapper\n");
+      /** hack always returns 0 -1 when
+      installed on EDB VC++ 64-bit without this **/
+      #if defined(__MINGW64__)
         // elog(NOTICE,"Calling trsp_node_wrapper\n");
       #endif
-      ret = trsp_node_wrapper(edges, total_tuples, 
+      ret = trsp_node_wrapper(edges, total_tuples,
                         restricts, total_restrict_tuples,
                         start_id, end_id,
                         directed, has_reverse_cost,
                         path, path_count, &err_msg);
-  }
-  else {
-      DBG("Calling trsp_edge_wrapper\n");
-      ret = trsp_edge_wrapper(edges, total_tuples, 
+  } else {
+      PGR_DBG("Calling trsp_edge_wrapper\n");
+      ret = trsp_edge_wrapper(edges, total_tuples,
                         restricts, total_restrict_tuples,
                         start_id, start_pos, end_id, end_pos,
                         directed, has_reverse_cost,
                         path, path_count, &err_msg);
   }
 
-  DBG("Message received from inside:");
-  DBG("%s",err_msg);
+  PGR_DBG("Message received from inside:");
+  PGR_DBG("%s", err_msg);
 
-  //DBG("SIZE %i\n",*path_count);
+  // DBG("SIZE %i\n",*path_count);
 
-  //::::::::::::::::::::::::::::::::
-  //:: restoring original vertex id
-  //::::::::::::::::::::::::::::::::
-  for(z=0;z<*path_count;z++) {
-    //DBG("vetex %i\n",(*path)[z].vertex_id);
+  // ::::::::::::::::::::::::::::::::
+  // :: restoring original vertex id
+  // ::::::::::::::::::::::::::::::::
+  for (z = 0; z < *path_count; z++) {
+    // PGR_DBG("vetex %i\n",(*path)[z].vertex_id);
     if (z || (*path)[z].vertex_id != -1)
-        (*path)[z].vertex_id+=v_min_id;
+        (*path)[z].vertex_id += v_min_id;
   }
 
-  DBG("ret = %i\n", ret);
+  PGR_DBG("ret = %i\n", ret);
 
-  DBG("*path_count = %i\n", *path_count);
+  PGR_DBG("*path_count = %ld\n", *path_count);
 
-  if (ret < 0)
-    {
-      //elog(ERROR, "Error computing path: %s", err_msg);
-      ereport(ERROR, (errcode(ERRCODE_E_R_E_CONTAINING_SQL_NOT_PERMITTED), 
+  if (ret < 0) {
+      // elog(ERROR, "Error computing path: %s", err_msg);
+      ereport(ERROR, (errcode(ERRCODE_E_R_E_CONTAINING_SQL_NOT_PERMITTED),
         errmsg("Error computing path: %s", err_msg)));
-    } 
-    
+    }
+
   return finish(SPIcode, ret);
 }
 
@@ -557,24 +590,24 @@ static int compute_trsp(
 
 PG_FUNCTION_INFO_V1(turn_restrict_shortest_path_vertex);
 PGDLLEXPORT Datum
-turn_restrict_shortest_path_vertex(PG_FUNCTION_ARGS)
-{
-	
+turn_restrict_shortest_path_vertex(PG_FUNCTION_ARGS) {
   FuncCallContext     *funcctx;
-  int                  call_cntr;
+#if 0
+  uint32_t             call_cntr;
   int                  max_calls;
+#endif
   TupleDesc            tuple_desc;
-  path_element_t      *path;
+  path_element_tt      *path;
   char *               sql;
 
 
-  // stuff done only on the first call of the function 
+  // stuff done only on the first call of the function
   if (SRF_IS_FIRSTCALL()) {
       MemoryContext   oldcontext;
-      int path_count = 0;
+      size_t path_count = 0;
 
       int ret = -1;
-      if (ret == -1) {}; // to avoid warning set but not used
+      if (ret == -1) {}  // to avoid warning set but not used
 
       int i;
 
@@ -585,71 +618,78 @@ turn_restrict_shortest_path_vertex(PG_FUNCTION_ARGS)
       oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
 
       // verify that the first 5 args are not NULL
-      for (i=0; i<5; i++)
-        if(PG_ARGISNULL(i)) {
-            elog(ERROR, "turn_restrict_shortest_path(): Argument %i may not be NULL", i+1);
+      for (i = 0; i < 5; i++)
+        if (PG_ARGISNULL(i)) {
+            elog(ERROR, "turn_restrict_shortest_path(): "
+            "Argument %i may not be NULL", i+1);
         }
-      
-      if (PG_ARGISNULL(5))
+
+      if (PG_ARGISNULL(5)) {
         sql = NULL;
-      else {
-        sql = text2char(PG_GETARG_TEXT_P(5));
+      } else {
+        sql = text_to_cstring(PG_GETARG_TEXT_P(5));
         if (strlen(sql) == 0)
             sql = NULL;
       }
 
-	  DBG("Calling compute_trsp");
-
+      PGR_DBG("Calling compute_trsp");
 
-      ret =
 
- compute_trsp(text2char(PG_GETARG_TEXT_P(0)),
-                                   1, // do vertex
+      ret = compute_trsp(text_to_cstring(PG_GETARG_TEXT_P(0)),
+                                   1,  // do vertex
                                    PG_GETARG_INT32(1),
                                    0.5,
                                    PG_GETARG_INT32(2),
                                    0.5,
                                    PG_GETARG_BOOL(3),
-                                   PG_GETARG_BOOL(4), 
+                                   PG_GETARG_BOOL(4),
                                    sql,
                                    &path, &path_count);
 #ifdef DEBUG
-	double total_cost = 0;
-      DBG("Ret is %i", ret);
-      if (ret >= 0) 
-        {
+      double total_cost = 0;
+      PGR_DBG("Ret is %i", ret);
+      if (ret >= 0) {
           int i;
-          for (i = 0; i < path_count; i++) 
-            {
-         //     DBG("Step %i vertex_id  %i ", i, path[i].vertex_id);
-           //   DBG("        edge_id    %i ", path[i].edge_id);
-             // DBG("        cost       %f ", path[i].cost);
-              total_cost+=path[i].cost;
+          for (i = 0; i < path_count; i++) {
+         // PGR_DBG("Step %i vertex_id  %i ", i, path[i].vertex_id);
+           // PGR_DBG("        edge_id    %i ", path[i].edge_id);
+             // PGR_DBG("        cost       %f ", path[i].cost);
+              total_cost += path[i].cost;
             }
         }
-        DBG("Total cost is: %f",total_cost);
+        PGR_DBG("Total cost is: %f", total_cost);
 #endif
 
-      // total number of tuples to be returned 
+      // total number of tuples to be returned
+#if 1
+#if PGSQL_VERSION > 95
+        funcctx->max_calls = path_count;
+#else
+        funcctx->max_calls = (uint32_t)path_count;
+#endif
+#else
       funcctx->max_calls = path_count;
+#endif
       funcctx->user_fctx = path;
 
-      funcctx->tuple_desc = 
+      funcctx->tuple_desc =
         BlessTupleDesc(RelationNameGetTupleDesc("pgr_costResult"));
 
       MemoryContextSwitchTo(oldcontext);
     }
 
-  // stuff done on every call of the function 
+  // stuff done on every call of the function
   funcctx = SRF_PERCALL_SETUP();
 
+#if 0
   call_cntr = funcctx->call_cntr;
   max_calls = funcctx->max_calls;
+#endif
   tuple_desc = funcctx->tuple_desc;
-  path = (path_element_t*) funcctx->user_fctx;
+  path = (path_element_tt*) funcctx->user_fctx;
 
-  if (call_cntr < max_calls)    // do when there is more left to send 
-    {
+  if (funcctx->call_cntr < funcctx->max_calls) {
+      // do when there is more left to send
       HeapTuple    tuple;
       Datum        result;
       Datum *values;
@@ -658,29 +698,27 @@ turn_restrict_shortest_path_vertex(PG_FUNCTION_ARGS)
       values = palloc(4 * sizeof(Datum));
       nulls = palloc(4 * sizeof(char));
 
-      values[0] = Int32GetDatum(call_cntr);
+      values[0] = Int32GetDatum(funcctx->call_cntr);
       nulls[0] = false;
-      values[1] = Int32GetDatum(path[call_cntr].vertex_id);
+      values[1] = Int32GetDatum(path[funcctx->call_cntr].vertex_id);
       nulls[1] = false;
-      values[2] = Int32GetDatum(path[call_cntr].edge_id);
+      values[2] = Int32GetDatum(path[funcctx->call_cntr].edge_id);
       nulls[2] = false;
-      values[3] = Float8GetDatum(path[call_cntr].cost);
+      values[3] = Float8GetDatum(path[funcctx->call_cntr].cost);
       nulls[3] = false;
-		      
+
       tuple = heap_form_tuple(tuple_desc, values, nulls);
 
-      // make the tuple into a datum 
+      // make the tuple into a datum
       result = HeapTupleGetDatum(tuple);
 
-      // clean up (this is not really necessary) 
+      // clean up (this is not really necessary)
       pfree(values);
       pfree(nulls);
 
       SRF_RETURN_NEXT(funcctx, result);
-    }
-  else    // do when there is no more left 
-    {
-      DBG("Going to free path");
+  } else {  // do when there is no more left
+      PGR_DBG("Going to free path");
       if (path) free(path);
       SRF_RETURN_DONE(funcctx);
     }
@@ -688,20 +726,20 @@ turn_restrict_shortest_path_vertex(PG_FUNCTION_ARGS)
 
 PG_FUNCTION_INFO_V1(turn_restrict_shortest_path_edge);
 PGDLLEXPORT Datum
-turn_restrict_shortest_path_edge(PG_FUNCTION_ARGS)
-{
-	
+turn_restrict_shortest_path_edge(PG_FUNCTION_ARGS) {
   FuncCallContext     *funcctx;
-  int                  call_cntr;
-  int                  max_calls;
+#if 0
+  uint32_t             call_cntr;
+  uint32_t             max_calls;
+#endif
   TupleDesc            tuple_desc;
-  path_element_t      *path;
+  path_element_tt      *path;
   char *               sql;
 
-  // stuff done only on the first call of the function 
+  // stuff done only on the first call of the function
   if (SRF_IS_FIRSTCALL()) {
       MemoryContext   oldcontext;
-      int path_count = 0;
+      size_t path_count = 0;
 #ifdef DEBUG
       int ret = -1;
 #endif
@@ -716,89 +754,98 @@ turn_restrict_shortest_path_edge(PG_FUNCTION_ARGS)
       oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
 
       // verify that the first 5 args are not NULL
-      for (i=0; i<7; i++) {
-        if(i==2 || i==4) continue;
-        if(PG_ARGISNULL(i)) {
-            elog(ERROR, "turn_restrict_shortest_path(): Argument %i may not be NULL", i+1);
+      for (i = 0; i < 7; i++) {
+        if (i == 2 || i == 4) continue;
+        if (PG_ARGISNULL(i)) {
+            elog(ERROR, "turn_restrict_shortest_path(): "
+            "Argument %i may not be NULL", i+1);
         }
       }
 
-      if (PG_ARGISNULL(2))
+      if (PG_ARGISNULL(2)) {
         s_pos = 0.5;
-      else {
+      } else {
         s_pos = PG_GETARG_FLOAT8(2);
         if (s_pos < 0.0) s_pos = 0.5;
         if (s_pos > 1.0) s_pos = 0.5;
       }
-      
-      if (PG_ARGISNULL(4))
+
+      if (PG_ARGISNULL(4)) {
         e_pos = 0.5;
-      else {
+      } else {
         e_pos = PG_GETARG_FLOAT8(4);
         if (e_pos < 0.0) e_pos = 0.5;
         if (e_pos > 1.0) e_pos = 0.5;
       }
-      
-      if (PG_ARGISNULL(7))
+
+      if (PG_ARGISNULL(7)) {
         sql = NULL;
-      else {
-        sql = text2char(PG_GETARG_TEXT_P(7));
+      } else {
+        sql = text_to_cstring(PG_GETARG_TEXT_P(7));
         if (strlen(sql) == 0)
             sql = NULL;
       }
 
-	  DBG("Calling compute_trsp");
+      PGR_DBG("Calling compute_trsp");
 
 #ifdef DEBUG
       ret =
 #endif
-         compute_trsp(text2char(PG_GETARG_TEXT_P(0)),
-                                   0,  //sdo edge
+         compute_trsp(text_to_cstring(PG_GETARG_TEXT_P(0)),
+                                   0,  // sdo edge
                                    PG_GETARG_INT32(1),
                                    s_pos,
                                    PG_GETARG_INT32(3),
                                    e_pos,
                                    PG_GETARG_BOOL(5),
-                                   PG_GETARG_BOOL(6), 
+                                   PG_GETARG_BOOL(6),
                                    sql,
                                    &path, &path_count);
 #ifdef DEBUG
-	double total_cost = 0;
-      DBG("Ret is %i", ret);
-      if (ret >= 0) 
-        {
+      double total_cost = 0;
+      PGR_DBG("Ret is %i", ret);
+      if (ret >= 0) {
           int i;
-          for (i = 0; i < path_count; i++) 
-            {
-         //     DBG("Step %i vertex_id  %i ", i, path[i].vertex_id);
-           //   DBG("        edge_id    %i ", path[i].edge_id);
-             // DBG("        cost       %f ", path[i].cost);
+          for (i = 0; i < path_count; i++) {
+         //     PGR_DBG("Step %i vertex_id  %i ", i, path[i].vertex_id);
+           //   PGR_DBG("        edge_id    %i ", path[i].edge_id);
+             // PGR_DBG("        cost       %f ", path[i].cost);
               total_cost+=path[i].cost;
             }
         }
-        DBG("Total cost is: %f",total_cost);
+        PGR_DBG("Total cost is: %f", total_cost);
 #endif
 
-      // total number of tuples to be returned 
+      // total number of tuples to be returned
+#if 1
+#if PGSQL_VERSION > 95
+        funcctx->max_calls = path_count;
+#else
+        funcctx->max_calls = (uint32_t)path_count;
+#endif
+#else
       funcctx->max_calls = path_count;
+#endif
       funcctx->user_fctx = path;
 
-      funcctx->tuple_desc = 
+      funcctx->tuple_desc =
         BlessTupleDesc(RelationNameGetTupleDesc("pgr_costResult"));
 
       MemoryContextSwitchTo(oldcontext);
     }
 
-  // stuff done on every call of the function 
+  // stuff done on every call of the function
   funcctx = SRF_PERCALL_SETUP();
 
+#if 0
   call_cntr = funcctx->call_cntr;
   max_calls = funcctx->max_calls;
+#endif
   tuple_desc = funcctx->tuple_desc;
-  path = (path_element_t*) funcctx->user_fctx;
+  path = (path_element_tt*) funcctx->user_fctx;
 
-  if (call_cntr < max_calls)    // do when there is more left to send 
-    {
+  if (funcctx->call_cntr < funcctx->max_calls) {
+      // do when there is more left to send
       HeapTuple    tuple;
       Datum        result;
       Datum *values;
@@ -807,29 +854,27 @@ turn_restrict_shortest_path_edge(PG_FUNCTION_ARGS)
       values = palloc(4 * sizeof(Datum));
       nulls = palloc(4 * sizeof(char));
 
-      values[0] = Int32GetDatum(call_cntr);
+      values[0] = Int32GetDatum(funcctx->call_cntr);
       nulls[0] = false;
-      values[1] = Int32GetDatum(path[call_cntr].vertex_id);
+      values[1] = Int32GetDatum(path[funcctx->call_cntr].vertex_id);
       nulls[1] = false;
-      values[2] = Int32GetDatum(path[call_cntr].edge_id);
+      values[2] = Int32GetDatum(path[funcctx->call_cntr].edge_id);
       nulls[2] = false;
-      values[3] = Float8GetDatum(path[call_cntr].cost);
+      values[3] = Float8GetDatum(path[funcctx->call_cntr].cost);
       nulls[3] = false;
-		      
+
       tuple = heap_form_tuple(tuple_desc, values, nulls);
 
-      // make the tuple into a datum 
+      // make the tuple into a datum
       result = HeapTupleGetDatum(tuple);
 
-      // clean up (this is not really necessary) 
+      // clean up (this is not really necessary)
       pfree(values);
       pfree(nulls);
 
       SRF_RETURN_NEXT(funcctx, result);
-    }
-  else    // do when there is no more left 
-    {
-      DBG("Going to free path");
+    } else {  // do when there is no more left
+      PGR_DBG("Going to free path");
       if (path) free(path);
       SRF_RETURN_DONE(funcctx);
     }
diff --git a/src/trsp/src/trsp.h b/src/trsp/src/trsp.h
index 03961cc..43afd67 100644
--- a/src/trsp/src/trsp.h
+++ b/src/trsp/src/trsp.h
@@ -18,74 +18,74 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  *
  */
- 
-#ifndef _TRSP_H
-#define _TRSP_H
+
+#ifndef SRC_TRSP_SRC_TRSP_H_
+#define SRC_TRSP_SRC_TRSP_H_
 
 #define MAX_RULE_LENGTH 5
 
 #include "postgres.h"
+#include <stdint.h>
+
 
-typedef struct edge
-{
-    int id;
+typedef struct edge {
+    long id;
     long source;
     long target;
     float8 cost;
     float8 reverse_cost;
 } edge_t;
 
-typedef struct restrict_struct
-{
-		int target_id;
-		float8 to_cost;
-        int via[MAX_RULE_LENGTH];
-} 
+typedef struct restrict_struct {
+    int target_id;
+    float8 to_cost;
+    int via[MAX_RULE_LENGTH];
+}
 restrict_t;
 
-typedef struct path_element 
-{
+typedef struct path_element {
     long vertex_id;
     long edge_id;
     float8 cost;
-} path_element_t;
+} path_element_tt;
 
 #ifdef __cplusplus
-extern "C"
+extern "C" {
 #endif
 
 int trsp_node_wrapper(
-			edge_t *edges, 
-			unsigned int edge_count, 
-			restrict_t *restricts, 
-			int restrict_count,
-			int start_vertex, 
-			int end_vertex,
-		    bool directed, 
-		    bool has_reverse_cost,
-            path_element_t **path, 
-            int *path_count, 
-            char **err_msg
-            );
+    edge_t *edges,
+    size_t edge_count,
+    restrict_t *restricts,
+    size_t restrict_count,
+    int64_t start_vertex,
+    int64_t end_vertex,
+    bool directed,
+    bool has_reverse_cost,
+    path_element_tt **path,
+    size_t *path_count,
+    char **err_msg
+);
 
-#ifdef __cplusplus
-extern "C"
-#endif
 
 int trsp_edge_wrapper(
-			edge_t *edges, 
-			unsigned int edge_count, 
-			restrict_t *restricts, 
-			int restrict_count,
-			int start_edge, 
-            double start_pos,
-			int end_edge,
-            double end_pos,
-		    bool directed, 
-		    bool has_reverse_cost,
-            path_element_t **path, 
-            int *path_count, 
-            char **err_msg
-            );
+    edge_t *edges,
+    size_t edge_count,
+    restrict_t *restricts,
+    size_t restrict_count,
+    int64_t start_edge,
+    double start_pos,
+    int64_t end_edge,
+    double end_pos,
+    bool directed,
+    bool has_reverse_cost,
+    path_element_tt **path,
+    size_t *path_count,
+    char **err_msg
+);
 
+#ifdef __cplusplus
+}
 #endif
+
+#endif  // SRC_TRSP_SRC_TRSP_H_
diff --git a/src/trsp/src/trsp_core.cpp b/src/trsp/src/trsp_core.cpp
index 21801c5..0e8c371 100644
--- a/src/trsp/src/trsp_core.cpp
+++ b/src/trsp/src/trsp_core.cpp
@@ -1,3 +1,29 @@
+/*PGR-GNU*****************************************************************
+
+File: trsp_core.cpp
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
 #ifdef __MINGW32__
 #include <winsock2.h>
 #include <windows.h>
@@ -9,37 +35,35 @@
 
 int trsp_node_wrapper(
     edge_t *edges,
-    unsigned int edge_count,
+    size_t edge_count,
     restrict_t *restricts,
-    int restrict_count,
-    int start_vertex,
-    int end_vertex,
+    size_t restrict_count,
+    int64_t start_vertex,
+    int64_t end_vertex,
     bool directed,
     bool has_reverse_cost,
-    path_element_t **path,
-    int *path_count,
+    path_element_tt **path,
+    size_t *path_count,
     char **err_msg
-    )
-{
+    ) {
     try {
-
         std::vector<PDVI> ruleTable;
 
-        int i, j;
+        size_t i, j;
         ruleTable.clear();
-        for (i=0; i<restrict_count; i++) {
-            std::vector<int> seq;
+        for (i = 0; i < restrict_count; i++) {
+            std::vector<long> seq;
             seq.clear();
             seq.push_back(restricts[i].target_id);
-            for(j = 0; j<MAX_RULE_LENGTH && restricts[i].via[j]>-1; j++)
-            {
+            for (j = 0; j < MAX_RULE_LENGTH && restricts[i].via[j] > -1; j++) {
                 seq.push_back(restricts[i].via[j]);
             }
             ruleTable.push_back(make_pair(restricts[i].to_cost, seq));
         }
 
         GraphDefinition gdef;
-        int res = gdef.my_dijkstra(edges, edge_count, start_vertex, end_vertex, directed, has_reverse_cost, path, path_count, err_msg, ruleTable);
+        int res = gdef.my_dijkstra(edges, edge_count, start_vertex, end_vertex,
+            directed, has_reverse_cost, path, path_count, err_msg, ruleTable);
 
 
         if (res < 0)
@@ -59,39 +83,38 @@ int trsp_node_wrapper(
 
 int trsp_edge_wrapper(
     edge_t *edges,
-    unsigned int edge_count,
+    size_t edge_count,
     restrict_t *restricts,
-    int restrict_count,
-    int start_edge,
+    size_t restrict_count,
+    int64_t start_edge,
     double start_pos,
-    int end_edge,
+    int64_t end_edge,
     double end_pos,
     bool directed,
     bool has_reverse_cost,
-    path_element_t **path,
-    int *path_count,
+    path_element_tt **path,
+    size_t *path_count,
     char **err_msg
-    )
-{
+    ) {
     try {
-
         std::vector<PDVI> ruleTable;
 
-        int i, j;
+        size_t i, j;
         ruleTable.clear();
-        for (i=0; i<restrict_count; i++) {
-            std::vector<int> seq;
+        for (i = 0; i < restrict_count; i++) {
+            std::vector<long> seq;
             seq.clear();
             seq.push_back(restricts[i].target_id);
-            for(j = 0; j<MAX_RULE_LENGTH && restricts[i].via[j]>-1; j++)
-            {
+            for (j = 0; j < MAX_RULE_LENGTH && restricts[i].via[j] >- 1; j++) {
                 seq.push_back(restricts[i].via[j]);
             }
             ruleTable.push_back(make_pair(restricts[i].to_cost, seq));
         }
 
         GraphDefinition gdef;
-        int res = gdef.my_dijkstra(edges, edge_count, start_edge, start_pos, end_edge, end_pos, directed, has_reverse_cost, path, path_count, err_msg, ruleTable);
+        auto res = gdef.my_dijkstra(edges, edge_count, start_edge, start_pos,
+            end_edge, end_pos, directed, has_reverse_cost, path, path_count,
+            err_msg, ruleTable);
 
 
         if (res < 0)
diff --git a/src/trsp/src/trsp_driver.cpp b/src/trsp/src/trsp_driver.cpp
index b7db59b..3c51a23 100644
--- a/src/trsp/src/trsp_driver.cpp
+++ b/src/trsp/src/trsp_driver.cpp
@@ -34,8 +34,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 int trsp_node_wrapper(
     edge_t *edges,         size_t edge_count,
     restrict_t *restricts, size_t restrict_count,
-    int start_vertex,
-    int end_vertex,
+    int64_t start_vertex,
+    int64_t end_vertex,
     bool directed,
     bool has_reverse_cost,
     path_element_t **path, size_t *path_count,
@@ -43,25 +43,25 @@ int trsp_node_wrapper(
 
     std::ostringstream log;
     try {
-
         std::vector<PDVI> ruleTable;
 
         int j;
         ruleTable.clear();
-        for (size_t i=0; i<restrict_count; i++) {
+        for (size_t i = 0; i < restrict_count; i++) {
             std::vector<int64_t> seq;
             seq.clear();
             seq.push_back(restricts[i].target_id);
-            for(j = 0; j<MAX_RULE_LENGTH && restricts[i].via[j]>-1; j++)
-            {
+            for (j = 0; j < MAX_RULE_LENGTH && restricts[i].via[j] > -1; j++) {
                 seq.push_back(restricts[i].via[j]);
             }
             ruleTable.push_back(make_pair(restricts[i].to_cost, seq));
         }
 
-        GraphDefinition gdef(edges, static_cast<unsigned int>(edge_count), directed, has_reverse_cost);
+        GraphDefinition gdef(edges, static_cast<unsigned int>(edge_count),
+        directed, has_reverse_cost);
         gdef.set_restrictions(start_vertex, end_vertex, ruleTable);
-        int res = gdef.my_dijkstra(start_vertex, end_vertex, path, path_count, log);
+        int res = gdef.my_dijkstra(start_vertex, end_vertex, path, path_count,
+            log);
 
 
         if (res < 0)
@@ -84,9 +84,9 @@ int trsp_node_wrapper(
 int trsp_edge_wrapper(
     edge_t *edges,          size_t edge_count,
     restrict_t *restricts,  size_t restrict_count,
-    int start_edge,
+    int64_t start_edge,
     double start_pos,
-    int end_edge,
+    int64_t end_edge,
     double end_pos,
     bool directed,
     bool has_reverse_cost,
@@ -94,23 +94,22 @@ int trsp_edge_wrapper(
     char **err_msg) {
     std::ostringstream log;
     try {
-
         std::vector<PDVI> ruleTable;
 
         int j;
         ruleTable.clear();
-        for (size_t i=0; i<restrict_count; i++) {
+        for (size_t i = 0; i < restrict_count; i++) {
             std::vector<int64_t> seq;
             seq.clear();
             seq.push_back(restricts[i].target_id);
-            for(j = 0; j<MAX_RULE_LENGTH && restricts[i].via[j]>-1; j++)
-            {
+            for (j = 0; j < MAX_RULE_LENGTH && restricts[i].via[j] >- 1; j++) {
                 seq.push_back(restricts[i].via[j]);
             }
             ruleTable.push_back(make_pair(restricts[i].to_cost, seq));
         }
 
-        GraphDefinition gdef(edges, static_cast<unsigned int>(edge_count), directed, has_reverse_cost);
+        GraphDefinition gdef(edges, static_cast<unsigned int>(edge_count),
+        directed, has_reverse_cost);
 
         int64_t start_vertex = 0;
         int64_t end_vertex = 0;
@@ -120,7 +119,8 @@ int trsp_edge_wrapper(
                 start_vertex, end_vertex);
 
         gdef.set_restrictions(start_vertex, end_vertex, ruleTable);
-        int res = gdef.my_dijkstra(start_vertex, end_vertex, path, path_count, log);
+        int res = gdef.my_dijkstra(start_vertex, end_vertex, path, path_count,
+            log);
 
 
         if (res < 0)
diff --git a/src/trsp/src/trsp_driver.h b/src/trsp/src/trsp_driver.h
index 22f1505..1bb38cd 100644
--- a/src/trsp/src/trsp_driver.h
+++ b/src/trsp/src/trsp_driver.h
@@ -19,46 +19,46 @@ along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
- 
-#ifndef _TRSP_H
-#define _TRSP_H
+
+#ifndef SRC_TRSP_SRC_TRSP_DRIVER_H_
+#define SRC_TRSP_SRC_TRSP_DRIVER_H_
 
 #define MAX_RULE_LENGTH 5
 
-#include "../../common/src/pgr_types.h"
+#include "c_types/pgr_types.h"
+
 typedef pgr_edge_t edge_t;
 typedef Restrict_t restrict_t;
 
 #ifdef __cplusplus
 extern "C" {
-#endif
+  #endif
+  int trsp_node_wrapper (
+    edge_t *edges, size_t edge_count,
+    restrict_t *restricts, size_t restrict_count,
+    int64_t start_vertex,
+    int64_t end_vertex,
+    bool directed,
+    bool has_reverse_cost,
+    path_element_t **path, size_t *path_count,
+    char **err_msg
+  );
 
-int trsp_node_wrapper(
-			edge_t *edges,         size_t edge_count, 
-			restrict_t *restricts, size_t restrict_count,
-			int start_vertex, 
-			int end_vertex,
-		    bool directed, 
-		    bool has_reverse_cost,
-            path_element_t **path, size_t *path_count, 
-            char **err_msg
-            );
+  int trsp_edge_wrapper (
+    edge_t *edges, size_t edge_count,
+    restrict_t *restricts, size_t restrict_count,
+    int64_t start_edge,
+    double start_pos,
+    int64_t end_edge,
+    double end_pos,
+    bool directed,
+    bool has_reverse_cost,
+    path_element_t **path, size_t *path_count,
+    char **err_msg
+  );
 
-
-int trsp_edge_wrapper(
-			edge_t *edges, size_t edge_count, 
-			restrict_t *restricts, size_t restrict_count,
-			int start_edge, 
-            double start_pos,
-			int end_edge,
-            double end_pos,
-		    bool directed, 
-		    bool has_reverse_cost,
-            path_element_t **path, size_t *path_count, 
-            char **err_msg
-            );
 #ifdef __cplusplus
 }
 #endif
 
-#endif
+#endif // SRC_TRSP_SRC_TRSP_DRIVER_H_
diff --git a/src/trsp/src/utils.h b/src/trsp/src/utils.h
index 86d3b14..3f2e179 100644
--- a/src/trsp/src/utils.h
+++ b/src/trsp/src/utils.h
@@ -1,6 +1,26 @@
-
-#ifndef UTILS_H
-#define UTILS_H
+/*
+ * Shortest path with turn restrictions algorithm for PostgreSQL
+ *
+ * Copyright (c) 2011 Stephen Woodbridge
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+#ifndef SRC_TRSP_SRC_UTILS_H_
+#define SRC_TRSP_SRC_UTILS_H_
 
 #include <string>
 #include <map>
@@ -17,90 +37,69 @@ typedef std::vector<double> DoubleVector;
 typedef std::vector<std::string> StringVector;
 
 
-class StringOperation
-{
-	
-public:
-	
-	static std::string TRIMWHITESPACE(std::string strInput)
-	{
-		std::string strOut = strInput;
-		std::string strWht = " \f\n\r\t\v";	
-
-		strOut.erase(0,strOut.find_first_not_of(strWht));
-		strOut.erase(strOut.find_last_not_of(strWht) + 1);
-		return strOut;
-	};
+class StringOperation {
+ public:
+     static std::string TRIMWHITESPACE(std::string strInput) {
+         std::string strOut = strInput;
+         std::string strWht = " \f\n\r\t\v";
+         strOut.erase(0, strOut.find_first_not_of(strWht));
+         strOut.erase(strOut.find_last_not_of(strWht) + 1);
+         return strOut;
+     };
 };
 
-class StringTokenizer
-{
-public:
-	StringTokenizer()
-	{
-		reset();
-	}
-
-	void reset()
-	{
-		vecTokens.clear();
-		strInput = "";
-	}
-
-	bool parse(std::string strInput, std::string chDelim)
-	{
-		size_t iStartPos = 0;
-		while(true)	
-		{
-			size_t iPos = strInput.find(chDelim[0],iStartPos);
-			if(iPos != std::string::npos)
-			{
-				std::string strToken;
-				strToken = strInput.substr(iStartPos,iPos - iStartPos);
-				vecTokens.push_back(strToken);
-				iStartPos = iPos + 1;
-			}
-			else if(iPos == std::string::npos && strInput.length() > 0 )
-			{
-				std::string strToken;
-				strToken = strInput.substr(iStartPos, strInput.length() - iStartPos);
-				if(strToken.length() > 0)
-					vecTokens.push_back(strToken);
-				break;
-			}		
-			else 
-				break;
-
-		}		
-		return true;
-	}
-
-	size_t getTokenCount() 
-	{
-		return vecTokens.size();
-	}
-
-	bool getToken(std::string& strToken, long iTokenIndex)
-	{
-		long lTokenCount = vecTokens.size();
-		if(iTokenIndex < 0 || iTokenIndex < lTokenCount)
-		{
-			strToken = vecTokens[iTokenIndex];
-			return true;
-		}
-		return false;
-	}
-
-	bool getTokens(StringVector& vecTokensRef)
-	{
-		vecTokensRef = vecTokens;
-		return true;
-	}
-
-private:
-	std::string strInput;
-	StringVector vecTokens;
-	
+class StringTokenizer {
+ public:
+     StringTokenizer() {
+         reset();
+     }
+     void reset() {
+         vecTokens.clear();
+         strInput = "";
+     }
+      bool parse(std::string strInput, std::string chDelim) {
+         size_t iStartPos = 0;
+         while (true) {
+             size_t iPos = strInput.find(chDelim[0], iStartPos);
+             if (iPos != std::string::npos) {
+                 std::string strToken;
+                 strToken = strInput.substr(iStartPos, iPos - iStartPos);
+                 vecTokens.push_back(strToken);
+                 iStartPos = iPos + 1;
+             } else if (iPos == std::string::npos && strInput.length() > 0) {
+                 std::string strToken;
+                 strToken = strInput.substr(iStartPos,
+                     strInput.length() - iStartPos);
+                 if (strToken.length() > 0)
+                     vecTokens.push_back(strToken);
+                 break;
+             } else {
+                 break;
+             }
+         }
+         return true;
+     }
+     size_t getTokenCount() {
+         return vecTokens.size();
+     }
+
+     bool getToken(std::string& strToken, long iTokenIndex) {
+         long lTokenCount = vecTokens.size();
+         if (iTokenIndex < 0 || iTokenIndex < lTokenCount) {
+             strToken = vecTokens[iTokenIndex];
+             return true;
+         }
+         return false;
+     }
+
+     bool getTokens(StringVector& vecTokensRef) {
+         vecTokensRef = vecTokens;
+         return true;
+     }
+
+ private:
+     std::string strInput;
+     StringVector vecTokens;
 };
 
-#endif
+#endif  // SRC_TRSP_SRC_UTILS_H_
diff --git a/src/trsp/test/doc-trsp.result b/src/trsp/test/doc-trsp.result
index 8c07191..df8cb9e 100644
--- a/src/trsp/test/doc-trsp.result
+++ b/src/trsp/test/doc-trsp.result
@@ -1,56 +1,115 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 --q1
-0|7|6|1
-1|8|7|1
-2|5|8|1
-3|6|9|1
-4|9|15|1
-5|12|-1|0
+SELECT * FROM pgr_trsp(
+        'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost FROM edge_table',
+        7, 12, false, false
+    );
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |   7 |   6 |    1
+   1 |   8 |   7 |    1
+   2 |   5 |   8 |    1
+   3 |   6 |   9 |    1
+   4 |   9 |  15 |    1
+   5 |  12 |  -1 |    0
+(6 rows)
+
 --q2
 --q3
-0|2|4|1
-1|5|10|1
-2|10|12|1
-3|11|11|1
-4|6|8|1
-5|5|7|1
-6|8|6|1
-7|7|-1|0
-0|7|6|1
-1|8|7|1
-2|5|8|1
-3|6|9|1
-4|9|15|1
-5|12|13|1
-6|11|-1|0
+SELECT * FROM pgr_trsp(
+        'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost FROM edge_table',
+        2, 7, false, false,
+        'SELECT to_cost, target_id::int4,
+        from_edge || coalesce('','' || via_path, '''') AS via_path
+        FROM restrictions'
+    );
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |   2 |   4 |    1
+   1 |   5 |  10 |    1
+   2 |  10 |  12 |    1
+   3 |  11 |  11 |    1
+   4 |   6 |   8 |    1
+   5 |   5 |   7 |    1
+   6 |   8 |   6 |    1
+   7 |   7 |  -1 |    0
+(8 rows)
+
+SELECT * FROM pgr_trsp(
+        'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost FROM edge_table',
+        7, 11, false, false,
+        'SELECT to_cost, target_id::int4,
+        from_edge || coalesce('','' || via_path, '''') AS via_path
+        FROM restrictions'
+    );
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |   7 |   6 |    1
+   1 |   8 |   7 |    1
+   2 |   5 |   8 |    1
+   3 |   6 |   9 |    1
+   4 |   9 |  15 |    1
+   5 |  12 |  13 |    1
+   6 |  11 |  -1 |    0
+(7 rows)
+
 --q4
-1|1|2|4|1
-2|1|5|10|1
-3|1|10|12|1
-4|1|11|11|1
-5|1|6|8|1
-6|1|5|7|1
-7|1|8|6|1
-8|2|7|6|1
-9|2|8|7|1
-10|2|5|8|1
-11|2|6|9|1
-12|2|9|15|1
-13|2|12|13|1
-14|2|11|-1|0
+SELECT * FROM pgr_trspViaVertices(
+        'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost FROM edge_table',
+        ARRAY[2,7,11]::INTEGER[],
+        false,  false,
+        'SELECT to_cost, target_id::int4, from_edge ||
+        coalesce('',''||via_path,'''') AS via_path FROM restrictions');
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |   2 |   4 |    1
+   2 |   1 |   5 |  10 |    1
+   3 |   1 |  10 |  12 |    1
+   4 |   1 |  11 |  11 |    1
+   5 |   1 |   6 |   8 |    1
+   6 |   1 |   5 |   7 |    1
+   7 |   1 |   8 |   6 |    1
+   8 |   2 |   7 |   6 |    1
+   9 |   2 |   8 |   7 |    1
+  10 |   2 |   5 |   8 |    1
+  11 |   2 |   6 |   9 |    1
+  12 |   2 |   9 |  15 |    1
+  13 |   2 |  12 |  13 |    1
+  14 |   2 |  11 |  -1 |    0
+(14 rows)
+
 --q5
-1|1|-1|2|0.5
-2|1|2|4|1
-3|1|5|8|1
-4|1|6|9|1
-5|1|9|16|1
-6|1|4|3|1
-7|1|3|5|1
-8|1|6|8|1
-9|1|5|7|1
-10|2|5|8|1
-11|2|6|9|1
-12|2|9|16|1
-13|2|4|3|1
-14|2|3|5|1
-15|2|6|11|0.5
+SELECT * FROM pgr_trspViaEdges(
+        'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost,
+        reverse_cost FROM edge_table',
+        ARRAY[2,7,11]::INTEGER[],
+        ARRAY[0.5, 0.5, 0.5]::FLOAT[],
+        true,
+        true,
+        'SELECT to_cost, target_id::int4, FROM_edge ||
+        coalesce('',''||via_path,'''') AS via_path FROM restrictions');
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |  -1 |   2 |  0.5
+   2 |   1 |   2 |   4 |    1
+   3 |   1 |   5 |   8 |    1
+   4 |   1 |   6 |   9 |    1
+   5 |   1 |   9 |  16 |    1
+   6 |   1 |   4 |   3 |    1
+   7 |   1 |   3 |   5 |    1
+   8 |   1 |   6 |   8 |    1
+   9 |   1 |   5 |   7 |    1
+  10 |   2 |   5 |   8 |    1
+  11 |   2 |   6 |   9 |    1
+  12 |   2 |   9 |  16 |    1
+  13 |   2 |   4 |   3 |    1
+  14 |   2 |   3 |   5 |    1
+  15 |   2 |   6 |  11 |  0.5
+(15 rows)
+
 --q6
+ROLLBACK;
+ROLLBACK
diff --git a/src/trsp/test/issue693.result b/src/trsp/test/issue693.result
index 0feaaa1..014ca69 100644
--- a/src/trsp/test/issue693.result
+++ b/src/trsp/test/issue693.result
@@ -1,6 +1,28 @@
-(0,-1,1,1000)
-(1,1,2,5)
-(2,3,3,10)
-(3,4,4,10)
-(4,2,1,1000)
-(5,-2,-1,0)
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+CREATE TABLE routing (gid serial, length integer, source integer, target integer, reverse_cost integer);
+CREATE TABLE
+INSERT INTO routing (length, source, target, reverse_cost) VALUES
+     (10000, 1, 2, 10000),
+     (5, 3, 1, 5),
+     (10, 4, 3, 10),
+     (10, 2, 4, 10);
+INSERT 0 4
+SELECT pgr_trsp(
+          'SELECT gid as id, source::int4, target::int4, length::float8 as cost, length::float8 as reverse_cost FROM routing', 
+          1, 0.1, 1, 0.9, false, true
+    );
+   pgr_trsp    
+---------------
+ (0,-1,1,1000)
+ (1,1,2,5)
+ (2,3,3,10)
+ (3,4,4,10)
+ (4,2,1,1000)
+ (5,-2,-1,0)
+(6 rows)
+
+ROLLBACK;
+ROLLBACK
diff --git a/src/trsp/test/issue704.result b/src/trsp/test/issue704.result
index 658e0f7..364fa92 100644
--- a/src/trsp/test/issue704.result
+++ b/src/trsp/test/issue704.result
@@ -1,9 +1,82 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+CREATE TABLE maptest as 
+SELECT  671222::integer as id, 318255::integer as  source, 222698::integer as target, 14.02::float8 as cost, 14.02::float8 as reverse_cost UNION ALL
+SELECT  671223, 222698, 36655, 197.16, 197.16 UNION ALL
+SELECT  582877, 408918, 5556, 458.09, 458.09 UNION ALL
+SELECT  582876, 318255, 408918, 3.89, 3.89 UNION ALL
+SELECT  585280, 5556, 454424, 54.84, 54.84;
+SELECT 5
 q1
+SELECT seq, id1 AS node, id2 AS edge, cost::numeric(11,4)
+FROM pgr_trsp(
+    'select * from maptest',
+    582877,     
+    0,          
+    582877,     
+    0.5,        
+    true,        
+    true,      
+    null 
+) PG ;
+ seq | node | edge | cost 
+-----+------+------+------
+(0 rows)
+
 q2
-0|-1|582877|229.0450
-1|-2|-1|0.0000
+SELECT seq, id1 AS node, id2 AS edge, cost::numeric(11,4)
+FROM pgr_trsp(
+    'select * from maptest',
+    582877,     
+    0.0000000001,          
+    582877,     
+    0.5,        
+    true,        
+    true,      
+    null 
+) PG ;
+ seq | node |  edge  |   cost   
+-----+------+--------+----------
+   0 |   -1 | 582877 | 229.0450
+   1 |   -2 |     -1 |   0.0000
+(2 rows)
+
 q3
-0|-1|582877|229.0450
+SELECT seq, id1 AS node, id2 AS edge, cost::numeric(11,4)
+FROM pgr_trsp(
+    'select * from maptest',
+    582877,     
+    0,         
+    582877,     
+    0.5,        
+    true,        
+    true,      
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+) PG ;
+ seq | node |  edge  |   cost   
+-----+------+--------+----------
+   0 |   -1 | 582877 | 229.0450
+(1 row)
+
 q4
-0|-1|582877|229.0450
+SELECT seq, id1 AS node, id2 AS edge, cost::numeric(11,4)
+FROM pgr_trsp(
+    'select * from maptest',
+    582877,     
+    0.0000000001,          
+    582877,     
+    0.5,        
+    true,        
+    true,      
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+) PG ;
+ seq | node |  edge  |   cost   
+-----+------+--------+----------
+   0 |   -1 | 582877 | 229.0450
+(1 row)
+
 q5
+ROLLBACK;
+ROLLBACK
diff --git a/src/trsp/test/issue717.result b/src/trsp/test/issue717.result
index 703b582..9b41630 100644
--- a/src/trsp/test/issue717.result
+++ b/src/trsp/test/issue717.result
@@ -1,153 +1,359 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 -- tests to without restrictions
 -- directed with reverse_cost
-1|1|2|4|1
-2|1|5|7|1
-3|1|8|6|1
-4|2|7|6|1
-5|2|8|7|1
-6|2|5|10|1
-7|2|10|12|1
-8|2|11|-1|0
----------------------------
-1|1|-1|4|0.5
-2|1|5|7|1
-3|1|8|6|0.5
-4|1|-2|-1|0
-5|2|-2|6|0.5
-6|2|8|7|1
-7|2|5|8|1
-8|2|6|11|0.5
-9|2|-3|-2|0
----------------------------
-1|1|-1|1|0.5
-2|1|2|4|1
-3|1|5|8|1
-4|1|6|11|0.5
-5|1|-2|-1|0
-6|2|-2|11|0.5
-7|2|11|13|1
-8|2|12|15|1
-9|2|9|9|1
-10|2|6|8|1
-11|2|5|7|1
-12|2|8|6|0.5
-13|2|-3|-2|0
----------------------------
-1|1|-1|1|0.5
-2|1|2|4|1
-3|1|5|8|1
-4|1|6|11|0.5
-5|1|-2|-1|0
-6|2|-2|11|0.5
-7|2|11|13|1
-8|2|12|15|1
-9|2|9|9|1
-10|2|6|8|1
-11|2|5|7|1
-12|2|8|6|0.5
-13|2|-3|-2|0
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License AS published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+
+
+
+
+
+SELECT * FROM pgr_trspViaVertices(
+    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
+    ARRAY[2, 7, 11]::INTEGER[],     
+    true,  
+    true  
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |   2 |   4 |    1
+   2 |   1 |   5 |   7 |    1
+   3 |   1 |   8 |   6 |    1
+   4 |   2 |   7 |   6 |    1
+   5 |   2 |   8 |   7 |    1
+   6 |   2 |   5 |  10 |    1
+   7 |   2 |  10 |  12 |    1
+   8 |   2 |  11 |  -1 |    0
+(8 rows)
+
+---------------------------
+SELECT * FROM pgr_trspViaEdges(
+    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
+    ARRAY[4,6,11]::INTEGER[],           
+    ARRAY[0.5, 0.5, 0.5]::float8[],     
+    true,  
+    true  
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |  -1 |   4 |  0.5
+   2 |   1 |   5 |   7 |    1
+   3 |   1 |   8 |   6 |  0.5
+   4 |   1 |  -2 |  -1 |    0
+   5 |   2 |  -2 |   6 |  0.5
+   6 |   2 |   8 |   7 |    1
+   7 |   2 |   5 |   8 |    1
+   8 |   2 |   6 |  11 |  0.5
+   9 |   2 |  -3 |  -2 |    0
+(9 rows)
+
+---------------------------
+SELECT * FROM pgr_trspViaEdges(
+    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
+    ARRAY[1,11,6]::INTEGER[],           
+    ARRAY[0.5, 0.5, 0.5]::float8[],     
+    true,  
+    true  
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |  -1 |   1 |  0.5
+   2 |   1 |   2 |   4 |    1
+   3 |   1 |   5 |   8 |    1
+   4 |   1 |   6 |  11 |  0.5
+   5 |   1 |  -2 |  -1 |    0
+   6 |   2 |  -2 |  11 |  0.5
+   7 |   2 |  11 |  13 |    1
+   8 |   2 |  12 |  15 |    1
+   9 |   2 |   9 |   9 |    1
+  10 |   2 |   6 |   8 |    1
+  11 |   2 |   5 |   7 |    1
+  12 |   2 |   8 |   6 |  0.5
+  13 |   2 |  -3 |  -2 |    0
+(13 rows)
+
+---------------------------
+SELECT * FROM pgr_trspViaEdges(
+    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
+    ARRAY[1,11,6]::INTEGER[],           
+    ARRAY[0.5, 0.5, 0.5]::float8[],     
+    true,  
+    true  
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |  -1 |   1 |  0.5
+   2 |   1 |   2 |   4 |    1
+   3 |   1 |   5 |   8 |    1
+   4 |   1 |   6 |  11 |  0.5
+   5 |   1 |  -2 |  -1 |    0
+   6 |   2 |  -2 |  11 |  0.5
+   7 |   2 |  11 |  13 |    1
+   8 |   2 |  12 |  15 |    1
+   9 |   2 |   9 |   9 |    1
+  10 |   2 |   6 |   8 |    1
+  11 |   2 |   5 |   7 |    1
+  12 |   2 |   8 |   6 |  0.5
+  13 |   2 |  -3 |  -2 |    0
+(13 rows)
+
 ---------------------------
 -- directed without reverse_cost
+SELECT * FROM pgr_trspViaVertices(
+    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
+    ARRAY[2, 7, 11]::INTEGER[],     
+    true,  
+    false  
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+(0 rows)
+
 ---------------------------
-1|2|-2|6|0.5
-2|2|8|7|1
-3|2|5|8|1
-4|2|6|11|0.5
-5|2|-3|-2|0
+SELECT * FROM pgr_trspViaEdges(
+    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
+    ARRAY[4,6,11]::INTEGER[],           
+    ARRAY[0.5, 0.5, 0.5]::float8[],     
+    true,  
+    false  
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   2 |  -2 |   6 |  0.5
+   2 |   2 |   8 |   7 |    1
+   3 |   2 |   5 |   8 |    1
+   4 |   2 |   6 |  11 |  0.5
+   5 |   2 |  -3 |  -2 |    0
+(5 rows)
+
 ---------------------------
-1|1|-1|1|0.5
-2|1|2|4|1
-3|1|5|8|1
-4|1|6|11|0.5
-5|1|-2|-2|0
+SELECT * FROM pgr_trspViaEdges(
+    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
+    ARRAY[1,11,6]::INTEGER[],           
+    ARRAY[0.5, 0.5, 0.5]::float8[],     
+    true,  
+    false  
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |  -1 |   1 |  0.5
+   2 |   1 |   2 |   4 |    1
+   3 |   1 |   5 |   8 |    1
+   4 |   1 |   6 |  11 |  0.5
+   5 |   1 |  -2 |  -2 |    0
+(5 rows)
+
 ---------------------------
-1|1|-1|1|0.5
-2|1|2|4|1
-3|1|5|8|1
-4|1|6|11|0.5
-5|1|-2|-2|0
+SELECT * FROM pgr_trspViaEdges(
+    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
+    ARRAY[1,11,6]::INTEGER[],           
+    ARRAY[0.5, 0.5, 0.5]::float8[],     
+    true,  
+    false  
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |  -1 |   1 |  0.5
+   2 |   1 |   2 |   4 |    1
+   3 |   1 |   5 |   8 |    1
+   4 |   1 |   6 |  11 |  0.5
+   5 |   1 |  -2 |  -2 |    0
+(5 rows)
+
 ---------------------------
 -- undirected with reverse_cost
-1|1|2|4|1
-2|1|5|7|1
-3|1|8|6|1
-4|2|7|6|1
-5|2|8|7|1
-6|2|5|10|1
-7|2|10|12|1
-8|2|11|-1|0
----------------------------
-1|1|-1|4|0.5
-2|1|5|7|1
-3|1|8|6|0.5
-4|1|-2|-1|0
-5|2|-2|6|0.5
-6|2|8|7|1
-7|2|5|8|1
-8|2|6|11|0.5
-9|2|-3|-2|0
----------------------------
-1|1|-1|1|0.5
-2|1|2|2|1
-3|1|3|5|1
-4|1|6|11|0.5
-5|1|-2|-1|0
-6|2|-2|11|0.5
-7|2|6|8|1
-8|2|5|7|1
-9|2|8|6|0.5
-10|2|-3|-2|0
----------------------------
-1|1|-1|1|0.5
-2|1|2|2|1
-3|1|3|5|1
-4|1|6|11|0.5
-5|1|-2|-1|0
-6|2|-2|11|0.5
-7|2|6|8|1
-8|2|5|7|1
-9|2|8|6|0.5
-10|2|-3|-2|0
+SELECT * FROM pgr_trspViaVertices(
+    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
+    ARRAY[2, 7, 11]::INTEGER[],     
+    false,  
+    true  
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |   2 |   4 |    1
+   2 |   1 |   5 |   7 |    1
+   3 |   1 |   8 |   6 |    1
+   4 |   2 |   7 |   6 |    1
+   5 |   2 |   8 |   7 |    1
+   6 |   2 |   5 |  10 |    1
+   7 |   2 |  10 |  12 |    1
+   8 |   2 |  11 |  -1 |    0
+(8 rows)
+
+---------------------------
+SELECT * FROM pgr_trspViaEdges(
+    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
+    ARRAY[4,6,11]::INTEGER[],           
+    ARRAY[0.5, 0.5, 0.5]::float8[],     
+    false,  
+    true  
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |  -1 |   4 |  0.5
+   2 |   1 |   5 |   7 |    1
+   3 |   1 |   8 |   6 |  0.5
+   4 |   1 |  -2 |  -1 |    0
+   5 |   2 |  -2 |   6 |  0.5
+   6 |   2 |   8 |   7 |    1
+   7 |   2 |   5 |   8 |    1
+   8 |   2 |   6 |  11 |  0.5
+   9 |   2 |  -3 |  -2 |    0
+(9 rows)
+
+---------------------------
+SELECT * FROM pgr_trspViaEdges(
+    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
+    ARRAY[1,11,6]::INTEGER[],           
+    ARRAY[0.5, 0.5, 0.5]::float8[],     
+    false,  
+    true  
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |  -1 |   1 |  0.5
+   2 |   1 |   2 |   2 |    1
+   3 |   1 |   3 |   5 |    1
+   4 |   1 |   6 |  11 |  0.5
+   5 |   1 |  -2 |  -1 |    0
+   6 |   2 |  -2 |  11 |  0.5
+   7 |   2 |   6 |   8 |    1
+   8 |   2 |   5 |   7 |    1
+   9 |   2 |   8 |   6 |  0.5
+  10 |   2 |  -3 |  -2 |    0
+(10 rows)
+
+---------------------------
+SELECT * FROM pgr_trspViaEdges(
+    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
+    ARRAY[1,11,6]::INTEGER[],           
+    ARRAY[0.5, 0.5, 0.5]::float8[],     
+    false,  
+    true  
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |  -1 |   1 |  0.5
+   2 |   1 |   2 |   2 |    1
+   3 |   1 |   3 |   5 |    1
+   4 |   1 |   6 |  11 |  0.5
+   5 |   1 |  -2 |  -1 |    0
+   6 |   2 |  -2 |  11 |  0.5
+   7 |   2 |   6 |   8 |    1
+   8 |   2 |   5 |   7 |    1
+   9 |   2 |   8 |   6 |  0.5
+  10 |   2 |  -3 |  -2 |    0
+(10 rows)
+
 ---------------------------
 -- undirected without reverse_cost
-1|1|2|4|1
-2|1|5|7|1
-3|1|8|6|1
-4|2|7|6|1
-5|2|8|7|1
-6|2|5|10|1
-7|2|10|12|1
-8|2|11|-1|0
----------------------------
-1|1|-1|4|0.5
-2|1|5|7|1
-3|1|8|6|0.5
-4|1|-2|-1|0
-5|2|-2|6|0.5
-6|2|8|7|1
-7|2|5|8|1
-8|2|6|11|0.5
-9|2|-3|-2|0
----------------------------
-1|1|-1|1|0.5
-2|1|2|4|1
-3|1|5|8|1
-4|1|6|11|0.5
-5|1|-2|-1|0
-6|2|-2|11|0.5
-7|2|6|8|1
-8|2|5|7|1
-9|2|8|6|0.5
-10|2|-3|-2|0
----------------------------
-1|1|-1|1|0.5
-2|1|2|4|1
-3|1|5|8|1
-4|1|6|11|0.5
-5|1|-2|-1|0
-6|2|-2|11|0.5
-7|2|6|8|1
-8|2|5|7|1
-9|2|8|6|0.5
-10|2|-3|-2|0
+SELECT * FROM pgr_trspViaVertices(
+    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
+    ARRAY[2, 7, 11]::INTEGER[],     
+    false,  
+    false  
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |   2 |   4 |    1
+   2 |   1 |   5 |   7 |    1
+   3 |   1 |   8 |   6 |    1
+   4 |   2 |   7 |   6 |    1
+   5 |   2 |   8 |   7 |    1
+   6 |   2 |   5 |  10 |    1
+   7 |   2 |  10 |  12 |    1
+   8 |   2 |  11 |  -1 |    0
+(8 rows)
+
+---------------------------
+SELECT * FROM pgr_trspViaEdges(
+    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
+    ARRAY[4,6,11]::INTEGER[],           
+    ARRAY[0.5, 0.5, 0.5]::float8[],     
+    false,  
+    false  
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |  -1 |   4 |  0.5
+   2 |   1 |   5 |   7 |    1
+   3 |   1 |   8 |   6 |  0.5
+   4 |   1 |  -2 |  -1 |    0
+   5 |   2 |  -2 |   6 |  0.5
+   6 |   2 |   8 |   7 |    1
+   7 |   2 |   5 |   8 |    1
+   8 |   2 |   6 |  11 |  0.5
+   9 |   2 |  -3 |  -2 |    0
+(9 rows)
+
+---------------------------
+SELECT * FROM pgr_trspViaEdges(
+    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
+    ARRAY[1,11,6]::INTEGER[],           
+    ARRAY[0.5, 0.5, 0.5]::float8[],     
+    false,  
+    false  
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |  -1 |   1 |  0.5
+   2 |   1 |   2 |   4 |    1
+   3 |   1 |   5 |   8 |    1
+   4 |   1 |   6 |  11 |  0.5
+   5 |   1 |  -2 |  -1 |    0
+   6 |   2 |  -2 |  11 |  0.5
+   7 |   2 |   6 |   8 |    1
+   8 |   2 |   5 |   7 |    1
+   9 |   2 |   8 |   6 |  0.5
+  10 |   2 |  -3 |  -2 |    0
+(10 rows)
+
+---------------------------
+SELECT * FROM pgr_trspViaEdges(
+    'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
+    ARRAY[1,11,6]::INTEGER[],           
+    ARRAY[0.5, 0.5, 0.5]::float8[],     
+    false,  
+    false  
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |  -1 |   1 |  0.5
+   2 |   1 |   2 |   4 |    1
+   3 |   1 |   5 |   8 |    1
+   4 |   1 |   6 |  11 |  0.5
+   5 |   1 |  -2 |  -1 |    0
+   6 |   2 |  -2 |  11 |  0.5
+   7 |   2 |   6 |   8 |    1
+   8 |   2 |   5 |   7 |    1
+   9 |   2 |   8 |   6 |  0.5
+  10 |   2 |  -3 |  -2 |    0
+(10 rows)
+
 ---------------------------
+ROLLBACK;
+ROLLBACK
diff --git a/src/trsp/test/test.conf b/src/trsp/test/test.conf
index b4d1d30..02c446a 100644
--- a/src/trsp/test/test.conf
+++ b/src/trsp/test/test.conf
@@ -11,10 +11,10 @@
             issue693
             issue704
             issue717
-            trsp_notes_v2.4.0
+            trsp_notes_v2.5.0
             )],
         'documentation' => [qw(
-            trsp_notes_v2.4.0
+            trsp_notes_v2.5.0
             issue704
             doc-trsp
             )]
diff --git a/src/trsp/test/trsp-any-02.result b/src/trsp/test/trsp-any-02.result
index eb82435..26b0249 100644
--- a/src/trsp/test/trsp-any-02.result
+++ b/src/trsp/test/trsp-any-02.result
@@ -1,10 +1,42 @@
-0|-1|1|0.5005
-1|2|4|1.016
-2|5|8|1.064
-3|6|9|1.081
-4|9|16|1.256
-5|4|3|1.009
-6|3|5|1.025
-7|6|8|1.064
-8|5|7|1.049
-9|8|6|0.518000000000001
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+CREATE TABLE restrictions2 (
+    rid integer NOT NULL,
+    to_cost double precision,
+    teid integer,
+    feid integer,
+    via text
+);
+CREATE TABLE
+COPY restrictions2 (rid, to_cost, teid, feid, via) FROM stdin WITH NULL '__NULL__' DELIMITER ',';
+COPY 3
+UPDATE edge_table SET cost = cost + 0.001 * id * id, reverse_cost = reverse_cost + 0.001 * id * id;
+UPDATE 18
+select * from pgr_trsp(
+    'select id::integer, source::integer, target::integer,cost, reverse_cost from edge_table ORDER BY ID',
+    1,    
+    0.5,  
+    6,    
+    0.5,  
+    true, 
+    true, 
+    
+    'select to_cost, teid as target_id, feid||coalesce('',''||via,'''') as via_path from restrictions2');
+ seq | id1 | id2 |       cost        
+-----+-----+-----+-------------------
+   0 |  -1 |   1 |            0.5005
+   1 |   2 |   4 |             1.016
+   2 |   5 |   8 |             1.064
+   3 |   6 |   9 |             1.081
+   4 |   9 |  16 |             1.256
+   5 |   4 |   3 |             1.009
+   6 |   3 |   5 |             1.025
+   7 |   6 |   8 |             1.064
+   8 |   5 |   7 |             1.049
+   9 |   8 |   6 | 0.518000000000001
+(10 rows)
+
+ROLLBACK;
+ROLLBACK
diff --git a/src/trsp/test/trsp_notes_v2.4.0.result b/src/trsp/test/trsp_notes_v2.4.0.result
deleted file mode 100644
index e2db9c7..0000000
--- a/src/trsp/test/trsp_notes_v2.4.0.result
+++ /dev/null
@@ -1,552 +0,0 @@
-# Notes on pgr_trsp for version 2.4.0
-Table of contents
-* [Introduction](#introduction)
-  * [The restriction](#the-restriction)
-* [The Vertices Signature Version](#the-vertices-signature-version)
-  * [No path representation differences](#vertices-no-path-representation-differences)
-  * [Routing from/to same location](#routing-fromto-same-location)
-  * [Undirected graph](#vertices-undirected-graph)
-* [The Edges Signature Version](#the-edges-signature-version)
-  * [No path representation differences](#edges-no-path-representation-differences)
-  * [Definition of a path](#definition-of-a-path)
-  * [Points on the same edge](#points-on-the-same-edge)
-  * [Undirected graph](#edges-undirected-graph)
-  * [Using a points of interest table](#using-a-points-of-interest-table)
-  * [Routing from/to the same point](#routing-fromto-the-same-point)
-  * [Passing in front of other points](#passing-in-front-of-other-points)
-  * [Routing from a vertex to a point](#edges-routing-from-a-vertex-to-a-point)
-* [pgr_trspViaVertices](#pgr_trspviavertices)
-  * [pgr_trspViaVertices No path representation differences](#pgr_trspviavertices-no-path-representation-differences)
-  * [when a path does not exist on the route](#when-a-path-does-not-exist-on-the-route)
-  * [from 2 to 3 to 2](#from-2-to-3-to-2)
-* [pgr_trspViaEdges](#pgr_trspviaedges)
-  * [pgr_trspViaEdges No path representation differences](#pgr_trspviaedges-no-path-representation-differences)
-  * [Using a points of interest table](#pgr_trspviaedges-using-the-pointsofinterest-table)
-
-# Introduction
-pgr_trsp code has issues that are not being fixed yet, but as time passes and new functionality is added to pgRouting with wrappers to **hide** the issues, not to fix them.
-
-For clarity on the queries:
-* _pgr_trsp (with underscore) is the original code
-* pgr_trsp (lower case) represents the wrapper calling the original code
-* pgr_TRSP (upper case) represents the wrapper calling the replacement function, depending on the function, it can be:
-  * pgr_dijkstra
-  * pgr_dijkstraVia
-  * pgr_withPoints
-  * _pgr_withPointsVia
-
-This page intentions is to compare the original code with the wrapped version of the trsp group of functions.
-## The restriction
-The restriction used in the examples does not have to do anything with the graph:
-* No vertex has id: 25, 32 or 33
-* No edge has id: 25, 32 or 33
-```
-$$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, 32, 33::TEXT AS via_path$$
-```
-therefore the shortest path expected are as if there was no restriction involved
-# The Vertices signature version
-## (Vertices) No path representation differences
-Original function code
-* Sometimes it crasses the server when no path was found
-* Sometimes represents with Error a no path found
-* Forcing the user to use the wrapper or the replacement function
-
-Calls to the original function of is no longer allowed without restrictions
-```
-ERROR:  Error computing path: Path Not Found
-```
-dijkstra returns EMPTY SET to represent no path found
-```
-```
-pgr_trsp use the pgr_dijkstra when there are no restrictions
-therefore returns EMPTY SET to represent no path found
-```
-```
-pgr_trsp use the original code when there are restrictions
-therefore throws Error to represent no path found
-```
-ERROR:  Error computing path: Path Not Found
-CONTEXT:  PL/pgSQL function pgr_trsp(text,integer,integer,boolean,boolean,text) line 29 at RETURN QUERY
-```
-## routing from/to same location
-using dijkstra to verify (1 to 1)
-```
-```
-This call uses the replacement function because there are no restrictions (1 to 1)
-therefore is expected to return EMPTY SET to represent no path found
-```
-```
-call forcing the use of the original code (1 to 1)
-* not longer allowed without restrictions
-
-```
-0|1|1|1
-1|2|4|1
-2|5|8|1
-3|6|9|1
-4|9|16|1
-5|4|3|1
-6|3|2|1
-7|2|1|1
-8|1|-1|0
-```
-trsp with restrictions (1 to 1) use the original code
-is expected to return Error to represent no path found
-```
-0|1|1|1
-1|2|4|1
-2|5|8|1
-3|6|9|1
-4|9|16|1
-5|4|3|1
-6|3|2|1
-7|2|1|1
-8|1|-1|0
-```
-trsp calling the original code with restrictions (1 to 1)
-is expected to return Error to represent no path found
-but "finds" a path when there should be no path.
-```
-0|1|1|1
-1|2|4|1
-2|5|8|1
-3|6|9|1
-4|9|16|1
-5|4|3|1
-6|3|2|1
-7|2|1|1
-8|1|-1|0
-```
-## (vertices) Undirected graph
-using Dijkstra to verify the shortest path from (2 to 3) on undirected graph
-```
-1|1|2|2|1|0
-2|2|3|-1|0|1
-```
-using the replacement function because there are no restrictions (2 to 3)
-```
-0|2|2|1
-1|3|-1|0
-```
-call forcing the use of the original code
-* not longer allowed without restrictions
-
-```
-0|2|4|1
-1|5|8|1
-2|6|9|1
-3|9|16|1
-4|4|3|1
-5|3|-1|0
-```
-trsp with restrictions (2 to 3)
-does not find the shortest path
-```
-0|2|4|1
-1|5|8|1
-2|6|9|1
-3|9|16|1
-4|4|3|1
-5|3|-1|0
-```
-calling the original code with restrictions (2 to 3)
-does not find the shortest path
-```
-0|2|4|1
-1|5|8|1
-2|6|9|1
-3|9|16|1
-4|4|3|1
-5|3|-1|0
-```
-# The Edges signature version
-## (Edges) No path representation differences
-Original function code
-* Sometimes it crasses the server when no path was found
-* Sometimes represents with Error a no path found
-* Forcing the user to use the wrapper or the replacement function
-
-Calls to the original function of is no longer allowed without restrictions
-```
-ERROR:  Error computing path: Path Not Found
-```
-pgr_withPoints returns EMPTY SET to represent no path found
-```
-```
-## Definition of a path
-Remember that one characteristic of a path is that for a path of N edges it has N+1 vertices.
-
-For this example, suppose points, where the pid are different even if the edge and fraction are different.
-One point might be on the left side other on the right side, pgr_trsp does not take into account
-the side of the point
-calls forcing the use of the original code
-* not longer allowed without restrictions
-
-```
-0|-1|1|0
-```
-* with restrictions
-```
-0|-1|1|0
-```
-Using the *pgr_withPoints* it returns a path of N edge and N+1 vertices
-```
-1|1|-1|1|0|0
-2|2|-2|-1|0|0
-```
-The *pgr_withPoints* is used when there are no restrictions
-```
-0|-1|1|0
-1|-2|-1|0
-```
-The original *_pgr_trsp* code is used when there are restrictions
-```
-0|-1|1|0
-```
-note that pgr_withPoints returns an EMPTY SET when the point is the same
-```
-```
-## Points on the same edge
-The *pgr_withPoints* is used when there are no restrictions
-* it returns a path of N edges and N+1 vertices
-```
-0|-1|1|0.3
-1|-2|-1|0
-```
-The original *_pgr_trsp* is used when there are restrictions
-* it returns a path of N edges and N vertex instead of N edge and N+1 vertices
-```
-0|-1|1|0.3
-```
-## (Edges) Undirected graph
-the shortest path obtained with *pgr_withPoints*
-```
-1|1|-1|4|0.5|0
-2|2|2|2|0.8|0.5
-3|3|-2|-1|0|1.3
-```
-The original *_pgr_trsp* is used when there are restrictions
-
-```
-0|-1|4|0.5
-1|2|2|0.8
-2|-2|-1|0
-```
-when using restrictions the original *_pgr_trsp* is used internally
-* it returns a path of N edges and N vertex instead of N edge and N+1 vertices
-* it does not return the shortest path.
-
-```
-0|-1|4|0.5
-1|5|8|1
-2|6|9|1
-3|9|16|1
-4|4|3|1
-5|3|2|0.2
-```
-## Using a points of interest table
-The points of interest
-```
-1|1.8|0.4|1|l|0.4|0101000000CDCCCCCCCCCCFC3F9A9999999999D93F|010100000000000000000000409A9999999999D93F
-2|4.2|2.4|15|r|0.4|0101000000CDCCCCCCCCCC10403333333333330340|010100000000000000000010403333333333330340
-3|2.6|3.2|12|l|0.6|0101000000CDCCCCCCCCCC04409A99999999990940|0101000000CDCCCCCCCCCC04400000000000000840
-4|0.3|1.8|6|r|0.3|0101000000333333333333D33FCDCCCCCCCCCCFC3F|0101000000333333333333D33F0000000000000040
-5|2.9|1.8|5|l|0.8|01010000003333333333330740CDCCCCCCCCCCFC3F|01010000000000000000000840CDCCCCCCCCCCFC3F
-6|2.2|1.7|4|b|0.7|01010000009A99999999990140333333333333FB3F|01010000000000000000000040333333333333FB3F
-```
-On *pgr_trsp*, to be able to use the table information:
-* Each parameter has to be extracted explicitly from the table
-* Regardles of the point pid original value
-  * will always be -1 for the first point
-  * will always be -2 for the second point
-```
-0|-1|1|0.6
-1|2|4|0.7
-2|-2|-1|0
-```
-On *pgr_withPoints*, to be able to use the table information:
-* select statement on the *pointsOfInterest* table
-* *Negative* the id to represent the id is a pid
-* The points pids in the result are not renumbered
-* The points pids in the result are represented with negative sign
-```
-1|1|-1|1|0.6|0
-2|2|2|4|0.7|0.6
-3|3|-6|-1|0|1.3
-```
-## routing from/to the same point
-using pgr_withPoints to check results
-expecting EMPTY SET to represent no path found
-```
-```
-This call uses the replacement function because there are no restrictions
-* Because the pid is not involved the points are considered different
-* it returns a path
-
-```
-0|-1|1|0
-1|-2|-1|0
-```
-pgr_trsp with restrictions use the original code
-* it returns a path of N edges and N vertex instead of N edge and N+1 vertices
-
-```
-0|-1|1|0
-```
-## passing in front of other points
-using pgr_withPoints to verify the shortest path from pids (1 to 3)
-```
-1|1|-1|1|0.6|0
-2|2|2|4|1|0.6
-3|3|5|10|1|1.6
-4|4|10|12|0.6|2.6
-5|5|-3|-1|0|3.2
-```
-**pgr_withPoints** can be used to see when the route passes in front of other points
-In this example point pid=6 is passed in front of
-```
-1|1|-1|1|0.6|0
-2|2|2|4|0.7|0.6
-3|3|-6|4|0.3|1.3
-4|4|5|10|1|1.6
-5|5|10|12|0.6|2.6
-6|6|-3|-1|0|3.2
-```
-Can not be used to see if other points are passed in front of.
-The pointsOfInterest table is not part of the parameter
-```
-0|-1|1|0.6
-1|2|4|1
-2|5|10|1
-3|10|12|0.6
-4|-2|-1|0
-```
-## (edges) Routing from a vertex to a point
-Showing *pgr_withPoints* results of the shortest path from vid 6 to pid 1
-```
-1|1|6|8|1|0
-2|2|5|4|1|1
-3|3|2|1|0.6|2
-4|4|-1|-1|0|2.6
-```
-* Vertex 6 is on edge 8 at 1 fraction
-* Vertex 6 is also edge 11 at 0 fraction
-* Undefined behaviour when at least one of the "points" is an actual vertex
-
-```
-```
-# pgr_trspViaVertices
-## pgr_trspViaVertices No path representation differences
-pgr_trspViaVertices uses _pgr_trsp which as mentioned before
-* Sometimes it crasses the server when no path was found
-* Sometimes represents with Error a no path found
-* Forcing the user to use the wrapper or the replacement function
-
-Calls to the original function of is no longer allowed without restrictions
-```
-ERROR:  Error computing path: Path Not Found
-CONTEXT:  PL/pgSQL function _pgr_trspviavertices(text,integer[],boolean,boolean,text) line 23 at FOR over SELECT rows
-ERROR:  Error computing path: Path Not Found
-CONTEXT:  PL/pgSQL function _pgr_trspviavertices(text,integer[],boolean,boolean,text) line 23 at FOR over SELECT rows
-```
-**pgr_dijkstraVia** returning what paths of the route it finds or EMPTY SET when non is found
-this case none is found
-```
-```
-this case only from 2 to 1 is found
-```
-1|3|1|2|1|2|1|1|0|0
-2|3|2|2|1|1|-2|0|1|1
-```
-the **pgr_dijkstraVia** used are for complete routes so its marked as **strict:=true**
-therefore the expected result is EMPTY SET to represent no route was found
-```
-```
-## when a path does not exist on the route
-pgr_TRSPViaVertices using the *pgr_dijkstraVia* when there are no restrictions.
-Because there is no path from 1 to 1 then there is no complete route 1 to 1 to 2
-therefore the expected result is EMPTY SET to represent no route was found
-```
-```
-Calls to the original function of is no longer allowed without restrictions
-```
-1|1|1|1|1
-2|1|2|4|1
-3|1|5|8|1
-4|1|6|9|1
-5|1|9|16|1
-6|1|4|3|1
-7|1|3|2|1
-8|1|2|1|1
-9|2|1|1|1
-10|2|2|-1|0
-```
-with restrictions the original code is used
-```
-1|1|1|1|1
-2|1|2|4|1
-3|1|5|8|1
-4|1|6|9|1
-5|1|9|16|1
-6|1|4|3|1
-7|1|3|2|1
-8|1|2|1|1
-9|2|1|1|1
-10|2|2|-1|0
-```
-Using explicitly the original code
-```
-1|1|1|1|1
-2|1|2|4|1
-3|1|5|8|1
-4|1|6|9|1
-5|1|9|16|1
-6|1|4|3|1
-7|1|3|2|1
-8|1|2|1|1
-9|2|1|1|1
-10|2|2|-1|0
-```
-## from 2 to 3 to 2
-dijkstra via shows the shortest route on the two paths
-```
-1|1|1|2|3|2|2|1|0|0
-2|1|2|2|3|3|-1|0|1|1
-3|2|1|3|2|3|2|1|0|1
-4|2|2|3|2|2|-2|0|1|2
-```
-the replacement function **pgr_dijkstraVia** is used because there are no restrictions
-```
-1|1|2|2|1
-2|2|3|2|1
-3|2|2|-1|0
-```
-Calls to the original function of is no longer allowed without restrictions
-```
-1|1|2|4|1
-2|1|5|8|1
-3|1|6|9|1
-4|1|9|16|1
-5|1|4|3|1
-6|2|3|2|1
-7|2|2|-1|0
-```
-# pgr_trspViaEdges
-*pgr_trspViaEdges* will use the original code when
-* There are restrictions
-* A point is a vertex in disguise (with pcts value of 0)
-
-What it returns
-* Error to represent no route
-* the points are renumbered to -1, -2 .. -N
-* if a point is part of a path it will **not** show on the path
-
-Exaple execution
-```
-1|1|-1|1|0.9
-2|1|2|4|1
-3|1|5|8|1
-4|1|6|9|1
-5|1|9|16|1
-6|1|4|3|1
-7|1|3|2|1
-8|2|2|1|0.5
-```
-A temporay wraper function is used when:
-* There are no restrictions
-* Before: No point is a vertex in disguise (with pcts value of 0)
-* Now: c$Undefined behaviour when a point is a vertex in disguise (with pcts value of 0)
-
-Internaly:
-* builds a new graph and calls pgr_dijkstraVia
-
-What it returns
-* returns EMPTY SET to represent no route
-* edge = -1 in the result to represent the end of a intermediate path
-* edge = -2 in the result to represent the end of the last path & route
-* the points are renumbered to -1, -2 .. -N
-* if a point is part of a path it will show on the path
-
-Note: I do not mention the wrapper name due to the fact that this is not official documentation
-Note: I will use *_pgr_withPointsVia* as the wrapper name just for sake of this notes
-Example excution
-```
-1|1|1|-1|-2|-1|1|0.1|0|0
-2|1|2|-1|-2|2|2|0.5|0.1|0.1
-3|1|3|-1|-2|-2|-1|0|0.6|0.6
-4|2|1|-2|-3|-2|2|0.5|0|0.6
-5|2|2|-2|-3|2|1|0.5|0.5|1.1
-6|2|3|-2|-3|-3|-2|0|1|1.6
-```
-## pgr_trspViaEdges No path representation differences
-This example no path is found (edge 17 is disconnected) from the big graph.
-* There is a vertex in disguise (fraction 0 or 1)
-* Undefined behaviour
-
-```
-1||||
-```
-This example no path is found (edge 17 is disconnected) from the big graph.
-* Has a restriction
-* *pgr_trspViaEdges* original code is used
-* throws error to represent no route was not found
-
-```
-SELECT * FROM pgr_trspViaEdges(
-$$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-ARRAY[1, 17, 1], ARRAY[0.5,0.5,0.5],
-false, true,
-$$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, 32, 33::TEXT AS via_path$$
-);
-server closed the connection unexpectedly
-This probably means the server terminated abnormally
-before or while processing the request.
-The connection to the server was lost. Attempting reset: Failed.
-```
-This example no path is found (edge 17 is disconnected) from the big graph.
-* *_pgr_withPointsVia* is used
-* returns EMPTY SET to represent no route
-
-```
-```
-## (pgr_trspViaEdges) Using the pointsOfInterest table
-Only routing points
-when *_pgr_withPointsVia* is used
-* the renumbering still takes place
-
-```
-1|1|-1|1|0.4
-2|1|2|4|0.3
-3|1|-3|4|0.3
-4|1|5|10|1
-5|1|10|12|0.6
-6|1|-2|-1|0
-7|2|-2|12|0.6
-8|2|10|10|1
-9|2|5|4|0.3
-10|2|-3|-2|0
-```
-Only routing points
-when originalcode is used (because there is a restriction)
-
-```
-1|1|-1|1|0.6
-2|1|2|4|1
-3|1|5|10|1
-4|1|10|12|1
-5|2|11|13|1
-6|2|12|15|1
-7|2|9|9|1
-8|2|6|8|1
-9|2|5|4|0.3
-```
-Routing points & vertices
-* vertex 6 is on edge 11 with fraction 0
-* Undefined behavior
-```
-1|1|-1|1|0.6
-2|1|2|4|1
-3|1|5|10|1
-4|1|10|12|0.6
-5|1|-2|-1|0
-```
diff --git a/src/trsp/test/trsp_notes_v2.4.0.test.sql b/src/trsp/test/trsp_notes_v2.4.0.test.sql
deleted file mode 100644
index e333de8..0000000
--- a/src/trsp/test/trsp_notes_v2.4.0.test.sql
+++ /dev/null
@@ -1,814 +0,0 @@
-ROLLBACK;
-\echo # Notes on pgr_trsp for version 2.4.0
-
-\echo Table of contents
-
-\echo * [Introduction](#introduction)
-\echo '  * [The restriction](#the-restriction)'
-\echo * [The Vertices Signature Version](#the-vertices-signature-version)
-\echo '  * [No path representation differences](#vertices-no-path-representation-differences)'
-\echo '  * [Routing from/to same location](#routing-fromto-same-location)'
-\echo '  * [Undirected graph](#vertices-undirected-graph)'
-\echo * [The Edges Signature Version](#the-edges-signature-version)
-\echo '  * [No path representation differences](#edges-no-path-representation-differences)'
-\echo '  * [Definition of a path](#definition-of-a-path)'
-\echo '  * [Points on the same edge](#points-on-the-same-edge)'
-\echo '  * [Undirected graph](#edges-undirected-graph)'
-\echo '  * [Using a points of interest table](#using-a-points-of-interest-table)'
-\echo '  * [Routing from/to the same point](#routing-fromto-the-same-point)'
-\echo '  * [Passing in front of other points](#passing-in-front-of-other-points)'
-\echo '  * [Routing from a vertex to a point](#edges-routing-from-a-vertex-to-a-point)'
-\echo * [pgr_trspViaVertices](#pgr_trspviavertices)
-\echo '  * [pgr_trspViaVertices No path representation differences](#pgr_trspviavertices-no-path-representation-differences)'
-\echo '  * [when a path does not exist on the route](#when-a-path-does-not-exist-on-the-route)'
-\echo '  * [from 2 to 3 to 2](#from-2-to-3-to-2)' 
-\echo * [pgr_trspViaEdges](#pgr_trspviaedges)
-\echo '  * [pgr_trspViaEdges No path representation differences](#pgr_trspviaedges-no-path-representation-differences)'
-\echo '  * [Using a points of interest table](#pgr_trspviaedges-using-the-pointsofinterest-table)'
-\echo 
-
-
-
-\echo # Introduction
-\echo pgr_trsp code has issues that are not being fixed yet, but as time passes and new functionality is added to pgRouting with wrappers to **hide** the issues, not to fix them.
-\echo 
-\echo For clarity on the queries:
-\echo * _pgr_trsp (with underscore) is the original code
-\echo * pgr_trsp (lower case) represents the wrapper calling the original code
-\echo * pgr_TRSP (upper case) represents the wrapper calling the replacement function, depending on the function, it can be:
-\echo '  * pgr_dijkstra'
-\echo '  * pgr_dijkstraVia'
-\echo '  * pgr_withPoints'
-\echo '  * _pgr_withPointsVia'
-\echo 
-
-\echo This page intentions is to compare the original code with the wrapped version of the trsp group of functions.
-\echo ## The restriction
-
-\echo The restriction used in the examples does not have to do anything with the graph:
-\echo * No vertex has id: 25, 32 or 33
-\echo * No edge has id: 25, 32 or 33
-\echo '\`\`\`'
-\echo $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
-\echo '\`\`\`'
-
-\echo therefore the shortest path expected are as if there was no restriction involved
-
-
--------------------------------------------------------------------------------------------
-\echo # The Vertices signature version
-------------------
-\echo ## (Vertices) No path representation differences
-\echo Original function code
-\echo  * Sometimes it crasses the server when no path was found
-\echo  * Sometimes represents with Error a no path found
-\echo  * Forcing the user to use the wrapper or the replacement function
-\echo 
-\echo Calls to the original function of is no longer allowed without restrictions
-\echo '\`\`\`'
-SELECT * FROM _pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    1, 15, true, true
-);  
-\echo '\`\`\`'
-
-\echo dijkstra returns EMPTY SET to represent no path found
-\echo '\`\`\`'
-SELECT * FROM pgr_dijkstra(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    1, 15
-);  
-\echo '\`\`\`'
-
-\echo pgr_trsp use the pgr_dijkstra when there are no restrictions
-\echo therefore returns EMPTY SET to represent no path found
-\echo '\`\`\`'
-SELECT * FROM pgr_TRSP(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    1, 15, true, true
-);  
-\echo '\`\`\`'
-
-\echo pgr_trsp use the original code  when there are restrictions
-\echo therefore throws Error to represent no path found
-\echo '\`\`\`'
- SELECT * FROM pgr_trsp(
-     $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-     1, 15, true, true,
-     $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
-);  
-\echo '\`\`\`'
-
-
-------------------
-\echo ## routing from/to same location
-
-\echo using dijkstra to verify (1 to 1)
-\echo '\`\`\`'
-SELECT * FROM pgr_dijkstra(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    1, 1
-);  
-\echo '\`\`\`'
-
-
-\echo This call uses the replacement function because there are no restrictions (1 to 1)
-\echo therefore is expected to return EMPTY SET to represent no path found
-\echo '\`\`\`'
-SELECT * FROM pgr_TRSP(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    1, 1,  true, true
-);
-\echo '\`\`\`'
-
-
-\echo call forcing the use of the original code (1 to 1)
-\echo * not longer allowed without restrictions
-\echo 
-\echo '\`\`\`'
-SELECT * FROM _pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    1, 1,  true, true
-);
-\echo '\`\`\`'
-
-
-\echo trsp with restrictions (1 to 1) use the original code
-\echo is expected to return Error to represent no path found
-\echo '\`\`\`'
-SELECT * FROM pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    1, 1,  
-    true, 
-    true,
-    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
-);
-\echo '\`\`\`'
-
-\echo trsp calling the original code with restrictions (1 to 1)
-\echo is expected to return Error to represent no path found
-\echo but "finds" a path when there should be no path.
-\echo '\`\`\`'
-SELECT * FROM _pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    1, 1,  
-    true, 
-    true,
-    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
-);
-\echo '\`\`\`'
-
-
-------------------
-\echo ## (vertices) Undirected graph
-
-\echo using Dijkstra to verify the shortest path from (2 to 3) on undirected graph
-\echo '\`\`\`'
-SELECT * FROM pgr_dijkstra(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    2, 3, false
-);  
-\echo '\`\`\`'
-
-\echo using the replacement function because there are no restrictions (2 to 3)
-\echo '\`\`\`'
-SELECT * FROM pgr_TRSP(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    2, 3,
-    false, 
-    true
-);
-\echo '\`\`\`'
-
-\echo call forcing the use of the original code
-\echo * not longer allowed without restrictions
-\echo 
-\echo '\`\`\`'
-SELECT * FROM _pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    2, 3,
-    false, true
-);
-\echo '\`\`\`'
-
-\echo trsp with restrictions (2 to 3)
-\echo does not find the shortest path
-\echo '\`\`\`'
-SELECT * FROM pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    2, 3,
-    false, true,
-    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
-);
-\echo '\`\`\`'
-
-\echo calling the original code with restrictions (2 to 3)
-\echo does not find the shortest path
-\echo '\`\`\`'
-SELECT * FROM _pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    2, 3,
-    false, 
-    true,
-    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
-);
-\echo '\`\`\`'
-
------------------------------------------------------------------------------------------------
-\echo # The Edges signature version
-
-------------------HERE
-\echo ## (Edges) No path representation differences
-\echo Original function code
-\echo  * Sometimes it crasses the server when no path was found
-\echo  * Sometimes represents with Error a no path found
-\echo  * Forcing the user to use the wrapper or the replacement function
-\echo 
-\echo Calls to the original function of is no longer allowed without restrictions
-\echo '\`\`\`'
-SELECT * FROM _pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    1, 0.5, 17, 0.5, true, true
-);  
-\echo '\`\`\`'
-\echo pgr_withPoints returns EMPTY SET to represent no path found
-\echo '\`\`\`'
-SELECT * FROM pgr_withPoints(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    $$(SELECT 1 as pid, 1 as edge_id, 0.5::float as fraction)
-    UNION
-    (SELECT 2, 17, 0.5)$$,
-    -1, -2
-);  
-\echo '\`\`\`'
-
-
-------------------
-\echo ## Definition of a path
-\echo Remember that one characteristic of a path is that for a path of N edges it has N+1 vertices.
-\echo 
-\echo For this example, suppose points, where the pid are different even if the edge and fraction are different.
-\echo One point might be on the left side other on the right side, pgr_trsp does not take into account
-\echo the side of the point
-
-\echo calls forcing the use of the original code
-\echo * not longer allowed without restrictions
-\echo 
-\echo '\`\`\`'
-SELECT * FROM _pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    1, 0.5, 1, 0.5, true, true
-);  
-\echo '\`\`\`'
-\echo * with restrictions
-\echo '\`\`\`'
-SELECT * FROM _pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    1, 0.5, 1, 0.5, true, true,
-    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
-);  
-\echo '\`\`\`'
-
-\echo Using the *pgr_withPoints* it returns a path of N edge and N+1 vertices
-\echo '\`\`\`'
-SELECT * FROM pgr_withPoints(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    $$(SELECT 1 as pid, 1 as edge_id, 0.5::float as fraction)
-    UNION
-    (SELECT 2, 1, 0.5)$$,
-    -1, -2
-);  
-\echo '\`\`\`'
-
-\echo The *pgr_withPoints* is used when there are no restrictions
-\echo '\`\`\`'
-SELECT * FROM pgr_TRSP(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    1, 0.5, 1, 0.5, true, true
-);  
-\echo '\`\`\`'
-
-\echo The original *_pgr_trsp* code is used when there are restrictions
-\echo '\`\`\`'
-SELECT * FROM pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    1, 0.5, 1, 0.5, true, true,
-    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
-);  
-\echo '\`\`\`'
-
-\echo note that pgr_withPoints returns an EMPTY SET when the point is the same
-\echo '\`\`\`'
-SELECT * FROM pgr_withPoints(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    $$(SELECT 1 as pid, 1 as edge_id, 0.5::float as fraction)
-    UNION
-    (SELECT 2, 1, 0.5)$$,
-    -1, -1
-);
-\echo '\`\`\`'
-
-------------------
-\echo ## Points on the same edge
-
-\echo The *pgr_withPoints* is used when there are no restrictions
-\echo * it returns a path of N edges and N+1 vertices
-\echo '\`\`\`'
-SELECT * FROM pgr_TRSP(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    1, 0.5, 1, 0.8, true, true
-);  
-\echo '\`\`\`'
-
-\echo The original *_pgr_trsp* is used when there are restrictions
-\echo * it returns a path of N edges and N vertex instead of N edge and N+1 vertices
-\echo '\`\`\`'
-SELECT * FROM pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    1, 0.5, 1, 0.8, true, true,
-    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
-
-);  
-\echo '\`\`\`'
-
-------------------
-\echo ## (Edges) Undirected graph
-\echo the shortest path obtained with *pgr_withPoints*
-\echo '\`\`\`'
-SELECT * FROM pgr_withPoints(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    $$(SELECT 1 as pid, 4 as edge_id, 0.5::float as fraction)
-    UNION
-    (SELECT 2, 2, 0.8)$$,
-    -1, -2, directed:=false
-);
-\echo '\`\`\`'
-
-\echo The original *_pgr_trsp* is used when there are restrictions
-\echo 
-\echo '\`\`\`'
-SELECT * FROM pgr_TRSP(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    4, 0.5, 2, 0.8, false, true
-);
-\echo '\`\`\`'
-
-\echo when using restrictions the original *_pgr_trsp* is used internally
-\echo * it returns a path of N edges and N vertex instead of N edge and N+1 vertices
-\echo * it does not return the shortest path.
-\echo 
-\echo '\`\`\`'
-SELECT * FROM pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    4, 0.5, 2, 0.8, false, true,
-    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
-);
-\echo '\`\`\`'
-
-
-----------------
-\echo ## Using a points of interest table
-\echo The points of interest
-\echo '\`\`\`'
-SELECT * FROM pointsOfInterest;
-\echo '\`\`\`'
-
-\echo On *pgr_trsp*, to be able to use the table information:
-\echo * Each parameter has to be extracted explicitly from the table
-\echo * Regardles of the point pid original value
-\echo '  * will always be -1 for the first point'
-\echo '  * will always be -2 for the second point'
-\echo '\`\`\`'
-SELECT * FROM pgr_TRSP(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
-    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
-    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 6),
-    (SELECT fraction  FROM pointsOfInterest WHERE pid = 6),
-    true, true
-);  
-\echo '\`\`\`'
-
-\echo On *pgr_withPoints*, to be able to use the table information:
-\echo * select statement on the *pointsOfInterest* table
-\echo * *Negative* the id to represent the id is a pid
-\echo * The points pids in the result are not renumbered
-\echo * The points pids in the result are represented with negative sign
-\echo '\`\`\`'
-SELECT * FROM pgr_withPoints(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    $$SELECT pid, edge_id, fraction FROM pointsOfInterest$$,
-    -1, -6
-);  
-\echo '\`\`\`'
-
-
-----------------
-\echo ## routing from/to the same point
-
-\echo using pgr_withPoints to check results
-\echo expecting EMPTY SET to represent no path found
-\echo '\`\`\`'
-SELECT * FROM pgr_withPoints(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    $$SELECT pid, edge_id, fraction FROM pointsOfInterest$$,
-    -1, -1
-);  
-\echo '\`\`\`'
-
-
-\echo This call uses the replacement function because there are no restrictions
-\echo * Because the pid is not involved the points are considered different
-\echo * it returns a path
-\echo 
-\echo '\`\`\`'
-SELECT * FROM pgr_TRSP(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
-    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
-    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
-    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
-    true, true
-);
-\echo '\`\`\`'
-
-
-\echo pgr_trsp with restrictions use the original code
-\echo * it returns a path of N edges and N vertex instead of N edge and N+1 vertices
-\echo 
-\echo '\`\`\`'
-SELECT * FROM pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
-    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
-    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
-    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
-    true, true,
-    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
-);
-\echo '\`\`\`'
-
-
-----------------
-\echo ## passing in front of other points
-
-\echo using pgr_withPoints to verify the shortest path from pids (1 to 3)
-\echo '\`\`\`'
-SELECT * FROM pgr_withPoints(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    $$SELECT pid, edge_id, fraction FROM pointsOfInterest$$,
-    -1, -3
-);  
-\echo '\`\`\`'
-
-\echo **pgr_withPoints** can be used to see when the route passes in front of other points
-\echo In this example point pid=6 is passed in front of
-\echo '\`\`\`'
-SELECT * FROM pgr_withPoints(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    $$SELECT pid, edge_id, fraction FROM pointsOfInterest$$,
-    -1, -3, details:=true
-);  
-\echo '\`\`\`'
-
-\echo Can not be used to see if other points are passed in front of.
-\echo The pointsOfInterest table is not part of the parameter
-\echo '\`\`\`'
-SELECT * FROM pgr_TRSP(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
-    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
-    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 3),
-    (SELECT fraction  FROM pointsOfInterest WHERE pid = 3),
-    true, true
-);
-\echo '\`\`\`'
-
-----------------
-\echo ## (edges) Routing from a vertex to a point
-
-\echo Showing *pgr_withPoints* results of the shortest path from vid 6 to pid 1
-\echo '\`\`\`'
-SELECT * FROM pgr_withPoints(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
-    $$SELECT pid, edge_id, fraction FROM pointsOfInterest$$,
-    6, -1
-);  
-\echo '\`\`\`'
-
-\echo * Vertex 6 is on edge 8 at 1 fraction
-\echo * Vertex 6 is also edge 11 at 0 fraction
-\echo * Undefined behaviour when at least one of the "points" is an actual vertex
-\echo
-\echo '\`\`\`'
-SELECT * FROM pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    8, 1,
-    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
-    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
-    true, true
-);
-SELECT * FROM pgr_trsp(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    11, 0,
-    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
-    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
-    true, true
-);
-\echo '\`\`\`'
-
----------------------------------------------------------------
-
-\echo # pgr_trspViaVertices
-------------------
-\echo ## pgr_trspViaVertices No path representation differences
-
-\echo pgr_trspViaVertices uses _pgr_trsp which as mentioned before
-\echo  * Sometimes it crasses the server when no path was found
-\echo  * Sometimes represents with Error a no path found
-\echo  * Forcing the user to use the wrapper or the replacement function
-\echo 
-\echo Calls to the original function of is no longer allowed without restrictions
-\echo '\`\`\`'
-SELECT * FROM _pgr_trspViaVertices(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[1, 15, 2],
-    false, true
-);
-SELECT * FROM _pgr_trspViaVertices(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[1, 15, 2, 1],
-    false, true
-);
-\echo '\`\`\`'
-
-\echo **pgr_dijkstraVia** returning what paths of the route it finds or EMPTY SET when non is found
-\echo this case none is found
-\echo '\`\`\`'
-SELECT * FROM pgr_dijkstraVia(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[1, 15, 2],
-    false
-);
-\echo '\`\`\`'
-
-
-\echo this case only from 2 to 1 is found
-\echo '\`\`\`'
-SELECT * FROM pgr_dijkstraVia(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[1, 15, 2, 1],
-    false
-);
-\echo '\`\`\`'
-
-\echo the **pgr_dijkstraVia** used are for complete routes so its marked as **strict:=true** 
-\echo therefore the expected result is EMPTY SET to represent no route was found
-\echo '\`\`\`'
-SELECT * FROM pgr_dijkstraVia(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[1, 1, 2],
-    false,
-    strict := true
-);
-\echo '\`\`\`'
-
-
-\echo ## when a path does not exist on the route
-\echo pgr_TRSPViaVertices using the *pgr_dijkstraVia* when there are no restrictions.
-\echo Because there is no path from 1 to 1 then there is no complete route 1 to 1 to 2
-\echo therefore the expected result is EMPTY SET to represent no route was found
-\echo '\`\`\`'
-SELECT * FROM pgr_TRSPViaVertices(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[1, 1, 2],
-    false, true
-);
-\echo '\`\`\`'
-
-\echo Calls to the original function of is no longer allowed without restrictions
-\echo '\`\`\`'
-SELECT * FROM _pgr_trspViaVertices(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[1, 1, 2],
-    false, true
-);
-\echo '\`\`\`'
-
-\echo with restrictions the original code is used
-\echo '\`\`\`'
-SELECT * FROM pgr_trspViaVertices(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[1, 1, 2],
-    false, true,
-    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
-);
-\echo '\`\`\`'
-
-
-\echo Using explicitly the original code
-\echo '\`\`\`'
-SELECT * FROM _pgr_trspViaVertices(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[1, 1, 2],
-    false, true,
-    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
-);
-\echo '\`\`\`'
-
-
-\echo ## from 2 to 3 to 2
-
-
-\echo dijkstra via shows the shortest route on the two paths
-\echo '\`\`\`'
-SELECT * FROM pgr_dijkstraVia(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[2, 3, 2],
-    false 
-);
-\echo '\`\`\`'
-
-\echo the replacement function **pgr_dijkstraVia** is used because there are no restrictions
-\echo '\`\`\`'
-SELECT * FROM pgr_TRSPViaVertices(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[2, 3, 2],
-    false, 
-    true
-);
-\echo '\`\`\`'
-
-\echo Calls to the original function of is no longer allowed without restrictions
-\echo '\`\`\`'
-SELECT * FROM _pgr_trspViaVertices(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[2, 3, 2],
-    false, 
-    true
-);
-\echo '\`\`\`'
-
-
-
----------------------------------------------------------------
-
-\echo # pgr_trspViaEdges
-------------------
-
-\echo *pgr_trspViaEdges* will use the original code when
-\echo * There are restrictions
-\echo * A point is a vertex in disguise (with pcts value of 0)
-\echo
-\echo What it returns
-\echo * Error to represent no route
-\echo * the points are renumbered to -1, -2 .. -N 
-\echo * if a point is part of a path it will **not** show on the path
-\echo
-
-\echo Exaple execution
-\echo '\`\`\`'
-SELECT * FROM pgr_trspViaEdges(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[1, 2, 1], ARRAY[0.1,0.5,0.5],
-    false, true,
-    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
-);
-
-\echo '\`\`\`'
-\echo A temporay wraper function is used when: 
-\echo * There are no restrictions
-\echo * Before: No point is a vertex in disguise (with pcts value of 0)
-\echo * Now: c$Undefined behaviour when a point is a vertex in disguise (with pcts value of 0)
-\echo
-\echo Internaly:
-\echo * builds a new graph and calls pgr_dijkstraVia
-\echo
-\echo What it returns
-\echo * returns EMPTY SET to represent no route
-\echo * edge = -1 in the result to represent the end of a intermediate path
-\echo * edge = -2 in the result to represent the end of the last path & route
-\echo * the points are renumbered to -1, -2 .. -N 
-\echo * if a point is part of a path it will show on the path
-\echo
-\echo Note: I do not mention the wrapper name due to the fact that this is not official documentation
-\echo Note: I will use *_pgr_withPointsVia* as the wrapper name just for sake of this notes
-
-\echo Example excution
-\echo '\`\`\`'
-SELECT * FROM _pgr_withPointsVia(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[1, 2, 1], ARRAY[0.1,0.5,0.5],
-    directed := false
-);
-\echo '\`\`\`'
-
-
-\echo ## pgr_trspViaEdges No path representation differences
-----------------
-
-\echo This example no path is found (edge 17 is disconnected) from the big graph.
-\echo * There is a vertex in disguise (fraction 0 or 1)
-\echo * Undefined behaviour
-\echo
-\echo '\`\`\`'
-SELECT * FROM pgr_trspViaEdges(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[1, 17, 1], ARRAY[0,0.5,0.5],
-    false, true
-);
-\echo '\`\`\`'
-
-
-\echo This example no path is found (edge 17 is disconnected) from the big graph.
-\echo * Has a restriction
-\echo * *pgr_trspViaEdges* original code is used
-\echo * throws error to represent no route was not found
-\echo
-\echo '\`\`\`'
-\echo SELECT * FROM pgr_trspViaEdges(
-\echo     $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-\echo     ARRAY[1, 17, 1], ARRAY[0.5,0.5,0.5],
-\echo     false, true,
-\echo     $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
-\echo );
-\echo server closed the connection unexpectedly
-\echo This probably means the server terminated abnormally
-\echo before or while processing the request.
-\echo The connection to the server was lost. Attempting reset: Failed.
-\echo '\`\`\`'
-
-\echo This example no path is found (edge 17 is disconnected) from the big graph.
-\echo * *_pgr_withPointsVia* is used
-\echo * returns EMPTY SET to represent no route
-\echo
-\echo '\`\`\`'
-SELECT * FROM pgr_trspViaEdges(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[1, 17, 1], ARRAY[0.1,0.5,0.5],
-    false, 
-    true
-);
-\echo '\`\`\`'
-
-----------------
-\echo ## (pgr_trspViaEdges) Using the pointsOfInterest table
-
-\echo Only routing points
-\echo when *_pgr_withPointsVia* is used
-\echo * the renumbering still takes place
-\echo
-\echo '\`\`\`'
-SELECT * FROM pgr_trspViaEdges(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[
-        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
-        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 3),
-        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 6)],
-    ARRAY[
-        (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
-        (SELECT fraction  FROM pointsOfInterest WHERE pid = 3),
-        (SELECT fraction  FROM pointsOfInterest WHERE pid = 6)],
-    false, 
-    true
-);
-\echo '\`\`\`'
-
-\echo Only routing points
-\echo when originalcode is used (because there is a restriction)
-\echo
-\echo '\`\`\`'
-SELECT * FROM pgr_trspViaEdges(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[
-        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
-        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 3),
-        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 6)],
-    ARRAY[
-        (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
-        (SELECT fraction  FROM pointsOfInterest WHERE pid = 3),
-        (SELECT fraction  FROM pointsOfInterest WHERE pid = 6)],
-    false, true,
-    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
-);
-\echo '\`\`\`'
-
-\echo Routing points & vertices
-\echo * vertex 6 is on edge 11 with fraction 0
-\echo  * Undefined behavior
-\echo '\`\`\`'
-SELECT * FROM pgr_trspViaEdges(
-    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
-    ARRAY[
-        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
-        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 3),
-        11],
-    ARRAY[
-        (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
-        (SELECT fraction  FROM pointsOfInterest WHERE pid = 3),
-        0],
-    false, 
-    true
-);
-\echo '\`\`\`'
-BEGIN;
diff --git a/src/trsp/test/trsp_notes_v2.5.0.result b/src/trsp/test/trsp_notes_v2.5.0.result
new file mode 100644
index 0000000..fec6b64
--- /dev/null
+++ b/src/trsp/test/trsp_notes_v2.5.0.result
@@ -0,0 +1,1112 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+ROLLBACK;
+ROLLBACK
+# Notes on pgr_trsp for version 2.5.0
+Table of contents
+* [Introduction](#introduction)
+  * [The restriction](#the-restriction)
+* [The Vertices Signature Version](#the-vertices-signature-version)
+  * [No path representation differences](#vertices-no-path-representation-differences)
+  * [Routing from/to same location](#routing-fromto-same-location)
+  * [Undirected graph](#vertices-undirected-graph)
+* [The Edges Signature Version](#the-edges-signature-version)
+  * [No path representation differences](#edges-no-path-representation-differences)
+  * [Definition of a path](#definition-of-a-path)
+  * [Points on the same edge](#points-on-the-same-edge)
+  * [Undirected graph](#edges-undirected-graph)
+  * [Using a points of interest table](#using-a-points-of-interest-table)
+  * [Routing from/to the same point](#routing-fromto-the-same-point)
+  * [Passing in front of other points](#passing-in-front-of-other-points)
+  * [Routing from a vertex to a point](#edges-routing-from-a-vertex-to-a-point)
+* [pgr_trspViaVertices](#pgr_trspviavertices)
+  * [pgr_trspViaVertices No path representation differences](#pgr_trspviavertices-no-path-representation-differences)
+  * [when a path does not exist on the route](#when-a-path-does-not-exist-on-the-route)
+  * [from 2 to 3 to 2](#from-2-to-3-to-2)
+* [pgr_trspViaEdges](#pgr_trspviaedges)
+  * [pgr_trspViaEdges No path representation differences](#pgr_trspviaedges-no-path-representation-differences)
+  * [Using a points of interest table](#pgr_trspviaedges-using-the-pointsofinterest-table)
+
+# Introduction
+pgr_trsp code has issues that are not being fixed yet, but as time passes and new functionality is added to pgRouting with wrappers to **hide** the issues, not to fix them.
+
+For clarity on the queries:
+* _pgr_trsp (with underscore) is the original code
+* pgr_trsp (lower case) represents the wrapper calling the original code
+* pgr_TRSP (upper case) represents the wrapper calling the replacement function, depending on the function, it can be:
+  * pgr_dijkstra
+  * pgr_dijkstraVia
+  * pgr_withPoints
+  * _pgr_withPointsVia
+
+This page intentions is to compare the original code with the wrapped version of the trsp group of functions.
+## The restriction
+The restriction used in the examples does not have to do anything with the graph:
+* No vertex has id: 25, 32 or 33
+* No edge has id: 25, 32 or 33
+```
+$$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, 32, 33::TEXT AS via_path$$
+```
+therefore the shortest path expected are as if there was no restriction involved
+# The Vertices signature version
+## (Vertices) No path representation differences
+Original function code
+* Sometimes it crasses the server when no path was found
+* Sometimes represents with Error a no path found
+* Forcing the user to use the wrapper or the replacement function
+
+Calls to the original function of is no longer allowed without restrictions
+```
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 15, true, true
+);
+ERROR:  Error computing path: Path Not Found
+```
+dijkstra returns EMPTY SET to represent no path found
+```
+SELECT * FROM pgr_dijkstra(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 15
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+(0 rows)
+
+```
+pgr_trsp use the pgr_dijkstra when there are no restrictions
+therefore returns EMPTY SET to represent no path found
+```
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 15, true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+(0 rows)
+
+```
+pgr_trsp use the original code when there are restrictions
+therefore throws Error to represent no path found
+```
+SELECT * FROM pgr_trsp(
+     $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+     1, 15, true, true,
+     $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ERROR:  Error computing path: Path Not Found
+CONTEXT:  PL/pgSQL function pgr_trsp(text,integer,integer,boolean,boolean,text) line 29 at RETURN QUERY
+```
+## routing from/to same location
+using dijkstra to verify (1 to 1)
+```
+SELECT * FROM pgr_dijkstra(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 1
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+(0 rows)
+
+```
+This call uses the replacement function because there are no restrictions (1 to 1)
+therefore is expected to return EMPTY SET to represent no path found
+```
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    1, 1,  true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+(0 rows)
+
+```
+call forcing the use of the original code (1 to 1)
+* not longer allowed without restrictions
+
+```
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    1, 1,  true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |   1 |   1 |    1
+   1 |   2 |   4 |    1
+   2 |   5 |   8 |    1
+   3 |   6 |   9 |    1
+   4 |   9 |  16 |    1
+   5 |   4 |   3 |    1
+   6 |   3 |   2 |    1
+   7 |   2 |   1 |    1
+   8 |   1 |  -1 |    0
+(9 rows)
+
+```
+trsp with restrictions (1 to 1) use the original code
+is expected to return Error to represent no path found
+```
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    1, 1,  
+    true, 
+    true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |   1 |   1 |    1
+   1 |   2 |   4 |    1
+   2 |   5 |   8 |    1
+   3 |   6 |   9 |    1
+   4 |   9 |  16 |    1
+   5 |   4 |   3 |    1
+   6 |   3 |   2 |    1
+   7 |   2 |   1 |    1
+   8 |   1 |  -1 |    0
+(9 rows)
+
+```
+trsp calling the original code with restrictions (1 to 1)
+is expected to return Error to represent no path found
+but "finds" a path when there should be no path.
+```
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    1, 1,  
+    true, 
+    true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |   1 |   1 |    1
+   1 |   2 |   4 |    1
+   2 |   5 |   8 |    1
+   3 |   6 |   9 |    1
+   4 |   9 |  16 |    1
+   5 |   4 |   3 |    1
+   6 |   3 |   2 |    1
+   7 |   2 |   1 |    1
+   8 |   1 |  -1 |    0
+(9 rows)
+
+```
+## (vertices) Undirected graph
+using Dijkstra to verify the shortest path from (2 to 3) on undirected graph
+```
+SELECT * FROM pgr_dijkstra(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    2, 3, false
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    2 |    1 |        0
+   2 |        2 |    3 |   -1 |    0 |        1
+(2 rows)
+
+```
+using the replacement function because there are no restrictions (2 to 3)
+```
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    2, 3,
+    false, 
+    true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |   2 |   2 |    1
+   1 |   3 |  -1 |    0
+(2 rows)
+
+```
+call forcing the use of the original code
+* not longer allowed without restrictions
+
+```
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    2, 3,
+    false, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |   2 |   4 |    1
+   1 |   5 |   8 |    1
+   2 |   6 |   9 |    1
+   3 |   9 |  16 |    1
+   4 |   4 |   3 |    1
+   5 |   3 |  -1 |    0
+(6 rows)
+
+```
+trsp with restrictions (2 to 3)
+does not find the shortest path
+```
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    2, 3,
+    false, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |   2 |   4 |    1
+   1 |   5 |   8 |    1
+   2 |   6 |   9 |    1
+   3 |   9 |  16 |    1
+   4 |   4 |   3 |    1
+   5 |   3 |  -1 |    0
+(6 rows)
+
+```
+calling the original code with restrictions (2 to 3)
+does not find the shortest path
+```
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    2, 3,
+    false, 
+    true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |   2 |   4 |    1
+   1 |   5 |   8 |    1
+   2 |   6 |   9 |    1
+   3 |   9 |  16 |    1
+   4 |   4 |   3 |    1
+   5 |   3 |  -1 |    0
+(6 rows)
+
+```
+# The Edges signature version
+## (Edges) No path representation differences
+Original function code
+* Sometimes it crasses the server when no path was found
+* Sometimes represents with Error a no path found
+* Forcing the user to use the wrapper or the replacement function
+
+Calls to the original function of is no longer allowed without restrictions
+```
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 0.5, 17, 0.5, true, true
+);
+ERROR:  Error computing path: Path Not Found
+```
+pgr_withPoints returns EMPTY SET to represent no path found
+```
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$(SELECT 1 as pid, 1 as edge_id, 0.5::float as fraction)
+    UNION
+    (SELECT 2, 17, 0.5)$$,
+    -1, -2
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+(0 rows)
+
+```
+## Definition of a path
+Remember that one characteristic of a path is that for a path of N edges it has N+1 vertices.
+
+For this example, suppose points, where the pid are different even if the edge and fraction are different.
+One point might be on the left side other on the right side, pgr_trsp does not take into account
+the side of the point
+calls forcing the use of the original code
+* not longer allowed without restrictions
+
+```
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 0.5, 1, 0.5, true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   1 |    0
+(1 row)
+
+```
+* with restrictions
+```
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 0.5, 1, 0.5, true, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   1 |    0
+(1 row)
+
+```
+Using the *pgr_withPoints* it returns a path of N edge and N+1 vertices
+```
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$(SELECT 1 as pid, 1 as edge_id, 0.5::float as fraction)
+    UNION
+    (SELECT 2, 1, 0.5)$$,
+    -1, -2
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |   -1 |    1 |    0 |        0
+   2 |        2 |   -2 |   -1 |    0 |        0
+(2 rows)
+
+```
+The *pgr_withPoints* is used when there are no restrictions
+```
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 0.5, 1, 0.5, true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   1 |    0
+   1 |  -2 |  -1 |    0
+(2 rows)
+
+```
+The original *_pgr_trsp* code is used when there are restrictions
+```
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 0.5, 1, 0.5, true, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   1 |    0
+(1 row)
+
+```
+note that pgr_withPoints returns an EMPTY SET when the point is the same
+```
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$(SELECT 1 as pid, 1 as edge_id, 0.5::float as fraction)
+    UNION
+    (SELECT 2, 1, 0.5)$$,
+    -1, -1
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+(0 rows)
+
+```
+## Points on the same edge
+The *pgr_withPoints* is used when there are no restrictions
+* it returns a path of N edges and N+1 vertices
+```
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 0.5, 1, 0.8, true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   1 |  0.3
+   1 |  -2 |  -1 |    0
+(2 rows)
+
+```
+The original *_pgr_trsp* is used when there are restrictions
+* it returns a path of N edges and N vertex instead of N edge and N+1 vertices
+```
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 0.5, 1, 0.8, true, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   1 |  0.3
+(1 row)
+
+```
+## (Edges) Undirected graph
+the shortest path obtained with *pgr_withPoints*
+```
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$(SELECT 1 as pid, 4 as edge_id, 0.5::float as fraction)
+    UNION
+    (SELECT 2, 2, 0.8)$$,
+    -1, -2, directed:=false
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |   -1 |    4 |  0.5 |        0
+   2 |        2 |    2 |    2 |  0.8 |      0.5
+   3 |        3 |   -2 |   -1 |    0 |      1.3
+(3 rows)
+
+```
+The original *_pgr_trsp* is used when there are restrictions
+
+```
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    4, 0.5, 2, 0.8, false, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   4 |  0.5
+   1 |   2 |   2 |  0.8
+   2 |  -2 |  -1 |    0
+(3 rows)
+
+```
+when using restrictions the original *_pgr_trsp* is used internally
+* it returns a path of N edges and N vertex instead of N edge and N+1 vertices
+* it does not return the shortest path.
+
+```
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    4, 0.5, 2, 0.8, false, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   4 |  0.5
+   1 |   5 |   8 |    1
+   2 |   6 |   9 |    1
+   3 |   9 |  16 |    1
+   4 |   4 |   3 |    1
+   5 |   3 |   2 |  0.2
+(6 rows)
+
+```
+## Using a points of interest table
+The points of interest
+```
+SELECT * FROM pointsOfInterest;
+ pid |  x  |  y  | edge_id | side | fraction |                  the_geom                  |                  newpoint                  
+-----+-----+-----+---------+------+----------+--------------------------------------------+--------------------------------------------
+   1 | 1.8 | 0.4 |       1 | l    |      0.4 | 0101000000CDCCCCCCCCCCFC3F9A9999999999D93F | 010100000000000000000000409A9999999999D93F
+   2 | 4.2 | 2.4 |      15 | r    |      0.4 | 0101000000CDCCCCCCCCCC10403333333333330340 | 010100000000000000000010403333333333330340
+   3 | 2.6 | 3.2 |      12 | l    |      0.6 | 0101000000CDCCCCCCCCCC04409A99999999990940 | 0101000000CDCCCCCCCCCC04400000000000000840
+   4 | 0.3 | 1.8 |       6 | r    |      0.3 | 0101000000333333333333D33FCDCCCCCCCCCCFC3F | 0101000000333333333333D33F0000000000000040
+   5 | 2.9 | 1.8 |       5 | l    |      0.8 | 01010000003333333333330740CDCCCCCCCCCCFC3F | 01010000000000000000000840CDCCCCCCCCCCFC3F
+   6 | 2.2 | 1.7 |       4 | b    |      0.7 | 01010000009A99999999990140333333333333FB3F | 01010000000000000000000040333333333333FB3F
+(6 rows)
+
+```
+On *pgr_trsp*, to be able to use the table information:
+* Each parameter has to be extracted explicitly from the table
+* Regardles of the point pid original value
+  * will always be -1 for the first point
+  * will always be -2 for the second point
+```
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 6),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 6),
+    true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   1 |  0.6
+   1 |   2 |   4 |  0.7
+   2 |  -2 |  -1 |    0
+(3 rows)
+
+```
+On *pgr_withPoints*, to be able to use the table information:
+* select statement on the *pointsOfInterest* table
+* *Negative* the id to represent the id is a pid
+* The points pids in the result are not renumbered
+* The points pids in the result are represented with negative sign
+```
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$SELECT pid, edge_id, fraction FROM pointsOfInterest$$,
+    -1, -6
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |   -1 |    1 |  0.6 |        0
+   2 |        2 |    2 |    4 |  0.7 |      0.6
+   3 |        3 |   -6 |   -1 |    0 |      1.3
+(3 rows)
+
+```
+## routing from/to the same point
+using pgr_withPoints to check results
+expecting EMPTY SET to represent no path found
+```
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$SELECT pid, edge_id, fraction FROM pointsOfInterest$$,
+    -1, -1
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+(0 rows)
+
+```
+This call uses the replacement function because there are no restrictions
+* Because the pid is not involved the points are considered different
+* it returns a path
+
+```
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   1 |    0
+   1 |  -2 |  -1 |    0
+(2 rows)
+
+```
+pgr_trsp with restrictions use the original code
+* it returns a path of N edges and N vertex instead of N edge and N+1 vertices
+
+```
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    true, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   1 |    0
+(1 row)
+
+```
+## passing in front of other points
+using pgr_withPoints to verify the shortest path from pids (1 to 3)
+```
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$SELECT pid, edge_id, fraction FROM pointsOfInterest$$,
+    -1, -3
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |   -1 |    1 |  0.6 |        0
+   2 |        2 |    2 |    4 |    1 |      0.6
+   3 |        3 |    5 |   10 |    1 |      1.6
+   4 |        4 |   10 |   12 |  0.6 |      2.6
+   5 |        5 |   -3 |   -1 |    0 |      3.2
+(5 rows)
+
+```
+**pgr_withPoints** can be used to see when the route passes in front of other points
+In this example point pid=6 is passed in front of
+```
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$SELECT pid, edge_id, fraction FROM pointsOfInterest$$,
+    -1, -3, details:=true
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |   -1 |    1 |  0.6 |        0
+   2 |        2 |    2 |    4 |  0.7 |      0.6
+   3 |        3 |   -6 |    4 |  0.3 |      1.3
+   4 |        4 |    5 |   10 |    1 |      1.6
+   5 |        5 |   10 |   12 |  0.6 |      2.6
+   6 |        6 |   -3 |   -1 |    0 |      3.2
+(6 rows)
+
+```
+Can not be used to see if other points are passed in front of.
+The pointsOfInterest table is not part of the parameter
+```
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 3),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 3),
+    true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+   0 |  -1 |   1 |  0.6
+   1 |   2 |   4 |    1
+   2 |   5 |  10 |    1
+   3 |  10 |  12 |  0.6
+   4 |  -2 |  -1 |    0
+(5 rows)
+
+```
+## (edges) Routing from a vertex to a point
+Showing *pgr_withPoints* results of the shortest path from vid 6 to pid 1
+```
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$SELECT pid, edge_id, fraction FROM pointsOfInterest$$,
+    6, -1
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    6 |    8 |    1 |        0
+   2 |        2 |    5 |    4 |    1 |        1
+   3 |        3 |    2 |    1 |  0.6 |        2
+   4 |        4 |   -1 |   -1 |    0 |      2.6
+(4 rows)
+
+```
+* Vertex 6 is on edge 8 at 1 fraction
+* Vertex 6 is also edge 11 at 0 fraction
+* Undefined behaviour when at least one of the "points" is an actual vertex
+
+```
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    8, 1,
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+(0 rows)
+
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    11, 0,
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    true, true
+);
+ seq | id1 | id2 | cost 
+-----+-----+-----+------
+(0 rows)
+
+```
+# pgr_trspViaVertices
+## pgr_trspViaVertices No path representation differences
+pgr_trspViaVertices uses _pgr_trsp which as mentioned before
+* Sometimes it crasses the server when no path was found
+* Sometimes represents with Error a no path found
+* Forcing the user to use the wrapper or the replacement function
+
+Calls to the original function of is no longer allowed without restrictions
+```
+SELECT * FROM _pgr_trspViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 15, 2],
+    false, true
+);
+ERROR:  Error computing path: Path Not Found
+CONTEXT:  PL/pgSQL function _pgr_trspviavertices(text,integer[],boolean,boolean,text) line 16 at FOR over SELECT rows
+SELECT * FROM _pgr_trspViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 15, 2, 1],
+    false, true
+);
+ERROR:  Error computing path: Path Not Found
+CONTEXT:  PL/pgSQL function _pgr_trspviavertices(text,integer[],boolean,boolean,text) line 16 at FOR over SELECT rows
+```
+**pgr_dijkstraVia** returning what paths of the route it finds or EMPTY SET when non is found
+this case none is found
+```
+SELECT * FROM pgr_dijkstraVia(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 15, 2],
+    false
+);
+ seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost | route_agg_cost 
+-----+---------+----------+-----------+---------+------+------+------+----------+----------------
+(0 rows)
+
+```
+this case only from 2 to 1 is found
+```
+SELECT * FROM pgr_dijkstraVia(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 15, 2, 1],
+    false
+);
+ seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost | route_agg_cost 
+-----+---------+----------+-----------+---------+------+------+------+----------+----------------
+   1 |       3 |        1 |         2 |       1 |    2 |    1 |    1 |        0 |              0
+   2 |       3 |        2 |         2 |       1 |    1 |   -2 |    0 |        1 |              1
+(2 rows)
+
+```
+the **pgr_dijkstraVia** used are for complete routes so its marked as **strict:=true**
+therefore the expected result is EMPTY SET to represent no route was found
+```
+SELECT * FROM pgr_dijkstraVia(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 1, 2],
+    false,
+    strict := true
+);
+ seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost | route_agg_cost 
+-----+---------+----------+-----------+---------+------+------+------+----------+----------------
+(0 rows)
+
+```
+## when a path does not exist on the route
+pgr_TRSPViaVertices using the *pgr_dijkstraVia* when there are no restrictions.
+Because there is no path from 1 to 1 then there is no complete route 1 to 1 to 2
+therefore the expected result is EMPTY SET to represent no route was found
+```
+SELECT * FROM pgr_TRSPViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 1, 2],
+    false, true
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+(0 rows)
+
+```
+Calls to the original function of is no longer allowed without restrictions
+```
+SELECT * FROM _pgr_trspViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 1, 2],
+    false, true
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |   1 |   1 |    1
+   2 |   1 |   2 |   4 |    1
+   3 |   1 |   5 |   8 |    1
+   4 |   1 |   6 |   9 |    1
+   5 |   1 |   9 |  16 |    1
+   6 |   1 |   4 |   3 |    1
+   7 |   1 |   3 |   2 |    1
+   8 |   1 |   2 |   1 |    1
+   9 |   2 |   1 |   1 |    1
+  10 |   2 |   2 |  -1 |    0
+(10 rows)
+
+```
+with restrictions the original code is used
+```
+SELECT * FROM pgr_trspViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 1, 2],
+    false, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |   1 |   1 |    1
+   2 |   1 |   2 |   4 |    1
+   3 |   1 |   5 |   8 |    1
+   4 |   1 |   6 |   9 |    1
+   5 |   1 |   9 |  16 |    1
+   6 |   1 |   4 |   3 |    1
+   7 |   1 |   3 |   2 |    1
+   8 |   1 |   2 |   1 |    1
+   9 |   2 |   1 |   1 |    1
+  10 |   2 |   2 |  -1 |    0
+(10 rows)
+
+```
+Using explicitly the original code
+```
+SELECT * FROM _pgr_trspViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 1, 2],
+    false, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |   1 |   1 |    1
+   2 |   1 |   2 |   4 |    1
+   3 |   1 |   5 |   8 |    1
+   4 |   1 |   6 |   9 |    1
+   5 |   1 |   9 |  16 |    1
+   6 |   1 |   4 |   3 |    1
+   7 |   1 |   3 |   2 |    1
+   8 |   1 |   2 |   1 |    1
+   9 |   2 |   1 |   1 |    1
+  10 |   2 |   2 |  -1 |    0
+(10 rows)
+
+```
+## from 2 to 3 to 2
+dijkstra via shows the shortest route on the two paths
+```
+SELECT * FROM pgr_dijkstraVia(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[2, 3, 2],
+    false 
+);
+ seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost | route_agg_cost 
+-----+---------+----------+-----------+---------+------+------+------+----------+----------------
+   1 |       1 |        1 |         2 |       3 |    2 |    2 |    1 |        0 |              0
+   2 |       1 |        2 |         2 |       3 |    3 |   -1 |    0 |        1 |              1
+   3 |       2 |        1 |         3 |       2 |    3 |    2 |    1 |        0 |              1
+   4 |       2 |        2 |         3 |       2 |    2 |   -2 |    0 |        1 |              2
+(4 rows)
+
+```
+the replacement function **pgr_dijkstraVia** is used because there are no restrictions
+```
+SELECT * FROM pgr_TRSPViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[2, 3, 2],
+    false, 
+    true
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |   2 |   2 |    1
+   2 |   2 |   3 |   2 |    1
+   3 |   2 |   2 |  -1 |    0
+(3 rows)
+
+```
+Calls to the original function of is no longer allowed without restrictions
+```
+SELECT * FROM _pgr_trspViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[2, 3, 2],
+    false, 
+    true
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |   2 |   4 |    1
+   2 |   1 |   5 |   8 |    1
+   3 |   1 |   6 |   9 |    1
+   4 |   1 |   9 |  16 |    1
+   5 |   1 |   4 |   3 |    1
+   6 |   2 |   3 |   2 |    1
+   7 |   2 |   2 |  -1 |    0
+(7 rows)
+
+```
+# pgr_trspViaEdges
+*pgr_trspViaEdges* will use the original code when
+* There are restrictions
+* A point is a vertex in disguise (with pcts value of 0)
+
+What it returns
+* Error to represent no route
+* the points are renumbered to -1, -2 .. -N
+* if a point is part of a path it will **not** show on the path
+
+Exaple execution
+```
+SELECT * FROM pgr_trspViaEdges(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 2, 1], ARRAY[0.1,0.5,0.5],
+    false, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |  -1 |   1 |  0.9
+   2 |   1 |   2 |   4 |    1
+   3 |   1 |   5 |   8 |    1
+   4 |   1 |   6 |   9 |    1
+   5 |   1 |   9 |  16 |    1
+   6 |   1 |   4 |   3 |    1
+   7 |   1 |   3 |   2 |    1
+   8 |   2 |   2 |   1 |  0.5
+(8 rows)
+
+```
+A temporay wraper function is used when:
+* There are no restrictions
+* Before: No point is a vertex in disguise (with pcts value of 0)
+* Now: c$Undefined behaviour when a point is a vertex in disguise (with pcts value of 0)
+
+Internaly:
+* builds a new graph and calls pgr_dijkstraVia
+
+What it returns
+* returns EMPTY SET to represent no route
+* edge = -1 in the result to represent the end of a intermediate path
+* edge = -2 in the result to represent the end of the last path & route
+* the points are renumbered to -1, -2 .. -N
+* if a point is part of a path it will show on the path
+
+Note: I do not mention the wrapper name due to the fact that this is not official documentation
+Note: I will use *_pgr_withPointsVia* as the wrapper name just for sake of this notes
+Example excution
+```
+SELECT * FROM _pgr_withPointsVia(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 2, 1], ARRAY[0.1,0.5,0.5],
+    directed := false
+);
+ seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost | route_agg_cost 
+-----+---------+----------+-----------+---------+------+------+------+----------+----------------
+   1 |       1 |        1 |        -1 |      -2 |   -1 |    1 |  0.1 |        0 |              0
+   2 |       1 |        2 |        -1 |      -2 |    2 |    2 |  0.5 |      0.1 |            0.1
+   3 |       1 |        3 |        -1 |      -2 |   -2 |   -1 |    0 |      0.6 |            0.6
+   4 |       2 |        1 |        -2 |      -3 |   -2 |    2 |  0.5 |        0 |            0.6
+   5 |       2 |        2 |        -2 |      -3 |    2 |    1 |  0.5 |      0.5 |            1.1
+   6 |       2 |        3 |        -2 |      -3 |   -3 |   -2 |    0 |        1 |            1.6
+(6 rows)
+
+```
+## pgr_trspViaEdges No path representation differences
+This example no path is found (edge 17 is disconnected) from the big graph.
+* There is a vertex in disguise (fraction 0 or 1)
+* Undefined behaviour
+
+```
+SELECT * FROM pgr_trspViaEdges(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 17, 1], ARRAY[0,0.5,0.5],
+    false, true
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |     |     |     |     
+(1 row)
+
+```
+This example no path is found (edge 17 is disconnected) from the big graph.
+* Has a restriction
+* *pgr_trspViaEdges* original code is used
+* throws error to represent no route was not found
+
+```
+SELECT * FROM pgr_trspViaEdges(
+$$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+ARRAY[1, 17, 1], ARRAY[0.5,0.5,0.5],
+false, true,
+$$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, 32, 33::TEXT AS via_path$$
+);
+server closed the connection unexpectedly
+This probably means the server terminated abnormally
+before or while processing the request.
+The connection to the server was lost. Attempting reset: Failed.
+```
+This example no path is found (edge 17 is disconnected) from the big graph.
+* *_pgr_withPointsVia* is used
+* returns EMPTY SET to represent no route
+
+```
+SELECT * FROM pgr_trspViaEdges(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 17, 1], ARRAY[0.1,0.5,0.5],
+    false, 
+    true
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+(0 rows)
+
+```
+## (pgr_trspViaEdges) Using the pointsOfInterest table
+Only routing points
+when *_pgr_withPointsVia* is used
+* the renumbering still takes place
+
+```
+SELECT * FROM pgr_trspViaEdges(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 3),
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 6)],
+    ARRAY[
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 3),
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 6)],
+    false, 
+    true
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |  -1 |   1 |  0.4
+   2 |   1 |   2 |   4 |  0.3
+   3 |   1 |  -3 |   4 |  0.3
+   4 |   1 |   5 |  10 |    1
+   5 |   1 |  10 |  12 |  0.6
+   6 |   1 |  -2 |  -1 |    0
+   7 |   2 |  -2 |  12 |  0.6
+   8 |   2 |  10 |  10 |    1
+   9 |   2 |   5 |   4 |  0.3
+  10 |   2 |  -3 |  -2 |    0
+(10 rows)
+
+```
+Only routing points
+when originalcode is used (because there is a restriction)
+
+```
+SELECT * FROM pgr_trspViaEdges(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 3),
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 6)],
+    ARRAY[
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 3),
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 6)],
+    false, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |  -1 |   1 |  0.6
+   2 |   1 |   2 |   4 |    1
+   3 |   1 |   5 |  10 |    1
+   4 |   1 |  10 |  12 |    1
+   5 |   2 |  11 |  13 |    1
+   6 |   2 |  12 |  15 |    1
+   7 |   2 |   9 |   9 |    1
+   8 |   2 |   6 |   8 |    1
+   9 |   2 |   5 |   4 |  0.3
+(9 rows)
+
+```
+Routing points & vertices
+* vertex 6 is on edge 11 with fraction 0
+* Undefined behavior
+```
+SELECT * FROM pgr_trspViaEdges(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 3),
+        11],
+    ARRAY[
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 3),
+        0],
+    false, 
+    true
+);
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |  -1 |   1 |  0.6
+   2 |   1 |   2 |   4 |    1
+   3 |   1 |   5 |  10 |    1
+   4 |   1 |  10 |  12 |  0.6
+   5 |   1 |  -2 |  -1 |    0
+(5 rows)
+
+```
+BEGIN;
+BEGIN
+ROLLBACK;
+ROLLBACK
diff --git a/src/trsp/test/trsp_notes_v2.5.0.test.sql b/src/trsp/test/trsp_notes_v2.5.0.test.sql
new file mode 100644
index 0000000..9fb967d
--- /dev/null
+++ b/src/trsp/test/trsp_notes_v2.5.0.test.sql
@@ -0,0 +1,814 @@
+ROLLBACK;
+\echo # Notes on pgr_trsp for version 2.5.0
+
+\echo Table of contents
+
+\echo * [Introduction](#introduction)
+\echo '  * [The restriction](#the-restriction)'
+\echo * [The Vertices Signature Version](#the-vertices-signature-version)
+\echo '  * [No path representation differences](#vertices-no-path-representation-differences)'
+\echo '  * [Routing from/to same location](#routing-fromto-same-location)'
+\echo '  * [Undirected graph](#vertices-undirected-graph)'
+\echo * [The Edges Signature Version](#the-edges-signature-version)
+\echo '  * [No path representation differences](#edges-no-path-representation-differences)'
+\echo '  * [Definition of a path](#definition-of-a-path)'
+\echo '  * [Points on the same edge](#points-on-the-same-edge)'
+\echo '  * [Undirected graph](#edges-undirected-graph)'
+\echo '  * [Using a points of interest table](#using-a-points-of-interest-table)'
+\echo '  * [Routing from/to the same point](#routing-fromto-the-same-point)'
+\echo '  * [Passing in front of other points](#passing-in-front-of-other-points)'
+\echo '  * [Routing from a vertex to a point](#edges-routing-from-a-vertex-to-a-point)'
+\echo * [pgr_trspViaVertices](#pgr_trspviavertices)
+\echo '  * [pgr_trspViaVertices No path representation differences](#pgr_trspviavertices-no-path-representation-differences)'
+\echo '  * [when a path does not exist on the route](#when-a-path-does-not-exist-on-the-route)'
+\echo '  * [from 2 to 3 to 2](#from-2-to-3-to-2)' 
+\echo * [pgr_trspViaEdges](#pgr_trspviaedges)
+\echo '  * [pgr_trspViaEdges No path representation differences](#pgr_trspviaedges-no-path-representation-differences)'
+\echo '  * [Using a points of interest table](#pgr_trspviaedges-using-the-pointsofinterest-table)'
+\echo 
+
+
+
+\echo # Introduction
+\echo pgr_trsp code has issues that are not being fixed yet, but as time passes and new functionality is added to pgRouting with wrappers to **hide** the issues, not to fix them.
+\echo 
+\echo For clarity on the queries:
+\echo * _pgr_trsp (with underscore) is the original code
+\echo * pgr_trsp (lower case) represents the wrapper calling the original code
+\echo * pgr_TRSP (upper case) represents the wrapper calling the replacement function, depending on the function, it can be:
+\echo '  * pgr_dijkstra'
+\echo '  * pgr_dijkstraVia'
+\echo '  * pgr_withPoints'
+\echo '  * _pgr_withPointsVia'
+\echo 
+
+\echo This page intentions is to compare the original code with the wrapped version of the trsp group of functions.
+\echo ## The restriction
+
+\echo The restriction used in the examples does not have to do anything with the graph:
+\echo * No vertex has id: 25, 32 or 33
+\echo * No edge has id: 25, 32 or 33
+\echo '\`\`\`'
+\echo $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+\echo '\`\`\`'
+
+\echo therefore the shortest path expected are as if there was no restriction involved
+
+
+-------------------------------------------------------------------------------------------
+\echo # The Vertices signature version
+------------------
+\echo ## (Vertices) No path representation differences
+\echo Original function code
+\echo  * Sometimes it crasses the server when no path was found
+\echo  * Sometimes represents with Error a no path found
+\echo  * Forcing the user to use the wrapper or the replacement function
+\echo 
+\echo Calls to the original function of is no longer allowed without restrictions
+\echo '\`\`\`'
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 15, true, true
+);  
+\echo '\`\`\`'
+
+\echo dijkstra returns EMPTY SET to represent no path found
+\echo '\`\`\`'
+SELECT * FROM pgr_dijkstra(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 15
+);  
+\echo '\`\`\`'
+
+\echo pgr_trsp use the pgr_dijkstra when there are no restrictions
+\echo therefore returns EMPTY SET to represent no path found
+\echo '\`\`\`'
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 15, true, true
+);  
+\echo '\`\`\`'
+
+\echo pgr_trsp use the original code  when there are restrictions
+\echo therefore throws Error to represent no path found
+\echo '\`\`\`'
+ SELECT * FROM pgr_trsp(
+     $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+     1, 15, true, true,
+     $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);  
+\echo '\`\`\`'
+
+
+------------------
+\echo ## routing from/to same location
+
+\echo using dijkstra to verify (1 to 1)
+\echo '\`\`\`'
+SELECT * FROM pgr_dijkstra(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 1
+);  
+\echo '\`\`\`'
+
+
+\echo This call uses the replacement function because there are no restrictions (1 to 1)
+\echo therefore is expected to return EMPTY SET to represent no path found
+\echo '\`\`\`'
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    1, 1,  true, true
+);
+\echo '\`\`\`'
+
+
+\echo call forcing the use of the original code (1 to 1)
+\echo * not longer allowed without restrictions
+\echo 
+\echo '\`\`\`'
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    1, 1,  true, true
+);
+\echo '\`\`\`'
+
+
+\echo trsp with restrictions (1 to 1) use the original code
+\echo is expected to return Error to represent no path found
+\echo '\`\`\`'
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    1, 1,  
+    true, 
+    true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+\echo '\`\`\`'
+
+\echo trsp calling the original code with restrictions (1 to 1)
+\echo is expected to return Error to represent no path found
+\echo but "finds" a path when there should be no path.
+\echo '\`\`\`'
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    1, 1,  
+    true, 
+    true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+\echo '\`\`\`'
+
+
+------------------
+\echo ## (vertices) Undirected graph
+
+\echo using Dijkstra to verify the shortest path from (2 to 3) on undirected graph
+\echo '\`\`\`'
+SELECT * FROM pgr_dijkstra(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    2, 3, false
+);  
+\echo '\`\`\`'
+
+\echo using the replacement function because there are no restrictions (2 to 3)
+\echo '\`\`\`'
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    2, 3,
+    false, 
+    true
+);
+\echo '\`\`\`'
+
+\echo call forcing the use of the original code
+\echo * not longer allowed without restrictions
+\echo 
+\echo '\`\`\`'
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    2, 3,
+    false, true
+);
+\echo '\`\`\`'
+
+\echo trsp with restrictions (2 to 3)
+\echo does not find the shortest path
+\echo '\`\`\`'
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    2, 3,
+    false, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+\echo '\`\`\`'
+
+\echo calling the original code with restrictions (2 to 3)
+\echo does not find the shortest path
+\echo '\`\`\`'
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    2, 3,
+    false, 
+    true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+\echo '\`\`\`'
+
+-----------------------------------------------------------------------------------------------
+\echo # The Edges signature version
+
+------------------HERE
+\echo ## (Edges) No path representation differences
+\echo Original function code
+\echo  * Sometimes it crasses the server when no path was found
+\echo  * Sometimes represents with Error a no path found
+\echo  * Forcing the user to use the wrapper or the replacement function
+\echo 
+\echo Calls to the original function of is no longer allowed without restrictions
+\echo '\`\`\`'
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 0.5, 17, 0.5, true, true
+);  
+\echo '\`\`\`'
+\echo pgr_withPoints returns EMPTY SET to represent no path found
+\echo '\`\`\`'
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$(SELECT 1 as pid, 1 as edge_id, 0.5::float as fraction)
+    UNION
+    (SELECT 2, 17, 0.5)$$,
+    -1, -2
+);  
+\echo '\`\`\`'
+
+
+------------------
+\echo ## Definition of a path
+\echo Remember that one characteristic of a path is that for a path of N edges it has N+1 vertices.
+\echo 
+\echo For this example, suppose points, where the pid are different even if the edge and fraction are different.
+\echo One point might be on the left side other on the right side, pgr_trsp does not take into account
+\echo the side of the point
+
+\echo calls forcing the use of the original code
+\echo * not longer allowed without restrictions
+\echo 
+\echo '\`\`\`'
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 0.5, 1, 0.5, true, true
+);  
+\echo '\`\`\`'
+\echo * with restrictions
+\echo '\`\`\`'
+SELECT * FROM _pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 0.5, 1, 0.5, true, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);  
+\echo '\`\`\`'
+
+\echo Using the *pgr_withPoints* it returns a path of N edge and N+1 vertices
+\echo '\`\`\`'
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$(SELECT 1 as pid, 1 as edge_id, 0.5::float as fraction)
+    UNION
+    (SELECT 2, 1, 0.5)$$,
+    -1, -2
+);  
+\echo '\`\`\`'
+
+\echo The *pgr_withPoints* is used when there are no restrictions
+\echo '\`\`\`'
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 0.5, 1, 0.5, true, true
+);  
+\echo '\`\`\`'
+
+\echo The original *_pgr_trsp* code is used when there are restrictions
+\echo '\`\`\`'
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 0.5, 1, 0.5, true, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);  
+\echo '\`\`\`'
+
+\echo note that pgr_withPoints returns an EMPTY SET when the point is the same
+\echo '\`\`\`'
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$(SELECT 1 as pid, 1 as edge_id, 0.5::float as fraction)
+    UNION
+    (SELECT 2, 1, 0.5)$$,
+    -1, -1
+);
+\echo '\`\`\`'
+
+------------------
+\echo ## Points on the same edge
+
+\echo The *pgr_withPoints* is used when there are no restrictions
+\echo * it returns a path of N edges and N+1 vertices
+\echo '\`\`\`'
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 0.5, 1, 0.8, true, true
+);  
+\echo '\`\`\`'
+
+\echo The original *_pgr_trsp* is used when there are restrictions
+\echo * it returns a path of N edges and N vertex instead of N edge and N+1 vertices
+\echo '\`\`\`'
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    1, 0.5, 1, 0.8, true, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+
+);  
+\echo '\`\`\`'
+
+------------------
+\echo ## (Edges) Undirected graph
+\echo the shortest path obtained with *pgr_withPoints*
+\echo '\`\`\`'
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$(SELECT 1 as pid, 4 as edge_id, 0.5::float as fraction)
+    UNION
+    (SELECT 2, 2, 0.8)$$,
+    -1, -2, directed:=false
+);
+\echo '\`\`\`'
+
+\echo The original *_pgr_trsp* is used when there are restrictions
+\echo 
+\echo '\`\`\`'
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    4, 0.5, 2, 0.8, false, true
+);
+\echo '\`\`\`'
+
+\echo when using restrictions the original *_pgr_trsp* is used internally
+\echo * it returns a path of N edges and N vertex instead of N edge and N+1 vertices
+\echo * it does not return the shortest path.
+\echo 
+\echo '\`\`\`'
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    4, 0.5, 2, 0.8, false, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+\echo '\`\`\`'
+
+
+----------------
+\echo ## Using a points of interest table
+\echo The points of interest
+\echo '\`\`\`'
+SELECT * FROM pointsOfInterest;
+\echo '\`\`\`'
+
+\echo On *pgr_trsp*, to be able to use the table information:
+\echo * Each parameter has to be extracted explicitly from the table
+\echo * Regardles of the point pid original value
+\echo '  * will always be -1 for the first point'
+\echo '  * will always be -2 for the second point'
+\echo '\`\`\`'
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 6),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 6),
+    true, true
+);  
+\echo '\`\`\`'
+
+\echo On *pgr_withPoints*, to be able to use the table information:
+\echo * select statement on the *pointsOfInterest* table
+\echo * *Negative* the id to represent the id is a pid
+\echo * The points pids in the result are not renumbered
+\echo * The points pids in the result are represented with negative sign
+\echo '\`\`\`'
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$SELECT pid, edge_id, fraction FROM pointsOfInterest$$,
+    -1, -6
+);  
+\echo '\`\`\`'
+
+
+----------------
+\echo ## routing from/to the same point
+
+\echo using pgr_withPoints to check results
+\echo expecting EMPTY SET to represent no path found
+\echo '\`\`\`'
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$SELECT pid, edge_id, fraction FROM pointsOfInterest$$,
+    -1, -1
+);  
+\echo '\`\`\`'
+
+
+\echo This call uses the replacement function because there are no restrictions
+\echo * Because the pid is not involved the points are considered different
+\echo * it returns a path
+\echo 
+\echo '\`\`\`'
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    true, true
+);
+\echo '\`\`\`'
+
+
+\echo pgr_trsp with restrictions use the original code
+\echo * it returns a path of N edges and N vertex instead of N edge and N+1 vertices
+\echo 
+\echo '\`\`\`'
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    true, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+\echo '\`\`\`'
+
+
+----------------
+\echo ## passing in front of other points
+
+\echo using pgr_withPoints to verify the shortest path from pids (1 to 3)
+\echo '\`\`\`'
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$SELECT pid, edge_id, fraction FROM pointsOfInterest$$,
+    -1, -3
+);  
+\echo '\`\`\`'
+
+\echo **pgr_withPoints** can be used to see when the route passes in front of other points
+\echo In this example point pid=6 is passed in front of
+\echo '\`\`\`'
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$SELECT pid, edge_id, fraction FROM pointsOfInterest$$,
+    -1, -3, details:=true
+);  
+\echo '\`\`\`'
+
+\echo Can not be used to see if other points are passed in front of.
+\echo The pointsOfInterest table is not part of the parameter
+\echo '\`\`\`'
+SELECT * FROM pgr_TRSP(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 3),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 3),
+    true, true
+);
+\echo '\`\`\`'
+
+----------------
+\echo ## (edges) Routing from a vertex to a point
+
+\echo Showing *pgr_withPoints* results of the shortest path from vid 6 to pid 1
+\echo '\`\`\`'
+SELECT * FROM pgr_withPoints(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost  FROM edge_table$$,
+    $$SELECT pid, edge_id, fraction FROM pointsOfInterest$$,
+    6, -1
+);  
+\echo '\`\`\`'
+
+\echo * Vertex 6 is on edge 8 at 1 fraction
+\echo * Vertex 6 is also edge 11 at 0 fraction
+\echo * Undefined behaviour when at least one of the "points" is an actual vertex
+\echo
+\echo '\`\`\`'
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    8, 1,
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    true, true
+);
+SELECT * FROM pgr_trsp(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    11, 0,
+    (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+    (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+    true, true
+);
+\echo '\`\`\`'
+
+---------------------------------------------------------------
+
+\echo # pgr_trspViaVertices
+------------------
+\echo ## pgr_trspViaVertices No path representation differences
+
+\echo pgr_trspViaVertices uses _pgr_trsp which as mentioned before
+\echo  * Sometimes it crasses the server when no path was found
+\echo  * Sometimes represents with Error a no path found
+\echo  * Forcing the user to use the wrapper or the replacement function
+\echo 
+\echo Calls to the original function of is no longer allowed without restrictions
+\echo '\`\`\`'
+SELECT * FROM _pgr_trspViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 15, 2],
+    false, true
+);
+SELECT * FROM _pgr_trspViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 15, 2, 1],
+    false, true
+);
+\echo '\`\`\`'
+
+\echo **pgr_dijkstraVia** returning what paths of the route it finds or EMPTY SET when non is found
+\echo this case none is found
+\echo '\`\`\`'
+SELECT * FROM pgr_dijkstraVia(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 15, 2],
+    false
+);
+\echo '\`\`\`'
+
+
+\echo this case only from 2 to 1 is found
+\echo '\`\`\`'
+SELECT * FROM pgr_dijkstraVia(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 15, 2, 1],
+    false
+);
+\echo '\`\`\`'
+
+\echo the **pgr_dijkstraVia** used are for complete routes so its marked as **strict:=true** 
+\echo therefore the expected result is EMPTY SET to represent no route was found
+\echo '\`\`\`'
+SELECT * FROM pgr_dijkstraVia(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 1, 2],
+    false,
+    strict := true
+);
+\echo '\`\`\`'
+
+
+\echo ## when a path does not exist on the route
+\echo pgr_TRSPViaVertices using the *pgr_dijkstraVia* when there are no restrictions.
+\echo Because there is no path from 1 to 1 then there is no complete route 1 to 1 to 2
+\echo therefore the expected result is EMPTY SET to represent no route was found
+\echo '\`\`\`'
+SELECT * FROM pgr_TRSPViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 1, 2],
+    false, true
+);
+\echo '\`\`\`'
+
+\echo Calls to the original function of is no longer allowed without restrictions
+\echo '\`\`\`'
+SELECT * FROM _pgr_trspViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 1, 2],
+    false, true
+);
+\echo '\`\`\`'
+
+\echo with restrictions the original code is used
+\echo '\`\`\`'
+SELECT * FROM pgr_trspViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 1, 2],
+    false, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+\echo '\`\`\`'
+
+
+\echo Using explicitly the original code
+\echo '\`\`\`'
+SELECT * FROM _pgr_trspViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 1, 2],
+    false, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+\echo '\`\`\`'
+
+
+\echo ## from 2 to 3 to 2
+
+
+\echo dijkstra via shows the shortest route on the two paths
+\echo '\`\`\`'
+SELECT * FROM pgr_dijkstraVia(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[2, 3, 2],
+    false 
+);
+\echo '\`\`\`'
+
+\echo the replacement function **pgr_dijkstraVia** is used because there are no restrictions
+\echo '\`\`\`'
+SELECT * FROM pgr_TRSPViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[2, 3, 2],
+    false, 
+    true
+);
+\echo '\`\`\`'
+
+\echo Calls to the original function of is no longer allowed without restrictions
+\echo '\`\`\`'
+SELECT * FROM _pgr_trspViaVertices(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[2, 3, 2],
+    false, 
+    true
+);
+\echo '\`\`\`'
+
+
+
+---------------------------------------------------------------
+
+\echo # pgr_trspViaEdges
+------------------
+
+\echo *pgr_trspViaEdges* will use the original code when
+\echo * There are restrictions
+\echo * A point is a vertex in disguise (with pcts value of 0)
+\echo
+\echo What it returns
+\echo * Error to represent no route
+\echo * the points are renumbered to -1, -2 .. -N 
+\echo * if a point is part of a path it will **not** show on the path
+\echo
+
+\echo Exaple execution
+\echo '\`\`\`'
+SELECT * FROM pgr_trspViaEdges(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 2, 1], ARRAY[0.1,0.5,0.5],
+    false, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+
+\echo '\`\`\`'
+\echo A temporay wraper function is used when: 
+\echo * There are no restrictions
+\echo * Before: No point is a vertex in disguise (with pcts value of 0)
+\echo * Now: c$Undefined behaviour when a point is a vertex in disguise (with pcts value of 0)
+\echo
+\echo Internaly:
+\echo * builds a new graph and calls pgr_dijkstraVia
+\echo
+\echo What it returns
+\echo * returns EMPTY SET to represent no route
+\echo * edge = -1 in the result to represent the end of a intermediate path
+\echo * edge = -2 in the result to represent the end of the last path & route
+\echo * the points are renumbered to -1, -2 .. -N 
+\echo * if a point is part of a path it will show on the path
+\echo
+\echo Note: I do not mention the wrapper name due to the fact that this is not official documentation
+\echo Note: I will use *_pgr_withPointsVia* as the wrapper name just for sake of this notes
+
+\echo Example excution
+\echo '\`\`\`'
+SELECT * FROM _pgr_withPointsVia(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 2, 1], ARRAY[0.1,0.5,0.5],
+    directed := false
+);
+\echo '\`\`\`'
+
+
+\echo ## pgr_trspViaEdges No path representation differences
+----------------
+
+\echo This example no path is found (edge 17 is disconnected) from the big graph.
+\echo * There is a vertex in disguise (fraction 0 or 1)
+\echo * Undefined behaviour
+\echo
+\echo '\`\`\`'
+SELECT * FROM pgr_trspViaEdges(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 17, 1], ARRAY[0,0.5,0.5],
+    false, true
+);
+\echo '\`\`\`'
+
+
+\echo This example no path is found (edge 17 is disconnected) from the big graph.
+\echo * Has a restriction
+\echo * *pgr_trspViaEdges* original code is used
+\echo * throws error to represent no route was not found
+\echo
+\echo '\`\`\`'
+\echo SELECT * FROM pgr_trspViaEdges(
+\echo     $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+\echo     ARRAY[1, 17, 1], ARRAY[0.5,0.5,0.5],
+\echo     false, true,
+\echo     $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+\echo );
+\echo server closed the connection unexpectedly
+\echo This probably means the server terminated abnormally
+\echo before or while processing the request.
+\echo The connection to the server was lost. Attempting reset: Failed.
+\echo '\`\`\`'
+
+\echo This example no path is found (edge 17 is disconnected) from the big graph.
+\echo * *_pgr_withPointsVia* is used
+\echo * returns EMPTY SET to represent no route
+\echo
+\echo '\`\`\`'
+SELECT * FROM pgr_trspViaEdges(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[1, 17, 1], ARRAY[0.1,0.5,0.5],
+    false, 
+    true
+);
+\echo '\`\`\`'
+
+----------------
+\echo ## (pgr_trspViaEdges) Using the pointsOfInterest table
+
+\echo Only routing points
+\echo when *_pgr_withPointsVia* is used
+\echo * the renumbering still takes place
+\echo
+\echo '\`\`\`'
+SELECT * FROM pgr_trspViaEdges(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 3),
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 6)],
+    ARRAY[
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 3),
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 6)],
+    false, 
+    true
+);
+\echo '\`\`\`'
+
+\echo Only routing points
+\echo when originalcode is used (because there is a restriction)
+\echo
+\echo '\`\`\`'
+SELECT * FROM pgr_trspViaEdges(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 3),
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 6)],
+    ARRAY[
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 3),
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 6)],
+    false, true,
+    $$SELECT 100::float AS to_cost, 25::INTEGER AS target_id, '32, 33'::TEXT AS via_path$$
+);
+\echo '\`\`\`'
+
+\echo Routing points & vertices
+\echo * vertex 6 is on edge 11 with fraction 0
+\echo  * Undefined behavior
+\echo '\`\`\`'
+SELECT * FROM pgr_trspViaEdges(
+    $$SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table$$,
+    ARRAY[
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 1),
+        (SELECT edge_id::INTEGER  FROM pointsOfInterest WHERE pid = 3),
+        11],
+    ARRAY[
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 1),
+        (SELECT fraction  FROM pointsOfInterest WHERE pid = 3),
+        0],
+    false, 
+    true
+);
+\echo '\`\`\`'
+BEGIN;
diff --git a/src/trsp/test/trsp_vias-any-04.result b/src/trsp/test/trsp_vias-any-04.result
index d5438f6..61c461c 100644
--- a/src/trsp/test/trsp_vias-any-04.result
+++ b/src/trsp/test/trsp_vias-any-04.result
@@ -1,66 +1,141 @@
-1|1|2|4|1
-2|1|5|8|1
-3|1|6|9|1
-4|1|9|16|1
-5|1|4|3|1
-6|1|3|5|1
-7|1|6|8|1
-8|1|5|7|1
-9|1|8|6|1
-10|2|7|6|1
-11|2|8|7|1
-12|2|5|8|1
-13|2|6|9|1
-14|2|9|16|1
-15|2|4|3|1
-16|2|3|5|1
-17|2|6|11|1
-18|2|11|-1|0
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+/*PGR-GNU*****************************************************************
+
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License AS published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+    SELECT * FROM pgr_trspViaVertices(
+        'SELECT id::INTEGER, source::INTEGER, target::INTEGER,cost, reverse_cost FROM edge_table',
+        ARRAY[2, 7, 11]::INTEGER[],     
+        true,  
+        true,  
+        
+        'SELECT to_cost, target_id::INTEGER, from_edge||coalesce('',''||via_path,'''') AS via_path FROM restrictions');
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |   2 |   4 |    1
+   2 |   1 |   5 |   8 |    1
+   3 |   1 |   6 |   9 |    1
+   4 |   1 |   9 |  16 |    1
+   5 |   1 |   4 |   3 |    1
+   6 |   1 |   3 |   5 |    1
+   7 |   1 |   6 |   8 |    1
+   8 |   1 |   5 |   7 |    1
+   9 |   1 |   8 |   6 |    1
+  10 |   2 |   7 |   6 |    1
+  11 |   2 |   8 |   7 |    1
+  12 |   2 |   5 |   8 |    1
+  13 |   2 |   6 |   9 |    1
+  14 |   2 |   9 |  16 |    1
+  15 |   2 |   4 |   3 |    1
+  16 |   2 |   3 |   5 |    1
+  17 |   2 |   6 |  11 |    1
+  18 |   2 |  11 |  -1 |    0
+(18 rows)
+
 ---------------------------
-1|1|-1|4|0.5
-2|1|5|8|1
-3|1|6|9|1
-4|1|9|16|1
-5|1|4|3|1
-6|1|3|5|1
-7|1|6|8|1
-8|1|5|7|1
-9|1|8|6|1
-10|2|8|7|1
-11|2|5|8|1
-12|2|6|9|1
-13|2|9|16|1
-14|2|4|3|1
-15|2|3|5|1
-16|2|6|11|0.5
+SELECT * FROM pgr_trspViaEdges(
+        'SELECT id::INTEGER, source::INTEGER, target::INTEGER,cost, reverse_cost FROM edge_table',
+        ARRAY[4,6,11]::INTEGER[],           
+        ARRAY[0.5, 0.5, 0.5]::float8[],     
+        true,  
+        true,  
+        
+        'SELECT to_cost, target_id::INTEGER, from_edge||coalesce('',''||via_path,'''') AS via_path FROM restrictions');
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |  -1 |   4 |  0.5
+   2 |   1 |   5 |   8 |    1
+   3 |   1 |   6 |   9 |    1
+   4 |   1 |   9 |  16 |    1
+   5 |   1 |   4 |   3 |    1
+   6 |   1 |   3 |   5 |    1
+   7 |   1 |   6 |   8 |    1
+   8 |   1 |   5 |   7 |    1
+   9 |   1 |   8 |   6 |    1
+  10 |   2 |   8 |   7 |    1
+  11 |   2 |   5 |   8 |    1
+  12 |   2 |   6 |   9 |    1
+  13 |   2 |   9 |  16 |    1
+  14 |   2 |   4 |   3 |    1
+  15 |   2 |   3 |   5 |    1
+  16 |   2 |   6 |  11 |  0.5
+(16 rows)
+
 ---------------------------
-1|1|-1|1|0.5
-2|1|2|4|1
-3|1|5|8|1
-4|1|6|9|1
-5|1|9|16|1
-6|1|4|3|1
-7|1|3|5|1
-8|1|6|11|1
-9|2|11|13|1
-10|2|12|15|1
-11|2|9|9|1
-12|2|6|8|1
-13|2|5|7|1
-14|2|8|6|0.5
+SELECT * FROM pgr_trspViaEdges(
+        'SELECT id::INTEGER, source::INTEGER, target::INTEGER,cost, reverse_cost FROM edge_table',
+        ARRAY[1,11,6]::INTEGER[],           
+        ARRAY[0.5, 0.5, 0.5]::float8[],     
+        true,  
+        true,  
+        
+        'SELECT to_cost, target_id::INTEGER, from_edge||coalesce('',''||via_path,'''') AS via_path FROM restrictions');
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |  -1 |   1 |  0.5
+   2 |   1 |   2 |   4 |    1
+   3 |   1 |   5 |   8 |    1
+   4 |   1 |   6 |   9 |    1
+   5 |   1 |   9 |  16 |    1
+   6 |   1 |   4 |   3 |    1
+   7 |   1 |   3 |   5 |    1
+   8 |   1 |   6 |  11 |    1
+   9 |   2 |  11 |  13 |    1
+  10 |   2 |  12 |  15 |    1
+  11 |   2 |   9 |   9 |    1
+  12 |   2 |   6 |   8 |    1
+  13 |   2 |   5 |   7 |    1
+  14 |   2 |   8 |   6 |  0.5
+(14 rows)
+
 ---------------------------
-1|1|-1|1|0.5
-2|1|2|4|1
-3|1|5|8|1
-4|1|6|9|1
-5|1|9|16|1
-6|1|4|3|1
-7|1|3|5|1
-8|1|6|11|1
-9|2|11|13|1
-10|2|12|15|1
-11|2|9|9|1
-12|2|6|8|1
-13|2|5|7|1
-14|2|8|6|0.5
+SELECT * FROM pgr_trspViaEdges(
+        'SELECT id::INTEGER, source::INTEGER, target::INTEGER,cost, reverse_cost FROM edge_table',
+        ARRAY[1,11,6]::INTEGER[],           
+        ARRAY[0.5, 0.5, 0.5]::float8[],     
+        true,  
+        true,  
+        
+        'SELECT to_cost, target_id::INTEGER, from_edge||coalesce('',''||via_path,'''') AS via_path FROM restrictions');
+ seq | id1 | id2 | id3 | cost 
+-----+-----+-----+-----+------
+   1 |   1 |  -1 |   1 |  0.5
+   2 |   1 |   2 |   4 |    1
+   3 |   1 |   5 |   8 |    1
+   4 |   1 |   6 |   9 |    1
+   5 |   1 |   9 |  16 |    1
+   6 |   1 |   4 |   3 |    1
+   7 |   1 |   3 |   5 |    1
+   8 |   1 |   6 |  11 |    1
+   9 |   2 |  11 |  13 |    1
+  10 |   2 |  12 |  15 |    1
+  11 |   2 |   9 |   9 |    1
+  12 |   2 |   6 |   8 |    1
+  13 |   2 |   5 |   7 |    1
+  14 |   2 |   8 |   6 |  0.5
+(14 rows)
+
 ---------------------------
+ROLLBACK;
+ROLLBACK
diff --git a/src/tsp/doc/TSP-family.rst b/src/tsp/doc/TSP-family.rst
deleted file mode 100644
index 8d6bc14..0000000
--- a/src/tsp/doc/TSP-family.rst
+++ /dev/null
@@ -1,218 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _tsp:
-
-Traveling Sales Person - Family of functions
-===============================================================================
-
-.. index from here
-
-* :ref:`pgr_TSP` - When input is given as matrix cell information.
-* :ref:`pgr_eucledianTSP` - When input are coordinates.
-
-.. index to here
-
-.. toctree::
-    :hidden:
-
-    pgr_TSP
-    pgr_eucledianTSP
-
-
-General Information
-------------------------------------
-
-Origin
-..........
-
-The traveling sales person problem was studied in the 18th century by mathematicians
- **Sir William Rowam Hamilton** and **Thomas Penyngton  Kirkman**.
-
-A discussion about the work of Hamilton & Kirkman
-can be found in the book **Graph Theory (Biggs et  al. 1976)**.
-
-* ISBN-13: 978-0198539162
-* ISBN-10: 0198539169
-
-It is believed that the general form of the TSP have been first studied by Kalr Menger in Vienna and Harvard.
-The problem  was  later promoted by Hassler, Whitney  &  Merrill at Princeton.
-A detailed  description about the connection between Menger & Whitney, and the development of the
-TSP can be found in  `On the history of combinatorial optimization (till 1960) <http://www.cwi.nl/~lex/files/histco.ps>`_
-
-Problem Definition
-...................
-
-Given a collection of cities and travel cost between each pair,
-find the cheapest way for visiting all of the cities and returning to the starting point.
-
-Characteristics
-................
-
-- The travel costs are symmetric:
-
-  - traveling costs from city A to city B are just as much as traveling from B to A.
-
-- This problem is an NP-hard optimization problem.
-
-- To calculate the number of different tours through :math:`n` cities:
-
-  - Given a starting city,
-  - There are :math:`n-1` choices for the second city,
-  - And  :math:`n-2` choices for the third city, etc.
-  - Multiplying these together we get :math:`(n-1)!  = (n-1) (n-2) . .  1`.
-  - Now since our travel costs do not depend on the direction we take around the tour:
-
-    - this number by 2
-    -  :math:`(n-1)!/2`.
-
-TSP & Simulated Annealing
-.........................
-
-The simulated annealing algorithm was originally inspired from the process of
-annealing in metal work.
-
-Annealing involves heating and cooling a material to
-alter its physical properties due to the changes in its internal structure.
-As the metal cools its new structure becomes fixed,
-consequently causing the metal to retain its newly obtained properties. [C001]_
-
-
-.. rubric:: Pseudocode
-
-Given an initial solution, the simulated annealing process, will start with a high temperature
-and gradually cool down until the desired temperature is reached.
-
-For each temperature, a neighbouring new solution **snew** is calculated. The higher the temperature
-the higher the probability of accepting the new solution as a possible bester solution.
-
-Once the desired temperature is reached, the best solution found is returned
-
-.. code-block:: none
-
-    Solution ← initial_solution;
-
-    temperature ← initial_temperature;
-    while (temperature > final_temperature) {
-
-        do tries_per_temperature times {
-            snew ← neighbour(solution);
-            If P(E(solution), E(snew), T) ≥ random(0, 1)
-                solution ← snew;
-        }
-
-        temperature ← temperature * cooling factor;
-    }
-
-    Output: the best solution
-
-
-
-pgRouting Implementation
-.........................
-
-pgRouting's implementation adds some extra parameters to allow some exit controls within the
-simulated annealing process.
-
-To cool down faster to the next temperature:
-
-- max_changes_per_temperature: limits the number of changes in the solution per temperature
-- max_consecutive_non_changes: limits the number of consecutive non changes per temperature
-
-This is done by doing some book keeping on the times **solution ← snew;** is executed.
-
-- max_changes_per_temperature: Increases by one when **solution** changes
-- max_consecutive_non_changes: Reset to 0 when **solution** changes, and increased each **try**
-
-Additionally to stop the algorithm at a higher temperature than the desired one:
-
-- max_processing_time: limits the time the simulated annealing is performed.
-- book keeping is done to see if there was a change in **solution** on the last temperature
-
-Note that, if no change was found in the first **max_consecutive_non_changes** tries, then the
-simulated annealing will stop.
-
-.. code-block:: none
-
-    Solution ← initial_solution;
-
-    temperature ← initial_temperature;
-    while (temperature > final_temperature) {
-
-        do tries_per_temperature times {
-            snew ← neighbour(solution);
-            If P(E(solution), E(snew), T) ≥ random(0, 1)
-                solution ← snew;
-
-            when max_changes_per_temperature is reached
-                or max_consecutive_non_changes is reached
-                BREAK;
-        }
-
-        temperature ← temperature * cooling factor;
-        when no changes were done in the current temperature
-            or max_processing_time has being reached
-            BREAK;
-    }
-
-    Output: the best solution
-
-
-Choosing parameters
-.........................
-
-There is no exact rule on how the parameters have to be chose, it will depend on the
-special characteristics of the problem.
-
-- Your computational time is crucial, then put your time limit to **max_processing_time**.
-- Make the **tries_per_temperture** depending on the number of cities, for example:
-
-  - Useful to estimate the time it takes to do one cycle: use `1`
-
-    - this will help to set a reasonable **max_processing_time**
-
-  - :math:`n * (n-1)`
-  - :math:`500 * n`
-
-- For a faster decreasing the temperature set **cooling_factor** to a smaller number,
-  and set to a higher number for a slower decrease.
-
-- When for the same given data the same results are needed, set **randomize** to `false`.
-
-  - When estimating how long it takes to do one cycle: use `false`
-
-
-A recommendation is to play with the values and see what fits to the particular data.
-
-
-..
-    description of control parameters
-
-
-.. include:: tsp_parameters.txt
-
-
-
-
-See Also
-.........................
-
-.. rubric:: References
-
-.. [C001] `Simulated annaeling algorithm for beginners <http://www.theprojectspot.com/tutorial-post/simulated-annealing-algorithm-for-beginners/6>`_
-
-* http://en.wikipedia.org/wiki/Traveling_salesman_problem
-* http://en.wikipedia.org/wiki/Simulated_annealing
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
-
-
diff --git a/src/tsp/doc/doc-tsp.queries b/src/tsp/doc/doc-tsp.queries
deleted file mode 100644
index d67eac0..0000000
--- a/src/tsp/doc/doc-tsp.queries
+++ /dev/null
@@ -1,102 +0,0 @@
-BEGIN;
-BEGIN
-SET client_min_messages TO NOTICE;
-SET
--- q1
-SELECT * FROM pgr_TSP(
-    $$
-    SELECT id::INTEGER, st_X(the_geom) AS x, st_Y(the_geom)AS y  FROM edge_table_vertices_pgr
-    $$
-    , 1);
-NOTICE:  Deprecated Signature pgr_tsp(sql, integer, integer)
- seq | id1 | id2 |       cost        
------+-----+-----+-------------------
-   0 |   1 |   1 |                 1
-   1 |   2 |   2 |                 1
-   2 |   5 |   5 |                 1
-   3 |   8 |   8 |                 1
-   4 |   7 |   7 |  1.58113883008419
-   5 |  14 |  14 |  1.58113883008419
-   6 |  13 |  13 |               0.5
-   7 |  15 |  15 |               0.5
-   8 |  10 |  10 |                 1
-   9 |  11 |  11 |  1.11803398874989
-  10 |  17 |  17 |  1.11803398874989
-  11 |  12 |  12 | 0.860232526704263
-  12 |  16 |  16 |  0.58309518948453
-  13 |   6 |   6 |                 1
-  14 |   9 |   9 |                 1
-  15 |   4 |   4 |                 1
-  16 |   3 |   3 |   1.4142135623731
-(17 rows)
-
--- q2
-SELECT * FROM pgr_eucledianTSP(
-    $$
-    SELECT id, st_X(the_geom) AS x, st_Y(the_geom)AS y  FROM edge_table_vertices_pgr
-    $$,
-    1,
-    randomize := false
-);
- seq | node |       cost        |     agg_cost     
------+------+-------------------+------------------
-   1 |    1 |   1.4142135623731 |                0
-   2 |    3 |                 1 |  1.4142135623731
-   3 |    4 |                 1 | 2.41421356237309
-   4 |    9 |                 1 | 3.41421356237309
-   5 |    6 |  0.58309518948453 | 4.41421356237309
-   6 |   16 | 0.860232526704263 | 4.99730875185763
-   7 |   12 |  1.11803398874989 | 5.85754127856189
-   8 |   17 |  1.11803398874989 | 6.97557526731178
-   9 |   11 |                 1 | 8.09360925606168
-  10 |   10 |               0.5 | 9.09360925606168
-  11 |   15 |               0.5 | 9.59360925606168
-  12 |   13 |  1.58113883008419 | 10.0936092560617
-  13 |   14 |  1.58113883008419 | 11.6747480861459
-  14 |    7 |                 1 | 13.2558869162301
-  15 |    8 |                 1 | 14.2558869162301
-  16 |    5 |                 1 | 15.2558869162301
-  17 |    2 |                 1 | 16.2558869162301
-  18 |    1 |                 0 | 17.2558869162301
-(18 rows)
-
--- q3
-SELECT * FROM pgr_TSP(
-    (SELECT * FROM pgr_vidsToDMatrix(
-            'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
-            ARRAY[8,11,12,13]::INTEGER[], false , true, true)
-    ),
-    1
-);
-NOTICE:  Deprecated function pgr_vidsToDMatrix
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
- seq | id 
------+----
-   0 |  1
-   1 |  2
-   2 |  3
-   3 |  0
-(4 rows)
-
--- q4
-SELECT * FROM pgr_TSP(
-    $$
-    SELECT * FROM pgr_dijkstraCostMatrix(
-        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-        ARRAY[8,11,12,13]::INTEGER[], false)
-    $$,
-    8,
-    randomize := false
-);
- seq | node | cost | agg_cost 
------+------+------+----------
-   1 |    8 |    3 |        0
-   2 |   11 |    1 |        3
-   3 |   12 |    3 |        4
-   4 |   13 |    3 |        7
-   5 |    8 |    0 |       10
-(5 rows)
-
--- q5
-ROLLBACK;
-ROLLBACK
diff --git a/src/tsp/doc/pgr_TSP.rst b/src/tsp/doc/pgr_TSP.rst
deleted file mode 100644
index 3649937..0000000
--- a/src/tsp/doc/pgr_TSP.rst
+++ /dev/null
@@ -1,166 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_TSP:
-
-pgr_TSP
-=============================================================================
-
-Name
--------------------------------------------------------------------------------
-
-* ``pgr_TSP`` - Returns a route that visits all the nodes exactly once.
-
-.. rubric:: Availability: 2.0.0
-
-* Signature changed 2.3.0
-
-
-Synopsis
--------------------------------------------------------------------------------
-
-The travelling salesman problem (TSP) or travelling salesperson problem asks the following question:
-
-  - Given a list of cities and the distances between each pair of cities, what is the shortest possible route that visits each city exactly once and returns to the origin city?
-
-This implementation uses simulated annealing to return the approximate solution when the input is given in the form of matrix cell contents.
-The matrix information must be symmetrical.
-
-
-Signature Summary
--------------------------------------------------------------------------------
-
-.. code-block:: none
-
-    pgr_TSP(matrix_cell_sql)
-    pgr_TSP(matrix_cell_sql,
-        start_id, end_id,
-        max_processing_time,
-        tries_per_temperature, max_changes_per_temperature, max_consecutive_non_changes,
-        initial_temperature, final_temperature, cooling_factor,
-        randomize,
-    RETURNS SETOF (seq, node, cost, agg_cost)
-
-Signatures
--------------------------------------------------------------------------------
-
-
-.. index::
-    single: TSP(Basic Use)
-
-Basic Use
-...............................................................................
-
-.. code-block:: none
-
-    pgr_TSP(matrix_cell_sql)
-    RETURNS SETOF (seq, node, cost, agg_cost)
-
-:Example:
-
-Because the documentation examples are auto generated and tested for non changing results,
-and the default is to have random execution, the example is wrapping the actual call.
-
-.. literalinclude:: doc-pgr_TSP.queries
-   :start-after: -- q1
-   :end-before: -- q2
-
-..
-    TODO Intermediate Use
-
-.. index::
-    single: TSP(Complete Signature)
-
-Complete Signature
-...............................................................................
-
-.. code-block:: none
-
-
-    pgr_TSP(matrix_cell_sql,
-        start_id, end_id,
-        max_processing_time,
-        tries_per_temperature, max_changes_per_temperature, max_consecutive_non_changes,
-        initial_temperature, final_temperature, cooling_factor,
-        randomize,
-    RETURNS SETOF (seq, node, cost, agg_cost)
-
-
-.. rubric:: Example:
-
-.. literalinclude:: doc-pgr_TSP.queries
-   :start-after: -- q2
-   :end-before: -- q3
-
-
-Description of the Signatures
--------------------------------------------------------------------------------
-
-Description of the Matrix Cell SQL query
-...............................................................................
-
-============= =========== =================================================
-Column        Type              Description
-============= =========== =================================================
-**start_vid** ``BIGINT``  Identifier of the starting vertex.
-**end_vid**   ``BIGINT``  Identifier of the ending vertex.
-**agg_cost**  ``FLOAT``   Cost for going from start_vid to end_vid
-============= =========== =================================================
-
-Can be Used with:
-
-* :ref:`pgr_dijkstraCostmatrix`
-* :ref:`pgr_withPointsCostmatrix`
-* :ref:`pgr_floydWarshall`
-* :ref:`pgr_johnson`
-
-To generate a symmetric matrix
-
-* directed := false.
-
-If using directed := true, the resulting non symmetric matrix must be converted to
-symmetric by fixing the non symmetric values according to your application needs.
-
-..
-    description of the configuration parameters
-
-.. include:: tsp_parameters.txt
-
-
-..
-    description of the return values
-
-.. include:: tsp_return_values.txt
-
-
-
-Examples
--------------------------------------------------------------------------------
-
-:Example: Using with points of interest.
-
-To generate a symmetric matrix:
-
-* the **side** information of pointsOfInterset is ignored by not including it in the query
-* and **directed := false**
-
-.. literalinclude:: doc-pgr_TSP.queries
-   :start-after: -- q3
-   :end-before: -- q4
-
-The queries use the :ref:`sampledata` network.
-
-
-
-See Also
--------------------------------------------------------------------------------
-
-* :ref:`tsp`
-* http://en.wikipedia.org/wiki/Traveling_salesman_problem
-* http://en.wikipedia.org/wiki/Simulated_annealing
diff --git a/src/tsp/doc/pgr_eucledianTSP.rst b/src/tsp/doc/pgr_eucledianTSP.rst
deleted file mode 100644
index 0880bc8..0000000
--- a/src/tsp/doc/pgr_eucledianTSP.rst
+++ /dev/null
@@ -1,150 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_eucledianTSP:
-
-pgr_eucledianTSP
-=============================================================================
-
-Name
--------------------------------------------------------------------------------
-
-``pgr_eucledianTSP`` - Returns a route that visits all the coordinates pairs exactly once.
-
-.. rubric:: Availability: 2.3.0
-
-
-Synopsis
--------------------------------------------------------------------------------
-
-The travelling salesman problem (TSP) or travelling salesperson problem asks the following question:
-
-  - Given a list of cities and the distances between each pair of cities, what is the shortest possible route that visits each city exactly once and returns to the origin city?
-
-This implementation uses simulated annealing to return the approximate solution when the input is given in the form of coordinates.
-
-Signature Summary
--------------------------------------------------------------------------------
-
-.. code-block:: none
-
-    pgr_eucledianTSP(coordinates_sql)
-    pgr_eucledianTSP(coordinates_sql,
-        start_id, end_id,
-        max_processing_time,
-        tries_per_temperature, max_changes_per_temperature, max_consecutive_non_changes,
-        initial_temperature, final_temperature, cooling_factor,
-        randomize,
-    RETURNS SETOF (seq, node, cost, agg_cost)
-
-
-Signatures
--------------------------------------------------------------------------------
-
-.. index::
-    single: eucledianTSP(Basic Use)
-
-Minimal Signature
-...............................................................................
-
-.. code-block:: none
-
-    pgr_eucledianTSP(coordinates_sql)
-    RETURNS SETOF (seq, node, cost, agg_cost)
-
-:Example:
-
-Because the documentation examples are auto generated and tested for non changing results,
-and the default is to have random execution, the example is wrapping the actual call.
-
-.. literalinclude:: doc-pgr_eucledianTSP.queries
-   :start-after: -- q1
-   :end-before: -- q2
-
-
-.. index::
-    single: eucledianTSP(Complete Signature)
-
-Complete Signature
-...............................................................................
-
-.. code-block:: none
-
-
-    pgr_eucledianTSP(coordinates_sql,
-        start_id, end_id,
-        max_processing_time,
-        tries_per_temperature, max_changes_per_temperature, max_consecutive_non_changes,
-        initial_temperature, final_temperature, cooling_factor,
-        randomize,
-    RETURNS SETOF (seq, node, cost, agg_cost)
-
-
-.. rubric:: Example:
-
-.. literalinclude:: doc-pgr_eucledianTSP.queries
-   :start-after: -- q2
-   :end-before: -- q3
-
-Description of the Signatures
--------------------------------------------------------------------------------
-
-Description of the coordinates SQL query
-...............................................................................
-
-======= =========== =================================================
-Column  Type              Description
-======= =========== =================================================
-**id**  ``BIGINT``  Identifier of the coordinate. (optional)
-**x**   ``FLOAT``   X value of the coordinate.
-**y**   ``FLOAT``   Y value of the coordinate.
-======= =========== =================================================
-
-
-When the value of **id** is not given then the coordinates will receive an **id** starting from 1, in the order given.
-
-..
-    description of the configuration parameters
-
-.. include:: tsp_parameters.txt
-
-
-..
-    description of the return values
-
-.. include:: tsp_return_values.txt
-
-
-
-Examples
--------------------------------------------------------------------------------
-
-:Example: Skipping the Simulated Annealing & showing some process information
-
-.. literalinclude:: doc-pgr_eucledianTSP.queries
-   :start-after: -- q3
-   :end-before: -- q4
-
-
-
-The queries use the :ref:`sampledata` network.
-
-
-.. rubric:: History
-
-* New in version 2.3.0
-
-
-
-See Also
--------------------------------------------------------------------------------
-
-* :ref:`tsp`
-* http://en.wikipedia.org/wiki/Traveling_salesman_problem
-* http://en.wikipedia.org/wiki/Simulated_annealing
diff --git a/src/tsp/doc/tsp_parameters.txt b/src/tsp/doc/tsp_parameters.txt
deleted file mode 100644
index 3397fbf..0000000
--- a/src/tsp/doc/tsp_parameters.txt
+++ /dev/null
@@ -1,34 +0,0 @@
-.. 
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-
-Description Of the Control parameters
-.....................................
-
-The control parameters are optional, and have a default value.
-
-=============================== ===========  ============  =================================================
-Parameter                       Type         Default       Description
-=============================== ===========  ============  =================================================
-**start_vid**                   ``BIGINT``    `0`          The greedy part of the implementation will use this identifier.
-**end_vid**                     ``BIGINT``    `0`          Last visiting vertex before returning to start_vid.
-**max_processing_time**         ``FLOAT``    `+infinity`   Stop the annealing processing when the value is reached.
-**tries_per_temperature**       ``INTEGER``  `500`         Maximum number of times a neighbor(s) is searched in each temperature.
-**max_changes_per_temperature** ``INTEGER``  `60`          Maximum number of times the solution is changed in each temperature.
-**max_consecutive_non_changes** ``INTEGER``  `100`         Maximum number of consecutive times the solution is not changed in each temperature.
-**initial_temperature**         ``FLOAT``    `100`         Starting temperature.
-**final_temperature**           ``FLOAT``    `0.1`         Ending temperature.
-**cooling_factor**              ``FLOAT``    `0.9`         Value between between 0 and 1 (not including) used to calculate the next temperature.
-**randomize**                   ``BOOLEAN``  `true`        Choose the random seed
-
-                                                           - true: Use current time as seed
-                                                           - false: Use `1` as seed. Using this value will get the same results with the same data in each execution.
-
-=============================== ===========  ============  =================================================
-
diff --git a/src/tsp/doc/tsp_return_values.txt b/src/tsp/doc/tsp_return_values.txt
deleted file mode 100644
index c66108b..0000000
--- a/src/tsp/doc/tsp_return_values.txt
+++ /dev/null
@@ -1,27 +0,0 @@
-.. 
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-Description of the return values
-.................................
-
-Returns set of ``(seq, node, cost, agg_cost)``
-
-============= =========== =================================================
-Column           Type              Description
-============= =========== =================================================
-**seq**       ``INTEGER`` Row sequence.
-**node**      ``BIGINT``  Identifier of the node/coordinate/point.
-**cost**      ``FLOAT``   Cost to traverse from the current ``node`` ito the next ``node`` in the path sequence.
-                            - ``0`` for the last row in the path sequence.
-
-**agg_cost**  ``FLOAT``   Aggregate cost from the ``node`` at ``seq = 1`` to the current node.
-                            - ``0`` for the first row in the path sequence.
-
-============= =========== =================================================
-
diff --git a/src/tsp/sql/CMakeLists.txt b/src/tsp/sql/CMakeLists.txt
deleted file mode 100644
index 4f7445e..0000000
--- a/src/tsp/sql/CMakeLists.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-# Append in local scope
-LIST(APPEND PACKAGE_SQL_FILES
-    # This are the old signature
-    ${CMAKE_CURRENT_SOURCE_DIR}/tsp_v2.0_matrix.sql
-    # this file wrap pgr_tsp with pgr_eucledianTSP
-    ${CMAKE_CURRENT_SOURCE_DIR}/tsp_v2.0_coordinates.sql
-    # This file has vidstodmatrix
-    ${CMAKE_CURRENT_SOURCE_DIR}/routing_tsp_wrappers.sql
-
-    #this one implements the new tsp
-    ${CMAKE_CURRENT_SOURCE_DIR}/TSP.sql
-    ${CMAKE_CURRENT_SOURCE_DIR}/eucledianTSP.sql
-
-)
-
-# set in parent scope
-SET(PACKAGE_SQL_FILES "${PACKAGE_SQL_FILES}" PARENT_SCOPE)
diff --git a/src/tsp/sql/TSP.sql b/src/tsp/sql/TSP.sql
deleted file mode 100644
index 89e7b82..0000000
--- a/src/tsp/sql/TSP.sql
+++ /dev/null
@@ -1,50 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2016 pgRouting developers
-Mail: project at pgrouting.org
-
-Copyright (c) 2016 Celia Virginia Vergara Castillo
-mail: vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-CREATE OR REPLACE FUNCTION pgr_TSP(
-    matrix_row_sql TEXT,
-    start_id BIGINT DEFAULT 0,
-    end_id BIGINT DEFAULT 0,
-
-    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
-
-    tries_per_temperature INTEGER DEFAULT 500,
-    max_changes_per_temperature INTEGER DEFAULT 60,
-    max_consecutive_non_changes INTEGER DEFAULT 100,
-
-    initial_temperature FLOAT DEFAULT 100,
-    final_temperature FLOAT DEFAULT 0.1,
-    cooling_factor FLOAT DEFAULT 0.9,
-
-    randomize BOOLEAN DEFAULT true,
-
-    OUT seq INTEGER,
-    OUT node BIGINT,
-    OUT cost FLOAT,
-    OUT agg_cost FLOAT)
-RETURNS SETOF record
-AS '$libdir/${PGROUTING_LIBRARY_NAME}', 'newTSP'
-LANGUAGE c VOLATILE STRICT;
-
diff --git a/src/tsp/sql/eucledianTSP.sql b/src/tsp/sql/eucledianTSP.sql
deleted file mode 100644
index fb1b513..0000000
--- a/src/tsp/sql/eucledianTSP.sql
+++ /dev/null
@@ -1,51 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2016 pgRouting developers
-Mail: project at pgrouting.org
-
-Copyright (c) 2016 Celia Virginia Vergara Castillo
-mail: vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-CREATE OR REPLACE FUNCTION pgr_eucledianTSP(
-    coordinates_sql TEXT,
-    start_id BIGINT DEFAULT 0,
-    end_id BIGINT DEFAULT 0,
-
-    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
-
-    tries_per_temperature INTEGER DEFAULT 500,
-    max_changes_per_temperature INTEGER DEFAULT 60,
-    max_consecutive_non_changes INTEGER DEFAULT 100,
-
-    initial_temperature FLOAT DEFAULT 100,
-    final_temperature FLOAT DEFAULT 0.1,
-    cooling_factor FLOAT DEFAULT 0.9,
-
-    randomize BOOLEAN DEFAULT true,
-
-    OUT seq integer,
-    OUT node BIGINT,
-    OUT cost FLOAT,
-    OUT agg_cost FLOAT)
-RETURNS SETOF record
-AS '$libdir/${PGROUTING_LIBRARY_NAME}', 'eucledianTSP'
-LANGUAGE c VOLATILE STRICT;
-
-
diff --git a/src/tsp/sql/routing_tsp_wrappers.sql b/src/tsp/sql/routing_tsp_wrappers.sql
deleted file mode 100644
index a9099ce..0000000
--- a/src/tsp/sql/routing_tsp_wrappers.sql
+++ /dev/null
@@ -1,63 +0,0 @@
-/*PGR-MIT*****************************************************************
-
---
--- Copyright (c) 2013 Stephen Woodbridge
---
--- This files is released under an MIT-X license.
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-MIT/X license
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-********************************************************************PGR-MIT*/
-
-
-
-create or replace function _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
-  as
-$body$
-declare
-    sql text;
-    r record;
-    
-begin
-    dmatrix := array[]::double precision[];
-    ids := array[]::integer[];
-
-    sql := 'with nodes as (' || sqlin || ')
-        select i, array_agg(dist) as arow from (
-            select a.id as i, b.id as j, st_distance(st_makepoint(a.x, a.y), st_makepoint(b.x, b.y)) as dist
-              from nodes a, nodes b
-             order by a.id, b.id
-           ) as foo group by i order by i';
-
-    for r in execute sql loop
-        dmatrix := array_cat(dmatrix, array[r.arow]);
-        ids := ids || array[r.i];
-    end loop;
-
-end;
-$body$
-language plpgsql stable cost 10;
-
diff --git a/src/tsp/sql/tsp_v2.0_matrix.sql b/src/tsp/sql/tsp_v2.0_matrix.sql
deleted file mode 100644
index 6021967..0000000
--- a/src/tsp/sql/tsp_v2.0_matrix.sql
+++ /dev/null
@@ -1,95 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2016 pgRouting developers
-Mail: project at pgrouting.org
-
-Copyright (c) 2016 Celia Virginia Vergara Castillo
-mail: vicky_vergara at hotmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-CREATE OR REPLACE FUNCTION _pgr_unnest_matrix(matrix float8[][], OUT start_vid integer, OUT end_vid integer, out agg_cost float8)
-RETURNS SETOF record AS 
-
-$body$
-DECLARE
-
-m float8[];
-
-BEGIN
-    start_vid = 1;
-    foreach m slice 1 in  ARRAY matrix
-    LOOP
-        end_vid = 1;
-        foreach agg_cost in  ARRAY m
-        LOOP
-            RETURN next;
-            end_vid = end_vid + 1;
-        END LOOP;
-        start_vid = start_vid + 1;
-    END LOOP;
-END;
-$body$
-language plpgsql volatile cost 500 ROWS 50;
-
-
-
-CREATE OR REPLACE FUNCTION pgr_tsp(
-    matrix float8[][],
-    startpt INTEGER,
-    endpt INTEGER DEFAULT -1,
-    OUT seq INTEGER,
-    OUT id INTEGER)
-RETURNS SETOF record AS
-$body$
-DECLARE
-table_sql TEXT;
-debuglevel TEXT;
-BEGIN
-    RAISE NOTICE 'Deprecated Signature pgr_tsp(float8[][], integer, integer)';
-
-    CREATE TEMP TABLE ___tmp2 ON COMMIT DROP AS SELECT * FROM _pgr_unnest_matrix( matrix );
-
-
-    startpt := startpt + 1;
-    IF endpt = -1 THEN endpt := startpt;
-    END IF;
-
-    
-    RETURN QUERY
-    WITH 
-    result AS (
-        SELECT * FROM pgr_TSP(
-        $$SELECT * FROM ___tmp2 $$,
-        startpt, endpt,
-
-        tries_per_temperature :=  500 :: INTEGER,
-        max_changes_per_temperature := 30 :: INTEGER,
-        max_consecutive_non_changes := 500 :: INTEGER,
-
-        randomize:=false)
-    )
-    SELECT (row_number() over(ORDER BY result.seq) - 1)::INTEGER AS seq, (result.node - 1)::INTEGER AS id
-
-    FROM result WHERE NOT(result.node = startpt AND result.seq != 1);
-
-    DROP TABLE ___tmp2;
-END;
-$body$
-language plpgsql volatile cost 500 ROWS 50;
diff --git a/src/tsp/src/Dmatrix.cpp b/src/tsp/src/Dmatrix.cpp
index fb6033d..7c147c3 100644
--- a/src/tsp/src/Dmatrix.cpp
+++ b/src/tsp/src/Dmatrix.cpp
@@ -23,7 +23,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
  ********************************************************************PGR-GNU*/
 
-#include "./Dmatrix.h"
+#include "cpp_common/Dmatrix.h"
 
 #include <string.h>
 #include <sstream>
@@ -32,8 +32,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 #include <vector>
 #include <cmath>
 
-#include "./tour.h"
-#include "../../common/src/pgr_assert.h"
+#include "tsp/tour.h"
+#include "cpp_common/pgr_assert.h"
 
 
 namespace pgrouting {
@@ -81,6 +81,11 @@ Dmatrix::has_id(int64_t id) const {
 }
 
 
+/*! given a users id returns the internal index
+ *
+ * in[] id
+ * returns index
+ */
 size_t
 Dmatrix::get_index(int64_t id) const {
     auto pos = std::lower_bound(ids.begin(), ids.end(), id);
@@ -124,15 +129,15 @@ Dmatrix::has_no_infinity() const {
 }
 
 
+/*!
+ * Triangle Inequality Theorem.
+ *  The sum of the lengths of any two sides of a triangle is greater than the length of the third side.
+ *  NOTE: can also be equal for streets
+ * costs[i][k] != inf
+ * costs[i][k] <= costs[i][j] + costs[j][k] 
+ */
 bool
 Dmatrix::obeys_triangle_inequality() const {
-    /*
-     * Triangle Inequality Theorem.
-     *  The sum of the lengths of any two sides of a triangle is greater than the length of the third side.
-     *  NOTE: can also be equal for streets
-     * costs[i][k] != inf
-     * costs[i][k] <= costs[i][j] + costs[j][k] 
-     */
     for (size_t i = 0; i < costs.size(); ++i) {
         for (size_t j = 0; j < costs.size(); ++j) {
             for (size_t k = 0; k < costs.size(); ++k) {
@@ -164,6 +169,9 @@ Dmatrix::is_symmetric() const {
 }
 
 
+/**
+ * 
+ */
 std::ostream& operator<<(std::ostream &log, const Dmatrix &matrix) {
     for (const auto id : matrix.ids) {
         log << "\t" << id;
@@ -173,20 +181,23 @@ std::ostream& operator<<(std::ostream &log, const Dmatrix &matrix) {
     for (const auto row : matrix.costs) {
         size_t j = 0;
         for (const auto cost : row) {
-            log << "(" << i << "," << j << ")"
-                << "\t(" << matrix.ids[i] << "," << matrix.ids[j] << ")"
+            log << "Internal(" << i << "," << j << ")"
+                << "\tUsers(" << matrix.ids[i] << "," << matrix.ids[j] << ")"
+                << "\t = " << cost
+#if 0
                 << "\t(" << matrix.get_index(matrix.ids[i])
                 << "," << matrix.get_index(matrix.ids[j]) << ")"
-                << "\t = " << cost
                 << "\t = " << matrix.costs[i][j]
                 << "\t = " << matrix.costs[j][i]
                 << "=inf:" <<  (matrix.costs[i][j] == (std::numeric_limits<double>::infinity)())
                 << "=inf:" <<  (matrix.costs[j][i] == (std::numeric_limits<double>::infinity)())
+#endif
                 << "\n";
             ++j;
         }
         ++i;
     }
+#if 0
     for (size_t i = 0; i < matrix.costs.size(); ++i) {
         for (size_t j = 0; j < matrix.costs.size(); ++j) {
             for (size_t k = 0; k < matrix.costs.size(); ++k) {
@@ -198,7 +209,7 @@ std::ostream& operator<<(std::ostream &log, const Dmatrix &matrix) {
             }
         }
     }
-
+#endif
     return log;
 }
 
diff --git a/src/tsp/src/Dmatrix.h b/src/tsp/src/Dmatrix.h
deleted file mode 100644
index 2bc23e5..0000000
--- a/src/tsp/src/Dmatrix.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-FILE: Dmatrix.h
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- ********************************************************************PGR-GNU*/
-
-#ifndef SRC_TSP_SRC_DMATRIX_H_
-#define SRC_TSP_SRC_DMATRIX_H_
-#pragma once
-
-#include <iostream>
-#include <vector>
-
-#include "../../common/src/pgr_types.h"
-
-namespace pgrouting {
-namespace tsp {
-
-class Tour;  // for tourCost
-
-class Dmatrix {
- public:
-    Dmatrix() = default;
-    explicit Dmatrix(const std::vector < Matrix_cell_t > &data_costs);
-
-    bool has_no_infinity() const;
-    bool obeys_triangle_inequality() const;
-    bool is_symmetric() const;
-
-    /*! @brief sets a special value for the distance(i,j)
-     *
-     * @param [in] i - index in matrix
-     * @param [in] j - index in matrix
-     * @param [in] dist - distance from i to j & from j to i
-     *
-     */
-    void set(size_t i, size_t j, double dist) {
-        costs[i][j] = costs[j][i] = dist;}
-
-    /*! @brief original id -> true
-     *
-     * @param [in] id - original id
-     * @returns true if id is in the distance table
-     */
-    bool has_id(int64_t id) const;
-
-    /*! @brief original id -> idx
-     *
-     * @param [in] id - original id
-     * @returns idx index of the id in the distance table
-     */
-    size_t get_index(int64_t id) const;
-
-    /*! @brief idx -> original id
-     *
-     * @param [in] idx - index (i-th coordinate)
-     * @returns the original id corresponding to idx
-     */
-    int64_t get_id(size_t idx) const;
-
-    /*! @brief |idx|
-     *
-     * @returns the total number of coordinates
-     */
-    size_t size() const {return ids.size();}
-
-    /*! @brief tour evaluation
-     *
-     * @param [in] tour
-     * @returns total cost of traversing the tour
-     */
-    double tourCost(const Tour &tour) const;
-
-    /*! @brief returns a row of distances
-     *
-     * @param [in] idx - row index
-     * @returns distances from idx to all other coordinates
-     */
-    const std::vector<double>& get_row(size_t idx) const {
-        return costs[idx];}
-
-    double comparable_distance(size_t i, size_t j) const {
-        return distance(i, j);}
-
-    double distance(size_t i, size_t j) const {
-        return costs[i][j];}
-
-    friend std::ostream& operator<<(
-            std::ostream &log,
-            const Dmatrix &matrix);
-
- protected:
-    void set_ids(const std::vector<matrix_cell> &data_costs);
-    std::vector<int64_t> ids;
-
- private:
-    typedef std::vector < std::vector < double > > Costs;
-    Costs costs;
-    std::vector< double >& operator[] (size_t i) {return costs[i];}
-    const std::vector< double >& operator[] (size_t i) const {return costs[i];}
-};
-
-}  // namespace tsp
-}  // namespace pgrouting
-
-#endif  // SRC_TSP_SRC_DMATRIX_H_
diff --git a/src/tsp/src/eucledianDmatrix.cpp b/src/tsp/src/eucledianDmatrix.cpp
index 908621a..15ab82f 100644
--- a/src/tsp/src/eucledianDmatrix.cpp
+++ b/src/tsp/src/eucledianDmatrix.cpp
@@ -24,14 +24,14 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  ********************************************************************PGR-GNU*/
 
 
-#include "./eucledianDmatrix.h"
+#include "tsp/eucledianDmatrix.h"
 
 #include <algorithm>
 #include <vector>
 #include <cmath>
 
-#include "./tour.h"
-#include "../../common/src/pgr_assert.h"
+#include "tsp/tour.h"
+#include "cpp_common/pgr_assert.h"
 
 
 namespace pgrouting {
diff --git a/src/tsp/src/eucledianDmatrix.h b/src/tsp/src/eucledianDmatrix.h
deleted file mode 100644
index 580aab5..0000000
--- a/src/tsp/src/eucledianDmatrix.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-FILE: eucledianDmatrix.h
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- ********************************************************************PGR-GNU*/
-
-#ifndef SRC_TSP_SRC_EUCLEDIANDMATRIX_H_
-#define SRC_TSP_SRC_EUCLEDIANDMATRIX_H_
-#pragma once
-
-#include <iostream>
-#include <vector>
-
-#include "../../common/src/pgr_types.h"
-
-namespace pgrouting {
-namespace tsp {
-
-class Tour;  // for tourCost
-
-class eucledianDmatrix {
- public:
-    eucledianDmatrix() = default;
-    explicit eucledianDmatrix(
-            const std::vector< Coordinate_t > &data_coordinates);
-
-    bool has_no_infinity() const;
-    bool obeys_triangle_inequality() const;
-    bool is_symmetric() const;
-
-    /*! @brief sets a special value for the distance(i,j)
-     *
-     * @param[in] i - index in matrix
-     * @param[in] j - index in matrix
-     * @param[in] dist - distance from i to j & from j to i
-     *
-     */
-    void set(size_t i, size_t j, double dist) {
-        row = i; column = j; special_distance = dist;}
-
-    /*! @brief original id -> true
-     *
-     * @param[in] id  original id
-     *
-     * @returns true if id is in the distance table
-     */
-    bool has_id(int64_t id) const;
-
-    /*! @brief original id -> idx
-     *
-     * @param[in] id - original id
-     * @returns idx index of the id in the distance table
-     */
-    size_t get_index(int64_t id) const;
-
-    /*! @brief idx -> original id
-     *
-     * @param[in] idx - index (i-th coordinate)
-     * @returns the original id corresponding to idx
-     */
-    int64_t get_id(size_t idx) const;
-
-    /*! @brief |idx|
-     *
-     * @returns the total number of coordinates
-     */
-    size_t size() const {return ids.size();}
-
-    /*! @brief tour evaluation
-     *
-     * @param[in] tour
-     * @returns total cost of traversing the tour
-     */
-    double tourCost(const Tour &tour) const;
-
-    /*! @brief returns a row of distances
-     *
-     * @param[in] idx  row index
-     *
-     * @returns distances from idx to all other coordinates
-     */
-    const std::vector<double> get_row(size_t idx) const;
-
-    double comparable_distance(size_t i, size_t j) const;
-    double distance(size_t i, size_t j) const;
-
-    friend std::ostream& operator<<(
-            std::ostream &log,
-            const eucledianDmatrix &matrix);
-
- protected:
-    void set_ids();
-    std::vector<int64_t> ids;
-
- private:
-    std::vector < Coordinate_t >  coordinates;
-    size_t row;
-    size_t column;
-    double special_distance;
-};
-
-}  // namespace tsp
-}  // namespace pgrouting
-
-#endif  // SRC_TSP_SRC_EUCLEDIANDMATRIX_H_
diff --git a/src/tsp/src/eucledianTSP.c b/src/tsp/src/eucledianTSP.c
index 9c45799..a1910be 100644
--- a/src/tsp/src/eucledianTSP.c
+++ b/src/tsp/src/eucledianTSP.c
@@ -27,15 +27,15 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
  ********************************************************************PGR-GNU*/
 
-#include "./../../common/src/postgres_connection.h"
+#include "c_common/postgres_connection.h"
 #include "utils/array.h"
 
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/e_report.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/coordinates_input.h"
-#include "./eucledianTSP_driver.h"
+#include "c_common/debug_macro.h"
+#include "c_common/e_report.h"
+#include "c_common/time_msg.h"
+
+#include "c_common/coordinates_input.h"
+#include "drivers/tsp/eucledianTSP_driver.h"
 
 
 
diff --git a/src/tsp/src/eucledianTSP_driver.cpp b/src/tsp/src/eucledianTSP_driver.cpp
index 01b745b..c88dc6d 100644
--- a/src/tsp/src/eucledianTSP_driver.cpp
+++ b/src/tsp/src/eucledianTSP_driver.cpp
@@ -28,18 +28,18 @@
  *  ******************************************************************** PGR-GNU*/
 
 
-#include "./eucledianTSP_driver.h"
+#include "drivers/tsp/eucledianTSP_driver.h"
 
 #include <string.h>
 #include <sstream>
 #include <vector>
 #include <algorithm>
 
-#include "./pgr_tsp.hpp"
-#include "./eucledianDmatrix.h"
+#include "tsp/pgr_tsp.hpp"
+#include "tsp/eucledianDmatrix.h"
 
-#include "./../../common/src/pgr_alloc.hpp"
-#include "./../../common/src/pgr_assert.h"
+#include "cpp_common/pgr_alloc.hpp"
+#include "cpp_common/pgr_assert.h"
 
 void
 do_pgr_eucledianTSP(
@@ -90,7 +90,7 @@ do_pgr_eucledianTSP(
              */
             real_cost = costs.distance(idx_start, idx_end);
             /*
-             * Temporarly setting the cost between the start_vid and end_vid to 0
+             * Temporarily setting the cost between the start_vid and end_vid to 0
              */
             costs.set(idx_start, idx_end, 0);
         }
diff --git a/src/tsp/src/eucledianTSP_driver.h b/src/tsp/src/eucledianTSP_driver.h
deleted file mode 100644
index bbc0d07..0000000
--- a/src/tsp/src/eucledianTSP_driver.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*PGR-GNU*****************************************************************
- * File: tsp_driver.h
- *
- * Generated with Template by:
- * Copyright (c) 2015 pgRouting developers
- * Mail: project at pgrouting.org
- *
- * Function's developer:
- * Copyright (c) 2015 Celia Virginia Vergara Castillo
- * Mail: vicky_vergara at hotmail.com
- *
- * ------
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- *  ********************************************************************PGR-GNU*/
-
-#ifndef SRC_TSP_SRC_EUCLEDIANTSP_DRIVER_H_
-#define SRC_TSP_SRC_EUCLEDIANTSP_DRIVER_H_
-#pragma once
-
-#include "../../common/src/pgr_types.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void
-do_pgr_eucledianTSP(
-        Coordinate_t *coordinates, size_t total_coordinates,
-        int64_t start_vid,
-        int64_t end_vid,
-
-        double initial_temperature,
-        double final_temperature,
-        double cooling_factor,
-        int64_t tries_per_temperature,
-        int64_t max_changes_per_temperature,
-        int64_t max_consecutive_non_changes,
-        bool randomize,
-        double time_limit,
-
-        General_path_element_t **results,
-        size_t *total_results,
-        char **log_msg,
-        char **notice_msg,
-        char **err_msg);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif  // SRC_TSP_SRC_EUCLEDIANTSP_DRIVER_H_
diff --git a/src/tsp/src/newTSP.c b/src/tsp/src/newTSP.c
index 8c5768a..13a4061 100644
--- a/src/tsp/src/newTSP.c
+++ b/src/tsp/src/newTSP.c
@@ -27,15 +27,15 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
  ********************************************************************PGR-GNU*/
 
-#include "./../../common/src/postgres_connection.h"
+#include "c_common/postgres_connection.h"
 #include "utils/array.h"
 
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/e_report.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/matrixRows_input.h"
-#include "./newTSP_driver.h"
+#include "c_common/debug_macro.h"
+#include "c_common/e_report.h"
+#include "c_common/time_msg.h"
+
+#include "c_common/matrixRows_input.h"
+#include "drivers/tsp/newTSP_driver.h"
 
 
 
@@ -131,7 +131,7 @@ process(
             &notice_msg,
             &err_msg);
 
-    time_msg("eucledianTSP", start_t, clock());
+    time_msg("TSP", start_t, clock());
 
     if (err_msg && (*result_tuples)) {
         pfree(*result_tuples);
diff --git a/src/tsp/src/newTSP_driver.cpp b/src/tsp/src/newTSP_driver.cpp
index f3af088..3e90320 100644
--- a/src/tsp/src/newTSP_driver.cpp
+++ b/src/tsp/src/newTSP_driver.cpp
@@ -27,18 +27,18 @@
  *
  *  ******************************************************************** PGR-GNU*/
 
-#include "./newTSP_driver.h"
+#include "drivers/tsp/newTSP_driver.h"
 
 #include <string.h>
 #include <sstream>
 #include <vector>
 #include <algorithm>
 
-#include "./Dmatrix.h"
-#include "./pgr_tsp.hpp"
+#include "cpp_common/Dmatrix.h"
+#include "tsp/pgr_tsp.hpp"
 
-#include "./../../common/src/pgr_alloc.hpp"
-#include "./../../common/src/pgr_assert.h"
+#include "cpp_common/pgr_alloc.hpp"
+#include "cpp_common/pgr_assert.h"
 
 void
 do_pgr_tsp(
diff --git a/src/tsp/src/newTSP_driver.h b/src/tsp/src/newTSP_driver.h
deleted file mode 100644
index bd6b324..0000000
--- a/src/tsp/src/newTSP_driver.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*PGR-GNU*****************************************************************
- * File: tsp_driver.h
- *
- * Generated with Template by:
- * Copyright (c) 2015 pgRouting developers
- * Mail: project at pgrouting.org
- *
- * Function's developer:
- * Copyright (c) 2015 Celia Virginia Vergara Castillo
- * Mail: vicky_vergara at hotmail.com
- *
- * ------
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- *  ********************************************************************PGR-GNU*/
-
-#ifndef SRC_TSP_SRC_NEWTSP_DRIVER_H_
-#define SRC_TSP_SRC_NEWTSP_DRIVER_H_
-#pragma once
-
-#include "../../common/src/pgr_types.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void
-do_pgr_tsp(
-        Matrix_cell_t *distances, size_t total_distances,
-        int64_t start_vid,
-        int64_t end_vid,
-
-        double initial_temperature,
-        double final_temperature,
-        double cooling_factor,
-        int64_t tries_per_temperature,
-        int64_t max_changes_per_temperature,
-        int64_t max_consecutive_non_changes,
-        bool randomize,
-        double time_limit,
-
-        General_path_element_t **results,
-        size_t *total_results,
-        char **log_msg,
-        char **notice_msg,
-        char **err_msg);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif  // SRC_TSP_SRC_NEWTSP_DRIVER_H_
diff --git a/src/tsp/src/pgr_tsp.cpp b/src/tsp/src/pgr_tsp.cpp
deleted file mode 100644
index bc4b693..0000000
--- a/src/tsp/src/pgr_tsp.cpp
+++ /dev/null
@@ -1,573 +0,0 @@
-/*PGR-GNU*****************************************************************
- * File: pgr_tsp.cpp
- *
- * Generated with Template by:
- * Copyright (c) 2015 pgRouting developers
- * Mail: project at pgrouting.org
- *
- * Function's developer:
- * Copyright (c) 2015 Celia Virginia Vergara Castillo
- * Mail: vicky_vergara at hotmail.com
- *
- * ------
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- *  ********************************************************************PGR-GNU*/
-
-
-#include "./pgr_tsp.hpp"
-
-#include <time.h>
-
-#include <utility>
-#include <iomanip>
-#include <limits>
-#include <vector>
-#include <set>
-#include <algorithm>
-#include <cmath>
-
-#include "../../common/src/pgr_types.h"
-#include "../../common/src/pgr_assert.h"
-
-
-
-static
-size_t
-rand(size_t n) {
-    pgassert(n > 0);
-    return static_cast< size_t >(std::rand() % n);
-}
-
-
-static
-size_t
-succ(size_t i, size_t n) {
-    pgassert(n > 0);
-    return static_cast<size_t>((i + 1) % n);
-}
-
-static
-size_t
-pred(size_t i, size_t n) {
-    return  i == 0? n - 1: i -1;
-}
-
-
-namespace pgrouting {
-namespace tsp {
-
-template < typename MATRIX >
-void TSP<MATRIX>::invariant() const {
-    /* the calculated value & the actual value are the same */
-    pgassert(std::fabs(tourCost(current_tour) - current_cost) < epsilon);
-    pgassert(std::fabs(tourCost(best_tour) - bestCost) < epsilon);
-    pgassert(n == MATRIX::ids.size());
-    pgassert(n == current_tour.size());
-    pgassert(n == best_tour.size());
-}
-
-template < typename MATRIX >
-void
-TSP<MATRIX>::update_if_best() {
-    invariant();
-    ++updatecalls;
-
-    if (current_cost < bestCost) {
-        ++improve_count;
-        best_tour = current_tour;
-        bestCost = current_cost;
-    }
-
-    invariant();
-}
-
-
-
-template < typename MATRIX >
-size_t
-TSP<MATRIX>::find_closest_city(
-        size_t current_city,
-        const std::set<size_t> inserted) const {
-    invariant();
-
-    auto distance_row(get_row(current_city));
-    pgassert(distance_row.size() == n);
-
-#ifndef NDEBUG
-    std::ostringstream err;
-    for (const auto &d : distance_row) {
-        err  << d << ", ";
-    }
-#endif
-
-    size_t best_city = 0;
-    auto best_distance = (std::numeric_limits<double>::max)();
-#ifndef NDEBUG
-    bool found(false);
-#endif
-
-    for (size_t i = 0; i < distance_row.size(); ++i) {
-        if (i == current_city) continue;
-        if (inserted.find(i) != inserted.end()) continue;
-        if (distance_row[i] <  best_distance) {
-            best_city = i;
-            best_distance = distance_row[i];
-#ifndef NDEBUG
-            found = true;
-#endif
-        }
-    }
-    pgassertwm(found, err.str());
-
-    invariant();
-    return best_city;
-}
-
-
-
-template < typename MATRIX >
-void
-TSP<MATRIX>::greedyInitial(size_t idx_start) {
-    invariant();
-
-    std::set<size_t> pending(best_tour.cities.begin(), best_tour.cities.end());
-    std::set<size_t> inserted;
-    std::vector<size_t> tour_to_be;
-
-    auto current_city = idx_start;
-
-#ifndef NDEBUG
-    std::ostringstream err;
-    auto ps(pending.size());
-#endif
-
-    pending.erase(idx_start);
-
-#ifndef NDEBUG
-    pgassert(pending.size() == (ps - 1));
-#endif
-
-    tour_to_be.push_back(current_city);
-    inserted.insert(current_city);
-
-    while (!pending.empty()) {
-        auto next_city = find_closest_city(current_city, inserted);
-        tour_to_be.push_back(next_city);
-        inserted.insert(next_city);
-
-#ifndef NDEBUG
-        auto ps(pending.size());
-        err << "before";
-        for (const auto p : pending) {
-            err << p << ",";
-        }
-#endif
-
-        pending.erase(next_city);
-
-#ifndef NDEBUG
-        err << "\nafter deleting" << next_city << ":\t";
-        for (const auto p : pending) {
-            err << p << ",";
-        }
-        pgassertwm(pending.size() == (ps - 1), err.str());
-#endif
-
-        current_city = next_city;
-    }
-
-    pgassert(tour_to_be.size() == n);
-    current_tour = Tour(tour_to_be);
-    current_cost = tourCost(current_tour);
-    update_if_best();
-    swapClimb();
-
-    invariant();
-    return;
-}
-
-
-
-/*
- *
- * 0 1 2 3 4 5 6 7 8 9
- *     p   f     l
- * slides [4,5,6] to position p
- *
- * 0 1 4 5 6 2 3 7 8 9
- *
- *
- * 0 1 2 3 4 5 6 7 8 9
- *     f     l     p
- * slides [2,3,4] to position p
- *
- * 0 1 6 7 2 3 4 5 8 9
- *
- *
- */
-
-template < typename MATRIX >
-double
-TSP<MATRIX>::getDeltaSlide(size_t place, size_t first, size_t last) const {
-    invariant();
-#ifndef NDEBUG
-    std::ostringstream err;
-    err  << "\tplace" << place
-        << "\tfirst" << first
-        << "\tlast" << last
-        << "\tn" << n;
-#endif
-
-    pgassertwm(place < first || place > last, err.str());
-    pgassertwm(first < last, err.str());
-    pgassertwm(last < n, err.str());
-    pgassertwm(place < n, err.str());
-    pgassertwm(first < n, err.str());
-
-    /*
-     * Initial state
-     * [...f] [f+1 ... l] [l+1 ...p] [p+1 ...]
-     *
-     * final state
-     * [...f] [l+1 ... p] [f+1 ...l] [p+1 ...]
-     *
-     *
-     * Initial state
-     *   [f+1 ... l]
-     *     :      :
-     * [...f]   [l+1 ...p] [p+1 ...]
-     *
-     * final state
-     *               [f+1 ... l]
-     *                :       :
-     * [...f] [l+1 ...p]   [p+1 ...]
-     *
-     */
-
-    auto cityP = current_tour.cities[place];
-    auto cityF = current_tour.cities[first];
-    auto cityL = current_tour.cities[last];
-    auto cityP1 = current_tour.cities[succ(place, n)];
-    auto cityF1 = current_tour.cities[succ(first, n)];
-    auto cityL1 = current_tour.cities[succ(last, n)];
-
-    auto delta(
-            distance(cityF, cityL1)
-            + distance(cityP, cityF1)
-            + distance(cityL, cityP1)
-            - distance(cityF, cityF1)
-            - distance(cityL, cityL1)
-            - distance(cityP, cityP1));
-
-#ifndef NDEBUG
-    Tour new_tour(current_tour);
-    new_tour.slide(place, first, last);
-
-    err << "\ncurrent_tour:";
-    for (const auto id : current_tour.cities) {
-        err << id << ", ";
-    }
-
-    err << "\nnew_tour:";
-    for (const auto id : new_tour.cities) {
-        err << id << ", ";
-    }
-
-    auto exactDelta = tourCost(new_tour) - tourCost(current_tour);
-    err << "\n"
-        << exactDelta
-        << " - " <<  delta
-        << " = "
-        << exactDelta - delta
-        << " = "
-        << std::fabs(exactDelta - delta);
-    pgassertwm(std::fabs((exactDelta - delta)) < epsilon, err.str());
-#endif
-
-    invariant();
-    return delta;
-}
-
-
-/*
- *       c..d            c..d
- *       |  |     =>     |  |
- *       |  |            |  |
- *  b -- a  e --f   b -- e  a -- f
- *
- *   a b 1  2   .. n-1 n c d
- *   a c n n-1  ..  2  1 c d
- */
-template < typename MATRIX >
-double
-TSP<MATRIX>::getDeltaSwap(size_t posA, size_t posE) const {
-    invariant();
-
-    if (succ(posE, n ) == posA) std::swap(posA, posE);
-    if (succ(posA, n) == posE) {
-        auto b = current_tour.cities[pred(posA, n)];
-        auto a = current_tour.cities[posA];
-
-        auto e = current_tour.cities[posE];
-        auto f = current_tour.cities[succ(posE, n)];
-        return distance(b, e) + distance(e, a) + distance(a, f)
-            - distance(b, a) - distance(a, e)  - distance(e, f);
-    }
-
-    auto b = current_tour.cities[pred(posA, n)];
-    auto a = current_tour.cities[posA];
-    auto c = current_tour.cities[succ(posA, n)];
-
-    auto d = current_tour.cities[pred(posE, n)];
-    auto e = current_tour.cities[posE];
-    auto f = current_tour.cities[succ(posE, n)];
-
-#ifndef NDEBUG
-    auto delta = distance(b, e)
-        + distance(e, c) + distance(d, a) + distance(a, f)
-        - distance(b, a) - distance(a, c)  - distance(d, e) - distance(e, f);
-    auto new_tour(current_tour);
-    new_tour.swap(posA, posE);
-    auto exactDelta = tourCost(new_tour) - tourCost(current_tour);
-    std::ostringstream log;
-    log << exactDelta
-        << " - " <<  delta
-        << " = "
-        << exactDelta - delta
-        << " = "
-        << std::fabs(exactDelta - delta);
-
-    pgassertwm(std::fabs((exactDelta - delta)) < epsilon, log.str());
-#endif
-
-    invariant();
-    return  distance(b, e) + distance(e, c) + distance(d, a) + distance(a, f)
-        - distance(b, a) - distance(a, c)  - distance(d, e) - distance(e, f);
-}
-
-/*
- *   ..A                    C
- *       [                    )
- *   ..a  b 1  2   .. n-1 n c d ..
- *   ..a  c n n-1  ..  2  1 b d ..
- */
-template < typename MATRIX >
-double
-TSP<MATRIX>::getDeltaReverse(size_t posA, size_t posC) const {
-    invariant();
-
-    if (posA == (posC - 1)) return 0;
-    auto a = current_tour.cities[posA];
-    auto b = current_tour.cities[succ(posA, n)];
-
-    auto c = current_tour.cities[posC];
-    auto d = current_tour.cities[succ(posC, n)];
-
-
-#ifndef NDEBUG
-    auto delta =
-        distance(a, c) + distance(b, d) - distance(a, b) - distance(c, d);
-    auto new_tour(current_tour);
-    new_tour.reverse(posA, posC);
-    auto exactDelta = tourCost(new_tour) - tourCost(current_tour);
-
-    std::ostringstream log;
-    log << "exactDelta(" << exactDelta
-        << ") - delta(" <<  delta
-        << ") = "
-        << exactDelta - delta
-        << " = "
-        << (exactDelta - delta)
-        << " epsilon = " << epsilon;
-    pgassertwm(std::fabs((exactDelta - delta)) < epsilon, log.str());
-#endif
-
-    invariant();
-    return  distance(a, c) + distance(b, d) - distance(a, b) - distance(c, d);
-}
-
-template < typename MATRIX >
-void
-TSP<MATRIX>::swapClimb() {
-    invariant();
-    pgassert(n > 2);
-
-    //    auto first = std::rand() % n;
-    //    for (size_t first = std::rand() % n; first < n; first++) {
-    for (size_t first = 0; first < n; first++) {
-        for (size_t last = first + 1; last < n; last++) {
-            pgassert(first < last);
-
-            auto energyChange = getDeltaSwap(first, last);
-
-            if (energyChange < 0 && epsilon < std::fabs(energyChange)) {
-                ++swap_count;
-                current_cost += energyChange;
-                current_tour.swap(first, last);
-                update_if_best();
-            }
-        }
-    }
-    invariant();
-}
-
-template < typename MATRIX >
-void
-TSP<MATRIX>::annealing(
-        double temperature,
-        double final_temperature,
-        double cooling_factor,
-        int64_t tries_per_temperature,
-        int64_t max_changes_per_temperature,
-        int64_t max_consecutive_non_changes,
-        bool randomize,
-        double time_limit) {
-    invariant();
-    clock_t start_time(clock());
-
-    if (randomize) {
-        std::srand(static_cast<unsigned int>(time(NULL)));
-    } else {
-        std::srand(1);
-    }
-
-
-
-
-    /* annealing schedule */
-    for (; final_temperature < temperature; temperature *= cooling_factor) {
-        invariant();
-
-        log << "\nCycle(" << temperature <<") ";
-
-        /*
-           how many times the tour changed in current temperature
-           */
-        int64_t pathchg = 0;
-        size_t enchg = 0;
-        int64_t non_change = 0;
-        for (int64_t j = 0; j < tries_per_temperature; j++) {
-            ++non_change;
-
-            auto which = rand(2);
-            // which = 1;
-            switch (which) {
-                case 0: {
-                            /* reverse */
-                            pgassert(n > 2);
-
-                            auto c1 = std::rand() % n;
-                            auto c2 = std::rand() % n;
-
-                            if (c1 == c2) c2 = succ(c2, n);
-                            if (c1 == (c2 - 1)) c2 = succ(c2, n);
-                            if (c1 > c2) std::swap(c1, c2);
-
-                            pgassert(c1 != c2);
-                            pgassert(c1 < n && c2 < n);
-                            pgassert(c1 < c2);
-
-                            auto energyChange = getDeltaReverse(c1, c2);
-
-                            if ( (energyChange < 0
-                                        && epsilon < std::fabs(energyChange))
-                                    || (0 < energyChange
-                                        &&  (
-                                            static_cast<double>(std::rand()) /
-                                            static_cast<double>(RAND_MAX))
-                                        < exp(-energyChange / temperature))) {
-                                if (energyChange < 0) ++enchg;
-                                ++reverse_count;
-                                ++pathchg;
-                                non_change = 0;
-                                current_cost += energyChange;
-                                current_tour.reverse(c1, c2);
-                                update_if_best();
-                            }
-                        }
-                        break;
-                case 1: {
-                            /* slide */
-                            if (n <= 3) {
-                                break;
-                            }
-
-                            pgassert(n > 3);
-
-                            auto first = std::rand() % n;
-                            auto last = std::rand() % n;
-
-                            if (first == last) last = succ(last, n);
-                            if (first > last) std::swap(first, last);
-                            if (first == 0 && last == (n - 1)) {
-                                first = succ(first, n);
-                            }
-
-                            pgassert((n - (last - first) - 1) > 0);
-                            auto place = std::rand() % (n - (last - first) - 1);
-                            place = place < first?  place :
-                                last + (place - first) + 1;
-
-
-                            pgassert((place < first
-                                        || place > last)
-                                    && (first < last));
-
-                            auto energyChange = getDeltaSlide(
-                                    place, first, last);
-
-                            if ((energyChange < 0
-                                        && epsilon < std::fabs(energyChange))
-                                    || (0 < energyChange
-                                        &&  (static_cast<double>(std::rand())
-                                            / static_cast<double>(RAND_MAX))
-                                        < exp(-energyChange / temperature))) {
-                                if (energyChange < 0) ++enchg;
-                                ++slide_count;
-                                ++pathchg;
-                                non_change = 0;
-                                current_cost += energyChange;
-                                current_tour.slide(place, first, last);
-                                update_if_best();
-                            }
-                        }
-                        break;
-            }  // switch
-
-
-            if (max_changes_per_temperature < pathchg
-                    && max_consecutive_non_changes < non_change ) {
-                break;
-            }
-        }  // for tries per temperature
-
-        swapClimb();
-        clock_t current_time(clock());
-        double elapsed_time = static_cast<double>(
-                current_time - start_time) / CLOCKS_PER_SEC;
-        if (time_limit < elapsed_time) {
-            break;
-        }
-        log << "\ttotal changes =" << pathchg
-            << "\t" << enchg << " were because  delta energy < 0";
-        if (pathchg == 0) break;   /* if no change then quit */
-    }  // for temperatures
-}
-
-}  // namespace tsp
-}  // namespace pgrouting
-
diff --git a/src/tsp/src/pgr_tsp.hpp b/src/tsp/src/pgr_tsp.hpp
deleted file mode 100644
index 9456d55..0000000
--- a/src/tsp/src/pgr_tsp.hpp
+++ /dev/null
@@ -1,149 +0,0 @@
-/*PGR-GNU*****************************************************************
- * File: tsp_driver.cpp
- *
- * Generated with Template by:
- * Copyright (c) 2015 pgRouting developers
- * Mail: project at pgrouting.org
- *
- * Function's developer:
- * Copyright (c) 2015 Celia Virginia Vergara Castillo
- * Mail: vicky_vergara at hotmail.com
- *
- * ------
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- *  ********************************************************************PGR-GNU*/
-
-#ifndef SRC_TSP_SRC_PGR_TSP_HPP_
-#define SRC_TSP_SRC_PGR_TSP_HPP_
-#pragma once
-
-#include <sstream>
-#include <vector>
-#include <set>
-#include <string>
-
-#include "../../common/src/pgr_types.h"
-#include "../../common/src/pgr_assert.h"
-#include "./Dmatrix.h"
-#include "./eucledianDmatrix.h"
-#include "./tour.h"
-
-
-namespace pgrouting {
-namespace tsp {
-
-template < typename MATRIX >
-class TSP: public MATRIX {
- public:
-     using MATRIX::distance;
-     using MATRIX::tourCost;
-     using MATRIX::get_row;
-
-     /*
-      * function members
-      */
-     explicit TSP(const MATRIX &_costs)
-         : MATRIX(_costs),
-         current_tour(_costs.size()),
-         best_tour(_costs.size()),
-         epsilon(0.000001),
-         n(_costs.size()),
-         updatecalls(0),
-         swap_count(0),
-         slide_count(0),
-         reverse_count(0),
-         improve_count(0) {
-             pgassert(n == MATRIX::size());
-             bestCost = MATRIX::tourCost(best_tour);
-             current_cost = MATRIX::tourCost(current_tour);
-             pgassert(bestCost == current_cost);
-         }
-
-
-     Tour get_tour() const {return best_tour;}
-
-     std::string get_stats() const {
-         std::ostringstream log1;
-         log1
-             << "\nTotal swaps: " << swap_count
-             << "\nTotal slides: " << slide_count
-             << "\nTotal reverses: " << reverse_count
-             << "\nTimes best tour changed: " << improve_count;
-         return log1.str();}
-
-     std::string get_log() const {
-         return log.str();}
-
-     void greedyInitial(size_t idx_start = 0);
-     void annealing(
-             double initial_temperature,
-             double final_temperature,
-             double cooling_factor,
-             int64_t tries_per_temperature,
-             int64_t max_changes_per_temperature,
-             int64_t max_consecutive_non_changes,
-             bool randomize,
-             double time_limit);
-
-
- private:
-     Tour current_tour;
-     Tour best_tour;
-     double bestCost;
-     double current_cost;
-     double epsilon;
-     size_t n;
-
-     int updatecalls;
-
-     std::ostringstream log;
-     size_t swap_count;
-     size_t slide_count;
-     size_t reverse_count;
-     size_t improve_count;
-
- private:
-     void invariant() const;
-
-     size_t find_closest_city(
-             size_t current_city,
-             const std::set<size_t> inserted) const;
-
-     double getDeltaSlide(
-             size_t posP,
-             size_t posF,
-             size_t posL) const;
-
-     void swapClimb();
-
-     double getDeltaSwap(
-             size_t posA,
-             size_t posC) const;
-
-     double getDeltaReverse(
-             size_t posA,
-             size_t posC) const;
-
-     void update_if_best();
-};
-
-}  // namespace tsp
-}  // namespace pgrouting
-
-#include "pgr_tsp.cpp"
-
-#endif   // SRC_TSP_SRC_PGR_TSP_HPP_
diff --git a/src/tsp/src/tour.cpp b/src/tsp/src/tour.cpp
index b815203..a94f5fd 100644
--- a/src/tsp/src/tour.cpp
+++ b/src/tsp/src/tour.cpp
@@ -23,11 +23,11 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
  ********************************************************************PGR-GNU*/
 
-#include "./tour.h"
+#include "tsp/tour.h"
 
 #include <algorithm>
 
-#include "../../common/src/pgr_assert.h"
+#include "cpp_common/pgr_assert.h"
 
 
 namespace pgrouting {
diff --git a/src/tsp/src/tour.h b/src/tsp/src/tour.h
deleted file mode 100644
index 9b0e8a6..0000000
--- a/src/tsp/src/tour.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-FILE: tour.h
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- ********************************************************************PGR-GNU*/
-
-#ifndef SRC_TSP_SRC_TOUR_H_
-#define SRC_TSP_SRC_TOUR_H_
-#pragma once
-
-#include <stdlib.h>
-#include <algorithm>
-#include <numeric>
-#include <vector>
-
-#include "./Dmatrix.h"
-
-
-namespace pgrouting {
-namespace tsp {
-
-
-class Tour {
- public:
-     Tour(const Tour &) = default;
-
-     explicit Tour(const std::vector<size_t> &cities_order) :
-         cities(cities_order) {
-     }
-
-     explicit Tour(size_t n) {
-         cities.resize(n);
-         std::iota(std::begin(cities), std::end(cities), 0);
-     }
-
-     inline size_t size() const {return cities.size();}
-
-     friend std::ostream& operator<<(
-             std::ostream &log,
-             const Tour &tour);
-
-
-     friend double Dmatrix::tourCost(const Tour &tour) const;
-
-
-     /* @brief slides range [first + 1, last + 1) into place + 1
-      *
-      * 0 1 2 3 4 5 6 7 8 9
-      *     p   f     l
-      * slides [4,5,6] to position p
-      *
-      * 0 1 4 5 6 2 3 7 8 9
-      *
-      *
-      * 0 1 2 3 4 5 6 7 8 9
-      *     f     l     p
-      * slides [2,3,4] to position p
-      *
-      * 0 1 6 7 2 3 4 5 8 9
-      *
-      * uses std::reverse
-      *
-      * http://en.cppreference.com/w/cpp/algorithm/rotate
-      *
-      * first    -   the beginning of the original range
-      * last     -   the end of the original range
-      * place    -   location where to slide
-      *
-      *
-      *
-      * @params[IN] place index of place
-      * @params[IN] first - index of first
-      * @params[IN] last - index of last
-      *
-      * precondition:
-      * pgassert(first < cities.size();
-      * pgassert(last  < cities.size();
-      * pgassert(place < cities.size();
-      *
-      */
-
-     void slide(
-             size_t place,
-             size_t first,
-             size_t last);
-
-
-     /* @brief std::reverse on the cities
-      *
-      * http://en.cppreference.com/w/cpp/algorithm/reverse
-      *
-      * first    -   the beginning of the original range
-      * last     -   the end of the original range
-      *
-      * @params[IN] c1 - index of first
-      * @params[IN] c2 - index of lasst
-      *
-      * precondition:
-      * pgassert(c1 < c2);
-      *
-      */
-
-     void reverse(
-             size_t c1,
-             size_t c2);
-
-
-     /* @brief std::rotate on the cities
-      *
-      * http://en.cppreference.com/w/cpp/algorithm/rotate
-      *
-      * first    -   the beginning of the original range
-      * n_first  -   the element that should appear at the beginning of the rotated range
-      * last     -   the end of the original range
-      *
-      * @params[IN] c1 - index of first
-      * @params[IN] c2 - index of n_first
-      * @params[IN] c3 - index of last
-      *
-      * precondition:
-      * pgassert(c2 && c2 < c3 && c3 < n);
-      *
-      */
-     void rotate(
-             size_t c1,
-             size_t c2,
-             size_t c3);
-
-
-     void swap(
-             size_t c1,
-             size_t c2);
-
- public:
-     std::vector<size_t> cities;
-};
-
-}  // namespace tsp
-}  // namespace pgrouting
-
-#endif  // SRC_TSP_SRC_TOUR_H_
diff --git a/src/tsp/test/doc-pgr_TSP-windows.result b/src/tsp/test/doc-pgr_TSP-windows.result
index 32b34d4..b64f782 100644
--- a/src/tsp/test/doc-pgr_TSP-windows.result
+++ b/src/tsp/test/doc-pgr_TSP-windows.result
@@ -1,6 +1,40 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 -- q1
+WITH
+query AS (
+    SELECT * FROM pgr_TSP(
+        $$
+        SELECT * FROM pgr_dijkstraCostMatrix(
+            'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+            (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 14),
+            directed := false
+        )
+        $$
+    )
+)
+SELECT agg_cost < 20 AS under_20 FROM query WHERE seq = 14;
+ under_20 
+----------
 t
+(1 row)
+
 -- q2
+SELECT * FROM pgr_TSP(
+    $$
+    SELECT * FROM pgr_dijkstraCostMatrix(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+        (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 14),
+        directed := false
+    )
+    $$,
+    start_id := 7,
+    randomize := false
+);
+ seq | node | cost | agg_cost 
+-----+------+------+----------
 1|7|1|0
 2|8|1|1
 3|5|1|2
@@ -15,11 +49,29 @@ t
 12|13|3|12
 13|6|3|15
 14|7|0|18
+(14 rows)
+
 -- q3
+SELECT * FROM pgr_TSP(
+    $$
+    SELECT * FROM pgr_withPointsCostMatrix(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+        'SELECT pid, edge_id, fraction from pointsOfInterest',
+        array[-1, 3, 5, 6, -6], directed := false);
+    $$,
+    start_id := 5,
+    randomize := false
+);
+ seq | node | cost | agg_cost 
+-----+------+------+----------
 1|5|0.3|0
 2|-6|1.3|0.3
 3|-1|1.6|1.6
 4|3|1|3.2
 5|6|1|4.2
 6|5|0|5.2
+(6 rows)
+
 -- q4
+ROLLBACK;
+ROLLBACK
diff --git a/src/tsp/test/doc-pgr_TSP.result b/src/tsp/test/doc-pgr_TSP.result
index c06eed1..374dd6b 100644
--- a/src/tsp/test/doc-pgr_TSP.result
+++ b/src/tsp/test/doc-pgr_TSP.result
@@ -1,25 +1,77 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 -- q1
-t
+WITH
+query AS (
+    SELECT * FROM pgr_TSP(
+        $$
+        SELECT * FROM pgr_dijkstraCostMatrix(
+            'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+            (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 14),
+            directed := false
+        )
+        $$
+    )
+)
+SELECT agg_cost < 20 AS under_20 FROM query WHERE seq = 14;
+ under_20 
+----------
+ t
+(1 row)
+
 -- q2
-1|7|1|0
-2|8|1|1
-3|5|1|2
-4|2|1|3
-5|1|2|4
-6|3|1|6
-7|4|1|7
-8|9|1|8
-9|12|1|9
-10|11|1|10
-11|10|1|11
-12|13|3|12
-13|6|3|15
-14|7|0|18
+SELECT * FROM pgr_TSP(
+    $$
+    SELECT * FROM pgr_dijkstraCostMatrix(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+        (SELECT array_agg(id) FROM edge_table_vertices_pgr WHERE id < 14),
+        directed := false
+    )
+    $$,
+    start_id := 7,
+    randomize := false
+);
+ seq | node | cost | agg_cost 
+-----+------+------+----------
+   1 |    7 |    1 |        0
+   2 |    8 |    1 |        1
+   3 |    5 |    1 |        2
+   4 |    2 |    1 |        3
+   5 |    1 |    2 |        4
+   6 |    3 |    1 |        6
+   7 |    4 |    1 |        7
+   8 |    9 |    1 |        8
+   9 |   12 |    1 |        9
+  10 |   11 |    1 |       10
+  11 |   10 |    1 |       11
+  12 |   13 |    3 |       12
+  13 |    6 |    3 |       15
+  14 |    7 |    0 |       18
+(14 rows)
+
 -- q3
-1|5|1|0
-2|6|1|1
-3|3|1.6|2
-4|-1|1.3|3.6
-5|-6|0.3|4.9
-6|5|0|5.2
+SELECT * FROM pgr_TSP(
+    $$
+    SELECT * FROM pgr_withPointsCostMatrix(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+        'SELECT pid, edge_id, fraction from pointsOfInterest',
+        array[-1, 3, 5, 6, -6], directed := false);
+    $$,
+    start_id := 5,
+    randomize := false
+);
+ seq | node | cost | agg_cost 
+-----+------+------+----------
+   1 |    5 |    1 |        0
+   2 |    6 |    1 |        1
+   3 |    3 |  1.6 |        2
+   4 |   -1 |  1.3 |      3.6
+   5 |   -6 |  0.3 |      4.9
+   6 |    5 |    0 |      5.2
+(6 rows)
+
 -- q4
+ROLLBACK;
+ROLLBACK
diff --git a/src/tsp/test/doc-pgr_eucledianTSP.result b/src/tsp/test/doc-pgr_eucledianTSP.result
index e34408a..8067930 100644
--- a/src/tsp/test/doc-pgr_eucledianTSP.result
+++ b/src/tsp/test/doc-pgr_eucledianTSP.result
@@ -1,50 +1,94 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 -- q1
-t
+WITH
+query AS (
+    SELECT * FROM pgr_eucledianTSP(
+        $$
+        SELECT id, st_X(the_geom) AS x, st_Y(the_geom)AS y  FROM edge_table_vertices_pgr
+        $$
+    )
+)
+SELECT agg_cost < 20 AS under_20 FROM query WHERE seq = 18;
+ under_20 
+----------
+ t
+(1 row)
+
 -- q2
-1|1|1.4142135623731|0
-2|3|1|1.4142135623731
-3|4|1|2.41421356237309
-4|9|0.58309518948453|3.41421356237309
-5|16|0.58309518948453|3.99730875185762
-6|6|1|4.58040394134215
-7|5|1|5.58040394134215
-8|8|1|6.58040394134215
-9|7|1.58113883008419|7.58040394134215
-10|14|1.499999999999|9.16154277142634
-11|15|0.5|10.6615427714253
-12|13|1.5|11.1615427714253
-13|17|1.11803398874989|12.6615427714253
-14|12|1|13.7795767601752
-15|11|1|14.7795767601752
-16|10|2|15.7795767601752
-17|2|1|17.7795767601752
-18|1|0|18.7795767601752
+SELECT* from pgr_eucledianTSP(
+    $$
+    SELECT id, st_X(the_geom) AS x, st_Y(the_geom) AS y FROM edge_table_vertices_pgr
+    $$,
+    tries_per_temperature := 3,
+    cooling_factor := 0.5,
+    randomize := false
+);
+ seq | node |       cost       |     agg_cost     
+-----+------+------------------+------------------
+   1 |    1 |  1.4142135623731 |                0
+   2 |    3 |                1 |  1.4142135623731
+   3 |    4 |                1 | 2.41421356237309
+   4 |    9 | 0.58309518948453 | 3.41421356237309
+   5 |   16 | 0.58309518948453 | 3.99730875185762
+   6 |    6 |                1 | 4.58040394134215
+   7 |    5 |                1 | 5.58040394134215
+   8 |    8 |                1 | 6.58040394134215
+   9 |    7 | 1.58113883008419 | 7.58040394134215
+  10 |   14 |   1.499999999999 | 9.16154277142634
+  11 |   15 |              0.5 | 10.6615427714253
+  12 |   13 |              1.5 | 11.1615427714253
+  13 |   17 | 1.11803398874989 | 12.6615427714253
+  14 |   12 |                1 | 13.7795767601752
+  15 |   11 |                1 | 14.7795767601752
+  16 |   10 |                2 | 15.7795767601752
+  17 |    2 |                1 | 17.7795767601752
+  18 |    1 |                0 | 18.7795767601752
+(18 rows)
+
 -- q3
-DEBUG:  pgr_eucledianTSP Processing Information 
+SET client_min_messages TO DEBUG1;
+SET
+SELECT* from pgr_eucledianTSP(
+    $$
+    SELECT id, st_X(the_geom) AS x, st_Y(the_geom) AS y FROM edge_table_vertices_pgr
+    $$,
+    tries_per_temperature := 0,
+    randomize := false
+);
+DEBUG:  pgr_eucledianTSP Processing Information
 Initializing tsp class ---> tsp.greedyInitial ---> tsp.annealing ---> OK
 
-Cycle(100)    total changes =0        0 were because  delta energy < 0
+Cycle(100) 	total changes =0	0 were because  delta energy < 0
 Total swaps: 3
 Total slides: 0
 Total reverses: 0
 Times best tour changed: 4
 Best cost reached = 18.7796
-1|1|1.4142135623731|0
-2|3|1|1.4142135623731
-3|4|1|2.41421356237309
-4|9|0.58309518948453|3.41421356237309
-5|16|0.58309518948453|3.99730875185762
-6|6|1|4.58040394134215
-7|5|1|5.58040394134215
-8|8|1|6.58040394134215
-9|7|1.58113883008419|7.58040394134215
-10|14|1.499999999999|9.16154277142634
-11|15|0.5|10.6615427714253
-12|13|1.5|11.1615427714253
-13|17|1.11803398874989|12.6615427714253
-14|12|1|13.7795767601752
-15|11|1|14.7795767601752
-16|10|2|15.7795767601752
-17|2|1|17.7795767601752
-18|1|0|18.7795767601752
+ seq | node |       cost       |     agg_cost     
+-----+------+------------------+------------------
+   1 |    1 |  1.4142135623731 |                0
+   2 |    3 |                1 |  1.4142135623731
+   3 |    4 |                1 | 2.41421356237309
+   4 |    9 | 0.58309518948453 | 3.41421356237309
+   5 |   16 | 0.58309518948453 | 3.99730875185762
+   6 |    6 |                1 | 4.58040394134215
+   7 |    5 |                1 | 5.58040394134215
+   8 |    8 |                1 | 6.58040394134215
+   9 |    7 | 1.58113883008419 | 7.58040394134215
+  10 |   14 |   1.499999999999 | 9.16154277142634
+  11 |   15 |              0.5 | 10.6615427714253
+  12 |   13 |              1.5 | 11.1615427714253
+  13 |   17 | 1.11803398874989 | 12.6615427714253
+  14 |   12 |                1 | 13.7795767601752
+  15 |   11 |                1 | 14.7795767601752
+  16 |   10 |                2 | 15.7795767601752
+  17 |    2 |                1 | 17.7795767601752
+  18 |    1 |                0 | 18.7795767601752
+(18 rows)
+
 -- q4
+ROLLBACK;
+ROLLBACK
diff --git a/src/tsp/test/doc-pgr_eucledianTSP.test.sql b/src/tsp/test/doc-pgr_eucledianTSP.test.sql
index 71a7092..8b50ba8 100644
--- a/src/tsp/test/doc-pgr_eucledianTSP.test.sql
+++ b/src/tsp/test/doc-pgr_eucledianTSP.test.sql
@@ -20,6 +20,9 @@ SELECT* from pgr_eucledianTSP(
 );
 \echo -- q3
 SET client_min_messages TO DEBUG1;
+
+-- TODO see what this outputs
+
 SELECT* from pgr_eucledianTSP(
     $$
     SELECT id, st_X(the_geom) AS x, st_Y(the_geom) AS y FROM edge_table_vertices_pgr
diff --git a/src/tsp/test/doc-tsp-mac.result b/src/tsp/test/doc-tsp-mac.result
index 7d60bc0..1351b43 100644
--- a/src/tsp/test/doc-tsp-mac.result
+++ b/src/tsp/test/doc-tsp-mac.result
@@ -1,22 +1,4 @@
 -- q1
-NOTICE:  Deprecated Signature pgr_tsp(sql, integer, integer)
-0|1|1|1.4142135623731
-1|3|3|1
-2|4|4|1
-3|9|9|1
-4|6|6|0.58309518948453
-5|16|16|0.860232526704263
-6|12|12|1.11803398874989
-7|17|17|1.11803398874989
-8|11|11|1
-9|10|10|0.5
-10|15|15|0.5
-11|13|13|1.58113883008419
-12|14|14|1.58113883008419
-13|7|7|1
-14|8|8|1
-15|5|5|1
-16|2|2|1
 -- q2
 1|1|1.4142135623731|0
 2|3|1|1.4142135623731
diff --git a/src/tsp/test/doc-tsp-mac.test.sql b/src/tsp/test/doc-tsp-mac.test.sql
index 04a773e..7f46de6 100644
--- a/src/tsp/test/doc-tsp-mac.test.sql
+++ b/src/tsp/test/doc-tsp-mac.test.sql
@@ -1,4 +1,3 @@
-BEGIN;
 
 \echo -- q1
 SELECT * FROM pgr_TSP(
@@ -36,4 +35,3 @@ SELECT * FROM pgr_TSP(
     randomize := false
 );
 \echo -- q5
-ROLLBACK;
diff --git a/src/tsp/test/doc-tsp-windows.result b/src/tsp/test/doc-tsp-windows.result
index 870a0d7..cf70e4a 100644
--- a/src/tsp/test/doc-tsp-windows.result
+++ b/src/tsp/test/doc-tsp-windows.result
@@ -1,22 +1,4 @@
 -- q1
-NOTICE:  Deprecated Signature pgr_tsp(sql, integer, integer)
-0|1|1|1
-1|2|2|1
-2|5|5|1
-3|8|8|1
-4|7|7|1.58113883008419
-5|14|14|1.58113883008419
-6|13|13|0.5
-7|15|15|0.5
-8|10|10|1
-9|11|11|1.11803398874989
-10|17|17|1.11803398874989
-11|12|12|0.860232526704263
-12|16|16|0.58309518948453
-13|6|6|1
-14|9|9|1
-15|4|4|1
-16|3|3|1.4142135623731
 -- q2
 1|1|1|0
 2|2|1|1
diff --git a/src/tsp/test/doc-tsp-windows.test.sql b/src/tsp/test/doc-tsp-windows.test.sql
index 90dcf6b..8df305b 100644
--- a/src/tsp/test/doc-tsp-windows.test.sql
+++ b/src/tsp/test/doc-tsp-windows.test.sql
@@ -1,4 +1,3 @@
-BEGIN;
 
 \echo -- q1
 SELECT * FROM pgr_TSP(
@@ -17,13 +16,6 @@ SELECT * FROM pgr_eucledianTSP(
 );
 
 \echo -- q3
-SELECT * FROM pgr_TSP(
-    (SELECT * FROM pgr_vidsToDMatrix(
-            'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
-            (SELECT array_agg(id) from edge_table_vertices_pgr WHERE id < 14)::INTEGER[], false , true, true)
-    ),
-    1
-);
 
 \echo -- q4
 SELECT * FROM pgr_TSP(
@@ -36,5 +28,3 @@ SELECT * FROM pgr_TSP(
     randomize := false
 );
 \echo -- q5
-
-ROLLBACK;
diff --git a/src/tsp/test/doc-tsp.result b/src/tsp/test/doc-tsp.result
deleted file mode 100644
index 5d9797d..0000000
--- a/src/tsp/test/doc-tsp.result
+++ /dev/null
@@ -1,52 +0,0 @@
--- q1
-NOTICE:  Deprecated Signature pgr_tsp(sql, integer, integer)
-0|1|1|1
-1|2|2|1
-2|5|5|1
-3|8|8|1
-4|7|7|1.58113883008419
-5|14|14|1.58113883008419
-6|13|13|0.5
-7|15|15|0.5
-8|10|10|1
-9|11|11|1.11803398874989
-10|17|17|1.11803398874989
-11|12|12|0.860232526704263
-12|16|16|0.58309518948453
-13|6|6|1
-14|9|9|1
-15|4|4|1
-16|3|3|1.4142135623731
--- q2
-1|1|1.4142135623731|0
-2|3|1|1.4142135623731
-3|4|1|2.41421356237309
-4|9|1|3.41421356237309
-5|6|0.58309518948453|4.41421356237309
-6|16|0.860232526704263|4.99730875185763
-7|12|1.11803398874989|5.85754127856189
-8|17|1.11803398874989|6.97557526731178
-9|11|1|8.09360925606168
-10|10|0.5|9.09360925606168
-11|15|0.5|9.59360925606168
-12|13|1.58113883008419|10.0936092560617
-13|14|1.58113883008419|11.6747480861459
-14|7|1|13.2558869162301
-15|8|1|14.2558869162301
-16|5|1|15.2558869162301
-17|2|1|16.2558869162301
-18|1|0|17.2558869162301
--- q3
-NOTICE:  Deprecated function pgr_vidsToDMatrix
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-0|1
-1|2
-2|3
-3|0
--- q4
-1|8|3|0
-2|11|1|3
-3|12|3|4
-4|13|3|7
-5|8|0|10
--- q5
diff --git a/src/tsp/test/doc-tsp.test.sql b/src/tsp/test/doc-tsp.test.sql
deleted file mode 100644
index 4499692..0000000
--- a/src/tsp/test/doc-tsp.test.sql
+++ /dev/null
@@ -1,36 +0,0 @@
-\echo -- q1
-SELECT * FROM pgr_TSP(
-    $$
-    SELECT id::INTEGER, st_X(the_geom) AS x, st_Y(the_geom)AS y  FROM edge_table_vertices_pgr
-    $$
-    , 1);
-
-\echo -- q2
-SELECT * FROM pgr_eucledianTSP(
-    $$
-    SELECT id, st_X(the_geom) AS x, st_Y(the_geom)AS y  FROM edge_table_vertices_pgr
-    $$,
-    1,
-    randomize := false
-);
-
-\echo -- q3
-SELECT * FROM pgr_TSP(
-    (SELECT * FROM pgr_vidsToDMatrix(
-            'SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost FROM edge_table',
-            ARRAY[8,11,12,13]::INTEGER[], false , true, true)
-    ),
-    1
-);
-
-\echo -- q4
-SELECT * FROM pgr_TSP(
-    $$
-    SELECT * FROM pgr_dijkstraCostMatrix(
-        'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-        ARRAY[8,11,12,13]::INTEGER[], false)
-    $$,
-    8,
-    randomize := false
-);
-\echo -- q5
diff --git a/src/tsp/test/test.conf b/src/tsp/test/test.conf
index fe285f0..b2df1bb 100644
--- a/src/tsp/test/test.conf
+++ b/src/tsp/test/test.conf
@@ -5,21 +5,17 @@
         'comment' => 'newTSP',
         'data' => [],
         'tests' => [qw(
-            tsp-v2-0
+            doc-pgr_eucledianTSP
             )],
         'linux' => [qw(
             doc-pgr_TSP
-            doc-tsp
-            doc-pgr_eucledianTSP
             )],
         'macos' => [qw(
-            doc-pgr_TSP-mac
             )],
         'windows' => [qw(
             doc-pgr_TSP-windows
             )],
         'documentation' => [qw(
-            doc-tsp
             doc-pgr_TSP
             doc-pgr_eucledianTSP
             )]
diff --git a/src/tsp/test/tsp-v2-0.result b/src/tsp/test/tsp-v2-0.result
deleted file mode 100644
index 4e975f1..0000000
--- a/src/tsp/test/tsp-v2-0.result
+++ /dev/null
@@ -1,209 +0,0 @@
-NOTICE:  Deprecated Signature pgr_tsp(sql, integer, integer)
-15.4787
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-OK
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-0|1
-1|2
-2|3
-3|0
-NOTICE:  Deprecated Signature pgr_tsp(sql, integer, integer)
-11.3137
-NOTICE:  Deprecated Signature pgr_tsp(sql, integer, integer)
-32.4721
-NOTICE:  Deprecated Signature pgr_tsp(sql, integer, integer)
-23.4706
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-0|0
-1|3
-2|1
-3|4
-4|2
-----------------------------------
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-0|0
-1|2
-2|4
-3|3
-4|1
-----------------------------------
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-0|0
-1|3
-2|1
-3|4
-4|2
-----------------------------------
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-0|0
-1|2
-2|4
-3|1
-4|3
-----------------------------------
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-0|1
-1|0
-2|2
-3|4
-4|3
-----------------------------------
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-0|1
-1|0
-2|2
-3|4
-4|3
-----------------------------------
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-0|1
-1|4
-2|3
-3|0
-4|2
-----------------------------------
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-0|1
-1|4
-2|2
-3|0
-4|3
-----------------------------------
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-0|2
-1|4
-2|3
-3|1
-4|0
-----------------------------------
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-0|2
-1|4
-2|3
-3|1
-4|0
-----------------------------------
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-0|2
-1|4
-2|3
-3|1
-4|0
-----------------------------------
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-0|2
-1|4
-2|1
-3|0
-4|3
-----------------------------------
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-0|3
-1|1
-2|0
-3|2
-4|4
-----------------------------------
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-0|3
-1|1
-2|4
-3|2
-4|0
-----------------------------------
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-0|3
-1|4
-2|2
-3|0
-4|1
-----------------------------------
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-0|3
-1|1
-2|0
-3|2
-4|4
-----------------------------------
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-0|4
-1|3
-2|1
-3|0
-4|2
-----------------------------------
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-0|4
-1|2
-2|3
-3|1
-4|0
-----------------------------------
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-0|4
-1|2
-2|0
-3|3
-4|1
-----------------------------------
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-0|4
-1|3
-2|1
-3|0
-4|2
-----------------------------------
-NOTICE:  Deprecated Signature pgr_tsp(sql, integer, integer)
-0|6|6|2.24
-1|11|11|4.12
-2|3|3|2.24
-3|1|1|3.00
-4|2|2|2.00
-5|4|4|1.00
-6|7|7|1.00
-7|8|8|1.41
-8|9|9|1.80
-9|10|10|2.50
-10|5|5|3.61
-----------------------------------1(in ints)
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-OK
-----------------------------------1(in tenths)
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-FAIL
-----------------------------------1-0
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-0|1
-1|2
-2|3
-3|0
-----------------------------------1-2
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-0|1
-1|2
-2|3
-3|0
-----------------------------------1-3
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-0|1
-1|0
-2|3
-3|2
-----------------------------------0-1
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-0|0
-1|1
-2|2
-3|3
-----------------------------------2-1
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-0|2
-1|3
-2|1
-3|0
-----------------------------------3-1
-NOTICE:  Deprecated Signature pgr_tsp(float8[][], integer, integer)
-0|3
-1|2
-2|1
-3|0
diff --git a/src/tsp/test/tsp-v2-0.test.sql b/src/tsp/test/tsp-v2-0.test.sql
deleted file mode 100644
index 49a7ce9..0000000
--- a/src/tsp/test/tsp-v2-0.test.sql
+++ /dev/null
@@ -1,138 +0,0 @@
-
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- ********************************************************************PGR-GNU*/
-
---------------------------------------------------------------------------------
---              PGR_pgr_tsp
---------------------------------------------------------------------------------
-
-CREATE TEMP TABLE vertex_table (
-    id serial,
-    x double precision,
-    y double precision
-);
-
-INSERT INTO vertex_table VALUES
-(1,2,0), (2,2,1), (3,3,1), (4,4,1), (5,0,2), (6,1,2), (7,2,2),
-(8,3,2), (9,4,2), (10,2,3), (11,3,3), (12,4,3), (13,2,4);
-
-CREATE table tsp_00 (
-    source_id serial not null primary key,
-    x float,
-    y float);
-
-insert into tsp_00 (x,y) values
-(1,7),
-(1,4),
-(3,8),
-(1,2),
-(3,5),
-(5,8),
-(1,1),
-(2,1),
-(3,2),
-(4.5,3),
-(7,7),
-(3,1),
-(3,3),
-(4.5,5),
-(3,4),
-(4.5,4),
-(7,4),
-(5,1),
-(4.5,2),
-(7,2),
-(7,1),
-(4.5,1);
-
-
-
-SELECT round(sum(cost)::numeric, 4) as cost
-FROM pgr_tsp('SELECT id, x, y FROM vertex_table ORDER BY id', 6, 5);
-SELECT case when r=array[1,2,3,0] then 'OK' when r=array[1,0,3,2] then 'OK' else 'FAIL' end from (SELECT array_agg(id) as r from (SELECT seq, id FROM pgr_tsp('{{0,1,2,3},{1,0,4,5},{2,4,0,6},{3,5,6,0}}'::float8[],1)) as a) as b;
-
-SET client_min_messages TO NOTICE;
-
-SELECT seq, id FROM pgr_tsp('{{0,1,2,3},{1,0,4,5},{2,4,0,6},{3,5,6,0}}'::float8[],1,2);
-SELECT round(sum(cost)::numeric, 4) as cost
-FROM pgr_tsp('SELECT id::integer, st_x(the_geom) as x,st_x(the_geom) as y FROM edge_table_vertices_pgr  ORDER BY id', 6, 5);
-SELECT round(sum(cost)::numeric, 4) as cost from pgr_tsp('SELECT source_id as id, x, y from tsp_00 where source_id in (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22)', 1);
-SELECT round(sum(cost)::numeric, 4) as cost from pgr_tsp('SELECT source_id as id, x, y from tsp_00 where source_id<12 order by source_id', 6);
-SELECT * from pgr_tsp('{{0,1,2,3,4},{1,0,3,2,1},{2,3,0,4,2},{3,2,4,0,3},{4,1,2,3,0}}'::float8[],0,1);
-\echo '----------------------------------'
-SELECT * from pgr_tsp('{{0,1,2,3,4},{1,0,3,2,1},{2,3,0,4,2},{3,2,4,0,3},{4,1,2,3,0}}'::float8[],0,2);
-\echo '----------------------------------'
-SELECT * from pgr_tsp('{{0,1,2,3,4},{1,0,3,2,1},{2,3,0,4,2},{3,2,4,0,3},{4,1,2,3,0}}'::float8[],0,3);
-\echo '----------------------------------'
-SELECT * from pgr_tsp('{{0,1,2,3,4},{1,0,3,2,1},{2,3,0,4,2},{3,2,4,0,3},{4,1,2,3,0}}'::float8[],0,4);
-\echo '----------------------------------'
-SELECT * from pgr_tsp('{{0,1,2,3,4},{1,0,3,2,1},{2,3,0,4,2},{3,2,4,0,3},{4,1,2,3,0}}'::float8[],1,0);
-\echo '----------------------------------'
-SELECT * from pgr_tsp('{{0,1,2,3,4},{1,0,3,2,1},{2,3,0,4,2},{3,2,4,0,3},{4,1,2,3,0}}'::float8[],1,2);
-\echo '----------------------------------'
-SELECT * from pgr_tsp('{{0,1,2,3,4},{1,0,3,2,1},{2,3,0,4,2},{3,2,4,0,3},{4,1,2,3,0}}'::float8[],1,3);
-\echo '----------------------------------'
-SELECT * from pgr_tsp('{{0,1,2,3,4},{1,0,3,2,1},{2,3,0,4,2},{3,2,4,0,3},{4,1,2,3,0}}'::float8[],1,4);
-\echo '----------------------------------'
-SELECT * from pgr_tsp('{{0,1,2,3,4},{1,0,3,2,1},{2,3,0,4,2},{3,2,4,0,3},{4,1,2,3,0}}'::float8[],2,0);
-\echo '----------------------------------'
-SELECT * from pgr_tsp('{{0,1,2,3,4},{1,0,3,2,1},{2,3,0,4,2},{3,2,4,0,3},{4,1,2,3,0}}'::float8[],2,1);
-\echo '----------------------------------'
-SELECT * from pgr_tsp('{{0,1,2,3,4},{1,0,3,2,1},{2,3,0,4,2},{3,2,4,0,3},{4,1,2,3,0}}'::float8[],2,3);
-\echo '----------------------------------'
-SELECT * from pgr_tsp('{{0,1,2,3,4},{1,0,3,2,1},{2,3,0,4,2},{3,2,4,0,3},{4,1,2,3,0}}'::float8[],2,4);
-\echo '----------------------------------'
-SELECT * from pgr_tsp('{{0,1,2,3,4},{1,0,3,2,1},{2,3,0,4,2},{3,2,4,0,3},{4,1,2,3,0}}'::float8[],3,0);
-\echo '----------------------------------'
-SELECT * from pgr_tsp('{{0,1,2,3,4},{1,0,3,2,1},{2,3,0,4,2},{3,2,4,0,3},{4,1,2,3,0}}'::float8[],3,1);
-\echo '----------------------------------'
-SELECT * from pgr_tsp('{{0,1,2,3,4},{1,0,3,2,1},{2,3,0,4,2},{3,2,4,0,3},{4,1,2,3,0}}'::float8[],3,2);
-\echo '----------------------------------'
-SELECT * from pgr_tsp('{{0,1,2,3,4},{1,0,3,2,1},{2,3,0,4,2},{3,2,4,0,3},{4,1,2,3,0}}'::float8[],3,4);
-\echo '----------------------------------'
-SELECT * from pgr_tsp('{{0,1,2,3,4},{1,0,3,2,1},{2,3,0,4,2},{3,2,4,0,3},{4,1,2,3,0}}'::float8[],4,0);
-\echo '----------------------------------'
-SELECT * from pgr_tsp('{{0,1,2,3,4},{1,0,3,2,1},{2,3,0,4,2},{3,2,4,0,3},{4,1,2,3,0}}'::float8[],4,1);
-\echo '----------------------------------'
-SELECT * from pgr_tsp('{{0,1,2,3,4},{1,0,3,2,1},{2,3,0,4,2},{3,2,4,0,3},{4,1,2,3,0}}'::float8[],4,2);
-\echo '----------------------------------'
-SELECT * from pgr_tsp('{{0,1,2,3,4},{1,0,3,2,1},{2,3,0,4,2},{3,2,4,0,3},{4,1,2,3,0}}'::float8[],4,3);
-\echo '----------------------------------'
-SELECT seq, id1, id2, round(cost::numeric, 2) as cost from pgr_tsp('SELECT source_id as id, x, y from tsp_00 where source_id<12 order by source_id', 6, 5);
-\echo '----------------------------------1(in ints)'
-SELECT case when r=array[1,2,3,0] then 'OK' when r=array[1,0,3,2] then 'OK' else 'FAIL' end from (SELECT array_agg(id) as r from (SELECT seq, id FROM pgr_tsp('{{0,1,2,3},{1,0,4,5},{2,4,0,6},{3,5,6,0}}'::float8[],1)) as a) as b;
-\echo '----------------------------------1(in tenths)'
-SELECT case when r=array[1,2,3,0] then 'OK' when r=array[1,0,3,2] then 'OK' else 'FAIL' end from (SELECT array_agg(id) as r from (SELECT seq, id FROM pgr_tsp('{{0,.1,.2,.3},{.1,0,.4,.5},{.2,.4,0,.6},{.3,.5,.6,0}}'::float8[],1)) as a) as b;
-\echo '----------------------------------1-0'
-SELECT seq, id FROM pgr_tsp('{{0,1,3,3},{1,0,2,2},{3,2,0,2},{3,2,2,0}}'::float8[],1,0);
-\echo '----------------------------------1-2'
-SELECT seq, id FROM pgr_tsp('{{0,1,2,3},{1,0,4,5},{2,4,0,6},{3,5,6,0}}'::float8[],1,2);
-\echo '----------------------------------1-3'
-SELECT seq, id FROM pgr_tsp('{{0,1,2,3},{1,0,4,5},{2,4,0,6},{3,5,6,0}}'::float8[],1,3);
-\echo '----------------------------------0-1'
-SELECT seq, id FROM pgr_tsp('{{0,1,2,3},{1,0,4,5},{2,4,0,6},{3,5,6,0}}'::float8[],0,1);
-\echo '----------------------------------2-1'
-SELECT seq, id FROM pgr_tsp('{{0,1,2,3},{1,0,4,5},{2,4,0,6},{3,5,6,0}}'::float8[],2,1);
-\echo '----------------------------------3-1'
-SELECT seq, id FROM pgr_tsp('{{0,1,2,3},{1,0,4,5},{2,4,0,6},{3,5,6,0}}'::float8[],3,1);
-
diff --git a/src/vrp_basic/doc/CMakeLists.txt b/src/vrp_basic/doc/CMakeLists.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/src/vrp_basic/doc/pgr_vrpOneDepot.rst b/src/vrp_basic/doc/pgr_vrpOneDepot.rst
deleted file mode 100644
index cd7cfd6..0000000
--- a/src/vrp_basic/doc/pgr_vrpOneDepot.rst
+++ /dev/null
@@ -1,24 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_vrp_basic:
-
-
-pgr_vrpOneDepot - Proposed
-===============================================================================
-
-
-.. include:: proposed.rst
-   :start-after: begin-warn-expr
-   :end-before: end-warn-expr
-
-No documentation available from the original developer
-
-* :ref:`type_cost_result`
-* http://en.wikipedia.org/wiki/Vehicle_routing_problem
diff --git a/src/vrp_basic/sql/CMakeLists.txt b/src/vrp_basic/sql/CMakeLists.txt
deleted file mode 100644
index 556b600..0000000
--- a/src/vrp_basic/sql/CMakeLists.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-# Append in local scope
-LIST(APPEND PACKAGE_SQL_FILES
-    ${CMAKE_CURRENT_SOURCE_DIR}/routing_vrp.sql
-    )
-
-# set in parent scope
-SET(PACKAGE_SQL_FILES "${PACKAGE_SQL_FILES}" PARENT_SCOPE)
-
diff --git a/src/vrp_basic/sql/routing_vrp.sql b/src/vrp_basic/sql/routing_vrp.sql
deleted file mode 100644
index 18ab505..0000000
--- a/src/vrp_basic/sql/routing_vrp.sql
+++ /dev/null
@@ -1,45 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
------------------------------------------------------------------------
--- Core function for vrp with sigle depot computation
--- See README for description
------------------------------------------------------------------------
---
---
-
-create or replace function pgr_vrpOneDepot(
-	order_sql text,
-	vehicle_sql text,
-	cost_sql text,
-	depot_id integer,
-	 
-	OUT oid integer, 
-	OUT opos integer, 
-	OUT vid integer, 
-	OUT tarrival integer, 
-	OUT tdepart integer)
-returns setof record as
-'$libdir/${PGROUTING_LIBRARY_NAME}', 'vrp'
-LANGUAGE c VOLATILE STRICT;
-
-
diff --git a/src/vrp_basic/src/CMakeLists.txt b/src/vrp_basic/src/CMakeLists.txt
deleted file mode 100644
index 1a82681..0000000
--- a/src/vrp_basic/src/CMakeLists.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-add_library(vrp_basic OBJECT
-     VRP.c 
-     VRP_core.cpp 
-     VRP_Solver.cpp)
diff --git a/src/vrp_basic/src/Tester.cpp b/src/vrp_basic/src/Tester.cpp
deleted file mode 100644
index 9dcf18a..0000000
--- a/src/vrp_basic/src/Tester.cpp
+++ /dev/null
@@ -1,250 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2013 Khondoker Md. Razequl Islam
-ziboncsedu at gmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#include <string>
-#include <vector>
-#include "VRP_Solver.h"
-#include "Utils.h"
-
-char buff[1005];
-
-CVRPSolver solver;
-
-// Load orders from the order file. The first order represents the depot.
-// TODO(someone) : file names are hard coded, it should be changed to commandline argument.
-void loadOrders() {
-    FILE *fp = fopen("Orders.txt", "rt");
-    if (fp == NULL) {
-        fprintf(stderr, "Order file not found!\n");
-    }
-    bool bGotDepot = false;
-    // OrderId XCord YCord Demand StartTime EndTime ServiceTime
-    while (fgets(buff, 1000, fp)) {
-        if (strlen(buff) == 0)
-            break;
-        StringTokenizer tokenizer;
-        tokenizer.parse(buff, " \t");
-        StringVector vecToken;
-        tokenizer.getTokens(vecToken);
-
-        if (vecToken.size() != 7)
-            continue;
-
-        if (!isdigit(vecToken[0][0]))
-            continue;
-
-        if (!bGotDepot) {
-            // This order represents Deopot
-            CDepotInfo depot;
-            int id = atoi(vecToken[0].c_str());
-            depot.setDepotId(id);
-
-            Point pt;
-
-            pt.X = atof(vecToken[1].c_str());
-            pt.Y = atof(vecToken[2].c_str());
-
-            depot.setDepotLocation(pt);
-
-            int openTime = atoi(vecToken[4].c_str());
-            depot.setOpenTime(openTime);
-
-            int closeTime = atoi(vecToken[5].c_str());
-            depot.setCloseTime(closeTime);
-
-            solver.addDepot(depot);
-            bGotDepot = true;
-        } else {
-            // This is an order
-            COrderInfo order;
-            int id = atoi(vecToken[0].c_str());
-            order.setOrderId(id);
-
-            Point pt;
-
-            pt.X = atof(vecToken[1].c_str());
-            pt.Y = atof(vecToken[2].c_str());
-
-            order.setOrderLocation(pt);
-
-            int demand = atoi(vecToken[3].c_str());
-            order.setOrderUnit(demand);
-
-            int openTime = atoi(vecToken[4].c_str());
-            order.setOpenTime(openTime);
-
-            int closeTime = atoi(vecToken[5].c_str());
-            order.setCloseTime(closeTime);
-
-            int serviceTime = atoi(vecToken[6].c_str());
-            order.setServiceTime(serviceTime);
-
-            solver.addOrder(order);
-        }
-    }
-    fclose(fp);
-}
-
-// Load vehicles from vehicle file.
-// TODO(someone) : file names are hard coded, it should be changed to commandline argument.
-
-void loadVehicles() {
-    FILE *fp = fopen("Vehicles.txt", "rt");
-
-    if (fp == NULL) {
-        fprintf(stderr, "Vehicle file not found!\n");
-    }
-    // VehicleId Capacity
-    // In terms of cost all the vehicle will have default cost of 1 for the first version
-    while (fgets(buff, 1000, fp)) {
-        if (strlen(buff) == 0)
-            break;
-        StringTokenizer tokenizer;
-        tokenizer.parse(buff, " \t");
-        StringVector vecToken;
-        tokenizer.getTokens(vecToken);
-
-        if (vecToken.size() != 2)
-            continue;
-
-        if (!isdigit(vecToken[0][0]))
-            continue;
-
-        CVehicleInfo vehicle;
-
-        int id = atoi(vecToken[0].c_str());
-        vehicle.setId(id);
-
-        int capcity = atoi(vecToken[1].c_str());
-        vehicle.setCapacity(capcity);
-
-        vehicle.setCostPerKM(1);
-
-        solver.addVehicle(vehicle);
-    }
-    fclose(fp);
-}
-
-// Load the cost matrix
-// TODO(someone) : file names are hard coded, it should be changed to commandline argument.
-void loadDistanceMatrix() {
-    FILE *fp = fopen("Distance.txt", "rt");
-    if (fp == NULL) {
-        fprintf(stderr, "Cost file not found!\n");
-        return;
-    }
-
-    // From To Cost
-    while (fgets(buff, 1000, fp)) {
-        if (strlen(buff) == 0)
-            break;
-        StringTokenizer tokenizer;
-        tokenizer.parse(buff, " \t");
-        StringVector vecToken;
-        tokenizer.getTokens(vecToken);
-
-        if (vecToken.size() != 3)
-            continue;
-
-        if (!isdigit(vecToken[0][0]))
-            continue;
-
-        int fromId = atoi(vecToken[0].c_str());
-        int toId = atoi(vecToken[1].c_str());
-        CostPack cpack;
-        cpack.cost = cpack.distance = atof(vecToken[2].c_str());
-        cpack.traveltime = cpack.cost;
-
-        if (fromId == 1)
-            solver.addDepotToOrderCost(fromId, toId, cpack);
-        else if (toId == 1)
-            solver.addOrderToDepotCost(fromId, toId, cpack);
-        else
-            solver.addOrderToOrderCost(fromId, toId, cpack);
-    }
-    fclose(fp);
-}
-
-// Print the solution to a file.
-// TODO(someone) : Currently prints on a fixed file. Later the file name will be taken as a command line argument
-
-bool print_solution(std::string strError) {
-    FILE *fp = fopen("result.txt", "wt");
-    if (fp == NULL) {
-        strError = "Could not open file";
-        return false;
-    }
-    CSolutionInfo solution;
-    bool bOK = solver.getSolution(solution, strError);
-    if (bOK == false)
-        return false;
-
-    int totalRoute = solution.getTourInfoVector().size();
-    CTourInfo ctour;
-
-    fprintf(fp, "Total Number of Route: %d\n", totalRoute);
-    fprintf(fp, "Total Cost: %.3lf\n", solution.getTotalCost());
-    fprintf(fp, "Total Distance: %.3lf\n", solution.getTotalDistance());
-    fprintf(fp, "Total TravelTime: %.3lf\n", solution.getTotalTravelTime());
-
-    for (int i = 0; i < totalRoute; i++) {
-        ctour = solution.getTour(i);
-        fprintf(fp, "Route No. %d: \n", i + 1);
-        fprintf(fp, "Vehicle Id: %d\n", ctour.getVehicleId());
-        fprintf(fp, "Starting Depot Id: %d\n", ctour.getStartDepot());
-        fprintf(fp, "End Depot Id: %d\n", ctour.getEndDepot());
-
-        std::vector<int> vecOrder = ctour.getOrderVector();
-        int totalOrder = vecOrder.size();
-        fprintf(fp, "Visited Order Ids: ");
-        for (int j = 0; j < totalOrder; j++) {
-            if (j > 0)
-                fprintf(fp, " ");
-            fprintf(fp, "%d", vecOrder[j]);
-            if (j < totalOrder - 1)
-                fprintf(fp, ", ");
-        }
-        fprintf(fp, "\n");
-    }
-
-    fclose(fp);
-    return true;
-}
-
-int main() {
-    loadOrders();
-    loadVehicles();
-    loadDistanceMatrix();
-
-    std::string strError;
-    bool bIsOK = solver.solveVRP(strError);
-
-    if (!bIsOK) {
-        fprintf(stderr, "Error Occurred: %s\n", strError.c_str());
-    } else {
-        print_solution(strError);
-    }
-
-
-    return 0;
-}
diff --git a/src/vrp_basic/src/Utils.h b/src/vrp_basic/src/Utils.h
deleted file mode 100644
index 3a72340..0000000
--- a/src/vrp_basic/src/Utils.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/*PGR
-
-Copyright (c) 2013 Khondoker Md. Razequl Islam
-ziboncsedu at gmail.com
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-*/
-
-#ifndef SRC_VRP_BASIC_SRC_UTILS_H_
-#define SRC_VRP_BASIC_SRC_UTILS_H_
-
-#include <string>
-#include <map>
-#include <vector>
-#include <queue>
-#include <iostream>
-
-
-
-typedef std::vector<int> IntVector;
-typedef std::vector<double> DoubleVector;
-typedef std::vector<std::string> StringVector;
-
-class tokenizer {
-    std::string s, delim;
-    std::string::size_type pos;
-
- public:
-    tokenizer(std::string xs, std::string xdelim) : s(xs), delim(xdelim) {
-        pos = s.find_first_not_of(delim);
-    }
-
-    bool has_more_tokens() {
-        return pos != std::string::npos;
-    }
-
-    std::string next_token() {
-        std::string::size_type end_pos = s.find_first_of(delim, pos);
-        std::string token = s.substr(pos, end_pos-pos);
-        pos = s.find_first_not_of(delim, end_pos);
-        return token;
-    }
-};
-
-class StringOperation {
- public:
-     static std::string TRIMWHITESPACE(std::string strInput) {
-         std::string strOut = strInput;
-         std::string strWht = " \f\n\r\t\v";
-
-         strOut.erase(0, strOut.find_first_not_of(strWht));
-         strOut.erase(strOut.find_last_not_of(strWht) + 1);
-         return strOut;
-     };
-};
-
-class StringTokenizer {
- public:
-     StringTokenizer() {
-         reset();
-     }
-
-     void reset() {
-         vecTokens.clear();
-         strInput = "";
-     }
-
-     bool parse(std::string strInput, std::string chDelim) {
-         tokenizer t(strInput, chDelim);
-         while (t.has_more_tokens()) {
-             vecTokens.push_back(t.next_token());
-         }
-         return true;
-     }
-
-     size_t getTokenCount() {
-         return vecTokens.size();
-     }
-
-     bool getToken(std::string& strToken, int64_t iTokenIndex) {
-         int64_t lTokenCount = vecTokens.size();
-         if (iTokenIndex < 0 ||  iTokenIndex < lTokenCount) {
-             strToken = vecTokens[iTokenIndex];
-             return true;
-         }
-         return false;
-     }
-
-     bool getTokens(StringVector& vecTokensRef) {
-         vecTokensRef = vecTokens;
-         return true;
-     }
-
- private:
-     std::string strInput;
-     StringVector vecTokens;
-};
-
-#endif  // SRC_VRP_BASIC_SRC_UTILS_H_
diff --git a/src/vrp_basic/src/VRP.c b/src/vrp_basic/src/VRP.c
deleted file mode 100644
index 66b9a0e..0000000
--- a/src/vrp_basic/src/VRP.c
+++ /dev/null
@@ -1,862 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2013 Khondoker Md. Razequl Islam
-ziboncsedu at gmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#include "./../../common/src/postgres_connection.h"
-#include "catalog/pg_type.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include <search.h>
-#include <string.h>
-// #include <math.h>
-
-
-#include "./VRP.h"
-
-
-
-
-#include "./../../common/src/pgr_types.h"
-
-#undef qsort
-
-// -------------------------------------------------------------------------
-
-/*
- * Define this to have profiling enabled
- */
-// #define PROFILE
-
-#ifdef PROFILE
-#include <sys/time.h>
-
-struct timeval prof_astar, prof_store, prof_extract, prof_total;
-int64_t proftime[5];
-int64_t profipts1, profipts2, profopts;
-
-#define profstart(x) do { gettimeofday(&x, NULL); } while (0);
-#define profstop(n, x) do { struct timeval _profstop;   \
-    int64_t _proftime;                         \
-    gettimeofday(&_profstop, NULL);                         \
-    _proftime = (_profstop.tv_sec*1000000+_profstop.tv_usec) -     \
-    (x.tv_sec*1000000+x.tv_usec); \
-    elog(NOTICE, \
-            "PRF(%s) %lu (%f ms)", \
-            (n), \
-            _proftime, _proftime / 1000.0);    \
-} while (0);
-
-#else
-
-#define profstart(x) do { } while (0);
-#define profstop(n, x) do { } while (0);
-
-#endif  //   PROFILE
-
-
-//  ------------------------------------------------------------------------
-
-PGDLLEXPORT Datum vrp(PG_FUNCTION_ARGS);
-
-#undef DEBUG
-// #define DEBUG 1
-#include "../../common/src/debug_macro.h"
-
-
-//  The number of tuples to fetch from the SPI cursor at each iteration
-#define TUPLIMIT 1000
-
-#ifndef PG_MODULE_MAGIC
-PG_MODULE_MAGIC;
-#endif
-
-typedef struct vehicle_columns {
-    int vehicle_id;
-    int capacity;
-} vehicle_columns_t;
-
-typedef struct order_columns {
-    int id;
-    int order_unit;
-    int open_time;
-    int close_time;
-    int service_time;
-
-    int x;
-    int y;
-} order_columns_t;
-
-typedef struct distance_columns {
-    int src_id;
-    int dest_id;
-    int cost;
-    int distance;
-    int traveltime;
-} distance_columns_t;
-
-
-// float DISTANCE[MAX_TOWNS][MAX_TOWNS];
-// float x[MAX_TOWNS], y[MAX_TOWNS];
-
-#if 0
-static char *
-text2char(text *in) {
-    char *out = (char*)palloc(VARSIZE(in));
-
-    memcpy(out, VARDATA(in), VARSIZE(in) - VARHDRSZ);
-    out[VARSIZE(in) - VARHDRSZ] = '\0';
-    return out;
-}
-#endif
-
-static int
-finish(int *code) {
-    *code = SPI_finish();
-    if (*code != SPI_OK_FINISH) {
-        elog(ERROR, "couldn't disconnect from SPI");
-        return -1;
-    }
-    return 0;
-}
-
-
-
-static int
-fetch_distance_columns(SPITupleTable *tuptable, distance_columns_t *distance_columns) {
-    PGR_DBG("Fetching distance");
-    if (tuptable) {} 
-
-    distance_columns->src_id = SPI_fnumber(SPI_tuptable->tupdesc, "src_id");
-    distance_columns->dest_id = SPI_fnumber(SPI_tuptable->tupdesc, "dest_id");
-    distance_columns->cost = SPI_fnumber(SPI_tuptable->tupdesc, "cost");
-    distance_columns->distance = SPI_fnumber(SPI_tuptable->tupdesc, "distance");
-    distance_columns->traveltime = SPI_fnumber(SPI_tuptable->tupdesc, "traveltime");
-    if (distance_columns->src_id == SPI_ERROR_NOATTRIBUTE ||
-            distance_columns->dest_id == SPI_ERROR_NOATTRIBUTE ||
-            distance_columns->cost == SPI_ERROR_NOATTRIBUTE ||
-            distance_columns->distance == SPI_ERROR_NOATTRIBUTE ||
-            distance_columns->traveltime == SPI_ERROR_NOATTRIBUTE) {
-        elog(ERROR, "Error, query must return columns "
-                "'src_id', 'dest_id', 'cost', 'distance' and 'traveltime'");
-        return -1;
-    }
-
-    return 0;
-}
-
-
-static void
-fetch_distance(HeapTuple *tuple, TupleDesc *tupdesc,
-        distance_columns_t *distance_columns, vrp_cost_element_t *dist, size_t t) {
-    Datum binval;
-    bool isnull;
-    if (t) {}
-
-    PGR_DBG("fetch_distance: src_id col:%i", distance_columns->src_id);
-
-    binval = SPI_getbinval(*tuple, *tupdesc, distance_columns->src_id, &isnull);
-
-    PGR_DBG("back from SPI_getbinval for src_id");
-    //  PGR_DBG("binval = %i", binval);
-
-    if (isnull)
-        elog(ERROR, "src_id contains a null value");
-
-    dist->src_id = DatumGetInt32(binval);
-
-    PGR_DBG("back from DatumGetInt32");
-    PGR_DBG("src_id = %i", dist->src_id);
-
-    binval = SPI_getbinval(*tuple, *tupdesc, distance_columns->dest_id, &isnull);
-    if (isnull)
-        elog(ERROR, "dest_id contains a null value");
-
-    dist->dest_id = DatumGetInt32(binval);
-
-    PGR_DBG("dest_id = %i", dist->dest_id);
-
-    binval = SPI_getbinval(*tuple, *tupdesc, distance_columns->cost, &isnull);
-
-    if (isnull)
-        elog(ERROR, "cost contains a null value");
-
-    dist->cost = DatumGetFloat8(binval);
-
-    PGR_DBG("cost = %lf", dist->cost);
-
-    binval = SPI_getbinval(*tuple, *tupdesc, distance_columns->distance, &isnull);
-    if (isnull)
-        elog(ERROR, "distance contains a null value");
-
-    dist->distance = DatumGetFloat8(binval);
-
-    PGR_DBG("distance = %lf", dist->distance);
-
-    binval = SPI_getbinval(*tuple, *tupdesc, distance_columns->traveltime, &isnull);
-
-    if (isnull)
-        elog(ERROR, "traveltime contains a null value");
-
-    dist->traveltime = DatumGetFloat8(binval);
-
-    PGR_DBG("traveltime = %lf", dist->traveltime);
-
-    // PGR_DBG("dist[%i][%i] = %f\n", from_point, to_point, value);
-
-
-    // PGR_DBG("dist[%i(%i:%i)][%i(%i:%i)] = %f\n", from, from_order, from_point, to, to_order, to_point, *(dist + (num_rows * from) + to));
-}
-
-static int
-fetch_order_columns(SPITupleTable *tuptable, order_columns_t *order_columns) {
-    PGR_DBG("Fetching order");
-    if (tuptable) {} 
-
-    // order_columns->id = SPI_fnumber(SPI_tuptable->tupdesc, "id");
-    order_columns->id = SPI_fnumber(SPI_tuptable->tupdesc, "id");
-    order_columns->order_unit = SPI_fnumber(SPI_tuptable->tupdesc, "order_unit");
-    order_columns->open_time = SPI_fnumber(SPI_tuptable->tupdesc, "open_time");
-    order_columns->close_time = SPI_fnumber(SPI_tuptable->tupdesc, "close_time");
-    order_columns->service_time = SPI_fnumber(SPI_tuptable->tupdesc, "service_time");
-    order_columns->x = SPI_fnumber(SPI_tuptable->tupdesc, "x");
-    order_columns->y = SPI_fnumber(SPI_tuptable->tupdesc, "y");
-    if (  // order_columns->id == SPI_ERROR_NOATTRIBUTE ||
-            order_columns->id == SPI_ERROR_NOATTRIBUTE ||
-            order_columns->open_time == SPI_ERROR_NOATTRIBUTE ||
-            order_columns->order_unit == SPI_ERROR_NOATTRIBUTE ||
-            order_columns->close_time == SPI_ERROR_NOATTRIBUTE ||
-            order_columns->service_time == SPI_ERROR_NOATTRIBUTE ||
-            order_columns->x == SPI_ERROR_NOATTRIBUTE ||
-            order_columns->y == SPI_ERROR_NOATTRIBUTE
-       ) {
-        //       elog(ERROR, "Error, query must return columns "
-        //            "'id', 'order_id', 'pu_time', 'do_time', 'pu_time_window', 'do_time_window', 'from_x', 'to_x', 'from_y', 'to_y' and 'size'");
-        elog(ERROR, "Error, query must return columns "
-                // "'id',
-                "'id', 'order_unit', 'open_time', 'close_time', 'service_time', 'x', 'y'");
-        return -1;
-    }
-
-    return 0;
-}
-
-static void
-fetch_order(HeapTuple *tuple, TupleDesc *tupdesc,
-        order_columns_t *order_columns, vrp_orders_t *order, size_t t) {
-    Datum binval;
-    bool isnull;
-
-    PGR_DBG("inside fetch_order\n");
-
-    // binval = SPI_getbinval(*tuple, *tupdesc, order_columns->id, &isnull);
-    //
-    //  PGR_DBG("got binval\n");
-    //
-    // if (isnull)
-    //  elog(ERROR, "id contains a null value");
-    //
-    // order->id = DatumGetInt32(binval);
-    order->id = (int)t + 1;
-
-    PGR_DBG("id = %i\n", order->id);
-
-    binval = SPI_getbinval(*tuple, *tupdesc, order_columns->id, &isnull);
-    if (isnull)
-        elog(ERROR, "order_id contains a null value");
-
-    order->id = DatumGetInt32(binval);
-
-    PGR_DBG("order_id = %i\n", order->id);
-
-
-    binval = SPI_getbinval(*tuple, *tupdesc, order_columns->order_unit, &isnull);
-    if (isnull)
-        elog(ERROR, "order_unit contains a null value");
-
-    order->order_unit = DatumGetInt32(binval);
-
-    PGR_DBG("order_unit = %i\n", order->order_unit);
-
-    binval = SPI_getbinval(*tuple, *tupdesc, order_columns->open_time, &isnull);
-    if (isnull)
-        elog(ERROR, "open_time contains a null value");
-
-    order->open_time = DatumGetInt32(binval);
-
-    PGR_DBG("open_time = %i\n", order->open_time);
-
-    binval = SPI_getbinval(*tuple, *tupdesc, order_columns->close_time, &isnull);
-    if (isnull)
-        elog(ERROR, "close_time contains a null value");
-
-    order->close_time = DatumGetInt32(binval);
-
-    PGR_DBG("close_time = %d\n", order->close_time);
-
-    binval = SPI_getbinval(*tuple, *tupdesc, order_columns->service_time, &isnull);
-    if (isnull)
-        elog(ERROR, "service_time contains a null value");
-
-    order->service_time = DatumGetInt32(binval);
-
-    PGR_DBG("service_time = %d\n", order->service_time);
-
-    binval = SPI_getbinval(*tuple, *tupdesc, order_columns->x, &isnull);
-    if (isnull)
-        elog(ERROR, "x contains a null value");
-
-    order->x = DatumGetFloat8(binval);
-
-    PGR_DBG("x = %f\n", order->x);
-
-    binval = SPI_getbinval(*tuple, *tupdesc, order_columns->y, &isnull);
-    if (isnull)
-        elog(ERROR, "y contains a null value");
-
-    order->y = DatumGetFloat8(binval);
-
-    PGR_DBG("doUT = %f\n", order->y);
-}
-
-static int
-fetch_vehicle_columns(SPITupleTable *tuptable, vehicle_columns_t *vehicle_columns) {
-    PGR_DBG("Fetching order");
-    if (tuptable) {} 
-
-    vehicle_columns->vehicle_id = SPI_fnumber(SPI_tuptable->tupdesc, "vehicle_id");
-    vehicle_columns->capacity = SPI_fnumber(SPI_tuptable->tupdesc, "capacity");
-
-    if (vehicle_columns->vehicle_id == SPI_ERROR_NOATTRIBUTE ||
-            vehicle_columns->capacity == SPI_ERROR_NOATTRIBUTE) {
-        elog(ERROR, "Error, query must return columns "
-                "'id' and 'capacity'");
-        return -1;
-    }
-
-    return 0;
-}
-
-static void
-fetch_vehicle(HeapTuple *tuple, TupleDesc *tupdesc,
-        vehicle_columns_t *vehicle_columns, vrp_vehicles_t *vehicle, size_t t) {
-    Datum binval;
-    bool isnull;
-    if (t) {}
-
-    PGR_DBG("inside fetch_vehicle\n");
-
-    // binval = SPI_getbinval(*tuple, *tupdesc, vehicle_columns->id, &isnull);
-    // PGR_DBG("Got id\n");
-    //
-    // if (isnull)
-    //  elog(ERROR, "id contains a null value");
-    //
-    // vehicle->id = DatumGetInt32(binval);
-
-
-    binval = SPI_getbinval(*tuple, *tupdesc, vehicle_columns->vehicle_id, &isnull);
-    PGR_DBG("Got vehicle_id\n");
-
-    if (isnull)
-        elog(ERROR, "vehicle_id contains a null value");
-
-    vehicle->id = DatumGetInt32(binval);
-
-    PGR_DBG("vehicle_id = %i\n", vehicle->id);
-
-    binval = SPI_getbinval(*tuple, *tupdesc, vehicle_columns->capacity, &isnull);
-    if (isnull)
-        elog(ERROR, "capacity contains a null value");
-
-    vehicle->capacity = DatumGetInt32(binval);
-
-    PGR_DBG("capacity = %d\n", vehicle->capacity);
-}
-
-static int conn(int *SPIcode) {
-    int res = 0;
-
-    *SPIcode = SPI_connect();
-
-    if (*SPIcode != SPI_OK_CONNECT) {
-        elog(ERROR, "vrp: couldn't open a connection to SPI");
-        res = -1;
-    }
-
-    return res;
-}
-
-static int prepare_query(Portal *SPIportal, char* sql) {
-    int res = 0;
-
-    void* SPIplan = SPI_prepare(sql, 0, NULL);
-
-    if (SPIplan == NULL) {
-        elog(ERROR, "vrp: couldn't create query plan via SPI");
-        res = -1;
-    }
-
-    if ((*SPIportal = SPI_cursor_open(NULL, SPIplan, NULL, NULL, true)) == NULL) {
-        elog(ERROR, "vrp: SPI_cursor_open('%s') returns NULL", sql);
-        res = -1;
-    }
-
-    return res;
-}
-
-static int solve_vrp(char* orders_sql, char* vehicles_sql,
-        char* dist_sql,
-        int depot,
-        vrp_result_element_t** path, size_t *path_count) {
-    int SPIcode;
-
-    Portal SPIportal_o;
-    Portal SPIportal_v;
-    Portal SPIportal_d;
-    //  Portal SPIportal_p;
-
-    bool moredata = TRUE;
-    size_t ntuples;
-
-    size_t order_num;
-    size_t vehicle_num;
-    size_t dist_num;
-
-    vrp_vehicles_t *vehicles = NULL;
-    vehicle_columns_t vehicle_columns = {.vehicle_id = -1, .capacity = -1};
-
-    vrp_orders_t *orders = NULL;
-    order_columns_t order_columns = {.id = -1, .order_unit = -1, .open_time = -1, .close_time = -1, .service_time = -1, .x = -1, .y = -1};
-
-    vrp_cost_element_t *costs = NULL;
-    distance_columns_t distance_columns = {.src_id = -1, .dest_id = -1, .cost = -1, .distance = -1, .traveltime = -1};
-
-    char *err_msg = NULL;
-    int ret = -1;
-
-    //  int   z = 0;
-
-    //  int    tt, cc;
-    //  double dx, dy;
-    //  float fit = 0.0;
-
-    int prep = -1, con = -1;
-
-    // int total_tuples = 0;
-    order_num = 0;
-    vehicle_num = 0;
-
-    PGR_DBG("start solve_vrp\n");
-
-    // vrp_orders_t depot_ord = {id:0, order_id:depot, from:depot_point, to:depot_point};
-    // orders = palloc(1 * sizeof(vrp_orders_t));
-    // orders[0] = depot_ord;
-
-    con = conn(&SPIcode);
-
-    if (con < 0)
-        return ret;
-
-
-    //  Fetching orders
-
-    PGR_DBG("calling prepare_query for orders_sql");
-
-    prep = prepare_query(&SPIportal_o, orders_sql);
-
-    if (prep < 0)
-        return ret;
-
-    PGR_DBG("Query: %s\n", orders_sql);
-    PGR_DBG("Query executed\n");
-
-    PGR_DBG("Orders before: %lu\n", order_num);
-
-    while (moredata == TRUE) {
-        SPI_cursor_fetch(SPIportal_o, TRUE, TUPLIMIT);
-
-        PGR_DBG("cursor fetched\n");
-
-        if (order_columns.id == -1) {
-            if (fetch_order_columns(SPI_tuptable, &order_columns) == -1)
-                return finish(&SPIcode);
-        }
-
-        ntuples = SPI_processed;
-
-        order_num += ntuples;
-
-        PGR_DBG("Tuples: %lu\n", order_num);
-
-        if (!orders)
-            orders = palloc(order_num * sizeof(vrp_orders_t));
-        else
-            orders = repalloc(orders, (order_num + 1) * sizeof(vrp_orders_t));
-
-        if (orders == NULL) {
-            elog(ERROR, "Out of memory");
-            return finish(&SPIcode);
-        }
-
-        if (ntuples > 0) {
-            SPITupleTable *tuptable = SPI_tuptable;
-            TupleDesc tupdesc = SPI_tuptable->tupdesc;
-
-            PGR_DBG("Got tuple desc\n");
-            size_t t;
-            for (t = 0; t < ntuples; t++) {
-                HeapTuple tuple = tuptable->vals[t];
-                // PGR_DBG("Before order fetched [%i]\n", order_num - ntuples + t);
-                fetch_order(&tuple, &tupdesc, &order_columns,
-                        &orders[order_num - ntuples + t], t);
-
-                // &orders[t+1], t);
-                PGR_DBG("Order fetched\n");
-            }
-
-            SPI_freetuptable(tuptable);
-        } else {
-            moredata = FALSE;
-        }
-    }  //  end of fetching orders
-    // finish(&SPIcode_o);
-    /*
-       int o;
-       for (o = 0; o<order_num+1;++o)
-       {
-       elog(NOTICE, "ORDERS[%i] = {id = %i, open = %i, close = %i, service = %i}", o, orders[o].id, orders[o].open_time, orders[o].close_time, orders[o].service_time);
-       }
-       */
-    PGR_DBG("order_num = %lu", order_num);
-
-    // qsort (orders, order_num+1, sizeof (vrp_orders_t), order_cmp);
-
-
-    //  Fetching vehicles
-
-    moredata = TRUE;
-    prep = prepare_query(&SPIportal_v, vehicles_sql);
-
-    if (prep < 0)
-        return ret;
-
-    PGR_DBG("Query: %s\n", vehicles_sql);
-    PGR_DBG("Query executed\n");
-
-
-    while (moredata == TRUE) {
-        SPI_cursor_fetch(SPIportal_v, TRUE, TUPLIMIT);
-
-        if (vehicle_columns.vehicle_id == -1) {
-            if (fetch_vehicle_columns(SPI_tuptable, &vehicle_columns) == -1)
-                return finish(&SPIcode);
-        }
-
-
-        ntuples = SPI_processed;
-
-        vehicle_num += ntuples;
-
-        PGR_DBG("Tuples: %lu\n", vehicle_num);
-
-        if (!vehicles)
-            vehicles = palloc(vehicle_num * sizeof(vrp_vehicles_t));
-        else
-            vehicles = repalloc(vehicles, vehicle_num * sizeof(vrp_vehicles_t));
-
-        if (vehicles == NULL) {
-            elog(ERROR, "Out of memory");
-            return finish(&SPIcode);
-        }
-
-        if (ntuples > 0) {
-            SPITupleTable *tuptable = SPI_tuptable;
-            TupleDesc tupdesc = SPI_tuptable->tupdesc;
-
-            PGR_DBG("Got tuple desc\n");
-
-            size_t t;
-            for (t = 0; t < ntuples; t++) {
-                HeapTuple tuple = tuptable->vals[t];
-                PGR_DBG("Before vehicle fetched\n");
-                fetch_vehicle(&tuple, &tupdesc, &vehicle_columns,
-                        &vehicles[vehicle_num - ntuples + t], t);
-                PGR_DBG("Vehicle fetched\n");
-            }
-
-            SPI_freetuptable(tuptable);
-        } else {
-            moredata = FALSE;
-        }
-    }  //  end of fetching vehicles
-    // finish(&SPIcode_v);
-
-    // double dist[order_num*2+1][order_num*2+1];
-
-    //  Fetching distances
-
-    dist_num = 0;
-    moredata = TRUE;
-    prep = prepare_query(&SPIportal_d, dist_sql);
-
-    if (prep < 0)
-        return ret;
-
-    PGR_DBG("Query: %s\n", dist_sql);
-    PGR_DBG("Query executed\n");
-
-    while (moredata == TRUE) {
-        SPI_cursor_fetch(SPIportal_d, TRUE, TUPLIMIT);
-
-        if (distance_columns.src_id == -1) {
-            if (fetch_distance_columns(SPI_tuptable, &distance_columns) == -1)
-                return finish(&SPIcode);
-        }
-
-        ntuples = SPI_processed;
-        dist_num += ntuples;
-
-        PGR_DBG("Tuples: %lu\n", vehicle_num);
-
-        if (!costs)
-            costs = palloc(dist_num * sizeof(vrp_cost_element_t));
-        else
-            costs = repalloc(costs, dist_num * sizeof(vrp_cost_element_t));
-
-        if (costs == NULL) {
-            elog(ERROR, "Out of memory");
-            return finish(&SPIcode);
-        }
-
-        if (ntuples > 0) {
-            SPITupleTable *tuptable = SPI_tuptable;
-            TupleDesc tupdesc = SPI_tuptable->tupdesc;
-
-            PGR_DBG("Got tuple desc\n");
-            size_t t;
-            for (t = 0; t < ntuples; t++) {
-                HeapTuple tuple = tuptable->vals[t];
-                PGR_DBG("Before distance fetched\n");
-                fetch_distance(&tuple, &tupdesc, &distance_columns,
-                        &costs[dist_num - ntuples + t], t);
-                PGR_DBG("Distance fetched\n");
-            }
-
-            SPI_freetuptable(tuptable);
-        } else {
-            moredata = FALSE;
-        }
-    }  //  end of fetching distances
-
-
-    PGR_DBG("Calling vrp\n");
-
-    profstop("extract", prof_extract);
-    profstart(prof_vrp);
-
-    PGR_DBG("Total orders: %lu\n", order_num);
-    PGR_DBG("Total vehicles: %lu\n", vehicle_num);
-
-
-    // qsort (orders, order_num+1, sizeof (vrp_orders_t), order_cmp_asc);
-
-
-#ifdef DEBUG
-    int o;
-    for (o = 0; o < order_num + 1; ++o) {
-        PGR_DBG("ORDERS[%i] = {id = %i, open = %i, close = %i, service = %i}", o, orders[o].id, orders[o].open_time, orders[o].close_time, orders[o].service_time);
-    }
-#endif
-
-
-
-    // itinerary = (vrp_result_element_t *)palloc(sizeof(vrp_result_element_t)*(order_num*2-1)*vehicle_num);
-
-    PGR_DBG("Calling vrp solver\n");
-    // elog(NOTICE, "Calling find_vrp_solution: vehicles: %i, orders: %i, dists: %i, depot: %i", vehicle_num, order_num, dist_num, depot);
-
-    ret = find_vrp_solution(vehicles, vehicle_num,
-            orders, order_num,
-            costs, dist_num,
-            depot,
-            path, path_count, &err_msg);
-
-    // ret = -1;
-    // elog(NOTICE, "vrp solved! ret: %d, path_count: %d", ret, *path_count);
-    //  int pp;
-    /*
-       for (pp = 0; pp < *path_count; pp++)
-       {
-       elog(NOTICE, "Row: %d: %d %d %d %d %d", pp, (*path)[pp].order_id, (*path)[pp].order_pos, (*path)[pp].vehicle_id, (*path)[pp].arrival_time, (*path)[pp].depart_time);
-       }
-       */
-    PGR_DBG("vrp solved! ret: %d, path_count: %lu", ret, *path_count);
-    // PGR_DBG("Score: %f\n", fit);
-
-    profstop("vrp", prof_vrp);
-    profstart(prof_store);
-
-    PGR_DBG("Profile changed and ret is %i", ret);
-
-    if (ret < 0) {
-        // elog(ERROR, "Error computing path: %s", err_msg);
-        ereport(ERROR, (errcode(ERRCODE_E_R_E_CONTAINING_SQL_NOT_PERMITTED), errmsg("Error computing path: %s", err_msg)));
-    }
-
-    // pfree(vehicles);
-    // pfree(orders);
-    return finish(&SPIcode);
-}
-
-PG_FUNCTION_INFO_V1(vrp);
-PGDLLEXPORT Datum
-vrp(PG_FUNCTION_ARGS) {
-    FuncCallContext     *funcctx;
-    TupleDesc            tuple_desc;
-    vrp_result_element_t         *path;
-
-    /* stuff done only on the first call of the function */
-    if (SRF_IS_FIRSTCALL()) {
-        MemoryContext   oldcontext;
-        // int path_count;
-        //  int ret = -1;
-        size_t path_count = 0;
-
-        //  XXX profiling messages are not thread safe
-        profstart(prof_total);
-        profstart(prof_extract);
-
-        /* create a function context for cross-call persistence */
-        funcctx = SRF_FIRSTCALL_INIT();
-
-        /* switch to memory context appropriate for multiple function calls */
-        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
-
-
-        // path = (vrp_result_element_t *)palloc(sizeof(vrp_result_element_t)*(MAX_ORDERS-1)*2*MAX_VEHICLES);
-
-
-        PGR_DBG("Calling solve_vrp ...");
-
-        //  ret =
-        solve_vrp(  // text_to_cstring(PG_GETARG_TEXT_P(0)),  //  points sql
-                text_to_cstring(PG_GETARG_TEXT_P(0)),  //   orders sql
-                text_to_cstring(PG_GETARG_TEXT_P(1)),  //   vehicles sql
-                text_to_cstring(PG_GETARG_TEXT_P(2)),  //   distances query
-                PG_GETARG_INT32(3),  //   depot id
-                &path, &path_count);
-
-        PGR_DBG("Back from solve_vrp, path_count:%lu", path_count);
-        // elog(NOTICE, "Back from solve_vrp, path_count:%d", path_count);
-
-        /* total number of tuples to be returned */
-        // PGR_DBG("Counting tuples number\n");
-
-#if PGSQL_VERSION > 95
-        funcctx->max_calls = path_count;
-#else
-        funcctx->max_calls = (uint32_t)path_count;
-#endif
-        funcctx->user_fctx = path;
-
-        /* Build a tuple descriptor for our result type */
-        if (get_call_result_type(fcinfo, NULL, &tuple_desc) != TYPEFUNC_COMPOSITE)
-            ereport(ERROR,
-                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-                     errmsg("function returning record called in context "
-                         "that cannot accept type record")));
-
-        funcctx->tuple_desc = BlessTupleDesc(tuple_desc);
-
-        /*
-         * generate attribute metadata needed later to produce tuples from raw
-         * C strings
-         */
-        // attinmeta = TupleDescGetAttInMetadata(tuple_desc);
-        // funcctx->attinmeta = attinmeta;
-
-        MemoryContextSwitchTo(oldcontext);
-        // elog(NOTICE, "table formed");
-    }
-
-    /* stuff done on every call of the function */
-    funcctx = SRF_PERCALL_SETUP();
-
-    tuple_desc = funcctx->tuple_desc;
-    path = (vrp_result_element_t *)funcctx->user_fctx;
-
-    // elog(NOTICE, "Point 1");
-    // PGR_DBG("Trying to allocate some memory\n");
-    // PGR_DBG("funcctx->call_cntr = %i, max_calls = %i\n", funcctx->call_cntr, max_calls);
-
-    if (funcctx->call_cntr <  funcctx->max_calls) {
-        /* do when there is more left to send */
-        HeapTuple    tuple;
-        Datum        result;
-        Datum *values;
-        char* nulls;
-
-        values = palloc(5 * sizeof(Datum));
-        nulls = palloc(5 * sizeof(char));
-
-        values[0] = Int32GetDatum(path[funcctx->call_cntr].order_id);   //  order id
-        nulls[0] = ' ';
-        values[1] = Int32GetDatum(path[funcctx->call_cntr].order_pos);  //   order pos
-        nulls[1] = ' ';
-        values[2] = Int32GetDatum(path[funcctx->call_cntr].vehicle_id);  //   vehicle id
-        nulls[2] = ' ';
-        values[3] = Int32GetDatum(path[funcctx->call_cntr].arrival_time);  //   arrival time
-        nulls[3] = ' ';
-        // values[4] = TimeTzADTPGetDatum(&path[funcctx->call_cntr].time);
-        values[4] = Int32GetDatum(path[funcctx->call_cntr].depart_time);  //   departure time
-        nulls[4] = ' ';
-
-        //  PGR_DBG("Heap making\n");
-        // elog(NOTICE, "Result %d %d %d", funcctx->call_cntr, path[funcctx->call_cntr].order_id, max_calls);
-        tuple = heap_form_tuple(tuple_desc, values, nulls);
-
-        // PGR_DBG("Datum making\n");
-
-        /* make the tuple into a datum */
-        result = HeapTupleGetDatum(tuple);
-
-        // PGR_DBG("Trying to free some memory\n");
-
-        /* clean up */
-        pfree(values);
-        pfree(nulls);
-
-
-        SRF_RETURN_NEXT(funcctx, result);
-    } else {
-        /* do when there is no more left */
-
-        PGR_DBG("Ending function\n");
-        profstop("store", prof_store);
-        profstop("total", prof_total);
-        PGR_DBG("Profiles stopped\n");
-
-        PGR_DBG("Itinerary cleared\n");
-
-        SRF_RETURN_DONE(funcctx);
-    }
-}
diff --git a/src/vrp_basic/src/VRP.h b/src/vrp_basic/src/VRP.h
deleted file mode 100644
index 43c3153..0000000
--- a/src/vrp_basic/src/VRP.h
+++ /dev/null
@@ -1,78 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2013 Khondoker Md. Razequl Islam
-ziboncsedu at gmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifndef SRC_VRP_BASIC_SRC_VRP_H_
-#define SRC_VRP_BASIC_SRC_VRP_H_
-
-#include <stddef.h>
-
-typedef struct vrp_vehicles {
-    int id;
-    int capacity;
-} vrp_vehicles_t;
-
-
-typedef struct vrp_orders {
-    int id;
-    int order_unit;
-    int open_time;
-    int close_time;
-    int service_time;
-
-    double x;
-    double y;
-} vrp_orders_t;
-
-typedef struct vrp_cost_element {
-    int src_id;
-    int dest_id;
-    double cost;
-    double distance;
-    double traveltime;
-} vrp_cost_element_t;
-
-
-typedef struct vrp_result_element {
-    int order_id;
-    int order_pos;
-    int vehicle_id;
-    int arrival_time;
-    int depart_time;
-} vrp_result_element_t;
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int find_vrp_solution(vrp_vehicles_t *vehicles, size_t vehicle_count,
-        vrp_orders_t *orders, size_t order_count,
-        vrp_cost_element_t *costmatrix, size_t cost_count,
-        int depot_id,
-        vrp_result_element_t **result, size_t *result_count, char **err_msg);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif  // SRC_VRP_BASIC_SRC_VRP_H_
diff --git a/src/vrp_basic/src/VRP_Solver.cpp b/src/vrp_basic/src/VRP_Solver.cpp
deleted file mode 100644
index a9ef1d1..0000000
--- a/src/vrp_basic/src/VRP_Solver.cpp
+++ /dev/null
@@ -1,887 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2013 Khondoker Md. Razequl Islam
-ziboncsedu at gmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-
-#include "./VRP_Solver.h"
-#include <algorithm>
-#include <math.h>
-#include <utility>
-#include <map>
-#include <set>
-#include <string>
-#include <vector>
-
-#undef PGR_LOGGER_ON
-#define PGR_LOGGER_LOC
-#define PGR_LOGGER_FILE "/tmp/vrp-debug.log"
-#include "../../common/src/pgr_logger.h"
-
-#define DOUBLE_MAX 1e50
-
-bool operator != (const CVehicleInfo& cur, const CVehicleInfo& that) {
-    return(cur.m_iVehicleId != that.m_iVehicleId);
-}
-
-bool operator == (const CTourInfo& cur, const CTourInfo& that) {
-    if (cur.m_vehicleInfo != that.m_vehicleInfo)
-        return false;
-    if (cur.m_viOrderIds.size() != that.m_viOrderIds.size())
-        return false;
-    return std::equal(cur.m_viOrderIds.begin(), cur.m_viOrderIds.end(), that.m_viOrderIds.begin());
-}
-
-bool operator == (const CMoveInfo& cur, const CMoveInfo& that) {
-    if (!(cur.m_vInitialTour == that.m_vInitialTour))
-        return false;
-    if (!(cur.m_vModifiedTour == that.m_vModifiedTour))
-        return false;
-    return true;
-}
-
-
-
-CVehicleInfo::CVehicleInfo() {
-    m_iCurrentLoad = 0;
-}
-CVehicleInfo::~CVehicleInfo() {
-}
-
-bool CVehicleInfo::loadUnit(int lUnit) {
-    if (m_iCurrentLoad + lUnit > m_iCapacity)
-        return false;
-    m_iCurrentLoad += lUnit;
-    return true;
-}
-
-COrderInfo::COrderInfo() { }
-COrderInfo::~COrderInfo() { }
-
-CDepotInfo::CDepotInfo() { }
-CDepotInfo::~CDepotInfo() { }
-
-CTourInfo::CTourInfo() {
-    m_dTotalCost = 0.0;
-    m_dTotalDistance = 0.0;
-    m_dTotalTraveltime = 0.0;
-}
-CTourInfo::~CTourInfo() { }
-
-bool CTourInfo::insertOrder(int orderId, int pos) {
-    m_viOrderIds.insert(m_viOrderIds.begin() + pos, orderId);
-    return true;
-}
-
-int CTourInfo::getRemainingCapacity() {
-    return(m_vehicleInfo.getRemainingCapacity());
-}
-
-bool CTourInfo::removeOrder(int pos) {
-    m_viOrderIds.erase(m_viOrderIds.begin() + pos);
-    return true;
-}
-
-void CTourInfo::updateCost(double cost, double distance, double travelTime) {
-    m_dTotalCost = cost;
-    m_dTotalDistance = distance;
-    m_dTotalTraveltime = travelTime;
-}
-
-CSolutionInfo::CSolutionInfo() { }
-CSolutionInfo::~CSolutionInfo() { }
-
-void CSolutionInfo::replaceTour(CTourInfo curTour) {
-    unsigned int i;
-    for (i = 0; i < m_vtourAll.size(); i++) {
-        if (m_vtourAll[i].getVehicleId() == curTour.getVehicleId()) {
-            m_vtourAll[i] = curTour;
-            return;
-        }
-    }
-    return;
-}
-
-void CSolutionInfo::replaceTourAt(int index, CTourInfo curTour) {
-    if (index < 0 ||  (unsigned int) index >= m_vtourAll.size())
-        return;
-    m_vtourAll[index] = curTour;
-}
-
-bool CSolutionInfo::init(std::vector<int> vecOrder, int iTotalOrder, std::vector<int> vecVehicle) {
-    m_vUnservedOrderId = vecOrder;
-    m_iTotalOrders = iTotalOrder;
-    m_vUnusedVehicles = vecVehicle;
-
-    m_vtourAll.clear();
-    m_iVehicleUsed = 0;
-    m_iOrdersServed = 0;
-    m_iTotalOrders = 0;
-    m_dTotalCost = 0;
-    m_dTotalDistance = 0;
-    m_dTotalTravelTime = 0;
-    return true;
-}
-
-bool CSolutionInfo::addTour(CTourInfo& tour) {
-    m_vtourAll.push_back(tour);
-    int vid = tour.getVehicleId();
-    std::vector<int>::iterator it;
-    it = std::find(m_vUnusedVehicles.begin(), m_vUnusedVehicles.end(), vid);
-    if (it != m_vUnusedVehicles.end()) {
-        m_vUnusedVehicles.erase(it);
-    }
-    m_iVehicleUsed++;
-    m_dTotalDistance += tour.getDistance();
-    m_dTotalTravelTime += tour.getTravelTime();
-    m_dTotalCost += tour.getCost();
-
-    std::vector<int> vecOrders = tour.getOrderVector();
-
-    m_iOrdersServed += static_cast<int>(vecOrders.size());
-
-    for (const auto &order : vecOrders) {
-        int oid = order;
-        it = std::find(m_vUnservedOrderId.begin(), m_vUnservedOrderId.end(), oid);
-        if (it != m_vUnservedOrderId.end()) {
-            m_vUnservedOrderId.erase(it);
-        }
-    }
-
-    return true;
-}
-
-CMoveInfo::CMoveInfo() { }
-CMoveInfo::~CMoveInfo() { }
-
-void CMoveInfo::setInitialTour(CTourInfo tourData) {
-    m_vInitialTour.clear();
-    m_vInitialTour.push_back(tourData);
-}
-
-void CMoveInfo::setInitialTour(CTourInfo tourData1, CTourInfo tourData2) {
-    m_vInitialTour.clear();
-    m_vInitialTour.push_back(tourData1);
-    m_vInitialTour.push_back(tourData2);
-}
-
-void CMoveInfo::setModifiedTour(CTourInfo tourData) {
-    m_vModifiedTour.clear();
-    m_vModifiedTour.push_back(tourData);
-}
-
-void CMoveInfo::setModifiedTour(CTourInfo tourData1, CTourInfo tourData2) {
-    m_vModifiedTour.clear();
-    m_vModifiedTour.push_back(tourData1);
-    m_vModifiedTour.push_back(tourData2);
-}
-
-void CMoveInfo::getInitialTour(CTourInfo &tourData) {
-    tourData = m_vInitialTour[0];
-}
-
-void CMoveInfo::getInitialTour(CTourInfo &tourData1, CTourInfo &tourData2) {
-    tourData1 = m_vInitialTour[0];
-    tourData2 = m_vInitialTour[1];
-}
-
-bool CMoveInfo::getModifiedTourAt(int index, CTourInfo& tourInfo) {
-    if (index < 0 ||  (unsigned int) index >= m_vModifiedTour.size())
-        return false;
-    tourInfo = m_vModifiedTour[index];
-    return true;
-}
-
-
-
-CVRPSolver::CVRPSolver() {
-    // set a seed for the random number generator
-    // so it will generate consistent results for the same input
-    // otherwise we can not test it :(
-    srand(1726354);
-}
-CVRPSolver::~CVRPSolver() { }
-
-bool CVRPSolver::solveVRP(std::string& strError) {
-    // if (!m_bIsReadyToSolve)
-    // {
-    //      strError = "Scenario is not ready to solve. Configure all parameter";
-    //      return false;
-    // }
-    PGR_LOG("Inside Solve VRP");
-    std::vector<int> vecOrders, vecVehicles;
-
-    for(auto &rule:m_vOrderInfos)
-    {
-      vecOrders.push_back(rule.getOrderId());
-    }
-
-    for (auto &rule:m_vVehicleInfos) {
-        vecVehicles.push_back(rule.getId());
-    }
-
-    m_solutionFinal.init(vecOrders, static_cast<int>(vecOrders.size()), vecVehicles);
-    PGR_LOG("After init solution");
-    int iAttemptCount = 0;
-    while (iAttemptCount < MAXIMUM_TRY) {
-        bool bUpdateFound = false;
-        CSolutionInfo initialSolution = generateInitialSolution();
-        PGR_LOG("After Generate initial Solution");
-        iAttemptCount++;
-        bUpdateFound = updateFinalSolution(initialSolution);
-        PGR_LOG("After update final Solution");
-        bool bUpdateFound2 = tabuSearch(initialSolution);
-        PGR_LOG("After Tabu Search");
-        if ((bUpdateFound == true) ||  (bUpdateFound2 == true)) {
-            iAttemptCount = 0;
-        }
-    }
-    m_bIsSolutionReady = true;
-    strError += " ";
-    return true;
-}
-
-CSolutionInfo CVRPSolver::generateInitialSolution() {
-    CSolutionInfo initialSolution;
-    PGR_LOG("Inside gen ini sol");
-    std::vector<int> vecOrders, vecVehicles;
-    for (unsigned int i = 0; i < m_vOrderInfos.size(); i++) {
-        vecOrders.push_back(m_vOrderInfos[i].getOrderId());
-    }
-
-    for (unsigned int i = 0; i < m_vVehicleInfos.size(); i++) {
-        vecVehicles.push_back(m_vVehicleInfos[i].getId());
-    }
-
-    initialSolution.init(vecOrders, static_cast<int>(vecOrders.size()), vecVehicles);
-
-    int iUnusedVehicles = static_cast<int>(initialSolution.getUnusedVehicleCount());
-    int iUnservedOrders = static_cast<int>(initialSolution.getUnservedOrderCount());  // m_viUnservedOrderIndex.size();
-    PGR_LOG("before while");
-    while (iUnusedVehicles &&  iUnservedOrders) {
-        CTourInfo curTour;
-
-        int vehicleIndex = rand() % iUnusedVehicles--;
-        int vehicleInd = m_mapVehicleIdToIndex[initialSolution.getUnusedVehicleAt(vehicleIndex)];
-        curTour.setVehicleInfo(m_vVehicleInfos[vehicleInd]);  // m_viUnusedVehicleIndex[vehicleIndex]
-        initialSolution.removeVehicle(vehicleIndex);
-
-        curTour.setStartDepot(m_vDepotInfos[0].getDepotId());
-        curTour.setEndDepot(m_vDepotInfos[0].getDepotId());
-
-        // use a random seed to start to tour. (we can use better approach in future)
-
-        bool insertAvailable = true;
-
-        while (insertAvailable) {
-            insertAvailable = false;
-            std::pair<int, int> PotentialInsert;  //  first = insert_index, second = removed_order_index;
-            std::pair<int, double> bestInsert = std::make_pair(-1, DOUBLE_MAX);  // first = order_insert_index, second = cost;
-
-            for (int i = 0; i < iUnservedOrders; ++i) {
-                int orderInd = m_mapOrderIdToIndex[initialSolution.getUnservedOrderAt(i)];
-                COrderInfo curOrder = m_vOrderInfos[orderInd];
-                std::pair<int, double> curInsert = getPotentialInsert(curTour, curOrder);
-
-                if (curInsert.second < bestInsert.second) {
-                    insertAvailable = true;
-                    bestInsert = curInsert;
-                    PotentialInsert = std::make_pair(curInsert.first, i);
-                }
-            }
-            if (insertAvailable) {
-                if (insertOrder(curTour, initialSolution.getUnservedOrderAt(PotentialInsert.second), PotentialInsert.first)) {
-                    iUnservedOrders--;
-                    initialSolution.removeOrder(PotentialInsert.second);
-                }
-            }
-        }
-
-        initialSolution.addTour(curTour);
-    }
-
-    return initialSolution;
-}
-
-bool CVRPSolver::updateFinalSolution(CSolutionInfo& curSolution) {
-    bool callUpdate = false;
-    if (curSolution.getOrderServed() > m_solutionFinal.getOrderServed()) {
-        callUpdate = true;
-    } else if (curSolution.getOrderServed() == m_solutionFinal.getOrderServed()) {
-        if (curSolution.getTotalCost() < m_solutionFinal.getTotalCost()) {
-            callUpdate = true;
-        } else if (curSolution.getTotalCost() == m_solutionFinal.getTotalCost()) {
-            if (curSolution.getTotalTravelTime() < m_solutionFinal.getTotalTravelTime()) {
-                callUpdate = true;
-            } else if (curSolution.getTotalTravelTime() == m_solutionFinal.getTotalTravelTime()) {
-                if (curSolution.getTotalDistance() < m_solutionFinal.getTotalDistance()) {
-                    callUpdate = true;
-                }
-            }
-        }
-    }
-    if (callUpdate) {
-        // m_iStepsSinceLastSolution = 0;
-        m_solutionFinal = curSolution;
-
-        // clear map and delete objects
-        // m_mpTabuCount.clear();
-        // for (std::map< CVRPTWMove*, int >::iterator it = m_mpMoveFrequency.begin();it!= m_mpMoveFrequency.end();++it)
-        // {
-        //  delete (*it).first;
-        // }
-        // m_mpMoveFrequency.clear();
-        return true;
-    }
-    return false;
-}
-
-std::pair<int, double> CVRPSolver::getPotentialInsert(CTourInfo& curTour, COrderInfo& curOrder) {
-    std::pair<int, double> bestInsert = std::make_pair(-1, DOUBLE_MAX);
-    if (curOrder.getOrderUnit() > curTour.getRemainingCapacity()) {
-        return bestInsert;
-    }
-    // check if ith position insert is fisible.
-    std::vector<int> vecOrderId = curTour.getOrderVector();
-    for (unsigned int i = 0; i <= vecOrderId.size(); ++i) {
-        CostPack costToOrder, costFromOrder;
-
-        if (!i) {
-            costToOrder = getDepotToOrderCost(curTour.getStartDepot(), curOrder.getOrderId());
-        } else {
-            costToOrder = getOrderToOrderCost(vecOrderId[i-1], curOrder.getOrderId());
-        }
-
-        double dArrivalTime = costToOrder.traveltime + curTour.getStartTime(i);
-
-        if (dArrivalTime > curOrder.getCloseTime()) {
-            continue;
-        }
-
-        if (i == vecOrderId.size()) {
-            costFromOrder = getOrderToDepotCost(curOrder.getOrderId(), curTour.getEndDepot());
-        } else {
-            costFromOrder = getOrderToOrderCost(curOrder.getOrderId(), vecOrderId[i]);
-        }
-
-        dArrivalTime += curOrder.getServiceTime() + costFromOrder.traveltime;
-
-        if (i < vecOrderId.size() &&  dArrivalTime > m_vOrderInfos[m_mapOrderIdToIndex[vecOrderId[i]]].getCloseTime()) {
-            continue;
-        }
-
-        CostPack totalCost = getCostForInsert(curTour, curOrder, i);
-
-        if (totalCost.cost < bestInsert.second) {
-            bestInsert = std::make_pair(i, totalCost.cost);
-        }
-    }
-    return bestInsert;
-}
-
-bool CVRPSolver::tabuSearch(CSolutionInfo& curSolution) {
-    m_bFoundOptimal = false;
-    updateFinalSolution(curSolution);
-
-    int numberOfSearch = 0;
-    m_iGeneratedSolutionCount = 0;
-    m_iStepsSinceLastSolution = 0;
-
-    while (numberOfSearch < TOTAL_NUMBER_OF_SEARCH) {
-        // applyBestMoveInCurrentSolution(curSolution, identifyPotentialMove(curSolution) );
-        insertUnservedOrders(curSolution);
-        // attemptFeasibleNodeExchange(curSolution);
-        attemptVehicleExchange(curSolution);
-        ++numberOfSearch;
-    }
-    return false;
-}
-
-void CVRPSolver::applyBestMoveInCurrentSolution(CSolutionInfo& curSolution, CMoveInfo& bestMove) {
-    ++m_iGeneratedSolutionCount;
-    ++m_iStepsSinceLastSolution;
-
-    updateTabuCount(bestMove);
-
-    int totalTour = static_cast<int>(bestMove.getModifiedTourCount());
-    for (int i = 0; i < totalTour; ++i) {
-        CTourInfo tourInfo;
-        bool bIsValid = bestMove.getModifiedTourAt(i, tourInfo);
-
-        if (bIsValid)
-            curSolution.replaceTour(tourInfo);
-    }
-    updateFinalSolution(curSolution);
-}
-
-void CVRPSolver::insertUnservedOrders(CSolutionInfo& curSolution) {
-    ++m_iGeneratedSolutionCount;
-    ++m_iStepsSinceLastSolution;
-    bool insertAvailable = true;
-    CMoveInfo curMove;
-    int totalUnservedOrder = static_cast<int>(m_vOrderInfos.size() - curSolution.getOrderServed());
-
-    while (insertAvailable &&  totalUnservedOrder > 0) {
-        int insertTourId = -1;
-        insertAvailable = false;
-        int totalTour = static_cast<int>(curSolution.getTourInfoVector().size());
-        std::pair<int, int> PotentialInsert;  //  first = insert_index, second = removed_customer_index;
-        std::pair<int, double> bestInsert = std::make_pair(-1, DOUBLE_MAX);  // first = customer_insert_index, second = cost;
-
-        for (int j = 0; j < totalTour; ++j) {
-            CTourInfo curTour = curSolution.getTour(j);
-            curMove.setInitialTour(curTour);
-
-            for (int i = 0; i < totalUnservedOrder; ++i) {
-                int ordIndex = m_mapOrderIdToIndex[curSolution.getUnservedOrderAt(i)];
-                COrderInfo curOrder = m_vOrderInfos[ordIndex];
-                std::pair<int, double> curInsert = getPotentialInsert(curTour, curOrder);
-
-                insertOrder(curTour, i, curInsert.first);
-                curMove.setModifiedTour(curTour);
-                curMove.getInitialTour(curTour);
-
-                // check if current move is tabu.
-                if (isTabuMove(curMove)) {
-                    continue;
-                }
-
-                if (curInsert.second < bestInsert.second) {
-                    insertTourId = j;
-                    insertAvailable = true;
-                    bestInsert = curInsert;
-                    PotentialInsert = std::make_pair(curInsert.first, i);
-                }
-            }
-        }
-        if (insertAvailable) {
-            totalUnservedOrder--;
-            curMove.setInitialTour(curSolution.getTour(insertTourId));
-
-            addOrderAtTour(curSolution, insertTourId,
-                    PotentialInsert.first,
-                    PotentialInsert.second);
-
-            curMove.setModifiedTour(curSolution.getTour(insertTourId));
-            this->updateTabuCount(curMove);
-            this->updateFinalSolution(curSolution);  // this->evaluateCurrentSolution();
-        }
-    }
-}
-
-bool CVRPSolver::addDepot(CDepotInfo depotInfo) {
-    int id = depotInfo.getDepotId();
-    if (m_mapDepotIdToIndex.find(id) != m_mapDepotIdToIndex.end())
-        return false;
-    m_mapDepotIdToIndex.insert(std::make_pair(id, m_vDepotInfos.size()));
-    m_vDepotInfos.push_back(depotInfo);
-
-    return true;
-}
-
-bool CVRPSolver::addOrder(COrderInfo orderInfo) {
-    int id = orderInfo.getOrderId();
-    if (m_mapOrderIdToIndex.find(id) != m_mapOrderIdToIndex.end()) {
-        return false;
-    }
-    int index = static_cast<int>(m_vOrderInfos.size());
-    m_mapOrderIdToIndex.insert(std::make_pair(id, index));
-    m_vOrderInfos.push_back(orderInfo);
-    m_viUnservedOrderIndex.push_back(index);
-    return true;
-}
-
-bool CVRPSolver::addVehicle(CVehicleInfo vehicleInfo) {
-    int id = vehicleInfo.getId();
-    if (m_mapVehicleIdToIndex.find(id) != m_mapVehicleIdToIndex.end()) {
-        return false;
-    }
-    int index = static_cast<int>(m_vVehicleInfos.size());
-    m_mapVehicleIdToIndex.insert(std::make_pair(id, index));
-    m_vVehicleInfos.push_back(vehicleInfo);
-    m_viUnusedVehicleIndex.push_back(index);
-    return true;
-}
-
-bool CVRPSolver::addDepotToOrderCost(int depotId, int orderId, CostPack cost) {
-    PII depo_order = std::make_pair(depotId, orderId);
-    if (m_mapDepotToOrderrCost.find(depo_order) != m_mapDepotToOrderrCost.end()) {
-        return false;
-    }
-    m_mapDepotToOrderrCost.insert(make_pair(depo_order, cost));
-    return true;
-}
-
-bool CVRPSolver::addOrderToDepotCost(int depotId, int orderId, CostPack cost) {
-    PII depo_order = std::make_pair(orderId, depotId);
-    if (m_mapOrderToDepotCost.find(depo_order) != m_mapOrderToDepotCost.end()) {
-        return false;
-    }
-    m_mapOrderToDepotCost.insert(std::make_pair(depo_order, cost));
-    return true;
-}
-
-bool CVRPSolver::addOrderToOrderCost(int firstOrder, int secondOrder, CostPack cost) {
-    PII order_order = std::make_pair(firstOrder, secondOrder);
-    if (m_mapOrderToOrderCost.find(order_order) != m_mapOrderToOrderCost.end()) {
-        return false;
-    }
-    m_mapOrderToOrderCost.insert(std::make_pair(order_order, cost));
-    return true;
-}
-
-bool CVRPSolver::getSolution(CSolutionInfo& solution, std::string& strError) {
-    if (m_bIsSolutionReady == true) {
-        solution = m_solutionFinal;
-        return true;
-    } else {
-        bool ret = solveVRP(strError);
-        if (ret == true) {
-            solution = m_solutionFinal;
-            return true;
-        }
-        return false;
-    }
-}
-
-CostPack CVRPSolver::getDepotToOrderCost(int depotId, int orderId) {
-    PII depo_order = std::make_pair(depotId, orderId);
-
-    if (m_mapDepotToOrderrCost.find(depo_order) != m_mapDepotToOrderrCost.end()) {
-        return(m_mapDepotToOrderrCost[depo_order]);
-    }
-    CostPack ret;
-    ret.cost = ret.distance = ret.traveltime = 1e15;
-    return ret;
-}
-
-CostPack CVRPSolver::getOrderToOrderCost(int orderId1, int orderId2) {
-    PII order_order = std::make_pair(orderId1, orderId2);
-
-    if (m_mapOrderToOrderCost.find(order_order) != m_mapOrderToOrderCost.end()) {
-        return(m_mapOrderToOrderCost[order_order]);
-    }
-    CostPack ret;
-    ret.cost = ret.distance = ret.traveltime = 1e15;
-    return ret;
-}
-
-
-CostPack CVRPSolver::getOrderToDepotCost(int depotId, int orderId) {
-    PII depo_order = std::make_pair(orderId, depotId);
-
-    if (m_mapOrderToDepotCost.find(depo_order) != m_mapOrderToDepotCost.end()) {
-        return(m_mapOrderToDepotCost[depo_order]);
-    }
-    CostPack ret;
-    ret.cost = ret.distance = ret.traveltime = 1e15;
-    return ret;
-}
-
-bool CVRPSolver::insertOrder(CTourInfo& tourInfo, int orderId, int pos) {
-    if (pos < 0 ||  (unsigned int) pos > tourInfo.getOrderVector().size())
-        return false;
-
-    int orderIndex = m_mapOrderIdToIndex[orderId];
-    if (!tourInfo.getVehicleInfo().loadUnit(m_vOrderInfos[orderIndex].getOrderUnit()))
-        return false;
-    tourInfo.insertOrder(orderId, pos);
-
-    if (!updateTourCosts(tourInfo)) {
-        tourInfo.removeOrder(pos);
-        return false;
-    }
-
-    return true;
-}
-
-bool CVRPSolver::updateTourCosts(CTourInfo& tourInfo) {
-    std::vector<int> vecOrderId = tourInfo.getOrderVector();
-    std::vector<int> vecStartTimes;
-
-    double dCost, dDistance, dTravelTime;
-    dCost = dDistance = dTravelTime = 0.0;
-
-    CostPack cPack = getDepotToOrderCost(tourInfo.getStartDepot(), vecOrderId[0]);
-
-    dCost += cPack.cost;
-    dDistance += cPack.distance;
-
-    int ind = m_mapOrderIdToIndex[vecOrderId[0]];
-    vecStartTimes.push_back(0);
-
-    if (dTravelTime + cPack.traveltime > m_vOrderInfos[ind].getCloseTime())
-        return false;
-
-    dTravelTime = (std::max)(dTravelTime + cPack.traveltime + m_vOrderInfos[ind].getServiceTime(),
-            static_cast<double>(m_vOrderInfos[ind].getOpenTime() + m_vOrderInfos[ind].getServiceTime()));
-    vecStartTimes.push_back(static_cast<int>(ceil(dTravelTime)));
-
-    unsigned int i;
-    for (i = 1; i < vecOrderId.size(); i++) {
-        cPack = getOrderToOrderCost(vecOrderId[i - 1], vecOrderId[i]);
-        dCost += cPack.cost;
-        dDistance += cPack.distance;
-
-        ind = m_mapOrderIdToIndex[vecOrderId[i]];
-
-        if (dTravelTime + cPack.traveltime > m_vOrderInfos[ind].getCloseTime())
-            return false;
-
-        dTravelTime = (std::max)(dTravelTime + cPack.traveltime + m_vOrderInfos[ind].getServiceTime(),
-                static_cast<double>(m_vOrderInfos[ind].getOpenTime() + m_vOrderInfos[ind].getServiceTime()));
-
-        vecStartTimes.push_back(static_cast<int>(ceil(dTravelTime)));
-    }
-
-    cPack = getOrderToDepotCost(vecOrderId[i - 1], tourInfo.getEndDepot());
-    dCost += cPack.cost;
-    dDistance += cPack.distance;
-
-    dTravelTime += cPack.traveltime;
-
-    vecStartTimes.push_back(static_cast<int>(ceil(dTravelTime)));
-    ind = m_mapDepotIdToIndex[tourInfo.getEndDepot()];
-    if (dTravelTime > m_vDepotInfos[ind].getCloseTime())
-        return false;
-
-    tourInfo.updateCost(dCost, dDistance, dTravelTime);
-
-    tourInfo.setStartTime(vecStartTimes);
-
-    return true;
-}
-
-bool CVRPSolver::addOrderAtTour(CSolutionInfo &solutionInfo, int tourIndex, int insertIndex, int orderIndex) {
-    return(insertOrder(solutionInfo.getTour(tourIndex), m_vOrderInfos[orderIndex].getOrderId(), insertIndex));
-}
-
-CostPack CVRPSolver::getCostForInsert(CTourInfo& curTour, COrderInfo& curOrder, int pos) {
-    std::vector<int> vecOrderId = curTour.getOrderVector();
-
-    vecOrderId.insert(vecOrderId.begin() + pos, curOrder.getOrderId());
-    double dCost, dDistance, dTravelTime;
-    dCost = dDistance = dTravelTime = 0.0;
-    CostPack costRet;
-
-    costRet.cost = INF;
-    costRet.distance = INF;
-    costRet.traveltime = INF;
-
-    CostPack cPack = getDepotToOrderCost(curTour.getStartDepot(), vecOrderId[0]);
-
-    dCost += cPack.cost;
-    dDistance += cPack.distance;
-
-    int ind = m_mapOrderIdToIndex[vecOrderId[0]];
-
-    if (dTravelTime + cPack.traveltime > m_vOrderInfos[ind].getCloseTime())
-        return costRet;
-
-    dTravelTime = (std::max)(dTravelTime + cPack.traveltime + m_vOrderInfos[ind].getServiceTime(),
-            static_cast<double>(m_vOrderInfos[ind].getOpenTime() + m_vOrderInfos[ind].getServiceTime()));
-
-    unsigned int i;
-    for (i = 1; i < vecOrderId.size(); i++) {
-        cPack = getOrderToOrderCost(vecOrderId[i - 1], vecOrderId[i]);
-        dCost += cPack.cost;
-        dDistance += cPack.distance;
-
-        ind = m_mapOrderIdToIndex[vecOrderId[i]];
-
-        if (dTravelTime + cPack.traveltime > m_vOrderInfos[ind].getCloseTime())
-            return costRet;
-
-        dTravelTime = (std::max)(dTravelTime + cPack.traveltime + m_vOrderInfos[ind].getServiceTime(),
-                static_cast<double>(m_vOrderInfos[ind].getOpenTime() + m_vOrderInfos[ind].getServiceTime()));
-    }
-
-    cPack = getOrderToDepotCost(vecOrderId[i - 1], curTour.getEndDepot());
-    dCost += cPack.cost;
-    dDistance += cPack.distance;
-
-    dTravelTime += cPack.traveltime;
-
-    ind = m_mapDepotIdToIndex[curTour.getEndDepot()];
-    if (dTravelTime > m_vDepotInfos[ind].getCloseTime())
-        return costRet;
-
-    costRet.cost = dCost - curTour.getCost();
-    costRet.distance = dDistance - curTour.getDistance();
-    costRet.traveltime = dTravelTime - curTour.getTravelTime();
-
-    return costRet;
-}
-
-void CVRPSolver::attemptVehicleExchange(CSolutionInfo& solutionInfo) {
-    ++m_iGeneratedSolutionCount;
-    ++m_iStepsSinceLastSolution;
-    CMoveInfo curMove;
-    CMoveInfo bestMove;
-
-    int bestFreeCapacity = 0;
-    std::pair<int, int> bestSwapIndex;
-    int totalTour = static_cast<int>(solutionInfo.getTourCount());
-
-    for (int i = 0; i < totalTour; ++i) {
-        CTourInfo firstTour = solutionInfo.getTour(i);
-        int firstTourLoad = firstTour.getVehicleInfo().getCurrentLoad();
-        int firstVehicleCapacity = firstTour.getVehicleInfo().getCapacity();
-
-        for (int j = i + 1; j < totalTour; ++j) {
-            CTourInfo secondTour = solutionInfo.getTour(j);
-            curMove.setInitialTour(firstTour, secondTour);
-
-            int FirstTourRemainingCapacity = firstVehicleCapacity - secondTour.getVehicleInfo().getCurrentLoad();
-
-            int SecondTourRemainingCapacity = secondTour.getVehicleInfo().getCapacity() - firstTourLoad;
-
-            // int prevFreeCapacity = max(secondTour.getRemainingCapacity(), firstTour.getRemainingCapacity() );
-
-            int curFreeCapacity = (std::max)(FirstTourRemainingCapacity, SecondTourRemainingCapacity);
-
-            if ((FirstTourRemainingCapacity > 0) &&  (SecondTourRemainingCapacity > 0) &&
-                    // curFreeCapacity > curFreeCapacity autological compare evaluates to false (error on MAC)
-                    (curFreeCapacity > bestFreeCapacity)) {
-                CVehicleInfo tempVehicle = m_vVehicleInfos[firstTour.getVehicleId()];
-                firstTour.setVehicleInfo(m_vVehicleInfos[secondTour.getVehicleId()]);
-                secondTour.setVehicleInfo(tempVehicle);
-
-                curMove.setModifiedTour(firstTour, secondTour);
-
-                if (!isTabuMove(curMove)) {
-                    bestMove = curMove;
-                    bestFreeCapacity = curFreeCapacity;
-                    bestSwapIndex = std::make_pair(i, j);
-                }
-
-                curMove.getInitialTour(firstTour, secondTour);
-            }
-        }
-    }
-    if (bestFreeCapacity > 0) {
-        CTourInfo tempTour;
-        bestMove.getModifiedTourAt(0, tempTour);
-        solutionInfo.replaceTourAt(bestSwapIndex.first, tempTour);
-        bestMove.getModifiedTourAt(1, tempTour);
-        solutionInfo.replaceTourAt(bestSwapIndex.second, tempTour);
-        updateTabuCount(bestMove);
-        updateFinalSolution(solutionInfo);
-    }
-}
-#if 0
-void CVRPSolver::attemptFeasibleNodeExchange(CSolutionInfo& solutionInfo) {
-    ++m_iGeneratedSolutionCount;
-    ++m_iStepsSinceLastSolution;
-    CMoveInfo bestMove, curMove;
-
-    int totalTour = solutionInfo.getTourCount();
-
-    for (int i = 0; i < totalTour; ++i) {
-        CTourInfo curTour = solutionInfo.getTour(i);
-        std::vector<int> vecOrderId = curTour.getOrderVector();
-        curMove.setInitialTour(curTour);
-        int totalCustomer = curTour.getServedOrderCount();
-        std::pair<int, int> bestSwapIndex;
-        double lowestCost = DOUBLE_MAX;
-
-        for (int j = 0; j < totalCustomer; ++j) {
-            for (int k = j + 1; k < totalCustomer; ++k) {
-                COrderInfo firstCustomer = m_vOrderInfos[m_mapOrderIdToIndex[vecOrderId[j]]];
-                COrderInfo secondCustomer = m_vOrderInfos[m_mapOrderIdToIndex[vecOrderId[k]]];
-
-                if (curTour->isFeasibleReplace(j, pSecondCustomer) &&  pCurTour->isFeasibleReplace(k, pFirstCustomer)) {
-                    pCurTour->removeCustomer(j, false);
-                    pCurTour->addCustomer(pSecondCustomer, j);
-
-                    pCurTour->removeCustomer(k, false);
-                    pCurTour->addCustomer(pFirstCustomer, k);
-
-                    pCurMove->setModifiedTour(pCurTour);
-                    if (isTabuMove(pCurMove)) {
-                        pCurMove->getInitialTour(pCurTour);
-                        continue;
-                    }
-
-                    double curTourCost = pCurTour->getTourData()->calcCost(pCurTour->getAssignedVehicle());
-                    if (curTourCost < lowestCost) {
-                        *pBestMove = *pCurMove;
-                        lowestCost = curTourCost;
-                        bestSwapIndex = std::make_pair(j, k);
-                    }
-                    pCurMove->getInitialTour(pCurTour);
-                }
-            }
-        }
-
-        if (lowestCost!= DOUBLE_MAX) {
-            m_pCurrentSolution->replaceTourAt(i, pBestMove->getModifiedTourAt(0));
-            this->updateTabuCount(pBestMove);
-            this->evaluateCurrentSolution();
-        }
-    }
-    delete pCurMove;
-    delete pBestMove;
-}
-#endif
-
-void CVRPSolver::updateTabuCount(CMoveInfo& bestMove) {
-    m_veMoves.push_back(bestMove);
-#if 0
-    bestMove.reverseMove();
-    CMoveInfo curMove;
-
-    std::map< CMoveInfo, int >::iterator mpIt = m_mapMoveFrequency.find(bestMove);
-
-    if (mpIt == m_mapMoveFrequency.end()) {
-        curMove = bestMove;
-    } else {
-        curMove = (*mpIt).first;
-    }
-
-    m_mapMoveFrequency[curMove]++;
-
-    if (m_mapMoveFrequency[curMove] >= MAXIMUM_MOVE_FREQUENCY) {
-        CMoveInfo tmpMove;
-        std::set<CMoveInfo>::iterator sIt = m_sTabuList.find(curMove);
-
-        CMoveInfo tmpMove2;
-        if (sIt == m_sTabuList.end()) {
-            tmpMove2 = curMove;
-        } else {
-            tmpMove2 = (*sIt);
-        }
-        m_sTabuList.insert(tmpMove2);
-    }
-    m_mapTabuCount[curMove] = std::make_pair(m_iGeneratedSolutionCount, m_iStepsSinceLastSolution);
-    bestMove.reverseMove();
-    */
-#endif
-}
-
-bool CVRPSolver::isTabuMove(CMoveInfo& curMove) {
-    size_t i, tot = m_veMoves.size();
-    for (i = 0; i < tot; i++) {
-        if (curMove == m_veMoves[i])
-            return true;
-    }
-    return false;
-}
diff --git a/src/vrp_basic/src/VRP_Solver.h b/src/vrp_basic/src/VRP_Solver.h
deleted file mode 100644
index 2aa487e..0000000
--- a/src/vrp_basic/src/VRP_Solver.h
+++ /dev/null
@@ -1,414 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2013 Khondoker Md. Razequl Islam
-ziboncsedu at gmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifndef SRC_VRP_BASIC_SRC_VRP_SOLVER_H_
-#define SRC_VRP_BASIC_SRC_VRP_SOLVER_H_
-
-#pragma once
-
-#include <cstdlib>
-#include <vector>
-#include <map>
-#include <utility>
-#include <string>
-#include <math.h>
-
-#define MAXIMUM_TRY 15
-#define TOTAL_NUMBER_OF_SEARCH 15
-#define MAXIMUM_MOVE_FREQUENCY 15
-
-#define INF (1e15)
-
-typedef std::pair<int, int> PII;
-
-//  Structure for Point, Geo coordinates can be represented with it
-typedef struct {
-  double X, Y;
-}Point;
-
-//  Structure to keep cost, distance and traveltime. If distance/ traveltime is missing, there may be a negative flag
-typedef struct {
-    double cost, distance, traveltime;
-}CostPack;
-
-
-//  Class for holding vehicle information which consist of capacity, and cost_per_km
-//  For first version we will use homogeneous cost
-class CVehicleInfo {
- public:
-     CVehicleInfo();
-     ~CVehicleInfo();
-
-     bool init();
-
-     bool loadUnit(int lUnit);
-     bool unloadUnit(int lUnit);
-     int getRemainingCapacity() {return (m_iCapacity - m_iCurrentLoad);}
-
-     int getCurrentLoad() {return m_iCurrentLoad;}
-
-     int getCapacity() {return m_iCapacity;}
-     void setCapacity(int capacity) {m_iCapacity = capacity;}
-
-     int getId() {return (this->m_iVehicleId);}
-     void setId(int id) {m_iVehicleId = id;}
-
-     double getCostPerKM() {return m_dCostPerKM;}
-     void setCostPerKM(double cost) {m_dCostPerKM = cost;}
-
-     friend bool operator != (const CVehicleInfo& cur, const CVehicleInfo& that);
-
-
-     // CVehicleInfo( CVehicleInfo const& );
-     // CVehicleInfo& operator = (const CVehicleInfo& vehicleInfo);
-
- private:
-     int m_iCapacity;
-     int m_iCurrentLoad;
-     int m_iVehicleId;
-     double m_dCostPerKM;
-};
-
-
-
-//  Class to represent Orders. Each order is consist of open_time, close_time and sevice_time, its location and number of units ordered.
-class COrderInfo {
- public:
-     COrderInfo();
-     ~COrderInfo();
-
-     int getOpenTime() {return m_iOrderOpenTime;}
-     void setOpenTime(int openTime) {m_iOrderOpenTime = openTime;}
-
-     int getCloseTime() {return m_iOrderCloseTime;}
-     void setCloseTime(int closeTime) {m_iOrderCloseTime = closeTime;}
-
-     int getServiceTime() {return m_iOrderServiceTime;}
-     void setServiceTime(int serviceTime) {m_iOrderServiceTime = serviceTime;}
-
-     int getOrderUnit() {return m_iOrderUnitCount;}
-     void setOrderUnit(int orderUnit) {m_iOrderUnitCount = orderUnit;}
-
-     Point getOrderLocation() {return m_ptOrderLocation;}
-     void setOrderLocation(Point location) {m_ptOrderLocation = location;}
-
-     int getOrderId() {return m_iOrderId; }
-     void setOrderId(int orderId) {m_iOrderId = orderId;}
-
-
-     // COrderInfo( COrderInfo const& );
-     // COrderInfo& operator = (const COrderInfo& solution);
-
- private:
-     int m_iOrderOpenTime;
-     int m_iOrderCloseTime;
-     int m_iOrderServiceTime;
-     int m_iOrderUnitCount;
-     int m_iOrderId;
-
-     Point m_ptOrderLocation;
-};
-
-
-//  Class to represent Depot information. Each depot will have it's Open_Time and Close_Time. The Depot that will open earliest will have open time 0
-//  and all other time will be normalized with respect to it. For the first version there will be only one depot
-class CDepotInfo {
- public:
-     CDepotInfo();
-     ~CDepotInfo();
-
-     int getOpenTime() {return m_iDepotOpenTime;}
-     void setOpenTime(int openTime) {m_iDepotOpenTime = openTime;}
-
-     int getCloseTime() {return m_iDepotCloseTime;}
-     void setCloseTime(int closeTime) {m_iDepotCloseTime = closeTime;}
-
-     int getDepotId() {return m_iDepotId;}
-     void setDepotId(int id) {m_iDepotId = id;}
-
-     Point getDepotLocation() {return m_ptDepotLocation;}
-     void setDepotLocation(Point location) {m_ptDepotLocation = location;}
-
-     // CDepotInfo( CDepotInfo const& );
-     // CDepotInfo& operator = (const CDepotInfo& solution);
-
- private:
-     int m_iDepotOpenTime;
-     int m_iDepotCloseTime;
-
-     int m_iDepotId;
-
-     Point m_ptDepotLocation;
-};
-
-//  Class to represent information of a Tour. A Tour starts from a depot and ends in a depot. On the way it serves several orders.
-//  Each Tour has a vehicle ID and the list of Orders it serves in appropriate order. It also has the total Distance, Cost and Time assciated.
-class CTourInfo {
- public:
-     CTourInfo();
-     ~CTourInfo();
-
-     void init();
-
-     int getRemainingCapacity();
-
-     int getVehicleId() {return m_vehicleInfo.getId();}
-
-     CVehicleInfo& getVehicleInfo() {return m_vehicleInfo;}
-     void setVehicleInfo(CVehicleInfo vehicleInfo) {m_vehicleInfo = vehicleInfo;}
-
-     int getStartDepot() {return m_iStartDepotId;}
-     void setStartDepot(int depotId) {m_iStartDepotId = depotId;}
-
-     int getEndDepot() {return m_iEndDepotId;}
-     void setEndDepot(int depotId) {m_iEndDepotId = depotId;}
-
-     size_t getServedOrderCount() {return m_viOrderIds.size();}
-
-     void updateCost(double cost, double distance, double travelTime);
-
-     void setStartTime(std::vector<int> vStartTime) {m_viStartTime = vStartTime;}
-
-
-     bool insertOrder(int orderId, int pos);
-     bool removeOrder(int pos);
-
-
-     double getDistance() {return m_dTotalDistance;}
-
-     double getCost() {return m_dTotalCost;}
-
-     double getTravelTime() {return m_dTotalTraveltime;}
-
-     std::vector<int> getOrderVector() {return m_viOrderIds;}
-
-     int getStartTime(int pos) {
-         if ((unsigned int) pos >= m_viStartTime.size())
-             return 0;
-         else
-             return m_viStartTime[pos];
-     }
-
-     friend bool operator == (const CTourInfo& cur, const CTourInfo& that);
-
-
-     // bool operator != (const CTourInfo& that)
-     //  {
-     //  return(!(*this == that));
-     // }
-
-     // CTourInfo( CTourInfo const& );
-     // CTourInfo& operator = (const CTourInfo& solution);
-
-
- private:
-     CVehicleInfo m_vehicleInfo;
-     int m_iStartDepotId;
-     int m_iEndDepotId;
-     int m_iOrdersServed;
-     std::vector<int> m_viOrderIds;
-     std::vector<int> m_viStartTime;
-     double m_dTotalCost;
-     double m_dTotalDistance;
-     double m_dTotalTraveltime;
-};
-
-
-
-//  This class will represent a solution of a VRP problem. A solution will be consist of multiple tour.
-//  It also contains the number of vehicle used, number of orders served and total cost, distance and traveltime.
-class CSolutionInfo {
- public:
-     CSolutionInfo();
-     ~CSolutionInfo();
-
-     int getVehicleUsed() {return m_iVehicleUsed;}
-     int getOrderServed() {return m_iOrdersServed;}
-     // int getVehicleUsed() {return m_iVehicleUsed;}
-
-     bool addTour(CTourInfo& tour);
-     CTourInfo& getTour(int pos) {return m_vtourAll[pos];}
-
-     size_t getTourCount() {return (m_vtourAll.size());}
-
-     size_t getUnservedOrderCount() {return m_vUnservedOrderId.size();}
-     size_t getUnusedVehicleCount() {return m_vUnusedVehicles.size();}
-
-     int getUnusedVehicleAt(int pos) {return m_vUnusedVehicles[pos];}
-
-     void removeVehicle(int pos) {m_vUnusedVehicles.erase(m_vUnusedVehicles.begin() + pos);}
-     void removeOrder(int pos) {m_vUnservedOrderId.erase(m_vUnservedOrderId.begin() + pos);}
-
-     double getTotalCost() {return m_dTotalCost;}
-     double getTotalDistance() {return m_dTotalDistance;}
-     double getTotalTravelTime() {return m_dTotalTravelTime;}
-     int getUnservedOrderAt(int pos) {return m_vUnservedOrderId[pos];}
-     // void addOrderAtTour(int tourIndex, int insertIndex, int orderIndex);
-
-     void replaceTourAt(int index, CTourInfo curTour);
-     void replaceTour(CTourInfo curTour);
-
-     bool init(std::vector<int> vecOrder, int iTotalOrder, std::vector<int> vecVehicle);
-
-     std::vector<CTourInfo> getTourInfoVector() {return m_vtourAll;}
-
-     // CTourInfo( CTourInfo const& );
-     // CTourInfo& operator = (const CTourInfo& solution);
-
- private:
-     std::vector<CTourInfo> m_vtourAll;
-     std::vector<int> m_vUnservedOrderId;
-     std::vector<int> m_vUnusedVehicles;
-     int m_iVehicleUsed;
-     int m_iOrdersServed;
-     int m_iTotalOrders;
-     double m_dTotalCost;
-     double m_dTotalDistance;
-     double m_dTotalTravelTime;
-};
-
-class CMoveInfo {
- public:
-     CMoveInfo();
-     ~CMoveInfo();
-
-     bool isBetter(CMoveInfo *pVRPMove);
-
-     void reverseMove();
-     void setInitialTour(CTourInfo pTourData);
-     void setInitialTour(CTourInfo pTourData1, CTourInfo pTourData2);
-     void setModifiedTour(CTourInfo pTourData);
-     void setModifiedTour(CTourInfo pTourData1, CTourInfo pTourData2);
-
-     bool getModifiedTourAt(int index, CTourInfo& tourInfo);
-     size_t getModifiedTourCount() const { return m_vModifiedTour.size();}
-     double getModifiedTourCost() const;
-     void getInitialTour(CTourInfo &TourData);
-     void getInitialTour(CTourInfo &TourData1, CTourInfo &TourData2);
-
-     friend bool operator == (const CMoveInfo& cur, const CMoveInfo& that);
-
-
-     // bool operator != (const CMoveInfo& that)
-     //  {
-     //  return(!(*this == that));
-     // }
-
-     // CMoveInfo( CMoveInfo const& );
-     // CMoveInfo& operator = (const CMoveInfo& solution);
-
- private:
-     void clearInitialTour();
-     void clearModifiedTour();
-
-     std::vector<CTourInfo> m_vInitialTour;
-     std::vector<CTourInfo> m_vModifiedTour;
-};
-
-
-
-
-//  This is the main class that will solve the VRP problem. It will use the previous classes to represent the problem and the solution.
-//  It will also have pre generated point to point distance/ cost/ traveltime information in maps.
-class CVRPSolver {
- public:
-     CVRPSolver();
-     ~CVRPSolver();
-
-     bool init();
-
-     bool addDepot(CDepotInfo depotInfo);
-     bool addOrder(COrderInfo orderInfo);
-     bool addVehicle(CVehicleInfo vehicleInfo);
-
-     CostPack getOrderToOrderCost(int firstOrder, int secondOrder);
-     CostPack getDepotToOrderCost(int depotId, int orderId);
-     CostPack getOrderToDepotCost(int depotId, int orderId);
-
-     bool addOrderToOrderCost(int firstOrder, int secondOrder, CostPack cost);
-     bool addDepotToOrderCost(int depotId, int orderId, CostPack cost);
-     bool addOrderToDepotCost(int depotId, int orderId, CostPack cost);
-
-     void removeVehicle(int vehicleIndex)
-     {m_viUnusedVehicleIndex.erase(m_viUnusedVehicleIndex.begin() + vehicleIndex, m_viUnusedVehicleIndex.begin() + vehicleIndex+1);}
-
-     void removeOrder(int orderIndex)
-     {m_viUnservedOrderIndex.erase(m_viUnservedOrderIndex.begin() + orderIndex, m_viUnservedOrderIndex.begin() + orderIndex + 1);}
-
-     bool solveVRP(std::string& strError);
-
-     bool getSolution(CSolutionInfo& solution, std::string& strError);
-     CSolutionInfo generateInitialSolution();
-     bool updateFinalSolution(CSolutionInfo& solutionInfo);
-     std::pair<int, double> getPotentialInsert(CTourInfo& curTour, COrderInfo& curOrder);
-     CostPack getCostForInsert(CTourInfo& curTour, COrderInfo& curOrder, int pos);
-     bool tabuSearch(CSolutionInfo& solutionInfo);
-     int getServiceTime(int order_id) {return (m_vOrderInfos[m_mapOrderIdToIndex[order_id]].getServiceTime());}
-
-     bool insertOrder(CTourInfo& tourInfo, int orderId, int pos);
-     void applyBestMoveInCurrentSolution(CSolutionInfo& solutionInfo, CMoveInfo& bestMove);
-     void insertUnservedOrders(CSolutionInfo& solutionInfo);
-     // void attemptFeasibleNodeExchange(CSolutionInfo& solutionInfo);
-     void attemptVehicleExchange(CSolutionInfo& solutionInfo);
-     // CMoveInfo identifyPotentialMove();
-     void updateTabuCount(CMoveInfo& bestMove);
-
-     bool isTabuMove(CMoveInfo& curMove);
-     bool updateTourCosts(CTourInfo& tourInfo);
-     bool addOrderAtTour(CSolutionInfo& solutionInfo, int tourIndex, int insertIndex, int orderIndex);
-
-
- private:
-     bool m_bIsReadyToSolve;
-     std::vector<CVehicleInfo> m_vVehicleInfos;
-     std::vector<COrderInfo> m_vOrderInfos;
-     std::vector<CDepotInfo> m_vDepotInfos;
-
-     std::map<int, int> m_mapOrderIdToIndex;
-     std::map<int, int> m_mapVehicleIdToIndex;
-     std::map<int, int> m_mapDepotIdToIndex;
-
-     std::map<std::pair<int, int>, CostPack> m_mapOrderToOrderCost;
-     std::map<std::pair<int, int>, CostPack> m_mapDepotToOrderrCost;
-     std::map<std::pair<int, int>, CostPack> m_mapOrderToDepotCost;
-
-     /*
-        std::map<CMoveInfo, int> m_mapMoveFrequency;
-        std::map<CMoveInfo, std::pair<int, int> > m_mapTabuCount;
-        std::set<CMoveInfo> m_sTabuList;
-        */
-
-     std::vector<CMoveInfo> m_veMoves;
-
-     bool m_bIsSolutionReady;
-     CSolutionInfo m_solutionFinal;
-
- private:
-     std::vector<int> m_viUnservedOrderIndex;
-     std::vector<int> m_viUnusedVehicleIndex;
-     int m_iGeneratedSolutionCount;
-     int m_iStepsSinceLastSolution;
-     bool m_bFoundOptimal;
-};
-
-#endif  // SRC_VRP_BASIC_SRC_VRP_SOLVER_H_
diff --git a/src/vrp_basic/src/VRP_core.cpp b/src/vrp_basic/src/VRP_core.cpp
deleted file mode 100644
index 7718fe3..0000000
--- a/src/vrp_basic/src/VRP_core.cpp
+++ /dev/null
@@ -1,227 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2013 Khondoker Md. Razequl Islam
-ziboncsedu at gmail.com
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifdef __MINGW32__
-#include <winsock2.h>
-#include <windows.h>
-#endif
-
-
-#include "../../common/src/pgr_alloc.hpp"
-#include "VRP.h"
-#include "VRP_Solver.h"
-#include <vector>
-#include <string>
-#include <exception>
-
-#undef PGR_LOGGER_ON
-#define PGR_LOGGER_LOC
-#define PGR_LOGGER_FILE "/tmp/vrp-debug.log"
-#include "../../common/src/pgr_logger.h"
-
-CVRPSolver solver;
-
-void loadOrders(vrp_orders_t *orders, int order_count, int depotId) {
-    int i;
-    PGR_LOGF("%s: %d\n", "Depot ID", id);
-    for (i = 0; i < order_count; i++) {
-        int id = orders[i].id;
-        PGR_LOGF("%s: %d\n", "Order ID", id);
-        if (id == depotId) {
-            PGR_LOG("Got depot");
-            // This order represents Deopot
-            CDepotInfo depot;
-
-            depot.setDepotId(id);
-
-            Point pt;
-
-            pt.X = orders[i].x;
-            pt.Y = orders[i].y;
-
-            depot.setDepotLocation(pt);
-
-            int openTime = orders[i].open_time;
-            depot.setOpenTime(openTime);
-
-            int closeTime = orders[i].close_time;
-            depot.setCloseTime(closeTime);
-
-            solver.addDepot(depot);
-
-        } else {
-            // This is an order
-            COrderInfo order;
-
-            order.setOrderId(id);
-
-            Point pt;
-
-            pt.X = orders[i].x;
-            pt.Y = orders[i].y;
-
-            order.setOrderLocation(pt);
-
-            int demand = orders[i].order_unit;
-            order.setOrderUnit(demand);
-
-            int openTime = orders[i].open_time;
-            order.setOpenTime(openTime);
-
-            int closeTime = orders[i].close_time;
-            order.setCloseTime(closeTime);
-
-            int serviceTime = orders[i].service_time;
-            order.setServiceTime(serviceTime);
-
-            solver.addOrder(order);
-        }
-    }
-}
-
-void loadVehicles(vrp_vehicles_t *vehicles, int vehicle_count) {
-    int i;
-    for (i = 0; i < vehicle_count; i++) {
-        CVehicleInfo vehicle;
-
-        int id = vehicles[i].id;
-        vehicle.setId(id);
-
-        int capcity = vehicles[i].capacity;
-        vehicle.setCapacity(capcity);
-
-        vehicle.setCostPerKM(1);
-
-        solver.addVehicle(vehicle);
-    }
-}
-
-void loadDistanceMatrix(vrp_cost_element_t *costmatrix, int cost_count, int depotId) {
-    int i;
-    for (i = 0; i < cost_count; i++) {
-        int fromId = costmatrix[i].src_id;
-        int toId = costmatrix[i].dest_id;
-        CostPack cpack;
-        cpack.cost = costmatrix[i].cost;
-        cpack.distance = costmatrix[i].distance;
-        cpack.traveltime = costmatrix[i].traveltime;
-
-        if (fromId == depotId)
-            solver.addDepotToOrderCost(fromId, toId, cpack);
-        else if (toId == depotId)
-            solver.addOrderToDepotCost(fromId, toId, cpack);
-        else
-            solver.addOrderToOrderCost(fromId, toId, cpack);
-    }
-}
-
-
-int find_vrp_solution(vrp_vehicles_t *vehicles, size_t vehicle_count,
-                      vrp_orders_t *orders, size_t order_count,
-                      vrp_cost_element_t *costmatrix, size_t cost_count,
-                      int depot_id,
-                      vrp_result_element_t **results, size_t *result_count, char **err_msg) {
-    int res;
-
-    std::string strError;
-    try {
-        PGR_LOG("Before load order");
-        loadOrders(orders, static_cast<int>(order_count), depot_id);
-        PGR_LOG("After load order");
-        loadVehicles(vehicles, static_cast<int>(vehicle_count));
-        PGR_LOG("After load vehicles");
-        loadDistanceMatrix(costmatrix, static_cast<int>(cost_count), depot_id);
-        PGR_LOG("After load distance matrix");
-        res = solver.solveVRP(strError);
-        PGR_LOG("After VRP Solve");
-    }
-    catch(std::exception& e) {
-        *err_msg = (char *) e.what();
-        return -1;
-    }
-    catch(...) {
-        *err_msg = (char *) "Caught unknown exception!";
-        return -1;
-    }
-
-
-    if (res < 0) {
-        return res;
-    } else {
-        try {
-        CSolutionInfo solution;
-        CTourInfo ctour;
-        // bool bOK =
-                solver.getSolution(solution, strError);
-        auto totalRoute = solution.getTourInfoVector().size();
-        size_t totRows = 0;
-        for (size_t i = 0; i < totalRoute; i++) {
-            totRows += (solution.getTour(static_cast<int>(i)).getServedOrderCount() + 2);
-        }
-        *results = pgr_alloc(totRows, *results);
-        *result_count = totRows;
-        int cnt = 0;
-        for (size_t i = 0; i < totalRoute; i++) {
-            ctour = solution.getTour(static_cast<int>(i));
-            std::vector<int> vecOrder = ctour.getOrderVector();
-            auto totalOrder = vecOrder.size();
-
-            // For start depot
-            (*results)[cnt].order_id = ctour.getStartDepot();
-            (*results)[cnt].order_pos = 0;
-            (*results)[cnt].vehicle_id = ctour.getVehicleId();
-            (*results)[cnt].arrival_time = -1;
-            (*results)[cnt].depart_time = ctour.getStartTime(0);
-            cnt++;
-
-            // For each order
-            for (size_t j = 0; j < totalOrder; j++) {
-                (*results)[cnt].order_id = vecOrder[j];
-                (*results)[cnt].order_pos = static_cast<int>(j) + 1;
-                (*results)[cnt].vehicle_id = ctour.getVehicleId();
-                (*results)[cnt].depart_time = ctour.getStartTime(static_cast<int>(j) + 1);
-                (*results)[cnt].arrival_time = ctour.getStartTime(static_cast<int>(j) + 1) - solver.getServiceTime(vecOrder[j]);
-                cnt++;
-            }
-
-            // For return depot
-            (*results)[cnt].order_id = ctour.getEndDepot();
-            (*results)[cnt].order_pos = static_cast<int>(totalOrder) + 1;
-            (*results)[cnt].vehicle_id = ctour.getVehicleId();
-            (*results)[cnt].arrival_time = ctour.getStartTime(static_cast<int>(totalOrder) + 1);
-            (*results)[cnt].depart_time = -1;
-            cnt++;
-        }
-        }
-        catch(std::exception& e) {
-        *err_msg = (char *) e.what();
-        return -1;
-        }
-        catch(...) {
-        *err_msg = (char *) "Caught unknown exception!";
-        return -1;
-        }
-    }
-    return EXIT_SUCCESS;
-}
-
diff --git a/src/vrp_basic/test/Distance.txt b/src/vrp_basic/test/Distance.txt
deleted file mode 100644
index 370f68c..0000000
--- a/src/vrp_basic/test/Distance.txt
+++ /dev/null
@@ -1,10100 +0,0 @@
-1 2 38.078866
-1 3 30.805844
-1 4 39.357337
-1 5 36.055513
-1 6 40.311289
-1 7 33.301652
-1 8 35.355339
-1 9 39.051248
-1 10 33.541020
-1 11 31.622777
-1 12 33.526109
-1 13 32.388269
-1 14 38.078866
-1 15 35.355339
-1 16 39.293765
-1 17 41.231056
-1 18 40.311289
-1 19 45.177428
-1 20 40.049969
-1 21 35.057096
-1 22 45.000000
-1 23 35.000000
-1 24 45.044423
-1 25 35.057096
-1 26 45.276926
-1 27 58.523500
-1 28 57.008771
-1 29 55.713553
-1 30 52.201533
-1 31 52.000000
-1 32 50.289164
-1 33 51.078371
-1 34 51.478151
-1 35 47.434165
-1 36 44.204072
-1 37 43.011626
-1 38 40.607881
-1 39 37.202150
-1 40 36.055513
-1 41 40.311289
-1 42 30.805844
-1 43 33.541020
-1 44 38.078866
-1 45 35.341194
-1 46 37.735925
-1 47 37.202150
-1 48 38.327536
-1 49 45.044423
-1 50 38.052595
-1 51 35.341194
-1 52 33.541020
-1 53 25.000000
-1 54 20.000000
-1 55 18.027756
-1 56 14.142136
-1 57 18.027756
-1 58 26.925824
-1 59 47.169906
-1 60 42.426407
-1 61 26.925824
-1 62 15.811388
-1 63 29.154759
-1 64 39.051248
-1 65 20.615528
-1 66 11.180340
-1 67 13.038405
-1 68 25.298221
-1 69 10.000000
-1 70 9.219544
-1 71 19.646883
-1 72 25.495098
-1 73 27.459060
-1 74 39.293765
-1 75 36.055513
-1 76 57.008771
-1 77 42.941821
-1 78 49.979996
-1 79 32.557641
-1 80 38.470768
-1 81 7.615773
-1 82 12.041595
-1 83 14.764823
-1 84 19.235384
-1 85 27.018512
-1 86 35.468296
-1 87 32.202484
-1 88 38.209946
-1 89 17.888544
-1 90 52.478567
-1 91 4.242641
-1 92 12.041595
-1 93 14.764823
-1 94 21.095023
-1 95 17.117243
-1 96 20.615528
-1 97 15.524175
-1 98 48.166378
-1 99 14.142136
-1 100 20.518285
-1 101 19.235384
-2 1 38.078866
-2 3 10.440307
-2 4 3.000000
-2 5 7.071068
-2 6 5.000000
-2 7 12.206556
-2 8 14.142136
-2 9 11.180340
-2 10 52.201533
-2 11 47.434165
-2 12 48.104054
-2 13 43.462628
-2 14 53.851648
-2 15 44.721360
-2 16 50.537115
-2 17 51.478151
-2 18 47.169906
-2 19 82.225300
-2 20 76.902536
-2 21 72.034714
-2 22 81.394103
-2 23 71.589105
-2 24 81.049368
-2 25 71.196910
-2 26 80.622577
-2 27 89.022469
-2 28 86.023253
-2 29 86.683332
-2 30 82.006097
-2 31 83.630138
-2 32 80.430094
-2 33 82.879430
-2 34 84.852814
-2 35 78.102497
-2 36 42.000000
-2 37 40.000000
-2 38 40.112342
-2 39 37.336309
-2 40 35.355339
-2 41 35.000000
-2 42 34.481879
-2 43 30.413813
-2 44 30.000000
-2 45 30.149627
-2 46 5.830952
-2 47 8.602325
-2 48 46.141088
-2 49 81.786307
-2 50 74.953319
-2 51 68.622154
-2 52 71.589105
-2 53 55.000000
-2 54 35.355339
-2 55 39.051248
-2 56 25.495098
-2 57 55.901699
-2 58 60.207973
-2 59 75.663730
-2 60 66.708320
-2 61 26.925824
-2 62 28.284271
-2 63 64.031242
-2 64 76.321688
-2 65 58.523500
-2 66 46.097722
-2 67 50.596443
-2 68 58.051701
-2 69 29.154759
-2 70 33.541020
-2 71 18.867962
-2 72 50.000000
-2 73 42.941821
-2 74 33.970576
-2 75 65.192024
-2 76 82.462113
-2 77 80.956779
-2 78 82.024387
-2 79 33.615473
-2 80 25.495098
-2 81 43.908997
-2 82 36.124784
-2 83 42.047592
-2 84 55.317267
-2 85 64.498062
-2 86 72.718636
-2 87 61.131007
-2 88 62.369865
-2 89 27.018512
-2 90 90.354856
-2 91 39.849718
-2 92 49.244289
-2 93 50.477718
-2 94 48.836462
-2 95 48.918299
-2 96 57.140179
-2 97 43.139309
-2 98 70.213959
-2 99 33.015148
-2 100 50.009999
-2 101 18.973666
-3 1 30.805844
-3 2 10.440307
-3 4 10.000000
-3 5 5.385165
-3 6 10.198039
-3 7 4.000000
-3 8 7.000000
-3 9 8.602325
-3 10 41.761226
-3 11 37.000000
-3 12 37.696154
-3 13 33.105891
-3 14 43.462628
-3 15 34.481879
-3 16 40.311289
-3 17 41.340053
-3 18 37.202150
-3 19 73.375745
-3 20 68.007353
-3 21 63.245553
-3 22 72.277244
-3 23 62.641839
-3 24 71.805292
-3 25 62.096699
-3 26 71.196910
-3 27 85.755466
-3 28 83.240615
-3 29 83.216585
-3 30 78.892332
-3 31 79.881162
-3 32 77.175126
-3 33 79.056942
-3 34 80.430094
-3 35 74.625733
-3 36 46.097722
-3 37 44.147480
-3 38 43.566042
-3 39 40.311289
-3 40 38.327536
-3 41 39.293765
-3 42 36.000000
-3 43 33.376639
-3 44 34.481879
-3 45 33.734256
-3 46 7.280110
-3 47 6.403124
-3 48 36.055513
-3 49 72.801099
-3 50 66.098411
-3 51 64.031242
-3 52 64.140471
-3 53 45.099889
-3 54 25.079872
-3 55 36.249138
-3 56 17.000000
-3 57 48.826222
-3 58 50.635956
-3 59 65.375837
-3 60 56.293872
-3 61 16.552945
-3 62 25.079872
-3 63 58.728187
-3 64 69.814039
-3 65 50.537115
-3 66 37.336309
-3 67 42.485292
-3 68 53.413481
-3 69 23.430749
-3 70 24.698178
-3 71 14.317821
-3 72 47.423623
-3 73 42.201896
-3 74 25.000000
-3 75 55.036352
-3 76 72.034714
-3 77 73.573093
-3 78 72.006944
-3 79 23.600847
-3 80 17.464249
-3 81 37.536649
-3 82 31.906112
-3 83 32.388269
-3 84 46.486557
-3 85 57.801384
-3 86 66.219333
-3 87 51.009803
-3 88 51.971146
-3 89 17.117243
-3 90 83.216585
-3 91 31.764760
-3 92 42.638011
-3 93 44.553339
-3 94 45.276926
-3 95 44.204072
-3 96 50.990195
-3 97 39.115214
-3 98 59.774577
-3 99 23.345235
-3 100 40.199502
-3 101 12.041595
-4 1 39.357337
-4 2 3.000000
-4 3 10.000000
-4 5 5.385165
-4 6 2.000000
-4 7 10.770330
-4 8 12.206556
-4 9 8.602325
-4 10 51.419841
-4 11 46.572524
-4 12 47.127487
-4 13 42.379240
-4 14 52.810984
-4 15 43.462628
-4 16 49.244289
-4 17 50.089919
-4 18 45.650849
-4 19 82.969874
-4 20 77.620873
-4 21 72.801099
-4 22 82.000000
-4 23 72.277244
-4 24 81.584312
-4 25 71.805292
-4 26 81.049368
-4 27 91.400219
-4 28 88.481637
-4 29 89.022469
-4 30 84.403791
-4 31 85.912746
-4 32 82.800966
-4 33 85.146932
-4 34 87.000000
-4 35 80.430094
-4 36 45.000000
-4 37 43.000000
-4 38 43.104524
-4 39 40.311289
-4 40 38.327536
-4 41 38.000000
-4 42 37.363083
-4 43 33.376639
-4 44 33.000000
-4 45 33.136083
-4 46 3.605551
-4 47 6.403124
-4 48 44.721360
-4 49 82.462113
-4 50 75.690158
-4 51 70.710678
-4 52 72.897188
-4 53 55.081757
-4 54 35.057096
-4 55 41.400483
-4 56 26.248809
-4 57 57.306195
-4 58 60.530984
-4 59 75.325958
-4 60 66.098411
-4 61 25.961510
-4 62 30.479501
-4 63 65.946948
-4 64 77.935871
-4 65 59.615434
-4 66 46.840154
-4 67 51.623638
-4 68 60.108236
-4 69 30.805844
-4 70 34.205263
-4 71 20.615528
-4 72 52.430907
-4 73 45.617979
-4 74 32.015621
-4 75 65.030762
-4 76 81.786307
-4 77 82.298238
-4 78 82.006097
-4 79 32.202484
-4 80 23.345235
-4 81 45.486262
-4 82 38.183766
-4 83 42.296572
-4 84 56.044625
-4 85 66.037868
-4 86 74.330344
-4 87 61.008196
-4 88 61.814238
-4 89 27.073973
-4 90 91.787799
-4 91 40.853396
-4 92 50.774009
-4 93 52.201533
-4 94 51.088159
-4 95 50.931326
-4 96 58.821765
-4 97 45.276926
-4 98 69.375788
-4 99 33.241540
-4 100 50.159745
-4 101 20.124612
-5 1 36.055513
-5 2 7.071068
-5 3 5.385165
-5 4 5.385165
-5 6 5.000000
-5 7 5.385165
-5 8 7.071068
-5 9 5.000000
-5 10 46.097722
-5 11 41.231056
-5 12 41.761226
-5 13 37.000000
-5 14 47.434165
-5 15 38.078866
-5 16 43.863424
-5 17 44.721360
-5 18 40.311289
-5 19 78.746428
-5 20 73.375745
-5 21 68.622154
-5 22 77.620873
-5 23 68.007353
-5 24 77.129761
-5 25 67.446275
-5 26 76.485293
-5 27 90.138782
-5 28 87.464278
-5 29 87.658428
-5 30 83.216585
-5 31 84.403791
-5 32 81.541401
-5 33 83.600239
-5 34 85.146932
-5 35 79.056942
-5 36 47.265209
-5 37 45.276926
-5 38 45.044423
-5 39 42.000000
-5 40 40.000000
-5 41 40.311289
-5 42 38.327536
-5 43 35.000000
-5 44 35.355339
-5 45 35.057096
-5 46 2.000000
-5 47 2.000000
-5 48 39.357337
-5 49 78.160092
-5 50 71.470274
-5 51 68.767725
-5 52 69.462220
-5 53 50.249378
-5 54 30.000000
-5 55 40.311289
-5 56 22.360680
-5 57 54.083269
-5 58 55.901699
-5 59 70.178344
-5 60 60.827625
-5 61 20.615528
-5 62 29.154759
-5 63 63.639610
-5 64 75.000000
-5 65 55.901699
-5 66 42.720019
-5 67 47.853944
-5 68 58.137767
-5 69 28.284271
-5 70 30.083218
-5 71 18.601075
-5 72 51.478151
-5 73 45.541190
-5 74 26.907248
-5 75 60.000000
-5 76 76.485293
-5 77 78.892332
-5 78 77.058419
-5 79 26.832816
-5 80 18.439089
-5 81 42.638011
-5 82 36.400549
-5 83 37.656341
-5 84 51.865210
-5 85 63.007936
-5 86 71.400280
-5 87 56.008928
-5 88 56.568542
-5 89 22.360680
-5 90 88.509886
-5 91 37.121422
-5 92 47.801674
-5 93 49.578221
-5 94 49.648766
-5 95 48.918299
-5 96 56.080300
-5 97 43.600459
-5 98 64.031242
-5 99 28.635642
-5 100 45.398238
-5 101 17.029386
-6 1 40.311289
-6 2 5.000000
-6 3 10.198039
-6 4 2.000000
-6 5 5.000000
-6 7 10.198039
-6 8 11.180340
-6 9 7.071068
-6 10 50.990195
-6 11 46.097722
-6 12 46.572524
-6 13 41.761226
-6 14 52.201533
-6 15 42.720019
-6 16 48.466483
-6 17 49.244289
-6 18 44.721360
-6 19 83.522452
-6 20 78.160092
-6 21 73.375745
-6 22 82.462113
-6 23 72.801099
-6 24 82.000000
-6 25 72.277244
-6 26 81.394103
-6 27 93.005376
-6 28 90.138782
-6 29 90.603532
-6 30 86.023253
-6 31 87.458562
-6 32 84.403791
-6 33 86.683332
-6 34 88.459030
-6 35 82.006097
-6 36 47.000000
-6 37 45.000000
-6 38 45.099889
-6 39 42.296572
-6 40 40.311289
-6 41 40.000000
-6 42 39.293765
-6 43 35.355339
-6 44 35.000000
-6 45 35.128336
-6 46 3.000000
-6 47 5.385165
-6 48 43.863424
-6 49 82.969874
-6 50 76.243032
-6 51 72.138755
-6 52 73.824115
-6 53 55.226805
-6 54 35.000000
-6 55 43.011626
-6 56 26.925824
-6 57 58.309519
-6 58 60.827625
-6 59 75.166482
-6 60 65.764732
-6 61 25.495098
-6 62 32.015621
-6 63 67.268120
-6 64 79.056942
-6 65 60.415230
-6 66 47.434165
-6 67 52.392748
-6 68 61.522354
-6 69 32.015621
-6 70 34.785054
-6 71 21.931712
-6 72 54.083269
-6 73 47.423623
-6 74 30.805844
-6 75 65.000000
-6 76 81.394103
-6 77 83.240615
-6 78 82.054860
-6 79 31.384710
-6 80 22.022716
-6 81 46.615448
-6 82 39.623226
-6 83 42.579338
-6 84 56.612719
-6 85 67.119297
-6 86 75.451971
-6 87 61.008196
-6 88 61.522354
-6 89 27.294688
-6 90 92.784697
-6 91 41.629317
-6 92 51.865210
-6 93 53.413481
-6 94 52.630789
-6 95 52.325902
-6 96 60.000000
-6 97 46.754679
-6 98 68.883960
-6 99 33.541020
-6 100 50.358713
-6 101 21.095023
-7 1 33.301652
-7 2 12.206556
-7 3 4.000000
-7 4 10.770330
-7 5 5.385165
-7 6 10.198039
-7 8 3.000000
-7 9 5.830952
-7 10 40.792156
-7 11 35.902646
-7 12 36.400549
-7 13 31.622777
-7 14 42.059482
-7 15 32.695565
-7 16 38.483763
-7 17 39.357337
-7 18 34.985711
-7 19 74.672619
-7 20 69.289249
-7 21 64.621978
-7 22 73.375745
-7 23 63.906181
-7 24 72.801099
-7 25 63.245553
-7 26 72.034714
-7 27 89.185201
-7 28 86.769810
-7 29 86.608314
-7 30 82.365041
-7 31 83.216585
-7 32 80.622577
-7 33 82.377181
-7 34 83.600239
-7 35 78.032045
-7 36 50.009999
-7 37 48.052055
-7 38 47.518417
-7 39 44.283180
-7 40 42.296572
-7 41 43.174066
-7 42 40.000000
-7 43 37.336309
-7 44 38.327536
-7 45 37.656341
-7 46 7.280110
-7 47 5.000000
-7 48 34.000000
-7 49 74.000000
-7 50 67.416615
-7 51 67.201190
-7 52 66.287254
-7 53 45.541190
-7 54 25.079872
-7 55 39.924930
-7 56 19.209373
-7 57 51.224994
-7 58 51.419841
-7 59 65.069194
-7 60 55.578773
-7 61 15.297059
-7 62 28.792360
-7 63 61.717096
-7 64 72.346389
-7 65 52.478567
-7 66 38.910153
-7 67 44.418465
-7 68 56.612719
-7 69 26.627054
-7 70 26.419690
-7 71 18.027756
-7 72 51.078371
-7 73 46.097722
-7 74 21.931712
-7 75 55.036352
-7 76 71.196910
-7 77 75.716577
-7 78 72.173402
-7 79 21.470911
-7 80 13.892444
-7 81 40.311289
-7 82 35.355339
-7 83 33.241540
-7 84 47.927028
-7 85 60.307545
-7 86 68.767725
-7 87 51.088159
-7 88 51.351728
-7 89 18.027756
-7 90 85.445889
-7 91 33.837849
-7 92 45.276926
-7 93 47.423623
-7 94 48.764741
-7 95 47.434165
-7 96 53.740115
-7 97 42.544095
-7 98 58.694122
-7 99 24.351591
-7 100 40.792156
-7 101 15.264338
-8 1 35.355339
-8 2 14.142136
-8 3 7.000000
-8 4 12.206556
-8 5 7.071068
-8 6 11.180340
-8 7 3.000000
-8 9 5.000000
-8 10 40.311289
-8 11 35.355339
-8 12 35.693137
-8 13 30.805844
-8 14 41.231056
-8 15 31.622777
-8 16 37.336309
-8 17 38.078866
-8 18 33.541020
-8 19 75.769387
-8 20 70.384657
-8 21 65.795137
-8 22 74.330344
-8 23 65.000000
-8 24 73.681748
-8 25 64.257295
-8 26 72.801099
-8 27 91.787799
-8 28 89.442719
-8 29 89.185201
-8 30 85.000000
-8 31 85.755466
-8 32 83.240615
-8 33 84.905830
-8 34 86.023253
-8 35 80.622577
-8 36 52.952809
-8 37 50.990195
-8 38 50.487622
-8 39 47.265209
-8 40 45.276926
-8 41 46.097722
-8 42 43.000000
-8 43 40.311289
-8 44 41.231056
-8 45 40.607881
-8 46 8.602325
-8 47 5.830952
-8 48 32.695565
-8 49 75.026662
-8 50 68.541958
-8 51 69.634761
-8 52 68.007353
-8 53 46.097722
-8 54 25.495098
-8 55 42.720019
-8 56 21.213203
-8 57 53.150729
-8 58 52.201533
-8 59 65.000000
-8 60 55.226805
-8 61 15.000000
-8 62 31.622777
-8 63 64.031242
-8 64 74.330344
-8 65 54.083269
-8 66 40.311289
-8 67 46.043458
-8 68 59.076222
-8 69 29.154759
-8 70 28.017851
-8 71 20.880613
-8 72 53.851648
-8 73 49.030603
-8 74 19.849433
-8 75 55.226805
-8 76 70.710678
-8 77 77.420927
-8 78 72.443081
-8 79 20.248457
-8 80 11.401754
-8 81 42.520583
-8 82 38.013156
-8 83 34.176015
-8 84 49.193496
-8 85 62.289646
-8 86 70.767224
-8 87 51.351728
-8 88 51.088159
-8 89 19.235384
-8 90 87.200917
-8 91 35.608988
-8 92 47.381431
-8 93 49.678969
-8 94 51.429563
-8 95 49.929951
-8 96 55.901699
-8 97 45.177428
-8 98 58.051701
-8 99 25.495098
-8 100 41.484937
-8 101 17.888544
-9 1 39.051248
-9 2 11.180340
-9 3 8.602325
-9 4 8.602325
-9 5 5.000000
-9 6 7.071068
-9 7 5.830952
-9 8 5.000000
-9 10 45.276926
-9 11 40.311289
-9 12 40.607881
-9 13 35.693137
-9 14 46.097722
-9 15 36.400549
-9 16 42.059482
-9 17 42.720019
-9 18 38.078866
-9 19 80.411442
-9 20 75.026662
-9 21 70.384657
-9 22 79.056942
-9 23 69.641941
-9 24 78.447435
-9 25 68.949257
-9 26 77.620873
-9 27 94.339811
-9 28 91.787799
-9 29 91.809586
-9 30 87.464278
-9 31 88.481637
-9 32 85.755466
-9 33 87.658428
-9 34 89.022469
-9 35 83.216585
-9 36 52.239832
-9 37 50.249378
-9 38 50.039984
-9 39 47.000000
-9 40 45.000000
-9 41 45.276926
-9 42 43.289722
-9 43 40.000000
-9 44 40.311289
-9 45 40.049969
-9 46 5.385165
-9 47 3.000000
-9 48 37.336309
-9 49 79.711982
-9 50 73.164199
-9 51 72.622311
-9 52 72.111026
-9 53 50.990195
-9 54 30.413813
-9 55 44.721360
-9 56 25.000000
-9 57 57.008771
-9 58 57.008771
-9 59 70.000000
-9 60 60.207973
-9 61 20.000000
-9 62 33.541020
-9 63 67.268120
-9 64 78.102497
-9 65 58.309519
-9 66 44.721360
-9 67 50.249378
-9 68 62.008064
-9 69 32.015621
-9 70 32.249031
-9 71 22.825424
-9 72 55.901699
-9 73 50.289164
-9 74 23.853721
-9 75 60.207973
-9 76 75.663730
-9 77 81.541401
-9 78 77.414469
-9 79 25.000000
-9 80 15.000000
-9 81 45.967380
-9 82 40.496913
-9 83 38.897301
-9 84 53.712196
-9 85 66.068147
-9 86 74.518454
-9 87 56.320511
-9 88 56.080300
-9 89 23.769729
-9 90 91.263355
-9 91 39.661064
-9 92 50.990195
-9 93 53.037722
-9 94 53.851648
-9 95 52.801515
-9 96 59.413803
-9 97 47.707442
-9 98 62.968246
-9 99 30.083218
-9 100 46.324939
-9 101 20.615528
-10 1 33.541020
-10 2 52.201533
-10 3 41.761226
-10 4 51.419841
-10 5 46.097722
-10 6 50.990195
-10 7 40.792156
-10 8 40.311289
-10 9 45.276926
-10 11 5.000000
-10 12 5.385165
-10 13 10.198039
-10 14 5.000000
-10 15 11.180340
-10 16 9.433981
-10 17 11.180340
-10 18 14.142136
-10 19 45.343136
-10 20 40.607881
-10 21 37.735925
-10 22 42.426407
-10 23 36.055513
-10 24 41.036569
-10 25 34.409301
-10 26 39.051248
-10 27 85.146932
-10 28 85.000000
-10 29 82.152298
-10 30 80.000000
-10 31 78.160092
-10 32 78.000000
-10 33 77.162167
-10 34 75.663730
-10 35 75.000000
-10 36 75.822160
-10 37 74.330344
-10 38 72.346389
-10 39 68.767725
-10 40 67.268120
-10 41 70.710678
-10 42 62.481997
-10 43 63.639610
-10 44 67.268120
-10 45 65.069194
-10 46 48.052055
-10 47 45.705580
-10 48 12.806248
-10 49 43.863424
-10 50 39.408121
-10 51 62.000000
-10 52 47.434165
-10 53 15.811388
-10 54 18.027756
-10 55 51.478151
-10 56 32.015621
-10 57 40.000000
-10 58 22.360680
-10 59 25.495098
-10 60 15.000000
-10 61 25.495098
-10 62 46.097722
-10 63 55.000000
-10 64 57.008771
-10 65 35.355339
-10 66 25.495098
-10 67 31.064449
-10 68 54.451814
-10 69 39.051248
-10 70 27.018512
-10 71 42.201896
-10 72 58.523500
-10 73 60.901560
-10 74 26.248809
-10 75 18.027756
-10 76 30.413813
-10 77 55.036352
-10 78 34.539832
-10 79 21.095023
-10 80 33.241540
-10 81 38.897301
-10 82 45.276926
-10 83 18.788294
-10 84 27.294688
-10 85 47.381431
-10 86 54.341513
-10 87 15.556349
-10 88 11.180340
-10 89 26.925824
-10 90 64.412732
-10 91 29.546573
-10 92 39.623226
-10 93 43.737855
-10 94 53.758720
-10 95 48.764741
-10 96 46.043458
-10 97 48.846699
-10 98 18.027756
-10 99 23.345235
-10 100 16.000000
-10 101 38.275318
-11 1 31.622777
-11 2 47.434165
-11 3 37.000000
-11 4 46.572524
-11 5 41.231056
-11 6 46.097722
-11 7 35.902646
-11 8 35.355339
-11 9 40.311289
-11 10 5.000000
-11 12 2.000000
-11 13 5.385165
-11 14 7.071068
-11 15 7.071068
-11 16 8.000000
-11 17 10.000000
-11 18 11.180340
-11 19 48.795492
-11 20 43.863424
-11 21 40.607881
-11 22 46.097722
-11 23 39.051248
-11 24 44.821870
-11 25 37.536649
-11 26 43.011626
-11 27 85.586214
-11 28 85.146932
-11 29 82.607506
-11 30 80.156098
-11 31 78.638413
-11 32 78.160092
-11 33 77.646635
-11 34 76.485293
-11 35 75.166482
-11 36 72.622311
-11 37 71.063352
-11 38 69.202601
-11 39 65.604878
-11 40 64.031242
-11 41 67.268120
-11 42 59.405387
-11 43 60.207973
-11 44 63.639610
-11 45 61.554854
-11 46 43.174066
-11 47 40.792156
-11 48 9.433981
-11 49 47.423623
-11 50 42.520583
-11 51 62.201286
-11 52 49.244289
-11 53 18.027756
-11 54 14.142136
-11 55 49.244289
-11 56 28.284271
-11 57 40.311289
-11 58 25.000000
-11 59 30.413813
-11 60 20.000000
-11 61 20.615528
-11 62 43.011626
-11 63 55.226805
-11 64 58.523500
-11 65 36.400549
-11 66 25.000000
-11 67 31.144823
-11 68 54.037024
-11 69 36.055513
-11 70 24.186773
-11 71 38.288379
-11 72 57.008771
-11 73 58.600341
-11 74 21.540659
-11 75 22.360680
-11 76 35.355339
-11 77 57.306195
-11 78 39.217343
-11 79 16.124515
-11 80 28.284271
-11 81 37.656341
-11 82 42.953463
-11 83 17.262677
-11 84 28.460499
-11 85 48.270074
-11 86 55.659680
-11 87 19.416488
-11 88 16.124515
-11 89 22.803509
-11 90 66.887966
-11 91 27.892651
-11 92 39.051248
-11 93 43.104524
-11 94 52.392748
-11 95 47.675990
-11 96 46.097722
-11 97 47.127487
-11 98 22.803509
-11 99 20.000000
-11 100 16.763055
-11 101 34.205263
-12 1 33.526109
-12 2 48.104054
-12 3 37.696154
-12 4 47.127487
-12 5 41.761226
-12 6 46.572524
-12 7 36.400549
-12 8 35.693137
-12 9 40.607881
-12 10 5.385165
-12 11 2.000000
-12 13 5.000000
-12 14 5.830952
-12 15 5.830952
-12 16 6.000000
-12 17 8.000000
-12 18 9.433981
-12 19 50.209561
-12 20 45.343136
-12 21 42.201896
-12 22 47.423623
-12 23 40.607881
-12 24 46.097722
-12 25 39.051248
-12 26 44.204072
-12 27 87.572827
-12 28 87.143560
-12 29 84.593144
-12 30 82.152298
-12 31 80.622577
-12 32 80.156098
-12 33 79.630396
-12 34 78.447435
-12 35 77.162167
-12 36 74.202426
-12 37 72.622311
-12 38 70.802542
-12 39 67.201190
-12 40 65.604878
-12 41 68.767725
-12 42 61.032778
-12 43 61.717096
-12 44 65.069194
-12 45 63.031738
-12 46 43.680659
-12 47 41.231056
-12 48 7.810250
-12 49 48.795492
-12 50 44.045431
-12 51 64.195015
-12 52 51.078371
-12 53 19.723083
-12 54 15.620499
-12 55 51.078371
-12 56 29.732137
-12 57 42.296572
-12 58 26.627054
-12 59 30.805844
-12 60 20.099751
-12 61 21.189620
-12 62 44.654227
-12 63 57.218878
-12 64 60.406953
-12 65 38.327536
-12 66 27.000000
-12 67 33.136083
-12 68 56.035703
-12 69 37.735925
-12 70 25.942244
-12 71 39.623226
-12 72 58.940648
-12 73 60.415230
-12 74 20.880613
-12 75 23.323808
-12 76 35.128336
-12 77 59.059292
-12 78 39.924930
-12 79 16.000000
-12 80 28.071338
-12 81 39.623226
-12 82 44.777226
-12 83 19.235384
-12 84 30.364453
-12 85 50.219518
-12 86 57.567352
-12 87 20.615528
-12 88 16.492423
-12 89 24.083189
-12 90 68.600292
-12 91 29.832868
-12 92 41.048752
-12 93 45.099889
-12 94 54.341513
-12 95 49.648766
-12 96 48.093659
-12 97 49.040799
-12 98 22.360680
-12 99 21.633308
-12 100 18.681542
-12 101 35.468296
-13 1 32.388269
-13 2 43.462628
-13 3 33.105891
-13 4 42.379240
-13 5 37.000000
-13 6 41.761226
-13 7 31.622777
-13 8 30.805844
-13 9 35.693137
-13 10 10.198039
-13 11 5.385165
-13 12 5.000000
-13 14 10.440307
-13 15 3.000000
-13 16 7.810250
-13 17 9.433981
-13 18 8.000000
-13 19 53.814496
-13 20 48.795492
-13 21 45.343136
-13 22 51.224994
-13 23 43.863424
-13 24 50.000000
-13 25 42.426407
-13 26 48.259714
-13 27 88.283634
-13 28 87.572827
-13 29 85.328776
-13 30 82.607506
-13 31 81.394103
-13 32 80.622577
-13 33 80.411442
-13 34 79.555012
-13 35 77.646635
-13 36 71.281134
-13 37 69.634761
-13 38 67.955868
-13 39 64.350602
-13 40 62.681736
-13 41 65.604878
-13 42 58.309519
-13 43 58.600341
-13 44 61.717096
-13 45 59.816386
-13 46 38.897301
-13 47 36.400549
-13 48 6.000000
-13 49 52.497619
-13 50 47.381431
-13 51 64.776539
-13 52 53.235327
-13 53 22.671568
-13 54 13.000000
-13 55 49.335586
-13 56 26.627054
-13 57 43.174066
-13 58 29.732137
-13 59 35.693137
-13 60 25.079872
-13 61 16.552945
-13 62 42.059482
-13 63 57.870545
-13 64 62.241465
-13 65 39.924930
-13 66 27.459060
-13 67 33.955854
-13 68 56.080300
-13 69 35.341194
-13 70 24.041631
-13 71 36.124784
-13 72 57.870545
-13 73 58.523500
-13 74 16.155494
-13 75 27.730849
-13 76 40.112342
-13 77 61.587336
-13 78 44.598206
-13 79 11.000000
-13 80 23.086793
-13 81 39.051248
-13 82 43.011626
-13 83 19.104973
-13 84 32.202484
-13 85 51.546096
-13 86 59.236813
-13 87 24.698178
-13 88 21.377558
-13 89 20.615528
-13 90 71.281134
-13 91 29.068884
-13 92 41.109610
-13 93 45.044423
-13 94 53.460266
-13 95 49.091751
-13 96 48.662100
-13 97 47.853944
-13 98 27.294688
-13 99 19.313208
-13 100 20.591260
-13 101 31.827661
-14 1 38.078866
-14 2 53.851648
-14 3 43.462628
-14 4 52.810984
-14 5 47.434165
-14 6 52.201533
-14 7 42.059482
-14 8 41.231056
-14 9 46.097722
-14 10 5.000000
-14 11 7.071068
-14 12 5.830952
-14 13 10.440307
-14 15 10.000000
-14 16 5.830952
-14 17 7.071068
-14 18 11.180340
-14 19 49.203658
-14 20 44.654227
-14 21 42.059482
-14 22 46.097722
-14 23 40.311289
-14 24 44.598206
-14 25 38.587563
-14 26 42.426407
-14 27 90.138782
-14 28 90.000000
-14 29 87.143560
-14 30 85.000000
-14 31 83.150466
-14 32 83.000000
-14 33 82.152298
-14 34 80.622577
-14 35 80.000000
-14 36 79.649231
-14 37 78.102497
-14 38 76.216796
-14 39 72.622311
-14 40 71.063352
-14 41 74.330344
-14 42 66.400301
-14 43 67.268120
-14 44 70.710678
-14 45 68.622154
-14 46 49.335586
-14 47 46.840154
-14 48 10.440307
-14 49 47.634021
-14 50 43.566042
-14 51 67.000000
-14 52 52.201533
-14 53 20.615528
-14 54 21.213203
-14 55 55.901699
-14 56 35.355339
-14 57 45.000000
-14 58 26.925824
-14 59 26.925824
-14 60 15.811388
-14 61 26.925824
-14 62 50.000000
-14 63 60.000000
-14 64 61.846584
-14 65 40.311289
-14 66 30.413813
-14 67 36.055513
-14 68 59.413803
-14 69 43.011626
-14 70 31.064449
-14 71 45.343136
-14 72 63.245553
-14 73 65.299311
-14 74 25.179357
-14 75 21.213203
-14 76 30.000000
-14 77 59.615434
-14 78 36.715120
-14 79 21.213203
-14 80 33.015148
-14 81 43.680659
-14 82 49.648766
-14 83 23.409400
-14 84 32.249031
-14 85 52.345009
-14 86 59.228372
-14 87 19.416488
-14 88 13.038405
-14 89 29.832868
-14 90 68.876701
-14 91 34.176015
-14 92 44.553339
-14 93 48.662100
-14 94 58.523500
-14 95 53.600373
-14 96 51.039201
-14 97 53.488316
-14 98 17.029386
-14 99 27.018512
-14 100 21.000000
-14 101 41.231056
-15 1 35.355339
-15 2 44.721360
-15 3 34.481879
-15 4 43.462628
-15 5 38.078866
-15 6 42.720019
-15 7 32.695565
-15 8 31.622777
-15 9 36.400549
-15 10 11.180340
-15 11 7.071068
-15 12 5.830952
-15 13 3.000000
-15 14 10.000000
-15 16 5.830952
-15 17 7.071068
-15 18 5.000000
-15 19 55.865911
-15 20 50.931326
-15 21 47.634021
-15 22 53.150729
-15 23 46.097722
-15 24 51.855569
-15 25 44.598206
-15 26 50.000000
-15 27 91.241438
-15 28 90.553851
-15 29 88.283634
-15 30 85.586214
-15 31 84.344532
-15 32 83.600239
-15 33 83.360662
-15 34 82.462113
-15 35 80.622577
-15 36 73.783467
-15 37 72.111026
-15 38 70.491134
-15 39 66.887966
-15 40 65.192024
-15 41 68.007353
-15 42 60.901560
-15 43 61.032778
-15 44 64.031242
-15 45 62.201286
-15 46 39.924930
-15 47 37.336309
-15 48 3.000000
-15 49 54.488531
-15 50 49.578221
-15 51 67.742158
-15 52 55.901699
-15 53 25.000000
-15 54 15.811388
-15 55 52.201533
-15 56 29.154759
-15 57 46.097722
-15 58 32.015621
-15 59 36.400549
-15 60 25.495098
-15 61 18.027756
-15 62 44.721360
-15 63 60.827625
-15 64 65.000000
-15 65 42.720019
-15 66 30.413813
-15 67 36.878178
-15 68 59.076222
-15 69 38.078866
-15 70 26.925824
-15 71 38.418745
-15 72 60.827625
-15 73 61.351447
-15 74 15.297059
-15 75 29.154759
-15 76 40.000000
-15 77 64.140471
-15 78 45.694639
-15 79 11.401754
-15 80 23.021729
-15 81 42.047592
-15 82 45.880279
-15 83 22.090722
-15 84 34.928498
-15 85 54.405882
-15 86 62.032250
-15 87 26.400758
-15 88 22.135944
-15 89 23.021729
-15 90 73.783467
-15 91 32.062439
-15 92 44.102154
-15 93 48.041649
-15 94 56.435804
-15 95 52.086467
-15 96 51.623638
-15 97 50.803543
-15 98 27.018512
-15 99 22.135944
-15 100 23.259407
-15 101 34.058773
-16 1 39.293765
-16 2 50.537115
-16 3 40.311289
-16 4 49.244289
-16 5 43.863424
-16 6 48.466483
-16 7 38.483763
-16 8 37.336309
-16 9 42.059482
-16 10 9.433981
-16 11 8.000000
-16 12 6.000000
-16 13 7.810250
-16 14 5.830952
-16 15 5.830952
-16 17 2.000000
-16 18 5.385165
-16 19 54.671748
-16 20 50.000000
-16 21 47.169906
-16 22 51.662365
-16 23 45.486262
-16 24 50.209561
-16 25 43.829214
-16 26 48.104054
-16 27 93.536089
-16 28 93.134312
-16 29 90.553851
-16 30 88.141931
-16 31 86.579443
-16 32 86.145226
-16 33 85.586214
-16 34 84.344532
-16 35 83.150466
-16 36 79.056942
-16 37 77.420927
-16 38 75.716577
-16 39 72.111026
-16 40 70.455660
-16 41 73.409809
-16 42 66.037868
-16 43 66.400301
-16 44 69.526973
-16 45 67.623960
-16 46 45.694639
-16 47 43.081318
-16 48 5.000000
-16 49 53.150729
-16 50 48.826222
-16 51 70.178344
-16 52 56.648036
-16 53 25.079872
-16 54 20.591260
-16 55 56.648036
-16 56 34.409301
-16 57 48.259714
-16 58 31.764760
-16 59 32.695565
-16 60 21.540659
-16 61 23.853721
-16 62 49.739320
-16 63 63.198101
-16 64 66.098411
-16 65 44.147480
-16 66 33.000000
-16 67 39.115214
-16 68 62.032250
-16 69 42.941821
-16 70 31.384710
-16 71 43.931765
-16 72 64.761099
-16 73 65.924199
-16 74 20.000000
-16 75 26.907248
-16 76 35.128336
-16 77 64.404969
-16 78 42.544095
-16 79 17.088007
-16 80 28.284271
-16 81 45.541190
-16 82 50.328918
-16 83 25.179357
-16 84 36.138622
-16 85 56.089215
-16 86 63.324561
-16 87 24.839485
-16 88 18.867962
-16 89 28.425341
-16 90 73.824115
-16 91 35.693137
-16 92 47.042534
-16 93 51.088159
-16 94 60.207973
-16 95 55.578773
-16 96 54.083269
-16 97 54.817880
-16 98 22.090722
-16 99 26.832816
-16 100 24.515301
-16 101 39.623226
-17 1 41.231056
-17 2 51.478151
-17 3 41.340053
-17 4 50.089919
-17 5 44.721360
-17 6 49.244289
-17 7 39.357337
-17 8 38.078866
-17 9 42.720019
-17 10 11.180340
-17 11 10.000000
-17 12 8.000000
-17 13 9.433981
-17 14 7.071068
-17 15 7.071068
-17 16 2.000000
-17 18 5.000000
-17 19 56.222771
-17 20 51.613952
-17 21 48.877398
-17 22 53.150729
-17 23 47.169906
-17 24 51.662365
-17 25 45.486262
-17 26 49.497475
-17 27 95.524866
-17 28 95.131488
-17 29 92.541882
-17 30 90.138782
-17 31 88.566359
-17 32 88.141931
-17 33 87.572827
-17 34 86.313383
-17 35 85.146932
-17 36 80.709355
-17 37 79.056942
-17 38 77.388630
-17 39 73.783467
-17 40 72.111026
-17 41 75.000000
-17 42 67.742158
-17 43 68.007353
-17 44 71.063352
-17 45 69.202601
-17 46 46.518813
-17 47 43.863424
-17 48 5.385165
-17 49 54.671748
-17 50 50.477718
-17 51 72.173402
-17 52 58.523500
-17 53 26.925824
-17 54 22.360680
-17 55 58.523500
-17 56 36.055513
-17 57 50.249378
-17 58 33.541020
-17 59 33.541020
-17 60 22.360680
-17 61 25.000000
-17 62 51.478151
-17 63 65.192024
-17 64 68.007353
-17 65 46.097722
-17 66 35.000000
-17 67 41.109610
-17 68 64.031242
-17 69 44.721360
-17 70 33.241540
-17 71 45.453273
-17 72 66.708320
-17 73 67.779053
-17 74 20.099751
-17 75 28.284271
-17 76 35.355339
-17 77 66.211781
-17 78 43.566042
-17 79 17.888544
-17 80 28.635642
-17 81 47.518417
-17 82 52.201533
-17 83 27.166155
-17 84 38.078866
-17 85 58.051701
-17 86 65.253352
-17 87 26.400758
-17 88 20.000000
-17 89 30.000000
-17 90 75.591005
-17 91 37.656341
-17 92 49.040799
-17 93 53.084838
-17 94 62.169124
-17 95 57.558666
-17 96 56.080300
-17 97 56.753854
-17 98 22.360680
-17 99 28.635642
-17 100 26.476405
-17 101 41.109610
-18 1 40.311289
-18 2 47.169906
-18 3 37.202150
-18 4 45.650849
-18 5 40.311289
-18 6 44.721360
-18 7 34.985711
-18 8 33.541020
-18 9 38.078866
-18 10 14.142136
-18 11 11.180340
-18 12 9.433981
-18 13 8.000000
-18 14 11.180340
-18 15 5.000000
-18 16 5.385165
-18 17 5.000000
-18 19 59.464275
-18 20 54.671748
-18 21 51.613952
-18 22 56.568542
-18 23 50.000000
-18 24 55.172457
-18 25 48.414874
-18 26 53.150729
-18 27 96.176920
-18 28 95.524866
-18 29 93.214806
-18 30 90.553851
-18 31 89.269256
-18 32 88.566359
-18 33 88.283634
-18 34 87.321246
-18 35 85.586214
-18 36 78.032045
-18 37 76.321688
-18 38 74.793048
-18 39 71.196910
-18 40 69.462220
-18 41 72.111026
-18 42 65.299311
-18 43 65.192024
-18 44 68.007353
-18 45 66.287254
-18 46 42.059482
-18 47 39.357337
-18 48 2.000000
-18 49 58.000000
-18 50 53.413481
-18 51 72.691127
-18 52 60.415230
-18 53 29.154759
-18 54 20.615528
-18 55 57.008771
-18 56 33.541020
-18 57 50.990195
-18 58 36.055513
-18 59 38.078866
-18 60 26.925824
-18 61 21.213203
-18 62 49.244289
-18 63 65.764732
-18 64 69.641941
-18 65 47.434165
-18 66 35.355339
-18 67 41.773197
-18 68 64.070274
-18 69 42.720019
-18 70 31.780497
-18 71 42.438190
-18 72 65.764732
-18 73 66.098411
-18 74 15.132746
-18 75 32.015621
-18 76 40.311289
-18 77 68.476273
-18 78 47.885280
-18 79 13.601471
-18 80 23.769729
-18 81 47.042534
-18 82 50.695167
-18 83 27.073973
-18 84 39.560081
-18 85 59.203040
-18 86 66.730802
-18 87 29.698485
-18 88 24.186773
-18 89 27.294688
-18 90 78.032045
-18 91 37.054015
-18 92 49.091751
-18 93 53.037722
-18 94 61.400326
-18 95 57.078893
-18 96 56.568542
-18 97 55.731499
-18 98 27.294688
-18 99 26.925824
-18 100 27.856777
-18 101 38.013156
-19 1 45.177428
-19 2 82.225300
-19 3 73.375745
-19 4 82.969874
-19 5 78.746428
-19 6 83.522452
-19 7 74.672619
-19 8 75.769387
-19 9 80.411442
-19 10 45.343136
-19 11 48.795492
-19 12 50.209561
-19 13 53.814496
-19 14 49.203658
-19 15 55.865911
-19 16 54.671748
-19 17 56.222771
-19 18 59.464275
-19 20 5.385165
-19 21 10.198039
-19 22 4.000000
-19 23 10.770330
-19 24 6.000000
-19 25 11.661904
-19 26 9.000000
-19 27 56.797887
-19 28 59.169249
-19 29 54.120237
-19 30 54.918121
-19 31 50.606324
-19 32 53.254108
-19 33 49.739320
-19 34 45.617979
-19 35 50.803543
-19 36 83.240615
-19 37 82.710338
-19 38 79.812280
-19 39 77.129761
-19 40 76.687678
-19 41 81.584312
-19 42 71.386273
-19 43 75.802375
-19 44 80.752709
-19 45 77.781746
-19 46 80.653580
-19 47 79.378838
-19 48 58.000000
-19 49 2.000000
-19 50 7.280110
-19 51 41.036569
-19 52 18.601075
-19 53 31.400637
-19 54 51.000000
-19 55 56.089215
-19 56 56.753854
-19 57 30.594117
-19 58 24.413111
-19 59 29.427878
-19 60 37.161808
-19 61 62.177166
-19 62 60.008333
-19 63 36.619667
-19 64 25.806976
-19 65 25.019992
-19 66 36.138622
-19 67 32.140317
-19 68 42.059482
-19 69 55.145263
-19 70 48.764741
-19 71 64.629715
-19 72 54.230987
-19 73 62.936476
-19 74 69.202601
-19 75 28.301943
-19 76 39.000000
-19 77 17.464249
-19 78 21.095023
-19 79 62.425956
-19 80 73.573093
-19 81 42.107007
-19 82 53.235327
-19 83 41.629317
-19 84 26.925824
-19 85 27.294688
-19 86 26.172505
-19 87 29.832868
-19 88 37.215588
-19 89 56.648036
-19 90 23.000000
-19 91 42.579338
-19 92 37.336309
-19 93 39.051248
-19 94 49.979996
-19 95 44.922155
-19 96 34.176015
-19 97 50.219518
-19 98 42.059482
-19 99 50.328918
-19 100 34.985711
-19 101 63.348244
-20 1 40.049969
-20 2 76.902536
-20 3 68.007353
-20 4 77.620873
-20 5 73.375745
-20 6 78.160092
-20 7 69.289249
-20 8 70.384657
-20 9 75.026662
-20 10 40.607881
-20 11 43.863424
-20 12 45.343136
-20 13 48.795492
-20 14 44.654227
-20 15 50.931326
-20 16 50.000000
-20 17 51.613952
-20 18 54.671748
-20 19 5.385165
-20 21 5.000000
-20 22 5.385165
-20 23 5.385165
-20 24 6.403124
-20 25 6.403124
-20 26 8.602325
-20 27 56.648036
-20 28 58.600341
-20 29 53.851648
-20 30 54.120237
-20 31 50.159745
-20 32 52.354560
-20 33 49.244289
-20 34 45.541190
-20 35 49.739320
-20 36 79.056942
-20 37 78.447435
-20 38 75.584390
-20 39 72.801099
-20 40 72.277244
-20 41 77.129761
-20 42 66.940272
-20 43 71.196910
-20 44 76.118329
-20 45 73.164199
-20 46 75.286121
-20 47 74.000000
-20 48 53.150729
-20 49 5.000000
-20 50 2.000000
-20 51 39.051248
-20 52 16.401219
-20 53 26.248809
-20 54 45.650849
-20 55 51.662365
-20 56 51.419841
-20 57 26.248809
-20 58 19.209373
-20 59 27.000000
-20 60 33.526109
-20 61 56.824291
-20 62 55.081757
-20 63 33.970576
-20 64 25.079872
-20 65 20.223748
-20 66 30.805844
-20 67 27.018512
-20 68 38.832976
-20 69 50.039984
-20 70 43.416587
-20 71 59.413803
-20 72 50.537115
-20 73 58.872744
-20 74 64.031242
-20 75 24.166092
-20 76 37.336309
-20 77 18.110770
-20 78 20.248457
-20 79 57.201399
-20 80 68.264193
-20 81 37.336309
-20 82 48.507731
-20 83 36.249138
-20 84 21.587033
-20 85 24.207437
-20 86 24.698178
-20 87 25.238859
-20 88 33.105891
-20 89 51.264022
-20 90 25.495098
-20 91 37.336309
-20 92 32.756679
-20 93 34.785054
-20 94 46.097722
-20 95 40.853396
-20 96 30.413813
-20 97 45.880279
-20 98 38.832976
-20 99 44.944410
-20 100 29.681644
-20 101 58.051701
-21 1 35.057096
-21 2 72.034714
-21 3 63.245553
-21 4 72.801099
-21 5 68.622154
-21 6 73.375745
-21 7 64.621978
-21 8 65.795137
-21 9 70.384657
-21 10 37.735925
-21 11 40.607881
-21 12 42.201896
-21 13 45.343136
-21 14 42.059482
-21 15 47.634021
-21 16 47.169906
-21 17 48.877398
-21 18 51.613952
-21 19 10.198039
-21 20 5.000000
-21 22 10.198039
-21 23 2.000000
-21 24 10.770330
-21 25 4.000000
-21 26 12.206556
-21 27 55.081757
-21 28 56.648036
-21 29 52.201533
-21 30 52.000000
-21 31 48.383882
-21 32 50.159745
-21 33 47.434165
-21 34 44.147480
-21 35 47.423623
-21 36 74.330344
-21 37 73.681748
-21 38 70.837843
-21 39 68.007353
-21 40 67.446275
-21 41 72.277244
-21 42 62.096699
-21 43 66.287254
-21 44 71.196910
-21 45 68.249542
-21 46 70.519501
-21 47 69.289249
-21 48 50.000000
-21 49 10.000000
-21 50 3.000000
-21 51 36.055513
-21 52 13.928388
-21 53 22.671568
-21 54 41.340053
-21 55 46.840154
-21 56 46.572524
-21 57 21.540659
-21 58 15.620499
-21 59 27.459060
-21 60 32.388269
-21 61 52.478567
-21 62 50.089919
-21 63 30.479501
-21 64 23.537205
-21 65 15.297059
-21 66 25.961510
-21 67 22.022716
-21 68 34.828150
-21 69 45.044423
-21 70 38.600518
-21 71 54.451814
-21 72 46.141088
-21 73 54.230987
-21 74 60.207973
-21 75 22.561028
-21 76 38.327536
-21 77 18.248288
-21 78 22.472205
-21 79 53.263496
-21 80 64.070274
-21 81 32.388269
-21 82 43.566042
-21 83 31.764760
-21 84 16.763055
-21 85 20.518285
-21 86 22.472205
-21 87 22.847319
-21 88 31.320920
-21 89 46.615448
-21 90 26.925824
-21 91 32.388269
-21 92 27.892651
-21 93 30.083218
-21 94 41.593269
-21 95 36.249138
-21 96 26.076810
-21 97 41.109610
-21 98 38.118237
-21 99 40.311289
-21 100 25.612497
-21 101 53.150729
-22 1 45.000000
-22 2 81.394103
-22 3 72.277244
-22 4 82.000000
-22 5 77.620873
-22 6 82.462113
-22 7 73.375745
-22 8 74.330344
-22 9 79.056942
-22 10 42.426407
-22 11 46.097722
-22 12 47.423623
-22 13 51.224994
-22 14 46.097722
-22 15 53.150729
-22 16 51.662365
-22 17 53.150729
-22 18 56.568542
-22 19 4.000000
-22 20 5.385165
-22 21 10.198039
-22 23 10.000000
-22 24 2.000000
-22 25 10.198039
-22 26 5.000000
-22 27 60.415230
-22 28 62.649820
-22 29 57.697487
-22 30 58.309519
-22 31 54.120237
-22 32 56.603887
-22 33 53.235327
-22 34 49.244289
-22 35 54.083269
-22 36 84.433406
-22 37 83.815273
-22 38 80.956779
-22 39 78.160092
-22 40 77.620873
-22 41 82.462113
-22 42 72.277244
-22 43 76.485293
-22 44 81.394103
-22 45 78.447435
-22 46 79.555012
-22 47 78.160092
-22 48 55.172457
-22 49 2.000000
-22 50 7.280110
-22 51 43.863424
-22 52 21.213203
-22 53 29.154759
-22 54 49.244289
-22 55 57.008771
-22 56 55.901699
-22 57 31.622777
-22 58 22.360680
-22 59 25.495098
-22 60 33.541020
-22 61 60.415230
-22 62 60.207973
-22 63 39.051248
-22 64 29.154759
-22 65 25.495098
-22 66 35.355339
-22 67 32.015621
-22 68 44.102154
-22 69 55.000000
-22 70 47.853944
-22 71 64.195015
-22 72 55.901699
-22 73 64.257295
-22 74 66.850580
-22 75 25.000000
-22 76 35.000000
-22 77 21.189620
-22 78 17.117243
-22 79 60.207973
-22 80 71.589105
-22 81 42.579338
-22 82 53.758720
-22 83 40.162171
-22 84 26.172505
-22 85 29.410882
-22 86 29.206164
-22 87 26.870058
-22 88 33.837849
-22 89 55.362442
-22 90 27.000000
-22 91 42.107007
-22 92 38.078866
-22 93 40.162171
-22 94 51.478151
-22 95 46.238512
-22 96 35.777088
-22 97 51.244512
-22 98 38.275318
-22 99 49.040799
-22 100 33.105891
-22 101 62.649820
-23 1 35.000000
-23 2 71.589105
-23 3 62.641839
-23 4 72.277244
-23 5 68.007353
-23 6 72.801099
-23 7 63.906181
-23 8 65.000000
-23 9 69.641941
-23 10 36.055513
-23 11 39.051248
-23 12 40.607881
-23 13 43.863424
-23 14 40.311289
-23 15 46.097722
-23 16 45.486262
-23 17 47.169906
-23 18 50.000000
-23 19 10.770330
-23 20 5.385165
-23 21 2.000000
-23 22 10.000000
-23 24 10.198039
-23 25 2.000000
-23 26 11.180340
-23 27 57.008771
-23 28 58.523500
-23 29 54.120237
-23 30 53.851648
-23 31 50.289164
-23 32 52.000000
-23 33 49.335586
-23 34 46.097722
-23 35 49.244289
-23 36 75.026662
-23 37 74.330344
-23 38 71.512237
-23 39 68.622154
-23 40 68.007353
-23 41 72.801099
-23 42 62.641839
-23 43 66.708320
-23 44 71.589105
-23 45 68.658576
-23 46 69.921384
-23 47 68.622154
-23 48 48.414874
-23 49 10.198039
-23 50 3.605551
-23 51 37.735925
-23 52 15.811388
-23 53 21.213203
-23 54 40.311289
-23 55 47.434165
-23 56 46.097722
-23 57 22.360680
-23 58 14.142136
-23 59 25.495098
-23 60 30.413813
-23 61 51.478151
-23 62 50.249378
-23 63 32.015621
-23 64 25.495098
-23 65 15.811388
-23 66 25.495098
-23 67 22.022716
-23 68 36.124784
-23 69 45.000000
-23 70 38.078866
-23 71 54.230987
-23 72 47.169906
-23 73 55.036352
-23 74 58.898217
-23 75 20.615528
-23 76 36.400549
-23 77 20.223748
-23 78 20.808652
-23 79 52.009614
-23 80 62.968246
-23 81 32.756679
-23 82 43.931765
-23 83 30.870698
-23 84 16.278821
-23 85 22.022716
-23 86 24.351591
-23 87 21.023796
-23 88 29.410882
-23 89 45.880279
-23 90 28.792360
-23 91 32.140317
-23 92 28.460499
-23 93 30.870698
-23 94 42.544095
-23 95 37.121422
-23 96 27.202941
-23 97 41.785165
-23 98 36.124784
-23 99 39.560081
-23 100 24.413111
-23 101 52.773099
-24 1 45.044423
-24 2 81.049368
-24 3 71.805292
-24 4 81.584312
-24 5 77.129761
-24 6 82.000000
-24 7 72.801099
-24 8 73.681748
-24 9 78.447435
-24 10 41.036569
-24 11 44.821870
-24 12 46.097722
-24 13 50.000000
-24 14 44.598206
-24 15 51.855569
-24 16 50.209561
-24 17 51.662365
-24 18 55.172457
-24 19 6.000000
-24 20 6.403124
-24 21 10.770330
-24 22 2.000000
-24 23 10.198039
-24 25 10.000000
-24 26 3.000000
-24 27 62.241465
-24 28 64.412732
-24 29 59.506302
-24 30 60.033324
-24 31 55.901699
-24 32 58.309519
-24 33 55.009090
-24 34 51.078371
-24 35 55.758407
-24 36 85.094066
-24 37 84.433406
-24 38 81.596569
-24 39 78.746428
-24 40 78.160092
-24 41 82.969874
-24 42 72.801099
-24 43 76.902536
-24 44 81.786307
-24 45 78.854296
-24 46 79.075913
-24 47 77.620873
-24 48 53.814496
-24 49 4.000000
-24 50 8.062258
-24 51 45.343136
-24 52 22.671568
-24 53 28.178006
-24 54 48.466483
-24 55 57.567352
-24 56 55.578773
-24 57 32.310989
-24 58 21.540659
-24 59 23.537205
-24 60 31.764760
-24 61 59.615434
-24 62 60.406953
-24 63 40.360872
-24 64 30.886890
-24 65 25.961510
-24 66 35.128336
-24 67 32.140317
-24 68 45.221676
-24 69 55.036352
-24 70 47.518417
-24 71 64.070274
-24 72 56.824291
-24 73 65.000000
-24 74 65.734314
-24 75 23.430749
-24 76 33.000000
-24 77 23.086793
-24 78 15.132746
-24 79 59.169249
-24 80 70.661163
-24 81 42.953463
-24 82 54.129474
-24 83 39.560081
-24 84 26.019224
-24 85 30.610456
-24 86 30.805844
-24 87 25.495098
-24 88 32.202484
-24 89 54.817880
-24 90 29.000000
-24 91 42.011903
-24 92 38.600518
-24 93 40.853396
-24 94 52.325902
-24 95 47.010637
-24 96 36.715120
-24 97 51.865210
-24 98 36.400549
-24 99 48.507731
-24 100 32.310989
-24 101 62.393910
-25 1 35.057096
-25 2 71.196910
-25 3 62.096699
-25 4 71.805292
-25 5 67.446275
-25 6 72.277244
-25 7 63.245553
-25 8 64.257295
-25 9 68.949257
-25 10 34.409301
-25 11 37.536649
-25 12 39.051248
-25 13 42.426407
-25 14 38.587563
-25 15 44.598206
-25 16 43.829214
-25 17 45.486262
-25 18 48.414874
-25 19 11.661904
-25 20 6.403124
-25 21 4.000000
-25 22 10.198039
-25 23 2.000000
-25 24 10.000000
-25 26 10.440307
-25 27 58.940648
-25 28 60.406953
-25 29 56.044625
-25 30 55.713553
-25 31 52.201533
-25 32 53.851648
-25 33 51.244512
-25 34 48.052055
-25 35 51.078371
-25 36 75.769387
-25 37 75.026662
-25 38 72.235725
-25 39 69.289249
-25 40 68.622154
-25 41 73.375745
-25 42 63.245553
-25 43 67.186308
-25 44 72.034714
-25 45 69.123079
-25 46 69.375788
-25 47 68.007353
-25 48 46.861498
-25 49 10.770330
-25 50 5.000000
-25 51 39.446166
-25 52 17.720045
-25 53 19.849433
-25 54 39.357337
-25 55 48.104054
-25 56 45.705580
-25 57 23.323808
-25 58 12.806248
-25 59 23.537205
-25 60 28.442925
-25 61 50.537115
-25 62 50.487622
-25 63 33.600595
-25 64 27.459060
-25 65 16.552945
-25 66 25.179357
-25 67 22.203603
-25 68 37.483330
-25 69 45.044423
-25 70 37.656341
-25 71 54.083269
-25 72 48.259714
-25 73 55.901699
-25 74 57.628118
-25 75 18.681542
-25 76 34.481879
-25 77 22.203603
-25 78 19.209373
-25 79 50.803543
-25 80 61.911227
-25 81 33.241540
-25 82 44.384682
-25 83 30.083218
-25 84 16.031220
-25 85 23.600847
-25 86 26.248809
-25 87 19.235384
-25 88 27.513633
-25 89 45.221676
-25 90 30.675723
-25 91 32.015621
-25 92 29.154759
-25 93 31.764760
-25 94 43.566042
-25 95 38.078866
-25 96 28.425341
-25 97 42.544095
-25 98 34.132096
-25 99 38.897301
-25 100 23.323808
-25 101 52.469038
-26 1 45.276926
-26 2 80.622577
-26 3 71.196910
-26 4 81.049368
-26 5 76.485293
-26 6 81.394103
-26 7 72.034714
-26 8 72.801099
-26 9 77.620873
-26 10 39.051248
-26 11 43.011626
-26 12 44.204072
-26 13 48.259714
-26 14 42.426407
-26 15 50.000000
-26 16 48.104054
-26 17 49.497475
-26 18 53.150729
-26 19 9.000000
-26 20 8.602325
-26 21 12.206556
-26 22 5.000000
-26 23 11.180340
-26 24 3.000000
-26 25 10.440307
-26 27 65.000000
-26 28 67.082039
-26 29 62.241465
-26 30 62.649820
-26 31 58.600341
-26 32 60.901560
-26 33 57.697487
-26 34 53.851648
-26 35 58.309519
-26 36 86.162637
-26 37 85.440037
-26 38 82.637764
-26 39 79.711982
-26 40 79.056942
-26 41 83.815273
-26 42 73.681748
-26 43 77.620873
-26 44 82.462113
-26 45 79.555012
-26 46 78.447435
-26 47 76.902536
-26 48 51.855569
-26 49 7.000000
-26 50 9.899495
-26 51 47.634021
-26 52 25.000000
-26 53 26.925824
-26 54 47.434165
-26 55 58.523500
-26 56 55.226805
-26 57 33.541020
-26 58 20.615528
-26 59 20.615528
-26 60 29.154759
-26 61 58.523500
-26 62 60.827625
-26 63 42.426407
-26 64 33.541020
-26 65 26.925824
-26 66 35.000000
-26 67 32.557641
-26 68 47.010637
-26 69 55.226805
-26 70 47.169906
-26 71 64.000000
-26 72 58.309519
-26 73 66.211781
-26 74 64.140471
-26 75 21.213203
-26 76 30.000000
-26 77 25.961510
-26 78 12.165525
-26 79 57.706152
-26 80 69.354164
-26 81 43.680659
-26 82 54.817880
-26 83 38.832976
-26 84 26.076810
-26 85 32.557641
-26 86 33.286634
-26 87 23.600847
-26 88 29.832868
-26 89 54.129474
-26 90 32.000000
-26 91 42.047592
-26 92 39.560081
-26 93 42.047592
-26 94 53.712196
-26 95 48.301139
-26 96 38.275318
-26 97 52.924474
-26 98 33.615473
-26 99 47.853944
-26 100 31.320920
-26 101 62.128898
-27 1 58.523500
-27 2 89.022469
-27 3 85.755466
-27 4 91.400219
-27 5 90.138782
-27 6 93.005376
-27 7 89.185201
-27 8 91.787799
-27 9 94.339811
-27 10 85.146932
-27 11 85.586214
-27 12 87.572827
-27 13 88.283634
-27 14 90.138782
-27 15 91.241438
-27 16 93.536089
-27 17 95.524866
-27 18 96.176920
-27 19 56.797887
-27 20 56.648036
-27 21 55.081757
-27 22 60.415230
-27 23 57.008771
-27 24 62.241465
-27 25 58.940648
-27 26 65.000000
-27 28 5.000000
-27 29 3.000000
-27 30 7.071068
-27 31 7.000000
-27 32 8.602325
-27 33 8.000000
-27 34 11.180340
-27 35 11.180340
-27 36 61.717096
-27 37 62.649820
-27 38 60.033324
-27 39 59.908263
-27 40 61.032778
-27 41 65.192024
-27 42 58.258047
-27 43 64.031242
-27 44 68.007353
-27 45 65.604878
-27 46 91.263355
-27 47 91.809586
-27 48 94.201911
-27 49 58.600341
-27 50 55.973208
-27 51 23.537205
-27 52 41.231056
-27 53 70.000000
-27 54 77.620873
-27 55 50.000000
-27 56 71.589105
-27 57 45.276926
-27 58 65.192024
-27 59 82.462113
-27 60 85.586214
-27 61 85.440037
-27 62 61.032778
-27 63 30.413813
-27 64 31.622777
-27 65 50.000000
-27 66 60.827625
-27 67 54.451814
-27 68 33.241540
-27 69 62.649820
-27 70 67.675697
-27 71 71.561163
-27 72 39.051248
-27 73 47.423623
-27 74 97.718985
-27 75 75.663730
-27 76 93.407708
-27 77 39.357337
-27 78 76.896034
-27 79 90.801982
-27 80 96.772930
-27 81 50.921508
-27 82 53.851648
-27 83 69.231496
-27 84 58.008620
-27 85 38.013156
-27 86 32.756679
-27 87 74.242845
-27 88 83.216585
-27 89 76.321688
-27 90 37.536649
-27 91 60.440053
-27 92 47.539457
-27 93 43.965896
-27 94 40.496913
-27 95 42.047592
-27 96 39.623226
-27 97 46.647615
-27 98 91.787799
-27 99 72.422372
-27 100 69.180922
-27 101 73.925638
-28 1 57.008771
-28 2 86.023253
-28 3 83.240615
-28 4 88.481637
-28 5 87.464278
-28 6 90.138782
-28 7 86.769810
-28 8 89.442719
-28 9 91.787799
-28 10 85.000000
-28 11 85.146932
-28 12 87.143560
-28 13 87.572827
-28 14 90.000000
-28 15 90.553851
-28 16 93.134312
-28 17 95.131488
-28 18 95.524866
-28 19 59.169249
-28 20 58.600341
-28 21 56.648036
-28 22 62.649820
-28 23 58.523500
-28 24 64.412732
-28 25 60.406953
-28 26 67.082039
-28 27 5.000000
-28 29 5.830952
-28 30 5.000000
-28 31 8.602325
-28 32 7.000000
-28 33 9.433981
-28 34 14.142136
-28 35 10.000000
-28 36 57.306195
-28 37 58.309519
-28 38 55.758407
-28 39 55.803226
-28 40 57.008771
-28 41 61.032778
-28 42 54.488531
-28 43 60.207973
-28 44 64.031242
-28 45 61.717096
-28 46 88.509886
-28 47 89.185201
-28 48 93.536089
-28 49 60.901560
-28 50 57.775427
-28 51 23.000000
-28 52 42.720019
-28 53 70.178344
-28 54 76.485293
-28 55 47.169906
-28 56 69.641941
-28 57 45.000000
-28 58 65.764732
-28 59 83.815273
-28 60 86.313383
-28 61 83.815273
-28 62 58.309519
-28 63 30.000000
-28 64 33.541020
-28 65 50.249378
-28 66 60.207973
-28 67 54.037024
-28 68 31.780497
-28 69 60.415230
-28 70 66.219333
-28 71 68.963759
-28 72 36.055513
-28 73 43.863424
-28 74 96.301610
-28 75 76.485293
-28 76 94.868330
-28 77 41.880783
-28 78 78.790862
-28 79 89.498603
-28 80 94.921020
-28 81 49.477268
-28 82 51.429563
-28 83 68.468971
-28 84 58.137767
-28 85 38.470768
-28 86 34.176015
-28 87 74.813100
-28 88 83.725743
-28 89 74.632433
-28 90 41.036569
-28 91 59.228372
-28 92 46.529560
-28 93 42.755117
-28 94 38.013156
-28 95 40.162171
-28 96 39.051248
-28 97 44.283180
-28 98 92.574294
-28 99 71.063352
-28 100 69.000000
-28 101 71.554175
-29 1 55.713553
-29 2 86.683332
-29 3 83.216585
-29 4 89.022469
-29 5 87.658428
-29 6 90.603532
-29 7 86.608314
-29 8 89.185201
-29 9 91.809586
-29 10 82.152298
-29 11 82.607506
-29 12 84.593144
-29 13 85.328776
-29 14 87.143560
-29 15 88.283634
-29 16 90.553851
-29 17 92.541882
-29 18 93.214806
-29 19 54.120237
-29 20 53.851648
-29 21 52.201533
-29 22 57.697487
-29 23 54.120237
-29 24 59.506302
-29 25 56.044625
-29 26 62.241465
-29 27 3.000000
-29 28 5.830952
-29 30 5.385165
-29 31 4.000000
-29 32 6.403124
-29 33 5.000000
-29 34 8.602325
-29 35 8.602325
-29 36 60.415230
-29 37 61.269895
-29 38 58.591808
-29 39 58.309519
-29 40 59.363288
-29 41 63.631753
-29 42 56.400355
-29 43 62.201286
-29 44 66.287254
-29 45 63.820060
-29 46 88.814413
-29 47 89.308454
-29 48 91.241438
-29 49 55.901699
-29 50 53.141321
-29 51 20.615528
-29 52 38.327536
-29 53 67.000000
-29 54 74.726167
-29 55 47.634021
-29 56 68.876701
-29 57 42.296572
-29 58 62.201286
-29 59 79.555012
-29 60 82.607506
-29 61 82.637764
-29 62 58.600341
-29 63 27.459060
-29 64 28.792360
-29 65 47.000000
-29 66 57.870545
-29 67 51.478151
-29 68 30.463092
-29 69 60.033324
-29 70 64.845971
-29 71 69.065187
-29 72 36.796739
-29 73 45.453273
-29 74 94.868330
-29 75 72.691127
-29 76 90.520716
-29 77 36.715120
-29 78 74.094534
-29 79 87.931792
-29 80 94.021274
-29 81 48.104054
-29 82 51.312766
-29 83 66.287254
-29 84 55.009090
-29 85 35.014283
-29 86 29.832868
-29 87 71.253070
-29 88 80.224684
-29 89 73.539105
-29 90 35.355339
-29 91 57.567352
-29 92 44.643029
-29 93 41.109610
-29 94 38.013156
-29 95 39.357337
-29 96 36.674242
-29 97 44.102154
-29 98 88.814413
-29 99 69.570109
-29 100 66.189123
-29 101 71.344236
-30 1 52.201533
-30 2 82.006097
-30 3 78.892332
-30 4 84.403791
-30 5 83.216585
-30 6 86.023253
-30 7 82.365041
-30 8 85.000000
-30 9 87.464278
-30 10 80.000000
-30 11 80.156098
-30 12 82.152298
-30 13 82.607506
-30 14 85.000000
-30 15 85.586214
-30 16 88.141931
-30 17 90.138782
-30 18 90.553851
-30 19 54.918121
-30 20 54.120237
-30 21 52.000000
-30 22 58.309519
-30 23 53.851648
-30 24 60.033324
-30 25 55.713553
-30 26 62.649820
-30 27 7.071068
-30 28 5.000000
-30 29 5.385165
-30 31 5.385165
-30 32 2.000000
-30 33 5.830952
-30 34 11.180340
-30 35 5.000000
-30 36 55.036352
-30 37 55.901699
-30 38 53.235327
-30 39 53.000000
-30 40 54.083269
-30 41 58.309519
-30 42 51.224994
-30 43 57.008771
-30 44 61.032778
-30 45 58.600341
-30 46 84.314886
-30 47 84.905830
-30 48 88.566359
-30 49 56.603887
-30 50 53.225934
-30 51 18.000000
-30 52 38.078866
-30 53 65.192024
-30 54 71.589105
-30 55 43.011626
-30 56 65.000000
-30 57 40.000000
-30 58 60.827625
-30 59 79.056942
-30 60 81.394103
-30 61 79.056942
-30 62 54.083269
-30 63 25.000000
-30 64 29.154759
-30 65 45.276926
-30 66 55.226805
-30 67 49.040799
-30 68 26.925824
-30 69 55.901699
-30 70 61.400326
-30 71 64.660653
-30 72 32.015621
-30 73 40.360872
-30 74 91.482239
-30 75 71.589105
-30 76 90.138782
-30 77 37.802116
-30 78 74.249579
-30 79 84.646323
-30 80 90.249654
-30 81 44.643029
-30 82 47.010637
-30 83 63.505905
-30 84 53.150729
-30 85 33.541020
-30 86 29.546573
-30 87 69.871310
-30 88 78.771822
-30 89 69.892775
-30 90 37.802116
-30 91 54.341513
-30 92 41.593269
-30 93 37.854986
-30 94 33.615473
-30 95 35.468296
-30 96 34.058773
-30 97 39.824616
-30 98 87.664132
-30 99 66.219333
-30 100 64.000000
-30 101 67.119297
-31 1 52.000000
-31 2 83.630138
-31 3 79.881162
-31 4 85.912746
-31 5 84.403791
-31 6 87.458562
-31 7 83.216585
-31 8 85.755466
-31 9 88.481637
-31 10 78.160092
-31 11 78.638413
-31 12 80.622577
-31 13 81.394103
-31 14 83.150466
-31 15 84.344532
-31 16 86.579443
-31 17 88.566359
-31 18 89.269256
-31 19 50.606324
-31 20 50.159745
-31 21 48.383882
-31 22 54.120237
-31 23 50.289164
-31 24 55.901699
-31 25 52.201533
-31 26 58.600341
-31 27 7.000000
-31 28 8.602325
-31 29 4.000000
-31 30 5.385165
-31 32 5.000000
-31 33 1.000000
-31 34 5.830952
-31 35 5.830952
-31 36 58.872744
-31 37 59.615434
-31 38 56.859476
-31 39 56.356011
-31 40 57.306195
-31 41 61.717096
-31 42 54.083269
-31 43 59.908263
-31 44 64.140471
-31 45 61.587336
-31 46 85.603738
-31 47 86.023253
-31 48 87.298339
-31 49 52.354560
-31 50 49.396356
-31 51 16.763055
-31 52 34.481879
-31 53 63.000000
-31 54 70.880181
-31 55 44.598206
-31 56 65.299311
-31 57 38.327536
-31 58 58.215118
-31 59 75.690158
-31 60 78.638413
-31 61 78.924014
-31 62 55.443665
-31 63 23.537205
-31 64 25.079872
-31 65 43.000000
-31 66 53.935146
-31 67 47.518417
-31 68 26.832816
-31 69 56.603887
-31 70 61.098281
-31 71 65.802736
-31 72 33.970576
-31 73 43.011626
-31 74 91.082380
-31 75 68.731361
-31 76 86.683332
-31 77 33.286634
-31 78 70.384657
-31 79 84.118963
-31 80 90.376988
-31 81 44.384682
-31 82 48.010416
-31 83 62.369865
-31 84 51.009803
-31 85 31.016125
-31 86 25.961510
-31 87 67.268120
-31 88 76.236474
-31 89 69.856997
-31 90 32.649655
-31 91 53.758720
-31 92 40.804412
-31 93 37.336309
-31 94 34.828150
-31 95 35.846897
-31 96 32.756679
-31 97 40.804412
-31 98 84.852814
-31 99 65.787537
-31 100 62.201286
-31 101 67.955868
-32 1 50.289164
-32 2 80.430094
-32 3 77.175126
-32 4 82.800966
-32 5 81.541401
-32 6 84.403791
-32 7 80.622577
-32 8 83.240615
-32 9 85.755466
-32 10 78.000000
-32 11 78.160092
-32 12 80.156098
-32 13 80.622577
-32 14 83.000000
-32 15 83.600239
-32 16 86.145226
-32 17 88.141931
-32 18 88.566359
-32 19 53.254108
-32 20 52.354560
-32 21 50.159745
-32 22 56.603887
-32 23 52.000000
-32 24 58.309519
-32 25 53.851648
-32 26 60.901560
-32 27 8.602325
-32 28 7.000000
-32 29 6.403124
-32 30 2.000000
-32 31 5.000000
-32 33 5.099020
-32 34 10.440307
-32 35 3.000000
-32 36 54.230987
-32 37 55.036352
-32 38 52.325902
-32 39 51.971146
-32 40 53.000000
-32 41 57.306195
-32 42 50.000000
-32 43 55.803226
-32 44 59.908263
-32 45 57.428216
-32 46 82.661962
-32 47 83.216585
-32 48 86.579443
-32 49 54.918121
-32 50 51.429563
-32 51 16.000000
-32 52 36.249138
-32 53 63.198101
-32 54 69.634761
-32 55 41.400483
-32 56 63.158531
-32 57 38.000000
-32 58 58.855756
-32 59 77.162167
-32 60 79.429214
-32 61 77.162167
-32 62 52.430907
-32 63 23.000000
-32 64 27.459060
-32 65 43.289722
-32 66 53.235327
-32 67 47.042534
-32 68 25.000000
-32 69 54.120237
-32 70 59.481089
-32 71 62.968246
-32 72 30.479501
-32 73 39.051248
-32 74 89.560036
-32 75 69.634761
-32 76 88.255311
-32 77 36.235342
-32 78 72.449983
-32 79 82.710338
-32 80 88.391176
-32 81 42.720019
-32 82 45.276926
-32 83 61.522354
-32 84 51.156622
-32 85 31.575307
-32 86 27.730849
-32 87 67.896981
-32 88 76.791927
-32 89 68.007353
-32 90 36.619667
-32 91 52.392748
-32 92 39.623226
-32 93 35.902646
-32 94 31.906112
-32 95 33.615473
-32 96 32.062439
-32 97 38.078866
-32 98 85.702975
-32 99 64.288413
-32 100 62.000000
-32 101 65.368188
-33 1 51.078371
-33 2 82.879430
-33 3 79.056942
-33 4 85.146932
-33 5 83.600239
-33 6 86.683332
-33 7 82.377181
-33 8 84.905830
-33 9 87.658428
-33 10 77.162167
-33 11 77.646635
-33 12 79.630396
-33 13 80.411442
-33 14 82.152298
-33 15 83.360662
-33 16 85.586214
-33 17 87.572827
-33 18 88.283634
-33 19 49.739320
-33 20 49.244289
-33 21 47.434165
-33 22 53.235327
-33 23 49.335586
-33 24 55.009090
-33 25 51.244512
-33 26 57.697487
-33 27 8.000000
-33 28 9.433981
-33 29 5.000000
-33 30 5.830952
-33 31 1.000000
-33 32 5.099020
-33 34 5.385165
-33 35 5.385165
-33 36 58.523500
-33 37 59.236813
-33 38 56.462377
-33 39 55.901699
-33 40 56.824291
-33 41 61.269895
-33 42 53.535035
-33 43 59.363288
-33 44 63.631753
-33 45 61.057350
-33 46 84.811556
-33 47 85.211502
-33 48 86.313383
-33 49 51.478151
-33 50 48.466483
-33 51 15.811388
-33 52 33.526109
-33 53 62.000000
-33 54 69.921384
-33 55 43.863424
-33 56 64.412732
-33 57 37.336309
-33 58 57.218878
-33 59 74.726167
-33 60 77.646635
-33 61 78.000000
-33 62 54.671748
-33 63 22.561028
-33 64 24.166092
-33 65 42.000000
-33 66 52.952809
-33 67 46.529560
-33 68 25.942244
-33 69 55.758407
-33 70 60.166436
-33 71 65.000000
-33 72 33.301652
-33 73 42.438190
-33 74 90.138782
-33 75 67.742158
-33 76 85.726309
-33 77 32.449961
-33 78 69.462220
-33 79 83.168504
-33 80 89.470666
-33 81 43.462628
-33 82 47.201695
-33 83 61.392182
-33 84 50.009999
-33 85 30.016662
-33 86 25.000000
-33 87 66.272166
-33 88 75.239617
-33 89 68.942005
-33 90 32.015621
-33 91 52.810984
-33 92 39.849718
-33 93 36.400549
-33 94 34.058773
-33 95 34.985711
-33 96 31.780497
-33 97 40.000000
-33 98 83.862983
-33 99 64.845971
-33 100 61.204575
-33 101 67.119297
-34 1 51.478151
-34 2 84.852814
-34 3 80.430094
-34 4 87.000000
-34 5 85.146932
-34 6 88.459030
-34 7 83.600239
-34 8 86.023253
-34 9 89.022469
-34 10 75.663730
-34 11 76.485293
-34 12 78.447435
-34 13 79.555012
-34 14 80.622577
-34 15 82.462113
-34 16 84.344532
-34 17 86.313383
-34 18 87.321246
-34 19 45.617979
-34 20 45.541190
-34 21 44.147480
-34 22 49.244289
-34 23 46.097722
-34 24 51.078371
-34 25 48.052055
-34 26 53.851648
-34 27 11.180340
-34 28 14.142136
-34 29 8.602325
-34 30 11.180340
-34 31 5.830952
-34 32 10.440307
-34 33 5.385165
-34 35 10.000000
-34 36 62.641839
-34 37 63.245553
-34 38 60.406953
-34 39 59.615434
-34 40 60.415230
-34 41 65.000000
-34 42 56.824291
-34 43 62.649820
-34 44 67.082039
-34 45 64.412732
-34 46 86.452299
-34 47 86.683332
-34 48 85.375641
-34 49 47.423623
-34 50 44.922155
-34 51 16.401219
-34 52 30.413813
-34 53 60.207973
-34 54 69.641941
-34 55 46.097722
-34 56 65.192024
-34 57 36.400549
-34 58 55.000000
-34 59 71.589105
-34 60 75.166482
-34 61 78.262379
-34 62 56.568542
-34 63 22.360680
-34 64 20.615528
-34 65 40.311289
-34 66 52.201533
-34 67 45.607017
-34 68 27.018512
-34 69 57.008771
-34 70 60.373835
-34 71 66.603303
-34 72 36.055513
-34 73 45.650849
-34 74 90.077744
-34 75 65.192024
-34 76 82.462113
-34 77 28.178006
-34 78 65.787537
-34 79 83.006024
-34 80 89.944427
-34 81 43.908997
-34 82 48.836462
-34 83 60.728906
-34 84 48.373546
-34 85 28.284271
-34 86 22.090722
-34 87 64.007812
-34 88 73.006849
-34 89 69.354164
-34 90 26.907248
-34 91 52.801515
-34 92 39.812058
-34 93 36.715120
-34 94 36.124784
-34 95 36.235342
-34 96 31.384710
-34 97 41.725292
-34 98 81.301906
-34 99 64.884513
-34 100 59.841457
-34 101 68.410526
-35 1 47.434165
-35 2 78.102497
-35 3 74.625733
-35 4 80.430094
-35 5 79.056942
-35 6 82.006097
-35 7 78.032045
-35 8 80.622577
-35 9 83.216585
-35 10 75.000000
-35 11 75.166482
-35 12 77.162167
-35 13 77.646635
-35 14 80.000000
-35 15 80.622577
-35 16 83.150466
-35 17 85.146932
-35 18 85.586214
-35 19 50.803543
-35 20 49.739320
-35 21 47.423623
-35 22 54.083269
-35 23 49.244289
-35 24 55.758407
-35 25 51.078371
-35 26 58.309519
-35 27 11.180340
-35 28 10.000000
-35 29 8.602325
-35 30 5.000000
-35 31 5.830952
-35 32 3.000000
-35 33 5.385165
-35 34 10.000000
-35 36 53.141321
-35 37 53.851648
-35 38 51.078371
-35 39 50.537115
-35 40 51.478151
-35 41 55.901699
-35 42 48.259714
-35 43 54.083269
-35 44 58.309519
-35 45 55.758407
-35 46 80.212219
-35 47 80.709355
-35 48 83.600239
-35 49 52.430907
-35 50 48.764741
-35 51 13.000000
-35 52 33.541020
-35 53 60.207973
-35 54 66.708320
-35 55 39.051248
-35 56 60.415230
-35 57 35.000000
-35 58 55.901699
-35 59 74.330344
-35 60 76.485293
-35 61 74.330344
-35 62 50.000000
-35 63 20.000000
-35 64 25.000000
-35 65 40.311289
-35 66 50.249378
-35 67 44.045431
-35 68 22.135944
-35 69 51.478151
-35 70 56.612719
-35 71 60.464866
-35 72 28.284271
-35 73 37.202150
-35 74 86.683332
-35 75 66.708320
-35 76 85.440037
-35 77 33.970576
-35 78 69.771054
-35 79 79.812280
-35 80 85.615419
-35 81 39.849718
-35 82 42.720019
-35 83 58.549125
-35 84 48.166378
-35 85 28.635642
-35 86 25.059928
-35 87 64.938432
-35 88 73.824115
-35 89 65.192024
-35 90 34.985711
-35 91 49.477268
-35 92 36.674242
-35 93 32.984845
-35 94 29.410882
-35 95 30.870698
-35 96 29.068884
-35 97 35.510562
-35 98 82.764727
-35 99 61.400326
-35 100 59.000000
-35 101 62.769419
-36 1 44.204072
-36 2 42.000000
-36 3 46.097722
-36 4 45.000000
-36 5 47.265209
-36 6 47.000000
-36 7 50.009999
-36 8 52.952809
-36 9 52.239832
-36 10 75.822160
-36 11 72.622311
-36 12 74.202426
-36 13 71.281134
-36 14 79.649231
-36 15 73.783467
-36 16 79.056942
-36 17 80.709355
-36 18 78.032045
-36 19 83.240615
-36 20 79.056942
-36 21 74.330344
-36 22 84.433406
-36 23 75.026662
-36 24 85.094066
-36 25 75.769387
-36 26 86.162637
-36 27 61.717096
-36 28 57.306195
-36 29 60.415230
-36 30 55.036352
-36 31 58.872744
-36 32 54.230987
-36 33 58.523500
-36 34 62.641839
-36 35 53.141321
-36 37 2.000000
-36 38 3.605551
-36 39 7.071068
-36 40 8.602325
-36 41 7.000000
-36 42 13.453624
-36 43 13.000000
-36 44 12.000000
-36 45 12.369317
-36 46 47.095647
-36 47 49.254441
-36 48 76.321688
-36 49 83.815273
-36 50 77.162167
-36 51 50.249378
-36 52 66.098411
-36 53 69.202601
-36 54 58.600341
-36 55 27.730849
-36 56 44.654227
-36 57 52.810984
-36 58 70.491134
-36 59 91.263355
-36 60 86.452299
-36 61 57.697487
-36 62 29.732137
-36 63 50.039984
-36 64 65.030762
-36 65 59.236813
-36 66 55.217751
-36 67 54.589376
-36 68 43.104524
-36 69 36.796739
-36 70 48.836462
-36 71 35.777088
-36 72 30.066593
-36 73 20.396078
-36 74 69.641941
-36 75 80.212219
-36 76 101.212647
-36 77 73.334848
-36 78 93.059121
-36 79 65.741920
-36 80 63.324561
-36 81 42.941821
-36 82 32.449961
-36 83 58.000000
-36 84 61.773781
-36 85 56.885851
-36 86 62.128898
-36 87 76.400262
-36 88 82.134037
-36 89 50.774009
-36 90 80.000000
-36 91 48.414874
-36 92 46.615448
-36 93 44.271887
-36 94 33.541020
-36 95 38.327536
-36 96 49.244289
-36 97 33.241540
-36 98 91.967386
-36 99 52.630789
-36 100 64.660653
-36 101 40.249224
-37 1 43.011626
-37 2 40.000000
-37 3 44.147480
-37 4 43.000000
-37 5 45.276926
-37 6 45.000000
-37 7 48.052055
-37 8 50.990195
-37 9 50.249378
-37 10 74.330344
-37 11 71.063352
-37 12 72.622311
-37 13 69.634761
-37 14 78.102497
-37 15 72.111026
-37 16 77.420927
-37 17 79.056942
-37 18 76.321688
-37 19 82.710338
-37 20 78.447435
-37 21 73.681748
-37 22 83.815273
-37 23 74.330344
-37 24 84.433406
-37 25 75.026662
-37 26 85.440037
-37 27 62.649820
-37 28 58.309519
-37 29 61.269895
-37 30 55.901699
-37 31 59.615434
-37 32 55.036352
-37 33 59.236813
-37 34 63.245553
-37 35 53.851648
-37 36 2.000000
-37 38 3.000000
-37 39 5.830952
-37 40 7.071068
-37 41 5.000000
-37 42 12.206556
-37 43 11.180340
-37 44 10.000000
-37 45 10.440307
-37 46 45.099889
-37 47 47.265209
-37 48 74.625733
-37 49 83.240615
-37 50 76.537572
-37 51 50.487622
-37 52 65.764732
-37 53 68.007353
-37 54 57.008771
-37 55 26.925824
-37 56 43.011626
-37 57 52.201533
-37 58 69.462220
-37 59 90.138782
-37 60 85.146932
-37 61 55.901699
-37 62 28.284271
-37 63 50.000000
-37 64 65.000000
-37 65 58.523500
-37 66 54.083269
-37 67 53.665631
-37 68 43.011626
-37 69 35.355339
-37 70 47.381431
-37 71 34.000000
-37 72 30.000000
-37 73 20.099751
-37 74 67.779053
-37 75 79.056942
-37 76 100.000000
-37 77 73.171033
-37 78 92.130342
-37 79 63.953108
-37 80 61.400326
-37 81 42.047592
-37 82 31.384710
-37 83 56.639209
-37 84 60.827625
-37 85 56.568542
-37 86 62.032250
-37 87 75.213031
-37 88 80.808415
-37 89 49.091751
-37 90 80.024996
-37 91 47.201695
-37 92 45.880279
-37 93 43.680659
-37 94 33.241540
-37 95 37.854986
-37 96 48.836462
-37 97 32.572995
-37 98 90.609050
-37 99 51.088159
-37 100 63.411355
-37 101 38.470768
-38 1 40.607881
-38 2 40.112342
-38 3 43.566042
-38 4 43.104524
-38 5 45.044423
-38 6 45.099889
-38 7 47.518417
-38 8 50.487622
-38 9 50.039984
-38 10 72.346389
-38 11 69.202601
-38 12 70.802542
-38 13 67.955868
-38 14 76.216796
-38 15 70.491134
-38 16 75.716577
-38 17 77.388630
-38 18 74.793048
-38 19 79.812280
-38 20 75.584390
-38 21 70.837843
-38 22 80.956779
-38 23 71.512237
-38 24 81.596569
-38 25 72.235725
-38 26 82.637764
-38 27 60.033324
-38 28 55.758407
-38 29 58.591808
-38 30 53.235327
-38 31 56.859476
-38 32 52.325902
-38 33 56.462377
-38 34 60.406953
-38 35 51.078371
-38 36 3.605551
-38 37 3.000000
-38 39 3.605551
-38 40 5.385165
-38 41 5.830952
-38 42 9.899495
-38 43 10.198039
-38 44 10.440307
-38 45 10.000000
-38 46 45.000000
-38 47 47.042534
-38 48 73.061618
-38 49 80.361682
-38 50 73.681748
-38 51 47.518417
-38 52 62.801274
-38 53 65.604878
-38 54 55.217751
-38 55 24.166092
-38 56 41.340053
-38 57 49.335586
-38 58 66.887966
-38 59 87.658428
-38 60 82.879430
-38 61 54.626001
-38 62 26.248809
-38 63 47.000000
-38 64 62.000000
-38 65 55.713553
-38 66 51.613952
-38 67 51.000000
-38 68 40.012498
-38 69 33.301652
-38 70 45.343136
-38 71 32.695565
-38 72 27.000000
-38 73 17.117243
-38 74 66.730802
-38 75 76.609399
-38 76 97.616597
-38 77 70.178344
-38 78 89.470666
-38 79 62.649820
-38 80 60.638272
-38 81 39.357337
-38 82 28.844410
-38 83 54.451814
-38 84 58.180753
-38 85 53.600373
-38 86 59.033889
-38 87 72.801099
-38 88 78.568442
-38 89 47.507894
-38 90 77.025970
-38 91 44.821870
-38 92 43.081318
-38 93 40.804412
-38 94 30.265492
-38 95 34.928498
-38 96 45.891176
-38 97 29.732137
-38 98 88.413800
-38 99 49.203658
-38 100 61.073726
-38 101 37.161808
-39 1 37.202150
-39 2 37.336309
-39 3 40.311289
-39 4 40.311289
-39 5 42.000000
-39 6 42.296572
-39 7 44.283180
-39 8 47.265209
-39 9 47.000000
-39 10 68.767725
-39 11 65.604878
-39 12 67.201190
-39 13 64.350602
-39 14 72.622311
-39 15 66.887966
-39 16 72.111026
-39 17 73.783467
-39 18 71.196910
-39 19 77.129761
-39 20 72.801099
-39 21 68.007353
-39 22 78.160092
-39 23 68.622154
-39 24 78.746428
-39 25 69.289249
-39 26 79.711982
-39 27 59.908263
-39 28 55.803226
-39 29 58.309519
-39 30 53.000000
-39 31 56.356011
-39 32 51.971146
-39 33 55.901699
-39 34 59.615434
-39 35 50.537115
-39 36 7.071068
-39 37 5.830952
-39 38 3.605551
-39 40 2.000000
-39 41 5.385165
-39 42 6.403124
-39 43 7.000000
-39 44 8.602325
-39 45 7.280110
-39 46 42.047592
-39 47 44.000000
-39 48 69.462220
-39 49 77.620873
-39 50 70.880181
-39 51 46.097722
-39 52 60.406953
-39 53 62.201286
-39 54 51.613952
-39 55 21.189620
-39 56 37.735925
-39 57 46.572524
-39 58 63.631753
-39 59 84.314886
-39 60 79.397733
-39 61 51.078371
-39 62 22.671568
-39 63 45.099889
-39 64 60.074953
-39 65 52.810984
-39 66 48.259714
-39 67 47.853944
-39 68 38.052595
-39 69 29.732137
-39 70 41.773197
-39 71 29.154759
-39 72 25.179357
-39 73 15.033296
-39 74 63.245553
-39 75 73.239334
-39 76 94.201911
-39 77 68.029405
-39 78 86.313383
-39 79 59.093147
-39 80 57.271284
-39 81 36.249138
-39 82 25.553865
-39 83 50.931326
-39 84 55.009090
-39 85 51.244512
-39 86 57.008771
-39 87 69.404611
-39 88 75.073298
-39 89 43.908997
-39 90 75.166482
-39 91 41.400483
-39 92 40.162171
-39 93 38.078866
-39 94 28.017851
-39 95 32.388269
-39 96 43.416587
-39 97 26.925824
-39 98 84.899941
-39 99 45.607017
-39 100 57.628118
-39 101 33.615473
-40 1 36.055513
-40 2 35.355339
-40 3 38.327536
-40 4 38.327536
-40 5 40.000000
-40 6 40.311289
-40 7 42.296572
-40 8 45.276926
-40 9 45.000000
-40 10 67.268120
-40 11 64.031242
-40 12 65.604878
-40 13 62.681736
-40 14 71.063352
-40 15 65.192024
-40 16 70.455660
-40 17 72.111026
-40 18 69.462220
-40 19 76.687678
-40 20 72.277244
-40 21 67.446275
-40 22 77.620873
-40 23 68.007353
-40 24 78.160092
-40 25 68.622154
-40 26 79.056942
-40 27 61.032778
-40 28 57.008771
-40 29 59.363288
-40 30 54.083269
-40 31 57.306195
-40 32 53.000000
-40 33 56.824291
-40 34 60.415230
-40 35 51.478151
-40 36 8.602325
-40 37 7.071068
-40 38 5.385165
-40 39 2.000000
-40 41 5.000000
-40 42 5.385165
-40 43 5.000000
-40 44 7.071068
-40 45 5.385165
-40 46 40.049969
-40 47 42.000000
-40 48 67.742158
-40 49 77.129761
-40 50 70.342022
-40 51 46.572524
-40 52 60.207973
-40 53 61.032778
-40 54 50.000000
-40 55 20.615528
-40 56 36.055513
-40 57 46.097722
-40 58 62.649820
-40 59 83.216585
-40 60 78.102497
-40 61 49.244289
-40 62 21.213203
-40 63 45.276926
-40 64 60.207973
-40 65 52.201533
-40 66 47.169906
-40 67 47.010637
-40 68 38.209946
-40 69 28.284271
-40 70 40.311289
-40 71 27.313001
-40 72 25.495098
-40 73 15.297059
-40 74 61.351447
-40 75 72.111026
-40 76 93.005376
-40 77 68.000000
-40 78 85.428333
-40 79 57.271284
-40 80 55.317267
-40 81 35.468296
-40 82 24.596748
-40 83 49.578221
-40 84 54.129474
-40 85 51.088159
-40 86 57.078893
-40 87 68.242216
-40 88 73.756356
-40 89 42.190046
-40 90 75.325958
-40 91 40.224371
-40 92 39.560081
-40 93 37.656341
-40 94 28.017851
-40 95 32.140317
-40 96 43.185646
-40 97 26.476405
-40 98 83.546394
-40 99 44.045431
-40 100 56.400355
-40 101 31.780497
-41 1 40.311289
-41 2 35.000000
-41 3 39.293765
-41 4 38.000000
-41 5 40.311289
-41 6 40.000000
-41 7 43.174066
-41 8 46.097722
-41 9 45.276926
-41 10 70.710678
-41 11 67.268120
-41 12 68.767725
-41 13 65.604878
-41 14 74.330344
-41 15 68.007353
-41 16 73.409809
-41 17 75.000000
-41 18 72.111026
-41 19 81.584312
-41 20 77.129761
-41 21 72.277244
-41 22 82.462113
-41 23 72.801099
-41 24 82.969874
-41 25 73.375745
-41 26 83.815273
-41 27 65.192024
-41 28 61.032778
-41 29 63.631753
-41 30 58.309519
-41 31 61.717096
-41 32 57.306195
-41 33 61.269895
-41 34 65.000000
-41 35 55.901699
-41 36 7.000000
-41 37 5.000000
-41 38 5.830952
-41 39 5.385165
-41 40 5.000000
-41 42 10.198039
-41 43 7.071068
-41 44 5.000000
-41 45 5.830952
-41 46 40.112342
-41 47 42.296572
-41 48 70.455660
-41 49 82.000000
-41 50 75.186435
-41 51 51.419841
-41 52 65.192024
-41 53 65.192024
-41 54 53.150729
-41 55 25.495098
-41 56 39.051248
-41 57 50.990195
-41 58 67.082039
-41 59 87.464278
-41 60 82.006097
-41 61 51.478151
-41 62 25.000000
-41 63 50.249378
-41 64 65.192024
-41 65 57.008771
-41 66 51.478151
-41 67 51.623638
-41 68 43.185646
-41 69 32.015621
-41 70 43.931765
-41 71 29.681644
-41 72 30.413813
-41 73 20.223748
-41 74 63.158531
-41 75 76.321688
-41 76 97.082439
-41 77 73.000000
-41 78 89.961103
-41 79 59.539903
-41 80 56.612719
-41 81 40.162171
-41 82 29.154759
-41 83 53.413481
-41 84 58.694122
-41 85 56.080300
-41 86 62.072538
-41 87 72.401657
-41 88 77.620873
-41 89 45.000000
-41 90 80.305666
-41 91 44.418465
-41 92 44.384682
-41 93 42.579338
-41 94 33.015148
-41 95 37.121422
-41 96 48.166378
-41 97 31.400637
-41 98 87.321246
-41 99 47.381431
-41 100 60.464866
-41 101 34.132096
-42 1 30.805844
-42 2 34.481879
-42 3 36.000000
-42 4 37.363083
-42 5 38.327536
-42 6 39.293765
-42 7 40.000000
-42 8 43.000000
-42 9 43.289722
-42 10 62.481997
-42 11 59.405387
-42 12 61.032778
-42 13 58.309519
-42 14 66.400301
-42 15 60.901560
-42 16 66.037868
-42 17 67.742158
-42 18 65.299311
-42 19 71.386273
-42 20 66.940272
-42 21 62.096699
-42 22 72.277244
-42 23 62.641839
-42 24 72.801099
-42 25 63.245553
-42 26 73.681748
-42 27 58.258047
-42 28 54.488531
-42 29 56.400355
-42 30 51.224994
-42 31 54.083269
-42 32 50.000000
-42 33 53.535035
-42 34 56.824291
-42 35 48.259714
-42 36 13.453624
-42 37 12.206556
-42 38 9.899495
-42 39 6.403124
-42 40 5.385165
-42 41 10.198039
-42 43 5.830952
-42 44 10.440307
-42 45 7.615773
-42 46 38.639358
-42 47 40.311289
-42 48 63.529521
-42 49 71.805292
-42 50 65.000000
-42 51 42.379240
-42 52 55.081757
-42 53 55.803226
-42 54 45.486262
-42 55 15.297059
-42 56 31.764760
-42 57 40.792156
-42 58 57.306195
-42 59 77.935871
-42 60 73.000000
-42 61 45.541190
-42 62 16.401219
-42 63 40.607881
-42 64 55.443665
-42 65 46.840154
-42 66 41.880783
-42 67 41.629317
-42 68 33.541020
-42 69 23.430749
-42 70 35.468296
-42 71 23.769729
-42 72 21.189620
-42 73 11.180340
-42 74 57.974132
-42 75 66.850580
-42 76 87.800911
-42 77 63.031738
-42 78 80.056230
-42 79 53.488316
-42 80 52.469038
-42 81 30.083218
-42 82 19.235384
-42 83 44.553339
-42 84 48.754487
-42 85 46.010868
-42 86 52.239832
-42 87 63.007936
-42 88 68.680419
-42 89 38.013156
-42 90 70.576200
-42 91 35.000000
-42 92 34.205263
-42 93 32.388269
-42 94 23.194827
-42 95 27.018512
-42 96 38.052595
-42 97 21.213203
-42 98 78.517514
-42 99 39.408121
-42 100 51.224994
-42 101 28.160256
-43 1 33.541020
-43 2 30.413813
-43 3 33.376639
-43 4 33.376639
-43 5 35.000000
-43 6 35.355339
-43 7 37.336309
-43 8 40.311289
-43 9 40.000000
-43 10 63.639610
-43 11 60.207973
-43 12 61.717096
-43 13 58.600341
-43 14 67.268120
-43 15 61.032778
-43 16 66.400301
-43 17 68.007353
-43 18 65.192024
-43 19 75.802375
-43 20 71.196910
-43 21 66.287254
-43 22 76.485293
-43 23 66.708320
-43 24 76.902536
-43 25 67.186308
-43 26 77.620873
-43 27 64.031242
-43 28 60.207973
-43 29 62.201286
-43 30 57.008771
-43 31 59.908263
-43 32 55.803226
-43 33 59.363288
-43 34 62.649820
-43 35 54.083269
-43 36 13.000000
-43 37 11.180340
-43 38 10.198039
-43 39 7.000000
-43 40 5.000000
-43 41 7.071068
-43 42 5.830952
-43 44 5.000000
-43 45 2.000000
-43 46 35.057096
-43 47 37.000000
-43 48 63.513778
-43 49 76.118329
-43 50 69.231496
-43 51 48.104054
-43 52 60.000000
-43 53 58.309519
-43 54 46.097722
-43 55 20.000000
-43 56 32.015621
-43 57 45.276926
-43 58 60.415230
-43 59 80.622577
-43 60 75.000000
-43 61 44.721360
-43 62 18.027756
-43 63 46.097722
-43 64 60.827625
-43 65 50.990195
-43 66 44.721360
-43 67 45.221676
-43 68 39.051248
-43 69 25.000000
-43 70 36.878178
-43 71 22.825424
-43 72 26.925824
-43 73 17.000000
-43 74 56.648036
-43 75 69.462220
-43 76 90.138782
-43 77 68.183576
-43 78 83.384651
-43 79 52.773099
-43 80 50.447993
-43 81 33.955854
-43 82 22.803509
-43 83 46.400431
-43 84 52.201533
-43 85 51.039201
-43 86 57.558666
-43 87 65.513357
-43 88 70.604532
-43 89 38.013156
-43 90 75.953933
-43 91 37.589892
-43 92 38.470768
-43 93 37.054015
-43 94 28.635642
-43 95 32.062439
-43 96 43.011626
-43 97 26.000000
-43 98 80.280757
-43 99 40.311289
-43 100 53.535035
-43 101 27.294688
-44 1 38.078866
-44 2 30.000000
-44 3 34.481879
-44 4 33.000000
-44 5 35.355339
-44 6 35.000000
-44 7 38.327536
-44 8 41.231056
-44 9 40.311289
-44 10 67.268120
-44 11 63.639610
-44 12 65.069194
-44 13 61.717096
-44 14 70.710678
-44 15 64.031242
-44 16 69.526973
-44 17 71.063352
-44 18 68.007353
-44 19 80.752709
-44 20 76.118329
-44 21 71.196910
-44 22 81.394103
-44 23 71.589105
-44 24 81.786307
-44 25 72.034714
-44 26 82.462113
-44 27 68.007353
-44 28 64.031242
-44 29 66.287254
-44 30 61.032778
-44 31 64.140471
-44 32 59.908263
-44 33 63.631753
-44 34 67.082039
-44 35 58.309519
-44 36 12.000000
-44 37 10.000000
-44 38 10.440307
-44 39 8.602325
-44 40 7.071068
-44 41 5.000000
-44 42 10.440307
-44 43 5.000000
-44 45 3.000000
-44 46 35.128336
-44 47 37.336309
-44 48 66.400301
-44 49 81.049368
-44 50 74.148500
-44 51 52.810984
-44 52 65.000000
-44 53 62.649820
-44 54 49.497475
-44 55 25.000000
-44 56 35.355339
-44 57 50.249378
-44 58 65.000000
-44 59 85.000000
-44 60 79.056942
-44 61 47.169906
-44 62 22.360680
-44 63 50.990195
-44 64 65.764732
-44 65 55.901699
-44 66 49.244289
-44 67 50.000000
-44 68 43.931765
-44 69 29.154759
-44 70 40.804412
-44 71 25.612497
-44 72 31.622777
-44 73 21.540659
-44 74 58.600341
-44 75 73.824115
-44 76 94.339811
-44 77 73.171033
-44 78 88.022724
-44 79 55.226805
-44 80 51.865210
-44 81 38.832976
-44 82 27.658633
-44 83 50.477718
-44 84 56.920998
-44 85 56.035703
-44 86 62.513998
-44 87 69.835521
-44 88 74.632433
-44 89 41.109610
-44 90 80.894994
-44 91 42.047592
-44 92 43.416587
-44 93 42.047592
-44 94 33.541020
-44 95 37.054015
-44 96 48.010416
-44 97 31.000000
-44 98 84.202138
-44 99 43.931765
-44 100 57.801384
-44 101 30.000000
-45 1 35.341194
-45 2 30.149627
-45 3 33.734256
-45 4 33.136083
-45 5 35.057096
-45 6 35.128336
-45 7 37.656341
-45 8 40.607881
-45 9 40.049969
-45 10 65.069194
-45 11 61.554854
-45 12 63.031738
-45 13 59.816386
-45 14 68.622154
-45 15 62.201286
-45 16 67.623960
-45 17 69.202601
-45 18 66.287254
-45 19 77.781746
-45 20 73.164199
-45 21 68.249542
-45 22 78.447435
-45 23 68.658576
-45 24 78.854296
-45 25 69.123079
-45 26 79.555012
-45 27 65.604878
-45 28 61.717096
-45 29 63.820060
-45 30 58.600341
-45 31 61.587336
-45 32 57.428216
-45 33 61.057350
-45 34 64.412732
-45 35 55.758407
-45 36 12.369317
-45 37 10.440307
-45 38 10.000000
-45 39 7.280110
-45 40 5.385165
-45 41 5.830952
-45 42 7.615773
-45 43 2.000000
-45 44 3.000000
-45 46 35.000000
-45 47 37.054015
-45 48 64.637450
-45 49 78.089692
-45 50 71.196910
-45 51 49.979996
-45 52 62.000000
-45 53 60.033324
-45 54 47.423623
-45 55 22.000000
-45 56 33.301652
-45 57 47.265209
-45 58 62.241465
-45 59 82.365041
-45 60 76.609399
-45 61 45.650849
-45 62 19.723083
-45 63 48.052055
-45 64 62.801274
-45 65 52.952809
-45 66 46.518813
-45 67 47.127487
-45 68 41.000000
-45 69 26.627054
-45 70 38.418745
-45 71 23.853721
-45 72 28.792360
-45 73 18.788294
-45 74 57.384667
-45 75 71.196910
-45 76 91.809586
-45 77 70.178344
-45 78 85.234969
-45 79 53.712196
-45 80 50.960769
-45 81 35.902646
-45 82 24.738634
-45 83 48.010416
-45 84 54.083269
-45 85 53.037722
-45 86 59.539903
-45 87 67.230945
-45 88 72.201108
-45 89 39.204592
-45 90 77.929455
-45 91 39.357337
-45 92 40.447497
-45 93 39.051248
-45 94 30.594117
-45 95 34.058773
-45 96 45.011110
-45 97 28.000000
-45 98 81.835200
-45 99 41.725292
-45 100 55.226805
-45 101 28.301943
-46 1 37.735925
-46 2 5.830952
-46 3 7.280110
-46 4 3.605551
-46 5 2.000000
-46 6 3.000000
-46 7 7.280110
-46 8 8.602325
-46 9 5.385165
-46 10 48.052055
-46 11 43.174066
-46 12 43.680659
-46 13 38.897301
-46 14 49.335586
-46 15 39.924930
-46 16 45.694639
-46 17 46.518813
-46 18 42.059482
-46 19 80.653580
-46 20 75.286121
-46 21 70.519501
-46 22 79.555012
-46 23 69.921384
-46 24 79.075913
-46 25 69.375788
-46 26 78.447435
-46 27 91.263355
-46 28 88.509886
-46 29 88.814413
-46 30 84.314886
-46 31 85.603738
-46 32 82.661962
-46 33 84.811556
-46 34 86.452299
-46 35 80.212219
-46 36 47.095647
-46 37 45.099889
-46 38 45.000000
-46 39 42.047592
-46 40 40.049969
-46 41 40.112342
-46 42 38.639358
-46 43 35.057096
-46 44 35.128336
-46 45 35.000000
-46 47 2.828427
-46 48 41.146081
-46 49 80.081209
-46 50 73.375745
-46 51 70.092796
-46 52 71.196910
-46 53 52.239832
-46 54 32.000000
-46 55 41.340053
-46 56 24.166092
-46 57 55.758407
-46 58 57.870545
-46 59 72.173402
-46 60 62.801274
-46 61 22.561028
-46 62 30.232433
-46 63 65.069194
-46 64 76.609399
-46 65 57.697487
-46 66 44.598206
-46 67 49.658836
-46 68 59.464275
-46 69 29.732137
-46 70 31.953091
-46 71 19.849433
-46 72 52.478567
-46 73 46.238512
-46 74 28.425341
-46 75 62.000000
-46 76 78.447435
-46 77 80.622577
-46 78 79.056942
-46 79 28.635642
-46 80 19.798990
-46 81 44.204072
-46 82 37.643060
-46 83 39.623226
-46 84 53.758720
-46 85 64.637450
-46 86 73.006849
-46 87 58.008620
-46 88 58.549125
-46 89 24.331050
-46 90 90.210864
-46 91 38.910153
-46 92 49.406477
-46 93 51.088159
-46 94 50.803543
-46 95 50.249378
-46 96 57.628118
-46 97 44.821870
-46 98 65.969690
-46 99 30.594117
-46 100 47.381431
-46 101 18.601075
-47 1 37.202150
-47 2 8.602325
-47 3 6.403124
-47 4 6.403124
-47 5 2.000000
-47 6 5.385165
-47 7 5.000000
-47 8 5.830952
-47 9 3.000000
-47 10 45.705580
-47 11 40.792156
-47 12 41.231056
-47 13 36.400549
-47 14 46.840154
-47 15 37.336309
-47 16 43.081318
-47 17 43.863424
-47 18 39.357337
-47 19 79.378838
-47 20 74.000000
-47 21 69.289249
-47 22 78.160092
-47 23 68.622154
-47 24 77.620873
-47 25 68.007353
-47 26 76.902536
-47 27 91.809586
-47 28 89.185201
-47 29 89.308454
-47 30 84.905830
-47 31 86.023253
-47 32 83.216585
-47 33 85.211502
-47 34 86.683332
-47 35 80.709355
-47 36 49.254441
-47 37 47.265209
-47 38 47.042534
-47 39 44.000000
-47 40 42.000000
-47 41 42.296572
-47 42 40.311289
-47 43 37.000000
-47 44 37.336309
-47 45 37.054015
-47 46 2.828427
-47 48 38.483763
-47 49 78.746428
-47 50 72.111026
-47 51 70.292247
-47 52 70.491134
-47 53 50.487622
-47 54 30.066593
-47 55 42.059482
-47 56 23.323808
-47 57 55.217751
-47 58 56.293872
-47 59 70.064256
-47 60 60.530984
-47 61 20.223748
-47 62 30.886890
-47 63 65.069194
-47 64 76.216796
-47 65 56.824291
-47 66 43.462628
-47 67 48.764741
-47 68 59.665736
-47 69 29.732137
-47 70 30.870698
-47 71 20.248457
-47 72 53.235327
-47 73 47.434165
-47 74 25.612497
-47 75 60.033324
-47 76 76.118329
-47 77 79.924965
-47 78 77.162167
-47 79 26.000000
-47 80 16.970563
-47 81 43.931765
-47 82 38.013156
-47 83 38.078866
-47 84 52.554733
-47 85 64.202804
-47 86 72.622311
-47 87 56.080300
-47 88 56.320511
-47 89 22.803509
-47 90 89.587946
-47 91 38.078866
-47 92 49.040799
-47 93 50.931326
-47 94 51.312766
-47 95 50.447993
-47 96 57.384667
-47 97 45.221676
-47 98 63.560994
-47 99 29.120440
-47 100 45.705580
-47 101 18.384776
-48 1 38.327536
-48 2 46.141088
-48 3 36.055513
-48 4 44.721360
-48 5 39.357337
-48 6 43.863424
-48 7 34.000000
-48 8 32.695565
-48 9 37.336309
-48 10 12.806248
-48 11 9.433981
-48 12 7.810250
-48 13 6.000000
-48 14 10.440307
-48 15 3.000000
-48 16 5.000000
-48 17 5.385165
-48 18 2.000000
-48 19 58.000000
-48 20 53.150729
-48 21 50.000000
-48 22 55.172457
-48 23 48.414874
-48 24 53.814496
-48 25 46.861498
-48 26 51.855569
-48 27 94.201911
-48 28 93.536089
-48 29 91.241438
-48 30 88.566359
-48 31 87.298339
-48 32 86.579443
-48 33 86.313383
-48 34 85.375641
-48 35 83.600239
-48 36 76.321688
-48 37 74.625733
-48 38 73.061618
-48 39 69.462220
-48 40 67.742158
-48 41 70.455660
-48 42 63.529521
-48 43 63.513778
-48 44 66.400301
-48 45 64.637450
-48 46 41.146081
-48 47 38.483763
-48 49 56.568542
-48 50 51.855569
-48 51 70.710678
-48 52 58.600341
-48 53 27.459060
-48 54 18.681542
-48 55 55.081757
-48 56 31.764760
-48 57 49.030603
-48 58 34.409301
-48 59 37.336309
-48 60 26.248809
-48 61 19.849433
-48 62 47.423623
-48 63 63.788714
-48 64 67.779053
-48 65 45.541190
-48 66 33.376639
-48 67 39.812058
-48 68 62.072538
-48 69 40.853396
-48 70 29.832868
-48 71 40.804412
-48 72 63.788714
-48 73 64.195015
-48 74 15.000000
-48 75 30.805844
-48 76 40.112342
-48 77 66.730802
-48 78 46.957428
-48 79 12.529964
-48 80 23.345235
-48 81 45.044423
-48 82 48.764741
-48 83 25.079872
-48 84 37.696154
-48 85 57.280014
-48 86 64.845971
-48 87 28.319605
-48 88 23.259407
-48 89 25.553865
-48 90 76.321688
-48 91 35.057096
-48 92 47.095647
-48 93 51.039201
-48 94 59.413803
-48 95 55.081757
-48 96 54.589376
-48 97 53.758720
-48 98 27.073973
-48 99 25.000000
-48 100 26.000000
-48 101 36.400549
-49 1 45.044423
-49 2 81.786307
-49 3 72.801099
-49 4 82.462113
-49 5 78.160092
-49 6 82.969874
-49 7 74.000000
-49 8 75.026662
-49 9 79.711982
-49 10 43.863424
-49 11 47.423623
-49 12 48.795492
-49 13 52.497619
-49 14 47.634021
-49 15 54.488531
-49 16 53.150729
-49 17 54.671748
-49 18 58.000000
-49 19 2.000000
-49 20 5.000000
-49 21 10.000000
-49 22 2.000000
-49 23 10.198039
-49 24 4.000000
-49 25 10.770330
-49 26 7.000000
-49 27 58.600341
-49 28 60.901560
-49 29 55.901699
-49 30 56.603887
-49 31 52.354560
-49 32 54.918121
-49 33 51.478151
-49 34 47.423623
-49 35 52.430907
-49 36 83.815273
-49 37 83.240615
-49 38 80.361682
-49 39 77.620873
-49 40 77.129761
-49 41 82.000000
-49 42 71.805292
-49 43 76.118329
-49 44 81.049368
-49 45 78.089692
-49 46 80.081209
-49 47 78.746428
-49 48 56.568542
-49 50 7.000000
-49 51 42.426407
-49 52 19.849433
-49 53 30.232433
-49 54 50.089919
-49 55 56.515485
-49 56 56.293872
-49 57 31.048349
-49 58 23.323808
-49 59 27.459060
-49 60 35.341194
-49 61 61.269895
-49 62 60.074953
-49 63 37.802116
-49 64 27.459060
-49 65 25.179357
-49 66 35.693137
-49 67 32.015621
-49 68 43.046487
-49 69 55.036352
-49 70 48.270074
-49 71 64.381674
-49 72 55.036352
-49 73 63.568860
-49 74 68.007353
-49 75 26.627054
-49 76 37.000000
-49 77 19.313208
-49 78 19.104973
-49 79 61.294372
-49 80 72.560320
-49 81 42.296572
-49 82 53.460266
-49 83 40.853396
-49 84 26.476405
-49 85 28.301943
-49 86 27.658633
-49 87 28.319605
-49 88 35.510562
-49 89 55.973208
-49 90 25.000000
-49 91 42.296572
-49 92 37.656341
-49 93 39.560081
-49 94 50.695167
-49 95 45.541190
-49 96 34.928498
-49 97 50.695167
-49 98 40.162171
-49 99 49.648766
-49 100 34.000000
-49 101 62.968246
-50 1 38.052595
-50 2 74.953319
-50 3 66.098411
-50 4 75.690158
-50 5 71.470274
-50 6 76.243032
-50 7 67.416615
-50 8 68.541958
-50 9 73.164199
-50 10 39.408121
-50 11 42.520583
-50 12 44.045431
-50 13 47.381431
-50 14 43.566042
-50 15 49.578221
-50 16 48.826222
-50 17 50.477718
-50 18 53.413481
-50 19 7.280110
-50 20 2.000000
-50 21 3.000000
-50 22 7.280110
-50 23 3.605551
-50 24 8.062258
-50 25 5.000000
-50 26 9.899495
-50 27 55.973208
-50 28 57.775427
-50 29 53.141321
-50 30 53.225934
-50 31 49.396356
-50 32 51.429563
-50 33 48.466483
-50 34 44.922155
-50 35 48.764741
-50 36 77.162167
-50 37 76.537572
-50 38 73.681748
-50 39 70.880181
-50 40 70.342022
-50 41 75.186435
-50 42 65.000000
-50 43 69.231496
-50 44 74.148500
-50 45 71.196910
-50 46 73.375745
-50 47 72.111026
-50 48 51.855569
-50 49 7.000000
-50 51 37.802116
-50 52 15.264338
-50 53 24.758837
-50 54 43.908997
-50 55 49.729267
-50 56 49.477268
-50 57 24.351591
-50 58 17.691806
-50 59 27.073973
-50 60 32.984845
-50 61 55.072679
-50 62 53.084838
-50 63 32.526912
-50 64 24.351591
-50 65 18.248288
-50 66 28.861739
-50 67 25.019992
-50 68 37.202150
-50 69 48.041649
-50 70 41.484937
-50 71 57.428216
-50 72 48.764741
-50 73 57.008771
-50 74 62.481997
-50 75 23.409400
-50 76 37.656341
-50 77 18.000000
-50 78 21.023796
-50 79 55.605755
-50 80 66.573268
-50 81 35.355339
-50 82 46.529560
-50 83 34.438351
-50 84 19.646883
-50 85 22.671568
-50 86 23.706539
-50 87 24.186773
-50 88 32.310989
-50 89 49.396356
-50 90 25.961510
-50 91 35.355339
-50 92 30.805844
-50 93 32.893768
-50 94 44.283180
-50 95 39.000000
-50 96 28.653098
-50 97 43.965896
-50 98 38.470768
-50 99 43.081318
-50 100 28.017851
-50 101 56.089215
-51 1 35.341194
-51 2 68.622154
-51 3 64.031242
-51 4 70.710678
-51 5 68.767725
-51 6 72.138755
-51 7 67.201190
-51 8 69.634761
-51 9 72.622311
-51 10 62.000000
-51 11 62.201286
-51 12 64.195015
-51 13 64.776539
-51 14 67.000000
-51 15 67.742158
-51 16 70.178344
-51 17 72.173402
-51 18 72.691127
-51 19 41.036569
-51 20 39.051248
-51 21 36.055513
-51 22 43.863424
-51 23 37.735925
-51 24 45.343136
-51 25 39.446166
-51 26 47.634021
-51 27 23.537205
-51 28 23.000000
-51 29 20.615528
-51 30 18.000000
-51 31 16.763055
-51 32 16.000000
-51 33 15.811388
-51 34 16.401219
-51 35 13.000000
-51 36 50.249378
-51 37 50.487622
-51 38 47.518417
-51 39 46.097722
-51 40 46.572524
-51 41 51.419841
-51 42 42.379240
-51 43 48.104054
-51 44 52.810984
-51 45 49.979996
-51 46 70.092796
-51 47 70.292247
-51 48 70.710678
-51 49 42.426407
-51 50 37.802116
-51 52 22.671568
-51 53 47.265209
-51 54 54.120237
-51 55 30.232433
-51 56 48.877398
-51 57 22.000000
-51 58 43.174066
-51 59 62.241465
-51 60 63.788714
-51 61 62.241465
-51 62 40.360872
-51 63 7.000000
-51 64 16.552945
-51 65 27.459060
-51 66 37.336309
-51 67 31.064449
-51 68 10.630146
-51 69 40.607881
-51 70 44.384682
-51 71 50.249378
-51 72 21.189620
-51 73 31.320920
-51 74 74.330344
-51 75 54.120237
-51 76 73.409809
-51 77 25.942244
-51 78 58.523500
-51 79 67.357256
-51 80 73.790243
-51 81 27.730849
-51 82 32.526912
-51 83 45.705580
-51 84 35.227830
-51 85 16.155494
-51 86 15.000000
-51 87 52.172790
-51 88 61.000000
-51 89 53.225934
-51 90 30.413813
-51 91 37.000000
-51 92 24.041631
-51 93 20.615528
-51 94 20.248457
-51 95 19.849433
-51 96 16.124515
-51 97 25.495098
-51 98 70.092796
-51 99 49.040799
-51 100 46.000000
-51 101 52.009614
-52 1 33.541020
-52 2 71.589105
-52 3 64.140471
-52 4 72.897188
-52 5 69.462220
-52 6 73.824115
-52 7 66.287254
-52 8 68.007353
-52 9 72.111026
-52 10 47.434165
-52 11 49.244289
-52 12 51.078371
-52 13 53.235327
-52 14 52.201533
-52 15 55.901699
-52 16 56.648036
-52 17 58.523500
-52 18 60.415230
-52 19 18.601075
-52 20 16.401219
-52 21 13.928388
-52 22 21.213203
-52 23 15.811388
-52 24 22.671568
-52 25 17.720045
-52 26 25.000000
-52 27 41.231056
-52 28 42.720019
-52 29 38.327536
-52 30 38.078866
-52 31 34.481879
-52 32 36.249138
-52 33 33.526109
-52 34 30.413813
-52 35 33.541020
-52 36 66.098411
-52 37 65.764732
-52 38 62.801274
-52 39 60.406953
-52 40 60.207973
-52 41 65.192024
-52 42 55.081757
-52 43 60.000000
-52 44 65.000000
-52 45 62.000000
-52 46 71.196910
-52 47 70.491134
-52 48 58.600341
-52 49 19.849433
-52 50 15.264338
-52 51 22.671568
-52 53 31.622777
-52 54 46.097722
-52 55 40.000000
-52 56 47.169906
-52 57 15.811388
-52 58 25.495098
-52 59 41.231056
-52 60 45.000000
-52 61 56.568542
-52 62 46.097722
-52 63 18.027756
-52 64 10.000000
-52 65 14.142136
-52 66 28.284271
-52 67 22.022716
-52 68 23.769729
-52 69 42.720019
-52 70 40.000000
-52 71 52.924474
-52 72 36.400549
-52 73 45.705580
-52 74 66.400301
-52 75 35.000000
-52 76 52.201533
-52 77 9.433981
-52 78 36.235342
-52 79 59.203040
-52 80 68.593003
-52 81 28.160256
-52 82 38.470768
-52 83 36.235342
-52 84 21.095023
-52 85 9.219544
-52 86 8.544004
-52 87 34.234486
-52 88 43.185646
-52 89 49.040799
-52 90 19.209373
-52 91 32.449961
-52 92 22.803509
-52 93 23.086793
-52 94 32.557641
-52 95 28.071338
-52 96 17.029386
-52 97 34.000000
-52 98 51.039201
-52 99 43.185646
-52 100 32.649655
-52 101 52.773099
-53 1 25.000000
-53 2 55.000000
-53 3 45.099889
-53 4 55.081757
-53 5 50.249378
-53 6 55.226805
-53 7 45.541190
-53 8 46.097722
-53 9 50.990195
-53 10 15.811388
-53 11 18.027756
-53 12 19.723083
-53 13 22.671568
-53 14 20.615528
-53 15 25.000000
-53 16 25.079872
-53 17 26.925824
-53 18 29.154759
-53 19 31.400637
-53 20 26.248809
-53 21 22.671568
-53 22 29.154759
-53 23 21.213203
-53 24 28.178006
-53 25 19.849433
-53 26 26.925824
-53 27 70.000000
-53 28 70.178344
-53 29 67.000000
-53 30 65.192024
-53 31 63.000000
-53 32 63.198101
-53 33 62.000000
-53 34 60.207973
-53 35 60.207973
-53 36 69.202601
-53 37 68.007353
-53 38 65.604878
-53 39 62.201286
-53 40 61.032778
-53 41 65.192024
-53 42 55.803226
-53 43 58.309519
-53 44 62.649820
-53 45 60.033324
-53 46 52.239832
-53 47 50.487622
-53 48 27.459060
-53 49 30.232433
-53 50 24.758837
-53 51 47.265209
-53 52 31.622777
-53 54 20.615528
-53 55 42.426407
-53 56 30.413813
-53 57 25.495098
-53 58 7.071068
-53 59 22.360680
-53 60 18.027756
-53 61 31.622777
-53 62 40.311289
-53 63 40.311289
-53 64 41.231056
-53 65 20.000000
-53 66 14.142136
-53 67 17.464249
-53 68 40.804412
-53 69 33.541020
-53 70 22.803509
-53 71 40.261644
-53 72 47.169906
-53 73 51.662365
-53 74 37.802116
-53 75 11.180340
-53 76 32.015621
-53 77 39.357337
-53 78 27.073973
-53 79 31.064449
-53 80 42.485292
-53 81 27.802878
-53 82 36.878178
-53 83 13.152946
-53 84 12.041595
-53 85 32.015621
-53 86 38.639358
-53 87 7.211103
-53 88 14.317821
-53 89 28.017851
-53 90 48.877398
-53 91 20.808652
-53 92 26.832816
-53 93 30.870698
-53 94 42.190046
-53 95 36.715120
-53 96 31.780497
-53 97 38.418745
-53 98 24.186773
-53 99 22.022716
-53 100 5.099020
-53 101 37.483330
-54 1 20.000000
-54 2 35.355339
-54 3 25.079872
-54 4 35.057096
-54 5 30.000000
-54 6 35.000000
-54 7 25.079872
-54 8 25.495098
-54 9 30.413813
-54 10 18.027756
-54 11 14.142136
-54 12 15.620499
-54 13 13.000000
-54 14 21.213203
-54 15 15.811388
-54 16 20.591260
-54 17 22.360680
-54 18 20.615528
-54 19 51.000000
-54 20 45.650849
-54 21 41.340053
-54 22 49.244289
-54 23 40.311289
-54 24 48.466483
-54 25 39.357337
-54 26 47.434165
-54 27 77.620873
-54 28 76.485293
-54 29 74.726167
-54 30 71.589105
-54 31 70.880181
-54 32 69.634761
-54 33 69.921384
-54 34 69.641941
-54 35 66.708320
-54 36 58.600341
-54 37 57.008771
-54 38 55.217751
-54 39 51.613952
-54 40 50.000000
-54 41 53.150729
-54 42 45.486262
-54 43 46.097722
-54 44 49.497475
-54 45 47.423623
-54 46 32.000000
-54 47 30.066593
-54 48 18.681542
-54 49 50.089919
-54 50 43.908997
-54 51 54.120237
-54 52 46.097722
-54 53 20.615528
-54 55 36.400549
-54 56 14.142136
-54 57 33.541020
-54 58 26.925824
-54 59 40.311289
-54 60 31.622777
-54 61 11.180340
-54 62 29.154759
-54 63 47.434165
-54 64 54.083269
-54 65 32.015621
-54 66 18.027756
-54 67 24.698178
-54 68 44.721360
-54 69 22.360680
-54 70 11.180340
-54 71 24.207437
-54 72 45.276926
-54 73 45.541190
-54 74 20.591260
-54 75 30.000000
-54 76 47.434165
-54 77 55.172457
-54 78 47.095647
-54 79 13.416408
-54 80 22.803509
-54 81 27.166155
-54 82 30.083218
-54 83 9.899495
-54 84 25.495098
-54 85 42.544095
-54 86 50.774009
-54 87 26.019224
-54 88 27.202941
-54 89 8.944272
-54 90 65.069194
-54 91 17.262677
-54 92 30.083218
-54 93 33.734256
-54 94 41.048752
-54 95 37.054015
-54 96 38.275318
-54 97 35.227830
-54 98 35.777088
-54 99 6.324555
-54 100 16.155494
-54 101 20.248457
-55 1 18.027756
-55 2 39.051248
-55 3 36.249138
-55 4 41.400483
-55 5 40.311289
-55 6 43.011626
-55 7 39.924930
-55 8 42.720019
-55 9 44.721360
-55 10 51.478151
-55 11 49.244289
-55 12 51.078371
-55 13 49.335586
-55 14 55.901699
-55 15 52.201533
-55 16 56.648036
-55 17 58.523500
-55 18 57.008771
-55 19 56.089215
-55 20 51.662365
-55 21 46.840154
-55 22 57.008771
-55 23 47.434165
-55 24 57.567352
-55 25 48.104054
-55 26 58.523500
-55 27 50.000000
-55 28 47.169906
-55 29 47.634021
-55 30 43.011626
-55 31 44.598206
-55 32 41.400483
-55 33 43.863424
-55 34 46.097722
-55 35 39.051248
-55 36 27.730849
-55 37 26.925824
-55 38 24.166092
-55 39 21.189620
-55 40 20.615528
-55 41 25.495098
-55 42 15.297059
-55 43 20.000000
-55 44 25.000000
-55 45 22.000000
-55 46 41.340053
-55 47 42.059482
-55 48 55.081757
-55 49 56.515485
-55 50 49.729267
-55 51 30.232433
-55 52 40.000000
-55 53 42.426407
-55 54 36.400549
-55 56 25.000000
-55 57 25.495098
-55 58 43.011626
-55 59 64.031242
-55 60 60.207973
-55 61 40.000000
-55 62 11.180340
-55 63 26.925824
-55 64 41.231056
-55 65 31.622777
-55 66 28.284271
-55 67 26.925824
-55 68 20.124612
-55 69 15.000000
-55 70 25.298221
-55 71 21.931712
-55 72 11.180340
-55 73 9.433981
-55 74 53.000000
-55 75 53.150729
-55 76 74.330344
-55 77 48.259714
-55 78 65.368188
-55 79 47.169906
-55 80 49.648766
-55 81 15.264338
-55 82 6.324555
-55 83 32.756679
-55 84 34.132096
-55 85 31.064449
-55 86 37.854986
-55 87 49.517674
-55 88 56.080300
-55 89 31.064449
-55 90 56.293872
-55 91 22.203603
-55 92 18.973666
-55 93 17.117243
-55 94 10.000000
-55 95 12.165525
-55 96 23.021729
-55 97 6.000000
-55 98 66.068147
-55 99 30.083218
-55 100 38.288379
-55 101 25.000000
-56 1 14.142136
-56 2 25.495098
-56 3 17.000000
-56 4 26.248809
-56 5 22.360680
-56 6 26.925824
-56 7 19.209373
-56 8 21.213203
-56 9 25.000000
-56 10 32.015621
-56 11 28.284271
-56 12 29.732137
-56 13 26.627054
-56 14 35.355339
-56 15 29.154759
-56 16 34.409301
-56 17 36.055513
-56 18 33.541020
-56 19 56.753854
-56 20 51.419841
-56 21 46.572524
-56 22 55.901699
-56 23 46.097722
-56 24 55.578773
-56 25 45.705580
-56 26 55.226805
-56 27 71.589105
-56 28 69.641941
-56 29 68.876701
-56 30 65.000000
-56 31 65.299311
-56 32 63.158531
-56 33 64.412732
-56 34 65.192024
-56 35 60.415230
-56 36 44.654227
-56 37 43.011626
-56 38 41.340053
-56 39 37.735925
-56 40 36.055513
-56 41 39.051248
-56 42 31.764760
-56 43 32.015621
-56 44 35.355339
-56 45 33.301652
-56 46 24.166092
-56 47 23.323808
-56 48 31.764760
-56 49 56.293872
-56 50 49.477268
-56 51 48.877398
-56 52 47.169906
-56 53 30.413813
-56 54 14.142136
-56 55 25.000000
-56 57 32.015621
-56 58 35.000000
-56 59 52.201533
-56 60 44.721360
-56 61 15.000000
-56 62 15.811388
-56 63 43.011626
-56 64 53.150729
-56 65 33.541020
-56 66 20.615528
-56 67 25.495098
-56 68 38.470768
-56 69 10.000000
-56 70 8.062258
-56 71 10.295630
-56 72 35.355339
-56 73 33.376639
-56 74 28.000000
-56 75 41.231056
-56 76 60.415230
-56 77 56.603887
-56 78 57.428216
-56 79 22.360680
-56 80 25.298221
-56 81 21.400935
-56 82 19.104973
-56 83 17.262677
-56 84 29.832868
-56 85 41.109610
-56 86 49.578221
-56 87 37.107951
-56 88 40.249224
-56 89 6.324555
-56 90 66.287254
-56 91 14.764823
-56 92 26.172505
-56 93 28.600699
-56 94 32.015621
-56 95 29.546573
-56 96 34.713110
-56 97 25.709920
-56 98 49.396356
-56 99 8.944272
-56 100 25.317978
-56 101 7.071068
-57 1 18.027756
-57 2 55.901699
-57 3 48.826222
-57 4 57.306195
-57 5 54.083269
-57 6 58.309519
-57 7 51.224994
-57 8 53.150729
-57 9 57.008771
-57 10 40.000000
-57 11 40.311289
-57 12 42.296572
-57 13 43.174066
-57 14 45.000000
-57 15 46.097722
-57 16 48.259714
-57 17 50.249378
-57 18 50.990195
-57 19 30.594117
-57 20 26.248809
-57 21 21.540659
-57 22 31.622777
-57 23 22.360680
-57 24 32.310989
-57 25 23.323808
-57 26 33.541020
-57 27 45.276926
-57 28 45.000000
-57 29 42.296572
-57 30 40.000000
-57 31 38.327536
-57 32 38.000000
-57 33 37.336309
-57 34 36.400549
-57 35 35.000000
-57 36 52.810984
-57 37 52.201533
-57 38 49.335586
-57 39 46.572524
-57 40 46.097722
-57 41 50.990195
-57 42 40.792156
-57 43 45.276926
-57 44 50.249378
-57 45 47.265209
-57 46 55.758407
-57 47 55.217751
-57 48 49.030603
-57 49 31.048349
-57 50 24.351591
-57 51 22.000000
-57 52 15.811388
-57 53 25.495098
-57 54 33.541020
-57 55 25.495098
-57 56 32.015621
-57 58 22.360680
-57 59 43.011626
-57 60 42.720019
-57 61 43.011626
-57 62 30.413813
-57 63 15.000000
-57 64 21.213203
-57 65 7.071068
-57 66 15.811388
-57 67 9.219544
-57 68 15.652476
-57 69 26.925824
-57 70 25.495098
-57 71 37.161808
-57 72 25.000000
-57 73 32.695565
-57 74 54.120237
-57 75 33.541020
-57 76 54.083269
-57 77 25.079872
-57 78 41.868843
-57 79 46.957428
-57 80 55.000000
-57 81 12.369317
-57 82 23.021729
-57 83 24.351591
-57 84 13.601471
-57 85 9.219544
-57 86 17.691806
-57 87 31.016125
-57 88 39.560081
-57 89 34.713110
-57 90 34.481879
-57 91 17.691806
-57 92 7.071068
-57 93 8.544004
-57 94 20.248457
-57 95 14.764823
-57 96 6.324555
-57 97 19.646883
-57 98 49.040799
-57 99 29.410882
-57 100 24.000000
-57 101 37.215588
-58 1 26.925824
-58 2 60.207973
-58 3 50.635956
-58 4 60.530984
-58 5 55.901699
-58 6 60.827625
-58 7 51.419841
-58 8 52.201533
-58 9 57.008771
-58 10 22.360680
-58 11 25.000000
-58 12 26.627054
-58 13 29.732137
-58 14 26.925824
-58 15 32.015621
-58 16 31.764760
-58 17 33.541020
-58 18 36.055513
-58 19 24.413111
-58 20 19.209373
-58 21 15.620499
-58 22 22.360680
-58 23 14.142136
-58 24 21.540659
-58 25 12.806248
-58 26 20.615528
-58 27 65.192024
-58 28 65.764732
-58 29 62.201286
-58 30 60.827625
-58 31 58.215118
-58 32 58.855756
-58 33 57.218878
-58 34 55.000000
-58 35 55.901699
-58 36 70.491134
-58 37 69.462220
-58 38 66.887966
-58 39 63.631753
-58 40 62.649820
-58 41 67.082039
-58 42 57.306195
-58 43 60.415230
-58 44 65.000000
-58 45 62.241465
-58 46 57.870545
-58 47 56.293872
-58 48 34.409301
-58 49 23.323808
-58 50 17.691806
-58 51 43.174066
-58 52 25.495098
-58 53 7.071068
-58 54 26.925824
-58 55 43.011626
-58 56 35.000000
-58 57 22.360680
-58 59 21.213203
-58 60 20.615528
-58 61 38.078866
-58 62 42.720019
-58 63 36.400549
-58 64 35.355339
-58 65 15.811388
-58 66 15.811388
-58 67 16.278821
-58 68 38.013156
-58 69 36.400549
-58 70 27.018512
-58 71 44.283180
-58 72 46.097722
-58 73 51.855569
-58 74 44.821870
-58 75 11.180340
-58 76 32.015621
-58 77 32.695565
-58 78 23.086793
-58 79 38.013156
-58 80 49.244289
-58 81 27.802878
-58 82 38.078866
-58 83 18.248288
-58 84 9.219544
-58 85 27.294688
-58 86 33.060551
-58 87 9.055385
-58 88 18.027756
-58 89 33.541020
-58 90 42.059482
-58 91 23.086793
-58 92 25.495098
-58 93 29.206164
-58 94 41.109610
-58 95 35.468296
-58 96 28.635642
-58 97 38.288379
-58 98 26.925824
-58 99 27.294688
-58 100 10.770330
-58 101 42.011903
-59 1 47.169906
-59 2 75.663730
-59 3 65.375837
-59 4 75.325958
-59 5 70.178344
-59 6 75.166482
-59 7 65.069194
-59 8 65.000000
-59 9 70.000000
-59 10 25.495098
-59 11 30.413813
-59 12 30.805844
-59 13 35.693137
-59 14 26.925824
-59 15 36.400549
-59 16 32.695565
-59 17 33.541020
-59 18 38.078866
-59 19 29.427878
-59 20 27.000000
-59 21 27.459060
-59 22 25.495098
-59 23 25.495098
-59 24 23.537205
-59 25 23.537205
-59 26 20.615528
-59 27 82.462113
-59 28 83.815273
-59 29 79.555012
-59 30 79.056942
-59 31 75.690158
-59 32 77.162167
-59 33 74.726167
-59 34 71.589105
-59 35 74.330344
-59 36 91.263355
-59 37 90.138782
-59 38 87.658428
-59 39 84.314886
-59 40 83.216585
-59 41 87.464278
-59 42 77.935871
-59 43 80.622577
-59 44 85.000000
-59 45 82.365041
-59 46 72.173402
-59 47 70.064256
-59 48 37.336309
-59 49 27.459060
-59 50 27.073973
-59 51 62.241465
-59 52 41.231056
-59 53 22.360680
-59 54 40.311289
-59 55 64.031242
-59 56 52.201533
-59 57 43.011626
-59 58 21.213203
-59 60 11.180340
-59 61 50.000000
-59 62 62.649820
-59 63 55.901699
-59 64 50.990195
-59 65 36.055513
-59 66 36.055513
-59 67 37.483330
-59 68 58.523500
-59 69 55.901699
-59 70 44.944410
-59 71 62.297673
-59 72 67.268120
-59 73 73.000000
-59 74 51.662365
-59 75 11.180340
-59 76 11.180340
-59 77 45.044423
-59 78 10.630146
-59 79 46.529560
-59 80 58.694122
-59 81 48.918299
-59 82 58.821765
-59 83 35.114100
-59 84 30.413813
-59 85 46.097722
-59 86 49.729267
-59 87 15.231546
-59 88 14.317821
-59 89 48.836462
-59 90 52.239832
-59 91 43.046487
-59 92 46.690470
-59 93 50.328918
-59 94 62.289646
-59 95 56.639209
-59 96 49.091751
-59 97 59.464275
-59 98 13.601471
-59 99 43.416587
-59 100 27.313001
-59 101 59.203040
-60 1 42.426407
-60 2 66.708320
-60 3 56.293872
-60 4 66.098411
-60 5 60.827625
-60 6 65.764732
-60 7 55.578773
-60 8 55.226805
-60 9 60.207973
-60 10 15.000000
-60 11 20.000000
-60 12 20.099751
-60 13 25.079872
-60 14 15.811388
-60 15 25.495098
-60 16 21.540659
-60 17 22.360680
-60 18 26.925824
-60 19 37.161808
-60 20 33.526109
-60 21 32.388269
-60 22 33.541020
-60 23 30.413813
-60 24 31.764760
-60 25 28.442925
-60 26 29.154759
-60 27 85.586214
-60 28 86.313383
-60 29 82.607506
-60 30 81.394103
-60 31 78.638413
-60 32 79.429214
-60 33 77.646635
-60 34 75.166482
-60 35 76.485293
-60 36 86.452299
-60 37 85.146932
-60 38 82.879430
-60 39 79.397733
-60 40 78.102497
-60 41 82.006097
-60 42 73.000000
-60 43 75.000000
-60 44 79.056942
-60 45 76.609399
-60 46 62.801274
-60 47 60.530984
-60 48 26.248809
-60 49 35.341194
-60 50 32.984845
-60 51 63.788714
-60 52 45.000000
-60 53 18.027756
-60 54 31.622777
-60 55 60.207973
-60 56 44.721360
-60 57 42.720019
-60 58 20.615528
-60 59 11.180340
-60 61 40.311289
-60 62 57.008771
-60 63 57.008771
-60 64 55.000000
-60 65 36.400549
-60 66 32.015621
-60 67 35.355339
-60 68 58.309519
-60 69 50.000000
-60 70 38.275318
-60 71 55.009090
-60 72 65.192024
-60 73 69.526973
-60 74 40.792156
-60 75 10.000000
-60 76 15.811388
-60 77 50.635956
-60 78 21.400935
-60 79 36.055513
-60 80 48.166378
-60 81 45.803930
-60 82 54.451814
-60 83 28.600699
-60 84 29.154759
-60 85 47.853944
-60 86 53.084838
-60 87 11.704700
-60 88 4.472136
-60 89 40.496913
-60 90 58.940648
-60 91 38.183766
-60 92 44.777226
-60 93 48.764741
-60 94 60.207973
-60 95 54.708317
-60 96 49.040799
-60 97 56.400355
-60 98 6.324555
-60 99 35.777088
-60 100 21.931712
-60 101 51.478151
-61 1 26.925824
-61 2 26.925824
-61 3 16.552945
-61 4 25.961510
-61 5 20.615528
-61 6 25.495098
-61 7 15.297059
-61 8 15.000000
-61 9 20.000000
-61 10 25.495098
-61 11 20.615528
-61 12 21.189620
-61 13 16.552945
-61 14 26.925824
-61 15 18.027756
-61 16 23.853721
-61 17 25.000000
-61 18 21.213203
-61 19 62.177166
-61 20 56.824291
-61 21 52.478567
-61 22 60.415230
-61 23 51.478151
-61 24 59.615434
-61 25 50.537115
-61 26 58.523500
-61 27 85.440037
-61 28 83.815273
-61 29 82.637764
-61 30 79.056942
-61 31 78.924014
-61 32 77.162167
-61 33 78.000000
-61 34 78.262379
-61 35 74.330344
-61 36 57.697487
-61 37 55.901699
-61 38 54.626001
-61 39 51.078371
-61 40 49.244289
-61 41 51.478151
-61 42 45.541190
-61 43 44.721360
-61 44 47.169906
-61 45 45.650849
-61 46 22.561028
-61 47 20.223748
-61 48 19.849433
-61 49 61.269895
-61 50 55.072679
-61 51 62.241465
-61 52 56.568542
-61 53 31.622777
-61 54 11.180340
-61 55 40.000000
-61 56 15.000000
-61 57 43.011626
-61 58 38.078866
-61 59 50.000000
-61 60 40.311289
-61 62 30.413813
-61 63 55.901699
-61 64 64.031242
-61 65 42.426407
-61 66 28.284271
-61 67 34.713110
-61 68 52.201533
-61 69 25.000000
-61 70 17.888544
-61 71 21.931712
-61 72 50.249378
-61 73 48.259714
-61 74 13.000000
-61 75 40.311289
-61 76 55.901699
-61 77 65.795137
-61 78 57.558666
-61 79 8.062258
-61 80 12.041595
-61 81 34.539832
-61 82 34.058773
-61 83 20.808652
-61 84 36.400549
-61 85 52.201533
-61 86 60.605280
-61 87 36.496575
-61 88 36.124784
-61 89 9.219544
-61 90 75.690158
-61 91 25.553865
-61 92 38.470768
-61 93 41.629317
-61 94 46.690470
-61 95 43.680659
-61 96 47.010637
-61 97 40.447497
-61 98 43.416587
-61 99 13.601471
-61 100 27.313001
-61 101 17.464249
-62 1 15.811388
-62 2 28.284271
-62 3 25.079872
-62 4 30.479501
-62 5 29.154759
-62 6 32.015621
-62 7 28.792360
-62 8 31.622777
-62 9 33.541020
-62 10 46.097722
-62 11 43.011626
-62 12 44.654227
-62 13 42.059482
-62 14 50.000000
-62 15 44.721360
-62 16 49.739320
-62 17 51.478151
-62 18 49.244289
-62 19 60.008333
-62 20 55.081757
-62 21 50.089919
-62 22 60.207973
-62 23 50.249378
-62 24 60.406953
-62 25 50.487622
-62 26 60.827625
-62 27 61.032778
-62 28 58.309519
-62 29 58.600341
-62 30 54.083269
-62 31 55.443665
-62 32 52.430907
-62 33 54.671748
-62 34 56.568542
-62 35 50.000000
-62 36 29.732137
-62 37 28.284271
-62 38 26.248809
-62 39 22.671568
-62 40 21.213203
-62 41 25.000000
-62 42 16.401219
-62 43 18.027756
-62 44 22.360680
-62 45 19.723083
-62 46 30.232433
-62 47 30.886890
-62 48 47.423623
-62 49 60.074953
-62 50 53.084838
-62 51 40.360872
-62 52 46.097722
-62 53 40.311289
-62 54 29.154759
-62 55 11.180340
-62 56 15.811388
-62 57 30.413813
-62 58 42.720019
-62 59 62.649820
-62 60 57.008771
-62 61 30.413813
-62 63 36.055513
-62 64 49.244289
-62 65 35.000000
-62 66 26.925824
-62 67 28.284271
-62 68 29.832868
-62 69 7.071068
-62 70 19.104973
-62 71 10.770330
-62 72 22.360680
-62 73 18.000000
-62 74 43.289722
-62 75 51.478151
-62 76 72.111026
-62 77 55.081757
-62 78 65.787537
-62 79 38.078866
-62 80 39.115214
-62 81 18.110770
-62 82 8.062258
-62 83 28.425341
-62 84 34.928498
-62 85 37.947332
-62 86 45.694639
-62 87 47.507894
-62 88 52.630789
-62 89 22.135944
-62 90 63.906181
-62 91 19.697716
-62 92 23.345235
-62 93 23.409400
-62 94 20.615528
-62 95 20.808652
-62 96 30.083218
-62 97 14.866069
-62 98 62.369865
-62 99 23.021729
-62 100 35.510562
-62 101 14.142136
-63 1 29.154759
-63 2 64.031242
-63 3 58.728187
-63 4 65.946948
-63 5 63.639610
-63 6 67.268120
-63 7 61.717096
-63 8 64.031242
-63 9 67.268120
-63 10 55.000000
-63 11 55.226805
-63 12 57.218878
-63 13 57.870545
-63 14 60.000000
-63 15 60.827625
-63 16 63.198101
-63 17 65.192024
-63 18 65.764732
-63 19 36.619667
-63 20 33.970576
-63 21 30.479501
-63 22 39.051248
-63 23 32.015621
-63 24 40.360872
-63 25 33.600595
-63 26 42.426407
-63 27 30.413813
-63 28 30.000000
-63 29 27.459060
-63 30 25.000000
-63 31 23.537205
-63 32 23.000000
-63 33 22.561028
-63 34 22.360680
-63 35 20.000000
-63 36 50.039984
-63 37 50.000000
-63 38 47.000000
-63 39 45.099889
-63 40 45.276926
-63 41 50.249378
-63 42 40.607881
-63 43 46.097722
-63 44 50.990195
-63 45 48.052055
-63 46 65.069194
-63 47 65.069194
-63 48 63.788714
-63 49 37.802116
-63 50 32.526912
-63 51 7.000000
-63 52 18.027756
-63 53 40.311289
-63 54 47.434165
-63 55 26.925824
-63 56 43.011626
-63 57 15.000000
-63 58 36.400549
-63 59 55.901699
-63 60 57.008771
-63 61 55.901699
-63 62 36.055513
-63 64 15.000000
-63 65 20.615528
-63 66 30.413813
-63 67 24.083189
-63 68 7.071068
-63 69 35.355339
-63 70 38.013156
-63 71 45.343136
-63 72 20.000000
-63 73 30.066593
-63 74 67.779053
-63 75 47.434165
-63 76 67.082039
-63 77 23.537205
-63 78 52.801515
-63 79 60.745370
-63 80 67.601775
-63 81 21.633308
-63 82 28.017851
-63 83 38.832976
-63 84 28.284271
-63 85 10.000000
-63 86 12.165525
-63 87 45.354162
-63 88 54.129474
-63 89 47.010637
-63 90 30.066593
-63 91 30.463092
-63 92 17.464249
-63 93 14.422205
-63 94 17.464249
-63 95 15.264338
-63 96 9.219544
-63 97 21.470911
-63 98 63.324561
-63 99 42.544095
-63 100 39.000000
-63 101 46.690470
-64 1 39.051248
-64 2 76.321688
-64 3 69.814039
-64 4 77.935871
-64 5 75.000000
-64 6 79.056942
-64 7 72.346389
-64 8 74.330344
-64 9 78.102497
-64 10 57.008771
-64 11 58.523500
-64 12 60.406953
-64 13 62.241465
-64 14 61.846584
-64 15 65.000000
-64 16 66.098411
-64 17 68.007353
-64 18 69.641941
-64 19 25.806976
-64 20 25.079872
-64 21 23.537205
-64 22 29.154759
-64 23 25.495098
-64 24 30.886890
-64 25 27.459060
-64 26 33.541020
-64 27 31.622777
-64 28 33.541020
-64 29 28.792360
-64 30 29.154759
-64 31 25.079872
-64 32 27.459060
-64 33 24.166092
-64 34 20.615528
-64 35 25.000000
-64 36 65.030762
-64 37 65.000000
-64 38 62.000000
-64 39 60.074953
-64 40 60.207973
-64 41 65.192024
-64 42 55.443665
-64 43 60.827625
-64 44 65.764732
-64 45 62.801274
-64 46 76.609399
-64 47 76.216796
-64 48 67.779053
-64 49 27.459060
-64 50 24.351591
-64 51 16.552945
-64 52 10.000000
-64 53 41.231056
-64 54 54.083269
-64 55 41.231056
-64 56 53.150729
-64 57 21.213203
-64 58 35.355339
-64 59 50.990195
-64 60 55.000000
-64 61 64.031242
-64 62 49.244289
-64 63 15.000000
-64 65 22.360680
-64 66 36.055513
-64 67 29.410882
-64 68 22.022716
-64 69 47.169906
-64 70 46.690470
-64 71 57.454330
-64 72 35.000000
-64 73 45.044423
-64 74 74.625733
-64 75 45.000000
-64 76 61.846584
-64 77 9.433981
-64 78 45.310043
-64 79 67.416615
-64 80 76.059187
-64 81 32.449961
-64 82 41.231056
-64 83 44.418465
-64 84 30.083218
-64 85 12.041595
-64 86 3.605551
-64 87 44.181444
-64 88 53.150729
-64 89 55.901699
-64 90 15.132746
-64 91 38.897301
-64 92 27.202941
-64 93 25.942244
-64 94 32.249031
-64 95 29.120440
-64 96 19.235384
-64 97 35.440090
-64 98 61.032778
-64 99 50.447993
-64 100 41.785165
-64 101 58.008620
-65 1 20.615528
-65 2 58.523500
-65 3 50.537115
-65 4 59.615434
-65 5 55.901699
-65 6 60.415230
-65 7 52.478567
-65 8 54.083269
-65 9 58.309519
-65 10 35.355339
-65 11 36.400549
-65 12 38.327536
-65 13 39.924930
-65 14 40.311289
-65 15 42.720019
-65 16 44.147480
-65 17 46.097722
-65 18 47.434165
-65 19 25.019992
-65 20 20.223748
-65 21 15.297059
-65 22 25.495098
-65 23 15.811388
-65 24 25.961510
-65 25 16.552945
-65 26 26.925824
-65 27 50.000000
-65 28 50.249378
-65 29 47.000000
-65 30 45.276926
-65 31 43.000000
-65 32 43.289722
-65 33 42.000000
-65 34 40.311289
-65 35 40.311289
-65 36 59.236813
-65 37 58.523500
-65 38 55.713553
-65 39 52.810984
-65 40 52.201533
-65 41 57.008771
-65 42 46.840154
-65 43 50.990195
-65 44 55.901699
-65 45 52.952809
-65 46 57.697487
-65 47 56.824291
-65 48 45.541190
-65 49 25.179357
-65 50 18.248288
-65 51 27.459060
-65 52 14.142136
-65 53 20.000000
-65 54 32.015621
-65 55 31.622777
-65 56 33.541020
-65 57 7.071068
-65 58 15.811388
-65 59 36.055513
-65 60 36.400549
-65 61 42.426407
-65 62 35.000000
-65 63 20.615528
-65 64 22.360680
-65 66 14.142136
-65 67 8.062258
-65 68 22.472205
-65 69 30.413813
-65 70 26.076810
-65 71 40.261644
-65 72 32.015621
-65 73 39.357337
-65 74 52.430907
-65 75 26.925824
-65 76 47.169906
-65 77 23.430749
-65 78 34.828150
-65 79 45.221676
-65 80 54.451814
-65 81 17.117243
-65 82 28.284271
-65 83 22.203603
-65 84 8.062258
-65 85 12.041595
-65 86 19.313208
-65 87 24.738634
-65 88 33.541020
-65 89 35.000000
-65 90 33.301652
-65 91 18.788294
-65 92 12.649111
-65 93 15.264338
-65 94 27.202941
-65 95 21.633308
-65 96 13.038405
-65 97 26.000000
-65 98 42.720019
-65 99 29.068884
-65 100 19.646883
-65 101 39.560081
-66 1 11.180340
-66 2 46.097722
-66 3 37.336309
-66 4 46.840154
-66 5 42.720019
-66 6 47.434165
-66 7 38.910153
-66 8 40.311289
-66 9 44.721360
-66 10 25.495098
-66 11 25.000000
-66 12 27.000000
-66 13 27.459060
-66 14 30.413813
-66 15 30.413813
-66 16 33.000000
-66 17 35.000000
-66 18 35.355339
-66 19 36.138622
-66 20 30.805844
-66 21 25.961510
-66 22 35.355339
-66 23 25.495098
-66 24 35.128336
-66 25 25.179357
-66 26 35.000000
-66 27 60.827625
-66 28 60.207973
-66 29 57.870545
-66 30 55.226805
-66 31 53.935146
-66 32 53.235327
-66 33 52.952809
-66 34 52.201533
-66 35 50.249378
-66 36 55.217751
-66 37 54.083269
-66 38 51.613952
-66 39 48.259714
-66 40 47.169906
-66 41 51.478151
-66 42 41.880783
-66 43 44.721360
-66 44 49.244289
-66 45 46.518813
-66 46 44.598206
-66 47 43.462628
-66 48 33.376639
-66 49 35.693137
-66 50 28.861739
-66 51 37.336309
-66 52 28.284271
-66 53 14.142136
-66 54 18.027756
-66 55 28.284271
-66 56 20.615528
-66 57 15.811388
-66 58 15.811388
-66 59 36.055513
-66 60 32.015621
-66 61 28.284271
-66 62 26.925824
-66 63 30.413813
-66 64 36.055513
-66 65 14.142136
-66 67 6.708204
-66 68 29.068884
-66 69 20.615528
-66 70 12.649111
-66 71 29.000000
-66 72 33.541020
-66 73 37.536649
-66 74 38.587563
-66 75 25.000000
-66 76 46.097722
-66 77 37.536649
-66 78 38.897301
-66 79 31.384710
-66 80 40.311289
-66 81 13.892444
-66 82 22.803509
-66 83 8.544004
-66 84 9.219544
-66 85 24.596748
-66 86 32.756679
-66 87 21.260292
-66 88 28.017851
-66 89 21.095023
-66 90 47.423623
-66 91 7.280110
-66 92 14.142136
-66 93 18.248288
-66 94 28.635642
-66 95 23.409400
-66 96 21.213203
-66 97 24.413111
-66 98 38.013156
-66 99 15.000000
-66 100 10.295630
-66 101 27.294688
-67 1 13.038405
-67 2 50.596443
-67 3 42.485292
-67 4 51.623638
-67 5 47.853944
-67 6 52.392748
-67 7 44.418465
-67 8 46.043458
-67 9 50.249378
-67 10 31.064449
-67 11 31.144823
-67 12 33.136083
-67 13 33.955854
-67 14 36.055513
-67 15 36.878178
-67 16 39.115214
-67 17 41.109610
-67 18 41.773197
-67 19 32.140317
-67 20 27.018512
-67 21 22.022716
-67 22 32.015621
-67 23 22.022716
-67 24 32.140317
-67 25 22.203603
-67 26 32.557641
-67 27 54.451814
-67 28 54.037024
-67 29 51.478151
-67 30 49.040799
-67 31 47.518417
-67 32 47.042534
-67 33 46.529560
-67 34 45.607017
-67 35 44.045431
-67 36 54.589376
-67 37 53.665631
-67 38 51.000000
-67 39 47.853944
-67 40 47.010637
-67 41 51.623638
-67 42 41.629317
-67 43 45.221676
-67 44 50.000000
-67 45 47.127487
-67 46 49.658836
-67 47 48.764741
-67 48 39.812058
-67 49 32.015621
-67 50 25.019992
-67 51 31.064449
-67 52 22.022716
-67 53 17.464249
-67 54 24.698178
-67 55 26.925824
-67 56 25.495098
-67 57 9.219544
-67 58 16.278821
-67 59 37.483330
-67 60 35.355339
-67 61 34.713110
-67 62 28.284271
-67 63 24.083189
-67 64 29.410882
-67 65 8.062258
-67 66 6.708204
-67 68 23.537205
-67 69 23.021729
-67 70 18.027756
-67 71 32.557641
-67 72 30.000000
-67 73 35.608988
-67 74 45.276926
-67 75 27.018512
-67 76 48.166378
-67 77 31.400637
-67 78 38.470768
-67 79 38.078866
-67 80 46.754679
-67 81 11.661904
-67 82 22.472205
-67 83 15.231546
-67 84 7.211103
-67 85 17.888544
-67 86 26.076810
-67 87 23.853721
-67 88 31.780497
-67 89 27.018512
-67 90 41.231056
-67 91 10.770330
-67 92 9.433981
-67 93 13.416408
-67 94 25.000000
-67 95 19.416488
-67 96 15.000000
-67 97 22.022716
-67 98 41.593269
-67 99 21.213203
-67 100 15.132746
-67 101 31.622777
-68 1 25.298221
-68 2 58.051701
-68 3 53.413481
-68 4 60.108236
-68 5 58.137767
-68 6 61.522354
-68 7 56.612719
-68 8 59.076222
-68 9 62.008064
-68 10 54.451814
-68 11 54.037024
-68 12 56.035703
-68 13 56.080300
-68 14 59.413803
-68 15 59.076222
-68 16 62.032250
-68 17 64.031242
-68 18 64.070274
-68 19 42.059482
-68 20 38.832976
-68 21 34.828150
-68 22 44.102154
-68 23 36.124784
-68 24 45.221676
-68 25 37.483330
-68 26 47.010637
-68 27 33.241540
-68 28 31.780497
-68 29 30.463092
-68 30 26.925824
-68 31 26.832816
-68 32 25.000000
-68 33 25.942244
-68 34 27.018512
-68 35 22.135944
-68 36 43.104524
-68 37 43.011626
-68 38 40.012498
-68 39 38.052595
-68 40 38.209946
-68 41 43.185646
-68 42 33.541020
-68 43 39.051248
-68 44 43.931765
-68 45 41.000000
-68 46 59.464275
-68 47 59.665736
-68 48 62.072538
-68 49 43.046487
-68 50 37.202150
-68 51 10.630146
-68 52 23.769729
-68 53 40.804412
-68 54 44.721360
-68 55 20.124612
-68 56 38.470768
-68 57 15.652476
-68 58 38.013156
-68 59 58.523500
-68 60 58.309519
-68 61 52.201533
-68 62 29.832868
-68 63 7.071068
-68 64 22.022716
-68 65 22.472205
-68 66 29.068884
-68 67 23.537205
-68 69 30.000000
-68 70 34.481879
-68 71 39.623226
-68 72 13.038405
-68 73 23.021729
-68 74 64.560050
-68 75 49.193496
-68 76 69.641941
-68 77 30.265492
-68 78 56.586217
-68 79 57.723479
-68 80 63.560994
-68 81 17.720045
-68 82 21.931712
-68 83 37.013511
-68 84 29.154759
-68 85 14.764823
-68 86 19.026298
-68 87 46.615448
-68 88 55.027266
-68 89 43.081318
-68 90 37.121422
-68 91 27.459060
-68 92 15.000000
-68 93 11.045361
-68 94 10.440307
-68 95 9.219544
-68 96 9.433981
-68 97 15.000000
-68 98 64.621978
-68 99 39.293765
-68 100 38.639358
-68 101 41.400483
-69 1 10.000000
-69 2 29.154759
-69 3 23.430749
-69 4 30.805844
-69 5 28.284271
-69 6 32.015621
-69 7 26.627054
-69 8 29.154759
-69 9 32.015621
-69 10 39.051248
-69 11 36.055513
-69 12 37.735925
-69 13 35.341194
-69 14 43.011626
-69 15 38.078866
-69 16 42.941821
-69 17 44.721360
-69 18 42.720019
-69 19 55.145263
-69 20 50.039984
-69 21 45.044423
-69 22 55.000000
-69 23 45.000000
-69 24 55.036352
-69 25 45.044423
-69 26 55.226805
-69 27 62.649820
-69 28 60.415230
-69 29 60.033324
-69 30 55.901699
-69 31 56.603887
-69 32 54.120237
-69 33 55.758407
-69 34 57.008771
-69 35 51.478151
-69 36 36.796739
-69 37 35.355339
-69 38 33.301652
-69 39 29.732137
-69 40 28.284271
-69 41 32.015621
-69 42 23.430749
-69 43 25.000000
-69 44 29.154759
-69 45 26.627054
-69 46 29.732137
-69 47 29.732137
-69 48 40.853396
-69 49 55.036352
-69 50 48.041649
-69 51 40.607881
-69 52 42.720019
-69 53 33.541020
-69 54 22.360680
-69 55 15.000000
-69 56 10.000000
-69 57 26.925824
-69 58 36.400549
-69 59 55.901699
-69 60 50.000000
-69 61 25.000000
-69 62 7.071068
-69 63 35.355339
-69 64 47.169906
-69 65 30.413813
-69 66 20.615528
-69 67 23.021729
-69 68 30.000000
-69 70 12.041595
-69 71 10.295630
-69 72 25.495098
-69 73 23.537205
-69 74 38.000000
-69 75 44.721360
-69 76 65.192024
-69 77 52.000000
-69 78 59.481089
-69 79 32.249031
-69 80 34.928498
-69 81 14.764823
-69 82 9.219544
-69 83 21.400935
-69 84 29.154759
-69 85 35.355339
-69 86 43.566042
-69 87 40.706265
-69 88 45.607017
-69 89 16.124515
-69 90 61.269895
-69 91 13.341664
-69 92 20.124612
-69 93 21.400935
-69 94 22.472205
-69 95 20.808652
-69 96 28.017851
-69 97 16.155494
-69 98 55.317267
-69 99 16.124515
-69 100 28.653098
-69 101 11.401754
-70 1 9.219544
-70 2 33.541020
-70 3 24.698178
-70 4 34.205263
-70 5 30.083218
-70 6 34.785054
-70 7 26.419690
-70 8 28.017851
-70 9 32.249031
-70 10 27.018512
-70 11 24.186773
-70 12 25.942244
-70 13 24.041631
-70 14 31.064449
-70 15 26.925824
-70 16 31.384710
-70 17 33.241540
-70 18 31.780497
-70 19 48.764741
-70 20 43.416587
-70 21 38.600518
-70 22 47.853944
-70 23 38.078866
-70 24 47.518417
-70 25 37.656341
-70 26 47.169906
-70 27 67.675697
-70 28 66.219333
-70 29 64.845971
-70 30 61.400326
-70 31 61.098281
-70 32 59.481089
-70 33 60.166436
-70 34 60.373835
-70 35 56.612719
-70 36 48.836462
-70 37 47.381431
-70 38 45.343136
-70 39 41.773197
-70 40 40.311289
-70 41 43.931765
-70 42 35.468296
-70 43 36.878178
-70 44 40.804412
-70 45 38.418745
-70 46 31.953091
-70 47 30.870698
-70 48 29.832868
-70 49 48.270074
-70 50 41.484937
-70 51 44.384682
-70 52 40.000000
-70 53 22.803509
-70 54 11.180340
-70 55 25.298221
-70 56 8.062258
-70 57 25.495098
-70 58 27.018512
-70 59 44.944410
-70 60 38.275318
-70 61 17.888544
-70 62 19.104973
-70 63 38.013156
-70 64 46.690470
-70 65 26.076810
-70 66 12.649111
-70 67 18.027756
-70 68 34.481879
-70 69 12.041595
-70 71 17.464249
-70 72 34.132096
-70 73 34.539832
-70 74 30.083218
-70 75 33.837849
-70 76 53.712196
-70 77 49.406477
-70 78 49.648766
-70 79 23.345235
-70 80 29.681644
-70 81 16.763055
-70 82 18.973666
-70 83 9.848858
-70 84 21.840330
-70 85 34.713110
-70 86 43.185646
-70 87 29.732137
-70 88 33.837849
-70 89 9.219544
-70 90 59.203040
-70 91 7.810250
-70 92 20.591260
-70 93 23.769729
-70 94 30.000000
-70 95 26.305893
-70 96 29.154759
-70 97 24.083189
-70 98 43.416587
-70 99 5.000000
-70 100 17.720045
-70 101 15.000000
-71 1 19.646883
-71 2 18.867962
-71 3 14.317821
-71 4 20.615528
-71 5 18.601075
-71 6 21.931712
-71 7 18.027756
-71 8 20.880613
-71 9 22.825424
-71 10 42.201896
-71 11 38.288379
-71 12 39.623226
-71 13 36.124784
-71 14 45.343136
-71 15 38.418745
-71 16 43.931765
-71 17 45.453273
-71 18 42.438190
-71 19 64.629715
-71 20 59.413803
-71 21 54.451814
-71 22 64.195015
-71 23 54.230987
-71 24 64.070274
-71 25 54.083269
-71 26 64.000000
-71 27 71.561163
-71 28 68.963759
-71 29 69.065187
-71 30 64.660653
-71 31 65.802736
-71 32 62.968246
-71 33 65.000000
-71 34 66.603303
-71 35 60.464866
-71 36 35.777088
-71 37 34.000000
-71 38 32.695565
-71 39 29.154759
-71 40 27.313001
-71 41 29.681644
-71 42 23.769729
-71 43 22.825424
-71 44 25.612497
-71 45 23.853721
-71 46 19.849433
-71 47 20.248457
-71 48 40.804412
-71 49 64.381674
-71 50 57.428216
-71 51 50.249378
-71 52 52.924474
-71 53 40.261644
-71 54 24.207437
-71 55 21.931712
-71 56 10.295630
-71 57 37.161808
-71 58 44.283180
-71 59 62.297673
-71 60 55.009090
-71 61 21.931712
-71 62 10.770330
-71 63 45.343136
-71 64 57.454330
-71 65 40.261644
-71 66 29.000000
-71 67 32.557641
-71 68 39.623226
-71 69 10.295630
-71 70 17.464249
-71 72 33.105891
-71 73 28.284271
-71 74 34.205263
-71 75 51.244512
-71 76 70.682388
-71 77 62.241465
-71 78 67.082039
-71 79 29.966648
-71 80 29.017236
-71 81 25.059928
-71 82 17.804494
-71 83 27.202941
-71 84 38.052595
-71 85 45.650849
-71 86 53.851648
-71 87 47.127487
-71 88 50.537115
-71 89 15.556349
-71 90 71.554175
-71 91 22.090722
-71 92 30.413813
-71 93 31.622777
-71 94 31.064449
-71 95 30.413813
-71 96 38.275318
-71 97 25.000000
-71 98 59.682493
-71 99 19.235384
-71 100 35.171011
-71 101 4.472136
-72 1 25.495098
-72 2 50.000000
-72 3 47.423623
-72 4 52.430907
-72 5 51.478151
-72 6 54.083269
-72 7 51.078371
-72 8 53.851648
-72 9 55.901699
-72 10 58.523500
-72 11 57.008771
-72 12 58.940648
-72 13 57.870545
-72 14 63.245553
-72 15 60.827625
-72 16 64.761099
-72 17 66.708320
-72 18 65.764732
-72 19 54.230987
-72 20 50.537115
-72 21 46.141088
-72 22 55.901699
-72 23 47.169906
-72 24 56.824291
-72 25 48.259714
-72 26 58.309519
-72 27 39.051248
-72 28 36.055513
-72 29 36.796739
-72 30 32.015621
-72 31 33.970576
-72 32 30.479501
-72 33 33.301652
-72 34 36.055513
-72 35 28.284271
-72 36 30.066593
-72 37 30.000000
-72 38 27.000000
-72 39 25.179357
-72 40 25.495098
-72 41 30.413813
-72 42 21.189620
-72 43 26.925824
-72 44 31.622777
-72 45 28.792360
-72 46 52.478567
-72 47 53.235327
-72 48 63.788714
-72 49 55.036352
-72 50 48.764741
-72 51 21.189620
-72 52 36.400549
-72 53 47.169906
-72 54 45.276926
-72 55 11.180340
-72 56 35.355339
-72 57 25.000000
-72 58 46.097722
-72 59 67.268120
-72 60 65.192024
-72 61 50.249378
-72 62 22.360680
-72 63 20.000000
-72 64 35.000000
-72 65 32.015621
-72 66 33.541020
-72 67 30.000000
-72 68 13.038405
-72 69 25.495098
-72 70 34.132096
-72 71 33.105891
-72 73 10.198039
-72 74 63.198101
-72 75 57.008771
-72 76 78.102497
-72 77 43.289722
-72 78 66.843100
-72 79 57.008771
-72 80 60.415230
-72 81 19.697716
-72 82 16.278821
-72 83 39.849718
-72 84 36.878178
-72 85 27.202941
-72 86 32.062439
-72 87 53.823787
-72 88 61.400326
-72 89 41.109610
-72 90 50.039984
-72 91 29.120440
-72 92 20.615528
-72 93 16.970563
-72 94 5.000000
-72 95 10.630146
-72 96 20.124612
-72 97 10.049876
-72 98 71.344236
-72 99 39.115214
-72 100 43.829214
-72 101 36.055513
-73 1 27.459060
-73 2 42.941821
-73 3 42.201896
-73 4 45.617979
-73 5 45.541190
-73 6 47.423623
-73 7 46.097722
-73 8 49.030603
-73 9 50.289164
-73 10 60.901560
-73 11 58.600341
-73 12 60.415230
-73 13 58.523500
-73 14 65.299311
-73 15 61.351447
-73 16 65.924199
-73 17 67.779053
-73 18 66.098411
-73 19 62.936476
-73 20 58.872744
-73 21 54.230987
-73 22 64.257295
-73 23 55.036352
-73 24 65.000000
-73 25 55.901699
-73 26 66.211781
-73 27 47.423623
-73 28 43.863424
-73 29 45.453273
-73 30 40.360872
-73 31 43.011626
-73 32 39.051248
-73 33 42.438190
-73 34 45.650849
-73 35 37.202150
-73 36 20.396078
-73 37 20.099751
-73 38 17.117243
-73 39 15.033296
-73 40 15.297059
-73 41 20.223748
-73 42 11.180340
-73 43 17.000000
-73 44 21.540659
-73 45 18.788294
-73 46 46.238512
-73 47 47.434165
-73 48 64.195015
-73 49 63.568860
-73 50 57.008771
-73 51 31.320920
-73 52 45.705580
-73 53 51.662365
-73 54 45.541190
-73 55 9.433981
-73 56 33.376639
-73 57 32.695565
-73 58 51.855569
-73 59 73.000000
-73 60 69.526973
-73 61 48.259714
-73 62 18.000000
-73 63 30.066593
-73 64 45.044423
-73 65 39.357337
-73 66 37.536649
-73 67 35.608988
-73 68 23.021729
-73 69 23.537205
-73 70 34.539832
-73 71 28.284271
-73 72 10.198039
-73 74 61.204575
-73 75 62.241465
-73 76 83.450584
-73 77 53.084838
-73 78 73.783467
-73 79 55.731499
-73 80 57.078893
-73 81 24.083189
-73 82 15.652476
-73 83 42.190046
-73 84 42.801869
-73 85 36.496575
-73 86 42.000000
-73 87 58.694122
-73 88 65.436993
-73 89 39.623226
-73 90 60.133186
-73 91 31.622777
-73 92 26.925824
-73 93 24.166092
-73 94 13.152946
-73 95 18.027756
-73 96 28.861739
-73 97 13.601471
-73 98 75.432089
-73 99 39.217343
-73 100 47.634021
-73 101 32.062439
-74 1 39.293765
-74 2 33.970576
-74 3 25.000000
-74 4 32.015621
-74 5 26.907248
-74 6 30.805844
-74 7 21.931712
-74 8 19.849433
-74 9 23.853721
-74 10 26.248809
-74 11 21.540659
-74 12 20.880613
-74 13 16.155494
-74 14 25.179357
-74 15 15.297059
-74 16 20.000000
-74 17 20.099751
-74 18 15.132746
-74 19 69.202601
-74 20 64.031242
-74 21 60.207973
-74 22 66.850580
-74 23 58.898217
-74 24 65.734314
-74 25 57.628118
-74 26 64.140471
-74 27 97.718985
-74 28 96.301610
-74 29 94.868330
-74 30 91.482239
-74 31 91.082380
-74 32 89.560036
-74 33 90.138782
-74 34 90.077744
-74 35 86.683332
-74 36 69.641941
-74 37 67.779053
-74 38 66.730802
-74 39 63.245553
-74 40 61.351447
-74 41 63.158531
-74 42 57.974132
-74 43 56.648036
-74 44 58.600341
-74 45 57.384667
-74 46 28.425341
-74 47 25.612497
-74 48 15.000000
-74 49 68.007353
-74 50 62.481997
-74 51 74.330344
-74 52 66.400301
-74 53 37.802116
-74 54 20.591260
-74 55 53.000000
-74 56 28.000000
-74 57 54.120237
-74 58 44.821870
-74 59 51.662365
-74 60 40.792156
-74 61 13.000000
-74 62 43.289722
-74 63 67.779053
-74 64 74.625733
-74 65 52.430907
-74 66 38.587563
-74 67 45.276926
-74 68 64.560050
-74 69 38.000000
-74 70 30.083218
-74 71 34.205263
-74 72 63.198101
-74 73 61.204575
-74 75 43.863424
-74 76 55.081757
-74 77 75.286121
-74 78 60.745370
-74 79 7.211103
-74 80 8.944272
-74 81 46.840154
-74 82 47.042534
-74 83 30.232433
-74 84 45.453273
-74 85 63.134776
-74 86 71.344236
-74 87 40.706265
-74 88 37.363083
-74 89 22.090722
-74 90 85.146932
-74 91 37.336309
-74 92 50.328918
-74 93 53.758720
-74 94 59.539903
-74 95 56.293872
-74 96 58.694122
-74 97 53.338541
-74 98 42.047592
-74 99 25.298221
-74 100 34.655447
-74 101 29.832868
-75 1 36.055513
-75 2 65.192024
-75 3 55.036352
-75 4 65.030762
-75 5 60.000000
-75 6 65.000000
-75 7 55.036352
-75 8 55.226805
-75 9 60.207973
-75 10 18.027756
-75 11 22.360680
-75 12 23.323808
-75 13 27.730849
-75 14 21.213203
-75 15 29.154759
-75 16 26.907248
-75 17 28.284271
-75 18 32.015621
-75 19 28.301943
-75 20 24.166092
-75 21 22.561028
-75 22 25.000000
-75 23 20.615528
-75 24 23.430749
-75 25 18.681542
-75 26 21.213203
-75 27 75.663730
-75 28 76.485293
-75 29 72.691127
-75 30 71.589105
-75 31 68.731361
-75 32 69.634761
-75 33 67.742158
-75 34 65.192024
-75 35 66.708320
-75 36 80.212219
-75 37 79.056942
-75 38 76.609399
-75 39 73.239334
-75 40 72.111026
-75 41 76.321688
-75 42 66.850580
-75 43 69.462220
-75 44 73.824115
-75 45 71.196910
-75 46 62.000000
-75 47 60.033324
-75 48 30.805844
-75 49 26.627054
-75 50 23.409400
-75 51 54.120237
-75 52 35.000000
-75 53 11.180340
-75 54 30.000000
-75 55 53.150729
-75 56 41.231056
-75 57 33.541020
-75 58 11.180340
-75 59 11.180340
-75 60 10.000000
-75 61 40.311289
-75 62 51.478151
-75 63 47.434165
-75 64 45.000000
-75 65 26.925824
-75 66 25.000000
-75 67 27.018512
-75 68 49.193496
-75 69 44.721360
-75 70 33.837849
-75 71 51.244512
-75 72 57.008771
-75 73 62.241465
-75 74 43.863424
-75 76 21.213203
-75 77 40.792156
-75 78 17.262677
-75 79 37.947332
-75 80 50.000000
-75 81 38.183766
-75 82 47.801674
-75 83 24.041631
-75 84 20.248457
-75 85 38.078866
-75 86 43.104524
-75 87 4.123106
-75 88 8.944272
-75 89 38.209946
-75 90 49.335586
-75 91 31.906112
-75 92 36.400549
-75 93 40.224371
-75 94 52.009614
-75 95 46.400431
-75 96 39.812058
-75 97 48.795492
-75 98 16.124515
-75 99 32.557641
-75 100 16.155494
-75 101 48.270074
-76 1 57.008771
-76 2 82.462113
-76 3 72.034714
-76 4 81.786307
-76 5 76.485293
-76 6 81.394103
-76 7 71.196910
-76 8 70.710678
-76 9 75.663730
-76 10 30.413813
-76 11 35.355339
-76 12 35.128336
-76 13 40.112342
-76 14 30.000000
-76 15 40.000000
-76 16 35.128336
-76 17 35.355339
-76 18 40.311289
-76 19 39.000000
-76 20 37.336309
-76 21 38.327536
-76 22 35.000000
-76 23 36.400549
-76 24 33.000000
-76 25 34.481879
-76 26 30.000000
-76 27 93.407708
-76 28 94.868330
-76 29 90.520716
-76 30 90.138782
-76 31 86.683332
-76 32 88.255311
-76 33 85.726309
-76 34 82.462113
-76 35 85.440037
-76 36 101.212647
-76 37 100.000000
-76 38 97.616597
-76 39 94.201911
-76 40 93.005376
-76 41 97.082439
-76 42 87.800911
-76 43 90.138782
-76 44 94.339811
-76 45 91.809586
-76 46 78.447435
-76 47 76.118329
-76 48 40.112342
-76 49 37.000000
-76 50 37.656341
-76 51 73.409809
-76 52 52.201533
-76 53 32.015621
-76 54 47.434165
-76 55 74.330344
-76 56 60.415230
-76 57 54.083269
-76 58 32.015621
-76 59 11.180340
-76 60 15.811388
-76 61 55.901699
-76 62 72.111026
-76 63 67.082039
-76 64 61.846584
-76 65 47.169906
-76 66 46.097722
-76 67 48.166378
-76 68 69.641941
-76 69 65.192024
-76 70 53.712196
-76 71 70.682388
-76 72 78.102497
-76 73 83.450584
-76 74 55.081757
-76 75 21.213203
-76 77 55.443665
-76 78 18.110770
-76 79 51.088159
-76 80 63.007936
-76 81 59.396970
-76 82 68.883960
-76 83 43.908997
-76 84 41.231056
-76 85 57.271284
-76 86 60.728906
-76 87 24.839485
-76 88 20.248457
-76 89 56.302753
-76 90 62.000000
-76 91 52.801515
-76 92 57.489129
-76 93 61.220911
-76 94 73.109507
-76 95 67.475922
-76 96 60.207973
-76 97 70.007142
-76 98 13.038405
-76 99 51.478151
-76 100 36.619667
-76 101 67.230945
-77 1 42.941821
-77 2 80.956779
-77 3 73.573093
-77 4 82.298238
-77 5 78.892332
-77 6 83.240615
-77 7 75.716577
-77 8 77.420927
-77 9 81.541401
-77 10 55.036352
-77 11 57.306195
-77 12 59.059292
-77 13 61.587336
-77 14 59.615434
-77 15 64.140471
-77 16 64.404969
-77 17 66.211781
-77 18 68.476273
-77 19 17.464249
-77 20 18.110770
-77 21 18.248288
-77 22 21.189620
-77 23 20.223748
-77 24 23.086793
-77 25 22.203603
-77 26 25.961510
-77 27 39.357337
-77 28 41.880783
-77 29 36.715120
-77 30 37.802116
-77 31 33.286634
-77 32 36.235342
-77 33 32.449961
-77 34 28.178006
-77 35 33.970576
-77 36 73.334848
-77 37 73.171033
-77 38 70.178344
-77 39 68.029405
-77 40 68.000000
-77 41 73.000000
-77 42 63.031738
-77 43 68.183576
-77 44 73.171033
-77 45 70.178344
-77 46 80.622577
-77 47 79.924965
-77 48 66.730802
-77 49 19.313208
-77 50 18.000000
-77 51 25.942244
-77 52 9.433981
-77 53 39.357337
-77 54 55.172457
-77 55 48.259714
-77 56 56.603887
-77 57 25.079872
-77 58 32.695565
-77 59 45.044423
-77 60 50.635956
-77 61 65.795137
-77 62 55.081757
-77 63 23.537205
-77 64 9.433981
-77 65 23.430749
-77 66 37.536649
-77 67 31.400637
-77 68 30.265492
-77 69 52.000000
-77 70 49.406477
-77 71 62.241465
-77 72 43.289722
-77 73 53.084838
-77 74 75.286121
-77 75 40.792156
-77 76 55.443665
-77 78 38.078866
-77 79 68.117545
-77 80 77.794601
-77 81 37.336309
-77 82 47.296934
-77 83 45.276926
-77 84 29.832868
-77 85 17.262677
-77 86 11.401754
-77 87 40.804412
-77 88 49.477268
-77 89 58.412327
-77 90 9.899495
-77 91 41.880783
-77 92 31.953091
-77 93 31.780497
-77 94 40.012498
-77 95 36.124784
-77 96 25.317978
-77 97 42.296572
-77 98 56.320511
-77 99 52.497619
-77 100 41.048752
-77 101 62.177166
-78 1 49.979996
-78 2 82.024387
-78 3 72.006944
-78 4 82.006097
-78 5 77.058419
-78 6 82.054860
-78 7 72.173402
-78 8 72.443081
-78 9 77.414469
-78 10 34.539832
-78 11 39.217343
-78 12 39.924930
-78 13 44.598206
-78 14 36.715120
-78 15 45.694639
-78 16 42.544095
-78 17 43.566042
-78 18 47.885280
-78 19 21.095023
-78 20 20.248457
-78 21 22.472205
-78 22 17.117243
-78 23 20.808652
-78 24 15.132746
-78 25 19.209373
-78 26 12.165525
-78 27 76.896034
-78 28 78.790862
-78 29 74.094534
-78 30 74.249579
-78 31 70.384657
-78 32 72.449983
-78 33 69.462220
-78 34 65.787537
-78 35 69.771054
-78 36 93.059121
-78 37 92.130342
-78 38 89.470666
-78 39 86.313383
-78 40 85.428333
-78 41 89.961103
-78 42 80.056230
-78 43 83.384651
-78 44 88.022724
-78 45 85.234969
-78 46 79.056942
-78 47 77.162167
-78 48 46.957428
-78 49 19.104973
-78 50 21.023796
-78 51 58.523500
-78 52 36.235342
-78 53 27.073973
-78 54 47.095647
-78 55 65.368188
-78 56 57.428216
-78 57 41.868843
-78 58 23.086793
-78 59 10.630146
-78 60 21.400935
-78 61 57.558666
-78 62 65.787537
-78 63 52.801515
-78 64 45.310043
-78 65 34.828150
-78 66 38.897301
-78 67 38.470768
-78 68 56.586217
-78 69 59.481089
-78 70 49.648766
-78 71 67.082039
-78 72 66.843100
-78 73 73.783467
-78 74 60.745370
-78 75 17.262677
-78 76 18.110770
-78 77 38.078866
-78 79 55.081757
-78 80 67.186308
-78 81 50.119856
-78 82 60.835845
-78 83 40.199502
-78 84 31.304952
-78 85 42.801869
-78 86 44.721360
-78 87 21.095023
-78 88 23.706539
-78 89 55.009090
-78 90 44.045431
-78 91 46.173586
-78 92 46.872167
-78 93 50.000000
-78 94 62.008064
-78 95 56.400355
-78 96 47.381431
-78 97 60.207973
-78 98 24.207437
-78 99 49.091751
-78 100 32.140317
-78 101 64.498062
-79 1 32.557641
-79 2 33.615473
-79 3 23.600847
-79 4 32.202484
-79 5 26.832816
-79 6 31.384710
-79 7 21.470911
-79 8 20.248457
-79 9 25.000000
-79 10 21.095023
-79 11 16.124515
-79 12 16.000000
-79 13 11.000000
-79 14 21.213203
-79 15 11.401754
-79 16 17.088007
-79 17 17.888544
-79 18 13.601471
-79 19 62.425956
-79 20 57.201399
-79 21 53.263496
-79 22 60.207973
-79 23 52.009614
-79 24 59.169249
-79 25 50.803543
-79 26 57.706152
-79 27 90.801982
-79 28 89.498603
-79 29 87.931792
-79 30 84.646323
-79 31 84.118963
-79 32 82.710338
-79 33 83.168504
-79 34 83.006024
-79 35 79.812280
-79 36 65.741920
-79 37 63.953108
-79 38 62.649820
-79 39 59.093147
-79 40 57.271284
-79 41 59.539903
-79 42 53.488316
-79 43 52.773099
-79 44 55.226805
-79 45 53.712196
-79 46 28.635642
-79 47 26.000000
-79 48 12.529964
-79 49 61.294372
-79 50 55.605755
-79 51 67.357256
-79 52 59.203040
-79 53 31.064449
-79 54 13.416408
-79 55 47.169906
-79 56 22.360680
-79 57 46.957428
-79 58 38.013156
-79 59 46.529560
-79 60 36.055513
-79 61 8.062258
-79 62 38.078866
-79 63 60.745370
-79 64 67.416615
-79 65 45.221676
-79 66 31.384710
-79 67 38.078866
-79 68 57.723479
-79 69 32.249031
-79 70 23.345235
-79 71 29.966648
-79 72 57.008771
-79 73 55.731499
-79 74 7.211103
-79 75 37.947332
-79 76 51.088159
-79 77 68.117545
-79 78 55.081757
-79 80 12.165525
-79 81 40.024992
-79 82 41.048752
-79 83 23.021729
-79 84 38.288379
-79 85 55.946403
-79 86 64.140471
-79 87 34.539832
-79 88 32.249031
-79 89 16.124515
-79 90 77.987178
-79 91 30.364453
-79 92 43.324358
-79 93 46.840154
-79 94 53.150729
-79 95 49.648766
-79 96 51.623638
-79 97 47.042534
-79 98 38.209946
-79 99 18.439089
-79 100 27.658633
-79 101 25.495098
-80 1 38.470768
-80 2 25.495098
-80 3 17.464249
-80 4 23.345235
-80 5 18.439089
-80 6 22.022716
-80 7 13.892444
-80 8 11.401754
-80 9 15.000000
-80 10 33.241540
-80 11 28.284271
-80 12 28.071338
-80 13 23.086793
-80 14 33.015148
-80 15 23.021729
-80 16 28.284271
-80 17 28.635642
-80 18 23.769729
-80 19 73.573093
-80 20 68.264193
-80 21 64.070274
-80 22 71.589105
-80 23 62.968246
-80 24 70.661163
-80 25 61.911227
-80 26 69.354164
-80 27 96.772930
-80 28 94.921020
-80 29 94.021274
-80 30 90.249654
-80 31 90.376988
-80 32 88.391176
-80 33 89.470666
-80 34 89.944427
-80 35 85.615419
-80 36 63.324561
-80 37 61.400326
-80 38 60.638272
-80 39 57.271284
-80 40 55.317267
-80 41 56.612719
-80 42 52.469038
-80 43 50.447993
-80 44 51.865210
-80 45 50.960769
-80 46 19.798990
-80 47 16.970563
-80 48 23.345235
-80 49 72.560320
-80 50 66.573268
-80 51 73.790243
-80 52 68.593003
-80 53 42.485292
-80 54 22.803509
-80 55 49.648766
-80 56 25.298221
-80 57 55.000000
-80 58 49.244289
-80 59 58.694122
-80 60 48.166378
-80 61 12.041595
-80 62 39.115214
-80 63 67.601775
-80 64 76.059187
-80 65 54.451814
-80 66 40.311289
-80 67 46.754679
-80 68 63.560994
-80 69 34.928498
-80 70 29.681644
-80 71 29.017236
-80 72 60.415230
-80 73 57.078893
-80 74 8.944272
-80 75 50.000000
-80 76 63.007936
-80 77 77.794601
-80 78 67.186308
-80 79 12.165525
-80 81 46.065171
-80 82 44.147480
-80 83 32.649655
-80 84 48.270074
-80 85 64.202804
-80 86 72.622311
-80 87 46.486557
-80 88 44.407207
-80 89 20.591260
-80 90 87.692645
-80 91 37.443290
-80 92 50.249378
-80 93 53.235327
-80 94 57.280014
-80 95 54.781384
-80 96 58.830264
-80 97 50.960769
-80 98 50.039984
-80 99 25.612497
-80 100 38.587563
-80 101 25.019992
-81 1 7.615773
-81 2 43.908997
-81 3 37.536649
-81 4 45.486262
-81 5 42.638011
-81 6 46.615448
-81 7 40.311289
-81 8 42.520583
-81 9 45.967380
-81 10 38.897301
-81 11 37.656341
-81 12 39.623226
-81 13 39.051248
-81 14 43.680659
-81 15 42.047592
-81 16 45.541190
-81 17 47.518417
-81 18 47.042534
-81 19 42.107007
-81 20 37.336309
-81 21 32.388269
-81 22 42.579338
-81 23 32.756679
-81 24 42.953463
-81 25 33.241540
-81 26 43.680659
-81 27 50.921508
-81 28 49.477268
-81 29 48.104054
-81 30 44.643029
-81 31 44.384682
-81 32 42.720019
-81 33 43.462628
-81 34 43.908997
-81 35 39.849718
-81 36 42.941821
-81 37 42.047592
-81 38 39.357337
-81 39 36.249138
-81 40 35.468296
-81 41 40.162171
-81 42 30.083218
-81 43 33.955854
-81 44 38.832976
-81 45 35.902646
-81 46 44.204072
-81 47 43.931765
-81 48 45.044423
-81 49 42.296572
-81 50 35.355339
-81 51 27.730849
-81 52 28.160256
-81 53 27.802878
-81 54 27.166155
-81 55 15.264338
-81 56 21.400935
-81 57 12.369317
-81 58 27.802878
-81 59 48.918299
-81 60 45.803930
-81 61 34.539832
-81 62 18.110770
-81 63 21.633308
-81 64 32.449961
-81 65 17.117243
-81 66 13.892444
-81 67 11.661904
-81 68 17.720045
-81 69 14.764823
-81 70 16.763055
-81 71 25.059928
-81 72 19.697716
-81 73 24.083189
-81 74 46.840154
-81 75 38.183766
-81 76 59.396970
-81 77 37.336309
-81 78 50.119856
-81 79 40.024992
-81 80 46.065171
-81 82 11.180340
-81 83 20.396078
-81 84 18.867962
-81 85 20.591260
-81 86 28.844410
-81 87 34.713110
-81 88 41.880783
-81 89 25.495098
-81 90 46.518813
-81 91 10.000000
-81 92 5.385165
-81 93 7.211103
-81 94 14.866069
-81 95 10.049876
-81 96 13.453624
-81 97 10.630146
-81 98 51.865210
-81 99 21.587033
-81 100 24.186773
-81 101 25.612497
-82 1 12.041595
-82 2 36.124784
-82 3 31.906112
-82 4 38.183766
-82 5 36.400549
-82 6 39.623226
-82 7 35.355339
-82 8 38.013156
-82 9 40.496913
-82 10 45.276926
-82 11 42.953463
-82 12 44.777226
-82 13 43.011626
-82 14 49.648766
-82 15 45.880279
-82 16 50.328918
-82 17 52.201533
-82 18 50.695167
-82 19 53.235327
-82 20 48.507731
-82 21 43.566042
-82 22 53.758720
-82 23 43.931765
-82 24 54.129474
-82 25 44.384682
-82 26 54.817880
-82 27 53.851648
-82 28 51.429563
-82 29 51.312766
-82 30 47.010637
-82 31 48.010416
-82 32 45.276926
-82 33 47.201695
-82 34 48.836462
-82 35 42.720019
-82 36 32.449961
-82 37 31.384710
-82 38 28.844410
-82 39 25.553865
-82 40 24.596748
-82 41 29.154759
-82 42 19.235384
-82 43 22.803509
-82 44 27.658633
-82 45 24.738634
-82 46 37.643060
-82 47 38.013156
-82 48 48.764741
-82 49 53.460266
-82 50 46.529560
-82 51 32.526912
-82 52 38.470768
-82 53 36.878178
-82 54 30.083218
-82 55 6.324555
-82 56 19.104973
-82 57 23.021729
-82 58 38.078866
-82 59 58.821765
-82 60 54.451814
-82 61 34.058773
-82 62 8.062258
-82 63 28.017851
-82 64 41.231056
-82 65 28.284271
-82 66 22.803509
-82 67 22.472205
-82 68 21.931712
-82 69 9.219544
-82 70 18.973666
-82 71 17.804494
-82 72 16.278821
-82 73 15.652476
-82 74 47.042534
-82 75 47.801674
-82 76 68.883960
-82 77 47.296934
-82 78 60.835845
-82 79 41.048752
-82 80 44.147480
-82 81 11.180340
-82 83 26.627054
-82 84 29.546573
-82 85 30.083218
-82 86 37.696154
-82 87 44.045431
-82 88 50.249378
-82 89 25.000000
-82 90 55.973208
-82 91 16.278821
-82 92 16.000000
-82 93 15.524175
-82 94 13.416408
-82 95 12.806248
-82 96 22.135944
-82 97 7.211103
-82 98 60.207973
-82 99 23.769729
-82 100 32.526912
-82 101 20.124612
-83 1 14.764823
-83 2 42.047592
-83 3 32.388269
-83 4 42.296572
-83 5 37.656341
-83 6 42.579338
-83 7 33.241540
-83 8 34.176015
-83 9 38.897301
-83 10 18.788294
-83 11 17.262677
-83 12 19.235384
-83 13 19.104973
-83 14 23.409400
-83 15 22.090722
-83 16 25.179357
-83 17 27.166155
-83 18 27.073973
-83 19 41.629317
-83 20 36.249138
-83 21 31.764760
-83 22 40.162171
-83 23 30.870698
-83 24 39.560081
-83 25 30.083218
-83 26 38.832976
-83 27 69.231496
-83 28 68.468971
-83 29 66.287254
-83 30 63.505905
-83 31 62.369865
-83 32 61.522354
-83 33 61.392182
-83 34 60.728906
-83 35 58.549125
-83 36 58.000000
-83 37 56.639209
-83 38 54.451814
-83 39 50.931326
-83 40 49.578221
-83 41 53.413481
-83 42 44.553339
-83 43 46.400431
-83 44 50.477718
-83 45 48.010416
-83 46 39.623226
-83 47 38.078866
-83 48 25.079872
-83 49 40.853396
-83 50 34.438351
-83 51 45.705580
-83 52 36.235342
-83 53 13.152946
-83 54 9.899495
-83 55 32.756679
-83 56 17.262677
-83 57 24.351591
-83 58 18.248288
-83 59 35.114100
-83 60 28.600699
-83 61 20.808652
-83 62 28.425341
-83 63 38.832976
-83 64 44.418465
-83 65 22.203603
-83 66 8.544004
-83 67 15.231546
-83 68 37.013511
-83 69 21.400935
-83 70 9.848858
-83 71 27.202941
-83 72 39.849718
-83 73 42.190046
-83 74 30.232433
-83 75 24.041631
-83 76 43.908997
-83 77 45.276926
-83 78 40.199502
-83 79 23.021729
-83 80 32.649655
-83 81 20.396078
-83 82 26.627054
-83 84 15.620499
-83 85 33.105891
-83 86 41.182521
-83 87 19.924859
-83 88 24.207437
-83 89 15.297059
-83 90 55.172457
-83 91 10.770330
-83 92 22.022716
-83 93 26.000000
-83 94 35.171011
-83 95 30.413813
-83 96 29.614186
-83 97 30.083218
-83 98 33.970576
-83 99 9.055385
-83 100 8.062258
-83 101 24.331050
-84 1 19.235384
-84 2 55.317267
-84 3 46.486557
-84 4 56.044625
-84 5 51.865210
-84 6 56.612719
-84 7 47.927028
-84 8 49.193496
-84 9 53.712196
-84 10 27.294688
-84 11 28.460499
-84 12 30.364453
-84 13 32.202484
-84 14 32.249031
-84 15 34.928498
-84 16 36.138622
-84 17 38.078866
-84 18 39.560081
-84 19 26.925824
-84 20 21.587033
-84 21 16.763055
-84 22 26.172505
-84 23 16.278821
-84 24 26.019224
-84 25 16.031220
-84 26 26.076810
-84 27 58.008620
-84 28 58.137767
-84 29 55.009090
-84 30 53.150729
-84 31 51.009803
-84 32 51.156622
-84 33 50.009999
-84 34 48.373546
-84 35 48.166378
-84 36 61.773781
-84 37 60.827625
-84 38 58.180753
-84 39 55.009090
-84 40 54.129474
-84 41 58.694122
-84 42 48.754487
-84 43 52.201533
-84 44 56.920998
-84 45 54.083269
-84 46 53.758720
-84 47 52.554733
-84 48 37.696154
-84 49 26.476405
-84 50 19.646883
-84 51 35.227830
-84 52 21.095023
-84 53 12.041595
-84 54 25.495098
-84 55 34.132096
-84 56 29.832868
-84 57 13.601471
-84 58 9.219544
-84 59 30.413813
-84 60 29.154759
-84 61 36.400549
-84 62 34.928498
-84 63 28.284271
-84 64 30.083218
-84 65 8.062258
-84 66 9.219544
-84 67 7.211103
-84 68 29.154759
-84 69 29.154759
-84 70 21.840330
-84 71 38.052595
-84 72 36.878178
-84 73 42.801869
-84 74 45.453273
-84 75 20.248457
-84 76 41.231056
-84 77 29.832868
-84 78 31.304952
-84 79 38.288379
-84 80 48.270074
-84 81 18.867962
-84 82 29.546573
-84 83 15.620499
-84 85 20.099751
-84 86 27.202941
-84 87 17.464249
-84 88 25.961510
-84 89 29.966648
-84 90 39.698866
-84 91 16.000000
-84 92 16.278821
-84 93 20.000000
-84 94 31.890437
-84 95 26.248809
-84 96 19.924859
-84 97 29.206164
-84 98 35.468296
-84 99 23.706539
-84 100 11.704700
-84 101 36.496575
-85 1 27.018512
-85 2 64.498062
-85 3 57.801384
-85 4 66.037868
-85 5 63.007936
-85 6 67.119297
-85 7 60.307545
-85 8 62.289646
-85 9 66.068147
-85 10 47.381431
-85 11 48.270074
-85 12 50.219518
-85 13 51.546096
-85 14 52.345009
-85 15 54.405882
-85 16 56.089215
-85 17 58.051701
-85 18 59.203040
-85 19 27.294688
-85 20 24.207437
-85 21 20.518285
-85 22 29.410882
-85 23 22.022716
-85 24 30.610456
-85 25 23.600847
-85 26 32.557641
-85 27 38.013156
-85 28 38.470768
-85 29 35.014283
-85 30 33.541020
-85 31 31.016125
-85 32 31.575307
-85 33 30.016662
-85 34 28.284271
-85 35 28.635642
-85 36 56.885851
-85 37 56.568542
-85 38 53.600373
-85 39 51.244512
-85 40 51.088159
-85 41 56.080300
-85 42 46.010868
-85 43 51.039201
-85 44 56.035703
-85 45 53.037722
-85 46 64.637450
-85 47 64.202804
-85 48 57.280014
-85 49 28.301943
-85 50 22.671568
-85 51 16.155494
-85 52 9.219544
-85 53 32.015621
-85 54 42.544095
-85 55 31.064449
-85 56 41.109610
-85 57 9.219544
-85 58 27.294688
-85 59 46.097722
-85 60 47.853944
-85 61 52.201533
-85 62 37.947332
-85 63 10.000000
-85 64 12.041595
-85 65 12.041595
-85 66 24.596748
-85 67 17.888544
-85 68 14.764823
-85 69 35.355339
-85 70 34.713110
-85 71 45.650849
-85 72 27.202941
-85 73 36.496575
-85 74 63.134776
-85 75 38.078866
-85 76 57.271284
-85 77 17.262677
-85 78 42.801869
-85 79 55.946403
-85 80 64.202804
-85 81 20.591260
-85 82 30.083218
-85 83 33.105891
-85 84 20.099751
-85 86 8.485281
-85 87 36.345564
-85 88 45.276926
-85 89 43.931765
-85 90 26.000000
-85 91 26.907248
-85 92 15.264338
-85 93 14.560220
-85 94 23.345235
-85 95 19.000000
-85 96 8.062258
-85 97 25.079872
-85 98 54.129474
-85 99 38.600518
-85 100 31.575307
-85 101 46.043458
-86 1 35.468296
-86 2 72.718636
-86 3 66.219333
-86 4 74.330344
-86 5 71.400280
-86 6 75.451971
-86 7 68.767725
-86 8 70.767224
-86 9 74.518454
-86 10 54.341513
-86 11 55.659680
-86 12 57.567352
-86 13 59.236813
-86 14 59.228372
-86 15 62.032250
-86 16 63.324561
-86 17 65.253352
-86 18 66.730802
-86 19 26.172505
-86 20 24.698178
-86 21 22.472205
-86 22 29.206164
-86 23 24.351591
-86 24 30.805844
-86 25 26.248809
-86 26 33.286634
-86 27 32.756679
-86 28 34.176015
-86 29 29.832868
-86 30 29.546573
-86 31 25.961510
-86 32 27.730849
-86 33 25.000000
-86 34 22.090722
-86 35 25.059928
-86 36 62.128898
-86 37 62.032250
-86 38 59.033889
-86 39 57.008771
-86 40 57.078893
-86 41 62.072538
-86 42 52.239832
-86 43 57.558666
-86 44 62.513998
-86 45 59.539903
-86 46 73.006849
-86 47 72.622311
-86 48 64.845971
-86 49 27.658633
-86 50 23.706539
-86 51 15.000000
-86 52 8.544004
-86 53 38.639358
-86 54 50.774009
-86 55 37.854986
-86 56 49.578221
-86 57 17.691806
-86 58 33.060551
-86 59 49.729267
-86 60 53.084838
-86 61 60.605280
-86 62 45.694639
-86 63 12.165525
-86 64 3.605551
-86 65 19.313208
-86 66 32.756679
-86 67 26.076810
-86 68 19.026298
-86 69 43.566042
-86 70 43.185646
-86 71 53.851648
-86 72 32.062439
-86 73 42.000000
-86 74 71.344236
-86 75 43.104524
-86 76 60.728906
-86 77 11.401754
-86 78 44.721360
-86 79 64.140471
-86 80 72.622311
-86 81 28.844410
-86 82 37.696154
-86 83 41.182521
-86 84 27.202941
-86 85 8.485281
-86 87 42.011903
-86 88 51.009803
-86 89 52.402290
-86 90 18.439089
-86 91 35.383612
-86 92 23.600847
-86 93 22.360680
-86 94 29.068884
-86 95 25.709920
-86 96 15.652476
-86 97 32.015621
-86 98 59.211485
-86 99 47.010637
-86 100 38.897301
-86 101 54.405882
-87 1 32.202484
-87 2 61.131007
-87 3 51.009803
-87 4 61.008196
-87 5 56.008928
-87 6 61.008196
-87 7 51.088159
-87 8 51.351728
-87 9 56.320511
-87 10 15.556349
-87 11 19.416488
-87 12 20.615528
-87 13 24.698178
-87 14 19.416488
-87 15 26.400758
-87 16 24.839485
-87 17 26.400758
-87 18 29.698485
-87 19 29.832868
-87 20 25.238859
-87 21 22.847319
-87 22 26.870058
-87 23 21.023796
-87 24 25.495098
-87 25 19.235384
-87 26 23.600847
-87 27 74.242845
-87 28 74.813100
-87 29 71.253070
-87 30 69.871310
-87 31 67.268120
-87 32 67.896981
-87 33 66.272166
-87 34 64.007812
-87 35 64.938432
-87 36 76.400262
-87 37 75.213031
-87 38 72.801099
-87 39 69.404611
-87 40 68.242216
-87 41 72.401657
-87 42 63.007936
-87 43 65.513357
-87 44 69.835521
-87 45 67.230945
-87 46 58.008620
-87 47 56.080300
-87 48 28.319605
-87 49 28.319605
-87 50 24.186773
-87 51 52.172790
-87 52 34.234486
-87 53 7.211103
-87 54 26.019224
-87 55 49.517674
-87 56 37.107951
-87 57 31.016125
-87 58 9.055385
-87 59 15.231546
-87 60 11.704700
-87 61 36.496575
-87 62 47.507894
-87 63 45.354162
-87 64 44.181444
-87 65 24.738634
-87 66 21.260292
-87 67 23.853721
-87 68 46.615448
-87 69 40.706265
-87 70 29.732137
-87 71 47.127487
-87 72 53.823787
-87 73 58.694122
-87 74 40.706265
-87 75 4.123106
-87 76 24.839485
-87 77 40.804412
-87 78 21.095023
-87 79 34.539832
-87 80 46.486557
-87 81 34.713110
-87 82 44.045431
-87 83 19.924859
-87 84 17.464249
-87 85 36.345564
-87 86 42.011903
-87 88 9.000000
-87 89 34.132096
-87 90 49.769469
-87 91 28.017851
-87 92 33.286634
-87 93 37.215588
-87 94 48.826222
-87 95 43.266615
-87 96 37.336309
-87 97 45.343136
-87 98 18.027756
-87 99 28.442925
-87 100 12.083046
-87 101 44.147480
-88 1 38.209946
-88 2 62.369865
-88 3 51.971146
-88 4 61.814238
-88 5 56.568542
-88 6 61.522354
-88 7 51.351728
-88 8 51.088159
-88 9 56.080300
-88 10 11.180340
-88 11 16.124515
-88 12 16.492423
-88 13 21.377558
-88 14 13.038405
-88 15 22.135944
-88 16 18.867962
-88 17 20.000000
-88 18 24.186773
-88 19 37.215588
-88 20 33.105891
-88 21 31.320920
-88 22 33.837849
-88 23 29.410882
-88 24 32.202484
-88 25 27.513633
-88 26 29.832868
-88 27 83.216585
-88 28 83.725743
-88 29 80.224684
-88 30 78.771822
-88 31 76.236474
-88 32 76.791927
-88 33 75.239617
-88 34 73.006849
-88 35 73.824115
-88 36 82.134037
-88 37 80.808415
-88 38 78.568442
-88 39 75.073298
-88 40 73.756356
-88 41 77.620873
-88 42 68.680419
-88 43 70.604532
-88 44 74.632433
-88 45 72.201108
-88 46 58.549125
-88 47 56.320511
-88 48 23.259407
-88 49 35.510562
-88 50 32.310989
-88 51 61.000000
-88 52 43.185646
-88 53 14.317821
-88 54 27.202941
-88 55 56.080300
-88 56 40.249224
-88 57 39.560081
-88 58 18.027756
-88 59 14.317821
-88 60 4.472136
-88 61 36.124784
-88 62 52.630789
-88 63 54.129474
-88 64 53.150729
-88 65 33.541020
-88 66 28.017851
-88 67 31.780497
-88 68 55.027266
-88 69 45.607017
-88 70 33.837849
-88 71 50.537115
-88 72 61.400326
-88 73 65.436993
-88 74 37.363083
-88 75 8.944272
-88 76 20.248457
-88 77 49.477268
-88 78 23.706539
-88 79 32.249031
-88 80 44.407207
-88 81 41.880783
-88 82 50.249378
-88 83 24.207437
-88 84 25.961510
-88 85 45.276926
-88 86 51.009803
-88 87 9.000000
-88 89 36.055513
-88 90 58.189346
-88 91 33.970576
-88 92 41.146081
-88 93 45.188494
-88 94 56.435804
-88 95 51.000000
-88 96 45.880279
-88 97 52.430907
-88 98 10.000000
-88 99 31.304952
-88 100 17.804494
-88 101 47.010637
-89 1 17.888544
-89 2 27.018512
-89 3 17.117243
-89 4 27.073973
-89 5 22.360680
-89 6 27.294688
-89 7 18.027756
-89 8 19.235384
-89 9 23.769729
-89 10 26.925824
-89 11 22.803509
-89 12 24.083189
-89 13 20.615528
-89 14 29.832868
-89 15 23.021729
-89 16 28.425341
-89 17 30.000000
-89 18 27.294688
-89 19 56.648036
-89 20 51.264022
-89 21 46.615448
-89 22 55.362442
-89 23 45.880279
-89 24 54.817880
-89 25 45.221676
-89 26 54.129474
-89 27 76.321688
-89 28 74.632433
-89 29 73.539105
-89 30 69.892775
-89 31 69.856997
-89 32 68.007353
-89 33 68.942005
-89 34 69.354164
-89 35 65.192024
-89 36 50.774009
-89 37 49.091751
-89 38 47.507894
-89 39 43.908997
-89 40 42.190046
-89 41 45.000000
-89 42 38.013156
-89 43 38.013156
-89 44 41.109610
-89 45 39.204592
-89 46 24.331050
-89 47 22.803509
-89 48 25.553865
-89 49 55.973208
-89 50 49.396356
-89 51 53.225934
-89 52 49.040799
-89 53 28.017851
-89 54 8.944272
-89 55 31.064449
-89 56 6.324555
-89 57 34.713110
-89 58 33.541020
-89 59 48.836462
-89 60 40.496913
-89 61 9.219544
-89 62 22.135944
-89 63 47.010637
-89 64 55.901699
-89 65 35.000000
-89 66 21.095023
-89 67 27.018512
-89 68 43.081318
-89 69 16.124515
-89 70 9.219544
-89 71 15.556349
-89 72 41.109610
-89 73 39.623226
-89 74 22.090722
-89 75 38.209946
-89 76 56.302753
-89 77 58.412327
-89 78 55.009090
-89 79 16.124515
-89 80 20.591260
-89 81 25.495098
-89 82 25.000000
-89 83 15.297059
-89 84 29.966648
-89 85 43.931765
-89 86 52.402290
-89 87 34.132096
-89 88 36.055513
-89 90 68.249542
-89 91 17.029386
-89 92 29.681644
-89 93 32.649655
-89 94 37.483330
-89 95 34.481879
-89 96 38.275318
-89 97 31.256999
-89 98 44.721360
-89 99 6.324555
-89 100 23.086793
-89 101 11.401754
-90 1 52.478567
-90 2 90.354856
-90 3 83.216585
-90 4 91.787799
-90 5 88.509886
-90 6 92.784697
-90 7 85.445889
-90 8 87.200917
-90 9 91.263355
-90 10 64.412732
-90 11 66.887966
-90 12 68.600292
-90 13 71.281134
-90 14 68.876701
-90 15 73.783467
-90 16 73.824115
-90 17 75.591005
-90 18 78.032045
-90 19 23.000000
-90 20 25.495098
-90 21 26.925824
-90 22 27.000000
-90 23 28.792360
-90 24 29.000000
-90 25 30.675723
-90 26 32.000000
-90 27 37.536649
-90 28 41.036569
-90 29 35.355339
-90 30 37.802116
-90 31 32.649655
-90 32 36.619667
-90 33 32.015621
-90 34 26.907248
-90 35 34.985711
-90 36 80.000000
-90 37 80.024996
-90 38 77.025970
-90 39 75.166482
-90 40 75.325958
-90 41 80.305666
-90 42 70.576200
-90 43 75.953933
-90 44 80.894994
-90 45 77.929455
-90 46 90.210864
-90 47 89.587946
-90 48 76.321688
-90 49 25.000000
-90 50 25.961510
-90 51 30.413813
-90 52 19.209373
-90 53 48.877398
-90 54 65.069194
-90 55 56.293872
-90 56 66.287254
-90 57 34.481879
-90 58 42.059482
-90 59 52.239832
-90 60 58.940648
-90 61 75.690158
-90 62 63.906181
-90 63 30.066593
-90 64 15.132746
-90 65 33.301652
-90 66 47.423623
-90 67 41.231056
-90 68 37.121422
-90 69 61.269895
-90 70 59.203040
-90 71 71.554175
-90 72 50.039984
-90 73 60.133186
-90 74 85.146932
-90 75 49.335586
-90 76 62.000000
-90 77 9.899495
-90 78 44.045431
-90 79 77.987178
-90 80 87.692645
-90 81 46.518813
-90 82 55.973208
-90 83 55.172457
-90 84 39.698866
-90 85 26.000000
-90 86 18.439089
-90 87 49.769469
-90 88 58.189346
-90 89 68.249542
-90 91 51.613952
-90 92 41.146081
-90 93 40.496913
-90 94 47.381431
-90 95 44.147480
-90 96 33.837849
-90 97 50.447993
-90 98 64.327288
-90 99 62.369865
-90 100 50.803543
-90 101 71.693793
-91 1 4.242641
-91 2 39.849718
-91 3 31.764760
-91 4 40.853396
-91 5 37.121422
-91 6 41.629317
-91 7 33.837849
-91 8 35.608988
-91 9 39.661064
-91 10 29.546573
-91 11 27.892651
-91 12 29.832868
-91 13 29.068884
-91 14 34.176015
-91 15 32.062439
-91 16 35.693137
-91 17 37.656341
-91 18 37.054015
-91 19 42.579338
-91 20 37.336309
-91 21 32.388269
-91 22 42.107007
-91 23 32.140317
-91 24 42.011903
-91 25 32.015621
-91 26 42.047592
-91 27 60.440053
-91 28 59.228372
-91 29 57.567352
-91 30 54.341513
-91 31 53.758720
-91 32 52.392748
-91 33 52.810984
-91 34 52.801515
-91 35 49.477268
-91 36 48.414874
-91 37 47.201695
-91 38 44.821870
-91 39 41.400483
-91 40 40.224371
-91 41 44.418465
-91 42 35.000000
-91 43 37.589892
-91 44 42.047592
-91 45 39.357337
-91 46 38.910153
-91 47 38.078866
-91 48 35.057096
-91 49 42.296572
-91 50 35.355339
-91 51 37.000000
-91 52 32.449961
-91 53 20.808652
-91 54 17.262677
-91 55 22.203603
-91 56 14.764823
-91 57 17.691806
-91 58 23.086793
-91 59 43.046487
-91 60 38.183766
-91 61 25.553865
-91 62 19.697716
-91 63 30.463092
-91 64 38.897301
-91 65 18.788294
-91 66 7.280110
-91 67 10.770330
-91 68 27.459060
-91 69 13.341664
-91 70 7.810250
-91 71 22.090722
-91 72 29.120440
-91 73 31.622777
-91 74 37.336309
-91 75 31.906112
-91 76 52.801515
-91 77 41.880783
-91 78 46.173586
-91 79 30.364453
-91 80 37.443290
-91 81 10.000000
-91 82 16.278821
-91 83 10.770330
-91 84 16.000000
-91 85 26.907248
-91 86 35.383612
-91 87 28.017851
-91 88 33.970576
-91 89 17.029386
-91 90 51.613952
-91 92 13.000000
-91 93 16.492423
-91 94 24.515301
-91 95 20.024984
-91 96 21.470911
-91 97 19.313208
-91 98 43.931765
-91 99 12.083046
-91 100 16.278821
-91 101 20.880613
-92 1 12.041595
-92 2 49.244289
-92 3 42.638011
-92 4 50.774009
-92 5 47.801674
-92 6 51.865210
-92 7 45.276926
-92 8 47.381431
-92 9 50.990195
-92 10 39.623226
-92 11 39.051248
-92 12 41.048752
-92 13 41.109610
-92 14 44.553339
-92 15 44.102154
-92 16 47.042534
-92 17 49.040799
-92 18 49.091751
-92 19 37.336309
-92 20 32.756679
-92 21 27.892651
-92 22 38.078866
-92 23 28.460499
-92 24 38.600518
-92 25 29.154759
-92 26 39.560081
-92 27 47.539457
-92 28 46.529560
-92 29 44.643029
-92 30 41.593269
-92 31 40.804412
-92 32 39.623226
-92 33 39.849718
-92 34 39.812058
-92 35 36.674242
-92 36 46.615448
-92 37 45.880279
-92 38 43.081318
-92 39 40.162171
-92 40 39.560081
-92 41 44.384682
-92 42 34.205263
-92 43 38.470768
-92 44 43.416587
-92 45 40.447497
-92 46 49.406477
-92 47 49.040799
-92 48 47.095647
-92 49 37.656341
-92 50 30.805844
-92 51 24.041631
-92 52 22.803509
-92 53 26.832816
-92 54 30.083218
-92 55 18.973666
-92 56 26.172505
-92 57 7.071068
-92 58 25.495098
-92 59 46.690470
-92 60 44.777226
-92 61 38.470768
-92 62 23.345235
-92 63 17.464249
-92 64 27.202941
-92 65 12.649111
-92 66 14.142136
-92 67 9.433981
-92 68 15.000000
-92 69 20.124612
-92 70 20.591260
-92 71 30.413813
-92 72 20.615528
-92 73 26.925824
-92 74 50.328918
-92 75 36.400549
-92 76 57.489129
-92 77 31.953091
-92 78 46.872167
-92 79 43.324358
-92 80 50.249378
-92 81 5.385165
-92 82 16.000000
-92 83 22.022716
-92 84 16.278821
-92 85 15.264338
-92 86 23.600847
-92 87 33.286634
-92 88 41.146081
-92 89 29.681644
-92 90 41.146081
-92 91 13.000000
-92 93 4.123106
-92 94 15.620499
-92 95 10.000000
-92 96 8.602325
-92 97 13.416408
-92 98 51.000000
-92 99 25.079872
-92 100 24.041631
-92 101 30.805844
-93 1 14.764823
-93 2 50.477718
-93 3 44.553339
-93 4 52.201533
-93 5 49.578221
-93 6 53.413481
-93 7 47.423623
-93 8 49.678969
-93 9 53.037722
-93 10 43.737855
-93 11 43.104524
-93 12 45.099889
-93 13 45.044423
-93 14 48.662100
-93 15 48.041649
-93 16 51.088159
-93 17 53.084838
-93 18 53.037722
-93 19 39.051248
-93 20 34.785054
-93 21 30.083218
-93 22 40.162171
-93 23 30.870698
-93 24 40.853396
-93 25 31.764760
-93 26 42.047592
-93 27 43.965896
-93 28 42.755117
-93 29 41.109610
-93 30 37.854986
-93 31 37.336309
-93 32 35.902646
-93 33 36.400549
-93 34 36.715120
-93 35 32.984845
-93 36 44.271887
-93 37 43.680659
-93 38 40.804412
-93 39 38.078866
-93 40 37.656341
-93 41 42.579338
-93 42 32.388269
-93 43 37.054015
-93 44 42.047592
-93 45 39.051248
-93 46 51.088159
-93 47 50.931326
-93 48 51.039201
-93 49 39.560081
-93 50 32.893768
-93 51 20.615528
-93 52 23.086793
-93 53 30.870698
-93 54 33.734256
-93 55 17.117243
-93 56 28.600699
-93 57 8.544004
-93 58 29.206164
-93 59 50.328918
-93 60 48.764741
-93 61 41.629317
-93 62 23.409400
-93 63 14.422205
-93 64 25.942244
-93 65 15.264338
-93 66 18.248288
-93 67 13.416408
-93 68 11.045361
-93 69 21.400935
-93 70 23.769729
-93 71 31.622777
-93 72 16.970563
-93 73 24.166092
-93 74 53.758720
-93 75 40.224371
-93 76 61.220911
-93 77 31.780497
-93 78 50.000000
-93 79 46.840154
-93 80 53.235327
-93 81 7.211103
-93 82 15.524175
-93 83 26.000000
-93 84 20.000000
-93 85 14.560220
-93 86 22.360680
-93 87 37.215588
-93 88 45.188494
-93 89 32.649655
-93 90 40.496913
-93 91 16.492423
-93 92 4.123106
-93 94 12.041595
-93 95 6.403124
-93 96 6.708204
-93 97 11.180340
-93 98 55.009090
-93 99 28.460499
-93 100 28.160256
-93 101 32.557641
-94 1 21.095023
-94 2 48.836462
-94 3 45.276926
-94 4 51.088159
-94 5 49.648766
-94 6 52.630789
-94 7 48.764741
-94 8 51.429563
-94 9 53.851648
-94 10 53.758720
-94 11 52.392748
-94 12 54.341513
-94 13 53.460266
-94 14 58.523500
-94 15 56.435804
-94 16 60.207973
-94 17 62.169124
-94 18 61.400326
-94 19 49.979996
-94 20 46.097722
-94 21 41.593269
-94 22 51.478151
-94 23 42.544095
-94 24 52.325902
-94 25 43.566042
-94 26 53.712196
-94 27 40.496913
-94 28 38.013156
-94 29 38.013156
-94 30 33.615473
-94 31 34.828150
-94 32 31.906112
-94 33 34.058773
-94 34 36.124784
-94 35 29.410882
-94 36 33.541020
-94 37 33.241540
-94 38 30.265492
-94 39 28.017851
-94 40 28.017851
-94 41 33.015148
-94 42 23.194827
-94 43 28.635642
-94 44 33.541020
-94 45 30.594117
-94 46 50.803543
-94 47 51.312766
-94 48 59.413803
-94 49 50.695167
-94 50 44.283180
-94 51 20.248457
-94 52 32.557641
-94 53 42.190046
-94 54 41.048752
-94 55 10.000000
-94 56 32.015621
-94 57 20.248457
-94 58 41.109610
-94 59 62.289646
-94 60 60.207973
-94 61 46.690470
-94 62 20.615528
-94 63 17.464249
-94 64 32.249031
-94 65 27.202941
-94 66 28.635642
-94 67 25.000000
-94 68 10.440307
-94 69 22.472205
-94 70 30.000000
-94 71 31.064449
-94 72 5.000000
-94 73 13.152946
-94 74 59.539903
-94 75 52.009614
-94 76 73.109507
-94 77 40.012498
-94 78 62.008064
-94 79 53.150729
-94 80 57.280014
-94 81 14.866069
-94 82 13.416408
-94 83 35.171011
-94 84 31.890437
-94 85 23.345235
-94 86 29.068884
-94 87 48.826222
-94 88 56.435804
-94 89 37.483330
-94 90 47.381431
-94 91 24.515301
-94 92 15.620499
-94 93 12.041595
-94 95 5.656854
-94 96 15.811388
-94 97 6.324555
-94 98 66.370174
-94 99 35.000000
-94 100 38.910153
-94 101 33.541020
-95 1 17.117243
-95 2 48.918299
-95 3 44.204072
-95 4 50.931326
-95 5 48.918299
-95 6 52.325902
-95 7 47.434165
-95 8 49.929951
-95 9 52.801515
-95 10 48.764741
-95 11 47.675990
-95 12 49.648766
-95 13 49.091751
-95 14 53.600373
-95 15 52.086467
-95 16 55.578773
-95 17 57.558666
-95 18 57.078893
-95 19 44.922155
-95 20 40.853396
-95 21 36.249138
-95 22 46.238512
-95 23 37.121422
-95 24 47.010637
-95 25 38.078866
-95 26 48.301139
-95 27 42.047592
-95 28 40.162171
-95 29 39.357337
-95 30 35.468296
-95 31 35.846897
-95 32 33.615473
-95 33 34.985711
-95 34 36.235342
-95 35 30.870698
-95 36 38.327536
-95 37 37.854986
-95 38 34.928498
-95 39 32.388269
-95 40 32.140317
-95 41 37.121422
-95 42 27.018512
-95 43 32.062439
-95 44 37.054015
-95 45 34.058773
-95 46 50.249378
-95 47 50.447993
-95 48 55.081757
-95 49 45.541190
-95 50 39.000000
-95 51 19.849433
-95 52 28.071338
-95 53 36.715120
-95 54 37.054015
-95 55 12.165525
-95 56 29.546573
-95 57 14.764823
-95 58 35.468296
-95 59 56.639209
-95 60 54.708317
-95 61 43.680659
-95 62 20.808652
-95 63 15.264338
-95 64 29.120440
-95 65 21.633308
-95 66 23.409400
-95 67 19.416488
-95 68 9.219544
-95 69 20.808652
-95 70 26.305893
-95 71 30.413813
-95 72 10.630146
-95 73 18.027756
-95 74 56.293872
-95 75 46.400431
-95 76 67.475922
-95 77 36.124784
-95 78 56.400355
-95 79 49.648766
-95 80 54.781384
-95 81 10.049876
-95 82 12.806248
-95 83 30.413813
-95 84 26.248809
-95 85 19.000000
-95 86 25.709920
-95 87 43.266615
-95 88 51.000000
-95 89 34.481879
-95 90 44.147480
-95 91 20.024984
-95 92 10.000000
-95 93 6.403124
-95 94 5.656854
-95 96 11.045361
-95 97 6.324555
-95 98 60.901560
-95 99 31.256999
-95 100 33.615473
-95 101 32.202484
-96 1 20.615528
-96 2 57.140179
-96 3 50.990195
-96 4 58.821765
-96 5 56.080300
-96 6 60.000000
-96 7 53.740115
-96 8 55.901699
-96 9 59.413803
-96 10 46.043458
-96 11 46.097722
-96 12 48.093659
-96 13 48.662100
-96 14 51.039201
-96 15 51.623638
-96 16 54.083269
-96 17 56.080300
-96 18 56.568542
-96 19 34.176015
-96 20 30.413813
-96 21 26.076810
-96 22 35.777088
-96 23 27.202941
-96 24 36.715120
-96 25 28.425341
-96 26 38.275318
-96 27 39.623226
-96 28 39.051248
-96 29 36.674242
-96 30 34.058773
-96 31 32.756679
-96 32 32.062439
-96 33 31.780497
-96 34 31.384710
-96 35 29.068884
-96 36 49.244289
-96 37 48.836462
-96 38 45.891176
-96 39 43.416587
-96 40 43.185646
-96 41 48.166378
-96 42 38.052595
-96 43 43.011626
-96 44 48.010416
-96 45 45.011110
-96 46 57.628118
-96 47 57.384667
-96 48 54.589376
-96 49 34.928498
-96 50 28.653098
-96 51 16.124515
-96 52 17.029386
-96 53 31.780497
-96 54 38.275318
-96 55 23.021729
-96 56 34.713110
-96 57 6.324555
-96 58 28.635642
-96 59 49.091751
-96 60 49.040799
-96 61 47.010637
-96 62 30.083218
-96 63 9.219544
-96 64 19.235384
-96 65 13.038405
-96 66 21.213203
-96 67 15.000000
-96 68 9.433981
-96 69 28.017851
-96 70 29.154759
-96 71 38.275318
-96 72 20.124612
-96 73 28.861739
-96 74 58.694122
-96 75 39.812058
-96 76 60.207973
-96 77 25.317978
-96 78 47.381431
-96 79 51.623638
-96 80 58.830264
-96 81 13.453624
-96 82 22.135944
-96 83 29.614186
-96 84 19.924859
-96 85 8.062258
-96 86 15.652476
-96 87 37.336309
-96 88 45.880279
-96 89 38.275318
-96 90 33.837849
-96 91 21.470911
-96 92 8.602325
-96 93 6.708204
-96 94 15.811388
-96 95 11.045361
-96 97 17.029386
-96 98 55.362442
-96 99 33.541020
-96 100 30.066593
-96 101 39.051248
-97 1 15.524175
-97 2 43.139309
-97 3 39.115214
-97 4 45.276926
-97 5 43.600459
-97 6 46.754679
-97 7 42.544095
-97 8 45.177428
-97 9 47.707442
-97 10 48.846699
-97 11 47.127487
-97 12 49.040799
-97 13 47.853944
-97 14 53.488316
-97 15 50.803543
-97 16 54.817880
-97 17 56.753854
-97 18 55.731499
-97 19 50.219518
-97 20 45.880279
-97 21 41.109610
-97 22 51.244512
-97 23 41.785165
-97 24 51.865210
-97 25 42.544095
-97 26 52.924474
-97 27 46.647615
-97 28 44.283180
-97 29 44.102154
-97 30 39.824616
-97 31 40.804412
-97 32 38.078866
-97 33 40.000000
-97 34 41.725292
-97 35 35.510562
-97 36 33.241540
-97 37 32.572995
-97 38 29.732137
-97 39 26.925824
-97 40 26.476405
-97 41 31.400637
-97 42 21.213203
-97 43 26.000000
-97 44 31.000000
-97 45 28.000000
-97 46 44.821870
-97 47 45.221676
-97 48 53.758720
-97 49 50.695167
-97 50 43.965896
-97 51 25.495098
-97 52 34.000000
-97 53 38.418745
-97 54 35.227830
-97 55 6.000000
-97 56 25.709920
-97 57 19.646883
-97 58 38.288379
-97 59 59.464275
-97 60 56.400355
-97 61 40.447497
-97 62 14.866069
-97 63 21.470911
-97 64 35.440090
-97 65 26.000000
-97 66 24.413111
-97 67 22.022716
-97 68 15.000000
-97 69 16.155494
-97 70 24.083189
-97 71 25.000000
-97 72 10.049876
-97 73 13.601471
-97 74 53.338541
-97 75 48.795492
-97 76 70.007142
-97 77 42.296572
-97 78 60.207973
-97 79 47.042534
-97 80 50.960769
-97 81 10.630146
-97 82 7.211103
-97 83 30.083218
-97 84 29.206164
-97 85 25.079872
-97 86 32.015621
-97 87 45.343136
-97 88 52.430907
-97 89 31.256999
-97 90 50.447993
-97 91 19.313208
-97 92 13.416408
-97 93 11.180340
-97 94 6.324555
-97 95 6.324555
-97 96 17.029386
-97 98 62.425956
-97 99 29.068884
-97 100 34.669872
-97 101 27.294688
-98 1 48.166378
-98 2 70.213959
-98 3 59.774577
-98 4 69.375788
-98 5 64.031242
-98 6 68.883960
-98 7 58.694122
-98 8 58.051701
-98 9 62.968246
-98 10 18.027756
-98 11 22.803509
-98 12 22.360680
-98 13 27.294688
-98 14 17.029386
-98 15 27.018512
-98 16 22.090722
-98 17 22.360680
-98 18 27.294688
-98 19 42.059482
-98 20 38.832976
-98 21 38.118237
-98 22 38.275318
-98 23 36.124784
-98 24 36.400549
-98 25 34.132096
-98 26 33.615473
-98 27 91.787799
-98 28 92.574294
-98 29 88.814413
-98 30 87.664132
-98 31 84.852814
-98 32 85.702975
-98 33 83.862983
-98 34 81.301906
-98 35 82.764727
-98 36 91.967386
-98 37 90.609050
-98 38 88.413800
-98 39 84.899941
-98 40 83.546394
-98 41 87.321246
-98 42 78.517514
-98 43 80.280757
-98 44 84.202138
-98 45 81.835200
-98 46 65.969690
-98 47 63.560994
-98 48 27.073973
-98 49 40.162171
-98 50 38.470768
-98 51 70.092796
-98 52 51.039201
-98 53 24.186773
-98 54 35.777088
-98 55 66.068147
-98 56 49.396356
-98 57 49.040799
-98 58 26.925824
-98 59 13.601471
-98 60 6.324555
-98 61 43.416587
-98 62 62.369865
-98 63 63.324561
-98 64 61.032778
-98 65 42.720019
-98 66 38.013156
-98 67 41.593269
-98 68 64.621978
-98 69 55.317267
-98 70 43.416587
-98 71 59.682493
-98 72 71.344236
-98 73 75.432089
-98 74 42.047592
-98 75 16.124515
-98 76 13.038405
-98 77 56.320511
-98 78 24.207437
-98 79 38.209946
-98 80 50.039984
-98 81 51.865210
-98 82 60.207973
-98 83 33.970576
-98 84 35.468296
-98 85 54.129474
-98 86 59.211485
-98 87 18.027756
-98 88 10.000000
-98 89 44.721360
-98 90 64.327288
-98 91 43.931765
-98 92 51.000000
-98 93 55.009090
-98 94 66.370174
-98 95 60.901560
-98 96 55.362442
-98 97 62.425956
-98 99 40.496913
-98 100 27.802878
-98 101 55.946403
-99 1 14.142136
-99 2 33.015148
-99 3 23.345235
-99 4 33.241540
-99 5 28.635642
-99 6 33.541020
-99 7 24.351591
-99 8 25.495098
-99 9 30.083218
-99 10 23.345235
-99 11 20.000000
-99 12 21.633308
-99 13 19.313208
-99 14 27.018512
-99 15 22.135944
-99 16 26.832816
-99 17 28.635642
-99 18 26.925824
-99 19 50.328918
-99 20 44.944410
-99 21 40.311289
-99 22 49.040799
-99 23 39.560081
-99 24 48.507731
-99 25 38.897301
-99 26 47.853944
-99 27 72.422372
-99 28 71.063352
-99 29 69.570109
-99 30 66.219333
-99 31 65.787537
-99 32 64.288413
-99 33 64.845971
-99 34 64.884513
-99 35 61.400326
-99 36 52.630789
-99 37 51.088159
-99 38 49.203658
-99 39 45.607017
-99 40 44.045431
-99 41 47.381431
-99 42 39.408121
-99 43 40.311289
-99 44 43.931765
-99 45 41.725292
-99 46 30.594117
-99 47 29.120440
-99 48 25.000000
-99 49 49.648766
-99 50 43.081318
-99 51 49.040799
-99 52 43.185646
-99 53 22.022716
-99 54 6.324555
-99 55 30.083218
-99 56 8.944272
-99 57 29.410882
-99 58 27.294688
-99 59 43.416587
-99 60 35.777088
-99 61 13.601471
-99 62 23.021729
-99 63 42.544095
-99 64 50.447993
-99 65 29.068884
-99 66 15.000000
-99 67 21.213203
-99 68 39.293765
-99 69 16.124515
-99 70 5.000000
-99 71 19.235384
-99 72 39.115214
-99 73 39.217343
-99 74 25.298221
-99 75 32.557641
-99 76 51.478151
-99 77 52.497619
-99 78 49.091751
-99 79 18.439089
-99 80 25.612497
-99 81 21.587033
-99 82 23.769729
-99 83 9.055385
-99 84 23.706539
-99 85 38.600518
-99 86 47.010637
-99 87 28.442925
-99 88 31.304952
-99 89 6.324555
-99 90 62.369865
-99 91 12.083046
-99 92 25.079872
-99 93 28.460499
-99 94 35.000000
-99 95 31.256999
-99 96 33.541020
-99 97 29.068884
-99 98 40.496913
-99 100 17.000000
-99 101 15.811388
-100 1 20.518285
-100 2 50.009999
-100 3 40.199502
-100 4 50.159745
-100 5 45.398238
-100 6 50.358713
-100 7 40.792156
-100 8 41.484937
-100 9 46.324939
-100 10 16.000000
-100 11 16.763055
-100 12 18.681542
-100 13 20.591260
-100 14 21.000000
-100 15 23.259407
-100 16 24.515301
-100 17 26.476405
-100 18 27.856777
-100 19 34.985711
-100 20 29.681644
-100 21 25.612497
-100 22 33.105891
-100 23 24.413111
-100 24 32.310989
-100 25 23.323808
-100 26 31.320920
-100 27 69.180922
-100 28 69.000000
-100 29 66.189123
-100 30 64.000000
-100 31 62.201286
-100 32 62.000000
-100 33 61.204575
-100 34 59.841457
-100 35 59.000000
-100 36 64.660653
-100 37 63.411355
-100 38 61.073726
-100 39 57.628118
-100 40 56.400355
-100 41 60.464866
-100 42 51.224994
-100 43 53.535035
-100 44 57.801384
-100 45 55.226805
-100 46 47.381431
-100 47 45.705580
-100 48 26.000000
-100 49 34.000000
-100 50 28.017851
-100 51 46.000000
-100 52 32.649655
-100 53 5.099020
-100 54 16.155494
-100 55 38.288379
-100 56 25.317978
-100 57 24.000000
-100 58 10.770330
-100 59 27.313001
-100 60 21.931712
-100 61 27.313001
-100 62 35.510562
-100 63 39.000000
-100 64 41.785165
-100 65 19.646883
-100 66 10.295630
-100 67 15.132746
-100 68 38.639358
-100 69 28.653098
-100 70 17.720045
-100 71 35.171011
-100 72 43.829214
-100 73 47.634021
-100 74 34.655447
-100 75 16.155494
-100 76 36.619667
-100 77 41.048752
-100 78 32.140317
-100 79 27.658633
-100 80 38.587563
-100 81 24.186773
-100 82 32.526912
-100 83 8.062258
-100 84 11.704700
-100 85 31.575307
-100 86 38.897301
-100 87 12.083046
-100 88 17.804494
-100 89 23.086793
-100 90 50.803543
-100 91 16.278821
-100 92 24.041631
-100 93 28.160256
-100 94 38.910153
-100 95 33.615473
-100 96 30.066593
-100 97 34.669872
-100 98 27.802878
-100 99 17.000000
-100 101 32.388269
-101 1 19.235384
-101 2 18.973666
-101 3 12.041595
-101 4 20.124612
-101 5 17.029386
-101 6 21.095023
-101 7 15.264338
-101 8 17.888544
-101 9 20.615528
-101 10 38.275318
-101 11 34.205263
-101 12 35.468296
-101 13 31.827661
-101 14 41.231056
-101 15 34.058773
-101 16 39.623226
-101 17 41.109610
-101 18 38.013156
-101 19 63.348244
-101 20 58.051701
-101 21 53.150729
-101 22 62.649820
-101 23 52.773099
-101 24 62.393910
-101 25 52.469038
-101 26 62.128898
-101 27 73.925638
-101 28 71.554175
-101 29 71.344236
-101 30 67.119297
-101 31 67.955868
-101 32 65.368188
-101 33 67.119297
-101 34 68.410526
-101 35 62.769419
-101 36 40.249224
-101 37 38.470768
-101 38 37.161808
-101 39 33.615473
-101 40 31.780497
-101 41 34.132096
-101 42 28.160256
-101 43 27.294688
-101 44 30.000000
-101 45 28.301943
-101 46 18.601075
-101 47 18.384776
-101 48 36.400549
-101 49 62.968246
-101 50 56.089215
-101 51 52.009614
-101 52 52.773099
-101 53 37.483330
-101 54 20.248457
-101 55 25.000000
-101 56 7.071068
-101 57 37.215588
-101 58 42.011903
-101 59 59.203040
-101 60 51.478151
-101 61 17.464249
-101 62 14.142136
-101 63 46.690470
-101 64 58.008620
-101 65 39.560081
-101 66 27.294688
-101 67 31.622777
-101 68 41.400483
-101 69 11.401754
-101 70 15.000000
-101 71 4.472136
-101 72 36.055513
-101 73 32.062439
-101 74 29.832868
-101 75 48.270074
-101 76 67.230945
-101 77 62.177166
-101 78 64.498062
-101 79 25.495098
-101 80 25.019992
-101 81 25.612497
-101 82 20.124612
-101 83 24.331050
-101 84 36.496575
-101 85 46.043458
-101 86 54.405882
-101 87 44.147480
-101 88 47.010637
-101 89 11.401754
-101 90 71.693793
-101 91 20.880613
-101 92 30.805844
-101 93 32.557641
-101 94 33.541020
-101 95 32.202484
-101 96 39.051248
-101 97 27.294688
-101 98 55.946403
-101 99 15.811388
-101 100 32.388269
diff --git a/src/vrp_basic/test/Orders.txt b/src/vrp_basic/test/Orders.txt
deleted file mode 100644
index 61a445e..0000000
--- a/src/vrp_basic/test/Orders.txt
+++ /dev/null
@@ -1,102 +0,0 @@
- CUST_NO.   XCOORD.    YCOORD.    DEMAND   READY_TIME   DUE_Time   SERVICE_TIME
-    1      40.00      50.00       0.00       0.00     240.00       0.00
-    2      25.00      85.00      20.00     145.00     175.00      10.00
-    3      22.00      75.00      30.00      50.00      80.00      10.00
-    4      22.00      85.00      10.00     109.00     139.00      10.00
-    5      20.00      80.00      40.00     141.00     171.00      10.00
-    6      20.00      85.00      20.00      41.00      71.00      10.00
-    7      18.00      75.00      20.00      95.00     125.00      10.00
-    8      15.00      75.00      20.00      79.00     109.00      10.00
-    9      15.00      80.00      10.00      91.00     121.00      10.00
-   10      10.00      35.00      20.00      91.00     121.00      10.00
-   11      10.00      40.00      30.00     119.00     149.00      10.00
-   12       8.00      40.00      40.00      59.00      89.00      10.00
-   13       8.00      45.00      20.00      64.00      94.00      10.00
-   14       5.00      35.00      10.00     142.00     172.00      10.00
-   15       5.00      45.00      10.00      35.00      65.00      10.00
-   16       2.00      40.00      20.00      58.00      88.00      10.00
-   17       0.00      40.00      20.00      72.00     102.00      10.00
-   18       0.00      45.00      20.00     149.00     179.00      10.00
-   19      44.00       5.00      20.00      87.00     117.00      10.00
-   20      42.00      10.00      40.00      72.00     102.00      10.00
-   21      42.00      15.00      10.00     122.00     152.00      10.00
-   22      40.00       5.00      10.00      67.00      97.00      10.00
-   23      40.00      15.00      40.00      92.00     122.00      10.00
-   24      38.00       5.00      30.00      65.00      95.00      10.00
-   25      38.00      15.00      10.00     148.00     178.00      10.00
-   26      35.00       5.00      20.00     154.00     184.00      10.00
-   27      95.00      30.00      30.00     115.00     145.00      10.00
-   28      95.00      35.00      20.00      62.00      92.00      10.00
-   29      92.00      30.00      10.00      62.00      92.00      10.00
-   30      90.00      35.00      10.00      67.00      97.00      10.00
-   31      88.00      30.00      10.00      74.00     104.00      10.00
-   32      88.00      35.00      20.00      61.00      91.00      10.00
-   33      87.00      30.00      10.00     131.00     161.00      10.00
-   34      85.00      25.00      10.00      51.00      81.00      10.00
-   35      85.00      35.00      30.00     111.00     141.00      10.00
-   36      67.00      85.00      20.00     139.00     169.00      10.00
-   37      65.00      85.00      40.00      43.00      73.00      10.00
-   38      65.00      82.00      10.00     124.00     154.00      10.00
-   39      62.00      80.00      30.00      75.00     105.00      10.00
-   40      60.00      80.00      10.00      37.00      67.00      10.00
-   41      60.00      85.00      30.00      85.00     115.00      10.00
-   42      58.00      75.00      20.00      92.00     122.00      10.00
-   43      55.00      80.00      10.00      33.00      63.00      10.00
-   44      55.00      85.00      20.00     128.00     158.00      10.00
-   45      55.00      82.00      10.00      64.00      94.00      10.00
-   46      20.00      82.00      10.00      37.00      67.00      10.00
-   47      18.00      80.00      10.00     113.00     143.00      10.00
-   48       2.00      45.00      10.00      45.00      75.00      10.00
-   49      42.00       5.00      10.00     151.00     181.00      10.00
-   50      42.00      12.00      10.00     104.00     134.00      10.00
-   51      72.00      35.00      30.00     116.00     146.00      10.00
-   52      55.00      20.00      19.00      83.00     113.00      10.00
-   53      25.00      30.00       3.00      52.00      82.00      10.00
-   54      20.00      50.00       5.00      91.00     121.00      10.00
-   55      55.00      60.00      16.00     139.00     169.00      10.00
-   56      30.00      60.00      16.00     140.00     170.00      10.00
-   57      50.00      35.00      19.00     130.00     160.00      10.00
-   58      30.00      25.00      23.00      96.00     126.00      10.00
-   59      15.00      10.00      20.00     152.00     182.00      10.00
-   60      10.00      20.00      19.00      42.00      72.00      10.00
-   61      15.00      60.00      17.00     155.00     185.00      10.00
-   62      45.00      65.00       9.00      66.00      96.00      10.00
-   63      65.00      35.00       3.00      52.00      82.00      10.00
-   64      65.00      20.00       6.00      39.00      69.00      10.00
-   65      45.00      30.00      17.00      53.00      83.00      10.00
-   66      35.00      40.00      16.00      11.00      41.00      10.00
-   67      41.00      37.00      16.00     133.00     163.00      10.00
-   68      64.00      42.00       9.00      70.00     100.00      10.00
-   69      40.00      60.00      21.00     144.00     174.00      10.00
-   70      31.00      52.00      27.00      41.00      71.00      10.00
-   71      35.00      69.00      23.00     180.00     210.00      10.00
-   72      65.00      55.00      14.00      65.00      95.00      10.00
-   73      63.00      65.00       8.00      30.00      60.00      10.00
-   74       2.00      60.00       5.00      77.00     107.00      10.00
-   75      20.00      20.00       8.00     141.00     171.00      10.00
-   76       5.00       5.00      16.00      74.00     104.00      10.00
-   77      60.00      12.00      31.00      75.00     105.00      10.00
-   78      23.00       3.00       7.00     150.00     180.00      10.00
-   79       8.00      56.00      27.00      90.00     120.00      10.00
-   80       6.00      68.00      30.00      89.00     119.00      10.00
-   81      47.00      47.00      13.00     192.00     222.00      10.00
-   82      49.00      58.00      10.00      86.00     116.00      10.00
-   83      27.00      43.00       9.00      42.00      72.00      10.00
-   84      37.00      31.00      14.00      35.00      65.00      10.00
-   85      57.00      29.00      18.00      96.00     126.00      10.00
-   86      63.00      23.00       2.00      87.00     117.00      10.00
-   87      21.00      24.00      28.00      87.00     117.00      10.00
-   88      12.00      24.00      13.00      90.00     120.00      10.00
-   89      24.00      58.00      19.00      67.00      97.00      10.00
-   90      67.00       5.00      25.00     144.00     174.00      10.00
-   91      37.00      47.00       6.00      86.00     116.00      10.00
-   92      49.00      42.00      13.00     167.00     197.00      10.00
-   93      53.00      43.00      14.00      14.00      44.00      10.00
-   94      61.00      52.00       3.00     178.00     208.00      10.00
-   95      57.00      48.00      23.00      95.00     125.00      10.00
-   96      56.00      37.00       6.00      34.00      64.00      10.00
-   97      55.00      54.00      26.00     132.00     162.00      10.00
-   98       4.00      18.00      35.00     120.00     150.00      10.00
-   99      26.00      52.00       9.00      46.00      76.00      10.00
-  100      26.00      35.00      15.00      77.00     107.00      10.00
-  101      31.00      67.00       3.00     180.00     210.00      10.00
\ No newline at end of file
diff --git a/src/vrp_basic/test/VRP-any-01.data b/src/vrp_basic/test/VRP-any-01.data
deleted file mode 100644
index f1f265b..0000000
--- a/src/vrp_basic/test/VRP-any-01.data
+++ /dev/null
@@ -1,114 +0,0 @@
-drop table if exists vrp100_orders cascade;
-create table vrp100_orders (
-  id integer not null primary key,
-  order_unit integer,
-  open_time integer,
-  close_time integer,
-  service_time integer,
-  x float,
-  y float
-);
-
-copy vrp100_orders (id, x, y, order_unit, open_time, close_time, service_time) from STDIN delimiter ',';
-0,40,50,0,0,1236,0
-1,45,68,10,912,967,90
-2,45,70,30,825,870,90
-3,42,66,10,65,146,90
-4,42,68,10,727,782,90
-5,42,65,10,15,67,90
-6,40,69,20,621,702,90
-7,40,66,20,170,225,90
-8,38,68,20,255,324,90
-9,38,70,10,534,605,90
-10,35,66,10,357,410,90
-11,35,69,10,448,505,90
-12,25,85,20,652,721,90
-13,22,75,30,30,92,90
-14,22,85,10,567,620,90
-15,20,80,40,384,429,90
-16,20,85,40,475,528,90
-17,18,75,20,99,148,90
-18,15,75,20,179,254,90
-19,15,80,10,278,345,90
-20,30,50,10,10,73,90
-21,30,52,20,914,965,90
-22,28,52,20,812,883,90
-23,28,55,10,732,777,90
-24,25,50,10,65,144,90
-25,25,52,40,169,224,90
-26,25,55,10,622,701,90
-27,23,52,10,261,316,90
-28,23,55,20,546,593,90
-29,20,50,10,358,405,90
-30,20,55,10,449,504,90
-31,10,35,20,200,237,90
-32,10,40,30,31,100,90
-33,8,40,40,87,158,90
-34,8,45,20,751,816,90
-35,5,35,10,283,344,90
-36,5,45,10,665,716,90
-37,2,40,20,383,434,90
-38,0,40,30,479,522,90
-39,0,45,20,567,624,90
-40,35,30,10,264,321,90
-41,35,32,10,166,235,90
-42,33,32,20,68,149,90
-43,33,35,10,16,80,90
-44,32,30,10,359,412,90
-45,30,30,10,541,600,90
-46,30,32,30,448,509,90
-47,30,35,10,1054,1127,90
-48,28,30,10,632,693,90
-49,28,35,10,1001,1066,90
-50,26,32,10,815,880,90
-51,25,30,10,725,786,90
-52,25,35,10,912,969,90
-53,44,5,20,286,347,90
-54,42,10,40,186,257,90
-55,42,15,10,95,158,90
-56,40,5,30,385,436,90
-57,40,15,40,35,87,90
-58,38,5,30,471,534,90
-59,38,15,10,651,740,90
-60,35,5,20,562,629,90
-61,50,30,10,531,610,90
-62,50,35,20,262,317,90
-63,50,40,50,171,218,90
-64,48,30,10,632,693,90
-65,48,40,10,76,129,90
-66,47,35,10,826,875,90
-67,47,40,10,12,77,90
-68,45,30,10,734,777,90
-69,45,35,10,916,969,90
-70,95,30,30,387,456,90
-71,95,35,20,293,360,90
-72,53,30,10,450,505,90
-73,92,30,10,478,551,90
-74,53,35,50,353,412,90
-75,45,65,20,997,1068,90
-76,90,35,10,203,260,90
-77,88,30,10,574,643,90
-78,88,35,20,109,170,90
-79,87,30,10,668,731,90
-80,85,25,10,769,820,90
-81,85,35,30,47,124,90
-82,75,55,20,369,420,90
-83,72,55,10,265,338,90
-84,70,58,20,458,523,90
-85,68,60,30,555,612,90
-86,66,55,10,173,238,90
-87,65,55,20,85,144,90
-88,65,60,30,645,708,90
-89,63,58,10,737,802,90
-90,60,55,10,20,84,90
-91,60,60,10,836,889,90
-92,67,85,20,368,441,90
-93,65,85,40,475,518,90
-94,65,82,10,285,336,90
-95,62,80,30,196,239,90
-96,60,80,10,95,156,90
-97,60,85,30,561,622,90
-98,58,75,20,30,84,90
-99,55,80,10,743,820,90
-100,55,85,20,647,726,90
-\.
diff --git a/src/vrp_basic/test/VRP-any-01.result b/src/vrp_basic/test/VRP-any-01.result
deleted file mode 100644
index e69de29..0000000
diff --git a/src/vrp_basic/test/VRP-any-01.test.sql b/src/vrp_basic/test/VRP-any-01.test.sql
deleted file mode 100644
index 3b9585e..0000000
--- a/src/vrp_basic/test/VRP-any-01.test.sql
+++ /dev/null
@@ -1,27 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-select * from pgr_vrpOneDepot(
-    'select * from vrp_orders order by id'::text,
-    'select * from vrp_vehicles order by vehicle_id'::text,
-    'select * from vrp_distance order by src_id, dest_id'::text,
-    1 ) ORDER BY vid, opos;
diff --git a/src/vrp_basic/test/VRP-any-02.test.sql b/src/vrp_basic/test/VRP-any-02.test.sql
deleted file mode 100644
index 8190b16..0000000
--- a/src/vrp_basic/test/VRP-any-02.test.sql
+++ /dev/null
@@ -1,26 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-select * from pgr_vrpOneDepot(
-  'select * from vrp100_orders order by id'::text,
-  'select vehicle_id::integer, 200 as capacity from generate_series(1,50) as vehicle_id',
-  'select a.id as src_id, b.id as dest_id, sqrt((a.x-b.x)*(a.x-b.x)) as cost, sqrt((a.x-b.x)*(a.x-b.x)) as distance, sqrt((a.x-b.x)*(a.x-b.x)) as traveltime from vrp100_orders a, vrp100_orders b where a.id != b.id order by a.id, b.id', 0) order by vid, opos;
diff --git a/src/vrp_basic/test/Vehicles.txt b/src/vrp_basic/test/Vehicles.txt
deleted file mode 100644
index d9c77cb..0000000
--- a/src/vrp_basic/test/Vehicles.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-V_d	Capacity
-1	200
-2	200
-3	200
-4	200
-5	200
-6	200
-7	200
-8	200
-9	200
-10	200
-11	200
-12	200
-13	200
-14	200
-15	200
-16	200
-17	200
-18	200
-19	200
-20	200
diff --git a/src/vrp_basic/test/doc-pgr_vrpOneDepot.result b/src/vrp_basic/test/doc-pgr_vrpOneDepot.result
new file mode 100644
index 0000000..2631800
--- /dev/null
+++ b/src/vrp_basic/test/doc-pgr_vrpOneDepot.result
@@ -0,0 +1,256 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+SELECT * FROM pgr_vrpOneDepot(
+    'SELECT * FROM vrp_orders',
+    'SELECT * FROM vrp_vehicles',
+    'SELECT * FROM vrp_distance',
+    1);
+ oid | opos | vid | tarrival | tdepart 
+-----+------+-----+----------+---------
+  -1 |    1 |   5 |        0 |       0
+  66 |    2 |   5 |        0 |       0
+  25 |    3 |   5 |        0 |       0
+  21 |    4 |   5 |        0 |       0
+  84 |    5 |   5 |        0 |       0
+  50 |    6 |   5 |        0 |       0
+  49 |    7 |   5 |        0 |       0
+  24 |    8 |   5 |        0 |       0
+  22 |    9 |   5 |        0 |       0
+  20 |   10 |   5 |        0 |       0
+  19 |   11 |   5 |        0 |       0
+  66 |   12 |   5 |       11 |      21
+  84 |   13 |   5 |       30 |      45
+  24 |   14 |   5 |       71 |      81
+  22 |   15 |   5 |       83 |      93
+  20 |   16 |   5 |       98 |     108
+  19 |   17 |   5 |      114 |     124
+  50 |   18 |   5 |      131 |     141
+  21 |   19 |   5 |      144 |     154
+  25 |   20 |   5 |      158 |     168
+  49 |   21 |   5 |      179 |     189
+  -1 |   22 |   5 |      234 |     234
+  -1 |    1 |   6 |        0 |       0
+  31 |    2 |   6 |        0 |       0
+  32 |    3 |   6 |        0 |       0
+  81 |    4 |   6 |        0 |       0
+  94 |    5 |   6 |        0 |       0
+  93 |    6 |   6 |        0 |       0
+  35 |    7 |   6 |        0 |       0
+  33 |    8 |   6 |        0 |       0
+  28 |    9 |   6 |        0 |       0
+  27 |   10 |   6 |        0 |       0
+  93 |   11 |   6 |       15 |      25
+  32 |   12 |   6 |       61 |      71
+  28 |   13 |   6 |       78 |      88
+  31 |   14 |   6 |       97 |     107
+  35 |   15 |   6 |      112 |     122
+  27 |   16 |   6 |      134 |     144
+  33 |   17 |   6 |      152 |     162
+  94 |   18 |   6 |      196 |     206
+  81 |   19 |   6 |      221 |     231
+  -1 |   20 |   6 |      238 |     238
+  -1 |    1 |   3 |        0 |       0
+  16 |    2 |   3 |        0 |       0
+  14 |    3 |   3 |        0 |       0
+  48 |    4 |   3 |        0 |       0
+  18 |    5 |   3 |        0 |       0
+  17 |    6 |   3 |        0 |       0
+  15 |    7 |   3 |        0 |       0
+  13 |    8 |   3 |        0 |       0
+  11 |    9 |   3 |        0 |       0
+  10 |   10 |   3 |        0 |       0
+  15 |   11 |   3 |       35 |      45
+  48 |   12 |   3 |       48 |      58
+  13 |   13 |   3 |       64 |      74
+  16 |   14 |   3 |       82 |      92
+  17 |   15 |   3 |       94 |     104
+  10 |   16 |   3 |      115 |     125
+  11 |   17 |   3 |      130 |     140
+  14 |   18 |   3 |      147 |     157
+  18 |   19 |   3 |      169 |     179
+  -1 |   20 |   3 |      219 |     219
+  -1 |    1 |   8 |        0 |       0
+  71 |    2 |   8 |        0 |       0
+  55 |    3 |   8 |        0 |       0
+  44 |    4 |   8 |        0 |       0
+  43 |    5 |   8 |        0 |       0
+  42 |    6 |   8 |        0 |       0
+  41 |    7 |   8 |        0 |       0
+  40 |    8 |   8 |        0 |       0
+  39 |    9 |   8 |        0 |       0
+  43 |   10 |   8 |       34 |      44
+  40 |   11 |   8 |       49 |      59
+  39 |   12 |   8 |       61 |      85
+  41 |   13 |   8 |       90 |     100
+  42 |   14 |   8 |      111 |     121
+  44 |   15 |   8 |      131 |     141
+  55 |   16 |   8 |      166 |     176
+  71 |   17 |   8 |      198 |     208
+  -1 |   18 |   8 |      228 |     228
+  -1 |    1 |   1 |        0 |       0
+   4 |    2 |   1 |        0 |       0
+ 101 |    3 |   1 |        0 |       0
+  46 |    4 |   1 |        0 |       0
+   5 |    5 |   1 |        0 |       0
+   3 |    6 |   1 |        0 |       0
+  46 |    7 |   1 |       38 |      48
+   3 |    8 |   1 |       55 |      65
+   2 |    9 |   1 |       96 |      96
+   4 |   10 |   1 |      135 |     145
+   2 |   11 |   1 |      148 |     158
+   5 |   12 |   1 |      165 |     175
+ 101 |   13 |   1 |      192 |     202
+  -1 |   14 |   1 |      222 |     222
+  -1 |    1 |  13 |        0 |       0
+  92 |    2 |  13 |        0 |       0
+  52 |    3 |  13 |        0 |       0
+  57 |    4 |  13 |        0 |       0
+  85 |    5 |  13 |        0 |       0
+  68 |    6 |  13 |        0 |       0
+  63 |    7 |  13 |        0 |       0
+  63 |    8 |  13 |       29 |      62
+  68 |    9 |  13 |       69 |      80
+  52 |   10 |  13 |      104 |     114
+  85 |   11 |  13 |      123 |     133
+  57 |   12 |  13 |      142 |     152
+  92 |   13 |  13 |      159 |     177
+  -1 |   14 |  13 |      189 |     189
+  -1 |    1 |   7 |        0 |       0
+  30 |    2 |   7 |        0 |       0
+  29 |    3 |   7 |        0 |       0
+  38 |    4 |   7 |        0 |       0
+  36 |    5 |   7 |        0 |       0
+  34 |    6 |   7 |        0 |       0
+  34 |    7 |   7 |       51 |      61
+  29 |    8 |   7 |       70 |      80
+  30 |    9 |   7 |       85 |      95
+  38 |   10 |   7 |      149 |     159
+  36 |   11 |   7 |      162 |     172
+  -1 |   12 |   7 |      217 |     217
+  -1 |    1 |   2 |        0 |       0
+  89 |    2 |   2 |        0 |       0
+  47 |    3 |   2 |        0 |       0
+  61 |    4 |   2 |        0 |       0
+   9 |    5 |   2 |        0 |       0
+   8 |    6 |   2 |        0 |       0
+  89 |    7 |   2 |       18 |      77
+   8 |    8 |   2 |       96 |     106
+   9 |    9 |   2 |      111 |     121
+  47 |   10 |   2 |      124 |     134
+  61 |   11 |   2 |      154 |     165
+  -1 |   12 |   2 |      192 |     192
+  -1 |    1 |  14 |        0 |       0
+  97 |    2 |  14 |        0 |       0
+  64 |    3 |  14 |        0 |       0
+  51 |    4 |  14 |        0 |       0
+  96 |    5 |  14 |        0 |       0
+  77 |    6 |  14 |        0 |       0
+  96 |    7 |  14 |       21 |      44
+  64 |    8 |  14 |       63 |      73
+  77 |    9 |  14 |       83 |      93
+  51 |   10 |  14 |      119 |     129
+  97 |   11 |  14 |      154 |     164
+  -1 |   12 |  14 |      180 |     180
+  -1 |    1 |  15 |        0 |       0
+  67 |    2 |  15 |        0 |       0
+  73 |    3 |  15 |        0 |       0
+  95 |    4 |  15 |        0 |       0
+  82 |    5 |  15 |        0 |       0
+  72 |    6 |  15 |        0 |       0
+  73 |    7 |  15 |       27 |      40
+  72 |    8 |  15 |       50 |      75
+  82 |    9 |  15 |       91 |     101
+  95 |   10 |  15 |      114 |     124
+  67 |   11 |  15 |      144 |     154
+  -1 |   12 |  15 |      167 |     167
+  -1 |    1 |  11 |        0 |       0
+  78 |    2 |  11 |        0 |       0
+  26 |    3 |  11 |        0 |       0
+  87 |    4 |  11 |        0 |       0
+  23 |    5 |  11 |        0 |       0
+  87 |    6 |  11 |       32 |      97
+  23 |    7 |  11 |      118 |     128
+  78 |    8 |  11 |      149 |     160
+  26 |    9 |  11 |      172 |     182
+  -1 |   10 |  11 |      227 |     227
+  -1 |    1 |   4 |        0 |       0
+  60 |    2 |   4 |        0 |       0
+  59 |    3 |   4 |        0 |       0
+ 100 |    4 |   4 |        0 |       0
+  54 |    5 |   4 |        0 |       0
+  60 |    6 |   4 |       42 |      52
+ 100 |    7 |   4 |       74 |      87
+  54 |    8 |   4 |      103 |     113
+  59 |    9 |   4 |      153 |     163
+  -1 |   10 |   4 |      211 |     211
+  -1 |    1 |  10 |        0 |       0
+  86 |    2 |  10 |        0 |       0
+  90 |    3 |  10 |        0 |       0
+  65 |    4 |  10 |        0 |       0
+  53 |    5 |  10 |        0 |       0
+  53 |    6 |  10 |       25 |      62
+  65 |    7 |  10 |       82 |      92
+  86 |    8 |  10 |      111 |     121
+  90 |    9 |  10 |      140 |     154
+  -1 |   10 |  10 |      206 |     206
+  -1 |    1 |  12 |        0 |       0
+   6 |    2 |  12 |        0 |       0
+  80 |    3 |  12 |        0 |       0
+   7 |    4 |  12 |        0 |       0
+  56 |    5 |  12 |        0 |       0
+   6 |    6 |  12 |       40 |      51
+  80 |    7 |  12 |       73 |      99
+   7 |    8 |  12 |      113 |     123
+  56 |    9 |  12 |      142 |     152
+  -1 |   10 |  12 |      166 |     166
+  -1 |    1 |  19 |        0 |       0
+  88 |    2 |  19 |        0 |       0
+  70 |    3 |  19 |        0 |       0
+  58 |    4 |  19 |        0 |       0
+  99 |    5 |  19 |        0 |       0
+  70 |    6 |  19 |        9 |      51
+  99 |    7 |  19 |       56 |      66
+  88 |    8 |  19 |       97 |     107
+  58 |    9 |  19 |      125 |     135
+  -1 |   10 |  19 |      162 |     162
+  -1 |    1 |  17 |        0 |       0
+  75 |    2 |  17 |        0 |       0
+  98 |    3 |  17 |        0 |       0
+  76 |    4 |  17 |        0 |       0
+  76 |    5 |  17 |       57 |      84
+  98 |    6 |  17 |       97 |     130
+  75 |    7 |  17 |      146 |     156
+  -1 |    8 |  17 |      192 |     192
+  -1 |    1 |  16 |        0 |       0
+  69 |    2 |  16 |        0 |       0
+  79 |    3 |  16 |        0 |       0
+  74 |    4 |  16 |        0 |       0
+  74 |    5 |  16 |       39 |      87
+  79 |    6 |  16 |       94 |     104
+  69 |    7 |  16 |      136 |     154
+  -1 |    8 |  16 |      164 |     164
+  -1 |    1 |   9 |        0 |       0
+  62 |    2 |   9 |        0 |       0
+  37 |    3 |   9 |        0 |       0
+  45 |    4 |   9 |        0 |       0
+  37 |    5 |   9 |       43 |      53
+  45 |    6 |   9 |       63 |      74
+  62 |    7 |   9 |       94 |     104
+  -1 |    8 |   9 |      120 |     120
+  -1 |    1 |  18 |        0 |       0
+  91 |    2 |  18 |        0 |       0
+  12 |    3 |  18 |        0 |       0
+  12 |    4 |  18 |       34 |      69
+  91 |    5 |  18 |       99 |     109
+  -1 |    6 |  18 |      113 |     113
+  -1 |    1 |  20 |        0 |       0
+  83 |    2 |  20 |        0 |       0
+  83 |    3 |  20 |       15 |      52
+  -1 |    4 |  20 |       67 |      67
+  -1 |    0 |   0 |       -1 |    3712
+(241 rows)
+
+ROLLBACK;
+ROLLBACK
diff --git a/src/vrp_basic/test/doc-pgr_vrpOneDepot.test.sql b/src/vrp_basic/test/doc-pgr_vrpOneDepot.test.sql
new file mode 100644
index 0000000..7e921f1
--- /dev/null
+++ b/src/vrp_basic/test/doc-pgr_vrpOneDepot.test.sql
@@ -0,0 +1,6 @@
+
+SELECT * FROM pgr_vrpOneDepot(
+    'SELECT * FROM vrp_orders',
+    'SELECT * FROM vrp_vehicles',
+    'SELECT * FROM vrp_distance',
+    1);
diff --git a/src/vrp_basic/test/oneDepotWrapper.result b/src/vrp_basic/test/oneDepotWrapper.result
new file mode 100644
index 0000000..8c24c83
--- /dev/null
+++ b/src/vrp_basic/test/oneDepotWrapper.result
@@ -0,0 +1,256 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
+SELECT * FROM _pgr_vrpOneDepot(
+    'SELECT * FROM vrp_orders',
+    'SELECT * FROM vrp_vehicles',
+    'SELECT src_id AS start_vid, dest_id AS end_vid, traveltime AS agg_cost FROM vrp_distance',
+    1);
+ seq | vehicle_seq | vehicle_id | stop_seq | stop_type | stop_id | order_id | cargo | travel_time | arrival_time |     wait_time     | service_time | departure_time 
+-----+-------------+------------+----------+-----------+---------+----------+-------+-------------+--------------+-------------------+--------------+----------------
+   1 |           1 |          5 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+   2 |           1 |          5 |        2 |         2 |       1 |       66 |    16 |           0 |            0 |                 0 |            0 |              0
+   3 |           1 |          5 |        3 |         2 |       1 |       25 |    26 |           0 |            0 |                 0 |            0 |              0
+   4 |           1 |          5 |        4 |         2 |       1 |       21 |    36 |           0 |            0 |                 0 |            0 |              0
+   5 |           1 |          5 |        5 |         2 |       1 |       84 |    50 |           0 |            0 |                 0 |            0 |              0
+   6 |           1 |          5 |        6 |         2 |       1 |       50 |    60 |           0 |            0 |                 0 |            0 |              0
+   7 |           1 |          5 |        7 |         2 |       1 |       49 |    70 |           0 |            0 |                 0 |            0 |              0
+   8 |           1 |          5 |        8 |         2 |       1 |       24 |   100 |           0 |            0 |                 0 |            0 |              0
+   9 |           1 |          5 |        9 |         2 |       1 |       22 |   110 |           0 |            0 |                 0 |            0 |              0
+  10 |           1 |          5 |       10 |         2 |       1 |       20 |   150 |           0 |            0 |                 0 |            0 |              0
+  11 |           1 |          5 |       11 |         2 |       1 |       19 |   170 |           0 |            0 |                 0 |            0 |              0
+  12 |           1 |          5 |       12 |         3 |      66 |       66 |   154 |    11.18034 |     11.18034 |                 0 |           10 |       21.18034
+  13 |           1 |          5 |       13 |         3 |      84 |       84 |   140 |    9.219544 |    30.399884 |          4.600116 |           10 |             45
+  14 |           1 |          5 |       14 |         3 |      24 |       24 |   110 |   26.019224 |    71.019224 |                 0 |           10 |      81.019224
+  15 |           1 |          5 |       15 |         3 |      22 |       22 |   100 |           2 |    83.019224 |                 0 |           10 |      93.019224
+  16 |           1 |          5 |       16 |         3 |      20 |       20 |    60 |    5.385165 |    98.404389 |                 0 |           10 |     108.404389
+  17 |           1 |          5 |       17 |         3 |      19 |       19 |    40 |    5.385165 |   113.789554 |                 0 |           10 |     123.789554
+  18 |           1 |          5 |       18 |         3 |      50 |       50 |    30 |     7.28011 |   131.069664 |                 0 |           10 |     141.069664
+  19 |           1 |          5 |       19 |         3 |      21 |       21 |    20 |           3 |   144.069664 |                 0 |           10 |     154.069664
+  20 |           1 |          5 |       20 |         3 |      25 |       25 |    10 |           4 |   158.069664 |                 0 |           10 |     168.069664
+  21 |           1 |          5 |       21 |         3 |      49 |       49 |     0 |    10.77033 |   178.839994 |                 0 |           10 |     188.839994
+  22 |           1 |          5 |       22 |         6 |       1 |       -1 |     0 |   45.044423 |   233.884417 |                 0 |            0 |     233.884417
+  23 |           2 |          6 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+  24 |           2 |          6 |        2 |         2 |       1 |       31 |    10 |           0 |            0 |                 0 |            0 |              0
+  25 |           2 |          6 |        3 |         2 |       1 |       32 |    30 |           0 |            0 |                 0 |            0 |              0
+  26 |           2 |          6 |        4 |         2 |       1 |       81 |    43 |           0 |            0 |                 0 |            0 |              0
+  27 |           2 |          6 |        5 |         2 |       1 |       94 |    46 |           0 |            0 |                 0 |            0 |              0
+  28 |           2 |          6 |        6 |         2 |       1 |       93 |    60 |           0 |            0 |                 0 |            0 |              0
+  29 |           2 |          6 |        7 |         2 |       1 |       35 |    90 |           0 |            0 |                 0 |            0 |              0
+  30 |           2 |          6 |        8 |         2 |       1 |       33 |   100 |           0 |            0 |                 0 |            0 |              0
+  31 |           2 |          6 |        9 |         2 |       1 |       28 |   120 |           0 |            0 |                 0 |            0 |              0
+  32 |           2 |          6 |       10 |         2 |       1 |       27 |   150 |           0 |            0 |                 0 |            0 |              0
+  33 |           2 |          6 |       11 |         3 |      93 |       93 |   136 |   14.764823 |    14.764823 |                 0 |           10 |      24.764823
+  34 |           2 |          6 |       12 |         3 |      32 |       32 |   116 |   35.902646 |    60.667469 | 0.332531000000003 |           10 |             71
+  35 |           2 |          6 |       13 |         3 |      28 |       28 |    96 |           7 |           78 |                 0 |           10 |             88
+  36 |           2 |          6 |       14 |         3 |      31 |       31 |    86 |    8.602325 |    96.602325 |                 0 |           10 |     106.602325
+  37 |           2 |          6 |       15 |         3 |      35 |       35 |    56 |    5.830952 |   112.433277 |                 0 |           10 |     122.433277
+  38 |           2 |          6 |       16 |         3 |      27 |       27 |    26 |    11.18034 |   133.613617 |                 0 |           10 |     143.613617
+  39 |           2 |          6 |       17 |         3 |      33 |       33 |    16 |           8 |   151.613617 |                 0 |           10 |     161.613617
+  40 |           2 |          6 |       18 |         3 |      94 |       94 |    13 |   34.058773 |    195.67239 |                 0 |           10 |      205.67239
+  41 |           2 |          6 |       19 |         3 |      81 |       81 |     0 |   14.866069 |   220.538459 |                 0 |           10 |     230.538459
+  42 |           2 |          6 |       20 |         6 |       1 |       -1 |     0 |    7.615773 |   238.154232 |                 0 |            0 |     238.154232
+  43 |           3 |          3 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+  44 |           3 |          3 |        2 |         2 |       1 |       16 |    20 |           0 |            0 |                 0 |            0 |              0
+  45 |           3 |          3 |        3 |         2 |       1 |       14 |    30 |           0 |            0 |                 0 |            0 |              0
+  46 |           3 |          3 |        4 |         2 |       1 |       48 |    40 |           0 |            0 |                 0 |            0 |              0
+  47 |           3 |          3 |        5 |         2 |       1 |       18 |    60 |           0 |            0 |                 0 |            0 |              0
+  48 |           3 |          3 |        6 |         2 |       1 |       17 |    80 |           0 |            0 |                 0 |            0 |              0
+  49 |           3 |          3 |        7 |         2 |       1 |       15 |    90 |           0 |            0 |                 0 |            0 |              0
+  50 |           3 |          3 |        8 |         2 |       1 |       13 |   110 |           0 |            0 |                 0 |            0 |              0
+  51 |           3 |          3 |        9 |         2 |       1 |       11 |   140 |           0 |            0 |                 0 |            0 |              0
+  52 |           3 |          3 |       10 |         2 |       1 |       10 |   160 |           0 |            0 |                 0 |            0 |              0
+  53 |           3 |          3 |       11 |         3 |      15 |       15 |   150 |   35.355339 |    35.355339 |                 0 |           10 |      45.355339
+  54 |           3 |          3 |       12 |         3 |      48 |       48 |   140 |           3 |    48.355339 |                 0 |           10 |      58.355339
+  55 |           3 |          3 |       13 |         3 |      13 |       13 |   120 |           6 |    64.355339 |                 0 |           10 |      74.355339
+  56 |           3 |          3 |       14 |         3 |      16 |       16 |   100 |     7.81025 |    82.165589 |                 0 |           10 |      92.165589
+  57 |           3 |          3 |       15 |         3 |      17 |       17 |    80 |           2 |    94.165589 |                 0 |           10 |     104.165589
+  58 |           3 |          3 |       16 |         3 |      10 |       10 |    60 |    11.18034 |   115.345929 |                 0 |           10 |     125.345929
+  59 |           3 |          3 |       17 |         3 |      11 |       11 |    30 |           5 |   130.345929 |                 0 |           10 |     140.345929
+  60 |           3 |          3 |       18 |         3 |      14 |       14 |    20 |    7.071068 |   147.416997 |                 0 |           10 |     157.416997
+  61 |           3 |          3 |       19 |         3 |      18 |       18 |     0 |    11.18034 |   168.597337 |                 0 |           10 |     178.597337
+  62 |           3 |          3 |       20 |         6 |       1 |       -1 |     0 |   40.311289 |   218.908626 |                 0 |            0 |     218.908626
+  63 |           4 |          8 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+  64 |           4 |          8 |        2 |         2 |       1 |       71 |    23 |           0 |            0 |                 0 |            0 |              0
+  65 |           4 |          8 |        3 |         2 |       1 |       55 |    39 |           0 |            0 |                 0 |            0 |              0
+  66 |           4 |          8 |        4 |         2 |       1 |       44 |    59 |           0 |            0 |                 0 |            0 |              0
+  67 |           4 |          8 |        5 |         2 |       1 |       43 |    69 |           0 |            0 |                 0 |            0 |              0
+  68 |           4 |          8 |        6 |         2 |       1 |       42 |    89 |           0 |            0 |                 0 |            0 |              0
+  69 |           4 |          8 |        7 |         2 |       1 |       41 |   119 |           0 |            0 |                 0 |            0 |              0
+  70 |           4 |          8 |        8 |         2 |       1 |       40 |   129 |           0 |            0 |                 0 |            0 |              0
+  71 |           4 |          8 |        9 |         2 |       1 |       39 |   159 |           0 |            0 |                 0 |            0 |              0
+  72 |           4 |          8 |       10 |         3 |      43 |       43 |   149 |    33.54102 |     33.54102 |                 0 |           10 |       43.54102
+  73 |           4 |          8 |       11 |         3 |      40 |       40 |   139 |           5 |     48.54102 |                 0 |           10 |       58.54102
+  74 |           4 |          8 |       12 |         3 |      39 |       39 |   109 |           2 |     60.54102 |          14.45898 |           10 |             85
+  75 |           4 |          8 |       13 |         3 |      41 |       41 |    79 |    5.385165 |    90.385165 |                 0 |           10 |     100.385165
+  76 |           4 |          8 |       14 |         3 |      42 |       42 |    59 |   10.198039 |   110.583204 |                 0 |           10 |     120.583204
+  77 |           4 |          8 |       15 |         3 |      44 |       44 |    39 |   10.440307 |   131.023511 |                 0 |           10 |     141.023511
+  78 |           4 |          8 |       16 |         3 |      55 |       55 |    23 |          25 |   166.023511 |                 0 |           10 |     176.023511
+  79 |           4 |          8 |       17 |         3 |      71 |       71 |     0 |   21.931712 |   197.955223 |                 0 |           10 |     207.955223
+  80 |           4 |          8 |       18 |         6 |       1 |       -1 |     0 |   19.646883 |   227.602106 |                 0 |            0 |     227.602106
+  81 |           5 |          1 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+  82 |           5 |          1 |        2 |         2 |       1 |        4 |    10 |           0 |            0 |                 0 |            0 |              0
+  83 |           5 |          1 |        3 |         2 |       1 |      101 |    13 |           0 |            0 |                 0 |            0 |              0
+  84 |           5 |          1 |        4 |         2 |       1 |       46 |    23 |           0 |            0 |                 0 |            0 |              0
+  85 |           5 |          1 |        5 |         2 |       1 |        5 |    63 |           0 |            0 |                 0 |            0 |              0
+  86 |           5 |          1 |        6 |         2 |       1 |        3 |    93 |           0 |            0 |                 0 |            0 |              0
+  87 |           5 |          1 |        7 |         3 |      46 |       46 |    83 |   37.735925 |    37.735925 |                 0 |           10 |      47.735925
+  88 |           5 |          1 |        8 |         3 |       3 |        3 |    53 |     7.28011 |    55.016035 |                 0 |           10 |      65.016035
+  89 |           5 |          1 |        9 |         2 |       1 |        2 |    73 |   30.805844 |    95.821879 |                 0 |            0 |      95.821879
+  90 |           5 |          1 |       10 |         3 |       4 |        4 |    63 |   39.357337 |   135.179216 |                 0 |           10 |     145.179216
+  91 |           5 |          1 |       11 |         3 |       2 |        2 |    43 |           3 |   148.179216 |                 0 |           10 |     158.179216
+  92 |           5 |          1 |       12 |         3 |       5 |        5 |     3 |    7.071068 |   165.250284 |                 0 |           10 |     175.250284
+  93 |           5 |          1 |       13 |         3 |     101 |      101 |     0 |   17.029386 |    192.27967 |                 0 |           10 |      202.27967
+  94 |           5 |          1 |       14 |         6 |       1 |       -1 |     0 |   19.235384 |   221.515054 |                 0 |            0 |     221.515054
+  95 |           6 |         13 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+  96 |           6 |         13 |        2 |         2 |       1 |       92 |    13 |           0 |            0 |                 0 |            0 |              0
+  97 |           6 |         13 |        3 |         2 |       1 |       52 |    32 |           0 |            0 |                 0 |            0 |              0
+  98 |           6 |         13 |        4 |         2 |       1 |       57 |    51 |           0 |            0 |                 0 |            0 |              0
+  99 |           6 |         13 |        5 |         2 |       1 |       85 |    69 |           0 |            0 |                 0 |            0 |              0
+ 100 |           6 |         13 |        6 |         2 |       1 |       68 |    78 |           0 |            0 |                 0 |            0 |              0
+ 101 |           6 |         13 |        7 |         2 |       1 |       63 |    81 |           0 |            0 |                 0 |            0 |              0
+ 102 |           6 |         13 |        8 |         3 |      63 |       63 |    78 |   29.154759 |    29.154759 |         22.845241 |           10 |             62
+ 103 |           6 |         13 |        9 |         3 |      68 |       68 |    69 |    7.071068 |    69.071068 | 0.928932000000003 |           10 |             80
+ 104 |           6 |         13 |       10 |         3 |      52 |       52 |    50 |   23.769729 |   103.769729 |                 0 |           10 |     113.769729
+ 105 |           6 |         13 |       11 |         3 |      85 |       85 |    32 |    9.219544 |   122.989273 |                 0 |           10 |     132.989273
+ 106 |           6 |         13 |       12 |         3 |      57 |       57 |    13 |    9.219544 |   142.208817 |                 0 |           10 |     152.208817
+ 107 |           6 |         13 |       13 |         3 |      92 |       92 |     0 |    7.071068 |   159.279885 |  7.72011499999999 |           10 |            177
+ 108 |           6 |         13 |       14 |         6 |       1 |       -1 |     0 |   12.041595 |   189.041595 |                 0 |            0 |     189.041595
+ 109 |           7 |          7 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+ 110 |           7 |          7 |        2 |         2 |       1 |       30 |    10 |           0 |            0 |                 0 |            0 |              0
+ 111 |           7 |          7 |        3 |         2 |       1 |       29 |    20 |           0 |            0 |                 0 |            0 |              0
+ 112 |           7 |          7 |        4 |         2 |       1 |       38 |    30 |           0 |            0 |                 0 |            0 |              0
+ 113 |           7 |          7 |        5 |         2 |       1 |       36 |    50 |           0 |            0 |                 0 |            0 |              0
+ 114 |           7 |          7 |        6 |         2 |       1 |       34 |    60 |           0 |            0 |                 0 |            0 |              0
+ 115 |           7 |          7 |        7 |         3 |      34 |       34 |    50 |   51.478151 |    51.478151 |                 0 |           10 |      61.478151
+ 116 |           7 |          7 |        8 |         3 |      29 |       29 |    40 |    8.602325 |    70.080476 |                 0 |           10 |      80.080476
+ 117 |           7 |          7 |        9 |         3 |      30 |       30 |    30 |    5.385165 |    85.465641 |                 0 |           10 |      95.465641
+ 118 |           7 |          7 |       10 |         3 |      38 |       38 |    20 |   53.235327 |   148.700968 |                 0 |           10 |     158.700968
+ 119 |           7 |          7 |       11 |         3 |      36 |       36 |     0 |    3.605551 |   162.306519 |                 0 |           10 |     172.306519
+ 120 |           7 |          7 |       12 |         6 |       1 |       -1 |     0 |   44.204072 |   216.510591 |                 0 |            0 |     216.510591
+ 121 |           8 |          2 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+ 122 |           8 |          2 |        2 |         2 |       1 |       89 |    19 |           0 |            0 |                 0 |            0 |              0
+ 123 |           8 |          2 |        3 |         2 |       1 |       47 |    29 |           0 |            0 |                 0 |            0 |              0
+ 124 |           8 |          2 |        4 |         2 |       1 |       61 |    46 |           0 |            0 |                 0 |            0 |              0
+ 125 |           8 |          2 |        5 |         2 |       1 |        9 |    56 |           0 |            0 |                 0 |            0 |              0
+ 126 |           8 |          2 |        6 |         2 |       1 |        8 |    76 |           0 |            0 |                 0 |            0 |              0
+ 127 |           8 |          2 |        7 |         3 |      89 |       89 |    57 |   17.888544 |    17.888544 |         49.111456 |           10 |             77
+ 128 |           8 |          2 |        8 |         3 |       8 |        8 |    37 |   19.235384 |    96.235384 |                 0 |           10 |     106.235384
+ 129 |           8 |          2 |        9 |         3 |       9 |        9 |    27 |           5 |   111.235384 |                 0 |           10 |     121.235384
+ 130 |           8 |          2 |       10 |         3 |      47 |       47 |    17 |           3 |   124.235384 |                 0 |           10 |     134.235384
+ 131 |           8 |          2 |       11 |         3 |      61 |       61 |     0 |   20.223748 |   154.459132 | 0.540867999999989 |           10 |            165
+ 132 |           8 |          2 |       12 |         6 |       1 |       -1 |     0 |   26.925824 |   191.925824 |                 0 |            0 |     191.925824
+ 133 |           9 |         14 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+ 134 |           9 |         14 |        2 |         2 |       1 |       97 |    26 |           0 |            0 |                 0 |            0 |              0
+ 135 |           9 |         14 |        3 |         2 |       1 |       64 |    32 |           0 |            0 |                 0 |            0 |              0
+ 136 |           9 |         14 |        4 |         2 |       1 |       51 |    62 |           0 |            0 |                 0 |            0 |              0
+ 137 |           9 |         14 |        5 |         2 |       1 |       96 |    68 |           0 |            0 |                 0 |            0 |              0
+ 138 |           9 |         14 |        6 |         2 |       1 |       77 |    99 |           0 |            0 |                 0 |            0 |              0
+ 139 |           9 |         14 |        7 |         3 |      96 |       96 |    93 |   20.615528 |    20.615528 |         13.384472 |           10 |             44
+ 140 |           9 |         14 |        8 |         3 |      64 |       64 |    87 |   19.235384 |    63.235384 |                 0 |           10 |      73.235384
+ 141 |           9 |         14 |        9 |         3 |      77 |       77 |    56 |    9.433981 |    82.669365 |                 0 |           10 |      92.669365
+ 142 |           9 |         14 |       10 |         3 |      51 |       51 |    26 |   25.942244 |   118.611609 |                 0 |           10 |     128.611609
+ 143 |           9 |         14 |       11 |         3 |      97 |       97 |     0 |   25.495098 |   154.106707 |                 0 |           10 |     164.106707
+ 144 |           9 |         14 |       12 |         6 |       1 |       -1 |     0 |   15.524175 |   179.630882 |                 0 |            0 |     179.630882
+ 145 |          10 |         15 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+ 146 |          10 |         15 |        2 |         2 |       1 |       67 |    16 |           0 |            0 |                 0 |            0 |              0
+ 147 |          10 |         15 |        3 |         2 |       1 |       73 |    24 |           0 |            0 |                 0 |            0 |              0
+ 148 |          10 |         15 |        4 |         2 |       1 |       95 |    47 |           0 |            0 |                 0 |            0 |              0
+ 149 |          10 |         15 |        5 |         2 |       1 |       82 |    57 |           0 |            0 |                 0 |            0 |              0
+ 150 |          10 |         15 |        6 |         2 |       1 |       72 |    71 |           0 |            0 |                 0 |            0 |              0
+ 151 |          10 |         15 |        7 |         3 |      73 |       73 |    63 |    27.45906 |     27.45906 |           2.54094 |           10 |             40
+ 152 |          10 |         15 |        8 |         3 |      72 |       72 |    49 |   10.198039 |    50.198039 |         14.801961 |           10 |             75
+ 153 |          10 |         15 |        9 |         3 |      82 |       82 |    39 |   16.278821 |    91.278821 |                 0 |           10 |     101.278821
+ 154 |          10 |         15 |       10 |         3 |      95 |       95 |    16 |   12.806248 |   114.085069 |                 0 |           10 |     124.085069
+ 155 |          10 |         15 |       11 |         3 |      67 |       67 |     0 |   19.416488 |   143.501557 |                 0 |           10 |     153.501557
+ 156 |          10 |         15 |       12 |         6 |       1 |       -1 |     0 |   13.038405 |   166.539962 |                 0 |            0 |     166.539962
+ 157 |          11 |         11 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+ 158 |          11 |         11 |        2 |         2 |       1 |       78 |     7 |           0 |            0 |                 0 |            0 |              0
+ 159 |          11 |         11 |        3 |         2 |       1 |       26 |    27 |           0 |            0 |                 0 |            0 |              0
+ 160 |          11 |         11 |        4 |         2 |       1 |       87 |    55 |           0 |            0 |                 0 |            0 |              0
+ 161 |          11 |         11 |        5 |         2 |       1 |       23 |    95 |           0 |            0 |                 0 |            0 |              0
+ 162 |          11 |         11 |        6 |         3 |      87 |       87 |    67 |   32.202484 |    32.202484 |         54.797516 |           10 |             97
+ 163 |          11 |         11 |        7 |         3 |      23 |       23 |    27 |   21.023796 |   118.023796 |                 0 |           10 |     128.023796
+ 164 |          11 |         11 |        8 |         3 |      78 |       78 |    20 |   20.808652 |   148.832448 |          1.167552 |           10 |            160
+ 165 |          11 |         11 |        9 |         3 |      26 |       26 |     0 |   12.165525 |   172.165525 |                 0 |           10 |     182.165525
+ 166 |          11 |         11 |       10 |         6 |       1 |       -1 |     0 |   45.276926 |   227.442451 |                 0 |            0 |     227.442451
+ 167 |          12 |          4 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+ 168 |          12 |          4 |        2 |         2 |       1 |       60 |    19 |           0 |            0 |                 0 |            0 |              0
+ 169 |          12 |          4 |        3 |         2 |       1 |       59 |    39 |           0 |            0 |                 0 |            0 |              0
+ 170 |          12 |          4 |        4 |         2 |       1 |      100 |    54 |           0 |            0 |                 0 |            0 |              0
+ 171 |          12 |          4 |        5 |         2 |       1 |       54 |    59 |           0 |            0 |                 0 |            0 |              0
+ 172 |          12 |          4 |        6 |         3 |      60 |       60 |    40 |   42.426407 |    42.426407 |                 0 |           10 |      52.426407
+ 173 |          12 |          4 |        7 |         3 |     100 |      100 |    25 |   21.931712 |    74.358119 |          2.641881 |           10 |             87
+ 174 |          12 |          4 |        8 |         3 |      54 |       54 |    20 |   16.155494 |   103.155494 |                 0 |           10 |     113.155494
+ 175 |          12 |          4 |        9 |         3 |      59 |       59 |     0 |   40.311289 |   153.466783 |                 0 |           10 |     163.466783
+ 176 |          12 |          4 |       10 |         6 |       1 |       -1 |     0 |   47.169906 |   210.636689 |                 0 |            0 |     210.636689
+ 177 |          13 |         10 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+ 178 |          13 |         10 |        2 |         2 |       1 |       86 |     2 |           0 |            0 |                 0 |            0 |              0
+ 179 |          13 |         10 |        3 |         2 |       1 |       90 |    27 |           0 |            0 |                 0 |            0 |              0
+ 180 |          13 |         10 |        4 |         2 |       1 |       65 |    44 |           0 |            0 |                 0 |            0 |              0
+ 181 |          13 |         10 |        5 |         2 |       1 |       53 |    47 |           0 |            0 |                 0 |            0 |              0
+ 182 |          13 |         10 |        6 |         3 |      53 |       53 |    44 |          25 |           25 |                27 |           10 |             62
+ 183 |          13 |         10 |        7 |         3 |      65 |       65 |    27 |          20 |           82 |                 0 |           10 |             92
+ 184 |          13 |         10 |        8 |         3 |      86 |       86 |    25 |   19.313208 |   111.313208 |                 0 |           10 |     121.313208
+ 185 |          13 |         10 |        9 |         3 |      90 |       90 |     0 |   18.439089 |   139.752297 |          4.247703 |           10 |            154
+ 186 |          13 |         10 |       10 |         6 |       1 |       -1 |     0 |   52.478567 |   206.478567 |                 0 |            0 |     206.478567
+ 187 |          14 |         12 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+ 188 |          14 |         12 |        2 |         2 |       1 |        6 |    20 |           0 |            0 |                 0 |            0 |              0
+ 189 |          14 |         12 |        3 |         2 |       1 |       80 |    50 |           0 |            0 |                 0 |            0 |              0
+ 190 |          14 |         12 |        4 |         2 |       1 |        7 |    70 |           0 |            0 |                 0 |            0 |              0
+ 191 |          14 |         12 |        5 |         2 |       1 |       56 |    86 |           0 |            0 |                 0 |            0 |              0
+ 192 |          14 |         12 |        6 |         3 |       6 |        6 |    66 |   40.311289 |    40.311289 | 0.688710999999998 |           10 |             51
+ 193 |          14 |         12 |        7 |         3 |      80 |       80 |    36 |   22.022716 |    73.022716 |         15.977284 |           10 |             99
+ 194 |          14 |         12 |        8 |         3 |       7 |        7 |    16 |   13.892444 |   112.892444 |                 0 |           10 |     122.892444
+ 195 |          14 |         12 |        9 |         3 |      56 |       56 |     0 |   19.209373 |   142.101817 |                 0 |           10 |     152.101817
+ 196 |          14 |         12 |       10 |         6 |       1 |       -1 |     0 |   14.142136 |   166.243953 |                 0 |            0 |     166.243953
+ 197 |          15 |         19 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+ 198 |          15 |         19 |        2 |         2 |       1 |       88 |    13 |           0 |            0 |                 0 |            0 |              0
+ 199 |          15 |         19 |        3 |         2 |       1 |       70 |    40 |           0 |            0 |                 0 |            0 |              0
+ 200 |          15 |         19 |        4 |         2 |       1 |       58 |    63 |           0 |            0 |                 0 |            0 |              0
+ 201 |          15 |         19 |        5 |         2 |       1 |       99 |    72 |           0 |            0 |                 0 |            0 |              0
+ 202 |          15 |         19 |        6 |         3 |      70 |       70 |    45 |    9.219544 |     9.219544 |         31.780456 |           10 |             51
+ 203 |          15 |         19 |        7 |         3 |      99 |       99 |    36 |           5 |           56 |                 0 |           10 |             66
+ 204 |          15 |         19 |        8 |         3 |      88 |       88 |    23 |   31.304952 |    97.304952 |                 0 |           10 |     107.304952
+ 205 |          15 |         19 |        9 |         3 |      58 |       58 |     0 |   18.027756 |   125.332708 |                 0 |           10 |     135.332708
+ 206 |          15 |         19 |       10 |         6 |       1 |       -1 |     0 |   26.925824 |   162.258532 |                 0 |            0 |     162.258532
+ 207 |          16 |         17 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+ 208 |          16 |         17 |        2 |         2 |       1 |       75 |     8 |           0 |            0 |                 0 |            0 |              0
+ 209 |          16 |         17 |        3 |         2 |       1 |       98 |    43 |           0 |            0 |                 0 |            0 |              0
+ 210 |          16 |         17 |        4 |         2 |       1 |       76 |    59 |           0 |            0 |                 0 |            0 |              0
+ 211 |          16 |         17 |        5 |         3 |      76 |       76 |    43 |   57.008771 |    57.008771 |         16.991229 |           10 |             84
+ 212 |          16 |         17 |        6 |         3 |      98 |       98 |     8 |   13.038405 |    97.038405 |         22.961595 |           10 |            130
+ 213 |          16 |         17 |        7 |         3 |      75 |       75 |     0 |   16.124515 |   146.124515 |                 0 |           10 |     156.124515
+ 214 |          16 |         17 |        8 |         6 |       1 |       -1 |     0 |   36.055513 |   192.180028 |                 0 |            0 |     192.180028
+ 215 |          17 |         16 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+ 216 |          17 |         16 |        2 |         2 |       1 |       69 |    21 |           0 |            0 |                 0 |            0 |              0
+ 217 |          17 |         16 |        3 |         2 |       1 |       79 |    48 |           0 |            0 |                 0 |            0 |              0
+ 218 |          17 |         16 |        4 |         2 |       1 |       74 |    53 |           0 |            0 |                 0 |            0 |              0
+ 219 |          17 |         16 |        5 |         3 |      74 |       74 |    48 |   39.293765 |    39.293765 |         37.706235 |           10 |             87
+ 220 |          17 |         16 |        6 |         3 |      79 |       79 |    21 |    7.211103 |    94.211103 |                 0 |           10 |     104.211103
+ 221 |          17 |         16 |        7 |         3 |      69 |       69 |     0 |   32.249031 |   136.460134 |  7.53986600000002 |           10 |            154
+ 222 |          17 |         16 |        8 |         6 |       1 |       -1 |     0 |          10 |          164 |                 0 |            0 |            164
+ 223 |          18 |          9 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+ 224 |          18 |          9 |        2 |         2 |       1 |       62 |     9 |           0 |            0 |                 0 |            0 |              0
+ 225 |          18 |          9 |        3 |         2 |       1 |       37 |    49 |           0 |            0 |                 0 |            0 |              0
+ 226 |          18 |          9 |        4 |         2 |       1 |       45 |    59 |           0 |            0 |                 0 |            0 |              0
+ 227 |          18 |          9 |        5 |         3 |      37 |       37 |    19 |   43.011626 |    43.011626 |                 0 |           10 |      53.011626
+ 228 |          18 |          9 |        6 |         3 |      45 |       45 |     9 |   10.440307 |    63.451933 | 0.548067000000003 |           10 |             74
+ 229 |          18 |          9 |        7 |         3 |      62 |       62 |     0 |   19.723083 |    93.723083 |                 0 |           10 |     103.723083
+ 230 |          18 |          9 |        8 |         6 |       1 |       -1 |     0 |   15.811388 |   119.534471 |                 0 |            0 |     119.534471
+ 231 |          19 |         18 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+ 232 |          19 |         18 |        2 |         2 |       1 |       91 |     6 |           0 |            0 |                 0 |            0 |              0
+ 233 |          19 |         18 |        3 |         2 |       1 |       12 |    46 |           0 |            0 |                 0 |            0 |              0
+ 234 |          19 |         18 |        4 |         3 |      12 |       12 |     6 |   33.526109 |    33.526109 |         25.473891 |           10 |             69
+ 235 |          19 |         18 |        5 |         3 |      91 |       91 |     0 |   29.832868 |    98.832868 |                 0 |           10 |     108.832868
+ 236 |          19 |         18 |        6 |         6 |       1 |       -1 |     0 |    4.242641 |   113.075509 |                 0 |            0 |     113.075509
+ 237 |          20 |         20 |        1 |         1 |       1 |       -1 |     0 |           0 |            0 |                 0 |            0 |              0
+ 238 |          20 |         20 |        2 |         2 |       1 |       83 |     9 |           0 |            0 |                 0 |            0 |              0
+ 239 |          20 |         20 |        3 |         3 |      83 |       83 |     0 |   14.764823 |    14.764823 |         27.235177 |           10 |             52
+ 240 |          20 |         20 |        4 |         6 |       1 |       -1 |     0 |   14.764823 |    66.764823 |                 0 |            0 |      66.764823
+ 241 |          -2 |          0 |        0 |        -1 |      -1 |       -1 |    -1 | 2304.305537 |           -1 |        408.022775 |         1000 |    3712.328312
+(241 rows)
+
+ROLLBACK;
+ROLLBACK
diff --git a/src/vrp_basic/test/oneDepotWrapper.test.sql b/src/vrp_basic/test/oneDepotWrapper.test.sql
new file mode 100644
index 0000000..067f5d1
--- /dev/null
+++ b/src/vrp_basic/test/oneDepotWrapper.test.sql
@@ -0,0 +1,6 @@
+
+SELECT * FROM _pgr_vrpOneDepot(
+    'SELECT * FROM vrp_orders',
+    'SELECT * FROM vrp_vehicles',
+    'SELECT src_id AS start_vid, dest_id AS end_vid, traveltime AS agg_cost FROM vrp_distance',
+    1);
diff --git a/src/vrp_basic/test/test.conf b/src/vrp_basic/test/test.conf
index fc73366..30df1be 100644
--- a/src/vrp_basic/test/test.conf
+++ b/src/vrp_basic/test/test.conf
@@ -3,13 +3,15 @@
 %main::tests = (
     'any' => {
         'comment' => 'VRP Single depot test for any versions.',
-        'data' => ['VRP-any-00.data'],
-        #'tests' => [qw(VRP-any-01)]
-        'tests' => []
+        'data' => ['../../../tools/testers/vrpOneDepot.data'],
+        'tests' => [qw(
+            oneDepotWrapper
+            doc-pgr_vrpOneDepot
+            )],
+        'documentation' => [qw(
+            doc-pgr_vrpOneDepot
+            )]
         },
-#    'vpg-vpgis' => {}, # for version specific tests
-#    '8-1' => {},       # for pg 8.x and postgis 1.x
-#    '9.2-2.1' => {},   # for pg 9.2 and postgis 2.1
 );
 
 1;
diff --git a/src/vrppdtw/doc/doc-gsoc_vrppdtw.queries b/src/vrppdtw/doc/doc-gsoc_vrppdtw.queries
deleted file mode 100644
index 9a0126c..0000000
--- a/src/vrppdtw/doc/doc-gsoc_vrppdtw.queries
+++ /dev/null
@@ -1,83 +0,0 @@
-BEGIN;
-BEGIN
-SET client_min_messages TO NOTICE;
-SET
---q1
-SELECT DISTINCT(id1) FROM pgr_gsoc_vrppdtw(
-    'SELECT * FROM customer ORDER BY id', 25, 200)
-ORDER BY id1;
- id1 
------
-   1
-   2
-   3
-   4
-   5
-   6
-   7
-   8
-   9
-  10
-(10 rows)
-
---q2
-SELECT count(*) FROM pgr_gsoc_vrppdtw(
-    'SELECT * FROM customer ORDER BY id', 25, 200);
- count 
--------
-   126
-(1 row)
-
---q3
-SELECT * FROM pgr_gsoc_vrppdtw(
-    'SELECT * FROM customer ORDER BY id', 25, 200)
-    WHERE id1 in (1, 5, 9);
- seq | id1 | id2 |       cost       
------+-----+-----+------------------
-   1 |   1 |   0 |                0
-   2 |   1 |   5 | 105.132745950422
-   3 |   1 |   3 | 196.132745950422
-   4 |   1 |   7 | 288.132745950422
-   5 |   1 |   8 | 380.961173075168
-   6 |   1 |  10 | 474.566724350632
-   7 |   1 |  11 | 567.566724350632
-   8 |   1 |   9 |   660.7290020108
-   9 |   1 |   6 |   752.9650699883
-  10 |   1 |   4 |   845.2011379658
-  11 |   1 |   2 | 938.806689241264
-  12 |   1 |   1 | 1030.80668924126
-  13 |   1 |  75 | 1123.80668924126
-  14 |   1 |   0 | 1139.61807754211
-  51 |   5 |   0 |                0
-  52 |   5 |  43 | 106.552945357247
-  53 |   5 |  42 | 199.552945357247
-  54 |   5 |  41 | 291.552945357247
-  55 |   5 |  40 | 383.552945357247
-  56 |   5 |  44 | 476.552945357247
-  57 |   5 |  46 | 569.381372481993
-  58 |   5 |  45 | 661.381372481993
-  59 |   5 |  48 | 753.381372481993
-  60 |   5 |  51 | 756.381372481993
-  61 |   5 | 101 | 846.381372481993
-  62 |   5 |  50 | 938.617440459493
-  63 |   5 |  52 | 1031.77971811966
-  64 |   5 |  49 | 1124.77971811966
-  65 |   5 |  47 | 1216.77971811966
-  66 |   5 |   0 | 1234.80747449698
- 103 |   9 |   0 |                0
- 104 |   9 |  90 | 110.615528128088
- 105 |   9 |  87 | 205.615528128088
- 106 |   9 |  86 | 296.615528128088
- 107 |   9 |  83 | 392.615528128088
- 108 |   9 |  82 | 485.615528128088
- 109 |   9 |  84 | 581.446480022934
- 110 |   9 |  85 |  674.27490714768
- 111 |   9 |  88 |  767.27490714768
- 112 |   9 |  89 | 860.103334272426
- 113 |   9 |  91 |  953.70888554789
- 114 |   9 |   0 | 976.069565322888
-(42 rows)
-
---q4
-ROLLBACK;
-ROLLBACK
diff --git a/src/vrppdtw/doc/pgr_gsoc_vrppdtw.rst b/src/vrppdtw/doc/pgr_gsoc_vrppdtw.rst
deleted file mode 100644
index a8969d8..0000000
--- a/src/vrppdtw/doc/pgr_gsoc_vrppdtw.rst
+++ /dev/null
@@ -1,133 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_gsocvrppdtw:
-
-pgr_gsoc_vrppdtw - Proposed
-===============================================================================
-
-
-Name
--------------------------------------------------------------------------------
-
-``pgr_gsoc_vrppdtw`` — Returns a solution for `Pick and Delivery` with `time windows` Vehicle Routing Problem
-
-.. include:: proposed.rst
-   :start-after: begin-warn-expr
-   :end-before: end-warn-expr
-
-
-Signature Summary
------------------
-
-
-.. code-block:: none
-
-    pgr_gsoc_vrppdtw(sql, vehicle_num, capacity)
-    RETURNS SET OF pgr_costResult[]:
-
-Signatures
------------
-
-.. index::
-    single: gsoc_vrppdtw(Complete Signature) - proposed
-
-
-Complete signature
-...................
-
-.. code-block:: none
-
-    pgr_gsoc_vrppdtw(sql, vehicle_num, capacity)
-    Returns set of pgr_costResult[]:
-
-
-.. rubric:: Example: Show the id1
-
-.. literalinclude:: ../doc/doc-gsoc_vrppdtw.queries
-   :start-after: --q1
-   :end-before: --q2
-
-
-Description of the Signatures
--------------------------------
-
-Description of the sql query
-.........................................................................................
-
-================  ===================   =================================================
-Column            Type                  Description
-================  ===================   =================================================
-**id**            ``ANY-INTEGER``       Identifier of the customer.
-
-                                        - A value of ``0`` identifies the starting location
-
-**x**             ``ANY-NUMERICAL``     ``X`` coordinate of the location.
-**y**             ``ANY-NUMERICAL``     ``Y`` coordinate of the location.
-**demand**        ``ANY-NUMERICAL``     How much is added / removed from the vehicle.
-
-                                        - Negative value is a delivery,
-                                        - Positive value is a pickup,
-
-**openTime**      ``ANY-NUMERICAL``     The time relative to 0, when the customer opens.
-**closeTime**     ``ANY-NUMERICAL``     The time relative to 0, when the customer closes.
-**serviceTime**   ``ANY-NUMERICAL``     The duration of the loading / unloading.
-**pIndex**        ``ANY-INTEGER``       Value used when the current customer is a Delivery to find the corresponding Pickup
-**dIndex**        ``ANY-INTEGER``       Value used when the current customer is a Pickup to find the corresponding Delivery
-================  ===================   =================================================
-
-Description of the parameters of the signatures
-.........................................................................................
-
-================== ===========  =================================================
-Column             Type            Description
-================== ===========  =================================================
-**sql**            ``TEXT``     SQL query as described above.
-**vehicle_num**    ``INTEGER``  Maximum number of vehicles in the result. (currently is ignored)
-**capacity**       ``INTEGER``  Capacity of the vehicle.
-================== ===========  =================================================
-
-Description of the result
-.........................................................................................
-
-RETURNS SET OF pgr_costResult[]:
-
-================== =========== =================================================
-Column             Type            Description
-================== =========== =================================================
-**seq**            ``INTEGER`` Sequential value starting from **1**.
-**id1**            ``INTEGER`` Current vehicle identifier.
-**id2**            ``INTEGER`` Customer identifier.
-**cost**           ``FLOAT``   Previous ``cost`` plus `travel time` plus `wait time` plus `service time`.
-                                - when ``id2 = 0`` for the second time for the same ``id1``, then has the total time for the current ``id1``
-================== =========== =================================================
-
-
-
-Examples
--------------------------------------------------------------------------------
-
-.. rubric:: Example: Total number of rows returned
-
-.. literalinclude:: ../doc/doc-gsoc_vrppdtw.queries
-   :start-after: --q2
-   :end-before: --q3
-
-.. rubric:: Example: Results for only id1 values: 1, 5, and 9
-
-.. literalinclude:: ../doc/doc-gsoc_vrppdtw.queries
-   :start-after: --q3
-   :end-before: --q4
-
-
-See Also
--------------------------------------------------------------------------------
-
-* The examples use :ref:`pickDeliverData`
-* http://en.wikipedia.org/wiki/Vehicle_routing_problem
diff --git a/src/vrppdtw/sql/CMakeLists.txt b/src/vrppdtw/sql/CMakeLists.txt
deleted file mode 100644
index f0746f5..0000000
--- a/src/vrppdtw/sql/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-# Append in local scope
-LIST(APPEND PACKAGE_SQL_FILES
-    ${CMAKE_CURRENT_SOURCE_DIR}/gsoc_vrppdtw.sql
-)
-
-# set in parent scope
-SET(PACKAGE_SQL_FILES "${PACKAGE_SQL_FILES}" PARENT_SCOPE)
diff --git a/src/vrppdtw/sql/gsoc_vrppdtw.sql b/src/vrppdtw/sql/gsoc_vrppdtw.sql
deleted file mode 100644
index 43d12b1..0000000
--- a/src/vrppdtw/sql/gsoc_vrppdtw.sql
+++ /dev/null
@@ -1,19 +0,0 @@
-CREATE OR REPLACE FUNCTION pgr_gsoc_vrppdtw(
-    sql text,
-    vehicle_num INTEGER,
-    capacity INTEGER
-)
-RETURNS SETOF pgr_costresult AS
-$BODY$
-DECLARE
-has_reverse BOOLEAN;
-customers_sql TEXT;
-BEGIN
-    RETURN query
-         SELECT a.seq, vehicle_id::INTEGER AS id1, stop_id::INTEGER AS id2, departure_time AS cost
-        FROM _pgr_pickDeliver($1, $2, $3, 1, 30) AS a WHERE vehicle_id != -1;
-END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
diff --git a/src/vrppdtw/test/doc-gsoc_vrppdtw.result b/src/vrppdtw/test/doc-gsoc_vrppdtw.result
index dfed1c0..eed8a37 100644
--- a/src/vrppdtw/test/doc-gsoc_vrppdtw.result
+++ b/src/vrppdtw/test/doc-gsoc_vrppdtw.result
@@ -1,57 +1,79 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 --q1
-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
+SELECT DISTINCT(id1) FROM pgr_gsoc_vrppdtw(
+    'SELECT * FROM customer ORDER BY id', 25, 200)
+ORDER BY id1;
+ id1 
+-----
+   1
+   2
+   3
+   4
+   5
+   6
+   7
+   8
+   9
+  10
+(10 rows)
+
 --q2
-126
+SELECT count(*) FROM pgr_gsoc_vrppdtw(
+    'SELECT * FROM customer ORDER BY id', 25, 200);
+ count 
+-------
+   126
+(1 row)
+
 --q3
-1|1|0|0
-2|1|5|105.132745950422
-3|1|3|196.132745950422
-4|1|7|288.132745950422
-5|1|8|380.961173075168
-6|1|10|474.566724350632
-7|1|11|567.566724350632
-8|1|9|660.7290020108
-9|1|6|752.9650699883
-10|1|4|845.2011379658
-11|1|2|938.806689241264
-12|1|1|1030.80668924126
-13|1|75|1123.80668924126
-14|1|0|1139.61807754211
-51|5|0|0
-52|5|43|106.552945357247
-53|5|42|199.552945357247
-54|5|41|291.552945357247
-55|5|40|383.552945357247
-56|5|44|476.552945357247
-57|5|46|569.381372481993
-58|5|45|661.381372481993
-59|5|48|753.381372481993
-60|5|51|756.381372481993
-61|5|101|846.381372481993
-62|5|50|938.617440459493
-63|5|52|1031.77971811966
-64|5|49|1124.77971811966
-65|5|47|1216.77971811966
-66|5|0|1234.80747449698
-103|9|0|0
-104|9|90|110.615528128088
-105|9|87|205.615528128088
-106|9|86|296.615528128088
-107|9|83|392.615528128088
-108|9|82|485.615528128088
-109|9|84|581.446480022934
-110|9|85|674.27490714768
-111|9|88|767.27490714768
-112|9|89|860.103334272426
-113|9|91|953.70888554789
-114|9|0|976.069565322888
+SELECT * FROM pgr_gsoc_vrppdtw(
+    'SELECT * FROM customer ORDER BY id', 25, 200)
+    WHERE id1 in (1, 5, 9);
+ seq | id1 | id2 |       cost       
+-----+-----+-----+------------------
+   1 |   1 |   0 |                0
+   2 |   1 |  13 | 120.805843601499
+   3 |   1 |  17 | 214.805843601499
+   4 |   1 |  18 | 307.805843601499
+   5 |   1 |  19 | 402.805843601499
+   6 |   1 |  15 | 497.805843601499
+   7 |   1 |  16 | 592.805843601499
+   8 |   1 |  14 | 684.805843601499
+   9 |   1 |  12 | 777.805843601499
+  10 |   1 |  50 | 920.815276724293
+  11 |   1 |  52 | 1013.97755438446
+  12 |   1 |  49 | 1106.97755438446
+  13 |   1 |  47 | 1198.97755438446
+  14 |   1 |   0 | 1217.00531076178
+  57 |   5 |   0 |                0
+  58 |   5 |  90 | 110.615528128088
+  59 |   5 |  87 | 205.615528128088
+  60 |   5 |  86 | 296.615528128088
+  61 |   5 |  83 | 392.615528128088
+  62 |   5 |  82 | 485.615528128088
+  63 |   5 |  84 | 581.446480022934
+  64 |   5 |  85 |  674.27490714768
+  65 |   5 |  88 |  767.27490714768
+  66 |   5 |  89 | 860.103334272426
+  67 |   5 |  91 |  953.70888554789
+  68 |   5 |   0 | 976.069565322888
+ 105 |   9 |   0 |                0
+ 106 |   9 |  67 | 102.206555615734
+ 107 |   9 |  65 | 193.206555615734
+ 108 |   9 |  63 | 285.206555615734
+ 109 |   9 |  62 | 380.206555615734
+ 110 |   9 |  74 | 473.206555615734
+ 111 |   9 |  72 | 568.206555615734
+ 112 |   9 |  61 | 661.206555615734
+ 113 |   9 |  64 | 663.206555615734
+ 114 |   9 | 102 | 753.206555615734
+ 115 |   9 |  68 | 846.206555615734
+ 116 |   9 |   0 | 866.822083743822
+(38 rows)
+
 --q4
+ROLLBACK;
+ROLLBACK
diff --git a/src/vrppdtw/test/jet_customers.result b/src/vrppdtw/test/jet_customers.result
deleted file mode 100644
index cd684ff..0000000
--- a/src/vrppdtw/test/jet_customers.result
+++ /dev/null
@@ -1,96 +0,0 @@
-1|1|0|TEB|0|0.00
-2|1|5|BOS|4|1.26
-3|1|62|BOS|-1|2.01
-4|1|53|MVY|1|2.95
-5|1|61|ABE|1|4.38
-6|1|54|MIA|-1|8.01
-7|1|6|MIA|-4|8.76
-8|1|0|TEB|0|11.75
-9|2|0|TEB|0|0.00
-10|2|71|ABE|1|0.95
-11|2|35|MIA|2|4.58
-12|2|33|MIA|2|5.33
-13|2|72|ABE|-1|8.96
-14|2|36|ABE|-2|9.71
-15|2|34|MVY|-2|11.14
-16|2|0|TEB|0|11.63
-17|3|0|TEB|0|0.00
-18|3|45|TEB|5|0.76
-19|3|8|TEB|-4|1.51
-20|3|1|BOS|4|2.77
-21|3|2|BOS|-4|3.52
-22|3|7|BOS|4|4.27
-23|3|46|MVY|-5|5.21
-24|3|0|TEB|0|5.69
-25|4|0|TEB|0|0.00
-26|4|17|BGR|4|1.78
-27|4|64|BGR|-1|2.53
-28|4|63|ABE|1|4.47
-29|4|18|MIA|-4|8.10
-30|4|0|TEB|0|11.09
-31|5|0|TEB|0|0.00
-32|5|27|MIA|2|3.73
-33|5|25|MIA|2|4.48
-34|5|26|BOS|-2|8.66
-35|5|28|BGR|-2|9.96
-36|5|0|TEB|0|10.99
-37|6|0|TEB|0|0.00
-38|6|65|ABE|1|0.95
-39|6|31|MIA|2|4.58
-40|6|29|MIA|2|5.33
-41|6|66|MIA|-1|6.08
-42|6|30|MIA|-2|6.83
-43|6|32|TEB|-2|10.56
-44|6|0|TEB|0|10.56
-45|7|0|TEB|0|0.00
-46|7|49|MVY|1|1.24
-47|7|51|MVY|1|1.99
-48|7|59|MVY|1|2.74
-49|7|55|MVY|1|3.49
-50|7|10|MVY|-4|4.24
-51|7|9|BOS|4|5.18
-52|7|50|BOS|-1|5.93
-53|7|52|BGR|-1|7.22
-54|7|60|ABE|-1|9.16
-55|7|56|TEB|-1|10.11
-56|7|0|TEB|0|10.11
-57|8|0|TEB|0|0.00
-58|8|47|TEB|5|0.76
-59|8|68|TEB|-1|1.51
-60|8|67|ABE|1|2.45
-61|8|48|ABE|-5|3.20
-62|8|69|ABE|1|3.95
-63|8|57|MVY|1|5.39
-64|8|70|MVY|-1|6.14
-65|8|58|MVY|-1|6.89
-66|8|0|TEB|0|7.37
-67|9|0|TEB|0|0.00
-68|9|37|TEB|5|0.76
-69|9|12|ABE|-4|1.70
-70|9|11|BOS|4|3.15
-71|9|38|BOS|-5|3.90
-72|9|23|BGR|4|5.19
-73|9|24|ABE|-4|7.13
-74|9|0|TEB|0|7.33
-75|10|0|TEB|0|0.00
-76|10|39|TEB|5|0.76
-77|10|22|MVY|-4|1.99
-78|10|21|BGR|4|3.43
-79|10|40|BGR|-5|4.18
-80|10|19|BGR|4|4.93
-81|10|20|TEB|-4|6.71
-82|10|0|TEB|0|6.71
-83|11|0|TEB|0|0.00
-84|11|3|BOS|4|1.26
-85|11|14|BOS|-4|2.01
-86|11|15|BGR|4|3.31
-87|11|16|BGR|-4|4.06
-88|11|13|BGR|4|4.81
-89|11|4|BGR|-4|5.56
-90|11|0|TEB|0|6.59
-91|12|0|TEB|0|0.00
-92|12|43|TEB|5|0.76
-93|12|44|TEB|-5|1.51
-94|12|41|TEB|5|2.26
-95|12|42|MIA|-5|5.99
-96|12|0|TEB|0|8.97
diff --git a/src/vrppdtw/test/jet_customers.test.sql b/src/vrppdtw/test/jet_customers.test.sql
deleted file mode 100644
index 7729204..0000000
--- a/src/vrppdtw/test/jet_customers.test.sql
+++ /dev/null
@@ -1,128 +0,0 @@
---
--- PostgreSQL database dump
---
-
--- Dumped from database version 9.6.2
--- Dumped by pg_dump version 9.6.1
-
--- Started on 2017-03-12 13:34:07
-
-
-
---
--- TOC entry 318 (class 1259 OID 15659206)
--- Name: jet_customers; Type: TABLE; Schema: public; Owner: postgres
---
-
-CREATE TABLE jet_customers (
-    airport character varying,
-    id integer,
-    x double precision,
-    y double precision,
-    pindex integer,
-    dindex integer,
-    demand integer,
-    opentime double precision,
-    closetime double precision,
-    servicetime double precision
-);
-
---
--- TOC entry 4308 (class 0 OID 15659206)
--- Dependencies: 318
--- Data for Name: jet_customers; Type: TABLE DATA; Schema: public; Owner: postgres
---
-
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 1, 2320738.4688434978, 126348.38967116659, 0, 2, 4, 3448, 2853448, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 3, 2320738.4688434978, 126348.38967116659, 0, 4, 4, 3448, 2853448, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 5, 2320738.4688434978, 126348.38967116659, 0, 6, 4, 3448, 2853448, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 7, 2320738.4688434978, 126348.38967116659, 0, 8, 4, 3448, 2853448, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 9, 2320738.4688434978, 126348.38967116659, 0, 10, 4, 3448, 2853448, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 11, 2320738.4688434978, 126348.38967116659, 0, 12, 4, 3448, 2853448, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 13, 2383186.1525343237, 448251.25888828852, 0, 14, 4, 3463, 2853463, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 15, 2383186.1525343237, 448251.25888828852, 0, 16, 4, 3463, 2853463, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 17, 2383186.1525343237, 448251.25888828852, 0, 18, 4, 3463, 2853463, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 19, 2383186.1525343237, 448251.25888828852, 0, 20, 4, 3463, 2853463, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 21, 2383186.1525343237, 448251.25888828852, 0, 22, 4, 3463, 2853463, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 23, 2383186.1525343237, 448251.25888828852, 0, 24, 4, 3463, 2853463, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 25, 1981144.5525029898, -1903041.2384292425, 0, 26, 2, 3576, 2853576, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 27, 1981144.5525029898, -1903041.2384292425, 0, 28, 2, 3576, 2853576, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 29, 1981144.5525029898, -1903041.2384292425, 0, 30, 2, 3576, 2853576, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 31, 1981144.5525029898, -1903041.2384292425, 0, 32, 2, 3576, 2853576, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 33, 1981144.5525029898, -1903041.2384292425, 0, 34, 2, 3576, 2853576, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 35, 1981144.5525029898, -1903041.2384292425, 0, 36, 2, 3576, 2853576, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 37, 2138409.5568088419, -119451.50568778868, 0, 38, 5, 3624, 2853624, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 39, 2138409.5568088419, -119451.50568778868, 0, 40, 5, 3624, 2853624, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 41, 2138409.5568088419, -119451.50568778868, 0, 42, 5, 3624, 2853624, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 43, 2138409.5568088419, -119451.50568778868, 0, 44, 5, 3624, 2853624, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 45, 2138409.5568088419, -119451.50568778868, 0, 46, 5, 3624, 2853624, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 47, 2138409.5568088419, -119451.50568778868, 0, 48, 5, 3624, 2853624, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 49, 2387491.1007072991, 34459.351848672632, 0, 50, 1, 4265, 2854265, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 51, 2387491.1007072991, 34459.351848672632, 0, 52, 1, 4265, 2854265, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 53, 2387491.1007072991, 34459.351848672632, 0, 54, 1, 4265, 2854265, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 55, 2387491.1007072991, 34459.351848672632, 0, 56, 1, 4265, 2854265, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 57, 2387491.1007072991, 34459.351848672632, 0, 58, 1, 4265, 2854265, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 59, 2387491.1007072991, 34459.351848672632, 0, 60, 1, 4265, 2854265, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 61, 2035310.7411768832, -176076.78362264115, 0, 62, 1, 4355, 2854355, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 63, 2035310.7411768832, -176076.78362264115, 0, 64, 1, 4355, 2854355, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 65, 2035310.7411768832, -176076.78362264115, 0, 66, 1, 4355, 2854355, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 67, 2035310.7411768832, -176076.78362264115, 0, 68, 1, 4355, 2854355, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 69, 2035310.7411768832, -176076.78362264115, 0, 70, 1, 4355, 2854355, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 71, 2035310.7411768832, -176076.78362264115, 0, 72, 1, 4355, 2854355, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 2, 2320738.4688434978, 126348.38967116659, 1, 0, -4, 3448, 6903448, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 4, 2383186.1525343237, 448251.25888828852, 3, 0, -4, 3448, 6903448, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 6, 1981144.5525029898, -1903041.2384292425, 5, 0, -4, 3448, 6903448, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 8, 2138409.5568088419, -119451.50568778868, 7, 0, -4, 3448, 6903448, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 10, 2387491.1007072991, 34459.351848672632, 9, 0, -4, 3448, 6903448, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 12, 2035310.7411768832, -176076.78362264115, 11, 0, -4, 3448, 6903448, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 14, 2320738.4688434978, 126348.38967116659, 13, 0, -4, 3463, 6903463, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 16, 2383186.1525343237, 448251.25888828852, 15, 0, -4, 3463, 6903463, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 18, 1981144.5525029898, -1903041.2384292425, 17, 0, -4, 3463, 6903463, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 20, 2138409.5568088419, -119451.50568778868, 19, 0, -4, 3463, 6903463, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 22, 2387491.1007072991, 34459.351848672632, 21, 0, -4, 3463, 6903463, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 24, 2035310.7411768832, -176076.78362264115, 23, 0, -4, 3463, 6903463, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 26, 2320738.4688434978, 126348.38967116659, 25, 0, -2, 3576, 6903576, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 28, 2383186.1525343237, 448251.25888828852, 27, 0, -2, 3576, 6903576, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 30, 1981144.5525029898, -1903041.2384292425, 29, 0, -2, 3576, 6903576, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 32, 2138409.5568088419, -119451.50568778868, 31, 0, -2, 3576, 6903576, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 34, 2387491.1007072991, 34459.351848672632, 33, 0, -2, 3576, 6903576, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 36, 2035310.7411768832, -176076.78362264115, 35, 0, -2, 3576, 6903576, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 38, 2320738.4688434978, 126348.38967116659, 37, 0, -5, 3624, 6903624, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 40, 2383186.1525343237, 448251.25888828852, 39, 0, -5, 3624, 6903624, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 42, 1981144.5525029898, -1903041.2384292425, 41, 0, -5, 3624, 6903624, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 44, 2138409.5568088419, -119451.50568778868, 43, 0, -5, 3624, 6903624, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 46, 2387491.1007072991, 34459.351848672632, 45, 0, -5, 3624, 6903624, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 48, 2035310.7411768832, -176076.78362264115, 47, 0, -5, 3624, 6903624, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 50, 2320738.4688434978, 126348.38967116659, 49, 0, -1, 4265, 6904265, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 52, 2383186.1525343237, 448251.25888828852, 51, 0, -1, 4265, 6904265, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 54, 1981144.5525029898, -1903041.2384292425, 53, 0, -1, 4265, 6904265, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 56, 2138409.5568088419, -119451.50568778868, 55, 0, -1, 4265, 6904265, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 58, 2387491.1007072991, 34459.351848672632, 57, 0, -1, 4265, 6904265, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 60, 2035310.7411768832, -176076.78362264115, 59, 0, -1, 4265, 6904265, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BOS', 62, 2320738.4688434978, 126348.38967116659, 61, 0, -1, 4355, 6904355, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('BGR', 64, 2383186.1525343237, 448251.25888828852, 63, 0, -1, 4355, 6904355, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MIA', 66, 1981144.5525029898, -1903041.2384292425, 65, 0, -1, 4355, 6904355, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 68, 2138409.5568088419, -119451.50568778868, 67, 0, -1, 4355, 6904355, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('MVY', 70, 2387491.1007072991, 34459.351848672632, 69, 0, -1, 4355, 6904355, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('ABE', 72, 2035310.7411768832, -176076.78362264115, 71, 0, -1, 4355, 6904355, 450000);
-INSERT INTO jet_customers (airport, id, x, y, pindex, dindex, demand, opentime, closetime, servicetime) VALUES ('TEB', 0, 2138409.5568088419, -119451.50568778868, 0, 0, 0, 0, 7200000, 0);
-
-SELECT 
-n.seq, n.id1 AS jet, n.id2 AS cust, pd.airport, pd.demand AS pas, 
-(n.cost/1000/600)::numeric(10,2) AS c_hrs  
-FROM 
-pgr_gsoc_vrppdtw(
-    $$
-    SELECT 
-    id, x, y, demand, 
-    opentime, closetime, servicetime, 
-    pindex, dindex 
-    FROM jet_customers 
-    ORDER BY id
-    $$,
-    2,
-    5
-) AS n LEFT JOIN 
-jet_customers AS pd ON n.id2 = pd.id
-ORDER BY n.seq;
-
diff --git a/src/vrppdtw/test/pdp-any-02.result b/src/vrppdtw/test/pdp-any-02.result
deleted file mode 100644
index c424b03..0000000
--- a/src/vrppdtw/test/pdp-any-02.result
+++ /dev/null
@@ -1,126 +0,0 @@
-1|1|0|0
-2|1|5|105.132745950422
-3|1|3|196.132745950422
-4|1|7|288.132745950422
-5|1|8|380.961173075168
-6|1|10|474.566724350632
-7|1|11|567.566724350632
-8|1|9|660.7290020108
-9|1|6|752.9650699883
-10|1|4|845.2011379658
-11|1|2|938.806689241264
-12|1|1|1030.80668924126
-13|1|75|1123.80668924126
-14|1|0|1139.61807754211
-15|2|0|0
-16|2|13|120.805843601499
-17|2|17|214.805843601499
-18|2|18|307.805843601499
-19|2|19|402.805843601499
-20|2|15|497.805843601499
-21|2|16|592.805843601499
-22|2|14|684.805843601499
-23|2|12|777.805843601499
-24|2|0|815.884709130818
-25|3|0|0
-26|3|20|100
-27|3|24|195
-28|3|25|287
-29|3|27|379
-30|3|29|472.605551275464
-31|3|30|567.605551275464
-32|3|28|660.605551275464
-33|3|26|752.605551275464
-34|3|23|755.605551275464
-35|3|103|845.605551275464
-36|3|22|938.605551275464
-37|3|21|1030.60555127546
-38|3|0|1040.80359030265
-39|4|0|0
-40|4|32|121.622776601684
-41|4|33|213.622776601684
-42|4|31|309.007941408818
-43|4|35|404.007941408818
-44|4|37|499.838893303664
-45|4|38|591.838893303664
-46|4|39|686.838893303664
-47|4|36|691.838893303664
-48|4|105|781.838893303664
-49|4|34|874.838893303664
-50|4|0|907.227162785067
-51|5|0|0
-52|5|43|106.552945357247
-53|5|42|199.552945357247
-54|5|41|291.552945357247
-55|5|40|383.552945357247
-56|5|44|476.552945357247
-57|5|46|569.381372481993
-58|5|45|661.381372481993
-59|5|48|753.381372481993
-60|5|51|756.381372481993
-61|5|101|846.381372481993
-62|5|50|938.617440459493
-63|5|52|1031.77971811966
-64|5|49|1124.77971811966
-65|5|47|1216.77971811966
-66|5|0|1234.80747449698
-67|6|0|0
-68|6|57|125
-69|6|55|217
-70|6|54|312
-71|6|53|407.385164807135
-72|6|56|501.385164807135
-73|6|58|593.385164807135
-74|6|60|686.385164807135
-75|6|59|786.825471316045
-76|6|0|821.882567601961
-77|7|0|0
-78|7|67|102.206555615734
-79|7|65|193.206555615734
-80|7|63|285.206555615734
-81|7|62|380.206555615734
-82|7|74|473.206555615734
-83|7|72|568.206555615734
-84|7|61|661.206555615734
-85|7|64|663.206555615734
-86|7|102|753.206555615734
-87|7|68|846.206555615734
-88|7|66|941.591720422868
-89|7|69|1033.59172042287
-90|7|0|1049.40310872371
-91|8|0|0
-92|8|81|137.434164902526
-93|8|78|140.434164902526
-94|8|104|230.434164902526
-95|8|76|322.434164902526
-96|8|71|417.434164902526
-97|8|70|512.434164902526
-98|8|73|605.434164902526
-99|8|77|699.434164902526
-100|8|79|790.434164902526
-101|8|80|885.81932970966
-102|8|0|937.297480414595
-103|9|0|0
-104|9|90|110.615528128088
-105|9|87|205.615528128088
-106|9|86|296.615528128088
-107|9|83|392.615528128088
-108|9|82|485.615528128088
-109|9|84|581.446480022934
-110|9|85|674.27490714768
-111|9|88|767.27490714768
-112|9|89|860.103334272426
-113|9|91|953.70888554789
-114|9|0|976.069565322888
-115|10|0|0
-116|10|98|120.805843601499
-117|10|96|216.191008408633
-118|10|95|308.191008408633
-119|10|94|401.796559684097
-120|10|92|495.402110959561
-121|10|93|587.402110959561
-122|10|97|592.402110959561
-123|10|106|682.402110959561
-124|10|100|777.402110959561
-125|10|99|872.402110959561
-126|10|0|905.943130622058
diff --git a/src/vrppdtw/test/pdp-any-02.test.sql b/src/vrppdtw/test/pdp-any-02.test.sql
deleted file mode 100644
index 88be2da..0000000
--- a/src/vrppdtw/test/pdp-any-02.test.sql
+++ /dev/null
@@ -1,3 +0,0 @@
-select * from pgr_gsoc_vrppdtw(
-    'select * from customer order by id'::text, 25, 200
-);
diff --git a/src/vrppdtw/test/test.conf b/src/vrppdtw/test/test.conf
index 0df0702..068bb2b 100644
--- a/src/vrppdtw/test/test.conf
+++ b/src/vrppdtw/test/test.conf
@@ -3,25 +3,18 @@
 %main::tests = (
     'any' => {
         'comment' => 'Function test for any versions.',
-        'data' => ['../../pickDeliver/test/pickDeliver.data'],
+        'data' => ['../../../tools/testers/vrppdtw_data.sql'],
         'tests' => [qw(
-            jet_customers
+            )],
+        'windows' => [qw(
+            )],
+        'linux' => [qw(
             doc-gsoc_vrppdtw
-            pdp-any-02
             )],
         'documentation' => [qw(
             doc-gsoc_vrppdtw
-            )],
-
-#put here the ones that you are not testing (just a place holder)
-        'nottesting' => [qw(
             )]
     },
-# I don't know what this are for or how to use them.
-#  TODO ask Steve 
-#    'vpg-vpgis' => {}, # for version specific tests
-#    '8-1' => {},       # for pg 8.x and postgis 1.x
-#    '9.2-2.1' => {},   # for pg 9.2 and postgis 2.1
 );
 
 1;
diff --git a/src/withPoints/doc/doc-pgr_withPointsVia.queries b/src/withPoints/doc/doc-pgr_withPointsVia.queries
deleted file mode 100644
index 7aa342c..0000000
--- a/src/withPoints/doc/doc-pgr_withPointsVia.queries
+++ /dev/null
@@ -1,37 +0,0 @@
-BEGIN;
-BEGIN
---q1
-SELECT * FROM pgr_withPointsVia(
-        'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
-        'SELECT pid, edge_id, fraction, side from pointsOfInterest',
-        ARRAY[1,3,5]);
-ERROR:  array value must start with "{" or dimension information
-LINE 3:         'SELECT pid, edge_id, fraction, side from pointsOfIn...
-                ^
---q2
-SELECT * FROM pgr_withPointsDD(
-        'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
-        'SELECT pid, edge_id, fraction, side from pointsOfInterest',
-        3, 3.0,
-        driving_side := 'r',
-        details := true);
-ERROR:  current transaction is aborted, commands ignored until end of transaction block
---q3
-SELECT * FROM pgr_withPointsDD(
-        'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
-        'SELECT pid, edge_id, fraction, side from pointsOfInterest',
-        3, 3.0,
-        driving_side := 'l',
-        details := true);
-ERROR:  current transaction is aborted, commands ignored until end of transaction block
---q4
-SELECT * FROM pgr_withPointsDD(
-        'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
-        'SELECT pid, edge_id, fraction, side from pointsOfInterest',
-        3, 3.0,
-        driving_side := 'b',
-        details := true);
-ERROR:  current transaction is aborted, commands ignored until end of transaction block
---q5
-ROLLBACK;
-ROLLBACK
diff --git a/src/withPoints/doc/doc-withPointsVia.queries b/src/withPoints/doc/doc-withPointsVia.queries
deleted file mode 100644
index 1716ab5..0000000
--- a/src/withPoints/doc/doc-withPointsVia.queries
+++ /dev/null
@@ -1,100 +0,0 @@
--- q0
-SELECT id, source, target FROM edge_table WHERE id IN (4, 5, 14);
- id | source | target 
-----+--------+--------
-  4 |      2 |      5
-  5 |      3 |      6
- 14 |     10 |     13
-(3 rows)
-
--- q1
-SELECT * FROM pgr_withPointsVia(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    array[4, 5, 14], array[0.1, 0.5, 0.85]
-);
- seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost | route_agg_cost 
------+---------+----------+-----------+---------+------+------+------+----------+----------------
-   1 |       1 |        1 |        -1 |      -2 |   -1 |    4 |  0.9 |        0 |              0
-   2 |       1 |        2 |        -1 |      -2 |    5 |    8 |    1 |      0.9 |            0.9
-   3 |       1 |        3 |        -1 |      -2 |    6 |    9 |    1 |      1.9 |            1.9
-   4 |       1 |        4 |        -1 |      -2 |    9 |   16 |    1 |      2.9 |            2.9
-   5 |       1 |        5 |        -1 |      -2 |    4 |    3 |    1 |      3.9 |            3.9
-   6 |       1 |        6 |        -1 |      -2 |    3 |    5 |  0.5 |      4.9 |            4.9
-   7 |       1 |        7 |        -1 |      -2 |   -2 |   -1 |    0 |      5.4 |            5.4
-   8 |       2 |        1 |        -2 |      -3 |   -2 |    5 |  0.5 |        0 |            5.4
-   9 |       2 |        2 |        -2 |      -3 |    6 |    8 |    1 |      0.5 |            5.9
-  10 |       2 |        3 |        -2 |      -3 |    5 |   10 |    1 |      1.5 |            6.9
-  11 |       2 |        4 |        -2 |      -3 |   10 |   14 | 0.85 |      2.5 |            7.9
-  12 |       2 |        5 |        -2 |      -3 |   -3 |   -2 |    0 |     3.35 |           8.75
-(12 rows)
-
-SELECT * FROM pgr_withPointsVia(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    array[4, 5, 14], array[0.1, 0.5, 0.85],
-    true
-);
- seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost | route_agg_cost 
------+---------+----------+-----------+---------+------+------+------+----------+----------------
-   1 |       1 |        1 |        -1 |      -2 |   -1 |    4 |  0.9 |        0 |              0
-   2 |       1 |        2 |        -1 |      -2 |    5 |    8 |    1 |      0.9 |            0.9
-   3 |       1 |        3 |        -1 |      -2 |    6 |    9 |    1 |      1.9 |            1.9
-   4 |       1 |        4 |        -1 |      -2 |    9 |   16 |    1 |      2.9 |            2.9
-   5 |       1 |        5 |        -1 |      -2 |    4 |    3 |    1 |      3.9 |            3.9
-   6 |       1 |        6 |        -1 |      -2 |    3 |    5 |  0.5 |      4.9 |            4.9
-   7 |       1 |        7 |        -1 |      -2 |   -2 |   -1 |    0 |      5.4 |            5.4
-   8 |       2 |        1 |        -2 |      -3 |   -2 |    5 |  0.5 |        0 |            5.4
-   9 |       2 |        2 |        -2 |      -3 |    6 |    8 |    1 |      0.5 |            5.9
-  10 |       2 |        3 |        -2 |      -3 |    5 |   10 |    1 |      1.5 |            6.9
-  11 |       2 |        4 |        -2 |      -3 |   10 |   14 | 0.85 |      2.5 |            7.9
-  12 |       2 |        5 |        -2 |      -3 |   -3 |   -2 |    0 |     3.35 |           8.75
-(12 rows)
-
--- q2
-SELECT * FROM pgr_withPointsVia(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    array[4, 5, 14], array[0.1, 0.5, 0.85],
-    false
-);
- seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost | route_agg_cost 
------+---------+----------+-----------+---------+------+------+------+----------+----------------
-   1 |       1 |        1 |        -1 |      -2 |   -1 |    4 |  0.1 |        0 |              0
-   2 |       1 |        2 |        -1 |      -2 |    2 |    2 |    1 |      0.1 |            0.1
-   3 |       1 |        3 |        -1 |      -2 |    3 |    5 |  0.5 |      1.1 |            1.1
-   4 |       1 |        4 |        -1 |      -2 |   -2 |   -1 |    0 |      1.6 |            1.6
-   5 |       2 |        1 |        -2 |      -3 |   -2 |    5 |  0.5 |        0 |            1.6
-   6 |       2 |        2 |        -2 |      -3 |    6 |   11 |    1 |      0.5 |            2.1
-   7 |       2 |        3 |        -2 |      -3 |   11 |   12 |    1 |      1.5 |            3.1
-   8 |       2 |        4 |        -2 |      -3 |   10 |   14 | 0.15 |      2.5 |            4.1
-   9 |       2 |        5 |        -2 |      -3 |   -3 |   -2 |    0 |     2.65 |           4.25
-(9 rows)
-
--- q3
-SELECT * FROM pgr_withPointsVia(
-    'SELECT id, source, target, cost FROM edge_table',
-    array[4, 5, 14], array[0.1, 0.5, 0.85],
-    true
-);
- seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost | route_agg_cost 
------+---------+----------+-----------+---------+------+------+------+----------+----------------
-(0 rows)
-
--- q4
-SELECT * FROM pgr_withPointsVia(
-    'SELECT id, source, target, cost FROM edge_table',
-    array[4, 5, 14], array[0.1, 0.5, 0.85],
-    false
-);
- seq | path_id | path_seq | start_vid | end_vid | node | edge | cost | agg_cost | route_agg_cost 
------+---------+----------+-----------+---------+------+------+------+----------+----------------
-   1 |       1 |        1 |        -1 |      -2 |   -1 |    4 |  0.9 |        0 |              0
-   2 |       1 |        2 |        -1 |      -2 |    5 |    8 |    1 |      0.9 |            0.9
-   3 |       1 |        3 |        -1 |      -2 |    6 |    5 |  0.5 |      1.9 |            1.9
-   4 |       1 |        4 |        -1 |      -2 |   -2 |   -1 |    0 |      2.4 |            2.4
-   5 |       2 |        1 |        -2 |      -3 |   -2 |    5 |  0.5 |        0 |            2.4
-   6 |       2 |        2 |        -2 |      -3 |    6 |    8 |    1 |      0.5 |            2.9
-   7 |       2 |        3 |        -2 |      -3 |    5 |   10 |    1 |      1.5 |            3.9
-   8 |       2 |        4 |        -2 |      -3 |   10 |   14 | 0.85 |      2.5 |            4.9
-   9 |       2 |        5 |        -2 |      -3 |   -3 |   -2 |    0 |     3.35 |           5.75
-(9 rows)
-
--- q5
diff --git a/src/withPoints/doc/pgr_withPoints.rst b/src/withPoints/doc/pgr_withPoints.rst
deleted file mode 100644
index 86291e5..0000000
--- a/src/withPoints/doc/pgr_withPoints.rst
+++ /dev/null
@@ -1,302 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_withPoints:
-
-pgr_withPoints - Proposed
-===============================================================================
-
-
-Name
--------------------------------------------------------------------------------
-
-``pgr_withPoints`` - Returns the shortest path in a graph with additional temporary vertices.
-
-
-.. include:: proposed.rst
-   :start-after: begin-warning
-   :end-before: end-warning
-
-
-.. figure:: images/boost-inside.jpeg
-   :target: http://www.boost.org/libs/graph
-
-   Boost Graph Inside
-
-.. rubric:: Availability: 2.2.0
-
-Synopsis
--------------------------------------------------------------------------------
-
-Modify the graph to include points defined by points_sql.
-Using Dijkstra algorithm, find the shortest path(s)
-
-Characteristics:
--------------------------------------------------------------------------------
-
-The main Characteristics are:
-
-  - Process is done only on edges with positive costs.
-  - Vertices of the graph are:
-
-    - **positive** when it belongs to the edges_sql
-    - **negative** when it belongs to the points_sql
-
-  - Values are returned when there is a path.
-
-   - When the starting vertex and ending vertex are the same, there is no path.
-
-    - The agg_cost the non included values (v, v) is 0
-
-   - When the starting vertex and ending vertex are the different and there is no path:
-
-    - The agg_cost the non included values (u, v) is ∞
-
-  - For optimization purposes, any duplicated value in the start_vids or end_vids are ignored.
-  - The returned values are ordered:
-
-    - start_vid ascending
-    - end_vid ascending
-
-  - Running time: :math:`O(|start\_vids|∗(V \log V + E))`
-
-
-Signature Summary
------------------
-
-.. code-block:: none
-
-    pgr_withPoints(edges_sql, points_sql, start_vid, end_vid)
-    pgr_withPoints(edges_sql, points_sql, start_vid, end_vid, directed, driving_side, details)
-    pgr_withPoints(edges_sql, points_sql, start_vid, end_vids, directed, driving_side, details)
-    pgr_withPoints(edges_sql, points_sql, start_vids, end_vid, directed, driving_side, details)
-    pgr_withPoints(edges_sql, points_sql, start_vids, end_vids, directed, driving_side, details)
-    RETURNS SET OF (seq, path_seq, [start_vid,] [end_vid,] node, edge, cost, agg_cost)
-
-
-Signatures
--------------------
-
-.. index::
-    single: withPoints(Minimal Use) - Proposed
-
-Minimal Use
-.....................................................................
-
-The minimal signature:
-    - Is for a **directed** graph.
-    - The driving side is set as **b** both. So arriving/departing to/from the point(s) can be in any direction.
-    - No **details** are given about distance of other points of points_sql query.
-
-.. code-block:: none
-
-    pgr_withPoints(edges_sql, points_sql, start_vid, end_vid)
-    RETURNS SET OF (seq, path_seq, node, edge, cost, agg_cost)
-
-
-:Example: From point 1 to point 3
-
-.. literalinclude:: doc-pgr_withPoints.queries
-   :start-after: --e1
-   :end-before: --e2
-
-.. index::
-    single: withPoints(One to One) - Proposed
-
-One to One
-.....................................................................
-
-
-.. code-block:: none
-
-    pgr_withPoints(edges_sql, points_sql, start_vid, end_vid,
-        directed:=true, driving_side:='b', details:=false)
-    RETURNS SET OF (seq, path_seq, node, edge, cost, agg_cost)
-
-
-:Example: From point 1 to vertex 3
-
-.. literalinclude:: doc-pgr_withPoints.queries
-   :start-after: --e2
-   :end-before: --e3
-
-
-
-.. index::
-    single: withPoints(One to Many) - Proposed
-
-One to Many
-.....................................................................
-
-.. code-block:: none
-
-    pgr_withPoints(edges_sql, points_sql, start_vid, end_vids,
-        directed:=true, driving_side:='b', details:=false)
-    RETURNS SET OF (seq, path_seq, end_vid, node, edge, cost, agg_cost)
-
-
-:Example: From point 1 to point 3 and vertex 5
-
-.. literalinclude:: doc-pgr_withPoints.queries
-   :start-after: --e3
-   :end-before: --e4
-
-
-
-.. index::
-    single: withPoints(Many to One) - Proposed
-
-Many to One
-.....................................................................
-
-.. code-block:: none
-
-    pgr_withPoints(edges_sql, points_sql, start_vids, end_vid,
-        directed:=true, driving_side:='b', details:=false)
-    RETURNS SET OF (seq, path_seq, start_vid, node, edge, cost, agg_cost)
-
-
-:Example: From point 1 and vertex 2  to point 3
-
-.. literalinclude:: doc-pgr_withPoints.queries
-   :start-after: --e4
-   :end-before: --e5
-
-.. index::
-    single: withPoints(Many to Many) - Proposed
-
-Many to Many
-.....................................................................
-
-
-.. code-block:: none
-
-    pgr_withPoints(edges_sql, points_sql, start_vids, end_vids,
-        directed:=true, driving_side:='b', details:=false)
-    RETURNS SET OF (seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)
-
-
-:Example: From point 1 and vertex 2  to point 3 and vertex 7
-
-.. literalinclude:: doc-pgr_withPoints.queries
-   :start-after: --e5
-   :end-before: --q2
-
-
-
-
-Description of the Signatures
----------------------------------
-
-..
-    description of the sql queries
-
-.. include:: pgRouting-concepts.rst
-    :start-after: basic_edges_sql_start
-    :end-before: basic_edges_sql_end
-
-.. include:: pgRouting-concepts.rst
-    :start-after: points_sql_start
-    :end-before: points_sql_end
-
-
-Description of the parameters of the signatures
-.....................................................................
-
-
-================ ====================== =================================================
-Parameter        Type                   Description
-================ ====================== =================================================
-**edges_sql**    ``TEXT``               Edges SQL query as described above.
-**points_sql**   ``TEXT``               Points SQL query as described above.
-**start_vid**    ``ANY-INTEGER``        Starting vertex identifier. When negative: is a point's pid.
-**end_vid**      ``ANY-INTEGER``        Ending vertex identifier. When negative: is a point's pid.
-**start_vids**   ``ARRAY[ANY-INTEGER]`` Array of identifiers of starting vertices. When negative: is a point's pid.
-**end_vids**     ``ARRAY[ANY-INTEGER]`` Array of identifiers of ending vertices. When negative: is a point's pid.
-**directed**     ``BOOLEAN``            (optional). When ``false`` the graph is considered as Undirected. Default is ``true`` which considers the graph as Directed.
-**driving_side** ``CHAR``               (optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:
-                                          - In the right or left or
-                                          - If it doesn't matter with 'b' or NULL.
-                                          - If column not present 'b' is considered.
-
-**details**      ``BOOLEAN``            (optional). When ``true`` the results will include the points in points_sql that are in the path.
-                                        Default is ``false`` which ignores other points of the points_sql.
-================ ====================== =================================================
-
-
-Description of the return values
-.....................................................................
-
-Returns set of ``(seq, [path_seq,] [start_vid,] [end_vid,] node, edge, cost, agg_cost)``
-
-============= =========== =================================================
-Column           Type              Description
-============= =========== =================================================
-**seq**       ``INTEGER`` Row sequence.
-**path_seq**  ``INTEGER`` Path sequence that indicates the relative position on the path.
-**start_vid** ``BIGINT``  Identifier of the starting vertex. When negative: is a point's pid.
-**end_vid**   ``BIGINT``  Identifier of the ending vertex. When negative: is a point's pid.
-**node**      ``BIGINT``  Identifier of the node:
-                            - A positive value indicates the node is a vertex of edges_sql.
-                            - A negative value indicates the node is a point of points_sql.
-
-**edge**      ``BIGINT``  Identifier of the edge used to go from ``node`` to the next node in the path sequence.
-                            - ``-1`` for the last row in the path sequence.
-
-**cost**      ``FLOAT``   Cost to traverse from ``node`` using ``edge`` to the next ``node`` in the path sequence.
-                            - ``0`` for the last row in the path sequence.
-
-**agg_cost**  ``FLOAT``   Aggregate cost from ``start_pid`` to ``node``.
-                            - ``0`` for the first row in the path sequence.
-
-============= =========== =================================================
-
-
-
-Examples
---------------------------------------------------------------------------------------
-
-:Example: Which path (if any) passes in front of point 6 or vertex 6 with **right** side driving topology.
-
-.. literalinclude:: doc-pgr_withPoints.queries
-   :start-after: --q2
-   :end-before: --q3
-
-:Example: Which path (if any) passes in front of point 6 or vertex 6 with **left** side driving topology.
-
-.. literalinclude:: doc-pgr_withPoints.queries
-   :start-after: --q3
-   :end-before: --q4
-
-:Example: Many to many example with a twist: on undirected graph and showing details.
-
-.. literalinclude:: doc-pgr_withPoints.queries
-   :start-after: --q4
-   :end-before: --q5
-
-
-The queries use the :ref:`sampledata` network.
-
-
-
-.. rubric:: History
-
-* Proposed in version 2.2
-
-
-See Also
--------------------------------------------------------------------------------
-
-* :ref:`withPoints`
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
-
diff --git a/src/withPoints/doc/pgr_withPointsCost.rst b/src/withPoints/doc/pgr_withPointsCost.rst
deleted file mode 100644
index 9c15cd4..0000000
--- a/src/withPoints/doc/pgr_withPointsCost.rst
+++ /dev/null
@@ -1,295 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_withPointsCost:
-
-pgr_withPointsCost - Proposed
-===============================================================================
-
-
-Name
--------------------------------------------------------------------------------
-
-``pgr_withPointsCost`` - Calculates the shortest path and returns only the aggregate cost of the shortest path(s) found, for the combination of points given.
-
-
-.. include:: proposed.rst
-   :start-after: begin-warning
-   :end-before: end-warning
-
-
-.. figure:: images/boost-inside.jpeg
-   :target: http://www.boost.org/libs/graph
-
-   Boost Graph Inside
-
-.. rubric:: Availability: 2.2.0
-
-Synopsis
--------------------------------------------------------------------------------
-
-Modify the graph to include points defined by points_sql.
-Using Dijkstra algorithm, return only the aggregate cost of the shortest path(s) found.
-
-Characteristics:
-----------------
-
-The main Characteristics are:
-  - It does not return a path.
-  - Returns the sum of the costs of the shortest path for pair combination of vertices in the modified graph.
-  - Vertices of the graph are:
-
-    - **positive** when it belongs to the edges_sql
-    - **negative** when it belongs to the points_sql
-
-  - Process is done only on edges with positive costs.
-  - Values are returned when there is a path.
-
-    - The returned values are in the form of a set of `(start_vid, end_vid, agg_cost)`.
-
-    - When the starting vertex and ending vertex are the same, there is no path.
-
-      - The `agg_cost` in the non included values `(v, v)` is `0`
-
-    - When the starting vertex and ending vertex are the different and there is no path.
-
-      - The `agg_cost` in the non included values `(u, v)` is :math:`\infty`
-
-  - If the values returned are stored in a table, the unique index would be the pair:
-    `(start_vid, end_vid)`.
-
-  - For undirected graphs, the results are symmetric.
-
-    - The  `agg_cost` of `(u, v)` is the same as for `(v, u)`.
-
-  - For optimization purposes, any duplicated value in the `start_vids` or `end_vids` is ignored.
-
-  - The returned values are ordered:
-
-    - `start_vid` ascending
-    - `end_vid` ascending
-
-  - Running time: :math:`O(| start\_vids | * (V \log V + E))`
-
-
-Signature Summary
------------------
-
-.. code-block:: none
-
-    pgr_withPointsCost(edges_sql, points_sql, start_vid, end_vid, directed, driving_side)
-    pgr_withPointsCost(edges_sql, points_sql, start_vid, end_vids, directed, driving_side)
-    pgr_withPointsCost(edges_sql, points_sql, start_vids, end_vid, directed, driving_side)
-    pgr_withPointsCost(edges_sql, points_sql, start_vids, end_vids, directed, driving_side)
-    RETURNS SET OF (start_vid, end_vid, agg_cost)
-
-.. note:: There is no **details** flag, unlike the other members of the withPoints family of functions.
-
-
-Signatures
-------------
-
-.. index::
-    single: withPointsCost(Minimal Use) - proposed
-
-Minimal Use
-.........................................
-
-The minimal signature:
-    - Is for a **directed** graph.
-    - The driving side is set as **b** both. So arriving/departing to/from the point(s) can be in any direction.
-
-.. code-block:: none
-
-    pgr_withPointsCost(edges_sql, points_sql, start_vid, end_vid)
-    RETURNS SET OF (start_vid, end_vid, agg_cost)
-
-
-:Example:
-
-.. literalinclude:: doc-pgr_withPointsCost.queries
-   :start-after: --e1
-   :end-before: --e2
-
-.. index::
-    single: withPointsCost(One To One) - proposed
-
-One to One
-.........................................
-
-
-.. code-block:: none
-
-    pgr_withPointsCost(edges_sql, points_sql, start_vid, end_vid,
-        directed:=true, driving_side:='b')
-    RETURNS SET OF (seq, node, edge, cost, agg_cost)
-
-
-:Example:
-
-.. literalinclude:: doc-pgr_withPointsCost.queries
-   :start-after: --e2
-   :end-before: --e3
-
-
-.. index::
-    single: withPointsCost(One To Many) - proposed
-
-One to Many
-.........................................
-
-
-.. code-block:: none
-
-    pgr_withPointsCost(edges_sql, points_sql, start_vid, end_vids,
-        directed:=true, driving_side:='b')
-    RETURNS SET OF (start_vid, end_vid, agg_cost)
-
-
-:Example:
-
-.. literalinclude:: doc-pgr_withPointsCost.queries
-   :start-after: --e3
-   :end-before: --e4
-
-
-.. index::
-    single: withPointsCost(Many To One) - proposed
-
-Many to One
-.........................................
-
-.. code-block:: none
-
-    pgr_withPointsCost(edges_sql, points_sql, start_vids, end_vid,
-        directed:=true, driving_side:='b')
-    RETURNS SET OF (start_vid, end_vid, agg_cost)
-
-
-:Example:
-
-.. literalinclude:: doc-pgr_withPointsCost.queries
-   :start-after: --e4
-   :end-before: --e5
-
-.. index::
-    single: withPointsCost(Many To Many) - proposed
-
-Many to Many
-.........................................
-
-.. code-block:: none
-
-    pgr_withPointsCost(edges_sql, points_sql, start_vids, end_vids,
-        directed:=true, driving_side:='b')
-    RETURNS SET OF (start_vid, end_vid, agg_cost)
-
-
-:Example:
-
-.. literalinclude:: doc-pgr_withPointsCost.queries
-   :start-after: --e5
-   :end-before: --q2
-
-
-
-
-Description of the Signatures
----------------------------------
-
-..
-    description of the sql queries
-
-.. include:: pgRouting-concepts.rst
-    :start-after: basic_edges_sql_start
-    :end-before: basic_edges_sql_end
-
-.. include:: pgRouting-concepts.rst
-    :start-after: points_sql_start
-    :end-before: points_sql_end
-
-
-Description of the parameters of the signatures
-.................................................
-
-
-================ ====================== =================================================
-Parameter        Type                   Description
-================ ====================== =================================================
-**edges_sql**    ``TEXT``               Edges SQL query as described above.
-**points_sql**   ``TEXT``               Points SQL query as described above.
-**start_vid**    ``ANY-INTEGER``        Starting vertex identifier. When negative: is a point's pid.
-**end_vid**      ``ANY-INTEGER``        Ending vertex identifier. When negative: is a point's pid.
-**start_vids**   ``ARRAY[ANY-INTEGER]`` Array of identifiers of starting vertices. When negative: is a point's pid.
-**end_vids**     ``ARRAY[ANY-INTEGER]`` Array of identifiers of ending vertices. When negative: is a point's pid.
-**directed**     ``BOOLEAN``            (optional). When ``false`` the graph is considered as Undirected. Default is ``true`` which considers the graph as Directed.
-**driving_side** ``CHAR``               (optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:
-                                          - In the right or left or
-                                          - If it doesn't matter with 'b' or NULL.
-                                          - If column not present 'b' is considered.
-
-================ ====================== =================================================
-
-
-Description of the return values
-.................................................
-
-Returns set of ``(start_vid, end_vid, agg_cost)``
-
-============= =========== =================================================
-Column           Type              Description
-============= =========== =================================================
-**start_vid** ``BIGINT``  Identifier of the starting vertex. When negative: is a point's pid.
-**end_vid**   ``BIGINT``  Identifier of the ending point. When negative: is a point's pid.
-**agg_cost**  ``FLOAT``   Aggregate cost from ``start_vid`` to ``end_vid``.
-============= =========== =================================================
-
-
-
-Examples
---------------------------------------------------------------------------------------
-
-:Example: With **right** side driving topology.
-
-.. literalinclude:: doc-pgr_withPointsCost.queries
-   :start-after: --q2
-   :end-before: --q3
-
-:Example: With **left** side driving topology.
-
-.. literalinclude:: doc-pgr_withPointsCost.queries
-   :start-after: --q3
-   :end-before: --q4
-
-:Example: Does not matter driving side.
-
-.. literalinclude:: doc-pgr_withPointsCost.queries
-   :start-after: --q4
-   :end-before: --q5
-
-
-The queries use the :ref:`sampledata` network.
-
-
-
-.. rubric:: History
-
-* Proposed in version 2.2
-
-
-See Also
--------------------------------------------------------------------------------
-
-* :ref:`withPoints`
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
-
diff --git a/src/withPoints/doc/pgr_withPointsDD.rst b/src/withPoints/doc/pgr_withPointsDD.rst
deleted file mode 100644
index 62bac3d..0000000
--- a/src/withPoints/doc/pgr_withPointsDD.rst
+++ /dev/null
@@ -1,219 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_withPointsDD:
-
-pgr_withPointsDD - Proposed
-===============================================================================
-
-
-Name
--------------------------------------------------------------------------------
-
-``pgr_withPointsDD`` - Returns the driving distance from a starting point.
-
-
-.. include:: proposed.rst
-   :start-after: begin-warning
-   :end-before: end-warning
-
-
-.. figure:: images/boost-inside.jpeg
-   :target: http://www.boost.org/libs/graph
-
-   Boost Graph Inside
-
-.. rubric:: Availability: 2.2.0
-
-Synopsis
--------------------------------------------------------------------------------
-
-Modify the graph to include points and
-using Dijkstra algorithm, extracts all the nodes and points that have costs less
-than or equal to the value ``distance`` from the starting point.
-The edges extracted will conform the corresponding spanning tree.
-
-
-Signature Summary
------------------
-
-.. code-block:: none
-
-    pgr_withPointsDD(edges_sql, points_sql, start_vid, distance)
-    pgr_withPointsDD(edges_sql, points_sql, start_vid, distance, directed, driving_side, details)
-    pgr_withPointsDD(edges_sql, points_sql, start_vids, distance, directed, driving_side, details, equicost)
-    RETURNS SET OF (seq, node, edge, cost, agg_cost)
-
-Signatures
-------------
-
-.. index::
-    single: withPointsDD(Minimal Use) - proposed
-
-Minimal Use
-..................................
-
-The minimal signature:
-    - Is for a **directed** graph.
-    - The driving side is set as **b** both. So arriving/departing to/from the point(s) can be in any direction.
-    - No **details** are given about distance of other points of the query.
-
-.. code-block:: none
-
-    pgr_withPointsDD(edges_sql, points_sql, start_vid, distance)
-        directed:=true, driving_side:='b', details:=false)
-    RETURNS SET OF (seq, node, edge, cost, agg_cost)
-
-
-:Example:
-
-.. literalinclude:: doc-pgr_withPointsDD.queries
-   :start-after: --q1
-   :end-before: --q2
-
-.. index::
-    single: withPointsDD(Single Start Vertex) - proposed
-
-Driving distance from a single point
-..............................................
-
-Finds the driving distance depending on the optional parameters setup.
-
-.. code-block:: none
-
-    pgr_withPointsDD(edges_sql, points_sql, start_vids, distance,
-        directed:=true, driving_side:='b', details:=false)
-    RETURNS SET OF (seq, node, edge, cost, agg_cost)
-
-:Example: Right side driving topology
-
-.. literalinclude:: doc-pgr_withPointsDD.queries
-   :start-after: --q2
-   :end-before: --q3
-
-.. index::
-    single: withPointsDD(Multiple Starting Vertices) - proposed
-
-Driving distance from many starting points
-..................................................
-
-Finds the driving distance depending on the optional parameters setup.
-
-.. code-block:: none
-
-    pgr_withPointsDD(edges_sql, points_sql, start_vids, distance,
-        directed:=true, driving_side:='b', details:=false, equicost:=false)
-    RETURNS SET OF (seq, node, edge, cost, agg_cost)
-
-
-
-
-Description of the Signatures
-----------------------------------
-
-..
-    description of the sql queries
-
-
-.. include:: pgRouting-concepts.rst
-    :start-after: basic_edges_sql_start
-    :end-before: basic_edges_sql_end
-
-.. include:: pgRouting-concepts.rst
-    :start-after: points_sql_start
-    :end-before: points_sql_end
-
-
-Description of the parameters of the signatures
-........................................................
-
-
-================ ================= =================================================
-Parameter        Type              Description
-================ ================= =================================================
-**edges_sql**    ``TEXT``          Edges SQL query as described above.
-**points_sql**   ``TEXT``          Points SQL query as described above.
-**start_vid**    ``ANY-INTEGER``   Starting point id
-**distance**     ``ANY-NUMERICAL`` Distance from the start_pid
-**directed**     ``BOOLEAN``       (optional). When ``false`` the graph is considered as Undirected. Default is ``true`` which considers the graph as Directed.
-**driving_side** ``CHAR``          (optional). Value in ['b', 'r', 'l', NULL] indicating if the driving side is:
-                                     - In the right or left or
-                                     - If it doesn't matter with 'b' or NULL.
-                                     - If column not present 'b' is considered.
-
-**details**      ``BOOLEAN``       (optional). When ``true`` the results will include the driving distance to the points with in the ``distance``.
-                                   Default is ``false`` which ignores other points of the points_sql.
-**equicost**     ``BOOLEAN``       (optional). When ``true`` the nodes will only appear in the closest start_v list. Default is ``false`` which resembles several calls using the single starting point signatures. Tie brakes are arbitrary.
-================ ================= =================================================
-
-
-Description of the return values
-........................................................
-
-Returns set of ``(seq, node, edge, cost, agg_cost)``
-
-============ =========== =================================================
-Column           Type              Description
-============ =========== =================================================
-**seq**      ``INT``     row sequence.
-**node**     ``BIGINT``  Identifier of the node within the Distance from ``start_pid``. If ``details =: true`` a negative value is the identifier of a point.
-**edge**     ``BIGINT``  Identifier of the edge used to go from ``node`` to the next node in the path sequence.
-                           - ``-1`` when ``start_vid`` = ``node``.
-
-**cost**     ``FLOAT``   Cost to traverse ``edge``.
-                           - ``0`` when ``start_vid`` = ``node``.
-
-**agg_cost** ``FLOAT``   Aggregate cost from ``start_vid`` to ``node``.
-                           - ``0`` when ``start_vid`` = ``node``.
-
-============ =========== =================================================
-
-
-
-Examples for queries marked as ``directed`` with ``cost`` and ``reverse_cost`` columns
---------------------------------------------------------------------------------------
-
-The examples in this section use the following :ref:`fig1`
-
-:Example: Left side driving topology
-
-.. literalinclude:: doc-pgr_withPointsDD.queries
-   :start-after: --q3
-   :end-before: --q4
-
-:Example: Does not matter driving side.
-
-.. literalinclude:: doc-pgr_withPointsDD.queries
-   :start-after: --q4
-   :end-before: --q5
-
-
-
-
-The queries use the :ref:`sampledata` network.
-
-
-
-.. rubric:: History
-
-* Proposed in version 2.2
-
-
-See Also
--------------------------------------------------------------------------------
-
-* :ref:`pgr_drivingDistance` - Driving distance using dijkstra.
-* :ref:`pgr_alphashape` - Alpha shape computation.
-* :ref:`pgr_points_as_polygon` - Polygon around set of points.
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
-
diff --git a/src/withPoints/doc/pgr_withPointsKSP.rst b/src/withPoints/doc/pgr_withPointsKSP.rst
deleted file mode 100644
index eeb0a82..0000000
--- a/src/withPoints/doc/pgr_withPointsKSP.rst
+++ /dev/null
@@ -1,194 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_withPointsKSP:
-
-pgr_withPointsKSP - Proposed
-===============================================================================
-
-
-Name
--------------------------------------------------------------------------------
-
-``pgr_withPointsKSP`` - Find the K shortest paths using Yen's algorithm.
-
-
-.. include:: proposed.rst
-   :start-after: begin-warning
-   :end-before: end-warning
-
-.. figure:: images/boost-inside.jpeg
-   :target: http://www.boost.org/libs/graph
-
-   Boost Graph Inside
-
-.. rubric:: Availability: 2.2.0
-
-Synopsis
--------------------------------------------------------------------------------
-
-Modifies the graph to include the points defined in the ``points_sql`` and
-using Yen algorithm, finds the K shortest paths.
-
-
-Signature Summary
------------------
-
-.. code-block:: none
-
-    pgr_withPointsKSP(edges_sql, points_sql, start_pid, end_pid, K)
-    pgr_withPointsKSP(edges_sql, points_sql, start_pid, end_pid, K, directed, heap_paths, driving_side, details)
-    RETURNS SET OF (seq, path_id, path_seq, node, edge, cost, agg_cost)
-
-Signatures
------------
-
-.. index::
-    single: withPointsKSP(Minimal Signature) - Proposed
-
-Minimal Usage
-....................................
-
-The minimal usage:
-    - Is for a **directed** graph.
-    - The driving side is set as **b** both. So arriving/departing to/from the point(s) can be in any direction.
-    - No **details** are given about distance of other points of the query.
-    - No **heap paths** are returned.
-
-.. code-block:: none
-
-    pgr_withPointsKSP(edges_sql, points_sql, start_pid, end_pid, K)
-    RETURNS SET OF (seq, path_id, path_seq, node, edge, cost, agg_cost)
-
-
-:Example:
-
-.. literalinclude:: doc-pgr_withPointsKSP.queries
-   :start-after: --q1
-   :end-before: --q2
-
-.. index::
-    single: withPointsKSP(Complete Signature) - Proposed
-
-Complete Signature
-....................................
-
-Finds the K shortest paths depending on the optional parameters setup.
-
-.. code-block:: none
-
-    pgr_withPointsKSP(edges_sql, points_sql, start_pid, end_pid, K,
-        directed:=true, heap_paths:=false, driving_side:='b', details:=false)
-    RETURNS SET OF (seq, path_id, path_seq, node, edge, cost, agg_cost)
-
-
-:Example: With details.
-
-.. literalinclude:: doc-pgr_withPointsKSP.queries
-   :start-after: --q2
-   :end-before: --q3
-
-Description of the Signatures
--------------------------------
-
-
-..
-    description of the sql queries
-
-.. include:: pgRouting-concepts.rst
-    :start-after: basic_edges_sql_start
-    :end-before: basic_edges_sql_end
-
-.. include:: pgRouting-concepts.rst
-    :start-after: points_sql_start
-    :end-before: points_sql_end
-
-
-
-Description of the parameters of the signatures
-..............................................................
-
-
-================ ================= =================================================
-Parameter        Type              Description
-================ ================= =================================================
-**edges_sql**    ``TEXT``          Edges SQL query as described above.
-**points_sql**   ``TEXT``          Points SQL query as described above.
-**start_pid**    ``ANY-INTEGER``   Starting point id.
-**end_pid**      ``ANY-INTEGER``   Ending point id.
-**K**            ``INTEGER``       Number of shortest paths.
-**directed**     ``BOOLEAN``       (optional). When ``false`` the graph is considered as Undirected. Default is ``true`` which considers the graph as Directed.
-**heap_paths**   ``BOOLEAN``       (optional). When ``true`` the paths calculated to get the shortests paths will be returned also. Default is ``false`` only the K shortest paths are returned.
-**driving_side** ``CHAR``          (optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:
-                                     - In the right or left or
-                                     - If it doesn't matter with 'b' or NULL.
-                                     - If column not present 'b' is considered.
-
-**details**      ``BOOLEAN``       (optional). When ``true`` the results will include the driving distance to the points with in the ``distance``.
-                                   Default is ``false`` which ignores other points of the points_sql.
-================ ================= =================================================
-
-
-Description of the return values
-..............................................................
-
-Returns set of ``(seq, path_id, path_seq, node, edge, cost, agg_cost)``
-
-============ =========== =================================================
-Column           Type              Description
-============ =========== =================================================
-**seq**      ``INTEGER`` Row sequence.
-**path_seq** ``INTEGER`` Relative position in the path of node and edge. Has value 1 for the beginning of a path.
-**path_id**  ``INTEGER``  Path identifier. The ordering of the paths: For two paths i, j if i < j then agg_cost(i) <= agg_cost(j).
-**node**     ``BIGINT``  Identifier of the node in the path. Negative values are the identifiers of a point.
-**edge**     ``BIGINT``  Identifier of the edge used to go from ``node`` to the next node in the path sequence.
-                           - ``-1`` for the last row in the path sequence.
-
-**cost**     ``FLOAT``   Cost to traverse from ``node`` using ``edge`` to the next ``node`` in the path sequence.
-                           - ``0`` for the last row in the path sequence.
-
-**agg_cost** ``FLOAT``   Aggregate cost from ``start_pid`` to ``node``.
-                           - ``0`` for the first row in the path sequence.
-
-============ =========== =================================================
-
-
-
-Examples
---------------------------------------------------------------------------------------
-
-:Example: Left side driving topology with details.
-
-.. literalinclude:: doc-pgr_withPointsKSP.queries
-   :start-after: --q3
-   :end-before: --q4
-
-:Example: Right side driving topology with heap paths and details.
-
-.. literalinclude:: doc-pgr_withPointsKSP.queries
-   :start-after: --q4
-   :end-before: --q5
-
-The queries use the :ref:`sampledata` network.
-
-.. rubric:: History
-
-* Proposed in version 2.2
-
-
-See Also
--------------------------------------------------------------------------------
-
-* :ref:`withPoints`
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
-
diff --git a/src/withPoints/doc/pgr_withPointsVia.rst b/src/withPoints/doc/pgr_withPointsVia.rst
deleted file mode 100644
index 1f58ef9..0000000
--- a/src/withPoints/doc/pgr_withPointsVia.rst
+++ /dev/null
@@ -1,200 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-.. _pgr_withPointsVia:
-
-pgr_withPointsVia - Proposed
-===============================================================================
-
-
-Name
--------------------------------------------------------------------------------
-
-``pgr_withPointsVia`` - Get a path using the vertices/points indicated
-
-
-.. include:: proposed.rst
-   :start-after: begin-warning
-   :end-before: end-warning
-
-
-
-.. figure:: images/boost-inside.jpeg
-   :target: http://www.boost.org/libs/graph
-
-   Boost Graph Inside
-
-.. rubric:: Availability: PENDING.
-
-Synopsis
--------------------------------------------------------------------------------
-
-Modify the graph to include points and
-using Dijkstra algorithm, extracts all the nodes and points that have costs less
-than or equal to the value ``distance`` from the starting point.
-The edges extracted will conform the corresponding spanning tree.
-
-
-Signature Summary
------------------
-
-.. code-block:: none
-
-	withPointsVia(edges_sql, points_sql, start_pid, distance)
-	withPointsVia(edges_sql, points_sql, start_pid, distance, directed, driving_side, details)
-    RETURNS SET OF (seq, node, edge, cost, agg_cost)
-
-Signatures
------------------
-
-.. index::
-	single: withPointsVia(edges_sql, points_sql, start_pid, distance) -- proposed
-
-Minimal signature
-...................................................
-
-The minimal signature:
-    - Is for a **directed** graph.
-    - The driving side is set as **b** both. So arriving/departing to/from the point(s) can be in any direction.
-    - No **details** are given about distance of other points of the query.
-
-.. code-block:: none
-
-	withPointsVia(edges_sql, points_sql, start_pid, distance)
-    RETURNS SET OF (seq, node, edge, cost, agg_cost)
-
-
-:Example:
-
-.. literalinclude:: doc-pgr_withPointsVia.queries
-   :start-after: --q1
-   :end-before: --q2
-
-.. index::
-	single: withPointsVia(edges_sql, points_sql, start_pid, distance, directed, driving_side, details) -- proposed
-
-Driving distance from a single point
-...................................................
-
-Finds the driving distance depending on the optional parameters setup.
-
-.. code-block:: none
-
-	pgr_withPointsVia(edges_sql, points_sql, start_pid, distance,
-        directed := true, driving_side := 'b', details := false)
-    RETURNS SET OF (seq, node, edge, cost, agg_cost)
-
-
-:Example: Right side driving topology
-
-.. literalinclude:: doc-pgr_withPointsVia.queries
-   :start-after: --q2
-   :end-before: --q3
-
-Description of the Signatures
----------------------------------------------------
-
-
-..
-    description of the sql queries
-
-.. include:: pgRouting-concepts.rst
-    :start-after: basic_edges_sql_start
-    :end-before: basic_edges_sql_end
-
-.. include:: pgRouting-concepts.rst
-    :start-after: points_sql_start
-    :end-before: points_sql_end
-
-
-
-Description of the parameters of the signatures
-...................................................
-
-
-================ ================= =================================================
-Parameter        Type              Description
-================ ================= =================================================
-**edges_sql**    ``TEXT``          Edges SQL query as described above.
-**points_sql**   ``TEXT``          Points SQL query as described above.
-**start_pid**    ``ANY-INTEGER``   Starting point id.
-**distance**     ``ANY_NUMERICAL`` Distance from the start_pid
-**directed**     ``BOOLEAN``       (optional). When ``false`` the graph is considered as Undirected. Default is ``true`` which considers the graph as Directed.
-**driving_side** ``CHAR``          (optional) Value in ['b', 'r', 'l', NULL] indicating if the driving side is:
-                                     - In the right or left or
-                                     - If it doesn't matter with 'b' or NULL.
-                                     - If column not present 'b' is considered.
-
-**details**      ``BOOLEAN``       (optional). When ``true`` the results will include the driving distance to the points with in Distance.
-                                   Default is ``false`` which ignores other points of the points_sql.
-================ ================= =================================================
-
-
-Description of the return values
-...................................................
-
-Returns set of ``(seq, node, edge, cost, agg_cost)``
-
-============ =========== =================================================
-Column           Type              Description
-============ =========== =================================================
-**seq**      ``INT``     row sequence.
-**node**     ``BIGINT``  Identifier of the node within the Distance from ``start_pid``. If ``details =: true`` a negative value is the identifier of a point.
-**edge**     ``BIGINT``  Identifier of the edge used to go from ``node`` to the next node in the path sequence.
-                           - ``-1`` for the last row in the path sequence.
-
-**cost**     ``FLOAT``   Cost to traverse from ``node`` using ``edge`` to the next ``node`` in the path sequence.
-                           - ``0`` for the last row in the path sequence.
-
-**agg_cost** ``FLOAT``   Aggregate cost from ``start_pid`` to ``node``.
-                           - ``0`` for the first row in the path sequence.
-
-============ =========== =================================================
-
-Examples for queries marked as ``directed`` with ``cost`` and ``reverse_cost`` columns
---------------------------------------------------------------------------------------
-
-The examples in this section use the following :ref:`fig1`
-
-:Example: Left side driving topology
-
-.. literalinclude:: doc-pgr_withPointsVia.queries
-   :start-after: --q3
-   :end-before: --q4
-
-:Example: Does not matter driving side.
-
-.. literalinclude:: doc-pgr_withPointsVia.queries
-   :start-after: --q4
-   :end-before: --q5
-
-
-
-
-
-
-
-.. rubric:: History
-
-* Proposed in version 2.2
-
-
-See Also
--------------------------------------------------------------------------------
-
-* :ref:`pgr_drivingDistance` - Driving distance using dijkstra.
-* :ref:`pgr_alphashape` - Alpha shape computation.
-* :ref:`pgr_points_as_polygon` - Polygon around set of points.
-* The queries use the :ref:`sampledata` network.
-
-.. rubric:: Indices and tables
-
-* :ref:`genindex`
-* :ref:`search`
-
diff --git a/src/withPoints/doc/withPoints-family.rst b/src/withPoints/doc/withPoints-family.rst
deleted file mode 100644
index 192e8b7..0000000
--- a/src/withPoints/doc/withPoints-family.rst
+++ /dev/null
@@ -1,188 +0,0 @@
-..
-   ****************************************************************************
-    pgRouting Manual
-    Copyright(c) pgRouting Contributors
-
-    This documentation is licensed under a Creative Commons Attribution-Share
-    Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
-   ****************************************************************************
-
-
-.. _withPoints:
-
-withPoints - Family of functions
-===============================================================================
-
-When points are also given as input:
-
-.. index from here
-
-- :ref:`pgr_withPoints` - Route from/to points anywhere on the graph.
-- :ref:`pgr_withPointsCost` - Costs of the shortest paths.
-- :ref:`pgr_withPointsCostMatrix` - Costs of the shortest paths.
-- :ref:`pgr_withPointsKSP` - K shortest paths.
-- :ref:`pgr_withPointsDD` - Driving distance.
-
-.. index to here
-
-.. toctree::
-    :hidden:
-
-    pgr_withPoints
-    pgr_withPointsCost
-    pgr_withPointsCostMatrix
-    pgr_withPointsKSP
-    pgr_withPointsDD
-
-
-
-.. include:: proposed.rst
-   :start-after: begin-warning
-   :end-before: end-warning
-
-
-
-
-Images
---------------
-
-The squared vertices are the temporary vertices, The temporary vertices are added acordng to the
-dirving side, The following images visualy show the diferences on how depending on the driving side the data is interpreted.
-
-.. rubric:: Right driving side
-
-.. image:: images/rightDrivingSide.png
-    :scale: 50%
-
-.. rubric:: Left driving side
-
-.. image:: images/leftDrivingSide.png
-    :scale: 50%
-
-.. rubric:: doesn't matter the driving side
-
-.. image:: images/noMatterDrivingSide.png
-    :scale: 50%
-
-Introduction
---------------
-
-This famly of functions was thought for routing vehicles, but might as well work
-for some other application that we can not think of.
-
-The with points family of function give you the ability to route between
-arbitrary points located outside the original graph.
-
-When given a point identified with a `pid` that its being mapped to and edge with
-an identifier `edge_id`, with a `fraction` along
-that edge (from the source to the target of the edge) and some additional
-information about which `side` of the edge the point is on, then routing
-from arbitrary points more accurately reflect routing vehicles in road networks,
-
-
-I talk about a family of functions because it includes different functionalities.
-  - pgr_withPoints is pgr_dijkstra based
-  - pgr_withPointsCost is pgr_dijkstraCost based
-  - pgr_withPointsKSP is pgr_ksp based
-  - pgr_withPointsDD is pgr_drivingDistance based
-
-In all this functions we have to take care of as many aspects as possible:
-
-- Must work for routing:
-
-    - Cars (directed graph)
-    - Pedestrians (undirected graph)
-
-- Arriving at the point:
-
-    - In either side of the street.
-    - Compulsory arrival on the side of the street where the point is located.
-
-- Countries with:
-
-    - Right side driving
-    - Left side driving
-
-- Some points are:
-
-  - Permanent, for example the set of points of clients stored in a table in the data base
-  - Temporal, for example points given through a web application
-
-- The numbering of the points are handled with negative sign.
-
-  - Original point identifiers are to be positive.
-  - Transformation to negative is done internally.
-  - For results for involving vertices identifiers
-
-    - positive sign is a vertex of the original grpah
-    - negative sign is a point of the temporary points
-
-The reason for doing this is to avoid confusion when there is a vertex with the same number as identifier as the points identifier.
-
-Graph & edges
-----------------
-
-- Let :math:`G_d(V,E)` where :math:`V` is the set of vertices and :math:`E` is the set of edges be the original directed graph.
-
-  - An edge of the original `edges_sql` is :math:`(id, source, target, cost, reverse\_cost)` will generate internally
-
-    - :math:`(id, source, target, cost)`
-    - :math:`(id, target, source, reverse\_cost)`
-
-Point Definition
-----------------
-
-- A point is defined by the quadruplet: :math:`(pid, eid, fraction, side)`
-
-  - :ped: is the point identifier
-  - :eid: is an edge id of the `edges_sql`
-  - :fraction: represents where the edge `eid` will be cut.
-  - :side: Indicates the side of the edge where the point is located.
-
-
-Creating Temporary Vertices in the Graph
-----------------------------------------
-
-For edge (15,  9,12  10, 20), & lets insert point (2, 12, 0.3, r)
-
-.. rubric:: On a right hand side driving network
-
-From first image above:
-
-  - We can arrive to the point only via vertex 9.
-  - It only afects the edge (15, 9,12, 10) so that edge is removed.
-  - Edge (15, 12,9, 20) is kept.
-  - Create new edges:
-
-    - (15, 9,-1, 3) edge from vertex 9 to point 1 has cost 3
-    - (15, -1,12, 7) edge from point 1 to vertex 12 has cost 7
-
-.. rubric:: On a left hand side driving network
-
-From second image above:
-
-  - We can arrive to the point only via vertex 12.
-  - It only afects the edge (15, 12,9 20) so that edge is removed.
-  - Edge (15, 9,12, 10) is kept.
-  - Create new edges:
-
-    - (15, 12,-1, 14) edge from vertex 12 to point 1 has cost 14
-    - (15, -1,9, 6) edge from point 1 to vertex 9 has cost 6
-
-:Remember: that fraction is from vertex 9 to vertex 12
-
-
-.. rubric:: When driving side does not matter
-
-From third image above:
-
-  - We can arrive to the point either via vertex 12 or via vertex 9
-  - Edge (15, 12,9 20) is removed.
-  - Edge (15, 9,12, 10) is removed.
-  - Create new edges:
-
-    - (15, 12,-1, 14) edge from vertex 12 to point 1 has cost 14
-    - (15, -1,9, 6) edge from point 1 to vertex 9 has cost 6
-    - (15, 9,-1, 3) edge from vertex 9 to point 1 has cost 3
-    - (15, -1,12, 7) edge from point 1 to vertex 12 has cost 7
-
diff --git a/src/withPoints/sql/CMakeLists.txt b/src/withPoints/sql/CMakeLists.txt
deleted file mode 100644
index 71af8f2..0000000
--- a/src/withPoints/sql/CMakeLists.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-# Append in local scope
-LIST(APPEND PACKAGE_SQL_FILES
-    ${CMAKE_CURRENT_SOURCE_DIR}/withPoints.sql
-    ${CMAKE_CURRENT_SOURCE_DIR}/withPointsCost.sql
-    ${CMAKE_CURRENT_SOURCE_DIR}/withPointsVia.sql
-)
-
-# set in parent scope
-SET(PACKAGE_SQL_FILES "${PACKAGE_SQL_FILES}" PARENT_SCOPE)
diff --git a/src/withPoints/sql/withPoints.sql b/src/withPoints/sql/withPoints.sql
deleted file mode 100644
index dbf876e..0000000
--- a/src/withPoints/sql/withPoints.sql
+++ /dev/null
@@ -1,264 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: withPoints.sql
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer: 
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: 
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-/*
-ONE TO ONE
-*/
-
-CREATE OR REPLACE FUNCTION _pgr_withPoints(
-    edges_sql TEXT,
-    points_sql TEXT,
-    start_pid BIGINT,
-    end_pid BIGINT,
-    directed BOOLEAN,
-    driving_side CHAR,
-    details BOOLEAN,
-
-    only_cost BOOLEAN DEFAULT false, -- gets path
-
-
-    OUT seq INTEGER,
-    OUT path_seq INTEGER,
-    OUT node BIGINT,
-    OUT edge BIGINT,
-    OUT cost FLOAT,
-    OUT agg_cost FLOAT)
-RETURNS SETOF RECORD AS
-'$libdir/${PGROUTING_LIBRARY_NAME}', 'one_to_one_withPoints'
-LANGUAGE c IMMUTABLE STRICT;
-
-/*
-ONE TO MANY
-*/
-
-CREATE OR REPLACE FUNCTION _pgr_withPoints(
-    edges_sql TEXT,
-    points_sql TEXT,
-    start_pid BIGINT,
-    end_pids ANYARRAY,
-    directed BOOLEAN,
-    driving_side CHAR,
-    details BOOLEAN,
-
-    only_cost BOOLEAN DEFAULT false, -- gets path
-
-
-    OUT seq INTEGER,
-    OUT path_seq INTEGER,
-    OUT end_pid BIGINT,
-    OUT node BIGINT,
-    OUT edge BIGINT,
-    OUT cost FLOAT,
-    OUT agg_cost FLOAT)
-RETURNS SETOF RECORD AS
-'$libdir/${PGROUTING_LIBRARY_NAME}', 'one_to_many_withPoints'
-LANGUAGE c IMMUTABLE STRICT;
-
-
-/*
-MANY TO ONE
-*/
-
-CREATE OR REPLACE FUNCTION _pgr_withPoints(
-    edges_sql TEXT,
-    points_sql TEXT,
-    start_pids ANYARRAY,
-    end_pid BIGINT,
-    directed BOOLEAN,
-    driving_side CHAR,
-    details BOOLEAN,
-
-    only_cost BOOLEAN DEFAULT false, -- gets path
-
-
-    OUT seq INTEGER,
-    OUT path_seq INTEGER,
-    OUT start_pid BIGINT,
-    OUT node BIGINT,
-    OUT edge BIGINT,
-    OUT cost FLOAT,
-    OUT agg_cost FLOAT)
-RETURNS SETOF RECORD AS
-'$libdir/${PGROUTING_LIBRARY_NAME}', 'many_to_one_withPoints'
-LANGUAGE c IMMUTABLE STRICT;
-
-
-
-
-/*
-MANY TO MANY
-*/
-
-CREATE OR REPLACE FUNCTION _pgr_withPoints(
-    edges_sql TEXT,
-    points_sql TEXT,
-    start_pids ANYARRAY,
-    end_pids ANYARRAY,
-    directed BOOLEAN,
-    driving_side CHAR,
-    details BOOLEAN,
-
-    only_cost BOOLEAN DEFAULT false, -- gets path
-
-
-    OUT seq INTEGER,
-    OUT path_seq INTEGER,
-    OUT start_pid BIGINT,
-    OUT end_pid BIGINT,
-    OUT node BIGINT,
-    OUT edge BIGINT,
-    OUT cost FLOAT,
-    OUT agg_cost FLOAT)
-RETURNS SETOF RECORD AS
-'$libdir/${PGROUTING_LIBRARY_NAME}', 'many_to_many_withPoints'
-LANGUAGE c IMMUTABLE STRICT;
-
-
-
-
-/*
-ONE TO ONE
-*/
-CREATE OR REPLACE FUNCTION pgr_withPoints(
-    edges_sql TEXT,
-    points_sql TEXT,
-    start_pid BIGINT,
-    end_pid BIGINT,
-    directed BOOLEAN DEFAULT true,
-    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
-    details BOOLEAN DEFAULT false,
-
-    OUT seq INTEGER,
-    OUT path_seq INTEGER,
-    OUT node BIGINT,
-    OUT edge BIGINT,
-    OUT cost FLOAT,
-    OUT agg_cost FLOAT)
-RETURNS SETOF RECORD AS
-$BODY$
-BEGIN
-    RETURN query SELECT *
-        FROM _pgr_withPoints($1, $2, $3, $4, $5, $6, $7);
-    END
-    $BODY$
-    LANGUAGE plpgsql VOLATILE
-    COST 100
-    ROWS 1000;
-
-
-/*
-ONE TO MANY
-*/
-CREATE OR REPLACE FUNCTION pgr_withPoints(
-    edges_sql TEXT,
-    points_sql TEXT,
-    start_pid BIGINT,
-    end_pids ANYARRAY,
-    directed BOOLEAN DEFAULT true,
-    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
-    details BOOLEAN DEFAULT false,
-
-    OUT seq INTEGER,
-    OUT path_seq INTEGER,
-    OUT end_pid BIGINT,
-    OUT node BIGINT,
-    OUT edge BIGINT,
-    OUT cost FLOAT,
-    OUT agg_cost FLOAT)
-RETURNS SETOF RECORD AS
-$BODY$
-BEGIN
-    RETURN query SELECT *
-        FROM _pgr_withPoints($1, $2, $3, $4, $5, $6, $7);
-    END
-    $BODY$
-    LANGUAGE plpgsql VOLATILE
-    COST 100
-    ROWS 1000;
-
-/*
-MANY TO ONE
-*/
-CREATE OR REPLACE FUNCTION pgr_withPoints(
-    edges_sql TEXT,
-    points_sql TEXT,
-    start_pids ANYARRAY,
-    end_pid BIGINT,
-    directed BOOLEAN DEFAULT true,
-    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
-    details BOOLEAN DEFAULT false,
-
-    OUT seq INTEGER,
-    OUT path_seq INTEGER,
-    OUT start_pid BIGINT,
-    OUT node BIGINT,
-    OUT edge BIGINT,
-    OUT cost FLOAT,
-    OUT agg_cost FLOAT)
-RETURNS SETOF RECORD AS
-$BODY$
-BEGIN
-    RETURN query SELECT *
-        FROM _pgr_withPoints($1, $2, $3, $4, $5, $6, $7);
-    END
-    $BODY$
-    LANGUAGE plpgsql VOLATILE
-    COST 100
-    ROWS 1000;
-
-/*
-MANY TO MANY
-*/
-CREATE OR REPLACE FUNCTION pgr_withPoints(
-    edges_sql TEXT,
-    points_sql TEXT,
-    start_pids ANYARRAY,
-    end_pids ANYARRAY,
-    directed BOOLEAN DEFAULT true,
-    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
-    details BOOLEAN DEFAULT false,
-
-    OUT seq INTEGER,
-    OUT path_seq INTEGER,
-    OUT start_pid BIGINT,
-    OUT end_pid BIGINT,
-    OUT node BIGINT,
-    OUT edge BIGINT,
-    OUT cost FLOAT,
-    OUT agg_cost FLOAT)
-RETURNS SETOF RECORD AS
-$BODY$
-BEGIN
-    RETURN query SELECT *
-        FROM _pgr_withPoints($1, $2, $3, $4, $5, $6, $7);
-    END
-    $BODY$
-    LANGUAGE plpgsql VOLATILE
-    COST 100
-    ROWS 1000;
diff --git a/src/withPoints/sql/withPointsCost.sql b/src/withPoints/sql/withPointsCost.sql
deleted file mode 100644
index fdf050b..0000000
--- a/src/withPoints/sql/withPointsCost.sql
+++ /dev/null
@@ -1,132 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: withPointsCost.sql
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer: 
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail: 
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-/*
-ONE TO ONE
-*/
-
-CREATE OR REPLACE FUNCTION pgr_withPointsCost(
-    edges_sql TEXT,
-    points_sql TEXT,
-    BIGINT,
-    BIGINT,
-    directed BOOLEAN DEFAULT true,
-    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
-
-    OUT start_pid BIGINT,
-    OUT end_pid BIGINT,
-    OUT agg_cost float)
-RETURNS SETOF RECORD AS
-$BODY$
-BEGIN
-    RETURN query SELECT $3, $4, a.agg_cost
-        FROM _pgr_withPoints($1, $2, $3, $4, $5, $6, TRUE, TRUE) AS a;
-END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
-
-/*
-ONE TO MANY
-*/
-
-CREATE OR REPLACE FUNCTION pgr_withPointsCost(
-    edges_sql TEXT,
-    points_sql TEXT,
-    BIGINT,
-    end_pids ANYARRAY,
-    directed BOOLEAN DEFAULT true,
-    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
-
-    OUT start_pid BIGINT,
-    OUT end_pid BIGINT,
-    OUT agg_cost float)
-RETURNS SETOF RECORD AS
-$BODY$
-BEGIN
-    RETURN query SELECT $3, a.end_pid, a.agg_cost
-        FROM _pgr_withPoints($1, $2, $3, $4, $5,  $6, TRUE, TRUE) AS a;
-END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
-
-/*
-MANY TO ONE
-*/
-
-CREATE OR REPLACE FUNCTION pgr_withPointsCost(
-    edges_sql TEXT,
-    points_sql TEXT,
-    start_pids ANYARRAY,
-    BIGINT,
-    directed BOOLEAN DEFAULT true,
-    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
-
-    OUT start_pid BIGINT,
-    OUT end_pid BIGINT,
-    OUT agg_cost float)
-RETURNS SETOF RECORD AS
-$BODY$
-BEGIN
-    RETURN query SELECT a.start_pid, $4, a.agg_cost
-        FROM _pgr_withPoints($1, $2, $3, $4, $5,  $6, TRUE, TRUE) AS a;
-END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
-
-/*
-MANY TO MANY
-*/
-
-CREATE OR REPLACE FUNCTION pgr_withPointsCost(
-    edges_sql TEXT,
-    points_sql TEXT,
-    start_pids ANYARRAY,
-    end_pids ANYARRAY,
-    directed BOOLEAN DEFAULT true,
-    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
-
-    OUT start_pid BIGINT,
-    OUT end_pid BIGINT,
-    OUT agg_cost float)
-RETURNS SETOF RECORD AS
-$BODY$
-BEGIN
-    RETURN query SELECT a.start_pid, a.end_pid, a.agg_cost
-        FROM _pgr_withPoints($1, $2, $3, $4, $5,  $6, TRUE, TRUE) AS a;
-END
-$BODY$
-LANGUAGE plpgsql VOLATILE
-COST 100
-ROWS 1000;
diff --git a/src/withPoints/sql/withPointsVia.sql b/src/withPoints/sql/withPointsVia.sql
deleted file mode 100644
index d0870cd..0000000
--- a/src/withPoints/sql/withPointsVia.sql
+++ /dev/null
@@ -1,165 +0,0 @@
-/*PGR-GNU*****************************************************************
-
-Template:
-Copyright (c) 2015 pgRouting developers
-
-Function developer:
-Copyright (c) 2015 Vicky Vergara
-vicky_vergara at hotmail.com
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-
-
-CREATE OR REPLACE FUNCTION  _pgr_withPointsVia(
-    sql text,
-    via_edges bigint[], 
-    fraction float[], 
-    directed BOOLEAN DEFAULT TRUE,
-
-    OUT seq INTEGER,
-    OUT path_id INTEGER,
-    OUT path_seq INTEGER,
-    OUT start_vid BIGINT,
-    OUT end_vid BIGINT,
-    OUT node BIGINT,
-    OUT edge BIGINT,
-    OUT cost FLOAT,
-    OUT agg_cost FLOAT,
-    OUT route_agg_cost FLOAT)
-
-  RETURNS SETOF RECORD AS
-  $BODY$
-  DECLARE
-  has_rcost boolean;
-  sql_new_vertices text := ' ';
-  sql_on_vertex text;
-  v_union text := ' ';
-  dummyrec record;
-  rec1 record;
-  via_vertices int[];
-  sql_safe text;
-  new_edges text;
-  BEGIN
-     BEGIN
-        sql_safe = 'SELECT id, source, target, cost, reverse_cost FROM ('|| sql || ') AS __a';
-
-        EXECUTE 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||sql_safe||' ) AS __b__ limit 1 ' INTO rec1;
-        has_rcost := true;
-        EXCEPTION
-          WHEN OTHERS THEN
-            has_rcost = false;
-     END;
- 
-
-      IF array_length(via_edges, 1) != array_length(fraction, 1) then
-        RAISE EXCEPTION 'The length of via_edges is different of length of via_edges';
-      END IF;
-
-      FOR i IN 1 .. array_length(via_edges, 1)
-      LOOP
-          IF fraction[i] = 0 THEN
-              sql_on_vertex := 'SELECT source FROM ('|| sql || ') __a where id = ' || via_edges[i];
-              EXECUTE sql_on_vertex into dummyrec; 
-              via_vertices[i] = dummyrec.source;
-          ELSE IF fraction[i] = 1 THEN
-              sql_on_vertex := 'SELECT target FROM ('|| sql || ') __a where id = ' || via_edges[i];
-              EXECUTE sql_on_vertex into dummyrec; 
-              via_vertices[i] = dummyrec.target;
-          ELSE
-              via_vertices[i] = -i;
-              IF has_rcost THEN
-                   sql_new_vertices = sql_new_vertices || v_union ||
-                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost,
-                              reverse_cost * (1 - ' || fraction[i] || ')  AS reverse_cost
-                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
-                             UNION
-                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost,
-                              reverse_cost *  ' || fraction[i] || '  AS reverse_cost
-                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' where id = ' || via_edges[i] || ') __a' || i ||')';
-                      v_union = ' UNION ';
-               ELSE 
-                   sql_new_vertices = sql_new_vertices || v_union ||
-                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost
-                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
-                             UNION
-                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost
-                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')';
-                      v_union = ' UNION ';
-               END IF;
-          END IF;
-          END IF;
-     END LOOP;
-
-     IF sql_new_vertices = ' ' THEN
-         new_edges := sql; 
-     ELSE
-         IF has_rcost THEN
-            new_edges:= 'WITH
-                   original AS ( ' || sql || '),
-                   the_union AS ( ' || sql_new_vertices || '),
-                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
-                         lead(cost) OVER w  - cost AS cost,
-                         lead(cost) OVER w  - cost AS reverse_cost
-                      FROM  the_union  WHERE source > 0 AND cost > 0
-                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
-                      WHERE target IS NOT NULL),
-                   second_part AS ( SELECT * FROM (SELECT id, lead(source) OVER w  AS source, source as target,
-                         reverse_cost - lead(reverse_cost) OVER w  AS cost,
-                         reverse_cost - lead(reverse_cost) OVER w  AS reverse_cost
-                      FROM  the_union  WHERE target > 0 and reverse_cost > 0
-                      WINDOW w AS (PARTITION BY id  ORDER BY reverse_cost ASC) ) as n2
-                      WHERE source IS NOT NULL),
-                   more_union AS ( SELECT * from (
-                       (SELECT * FROM original) 
-                             UNION 
-                       (SELECT * FROM the_union) 
-                             UNION 
-                       (SELECT * FROM first_part) 
-                             UNION
-                       (SELECT * FROM second_part) ) _union )
-                  SELECT *  FROM more_union';
-         ELSE
-            new_edges:= 'WITH
-                   original AS ( ' || sql || '),
-                   the_union AS ( ' || sql_new_vertices || '),
-                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
-                         lead(cost) OVER w  - cost AS cost
-                      FROM  the_union  WHERE source > 0 AND cost > 0
-                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
-                      WHERE target IS NOT NULL ),
-                   more_union AS ( SELECT * from (
-                       (SELECT * FROM original) 
-                             UNION 
-                       (SELECT * FROM the_union) 
-                             UNION 
-                       (SELECT * FROM first_part) ) _union )
-                  SELECT *  FROM more_union';
-          END IF;
-      END IF;
-
- -- raise notice '%', new_edges;
-     sql_new_vertices := sql_new_vertices || v_union || ' (' || sql || ')';
-     RETURN query SELECT *
-         FROM pgr_dijkstraVia(new_edges, via_vertices, directed, has_rcost);
-  END
-  $BODY$
-  LANGUAGE plpgsql VOLATILE
-  COST 100
-  ROWS 1000;
-
-
diff --git a/src/withPoints/src/CMakeLists.txt b/src/withPoints/src/CMakeLists.txt
index 8975899..bf2cee0 100644
--- a/src/withPoints/src/CMakeLists.txt
+++ b/src/withPoints/src/CMakeLists.txt
@@ -1,12 +1,7 @@
 ADD_LIBRARY(withPoints OBJECT 
-    one_to_one_withPoints.c 
-    one_to_many_withPoints.c 
-    many_to_one_withPoints.c 
-    many_to_many_withPoints.c 
-
+    withPoints.c 
 
     get_new_queries.cpp
+    withPoints_driver.cpp
     pgr_withPoints.cpp
-
-    many_to_many_withPoints_driver.cpp
     )
diff --git a/src/withPoints/src/get_new_queries.cpp b/src/withPoints/src/get_new_queries.cpp
index ffa2bf7..85ba686 100644
--- a/src/withPoints/src/get_new_queries.cpp
+++ b/src/withPoints/src/get_new_queries.cpp
@@ -27,7 +27,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#include "./get_new_queries.h"
+#include "drivers/withPoints/get_new_queries.h"
 #include <string.h>
 #include <sstream>
 
diff --git a/src/withPoints/src/get_new_queries.h b/src/withPoints/src/get_new_queries.h
deleted file mode 100644
index 946beb4..0000000
--- a/src/withPoints/src/get_new_queries.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: get_new_queries.h
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer:
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail:
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-#ifndef SRC_WITHPOINTS_SRC_GET_NEW_QUERIES_H_
-#define SRC_WITHPOINTS_SRC_GET_NEW_QUERIES_H_
-
-#pragma once
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-    char estimate_drivingSide(char driving_side);
-
-    void get_new_queries(
-            char *edges_sql,
-            char *points_sql,
-            char **edges_of_points_query,
-            char **edges_no_points_query);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif  // SRC_WITHPOINTS_SRC_GET_NEW_QUERIES_H_
diff --git a/src/withPoints/src/many_to_many_withPoints.c b/src/withPoints/src/many_to_many_withPoints.c
deleted file mode 100644
index 93a3a41..0000000
--- a/src/withPoints/src/many_to_many_withPoints.c
+++ /dev/null
@@ -1,258 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: one_to_many_withPoints.c
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer:
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail:
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#include "./../../common/src/postgres_connection.h"
-#include "utils/array.h"
-
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/e_report.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/edges_input.h"
-#include "./../../common/src/arrays_input.h"
-#include "./../../common/src/points_input.h"
-#include "./get_new_queries.h"
-#include "./many_to_many_withPoints_driver.h"
-
-PGDLLEXPORT Datum many_to_many_withPoints(PG_FUNCTION_ARGS);
-PG_FUNCTION_INFO_V1(many_to_many_withPoints);
-
-
-static
-void
-process(
-        char* edges_sql,
-        char* points_sql,
-
-        ArrayType *starts,
-        ArrayType *ends,
-
-        bool directed,
-        char *driving_side,
-        bool details,
-        bool only_cost,
-        General_path_element_t **result_tuples,
-        size_t *result_count) {
-    driving_side[0] = estimate_drivingSide(driving_side[0]);
-
-    pgr_SPI_connect();
-
-    size_t size_start_pidsArr = 0;
-    int64_t* start_pidsArr = pgr_get_bigIntArray(&size_start_pidsArr, starts);
-
-    size_t size_end_pidsArr = 0;
-    int64_t* end_pidsArr = pgr_get_bigIntArray(&size_end_pidsArr, ends);
-
-    Point_on_edge_t *points = NULL;
-    size_t total_points = 0;
-    pgr_get_points(points_sql, &points, &total_points);
-
-
-    char *edges_of_points_query = NULL;
-    char *edges_no_points_query = NULL;
-    get_new_queries(
-            edges_sql, points_sql,
-            &edges_of_points_query,
-            &edges_no_points_query);
-
-
-    pgr_edge_t *edges_of_points = NULL;
-    size_t total_edges_of_points = 0;
-    pgr_get_edges(
-            edges_of_points_query, &edges_of_points, &total_edges_of_points);
-
-
-    pgr_edge_t *edges = NULL;
-    size_t total_edges = 0;
-    pgr_get_edges(edges_no_points_query, &edges, &total_edges);
-
-    free(edges_of_points_query);
-    free(edges_no_points_query);
-
-    if ((total_edges + total_edges_of_points) == 0) {
-        pgr_SPI_finish();
-        return;
-    }
-
-    clock_t start_t = clock();
-    char* log_msg = NULL;
-    char* notice_msg = NULL;
-    char* err_msg = NULL;
-
-    do_pgr_many_to_many_withPoints(
-            edges, total_edges,
-            points, total_points,
-            edges_of_points, total_edges_of_points,
-            start_pidsArr, size_start_pidsArr,
-            end_pidsArr, size_end_pidsArr,
-
-            driving_side[0],
-            details,
-            directed,
-            only_cost,
-            true,
-
-            result_tuples, result_count,
-            &log_msg,
-            &notice_msg,
-            &err_msg);
-
-    if (only_cost) {
-        time_msg("processing pgr_withPointsCost(one to one)", start_t, clock());
-    } else {
-        time_msg("processing pgr_withPoints(one to one)", start_t, clock());
-    }
-
-    if (err_msg && (*result_tuples)) {
-        pfree(*result_tuples);
-        (*result_count) = 0;
-        (*result_tuples) = NULL;
-    }
-
-    pgr_global_report(log_msg, notice_msg, err_msg);
-
-#if 0
-    if (log_msg) pfree(log_msg);
-    if (notice_msg) pfree(notice_msg);
-    if (err_msg) pfree(err_msg);
-    if (edges) pfree(edges);
-    if (points) pfree(points);
-    if (edges_of_points) pfree(edges_of_points);
-    if (start_pidsArr) pfree(start_pidsArr);
-    if (end_pidsArr) pfree(end_pidsArr);
-#endif
-    pgr_SPI_finish();
-}
-
-
-PGDLLEXPORT Datum
-many_to_many_withPoints(PG_FUNCTION_ARGS) {
-    FuncCallContext     *funcctx;
-    TupleDesc            tuple_desc;
-
-    /**********************************************************************/
-    General_path_element_t *result_tuples = 0;
-    size_t result_count = 0;
-    /**********************************************************************/
-
-    if (SRF_IS_FIRSTCALL()) {
-        MemoryContext   oldcontext;
-        funcctx = SRF_FIRSTCALL_INIT();
-        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
-
-
-        /**********************************************************************/
-        // CREATE OR REPLACE FUNCTION pgr_withPoint(
-        // edges_sql TEXT,
-        // points_sql TEXT,
-        // start_pid ANYARRAY,
-        // end_pids ANYARRAY,
-        // driving_side CHAR -- DEFAULT 'b',
-        // details BOOLEAN -- DEFAULT false,
-        // directed BOOLEAN -- DEFAULT true,
-        // only_cost BOOLEAN DEFAULT false,
-
-
-        process(
-                text_to_cstring(PG_GETARG_TEXT_P(0)),
-                text_to_cstring(PG_GETARG_TEXT_P(1)),
-                PG_GETARG_ARRAYTYPE_P(2),
-                PG_GETARG_ARRAYTYPE_P(3),
-                PG_GETARG_BOOL(4),
-                text_to_cstring(PG_GETARG_TEXT_P(5)),
-                PG_GETARG_BOOL(6),
-                PG_GETARG_BOOL(7),
-                &result_tuples,
-                &result_count);
-
-        /**********************************************************************/
-
-#if PGSQL_VERSION > 95
-        funcctx->max_calls = result_count;
-#else
-        funcctx->max_calls = (uint32_t)result_count;
-#endif
-        funcctx->user_fctx = result_tuples;
-        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
-                != TYPEFUNC_COMPOSITE)
-            ereport(ERROR,
-                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-                     errmsg("function returning record called in context "
-                         "that cannot accept type record")));
-
-        funcctx->tuple_desc = tuple_desc;
-        MemoryContextSwitchTo(oldcontext);
-    }
-
-    funcctx = SRF_PERCALL_SETUP();
-    tuple_desc = funcctx->tuple_desc;
-    result_tuples = (General_path_element_t*) funcctx->user_fctx;
-
-    if (funcctx->call_cntr < funcctx->max_calls) {
-        HeapTuple    tuple;
-        Datum        result;
-        Datum        *values;
-        bool*        nulls;
-
-        /**********************************************************************/
-        // OUT seq BIGINT,
-        // OUT path_seq,
-        // OUT node BIGINT,
-        // OUT edge BIGINT,
-        // OUT cost FLOAT,
-        // OUT agg_cost FLOAT)
-
-
-        values = palloc(8 * sizeof(Datum));
-        nulls = palloc(8 * sizeof(bool));
-
-        size_t i;
-        for (i = 0; i < 8; ++i) {
-            nulls[i] = false;
-        }
-
-
-        values[0] = Int32GetDatum(funcctx->call_cntr + 1);
-        values[1] = Int32GetDatum(result_tuples[funcctx->call_cntr].seq);
-        values[2] = Int64GetDatum(result_tuples[funcctx->call_cntr].start_id);
-        values[3] = Int64GetDatum(result_tuples[funcctx->call_cntr].end_id);
-        values[4] = Int64GetDatum(result_tuples[funcctx->call_cntr].node);
-        values[5] = Int64GetDatum(result_tuples[funcctx->call_cntr].edge);
-        values[6] = Float8GetDatum(result_tuples[funcctx->call_cntr].cost);
-        values[7] = Float8GetDatum(result_tuples[funcctx->call_cntr].agg_cost);
-        /**********************************************************************/
-
-        tuple = heap_form_tuple(tuple_desc, values, nulls);
-        result = HeapTupleGetDatum(tuple);
-        SRF_RETURN_NEXT(funcctx, result);
-    } else {
-        SRF_RETURN_DONE(funcctx);
-    }
-}
-
diff --git a/src/withPoints/src/many_to_many_withPoints_driver.cpp b/src/withPoints/src/many_to_many_withPoints_driver.cpp
deleted file mode 100644
index eef223e..0000000
--- a/src/withPoints/src/many_to_many_withPoints_driver.cpp
+++ /dev/null
@@ -1,249 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: one_to_many_withPoints_driver.cpp
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer:
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail:
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#include "./many_to_many_withPoints_driver.h"
-
-#include <algorithm>
-#include <sstream>
-#include <deque>
-#include <vector>
-#include <cassert>
-
-
-#include "./pgr_dijkstra.hpp"
-#include "./pgr_withPoints.hpp"
-
-#include "./../../common/src/pgr_alloc.hpp"
-#include "./../../common/src/pgr_assert.h"
-#include "./../../common/src/pgr_types.h"
-
-template < class G >
-std::deque< Path >
-pgr_dijkstra(
-        G &graph,
-        std::vector < int64_t > sources,
-        std::vector < int64_t > targets,
-        bool only_cost,
-        bool normal) {
-    std::sort(sources.begin(), sources.end());
-    sources.erase(
-            std::unique(sources.begin(), sources.end()),
-            sources.end());
-
-    std::sort(targets.begin(), targets.end());
-    targets.erase(
-            std::unique(targets.begin(), targets.end()),
-            targets.end());
-
-    Pgr_dijkstra< G > fn_dijkstra;
-    auto paths = fn_dijkstra.dijkstra(graph, sources, targets, only_cost);
-
-    if (!normal) {
-        for (auto &path : paths) {
-            path.reverse();
-        }
-    }
-    return paths;
-}
-
-
-// CREATE OR REPLACE FUNCTION pgr_withPoint(
-// edges_sql TEXT,
-// points_sql TEXT,
-// start_pid ANYARRAY,
-// end_pid BIGINT,
-// directed BOOLEAN DEFAULT true
-
-void
-do_pgr_many_to_many_withPoints(
-        pgr_edge_t *edges, size_t total_edges,
-        Point_on_edge_t *points_p, size_t total_points,
-        pgr_edge_t *edges_of_points, size_t total_edges_of_points,
-        int64_t *start_pidsArr, size_t size_start_pidsArr,
-        int64_t *end_pidsArr, size_t size_end_pidsArr,
-
-        char driving_side,
-        bool details,
-        bool directed,
-        bool only_cost,
-        bool normal,
-
-        General_path_element_t **return_tuples, size_t *return_count,
-
-        char** log_msg,
-        char** notice_msg,
-        char** err_msg) {
-    std::ostringstream log;
-    std::ostringstream notice;
-    std::ostringstream err;
-    try {
-        pgassert(!(*log_msg));
-        pgassert(!(*notice_msg));
-        pgassert(!(*err_msg));
-        pgassert(!(*return_tuples));
-        pgassert((*return_count) == 0);
-        pgassert(edges || edges_of_points);
-        pgassert(points_p);
-        pgassert(start_pidsArr);
-        pgassert(end_pidsArr);
-
-        std::vector< Point_on_edge_t >
-            points(points_p, points_p + total_points);
-
-        if (!normal) {
-            for (auto &point : points) {
-                if (point.side == 'r') {
-                    point.side = 'l';
-                } else if (point.side == 'l') {
-                    point.side = 'r';
-                }
-                point.fraction = 1 - point.fraction;
-            }
-            if (driving_side == 'r') {
-                driving_side = 'l';
-            } else if (driving_side == 'l') {
-                driving_side = 'r';
-            }
-        }
-
-        int errcode = check_points(points, log);
-        if (errcode) {
-            *log_msg = strdup(log.str().c_str());
-            err << "Unexpected point(s) with same pid"
-                << " but different edge/fraction/side combination found.";
-            *err_msg = pgr_msg(err.str().c_str());
-            return;
-        }
-
-
-        std::vector< pgr_edge_t >
-            edges_to_modify(
-                    edges_of_points, edges_of_points + total_edges_of_points);
-
-        std::vector< pgr_edge_t > new_edges;
-        create_new_edges(
-                points,
-                edges_to_modify,
-                driving_side,
-                new_edges, log);
-
-
-        std::vector<int64_t>
-            start_vertices(start_pidsArr, start_pidsArr + size_start_pidsArr);
-        std::vector< int64_t >
-            end_vertices(end_pidsArr, end_pidsArr + size_end_pidsArr);
-
-
-        graphType gType = directed? DIRECTED: UNDIRECTED;
-
-        std::deque< Path > paths;
-
-        if (directed) {
-            log << "Working with directed Graph\n";
-            pgrouting::DirectedGraph digraph(gType);
-            digraph.insert_edges(edges, total_edges);
-            digraph.insert_edges(new_edges);
-            paths = pgr_dijkstra(
-                    digraph,
-                    start_vertices, end_vertices,
-                    only_cost, normal);
-        } else {
-            log << "Working with Undirected Graph\n";
-            pgrouting::UndirectedGraph undigraph(gType);
-            undigraph.insert_edges(edges, total_edges);
-            undigraph.insert_edges(new_edges);
-            paths = pgr_dijkstra(
-                    undigraph,
-                    start_vertices, end_vertices,
-                    only_cost, normal);
-        }
-
-        if (!details) {
-            for (auto &path : paths) {
-                eliminate_details(path, edges_to_modify);
-            }
-        }
-
-        /*
-         * order paths based on the start_pid, end_pid
-         */
-        std::sort(paths.begin(), paths.end(),
-                [](const Path &a, const Path &b)
-                -> bool {
-                if (b.start_id() != a.start_id()) {
-                return a.start_id() < b.start_id();
-                }
-                return a.end_id() < b.end_id();
-                });
-
-        size_t count(0);
-        count = count_tuples(paths);
-
-
-        if (count == 0) {
-            (*return_tuples) = NULL;
-            (*return_count) = 0;
-#if 0
-            log <<
-                "No paths found";
-            *err_msg = pgr_msg(log.str().c_str());
-#endif
-            return;
-        }
-
-        (*return_tuples) = pgr_alloc(count, (*return_tuples));
-        log << "Converting a set of paths into the tuples\n";
-        (*return_count) = (collapse_paths(return_tuples, paths));
-
-        *log_msg = log.str().empty()?
-            *log_msg :
-            pgr_msg(log.str().c_str());
-        *notice_msg = notice.str().empty()?
-            *notice_msg :
-            pgr_msg(notice.str().c_str());
-    } catch (AssertFailedException &except) {
-        (*return_tuples) = pgr_free(*return_tuples);
-        (*return_count) = 0;
-        err << except.what();
-        *err_msg = pgr_msg(err.str().c_str());
-        *log_msg = pgr_msg(log.str().c_str());
-    } catch (std::exception &except) {
-        (*return_tuples) = pgr_free(*return_tuples);
-        (*return_count) = 0;
-        err << except.what();
-        *err_msg = pgr_msg(err.str().c_str());
-        *log_msg = pgr_msg(log.str().c_str());
-    } catch(...) {
-        (*return_tuples) = pgr_free(*return_tuples);
-        (*return_count) = 0;
-        err << "Caught unknown exception!";
-        *err_msg = pgr_msg(err.str().c_str());
-        *log_msg = pgr_msg(log.str().c_str());
-    }
-}
diff --git a/src/withPoints/src/many_to_many_withPoints_driver.h b/src/withPoints/src/many_to_many_withPoints_driver.h
deleted file mode 100644
index 9a7dcd3..0000000
--- a/src/withPoints/src/many_to_many_withPoints_driver.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: many_to_many_withPoints_driver.h
-
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer:
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail:
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#ifndef SRC_WITHPOINTS_SRC_MANY_TO_MANY_WITHPOINTS_DRIVER_H_
-#define SRC_WITHPOINTS_SRC_MANY_TO_MANY_WITHPOINTS_DRIVER_H_
-
-#pragma once
-
-#include "./../../common/src/pgr_types.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-// CREATE OR REPLACE FUNCTION pgr_withPoint(
-// edges_sql TEXT,
-// points_sql TEXT,
-// start_pid ANYARRAY,
-// end_pid BIGINT,
-// directed BOOLEAN DEFAULT true,
-    void do_pgr_many_to_many_withPoints(
-            pgr_edge_t *edges,
-            size_t total_edges,
-
-            Point_on_edge_t *points,
-            size_t total_points,
-
-            pgr_edge_t *edges_of_points,
-            size_t total_edges_of_points,
-
-            int64_t *start_pidsArr,
-            size_t size_start_pidsArr,
-
-            int64_t *end_pidsArr,
-            size_t size_end_pidsArr,
-
-
-            char driving_side,
-            bool details,
-            bool directed,
-            bool only_cost,
-            bool normal,
-
-            General_path_element_t **return_tuples,
-            size_t *return_count,
-            char** log_msg,
-            char** notice_msg,
-            char** err_msg);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif  // SRC_WITHPOINTS_SRC_MANY_TO_MANY_WITHPOINTS_DRIVER_H_
diff --git a/src/withPoints/src/many_to_one_withPoints.c b/src/withPoints/src/many_to_one_withPoints.c
deleted file mode 100644
index 51bed34..0000000
--- a/src/withPoints/src/many_to_one_withPoints.c
+++ /dev/null
@@ -1,252 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: one_to_many_withPoints.c
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer:
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail:
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#include "./../../common/src/postgres_connection.h"
-#include "utils/array.h"
-
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/e_report.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/edges_input.h"
-#include "./../../common/src/arrays_input.h"
-#include "./../../common/src/points_input.h"
-#include "./get_new_queries.h"
-#include "./many_to_many_withPoints_driver.h"
-
-PGDLLEXPORT Datum many_to_one_withPoints(PG_FUNCTION_ARGS);
-PG_FUNCTION_INFO_V1(many_to_one_withPoints);
-
-
-static
-void
-process(
-        char* edges_sql,
-        char* points_sql,
-        ArrayType *starts,
-        int64_t end_pid,
-        bool directed,
-        char* driving_side,
-        bool details,
-        bool only_cost,
-        General_path_element_t **result_tuples,
-        size_t *result_count) {
-    driving_side[0] = estimate_drivingSide(driving_side[0]);
-    PGR_DBG("estimated driving side:%c", driving_side[0]);
-
-    pgr_SPI_connect();
-
-    size_t size_start_pidsArr = 0;
-    int64_t* start_pidsArr =
-        pgr_get_bigIntArray(&size_start_pidsArr, starts);
-
-    Point_on_edge_t *points = NULL;
-    size_t total_points = 0;
-    pgr_get_points(points_sql, &points, &total_points);
-
-
-    char *edges_of_points_query = NULL;
-    char *edges_no_points_query = NULL;
-    get_new_queries(
-            edges_sql, points_sql,
-            &edges_of_points_query,
-            &edges_no_points_query);
-
-
-    pgr_edge_t *edges_of_points = NULL;
-    size_t total_edges_of_points = 0;
-    pgr_get_edges_reversed(
-            edges_of_points_query, &edges_of_points, &total_edges_of_points);
-
-
-    pgr_edge_t *edges = NULL;
-    size_t total_edges = 0;
-    pgr_get_edges_reversed(edges_no_points_query, &edges, &total_edges);
-
-    free(edges_of_points_query);
-    free(edges_no_points_query);
-
-    if ((total_edges + total_edges_of_points) == 0) {
-        (*result_count) = 0;
-        (*result_tuples) = NULL;
-        pgr_SPI_finish();
-        return;
-    }
-
-    PGR_DBG("Starting timer");
-    clock_t start_t = clock();
-    char* log_msg = NULL;
-    char* notice_msg = NULL;
-    char* err_msg = NULL;
-    do_pgr_many_to_many_withPoints(
-            edges, total_edges,
-            points, total_points,
-            edges_of_points, total_edges_of_points,
-            &end_pid, 1,
-            start_pidsArr, size_start_pidsArr,
-            driving_side[0],
-            details,
-            directed,
-            only_cost,
-            false,
-            result_tuples,
-            result_count,
-            &log_msg,
-            &notice_msg,
-            &err_msg);
-
-    if (only_cost) {
-        time_msg("processing pgr_withPointsCost(many to one)",
-                start_t, clock());
-    } else {
-        time_msg("processing pgr_withPoints(many to one)", start_t, clock());
-    }
-
-    if (err_msg && (*result_tuples)) {
-        pfree(*result_tuples);
-        (*result_count) = 0;
-        (*result_tuples) = NULL;
-    }
-
-    pgr_global_report(log_msg, notice_msg, err_msg);
-
-    if (log_msg) pfree(log_msg);
-    if (notice_msg) pfree(notice_msg);
-    if (err_msg) pfree(err_msg);
-    if (edges) pfree(edges);
-    if (start_pidsArr) pfree(start_pidsArr);
-
-    pgr_SPI_finish();
-}
-
-
-PGDLLEXPORT Datum
-many_to_one_withPoints(PG_FUNCTION_ARGS) {
-    FuncCallContext     *funcctx;
-    TupleDesc            tuple_desc;
-
-    /**********************************************************************/
-    General_path_element_t *result_tuples = NULL;
-    size_t result_count = 0;
-    /**********************************************************************/
-
-    if (SRF_IS_FIRSTCALL()) {
-        MemoryContext   oldcontext;
-        funcctx = SRF_FIRSTCALL_INIT();
-        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
-
-
-        /**********************************************************************/
-        // CREATE OR REPLACE FUNCTION pgr_withPoint(
-        // edges_sql TEXT,
-        // points_sql TEXT,
-        // start_pid BIGINT,
-        // end_pids ANYARRAY,
-        // driving_side CHAR -- DEFAULT 'b',
-        // details BOOLEAN -- DEFAULT false,
-        // directed BOOLEAN -- DEFAULT true,
-        // only_cost BOOLEAN DEFAULT false,
-
-        process(
-                text_to_cstring(PG_GETARG_TEXT_P(0)),
-                text_to_cstring(PG_GETARG_TEXT_P(1)),
-                PG_GETARG_ARRAYTYPE_P(2),
-                PG_GETARG_INT64(3),
-                PG_GETARG_BOOL(4),
-                text_to_cstring(PG_GETARG_TEXT_P(5)),
-                PG_GETARG_BOOL(6),
-                PG_GETARG_BOOL(7),
-                &result_tuples,
-                &result_count);
-
-        /**********************************************************************/
-
-#if PGSQL_VERSION > 95
-        funcctx->max_calls = result_count;
-#else
-        funcctx->max_calls = (uint32_t)result_count;
-#endif
-        funcctx->user_fctx = result_tuples;
-        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
-                != TYPEFUNC_COMPOSITE)
-            ereport(ERROR,
-                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-                     errmsg("function returning record called in context "
-                         "that cannot accept type record")));
-
-        funcctx->tuple_desc = tuple_desc;
-        MemoryContextSwitchTo(oldcontext);
-    }
-
-    funcctx = SRF_PERCALL_SETUP();
-    tuple_desc = funcctx->tuple_desc;
-    result_tuples = (General_path_element_t*) funcctx->user_fctx;
-
-    if (funcctx->call_cntr < funcctx->max_calls) {
-        HeapTuple    tuple;
-        Datum        result;
-        Datum        *values;
-        bool*        nulls;
-
-        /**********************************************************************/
-        // OUT seq BIGINT,
-        // OUT path_seq,
-        // OUT node BIGINT,
-        // OUT edge BIGINT,
-        // OUT cost FLOAT,
-        // OUT agg_cost FLOAT)
-
-
-        values = palloc(7 * sizeof(Datum));
-        nulls = palloc(7 * sizeof(bool));
-
-        size_t i;
-        for (i = 0; i < 7; ++i) {
-            nulls[i] = false;
-        }
-
-
-        // postgres starts counting from 1
-        values[0] = Int32GetDatum(funcctx->call_cntr + 1);
-        values[1] = Int32GetDatum(result_tuples[funcctx->call_cntr].seq);
-        values[2] = Int64GetDatum(result_tuples[funcctx->call_cntr].start_id);
-        values[3] = Int64GetDatum(result_tuples[funcctx->call_cntr].node);
-        values[4] = Int64GetDatum(result_tuples[funcctx->call_cntr].edge);
-        values[5] = Float8GetDatum(result_tuples[funcctx->call_cntr].cost);
-        values[6] = Float8GetDatum(result_tuples[funcctx->call_cntr].agg_cost);
-
-        /**********************************************************************/
-
-        tuple = heap_form_tuple(tuple_desc, values, nulls);
-        result = HeapTupleGetDatum(tuple);
-        SRF_RETURN_NEXT(funcctx, result);
-    } else {
-        SRF_RETURN_DONE(funcctx);
-    }
-}
diff --git a/src/withPoints/src/one_to_many_withPoints.c b/src/withPoints/src/one_to_many_withPoints.c
deleted file mode 100644
index 57d789d..0000000
--- a/src/withPoints/src/one_to_many_withPoints.c
+++ /dev/null
@@ -1,266 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: one_to_many_withPoints.c
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer:
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail:
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#include "./../../common/src/postgres_connection.h"
-#include "utils/array.h"
-
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/e_report.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/edges_input.h"
-#include "./../../common/src/arrays_input.h"
-#include "./../../common/src/points_input.h"
-#include "./get_new_queries.h"
-#include "./many_to_many_withPoints_driver.h"
-
-PGDLLEXPORT Datum one_to_many_withPoints(PG_FUNCTION_ARGS);
-
-
-static
-void
-process(
-        char* edges_sql,
-        char* points_sql,
-        int64_t start_pid,
-        ArrayType *ends,
-        bool directed,
-        char *driving_side,
-        bool details,
-        bool only_cost,
-        General_path_element_t **result_tuples,
-        size_t *result_count) {
-    driving_side[0] = estimate_drivingSide(driving_side[0]);
-    PGR_DBG("estimated driving side:%c", driving_side[0]);
-
-    pgr_SPI_connect();
-
-    size_t size_end_pidsArr = 0;
-    int64_t* end_pidsArr =
-        pgr_get_bigIntArray(&size_end_pidsArr, ends);
-
-    PGR_DBG("load the points");
-    size_t total_points = 0;
-    Point_on_edge_t *points = NULL;
-    pgr_get_points(points_sql, &points, &total_points);
-
-    PGR_DBG(" -- change the query");
-    char *edges_of_points_query = NULL;
-    char *edges_no_points_query = NULL;
-    get_new_queries(
-            edges_sql, points_sql,
-            &edges_of_points_query,
-            &edges_no_points_query);
-
-    PGR_DBG("edges_of_points_query:\n%s", edges_of_points_query);
-    PGR_DBG("edges_no_points_query:\n%s", edges_no_points_query);
-
-    PGR_DBG("load the edges that match the points");
-    pgr_edge_t *edges_of_points = NULL;
-    size_t total_edges_of_points = 0;
-    pgr_get_edges(
-            edges_of_points_query, &edges_of_points, &total_edges_of_points);
-
-    PGR_DBG("Total %ld edges in query:", total_edges_of_points);
-
-
-    PGR_DBG("load the edges that don't match the points");
-    pgr_edge_t *edges = NULL;
-    size_t total_edges = 0;
-    pgr_get_edges(edges_no_points_query, &edges, &total_edges);
-
-    PGR_DBG("Total %ld edges in query:", total_edges);
-
-    free(edges_of_points_query);
-    free(edges_no_points_query);
-
-    if ((total_edges + total_edges_of_points) == 0) {
-        PGR_DBG("No edges found");
-        pgr_SPI_finish();
-        return;
-    }
-
-    PGR_DBG("Starting timer");
-    clock_t start_t = clock();
-    char* log_msg = NULL;
-    char* notice_msg = NULL;
-    char* err_msg = NULL;
-    do_pgr_many_to_many_withPoints(
-            edges, total_edges,
-            points, total_points,
-            edges_of_points, total_edges_of_points,
-            &start_pid, 1,
-            end_pidsArr, size_end_pidsArr,
-
-            driving_side[0],
-            details,
-            directed,
-            only_cost,
-            true,
-
-            result_tuples, result_count,
-
-            &log_msg,
-            &notice_msg,
-            &err_msg);
-
-    if (only_cost) {
-        time_msg("processing pgr_withPointsCost(one to many)",
-                start_t, clock());
-    } else {
-        time_msg("processing pgr_withPoints(one to many)", start_t, clock());
-    }
-
-    if (err_msg && (*result_tuples)) {
-        pfree(*result_tuples);
-        (*result_count) = 0;
-        (*result_tuples) = NULL;
-    }
-
-    pgr_global_report(log_msg, notice_msg, err_msg);
-
-    if (log_msg) pfree(log_msg);
-    if (notice_msg) pfree(notice_msg);
-    if (err_msg) pfree(err_msg);
-    if (edges) pfree(edges);
-    if (points) pfree(points);
-    if (edges_of_points) pfree(edges_of_points);
-    if (end_pidsArr) pfree(end_pidsArr);
-    pgr_SPI_finish();
-}
-
-
-PG_FUNCTION_INFO_V1(one_to_many_withPoints);
-PGDLLEXPORT Datum
-one_to_many_withPoints(PG_FUNCTION_ARGS) {
-    FuncCallContext     *funcctx;
-    TupleDesc            tuple_desc;
-
-    /**********************************************************************/
-    General_path_element_t *result_tuples = NULL;
-    size_t result_count = 0;
-    /**********************************************************************/
-
-    if (SRF_IS_FIRSTCALL()) {
-        MemoryContext   oldcontext;
-        funcctx = SRF_FIRSTCALL_INIT();
-        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
-
-
-        /**********************************************************************/
-        // CREATE OR REPLACE FUNCTION pgr_withPoint(
-        // edges_sql TEXT,
-        // points_sql TEXT,
-        // start_pid BIGINT,
-        // end_pids ANYARRAY,
-        // directed BOOLEAN -- DEFAULT true,
-        // driving_side CHAR -- DEFAULT 'b',
-        // details BOOLEAN -- DEFAULT false,
-        // only_cost BOOLEAN DEFAULT false,
-
-
-
-        process(
-                text_to_cstring(PG_GETARG_TEXT_P(0)),
-                text_to_cstring(PG_GETARG_TEXT_P(1)),
-                PG_GETARG_INT64(2),
-                PG_GETARG_ARRAYTYPE_P(3),
-                PG_GETARG_BOOL(4),
-                text_to_cstring(PG_GETARG_TEXT_P(5)),
-                PG_GETARG_BOOL(6),
-                PG_GETARG_BOOL(7),
-                &result_tuples,
-                &result_count);
-
-        /**********************************************************************/
-
-#if PGSQL_VERSION > 95
-        funcctx->max_calls = result_count;
-#else
-        funcctx->max_calls = (uint32_t)result_count;
-#endif
-        funcctx->user_fctx = result_tuples;
-        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
-                != TYPEFUNC_COMPOSITE)
-            ereport(ERROR,
-                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-                     errmsg("function returning record called in context "
-                         "that cannot accept type record")));
-
-        funcctx->tuple_desc = tuple_desc;
-        MemoryContextSwitchTo(oldcontext);
-    }
-
-    funcctx = SRF_PERCALL_SETUP();
-    tuple_desc = funcctx->tuple_desc;
-    result_tuples = (General_path_element_t*) funcctx->user_fctx;
-
-    if (funcctx->call_cntr < funcctx->max_calls) {
-        HeapTuple    tuple;
-        Datum        result;
-        Datum        *values;
-        bool*        nulls;
-
-        /**********************************************************************/
-        // OUT seq BIGINT,
-        // OUT path_seq,
-        // OUT node BIGINT,
-        // OUT edge BIGINT,
-        // OUT cost FLOAT,
-        // OUT agg_cost FLOAT)
-
-
-        values = palloc(7 * sizeof(Datum));
-        nulls = palloc(7 * sizeof(bool));
-
-        size_t i;
-        for (i = 0; i < 7; ++i) {
-            nulls[i] = false;
-        }
-
-
-        // postgres starts counting from 1
-        values[0] = Int32GetDatum(funcctx->call_cntr + 1);
-        values[1] = Int32GetDatum(result_tuples[funcctx->call_cntr].seq);
-        values[2] = Int64GetDatum(result_tuples[funcctx->call_cntr].end_id);
-        values[3] = Int64GetDatum(result_tuples[funcctx->call_cntr].node);
-        values[4] = Int64GetDatum(result_tuples[funcctx->call_cntr].edge);
-        values[5] = Float8GetDatum(result_tuples[funcctx->call_cntr].cost);
-        values[6] = Float8GetDatum(result_tuples[funcctx->call_cntr].agg_cost);
-
-        /**********************************************************************/
-
-        tuple = heap_form_tuple(tuple_desc, values, nulls);
-        result = HeapTupleGetDatum(tuple);
-        SRF_RETURN_NEXT(funcctx, result);
-    } else {
-        SRF_RETURN_DONE(funcctx);
-    }
-}
-
diff --git a/src/withPoints/src/one_to_one_withPoints.c b/src/withPoints/src/one_to_one_withPoints.c
deleted file mode 100644
index 0f32926..0000000
--- a/src/withPoints/src/one_to_one_withPoints.c
+++ /dev/null
@@ -1,251 +0,0 @@
-/*PGR-GNU*****************************************************************
-File: one_to_one_withPoints.c
-
-Generated with Template by:
-Copyright (c) 2015 pgRouting developers
-Mail: project at pgrouting.org
-
-Function's developer:
-Copyright (c) 2015 Celia Virginia Vergara Castillo
-Mail:
-
-------
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-********************************************************************PGR-GNU*/
-
-#include "./../../common/src/postgres_connection.h"
-#include "utils/array.h"
-
-#include "./../../common/src/debug_macro.h"
-#include "./../../common/src/e_report.h"
-#include "./../../common/src/time_msg.h"
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/edges_input.h"
-#include "./../../common/src/points_input.h"
-#include "./get_new_queries.h"
-#include "./many_to_many_withPoints_driver.h"
-
-PGDLLEXPORT Datum one_to_one_withPoints(PG_FUNCTION_ARGS);
-PG_FUNCTION_INFO_V1(one_to_one_withPoints);
-
-static
-void
-process(
-        char* edges_sql,
-        char* points_sql,
-        int64_t start_pid,
-        int64_t end_pid,
-        bool directed,
-        char *driving_side,
-        bool details,
-        bool only_cost,
-        General_path_element_t **result_tuples,
-        size_t *result_count) {
-    driving_side[0] = estimate_drivingSide(driving_side[0]);
-    PGR_DBG("estimated driving side:%c", driving_side[0]);
-
-    pgr_SPI_connect();
-
-    PGR_DBG("load the points");
-    Point_on_edge_t *points = NULL;
-    size_t total_points = 0;
-    pgr_get_points(points_sql, &points, &total_points);
-
-    PGR_DBG(" -- change the query");
-    char *edges_of_points_query = NULL;
-    char *edges_no_points_query = NULL;
-    get_new_queries(
-            edges_sql, points_sql,
-            &edges_of_points_query,
-            &edges_no_points_query);
-
-    PGR_DBG("edges_of_points_query:\n%s", edges_of_points_query);
-    PGR_DBG("edges_no_points_query:\n%s", edges_no_points_query);
-
-    PGR_DBG("load the edges that match the points");
-    pgr_edge_t *edges_of_points = NULL;
-    size_t total_edges_of_points = 0;
-    pgr_get_edges(
-            edges_of_points_query, &edges_of_points, &total_edges_of_points);
-
-    PGR_DBG("Total %ld edges in query:", total_edges_of_points);
-
-
-    PGR_DBG("load the edges that don't match the points");
-    pgr_edge_t *edges = NULL;
-    size_t total_edges = 0;
-    pgr_get_edges(edges_no_points_query, &edges, &total_edges);
-
-    PGR_DBG("Total %ld edges in query:", total_edges);
-
-    PGR_DBG("freeing allocated memory not used anymore");
-    free(edges_of_points_query);
-    free(edges_no_points_query);
-
-    if ((total_edges + total_edges_of_points) == 0) {
-        PGR_DBG("No edges found");
-        pgr_SPI_finish();
-        return;
-    }
-
-    PGR_DBG("Starting timer");
-    clock_t start_t = clock();
-    char* log_msg = NULL;
-    char* notice_msg = NULL;
-    char* err_msg = NULL;
-    do_pgr_many_to_many_withPoints(
-            edges, total_edges,
-            points, total_points,
-            edges_of_points, total_edges_of_points,
-            &start_pid, 1,
-            &end_pid, 1,
-            driving_side[0],
-            details,
-            directed,
-            only_cost,
-            true,
-            result_tuples, result_count,
-            &log_msg,
-            &notice_msg,
-            &err_msg);
-
-    if (only_cost) {
-        time_msg("processing pgr_withPointsCost(one to one)", start_t, clock());
-    } else {
-        time_msg("processing pgr_withPoints(one to one)", start_t, clock());
-    }
-
-    if (err_msg && (*result_tuples)) {
-        pfree(*result_tuples);
-        (*result_count) = 0;
-        (*result_tuples) = NULL;
-    }
-
-    pgr_global_report(log_msg, notice_msg, err_msg);
-
-    if (log_msg) pfree(log_msg);
-    if (notice_msg) pfree(notice_msg);
-    if (err_msg) pfree(err_msg);
-    if (edges) pfree(edges);
-    if (points) pfree(points);
-    if (edges_of_points) pfree(edges_of_points);
-
-    pgr_SPI_finish();
-}
-
-
-PGDLLEXPORT Datum
-one_to_one_withPoints(PG_FUNCTION_ARGS) {
-    FuncCallContext     *funcctx;
-    TupleDesc            tuple_desc;
-
-    /**********************************************************************/
-    General_path_element_t *result_tuples = NULL;
-    size_t result_count = 0;
-    /**********************************************************************/
-
-    if (SRF_IS_FIRSTCALL()) {
-        MemoryContext   oldcontext;
-        funcctx = SRF_FIRSTCALL_INIT();
-        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
-
-
-        /**********************************************************************/
-        // CREATE OR REPLACE FUNCTION pgr_withPoint(
-        // edges_sql TEXT,
-        // points_sql TEXT,
-        // start_pid BIGINT,
-        // end_pid BIGINT,
-        // directed BOOLEAN -- DEFAULT true,
-        // driving_side CHAR -- DEFAULT 'b',
-        // details BOOLEAN -- DEFAULT true,
-        // only_cost BOOLEAN DEFAULT false,
-
-        process(
-                text_to_cstring(PG_GETARG_TEXT_P(0)),
-                text_to_cstring(PG_GETARG_TEXT_P(1)),
-                PG_GETARG_INT64(2),
-                PG_GETARG_INT64(3),
-                PG_GETARG_BOOL(4),
-                text_to_cstring(PG_GETARG_TEXT_P(5)),
-                PG_GETARG_BOOL(6),
-                PG_GETARG_BOOL(7),
-                &result_tuples,
-                &result_count);
-        /**********************************************************************/
-
-#if PGSQL_VERSION > 95
-        funcctx->max_calls = result_count;
-#else
-        funcctx->max_calls = (uint32_t)result_count;
-#endif
-        funcctx->user_fctx = result_tuples;
-        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
-                != TYPEFUNC_COMPOSITE)
-            ereport(ERROR,
-                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
-                     errmsg("function returning record called in context "
-                         "that cannot accept type record")));
-
-        funcctx->tuple_desc = tuple_desc;
-        MemoryContextSwitchTo(oldcontext);
-    }
-
-    funcctx = SRF_PERCALL_SETUP();
-    tuple_desc = funcctx->tuple_desc;
-    result_tuples = (General_path_element_t*) funcctx->user_fctx;
-
-    if (funcctx->call_cntr < funcctx->max_calls) {
-        HeapTuple    tuple;
-        Datum        result;
-        Datum        *values;
-        bool    *        nulls;
-
-        /**********************************************************************/
-        // OUT seq BIGINT,
-        // OUT path_seq,
-        // OUT node BIGINT,
-        // OUT edge BIGINT,
-        // OUT cost FLOAT,
-        // OUT agg_cost FLOAT)
-
-
-        values = palloc(6 * sizeof(Datum));
-        nulls = palloc(6 * sizeof(bool));
-
-        size_t i;
-        for (i = 0; i < 6; ++i) {
-            nulls[i] = false;
-        }
-
-        values[0] = Int32GetDatum(funcctx->call_cntr + 1);
-        values[1] = Int32GetDatum(result_tuples[funcctx->call_cntr].seq);
-        values[2] = Int64GetDatum(result_tuples[funcctx->call_cntr].node);
-        values[3] = Int64GetDatum(result_tuples[funcctx->call_cntr].edge);
-        values[4] = Float8GetDatum(result_tuples[funcctx->call_cntr].cost);
-        values[5] = Float8GetDatum(result_tuples[funcctx->call_cntr].agg_cost);
-
-        /**********************************************************************/
-
-        tuple = heap_form_tuple(tuple_desc, values, nulls);
-        result = HeapTupleGetDatum(tuple);
-        SRF_RETURN_NEXT(funcctx, result);
-    } else {
-        SRF_RETURN_DONE(funcctx);
-    }
-}
-
diff --git a/src/withPoints/src/pgr_withPoints.cpp b/src/withPoints/src/pgr_withPoints.cpp
index bb814fd..8395f50 100644
--- a/src/withPoints/src/pgr_withPoints.cpp
+++ b/src/withPoints/src/pgr_withPoints.cpp
@@ -38,8 +38,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 #include <algorithm>
 #include <cassert>
 
-#include "./../../common/src/pgr_assert.h"
-#include "./../../common/src/pgr_types.h"
+#include "cpp_common/pgr_assert.h"
 
 static
 void
diff --git a/src/withPoints/src/pgr_withPoints.hpp b/src/withPoints/src/pgr_withPoints.hpp
index 986c87e..6558c7f 100644
--- a/src/withPoints/src/pgr_withPoints.hpp
+++ b/src/withPoints/src/pgr_withPoints.hpp
@@ -31,8 +31,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 #pragma once
 #include <vector>
 
-#include "./../../common/src/pgr_types.h"
-#include "./../../common/src/basePath_SSEC.hpp"
+#include "c_types/point_on_edge_t.h"
+#include "cpp_common/basePath_SSEC.hpp"
 
 int
 check_points(
diff --git a/src/withPoints/src/withPoints.c b/src/withPoints/src/withPoints.c
new file mode 100644
index 0000000..edeba0e
--- /dev/null
+++ b/src/withPoints/src/withPoints.c
@@ -0,0 +1,281 @@
+/*PGR-GNU*****************************************************************
+File: withPoints.c
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail:
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#include "c_common/postgres_connection.h"
+#include "utils/array.h"
+
+#include "c_common/debug_macro.h"
+#include "c_common/e_report.h"
+#include "c_common/time_msg.h"
+
+#include "c_common/edges_input.h"
+#include "c_common/arrays_input.h"
+#include "c_common/points_input.h"
+#include "drivers/withPoints/get_new_queries.h"
+#include "drivers/withPoints/withPoints_driver.h"
+
+PGDLLEXPORT Datum withPoints(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(withPoints);
+
+
+static
+void
+process(
+        char* edges_sql,
+        char* points_sql,
+
+        ArrayType *starts,
+        ArrayType *ends,
+
+        bool directed,
+        char *driving_side,
+        bool details,
+        bool only_cost,
+        bool normal,
+
+        General_path_element_t **result_tuples,
+        size_t *result_count) {
+    driving_side[0] = estimate_drivingSide(driving_side[0]);
+
+    pgr_SPI_connect();
+
+    size_t size_start_pidsArr = 0;
+    int64_t* start_pidsArr = NULL;
+
+    size_t size_end_pidsArr = 0;
+    int64_t* end_pidsArr = NULL;
+
+    Point_on_edge_t *points = NULL;
+    size_t total_points = 0;
+    pgr_get_points(points_sql, &points, &total_points);
+
+
+    char *edges_of_points_query = NULL;
+    char *edges_no_points_query = NULL;
+    get_new_queries(
+            edges_sql, points_sql,
+            &edges_of_points_query,
+            &edges_no_points_query);
+
+
+    pgr_edge_t *edges_of_points = NULL;
+    size_t total_edges_of_points = 0;
+
+    pgr_edge_t *edges = NULL;
+    size_t total_edges = 0;
+
+    PGR_DBG("normal = %d", normal);
+    if (normal) {
+        pgr_get_edges(
+                edges_of_points_query, &edges_of_points, &total_edges_of_points);
+        pgr_get_edges(edges_no_points_query, &edges, &total_edges);
+
+        start_pidsArr = (int64_t*)
+            pgr_get_bigIntArray(&size_start_pidsArr, starts);
+        end_pidsArr = (int64_t*)
+            pgr_get_bigIntArray(&size_end_pidsArr, ends);
+    } else {
+
+        pgr_get_edges_reversed(
+                edges_of_points_query, &edges_of_points, &total_edges_of_points);
+        pgr_get_edges_reversed(edges_no_points_query, &edges, &total_edges);
+
+        end_pidsArr = (int64_t*)
+            pgr_get_bigIntArray(&size_end_pidsArr, starts);
+        start_pidsArr = (int64_t*)
+            pgr_get_bigIntArray(&size_start_pidsArr, ends);
+    }
+
+
+    free(edges_of_points_query);
+    free(edges_no_points_query);
+
+    if ((total_edges + total_edges_of_points) == 0) {
+        pgr_SPI_finish();
+        return;
+    }
+
+    clock_t start_t = clock();
+    char* log_msg = NULL;
+    char* notice_msg = NULL;
+    char* err_msg = NULL;
+
+    do_pgr_withPoints(
+            edges, total_edges,
+            points, total_points,
+            edges_of_points, total_edges_of_points,
+            start_pidsArr, size_start_pidsArr,
+            end_pidsArr, size_end_pidsArr,
+
+            driving_side[0],
+            details,
+            directed,
+            only_cost,
+            normal,
+
+            result_tuples, result_count,
+            &log_msg,
+            &notice_msg,
+            &err_msg);
+
+    if (only_cost) {
+        time_msg("processing pgr_withPointsCost(one to one)", start_t, clock());
+    } else {
+        time_msg("processing pgr_withPoints(one to one)", start_t, clock());
+    }
+
+    if (err_msg && (*result_tuples)) {
+        pfree(*result_tuples);
+        (*result_count) = 0;
+        (*result_tuples) = NULL;
+    }
+
+    pgr_global_report(log_msg, notice_msg, err_msg);
+
+#if 0
+    if (log_msg) pfree(log_msg);
+    if (notice_msg) pfree(notice_msg);
+    if (err_msg) pfree(err_msg);
+    if (edges) pfree(edges);
+    if (points) pfree(points);
+    if (edges_of_points) pfree(edges_of_points);
+    if (start_pidsArr) pfree(start_pidsArr);
+    if (end_pidsArr) pfree(end_pidsArr);
+#endif
+    pgr_SPI_finish();
+}
+
+
+PGDLLEXPORT Datum
+withPoints(PG_FUNCTION_ARGS) {
+    FuncCallContext     *funcctx;
+    TupleDesc            tuple_desc;
+
+    /**********************************************************************/
+    General_path_element_t *result_tuples = 0;
+    size_t result_count = 0;
+    /**********************************************************************/
+
+    if (SRF_IS_FIRSTCALL()) {
+        MemoryContext   oldcontext;
+        funcctx = SRF_FIRSTCALL_INIT();
+        oldcontext = MemoryContextSwitchTo(funcctx->multi_call_memory_ctx);
+
+
+        /**********************************************************************/
+        // CREATE OR REPLACE FUNCTION pgr_withPoint(
+        // edges_sql TEXT,
+        // points_sql TEXT,
+        // start_pid ANYARRAY,
+        // end_pids ANYARRAY,
+        // driving_side CHAR -- DEFAULT 'b',
+        // details BOOLEAN -- DEFAULT false,
+        // directed BOOLEAN -- DEFAULT true,
+        // only_cost BOOLEAN DEFAULT false,
+        // normal BOOLEAN DEFAULT true,
+
+
+        process(
+                text_to_cstring(PG_GETARG_TEXT_P(0)),
+                text_to_cstring(PG_GETARG_TEXT_P(1)),
+                PG_GETARG_ARRAYTYPE_P(2),
+                PG_GETARG_ARRAYTYPE_P(3),
+                PG_GETARG_BOOL(4),
+                text_to_cstring(PG_GETARG_TEXT_P(5)),
+                PG_GETARG_BOOL(6),
+                PG_GETARG_BOOL(7),
+                PG_GETARG_BOOL(8),
+                &result_tuples,
+                &result_count);
+
+        /**********************************************************************/
+
+#if PGSQL_VERSION > 95
+        funcctx->max_calls = result_count;
+#else
+        funcctx->max_calls = (uint32_t)result_count;
+#endif
+        funcctx->user_fctx = result_tuples;
+        if (get_call_result_type(fcinfo, NULL, &tuple_desc)
+                != TYPEFUNC_COMPOSITE)
+            ereport(ERROR,
+                    (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
+                     errmsg("function returning record called in context "
+                         "that cannot accept type record")));
+
+        funcctx->tuple_desc = tuple_desc;
+        MemoryContextSwitchTo(oldcontext);
+    }
+
+    funcctx = SRF_PERCALL_SETUP();
+    tuple_desc = funcctx->tuple_desc;
+    result_tuples = (General_path_element_t*) funcctx->user_fctx;
+
+    if (funcctx->call_cntr < funcctx->max_calls) {
+        HeapTuple    tuple;
+        Datum        result;
+        Datum        *values;
+        bool*        nulls;
+
+        /**********************************************************************/
+        // OUT seq BIGINT,
+        // OUT path_seq,
+        // OUT node BIGINT,
+        // OUT edge BIGINT,
+        // OUT cost FLOAT,
+        // OUT agg_cost FLOAT)
+
+
+        values = palloc(8 * sizeof(Datum));
+        nulls = palloc(8 * sizeof(bool));
+
+        size_t i;
+        for (i = 0; i < 8; ++i) {
+            nulls[i] = false;
+        }
+
+
+        values[0] = Int32GetDatum(funcctx->call_cntr + 1);
+        values[1] = Int32GetDatum(result_tuples[funcctx->call_cntr].seq);
+        values[2] = Int64GetDatum(result_tuples[funcctx->call_cntr].start_id);
+        values[3] = Int64GetDatum(result_tuples[funcctx->call_cntr].end_id);
+        values[4] = Int64GetDatum(result_tuples[funcctx->call_cntr].node);
+        values[5] = Int64GetDatum(result_tuples[funcctx->call_cntr].edge);
+        values[6] = Float8GetDatum(result_tuples[funcctx->call_cntr].cost);
+        values[7] = Float8GetDatum(result_tuples[funcctx->call_cntr].agg_cost);
+        /**********************************************************************/
+
+        tuple = heap_form_tuple(tuple_desc, values, nulls);
+        result = HeapTupleGetDatum(tuple);
+        SRF_RETURN_NEXT(funcctx, result);
+    } else {
+        SRF_RETURN_DONE(funcctx);
+    }
+}
+
diff --git a/src/withPoints/src/withPoints_driver.cpp b/src/withPoints/src/withPoints_driver.cpp
new file mode 100644
index 0000000..dd77cc7
--- /dev/null
+++ b/src/withPoints/src/withPoints_driver.cpp
@@ -0,0 +1,251 @@
+/*PGR-GNU*****************************************************************
+File: one_to_many_withPoints_driver.cpp
+
+Generated with Template by:
+Copyright (c) 2015 pgRouting developers
+Mail: project at pgrouting.org
+
+Function's developer:
+Copyright (c) 2015 Celia Virginia Vergara Castillo
+Mail:
+
+------
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+********************************************************************PGR-GNU*/
+
+#include "drivers/withPoints/withPoints_driver.h"
+
+#include <algorithm>
+#include <sstream>
+#include <deque>
+#include <vector>
+#include <cassert>
+
+
+#include "dijkstra/pgr_dijkstra.hpp"
+#include "./pgr_withPoints.hpp"
+
+#include "cpp_common/pgr_alloc.hpp"
+#include "cpp_common/pgr_assert.h"
+
+template < class G >
+std::deque< Path >
+pgr_dijkstra(
+        G &graph,
+        std::vector < int64_t > sources,
+        std::vector < int64_t > targets,
+        bool only_cost,
+        bool normal) {
+    std::sort(sources.begin(), sources.end());
+    sources.erase(
+            std::unique(sources.begin(), sources.end()),
+            sources.end());
+
+    std::sort(targets.begin(), targets.end());
+    targets.erase(
+            std::unique(targets.begin(), targets.end()),
+            targets.end());
+
+    Pgr_dijkstra< G > fn_dijkstra;
+    auto paths = fn_dijkstra.dijkstra(graph, sources, targets, only_cost);
+
+    if (!normal) {
+        for (auto &path : paths) {
+            path.reverse();
+        }
+    }
+    return paths;
+}
+
+
+// CREATE OR REPLACE FUNCTION pgr_withPoint(
+// edges_sql TEXT,
+// points_sql TEXT,
+// start_pid ANYARRAY,
+// end_pid BIGINT,
+// directed BOOLEAN DEFAULT true
+
+void
+do_pgr_withPoints(
+        pgr_edge_t *edges, size_t total_edges,
+        Point_on_edge_t *points_p, size_t total_points,
+        pgr_edge_t *edges_of_points, size_t total_edges_of_points,
+        int64_t *start_pidsArr, size_t size_start_pidsArr,
+        int64_t *end_pidsArr, size_t size_end_pidsArr,
+
+        char driving_side,
+        bool details,
+        bool directed,
+        bool only_cost,
+        bool normal,
+
+        General_path_element_t **return_tuples, size_t *return_count,
+
+        char** log_msg,
+        char** notice_msg,
+        char** err_msg) {
+    std::ostringstream log;
+    std::ostringstream notice;
+    std::ostringstream err;
+    try {
+        pgassert(!(*log_msg));
+        pgassert(!(*notice_msg));
+        pgassert(!(*err_msg));
+        pgassert(!(*return_tuples));
+        pgassert((*return_count) == 0);
+        pgassert(edges || edges_of_points);
+        pgassert(points_p);
+        pgassert(start_pidsArr);
+        pgassert(end_pidsArr);
+
+        std::vector< Point_on_edge_t >
+            points(points_p, points_p + total_points);
+
+        if (!normal) {
+            for (auto &point : points) {
+                if (point.side == 'r') {
+                    point.side = 'l';
+                } else if (point.side == 'l') {
+                    point.side = 'r';
+                }
+                point.fraction = 1 - point.fraction;
+            }
+            if (driving_side == 'r') {
+                driving_side = 'l';
+            } else if (driving_side == 'l') {
+                driving_side = 'r';
+            }
+        }
+
+        int errcode = check_points(points, log);
+        if (errcode) {
+            *log_msg = strdup(log.str().c_str());
+            err << "Unexpected point(s) with same pid"
+                << " but different edge/fraction/side combination found.";
+            *err_msg = pgr_msg(err.str().c_str());
+            return;
+        }
+
+
+        std::vector< pgr_edge_t >
+            edges_to_modify(
+                    edges_of_points, edges_of_points + total_edges_of_points);
+
+        std::vector< pgr_edge_t > new_edges;
+        create_new_edges(
+                points,
+                edges_to_modify,
+                driving_side,
+                new_edges, log);
+
+
+        std::vector<int64_t>
+            start_vertices(start_pidsArr, start_pidsArr + size_start_pidsArr);
+        std::vector< int64_t >
+            end_vertices(end_pidsArr, end_pidsArr + size_end_pidsArr);
+
+        auto vertices(pgrouting::extract_vertices(edges, total_edges));
+        vertices = pgrouting::extract_vertices(vertices, new_edges);
+
+        graphType gType = directed? DIRECTED: UNDIRECTED;
+
+        std::deque< Path > paths;
+
+        if (directed) {
+            log << "Working with directed Graph\n";
+            pgrouting::DirectedGraph digraph(vertices, gType);
+            digraph.insert_edges(edges, total_edges);
+            digraph.insert_edges(new_edges);
+
+            paths = pgr_dijkstra(
+                    digraph,
+                    start_vertices, end_vertices,
+                    only_cost, normal);
+        } else {
+            log << "Working with Undirected Graph\n";
+            pgrouting::UndirectedGraph undigraph(vertices, gType);
+            undigraph.insert_edges(edges, total_edges);
+            undigraph.insert_edges(new_edges);
+            paths = pgr_dijkstra(
+                    undigraph,
+                    start_vertices, end_vertices,
+                    only_cost, normal);
+        }
+
+        if (!details) {
+            for (auto &path : paths) {
+                eliminate_details(path, edges_to_modify);
+            }
+        }
+
+        /*
+         * order paths based on the start_pid, end_pid
+         */
+        std::sort(paths.begin(), paths.end(),
+                [](const Path &a, const Path &b)
+                -> bool {
+                if (b.start_id() != a.start_id()) {
+                return a.start_id() < b.start_id();
+                }
+                return a.end_id() < b.end_id();
+                });
+
+        size_t count(0);
+        count = count_tuples(paths);
+
+
+        if (count == 0) {
+            (*return_tuples) = NULL;
+            (*return_count) = 0;
+#if 0
+            log <<
+                "No paths found";
+            *err_msg = pgr_msg(log.str().c_str());
+#endif
+            return;
+        }
+
+        (*return_tuples) = pgr_alloc(count, (*return_tuples));
+        log << "Converting a set of paths into the tuples\n";
+        (*return_count) = (collapse_paths(return_tuples, paths));
+
+        *log_msg = log.str().empty()?
+            *log_msg :
+            pgr_msg(log.str().c_str());
+        *notice_msg = notice.str().empty()?
+            *notice_msg :
+            pgr_msg(notice.str().c_str());
+    } catch (AssertFailedException &except) {
+        (*return_tuples) = pgr_free(*return_tuples);
+        (*return_count) = 0;
+        err << except.what();
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    } catch (std::exception &except) {
+        (*return_tuples) = pgr_free(*return_tuples);
+        (*return_count) = 0;
+        err << except.what();
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    } catch(...) {
+        (*return_tuples) = pgr_free(*return_tuples);
+        (*return_count) = 0;
+        err << "Caught unknown exception!";
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
+    }
+}
diff --git a/src/withPoints/test/doc-pgr_withPoints.result b/src/withPoints/test/doc-pgr_withPoints.result
index bf762de..9ae373b 100644
--- a/src/withPoints/test/doc-pgr_withPoints.result
+++ b/src/withPoints/test/doc-pgr_withPoints.result
@@ -1,113 +1,208 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 --e1
-1|1|-1|1|0.6|0
-2|2|2|4|1|0.6
-3|3|5|10|1|1.6
-4|4|10|12|0.6|2.6
-5|5|-3|-1|0|3.2
+SELECT * FROM pgr_withPoints(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction, side from pointsOfInterest',
+    -1, -3);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |   -1 |    1 |  0.6 |        0
+   2 |        2 |    2 |    4 |    1 |      0.6
+   3 |        3 |    5 |   10 |    1 |      1.6
+   4 |        4 |   10 |   12 |  0.6 |      2.6
+   5 |        5 |   -3 |   -1 |    0 |      3.2
+(5 rows)
+
 --e2
-1|1|-1|1|0.6|0
-2|2|2|4|0.7|0.6
-3|3|-6|4|0.3|1.3
-4|4|5|8|1|1.6
-5|5|6|9|1|2.6
-6|6|9|16|1|3.6
-7|7|4|3|1|4.6
-8|8|3|-1|0|5.6
+SELECT * FROM pgr_withPoints(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction, side from pointsOfInterest',
+    -1, 3,
+    details := true);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |   -1 |    1 |  0.6 |        0
+   2 |        2 |    2 |    4 |  0.7 |      0.6
+   3 |        3 |   -6 |    4 |  0.3 |      1.3
+   4 |        4 |    5 |    8 |    1 |      1.6
+   5 |        5 |    6 |    9 |    1 |      2.6
+   6 |        6 |    9 |   16 |    1 |      3.6
+   7 |        7 |    4 |    3 |    1 |      4.6
+   8 |        8 |    3 |   -1 |    0 |      5.6
+(8 rows)
+
 --e3
-1|1|-3|-1|1|0.6|0
-2|2|-3|2|4|1|0.6
-3|3|-3|5|10|1|1.6
-4|4|-3|10|12|0.6|2.6
-5|5|-3|-3|-1|0|3.2
-6|1|5|-1|1|0.6|0
-7|2|5|2|4|1|0.6
-8|3|5|5|-1|0|1.6
+SELECT * FROM pgr_withPoints(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction, side from pointsOfInterest',
+    -1, ARRAY[-3,5]);
+ seq | path_seq | end_pid | node | edge | cost | agg_cost 
+-----+----------+---------+------+------+------+----------
+   1 |        1 |      -3 |   -1 |    1 |  0.6 |        0
+   2 |        2 |      -3 |    2 |    4 |    1 |      0.6
+   3 |        3 |      -3 |    5 |   10 |    1 |      1.6
+   4 |        4 |      -3 |   10 |   12 |  0.6 |      2.6
+   5 |        5 |      -3 |   -3 |   -1 |    0 |      3.2
+   6 |        1 |       5 |   -1 |    1 |  0.6 |        0
+   7 |        2 |       5 |    2 |    4 |    1 |      0.6
+   8 |        3 |       5 |    5 |   -1 |    0 |      1.6
+(8 rows)
+
 --e4
-1|1|-1|-1|1|0.6|0
-2|2|-1|2|4|1|0.6
-3|3|-1|5|10|1|1.6
-4|4|-1|10|12|0.6|2.6
-5|5|-1|-3|-1|0|3.2
-6|1|2|2|4|1|0
-7|2|2|5|10|1|1
-8|3|2|10|12|0.6|2
-9|4|2|-3|-1|0|2.6
+SELECT * FROM pgr_withPoints(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction, side from pointsOfInterest',
+    ARRAY[-1,2], -3);
+ seq | path_seq | start_pid | node | edge | cost | agg_cost 
+-----+----------+-----------+------+------+------+----------
+   1 |        1 |        -1 |   -1 |    1 |  0.6 |        0
+   2 |        2 |        -1 |    2 |    4 |    1 |      0.6
+   3 |        3 |        -1 |    5 |   10 |    1 |      1.6
+   4 |        4 |        -1 |   10 |   12 |  0.6 |      2.6
+   5 |        5 |        -1 |   -3 |   -1 |    0 |      3.2
+   6 |        1 |         2 |    2 |    4 |    1 |        0
+   7 |        2 |         2 |    5 |   10 |    1 |        1
+   8 |        3 |         2 |   10 |   12 |  0.6 |        2
+   9 |        4 |         2 |   -3 |   -1 |    0 |      2.6
+(9 rows)
+
 --e5
-1|1|-1|-3|-1|1|0.6|0
-2|2|-1|-3|2|4|1|0.6
-3|3|-1|-3|5|10|1|1.6
-4|4|-1|-3|10|12|0.6|2.6
-5|5|-1|-3|-3|-1|0|3.2
-6|1|-1|7|-1|1|0.6|0
-7|2|-1|7|2|4|1|0.6
-8|3|-1|7|5|7|1|1.6
-9|4|-1|7|8|6|1|2.6
-10|5|-1|7|7|-1|0|3.6
-11|1|2|-3|2|4|1|0
-12|2|2|-3|5|10|1|1
-13|3|2|-3|10|12|0.6|2
-14|4|2|-3|-3|-1|0|2.6
-15|1|2|7|2|4|1|0
-16|2|2|7|5|7|1|1
-17|3|2|7|8|6|1|2
-18|4|2|7|7|-1|0|3
+SELECT * FROM pgr_withPoints(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction, side from pointsOfInterest',
+    ARRAY[-1,2], ARRAY[-3,7]);
+ seq | path_seq | start_pid | end_pid | node | edge | cost | agg_cost 
+-----+----------+-----------+---------+------+------+------+----------
+   1 |        1 |        -1 |      -3 |   -1 |    1 |  0.6 |        0
+   2 |        2 |        -1 |      -3 |    2 |    4 |    1 |      0.6
+   3 |        3 |        -1 |      -3 |    5 |   10 |    1 |      1.6
+   4 |        4 |        -1 |      -3 |   10 |   12 |  0.6 |      2.6
+   5 |        5 |        -1 |      -3 |   -3 |   -1 |    0 |      3.2
+   6 |        1 |        -1 |       7 |   -1 |    1 |  0.6 |        0
+   7 |        2 |        -1 |       7 |    2 |    4 |    1 |      0.6
+   8 |        3 |        -1 |       7 |    5 |    7 |    1 |      1.6
+   9 |        4 |        -1 |       7 |    8 |    6 |    1 |      2.6
+  10 |        5 |        -1 |       7 |    7 |   -1 |    0 |      3.6
+  11 |        1 |         2 |      -3 |    2 |    4 |    1 |        0
+  12 |        2 |         2 |      -3 |    5 |   10 |    1 |        1
+  13 |        3 |         2 |      -3 |   10 |   12 |  0.6 |        2
+  14 |        4 |         2 |      -3 |   -3 |   -1 |    0 |      2.6
+  15 |        1 |         2 |       7 |    2 |    4 |    1 |        0
+  16 |        2 |         2 |       7 |    5 |    7 |    1 |        1
+  17 |        3 |         2 |       7 |    8 |    6 |    1 |        2
+  18 |        4 |         2 |       7 |    7 |   -1 |    0 |        3
+(18 rows)
+
 --q2
-(-1 => -6) at 4th step:| visits|Point|6
-(-1 => -3) at 4th step:| passes in front of|Point|6
-(-1 => -2) at 4th step:| passes in front of|Point|6
-(-1 => -2) at 6th step:| passes in front of|Vertex|6
-(-1 => 3) at 4th step:| passes in front of|Point|6
-(-1 => 3) at 6th step:| passes in front of|Vertex|6
-(-1 => 6) at 4th step:| passes in front of|Point|6
-(-1 => 6) at 6th step:| visits|Vertex|6
-(1 => -6) at 3th step:| visits|Point|6
-(1 => -3) at 3th step:| passes in front of|Point|6
-(1 => -2) at 3th step:| passes in front of|Point|6
-(1 => -2) at 5th step:| passes in front of|Vertex|6
-(1 => 3) at 3th step:| passes in front of|Point|6
-(1 => 3) at 5th step:| passes in front of|Vertex|6
-(1 => 6) at 3th step:| passes in front of|Point|6
-(1 => 6) at 5th step:| visits|Vertex|6
+SELECT ('(' || start_pid || ' => ' || end_pid ||') at ' || path_seq || 'th step:')::TEXT AS path_at,
+        CASE WHEN edge = -1 THEN ' visits'
+            ELSE ' passes in front of'
+        END as status,
+        CASE WHEN node < 0 THEN 'Point'
+            ELSE 'Vertex'
+        END as is_a,
+        abs(node) as id
+    FROM pgr_withPoints(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+        'SELECT pid, edge_id, fraction, side from pointsOfInterest',
+        ARRAY[1,-1], ARRAY[-2,-3,-6,3,6],
+        driving_side := 'r',
+        details := true)
+    WHERE node IN (-6,6);
+         path_at         |       status        |  is_a  | id 
+-------------------------+---------------------+--------+----
+ (-1 => -6) at 4th step: |  visits             | Point  |  6
+ (-1 => -3) at 4th step: |  passes in front of | Point  |  6
+ (-1 => -2) at 4th step: |  passes in front of | Point  |  6
+ (-1 => -2) at 6th step: |  passes in front of | Vertex |  6
+ (-1 => 3) at 4th step:  |  passes in front of | Point  |  6
+ (-1 => 3) at 6th step:  |  passes in front of | Vertex |  6
+ (-1 => 6) at 4th step:  |  passes in front of | Point  |  6
+ (-1 => 6) at 6th step:  |  visits             | Vertex |  6
+ (1 => -6) at 3th step:  |  visits             | Point  |  6
+ (1 => -3) at 3th step:  |  passes in front of | Point  |  6
+ (1 => -2) at 3th step:  |  passes in front of | Point  |  6
+ (1 => -2) at 5th step:  |  passes in front of | Vertex |  6
+ (1 => 3) at 3th step:   |  passes in front of | Point  |  6
+ (1 => 3) at 5th step:   |  passes in front of | Vertex |  6
+ (1 => 6) at 3th step:   |  passes in front of | Point  |  6
+ (1 => 6) at 5th step:   |  visits             | Vertex |  6
+(16 rows)
+
 --q3
-(-1 => -6) at 3th step:| visits|Point|6
-(-1 => -3) at 3th step:| passes in front of|Point|6
-(-1 => -2) at 3th step:| passes in front of|Point|6
-(-1 => -2) at 5th step:| passes in front of|Vertex|6
-(-1 => 3) at 3th step:| passes in front of|Point|6
-(-1 => 3) at 5th step:| passes in front of|Vertex|6
-(-1 => 6) at 3th step:| passes in front of|Point|6
-(-1 => 6) at 5th step:| visits|Vertex|6
-(1 => -6) at 4th step:| visits|Point|6
-(1 => -3) at 4th step:| passes in front of|Point|6
-(1 => -2) at 4th step:| passes in front of|Point|6
-(1 => -2) at 6th step:| passes in front of|Vertex|6
-(1 => 3) at 4th step:| passes in front of|Point|6
-(1 => 3) at 6th step:| passes in front of|Vertex|6
-(1 => 6) at 4th step:| passes in front of|Point|6
-(1 => 6) at 6th step:| visits|Vertex|6
+SELECT ('(' || start_pid || ' => ' || end_pid ||') at ' || path_seq || 'th step:')::TEXT AS path_at,
+        CASE WHEN edge = -1 THEN ' visits'
+            ELSE ' passes in front of'
+        END as status,
+        CASE WHEN node < 0 THEN 'Point'
+            ELSE 'Vertex'
+        END as is_a,
+        abs(node) as id
+    FROM pgr_withPoints(
+        'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+        'SELECT pid, edge_id, fraction, side from pointsOfInterest',
+        ARRAY[1,-1], ARRAY[-2,-3,-6,3,6],
+        driving_side := 'l',
+        details := true)
+    WHERE node IN (-6,6);
+         path_at         |       status        |  is_a  | id 
+-------------------------+---------------------+--------+----
+ (-1 => -6) at 3th step: |  visits             | Point  |  6
+ (-1 => -3) at 3th step: |  passes in front of | Point  |  6
+ (-1 => -2) at 3th step: |  passes in front of | Point  |  6
+ (-1 => -2) at 5th step: |  passes in front of | Vertex |  6
+ (-1 => 3) at 3th step:  |  passes in front of | Point  |  6
+ (-1 => 3) at 5th step:  |  passes in front of | Vertex |  6
+ (-1 => 6) at 3th step:  |  passes in front of | Point  |  6
+ (-1 => 6) at 5th step:  |  visits             | Vertex |  6
+ (1 => -6) at 4th step:  |  visits             | Point  |  6
+ (1 => -3) at 4th step:  |  passes in front of | Point  |  6
+ (1 => -2) at 4th step:  |  passes in front of | Point  |  6
+ (1 => -2) at 6th step:  |  passes in front of | Vertex |  6
+ (1 => 3) at 4th step:   |  passes in front of | Point  |  6
+ (1 => 3) at 6th step:   |  passes in front of | Vertex |  6
+ (1 => 6) at 4th step:   |  passes in front of | Point  |  6
+ (1 => 6) at 6th step:   |  visits             | Vertex |  6
+(16 rows)
+
 --q4
-1|1|-1|-3|-1|1|0.6|0
-2|2|-1|-3|2|4|0.7|0.6
-3|3|-1|-3|-6|4|0.3|1.3
-4|4|-1|-3|5|10|1|1.6
-5|5|-1|-3|10|12|0.6|2.6
-6|6|-1|-3|-3|-1|0|3.2
-7|1|-1|7|-1|1|0.6|0
-8|2|-1|7|2|4|0.7|0.6
-9|3|-1|7|-6|4|0.3|1.3
-10|4|-1|7|5|7|1|1.6
-11|5|-1|7|8|6|0.7|2.6
-12|6|-1|7|-4|6|0.3|3.3
-13|7|-1|7|7|-1|0|3.6
-14|1|2|-3|2|4|0.7|0
-15|2|2|-3|-6|4|0.3|0.7
-16|3|2|-3|5|10|1|1
-17|4|2|-3|10|12|0.6|2
-18|5|2|-3|-3|-1|0|2.6
-19|1|2|7|2|4|0.7|0
-20|2|2|7|-6|4|0.3|0.7
-21|3|2|7|5|7|1|1
-22|4|2|7|8|6|0.7|2
-23|5|2|7|-4|6|0.3|2.7
-24|6|2|7|7|-1|0|3
+SELECT * FROM pgr_withPoints(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction, side from pointsOfInterest',
+    ARRAY[-1,2], ARRAY[-3,7],
+    directed := false,
+    details := true);
+ seq | path_seq | start_pid | end_pid | node | edge | cost | agg_cost 
+-----+----------+-----------+---------+------+------+------+----------
+   1 |        1 |        -1 |      -3 |   -1 |    1 |  0.6 |        0
+   2 |        2 |        -1 |      -3 |    2 |    4 |  0.7 |      0.6
+   3 |        3 |        -1 |      -3 |   -6 |    4 |  0.3 |      1.3
+   4 |        4 |        -1 |      -3 |    5 |   10 |    1 |      1.6
+   5 |        5 |        -1 |      -3 |   10 |   12 |  0.6 |      2.6
+   6 |        6 |        -1 |      -3 |   -3 |   -1 |    0 |      3.2
+   7 |        1 |        -1 |       7 |   -1 |    1 |  0.6 |        0
+   8 |        2 |        -1 |       7 |    2 |    4 |  0.7 |      0.6
+   9 |        3 |        -1 |       7 |   -6 |    4 |  0.3 |      1.3
+  10 |        4 |        -1 |       7 |    5 |    7 |    1 |      1.6
+  11 |        5 |        -1 |       7 |    8 |    6 |  0.7 |      2.6
+  12 |        6 |        -1 |       7 |   -4 |    6 |  0.3 |      3.3
+  13 |        7 |        -1 |       7 |    7 |   -1 |    0 |      3.6
+  14 |        1 |         2 |      -3 |    2 |    4 |  0.7 |        0
+  15 |        2 |         2 |      -3 |   -6 |    4 |  0.3 |      0.7
+  16 |        3 |         2 |      -3 |    5 |   10 |    1 |        1
+  17 |        4 |         2 |      -3 |   10 |   12 |  0.6 |        2
+  18 |        5 |         2 |      -3 |   -3 |   -1 |    0 |      2.6
+  19 |        1 |         2 |       7 |    2 |    4 |  0.7 |        0
+  20 |        2 |         2 |       7 |   -6 |    4 |  0.3 |      0.7
+  21 |        3 |         2 |       7 |    5 |    7 |    1 |        1
+  22 |        4 |         2 |       7 |    8 |    6 |  0.7 |        2
+  23 |        5 |         2 |       7 |   -4 |    6 |  0.3 |      2.7
+  24 |        6 |         2 |       7 |    7 |   -1 |    0 |        3
+(24 rows)
+
 --q5
+ROLLBACK;
+ROLLBACK
diff --git a/src/withPoints/test/doc-pgr_withPointsCost.result b/src/withPoints/test/doc-pgr_withPointsCost.result
index 244d354..7930644 100644
--- a/src/withPoints/test/doc-pgr_withPointsCost.result
+++ b/src/withPoints/test/doc-pgr_withPointsCost.result
@@ -1,31 +1,105 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 --e1
--1|-3|3.2
+SELECT * FROM pgr_withPointsCost(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction, side from pointsOfInterest',
+    -1, -3);
+ start_pid | end_pid | agg_cost 
+-----------+---------+----------
+        -1 |      -3 |      3.2
+(1 row)
+
 --e2
--1|3|1.6
+SELECT * FROM pgr_withPointsCost(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction, side from pointsOfInterest',
+    -1, 3,
+    directed := false);
+ start_pid | end_pid | agg_cost 
+-----------+---------+----------
+        -1 |       3 |      1.6
+(1 row)
+
 --e3
--1|-3|3.2
--1|5|1.6
+SELECT * FROM pgr_withPointsCost(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction, side from pointsOfInterest',
+    -1, ARRAY[-3,5]);
+ start_pid | end_pid | agg_cost 
+-----------+---------+----------
+        -1 |      -3 |      3.2
+        -1 |       5 |      1.6
+(2 rows)
+
 --e4
--1|-3|3.2
-2|-3|2.6
+SELECT * FROM pgr_withPointsCost(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction, side from pointsOfInterest',
+    ARRAY[-1,2], -3);
+ start_pid | end_pid | agg_cost 
+-----------+---------+----------
+        -1 |      -3 |      3.2
+         2 |      -3 |      2.6
+(2 rows)
+
 --e5
--1|-3|3.2
--1|7|3.6
-2|-3|2.6
-2|7|3
+SELECT * FROM pgr_withPointsCost(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction, side from pointsOfInterest',
+    ARRAY[-1,2], ARRAY[-3,7]);
+ start_pid | end_pid | agg_cost 
+-----------+---------+----------
+        -1 |      -3 |      3.2
+        -1 |       7 |      3.6
+         2 |      -3 |      2.6
+         2 |       7 |        3
+(4 rows)
+
 --q2
--1|-3|3.2
--1|7|3.6
-2|-3|2.6
-2|7|3
+SELECT * FROM pgr_withPointsCost(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction, side from pointsOfInterest',
+    ARRAY[-1,2], ARRAY[-3,7],
+    driving_side := 'l');
+ start_pid | end_pid | agg_cost 
+-----------+---------+----------
+        -1 |      -3 |      3.2
+        -1 |       7 |      3.6
+         2 |      -3 |      2.6
+         2 |       7 |        3
+(4 rows)
+
 --q3
--1|-3|4
--1|7|4.4
-2|-3|2.6
-2|7|3
+SELECT * FROM pgr_withPointsCost(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction, side from pointsOfInterest',
+    ARRAY[-1,2], ARRAY[-3,7],
+    driving_side := 'r');
+ start_pid | end_pid | agg_cost 
+-----------+---------+----------
+        -1 |      -3 |        4
+        -1 |       7 |      4.4
+         2 |      -3 |      2.6
+         2 |       7 |        3
+(4 rows)
+
 --q4
--1|-3|3.2
--1|7|3.6
-2|-3|2.6
-2|7|3
+SELECT * FROM pgr_withPointsCost(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction, side from pointsOfInterest',
+    ARRAY[-1,2], ARRAY[-3,7],
+    driving_side := 'b');
+ start_pid | end_pid | agg_cost 
+-----------+---------+----------
+        -1 |      -3 |      3.2
+        -1 |       7 |      3.6
+         2 |      -3 |      2.6
+         2 |       7 |        3
+(4 rows)
+
 --q5
+ROLLBACK;
+ROLLBACK
diff --git a/src/withPoints/test/doc-pgr_withPointsDD.result b/src/withPoints/test/doc-pgr_withPointsDD.result
index c14b1f5..6435a0f 100644
--- a/src/withPoints/test/doc-pgr_withPointsDD.result
+++ b/src/withPoints/test/doc-pgr_withPointsDD.result
@@ -1,52 +1,96 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 --q1
-1|-1|-1|0|0
-2|1|1|0.4|0.4
-3|2|1|0.6|0.6
-4|5|4|0.3|1.6
-5|6|8|1|2.6
-6|8|7|1|2.6
-7|10|10|1|2.6
-8|7|6|0.3|3.6
-9|9|9|1|3.6
-10|11|11|1|3.6
-11|13|14|1|3.6
+SELECT * FROM pgr_withPointsDD(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction, side from pointsOfInterest',
+    -1, 3.8);
+ seq | node | edge | cost | agg_cost 
+-----+------+------+------+----------
+   1 |   -1 |   -1 |    0 |        0
+   2 |    1 |    1 |  0.4 |      0.4
+   3 |    2 |    1 |  0.6 |      0.6
+   4 |    5 |    4 |  0.3 |      1.6
+   5 |    6 |    8 |    1 |      2.6
+   6 |    8 |    7 |    1 |      2.6
+   7 |   10 |   10 |    1 |      2.6
+   8 |    7 |    6 |  0.3 |      3.6
+   9 |    9 |    9 |    1 |      3.6
+  10 |   11 |   11 |    1 |      3.6
+  11 |   13 |   14 |    1 |      3.6
+(11 rows)
+
 --q2
-1|-1|-1|0|0
-2|1|1|0.4|0.4
-3|2|1|1|1.4
-4|-6|4|0.7|2.1
-5|5|4|0.3|2.4
-6|6|8|1|3.4
-7|8|7|1|3.4
-8|10|10|1|3.4
+SELECT * FROM pgr_withPointsDD(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction, side from pointsOfInterest',
+    -1, 3.8,
+    driving_side := 'r',
+    details := true);
+ seq | node | edge | cost | agg_cost 
+-----+------+------+------+----------
+   1 |   -1 |   -1 |    0 |        0
+   2 |    1 |    1 |  0.4 |      0.4
+   3 |    2 |    1 |    1 |      1.4
+   4 |   -6 |    4 |  0.7 |      2.1
+   5 |    5 |    4 |  0.3 |      2.4
+   6 |    6 |    8 |    1 |      3.4
+   7 |    8 |    7 |    1 |      3.4
+   8 |   10 |   10 |    1 |      3.4
+(8 rows)
+
 --q3
-1|-1|-1|0|0
-2|2|1|0.6|0.6
-3|-6|4|0.7|1.3
-4|5|4|0.3|1.6
-5|1|1|1|1.6
-6|6|8|1|2.6
-7|8|7|1|2.6
-8|10|10|1|2.6
-9|-3|12|0.6|3.2
-10|-4|6|0.7|3.3
-11|7|6|0.3|3.6
-12|9|9|1|3.6
-13|11|11|1|3.6
-14|13|14|1|3.6
+SELECT * FROM pgr_withPointsDD(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction, side from pointsOfInterest',
+    -1, 3.8,
+    driving_side := 'l',
+    details := true);
+ seq | node | edge | cost | agg_cost 
+-----+------+------+------+----------
+   1 |   -1 |   -1 |    0 |        0
+   2 |    2 |    1 |  0.6 |      0.6
+   3 |   -6 |    4 |  0.7 |      1.3
+   4 |    5 |    4 |  0.3 |      1.6
+   5 |    1 |    1 |    1 |      1.6
+   6 |    6 |    8 |    1 |      2.6
+   7 |    8 |    7 |    1 |      2.6
+   8 |   10 |   10 |    1 |      2.6
+   9 |   -3 |   12 |  0.6 |      3.2
+  10 |   -4 |    6 |  0.7 |      3.3
+  11 |    7 |    6 |  0.3 |      3.6
+  12 |    9 |    9 |    1 |      3.6
+  13 |   11 |   11 |    1 |      3.6
+  14 |   13 |   14 |    1 |      3.6
+(14 rows)
+
 --q4
-1|-1|-1|0|0
-2|1|1|0.4|0.4
-3|2|1|0.6|0.6
-4|-6|4|0.7|1.3
-5|5|4|0.3|1.6
-6|6|8|1|2.6
-7|8|7|1|2.6
-8|10|10|1|2.6
-9|-3|12|0.6|3.2
-10|-4|6|0.7|3.3
-11|7|6|0.3|3.6
-12|9|9|1|3.6
-13|11|11|1|3.6
-14|13|14|1|3.6
+SELECT * FROM pgr_withPointsDD(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction, side from pointsOfInterest',
+    -1, 3.8,
+    driving_side := 'b',
+    details := true);
+ seq | node | edge | cost | agg_cost 
+-----+------+------+------+----------
+   1 |   -1 |   -1 |    0 |        0
+   2 |    1 |    1 |  0.4 |      0.4
+   3 |    2 |    1 |  0.6 |      0.6
+   4 |   -6 |    4 |  0.7 |      1.3
+   5 |    5 |    4 |  0.3 |      1.6
+   6 |    6 |    8 |    1 |      2.6
+   7 |    8 |    7 |    1 |      2.6
+   8 |   10 |   10 |    1 |      2.6
+   9 |   -3 |   12 |  0.6 |      3.2
+  10 |   -4 |    6 |  0.7 |      3.3
+  11 |    7 |    6 |  0.3 |      3.6
+  12 |    9 |    9 |    1 |      3.6
+  13 |   11 |   11 |    1 |      3.6
+  14 |   13 |   14 |    1 |      3.6
+(14 rows)
+
 --q5
+ROLLBACK;
+ROLLBACK
diff --git a/src/withPoints/test/doc-pgr_withPointsKSP.result b/src/withPoints/test/doc-pgr_withPointsKSP.result
index d956f34..965c8dc 100644
--- a/src/withPoints/test/doc-pgr_withPointsKSP.result
+++ b/src/withPoints/test/doc-pgr_withPointsKSP.result
@@ -1,79 +1,119 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 --q1
-1|1|1|-1|1|0.6|0
-2|1|2|2|4|1|0.6
-3|1|3|5|8|1|1.6
-4|1|4|6|9|1|2.6
-5|1|5|9|15|0.4|3.6
-6|1|6|-2|-1|0|4
-7|2|1|-1|1|0.6|0
-8|2|2|2|4|1|0.6
-9|2|3|5|8|1|1.6
-10|2|4|6|11|1|2.6
-11|2|5|11|13|1|3.6
-12|2|6|12|15|0.6|4.6
-13|2|7|-2|-1|0|5.2
+SELECT * FROM pgr_withPointsKSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction, side from pointsOfInterest',
+    -1, -2, 2);
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |   -1 |    1 |  0.6 |        0
+   2 |       1 |        2 |    2 |    4 |    1 |      0.6
+   3 |       1 |        3 |    5 |    8 |    1 |      1.6
+   4 |       1 |        4 |    6 |    9 |    1 |      2.6
+   5 |       1 |        5 |    9 |   15 |  0.4 |      3.6
+   6 |       1 |        6 |   -2 |   -1 |    0 |        4
+   7 |       2 |        1 |   -1 |    1 |  0.6 |        0
+   8 |       2 |        2 |    2 |    4 |    1 |      0.6
+   9 |       2 |        3 |    5 |    8 |    1 |      1.6
+  10 |       2 |        4 |    6 |   11 |    1 |      2.6
+  11 |       2 |        5 |   11 |   13 |    1 |      3.6
+  12 |       2 |        6 |   12 |   15 |  0.6 |      4.6
+  13 |       2 |        7 |   -2 |   -1 |    0 |      5.2
+(13 rows)
+
 --q2
-1|1|1|-1|1|0.6|0
-2|1|2|2|4|0.7|0.6
-3|1|3|-6|4|0.3|1.3
-4|1|4|5|8|1|1.6
-5|1|5|6|-1|0|2.6
-6|2|1|-1|1|0.6|0
-7|2|2|2|4|0.7|0.6
-8|2|3|-6|4|0.3|1.3
-9|2|4|5|10|1|1.6
-10|2|5|10|12|0.6|2.6
-11|2|6|-3|12|0.4|3.2
-12|2|7|11|13|1|3.6
-13|2|8|12|15|0.6|4.6
-14|2|9|-2|15|0.4|5.2
-15|2|10|9|9|1|5.6
-16|2|11|6|-1|0|6.6
+SELECT * FROM pgr_withPointsKSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction, side from pointsOfInterest',
+    -1, 6, 2, details := true);
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |   -1 |    1 |  0.6 |        0
+   2 |       1 |        2 |    2 |    4 |  0.7 |      0.6
+   3 |       1 |        3 |   -6 |    4 |  0.3 |      1.3
+   4 |       1 |        4 |    5 |    8 |    1 |      1.6
+   5 |       1 |        5 |    6 |   -1 |    0 |      2.6
+   6 |       2 |        1 |   -1 |    1 |  0.6 |        0
+   7 |       2 |        2 |    2 |    4 |  0.7 |      0.6
+   8 |       2 |        3 |   -6 |    4 |  0.3 |      1.3
+   9 |       2 |        4 |    5 |   10 |    1 |      1.6
+  10 |       2 |        5 |   10 |   12 |  0.6 |      2.6
+  11 |       2 |        6 |   -3 |   12 |  0.4 |      3.2
+  12 |       2 |        7 |   11 |   13 |    1 |      3.6
+  13 |       2 |        8 |   12 |   15 |  0.6 |      4.6
+  14 |       2 |        9 |   -2 |   15 |  0.4 |      5.2
+  15 |       2 |       10 |    9 |    9 |    1 |      5.6
+  16 |       2 |       11 |    6 |   -1 |    0 |      6.6
+(16 rows)
+
 --q3
-1|1|1|-1|1|0.6|0
-2|1|2|2|4|0.7|0.6
-3|1|3|-6|4|0.3|1.3
-4|1|4|5|8|1|1.6
-5|1|5|6|9|1|2.6
-6|1|6|9|15|1|3.6
-7|1|7|12|15|0.6|4.6
-8|1|8|-2|-1|0|5.2
-9|2|1|-1|1|0.6|0
-10|2|2|2|4|0.7|0.6
-11|2|3|-6|4|0.3|1.3
-12|2|4|5|8|1|1.6
-13|2|5|6|11|1|2.6
-14|2|6|11|13|1|3.6
-15|2|7|12|15|0.6|4.6
-16|2|8|-2|-1|0|5.2
+SELECT * FROM pgr_withPointsKSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction, side from pointsOfInterest',
+    -1, -2, 2,
+    driving_side := 'l', details := true);
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |   -1 |    1 |  0.6 |        0
+   2 |       1 |        2 |    2 |    4 |  0.7 |      0.6
+   3 |       1 |        3 |   -6 |    4 |  0.3 |      1.3
+   4 |       1 |        4 |    5 |    8 |    1 |      1.6
+   5 |       1 |        5 |    6 |    9 |    1 |      2.6
+   6 |       1 |        6 |    9 |   15 |    1 |      3.6
+   7 |       1 |        7 |   12 |   15 |  0.6 |      4.6
+   8 |       1 |        8 |   -2 |   -1 |    0 |      5.2
+   9 |       2 |        1 |   -1 |    1 |  0.6 |        0
+  10 |       2 |        2 |    2 |    4 |  0.7 |      0.6
+  11 |       2 |        3 |   -6 |    4 |  0.3 |      1.3
+  12 |       2 |        4 |    5 |    8 |    1 |      1.6
+  13 |       2 |        5 |    6 |   11 |    1 |      2.6
+  14 |       2 |        6 |   11 |   13 |    1 |      3.6
+  15 |       2 |        7 |   12 |   15 |  0.6 |      4.6
+  16 |       2 |        8 |   -2 |   -1 |    0 |      5.2
+(16 rows)
+
 --q4
-1|1|1|-1|1|0.4|0
-2|1|2|1|1|1|0.4
-3|1|3|2|4|0.7|1.4
-4|1|4|-6|4|0.3|2.1
-5|1|5|5|8|1|2.4
-6|1|6|6|9|1|3.4
-7|1|7|9|15|0.4|4.4
-8|1|8|-2|-1|0|4.8
-9|2|1|-1|1|0.4|0
-10|2|2|1|1|1|0.4
-11|2|3|2|4|0.7|1.4
-12|2|4|-6|4|0.3|2.1
-13|2|5|5|8|1|2.4
-14|2|6|6|11|1|3.4
-15|2|7|11|13|1|4.4
-16|2|8|12|15|1|5.4
-17|2|9|9|15|0.4|6.4
-18|2|10|-2|-1|0|6.8
-19|3|1|-1|1|0.4|0
-20|3|2|1|1|1|0.4
-21|3|3|2|4|0.7|1.4
-22|3|4|-6|4|0.3|2.1
-23|3|5|5|10|1|2.4
-24|3|6|10|12|0.6|3.4
-25|3|7|-3|12|0.4|4
-26|3|8|11|13|1|4.4
-27|3|9|12|15|1|5.4
-28|3|10|9|15|0.4|6.4
-29|3|11|-2|-1|0|6.8
+SELECT * FROM pgr_withPointsKSP(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table ORDER BY id',
+    'SELECT pid, edge_id, fraction, side from pointsOfInterest',
+    -1, -2, 2,
+    heap_paths := true, driving_side := 'r', details := true);
+ seq | path_id | path_seq | node | edge | cost | agg_cost 
+-----+---------+----------+------+------+------+----------
+   1 |       1 |        1 |   -1 |    1 |  0.4 |        0
+   2 |       1 |        2 |    1 |    1 |    1 |      0.4
+   3 |       1 |        3 |    2 |    4 |  0.7 |      1.4
+   4 |       1 |        4 |   -6 |    4 |  0.3 |      2.1
+   5 |       1 |        5 |    5 |    8 |    1 |      2.4
+   6 |       1 |        6 |    6 |    9 |    1 |      3.4
+   7 |       1 |        7 |    9 |   15 |  0.4 |      4.4
+   8 |       1 |        8 |   -2 |   -1 |    0 |      4.8
+   9 |       2 |        1 |   -1 |    1 |  0.4 |        0
+  10 |       2 |        2 |    1 |    1 |    1 |      0.4
+  11 |       2 |        3 |    2 |    4 |  0.7 |      1.4
+  12 |       2 |        4 |   -6 |    4 |  0.3 |      2.1
+  13 |       2 |        5 |    5 |    8 |    1 |      2.4
+  14 |       2 |        6 |    6 |   11 |    1 |      3.4
+  15 |       2 |        7 |   11 |   13 |    1 |      4.4
+  16 |       2 |        8 |   12 |   15 |    1 |      5.4
+  17 |       2 |        9 |    9 |   15 |  0.4 |      6.4
+  18 |       2 |       10 |   -2 |   -1 |    0 |      6.8
+  19 |       3 |        1 |   -1 |    1 |  0.4 |        0
+  20 |       3 |        2 |    1 |    1 |    1 |      0.4
+  21 |       3 |        3 |    2 |    4 |  0.7 |      1.4
+  22 |       3 |        4 |   -6 |    4 |  0.3 |      2.1
+  23 |       3 |        5 |    5 |   10 |    1 |      2.4
+  24 |       3 |        6 |   10 |   12 |  0.6 |      3.4
+  25 |       3 |        7 |   -3 |   12 |  0.4 |        4
+  26 |       3 |        8 |   11 |   13 |    1 |      4.4
+  27 |       3 |        9 |   12 |   15 |    1 |      5.4
+  28 |       3 |       10 |    9 |   15 |  0.4 |      6.4
+  29 |       3 |       11 |   -2 |   -1 |    0 |      6.8
+(29 rows)
+
 --q5
+ROLLBACK;
+ROLLBACK
diff --git a/src/withPoints/test/test.conf b/src/withPoints/test/test.conf
index b1aa9a4..6215de6 100644
--- a/src/withPoints/test/test.conf
+++ b/src/withPoints/test/test.conf
@@ -14,6 +14,7 @@
             doc-pgr_withPointsCost
             doc-pgr_withPointsDD
             doc-pgr_withPointsKSP
+            doc-pgr_withPointsVia
             )],
         'linux' => [qw(
             doc-pgr_withPointsKSP
diff --git a/tools/build-extension-update-files.pl b/tools/build-extension-update-files.pl
deleted file mode 100755
index 6d95b23..0000000
--- a/tools/build-extension-update-files.pl
+++ /dev/null
@@ -1,277 +0,0 @@
-#!/usr/bin/perl -w
-eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
-    if 0; #$running_under_some_shell
-
-# -------------------------------------------------------------
-# Usage: build-extension-update-files <version> [<pgrouting-src-dir>]
-#
-# Author: Stephen Woodbridge
-# Date: 2015-07-25
-# License: MIT-X
-# -------------------------------------------------------------
-# Description
-#
-# This script read a file from lib/pgrouting--<version>.sig
-# that should be the .sig for the current version of the extension.
-# lib/pgrouting--<version>.sig
-#
-# It then looks in tools/sigs/pgrouting--<old_version>.sig and
-# creates an update script for each version found. The update scripts
-# are written to:
-#   build/lib/pgrouting--<old_version>--<current_version>.sql
-# and "sudo make install" will install them as part of the extension.
-#
-# Algorithm
-# 1. check if lib/pgrouting--<version>.sig exists and load it
-# 2. get a list of version signatures from tools/sigs/*
-# 3. foreach old version sig file
-# 4.   generate an update file in lib/
-#
-# This is part of the automated pgRouting extension update
-# system that PostgreSQL require a collection of files that define
-# how to update an old version of pgRouting to the current version
-# using "ALTER EXTENSION pgrouting UPDATE TO <version>;"
-# The lib/pgrouting--<current_version>.sig and the update scripts
-# are automatically generated when when cmake is run. You don't
-# need to run this script manually.
-#
-# See also tools/mk-signature-file
-# ------------------------------------------------------------
-
-use strict;
-use Data::Dumper;
-use File::Find ();
-
-my $DEBUG = 0;
-
-use vars qw/*name *dir *prune/;
-*name   = *File::Find::name;
-*dir    = *File::Find::dir;
-*prune  = *File::Find::prune;
-
-
-sub Usage {
-    die "Usage: build-extension-update-files <version> [<pgrouting-src-dir>]\n";
-}
-
-print "Building the updating files\n";
-# get the commandline options
-# these are typically set by cmake
-my $version = shift @ARGV || Usage();
-my $src_dir = shift @ARGV || '.';
-
-# define the input file names and verify they exist.
-my $SIG = "lib/pgrouting--$version.sig";
-my $SQL = "lib/pgrouting--$version.sql";
-die "ERROR: Failed to find '$SIG'\n" unless -f $SIG;
-die "ERROR: Failed to find '$SQL'\n" unless -f $SQL;
-
-# collect a list of the old version .sig files
-my @old_files = ();
-
-# read and parse the current version .sig file
-my $new_hash = read_sig_file( $SIG );
-
-# assume we are in the build dir, but we might be up one level
-# if we are somewhere else we will fail to find the files
-my $sig_dir = 'tools/sigs/';
-$sig_dir = '../tools/sigs/' if  -d '../tools/sigs';
-$sig_dir = $src_dir . '/tools/sigs/' if  -d $src_dir . '/tools/sigs';
-
-# search for the old version .sig files in $sig_dir
-# and save the /path/file.sig into @old_files
-File::Find::find({wanted => \&wanted}, $sig_dir);
-
-# foreach old files
-for my $old_file ( sort @old_files ) {
-    print "\ngenerating $old_file upgrade file\n" if $DEBUG; 
-    # read and parse the .sig
-    my $old_hash = read_sig_file( $old_file );
-    # and generate and write the update script file
-    generate_upgrade_script( $new_hash, $old_hash);
-}
-
-exit 0;
-
-
-sub wanted {
-    /^.*\.sig\z/s &&
-    ! /^pgrouting--$version.sig\z/s &&
-    push @old_files, $name;
-}
-
-# read and parse the .sig file and store the results into hash
-sub read_sig_file {
-    my $file = shift;
-
-    my %hash = ();
-
-    open(IN, $file) || die "ERROR: Failed to open '$file'\n";
-
-    my $state = 0;
-    while (my $line = <IN>) {
-        if ($line =~ /^#VERSION pgrouting (\d+\.\d+\.\d+)\s*$/i) {
-            $hash{VERSION} = $1;
-        }
-        elsif ($line =~ /^#TYPES\s*/i) {
-            $state = 1;
-            next;
-        }
-        elsif ($line =~ /^#FUNCTIONS\s*/i) {
-            $state = 2;
-            next;
-        }
-        elsif ($line =~ /^#/) {
-            next;
-        }
-        $line =~ s/\s*$//;
-        if ($state == 1) {
-            push @{$hash{types}}, $line;
-        }
-        elsif ($state == 2) {
-            push @{$hash{funcs}}, $line;
-        }
-    }
-    close(IN);
-
-    return \%hash;
-}
-
-# analyze the old .sig hash as compared to the new .sig hash
-# and create an update script file for its version.
-sub generate_upgrade_script {
-    my ($new, $old) = @_;
-
-    my $err = 0;
-    my @types2remove = ();
-    my @commands = ();
-
-    # fetch the VERSION numbers
-    my $n_ver = $new->{VERSION};
-    my $o_ver = $old->{VERSION};
-
-
-
-    # analyze function sigs
-
-    my $nsig = $new->{funcs};
-    my $osig = $old->{funcs};
-
-    # create an unique hash map of the new signatures
-    # to quickly determine if an old signature exists or not
-    # in the new signatures.
-    my %fmap = map { $_ => 1 } @{$nsig};
-
-    for my $x (@{$osig}) {
-
-        # see if the old signature is in the new signature map
-        my $exists = $fmap{$x} || '0';
-        print "$exists\t$x\n" if $DEBUG;
-
-        # if the function does NOT exist in the current version
-        # then it needs to be removed from the extension
-        if (! $exists) {
-            print "ALTER EXTENSION pgrouting DROP FUNCTION $x;\n" if $DEBUG;
-            push @commands, "ALTER EXTENSION pgrouting DROP FUNCTION $x;\n";
-        }
-
-        # otherwise we only need to drop in case an argument name change
-        # so it will not fail on create or replace function
-        print "DROP FUNCTION IF EXISTS $x;\n" if $DEBUG;
-        push @commands, "DROP FUNCTION IF EXISTS $x;\n";
-    }
-
-    # analyze types
-
-    my $ntype = $new->{types};
-    my $otype = $old->{types};
-
-    # create a hash like <name> => <column_list> for new types
-    my %ntype_h = ();
-    for my $x (@{$ntype}) {
-        #$x =~ m/(\w+)(\([^\)]+\))$/;
-        $ntype_h{lc($x)} = lc($x);
-    }
-
-    # check if old type exists with different column types
-    for my $x (@{$otype}) {
-        my $name = lc($x);
-        if (!exists $ntype_h{$name}) {
-            #types no longer used are droped form the extension
-            push @commands, "ALTER EXTENSION pgrouting DROP TYPE $name;\n";
-            push @commands, "DROP TYPE $name;\n";
-        } else {
-            push @types2remove, $name;
-        }
-    }
-
-    # UGH! someone change the definition of the TYPE or reused an existing
-    # TYPE name which is VERY BAD because other poeple might be dependent
-    # on the old TYPE so we can DROP TYPE <type> CASCADE; or we might drop
-    # a user's function. So juse DIE and maybe someone can resolve this
-    die "ERROR: pgrouting TYPE changed! Cannot continue!\n" if $err;
-
-    write_script($o_ver, $n_ver, \@types2remove, join('', @commands));
-}
-
-
-# we have all the data we need, so write the extension update script
-sub write_script {
-    my ($o_ver, $n_ver, $types, $cmds) = @_;
-
-    # open the extension update script or die if we can't
-    open(OUT, ">lib/pgrouting--$o_ver--$n_ver.sql")
-        || die "ERROR: failed to create 'lib/pgrouting-pgrouting--$o_ver--$n_ver.sql' : $!\n";
-
-    # write out the header and the commands to clean up the old extension
-    print OUT <<EOF;
--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--- pgRouting extension upgrade from $o_ver to $n_ver
--- generated by tools/build-extension-update-files
--- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--- remove functions no longer in the $n_ver extension
-$cmds
-
--- now install the new extension
-
-EOF
-
-    # open the new extension.sql file
-    # and load it into an array
-    open(IN, $SQL) ||
-        die "ERROR: Failed to find '$SQL' : $!\n";
-    my @file = <IN>;
-    close(IN);
-
-    # comment out the TYPEs that the new extension defines
-    # that already existed in the old extension
-    # so they will not abort the script
-    remove_types( \@file, $types );
-
-    # append the new extension SQL to the update script
-    print OUT @file;
-    close(OUT);
-    print "  -- Created lib/pgrouting--$o_ver--$n_ver.sql\n";
-}
-
-
-sub remove_types {
-    my ($data, $types) = @_;
-
-    for my $type (@{$types}) {
-        my $state = 1;
-        for my $x (@{$data}) {
-            if ($state == 1) {
-                next unless $x =~ m/create\s+type\s+$type\b/i;
-                $x = "-- $x";
-                $state = 2
-                    unless $x =~ m/create\s+type\s+$type\s+as\s*\([^\)]+\)/i;
-            }
-            elsif ($state == 2) {
-                $x = "-- $x";
-                last if $x =~ /\)\s*;/;
-            }
-        }
-    }
-}
-
diff --git a/tools/developer/run.sh b/tools/developer/run.sh
new file mode 100755
index 0000000..7514469
--- /dev/null
+++ b/tools/developer/run.sh
@@ -0,0 +1,100 @@
+#!/bin/bash
+
+#
+# base script for developers
+# copy to the root of the repository
+# 
+
+set -e
+
+if [ -z $1 ]; then
+    echo "version missing"
+    exit 1;
+fi
+
+VERSION=$1
+
+
+function test_compile {                                                                                                                                                                                                          
+
+echo ------------------------------------
+echo ------------------------------------
+echo Compiling with $1
+echo ------------------------------------
+
+sudo update-alternatives --set gcc /usr/bin/gcc-$1
+
+cd build/
+# Release RelWithDebInfo MinSizeRel Debug
+cmake  -DDOC_USE_BOOTSTRAP=ON -DWITH_DOC=ON -DBUILD_DOXY=ON -DCMAKE_BUILD_TYPE=Debug ..
+
+
+#cmake  -DWITH_DOC=ON -DBUILD_DOXY=ON ..
+#cmake -DCMAKE_VERBOSE_MAKEFILE=ON ..
+make doxy
+make doc
+make
+sudo make install
+cd ..
+
+
+#tools/testers/algorithm-tester.pl -alg dijkstra
+#tools/testers/algorithm-tester.pl -alg dijkstra -debug1 >result.txt
+
+#  Verify with git diff that signatures did not change
+#sh tools/release-scripts/get_signatures.sh $VERSION ____sigs_routing____ sql/sigs
+#cp build/sql/pgrouting--*.sql tools/sql-update-scripts
+if [[ $(git status | grep 'pgrouting--') ]]; then
+    echo "**************************************************"
+    echo "           WARNING"
+    echo "the signatures changed, copying generated files"
+    echo "Plese verify the changes are minimal"
+    echo "**************************************************"
+    git diff
+fi
+
+
+tools/testers/algorithm-tester.pl -documentation
+cd build
+rm -rf doc/*
+make doc
+cd ..
+
+
+tools/testers/algorithm-tester.pl
+
+dropdb --if-exists ___pgr___test___
+createdb  ___pgr___test___
+sh ./tools/testers/pg_prove_tests.sh vicky 
+dropdb  ___pgr___test___
+
+#tools/testers/update-tester.sh 
+
+}
+
+#test_compile 4.4
+#rm -rf build/*
+#test_compile 5
+#rm -rf build/*
+#test_compile 4.9
+#rm -rf build/*
+#test_compile 4.6
+#sudo rm -f /usr/lib/postgresql/9.3/lib/libpgrouting-2.5.so
+#sudo rm -f /usr/share/postgresql/9.3/extension/pgrouting*2.5.0*
+#rm -rf build/*
+test_compile 4.8
+
+exit 0
+
+gource --seconds-per-day 0.1 \
+    --auto-skip-seconds 0.3 \
+    --max-file-lag 0.1 \
+    --logo doc/static/images/pgrouting-logo.png ---date-format "%B %Y" \
+    --hide filenames,dirnames \
+    --start-position 0.1 \
+    --disable-auto-rotate \
+    ----file-idle-time 10 \
+    -f -1280x720 \
+    --output-ppm-stream release-2.4.ppm 
+
+ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i release-2.4.ppm -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -crf 1 -threads 0 -bf 0 release-2.4.mp4
diff --git a/tools/developer/translate.sh b/tools/developer/translate.sh
new file mode 100755
index 0000000..68523cf
--- /dev/null
+++ b/tools/developer/translate.sh
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+set -e
+
+
+cd build/
+rm -rf *
+cmake -DHTML=ON -DDOC_USE_BOOTSTRAP=ON ..
+make doc
+cd ..
+
+
+#tools/testers/algorithm-tester.pl -alg pickDeliver
+
+#tools/testers/algorithm-tester.pl -documentation
+cd build
+#make doc
+cd ..
+
+
+
+exit 0
+
+gource --seconds-per-day 0.1 \
+    --auto-skip-seconds 0.3 \
+    --max-file-lag 0.1 \
+    --logo doc/static/images/pgrouting-logo.png ---date-format "%B %Y" \
+    --hide filenames,dirnames \
+    --start-position 0.1 \
+    --disable-auto-rotate \
+    ----file-idle-time 10 \
+    -f -1280x720 \
+    --output-ppm-stream release-2.4.ppm 
+
+ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i release-2.4.ppm -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -crf 1 -threads 0 -bf 0 release-2.4.mp4
diff --git a/tools/doit b/tools/doit
deleted file mode 100755
index 012491b..0000000
--- a/tools/doit
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/sh
-# ------------------------------------------------------------------------------
-# Build script
-# Copyright(c) pgRouting Contributors
-#
-# This script builds and install pgRouting
-# ------------------------------------------------------------------------------
-rm -rf build
-mkdir build
-cd build
-cmake -DBUILD_LATEX=OFF -DWITH_DOC=ON -DWITH_DD=ON ..
-#cmake  -DWITH_DD=ON ..
-make all doc && sudo make install && (cd ..; tools/test-runner.pl -clean)
-mkdir -p /u/www/imaptools/docs/pgr2-doc/
-rsync -a doc/html/* /u/www/imaptools/docs/pgr2-doc/.
-ln -sf /u/www/imaptools/docs/pgr2-doc/. /u/www/imaptools/docs/pgr2-doc/dev
-gzip -c doc/man/en/pgrouting.7 > doc/man/en/pgrouting.7.gz
-for x in `ls doc/latex` ; do
-    mkdir -p /u/www/html/pgr2-doc/$x/.
-    rsync -a doc/latex/$x/pgRoutingDocumentation.pdf /u/www/html/pgr2-doc/$x/.
-    rsync -a doc/man/en/pgrouting.7.gz /u/www/html/pgr2-doc/$x/.
-done
-sudo install -t /usr/share/man/man7 doc/man/en/pgrouting.7.gz
diff --git a/tools/git-tools/pre-commit b/tools/git-tools/pre-commit
index d703cce..1eb5ec3 100755
--- a/tools/git-tools/pre-commit
+++ b/tools/git-tools/pre-commit
@@ -15,11 +15,32 @@
 # The VERSION file is always one commit behind HEAD
 # ------------------------------------------------------------------------------
 
-if [[ $BRANCH != "gh-pages" ]] 
+if [[ $BRANCH == "gh-pages" ]]
+then
+    exit 0
+fi
+
+NOTES=`git diff HEAD --name-only doc/src/release_notes.rst`
+NOTES2NEWS=`git diff HEAD --name-only tools/release-scripts/notes2news.pl`
+NEWS=`git diff HEAD --name-only NEWS`
+
+if [[ "b$NOTES" == "bdoc/src/release_notes.rst" || "b$NOTES2NEWS" == "btools/release-scripts/notes2news.pl" || "b$NEWS" == "NEWS" ]]
+then
+    echo "CHANGED: 'doc/src/release_notes.rst' or 'tools/release-scripts/notes2news.pl' or 'NEWS'"
+    echo "Regenerating NEWS"
+    $GIT_DIR/../tools/release-scripts/notes2news.pl
+    git add $GIT_DIR/../doc/src/release_notes.rst
+    git add $GIT_DIR/../tools/release-scripts/notes2news.pl
+    git add $GIT_DIR/../NEWS
+fi
+
+
+
+COMMITS=`git rev-list HEAD --count`
+HASH=`git rev-parse --short HEAD`
+BRANCH=`git branch | grep '*' | awk '{print $2}'`
+if [[ $BRANCH == "develop" ]] 
 then 
-    COMMITS=`git rev-list HEAD --count`
-    HASH=`git rev-parse --short HEAD`
-    BRANCH=`git branch | grep '*' | awk '{print $2}'`
     echo $COMMITS-$HASH $BRANCH > $GIT_DIR/../VERSION
     git add $GIT_DIR/../VERSION
 fi
diff --git a/tools/publish-doc.sh b/tools/publish-doc.sh
index d005e87..8a5f983 100755
--- a/tools/publish-doc.sh
+++ b/tools/publish-doc.sh
@@ -5,6 +5,7 @@
 #
 # Publish Documentation
 # ------------------------------------------------------------------------------
+
 if test a$1 = a ; then
     echo "Usage: publish-doc.sh dir"
     echo "       where dir might be dev or v2.0"
diff --git a/tools/release-scripts/check-release.sh b/tools/release-scripts/check-release.sh
index 284b405..dfc4c32 100755
--- a/tools/release-scripts/check-release.sh
+++ b/tools/release-scripts/check-release.sh
@@ -2,63 +2,119 @@
 
 set -e
 
+#---------------------------------------------------------------------
+# Functions used in the script
+function error_msg() {
+
+    echo "*****************************************************"
+    echo "*****************************************************"
+    echo "*****************************************************"
+    echo
+    echo
+    echo "FATAL: $1"
+    echo
+    echo
+    echo
+    echo "*****************************************************"
+    echo "*****************************************************"
+}
+
+function git_no_change {
+
+if [[ $(git status | grep 'Changes not staged for commit:') ]]; then
+    error_msg " There are changes staged on git"
+    echo
+    echo "HINT: Verify the changes and commit them"
+    echo
+    echo
+    sleep 5
+    git status
+    echo "*****************************************************"
+    echo "*****************************************************"
+    exit 1
+fi
+
+}
+
+function test_file {                                                                                                                                                        
+
+if [ -f sql/sigs/pgrouting--$1.sig ]
+then
+    echo "- [x] sql/sigs/pgrouting--$1.sig"
+else
+    error_msg "  FATAL: tools/sigs/pgrouting--$1.sig Not found"
+    exit 1
+fi
+}
+
+
+#---------------------------------------------------------------------
+
+
 if [[ -z  $1 ]]; then
     echo "Mayor missing";
     echo "Usage"
-    echo "tools/release-scripts/release-check.sh Mayor Minor Micro Last [branch]";
+    echo "tools/release-scripts/release-check.sh Mayor Minor Micro Last branch RC DEBUG";
     exit 1;
 fi
 if [[ -z  $2 ]]; then
     echo "Minor missing";
     echo "Usage"
-    echo "tools/release-scripts/release-check.sh Mayor Minor Micro Last [branch]";
+    echo "tools/release-scripts/release-check.sh Mayor Minor Micro Last branch RC DEBUG";
     exit 1;
 fi
 
 if [[ -z  $3 ]]; then
     echo "Micro missing";
     echo "Usage"
-    echo "tools/release-scripts/release-check.sh Mayor Minor Micro Last [branch]";
+    echo "tools/release-scripts/release-check.sh Mayor Minor Micro Last branch RC DEBUG";
     exit 1;
 fi
 
 if [[ -z  $4 ]]; then
     echo "Last Micro missing";
     echo "Usage"
-    echo "tools/release-scripts/release-check.sh Mayor Minor Micro Last [branch]";
+    echo "tools/release-scripts/release-check.sh Mayor Minor Micro Last branch RC DEBUG";
     exit 1;
 fi
 
 
+if [[ -z  $5 ]]; then
+    echo "branch missing";
+    echo "Usage"
+    echo "tools/release-scripts/release-check.sh Mayor Minor Micro Last branch RC DEBUG";
+    exit 1;
+fi
+
 MAYOR=$1
 MINOR=$2
 MICRO=$3
 PREV_REL=$4
-RC=""
+BRANCH=$5
+RC=$6
+DEBUG=$7
 
-if [[ -z  $5 ]]; then
-    BRANCH="release/$MAYOR.$MINOR"
-else
-    BRANCH=$5
+
+if [[ -z  "$DEBUG" ]]; then
+    git_no_change
 fi
 
+echo - [x] No files changed before execution.
+echo
+
 #---------------------------------------------------------------------
 echo "### Verify branch to be $BRANCH"
 echo
 #---------------------------------------------------------------------
 
 GIT_BRANCH="$(git rev-parse --abbrev-ref HEAD)"
-echo "- [x] Working Branch: $BRANCH";
-echo
 
 if [[ "$GIT_BRANCH" == "$BRANCH" ]]; then
-   echo "  - [x] Already in branch $BRANCH";
+    echo "- [x] Already in branch $BRANCH";
+    echo
 else
-   echo "  - Current Branch: $BRANCH";
-   echo "\`\`\`"
-   echo git checkout $BRANCH
-   echo "\`\`\`"
-   exit 1
+    error_msg "Current Branch is not: $BRANCH"
+    exit 1
 fi
 
 #---------------------------------------------------------------------
@@ -67,179 +123,160 @@ echo "### Verify typos"
 echo
 #---------------------------------------------------------------------
 
-echo "\`\`\`"
-echo sh tools/scripts/fix_typos.sh
-echo "\`\`\`"
+if [[ -n $DEBUG ]]; then
+    echo
+    echo "\`\`\`"
+    echo sh tools/scripts/fix_typos.sh
+    echo "\`\`\`"
+    echo
+fi
 
 sh tools/scripts/fix_typos.sh
 
-if [[ $? != 0 ]]; then
-    echo "FATAL: Typos were found"
-    exit 1
-else
-    echo "- [x] Typos checked: OK"
+if [[ -z  "$DEBUG" ]]; then
+    git_no_change
 fi
 
+echo "- [x] No typos found by script"
+
 
 #---------------------------------------------------------------------
 echo
-echo "### Verify Current NEWS & CHANGLOG"
+echo "### Verify release_notes.rst & NEWS"
 echo
 #---------------------------------------------------------------------
-echo
-echo "- [x] Checking NEWS section $MAYOR.$MINOR.$MICRO exists"
-echo "\`\`\`"
-echo "grep $MAYOR.$MINOR.$MICRO NEWS"
-echo "\`\`\`"
-CURRENTNEWS=$(grep $MAYOR.$MINOR.$MICRO NEWS)
-if [[ $? != 0 ]]; then
-    echo "FATAL: Section $MAYOR.$MINOR.$MICRO in NEWS file is missing"
-    exit 1
-else
-    echo 
+ 
+if [[ -n $DEBUG ]]; then
+    echo
+    echo "\`\`\`"
+    echo "grep $MAYOR.$MINOR.$MICRO doc/src/release_notes.rst | grep ref"
+    echo "grep $PREV_REL doc/src/release_notes.rst | grep ref"
+    echo "tools/release-scripts/notes2news.pl"
+    echo "\`\`\`"
+    echo
 fi
 
-
-echo "- [x] Checking release_notes.rst file section $MAYOR.$MINOR.$MICRO exists"
-echo "\`\`\`"
-echo "grep $MAYOR.$MINOR.$MICRO doc/src/release_notes.rst | grep ref"
-echo "\`\`\`"
 CURRENTNEWS=$(grep $MAYOR.$MINOR.$MICRO doc/src/release_notes.rst | grep ref)
 if [[ $? != 0 ]]; then
-    echo "FATAL: Section $MAYOR.$MINOR.$MICRO in release_notes.rst file are missing"
+    error_msg "Section $MAYOR.$MINOR.$MICRO in release_notes.rst file is missing"
     exit 1
 else
-    echo 
+    echo "- [x] release_notes.rst section $MAYOR.$MINOR.$MICRO exists"
 fi
 
 
-
-#---------------------------------------------------------------------
-echo
-echo "### Verify $PREV_REL NEWS & CHANGLOG"
-echo
-#---------------------------------------------------------------------
-
-echo "- [x] Checking NEWS section $PREV_REL exists"
-echo "\`\`\`"
-echo "grep $PREV_REL NEWS"
-echo "\`\`\`"
-OLDNEWS=$(grep $PREV_REL NEWS)
+OLDNEWS=$(grep $PREV_REL doc/src/release_notes.rst | grep ref)
 if [[ $? != 0 ]]; then
-    echo "$PREV_REL NEWS are missing in NEWS file"
+    error_msg "Section $PREV_REL in release_notes.rst file is missing"
     exit 1
 else
-    echo 
+    echo "- [x] release_notes.rst section $PREV_REL exists"
 fi
 
 
-echo "- [x] Checking release_notes.rst section $PREV_REL exists"
-echo "\`\`\`"
-grep $PREV_REL doc/src/release_notes.rst | grep ref
-echo "\`\`\`"
-OLDNEWS=$(grep $PREV_REL doc/src/release_notes.rst | grep ref)
-if [[ $? != 0 ]]; then
-    echo "$PREV_REL NEWS are missing in release_notes.rst file"
-    exit 1
-else
-    echo 
+tools/release-scripts/notes2news.pl
+
+if [[ -z  "$DEBUG" ]]; then
+    git_no_change
 fi
 
+echo "- [x] NEWS is up to date"
 
 
 
 #---------------------------------------------------------------------
 echo
-echo "### Check version information"
+echo "## Check version information"
 echo 
 #---------------------------------------------------------------------
-echo "- [x] Check mayor information"
-echo "\`\`\`"
-echo "cat CMakeLists.txt | grep 'set(PGROUTING_VERSION_MAJOR \"$MAYOR\")'"
-echo "\`\`\`"
+#---------------------------------------------------------------------
+echo
+echo "- CMakeLists"
+#---------------------------------------------------------------------
+
+if [[ -n $DEBUG ]]; then
+    echo "\`\`\`"
+    echo "cat CMakeLists.txt | grep 'set(PGROUTING_VERSION_MAJOR \"$MAYOR\")'"
+    echo "cat CMakeLists.txt | grep 'set(PGROUTING_VERSION_MINOR \"$MINOR\")'"
+    echo "cat CMakeLists.txt | grep 'set(PGROUTING_VERSION_PATCH \"$MICRO\")'"
+    echo "cat CMakeLists.txt | grep 'set(PGROUTING_VERSION_DEV \"$RC\")'"
+    echo "\`\`\`"
+fi
+
 if [[ $(cat CMakeLists.txt | grep 'set(PGROUTING_VERSION_MAJOR' | grep $MAYOR) != "set(PGROUTING_VERSION_MAJOR \"$MAYOR\")" ]]; then
-    echo "FATAL: PGROUTING_VERSION_MAJOR is not $MAYOR"
+    error_msg "FATAL: PGROUTING_VERSION_MAJOR is not '$MAYOR' ... Verify CMakeLists.txt"
     exit 1
 else
-    echo
+    echo "  - [x] mayor information is OK"
 fi
 
 
-echo "- [x] Check minor information"
-echo "\`\`\`"
-echo "cat CMakeLists.txt | grep 'set(PGROUTING_VERSION_MINOR \"$MINOR\")'"
-echo "\`\`\`"
 if [[ $(cat CMakeLists.txt | grep 'set(PGROUTING_VERSION_MINOR' | grep $MINOR) !=  "set(PGROUTING_VERSION_MINOR \"$MINOR\")" ]]; then
-    echo "FATAL: PGROUTING_VERSION_MINOR is not $MINOR"
+    error_msg "FATAL: PGROUTING_VERSION_MINOR is not '$MINOR' ... Verify CMakeLists.txt"
     exit 1
 else
-    echo
+    echo "  - [x] Check minor information is OK"
 fi
 
-echo "- [x] Check patch information"
-echo "\`\`\`"
-echo "cat CMakeLists.txt | grep 'set(PGROUTING_VERSION_PATCH \"$MICRO\")'"
-echo "\`\`\`"
 if [[ $(cat CMakeLists.txt | grep 'set(PGROUTING_VERSION_PATCH' | grep $MICRO) !=  "set(PGROUTING_VERSION_PATCH \"$MICRO\")" ]]; then
-    echo "FATAL: PGROUTING_VERSION_PATCH is not $MICRO"
+    error_msg "FATAL: PGROUTING_VERSION_PATCH is not '$MICRO' ... Verify CMakeLists.txt"
     exit 1
 else
-    echo
+    echo "  - [x] Check patch information is OK"
 fi
 
-echo "\`\`\`"
-echo "cat CMakeLists.txt | grep 'set(PGROUTING_VERSION_DEV \"$RC\")'"
-echo "\`\`\`"
 if [[ $(cat CMakeLists.txt | grep 'set(PGROUTING_VERSION_DEV' ) !=  "set(PGROUTING_VERSION_DEV \"$RC\")" ]]; then
-    echo "FATAL: PGROUTING_VERSION_DEV is not $RC"
+    error_msg "FATAL: PGROUTING_VERSION_DEV is not '$RC' ... Verify CMakeLists.txt"
     exit 1
 else
-    echo "- [x] Check dev information"
-    echo 
+    echo "  - [x] Check dev information is OK"
 fi
 
 
 #---------------------------------------------------------------------
-echo
-echo "### Check pgr_version test result"
-echo 
+
+echo "- src/common/test/doc-pgr_version.result"
+
 #---------------------------------------------------------------------
 
-echo "\`\`\`"
-echo "cat doc/test/utilities-any.result | grep \"$MAYOR.$MINOR.$MICRO\""
-echo "\`\`\`"
-if [[ $(cat doc/test/utilities-any.result | grep "$MAYOR.$MINOR.$MICRO") != "$MAYOR.$MINOR.$MICRO" ]]; then
-    echo "FATAL: doc/test/utilities-any.result is not $MAYOR.$MINOR.$MICRO"
-    exit 1
-else
-    echo "- [x] pgr_version result: OK"
-    echo 
+if [[ -n $DEBUG ]]; then
+    echo "\`\`\`"
+    echo "cat src/common/test/doc-pgr_version.result | grep \"$MAYOR.$MINOR.$MICRO\""
+    echo "\`\`\`"
 fi
 
-echo "\`\`\`"
-echo "cat VERSION | grep \"$BRANCH\""
-echo "\`\`\`"
-if [[ $(cat VERSION | grep "$BRANCH") != *"$BRANCH" ]]; then
-    echo "FATAL: VERSION branch should be $BRANCH"
+if [[ $(cat src/common/test/doc-pgr_version.result | grep "$MAYOR.$MINOR.$MICRO") != " $MAYOR.$MINOR.$MICRO" ]]; then
+    error_msg "src/common/test/doc-pgr_version.result is not $MAYOR.$MINOR.$MICRO"
     exit 1
 else
-    echo "  -[x] VERSION file branch: OK"
-    echo 
+    echo "  - [x]  src/common/test/doc-pgr_version.result"
 fi
 
 #---------------------------------------------------------------------
-function test_file {                                                                                                                                                        
 
-if [ -f tools/sigs/pgrouting--$1.sig ]
-then
-    echo "- [x] tools/sigs/pgrouting--$1.sig"
+echo "- VERSION"
+
+#---------------------------------------------------------------------
+
+if [[ -n $DEBUG ]]; then
+    echo "\`\`\`"
+    echo "cat VERSION | grep \"release/$MAYOR.$MINOR\""
+    echo "\`\`\`"
+fi
+
+if [[ $(cat VERSION | grep "release/$MAYOR.$MINOR") != *"release/$MAYOR.$MINOR" ]]; then
+    error_msg "VERSION should have release/$MAYOR.$MINOR"
+    exit 1
 else
-    echo "  FATAL: tools/sigs/pgrouting--$1.sig Not found"
+    echo "  -[x] VERSION file branch: OK"
 fi
-}
 
 #---------------------------------------------------------------------
+echo
 echo "### Checking signature files"
+echo
+#---------------------------------------------------------------------
+test_file $PREV_REL
 test_file 2.4.1
 test_file 2.4.0
 test_file 2.3.2
@@ -256,20 +293,28 @@ test_file 2.0.0
 
 
 #---------------------------------------------------------------------
+echo
 echo "### Locally make a clean build as Release"
+echo
 #---------------------------------------------------------------------
-echo "\`\`\`"
-echo "bash tools/release-scripts/compile-release.sh 5   $MAYOR.$MINOR $MICRO"
-echo "bash tools/release-scripts/compile-release.sh 4.9 $MAYOR.$MINOR $MICRO"
-echo "bash tools/release-scripts/compile-release.sh 4.6 $MAYOR.$MINOR $MICRO"
-echo "bash tools/release-scripts/compile-release.sh 4.8 $MAYOR.$MINOR $MICRO"
-echo "\`\`\`"
+if [[ -n $DEBUG ]]; then
+    echo "\`\`\`"
+    echo "bash tools/release-scripts/compile-release.sh 5   $MAYOR.$MINOR $MICRO"
+    echo "bash tools/release-scripts/compile-release.sh 4.9 $MAYOR.$MINOR $MICRO"
+    echo "bash tools/release-scripts/compile-release.sh 4.6 $MAYOR.$MINOR $MICRO"
+    echo "bash tools/release-scripts/compile-release.sh 4.8 $MAYOR.$MINOR $MICRO"
+    echo "\`\`\`"
+fi
 
 
-bash tools/release-scripts/compile-release.sh 5   $MAYOR.$MINOR $MICRO
-bash tools/release-scripts/compile-release.sh 4.9 $MAYOR.$MINOR $MICRO
-bash tools/release-scripts/compile-release.sh 4.6 $MAYOR.$MINOR $MICRO
-bash tools/release-scripts/compile-release.sh 4.8 $MAYOR.$MINOR $MICRO
+if [[ "$BRANCH" == "develop" || $BRANCH == "master" || $BRANCH == "release/$MAYOR.$MINOR" ]]; then
+    if [[ -z  "$DEBUG" ]]; then
+        bash tools/release-scripts/compile-release.sh 4.9 $MAYOR.$MINOR $MICRO
+        bash tools/release-scripts/compile-release.sh 4.6 $MAYOR.$MINOR $MICRO
+        bash tools/release-scripts/compile-release.sh 5 $MAYOR.$MINOR $MICRO
+    fi
+fi
+bash tools/release-scripts/compile-release.sh 4.8   $MAYOR.$MINOR $MICRO
 
 echo - [x] completed local builds
 
@@ -277,21 +322,22 @@ echo - [x] completed local builds
 echo "### checking the signature files dont change"
 #---------------------------------------------------------------------
 
-sh tools/release-scripts/get_signatures.sh 2.4.2 ___sig_generate___ curr-sig >> build/tmp_sigs.txt
-sh tools/release-scripts/get_signatures.sh 2.4.1 ___sig_generate___ sigs >> build/tmp_sigs.txt
-sh tools/release-scripts/get_signatures.sh 2.4.0 ___sig_generate___ sigs >> build/tmp_sigs.txt
-sh tools/release-scripts/get_signatures.sh 2.3.2 ___sig_generate___ sigs >> build/tmp_sigs.txt
-sh tools/release-scripts/get_signatures.sh 2.3.1 ___sig_generate___ sigs >> build/tmp_sigs.txt
-sh tools/release-scripts/get_signatures.sh 2.3.0 ___sig_generate___ sigs >> build/tmp_sigs.txt
-sh tools/release-scripts/get_signatures.sh 2.2.4 ___sig_generate___ sigs >> build/tmp_sigs.txt
-sh tools/release-scripts/get_signatures.sh 2.2.3 ___sig_generate___ sigs >> build/tmp_sigs.txt
-sh tools/release-scripts/get_signatures.sh 2.2.2 ___sig_generate___ sigs >> build/tmp_sigs.txt
-sh tools/release-scripts/get_signatures.sh 2.2.1 ___sig_generate___ sigs >> build/tmp_sigs.txt
-sh tools/release-scripts/get_signatures.sh 2.2.0 ___sig_generate___ sigs >> build/tmp_sigs.txt
-sh tools/release-scripts/get_signatures.sh 2.1.0 ___sig_generate___ sigs >> build/tmp_sigs.txt
+sh tools/release-scripts/get_signatures.sh 2.5.0 ___sig_generate___ sql/sigs >> build/tmp_sigs.txt
+sh tools/release-scripts/get_signatures.sh 2.4.2 ___sig_generate___ sql/sigs >> build/tmp_sigs.txt
+sh tools/release-scripts/get_signatures.sh 2.4.1 ___sig_generate___ sql/sigs >> build/tmp_sigs.txt
+sh tools/release-scripts/get_signatures.sh 2.4.0 ___sig_generate___ sql/sigs >> build/tmp_sigs.txt
+sh tools/release-scripts/get_signatures.sh 2.3.2 ___sig_generate___ sql/sigs >> build/tmp_sigs.txt
+sh tools/release-scripts/get_signatures.sh 2.3.1 ___sig_generate___ sql/sigs >> build/tmp_sigs.txt
+sh tools/release-scripts/get_signatures.sh 2.3.0 ___sig_generate___ sql/sigs >> build/tmp_sigs.txt
+sh tools/release-scripts/get_signatures.sh 2.2.4 ___sig_generate___ sql/sigs >> build/tmp_sigs.txt
+sh tools/release-scripts/get_signatures.sh 2.2.3 ___sig_generate___ sql/sigs >> build/tmp_sigs.txt
+sh tools/release-scripts/get_signatures.sh 2.2.2 ___sig_generate___ sql/sigs >> build/tmp_sigs.txt
+sh tools/release-scripts/get_signatures.sh 2.2.1 ___sig_generate___ sql/sigs >> build/tmp_sigs.txt
+sh tools/release-scripts/get_signatures.sh 2.2.0 ___sig_generate___ sql/sigs >> build/tmp_sigs.txt
+sh tools/release-scripts/get_signatures.sh 2.1.0 ___sig_generate___ sql/sigs >> build/tmp_sigs.txt
 #version 2.0.1 can not be upgraded
-#sh tools/release-scripts/get_signatures.sh 2.0.1 ___sig_generate___ sigs >> build/tmp_sigs.txt
-sh tools/release-scripts/get_signatures.sh 2.0.0 ___sig_generate___ sigs >> build/tmp_sigs.txt
+#sh tools/release-scripts/get_signatures.sh 2.0.1 ___sig_generate___ sql/sigs >> build/tmp_sigs.txt
+sh tools/release-scripts/get_signatures.sh 2.0.0 ___sig_generate___ sql/sigs >> build/tmp_sigs.txt
 
 echo
 echo - [x] completed check: OK
@@ -318,7 +364,7 @@ echo "\`\`\`"
 echo tools/testers/algorithm-tester.pl -documentation
 echo git status
 echo "\`\`\`"
-tools/testers/algorithm-tester.pl -documentation > build/tmp_generate_doc.txt
+tools/testers/algorithm-tester.pl -documentation
 if [[ $? != 0 ]]; then
     echo "FATAL errors found generating documentation result files"
     exit 1
diff --git a/tools/release-scripts/compile-release.sh b/tools/release-scripts/compile-release.sh
index 234f12f..939a35f 100755
--- a/tools/release-scripts/compile-release.sh
+++ b/tools/release-scripts/compile-release.sh
@@ -2,6 +2,27 @@
 
 set -e
 
+if [[ -z  $1 ]]; then
+    echo "Cpp version missing";
+    echo "Usage:"
+    echo "tools/release-scripts/compile-release.sh Cpp Minor Micro";
+    exit 1;
+fi
+
+if [[ -z  $1 ]]; then
+    echo "Minor missing";
+    echo "Usage:"
+    echo "tools/release-scripts/compile-release.sh Cpp Minor Micro";
+    exit 1;
+fi
+
+if [[ -z  $1 ]]; then
+    echo "Micro missing";
+    echo "Usage:"
+    echo "tools/release-scripts/compile-release.sh Cpp Minor Micro";
+    exit 1;
+fi
+
 CPPVERSION=$1
 MINOR=$2
 MICRO=$3
@@ -9,10 +30,11 @@ FULL_VER="$MINOR.$MICRO"
 
 function test_compile {                                                                                                                                                                                                          
 
-echo ------------------------------------
-echo ------------------------------------
+echo
+echo
 echo Compiling with $1
 echo ------------------------------------
+echo
 
 sudo update-alternatives --set gcc /usr/bin/gcc-$1
 
@@ -20,17 +42,24 @@ cd build/
 touch tmp_make.txt
 touch tmp_make_err.txt
 cmake  -DDOC_USE_BOOTSTRAP=ON -DWITH_DOC=ON -DBUILD_DOXY=ON -DCMAKE_BUILD_TYPE=Release .. >> tmp_make.txt
+
+if [[ "$1" == "4.8" ]]; then
+    make doc >> tmp_make.txt 
+    echo "  - [x] Build Users documentation"
+    make doxy >> tmp_make.txt
+    echo "  - [x] Build developers documentation"
+fi
+
 make >> tmp_make.txt 2>>tmp_make_err.txt
 
 sudo make install >> tmp_make.txt
 
-cp lib/pgrouting--$FULL_VER.sig  ../tools/curr-sig/
 cd ..
 
-echo "  - [x] Compilation OK"
+echo "  - [x] Compilation"
 
 tools/testers/algorithm-tester.pl >> build/tmp_make.txt
-echo "  - [x] Documentation tests OK"
+echo "  - [x] Documentation tests"
 
 
 dropdb --if-exists ___pgr___test___
@@ -40,6 +69,8 @@ dropdb  ___pgr___test___
 echo '  - [x] Pgtap tests OK'
 
 if [[ "$1" == "4.8" ]]; then
+    tools/testers/algorithm-tester.pl -documentation >> build/tmp_make.txt
+    echo "  - [x] Regenerating Users documentation queries OK"
     cd build
     make doc >> tmp_make.txt 
     echo "  - [x] Build Users documentation OK"
diff --git a/tools/release-scripts/get_signatures.sh b/tools/release-scripts/get_signatures.sh
index d5dde28..3d601d5 100755
--- a/tools/release-scripts/get_signatures.sh
+++ b/tools/release-scripts/get_signatures.sh
@@ -4,10 +4,11 @@ set -e
 
 if [  "$#" -lt 3 ] ; then
     echo "Usage: getSignatures.sh VERSION DB_ARGS"
-    echo "  VERSION like '2.4.0'"
-    echo "  DB_NAME like 'routing'"
-    echo "  DIR: 'curr-sig' OR 'sigs'"
+    echo "  VERSION like '2.5.0'"
+    echo "  DB_NAME like 'routing'  (will be deleted if it exists)"
+    echo "  DIR: 'sql/sigs'  is relative to the root of the repository"
     echo "  (optional) DB_ARGS like  -U postgres -h localhost -p 5432 "
+    echo "Exeute from the root of the repository"
     exit 0
 fi
 
@@ -19,9 +20,10 @@ shift
 shift
 # DB_ARGS is the remaining of the arguments
 
-FILE=tools/$DIR/pgrouting--$VERSION.sig
+FILE=$DIR/pgrouting--$VERSION.sig
 #FILE=test.sig
 
+dropdb --if-exists $* $DB_NAME
 createdb $* $DB_NAME
 
 psql  $*  $DB_NAME <<EOF
diff --git a/tools/scripts/code_checker.sh b/tools/scripts/code_checker.sh
index 992049b..b4dd3fb 100644
--- a/tools/scripts/code_checker.sh
+++ b/tools/scripts/code_checker.sh
@@ -38,17 +38,10 @@ if ! test -d code_linter; then
     cd ../..
 fi
 
-DIRECTORY=$1
+DIRECTORY="$1"
+
 if test -z "$DIRECTORY"; then
     echo --------------------
-    echo ------   *.h  ------
-    echo --------------------
-    python code_linter/styleguide/cpplint/cpplint.py src/*/src/*.h
-    echo --------------------
-    echo ------ *.hpp  ------
-    echo --------------------
-    python code_linter/styleguide/cpplint/cpplint.py --extensions=hpp --headers=hpp --filter=-runtime/references src/*/src/*.hpp
-    echo --------------------
     echo ------   *.c  ------
     echo --------------------
     python code_linter/styleguide/cpplint/cpplint.py --extensions=c src/*/src/*.c
@@ -56,23 +49,54 @@ if test -z "$DIRECTORY"; then
     echo ------ *.cpp  ------
     echo --------------------
     python code_linter/styleguide/cpplint/cpplint.py --filter=-runtime/references src/*/src/*.cpp
-else
-    echo --------------------
-    echo ------   *.c  ------
     echo --------------------
-    python code_linter/styleguide/cpplint/cpplint.py --extensions=c --filter=-readability/casting src/$DIRECTORY/src/*.c
+    echo ------ HEADERS  ------
     echo --------------------
-    echo ------ *.cpp  ------
-    echo --------------------
-    python code_linter/styleguide/cpplint/cpplint.py --filter=-runtime/references src/$DIRECTORY/src/*.cpp
+    python code_linter/styleguide/cpplint/cpplint.py --extensions=hpp,h --headers=hpp,h --filter=-runtime/references \
+        src/*/src/*.h \
+        src/*/src/*.hpp \
+        include/*/*.h* \
+        include/*/*/*.h*
+
+else
+    if [ "$DIRECTORY" = "h" ]; then
     echo --------------------
-    echo ------   *.h  ------
+    echo ------ OUT OF PLACE HEADERS  ------
     echo --------------------
-    python code_linter/styleguide/cpplint/cpplint.py src/$DIRECTORY/src/*.h
+    python code_linter/styleguide/cpplint/cpplint.py --extensions=hpp,h --headers=hpp,h --filter=-runtime/references \
+        src/*/src/*.h* 
+
     echo --------------------
-    echo ------ *.hpp  ------
+    echo ------ IN PLACE HEADERS  ------
     echo --------------------
-    python code_linter/styleguide/cpplint/cpplint.py --extensions=hpp --headers=hpp --filter=-runtime/references src/$DIRECTORY/src/*.hpp
-fi
+    python code_linter/styleguide/cpplint/cpplint.py --extensions=hpp,h --headers=hpp,h --filter=-runtime/references \
+        include/*/*.h* \
+        include/*/*/*.h*
 
+    else
+        echo --------------------
+        echo ------   *.c  ------
+        echo --------------------
+        python code_linter/styleguide/cpplint/cpplint.py --extensions=c --filter=-readability/casting src/$DIRECTORY/src/*.c
+        echo --------------------
+        echo ------ *.cpp  ------
+        echo --------------------
+        python code_linter/styleguide/cpplint/cpplint.py --filter=-runtime/references src/$DIRECTORY/src/*.cpp
+        echo --------------------
+        echo ------   C HEADER  ------
+        echo --------------------
+        python code_linter/styleguide/cpplint/cpplint.py \
+            include/drivers/$DIRECTORY/*.h \
+            include/c_types/$DIRECTORY/*.h
+
+        echo --------------------
+        echo ------ C++ HEADER  ------
+        echo --------------------
+        python code_linter/styleguide/cpplint/cpplint.py  --extensions=hpp,h --headers=hpp --filter=-runtime/references include/$DIRECTORY/*.h*
+        echo --------------------
+        echo ------ this shouild fail  ------
+        echo --------------------
+        python code_linter/styleguide/cpplint/cpplint.py src/$DIRECTORY/src/*.h*
+    fi
+fi
 
diff --git a/tools/scripts/fix_typos.sh b/tools/scripts/fix_typos.sh
index c35b6db..6ab4f2f 100644
--- a/tools/scripts/fix_typos.sh
+++ b/tools/scripts/fix_typos.sh
@@ -48,11 +48,18 @@ fi
 
 EXCLUDED_FILES="*/doc/i18n/*"
 EXCLUDED_FILES="$EXCLUDED_FILES,*/src/*/test/pgtap/*"
+EXCLUDED_FILES="$EXCLUDED_FILES,*/pgtap/*"
 EXCLUDED_FILES="$EXCLUDED_FILES,*/fix_typos/*"
 EXCLUDED_FILES="$EXCLUDED_FILES,*/build/*"
+EXCLUDED_FILES="$EXCLUDED_FILES,*/src/trsp/tester/*"
 EXCLUDED_FILES="$EXCLUDED_FILES,*/code_linter/*"
 EXCLUDED_FILES="$EXCLUDED_FILES,*/.git/*"
 EXCLUDED_FILES="$EXCLUDED_FILES,*/tools/*"
+EXCLUDED_FILES="$EXCLUDED_FILES,*/locale/*"
+EXCLUDED_FILES="$EXCLUDED_FILES,*/doc/*.queries"
+EXCLUDED_FILES="$EXCLUDED_FILES,*/test/*.result"
+EXCLUDED_FILES="$EXCLUDED_FILES,*/test/*.data"
+EXCLUDED_FILES="$EXCLUDED_FILES,*/src/tsp/test/development/*"
 
 
 #WORDS_WHITE_LIST="poSession,FIDN,TRAFIC,HTINK,repID,oCurr,INTREST,oPosition"
diff --git a/tools/sql-update-scripts/pgrouting--2.0.0--2.5.0.sql b/tools/sql-update-scripts/pgrouting--2.0.0--2.5.0.sql
new file mode 100644
index 0000000..67342e4
--- /dev/null
+++ b/tools/sql-update-scripts/pgrouting--2.0.0--2.5.0.sql
@@ -0,0 +1,6575 @@
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-- pgRouting extension upgrade from 2.0.0 to 2.5.0
+-- generated by tools/build-extension-update-files
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+\echo Use "ALTER extension pgrouting update to '2.5.0'" to load this file. \quit
+
+
+-------------------------------------
+-- remove functions no longer in the 2.5.0 extension
+-------------------------------------
+
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_alphashape(text);
+DROP FUNCTION IF EXISTS pgr_alphashape(text);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_createtopology(text,double precision,text,text,text,text,text);
+DROP FUNCTION IF EXISTS pgr_createtopology(text,double precision,text,text,text,text,text);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_drivingdistance(text,integer,double precision,boolean,boolean);
+DROP FUNCTION IF EXISTS pgr_drivingdistance(text,integer,double precision,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_makedistancematrix(text);
+DROP FUNCTION IF EXISTS pgr_makedistancematrix(text);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_nodenetwork(text,double precision,text,text,text);
+DROP FUNCTION IF EXISTS pgr_nodenetwork(text,double precision,text,text,text);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_pointsaspolygon(character varying);
+DROP FUNCTION IF EXISTS pgr_pointsaspolygon(character varying);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_pointtoid(geometry,double precision,text,integer);
+DROP FUNCTION IF EXISTS pgr_pointtoid(geometry,double precision,text,integer);
+
+
+ ------------------------------------------
+--    New functions:  2.0
+-- Signature change:  2.1
+--       Deprecated:  2.1
+------------------------------------------
+-- pgr_dijkstra:
+-- 2.0.0: {      sql, source_id, target_id, directed, has_reverse_cost}
+-- 2.5.0: {edges_sql, start_vid,   end_vid, directed, has_rcost}
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_dijkstra(text,integer,integer,boolean,boolean);
+DROP FUNCTION IF EXISTS pgr_dijkstra(text,integer,integer,boolean,boolean);
+
+
+
+
+------------------------------------------
+--    New functions:  2.0
+--       Deprecated:  2.1
+--       Deprecated:  2.1 & 2.2
+------------------------------------------
+-- pgr_ksp
+-- 2.0.0: {      sql, source_id, target_id, no_paths,has_reverse_cost}
+-- 2.5.0: {edges_sql, start_vid,   end_vid, k,       has_rcost}
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_ksp(text,integer,integer,integer,boolean);
+DROP FUNCTION IF EXISTS pgr_ksp(text,integer,integer,integer,boolean);
+
+
+
+
+------------------------------------------
+--    New functions:  2.0
+-- Signature change:  2.2
+--       Deprecated:  2.2
+------------------------------------------
+-- pgr_apspjohnson
+-- 2.0.0: {      sql}
+-- 2.5.0: {edges_sql}
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_apspjohnson(text);
+DROP FUNCTION IF EXISTS pgr_apspjohnson(text);
+
+
+-- pgr_apspwarshall
+-- 2.0.0: {      sql, directed, has_reverse_cost}
+-- 2.5.0: {edges_sql, directed, has_rcost}
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_apspwarshall(text,boolean,boolean);
+DROP FUNCTION IF EXISTS pgr_apspwarshall(text,boolean,boolean);
+
+
+-- pgr_kdijkstrapath
+-- 2.0.0: {sql,source_vid, target_vid, directed, has_reverse_cost}
+-- 2.5.0: {sql,    source,    targets, directed, has_rcost} 
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_kdijkstrapath(text,integer,integer[],boolean,boolean);
+DROP FUNCTION IF EXISTS pgr_kdijkstrapath(text,integer,integer[],boolean,boolean);
+
+
+-- pgr_kdijkstracost
+-- 2.0.0: {sql,source_vid, target_vid, directed, has_reverse_cost}
+-- 2.5.0: {sql,    source,    targets, directed, has_rcost} 
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_kdijkstracost(text,integer,integer[],boolean,boolean);
+DROP FUNCTION IF EXISTS pgr_kdijkstracost(text,integer,integer[],boolean,boolean);
+
+
+
+
+------------------------------------------
+--    New functions:  2.0
+-- Signature change:  2.2
+------------------------------------------
+-- pgr_version
+-- 2.0.0:  {version,tag,build,hash,branch,boost}
+-- 2.5.0:  {version,tag,hash,branch,boost}
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_version();
+DROP FUNCTION IF EXISTS pgr_version();
+
+
+
+
+------------------------------------------
+--    New functions:  2.0
+-- Signature change:  2.2
+------------------------------------------
+-- pgr_trsp
+-- 2.0.0:  {      sql, source_vid, target_vid, directed, has_reverse_cost, turn_restrict_sql}
+-- 2.5.0:  {edges_sql,  start_vid,    end_vid, directed, has_rcost,        restrictions_sql}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vid","end_vid","directed","has_rcost","restrictions_sql"}'
+WHERE proname = 'pgr_trsp'
+    AND proargnames = '{"sql","source_vid","target_vid","directed","has_reverse_cost","turn_restrict_sql"}';
+
+
+------------------------------------------
+--    New functions:  2.0
+-- Signature change:  2.4
+--       Deprecated:  2.4
+------------------------------------------
+-- pgr_bddijkstra
+-- 2.0.0: {      sql, source_vid, target_vid, directed, has_reverse_cost}   
+-- 2.5.0: {edges_sql,  start_vid,    end_vid, directed, has_rcost}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vid","end_vid","directed","has_rcost"}'
+WHERE proname = 'pgr_bddijkstra'
+    AND proargnames = '{"sql","source_vid","target_vid","directed","has_reverse_cost"}';
+
+
+------------------------------------------
+-- New functions on 2.0
+-- Signature change on 2.3
+-- Deprecated on 2.4
+------------------------------------------
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_astar(text,integer,integer,boolean,boolean);
+DROP FUNCTION IF EXISTS pgr_astar(text,integer,integer,boolean,boolean);
+
+
+
+
+
+
+
+
+
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+--- pgRouting provides geospatial routing functionality.
+--- http://pgrouting.org
+--- copyright
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+---
+--- This is free software; you can redistribute and/or modify it:
+--- the terms of the GNU General Public Licence. See the COPYING file.
+--- the terms of the MIT-X Licence. See the COPYING file.
+---
+--- The following functions have MIT-X licence:
+---     pgr_version()
+---     pgr_tsp(matrix float8[][], startpt integer, endpt integer DEFAULT -1, OUT seq integer, OUT id integer)
+---     _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+---     pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
+---
+---
+--- All other functions are under GNU General Public Licence.
+---
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+--
+-- WARNING: Any change in this file must be evaluated for compatibility.
+--          Changes cleanly handled by postgis_upgrade.sql are fine,
+--          other changes will require a bump in Major version.
+--          Currently only function replaceble by CREATE OR REPLACE
+--          are cleanly handled.
+--
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+
+--  pgRouting 2.0 types
+
+
+
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_version()
+RETURNS TABLE(
+        "version" varchar,
+        tag varchar,
+        hash varchar,
+        branch varchar,
+        boost varchar
+    ) AS
+$BODY$
+    SELECT '2.5.0'::varchar AS version,
+        'v2.5.0'::varchar AS tag,
+        ''::varchar AS hash,
+        ''::varchar AS branch,
+        '1.54.0'::varchar AS boost;
+$BODY$
+LANGUAGE sql IMMUTABLE;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getTableName(IN tab text, IN reportErrs int default 0, IN fnName text default '_pgr_getTableName', OUT sname text,OUT tname text)
+  RETURNS RECORD AS
+$$
+DECLARE
+        naming record;
+        i integer;
+        query text;
+        sn text; -- schema name
+        tn text; -- table name
+        ttype text; --table type for future use
+        err boolean;
+        debuglevel text;
+        var_types text[] = ARRAY['BASE TABLE', 'VIEW'];
+BEGIN
+
+    execute 'show client_min_messages' into debuglevel;
+
+
+    perform _pgr_msg( 0, fnName, 'Checking table ' || tab || ' exists');
+    --RAISE DEBUG 'Checking % exists',tab;
+
+    i := strpos(tab,'.');
+    IF (i <> 0) THEN
+        sn := split_part(tab, '.',1);
+        tn := split_part(tab, '.',2);
+    ELSE
+        sn := current_schema;
+        tn := tab;
+    END IF;
+
+
+   SELECT schema_name INTO sname
+   FROM information_schema.schemata WHERE schema_name = sn;
+
+    IF sname IS NOT NULL THEN -- found schema (as is)
+       SELECT table_name, table_type INTO tname, ttype
+       FROM information_schema.tables
+       WHERE
+                table_type = ANY(var_types) and
+                table_schema = sname and
+                table_name = tn ;
+        IF tname is NULL THEN
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  = ANY(var_types) and
+                table_schema = sname and
+                table_name = lower(tn) ORDER BY table_name;
+        END IF;
+    END IF;
+    IF sname is NULL or tname is NULL THEN --schema not found or table not found
+        SELECT schema_name INTO sname
+        FROM information_schema.schemata
+        WHERE schema_name = lower(sn) ;
+
+        IF sname IS NOT NULL THEN -- found schema (with lower caps)
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  =  ANY(var_types) and
+                table_schema = sname and
+                table_name= tn ;
+
+           IF tname IS NULL THEN
+                SELECT table_name, table_type INTO tname, ttype
+                FROM information_schema.tables
+                WHERE
+                    table_type  =  ANY(var_types) and
+                    table_schema = sname and
+                    table_name= lower(tn) ;
+           END IF;
+        END IF;
+    END IF;
+   err = (sname IS NULL OR tname IS NULL);
+   perform _pgr_onError(err, reportErrs, fnName, 'Table ' || tab ||' not found',' Check your table name', 'Table '|| tab || ' found');
+
+END;
+$$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(sname text, tname text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(col) into cname;
+
+    IF cname is null  THEN
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(lower(col))  into cname;
+    END if;
+
+    err = cname is null;
+
+    perform _pgr_onError(err, reportErrs, fnName,  'Column '|| col ||' not found', ' Check your column name','Column '|| col || ' found');
+    RETURN cname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(tab text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+
+    select * into cname from _pgr_getColumnName(sname,tname,col,reportErrs, fnName);
+    RETURN cname;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    select * from _pgr_getColumnName(tab,col,0, '_pgr_isColumnInTable') into cname;
+    return cname is not null;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(sname text, tname text, cname text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    pkey text;
+BEGIN
+    SELECT
+          pg_attribute.attname into pkey
+         --  format_type(pg_attribute.atttypid, pg_attribute.atttypmod)
+          FROM pg_index, pg_class, pg_attribute
+          WHERE
+                  pg_class.oid = _pgr_quote_ident(sname||'.'||tname)::regclass AND
+                  indrelid = pg_class.oid AND
+                  pg_attribute.attrelid = pg_class.oid AND
+                  pg_attribute.attnum = any(pg_index.indkey)
+                  AND indisprimary;
+
+    IF pkey=cname then
+          RETURN TRUE;
+    END IF;
+
+    SELECT a.index_name,
+           b.attname,
+           b.attnum,
+           a.indisunique,
+           a.indisprimary
+      INTO rec
+      FROM ( SELECT a.indrelid,
+                    a.indisunique,
+                    a.indisprimary,
+                    c.relname index_name,
+                    unnest(a.indkey) index_num
+               FROM pg_index a,
+                    pg_class b,
+                    pg_class c,
+                    pg_namespace d
+              WHERE b.relname=tname
+                AND b.relnamespace=d.oid
+                AND d.nspname=sname
+                AND b.oid=a.indrelid
+                AND a.indexrelid=c.oid
+           ) a,
+           pg_attribute b
+     WHERE a.indrelid = b.attrelid
+       AND a.index_num = b.attnum
+       AND b.attname = cname
+  ORDER BY a.index_name,
+           a.index_num;
+
+  RETURN FOUND;
+  EXCEPTION WHEN OTHERS THEN
+    perform _pgr_onError( true, reportErrs, fnName,
+    'Error when checking for the postgres system attributes', SQLERR);
+    RETURN FALSE;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(tab text, col text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    sname text;
+    tname text;
+    cname text;
+    pkey text;
+    value boolean;
+BEGIN
+    SELECT * into naming FROM _pgr_getTableName(tab, 0, fnName);
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    SELECT * into cname from _pgr_getColumnName(sname, tname, col, 0, fnName) ;
+    IF cname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    select * into value  from _pgr_isColumnIndexed(sname, tname, cname, reportErrs, fnName);
+    return value;
+END
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+create or replace function _pgr_quote_ident(idname text)
+    returns text as
+$body$
+declare
+    t text[];
+    pgver text;
+
+begin
+    pgver := regexp_replace(version(), E'^PostgreSQL ([^ ]+)[ ,].*$', E'\\1');
+
+    if _pgr_versionless(pgver, '9.2') then
+        select into t array_agg(quote_ident(term)) from
+            (select nullif(unnest, '') as term
+               from unnest(string_to_array(idname, '.'))) as foo;
+    else
+        select into t array_agg(quote_ident(term)) from
+            (select unnest(string_to_array(idname, '.', '')) as term) as foo;
+    end if;
+    return array_to_string(t, '.');
+end;
+$body$
+language plpgsql immutable;
+
+
+CREATE OR REPLACE FUNCTION _pgr_versionless(v1 text, v2 text)
+  RETURNS boolean AS
+$BODY$
+
+
+declare
+    v1a text[];
+    v2a text[];
+    nv1 integer;
+    nv2 integer;
+    ne1 integer;
+    ne2 integer;
+
+begin
+    -- separate components into an array, like:
+    -- '2.1.0-beta3dev'  =>  {2,1,0,beta3dev}
+    v1a := regexp_matches(v1, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+    v2a := regexp_matches(v2, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+
+    -- convert modifiers to numbers for comparison
+    -- we do not delineate between alpha1, alpha2, alpha3, etc
+    ne1 := case when v1a[4] is null or v1a[4]='' then 5
+                when v1a[4] ilike 'rc%' then 4
+                when v1a[4] ilike 'beta%' then 3
+                when v1a[4] ilike 'alpha%' then 2
+                when v1a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    ne2 := case when v2a[4] is null or v2a[4]='' then 5
+                when v2a[4] ilike 'rc%' then 4
+                when v2a[4] ilike 'beta%' then 3
+                when v2a[4] ilike 'alpha%' then 2
+                when v2a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    nv1 := v1a[1]::integer * 10000 +
+           coalesce(v1a[2], '0')::integer * 1000 +
+           coalesce(v1a[3], '0')::integer *  100 + ne1;
+    nv2 := v2a[1]::integer * 10000 +
+           coalesce(v2a[2], '0')::integer * 1000 +
+           coalesce(v2a[3], '0')::integer *  100 + ne2;
+
+    --raise notice 'nv1: %, nv2: %, ne1: %, ne2: %', nv1, nv2, ne1, ne2;
+
+    return nv1 < nv2;
+end;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+create or replace function _pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_startpoint(st_geometryn(g,1));
+    else
+        return st_startpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function _pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_endpoint(st_geometryn(g,1));
+    else
+        return st_endpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_parameter_check(fn text, sql text, big boolean default false)
+  RETURNS bool AS
+  $BODY$
+
+  DECLARE
+  rec record;
+  rec1 record;
+  has_rcost boolean;
+  safesql text;
+  BEGIN
+    IF (big) THEN
+       RAISE EXCEPTION 'This function is for old style functions';
+    END IF;
+
+    -- checking query is executable
+    BEGIN
+      safesql =  'select * from ('||sql||' ) AS __a__ limit 1';
+      execute safesql into rec;
+      EXCEPTION
+        WHEN OTHERS THEN
+            RAISE EXCEPTION 'Could not execute query please verify syntax of: '
+              USING HINT = sql;
+    END;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('dijkstra','astar') THEN
+        BEGIN
+          execute 'select id,source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: id, source, target, cost';
+        END;
+        execute 'select pg_typeof(id)::text as id_type, pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.id_type in ('integer'::text))
+              AND (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Error, columns ''source'', ''target'' must be of type int4, ''cost'' must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    IF fn IN ('astar') THEN
+        BEGIN
+          execute 'select x1,y1,x2,y2  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: x1,y1, x2,y2';
+        END;
+        execute 'select pg_typeof(x1)::text as x1_type, pg_typeof(y1)::text as y1_type, pg_typeof(x2)::text as x2_type, pg_typeof(y2)::text as y2_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.x1_type = 'double precision'::text)
+              AND (rec.y1_type = 'double precision'::text)
+              AND (rec.x2_type = 'double precision'::text)
+              AND (rec.y2_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Columns: x1, y1, x2, y2 must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('johnson') THEN
+        BEGIN
+          execute 'select source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING HINT = 'Please veryfy the column names: id, source, target, cost',
+                         ERRCODE = 'XX000';
+        END;
+
+        execute 'select pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Support for source,target columns only of type: integer. Support for Cost: double precision'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    -- Checking the data types of the optional reverse_cost";
+    has_rcost := false;
+    IF fn IN ('johnson','dijkstra','astar') THEN
+      BEGIN
+        execute 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||safesql||' ) AS __b__ limit 1 ' into rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+            return has_rcost;
+      END;
+      if (has_rcost) then
+        IF (big) then
+           IF  not (rec1.rev_type in ('bigint'::text, 'integer'::text, 'smallint'::text, 'double precision'::text, 'real'::text)) then
+             RAISE EXCEPTION 'Illegar type in optional parameter reverse_cost.'
+             USING ERRCODE = 'XX000';
+           END IF;
+        ELSE -- Version 2.0.0 is more restrictive
+           IF (rec1.rev_type != 'double precision') then
+             RAISE EXCEPTION 'Illegal type in optional parameter reverse_cost, must be of type float8'
+             USING ERRCODE = 'XX000';
+           END IF;
+        END IF;
+      end if;
+      return true;
+    END IF;
+    -- just for keeps
+    return true;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_onError(
+  IN errCond boolean,  -- true there is an error
+  IN reportErrs int,   -- 0, 1 or 2
+  IN fnName text,      -- function name that generates the error
+  IN msgerr text,      -- error message
+  IN hinto text default 'No hint', -- hint help
+  IN msgok text default 'OK')      -- message if everything is ok
+  RETURNS void AS
+$BODY$
+BEGIN
+  if errCond=true then
+     if reportErrs=0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+     else
+       if reportErrs = 2 then
+         raise notice '----> PGR ERROR in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+         raise raise_exception;
+       else
+         raise notice '----> PGR NOTICE in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+       end if;
+     end if;
+  else
+       raise debug 'PGR ----> %: %',fnName,msgok;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_msg(IN msgKind int, IN fnName text, IN msg text default '---->OK')
+  RETURNS void AS
+$BODY$
+BEGIN
+  if msgKind = 0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msg;
+  else
+       raise notice '----> PGR NOTICE in %: %',fnName,msg;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(sname text, tname text, cname text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    EXECUTE 'select data_type  from information_schema.columns '
+            || 'where table_name = '||quote_literal(tname)
+                 || ' and table_schema=' || quote_literal(sname)
+                 || ' and column_name='||quote_literal(cname)
+       into ctype;
+    err = ctype is null;
+    perform _pgr_onError(err, reportErrs, fnName,
+            'Type of Column '|| cname ||' not found',
+            'Check your column name',
+            'OK: Type of Column '|| cname || ' is ' || ctype);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(tab text, col text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+    select * into cname from _pgr_getColumnName(tab,col,reportErrs, fnName) ;
+    select * into ctype from _pgr_getColumnType(sname,tname,cname,reportErrs, fnName);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_get_statement(o_sql text)
+RETURNS text AS
+$BODY$
+DECLARE
+sql TEXT;
+BEGIN
+    EXECUTE 'SELECT statement FROM pg_prepared_statements WHERE name ='  || quote_literal(o_sql) || ' limit 1 ' INTO sql;
+    IF (sql IS NULL) THEN
+      RETURN   o_sql;
+    ELSE
+      RETURN  regexp_replace(sql, '(.)* as ', '', 'i');
+    END IF;
+END
+$BODY$
+LANGUAGE plpgsql STABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_checkVertTab(vertname text, columnsArr  text[],
+    IN reportErrs int default 1, IN fnName text default '_pgr_checkVertTab',
+    OUT sname text,OUT vname text)
+RETURNS record AS
+$BODY$
+DECLARE
+    cname text;
+    colname text;
+    naming record;
+    debuglevel text;
+    err  boolean;
+    msgKind int;
+
+BEGIN
+    msgKind = 0; -- debug_
+    execute 'show client_min_messages' into debuglevel;
+
+    perform _pgr_msg(msgKind, fnName, 'Checking table ' || vertname || ' exists');
+       select * from _pgr_getTableName(vertname, 0, fnName) into naming;
+       sname=naming.sname;
+       vname=naming.tname;
+       err = sname is NULL or vname is NULL;
+    perform _pgr_onError( err, 2, fnName,
+          'Vertex Table: ' || vertname || ' not found',
+          'Please create ' || vertname || ' using  _pgr_createTopology() or pgr_createVerticesTable()',
+          'Vertex Table: ' || vertname || ' found');
+
+
+    perform _pgr_msg(msgKind, fnName, 'Checking columns of ' || vertname);
+      FOREACH cname IN ARRAY columnsArr
+      loop
+         select _pgr_getcolumnName(vertname, cname, 0, fnName) into colname;
+         if colname is null then
+           perform _pgr_msg(msgKind, fnName, 'Adding column ' || cname || ' in ' || vertname);
+           set client_min_messages  to warning;
+                execute 'ALTER TABLE '||_pgr_quote_ident(vertname)||' ADD COLUMN '||cname|| ' integer';
+           execute 'set client_min_messages  to '|| debuglevel;
+           perform _pgr_msg(msgKind, fnName);
+         end if;
+      end loop;
+    perform _pgr_msg(msgKind, fnName, 'Finished checking columns of ' || vertname);
+
+    perform _pgr_createIndex(vertname , 'id' , 'btree', reportErrs, fnName);
+ END
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(
+    sname text, tname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    debuglevel text;
+    naming record;
+    tabname text;
+    query text;
+    msgKind int;
+BEGIN
+  msgKind = 0; -- debug_
+
+  execute 'show client_min_messages' into debuglevel;
+  tabname=_pgr_quote_ident(sname||'.'||tname);
+  perform _pgr_msg(msgKind, fnName, 'Checking ' || colname || ' column in ' || tabname || ' is indexed');
+    IF (_pgr_isColumnIndexed(sname,tname,colname, 0, fnName)) then
+       perform _pgr_msg(msgKind, fnName);
+    else
+      if indext = 'gist' then
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using gist('||quote_ident(colname)||')';
+      else
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using btree('||quote_ident(colname)||')';
+      end if;
+      perform _pgr_msg(msgKind, fnName, 'Adding index ' || tabname || '_' ||  colname || '_idx');
+      perform _pgr_msg(msgKind, fnName, ' Using ' ||  query);
+      set client_min_messages  to warning;
+      BEGIN
+        execute query;
+        EXCEPTION WHEN others THEN
+          perform _pgr_onError( true, reportErrs, fnName,
+            'Could not create index on:' || colname, SQLERRM);
+      END;
+      execute 'set client_min_messages  to '|| debuglevel;
+      perform _pgr_msg(msgKind, fnName);
+    END IF;
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(tabname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    naming record;
+    sname text;
+    tname text;
+
+BEGIN
+    select * from _pgr_getTableName(tabname, 2, fnName)  into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    execute _pgr_createIndex(sname, tname, colname, indext, reportErrs, fnName);
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pointToId(
+    point geometry,
+    tolerance double precision,
+    vertname text,
+    srid integer)
+
+  RETURNS bigint AS
+$BODY$
+DECLARE
+    rec record;
+    pid bigint;
+
+BEGIN
+    EXECUTE 'SELECT ST_Distance(
+        the_geom,
+        ST_GeomFromText(ST_AsText('
+                || quote_literal(point::text)
+                || '),'
+            || srid ||')) AS d, id, the_geom
+    FROM '||_pgr_quote_ident(vertname)||'
+    WHERE ST_DWithin(
+        the_geom,
+        ST_GeomFromText(
+            ST_AsText(' || quote_literal(point::text) ||'),
+            ' || srid || '),' || tolerance||')
+    ORDER BY d
+    LIMIT 1' INTO rec ;
+    IF rec.id IS NOT NULL THEN
+        pid := rec.id;
+    ELSE
+        execute 'INSERT INTO '||_pgr_quote_ident(vertname)||' (the_geom) VALUES ('||quote_literal(point::text)||')';
+        pid := lastval();
+END IF;
+
+RETURN pid;
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'many_to_many_dijkstra'
+LANGUAGE c VOLATILE;
+
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer, OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstra(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(Many to Many)';
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraVia(
+    edges_sql TEXT,
+    via_vertices ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    strict BOOLEAN DEFAULT FALSE,
+    U_turn_on_edge BOOLEAN DEFAULT TRUE,
+
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'dijkstraVia'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_johnson(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'johnson'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_floydWarshall(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'floydWarshall'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'astarManyToMany'
+LANGUAGE c VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, normal:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to Many)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true, normal:=false) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to Many)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid ANYARRAY,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+    equicost BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '$libdir/libpgrouting-2.5', 'many_withPointsDD'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_withPointsDD($1, $2, ARRAY[$3]::BIGINT[], $4, $5, $6, $7, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vids anyarray,
+    distance FLOAT,
+    directed BOOLEAN DEFAULT TRUE,
+    equicost BOOLEAN DEFAULT FALSE,
+    OUT seq integer,
+    OUT from_v  bigint,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '$libdir/libpgrouting-2.5', 'driving_many_to_dist'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vid bigint,
+    distance FLOAT8,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq integer,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer, directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'kshortest_path'
+    LANGUAGE c STABLE STRICT;
+
+-- V2 the graph is directed and there are no heap paths
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid integer, end_vid integer, k integer, has_rcost boolean)
+  RETURNS SETOF pgr_costresult3 AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated signature of pgr_ksp';
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql::text, false);
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_rcost) THEN
+           -- user says that it has reverse_cost but its not true
+           RAISE EXCEPTION 'has_reverse_cost set to true but reverse_cost not found';
+         ELSE
+           -- user says that it does not have reverse_cost but it does have it
+           -- to ignore we remove reverse_cost from the query
+           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+         END IF;
+      END IF;
+
+      RETURN query SELECT ((row_number() over()) -1)::integer  AS seq,  (path_id - 1)::integer AS id1, node::integer AS id2, edge::integer AS id3, cost
+            FROM _pgr_ksp(sql::text, start_vid, end_vid, k, TRUE, FALSE) WHERE path_id <= k;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer,
+  directed boolean default true, heap_paths boolean default false,
+  --directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  BEGIN
+         RETURN query SELECT *
+                FROM _pgr_ksp(edges_sql::text, start_vid, end_vid, k, directed, heap_paths);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsKSP(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    k INTEGER,
+
+    directed BOOLEAN DEFAULT TRUE,
+    heap_paths BOOLEAN DEFAULT FALSE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER, OUT path_id INTEGER, OUT path_seq INTEGER,
+    OUT node BIGINT, OUT edge BIGINT,
+    OUT cost FLOAT, OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'withPoints_ksp'
+    LANGUAGE c STABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_unnest_matrix(matrix float8[][], OUT start_vid integer, OUT end_vid integer, out agg_cost float8)
+RETURNS SETOF record AS
+
+$body$
+DECLARE
+
+m float8[];
+
+BEGIN
+    start_vid = 1;
+    foreach m slice 1 in  ARRAY matrix
+    LOOP
+        end_vid = 1;
+        foreach agg_cost in  ARRAY m
+        LOOP
+            RETURN next;
+            end_vid = end_vid + 1;
+        END LOOP;
+        start_vid = start_vid + 1;
+    END LOOP;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_tsp(
+    matrix float8[][],
+    startpt INTEGER,
+    endpt INTEGER DEFAULT -1,
+    OUT seq INTEGER,
+    OUT id INTEGER)
+RETURNS SETOF record AS
+$body$
+DECLARE
+table_sql TEXT;
+debuglevel TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature pgr_tsp(float8[][], integer, integer)';
+
+    CREATE TEMP TABLE ___tmp2 ON COMMIT DROP AS SELECT * FROM _pgr_unnest_matrix( matrix );
+
+
+    startpt := startpt + 1;
+    IF endpt = -1 THEN endpt := startpt;
+    END IF;
+
+
+    RETURN QUERY
+    WITH
+    result AS (
+        SELECT * FROM pgr_TSP(
+        $$SELECT * FROM ___tmp2 $$,
+        startpt, endpt,
+
+        tries_per_temperature :=  500 :: INTEGER,
+        max_changes_per_temperature := 30 :: INTEGER,
+        max_consecutive_non_changes := 500 :: INTEGER,
+
+        randomize:=false)
+    )
+    SELECT (row_number() over(ORDER BY result.seq) - 1)::INTEGER AS seq, (result.node - 1)::INTEGER AS id
+
+    FROM result WHERE NOT(result.node = startpt AND result.seq != 1);
+
+    DROP TABLE ___tmp2;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+
+
+
+CREATE OR  REPLACE FUNCTION pgr_tsp(sql text, start_id INTEGER, end_id INTEGER default (-1))
+returns setof pgr_costResult as
+$body$
+DECLARE
+table_sql TEXT;
+rec RECORD;
+debuglevel TEXT;
+n BIGINT;
+
+BEGIN
+    RAISE NOTICE 'Deprecated Signature pgr_tsp(sql, integer, integer)';
+
+    table_sql := 'CREATE TEMP TABLE ___tmp ON COMMIT DROP AS ' || sql ;
+    EXECUTE table_sql;
+
+
+    BEGIN
+        EXECUTE 'SELECT id, x, y FROM ___tmp' INTO rec;
+        EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                USING ERRCODE = 'XX000',
+                HINT = 'Please verify the column names: id, x, y';
+    END;
+
+    EXECUTE
+    'SELECT
+        pg_typeof(id)::text as id_type,
+        pg_typeof(x)::text as x_type,
+        pg_typeof(y)::text as y_type FROM ___tmp' INTO rec;
+
+
+    IF NOT((rec.id_type in ('integer'::text))
+        AND (rec.x_type = 'double precision'::text)
+        AND (rec.y_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION '''id'' must be of type INTEGER, ''x'' ad ''y'' must be of type FLOAT'
+            USING ERRCODE = 'XX000';
+    END IF;
+
+    EXECUTE 'SELECT count(*) AS n FROM (' || sql || ') AS __a__' INTO rec;
+    n = rec.n;
+
+    RETURN query
+        SELECT (seq - 1)::INTEGER AS seq, node::INTEGER AS id1, node::INTEGER AS id2, cost
+        FROM pgr_eucledianTSP(sql, start_id, end_id,
+
+            tries_per_temperature :=  500 * n :: INTEGER,
+            max_changes_per_temperature := 60 * n :: INTEGER,
+            max_consecutive_non_changes := 500 * n :: INTEGER,
+
+            randomize := false) WHERE seq <= n;
+    DROP TABLE ___tmp;
+
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+
+create or replace function _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+  as
+$body$
+declare
+    sql text;
+    r record;
+
+begin
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    sql := 'with nodes as (' || sqlin || ')
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j, st_distance(st_makepoint(a.x, a.y), st_makepoint(b.x, b.y)) as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i';
+
+    for r in execute sql loop
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+
+end;
+$body$
+language plpgsql stable cost 10;
+
+
+CREATE OR REPLACE FUNCTION pgr_TSP(
+    matrix_row_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '$libdir/libpgrouting-2.5', 'newTSP'
+LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_eucledianTSP(
+    coordinates_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '$libdir/libpgrouting-2.5', 'eucledianTSP'
+LANGUAGE c VOLATILE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_alphashape(sql text, alpha float8 DEFAULT 0, OUT x float8, OUT y float8)
+    RETURNS SETOF record
+    AS '$libdir/libpgrouting-2.5', 'alphashape'
+    LANGUAGE c VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_pointsAsPolygon(query varchar, alpha float8 DEFAULT 0)
+	RETURNS geometry AS
+	$$
+	DECLARE
+		r record;
+		geoms geometry[];
+		vertex_result record;
+		i int;
+		n int;
+		spos int;
+		q text;
+		x float8[];
+		y float8[];
+
+	BEGIN
+		geoms := array[]::geometry[];
+		i := 1;
+
+		FOR vertex_result IN EXECUTE 'SELECT x, y FROM pgr_alphashape('''|| query || ''', ' || alpha || ')'
+		LOOP
+			x[i] = vertex_result.x;
+			y[i] = vertex_result.y;
+			i := i+1;
+		END LOOP;
+
+		n := i;
+		IF n = 1 THEN
+			RAISE NOTICE 'n = 1';
+			RETURN NULL;
+		END IF;
+
+		spos := 1;
+		q := 'SELECT ST_GeometryFromText(''POLYGON((';
+		FOR i IN 1..n LOOP
+			IF x[i] IS NULL AND y[i] IS NULL THEN
+				q := q || ', ' || x[spos] || ' ' || y[spos] || '))'',0) AS geom;';
+				EXECUTE q INTO r;
+				geoms := geoms || array[r.geom];
+				q := '';
+			ELSE
+				IF q = '' THEN
+					spos := i;
+					q := 'SELECT ST_GeometryFromText(''POLYGON((';
+				END IF;
+				IF i = spos THEN
+					q := q || x[spos] || ' ' || y[spos];
+				ELSE
+					q := q || ', ' || x[i] || ' ' || y[i];
+				END IF;
+			END IF;
+		END LOOP;
+
+		RETURN ST_BuildArea(ST_Collect(geoms));
+	END;
+	$$
+	LANGUAGE 'plpgsql' VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'bd_astar'
+LANGUAGE C VOLATILE;
+
+
+
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed:=true, only_cost:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    BOOLEAN,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false);
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to Many)';
+
+
+
+-- one to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to Many)';
+
+
+-- bdDijkstra MANY TO MANY
+CREATE OR REPLACE FUNCTION _pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'bdDijkstra'
+LANGUAGE c VOLATILE;
+
+
+
+-- ONE TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- TODO directed BOOLEAN DEFAULT TRUE,  on version 3
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, false) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, true) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_vid integer,
+    target_vid integer,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '$libdir/libpgrouting-2.5', 'turn_restrict_shortest_path_vertex'
+LANGUAGE 'c' IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '$libdir/libpgrouting-2.5', 'turn_restrict_shortest_path_edge'
+LANGUAGE 'c' IMMUTABLE;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || edges_sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        -- no restrictions then its a dijkstra
+        RETURN query SELECT a.seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_dijkstra(new_sql, start_vid, end_vid, directed) a;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, start_vid, end_vid, directed, has_rcost, restrictions_sql);
+    RETURN;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_trspViaVertices(
+    edges_sql TEXT,
+    via_vids ANYARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult3 AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            new_sql :=
+               'WITH old_sql AS (' || edges_sql || ')' ||
+                '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        RETURN query SELECT (row_number() over())::INTEGER, path_id:: INTEGER, node::INTEGER,
+            (CASE WHEN edge = -2 THEN -1 ELSE edge END)::INTEGER, cost
+            FROM pgr_dijkstraVia(new_sql, via_vids, directed, strict:=true) WHERE edge != -1;
+        RETURN;
+    END IF;
+
+
+    -- make the call without contradiction from part of the user
+    RETURN query SELECT * FROM _pgr_trspViaVertices(new_sql, via_vids::INTEGER[], directed, has_rcost, restrictions_sql);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+
+    new_sql := sql;
+    IF (has_reverse != has_reverse_cost) THEN  -- user contradiction
+        IF (has_reverse) THEN
+            -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) THEN
+        -- no restrictions then its a with points
+        RETURN query SELECT a.seq-1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_withpoints(new_sql,
+            '(SELECT 1 as pid, ' || source_eid || 'as edge_id, ' || source_pos || '::float8 as fraction)'
+            || ' UNION '
+            || '(SELECT 2, ' || target_eid || ', ' || target_pos || ')' ::TEXT,
+            -1, -2, directed) a;
+        -- WHERE node != -2;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, source_eid, source_pos, target_eid, target_pos, directed, has_reverse_cost, turn_restrict_sql);
+    RETURN;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+create or replace function _pgr_trspViaVertices(sql text, vids integer[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    lrra boolean := false;
+    seq integer := 0;
+    seq2 integer := 0;
+
+begin
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(vids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from _pgr_trsp(sql, vids[i], vids[i+1], directed, has_rcost, turn_restrict_sql) as a loop
+            -- filter out the individual path ends except the last one
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --raise notice 'rr: %', rr;
+            if rr.id3 = -1 then
+                lrr := rr;
+                lrra := true;
+            else
+                seq := seq + 1;
+                rr.seq := seq;
+                return next rr;
+            end if;
+        end loop;
+    end loop;
+
+    if lrra then
+        seq := seq + 1;
+        lrr.seq := seq;
+        return next lrr;
+    end if;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+
+----------------------------------------------------------------------------------------------------------
+
+create or replace function pgr_trspViaEdges(sql text, eids integer[], pcts float8[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    first boolean := true;
+    seq integer := 0;
+    seq2 integer :=0;
+    has_reverse BOOLEAN;
+    point_is_vertex BOOLEAN := false;
+    edges_sql TEXT;
+    f float;
+
+begin
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql := sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (NOT has_rcost) THEN
+            -- user does not want to use reverse cost column
+            edges_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    FOREACH f IN ARRAY pcts LOOP
+        IF f in (0,1) THEN
+           point_is_vertex := true;
+        END IF;
+    END LOOP;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) AND NOT point_is_vertex THEN
+        -- no restrictions then its a _pgr_withPointsVia
+        RETURN query SELECT a.seq::INTEGER, path_id::INTEGER AS id1, node::INTEGER AS id2, edge::INTEGER AS id3, cost
+        FROM _pgr_withPointsVia(edges_sql, eids, pcts, directed) a;
+        RETURN;
+    END IF;
+
+    if array_length(eids, 1) != array_length(pcts, 1) then
+        raise exception 'The length of arrays eids and pcts must be the same!';
+    end if;
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(eids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from pgr_trsp(edges_sql,
+                                  eids[i], pcts[i],
+                                  eids[i+1], pcts[i+1],
+                                  directed,
+                                  has_rcost,
+                                  turn_restrict_sql) as a loop
+            -- combine intermediate via costs when cost is split across
+            -- two parts of a segment because it stops it and
+            -- restarts the next leg also on it
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --
+            -- there are multiple condition we have to deal with
+            -- between the end of one leg and start of the next
+            -- 1. same vertex_id. edge_id=-1; drop record with edge_id=-1
+            -- means: path ends on vertex
+            -- NOTICE:  rr: (19,1,44570022,-1,0)
+            -- NOTICE:  rr: (0,2,44570022,1768045,2.89691196717448)
+            -- 2. vertex_id=-1; sum cost components
+            -- means: path end/starts with the segment
+            -- NOTICE:  rr: (11,2,44569628,1775909,9.32885885148532)
+            -- NOTICE:  rr: (0,3,-1,1775909,0.771386350984395)
+
+            --raise notice 'rr: %', rr;
+            if first then
+                lrr := rr;
+                first := false;
+            else
+                if lrr.id3 = -1 then
+                    lrr := rr;
+                elsif lrr.id3 = rr.id3 then
+                    lrr.cost := lrr.cost + rr.cost;
+                    if rr.id2 = -1 then
+                        rr.id2 := lrr.id2;
+                    end if;
+                else
+                    seq := seq + 1;
+                    lrr.seq := seq;
+                    return next lrr;
+                    lrr := rr;
+                end if;
+            end if;
+        end loop;
+    end loop;
+
+    seq := seq + 1;
+    lrr.seq := seq;
+    return next lrr;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+----------------------------
+--    MANY TO MANY
+----------------------------
+
+
+CREATE OR REPLACE FUNCTION _pgr_maxflow(
+    edges_sql TEXT,
+    sources ANYARRAY,
+    targets ANYARRAY,
+    algorithm INTEGER DEFAULT 1,
+    only_flow BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'max_flow_many_to_many'
+    LANGUAGE c VOLATILE;
+
+
+
+
+------------------------------------
+-- 3 pgr_edmondsKarp
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+------------------------------------
+-- 2 boykov_kolmogorov
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+------------------------------------
+-- 1 pgr_pushRelabel
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT flow
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], algorithm := 1, only_flow := true);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], $3::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, $2::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxCardinalityMatch(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'edge_disjoint_paths_many_to_many'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    bigint,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    IN directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_contractGraph(
+    edges_sql TEXT,
+    contraction_order BIGINT[],
+    max_cycles integer DEFAULT 1,
+    forbidden_vertices BIGINT[] DEFAULT ARRAY[]::BIGINT[],
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT type TEXT,
+    OUT id BIGINT,
+    OUT contracted_vertices BIGINT[],
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost float)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'contractGraph'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliver(
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_cell_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'pickDeliver'
+LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliverEuclidean (
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'pickDeliverEuclidean'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_vrpOneDepot(
+    TEXT, -- customers_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_sql
+    INTEGER, -- depot_id
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+orders_sql TEXT;
+trucks_sql TEXT;
+matrix_sql TEXT;
+final_sql TEXT;
+BEGIN
+
+    orders_sql = $$WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    pickups AS (
+        SELECT id, x AS p_x, y AS p_y, open_time AS p_open, close_time AS p_close, service_time AS p_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vrp_orders.id AS id, order_unit AS demand, pickups.id AS p_node_id, p_x, p_y, p_open, p_close, p_service,
+    vrp_orders.id AS d_node_id, x AS d_x, y AS d_y, open_time AS d_open, close_time AS d_close, service_time AS d_service
+    FROM vrp_orders, pickups
+    WHERE vrp_orders.id != $$ || $4;
+
+
+    trucks_sql = $$ WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    vrp_vehicles AS ($$ || $2 || $$ ),
+    starts AS (
+        SELECT id AS start_node_id, x AS start_x, y AS start_y, open_time AS start_open, close_time AS start_close, service_time AS start_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vehicle_id AS id, capacity, starts.* FROM vrp_vehicles, starts;
+    $$;
+
+    final_sql = '
+    SELECT * FROM _pgr_pickDeliver(
+            $$' || orders_sql || '$$,
+            $$' || trucks_sql || '$$,
+            $$' || $3 || '$$,
+            max_cycles := 2,
+            initial_sol := 4 ); ';
+
+    RAISE DEBUG '%', orders_sql;
+    RAISE DEBUG '%', trucks_sql;
+    RAISE DEBUG '%', $3;
+    RAISE DEBUG '%', final_sql;
+
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+-----------------------------------------------------------------------
+-- Core function for vrp with sigle depot computation
+-- See README for description
+-----------------------------------------------------------------------
+--
+--
+
+create or replace function pgr_vrpOneDepot(
+	order_sql text,
+	vehicle_sql text,
+	cost_sql text,
+	depot_id integer,
+
+	OUT oid integer,
+	OUT opos integer,
+	OUT vid integer,
+	OUT tarrival integer,
+	OUT tdepart integer)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT order_id::INTEGER, stop_seq::INTEGER, vehicle_id::INTEGER, arrival_time::INTEGER, departure_time::INTEGER
+    FROM _pgr_vrpOneDepot($1, $2,
+       '
+            SELECT src_id AS start_vid, dest_id AS end_vid, traveltime AS agg_cost FROM ('||$3||') AS a
+       ',
+        $4
+    ) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_gsoc_vrppdtw(
+    customers_sql TEXT,
+    max_vehicles INTEGER,
+    capacity FLOAT,
+    speed FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+
+    OUT seq INTEGER,
+    OUT vehicle_id INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT stop_id BIGINT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+    orders_sql TEXT;
+    vehicles_sql TEXT;
+    final_sql TEXT;
+BEGIN
+    orders_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        pickups AS (
+            SELECT id, demand, x as p_x, y as p_y, opentime as p_open, closetime as p_close, servicetime as p_service
+            FROM  customer_data WHERE pindex = 0 AND id != 0
+        ),
+        deliveries AS (
+            SELECT pindex AS id, x as d_x, y as d_y, opentime as d_open, closetime as d_close, servicetime as d_service
+            FROM  customer_data WHERE dindex = 0 AND id != 0
+        )
+        SELECT * FROM pickups JOIN deliveries USING(id) ORDER BY pickups.id
+    $$;
+
+    vehicles_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ )
+        SELECT id, x AS start_x, y AS start_y,
+            opentime AS start_open, closetime AS start_close, $$ ||
+            capacity || $$ AS capacity, $$ || max_vehicles || $$ AS number, $$ || speed || $$ AS speed
+            FROM customer_data WHERE id = 0 LIMIT 1
+        $$;
+--  seq | vehicle_id | vehicle_seq | stop_id | travel_time | arrival_time | wait_time | service_time | departure_time
+    final_sql = $$ WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        p_deliver AS (SELECT * FROM _pgr_pickDeliverEuclidean('$$ || orders_sql || $$',  '$$ || vehicles_sql || $$',  1, $$ || max_cycles || $$ )),
+        picks AS (SELECT p_deliver.*, pindex, dindex, id AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 2)),
+        delivers AS (SELECT p_deliver.*, pindex, dindex, dindex AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 3)),
+        depots AS (SELECT p_deliver.*, 0 as pindex, 0 as dindex, 0 AS the_id FROM p_deliver WHERE (stop_type IN (-1,1,6))),
+        the_union AS (SELECT * FROM picks UNION SELECT * FROM delivers UNION SELECT * from depots)
+
+        SELECT (row_number() over(ORDER BY a.seq))::INTEGER, vehicle_seq, a.stop_seq, the_id::BIGINT, a.travel_time, a.arrival_time, a.wait_time, a.service_time, a.departure_time
+        FROM (SELECT * FROM the_union) AS a ORDER BY a.seq
+        $$;
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+CREATE OR REPLACE FUNCTION pgr_gsoc_vrppdtw(
+    sql text,
+    vehicle_num INTEGER,
+    capacity INTEGER
+)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+customers_sql TEXT;
+BEGIN
+    RETURN query
+         SELECT a.seq, vehicle_id::INTEGER AS id1, stop_id::INTEGER AS id2, departure_time AS cost
+        FROM _pgr_gsoc_vrppdtw($1, $2, $3, 1, 30) AS a WHERE vehicle_id NOT IN (-2);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION _pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN,
+    driving_side CHAR,
+    details BOOLEAN,
+
+    only_cost BOOLEAN DEFAULT false, -- gets path
+    normal BOOLEAN DEFAULT true, -- false for many to onu
+
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'withPoints'
+LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], ARRAY[$4]::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], ARRAY[$4]::bigint[], $5, $6, $7, FALSE, FALSE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], $4::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], $4::BIGINT[], $5,  $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION  _pgr_withPointsVia(
+    sql text,
+    via_edges bigint[],
+    fraction float[],
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  has_rcost boolean;
+  sql_new_vertices text := ' ';
+  sql_on_vertex text;
+  v_union text := ' ';
+  dummyrec record;
+  rec1 record;
+  via_vertices int[];
+  sql_safe text;
+  new_edges text;
+  BEGIN
+     BEGIN
+        sql_safe = 'SELECT id, source, target, cost, reverse_cost FROM ('|| sql || ') AS __a';
+
+        EXECUTE 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||sql_safe||' ) AS __b__ limit 1 ' INTO rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+     END;
+
+
+      IF array_length(via_edges, 1) != array_length(fraction, 1) then
+        RAISE EXCEPTION 'The length of via_edges is different of length of via_edges';
+      END IF;
+
+      FOR i IN 1 .. array_length(via_edges, 1)
+      LOOP
+          IF fraction[i] = 0 THEN
+              sql_on_vertex := 'SELECT source FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.source;
+          ELSE IF fraction[i] = 1 THEN
+              sql_on_vertex := 'SELECT target FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.target;
+          ELSE
+              via_vertices[i] = -i;
+              IF has_rcost THEN
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost,
+                              reverse_cost * (1 - ' || fraction[i] || ')  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost,
+                              reverse_cost *  ' || fraction[i] || '  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' where id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               ELSE
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               END IF;
+          END IF;
+          END IF;
+     END LOOP;
+
+     IF sql_new_vertices = ' ' THEN
+         new_edges := sql;
+     ELSE
+         IF has_rcost THEN
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost,
+                         lead(cost) OVER w  - cost AS reverse_cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL),
+                   second_part AS ( SELECT * FROM (SELECT id, lead(source) OVER w  AS source, source as target,
+                         reverse_cost - lead(reverse_cost) OVER w  AS cost,
+                         reverse_cost - lead(reverse_cost) OVER w  AS reverse_cost
+                      FROM  the_union  WHERE target > 0 and reverse_cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY reverse_cost ASC) ) as n2
+                      WHERE source IS NOT NULL),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part)
+                             UNION
+                       (SELECT * FROM second_part) ) _union )
+                  SELECT *  FROM more_union';
+         ELSE
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL ),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part) ) _union )
+                  SELECT *  FROM more_union';
+          END IF;
+      END IF;
+
+ -- raise notice '%', new_edges;
+     sql_new_vertices := sql_new_vertices || v_union || ' (' || sql || ')';
+     RETURN query SELECT *
+         FROM pgr_dijkstraVia(new_edges, via_vertices, directed, has_rcost);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_lineGraph(
+    TEXT, -- edges_sql
+    directed BOOLEAN DEFAULT true,
+    OUT seq INTEGER,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost FLOAT,
+    OUT reverse_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'lineGraph'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_connectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'connectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_strongComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'strongComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_biconnectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the edge in the component
+    OUT n_seq INTEGER,          -- nth_seq of the edge in the component
+    OUT edge BIGINT)            -- the number of the edge
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'biconnectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_articulationPoints(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'articulationPoints'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_bridges(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT edge BIGINT)            -- the number of the edge 
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'bridges'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_createtopology(edge_table text, tolerance double precision,
+		   the_geom text default 'the_geom', id text default 'id',
+		   source text default 'source', target text default 'target',rows_where text default 'true',
+		   clean boolean default FALSE)
+RETURNS VARCHAR AS
+$BODY$
+
+DECLARE
+    points record;
+    sridinfo record;
+    source_id bigint;
+    target_id bigint;
+    totcount bigint;
+    rowcount bigint;
+    srid integer;
+    sql text;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    idname text;
+    sourcename text;
+    targetname text;
+    notincluded integer;
+    i integer;
+    naming record;
+    info record;
+    flag boolean;
+    query text;
+    idtype text;
+    gtype text;
+    sourcetype text;
+    targettype text;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+    msgKind int;
+    emptied BOOLEAN;
+
+BEGIN
+    msgKind = 1; -- notice
+    fnName = 'pgr_createTopology';
+    raise notice 'PROCESSING:';
+    raise notice 'pgr_createTopology(''%'', %, ''%'', ''%'', ''%'', ''%'', rows_where := ''%'', clean := %)',edge_table,tolerance,the_geom,id,source,target,rows_where, clean;
+    execute 'show client_min_messages' into debuglevel;
+
+
+    raise notice 'Performing checks, please wait .....';
+
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+        sname=naming.sname;
+        tname=naming.tname;
+        tabname=sname||'.'||tname;
+        vname=tname||'_vertices_pgr';
+        vertname= sname||'.'||vname;
+        rows_where = ' AND ('||rows_where||')';
+      raise DEBUG '     --> OK';
+
+
+      raise debug 'Checking column names in edge table';
+        select * into idname     from _pgr_getColumnName(sname, tname,id,2,fnName);
+        select * into sourcename from _pgr_getColumnName(sname, tname,source,2,fnName);
+        select * into targetname from _pgr_getColumnName(sname, tname,target,2,fnName);
+        select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2,fnName);
+
+
+        err = sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname;
+        perform _pgr_onError( err, 2, fnName,
+               'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
+	       'Column names are OK');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking column types in edge table';
+        select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+        select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+        select * into idtype from _pgr_getColumnType(sname,tname,idname,1, fnName);
+
+        err = idtype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column id:'|| idname, ' Expected type of '|| idname || ' is integer,smallint or bigint but '||idtype||' was found');
+
+        err = sourcetype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column source:'|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+        err = targettype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column target:'|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or bigint but '||targettype||' was found');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking SRID of geometry column';
+         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+            || ' FROM ' || _pgr_quote_ident(tabname)
+            || ' WHERE ' || quote_ident(gname)
+            || ' IS NOT NULL LIMIT 1';
+         raise debug '%',query;
+         EXECUTE query INTO sridinfo;
+
+         err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+         perform _pgr_onError(err, 2, fnName,
+	     'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+
+         srid := sridinfo.srid;
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking and creating indices in edge table';
+        perform _pgr_createIndex(sname, tname , idname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+
+        gname=quote_ident(gname);
+        idname=quote_ident(idname);
+        sourcename=quote_ident(sourcename);
+        targetname=quote_ident(targetname);
+      raise DEBUG '     --> OK';
+
+
+
+
+
+    BEGIN
+        -- issue #193 & issue #210 & #213
+        -- this sql is for trying out the where clause
+        -- the select * is to avoid any column name conflicts
+        -- limit 1, just try on first record
+        -- if the where clasuse is ill formed it will be caught in the exception
+        sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+        EXECUTE sql into dummyRec;
+        -- end
+
+        -- if above where clasue works this one should work
+        -- any error will be caught by the exception also
+        sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NOT NULL AND '||
+	    idname||' IS NOT NULL)=false '||rows_where;
+        EXECUTE SQL  into notincluded;
+
+        if clean then
+            raise debug 'Cleaning previous Topology ';
+               execute 'UPDATE ' || _pgr_quote_ident(tabname) ||
+               ' SET '||sourcename||' = NULL,'||targetname||' = NULL';
+        else
+            raise debug 'Creating topology for edges with non assigned topology';
+            if rows_where=' AND (true)' then
+                rows_where=  ' and ('||quote_ident(sourcename)||' is null or '||quote_ident(targetname)||' is  null)';
+            end if;
+        end if;
+        -- my thoery is that the select Count(*) will never go through here
+        EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+             RAISE NOTICE '%',sql;
+             RETURN 'FAIL';
+    END;
+
+    BEGIN
+         raise DEBUG 'initializing %',vertname;
+         execute 'select * from _pgr_getTableName('||quote_literal(vertname)
+                                                  || ',0,' || quote_literal(fnName) ||' )' into naming;
+         emptied = false;
+         set client_min_messages  to warning;
+         IF sname=naming.sname AND vname=naming.tname  THEN
+            if clean then
+                execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+                execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+                emptied = true;
+            end if;
+         ELSE -- table doesn't exist
+            execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+            emptied = true;
+         END IF;
+         IF (emptied) THEN
+             execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+	         quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+             perform _pgr_createIndex(vertname , 'the_geom'::text , 'gist'::text);
+         END IF;
+         execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id"}''::text[])' into naming;
+         execute 'set client_min_messages  to '|| debuglevel;
+         raise DEBUG  '  ------>OK';
+         EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: something went wrong when initializing the verties table';
+             RETURN 'FAIL';
+    END;
+
+
+
+    raise notice 'Creating Topology, Please wait...';
+        rowcount := 0;
+        FOR points IN EXECUTE 'SELECT ' || idname || '::bigint AS id,'
+            || ' _pgr_StartPoint(' || gname || ') AS source,'
+            || ' _pgr_EndPoint('   || gname || ') AS target'
+            || ' FROM '  || _pgr_quote_ident(tabname)
+            || ' WHERE ' || gname || ' IS NOT NULL AND ' || idname||' IS NOT NULL '||rows_where
+        LOOP
+
+            rowcount := rowcount + 1;
+            IF rowcount % 1000 = 0 THEN
+                RAISE NOTICE '% edges processed', rowcount;
+            END IF;
+
+
+            source_id := _pgr_pointToId(points.source, tolerance,vertname,srid);
+            target_id := _pgr_pointToId(points.target, tolerance,vertname,srid);
+            BEGIN
+                sql := 'UPDATE ' || _pgr_quote_ident(tabname) ||
+                    ' SET '||sourcename||' = '|| source_id::text || ','||targetname||' = ' || target_id::text ||
+                    ' WHERE ' || idname || ' =  ' || points.id::text;
+
+                IF sql IS NULL THEN
+                    RAISE NOTICE 'WARNING: UPDATE % SET source = %, target = % WHERE % = % ', tabname, source_id::text, target_id::text, idname,  points.id::text;
+                ELSE
+                    EXECUTE sql;
+                END IF;
+                EXCEPTION WHEN OTHERS THEN
+                    RAISE NOTICE '%', SQLERRM;
+                    RAISE NOTICE '%',sql;
+                    RETURN 'FAIL';
+            end;
+        END LOOP;
+        raise notice '-------------> TOPOLOGY CREATED FOR  % edges', rowcount;
+        RAISE NOTICE 'Rows with NULL geometry or NULL id: %',notincluded;
+        Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname), _pgr_quote_ident(vertname);
+        raise notice '----------------------------------------------';
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+COMMENT ON FUNCTION pgr_createTopology(text, double precision,text,text,text,text,text,boolean)
+IS 'args: edge_table,tolerance, the_geom:=''the_geom'',source:=''source'', target:=''target'',rows_where:=''true'' - fills columns source and target in the geometry table and creates a vertices table for selected rows';
+
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
+RETURNS character varying AS
+$BODY$
+
+DECLARE
+    points record;
+    seg record;
+    naming record;
+    sridinfo record;
+    srid integer;
+    ecnt integer;
+    vertname text;
+    sname text;
+    tname text;
+    vname text;
+    idname text;
+    sourcename text;
+    targetname text;
+    sourcetype text;
+    targettype text;
+    geotype text;
+    gname text;
+    tabName text;
+    flag boolean ;
+    query text;
+    selectionquery text;
+    i integer;
+    tot integer;
+    NumIsolated integer;
+    numdeadends integer;
+    numgaps integer;
+    NumCrossing integer;
+    numRings integer;
+    debuglevel text;
+
+
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_analyzeGraph(''%'',%,''%'',''%'',''%'',''%'',''%'')',edge_table,tolerance,the_geom,id,source,target,rows_where;
+  raise notice 'Performing checks, please wait ...';
+  execute 'show client_min_messages' into debuglevel;
+
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',2)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    rows_where = ' AND ('||rows_where||')';
+    raise DEBUG '     --> OK';
+
+  END;
+
+  BEGIN
+       raise debug 'Checking Vertices table';
+       execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","cnt","chk"}''::text[])' into naming;
+       execute 'UPDATE '||_pgr_quote_ident(vertname)||' SET cnt=0 ,chk=0';
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the vertices table';
+          RETURN 'FAIL';
+  END;
+
+
+
+  BEGIN
+       raise debug 'Checking column names in edge table';
+       select * into idname     from _pgr_getColumnName(sname, tname,id,2);
+       select * into sourcename from _pgr_getColumnName(sname, tname,source,2);
+       select * into targetname from _pgr_getColumnName(sname, tname,target,2);
+       select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2);
+
+
+       perform _pgr_onError( sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname, 2,
+                       'pgr_analyzeGraph',  'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
+                       'Column names are OK');
+
+        raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column names';
+          RETURN 'FAIL';
+  END;
+
+
+  BEGIN
+       raise debug 'Checking column types in edge table';
+       select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1);
+       select * into targettype from _pgr_getColumnType(sname,tname,targetname,1);
+
+       perform _pgr_onError(sourcetype not in('integer','smallint','bigint') , 2,
+                       'pgr_analyzeGraph',  'Wrong type of Column '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found',
+                       'Type of Column '|| sourcename || ' is ' || sourcetype);
+
+       perform _pgr_onError(targettype not in('integer','smallint','bigint') , 2,
+                       'pgr_analyzeGraph',  'Wrong type of Column '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found',
+                       'Type of Column '|| targetname || ' is ' || targettype);
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column types';
+          RETURN 'FAIL';
+   END;
+
+   BEGIN
+       raise debug 'Checking SRID of geometry column';
+         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+            || ' FROM ' || _pgr_quote_ident(tabname)
+            || ' WHERE ' || quote_ident(gname)
+            || ' IS NOT NULL LIMIT 1';
+         EXECUTE QUERY INTO sridinfo;
+
+         perform _pgr_onError( sridinfo IS NULL OR sridinfo.srid IS NULL,2,
+                 'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname,
+                 'SRID of '||gname||' is '||sridinfo.srid);
+
+         IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
+             RAISE NOTICE ' Can not determine the srid of the geometry "%" in table %', the_geom,tabname;
+             RETURN 'FAIL';
+         END IF;
+         srid := sridinfo.srid;
+         raise DEBUG '     --> OK';
+         EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM;--issue 210,211,213
+             RAISE NOTICE 'ERROR: something went wrong when checking for SRID of % in table %', the_geom,tabname;
+             RETURN 'FAIL';
+    END;
+
+
+    BEGIN
+       raise debug 'Checking  indices in edge table';
+       perform _pgr_createIndex(tabname , idname , 'btree');
+       perform _pgr_createIndex(tabname , sourcename , 'btree');
+       perform _pgr_createIndex(tabname , targetname , 'btree');
+       perform _pgr_createIndex(tabname , gname , 'gist');
+
+       gname=quote_ident(gname);
+       sourcename=quote_ident(sourcename);
+       targetname=quote_ident(targetname);
+       idname=quote_ident(idname);
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking indices';
+          RETURN 'FAIL';
+    END;
+
+
+    BEGIN
+        query='select count(*) from '||_pgr_quote_ident(tabname)||' where true  '||rows_where;
+        EXECUTE query into ecnt;
+        raise DEBUG '-->Rows Where condition: OK';
+        raise DEBUG '     --> OK';
+         EXCEPTION WHEN OTHERS THEN
+            RAISE NOTICE 'Got %', SQLERRM;  --issue 210,211,213
+            RAISE NOTICE 'ERROR: Condition is not correct. Please execute the following query to test your condition';
+            RAISE NOTICE '%',query;
+            RETURN 'FAIL';
+    END;
+
+    selectionquery ='with
+           selectedRows as( (select '||sourcename||' as id from '||_pgr_quote_ident(tabname)||' where true '||rows_where||')
+                           union
+                           (select '||targetname||' as id from '||_pgr_quote_ident(tabname)||' where true '||rows_where||'))';
+
+
+
+
+
+   BEGIN
+       RAISE NOTICE 'Analyzing for dead ends. Please wait...';
+       query= 'with countingsource as (select a.'||sourcename||' as id,count(*) as cnts
+               from (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) a  group by a.'||sourcename||')
+                     ,countingtarget as (select a.'||targetname||' as id,count(*) as cntt
+                    from (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) a  group by a.'||targetname||')
+                   ,totalcount as (select id,case when cnts is null and cntt is null then 0
+                                                   when cnts is null then cntt
+                                                   when cntt is null then cnts
+                                                   else cnts+cntt end as totcnt
+                                   from ('||_pgr_quote_ident(vertname)||' as a left
+                                   join countingsource as t using(id) ) left join countingtarget using(id))
+               update '||_pgr_quote_ident(vertname)||' as a set cnt=totcnt from totalcount as b where a.id=b.id';
+       raise debug '%',query;
+       execute query;
+       query=selectionquery||'
+              SELECT count(*)  FROM '||_pgr_quote_ident(vertname)||' WHERE cnt=1 and id in (select id from selectedRows)';
+       raise debug '%',query;
+       execute query  INTO numdeadends;
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'Got %', SQLERRM;  --issue 210,211,213
+          RAISE NOTICE 'ERROR: something went wrong when analizing for dead ends';
+          RETURN 'FAIL';
+   END;
+
+
+
+    BEGIN
+          RAISE NOTICE 'Analyzing for gaps. Please wait...';
+          query = 'with
+                   buffer as (select id,st_buffer(the_geom,'||tolerance||') as buff from '||_pgr_quote_ident(vertname)||' where cnt=1)
+                   ,veryclose as (select b.id,st_crosses(a.'||gname||',b.buff) as flag
+                   from  (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) as a
+                   join buffer as b on (a.'||gname||'&&b.buff)
+                   where '||sourcename||'!=b.id and '||targetname||'!=b.id )
+                   update '||_pgr_quote_ident(vertname)||' set chk=1 where id in (select distinct id from veryclose where flag=true)';
+          raise debug '%' ,query;
+          execute query;
+          GET DIAGNOSTICS  numgaps= ROW_COUNT;
+          raise DEBUG '     --> OK';
+          EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for gaps';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for isolated edges. Please wait...';
+        query=selectionquery|| ' SELECT count(*) FROM (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' )  as a,
+                                                 '||_pgr_quote_ident(vertname)||' as b,
+                                                 '||_pgr_quote_ident(vertname)||' as c
+                            WHERE b.id in (select id from selectedRows) and a.'||sourcename||' =b.id
+                            AND b.cnt=1 AND a.'||targetname||' =c.id
+                            AND c.cnt=1';
+        raise debug '%' ,query;
+        execute query  INTO NumIsolated;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for isolated edges';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for ring geometries. Please wait...';
+        execute 'SELECT geometrytype('||gname||')  FROM '||_pgr_quote_ident(tabname) limit 1 into geotype;
+        IF (geotype='MULTILINESTRING') THEN
+            query ='SELECT count(*)  FROM '||_pgr_quote_ident(tabname)||'
+                                 WHERE true  '||rows_where||' and st_isRing(st_linemerge('||gname||'))';
+            raise debug '%' ,query;
+            execute query  INTO numRings;
+        ELSE query ='SELECT count(*)  FROM '||_pgr_quote_ident(tabname)||'
+                                  WHERE true  '||rows_where||' and st_isRing('||gname||')';
+            raise debug '%' ,query;
+            execute query  INTO numRings;
+        END IF;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for ring geometries';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for intersections. Please wait...';
+        query = 'select count(*) from (select distinct case when a.'||idname||' < b.'||idname||' then a.'||idname||'
+                                                        else b.'||idname||' end,
+                                                   case when a.'||idname||' < b.'||idname||' then b.'||idname||'
+                                                        else a.'||idname||' end
+                                    FROM (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||') as a
+                                    JOIN (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||') as b
+                                    ON (a.'|| gname||' && b.'||gname||')
+                                    WHERE a.'||idname||' != b.'||idname|| '
+                                        and (a.'||sourcename||' in (b.'||sourcename||',b.'||targetname||')
+                                              or a.'||targetname||' in (b.'||sourcename||',b.'||targetname||')) = false
+                                        and st_intersects(a.'||gname||', b.'||gname||')=true) as d ';
+        raise debug '%' ,query;
+        execute query  INTO numCrossing;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for intersections';
+            RETURN 'FAIL';
+    END;
+
+
+
+
+    RAISE NOTICE '            ANALYSIS RESULTS FOR SELECTED EDGES:';
+    RAISE NOTICE '                  Isolated segments: %', NumIsolated;
+    RAISE NOTICE '                          Dead ends: %', numdeadends;
+    RAISE NOTICE 'Potential gaps found near dead ends: %', numgaps;
+    RAISE NOTICE '             Intersections detected: %',numCrossing;
+    RAISE NOTICE '                    Ring geometries: %',numRings;
+
+
+    RETURN 'OK';
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+COMMENT ON FUNCTION pgr_analyzeGraph(text,double precision,text,text,text,text,text) IS 'args: edge_table, tolerance,the_geom:=''the_geom'',id:=''id'',source column:=''source'', target column:=''target'' rows_where:=''true'' - creates a vertices table based on the geometry for selected rows';
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_analyzeOneway(
+   edge_table text,
+   s_in_rules TEXT[],
+   s_out_rules TEXT[],
+   t_in_rules TEXT[],
+   t_out_rules TEXT[],
+   two_way_if_null boolean default true,
+   oneway text default 'oneway',
+   source text default 'source',
+   target text default 'target')
+  RETURNS text AS
+$BODY$
+
+
+DECLARE
+    rule text;
+    ecnt integer;
+    instr text;
+    naming record;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    owname text;
+    sourcename text;
+    targetname text;
+    sourcetype text;
+    targettype text;
+    vertname text;
+    debuglevel text;
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_analyzeOneway(''%'',''%'',''%'',''%'',''%'',''%'',''%'',''%'',%)',
+		edge_table, s_in_rules , s_out_rules, t_in_rules, t_out_rules, oneway, source ,target,two_way_if_null ;
+  execute 'show client_min_messages' into debuglevel;
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',2)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    raise DEBUG '     --> OK';
+    EXCEPTION WHEN raise_exception THEN
+      RAISE NOTICE 'ERROR: something went wrong checking the table name';
+      RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise debug 'Checking Vertices table';
+       execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","ein","eout"}''::text[])' into naming;
+       execute 'UPDATE '||_pgr_quote_ident(vertname)||' SET eout=0 ,ein=0';
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the vertices table';
+          RETURN 'FAIL';
+  END;
+
+
+  BEGIN
+       raise debug 'Checking column names in edge table';
+       select * into sourcename from _pgr_getColumnName(sname, tname,source,2);
+       select * into targetname from _pgr_getColumnName(sname, tname,target,2);
+       select * into owname from _pgr_getColumnName(sname, tname,oneway,2);
+
+
+       perform _pgr_onError( sourcename in (targetname,owname) or  targetname=owname, 2,
+                       '_pgr_createToplogy',  'Two columns share the same name', 'Parameter names for oneway,source and target  must be different',
+                       'Column names are OK');
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column names';
+          RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise debug 'Checking column types in edge table';
+       select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1);
+       select * into targettype from _pgr_getColumnType(sname,tname,targetname,1);
+
+
+       perform _pgr_onError(sourcetype not in('integer','smallint','bigint') , 2,
+                       '_pgr_createTopology',  'Wrong type of Column '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found',
+                       'Type of Column '|| sourcename || ' is ' || sourcetype);
+
+       perform _pgr_onError(targettype not in('integer','smallint','bigint') , 2,
+                       '_pgr_createTopology',  'Wrong type of Column '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found',
+                       'Type of Column '|| targetname || ' is ' || targettype);
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column types';
+          RETURN 'FAIL';
+   END;
+
+
+
+    RAISE NOTICE 'Analyzing graph for one way street errors.';
+
+    rule := CASE WHEN two_way_if_null
+            THEN owname || ' IS NULL OR '
+            ELSE '' END;
+
+    instr := '''' || array_to_string(s_in_rules, ''',''') || '''';
+       EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set ein=coalesce(ein,0)+b.cnt
+      from (
+         select '|| sourcename ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| sourcename ||' ) b
+     where a.id=b.'|| sourcename;
+
+    RAISE NOTICE 'Analysis 25%% complete ...';
+
+    instr := '''' || array_to_string(t_in_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set ein=coalesce(ein,0)+b.cnt
+        from (
+         select '|| targetname ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| targetname ||' ) b
+        where a.id=b.'|| targetname;
+
+    RAISE NOTICE 'Analysis 50%% complete ...';
+
+    instr := '''' || array_to_string(s_out_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set eout=coalesce(eout,0)+b.cnt
+        from (
+         select '|| sourcename ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| sourcename ||' ) b
+        where a.id=b.'|| sourcename;
+    RAISE NOTICE 'Analysis 75%% complete ...';
+
+    instr := '''' || array_to_string(t_out_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set eout=coalesce(eout,0)+b.cnt
+        from (
+         select '|| targetname ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| targetname ||' ) b
+        where a.id=b.'|| targetname;
+
+    RAISE NOTICE 'Analysis 100%% complete ...';
+
+    EXECUTE 'SELECT count(*)  FROM '||_pgr_quote_ident(vertname)||' WHERE ein=0 or eout=0' INTO ecnt;
+
+    RAISE NOTICE 'Found % potential problems in directionality' ,ecnt;
+
+    RETURN 'OK';
+
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+COMMENT ON FUNCTION pgr_analyzeOneway(text,TEXT[],TEXT[], TEXT[],TEXT[],boolean,text,text,text)
+IS 'args:edge_table , s_in_rules , s_out_rules, t_in_rules , t_out_rules, two_way_if_null:= true, oneway:=''oneway'',source:= ''source'',target:=''target'' - Analizes the directionality of the edges based on the rules';
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_createverticestable(
+   edge_table text,
+   the_geom text DEFAULT 'the_geom'::text,
+   source text DEFAULT 'source'::text,
+   target text DEFAULT 'target'::text,
+    rows_where text DEFAULT 'true'::text
+)
+  RETURNS text AS
+$BODY$
+DECLARE
+    naming record;
+    sridinfo record;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    sourcename text;
+    targetname text;
+    query text;
+    ecnt bigint;
+    srid integer;
+    sourcetype text;
+    targettype text;
+    sql text;
+    totcount integer;
+    i integer;
+    notincluded integer;
+    included integer;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+
+
+BEGIN
+  fnName = 'pgr_createVerticesTable';
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_createVerticesTable(''%'',''%'',''%'',''%'',''%'')',edge_table,the_geom,source,target,rows_where;
+  execute 'show client_min_messages' into debuglevel;
+
+  raise notice 'Performing checks, please wait .....';
+
+  RAISE DEBUG 'Checking % exists',edge_table;
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    rows_where = ' AND ('||rows_where||')';
+  raise debug '--> Edge table exists: OK';
+
+  raise debug 'Checking column names';
+    select * into sourcename from _pgr_getColumnName(sname, tname,source,2, fnName);
+    select * into targetname from _pgr_getColumnName(sname, tname,target,2, fnName);
+    select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2, fnName);
+
+
+    err = sourcename in (targetname,gname) or  targetname=gname;
+    perform _pgr_onError(err, 2, fnName,
+        'Two columns share the same name', 'Parameter names for the_geom,source and target  must be different');
+  raise debug '--> Column names: OK';
+
+  raise debug 'Checking column types in edge table';
+    select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+    select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+
+
+    err = sourcetype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column source: '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+    err = targettype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column target: '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found');
+
+  raise debug '-->Column types:OK';
+
+  raise debug 'Checking SRID of geometry column';
+     query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+        || ' FROM ' || _pgr_quote_ident(tabname)
+        || ' WHERE ' || quote_ident(gname)
+        || ' IS NOT NULL LIMIT 1';
+     raise debug '%',query;
+     EXECUTE query INTO sridinfo;
+
+     err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+     perform _pgr_onError(err, 2, fnName,
+         'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+     srid := sridinfo.srid;
+  raise DEBUG '     --> OK';
+
+  raise debug 'Checking and creating Indices';
+     perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+  raise DEBUG '-->Check and create indices: OK';
+
+     gname=quote_ident(gname);
+     sourcename=quote_ident(sourcename);
+     targetname=quote_ident(targetname);
+
+
+  BEGIN
+  raise debug 'Checking Condition';
+    -- issue #193 & issue #210 & #213
+    -- this sql is for trying out the where clause
+    -- the select * is to avoid any column name conflicts
+    -- limit 1, just try on first record
+    -- if the where clasuse is ill formed it will be caught in the exception
+    sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+    EXECUTE sql into dummyRec;
+    -- end
+
+    -- if above where clasue works this one should work
+    -- any error will be caught by the exception also
+    sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NULL or '||
+		sourcename||' is null or '||targetname||' is null)=true '||rows_where;
+    raise debug '%',sql;
+    EXECUTE SQL  into notincluded;
+    EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+
+
+
+  BEGIN
+     raise DEBUG 'initializing %',vertname;
+       execute 'select * from _pgr_getTableName('||quote_literal(vertname)||',0)' into naming;
+       IF sname=naming.sname  AND vname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+       ELSE
+           set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+       END IF;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+                quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+       execute 'CREATE INDEX '||quote_ident(vname||'_the_geom_idx')||' ON '||_pgr_quote_ident(vertname)||'  USING GIST (the_geom)';
+       execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+       EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Initializing vertex table';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise notice 'Populating %, please wait...',vertname;
+       sql= 'with
+		lines as ((select distinct '||sourcename||' as id, _pgr_startpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+		                  ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||')
+			union (select distinct '||targetname||' as id,_pgr_endpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+			          ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||'))
+		,numberedLines as (select row_number() OVER (ORDER BY id) AS i,* from lines )
+		,maxid as (select id,max(i) as maxi from numberedLines group by id)
+		insert into '||_pgr_quote_ident(vertname)||'(id,the_geom)  (select id,the_geom  from numberedLines join maxid using(id) where i=maxi order by id)';
+       RAISE debug '%',sql;
+       execute sql;
+       GET DIAGNOSTICS totcount = ROW_COUNT;
+
+       sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' a, '||_pgr_quote_ident(vertname)||' b
+            where '||sourcename||'=b.id and '|| targetname||' in (select id from '||_pgr_quote_ident(vertname)||')';
+       RAISE debug '%',sql;
+       execute sql into included;
+
+
+
+       execute 'select max(id) from '||_pgr_quote_ident(vertname) into ecnt;
+       execute 'SELECT setval('||quote_literal(vertname||'_id_seq')||','||coalesce(ecnt,1)||' , false)';
+       raise notice '  ----->   VERTICES TABLE CREATED WITH  % VERTICES', totcount;
+       raise notice '                                       FOR   %  EDGES', included+notincluded;
+       RAISE NOTICE '  Edges with NULL geometry,source or target: %',notincluded;
+       RAISE NOTICE '                            Edges processed: %',included;
+       Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname),_pgr_quote_ident(vertname);
+       raise notice '----------------------------------------------';
+    END;
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+COMMENT ON FUNCTION pgr_createVerticesTable(text,text,text,text,text)
+IS 'args: edge_table, the_geom:=''the_geom'',source:=''source'', target:=''target'' rows_where:=''true'' - creates a vertices table based on the source and target identifiers for selected rows';
+
+
+CREATE OR REPLACE FUNCTION pgr_nodeNetwork(edge_table text, tolerance double precision,
+			id text default 'id', the_geom text default 'the_geom', table_ending text default 'noded',
+            rows_where text DEFAULT ''::text, outall boolean DEFAULT false) RETURNS text AS
+$BODY$
+DECLARE
+	
+	p_num int := 0;
+	p_ret text := '';
+    pgis_ver_old boolean := _pgr_versionless(postgis_lib_version(), '2.1.0.0');
+    vst_line_substring text;
+    vst_line_locate_point text;
+    intab text;
+    outtab text;
+    n_pkey text;
+    n_geom text;
+    naming record;
+    sname text;
+    tname text;
+    outname text;
+    srid integer;
+    sridinfo record;
+    splits bigint;
+    touched bigint;
+    untouched bigint;
+    geomtype text;
+    debuglevel text;
+    rows_where text;
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_nodeNetwork(''%'', %, ''%'', ''%'', ''%'', ''%'',  %)',
+    edge_table, tolerance, id,  the_geom, table_ending, rows_where, outall;
+  raise notice 'Performing checks, please wait .....';
+  execute 'show client_min_messages' into debuglevel;
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',0)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+	RAISE NOTICE '-------> % not found',edge_table;
+        RETURN 'FAIL';
+    ELSE
+	RAISE DEBUG '  -----> OK';
+    END IF;
+
+    intab=sname||'.'||tname;
+    outname=tname||'_'||table_ending;
+    outtab= sname||'.'||outname;
+    rows_where = CASE WHEN length(rows_where) > 2 and not outall THEN ' AND (' || rows_where || ')' ELSE '' END;
+    rows_where = CASE WHEN length(rows_where) > 2 THEN ' WHERE (' || rows_where || ')' ELSE '' END;
+  END;
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',id,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(id)||')' INTO n_pkey;
+       IF n_pkey is NULL then
+          raise notice  'ERROR: id column "%"  not found in %',id,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',the_geom,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(the_geom)||')' INTO n_geom;
+       IF n_geom is NULL then
+          raise notice  'ERROR: the_geom  column "%"  not found in %',the_geom,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+  IF n_pkey=n_geom THEN
+	raise notice  'ERROR: id and the_geom columns have the same name "%" in %',n_pkey,intab;
+        RETURN 'FAIL';
+  END IF;
+
+  BEGIN
+       	raise DEBUG 'Checking the SRID of the geometry "%"', n_geom;
+       	EXECUTE 'SELECT ST_SRID(' || quote_ident(n_geom) || ') as srid '
+          		|| ' FROM ' || _pgr_quote_ident(intab)
+          		|| ' WHERE ' || quote_ident(n_geom)
+          		|| ' IS NOT NULL LIMIT 1' INTO sridinfo;
+       	IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
+        	RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           	RETURN 'FAIL';
+       	END IF;
+       	srid := sridinfo.srid;
+       	raise DEBUG '  -----> SRID found %',srid;
+       	EXCEPTION WHEN OTHERS THEN
+           		RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           		RETURN 'FAIL';
+  END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_pkey,intab;
+      if (_pgr_isColumnIndexed(intab,n_pkey)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding  index "%_%_idx".',n_pkey,intab;
+
+	set client_min_messages  to warning;
+        execute 'create  index '||tname||'_'||n_pkey||'_idx on '||_pgr_quote_ident(intab)||' using btree('||quote_ident(n_pkey)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_geom,intab;
+      if (_pgr_iscolumnindexed(intab,n_geom)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding unique index "%_%_gidx".',intab,n_geom;
+	set client_min_messages  to warning;
+        execute 'CREATE INDEX '
+            || quote_ident(tname || '_' || n_geom || '_gidx' )
+            || ' ON ' || _pgr_quote_ident(intab)
+            || ' USING gist (' || quote_ident(n_geom) || ')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+---------------
+    BEGIN
+       raise DEBUG 'initializing %',outtab;
+       execute 'select * from _pgr_getTableName('||quote_literal(outtab)||',0)' into naming;
+       IF sname=naming.sname  AND outname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(outtab)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(outname)||','||quote_literal(n_geom)||')';
+       ELSE
+	   set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(outtab)||' (id bigserial PRIMARY KEY,old_id integer,sub_id integer,
+								source bigint,target bigint)';
+       END IF;
+       execute 'select geometrytype('||quote_ident(n_geom)||') from  '||_pgr_quote_ident(intab)||' limit 1' into geomtype;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(outname)||','||
+                quote_literal(n_geom)||','|| srid||', '||quote_literal(geomtype)||', 2)';
+       execute 'CREATE INDEX '||quote_ident(outname||'_'||n_geom||'_idx')||' ON '||_pgr_quote_ident(outtab)||'  USING GIST ('||quote_ident(n_geom)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+    END;
+----------------
+
+
+  raise notice 'Processing, please wait .....';
+
+
+    if pgis_ver_old then
+        vst_line_substring    := 'st_line_substring';
+        vst_line_locate_point := 'st_line_locate_point';
+    else
+        vst_line_substring    := 'st_linesubstring';
+        vst_line_locate_point := 'st_linelocatepoint';
+    end if;
+
+--    -- First creates temp table with intersection points
+    p_ret = 'create temp table intergeom on commit drop as (
+        select l1.' || quote_ident(n_pkey) || ' as l1id,
+               l2.' || quote_ident(n_pkey) || ' as l2id,
+	       l1.' || quote_ident(n_geom) || ' as line,
+	       _pgr_startpoint(l2.' || quote_ident(n_geom) || ') as source,
+	       _pgr_endpoint(l2.' || quote_ident(n_geom) || ') as target,
+               st_intersection(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ') as geom
+        from (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l1
+             join (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l2
+             on (st_dwithin(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ', ' || tolerance || '))'||
+        'where l1.' || quote_ident(n_pkey) || ' <> l2.' || quote_ident(n_pkey)||' and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false  )';
+    raise debug '%',p_ret;
+    EXECUTE p_ret;
+
+    -- second temp table with locus (index of intersection point on the line)
+    -- to avoid updating the previous table
+    -- we keep only intersection points occurring onto the line, not at one of its ends
+--    drop table if exists inter_loc;
+
+--HAD TO CHANGE THIS QUERY
+-- p_ret= 'create temp table inter_loc on commit drop as (
+--        select l1id, l2id, ' || vst_line_locate_point || '(line,point) as locus from (
+--        select DISTINCT l1id, l2id, line, (ST_DumpPoints(geom)).geom as point from intergeom) as foo
+--        where ' || vst_line_locate_point || '(line,point)<>0 and ' || vst_line_locate_point || '(line,point)<>1)';
+    p_ret= 'create temp table inter_loc on commit drop as ( select * from (
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,source) as locus from intergeom)
+         union
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,target) as locus from intergeom)) as foo
+        where locus<>0 and locus<>1)';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+
+    -- index on l1id
+    create index inter_loc_id_idx on inter_loc(l1id);
+
+    -- Then computes the intersection on the lines subset, which is much smaller than full set
+    -- as there are very few intersection points
+
+--- outab needs to be formally created with id, old_id, subid,the_geom, source,target
+---  so it can be inmediatly be used with createTopology
+
+--   EXECUTE 'drop table if exists ' || _pgr_quote_ident(outtab);
+--   EXECUTE 'create table ' || _pgr_quote_ident(outtab) || ' as
+     P_RET = 'insert into '||_pgr_quote_ident(outtab)||' (old_id,sub_id,'||quote_ident(n_geom)||') (  with cut_locations as (
+           select l1id as lid, locus
+           from inter_loc
+           -- then generates start and end locus for each line that have to be cut buy a location point
+           UNION ALL
+           select i.l1id  as lid, 0 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           UNION ALL
+           select i.l1id  as lid, 1 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           order by lid, locus
+       ),
+       -- we generate a row_number index column for each input line
+       -- to be able to self-join the table to cut a line between two consecutive locations
+       loc_with_idx as (
+           select lid, locus, row_number() over (partition by lid order by locus) as idx
+           from cut_locations
+       )
+       -- finally, each original line is cut with consecutive locations using linear referencing functions
+       select l.' || quote_ident(n_pkey) || ', loc1.idx as sub_id, ' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus) as ' || quote_ident(n_geom) || '
+       from loc_with_idx loc1 join loc_with_idx loc2 using (lid) join ' || _pgr_quote_ident(intab) || ' l on (l.' || quote_ident(n_pkey) || ' = loc1.lid)
+       where loc2.idx = loc1.idx+1
+           -- keeps only linestring geometries
+           and geometryType(' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus)) = ''LINESTRING'') ';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+	GET DIAGNOSTICS splits = ROW_COUNT;
+        execute 'with diff as (select distinct old_id from '||_pgr_quote_ident(outtab)||' )
+                 select count(*) from diff' into touched;
+	-- here, it misses all original line that did not need to be cut by intersection points: these lines
+	-- are already clean
+	-- inserts them in the final result: all lines which gid is not in the res table.
+	EXECUTE 'insert into ' || _pgr_quote_ident(outtab) || ' (old_id , sub_id, ' || quote_ident(n_geom) || ')
+                ( with used as (select distinct old_id from '|| _pgr_quote_ident(outtab)||')
+		select ' ||  quote_ident(n_pkey) || ', 1 as sub_id, ' ||  quote_ident(n_geom) ||
+		' from '|| _pgr_quote_ident(intab) ||' where  '||quote_ident(n_pkey)||' not in (select * from used)' || rows_where || ')';
+	GET DIAGNOSTICS untouched = ROW_COUNT;
+
+	raise NOTICE '  Split Edges: %', touched;
+	raise NOTICE ' Untouched Edges: %', untouched;
+	raise NOTICE '     Total original Edges: %', touched+untouched;
+        RAISE NOTICE ' Edges generated: %', splits;
+	raise NOTICE ' Untouched Edges: %',untouched;
+	raise NOTICE '       Total New segments: %', splits+untouched;
+        RAISE NOTICE ' New Table: %', outtab;
+        RAISE NOTICE '----------------------------------';
+
+    drop table  if exists intergeom;
+    drop table if exists inter_loc;
+    RETURN 'OK';
+END;
+$BODY$
+    LANGUAGE 'plpgsql' VOLATILE STRICT COST 100;
+
+
+COMMENT ON FUNCTION pgr_nodeNetwork(text, double precision, text, text, text, text, boolean )
+ IS  'edge_table, tolerance, id:=''id'', the_geom:=''the_geom'', table_ending:=''noded'' ';
+
+
+CREATE OR REPLACE FUNCTION pgr_labelGraph(
+                edge_table text,
+                id text default 'id',
+                source text default 'source',
+                target text default 'target',
+                subgraph text default 'subgraph',
+                rows_where text default 'true'
+        )
+        RETURNS character varying AS
+$BODY$
+
+DECLARE
+        naming record;
+        schema_name text;
+        table_name text;
+        garbage text;
+        incre integer;
+        table_schema_name text;
+        query text;
+        ecnt integer;
+        sql1 text;
+        rec1 record;
+        sql2 text;
+        rec2 record;
+        rec_count record;
+        rec_single record;
+        graph_id integer;
+        gids int [];
+
+BEGIN
+        raise notice 'Processing:';
+        raise notice 'pgr_brokenGraph(''%'',''%'',''%'',''%'',''%'',''%'')', edge_table,id,source,target,subgraph,rows_where;
+        raise notice 'Performing initial checks, please hold on ...';
+
+        Raise Notice 'Starting - Checking table ...';
+        BEGIN
+                raise debug 'Checking % table existance', edge_table;
+                execute 'select * from pgr_getTableName('|| quote_literal(edge_table) ||')' into naming;
+                schema_name = naming.sname;
+                table_name = naming.tname;
+                table_schema_name = schema_name||'.'||table_name;
+                IF schema_name is null then
+                        raise notice 'no schema';
+                        return 'FAIL';
+                else
+                        if table_name is null then
+                                raise notice 'no table';
+                                return 'FAIL';
+                        end if;
+                end if;
+        END;
+        Raise Notice 'Ending - Checking table';
+
+        Raise Notice 'Starting - Checking columns';
+        BEGIN
+                raise debug 'Checking exitance of necessary columns inside % table', edge_table;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(id) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no id column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(source) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no source column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(target) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no target column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(subgraph) ||')' into naming;
+                if naming.pgr_iscolumnintable = 't' then
+                        raise notice 'subgraph column already in the table';
+                        return 'FAIL';
+                end if;
+        END;
+        Raise Notice 'Ending - Checking columns';
+
+        Raise Notice 'Starting - Checking rows_where condition';
+        BEGIN
+                raise debug 'Checking rows_where condition';
+                query='select count(*) from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where;
+                execute query into ecnt;
+                raise debug '-->Rows where condition: OK';
+                raise debug '    --> OK';
+                EXCEPTION WHEN OTHERS THEN
+                        raise notice 'Got %', SQLERRM;
+                        Raise notice 'ERROR: Condition is not correct. Please execute the following query to test your condition';
+                        Raise notice '%', query;
+                        return 'FAIL';
+        END;
+        Raise Notice 'Ending - Checking rows_where condition';
+
+        garbage := 'garbage001';
+        incre := 1;
+        Raise Notice 'Starting - Checking temporary column';
+        Begin
+                raise debug 'Checking Checking temporary columns existance';
+
+                While True
+                        Loop
+                                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(garbage) ||')' into naming;
+                                If naming.pgr_iscolumnintable = 't' THEN
+                                        incre := incre + 1;
+                                        garbage := 'garbage00'||incre||'';
+                                ELSE
+                                        EXIT;
+                                END IF;
+                        End Loop;
+        End;
+        Raise Notice 'Ending - Checking temporary column';
+
+        Raise Notice 'Starting - Calculating subgraphs';
+        BEGIN
+                --------- Add necessary columns ----------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(subgraph) || ' INTEGER DEFAULT -1';
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(garbage) || ' INTEGER DEFAULT 0';
+                graph_id := 1;
+
+                EXECUTE 'select count(*) as count from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where ||'' into rec_count;
+                if rec_count.count = 0 then
+                        RETURN 'rows_where condition generated 0 rows';
+                end if;
+
+                WHILE TRUE
+                        LOOP
+                                ---------- Assign the very first -1 row graph_id ----------
+                                EXECUTE 'SELECT ' || pgr_quote_ident(id) || ' AS gid FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1 LIMIT 1' INTO rec_single;
+                                EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec_single.gid || '';
+
+                                --------- Search other rows with that particular graph_id -----------
+                                WHILE TRUE
+                                        LOOP
+                                                EXECUTE 'SELECT COUNT(*) FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0' into rec_count;
+                                                ----------- The following if else will check those rows which already have entertained ------------
+                                                IF (rec_count.count > 0) THEN
+                                                        sql1 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0';
+                                                        FOR rec1 IN EXECUTE sql1
+                                                                LOOP
+                                                                        sql2 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| pgr_quote_ident(source) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(source) ||' = '|| rec1.target ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.target ||'';
+                                                                        FOR rec2 IN EXECUTE sql2
+                                                                                LOOP
+                                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec2.gid || '';
+                                                                                END LOOP;
+                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(garbage) || ' = 1 WHERE ' || pgr_quote_ident(id) || ' = ' || rec1.gid || '';
+                                                                END LOOP;
+                                                ELSE
+                                                        EXIT;
+                                                END IF;
+                                        END LOOP;
+
+                                ------ Following is to exit the while loop. 0 means no more -1 id.
+                                EXECUTE 'SELECT COUNT(*) AS count FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1' INTO rec_count;
+                                If (rec_count.count = 0) THEN
+                                        EXIT;
+                                ELSE
+                                        graph_id := graph_id + 1;
+                                END IF;
+                        END LOOP;
+
+                ----------- Drop garbage column ------------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' DROP COLUMN ' || pgr_quote_ident(garbage) ||'';
+                Raise Notice 'Successfully complicated calculating subgraphs';
+        END;
+        Raise Notice 'Ending - Calculating subgraphs';
+
+        RETURN 'OK';
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCostMatrix(
+    edges_sql TEXT,
+    points_sql TEXT,
+    pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_pid, a.end_pid, a.agg_cost
+        FROM _pgr_withPoints($1, $2, $3, $3, $4,  $5, TRUE, TRUE) AS a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+--  DIJKSTRA DMatrix
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCostMatrix(edges_sql TEXT, vids ANYARRAY, directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2, $2, $3, true) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+
+--  BIDIRECTIONAL DIJKSTRA Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCostMatrix(edges_sql TEXT, vids ANYARRAY, directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_astarCostMatrix(
+    edges_sql TEXT, -- XY edges sql
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2, $2, $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+--  BIDIRECTIONAL ASTAR Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdAstarCostMatrix(
+    edges_sql TEXT,
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_bdAstarCostMatrix(TEXT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCostMatrix';
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_getTableName(IN tab text,OUT sname text,OUT tname text)
+RETURNS RECORD AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getTableName: This function will no longer be soported';
+    select * from _pgr_getTableName(tab, 0, 'pgr_getTableName') into sname,tname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_getColumnName(tab text, col text)
+RETURNS text AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getColumnName: This function will no longer be soported';
+    return _pgr_getColumnName(tab,col, 0, 'pgr_getColumnName');
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    select * from _pgr_getColumnName(tab,col,0, 'pgr_isColumnInTable') into cname;
+    return  cname IS not NULL;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnIndexed(tab text, col text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnIndexed: This function will no longer be soported';
+    return  _pgr_isColumnIndexed(tab,col);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+create or replace function pgr_quote_ident(idname text)
+returns text as
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    return  _pgr_quote_ident(idname);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_versionless(v1 text, v2 text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_versionless: This function will no longer be soported';
+    return  _pgr_versionless(v1,v2);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+create or replace function pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_startPoint: This function will no longer be soported';
+    return  _pgr_startPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_endPoint: This function will no longer be soported';
+    return  _pgr_endPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_apspJohnson(edges_sql text)
+    RETURNS SETOF pgr_costResult AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function: Use pgr_johnson instead';
+      has_reverse =_pgr_parameter_check('johnson', edges_sql, false);
+      sql = edges_sql;
+      IF (has_reverse) THEN
+           RAISE NOTICE 'reverse_cost column found, removing.';
+           sql = 'SELECT source, target, cost FROM (' || edges_sql || ') a';
+      END IF;
+
+      RETURN query
+         SELECT (row_number() over () - 1)::integer as seq, start_vid::integer AS id1, end_vid::integer AS id2, agg_cost AS cost
+         FROM  pgr_johnson(sql, TRUE);
+  END
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_apspWarshall(edges_sql text, directed boolean, has_rcost boolean)
+    RETURNS SETOF pgr_costResult AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function: Use pgr_floydWarshall instead';
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+      sql := edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_reverse) THEN
+           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+         ELSE raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+         END IF;
+      END IF;
+
+      RETURN query
+         SELECT (row_number() over () -1)::integer as seq, start_vid::integer AS id1, end_vid::integer AS id2, agg_cost AS cost
+         FROM  pgr_floydWarshall(sql, directed);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_astar(edges_sql TEXT, source_id INTEGER, target_id INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated signature pgr_astar(text, integer, integer, boolean, boolean)';
+    has_reverse =_pgr_parameter_check('astar', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost, x1,y1, x2, y2 FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+    FROM pgr_astar(sql, ARRAY[$2], ARRAY[$3], directed);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    sql TEXT,
+    source_vid INTEGER,
+    target_vid INTEGER,
+    directed BOOLEAN,
+    has_reverse_cost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdAstar';
+    has_reverse =_pgr_parameter_check('astar', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdAstar(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(edges_sql TEXT, start_vid INTEGER, end_vid INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdDijkstra';
+    has_reverse =_pgr_parameter_check('dijkstra', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdDijkstra(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstraPath(
+    sql text,
+    source INTEGER,
+    targets INTEGER ARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+    RETURNS SETOF pgr_costResult3 AS
+    $BODY$
+    DECLARE
+    has_reverse BOOLEAN;
+    new_sql TEXT;
+    result pgr_costResult3;
+    tmp pgr_costResult3;
+    sseq INTEGER;
+    i INTEGER;
+    BEGIN
+        RAISE NOTICE 'Deprecated function: Use pgr_dijkstra instead.';
+        has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+        new_sql = sql;
+        IF (array_ndims(targets) != 1) THEN
+            raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+
+        IF (has_reverse != has_rcost) THEN
+            IF (has_reverse) THEN
+                new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+            ELSE
+                raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+                USING ERRCODE = 'XX000';
+            END IF;
+        END IF;
+        SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+        sseq = 0; i = 1;
+        FOR result IN
+            SELECT seq, a.end_vid::INTEGER AS id1, a.node::INTEGER AS i2, a.edge::INTEGER AS id3, cost
+            FROM pgr_dijkstra(new_sql, source, targets, directed) a ORDER BY a.end_vid, seq LOOP
+            WHILE (result.id1 != targets[i]) LOOP
+                tmp.seq = sseq;
+                tmp.id1 = targets[i];
+                IF (targets[i] = source) THEN
+                    tmp.id2 = source;
+                    tmp.cost =0;
+                ELSE
+                    tmp.id2 = 0;
+                    tmp.cost = -1;
+                END IF;
+                tmp.id3 = -1;
+                RETURN next tmp;
+                i = i + 1;
+                sseq = sseq + 1;
+            END LOOP;
+        IF (result.id1 = targets[i] AND result.id3 != -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+        IF (result.id1 = targets[i] AND result.id3 = -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.id2 = source;
+            tmp.cost = 0;
+        ELSE
+            tmp.id2 = 0;
+            tmp.cost = -1;
+        END IF;
+        tmp.id3 = -1;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstracost(
+    sql text,
+    source INTEGER,
+    targets INTEGER array,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+result pgr_costResult;
+tmp pgr_costResult;
+sseq INTEGER;
+i INTEGER;
+BEGIN
+    RAISE NOTICE 'Deprecated function. Use pgr_dijkstraCost instead.';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    new_sql = sql;
+    IF (array_ndims(targets) != 1) THEN
+        raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+        USING ERRCODE = 'XX000';
+    END IF;
+
+
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+    sseq = 0; i = 1;
+    FOR result IN
+        SELECT ((row_number() over()) -1)::INTEGER, a.start_vid::INTEGER, a.end_vid::INTEGER, agg_cost
+        FROM pgr_dijkstraCost(new_sql, source, targets, directed) a ORDER BY end_vid LOOP
+        WHILE (result.id2 != targets[i]) LOOP
+            tmp.seq = sseq;
+            tmp.id1 = source;
+            tmp.id2 = targets[i];
+            IF (targets[i] = source) THEN
+                tmp.cost = 0;
+            ELSE
+                tmp.cost = -1;
+            END IF;
+            RETURN next tmp;
+            i = i + 1;
+            sseq = sseq + 1;
+        END LOOP;
+        IF (result.id2 = targets[i]) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = source;
+        tmp.id2 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.cost = 0;
+        ELSE
+            tmp.cost = -1;
+        END IF;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+create or replace function pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    returns integer as
+$body$
+
+declare
+    rr record;
+    pct float;
+    debuglevel text;
+
+begin
+    -- find the closest edge within tol distance
+    execute 'select * from ' || _pgr_quote_ident(edges) ||
+            ' where st_dwithin(''' || pnt::text ||
+            '''::geometry, the_geom, ' || tol || ') order by st_distance(''' || pnt::text ||
+            '''::geometry, the_geom) asc limit 1' into rr;
+
+    if rr.the_geom is not null then
+        -- deal with MULTILINESTRINGS
+        if geometrytype(rr.the_geom)='MULTILINESTRING' THEN
+            rr.the_geom := ST_GeometryN(rr.the_geom, 1);
+        end if;
+
+        -- project the point onto the linestring
+        execute 'show client_min_messages' into debuglevel;
+        SET client_min_messages='ERROR';
+        pct := st_line_locate_point(rr.the_geom, pnt);
+        execute 'set client_min_messages  to '|| debuglevel;
+
+        -- return the node we are closer to
+        if pct < 0.5 then
+            return rr.source;
+        else
+            return rr.target;
+        end if;
+    else
+        -- return a failure to find an edge within tol distance
+        return -1;
+    end if;
+end;
+$body$
+  language plpgsql volatile
+  cost 5;
+
+
+----------------------------------------------------------------------------
+
+create or replace function pgr_flipedges(ga geometry[])
+    returns geometry[] as
+$body$
+
+declare
+    nn integer;
+    i integer;
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_flipEdges';
+    -- get the count of edges, and return if only one edge
+    nn := array_length(ga, 1);
+    if nn=1 then
+        return ga;
+    end if;
+
+    -- determine if first needs to be flipped
+    g := _pgr_startpoint(ga[1]);
+
+    -- if the start of the first is connected to the second then it needs to be flipped
+    if _pgr_startpoint(ga[2])=g or _pgr_endpoint(ga[2])=g then
+        ga[1] := st_reverse(ga[1]);
+    end if;
+    g := _pgr_endpoint(ga[1]);
+
+    -- now if  the end of the last edge matchs the end of the current edge we need to flip it
+    for i in 2 .. nn loop
+        if _pgr_endpoint(ga[i])=g then
+            ga[i] := st_reverse(ga[i]);
+        end if;
+        -- save the end of this edge into the last end for the next cycle
+        g := _pgr_endpoint(ga[i]);
+    end loop;
+
+    return ga;
+end;
+$body$
+    language plpgsql immutable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_texttopoints(pnts text, srid integer DEFAULT(4326))
+    returns geometry[] as
+$body$
+
+declare
+    a text[];
+    t text;
+    p geometry;
+    g geometry[];
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_textToPoints';
+    -- convert commas to space and split on ';'
+    a := string_to_array(replace(pnts, ',', ' '), ';');
+    -- convert each 'x y' into a point geometry and concattenate into a new array
+    for t in select unnest(a) loop
+        p := st_pointfromtext('POINT(' || t || ')', srid);
+        g := g || p;
+    end loop;
+
+    return g;
+end;
+$body$
+    language plpgsql immutable;
+
+-----------------------------------------------------------------------
+
+create or replace function pgr_pointstovids(pnts geometry[], edges text, tol float8 DEFAULT(0.01))
+    returns integer[] as
+$body$
+
+declare
+    v integer[];
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_pointsToVids';
+    -- cycle through each point and locate the nearest edge and vertex on that edge
+    for g in select unnest(pnts) loop
+        v := v || pgr_pointtoedgenode(edges, g, tol);
+    end loop;
+
+    return v;
+end;
+$body$
+    language plpgsql stable;
+
+
+create or replace function pgr_pointstodmatrix(pnts geometry[], mode integer default (0), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+
+declare
+    r record;
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_pointsToDMatrix';
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    -- create an id for each point in the array and unnest it into a table nodes in the with clause
+    for r in with nodes as (select row_number() over()::integer as id, p from (select unnest(pnts) as p) as foo)
+        -- compute a row of distances
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j,
+                case when mode=0
+                    then st_distance(a.p, b.p)
+                    else st_distance_sphere(a.p, b.p)
+                end as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i loop
+
+        -- you must concat an array[array[]] to make dmatrix[][]
+        -- concat the row of distances to the dmatrix
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+end;
+$body$
+    language plpgsql stable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_vidstodmatrix(IN vids integer[], IN pnts geometry[], IN edges text, tol float8 DEFAULT(0.1), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+
+declare
+    i integer;
+    j integer;
+    nn integer;
+    rr record;
+    bbox geometry;
+    t float8[];
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    -- check if the input arrays has any -1 values, maybe this whould be a raise exception
+    if vids @> ARRAY[-1] then
+    raise notice 'Some vids are undefined (-1)!';
+    dmatrix := null;
+    ids := null;
+    return;
+    end if;
+
+    ids := vids;
+
+    -- get the count of nodes
+    nn := array_length(vids,1);
+
+    -- zero out a dummy row
+    for i in 1 .. nn loop
+        t := t || 0.0::float8;
+    end loop;
+
+    -- using the dummy row, zero out the whole matrix
+    for i in 1 .. nn loop
+    dmatrix := dmatrix || ARRAY[t];
+    end loop;
+
+    for i in 1 .. nn-1 loop
+        j := i;
+        -- compute the bbox for the point needed for this row
+        select st_expand(st_collect(pnts[id]), tol) into bbox
+          from (select generate_series as id from generate_series(i, nn)) as foo;
+
+        -- compute kdijkstra() for this row
+        for rr in execute 'select * from pgr_dijkstracost($1, $2, $3, false)'
+                  using 'select id, source, target, cost from ' || edges ||
+                        ' where the_geom && ''' || bbox::text || '''::geometry'::text, vids[i], vids[i+1:nn] loop
+
+            -- TODO need to check that all node were reachable from source
+            -- I think unreachable paths between nodes returns cost=-1.0
+
+            -- populate the matrix with the cost values, remember this is symmetric
+            j := j + 1;
+            -- raise notice 'cost(%,%)=%', i, j, rr.agg_cost;
+            dmatrix[i][j] := rr.agg_cost;
+            dmatrix[j][i] := rr.agg_cost;
+        end loop;
+    end loop;
+
+end;
+$body$
+    language plpgsql stable cost 200;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_vidsToDMatrix(sql TEXT, vids  INTEGER[], dir BOOLEAN, has_rcost BOOLEAN, want_symmetric BOOLEAN)
+RETURNS float8[] AS
+$BODY$
+DECLARE
+directed BOOLEAN;
+has_reverse BOOLEAN;
+edges_sql TEXT;
+dmatrix_row float8[];
+dmatrix float8[];
+cell RECORD;
+unique_vids INTEGER[];
+total BIGINT;
+from_v BIGINT;
+to_v BIGINT;
+BEGIN
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql = sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    unique_vids :=  ARRAY(SELECT DISTINCT UNNEST(vids) ORDER BY 1);
+
+    IF want_symmetric THEN
+        directed = false;
+    ELSE
+        directed = dir;
+    END IF;
+
+    total := array_length(unique_vids, 1);
+
+    -- initializing dmatrix
+    FOR i in 1 .. total LOOP
+        dmatrix_row := dmatrix_row || '+Infinity'::float8;
+    END LOOP;
+    FOR i in 1 .. total LOOP
+    dmatrix := dmatrix || ARRAY[dmatrix_row];
+    dmatrix[i][i] = 0;
+    END LOOP;
+
+    CREATE TEMP TABLE __x___y____temp AS
+        WITH result AS
+            (SELECT unnest(unique_vids) AS vid)
+        SELECT row_number() OVER() AS idx, vid FROM result;
+
+    FOR cell IN SELECT * FROM pgr_dijkstraCostMatrix(sql, unique_vids, directed) LOOP
+        SELECT idx INTO from_v FROM __x___y____temp WHERE vid =  cell.start_vid;
+        SELECT idx INTO to_v FROM __x___y____temp WHERE vid =  cell.end_vid;
+
+        dmatrix[from_v][to_v] = cell.agg_cost;
+        dmatrix[to_v][from_v] = cell.agg_cost;
+    END LOOP;
+
+    DROP TABLE IF EXISTS __x___y____temp;
+    RETURN dmatrix;
+
+    EXCEPTION WHEN others THEN
+       DROP TABLE IF EXISTS __x___y____temp;
+       raise exception '% %', SQLERRM, SQLSTATE;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100;
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated function';
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_dijkstra(sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_dijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN) IS 'pgr_dijkstra(Deprecated signature)';
+
+
+
+
+
+-- OLD SIGNATURE
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(edges_sql text, source BIGINT, distance FLOAT, directed BOOLEAN, has_rcost BOOLEAN)
+  RETURNS SETOF pgr_costresult AS
+  $BODY$
+  DECLARE
+  has_reverse BOOLEAN;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function';
+
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, FALSE);
+
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_reverse) THEN
+             -- the user says it doesn't have reverse cost but its false
+             -- removing from query
+             RAISE NOTICE 'Contradiction found: has_rcost set to false but reverse_cost column found';
+             sql = 'SELECT id, source, target, cost, -1 as reverse_cost FROM (' || edges_sql || ') __q ';
+         ELSE
+             -- the user says it has reverse cost but its false
+             -- can't do anything
+             RAISE EXCEPTION 'has_rcost set to true but reverse_cost not found';
+         END IF;
+      END IF;
+
+      RETURN query SELECT seq - 1 AS seq, node::integer AS id1, edge::integer AS id2, agg_cost AS cost
+                FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maximumcardinalitymatching(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
+
+
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+--INTERNAL FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+
+------------------------
+-- deprecated signatures
+-----------------------
+
+COMMENT ON FUNCTION pgr_astar(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_astar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdAstar( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdAstar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdDijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdDijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_dijkstra(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_dijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_drivingDistance(text,  BIGINT,  FLOAT8,  BOOLEAN,  BOOLEAN)
+    IS 'pgr_drivingDistance(Deprecated signature)';
+
+------------------------
+-- Renamed /deprecated
+-----------------------
+COMMENT ON FUNCTION pgr_apspJohnson(TEXT)
+    IS 'pgr_apspJohnson(Renamed function) use pgr_Johnson instead';
+
+COMMENT ON FUNCTION pgr_apspWarshall(text, boolean, boolean)
+    IS 'pgr_apspWarshall(Renamed function) use pgr_floydWarshall instead';
+
+COMMENT ON FUNCTION pgr_kdijkstraPath( text, INTEGER, INTEGER ARRAY, BOOLEAN, BOOLEAN)
+    IS 'pgr_kdijkstraPath(Renamed function) use pgr_dijkstra instead';
+
+COMMENT ON FUNCTION pgr_kdijkstracost( text, INTEGER, INTEGER array, BOOLEAN, BOOLEAN)
+    IS 'pgr_kDijkstraCost(Renamed function) use pgr_dijkstraCost instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+
+
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+
+
+COMMENT ON FUNCTION pgr_gsoc_vrppdtw( text, INTEGER, INTEGER)
+    IS 'pgr_gsoc_vrppdtw(Renamed function) use pgr_pickDeliverEuclidean instead';
+
+------------------------
+-- Deprecated functions
+-----------------------
+
+COMMENT ON FUNCTION pgr_flipedges(geometry[])
+    IS 'pgr_flipedges(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_texttopoints(text,  integer)
+    IS 'pgr_texttopoints(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstovids(pnts geometry[], edges text, tol float8)
+    IS 'pgr_pointstovids(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    IS 'pgr_pointtoedgenode(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstodmatrix(geometry[], integer)
+    IS 'pgr_pointstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidstodmatrix( integer[],  geometry[],  text, float8)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidsToDMatrix(TEXT,  INTEGER[], BOOLEAN, BOOLEAN, BOOLEAN)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+
+
+
+COMMENT ON FUNCTION pgr_getTableName(IN tab text)
+    IS 'pgr_getTableName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_getColumnName(tab text, col text)
+    IS 'pgr_getColumnName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnInTable(tab text, col text)
+    IS 'pgr_isColumnInTable(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnIndexed(tab text, col text)
+    IS 'pgr_isColumnIndexed(Deprecated function)';
+
+
+COMMENT ON FUNCTION pgr_quote_ident(idname text)
+    IS 'pgr_quote_ident(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_versionless(v1 text, v2 text)
+    IS 'pgr_versionless(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_startPoint(g geometry)
+    IS 'pgr_startPoint(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_endPoint(g geometry)
+    IS 'pgr_endPoint(Deprecated function)';
+
+
diff --git a/tools/sql-update-scripts/pgrouting--2.0.1--2.5.0.sql b/tools/sql-update-scripts/pgrouting--2.0.1--2.5.0.sql
new file mode 100644
index 0000000..d8a065b
--- /dev/null
+++ b/tools/sql-update-scripts/pgrouting--2.0.1--2.5.0.sql
@@ -0,0 +1,6575 @@
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-- pgRouting extension upgrade from 2.0.1 to 2.5.0
+-- generated by tools/build-extension-update-files
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+\echo Use "ALTER extension pgrouting update to '2.5.0'" to load this file. \quit
+
+
+-------------------------------------
+-- remove functions no longer in the 2.5.0 extension
+-------------------------------------
+
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_alphashape(text);
+DROP FUNCTION IF EXISTS pgr_alphashape(text);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_createtopology(text,double precision,text,text,text,text,text);
+DROP FUNCTION IF EXISTS pgr_createtopology(text,double precision,text,text,text,text,text);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_drivingdistance(text,integer,double precision,boolean,boolean);
+DROP FUNCTION IF EXISTS pgr_drivingdistance(text,integer,double precision,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_makedistancematrix(text);
+DROP FUNCTION IF EXISTS pgr_makedistancematrix(text);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_nodenetwork(text,double precision,text,text,text);
+DROP FUNCTION IF EXISTS pgr_nodenetwork(text,double precision,text,text,text);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_pointsaspolygon(character varying);
+DROP FUNCTION IF EXISTS pgr_pointsaspolygon(character varying);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_pointtoid(geometry,double precision,text,integer);
+DROP FUNCTION IF EXISTS pgr_pointtoid(geometry,double precision,text,integer);
+
+
+ ------------------------------------------
+--    New functions:  2.0
+-- Signature change:  2.1
+--       Deprecated:  2.1
+------------------------------------------
+-- pgr_dijkstra:
+-- 2.0.1: {      sql, source_id, target_id, directed, has_reverse_cost}
+-- 2.5.0: {edges_sql, start_vid,   end_vid, directed, has_rcost}
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_dijkstra(text,integer,integer,boolean,boolean);
+DROP FUNCTION IF EXISTS pgr_dijkstra(text,integer,integer,boolean,boolean);
+
+
+
+
+------------------------------------------
+--    New functions:  2.0
+--       Deprecated:  2.1
+--       Deprecated:  2.1 & 2.2
+------------------------------------------
+-- pgr_ksp
+-- 2.0.1: {      sql, source_id, target_id, no_paths,has_reverse_cost}
+-- 2.5.0: {edges_sql, start_vid,   end_vid, k,       has_rcost}
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_ksp(text,integer,integer,integer,boolean);
+DROP FUNCTION IF EXISTS pgr_ksp(text,integer,integer,integer,boolean);
+
+
+
+
+------------------------------------------
+--    New functions:  2.0
+-- Signature change:  2.2
+--       Deprecated:  2.2
+------------------------------------------
+-- pgr_apspjohnson
+-- 2.0.1: {      sql}
+-- 2.5.0: {edges_sql}
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_apspjohnson(text);
+DROP FUNCTION IF EXISTS pgr_apspjohnson(text);
+
+
+-- pgr_apspwarshall
+-- 2.0.1: {      sql, directed, has_reverse_cost}
+-- 2.5.0: {edges_sql, directed, has_rcost}
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_apspwarshall(text,boolean,boolean);
+DROP FUNCTION IF EXISTS pgr_apspwarshall(text,boolean,boolean);
+
+
+-- pgr_kdijkstrapath
+-- 2.0.1: {sql,source_vid, target_vid, directed, has_reverse_cost}
+-- 2.5.0: {sql,    source,    targets, directed, has_rcost} 
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_kdijkstrapath(text,integer,integer[],boolean,boolean);
+DROP FUNCTION IF EXISTS pgr_kdijkstrapath(text,integer,integer[],boolean,boolean);
+
+
+-- pgr_kdijkstracost
+-- 2.0.1: {sql,source_vid, target_vid, directed, has_reverse_cost}
+-- 2.5.0: {sql,    source,    targets, directed, has_rcost} 
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_kdijkstracost(text,integer,integer[],boolean,boolean);
+DROP FUNCTION IF EXISTS pgr_kdijkstracost(text,integer,integer[],boolean,boolean);
+
+
+
+
+------------------------------------------
+--    New functions:  2.0
+-- Signature change:  2.2
+------------------------------------------
+-- pgr_version
+-- 2.0.1:  {version,tag,build,hash,branch,boost}
+-- 2.5.0:  {version,tag,hash,branch,boost}
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_version();
+DROP FUNCTION IF EXISTS pgr_version();
+
+
+
+
+------------------------------------------
+--    New functions:  2.0
+-- Signature change:  2.2
+------------------------------------------
+-- pgr_trsp
+-- 2.0.1:  {      sql, source_vid, target_vid, directed, has_reverse_cost, turn_restrict_sql}
+-- 2.5.0:  {edges_sql,  start_vid,    end_vid, directed, has_rcost,        restrictions_sql}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vid","end_vid","directed","has_rcost","restrictions_sql"}'
+WHERE proname = 'pgr_trsp'
+    AND proargnames = '{"sql","source_vid","target_vid","directed","has_reverse_cost","turn_restrict_sql"}';
+
+
+------------------------------------------
+--    New functions:  2.0
+-- Signature change:  2.4
+--       Deprecated:  2.4
+------------------------------------------
+-- pgr_bddijkstra
+-- 2.0.1: {      sql, source_vid, target_vid, directed, has_reverse_cost}   
+-- 2.5.0: {edges_sql,  start_vid,    end_vid, directed, has_rcost}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vid","end_vid","directed","has_rcost"}'
+WHERE proname = 'pgr_bddijkstra'
+    AND proargnames = '{"sql","source_vid","target_vid","directed","has_reverse_cost"}';
+
+
+------------------------------------------
+-- New functions on 2.0
+-- Signature change on 2.3
+-- Deprecated on 2.4
+------------------------------------------
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_astar(text,integer,integer,boolean,boolean);
+DROP FUNCTION IF EXISTS pgr_astar(text,integer,integer,boolean,boolean);
+
+
+
+
+
+
+
+
+
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+--- pgRouting provides geospatial routing functionality.
+--- http://pgrouting.org
+--- copyright
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+---
+--- This is free software; you can redistribute and/or modify it:
+--- the terms of the GNU General Public Licence. See the COPYING file.
+--- the terms of the MIT-X Licence. See the COPYING file.
+---
+--- The following functions have MIT-X licence:
+---     pgr_version()
+---     pgr_tsp(matrix float8[][], startpt integer, endpt integer DEFAULT -1, OUT seq integer, OUT id integer)
+---     _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+---     pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
+---
+---
+--- All other functions are under GNU General Public Licence.
+---
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+--
+-- WARNING: Any change in this file must be evaluated for compatibility.
+--          Changes cleanly handled by postgis_upgrade.sql are fine,
+--          other changes will require a bump in Major version.
+--          Currently only function replaceble by CREATE OR REPLACE
+--          are cleanly handled.
+--
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+
+--  pgRouting 2.0 types
+
+
+
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_version()
+RETURNS TABLE(
+        "version" varchar,
+        tag varchar,
+        hash varchar,
+        branch varchar,
+        boost varchar
+    ) AS
+$BODY$
+    SELECT '2.5.0'::varchar AS version,
+        'v2.5.0'::varchar AS tag,
+        ''::varchar AS hash,
+        ''::varchar AS branch,
+        '1.54.0'::varchar AS boost;
+$BODY$
+LANGUAGE sql IMMUTABLE;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getTableName(IN tab text, IN reportErrs int default 0, IN fnName text default '_pgr_getTableName', OUT sname text,OUT tname text)
+  RETURNS RECORD AS
+$$
+DECLARE
+        naming record;
+        i integer;
+        query text;
+        sn text; -- schema name
+        tn text; -- table name
+        ttype text; --table type for future use
+        err boolean;
+        debuglevel text;
+        var_types text[] = ARRAY['BASE TABLE', 'VIEW'];
+BEGIN
+
+    execute 'show client_min_messages' into debuglevel;
+
+
+    perform _pgr_msg( 0, fnName, 'Checking table ' || tab || ' exists');
+    --RAISE DEBUG 'Checking % exists',tab;
+
+    i := strpos(tab,'.');
+    IF (i <> 0) THEN
+        sn := split_part(tab, '.',1);
+        tn := split_part(tab, '.',2);
+    ELSE
+        sn := current_schema;
+        tn := tab;
+    END IF;
+
+
+   SELECT schema_name INTO sname
+   FROM information_schema.schemata WHERE schema_name = sn;
+
+    IF sname IS NOT NULL THEN -- found schema (as is)
+       SELECT table_name, table_type INTO tname, ttype
+       FROM information_schema.tables
+       WHERE
+                table_type = ANY(var_types) and
+                table_schema = sname and
+                table_name = tn ;
+        IF tname is NULL THEN
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  = ANY(var_types) and
+                table_schema = sname and
+                table_name = lower(tn) ORDER BY table_name;
+        END IF;
+    END IF;
+    IF sname is NULL or tname is NULL THEN --schema not found or table not found
+        SELECT schema_name INTO sname
+        FROM information_schema.schemata
+        WHERE schema_name = lower(sn) ;
+
+        IF sname IS NOT NULL THEN -- found schema (with lower caps)
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  =  ANY(var_types) and
+                table_schema = sname and
+                table_name= tn ;
+
+           IF tname IS NULL THEN
+                SELECT table_name, table_type INTO tname, ttype
+                FROM information_schema.tables
+                WHERE
+                    table_type  =  ANY(var_types) and
+                    table_schema = sname and
+                    table_name= lower(tn) ;
+           END IF;
+        END IF;
+    END IF;
+   err = (sname IS NULL OR tname IS NULL);
+   perform _pgr_onError(err, reportErrs, fnName, 'Table ' || tab ||' not found',' Check your table name', 'Table '|| tab || ' found');
+
+END;
+$$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(sname text, tname text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(col) into cname;
+
+    IF cname is null  THEN
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(lower(col))  into cname;
+    END if;
+
+    err = cname is null;
+
+    perform _pgr_onError(err, reportErrs, fnName,  'Column '|| col ||' not found', ' Check your column name','Column '|| col || ' found');
+    RETURN cname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(tab text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+
+    select * into cname from _pgr_getColumnName(sname,tname,col,reportErrs, fnName);
+    RETURN cname;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    select * from _pgr_getColumnName(tab,col,0, '_pgr_isColumnInTable') into cname;
+    return cname is not null;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(sname text, tname text, cname text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    pkey text;
+BEGIN
+    SELECT
+          pg_attribute.attname into pkey
+         --  format_type(pg_attribute.atttypid, pg_attribute.atttypmod)
+          FROM pg_index, pg_class, pg_attribute
+          WHERE
+                  pg_class.oid = _pgr_quote_ident(sname||'.'||tname)::regclass AND
+                  indrelid = pg_class.oid AND
+                  pg_attribute.attrelid = pg_class.oid AND
+                  pg_attribute.attnum = any(pg_index.indkey)
+                  AND indisprimary;
+
+    IF pkey=cname then
+          RETURN TRUE;
+    END IF;
+
+    SELECT a.index_name,
+           b.attname,
+           b.attnum,
+           a.indisunique,
+           a.indisprimary
+      INTO rec
+      FROM ( SELECT a.indrelid,
+                    a.indisunique,
+                    a.indisprimary,
+                    c.relname index_name,
+                    unnest(a.indkey) index_num
+               FROM pg_index a,
+                    pg_class b,
+                    pg_class c,
+                    pg_namespace d
+              WHERE b.relname=tname
+                AND b.relnamespace=d.oid
+                AND d.nspname=sname
+                AND b.oid=a.indrelid
+                AND a.indexrelid=c.oid
+           ) a,
+           pg_attribute b
+     WHERE a.indrelid = b.attrelid
+       AND a.index_num = b.attnum
+       AND b.attname = cname
+  ORDER BY a.index_name,
+           a.index_num;
+
+  RETURN FOUND;
+  EXCEPTION WHEN OTHERS THEN
+    perform _pgr_onError( true, reportErrs, fnName,
+    'Error when checking for the postgres system attributes', SQLERR);
+    RETURN FALSE;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(tab text, col text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    sname text;
+    tname text;
+    cname text;
+    pkey text;
+    value boolean;
+BEGIN
+    SELECT * into naming FROM _pgr_getTableName(tab, 0, fnName);
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    SELECT * into cname from _pgr_getColumnName(sname, tname, col, 0, fnName) ;
+    IF cname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    select * into value  from _pgr_isColumnIndexed(sname, tname, cname, reportErrs, fnName);
+    return value;
+END
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+create or replace function _pgr_quote_ident(idname text)
+    returns text as
+$body$
+declare
+    t text[];
+    pgver text;
+
+begin
+    pgver := regexp_replace(version(), E'^PostgreSQL ([^ ]+)[ ,].*$', E'\\1');
+
+    if _pgr_versionless(pgver, '9.2') then
+        select into t array_agg(quote_ident(term)) from
+            (select nullif(unnest, '') as term
+               from unnest(string_to_array(idname, '.'))) as foo;
+    else
+        select into t array_agg(quote_ident(term)) from
+            (select unnest(string_to_array(idname, '.', '')) as term) as foo;
+    end if;
+    return array_to_string(t, '.');
+end;
+$body$
+language plpgsql immutable;
+
+
+CREATE OR REPLACE FUNCTION _pgr_versionless(v1 text, v2 text)
+  RETURNS boolean AS
+$BODY$
+
+
+declare
+    v1a text[];
+    v2a text[];
+    nv1 integer;
+    nv2 integer;
+    ne1 integer;
+    ne2 integer;
+
+begin
+    -- separate components into an array, like:
+    -- '2.1.0-beta3dev'  =>  {2,1,0,beta3dev}
+    v1a := regexp_matches(v1, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+    v2a := regexp_matches(v2, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+
+    -- convert modifiers to numbers for comparison
+    -- we do not delineate between alpha1, alpha2, alpha3, etc
+    ne1 := case when v1a[4] is null or v1a[4]='' then 5
+                when v1a[4] ilike 'rc%' then 4
+                when v1a[4] ilike 'beta%' then 3
+                when v1a[4] ilike 'alpha%' then 2
+                when v1a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    ne2 := case when v2a[4] is null or v2a[4]='' then 5
+                when v2a[4] ilike 'rc%' then 4
+                when v2a[4] ilike 'beta%' then 3
+                when v2a[4] ilike 'alpha%' then 2
+                when v2a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    nv1 := v1a[1]::integer * 10000 +
+           coalesce(v1a[2], '0')::integer * 1000 +
+           coalesce(v1a[3], '0')::integer *  100 + ne1;
+    nv2 := v2a[1]::integer * 10000 +
+           coalesce(v2a[2], '0')::integer * 1000 +
+           coalesce(v2a[3], '0')::integer *  100 + ne2;
+
+    --raise notice 'nv1: %, nv2: %, ne1: %, ne2: %', nv1, nv2, ne1, ne2;
+
+    return nv1 < nv2;
+end;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+create or replace function _pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_startpoint(st_geometryn(g,1));
+    else
+        return st_startpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function _pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_endpoint(st_geometryn(g,1));
+    else
+        return st_endpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_parameter_check(fn text, sql text, big boolean default false)
+  RETURNS bool AS
+  $BODY$
+
+  DECLARE
+  rec record;
+  rec1 record;
+  has_rcost boolean;
+  safesql text;
+  BEGIN
+    IF (big) THEN
+       RAISE EXCEPTION 'This function is for old style functions';
+    END IF;
+
+    -- checking query is executable
+    BEGIN
+      safesql =  'select * from ('||sql||' ) AS __a__ limit 1';
+      execute safesql into rec;
+      EXCEPTION
+        WHEN OTHERS THEN
+            RAISE EXCEPTION 'Could not execute query please verify syntax of: '
+              USING HINT = sql;
+    END;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('dijkstra','astar') THEN
+        BEGIN
+          execute 'select id,source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: id, source, target, cost';
+        END;
+        execute 'select pg_typeof(id)::text as id_type, pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.id_type in ('integer'::text))
+              AND (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Error, columns ''source'', ''target'' must be of type int4, ''cost'' must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    IF fn IN ('astar') THEN
+        BEGIN
+          execute 'select x1,y1,x2,y2  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: x1,y1, x2,y2';
+        END;
+        execute 'select pg_typeof(x1)::text as x1_type, pg_typeof(y1)::text as y1_type, pg_typeof(x2)::text as x2_type, pg_typeof(y2)::text as y2_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.x1_type = 'double precision'::text)
+              AND (rec.y1_type = 'double precision'::text)
+              AND (rec.x2_type = 'double precision'::text)
+              AND (rec.y2_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Columns: x1, y1, x2, y2 must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('johnson') THEN
+        BEGIN
+          execute 'select source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING HINT = 'Please veryfy the column names: id, source, target, cost',
+                         ERRCODE = 'XX000';
+        END;
+
+        execute 'select pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Support for source,target columns only of type: integer. Support for Cost: double precision'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    -- Checking the data types of the optional reverse_cost";
+    has_rcost := false;
+    IF fn IN ('johnson','dijkstra','astar') THEN
+      BEGIN
+        execute 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||safesql||' ) AS __b__ limit 1 ' into rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+            return has_rcost;
+      END;
+      if (has_rcost) then
+        IF (big) then
+           IF  not (rec1.rev_type in ('bigint'::text, 'integer'::text, 'smallint'::text, 'double precision'::text, 'real'::text)) then
+             RAISE EXCEPTION 'Illegar type in optional parameter reverse_cost.'
+             USING ERRCODE = 'XX000';
+           END IF;
+        ELSE -- Version 2.0.0 is more restrictive
+           IF (rec1.rev_type != 'double precision') then
+             RAISE EXCEPTION 'Illegal type in optional parameter reverse_cost, must be of type float8'
+             USING ERRCODE = 'XX000';
+           END IF;
+        END IF;
+      end if;
+      return true;
+    END IF;
+    -- just for keeps
+    return true;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_onError(
+  IN errCond boolean,  -- true there is an error
+  IN reportErrs int,   -- 0, 1 or 2
+  IN fnName text,      -- function name that generates the error
+  IN msgerr text,      -- error message
+  IN hinto text default 'No hint', -- hint help
+  IN msgok text default 'OK')      -- message if everything is ok
+  RETURNS void AS
+$BODY$
+BEGIN
+  if errCond=true then
+     if reportErrs=0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+     else
+       if reportErrs = 2 then
+         raise notice '----> PGR ERROR in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+         raise raise_exception;
+       else
+         raise notice '----> PGR NOTICE in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+       end if;
+     end if;
+  else
+       raise debug 'PGR ----> %: %',fnName,msgok;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_msg(IN msgKind int, IN fnName text, IN msg text default '---->OK')
+  RETURNS void AS
+$BODY$
+BEGIN
+  if msgKind = 0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msg;
+  else
+       raise notice '----> PGR NOTICE in %: %',fnName,msg;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(sname text, tname text, cname text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    EXECUTE 'select data_type  from information_schema.columns '
+            || 'where table_name = '||quote_literal(tname)
+                 || ' and table_schema=' || quote_literal(sname)
+                 || ' and column_name='||quote_literal(cname)
+       into ctype;
+    err = ctype is null;
+    perform _pgr_onError(err, reportErrs, fnName,
+            'Type of Column '|| cname ||' not found',
+            'Check your column name',
+            'OK: Type of Column '|| cname || ' is ' || ctype);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(tab text, col text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+    select * into cname from _pgr_getColumnName(tab,col,reportErrs, fnName) ;
+    select * into ctype from _pgr_getColumnType(sname,tname,cname,reportErrs, fnName);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_get_statement(o_sql text)
+RETURNS text AS
+$BODY$
+DECLARE
+sql TEXT;
+BEGIN
+    EXECUTE 'SELECT statement FROM pg_prepared_statements WHERE name ='  || quote_literal(o_sql) || ' limit 1 ' INTO sql;
+    IF (sql IS NULL) THEN
+      RETURN   o_sql;
+    ELSE
+      RETURN  regexp_replace(sql, '(.)* as ', '', 'i');
+    END IF;
+END
+$BODY$
+LANGUAGE plpgsql STABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_checkVertTab(vertname text, columnsArr  text[],
+    IN reportErrs int default 1, IN fnName text default '_pgr_checkVertTab',
+    OUT sname text,OUT vname text)
+RETURNS record AS
+$BODY$
+DECLARE
+    cname text;
+    colname text;
+    naming record;
+    debuglevel text;
+    err  boolean;
+    msgKind int;
+
+BEGIN
+    msgKind = 0; -- debug_
+    execute 'show client_min_messages' into debuglevel;
+
+    perform _pgr_msg(msgKind, fnName, 'Checking table ' || vertname || ' exists');
+       select * from _pgr_getTableName(vertname, 0, fnName) into naming;
+       sname=naming.sname;
+       vname=naming.tname;
+       err = sname is NULL or vname is NULL;
+    perform _pgr_onError( err, 2, fnName,
+          'Vertex Table: ' || vertname || ' not found',
+          'Please create ' || vertname || ' using  _pgr_createTopology() or pgr_createVerticesTable()',
+          'Vertex Table: ' || vertname || ' found');
+
+
+    perform _pgr_msg(msgKind, fnName, 'Checking columns of ' || vertname);
+      FOREACH cname IN ARRAY columnsArr
+      loop
+         select _pgr_getcolumnName(vertname, cname, 0, fnName) into colname;
+         if colname is null then
+           perform _pgr_msg(msgKind, fnName, 'Adding column ' || cname || ' in ' || vertname);
+           set client_min_messages  to warning;
+                execute 'ALTER TABLE '||_pgr_quote_ident(vertname)||' ADD COLUMN '||cname|| ' integer';
+           execute 'set client_min_messages  to '|| debuglevel;
+           perform _pgr_msg(msgKind, fnName);
+         end if;
+      end loop;
+    perform _pgr_msg(msgKind, fnName, 'Finished checking columns of ' || vertname);
+
+    perform _pgr_createIndex(vertname , 'id' , 'btree', reportErrs, fnName);
+ END
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(
+    sname text, tname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    debuglevel text;
+    naming record;
+    tabname text;
+    query text;
+    msgKind int;
+BEGIN
+  msgKind = 0; -- debug_
+
+  execute 'show client_min_messages' into debuglevel;
+  tabname=_pgr_quote_ident(sname||'.'||tname);
+  perform _pgr_msg(msgKind, fnName, 'Checking ' || colname || ' column in ' || tabname || ' is indexed');
+    IF (_pgr_isColumnIndexed(sname,tname,colname, 0, fnName)) then
+       perform _pgr_msg(msgKind, fnName);
+    else
+      if indext = 'gist' then
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using gist('||quote_ident(colname)||')';
+      else
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using btree('||quote_ident(colname)||')';
+      end if;
+      perform _pgr_msg(msgKind, fnName, 'Adding index ' || tabname || '_' ||  colname || '_idx');
+      perform _pgr_msg(msgKind, fnName, ' Using ' ||  query);
+      set client_min_messages  to warning;
+      BEGIN
+        execute query;
+        EXCEPTION WHEN others THEN
+          perform _pgr_onError( true, reportErrs, fnName,
+            'Could not create index on:' || colname, SQLERRM);
+      END;
+      execute 'set client_min_messages  to '|| debuglevel;
+      perform _pgr_msg(msgKind, fnName);
+    END IF;
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(tabname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    naming record;
+    sname text;
+    tname text;
+
+BEGIN
+    select * from _pgr_getTableName(tabname, 2, fnName)  into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    execute _pgr_createIndex(sname, tname, colname, indext, reportErrs, fnName);
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pointToId(
+    point geometry,
+    tolerance double precision,
+    vertname text,
+    srid integer)
+
+  RETURNS bigint AS
+$BODY$
+DECLARE
+    rec record;
+    pid bigint;
+
+BEGIN
+    EXECUTE 'SELECT ST_Distance(
+        the_geom,
+        ST_GeomFromText(ST_AsText('
+                || quote_literal(point::text)
+                || '),'
+            || srid ||')) AS d, id, the_geom
+    FROM '||_pgr_quote_ident(vertname)||'
+    WHERE ST_DWithin(
+        the_geom,
+        ST_GeomFromText(
+            ST_AsText(' || quote_literal(point::text) ||'),
+            ' || srid || '),' || tolerance||')
+    ORDER BY d
+    LIMIT 1' INTO rec ;
+    IF rec.id IS NOT NULL THEN
+        pid := rec.id;
+    ELSE
+        execute 'INSERT INTO '||_pgr_quote_ident(vertname)||' (the_geom) VALUES ('||quote_literal(point::text)||')';
+        pid := lastval();
+END IF;
+
+RETURN pid;
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'many_to_many_dijkstra'
+LANGUAGE c VOLATILE;
+
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer, OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstra(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(Many to Many)';
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraVia(
+    edges_sql TEXT,
+    via_vertices ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    strict BOOLEAN DEFAULT FALSE,
+    U_turn_on_edge BOOLEAN DEFAULT TRUE,
+
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'dijkstraVia'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_johnson(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'johnson'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_floydWarshall(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'floydWarshall'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'astarManyToMany'
+LANGUAGE c VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, normal:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to Many)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true, normal:=false) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to Many)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid ANYARRAY,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+    equicost BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '$libdir/libpgrouting-2.5', 'many_withPointsDD'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_withPointsDD($1, $2, ARRAY[$3]::BIGINT[], $4, $5, $6, $7, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vids anyarray,
+    distance FLOAT,
+    directed BOOLEAN DEFAULT TRUE,
+    equicost BOOLEAN DEFAULT FALSE,
+    OUT seq integer,
+    OUT from_v  bigint,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '$libdir/libpgrouting-2.5', 'driving_many_to_dist'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vid bigint,
+    distance FLOAT8,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq integer,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer, directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'kshortest_path'
+    LANGUAGE c STABLE STRICT;
+
+-- V2 the graph is directed and there are no heap paths
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid integer, end_vid integer, k integer, has_rcost boolean)
+  RETURNS SETOF pgr_costresult3 AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated signature of pgr_ksp';
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql::text, false);
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_rcost) THEN
+           -- user says that it has reverse_cost but its not true
+           RAISE EXCEPTION 'has_reverse_cost set to true but reverse_cost not found';
+         ELSE
+           -- user says that it does not have reverse_cost but it does have it
+           -- to ignore we remove reverse_cost from the query
+           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+         END IF;
+      END IF;
+
+      RETURN query SELECT ((row_number() over()) -1)::integer  AS seq,  (path_id - 1)::integer AS id1, node::integer AS id2, edge::integer AS id3, cost
+            FROM _pgr_ksp(sql::text, start_vid, end_vid, k, TRUE, FALSE) WHERE path_id <= k;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer,
+  directed boolean default true, heap_paths boolean default false,
+  --directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  BEGIN
+         RETURN query SELECT *
+                FROM _pgr_ksp(edges_sql::text, start_vid, end_vid, k, directed, heap_paths);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsKSP(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    k INTEGER,
+
+    directed BOOLEAN DEFAULT TRUE,
+    heap_paths BOOLEAN DEFAULT FALSE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER, OUT path_id INTEGER, OUT path_seq INTEGER,
+    OUT node BIGINT, OUT edge BIGINT,
+    OUT cost FLOAT, OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'withPoints_ksp'
+    LANGUAGE c STABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_unnest_matrix(matrix float8[][], OUT start_vid integer, OUT end_vid integer, out agg_cost float8)
+RETURNS SETOF record AS
+
+$body$
+DECLARE
+
+m float8[];
+
+BEGIN
+    start_vid = 1;
+    foreach m slice 1 in  ARRAY matrix
+    LOOP
+        end_vid = 1;
+        foreach agg_cost in  ARRAY m
+        LOOP
+            RETURN next;
+            end_vid = end_vid + 1;
+        END LOOP;
+        start_vid = start_vid + 1;
+    END LOOP;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_tsp(
+    matrix float8[][],
+    startpt INTEGER,
+    endpt INTEGER DEFAULT -1,
+    OUT seq INTEGER,
+    OUT id INTEGER)
+RETURNS SETOF record AS
+$body$
+DECLARE
+table_sql TEXT;
+debuglevel TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature pgr_tsp(float8[][], integer, integer)';
+
+    CREATE TEMP TABLE ___tmp2 ON COMMIT DROP AS SELECT * FROM _pgr_unnest_matrix( matrix );
+
+
+    startpt := startpt + 1;
+    IF endpt = -1 THEN endpt := startpt;
+    END IF;
+
+
+    RETURN QUERY
+    WITH
+    result AS (
+        SELECT * FROM pgr_TSP(
+        $$SELECT * FROM ___tmp2 $$,
+        startpt, endpt,
+
+        tries_per_temperature :=  500 :: INTEGER,
+        max_changes_per_temperature := 30 :: INTEGER,
+        max_consecutive_non_changes := 500 :: INTEGER,
+
+        randomize:=false)
+    )
+    SELECT (row_number() over(ORDER BY result.seq) - 1)::INTEGER AS seq, (result.node - 1)::INTEGER AS id
+
+    FROM result WHERE NOT(result.node = startpt AND result.seq != 1);
+
+    DROP TABLE ___tmp2;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+
+
+
+CREATE OR  REPLACE FUNCTION pgr_tsp(sql text, start_id INTEGER, end_id INTEGER default (-1))
+returns setof pgr_costResult as
+$body$
+DECLARE
+table_sql TEXT;
+rec RECORD;
+debuglevel TEXT;
+n BIGINT;
+
+BEGIN
+    RAISE NOTICE 'Deprecated Signature pgr_tsp(sql, integer, integer)';
+
+    table_sql := 'CREATE TEMP TABLE ___tmp ON COMMIT DROP AS ' || sql ;
+    EXECUTE table_sql;
+
+
+    BEGIN
+        EXECUTE 'SELECT id, x, y FROM ___tmp' INTO rec;
+        EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                USING ERRCODE = 'XX000',
+                HINT = 'Please verify the column names: id, x, y';
+    END;
+
+    EXECUTE
+    'SELECT
+        pg_typeof(id)::text as id_type,
+        pg_typeof(x)::text as x_type,
+        pg_typeof(y)::text as y_type FROM ___tmp' INTO rec;
+
+
+    IF NOT((rec.id_type in ('integer'::text))
+        AND (rec.x_type = 'double precision'::text)
+        AND (rec.y_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION '''id'' must be of type INTEGER, ''x'' ad ''y'' must be of type FLOAT'
+            USING ERRCODE = 'XX000';
+    END IF;
+
+    EXECUTE 'SELECT count(*) AS n FROM (' || sql || ') AS __a__' INTO rec;
+    n = rec.n;
+
+    RETURN query
+        SELECT (seq - 1)::INTEGER AS seq, node::INTEGER AS id1, node::INTEGER AS id2, cost
+        FROM pgr_eucledianTSP(sql, start_id, end_id,
+
+            tries_per_temperature :=  500 * n :: INTEGER,
+            max_changes_per_temperature := 60 * n :: INTEGER,
+            max_consecutive_non_changes := 500 * n :: INTEGER,
+
+            randomize := false) WHERE seq <= n;
+    DROP TABLE ___tmp;
+
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+
+create or replace function _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+  as
+$body$
+declare
+    sql text;
+    r record;
+
+begin
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    sql := 'with nodes as (' || sqlin || ')
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j, st_distance(st_makepoint(a.x, a.y), st_makepoint(b.x, b.y)) as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i';
+
+    for r in execute sql loop
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+
+end;
+$body$
+language plpgsql stable cost 10;
+
+
+CREATE OR REPLACE FUNCTION pgr_TSP(
+    matrix_row_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '$libdir/libpgrouting-2.5', 'newTSP'
+LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_eucledianTSP(
+    coordinates_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '$libdir/libpgrouting-2.5', 'eucledianTSP'
+LANGUAGE c VOLATILE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_alphashape(sql text, alpha float8 DEFAULT 0, OUT x float8, OUT y float8)
+    RETURNS SETOF record
+    AS '$libdir/libpgrouting-2.5', 'alphashape'
+    LANGUAGE c VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_pointsAsPolygon(query varchar, alpha float8 DEFAULT 0)
+	RETURNS geometry AS
+	$$
+	DECLARE
+		r record;
+		geoms geometry[];
+		vertex_result record;
+		i int;
+		n int;
+		spos int;
+		q text;
+		x float8[];
+		y float8[];
+
+	BEGIN
+		geoms := array[]::geometry[];
+		i := 1;
+
+		FOR vertex_result IN EXECUTE 'SELECT x, y FROM pgr_alphashape('''|| query || ''', ' || alpha || ')'
+		LOOP
+			x[i] = vertex_result.x;
+			y[i] = vertex_result.y;
+			i := i+1;
+		END LOOP;
+
+		n := i;
+		IF n = 1 THEN
+			RAISE NOTICE 'n = 1';
+			RETURN NULL;
+		END IF;
+
+		spos := 1;
+		q := 'SELECT ST_GeometryFromText(''POLYGON((';
+		FOR i IN 1..n LOOP
+			IF x[i] IS NULL AND y[i] IS NULL THEN
+				q := q || ', ' || x[spos] || ' ' || y[spos] || '))'',0) AS geom;';
+				EXECUTE q INTO r;
+				geoms := geoms || array[r.geom];
+				q := '';
+			ELSE
+				IF q = '' THEN
+					spos := i;
+					q := 'SELECT ST_GeometryFromText(''POLYGON((';
+				END IF;
+				IF i = spos THEN
+					q := q || x[spos] || ' ' || y[spos];
+				ELSE
+					q := q || ', ' || x[i] || ' ' || y[i];
+				END IF;
+			END IF;
+		END LOOP;
+
+		RETURN ST_BuildArea(ST_Collect(geoms));
+	END;
+	$$
+	LANGUAGE 'plpgsql' VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'bd_astar'
+LANGUAGE C VOLATILE;
+
+
+
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed:=true, only_cost:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    BOOLEAN,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false);
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to Many)';
+
+
+
+-- one to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to Many)';
+
+
+-- bdDijkstra MANY TO MANY
+CREATE OR REPLACE FUNCTION _pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'bdDijkstra'
+LANGUAGE c VOLATILE;
+
+
+
+-- ONE TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- TODO directed BOOLEAN DEFAULT TRUE,  on version 3
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, false) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, true) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_vid integer,
+    target_vid integer,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '$libdir/libpgrouting-2.5', 'turn_restrict_shortest_path_vertex'
+LANGUAGE 'c' IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '$libdir/libpgrouting-2.5', 'turn_restrict_shortest_path_edge'
+LANGUAGE 'c' IMMUTABLE;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || edges_sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        -- no restrictions then its a dijkstra
+        RETURN query SELECT a.seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_dijkstra(new_sql, start_vid, end_vid, directed) a;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, start_vid, end_vid, directed, has_rcost, restrictions_sql);
+    RETURN;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_trspViaVertices(
+    edges_sql TEXT,
+    via_vids ANYARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult3 AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            new_sql :=
+               'WITH old_sql AS (' || edges_sql || ')' ||
+                '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        RETURN query SELECT (row_number() over())::INTEGER, path_id:: INTEGER, node::INTEGER,
+            (CASE WHEN edge = -2 THEN -1 ELSE edge END)::INTEGER, cost
+            FROM pgr_dijkstraVia(new_sql, via_vids, directed, strict:=true) WHERE edge != -1;
+        RETURN;
+    END IF;
+
+
+    -- make the call without contradiction from part of the user
+    RETURN query SELECT * FROM _pgr_trspViaVertices(new_sql, via_vids::INTEGER[], directed, has_rcost, restrictions_sql);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+
+    new_sql := sql;
+    IF (has_reverse != has_reverse_cost) THEN  -- user contradiction
+        IF (has_reverse) THEN
+            -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) THEN
+        -- no restrictions then its a with points
+        RETURN query SELECT a.seq-1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_withpoints(new_sql,
+            '(SELECT 1 as pid, ' || source_eid || 'as edge_id, ' || source_pos || '::float8 as fraction)'
+            || ' UNION '
+            || '(SELECT 2, ' || target_eid || ', ' || target_pos || ')' ::TEXT,
+            -1, -2, directed) a;
+        -- WHERE node != -2;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, source_eid, source_pos, target_eid, target_pos, directed, has_reverse_cost, turn_restrict_sql);
+    RETURN;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+create or replace function _pgr_trspViaVertices(sql text, vids integer[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    lrra boolean := false;
+    seq integer := 0;
+    seq2 integer := 0;
+
+begin
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(vids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from _pgr_trsp(sql, vids[i], vids[i+1], directed, has_rcost, turn_restrict_sql) as a loop
+            -- filter out the individual path ends except the last one
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --raise notice 'rr: %', rr;
+            if rr.id3 = -1 then
+                lrr := rr;
+                lrra := true;
+            else
+                seq := seq + 1;
+                rr.seq := seq;
+                return next rr;
+            end if;
+        end loop;
+    end loop;
+
+    if lrra then
+        seq := seq + 1;
+        lrr.seq := seq;
+        return next lrr;
+    end if;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+
+----------------------------------------------------------------------------------------------------------
+
+create or replace function pgr_trspViaEdges(sql text, eids integer[], pcts float8[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    first boolean := true;
+    seq integer := 0;
+    seq2 integer :=0;
+    has_reverse BOOLEAN;
+    point_is_vertex BOOLEAN := false;
+    edges_sql TEXT;
+    f float;
+
+begin
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql := sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (NOT has_rcost) THEN
+            -- user does not want to use reverse cost column
+            edges_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    FOREACH f IN ARRAY pcts LOOP
+        IF f in (0,1) THEN
+           point_is_vertex := true;
+        END IF;
+    END LOOP;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) AND NOT point_is_vertex THEN
+        -- no restrictions then its a _pgr_withPointsVia
+        RETURN query SELECT a.seq::INTEGER, path_id::INTEGER AS id1, node::INTEGER AS id2, edge::INTEGER AS id3, cost
+        FROM _pgr_withPointsVia(edges_sql, eids, pcts, directed) a;
+        RETURN;
+    END IF;
+
+    if array_length(eids, 1) != array_length(pcts, 1) then
+        raise exception 'The length of arrays eids and pcts must be the same!';
+    end if;
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(eids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from pgr_trsp(edges_sql,
+                                  eids[i], pcts[i],
+                                  eids[i+1], pcts[i+1],
+                                  directed,
+                                  has_rcost,
+                                  turn_restrict_sql) as a loop
+            -- combine intermediate via costs when cost is split across
+            -- two parts of a segment because it stops it and
+            -- restarts the next leg also on it
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --
+            -- there are multiple condition we have to deal with
+            -- between the end of one leg and start of the next
+            -- 1. same vertex_id. edge_id=-1; drop record with edge_id=-1
+            -- means: path ends on vertex
+            -- NOTICE:  rr: (19,1,44570022,-1,0)
+            -- NOTICE:  rr: (0,2,44570022,1768045,2.89691196717448)
+            -- 2. vertex_id=-1; sum cost components
+            -- means: path end/starts with the segment
+            -- NOTICE:  rr: (11,2,44569628,1775909,9.32885885148532)
+            -- NOTICE:  rr: (0,3,-1,1775909,0.771386350984395)
+
+            --raise notice 'rr: %', rr;
+            if first then
+                lrr := rr;
+                first := false;
+            else
+                if lrr.id3 = -1 then
+                    lrr := rr;
+                elsif lrr.id3 = rr.id3 then
+                    lrr.cost := lrr.cost + rr.cost;
+                    if rr.id2 = -1 then
+                        rr.id2 := lrr.id2;
+                    end if;
+                else
+                    seq := seq + 1;
+                    lrr.seq := seq;
+                    return next lrr;
+                    lrr := rr;
+                end if;
+            end if;
+        end loop;
+    end loop;
+
+    seq := seq + 1;
+    lrr.seq := seq;
+    return next lrr;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+----------------------------
+--    MANY TO MANY
+----------------------------
+
+
+CREATE OR REPLACE FUNCTION _pgr_maxflow(
+    edges_sql TEXT,
+    sources ANYARRAY,
+    targets ANYARRAY,
+    algorithm INTEGER DEFAULT 1,
+    only_flow BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'max_flow_many_to_many'
+    LANGUAGE c VOLATILE;
+
+
+
+
+------------------------------------
+-- 3 pgr_edmondsKarp
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+------------------------------------
+-- 2 boykov_kolmogorov
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+------------------------------------
+-- 1 pgr_pushRelabel
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT flow
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], algorithm := 1, only_flow := true);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], $3::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, $2::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxCardinalityMatch(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'edge_disjoint_paths_many_to_many'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    bigint,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    IN directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_contractGraph(
+    edges_sql TEXT,
+    contraction_order BIGINT[],
+    max_cycles integer DEFAULT 1,
+    forbidden_vertices BIGINT[] DEFAULT ARRAY[]::BIGINT[],
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT type TEXT,
+    OUT id BIGINT,
+    OUT contracted_vertices BIGINT[],
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost float)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'contractGraph'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliver(
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_cell_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'pickDeliver'
+LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliverEuclidean (
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'pickDeliverEuclidean'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_vrpOneDepot(
+    TEXT, -- customers_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_sql
+    INTEGER, -- depot_id
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+orders_sql TEXT;
+trucks_sql TEXT;
+matrix_sql TEXT;
+final_sql TEXT;
+BEGIN
+
+    orders_sql = $$WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    pickups AS (
+        SELECT id, x AS p_x, y AS p_y, open_time AS p_open, close_time AS p_close, service_time AS p_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vrp_orders.id AS id, order_unit AS demand, pickups.id AS p_node_id, p_x, p_y, p_open, p_close, p_service,
+    vrp_orders.id AS d_node_id, x AS d_x, y AS d_y, open_time AS d_open, close_time AS d_close, service_time AS d_service
+    FROM vrp_orders, pickups
+    WHERE vrp_orders.id != $$ || $4;
+
+
+    trucks_sql = $$ WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    vrp_vehicles AS ($$ || $2 || $$ ),
+    starts AS (
+        SELECT id AS start_node_id, x AS start_x, y AS start_y, open_time AS start_open, close_time AS start_close, service_time AS start_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vehicle_id AS id, capacity, starts.* FROM vrp_vehicles, starts;
+    $$;
+
+    final_sql = '
+    SELECT * FROM _pgr_pickDeliver(
+            $$' || orders_sql || '$$,
+            $$' || trucks_sql || '$$,
+            $$' || $3 || '$$,
+            max_cycles := 2,
+            initial_sol := 4 ); ';
+
+    RAISE DEBUG '%', orders_sql;
+    RAISE DEBUG '%', trucks_sql;
+    RAISE DEBUG '%', $3;
+    RAISE DEBUG '%', final_sql;
+
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+-----------------------------------------------------------------------
+-- Core function for vrp with sigle depot computation
+-- See README for description
+-----------------------------------------------------------------------
+--
+--
+
+create or replace function pgr_vrpOneDepot(
+	order_sql text,
+	vehicle_sql text,
+	cost_sql text,
+	depot_id integer,
+
+	OUT oid integer,
+	OUT opos integer,
+	OUT vid integer,
+	OUT tarrival integer,
+	OUT tdepart integer)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT order_id::INTEGER, stop_seq::INTEGER, vehicle_id::INTEGER, arrival_time::INTEGER, departure_time::INTEGER
+    FROM _pgr_vrpOneDepot($1, $2,
+       '
+            SELECT src_id AS start_vid, dest_id AS end_vid, traveltime AS agg_cost FROM ('||$3||') AS a
+       ',
+        $4
+    ) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_gsoc_vrppdtw(
+    customers_sql TEXT,
+    max_vehicles INTEGER,
+    capacity FLOAT,
+    speed FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+
+    OUT seq INTEGER,
+    OUT vehicle_id INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT stop_id BIGINT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+    orders_sql TEXT;
+    vehicles_sql TEXT;
+    final_sql TEXT;
+BEGIN
+    orders_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        pickups AS (
+            SELECT id, demand, x as p_x, y as p_y, opentime as p_open, closetime as p_close, servicetime as p_service
+            FROM  customer_data WHERE pindex = 0 AND id != 0
+        ),
+        deliveries AS (
+            SELECT pindex AS id, x as d_x, y as d_y, opentime as d_open, closetime as d_close, servicetime as d_service
+            FROM  customer_data WHERE dindex = 0 AND id != 0
+        )
+        SELECT * FROM pickups JOIN deliveries USING(id) ORDER BY pickups.id
+    $$;
+
+    vehicles_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ )
+        SELECT id, x AS start_x, y AS start_y,
+            opentime AS start_open, closetime AS start_close, $$ ||
+            capacity || $$ AS capacity, $$ || max_vehicles || $$ AS number, $$ || speed || $$ AS speed
+            FROM customer_data WHERE id = 0 LIMIT 1
+        $$;
+--  seq | vehicle_id | vehicle_seq | stop_id | travel_time | arrival_time | wait_time | service_time | departure_time
+    final_sql = $$ WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        p_deliver AS (SELECT * FROM _pgr_pickDeliverEuclidean('$$ || orders_sql || $$',  '$$ || vehicles_sql || $$',  1, $$ || max_cycles || $$ )),
+        picks AS (SELECT p_deliver.*, pindex, dindex, id AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 2)),
+        delivers AS (SELECT p_deliver.*, pindex, dindex, dindex AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 3)),
+        depots AS (SELECT p_deliver.*, 0 as pindex, 0 as dindex, 0 AS the_id FROM p_deliver WHERE (stop_type IN (-1,1,6))),
+        the_union AS (SELECT * FROM picks UNION SELECT * FROM delivers UNION SELECT * from depots)
+
+        SELECT (row_number() over(ORDER BY a.seq))::INTEGER, vehicle_seq, a.stop_seq, the_id::BIGINT, a.travel_time, a.arrival_time, a.wait_time, a.service_time, a.departure_time
+        FROM (SELECT * FROM the_union) AS a ORDER BY a.seq
+        $$;
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+CREATE OR REPLACE FUNCTION pgr_gsoc_vrppdtw(
+    sql text,
+    vehicle_num INTEGER,
+    capacity INTEGER
+)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+customers_sql TEXT;
+BEGIN
+    RETURN query
+         SELECT a.seq, vehicle_id::INTEGER AS id1, stop_id::INTEGER AS id2, departure_time AS cost
+        FROM _pgr_gsoc_vrppdtw($1, $2, $3, 1, 30) AS a WHERE vehicle_id NOT IN (-2);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION _pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN,
+    driving_side CHAR,
+    details BOOLEAN,
+
+    only_cost BOOLEAN DEFAULT false, -- gets path
+    normal BOOLEAN DEFAULT true, -- false for many to onu
+
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'withPoints'
+LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], ARRAY[$4]::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], ARRAY[$4]::bigint[], $5, $6, $7, FALSE, FALSE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], $4::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], $4::BIGINT[], $5,  $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION  _pgr_withPointsVia(
+    sql text,
+    via_edges bigint[],
+    fraction float[],
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  has_rcost boolean;
+  sql_new_vertices text := ' ';
+  sql_on_vertex text;
+  v_union text := ' ';
+  dummyrec record;
+  rec1 record;
+  via_vertices int[];
+  sql_safe text;
+  new_edges text;
+  BEGIN
+     BEGIN
+        sql_safe = 'SELECT id, source, target, cost, reverse_cost FROM ('|| sql || ') AS __a';
+
+        EXECUTE 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||sql_safe||' ) AS __b__ limit 1 ' INTO rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+     END;
+
+
+      IF array_length(via_edges, 1) != array_length(fraction, 1) then
+        RAISE EXCEPTION 'The length of via_edges is different of length of via_edges';
+      END IF;
+
+      FOR i IN 1 .. array_length(via_edges, 1)
+      LOOP
+          IF fraction[i] = 0 THEN
+              sql_on_vertex := 'SELECT source FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.source;
+          ELSE IF fraction[i] = 1 THEN
+              sql_on_vertex := 'SELECT target FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.target;
+          ELSE
+              via_vertices[i] = -i;
+              IF has_rcost THEN
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost,
+                              reverse_cost * (1 - ' || fraction[i] || ')  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost,
+                              reverse_cost *  ' || fraction[i] || '  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' where id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               ELSE
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               END IF;
+          END IF;
+          END IF;
+     END LOOP;
+
+     IF sql_new_vertices = ' ' THEN
+         new_edges := sql;
+     ELSE
+         IF has_rcost THEN
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost,
+                         lead(cost) OVER w  - cost AS reverse_cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL),
+                   second_part AS ( SELECT * FROM (SELECT id, lead(source) OVER w  AS source, source as target,
+                         reverse_cost - lead(reverse_cost) OVER w  AS cost,
+                         reverse_cost - lead(reverse_cost) OVER w  AS reverse_cost
+                      FROM  the_union  WHERE target > 0 and reverse_cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY reverse_cost ASC) ) as n2
+                      WHERE source IS NOT NULL),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part)
+                             UNION
+                       (SELECT * FROM second_part) ) _union )
+                  SELECT *  FROM more_union';
+         ELSE
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL ),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part) ) _union )
+                  SELECT *  FROM more_union';
+          END IF;
+      END IF;
+
+ -- raise notice '%', new_edges;
+     sql_new_vertices := sql_new_vertices || v_union || ' (' || sql || ')';
+     RETURN query SELECT *
+         FROM pgr_dijkstraVia(new_edges, via_vertices, directed, has_rcost);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_lineGraph(
+    TEXT, -- edges_sql
+    directed BOOLEAN DEFAULT true,
+    OUT seq INTEGER,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost FLOAT,
+    OUT reverse_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'lineGraph'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_connectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'connectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_strongComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'strongComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_biconnectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the edge in the component
+    OUT n_seq INTEGER,          -- nth_seq of the edge in the component
+    OUT edge BIGINT)            -- the number of the edge
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'biconnectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_articulationPoints(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'articulationPoints'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_bridges(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT edge BIGINT)            -- the number of the edge 
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'bridges'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_createtopology(edge_table text, tolerance double precision,
+		   the_geom text default 'the_geom', id text default 'id',
+		   source text default 'source', target text default 'target',rows_where text default 'true',
+		   clean boolean default FALSE)
+RETURNS VARCHAR AS
+$BODY$
+
+DECLARE
+    points record;
+    sridinfo record;
+    source_id bigint;
+    target_id bigint;
+    totcount bigint;
+    rowcount bigint;
+    srid integer;
+    sql text;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    idname text;
+    sourcename text;
+    targetname text;
+    notincluded integer;
+    i integer;
+    naming record;
+    info record;
+    flag boolean;
+    query text;
+    idtype text;
+    gtype text;
+    sourcetype text;
+    targettype text;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+    msgKind int;
+    emptied BOOLEAN;
+
+BEGIN
+    msgKind = 1; -- notice
+    fnName = 'pgr_createTopology';
+    raise notice 'PROCESSING:';
+    raise notice 'pgr_createTopology(''%'', %, ''%'', ''%'', ''%'', ''%'', rows_where := ''%'', clean := %)',edge_table,tolerance,the_geom,id,source,target,rows_where, clean;
+    execute 'show client_min_messages' into debuglevel;
+
+
+    raise notice 'Performing checks, please wait .....';
+
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+        sname=naming.sname;
+        tname=naming.tname;
+        tabname=sname||'.'||tname;
+        vname=tname||'_vertices_pgr';
+        vertname= sname||'.'||vname;
+        rows_where = ' AND ('||rows_where||')';
+      raise DEBUG '     --> OK';
+
+
+      raise debug 'Checking column names in edge table';
+        select * into idname     from _pgr_getColumnName(sname, tname,id,2,fnName);
+        select * into sourcename from _pgr_getColumnName(sname, tname,source,2,fnName);
+        select * into targetname from _pgr_getColumnName(sname, tname,target,2,fnName);
+        select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2,fnName);
+
+
+        err = sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname;
+        perform _pgr_onError( err, 2, fnName,
+               'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
+	       'Column names are OK');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking column types in edge table';
+        select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+        select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+        select * into idtype from _pgr_getColumnType(sname,tname,idname,1, fnName);
+
+        err = idtype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column id:'|| idname, ' Expected type of '|| idname || ' is integer,smallint or bigint but '||idtype||' was found');
+
+        err = sourcetype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column source:'|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+        err = targettype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column target:'|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or bigint but '||targettype||' was found');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking SRID of geometry column';
+         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+            || ' FROM ' || _pgr_quote_ident(tabname)
+            || ' WHERE ' || quote_ident(gname)
+            || ' IS NOT NULL LIMIT 1';
+         raise debug '%',query;
+         EXECUTE query INTO sridinfo;
+
+         err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+         perform _pgr_onError(err, 2, fnName,
+	     'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+
+         srid := sridinfo.srid;
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking and creating indices in edge table';
+        perform _pgr_createIndex(sname, tname , idname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+
+        gname=quote_ident(gname);
+        idname=quote_ident(idname);
+        sourcename=quote_ident(sourcename);
+        targetname=quote_ident(targetname);
+      raise DEBUG '     --> OK';
+
+
+
+
+
+    BEGIN
+        -- issue #193 & issue #210 & #213
+        -- this sql is for trying out the where clause
+        -- the select * is to avoid any column name conflicts
+        -- limit 1, just try on first record
+        -- if the where clasuse is ill formed it will be caught in the exception
+        sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+        EXECUTE sql into dummyRec;
+        -- end
+
+        -- if above where clasue works this one should work
+        -- any error will be caught by the exception also
+        sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NOT NULL AND '||
+	    idname||' IS NOT NULL)=false '||rows_where;
+        EXECUTE SQL  into notincluded;
+
+        if clean then
+            raise debug 'Cleaning previous Topology ';
+               execute 'UPDATE ' || _pgr_quote_ident(tabname) ||
+               ' SET '||sourcename||' = NULL,'||targetname||' = NULL';
+        else
+            raise debug 'Creating topology for edges with non assigned topology';
+            if rows_where=' AND (true)' then
+                rows_where=  ' and ('||quote_ident(sourcename)||' is null or '||quote_ident(targetname)||' is  null)';
+            end if;
+        end if;
+        -- my thoery is that the select Count(*) will never go through here
+        EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+             RAISE NOTICE '%',sql;
+             RETURN 'FAIL';
+    END;
+
+    BEGIN
+         raise DEBUG 'initializing %',vertname;
+         execute 'select * from _pgr_getTableName('||quote_literal(vertname)
+                                                  || ',0,' || quote_literal(fnName) ||' )' into naming;
+         emptied = false;
+         set client_min_messages  to warning;
+         IF sname=naming.sname AND vname=naming.tname  THEN
+            if clean then
+                execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+                execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+                emptied = true;
+            end if;
+         ELSE -- table doesn't exist
+            execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+            emptied = true;
+         END IF;
+         IF (emptied) THEN
+             execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+	         quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+             perform _pgr_createIndex(vertname , 'the_geom'::text , 'gist'::text);
+         END IF;
+         execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id"}''::text[])' into naming;
+         execute 'set client_min_messages  to '|| debuglevel;
+         raise DEBUG  '  ------>OK';
+         EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: something went wrong when initializing the verties table';
+             RETURN 'FAIL';
+    END;
+
+
+
+    raise notice 'Creating Topology, Please wait...';
+        rowcount := 0;
+        FOR points IN EXECUTE 'SELECT ' || idname || '::bigint AS id,'
+            || ' _pgr_StartPoint(' || gname || ') AS source,'
+            || ' _pgr_EndPoint('   || gname || ') AS target'
+            || ' FROM '  || _pgr_quote_ident(tabname)
+            || ' WHERE ' || gname || ' IS NOT NULL AND ' || idname||' IS NOT NULL '||rows_where
+        LOOP
+
+            rowcount := rowcount + 1;
+            IF rowcount % 1000 = 0 THEN
+                RAISE NOTICE '% edges processed', rowcount;
+            END IF;
+
+
+            source_id := _pgr_pointToId(points.source, tolerance,vertname,srid);
+            target_id := _pgr_pointToId(points.target, tolerance,vertname,srid);
+            BEGIN
+                sql := 'UPDATE ' || _pgr_quote_ident(tabname) ||
+                    ' SET '||sourcename||' = '|| source_id::text || ','||targetname||' = ' || target_id::text ||
+                    ' WHERE ' || idname || ' =  ' || points.id::text;
+
+                IF sql IS NULL THEN
+                    RAISE NOTICE 'WARNING: UPDATE % SET source = %, target = % WHERE % = % ', tabname, source_id::text, target_id::text, idname,  points.id::text;
+                ELSE
+                    EXECUTE sql;
+                END IF;
+                EXCEPTION WHEN OTHERS THEN
+                    RAISE NOTICE '%', SQLERRM;
+                    RAISE NOTICE '%',sql;
+                    RETURN 'FAIL';
+            end;
+        END LOOP;
+        raise notice '-------------> TOPOLOGY CREATED FOR  % edges', rowcount;
+        RAISE NOTICE 'Rows with NULL geometry or NULL id: %',notincluded;
+        Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname), _pgr_quote_ident(vertname);
+        raise notice '----------------------------------------------';
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+COMMENT ON FUNCTION pgr_createTopology(text, double precision,text,text,text,text,text,boolean)
+IS 'args: edge_table,tolerance, the_geom:=''the_geom'',source:=''source'', target:=''target'',rows_where:=''true'' - fills columns source and target in the geometry table and creates a vertices table for selected rows';
+
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
+RETURNS character varying AS
+$BODY$
+
+DECLARE
+    points record;
+    seg record;
+    naming record;
+    sridinfo record;
+    srid integer;
+    ecnt integer;
+    vertname text;
+    sname text;
+    tname text;
+    vname text;
+    idname text;
+    sourcename text;
+    targetname text;
+    sourcetype text;
+    targettype text;
+    geotype text;
+    gname text;
+    tabName text;
+    flag boolean ;
+    query text;
+    selectionquery text;
+    i integer;
+    tot integer;
+    NumIsolated integer;
+    numdeadends integer;
+    numgaps integer;
+    NumCrossing integer;
+    numRings integer;
+    debuglevel text;
+
+
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_analyzeGraph(''%'',%,''%'',''%'',''%'',''%'',''%'')',edge_table,tolerance,the_geom,id,source,target,rows_where;
+  raise notice 'Performing checks, please wait ...';
+  execute 'show client_min_messages' into debuglevel;
+
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',2)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    rows_where = ' AND ('||rows_where||')';
+    raise DEBUG '     --> OK';
+
+  END;
+
+  BEGIN
+       raise debug 'Checking Vertices table';
+       execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","cnt","chk"}''::text[])' into naming;
+       execute 'UPDATE '||_pgr_quote_ident(vertname)||' SET cnt=0 ,chk=0';
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the vertices table';
+          RETURN 'FAIL';
+  END;
+
+
+
+  BEGIN
+       raise debug 'Checking column names in edge table';
+       select * into idname     from _pgr_getColumnName(sname, tname,id,2);
+       select * into sourcename from _pgr_getColumnName(sname, tname,source,2);
+       select * into targetname from _pgr_getColumnName(sname, tname,target,2);
+       select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2);
+
+
+       perform _pgr_onError( sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname, 2,
+                       'pgr_analyzeGraph',  'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
+                       'Column names are OK');
+
+        raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column names';
+          RETURN 'FAIL';
+  END;
+
+
+  BEGIN
+       raise debug 'Checking column types in edge table';
+       select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1);
+       select * into targettype from _pgr_getColumnType(sname,tname,targetname,1);
+
+       perform _pgr_onError(sourcetype not in('integer','smallint','bigint') , 2,
+                       'pgr_analyzeGraph',  'Wrong type of Column '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found',
+                       'Type of Column '|| sourcename || ' is ' || sourcetype);
+
+       perform _pgr_onError(targettype not in('integer','smallint','bigint') , 2,
+                       'pgr_analyzeGraph',  'Wrong type of Column '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found',
+                       'Type of Column '|| targetname || ' is ' || targettype);
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column types';
+          RETURN 'FAIL';
+   END;
+
+   BEGIN
+       raise debug 'Checking SRID of geometry column';
+         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+            || ' FROM ' || _pgr_quote_ident(tabname)
+            || ' WHERE ' || quote_ident(gname)
+            || ' IS NOT NULL LIMIT 1';
+         EXECUTE QUERY INTO sridinfo;
+
+         perform _pgr_onError( sridinfo IS NULL OR sridinfo.srid IS NULL,2,
+                 'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname,
+                 'SRID of '||gname||' is '||sridinfo.srid);
+
+         IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
+             RAISE NOTICE ' Can not determine the srid of the geometry "%" in table %', the_geom,tabname;
+             RETURN 'FAIL';
+         END IF;
+         srid := sridinfo.srid;
+         raise DEBUG '     --> OK';
+         EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM;--issue 210,211,213
+             RAISE NOTICE 'ERROR: something went wrong when checking for SRID of % in table %', the_geom,tabname;
+             RETURN 'FAIL';
+    END;
+
+
+    BEGIN
+       raise debug 'Checking  indices in edge table';
+       perform _pgr_createIndex(tabname , idname , 'btree');
+       perform _pgr_createIndex(tabname , sourcename , 'btree');
+       perform _pgr_createIndex(tabname , targetname , 'btree');
+       perform _pgr_createIndex(tabname , gname , 'gist');
+
+       gname=quote_ident(gname);
+       sourcename=quote_ident(sourcename);
+       targetname=quote_ident(targetname);
+       idname=quote_ident(idname);
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking indices';
+          RETURN 'FAIL';
+    END;
+
+
+    BEGIN
+        query='select count(*) from '||_pgr_quote_ident(tabname)||' where true  '||rows_where;
+        EXECUTE query into ecnt;
+        raise DEBUG '-->Rows Where condition: OK';
+        raise DEBUG '     --> OK';
+         EXCEPTION WHEN OTHERS THEN
+            RAISE NOTICE 'Got %', SQLERRM;  --issue 210,211,213
+            RAISE NOTICE 'ERROR: Condition is not correct. Please execute the following query to test your condition';
+            RAISE NOTICE '%',query;
+            RETURN 'FAIL';
+    END;
+
+    selectionquery ='with
+           selectedRows as( (select '||sourcename||' as id from '||_pgr_quote_ident(tabname)||' where true '||rows_where||')
+                           union
+                           (select '||targetname||' as id from '||_pgr_quote_ident(tabname)||' where true '||rows_where||'))';
+
+
+
+
+
+   BEGIN
+       RAISE NOTICE 'Analyzing for dead ends. Please wait...';
+       query= 'with countingsource as (select a.'||sourcename||' as id,count(*) as cnts
+               from (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) a  group by a.'||sourcename||')
+                     ,countingtarget as (select a.'||targetname||' as id,count(*) as cntt
+                    from (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) a  group by a.'||targetname||')
+                   ,totalcount as (select id,case when cnts is null and cntt is null then 0
+                                                   when cnts is null then cntt
+                                                   when cntt is null then cnts
+                                                   else cnts+cntt end as totcnt
+                                   from ('||_pgr_quote_ident(vertname)||' as a left
+                                   join countingsource as t using(id) ) left join countingtarget using(id))
+               update '||_pgr_quote_ident(vertname)||' as a set cnt=totcnt from totalcount as b where a.id=b.id';
+       raise debug '%',query;
+       execute query;
+       query=selectionquery||'
+              SELECT count(*)  FROM '||_pgr_quote_ident(vertname)||' WHERE cnt=1 and id in (select id from selectedRows)';
+       raise debug '%',query;
+       execute query  INTO numdeadends;
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'Got %', SQLERRM;  --issue 210,211,213
+          RAISE NOTICE 'ERROR: something went wrong when analizing for dead ends';
+          RETURN 'FAIL';
+   END;
+
+
+
+    BEGIN
+          RAISE NOTICE 'Analyzing for gaps. Please wait...';
+          query = 'with
+                   buffer as (select id,st_buffer(the_geom,'||tolerance||') as buff from '||_pgr_quote_ident(vertname)||' where cnt=1)
+                   ,veryclose as (select b.id,st_crosses(a.'||gname||',b.buff) as flag
+                   from  (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) as a
+                   join buffer as b on (a.'||gname||'&&b.buff)
+                   where '||sourcename||'!=b.id and '||targetname||'!=b.id )
+                   update '||_pgr_quote_ident(vertname)||' set chk=1 where id in (select distinct id from veryclose where flag=true)';
+          raise debug '%' ,query;
+          execute query;
+          GET DIAGNOSTICS  numgaps= ROW_COUNT;
+          raise DEBUG '     --> OK';
+          EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for gaps';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for isolated edges. Please wait...';
+        query=selectionquery|| ' SELECT count(*) FROM (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' )  as a,
+                                                 '||_pgr_quote_ident(vertname)||' as b,
+                                                 '||_pgr_quote_ident(vertname)||' as c
+                            WHERE b.id in (select id from selectedRows) and a.'||sourcename||' =b.id
+                            AND b.cnt=1 AND a.'||targetname||' =c.id
+                            AND c.cnt=1';
+        raise debug '%' ,query;
+        execute query  INTO NumIsolated;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for isolated edges';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for ring geometries. Please wait...';
+        execute 'SELECT geometrytype('||gname||')  FROM '||_pgr_quote_ident(tabname) limit 1 into geotype;
+        IF (geotype='MULTILINESTRING') THEN
+            query ='SELECT count(*)  FROM '||_pgr_quote_ident(tabname)||'
+                                 WHERE true  '||rows_where||' and st_isRing(st_linemerge('||gname||'))';
+            raise debug '%' ,query;
+            execute query  INTO numRings;
+        ELSE query ='SELECT count(*)  FROM '||_pgr_quote_ident(tabname)||'
+                                  WHERE true  '||rows_where||' and st_isRing('||gname||')';
+            raise debug '%' ,query;
+            execute query  INTO numRings;
+        END IF;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for ring geometries';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for intersections. Please wait...';
+        query = 'select count(*) from (select distinct case when a.'||idname||' < b.'||idname||' then a.'||idname||'
+                                                        else b.'||idname||' end,
+                                                   case when a.'||idname||' < b.'||idname||' then b.'||idname||'
+                                                        else a.'||idname||' end
+                                    FROM (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||') as a
+                                    JOIN (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||') as b
+                                    ON (a.'|| gname||' && b.'||gname||')
+                                    WHERE a.'||idname||' != b.'||idname|| '
+                                        and (a.'||sourcename||' in (b.'||sourcename||',b.'||targetname||')
+                                              or a.'||targetname||' in (b.'||sourcename||',b.'||targetname||')) = false
+                                        and st_intersects(a.'||gname||', b.'||gname||')=true) as d ';
+        raise debug '%' ,query;
+        execute query  INTO numCrossing;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for intersections';
+            RETURN 'FAIL';
+    END;
+
+
+
+
+    RAISE NOTICE '            ANALYSIS RESULTS FOR SELECTED EDGES:';
+    RAISE NOTICE '                  Isolated segments: %', NumIsolated;
+    RAISE NOTICE '                          Dead ends: %', numdeadends;
+    RAISE NOTICE 'Potential gaps found near dead ends: %', numgaps;
+    RAISE NOTICE '             Intersections detected: %',numCrossing;
+    RAISE NOTICE '                    Ring geometries: %',numRings;
+
+
+    RETURN 'OK';
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+COMMENT ON FUNCTION pgr_analyzeGraph(text,double precision,text,text,text,text,text) IS 'args: edge_table, tolerance,the_geom:=''the_geom'',id:=''id'',source column:=''source'', target column:=''target'' rows_where:=''true'' - creates a vertices table based on the geometry for selected rows';
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_analyzeOneway(
+   edge_table text,
+   s_in_rules TEXT[],
+   s_out_rules TEXT[],
+   t_in_rules TEXT[],
+   t_out_rules TEXT[],
+   two_way_if_null boolean default true,
+   oneway text default 'oneway',
+   source text default 'source',
+   target text default 'target')
+  RETURNS text AS
+$BODY$
+
+
+DECLARE
+    rule text;
+    ecnt integer;
+    instr text;
+    naming record;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    owname text;
+    sourcename text;
+    targetname text;
+    sourcetype text;
+    targettype text;
+    vertname text;
+    debuglevel text;
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_analyzeOneway(''%'',''%'',''%'',''%'',''%'',''%'',''%'',''%'',%)',
+		edge_table, s_in_rules , s_out_rules, t_in_rules, t_out_rules, oneway, source ,target,two_way_if_null ;
+  execute 'show client_min_messages' into debuglevel;
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',2)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    raise DEBUG '     --> OK';
+    EXCEPTION WHEN raise_exception THEN
+      RAISE NOTICE 'ERROR: something went wrong checking the table name';
+      RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise debug 'Checking Vertices table';
+       execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","ein","eout"}''::text[])' into naming;
+       execute 'UPDATE '||_pgr_quote_ident(vertname)||' SET eout=0 ,ein=0';
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the vertices table';
+          RETURN 'FAIL';
+  END;
+
+
+  BEGIN
+       raise debug 'Checking column names in edge table';
+       select * into sourcename from _pgr_getColumnName(sname, tname,source,2);
+       select * into targetname from _pgr_getColumnName(sname, tname,target,2);
+       select * into owname from _pgr_getColumnName(sname, tname,oneway,2);
+
+
+       perform _pgr_onError( sourcename in (targetname,owname) or  targetname=owname, 2,
+                       '_pgr_createToplogy',  'Two columns share the same name', 'Parameter names for oneway,source and target  must be different',
+                       'Column names are OK');
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column names';
+          RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise debug 'Checking column types in edge table';
+       select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1);
+       select * into targettype from _pgr_getColumnType(sname,tname,targetname,1);
+
+
+       perform _pgr_onError(sourcetype not in('integer','smallint','bigint') , 2,
+                       '_pgr_createTopology',  'Wrong type of Column '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found',
+                       'Type of Column '|| sourcename || ' is ' || sourcetype);
+
+       perform _pgr_onError(targettype not in('integer','smallint','bigint') , 2,
+                       '_pgr_createTopology',  'Wrong type of Column '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found',
+                       'Type of Column '|| targetname || ' is ' || targettype);
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column types';
+          RETURN 'FAIL';
+   END;
+
+
+
+    RAISE NOTICE 'Analyzing graph for one way street errors.';
+
+    rule := CASE WHEN two_way_if_null
+            THEN owname || ' IS NULL OR '
+            ELSE '' END;
+
+    instr := '''' || array_to_string(s_in_rules, ''',''') || '''';
+       EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set ein=coalesce(ein,0)+b.cnt
+      from (
+         select '|| sourcename ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| sourcename ||' ) b
+     where a.id=b.'|| sourcename;
+
+    RAISE NOTICE 'Analysis 25%% complete ...';
+
+    instr := '''' || array_to_string(t_in_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set ein=coalesce(ein,0)+b.cnt
+        from (
+         select '|| targetname ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| targetname ||' ) b
+        where a.id=b.'|| targetname;
+
+    RAISE NOTICE 'Analysis 50%% complete ...';
+
+    instr := '''' || array_to_string(s_out_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set eout=coalesce(eout,0)+b.cnt
+        from (
+         select '|| sourcename ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| sourcename ||' ) b
+        where a.id=b.'|| sourcename;
+    RAISE NOTICE 'Analysis 75%% complete ...';
+
+    instr := '''' || array_to_string(t_out_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set eout=coalesce(eout,0)+b.cnt
+        from (
+         select '|| targetname ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| targetname ||' ) b
+        where a.id=b.'|| targetname;
+
+    RAISE NOTICE 'Analysis 100%% complete ...';
+
+    EXECUTE 'SELECT count(*)  FROM '||_pgr_quote_ident(vertname)||' WHERE ein=0 or eout=0' INTO ecnt;
+
+    RAISE NOTICE 'Found % potential problems in directionality' ,ecnt;
+
+    RETURN 'OK';
+
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+COMMENT ON FUNCTION pgr_analyzeOneway(text,TEXT[],TEXT[], TEXT[],TEXT[],boolean,text,text,text)
+IS 'args:edge_table , s_in_rules , s_out_rules, t_in_rules , t_out_rules, two_way_if_null:= true, oneway:=''oneway'',source:= ''source'',target:=''target'' - Analizes the directionality of the edges based on the rules';
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_createverticestable(
+   edge_table text,
+   the_geom text DEFAULT 'the_geom'::text,
+   source text DEFAULT 'source'::text,
+   target text DEFAULT 'target'::text,
+    rows_where text DEFAULT 'true'::text
+)
+  RETURNS text AS
+$BODY$
+DECLARE
+    naming record;
+    sridinfo record;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    sourcename text;
+    targetname text;
+    query text;
+    ecnt bigint;
+    srid integer;
+    sourcetype text;
+    targettype text;
+    sql text;
+    totcount integer;
+    i integer;
+    notincluded integer;
+    included integer;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+
+
+BEGIN
+  fnName = 'pgr_createVerticesTable';
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_createVerticesTable(''%'',''%'',''%'',''%'',''%'')',edge_table,the_geom,source,target,rows_where;
+  execute 'show client_min_messages' into debuglevel;
+
+  raise notice 'Performing checks, please wait .....';
+
+  RAISE DEBUG 'Checking % exists',edge_table;
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    rows_where = ' AND ('||rows_where||')';
+  raise debug '--> Edge table exists: OK';
+
+  raise debug 'Checking column names';
+    select * into sourcename from _pgr_getColumnName(sname, tname,source,2, fnName);
+    select * into targetname from _pgr_getColumnName(sname, tname,target,2, fnName);
+    select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2, fnName);
+
+
+    err = sourcename in (targetname,gname) or  targetname=gname;
+    perform _pgr_onError(err, 2, fnName,
+        'Two columns share the same name', 'Parameter names for the_geom,source and target  must be different');
+  raise debug '--> Column names: OK';
+
+  raise debug 'Checking column types in edge table';
+    select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+    select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+
+
+    err = sourcetype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column source: '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+    err = targettype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column target: '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found');
+
+  raise debug '-->Column types:OK';
+
+  raise debug 'Checking SRID of geometry column';
+     query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+        || ' FROM ' || _pgr_quote_ident(tabname)
+        || ' WHERE ' || quote_ident(gname)
+        || ' IS NOT NULL LIMIT 1';
+     raise debug '%',query;
+     EXECUTE query INTO sridinfo;
+
+     err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+     perform _pgr_onError(err, 2, fnName,
+         'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+     srid := sridinfo.srid;
+  raise DEBUG '     --> OK';
+
+  raise debug 'Checking and creating Indices';
+     perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+  raise DEBUG '-->Check and create indices: OK';
+
+     gname=quote_ident(gname);
+     sourcename=quote_ident(sourcename);
+     targetname=quote_ident(targetname);
+
+
+  BEGIN
+  raise debug 'Checking Condition';
+    -- issue #193 & issue #210 & #213
+    -- this sql is for trying out the where clause
+    -- the select * is to avoid any column name conflicts
+    -- limit 1, just try on first record
+    -- if the where clasuse is ill formed it will be caught in the exception
+    sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+    EXECUTE sql into dummyRec;
+    -- end
+
+    -- if above where clasue works this one should work
+    -- any error will be caught by the exception also
+    sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NULL or '||
+		sourcename||' is null or '||targetname||' is null)=true '||rows_where;
+    raise debug '%',sql;
+    EXECUTE SQL  into notincluded;
+    EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+
+
+
+  BEGIN
+     raise DEBUG 'initializing %',vertname;
+       execute 'select * from _pgr_getTableName('||quote_literal(vertname)||',0)' into naming;
+       IF sname=naming.sname  AND vname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+       ELSE
+           set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+       END IF;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+                quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+       execute 'CREATE INDEX '||quote_ident(vname||'_the_geom_idx')||' ON '||_pgr_quote_ident(vertname)||'  USING GIST (the_geom)';
+       execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+       EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Initializing vertex table';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise notice 'Populating %, please wait...',vertname;
+       sql= 'with
+		lines as ((select distinct '||sourcename||' as id, _pgr_startpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+		                  ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||')
+			union (select distinct '||targetname||' as id,_pgr_endpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+			          ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||'))
+		,numberedLines as (select row_number() OVER (ORDER BY id) AS i,* from lines )
+		,maxid as (select id,max(i) as maxi from numberedLines group by id)
+		insert into '||_pgr_quote_ident(vertname)||'(id,the_geom)  (select id,the_geom  from numberedLines join maxid using(id) where i=maxi order by id)';
+       RAISE debug '%',sql;
+       execute sql;
+       GET DIAGNOSTICS totcount = ROW_COUNT;
+
+       sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' a, '||_pgr_quote_ident(vertname)||' b
+            where '||sourcename||'=b.id and '|| targetname||' in (select id from '||_pgr_quote_ident(vertname)||')';
+       RAISE debug '%',sql;
+       execute sql into included;
+
+
+
+       execute 'select max(id) from '||_pgr_quote_ident(vertname) into ecnt;
+       execute 'SELECT setval('||quote_literal(vertname||'_id_seq')||','||coalesce(ecnt,1)||' , false)';
+       raise notice '  ----->   VERTICES TABLE CREATED WITH  % VERTICES', totcount;
+       raise notice '                                       FOR   %  EDGES', included+notincluded;
+       RAISE NOTICE '  Edges with NULL geometry,source or target: %',notincluded;
+       RAISE NOTICE '                            Edges processed: %',included;
+       Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname),_pgr_quote_ident(vertname);
+       raise notice '----------------------------------------------';
+    END;
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+COMMENT ON FUNCTION pgr_createVerticesTable(text,text,text,text,text)
+IS 'args: edge_table, the_geom:=''the_geom'',source:=''source'', target:=''target'' rows_where:=''true'' - creates a vertices table based on the source and target identifiers for selected rows';
+
+
+CREATE OR REPLACE FUNCTION pgr_nodeNetwork(edge_table text, tolerance double precision,
+			id text default 'id', the_geom text default 'the_geom', table_ending text default 'noded',
+            rows_where text DEFAULT ''::text, outall boolean DEFAULT false) RETURNS text AS
+$BODY$
+DECLARE
+	
+	p_num int := 0;
+	p_ret text := '';
+    pgis_ver_old boolean := _pgr_versionless(postgis_lib_version(), '2.1.0.0');
+    vst_line_substring text;
+    vst_line_locate_point text;
+    intab text;
+    outtab text;
+    n_pkey text;
+    n_geom text;
+    naming record;
+    sname text;
+    tname text;
+    outname text;
+    srid integer;
+    sridinfo record;
+    splits bigint;
+    touched bigint;
+    untouched bigint;
+    geomtype text;
+    debuglevel text;
+    rows_where text;
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_nodeNetwork(''%'', %, ''%'', ''%'', ''%'', ''%'',  %)',
+    edge_table, tolerance, id,  the_geom, table_ending, rows_where, outall;
+  raise notice 'Performing checks, please wait .....';
+  execute 'show client_min_messages' into debuglevel;
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',0)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+	RAISE NOTICE '-------> % not found',edge_table;
+        RETURN 'FAIL';
+    ELSE
+	RAISE DEBUG '  -----> OK';
+    END IF;
+
+    intab=sname||'.'||tname;
+    outname=tname||'_'||table_ending;
+    outtab= sname||'.'||outname;
+    rows_where = CASE WHEN length(rows_where) > 2 and not outall THEN ' AND (' || rows_where || ')' ELSE '' END;
+    rows_where = CASE WHEN length(rows_where) > 2 THEN ' WHERE (' || rows_where || ')' ELSE '' END;
+  END;
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',id,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(id)||')' INTO n_pkey;
+       IF n_pkey is NULL then
+          raise notice  'ERROR: id column "%"  not found in %',id,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',the_geom,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(the_geom)||')' INTO n_geom;
+       IF n_geom is NULL then
+          raise notice  'ERROR: the_geom  column "%"  not found in %',the_geom,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+  IF n_pkey=n_geom THEN
+	raise notice  'ERROR: id and the_geom columns have the same name "%" in %',n_pkey,intab;
+        RETURN 'FAIL';
+  END IF;
+
+  BEGIN
+       	raise DEBUG 'Checking the SRID of the geometry "%"', n_geom;
+       	EXECUTE 'SELECT ST_SRID(' || quote_ident(n_geom) || ') as srid '
+          		|| ' FROM ' || _pgr_quote_ident(intab)
+          		|| ' WHERE ' || quote_ident(n_geom)
+          		|| ' IS NOT NULL LIMIT 1' INTO sridinfo;
+       	IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
+        	RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           	RETURN 'FAIL';
+       	END IF;
+       	srid := sridinfo.srid;
+       	raise DEBUG '  -----> SRID found %',srid;
+       	EXCEPTION WHEN OTHERS THEN
+           		RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           		RETURN 'FAIL';
+  END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_pkey,intab;
+      if (_pgr_isColumnIndexed(intab,n_pkey)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding  index "%_%_idx".',n_pkey,intab;
+
+	set client_min_messages  to warning;
+        execute 'create  index '||tname||'_'||n_pkey||'_idx on '||_pgr_quote_ident(intab)||' using btree('||quote_ident(n_pkey)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_geom,intab;
+      if (_pgr_iscolumnindexed(intab,n_geom)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding unique index "%_%_gidx".',intab,n_geom;
+	set client_min_messages  to warning;
+        execute 'CREATE INDEX '
+            || quote_ident(tname || '_' || n_geom || '_gidx' )
+            || ' ON ' || _pgr_quote_ident(intab)
+            || ' USING gist (' || quote_ident(n_geom) || ')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+---------------
+    BEGIN
+       raise DEBUG 'initializing %',outtab;
+       execute 'select * from _pgr_getTableName('||quote_literal(outtab)||',0)' into naming;
+       IF sname=naming.sname  AND outname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(outtab)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(outname)||','||quote_literal(n_geom)||')';
+       ELSE
+	   set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(outtab)||' (id bigserial PRIMARY KEY,old_id integer,sub_id integer,
+								source bigint,target bigint)';
+       END IF;
+       execute 'select geometrytype('||quote_ident(n_geom)||') from  '||_pgr_quote_ident(intab)||' limit 1' into geomtype;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(outname)||','||
+                quote_literal(n_geom)||','|| srid||', '||quote_literal(geomtype)||', 2)';
+       execute 'CREATE INDEX '||quote_ident(outname||'_'||n_geom||'_idx')||' ON '||_pgr_quote_ident(outtab)||'  USING GIST ('||quote_ident(n_geom)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+    END;
+----------------
+
+
+  raise notice 'Processing, please wait .....';
+
+
+    if pgis_ver_old then
+        vst_line_substring    := 'st_line_substring';
+        vst_line_locate_point := 'st_line_locate_point';
+    else
+        vst_line_substring    := 'st_linesubstring';
+        vst_line_locate_point := 'st_linelocatepoint';
+    end if;
+
+--    -- First creates temp table with intersection points
+    p_ret = 'create temp table intergeom on commit drop as (
+        select l1.' || quote_ident(n_pkey) || ' as l1id,
+               l2.' || quote_ident(n_pkey) || ' as l2id,
+	       l1.' || quote_ident(n_geom) || ' as line,
+	       _pgr_startpoint(l2.' || quote_ident(n_geom) || ') as source,
+	       _pgr_endpoint(l2.' || quote_ident(n_geom) || ') as target,
+               st_intersection(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ') as geom
+        from (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l1
+             join (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l2
+             on (st_dwithin(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ', ' || tolerance || '))'||
+        'where l1.' || quote_ident(n_pkey) || ' <> l2.' || quote_ident(n_pkey)||' and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false  )';
+    raise debug '%',p_ret;
+    EXECUTE p_ret;
+
+    -- second temp table with locus (index of intersection point on the line)
+    -- to avoid updating the previous table
+    -- we keep only intersection points occurring onto the line, not at one of its ends
+--    drop table if exists inter_loc;
+
+--HAD TO CHANGE THIS QUERY
+-- p_ret= 'create temp table inter_loc on commit drop as (
+--        select l1id, l2id, ' || vst_line_locate_point || '(line,point) as locus from (
+--        select DISTINCT l1id, l2id, line, (ST_DumpPoints(geom)).geom as point from intergeom) as foo
+--        where ' || vst_line_locate_point || '(line,point)<>0 and ' || vst_line_locate_point || '(line,point)<>1)';
+    p_ret= 'create temp table inter_loc on commit drop as ( select * from (
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,source) as locus from intergeom)
+         union
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,target) as locus from intergeom)) as foo
+        where locus<>0 and locus<>1)';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+
+    -- index on l1id
+    create index inter_loc_id_idx on inter_loc(l1id);
+
+    -- Then computes the intersection on the lines subset, which is much smaller than full set
+    -- as there are very few intersection points
+
+--- outab needs to be formally created with id, old_id, subid,the_geom, source,target
+---  so it can be inmediatly be used with createTopology
+
+--   EXECUTE 'drop table if exists ' || _pgr_quote_ident(outtab);
+--   EXECUTE 'create table ' || _pgr_quote_ident(outtab) || ' as
+     P_RET = 'insert into '||_pgr_quote_ident(outtab)||' (old_id,sub_id,'||quote_ident(n_geom)||') (  with cut_locations as (
+           select l1id as lid, locus
+           from inter_loc
+           -- then generates start and end locus for each line that have to be cut buy a location point
+           UNION ALL
+           select i.l1id  as lid, 0 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           UNION ALL
+           select i.l1id  as lid, 1 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           order by lid, locus
+       ),
+       -- we generate a row_number index column for each input line
+       -- to be able to self-join the table to cut a line between two consecutive locations
+       loc_with_idx as (
+           select lid, locus, row_number() over (partition by lid order by locus) as idx
+           from cut_locations
+       )
+       -- finally, each original line is cut with consecutive locations using linear referencing functions
+       select l.' || quote_ident(n_pkey) || ', loc1.idx as sub_id, ' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus) as ' || quote_ident(n_geom) || '
+       from loc_with_idx loc1 join loc_with_idx loc2 using (lid) join ' || _pgr_quote_ident(intab) || ' l on (l.' || quote_ident(n_pkey) || ' = loc1.lid)
+       where loc2.idx = loc1.idx+1
+           -- keeps only linestring geometries
+           and geometryType(' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus)) = ''LINESTRING'') ';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+	GET DIAGNOSTICS splits = ROW_COUNT;
+        execute 'with diff as (select distinct old_id from '||_pgr_quote_ident(outtab)||' )
+                 select count(*) from diff' into touched;
+	-- here, it misses all original line that did not need to be cut by intersection points: these lines
+	-- are already clean
+	-- inserts them in the final result: all lines which gid is not in the res table.
+	EXECUTE 'insert into ' || _pgr_quote_ident(outtab) || ' (old_id , sub_id, ' || quote_ident(n_geom) || ')
+                ( with used as (select distinct old_id from '|| _pgr_quote_ident(outtab)||')
+		select ' ||  quote_ident(n_pkey) || ', 1 as sub_id, ' ||  quote_ident(n_geom) ||
+		' from '|| _pgr_quote_ident(intab) ||' where  '||quote_ident(n_pkey)||' not in (select * from used)' || rows_where || ')';
+	GET DIAGNOSTICS untouched = ROW_COUNT;
+
+	raise NOTICE '  Split Edges: %', touched;
+	raise NOTICE ' Untouched Edges: %', untouched;
+	raise NOTICE '     Total original Edges: %', touched+untouched;
+        RAISE NOTICE ' Edges generated: %', splits;
+	raise NOTICE ' Untouched Edges: %',untouched;
+	raise NOTICE '       Total New segments: %', splits+untouched;
+        RAISE NOTICE ' New Table: %', outtab;
+        RAISE NOTICE '----------------------------------';
+
+    drop table  if exists intergeom;
+    drop table if exists inter_loc;
+    RETURN 'OK';
+END;
+$BODY$
+    LANGUAGE 'plpgsql' VOLATILE STRICT COST 100;
+
+
+COMMENT ON FUNCTION pgr_nodeNetwork(text, double precision, text, text, text, text, boolean )
+ IS  'edge_table, tolerance, id:=''id'', the_geom:=''the_geom'', table_ending:=''noded'' ';
+
+
+CREATE OR REPLACE FUNCTION pgr_labelGraph(
+                edge_table text,
+                id text default 'id',
+                source text default 'source',
+                target text default 'target',
+                subgraph text default 'subgraph',
+                rows_where text default 'true'
+        )
+        RETURNS character varying AS
+$BODY$
+
+DECLARE
+        naming record;
+        schema_name text;
+        table_name text;
+        garbage text;
+        incre integer;
+        table_schema_name text;
+        query text;
+        ecnt integer;
+        sql1 text;
+        rec1 record;
+        sql2 text;
+        rec2 record;
+        rec_count record;
+        rec_single record;
+        graph_id integer;
+        gids int [];
+
+BEGIN
+        raise notice 'Processing:';
+        raise notice 'pgr_brokenGraph(''%'',''%'',''%'',''%'',''%'',''%'')', edge_table,id,source,target,subgraph,rows_where;
+        raise notice 'Performing initial checks, please hold on ...';
+
+        Raise Notice 'Starting - Checking table ...';
+        BEGIN
+                raise debug 'Checking % table existance', edge_table;
+                execute 'select * from pgr_getTableName('|| quote_literal(edge_table) ||')' into naming;
+                schema_name = naming.sname;
+                table_name = naming.tname;
+                table_schema_name = schema_name||'.'||table_name;
+                IF schema_name is null then
+                        raise notice 'no schema';
+                        return 'FAIL';
+                else
+                        if table_name is null then
+                                raise notice 'no table';
+                                return 'FAIL';
+                        end if;
+                end if;
+        END;
+        Raise Notice 'Ending - Checking table';
+
+        Raise Notice 'Starting - Checking columns';
+        BEGIN
+                raise debug 'Checking exitance of necessary columns inside % table', edge_table;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(id) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no id column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(source) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no source column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(target) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no target column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(subgraph) ||')' into naming;
+                if naming.pgr_iscolumnintable = 't' then
+                        raise notice 'subgraph column already in the table';
+                        return 'FAIL';
+                end if;
+        END;
+        Raise Notice 'Ending - Checking columns';
+
+        Raise Notice 'Starting - Checking rows_where condition';
+        BEGIN
+                raise debug 'Checking rows_where condition';
+                query='select count(*) from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where;
+                execute query into ecnt;
+                raise debug '-->Rows where condition: OK';
+                raise debug '    --> OK';
+                EXCEPTION WHEN OTHERS THEN
+                        raise notice 'Got %', SQLERRM;
+                        Raise notice 'ERROR: Condition is not correct. Please execute the following query to test your condition';
+                        Raise notice '%', query;
+                        return 'FAIL';
+        END;
+        Raise Notice 'Ending - Checking rows_where condition';
+
+        garbage := 'garbage001';
+        incre := 1;
+        Raise Notice 'Starting - Checking temporary column';
+        Begin
+                raise debug 'Checking Checking temporary columns existance';
+
+                While True
+                        Loop
+                                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(garbage) ||')' into naming;
+                                If naming.pgr_iscolumnintable = 't' THEN
+                                        incre := incre + 1;
+                                        garbage := 'garbage00'||incre||'';
+                                ELSE
+                                        EXIT;
+                                END IF;
+                        End Loop;
+        End;
+        Raise Notice 'Ending - Checking temporary column';
+
+        Raise Notice 'Starting - Calculating subgraphs';
+        BEGIN
+                --------- Add necessary columns ----------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(subgraph) || ' INTEGER DEFAULT -1';
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(garbage) || ' INTEGER DEFAULT 0';
+                graph_id := 1;
+
+                EXECUTE 'select count(*) as count from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where ||'' into rec_count;
+                if rec_count.count = 0 then
+                        RETURN 'rows_where condition generated 0 rows';
+                end if;
+
+                WHILE TRUE
+                        LOOP
+                                ---------- Assign the very first -1 row graph_id ----------
+                                EXECUTE 'SELECT ' || pgr_quote_ident(id) || ' AS gid FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1 LIMIT 1' INTO rec_single;
+                                EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec_single.gid || '';
+
+                                --------- Search other rows with that particular graph_id -----------
+                                WHILE TRUE
+                                        LOOP
+                                                EXECUTE 'SELECT COUNT(*) FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0' into rec_count;
+                                                ----------- The following if else will check those rows which already have entertained ------------
+                                                IF (rec_count.count > 0) THEN
+                                                        sql1 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0';
+                                                        FOR rec1 IN EXECUTE sql1
+                                                                LOOP
+                                                                        sql2 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| pgr_quote_ident(source) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(source) ||' = '|| rec1.target ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.target ||'';
+                                                                        FOR rec2 IN EXECUTE sql2
+                                                                                LOOP
+                                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec2.gid || '';
+                                                                                END LOOP;
+                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(garbage) || ' = 1 WHERE ' || pgr_quote_ident(id) || ' = ' || rec1.gid || '';
+                                                                END LOOP;
+                                                ELSE
+                                                        EXIT;
+                                                END IF;
+                                        END LOOP;
+
+                                ------ Following is to exit the while loop. 0 means no more -1 id.
+                                EXECUTE 'SELECT COUNT(*) AS count FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1' INTO rec_count;
+                                If (rec_count.count = 0) THEN
+                                        EXIT;
+                                ELSE
+                                        graph_id := graph_id + 1;
+                                END IF;
+                        END LOOP;
+
+                ----------- Drop garbage column ------------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' DROP COLUMN ' || pgr_quote_ident(garbage) ||'';
+                Raise Notice 'Successfully complicated calculating subgraphs';
+        END;
+        Raise Notice 'Ending - Calculating subgraphs';
+
+        RETURN 'OK';
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCostMatrix(
+    edges_sql TEXT,
+    points_sql TEXT,
+    pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_pid, a.end_pid, a.agg_cost
+        FROM _pgr_withPoints($1, $2, $3, $3, $4,  $5, TRUE, TRUE) AS a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+--  DIJKSTRA DMatrix
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCostMatrix(edges_sql TEXT, vids ANYARRAY, directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2, $2, $3, true) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+
+--  BIDIRECTIONAL DIJKSTRA Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCostMatrix(edges_sql TEXT, vids ANYARRAY, directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_astarCostMatrix(
+    edges_sql TEXT, -- XY edges sql
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2, $2, $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+--  BIDIRECTIONAL ASTAR Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdAstarCostMatrix(
+    edges_sql TEXT,
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_bdAstarCostMatrix(TEXT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCostMatrix';
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_getTableName(IN tab text,OUT sname text,OUT tname text)
+RETURNS RECORD AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getTableName: This function will no longer be soported';
+    select * from _pgr_getTableName(tab, 0, 'pgr_getTableName') into sname,tname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_getColumnName(tab text, col text)
+RETURNS text AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getColumnName: This function will no longer be soported';
+    return _pgr_getColumnName(tab,col, 0, 'pgr_getColumnName');
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    select * from _pgr_getColumnName(tab,col,0, 'pgr_isColumnInTable') into cname;
+    return  cname IS not NULL;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnIndexed(tab text, col text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnIndexed: This function will no longer be soported';
+    return  _pgr_isColumnIndexed(tab,col);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+create or replace function pgr_quote_ident(idname text)
+returns text as
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    return  _pgr_quote_ident(idname);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_versionless(v1 text, v2 text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_versionless: This function will no longer be soported';
+    return  _pgr_versionless(v1,v2);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+create or replace function pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_startPoint: This function will no longer be soported';
+    return  _pgr_startPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_endPoint: This function will no longer be soported';
+    return  _pgr_endPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_apspJohnson(edges_sql text)
+    RETURNS SETOF pgr_costResult AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function: Use pgr_johnson instead';
+      has_reverse =_pgr_parameter_check('johnson', edges_sql, false);
+      sql = edges_sql;
+      IF (has_reverse) THEN
+           RAISE NOTICE 'reverse_cost column found, removing.';
+           sql = 'SELECT source, target, cost FROM (' || edges_sql || ') a';
+      END IF;
+
+      RETURN query
+         SELECT (row_number() over () - 1)::integer as seq, start_vid::integer AS id1, end_vid::integer AS id2, agg_cost AS cost
+         FROM  pgr_johnson(sql, TRUE);
+  END
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_apspWarshall(edges_sql text, directed boolean, has_rcost boolean)
+    RETURNS SETOF pgr_costResult AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function: Use pgr_floydWarshall instead';
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+      sql := edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_reverse) THEN
+           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+         ELSE raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+         END IF;
+      END IF;
+
+      RETURN query
+         SELECT (row_number() over () -1)::integer as seq, start_vid::integer AS id1, end_vid::integer AS id2, agg_cost AS cost
+         FROM  pgr_floydWarshall(sql, directed);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_astar(edges_sql TEXT, source_id INTEGER, target_id INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated signature pgr_astar(text, integer, integer, boolean, boolean)';
+    has_reverse =_pgr_parameter_check('astar', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost, x1,y1, x2, y2 FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+    FROM pgr_astar(sql, ARRAY[$2], ARRAY[$3], directed);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    sql TEXT,
+    source_vid INTEGER,
+    target_vid INTEGER,
+    directed BOOLEAN,
+    has_reverse_cost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdAstar';
+    has_reverse =_pgr_parameter_check('astar', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdAstar(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(edges_sql TEXT, start_vid INTEGER, end_vid INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdDijkstra';
+    has_reverse =_pgr_parameter_check('dijkstra', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdDijkstra(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstraPath(
+    sql text,
+    source INTEGER,
+    targets INTEGER ARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+    RETURNS SETOF pgr_costResult3 AS
+    $BODY$
+    DECLARE
+    has_reverse BOOLEAN;
+    new_sql TEXT;
+    result pgr_costResult3;
+    tmp pgr_costResult3;
+    sseq INTEGER;
+    i INTEGER;
+    BEGIN
+        RAISE NOTICE 'Deprecated function: Use pgr_dijkstra instead.';
+        has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+        new_sql = sql;
+        IF (array_ndims(targets) != 1) THEN
+            raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+
+        IF (has_reverse != has_rcost) THEN
+            IF (has_reverse) THEN
+                new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+            ELSE
+                raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+                USING ERRCODE = 'XX000';
+            END IF;
+        END IF;
+        SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+        sseq = 0; i = 1;
+        FOR result IN
+            SELECT seq, a.end_vid::INTEGER AS id1, a.node::INTEGER AS i2, a.edge::INTEGER AS id3, cost
+            FROM pgr_dijkstra(new_sql, source, targets, directed) a ORDER BY a.end_vid, seq LOOP
+            WHILE (result.id1 != targets[i]) LOOP
+                tmp.seq = sseq;
+                tmp.id1 = targets[i];
+                IF (targets[i] = source) THEN
+                    tmp.id2 = source;
+                    tmp.cost =0;
+                ELSE
+                    tmp.id2 = 0;
+                    tmp.cost = -1;
+                END IF;
+                tmp.id3 = -1;
+                RETURN next tmp;
+                i = i + 1;
+                sseq = sseq + 1;
+            END LOOP;
+        IF (result.id1 = targets[i] AND result.id3 != -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+        IF (result.id1 = targets[i] AND result.id3 = -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.id2 = source;
+            tmp.cost = 0;
+        ELSE
+            tmp.id2 = 0;
+            tmp.cost = -1;
+        END IF;
+        tmp.id3 = -1;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstracost(
+    sql text,
+    source INTEGER,
+    targets INTEGER array,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+result pgr_costResult;
+tmp pgr_costResult;
+sseq INTEGER;
+i INTEGER;
+BEGIN
+    RAISE NOTICE 'Deprecated function. Use pgr_dijkstraCost instead.';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    new_sql = sql;
+    IF (array_ndims(targets) != 1) THEN
+        raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+        USING ERRCODE = 'XX000';
+    END IF;
+
+
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+    sseq = 0; i = 1;
+    FOR result IN
+        SELECT ((row_number() over()) -1)::INTEGER, a.start_vid::INTEGER, a.end_vid::INTEGER, agg_cost
+        FROM pgr_dijkstraCost(new_sql, source, targets, directed) a ORDER BY end_vid LOOP
+        WHILE (result.id2 != targets[i]) LOOP
+            tmp.seq = sseq;
+            tmp.id1 = source;
+            tmp.id2 = targets[i];
+            IF (targets[i] = source) THEN
+                tmp.cost = 0;
+            ELSE
+                tmp.cost = -1;
+            END IF;
+            RETURN next tmp;
+            i = i + 1;
+            sseq = sseq + 1;
+        END LOOP;
+        IF (result.id2 = targets[i]) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = source;
+        tmp.id2 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.cost = 0;
+        ELSE
+            tmp.cost = -1;
+        END IF;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+create or replace function pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    returns integer as
+$body$
+
+declare
+    rr record;
+    pct float;
+    debuglevel text;
+
+begin
+    -- find the closest edge within tol distance
+    execute 'select * from ' || _pgr_quote_ident(edges) ||
+            ' where st_dwithin(''' || pnt::text ||
+            '''::geometry, the_geom, ' || tol || ') order by st_distance(''' || pnt::text ||
+            '''::geometry, the_geom) asc limit 1' into rr;
+
+    if rr.the_geom is not null then
+        -- deal with MULTILINESTRINGS
+        if geometrytype(rr.the_geom)='MULTILINESTRING' THEN
+            rr.the_geom := ST_GeometryN(rr.the_geom, 1);
+        end if;
+
+        -- project the point onto the linestring
+        execute 'show client_min_messages' into debuglevel;
+        SET client_min_messages='ERROR';
+        pct := st_line_locate_point(rr.the_geom, pnt);
+        execute 'set client_min_messages  to '|| debuglevel;
+
+        -- return the node we are closer to
+        if pct < 0.5 then
+            return rr.source;
+        else
+            return rr.target;
+        end if;
+    else
+        -- return a failure to find an edge within tol distance
+        return -1;
+    end if;
+end;
+$body$
+  language plpgsql volatile
+  cost 5;
+
+
+----------------------------------------------------------------------------
+
+create or replace function pgr_flipedges(ga geometry[])
+    returns geometry[] as
+$body$
+
+declare
+    nn integer;
+    i integer;
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_flipEdges';
+    -- get the count of edges, and return if only one edge
+    nn := array_length(ga, 1);
+    if nn=1 then
+        return ga;
+    end if;
+
+    -- determine if first needs to be flipped
+    g := _pgr_startpoint(ga[1]);
+
+    -- if the start of the first is connected to the second then it needs to be flipped
+    if _pgr_startpoint(ga[2])=g or _pgr_endpoint(ga[2])=g then
+        ga[1] := st_reverse(ga[1]);
+    end if;
+    g := _pgr_endpoint(ga[1]);
+
+    -- now if  the end of the last edge matchs the end of the current edge we need to flip it
+    for i in 2 .. nn loop
+        if _pgr_endpoint(ga[i])=g then
+            ga[i] := st_reverse(ga[i]);
+        end if;
+        -- save the end of this edge into the last end for the next cycle
+        g := _pgr_endpoint(ga[i]);
+    end loop;
+
+    return ga;
+end;
+$body$
+    language plpgsql immutable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_texttopoints(pnts text, srid integer DEFAULT(4326))
+    returns geometry[] as
+$body$
+
+declare
+    a text[];
+    t text;
+    p geometry;
+    g geometry[];
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_textToPoints';
+    -- convert commas to space and split on ';'
+    a := string_to_array(replace(pnts, ',', ' '), ';');
+    -- convert each 'x y' into a point geometry and concattenate into a new array
+    for t in select unnest(a) loop
+        p := st_pointfromtext('POINT(' || t || ')', srid);
+        g := g || p;
+    end loop;
+
+    return g;
+end;
+$body$
+    language plpgsql immutable;
+
+-----------------------------------------------------------------------
+
+create or replace function pgr_pointstovids(pnts geometry[], edges text, tol float8 DEFAULT(0.01))
+    returns integer[] as
+$body$
+
+declare
+    v integer[];
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_pointsToVids';
+    -- cycle through each point and locate the nearest edge and vertex on that edge
+    for g in select unnest(pnts) loop
+        v := v || pgr_pointtoedgenode(edges, g, tol);
+    end loop;
+
+    return v;
+end;
+$body$
+    language plpgsql stable;
+
+
+create or replace function pgr_pointstodmatrix(pnts geometry[], mode integer default (0), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+
+declare
+    r record;
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_pointsToDMatrix';
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    -- create an id for each point in the array and unnest it into a table nodes in the with clause
+    for r in with nodes as (select row_number() over()::integer as id, p from (select unnest(pnts) as p) as foo)
+        -- compute a row of distances
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j,
+                case when mode=0
+                    then st_distance(a.p, b.p)
+                    else st_distance_sphere(a.p, b.p)
+                end as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i loop
+
+        -- you must concat an array[array[]] to make dmatrix[][]
+        -- concat the row of distances to the dmatrix
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+end;
+$body$
+    language plpgsql stable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_vidstodmatrix(IN vids integer[], IN pnts geometry[], IN edges text, tol float8 DEFAULT(0.1), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+
+declare
+    i integer;
+    j integer;
+    nn integer;
+    rr record;
+    bbox geometry;
+    t float8[];
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    -- check if the input arrays has any -1 values, maybe this whould be a raise exception
+    if vids @> ARRAY[-1] then
+    raise notice 'Some vids are undefined (-1)!';
+    dmatrix := null;
+    ids := null;
+    return;
+    end if;
+
+    ids := vids;
+
+    -- get the count of nodes
+    nn := array_length(vids,1);
+
+    -- zero out a dummy row
+    for i in 1 .. nn loop
+        t := t || 0.0::float8;
+    end loop;
+
+    -- using the dummy row, zero out the whole matrix
+    for i in 1 .. nn loop
+    dmatrix := dmatrix || ARRAY[t];
+    end loop;
+
+    for i in 1 .. nn-1 loop
+        j := i;
+        -- compute the bbox for the point needed for this row
+        select st_expand(st_collect(pnts[id]), tol) into bbox
+          from (select generate_series as id from generate_series(i, nn)) as foo;
+
+        -- compute kdijkstra() for this row
+        for rr in execute 'select * from pgr_dijkstracost($1, $2, $3, false)'
+                  using 'select id, source, target, cost from ' || edges ||
+                        ' where the_geom && ''' || bbox::text || '''::geometry'::text, vids[i], vids[i+1:nn] loop
+
+            -- TODO need to check that all node were reachable from source
+            -- I think unreachable paths between nodes returns cost=-1.0
+
+            -- populate the matrix with the cost values, remember this is symmetric
+            j := j + 1;
+            -- raise notice 'cost(%,%)=%', i, j, rr.agg_cost;
+            dmatrix[i][j] := rr.agg_cost;
+            dmatrix[j][i] := rr.agg_cost;
+        end loop;
+    end loop;
+
+end;
+$body$
+    language plpgsql stable cost 200;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_vidsToDMatrix(sql TEXT, vids  INTEGER[], dir BOOLEAN, has_rcost BOOLEAN, want_symmetric BOOLEAN)
+RETURNS float8[] AS
+$BODY$
+DECLARE
+directed BOOLEAN;
+has_reverse BOOLEAN;
+edges_sql TEXT;
+dmatrix_row float8[];
+dmatrix float8[];
+cell RECORD;
+unique_vids INTEGER[];
+total BIGINT;
+from_v BIGINT;
+to_v BIGINT;
+BEGIN
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql = sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    unique_vids :=  ARRAY(SELECT DISTINCT UNNEST(vids) ORDER BY 1);
+
+    IF want_symmetric THEN
+        directed = false;
+    ELSE
+        directed = dir;
+    END IF;
+
+    total := array_length(unique_vids, 1);
+
+    -- initializing dmatrix
+    FOR i in 1 .. total LOOP
+        dmatrix_row := dmatrix_row || '+Infinity'::float8;
+    END LOOP;
+    FOR i in 1 .. total LOOP
+    dmatrix := dmatrix || ARRAY[dmatrix_row];
+    dmatrix[i][i] = 0;
+    END LOOP;
+
+    CREATE TEMP TABLE __x___y____temp AS
+        WITH result AS
+            (SELECT unnest(unique_vids) AS vid)
+        SELECT row_number() OVER() AS idx, vid FROM result;
+
+    FOR cell IN SELECT * FROM pgr_dijkstraCostMatrix(sql, unique_vids, directed) LOOP
+        SELECT idx INTO from_v FROM __x___y____temp WHERE vid =  cell.start_vid;
+        SELECT idx INTO to_v FROM __x___y____temp WHERE vid =  cell.end_vid;
+
+        dmatrix[from_v][to_v] = cell.agg_cost;
+        dmatrix[to_v][from_v] = cell.agg_cost;
+    END LOOP;
+
+    DROP TABLE IF EXISTS __x___y____temp;
+    RETURN dmatrix;
+
+    EXCEPTION WHEN others THEN
+       DROP TABLE IF EXISTS __x___y____temp;
+       raise exception '% %', SQLERRM, SQLSTATE;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100;
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated function';
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_dijkstra(sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_dijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN) IS 'pgr_dijkstra(Deprecated signature)';
+
+
+
+
+
+-- OLD SIGNATURE
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(edges_sql text, source BIGINT, distance FLOAT, directed BOOLEAN, has_rcost BOOLEAN)
+  RETURNS SETOF pgr_costresult AS
+  $BODY$
+  DECLARE
+  has_reverse BOOLEAN;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function';
+
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, FALSE);
+
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_reverse) THEN
+             -- the user says it doesn't have reverse cost but its false
+             -- removing from query
+             RAISE NOTICE 'Contradiction found: has_rcost set to false but reverse_cost column found';
+             sql = 'SELECT id, source, target, cost, -1 as reverse_cost FROM (' || edges_sql || ') __q ';
+         ELSE
+             -- the user says it has reverse cost but its false
+             -- can't do anything
+             RAISE EXCEPTION 'has_rcost set to true but reverse_cost not found';
+         END IF;
+      END IF;
+
+      RETURN query SELECT seq - 1 AS seq, node::integer AS id1, edge::integer AS id2, agg_cost AS cost
+                FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maximumcardinalitymatching(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
+
+
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+--INTERNAL FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+
+------------------------
+-- deprecated signatures
+-----------------------
+
+COMMENT ON FUNCTION pgr_astar(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_astar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdAstar( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdAstar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdDijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdDijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_dijkstra(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_dijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_drivingDistance(text,  BIGINT,  FLOAT8,  BOOLEAN,  BOOLEAN)
+    IS 'pgr_drivingDistance(Deprecated signature)';
+
+------------------------
+-- Renamed /deprecated
+-----------------------
+COMMENT ON FUNCTION pgr_apspJohnson(TEXT)
+    IS 'pgr_apspJohnson(Renamed function) use pgr_Johnson instead';
+
+COMMENT ON FUNCTION pgr_apspWarshall(text, boolean, boolean)
+    IS 'pgr_apspWarshall(Renamed function) use pgr_floydWarshall instead';
+
+COMMENT ON FUNCTION pgr_kdijkstraPath( text, INTEGER, INTEGER ARRAY, BOOLEAN, BOOLEAN)
+    IS 'pgr_kdijkstraPath(Renamed function) use pgr_dijkstra instead';
+
+COMMENT ON FUNCTION pgr_kdijkstracost( text, INTEGER, INTEGER array, BOOLEAN, BOOLEAN)
+    IS 'pgr_kDijkstraCost(Renamed function) use pgr_dijkstraCost instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+
+
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+
+
+COMMENT ON FUNCTION pgr_gsoc_vrppdtw( text, INTEGER, INTEGER)
+    IS 'pgr_gsoc_vrppdtw(Renamed function) use pgr_pickDeliverEuclidean instead';
+
+------------------------
+-- Deprecated functions
+-----------------------
+
+COMMENT ON FUNCTION pgr_flipedges(geometry[])
+    IS 'pgr_flipedges(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_texttopoints(text,  integer)
+    IS 'pgr_texttopoints(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstovids(pnts geometry[], edges text, tol float8)
+    IS 'pgr_pointstovids(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    IS 'pgr_pointtoedgenode(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstodmatrix(geometry[], integer)
+    IS 'pgr_pointstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidstodmatrix( integer[],  geometry[],  text, float8)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidsToDMatrix(TEXT,  INTEGER[], BOOLEAN, BOOLEAN, BOOLEAN)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+
+
+
+COMMENT ON FUNCTION pgr_getTableName(IN tab text)
+    IS 'pgr_getTableName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_getColumnName(tab text, col text)
+    IS 'pgr_getColumnName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnInTable(tab text, col text)
+    IS 'pgr_isColumnInTable(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnIndexed(tab text, col text)
+    IS 'pgr_isColumnIndexed(Deprecated function)';
+
+
+COMMENT ON FUNCTION pgr_quote_ident(idname text)
+    IS 'pgr_quote_ident(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_versionless(v1 text, v2 text)
+    IS 'pgr_versionless(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_startPoint(g geometry)
+    IS 'pgr_startPoint(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_endPoint(g geometry)
+    IS 'pgr_endPoint(Deprecated function)';
+
+
diff --git a/tools/sql-update-scripts/pgrouting--2.1.0--2.5.0.sql b/tools/sql-update-scripts/pgrouting--2.1.0--2.5.0.sql
new file mode 100644
index 0000000..d486786
--- /dev/null
+++ b/tools/sql-update-scripts/pgrouting--2.1.0--2.5.0.sql
@@ -0,0 +1,6673 @@
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-- pgRouting extension upgrade from 2.1.0 to 2.5.0
+-- generated by tools/build-extension-update-files
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+\echo Use "ALTER extension pgrouting update to '2.5.0'" to load this file. \quit
+
+
+-------------------------------------
+-- remove functions no longer in the 2.5.0 extension
+-------------------------------------
+
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,anyarray,anyarray,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,anyarray,anyarray,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,anyarray,bigint,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,anyarray,bigint,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,bigint,anyarray,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,bigint,anyarray,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,bigint,bigint,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,bigint,bigint,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_drivingdistance(text,anyarray,double precision,boolean,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_drivingdistance(text,anyarray,double precision,boolean,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_drivingdistance(text,bigint,double precision,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_drivingdistance(text,bigint,double precision,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_dijkstra(text,bigint,bigint,boolean,boolean);
+DROP FUNCTION IF EXISTS pgr_dijkstra(text,bigint,bigint,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_drivingdistance(text,bigint,double precision);
+DROP FUNCTION IF EXISTS pgr_drivingdistance(text,bigint,double precision);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_makedistancematrix(text);
+DROP FUNCTION IF EXISTS pgr_makedistancematrix(text);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_nodenetwork(text,double precision,text,text,text);
+DROP FUNCTION IF EXISTS pgr_nodenetwork(text,double precision,text,text,text);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_trsp(text,integer[],boolean,boolean,text);
+DROP FUNCTION IF EXISTS pgr_trsp(text,integer[],boolean,boolean,text);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_trsp(text,integer[],double precision[],boolean,boolean,text);
+DROP FUNCTION IF EXISTS pgr_trsp(text,integer[],double precision[],boolean,boolean,text);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_trspviavertices(text,integer[],boolean,boolean,text);
+DROP FUNCTION IF EXISTS pgr_trspviavertices(text,integer[],boolean,boolean,text);
+
+
+------------------------------------------
+--    New functions:  2.1
+-- Signature change:  2.2
+------------------------------------------
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_ksp(text,bigint,bigint,integer,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_ksp(text,bigint,bigint,integer,boolean,boolean);
+
+
+
+
+------------------------------------------
+--    New functions:  2.0
+--       Deprecated:  2.1
+--       Deprecated:  2.1 & 2.2
+------------------------------------------
+-- pgr_ksp
+-- 2.1.0: {      sql, start_vid,   end_vid, k,       has_rcost}
+-- 2.5.0: {edges_sql, start_vid,   end_vid, k,       has_rcost}
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_ksp(text,integer,integer,integer,boolean);
+DROP FUNCTION IF EXISTS pgr_ksp(text,integer,integer,integer,boolean);
+
+
+
+
+------------------------------------------
+--    New functions:  2.0
+-- Signature change:  2.2
+--       Deprecated:  2.2
+------------------------------------------
+-- pgr_apspjohnson
+-- 2.1.0: {      sql}
+-- 2.5.0: {edges_sql}
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_apspjohnson(text);
+DROP FUNCTION IF EXISTS pgr_apspjohnson(text);
+
+
+-- pgr_apspwarshall
+-- 2.1.0: {      sql, directed, has_reverse_cost}
+-- 2.5.0: {edges_sql, directed, has_rcost}
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_apspwarshall(text,boolean,boolean);
+DROP FUNCTION IF EXISTS pgr_apspwarshall(text,boolean,boolean);
+
+
+-- pgr_kdijkstrapath
+-- 2.1.0: {sql,source_vid, target_vid, directed, has_reverse_cost}
+-- 2.5.0: {sql,    source,    targets, directed, has_rcost} 
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_kdijkstrapath(text,integer,integer[],boolean,boolean);
+DROP FUNCTION IF EXISTS pgr_kdijkstrapath(text,integer,integer[],boolean,boolean);
+
+
+-- pgr_kdijkstracost
+-- 2.1.0: {sql,source_vid, target_vid, directed, has_reverse_cost}
+-- 2.5.0: {sql,    source,    targets, directed, has_rcost} 
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_kdijkstracost(text,integer,integer[],boolean,boolean);
+DROP FUNCTION IF EXISTS pgr_kdijkstracost(text,integer,integer[],boolean,boolean);
+
+
+
+
+------------------------------------------
+--    New functions:  2.0
+-- Signature change:  2.2
+------------------------------------------
+-- pgr_version
+-- 2.1.0:  {version,tag,build,hash,branch,boost}
+-- 2.5.0:  {version,tag,hash,branch,boost}
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_version();
+DROP FUNCTION IF EXISTS pgr_version();
+
+
+
+
+------------------------------------------
+--    New functions:  2.0
+-- Signature change:  2.2
+------------------------------------------
+-- pgr_trsp
+-- 2.1.0:  {      sql, source_vid, target_vid, directed, has_reverse_cost, turn_restrict_sql}
+-- 2.5.0:  {edges_sql,  start_vid,    end_vid, directed, has_rcost,        restrictions_sql}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vid","end_vid","directed","has_rcost","restrictions_sql"}'
+WHERE proname = 'pgr_trsp'
+    AND proargnames = '{"sql","source_vid","target_vid","directed","has_reverse_cost","turn_restrict_sql"}';
+
+
+------------------------------------------
+--    New functions:  2.0
+-- Signature (types) change:  2.2
+------------------------------------------
+-- pgr_trspviaedges
+-- 2.1.0:  {sql, eids, pcts, directed, has_reverse_cost,turn_restrict_sql} 
+-- 2.5.0:  {sql, eids, pcts, directed, has_rcost,       turn_restrict_sql}
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_trspviaedges(text,integer[],double precision[],boolean,boolean,text);
+DROP FUNCTION IF EXISTS pgr_trspviaedges(text,integer[],double precision[],boolean,boolean,text);
+
+
+
+
+------------------------------------------
+--    New functions:  2.0
+-- Signature change:  2.4
+--       Deprecated:  2.4
+------------------------------------------
+-- pgr_bddijkstra
+-- 2.1.0: {      sql, source_vid, target_vid, directed, has_reverse_cost}   
+-- 2.5.0: {edges_sql,  start_vid,    end_vid, directed, has_rcost}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vid","end_vid","directed","has_rcost"}'
+WHERE proname = 'pgr_bddijkstra'
+    AND proargnames = '{"sql","source_vid","target_vid","directed","has_reverse_cost"}';
+
+
+------------------------------------------
+--   New function: 2.1
+-- (types) change: 2.3
+------------------------------------------
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_gsoc_vrppdtw(text,integer,integer);
+DROP FUNCTION IF EXISTS pgr_gsoc_vrppdtw(text,integer,integer);
+
+
+
+
+------------------------------------------
+-- New functions on 2.0
+-- Signature change on 2.3
+-- Deprecated on 2.4
+------------------------------------------
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_astar(text,integer,integer,boolean,boolean);
+DROP FUNCTION IF EXISTS pgr_astar(text,integer,integer,boolean,boolean);
+
+
+
+
+------------------------------------------
+--    New functions:  2.1
+-- Signature change:  2.2
+------------------------------------------
+-- pgr_ksp
+-- 2.1.0:  {      sql, start_vid, end_vid, k, directed, heap_paths, seq, path_id, path_seq, node,edge, cost, agg_cost}
+-- 2.5.0:  {edges_sql, start_vid, end_vid, k, directed, heap_paths, seq, path_id, path_seq, node,edge, cost, agg_cost}
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_ksp(text,bigint,bigint,integer,boolean,boolean);
+DROP FUNCTION IF EXISTS pgr_ksp(text,bigint,bigint,integer,boolean,boolean);
+
+
+
+
+------------------------------------------
+--       New functions:  2.0
+--    Signature change:  2.1
+------------------------------------------
+-- 2.1.0: {sql,source,distance,directed,has_rcost}
+-- 2.5.0: {edges_sql,source,distance,directed,has_rcost}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","source","distance","directed","has_rcost"}'
+WHERE proname = 'pgr_drivingdistance'
+    AND proargnames = '{"sql","source","distance","directed","has_rcost"}';
+
+
+------------------------------------------
+--       New functions:  2.1
+--    Signature change:  2.4
+------------------------------------------
+-- 2.1.0: {      sql,start_v,  distance,directed,seq,node,edge,cost,agg_cost}
+-- 2.5.0: {edges_sql,start_vid,distance,directed,seq,node,edge,cost,agg_cost}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vid","distance","directed","seq","node","edge","cost","agg_cost"}'
+WHERE proname = 'pgr_drivingdistance'
+    AND proargnames = '{"sql","start_v","distance","directed","seq","node","edge","cost","agg_cost"}';
+
+
+------------------------------------------
+--       New functions:  2.1
+--    Signature change:  2.4
+------------------------------------------
+-- 2.1.0: {sql,      start_v,   distance,directed,equicost,seq,from_v,node,edge,cost,agg_cost}
+-- 2.5.0: {edges_sql,start_vids,distance,directed,equicost,seq,from_v,node,edge,cost,agg_cost}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vids","distance","directed","equicost","seq","from_v","node","edge","cost","agg_cost"}'
+WHERE proname = 'pgr_drivingdistance'
+    AND proargnames = '{"sql","start_v","distance","directed","equicost","seq","from_v","node","edge","cost","agg_cost"}';
+
+
+
+
+
+
+
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+--- pgRouting provides geospatial routing functionality.
+--- http://pgrouting.org
+--- copyright
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+---
+--- This is free software; you can redistribute and/or modify it:
+--- the terms of the GNU General Public Licence. See the COPYING file.
+--- the terms of the MIT-X Licence. See the COPYING file.
+---
+--- The following functions have MIT-X licence:
+---     pgr_version()
+---     pgr_tsp(matrix float8[][], startpt integer, endpt integer DEFAULT -1, OUT seq integer, OUT id integer)
+---     _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+---     pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
+---
+---
+--- All other functions are under GNU General Public Licence.
+---
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+--
+-- WARNING: Any change in this file must be evaluated for compatibility.
+--          Changes cleanly handled by postgis_upgrade.sql are fine,
+--          other changes will require a bump in Major version.
+--          Currently only function replaceble by CREATE OR REPLACE
+--          are cleanly handled.
+--
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+
+--  pgRouting 2.0 types
+
+
+
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_version()
+RETURNS TABLE(
+        "version" varchar,
+        tag varchar,
+        hash varchar,
+        branch varchar,
+        boost varchar
+    ) AS
+$BODY$
+    SELECT '2.5.0'::varchar AS version,
+        'v2.5.0'::varchar AS tag,
+        ''::varchar AS hash,
+        ''::varchar AS branch,
+        '1.54.0'::varchar AS boost;
+$BODY$
+LANGUAGE sql IMMUTABLE;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getTableName(IN tab text, IN reportErrs int default 0, IN fnName text default '_pgr_getTableName', OUT sname text,OUT tname text)
+  RETURNS RECORD AS
+$$
+DECLARE
+        naming record;
+        i integer;
+        query text;
+        sn text; -- schema name
+        tn text; -- table name
+        ttype text; --table type for future use
+        err boolean;
+        debuglevel text;
+        var_types text[] = ARRAY['BASE TABLE', 'VIEW'];
+BEGIN
+
+    execute 'show client_min_messages' into debuglevel;
+
+
+    perform _pgr_msg( 0, fnName, 'Checking table ' || tab || ' exists');
+    --RAISE DEBUG 'Checking % exists',tab;
+
+    i := strpos(tab,'.');
+    IF (i <> 0) THEN
+        sn := split_part(tab, '.',1);
+        tn := split_part(tab, '.',2);
+    ELSE
+        sn := current_schema;
+        tn := tab;
+    END IF;
+
+
+   SELECT schema_name INTO sname
+   FROM information_schema.schemata WHERE schema_name = sn;
+
+    IF sname IS NOT NULL THEN -- found schema (as is)
+       SELECT table_name, table_type INTO tname, ttype
+       FROM information_schema.tables
+       WHERE
+                table_type = ANY(var_types) and
+                table_schema = sname and
+                table_name = tn ;
+        IF tname is NULL THEN
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  = ANY(var_types) and
+                table_schema = sname and
+                table_name = lower(tn) ORDER BY table_name;
+        END IF;
+    END IF;
+    IF sname is NULL or tname is NULL THEN --schema not found or table not found
+        SELECT schema_name INTO sname
+        FROM information_schema.schemata
+        WHERE schema_name = lower(sn) ;
+
+        IF sname IS NOT NULL THEN -- found schema (with lower caps)
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  =  ANY(var_types) and
+                table_schema = sname and
+                table_name= tn ;
+
+           IF tname IS NULL THEN
+                SELECT table_name, table_type INTO tname, ttype
+                FROM information_schema.tables
+                WHERE
+                    table_type  =  ANY(var_types) and
+                    table_schema = sname and
+                    table_name= lower(tn) ;
+           END IF;
+        END IF;
+    END IF;
+   err = (sname IS NULL OR tname IS NULL);
+   perform _pgr_onError(err, reportErrs, fnName, 'Table ' || tab ||' not found',' Check your table name', 'Table '|| tab || ' found');
+
+END;
+$$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(sname text, tname text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(col) into cname;
+
+    IF cname is null  THEN
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(lower(col))  into cname;
+    END if;
+
+    err = cname is null;
+
+    perform _pgr_onError(err, reportErrs, fnName,  'Column '|| col ||' not found', ' Check your column name','Column '|| col || ' found');
+    RETURN cname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(tab text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+
+    select * into cname from _pgr_getColumnName(sname,tname,col,reportErrs, fnName);
+    RETURN cname;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    select * from _pgr_getColumnName(tab,col,0, '_pgr_isColumnInTable') into cname;
+    return cname is not null;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(sname text, tname text, cname text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    pkey text;
+BEGIN
+    SELECT
+          pg_attribute.attname into pkey
+         --  format_type(pg_attribute.atttypid, pg_attribute.atttypmod)
+          FROM pg_index, pg_class, pg_attribute
+          WHERE
+                  pg_class.oid = _pgr_quote_ident(sname||'.'||tname)::regclass AND
+                  indrelid = pg_class.oid AND
+                  pg_attribute.attrelid = pg_class.oid AND
+                  pg_attribute.attnum = any(pg_index.indkey)
+                  AND indisprimary;
+
+    IF pkey=cname then
+          RETURN TRUE;
+    END IF;
+
+    SELECT a.index_name,
+           b.attname,
+           b.attnum,
+           a.indisunique,
+           a.indisprimary
+      INTO rec
+      FROM ( SELECT a.indrelid,
+                    a.indisunique,
+                    a.indisprimary,
+                    c.relname index_name,
+                    unnest(a.indkey) index_num
+               FROM pg_index a,
+                    pg_class b,
+                    pg_class c,
+                    pg_namespace d
+              WHERE b.relname=tname
+                AND b.relnamespace=d.oid
+                AND d.nspname=sname
+                AND b.oid=a.indrelid
+                AND a.indexrelid=c.oid
+           ) a,
+           pg_attribute b
+     WHERE a.indrelid = b.attrelid
+       AND a.index_num = b.attnum
+       AND b.attname = cname
+  ORDER BY a.index_name,
+           a.index_num;
+
+  RETURN FOUND;
+  EXCEPTION WHEN OTHERS THEN
+    perform _pgr_onError( true, reportErrs, fnName,
+    'Error when checking for the postgres system attributes', SQLERR);
+    RETURN FALSE;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(tab text, col text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    sname text;
+    tname text;
+    cname text;
+    pkey text;
+    value boolean;
+BEGIN
+    SELECT * into naming FROM _pgr_getTableName(tab, 0, fnName);
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    SELECT * into cname from _pgr_getColumnName(sname, tname, col, 0, fnName) ;
+    IF cname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    select * into value  from _pgr_isColumnIndexed(sname, tname, cname, reportErrs, fnName);
+    return value;
+END
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+create or replace function _pgr_quote_ident(idname text)
+    returns text as
+$body$
+declare
+    t text[];
+    pgver text;
+
+begin
+    pgver := regexp_replace(version(), E'^PostgreSQL ([^ ]+)[ ,].*$', E'\\1');
+
+    if _pgr_versionless(pgver, '9.2') then
+        select into t array_agg(quote_ident(term)) from
+            (select nullif(unnest, '') as term
+               from unnest(string_to_array(idname, '.'))) as foo;
+    else
+        select into t array_agg(quote_ident(term)) from
+            (select unnest(string_to_array(idname, '.', '')) as term) as foo;
+    end if;
+    return array_to_string(t, '.');
+end;
+$body$
+language plpgsql immutable;
+
+
+CREATE OR REPLACE FUNCTION _pgr_versionless(v1 text, v2 text)
+  RETURNS boolean AS
+$BODY$
+
+
+declare
+    v1a text[];
+    v2a text[];
+    nv1 integer;
+    nv2 integer;
+    ne1 integer;
+    ne2 integer;
+
+begin
+    -- separate components into an array, like:
+    -- '2.1.0-beta3dev'  =>  {2,1,0,beta3dev}
+    v1a := regexp_matches(v1, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+    v2a := regexp_matches(v2, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+
+    -- convert modifiers to numbers for comparison
+    -- we do not delineate between alpha1, alpha2, alpha3, etc
+    ne1 := case when v1a[4] is null or v1a[4]='' then 5
+                when v1a[4] ilike 'rc%' then 4
+                when v1a[4] ilike 'beta%' then 3
+                when v1a[4] ilike 'alpha%' then 2
+                when v1a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    ne2 := case when v2a[4] is null or v2a[4]='' then 5
+                when v2a[4] ilike 'rc%' then 4
+                when v2a[4] ilike 'beta%' then 3
+                when v2a[4] ilike 'alpha%' then 2
+                when v2a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    nv1 := v1a[1]::integer * 10000 +
+           coalesce(v1a[2], '0')::integer * 1000 +
+           coalesce(v1a[3], '0')::integer *  100 + ne1;
+    nv2 := v2a[1]::integer * 10000 +
+           coalesce(v2a[2], '0')::integer * 1000 +
+           coalesce(v2a[3], '0')::integer *  100 + ne2;
+
+    --raise notice 'nv1: %, nv2: %, ne1: %, ne2: %', nv1, nv2, ne1, ne2;
+
+    return nv1 < nv2;
+end;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+create or replace function _pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_startpoint(st_geometryn(g,1));
+    else
+        return st_startpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function _pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_endpoint(st_geometryn(g,1));
+    else
+        return st_endpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_parameter_check(fn text, sql text, big boolean default false)
+  RETURNS bool AS
+  $BODY$
+
+  DECLARE
+  rec record;
+  rec1 record;
+  has_rcost boolean;
+  safesql text;
+  BEGIN
+    IF (big) THEN
+       RAISE EXCEPTION 'This function is for old style functions';
+    END IF;
+
+    -- checking query is executable
+    BEGIN
+      safesql =  'select * from ('||sql||' ) AS __a__ limit 1';
+      execute safesql into rec;
+      EXCEPTION
+        WHEN OTHERS THEN
+            RAISE EXCEPTION 'Could not execute query please verify syntax of: '
+              USING HINT = sql;
+    END;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('dijkstra','astar') THEN
+        BEGIN
+          execute 'select id,source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: id, source, target, cost';
+        END;
+        execute 'select pg_typeof(id)::text as id_type, pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.id_type in ('integer'::text))
+              AND (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Error, columns ''source'', ''target'' must be of type int4, ''cost'' must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    IF fn IN ('astar') THEN
+        BEGIN
+          execute 'select x1,y1,x2,y2  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: x1,y1, x2,y2';
+        END;
+        execute 'select pg_typeof(x1)::text as x1_type, pg_typeof(y1)::text as y1_type, pg_typeof(x2)::text as x2_type, pg_typeof(y2)::text as y2_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.x1_type = 'double precision'::text)
+              AND (rec.y1_type = 'double precision'::text)
+              AND (rec.x2_type = 'double precision'::text)
+              AND (rec.y2_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Columns: x1, y1, x2, y2 must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('johnson') THEN
+        BEGIN
+          execute 'select source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING HINT = 'Please veryfy the column names: id, source, target, cost',
+                         ERRCODE = 'XX000';
+        END;
+
+        execute 'select pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Support for source,target columns only of type: integer. Support for Cost: double precision'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    -- Checking the data types of the optional reverse_cost";
+    has_rcost := false;
+    IF fn IN ('johnson','dijkstra','astar') THEN
+      BEGIN
+        execute 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||safesql||' ) AS __b__ limit 1 ' into rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+            return has_rcost;
+      END;
+      if (has_rcost) then
+        IF (big) then
+           IF  not (rec1.rev_type in ('bigint'::text, 'integer'::text, 'smallint'::text, 'double precision'::text, 'real'::text)) then
+             RAISE EXCEPTION 'Illegar type in optional parameter reverse_cost.'
+             USING ERRCODE = 'XX000';
+           END IF;
+        ELSE -- Version 2.0.0 is more restrictive
+           IF (rec1.rev_type != 'double precision') then
+             RAISE EXCEPTION 'Illegal type in optional parameter reverse_cost, must be of type float8'
+             USING ERRCODE = 'XX000';
+           END IF;
+        END IF;
+      end if;
+      return true;
+    END IF;
+    -- just for keeps
+    return true;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_onError(
+  IN errCond boolean,  -- true there is an error
+  IN reportErrs int,   -- 0, 1 or 2
+  IN fnName text,      -- function name that generates the error
+  IN msgerr text,      -- error message
+  IN hinto text default 'No hint', -- hint help
+  IN msgok text default 'OK')      -- message if everything is ok
+  RETURNS void AS
+$BODY$
+BEGIN
+  if errCond=true then
+     if reportErrs=0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+     else
+       if reportErrs = 2 then
+         raise notice '----> PGR ERROR in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+         raise raise_exception;
+       else
+         raise notice '----> PGR NOTICE in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+       end if;
+     end if;
+  else
+       raise debug 'PGR ----> %: %',fnName,msgok;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_msg(IN msgKind int, IN fnName text, IN msg text default '---->OK')
+  RETURNS void AS
+$BODY$
+BEGIN
+  if msgKind = 0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msg;
+  else
+       raise notice '----> PGR NOTICE in %: %',fnName,msg;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(sname text, tname text, cname text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    EXECUTE 'select data_type  from information_schema.columns '
+            || 'where table_name = '||quote_literal(tname)
+                 || ' and table_schema=' || quote_literal(sname)
+                 || ' and column_name='||quote_literal(cname)
+       into ctype;
+    err = ctype is null;
+    perform _pgr_onError(err, reportErrs, fnName,
+            'Type of Column '|| cname ||' not found',
+            'Check your column name',
+            'OK: Type of Column '|| cname || ' is ' || ctype);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(tab text, col text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+    select * into cname from _pgr_getColumnName(tab,col,reportErrs, fnName) ;
+    select * into ctype from _pgr_getColumnType(sname,tname,cname,reportErrs, fnName);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_get_statement(o_sql text)
+RETURNS text AS
+$BODY$
+DECLARE
+sql TEXT;
+BEGIN
+    EXECUTE 'SELECT statement FROM pg_prepared_statements WHERE name ='  || quote_literal(o_sql) || ' limit 1 ' INTO sql;
+    IF (sql IS NULL) THEN
+      RETURN   o_sql;
+    ELSE
+      RETURN  regexp_replace(sql, '(.)* as ', '', 'i');
+    END IF;
+END
+$BODY$
+LANGUAGE plpgsql STABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_checkVertTab(vertname text, columnsArr  text[],
+    IN reportErrs int default 1, IN fnName text default '_pgr_checkVertTab',
+    OUT sname text,OUT vname text)
+RETURNS record AS
+$BODY$
+DECLARE
+    cname text;
+    colname text;
+    naming record;
+    debuglevel text;
+    err  boolean;
+    msgKind int;
+
+BEGIN
+    msgKind = 0; -- debug_
+    execute 'show client_min_messages' into debuglevel;
+
+    perform _pgr_msg(msgKind, fnName, 'Checking table ' || vertname || ' exists');
+       select * from _pgr_getTableName(vertname, 0, fnName) into naming;
+       sname=naming.sname;
+       vname=naming.tname;
+       err = sname is NULL or vname is NULL;
+    perform _pgr_onError( err, 2, fnName,
+          'Vertex Table: ' || vertname || ' not found',
+          'Please create ' || vertname || ' using  _pgr_createTopology() or pgr_createVerticesTable()',
+          'Vertex Table: ' || vertname || ' found');
+
+
+    perform _pgr_msg(msgKind, fnName, 'Checking columns of ' || vertname);
+      FOREACH cname IN ARRAY columnsArr
+      loop
+         select _pgr_getcolumnName(vertname, cname, 0, fnName) into colname;
+         if colname is null then
+           perform _pgr_msg(msgKind, fnName, 'Adding column ' || cname || ' in ' || vertname);
+           set client_min_messages  to warning;
+                execute 'ALTER TABLE '||_pgr_quote_ident(vertname)||' ADD COLUMN '||cname|| ' integer';
+           execute 'set client_min_messages  to '|| debuglevel;
+           perform _pgr_msg(msgKind, fnName);
+         end if;
+      end loop;
+    perform _pgr_msg(msgKind, fnName, 'Finished checking columns of ' || vertname);
+
+    perform _pgr_createIndex(vertname , 'id' , 'btree', reportErrs, fnName);
+ END
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(
+    sname text, tname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    debuglevel text;
+    naming record;
+    tabname text;
+    query text;
+    msgKind int;
+BEGIN
+  msgKind = 0; -- debug_
+
+  execute 'show client_min_messages' into debuglevel;
+  tabname=_pgr_quote_ident(sname||'.'||tname);
+  perform _pgr_msg(msgKind, fnName, 'Checking ' || colname || ' column in ' || tabname || ' is indexed');
+    IF (_pgr_isColumnIndexed(sname,tname,colname, 0, fnName)) then
+       perform _pgr_msg(msgKind, fnName);
+    else
+      if indext = 'gist' then
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using gist('||quote_ident(colname)||')';
+      else
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using btree('||quote_ident(colname)||')';
+      end if;
+      perform _pgr_msg(msgKind, fnName, 'Adding index ' || tabname || '_' ||  colname || '_idx');
+      perform _pgr_msg(msgKind, fnName, ' Using ' ||  query);
+      set client_min_messages  to warning;
+      BEGIN
+        execute query;
+        EXCEPTION WHEN others THEN
+          perform _pgr_onError( true, reportErrs, fnName,
+            'Could not create index on:' || colname, SQLERRM);
+      END;
+      execute 'set client_min_messages  to '|| debuglevel;
+      perform _pgr_msg(msgKind, fnName);
+    END IF;
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(tabname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    naming record;
+    sname text;
+    tname text;
+
+BEGIN
+    select * from _pgr_getTableName(tabname, 2, fnName)  into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    execute _pgr_createIndex(sname, tname, colname, indext, reportErrs, fnName);
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pointToId(
+    point geometry,
+    tolerance double precision,
+    vertname text,
+    srid integer)
+
+  RETURNS bigint AS
+$BODY$
+DECLARE
+    rec record;
+    pid bigint;
+
+BEGIN
+    EXECUTE 'SELECT ST_Distance(
+        the_geom,
+        ST_GeomFromText(ST_AsText('
+                || quote_literal(point::text)
+                || '),'
+            || srid ||')) AS d, id, the_geom
+    FROM '||_pgr_quote_ident(vertname)||'
+    WHERE ST_DWithin(
+        the_geom,
+        ST_GeomFromText(
+            ST_AsText(' || quote_literal(point::text) ||'),
+            ' || srid || '),' || tolerance||')
+    ORDER BY d
+    LIMIT 1' INTO rec ;
+    IF rec.id IS NOT NULL THEN
+        pid := rec.id;
+    ELSE
+        execute 'INSERT INTO '||_pgr_quote_ident(vertname)||' (the_geom) VALUES ('||quote_literal(point::text)||')';
+        pid := lastval();
+END IF;
+
+RETURN pid;
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'many_to_many_dijkstra'
+LANGUAGE c VOLATILE;
+
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer, OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstra(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(Many to Many)';
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraVia(
+    edges_sql TEXT,
+    via_vertices ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    strict BOOLEAN DEFAULT FALSE,
+    U_turn_on_edge BOOLEAN DEFAULT TRUE,
+
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'dijkstraVia'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_johnson(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'johnson'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_floydWarshall(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'floydWarshall'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'astarManyToMany'
+LANGUAGE c VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, normal:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to Many)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true, normal:=false) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to Many)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid ANYARRAY,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+    equicost BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '$libdir/libpgrouting-2.5', 'many_withPointsDD'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_withPointsDD($1, $2, ARRAY[$3]::BIGINT[], $4, $5, $6, $7, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vids anyarray,
+    distance FLOAT,
+    directed BOOLEAN DEFAULT TRUE,
+    equicost BOOLEAN DEFAULT FALSE,
+    OUT seq integer,
+    OUT from_v  bigint,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '$libdir/libpgrouting-2.5', 'driving_many_to_dist'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vid bigint,
+    distance FLOAT8,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq integer,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer, directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'kshortest_path'
+    LANGUAGE c STABLE STRICT;
+
+-- V2 the graph is directed and there are no heap paths
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid integer, end_vid integer, k integer, has_rcost boolean)
+  RETURNS SETOF pgr_costresult3 AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated signature of pgr_ksp';
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql::text, false);
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_rcost) THEN
+           -- user says that it has reverse_cost but its not true
+           RAISE EXCEPTION 'has_reverse_cost set to true but reverse_cost not found';
+         ELSE
+           -- user says that it does not have reverse_cost but it does have it
+           -- to ignore we remove reverse_cost from the query
+           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+         END IF;
+      END IF;
+
+      RETURN query SELECT ((row_number() over()) -1)::integer  AS seq,  (path_id - 1)::integer AS id1, node::integer AS id2, edge::integer AS id3, cost
+            FROM _pgr_ksp(sql::text, start_vid, end_vid, k, TRUE, FALSE) WHERE path_id <= k;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer,
+  directed boolean default true, heap_paths boolean default false,
+  --directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  BEGIN
+         RETURN query SELECT *
+                FROM _pgr_ksp(edges_sql::text, start_vid, end_vid, k, directed, heap_paths);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsKSP(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    k INTEGER,
+
+    directed BOOLEAN DEFAULT TRUE,
+    heap_paths BOOLEAN DEFAULT FALSE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER, OUT path_id INTEGER, OUT path_seq INTEGER,
+    OUT node BIGINT, OUT edge BIGINT,
+    OUT cost FLOAT, OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'withPoints_ksp'
+    LANGUAGE c STABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_unnest_matrix(matrix float8[][], OUT start_vid integer, OUT end_vid integer, out agg_cost float8)
+RETURNS SETOF record AS
+
+$body$
+DECLARE
+
+m float8[];
+
+BEGIN
+    start_vid = 1;
+    foreach m slice 1 in  ARRAY matrix
+    LOOP
+        end_vid = 1;
+        foreach agg_cost in  ARRAY m
+        LOOP
+            RETURN next;
+            end_vid = end_vid + 1;
+        END LOOP;
+        start_vid = start_vid + 1;
+    END LOOP;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_tsp(
+    matrix float8[][],
+    startpt INTEGER,
+    endpt INTEGER DEFAULT -1,
+    OUT seq INTEGER,
+    OUT id INTEGER)
+RETURNS SETOF record AS
+$body$
+DECLARE
+table_sql TEXT;
+debuglevel TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature pgr_tsp(float8[][], integer, integer)';
+
+    CREATE TEMP TABLE ___tmp2 ON COMMIT DROP AS SELECT * FROM _pgr_unnest_matrix( matrix );
+
+
+    startpt := startpt + 1;
+    IF endpt = -1 THEN endpt := startpt;
+    END IF;
+
+
+    RETURN QUERY
+    WITH
+    result AS (
+        SELECT * FROM pgr_TSP(
+        $$SELECT * FROM ___tmp2 $$,
+        startpt, endpt,
+
+        tries_per_temperature :=  500 :: INTEGER,
+        max_changes_per_temperature := 30 :: INTEGER,
+        max_consecutive_non_changes := 500 :: INTEGER,
+
+        randomize:=false)
+    )
+    SELECT (row_number() over(ORDER BY result.seq) - 1)::INTEGER AS seq, (result.node - 1)::INTEGER AS id
+
+    FROM result WHERE NOT(result.node = startpt AND result.seq != 1);
+
+    DROP TABLE ___tmp2;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+
+
+
+CREATE OR  REPLACE FUNCTION pgr_tsp(sql text, start_id INTEGER, end_id INTEGER default (-1))
+returns setof pgr_costResult as
+$body$
+DECLARE
+table_sql TEXT;
+rec RECORD;
+debuglevel TEXT;
+n BIGINT;
+
+BEGIN
+    RAISE NOTICE 'Deprecated Signature pgr_tsp(sql, integer, integer)';
+
+    table_sql := 'CREATE TEMP TABLE ___tmp ON COMMIT DROP AS ' || sql ;
+    EXECUTE table_sql;
+
+
+    BEGIN
+        EXECUTE 'SELECT id, x, y FROM ___tmp' INTO rec;
+        EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                USING ERRCODE = 'XX000',
+                HINT = 'Please verify the column names: id, x, y';
+    END;
+
+    EXECUTE
+    'SELECT
+        pg_typeof(id)::text as id_type,
+        pg_typeof(x)::text as x_type,
+        pg_typeof(y)::text as y_type FROM ___tmp' INTO rec;
+
+
+    IF NOT((rec.id_type in ('integer'::text))
+        AND (rec.x_type = 'double precision'::text)
+        AND (rec.y_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION '''id'' must be of type INTEGER, ''x'' ad ''y'' must be of type FLOAT'
+            USING ERRCODE = 'XX000';
+    END IF;
+
+    EXECUTE 'SELECT count(*) AS n FROM (' || sql || ') AS __a__' INTO rec;
+    n = rec.n;
+
+    RETURN query
+        SELECT (seq - 1)::INTEGER AS seq, node::INTEGER AS id1, node::INTEGER AS id2, cost
+        FROM pgr_eucledianTSP(sql, start_id, end_id,
+
+            tries_per_temperature :=  500 * n :: INTEGER,
+            max_changes_per_temperature := 60 * n :: INTEGER,
+            max_consecutive_non_changes := 500 * n :: INTEGER,
+
+            randomize := false) WHERE seq <= n;
+    DROP TABLE ___tmp;
+
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+
+create or replace function _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+  as
+$body$
+declare
+    sql text;
+    r record;
+
+begin
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    sql := 'with nodes as (' || sqlin || ')
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j, st_distance(st_makepoint(a.x, a.y), st_makepoint(b.x, b.y)) as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i';
+
+    for r in execute sql loop
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+
+end;
+$body$
+language plpgsql stable cost 10;
+
+
+CREATE OR REPLACE FUNCTION pgr_TSP(
+    matrix_row_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '$libdir/libpgrouting-2.5', 'newTSP'
+LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_eucledianTSP(
+    coordinates_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '$libdir/libpgrouting-2.5', 'eucledianTSP'
+LANGUAGE c VOLATILE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_alphashape(sql text, alpha float8 DEFAULT 0, OUT x float8, OUT y float8)
+    RETURNS SETOF record
+    AS '$libdir/libpgrouting-2.5', 'alphashape'
+    LANGUAGE c VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_pointsAsPolygon(query varchar, alpha float8 DEFAULT 0)
+	RETURNS geometry AS
+	$$
+	DECLARE
+		r record;
+		geoms geometry[];
+		vertex_result record;
+		i int;
+		n int;
+		spos int;
+		q text;
+		x float8[];
+		y float8[];
+
+	BEGIN
+		geoms := array[]::geometry[];
+		i := 1;
+
+		FOR vertex_result IN EXECUTE 'SELECT x, y FROM pgr_alphashape('''|| query || ''', ' || alpha || ')'
+		LOOP
+			x[i] = vertex_result.x;
+			y[i] = vertex_result.y;
+			i := i+1;
+		END LOOP;
+
+		n := i;
+		IF n = 1 THEN
+			RAISE NOTICE 'n = 1';
+			RETURN NULL;
+		END IF;
+
+		spos := 1;
+		q := 'SELECT ST_GeometryFromText(''POLYGON((';
+		FOR i IN 1..n LOOP
+			IF x[i] IS NULL AND y[i] IS NULL THEN
+				q := q || ', ' || x[spos] || ' ' || y[spos] || '))'',0) AS geom;';
+				EXECUTE q INTO r;
+				geoms := geoms || array[r.geom];
+				q := '';
+			ELSE
+				IF q = '' THEN
+					spos := i;
+					q := 'SELECT ST_GeometryFromText(''POLYGON((';
+				END IF;
+				IF i = spos THEN
+					q := q || x[spos] || ' ' || y[spos];
+				ELSE
+					q := q || ', ' || x[i] || ' ' || y[i];
+				END IF;
+			END IF;
+		END LOOP;
+
+		RETURN ST_BuildArea(ST_Collect(geoms));
+	END;
+	$$
+	LANGUAGE 'plpgsql' VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'bd_astar'
+LANGUAGE C VOLATILE;
+
+
+
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed:=true, only_cost:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    BOOLEAN,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false);
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to Many)';
+
+
+
+-- one to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to Many)';
+
+
+-- bdDijkstra MANY TO MANY
+CREATE OR REPLACE FUNCTION _pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'bdDijkstra'
+LANGUAGE c VOLATILE;
+
+
+
+-- ONE TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- TODO directed BOOLEAN DEFAULT TRUE,  on version 3
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, false) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, true) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_vid integer,
+    target_vid integer,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '$libdir/libpgrouting-2.5', 'turn_restrict_shortest_path_vertex'
+LANGUAGE 'c' IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '$libdir/libpgrouting-2.5', 'turn_restrict_shortest_path_edge'
+LANGUAGE 'c' IMMUTABLE;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || edges_sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        -- no restrictions then its a dijkstra
+        RETURN query SELECT a.seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_dijkstra(new_sql, start_vid, end_vid, directed) a;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, start_vid, end_vid, directed, has_rcost, restrictions_sql);
+    RETURN;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_trspViaVertices(
+    edges_sql TEXT,
+    via_vids ANYARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult3 AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            new_sql :=
+               'WITH old_sql AS (' || edges_sql || ')' ||
+                '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        RETURN query SELECT (row_number() over())::INTEGER, path_id:: INTEGER, node::INTEGER,
+            (CASE WHEN edge = -2 THEN -1 ELSE edge END)::INTEGER, cost
+            FROM pgr_dijkstraVia(new_sql, via_vids, directed, strict:=true) WHERE edge != -1;
+        RETURN;
+    END IF;
+
+
+    -- make the call without contradiction from part of the user
+    RETURN query SELECT * FROM _pgr_trspViaVertices(new_sql, via_vids::INTEGER[], directed, has_rcost, restrictions_sql);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+
+    new_sql := sql;
+    IF (has_reverse != has_reverse_cost) THEN  -- user contradiction
+        IF (has_reverse) THEN
+            -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) THEN
+        -- no restrictions then its a with points
+        RETURN query SELECT a.seq-1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_withpoints(new_sql,
+            '(SELECT 1 as pid, ' || source_eid || 'as edge_id, ' || source_pos || '::float8 as fraction)'
+            || ' UNION '
+            || '(SELECT 2, ' || target_eid || ', ' || target_pos || ')' ::TEXT,
+            -1, -2, directed) a;
+        -- WHERE node != -2;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, source_eid, source_pos, target_eid, target_pos, directed, has_reverse_cost, turn_restrict_sql);
+    RETURN;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+create or replace function _pgr_trspViaVertices(sql text, vids integer[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    lrra boolean := false;
+    seq integer := 0;
+    seq2 integer := 0;
+
+begin
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(vids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from _pgr_trsp(sql, vids[i], vids[i+1], directed, has_rcost, turn_restrict_sql) as a loop
+            -- filter out the individual path ends except the last one
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --raise notice 'rr: %', rr;
+            if rr.id3 = -1 then
+                lrr := rr;
+                lrra := true;
+            else
+                seq := seq + 1;
+                rr.seq := seq;
+                return next rr;
+            end if;
+        end loop;
+    end loop;
+
+    if lrra then
+        seq := seq + 1;
+        lrr.seq := seq;
+        return next lrr;
+    end if;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+
+----------------------------------------------------------------------------------------------------------
+
+create or replace function pgr_trspViaEdges(sql text, eids integer[], pcts float8[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    first boolean := true;
+    seq integer := 0;
+    seq2 integer :=0;
+    has_reverse BOOLEAN;
+    point_is_vertex BOOLEAN := false;
+    edges_sql TEXT;
+    f float;
+
+begin
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql := sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (NOT has_rcost) THEN
+            -- user does not want to use reverse cost column
+            edges_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    FOREACH f IN ARRAY pcts LOOP
+        IF f in (0,1) THEN
+           point_is_vertex := true;
+        END IF;
+    END LOOP;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) AND NOT point_is_vertex THEN
+        -- no restrictions then its a _pgr_withPointsVia
+        RETURN query SELECT a.seq::INTEGER, path_id::INTEGER AS id1, node::INTEGER AS id2, edge::INTEGER AS id3, cost
+        FROM _pgr_withPointsVia(edges_sql, eids, pcts, directed) a;
+        RETURN;
+    END IF;
+
+    if array_length(eids, 1) != array_length(pcts, 1) then
+        raise exception 'The length of arrays eids and pcts must be the same!';
+    end if;
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(eids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from pgr_trsp(edges_sql,
+                                  eids[i], pcts[i],
+                                  eids[i+1], pcts[i+1],
+                                  directed,
+                                  has_rcost,
+                                  turn_restrict_sql) as a loop
+            -- combine intermediate via costs when cost is split across
+            -- two parts of a segment because it stops it and
+            -- restarts the next leg also on it
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --
+            -- there are multiple condition we have to deal with
+            -- between the end of one leg and start of the next
+            -- 1. same vertex_id. edge_id=-1; drop record with edge_id=-1
+            -- means: path ends on vertex
+            -- NOTICE:  rr: (19,1,44570022,-1,0)
+            -- NOTICE:  rr: (0,2,44570022,1768045,2.89691196717448)
+            -- 2. vertex_id=-1; sum cost components
+            -- means: path end/starts with the segment
+            -- NOTICE:  rr: (11,2,44569628,1775909,9.32885885148532)
+            -- NOTICE:  rr: (0,3,-1,1775909,0.771386350984395)
+
+            --raise notice 'rr: %', rr;
+            if first then
+                lrr := rr;
+                first := false;
+            else
+                if lrr.id3 = -1 then
+                    lrr := rr;
+                elsif lrr.id3 = rr.id3 then
+                    lrr.cost := lrr.cost + rr.cost;
+                    if rr.id2 = -1 then
+                        rr.id2 := lrr.id2;
+                    end if;
+                else
+                    seq := seq + 1;
+                    lrr.seq := seq;
+                    return next lrr;
+                    lrr := rr;
+                end if;
+            end if;
+        end loop;
+    end loop;
+
+    seq := seq + 1;
+    lrr.seq := seq;
+    return next lrr;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+----------------------------
+--    MANY TO MANY
+----------------------------
+
+
+CREATE OR REPLACE FUNCTION _pgr_maxflow(
+    edges_sql TEXT,
+    sources ANYARRAY,
+    targets ANYARRAY,
+    algorithm INTEGER DEFAULT 1,
+    only_flow BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'max_flow_many_to_many'
+    LANGUAGE c VOLATILE;
+
+
+
+
+------------------------------------
+-- 3 pgr_edmondsKarp
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+------------------------------------
+-- 2 boykov_kolmogorov
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+------------------------------------
+-- 1 pgr_pushRelabel
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT flow
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], algorithm := 1, only_flow := true);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], $3::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, $2::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxCardinalityMatch(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'edge_disjoint_paths_many_to_many'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    bigint,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    IN directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_contractGraph(
+    edges_sql TEXT,
+    contraction_order BIGINT[],
+    max_cycles integer DEFAULT 1,
+    forbidden_vertices BIGINT[] DEFAULT ARRAY[]::BIGINT[],
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT type TEXT,
+    OUT id BIGINT,
+    OUT contracted_vertices BIGINT[],
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost float)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'contractGraph'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliver(
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_cell_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'pickDeliver'
+LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliverEuclidean (
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'pickDeliverEuclidean'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_vrpOneDepot(
+    TEXT, -- customers_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_sql
+    INTEGER, -- depot_id
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+orders_sql TEXT;
+trucks_sql TEXT;
+matrix_sql TEXT;
+final_sql TEXT;
+BEGIN
+
+    orders_sql = $$WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    pickups AS (
+        SELECT id, x AS p_x, y AS p_y, open_time AS p_open, close_time AS p_close, service_time AS p_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vrp_orders.id AS id, order_unit AS demand, pickups.id AS p_node_id, p_x, p_y, p_open, p_close, p_service,
+    vrp_orders.id AS d_node_id, x AS d_x, y AS d_y, open_time AS d_open, close_time AS d_close, service_time AS d_service
+    FROM vrp_orders, pickups
+    WHERE vrp_orders.id != $$ || $4;
+
+
+    trucks_sql = $$ WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    vrp_vehicles AS ($$ || $2 || $$ ),
+    starts AS (
+        SELECT id AS start_node_id, x AS start_x, y AS start_y, open_time AS start_open, close_time AS start_close, service_time AS start_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vehicle_id AS id, capacity, starts.* FROM vrp_vehicles, starts;
+    $$;
+
+    final_sql = '
+    SELECT * FROM _pgr_pickDeliver(
+            $$' || orders_sql || '$$,
+            $$' || trucks_sql || '$$,
+            $$' || $3 || '$$,
+            max_cycles := 2,
+            initial_sol := 4 ); ';
+
+    RAISE DEBUG '%', orders_sql;
+    RAISE DEBUG '%', trucks_sql;
+    RAISE DEBUG '%', $3;
+    RAISE DEBUG '%', final_sql;
+
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+-----------------------------------------------------------------------
+-- Core function for vrp with sigle depot computation
+-- See README for description
+-----------------------------------------------------------------------
+--
+--
+
+create or replace function pgr_vrpOneDepot(
+	order_sql text,
+	vehicle_sql text,
+	cost_sql text,
+	depot_id integer,
+
+	OUT oid integer,
+	OUT opos integer,
+	OUT vid integer,
+	OUT tarrival integer,
+	OUT tdepart integer)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT order_id::INTEGER, stop_seq::INTEGER, vehicle_id::INTEGER, arrival_time::INTEGER, departure_time::INTEGER
+    FROM _pgr_vrpOneDepot($1, $2,
+       '
+            SELECT src_id AS start_vid, dest_id AS end_vid, traveltime AS agg_cost FROM ('||$3||') AS a
+       ',
+        $4
+    ) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_gsoc_vrppdtw(
+    customers_sql TEXT,
+    max_vehicles INTEGER,
+    capacity FLOAT,
+    speed FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+
+    OUT seq INTEGER,
+    OUT vehicle_id INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT stop_id BIGINT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+    orders_sql TEXT;
+    vehicles_sql TEXT;
+    final_sql TEXT;
+BEGIN
+    orders_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        pickups AS (
+            SELECT id, demand, x as p_x, y as p_y, opentime as p_open, closetime as p_close, servicetime as p_service
+            FROM  customer_data WHERE pindex = 0 AND id != 0
+        ),
+        deliveries AS (
+            SELECT pindex AS id, x as d_x, y as d_y, opentime as d_open, closetime as d_close, servicetime as d_service
+            FROM  customer_data WHERE dindex = 0 AND id != 0
+        )
+        SELECT * FROM pickups JOIN deliveries USING(id) ORDER BY pickups.id
+    $$;
+
+    vehicles_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ )
+        SELECT id, x AS start_x, y AS start_y,
+            opentime AS start_open, closetime AS start_close, $$ ||
+            capacity || $$ AS capacity, $$ || max_vehicles || $$ AS number, $$ || speed || $$ AS speed
+            FROM customer_data WHERE id = 0 LIMIT 1
+        $$;
+--  seq | vehicle_id | vehicle_seq | stop_id | travel_time | arrival_time | wait_time | service_time | departure_time
+    final_sql = $$ WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        p_deliver AS (SELECT * FROM _pgr_pickDeliverEuclidean('$$ || orders_sql || $$',  '$$ || vehicles_sql || $$',  1, $$ || max_cycles || $$ )),
+        picks AS (SELECT p_deliver.*, pindex, dindex, id AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 2)),
+        delivers AS (SELECT p_deliver.*, pindex, dindex, dindex AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 3)),
+        depots AS (SELECT p_deliver.*, 0 as pindex, 0 as dindex, 0 AS the_id FROM p_deliver WHERE (stop_type IN (-1,1,6))),
+        the_union AS (SELECT * FROM picks UNION SELECT * FROM delivers UNION SELECT * from depots)
+
+        SELECT (row_number() over(ORDER BY a.seq))::INTEGER, vehicle_seq, a.stop_seq, the_id::BIGINT, a.travel_time, a.arrival_time, a.wait_time, a.service_time, a.departure_time
+        FROM (SELECT * FROM the_union) AS a ORDER BY a.seq
+        $$;
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+CREATE OR REPLACE FUNCTION pgr_gsoc_vrppdtw(
+    sql text,
+    vehicle_num INTEGER,
+    capacity INTEGER
+)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+customers_sql TEXT;
+BEGIN
+    RETURN query
+         SELECT a.seq, vehicle_id::INTEGER AS id1, stop_id::INTEGER AS id2, departure_time AS cost
+        FROM _pgr_gsoc_vrppdtw($1, $2, $3, 1, 30) AS a WHERE vehicle_id NOT IN (-2);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION _pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN,
+    driving_side CHAR,
+    details BOOLEAN,
+
+    only_cost BOOLEAN DEFAULT false, -- gets path
+    normal BOOLEAN DEFAULT true, -- false for many to onu
+
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'withPoints'
+LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], ARRAY[$4]::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], ARRAY[$4]::bigint[], $5, $6, $7, FALSE, FALSE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], $4::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], $4::BIGINT[], $5,  $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION  _pgr_withPointsVia(
+    sql text,
+    via_edges bigint[],
+    fraction float[],
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  has_rcost boolean;
+  sql_new_vertices text := ' ';
+  sql_on_vertex text;
+  v_union text := ' ';
+  dummyrec record;
+  rec1 record;
+  via_vertices int[];
+  sql_safe text;
+  new_edges text;
+  BEGIN
+     BEGIN
+        sql_safe = 'SELECT id, source, target, cost, reverse_cost FROM ('|| sql || ') AS __a';
+
+        EXECUTE 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||sql_safe||' ) AS __b__ limit 1 ' INTO rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+     END;
+
+
+      IF array_length(via_edges, 1) != array_length(fraction, 1) then
+        RAISE EXCEPTION 'The length of via_edges is different of length of via_edges';
+      END IF;
+
+      FOR i IN 1 .. array_length(via_edges, 1)
+      LOOP
+          IF fraction[i] = 0 THEN
+              sql_on_vertex := 'SELECT source FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.source;
+          ELSE IF fraction[i] = 1 THEN
+              sql_on_vertex := 'SELECT target FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.target;
+          ELSE
+              via_vertices[i] = -i;
+              IF has_rcost THEN
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost,
+                              reverse_cost * (1 - ' || fraction[i] || ')  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost,
+                              reverse_cost *  ' || fraction[i] || '  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' where id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               ELSE
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               END IF;
+          END IF;
+          END IF;
+     END LOOP;
+
+     IF sql_new_vertices = ' ' THEN
+         new_edges := sql;
+     ELSE
+         IF has_rcost THEN
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost,
+                         lead(cost) OVER w  - cost AS reverse_cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL),
+                   second_part AS ( SELECT * FROM (SELECT id, lead(source) OVER w  AS source, source as target,
+                         reverse_cost - lead(reverse_cost) OVER w  AS cost,
+                         reverse_cost - lead(reverse_cost) OVER w  AS reverse_cost
+                      FROM  the_union  WHERE target > 0 and reverse_cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY reverse_cost ASC) ) as n2
+                      WHERE source IS NOT NULL),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part)
+                             UNION
+                       (SELECT * FROM second_part) ) _union )
+                  SELECT *  FROM more_union';
+         ELSE
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL ),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part) ) _union )
+                  SELECT *  FROM more_union';
+          END IF;
+      END IF;
+
+ -- raise notice '%', new_edges;
+     sql_new_vertices := sql_new_vertices || v_union || ' (' || sql || ')';
+     RETURN query SELECT *
+         FROM pgr_dijkstraVia(new_edges, via_vertices, directed, has_rcost);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_lineGraph(
+    TEXT, -- edges_sql
+    directed BOOLEAN DEFAULT true,
+    OUT seq INTEGER,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost FLOAT,
+    OUT reverse_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'lineGraph'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_connectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'connectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_strongComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'strongComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_biconnectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the edge in the component
+    OUT n_seq INTEGER,          -- nth_seq of the edge in the component
+    OUT edge BIGINT)            -- the number of the edge
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'biconnectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_articulationPoints(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'articulationPoints'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_bridges(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT edge BIGINT)            -- the number of the edge 
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'bridges'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_createtopology(edge_table text, tolerance double precision,
+		   the_geom text default 'the_geom', id text default 'id',
+		   source text default 'source', target text default 'target',rows_where text default 'true',
+		   clean boolean default FALSE)
+RETURNS VARCHAR AS
+$BODY$
+
+DECLARE
+    points record;
+    sridinfo record;
+    source_id bigint;
+    target_id bigint;
+    totcount bigint;
+    rowcount bigint;
+    srid integer;
+    sql text;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    idname text;
+    sourcename text;
+    targetname text;
+    notincluded integer;
+    i integer;
+    naming record;
+    info record;
+    flag boolean;
+    query text;
+    idtype text;
+    gtype text;
+    sourcetype text;
+    targettype text;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+    msgKind int;
+    emptied BOOLEAN;
+
+BEGIN
+    msgKind = 1; -- notice
+    fnName = 'pgr_createTopology';
+    raise notice 'PROCESSING:';
+    raise notice 'pgr_createTopology(''%'', %, ''%'', ''%'', ''%'', ''%'', rows_where := ''%'', clean := %)',edge_table,tolerance,the_geom,id,source,target,rows_where, clean;
+    execute 'show client_min_messages' into debuglevel;
+
+
+    raise notice 'Performing checks, please wait .....';
+
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+        sname=naming.sname;
+        tname=naming.tname;
+        tabname=sname||'.'||tname;
+        vname=tname||'_vertices_pgr';
+        vertname= sname||'.'||vname;
+        rows_where = ' AND ('||rows_where||')';
+      raise DEBUG '     --> OK';
+
+
+      raise debug 'Checking column names in edge table';
+        select * into idname     from _pgr_getColumnName(sname, tname,id,2,fnName);
+        select * into sourcename from _pgr_getColumnName(sname, tname,source,2,fnName);
+        select * into targetname from _pgr_getColumnName(sname, tname,target,2,fnName);
+        select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2,fnName);
+
+
+        err = sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname;
+        perform _pgr_onError( err, 2, fnName,
+               'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
+	       'Column names are OK');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking column types in edge table';
+        select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+        select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+        select * into idtype from _pgr_getColumnType(sname,tname,idname,1, fnName);
+
+        err = idtype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column id:'|| idname, ' Expected type of '|| idname || ' is integer,smallint or bigint but '||idtype||' was found');
+
+        err = sourcetype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column source:'|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+        err = targettype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column target:'|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or bigint but '||targettype||' was found');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking SRID of geometry column';
+         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+            || ' FROM ' || _pgr_quote_ident(tabname)
+            || ' WHERE ' || quote_ident(gname)
+            || ' IS NOT NULL LIMIT 1';
+         raise debug '%',query;
+         EXECUTE query INTO sridinfo;
+
+         err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+         perform _pgr_onError(err, 2, fnName,
+	     'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+
+         srid := sridinfo.srid;
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking and creating indices in edge table';
+        perform _pgr_createIndex(sname, tname , idname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+
+        gname=quote_ident(gname);
+        idname=quote_ident(idname);
+        sourcename=quote_ident(sourcename);
+        targetname=quote_ident(targetname);
+      raise DEBUG '     --> OK';
+
+
+
+
+
+    BEGIN
+        -- issue #193 & issue #210 & #213
+        -- this sql is for trying out the where clause
+        -- the select * is to avoid any column name conflicts
+        -- limit 1, just try on first record
+        -- if the where clasuse is ill formed it will be caught in the exception
+        sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+        EXECUTE sql into dummyRec;
+        -- end
+
+        -- if above where clasue works this one should work
+        -- any error will be caught by the exception also
+        sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NOT NULL AND '||
+	    idname||' IS NOT NULL)=false '||rows_where;
+        EXECUTE SQL  into notincluded;
+
+        if clean then
+            raise debug 'Cleaning previous Topology ';
+               execute 'UPDATE ' || _pgr_quote_ident(tabname) ||
+               ' SET '||sourcename||' = NULL,'||targetname||' = NULL';
+        else
+            raise debug 'Creating topology for edges with non assigned topology';
+            if rows_where=' AND (true)' then
+                rows_where=  ' and ('||quote_ident(sourcename)||' is null or '||quote_ident(targetname)||' is  null)';
+            end if;
+        end if;
+        -- my thoery is that the select Count(*) will never go through here
+        EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+             RAISE NOTICE '%',sql;
+             RETURN 'FAIL';
+    END;
+
+    BEGIN
+         raise DEBUG 'initializing %',vertname;
+         execute 'select * from _pgr_getTableName('||quote_literal(vertname)
+                                                  || ',0,' || quote_literal(fnName) ||' )' into naming;
+         emptied = false;
+         set client_min_messages  to warning;
+         IF sname=naming.sname AND vname=naming.tname  THEN
+            if clean then
+                execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+                execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+                emptied = true;
+            end if;
+         ELSE -- table doesn't exist
+            execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+            emptied = true;
+         END IF;
+         IF (emptied) THEN
+             execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+	         quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+             perform _pgr_createIndex(vertname , 'the_geom'::text , 'gist'::text);
+         END IF;
+         execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id"}''::text[])' into naming;
+         execute 'set client_min_messages  to '|| debuglevel;
+         raise DEBUG  '  ------>OK';
+         EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: something went wrong when initializing the verties table';
+             RETURN 'FAIL';
+    END;
+
+
+
+    raise notice 'Creating Topology, Please wait...';
+        rowcount := 0;
+        FOR points IN EXECUTE 'SELECT ' || idname || '::bigint AS id,'
+            || ' _pgr_StartPoint(' || gname || ') AS source,'
+            || ' _pgr_EndPoint('   || gname || ') AS target'
+            || ' FROM '  || _pgr_quote_ident(tabname)
+            || ' WHERE ' || gname || ' IS NOT NULL AND ' || idname||' IS NOT NULL '||rows_where
+        LOOP
+
+            rowcount := rowcount + 1;
+            IF rowcount % 1000 = 0 THEN
+                RAISE NOTICE '% edges processed', rowcount;
+            END IF;
+
+
+            source_id := _pgr_pointToId(points.source, tolerance,vertname,srid);
+            target_id := _pgr_pointToId(points.target, tolerance,vertname,srid);
+            BEGIN
+                sql := 'UPDATE ' || _pgr_quote_ident(tabname) ||
+                    ' SET '||sourcename||' = '|| source_id::text || ','||targetname||' = ' || target_id::text ||
+                    ' WHERE ' || idname || ' =  ' || points.id::text;
+
+                IF sql IS NULL THEN
+                    RAISE NOTICE 'WARNING: UPDATE % SET source = %, target = % WHERE % = % ', tabname, source_id::text, target_id::text, idname,  points.id::text;
+                ELSE
+                    EXECUTE sql;
+                END IF;
+                EXCEPTION WHEN OTHERS THEN
+                    RAISE NOTICE '%', SQLERRM;
+                    RAISE NOTICE '%',sql;
+                    RETURN 'FAIL';
+            end;
+        END LOOP;
+        raise notice '-------------> TOPOLOGY CREATED FOR  % edges', rowcount;
+        RAISE NOTICE 'Rows with NULL geometry or NULL id: %',notincluded;
+        Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname), _pgr_quote_ident(vertname);
+        raise notice '----------------------------------------------';
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+COMMENT ON FUNCTION pgr_createTopology(text, double precision,text,text,text,text,text,boolean)
+IS 'args: edge_table,tolerance, the_geom:=''the_geom'',source:=''source'', target:=''target'',rows_where:=''true'' - fills columns source and target in the geometry table and creates a vertices table for selected rows';
+
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
+RETURNS character varying AS
+$BODY$
+
+DECLARE
+    points record;
+    seg record;
+    naming record;
+    sridinfo record;
+    srid integer;
+    ecnt integer;
+    vertname text;
+    sname text;
+    tname text;
+    vname text;
+    idname text;
+    sourcename text;
+    targetname text;
+    sourcetype text;
+    targettype text;
+    geotype text;
+    gname text;
+    tabName text;
+    flag boolean ;
+    query text;
+    selectionquery text;
+    i integer;
+    tot integer;
+    NumIsolated integer;
+    numdeadends integer;
+    numgaps integer;
+    NumCrossing integer;
+    numRings integer;
+    debuglevel text;
+
+
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_analyzeGraph(''%'',%,''%'',''%'',''%'',''%'',''%'')',edge_table,tolerance,the_geom,id,source,target,rows_where;
+  raise notice 'Performing checks, please wait ...';
+  execute 'show client_min_messages' into debuglevel;
+
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',2)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    rows_where = ' AND ('||rows_where||')';
+    raise DEBUG '     --> OK';
+
+  END;
+
+  BEGIN
+       raise debug 'Checking Vertices table';
+       execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","cnt","chk"}''::text[])' into naming;
+       execute 'UPDATE '||_pgr_quote_ident(vertname)||' SET cnt=0 ,chk=0';
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the vertices table';
+          RETURN 'FAIL';
+  END;
+
+
+
+  BEGIN
+       raise debug 'Checking column names in edge table';
+       select * into idname     from _pgr_getColumnName(sname, tname,id,2);
+       select * into sourcename from _pgr_getColumnName(sname, tname,source,2);
+       select * into targetname from _pgr_getColumnName(sname, tname,target,2);
+       select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2);
+
+
+       perform _pgr_onError( sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname, 2,
+                       'pgr_analyzeGraph',  'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
+                       'Column names are OK');
+
+        raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column names';
+          RETURN 'FAIL';
+  END;
+
+
+  BEGIN
+       raise debug 'Checking column types in edge table';
+       select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1);
+       select * into targettype from _pgr_getColumnType(sname,tname,targetname,1);
+
+       perform _pgr_onError(sourcetype not in('integer','smallint','bigint') , 2,
+                       'pgr_analyzeGraph',  'Wrong type of Column '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found',
+                       'Type of Column '|| sourcename || ' is ' || sourcetype);
+
+       perform _pgr_onError(targettype not in('integer','smallint','bigint') , 2,
+                       'pgr_analyzeGraph',  'Wrong type of Column '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found',
+                       'Type of Column '|| targetname || ' is ' || targettype);
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column types';
+          RETURN 'FAIL';
+   END;
+
+   BEGIN
+       raise debug 'Checking SRID of geometry column';
+         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+            || ' FROM ' || _pgr_quote_ident(tabname)
+            || ' WHERE ' || quote_ident(gname)
+            || ' IS NOT NULL LIMIT 1';
+         EXECUTE QUERY INTO sridinfo;
+
+         perform _pgr_onError( sridinfo IS NULL OR sridinfo.srid IS NULL,2,
+                 'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname,
+                 'SRID of '||gname||' is '||sridinfo.srid);
+
+         IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
+             RAISE NOTICE ' Can not determine the srid of the geometry "%" in table %', the_geom,tabname;
+             RETURN 'FAIL';
+         END IF;
+         srid := sridinfo.srid;
+         raise DEBUG '     --> OK';
+         EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM;--issue 210,211,213
+             RAISE NOTICE 'ERROR: something went wrong when checking for SRID of % in table %', the_geom,tabname;
+             RETURN 'FAIL';
+    END;
+
+
+    BEGIN
+       raise debug 'Checking  indices in edge table';
+       perform _pgr_createIndex(tabname , idname , 'btree');
+       perform _pgr_createIndex(tabname , sourcename , 'btree');
+       perform _pgr_createIndex(tabname , targetname , 'btree');
+       perform _pgr_createIndex(tabname , gname , 'gist');
+
+       gname=quote_ident(gname);
+       sourcename=quote_ident(sourcename);
+       targetname=quote_ident(targetname);
+       idname=quote_ident(idname);
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking indices';
+          RETURN 'FAIL';
+    END;
+
+
+    BEGIN
+        query='select count(*) from '||_pgr_quote_ident(tabname)||' where true  '||rows_where;
+        EXECUTE query into ecnt;
+        raise DEBUG '-->Rows Where condition: OK';
+        raise DEBUG '     --> OK';
+         EXCEPTION WHEN OTHERS THEN
+            RAISE NOTICE 'Got %', SQLERRM;  --issue 210,211,213
+            RAISE NOTICE 'ERROR: Condition is not correct. Please execute the following query to test your condition';
+            RAISE NOTICE '%',query;
+            RETURN 'FAIL';
+    END;
+
+    selectionquery ='with
+           selectedRows as( (select '||sourcename||' as id from '||_pgr_quote_ident(tabname)||' where true '||rows_where||')
+                           union
+                           (select '||targetname||' as id from '||_pgr_quote_ident(tabname)||' where true '||rows_where||'))';
+
+
+
+
+
+   BEGIN
+       RAISE NOTICE 'Analyzing for dead ends. Please wait...';
+       query= 'with countingsource as (select a.'||sourcename||' as id,count(*) as cnts
+               from (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) a  group by a.'||sourcename||')
+                     ,countingtarget as (select a.'||targetname||' as id,count(*) as cntt
+                    from (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) a  group by a.'||targetname||')
+                   ,totalcount as (select id,case when cnts is null and cntt is null then 0
+                                                   when cnts is null then cntt
+                                                   when cntt is null then cnts
+                                                   else cnts+cntt end as totcnt
+                                   from ('||_pgr_quote_ident(vertname)||' as a left
+                                   join countingsource as t using(id) ) left join countingtarget using(id))
+               update '||_pgr_quote_ident(vertname)||' as a set cnt=totcnt from totalcount as b where a.id=b.id';
+       raise debug '%',query;
+       execute query;
+       query=selectionquery||'
+              SELECT count(*)  FROM '||_pgr_quote_ident(vertname)||' WHERE cnt=1 and id in (select id from selectedRows)';
+       raise debug '%',query;
+       execute query  INTO numdeadends;
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'Got %', SQLERRM;  --issue 210,211,213
+          RAISE NOTICE 'ERROR: something went wrong when analizing for dead ends';
+          RETURN 'FAIL';
+   END;
+
+
+
+    BEGIN
+          RAISE NOTICE 'Analyzing for gaps. Please wait...';
+          query = 'with
+                   buffer as (select id,st_buffer(the_geom,'||tolerance||') as buff from '||_pgr_quote_ident(vertname)||' where cnt=1)
+                   ,veryclose as (select b.id,st_crosses(a.'||gname||',b.buff) as flag
+                   from  (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) as a
+                   join buffer as b on (a.'||gname||'&&b.buff)
+                   where '||sourcename||'!=b.id and '||targetname||'!=b.id )
+                   update '||_pgr_quote_ident(vertname)||' set chk=1 where id in (select distinct id from veryclose where flag=true)';
+          raise debug '%' ,query;
+          execute query;
+          GET DIAGNOSTICS  numgaps= ROW_COUNT;
+          raise DEBUG '     --> OK';
+          EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for gaps';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for isolated edges. Please wait...';
+        query=selectionquery|| ' SELECT count(*) FROM (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' )  as a,
+                                                 '||_pgr_quote_ident(vertname)||' as b,
+                                                 '||_pgr_quote_ident(vertname)||' as c
+                            WHERE b.id in (select id from selectedRows) and a.'||sourcename||' =b.id
+                            AND b.cnt=1 AND a.'||targetname||' =c.id
+                            AND c.cnt=1';
+        raise debug '%' ,query;
+        execute query  INTO NumIsolated;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for isolated edges';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for ring geometries. Please wait...';
+        execute 'SELECT geometrytype('||gname||')  FROM '||_pgr_quote_ident(tabname) limit 1 into geotype;
+        IF (geotype='MULTILINESTRING') THEN
+            query ='SELECT count(*)  FROM '||_pgr_quote_ident(tabname)||'
+                                 WHERE true  '||rows_where||' and st_isRing(st_linemerge('||gname||'))';
+            raise debug '%' ,query;
+            execute query  INTO numRings;
+        ELSE query ='SELECT count(*)  FROM '||_pgr_quote_ident(tabname)||'
+                                  WHERE true  '||rows_where||' and st_isRing('||gname||')';
+            raise debug '%' ,query;
+            execute query  INTO numRings;
+        END IF;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for ring geometries';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for intersections. Please wait...';
+        query = 'select count(*) from (select distinct case when a.'||idname||' < b.'||idname||' then a.'||idname||'
+                                                        else b.'||idname||' end,
+                                                   case when a.'||idname||' < b.'||idname||' then b.'||idname||'
+                                                        else a.'||idname||' end
+                                    FROM (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||') as a
+                                    JOIN (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||') as b
+                                    ON (a.'|| gname||' && b.'||gname||')
+                                    WHERE a.'||idname||' != b.'||idname|| '
+                                        and (a.'||sourcename||' in (b.'||sourcename||',b.'||targetname||')
+                                              or a.'||targetname||' in (b.'||sourcename||',b.'||targetname||')) = false
+                                        and st_intersects(a.'||gname||', b.'||gname||')=true) as d ';
+        raise debug '%' ,query;
+        execute query  INTO numCrossing;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for intersections';
+            RETURN 'FAIL';
+    END;
+
+
+
+
+    RAISE NOTICE '            ANALYSIS RESULTS FOR SELECTED EDGES:';
+    RAISE NOTICE '                  Isolated segments: %', NumIsolated;
+    RAISE NOTICE '                          Dead ends: %', numdeadends;
+    RAISE NOTICE 'Potential gaps found near dead ends: %', numgaps;
+    RAISE NOTICE '             Intersections detected: %',numCrossing;
+    RAISE NOTICE '                    Ring geometries: %',numRings;
+
+
+    RETURN 'OK';
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+COMMENT ON FUNCTION pgr_analyzeGraph(text,double precision,text,text,text,text,text) IS 'args: edge_table, tolerance,the_geom:=''the_geom'',id:=''id'',source column:=''source'', target column:=''target'' rows_where:=''true'' - creates a vertices table based on the geometry for selected rows';
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_analyzeOneway(
+   edge_table text,
+   s_in_rules TEXT[],
+   s_out_rules TEXT[],
+   t_in_rules TEXT[],
+   t_out_rules TEXT[],
+   two_way_if_null boolean default true,
+   oneway text default 'oneway',
+   source text default 'source',
+   target text default 'target')
+  RETURNS text AS
+$BODY$
+
+
+DECLARE
+    rule text;
+    ecnt integer;
+    instr text;
+    naming record;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    owname text;
+    sourcename text;
+    targetname text;
+    sourcetype text;
+    targettype text;
+    vertname text;
+    debuglevel text;
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_analyzeOneway(''%'',''%'',''%'',''%'',''%'',''%'',''%'',''%'',%)',
+		edge_table, s_in_rules , s_out_rules, t_in_rules, t_out_rules, oneway, source ,target,two_way_if_null ;
+  execute 'show client_min_messages' into debuglevel;
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',2)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    raise DEBUG '     --> OK';
+    EXCEPTION WHEN raise_exception THEN
+      RAISE NOTICE 'ERROR: something went wrong checking the table name';
+      RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise debug 'Checking Vertices table';
+       execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","ein","eout"}''::text[])' into naming;
+       execute 'UPDATE '||_pgr_quote_ident(vertname)||' SET eout=0 ,ein=0';
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the vertices table';
+          RETURN 'FAIL';
+  END;
+
+
+  BEGIN
+       raise debug 'Checking column names in edge table';
+       select * into sourcename from _pgr_getColumnName(sname, tname,source,2);
+       select * into targetname from _pgr_getColumnName(sname, tname,target,2);
+       select * into owname from _pgr_getColumnName(sname, tname,oneway,2);
+
+
+       perform _pgr_onError( sourcename in (targetname,owname) or  targetname=owname, 2,
+                       '_pgr_createToplogy',  'Two columns share the same name', 'Parameter names for oneway,source and target  must be different',
+                       'Column names are OK');
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column names';
+          RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise debug 'Checking column types in edge table';
+       select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1);
+       select * into targettype from _pgr_getColumnType(sname,tname,targetname,1);
+
+
+       perform _pgr_onError(sourcetype not in('integer','smallint','bigint') , 2,
+                       '_pgr_createTopology',  'Wrong type of Column '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found',
+                       'Type of Column '|| sourcename || ' is ' || sourcetype);
+
+       perform _pgr_onError(targettype not in('integer','smallint','bigint') , 2,
+                       '_pgr_createTopology',  'Wrong type of Column '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found',
+                       'Type of Column '|| targetname || ' is ' || targettype);
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column types';
+          RETURN 'FAIL';
+   END;
+
+
+
+    RAISE NOTICE 'Analyzing graph for one way street errors.';
+
+    rule := CASE WHEN two_way_if_null
+            THEN owname || ' IS NULL OR '
+            ELSE '' END;
+
+    instr := '''' || array_to_string(s_in_rules, ''',''') || '''';
+       EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set ein=coalesce(ein,0)+b.cnt
+      from (
+         select '|| sourcename ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| sourcename ||' ) b
+     where a.id=b.'|| sourcename;
+
+    RAISE NOTICE 'Analysis 25%% complete ...';
+
+    instr := '''' || array_to_string(t_in_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set ein=coalesce(ein,0)+b.cnt
+        from (
+         select '|| targetname ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| targetname ||' ) b
+        where a.id=b.'|| targetname;
+
+    RAISE NOTICE 'Analysis 50%% complete ...';
+
+    instr := '''' || array_to_string(s_out_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set eout=coalesce(eout,0)+b.cnt
+        from (
+         select '|| sourcename ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| sourcename ||' ) b
+        where a.id=b.'|| sourcename;
+    RAISE NOTICE 'Analysis 75%% complete ...';
+
+    instr := '''' || array_to_string(t_out_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set eout=coalesce(eout,0)+b.cnt
+        from (
+         select '|| targetname ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| targetname ||' ) b
+        where a.id=b.'|| targetname;
+
+    RAISE NOTICE 'Analysis 100%% complete ...';
+
+    EXECUTE 'SELECT count(*)  FROM '||_pgr_quote_ident(vertname)||' WHERE ein=0 or eout=0' INTO ecnt;
+
+    RAISE NOTICE 'Found % potential problems in directionality' ,ecnt;
+
+    RETURN 'OK';
+
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+COMMENT ON FUNCTION pgr_analyzeOneway(text,TEXT[],TEXT[], TEXT[],TEXT[],boolean,text,text,text)
+IS 'args:edge_table , s_in_rules , s_out_rules, t_in_rules , t_out_rules, two_way_if_null:= true, oneway:=''oneway'',source:= ''source'',target:=''target'' - Analizes the directionality of the edges based on the rules';
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_createverticestable(
+   edge_table text,
+   the_geom text DEFAULT 'the_geom'::text,
+   source text DEFAULT 'source'::text,
+   target text DEFAULT 'target'::text,
+    rows_where text DEFAULT 'true'::text
+)
+  RETURNS text AS
+$BODY$
+DECLARE
+    naming record;
+    sridinfo record;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    sourcename text;
+    targetname text;
+    query text;
+    ecnt bigint;
+    srid integer;
+    sourcetype text;
+    targettype text;
+    sql text;
+    totcount integer;
+    i integer;
+    notincluded integer;
+    included integer;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+
+
+BEGIN
+  fnName = 'pgr_createVerticesTable';
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_createVerticesTable(''%'',''%'',''%'',''%'',''%'')',edge_table,the_geom,source,target,rows_where;
+  execute 'show client_min_messages' into debuglevel;
+
+  raise notice 'Performing checks, please wait .....';
+
+  RAISE DEBUG 'Checking % exists',edge_table;
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    rows_where = ' AND ('||rows_where||')';
+  raise debug '--> Edge table exists: OK';
+
+  raise debug 'Checking column names';
+    select * into sourcename from _pgr_getColumnName(sname, tname,source,2, fnName);
+    select * into targetname from _pgr_getColumnName(sname, tname,target,2, fnName);
+    select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2, fnName);
+
+
+    err = sourcename in (targetname,gname) or  targetname=gname;
+    perform _pgr_onError(err, 2, fnName,
+        'Two columns share the same name', 'Parameter names for the_geom,source and target  must be different');
+  raise debug '--> Column names: OK';
+
+  raise debug 'Checking column types in edge table';
+    select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+    select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+
+
+    err = sourcetype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column source: '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+    err = targettype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column target: '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found');
+
+  raise debug '-->Column types:OK';
+
+  raise debug 'Checking SRID of geometry column';
+     query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+        || ' FROM ' || _pgr_quote_ident(tabname)
+        || ' WHERE ' || quote_ident(gname)
+        || ' IS NOT NULL LIMIT 1';
+     raise debug '%',query;
+     EXECUTE query INTO sridinfo;
+
+     err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+     perform _pgr_onError(err, 2, fnName,
+         'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+     srid := sridinfo.srid;
+  raise DEBUG '     --> OK';
+
+  raise debug 'Checking and creating Indices';
+     perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+  raise DEBUG '-->Check and create indices: OK';
+
+     gname=quote_ident(gname);
+     sourcename=quote_ident(sourcename);
+     targetname=quote_ident(targetname);
+
+
+  BEGIN
+  raise debug 'Checking Condition';
+    -- issue #193 & issue #210 & #213
+    -- this sql is for trying out the where clause
+    -- the select * is to avoid any column name conflicts
+    -- limit 1, just try on first record
+    -- if the where clasuse is ill formed it will be caught in the exception
+    sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+    EXECUTE sql into dummyRec;
+    -- end
+
+    -- if above where clasue works this one should work
+    -- any error will be caught by the exception also
+    sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NULL or '||
+		sourcename||' is null or '||targetname||' is null)=true '||rows_where;
+    raise debug '%',sql;
+    EXECUTE SQL  into notincluded;
+    EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+
+
+
+  BEGIN
+     raise DEBUG 'initializing %',vertname;
+       execute 'select * from _pgr_getTableName('||quote_literal(vertname)||',0)' into naming;
+       IF sname=naming.sname  AND vname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+       ELSE
+           set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+       END IF;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+                quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+       execute 'CREATE INDEX '||quote_ident(vname||'_the_geom_idx')||' ON '||_pgr_quote_ident(vertname)||'  USING GIST (the_geom)';
+       execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+       EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Initializing vertex table';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise notice 'Populating %, please wait...',vertname;
+       sql= 'with
+		lines as ((select distinct '||sourcename||' as id, _pgr_startpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+		                  ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||')
+			union (select distinct '||targetname||' as id,_pgr_endpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+			          ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||'))
+		,numberedLines as (select row_number() OVER (ORDER BY id) AS i,* from lines )
+		,maxid as (select id,max(i) as maxi from numberedLines group by id)
+		insert into '||_pgr_quote_ident(vertname)||'(id,the_geom)  (select id,the_geom  from numberedLines join maxid using(id) where i=maxi order by id)';
+       RAISE debug '%',sql;
+       execute sql;
+       GET DIAGNOSTICS totcount = ROW_COUNT;
+
+       sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' a, '||_pgr_quote_ident(vertname)||' b
+            where '||sourcename||'=b.id and '|| targetname||' in (select id from '||_pgr_quote_ident(vertname)||')';
+       RAISE debug '%',sql;
+       execute sql into included;
+
+
+
+       execute 'select max(id) from '||_pgr_quote_ident(vertname) into ecnt;
+       execute 'SELECT setval('||quote_literal(vertname||'_id_seq')||','||coalesce(ecnt,1)||' , false)';
+       raise notice '  ----->   VERTICES TABLE CREATED WITH  % VERTICES', totcount;
+       raise notice '                                       FOR   %  EDGES', included+notincluded;
+       RAISE NOTICE '  Edges with NULL geometry,source or target: %',notincluded;
+       RAISE NOTICE '                            Edges processed: %',included;
+       Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname),_pgr_quote_ident(vertname);
+       raise notice '----------------------------------------------';
+    END;
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+COMMENT ON FUNCTION pgr_createVerticesTable(text,text,text,text,text)
+IS 'args: edge_table, the_geom:=''the_geom'',source:=''source'', target:=''target'' rows_where:=''true'' - creates a vertices table based on the source and target identifiers for selected rows';
+
+
+CREATE OR REPLACE FUNCTION pgr_nodeNetwork(edge_table text, tolerance double precision,
+			id text default 'id', the_geom text default 'the_geom', table_ending text default 'noded',
+            rows_where text DEFAULT ''::text, outall boolean DEFAULT false) RETURNS text AS
+$BODY$
+DECLARE
+	
+	p_num int := 0;
+	p_ret text := '';
+    pgis_ver_old boolean := _pgr_versionless(postgis_lib_version(), '2.1.0.0');
+    vst_line_substring text;
+    vst_line_locate_point text;
+    intab text;
+    outtab text;
+    n_pkey text;
+    n_geom text;
+    naming record;
+    sname text;
+    tname text;
+    outname text;
+    srid integer;
+    sridinfo record;
+    splits bigint;
+    touched bigint;
+    untouched bigint;
+    geomtype text;
+    debuglevel text;
+    rows_where text;
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_nodeNetwork(''%'', %, ''%'', ''%'', ''%'', ''%'',  %)',
+    edge_table, tolerance, id,  the_geom, table_ending, rows_where, outall;
+  raise notice 'Performing checks, please wait .....';
+  execute 'show client_min_messages' into debuglevel;
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',0)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+	RAISE NOTICE '-------> % not found',edge_table;
+        RETURN 'FAIL';
+    ELSE
+	RAISE DEBUG '  -----> OK';
+    END IF;
+
+    intab=sname||'.'||tname;
+    outname=tname||'_'||table_ending;
+    outtab= sname||'.'||outname;
+    rows_where = CASE WHEN length(rows_where) > 2 and not outall THEN ' AND (' || rows_where || ')' ELSE '' END;
+    rows_where = CASE WHEN length(rows_where) > 2 THEN ' WHERE (' || rows_where || ')' ELSE '' END;
+  END;
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',id,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(id)||')' INTO n_pkey;
+       IF n_pkey is NULL then
+          raise notice  'ERROR: id column "%"  not found in %',id,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',the_geom,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(the_geom)||')' INTO n_geom;
+       IF n_geom is NULL then
+          raise notice  'ERROR: the_geom  column "%"  not found in %',the_geom,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+  IF n_pkey=n_geom THEN
+	raise notice  'ERROR: id and the_geom columns have the same name "%" in %',n_pkey,intab;
+        RETURN 'FAIL';
+  END IF;
+
+  BEGIN
+       	raise DEBUG 'Checking the SRID of the geometry "%"', n_geom;
+       	EXECUTE 'SELECT ST_SRID(' || quote_ident(n_geom) || ') as srid '
+          		|| ' FROM ' || _pgr_quote_ident(intab)
+          		|| ' WHERE ' || quote_ident(n_geom)
+          		|| ' IS NOT NULL LIMIT 1' INTO sridinfo;
+       	IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
+        	RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           	RETURN 'FAIL';
+       	END IF;
+       	srid := sridinfo.srid;
+       	raise DEBUG '  -----> SRID found %',srid;
+       	EXCEPTION WHEN OTHERS THEN
+           		RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           		RETURN 'FAIL';
+  END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_pkey,intab;
+      if (_pgr_isColumnIndexed(intab,n_pkey)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding  index "%_%_idx".',n_pkey,intab;
+
+	set client_min_messages  to warning;
+        execute 'create  index '||tname||'_'||n_pkey||'_idx on '||_pgr_quote_ident(intab)||' using btree('||quote_ident(n_pkey)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_geom,intab;
+      if (_pgr_iscolumnindexed(intab,n_geom)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding unique index "%_%_gidx".',intab,n_geom;
+	set client_min_messages  to warning;
+        execute 'CREATE INDEX '
+            || quote_ident(tname || '_' || n_geom || '_gidx' )
+            || ' ON ' || _pgr_quote_ident(intab)
+            || ' USING gist (' || quote_ident(n_geom) || ')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+---------------
+    BEGIN
+       raise DEBUG 'initializing %',outtab;
+       execute 'select * from _pgr_getTableName('||quote_literal(outtab)||',0)' into naming;
+       IF sname=naming.sname  AND outname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(outtab)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(outname)||','||quote_literal(n_geom)||')';
+       ELSE
+	   set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(outtab)||' (id bigserial PRIMARY KEY,old_id integer,sub_id integer,
+								source bigint,target bigint)';
+       END IF;
+       execute 'select geometrytype('||quote_ident(n_geom)||') from  '||_pgr_quote_ident(intab)||' limit 1' into geomtype;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(outname)||','||
+                quote_literal(n_geom)||','|| srid||', '||quote_literal(geomtype)||', 2)';
+       execute 'CREATE INDEX '||quote_ident(outname||'_'||n_geom||'_idx')||' ON '||_pgr_quote_ident(outtab)||'  USING GIST ('||quote_ident(n_geom)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+    END;
+----------------
+
+
+  raise notice 'Processing, please wait .....';
+
+
+    if pgis_ver_old then
+        vst_line_substring    := 'st_line_substring';
+        vst_line_locate_point := 'st_line_locate_point';
+    else
+        vst_line_substring    := 'st_linesubstring';
+        vst_line_locate_point := 'st_linelocatepoint';
+    end if;
+
+--    -- First creates temp table with intersection points
+    p_ret = 'create temp table intergeom on commit drop as (
+        select l1.' || quote_ident(n_pkey) || ' as l1id,
+               l2.' || quote_ident(n_pkey) || ' as l2id,
+	       l1.' || quote_ident(n_geom) || ' as line,
+	       _pgr_startpoint(l2.' || quote_ident(n_geom) || ') as source,
+	       _pgr_endpoint(l2.' || quote_ident(n_geom) || ') as target,
+               st_intersection(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ') as geom
+        from (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l1
+             join (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l2
+             on (st_dwithin(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ', ' || tolerance || '))'||
+        'where l1.' || quote_ident(n_pkey) || ' <> l2.' || quote_ident(n_pkey)||' and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false  )';
+    raise debug '%',p_ret;
+    EXECUTE p_ret;
+
+    -- second temp table with locus (index of intersection point on the line)
+    -- to avoid updating the previous table
+    -- we keep only intersection points occurring onto the line, not at one of its ends
+--    drop table if exists inter_loc;
+
+--HAD TO CHANGE THIS QUERY
+-- p_ret= 'create temp table inter_loc on commit drop as (
+--        select l1id, l2id, ' || vst_line_locate_point || '(line,point) as locus from (
+--        select DISTINCT l1id, l2id, line, (ST_DumpPoints(geom)).geom as point from intergeom) as foo
+--        where ' || vst_line_locate_point || '(line,point)<>0 and ' || vst_line_locate_point || '(line,point)<>1)';
+    p_ret= 'create temp table inter_loc on commit drop as ( select * from (
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,source) as locus from intergeom)
+         union
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,target) as locus from intergeom)) as foo
+        where locus<>0 and locus<>1)';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+
+    -- index on l1id
+    create index inter_loc_id_idx on inter_loc(l1id);
+
+    -- Then computes the intersection on the lines subset, which is much smaller than full set
+    -- as there are very few intersection points
+
+--- outab needs to be formally created with id, old_id, subid,the_geom, source,target
+---  so it can be inmediatly be used with createTopology
+
+--   EXECUTE 'drop table if exists ' || _pgr_quote_ident(outtab);
+--   EXECUTE 'create table ' || _pgr_quote_ident(outtab) || ' as
+     P_RET = 'insert into '||_pgr_quote_ident(outtab)||' (old_id,sub_id,'||quote_ident(n_geom)||') (  with cut_locations as (
+           select l1id as lid, locus
+           from inter_loc
+           -- then generates start and end locus for each line that have to be cut buy a location point
+           UNION ALL
+           select i.l1id  as lid, 0 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           UNION ALL
+           select i.l1id  as lid, 1 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           order by lid, locus
+       ),
+       -- we generate a row_number index column for each input line
+       -- to be able to self-join the table to cut a line between two consecutive locations
+       loc_with_idx as (
+           select lid, locus, row_number() over (partition by lid order by locus) as idx
+           from cut_locations
+       )
+       -- finally, each original line is cut with consecutive locations using linear referencing functions
+       select l.' || quote_ident(n_pkey) || ', loc1.idx as sub_id, ' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus) as ' || quote_ident(n_geom) || '
+       from loc_with_idx loc1 join loc_with_idx loc2 using (lid) join ' || _pgr_quote_ident(intab) || ' l on (l.' || quote_ident(n_pkey) || ' = loc1.lid)
+       where loc2.idx = loc1.idx+1
+           -- keeps only linestring geometries
+           and geometryType(' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus)) = ''LINESTRING'') ';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+	GET DIAGNOSTICS splits = ROW_COUNT;
+        execute 'with diff as (select distinct old_id from '||_pgr_quote_ident(outtab)||' )
+                 select count(*) from diff' into touched;
+	-- here, it misses all original line that did not need to be cut by intersection points: these lines
+	-- are already clean
+	-- inserts them in the final result: all lines which gid is not in the res table.
+	EXECUTE 'insert into ' || _pgr_quote_ident(outtab) || ' (old_id , sub_id, ' || quote_ident(n_geom) || ')
+                ( with used as (select distinct old_id from '|| _pgr_quote_ident(outtab)||')
+		select ' ||  quote_ident(n_pkey) || ', 1 as sub_id, ' ||  quote_ident(n_geom) ||
+		' from '|| _pgr_quote_ident(intab) ||' where  '||quote_ident(n_pkey)||' not in (select * from used)' || rows_where || ')';
+	GET DIAGNOSTICS untouched = ROW_COUNT;
+
+	raise NOTICE '  Split Edges: %', touched;
+	raise NOTICE ' Untouched Edges: %', untouched;
+	raise NOTICE '     Total original Edges: %', touched+untouched;
+        RAISE NOTICE ' Edges generated: %', splits;
+	raise NOTICE ' Untouched Edges: %',untouched;
+	raise NOTICE '       Total New segments: %', splits+untouched;
+        RAISE NOTICE ' New Table: %', outtab;
+        RAISE NOTICE '----------------------------------';
+
+    drop table  if exists intergeom;
+    drop table if exists inter_loc;
+    RETURN 'OK';
+END;
+$BODY$
+    LANGUAGE 'plpgsql' VOLATILE STRICT COST 100;
+
+
+COMMENT ON FUNCTION pgr_nodeNetwork(text, double precision, text, text, text, text, boolean )
+ IS  'edge_table, tolerance, id:=''id'', the_geom:=''the_geom'', table_ending:=''noded'' ';
+
+
+CREATE OR REPLACE FUNCTION pgr_labelGraph(
+                edge_table text,
+                id text default 'id',
+                source text default 'source',
+                target text default 'target',
+                subgraph text default 'subgraph',
+                rows_where text default 'true'
+        )
+        RETURNS character varying AS
+$BODY$
+
+DECLARE
+        naming record;
+        schema_name text;
+        table_name text;
+        garbage text;
+        incre integer;
+        table_schema_name text;
+        query text;
+        ecnt integer;
+        sql1 text;
+        rec1 record;
+        sql2 text;
+        rec2 record;
+        rec_count record;
+        rec_single record;
+        graph_id integer;
+        gids int [];
+
+BEGIN
+        raise notice 'Processing:';
+        raise notice 'pgr_brokenGraph(''%'',''%'',''%'',''%'',''%'',''%'')', edge_table,id,source,target,subgraph,rows_where;
+        raise notice 'Performing initial checks, please hold on ...';
+
+        Raise Notice 'Starting - Checking table ...';
+        BEGIN
+                raise debug 'Checking % table existance', edge_table;
+                execute 'select * from pgr_getTableName('|| quote_literal(edge_table) ||')' into naming;
+                schema_name = naming.sname;
+                table_name = naming.tname;
+                table_schema_name = schema_name||'.'||table_name;
+                IF schema_name is null then
+                        raise notice 'no schema';
+                        return 'FAIL';
+                else
+                        if table_name is null then
+                                raise notice 'no table';
+                                return 'FAIL';
+                        end if;
+                end if;
+        END;
+        Raise Notice 'Ending - Checking table';
+
+        Raise Notice 'Starting - Checking columns';
+        BEGIN
+                raise debug 'Checking exitance of necessary columns inside % table', edge_table;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(id) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no id column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(source) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no source column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(target) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no target column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(subgraph) ||')' into naming;
+                if naming.pgr_iscolumnintable = 't' then
+                        raise notice 'subgraph column already in the table';
+                        return 'FAIL';
+                end if;
+        END;
+        Raise Notice 'Ending - Checking columns';
+
+        Raise Notice 'Starting - Checking rows_where condition';
+        BEGIN
+                raise debug 'Checking rows_where condition';
+                query='select count(*) from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where;
+                execute query into ecnt;
+                raise debug '-->Rows where condition: OK';
+                raise debug '    --> OK';
+                EXCEPTION WHEN OTHERS THEN
+                        raise notice 'Got %', SQLERRM;
+                        Raise notice 'ERROR: Condition is not correct. Please execute the following query to test your condition';
+                        Raise notice '%', query;
+                        return 'FAIL';
+        END;
+        Raise Notice 'Ending - Checking rows_where condition';
+
+        garbage := 'garbage001';
+        incre := 1;
+        Raise Notice 'Starting - Checking temporary column';
+        Begin
+                raise debug 'Checking Checking temporary columns existance';
+
+                While True
+                        Loop
+                                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(garbage) ||')' into naming;
+                                If naming.pgr_iscolumnintable = 't' THEN
+                                        incre := incre + 1;
+                                        garbage := 'garbage00'||incre||'';
+                                ELSE
+                                        EXIT;
+                                END IF;
+                        End Loop;
+        End;
+        Raise Notice 'Ending - Checking temporary column';
+
+        Raise Notice 'Starting - Calculating subgraphs';
+        BEGIN
+                --------- Add necessary columns ----------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(subgraph) || ' INTEGER DEFAULT -1';
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(garbage) || ' INTEGER DEFAULT 0';
+                graph_id := 1;
+
+                EXECUTE 'select count(*) as count from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where ||'' into rec_count;
+                if rec_count.count = 0 then
+                        RETURN 'rows_where condition generated 0 rows';
+                end if;
+
+                WHILE TRUE
+                        LOOP
+                                ---------- Assign the very first -1 row graph_id ----------
+                                EXECUTE 'SELECT ' || pgr_quote_ident(id) || ' AS gid FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1 LIMIT 1' INTO rec_single;
+                                EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec_single.gid || '';
+
+                                --------- Search other rows with that particular graph_id -----------
+                                WHILE TRUE
+                                        LOOP
+                                                EXECUTE 'SELECT COUNT(*) FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0' into rec_count;
+                                                ----------- The following if else will check those rows which already have entertained ------------
+                                                IF (rec_count.count > 0) THEN
+                                                        sql1 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0';
+                                                        FOR rec1 IN EXECUTE sql1
+                                                                LOOP
+                                                                        sql2 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| pgr_quote_ident(source) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(source) ||' = '|| rec1.target ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.target ||'';
+                                                                        FOR rec2 IN EXECUTE sql2
+                                                                                LOOP
+                                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec2.gid || '';
+                                                                                END LOOP;
+                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(garbage) || ' = 1 WHERE ' || pgr_quote_ident(id) || ' = ' || rec1.gid || '';
+                                                                END LOOP;
+                                                ELSE
+                                                        EXIT;
+                                                END IF;
+                                        END LOOP;
+
+                                ------ Following is to exit the while loop. 0 means no more -1 id.
+                                EXECUTE 'SELECT COUNT(*) AS count FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1' INTO rec_count;
+                                If (rec_count.count = 0) THEN
+                                        EXIT;
+                                ELSE
+                                        graph_id := graph_id + 1;
+                                END IF;
+                        END LOOP;
+
+                ----------- Drop garbage column ------------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' DROP COLUMN ' || pgr_quote_ident(garbage) ||'';
+                Raise Notice 'Successfully complicated calculating subgraphs';
+        END;
+        Raise Notice 'Ending - Calculating subgraphs';
+
+        RETURN 'OK';
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCostMatrix(
+    edges_sql TEXT,
+    points_sql TEXT,
+    pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_pid, a.end_pid, a.agg_cost
+        FROM _pgr_withPoints($1, $2, $3, $3, $4,  $5, TRUE, TRUE) AS a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+--  DIJKSTRA DMatrix
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCostMatrix(edges_sql TEXT, vids ANYARRAY, directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2, $2, $3, true) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+
+--  BIDIRECTIONAL DIJKSTRA Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCostMatrix(edges_sql TEXT, vids ANYARRAY, directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_astarCostMatrix(
+    edges_sql TEXT, -- XY edges sql
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2, $2, $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+--  BIDIRECTIONAL ASTAR Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdAstarCostMatrix(
+    edges_sql TEXT,
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_bdAstarCostMatrix(TEXT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCostMatrix';
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_getTableName(IN tab text,OUT sname text,OUT tname text)
+RETURNS RECORD AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getTableName: This function will no longer be soported';
+    select * from _pgr_getTableName(tab, 0, 'pgr_getTableName') into sname,tname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_getColumnName(tab text, col text)
+RETURNS text AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getColumnName: This function will no longer be soported';
+    return _pgr_getColumnName(tab,col, 0, 'pgr_getColumnName');
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    select * from _pgr_getColumnName(tab,col,0, 'pgr_isColumnInTable') into cname;
+    return  cname IS not NULL;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnIndexed(tab text, col text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnIndexed: This function will no longer be soported';
+    return  _pgr_isColumnIndexed(tab,col);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+create or replace function pgr_quote_ident(idname text)
+returns text as
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    return  _pgr_quote_ident(idname);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_versionless(v1 text, v2 text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_versionless: This function will no longer be soported';
+    return  _pgr_versionless(v1,v2);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+create or replace function pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_startPoint: This function will no longer be soported';
+    return  _pgr_startPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_endPoint: This function will no longer be soported';
+    return  _pgr_endPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_apspJohnson(edges_sql text)
+    RETURNS SETOF pgr_costResult AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function: Use pgr_johnson instead';
+      has_reverse =_pgr_parameter_check('johnson', edges_sql, false);
+      sql = edges_sql;
+      IF (has_reverse) THEN
+           RAISE NOTICE 'reverse_cost column found, removing.';
+           sql = 'SELECT source, target, cost FROM (' || edges_sql || ') a';
+      END IF;
+
+      RETURN query
+         SELECT (row_number() over () - 1)::integer as seq, start_vid::integer AS id1, end_vid::integer AS id2, agg_cost AS cost
+         FROM  pgr_johnson(sql, TRUE);
+  END
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_apspWarshall(edges_sql text, directed boolean, has_rcost boolean)
+    RETURNS SETOF pgr_costResult AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function: Use pgr_floydWarshall instead';
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+      sql := edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_reverse) THEN
+           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+         ELSE raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+         END IF;
+      END IF;
+
+      RETURN query
+         SELECT (row_number() over () -1)::integer as seq, start_vid::integer AS id1, end_vid::integer AS id2, agg_cost AS cost
+         FROM  pgr_floydWarshall(sql, directed);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_astar(edges_sql TEXT, source_id INTEGER, target_id INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated signature pgr_astar(text, integer, integer, boolean, boolean)';
+    has_reverse =_pgr_parameter_check('astar', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost, x1,y1, x2, y2 FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+    FROM pgr_astar(sql, ARRAY[$2], ARRAY[$3], directed);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    sql TEXT,
+    source_vid INTEGER,
+    target_vid INTEGER,
+    directed BOOLEAN,
+    has_reverse_cost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdAstar';
+    has_reverse =_pgr_parameter_check('astar', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdAstar(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(edges_sql TEXT, start_vid INTEGER, end_vid INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdDijkstra';
+    has_reverse =_pgr_parameter_check('dijkstra', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdDijkstra(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstraPath(
+    sql text,
+    source INTEGER,
+    targets INTEGER ARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+    RETURNS SETOF pgr_costResult3 AS
+    $BODY$
+    DECLARE
+    has_reverse BOOLEAN;
+    new_sql TEXT;
+    result pgr_costResult3;
+    tmp pgr_costResult3;
+    sseq INTEGER;
+    i INTEGER;
+    BEGIN
+        RAISE NOTICE 'Deprecated function: Use pgr_dijkstra instead.';
+        has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+        new_sql = sql;
+        IF (array_ndims(targets) != 1) THEN
+            raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+
+        IF (has_reverse != has_rcost) THEN
+            IF (has_reverse) THEN
+                new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+            ELSE
+                raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+                USING ERRCODE = 'XX000';
+            END IF;
+        END IF;
+        SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+        sseq = 0; i = 1;
+        FOR result IN
+            SELECT seq, a.end_vid::INTEGER AS id1, a.node::INTEGER AS i2, a.edge::INTEGER AS id3, cost
+            FROM pgr_dijkstra(new_sql, source, targets, directed) a ORDER BY a.end_vid, seq LOOP
+            WHILE (result.id1 != targets[i]) LOOP
+                tmp.seq = sseq;
+                tmp.id1 = targets[i];
+                IF (targets[i] = source) THEN
+                    tmp.id2 = source;
+                    tmp.cost =0;
+                ELSE
+                    tmp.id2 = 0;
+                    tmp.cost = -1;
+                END IF;
+                tmp.id3 = -1;
+                RETURN next tmp;
+                i = i + 1;
+                sseq = sseq + 1;
+            END LOOP;
+        IF (result.id1 = targets[i] AND result.id3 != -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+        IF (result.id1 = targets[i] AND result.id3 = -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.id2 = source;
+            tmp.cost = 0;
+        ELSE
+            tmp.id2 = 0;
+            tmp.cost = -1;
+        END IF;
+        tmp.id3 = -1;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstracost(
+    sql text,
+    source INTEGER,
+    targets INTEGER array,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+result pgr_costResult;
+tmp pgr_costResult;
+sseq INTEGER;
+i INTEGER;
+BEGIN
+    RAISE NOTICE 'Deprecated function. Use pgr_dijkstraCost instead.';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    new_sql = sql;
+    IF (array_ndims(targets) != 1) THEN
+        raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+        USING ERRCODE = 'XX000';
+    END IF;
+
+
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+    sseq = 0; i = 1;
+    FOR result IN
+        SELECT ((row_number() over()) -1)::INTEGER, a.start_vid::INTEGER, a.end_vid::INTEGER, agg_cost
+        FROM pgr_dijkstraCost(new_sql, source, targets, directed) a ORDER BY end_vid LOOP
+        WHILE (result.id2 != targets[i]) LOOP
+            tmp.seq = sseq;
+            tmp.id1 = source;
+            tmp.id2 = targets[i];
+            IF (targets[i] = source) THEN
+                tmp.cost = 0;
+            ELSE
+                tmp.cost = -1;
+            END IF;
+            RETURN next tmp;
+            i = i + 1;
+            sseq = sseq + 1;
+        END LOOP;
+        IF (result.id2 = targets[i]) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = source;
+        tmp.id2 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.cost = 0;
+        ELSE
+            tmp.cost = -1;
+        END IF;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+create or replace function pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    returns integer as
+$body$
+
+declare
+    rr record;
+    pct float;
+    debuglevel text;
+
+begin
+    -- find the closest edge within tol distance
+    execute 'select * from ' || _pgr_quote_ident(edges) ||
+            ' where st_dwithin(''' || pnt::text ||
+            '''::geometry, the_geom, ' || tol || ') order by st_distance(''' || pnt::text ||
+            '''::geometry, the_geom) asc limit 1' into rr;
+
+    if rr.the_geom is not null then
+        -- deal with MULTILINESTRINGS
+        if geometrytype(rr.the_geom)='MULTILINESTRING' THEN
+            rr.the_geom := ST_GeometryN(rr.the_geom, 1);
+        end if;
+
+        -- project the point onto the linestring
+        execute 'show client_min_messages' into debuglevel;
+        SET client_min_messages='ERROR';
+        pct := st_line_locate_point(rr.the_geom, pnt);
+        execute 'set client_min_messages  to '|| debuglevel;
+
+        -- return the node we are closer to
+        if pct < 0.5 then
+            return rr.source;
+        else
+            return rr.target;
+        end if;
+    else
+        -- return a failure to find an edge within tol distance
+        return -1;
+    end if;
+end;
+$body$
+  language plpgsql volatile
+  cost 5;
+
+
+----------------------------------------------------------------------------
+
+create or replace function pgr_flipedges(ga geometry[])
+    returns geometry[] as
+$body$
+
+declare
+    nn integer;
+    i integer;
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_flipEdges';
+    -- get the count of edges, and return if only one edge
+    nn := array_length(ga, 1);
+    if nn=1 then
+        return ga;
+    end if;
+
+    -- determine if first needs to be flipped
+    g := _pgr_startpoint(ga[1]);
+
+    -- if the start of the first is connected to the second then it needs to be flipped
+    if _pgr_startpoint(ga[2])=g or _pgr_endpoint(ga[2])=g then
+        ga[1] := st_reverse(ga[1]);
+    end if;
+    g := _pgr_endpoint(ga[1]);
+
+    -- now if  the end of the last edge matchs the end of the current edge we need to flip it
+    for i in 2 .. nn loop
+        if _pgr_endpoint(ga[i])=g then
+            ga[i] := st_reverse(ga[i]);
+        end if;
+        -- save the end of this edge into the last end for the next cycle
+        g := _pgr_endpoint(ga[i]);
+    end loop;
+
+    return ga;
+end;
+$body$
+    language plpgsql immutable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_texttopoints(pnts text, srid integer DEFAULT(4326))
+    returns geometry[] as
+$body$
+
+declare
+    a text[];
+    t text;
+    p geometry;
+    g geometry[];
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_textToPoints';
+    -- convert commas to space and split on ';'
+    a := string_to_array(replace(pnts, ',', ' '), ';');
+    -- convert each 'x y' into a point geometry and concattenate into a new array
+    for t in select unnest(a) loop
+        p := st_pointfromtext('POINT(' || t || ')', srid);
+        g := g || p;
+    end loop;
+
+    return g;
+end;
+$body$
+    language plpgsql immutable;
+
+-----------------------------------------------------------------------
+
+create or replace function pgr_pointstovids(pnts geometry[], edges text, tol float8 DEFAULT(0.01))
+    returns integer[] as
+$body$
+
+declare
+    v integer[];
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_pointsToVids';
+    -- cycle through each point and locate the nearest edge and vertex on that edge
+    for g in select unnest(pnts) loop
+        v := v || pgr_pointtoedgenode(edges, g, tol);
+    end loop;
+
+    return v;
+end;
+$body$
+    language plpgsql stable;
+
+
+create or replace function pgr_pointstodmatrix(pnts geometry[], mode integer default (0), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+
+declare
+    r record;
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_pointsToDMatrix';
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    -- create an id for each point in the array and unnest it into a table nodes in the with clause
+    for r in with nodes as (select row_number() over()::integer as id, p from (select unnest(pnts) as p) as foo)
+        -- compute a row of distances
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j,
+                case when mode=0
+                    then st_distance(a.p, b.p)
+                    else st_distance_sphere(a.p, b.p)
+                end as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i loop
+
+        -- you must concat an array[array[]] to make dmatrix[][]
+        -- concat the row of distances to the dmatrix
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+end;
+$body$
+    language plpgsql stable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_vidstodmatrix(IN vids integer[], IN pnts geometry[], IN edges text, tol float8 DEFAULT(0.1), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+
+declare
+    i integer;
+    j integer;
+    nn integer;
+    rr record;
+    bbox geometry;
+    t float8[];
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    -- check if the input arrays has any -1 values, maybe this whould be a raise exception
+    if vids @> ARRAY[-1] then
+    raise notice 'Some vids are undefined (-1)!';
+    dmatrix := null;
+    ids := null;
+    return;
+    end if;
+
+    ids := vids;
+
+    -- get the count of nodes
+    nn := array_length(vids,1);
+
+    -- zero out a dummy row
+    for i in 1 .. nn loop
+        t := t || 0.0::float8;
+    end loop;
+
+    -- using the dummy row, zero out the whole matrix
+    for i in 1 .. nn loop
+    dmatrix := dmatrix || ARRAY[t];
+    end loop;
+
+    for i in 1 .. nn-1 loop
+        j := i;
+        -- compute the bbox for the point needed for this row
+        select st_expand(st_collect(pnts[id]), tol) into bbox
+          from (select generate_series as id from generate_series(i, nn)) as foo;
+
+        -- compute kdijkstra() for this row
+        for rr in execute 'select * from pgr_dijkstracost($1, $2, $3, false)'
+                  using 'select id, source, target, cost from ' || edges ||
+                        ' where the_geom && ''' || bbox::text || '''::geometry'::text, vids[i], vids[i+1:nn] loop
+
+            -- TODO need to check that all node were reachable from source
+            -- I think unreachable paths between nodes returns cost=-1.0
+
+            -- populate the matrix with the cost values, remember this is symmetric
+            j := j + 1;
+            -- raise notice 'cost(%,%)=%', i, j, rr.agg_cost;
+            dmatrix[i][j] := rr.agg_cost;
+            dmatrix[j][i] := rr.agg_cost;
+        end loop;
+    end loop;
+
+end;
+$body$
+    language plpgsql stable cost 200;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_vidsToDMatrix(sql TEXT, vids  INTEGER[], dir BOOLEAN, has_rcost BOOLEAN, want_symmetric BOOLEAN)
+RETURNS float8[] AS
+$BODY$
+DECLARE
+directed BOOLEAN;
+has_reverse BOOLEAN;
+edges_sql TEXT;
+dmatrix_row float8[];
+dmatrix float8[];
+cell RECORD;
+unique_vids INTEGER[];
+total BIGINT;
+from_v BIGINT;
+to_v BIGINT;
+BEGIN
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql = sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    unique_vids :=  ARRAY(SELECT DISTINCT UNNEST(vids) ORDER BY 1);
+
+    IF want_symmetric THEN
+        directed = false;
+    ELSE
+        directed = dir;
+    END IF;
+
+    total := array_length(unique_vids, 1);
+
+    -- initializing dmatrix
+    FOR i in 1 .. total LOOP
+        dmatrix_row := dmatrix_row || '+Infinity'::float8;
+    END LOOP;
+    FOR i in 1 .. total LOOP
+    dmatrix := dmatrix || ARRAY[dmatrix_row];
+    dmatrix[i][i] = 0;
+    END LOOP;
+
+    CREATE TEMP TABLE __x___y____temp AS
+        WITH result AS
+            (SELECT unnest(unique_vids) AS vid)
+        SELECT row_number() OVER() AS idx, vid FROM result;
+
+    FOR cell IN SELECT * FROM pgr_dijkstraCostMatrix(sql, unique_vids, directed) LOOP
+        SELECT idx INTO from_v FROM __x___y____temp WHERE vid =  cell.start_vid;
+        SELECT idx INTO to_v FROM __x___y____temp WHERE vid =  cell.end_vid;
+
+        dmatrix[from_v][to_v] = cell.agg_cost;
+        dmatrix[to_v][from_v] = cell.agg_cost;
+    END LOOP;
+
+    DROP TABLE IF EXISTS __x___y____temp;
+    RETURN dmatrix;
+
+    EXCEPTION WHEN others THEN
+       DROP TABLE IF EXISTS __x___y____temp;
+       raise exception '% %', SQLERRM, SQLSTATE;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100;
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated function';
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_dijkstra(sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_dijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN) IS 'pgr_dijkstra(Deprecated signature)';
+
+
+
+
+
+-- OLD SIGNATURE
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(edges_sql text, source BIGINT, distance FLOAT, directed BOOLEAN, has_rcost BOOLEAN)
+  RETURNS SETOF pgr_costresult AS
+  $BODY$
+  DECLARE
+  has_reverse BOOLEAN;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function';
+
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, FALSE);
+
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_reverse) THEN
+             -- the user says it doesn't have reverse cost but its false
+             -- removing from query
+             RAISE NOTICE 'Contradiction found: has_rcost set to false but reverse_cost column found';
+             sql = 'SELECT id, source, target, cost, -1 as reverse_cost FROM (' || edges_sql || ') __q ';
+         ELSE
+             -- the user says it has reverse cost but its false
+             -- can't do anything
+             RAISE EXCEPTION 'has_rcost set to true but reverse_cost not found';
+         END IF;
+      END IF;
+
+      RETURN query SELECT seq - 1 AS seq, node::integer AS id1, edge::integer AS id2, agg_cost AS cost
+                FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maximumcardinalitymatching(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
+
+
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+--INTERNAL FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+
+------------------------
+-- deprecated signatures
+-----------------------
+
+COMMENT ON FUNCTION pgr_astar(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_astar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdAstar( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdAstar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdDijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdDijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_dijkstra(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_dijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_drivingDistance(text,  BIGINT,  FLOAT8,  BOOLEAN,  BOOLEAN)
+    IS 'pgr_drivingDistance(Deprecated signature)';
+
+------------------------
+-- Renamed /deprecated
+-----------------------
+COMMENT ON FUNCTION pgr_apspJohnson(TEXT)
+    IS 'pgr_apspJohnson(Renamed function) use pgr_Johnson instead';
+
+COMMENT ON FUNCTION pgr_apspWarshall(text, boolean, boolean)
+    IS 'pgr_apspWarshall(Renamed function) use pgr_floydWarshall instead';
+
+COMMENT ON FUNCTION pgr_kdijkstraPath( text, INTEGER, INTEGER ARRAY, BOOLEAN, BOOLEAN)
+    IS 'pgr_kdijkstraPath(Renamed function) use pgr_dijkstra instead';
+
+COMMENT ON FUNCTION pgr_kdijkstracost( text, INTEGER, INTEGER array, BOOLEAN, BOOLEAN)
+    IS 'pgr_kDijkstraCost(Renamed function) use pgr_dijkstraCost instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+
+
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+
+
+COMMENT ON FUNCTION pgr_gsoc_vrppdtw( text, INTEGER, INTEGER)
+    IS 'pgr_gsoc_vrppdtw(Renamed function) use pgr_pickDeliverEuclidean instead';
+
+------------------------
+-- Deprecated functions
+-----------------------
+
+COMMENT ON FUNCTION pgr_flipedges(geometry[])
+    IS 'pgr_flipedges(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_texttopoints(text,  integer)
+    IS 'pgr_texttopoints(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstovids(pnts geometry[], edges text, tol float8)
+    IS 'pgr_pointstovids(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    IS 'pgr_pointtoedgenode(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstodmatrix(geometry[], integer)
+    IS 'pgr_pointstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidstodmatrix( integer[],  geometry[],  text, float8)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidsToDMatrix(TEXT,  INTEGER[], BOOLEAN, BOOLEAN, BOOLEAN)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+
+
+
+COMMENT ON FUNCTION pgr_getTableName(IN tab text)
+    IS 'pgr_getTableName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_getColumnName(tab text, col text)
+    IS 'pgr_getColumnName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnInTable(tab text, col text)
+    IS 'pgr_isColumnInTable(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnIndexed(tab text, col text)
+    IS 'pgr_isColumnIndexed(Deprecated function)';
+
+
+COMMENT ON FUNCTION pgr_quote_ident(idname text)
+    IS 'pgr_quote_ident(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_versionless(v1 text, v2 text)
+    IS 'pgr_versionless(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_startPoint(g geometry)
+    IS 'pgr_startPoint(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_endPoint(g geometry)
+    IS 'pgr_endPoint(Deprecated function)';
+
+
diff --git a/tools/sql-update-scripts/pgrouting--2.2.0--2.5.0.sql b/tools/sql-update-scripts/pgrouting--2.2.0--2.5.0.sql
new file mode 100644
index 0000000..71975f2
--- /dev/null
+++ b/tools/sql-update-scripts/pgrouting--2.2.0--2.5.0.sql
@@ -0,0 +1,6527 @@
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-- pgRouting extension upgrade from 2.2.0 to 2.5.0
+-- generated by tools/build-extension-update-files
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+\echo Use "ALTER extension pgrouting update to '2.5.0'" to load this file. \quit
+
+
+-------------------------------------
+-- remove functions no longer in the 2.5.0 extension
+-------------------------------------
+
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,anyarray,anyarray,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,anyarray,anyarray,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,anyarray,bigint,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,anyarray,bigint,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,bigint,anyarray,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,bigint,anyarray,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,bigint,bigint,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,bigint,bigint,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_drivingdistance(text,anyarray,double precision,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_drivingdistance(text,anyarray,double precision,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_drivingdistance(text,bigint,double precision,boolean);
+DROP FUNCTION IF EXISTS _pgr_drivingdistance(text,bigint,double precision,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,anyarray,anyarray,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,anyarray,anyarray,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,anyarray,bigint,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,anyarray,bigint,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,bigint,anyarray,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,bigint,anyarray,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,bigint,bigint,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,bigint,bigint,boolean,character,boolean,boolean);
+
+
+------------------------------------------
+--    New functions:  2.0
+-- Signature change:  2.4
+--       Deprecated:  2.4
+------------------------------------------
+-- pgr_bddijkstra
+-- 2.2.0: {      sql, source_vid, target_vid, directed, has_reverse_cost}   
+-- 2.5.0: {edges_sql,  start_vid,    end_vid, directed, has_rcost}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vid","end_vid","directed","has_rcost"}'
+WHERE proname = 'pgr_bddijkstra'
+    AND proargnames = '{"sql","source_vid","target_vid","directed","has_reverse_cost"}';
+
+
+------------------------------------------
+--   New function: 2.1
+-- (types) change: 2.3
+------------------------------------------
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_gsoc_vrppdtw(text,integer,integer);
+DROP FUNCTION IF EXISTS pgr_gsoc_vrppdtw(text,integer,integer);
+
+
+
+
+------------------------------------------
+-- New functions on 2.0
+-- Signature change on 2.3
+-- Deprecated on 2.4
+------------------------------------------
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_astar(text,integer,integer,boolean,boolean);
+DROP FUNCTION IF EXISTS pgr_astar(text,integer,integer,boolean,boolean);
+
+
+
+
+------------------------------------------
+--       New functions:  2.1
+--    Signature change:  2.4
+------------------------------------------
+-- 2.2.0: {edges_sql,start_v,  distance,directed,seq,node,edge,cost,agg_cost}
+-- 2.5.0: {edges_sql,start_vid,distance,directed,seq,node,edge,cost,agg_cost}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vid","distance","directed","seq","node","edge","cost","agg_cost"}'
+WHERE proname = 'pgr_drivingdistance'
+    AND proargnames = '{"edges_sql","start_v","distance","directed","seq","node","edge","cost","agg_cost"}';
+
+
+------------------------------------------
+--       New functions:  2.1
+--    Signature change:  2.4
+------------------------------------------
+-- 2.2.0: {sql,      start_v,   distance,directed,equicost,seq,from_v,node,edge,cost,agg_cost}
+-- 2.5.0: {edges_sql,start_vids,distance,directed,equicost,seq,from_v,node,edge,cost,agg_cost}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vids","distance","directed","equicost","seq","from_v","node","edge","cost","agg_cost"}'
+WHERE proname = 'pgr_drivingdistance'
+    AND proargnames = '{"sql","start_v","distance","directed","equicost","seq","from_v","node","edge","cost","agg_cost"}';
+
+
+
+
+
+
+
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+--- pgRouting provides geospatial routing functionality.
+--- http://pgrouting.org
+--- copyright
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+---
+--- This is free software; you can redistribute and/or modify it:
+--- the terms of the GNU General Public Licence. See the COPYING file.
+--- the terms of the MIT-X Licence. See the COPYING file.
+---
+--- The following functions have MIT-X licence:
+---     pgr_version()
+---     pgr_tsp(matrix float8[][], startpt integer, endpt integer DEFAULT -1, OUT seq integer, OUT id integer)
+---     _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+---     pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
+---
+---
+--- All other functions are under GNU General Public Licence.
+---
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+--
+-- WARNING: Any change in this file must be evaluated for compatibility.
+--          Changes cleanly handled by postgis_upgrade.sql are fine,
+--          other changes will require a bump in Major version.
+--          Currently only function replaceble by CREATE OR REPLACE
+--          are cleanly handled.
+--
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+
+--  pgRouting 2.0 types
+
+
+
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_version()
+RETURNS TABLE(
+        "version" varchar,
+        tag varchar,
+        hash varchar,
+        branch varchar,
+        boost varchar
+    ) AS
+$BODY$
+    SELECT '2.5.0'::varchar AS version,
+        'v2.5.0'::varchar AS tag,
+        ''::varchar AS hash,
+        ''::varchar AS branch,
+        '1.54.0'::varchar AS boost;
+$BODY$
+LANGUAGE sql IMMUTABLE;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getTableName(IN tab text, IN reportErrs int default 0, IN fnName text default '_pgr_getTableName', OUT sname text,OUT tname text)
+  RETURNS RECORD AS
+$$
+DECLARE
+        naming record;
+        i integer;
+        query text;
+        sn text; -- schema name
+        tn text; -- table name
+        ttype text; --table type for future use
+        err boolean;
+        debuglevel text;
+        var_types text[] = ARRAY['BASE TABLE', 'VIEW'];
+BEGIN
+
+    execute 'show client_min_messages' into debuglevel;
+
+
+    perform _pgr_msg( 0, fnName, 'Checking table ' || tab || ' exists');
+    --RAISE DEBUG 'Checking % exists',tab;
+
+    i := strpos(tab,'.');
+    IF (i <> 0) THEN
+        sn := split_part(tab, '.',1);
+        tn := split_part(tab, '.',2);
+    ELSE
+        sn := current_schema;
+        tn := tab;
+    END IF;
+
+
+   SELECT schema_name INTO sname
+   FROM information_schema.schemata WHERE schema_name = sn;
+
+    IF sname IS NOT NULL THEN -- found schema (as is)
+       SELECT table_name, table_type INTO tname, ttype
+       FROM information_schema.tables
+       WHERE
+                table_type = ANY(var_types) and
+                table_schema = sname and
+                table_name = tn ;
+        IF tname is NULL THEN
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  = ANY(var_types) and
+                table_schema = sname and
+                table_name = lower(tn) ORDER BY table_name;
+        END IF;
+    END IF;
+    IF sname is NULL or tname is NULL THEN --schema not found or table not found
+        SELECT schema_name INTO sname
+        FROM information_schema.schemata
+        WHERE schema_name = lower(sn) ;
+
+        IF sname IS NOT NULL THEN -- found schema (with lower caps)
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  =  ANY(var_types) and
+                table_schema = sname and
+                table_name= tn ;
+
+           IF tname IS NULL THEN
+                SELECT table_name, table_type INTO tname, ttype
+                FROM information_schema.tables
+                WHERE
+                    table_type  =  ANY(var_types) and
+                    table_schema = sname and
+                    table_name= lower(tn) ;
+           END IF;
+        END IF;
+    END IF;
+   err = (sname IS NULL OR tname IS NULL);
+   perform _pgr_onError(err, reportErrs, fnName, 'Table ' || tab ||' not found',' Check your table name', 'Table '|| tab || ' found');
+
+END;
+$$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(sname text, tname text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(col) into cname;
+
+    IF cname is null  THEN
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(lower(col))  into cname;
+    END if;
+
+    err = cname is null;
+
+    perform _pgr_onError(err, reportErrs, fnName,  'Column '|| col ||' not found', ' Check your column name','Column '|| col || ' found');
+    RETURN cname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(tab text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+
+    select * into cname from _pgr_getColumnName(sname,tname,col,reportErrs, fnName);
+    RETURN cname;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    select * from _pgr_getColumnName(tab,col,0, '_pgr_isColumnInTable') into cname;
+    return cname is not null;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(sname text, tname text, cname text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    pkey text;
+BEGIN
+    SELECT
+          pg_attribute.attname into pkey
+         --  format_type(pg_attribute.atttypid, pg_attribute.atttypmod)
+          FROM pg_index, pg_class, pg_attribute
+          WHERE
+                  pg_class.oid = _pgr_quote_ident(sname||'.'||tname)::regclass AND
+                  indrelid = pg_class.oid AND
+                  pg_attribute.attrelid = pg_class.oid AND
+                  pg_attribute.attnum = any(pg_index.indkey)
+                  AND indisprimary;
+
+    IF pkey=cname then
+          RETURN TRUE;
+    END IF;
+
+    SELECT a.index_name,
+           b.attname,
+           b.attnum,
+           a.indisunique,
+           a.indisprimary
+      INTO rec
+      FROM ( SELECT a.indrelid,
+                    a.indisunique,
+                    a.indisprimary,
+                    c.relname index_name,
+                    unnest(a.indkey) index_num
+               FROM pg_index a,
+                    pg_class b,
+                    pg_class c,
+                    pg_namespace d
+              WHERE b.relname=tname
+                AND b.relnamespace=d.oid
+                AND d.nspname=sname
+                AND b.oid=a.indrelid
+                AND a.indexrelid=c.oid
+           ) a,
+           pg_attribute b
+     WHERE a.indrelid = b.attrelid
+       AND a.index_num = b.attnum
+       AND b.attname = cname
+  ORDER BY a.index_name,
+           a.index_num;
+
+  RETURN FOUND;
+  EXCEPTION WHEN OTHERS THEN
+    perform _pgr_onError( true, reportErrs, fnName,
+    'Error when checking for the postgres system attributes', SQLERR);
+    RETURN FALSE;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(tab text, col text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    sname text;
+    tname text;
+    cname text;
+    pkey text;
+    value boolean;
+BEGIN
+    SELECT * into naming FROM _pgr_getTableName(tab, 0, fnName);
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    SELECT * into cname from _pgr_getColumnName(sname, tname, col, 0, fnName) ;
+    IF cname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    select * into value  from _pgr_isColumnIndexed(sname, tname, cname, reportErrs, fnName);
+    return value;
+END
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+create or replace function _pgr_quote_ident(idname text)
+    returns text as
+$body$
+declare
+    t text[];
+    pgver text;
+
+begin
+    pgver := regexp_replace(version(), E'^PostgreSQL ([^ ]+)[ ,].*$', E'\\1');
+
+    if _pgr_versionless(pgver, '9.2') then
+        select into t array_agg(quote_ident(term)) from
+            (select nullif(unnest, '') as term
+               from unnest(string_to_array(idname, '.'))) as foo;
+    else
+        select into t array_agg(quote_ident(term)) from
+            (select unnest(string_to_array(idname, '.', '')) as term) as foo;
+    end if;
+    return array_to_string(t, '.');
+end;
+$body$
+language plpgsql immutable;
+
+
+CREATE OR REPLACE FUNCTION _pgr_versionless(v1 text, v2 text)
+  RETURNS boolean AS
+$BODY$
+
+
+declare
+    v1a text[];
+    v2a text[];
+    nv1 integer;
+    nv2 integer;
+    ne1 integer;
+    ne2 integer;
+
+begin
+    -- separate components into an array, like:
+    -- '2.1.0-beta3dev'  =>  {2,1,0,beta3dev}
+    v1a := regexp_matches(v1, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+    v2a := regexp_matches(v2, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+
+    -- convert modifiers to numbers for comparison
+    -- we do not delineate between alpha1, alpha2, alpha3, etc
+    ne1 := case when v1a[4] is null or v1a[4]='' then 5
+                when v1a[4] ilike 'rc%' then 4
+                when v1a[4] ilike 'beta%' then 3
+                when v1a[4] ilike 'alpha%' then 2
+                when v1a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    ne2 := case when v2a[4] is null or v2a[4]='' then 5
+                when v2a[4] ilike 'rc%' then 4
+                when v2a[4] ilike 'beta%' then 3
+                when v2a[4] ilike 'alpha%' then 2
+                when v2a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    nv1 := v1a[1]::integer * 10000 +
+           coalesce(v1a[2], '0')::integer * 1000 +
+           coalesce(v1a[3], '0')::integer *  100 + ne1;
+    nv2 := v2a[1]::integer * 10000 +
+           coalesce(v2a[2], '0')::integer * 1000 +
+           coalesce(v2a[3], '0')::integer *  100 + ne2;
+
+    --raise notice 'nv1: %, nv2: %, ne1: %, ne2: %', nv1, nv2, ne1, ne2;
+
+    return nv1 < nv2;
+end;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+create or replace function _pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_startpoint(st_geometryn(g,1));
+    else
+        return st_startpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function _pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_endpoint(st_geometryn(g,1));
+    else
+        return st_endpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_parameter_check(fn text, sql text, big boolean default false)
+  RETURNS bool AS
+  $BODY$
+
+  DECLARE
+  rec record;
+  rec1 record;
+  has_rcost boolean;
+  safesql text;
+  BEGIN
+    IF (big) THEN
+       RAISE EXCEPTION 'This function is for old style functions';
+    END IF;
+
+    -- checking query is executable
+    BEGIN
+      safesql =  'select * from ('||sql||' ) AS __a__ limit 1';
+      execute safesql into rec;
+      EXCEPTION
+        WHEN OTHERS THEN
+            RAISE EXCEPTION 'Could not execute query please verify syntax of: '
+              USING HINT = sql;
+    END;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('dijkstra','astar') THEN
+        BEGIN
+          execute 'select id,source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: id, source, target, cost';
+        END;
+        execute 'select pg_typeof(id)::text as id_type, pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.id_type in ('integer'::text))
+              AND (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Error, columns ''source'', ''target'' must be of type int4, ''cost'' must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    IF fn IN ('astar') THEN
+        BEGIN
+          execute 'select x1,y1,x2,y2  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: x1,y1, x2,y2';
+        END;
+        execute 'select pg_typeof(x1)::text as x1_type, pg_typeof(y1)::text as y1_type, pg_typeof(x2)::text as x2_type, pg_typeof(y2)::text as y2_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.x1_type = 'double precision'::text)
+              AND (rec.y1_type = 'double precision'::text)
+              AND (rec.x2_type = 'double precision'::text)
+              AND (rec.y2_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Columns: x1, y1, x2, y2 must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('johnson') THEN
+        BEGIN
+          execute 'select source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING HINT = 'Please veryfy the column names: id, source, target, cost',
+                         ERRCODE = 'XX000';
+        END;
+
+        execute 'select pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Support for source,target columns only of type: integer. Support for Cost: double precision'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    -- Checking the data types of the optional reverse_cost";
+    has_rcost := false;
+    IF fn IN ('johnson','dijkstra','astar') THEN
+      BEGIN
+        execute 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||safesql||' ) AS __b__ limit 1 ' into rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+            return has_rcost;
+      END;
+      if (has_rcost) then
+        IF (big) then
+           IF  not (rec1.rev_type in ('bigint'::text, 'integer'::text, 'smallint'::text, 'double precision'::text, 'real'::text)) then
+             RAISE EXCEPTION 'Illegar type in optional parameter reverse_cost.'
+             USING ERRCODE = 'XX000';
+           END IF;
+        ELSE -- Version 2.0.0 is more restrictive
+           IF (rec1.rev_type != 'double precision') then
+             RAISE EXCEPTION 'Illegal type in optional parameter reverse_cost, must be of type float8'
+             USING ERRCODE = 'XX000';
+           END IF;
+        END IF;
+      end if;
+      return true;
+    END IF;
+    -- just for keeps
+    return true;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_onError(
+  IN errCond boolean,  -- true there is an error
+  IN reportErrs int,   -- 0, 1 or 2
+  IN fnName text,      -- function name that generates the error
+  IN msgerr text,      -- error message
+  IN hinto text default 'No hint', -- hint help
+  IN msgok text default 'OK')      -- message if everything is ok
+  RETURNS void AS
+$BODY$
+BEGIN
+  if errCond=true then
+     if reportErrs=0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+     else
+       if reportErrs = 2 then
+         raise notice '----> PGR ERROR in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+         raise raise_exception;
+       else
+         raise notice '----> PGR NOTICE in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+       end if;
+     end if;
+  else
+       raise debug 'PGR ----> %: %',fnName,msgok;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_msg(IN msgKind int, IN fnName text, IN msg text default '---->OK')
+  RETURNS void AS
+$BODY$
+BEGIN
+  if msgKind = 0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msg;
+  else
+       raise notice '----> PGR NOTICE in %: %',fnName,msg;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(sname text, tname text, cname text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    EXECUTE 'select data_type  from information_schema.columns '
+            || 'where table_name = '||quote_literal(tname)
+                 || ' and table_schema=' || quote_literal(sname)
+                 || ' and column_name='||quote_literal(cname)
+       into ctype;
+    err = ctype is null;
+    perform _pgr_onError(err, reportErrs, fnName,
+            'Type of Column '|| cname ||' not found',
+            'Check your column name',
+            'OK: Type of Column '|| cname || ' is ' || ctype);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(tab text, col text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+    select * into cname from _pgr_getColumnName(tab,col,reportErrs, fnName) ;
+    select * into ctype from _pgr_getColumnType(sname,tname,cname,reportErrs, fnName);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_get_statement(o_sql text)
+RETURNS text AS
+$BODY$
+DECLARE
+sql TEXT;
+BEGIN
+    EXECUTE 'SELECT statement FROM pg_prepared_statements WHERE name ='  || quote_literal(o_sql) || ' limit 1 ' INTO sql;
+    IF (sql IS NULL) THEN
+      RETURN   o_sql;
+    ELSE
+      RETURN  regexp_replace(sql, '(.)* as ', '', 'i');
+    END IF;
+END
+$BODY$
+LANGUAGE plpgsql STABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_checkVertTab(vertname text, columnsArr  text[],
+    IN reportErrs int default 1, IN fnName text default '_pgr_checkVertTab',
+    OUT sname text,OUT vname text)
+RETURNS record AS
+$BODY$
+DECLARE
+    cname text;
+    colname text;
+    naming record;
+    debuglevel text;
+    err  boolean;
+    msgKind int;
+
+BEGIN
+    msgKind = 0; -- debug_
+    execute 'show client_min_messages' into debuglevel;
+
+    perform _pgr_msg(msgKind, fnName, 'Checking table ' || vertname || ' exists');
+       select * from _pgr_getTableName(vertname, 0, fnName) into naming;
+       sname=naming.sname;
+       vname=naming.tname;
+       err = sname is NULL or vname is NULL;
+    perform _pgr_onError( err, 2, fnName,
+          'Vertex Table: ' || vertname || ' not found',
+          'Please create ' || vertname || ' using  _pgr_createTopology() or pgr_createVerticesTable()',
+          'Vertex Table: ' || vertname || ' found');
+
+
+    perform _pgr_msg(msgKind, fnName, 'Checking columns of ' || vertname);
+      FOREACH cname IN ARRAY columnsArr
+      loop
+         select _pgr_getcolumnName(vertname, cname, 0, fnName) into colname;
+         if colname is null then
+           perform _pgr_msg(msgKind, fnName, 'Adding column ' || cname || ' in ' || vertname);
+           set client_min_messages  to warning;
+                execute 'ALTER TABLE '||_pgr_quote_ident(vertname)||' ADD COLUMN '||cname|| ' integer';
+           execute 'set client_min_messages  to '|| debuglevel;
+           perform _pgr_msg(msgKind, fnName);
+         end if;
+      end loop;
+    perform _pgr_msg(msgKind, fnName, 'Finished checking columns of ' || vertname);
+
+    perform _pgr_createIndex(vertname , 'id' , 'btree', reportErrs, fnName);
+ END
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(
+    sname text, tname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    debuglevel text;
+    naming record;
+    tabname text;
+    query text;
+    msgKind int;
+BEGIN
+  msgKind = 0; -- debug_
+
+  execute 'show client_min_messages' into debuglevel;
+  tabname=_pgr_quote_ident(sname||'.'||tname);
+  perform _pgr_msg(msgKind, fnName, 'Checking ' || colname || ' column in ' || tabname || ' is indexed');
+    IF (_pgr_isColumnIndexed(sname,tname,colname, 0, fnName)) then
+       perform _pgr_msg(msgKind, fnName);
+    else
+      if indext = 'gist' then
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using gist('||quote_ident(colname)||')';
+      else
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using btree('||quote_ident(colname)||')';
+      end if;
+      perform _pgr_msg(msgKind, fnName, 'Adding index ' || tabname || '_' ||  colname || '_idx');
+      perform _pgr_msg(msgKind, fnName, ' Using ' ||  query);
+      set client_min_messages  to warning;
+      BEGIN
+        execute query;
+        EXCEPTION WHEN others THEN
+          perform _pgr_onError( true, reportErrs, fnName,
+            'Could not create index on:' || colname, SQLERRM);
+      END;
+      execute 'set client_min_messages  to '|| debuglevel;
+      perform _pgr_msg(msgKind, fnName);
+    END IF;
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(tabname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    naming record;
+    sname text;
+    tname text;
+
+BEGIN
+    select * from _pgr_getTableName(tabname, 2, fnName)  into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    execute _pgr_createIndex(sname, tname, colname, indext, reportErrs, fnName);
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pointToId(
+    point geometry,
+    tolerance double precision,
+    vertname text,
+    srid integer)
+
+  RETURNS bigint AS
+$BODY$
+DECLARE
+    rec record;
+    pid bigint;
+
+BEGIN
+    EXECUTE 'SELECT ST_Distance(
+        the_geom,
+        ST_GeomFromText(ST_AsText('
+                || quote_literal(point::text)
+                || '),'
+            || srid ||')) AS d, id, the_geom
+    FROM '||_pgr_quote_ident(vertname)||'
+    WHERE ST_DWithin(
+        the_geom,
+        ST_GeomFromText(
+            ST_AsText(' || quote_literal(point::text) ||'),
+            ' || srid || '),' || tolerance||')
+    ORDER BY d
+    LIMIT 1' INTO rec ;
+    IF rec.id IS NOT NULL THEN
+        pid := rec.id;
+    ELSE
+        execute 'INSERT INTO '||_pgr_quote_ident(vertname)||' (the_geom) VALUES ('||quote_literal(point::text)||')';
+        pid := lastval();
+END IF;
+
+RETURN pid;
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'many_to_many_dijkstra'
+LANGUAGE c VOLATILE;
+
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer, OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstra(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(Many to Many)';
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraVia(
+    edges_sql TEXT,
+    via_vertices ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    strict BOOLEAN DEFAULT FALSE,
+    U_turn_on_edge BOOLEAN DEFAULT TRUE,
+
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'dijkstraVia'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_johnson(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'johnson'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_floydWarshall(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'floydWarshall'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'astarManyToMany'
+LANGUAGE c VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, normal:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to Many)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true, normal:=false) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to Many)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid ANYARRAY,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+    equicost BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '$libdir/libpgrouting-2.5', 'many_withPointsDD'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_withPointsDD($1, $2, ARRAY[$3]::BIGINT[], $4, $5, $6, $7, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vids anyarray,
+    distance FLOAT,
+    directed BOOLEAN DEFAULT TRUE,
+    equicost BOOLEAN DEFAULT FALSE,
+    OUT seq integer,
+    OUT from_v  bigint,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '$libdir/libpgrouting-2.5', 'driving_many_to_dist'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vid bigint,
+    distance FLOAT8,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq integer,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer, directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'kshortest_path'
+    LANGUAGE c STABLE STRICT;
+
+-- V2 the graph is directed and there are no heap paths
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid integer, end_vid integer, k integer, has_rcost boolean)
+  RETURNS SETOF pgr_costresult3 AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated signature of pgr_ksp';
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql::text, false);
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_rcost) THEN
+           -- user says that it has reverse_cost but its not true
+           RAISE EXCEPTION 'has_reverse_cost set to true but reverse_cost not found';
+         ELSE
+           -- user says that it does not have reverse_cost but it does have it
+           -- to ignore we remove reverse_cost from the query
+           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+         END IF;
+      END IF;
+
+      RETURN query SELECT ((row_number() over()) -1)::integer  AS seq,  (path_id - 1)::integer AS id1, node::integer AS id2, edge::integer AS id3, cost
+            FROM _pgr_ksp(sql::text, start_vid, end_vid, k, TRUE, FALSE) WHERE path_id <= k;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer,
+  directed boolean default true, heap_paths boolean default false,
+  --directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  BEGIN
+         RETURN query SELECT *
+                FROM _pgr_ksp(edges_sql::text, start_vid, end_vid, k, directed, heap_paths);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsKSP(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    k INTEGER,
+
+    directed BOOLEAN DEFAULT TRUE,
+    heap_paths BOOLEAN DEFAULT FALSE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER, OUT path_id INTEGER, OUT path_seq INTEGER,
+    OUT node BIGINT, OUT edge BIGINT,
+    OUT cost FLOAT, OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'withPoints_ksp'
+    LANGUAGE c STABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_unnest_matrix(matrix float8[][], OUT start_vid integer, OUT end_vid integer, out agg_cost float8)
+RETURNS SETOF record AS
+
+$body$
+DECLARE
+
+m float8[];
+
+BEGIN
+    start_vid = 1;
+    foreach m slice 1 in  ARRAY matrix
+    LOOP
+        end_vid = 1;
+        foreach agg_cost in  ARRAY m
+        LOOP
+            RETURN next;
+            end_vid = end_vid + 1;
+        END LOOP;
+        start_vid = start_vid + 1;
+    END LOOP;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_tsp(
+    matrix float8[][],
+    startpt INTEGER,
+    endpt INTEGER DEFAULT -1,
+    OUT seq INTEGER,
+    OUT id INTEGER)
+RETURNS SETOF record AS
+$body$
+DECLARE
+table_sql TEXT;
+debuglevel TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature pgr_tsp(float8[][], integer, integer)';
+
+    CREATE TEMP TABLE ___tmp2 ON COMMIT DROP AS SELECT * FROM _pgr_unnest_matrix( matrix );
+
+
+    startpt := startpt + 1;
+    IF endpt = -1 THEN endpt := startpt;
+    END IF;
+
+
+    RETURN QUERY
+    WITH
+    result AS (
+        SELECT * FROM pgr_TSP(
+        $$SELECT * FROM ___tmp2 $$,
+        startpt, endpt,
+
+        tries_per_temperature :=  500 :: INTEGER,
+        max_changes_per_temperature := 30 :: INTEGER,
+        max_consecutive_non_changes := 500 :: INTEGER,
+
+        randomize:=false)
+    )
+    SELECT (row_number() over(ORDER BY result.seq) - 1)::INTEGER AS seq, (result.node - 1)::INTEGER AS id
+
+    FROM result WHERE NOT(result.node = startpt AND result.seq != 1);
+
+    DROP TABLE ___tmp2;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+
+
+
+CREATE OR  REPLACE FUNCTION pgr_tsp(sql text, start_id INTEGER, end_id INTEGER default (-1))
+returns setof pgr_costResult as
+$body$
+DECLARE
+table_sql TEXT;
+rec RECORD;
+debuglevel TEXT;
+n BIGINT;
+
+BEGIN
+    RAISE NOTICE 'Deprecated Signature pgr_tsp(sql, integer, integer)';
+
+    table_sql := 'CREATE TEMP TABLE ___tmp ON COMMIT DROP AS ' || sql ;
+    EXECUTE table_sql;
+
+
+    BEGIN
+        EXECUTE 'SELECT id, x, y FROM ___tmp' INTO rec;
+        EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                USING ERRCODE = 'XX000',
+                HINT = 'Please verify the column names: id, x, y';
+    END;
+
+    EXECUTE
+    'SELECT
+        pg_typeof(id)::text as id_type,
+        pg_typeof(x)::text as x_type,
+        pg_typeof(y)::text as y_type FROM ___tmp' INTO rec;
+
+
+    IF NOT((rec.id_type in ('integer'::text))
+        AND (rec.x_type = 'double precision'::text)
+        AND (rec.y_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION '''id'' must be of type INTEGER, ''x'' ad ''y'' must be of type FLOAT'
+            USING ERRCODE = 'XX000';
+    END IF;
+
+    EXECUTE 'SELECT count(*) AS n FROM (' || sql || ') AS __a__' INTO rec;
+    n = rec.n;
+
+    RETURN query
+        SELECT (seq - 1)::INTEGER AS seq, node::INTEGER AS id1, node::INTEGER AS id2, cost
+        FROM pgr_eucledianTSP(sql, start_id, end_id,
+
+            tries_per_temperature :=  500 * n :: INTEGER,
+            max_changes_per_temperature := 60 * n :: INTEGER,
+            max_consecutive_non_changes := 500 * n :: INTEGER,
+
+            randomize := false) WHERE seq <= n;
+    DROP TABLE ___tmp;
+
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+
+create or replace function _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+  as
+$body$
+declare
+    sql text;
+    r record;
+
+begin
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    sql := 'with nodes as (' || sqlin || ')
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j, st_distance(st_makepoint(a.x, a.y), st_makepoint(b.x, b.y)) as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i';
+
+    for r in execute sql loop
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+
+end;
+$body$
+language plpgsql stable cost 10;
+
+
+CREATE OR REPLACE FUNCTION pgr_TSP(
+    matrix_row_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '$libdir/libpgrouting-2.5', 'newTSP'
+LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_eucledianTSP(
+    coordinates_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '$libdir/libpgrouting-2.5', 'eucledianTSP'
+LANGUAGE c VOLATILE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_alphashape(sql text, alpha float8 DEFAULT 0, OUT x float8, OUT y float8)
+    RETURNS SETOF record
+    AS '$libdir/libpgrouting-2.5', 'alphashape'
+    LANGUAGE c VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_pointsAsPolygon(query varchar, alpha float8 DEFAULT 0)
+	RETURNS geometry AS
+	$$
+	DECLARE
+		r record;
+		geoms geometry[];
+		vertex_result record;
+		i int;
+		n int;
+		spos int;
+		q text;
+		x float8[];
+		y float8[];
+
+	BEGIN
+		geoms := array[]::geometry[];
+		i := 1;
+
+		FOR vertex_result IN EXECUTE 'SELECT x, y FROM pgr_alphashape('''|| query || ''', ' || alpha || ')'
+		LOOP
+			x[i] = vertex_result.x;
+			y[i] = vertex_result.y;
+			i := i+1;
+		END LOOP;
+
+		n := i;
+		IF n = 1 THEN
+			RAISE NOTICE 'n = 1';
+			RETURN NULL;
+		END IF;
+
+		spos := 1;
+		q := 'SELECT ST_GeometryFromText(''POLYGON((';
+		FOR i IN 1..n LOOP
+			IF x[i] IS NULL AND y[i] IS NULL THEN
+				q := q || ', ' || x[spos] || ' ' || y[spos] || '))'',0) AS geom;';
+				EXECUTE q INTO r;
+				geoms := geoms || array[r.geom];
+				q := '';
+			ELSE
+				IF q = '' THEN
+					spos := i;
+					q := 'SELECT ST_GeometryFromText(''POLYGON((';
+				END IF;
+				IF i = spos THEN
+					q := q || x[spos] || ' ' || y[spos];
+				ELSE
+					q := q || ', ' || x[i] || ' ' || y[i];
+				END IF;
+			END IF;
+		END LOOP;
+
+		RETURN ST_BuildArea(ST_Collect(geoms));
+	END;
+	$$
+	LANGUAGE 'plpgsql' VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'bd_astar'
+LANGUAGE C VOLATILE;
+
+
+
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed:=true, only_cost:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    BOOLEAN,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false);
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to Many)';
+
+
+
+-- one to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to Many)';
+
+
+-- bdDijkstra MANY TO MANY
+CREATE OR REPLACE FUNCTION _pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'bdDijkstra'
+LANGUAGE c VOLATILE;
+
+
+
+-- ONE TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- TODO directed BOOLEAN DEFAULT TRUE,  on version 3
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, false) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, true) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_vid integer,
+    target_vid integer,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '$libdir/libpgrouting-2.5', 'turn_restrict_shortest_path_vertex'
+LANGUAGE 'c' IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '$libdir/libpgrouting-2.5', 'turn_restrict_shortest_path_edge'
+LANGUAGE 'c' IMMUTABLE;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || edges_sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        -- no restrictions then its a dijkstra
+        RETURN query SELECT a.seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_dijkstra(new_sql, start_vid, end_vid, directed) a;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, start_vid, end_vid, directed, has_rcost, restrictions_sql);
+    RETURN;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_trspViaVertices(
+    edges_sql TEXT,
+    via_vids ANYARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult3 AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            new_sql :=
+               'WITH old_sql AS (' || edges_sql || ')' ||
+                '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        RETURN query SELECT (row_number() over())::INTEGER, path_id:: INTEGER, node::INTEGER,
+            (CASE WHEN edge = -2 THEN -1 ELSE edge END)::INTEGER, cost
+            FROM pgr_dijkstraVia(new_sql, via_vids, directed, strict:=true) WHERE edge != -1;
+        RETURN;
+    END IF;
+
+
+    -- make the call without contradiction from part of the user
+    RETURN query SELECT * FROM _pgr_trspViaVertices(new_sql, via_vids::INTEGER[], directed, has_rcost, restrictions_sql);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+
+    new_sql := sql;
+    IF (has_reverse != has_reverse_cost) THEN  -- user contradiction
+        IF (has_reverse) THEN
+            -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) THEN
+        -- no restrictions then its a with points
+        RETURN query SELECT a.seq-1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_withpoints(new_sql,
+            '(SELECT 1 as pid, ' || source_eid || 'as edge_id, ' || source_pos || '::float8 as fraction)'
+            || ' UNION '
+            || '(SELECT 2, ' || target_eid || ', ' || target_pos || ')' ::TEXT,
+            -1, -2, directed) a;
+        -- WHERE node != -2;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, source_eid, source_pos, target_eid, target_pos, directed, has_reverse_cost, turn_restrict_sql);
+    RETURN;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+create or replace function _pgr_trspViaVertices(sql text, vids integer[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    lrra boolean := false;
+    seq integer := 0;
+    seq2 integer := 0;
+
+begin
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(vids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from _pgr_trsp(sql, vids[i], vids[i+1], directed, has_rcost, turn_restrict_sql) as a loop
+            -- filter out the individual path ends except the last one
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --raise notice 'rr: %', rr;
+            if rr.id3 = -1 then
+                lrr := rr;
+                lrra := true;
+            else
+                seq := seq + 1;
+                rr.seq := seq;
+                return next rr;
+            end if;
+        end loop;
+    end loop;
+
+    if lrra then
+        seq := seq + 1;
+        lrr.seq := seq;
+        return next lrr;
+    end if;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+
+----------------------------------------------------------------------------------------------------------
+
+create or replace function pgr_trspViaEdges(sql text, eids integer[], pcts float8[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    first boolean := true;
+    seq integer := 0;
+    seq2 integer :=0;
+    has_reverse BOOLEAN;
+    point_is_vertex BOOLEAN := false;
+    edges_sql TEXT;
+    f float;
+
+begin
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql := sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (NOT has_rcost) THEN
+            -- user does not want to use reverse cost column
+            edges_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    FOREACH f IN ARRAY pcts LOOP
+        IF f in (0,1) THEN
+           point_is_vertex := true;
+        END IF;
+    END LOOP;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) AND NOT point_is_vertex THEN
+        -- no restrictions then its a _pgr_withPointsVia
+        RETURN query SELECT a.seq::INTEGER, path_id::INTEGER AS id1, node::INTEGER AS id2, edge::INTEGER AS id3, cost
+        FROM _pgr_withPointsVia(edges_sql, eids, pcts, directed) a;
+        RETURN;
+    END IF;
+
+    if array_length(eids, 1) != array_length(pcts, 1) then
+        raise exception 'The length of arrays eids and pcts must be the same!';
+    end if;
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(eids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from pgr_trsp(edges_sql,
+                                  eids[i], pcts[i],
+                                  eids[i+1], pcts[i+1],
+                                  directed,
+                                  has_rcost,
+                                  turn_restrict_sql) as a loop
+            -- combine intermediate via costs when cost is split across
+            -- two parts of a segment because it stops it and
+            -- restarts the next leg also on it
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --
+            -- there are multiple condition we have to deal with
+            -- between the end of one leg and start of the next
+            -- 1. same vertex_id. edge_id=-1; drop record with edge_id=-1
+            -- means: path ends on vertex
+            -- NOTICE:  rr: (19,1,44570022,-1,0)
+            -- NOTICE:  rr: (0,2,44570022,1768045,2.89691196717448)
+            -- 2. vertex_id=-1; sum cost components
+            -- means: path end/starts with the segment
+            -- NOTICE:  rr: (11,2,44569628,1775909,9.32885885148532)
+            -- NOTICE:  rr: (0,3,-1,1775909,0.771386350984395)
+
+            --raise notice 'rr: %', rr;
+            if first then
+                lrr := rr;
+                first := false;
+            else
+                if lrr.id3 = -1 then
+                    lrr := rr;
+                elsif lrr.id3 = rr.id3 then
+                    lrr.cost := lrr.cost + rr.cost;
+                    if rr.id2 = -1 then
+                        rr.id2 := lrr.id2;
+                    end if;
+                else
+                    seq := seq + 1;
+                    lrr.seq := seq;
+                    return next lrr;
+                    lrr := rr;
+                end if;
+            end if;
+        end loop;
+    end loop;
+
+    seq := seq + 1;
+    lrr.seq := seq;
+    return next lrr;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+----------------------------
+--    MANY TO MANY
+----------------------------
+
+
+CREATE OR REPLACE FUNCTION _pgr_maxflow(
+    edges_sql TEXT,
+    sources ANYARRAY,
+    targets ANYARRAY,
+    algorithm INTEGER DEFAULT 1,
+    only_flow BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'max_flow_many_to_many'
+    LANGUAGE c VOLATILE;
+
+
+
+
+------------------------------------
+-- 3 pgr_edmondsKarp
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+------------------------------------
+-- 2 boykov_kolmogorov
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+------------------------------------
+-- 1 pgr_pushRelabel
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT flow
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], algorithm := 1, only_flow := true);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], $3::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, $2::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxCardinalityMatch(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'edge_disjoint_paths_many_to_many'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    bigint,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    IN directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_contractGraph(
+    edges_sql TEXT,
+    contraction_order BIGINT[],
+    max_cycles integer DEFAULT 1,
+    forbidden_vertices BIGINT[] DEFAULT ARRAY[]::BIGINT[],
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT type TEXT,
+    OUT id BIGINT,
+    OUT contracted_vertices BIGINT[],
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost float)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'contractGraph'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliver(
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_cell_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'pickDeliver'
+LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliverEuclidean (
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'pickDeliverEuclidean'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_vrpOneDepot(
+    TEXT, -- customers_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_sql
+    INTEGER, -- depot_id
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+orders_sql TEXT;
+trucks_sql TEXT;
+matrix_sql TEXT;
+final_sql TEXT;
+BEGIN
+
+    orders_sql = $$WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    pickups AS (
+        SELECT id, x AS p_x, y AS p_y, open_time AS p_open, close_time AS p_close, service_time AS p_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vrp_orders.id AS id, order_unit AS demand, pickups.id AS p_node_id, p_x, p_y, p_open, p_close, p_service,
+    vrp_orders.id AS d_node_id, x AS d_x, y AS d_y, open_time AS d_open, close_time AS d_close, service_time AS d_service
+    FROM vrp_orders, pickups
+    WHERE vrp_orders.id != $$ || $4;
+
+
+    trucks_sql = $$ WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    vrp_vehicles AS ($$ || $2 || $$ ),
+    starts AS (
+        SELECT id AS start_node_id, x AS start_x, y AS start_y, open_time AS start_open, close_time AS start_close, service_time AS start_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vehicle_id AS id, capacity, starts.* FROM vrp_vehicles, starts;
+    $$;
+
+    final_sql = '
+    SELECT * FROM _pgr_pickDeliver(
+            $$' || orders_sql || '$$,
+            $$' || trucks_sql || '$$,
+            $$' || $3 || '$$,
+            max_cycles := 2,
+            initial_sol := 4 ); ';
+
+    RAISE DEBUG '%', orders_sql;
+    RAISE DEBUG '%', trucks_sql;
+    RAISE DEBUG '%', $3;
+    RAISE DEBUG '%', final_sql;
+
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+-----------------------------------------------------------------------
+-- Core function for vrp with sigle depot computation
+-- See README for description
+-----------------------------------------------------------------------
+--
+--
+
+create or replace function pgr_vrpOneDepot(
+	order_sql text,
+	vehicle_sql text,
+	cost_sql text,
+	depot_id integer,
+
+	OUT oid integer,
+	OUT opos integer,
+	OUT vid integer,
+	OUT tarrival integer,
+	OUT tdepart integer)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT order_id::INTEGER, stop_seq::INTEGER, vehicle_id::INTEGER, arrival_time::INTEGER, departure_time::INTEGER
+    FROM _pgr_vrpOneDepot($1, $2,
+       '
+            SELECT src_id AS start_vid, dest_id AS end_vid, traveltime AS agg_cost FROM ('||$3||') AS a
+       ',
+        $4
+    ) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_gsoc_vrppdtw(
+    customers_sql TEXT,
+    max_vehicles INTEGER,
+    capacity FLOAT,
+    speed FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+
+    OUT seq INTEGER,
+    OUT vehicle_id INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT stop_id BIGINT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+    orders_sql TEXT;
+    vehicles_sql TEXT;
+    final_sql TEXT;
+BEGIN
+    orders_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        pickups AS (
+            SELECT id, demand, x as p_x, y as p_y, opentime as p_open, closetime as p_close, servicetime as p_service
+            FROM  customer_data WHERE pindex = 0 AND id != 0
+        ),
+        deliveries AS (
+            SELECT pindex AS id, x as d_x, y as d_y, opentime as d_open, closetime as d_close, servicetime as d_service
+            FROM  customer_data WHERE dindex = 0 AND id != 0
+        )
+        SELECT * FROM pickups JOIN deliveries USING(id) ORDER BY pickups.id
+    $$;
+
+    vehicles_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ )
+        SELECT id, x AS start_x, y AS start_y,
+            opentime AS start_open, closetime AS start_close, $$ ||
+            capacity || $$ AS capacity, $$ || max_vehicles || $$ AS number, $$ || speed || $$ AS speed
+            FROM customer_data WHERE id = 0 LIMIT 1
+        $$;
+--  seq | vehicle_id | vehicle_seq | stop_id | travel_time | arrival_time | wait_time | service_time | departure_time
+    final_sql = $$ WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        p_deliver AS (SELECT * FROM _pgr_pickDeliverEuclidean('$$ || orders_sql || $$',  '$$ || vehicles_sql || $$',  1, $$ || max_cycles || $$ )),
+        picks AS (SELECT p_deliver.*, pindex, dindex, id AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 2)),
+        delivers AS (SELECT p_deliver.*, pindex, dindex, dindex AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 3)),
+        depots AS (SELECT p_deliver.*, 0 as pindex, 0 as dindex, 0 AS the_id FROM p_deliver WHERE (stop_type IN (-1,1,6))),
+        the_union AS (SELECT * FROM picks UNION SELECT * FROM delivers UNION SELECT * from depots)
+
+        SELECT (row_number() over(ORDER BY a.seq))::INTEGER, vehicle_seq, a.stop_seq, the_id::BIGINT, a.travel_time, a.arrival_time, a.wait_time, a.service_time, a.departure_time
+        FROM (SELECT * FROM the_union) AS a ORDER BY a.seq
+        $$;
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+CREATE OR REPLACE FUNCTION pgr_gsoc_vrppdtw(
+    sql text,
+    vehicle_num INTEGER,
+    capacity INTEGER
+)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+customers_sql TEXT;
+BEGIN
+    RETURN query
+         SELECT a.seq, vehicle_id::INTEGER AS id1, stop_id::INTEGER AS id2, departure_time AS cost
+        FROM _pgr_gsoc_vrppdtw($1, $2, $3, 1, 30) AS a WHERE vehicle_id NOT IN (-2);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION _pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN,
+    driving_side CHAR,
+    details BOOLEAN,
+
+    only_cost BOOLEAN DEFAULT false, -- gets path
+    normal BOOLEAN DEFAULT true, -- false for many to onu
+
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'withPoints'
+LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], ARRAY[$4]::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], ARRAY[$4]::bigint[], $5, $6, $7, FALSE, FALSE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], $4::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], $4::BIGINT[], $5,  $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION  _pgr_withPointsVia(
+    sql text,
+    via_edges bigint[],
+    fraction float[],
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  has_rcost boolean;
+  sql_new_vertices text := ' ';
+  sql_on_vertex text;
+  v_union text := ' ';
+  dummyrec record;
+  rec1 record;
+  via_vertices int[];
+  sql_safe text;
+  new_edges text;
+  BEGIN
+     BEGIN
+        sql_safe = 'SELECT id, source, target, cost, reverse_cost FROM ('|| sql || ') AS __a';
+
+        EXECUTE 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||sql_safe||' ) AS __b__ limit 1 ' INTO rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+     END;
+
+
+      IF array_length(via_edges, 1) != array_length(fraction, 1) then
+        RAISE EXCEPTION 'The length of via_edges is different of length of via_edges';
+      END IF;
+
+      FOR i IN 1 .. array_length(via_edges, 1)
+      LOOP
+          IF fraction[i] = 0 THEN
+              sql_on_vertex := 'SELECT source FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.source;
+          ELSE IF fraction[i] = 1 THEN
+              sql_on_vertex := 'SELECT target FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.target;
+          ELSE
+              via_vertices[i] = -i;
+              IF has_rcost THEN
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost,
+                              reverse_cost * (1 - ' || fraction[i] || ')  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost,
+                              reverse_cost *  ' || fraction[i] || '  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' where id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               ELSE
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               END IF;
+          END IF;
+          END IF;
+     END LOOP;
+
+     IF sql_new_vertices = ' ' THEN
+         new_edges := sql;
+     ELSE
+         IF has_rcost THEN
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost,
+                         lead(cost) OVER w  - cost AS reverse_cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL),
+                   second_part AS ( SELECT * FROM (SELECT id, lead(source) OVER w  AS source, source as target,
+                         reverse_cost - lead(reverse_cost) OVER w  AS cost,
+                         reverse_cost - lead(reverse_cost) OVER w  AS reverse_cost
+                      FROM  the_union  WHERE target > 0 and reverse_cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY reverse_cost ASC) ) as n2
+                      WHERE source IS NOT NULL),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part)
+                             UNION
+                       (SELECT * FROM second_part) ) _union )
+                  SELECT *  FROM more_union';
+         ELSE
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL ),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part) ) _union )
+                  SELECT *  FROM more_union';
+          END IF;
+      END IF;
+
+ -- raise notice '%', new_edges;
+     sql_new_vertices := sql_new_vertices || v_union || ' (' || sql || ')';
+     RETURN query SELECT *
+         FROM pgr_dijkstraVia(new_edges, via_vertices, directed, has_rcost);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_lineGraph(
+    TEXT, -- edges_sql
+    directed BOOLEAN DEFAULT true,
+    OUT seq INTEGER,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost FLOAT,
+    OUT reverse_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'lineGraph'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_connectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'connectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_strongComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'strongComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_biconnectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the edge in the component
+    OUT n_seq INTEGER,          -- nth_seq of the edge in the component
+    OUT edge BIGINT)            -- the number of the edge
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'biconnectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_articulationPoints(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'articulationPoints'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_bridges(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT edge BIGINT)            -- the number of the edge 
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'bridges'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_createtopology(edge_table text, tolerance double precision,
+		   the_geom text default 'the_geom', id text default 'id',
+		   source text default 'source', target text default 'target',rows_where text default 'true',
+		   clean boolean default FALSE)
+RETURNS VARCHAR AS
+$BODY$
+
+DECLARE
+    points record;
+    sridinfo record;
+    source_id bigint;
+    target_id bigint;
+    totcount bigint;
+    rowcount bigint;
+    srid integer;
+    sql text;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    idname text;
+    sourcename text;
+    targetname text;
+    notincluded integer;
+    i integer;
+    naming record;
+    info record;
+    flag boolean;
+    query text;
+    idtype text;
+    gtype text;
+    sourcetype text;
+    targettype text;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+    msgKind int;
+    emptied BOOLEAN;
+
+BEGIN
+    msgKind = 1; -- notice
+    fnName = 'pgr_createTopology';
+    raise notice 'PROCESSING:';
+    raise notice 'pgr_createTopology(''%'', %, ''%'', ''%'', ''%'', ''%'', rows_where := ''%'', clean := %)',edge_table,tolerance,the_geom,id,source,target,rows_where, clean;
+    execute 'show client_min_messages' into debuglevel;
+
+
+    raise notice 'Performing checks, please wait .....';
+
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+        sname=naming.sname;
+        tname=naming.tname;
+        tabname=sname||'.'||tname;
+        vname=tname||'_vertices_pgr';
+        vertname= sname||'.'||vname;
+        rows_where = ' AND ('||rows_where||')';
+      raise DEBUG '     --> OK';
+
+
+      raise debug 'Checking column names in edge table';
+        select * into idname     from _pgr_getColumnName(sname, tname,id,2,fnName);
+        select * into sourcename from _pgr_getColumnName(sname, tname,source,2,fnName);
+        select * into targetname from _pgr_getColumnName(sname, tname,target,2,fnName);
+        select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2,fnName);
+
+
+        err = sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname;
+        perform _pgr_onError( err, 2, fnName,
+               'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
+	       'Column names are OK');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking column types in edge table';
+        select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+        select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+        select * into idtype from _pgr_getColumnType(sname,tname,idname,1, fnName);
+
+        err = idtype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column id:'|| idname, ' Expected type of '|| idname || ' is integer,smallint or bigint but '||idtype||' was found');
+
+        err = sourcetype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column source:'|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+        err = targettype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column target:'|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or bigint but '||targettype||' was found');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking SRID of geometry column';
+         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+            || ' FROM ' || _pgr_quote_ident(tabname)
+            || ' WHERE ' || quote_ident(gname)
+            || ' IS NOT NULL LIMIT 1';
+         raise debug '%',query;
+         EXECUTE query INTO sridinfo;
+
+         err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+         perform _pgr_onError(err, 2, fnName,
+	     'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+
+         srid := sridinfo.srid;
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking and creating indices in edge table';
+        perform _pgr_createIndex(sname, tname , idname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+
+        gname=quote_ident(gname);
+        idname=quote_ident(idname);
+        sourcename=quote_ident(sourcename);
+        targetname=quote_ident(targetname);
+      raise DEBUG '     --> OK';
+
+
+
+
+
+    BEGIN
+        -- issue #193 & issue #210 & #213
+        -- this sql is for trying out the where clause
+        -- the select * is to avoid any column name conflicts
+        -- limit 1, just try on first record
+        -- if the where clasuse is ill formed it will be caught in the exception
+        sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+        EXECUTE sql into dummyRec;
+        -- end
+
+        -- if above where clasue works this one should work
+        -- any error will be caught by the exception also
+        sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NOT NULL AND '||
+	    idname||' IS NOT NULL)=false '||rows_where;
+        EXECUTE SQL  into notincluded;
+
+        if clean then
+            raise debug 'Cleaning previous Topology ';
+               execute 'UPDATE ' || _pgr_quote_ident(tabname) ||
+               ' SET '||sourcename||' = NULL,'||targetname||' = NULL';
+        else
+            raise debug 'Creating topology for edges with non assigned topology';
+            if rows_where=' AND (true)' then
+                rows_where=  ' and ('||quote_ident(sourcename)||' is null or '||quote_ident(targetname)||' is  null)';
+            end if;
+        end if;
+        -- my thoery is that the select Count(*) will never go through here
+        EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+             RAISE NOTICE '%',sql;
+             RETURN 'FAIL';
+    END;
+
+    BEGIN
+         raise DEBUG 'initializing %',vertname;
+         execute 'select * from _pgr_getTableName('||quote_literal(vertname)
+                                                  || ',0,' || quote_literal(fnName) ||' )' into naming;
+         emptied = false;
+         set client_min_messages  to warning;
+         IF sname=naming.sname AND vname=naming.tname  THEN
+            if clean then
+                execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+                execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+                emptied = true;
+            end if;
+         ELSE -- table doesn't exist
+            execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+            emptied = true;
+         END IF;
+         IF (emptied) THEN
+             execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+	         quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+             perform _pgr_createIndex(vertname , 'the_geom'::text , 'gist'::text);
+         END IF;
+         execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id"}''::text[])' into naming;
+         execute 'set client_min_messages  to '|| debuglevel;
+         raise DEBUG  '  ------>OK';
+         EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: something went wrong when initializing the verties table';
+             RETURN 'FAIL';
+    END;
+
+
+
+    raise notice 'Creating Topology, Please wait...';
+        rowcount := 0;
+        FOR points IN EXECUTE 'SELECT ' || idname || '::bigint AS id,'
+            || ' _pgr_StartPoint(' || gname || ') AS source,'
+            || ' _pgr_EndPoint('   || gname || ') AS target'
+            || ' FROM '  || _pgr_quote_ident(tabname)
+            || ' WHERE ' || gname || ' IS NOT NULL AND ' || idname||' IS NOT NULL '||rows_where
+        LOOP
+
+            rowcount := rowcount + 1;
+            IF rowcount % 1000 = 0 THEN
+                RAISE NOTICE '% edges processed', rowcount;
+            END IF;
+
+
+            source_id := _pgr_pointToId(points.source, tolerance,vertname,srid);
+            target_id := _pgr_pointToId(points.target, tolerance,vertname,srid);
+            BEGIN
+                sql := 'UPDATE ' || _pgr_quote_ident(tabname) ||
+                    ' SET '||sourcename||' = '|| source_id::text || ','||targetname||' = ' || target_id::text ||
+                    ' WHERE ' || idname || ' =  ' || points.id::text;
+
+                IF sql IS NULL THEN
+                    RAISE NOTICE 'WARNING: UPDATE % SET source = %, target = % WHERE % = % ', tabname, source_id::text, target_id::text, idname,  points.id::text;
+                ELSE
+                    EXECUTE sql;
+                END IF;
+                EXCEPTION WHEN OTHERS THEN
+                    RAISE NOTICE '%', SQLERRM;
+                    RAISE NOTICE '%',sql;
+                    RETURN 'FAIL';
+            end;
+        END LOOP;
+        raise notice '-------------> TOPOLOGY CREATED FOR  % edges', rowcount;
+        RAISE NOTICE 'Rows with NULL geometry or NULL id: %',notincluded;
+        Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname), _pgr_quote_ident(vertname);
+        raise notice '----------------------------------------------';
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+COMMENT ON FUNCTION pgr_createTopology(text, double precision,text,text,text,text,text,boolean)
+IS 'args: edge_table,tolerance, the_geom:=''the_geom'',source:=''source'', target:=''target'',rows_where:=''true'' - fills columns source and target in the geometry table and creates a vertices table for selected rows';
+
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
+RETURNS character varying AS
+$BODY$
+
+DECLARE
+    points record;
+    seg record;
+    naming record;
+    sridinfo record;
+    srid integer;
+    ecnt integer;
+    vertname text;
+    sname text;
+    tname text;
+    vname text;
+    idname text;
+    sourcename text;
+    targetname text;
+    sourcetype text;
+    targettype text;
+    geotype text;
+    gname text;
+    tabName text;
+    flag boolean ;
+    query text;
+    selectionquery text;
+    i integer;
+    tot integer;
+    NumIsolated integer;
+    numdeadends integer;
+    numgaps integer;
+    NumCrossing integer;
+    numRings integer;
+    debuglevel text;
+
+
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_analyzeGraph(''%'',%,''%'',''%'',''%'',''%'',''%'')',edge_table,tolerance,the_geom,id,source,target,rows_where;
+  raise notice 'Performing checks, please wait ...';
+  execute 'show client_min_messages' into debuglevel;
+
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',2)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    rows_where = ' AND ('||rows_where||')';
+    raise DEBUG '     --> OK';
+
+  END;
+
+  BEGIN
+       raise debug 'Checking Vertices table';
+       execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","cnt","chk"}''::text[])' into naming;
+       execute 'UPDATE '||_pgr_quote_ident(vertname)||' SET cnt=0 ,chk=0';
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the vertices table';
+          RETURN 'FAIL';
+  END;
+
+
+
+  BEGIN
+       raise debug 'Checking column names in edge table';
+       select * into idname     from _pgr_getColumnName(sname, tname,id,2);
+       select * into sourcename from _pgr_getColumnName(sname, tname,source,2);
+       select * into targetname from _pgr_getColumnName(sname, tname,target,2);
+       select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2);
+
+
+       perform _pgr_onError( sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname, 2,
+                       'pgr_analyzeGraph',  'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
+                       'Column names are OK');
+
+        raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column names';
+          RETURN 'FAIL';
+  END;
+
+
+  BEGIN
+       raise debug 'Checking column types in edge table';
+       select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1);
+       select * into targettype from _pgr_getColumnType(sname,tname,targetname,1);
+
+       perform _pgr_onError(sourcetype not in('integer','smallint','bigint') , 2,
+                       'pgr_analyzeGraph',  'Wrong type of Column '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found',
+                       'Type of Column '|| sourcename || ' is ' || sourcetype);
+
+       perform _pgr_onError(targettype not in('integer','smallint','bigint') , 2,
+                       'pgr_analyzeGraph',  'Wrong type of Column '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found',
+                       'Type of Column '|| targetname || ' is ' || targettype);
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column types';
+          RETURN 'FAIL';
+   END;
+
+   BEGIN
+       raise debug 'Checking SRID of geometry column';
+         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+            || ' FROM ' || _pgr_quote_ident(tabname)
+            || ' WHERE ' || quote_ident(gname)
+            || ' IS NOT NULL LIMIT 1';
+         EXECUTE QUERY INTO sridinfo;
+
+         perform _pgr_onError( sridinfo IS NULL OR sridinfo.srid IS NULL,2,
+                 'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname,
+                 'SRID of '||gname||' is '||sridinfo.srid);
+
+         IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
+             RAISE NOTICE ' Can not determine the srid of the geometry "%" in table %', the_geom,tabname;
+             RETURN 'FAIL';
+         END IF;
+         srid := sridinfo.srid;
+         raise DEBUG '     --> OK';
+         EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM;--issue 210,211,213
+             RAISE NOTICE 'ERROR: something went wrong when checking for SRID of % in table %', the_geom,tabname;
+             RETURN 'FAIL';
+    END;
+
+
+    BEGIN
+       raise debug 'Checking  indices in edge table';
+       perform _pgr_createIndex(tabname , idname , 'btree');
+       perform _pgr_createIndex(tabname , sourcename , 'btree');
+       perform _pgr_createIndex(tabname , targetname , 'btree');
+       perform _pgr_createIndex(tabname , gname , 'gist');
+
+       gname=quote_ident(gname);
+       sourcename=quote_ident(sourcename);
+       targetname=quote_ident(targetname);
+       idname=quote_ident(idname);
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking indices';
+          RETURN 'FAIL';
+    END;
+
+
+    BEGIN
+        query='select count(*) from '||_pgr_quote_ident(tabname)||' where true  '||rows_where;
+        EXECUTE query into ecnt;
+        raise DEBUG '-->Rows Where condition: OK';
+        raise DEBUG '     --> OK';
+         EXCEPTION WHEN OTHERS THEN
+            RAISE NOTICE 'Got %', SQLERRM;  --issue 210,211,213
+            RAISE NOTICE 'ERROR: Condition is not correct. Please execute the following query to test your condition';
+            RAISE NOTICE '%',query;
+            RETURN 'FAIL';
+    END;
+
+    selectionquery ='with
+           selectedRows as( (select '||sourcename||' as id from '||_pgr_quote_ident(tabname)||' where true '||rows_where||')
+                           union
+                           (select '||targetname||' as id from '||_pgr_quote_ident(tabname)||' where true '||rows_where||'))';
+
+
+
+
+
+   BEGIN
+       RAISE NOTICE 'Analyzing for dead ends. Please wait...';
+       query= 'with countingsource as (select a.'||sourcename||' as id,count(*) as cnts
+               from (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) a  group by a.'||sourcename||')
+                     ,countingtarget as (select a.'||targetname||' as id,count(*) as cntt
+                    from (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) a  group by a.'||targetname||')
+                   ,totalcount as (select id,case when cnts is null and cntt is null then 0
+                                                   when cnts is null then cntt
+                                                   when cntt is null then cnts
+                                                   else cnts+cntt end as totcnt
+                                   from ('||_pgr_quote_ident(vertname)||' as a left
+                                   join countingsource as t using(id) ) left join countingtarget using(id))
+               update '||_pgr_quote_ident(vertname)||' as a set cnt=totcnt from totalcount as b where a.id=b.id';
+       raise debug '%',query;
+       execute query;
+       query=selectionquery||'
+              SELECT count(*)  FROM '||_pgr_quote_ident(vertname)||' WHERE cnt=1 and id in (select id from selectedRows)';
+       raise debug '%',query;
+       execute query  INTO numdeadends;
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'Got %', SQLERRM;  --issue 210,211,213
+          RAISE NOTICE 'ERROR: something went wrong when analizing for dead ends';
+          RETURN 'FAIL';
+   END;
+
+
+
+    BEGIN
+          RAISE NOTICE 'Analyzing for gaps. Please wait...';
+          query = 'with
+                   buffer as (select id,st_buffer(the_geom,'||tolerance||') as buff from '||_pgr_quote_ident(vertname)||' where cnt=1)
+                   ,veryclose as (select b.id,st_crosses(a.'||gname||',b.buff) as flag
+                   from  (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) as a
+                   join buffer as b on (a.'||gname||'&&b.buff)
+                   where '||sourcename||'!=b.id and '||targetname||'!=b.id )
+                   update '||_pgr_quote_ident(vertname)||' set chk=1 where id in (select distinct id from veryclose where flag=true)';
+          raise debug '%' ,query;
+          execute query;
+          GET DIAGNOSTICS  numgaps= ROW_COUNT;
+          raise DEBUG '     --> OK';
+          EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for gaps';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for isolated edges. Please wait...';
+        query=selectionquery|| ' SELECT count(*) FROM (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' )  as a,
+                                                 '||_pgr_quote_ident(vertname)||' as b,
+                                                 '||_pgr_quote_ident(vertname)||' as c
+                            WHERE b.id in (select id from selectedRows) and a.'||sourcename||' =b.id
+                            AND b.cnt=1 AND a.'||targetname||' =c.id
+                            AND c.cnt=1';
+        raise debug '%' ,query;
+        execute query  INTO NumIsolated;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for isolated edges';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for ring geometries. Please wait...';
+        execute 'SELECT geometrytype('||gname||')  FROM '||_pgr_quote_ident(tabname) limit 1 into geotype;
+        IF (geotype='MULTILINESTRING') THEN
+            query ='SELECT count(*)  FROM '||_pgr_quote_ident(tabname)||'
+                                 WHERE true  '||rows_where||' and st_isRing(st_linemerge('||gname||'))';
+            raise debug '%' ,query;
+            execute query  INTO numRings;
+        ELSE query ='SELECT count(*)  FROM '||_pgr_quote_ident(tabname)||'
+                                  WHERE true  '||rows_where||' and st_isRing('||gname||')';
+            raise debug '%' ,query;
+            execute query  INTO numRings;
+        END IF;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for ring geometries';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for intersections. Please wait...';
+        query = 'select count(*) from (select distinct case when a.'||idname||' < b.'||idname||' then a.'||idname||'
+                                                        else b.'||idname||' end,
+                                                   case when a.'||idname||' < b.'||idname||' then b.'||idname||'
+                                                        else a.'||idname||' end
+                                    FROM (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||') as a
+                                    JOIN (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||') as b
+                                    ON (a.'|| gname||' && b.'||gname||')
+                                    WHERE a.'||idname||' != b.'||idname|| '
+                                        and (a.'||sourcename||' in (b.'||sourcename||',b.'||targetname||')
+                                              or a.'||targetname||' in (b.'||sourcename||',b.'||targetname||')) = false
+                                        and st_intersects(a.'||gname||', b.'||gname||')=true) as d ';
+        raise debug '%' ,query;
+        execute query  INTO numCrossing;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for intersections';
+            RETURN 'FAIL';
+    END;
+
+
+
+
+    RAISE NOTICE '            ANALYSIS RESULTS FOR SELECTED EDGES:';
+    RAISE NOTICE '                  Isolated segments: %', NumIsolated;
+    RAISE NOTICE '                          Dead ends: %', numdeadends;
+    RAISE NOTICE 'Potential gaps found near dead ends: %', numgaps;
+    RAISE NOTICE '             Intersections detected: %',numCrossing;
+    RAISE NOTICE '                    Ring geometries: %',numRings;
+
+
+    RETURN 'OK';
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+COMMENT ON FUNCTION pgr_analyzeGraph(text,double precision,text,text,text,text,text) IS 'args: edge_table, tolerance,the_geom:=''the_geom'',id:=''id'',source column:=''source'', target column:=''target'' rows_where:=''true'' - creates a vertices table based on the geometry for selected rows';
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_analyzeOneway(
+   edge_table text,
+   s_in_rules TEXT[],
+   s_out_rules TEXT[],
+   t_in_rules TEXT[],
+   t_out_rules TEXT[],
+   two_way_if_null boolean default true,
+   oneway text default 'oneway',
+   source text default 'source',
+   target text default 'target')
+  RETURNS text AS
+$BODY$
+
+
+DECLARE
+    rule text;
+    ecnt integer;
+    instr text;
+    naming record;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    owname text;
+    sourcename text;
+    targetname text;
+    sourcetype text;
+    targettype text;
+    vertname text;
+    debuglevel text;
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_analyzeOneway(''%'',''%'',''%'',''%'',''%'',''%'',''%'',''%'',%)',
+		edge_table, s_in_rules , s_out_rules, t_in_rules, t_out_rules, oneway, source ,target,two_way_if_null ;
+  execute 'show client_min_messages' into debuglevel;
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',2)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    raise DEBUG '     --> OK';
+    EXCEPTION WHEN raise_exception THEN
+      RAISE NOTICE 'ERROR: something went wrong checking the table name';
+      RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise debug 'Checking Vertices table';
+       execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","ein","eout"}''::text[])' into naming;
+       execute 'UPDATE '||_pgr_quote_ident(vertname)||' SET eout=0 ,ein=0';
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the vertices table';
+          RETURN 'FAIL';
+  END;
+
+
+  BEGIN
+       raise debug 'Checking column names in edge table';
+       select * into sourcename from _pgr_getColumnName(sname, tname,source,2);
+       select * into targetname from _pgr_getColumnName(sname, tname,target,2);
+       select * into owname from _pgr_getColumnName(sname, tname,oneway,2);
+
+
+       perform _pgr_onError( sourcename in (targetname,owname) or  targetname=owname, 2,
+                       '_pgr_createToplogy',  'Two columns share the same name', 'Parameter names for oneway,source and target  must be different',
+                       'Column names are OK');
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column names';
+          RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise debug 'Checking column types in edge table';
+       select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1);
+       select * into targettype from _pgr_getColumnType(sname,tname,targetname,1);
+
+
+       perform _pgr_onError(sourcetype not in('integer','smallint','bigint') , 2,
+                       '_pgr_createTopology',  'Wrong type of Column '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found',
+                       'Type of Column '|| sourcename || ' is ' || sourcetype);
+
+       perform _pgr_onError(targettype not in('integer','smallint','bigint') , 2,
+                       '_pgr_createTopology',  'Wrong type of Column '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found',
+                       'Type of Column '|| targetname || ' is ' || targettype);
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column types';
+          RETURN 'FAIL';
+   END;
+
+
+
+    RAISE NOTICE 'Analyzing graph for one way street errors.';
+
+    rule := CASE WHEN two_way_if_null
+            THEN owname || ' IS NULL OR '
+            ELSE '' END;
+
+    instr := '''' || array_to_string(s_in_rules, ''',''') || '''';
+       EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set ein=coalesce(ein,0)+b.cnt
+      from (
+         select '|| sourcename ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| sourcename ||' ) b
+     where a.id=b.'|| sourcename;
+
+    RAISE NOTICE 'Analysis 25%% complete ...';
+
+    instr := '''' || array_to_string(t_in_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set ein=coalesce(ein,0)+b.cnt
+        from (
+         select '|| targetname ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| targetname ||' ) b
+        where a.id=b.'|| targetname;
+
+    RAISE NOTICE 'Analysis 50%% complete ...';
+
+    instr := '''' || array_to_string(s_out_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set eout=coalesce(eout,0)+b.cnt
+        from (
+         select '|| sourcename ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| sourcename ||' ) b
+        where a.id=b.'|| sourcename;
+    RAISE NOTICE 'Analysis 75%% complete ...';
+
+    instr := '''' || array_to_string(t_out_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set eout=coalesce(eout,0)+b.cnt
+        from (
+         select '|| targetname ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| targetname ||' ) b
+        where a.id=b.'|| targetname;
+
+    RAISE NOTICE 'Analysis 100%% complete ...';
+
+    EXECUTE 'SELECT count(*)  FROM '||_pgr_quote_ident(vertname)||' WHERE ein=0 or eout=0' INTO ecnt;
+
+    RAISE NOTICE 'Found % potential problems in directionality' ,ecnt;
+
+    RETURN 'OK';
+
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+COMMENT ON FUNCTION pgr_analyzeOneway(text,TEXT[],TEXT[], TEXT[],TEXT[],boolean,text,text,text)
+IS 'args:edge_table , s_in_rules , s_out_rules, t_in_rules , t_out_rules, two_way_if_null:= true, oneway:=''oneway'',source:= ''source'',target:=''target'' - Analizes the directionality of the edges based on the rules';
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_createverticestable(
+   edge_table text,
+   the_geom text DEFAULT 'the_geom'::text,
+   source text DEFAULT 'source'::text,
+   target text DEFAULT 'target'::text,
+    rows_where text DEFAULT 'true'::text
+)
+  RETURNS text AS
+$BODY$
+DECLARE
+    naming record;
+    sridinfo record;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    sourcename text;
+    targetname text;
+    query text;
+    ecnt bigint;
+    srid integer;
+    sourcetype text;
+    targettype text;
+    sql text;
+    totcount integer;
+    i integer;
+    notincluded integer;
+    included integer;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+
+
+BEGIN
+  fnName = 'pgr_createVerticesTable';
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_createVerticesTable(''%'',''%'',''%'',''%'',''%'')',edge_table,the_geom,source,target,rows_where;
+  execute 'show client_min_messages' into debuglevel;
+
+  raise notice 'Performing checks, please wait .....';
+
+  RAISE DEBUG 'Checking % exists',edge_table;
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    rows_where = ' AND ('||rows_where||')';
+  raise debug '--> Edge table exists: OK';
+
+  raise debug 'Checking column names';
+    select * into sourcename from _pgr_getColumnName(sname, tname,source,2, fnName);
+    select * into targetname from _pgr_getColumnName(sname, tname,target,2, fnName);
+    select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2, fnName);
+
+
+    err = sourcename in (targetname,gname) or  targetname=gname;
+    perform _pgr_onError(err, 2, fnName,
+        'Two columns share the same name', 'Parameter names for the_geom,source and target  must be different');
+  raise debug '--> Column names: OK';
+
+  raise debug 'Checking column types in edge table';
+    select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+    select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+
+
+    err = sourcetype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column source: '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+    err = targettype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column target: '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found');
+
+  raise debug '-->Column types:OK';
+
+  raise debug 'Checking SRID of geometry column';
+     query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+        || ' FROM ' || _pgr_quote_ident(tabname)
+        || ' WHERE ' || quote_ident(gname)
+        || ' IS NOT NULL LIMIT 1';
+     raise debug '%',query;
+     EXECUTE query INTO sridinfo;
+
+     err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+     perform _pgr_onError(err, 2, fnName,
+         'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+     srid := sridinfo.srid;
+  raise DEBUG '     --> OK';
+
+  raise debug 'Checking and creating Indices';
+     perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+  raise DEBUG '-->Check and create indices: OK';
+
+     gname=quote_ident(gname);
+     sourcename=quote_ident(sourcename);
+     targetname=quote_ident(targetname);
+
+
+  BEGIN
+  raise debug 'Checking Condition';
+    -- issue #193 & issue #210 & #213
+    -- this sql is for trying out the where clause
+    -- the select * is to avoid any column name conflicts
+    -- limit 1, just try on first record
+    -- if the where clasuse is ill formed it will be caught in the exception
+    sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+    EXECUTE sql into dummyRec;
+    -- end
+
+    -- if above where clasue works this one should work
+    -- any error will be caught by the exception also
+    sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NULL or '||
+		sourcename||' is null or '||targetname||' is null)=true '||rows_where;
+    raise debug '%',sql;
+    EXECUTE SQL  into notincluded;
+    EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+
+
+
+  BEGIN
+     raise DEBUG 'initializing %',vertname;
+       execute 'select * from _pgr_getTableName('||quote_literal(vertname)||',0)' into naming;
+       IF sname=naming.sname  AND vname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+       ELSE
+           set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+       END IF;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+                quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+       execute 'CREATE INDEX '||quote_ident(vname||'_the_geom_idx')||' ON '||_pgr_quote_ident(vertname)||'  USING GIST (the_geom)';
+       execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+       EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Initializing vertex table';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise notice 'Populating %, please wait...',vertname;
+       sql= 'with
+		lines as ((select distinct '||sourcename||' as id, _pgr_startpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+		                  ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||')
+			union (select distinct '||targetname||' as id,_pgr_endpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+			          ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||'))
+		,numberedLines as (select row_number() OVER (ORDER BY id) AS i,* from lines )
+		,maxid as (select id,max(i) as maxi from numberedLines group by id)
+		insert into '||_pgr_quote_ident(vertname)||'(id,the_geom)  (select id,the_geom  from numberedLines join maxid using(id) where i=maxi order by id)';
+       RAISE debug '%',sql;
+       execute sql;
+       GET DIAGNOSTICS totcount = ROW_COUNT;
+
+       sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' a, '||_pgr_quote_ident(vertname)||' b
+            where '||sourcename||'=b.id and '|| targetname||' in (select id from '||_pgr_quote_ident(vertname)||')';
+       RAISE debug '%',sql;
+       execute sql into included;
+
+
+
+       execute 'select max(id) from '||_pgr_quote_ident(vertname) into ecnt;
+       execute 'SELECT setval('||quote_literal(vertname||'_id_seq')||','||coalesce(ecnt,1)||' , false)';
+       raise notice '  ----->   VERTICES TABLE CREATED WITH  % VERTICES', totcount;
+       raise notice '                                       FOR   %  EDGES', included+notincluded;
+       RAISE NOTICE '  Edges with NULL geometry,source or target: %',notincluded;
+       RAISE NOTICE '                            Edges processed: %',included;
+       Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname),_pgr_quote_ident(vertname);
+       raise notice '----------------------------------------------';
+    END;
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+COMMENT ON FUNCTION pgr_createVerticesTable(text,text,text,text,text)
+IS 'args: edge_table, the_geom:=''the_geom'',source:=''source'', target:=''target'' rows_where:=''true'' - creates a vertices table based on the source and target identifiers for selected rows';
+
+
+CREATE OR REPLACE FUNCTION pgr_nodeNetwork(edge_table text, tolerance double precision,
+			id text default 'id', the_geom text default 'the_geom', table_ending text default 'noded',
+            rows_where text DEFAULT ''::text, outall boolean DEFAULT false) RETURNS text AS
+$BODY$
+DECLARE
+	
+	p_num int := 0;
+	p_ret text := '';
+    pgis_ver_old boolean := _pgr_versionless(postgis_lib_version(), '2.1.0.0');
+    vst_line_substring text;
+    vst_line_locate_point text;
+    intab text;
+    outtab text;
+    n_pkey text;
+    n_geom text;
+    naming record;
+    sname text;
+    tname text;
+    outname text;
+    srid integer;
+    sridinfo record;
+    splits bigint;
+    touched bigint;
+    untouched bigint;
+    geomtype text;
+    debuglevel text;
+    rows_where text;
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_nodeNetwork(''%'', %, ''%'', ''%'', ''%'', ''%'',  %)',
+    edge_table, tolerance, id,  the_geom, table_ending, rows_where, outall;
+  raise notice 'Performing checks, please wait .....';
+  execute 'show client_min_messages' into debuglevel;
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',0)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+	RAISE NOTICE '-------> % not found',edge_table;
+        RETURN 'FAIL';
+    ELSE
+	RAISE DEBUG '  -----> OK';
+    END IF;
+
+    intab=sname||'.'||tname;
+    outname=tname||'_'||table_ending;
+    outtab= sname||'.'||outname;
+    rows_where = CASE WHEN length(rows_where) > 2 and not outall THEN ' AND (' || rows_where || ')' ELSE '' END;
+    rows_where = CASE WHEN length(rows_where) > 2 THEN ' WHERE (' || rows_where || ')' ELSE '' END;
+  END;
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',id,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(id)||')' INTO n_pkey;
+       IF n_pkey is NULL then
+          raise notice  'ERROR: id column "%"  not found in %',id,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',the_geom,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(the_geom)||')' INTO n_geom;
+       IF n_geom is NULL then
+          raise notice  'ERROR: the_geom  column "%"  not found in %',the_geom,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+  IF n_pkey=n_geom THEN
+	raise notice  'ERROR: id and the_geom columns have the same name "%" in %',n_pkey,intab;
+        RETURN 'FAIL';
+  END IF;
+
+  BEGIN
+       	raise DEBUG 'Checking the SRID of the geometry "%"', n_geom;
+       	EXECUTE 'SELECT ST_SRID(' || quote_ident(n_geom) || ') as srid '
+          		|| ' FROM ' || _pgr_quote_ident(intab)
+          		|| ' WHERE ' || quote_ident(n_geom)
+          		|| ' IS NOT NULL LIMIT 1' INTO sridinfo;
+       	IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
+        	RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           	RETURN 'FAIL';
+       	END IF;
+       	srid := sridinfo.srid;
+       	raise DEBUG '  -----> SRID found %',srid;
+       	EXCEPTION WHEN OTHERS THEN
+           		RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           		RETURN 'FAIL';
+  END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_pkey,intab;
+      if (_pgr_isColumnIndexed(intab,n_pkey)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding  index "%_%_idx".',n_pkey,intab;
+
+	set client_min_messages  to warning;
+        execute 'create  index '||tname||'_'||n_pkey||'_idx on '||_pgr_quote_ident(intab)||' using btree('||quote_ident(n_pkey)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_geom,intab;
+      if (_pgr_iscolumnindexed(intab,n_geom)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding unique index "%_%_gidx".',intab,n_geom;
+	set client_min_messages  to warning;
+        execute 'CREATE INDEX '
+            || quote_ident(tname || '_' || n_geom || '_gidx' )
+            || ' ON ' || _pgr_quote_ident(intab)
+            || ' USING gist (' || quote_ident(n_geom) || ')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+---------------
+    BEGIN
+       raise DEBUG 'initializing %',outtab;
+       execute 'select * from _pgr_getTableName('||quote_literal(outtab)||',0)' into naming;
+       IF sname=naming.sname  AND outname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(outtab)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(outname)||','||quote_literal(n_geom)||')';
+       ELSE
+	   set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(outtab)||' (id bigserial PRIMARY KEY,old_id integer,sub_id integer,
+								source bigint,target bigint)';
+       END IF;
+       execute 'select geometrytype('||quote_ident(n_geom)||') from  '||_pgr_quote_ident(intab)||' limit 1' into geomtype;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(outname)||','||
+                quote_literal(n_geom)||','|| srid||', '||quote_literal(geomtype)||', 2)';
+       execute 'CREATE INDEX '||quote_ident(outname||'_'||n_geom||'_idx')||' ON '||_pgr_quote_ident(outtab)||'  USING GIST ('||quote_ident(n_geom)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+    END;
+----------------
+
+
+  raise notice 'Processing, please wait .....';
+
+
+    if pgis_ver_old then
+        vst_line_substring    := 'st_line_substring';
+        vst_line_locate_point := 'st_line_locate_point';
+    else
+        vst_line_substring    := 'st_linesubstring';
+        vst_line_locate_point := 'st_linelocatepoint';
+    end if;
+
+--    -- First creates temp table with intersection points
+    p_ret = 'create temp table intergeom on commit drop as (
+        select l1.' || quote_ident(n_pkey) || ' as l1id,
+               l2.' || quote_ident(n_pkey) || ' as l2id,
+	       l1.' || quote_ident(n_geom) || ' as line,
+	       _pgr_startpoint(l2.' || quote_ident(n_geom) || ') as source,
+	       _pgr_endpoint(l2.' || quote_ident(n_geom) || ') as target,
+               st_intersection(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ') as geom
+        from (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l1
+             join (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l2
+             on (st_dwithin(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ', ' || tolerance || '))'||
+        'where l1.' || quote_ident(n_pkey) || ' <> l2.' || quote_ident(n_pkey)||' and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false  )';
+    raise debug '%',p_ret;
+    EXECUTE p_ret;
+
+    -- second temp table with locus (index of intersection point on the line)
+    -- to avoid updating the previous table
+    -- we keep only intersection points occurring onto the line, not at one of its ends
+--    drop table if exists inter_loc;
+
+--HAD TO CHANGE THIS QUERY
+-- p_ret= 'create temp table inter_loc on commit drop as (
+--        select l1id, l2id, ' || vst_line_locate_point || '(line,point) as locus from (
+--        select DISTINCT l1id, l2id, line, (ST_DumpPoints(geom)).geom as point from intergeom) as foo
+--        where ' || vst_line_locate_point || '(line,point)<>0 and ' || vst_line_locate_point || '(line,point)<>1)';
+    p_ret= 'create temp table inter_loc on commit drop as ( select * from (
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,source) as locus from intergeom)
+         union
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,target) as locus from intergeom)) as foo
+        where locus<>0 and locus<>1)';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+
+    -- index on l1id
+    create index inter_loc_id_idx on inter_loc(l1id);
+
+    -- Then computes the intersection on the lines subset, which is much smaller than full set
+    -- as there are very few intersection points
+
+--- outab needs to be formally created with id, old_id, subid,the_geom, source,target
+---  so it can be inmediatly be used with createTopology
+
+--   EXECUTE 'drop table if exists ' || _pgr_quote_ident(outtab);
+--   EXECUTE 'create table ' || _pgr_quote_ident(outtab) || ' as
+     P_RET = 'insert into '||_pgr_quote_ident(outtab)||' (old_id,sub_id,'||quote_ident(n_geom)||') (  with cut_locations as (
+           select l1id as lid, locus
+           from inter_loc
+           -- then generates start and end locus for each line that have to be cut buy a location point
+           UNION ALL
+           select i.l1id  as lid, 0 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           UNION ALL
+           select i.l1id  as lid, 1 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           order by lid, locus
+       ),
+       -- we generate a row_number index column for each input line
+       -- to be able to self-join the table to cut a line between two consecutive locations
+       loc_with_idx as (
+           select lid, locus, row_number() over (partition by lid order by locus) as idx
+           from cut_locations
+       )
+       -- finally, each original line is cut with consecutive locations using linear referencing functions
+       select l.' || quote_ident(n_pkey) || ', loc1.idx as sub_id, ' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus) as ' || quote_ident(n_geom) || '
+       from loc_with_idx loc1 join loc_with_idx loc2 using (lid) join ' || _pgr_quote_ident(intab) || ' l on (l.' || quote_ident(n_pkey) || ' = loc1.lid)
+       where loc2.idx = loc1.idx+1
+           -- keeps only linestring geometries
+           and geometryType(' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus)) = ''LINESTRING'') ';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+	GET DIAGNOSTICS splits = ROW_COUNT;
+        execute 'with diff as (select distinct old_id from '||_pgr_quote_ident(outtab)||' )
+                 select count(*) from diff' into touched;
+	-- here, it misses all original line that did not need to be cut by intersection points: these lines
+	-- are already clean
+	-- inserts them in the final result: all lines which gid is not in the res table.
+	EXECUTE 'insert into ' || _pgr_quote_ident(outtab) || ' (old_id , sub_id, ' || quote_ident(n_geom) || ')
+                ( with used as (select distinct old_id from '|| _pgr_quote_ident(outtab)||')
+		select ' ||  quote_ident(n_pkey) || ', 1 as sub_id, ' ||  quote_ident(n_geom) ||
+		' from '|| _pgr_quote_ident(intab) ||' where  '||quote_ident(n_pkey)||' not in (select * from used)' || rows_where || ')';
+	GET DIAGNOSTICS untouched = ROW_COUNT;
+
+	raise NOTICE '  Split Edges: %', touched;
+	raise NOTICE ' Untouched Edges: %', untouched;
+	raise NOTICE '     Total original Edges: %', touched+untouched;
+        RAISE NOTICE ' Edges generated: %', splits;
+	raise NOTICE ' Untouched Edges: %',untouched;
+	raise NOTICE '       Total New segments: %', splits+untouched;
+        RAISE NOTICE ' New Table: %', outtab;
+        RAISE NOTICE '----------------------------------';
+
+    drop table  if exists intergeom;
+    drop table if exists inter_loc;
+    RETURN 'OK';
+END;
+$BODY$
+    LANGUAGE 'plpgsql' VOLATILE STRICT COST 100;
+
+
+COMMENT ON FUNCTION pgr_nodeNetwork(text, double precision, text, text, text, text, boolean )
+ IS  'edge_table, tolerance, id:=''id'', the_geom:=''the_geom'', table_ending:=''noded'' ';
+
+
+CREATE OR REPLACE FUNCTION pgr_labelGraph(
+                edge_table text,
+                id text default 'id',
+                source text default 'source',
+                target text default 'target',
+                subgraph text default 'subgraph',
+                rows_where text default 'true'
+        )
+        RETURNS character varying AS
+$BODY$
+
+DECLARE
+        naming record;
+        schema_name text;
+        table_name text;
+        garbage text;
+        incre integer;
+        table_schema_name text;
+        query text;
+        ecnt integer;
+        sql1 text;
+        rec1 record;
+        sql2 text;
+        rec2 record;
+        rec_count record;
+        rec_single record;
+        graph_id integer;
+        gids int [];
+
+BEGIN
+        raise notice 'Processing:';
+        raise notice 'pgr_brokenGraph(''%'',''%'',''%'',''%'',''%'',''%'')', edge_table,id,source,target,subgraph,rows_where;
+        raise notice 'Performing initial checks, please hold on ...';
+
+        Raise Notice 'Starting - Checking table ...';
+        BEGIN
+                raise debug 'Checking % table existance', edge_table;
+                execute 'select * from pgr_getTableName('|| quote_literal(edge_table) ||')' into naming;
+                schema_name = naming.sname;
+                table_name = naming.tname;
+                table_schema_name = schema_name||'.'||table_name;
+                IF schema_name is null then
+                        raise notice 'no schema';
+                        return 'FAIL';
+                else
+                        if table_name is null then
+                                raise notice 'no table';
+                                return 'FAIL';
+                        end if;
+                end if;
+        END;
+        Raise Notice 'Ending - Checking table';
+
+        Raise Notice 'Starting - Checking columns';
+        BEGIN
+                raise debug 'Checking exitance of necessary columns inside % table', edge_table;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(id) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no id column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(source) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no source column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(target) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no target column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(subgraph) ||')' into naming;
+                if naming.pgr_iscolumnintable = 't' then
+                        raise notice 'subgraph column already in the table';
+                        return 'FAIL';
+                end if;
+        END;
+        Raise Notice 'Ending - Checking columns';
+
+        Raise Notice 'Starting - Checking rows_where condition';
+        BEGIN
+                raise debug 'Checking rows_where condition';
+                query='select count(*) from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where;
+                execute query into ecnt;
+                raise debug '-->Rows where condition: OK';
+                raise debug '    --> OK';
+                EXCEPTION WHEN OTHERS THEN
+                        raise notice 'Got %', SQLERRM;
+                        Raise notice 'ERROR: Condition is not correct. Please execute the following query to test your condition';
+                        Raise notice '%', query;
+                        return 'FAIL';
+        END;
+        Raise Notice 'Ending - Checking rows_where condition';
+
+        garbage := 'garbage001';
+        incre := 1;
+        Raise Notice 'Starting - Checking temporary column';
+        Begin
+                raise debug 'Checking Checking temporary columns existance';
+
+                While True
+                        Loop
+                                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(garbage) ||')' into naming;
+                                If naming.pgr_iscolumnintable = 't' THEN
+                                        incre := incre + 1;
+                                        garbage := 'garbage00'||incre||'';
+                                ELSE
+                                        EXIT;
+                                END IF;
+                        End Loop;
+        End;
+        Raise Notice 'Ending - Checking temporary column';
+
+        Raise Notice 'Starting - Calculating subgraphs';
+        BEGIN
+                --------- Add necessary columns ----------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(subgraph) || ' INTEGER DEFAULT -1';
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(garbage) || ' INTEGER DEFAULT 0';
+                graph_id := 1;
+
+                EXECUTE 'select count(*) as count from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where ||'' into rec_count;
+                if rec_count.count = 0 then
+                        RETURN 'rows_where condition generated 0 rows';
+                end if;
+
+                WHILE TRUE
+                        LOOP
+                                ---------- Assign the very first -1 row graph_id ----------
+                                EXECUTE 'SELECT ' || pgr_quote_ident(id) || ' AS gid FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1 LIMIT 1' INTO rec_single;
+                                EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec_single.gid || '';
+
+                                --------- Search other rows with that particular graph_id -----------
+                                WHILE TRUE
+                                        LOOP
+                                                EXECUTE 'SELECT COUNT(*) FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0' into rec_count;
+                                                ----------- The following if else will check those rows which already have entertained ------------
+                                                IF (rec_count.count > 0) THEN
+                                                        sql1 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0';
+                                                        FOR rec1 IN EXECUTE sql1
+                                                                LOOP
+                                                                        sql2 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| pgr_quote_ident(source) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(source) ||' = '|| rec1.target ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.target ||'';
+                                                                        FOR rec2 IN EXECUTE sql2
+                                                                                LOOP
+                                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec2.gid || '';
+                                                                                END LOOP;
+                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(garbage) || ' = 1 WHERE ' || pgr_quote_ident(id) || ' = ' || rec1.gid || '';
+                                                                END LOOP;
+                                                ELSE
+                                                        EXIT;
+                                                END IF;
+                                        END LOOP;
+
+                                ------ Following is to exit the while loop. 0 means no more -1 id.
+                                EXECUTE 'SELECT COUNT(*) AS count FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1' INTO rec_count;
+                                If (rec_count.count = 0) THEN
+                                        EXIT;
+                                ELSE
+                                        graph_id := graph_id + 1;
+                                END IF;
+                        END LOOP;
+
+                ----------- Drop garbage column ------------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' DROP COLUMN ' || pgr_quote_ident(garbage) ||'';
+                Raise Notice 'Successfully complicated calculating subgraphs';
+        END;
+        Raise Notice 'Ending - Calculating subgraphs';
+
+        RETURN 'OK';
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCostMatrix(
+    edges_sql TEXT,
+    points_sql TEXT,
+    pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_pid, a.end_pid, a.agg_cost
+        FROM _pgr_withPoints($1, $2, $3, $3, $4,  $5, TRUE, TRUE) AS a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+--  DIJKSTRA DMatrix
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCostMatrix(edges_sql TEXT, vids ANYARRAY, directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2, $2, $3, true) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+
+--  BIDIRECTIONAL DIJKSTRA Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCostMatrix(edges_sql TEXT, vids ANYARRAY, directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_astarCostMatrix(
+    edges_sql TEXT, -- XY edges sql
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2, $2, $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+--  BIDIRECTIONAL ASTAR Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdAstarCostMatrix(
+    edges_sql TEXT,
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_bdAstarCostMatrix(TEXT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCostMatrix';
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_getTableName(IN tab text,OUT sname text,OUT tname text)
+RETURNS RECORD AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getTableName: This function will no longer be soported';
+    select * from _pgr_getTableName(tab, 0, 'pgr_getTableName') into sname,tname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_getColumnName(tab text, col text)
+RETURNS text AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getColumnName: This function will no longer be soported';
+    return _pgr_getColumnName(tab,col, 0, 'pgr_getColumnName');
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    select * from _pgr_getColumnName(tab,col,0, 'pgr_isColumnInTable') into cname;
+    return  cname IS not NULL;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnIndexed(tab text, col text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnIndexed: This function will no longer be soported';
+    return  _pgr_isColumnIndexed(tab,col);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+create or replace function pgr_quote_ident(idname text)
+returns text as
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    return  _pgr_quote_ident(idname);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_versionless(v1 text, v2 text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_versionless: This function will no longer be soported';
+    return  _pgr_versionless(v1,v2);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+create or replace function pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_startPoint: This function will no longer be soported';
+    return  _pgr_startPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_endPoint: This function will no longer be soported';
+    return  _pgr_endPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_apspJohnson(edges_sql text)
+    RETURNS SETOF pgr_costResult AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function: Use pgr_johnson instead';
+      has_reverse =_pgr_parameter_check('johnson', edges_sql, false);
+      sql = edges_sql;
+      IF (has_reverse) THEN
+           RAISE NOTICE 'reverse_cost column found, removing.';
+           sql = 'SELECT source, target, cost FROM (' || edges_sql || ') a';
+      END IF;
+
+      RETURN query
+         SELECT (row_number() over () - 1)::integer as seq, start_vid::integer AS id1, end_vid::integer AS id2, agg_cost AS cost
+         FROM  pgr_johnson(sql, TRUE);
+  END
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_apspWarshall(edges_sql text, directed boolean, has_rcost boolean)
+    RETURNS SETOF pgr_costResult AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function: Use pgr_floydWarshall instead';
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+      sql := edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_reverse) THEN
+           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+         ELSE raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+         END IF;
+      END IF;
+
+      RETURN query
+         SELECT (row_number() over () -1)::integer as seq, start_vid::integer AS id1, end_vid::integer AS id2, agg_cost AS cost
+         FROM  pgr_floydWarshall(sql, directed);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_astar(edges_sql TEXT, source_id INTEGER, target_id INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated signature pgr_astar(text, integer, integer, boolean, boolean)';
+    has_reverse =_pgr_parameter_check('astar', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost, x1,y1, x2, y2 FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+    FROM pgr_astar(sql, ARRAY[$2], ARRAY[$3], directed);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    sql TEXT,
+    source_vid INTEGER,
+    target_vid INTEGER,
+    directed BOOLEAN,
+    has_reverse_cost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdAstar';
+    has_reverse =_pgr_parameter_check('astar', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdAstar(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(edges_sql TEXT, start_vid INTEGER, end_vid INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdDijkstra';
+    has_reverse =_pgr_parameter_check('dijkstra', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdDijkstra(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstraPath(
+    sql text,
+    source INTEGER,
+    targets INTEGER ARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+    RETURNS SETOF pgr_costResult3 AS
+    $BODY$
+    DECLARE
+    has_reverse BOOLEAN;
+    new_sql TEXT;
+    result pgr_costResult3;
+    tmp pgr_costResult3;
+    sseq INTEGER;
+    i INTEGER;
+    BEGIN
+        RAISE NOTICE 'Deprecated function: Use pgr_dijkstra instead.';
+        has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+        new_sql = sql;
+        IF (array_ndims(targets) != 1) THEN
+            raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+
+        IF (has_reverse != has_rcost) THEN
+            IF (has_reverse) THEN
+                new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+            ELSE
+                raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+                USING ERRCODE = 'XX000';
+            END IF;
+        END IF;
+        SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+        sseq = 0; i = 1;
+        FOR result IN
+            SELECT seq, a.end_vid::INTEGER AS id1, a.node::INTEGER AS i2, a.edge::INTEGER AS id3, cost
+            FROM pgr_dijkstra(new_sql, source, targets, directed) a ORDER BY a.end_vid, seq LOOP
+            WHILE (result.id1 != targets[i]) LOOP
+                tmp.seq = sseq;
+                tmp.id1 = targets[i];
+                IF (targets[i] = source) THEN
+                    tmp.id2 = source;
+                    tmp.cost =0;
+                ELSE
+                    tmp.id2 = 0;
+                    tmp.cost = -1;
+                END IF;
+                tmp.id3 = -1;
+                RETURN next tmp;
+                i = i + 1;
+                sseq = sseq + 1;
+            END LOOP;
+        IF (result.id1 = targets[i] AND result.id3 != -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+        IF (result.id1 = targets[i] AND result.id3 = -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.id2 = source;
+            tmp.cost = 0;
+        ELSE
+            tmp.id2 = 0;
+            tmp.cost = -1;
+        END IF;
+        tmp.id3 = -1;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstracost(
+    sql text,
+    source INTEGER,
+    targets INTEGER array,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+result pgr_costResult;
+tmp pgr_costResult;
+sseq INTEGER;
+i INTEGER;
+BEGIN
+    RAISE NOTICE 'Deprecated function. Use pgr_dijkstraCost instead.';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    new_sql = sql;
+    IF (array_ndims(targets) != 1) THEN
+        raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+        USING ERRCODE = 'XX000';
+    END IF;
+
+
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+    sseq = 0; i = 1;
+    FOR result IN
+        SELECT ((row_number() over()) -1)::INTEGER, a.start_vid::INTEGER, a.end_vid::INTEGER, agg_cost
+        FROM pgr_dijkstraCost(new_sql, source, targets, directed) a ORDER BY end_vid LOOP
+        WHILE (result.id2 != targets[i]) LOOP
+            tmp.seq = sseq;
+            tmp.id1 = source;
+            tmp.id2 = targets[i];
+            IF (targets[i] = source) THEN
+                tmp.cost = 0;
+            ELSE
+                tmp.cost = -1;
+            END IF;
+            RETURN next tmp;
+            i = i + 1;
+            sseq = sseq + 1;
+        END LOOP;
+        IF (result.id2 = targets[i]) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = source;
+        tmp.id2 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.cost = 0;
+        ELSE
+            tmp.cost = -1;
+        END IF;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+create or replace function pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    returns integer as
+$body$
+
+declare
+    rr record;
+    pct float;
+    debuglevel text;
+
+begin
+    -- find the closest edge within tol distance
+    execute 'select * from ' || _pgr_quote_ident(edges) ||
+            ' where st_dwithin(''' || pnt::text ||
+            '''::geometry, the_geom, ' || tol || ') order by st_distance(''' || pnt::text ||
+            '''::geometry, the_geom) asc limit 1' into rr;
+
+    if rr.the_geom is not null then
+        -- deal with MULTILINESTRINGS
+        if geometrytype(rr.the_geom)='MULTILINESTRING' THEN
+            rr.the_geom := ST_GeometryN(rr.the_geom, 1);
+        end if;
+
+        -- project the point onto the linestring
+        execute 'show client_min_messages' into debuglevel;
+        SET client_min_messages='ERROR';
+        pct := st_line_locate_point(rr.the_geom, pnt);
+        execute 'set client_min_messages  to '|| debuglevel;
+
+        -- return the node we are closer to
+        if pct < 0.5 then
+            return rr.source;
+        else
+            return rr.target;
+        end if;
+    else
+        -- return a failure to find an edge within tol distance
+        return -1;
+    end if;
+end;
+$body$
+  language plpgsql volatile
+  cost 5;
+
+
+----------------------------------------------------------------------------
+
+create or replace function pgr_flipedges(ga geometry[])
+    returns geometry[] as
+$body$
+
+declare
+    nn integer;
+    i integer;
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_flipEdges';
+    -- get the count of edges, and return if only one edge
+    nn := array_length(ga, 1);
+    if nn=1 then
+        return ga;
+    end if;
+
+    -- determine if first needs to be flipped
+    g := _pgr_startpoint(ga[1]);
+
+    -- if the start of the first is connected to the second then it needs to be flipped
+    if _pgr_startpoint(ga[2])=g or _pgr_endpoint(ga[2])=g then
+        ga[1] := st_reverse(ga[1]);
+    end if;
+    g := _pgr_endpoint(ga[1]);
+
+    -- now if  the end of the last edge matchs the end of the current edge we need to flip it
+    for i in 2 .. nn loop
+        if _pgr_endpoint(ga[i])=g then
+            ga[i] := st_reverse(ga[i]);
+        end if;
+        -- save the end of this edge into the last end for the next cycle
+        g := _pgr_endpoint(ga[i]);
+    end loop;
+
+    return ga;
+end;
+$body$
+    language plpgsql immutable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_texttopoints(pnts text, srid integer DEFAULT(4326))
+    returns geometry[] as
+$body$
+
+declare
+    a text[];
+    t text;
+    p geometry;
+    g geometry[];
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_textToPoints';
+    -- convert commas to space and split on ';'
+    a := string_to_array(replace(pnts, ',', ' '), ';');
+    -- convert each 'x y' into a point geometry and concattenate into a new array
+    for t in select unnest(a) loop
+        p := st_pointfromtext('POINT(' || t || ')', srid);
+        g := g || p;
+    end loop;
+
+    return g;
+end;
+$body$
+    language plpgsql immutable;
+
+-----------------------------------------------------------------------
+
+create or replace function pgr_pointstovids(pnts geometry[], edges text, tol float8 DEFAULT(0.01))
+    returns integer[] as
+$body$
+
+declare
+    v integer[];
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_pointsToVids';
+    -- cycle through each point and locate the nearest edge and vertex on that edge
+    for g in select unnest(pnts) loop
+        v := v || pgr_pointtoedgenode(edges, g, tol);
+    end loop;
+
+    return v;
+end;
+$body$
+    language plpgsql stable;
+
+
+create or replace function pgr_pointstodmatrix(pnts geometry[], mode integer default (0), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+
+declare
+    r record;
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_pointsToDMatrix';
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    -- create an id for each point in the array and unnest it into a table nodes in the with clause
+    for r in with nodes as (select row_number() over()::integer as id, p from (select unnest(pnts) as p) as foo)
+        -- compute a row of distances
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j,
+                case when mode=0
+                    then st_distance(a.p, b.p)
+                    else st_distance_sphere(a.p, b.p)
+                end as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i loop
+
+        -- you must concat an array[array[]] to make dmatrix[][]
+        -- concat the row of distances to the dmatrix
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+end;
+$body$
+    language plpgsql stable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_vidstodmatrix(IN vids integer[], IN pnts geometry[], IN edges text, tol float8 DEFAULT(0.1), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+
+declare
+    i integer;
+    j integer;
+    nn integer;
+    rr record;
+    bbox geometry;
+    t float8[];
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    -- check if the input arrays has any -1 values, maybe this whould be a raise exception
+    if vids @> ARRAY[-1] then
+    raise notice 'Some vids are undefined (-1)!';
+    dmatrix := null;
+    ids := null;
+    return;
+    end if;
+
+    ids := vids;
+
+    -- get the count of nodes
+    nn := array_length(vids,1);
+
+    -- zero out a dummy row
+    for i in 1 .. nn loop
+        t := t || 0.0::float8;
+    end loop;
+
+    -- using the dummy row, zero out the whole matrix
+    for i in 1 .. nn loop
+    dmatrix := dmatrix || ARRAY[t];
+    end loop;
+
+    for i in 1 .. nn-1 loop
+        j := i;
+        -- compute the bbox for the point needed for this row
+        select st_expand(st_collect(pnts[id]), tol) into bbox
+          from (select generate_series as id from generate_series(i, nn)) as foo;
+
+        -- compute kdijkstra() for this row
+        for rr in execute 'select * from pgr_dijkstracost($1, $2, $3, false)'
+                  using 'select id, source, target, cost from ' || edges ||
+                        ' where the_geom && ''' || bbox::text || '''::geometry'::text, vids[i], vids[i+1:nn] loop
+
+            -- TODO need to check that all node were reachable from source
+            -- I think unreachable paths between nodes returns cost=-1.0
+
+            -- populate the matrix with the cost values, remember this is symmetric
+            j := j + 1;
+            -- raise notice 'cost(%,%)=%', i, j, rr.agg_cost;
+            dmatrix[i][j] := rr.agg_cost;
+            dmatrix[j][i] := rr.agg_cost;
+        end loop;
+    end loop;
+
+end;
+$body$
+    language plpgsql stable cost 200;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_vidsToDMatrix(sql TEXT, vids  INTEGER[], dir BOOLEAN, has_rcost BOOLEAN, want_symmetric BOOLEAN)
+RETURNS float8[] AS
+$BODY$
+DECLARE
+directed BOOLEAN;
+has_reverse BOOLEAN;
+edges_sql TEXT;
+dmatrix_row float8[];
+dmatrix float8[];
+cell RECORD;
+unique_vids INTEGER[];
+total BIGINT;
+from_v BIGINT;
+to_v BIGINT;
+BEGIN
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql = sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    unique_vids :=  ARRAY(SELECT DISTINCT UNNEST(vids) ORDER BY 1);
+
+    IF want_symmetric THEN
+        directed = false;
+    ELSE
+        directed = dir;
+    END IF;
+
+    total := array_length(unique_vids, 1);
+
+    -- initializing dmatrix
+    FOR i in 1 .. total LOOP
+        dmatrix_row := dmatrix_row || '+Infinity'::float8;
+    END LOOP;
+    FOR i in 1 .. total LOOP
+    dmatrix := dmatrix || ARRAY[dmatrix_row];
+    dmatrix[i][i] = 0;
+    END LOOP;
+
+    CREATE TEMP TABLE __x___y____temp AS
+        WITH result AS
+            (SELECT unnest(unique_vids) AS vid)
+        SELECT row_number() OVER() AS idx, vid FROM result;
+
+    FOR cell IN SELECT * FROM pgr_dijkstraCostMatrix(sql, unique_vids, directed) LOOP
+        SELECT idx INTO from_v FROM __x___y____temp WHERE vid =  cell.start_vid;
+        SELECT idx INTO to_v FROM __x___y____temp WHERE vid =  cell.end_vid;
+
+        dmatrix[from_v][to_v] = cell.agg_cost;
+        dmatrix[to_v][from_v] = cell.agg_cost;
+    END LOOP;
+
+    DROP TABLE IF EXISTS __x___y____temp;
+    RETURN dmatrix;
+
+    EXCEPTION WHEN others THEN
+       DROP TABLE IF EXISTS __x___y____temp;
+       raise exception '% %', SQLERRM, SQLSTATE;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100;
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated function';
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_dijkstra(sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_dijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN) IS 'pgr_dijkstra(Deprecated signature)';
+
+
+
+
+
+-- OLD SIGNATURE
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(edges_sql text, source BIGINT, distance FLOAT, directed BOOLEAN, has_rcost BOOLEAN)
+  RETURNS SETOF pgr_costresult AS
+  $BODY$
+  DECLARE
+  has_reverse BOOLEAN;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function';
+
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, FALSE);
+
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_reverse) THEN
+             -- the user says it doesn't have reverse cost but its false
+             -- removing from query
+             RAISE NOTICE 'Contradiction found: has_rcost set to false but reverse_cost column found';
+             sql = 'SELECT id, source, target, cost, -1 as reverse_cost FROM (' || edges_sql || ') __q ';
+         ELSE
+             -- the user says it has reverse cost but its false
+             -- can't do anything
+             RAISE EXCEPTION 'has_rcost set to true but reverse_cost not found';
+         END IF;
+      END IF;
+
+      RETURN query SELECT seq - 1 AS seq, node::integer AS id1, edge::integer AS id2, agg_cost AS cost
+                FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maximumcardinalitymatching(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
+
+
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+--INTERNAL FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+
+------------------------
+-- deprecated signatures
+-----------------------
+
+COMMENT ON FUNCTION pgr_astar(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_astar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdAstar( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdAstar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdDijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdDijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_dijkstra(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_dijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_drivingDistance(text,  BIGINT,  FLOAT8,  BOOLEAN,  BOOLEAN)
+    IS 'pgr_drivingDistance(Deprecated signature)';
+
+------------------------
+-- Renamed /deprecated
+-----------------------
+COMMENT ON FUNCTION pgr_apspJohnson(TEXT)
+    IS 'pgr_apspJohnson(Renamed function) use pgr_Johnson instead';
+
+COMMENT ON FUNCTION pgr_apspWarshall(text, boolean, boolean)
+    IS 'pgr_apspWarshall(Renamed function) use pgr_floydWarshall instead';
+
+COMMENT ON FUNCTION pgr_kdijkstraPath( text, INTEGER, INTEGER ARRAY, BOOLEAN, BOOLEAN)
+    IS 'pgr_kdijkstraPath(Renamed function) use pgr_dijkstra instead';
+
+COMMENT ON FUNCTION pgr_kdijkstracost( text, INTEGER, INTEGER array, BOOLEAN, BOOLEAN)
+    IS 'pgr_kDijkstraCost(Renamed function) use pgr_dijkstraCost instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+
+
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+
+
+COMMENT ON FUNCTION pgr_gsoc_vrppdtw( text, INTEGER, INTEGER)
+    IS 'pgr_gsoc_vrppdtw(Renamed function) use pgr_pickDeliverEuclidean instead';
+
+------------------------
+-- Deprecated functions
+-----------------------
+
+COMMENT ON FUNCTION pgr_flipedges(geometry[])
+    IS 'pgr_flipedges(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_texttopoints(text,  integer)
+    IS 'pgr_texttopoints(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstovids(pnts geometry[], edges text, tol float8)
+    IS 'pgr_pointstovids(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    IS 'pgr_pointtoedgenode(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstodmatrix(geometry[], integer)
+    IS 'pgr_pointstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidstodmatrix( integer[],  geometry[],  text, float8)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidsToDMatrix(TEXT,  INTEGER[], BOOLEAN, BOOLEAN, BOOLEAN)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+
+
+
+COMMENT ON FUNCTION pgr_getTableName(IN tab text)
+    IS 'pgr_getTableName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_getColumnName(tab text, col text)
+    IS 'pgr_getColumnName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnInTable(tab text, col text)
+    IS 'pgr_isColumnInTable(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnIndexed(tab text, col text)
+    IS 'pgr_isColumnIndexed(Deprecated function)';
+
+
+COMMENT ON FUNCTION pgr_quote_ident(idname text)
+    IS 'pgr_quote_ident(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_versionless(v1 text, v2 text)
+    IS 'pgr_versionless(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_startPoint(g geometry)
+    IS 'pgr_startPoint(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_endPoint(g geometry)
+    IS 'pgr_endPoint(Deprecated function)';
+
+
diff --git a/tools/sql-update-scripts/pgrouting--2.2.1--2.5.0.sql b/tools/sql-update-scripts/pgrouting--2.2.1--2.5.0.sql
new file mode 100644
index 0000000..9310b24
--- /dev/null
+++ b/tools/sql-update-scripts/pgrouting--2.2.1--2.5.0.sql
@@ -0,0 +1,6527 @@
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-- pgRouting extension upgrade from 2.2.1 to 2.5.0
+-- generated by tools/build-extension-update-files
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+\echo Use "ALTER extension pgrouting update to '2.5.0'" to load this file. \quit
+
+
+-------------------------------------
+-- remove functions no longer in the 2.5.0 extension
+-------------------------------------
+
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,anyarray,anyarray,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,anyarray,anyarray,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,anyarray,bigint,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,anyarray,bigint,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,bigint,anyarray,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,bigint,anyarray,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,bigint,bigint,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,bigint,bigint,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_drivingdistance(text,anyarray,double precision,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_drivingdistance(text,anyarray,double precision,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_drivingdistance(text,bigint,double precision,boolean);
+DROP FUNCTION IF EXISTS _pgr_drivingdistance(text,bigint,double precision,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,anyarray,anyarray,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,anyarray,anyarray,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,anyarray,bigint,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,anyarray,bigint,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,bigint,anyarray,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,bigint,anyarray,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,bigint,bigint,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,bigint,bigint,boolean,character,boolean,boolean);
+
+
+------------------------------------------
+--    New functions:  2.0
+-- Signature change:  2.4
+--       Deprecated:  2.4
+------------------------------------------
+-- pgr_bddijkstra
+-- 2.2.1: {      sql, source_vid, target_vid, directed, has_reverse_cost}   
+-- 2.5.0: {edges_sql,  start_vid,    end_vid, directed, has_rcost}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vid","end_vid","directed","has_rcost"}'
+WHERE proname = 'pgr_bddijkstra'
+    AND proargnames = '{"sql","source_vid","target_vid","directed","has_reverse_cost"}';
+
+
+------------------------------------------
+--   New function: 2.1
+-- (types) change: 2.3
+------------------------------------------
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_gsoc_vrppdtw(text,integer,integer);
+DROP FUNCTION IF EXISTS pgr_gsoc_vrppdtw(text,integer,integer);
+
+
+
+
+------------------------------------------
+-- New functions on 2.0
+-- Signature change on 2.3
+-- Deprecated on 2.4
+------------------------------------------
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_astar(text,integer,integer,boolean,boolean);
+DROP FUNCTION IF EXISTS pgr_astar(text,integer,integer,boolean,boolean);
+
+
+
+
+------------------------------------------
+--       New functions:  2.1
+--    Signature change:  2.4
+------------------------------------------
+-- 2.2.1: {edges_sql,start_v,  distance,directed,seq,node,edge,cost,agg_cost}
+-- 2.5.0: {edges_sql,start_vid,distance,directed,seq,node,edge,cost,agg_cost}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vid","distance","directed","seq","node","edge","cost","agg_cost"}'
+WHERE proname = 'pgr_drivingdistance'
+    AND proargnames = '{"edges_sql","start_v","distance","directed","seq","node","edge","cost","agg_cost"}';
+
+
+------------------------------------------
+--       New functions:  2.1
+--    Signature change:  2.4
+------------------------------------------
+-- 2.2.1: {sql,      start_v,   distance,directed,equicost,seq,from_v,node,edge,cost,agg_cost}
+-- 2.5.0: {edges_sql,start_vids,distance,directed,equicost,seq,from_v,node,edge,cost,agg_cost}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vids","distance","directed","equicost","seq","from_v","node","edge","cost","agg_cost"}'
+WHERE proname = 'pgr_drivingdistance'
+    AND proargnames = '{"sql","start_v","distance","directed","equicost","seq","from_v","node","edge","cost","agg_cost"}';
+
+
+
+
+
+
+
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+--- pgRouting provides geospatial routing functionality.
+--- http://pgrouting.org
+--- copyright
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+---
+--- This is free software; you can redistribute and/or modify it:
+--- the terms of the GNU General Public Licence. See the COPYING file.
+--- the terms of the MIT-X Licence. See the COPYING file.
+---
+--- The following functions have MIT-X licence:
+---     pgr_version()
+---     pgr_tsp(matrix float8[][], startpt integer, endpt integer DEFAULT -1, OUT seq integer, OUT id integer)
+---     _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+---     pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
+---
+---
+--- All other functions are under GNU General Public Licence.
+---
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+--
+-- WARNING: Any change in this file must be evaluated for compatibility.
+--          Changes cleanly handled by postgis_upgrade.sql are fine,
+--          other changes will require a bump in Major version.
+--          Currently only function replaceble by CREATE OR REPLACE
+--          are cleanly handled.
+--
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+
+--  pgRouting 2.0 types
+
+
+
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_version()
+RETURNS TABLE(
+        "version" varchar,
+        tag varchar,
+        hash varchar,
+        branch varchar,
+        boost varchar
+    ) AS
+$BODY$
+    SELECT '2.5.0'::varchar AS version,
+        'v2.5.0'::varchar AS tag,
+        ''::varchar AS hash,
+        ''::varchar AS branch,
+        '1.54.0'::varchar AS boost;
+$BODY$
+LANGUAGE sql IMMUTABLE;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getTableName(IN tab text, IN reportErrs int default 0, IN fnName text default '_pgr_getTableName', OUT sname text,OUT tname text)
+  RETURNS RECORD AS
+$$
+DECLARE
+        naming record;
+        i integer;
+        query text;
+        sn text; -- schema name
+        tn text; -- table name
+        ttype text; --table type for future use
+        err boolean;
+        debuglevel text;
+        var_types text[] = ARRAY['BASE TABLE', 'VIEW'];
+BEGIN
+
+    execute 'show client_min_messages' into debuglevel;
+
+
+    perform _pgr_msg( 0, fnName, 'Checking table ' || tab || ' exists');
+    --RAISE DEBUG 'Checking % exists',tab;
+
+    i := strpos(tab,'.');
+    IF (i <> 0) THEN
+        sn := split_part(tab, '.',1);
+        tn := split_part(tab, '.',2);
+    ELSE
+        sn := current_schema;
+        tn := tab;
+    END IF;
+
+
+   SELECT schema_name INTO sname
+   FROM information_schema.schemata WHERE schema_name = sn;
+
+    IF sname IS NOT NULL THEN -- found schema (as is)
+       SELECT table_name, table_type INTO tname, ttype
+       FROM information_schema.tables
+       WHERE
+                table_type = ANY(var_types) and
+                table_schema = sname and
+                table_name = tn ;
+        IF tname is NULL THEN
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  = ANY(var_types) and
+                table_schema = sname and
+                table_name = lower(tn) ORDER BY table_name;
+        END IF;
+    END IF;
+    IF sname is NULL or tname is NULL THEN --schema not found or table not found
+        SELECT schema_name INTO sname
+        FROM information_schema.schemata
+        WHERE schema_name = lower(sn) ;
+
+        IF sname IS NOT NULL THEN -- found schema (with lower caps)
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  =  ANY(var_types) and
+                table_schema = sname and
+                table_name= tn ;
+
+           IF tname IS NULL THEN
+                SELECT table_name, table_type INTO tname, ttype
+                FROM information_schema.tables
+                WHERE
+                    table_type  =  ANY(var_types) and
+                    table_schema = sname and
+                    table_name= lower(tn) ;
+           END IF;
+        END IF;
+    END IF;
+   err = (sname IS NULL OR tname IS NULL);
+   perform _pgr_onError(err, reportErrs, fnName, 'Table ' || tab ||' not found',' Check your table name', 'Table '|| tab || ' found');
+
+END;
+$$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(sname text, tname text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(col) into cname;
+
+    IF cname is null  THEN
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(lower(col))  into cname;
+    END if;
+
+    err = cname is null;
+
+    perform _pgr_onError(err, reportErrs, fnName,  'Column '|| col ||' not found', ' Check your column name','Column '|| col || ' found');
+    RETURN cname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(tab text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+
+    select * into cname from _pgr_getColumnName(sname,tname,col,reportErrs, fnName);
+    RETURN cname;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    select * from _pgr_getColumnName(tab,col,0, '_pgr_isColumnInTable') into cname;
+    return cname is not null;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(sname text, tname text, cname text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    pkey text;
+BEGIN
+    SELECT
+          pg_attribute.attname into pkey
+         --  format_type(pg_attribute.atttypid, pg_attribute.atttypmod)
+          FROM pg_index, pg_class, pg_attribute
+          WHERE
+                  pg_class.oid = _pgr_quote_ident(sname||'.'||tname)::regclass AND
+                  indrelid = pg_class.oid AND
+                  pg_attribute.attrelid = pg_class.oid AND
+                  pg_attribute.attnum = any(pg_index.indkey)
+                  AND indisprimary;
+
+    IF pkey=cname then
+          RETURN TRUE;
+    END IF;
+
+    SELECT a.index_name,
+           b.attname,
+           b.attnum,
+           a.indisunique,
+           a.indisprimary
+      INTO rec
+      FROM ( SELECT a.indrelid,
+                    a.indisunique,
+                    a.indisprimary,
+                    c.relname index_name,
+                    unnest(a.indkey) index_num
+               FROM pg_index a,
+                    pg_class b,
+                    pg_class c,
+                    pg_namespace d
+              WHERE b.relname=tname
+                AND b.relnamespace=d.oid
+                AND d.nspname=sname
+                AND b.oid=a.indrelid
+                AND a.indexrelid=c.oid
+           ) a,
+           pg_attribute b
+     WHERE a.indrelid = b.attrelid
+       AND a.index_num = b.attnum
+       AND b.attname = cname
+  ORDER BY a.index_name,
+           a.index_num;
+
+  RETURN FOUND;
+  EXCEPTION WHEN OTHERS THEN
+    perform _pgr_onError( true, reportErrs, fnName,
+    'Error when checking for the postgres system attributes', SQLERR);
+    RETURN FALSE;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(tab text, col text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    sname text;
+    tname text;
+    cname text;
+    pkey text;
+    value boolean;
+BEGIN
+    SELECT * into naming FROM _pgr_getTableName(tab, 0, fnName);
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    SELECT * into cname from _pgr_getColumnName(sname, tname, col, 0, fnName) ;
+    IF cname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    select * into value  from _pgr_isColumnIndexed(sname, tname, cname, reportErrs, fnName);
+    return value;
+END
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+create or replace function _pgr_quote_ident(idname text)
+    returns text as
+$body$
+declare
+    t text[];
+    pgver text;
+
+begin
+    pgver := regexp_replace(version(), E'^PostgreSQL ([^ ]+)[ ,].*$', E'\\1');
+
+    if _pgr_versionless(pgver, '9.2') then
+        select into t array_agg(quote_ident(term)) from
+            (select nullif(unnest, '') as term
+               from unnest(string_to_array(idname, '.'))) as foo;
+    else
+        select into t array_agg(quote_ident(term)) from
+            (select unnest(string_to_array(idname, '.', '')) as term) as foo;
+    end if;
+    return array_to_string(t, '.');
+end;
+$body$
+language plpgsql immutable;
+
+
+CREATE OR REPLACE FUNCTION _pgr_versionless(v1 text, v2 text)
+  RETURNS boolean AS
+$BODY$
+
+
+declare
+    v1a text[];
+    v2a text[];
+    nv1 integer;
+    nv2 integer;
+    ne1 integer;
+    ne2 integer;
+
+begin
+    -- separate components into an array, like:
+    -- '2.1.0-beta3dev'  =>  {2,1,0,beta3dev}
+    v1a := regexp_matches(v1, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+    v2a := regexp_matches(v2, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+
+    -- convert modifiers to numbers for comparison
+    -- we do not delineate between alpha1, alpha2, alpha3, etc
+    ne1 := case when v1a[4] is null or v1a[4]='' then 5
+                when v1a[4] ilike 'rc%' then 4
+                when v1a[4] ilike 'beta%' then 3
+                when v1a[4] ilike 'alpha%' then 2
+                when v1a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    ne2 := case when v2a[4] is null or v2a[4]='' then 5
+                when v2a[4] ilike 'rc%' then 4
+                when v2a[4] ilike 'beta%' then 3
+                when v2a[4] ilike 'alpha%' then 2
+                when v2a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    nv1 := v1a[1]::integer * 10000 +
+           coalesce(v1a[2], '0')::integer * 1000 +
+           coalesce(v1a[3], '0')::integer *  100 + ne1;
+    nv2 := v2a[1]::integer * 10000 +
+           coalesce(v2a[2], '0')::integer * 1000 +
+           coalesce(v2a[3], '0')::integer *  100 + ne2;
+
+    --raise notice 'nv1: %, nv2: %, ne1: %, ne2: %', nv1, nv2, ne1, ne2;
+
+    return nv1 < nv2;
+end;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+create or replace function _pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_startpoint(st_geometryn(g,1));
+    else
+        return st_startpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function _pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_endpoint(st_geometryn(g,1));
+    else
+        return st_endpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_parameter_check(fn text, sql text, big boolean default false)
+  RETURNS bool AS
+  $BODY$
+
+  DECLARE
+  rec record;
+  rec1 record;
+  has_rcost boolean;
+  safesql text;
+  BEGIN
+    IF (big) THEN
+       RAISE EXCEPTION 'This function is for old style functions';
+    END IF;
+
+    -- checking query is executable
+    BEGIN
+      safesql =  'select * from ('||sql||' ) AS __a__ limit 1';
+      execute safesql into rec;
+      EXCEPTION
+        WHEN OTHERS THEN
+            RAISE EXCEPTION 'Could not execute query please verify syntax of: '
+              USING HINT = sql;
+    END;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('dijkstra','astar') THEN
+        BEGIN
+          execute 'select id,source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: id, source, target, cost';
+        END;
+        execute 'select pg_typeof(id)::text as id_type, pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.id_type in ('integer'::text))
+              AND (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Error, columns ''source'', ''target'' must be of type int4, ''cost'' must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    IF fn IN ('astar') THEN
+        BEGIN
+          execute 'select x1,y1,x2,y2  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: x1,y1, x2,y2';
+        END;
+        execute 'select pg_typeof(x1)::text as x1_type, pg_typeof(y1)::text as y1_type, pg_typeof(x2)::text as x2_type, pg_typeof(y2)::text as y2_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.x1_type = 'double precision'::text)
+              AND (rec.y1_type = 'double precision'::text)
+              AND (rec.x2_type = 'double precision'::text)
+              AND (rec.y2_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Columns: x1, y1, x2, y2 must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('johnson') THEN
+        BEGIN
+          execute 'select source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING HINT = 'Please veryfy the column names: id, source, target, cost',
+                         ERRCODE = 'XX000';
+        END;
+
+        execute 'select pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Support for source,target columns only of type: integer. Support for Cost: double precision'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    -- Checking the data types of the optional reverse_cost";
+    has_rcost := false;
+    IF fn IN ('johnson','dijkstra','astar') THEN
+      BEGIN
+        execute 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||safesql||' ) AS __b__ limit 1 ' into rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+            return has_rcost;
+      END;
+      if (has_rcost) then
+        IF (big) then
+           IF  not (rec1.rev_type in ('bigint'::text, 'integer'::text, 'smallint'::text, 'double precision'::text, 'real'::text)) then
+             RAISE EXCEPTION 'Illegar type in optional parameter reverse_cost.'
+             USING ERRCODE = 'XX000';
+           END IF;
+        ELSE -- Version 2.0.0 is more restrictive
+           IF (rec1.rev_type != 'double precision') then
+             RAISE EXCEPTION 'Illegal type in optional parameter reverse_cost, must be of type float8'
+             USING ERRCODE = 'XX000';
+           END IF;
+        END IF;
+      end if;
+      return true;
+    END IF;
+    -- just for keeps
+    return true;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_onError(
+  IN errCond boolean,  -- true there is an error
+  IN reportErrs int,   -- 0, 1 or 2
+  IN fnName text,      -- function name that generates the error
+  IN msgerr text,      -- error message
+  IN hinto text default 'No hint', -- hint help
+  IN msgok text default 'OK')      -- message if everything is ok
+  RETURNS void AS
+$BODY$
+BEGIN
+  if errCond=true then
+     if reportErrs=0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+     else
+       if reportErrs = 2 then
+         raise notice '----> PGR ERROR in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+         raise raise_exception;
+       else
+         raise notice '----> PGR NOTICE in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+       end if;
+     end if;
+  else
+       raise debug 'PGR ----> %: %',fnName,msgok;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_msg(IN msgKind int, IN fnName text, IN msg text default '---->OK')
+  RETURNS void AS
+$BODY$
+BEGIN
+  if msgKind = 0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msg;
+  else
+       raise notice '----> PGR NOTICE in %: %',fnName,msg;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(sname text, tname text, cname text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    EXECUTE 'select data_type  from information_schema.columns '
+            || 'where table_name = '||quote_literal(tname)
+                 || ' and table_schema=' || quote_literal(sname)
+                 || ' and column_name='||quote_literal(cname)
+       into ctype;
+    err = ctype is null;
+    perform _pgr_onError(err, reportErrs, fnName,
+            'Type of Column '|| cname ||' not found',
+            'Check your column name',
+            'OK: Type of Column '|| cname || ' is ' || ctype);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(tab text, col text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+    select * into cname from _pgr_getColumnName(tab,col,reportErrs, fnName) ;
+    select * into ctype from _pgr_getColumnType(sname,tname,cname,reportErrs, fnName);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_get_statement(o_sql text)
+RETURNS text AS
+$BODY$
+DECLARE
+sql TEXT;
+BEGIN
+    EXECUTE 'SELECT statement FROM pg_prepared_statements WHERE name ='  || quote_literal(o_sql) || ' limit 1 ' INTO sql;
+    IF (sql IS NULL) THEN
+      RETURN   o_sql;
+    ELSE
+      RETURN  regexp_replace(sql, '(.)* as ', '', 'i');
+    END IF;
+END
+$BODY$
+LANGUAGE plpgsql STABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_checkVertTab(vertname text, columnsArr  text[],
+    IN reportErrs int default 1, IN fnName text default '_pgr_checkVertTab',
+    OUT sname text,OUT vname text)
+RETURNS record AS
+$BODY$
+DECLARE
+    cname text;
+    colname text;
+    naming record;
+    debuglevel text;
+    err  boolean;
+    msgKind int;
+
+BEGIN
+    msgKind = 0; -- debug_
+    execute 'show client_min_messages' into debuglevel;
+
+    perform _pgr_msg(msgKind, fnName, 'Checking table ' || vertname || ' exists');
+       select * from _pgr_getTableName(vertname, 0, fnName) into naming;
+       sname=naming.sname;
+       vname=naming.tname;
+       err = sname is NULL or vname is NULL;
+    perform _pgr_onError( err, 2, fnName,
+          'Vertex Table: ' || vertname || ' not found',
+          'Please create ' || vertname || ' using  _pgr_createTopology() or pgr_createVerticesTable()',
+          'Vertex Table: ' || vertname || ' found');
+
+
+    perform _pgr_msg(msgKind, fnName, 'Checking columns of ' || vertname);
+      FOREACH cname IN ARRAY columnsArr
+      loop
+         select _pgr_getcolumnName(vertname, cname, 0, fnName) into colname;
+         if colname is null then
+           perform _pgr_msg(msgKind, fnName, 'Adding column ' || cname || ' in ' || vertname);
+           set client_min_messages  to warning;
+                execute 'ALTER TABLE '||_pgr_quote_ident(vertname)||' ADD COLUMN '||cname|| ' integer';
+           execute 'set client_min_messages  to '|| debuglevel;
+           perform _pgr_msg(msgKind, fnName);
+         end if;
+      end loop;
+    perform _pgr_msg(msgKind, fnName, 'Finished checking columns of ' || vertname);
+
+    perform _pgr_createIndex(vertname , 'id' , 'btree', reportErrs, fnName);
+ END
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(
+    sname text, tname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    debuglevel text;
+    naming record;
+    tabname text;
+    query text;
+    msgKind int;
+BEGIN
+  msgKind = 0; -- debug_
+
+  execute 'show client_min_messages' into debuglevel;
+  tabname=_pgr_quote_ident(sname||'.'||tname);
+  perform _pgr_msg(msgKind, fnName, 'Checking ' || colname || ' column in ' || tabname || ' is indexed');
+    IF (_pgr_isColumnIndexed(sname,tname,colname, 0, fnName)) then
+       perform _pgr_msg(msgKind, fnName);
+    else
+      if indext = 'gist' then
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using gist('||quote_ident(colname)||')';
+      else
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using btree('||quote_ident(colname)||')';
+      end if;
+      perform _pgr_msg(msgKind, fnName, 'Adding index ' || tabname || '_' ||  colname || '_idx');
+      perform _pgr_msg(msgKind, fnName, ' Using ' ||  query);
+      set client_min_messages  to warning;
+      BEGIN
+        execute query;
+        EXCEPTION WHEN others THEN
+          perform _pgr_onError( true, reportErrs, fnName,
+            'Could not create index on:' || colname, SQLERRM);
+      END;
+      execute 'set client_min_messages  to '|| debuglevel;
+      perform _pgr_msg(msgKind, fnName);
+    END IF;
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(tabname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    naming record;
+    sname text;
+    tname text;
+
+BEGIN
+    select * from _pgr_getTableName(tabname, 2, fnName)  into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    execute _pgr_createIndex(sname, tname, colname, indext, reportErrs, fnName);
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pointToId(
+    point geometry,
+    tolerance double precision,
+    vertname text,
+    srid integer)
+
+  RETURNS bigint AS
+$BODY$
+DECLARE
+    rec record;
+    pid bigint;
+
+BEGIN
+    EXECUTE 'SELECT ST_Distance(
+        the_geom,
+        ST_GeomFromText(ST_AsText('
+                || quote_literal(point::text)
+                || '),'
+            || srid ||')) AS d, id, the_geom
+    FROM '||_pgr_quote_ident(vertname)||'
+    WHERE ST_DWithin(
+        the_geom,
+        ST_GeomFromText(
+            ST_AsText(' || quote_literal(point::text) ||'),
+            ' || srid || '),' || tolerance||')
+    ORDER BY d
+    LIMIT 1' INTO rec ;
+    IF rec.id IS NOT NULL THEN
+        pid := rec.id;
+    ELSE
+        execute 'INSERT INTO '||_pgr_quote_ident(vertname)||' (the_geom) VALUES ('||quote_literal(point::text)||')';
+        pid := lastval();
+END IF;
+
+RETURN pid;
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'many_to_many_dijkstra'
+LANGUAGE c VOLATILE;
+
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer, OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstra(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(Many to Many)';
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraVia(
+    edges_sql TEXT,
+    via_vertices ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    strict BOOLEAN DEFAULT FALSE,
+    U_turn_on_edge BOOLEAN DEFAULT TRUE,
+
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'dijkstraVia'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_johnson(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'johnson'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_floydWarshall(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'floydWarshall'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'astarManyToMany'
+LANGUAGE c VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, normal:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to Many)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true, normal:=false) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to Many)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid ANYARRAY,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+    equicost BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '$libdir/libpgrouting-2.5', 'many_withPointsDD'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_withPointsDD($1, $2, ARRAY[$3]::BIGINT[], $4, $5, $6, $7, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vids anyarray,
+    distance FLOAT,
+    directed BOOLEAN DEFAULT TRUE,
+    equicost BOOLEAN DEFAULT FALSE,
+    OUT seq integer,
+    OUT from_v  bigint,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '$libdir/libpgrouting-2.5', 'driving_many_to_dist'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vid bigint,
+    distance FLOAT8,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq integer,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer, directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'kshortest_path'
+    LANGUAGE c STABLE STRICT;
+
+-- V2 the graph is directed and there are no heap paths
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid integer, end_vid integer, k integer, has_rcost boolean)
+  RETURNS SETOF pgr_costresult3 AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated signature of pgr_ksp';
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql::text, false);
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_rcost) THEN
+           -- user says that it has reverse_cost but its not true
+           RAISE EXCEPTION 'has_reverse_cost set to true but reverse_cost not found';
+         ELSE
+           -- user says that it does not have reverse_cost but it does have it
+           -- to ignore we remove reverse_cost from the query
+           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+         END IF;
+      END IF;
+
+      RETURN query SELECT ((row_number() over()) -1)::integer  AS seq,  (path_id - 1)::integer AS id1, node::integer AS id2, edge::integer AS id3, cost
+            FROM _pgr_ksp(sql::text, start_vid, end_vid, k, TRUE, FALSE) WHERE path_id <= k;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer,
+  directed boolean default true, heap_paths boolean default false,
+  --directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  BEGIN
+         RETURN query SELECT *
+                FROM _pgr_ksp(edges_sql::text, start_vid, end_vid, k, directed, heap_paths);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsKSP(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    k INTEGER,
+
+    directed BOOLEAN DEFAULT TRUE,
+    heap_paths BOOLEAN DEFAULT FALSE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER, OUT path_id INTEGER, OUT path_seq INTEGER,
+    OUT node BIGINT, OUT edge BIGINT,
+    OUT cost FLOAT, OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'withPoints_ksp'
+    LANGUAGE c STABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_unnest_matrix(matrix float8[][], OUT start_vid integer, OUT end_vid integer, out agg_cost float8)
+RETURNS SETOF record AS
+
+$body$
+DECLARE
+
+m float8[];
+
+BEGIN
+    start_vid = 1;
+    foreach m slice 1 in  ARRAY matrix
+    LOOP
+        end_vid = 1;
+        foreach agg_cost in  ARRAY m
+        LOOP
+            RETURN next;
+            end_vid = end_vid + 1;
+        END LOOP;
+        start_vid = start_vid + 1;
+    END LOOP;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_tsp(
+    matrix float8[][],
+    startpt INTEGER,
+    endpt INTEGER DEFAULT -1,
+    OUT seq INTEGER,
+    OUT id INTEGER)
+RETURNS SETOF record AS
+$body$
+DECLARE
+table_sql TEXT;
+debuglevel TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature pgr_tsp(float8[][], integer, integer)';
+
+    CREATE TEMP TABLE ___tmp2 ON COMMIT DROP AS SELECT * FROM _pgr_unnest_matrix( matrix );
+
+
+    startpt := startpt + 1;
+    IF endpt = -1 THEN endpt := startpt;
+    END IF;
+
+
+    RETURN QUERY
+    WITH
+    result AS (
+        SELECT * FROM pgr_TSP(
+        $$SELECT * FROM ___tmp2 $$,
+        startpt, endpt,
+
+        tries_per_temperature :=  500 :: INTEGER,
+        max_changes_per_temperature := 30 :: INTEGER,
+        max_consecutive_non_changes := 500 :: INTEGER,
+
+        randomize:=false)
+    )
+    SELECT (row_number() over(ORDER BY result.seq) - 1)::INTEGER AS seq, (result.node - 1)::INTEGER AS id
+
+    FROM result WHERE NOT(result.node = startpt AND result.seq != 1);
+
+    DROP TABLE ___tmp2;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+
+
+
+CREATE OR  REPLACE FUNCTION pgr_tsp(sql text, start_id INTEGER, end_id INTEGER default (-1))
+returns setof pgr_costResult as
+$body$
+DECLARE
+table_sql TEXT;
+rec RECORD;
+debuglevel TEXT;
+n BIGINT;
+
+BEGIN
+    RAISE NOTICE 'Deprecated Signature pgr_tsp(sql, integer, integer)';
+
+    table_sql := 'CREATE TEMP TABLE ___tmp ON COMMIT DROP AS ' || sql ;
+    EXECUTE table_sql;
+
+
+    BEGIN
+        EXECUTE 'SELECT id, x, y FROM ___tmp' INTO rec;
+        EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                USING ERRCODE = 'XX000',
+                HINT = 'Please verify the column names: id, x, y';
+    END;
+
+    EXECUTE
+    'SELECT
+        pg_typeof(id)::text as id_type,
+        pg_typeof(x)::text as x_type,
+        pg_typeof(y)::text as y_type FROM ___tmp' INTO rec;
+
+
+    IF NOT((rec.id_type in ('integer'::text))
+        AND (rec.x_type = 'double precision'::text)
+        AND (rec.y_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION '''id'' must be of type INTEGER, ''x'' ad ''y'' must be of type FLOAT'
+            USING ERRCODE = 'XX000';
+    END IF;
+
+    EXECUTE 'SELECT count(*) AS n FROM (' || sql || ') AS __a__' INTO rec;
+    n = rec.n;
+
+    RETURN query
+        SELECT (seq - 1)::INTEGER AS seq, node::INTEGER AS id1, node::INTEGER AS id2, cost
+        FROM pgr_eucledianTSP(sql, start_id, end_id,
+
+            tries_per_temperature :=  500 * n :: INTEGER,
+            max_changes_per_temperature := 60 * n :: INTEGER,
+            max_consecutive_non_changes := 500 * n :: INTEGER,
+
+            randomize := false) WHERE seq <= n;
+    DROP TABLE ___tmp;
+
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+
+create or replace function _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+  as
+$body$
+declare
+    sql text;
+    r record;
+
+begin
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    sql := 'with nodes as (' || sqlin || ')
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j, st_distance(st_makepoint(a.x, a.y), st_makepoint(b.x, b.y)) as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i';
+
+    for r in execute sql loop
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+
+end;
+$body$
+language plpgsql stable cost 10;
+
+
+CREATE OR REPLACE FUNCTION pgr_TSP(
+    matrix_row_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '$libdir/libpgrouting-2.5', 'newTSP'
+LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_eucledianTSP(
+    coordinates_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '$libdir/libpgrouting-2.5', 'eucledianTSP'
+LANGUAGE c VOLATILE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_alphashape(sql text, alpha float8 DEFAULT 0, OUT x float8, OUT y float8)
+    RETURNS SETOF record
+    AS '$libdir/libpgrouting-2.5', 'alphashape'
+    LANGUAGE c VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_pointsAsPolygon(query varchar, alpha float8 DEFAULT 0)
+	RETURNS geometry AS
+	$$
+	DECLARE
+		r record;
+		geoms geometry[];
+		vertex_result record;
+		i int;
+		n int;
+		spos int;
+		q text;
+		x float8[];
+		y float8[];
+
+	BEGIN
+		geoms := array[]::geometry[];
+		i := 1;
+
+		FOR vertex_result IN EXECUTE 'SELECT x, y FROM pgr_alphashape('''|| query || ''', ' || alpha || ')'
+		LOOP
+			x[i] = vertex_result.x;
+			y[i] = vertex_result.y;
+			i := i+1;
+		END LOOP;
+
+		n := i;
+		IF n = 1 THEN
+			RAISE NOTICE 'n = 1';
+			RETURN NULL;
+		END IF;
+
+		spos := 1;
+		q := 'SELECT ST_GeometryFromText(''POLYGON((';
+		FOR i IN 1..n LOOP
+			IF x[i] IS NULL AND y[i] IS NULL THEN
+				q := q || ', ' || x[spos] || ' ' || y[spos] || '))'',0) AS geom;';
+				EXECUTE q INTO r;
+				geoms := geoms || array[r.geom];
+				q := '';
+			ELSE
+				IF q = '' THEN
+					spos := i;
+					q := 'SELECT ST_GeometryFromText(''POLYGON((';
+				END IF;
+				IF i = spos THEN
+					q := q || x[spos] || ' ' || y[spos];
+				ELSE
+					q := q || ', ' || x[i] || ' ' || y[i];
+				END IF;
+			END IF;
+		END LOOP;
+
+		RETURN ST_BuildArea(ST_Collect(geoms));
+	END;
+	$$
+	LANGUAGE 'plpgsql' VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'bd_astar'
+LANGUAGE C VOLATILE;
+
+
+
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed:=true, only_cost:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    BOOLEAN,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false);
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to Many)';
+
+
+
+-- one to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to Many)';
+
+
+-- bdDijkstra MANY TO MANY
+CREATE OR REPLACE FUNCTION _pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'bdDijkstra'
+LANGUAGE c VOLATILE;
+
+
+
+-- ONE TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- TODO directed BOOLEAN DEFAULT TRUE,  on version 3
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, false) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, true) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_vid integer,
+    target_vid integer,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '$libdir/libpgrouting-2.5', 'turn_restrict_shortest_path_vertex'
+LANGUAGE 'c' IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '$libdir/libpgrouting-2.5', 'turn_restrict_shortest_path_edge'
+LANGUAGE 'c' IMMUTABLE;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || edges_sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        -- no restrictions then its a dijkstra
+        RETURN query SELECT a.seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_dijkstra(new_sql, start_vid, end_vid, directed) a;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, start_vid, end_vid, directed, has_rcost, restrictions_sql);
+    RETURN;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_trspViaVertices(
+    edges_sql TEXT,
+    via_vids ANYARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult3 AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            new_sql :=
+               'WITH old_sql AS (' || edges_sql || ')' ||
+                '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        RETURN query SELECT (row_number() over())::INTEGER, path_id:: INTEGER, node::INTEGER,
+            (CASE WHEN edge = -2 THEN -1 ELSE edge END)::INTEGER, cost
+            FROM pgr_dijkstraVia(new_sql, via_vids, directed, strict:=true) WHERE edge != -1;
+        RETURN;
+    END IF;
+
+
+    -- make the call without contradiction from part of the user
+    RETURN query SELECT * FROM _pgr_trspViaVertices(new_sql, via_vids::INTEGER[], directed, has_rcost, restrictions_sql);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+
+    new_sql := sql;
+    IF (has_reverse != has_reverse_cost) THEN  -- user contradiction
+        IF (has_reverse) THEN
+            -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) THEN
+        -- no restrictions then its a with points
+        RETURN query SELECT a.seq-1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_withpoints(new_sql,
+            '(SELECT 1 as pid, ' || source_eid || 'as edge_id, ' || source_pos || '::float8 as fraction)'
+            || ' UNION '
+            || '(SELECT 2, ' || target_eid || ', ' || target_pos || ')' ::TEXT,
+            -1, -2, directed) a;
+        -- WHERE node != -2;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, source_eid, source_pos, target_eid, target_pos, directed, has_reverse_cost, turn_restrict_sql);
+    RETURN;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+create or replace function _pgr_trspViaVertices(sql text, vids integer[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    lrra boolean := false;
+    seq integer := 0;
+    seq2 integer := 0;
+
+begin
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(vids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from _pgr_trsp(sql, vids[i], vids[i+1], directed, has_rcost, turn_restrict_sql) as a loop
+            -- filter out the individual path ends except the last one
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --raise notice 'rr: %', rr;
+            if rr.id3 = -1 then
+                lrr := rr;
+                lrra := true;
+            else
+                seq := seq + 1;
+                rr.seq := seq;
+                return next rr;
+            end if;
+        end loop;
+    end loop;
+
+    if lrra then
+        seq := seq + 1;
+        lrr.seq := seq;
+        return next lrr;
+    end if;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+
+----------------------------------------------------------------------------------------------------------
+
+create or replace function pgr_trspViaEdges(sql text, eids integer[], pcts float8[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    first boolean := true;
+    seq integer := 0;
+    seq2 integer :=0;
+    has_reverse BOOLEAN;
+    point_is_vertex BOOLEAN := false;
+    edges_sql TEXT;
+    f float;
+
+begin
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql := sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (NOT has_rcost) THEN
+            -- user does not want to use reverse cost column
+            edges_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    FOREACH f IN ARRAY pcts LOOP
+        IF f in (0,1) THEN
+           point_is_vertex := true;
+        END IF;
+    END LOOP;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) AND NOT point_is_vertex THEN
+        -- no restrictions then its a _pgr_withPointsVia
+        RETURN query SELECT a.seq::INTEGER, path_id::INTEGER AS id1, node::INTEGER AS id2, edge::INTEGER AS id3, cost
+        FROM _pgr_withPointsVia(edges_sql, eids, pcts, directed) a;
+        RETURN;
+    END IF;
+
+    if array_length(eids, 1) != array_length(pcts, 1) then
+        raise exception 'The length of arrays eids and pcts must be the same!';
+    end if;
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(eids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from pgr_trsp(edges_sql,
+                                  eids[i], pcts[i],
+                                  eids[i+1], pcts[i+1],
+                                  directed,
+                                  has_rcost,
+                                  turn_restrict_sql) as a loop
+            -- combine intermediate via costs when cost is split across
+            -- two parts of a segment because it stops it and
+            -- restarts the next leg also on it
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --
+            -- there are multiple condition we have to deal with
+            -- between the end of one leg and start of the next
+            -- 1. same vertex_id. edge_id=-1; drop record with edge_id=-1
+            -- means: path ends on vertex
+            -- NOTICE:  rr: (19,1,44570022,-1,0)
+            -- NOTICE:  rr: (0,2,44570022,1768045,2.89691196717448)
+            -- 2. vertex_id=-1; sum cost components
+            -- means: path end/starts with the segment
+            -- NOTICE:  rr: (11,2,44569628,1775909,9.32885885148532)
+            -- NOTICE:  rr: (0,3,-1,1775909,0.771386350984395)
+
+            --raise notice 'rr: %', rr;
+            if first then
+                lrr := rr;
+                first := false;
+            else
+                if lrr.id3 = -1 then
+                    lrr := rr;
+                elsif lrr.id3 = rr.id3 then
+                    lrr.cost := lrr.cost + rr.cost;
+                    if rr.id2 = -1 then
+                        rr.id2 := lrr.id2;
+                    end if;
+                else
+                    seq := seq + 1;
+                    lrr.seq := seq;
+                    return next lrr;
+                    lrr := rr;
+                end if;
+            end if;
+        end loop;
+    end loop;
+
+    seq := seq + 1;
+    lrr.seq := seq;
+    return next lrr;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+----------------------------
+--    MANY TO MANY
+----------------------------
+
+
+CREATE OR REPLACE FUNCTION _pgr_maxflow(
+    edges_sql TEXT,
+    sources ANYARRAY,
+    targets ANYARRAY,
+    algorithm INTEGER DEFAULT 1,
+    only_flow BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'max_flow_many_to_many'
+    LANGUAGE c VOLATILE;
+
+
+
+
+------------------------------------
+-- 3 pgr_edmondsKarp
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+------------------------------------
+-- 2 boykov_kolmogorov
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+------------------------------------
+-- 1 pgr_pushRelabel
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT flow
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], algorithm := 1, only_flow := true);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], $3::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, $2::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxCardinalityMatch(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'edge_disjoint_paths_many_to_many'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    bigint,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    IN directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_contractGraph(
+    edges_sql TEXT,
+    contraction_order BIGINT[],
+    max_cycles integer DEFAULT 1,
+    forbidden_vertices BIGINT[] DEFAULT ARRAY[]::BIGINT[],
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT type TEXT,
+    OUT id BIGINT,
+    OUT contracted_vertices BIGINT[],
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost float)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'contractGraph'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliver(
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_cell_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'pickDeliver'
+LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliverEuclidean (
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'pickDeliverEuclidean'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_vrpOneDepot(
+    TEXT, -- customers_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_sql
+    INTEGER, -- depot_id
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+orders_sql TEXT;
+trucks_sql TEXT;
+matrix_sql TEXT;
+final_sql TEXT;
+BEGIN
+
+    orders_sql = $$WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    pickups AS (
+        SELECT id, x AS p_x, y AS p_y, open_time AS p_open, close_time AS p_close, service_time AS p_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vrp_orders.id AS id, order_unit AS demand, pickups.id AS p_node_id, p_x, p_y, p_open, p_close, p_service,
+    vrp_orders.id AS d_node_id, x AS d_x, y AS d_y, open_time AS d_open, close_time AS d_close, service_time AS d_service
+    FROM vrp_orders, pickups
+    WHERE vrp_orders.id != $$ || $4;
+
+
+    trucks_sql = $$ WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    vrp_vehicles AS ($$ || $2 || $$ ),
+    starts AS (
+        SELECT id AS start_node_id, x AS start_x, y AS start_y, open_time AS start_open, close_time AS start_close, service_time AS start_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vehicle_id AS id, capacity, starts.* FROM vrp_vehicles, starts;
+    $$;
+
+    final_sql = '
+    SELECT * FROM _pgr_pickDeliver(
+            $$' || orders_sql || '$$,
+            $$' || trucks_sql || '$$,
+            $$' || $3 || '$$,
+            max_cycles := 2,
+            initial_sol := 4 ); ';
+
+    RAISE DEBUG '%', orders_sql;
+    RAISE DEBUG '%', trucks_sql;
+    RAISE DEBUG '%', $3;
+    RAISE DEBUG '%', final_sql;
+
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+-----------------------------------------------------------------------
+-- Core function for vrp with sigle depot computation
+-- See README for description
+-----------------------------------------------------------------------
+--
+--
+
+create or replace function pgr_vrpOneDepot(
+	order_sql text,
+	vehicle_sql text,
+	cost_sql text,
+	depot_id integer,
+
+	OUT oid integer,
+	OUT opos integer,
+	OUT vid integer,
+	OUT tarrival integer,
+	OUT tdepart integer)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT order_id::INTEGER, stop_seq::INTEGER, vehicle_id::INTEGER, arrival_time::INTEGER, departure_time::INTEGER
+    FROM _pgr_vrpOneDepot($1, $2,
+       '
+            SELECT src_id AS start_vid, dest_id AS end_vid, traveltime AS agg_cost FROM ('||$3||') AS a
+       ',
+        $4
+    ) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_gsoc_vrppdtw(
+    customers_sql TEXT,
+    max_vehicles INTEGER,
+    capacity FLOAT,
+    speed FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+
+    OUT seq INTEGER,
+    OUT vehicle_id INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT stop_id BIGINT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+    orders_sql TEXT;
+    vehicles_sql TEXT;
+    final_sql TEXT;
+BEGIN
+    orders_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        pickups AS (
+            SELECT id, demand, x as p_x, y as p_y, opentime as p_open, closetime as p_close, servicetime as p_service
+            FROM  customer_data WHERE pindex = 0 AND id != 0
+        ),
+        deliveries AS (
+            SELECT pindex AS id, x as d_x, y as d_y, opentime as d_open, closetime as d_close, servicetime as d_service
+            FROM  customer_data WHERE dindex = 0 AND id != 0
+        )
+        SELECT * FROM pickups JOIN deliveries USING(id) ORDER BY pickups.id
+    $$;
+
+    vehicles_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ )
+        SELECT id, x AS start_x, y AS start_y,
+            opentime AS start_open, closetime AS start_close, $$ ||
+            capacity || $$ AS capacity, $$ || max_vehicles || $$ AS number, $$ || speed || $$ AS speed
+            FROM customer_data WHERE id = 0 LIMIT 1
+        $$;
+--  seq | vehicle_id | vehicle_seq | stop_id | travel_time | arrival_time | wait_time | service_time | departure_time
+    final_sql = $$ WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        p_deliver AS (SELECT * FROM _pgr_pickDeliverEuclidean('$$ || orders_sql || $$',  '$$ || vehicles_sql || $$',  1, $$ || max_cycles || $$ )),
+        picks AS (SELECT p_deliver.*, pindex, dindex, id AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 2)),
+        delivers AS (SELECT p_deliver.*, pindex, dindex, dindex AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 3)),
+        depots AS (SELECT p_deliver.*, 0 as pindex, 0 as dindex, 0 AS the_id FROM p_deliver WHERE (stop_type IN (-1,1,6))),
+        the_union AS (SELECT * FROM picks UNION SELECT * FROM delivers UNION SELECT * from depots)
+
+        SELECT (row_number() over(ORDER BY a.seq))::INTEGER, vehicle_seq, a.stop_seq, the_id::BIGINT, a.travel_time, a.arrival_time, a.wait_time, a.service_time, a.departure_time
+        FROM (SELECT * FROM the_union) AS a ORDER BY a.seq
+        $$;
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+CREATE OR REPLACE FUNCTION pgr_gsoc_vrppdtw(
+    sql text,
+    vehicle_num INTEGER,
+    capacity INTEGER
+)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+customers_sql TEXT;
+BEGIN
+    RETURN query
+         SELECT a.seq, vehicle_id::INTEGER AS id1, stop_id::INTEGER AS id2, departure_time AS cost
+        FROM _pgr_gsoc_vrppdtw($1, $2, $3, 1, 30) AS a WHERE vehicle_id NOT IN (-2);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION _pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN,
+    driving_side CHAR,
+    details BOOLEAN,
+
+    only_cost BOOLEAN DEFAULT false, -- gets path
+    normal BOOLEAN DEFAULT true, -- false for many to onu
+
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'withPoints'
+LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], ARRAY[$4]::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], ARRAY[$4]::bigint[], $5, $6, $7, FALSE, FALSE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], $4::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], $4::BIGINT[], $5,  $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION  _pgr_withPointsVia(
+    sql text,
+    via_edges bigint[],
+    fraction float[],
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  has_rcost boolean;
+  sql_new_vertices text := ' ';
+  sql_on_vertex text;
+  v_union text := ' ';
+  dummyrec record;
+  rec1 record;
+  via_vertices int[];
+  sql_safe text;
+  new_edges text;
+  BEGIN
+     BEGIN
+        sql_safe = 'SELECT id, source, target, cost, reverse_cost FROM ('|| sql || ') AS __a';
+
+        EXECUTE 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||sql_safe||' ) AS __b__ limit 1 ' INTO rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+     END;
+
+
+      IF array_length(via_edges, 1) != array_length(fraction, 1) then
+        RAISE EXCEPTION 'The length of via_edges is different of length of via_edges';
+      END IF;
+
+      FOR i IN 1 .. array_length(via_edges, 1)
+      LOOP
+          IF fraction[i] = 0 THEN
+              sql_on_vertex := 'SELECT source FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.source;
+          ELSE IF fraction[i] = 1 THEN
+              sql_on_vertex := 'SELECT target FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.target;
+          ELSE
+              via_vertices[i] = -i;
+              IF has_rcost THEN
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost,
+                              reverse_cost * (1 - ' || fraction[i] || ')  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost,
+                              reverse_cost *  ' || fraction[i] || '  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' where id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               ELSE
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               END IF;
+          END IF;
+          END IF;
+     END LOOP;
+
+     IF sql_new_vertices = ' ' THEN
+         new_edges := sql;
+     ELSE
+         IF has_rcost THEN
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost,
+                         lead(cost) OVER w  - cost AS reverse_cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL),
+                   second_part AS ( SELECT * FROM (SELECT id, lead(source) OVER w  AS source, source as target,
+                         reverse_cost - lead(reverse_cost) OVER w  AS cost,
+                         reverse_cost - lead(reverse_cost) OVER w  AS reverse_cost
+                      FROM  the_union  WHERE target > 0 and reverse_cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY reverse_cost ASC) ) as n2
+                      WHERE source IS NOT NULL),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part)
+                             UNION
+                       (SELECT * FROM second_part) ) _union )
+                  SELECT *  FROM more_union';
+         ELSE
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL ),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part) ) _union )
+                  SELECT *  FROM more_union';
+          END IF;
+      END IF;
+
+ -- raise notice '%', new_edges;
+     sql_new_vertices := sql_new_vertices || v_union || ' (' || sql || ')';
+     RETURN query SELECT *
+         FROM pgr_dijkstraVia(new_edges, via_vertices, directed, has_rcost);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_lineGraph(
+    TEXT, -- edges_sql
+    directed BOOLEAN DEFAULT true,
+    OUT seq INTEGER,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost FLOAT,
+    OUT reverse_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'lineGraph'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_connectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'connectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_strongComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'strongComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_biconnectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the edge in the component
+    OUT n_seq INTEGER,          -- nth_seq of the edge in the component
+    OUT edge BIGINT)            -- the number of the edge
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'biconnectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_articulationPoints(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'articulationPoints'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_bridges(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT edge BIGINT)            -- the number of the edge 
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'bridges'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_createtopology(edge_table text, tolerance double precision,
+		   the_geom text default 'the_geom', id text default 'id',
+		   source text default 'source', target text default 'target',rows_where text default 'true',
+		   clean boolean default FALSE)
+RETURNS VARCHAR AS
+$BODY$
+
+DECLARE
+    points record;
+    sridinfo record;
+    source_id bigint;
+    target_id bigint;
+    totcount bigint;
+    rowcount bigint;
+    srid integer;
+    sql text;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    idname text;
+    sourcename text;
+    targetname text;
+    notincluded integer;
+    i integer;
+    naming record;
+    info record;
+    flag boolean;
+    query text;
+    idtype text;
+    gtype text;
+    sourcetype text;
+    targettype text;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+    msgKind int;
+    emptied BOOLEAN;
+
+BEGIN
+    msgKind = 1; -- notice
+    fnName = 'pgr_createTopology';
+    raise notice 'PROCESSING:';
+    raise notice 'pgr_createTopology(''%'', %, ''%'', ''%'', ''%'', ''%'', rows_where := ''%'', clean := %)',edge_table,tolerance,the_geom,id,source,target,rows_where, clean;
+    execute 'show client_min_messages' into debuglevel;
+
+
+    raise notice 'Performing checks, please wait .....';
+
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+        sname=naming.sname;
+        tname=naming.tname;
+        tabname=sname||'.'||tname;
+        vname=tname||'_vertices_pgr';
+        vertname= sname||'.'||vname;
+        rows_where = ' AND ('||rows_where||')';
+      raise DEBUG '     --> OK';
+
+
+      raise debug 'Checking column names in edge table';
+        select * into idname     from _pgr_getColumnName(sname, tname,id,2,fnName);
+        select * into sourcename from _pgr_getColumnName(sname, tname,source,2,fnName);
+        select * into targetname from _pgr_getColumnName(sname, tname,target,2,fnName);
+        select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2,fnName);
+
+
+        err = sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname;
+        perform _pgr_onError( err, 2, fnName,
+               'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
+	       'Column names are OK');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking column types in edge table';
+        select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+        select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+        select * into idtype from _pgr_getColumnType(sname,tname,idname,1, fnName);
+
+        err = idtype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column id:'|| idname, ' Expected type of '|| idname || ' is integer,smallint or bigint but '||idtype||' was found');
+
+        err = sourcetype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column source:'|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+        err = targettype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column target:'|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or bigint but '||targettype||' was found');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking SRID of geometry column';
+         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+            || ' FROM ' || _pgr_quote_ident(tabname)
+            || ' WHERE ' || quote_ident(gname)
+            || ' IS NOT NULL LIMIT 1';
+         raise debug '%',query;
+         EXECUTE query INTO sridinfo;
+
+         err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+         perform _pgr_onError(err, 2, fnName,
+	     'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+
+         srid := sridinfo.srid;
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking and creating indices in edge table';
+        perform _pgr_createIndex(sname, tname , idname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+
+        gname=quote_ident(gname);
+        idname=quote_ident(idname);
+        sourcename=quote_ident(sourcename);
+        targetname=quote_ident(targetname);
+      raise DEBUG '     --> OK';
+
+
+
+
+
+    BEGIN
+        -- issue #193 & issue #210 & #213
+        -- this sql is for trying out the where clause
+        -- the select * is to avoid any column name conflicts
+        -- limit 1, just try on first record
+        -- if the where clasuse is ill formed it will be caught in the exception
+        sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+        EXECUTE sql into dummyRec;
+        -- end
+
+        -- if above where clasue works this one should work
+        -- any error will be caught by the exception also
+        sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NOT NULL AND '||
+	    idname||' IS NOT NULL)=false '||rows_where;
+        EXECUTE SQL  into notincluded;
+
+        if clean then
+            raise debug 'Cleaning previous Topology ';
+               execute 'UPDATE ' || _pgr_quote_ident(tabname) ||
+               ' SET '||sourcename||' = NULL,'||targetname||' = NULL';
+        else
+            raise debug 'Creating topology for edges with non assigned topology';
+            if rows_where=' AND (true)' then
+                rows_where=  ' and ('||quote_ident(sourcename)||' is null or '||quote_ident(targetname)||' is  null)';
+            end if;
+        end if;
+        -- my thoery is that the select Count(*) will never go through here
+        EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+             RAISE NOTICE '%',sql;
+             RETURN 'FAIL';
+    END;
+
+    BEGIN
+         raise DEBUG 'initializing %',vertname;
+         execute 'select * from _pgr_getTableName('||quote_literal(vertname)
+                                                  || ',0,' || quote_literal(fnName) ||' )' into naming;
+         emptied = false;
+         set client_min_messages  to warning;
+         IF sname=naming.sname AND vname=naming.tname  THEN
+            if clean then
+                execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+                execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+                emptied = true;
+            end if;
+         ELSE -- table doesn't exist
+            execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+            emptied = true;
+         END IF;
+         IF (emptied) THEN
+             execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+	         quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+             perform _pgr_createIndex(vertname , 'the_geom'::text , 'gist'::text);
+         END IF;
+         execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id"}''::text[])' into naming;
+         execute 'set client_min_messages  to '|| debuglevel;
+         raise DEBUG  '  ------>OK';
+         EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: something went wrong when initializing the verties table';
+             RETURN 'FAIL';
+    END;
+
+
+
+    raise notice 'Creating Topology, Please wait...';
+        rowcount := 0;
+        FOR points IN EXECUTE 'SELECT ' || idname || '::bigint AS id,'
+            || ' _pgr_StartPoint(' || gname || ') AS source,'
+            || ' _pgr_EndPoint('   || gname || ') AS target'
+            || ' FROM '  || _pgr_quote_ident(tabname)
+            || ' WHERE ' || gname || ' IS NOT NULL AND ' || idname||' IS NOT NULL '||rows_where
+        LOOP
+
+            rowcount := rowcount + 1;
+            IF rowcount % 1000 = 0 THEN
+                RAISE NOTICE '% edges processed', rowcount;
+            END IF;
+
+
+            source_id := _pgr_pointToId(points.source, tolerance,vertname,srid);
+            target_id := _pgr_pointToId(points.target, tolerance,vertname,srid);
+            BEGIN
+                sql := 'UPDATE ' || _pgr_quote_ident(tabname) ||
+                    ' SET '||sourcename||' = '|| source_id::text || ','||targetname||' = ' || target_id::text ||
+                    ' WHERE ' || idname || ' =  ' || points.id::text;
+
+                IF sql IS NULL THEN
+                    RAISE NOTICE 'WARNING: UPDATE % SET source = %, target = % WHERE % = % ', tabname, source_id::text, target_id::text, idname,  points.id::text;
+                ELSE
+                    EXECUTE sql;
+                END IF;
+                EXCEPTION WHEN OTHERS THEN
+                    RAISE NOTICE '%', SQLERRM;
+                    RAISE NOTICE '%',sql;
+                    RETURN 'FAIL';
+            end;
+        END LOOP;
+        raise notice '-------------> TOPOLOGY CREATED FOR  % edges', rowcount;
+        RAISE NOTICE 'Rows with NULL geometry or NULL id: %',notincluded;
+        Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname), _pgr_quote_ident(vertname);
+        raise notice '----------------------------------------------';
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+COMMENT ON FUNCTION pgr_createTopology(text, double precision,text,text,text,text,text,boolean)
+IS 'args: edge_table,tolerance, the_geom:=''the_geom'',source:=''source'', target:=''target'',rows_where:=''true'' - fills columns source and target in the geometry table and creates a vertices table for selected rows';
+
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
+RETURNS character varying AS
+$BODY$
+
+DECLARE
+    points record;
+    seg record;
+    naming record;
+    sridinfo record;
+    srid integer;
+    ecnt integer;
+    vertname text;
+    sname text;
+    tname text;
+    vname text;
+    idname text;
+    sourcename text;
+    targetname text;
+    sourcetype text;
+    targettype text;
+    geotype text;
+    gname text;
+    tabName text;
+    flag boolean ;
+    query text;
+    selectionquery text;
+    i integer;
+    tot integer;
+    NumIsolated integer;
+    numdeadends integer;
+    numgaps integer;
+    NumCrossing integer;
+    numRings integer;
+    debuglevel text;
+
+
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_analyzeGraph(''%'',%,''%'',''%'',''%'',''%'',''%'')',edge_table,tolerance,the_geom,id,source,target,rows_where;
+  raise notice 'Performing checks, please wait ...';
+  execute 'show client_min_messages' into debuglevel;
+
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',2)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    rows_where = ' AND ('||rows_where||')';
+    raise DEBUG '     --> OK';
+
+  END;
+
+  BEGIN
+       raise debug 'Checking Vertices table';
+       execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","cnt","chk"}''::text[])' into naming;
+       execute 'UPDATE '||_pgr_quote_ident(vertname)||' SET cnt=0 ,chk=0';
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the vertices table';
+          RETURN 'FAIL';
+  END;
+
+
+
+  BEGIN
+       raise debug 'Checking column names in edge table';
+       select * into idname     from _pgr_getColumnName(sname, tname,id,2);
+       select * into sourcename from _pgr_getColumnName(sname, tname,source,2);
+       select * into targetname from _pgr_getColumnName(sname, tname,target,2);
+       select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2);
+
+
+       perform _pgr_onError( sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname, 2,
+                       'pgr_analyzeGraph',  'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
+                       'Column names are OK');
+
+        raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column names';
+          RETURN 'FAIL';
+  END;
+
+
+  BEGIN
+       raise debug 'Checking column types in edge table';
+       select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1);
+       select * into targettype from _pgr_getColumnType(sname,tname,targetname,1);
+
+       perform _pgr_onError(sourcetype not in('integer','smallint','bigint') , 2,
+                       'pgr_analyzeGraph',  'Wrong type of Column '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found',
+                       'Type of Column '|| sourcename || ' is ' || sourcetype);
+
+       perform _pgr_onError(targettype not in('integer','smallint','bigint') , 2,
+                       'pgr_analyzeGraph',  'Wrong type of Column '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found',
+                       'Type of Column '|| targetname || ' is ' || targettype);
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column types';
+          RETURN 'FAIL';
+   END;
+
+   BEGIN
+       raise debug 'Checking SRID of geometry column';
+         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+            || ' FROM ' || _pgr_quote_ident(tabname)
+            || ' WHERE ' || quote_ident(gname)
+            || ' IS NOT NULL LIMIT 1';
+         EXECUTE QUERY INTO sridinfo;
+
+         perform _pgr_onError( sridinfo IS NULL OR sridinfo.srid IS NULL,2,
+                 'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname,
+                 'SRID of '||gname||' is '||sridinfo.srid);
+
+         IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
+             RAISE NOTICE ' Can not determine the srid of the geometry "%" in table %', the_geom,tabname;
+             RETURN 'FAIL';
+         END IF;
+         srid := sridinfo.srid;
+         raise DEBUG '     --> OK';
+         EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM;--issue 210,211,213
+             RAISE NOTICE 'ERROR: something went wrong when checking for SRID of % in table %', the_geom,tabname;
+             RETURN 'FAIL';
+    END;
+
+
+    BEGIN
+       raise debug 'Checking  indices in edge table';
+       perform _pgr_createIndex(tabname , idname , 'btree');
+       perform _pgr_createIndex(tabname , sourcename , 'btree');
+       perform _pgr_createIndex(tabname , targetname , 'btree');
+       perform _pgr_createIndex(tabname , gname , 'gist');
+
+       gname=quote_ident(gname);
+       sourcename=quote_ident(sourcename);
+       targetname=quote_ident(targetname);
+       idname=quote_ident(idname);
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking indices';
+          RETURN 'FAIL';
+    END;
+
+
+    BEGIN
+        query='select count(*) from '||_pgr_quote_ident(tabname)||' where true  '||rows_where;
+        EXECUTE query into ecnt;
+        raise DEBUG '-->Rows Where condition: OK';
+        raise DEBUG '     --> OK';
+         EXCEPTION WHEN OTHERS THEN
+            RAISE NOTICE 'Got %', SQLERRM;  --issue 210,211,213
+            RAISE NOTICE 'ERROR: Condition is not correct. Please execute the following query to test your condition';
+            RAISE NOTICE '%',query;
+            RETURN 'FAIL';
+    END;
+
+    selectionquery ='with
+           selectedRows as( (select '||sourcename||' as id from '||_pgr_quote_ident(tabname)||' where true '||rows_where||')
+                           union
+                           (select '||targetname||' as id from '||_pgr_quote_ident(tabname)||' where true '||rows_where||'))';
+
+
+
+
+
+   BEGIN
+       RAISE NOTICE 'Analyzing for dead ends. Please wait...';
+       query= 'with countingsource as (select a.'||sourcename||' as id,count(*) as cnts
+               from (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) a  group by a.'||sourcename||')
+                     ,countingtarget as (select a.'||targetname||' as id,count(*) as cntt
+                    from (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) a  group by a.'||targetname||')
+                   ,totalcount as (select id,case when cnts is null and cntt is null then 0
+                                                   when cnts is null then cntt
+                                                   when cntt is null then cnts
+                                                   else cnts+cntt end as totcnt
+                                   from ('||_pgr_quote_ident(vertname)||' as a left
+                                   join countingsource as t using(id) ) left join countingtarget using(id))
+               update '||_pgr_quote_ident(vertname)||' as a set cnt=totcnt from totalcount as b where a.id=b.id';
+       raise debug '%',query;
+       execute query;
+       query=selectionquery||'
+              SELECT count(*)  FROM '||_pgr_quote_ident(vertname)||' WHERE cnt=1 and id in (select id from selectedRows)';
+       raise debug '%',query;
+       execute query  INTO numdeadends;
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'Got %', SQLERRM;  --issue 210,211,213
+          RAISE NOTICE 'ERROR: something went wrong when analizing for dead ends';
+          RETURN 'FAIL';
+   END;
+
+
+
+    BEGIN
+          RAISE NOTICE 'Analyzing for gaps. Please wait...';
+          query = 'with
+                   buffer as (select id,st_buffer(the_geom,'||tolerance||') as buff from '||_pgr_quote_ident(vertname)||' where cnt=1)
+                   ,veryclose as (select b.id,st_crosses(a.'||gname||',b.buff) as flag
+                   from  (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) as a
+                   join buffer as b on (a.'||gname||'&&b.buff)
+                   where '||sourcename||'!=b.id and '||targetname||'!=b.id )
+                   update '||_pgr_quote_ident(vertname)||' set chk=1 where id in (select distinct id from veryclose where flag=true)';
+          raise debug '%' ,query;
+          execute query;
+          GET DIAGNOSTICS  numgaps= ROW_COUNT;
+          raise DEBUG '     --> OK';
+          EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for gaps';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for isolated edges. Please wait...';
+        query=selectionquery|| ' SELECT count(*) FROM (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' )  as a,
+                                                 '||_pgr_quote_ident(vertname)||' as b,
+                                                 '||_pgr_quote_ident(vertname)||' as c
+                            WHERE b.id in (select id from selectedRows) and a.'||sourcename||' =b.id
+                            AND b.cnt=1 AND a.'||targetname||' =c.id
+                            AND c.cnt=1';
+        raise debug '%' ,query;
+        execute query  INTO NumIsolated;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for isolated edges';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for ring geometries. Please wait...';
+        execute 'SELECT geometrytype('||gname||')  FROM '||_pgr_quote_ident(tabname) limit 1 into geotype;
+        IF (geotype='MULTILINESTRING') THEN
+            query ='SELECT count(*)  FROM '||_pgr_quote_ident(tabname)||'
+                                 WHERE true  '||rows_where||' and st_isRing(st_linemerge('||gname||'))';
+            raise debug '%' ,query;
+            execute query  INTO numRings;
+        ELSE query ='SELECT count(*)  FROM '||_pgr_quote_ident(tabname)||'
+                                  WHERE true  '||rows_where||' and st_isRing('||gname||')';
+            raise debug '%' ,query;
+            execute query  INTO numRings;
+        END IF;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for ring geometries';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for intersections. Please wait...';
+        query = 'select count(*) from (select distinct case when a.'||idname||' < b.'||idname||' then a.'||idname||'
+                                                        else b.'||idname||' end,
+                                                   case when a.'||idname||' < b.'||idname||' then b.'||idname||'
+                                                        else a.'||idname||' end
+                                    FROM (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||') as a
+                                    JOIN (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||') as b
+                                    ON (a.'|| gname||' && b.'||gname||')
+                                    WHERE a.'||idname||' != b.'||idname|| '
+                                        and (a.'||sourcename||' in (b.'||sourcename||',b.'||targetname||')
+                                              or a.'||targetname||' in (b.'||sourcename||',b.'||targetname||')) = false
+                                        and st_intersects(a.'||gname||', b.'||gname||')=true) as d ';
+        raise debug '%' ,query;
+        execute query  INTO numCrossing;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for intersections';
+            RETURN 'FAIL';
+    END;
+
+
+
+
+    RAISE NOTICE '            ANALYSIS RESULTS FOR SELECTED EDGES:';
+    RAISE NOTICE '                  Isolated segments: %', NumIsolated;
+    RAISE NOTICE '                          Dead ends: %', numdeadends;
+    RAISE NOTICE 'Potential gaps found near dead ends: %', numgaps;
+    RAISE NOTICE '             Intersections detected: %',numCrossing;
+    RAISE NOTICE '                    Ring geometries: %',numRings;
+
+
+    RETURN 'OK';
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+COMMENT ON FUNCTION pgr_analyzeGraph(text,double precision,text,text,text,text,text) IS 'args: edge_table, tolerance,the_geom:=''the_geom'',id:=''id'',source column:=''source'', target column:=''target'' rows_where:=''true'' - creates a vertices table based on the geometry for selected rows';
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_analyzeOneway(
+   edge_table text,
+   s_in_rules TEXT[],
+   s_out_rules TEXT[],
+   t_in_rules TEXT[],
+   t_out_rules TEXT[],
+   two_way_if_null boolean default true,
+   oneway text default 'oneway',
+   source text default 'source',
+   target text default 'target')
+  RETURNS text AS
+$BODY$
+
+
+DECLARE
+    rule text;
+    ecnt integer;
+    instr text;
+    naming record;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    owname text;
+    sourcename text;
+    targetname text;
+    sourcetype text;
+    targettype text;
+    vertname text;
+    debuglevel text;
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_analyzeOneway(''%'',''%'',''%'',''%'',''%'',''%'',''%'',''%'',%)',
+		edge_table, s_in_rules , s_out_rules, t_in_rules, t_out_rules, oneway, source ,target,two_way_if_null ;
+  execute 'show client_min_messages' into debuglevel;
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',2)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    raise DEBUG '     --> OK';
+    EXCEPTION WHEN raise_exception THEN
+      RAISE NOTICE 'ERROR: something went wrong checking the table name';
+      RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise debug 'Checking Vertices table';
+       execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","ein","eout"}''::text[])' into naming;
+       execute 'UPDATE '||_pgr_quote_ident(vertname)||' SET eout=0 ,ein=0';
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the vertices table';
+          RETURN 'FAIL';
+  END;
+
+
+  BEGIN
+       raise debug 'Checking column names in edge table';
+       select * into sourcename from _pgr_getColumnName(sname, tname,source,2);
+       select * into targetname from _pgr_getColumnName(sname, tname,target,2);
+       select * into owname from _pgr_getColumnName(sname, tname,oneway,2);
+
+
+       perform _pgr_onError( sourcename in (targetname,owname) or  targetname=owname, 2,
+                       '_pgr_createToplogy',  'Two columns share the same name', 'Parameter names for oneway,source and target  must be different',
+                       'Column names are OK');
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column names';
+          RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise debug 'Checking column types in edge table';
+       select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1);
+       select * into targettype from _pgr_getColumnType(sname,tname,targetname,1);
+
+
+       perform _pgr_onError(sourcetype not in('integer','smallint','bigint') , 2,
+                       '_pgr_createTopology',  'Wrong type of Column '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found',
+                       'Type of Column '|| sourcename || ' is ' || sourcetype);
+
+       perform _pgr_onError(targettype not in('integer','smallint','bigint') , 2,
+                       '_pgr_createTopology',  'Wrong type of Column '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found',
+                       'Type of Column '|| targetname || ' is ' || targettype);
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column types';
+          RETURN 'FAIL';
+   END;
+
+
+
+    RAISE NOTICE 'Analyzing graph for one way street errors.';
+
+    rule := CASE WHEN two_way_if_null
+            THEN owname || ' IS NULL OR '
+            ELSE '' END;
+
+    instr := '''' || array_to_string(s_in_rules, ''',''') || '''';
+       EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set ein=coalesce(ein,0)+b.cnt
+      from (
+         select '|| sourcename ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| sourcename ||' ) b
+     where a.id=b.'|| sourcename;
+
+    RAISE NOTICE 'Analysis 25%% complete ...';
+
+    instr := '''' || array_to_string(t_in_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set ein=coalesce(ein,0)+b.cnt
+        from (
+         select '|| targetname ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| targetname ||' ) b
+        where a.id=b.'|| targetname;
+
+    RAISE NOTICE 'Analysis 50%% complete ...';
+
+    instr := '''' || array_to_string(s_out_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set eout=coalesce(eout,0)+b.cnt
+        from (
+         select '|| sourcename ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| sourcename ||' ) b
+        where a.id=b.'|| sourcename;
+    RAISE NOTICE 'Analysis 75%% complete ...';
+
+    instr := '''' || array_to_string(t_out_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set eout=coalesce(eout,0)+b.cnt
+        from (
+         select '|| targetname ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| targetname ||' ) b
+        where a.id=b.'|| targetname;
+
+    RAISE NOTICE 'Analysis 100%% complete ...';
+
+    EXECUTE 'SELECT count(*)  FROM '||_pgr_quote_ident(vertname)||' WHERE ein=0 or eout=0' INTO ecnt;
+
+    RAISE NOTICE 'Found % potential problems in directionality' ,ecnt;
+
+    RETURN 'OK';
+
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+COMMENT ON FUNCTION pgr_analyzeOneway(text,TEXT[],TEXT[], TEXT[],TEXT[],boolean,text,text,text)
+IS 'args:edge_table , s_in_rules , s_out_rules, t_in_rules , t_out_rules, two_way_if_null:= true, oneway:=''oneway'',source:= ''source'',target:=''target'' - Analizes the directionality of the edges based on the rules';
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_createverticestable(
+   edge_table text,
+   the_geom text DEFAULT 'the_geom'::text,
+   source text DEFAULT 'source'::text,
+   target text DEFAULT 'target'::text,
+    rows_where text DEFAULT 'true'::text
+)
+  RETURNS text AS
+$BODY$
+DECLARE
+    naming record;
+    sridinfo record;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    sourcename text;
+    targetname text;
+    query text;
+    ecnt bigint;
+    srid integer;
+    sourcetype text;
+    targettype text;
+    sql text;
+    totcount integer;
+    i integer;
+    notincluded integer;
+    included integer;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+
+
+BEGIN
+  fnName = 'pgr_createVerticesTable';
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_createVerticesTable(''%'',''%'',''%'',''%'',''%'')',edge_table,the_geom,source,target,rows_where;
+  execute 'show client_min_messages' into debuglevel;
+
+  raise notice 'Performing checks, please wait .....';
+
+  RAISE DEBUG 'Checking % exists',edge_table;
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    rows_where = ' AND ('||rows_where||')';
+  raise debug '--> Edge table exists: OK';
+
+  raise debug 'Checking column names';
+    select * into sourcename from _pgr_getColumnName(sname, tname,source,2, fnName);
+    select * into targetname from _pgr_getColumnName(sname, tname,target,2, fnName);
+    select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2, fnName);
+
+
+    err = sourcename in (targetname,gname) or  targetname=gname;
+    perform _pgr_onError(err, 2, fnName,
+        'Two columns share the same name', 'Parameter names for the_geom,source and target  must be different');
+  raise debug '--> Column names: OK';
+
+  raise debug 'Checking column types in edge table';
+    select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+    select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+
+
+    err = sourcetype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column source: '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+    err = targettype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column target: '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found');
+
+  raise debug '-->Column types:OK';
+
+  raise debug 'Checking SRID of geometry column';
+     query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+        || ' FROM ' || _pgr_quote_ident(tabname)
+        || ' WHERE ' || quote_ident(gname)
+        || ' IS NOT NULL LIMIT 1';
+     raise debug '%',query;
+     EXECUTE query INTO sridinfo;
+
+     err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+     perform _pgr_onError(err, 2, fnName,
+         'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+     srid := sridinfo.srid;
+  raise DEBUG '     --> OK';
+
+  raise debug 'Checking and creating Indices';
+     perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+  raise DEBUG '-->Check and create indices: OK';
+
+     gname=quote_ident(gname);
+     sourcename=quote_ident(sourcename);
+     targetname=quote_ident(targetname);
+
+
+  BEGIN
+  raise debug 'Checking Condition';
+    -- issue #193 & issue #210 & #213
+    -- this sql is for trying out the where clause
+    -- the select * is to avoid any column name conflicts
+    -- limit 1, just try on first record
+    -- if the where clasuse is ill formed it will be caught in the exception
+    sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+    EXECUTE sql into dummyRec;
+    -- end
+
+    -- if above where clasue works this one should work
+    -- any error will be caught by the exception also
+    sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NULL or '||
+		sourcename||' is null or '||targetname||' is null)=true '||rows_where;
+    raise debug '%',sql;
+    EXECUTE SQL  into notincluded;
+    EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+
+
+
+  BEGIN
+     raise DEBUG 'initializing %',vertname;
+       execute 'select * from _pgr_getTableName('||quote_literal(vertname)||',0)' into naming;
+       IF sname=naming.sname  AND vname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+       ELSE
+           set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+       END IF;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+                quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+       execute 'CREATE INDEX '||quote_ident(vname||'_the_geom_idx')||' ON '||_pgr_quote_ident(vertname)||'  USING GIST (the_geom)';
+       execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+       EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Initializing vertex table';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise notice 'Populating %, please wait...',vertname;
+       sql= 'with
+		lines as ((select distinct '||sourcename||' as id, _pgr_startpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+		                  ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||')
+			union (select distinct '||targetname||' as id,_pgr_endpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+			          ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||'))
+		,numberedLines as (select row_number() OVER (ORDER BY id) AS i,* from lines )
+		,maxid as (select id,max(i) as maxi from numberedLines group by id)
+		insert into '||_pgr_quote_ident(vertname)||'(id,the_geom)  (select id,the_geom  from numberedLines join maxid using(id) where i=maxi order by id)';
+       RAISE debug '%',sql;
+       execute sql;
+       GET DIAGNOSTICS totcount = ROW_COUNT;
+
+       sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' a, '||_pgr_quote_ident(vertname)||' b
+            where '||sourcename||'=b.id and '|| targetname||' in (select id from '||_pgr_quote_ident(vertname)||')';
+       RAISE debug '%',sql;
+       execute sql into included;
+
+
+
+       execute 'select max(id) from '||_pgr_quote_ident(vertname) into ecnt;
+       execute 'SELECT setval('||quote_literal(vertname||'_id_seq')||','||coalesce(ecnt,1)||' , false)';
+       raise notice '  ----->   VERTICES TABLE CREATED WITH  % VERTICES', totcount;
+       raise notice '                                       FOR   %  EDGES', included+notincluded;
+       RAISE NOTICE '  Edges with NULL geometry,source or target: %',notincluded;
+       RAISE NOTICE '                            Edges processed: %',included;
+       Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname),_pgr_quote_ident(vertname);
+       raise notice '----------------------------------------------';
+    END;
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+COMMENT ON FUNCTION pgr_createVerticesTable(text,text,text,text,text)
+IS 'args: edge_table, the_geom:=''the_geom'',source:=''source'', target:=''target'' rows_where:=''true'' - creates a vertices table based on the source and target identifiers for selected rows';
+
+
+CREATE OR REPLACE FUNCTION pgr_nodeNetwork(edge_table text, tolerance double precision,
+			id text default 'id', the_geom text default 'the_geom', table_ending text default 'noded',
+            rows_where text DEFAULT ''::text, outall boolean DEFAULT false) RETURNS text AS
+$BODY$
+DECLARE
+	
+	p_num int := 0;
+	p_ret text := '';
+    pgis_ver_old boolean := _pgr_versionless(postgis_lib_version(), '2.1.0.0');
+    vst_line_substring text;
+    vst_line_locate_point text;
+    intab text;
+    outtab text;
+    n_pkey text;
+    n_geom text;
+    naming record;
+    sname text;
+    tname text;
+    outname text;
+    srid integer;
+    sridinfo record;
+    splits bigint;
+    touched bigint;
+    untouched bigint;
+    geomtype text;
+    debuglevel text;
+    rows_where text;
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_nodeNetwork(''%'', %, ''%'', ''%'', ''%'', ''%'',  %)',
+    edge_table, tolerance, id,  the_geom, table_ending, rows_where, outall;
+  raise notice 'Performing checks, please wait .....';
+  execute 'show client_min_messages' into debuglevel;
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',0)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+	RAISE NOTICE '-------> % not found',edge_table;
+        RETURN 'FAIL';
+    ELSE
+	RAISE DEBUG '  -----> OK';
+    END IF;
+
+    intab=sname||'.'||tname;
+    outname=tname||'_'||table_ending;
+    outtab= sname||'.'||outname;
+    rows_where = CASE WHEN length(rows_where) > 2 and not outall THEN ' AND (' || rows_where || ')' ELSE '' END;
+    rows_where = CASE WHEN length(rows_where) > 2 THEN ' WHERE (' || rows_where || ')' ELSE '' END;
+  END;
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',id,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(id)||')' INTO n_pkey;
+       IF n_pkey is NULL then
+          raise notice  'ERROR: id column "%"  not found in %',id,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',the_geom,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(the_geom)||')' INTO n_geom;
+       IF n_geom is NULL then
+          raise notice  'ERROR: the_geom  column "%"  not found in %',the_geom,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+  IF n_pkey=n_geom THEN
+	raise notice  'ERROR: id and the_geom columns have the same name "%" in %',n_pkey,intab;
+        RETURN 'FAIL';
+  END IF;
+
+  BEGIN
+       	raise DEBUG 'Checking the SRID of the geometry "%"', n_geom;
+       	EXECUTE 'SELECT ST_SRID(' || quote_ident(n_geom) || ') as srid '
+          		|| ' FROM ' || _pgr_quote_ident(intab)
+          		|| ' WHERE ' || quote_ident(n_geom)
+          		|| ' IS NOT NULL LIMIT 1' INTO sridinfo;
+       	IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
+        	RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           	RETURN 'FAIL';
+       	END IF;
+       	srid := sridinfo.srid;
+       	raise DEBUG '  -----> SRID found %',srid;
+       	EXCEPTION WHEN OTHERS THEN
+           		RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           		RETURN 'FAIL';
+  END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_pkey,intab;
+      if (_pgr_isColumnIndexed(intab,n_pkey)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding  index "%_%_idx".',n_pkey,intab;
+
+	set client_min_messages  to warning;
+        execute 'create  index '||tname||'_'||n_pkey||'_idx on '||_pgr_quote_ident(intab)||' using btree('||quote_ident(n_pkey)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_geom,intab;
+      if (_pgr_iscolumnindexed(intab,n_geom)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding unique index "%_%_gidx".',intab,n_geom;
+	set client_min_messages  to warning;
+        execute 'CREATE INDEX '
+            || quote_ident(tname || '_' || n_geom || '_gidx' )
+            || ' ON ' || _pgr_quote_ident(intab)
+            || ' USING gist (' || quote_ident(n_geom) || ')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+---------------
+    BEGIN
+       raise DEBUG 'initializing %',outtab;
+       execute 'select * from _pgr_getTableName('||quote_literal(outtab)||',0)' into naming;
+       IF sname=naming.sname  AND outname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(outtab)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(outname)||','||quote_literal(n_geom)||')';
+       ELSE
+	   set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(outtab)||' (id bigserial PRIMARY KEY,old_id integer,sub_id integer,
+								source bigint,target bigint)';
+       END IF;
+       execute 'select geometrytype('||quote_ident(n_geom)||') from  '||_pgr_quote_ident(intab)||' limit 1' into geomtype;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(outname)||','||
+                quote_literal(n_geom)||','|| srid||', '||quote_literal(geomtype)||', 2)';
+       execute 'CREATE INDEX '||quote_ident(outname||'_'||n_geom||'_idx')||' ON '||_pgr_quote_ident(outtab)||'  USING GIST ('||quote_ident(n_geom)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+    END;
+----------------
+
+
+  raise notice 'Processing, please wait .....';
+
+
+    if pgis_ver_old then
+        vst_line_substring    := 'st_line_substring';
+        vst_line_locate_point := 'st_line_locate_point';
+    else
+        vst_line_substring    := 'st_linesubstring';
+        vst_line_locate_point := 'st_linelocatepoint';
+    end if;
+
+--    -- First creates temp table with intersection points
+    p_ret = 'create temp table intergeom on commit drop as (
+        select l1.' || quote_ident(n_pkey) || ' as l1id,
+               l2.' || quote_ident(n_pkey) || ' as l2id,
+	       l1.' || quote_ident(n_geom) || ' as line,
+	       _pgr_startpoint(l2.' || quote_ident(n_geom) || ') as source,
+	       _pgr_endpoint(l2.' || quote_ident(n_geom) || ') as target,
+               st_intersection(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ') as geom
+        from (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l1
+             join (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l2
+             on (st_dwithin(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ', ' || tolerance || '))'||
+        'where l1.' || quote_ident(n_pkey) || ' <> l2.' || quote_ident(n_pkey)||' and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false  )';
+    raise debug '%',p_ret;
+    EXECUTE p_ret;
+
+    -- second temp table with locus (index of intersection point on the line)
+    -- to avoid updating the previous table
+    -- we keep only intersection points occurring onto the line, not at one of its ends
+--    drop table if exists inter_loc;
+
+--HAD TO CHANGE THIS QUERY
+-- p_ret= 'create temp table inter_loc on commit drop as (
+--        select l1id, l2id, ' || vst_line_locate_point || '(line,point) as locus from (
+--        select DISTINCT l1id, l2id, line, (ST_DumpPoints(geom)).geom as point from intergeom) as foo
+--        where ' || vst_line_locate_point || '(line,point)<>0 and ' || vst_line_locate_point || '(line,point)<>1)';
+    p_ret= 'create temp table inter_loc on commit drop as ( select * from (
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,source) as locus from intergeom)
+         union
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,target) as locus from intergeom)) as foo
+        where locus<>0 and locus<>1)';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+
+    -- index on l1id
+    create index inter_loc_id_idx on inter_loc(l1id);
+
+    -- Then computes the intersection on the lines subset, which is much smaller than full set
+    -- as there are very few intersection points
+
+--- outab needs to be formally created with id, old_id, subid,the_geom, source,target
+---  so it can be inmediatly be used with createTopology
+
+--   EXECUTE 'drop table if exists ' || _pgr_quote_ident(outtab);
+--   EXECUTE 'create table ' || _pgr_quote_ident(outtab) || ' as
+     P_RET = 'insert into '||_pgr_quote_ident(outtab)||' (old_id,sub_id,'||quote_ident(n_geom)||') (  with cut_locations as (
+           select l1id as lid, locus
+           from inter_loc
+           -- then generates start and end locus for each line that have to be cut buy a location point
+           UNION ALL
+           select i.l1id  as lid, 0 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           UNION ALL
+           select i.l1id  as lid, 1 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           order by lid, locus
+       ),
+       -- we generate a row_number index column for each input line
+       -- to be able to self-join the table to cut a line between two consecutive locations
+       loc_with_idx as (
+           select lid, locus, row_number() over (partition by lid order by locus) as idx
+           from cut_locations
+       )
+       -- finally, each original line is cut with consecutive locations using linear referencing functions
+       select l.' || quote_ident(n_pkey) || ', loc1.idx as sub_id, ' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus) as ' || quote_ident(n_geom) || '
+       from loc_with_idx loc1 join loc_with_idx loc2 using (lid) join ' || _pgr_quote_ident(intab) || ' l on (l.' || quote_ident(n_pkey) || ' = loc1.lid)
+       where loc2.idx = loc1.idx+1
+           -- keeps only linestring geometries
+           and geometryType(' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus)) = ''LINESTRING'') ';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+	GET DIAGNOSTICS splits = ROW_COUNT;
+        execute 'with diff as (select distinct old_id from '||_pgr_quote_ident(outtab)||' )
+                 select count(*) from diff' into touched;
+	-- here, it misses all original line that did not need to be cut by intersection points: these lines
+	-- are already clean
+	-- inserts them in the final result: all lines which gid is not in the res table.
+	EXECUTE 'insert into ' || _pgr_quote_ident(outtab) || ' (old_id , sub_id, ' || quote_ident(n_geom) || ')
+                ( with used as (select distinct old_id from '|| _pgr_quote_ident(outtab)||')
+		select ' ||  quote_ident(n_pkey) || ', 1 as sub_id, ' ||  quote_ident(n_geom) ||
+		' from '|| _pgr_quote_ident(intab) ||' where  '||quote_ident(n_pkey)||' not in (select * from used)' || rows_where || ')';
+	GET DIAGNOSTICS untouched = ROW_COUNT;
+
+	raise NOTICE '  Split Edges: %', touched;
+	raise NOTICE ' Untouched Edges: %', untouched;
+	raise NOTICE '     Total original Edges: %', touched+untouched;
+        RAISE NOTICE ' Edges generated: %', splits;
+	raise NOTICE ' Untouched Edges: %',untouched;
+	raise NOTICE '       Total New segments: %', splits+untouched;
+        RAISE NOTICE ' New Table: %', outtab;
+        RAISE NOTICE '----------------------------------';
+
+    drop table  if exists intergeom;
+    drop table if exists inter_loc;
+    RETURN 'OK';
+END;
+$BODY$
+    LANGUAGE 'plpgsql' VOLATILE STRICT COST 100;
+
+
+COMMENT ON FUNCTION pgr_nodeNetwork(text, double precision, text, text, text, text, boolean )
+ IS  'edge_table, tolerance, id:=''id'', the_geom:=''the_geom'', table_ending:=''noded'' ';
+
+
+CREATE OR REPLACE FUNCTION pgr_labelGraph(
+                edge_table text,
+                id text default 'id',
+                source text default 'source',
+                target text default 'target',
+                subgraph text default 'subgraph',
+                rows_where text default 'true'
+        )
+        RETURNS character varying AS
+$BODY$
+
+DECLARE
+        naming record;
+        schema_name text;
+        table_name text;
+        garbage text;
+        incre integer;
+        table_schema_name text;
+        query text;
+        ecnt integer;
+        sql1 text;
+        rec1 record;
+        sql2 text;
+        rec2 record;
+        rec_count record;
+        rec_single record;
+        graph_id integer;
+        gids int [];
+
+BEGIN
+        raise notice 'Processing:';
+        raise notice 'pgr_brokenGraph(''%'',''%'',''%'',''%'',''%'',''%'')', edge_table,id,source,target,subgraph,rows_where;
+        raise notice 'Performing initial checks, please hold on ...';
+
+        Raise Notice 'Starting - Checking table ...';
+        BEGIN
+                raise debug 'Checking % table existance', edge_table;
+                execute 'select * from pgr_getTableName('|| quote_literal(edge_table) ||')' into naming;
+                schema_name = naming.sname;
+                table_name = naming.tname;
+                table_schema_name = schema_name||'.'||table_name;
+                IF schema_name is null then
+                        raise notice 'no schema';
+                        return 'FAIL';
+                else
+                        if table_name is null then
+                                raise notice 'no table';
+                                return 'FAIL';
+                        end if;
+                end if;
+        END;
+        Raise Notice 'Ending - Checking table';
+
+        Raise Notice 'Starting - Checking columns';
+        BEGIN
+                raise debug 'Checking exitance of necessary columns inside % table', edge_table;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(id) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no id column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(source) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no source column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(target) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no target column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(subgraph) ||')' into naming;
+                if naming.pgr_iscolumnintable = 't' then
+                        raise notice 'subgraph column already in the table';
+                        return 'FAIL';
+                end if;
+        END;
+        Raise Notice 'Ending - Checking columns';
+
+        Raise Notice 'Starting - Checking rows_where condition';
+        BEGIN
+                raise debug 'Checking rows_where condition';
+                query='select count(*) from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where;
+                execute query into ecnt;
+                raise debug '-->Rows where condition: OK';
+                raise debug '    --> OK';
+                EXCEPTION WHEN OTHERS THEN
+                        raise notice 'Got %', SQLERRM;
+                        Raise notice 'ERROR: Condition is not correct. Please execute the following query to test your condition';
+                        Raise notice '%', query;
+                        return 'FAIL';
+        END;
+        Raise Notice 'Ending - Checking rows_where condition';
+
+        garbage := 'garbage001';
+        incre := 1;
+        Raise Notice 'Starting - Checking temporary column';
+        Begin
+                raise debug 'Checking Checking temporary columns existance';
+
+                While True
+                        Loop
+                                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(garbage) ||')' into naming;
+                                If naming.pgr_iscolumnintable = 't' THEN
+                                        incre := incre + 1;
+                                        garbage := 'garbage00'||incre||'';
+                                ELSE
+                                        EXIT;
+                                END IF;
+                        End Loop;
+        End;
+        Raise Notice 'Ending - Checking temporary column';
+
+        Raise Notice 'Starting - Calculating subgraphs';
+        BEGIN
+                --------- Add necessary columns ----------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(subgraph) || ' INTEGER DEFAULT -1';
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(garbage) || ' INTEGER DEFAULT 0';
+                graph_id := 1;
+
+                EXECUTE 'select count(*) as count from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where ||'' into rec_count;
+                if rec_count.count = 0 then
+                        RETURN 'rows_where condition generated 0 rows';
+                end if;
+
+                WHILE TRUE
+                        LOOP
+                                ---------- Assign the very first -1 row graph_id ----------
+                                EXECUTE 'SELECT ' || pgr_quote_ident(id) || ' AS gid FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1 LIMIT 1' INTO rec_single;
+                                EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec_single.gid || '';
+
+                                --------- Search other rows with that particular graph_id -----------
+                                WHILE TRUE
+                                        LOOP
+                                                EXECUTE 'SELECT COUNT(*) FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0' into rec_count;
+                                                ----------- The following if else will check those rows which already have entertained ------------
+                                                IF (rec_count.count > 0) THEN
+                                                        sql1 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0';
+                                                        FOR rec1 IN EXECUTE sql1
+                                                                LOOP
+                                                                        sql2 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| pgr_quote_ident(source) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(source) ||' = '|| rec1.target ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.target ||'';
+                                                                        FOR rec2 IN EXECUTE sql2
+                                                                                LOOP
+                                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec2.gid || '';
+                                                                                END LOOP;
+                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(garbage) || ' = 1 WHERE ' || pgr_quote_ident(id) || ' = ' || rec1.gid || '';
+                                                                END LOOP;
+                                                ELSE
+                                                        EXIT;
+                                                END IF;
+                                        END LOOP;
+
+                                ------ Following is to exit the while loop. 0 means no more -1 id.
+                                EXECUTE 'SELECT COUNT(*) AS count FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1' INTO rec_count;
+                                If (rec_count.count = 0) THEN
+                                        EXIT;
+                                ELSE
+                                        graph_id := graph_id + 1;
+                                END IF;
+                        END LOOP;
+
+                ----------- Drop garbage column ------------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' DROP COLUMN ' || pgr_quote_ident(garbage) ||'';
+                Raise Notice 'Successfully complicated calculating subgraphs';
+        END;
+        Raise Notice 'Ending - Calculating subgraphs';
+
+        RETURN 'OK';
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCostMatrix(
+    edges_sql TEXT,
+    points_sql TEXT,
+    pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_pid, a.end_pid, a.agg_cost
+        FROM _pgr_withPoints($1, $2, $3, $3, $4,  $5, TRUE, TRUE) AS a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+--  DIJKSTRA DMatrix
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCostMatrix(edges_sql TEXT, vids ANYARRAY, directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2, $2, $3, true) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+
+--  BIDIRECTIONAL DIJKSTRA Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCostMatrix(edges_sql TEXT, vids ANYARRAY, directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_astarCostMatrix(
+    edges_sql TEXT, -- XY edges sql
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2, $2, $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+--  BIDIRECTIONAL ASTAR Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdAstarCostMatrix(
+    edges_sql TEXT,
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_bdAstarCostMatrix(TEXT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCostMatrix';
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_getTableName(IN tab text,OUT sname text,OUT tname text)
+RETURNS RECORD AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getTableName: This function will no longer be soported';
+    select * from _pgr_getTableName(tab, 0, 'pgr_getTableName') into sname,tname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_getColumnName(tab text, col text)
+RETURNS text AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getColumnName: This function will no longer be soported';
+    return _pgr_getColumnName(tab,col, 0, 'pgr_getColumnName');
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    select * from _pgr_getColumnName(tab,col,0, 'pgr_isColumnInTable') into cname;
+    return  cname IS not NULL;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnIndexed(tab text, col text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnIndexed: This function will no longer be soported';
+    return  _pgr_isColumnIndexed(tab,col);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+create or replace function pgr_quote_ident(idname text)
+returns text as
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    return  _pgr_quote_ident(idname);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_versionless(v1 text, v2 text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_versionless: This function will no longer be soported';
+    return  _pgr_versionless(v1,v2);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+create or replace function pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_startPoint: This function will no longer be soported';
+    return  _pgr_startPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_endPoint: This function will no longer be soported';
+    return  _pgr_endPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_apspJohnson(edges_sql text)
+    RETURNS SETOF pgr_costResult AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function: Use pgr_johnson instead';
+      has_reverse =_pgr_parameter_check('johnson', edges_sql, false);
+      sql = edges_sql;
+      IF (has_reverse) THEN
+           RAISE NOTICE 'reverse_cost column found, removing.';
+           sql = 'SELECT source, target, cost FROM (' || edges_sql || ') a';
+      END IF;
+
+      RETURN query
+         SELECT (row_number() over () - 1)::integer as seq, start_vid::integer AS id1, end_vid::integer AS id2, agg_cost AS cost
+         FROM  pgr_johnson(sql, TRUE);
+  END
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_apspWarshall(edges_sql text, directed boolean, has_rcost boolean)
+    RETURNS SETOF pgr_costResult AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function: Use pgr_floydWarshall instead';
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+      sql := edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_reverse) THEN
+           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+         ELSE raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+         END IF;
+      END IF;
+
+      RETURN query
+         SELECT (row_number() over () -1)::integer as seq, start_vid::integer AS id1, end_vid::integer AS id2, agg_cost AS cost
+         FROM  pgr_floydWarshall(sql, directed);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_astar(edges_sql TEXT, source_id INTEGER, target_id INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated signature pgr_astar(text, integer, integer, boolean, boolean)';
+    has_reverse =_pgr_parameter_check('astar', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost, x1,y1, x2, y2 FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+    FROM pgr_astar(sql, ARRAY[$2], ARRAY[$3], directed);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    sql TEXT,
+    source_vid INTEGER,
+    target_vid INTEGER,
+    directed BOOLEAN,
+    has_reverse_cost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdAstar';
+    has_reverse =_pgr_parameter_check('astar', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdAstar(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(edges_sql TEXT, start_vid INTEGER, end_vid INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdDijkstra';
+    has_reverse =_pgr_parameter_check('dijkstra', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdDijkstra(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstraPath(
+    sql text,
+    source INTEGER,
+    targets INTEGER ARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+    RETURNS SETOF pgr_costResult3 AS
+    $BODY$
+    DECLARE
+    has_reverse BOOLEAN;
+    new_sql TEXT;
+    result pgr_costResult3;
+    tmp pgr_costResult3;
+    sseq INTEGER;
+    i INTEGER;
+    BEGIN
+        RAISE NOTICE 'Deprecated function: Use pgr_dijkstra instead.';
+        has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+        new_sql = sql;
+        IF (array_ndims(targets) != 1) THEN
+            raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+
+        IF (has_reverse != has_rcost) THEN
+            IF (has_reverse) THEN
+                new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+            ELSE
+                raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+                USING ERRCODE = 'XX000';
+            END IF;
+        END IF;
+        SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+        sseq = 0; i = 1;
+        FOR result IN
+            SELECT seq, a.end_vid::INTEGER AS id1, a.node::INTEGER AS i2, a.edge::INTEGER AS id3, cost
+            FROM pgr_dijkstra(new_sql, source, targets, directed) a ORDER BY a.end_vid, seq LOOP
+            WHILE (result.id1 != targets[i]) LOOP
+                tmp.seq = sseq;
+                tmp.id1 = targets[i];
+                IF (targets[i] = source) THEN
+                    tmp.id2 = source;
+                    tmp.cost =0;
+                ELSE
+                    tmp.id2 = 0;
+                    tmp.cost = -1;
+                END IF;
+                tmp.id3 = -1;
+                RETURN next tmp;
+                i = i + 1;
+                sseq = sseq + 1;
+            END LOOP;
+        IF (result.id1 = targets[i] AND result.id3 != -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+        IF (result.id1 = targets[i] AND result.id3 = -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.id2 = source;
+            tmp.cost = 0;
+        ELSE
+            tmp.id2 = 0;
+            tmp.cost = -1;
+        END IF;
+        tmp.id3 = -1;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstracost(
+    sql text,
+    source INTEGER,
+    targets INTEGER array,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+result pgr_costResult;
+tmp pgr_costResult;
+sseq INTEGER;
+i INTEGER;
+BEGIN
+    RAISE NOTICE 'Deprecated function. Use pgr_dijkstraCost instead.';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    new_sql = sql;
+    IF (array_ndims(targets) != 1) THEN
+        raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+        USING ERRCODE = 'XX000';
+    END IF;
+
+
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+    sseq = 0; i = 1;
+    FOR result IN
+        SELECT ((row_number() over()) -1)::INTEGER, a.start_vid::INTEGER, a.end_vid::INTEGER, agg_cost
+        FROM pgr_dijkstraCost(new_sql, source, targets, directed) a ORDER BY end_vid LOOP
+        WHILE (result.id2 != targets[i]) LOOP
+            tmp.seq = sseq;
+            tmp.id1 = source;
+            tmp.id2 = targets[i];
+            IF (targets[i] = source) THEN
+                tmp.cost = 0;
+            ELSE
+                tmp.cost = -1;
+            END IF;
+            RETURN next tmp;
+            i = i + 1;
+            sseq = sseq + 1;
+        END LOOP;
+        IF (result.id2 = targets[i]) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = source;
+        tmp.id2 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.cost = 0;
+        ELSE
+            tmp.cost = -1;
+        END IF;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+create or replace function pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    returns integer as
+$body$
+
+declare
+    rr record;
+    pct float;
+    debuglevel text;
+
+begin
+    -- find the closest edge within tol distance
+    execute 'select * from ' || _pgr_quote_ident(edges) ||
+            ' where st_dwithin(''' || pnt::text ||
+            '''::geometry, the_geom, ' || tol || ') order by st_distance(''' || pnt::text ||
+            '''::geometry, the_geom) asc limit 1' into rr;
+
+    if rr.the_geom is not null then
+        -- deal with MULTILINESTRINGS
+        if geometrytype(rr.the_geom)='MULTILINESTRING' THEN
+            rr.the_geom := ST_GeometryN(rr.the_geom, 1);
+        end if;
+
+        -- project the point onto the linestring
+        execute 'show client_min_messages' into debuglevel;
+        SET client_min_messages='ERROR';
+        pct := st_line_locate_point(rr.the_geom, pnt);
+        execute 'set client_min_messages  to '|| debuglevel;
+
+        -- return the node we are closer to
+        if pct < 0.5 then
+            return rr.source;
+        else
+            return rr.target;
+        end if;
+    else
+        -- return a failure to find an edge within tol distance
+        return -1;
+    end if;
+end;
+$body$
+  language plpgsql volatile
+  cost 5;
+
+
+----------------------------------------------------------------------------
+
+create or replace function pgr_flipedges(ga geometry[])
+    returns geometry[] as
+$body$
+
+declare
+    nn integer;
+    i integer;
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_flipEdges';
+    -- get the count of edges, and return if only one edge
+    nn := array_length(ga, 1);
+    if nn=1 then
+        return ga;
+    end if;
+
+    -- determine if first needs to be flipped
+    g := _pgr_startpoint(ga[1]);
+
+    -- if the start of the first is connected to the second then it needs to be flipped
+    if _pgr_startpoint(ga[2])=g or _pgr_endpoint(ga[2])=g then
+        ga[1] := st_reverse(ga[1]);
+    end if;
+    g := _pgr_endpoint(ga[1]);
+
+    -- now if  the end of the last edge matchs the end of the current edge we need to flip it
+    for i in 2 .. nn loop
+        if _pgr_endpoint(ga[i])=g then
+            ga[i] := st_reverse(ga[i]);
+        end if;
+        -- save the end of this edge into the last end for the next cycle
+        g := _pgr_endpoint(ga[i]);
+    end loop;
+
+    return ga;
+end;
+$body$
+    language plpgsql immutable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_texttopoints(pnts text, srid integer DEFAULT(4326))
+    returns geometry[] as
+$body$
+
+declare
+    a text[];
+    t text;
+    p geometry;
+    g geometry[];
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_textToPoints';
+    -- convert commas to space and split on ';'
+    a := string_to_array(replace(pnts, ',', ' '), ';');
+    -- convert each 'x y' into a point geometry and concattenate into a new array
+    for t in select unnest(a) loop
+        p := st_pointfromtext('POINT(' || t || ')', srid);
+        g := g || p;
+    end loop;
+
+    return g;
+end;
+$body$
+    language plpgsql immutable;
+
+-----------------------------------------------------------------------
+
+create or replace function pgr_pointstovids(pnts geometry[], edges text, tol float8 DEFAULT(0.01))
+    returns integer[] as
+$body$
+
+declare
+    v integer[];
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_pointsToVids';
+    -- cycle through each point and locate the nearest edge and vertex on that edge
+    for g in select unnest(pnts) loop
+        v := v || pgr_pointtoedgenode(edges, g, tol);
+    end loop;
+
+    return v;
+end;
+$body$
+    language plpgsql stable;
+
+
+create or replace function pgr_pointstodmatrix(pnts geometry[], mode integer default (0), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+
+declare
+    r record;
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_pointsToDMatrix';
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    -- create an id for each point in the array and unnest it into a table nodes in the with clause
+    for r in with nodes as (select row_number() over()::integer as id, p from (select unnest(pnts) as p) as foo)
+        -- compute a row of distances
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j,
+                case when mode=0
+                    then st_distance(a.p, b.p)
+                    else st_distance_sphere(a.p, b.p)
+                end as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i loop
+
+        -- you must concat an array[array[]] to make dmatrix[][]
+        -- concat the row of distances to the dmatrix
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+end;
+$body$
+    language plpgsql stable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_vidstodmatrix(IN vids integer[], IN pnts geometry[], IN edges text, tol float8 DEFAULT(0.1), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+
+declare
+    i integer;
+    j integer;
+    nn integer;
+    rr record;
+    bbox geometry;
+    t float8[];
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    -- check if the input arrays has any -1 values, maybe this whould be a raise exception
+    if vids @> ARRAY[-1] then
+    raise notice 'Some vids are undefined (-1)!';
+    dmatrix := null;
+    ids := null;
+    return;
+    end if;
+
+    ids := vids;
+
+    -- get the count of nodes
+    nn := array_length(vids,1);
+
+    -- zero out a dummy row
+    for i in 1 .. nn loop
+        t := t || 0.0::float8;
+    end loop;
+
+    -- using the dummy row, zero out the whole matrix
+    for i in 1 .. nn loop
+    dmatrix := dmatrix || ARRAY[t];
+    end loop;
+
+    for i in 1 .. nn-1 loop
+        j := i;
+        -- compute the bbox for the point needed for this row
+        select st_expand(st_collect(pnts[id]), tol) into bbox
+          from (select generate_series as id from generate_series(i, nn)) as foo;
+
+        -- compute kdijkstra() for this row
+        for rr in execute 'select * from pgr_dijkstracost($1, $2, $3, false)'
+                  using 'select id, source, target, cost from ' || edges ||
+                        ' where the_geom && ''' || bbox::text || '''::geometry'::text, vids[i], vids[i+1:nn] loop
+
+            -- TODO need to check that all node were reachable from source
+            -- I think unreachable paths between nodes returns cost=-1.0
+
+            -- populate the matrix with the cost values, remember this is symmetric
+            j := j + 1;
+            -- raise notice 'cost(%,%)=%', i, j, rr.agg_cost;
+            dmatrix[i][j] := rr.agg_cost;
+            dmatrix[j][i] := rr.agg_cost;
+        end loop;
+    end loop;
+
+end;
+$body$
+    language plpgsql stable cost 200;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_vidsToDMatrix(sql TEXT, vids  INTEGER[], dir BOOLEAN, has_rcost BOOLEAN, want_symmetric BOOLEAN)
+RETURNS float8[] AS
+$BODY$
+DECLARE
+directed BOOLEAN;
+has_reverse BOOLEAN;
+edges_sql TEXT;
+dmatrix_row float8[];
+dmatrix float8[];
+cell RECORD;
+unique_vids INTEGER[];
+total BIGINT;
+from_v BIGINT;
+to_v BIGINT;
+BEGIN
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql = sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    unique_vids :=  ARRAY(SELECT DISTINCT UNNEST(vids) ORDER BY 1);
+
+    IF want_symmetric THEN
+        directed = false;
+    ELSE
+        directed = dir;
+    END IF;
+
+    total := array_length(unique_vids, 1);
+
+    -- initializing dmatrix
+    FOR i in 1 .. total LOOP
+        dmatrix_row := dmatrix_row || '+Infinity'::float8;
+    END LOOP;
+    FOR i in 1 .. total LOOP
+    dmatrix := dmatrix || ARRAY[dmatrix_row];
+    dmatrix[i][i] = 0;
+    END LOOP;
+
+    CREATE TEMP TABLE __x___y____temp AS
+        WITH result AS
+            (SELECT unnest(unique_vids) AS vid)
+        SELECT row_number() OVER() AS idx, vid FROM result;
+
+    FOR cell IN SELECT * FROM pgr_dijkstraCostMatrix(sql, unique_vids, directed) LOOP
+        SELECT idx INTO from_v FROM __x___y____temp WHERE vid =  cell.start_vid;
+        SELECT idx INTO to_v FROM __x___y____temp WHERE vid =  cell.end_vid;
+
+        dmatrix[from_v][to_v] = cell.agg_cost;
+        dmatrix[to_v][from_v] = cell.agg_cost;
+    END LOOP;
+
+    DROP TABLE IF EXISTS __x___y____temp;
+    RETURN dmatrix;
+
+    EXCEPTION WHEN others THEN
+       DROP TABLE IF EXISTS __x___y____temp;
+       raise exception '% %', SQLERRM, SQLSTATE;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100;
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated function';
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_dijkstra(sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_dijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN) IS 'pgr_dijkstra(Deprecated signature)';
+
+
+
+
+
+-- OLD SIGNATURE
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(edges_sql text, source BIGINT, distance FLOAT, directed BOOLEAN, has_rcost BOOLEAN)
+  RETURNS SETOF pgr_costresult AS
+  $BODY$
+  DECLARE
+  has_reverse BOOLEAN;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function';
+
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, FALSE);
+
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_reverse) THEN
+             -- the user says it doesn't have reverse cost but its false
+             -- removing from query
+             RAISE NOTICE 'Contradiction found: has_rcost set to false but reverse_cost column found';
+             sql = 'SELECT id, source, target, cost, -1 as reverse_cost FROM (' || edges_sql || ') __q ';
+         ELSE
+             -- the user says it has reverse cost but its false
+             -- can't do anything
+             RAISE EXCEPTION 'has_rcost set to true but reverse_cost not found';
+         END IF;
+      END IF;
+
+      RETURN query SELECT seq - 1 AS seq, node::integer AS id1, edge::integer AS id2, agg_cost AS cost
+                FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maximumcardinalitymatching(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
+
+
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+--INTERNAL FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+
+------------------------
+-- deprecated signatures
+-----------------------
+
+COMMENT ON FUNCTION pgr_astar(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_astar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdAstar( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdAstar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdDijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdDijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_dijkstra(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_dijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_drivingDistance(text,  BIGINT,  FLOAT8,  BOOLEAN,  BOOLEAN)
+    IS 'pgr_drivingDistance(Deprecated signature)';
+
+------------------------
+-- Renamed /deprecated
+-----------------------
+COMMENT ON FUNCTION pgr_apspJohnson(TEXT)
+    IS 'pgr_apspJohnson(Renamed function) use pgr_Johnson instead';
+
+COMMENT ON FUNCTION pgr_apspWarshall(text, boolean, boolean)
+    IS 'pgr_apspWarshall(Renamed function) use pgr_floydWarshall instead';
+
+COMMENT ON FUNCTION pgr_kdijkstraPath( text, INTEGER, INTEGER ARRAY, BOOLEAN, BOOLEAN)
+    IS 'pgr_kdijkstraPath(Renamed function) use pgr_dijkstra instead';
+
+COMMENT ON FUNCTION pgr_kdijkstracost( text, INTEGER, INTEGER array, BOOLEAN, BOOLEAN)
+    IS 'pgr_kDijkstraCost(Renamed function) use pgr_dijkstraCost instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+
+
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+
+
+COMMENT ON FUNCTION pgr_gsoc_vrppdtw( text, INTEGER, INTEGER)
+    IS 'pgr_gsoc_vrppdtw(Renamed function) use pgr_pickDeliverEuclidean instead';
+
+------------------------
+-- Deprecated functions
+-----------------------
+
+COMMENT ON FUNCTION pgr_flipedges(geometry[])
+    IS 'pgr_flipedges(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_texttopoints(text,  integer)
+    IS 'pgr_texttopoints(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstovids(pnts geometry[], edges text, tol float8)
+    IS 'pgr_pointstovids(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    IS 'pgr_pointtoedgenode(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstodmatrix(geometry[], integer)
+    IS 'pgr_pointstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidstodmatrix( integer[],  geometry[],  text, float8)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidsToDMatrix(TEXT,  INTEGER[], BOOLEAN, BOOLEAN, BOOLEAN)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+
+
+
+COMMENT ON FUNCTION pgr_getTableName(IN tab text)
+    IS 'pgr_getTableName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_getColumnName(tab text, col text)
+    IS 'pgr_getColumnName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnInTable(tab text, col text)
+    IS 'pgr_isColumnInTable(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnIndexed(tab text, col text)
+    IS 'pgr_isColumnIndexed(Deprecated function)';
+
+
+COMMENT ON FUNCTION pgr_quote_ident(idname text)
+    IS 'pgr_quote_ident(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_versionless(v1 text, v2 text)
+    IS 'pgr_versionless(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_startPoint(g geometry)
+    IS 'pgr_startPoint(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_endPoint(g geometry)
+    IS 'pgr_endPoint(Deprecated function)';
+
+
diff --git a/tools/sql-update-scripts/pgrouting--2.2.2--2.5.0.sql b/tools/sql-update-scripts/pgrouting--2.2.2--2.5.0.sql
new file mode 100644
index 0000000..0e8e60d
--- /dev/null
+++ b/tools/sql-update-scripts/pgrouting--2.2.2--2.5.0.sql
@@ -0,0 +1,6527 @@
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-- pgRouting extension upgrade from 2.2.2 to 2.5.0
+-- generated by tools/build-extension-update-files
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+\echo Use "ALTER extension pgrouting update to '2.5.0'" to load this file. \quit
+
+
+-------------------------------------
+-- remove functions no longer in the 2.5.0 extension
+-------------------------------------
+
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,anyarray,anyarray,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,anyarray,anyarray,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,anyarray,bigint,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,anyarray,bigint,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,bigint,anyarray,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,bigint,anyarray,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,bigint,bigint,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,bigint,bigint,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_drivingdistance(text,anyarray,double precision,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_drivingdistance(text,anyarray,double precision,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_drivingdistance(text,bigint,double precision,boolean);
+DROP FUNCTION IF EXISTS _pgr_drivingdistance(text,bigint,double precision,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,anyarray,anyarray,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,anyarray,anyarray,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,anyarray,bigint,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,anyarray,bigint,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,bigint,anyarray,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,bigint,anyarray,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,bigint,bigint,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,bigint,bigint,boolean,character,boolean,boolean);
+
+
+------------------------------------------
+--    New functions:  2.0
+-- Signature change:  2.4
+--       Deprecated:  2.4
+------------------------------------------
+-- pgr_bddijkstra
+-- 2.2.2: {      sql, source_vid, target_vid, directed, has_reverse_cost}   
+-- 2.5.0: {edges_sql,  start_vid,    end_vid, directed, has_rcost}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vid","end_vid","directed","has_rcost"}'
+WHERE proname = 'pgr_bddijkstra'
+    AND proargnames = '{"sql","source_vid","target_vid","directed","has_reverse_cost"}';
+
+
+------------------------------------------
+--   New function: 2.1
+-- (types) change: 2.3
+------------------------------------------
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_gsoc_vrppdtw(text,integer,integer);
+DROP FUNCTION IF EXISTS pgr_gsoc_vrppdtw(text,integer,integer);
+
+
+
+
+------------------------------------------
+-- New functions on 2.0
+-- Signature change on 2.3
+-- Deprecated on 2.4
+------------------------------------------
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_astar(text,integer,integer,boolean,boolean);
+DROP FUNCTION IF EXISTS pgr_astar(text,integer,integer,boolean,boolean);
+
+
+
+
+------------------------------------------
+--       New functions:  2.1
+--    Signature change:  2.4
+------------------------------------------
+-- 2.2.2: {edges_sql,start_v,  distance,directed,seq,node,edge,cost,agg_cost}
+-- 2.5.0: {edges_sql,start_vid,distance,directed,seq,node,edge,cost,agg_cost}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vid","distance","directed","seq","node","edge","cost","agg_cost"}'
+WHERE proname = 'pgr_drivingdistance'
+    AND proargnames = '{"edges_sql","start_v","distance","directed","seq","node","edge","cost","agg_cost"}';
+
+
+------------------------------------------
+--       New functions:  2.1
+--    Signature change:  2.4
+------------------------------------------
+-- 2.2.2: {sql,      start_v,   distance,directed,equicost,seq,from_v,node,edge,cost,agg_cost}
+-- 2.5.0: {edges_sql,start_vids,distance,directed,equicost,seq,from_v,node,edge,cost,agg_cost}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vids","distance","directed","equicost","seq","from_v","node","edge","cost","agg_cost"}'
+WHERE proname = 'pgr_drivingdistance'
+    AND proargnames = '{"sql","start_v","distance","directed","equicost","seq","from_v","node","edge","cost","agg_cost"}';
+
+
+
+
+
+
+
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+--- pgRouting provides geospatial routing functionality.
+--- http://pgrouting.org
+--- copyright
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+---
+--- This is free software; you can redistribute and/or modify it:
+--- the terms of the GNU General Public Licence. See the COPYING file.
+--- the terms of the MIT-X Licence. See the COPYING file.
+---
+--- The following functions have MIT-X licence:
+---     pgr_version()
+---     pgr_tsp(matrix float8[][], startpt integer, endpt integer DEFAULT -1, OUT seq integer, OUT id integer)
+---     _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+---     pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
+---
+---
+--- All other functions are under GNU General Public Licence.
+---
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+--
+-- WARNING: Any change in this file must be evaluated for compatibility.
+--          Changes cleanly handled by postgis_upgrade.sql are fine,
+--          other changes will require a bump in Major version.
+--          Currently only function replaceble by CREATE OR REPLACE
+--          are cleanly handled.
+--
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+
+--  pgRouting 2.0 types
+
+
+
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_version()
+RETURNS TABLE(
+        "version" varchar,
+        tag varchar,
+        hash varchar,
+        branch varchar,
+        boost varchar
+    ) AS
+$BODY$
+    SELECT '2.5.0'::varchar AS version,
+        'v2.5.0'::varchar AS tag,
+        ''::varchar AS hash,
+        ''::varchar AS branch,
+        '1.54.0'::varchar AS boost;
+$BODY$
+LANGUAGE sql IMMUTABLE;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getTableName(IN tab text, IN reportErrs int default 0, IN fnName text default '_pgr_getTableName', OUT sname text,OUT tname text)
+  RETURNS RECORD AS
+$$
+DECLARE
+        naming record;
+        i integer;
+        query text;
+        sn text; -- schema name
+        tn text; -- table name
+        ttype text; --table type for future use
+        err boolean;
+        debuglevel text;
+        var_types text[] = ARRAY['BASE TABLE', 'VIEW'];
+BEGIN
+
+    execute 'show client_min_messages' into debuglevel;
+
+
+    perform _pgr_msg( 0, fnName, 'Checking table ' || tab || ' exists');
+    --RAISE DEBUG 'Checking % exists',tab;
+
+    i := strpos(tab,'.');
+    IF (i <> 0) THEN
+        sn := split_part(tab, '.',1);
+        tn := split_part(tab, '.',2);
+    ELSE
+        sn := current_schema;
+        tn := tab;
+    END IF;
+
+
+   SELECT schema_name INTO sname
+   FROM information_schema.schemata WHERE schema_name = sn;
+
+    IF sname IS NOT NULL THEN -- found schema (as is)
+       SELECT table_name, table_type INTO tname, ttype
+       FROM information_schema.tables
+       WHERE
+                table_type = ANY(var_types) and
+                table_schema = sname and
+                table_name = tn ;
+        IF tname is NULL THEN
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  = ANY(var_types) and
+                table_schema = sname and
+                table_name = lower(tn) ORDER BY table_name;
+        END IF;
+    END IF;
+    IF sname is NULL or tname is NULL THEN --schema not found or table not found
+        SELECT schema_name INTO sname
+        FROM information_schema.schemata
+        WHERE schema_name = lower(sn) ;
+
+        IF sname IS NOT NULL THEN -- found schema (with lower caps)
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  =  ANY(var_types) and
+                table_schema = sname and
+                table_name= tn ;
+
+           IF tname IS NULL THEN
+                SELECT table_name, table_type INTO tname, ttype
+                FROM information_schema.tables
+                WHERE
+                    table_type  =  ANY(var_types) and
+                    table_schema = sname and
+                    table_name= lower(tn) ;
+           END IF;
+        END IF;
+    END IF;
+   err = (sname IS NULL OR tname IS NULL);
+   perform _pgr_onError(err, reportErrs, fnName, 'Table ' || tab ||' not found',' Check your table name', 'Table '|| tab || ' found');
+
+END;
+$$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(sname text, tname text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(col) into cname;
+
+    IF cname is null  THEN
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(lower(col))  into cname;
+    END if;
+
+    err = cname is null;
+
+    perform _pgr_onError(err, reportErrs, fnName,  'Column '|| col ||' not found', ' Check your column name','Column '|| col || ' found');
+    RETURN cname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(tab text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+
+    select * into cname from _pgr_getColumnName(sname,tname,col,reportErrs, fnName);
+    RETURN cname;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    select * from _pgr_getColumnName(tab,col,0, '_pgr_isColumnInTable') into cname;
+    return cname is not null;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(sname text, tname text, cname text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    pkey text;
+BEGIN
+    SELECT
+          pg_attribute.attname into pkey
+         --  format_type(pg_attribute.atttypid, pg_attribute.atttypmod)
+          FROM pg_index, pg_class, pg_attribute
+          WHERE
+                  pg_class.oid = _pgr_quote_ident(sname||'.'||tname)::regclass AND
+                  indrelid = pg_class.oid AND
+                  pg_attribute.attrelid = pg_class.oid AND
+                  pg_attribute.attnum = any(pg_index.indkey)
+                  AND indisprimary;
+
+    IF pkey=cname then
+          RETURN TRUE;
+    END IF;
+
+    SELECT a.index_name,
+           b.attname,
+           b.attnum,
+           a.indisunique,
+           a.indisprimary
+      INTO rec
+      FROM ( SELECT a.indrelid,
+                    a.indisunique,
+                    a.indisprimary,
+                    c.relname index_name,
+                    unnest(a.indkey) index_num
+               FROM pg_index a,
+                    pg_class b,
+                    pg_class c,
+                    pg_namespace d
+              WHERE b.relname=tname
+                AND b.relnamespace=d.oid
+                AND d.nspname=sname
+                AND b.oid=a.indrelid
+                AND a.indexrelid=c.oid
+           ) a,
+           pg_attribute b
+     WHERE a.indrelid = b.attrelid
+       AND a.index_num = b.attnum
+       AND b.attname = cname
+  ORDER BY a.index_name,
+           a.index_num;
+
+  RETURN FOUND;
+  EXCEPTION WHEN OTHERS THEN
+    perform _pgr_onError( true, reportErrs, fnName,
+    'Error when checking for the postgres system attributes', SQLERR);
+    RETURN FALSE;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(tab text, col text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    sname text;
+    tname text;
+    cname text;
+    pkey text;
+    value boolean;
+BEGIN
+    SELECT * into naming FROM _pgr_getTableName(tab, 0, fnName);
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    SELECT * into cname from _pgr_getColumnName(sname, tname, col, 0, fnName) ;
+    IF cname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    select * into value  from _pgr_isColumnIndexed(sname, tname, cname, reportErrs, fnName);
+    return value;
+END
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+create or replace function _pgr_quote_ident(idname text)
+    returns text as
+$body$
+declare
+    t text[];
+    pgver text;
+
+begin
+    pgver := regexp_replace(version(), E'^PostgreSQL ([^ ]+)[ ,].*$', E'\\1');
+
+    if _pgr_versionless(pgver, '9.2') then
+        select into t array_agg(quote_ident(term)) from
+            (select nullif(unnest, '') as term
+               from unnest(string_to_array(idname, '.'))) as foo;
+    else
+        select into t array_agg(quote_ident(term)) from
+            (select unnest(string_to_array(idname, '.', '')) as term) as foo;
+    end if;
+    return array_to_string(t, '.');
+end;
+$body$
+language plpgsql immutable;
+
+
+CREATE OR REPLACE FUNCTION _pgr_versionless(v1 text, v2 text)
+  RETURNS boolean AS
+$BODY$
+
+
+declare
+    v1a text[];
+    v2a text[];
+    nv1 integer;
+    nv2 integer;
+    ne1 integer;
+    ne2 integer;
+
+begin
+    -- separate components into an array, like:
+    -- '2.1.0-beta3dev'  =>  {2,1,0,beta3dev}
+    v1a := regexp_matches(v1, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+    v2a := regexp_matches(v2, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+
+    -- convert modifiers to numbers for comparison
+    -- we do not delineate between alpha1, alpha2, alpha3, etc
+    ne1 := case when v1a[4] is null or v1a[4]='' then 5
+                when v1a[4] ilike 'rc%' then 4
+                when v1a[4] ilike 'beta%' then 3
+                when v1a[4] ilike 'alpha%' then 2
+                when v1a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    ne2 := case when v2a[4] is null or v2a[4]='' then 5
+                when v2a[4] ilike 'rc%' then 4
+                when v2a[4] ilike 'beta%' then 3
+                when v2a[4] ilike 'alpha%' then 2
+                when v2a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    nv1 := v1a[1]::integer * 10000 +
+           coalesce(v1a[2], '0')::integer * 1000 +
+           coalesce(v1a[3], '0')::integer *  100 + ne1;
+    nv2 := v2a[1]::integer * 10000 +
+           coalesce(v2a[2], '0')::integer * 1000 +
+           coalesce(v2a[3], '0')::integer *  100 + ne2;
+
+    --raise notice 'nv1: %, nv2: %, ne1: %, ne2: %', nv1, nv2, ne1, ne2;
+
+    return nv1 < nv2;
+end;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+create or replace function _pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_startpoint(st_geometryn(g,1));
+    else
+        return st_startpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function _pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_endpoint(st_geometryn(g,1));
+    else
+        return st_endpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_parameter_check(fn text, sql text, big boolean default false)
+  RETURNS bool AS
+  $BODY$
+
+  DECLARE
+  rec record;
+  rec1 record;
+  has_rcost boolean;
+  safesql text;
+  BEGIN
+    IF (big) THEN
+       RAISE EXCEPTION 'This function is for old style functions';
+    END IF;
+
+    -- checking query is executable
+    BEGIN
+      safesql =  'select * from ('||sql||' ) AS __a__ limit 1';
+      execute safesql into rec;
+      EXCEPTION
+        WHEN OTHERS THEN
+            RAISE EXCEPTION 'Could not execute query please verify syntax of: '
+              USING HINT = sql;
+    END;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('dijkstra','astar') THEN
+        BEGIN
+          execute 'select id,source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: id, source, target, cost';
+        END;
+        execute 'select pg_typeof(id)::text as id_type, pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.id_type in ('integer'::text))
+              AND (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Error, columns ''source'', ''target'' must be of type int4, ''cost'' must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    IF fn IN ('astar') THEN
+        BEGIN
+          execute 'select x1,y1,x2,y2  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: x1,y1, x2,y2';
+        END;
+        execute 'select pg_typeof(x1)::text as x1_type, pg_typeof(y1)::text as y1_type, pg_typeof(x2)::text as x2_type, pg_typeof(y2)::text as y2_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.x1_type = 'double precision'::text)
+              AND (rec.y1_type = 'double precision'::text)
+              AND (rec.x2_type = 'double precision'::text)
+              AND (rec.y2_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Columns: x1, y1, x2, y2 must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('johnson') THEN
+        BEGIN
+          execute 'select source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING HINT = 'Please veryfy the column names: id, source, target, cost',
+                         ERRCODE = 'XX000';
+        END;
+
+        execute 'select pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Support for source,target columns only of type: integer. Support for Cost: double precision'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    -- Checking the data types of the optional reverse_cost";
+    has_rcost := false;
+    IF fn IN ('johnson','dijkstra','astar') THEN
+      BEGIN
+        execute 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||safesql||' ) AS __b__ limit 1 ' into rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+            return has_rcost;
+      END;
+      if (has_rcost) then
+        IF (big) then
+           IF  not (rec1.rev_type in ('bigint'::text, 'integer'::text, 'smallint'::text, 'double precision'::text, 'real'::text)) then
+             RAISE EXCEPTION 'Illegar type in optional parameter reverse_cost.'
+             USING ERRCODE = 'XX000';
+           END IF;
+        ELSE -- Version 2.0.0 is more restrictive
+           IF (rec1.rev_type != 'double precision') then
+             RAISE EXCEPTION 'Illegal type in optional parameter reverse_cost, must be of type float8'
+             USING ERRCODE = 'XX000';
+           END IF;
+        END IF;
+      end if;
+      return true;
+    END IF;
+    -- just for keeps
+    return true;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_onError(
+  IN errCond boolean,  -- true there is an error
+  IN reportErrs int,   -- 0, 1 or 2
+  IN fnName text,      -- function name that generates the error
+  IN msgerr text,      -- error message
+  IN hinto text default 'No hint', -- hint help
+  IN msgok text default 'OK')      -- message if everything is ok
+  RETURNS void AS
+$BODY$
+BEGIN
+  if errCond=true then
+     if reportErrs=0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+     else
+       if reportErrs = 2 then
+         raise notice '----> PGR ERROR in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+         raise raise_exception;
+       else
+         raise notice '----> PGR NOTICE in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+       end if;
+     end if;
+  else
+       raise debug 'PGR ----> %: %',fnName,msgok;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_msg(IN msgKind int, IN fnName text, IN msg text default '---->OK')
+  RETURNS void AS
+$BODY$
+BEGIN
+  if msgKind = 0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msg;
+  else
+       raise notice '----> PGR NOTICE in %: %',fnName,msg;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(sname text, tname text, cname text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    EXECUTE 'select data_type  from information_schema.columns '
+            || 'where table_name = '||quote_literal(tname)
+                 || ' and table_schema=' || quote_literal(sname)
+                 || ' and column_name='||quote_literal(cname)
+       into ctype;
+    err = ctype is null;
+    perform _pgr_onError(err, reportErrs, fnName,
+            'Type of Column '|| cname ||' not found',
+            'Check your column name',
+            'OK: Type of Column '|| cname || ' is ' || ctype);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(tab text, col text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+    select * into cname from _pgr_getColumnName(tab,col,reportErrs, fnName) ;
+    select * into ctype from _pgr_getColumnType(sname,tname,cname,reportErrs, fnName);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_get_statement(o_sql text)
+RETURNS text AS
+$BODY$
+DECLARE
+sql TEXT;
+BEGIN
+    EXECUTE 'SELECT statement FROM pg_prepared_statements WHERE name ='  || quote_literal(o_sql) || ' limit 1 ' INTO sql;
+    IF (sql IS NULL) THEN
+      RETURN   o_sql;
+    ELSE
+      RETURN  regexp_replace(sql, '(.)* as ', '', 'i');
+    END IF;
+END
+$BODY$
+LANGUAGE plpgsql STABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_checkVertTab(vertname text, columnsArr  text[],
+    IN reportErrs int default 1, IN fnName text default '_pgr_checkVertTab',
+    OUT sname text,OUT vname text)
+RETURNS record AS
+$BODY$
+DECLARE
+    cname text;
+    colname text;
+    naming record;
+    debuglevel text;
+    err  boolean;
+    msgKind int;
+
+BEGIN
+    msgKind = 0; -- debug_
+    execute 'show client_min_messages' into debuglevel;
+
+    perform _pgr_msg(msgKind, fnName, 'Checking table ' || vertname || ' exists');
+       select * from _pgr_getTableName(vertname, 0, fnName) into naming;
+       sname=naming.sname;
+       vname=naming.tname;
+       err = sname is NULL or vname is NULL;
+    perform _pgr_onError( err, 2, fnName,
+          'Vertex Table: ' || vertname || ' not found',
+          'Please create ' || vertname || ' using  _pgr_createTopology() or pgr_createVerticesTable()',
+          'Vertex Table: ' || vertname || ' found');
+
+
+    perform _pgr_msg(msgKind, fnName, 'Checking columns of ' || vertname);
+      FOREACH cname IN ARRAY columnsArr
+      loop
+         select _pgr_getcolumnName(vertname, cname, 0, fnName) into colname;
+         if colname is null then
+           perform _pgr_msg(msgKind, fnName, 'Adding column ' || cname || ' in ' || vertname);
+           set client_min_messages  to warning;
+                execute 'ALTER TABLE '||_pgr_quote_ident(vertname)||' ADD COLUMN '||cname|| ' integer';
+           execute 'set client_min_messages  to '|| debuglevel;
+           perform _pgr_msg(msgKind, fnName);
+         end if;
+      end loop;
+    perform _pgr_msg(msgKind, fnName, 'Finished checking columns of ' || vertname);
+
+    perform _pgr_createIndex(vertname , 'id' , 'btree', reportErrs, fnName);
+ END
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(
+    sname text, tname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    debuglevel text;
+    naming record;
+    tabname text;
+    query text;
+    msgKind int;
+BEGIN
+  msgKind = 0; -- debug_
+
+  execute 'show client_min_messages' into debuglevel;
+  tabname=_pgr_quote_ident(sname||'.'||tname);
+  perform _pgr_msg(msgKind, fnName, 'Checking ' || colname || ' column in ' || tabname || ' is indexed');
+    IF (_pgr_isColumnIndexed(sname,tname,colname, 0, fnName)) then
+       perform _pgr_msg(msgKind, fnName);
+    else
+      if indext = 'gist' then
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using gist('||quote_ident(colname)||')';
+      else
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using btree('||quote_ident(colname)||')';
+      end if;
+      perform _pgr_msg(msgKind, fnName, 'Adding index ' || tabname || '_' ||  colname || '_idx');
+      perform _pgr_msg(msgKind, fnName, ' Using ' ||  query);
+      set client_min_messages  to warning;
+      BEGIN
+        execute query;
+        EXCEPTION WHEN others THEN
+          perform _pgr_onError( true, reportErrs, fnName,
+            'Could not create index on:' || colname, SQLERRM);
+      END;
+      execute 'set client_min_messages  to '|| debuglevel;
+      perform _pgr_msg(msgKind, fnName);
+    END IF;
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(tabname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    naming record;
+    sname text;
+    tname text;
+
+BEGIN
+    select * from _pgr_getTableName(tabname, 2, fnName)  into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    execute _pgr_createIndex(sname, tname, colname, indext, reportErrs, fnName);
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pointToId(
+    point geometry,
+    tolerance double precision,
+    vertname text,
+    srid integer)
+
+  RETURNS bigint AS
+$BODY$
+DECLARE
+    rec record;
+    pid bigint;
+
+BEGIN
+    EXECUTE 'SELECT ST_Distance(
+        the_geom,
+        ST_GeomFromText(ST_AsText('
+                || quote_literal(point::text)
+                || '),'
+            || srid ||')) AS d, id, the_geom
+    FROM '||_pgr_quote_ident(vertname)||'
+    WHERE ST_DWithin(
+        the_geom,
+        ST_GeomFromText(
+            ST_AsText(' || quote_literal(point::text) ||'),
+            ' || srid || '),' || tolerance||')
+    ORDER BY d
+    LIMIT 1' INTO rec ;
+    IF rec.id IS NOT NULL THEN
+        pid := rec.id;
+    ELSE
+        execute 'INSERT INTO '||_pgr_quote_ident(vertname)||' (the_geom) VALUES ('||quote_literal(point::text)||')';
+        pid := lastval();
+END IF;
+
+RETURN pid;
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'many_to_many_dijkstra'
+LANGUAGE c VOLATILE;
+
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer, OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstra(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(Many to Many)';
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraVia(
+    edges_sql TEXT,
+    via_vertices ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    strict BOOLEAN DEFAULT FALSE,
+    U_turn_on_edge BOOLEAN DEFAULT TRUE,
+
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'dijkstraVia'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_johnson(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'johnson'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_floydWarshall(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'floydWarshall'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'astarManyToMany'
+LANGUAGE c VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, normal:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to Many)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true, normal:=false) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to Many)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid ANYARRAY,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+    equicost BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '$libdir/libpgrouting-2.5', 'many_withPointsDD'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_withPointsDD($1, $2, ARRAY[$3]::BIGINT[], $4, $5, $6, $7, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vids anyarray,
+    distance FLOAT,
+    directed BOOLEAN DEFAULT TRUE,
+    equicost BOOLEAN DEFAULT FALSE,
+    OUT seq integer,
+    OUT from_v  bigint,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '$libdir/libpgrouting-2.5', 'driving_many_to_dist'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vid bigint,
+    distance FLOAT8,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq integer,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer, directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'kshortest_path'
+    LANGUAGE c STABLE STRICT;
+
+-- V2 the graph is directed and there are no heap paths
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid integer, end_vid integer, k integer, has_rcost boolean)
+  RETURNS SETOF pgr_costresult3 AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated signature of pgr_ksp';
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql::text, false);
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_rcost) THEN
+           -- user says that it has reverse_cost but its not true
+           RAISE EXCEPTION 'has_reverse_cost set to true but reverse_cost not found';
+         ELSE
+           -- user says that it does not have reverse_cost but it does have it
+           -- to ignore we remove reverse_cost from the query
+           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+         END IF;
+      END IF;
+
+      RETURN query SELECT ((row_number() over()) -1)::integer  AS seq,  (path_id - 1)::integer AS id1, node::integer AS id2, edge::integer AS id3, cost
+            FROM _pgr_ksp(sql::text, start_vid, end_vid, k, TRUE, FALSE) WHERE path_id <= k;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer,
+  directed boolean default true, heap_paths boolean default false,
+  --directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  BEGIN
+         RETURN query SELECT *
+                FROM _pgr_ksp(edges_sql::text, start_vid, end_vid, k, directed, heap_paths);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsKSP(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    k INTEGER,
+
+    directed BOOLEAN DEFAULT TRUE,
+    heap_paths BOOLEAN DEFAULT FALSE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER, OUT path_id INTEGER, OUT path_seq INTEGER,
+    OUT node BIGINT, OUT edge BIGINT,
+    OUT cost FLOAT, OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'withPoints_ksp'
+    LANGUAGE c STABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_unnest_matrix(matrix float8[][], OUT start_vid integer, OUT end_vid integer, out agg_cost float8)
+RETURNS SETOF record AS
+
+$body$
+DECLARE
+
+m float8[];
+
+BEGIN
+    start_vid = 1;
+    foreach m slice 1 in  ARRAY matrix
+    LOOP
+        end_vid = 1;
+        foreach agg_cost in  ARRAY m
+        LOOP
+            RETURN next;
+            end_vid = end_vid + 1;
+        END LOOP;
+        start_vid = start_vid + 1;
+    END LOOP;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_tsp(
+    matrix float8[][],
+    startpt INTEGER,
+    endpt INTEGER DEFAULT -1,
+    OUT seq INTEGER,
+    OUT id INTEGER)
+RETURNS SETOF record AS
+$body$
+DECLARE
+table_sql TEXT;
+debuglevel TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature pgr_tsp(float8[][], integer, integer)';
+
+    CREATE TEMP TABLE ___tmp2 ON COMMIT DROP AS SELECT * FROM _pgr_unnest_matrix( matrix );
+
+
+    startpt := startpt + 1;
+    IF endpt = -1 THEN endpt := startpt;
+    END IF;
+
+
+    RETURN QUERY
+    WITH
+    result AS (
+        SELECT * FROM pgr_TSP(
+        $$SELECT * FROM ___tmp2 $$,
+        startpt, endpt,
+
+        tries_per_temperature :=  500 :: INTEGER,
+        max_changes_per_temperature := 30 :: INTEGER,
+        max_consecutive_non_changes := 500 :: INTEGER,
+
+        randomize:=false)
+    )
+    SELECT (row_number() over(ORDER BY result.seq) - 1)::INTEGER AS seq, (result.node - 1)::INTEGER AS id
+
+    FROM result WHERE NOT(result.node = startpt AND result.seq != 1);
+
+    DROP TABLE ___tmp2;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+
+
+
+CREATE OR  REPLACE FUNCTION pgr_tsp(sql text, start_id INTEGER, end_id INTEGER default (-1))
+returns setof pgr_costResult as
+$body$
+DECLARE
+table_sql TEXT;
+rec RECORD;
+debuglevel TEXT;
+n BIGINT;
+
+BEGIN
+    RAISE NOTICE 'Deprecated Signature pgr_tsp(sql, integer, integer)';
+
+    table_sql := 'CREATE TEMP TABLE ___tmp ON COMMIT DROP AS ' || sql ;
+    EXECUTE table_sql;
+
+
+    BEGIN
+        EXECUTE 'SELECT id, x, y FROM ___tmp' INTO rec;
+        EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                USING ERRCODE = 'XX000',
+                HINT = 'Please verify the column names: id, x, y';
+    END;
+
+    EXECUTE
+    'SELECT
+        pg_typeof(id)::text as id_type,
+        pg_typeof(x)::text as x_type,
+        pg_typeof(y)::text as y_type FROM ___tmp' INTO rec;
+
+
+    IF NOT((rec.id_type in ('integer'::text))
+        AND (rec.x_type = 'double precision'::text)
+        AND (rec.y_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION '''id'' must be of type INTEGER, ''x'' ad ''y'' must be of type FLOAT'
+            USING ERRCODE = 'XX000';
+    END IF;
+
+    EXECUTE 'SELECT count(*) AS n FROM (' || sql || ') AS __a__' INTO rec;
+    n = rec.n;
+
+    RETURN query
+        SELECT (seq - 1)::INTEGER AS seq, node::INTEGER AS id1, node::INTEGER AS id2, cost
+        FROM pgr_eucledianTSP(sql, start_id, end_id,
+
+            tries_per_temperature :=  500 * n :: INTEGER,
+            max_changes_per_temperature := 60 * n :: INTEGER,
+            max_consecutive_non_changes := 500 * n :: INTEGER,
+
+            randomize := false) WHERE seq <= n;
+    DROP TABLE ___tmp;
+
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+
+create or replace function _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+  as
+$body$
+declare
+    sql text;
+    r record;
+
+begin
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    sql := 'with nodes as (' || sqlin || ')
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j, st_distance(st_makepoint(a.x, a.y), st_makepoint(b.x, b.y)) as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i';
+
+    for r in execute sql loop
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+
+end;
+$body$
+language plpgsql stable cost 10;
+
+
+CREATE OR REPLACE FUNCTION pgr_TSP(
+    matrix_row_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '$libdir/libpgrouting-2.5', 'newTSP'
+LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_eucledianTSP(
+    coordinates_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '$libdir/libpgrouting-2.5', 'eucledianTSP'
+LANGUAGE c VOLATILE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_alphashape(sql text, alpha float8 DEFAULT 0, OUT x float8, OUT y float8)
+    RETURNS SETOF record
+    AS '$libdir/libpgrouting-2.5', 'alphashape'
+    LANGUAGE c VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_pointsAsPolygon(query varchar, alpha float8 DEFAULT 0)
+	RETURNS geometry AS
+	$$
+	DECLARE
+		r record;
+		geoms geometry[];
+		vertex_result record;
+		i int;
+		n int;
+		spos int;
+		q text;
+		x float8[];
+		y float8[];
+
+	BEGIN
+		geoms := array[]::geometry[];
+		i := 1;
+
+		FOR vertex_result IN EXECUTE 'SELECT x, y FROM pgr_alphashape('''|| query || ''', ' || alpha || ')'
+		LOOP
+			x[i] = vertex_result.x;
+			y[i] = vertex_result.y;
+			i := i+1;
+		END LOOP;
+
+		n := i;
+		IF n = 1 THEN
+			RAISE NOTICE 'n = 1';
+			RETURN NULL;
+		END IF;
+
+		spos := 1;
+		q := 'SELECT ST_GeometryFromText(''POLYGON((';
+		FOR i IN 1..n LOOP
+			IF x[i] IS NULL AND y[i] IS NULL THEN
+				q := q || ', ' || x[spos] || ' ' || y[spos] || '))'',0) AS geom;';
+				EXECUTE q INTO r;
+				geoms := geoms || array[r.geom];
+				q := '';
+			ELSE
+				IF q = '' THEN
+					spos := i;
+					q := 'SELECT ST_GeometryFromText(''POLYGON((';
+				END IF;
+				IF i = spos THEN
+					q := q || x[spos] || ' ' || y[spos];
+				ELSE
+					q := q || ', ' || x[i] || ' ' || y[i];
+				END IF;
+			END IF;
+		END LOOP;
+
+		RETURN ST_BuildArea(ST_Collect(geoms));
+	END;
+	$$
+	LANGUAGE 'plpgsql' VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'bd_astar'
+LANGUAGE C VOLATILE;
+
+
+
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed:=true, only_cost:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    BOOLEAN,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false);
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to Many)';
+
+
+
+-- one to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to Many)';
+
+
+-- bdDijkstra MANY TO MANY
+CREATE OR REPLACE FUNCTION _pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'bdDijkstra'
+LANGUAGE c VOLATILE;
+
+
+
+-- ONE TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- TODO directed BOOLEAN DEFAULT TRUE,  on version 3
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, false) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, true) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_vid integer,
+    target_vid integer,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '$libdir/libpgrouting-2.5', 'turn_restrict_shortest_path_vertex'
+LANGUAGE 'c' IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '$libdir/libpgrouting-2.5', 'turn_restrict_shortest_path_edge'
+LANGUAGE 'c' IMMUTABLE;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || edges_sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        -- no restrictions then its a dijkstra
+        RETURN query SELECT a.seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_dijkstra(new_sql, start_vid, end_vid, directed) a;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, start_vid, end_vid, directed, has_rcost, restrictions_sql);
+    RETURN;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_trspViaVertices(
+    edges_sql TEXT,
+    via_vids ANYARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult3 AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            new_sql :=
+               'WITH old_sql AS (' || edges_sql || ')' ||
+                '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        RETURN query SELECT (row_number() over())::INTEGER, path_id:: INTEGER, node::INTEGER,
+            (CASE WHEN edge = -2 THEN -1 ELSE edge END)::INTEGER, cost
+            FROM pgr_dijkstraVia(new_sql, via_vids, directed, strict:=true) WHERE edge != -1;
+        RETURN;
+    END IF;
+
+
+    -- make the call without contradiction from part of the user
+    RETURN query SELECT * FROM _pgr_trspViaVertices(new_sql, via_vids::INTEGER[], directed, has_rcost, restrictions_sql);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+
+    new_sql := sql;
+    IF (has_reverse != has_reverse_cost) THEN  -- user contradiction
+        IF (has_reverse) THEN
+            -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) THEN
+        -- no restrictions then its a with points
+        RETURN query SELECT a.seq-1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_withpoints(new_sql,
+            '(SELECT 1 as pid, ' || source_eid || 'as edge_id, ' || source_pos || '::float8 as fraction)'
+            || ' UNION '
+            || '(SELECT 2, ' || target_eid || ', ' || target_pos || ')' ::TEXT,
+            -1, -2, directed) a;
+        -- WHERE node != -2;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, source_eid, source_pos, target_eid, target_pos, directed, has_reverse_cost, turn_restrict_sql);
+    RETURN;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+create or replace function _pgr_trspViaVertices(sql text, vids integer[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    lrra boolean := false;
+    seq integer := 0;
+    seq2 integer := 0;
+
+begin
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(vids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from _pgr_trsp(sql, vids[i], vids[i+1], directed, has_rcost, turn_restrict_sql) as a loop
+            -- filter out the individual path ends except the last one
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --raise notice 'rr: %', rr;
+            if rr.id3 = -1 then
+                lrr := rr;
+                lrra := true;
+            else
+                seq := seq + 1;
+                rr.seq := seq;
+                return next rr;
+            end if;
+        end loop;
+    end loop;
+
+    if lrra then
+        seq := seq + 1;
+        lrr.seq := seq;
+        return next lrr;
+    end if;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+
+----------------------------------------------------------------------------------------------------------
+
+create or replace function pgr_trspViaEdges(sql text, eids integer[], pcts float8[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    first boolean := true;
+    seq integer := 0;
+    seq2 integer :=0;
+    has_reverse BOOLEAN;
+    point_is_vertex BOOLEAN := false;
+    edges_sql TEXT;
+    f float;
+
+begin
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql := sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (NOT has_rcost) THEN
+            -- user does not want to use reverse cost column
+            edges_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    FOREACH f IN ARRAY pcts LOOP
+        IF f in (0,1) THEN
+           point_is_vertex := true;
+        END IF;
+    END LOOP;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) AND NOT point_is_vertex THEN
+        -- no restrictions then its a _pgr_withPointsVia
+        RETURN query SELECT a.seq::INTEGER, path_id::INTEGER AS id1, node::INTEGER AS id2, edge::INTEGER AS id3, cost
+        FROM _pgr_withPointsVia(edges_sql, eids, pcts, directed) a;
+        RETURN;
+    END IF;
+
+    if array_length(eids, 1) != array_length(pcts, 1) then
+        raise exception 'The length of arrays eids and pcts must be the same!';
+    end if;
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(eids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from pgr_trsp(edges_sql,
+                                  eids[i], pcts[i],
+                                  eids[i+1], pcts[i+1],
+                                  directed,
+                                  has_rcost,
+                                  turn_restrict_sql) as a loop
+            -- combine intermediate via costs when cost is split across
+            -- two parts of a segment because it stops it and
+            -- restarts the next leg also on it
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --
+            -- there are multiple condition we have to deal with
+            -- between the end of one leg and start of the next
+            -- 1. same vertex_id. edge_id=-1; drop record with edge_id=-1
+            -- means: path ends on vertex
+            -- NOTICE:  rr: (19,1,44570022,-1,0)
+            -- NOTICE:  rr: (0,2,44570022,1768045,2.89691196717448)
+            -- 2. vertex_id=-1; sum cost components
+            -- means: path end/starts with the segment
+            -- NOTICE:  rr: (11,2,44569628,1775909,9.32885885148532)
+            -- NOTICE:  rr: (0,3,-1,1775909,0.771386350984395)
+
+            --raise notice 'rr: %', rr;
+            if first then
+                lrr := rr;
+                first := false;
+            else
+                if lrr.id3 = -1 then
+                    lrr := rr;
+                elsif lrr.id3 = rr.id3 then
+                    lrr.cost := lrr.cost + rr.cost;
+                    if rr.id2 = -1 then
+                        rr.id2 := lrr.id2;
+                    end if;
+                else
+                    seq := seq + 1;
+                    lrr.seq := seq;
+                    return next lrr;
+                    lrr := rr;
+                end if;
+            end if;
+        end loop;
+    end loop;
+
+    seq := seq + 1;
+    lrr.seq := seq;
+    return next lrr;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+----------------------------
+--    MANY TO MANY
+----------------------------
+
+
+CREATE OR REPLACE FUNCTION _pgr_maxflow(
+    edges_sql TEXT,
+    sources ANYARRAY,
+    targets ANYARRAY,
+    algorithm INTEGER DEFAULT 1,
+    only_flow BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'max_flow_many_to_many'
+    LANGUAGE c VOLATILE;
+
+
+
+
+------------------------------------
+-- 3 pgr_edmondsKarp
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+------------------------------------
+-- 2 boykov_kolmogorov
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+------------------------------------
+-- 1 pgr_pushRelabel
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT flow
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], algorithm := 1, only_flow := true);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], $3::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, $2::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxCardinalityMatch(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'edge_disjoint_paths_many_to_many'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    bigint,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    IN directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_contractGraph(
+    edges_sql TEXT,
+    contraction_order BIGINT[],
+    max_cycles integer DEFAULT 1,
+    forbidden_vertices BIGINT[] DEFAULT ARRAY[]::BIGINT[],
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT type TEXT,
+    OUT id BIGINT,
+    OUT contracted_vertices BIGINT[],
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost float)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'contractGraph'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliver(
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_cell_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'pickDeliver'
+LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliverEuclidean (
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'pickDeliverEuclidean'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_vrpOneDepot(
+    TEXT, -- customers_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_sql
+    INTEGER, -- depot_id
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+orders_sql TEXT;
+trucks_sql TEXT;
+matrix_sql TEXT;
+final_sql TEXT;
+BEGIN
+
+    orders_sql = $$WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    pickups AS (
+        SELECT id, x AS p_x, y AS p_y, open_time AS p_open, close_time AS p_close, service_time AS p_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vrp_orders.id AS id, order_unit AS demand, pickups.id AS p_node_id, p_x, p_y, p_open, p_close, p_service,
+    vrp_orders.id AS d_node_id, x AS d_x, y AS d_y, open_time AS d_open, close_time AS d_close, service_time AS d_service
+    FROM vrp_orders, pickups
+    WHERE vrp_orders.id != $$ || $4;
+
+
+    trucks_sql = $$ WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    vrp_vehicles AS ($$ || $2 || $$ ),
+    starts AS (
+        SELECT id AS start_node_id, x AS start_x, y AS start_y, open_time AS start_open, close_time AS start_close, service_time AS start_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vehicle_id AS id, capacity, starts.* FROM vrp_vehicles, starts;
+    $$;
+
+    final_sql = '
+    SELECT * FROM _pgr_pickDeliver(
+            $$' || orders_sql || '$$,
+            $$' || trucks_sql || '$$,
+            $$' || $3 || '$$,
+            max_cycles := 2,
+            initial_sol := 4 ); ';
+
+    RAISE DEBUG '%', orders_sql;
+    RAISE DEBUG '%', trucks_sql;
+    RAISE DEBUG '%', $3;
+    RAISE DEBUG '%', final_sql;
+
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+-----------------------------------------------------------------------
+-- Core function for vrp with sigle depot computation
+-- See README for description
+-----------------------------------------------------------------------
+--
+--
+
+create or replace function pgr_vrpOneDepot(
+	order_sql text,
+	vehicle_sql text,
+	cost_sql text,
+	depot_id integer,
+
+	OUT oid integer,
+	OUT opos integer,
+	OUT vid integer,
+	OUT tarrival integer,
+	OUT tdepart integer)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT order_id::INTEGER, stop_seq::INTEGER, vehicle_id::INTEGER, arrival_time::INTEGER, departure_time::INTEGER
+    FROM _pgr_vrpOneDepot($1, $2,
+       '
+            SELECT src_id AS start_vid, dest_id AS end_vid, traveltime AS agg_cost FROM ('||$3||') AS a
+       ',
+        $4
+    ) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_gsoc_vrppdtw(
+    customers_sql TEXT,
+    max_vehicles INTEGER,
+    capacity FLOAT,
+    speed FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+
+    OUT seq INTEGER,
+    OUT vehicle_id INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT stop_id BIGINT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+    orders_sql TEXT;
+    vehicles_sql TEXT;
+    final_sql TEXT;
+BEGIN
+    orders_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        pickups AS (
+            SELECT id, demand, x as p_x, y as p_y, opentime as p_open, closetime as p_close, servicetime as p_service
+            FROM  customer_data WHERE pindex = 0 AND id != 0
+        ),
+        deliveries AS (
+            SELECT pindex AS id, x as d_x, y as d_y, opentime as d_open, closetime as d_close, servicetime as d_service
+            FROM  customer_data WHERE dindex = 0 AND id != 0
+        )
+        SELECT * FROM pickups JOIN deliveries USING(id) ORDER BY pickups.id
+    $$;
+
+    vehicles_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ )
+        SELECT id, x AS start_x, y AS start_y,
+            opentime AS start_open, closetime AS start_close, $$ ||
+            capacity || $$ AS capacity, $$ || max_vehicles || $$ AS number, $$ || speed || $$ AS speed
+            FROM customer_data WHERE id = 0 LIMIT 1
+        $$;
+--  seq | vehicle_id | vehicle_seq | stop_id | travel_time | arrival_time | wait_time | service_time | departure_time
+    final_sql = $$ WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        p_deliver AS (SELECT * FROM _pgr_pickDeliverEuclidean('$$ || orders_sql || $$',  '$$ || vehicles_sql || $$',  1, $$ || max_cycles || $$ )),
+        picks AS (SELECT p_deliver.*, pindex, dindex, id AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 2)),
+        delivers AS (SELECT p_deliver.*, pindex, dindex, dindex AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 3)),
+        depots AS (SELECT p_deliver.*, 0 as pindex, 0 as dindex, 0 AS the_id FROM p_deliver WHERE (stop_type IN (-1,1,6))),
+        the_union AS (SELECT * FROM picks UNION SELECT * FROM delivers UNION SELECT * from depots)
+
+        SELECT (row_number() over(ORDER BY a.seq))::INTEGER, vehicle_seq, a.stop_seq, the_id::BIGINT, a.travel_time, a.arrival_time, a.wait_time, a.service_time, a.departure_time
+        FROM (SELECT * FROM the_union) AS a ORDER BY a.seq
+        $$;
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+CREATE OR REPLACE FUNCTION pgr_gsoc_vrppdtw(
+    sql text,
+    vehicle_num INTEGER,
+    capacity INTEGER
+)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+customers_sql TEXT;
+BEGIN
+    RETURN query
+         SELECT a.seq, vehicle_id::INTEGER AS id1, stop_id::INTEGER AS id2, departure_time AS cost
+        FROM _pgr_gsoc_vrppdtw($1, $2, $3, 1, 30) AS a WHERE vehicle_id NOT IN (-2);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION _pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN,
+    driving_side CHAR,
+    details BOOLEAN,
+
+    only_cost BOOLEAN DEFAULT false, -- gets path
+    normal BOOLEAN DEFAULT true, -- false for many to onu
+
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'withPoints'
+LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], ARRAY[$4]::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], ARRAY[$4]::bigint[], $5, $6, $7, FALSE, FALSE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], $4::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], $4::BIGINT[], $5,  $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION  _pgr_withPointsVia(
+    sql text,
+    via_edges bigint[],
+    fraction float[],
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  has_rcost boolean;
+  sql_new_vertices text := ' ';
+  sql_on_vertex text;
+  v_union text := ' ';
+  dummyrec record;
+  rec1 record;
+  via_vertices int[];
+  sql_safe text;
+  new_edges text;
+  BEGIN
+     BEGIN
+        sql_safe = 'SELECT id, source, target, cost, reverse_cost FROM ('|| sql || ') AS __a';
+
+        EXECUTE 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||sql_safe||' ) AS __b__ limit 1 ' INTO rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+     END;
+
+
+      IF array_length(via_edges, 1) != array_length(fraction, 1) then
+        RAISE EXCEPTION 'The length of via_edges is different of length of via_edges';
+      END IF;
+
+      FOR i IN 1 .. array_length(via_edges, 1)
+      LOOP
+          IF fraction[i] = 0 THEN
+              sql_on_vertex := 'SELECT source FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.source;
+          ELSE IF fraction[i] = 1 THEN
+              sql_on_vertex := 'SELECT target FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.target;
+          ELSE
+              via_vertices[i] = -i;
+              IF has_rcost THEN
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost,
+                              reverse_cost * (1 - ' || fraction[i] || ')  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost,
+                              reverse_cost *  ' || fraction[i] || '  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' where id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               ELSE
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               END IF;
+          END IF;
+          END IF;
+     END LOOP;
+
+     IF sql_new_vertices = ' ' THEN
+         new_edges := sql;
+     ELSE
+         IF has_rcost THEN
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost,
+                         lead(cost) OVER w  - cost AS reverse_cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL),
+                   second_part AS ( SELECT * FROM (SELECT id, lead(source) OVER w  AS source, source as target,
+                         reverse_cost - lead(reverse_cost) OVER w  AS cost,
+                         reverse_cost - lead(reverse_cost) OVER w  AS reverse_cost
+                      FROM  the_union  WHERE target > 0 and reverse_cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY reverse_cost ASC) ) as n2
+                      WHERE source IS NOT NULL),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part)
+                             UNION
+                       (SELECT * FROM second_part) ) _union )
+                  SELECT *  FROM more_union';
+         ELSE
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL ),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part) ) _union )
+                  SELECT *  FROM more_union';
+          END IF;
+      END IF;
+
+ -- raise notice '%', new_edges;
+     sql_new_vertices := sql_new_vertices || v_union || ' (' || sql || ')';
+     RETURN query SELECT *
+         FROM pgr_dijkstraVia(new_edges, via_vertices, directed, has_rcost);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_lineGraph(
+    TEXT, -- edges_sql
+    directed BOOLEAN DEFAULT true,
+    OUT seq INTEGER,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost FLOAT,
+    OUT reverse_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'lineGraph'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_connectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'connectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_strongComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'strongComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_biconnectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the edge in the component
+    OUT n_seq INTEGER,          -- nth_seq of the edge in the component
+    OUT edge BIGINT)            -- the number of the edge
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'biconnectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_articulationPoints(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'articulationPoints'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_bridges(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT edge BIGINT)            -- the number of the edge 
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'bridges'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_createtopology(edge_table text, tolerance double precision,
+		   the_geom text default 'the_geom', id text default 'id',
+		   source text default 'source', target text default 'target',rows_where text default 'true',
+		   clean boolean default FALSE)
+RETURNS VARCHAR AS
+$BODY$
+
+DECLARE
+    points record;
+    sridinfo record;
+    source_id bigint;
+    target_id bigint;
+    totcount bigint;
+    rowcount bigint;
+    srid integer;
+    sql text;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    idname text;
+    sourcename text;
+    targetname text;
+    notincluded integer;
+    i integer;
+    naming record;
+    info record;
+    flag boolean;
+    query text;
+    idtype text;
+    gtype text;
+    sourcetype text;
+    targettype text;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+    msgKind int;
+    emptied BOOLEAN;
+
+BEGIN
+    msgKind = 1; -- notice
+    fnName = 'pgr_createTopology';
+    raise notice 'PROCESSING:';
+    raise notice 'pgr_createTopology(''%'', %, ''%'', ''%'', ''%'', ''%'', rows_where := ''%'', clean := %)',edge_table,tolerance,the_geom,id,source,target,rows_where, clean;
+    execute 'show client_min_messages' into debuglevel;
+
+
+    raise notice 'Performing checks, please wait .....';
+
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+        sname=naming.sname;
+        tname=naming.tname;
+        tabname=sname||'.'||tname;
+        vname=tname||'_vertices_pgr';
+        vertname= sname||'.'||vname;
+        rows_where = ' AND ('||rows_where||')';
+      raise DEBUG '     --> OK';
+
+
+      raise debug 'Checking column names in edge table';
+        select * into idname     from _pgr_getColumnName(sname, tname,id,2,fnName);
+        select * into sourcename from _pgr_getColumnName(sname, tname,source,2,fnName);
+        select * into targetname from _pgr_getColumnName(sname, tname,target,2,fnName);
+        select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2,fnName);
+
+
+        err = sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname;
+        perform _pgr_onError( err, 2, fnName,
+               'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
+	       'Column names are OK');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking column types in edge table';
+        select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+        select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+        select * into idtype from _pgr_getColumnType(sname,tname,idname,1, fnName);
+
+        err = idtype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column id:'|| idname, ' Expected type of '|| idname || ' is integer,smallint or bigint but '||idtype||' was found');
+
+        err = sourcetype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column source:'|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+        err = targettype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column target:'|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or bigint but '||targettype||' was found');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking SRID of geometry column';
+         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+            || ' FROM ' || _pgr_quote_ident(tabname)
+            || ' WHERE ' || quote_ident(gname)
+            || ' IS NOT NULL LIMIT 1';
+         raise debug '%',query;
+         EXECUTE query INTO sridinfo;
+
+         err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+         perform _pgr_onError(err, 2, fnName,
+	     'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+
+         srid := sridinfo.srid;
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking and creating indices in edge table';
+        perform _pgr_createIndex(sname, tname , idname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+
+        gname=quote_ident(gname);
+        idname=quote_ident(idname);
+        sourcename=quote_ident(sourcename);
+        targetname=quote_ident(targetname);
+      raise DEBUG '     --> OK';
+
+
+
+
+
+    BEGIN
+        -- issue #193 & issue #210 & #213
+        -- this sql is for trying out the where clause
+        -- the select * is to avoid any column name conflicts
+        -- limit 1, just try on first record
+        -- if the where clasuse is ill formed it will be caught in the exception
+        sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+        EXECUTE sql into dummyRec;
+        -- end
+
+        -- if above where clasue works this one should work
+        -- any error will be caught by the exception also
+        sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NOT NULL AND '||
+	    idname||' IS NOT NULL)=false '||rows_where;
+        EXECUTE SQL  into notincluded;
+
+        if clean then
+            raise debug 'Cleaning previous Topology ';
+               execute 'UPDATE ' || _pgr_quote_ident(tabname) ||
+               ' SET '||sourcename||' = NULL,'||targetname||' = NULL';
+        else
+            raise debug 'Creating topology for edges with non assigned topology';
+            if rows_where=' AND (true)' then
+                rows_where=  ' and ('||quote_ident(sourcename)||' is null or '||quote_ident(targetname)||' is  null)';
+            end if;
+        end if;
+        -- my thoery is that the select Count(*) will never go through here
+        EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+             RAISE NOTICE '%',sql;
+             RETURN 'FAIL';
+    END;
+
+    BEGIN
+         raise DEBUG 'initializing %',vertname;
+         execute 'select * from _pgr_getTableName('||quote_literal(vertname)
+                                                  || ',0,' || quote_literal(fnName) ||' )' into naming;
+         emptied = false;
+         set client_min_messages  to warning;
+         IF sname=naming.sname AND vname=naming.tname  THEN
+            if clean then
+                execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+                execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+                emptied = true;
+            end if;
+         ELSE -- table doesn't exist
+            execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+            emptied = true;
+         END IF;
+         IF (emptied) THEN
+             execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+	         quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+             perform _pgr_createIndex(vertname , 'the_geom'::text , 'gist'::text);
+         END IF;
+         execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id"}''::text[])' into naming;
+         execute 'set client_min_messages  to '|| debuglevel;
+         raise DEBUG  '  ------>OK';
+         EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: something went wrong when initializing the verties table';
+             RETURN 'FAIL';
+    END;
+
+
+
+    raise notice 'Creating Topology, Please wait...';
+        rowcount := 0;
+        FOR points IN EXECUTE 'SELECT ' || idname || '::bigint AS id,'
+            || ' _pgr_StartPoint(' || gname || ') AS source,'
+            || ' _pgr_EndPoint('   || gname || ') AS target'
+            || ' FROM '  || _pgr_quote_ident(tabname)
+            || ' WHERE ' || gname || ' IS NOT NULL AND ' || idname||' IS NOT NULL '||rows_where
+        LOOP
+
+            rowcount := rowcount + 1;
+            IF rowcount % 1000 = 0 THEN
+                RAISE NOTICE '% edges processed', rowcount;
+            END IF;
+
+
+            source_id := _pgr_pointToId(points.source, tolerance,vertname,srid);
+            target_id := _pgr_pointToId(points.target, tolerance,vertname,srid);
+            BEGIN
+                sql := 'UPDATE ' || _pgr_quote_ident(tabname) ||
+                    ' SET '||sourcename||' = '|| source_id::text || ','||targetname||' = ' || target_id::text ||
+                    ' WHERE ' || idname || ' =  ' || points.id::text;
+
+                IF sql IS NULL THEN
+                    RAISE NOTICE 'WARNING: UPDATE % SET source = %, target = % WHERE % = % ', tabname, source_id::text, target_id::text, idname,  points.id::text;
+                ELSE
+                    EXECUTE sql;
+                END IF;
+                EXCEPTION WHEN OTHERS THEN
+                    RAISE NOTICE '%', SQLERRM;
+                    RAISE NOTICE '%',sql;
+                    RETURN 'FAIL';
+            end;
+        END LOOP;
+        raise notice '-------------> TOPOLOGY CREATED FOR  % edges', rowcount;
+        RAISE NOTICE 'Rows with NULL geometry or NULL id: %',notincluded;
+        Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname), _pgr_quote_ident(vertname);
+        raise notice '----------------------------------------------';
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+COMMENT ON FUNCTION pgr_createTopology(text, double precision,text,text,text,text,text,boolean)
+IS 'args: edge_table,tolerance, the_geom:=''the_geom'',source:=''source'', target:=''target'',rows_where:=''true'' - fills columns source and target in the geometry table and creates a vertices table for selected rows';
+
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
+RETURNS character varying AS
+$BODY$
+
+DECLARE
+    points record;
+    seg record;
+    naming record;
+    sridinfo record;
+    srid integer;
+    ecnt integer;
+    vertname text;
+    sname text;
+    tname text;
+    vname text;
+    idname text;
+    sourcename text;
+    targetname text;
+    sourcetype text;
+    targettype text;
+    geotype text;
+    gname text;
+    tabName text;
+    flag boolean ;
+    query text;
+    selectionquery text;
+    i integer;
+    tot integer;
+    NumIsolated integer;
+    numdeadends integer;
+    numgaps integer;
+    NumCrossing integer;
+    numRings integer;
+    debuglevel text;
+
+
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_analyzeGraph(''%'',%,''%'',''%'',''%'',''%'',''%'')',edge_table,tolerance,the_geom,id,source,target,rows_where;
+  raise notice 'Performing checks, please wait ...';
+  execute 'show client_min_messages' into debuglevel;
+
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',2)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    rows_where = ' AND ('||rows_where||')';
+    raise DEBUG '     --> OK';
+
+  END;
+
+  BEGIN
+       raise debug 'Checking Vertices table';
+       execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","cnt","chk"}''::text[])' into naming;
+       execute 'UPDATE '||_pgr_quote_ident(vertname)||' SET cnt=0 ,chk=0';
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the vertices table';
+          RETURN 'FAIL';
+  END;
+
+
+
+  BEGIN
+       raise debug 'Checking column names in edge table';
+       select * into idname     from _pgr_getColumnName(sname, tname,id,2);
+       select * into sourcename from _pgr_getColumnName(sname, tname,source,2);
+       select * into targetname from _pgr_getColumnName(sname, tname,target,2);
+       select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2);
+
+
+       perform _pgr_onError( sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname, 2,
+                       'pgr_analyzeGraph',  'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
+                       'Column names are OK');
+
+        raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column names';
+          RETURN 'FAIL';
+  END;
+
+
+  BEGIN
+       raise debug 'Checking column types in edge table';
+       select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1);
+       select * into targettype from _pgr_getColumnType(sname,tname,targetname,1);
+
+       perform _pgr_onError(sourcetype not in('integer','smallint','bigint') , 2,
+                       'pgr_analyzeGraph',  'Wrong type of Column '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found',
+                       'Type of Column '|| sourcename || ' is ' || sourcetype);
+
+       perform _pgr_onError(targettype not in('integer','smallint','bigint') , 2,
+                       'pgr_analyzeGraph',  'Wrong type of Column '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found',
+                       'Type of Column '|| targetname || ' is ' || targettype);
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column types';
+          RETURN 'FAIL';
+   END;
+
+   BEGIN
+       raise debug 'Checking SRID of geometry column';
+         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+            || ' FROM ' || _pgr_quote_ident(tabname)
+            || ' WHERE ' || quote_ident(gname)
+            || ' IS NOT NULL LIMIT 1';
+         EXECUTE QUERY INTO sridinfo;
+
+         perform _pgr_onError( sridinfo IS NULL OR sridinfo.srid IS NULL,2,
+                 'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname,
+                 'SRID of '||gname||' is '||sridinfo.srid);
+
+         IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
+             RAISE NOTICE ' Can not determine the srid of the geometry "%" in table %', the_geom,tabname;
+             RETURN 'FAIL';
+         END IF;
+         srid := sridinfo.srid;
+         raise DEBUG '     --> OK';
+         EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM;--issue 210,211,213
+             RAISE NOTICE 'ERROR: something went wrong when checking for SRID of % in table %', the_geom,tabname;
+             RETURN 'FAIL';
+    END;
+
+
+    BEGIN
+       raise debug 'Checking  indices in edge table';
+       perform _pgr_createIndex(tabname , idname , 'btree');
+       perform _pgr_createIndex(tabname , sourcename , 'btree');
+       perform _pgr_createIndex(tabname , targetname , 'btree');
+       perform _pgr_createIndex(tabname , gname , 'gist');
+
+       gname=quote_ident(gname);
+       sourcename=quote_ident(sourcename);
+       targetname=quote_ident(targetname);
+       idname=quote_ident(idname);
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking indices';
+          RETURN 'FAIL';
+    END;
+
+
+    BEGIN
+        query='select count(*) from '||_pgr_quote_ident(tabname)||' where true  '||rows_where;
+        EXECUTE query into ecnt;
+        raise DEBUG '-->Rows Where condition: OK';
+        raise DEBUG '     --> OK';
+         EXCEPTION WHEN OTHERS THEN
+            RAISE NOTICE 'Got %', SQLERRM;  --issue 210,211,213
+            RAISE NOTICE 'ERROR: Condition is not correct. Please execute the following query to test your condition';
+            RAISE NOTICE '%',query;
+            RETURN 'FAIL';
+    END;
+
+    selectionquery ='with
+           selectedRows as( (select '||sourcename||' as id from '||_pgr_quote_ident(tabname)||' where true '||rows_where||')
+                           union
+                           (select '||targetname||' as id from '||_pgr_quote_ident(tabname)||' where true '||rows_where||'))';
+
+
+
+
+
+   BEGIN
+       RAISE NOTICE 'Analyzing for dead ends. Please wait...';
+       query= 'with countingsource as (select a.'||sourcename||' as id,count(*) as cnts
+               from (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) a  group by a.'||sourcename||')
+                     ,countingtarget as (select a.'||targetname||' as id,count(*) as cntt
+                    from (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) a  group by a.'||targetname||')
+                   ,totalcount as (select id,case when cnts is null and cntt is null then 0
+                                                   when cnts is null then cntt
+                                                   when cntt is null then cnts
+                                                   else cnts+cntt end as totcnt
+                                   from ('||_pgr_quote_ident(vertname)||' as a left
+                                   join countingsource as t using(id) ) left join countingtarget using(id))
+               update '||_pgr_quote_ident(vertname)||' as a set cnt=totcnt from totalcount as b where a.id=b.id';
+       raise debug '%',query;
+       execute query;
+       query=selectionquery||'
+              SELECT count(*)  FROM '||_pgr_quote_ident(vertname)||' WHERE cnt=1 and id in (select id from selectedRows)';
+       raise debug '%',query;
+       execute query  INTO numdeadends;
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'Got %', SQLERRM;  --issue 210,211,213
+          RAISE NOTICE 'ERROR: something went wrong when analizing for dead ends';
+          RETURN 'FAIL';
+   END;
+
+
+
+    BEGIN
+          RAISE NOTICE 'Analyzing for gaps. Please wait...';
+          query = 'with
+                   buffer as (select id,st_buffer(the_geom,'||tolerance||') as buff from '||_pgr_quote_ident(vertname)||' where cnt=1)
+                   ,veryclose as (select b.id,st_crosses(a.'||gname||',b.buff) as flag
+                   from  (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) as a
+                   join buffer as b on (a.'||gname||'&&b.buff)
+                   where '||sourcename||'!=b.id and '||targetname||'!=b.id )
+                   update '||_pgr_quote_ident(vertname)||' set chk=1 where id in (select distinct id from veryclose where flag=true)';
+          raise debug '%' ,query;
+          execute query;
+          GET DIAGNOSTICS  numgaps= ROW_COUNT;
+          raise DEBUG '     --> OK';
+          EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for gaps';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for isolated edges. Please wait...';
+        query=selectionquery|| ' SELECT count(*) FROM (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' )  as a,
+                                                 '||_pgr_quote_ident(vertname)||' as b,
+                                                 '||_pgr_quote_ident(vertname)||' as c
+                            WHERE b.id in (select id from selectedRows) and a.'||sourcename||' =b.id
+                            AND b.cnt=1 AND a.'||targetname||' =c.id
+                            AND c.cnt=1';
+        raise debug '%' ,query;
+        execute query  INTO NumIsolated;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for isolated edges';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for ring geometries. Please wait...';
+        execute 'SELECT geometrytype('||gname||')  FROM '||_pgr_quote_ident(tabname) limit 1 into geotype;
+        IF (geotype='MULTILINESTRING') THEN
+            query ='SELECT count(*)  FROM '||_pgr_quote_ident(tabname)||'
+                                 WHERE true  '||rows_where||' and st_isRing(st_linemerge('||gname||'))';
+            raise debug '%' ,query;
+            execute query  INTO numRings;
+        ELSE query ='SELECT count(*)  FROM '||_pgr_quote_ident(tabname)||'
+                                  WHERE true  '||rows_where||' and st_isRing('||gname||')';
+            raise debug '%' ,query;
+            execute query  INTO numRings;
+        END IF;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for ring geometries';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for intersections. Please wait...';
+        query = 'select count(*) from (select distinct case when a.'||idname||' < b.'||idname||' then a.'||idname||'
+                                                        else b.'||idname||' end,
+                                                   case when a.'||idname||' < b.'||idname||' then b.'||idname||'
+                                                        else a.'||idname||' end
+                                    FROM (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||') as a
+                                    JOIN (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||') as b
+                                    ON (a.'|| gname||' && b.'||gname||')
+                                    WHERE a.'||idname||' != b.'||idname|| '
+                                        and (a.'||sourcename||' in (b.'||sourcename||',b.'||targetname||')
+                                              or a.'||targetname||' in (b.'||sourcename||',b.'||targetname||')) = false
+                                        and st_intersects(a.'||gname||', b.'||gname||')=true) as d ';
+        raise debug '%' ,query;
+        execute query  INTO numCrossing;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for intersections';
+            RETURN 'FAIL';
+    END;
+
+
+
+
+    RAISE NOTICE '            ANALYSIS RESULTS FOR SELECTED EDGES:';
+    RAISE NOTICE '                  Isolated segments: %', NumIsolated;
+    RAISE NOTICE '                          Dead ends: %', numdeadends;
+    RAISE NOTICE 'Potential gaps found near dead ends: %', numgaps;
+    RAISE NOTICE '             Intersections detected: %',numCrossing;
+    RAISE NOTICE '                    Ring geometries: %',numRings;
+
+
+    RETURN 'OK';
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+COMMENT ON FUNCTION pgr_analyzeGraph(text,double precision,text,text,text,text,text) IS 'args: edge_table, tolerance,the_geom:=''the_geom'',id:=''id'',source column:=''source'', target column:=''target'' rows_where:=''true'' - creates a vertices table based on the geometry for selected rows';
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_analyzeOneway(
+   edge_table text,
+   s_in_rules TEXT[],
+   s_out_rules TEXT[],
+   t_in_rules TEXT[],
+   t_out_rules TEXT[],
+   two_way_if_null boolean default true,
+   oneway text default 'oneway',
+   source text default 'source',
+   target text default 'target')
+  RETURNS text AS
+$BODY$
+
+
+DECLARE
+    rule text;
+    ecnt integer;
+    instr text;
+    naming record;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    owname text;
+    sourcename text;
+    targetname text;
+    sourcetype text;
+    targettype text;
+    vertname text;
+    debuglevel text;
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_analyzeOneway(''%'',''%'',''%'',''%'',''%'',''%'',''%'',''%'',%)',
+		edge_table, s_in_rules , s_out_rules, t_in_rules, t_out_rules, oneway, source ,target,two_way_if_null ;
+  execute 'show client_min_messages' into debuglevel;
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',2)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    raise DEBUG '     --> OK';
+    EXCEPTION WHEN raise_exception THEN
+      RAISE NOTICE 'ERROR: something went wrong checking the table name';
+      RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise debug 'Checking Vertices table';
+       execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","ein","eout"}''::text[])' into naming;
+       execute 'UPDATE '||_pgr_quote_ident(vertname)||' SET eout=0 ,ein=0';
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the vertices table';
+          RETURN 'FAIL';
+  END;
+
+
+  BEGIN
+       raise debug 'Checking column names in edge table';
+       select * into sourcename from _pgr_getColumnName(sname, tname,source,2);
+       select * into targetname from _pgr_getColumnName(sname, tname,target,2);
+       select * into owname from _pgr_getColumnName(sname, tname,oneway,2);
+
+
+       perform _pgr_onError( sourcename in (targetname,owname) or  targetname=owname, 2,
+                       '_pgr_createToplogy',  'Two columns share the same name', 'Parameter names for oneway,source and target  must be different',
+                       'Column names are OK');
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column names';
+          RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise debug 'Checking column types in edge table';
+       select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1);
+       select * into targettype from _pgr_getColumnType(sname,tname,targetname,1);
+
+
+       perform _pgr_onError(sourcetype not in('integer','smallint','bigint') , 2,
+                       '_pgr_createTopology',  'Wrong type of Column '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found',
+                       'Type of Column '|| sourcename || ' is ' || sourcetype);
+
+       perform _pgr_onError(targettype not in('integer','smallint','bigint') , 2,
+                       '_pgr_createTopology',  'Wrong type of Column '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found',
+                       'Type of Column '|| targetname || ' is ' || targettype);
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column types';
+          RETURN 'FAIL';
+   END;
+
+
+
+    RAISE NOTICE 'Analyzing graph for one way street errors.';
+
+    rule := CASE WHEN two_way_if_null
+            THEN owname || ' IS NULL OR '
+            ELSE '' END;
+
+    instr := '''' || array_to_string(s_in_rules, ''',''') || '''';
+       EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set ein=coalesce(ein,0)+b.cnt
+      from (
+         select '|| sourcename ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| sourcename ||' ) b
+     where a.id=b.'|| sourcename;
+
+    RAISE NOTICE 'Analysis 25%% complete ...';
+
+    instr := '''' || array_to_string(t_in_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set ein=coalesce(ein,0)+b.cnt
+        from (
+         select '|| targetname ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| targetname ||' ) b
+        where a.id=b.'|| targetname;
+
+    RAISE NOTICE 'Analysis 50%% complete ...';
+
+    instr := '''' || array_to_string(s_out_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set eout=coalesce(eout,0)+b.cnt
+        from (
+         select '|| sourcename ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| sourcename ||' ) b
+        where a.id=b.'|| sourcename;
+    RAISE NOTICE 'Analysis 75%% complete ...';
+
+    instr := '''' || array_to_string(t_out_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set eout=coalesce(eout,0)+b.cnt
+        from (
+         select '|| targetname ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| targetname ||' ) b
+        where a.id=b.'|| targetname;
+
+    RAISE NOTICE 'Analysis 100%% complete ...';
+
+    EXECUTE 'SELECT count(*)  FROM '||_pgr_quote_ident(vertname)||' WHERE ein=0 or eout=0' INTO ecnt;
+
+    RAISE NOTICE 'Found % potential problems in directionality' ,ecnt;
+
+    RETURN 'OK';
+
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+COMMENT ON FUNCTION pgr_analyzeOneway(text,TEXT[],TEXT[], TEXT[],TEXT[],boolean,text,text,text)
+IS 'args:edge_table , s_in_rules , s_out_rules, t_in_rules , t_out_rules, two_way_if_null:= true, oneway:=''oneway'',source:= ''source'',target:=''target'' - Analizes the directionality of the edges based on the rules';
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_createverticestable(
+   edge_table text,
+   the_geom text DEFAULT 'the_geom'::text,
+   source text DEFAULT 'source'::text,
+   target text DEFAULT 'target'::text,
+    rows_where text DEFAULT 'true'::text
+)
+  RETURNS text AS
+$BODY$
+DECLARE
+    naming record;
+    sridinfo record;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    sourcename text;
+    targetname text;
+    query text;
+    ecnt bigint;
+    srid integer;
+    sourcetype text;
+    targettype text;
+    sql text;
+    totcount integer;
+    i integer;
+    notincluded integer;
+    included integer;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+
+
+BEGIN
+  fnName = 'pgr_createVerticesTable';
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_createVerticesTable(''%'',''%'',''%'',''%'',''%'')',edge_table,the_geom,source,target,rows_where;
+  execute 'show client_min_messages' into debuglevel;
+
+  raise notice 'Performing checks, please wait .....';
+
+  RAISE DEBUG 'Checking % exists',edge_table;
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    rows_where = ' AND ('||rows_where||')';
+  raise debug '--> Edge table exists: OK';
+
+  raise debug 'Checking column names';
+    select * into sourcename from _pgr_getColumnName(sname, tname,source,2, fnName);
+    select * into targetname from _pgr_getColumnName(sname, tname,target,2, fnName);
+    select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2, fnName);
+
+
+    err = sourcename in (targetname,gname) or  targetname=gname;
+    perform _pgr_onError(err, 2, fnName,
+        'Two columns share the same name', 'Parameter names for the_geom,source and target  must be different');
+  raise debug '--> Column names: OK';
+
+  raise debug 'Checking column types in edge table';
+    select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+    select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+
+
+    err = sourcetype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column source: '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+    err = targettype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column target: '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found');
+
+  raise debug '-->Column types:OK';
+
+  raise debug 'Checking SRID of geometry column';
+     query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+        || ' FROM ' || _pgr_quote_ident(tabname)
+        || ' WHERE ' || quote_ident(gname)
+        || ' IS NOT NULL LIMIT 1';
+     raise debug '%',query;
+     EXECUTE query INTO sridinfo;
+
+     err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+     perform _pgr_onError(err, 2, fnName,
+         'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+     srid := sridinfo.srid;
+  raise DEBUG '     --> OK';
+
+  raise debug 'Checking and creating Indices';
+     perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+  raise DEBUG '-->Check and create indices: OK';
+
+     gname=quote_ident(gname);
+     sourcename=quote_ident(sourcename);
+     targetname=quote_ident(targetname);
+
+
+  BEGIN
+  raise debug 'Checking Condition';
+    -- issue #193 & issue #210 & #213
+    -- this sql is for trying out the where clause
+    -- the select * is to avoid any column name conflicts
+    -- limit 1, just try on first record
+    -- if the where clasuse is ill formed it will be caught in the exception
+    sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+    EXECUTE sql into dummyRec;
+    -- end
+
+    -- if above where clasue works this one should work
+    -- any error will be caught by the exception also
+    sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NULL or '||
+		sourcename||' is null or '||targetname||' is null)=true '||rows_where;
+    raise debug '%',sql;
+    EXECUTE SQL  into notincluded;
+    EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+
+
+
+  BEGIN
+     raise DEBUG 'initializing %',vertname;
+       execute 'select * from _pgr_getTableName('||quote_literal(vertname)||',0)' into naming;
+       IF sname=naming.sname  AND vname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+       ELSE
+           set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+       END IF;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+                quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+       execute 'CREATE INDEX '||quote_ident(vname||'_the_geom_idx')||' ON '||_pgr_quote_ident(vertname)||'  USING GIST (the_geom)';
+       execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+       EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Initializing vertex table';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise notice 'Populating %, please wait...',vertname;
+       sql= 'with
+		lines as ((select distinct '||sourcename||' as id, _pgr_startpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+		                  ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||')
+			union (select distinct '||targetname||' as id,_pgr_endpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+			          ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||'))
+		,numberedLines as (select row_number() OVER (ORDER BY id) AS i,* from lines )
+		,maxid as (select id,max(i) as maxi from numberedLines group by id)
+		insert into '||_pgr_quote_ident(vertname)||'(id,the_geom)  (select id,the_geom  from numberedLines join maxid using(id) where i=maxi order by id)';
+       RAISE debug '%',sql;
+       execute sql;
+       GET DIAGNOSTICS totcount = ROW_COUNT;
+
+       sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' a, '||_pgr_quote_ident(vertname)||' b
+            where '||sourcename||'=b.id and '|| targetname||' in (select id from '||_pgr_quote_ident(vertname)||')';
+       RAISE debug '%',sql;
+       execute sql into included;
+
+
+
+       execute 'select max(id) from '||_pgr_quote_ident(vertname) into ecnt;
+       execute 'SELECT setval('||quote_literal(vertname||'_id_seq')||','||coalesce(ecnt,1)||' , false)';
+       raise notice '  ----->   VERTICES TABLE CREATED WITH  % VERTICES', totcount;
+       raise notice '                                       FOR   %  EDGES', included+notincluded;
+       RAISE NOTICE '  Edges with NULL geometry,source or target: %',notincluded;
+       RAISE NOTICE '                            Edges processed: %',included;
+       Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname),_pgr_quote_ident(vertname);
+       raise notice '----------------------------------------------';
+    END;
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+COMMENT ON FUNCTION pgr_createVerticesTable(text,text,text,text,text)
+IS 'args: edge_table, the_geom:=''the_geom'',source:=''source'', target:=''target'' rows_where:=''true'' - creates a vertices table based on the source and target identifiers for selected rows';
+
+
+CREATE OR REPLACE FUNCTION pgr_nodeNetwork(edge_table text, tolerance double precision,
+			id text default 'id', the_geom text default 'the_geom', table_ending text default 'noded',
+            rows_where text DEFAULT ''::text, outall boolean DEFAULT false) RETURNS text AS
+$BODY$
+DECLARE
+	
+	p_num int := 0;
+	p_ret text := '';
+    pgis_ver_old boolean := _pgr_versionless(postgis_lib_version(), '2.1.0.0');
+    vst_line_substring text;
+    vst_line_locate_point text;
+    intab text;
+    outtab text;
+    n_pkey text;
+    n_geom text;
+    naming record;
+    sname text;
+    tname text;
+    outname text;
+    srid integer;
+    sridinfo record;
+    splits bigint;
+    touched bigint;
+    untouched bigint;
+    geomtype text;
+    debuglevel text;
+    rows_where text;
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_nodeNetwork(''%'', %, ''%'', ''%'', ''%'', ''%'',  %)',
+    edge_table, tolerance, id,  the_geom, table_ending, rows_where, outall;
+  raise notice 'Performing checks, please wait .....';
+  execute 'show client_min_messages' into debuglevel;
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',0)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+	RAISE NOTICE '-------> % not found',edge_table;
+        RETURN 'FAIL';
+    ELSE
+	RAISE DEBUG '  -----> OK';
+    END IF;
+
+    intab=sname||'.'||tname;
+    outname=tname||'_'||table_ending;
+    outtab= sname||'.'||outname;
+    rows_where = CASE WHEN length(rows_where) > 2 and not outall THEN ' AND (' || rows_where || ')' ELSE '' END;
+    rows_where = CASE WHEN length(rows_where) > 2 THEN ' WHERE (' || rows_where || ')' ELSE '' END;
+  END;
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',id,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(id)||')' INTO n_pkey;
+       IF n_pkey is NULL then
+          raise notice  'ERROR: id column "%"  not found in %',id,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',the_geom,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(the_geom)||')' INTO n_geom;
+       IF n_geom is NULL then
+          raise notice  'ERROR: the_geom  column "%"  not found in %',the_geom,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+  IF n_pkey=n_geom THEN
+	raise notice  'ERROR: id and the_geom columns have the same name "%" in %',n_pkey,intab;
+        RETURN 'FAIL';
+  END IF;
+
+  BEGIN
+       	raise DEBUG 'Checking the SRID of the geometry "%"', n_geom;
+       	EXECUTE 'SELECT ST_SRID(' || quote_ident(n_geom) || ') as srid '
+          		|| ' FROM ' || _pgr_quote_ident(intab)
+          		|| ' WHERE ' || quote_ident(n_geom)
+          		|| ' IS NOT NULL LIMIT 1' INTO sridinfo;
+       	IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
+        	RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           	RETURN 'FAIL';
+       	END IF;
+       	srid := sridinfo.srid;
+       	raise DEBUG '  -----> SRID found %',srid;
+       	EXCEPTION WHEN OTHERS THEN
+           		RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           		RETURN 'FAIL';
+  END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_pkey,intab;
+      if (_pgr_isColumnIndexed(intab,n_pkey)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding  index "%_%_idx".',n_pkey,intab;
+
+	set client_min_messages  to warning;
+        execute 'create  index '||tname||'_'||n_pkey||'_idx on '||_pgr_quote_ident(intab)||' using btree('||quote_ident(n_pkey)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_geom,intab;
+      if (_pgr_iscolumnindexed(intab,n_geom)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding unique index "%_%_gidx".',intab,n_geom;
+	set client_min_messages  to warning;
+        execute 'CREATE INDEX '
+            || quote_ident(tname || '_' || n_geom || '_gidx' )
+            || ' ON ' || _pgr_quote_ident(intab)
+            || ' USING gist (' || quote_ident(n_geom) || ')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+---------------
+    BEGIN
+       raise DEBUG 'initializing %',outtab;
+       execute 'select * from _pgr_getTableName('||quote_literal(outtab)||',0)' into naming;
+       IF sname=naming.sname  AND outname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(outtab)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(outname)||','||quote_literal(n_geom)||')';
+       ELSE
+	   set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(outtab)||' (id bigserial PRIMARY KEY,old_id integer,sub_id integer,
+								source bigint,target bigint)';
+       END IF;
+       execute 'select geometrytype('||quote_ident(n_geom)||') from  '||_pgr_quote_ident(intab)||' limit 1' into geomtype;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(outname)||','||
+                quote_literal(n_geom)||','|| srid||', '||quote_literal(geomtype)||', 2)';
+       execute 'CREATE INDEX '||quote_ident(outname||'_'||n_geom||'_idx')||' ON '||_pgr_quote_ident(outtab)||'  USING GIST ('||quote_ident(n_geom)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+    END;
+----------------
+
+
+  raise notice 'Processing, please wait .....';
+
+
+    if pgis_ver_old then
+        vst_line_substring    := 'st_line_substring';
+        vst_line_locate_point := 'st_line_locate_point';
+    else
+        vst_line_substring    := 'st_linesubstring';
+        vst_line_locate_point := 'st_linelocatepoint';
+    end if;
+
+--    -- First creates temp table with intersection points
+    p_ret = 'create temp table intergeom on commit drop as (
+        select l1.' || quote_ident(n_pkey) || ' as l1id,
+               l2.' || quote_ident(n_pkey) || ' as l2id,
+	       l1.' || quote_ident(n_geom) || ' as line,
+	       _pgr_startpoint(l2.' || quote_ident(n_geom) || ') as source,
+	       _pgr_endpoint(l2.' || quote_ident(n_geom) || ') as target,
+               st_intersection(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ') as geom
+        from (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l1
+             join (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l2
+             on (st_dwithin(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ', ' || tolerance || '))'||
+        'where l1.' || quote_ident(n_pkey) || ' <> l2.' || quote_ident(n_pkey)||' and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false  )';
+    raise debug '%',p_ret;
+    EXECUTE p_ret;
+
+    -- second temp table with locus (index of intersection point on the line)
+    -- to avoid updating the previous table
+    -- we keep only intersection points occurring onto the line, not at one of its ends
+--    drop table if exists inter_loc;
+
+--HAD TO CHANGE THIS QUERY
+-- p_ret= 'create temp table inter_loc on commit drop as (
+--        select l1id, l2id, ' || vst_line_locate_point || '(line,point) as locus from (
+--        select DISTINCT l1id, l2id, line, (ST_DumpPoints(geom)).geom as point from intergeom) as foo
+--        where ' || vst_line_locate_point || '(line,point)<>0 and ' || vst_line_locate_point || '(line,point)<>1)';
+    p_ret= 'create temp table inter_loc on commit drop as ( select * from (
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,source) as locus from intergeom)
+         union
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,target) as locus from intergeom)) as foo
+        where locus<>0 and locus<>1)';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+
+    -- index on l1id
+    create index inter_loc_id_idx on inter_loc(l1id);
+
+    -- Then computes the intersection on the lines subset, which is much smaller than full set
+    -- as there are very few intersection points
+
+--- outab needs to be formally created with id, old_id, subid,the_geom, source,target
+---  so it can be inmediatly be used with createTopology
+
+--   EXECUTE 'drop table if exists ' || _pgr_quote_ident(outtab);
+--   EXECUTE 'create table ' || _pgr_quote_ident(outtab) || ' as
+     P_RET = 'insert into '||_pgr_quote_ident(outtab)||' (old_id,sub_id,'||quote_ident(n_geom)||') (  with cut_locations as (
+           select l1id as lid, locus
+           from inter_loc
+           -- then generates start and end locus for each line that have to be cut buy a location point
+           UNION ALL
+           select i.l1id  as lid, 0 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           UNION ALL
+           select i.l1id  as lid, 1 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           order by lid, locus
+       ),
+       -- we generate a row_number index column for each input line
+       -- to be able to self-join the table to cut a line between two consecutive locations
+       loc_with_idx as (
+           select lid, locus, row_number() over (partition by lid order by locus) as idx
+           from cut_locations
+       )
+       -- finally, each original line is cut with consecutive locations using linear referencing functions
+       select l.' || quote_ident(n_pkey) || ', loc1.idx as sub_id, ' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus) as ' || quote_ident(n_geom) || '
+       from loc_with_idx loc1 join loc_with_idx loc2 using (lid) join ' || _pgr_quote_ident(intab) || ' l on (l.' || quote_ident(n_pkey) || ' = loc1.lid)
+       where loc2.idx = loc1.idx+1
+           -- keeps only linestring geometries
+           and geometryType(' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus)) = ''LINESTRING'') ';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+	GET DIAGNOSTICS splits = ROW_COUNT;
+        execute 'with diff as (select distinct old_id from '||_pgr_quote_ident(outtab)||' )
+                 select count(*) from diff' into touched;
+	-- here, it misses all original line that did not need to be cut by intersection points: these lines
+	-- are already clean
+	-- inserts them in the final result: all lines which gid is not in the res table.
+	EXECUTE 'insert into ' || _pgr_quote_ident(outtab) || ' (old_id , sub_id, ' || quote_ident(n_geom) || ')
+                ( with used as (select distinct old_id from '|| _pgr_quote_ident(outtab)||')
+		select ' ||  quote_ident(n_pkey) || ', 1 as sub_id, ' ||  quote_ident(n_geom) ||
+		' from '|| _pgr_quote_ident(intab) ||' where  '||quote_ident(n_pkey)||' not in (select * from used)' || rows_where || ')';
+	GET DIAGNOSTICS untouched = ROW_COUNT;
+
+	raise NOTICE '  Split Edges: %', touched;
+	raise NOTICE ' Untouched Edges: %', untouched;
+	raise NOTICE '     Total original Edges: %', touched+untouched;
+        RAISE NOTICE ' Edges generated: %', splits;
+	raise NOTICE ' Untouched Edges: %',untouched;
+	raise NOTICE '       Total New segments: %', splits+untouched;
+        RAISE NOTICE ' New Table: %', outtab;
+        RAISE NOTICE '----------------------------------';
+
+    drop table  if exists intergeom;
+    drop table if exists inter_loc;
+    RETURN 'OK';
+END;
+$BODY$
+    LANGUAGE 'plpgsql' VOLATILE STRICT COST 100;
+
+
+COMMENT ON FUNCTION pgr_nodeNetwork(text, double precision, text, text, text, text, boolean )
+ IS  'edge_table, tolerance, id:=''id'', the_geom:=''the_geom'', table_ending:=''noded'' ';
+
+
+CREATE OR REPLACE FUNCTION pgr_labelGraph(
+                edge_table text,
+                id text default 'id',
+                source text default 'source',
+                target text default 'target',
+                subgraph text default 'subgraph',
+                rows_where text default 'true'
+        )
+        RETURNS character varying AS
+$BODY$
+
+DECLARE
+        naming record;
+        schema_name text;
+        table_name text;
+        garbage text;
+        incre integer;
+        table_schema_name text;
+        query text;
+        ecnt integer;
+        sql1 text;
+        rec1 record;
+        sql2 text;
+        rec2 record;
+        rec_count record;
+        rec_single record;
+        graph_id integer;
+        gids int [];
+
+BEGIN
+        raise notice 'Processing:';
+        raise notice 'pgr_brokenGraph(''%'',''%'',''%'',''%'',''%'',''%'')', edge_table,id,source,target,subgraph,rows_where;
+        raise notice 'Performing initial checks, please hold on ...';
+
+        Raise Notice 'Starting - Checking table ...';
+        BEGIN
+                raise debug 'Checking % table existance', edge_table;
+                execute 'select * from pgr_getTableName('|| quote_literal(edge_table) ||')' into naming;
+                schema_name = naming.sname;
+                table_name = naming.tname;
+                table_schema_name = schema_name||'.'||table_name;
+                IF schema_name is null then
+                        raise notice 'no schema';
+                        return 'FAIL';
+                else
+                        if table_name is null then
+                                raise notice 'no table';
+                                return 'FAIL';
+                        end if;
+                end if;
+        END;
+        Raise Notice 'Ending - Checking table';
+
+        Raise Notice 'Starting - Checking columns';
+        BEGIN
+                raise debug 'Checking exitance of necessary columns inside % table', edge_table;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(id) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no id column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(source) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no source column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(target) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no target column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(subgraph) ||')' into naming;
+                if naming.pgr_iscolumnintable = 't' then
+                        raise notice 'subgraph column already in the table';
+                        return 'FAIL';
+                end if;
+        END;
+        Raise Notice 'Ending - Checking columns';
+
+        Raise Notice 'Starting - Checking rows_where condition';
+        BEGIN
+                raise debug 'Checking rows_where condition';
+                query='select count(*) from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where;
+                execute query into ecnt;
+                raise debug '-->Rows where condition: OK';
+                raise debug '    --> OK';
+                EXCEPTION WHEN OTHERS THEN
+                        raise notice 'Got %', SQLERRM;
+                        Raise notice 'ERROR: Condition is not correct. Please execute the following query to test your condition';
+                        Raise notice '%', query;
+                        return 'FAIL';
+        END;
+        Raise Notice 'Ending - Checking rows_where condition';
+
+        garbage := 'garbage001';
+        incre := 1;
+        Raise Notice 'Starting - Checking temporary column';
+        Begin
+                raise debug 'Checking Checking temporary columns existance';
+
+                While True
+                        Loop
+                                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(garbage) ||')' into naming;
+                                If naming.pgr_iscolumnintable = 't' THEN
+                                        incre := incre + 1;
+                                        garbage := 'garbage00'||incre||'';
+                                ELSE
+                                        EXIT;
+                                END IF;
+                        End Loop;
+        End;
+        Raise Notice 'Ending - Checking temporary column';
+
+        Raise Notice 'Starting - Calculating subgraphs';
+        BEGIN
+                --------- Add necessary columns ----------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(subgraph) || ' INTEGER DEFAULT -1';
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(garbage) || ' INTEGER DEFAULT 0';
+                graph_id := 1;
+
+                EXECUTE 'select count(*) as count from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where ||'' into rec_count;
+                if rec_count.count = 0 then
+                        RETURN 'rows_where condition generated 0 rows';
+                end if;
+
+                WHILE TRUE
+                        LOOP
+                                ---------- Assign the very first -1 row graph_id ----------
+                                EXECUTE 'SELECT ' || pgr_quote_ident(id) || ' AS gid FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1 LIMIT 1' INTO rec_single;
+                                EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec_single.gid || '';
+
+                                --------- Search other rows with that particular graph_id -----------
+                                WHILE TRUE
+                                        LOOP
+                                                EXECUTE 'SELECT COUNT(*) FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0' into rec_count;
+                                                ----------- The following if else will check those rows which already have entertained ------------
+                                                IF (rec_count.count > 0) THEN
+                                                        sql1 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0';
+                                                        FOR rec1 IN EXECUTE sql1
+                                                                LOOP
+                                                                        sql2 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| pgr_quote_ident(source) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(source) ||' = '|| rec1.target ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.target ||'';
+                                                                        FOR rec2 IN EXECUTE sql2
+                                                                                LOOP
+                                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec2.gid || '';
+                                                                                END LOOP;
+                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(garbage) || ' = 1 WHERE ' || pgr_quote_ident(id) || ' = ' || rec1.gid || '';
+                                                                END LOOP;
+                                                ELSE
+                                                        EXIT;
+                                                END IF;
+                                        END LOOP;
+
+                                ------ Following is to exit the while loop. 0 means no more -1 id.
+                                EXECUTE 'SELECT COUNT(*) AS count FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1' INTO rec_count;
+                                If (rec_count.count = 0) THEN
+                                        EXIT;
+                                ELSE
+                                        graph_id := graph_id + 1;
+                                END IF;
+                        END LOOP;
+
+                ----------- Drop garbage column ------------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' DROP COLUMN ' || pgr_quote_ident(garbage) ||'';
+                Raise Notice 'Successfully complicated calculating subgraphs';
+        END;
+        Raise Notice 'Ending - Calculating subgraphs';
+
+        RETURN 'OK';
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCostMatrix(
+    edges_sql TEXT,
+    points_sql TEXT,
+    pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_pid, a.end_pid, a.agg_cost
+        FROM _pgr_withPoints($1, $2, $3, $3, $4,  $5, TRUE, TRUE) AS a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+--  DIJKSTRA DMatrix
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCostMatrix(edges_sql TEXT, vids ANYARRAY, directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2, $2, $3, true) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+
+--  BIDIRECTIONAL DIJKSTRA Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCostMatrix(edges_sql TEXT, vids ANYARRAY, directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_astarCostMatrix(
+    edges_sql TEXT, -- XY edges sql
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2, $2, $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+--  BIDIRECTIONAL ASTAR Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdAstarCostMatrix(
+    edges_sql TEXT,
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_bdAstarCostMatrix(TEXT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCostMatrix';
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_getTableName(IN tab text,OUT sname text,OUT tname text)
+RETURNS RECORD AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getTableName: This function will no longer be soported';
+    select * from _pgr_getTableName(tab, 0, 'pgr_getTableName') into sname,tname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_getColumnName(tab text, col text)
+RETURNS text AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getColumnName: This function will no longer be soported';
+    return _pgr_getColumnName(tab,col, 0, 'pgr_getColumnName');
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    select * from _pgr_getColumnName(tab,col,0, 'pgr_isColumnInTable') into cname;
+    return  cname IS not NULL;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnIndexed(tab text, col text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnIndexed: This function will no longer be soported';
+    return  _pgr_isColumnIndexed(tab,col);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+create or replace function pgr_quote_ident(idname text)
+returns text as
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    return  _pgr_quote_ident(idname);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_versionless(v1 text, v2 text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_versionless: This function will no longer be soported';
+    return  _pgr_versionless(v1,v2);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+create or replace function pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_startPoint: This function will no longer be soported';
+    return  _pgr_startPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_endPoint: This function will no longer be soported';
+    return  _pgr_endPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_apspJohnson(edges_sql text)
+    RETURNS SETOF pgr_costResult AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function: Use pgr_johnson instead';
+      has_reverse =_pgr_parameter_check('johnson', edges_sql, false);
+      sql = edges_sql;
+      IF (has_reverse) THEN
+           RAISE NOTICE 'reverse_cost column found, removing.';
+           sql = 'SELECT source, target, cost FROM (' || edges_sql || ') a';
+      END IF;
+
+      RETURN query
+         SELECT (row_number() over () - 1)::integer as seq, start_vid::integer AS id1, end_vid::integer AS id2, agg_cost AS cost
+         FROM  pgr_johnson(sql, TRUE);
+  END
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_apspWarshall(edges_sql text, directed boolean, has_rcost boolean)
+    RETURNS SETOF pgr_costResult AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function: Use pgr_floydWarshall instead';
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+      sql := edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_reverse) THEN
+           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+         ELSE raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+         END IF;
+      END IF;
+
+      RETURN query
+         SELECT (row_number() over () -1)::integer as seq, start_vid::integer AS id1, end_vid::integer AS id2, agg_cost AS cost
+         FROM  pgr_floydWarshall(sql, directed);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_astar(edges_sql TEXT, source_id INTEGER, target_id INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated signature pgr_astar(text, integer, integer, boolean, boolean)';
+    has_reverse =_pgr_parameter_check('astar', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost, x1,y1, x2, y2 FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+    FROM pgr_astar(sql, ARRAY[$2], ARRAY[$3], directed);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    sql TEXT,
+    source_vid INTEGER,
+    target_vid INTEGER,
+    directed BOOLEAN,
+    has_reverse_cost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdAstar';
+    has_reverse =_pgr_parameter_check('astar', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdAstar(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(edges_sql TEXT, start_vid INTEGER, end_vid INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdDijkstra';
+    has_reverse =_pgr_parameter_check('dijkstra', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdDijkstra(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstraPath(
+    sql text,
+    source INTEGER,
+    targets INTEGER ARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+    RETURNS SETOF pgr_costResult3 AS
+    $BODY$
+    DECLARE
+    has_reverse BOOLEAN;
+    new_sql TEXT;
+    result pgr_costResult3;
+    tmp pgr_costResult3;
+    sseq INTEGER;
+    i INTEGER;
+    BEGIN
+        RAISE NOTICE 'Deprecated function: Use pgr_dijkstra instead.';
+        has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+        new_sql = sql;
+        IF (array_ndims(targets) != 1) THEN
+            raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+
+        IF (has_reverse != has_rcost) THEN
+            IF (has_reverse) THEN
+                new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+            ELSE
+                raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+                USING ERRCODE = 'XX000';
+            END IF;
+        END IF;
+        SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+        sseq = 0; i = 1;
+        FOR result IN
+            SELECT seq, a.end_vid::INTEGER AS id1, a.node::INTEGER AS i2, a.edge::INTEGER AS id3, cost
+            FROM pgr_dijkstra(new_sql, source, targets, directed) a ORDER BY a.end_vid, seq LOOP
+            WHILE (result.id1 != targets[i]) LOOP
+                tmp.seq = sseq;
+                tmp.id1 = targets[i];
+                IF (targets[i] = source) THEN
+                    tmp.id2 = source;
+                    tmp.cost =0;
+                ELSE
+                    tmp.id2 = 0;
+                    tmp.cost = -1;
+                END IF;
+                tmp.id3 = -1;
+                RETURN next tmp;
+                i = i + 1;
+                sseq = sseq + 1;
+            END LOOP;
+        IF (result.id1 = targets[i] AND result.id3 != -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+        IF (result.id1 = targets[i] AND result.id3 = -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.id2 = source;
+            tmp.cost = 0;
+        ELSE
+            tmp.id2 = 0;
+            tmp.cost = -1;
+        END IF;
+        tmp.id3 = -1;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstracost(
+    sql text,
+    source INTEGER,
+    targets INTEGER array,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+result pgr_costResult;
+tmp pgr_costResult;
+sseq INTEGER;
+i INTEGER;
+BEGIN
+    RAISE NOTICE 'Deprecated function. Use pgr_dijkstraCost instead.';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    new_sql = sql;
+    IF (array_ndims(targets) != 1) THEN
+        raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+        USING ERRCODE = 'XX000';
+    END IF;
+
+
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+    sseq = 0; i = 1;
+    FOR result IN
+        SELECT ((row_number() over()) -1)::INTEGER, a.start_vid::INTEGER, a.end_vid::INTEGER, agg_cost
+        FROM pgr_dijkstraCost(new_sql, source, targets, directed) a ORDER BY end_vid LOOP
+        WHILE (result.id2 != targets[i]) LOOP
+            tmp.seq = sseq;
+            tmp.id1 = source;
+            tmp.id2 = targets[i];
+            IF (targets[i] = source) THEN
+                tmp.cost = 0;
+            ELSE
+                tmp.cost = -1;
+            END IF;
+            RETURN next tmp;
+            i = i + 1;
+            sseq = sseq + 1;
+        END LOOP;
+        IF (result.id2 = targets[i]) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = source;
+        tmp.id2 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.cost = 0;
+        ELSE
+            tmp.cost = -1;
+        END IF;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+create or replace function pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    returns integer as
+$body$
+
+declare
+    rr record;
+    pct float;
+    debuglevel text;
+
+begin
+    -- find the closest edge within tol distance
+    execute 'select * from ' || _pgr_quote_ident(edges) ||
+            ' where st_dwithin(''' || pnt::text ||
+            '''::geometry, the_geom, ' || tol || ') order by st_distance(''' || pnt::text ||
+            '''::geometry, the_geom) asc limit 1' into rr;
+
+    if rr.the_geom is not null then
+        -- deal with MULTILINESTRINGS
+        if geometrytype(rr.the_geom)='MULTILINESTRING' THEN
+            rr.the_geom := ST_GeometryN(rr.the_geom, 1);
+        end if;
+
+        -- project the point onto the linestring
+        execute 'show client_min_messages' into debuglevel;
+        SET client_min_messages='ERROR';
+        pct := st_line_locate_point(rr.the_geom, pnt);
+        execute 'set client_min_messages  to '|| debuglevel;
+
+        -- return the node we are closer to
+        if pct < 0.5 then
+            return rr.source;
+        else
+            return rr.target;
+        end if;
+    else
+        -- return a failure to find an edge within tol distance
+        return -1;
+    end if;
+end;
+$body$
+  language plpgsql volatile
+  cost 5;
+
+
+----------------------------------------------------------------------------
+
+create or replace function pgr_flipedges(ga geometry[])
+    returns geometry[] as
+$body$
+
+declare
+    nn integer;
+    i integer;
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_flipEdges';
+    -- get the count of edges, and return if only one edge
+    nn := array_length(ga, 1);
+    if nn=1 then
+        return ga;
+    end if;
+
+    -- determine if first needs to be flipped
+    g := _pgr_startpoint(ga[1]);
+
+    -- if the start of the first is connected to the second then it needs to be flipped
+    if _pgr_startpoint(ga[2])=g or _pgr_endpoint(ga[2])=g then
+        ga[1] := st_reverse(ga[1]);
+    end if;
+    g := _pgr_endpoint(ga[1]);
+
+    -- now if  the end of the last edge matchs the end of the current edge we need to flip it
+    for i in 2 .. nn loop
+        if _pgr_endpoint(ga[i])=g then
+            ga[i] := st_reverse(ga[i]);
+        end if;
+        -- save the end of this edge into the last end for the next cycle
+        g := _pgr_endpoint(ga[i]);
+    end loop;
+
+    return ga;
+end;
+$body$
+    language plpgsql immutable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_texttopoints(pnts text, srid integer DEFAULT(4326))
+    returns geometry[] as
+$body$
+
+declare
+    a text[];
+    t text;
+    p geometry;
+    g geometry[];
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_textToPoints';
+    -- convert commas to space and split on ';'
+    a := string_to_array(replace(pnts, ',', ' '), ';');
+    -- convert each 'x y' into a point geometry and concattenate into a new array
+    for t in select unnest(a) loop
+        p := st_pointfromtext('POINT(' || t || ')', srid);
+        g := g || p;
+    end loop;
+
+    return g;
+end;
+$body$
+    language plpgsql immutable;
+
+-----------------------------------------------------------------------
+
+create or replace function pgr_pointstovids(pnts geometry[], edges text, tol float8 DEFAULT(0.01))
+    returns integer[] as
+$body$
+
+declare
+    v integer[];
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_pointsToVids';
+    -- cycle through each point and locate the nearest edge and vertex on that edge
+    for g in select unnest(pnts) loop
+        v := v || pgr_pointtoedgenode(edges, g, tol);
+    end loop;
+
+    return v;
+end;
+$body$
+    language plpgsql stable;
+
+
+create or replace function pgr_pointstodmatrix(pnts geometry[], mode integer default (0), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+
+declare
+    r record;
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_pointsToDMatrix';
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    -- create an id for each point in the array and unnest it into a table nodes in the with clause
+    for r in with nodes as (select row_number() over()::integer as id, p from (select unnest(pnts) as p) as foo)
+        -- compute a row of distances
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j,
+                case when mode=0
+                    then st_distance(a.p, b.p)
+                    else st_distance_sphere(a.p, b.p)
+                end as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i loop
+
+        -- you must concat an array[array[]] to make dmatrix[][]
+        -- concat the row of distances to the dmatrix
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+end;
+$body$
+    language plpgsql stable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_vidstodmatrix(IN vids integer[], IN pnts geometry[], IN edges text, tol float8 DEFAULT(0.1), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+
+declare
+    i integer;
+    j integer;
+    nn integer;
+    rr record;
+    bbox geometry;
+    t float8[];
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    -- check if the input arrays has any -1 values, maybe this whould be a raise exception
+    if vids @> ARRAY[-1] then
+    raise notice 'Some vids are undefined (-1)!';
+    dmatrix := null;
+    ids := null;
+    return;
+    end if;
+
+    ids := vids;
+
+    -- get the count of nodes
+    nn := array_length(vids,1);
+
+    -- zero out a dummy row
+    for i in 1 .. nn loop
+        t := t || 0.0::float8;
+    end loop;
+
+    -- using the dummy row, zero out the whole matrix
+    for i in 1 .. nn loop
+    dmatrix := dmatrix || ARRAY[t];
+    end loop;
+
+    for i in 1 .. nn-1 loop
+        j := i;
+        -- compute the bbox for the point needed for this row
+        select st_expand(st_collect(pnts[id]), tol) into bbox
+          from (select generate_series as id from generate_series(i, nn)) as foo;
+
+        -- compute kdijkstra() for this row
+        for rr in execute 'select * from pgr_dijkstracost($1, $2, $3, false)'
+                  using 'select id, source, target, cost from ' || edges ||
+                        ' where the_geom && ''' || bbox::text || '''::geometry'::text, vids[i], vids[i+1:nn] loop
+
+            -- TODO need to check that all node were reachable from source
+            -- I think unreachable paths between nodes returns cost=-1.0
+
+            -- populate the matrix with the cost values, remember this is symmetric
+            j := j + 1;
+            -- raise notice 'cost(%,%)=%', i, j, rr.agg_cost;
+            dmatrix[i][j] := rr.agg_cost;
+            dmatrix[j][i] := rr.agg_cost;
+        end loop;
+    end loop;
+
+end;
+$body$
+    language plpgsql stable cost 200;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_vidsToDMatrix(sql TEXT, vids  INTEGER[], dir BOOLEAN, has_rcost BOOLEAN, want_symmetric BOOLEAN)
+RETURNS float8[] AS
+$BODY$
+DECLARE
+directed BOOLEAN;
+has_reverse BOOLEAN;
+edges_sql TEXT;
+dmatrix_row float8[];
+dmatrix float8[];
+cell RECORD;
+unique_vids INTEGER[];
+total BIGINT;
+from_v BIGINT;
+to_v BIGINT;
+BEGIN
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql = sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    unique_vids :=  ARRAY(SELECT DISTINCT UNNEST(vids) ORDER BY 1);
+
+    IF want_symmetric THEN
+        directed = false;
+    ELSE
+        directed = dir;
+    END IF;
+
+    total := array_length(unique_vids, 1);
+
+    -- initializing dmatrix
+    FOR i in 1 .. total LOOP
+        dmatrix_row := dmatrix_row || '+Infinity'::float8;
+    END LOOP;
+    FOR i in 1 .. total LOOP
+    dmatrix := dmatrix || ARRAY[dmatrix_row];
+    dmatrix[i][i] = 0;
+    END LOOP;
+
+    CREATE TEMP TABLE __x___y____temp AS
+        WITH result AS
+            (SELECT unnest(unique_vids) AS vid)
+        SELECT row_number() OVER() AS idx, vid FROM result;
+
+    FOR cell IN SELECT * FROM pgr_dijkstraCostMatrix(sql, unique_vids, directed) LOOP
+        SELECT idx INTO from_v FROM __x___y____temp WHERE vid =  cell.start_vid;
+        SELECT idx INTO to_v FROM __x___y____temp WHERE vid =  cell.end_vid;
+
+        dmatrix[from_v][to_v] = cell.agg_cost;
+        dmatrix[to_v][from_v] = cell.agg_cost;
+    END LOOP;
+
+    DROP TABLE IF EXISTS __x___y____temp;
+    RETURN dmatrix;
+
+    EXCEPTION WHEN others THEN
+       DROP TABLE IF EXISTS __x___y____temp;
+       raise exception '% %', SQLERRM, SQLSTATE;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100;
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated function';
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_dijkstra(sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_dijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN) IS 'pgr_dijkstra(Deprecated signature)';
+
+
+
+
+
+-- OLD SIGNATURE
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(edges_sql text, source BIGINT, distance FLOAT, directed BOOLEAN, has_rcost BOOLEAN)
+  RETURNS SETOF pgr_costresult AS
+  $BODY$
+  DECLARE
+  has_reverse BOOLEAN;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function';
+
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, FALSE);
+
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_reverse) THEN
+             -- the user says it doesn't have reverse cost but its false
+             -- removing from query
+             RAISE NOTICE 'Contradiction found: has_rcost set to false but reverse_cost column found';
+             sql = 'SELECT id, source, target, cost, -1 as reverse_cost FROM (' || edges_sql || ') __q ';
+         ELSE
+             -- the user says it has reverse cost but its false
+             -- can't do anything
+             RAISE EXCEPTION 'has_rcost set to true but reverse_cost not found';
+         END IF;
+      END IF;
+
+      RETURN query SELECT seq - 1 AS seq, node::integer AS id1, edge::integer AS id2, agg_cost AS cost
+                FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maximumcardinalitymatching(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
+
+
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+--INTERNAL FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+
+------------------------
+-- deprecated signatures
+-----------------------
+
+COMMENT ON FUNCTION pgr_astar(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_astar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdAstar( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdAstar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdDijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdDijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_dijkstra(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_dijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_drivingDistance(text,  BIGINT,  FLOAT8,  BOOLEAN,  BOOLEAN)
+    IS 'pgr_drivingDistance(Deprecated signature)';
+
+------------------------
+-- Renamed /deprecated
+-----------------------
+COMMENT ON FUNCTION pgr_apspJohnson(TEXT)
+    IS 'pgr_apspJohnson(Renamed function) use pgr_Johnson instead';
+
+COMMENT ON FUNCTION pgr_apspWarshall(text, boolean, boolean)
+    IS 'pgr_apspWarshall(Renamed function) use pgr_floydWarshall instead';
+
+COMMENT ON FUNCTION pgr_kdijkstraPath( text, INTEGER, INTEGER ARRAY, BOOLEAN, BOOLEAN)
+    IS 'pgr_kdijkstraPath(Renamed function) use pgr_dijkstra instead';
+
+COMMENT ON FUNCTION pgr_kdijkstracost( text, INTEGER, INTEGER array, BOOLEAN, BOOLEAN)
+    IS 'pgr_kDijkstraCost(Renamed function) use pgr_dijkstraCost instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+
+
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+
+
+COMMENT ON FUNCTION pgr_gsoc_vrppdtw( text, INTEGER, INTEGER)
+    IS 'pgr_gsoc_vrppdtw(Renamed function) use pgr_pickDeliverEuclidean instead';
+
+------------------------
+-- Deprecated functions
+-----------------------
+
+COMMENT ON FUNCTION pgr_flipedges(geometry[])
+    IS 'pgr_flipedges(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_texttopoints(text,  integer)
+    IS 'pgr_texttopoints(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstovids(pnts geometry[], edges text, tol float8)
+    IS 'pgr_pointstovids(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    IS 'pgr_pointtoedgenode(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstodmatrix(geometry[], integer)
+    IS 'pgr_pointstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidstodmatrix( integer[],  geometry[],  text, float8)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidsToDMatrix(TEXT,  INTEGER[], BOOLEAN, BOOLEAN, BOOLEAN)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+
+
+
+COMMENT ON FUNCTION pgr_getTableName(IN tab text)
+    IS 'pgr_getTableName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_getColumnName(tab text, col text)
+    IS 'pgr_getColumnName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnInTable(tab text, col text)
+    IS 'pgr_isColumnInTable(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnIndexed(tab text, col text)
+    IS 'pgr_isColumnIndexed(Deprecated function)';
+
+
+COMMENT ON FUNCTION pgr_quote_ident(idname text)
+    IS 'pgr_quote_ident(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_versionless(v1 text, v2 text)
+    IS 'pgr_versionless(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_startPoint(g geometry)
+    IS 'pgr_startPoint(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_endPoint(g geometry)
+    IS 'pgr_endPoint(Deprecated function)';
+
+
diff --git a/tools/sql-update-scripts/pgrouting--2.2.3--2.5.0.sql b/tools/sql-update-scripts/pgrouting--2.2.3--2.5.0.sql
new file mode 100644
index 0000000..80d2078
--- /dev/null
+++ b/tools/sql-update-scripts/pgrouting--2.2.3--2.5.0.sql
@@ -0,0 +1,6527 @@
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-- pgRouting extension upgrade from 2.2.3 to 2.5.0
+-- generated by tools/build-extension-update-files
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+\echo Use "ALTER extension pgrouting update to '2.5.0'" to load this file. \quit
+
+
+-------------------------------------
+-- remove functions no longer in the 2.5.0 extension
+-------------------------------------
+
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,anyarray,anyarray,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,anyarray,anyarray,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,anyarray,bigint,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,anyarray,bigint,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,bigint,anyarray,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,bigint,anyarray,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,bigint,bigint,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,bigint,bigint,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_drivingdistance(text,anyarray,double precision,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_drivingdistance(text,anyarray,double precision,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_drivingdistance(text,bigint,double precision,boolean);
+DROP FUNCTION IF EXISTS _pgr_drivingdistance(text,bigint,double precision,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,anyarray,anyarray,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,anyarray,anyarray,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,anyarray,bigint,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,anyarray,bigint,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,bigint,anyarray,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,bigint,anyarray,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,bigint,bigint,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,bigint,bigint,boolean,character,boolean,boolean);
+
+
+------------------------------------------
+--    New functions:  2.0
+-- Signature change:  2.4
+--       Deprecated:  2.4
+------------------------------------------
+-- pgr_bddijkstra
+-- 2.2.3: {      sql, source_vid, target_vid, directed, has_reverse_cost}   
+-- 2.5.0: {edges_sql,  start_vid,    end_vid, directed, has_rcost}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vid","end_vid","directed","has_rcost"}'
+WHERE proname = 'pgr_bddijkstra'
+    AND proargnames = '{"sql","source_vid","target_vid","directed","has_reverse_cost"}';
+
+
+------------------------------------------
+--   New function: 2.1
+-- (types) change: 2.3
+------------------------------------------
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_gsoc_vrppdtw(text,integer,integer);
+DROP FUNCTION IF EXISTS pgr_gsoc_vrppdtw(text,integer,integer);
+
+
+
+
+------------------------------------------
+-- New functions on 2.0
+-- Signature change on 2.3
+-- Deprecated on 2.4
+------------------------------------------
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_astar(text,integer,integer,boolean,boolean);
+DROP FUNCTION IF EXISTS pgr_astar(text,integer,integer,boolean,boolean);
+
+
+
+
+------------------------------------------
+--       New functions:  2.1
+--    Signature change:  2.4
+------------------------------------------
+-- 2.2.3: {edges_sql,start_v,  distance,directed,seq,node,edge,cost,agg_cost}
+-- 2.5.0: {edges_sql,start_vid,distance,directed,seq,node,edge,cost,agg_cost}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vid","distance","directed","seq","node","edge","cost","agg_cost"}'
+WHERE proname = 'pgr_drivingdistance'
+    AND proargnames = '{"edges_sql","start_v","distance","directed","seq","node","edge","cost","agg_cost"}';
+
+
+------------------------------------------
+--       New functions:  2.1
+--    Signature change:  2.4
+------------------------------------------
+-- 2.2.3: {sql,      start_v,   distance,directed,equicost,seq,from_v,node,edge,cost,agg_cost}
+-- 2.5.0: {edges_sql,start_vids,distance,directed,equicost,seq,from_v,node,edge,cost,agg_cost}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vids","distance","directed","equicost","seq","from_v","node","edge","cost","agg_cost"}'
+WHERE proname = 'pgr_drivingdistance'
+    AND proargnames = '{"sql","start_v","distance","directed","equicost","seq","from_v","node","edge","cost","agg_cost"}';
+
+
+
+
+
+
+
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+--- pgRouting provides geospatial routing functionality.
+--- http://pgrouting.org
+--- copyright
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+---
+--- This is free software; you can redistribute and/or modify it:
+--- the terms of the GNU General Public Licence. See the COPYING file.
+--- the terms of the MIT-X Licence. See the COPYING file.
+---
+--- The following functions have MIT-X licence:
+---     pgr_version()
+---     pgr_tsp(matrix float8[][], startpt integer, endpt integer DEFAULT -1, OUT seq integer, OUT id integer)
+---     _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+---     pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
+---
+---
+--- All other functions are under GNU General Public Licence.
+---
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+--
+-- WARNING: Any change in this file must be evaluated for compatibility.
+--          Changes cleanly handled by postgis_upgrade.sql are fine,
+--          other changes will require a bump in Major version.
+--          Currently only function replaceble by CREATE OR REPLACE
+--          are cleanly handled.
+--
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+
+--  pgRouting 2.0 types
+
+
+
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_version()
+RETURNS TABLE(
+        "version" varchar,
+        tag varchar,
+        hash varchar,
+        branch varchar,
+        boost varchar
+    ) AS
+$BODY$
+    SELECT '2.5.0'::varchar AS version,
+        'v2.5.0'::varchar AS tag,
+        ''::varchar AS hash,
+        ''::varchar AS branch,
+        '1.54.0'::varchar AS boost;
+$BODY$
+LANGUAGE sql IMMUTABLE;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getTableName(IN tab text, IN reportErrs int default 0, IN fnName text default '_pgr_getTableName', OUT sname text,OUT tname text)
+  RETURNS RECORD AS
+$$
+DECLARE
+        naming record;
+        i integer;
+        query text;
+        sn text; -- schema name
+        tn text; -- table name
+        ttype text; --table type for future use
+        err boolean;
+        debuglevel text;
+        var_types text[] = ARRAY['BASE TABLE', 'VIEW'];
+BEGIN
+
+    execute 'show client_min_messages' into debuglevel;
+
+
+    perform _pgr_msg( 0, fnName, 'Checking table ' || tab || ' exists');
+    --RAISE DEBUG 'Checking % exists',tab;
+
+    i := strpos(tab,'.');
+    IF (i <> 0) THEN
+        sn := split_part(tab, '.',1);
+        tn := split_part(tab, '.',2);
+    ELSE
+        sn := current_schema;
+        tn := tab;
+    END IF;
+
+
+   SELECT schema_name INTO sname
+   FROM information_schema.schemata WHERE schema_name = sn;
+
+    IF sname IS NOT NULL THEN -- found schema (as is)
+       SELECT table_name, table_type INTO tname, ttype
+       FROM information_schema.tables
+       WHERE
+                table_type = ANY(var_types) and
+                table_schema = sname and
+                table_name = tn ;
+        IF tname is NULL THEN
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  = ANY(var_types) and
+                table_schema = sname and
+                table_name = lower(tn) ORDER BY table_name;
+        END IF;
+    END IF;
+    IF sname is NULL or tname is NULL THEN --schema not found or table not found
+        SELECT schema_name INTO sname
+        FROM information_schema.schemata
+        WHERE schema_name = lower(sn) ;
+
+        IF sname IS NOT NULL THEN -- found schema (with lower caps)
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  =  ANY(var_types) and
+                table_schema = sname and
+                table_name= tn ;
+
+           IF tname IS NULL THEN
+                SELECT table_name, table_type INTO tname, ttype
+                FROM information_schema.tables
+                WHERE
+                    table_type  =  ANY(var_types) and
+                    table_schema = sname and
+                    table_name= lower(tn) ;
+           END IF;
+        END IF;
+    END IF;
+   err = (sname IS NULL OR tname IS NULL);
+   perform _pgr_onError(err, reportErrs, fnName, 'Table ' || tab ||' not found',' Check your table name', 'Table '|| tab || ' found');
+
+END;
+$$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(sname text, tname text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(col) into cname;
+
+    IF cname is null  THEN
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(lower(col))  into cname;
+    END if;
+
+    err = cname is null;
+
+    perform _pgr_onError(err, reportErrs, fnName,  'Column '|| col ||' not found', ' Check your column name','Column '|| col || ' found');
+    RETURN cname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(tab text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+
+    select * into cname from _pgr_getColumnName(sname,tname,col,reportErrs, fnName);
+    RETURN cname;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    select * from _pgr_getColumnName(tab,col,0, '_pgr_isColumnInTable') into cname;
+    return cname is not null;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(sname text, tname text, cname text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    pkey text;
+BEGIN
+    SELECT
+          pg_attribute.attname into pkey
+         --  format_type(pg_attribute.atttypid, pg_attribute.atttypmod)
+          FROM pg_index, pg_class, pg_attribute
+          WHERE
+                  pg_class.oid = _pgr_quote_ident(sname||'.'||tname)::regclass AND
+                  indrelid = pg_class.oid AND
+                  pg_attribute.attrelid = pg_class.oid AND
+                  pg_attribute.attnum = any(pg_index.indkey)
+                  AND indisprimary;
+
+    IF pkey=cname then
+          RETURN TRUE;
+    END IF;
+
+    SELECT a.index_name,
+           b.attname,
+           b.attnum,
+           a.indisunique,
+           a.indisprimary
+      INTO rec
+      FROM ( SELECT a.indrelid,
+                    a.indisunique,
+                    a.indisprimary,
+                    c.relname index_name,
+                    unnest(a.indkey) index_num
+               FROM pg_index a,
+                    pg_class b,
+                    pg_class c,
+                    pg_namespace d
+              WHERE b.relname=tname
+                AND b.relnamespace=d.oid
+                AND d.nspname=sname
+                AND b.oid=a.indrelid
+                AND a.indexrelid=c.oid
+           ) a,
+           pg_attribute b
+     WHERE a.indrelid = b.attrelid
+       AND a.index_num = b.attnum
+       AND b.attname = cname
+  ORDER BY a.index_name,
+           a.index_num;
+
+  RETURN FOUND;
+  EXCEPTION WHEN OTHERS THEN
+    perform _pgr_onError( true, reportErrs, fnName,
+    'Error when checking for the postgres system attributes', SQLERR);
+    RETURN FALSE;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(tab text, col text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    sname text;
+    tname text;
+    cname text;
+    pkey text;
+    value boolean;
+BEGIN
+    SELECT * into naming FROM _pgr_getTableName(tab, 0, fnName);
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    SELECT * into cname from _pgr_getColumnName(sname, tname, col, 0, fnName) ;
+    IF cname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    select * into value  from _pgr_isColumnIndexed(sname, tname, cname, reportErrs, fnName);
+    return value;
+END
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+create or replace function _pgr_quote_ident(idname text)
+    returns text as
+$body$
+declare
+    t text[];
+    pgver text;
+
+begin
+    pgver := regexp_replace(version(), E'^PostgreSQL ([^ ]+)[ ,].*$', E'\\1');
+
+    if _pgr_versionless(pgver, '9.2') then
+        select into t array_agg(quote_ident(term)) from
+            (select nullif(unnest, '') as term
+               from unnest(string_to_array(idname, '.'))) as foo;
+    else
+        select into t array_agg(quote_ident(term)) from
+            (select unnest(string_to_array(idname, '.', '')) as term) as foo;
+    end if;
+    return array_to_string(t, '.');
+end;
+$body$
+language plpgsql immutable;
+
+
+CREATE OR REPLACE FUNCTION _pgr_versionless(v1 text, v2 text)
+  RETURNS boolean AS
+$BODY$
+
+
+declare
+    v1a text[];
+    v2a text[];
+    nv1 integer;
+    nv2 integer;
+    ne1 integer;
+    ne2 integer;
+
+begin
+    -- separate components into an array, like:
+    -- '2.1.0-beta3dev'  =>  {2,1,0,beta3dev}
+    v1a := regexp_matches(v1, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+    v2a := regexp_matches(v2, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+
+    -- convert modifiers to numbers for comparison
+    -- we do not delineate between alpha1, alpha2, alpha3, etc
+    ne1 := case when v1a[4] is null or v1a[4]='' then 5
+                when v1a[4] ilike 'rc%' then 4
+                when v1a[4] ilike 'beta%' then 3
+                when v1a[4] ilike 'alpha%' then 2
+                when v1a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    ne2 := case when v2a[4] is null or v2a[4]='' then 5
+                when v2a[4] ilike 'rc%' then 4
+                when v2a[4] ilike 'beta%' then 3
+                when v2a[4] ilike 'alpha%' then 2
+                when v2a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    nv1 := v1a[1]::integer * 10000 +
+           coalesce(v1a[2], '0')::integer * 1000 +
+           coalesce(v1a[3], '0')::integer *  100 + ne1;
+    nv2 := v2a[1]::integer * 10000 +
+           coalesce(v2a[2], '0')::integer * 1000 +
+           coalesce(v2a[3], '0')::integer *  100 + ne2;
+
+    --raise notice 'nv1: %, nv2: %, ne1: %, ne2: %', nv1, nv2, ne1, ne2;
+
+    return nv1 < nv2;
+end;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+create or replace function _pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_startpoint(st_geometryn(g,1));
+    else
+        return st_startpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function _pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_endpoint(st_geometryn(g,1));
+    else
+        return st_endpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_parameter_check(fn text, sql text, big boolean default false)
+  RETURNS bool AS
+  $BODY$
+
+  DECLARE
+  rec record;
+  rec1 record;
+  has_rcost boolean;
+  safesql text;
+  BEGIN
+    IF (big) THEN
+       RAISE EXCEPTION 'This function is for old style functions';
+    END IF;
+
+    -- checking query is executable
+    BEGIN
+      safesql =  'select * from ('||sql||' ) AS __a__ limit 1';
+      execute safesql into rec;
+      EXCEPTION
+        WHEN OTHERS THEN
+            RAISE EXCEPTION 'Could not execute query please verify syntax of: '
+              USING HINT = sql;
+    END;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('dijkstra','astar') THEN
+        BEGIN
+          execute 'select id,source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: id, source, target, cost';
+        END;
+        execute 'select pg_typeof(id)::text as id_type, pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.id_type in ('integer'::text))
+              AND (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Error, columns ''source'', ''target'' must be of type int4, ''cost'' must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    IF fn IN ('astar') THEN
+        BEGIN
+          execute 'select x1,y1,x2,y2  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: x1,y1, x2,y2';
+        END;
+        execute 'select pg_typeof(x1)::text as x1_type, pg_typeof(y1)::text as y1_type, pg_typeof(x2)::text as x2_type, pg_typeof(y2)::text as y2_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.x1_type = 'double precision'::text)
+              AND (rec.y1_type = 'double precision'::text)
+              AND (rec.x2_type = 'double precision'::text)
+              AND (rec.y2_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Columns: x1, y1, x2, y2 must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('johnson') THEN
+        BEGIN
+          execute 'select source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING HINT = 'Please veryfy the column names: id, source, target, cost',
+                         ERRCODE = 'XX000';
+        END;
+
+        execute 'select pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Support for source,target columns only of type: integer. Support for Cost: double precision'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    -- Checking the data types of the optional reverse_cost";
+    has_rcost := false;
+    IF fn IN ('johnson','dijkstra','astar') THEN
+      BEGIN
+        execute 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||safesql||' ) AS __b__ limit 1 ' into rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+            return has_rcost;
+      END;
+      if (has_rcost) then
+        IF (big) then
+           IF  not (rec1.rev_type in ('bigint'::text, 'integer'::text, 'smallint'::text, 'double precision'::text, 'real'::text)) then
+             RAISE EXCEPTION 'Illegar type in optional parameter reverse_cost.'
+             USING ERRCODE = 'XX000';
+           END IF;
+        ELSE -- Version 2.0.0 is more restrictive
+           IF (rec1.rev_type != 'double precision') then
+             RAISE EXCEPTION 'Illegal type in optional parameter reverse_cost, must be of type float8'
+             USING ERRCODE = 'XX000';
+           END IF;
+        END IF;
+      end if;
+      return true;
+    END IF;
+    -- just for keeps
+    return true;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_onError(
+  IN errCond boolean,  -- true there is an error
+  IN reportErrs int,   -- 0, 1 or 2
+  IN fnName text,      -- function name that generates the error
+  IN msgerr text,      -- error message
+  IN hinto text default 'No hint', -- hint help
+  IN msgok text default 'OK')      -- message if everything is ok
+  RETURNS void AS
+$BODY$
+BEGIN
+  if errCond=true then
+     if reportErrs=0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+     else
+       if reportErrs = 2 then
+         raise notice '----> PGR ERROR in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+         raise raise_exception;
+       else
+         raise notice '----> PGR NOTICE in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+       end if;
+     end if;
+  else
+       raise debug 'PGR ----> %: %',fnName,msgok;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_msg(IN msgKind int, IN fnName text, IN msg text default '---->OK')
+  RETURNS void AS
+$BODY$
+BEGIN
+  if msgKind = 0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msg;
+  else
+       raise notice '----> PGR NOTICE in %: %',fnName,msg;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(sname text, tname text, cname text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    EXECUTE 'select data_type  from information_schema.columns '
+            || 'where table_name = '||quote_literal(tname)
+                 || ' and table_schema=' || quote_literal(sname)
+                 || ' and column_name='||quote_literal(cname)
+       into ctype;
+    err = ctype is null;
+    perform _pgr_onError(err, reportErrs, fnName,
+            'Type of Column '|| cname ||' not found',
+            'Check your column name',
+            'OK: Type of Column '|| cname || ' is ' || ctype);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(tab text, col text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+    select * into cname from _pgr_getColumnName(tab,col,reportErrs, fnName) ;
+    select * into ctype from _pgr_getColumnType(sname,tname,cname,reportErrs, fnName);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_get_statement(o_sql text)
+RETURNS text AS
+$BODY$
+DECLARE
+sql TEXT;
+BEGIN
+    EXECUTE 'SELECT statement FROM pg_prepared_statements WHERE name ='  || quote_literal(o_sql) || ' limit 1 ' INTO sql;
+    IF (sql IS NULL) THEN
+      RETURN   o_sql;
+    ELSE
+      RETURN  regexp_replace(sql, '(.)* as ', '', 'i');
+    END IF;
+END
+$BODY$
+LANGUAGE plpgsql STABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_checkVertTab(vertname text, columnsArr  text[],
+    IN reportErrs int default 1, IN fnName text default '_pgr_checkVertTab',
+    OUT sname text,OUT vname text)
+RETURNS record AS
+$BODY$
+DECLARE
+    cname text;
+    colname text;
+    naming record;
+    debuglevel text;
+    err  boolean;
+    msgKind int;
+
+BEGIN
+    msgKind = 0; -- debug_
+    execute 'show client_min_messages' into debuglevel;
+
+    perform _pgr_msg(msgKind, fnName, 'Checking table ' || vertname || ' exists');
+       select * from _pgr_getTableName(vertname, 0, fnName) into naming;
+       sname=naming.sname;
+       vname=naming.tname;
+       err = sname is NULL or vname is NULL;
+    perform _pgr_onError( err, 2, fnName,
+          'Vertex Table: ' || vertname || ' not found',
+          'Please create ' || vertname || ' using  _pgr_createTopology() or pgr_createVerticesTable()',
+          'Vertex Table: ' || vertname || ' found');
+
+
+    perform _pgr_msg(msgKind, fnName, 'Checking columns of ' || vertname);
+      FOREACH cname IN ARRAY columnsArr
+      loop
+         select _pgr_getcolumnName(vertname, cname, 0, fnName) into colname;
+         if colname is null then
+           perform _pgr_msg(msgKind, fnName, 'Adding column ' || cname || ' in ' || vertname);
+           set client_min_messages  to warning;
+                execute 'ALTER TABLE '||_pgr_quote_ident(vertname)||' ADD COLUMN '||cname|| ' integer';
+           execute 'set client_min_messages  to '|| debuglevel;
+           perform _pgr_msg(msgKind, fnName);
+         end if;
+      end loop;
+    perform _pgr_msg(msgKind, fnName, 'Finished checking columns of ' || vertname);
+
+    perform _pgr_createIndex(vertname , 'id' , 'btree', reportErrs, fnName);
+ END
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(
+    sname text, tname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    debuglevel text;
+    naming record;
+    tabname text;
+    query text;
+    msgKind int;
+BEGIN
+  msgKind = 0; -- debug_
+
+  execute 'show client_min_messages' into debuglevel;
+  tabname=_pgr_quote_ident(sname||'.'||tname);
+  perform _pgr_msg(msgKind, fnName, 'Checking ' || colname || ' column in ' || tabname || ' is indexed');
+    IF (_pgr_isColumnIndexed(sname,tname,colname, 0, fnName)) then
+       perform _pgr_msg(msgKind, fnName);
+    else
+      if indext = 'gist' then
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using gist('||quote_ident(colname)||')';
+      else
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using btree('||quote_ident(colname)||')';
+      end if;
+      perform _pgr_msg(msgKind, fnName, 'Adding index ' || tabname || '_' ||  colname || '_idx');
+      perform _pgr_msg(msgKind, fnName, ' Using ' ||  query);
+      set client_min_messages  to warning;
+      BEGIN
+        execute query;
+        EXCEPTION WHEN others THEN
+          perform _pgr_onError( true, reportErrs, fnName,
+            'Could not create index on:' || colname, SQLERRM);
+      END;
+      execute 'set client_min_messages  to '|| debuglevel;
+      perform _pgr_msg(msgKind, fnName);
+    END IF;
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(tabname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    naming record;
+    sname text;
+    tname text;
+
+BEGIN
+    select * from _pgr_getTableName(tabname, 2, fnName)  into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    execute _pgr_createIndex(sname, tname, colname, indext, reportErrs, fnName);
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pointToId(
+    point geometry,
+    tolerance double precision,
+    vertname text,
+    srid integer)
+
+  RETURNS bigint AS
+$BODY$
+DECLARE
+    rec record;
+    pid bigint;
+
+BEGIN
+    EXECUTE 'SELECT ST_Distance(
+        the_geom,
+        ST_GeomFromText(ST_AsText('
+                || quote_literal(point::text)
+                || '),'
+            || srid ||')) AS d, id, the_geom
+    FROM '||_pgr_quote_ident(vertname)||'
+    WHERE ST_DWithin(
+        the_geom,
+        ST_GeomFromText(
+            ST_AsText(' || quote_literal(point::text) ||'),
+            ' || srid || '),' || tolerance||')
+    ORDER BY d
+    LIMIT 1' INTO rec ;
+    IF rec.id IS NOT NULL THEN
+        pid := rec.id;
+    ELSE
+        execute 'INSERT INTO '||_pgr_quote_ident(vertname)||' (the_geom) VALUES ('||quote_literal(point::text)||')';
+        pid := lastval();
+END IF;
+
+RETURN pid;
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'many_to_many_dijkstra'
+LANGUAGE c VOLATILE;
+
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer, OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstra(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(Many to Many)';
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraVia(
+    edges_sql TEXT,
+    via_vertices ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    strict BOOLEAN DEFAULT FALSE,
+    U_turn_on_edge BOOLEAN DEFAULT TRUE,
+
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'dijkstraVia'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_johnson(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'johnson'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_floydWarshall(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'floydWarshall'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'astarManyToMany'
+LANGUAGE c VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, normal:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to Many)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true, normal:=false) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to Many)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid ANYARRAY,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+    equicost BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '$libdir/libpgrouting-2.5', 'many_withPointsDD'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_withPointsDD($1, $2, ARRAY[$3]::BIGINT[], $4, $5, $6, $7, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vids anyarray,
+    distance FLOAT,
+    directed BOOLEAN DEFAULT TRUE,
+    equicost BOOLEAN DEFAULT FALSE,
+    OUT seq integer,
+    OUT from_v  bigint,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '$libdir/libpgrouting-2.5', 'driving_many_to_dist'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vid bigint,
+    distance FLOAT8,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq integer,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer, directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'kshortest_path'
+    LANGUAGE c STABLE STRICT;
+
+-- V2 the graph is directed and there are no heap paths
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid integer, end_vid integer, k integer, has_rcost boolean)
+  RETURNS SETOF pgr_costresult3 AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated signature of pgr_ksp';
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql::text, false);
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_rcost) THEN
+           -- user says that it has reverse_cost but its not true
+           RAISE EXCEPTION 'has_reverse_cost set to true but reverse_cost not found';
+         ELSE
+           -- user says that it does not have reverse_cost but it does have it
+           -- to ignore we remove reverse_cost from the query
+           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+         END IF;
+      END IF;
+
+      RETURN query SELECT ((row_number() over()) -1)::integer  AS seq,  (path_id - 1)::integer AS id1, node::integer AS id2, edge::integer AS id3, cost
+            FROM _pgr_ksp(sql::text, start_vid, end_vid, k, TRUE, FALSE) WHERE path_id <= k;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer,
+  directed boolean default true, heap_paths boolean default false,
+  --directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  BEGIN
+         RETURN query SELECT *
+                FROM _pgr_ksp(edges_sql::text, start_vid, end_vid, k, directed, heap_paths);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsKSP(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    k INTEGER,
+
+    directed BOOLEAN DEFAULT TRUE,
+    heap_paths BOOLEAN DEFAULT FALSE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER, OUT path_id INTEGER, OUT path_seq INTEGER,
+    OUT node BIGINT, OUT edge BIGINT,
+    OUT cost FLOAT, OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'withPoints_ksp'
+    LANGUAGE c STABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_unnest_matrix(matrix float8[][], OUT start_vid integer, OUT end_vid integer, out agg_cost float8)
+RETURNS SETOF record AS
+
+$body$
+DECLARE
+
+m float8[];
+
+BEGIN
+    start_vid = 1;
+    foreach m slice 1 in  ARRAY matrix
+    LOOP
+        end_vid = 1;
+        foreach agg_cost in  ARRAY m
+        LOOP
+            RETURN next;
+            end_vid = end_vid + 1;
+        END LOOP;
+        start_vid = start_vid + 1;
+    END LOOP;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_tsp(
+    matrix float8[][],
+    startpt INTEGER,
+    endpt INTEGER DEFAULT -1,
+    OUT seq INTEGER,
+    OUT id INTEGER)
+RETURNS SETOF record AS
+$body$
+DECLARE
+table_sql TEXT;
+debuglevel TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature pgr_tsp(float8[][], integer, integer)';
+
+    CREATE TEMP TABLE ___tmp2 ON COMMIT DROP AS SELECT * FROM _pgr_unnest_matrix( matrix );
+
+
+    startpt := startpt + 1;
+    IF endpt = -1 THEN endpt := startpt;
+    END IF;
+
+
+    RETURN QUERY
+    WITH
+    result AS (
+        SELECT * FROM pgr_TSP(
+        $$SELECT * FROM ___tmp2 $$,
+        startpt, endpt,
+
+        tries_per_temperature :=  500 :: INTEGER,
+        max_changes_per_temperature := 30 :: INTEGER,
+        max_consecutive_non_changes := 500 :: INTEGER,
+
+        randomize:=false)
+    )
+    SELECT (row_number() over(ORDER BY result.seq) - 1)::INTEGER AS seq, (result.node - 1)::INTEGER AS id
+
+    FROM result WHERE NOT(result.node = startpt AND result.seq != 1);
+
+    DROP TABLE ___tmp2;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+
+
+
+CREATE OR  REPLACE FUNCTION pgr_tsp(sql text, start_id INTEGER, end_id INTEGER default (-1))
+returns setof pgr_costResult as
+$body$
+DECLARE
+table_sql TEXT;
+rec RECORD;
+debuglevel TEXT;
+n BIGINT;
+
+BEGIN
+    RAISE NOTICE 'Deprecated Signature pgr_tsp(sql, integer, integer)';
+
+    table_sql := 'CREATE TEMP TABLE ___tmp ON COMMIT DROP AS ' || sql ;
+    EXECUTE table_sql;
+
+
+    BEGIN
+        EXECUTE 'SELECT id, x, y FROM ___tmp' INTO rec;
+        EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                USING ERRCODE = 'XX000',
+                HINT = 'Please verify the column names: id, x, y';
+    END;
+
+    EXECUTE
+    'SELECT
+        pg_typeof(id)::text as id_type,
+        pg_typeof(x)::text as x_type,
+        pg_typeof(y)::text as y_type FROM ___tmp' INTO rec;
+
+
+    IF NOT((rec.id_type in ('integer'::text))
+        AND (rec.x_type = 'double precision'::text)
+        AND (rec.y_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION '''id'' must be of type INTEGER, ''x'' ad ''y'' must be of type FLOAT'
+            USING ERRCODE = 'XX000';
+    END IF;
+
+    EXECUTE 'SELECT count(*) AS n FROM (' || sql || ') AS __a__' INTO rec;
+    n = rec.n;
+
+    RETURN query
+        SELECT (seq - 1)::INTEGER AS seq, node::INTEGER AS id1, node::INTEGER AS id2, cost
+        FROM pgr_eucledianTSP(sql, start_id, end_id,
+
+            tries_per_temperature :=  500 * n :: INTEGER,
+            max_changes_per_temperature := 60 * n :: INTEGER,
+            max_consecutive_non_changes := 500 * n :: INTEGER,
+
+            randomize := false) WHERE seq <= n;
+    DROP TABLE ___tmp;
+
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+
+create or replace function _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+  as
+$body$
+declare
+    sql text;
+    r record;
+
+begin
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    sql := 'with nodes as (' || sqlin || ')
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j, st_distance(st_makepoint(a.x, a.y), st_makepoint(b.x, b.y)) as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i';
+
+    for r in execute sql loop
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+
+end;
+$body$
+language plpgsql stable cost 10;
+
+
+CREATE OR REPLACE FUNCTION pgr_TSP(
+    matrix_row_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '$libdir/libpgrouting-2.5', 'newTSP'
+LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_eucledianTSP(
+    coordinates_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '$libdir/libpgrouting-2.5', 'eucledianTSP'
+LANGUAGE c VOLATILE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_alphashape(sql text, alpha float8 DEFAULT 0, OUT x float8, OUT y float8)
+    RETURNS SETOF record
+    AS '$libdir/libpgrouting-2.5', 'alphashape'
+    LANGUAGE c VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_pointsAsPolygon(query varchar, alpha float8 DEFAULT 0)
+	RETURNS geometry AS
+	$$
+	DECLARE
+		r record;
+		geoms geometry[];
+		vertex_result record;
+		i int;
+		n int;
+		spos int;
+		q text;
+		x float8[];
+		y float8[];
+
+	BEGIN
+		geoms := array[]::geometry[];
+		i := 1;
+
+		FOR vertex_result IN EXECUTE 'SELECT x, y FROM pgr_alphashape('''|| query || ''', ' || alpha || ')'
+		LOOP
+			x[i] = vertex_result.x;
+			y[i] = vertex_result.y;
+			i := i+1;
+		END LOOP;
+
+		n := i;
+		IF n = 1 THEN
+			RAISE NOTICE 'n = 1';
+			RETURN NULL;
+		END IF;
+
+		spos := 1;
+		q := 'SELECT ST_GeometryFromText(''POLYGON((';
+		FOR i IN 1..n LOOP
+			IF x[i] IS NULL AND y[i] IS NULL THEN
+				q := q || ', ' || x[spos] || ' ' || y[spos] || '))'',0) AS geom;';
+				EXECUTE q INTO r;
+				geoms := geoms || array[r.geom];
+				q := '';
+			ELSE
+				IF q = '' THEN
+					spos := i;
+					q := 'SELECT ST_GeometryFromText(''POLYGON((';
+				END IF;
+				IF i = spos THEN
+					q := q || x[spos] || ' ' || y[spos];
+				ELSE
+					q := q || ', ' || x[i] || ' ' || y[i];
+				END IF;
+			END IF;
+		END LOOP;
+
+		RETURN ST_BuildArea(ST_Collect(geoms));
+	END;
+	$$
+	LANGUAGE 'plpgsql' VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'bd_astar'
+LANGUAGE C VOLATILE;
+
+
+
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed:=true, only_cost:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    BOOLEAN,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false);
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to Many)';
+
+
+
+-- one to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to Many)';
+
+
+-- bdDijkstra MANY TO MANY
+CREATE OR REPLACE FUNCTION _pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'bdDijkstra'
+LANGUAGE c VOLATILE;
+
+
+
+-- ONE TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- TODO directed BOOLEAN DEFAULT TRUE,  on version 3
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, false) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, true) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_vid integer,
+    target_vid integer,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '$libdir/libpgrouting-2.5', 'turn_restrict_shortest_path_vertex'
+LANGUAGE 'c' IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '$libdir/libpgrouting-2.5', 'turn_restrict_shortest_path_edge'
+LANGUAGE 'c' IMMUTABLE;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || edges_sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        -- no restrictions then its a dijkstra
+        RETURN query SELECT a.seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_dijkstra(new_sql, start_vid, end_vid, directed) a;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, start_vid, end_vid, directed, has_rcost, restrictions_sql);
+    RETURN;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_trspViaVertices(
+    edges_sql TEXT,
+    via_vids ANYARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult3 AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            new_sql :=
+               'WITH old_sql AS (' || edges_sql || ')' ||
+                '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        RETURN query SELECT (row_number() over())::INTEGER, path_id:: INTEGER, node::INTEGER,
+            (CASE WHEN edge = -2 THEN -1 ELSE edge END)::INTEGER, cost
+            FROM pgr_dijkstraVia(new_sql, via_vids, directed, strict:=true) WHERE edge != -1;
+        RETURN;
+    END IF;
+
+
+    -- make the call without contradiction from part of the user
+    RETURN query SELECT * FROM _pgr_trspViaVertices(new_sql, via_vids::INTEGER[], directed, has_rcost, restrictions_sql);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+
+    new_sql := sql;
+    IF (has_reverse != has_reverse_cost) THEN  -- user contradiction
+        IF (has_reverse) THEN
+            -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) THEN
+        -- no restrictions then its a with points
+        RETURN query SELECT a.seq-1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_withpoints(new_sql,
+            '(SELECT 1 as pid, ' || source_eid || 'as edge_id, ' || source_pos || '::float8 as fraction)'
+            || ' UNION '
+            || '(SELECT 2, ' || target_eid || ', ' || target_pos || ')' ::TEXT,
+            -1, -2, directed) a;
+        -- WHERE node != -2;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, source_eid, source_pos, target_eid, target_pos, directed, has_reverse_cost, turn_restrict_sql);
+    RETURN;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+create or replace function _pgr_trspViaVertices(sql text, vids integer[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    lrra boolean := false;
+    seq integer := 0;
+    seq2 integer := 0;
+
+begin
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(vids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from _pgr_trsp(sql, vids[i], vids[i+1], directed, has_rcost, turn_restrict_sql) as a loop
+            -- filter out the individual path ends except the last one
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --raise notice 'rr: %', rr;
+            if rr.id3 = -1 then
+                lrr := rr;
+                lrra := true;
+            else
+                seq := seq + 1;
+                rr.seq := seq;
+                return next rr;
+            end if;
+        end loop;
+    end loop;
+
+    if lrra then
+        seq := seq + 1;
+        lrr.seq := seq;
+        return next lrr;
+    end if;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+
+----------------------------------------------------------------------------------------------------------
+
+create or replace function pgr_trspViaEdges(sql text, eids integer[], pcts float8[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    first boolean := true;
+    seq integer := 0;
+    seq2 integer :=0;
+    has_reverse BOOLEAN;
+    point_is_vertex BOOLEAN := false;
+    edges_sql TEXT;
+    f float;
+
+begin
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql := sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (NOT has_rcost) THEN
+            -- user does not want to use reverse cost column
+            edges_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    FOREACH f IN ARRAY pcts LOOP
+        IF f in (0,1) THEN
+           point_is_vertex := true;
+        END IF;
+    END LOOP;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) AND NOT point_is_vertex THEN
+        -- no restrictions then its a _pgr_withPointsVia
+        RETURN query SELECT a.seq::INTEGER, path_id::INTEGER AS id1, node::INTEGER AS id2, edge::INTEGER AS id3, cost
+        FROM _pgr_withPointsVia(edges_sql, eids, pcts, directed) a;
+        RETURN;
+    END IF;
+
+    if array_length(eids, 1) != array_length(pcts, 1) then
+        raise exception 'The length of arrays eids and pcts must be the same!';
+    end if;
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(eids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from pgr_trsp(edges_sql,
+                                  eids[i], pcts[i],
+                                  eids[i+1], pcts[i+1],
+                                  directed,
+                                  has_rcost,
+                                  turn_restrict_sql) as a loop
+            -- combine intermediate via costs when cost is split across
+            -- two parts of a segment because it stops it and
+            -- restarts the next leg also on it
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --
+            -- there are multiple condition we have to deal with
+            -- between the end of one leg and start of the next
+            -- 1. same vertex_id. edge_id=-1; drop record with edge_id=-1
+            -- means: path ends on vertex
+            -- NOTICE:  rr: (19,1,44570022,-1,0)
+            -- NOTICE:  rr: (0,2,44570022,1768045,2.89691196717448)
+            -- 2. vertex_id=-1; sum cost components
+            -- means: path end/starts with the segment
+            -- NOTICE:  rr: (11,2,44569628,1775909,9.32885885148532)
+            -- NOTICE:  rr: (0,3,-1,1775909,0.771386350984395)
+
+            --raise notice 'rr: %', rr;
+            if first then
+                lrr := rr;
+                first := false;
+            else
+                if lrr.id3 = -1 then
+                    lrr := rr;
+                elsif lrr.id3 = rr.id3 then
+                    lrr.cost := lrr.cost + rr.cost;
+                    if rr.id2 = -1 then
+                        rr.id2 := lrr.id2;
+                    end if;
+                else
+                    seq := seq + 1;
+                    lrr.seq := seq;
+                    return next lrr;
+                    lrr := rr;
+                end if;
+            end if;
+        end loop;
+    end loop;
+
+    seq := seq + 1;
+    lrr.seq := seq;
+    return next lrr;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+----------------------------
+--    MANY TO MANY
+----------------------------
+
+
+CREATE OR REPLACE FUNCTION _pgr_maxflow(
+    edges_sql TEXT,
+    sources ANYARRAY,
+    targets ANYARRAY,
+    algorithm INTEGER DEFAULT 1,
+    only_flow BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'max_flow_many_to_many'
+    LANGUAGE c VOLATILE;
+
+
+
+
+------------------------------------
+-- 3 pgr_edmondsKarp
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+------------------------------------
+-- 2 boykov_kolmogorov
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+------------------------------------
+-- 1 pgr_pushRelabel
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT flow
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], algorithm := 1, only_flow := true);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], $3::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, $2::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxCardinalityMatch(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'edge_disjoint_paths_many_to_many'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    bigint,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    IN directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_contractGraph(
+    edges_sql TEXT,
+    contraction_order BIGINT[],
+    max_cycles integer DEFAULT 1,
+    forbidden_vertices BIGINT[] DEFAULT ARRAY[]::BIGINT[],
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT type TEXT,
+    OUT id BIGINT,
+    OUT contracted_vertices BIGINT[],
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost float)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'contractGraph'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliver(
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_cell_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'pickDeliver'
+LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliverEuclidean (
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'pickDeliverEuclidean'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_vrpOneDepot(
+    TEXT, -- customers_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_sql
+    INTEGER, -- depot_id
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+orders_sql TEXT;
+trucks_sql TEXT;
+matrix_sql TEXT;
+final_sql TEXT;
+BEGIN
+
+    orders_sql = $$WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    pickups AS (
+        SELECT id, x AS p_x, y AS p_y, open_time AS p_open, close_time AS p_close, service_time AS p_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vrp_orders.id AS id, order_unit AS demand, pickups.id AS p_node_id, p_x, p_y, p_open, p_close, p_service,
+    vrp_orders.id AS d_node_id, x AS d_x, y AS d_y, open_time AS d_open, close_time AS d_close, service_time AS d_service
+    FROM vrp_orders, pickups
+    WHERE vrp_orders.id != $$ || $4;
+
+
+    trucks_sql = $$ WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    vrp_vehicles AS ($$ || $2 || $$ ),
+    starts AS (
+        SELECT id AS start_node_id, x AS start_x, y AS start_y, open_time AS start_open, close_time AS start_close, service_time AS start_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vehicle_id AS id, capacity, starts.* FROM vrp_vehicles, starts;
+    $$;
+
+    final_sql = '
+    SELECT * FROM _pgr_pickDeliver(
+            $$' || orders_sql || '$$,
+            $$' || trucks_sql || '$$,
+            $$' || $3 || '$$,
+            max_cycles := 2,
+            initial_sol := 4 ); ';
+
+    RAISE DEBUG '%', orders_sql;
+    RAISE DEBUG '%', trucks_sql;
+    RAISE DEBUG '%', $3;
+    RAISE DEBUG '%', final_sql;
+
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+-----------------------------------------------------------------------
+-- Core function for vrp with sigle depot computation
+-- See README for description
+-----------------------------------------------------------------------
+--
+--
+
+create or replace function pgr_vrpOneDepot(
+	order_sql text,
+	vehicle_sql text,
+	cost_sql text,
+	depot_id integer,
+
+	OUT oid integer,
+	OUT opos integer,
+	OUT vid integer,
+	OUT tarrival integer,
+	OUT tdepart integer)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT order_id::INTEGER, stop_seq::INTEGER, vehicle_id::INTEGER, arrival_time::INTEGER, departure_time::INTEGER
+    FROM _pgr_vrpOneDepot($1, $2,
+       '
+            SELECT src_id AS start_vid, dest_id AS end_vid, traveltime AS agg_cost FROM ('||$3||') AS a
+       ',
+        $4
+    ) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_gsoc_vrppdtw(
+    customers_sql TEXT,
+    max_vehicles INTEGER,
+    capacity FLOAT,
+    speed FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+
+    OUT seq INTEGER,
+    OUT vehicle_id INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT stop_id BIGINT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+    orders_sql TEXT;
+    vehicles_sql TEXT;
+    final_sql TEXT;
+BEGIN
+    orders_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        pickups AS (
+            SELECT id, demand, x as p_x, y as p_y, opentime as p_open, closetime as p_close, servicetime as p_service
+            FROM  customer_data WHERE pindex = 0 AND id != 0
+        ),
+        deliveries AS (
+            SELECT pindex AS id, x as d_x, y as d_y, opentime as d_open, closetime as d_close, servicetime as d_service
+            FROM  customer_data WHERE dindex = 0 AND id != 0
+        )
+        SELECT * FROM pickups JOIN deliveries USING(id) ORDER BY pickups.id
+    $$;
+
+    vehicles_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ )
+        SELECT id, x AS start_x, y AS start_y,
+            opentime AS start_open, closetime AS start_close, $$ ||
+            capacity || $$ AS capacity, $$ || max_vehicles || $$ AS number, $$ || speed || $$ AS speed
+            FROM customer_data WHERE id = 0 LIMIT 1
+        $$;
+--  seq | vehicle_id | vehicle_seq | stop_id | travel_time | arrival_time | wait_time | service_time | departure_time
+    final_sql = $$ WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        p_deliver AS (SELECT * FROM _pgr_pickDeliverEuclidean('$$ || orders_sql || $$',  '$$ || vehicles_sql || $$',  1, $$ || max_cycles || $$ )),
+        picks AS (SELECT p_deliver.*, pindex, dindex, id AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 2)),
+        delivers AS (SELECT p_deliver.*, pindex, dindex, dindex AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 3)),
+        depots AS (SELECT p_deliver.*, 0 as pindex, 0 as dindex, 0 AS the_id FROM p_deliver WHERE (stop_type IN (-1,1,6))),
+        the_union AS (SELECT * FROM picks UNION SELECT * FROM delivers UNION SELECT * from depots)
+
+        SELECT (row_number() over(ORDER BY a.seq))::INTEGER, vehicle_seq, a.stop_seq, the_id::BIGINT, a.travel_time, a.arrival_time, a.wait_time, a.service_time, a.departure_time
+        FROM (SELECT * FROM the_union) AS a ORDER BY a.seq
+        $$;
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+CREATE OR REPLACE FUNCTION pgr_gsoc_vrppdtw(
+    sql text,
+    vehicle_num INTEGER,
+    capacity INTEGER
+)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+customers_sql TEXT;
+BEGIN
+    RETURN query
+         SELECT a.seq, vehicle_id::INTEGER AS id1, stop_id::INTEGER AS id2, departure_time AS cost
+        FROM _pgr_gsoc_vrppdtw($1, $2, $3, 1, 30) AS a WHERE vehicle_id NOT IN (-2);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION _pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN,
+    driving_side CHAR,
+    details BOOLEAN,
+
+    only_cost BOOLEAN DEFAULT false, -- gets path
+    normal BOOLEAN DEFAULT true, -- false for many to onu
+
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'withPoints'
+LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], ARRAY[$4]::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], ARRAY[$4]::bigint[], $5, $6, $7, FALSE, FALSE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], $4::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], $4::BIGINT[], $5,  $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION  _pgr_withPointsVia(
+    sql text,
+    via_edges bigint[],
+    fraction float[],
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  has_rcost boolean;
+  sql_new_vertices text := ' ';
+  sql_on_vertex text;
+  v_union text := ' ';
+  dummyrec record;
+  rec1 record;
+  via_vertices int[];
+  sql_safe text;
+  new_edges text;
+  BEGIN
+     BEGIN
+        sql_safe = 'SELECT id, source, target, cost, reverse_cost FROM ('|| sql || ') AS __a';
+
+        EXECUTE 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||sql_safe||' ) AS __b__ limit 1 ' INTO rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+     END;
+
+
+      IF array_length(via_edges, 1) != array_length(fraction, 1) then
+        RAISE EXCEPTION 'The length of via_edges is different of length of via_edges';
+      END IF;
+
+      FOR i IN 1 .. array_length(via_edges, 1)
+      LOOP
+          IF fraction[i] = 0 THEN
+              sql_on_vertex := 'SELECT source FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.source;
+          ELSE IF fraction[i] = 1 THEN
+              sql_on_vertex := 'SELECT target FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.target;
+          ELSE
+              via_vertices[i] = -i;
+              IF has_rcost THEN
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost,
+                              reverse_cost * (1 - ' || fraction[i] || ')  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost,
+                              reverse_cost *  ' || fraction[i] || '  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' where id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               ELSE
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               END IF;
+          END IF;
+          END IF;
+     END LOOP;
+
+     IF sql_new_vertices = ' ' THEN
+         new_edges := sql;
+     ELSE
+         IF has_rcost THEN
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost,
+                         lead(cost) OVER w  - cost AS reverse_cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL),
+                   second_part AS ( SELECT * FROM (SELECT id, lead(source) OVER w  AS source, source as target,
+                         reverse_cost - lead(reverse_cost) OVER w  AS cost,
+                         reverse_cost - lead(reverse_cost) OVER w  AS reverse_cost
+                      FROM  the_union  WHERE target > 0 and reverse_cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY reverse_cost ASC) ) as n2
+                      WHERE source IS NOT NULL),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part)
+                             UNION
+                       (SELECT * FROM second_part) ) _union )
+                  SELECT *  FROM more_union';
+         ELSE
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL ),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part) ) _union )
+                  SELECT *  FROM more_union';
+          END IF;
+      END IF;
+
+ -- raise notice '%', new_edges;
+     sql_new_vertices := sql_new_vertices || v_union || ' (' || sql || ')';
+     RETURN query SELECT *
+         FROM pgr_dijkstraVia(new_edges, via_vertices, directed, has_rcost);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_lineGraph(
+    TEXT, -- edges_sql
+    directed BOOLEAN DEFAULT true,
+    OUT seq INTEGER,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost FLOAT,
+    OUT reverse_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'lineGraph'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_connectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'connectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_strongComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'strongComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_biconnectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the edge in the component
+    OUT n_seq INTEGER,          -- nth_seq of the edge in the component
+    OUT edge BIGINT)            -- the number of the edge
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'biconnectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_articulationPoints(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'articulationPoints'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_bridges(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT edge BIGINT)            -- the number of the edge 
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'bridges'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_createtopology(edge_table text, tolerance double precision,
+		   the_geom text default 'the_geom', id text default 'id',
+		   source text default 'source', target text default 'target',rows_where text default 'true',
+		   clean boolean default FALSE)
+RETURNS VARCHAR AS
+$BODY$
+
+DECLARE
+    points record;
+    sridinfo record;
+    source_id bigint;
+    target_id bigint;
+    totcount bigint;
+    rowcount bigint;
+    srid integer;
+    sql text;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    idname text;
+    sourcename text;
+    targetname text;
+    notincluded integer;
+    i integer;
+    naming record;
+    info record;
+    flag boolean;
+    query text;
+    idtype text;
+    gtype text;
+    sourcetype text;
+    targettype text;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+    msgKind int;
+    emptied BOOLEAN;
+
+BEGIN
+    msgKind = 1; -- notice
+    fnName = 'pgr_createTopology';
+    raise notice 'PROCESSING:';
+    raise notice 'pgr_createTopology(''%'', %, ''%'', ''%'', ''%'', ''%'', rows_where := ''%'', clean := %)',edge_table,tolerance,the_geom,id,source,target,rows_where, clean;
+    execute 'show client_min_messages' into debuglevel;
+
+
+    raise notice 'Performing checks, please wait .....';
+
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+        sname=naming.sname;
+        tname=naming.tname;
+        tabname=sname||'.'||tname;
+        vname=tname||'_vertices_pgr';
+        vertname= sname||'.'||vname;
+        rows_where = ' AND ('||rows_where||')';
+      raise DEBUG '     --> OK';
+
+
+      raise debug 'Checking column names in edge table';
+        select * into idname     from _pgr_getColumnName(sname, tname,id,2,fnName);
+        select * into sourcename from _pgr_getColumnName(sname, tname,source,2,fnName);
+        select * into targetname from _pgr_getColumnName(sname, tname,target,2,fnName);
+        select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2,fnName);
+
+
+        err = sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname;
+        perform _pgr_onError( err, 2, fnName,
+               'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
+	       'Column names are OK');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking column types in edge table';
+        select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+        select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+        select * into idtype from _pgr_getColumnType(sname,tname,idname,1, fnName);
+
+        err = idtype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column id:'|| idname, ' Expected type of '|| idname || ' is integer,smallint or bigint but '||idtype||' was found');
+
+        err = sourcetype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column source:'|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+        err = targettype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column target:'|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or bigint but '||targettype||' was found');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking SRID of geometry column';
+         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+            || ' FROM ' || _pgr_quote_ident(tabname)
+            || ' WHERE ' || quote_ident(gname)
+            || ' IS NOT NULL LIMIT 1';
+         raise debug '%',query;
+         EXECUTE query INTO sridinfo;
+
+         err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+         perform _pgr_onError(err, 2, fnName,
+	     'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+
+         srid := sridinfo.srid;
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking and creating indices in edge table';
+        perform _pgr_createIndex(sname, tname , idname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+
+        gname=quote_ident(gname);
+        idname=quote_ident(idname);
+        sourcename=quote_ident(sourcename);
+        targetname=quote_ident(targetname);
+      raise DEBUG '     --> OK';
+
+
+
+
+
+    BEGIN
+        -- issue #193 & issue #210 & #213
+        -- this sql is for trying out the where clause
+        -- the select * is to avoid any column name conflicts
+        -- limit 1, just try on first record
+        -- if the where clasuse is ill formed it will be caught in the exception
+        sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+        EXECUTE sql into dummyRec;
+        -- end
+
+        -- if above where clasue works this one should work
+        -- any error will be caught by the exception also
+        sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NOT NULL AND '||
+	    idname||' IS NOT NULL)=false '||rows_where;
+        EXECUTE SQL  into notincluded;
+
+        if clean then
+            raise debug 'Cleaning previous Topology ';
+               execute 'UPDATE ' || _pgr_quote_ident(tabname) ||
+               ' SET '||sourcename||' = NULL,'||targetname||' = NULL';
+        else
+            raise debug 'Creating topology for edges with non assigned topology';
+            if rows_where=' AND (true)' then
+                rows_where=  ' and ('||quote_ident(sourcename)||' is null or '||quote_ident(targetname)||' is  null)';
+            end if;
+        end if;
+        -- my thoery is that the select Count(*) will never go through here
+        EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+             RAISE NOTICE '%',sql;
+             RETURN 'FAIL';
+    END;
+
+    BEGIN
+         raise DEBUG 'initializing %',vertname;
+         execute 'select * from _pgr_getTableName('||quote_literal(vertname)
+                                                  || ',0,' || quote_literal(fnName) ||' )' into naming;
+         emptied = false;
+         set client_min_messages  to warning;
+         IF sname=naming.sname AND vname=naming.tname  THEN
+            if clean then
+                execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+                execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+                emptied = true;
+            end if;
+         ELSE -- table doesn't exist
+            execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+            emptied = true;
+         END IF;
+         IF (emptied) THEN
+             execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+	         quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+             perform _pgr_createIndex(vertname , 'the_geom'::text , 'gist'::text);
+         END IF;
+         execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id"}''::text[])' into naming;
+         execute 'set client_min_messages  to '|| debuglevel;
+         raise DEBUG  '  ------>OK';
+         EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: something went wrong when initializing the verties table';
+             RETURN 'FAIL';
+    END;
+
+
+
+    raise notice 'Creating Topology, Please wait...';
+        rowcount := 0;
+        FOR points IN EXECUTE 'SELECT ' || idname || '::bigint AS id,'
+            || ' _pgr_StartPoint(' || gname || ') AS source,'
+            || ' _pgr_EndPoint('   || gname || ') AS target'
+            || ' FROM '  || _pgr_quote_ident(tabname)
+            || ' WHERE ' || gname || ' IS NOT NULL AND ' || idname||' IS NOT NULL '||rows_where
+        LOOP
+
+            rowcount := rowcount + 1;
+            IF rowcount % 1000 = 0 THEN
+                RAISE NOTICE '% edges processed', rowcount;
+            END IF;
+
+
+            source_id := _pgr_pointToId(points.source, tolerance,vertname,srid);
+            target_id := _pgr_pointToId(points.target, tolerance,vertname,srid);
+            BEGIN
+                sql := 'UPDATE ' || _pgr_quote_ident(tabname) ||
+                    ' SET '||sourcename||' = '|| source_id::text || ','||targetname||' = ' || target_id::text ||
+                    ' WHERE ' || idname || ' =  ' || points.id::text;
+
+                IF sql IS NULL THEN
+                    RAISE NOTICE 'WARNING: UPDATE % SET source = %, target = % WHERE % = % ', tabname, source_id::text, target_id::text, idname,  points.id::text;
+                ELSE
+                    EXECUTE sql;
+                END IF;
+                EXCEPTION WHEN OTHERS THEN
+                    RAISE NOTICE '%', SQLERRM;
+                    RAISE NOTICE '%',sql;
+                    RETURN 'FAIL';
+            end;
+        END LOOP;
+        raise notice '-------------> TOPOLOGY CREATED FOR  % edges', rowcount;
+        RAISE NOTICE 'Rows with NULL geometry or NULL id: %',notincluded;
+        Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname), _pgr_quote_ident(vertname);
+        raise notice '----------------------------------------------';
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+COMMENT ON FUNCTION pgr_createTopology(text, double precision,text,text,text,text,text,boolean)
+IS 'args: edge_table,tolerance, the_geom:=''the_geom'',source:=''source'', target:=''target'',rows_where:=''true'' - fills columns source and target in the geometry table and creates a vertices table for selected rows';
+
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
+RETURNS character varying AS
+$BODY$
+
+DECLARE
+    points record;
+    seg record;
+    naming record;
+    sridinfo record;
+    srid integer;
+    ecnt integer;
+    vertname text;
+    sname text;
+    tname text;
+    vname text;
+    idname text;
+    sourcename text;
+    targetname text;
+    sourcetype text;
+    targettype text;
+    geotype text;
+    gname text;
+    tabName text;
+    flag boolean ;
+    query text;
+    selectionquery text;
+    i integer;
+    tot integer;
+    NumIsolated integer;
+    numdeadends integer;
+    numgaps integer;
+    NumCrossing integer;
+    numRings integer;
+    debuglevel text;
+
+
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_analyzeGraph(''%'',%,''%'',''%'',''%'',''%'',''%'')',edge_table,tolerance,the_geom,id,source,target,rows_where;
+  raise notice 'Performing checks, please wait ...';
+  execute 'show client_min_messages' into debuglevel;
+
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',2)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    rows_where = ' AND ('||rows_where||')';
+    raise DEBUG '     --> OK';
+
+  END;
+
+  BEGIN
+       raise debug 'Checking Vertices table';
+       execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","cnt","chk"}''::text[])' into naming;
+       execute 'UPDATE '||_pgr_quote_ident(vertname)||' SET cnt=0 ,chk=0';
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the vertices table';
+          RETURN 'FAIL';
+  END;
+
+
+
+  BEGIN
+       raise debug 'Checking column names in edge table';
+       select * into idname     from _pgr_getColumnName(sname, tname,id,2);
+       select * into sourcename from _pgr_getColumnName(sname, tname,source,2);
+       select * into targetname from _pgr_getColumnName(sname, tname,target,2);
+       select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2);
+
+
+       perform _pgr_onError( sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname, 2,
+                       'pgr_analyzeGraph',  'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
+                       'Column names are OK');
+
+        raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column names';
+          RETURN 'FAIL';
+  END;
+
+
+  BEGIN
+       raise debug 'Checking column types in edge table';
+       select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1);
+       select * into targettype from _pgr_getColumnType(sname,tname,targetname,1);
+
+       perform _pgr_onError(sourcetype not in('integer','smallint','bigint') , 2,
+                       'pgr_analyzeGraph',  'Wrong type of Column '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found',
+                       'Type of Column '|| sourcename || ' is ' || sourcetype);
+
+       perform _pgr_onError(targettype not in('integer','smallint','bigint') , 2,
+                       'pgr_analyzeGraph',  'Wrong type of Column '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found',
+                       'Type of Column '|| targetname || ' is ' || targettype);
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column types';
+          RETURN 'FAIL';
+   END;
+
+   BEGIN
+       raise debug 'Checking SRID of geometry column';
+         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+            || ' FROM ' || _pgr_quote_ident(tabname)
+            || ' WHERE ' || quote_ident(gname)
+            || ' IS NOT NULL LIMIT 1';
+         EXECUTE QUERY INTO sridinfo;
+
+         perform _pgr_onError( sridinfo IS NULL OR sridinfo.srid IS NULL,2,
+                 'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname,
+                 'SRID of '||gname||' is '||sridinfo.srid);
+
+         IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
+             RAISE NOTICE ' Can not determine the srid of the geometry "%" in table %', the_geom,tabname;
+             RETURN 'FAIL';
+         END IF;
+         srid := sridinfo.srid;
+         raise DEBUG '     --> OK';
+         EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM;--issue 210,211,213
+             RAISE NOTICE 'ERROR: something went wrong when checking for SRID of % in table %', the_geom,tabname;
+             RETURN 'FAIL';
+    END;
+
+
+    BEGIN
+       raise debug 'Checking  indices in edge table';
+       perform _pgr_createIndex(tabname , idname , 'btree');
+       perform _pgr_createIndex(tabname , sourcename , 'btree');
+       perform _pgr_createIndex(tabname , targetname , 'btree');
+       perform _pgr_createIndex(tabname , gname , 'gist');
+
+       gname=quote_ident(gname);
+       sourcename=quote_ident(sourcename);
+       targetname=quote_ident(targetname);
+       idname=quote_ident(idname);
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking indices';
+          RETURN 'FAIL';
+    END;
+
+
+    BEGIN
+        query='select count(*) from '||_pgr_quote_ident(tabname)||' where true  '||rows_where;
+        EXECUTE query into ecnt;
+        raise DEBUG '-->Rows Where condition: OK';
+        raise DEBUG '     --> OK';
+         EXCEPTION WHEN OTHERS THEN
+            RAISE NOTICE 'Got %', SQLERRM;  --issue 210,211,213
+            RAISE NOTICE 'ERROR: Condition is not correct. Please execute the following query to test your condition';
+            RAISE NOTICE '%',query;
+            RETURN 'FAIL';
+    END;
+
+    selectionquery ='with
+           selectedRows as( (select '||sourcename||' as id from '||_pgr_quote_ident(tabname)||' where true '||rows_where||')
+                           union
+                           (select '||targetname||' as id from '||_pgr_quote_ident(tabname)||' where true '||rows_where||'))';
+
+
+
+
+
+   BEGIN
+       RAISE NOTICE 'Analyzing for dead ends. Please wait...';
+       query= 'with countingsource as (select a.'||sourcename||' as id,count(*) as cnts
+               from (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) a  group by a.'||sourcename||')
+                     ,countingtarget as (select a.'||targetname||' as id,count(*) as cntt
+                    from (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) a  group by a.'||targetname||')
+                   ,totalcount as (select id,case when cnts is null and cntt is null then 0
+                                                   when cnts is null then cntt
+                                                   when cntt is null then cnts
+                                                   else cnts+cntt end as totcnt
+                                   from ('||_pgr_quote_ident(vertname)||' as a left
+                                   join countingsource as t using(id) ) left join countingtarget using(id))
+               update '||_pgr_quote_ident(vertname)||' as a set cnt=totcnt from totalcount as b where a.id=b.id';
+       raise debug '%',query;
+       execute query;
+       query=selectionquery||'
+              SELECT count(*)  FROM '||_pgr_quote_ident(vertname)||' WHERE cnt=1 and id in (select id from selectedRows)';
+       raise debug '%',query;
+       execute query  INTO numdeadends;
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'Got %', SQLERRM;  --issue 210,211,213
+          RAISE NOTICE 'ERROR: something went wrong when analizing for dead ends';
+          RETURN 'FAIL';
+   END;
+
+
+
+    BEGIN
+          RAISE NOTICE 'Analyzing for gaps. Please wait...';
+          query = 'with
+                   buffer as (select id,st_buffer(the_geom,'||tolerance||') as buff from '||_pgr_quote_ident(vertname)||' where cnt=1)
+                   ,veryclose as (select b.id,st_crosses(a.'||gname||',b.buff) as flag
+                   from  (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) as a
+                   join buffer as b on (a.'||gname||'&&b.buff)
+                   where '||sourcename||'!=b.id and '||targetname||'!=b.id )
+                   update '||_pgr_quote_ident(vertname)||' set chk=1 where id in (select distinct id from veryclose where flag=true)';
+          raise debug '%' ,query;
+          execute query;
+          GET DIAGNOSTICS  numgaps= ROW_COUNT;
+          raise DEBUG '     --> OK';
+          EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for gaps';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for isolated edges. Please wait...';
+        query=selectionquery|| ' SELECT count(*) FROM (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' )  as a,
+                                                 '||_pgr_quote_ident(vertname)||' as b,
+                                                 '||_pgr_quote_ident(vertname)||' as c
+                            WHERE b.id in (select id from selectedRows) and a.'||sourcename||' =b.id
+                            AND b.cnt=1 AND a.'||targetname||' =c.id
+                            AND c.cnt=1';
+        raise debug '%' ,query;
+        execute query  INTO NumIsolated;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for isolated edges';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for ring geometries. Please wait...';
+        execute 'SELECT geometrytype('||gname||')  FROM '||_pgr_quote_ident(tabname) limit 1 into geotype;
+        IF (geotype='MULTILINESTRING') THEN
+            query ='SELECT count(*)  FROM '||_pgr_quote_ident(tabname)||'
+                                 WHERE true  '||rows_where||' and st_isRing(st_linemerge('||gname||'))';
+            raise debug '%' ,query;
+            execute query  INTO numRings;
+        ELSE query ='SELECT count(*)  FROM '||_pgr_quote_ident(tabname)||'
+                                  WHERE true  '||rows_where||' and st_isRing('||gname||')';
+            raise debug '%' ,query;
+            execute query  INTO numRings;
+        END IF;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for ring geometries';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for intersections. Please wait...';
+        query = 'select count(*) from (select distinct case when a.'||idname||' < b.'||idname||' then a.'||idname||'
+                                                        else b.'||idname||' end,
+                                                   case when a.'||idname||' < b.'||idname||' then b.'||idname||'
+                                                        else a.'||idname||' end
+                                    FROM (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||') as a
+                                    JOIN (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||') as b
+                                    ON (a.'|| gname||' && b.'||gname||')
+                                    WHERE a.'||idname||' != b.'||idname|| '
+                                        and (a.'||sourcename||' in (b.'||sourcename||',b.'||targetname||')
+                                              or a.'||targetname||' in (b.'||sourcename||',b.'||targetname||')) = false
+                                        and st_intersects(a.'||gname||', b.'||gname||')=true) as d ';
+        raise debug '%' ,query;
+        execute query  INTO numCrossing;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for intersections';
+            RETURN 'FAIL';
+    END;
+
+
+
+
+    RAISE NOTICE '            ANALYSIS RESULTS FOR SELECTED EDGES:';
+    RAISE NOTICE '                  Isolated segments: %', NumIsolated;
+    RAISE NOTICE '                          Dead ends: %', numdeadends;
+    RAISE NOTICE 'Potential gaps found near dead ends: %', numgaps;
+    RAISE NOTICE '             Intersections detected: %',numCrossing;
+    RAISE NOTICE '                    Ring geometries: %',numRings;
+
+
+    RETURN 'OK';
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+COMMENT ON FUNCTION pgr_analyzeGraph(text,double precision,text,text,text,text,text) IS 'args: edge_table, tolerance,the_geom:=''the_geom'',id:=''id'',source column:=''source'', target column:=''target'' rows_where:=''true'' - creates a vertices table based on the geometry for selected rows';
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_analyzeOneway(
+   edge_table text,
+   s_in_rules TEXT[],
+   s_out_rules TEXT[],
+   t_in_rules TEXT[],
+   t_out_rules TEXT[],
+   two_way_if_null boolean default true,
+   oneway text default 'oneway',
+   source text default 'source',
+   target text default 'target')
+  RETURNS text AS
+$BODY$
+
+
+DECLARE
+    rule text;
+    ecnt integer;
+    instr text;
+    naming record;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    owname text;
+    sourcename text;
+    targetname text;
+    sourcetype text;
+    targettype text;
+    vertname text;
+    debuglevel text;
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_analyzeOneway(''%'',''%'',''%'',''%'',''%'',''%'',''%'',''%'',%)',
+		edge_table, s_in_rules , s_out_rules, t_in_rules, t_out_rules, oneway, source ,target,two_way_if_null ;
+  execute 'show client_min_messages' into debuglevel;
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',2)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    raise DEBUG '     --> OK';
+    EXCEPTION WHEN raise_exception THEN
+      RAISE NOTICE 'ERROR: something went wrong checking the table name';
+      RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise debug 'Checking Vertices table';
+       execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","ein","eout"}''::text[])' into naming;
+       execute 'UPDATE '||_pgr_quote_ident(vertname)||' SET eout=0 ,ein=0';
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the vertices table';
+          RETURN 'FAIL';
+  END;
+
+
+  BEGIN
+       raise debug 'Checking column names in edge table';
+       select * into sourcename from _pgr_getColumnName(sname, tname,source,2);
+       select * into targetname from _pgr_getColumnName(sname, tname,target,2);
+       select * into owname from _pgr_getColumnName(sname, tname,oneway,2);
+
+
+       perform _pgr_onError( sourcename in (targetname,owname) or  targetname=owname, 2,
+                       '_pgr_createToplogy',  'Two columns share the same name', 'Parameter names for oneway,source and target  must be different',
+                       'Column names are OK');
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column names';
+          RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise debug 'Checking column types in edge table';
+       select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1);
+       select * into targettype from _pgr_getColumnType(sname,tname,targetname,1);
+
+
+       perform _pgr_onError(sourcetype not in('integer','smallint','bigint') , 2,
+                       '_pgr_createTopology',  'Wrong type of Column '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found',
+                       'Type of Column '|| sourcename || ' is ' || sourcetype);
+
+       perform _pgr_onError(targettype not in('integer','smallint','bigint') , 2,
+                       '_pgr_createTopology',  'Wrong type of Column '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found',
+                       'Type of Column '|| targetname || ' is ' || targettype);
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column types';
+          RETURN 'FAIL';
+   END;
+
+
+
+    RAISE NOTICE 'Analyzing graph for one way street errors.';
+
+    rule := CASE WHEN two_way_if_null
+            THEN owname || ' IS NULL OR '
+            ELSE '' END;
+
+    instr := '''' || array_to_string(s_in_rules, ''',''') || '''';
+       EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set ein=coalesce(ein,0)+b.cnt
+      from (
+         select '|| sourcename ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| sourcename ||' ) b
+     where a.id=b.'|| sourcename;
+
+    RAISE NOTICE 'Analysis 25%% complete ...';
+
+    instr := '''' || array_to_string(t_in_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set ein=coalesce(ein,0)+b.cnt
+        from (
+         select '|| targetname ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| targetname ||' ) b
+        where a.id=b.'|| targetname;
+
+    RAISE NOTICE 'Analysis 50%% complete ...';
+
+    instr := '''' || array_to_string(s_out_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set eout=coalesce(eout,0)+b.cnt
+        from (
+         select '|| sourcename ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| sourcename ||' ) b
+        where a.id=b.'|| sourcename;
+    RAISE NOTICE 'Analysis 75%% complete ...';
+
+    instr := '''' || array_to_string(t_out_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set eout=coalesce(eout,0)+b.cnt
+        from (
+         select '|| targetname ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| targetname ||' ) b
+        where a.id=b.'|| targetname;
+
+    RAISE NOTICE 'Analysis 100%% complete ...';
+
+    EXECUTE 'SELECT count(*)  FROM '||_pgr_quote_ident(vertname)||' WHERE ein=0 or eout=0' INTO ecnt;
+
+    RAISE NOTICE 'Found % potential problems in directionality' ,ecnt;
+
+    RETURN 'OK';
+
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+COMMENT ON FUNCTION pgr_analyzeOneway(text,TEXT[],TEXT[], TEXT[],TEXT[],boolean,text,text,text)
+IS 'args:edge_table , s_in_rules , s_out_rules, t_in_rules , t_out_rules, two_way_if_null:= true, oneway:=''oneway'',source:= ''source'',target:=''target'' - Analizes the directionality of the edges based on the rules';
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_createverticestable(
+   edge_table text,
+   the_geom text DEFAULT 'the_geom'::text,
+   source text DEFAULT 'source'::text,
+   target text DEFAULT 'target'::text,
+    rows_where text DEFAULT 'true'::text
+)
+  RETURNS text AS
+$BODY$
+DECLARE
+    naming record;
+    sridinfo record;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    sourcename text;
+    targetname text;
+    query text;
+    ecnt bigint;
+    srid integer;
+    sourcetype text;
+    targettype text;
+    sql text;
+    totcount integer;
+    i integer;
+    notincluded integer;
+    included integer;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+
+
+BEGIN
+  fnName = 'pgr_createVerticesTable';
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_createVerticesTable(''%'',''%'',''%'',''%'',''%'')',edge_table,the_geom,source,target,rows_where;
+  execute 'show client_min_messages' into debuglevel;
+
+  raise notice 'Performing checks, please wait .....';
+
+  RAISE DEBUG 'Checking % exists',edge_table;
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    rows_where = ' AND ('||rows_where||')';
+  raise debug '--> Edge table exists: OK';
+
+  raise debug 'Checking column names';
+    select * into sourcename from _pgr_getColumnName(sname, tname,source,2, fnName);
+    select * into targetname from _pgr_getColumnName(sname, tname,target,2, fnName);
+    select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2, fnName);
+
+
+    err = sourcename in (targetname,gname) or  targetname=gname;
+    perform _pgr_onError(err, 2, fnName,
+        'Two columns share the same name', 'Parameter names for the_geom,source and target  must be different');
+  raise debug '--> Column names: OK';
+
+  raise debug 'Checking column types in edge table';
+    select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+    select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+
+
+    err = sourcetype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column source: '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+    err = targettype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column target: '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found');
+
+  raise debug '-->Column types:OK';
+
+  raise debug 'Checking SRID of geometry column';
+     query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+        || ' FROM ' || _pgr_quote_ident(tabname)
+        || ' WHERE ' || quote_ident(gname)
+        || ' IS NOT NULL LIMIT 1';
+     raise debug '%',query;
+     EXECUTE query INTO sridinfo;
+
+     err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+     perform _pgr_onError(err, 2, fnName,
+         'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+     srid := sridinfo.srid;
+  raise DEBUG '     --> OK';
+
+  raise debug 'Checking and creating Indices';
+     perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+  raise DEBUG '-->Check and create indices: OK';
+
+     gname=quote_ident(gname);
+     sourcename=quote_ident(sourcename);
+     targetname=quote_ident(targetname);
+
+
+  BEGIN
+  raise debug 'Checking Condition';
+    -- issue #193 & issue #210 & #213
+    -- this sql is for trying out the where clause
+    -- the select * is to avoid any column name conflicts
+    -- limit 1, just try on first record
+    -- if the where clasuse is ill formed it will be caught in the exception
+    sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+    EXECUTE sql into dummyRec;
+    -- end
+
+    -- if above where clasue works this one should work
+    -- any error will be caught by the exception also
+    sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NULL or '||
+		sourcename||' is null or '||targetname||' is null)=true '||rows_where;
+    raise debug '%',sql;
+    EXECUTE SQL  into notincluded;
+    EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+
+
+
+  BEGIN
+     raise DEBUG 'initializing %',vertname;
+       execute 'select * from _pgr_getTableName('||quote_literal(vertname)||',0)' into naming;
+       IF sname=naming.sname  AND vname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+       ELSE
+           set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+       END IF;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+                quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+       execute 'CREATE INDEX '||quote_ident(vname||'_the_geom_idx')||' ON '||_pgr_quote_ident(vertname)||'  USING GIST (the_geom)';
+       execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+       EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Initializing vertex table';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise notice 'Populating %, please wait...',vertname;
+       sql= 'with
+		lines as ((select distinct '||sourcename||' as id, _pgr_startpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+		                  ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||')
+			union (select distinct '||targetname||' as id,_pgr_endpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+			          ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||'))
+		,numberedLines as (select row_number() OVER (ORDER BY id) AS i,* from lines )
+		,maxid as (select id,max(i) as maxi from numberedLines group by id)
+		insert into '||_pgr_quote_ident(vertname)||'(id,the_geom)  (select id,the_geom  from numberedLines join maxid using(id) where i=maxi order by id)';
+       RAISE debug '%',sql;
+       execute sql;
+       GET DIAGNOSTICS totcount = ROW_COUNT;
+
+       sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' a, '||_pgr_quote_ident(vertname)||' b
+            where '||sourcename||'=b.id and '|| targetname||' in (select id from '||_pgr_quote_ident(vertname)||')';
+       RAISE debug '%',sql;
+       execute sql into included;
+
+
+
+       execute 'select max(id) from '||_pgr_quote_ident(vertname) into ecnt;
+       execute 'SELECT setval('||quote_literal(vertname||'_id_seq')||','||coalesce(ecnt,1)||' , false)';
+       raise notice '  ----->   VERTICES TABLE CREATED WITH  % VERTICES', totcount;
+       raise notice '                                       FOR   %  EDGES', included+notincluded;
+       RAISE NOTICE '  Edges with NULL geometry,source or target: %',notincluded;
+       RAISE NOTICE '                            Edges processed: %',included;
+       Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname),_pgr_quote_ident(vertname);
+       raise notice '----------------------------------------------';
+    END;
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+COMMENT ON FUNCTION pgr_createVerticesTable(text,text,text,text,text)
+IS 'args: edge_table, the_geom:=''the_geom'',source:=''source'', target:=''target'' rows_where:=''true'' - creates a vertices table based on the source and target identifiers for selected rows';
+
+
+CREATE OR REPLACE FUNCTION pgr_nodeNetwork(edge_table text, tolerance double precision,
+			id text default 'id', the_geom text default 'the_geom', table_ending text default 'noded',
+            rows_where text DEFAULT ''::text, outall boolean DEFAULT false) RETURNS text AS
+$BODY$
+DECLARE
+	
+	p_num int := 0;
+	p_ret text := '';
+    pgis_ver_old boolean := _pgr_versionless(postgis_lib_version(), '2.1.0.0');
+    vst_line_substring text;
+    vst_line_locate_point text;
+    intab text;
+    outtab text;
+    n_pkey text;
+    n_geom text;
+    naming record;
+    sname text;
+    tname text;
+    outname text;
+    srid integer;
+    sridinfo record;
+    splits bigint;
+    touched bigint;
+    untouched bigint;
+    geomtype text;
+    debuglevel text;
+    rows_where text;
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_nodeNetwork(''%'', %, ''%'', ''%'', ''%'', ''%'',  %)',
+    edge_table, tolerance, id,  the_geom, table_ending, rows_where, outall;
+  raise notice 'Performing checks, please wait .....';
+  execute 'show client_min_messages' into debuglevel;
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',0)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+	RAISE NOTICE '-------> % not found',edge_table;
+        RETURN 'FAIL';
+    ELSE
+	RAISE DEBUG '  -----> OK';
+    END IF;
+
+    intab=sname||'.'||tname;
+    outname=tname||'_'||table_ending;
+    outtab= sname||'.'||outname;
+    rows_where = CASE WHEN length(rows_where) > 2 and not outall THEN ' AND (' || rows_where || ')' ELSE '' END;
+    rows_where = CASE WHEN length(rows_where) > 2 THEN ' WHERE (' || rows_where || ')' ELSE '' END;
+  END;
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',id,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(id)||')' INTO n_pkey;
+       IF n_pkey is NULL then
+          raise notice  'ERROR: id column "%"  not found in %',id,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',the_geom,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(the_geom)||')' INTO n_geom;
+       IF n_geom is NULL then
+          raise notice  'ERROR: the_geom  column "%"  not found in %',the_geom,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+  IF n_pkey=n_geom THEN
+	raise notice  'ERROR: id and the_geom columns have the same name "%" in %',n_pkey,intab;
+        RETURN 'FAIL';
+  END IF;
+
+  BEGIN
+       	raise DEBUG 'Checking the SRID of the geometry "%"', n_geom;
+       	EXECUTE 'SELECT ST_SRID(' || quote_ident(n_geom) || ') as srid '
+          		|| ' FROM ' || _pgr_quote_ident(intab)
+          		|| ' WHERE ' || quote_ident(n_geom)
+          		|| ' IS NOT NULL LIMIT 1' INTO sridinfo;
+       	IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
+        	RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           	RETURN 'FAIL';
+       	END IF;
+       	srid := sridinfo.srid;
+       	raise DEBUG '  -----> SRID found %',srid;
+       	EXCEPTION WHEN OTHERS THEN
+           		RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           		RETURN 'FAIL';
+  END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_pkey,intab;
+      if (_pgr_isColumnIndexed(intab,n_pkey)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding  index "%_%_idx".',n_pkey,intab;
+
+	set client_min_messages  to warning;
+        execute 'create  index '||tname||'_'||n_pkey||'_idx on '||_pgr_quote_ident(intab)||' using btree('||quote_ident(n_pkey)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_geom,intab;
+      if (_pgr_iscolumnindexed(intab,n_geom)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding unique index "%_%_gidx".',intab,n_geom;
+	set client_min_messages  to warning;
+        execute 'CREATE INDEX '
+            || quote_ident(tname || '_' || n_geom || '_gidx' )
+            || ' ON ' || _pgr_quote_ident(intab)
+            || ' USING gist (' || quote_ident(n_geom) || ')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+---------------
+    BEGIN
+       raise DEBUG 'initializing %',outtab;
+       execute 'select * from _pgr_getTableName('||quote_literal(outtab)||',0)' into naming;
+       IF sname=naming.sname  AND outname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(outtab)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(outname)||','||quote_literal(n_geom)||')';
+       ELSE
+	   set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(outtab)||' (id bigserial PRIMARY KEY,old_id integer,sub_id integer,
+								source bigint,target bigint)';
+       END IF;
+       execute 'select geometrytype('||quote_ident(n_geom)||') from  '||_pgr_quote_ident(intab)||' limit 1' into geomtype;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(outname)||','||
+                quote_literal(n_geom)||','|| srid||', '||quote_literal(geomtype)||', 2)';
+       execute 'CREATE INDEX '||quote_ident(outname||'_'||n_geom||'_idx')||' ON '||_pgr_quote_ident(outtab)||'  USING GIST ('||quote_ident(n_geom)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+    END;
+----------------
+
+
+  raise notice 'Processing, please wait .....';
+
+
+    if pgis_ver_old then
+        vst_line_substring    := 'st_line_substring';
+        vst_line_locate_point := 'st_line_locate_point';
+    else
+        vst_line_substring    := 'st_linesubstring';
+        vst_line_locate_point := 'st_linelocatepoint';
+    end if;
+
+--    -- First creates temp table with intersection points
+    p_ret = 'create temp table intergeom on commit drop as (
+        select l1.' || quote_ident(n_pkey) || ' as l1id,
+               l2.' || quote_ident(n_pkey) || ' as l2id,
+	       l1.' || quote_ident(n_geom) || ' as line,
+	       _pgr_startpoint(l2.' || quote_ident(n_geom) || ') as source,
+	       _pgr_endpoint(l2.' || quote_ident(n_geom) || ') as target,
+               st_intersection(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ') as geom
+        from (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l1
+             join (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l2
+             on (st_dwithin(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ', ' || tolerance || '))'||
+        'where l1.' || quote_ident(n_pkey) || ' <> l2.' || quote_ident(n_pkey)||' and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false  )';
+    raise debug '%',p_ret;
+    EXECUTE p_ret;
+
+    -- second temp table with locus (index of intersection point on the line)
+    -- to avoid updating the previous table
+    -- we keep only intersection points occurring onto the line, not at one of its ends
+--    drop table if exists inter_loc;
+
+--HAD TO CHANGE THIS QUERY
+-- p_ret= 'create temp table inter_loc on commit drop as (
+--        select l1id, l2id, ' || vst_line_locate_point || '(line,point) as locus from (
+--        select DISTINCT l1id, l2id, line, (ST_DumpPoints(geom)).geom as point from intergeom) as foo
+--        where ' || vst_line_locate_point || '(line,point)<>0 and ' || vst_line_locate_point || '(line,point)<>1)';
+    p_ret= 'create temp table inter_loc on commit drop as ( select * from (
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,source) as locus from intergeom)
+         union
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,target) as locus from intergeom)) as foo
+        where locus<>0 and locus<>1)';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+
+    -- index on l1id
+    create index inter_loc_id_idx on inter_loc(l1id);
+
+    -- Then computes the intersection on the lines subset, which is much smaller than full set
+    -- as there are very few intersection points
+
+--- outab needs to be formally created with id, old_id, subid,the_geom, source,target
+---  so it can be inmediatly be used with createTopology
+
+--   EXECUTE 'drop table if exists ' || _pgr_quote_ident(outtab);
+--   EXECUTE 'create table ' || _pgr_quote_ident(outtab) || ' as
+     P_RET = 'insert into '||_pgr_quote_ident(outtab)||' (old_id,sub_id,'||quote_ident(n_geom)||') (  with cut_locations as (
+           select l1id as lid, locus
+           from inter_loc
+           -- then generates start and end locus for each line that have to be cut buy a location point
+           UNION ALL
+           select i.l1id  as lid, 0 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           UNION ALL
+           select i.l1id  as lid, 1 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           order by lid, locus
+       ),
+       -- we generate a row_number index column for each input line
+       -- to be able to self-join the table to cut a line between two consecutive locations
+       loc_with_idx as (
+           select lid, locus, row_number() over (partition by lid order by locus) as idx
+           from cut_locations
+       )
+       -- finally, each original line is cut with consecutive locations using linear referencing functions
+       select l.' || quote_ident(n_pkey) || ', loc1.idx as sub_id, ' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus) as ' || quote_ident(n_geom) || '
+       from loc_with_idx loc1 join loc_with_idx loc2 using (lid) join ' || _pgr_quote_ident(intab) || ' l on (l.' || quote_ident(n_pkey) || ' = loc1.lid)
+       where loc2.idx = loc1.idx+1
+           -- keeps only linestring geometries
+           and geometryType(' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus)) = ''LINESTRING'') ';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+	GET DIAGNOSTICS splits = ROW_COUNT;
+        execute 'with diff as (select distinct old_id from '||_pgr_quote_ident(outtab)||' )
+                 select count(*) from diff' into touched;
+	-- here, it misses all original line that did not need to be cut by intersection points: these lines
+	-- are already clean
+	-- inserts them in the final result: all lines which gid is not in the res table.
+	EXECUTE 'insert into ' || _pgr_quote_ident(outtab) || ' (old_id , sub_id, ' || quote_ident(n_geom) || ')
+                ( with used as (select distinct old_id from '|| _pgr_quote_ident(outtab)||')
+		select ' ||  quote_ident(n_pkey) || ', 1 as sub_id, ' ||  quote_ident(n_geom) ||
+		' from '|| _pgr_quote_ident(intab) ||' where  '||quote_ident(n_pkey)||' not in (select * from used)' || rows_where || ')';
+	GET DIAGNOSTICS untouched = ROW_COUNT;
+
+	raise NOTICE '  Split Edges: %', touched;
+	raise NOTICE ' Untouched Edges: %', untouched;
+	raise NOTICE '     Total original Edges: %', touched+untouched;
+        RAISE NOTICE ' Edges generated: %', splits;
+	raise NOTICE ' Untouched Edges: %',untouched;
+	raise NOTICE '       Total New segments: %', splits+untouched;
+        RAISE NOTICE ' New Table: %', outtab;
+        RAISE NOTICE '----------------------------------';
+
+    drop table  if exists intergeom;
+    drop table if exists inter_loc;
+    RETURN 'OK';
+END;
+$BODY$
+    LANGUAGE 'plpgsql' VOLATILE STRICT COST 100;
+
+
+COMMENT ON FUNCTION pgr_nodeNetwork(text, double precision, text, text, text, text, boolean )
+ IS  'edge_table, tolerance, id:=''id'', the_geom:=''the_geom'', table_ending:=''noded'' ';
+
+
+CREATE OR REPLACE FUNCTION pgr_labelGraph(
+                edge_table text,
+                id text default 'id',
+                source text default 'source',
+                target text default 'target',
+                subgraph text default 'subgraph',
+                rows_where text default 'true'
+        )
+        RETURNS character varying AS
+$BODY$
+
+DECLARE
+        naming record;
+        schema_name text;
+        table_name text;
+        garbage text;
+        incre integer;
+        table_schema_name text;
+        query text;
+        ecnt integer;
+        sql1 text;
+        rec1 record;
+        sql2 text;
+        rec2 record;
+        rec_count record;
+        rec_single record;
+        graph_id integer;
+        gids int [];
+
+BEGIN
+        raise notice 'Processing:';
+        raise notice 'pgr_brokenGraph(''%'',''%'',''%'',''%'',''%'',''%'')', edge_table,id,source,target,subgraph,rows_where;
+        raise notice 'Performing initial checks, please hold on ...';
+
+        Raise Notice 'Starting - Checking table ...';
+        BEGIN
+                raise debug 'Checking % table existance', edge_table;
+                execute 'select * from pgr_getTableName('|| quote_literal(edge_table) ||')' into naming;
+                schema_name = naming.sname;
+                table_name = naming.tname;
+                table_schema_name = schema_name||'.'||table_name;
+                IF schema_name is null then
+                        raise notice 'no schema';
+                        return 'FAIL';
+                else
+                        if table_name is null then
+                                raise notice 'no table';
+                                return 'FAIL';
+                        end if;
+                end if;
+        END;
+        Raise Notice 'Ending - Checking table';
+
+        Raise Notice 'Starting - Checking columns';
+        BEGIN
+                raise debug 'Checking exitance of necessary columns inside % table', edge_table;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(id) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no id column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(source) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no source column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(target) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no target column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(subgraph) ||')' into naming;
+                if naming.pgr_iscolumnintable = 't' then
+                        raise notice 'subgraph column already in the table';
+                        return 'FAIL';
+                end if;
+        END;
+        Raise Notice 'Ending - Checking columns';
+
+        Raise Notice 'Starting - Checking rows_where condition';
+        BEGIN
+                raise debug 'Checking rows_where condition';
+                query='select count(*) from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where;
+                execute query into ecnt;
+                raise debug '-->Rows where condition: OK';
+                raise debug '    --> OK';
+                EXCEPTION WHEN OTHERS THEN
+                        raise notice 'Got %', SQLERRM;
+                        Raise notice 'ERROR: Condition is not correct. Please execute the following query to test your condition';
+                        Raise notice '%', query;
+                        return 'FAIL';
+        END;
+        Raise Notice 'Ending - Checking rows_where condition';
+
+        garbage := 'garbage001';
+        incre := 1;
+        Raise Notice 'Starting - Checking temporary column';
+        Begin
+                raise debug 'Checking Checking temporary columns existance';
+
+                While True
+                        Loop
+                                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(garbage) ||')' into naming;
+                                If naming.pgr_iscolumnintable = 't' THEN
+                                        incre := incre + 1;
+                                        garbage := 'garbage00'||incre||'';
+                                ELSE
+                                        EXIT;
+                                END IF;
+                        End Loop;
+        End;
+        Raise Notice 'Ending - Checking temporary column';
+
+        Raise Notice 'Starting - Calculating subgraphs';
+        BEGIN
+                --------- Add necessary columns ----------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(subgraph) || ' INTEGER DEFAULT -1';
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(garbage) || ' INTEGER DEFAULT 0';
+                graph_id := 1;
+
+                EXECUTE 'select count(*) as count from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where ||'' into rec_count;
+                if rec_count.count = 0 then
+                        RETURN 'rows_where condition generated 0 rows';
+                end if;
+
+                WHILE TRUE
+                        LOOP
+                                ---------- Assign the very first -1 row graph_id ----------
+                                EXECUTE 'SELECT ' || pgr_quote_ident(id) || ' AS gid FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1 LIMIT 1' INTO rec_single;
+                                EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec_single.gid || '';
+
+                                --------- Search other rows with that particular graph_id -----------
+                                WHILE TRUE
+                                        LOOP
+                                                EXECUTE 'SELECT COUNT(*) FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0' into rec_count;
+                                                ----------- The following if else will check those rows which already have entertained ------------
+                                                IF (rec_count.count > 0) THEN
+                                                        sql1 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0';
+                                                        FOR rec1 IN EXECUTE sql1
+                                                                LOOP
+                                                                        sql2 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| pgr_quote_ident(source) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(source) ||' = '|| rec1.target ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.target ||'';
+                                                                        FOR rec2 IN EXECUTE sql2
+                                                                                LOOP
+                                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec2.gid || '';
+                                                                                END LOOP;
+                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(garbage) || ' = 1 WHERE ' || pgr_quote_ident(id) || ' = ' || rec1.gid || '';
+                                                                END LOOP;
+                                                ELSE
+                                                        EXIT;
+                                                END IF;
+                                        END LOOP;
+
+                                ------ Following is to exit the while loop. 0 means no more -1 id.
+                                EXECUTE 'SELECT COUNT(*) AS count FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1' INTO rec_count;
+                                If (rec_count.count = 0) THEN
+                                        EXIT;
+                                ELSE
+                                        graph_id := graph_id + 1;
+                                END IF;
+                        END LOOP;
+
+                ----------- Drop garbage column ------------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' DROP COLUMN ' || pgr_quote_ident(garbage) ||'';
+                Raise Notice 'Successfully complicated calculating subgraphs';
+        END;
+        Raise Notice 'Ending - Calculating subgraphs';
+
+        RETURN 'OK';
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCostMatrix(
+    edges_sql TEXT,
+    points_sql TEXT,
+    pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_pid, a.end_pid, a.agg_cost
+        FROM _pgr_withPoints($1, $2, $3, $3, $4,  $5, TRUE, TRUE) AS a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+--  DIJKSTRA DMatrix
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCostMatrix(edges_sql TEXT, vids ANYARRAY, directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2, $2, $3, true) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+
+--  BIDIRECTIONAL DIJKSTRA Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCostMatrix(edges_sql TEXT, vids ANYARRAY, directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_astarCostMatrix(
+    edges_sql TEXT, -- XY edges sql
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2, $2, $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+--  BIDIRECTIONAL ASTAR Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdAstarCostMatrix(
+    edges_sql TEXT,
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_bdAstarCostMatrix(TEXT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCostMatrix';
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_getTableName(IN tab text,OUT sname text,OUT tname text)
+RETURNS RECORD AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getTableName: This function will no longer be soported';
+    select * from _pgr_getTableName(tab, 0, 'pgr_getTableName') into sname,tname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_getColumnName(tab text, col text)
+RETURNS text AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getColumnName: This function will no longer be soported';
+    return _pgr_getColumnName(tab,col, 0, 'pgr_getColumnName');
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    select * from _pgr_getColumnName(tab,col,0, 'pgr_isColumnInTable') into cname;
+    return  cname IS not NULL;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnIndexed(tab text, col text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnIndexed: This function will no longer be soported';
+    return  _pgr_isColumnIndexed(tab,col);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+create or replace function pgr_quote_ident(idname text)
+returns text as
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    return  _pgr_quote_ident(idname);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_versionless(v1 text, v2 text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_versionless: This function will no longer be soported';
+    return  _pgr_versionless(v1,v2);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+create or replace function pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_startPoint: This function will no longer be soported';
+    return  _pgr_startPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_endPoint: This function will no longer be soported';
+    return  _pgr_endPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_apspJohnson(edges_sql text)
+    RETURNS SETOF pgr_costResult AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function: Use pgr_johnson instead';
+      has_reverse =_pgr_parameter_check('johnson', edges_sql, false);
+      sql = edges_sql;
+      IF (has_reverse) THEN
+           RAISE NOTICE 'reverse_cost column found, removing.';
+           sql = 'SELECT source, target, cost FROM (' || edges_sql || ') a';
+      END IF;
+
+      RETURN query
+         SELECT (row_number() over () - 1)::integer as seq, start_vid::integer AS id1, end_vid::integer AS id2, agg_cost AS cost
+         FROM  pgr_johnson(sql, TRUE);
+  END
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_apspWarshall(edges_sql text, directed boolean, has_rcost boolean)
+    RETURNS SETOF pgr_costResult AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function: Use pgr_floydWarshall instead';
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+      sql := edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_reverse) THEN
+           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+         ELSE raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+         END IF;
+      END IF;
+
+      RETURN query
+         SELECT (row_number() over () -1)::integer as seq, start_vid::integer AS id1, end_vid::integer AS id2, agg_cost AS cost
+         FROM  pgr_floydWarshall(sql, directed);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_astar(edges_sql TEXT, source_id INTEGER, target_id INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated signature pgr_astar(text, integer, integer, boolean, boolean)';
+    has_reverse =_pgr_parameter_check('astar', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost, x1,y1, x2, y2 FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+    FROM pgr_astar(sql, ARRAY[$2], ARRAY[$3], directed);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    sql TEXT,
+    source_vid INTEGER,
+    target_vid INTEGER,
+    directed BOOLEAN,
+    has_reverse_cost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdAstar';
+    has_reverse =_pgr_parameter_check('astar', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdAstar(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(edges_sql TEXT, start_vid INTEGER, end_vid INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdDijkstra';
+    has_reverse =_pgr_parameter_check('dijkstra', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdDijkstra(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstraPath(
+    sql text,
+    source INTEGER,
+    targets INTEGER ARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+    RETURNS SETOF pgr_costResult3 AS
+    $BODY$
+    DECLARE
+    has_reverse BOOLEAN;
+    new_sql TEXT;
+    result pgr_costResult3;
+    tmp pgr_costResult3;
+    sseq INTEGER;
+    i INTEGER;
+    BEGIN
+        RAISE NOTICE 'Deprecated function: Use pgr_dijkstra instead.';
+        has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+        new_sql = sql;
+        IF (array_ndims(targets) != 1) THEN
+            raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+
+        IF (has_reverse != has_rcost) THEN
+            IF (has_reverse) THEN
+                new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+            ELSE
+                raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+                USING ERRCODE = 'XX000';
+            END IF;
+        END IF;
+        SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+        sseq = 0; i = 1;
+        FOR result IN
+            SELECT seq, a.end_vid::INTEGER AS id1, a.node::INTEGER AS i2, a.edge::INTEGER AS id3, cost
+            FROM pgr_dijkstra(new_sql, source, targets, directed) a ORDER BY a.end_vid, seq LOOP
+            WHILE (result.id1 != targets[i]) LOOP
+                tmp.seq = sseq;
+                tmp.id1 = targets[i];
+                IF (targets[i] = source) THEN
+                    tmp.id2 = source;
+                    tmp.cost =0;
+                ELSE
+                    tmp.id2 = 0;
+                    tmp.cost = -1;
+                END IF;
+                tmp.id3 = -1;
+                RETURN next tmp;
+                i = i + 1;
+                sseq = sseq + 1;
+            END LOOP;
+        IF (result.id1 = targets[i] AND result.id3 != -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+        IF (result.id1 = targets[i] AND result.id3 = -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.id2 = source;
+            tmp.cost = 0;
+        ELSE
+            tmp.id2 = 0;
+            tmp.cost = -1;
+        END IF;
+        tmp.id3 = -1;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstracost(
+    sql text,
+    source INTEGER,
+    targets INTEGER array,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+result pgr_costResult;
+tmp pgr_costResult;
+sseq INTEGER;
+i INTEGER;
+BEGIN
+    RAISE NOTICE 'Deprecated function. Use pgr_dijkstraCost instead.';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    new_sql = sql;
+    IF (array_ndims(targets) != 1) THEN
+        raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+        USING ERRCODE = 'XX000';
+    END IF;
+
+
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+    sseq = 0; i = 1;
+    FOR result IN
+        SELECT ((row_number() over()) -1)::INTEGER, a.start_vid::INTEGER, a.end_vid::INTEGER, agg_cost
+        FROM pgr_dijkstraCost(new_sql, source, targets, directed) a ORDER BY end_vid LOOP
+        WHILE (result.id2 != targets[i]) LOOP
+            tmp.seq = sseq;
+            tmp.id1 = source;
+            tmp.id2 = targets[i];
+            IF (targets[i] = source) THEN
+                tmp.cost = 0;
+            ELSE
+                tmp.cost = -1;
+            END IF;
+            RETURN next tmp;
+            i = i + 1;
+            sseq = sseq + 1;
+        END LOOP;
+        IF (result.id2 = targets[i]) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = source;
+        tmp.id2 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.cost = 0;
+        ELSE
+            tmp.cost = -1;
+        END IF;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+create or replace function pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    returns integer as
+$body$
+
+declare
+    rr record;
+    pct float;
+    debuglevel text;
+
+begin
+    -- find the closest edge within tol distance
+    execute 'select * from ' || _pgr_quote_ident(edges) ||
+            ' where st_dwithin(''' || pnt::text ||
+            '''::geometry, the_geom, ' || tol || ') order by st_distance(''' || pnt::text ||
+            '''::geometry, the_geom) asc limit 1' into rr;
+
+    if rr.the_geom is not null then
+        -- deal with MULTILINESTRINGS
+        if geometrytype(rr.the_geom)='MULTILINESTRING' THEN
+            rr.the_geom := ST_GeometryN(rr.the_geom, 1);
+        end if;
+
+        -- project the point onto the linestring
+        execute 'show client_min_messages' into debuglevel;
+        SET client_min_messages='ERROR';
+        pct := st_line_locate_point(rr.the_geom, pnt);
+        execute 'set client_min_messages  to '|| debuglevel;
+
+        -- return the node we are closer to
+        if pct < 0.5 then
+            return rr.source;
+        else
+            return rr.target;
+        end if;
+    else
+        -- return a failure to find an edge within tol distance
+        return -1;
+    end if;
+end;
+$body$
+  language plpgsql volatile
+  cost 5;
+
+
+----------------------------------------------------------------------------
+
+create or replace function pgr_flipedges(ga geometry[])
+    returns geometry[] as
+$body$
+
+declare
+    nn integer;
+    i integer;
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_flipEdges';
+    -- get the count of edges, and return if only one edge
+    nn := array_length(ga, 1);
+    if nn=1 then
+        return ga;
+    end if;
+
+    -- determine if first needs to be flipped
+    g := _pgr_startpoint(ga[1]);
+
+    -- if the start of the first is connected to the second then it needs to be flipped
+    if _pgr_startpoint(ga[2])=g or _pgr_endpoint(ga[2])=g then
+        ga[1] := st_reverse(ga[1]);
+    end if;
+    g := _pgr_endpoint(ga[1]);
+
+    -- now if  the end of the last edge matchs the end of the current edge we need to flip it
+    for i in 2 .. nn loop
+        if _pgr_endpoint(ga[i])=g then
+            ga[i] := st_reverse(ga[i]);
+        end if;
+        -- save the end of this edge into the last end for the next cycle
+        g := _pgr_endpoint(ga[i]);
+    end loop;
+
+    return ga;
+end;
+$body$
+    language plpgsql immutable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_texttopoints(pnts text, srid integer DEFAULT(4326))
+    returns geometry[] as
+$body$
+
+declare
+    a text[];
+    t text;
+    p geometry;
+    g geometry[];
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_textToPoints';
+    -- convert commas to space and split on ';'
+    a := string_to_array(replace(pnts, ',', ' '), ';');
+    -- convert each 'x y' into a point geometry and concattenate into a new array
+    for t in select unnest(a) loop
+        p := st_pointfromtext('POINT(' || t || ')', srid);
+        g := g || p;
+    end loop;
+
+    return g;
+end;
+$body$
+    language plpgsql immutable;
+
+-----------------------------------------------------------------------
+
+create or replace function pgr_pointstovids(pnts geometry[], edges text, tol float8 DEFAULT(0.01))
+    returns integer[] as
+$body$
+
+declare
+    v integer[];
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_pointsToVids';
+    -- cycle through each point and locate the nearest edge and vertex on that edge
+    for g in select unnest(pnts) loop
+        v := v || pgr_pointtoedgenode(edges, g, tol);
+    end loop;
+
+    return v;
+end;
+$body$
+    language plpgsql stable;
+
+
+create or replace function pgr_pointstodmatrix(pnts geometry[], mode integer default (0), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+
+declare
+    r record;
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_pointsToDMatrix';
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    -- create an id for each point in the array and unnest it into a table nodes in the with clause
+    for r in with nodes as (select row_number() over()::integer as id, p from (select unnest(pnts) as p) as foo)
+        -- compute a row of distances
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j,
+                case when mode=0
+                    then st_distance(a.p, b.p)
+                    else st_distance_sphere(a.p, b.p)
+                end as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i loop
+
+        -- you must concat an array[array[]] to make dmatrix[][]
+        -- concat the row of distances to the dmatrix
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+end;
+$body$
+    language plpgsql stable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_vidstodmatrix(IN vids integer[], IN pnts geometry[], IN edges text, tol float8 DEFAULT(0.1), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+
+declare
+    i integer;
+    j integer;
+    nn integer;
+    rr record;
+    bbox geometry;
+    t float8[];
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    -- check if the input arrays has any -1 values, maybe this whould be a raise exception
+    if vids @> ARRAY[-1] then
+    raise notice 'Some vids are undefined (-1)!';
+    dmatrix := null;
+    ids := null;
+    return;
+    end if;
+
+    ids := vids;
+
+    -- get the count of nodes
+    nn := array_length(vids,1);
+
+    -- zero out a dummy row
+    for i in 1 .. nn loop
+        t := t || 0.0::float8;
+    end loop;
+
+    -- using the dummy row, zero out the whole matrix
+    for i in 1 .. nn loop
+    dmatrix := dmatrix || ARRAY[t];
+    end loop;
+
+    for i in 1 .. nn-1 loop
+        j := i;
+        -- compute the bbox for the point needed for this row
+        select st_expand(st_collect(pnts[id]), tol) into bbox
+          from (select generate_series as id from generate_series(i, nn)) as foo;
+
+        -- compute kdijkstra() for this row
+        for rr in execute 'select * from pgr_dijkstracost($1, $2, $3, false)'
+                  using 'select id, source, target, cost from ' || edges ||
+                        ' where the_geom && ''' || bbox::text || '''::geometry'::text, vids[i], vids[i+1:nn] loop
+
+            -- TODO need to check that all node were reachable from source
+            -- I think unreachable paths between nodes returns cost=-1.0
+
+            -- populate the matrix with the cost values, remember this is symmetric
+            j := j + 1;
+            -- raise notice 'cost(%,%)=%', i, j, rr.agg_cost;
+            dmatrix[i][j] := rr.agg_cost;
+            dmatrix[j][i] := rr.agg_cost;
+        end loop;
+    end loop;
+
+end;
+$body$
+    language plpgsql stable cost 200;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_vidsToDMatrix(sql TEXT, vids  INTEGER[], dir BOOLEAN, has_rcost BOOLEAN, want_symmetric BOOLEAN)
+RETURNS float8[] AS
+$BODY$
+DECLARE
+directed BOOLEAN;
+has_reverse BOOLEAN;
+edges_sql TEXT;
+dmatrix_row float8[];
+dmatrix float8[];
+cell RECORD;
+unique_vids INTEGER[];
+total BIGINT;
+from_v BIGINT;
+to_v BIGINT;
+BEGIN
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql = sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    unique_vids :=  ARRAY(SELECT DISTINCT UNNEST(vids) ORDER BY 1);
+
+    IF want_symmetric THEN
+        directed = false;
+    ELSE
+        directed = dir;
+    END IF;
+
+    total := array_length(unique_vids, 1);
+
+    -- initializing dmatrix
+    FOR i in 1 .. total LOOP
+        dmatrix_row := dmatrix_row || '+Infinity'::float8;
+    END LOOP;
+    FOR i in 1 .. total LOOP
+    dmatrix := dmatrix || ARRAY[dmatrix_row];
+    dmatrix[i][i] = 0;
+    END LOOP;
+
+    CREATE TEMP TABLE __x___y____temp AS
+        WITH result AS
+            (SELECT unnest(unique_vids) AS vid)
+        SELECT row_number() OVER() AS idx, vid FROM result;
+
+    FOR cell IN SELECT * FROM pgr_dijkstraCostMatrix(sql, unique_vids, directed) LOOP
+        SELECT idx INTO from_v FROM __x___y____temp WHERE vid =  cell.start_vid;
+        SELECT idx INTO to_v FROM __x___y____temp WHERE vid =  cell.end_vid;
+
+        dmatrix[from_v][to_v] = cell.agg_cost;
+        dmatrix[to_v][from_v] = cell.agg_cost;
+    END LOOP;
+
+    DROP TABLE IF EXISTS __x___y____temp;
+    RETURN dmatrix;
+
+    EXCEPTION WHEN others THEN
+       DROP TABLE IF EXISTS __x___y____temp;
+       raise exception '% %', SQLERRM, SQLSTATE;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100;
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated function';
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_dijkstra(sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_dijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN) IS 'pgr_dijkstra(Deprecated signature)';
+
+
+
+
+
+-- OLD SIGNATURE
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(edges_sql text, source BIGINT, distance FLOAT, directed BOOLEAN, has_rcost BOOLEAN)
+  RETURNS SETOF pgr_costresult AS
+  $BODY$
+  DECLARE
+  has_reverse BOOLEAN;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function';
+
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, FALSE);
+
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_reverse) THEN
+             -- the user says it doesn't have reverse cost but its false
+             -- removing from query
+             RAISE NOTICE 'Contradiction found: has_rcost set to false but reverse_cost column found';
+             sql = 'SELECT id, source, target, cost, -1 as reverse_cost FROM (' || edges_sql || ') __q ';
+         ELSE
+             -- the user says it has reverse cost but its false
+             -- can't do anything
+             RAISE EXCEPTION 'has_rcost set to true but reverse_cost not found';
+         END IF;
+      END IF;
+
+      RETURN query SELECT seq - 1 AS seq, node::integer AS id1, edge::integer AS id2, agg_cost AS cost
+                FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maximumcardinalitymatching(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
+
+
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+--INTERNAL FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+
+------------------------
+-- deprecated signatures
+-----------------------
+
+COMMENT ON FUNCTION pgr_astar(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_astar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdAstar( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdAstar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdDijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdDijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_dijkstra(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_dijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_drivingDistance(text,  BIGINT,  FLOAT8,  BOOLEAN,  BOOLEAN)
+    IS 'pgr_drivingDistance(Deprecated signature)';
+
+------------------------
+-- Renamed /deprecated
+-----------------------
+COMMENT ON FUNCTION pgr_apspJohnson(TEXT)
+    IS 'pgr_apspJohnson(Renamed function) use pgr_Johnson instead';
+
+COMMENT ON FUNCTION pgr_apspWarshall(text, boolean, boolean)
+    IS 'pgr_apspWarshall(Renamed function) use pgr_floydWarshall instead';
+
+COMMENT ON FUNCTION pgr_kdijkstraPath( text, INTEGER, INTEGER ARRAY, BOOLEAN, BOOLEAN)
+    IS 'pgr_kdijkstraPath(Renamed function) use pgr_dijkstra instead';
+
+COMMENT ON FUNCTION pgr_kdijkstracost( text, INTEGER, INTEGER array, BOOLEAN, BOOLEAN)
+    IS 'pgr_kDijkstraCost(Renamed function) use pgr_dijkstraCost instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+
+
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+
+
+COMMENT ON FUNCTION pgr_gsoc_vrppdtw( text, INTEGER, INTEGER)
+    IS 'pgr_gsoc_vrppdtw(Renamed function) use pgr_pickDeliverEuclidean instead';
+
+------------------------
+-- Deprecated functions
+-----------------------
+
+COMMENT ON FUNCTION pgr_flipedges(geometry[])
+    IS 'pgr_flipedges(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_texttopoints(text,  integer)
+    IS 'pgr_texttopoints(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstovids(pnts geometry[], edges text, tol float8)
+    IS 'pgr_pointstovids(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    IS 'pgr_pointtoedgenode(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstodmatrix(geometry[], integer)
+    IS 'pgr_pointstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidstodmatrix( integer[],  geometry[],  text, float8)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidsToDMatrix(TEXT,  INTEGER[], BOOLEAN, BOOLEAN, BOOLEAN)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+
+
+
+COMMENT ON FUNCTION pgr_getTableName(IN tab text)
+    IS 'pgr_getTableName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_getColumnName(tab text, col text)
+    IS 'pgr_getColumnName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnInTable(tab text, col text)
+    IS 'pgr_isColumnInTable(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnIndexed(tab text, col text)
+    IS 'pgr_isColumnIndexed(Deprecated function)';
+
+
+COMMENT ON FUNCTION pgr_quote_ident(idname text)
+    IS 'pgr_quote_ident(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_versionless(v1 text, v2 text)
+    IS 'pgr_versionless(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_startPoint(g geometry)
+    IS 'pgr_startPoint(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_endPoint(g geometry)
+    IS 'pgr_endPoint(Deprecated function)';
+
+
diff --git a/tools/sql-update-scripts/pgrouting--2.2.4--2.5.0.sql b/tools/sql-update-scripts/pgrouting--2.2.4--2.5.0.sql
new file mode 100644
index 0000000..979241c
--- /dev/null
+++ b/tools/sql-update-scripts/pgrouting--2.2.4--2.5.0.sql
@@ -0,0 +1,6527 @@
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-- pgRouting extension upgrade from 2.2.4 to 2.5.0
+-- generated by tools/build-extension-update-files
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+\echo Use "ALTER extension pgrouting update to '2.5.0'" to load this file. \quit
+
+
+-------------------------------------
+-- remove functions no longer in the 2.5.0 extension
+-------------------------------------
+
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,anyarray,anyarray,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,anyarray,anyarray,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,anyarray,bigint,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,anyarray,bigint,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,bigint,anyarray,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,bigint,anyarray,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,bigint,bigint,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,bigint,bigint,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_drivingdistance(text,anyarray,double precision,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_drivingdistance(text,anyarray,double precision,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_drivingdistance(text,bigint,double precision,boolean);
+DROP FUNCTION IF EXISTS _pgr_drivingdistance(text,bigint,double precision,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,anyarray,anyarray,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,anyarray,anyarray,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,anyarray,bigint,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,anyarray,bigint,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,bigint,anyarray,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,bigint,anyarray,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,bigint,bigint,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,bigint,bigint,boolean,character,boolean,boolean);
+
+
+------------------------------------------
+--    New functions:  2.0
+-- Signature change:  2.4
+--       Deprecated:  2.4
+------------------------------------------
+-- pgr_bddijkstra
+-- 2.2.4: {      sql, source_vid, target_vid, directed, has_reverse_cost}   
+-- 2.5.0: {edges_sql,  start_vid,    end_vid, directed, has_rcost}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vid","end_vid","directed","has_rcost"}'
+WHERE proname = 'pgr_bddijkstra'
+    AND proargnames = '{"sql","source_vid","target_vid","directed","has_reverse_cost"}';
+
+
+------------------------------------------
+--   New function: 2.1
+-- (types) change: 2.3
+------------------------------------------
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_gsoc_vrppdtw(text,integer,integer);
+DROP FUNCTION IF EXISTS pgr_gsoc_vrppdtw(text,integer,integer);
+
+
+
+
+------------------------------------------
+-- New functions on 2.0
+-- Signature change on 2.3
+-- Deprecated on 2.4
+------------------------------------------
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_astar(text,integer,integer,boolean,boolean);
+DROP FUNCTION IF EXISTS pgr_astar(text,integer,integer,boolean,boolean);
+
+
+
+
+------------------------------------------
+--       New functions:  2.1
+--    Signature change:  2.4
+------------------------------------------
+-- 2.2.4: {edges_sql,start_v,  distance,directed,seq,node,edge,cost,agg_cost}
+-- 2.5.0: {edges_sql,start_vid,distance,directed,seq,node,edge,cost,agg_cost}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vid","distance","directed","seq","node","edge","cost","agg_cost"}'
+WHERE proname = 'pgr_drivingdistance'
+    AND proargnames = '{"edges_sql","start_v","distance","directed","seq","node","edge","cost","agg_cost"}';
+
+
+------------------------------------------
+--       New functions:  2.1
+--    Signature change:  2.4
+------------------------------------------
+-- 2.2.4: {sql,      start_v,   distance,directed,equicost,seq,from_v,node,edge,cost,agg_cost}
+-- 2.5.0: {edges_sql,start_vids,distance,directed,equicost,seq,from_v,node,edge,cost,agg_cost}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vids","distance","directed","equicost","seq","from_v","node","edge","cost","agg_cost"}'
+WHERE proname = 'pgr_drivingdistance'
+    AND proargnames = '{"sql","start_v","distance","directed","equicost","seq","from_v","node","edge","cost","agg_cost"}';
+
+
+
+
+
+
+
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+--- pgRouting provides geospatial routing functionality.
+--- http://pgrouting.org
+--- copyright
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+---
+--- This is free software; you can redistribute and/or modify it:
+--- the terms of the GNU General Public Licence. See the COPYING file.
+--- the terms of the MIT-X Licence. See the COPYING file.
+---
+--- The following functions have MIT-X licence:
+---     pgr_version()
+---     pgr_tsp(matrix float8[][], startpt integer, endpt integer DEFAULT -1, OUT seq integer, OUT id integer)
+---     _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+---     pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
+---
+---
+--- All other functions are under GNU General Public Licence.
+---
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+--
+-- WARNING: Any change in this file must be evaluated for compatibility.
+--          Changes cleanly handled by postgis_upgrade.sql are fine,
+--          other changes will require a bump in Major version.
+--          Currently only function replaceble by CREATE OR REPLACE
+--          are cleanly handled.
+--
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+
+--  pgRouting 2.0 types
+
+
+
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_version()
+RETURNS TABLE(
+        "version" varchar,
+        tag varchar,
+        hash varchar,
+        branch varchar,
+        boost varchar
+    ) AS
+$BODY$
+    SELECT '2.5.0'::varchar AS version,
+        'v2.5.0'::varchar AS tag,
+        ''::varchar AS hash,
+        ''::varchar AS branch,
+        '1.54.0'::varchar AS boost;
+$BODY$
+LANGUAGE sql IMMUTABLE;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getTableName(IN tab text, IN reportErrs int default 0, IN fnName text default '_pgr_getTableName', OUT sname text,OUT tname text)
+  RETURNS RECORD AS
+$$
+DECLARE
+        naming record;
+        i integer;
+        query text;
+        sn text; -- schema name
+        tn text; -- table name
+        ttype text; --table type for future use
+        err boolean;
+        debuglevel text;
+        var_types text[] = ARRAY['BASE TABLE', 'VIEW'];
+BEGIN
+
+    execute 'show client_min_messages' into debuglevel;
+
+
+    perform _pgr_msg( 0, fnName, 'Checking table ' || tab || ' exists');
+    --RAISE DEBUG 'Checking % exists',tab;
+
+    i := strpos(tab,'.');
+    IF (i <> 0) THEN
+        sn := split_part(tab, '.',1);
+        tn := split_part(tab, '.',2);
+    ELSE
+        sn := current_schema;
+        tn := tab;
+    END IF;
+
+
+   SELECT schema_name INTO sname
+   FROM information_schema.schemata WHERE schema_name = sn;
+
+    IF sname IS NOT NULL THEN -- found schema (as is)
+       SELECT table_name, table_type INTO tname, ttype
+       FROM information_schema.tables
+       WHERE
+                table_type = ANY(var_types) and
+                table_schema = sname and
+                table_name = tn ;
+        IF tname is NULL THEN
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  = ANY(var_types) and
+                table_schema = sname and
+                table_name = lower(tn) ORDER BY table_name;
+        END IF;
+    END IF;
+    IF sname is NULL or tname is NULL THEN --schema not found or table not found
+        SELECT schema_name INTO sname
+        FROM information_schema.schemata
+        WHERE schema_name = lower(sn) ;
+
+        IF sname IS NOT NULL THEN -- found schema (with lower caps)
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  =  ANY(var_types) and
+                table_schema = sname and
+                table_name= tn ;
+
+           IF tname IS NULL THEN
+                SELECT table_name, table_type INTO tname, ttype
+                FROM information_schema.tables
+                WHERE
+                    table_type  =  ANY(var_types) and
+                    table_schema = sname and
+                    table_name= lower(tn) ;
+           END IF;
+        END IF;
+    END IF;
+   err = (sname IS NULL OR tname IS NULL);
+   perform _pgr_onError(err, reportErrs, fnName, 'Table ' || tab ||' not found',' Check your table name', 'Table '|| tab || ' found');
+
+END;
+$$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(sname text, tname text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(col) into cname;
+
+    IF cname is null  THEN
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(lower(col))  into cname;
+    END if;
+
+    err = cname is null;
+
+    perform _pgr_onError(err, reportErrs, fnName,  'Column '|| col ||' not found', ' Check your column name','Column '|| col || ' found');
+    RETURN cname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(tab text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+
+    select * into cname from _pgr_getColumnName(sname,tname,col,reportErrs, fnName);
+    RETURN cname;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    select * from _pgr_getColumnName(tab,col,0, '_pgr_isColumnInTable') into cname;
+    return cname is not null;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(sname text, tname text, cname text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    pkey text;
+BEGIN
+    SELECT
+          pg_attribute.attname into pkey
+         --  format_type(pg_attribute.atttypid, pg_attribute.atttypmod)
+          FROM pg_index, pg_class, pg_attribute
+          WHERE
+                  pg_class.oid = _pgr_quote_ident(sname||'.'||tname)::regclass AND
+                  indrelid = pg_class.oid AND
+                  pg_attribute.attrelid = pg_class.oid AND
+                  pg_attribute.attnum = any(pg_index.indkey)
+                  AND indisprimary;
+
+    IF pkey=cname then
+          RETURN TRUE;
+    END IF;
+
+    SELECT a.index_name,
+           b.attname,
+           b.attnum,
+           a.indisunique,
+           a.indisprimary
+      INTO rec
+      FROM ( SELECT a.indrelid,
+                    a.indisunique,
+                    a.indisprimary,
+                    c.relname index_name,
+                    unnest(a.indkey) index_num
+               FROM pg_index a,
+                    pg_class b,
+                    pg_class c,
+                    pg_namespace d
+              WHERE b.relname=tname
+                AND b.relnamespace=d.oid
+                AND d.nspname=sname
+                AND b.oid=a.indrelid
+                AND a.indexrelid=c.oid
+           ) a,
+           pg_attribute b
+     WHERE a.indrelid = b.attrelid
+       AND a.index_num = b.attnum
+       AND b.attname = cname
+  ORDER BY a.index_name,
+           a.index_num;
+
+  RETURN FOUND;
+  EXCEPTION WHEN OTHERS THEN
+    perform _pgr_onError( true, reportErrs, fnName,
+    'Error when checking for the postgres system attributes', SQLERR);
+    RETURN FALSE;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(tab text, col text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    sname text;
+    tname text;
+    cname text;
+    pkey text;
+    value boolean;
+BEGIN
+    SELECT * into naming FROM _pgr_getTableName(tab, 0, fnName);
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    SELECT * into cname from _pgr_getColumnName(sname, tname, col, 0, fnName) ;
+    IF cname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    select * into value  from _pgr_isColumnIndexed(sname, tname, cname, reportErrs, fnName);
+    return value;
+END
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+create or replace function _pgr_quote_ident(idname text)
+    returns text as
+$body$
+declare
+    t text[];
+    pgver text;
+
+begin
+    pgver := regexp_replace(version(), E'^PostgreSQL ([^ ]+)[ ,].*$', E'\\1');
+
+    if _pgr_versionless(pgver, '9.2') then
+        select into t array_agg(quote_ident(term)) from
+            (select nullif(unnest, '') as term
+               from unnest(string_to_array(idname, '.'))) as foo;
+    else
+        select into t array_agg(quote_ident(term)) from
+            (select unnest(string_to_array(idname, '.', '')) as term) as foo;
+    end if;
+    return array_to_string(t, '.');
+end;
+$body$
+language plpgsql immutable;
+
+
+CREATE OR REPLACE FUNCTION _pgr_versionless(v1 text, v2 text)
+  RETURNS boolean AS
+$BODY$
+
+
+declare
+    v1a text[];
+    v2a text[];
+    nv1 integer;
+    nv2 integer;
+    ne1 integer;
+    ne2 integer;
+
+begin
+    -- separate components into an array, like:
+    -- '2.1.0-beta3dev'  =>  {2,1,0,beta3dev}
+    v1a := regexp_matches(v1, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+    v2a := regexp_matches(v2, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+
+    -- convert modifiers to numbers for comparison
+    -- we do not delineate between alpha1, alpha2, alpha3, etc
+    ne1 := case when v1a[4] is null or v1a[4]='' then 5
+                when v1a[4] ilike 'rc%' then 4
+                when v1a[4] ilike 'beta%' then 3
+                when v1a[4] ilike 'alpha%' then 2
+                when v1a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    ne2 := case when v2a[4] is null or v2a[4]='' then 5
+                when v2a[4] ilike 'rc%' then 4
+                when v2a[4] ilike 'beta%' then 3
+                when v2a[4] ilike 'alpha%' then 2
+                when v2a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    nv1 := v1a[1]::integer * 10000 +
+           coalesce(v1a[2], '0')::integer * 1000 +
+           coalesce(v1a[3], '0')::integer *  100 + ne1;
+    nv2 := v2a[1]::integer * 10000 +
+           coalesce(v2a[2], '0')::integer * 1000 +
+           coalesce(v2a[3], '0')::integer *  100 + ne2;
+
+    --raise notice 'nv1: %, nv2: %, ne1: %, ne2: %', nv1, nv2, ne1, ne2;
+
+    return nv1 < nv2;
+end;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+create or replace function _pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_startpoint(st_geometryn(g,1));
+    else
+        return st_startpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function _pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_endpoint(st_geometryn(g,1));
+    else
+        return st_endpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_parameter_check(fn text, sql text, big boolean default false)
+  RETURNS bool AS
+  $BODY$
+
+  DECLARE
+  rec record;
+  rec1 record;
+  has_rcost boolean;
+  safesql text;
+  BEGIN
+    IF (big) THEN
+       RAISE EXCEPTION 'This function is for old style functions';
+    END IF;
+
+    -- checking query is executable
+    BEGIN
+      safesql =  'select * from ('||sql||' ) AS __a__ limit 1';
+      execute safesql into rec;
+      EXCEPTION
+        WHEN OTHERS THEN
+            RAISE EXCEPTION 'Could not execute query please verify syntax of: '
+              USING HINT = sql;
+    END;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('dijkstra','astar') THEN
+        BEGIN
+          execute 'select id,source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: id, source, target, cost';
+        END;
+        execute 'select pg_typeof(id)::text as id_type, pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.id_type in ('integer'::text))
+              AND (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Error, columns ''source'', ''target'' must be of type int4, ''cost'' must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    IF fn IN ('astar') THEN
+        BEGIN
+          execute 'select x1,y1,x2,y2  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: x1,y1, x2,y2';
+        END;
+        execute 'select pg_typeof(x1)::text as x1_type, pg_typeof(y1)::text as y1_type, pg_typeof(x2)::text as x2_type, pg_typeof(y2)::text as y2_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.x1_type = 'double precision'::text)
+              AND (rec.y1_type = 'double precision'::text)
+              AND (rec.x2_type = 'double precision'::text)
+              AND (rec.y2_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Columns: x1, y1, x2, y2 must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('johnson') THEN
+        BEGIN
+          execute 'select source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING HINT = 'Please veryfy the column names: id, source, target, cost',
+                         ERRCODE = 'XX000';
+        END;
+
+        execute 'select pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Support for source,target columns only of type: integer. Support for Cost: double precision'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    -- Checking the data types of the optional reverse_cost";
+    has_rcost := false;
+    IF fn IN ('johnson','dijkstra','astar') THEN
+      BEGIN
+        execute 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||safesql||' ) AS __b__ limit 1 ' into rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+            return has_rcost;
+      END;
+      if (has_rcost) then
+        IF (big) then
+           IF  not (rec1.rev_type in ('bigint'::text, 'integer'::text, 'smallint'::text, 'double precision'::text, 'real'::text)) then
+             RAISE EXCEPTION 'Illegar type in optional parameter reverse_cost.'
+             USING ERRCODE = 'XX000';
+           END IF;
+        ELSE -- Version 2.0.0 is more restrictive
+           IF (rec1.rev_type != 'double precision') then
+             RAISE EXCEPTION 'Illegal type in optional parameter reverse_cost, must be of type float8'
+             USING ERRCODE = 'XX000';
+           END IF;
+        END IF;
+      end if;
+      return true;
+    END IF;
+    -- just for keeps
+    return true;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_onError(
+  IN errCond boolean,  -- true there is an error
+  IN reportErrs int,   -- 0, 1 or 2
+  IN fnName text,      -- function name that generates the error
+  IN msgerr text,      -- error message
+  IN hinto text default 'No hint', -- hint help
+  IN msgok text default 'OK')      -- message if everything is ok
+  RETURNS void AS
+$BODY$
+BEGIN
+  if errCond=true then
+     if reportErrs=0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+     else
+       if reportErrs = 2 then
+         raise notice '----> PGR ERROR in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+         raise raise_exception;
+       else
+         raise notice '----> PGR NOTICE in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+       end if;
+     end if;
+  else
+       raise debug 'PGR ----> %: %',fnName,msgok;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_msg(IN msgKind int, IN fnName text, IN msg text default '---->OK')
+  RETURNS void AS
+$BODY$
+BEGIN
+  if msgKind = 0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msg;
+  else
+       raise notice '----> PGR NOTICE in %: %',fnName,msg;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(sname text, tname text, cname text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    EXECUTE 'select data_type  from information_schema.columns '
+            || 'where table_name = '||quote_literal(tname)
+                 || ' and table_schema=' || quote_literal(sname)
+                 || ' and column_name='||quote_literal(cname)
+       into ctype;
+    err = ctype is null;
+    perform _pgr_onError(err, reportErrs, fnName,
+            'Type of Column '|| cname ||' not found',
+            'Check your column name',
+            'OK: Type of Column '|| cname || ' is ' || ctype);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(tab text, col text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+    select * into cname from _pgr_getColumnName(tab,col,reportErrs, fnName) ;
+    select * into ctype from _pgr_getColumnType(sname,tname,cname,reportErrs, fnName);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_get_statement(o_sql text)
+RETURNS text AS
+$BODY$
+DECLARE
+sql TEXT;
+BEGIN
+    EXECUTE 'SELECT statement FROM pg_prepared_statements WHERE name ='  || quote_literal(o_sql) || ' limit 1 ' INTO sql;
+    IF (sql IS NULL) THEN
+      RETURN   o_sql;
+    ELSE
+      RETURN  regexp_replace(sql, '(.)* as ', '', 'i');
+    END IF;
+END
+$BODY$
+LANGUAGE plpgsql STABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_checkVertTab(vertname text, columnsArr  text[],
+    IN reportErrs int default 1, IN fnName text default '_pgr_checkVertTab',
+    OUT sname text,OUT vname text)
+RETURNS record AS
+$BODY$
+DECLARE
+    cname text;
+    colname text;
+    naming record;
+    debuglevel text;
+    err  boolean;
+    msgKind int;
+
+BEGIN
+    msgKind = 0; -- debug_
+    execute 'show client_min_messages' into debuglevel;
+
+    perform _pgr_msg(msgKind, fnName, 'Checking table ' || vertname || ' exists');
+       select * from _pgr_getTableName(vertname, 0, fnName) into naming;
+       sname=naming.sname;
+       vname=naming.tname;
+       err = sname is NULL or vname is NULL;
+    perform _pgr_onError( err, 2, fnName,
+          'Vertex Table: ' || vertname || ' not found',
+          'Please create ' || vertname || ' using  _pgr_createTopology() or pgr_createVerticesTable()',
+          'Vertex Table: ' || vertname || ' found');
+
+
+    perform _pgr_msg(msgKind, fnName, 'Checking columns of ' || vertname);
+      FOREACH cname IN ARRAY columnsArr
+      loop
+         select _pgr_getcolumnName(vertname, cname, 0, fnName) into colname;
+         if colname is null then
+           perform _pgr_msg(msgKind, fnName, 'Adding column ' || cname || ' in ' || vertname);
+           set client_min_messages  to warning;
+                execute 'ALTER TABLE '||_pgr_quote_ident(vertname)||' ADD COLUMN '||cname|| ' integer';
+           execute 'set client_min_messages  to '|| debuglevel;
+           perform _pgr_msg(msgKind, fnName);
+         end if;
+      end loop;
+    perform _pgr_msg(msgKind, fnName, 'Finished checking columns of ' || vertname);
+
+    perform _pgr_createIndex(vertname , 'id' , 'btree', reportErrs, fnName);
+ END
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(
+    sname text, tname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    debuglevel text;
+    naming record;
+    tabname text;
+    query text;
+    msgKind int;
+BEGIN
+  msgKind = 0; -- debug_
+
+  execute 'show client_min_messages' into debuglevel;
+  tabname=_pgr_quote_ident(sname||'.'||tname);
+  perform _pgr_msg(msgKind, fnName, 'Checking ' || colname || ' column in ' || tabname || ' is indexed');
+    IF (_pgr_isColumnIndexed(sname,tname,colname, 0, fnName)) then
+       perform _pgr_msg(msgKind, fnName);
+    else
+      if indext = 'gist' then
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using gist('||quote_ident(colname)||')';
+      else
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using btree('||quote_ident(colname)||')';
+      end if;
+      perform _pgr_msg(msgKind, fnName, 'Adding index ' || tabname || '_' ||  colname || '_idx');
+      perform _pgr_msg(msgKind, fnName, ' Using ' ||  query);
+      set client_min_messages  to warning;
+      BEGIN
+        execute query;
+        EXCEPTION WHEN others THEN
+          perform _pgr_onError( true, reportErrs, fnName,
+            'Could not create index on:' || colname, SQLERRM);
+      END;
+      execute 'set client_min_messages  to '|| debuglevel;
+      perform _pgr_msg(msgKind, fnName);
+    END IF;
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(tabname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    naming record;
+    sname text;
+    tname text;
+
+BEGIN
+    select * from _pgr_getTableName(tabname, 2, fnName)  into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    execute _pgr_createIndex(sname, tname, colname, indext, reportErrs, fnName);
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pointToId(
+    point geometry,
+    tolerance double precision,
+    vertname text,
+    srid integer)
+
+  RETURNS bigint AS
+$BODY$
+DECLARE
+    rec record;
+    pid bigint;
+
+BEGIN
+    EXECUTE 'SELECT ST_Distance(
+        the_geom,
+        ST_GeomFromText(ST_AsText('
+                || quote_literal(point::text)
+                || '),'
+            || srid ||')) AS d, id, the_geom
+    FROM '||_pgr_quote_ident(vertname)||'
+    WHERE ST_DWithin(
+        the_geom,
+        ST_GeomFromText(
+            ST_AsText(' || quote_literal(point::text) ||'),
+            ' || srid || '),' || tolerance||')
+    ORDER BY d
+    LIMIT 1' INTO rec ;
+    IF rec.id IS NOT NULL THEN
+        pid := rec.id;
+    ELSE
+        execute 'INSERT INTO '||_pgr_quote_ident(vertname)||' (the_geom) VALUES ('||quote_literal(point::text)||')';
+        pid := lastval();
+END IF;
+
+RETURN pid;
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'many_to_many_dijkstra'
+LANGUAGE c VOLATILE;
+
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer, OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstra(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(Many to Many)';
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraVia(
+    edges_sql TEXT,
+    via_vertices ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    strict BOOLEAN DEFAULT FALSE,
+    U_turn_on_edge BOOLEAN DEFAULT TRUE,
+
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'dijkstraVia'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_johnson(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'johnson'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_floydWarshall(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'floydWarshall'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'astarManyToMany'
+LANGUAGE c VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, normal:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to Many)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true, normal:=false) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to Many)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid ANYARRAY,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+    equicost BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '$libdir/libpgrouting-2.5', 'many_withPointsDD'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_withPointsDD($1, $2, ARRAY[$3]::BIGINT[], $4, $5, $6, $7, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vids anyarray,
+    distance FLOAT,
+    directed BOOLEAN DEFAULT TRUE,
+    equicost BOOLEAN DEFAULT FALSE,
+    OUT seq integer,
+    OUT from_v  bigint,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '$libdir/libpgrouting-2.5', 'driving_many_to_dist'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vid bigint,
+    distance FLOAT8,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq integer,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer, directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'kshortest_path'
+    LANGUAGE c STABLE STRICT;
+
+-- V2 the graph is directed and there are no heap paths
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid integer, end_vid integer, k integer, has_rcost boolean)
+  RETURNS SETOF pgr_costresult3 AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated signature of pgr_ksp';
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql::text, false);
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_rcost) THEN
+           -- user says that it has reverse_cost but its not true
+           RAISE EXCEPTION 'has_reverse_cost set to true but reverse_cost not found';
+         ELSE
+           -- user says that it does not have reverse_cost but it does have it
+           -- to ignore we remove reverse_cost from the query
+           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+         END IF;
+      END IF;
+
+      RETURN query SELECT ((row_number() over()) -1)::integer  AS seq,  (path_id - 1)::integer AS id1, node::integer AS id2, edge::integer AS id3, cost
+            FROM _pgr_ksp(sql::text, start_vid, end_vid, k, TRUE, FALSE) WHERE path_id <= k;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer,
+  directed boolean default true, heap_paths boolean default false,
+  --directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  BEGIN
+         RETURN query SELECT *
+                FROM _pgr_ksp(edges_sql::text, start_vid, end_vid, k, directed, heap_paths);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsKSP(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    k INTEGER,
+
+    directed BOOLEAN DEFAULT TRUE,
+    heap_paths BOOLEAN DEFAULT FALSE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER, OUT path_id INTEGER, OUT path_seq INTEGER,
+    OUT node BIGINT, OUT edge BIGINT,
+    OUT cost FLOAT, OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'withPoints_ksp'
+    LANGUAGE c STABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_unnest_matrix(matrix float8[][], OUT start_vid integer, OUT end_vid integer, out agg_cost float8)
+RETURNS SETOF record AS
+
+$body$
+DECLARE
+
+m float8[];
+
+BEGIN
+    start_vid = 1;
+    foreach m slice 1 in  ARRAY matrix
+    LOOP
+        end_vid = 1;
+        foreach agg_cost in  ARRAY m
+        LOOP
+            RETURN next;
+            end_vid = end_vid + 1;
+        END LOOP;
+        start_vid = start_vid + 1;
+    END LOOP;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_tsp(
+    matrix float8[][],
+    startpt INTEGER,
+    endpt INTEGER DEFAULT -1,
+    OUT seq INTEGER,
+    OUT id INTEGER)
+RETURNS SETOF record AS
+$body$
+DECLARE
+table_sql TEXT;
+debuglevel TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature pgr_tsp(float8[][], integer, integer)';
+
+    CREATE TEMP TABLE ___tmp2 ON COMMIT DROP AS SELECT * FROM _pgr_unnest_matrix( matrix );
+
+
+    startpt := startpt + 1;
+    IF endpt = -1 THEN endpt := startpt;
+    END IF;
+
+
+    RETURN QUERY
+    WITH
+    result AS (
+        SELECT * FROM pgr_TSP(
+        $$SELECT * FROM ___tmp2 $$,
+        startpt, endpt,
+
+        tries_per_temperature :=  500 :: INTEGER,
+        max_changes_per_temperature := 30 :: INTEGER,
+        max_consecutive_non_changes := 500 :: INTEGER,
+
+        randomize:=false)
+    )
+    SELECT (row_number() over(ORDER BY result.seq) - 1)::INTEGER AS seq, (result.node - 1)::INTEGER AS id
+
+    FROM result WHERE NOT(result.node = startpt AND result.seq != 1);
+
+    DROP TABLE ___tmp2;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+
+
+
+CREATE OR  REPLACE FUNCTION pgr_tsp(sql text, start_id INTEGER, end_id INTEGER default (-1))
+returns setof pgr_costResult as
+$body$
+DECLARE
+table_sql TEXT;
+rec RECORD;
+debuglevel TEXT;
+n BIGINT;
+
+BEGIN
+    RAISE NOTICE 'Deprecated Signature pgr_tsp(sql, integer, integer)';
+
+    table_sql := 'CREATE TEMP TABLE ___tmp ON COMMIT DROP AS ' || sql ;
+    EXECUTE table_sql;
+
+
+    BEGIN
+        EXECUTE 'SELECT id, x, y FROM ___tmp' INTO rec;
+        EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                USING ERRCODE = 'XX000',
+                HINT = 'Please verify the column names: id, x, y';
+    END;
+
+    EXECUTE
+    'SELECT
+        pg_typeof(id)::text as id_type,
+        pg_typeof(x)::text as x_type,
+        pg_typeof(y)::text as y_type FROM ___tmp' INTO rec;
+
+
+    IF NOT((rec.id_type in ('integer'::text))
+        AND (rec.x_type = 'double precision'::text)
+        AND (rec.y_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION '''id'' must be of type INTEGER, ''x'' ad ''y'' must be of type FLOAT'
+            USING ERRCODE = 'XX000';
+    END IF;
+
+    EXECUTE 'SELECT count(*) AS n FROM (' || sql || ') AS __a__' INTO rec;
+    n = rec.n;
+
+    RETURN query
+        SELECT (seq - 1)::INTEGER AS seq, node::INTEGER AS id1, node::INTEGER AS id2, cost
+        FROM pgr_eucledianTSP(sql, start_id, end_id,
+
+            tries_per_temperature :=  500 * n :: INTEGER,
+            max_changes_per_temperature := 60 * n :: INTEGER,
+            max_consecutive_non_changes := 500 * n :: INTEGER,
+
+            randomize := false) WHERE seq <= n;
+    DROP TABLE ___tmp;
+
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+
+create or replace function _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+  as
+$body$
+declare
+    sql text;
+    r record;
+
+begin
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    sql := 'with nodes as (' || sqlin || ')
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j, st_distance(st_makepoint(a.x, a.y), st_makepoint(b.x, b.y)) as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i';
+
+    for r in execute sql loop
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+
+end;
+$body$
+language plpgsql stable cost 10;
+
+
+CREATE OR REPLACE FUNCTION pgr_TSP(
+    matrix_row_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '$libdir/libpgrouting-2.5', 'newTSP'
+LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_eucledianTSP(
+    coordinates_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '$libdir/libpgrouting-2.5', 'eucledianTSP'
+LANGUAGE c VOLATILE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_alphashape(sql text, alpha float8 DEFAULT 0, OUT x float8, OUT y float8)
+    RETURNS SETOF record
+    AS '$libdir/libpgrouting-2.5', 'alphashape'
+    LANGUAGE c VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_pointsAsPolygon(query varchar, alpha float8 DEFAULT 0)
+	RETURNS geometry AS
+	$$
+	DECLARE
+		r record;
+		geoms geometry[];
+		vertex_result record;
+		i int;
+		n int;
+		spos int;
+		q text;
+		x float8[];
+		y float8[];
+
+	BEGIN
+		geoms := array[]::geometry[];
+		i := 1;
+
+		FOR vertex_result IN EXECUTE 'SELECT x, y FROM pgr_alphashape('''|| query || ''', ' || alpha || ')'
+		LOOP
+			x[i] = vertex_result.x;
+			y[i] = vertex_result.y;
+			i := i+1;
+		END LOOP;
+
+		n := i;
+		IF n = 1 THEN
+			RAISE NOTICE 'n = 1';
+			RETURN NULL;
+		END IF;
+
+		spos := 1;
+		q := 'SELECT ST_GeometryFromText(''POLYGON((';
+		FOR i IN 1..n LOOP
+			IF x[i] IS NULL AND y[i] IS NULL THEN
+				q := q || ', ' || x[spos] || ' ' || y[spos] || '))'',0) AS geom;';
+				EXECUTE q INTO r;
+				geoms := geoms || array[r.geom];
+				q := '';
+			ELSE
+				IF q = '' THEN
+					spos := i;
+					q := 'SELECT ST_GeometryFromText(''POLYGON((';
+				END IF;
+				IF i = spos THEN
+					q := q || x[spos] || ' ' || y[spos];
+				ELSE
+					q := q || ', ' || x[i] || ' ' || y[i];
+				END IF;
+			END IF;
+		END LOOP;
+
+		RETURN ST_BuildArea(ST_Collect(geoms));
+	END;
+	$$
+	LANGUAGE 'plpgsql' VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'bd_astar'
+LANGUAGE C VOLATILE;
+
+
+
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed:=true, only_cost:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    BOOLEAN,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false);
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to Many)';
+
+
+
+-- one to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to Many)';
+
+
+-- bdDijkstra MANY TO MANY
+CREATE OR REPLACE FUNCTION _pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'bdDijkstra'
+LANGUAGE c VOLATILE;
+
+
+
+-- ONE TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- TODO directed BOOLEAN DEFAULT TRUE,  on version 3
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, false) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, true) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_vid integer,
+    target_vid integer,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '$libdir/libpgrouting-2.5', 'turn_restrict_shortest_path_vertex'
+LANGUAGE 'c' IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '$libdir/libpgrouting-2.5', 'turn_restrict_shortest_path_edge'
+LANGUAGE 'c' IMMUTABLE;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || edges_sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        -- no restrictions then its a dijkstra
+        RETURN query SELECT a.seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_dijkstra(new_sql, start_vid, end_vid, directed) a;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, start_vid, end_vid, directed, has_rcost, restrictions_sql);
+    RETURN;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_trspViaVertices(
+    edges_sql TEXT,
+    via_vids ANYARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult3 AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            new_sql :=
+               'WITH old_sql AS (' || edges_sql || ')' ||
+                '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        RETURN query SELECT (row_number() over())::INTEGER, path_id:: INTEGER, node::INTEGER,
+            (CASE WHEN edge = -2 THEN -1 ELSE edge END)::INTEGER, cost
+            FROM pgr_dijkstraVia(new_sql, via_vids, directed, strict:=true) WHERE edge != -1;
+        RETURN;
+    END IF;
+
+
+    -- make the call without contradiction from part of the user
+    RETURN query SELECT * FROM _pgr_trspViaVertices(new_sql, via_vids::INTEGER[], directed, has_rcost, restrictions_sql);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+
+    new_sql := sql;
+    IF (has_reverse != has_reverse_cost) THEN  -- user contradiction
+        IF (has_reverse) THEN
+            -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) THEN
+        -- no restrictions then its a with points
+        RETURN query SELECT a.seq-1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_withpoints(new_sql,
+            '(SELECT 1 as pid, ' || source_eid || 'as edge_id, ' || source_pos || '::float8 as fraction)'
+            || ' UNION '
+            || '(SELECT 2, ' || target_eid || ', ' || target_pos || ')' ::TEXT,
+            -1, -2, directed) a;
+        -- WHERE node != -2;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, source_eid, source_pos, target_eid, target_pos, directed, has_reverse_cost, turn_restrict_sql);
+    RETURN;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+create or replace function _pgr_trspViaVertices(sql text, vids integer[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    lrra boolean := false;
+    seq integer := 0;
+    seq2 integer := 0;
+
+begin
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(vids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from _pgr_trsp(sql, vids[i], vids[i+1], directed, has_rcost, turn_restrict_sql) as a loop
+            -- filter out the individual path ends except the last one
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --raise notice 'rr: %', rr;
+            if rr.id3 = -1 then
+                lrr := rr;
+                lrra := true;
+            else
+                seq := seq + 1;
+                rr.seq := seq;
+                return next rr;
+            end if;
+        end loop;
+    end loop;
+
+    if lrra then
+        seq := seq + 1;
+        lrr.seq := seq;
+        return next lrr;
+    end if;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+
+----------------------------------------------------------------------------------------------------------
+
+create or replace function pgr_trspViaEdges(sql text, eids integer[], pcts float8[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    first boolean := true;
+    seq integer := 0;
+    seq2 integer :=0;
+    has_reverse BOOLEAN;
+    point_is_vertex BOOLEAN := false;
+    edges_sql TEXT;
+    f float;
+
+begin
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql := sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (NOT has_rcost) THEN
+            -- user does not want to use reverse cost column
+            edges_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    FOREACH f IN ARRAY pcts LOOP
+        IF f in (0,1) THEN
+           point_is_vertex := true;
+        END IF;
+    END LOOP;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) AND NOT point_is_vertex THEN
+        -- no restrictions then its a _pgr_withPointsVia
+        RETURN query SELECT a.seq::INTEGER, path_id::INTEGER AS id1, node::INTEGER AS id2, edge::INTEGER AS id3, cost
+        FROM _pgr_withPointsVia(edges_sql, eids, pcts, directed) a;
+        RETURN;
+    END IF;
+
+    if array_length(eids, 1) != array_length(pcts, 1) then
+        raise exception 'The length of arrays eids and pcts must be the same!';
+    end if;
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(eids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from pgr_trsp(edges_sql,
+                                  eids[i], pcts[i],
+                                  eids[i+1], pcts[i+1],
+                                  directed,
+                                  has_rcost,
+                                  turn_restrict_sql) as a loop
+            -- combine intermediate via costs when cost is split across
+            -- two parts of a segment because it stops it and
+            -- restarts the next leg also on it
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --
+            -- there are multiple condition we have to deal with
+            -- between the end of one leg and start of the next
+            -- 1. same vertex_id. edge_id=-1; drop record with edge_id=-1
+            -- means: path ends on vertex
+            -- NOTICE:  rr: (19,1,44570022,-1,0)
+            -- NOTICE:  rr: (0,2,44570022,1768045,2.89691196717448)
+            -- 2. vertex_id=-1; sum cost components
+            -- means: path end/starts with the segment
+            -- NOTICE:  rr: (11,2,44569628,1775909,9.32885885148532)
+            -- NOTICE:  rr: (0,3,-1,1775909,0.771386350984395)
+
+            --raise notice 'rr: %', rr;
+            if first then
+                lrr := rr;
+                first := false;
+            else
+                if lrr.id3 = -1 then
+                    lrr := rr;
+                elsif lrr.id3 = rr.id3 then
+                    lrr.cost := lrr.cost + rr.cost;
+                    if rr.id2 = -1 then
+                        rr.id2 := lrr.id2;
+                    end if;
+                else
+                    seq := seq + 1;
+                    lrr.seq := seq;
+                    return next lrr;
+                    lrr := rr;
+                end if;
+            end if;
+        end loop;
+    end loop;
+
+    seq := seq + 1;
+    lrr.seq := seq;
+    return next lrr;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+----------------------------
+--    MANY TO MANY
+----------------------------
+
+
+CREATE OR REPLACE FUNCTION _pgr_maxflow(
+    edges_sql TEXT,
+    sources ANYARRAY,
+    targets ANYARRAY,
+    algorithm INTEGER DEFAULT 1,
+    only_flow BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'max_flow_many_to_many'
+    LANGUAGE c VOLATILE;
+
+
+
+
+------------------------------------
+-- 3 pgr_edmondsKarp
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+------------------------------------
+-- 2 boykov_kolmogorov
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+------------------------------------
+-- 1 pgr_pushRelabel
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT flow
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], algorithm := 1, only_flow := true);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], $3::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, $2::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxCardinalityMatch(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'edge_disjoint_paths_many_to_many'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    bigint,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    IN directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_contractGraph(
+    edges_sql TEXT,
+    contraction_order BIGINT[],
+    max_cycles integer DEFAULT 1,
+    forbidden_vertices BIGINT[] DEFAULT ARRAY[]::BIGINT[],
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT type TEXT,
+    OUT id BIGINT,
+    OUT contracted_vertices BIGINT[],
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost float)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'contractGraph'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliver(
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_cell_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'pickDeliver'
+LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliverEuclidean (
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'pickDeliverEuclidean'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_vrpOneDepot(
+    TEXT, -- customers_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_sql
+    INTEGER, -- depot_id
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+orders_sql TEXT;
+trucks_sql TEXT;
+matrix_sql TEXT;
+final_sql TEXT;
+BEGIN
+
+    orders_sql = $$WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    pickups AS (
+        SELECT id, x AS p_x, y AS p_y, open_time AS p_open, close_time AS p_close, service_time AS p_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vrp_orders.id AS id, order_unit AS demand, pickups.id AS p_node_id, p_x, p_y, p_open, p_close, p_service,
+    vrp_orders.id AS d_node_id, x AS d_x, y AS d_y, open_time AS d_open, close_time AS d_close, service_time AS d_service
+    FROM vrp_orders, pickups
+    WHERE vrp_orders.id != $$ || $4;
+
+
+    trucks_sql = $$ WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    vrp_vehicles AS ($$ || $2 || $$ ),
+    starts AS (
+        SELECT id AS start_node_id, x AS start_x, y AS start_y, open_time AS start_open, close_time AS start_close, service_time AS start_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vehicle_id AS id, capacity, starts.* FROM vrp_vehicles, starts;
+    $$;
+
+    final_sql = '
+    SELECT * FROM _pgr_pickDeliver(
+            $$' || orders_sql || '$$,
+            $$' || trucks_sql || '$$,
+            $$' || $3 || '$$,
+            max_cycles := 2,
+            initial_sol := 4 ); ';
+
+    RAISE DEBUG '%', orders_sql;
+    RAISE DEBUG '%', trucks_sql;
+    RAISE DEBUG '%', $3;
+    RAISE DEBUG '%', final_sql;
+
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+-----------------------------------------------------------------------
+-- Core function for vrp with sigle depot computation
+-- See README for description
+-----------------------------------------------------------------------
+--
+--
+
+create or replace function pgr_vrpOneDepot(
+	order_sql text,
+	vehicle_sql text,
+	cost_sql text,
+	depot_id integer,
+
+	OUT oid integer,
+	OUT opos integer,
+	OUT vid integer,
+	OUT tarrival integer,
+	OUT tdepart integer)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT order_id::INTEGER, stop_seq::INTEGER, vehicle_id::INTEGER, arrival_time::INTEGER, departure_time::INTEGER
+    FROM _pgr_vrpOneDepot($1, $2,
+       '
+            SELECT src_id AS start_vid, dest_id AS end_vid, traveltime AS agg_cost FROM ('||$3||') AS a
+       ',
+        $4
+    ) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_gsoc_vrppdtw(
+    customers_sql TEXT,
+    max_vehicles INTEGER,
+    capacity FLOAT,
+    speed FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+
+    OUT seq INTEGER,
+    OUT vehicle_id INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT stop_id BIGINT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+    orders_sql TEXT;
+    vehicles_sql TEXT;
+    final_sql TEXT;
+BEGIN
+    orders_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        pickups AS (
+            SELECT id, demand, x as p_x, y as p_y, opentime as p_open, closetime as p_close, servicetime as p_service
+            FROM  customer_data WHERE pindex = 0 AND id != 0
+        ),
+        deliveries AS (
+            SELECT pindex AS id, x as d_x, y as d_y, opentime as d_open, closetime as d_close, servicetime as d_service
+            FROM  customer_data WHERE dindex = 0 AND id != 0
+        )
+        SELECT * FROM pickups JOIN deliveries USING(id) ORDER BY pickups.id
+    $$;
+
+    vehicles_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ )
+        SELECT id, x AS start_x, y AS start_y,
+            opentime AS start_open, closetime AS start_close, $$ ||
+            capacity || $$ AS capacity, $$ || max_vehicles || $$ AS number, $$ || speed || $$ AS speed
+            FROM customer_data WHERE id = 0 LIMIT 1
+        $$;
+--  seq | vehicle_id | vehicle_seq | stop_id | travel_time | arrival_time | wait_time | service_time | departure_time
+    final_sql = $$ WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        p_deliver AS (SELECT * FROM _pgr_pickDeliverEuclidean('$$ || orders_sql || $$',  '$$ || vehicles_sql || $$',  1, $$ || max_cycles || $$ )),
+        picks AS (SELECT p_deliver.*, pindex, dindex, id AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 2)),
+        delivers AS (SELECT p_deliver.*, pindex, dindex, dindex AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 3)),
+        depots AS (SELECT p_deliver.*, 0 as pindex, 0 as dindex, 0 AS the_id FROM p_deliver WHERE (stop_type IN (-1,1,6))),
+        the_union AS (SELECT * FROM picks UNION SELECT * FROM delivers UNION SELECT * from depots)
+
+        SELECT (row_number() over(ORDER BY a.seq))::INTEGER, vehicle_seq, a.stop_seq, the_id::BIGINT, a.travel_time, a.arrival_time, a.wait_time, a.service_time, a.departure_time
+        FROM (SELECT * FROM the_union) AS a ORDER BY a.seq
+        $$;
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+CREATE OR REPLACE FUNCTION pgr_gsoc_vrppdtw(
+    sql text,
+    vehicle_num INTEGER,
+    capacity INTEGER
+)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+customers_sql TEXT;
+BEGIN
+    RETURN query
+         SELECT a.seq, vehicle_id::INTEGER AS id1, stop_id::INTEGER AS id2, departure_time AS cost
+        FROM _pgr_gsoc_vrppdtw($1, $2, $3, 1, 30) AS a WHERE vehicle_id NOT IN (-2);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION _pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN,
+    driving_side CHAR,
+    details BOOLEAN,
+
+    only_cost BOOLEAN DEFAULT false, -- gets path
+    normal BOOLEAN DEFAULT true, -- false for many to onu
+
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'withPoints'
+LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], ARRAY[$4]::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], ARRAY[$4]::bigint[], $5, $6, $7, FALSE, FALSE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], $4::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], $4::BIGINT[], $5,  $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION  _pgr_withPointsVia(
+    sql text,
+    via_edges bigint[],
+    fraction float[],
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  has_rcost boolean;
+  sql_new_vertices text := ' ';
+  sql_on_vertex text;
+  v_union text := ' ';
+  dummyrec record;
+  rec1 record;
+  via_vertices int[];
+  sql_safe text;
+  new_edges text;
+  BEGIN
+     BEGIN
+        sql_safe = 'SELECT id, source, target, cost, reverse_cost FROM ('|| sql || ') AS __a';
+
+        EXECUTE 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||sql_safe||' ) AS __b__ limit 1 ' INTO rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+     END;
+
+
+      IF array_length(via_edges, 1) != array_length(fraction, 1) then
+        RAISE EXCEPTION 'The length of via_edges is different of length of via_edges';
+      END IF;
+
+      FOR i IN 1 .. array_length(via_edges, 1)
+      LOOP
+          IF fraction[i] = 0 THEN
+              sql_on_vertex := 'SELECT source FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.source;
+          ELSE IF fraction[i] = 1 THEN
+              sql_on_vertex := 'SELECT target FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.target;
+          ELSE
+              via_vertices[i] = -i;
+              IF has_rcost THEN
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost,
+                              reverse_cost * (1 - ' || fraction[i] || ')  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost,
+                              reverse_cost *  ' || fraction[i] || '  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' where id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               ELSE
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               END IF;
+          END IF;
+          END IF;
+     END LOOP;
+
+     IF sql_new_vertices = ' ' THEN
+         new_edges := sql;
+     ELSE
+         IF has_rcost THEN
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost,
+                         lead(cost) OVER w  - cost AS reverse_cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL),
+                   second_part AS ( SELECT * FROM (SELECT id, lead(source) OVER w  AS source, source as target,
+                         reverse_cost - lead(reverse_cost) OVER w  AS cost,
+                         reverse_cost - lead(reverse_cost) OVER w  AS reverse_cost
+                      FROM  the_union  WHERE target > 0 and reverse_cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY reverse_cost ASC) ) as n2
+                      WHERE source IS NOT NULL),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part)
+                             UNION
+                       (SELECT * FROM second_part) ) _union )
+                  SELECT *  FROM more_union';
+         ELSE
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL ),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part) ) _union )
+                  SELECT *  FROM more_union';
+          END IF;
+      END IF;
+
+ -- raise notice '%', new_edges;
+     sql_new_vertices := sql_new_vertices || v_union || ' (' || sql || ')';
+     RETURN query SELECT *
+         FROM pgr_dijkstraVia(new_edges, via_vertices, directed, has_rcost);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_lineGraph(
+    TEXT, -- edges_sql
+    directed BOOLEAN DEFAULT true,
+    OUT seq INTEGER,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost FLOAT,
+    OUT reverse_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'lineGraph'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_connectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'connectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_strongComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'strongComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_biconnectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the edge in the component
+    OUT n_seq INTEGER,          -- nth_seq of the edge in the component
+    OUT edge BIGINT)            -- the number of the edge
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'biconnectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_articulationPoints(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'articulationPoints'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_bridges(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT edge BIGINT)            -- the number of the edge 
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'bridges'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_createtopology(edge_table text, tolerance double precision,
+		   the_geom text default 'the_geom', id text default 'id',
+		   source text default 'source', target text default 'target',rows_where text default 'true',
+		   clean boolean default FALSE)
+RETURNS VARCHAR AS
+$BODY$
+
+DECLARE
+    points record;
+    sridinfo record;
+    source_id bigint;
+    target_id bigint;
+    totcount bigint;
+    rowcount bigint;
+    srid integer;
+    sql text;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    idname text;
+    sourcename text;
+    targetname text;
+    notincluded integer;
+    i integer;
+    naming record;
+    info record;
+    flag boolean;
+    query text;
+    idtype text;
+    gtype text;
+    sourcetype text;
+    targettype text;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+    msgKind int;
+    emptied BOOLEAN;
+
+BEGIN
+    msgKind = 1; -- notice
+    fnName = 'pgr_createTopology';
+    raise notice 'PROCESSING:';
+    raise notice 'pgr_createTopology(''%'', %, ''%'', ''%'', ''%'', ''%'', rows_where := ''%'', clean := %)',edge_table,tolerance,the_geom,id,source,target,rows_where, clean;
+    execute 'show client_min_messages' into debuglevel;
+
+
+    raise notice 'Performing checks, please wait .....';
+
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+        sname=naming.sname;
+        tname=naming.tname;
+        tabname=sname||'.'||tname;
+        vname=tname||'_vertices_pgr';
+        vertname= sname||'.'||vname;
+        rows_where = ' AND ('||rows_where||')';
+      raise DEBUG '     --> OK';
+
+
+      raise debug 'Checking column names in edge table';
+        select * into idname     from _pgr_getColumnName(sname, tname,id,2,fnName);
+        select * into sourcename from _pgr_getColumnName(sname, tname,source,2,fnName);
+        select * into targetname from _pgr_getColumnName(sname, tname,target,2,fnName);
+        select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2,fnName);
+
+
+        err = sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname;
+        perform _pgr_onError( err, 2, fnName,
+               'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
+	       'Column names are OK');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking column types in edge table';
+        select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+        select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+        select * into idtype from _pgr_getColumnType(sname,tname,idname,1, fnName);
+
+        err = idtype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column id:'|| idname, ' Expected type of '|| idname || ' is integer,smallint or bigint but '||idtype||' was found');
+
+        err = sourcetype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column source:'|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+        err = targettype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column target:'|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or bigint but '||targettype||' was found');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking SRID of geometry column';
+         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+            || ' FROM ' || _pgr_quote_ident(tabname)
+            || ' WHERE ' || quote_ident(gname)
+            || ' IS NOT NULL LIMIT 1';
+         raise debug '%',query;
+         EXECUTE query INTO sridinfo;
+
+         err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+         perform _pgr_onError(err, 2, fnName,
+	     'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+
+         srid := sridinfo.srid;
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking and creating indices in edge table';
+        perform _pgr_createIndex(sname, tname , idname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+
+        gname=quote_ident(gname);
+        idname=quote_ident(idname);
+        sourcename=quote_ident(sourcename);
+        targetname=quote_ident(targetname);
+      raise DEBUG '     --> OK';
+
+
+
+
+
+    BEGIN
+        -- issue #193 & issue #210 & #213
+        -- this sql is for trying out the where clause
+        -- the select * is to avoid any column name conflicts
+        -- limit 1, just try on first record
+        -- if the where clasuse is ill formed it will be caught in the exception
+        sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+        EXECUTE sql into dummyRec;
+        -- end
+
+        -- if above where clasue works this one should work
+        -- any error will be caught by the exception also
+        sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NOT NULL AND '||
+	    idname||' IS NOT NULL)=false '||rows_where;
+        EXECUTE SQL  into notincluded;
+
+        if clean then
+            raise debug 'Cleaning previous Topology ';
+               execute 'UPDATE ' || _pgr_quote_ident(tabname) ||
+               ' SET '||sourcename||' = NULL,'||targetname||' = NULL';
+        else
+            raise debug 'Creating topology for edges with non assigned topology';
+            if rows_where=' AND (true)' then
+                rows_where=  ' and ('||quote_ident(sourcename)||' is null or '||quote_ident(targetname)||' is  null)';
+            end if;
+        end if;
+        -- my thoery is that the select Count(*) will never go through here
+        EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+             RAISE NOTICE '%',sql;
+             RETURN 'FAIL';
+    END;
+
+    BEGIN
+         raise DEBUG 'initializing %',vertname;
+         execute 'select * from _pgr_getTableName('||quote_literal(vertname)
+                                                  || ',0,' || quote_literal(fnName) ||' )' into naming;
+         emptied = false;
+         set client_min_messages  to warning;
+         IF sname=naming.sname AND vname=naming.tname  THEN
+            if clean then
+                execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+                execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+                emptied = true;
+            end if;
+         ELSE -- table doesn't exist
+            execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+            emptied = true;
+         END IF;
+         IF (emptied) THEN
+             execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+	         quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+             perform _pgr_createIndex(vertname , 'the_geom'::text , 'gist'::text);
+         END IF;
+         execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id"}''::text[])' into naming;
+         execute 'set client_min_messages  to '|| debuglevel;
+         raise DEBUG  '  ------>OK';
+         EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: something went wrong when initializing the verties table';
+             RETURN 'FAIL';
+    END;
+
+
+
+    raise notice 'Creating Topology, Please wait...';
+        rowcount := 0;
+        FOR points IN EXECUTE 'SELECT ' || idname || '::bigint AS id,'
+            || ' _pgr_StartPoint(' || gname || ') AS source,'
+            || ' _pgr_EndPoint('   || gname || ') AS target'
+            || ' FROM '  || _pgr_quote_ident(tabname)
+            || ' WHERE ' || gname || ' IS NOT NULL AND ' || idname||' IS NOT NULL '||rows_where
+        LOOP
+
+            rowcount := rowcount + 1;
+            IF rowcount % 1000 = 0 THEN
+                RAISE NOTICE '% edges processed', rowcount;
+            END IF;
+
+
+            source_id := _pgr_pointToId(points.source, tolerance,vertname,srid);
+            target_id := _pgr_pointToId(points.target, tolerance,vertname,srid);
+            BEGIN
+                sql := 'UPDATE ' || _pgr_quote_ident(tabname) ||
+                    ' SET '||sourcename||' = '|| source_id::text || ','||targetname||' = ' || target_id::text ||
+                    ' WHERE ' || idname || ' =  ' || points.id::text;
+
+                IF sql IS NULL THEN
+                    RAISE NOTICE 'WARNING: UPDATE % SET source = %, target = % WHERE % = % ', tabname, source_id::text, target_id::text, idname,  points.id::text;
+                ELSE
+                    EXECUTE sql;
+                END IF;
+                EXCEPTION WHEN OTHERS THEN
+                    RAISE NOTICE '%', SQLERRM;
+                    RAISE NOTICE '%',sql;
+                    RETURN 'FAIL';
+            end;
+        END LOOP;
+        raise notice '-------------> TOPOLOGY CREATED FOR  % edges', rowcount;
+        RAISE NOTICE 'Rows with NULL geometry or NULL id: %',notincluded;
+        Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname), _pgr_quote_ident(vertname);
+        raise notice '----------------------------------------------';
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+COMMENT ON FUNCTION pgr_createTopology(text, double precision,text,text,text,text,text,boolean)
+IS 'args: edge_table,tolerance, the_geom:=''the_geom'',source:=''source'', target:=''target'',rows_where:=''true'' - fills columns source and target in the geometry table and creates a vertices table for selected rows';
+
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
+RETURNS character varying AS
+$BODY$
+
+DECLARE
+    points record;
+    seg record;
+    naming record;
+    sridinfo record;
+    srid integer;
+    ecnt integer;
+    vertname text;
+    sname text;
+    tname text;
+    vname text;
+    idname text;
+    sourcename text;
+    targetname text;
+    sourcetype text;
+    targettype text;
+    geotype text;
+    gname text;
+    tabName text;
+    flag boolean ;
+    query text;
+    selectionquery text;
+    i integer;
+    tot integer;
+    NumIsolated integer;
+    numdeadends integer;
+    numgaps integer;
+    NumCrossing integer;
+    numRings integer;
+    debuglevel text;
+
+
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_analyzeGraph(''%'',%,''%'',''%'',''%'',''%'',''%'')',edge_table,tolerance,the_geom,id,source,target,rows_where;
+  raise notice 'Performing checks, please wait ...';
+  execute 'show client_min_messages' into debuglevel;
+
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',2)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    rows_where = ' AND ('||rows_where||')';
+    raise DEBUG '     --> OK';
+
+  END;
+
+  BEGIN
+       raise debug 'Checking Vertices table';
+       execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","cnt","chk"}''::text[])' into naming;
+       execute 'UPDATE '||_pgr_quote_ident(vertname)||' SET cnt=0 ,chk=0';
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the vertices table';
+          RETURN 'FAIL';
+  END;
+
+
+
+  BEGIN
+       raise debug 'Checking column names in edge table';
+       select * into idname     from _pgr_getColumnName(sname, tname,id,2);
+       select * into sourcename from _pgr_getColumnName(sname, tname,source,2);
+       select * into targetname from _pgr_getColumnName(sname, tname,target,2);
+       select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2);
+
+
+       perform _pgr_onError( sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname, 2,
+                       'pgr_analyzeGraph',  'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
+                       'Column names are OK');
+
+        raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column names';
+          RETURN 'FAIL';
+  END;
+
+
+  BEGIN
+       raise debug 'Checking column types in edge table';
+       select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1);
+       select * into targettype from _pgr_getColumnType(sname,tname,targetname,1);
+
+       perform _pgr_onError(sourcetype not in('integer','smallint','bigint') , 2,
+                       'pgr_analyzeGraph',  'Wrong type of Column '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found',
+                       'Type of Column '|| sourcename || ' is ' || sourcetype);
+
+       perform _pgr_onError(targettype not in('integer','smallint','bigint') , 2,
+                       'pgr_analyzeGraph',  'Wrong type of Column '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found',
+                       'Type of Column '|| targetname || ' is ' || targettype);
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column types';
+          RETURN 'FAIL';
+   END;
+
+   BEGIN
+       raise debug 'Checking SRID of geometry column';
+         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+            || ' FROM ' || _pgr_quote_ident(tabname)
+            || ' WHERE ' || quote_ident(gname)
+            || ' IS NOT NULL LIMIT 1';
+         EXECUTE QUERY INTO sridinfo;
+
+         perform _pgr_onError( sridinfo IS NULL OR sridinfo.srid IS NULL,2,
+                 'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname,
+                 'SRID of '||gname||' is '||sridinfo.srid);
+
+         IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
+             RAISE NOTICE ' Can not determine the srid of the geometry "%" in table %', the_geom,tabname;
+             RETURN 'FAIL';
+         END IF;
+         srid := sridinfo.srid;
+         raise DEBUG '     --> OK';
+         EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM;--issue 210,211,213
+             RAISE NOTICE 'ERROR: something went wrong when checking for SRID of % in table %', the_geom,tabname;
+             RETURN 'FAIL';
+    END;
+
+
+    BEGIN
+       raise debug 'Checking  indices in edge table';
+       perform _pgr_createIndex(tabname , idname , 'btree');
+       perform _pgr_createIndex(tabname , sourcename , 'btree');
+       perform _pgr_createIndex(tabname , targetname , 'btree');
+       perform _pgr_createIndex(tabname , gname , 'gist');
+
+       gname=quote_ident(gname);
+       sourcename=quote_ident(sourcename);
+       targetname=quote_ident(targetname);
+       idname=quote_ident(idname);
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking indices';
+          RETURN 'FAIL';
+    END;
+
+
+    BEGIN
+        query='select count(*) from '||_pgr_quote_ident(tabname)||' where true  '||rows_where;
+        EXECUTE query into ecnt;
+        raise DEBUG '-->Rows Where condition: OK';
+        raise DEBUG '     --> OK';
+         EXCEPTION WHEN OTHERS THEN
+            RAISE NOTICE 'Got %', SQLERRM;  --issue 210,211,213
+            RAISE NOTICE 'ERROR: Condition is not correct. Please execute the following query to test your condition';
+            RAISE NOTICE '%',query;
+            RETURN 'FAIL';
+    END;
+
+    selectionquery ='with
+           selectedRows as( (select '||sourcename||' as id from '||_pgr_quote_ident(tabname)||' where true '||rows_where||')
+                           union
+                           (select '||targetname||' as id from '||_pgr_quote_ident(tabname)||' where true '||rows_where||'))';
+
+
+
+
+
+   BEGIN
+       RAISE NOTICE 'Analyzing for dead ends. Please wait...';
+       query= 'with countingsource as (select a.'||sourcename||' as id,count(*) as cnts
+               from (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) a  group by a.'||sourcename||')
+                     ,countingtarget as (select a.'||targetname||' as id,count(*) as cntt
+                    from (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) a  group by a.'||targetname||')
+                   ,totalcount as (select id,case when cnts is null and cntt is null then 0
+                                                   when cnts is null then cntt
+                                                   when cntt is null then cnts
+                                                   else cnts+cntt end as totcnt
+                                   from ('||_pgr_quote_ident(vertname)||' as a left
+                                   join countingsource as t using(id) ) left join countingtarget using(id))
+               update '||_pgr_quote_ident(vertname)||' as a set cnt=totcnt from totalcount as b where a.id=b.id';
+       raise debug '%',query;
+       execute query;
+       query=selectionquery||'
+              SELECT count(*)  FROM '||_pgr_quote_ident(vertname)||' WHERE cnt=1 and id in (select id from selectedRows)';
+       raise debug '%',query;
+       execute query  INTO numdeadends;
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'Got %', SQLERRM;  --issue 210,211,213
+          RAISE NOTICE 'ERROR: something went wrong when analizing for dead ends';
+          RETURN 'FAIL';
+   END;
+
+
+
+    BEGIN
+          RAISE NOTICE 'Analyzing for gaps. Please wait...';
+          query = 'with
+                   buffer as (select id,st_buffer(the_geom,'||tolerance||') as buff from '||_pgr_quote_ident(vertname)||' where cnt=1)
+                   ,veryclose as (select b.id,st_crosses(a.'||gname||',b.buff) as flag
+                   from  (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) as a
+                   join buffer as b on (a.'||gname||'&&b.buff)
+                   where '||sourcename||'!=b.id and '||targetname||'!=b.id )
+                   update '||_pgr_quote_ident(vertname)||' set chk=1 where id in (select distinct id from veryclose where flag=true)';
+          raise debug '%' ,query;
+          execute query;
+          GET DIAGNOSTICS  numgaps= ROW_COUNT;
+          raise DEBUG '     --> OK';
+          EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for gaps';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for isolated edges. Please wait...';
+        query=selectionquery|| ' SELECT count(*) FROM (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' )  as a,
+                                                 '||_pgr_quote_ident(vertname)||' as b,
+                                                 '||_pgr_quote_ident(vertname)||' as c
+                            WHERE b.id in (select id from selectedRows) and a.'||sourcename||' =b.id
+                            AND b.cnt=1 AND a.'||targetname||' =c.id
+                            AND c.cnt=1';
+        raise debug '%' ,query;
+        execute query  INTO NumIsolated;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for isolated edges';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for ring geometries. Please wait...';
+        execute 'SELECT geometrytype('||gname||')  FROM '||_pgr_quote_ident(tabname) limit 1 into geotype;
+        IF (geotype='MULTILINESTRING') THEN
+            query ='SELECT count(*)  FROM '||_pgr_quote_ident(tabname)||'
+                                 WHERE true  '||rows_where||' and st_isRing(st_linemerge('||gname||'))';
+            raise debug '%' ,query;
+            execute query  INTO numRings;
+        ELSE query ='SELECT count(*)  FROM '||_pgr_quote_ident(tabname)||'
+                                  WHERE true  '||rows_where||' and st_isRing('||gname||')';
+            raise debug '%' ,query;
+            execute query  INTO numRings;
+        END IF;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for ring geometries';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for intersections. Please wait...';
+        query = 'select count(*) from (select distinct case when a.'||idname||' < b.'||idname||' then a.'||idname||'
+                                                        else b.'||idname||' end,
+                                                   case when a.'||idname||' < b.'||idname||' then b.'||idname||'
+                                                        else a.'||idname||' end
+                                    FROM (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||') as a
+                                    JOIN (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||') as b
+                                    ON (a.'|| gname||' && b.'||gname||')
+                                    WHERE a.'||idname||' != b.'||idname|| '
+                                        and (a.'||sourcename||' in (b.'||sourcename||',b.'||targetname||')
+                                              or a.'||targetname||' in (b.'||sourcename||',b.'||targetname||')) = false
+                                        and st_intersects(a.'||gname||', b.'||gname||')=true) as d ';
+        raise debug '%' ,query;
+        execute query  INTO numCrossing;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for intersections';
+            RETURN 'FAIL';
+    END;
+
+
+
+
+    RAISE NOTICE '            ANALYSIS RESULTS FOR SELECTED EDGES:';
+    RAISE NOTICE '                  Isolated segments: %', NumIsolated;
+    RAISE NOTICE '                          Dead ends: %', numdeadends;
+    RAISE NOTICE 'Potential gaps found near dead ends: %', numgaps;
+    RAISE NOTICE '             Intersections detected: %',numCrossing;
+    RAISE NOTICE '                    Ring geometries: %',numRings;
+
+
+    RETURN 'OK';
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+COMMENT ON FUNCTION pgr_analyzeGraph(text,double precision,text,text,text,text,text) IS 'args: edge_table, tolerance,the_geom:=''the_geom'',id:=''id'',source column:=''source'', target column:=''target'' rows_where:=''true'' - creates a vertices table based on the geometry for selected rows';
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_analyzeOneway(
+   edge_table text,
+   s_in_rules TEXT[],
+   s_out_rules TEXT[],
+   t_in_rules TEXT[],
+   t_out_rules TEXT[],
+   two_way_if_null boolean default true,
+   oneway text default 'oneway',
+   source text default 'source',
+   target text default 'target')
+  RETURNS text AS
+$BODY$
+
+
+DECLARE
+    rule text;
+    ecnt integer;
+    instr text;
+    naming record;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    owname text;
+    sourcename text;
+    targetname text;
+    sourcetype text;
+    targettype text;
+    vertname text;
+    debuglevel text;
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_analyzeOneway(''%'',''%'',''%'',''%'',''%'',''%'',''%'',''%'',%)',
+		edge_table, s_in_rules , s_out_rules, t_in_rules, t_out_rules, oneway, source ,target,two_way_if_null ;
+  execute 'show client_min_messages' into debuglevel;
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',2)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    raise DEBUG '     --> OK';
+    EXCEPTION WHEN raise_exception THEN
+      RAISE NOTICE 'ERROR: something went wrong checking the table name';
+      RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise debug 'Checking Vertices table';
+       execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","ein","eout"}''::text[])' into naming;
+       execute 'UPDATE '||_pgr_quote_ident(vertname)||' SET eout=0 ,ein=0';
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the vertices table';
+          RETURN 'FAIL';
+  END;
+
+
+  BEGIN
+       raise debug 'Checking column names in edge table';
+       select * into sourcename from _pgr_getColumnName(sname, tname,source,2);
+       select * into targetname from _pgr_getColumnName(sname, tname,target,2);
+       select * into owname from _pgr_getColumnName(sname, tname,oneway,2);
+
+
+       perform _pgr_onError( sourcename in (targetname,owname) or  targetname=owname, 2,
+                       '_pgr_createToplogy',  'Two columns share the same name', 'Parameter names for oneway,source and target  must be different',
+                       'Column names are OK');
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column names';
+          RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise debug 'Checking column types in edge table';
+       select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1);
+       select * into targettype from _pgr_getColumnType(sname,tname,targetname,1);
+
+
+       perform _pgr_onError(sourcetype not in('integer','smallint','bigint') , 2,
+                       '_pgr_createTopology',  'Wrong type of Column '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found',
+                       'Type of Column '|| sourcename || ' is ' || sourcetype);
+
+       perform _pgr_onError(targettype not in('integer','smallint','bigint') , 2,
+                       '_pgr_createTopology',  'Wrong type of Column '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found',
+                       'Type of Column '|| targetname || ' is ' || targettype);
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column types';
+          RETURN 'FAIL';
+   END;
+
+
+
+    RAISE NOTICE 'Analyzing graph for one way street errors.';
+
+    rule := CASE WHEN two_way_if_null
+            THEN owname || ' IS NULL OR '
+            ELSE '' END;
+
+    instr := '''' || array_to_string(s_in_rules, ''',''') || '''';
+       EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set ein=coalesce(ein,0)+b.cnt
+      from (
+         select '|| sourcename ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| sourcename ||' ) b
+     where a.id=b.'|| sourcename;
+
+    RAISE NOTICE 'Analysis 25%% complete ...';
+
+    instr := '''' || array_to_string(t_in_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set ein=coalesce(ein,0)+b.cnt
+        from (
+         select '|| targetname ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| targetname ||' ) b
+        where a.id=b.'|| targetname;
+
+    RAISE NOTICE 'Analysis 50%% complete ...';
+
+    instr := '''' || array_to_string(s_out_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set eout=coalesce(eout,0)+b.cnt
+        from (
+         select '|| sourcename ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| sourcename ||' ) b
+        where a.id=b.'|| sourcename;
+    RAISE NOTICE 'Analysis 75%% complete ...';
+
+    instr := '''' || array_to_string(t_out_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set eout=coalesce(eout,0)+b.cnt
+        from (
+         select '|| targetname ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| targetname ||' ) b
+        where a.id=b.'|| targetname;
+
+    RAISE NOTICE 'Analysis 100%% complete ...';
+
+    EXECUTE 'SELECT count(*)  FROM '||_pgr_quote_ident(vertname)||' WHERE ein=0 or eout=0' INTO ecnt;
+
+    RAISE NOTICE 'Found % potential problems in directionality' ,ecnt;
+
+    RETURN 'OK';
+
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+COMMENT ON FUNCTION pgr_analyzeOneway(text,TEXT[],TEXT[], TEXT[],TEXT[],boolean,text,text,text)
+IS 'args:edge_table , s_in_rules , s_out_rules, t_in_rules , t_out_rules, two_way_if_null:= true, oneway:=''oneway'',source:= ''source'',target:=''target'' - Analizes the directionality of the edges based on the rules';
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_createverticestable(
+   edge_table text,
+   the_geom text DEFAULT 'the_geom'::text,
+   source text DEFAULT 'source'::text,
+   target text DEFAULT 'target'::text,
+    rows_where text DEFAULT 'true'::text
+)
+  RETURNS text AS
+$BODY$
+DECLARE
+    naming record;
+    sridinfo record;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    sourcename text;
+    targetname text;
+    query text;
+    ecnt bigint;
+    srid integer;
+    sourcetype text;
+    targettype text;
+    sql text;
+    totcount integer;
+    i integer;
+    notincluded integer;
+    included integer;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+
+
+BEGIN
+  fnName = 'pgr_createVerticesTable';
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_createVerticesTable(''%'',''%'',''%'',''%'',''%'')',edge_table,the_geom,source,target,rows_where;
+  execute 'show client_min_messages' into debuglevel;
+
+  raise notice 'Performing checks, please wait .....';
+
+  RAISE DEBUG 'Checking % exists',edge_table;
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    rows_where = ' AND ('||rows_where||')';
+  raise debug '--> Edge table exists: OK';
+
+  raise debug 'Checking column names';
+    select * into sourcename from _pgr_getColumnName(sname, tname,source,2, fnName);
+    select * into targetname from _pgr_getColumnName(sname, tname,target,2, fnName);
+    select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2, fnName);
+
+
+    err = sourcename in (targetname,gname) or  targetname=gname;
+    perform _pgr_onError(err, 2, fnName,
+        'Two columns share the same name', 'Parameter names for the_geom,source and target  must be different');
+  raise debug '--> Column names: OK';
+
+  raise debug 'Checking column types in edge table';
+    select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+    select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+
+
+    err = sourcetype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column source: '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+    err = targettype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column target: '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found');
+
+  raise debug '-->Column types:OK';
+
+  raise debug 'Checking SRID of geometry column';
+     query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+        || ' FROM ' || _pgr_quote_ident(tabname)
+        || ' WHERE ' || quote_ident(gname)
+        || ' IS NOT NULL LIMIT 1';
+     raise debug '%',query;
+     EXECUTE query INTO sridinfo;
+
+     err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+     perform _pgr_onError(err, 2, fnName,
+         'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+     srid := sridinfo.srid;
+  raise DEBUG '     --> OK';
+
+  raise debug 'Checking and creating Indices';
+     perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+  raise DEBUG '-->Check and create indices: OK';
+
+     gname=quote_ident(gname);
+     sourcename=quote_ident(sourcename);
+     targetname=quote_ident(targetname);
+
+
+  BEGIN
+  raise debug 'Checking Condition';
+    -- issue #193 & issue #210 & #213
+    -- this sql is for trying out the where clause
+    -- the select * is to avoid any column name conflicts
+    -- limit 1, just try on first record
+    -- if the where clasuse is ill formed it will be caught in the exception
+    sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+    EXECUTE sql into dummyRec;
+    -- end
+
+    -- if above where clasue works this one should work
+    -- any error will be caught by the exception also
+    sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NULL or '||
+		sourcename||' is null or '||targetname||' is null)=true '||rows_where;
+    raise debug '%',sql;
+    EXECUTE SQL  into notincluded;
+    EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+
+
+
+  BEGIN
+     raise DEBUG 'initializing %',vertname;
+       execute 'select * from _pgr_getTableName('||quote_literal(vertname)||',0)' into naming;
+       IF sname=naming.sname  AND vname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+       ELSE
+           set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+       END IF;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+                quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+       execute 'CREATE INDEX '||quote_ident(vname||'_the_geom_idx')||' ON '||_pgr_quote_ident(vertname)||'  USING GIST (the_geom)';
+       execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+       EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Initializing vertex table';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise notice 'Populating %, please wait...',vertname;
+       sql= 'with
+		lines as ((select distinct '||sourcename||' as id, _pgr_startpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+		                  ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||')
+			union (select distinct '||targetname||' as id,_pgr_endpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+			          ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||'))
+		,numberedLines as (select row_number() OVER (ORDER BY id) AS i,* from lines )
+		,maxid as (select id,max(i) as maxi from numberedLines group by id)
+		insert into '||_pgr_quote_ident(vertname)||'(id,the_geom)  (select id,the_geom  from numberedLines join maxid using(id) where i=maxi order by id)';
+       RAISE debug '%',sql;
+       execute sql;
+       GET DIAGNOSTICS totcount = ROW_COUNT;
+
+       sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' a, '||_pgr_quote_ident(vertname)||' b
+            where '||sourcename||'=b.id and '|| targetname||' in (select id from '||_pgr_quote_ident(vertname)||')';
+       RAISE debug '%',sql;
+       execute sql into included;
+
+
+
+       execute 'select max(id) from '||_pgr_quote_ident(vertname) into ecnt;
+       execute 'SELECT setval('||quote_literal(vertname||'_id_seq')||','||coalesce(ecnt,1)||' , false)';
+       raise notice '  ----->   VERTICES TABLE CREATED WITH  % VERTICES', totcount;
+       raise notice '                                       FOR   %  EDGES', included+notincluded;
+       RAISE NOTICE '  Edges with NULL geometry,source or target: %',notincluded;
+       RAISE NOTICE '                            Edges processed: %',included;
+       Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname),_pgr_quote_ident(vertname);
+       raise notice '----------------------------------------------';
+    END;
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+COMMENT ON FUNCTION pgr_createVerticesTable(text,text,text,text,text)
+IS 'args: edge_table, the_geom:=''the_geom'',source:=''source'', target:=''target'' rows_where:=''true'' - creates a vertices table based on the source and target identifiers for selected rows';
+
+
+CREATE OR REPLACE FUNCTION pgr_nodeNetwork(edge_table text, tolerance double precision,
+			id text default 'id', the_geom text default 'the_geom', table_ending text default 'noded',
+            rows_where text DEFAULT ''::text, outall boolean DEFAULT false) RETURNS text AS
+$BODY$
+DECLARE
+	
+	p_num int := 0;
+	p_ret text := '';
+    pgis_ver_old boolean := _pgr_versionless(postgis_lib_version(), '2.1.0.0');
+    vst_line_substring text;
+    vst_line_locate_point text;
+    intab text;
+    outtab text;
+    n_pkey text;
+    n_geom text;
+    naming record;
+    sname text;
+    tname text;
+    outname text;
+    srid integer;
+    sridinfo record;
+    splits bigint;
+    touched bigint;
+    untouched bigint;
+    geomtype text;
+    debuglevel text;
+    rows_where text;
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_nodeNetwork(''%'', %, ''%'', ''%'', ''%'', ''%'',  %)',
+    edge_table, tolerance, id,  the_geom, table_ending, rows_where, outall;
+  raise notice 'Performing checks, please wait .....';
+  execute 'show client_min_messages' into debuglevel;
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',0)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+	RAISE NOTICE '-------> % not found',edge_table;
+        RETURN 'FAIL';
+    ELSE
+	RAISE DEBUG '  -----> OK';
+    END IF;
+
+    intab=sname||'.'||tname;
+    outname=tname||'_'||table_ending;
+    outtab= sname||'.'||outname;
+    rows_where = CASE WHEN length(rows_where) > 2 and not outall THEN ' AND (' || rows_where || ')' ELSE '' END;
+    rows_where = CASE WHEN length(rows_where) > 2 THEN ' WHERE (' || rows_where || ')' ELSE '' END;
+  END;
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',id,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(id)||')' INTO n_pkey;
+       IF n_pkey is NULL then
+          raise notice  'ERROR: id column "%"  not found in %',id,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',the_geom,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(the_geom)||')' INTO n_geom;
+       IF n_geom is NULL then
+          raise notice  'ERROR: the_geom  column "%"  not found in %',the_geom,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+  IF n_pkey=n_geom THEN
+	raise notice  'ERROR: id and the_geom columns have the same name "%" in %',n_pkey,intab;
+        RETURN 'FAIL';
+  END IF;
+
+  BEGIN
+       	raise DEBUG 'Checking the SRID of the geometry "%"', n_geom;
+       	EXECUTE 'SELECT ST_SRID(' || quote_ident(n_geom) || ') as srid '
+          		|| ' FROM ' || _pgr_quote_ident(intab)
+          		|| ' WHERE ' || quote_ident(n_geom)
+          		|| ' IS NOT NULL LIMIT 1' INTO sridinfo;
+       	IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
+        	RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           	RETURN 'FAIL';
+       	END IF;
+       	srid := sridinfo.srid;
+       	raise DEBUG '  -----> SRID found %',srid;
+       	EXCEPTION WHEN OTHERS THEN
+           		RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           		RETURN 'FAIL';
+  END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_pkey,intab;
+      if (_pgr_isColumnIndexed(intab,n_pkey)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding  index "%_%_idx".',n_pkey,intab;
+
+	set client_min_messages  to warning;
+        execute 'create  index '||tname||'_'||n_pkey||'_idx on '||_pgr_quote_ident(intab)||' using btree('||quote_ident(n_pkey)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_geom,intab;
+      if (_pgr_iscolumnindexed(intab,n_geom)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding unique index "%_%_gidx".',intab,n_geom;
+	set client_min_messages  to warning;
+        execute 'CREATE INDEX '
+            || quote_ident(tname || '_' || n_geom || '_gidx' )
+            || ' ON ' || _pgr_quote_ident(intab)
+            || ' USING gist (' || quote_ident(n_geom) || ')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+---------------
+    BEGIN
+       raise DEBUG 'initializing %',outtab;
+       execute 'select * from _pgr_getTableName('||quote_literal(outtab)||',0)' into naming;
+       IF sname=naming.sname  AND outname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(outtab)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(outname)||','||quote_literal(n_geom)||')';
+       ELSE
+	   set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(outtab)||' (id bigserial PRIMARY KEY,old_id integer,sub_id integer,
+								source bigint,target bigint)';
+       END IF;
+       execute 'select geometrytype('||quote_ident(n_geom)||') from  '||_pgr_quote_ident(intab)||' limit 1' into geomtype;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(outname)||','||
+                quote_literal(n_geom)||','|| srid||', '||quote_literal(geomtype)||', 2)';
+       execute 'CREATE INDEX '||quote_ident(outname||'_'||n_geom||'_idx')||' ON '||_pgr_quote_ident(outtab)||'  USING GIST ('||quote_ident(n_geom)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+    END;
+----------------
+
+
+  raise notice 'Processing, please wait .....';
+
+
+    if pgis_ver_old then
+        vst_line_substring    := 'st_line_substring';
+        vst_line_locate_point := 'st_line_locate_point';
+    else
+        vst_line_substring    := 'st_linesubstring';
+        vst_line_locate_point := 'st_linelocatepoint';
+    end if;
+
+--    -- First creates temp table with intersection points
+    p_ret = 'create temp table intergeom on commit drop as (
+        select l1.' || quote_ident(n_pkey) || ' as l1id,
+               l2.' || quote_ident(n_pkey) || ' as l2id,
+	       l1.' || quote_ident(n_geom) || ' as line,
+	       _pgr_startpoint(l2.' || quote_ident(n_geom) || ') as source,
+	       _pgr_endpoint(l2.' || quote_ident(n_geom) || ') as target,
+               st_intersection(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ') as geom
+        from (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l1
+             join (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l2
+             on (st_dwithin(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ', ' || tolerance || '))'||
+        'where l1.' || quote_ident(n_pkey) || ' <> l2.' || quote_ident(n_pkey)||' and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false  )';
+    raise debug '%',p_ret;
+    EXECUTE p_ret;
+
+    -- second temp table with locus (index of intersection point on the line)
+    -- to avoid updating the previous table
+    -- we keep only intersection points occurring onto the line, not at one of its ends
+--    drop table if exists inter_loc;
+
+--HAD TO CHANGE THIS QUERY
+-- p_ret= 'create temp table inter_loc on commit drop as (
+--        select l1id, l2id, ' || vst_line_locate_point || '(line,point) as locus from (
+--        select DISTINCT l1id, l2id, line, (ST_DumpPoints(geom)).geom as point from intergeom) as foo
+--        where ' || vst_line_locate_point || '(line,point)<>0 and ' || vst_line_locate_point || '(line,point)<>1)';
+    p_ret= 'create temp table inter_loc on commit drop as ( select * from (
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,source) as locus from intergeom)
+         union
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,target) as locus from intergeom)) as foo
+        where locus<>0 and locus<>1)';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+
+    -- index on l1id
+    create index inter_loc_id_idx on inter_loc(l1id);
+
+    -- Then computes the intersection on the lines subset, which is much smaller than full set
+    -- as there are very few intersection points
+
+--- outab needs to be formally created with id, old_id, subid,the_geom, source,target
+---  so it can be inmediatly be used with createTopology
+
+--   EXECUTE 'drop table if exists ' || _pgr_quote_ident(outtab);
+--   EXECUTE 'create table ' || _pgr_quote_ident(outtab) || ' as
+     P_RET = 'insert into '||_pgr_quote_ident(outtab)||' (old_id,sub_id,'||quote_ident(n_geom)||') (  with cut_locations as (
+           select l1id as lid, locus
+           from inter_loc
+           -- then generates start and end locus for each line that have to be cut buy a location point
+           UNION ALL
+           select i.l1id  as lid, 0 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           UNION ALL
+           select i.l1id  as lid, 1 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           order by lid, locus
+       ),
+       -- we generate a row_number index column for each input line
+       -- to be able to self-join the table to cut a line between two consecutive locations
+       loc_with_idx as (
+           select lid, locus, row_number() over (partition by lid order by locus) as idx
+           from cut_locations
+       )
+       -- finally, each original line is cut with consecutive locations using linear referencing functions
+       select l.' || quote_ident(n_pkey) || ', loc1.idx as sub_id, ' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus) as ' || quote_ident(n_geom) || '
+       from loc_with_idx loc1 join loc_with_idx loc2 using (lid) join ' || _pgr_quote_ident(intab) || ' l on (l.' || quote_ident(n_pkey) || ' = loc1.lid)
+       where loc2.idx = loc1.idx+1
+           -- keeps only linestring geometries
+           and geometryType(' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus)) = ''LINESTRING'') ';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+	GET DIAGNOSTICS splits = ROW_COUNT;
+        execute 'with diff as (select distinct old_id from '||_pgr_quote_ident(outtab)||' )
+                 select count(*) from diff' into touched;
+	-- here, it misses all original line that did not need to be cut by intersection points: these lines
+	-- are already clean
+	-- inserts them in the final result: all lines which gid is not in the res table.
+	EXECUTE 'insert into ' || _pgr_quote_ident(outtab) || ' (old_id , sub_id, ' || quote_ident(n_geom) || ')
+                ( with used as (select distinct old_id from '|| _pgr_quote_ident(outtab)||')
+		select ' ||  quote_ident(n_pkey) || ', 1 as sub_id, ' ||  quote_ident(n_geom) ||
+		' from '|| _pgr_quote_ident(intab) ||' where  '||quote_ident(n_pkey)||' not in (select * from used)' || rows_where || ')';
+	GET DIAGNOSTICS untouched = ROW_COUNT;
+
+	raise NOTICE '  Split Edges: %', touched;
+	raise NOTICE ' Untouched Edges: %', untouched;
+	raise NOTICE '     Total original Edges: %', touched+untouched;
+        RAISE NOTICE ' Edges generated: %', splits;
+	raise NOTICE ' Untouched Edges: %',untouched;
+	raise NOTICE '       Total New segments: %', splits+untouched;
+        RAISE NOTICE ' New Table: %', outtab;
+        RAISE NOTICE '----------------------------------';
+
+    drop table  if exists intergeom;
+    drop table if exists inter_loc;
+    RETURN 'OK';
+END;
+$BODY$
+    LANGUAGE 'plpgsql' VOLATILE STRICT COST 100;
+
+
+COMMENT ON FUNCTION pgr_nodeNetwork(text, double precision, text, text, text, text, boolean )
+ IS  'edge_table, tolerance, id:=''id'', the_geom:=''the_geom'', table_ending:=''noded'' ';
+
+
+CREATE OR REPLACE FUNCTION pgr_labelGraph(
+                edge_table text,
+                id text default 'id',
+                source text default 'source',
+                target text default 'target',
+                subgraph text default 'subgraph',
+                rows_where text default 'true'
+        )
+        RETURNS character varying AS
+$BODY$
+
+DECLARE
+        naming record;
+        schema_name text;
+        table_name text;
+        garbage text;
+        incre integer;
+        table_schema_name text;
+        query text;
+        ecnt integer;
+        sql1 text;
+        rec1 record;
+        sql2 text;
+        rec2 record;
+        rec_count record;
+        rec_single record;
+        graph_id integer;
+        gids int [];
+
+BEGIN
+        raise notice 'Processing:';
+        raise notice 'pgr_brokenGraph(''%'',''%'',''%'',''%'',''%'',''%'')', edge_table,id,source,target,subgraph,rows_where;
+        raise notice 'Performing initial checks, please hold on ...';
+
+        Raise Notice 'Starting - Checking table ...';
+        BEGIN
+                raise debug 'Checking % table existance', edge_table;
+                execute 'select * from pgr_getTableName('|| quote_literal(edge_table) ||')' into naming;
+                schema_name = naming.sname;
+                table_name = naming.tname;
+                table_schema_name = schema_name||'.'||table_name;
+                IF schema_name is null then
+                        raise notice 'no schema';
+                        return 'FAIL';
+                else
+                        if table_name is null then
+                                raise notice 'no table';
+                                return 'FAIL';
+                        end if;
+                end if;
+        END;
+        Raise Notice 'Ending - Checking table';
+
+        Raise Notice 'Starting - Checking columns';
+        BEGIN
+                raise debug 'Checking exitance of necessary columns inside % table', edge_table;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(id) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no id column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(source) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no source column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(target) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no target column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(subgraph) ||')' into naming;
+                if naming.pgr_iscolumnintable = 't' then
+                        raise notice 'subgraph column already in the table';
+                        return 'FAIL';
+                end if;
+        END;
+        Raise Notice 'Ending - Checking columns';
+
+        Raise Notice 'Starting - Checking rows_where condition';
+        BEGIN
+                raise debug 'Checking rows_where condition';
+                query='select count(*) from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where;
+                execute query into ecnt;
+                raise debug '-->Rows where condition: OK';
+                raise debug '    --> OK';
+                EXCEPTION WHEN OTHERS THEN
+                        raise notice 'Got %', SQLERRM;
+                        Raise notice 'ERROR: Condition is not correct. Please execute the following query to test your condition';
+                        Raise notice '%', query;
+                        return 'FAIL';
+        END;
+        Raise Notice 'Ending - Checking rows_where condition';
+
+        garbage := 'garbage001';
+        incre := 1;
+        Raise Notice 'Starting - Checking temporary column';
+        Begin
+                raise debug 'Checking Checking temporary columns existance';
+
+                While True
+                        Loop
+                                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(garbage) ||')' into naming;
+                                If naming.pgr_iscolumnintable = 't' THEN
+                                        incre := incre + 1;
+                                        garbage := 'garbage00'||incre||'';
+                                ELSE
+                                        EXIT;
+                                END IF;
+                        End Loop;
+        End;
+        Raise Notice 'Ending - Checking temporary column';
+
+        Raise Notice 'Starting - Calculating subgraphs';
+        BEGIN
+                --------- Add necessary columns ----------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(subgraph) || ' INTEGER DEFAULT -1';
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(garbage) || ' INTEGER DEFAULT 0';
+                graph_id := 1;
+
+                EXECUTE 'select count(*) as count from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where ||'' into rec_count;
+                if rec_count.count = 0 then
+                        RETURN 'rows_where condition generated 0 rows';
+                end if;
+
+                WHILE TRUE
+                        LOOP
+                                ---------- Assign the very first -1 row graph_id ----------
+                                EXECUTE 'SELECT ' || pgr_quote_ident(id) || ' AS gid FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1 LIMIT 1' INTO rec_single;
+                                EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec_single.gid || '';
+
+                                --------- Search other rows with that particular graph_id -----------
+                                WHILE TRUE
+                                        LOOP
+                                                EXECUTE 'SELECT COUNT(*) FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0' into rec_count;
+                                                ----------- The following if else will check those rows which already have entertained ------------
+                                                IF (rec_count.count > 0) THEN
+                                                        sql1 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0';
+                                                        FOR rec1 IN EXECUTE sql1
+                                                                LOOP
+                                                                        sql2 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| pgr_quote_ident(source) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(source) ||' = '|| rec1.target ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.target ||'';
+                                                                        FOR rec2 IN EXECUTE sql2
+                                                                                LOOP
+                                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec2.gid || '';
+                                                                                END LOOP;
+                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(garbage) || ' = 1 WHERE ' || pgr_quote_ident(id) || ' = ' || rec1.gid || '';
+                                                                END LOOP;
+                                                ELSE
+                                                        EXIT;
+                                                END IF;
+                                        END LOOP;
+
+                                ------ Following is to exit the while loop. 0 means no more -1 id.
+                                EXECUTE 'SELECT COUNT(*) AS count FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1' INTO rec_count;
+                                If (rec_count.count = 0) THEN
+                                        EXIT;
+                                ELSE
+                                        graph_id := graph_id + 1;
+                                END IF;
+                        END LOOP;
+
+                ----------- Drop garbage column ------------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' DROP COLUMN ' || pgr_quote_ident(garbage) ||'';
+                Raise Notice 'Successfully complicated calculating subgraphs';
+        END;
+        Raise Notice 'Ending - Calculating subgraphs';
+
+        RETURN 'OK';
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCostMatrix(
+    edges_sql TEXT,
+    points_sql TEXT,
+    pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_pid, a.end_pid, a.agg_cost
+        FROM _pgr_withPoints($1, $2, $3, $3, $4,  $5, TRUE, TRUE) AS a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+--  DIJKSTRA DMatrix
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCostMatrix(edges_sql TEXT, vids ANYARRAY, directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2, $2, $3, true) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+
+--  BIDIRECTIONAL DIJKSTRA Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCostMatrix(edges_sql TEXT, vids ANYARRAY, directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_astarCostMatrix(
+    edges_sql TEXT, -- XY edges sql
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2, $2, $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+--  BIDIRECTIONAL ASTAR Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdAstarCostMatrix(
+    edges_sql TEXT,
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_bdAstarCostMatrix(TEXT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCostMatrix';
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_getTableName(IN tab text,OUT sname text,OUT tname text)
+RETURNS RECORD AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getTableName: This function will no longer be soported';
+    select * from _pgr_getTableName(tab, 0, 'pgr_getTableName') into sname,tname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_getColumnName(tab text, col text)
+RETURNS text AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getColumnName: This function will no longer be soported';
+    return _pgr_getColumnName(tab,col, 0, 'pgr_getColumnName');
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    select * from _pgr_getColumnName(tab,col,0, 'pgr_isColumnInTable') into cname;
+    return  cname IS not NULL;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnIndexed(tab text, col text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnIndexed: This function will no longer be soported';
+    return  _pgr_isColumnIndexed(tab,col);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+create or replace function pgr_quote_ident(idname text)
+returns text as
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    return  _pgr_quote_ident(idname);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_versionless(v1 text, v2 text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_versionless: This function will no longer be soported';
+    return  _pgr_versionless(v1,v2);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+create or replace function pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_startPoint: This function will no longer be soported';
+    return  _pgr_startPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_endPoint: This function will no longer be soported';
+    return  _pgr_endPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_apspJohnson(edges_sql text)
+    RETURNS SETOF pgr_costResult AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function: Use pgr_johnson instead';
+      has_reverse =_pgr_parameter_check('johnson', edges_sql, false);
+      sql = edges_sql;
+      IF (has_reverse) THEN
+           RAISE NOTICE 'reverse_cost column found, removing.';
+           sql = 'SELECT source, target, cost FROM (' || edges_sql || ') a';
+      END IF;
+
+      RETURN query
+         SELECT (row_number() over () - 1)::integer as seq, start_vid::integer AS id1, end_vid::integer AS id2, agg_cost AS cost
+         FROM  pgr_johnson(sql, TRUE);
+  END
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_apspWarshall(edges_sql text, directed boolean, has_rcost boolean)
+    RETURNS SETOF pgr_costResult AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function: Use pgr_floydWarshall instead';
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+      sql := edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_reverse) THEN
+           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+         ELSE raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+         END IF;
+      END IF;
+
+      RETURN query
+         SELECT (row_number() over () -1)::integer as seq, start_vid::integer AS id1, end_vid::integer AS id2, agg_cost AS cost
+         FROM  pgr_floydWarshall(sql, directed);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_astar(edges_sql TEXT, source_id INTEGER, target_id INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated signature pgr_astar(text, integer, integer, boolean, boolean)';
+    has_reverse =_pgr_parameter_check('astar', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost, x1,y1, x2, y2 FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+    FROM pgr_astar(sql, ARRAY[$2], ARRAY[$3], directed);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    sql TEXT,
+    source_vid INTEGER,
+    target_vid INTEGER,
+    directed BOOLEAN,
+    has_reverse_cost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdAstar';
+    has_reverse =_pgr_parameter_check('astar', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdAstar(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(edges_sql TEXT, start_vid INTEGER, end_vid INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdDijkstra';
+    has_reverse =_pgr_parameter_check('dijkstra', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdDijkstra(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstraPath(
+    sql text,
+    source INTEGER,
+    targets INTEGER ARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+    RETURNS SETOF pgr_costResult3 AS
+    $BODY$
+    DECLARE
+    has_reverse BOOLEAN;
+    new_sql TEXT;
+    result pgr_costResult3;
+    tmp pgr_costResult3;
+    sseq INTEGER;
+    i INTEGER;
+    BEGIN
+        RAISE NOTICE 'Deprecated function: Use pgr_dijkstra instead.';
+        has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+        new_sql = sql;
+        IF (array_ndims(targets) != 1) THEN
+            raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+
+        IF (has_reverse != has_rcost) THEN
+            IF (has_reverse) THEN
+                new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+            ELSE
+                raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+                USING ERRCODE = 'XX000';
+            END IF;
+        END IF;
+        SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+        sseq = 0; i = 1;
+        FOR result IN
+            SELECT seq, a.end_vid::INTEGER AS id1, a.node::INTEGER AS i2, a.edge::INTEGER AS id3, cost
+            FROM pgr_dijkstra(new_sql, source, targets, directed) a ORDER BY a.end_vid, seq LOOP
+            WHILE (result.id1 != targets[i]) LOOP
+                tmp.seq = sseq;
+                tmp.id1 = targets[i];
+                IF (targets[i] = source) THEN
+                    tmp.id2 = source;
+                    tmp.cost =0;
+                ELSE
+                    tmp.id2 = 0;
+                    tmp.cost = -1;
+                END IF;
+                tmp.id3 = -1;
+                RETURN next tmp;
+                i = i + 1;
+                sseq = sseq + 1;
+            END LOOP;
+        IF (result.id1 = targets[i] AND result.id3 != -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+        IF (result.id1 = targets[i] AND result.id3 = -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.id2 = source;
+            tmp.cost = 0;
+        ELSE
+            tmp.id2 = 0;
+            tmp.cost = -1;
+        END IF;
+        tmp.id3 = -1;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstracost(
+    sql text,
+    source INTEGER,
+    targets INTEGER array,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+result pgr_costResult;
+tmp pgr_costResult;
+sseq INTEGER;
+i INTEGER;
+BEGIN
+    RAISE NOTICE 'Deprecated function. Use pgr_dijkstraCost instead.';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    new_sql = sql;
+    IF (array_ndims(targets) != 1) THEN
+        raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+        USING ERRCODE = 'XX000';
+    END IF;
+
+
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+    sseq = 0; i = 1;
+    FOR result IN
+        SELECT ((row_number() over()) -1)::INTEGER, a.start_vid::INTEGER, a.end_vid::INTEGER, agg_cost
+        FROM pgr_dijkstraCost(new_sql, source, targets, directed) a ORDER BY end_vid LOOP
+        WHILE (result.id2 != targets[i]) LOOP
+            tmp.seq = sseq;
+            tmp.id1 = source;
+            tmp.id2 = targets[i];
+            IF (targets[i] = source) THEN
+                tmp.cost = 0;
+            ELSE
+                tmp.cost = -1;
+            END IF;
+            RETURN next tmp;
+            i = i + 1;
+            sseq = sseq + 1;
+        END LOOP;
+        IF (result.id2 = targets[i]) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = source;
+        tmp.id2 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.cost = 0;
+        ELSE
+            tmp.cost = -1;
+        END IF;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+create or replace function pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    returns integer as
+$body$
+
+declare
+    rr record;
+    pct float;
+    debuglevel text;
+
+begin
+    -- find the closest edge within tol distance
+    execute 'select * from ' || _pgr_quote_ident(edges) ||
+            ' where st_dwithin(''' || pnt::text ||
+            '''::geometry, the_geom, ' || tol || ') order by st_distance(''' || pnt::text ||
+            '''::geometry, the_geom) asc limit 1' into rr;
+
+    if rr.the_geom is not null then
+        -- deal with MULTILINESTRINGS
+        if geometrytype(rr.the_geom)='MULTILINESTRING' THEN
+            rr.the_geom := ST_GeometryN(rr.the_geom, 1);
+        end if;
+
+        -- project the point onto the linestring
+        execute 'show client_min_messages' into debuglevel;
+        SET client_min_messages='ERROR';
+        pct := st_line_locate_point(rr.the_geom, pnt);
+        execute 'set client_min_messages  to '|| debuglevel;
+
+        -- return the node we are closer to
+        if pct < 0.5 then
+            return rr.source;
+        else
+            return rr.target;
+        end if;
+    else
+        -- return a failure to find an edge within tol distance
+        return -1;
+    end if;
+end;
+$body$
+  language plpgsql volatile
+  cost 5;
+
+
+----------------------------------------------------------------------------
+
+create or replace function pgr_flipedges(ga geometry[])
+    returns geometry[] as
+$body$
+
+declare
+    nn integer;
+    i integer;
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_flipEdges';
+    -- get the count of edges, and return if only one edge
+    nn := array_length(ga, 1);
+    if nn=1 then
+        return ga;
+    end if;
+
+    -- determine if first needs to be flipped
+    g := _pgr_startpoint(ga[1]);
+
+    -- if the start of the first is connected to the second then it needs to be flipped
+    if _pgr_startpoint(ga[2])=g or _pgr_endpoint(ga[2])=g then
+        ga[1] := st_reverse(ga[1]);
+    end if;
+    g := _pgr_endpoint(ga[1]);
+
+    -- now if  the end of the last edge matchs the end of the current edge we need to flip it
+    for i in 2 .. nn loop
+        if _pgr_endpoint(ga[i])=g then
+            ga[i] := st_reverse(ga[i]);
+        end if;
+        -- save the end of this edge into the last end for the next cycle
+        g := _pgr_endpoint(ga[i]);
+    end loop;
+
+    return ga;
+end;
+$body$
+    language plpgsql immutable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_texttopoints(pnts text, srid integer DEFAULT(4326))
+    returns geometry[] as
+$body$
+
+declare
+    a text[];
+    t text;
+    p geometry;
+    g geometry[];
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_textToPoints';
+    -- convert commas to space and split on ';'
+    a := string_to_array(replace(pnts, ',', ' '), ';');
+    -- convert each 'x y' into a point geometry and concattenate into a new array
+    for t in select unnest(a) loop
+        p := st_pointfromtext('POINT(' || t || ')', srid);
+        g := g || p;
+    end loop;
+
+    return g;
+end;
+$body$
+    language plpgsql immutable;
+
+-----------------------------------------------------------------------
+
+create or replace function pgr_pointstovids(pnts geometry[], edges text, tol float8 DEFAULT(0.01))
+    returns integer[] as
+$body$
+
+declare
+    v integer[];
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_pointsToVids';
+    -- cycle through each point and locate the nearest edge and vertex on that edge
+    for g in select unnest(pnts) loop
+        v := v || pgr_pointtoedgenode(edges, g, tol);
+    end loop;
+
+    return v;
+end;
+$body$
+    language plpgsql stable;
+
+
+create or replace function pgr_pointstodmatrix(pnts geometry[], mode integer default (0), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+
+declare
+    r record;
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_pointsToDMatrix';
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    -- create an id for each point in the array and unnest it into a table nodes in the with clause
+    for r in with nodes as (select row_number() over()::integer as id, p from (select unnest(pnts) as p) as foo)
+        -- compute a row of distances
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j,
+                case when mode=0
+                    then st_distance(a.p, b.p)
+                    else st_distance_sphere(a.p, b.p)
+                end as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i loop
+
+        -- you must concat an array[array[]] to make dmatrix[][]
+        -- concat the row of distances to the dmatrix
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+end;
+$body$
+    language plpgsql stable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_vidstodmatrix(IN vids integer[], IN pnts geometry[], IN edges text, tol float8 DEFAULT(0.1), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+
+declare
+    i integer;
+    j integer;
+    nn integer;
+    rr record;
+    bbox geometry;
+    t float8[];
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    -- check if the input arrays has any -1 values, maybe this whould be a raise exception
+    if vids @> ARRAY[-1] then
+    raise notice 'Some vids are undefined (-1)!';
+    dmatrix := null;
+    ids := null;
+    return;
+    end if;
+
+    ids := vids;
+
+    -- get the count of nodes
+    nn := array_length(vids,1);
+
+    -- zero out a dummy row
+    for i in 1 .. nn loop
+        t := t || 0.0::float8;
+    end loop;
+
+    -- using the dummy row, zero out the whole matrix
+    for i in 1 .. nn loop
+    dmatrix := dmatrix || ARRAY[t];
+    end loop;
+
+    for i in 1 .. nn-1 loop
+        j := i;
+        -- compute the bbox for the point needed for this row
+        select st_expand(st_collect(pnts[id]), tol) into bbox
+          from (select generate_series as id from generate_series(i, nn)) as foo;
+
+        -- compute kdijkstra() for this row
+        for rr in execute 'select * from pgr_dijkstracost($1, $2, $3, false)'
+                  using 'select id, source, target, cost from ' || edges ||
+                        ' where the_geom && ''' || bbox::text || '''::geometry'::text, vids[i], vids[i+1:nn] loop
+
+            -- TODO need to check that all node were reachable from source
+            -- I think unreachable paths between nodes returns cost=-1.0
+
+            -- populate the matrix with the cost values, remember this is symmetric
+            j := j + 1;
+            -- raise notice 'cost(%,%)=%', i, j, rr.agg_cost;
+            dmatrix[i][j] := rr.agg_cost;
+            dmatrix[j][i] := rr.agg_cost;
+        end loop;
+    end loop;
+
+end;
+$body$
+    language plpgsql stable cost 200;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_vidsToDMatrix(sql TEXT, vids  INTEGER[], dir BOOLEAN, has_rcost BOOLEAN, want_symmetric BOOLEAN)
+RETURNS float8[] AS
+$BODY$
+DECLARE
+directed BOOLEAN;
+has_reverse BOOLEAN;
+edges_sql TEXT;
+dmatrix_row float8[];
+dmatrix float8[];
+cell RECORD;
+unique_vids INTEGER[];
+total BIGINT;
+from_v BIGINT;
+to_v BIGINT;
+BEGIN
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql = sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    unique_vids :=  ARRAY(SELECT DISTINCT UNNEST(vids) ORDER BY 1);
+
+    IF want_symmetric THEN
+        directed = false;
+    ELSE
+        directed = dir;
+    END IF;
+
+    total := array_length(unique_vids, 1);
+
+    -- initializing dmatrix
+    FOR i in 1 .. total LOOP
+        dmatrix_row := dmatrix_row || '+Infinity'::float8;
+    END LOOP;
+    FOR i in 1 .. total LOOP
+    dmatrix := dmatrix || ARRAY[dmatrix_row];
+    dmatrix[i][i] = 0;
+    END LOOP;
+
+    CREATE TEMP TABLE __x___y____temp AS
+        WITH result AS
+            (SELECT unnest(unique_vids) AS vid)
+        SELECT row_number() OVER() AS idx, vid FROM result;
+
+    FOR cell IN SELECT * FROM pgr_dijkstraCostMatrix(sql, unique_vids, directed) LOOP
+        SELECT idx INTO from_v FROM __x___y____temp WHERE vid =  cell.start_vid;
+        SELECT idx INTO to_v FROM __x___y____temp WHERE vid =  cell.end_vid;
+
+        dmatrix[from_v][to_v] = cell.agg_cost;
+        dmatrix[to_v][from_v] = cell.agg_cost;
+    END LOOP;
+
+    DROP TABLE IF EXISTS __x___y____temp;
+    RETURN dmatrix;
+
+    EXCEPTION WHEN others THEN
+       DROP TABLE IF EXISTS __x___y____temp;
+       raise exception '% %', SQLERRM, SQLSTATE;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100;
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated function';
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_dijkstra(sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_dijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN) IS 'pgr_dijkstra(Deprecated signature)';
+
+
+
+
+
+-- OLD SIGNATURE
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(edges_sql text, source BIGINT, distance FLOAT, directed BOOLEAN, has_rcost BOOLEAN)
+  RETURNS SETOF pgr_costresult AS
+  $BODY$
+  DECLARE
+  has_reverse BOOLEAN;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function';
+
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, FALSE);
+
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_reverse) THEN
+             -- the user says it doesn't have reverse cost but its false
+             -- removing from query
+             RAISE NOTICE 'Contradiction found: has_rcost set to false but reverse_cost column found';
+             sql = 'SELECT id, source, target, cost, -1 as reverse_cost FROM (' || edges_sql || ') __q ';
+         ELSE
+             -- the user says it has reverse cost but its false
+             -- can't do anything
+             RAISE EXCEPTION 'has_rcost set to true but reverse_cost not found';
+         END IF;
+      END IF;
+
+      RETURN query SELECT seq - 1 AS seq, node::integer AS id1, edge::integer AS id2, agg_cost AS cost
+                FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maximumcardinalitymatching(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
+
+
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+--INTERNAL FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+
+------------------------
+-- deprecated signatures
+-----------------------
+
+COMMENT ON FUNCTION pgr_astar(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_astar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdAstar( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdAstar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdDijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdDijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_dijkstra(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_dijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_drivingDistance(text,  BIGINT,  FLOAT8,  BOOLEAN,  BOOLEAN)
+    IS 'pgr_drivingDistance(Deprecated signature)';
+
+------------------------
+-- Renamed /deprecated
+-----------------------
+COMMENT ON FUNCTION pgr_apspJohnson(TEXT)
+    IS 'pgr_apspJohnson(Renamed function) use pgr_Johnson instead';
+
+COMMENT ON FUNCTION pgr_apspWarshall(text, boolean, boolean)
+    IS 'pgr_apspWarshall(Renamed function) use pgr_floydWarshall instead';
+
+COMMENT ON FUNCTION pgr_kdijkstraPath( text, INTEGER, INTEGER ARRAY, BOOLEAN, BOOLEAN)
+    IS 'pgr_kdijkstraPath(Renamed function) use pgr_dijkstra instead';
+
+COMMENT ON FUNCTION pgr_kdijkstracost( text, INTEGER, INTEGER array, BOOLEAN, BOOLEAN)
+    IS 'pgr_kDijkstraCost(Renamed function) use pgr_dijkstraCost instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+
+
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+
+
+COMMENT ON FUNCTION pgr_gsoc_vrppdtw( text, INTEGER, INTEGER)
+    IS 'pgr_gsoc_vrppdtw(Renamed function) use pgr_pickDeliverEuclidean instead';
+
+------------------------
+-- Deprecated functions
+-----------------------
+
+COMMENT ON FUNCTION pgr_flipedges(geometry[])
+    IS 'pgr_flipedges(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_texttopoints(text,  integer)
+    IS 'pgr_texttopoints(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstovids(pnts geometry[], edges text, tol float8)
+    IS 'pgr_pointstovids(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    IS 'pgr_pointtoedgenode(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstodmatrix(geometry[], integer)
+    IS 'pgr_pointstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidstodmatrix( integer[],  geometry[],  text, float8)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidsToDMatrix(TEXT,  INTEGER[], BOOLEAN, BOOLEAN, BOOLEAN)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+
+
+
+COMMENT ON FUNCTION pgr_getTableName(IN tab text)
+    IS 'pgr_getTableName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_getColumnName(tab text, col text)
+    IS 'pgr_getColumnName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnInTable(tab text, col text)
+    IS 'pgr_isColumnInTable(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnIndexed(tab text, col text)
+    IS 'pgr_isColumnIndexed(Deprecated function)';
+
+
+COMMENT ON FUNCTION pgr_quote_ident(idname text)
+    IS 'pgr_quote_ident(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_versionless(v1 text, v2 text)
+    IS 'pgr_versionless(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_startPoint(g geometry)
+    IS 'pgr_startPoint(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_endPoint(g geometry)
+    IS 'pgr_endPoint(Deprecated function)';
+
+
diff --git a/tools/sql-update-scripts/pgrouting--2.3.0--2.5.0.sql b/tools/sql-update-scripts/pgrouting--2.3.0--2.5.0.sql
new file mode 100644
index 0000000..ec8b232
--- /dev/null
+++ b/tools/sql-update-scripts/pgrouting--2.3.0--2.5.0.sql
@@ -0,0 +1,6561 @@
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-- pgRouting extension upgrade from 2.3.0 to 2.5.0
+-- generated by tools/build-extension-update-files
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+\echo Use "ALTER extension pgrouting update to '2.5.0'" to load this file. \quit
+
+
+-------------------------------------
+-- remove functions no longer in the 2.5.0 extension
+-------------------------------------
+
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_astar(text,bigint,bigint,boolean,integer,double precision,double precision,boolean);
+DROP FUNCTION IF EXISTS _pgr_astar(text,bigint,bigint,boolean,integer,double precision,double precision,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,anyarray,anyarray,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,anyarray,anyarray,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,anyarray,bigint,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,anyarray,bigint,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,bigint,anyarray,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,bigint,anyarray,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,bigint,bigint,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,bigint,bigint,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_drivingdistance(text,anyarray,double precision,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_drivingdistance(text,anyarray,double precision,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_drivingdistance(text,bigint,double precision,boolean);
+DROP FUNCTION IF EXISTS _pgr_drivingdistance(text,bigint,double precision,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_maxflow(text,anyarray,anyarray,text);
+DROP FUNCTION IF EXISTS _pgr_maxflow(text,anyarray,anyarray,text);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_maxflow(text,anyarray,bigint,text);
+DROP FUNCTION IF EXISTS _pgr_maxflow(text,anyarray,bigint,text);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_maxflow(text,bigint,anyarray,text);
+DROP FUNCTION IF EXISTS _pgr_maxflow(text,bigint,anyarray,text);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_maxflow(text,bigint,bigint,text);
+DROP FUNCTION IF EXISTS _pgr_maxflow(text,bigint,bigint,text);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_pickdeliver(text,integer,double precision,double precision,integer);
+DROP FUNCTION IF EXISTS _pgr_pickdeliver(text,integer,double precision,double precision,integer);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,anyarray,anyarray,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,anyarray,anyarray,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,anyarray,bigint,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,anyarray,bigint,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,bigint,anyarray,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,bigint,anyarray,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,bigint,bigint,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,bigint,bigint,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_fakecontraction(text,integer[]);
+DROP FUNCTION IF EXISTS pgr_fakecontraction(text,integer[]);
+
+
+------------------------------------------
+--    New functions:  2.0
+-- Signature change:  2.4
+--       Deprecated:  2.4
+------------------------------------------
+-- pgr_bddijkstra
+-- 2.3.0: {      sql, source_vid, target_vid, directed, has_reverse_cost}   
+-- 2.5.0: {edges_sql,  start_vid,    end_vid, directed, has_rcost}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vid","end_vid","directed","has_rcost"}'
+WHERE proname = 'pgr_bddijkstra'
+    AND proargnames = '{"sql","source_vid","target_vid","directed","has_reverse_cost"}';
+
+
+------------------------------------------
+--       New functions:  2.1
+--    Signature change:  2.4
+------------------------------------------
+-- 2.3.0: {edges_sql,start_v,  distance,directed,seq,node,edge,cost,agg_cost}
+-- 2.5.0: {edges_sql,start_vid,distance,directed,seq,node,edge,cost,agg_cost}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vid","distance","directed","seq","node","edge","cost","agg_cost"}'
+WHERE proname = 'pgr_drivingdistance'
+    AND proargnames = '{"edges_sql","start_v","distance","directed","seq","node","edge","cost","agg_cost"}';
+
+
+------------------------------------------
+--       New functions:  2.1
+--    Signature change:  2.4
+------------------------------------------
+-- 2.3.0: {sql,      start_v,   distance,directed,equicost,seq,from_v,node,edge,cost,agg_cost}
+-- 2.5.0: {edges_sql,start_vids,distance,directed,equicost,seq,from_v,node,edge,cost,agg_cost}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vids","distance","directed","equicost","seq","from_v","node","edge","cost","agg_cost"}'
+WHERE proname = 'pgr_drivingdistance'
+    AND proargnames = '{"sql","start_v","distance","directed","equicost","seq","from_v","node","edge","cost","agg_cost"}';
+
+
+------------------------------------------
+--       New functions:  2.3
+--    Signature change:  2.5
+-- Inner query changed:  2.5
+------------------------------------------
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_edgedisjointpaths(text,bigint,bigint,boolean);
+DROP FUNCTION IF EXISTS pgr_edgedisjointpaths(text,bigint,bigint,boolean);
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_edgedisjointpaths(text,bigint,anyarray,boolean);
+DROP FUNCTION IF EXISTS pgr_edgedisjointpaths(text,bigint,anyarray,boolean);
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_edgedisjointpaths(text,anyarray,bigint,boolean);
+DROP FUNCTION IF EXISTS pgr_edgedisjointpaths(text,anyarray,bigint,boolean);
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_edgedisjointpaths(text,anyarray,anyarray,boolean);
+DROP FUNCTION IF EXISTS pgr_edgedisjointpaths(text,anyarray,anyarray,boolean);
+
+
+ALTER EXTENSION pgrouting DROP TYPE contraction_vertex;
+DROP TYPE contraction_vertex;
+
+
+
+
+
+
+
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+--- pgRouting provides geospatial routing functionality.
+--- http://pgrouting.org
+--- copyright
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+---
+--- This is free software; you can redistribute and/or modify it:
+--- the terms of the GNU General Public Licence. See the COPYING file.
+--- the terms of the MIT-X Licence. See the COPYING file.
+---
+--- The following functions have MIT-X licence:
+---     pgr_version()
+---     pgr_tsp(matrix float8[][], startpt integer, endpt integer DEFAULT -1, OUT seq integer, OUT id integer)
+---     _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+---     pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
+---
+---
+--- All other functions are under GNU General Public Licence.
+---
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+--
+-- WARNING: Any change in this file must be evaluated for compatibility.
+--          Changes cleanly handled by postgis_upgrade.sql are fine,
+--          other changes will require a bump in Major version.
+--          Currently only function replaceble by CREATE OR REPLACE
+--          are cleanly handled.
+--
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+
+--  pgRouting 2.0 types
+
+
+
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_version()
+RETURNS TABLE(
+        "version" varchar,
+        tag varchar,
+        hash varchar,
+        branch varchar,
+        boost varchar
+    ) AS
+$BODY$
+    SELECT '2.5.0'::varchar AS version,
+        'v2.5.0'::varchar AS tag,
+        ''::varchar AS hash,
+        ''::varchar AS branch,
+        '1.54.0'::varchar AS boost;
+$BODY$
+LANGUAGE sql IMMUTABLE;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getTableName(IN tab text, IN reportErrs int default 0, IN fnName text default '_pgr_getTableName', OUT sname text,OUT tname text)
+  RETURNS RECORD AS
+$$
+DECLARE
+        naming record;
+        i integer;
+        query text;
+        sn text; -- schema name
+        tn text; -- table name
+        ttype text; --table type for future use
+        err boolean;
+        debuglevel text;
+        var_types text[] = ARRAY['BASE TABLE', 'VIEW'];
+BEGIN
+
+    execute 'show client_min_messages' into debuglevel;
+
+
+    perform _pgr_msg( 0, fnName, 'Checking table ' || tab || ' exists');
+    --RAISE DEBUG 'Checking % exists',tab;
+
+    i := strpos(tab,'.');
+    IF (i <> 0) THEN
+        sn := split_part(tab, '.',1);
+        tn := split_part(tab, '.',2);
+    ELSE
+        sn := current_schema;
+        tn := tab;
+    END IF;
+
+
+   SELECT schema_name INTO sname
+   FROM information_schema.schemata WHERE schema_name = sn;
+
+    IF sname IS NOT NULL THEN -- found schema (as is)
+       SELECT table_name, table_type INTO tname, ttype
+       FROM information_schema.tables
+       WHERE
+                table_type = ANY(var_types) and
+                table_schema = sname and
+                table_name = tn ;
+        IF tname is NULL THEN
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  = ANY(var_types) and
+                table_schema = sname and
+                table_name = lower(tn) ORDER BY table_name;
+        END IF;
+    END IF;
+    IF sname is NULL or tname is NULL THEN --schema not found or table not found
+        SELECT schema_name INTO sname
+        FROM information_schema.schemata
+        WHERE schema_name = lower(sn) ;
+
+        IF sname IS NOT NULL THEN -- found schema (with lower caps)
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  =  ANY(var_types) and
+                table_schema = sname and
+                table_name= tn ;
+
+           IF tname IS NULL THEN
+                SELECT table_name, table_type INTO tname, ttype
+                FROM information_schema.tables
+                WHERE
+                    table_type  =  ANY(var_types) and
+                    table_schema = sname and
+                    table_name= lower(tn) ;
+           END IF;
+        END IF;
+    END IF;
+   err = (sname IS NULL OR tname IS NULL);
+   perform _pgr_onError(err, reportErrs, fnName, 'Table ' || tab ||' not found',' Check your table name', 'Table '|| tab || ' found');
+
+END;
+$$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(sname text, tname text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(col) into cname;
+
+    IF cname is null  THEN
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(lower(col))  into cname;
+    END if;
+
+    err = cname is null;
+
+    perform _pgr_onError(err, reportErrs, fnName,  'Column '|| col ||' not found', ' Check your column name','Column '|| col || ' found');
+    RETURN cname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(tab text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+
+    select * into cname from _pgr_getColumnName(sname,tname,col,reportErrs, fnName);
+    RETURN cname;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    select * from _pgr_getColumnName(tab,col,0, '_pgr_isColumnInTable') into cname;
+    return cname is not null;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(sname text, tname text, cname text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    pkey text;
+BEGIN
+    SELECT
+          pg_attribute.attname into pkey
+         --  format_type(pg_attribute.atttypid, pg_attribute.atttypmod)
+          FROM pg_index, pg_class, pg_attribute
+          WHERE
+                  pg_class.oid = _pgr_quote_ident(sname||'.'||tname)::regclass AND
+                  indrelid = pg_class.oid AND
+                  pg_attribute.attrelid = pg_class.oid AND
+                  pg_attribute.attnum = any(pg_index.indkey)
+                  AND indisprimary;
+
+    IF pkey=cname then
+          RETURN TRUE;
+    END IF;
+
+    SELECT a.index_name,
+           b.attname,
+           b.attnum,
+           a.indisunique,
+           a.indisprimary
+      INTO rec
+      FROM ( SELECT a.indrelid,
+                    a.indisunique,
+                    a.indisprimary,
+                    c.relname index_name,
+                    unnest(a.indkey) index_num
+               FROM pg_index a,
+                    pg_class b,
+                    pg_class c,
+                    pg_namespace d
+              WHERE b.relname=tname
+                AND b.relnamespace=d.oid
+                AND d.nspname=sname
+                AND b.oid=a.indrelid
+                AND a.indexrelid=c.oid
+           ) a,
+           pg_attribute b
+     WHERE a.indrelid = b.attrelid
+       AND a.index_num = b.attnum
+       AND b.attname = cname
+  ORDER BY a.index_name,
+           a.index_num;
+
+  RETURN FOUND;
+  EXCEPTION WHEN OTHERS THEN
+    perform _pgr_onError( true, reportErrs, fnName,
+    'Error when checking for the postgres system attributes', SQLERR);
+    RETURN FALSE;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(tab text, col text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    sname text;
+    tname text;
+    cname text;
+    pkey text;
+    value boolean;
+BEGIN
+    SELECT * into naming FROM _pgr_getTableName(tab, 0, fnName);
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    SELECT * into cname from _pgr_getColumnName(sname, tname, col, 0, fnName) ;
+    IF cname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    select * into value  from _pgr_isColumnIndexed(sname, tname, cname, reportErrs, fnName);
+    return value;
+END
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+create or replace function _pgr_quote_ident(idname text)
+    returns text as
+$body$
+declare
+    t text[];
+    pgver text;
+
+begin
+    pgver := regexp_replace(version(), E'^PostgreSQL ([^ ]+)[ ,].*$', E'\\1');
+
+    if _pgr_versionless(pgver, '9.2') then
+        select into t array_agg(quote_ident(term)) from
+            (select nullif(unnest, '') as term
+               from unnest(string_to_array(idname, '.'))) as foo;
+    else
+        select into t array_agg(quote_ident(term)) from
+            (select unnest(string_to_array(idname, '.', '')) as term) as foo;
+    end if;
+    return array_to_string(t, '.');
+end;
+$body$
+language plpgsql immutable;
+
+
+CREATE OR REPLACE FUNCTION _pgr_versionless(v1 text, v2 text)
+  RETURNS boolean AS
+$BODY$
+
+
+declare
+    v1a text[];
+    v2a text[];
+    nv1 integer;
+    nv2 integer;
+    ne1 integer;
+    ne2 integer;
+
+begin
+    -- separate components into an array, like:
+    -- '2.1.0-beta3dev'  =>  {2,1,0,beta3dev}
+    v1a := regexp_matches(v1, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+    v2a := regexp_matches(v2, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+
+    -- convert modifiers to numbers for comparison
+    -- we do not delineate between alpha1, alpha2, alpha3, etc
+    ne1 := case when v1a[4] is null or v1a[4]='' then 5
+                when v1a[4] ilike 'rc%' then 4
+                when v1a[4] ilike 'beta%' then 3
+                when v1a[4] ilike 'alpha%' then 2
+                when v1a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    ne2 := case when v2a[4] is null or v2a[4]='' then 5
+                when v2a[4] ilike 'rc%' then 4
+                when v2a[4] ilike 'beta%' then 3
+                when v2a[4] ilike 'alpha%' then 2
+                when v2a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    nv1 := v1a[1]::integer * 10000 +
+           coalesce(v1a[2], '0')::integer * 1000 +
+           coalesce(v1a[3], '0')::integer *  100 + ne1;
+    nv2 := v2a[1]::integer * 10000 +
+           coalesce(v2a[2], '0')::integer * 1000 +
+           coalesce(v2a[3], '0')::integer *  100 + ne2;
+
+    --raise notice 'nv1: %, nv2: %, ne1: %, ne2: %', nv1, nv2, ne1, ne2;
+
+    return nv1 < nv2;
+end;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+create or replace function _pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_startpoint(st_geometryn(g,1));
+    else
+        return st_startpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function _pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_endpoint(st_geometryn(g,1));
+    else
+        return st_endpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_parameter_check(fn text, sql text, big boolean default false)
+  RETURNS bool AS
+  $BODY$
+
+  DECLARE
+  rec record;
+  rec1 record;
+  has_rcost boolean;
+  safesql text;
+  BEGIN
+    IF (big) THEN
+       RAISE EXCEPTION 'This function is for old style functions';
+    END IF;
+
+    -- checking query is executable
+    BEGIN
+      safesql =  'select * from ('||sql||' ) AS __a__ limit 1';
+      execute safesql into rec;
+      EXCEPTION
+        WHEN OTHERS THEN
+            RAISE EXCEPTION 'Could not execute query please verify syntax of: '
+              USING HINT = sql;
+    END;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('dijkstra','astar') THEN
+        BEGIN
+          execute 'select id,source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: id, source, target, cost';
+        END;
+        execute 'select pg_typeof(id)::text as id_type, pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.id_type in ('integer'::text))
+              AND (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Error, columns ''source'', ''target'' must be of type int4, ''cost'' must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    IF fn IN ('astar') THEN
+        BEGIN
+          execute 'select x1,y1,x2,y2  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: x1,y1, x2,y2';
+        END;
+        execute 'select pg_typeof(x1)::text as x1_type, pg_typeof(y1)::text as y1_type, pg_typeof(x2)::text as x2_type, pg_typeof(y2)::text as y2_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.x1_type = 'double precision'::text)
+              AND (rec.y1_type = 'double precision'::text)
+              AND (rec.x2_type = 'double precision'::text)
+              AND (rec.y2_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Columns: x1, y1, x2, y2 must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('johnson') THEN
+        BEGIN
+          execute 'select source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING HINT = 'Please veryfy the column names: id, source, target, cost',
+                         ERRCODE = 'XX000';
+        END;
+
+        execute 'select pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Support for source,target columns only of type: integer. Support for Cost: double precision'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    -- Checking the data types of the optional reverse_cost";
+    has_rcost := false;
+    IF fn IN ('johnson','dijkstra','astar') THEN
+      BEGIN
+        execute 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||safesql||' ) AS __b__ limit 1 ' into rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+            return has_rcost;
+      END;
+      if (has_rcost) then
+        IF (big) then
+           IF  not (rec1.rev_type in ('bigint'::text, 'integer'::text, 'smallint'::text, 'double precision'::text, 'real'::text)) then
+             RAISE EXCEPTION 'Illegar type in optional parameter reverse_cost.'
+             USING ERRCODE = 'XX000';
+           END IF;
+        ELSE -- Version 2.0.0 is more restrictive
+           IF (rec1.rev_type != 'double precision') then
+             RAISE EXCEPTION 'Illegal type in optional parameter reverse_cost, must be of type float8'
+             USING ERRCODE = 'XX000';
+           END IF;
+        END IF;
+      end if;
+      return true;
+    END IF;
+    -- just for keeps
+    return true;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_onError(
+  IN errCond boolean,  -- true there is an error
+  IN reportErrs int,   -- 0, 1 or 2
+  IN fnName text,      -- function name that generates the error
+  IN msgerr text,      -- error message
+  IN hinto text default 'No hint', -- hint help
+  IN msgok text default 'OK')      -- message if everything is ok
+  RETURNS void AS
+$BODY$
+BEGIN
+  if errCond=true then
+     if reportErrs=0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+     else
+       if reportErrs = 2 then
+         raise notice '----> PGR ERROR in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+         raise raise_exception;
+       else
+         raise notice '----> PGR NOTICE in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+       end if;
+     end if;
+  else
+       raise debug 'PGR ----> %: %',fnName,msgok;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_msg(IN msgKind int, IN fnName text, IN msg text default '---->OK')
+  RETURNS void AS
+$BODY$
+BEGIN
+  if msgKind = 0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msg;
+  else
+       raise notice '----> PGR NOTICE in %: %',fnName,msg;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(sname text, tname text, cname text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    EXECUTE 'select data_type  from information_schema.columns '
+            || 'where table_name = '||quote_literal(tname)
+                 || ' and table_schema=' || quote_literal(sname)
+                 || ' and column_name='||quote_literal(cname)
+       into ctype;
+    err = ctype is null;
+    perform _pgr_onError(err, reportErrs, fnName,
+            'Type of Column '|| cname ||' not found',
+            'Check your column name',
+            'OK: Type of Column '|| cname || ' is ' || ctype);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(tab text, col text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+    select * into cname from _pgr_getColumnName(tab,col,reportErrs, fnName) ;
+    select * into ctype from _pgr_getColumnType(sname,tname,cname,reportErrs, fnName);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_get_statement(o_sql text)
+RETURNS text AS
+$BODY$
+DECLARE
+sql TEXT;
+BEGIN
+    EXECUTE 'SELECT statement FROM pg_prepared_statements WHERE name ='  || quote_literal(o_sql) || ' limit 1 ' INTO sql;
+    IF (sql IS NULL) THEN
+      RETURN   o_sql;
+    ELSE
+      RETURN  regexp_replace(sql, '(.)* as ', '', 'i');
+    END IF;
+END
+$BODY$
+LANGUAGE plpgsql STABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_checkVertTab(vertname text, columnsArr  text[],
+    IN reportErrs int default 1, IN fnName text default '_pgr_checkVertTab',
+    OUT sname text,OUT vname text)
+RETURNS record AS
+$BODY$
+DECLARE
+    cname text;
+    colname text;
+    naming record;
+    debuglevel text;
+    err  boolean;
+    msgKind int;
+
+BEGIN
+    msgKind = 0; -- debug_
+    execute 'show client_min_messages' into debuglevel;
+
+    perform _pgr_msg(msgKind, fnName, 'Checking table ' || vertname || ' exists');
+       select * from _pgr_getTableName(vertname, 0, fnName) into naming;
+       sname=naming.sname;
+       vname=naming.tname;
+       err = sname is NULL or vname is NULL;
+    perform _pgr_onError( err, 2, fnName,
+          'Vertex Table: ' || vertname || ' not found',
+          'Please create ' || vertname || ' using  _pgr_createTopology() or pgr_createVerticesTable()',
+          'Vertex Table: ' || vertname || ' found');
+
+
+    perform _pgr_msg(msgKind, fnName, 'Checking columns of ' || vertname);
+      FOREACH cname IN ARRAY columnsArr
+      loop
+         select _pgr_getcolumnName(vertname, cname, 0, fnName) into colname;
+         if colname is null then
+           perform _pgr_msg(msgKind, fnName, 'Adding column ' || cname || ' in ' || vertname);
+           set client_min_messages  to warning;
+                execute 'ALTER TABLE '||_pgr_quote_ident(vertname)||' ADD COLUMN '||cname|| ' integer';
+           execute 'set client_min_messages  to '|| debuglevel;
+           perform _pgr_msg(msgKind, fnName);
+         end if;
+      end loop;
+    perform _pgr_msg(msgKind, fnName, 'Finished checking columns of ' || vertname);
+
+    perform _pgr_createIndex(vertname , 'id' , 'btree', reportErrs, fnName);
+ END
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(
+    sname text, tname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    debuglevel text;
+    naming record;
+    tabname text;
+    query text;
+    msgKind int;
+BEGIN
+  msgKind = 0; -- debug_
+
+  execute 'show client_min_messages' into debuglevel;
+  tabname=_pgr_quote_ident(sname||'.'||tname);
+  perform _pgr_msg(msgKind, fnName, 'Checking ' || colname || ' column in ' || tabname || ' is indexed');
+    IF (_pgr_isColumnIndexed(sname,tname,colname, 0, fnName)) then
+       perform _pgr_msg(msgKind, fnName);
+    else
+      if indext = 'gist' then
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using gist('||quote_ident(colname)||')';
+      else
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using btree('||quote_ident(colname)||')';
+      end if;
+      perform _pgr_msg(msgKind, fnName, 'Adding index ' || tabname || '_' ||  colname || '_idx');
+      perform _pgr_msg(msgKind, fnName, ' Using ' ||  query);
+      set client_min_messages  to warning;
+      BEGIN
+        execute query;
+        EXCEPTION WHEN others THEN
+          perform _pgr_onError( true, reportErrs, fnName,
+            'Could not create index on:' || colname, SQLERRM);
+      END;
+      execute 'set client_min_messages  to '|| debuglevel;
+      perform _pgr_msg(msgKind, fnName);
+    END IF;
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(tabname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    naming record;
+    sname text;
+    tname text;
+
+BEGIN
+    select * from _pgr_getTableName(tabname, 2, fnName)  into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    execute _pgr_createIndex(sname, tname, colname, indext, reportErrs, fnName);
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pointToId(
+    point geometry,
+    tolerance double precision,
+    vertname text,
+    srid integer)
+
+  RETURNS bigint AS
+$BODY$
+DECLARE
+    rec record;
+    pid bigint;
+
+BEGIN
+    EXECUTE 'SELECT ST_Distance(
+        the_geom,
+        ST_GeomFromText(ST_AsText('
+                || quote_literal(point::text)
+                || '),'
+            || srid ||')) AS d, id, the_geom
+    FROM '||_pgr_quote_ident(vertname)||'
+    WHERE ST_DWithin(
+        the_geom,
+        ST_GeomFromText(
+            ST_AsText(' || quote_literal(point::text) ||'),
+            ' || srid || '),' || tolerance||')
+    ORDER BY d
+    LIMIT 1' INTO rec ;
+    IF rec.id IS NOT NULL THEN
+        pid := rec.id;
+    ELSE
+        execute 'INSERT INTO '||_pgr_quote_ident(vertname)||' (the_geom) VALUES ('||quote_literal(point::text)||')';
+        pid := lastval();
+END IF;
+
+RETURN pid;
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'many_to_many_dijkstra'
+LANGUAGE c VOLATILE;
+
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer, OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstra(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(Many to Many)';
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraVia(
+    edges_sql TEXT,
+    via_vertices ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    strict BOOLEAN DEFAULT FALSE,
+    U_turn_on_edge BOOLEAN DEFAULT TRUE,
+
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'dijkstraVia'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_johnson(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'johnson'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_floydWarshall(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'floydWarshall'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'astarManyToMany'
+LANGUAGE c VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, normal:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to Many)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true, normal:=false) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to Many)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid ANYARRAY,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+    equicost BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '$libdir/libpgrouting-2.5', 'many_withPointsDD'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_withPointsDD($1, $2, ARRAY[$3]::BIGINT[], $4, $5, $6, $7, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vids anyarray,
+    distance FLOAT,
+    directed BOOLEAN DEFAULT TRUE,
+    equicost BOOLEAN DEFAULT FALSE,
+    OUT seq integer,
+    OUT from_v  bigint,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '$libdir/libpgrouting-2.5', 'driving_many_to_dist'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vid bigint,
+    distance FLOAT8,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq integer,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer, directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'kshortest_path'
+    LANGUAGE c STABLE STRICT;
+
+-- V2 the graph is directed and there are no heap paths
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid integer, end_vid integer, k integer, has_rcost boolean)
+  RETURNS SETOF pgr_costresult3 AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated signature of pgr_ksp';
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql::text, false);
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_rcost) THEN
+           -- user says that it has reverse_cost but its not true
+           RAISE EXCEPTION 'has_reverse_cost set to true but reverse_cost not found';
+         ELSE
+           -- user says that it does not have reverse_cost but it does have it
+           -- to ignore we remove reverse_cost from the query
+           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+         END IF;
+      END IF;
+
+      RETURN query SELECT ((row_number() over()) -1)::integer  AS seq,  (path_id - 1)::integer AS id1, node::integer AS id2, edge::integer AS id3, cost
+            FROM _pgr_ksp(sql::text, start_vid, end_vid, k, TRUE, FALSE) WHERE path_id <= k;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer,
+  directed boolean default true, heap_paths boolean default false,
+  --directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  BEGIN
+         RETURN query SELECT *
+                FROM _pgr_ksp(edges_sql::text, start_vid, end_vid, k, directed, heap_paths);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsKSP(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    k INTEGER,
+
+    directed BOOLEAN DEFAULT TRUE,
+    heap_paths BOOLEAN DEFAULT FALSE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER, OUT path_id INTEGER, OUT path_seq INTEGER,
+    OUT node BIGINT, OUT edge BIGINT,
+    OUT cost FLOAT, OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'withPoints_ksp'
+    LANGUAGE c STABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_unnest_matrix(matrix float8[][], OUT start_vid integer, OUT end_vid integer, out agg_cost float8)
+RETURNS SETOF record AS
+
+$body$
+DECLARE
+
+m float8[];
+
+BEGIN
+    start_vid = 1;
+    foreach m slice 1 in  ARRAY matrix
+    LOOP
+        end_vid = 1;
+        foreach agg_cost in  ARRAY m
+        LOOP
+            RETURN next;
+            end_vid = end_vid + 1;
+        END LOOP;
+        start_vid = start_vid + 1;
+    END LOOP;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_tsp(
+    matrix float8[][],
+    startpt INTEGER,
+    endpt INTEGER DEFAULT -1,
+    OUT seq INTEGER,
+    OUT id INTEGER)
+RETURNS SETOF record AS
+$body$
+DECLARE
+table_sql TEXT;
+debuglevel TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature pgr_tsp(float8[][], integer, integer)';
+
+    CREATE TEMP TABLE ___tmp2 ON COMMIT DROP AS SELECT * FROM _pgr_unnest_matrix( matrix );
+
+
+    startpt := startpt + 1;
+    IF endpt = -1 THEN endpt := startpt;
+    END IF;
+
+
+    RETURN QUERY
+    WITH
+    result AS (
+        SELECT * FROM pgr_TSP(
+        $$SELECT * FROM ___tmp2 $$,
+        startpt, endpt,
+
+        tries_per_temperature :=  500 :: INTEGER,
+        max_changes_per_temperature := 30 :: INTEGER,
+        max_consecutive_non_changes := 500 :: INTEGER,
+
+        randomize:=false)
+    )
+    SELECT (row_number() over(ORDER BY result.seq) - 1)::INTEGER AS seq, (result.node - 1)::INTEGER AS id
+
+    FROM result WHERE NOT(result.node = startpt AND result.seq != 1);
+
+    DROP TABLE ___tmp2;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+
+
+
+CREATE OR  REPLACE FUNCTION pgr_tsp(sql text, start_id INTEGER, end_id INTEGER default (-1))
+returns setof pgr_costResult as
+$body$
+DECLARE
+table_sql TEXT;
+rec RECORD;
+debuglevel TEXT;
+n BIGINT;
+
+BEGIN
+    RAISE NOTICE 'Deprecated Signature pgr_tsp(sql, integer, integer)';
+
+    table_sql := 'CREATE TEMP TABLE ___tmp ON COMMIT DROP AS ' || sql ;
+    EXECUTE table_sql;
+
+
+    BEGIN
+        EXECUTE 'SELECT id, x, y FROM ___tmp' INTO rec;
+        EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                USING ERRCODE = 'XX000',
+                HINT = 'Please verify the column names: id, x, y';
+    END;
+
+    EXECUTE
+    'SELECT
+        pg_typeof(id)::text as id_type,
+        pg_typeof(x)::text as x_type,
+        pg_typeof(y)::text as y_type FROM ___tmp' INTO rec;
+
+
+    IF NOT((rec.id_type in ('integer'::text))
+        AND (rec.x_type = 'double precision'::text)
+        AND (rec.y_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION '''id'' must be of type INTEGER, ''x'' ad ''y'' must be of type FLOAT'
+            USING ERRCODE = 'XX000';
+    END IF;
+
+    EXECUTE 'SELECT count(*) AS n FROM (' || sql || ') AS __a__' INTO rec;
+    n = rec.n;
+
+    RETURN query
+        SELECT (seq - 1)::INTEGER AS seq, node::INTEGER AS id1, node::INTEGER AS id2, cost
+        FROM pgr_eucledianTSP(sql, start_id, end_id,
+
+            tries_per_temperature :=  500 * n :: INTEGER,
+            max_changes_per_temperature := 60 * n :: INTEGER,
+            max_consecutive_non_changes := 500 * n :: INTEGER,
+
+            randomize := false) WHERE seq <= n;
+    DROP TABLE ___tmp;
+
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+
+create or replace function _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+  as
+$body$
+declare
+    sql text;
+    r record;
+
+begin
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    sql := 'with nodes as (' || sqlin || ')
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j, st_distance(st_makepoint(a.x, a.y), st_makepoint(b.x, b.y)) as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i';
+
+    for r in execute sql loop
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+
+end;
+$body$
+language plpgsql stable cost 10;
+
+
+CREATE OR REPLACE FUNCTION pgr_TSP(
+    matrix_row_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '$libdir/libpgrouting-2.5', 'newTSP'
+LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_eucledianTSP(
+    coordinates_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '$libdir/libpgrouting-2.5', 'eucledianTSP'
+LANGUAGE c VOLATILE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_alphashape(sql text, alpha float8 DEFAULT 0, OUT x float8, OUT y float8)
+    RETURNS SETOF record
+    AS '$libdir/libpgrouting-2.5', 'alphashape'
+    LANGUAGE c VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_pointsAsPolygon(query varchar, alpha float8 DEFAULT 0)
+	RETURNS geometry AS
+	$$
+	DECLARE
+		r record;
+		geoms geometry[];
+		vertex_result record;
+		i int;
+		n int;
+		spos int;
+		q text;
+		x float8[];
+		y float8[];
+
+	BEGIN
+		geoms := array[]::geometry[];
+		i := 1;
+
+		FOR vertex_result IN EXECUTE 'SELECT x, y FROM pgr_alphashape('''|| query || ''', ' || alpha || ')'
+		LOOP
+			x[i] = vertex_result.x;
+			y[i] = vertex_result.y;
+			i := i+1;
+		END LOOP;
+
+		n := i;
+		IF n = 1 THEN
+			RAISE NOTICE 'n = 1';
+			RETURN NULL;
+		END IF;
+
+		spos := 1;
+		q := 'SELECT ST_GeometryFromText(''POLYGON((';
+		FOR i IN 1..n LOOP
+			IF x[i] IS NULL AND y[i] IS NULL THEN
+				q := q || ', ' || x[spos] || ' ' || y[spos] || '))'',0) AS geom;';
+				EXECUTE q INTO r;
+				geoms := geoms || array[r.geom];
+				q := '';
+			ELSE
+				IF q = '' THEN
+					spos := i;
+					q := 'SELECT ST_GeometryFromText(''POLYGON((';
+				END IF;
+				IF i = spos THEN
+					q := q || x[spos] || ' ' || y[spos];
+				ELSE
+					q := q || ', ' || x[i] || ' ' || y[i];
+				END IF;
+			END IF;
+		END LOOP;
+
+		RETURN ST_BuildArea(ST_Collect(geoms));
+	END;
+	$$
+	LANGUAGE 'plpgsql' VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'bd_astar'
+LANGUAGE C VOLATILE;
+
+
+
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed:=true, only_cost:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    BOOLEAN,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false);
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to Many)';
+
+
+
+-- one to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to Many)';
+
+
+-- bdDijkstra MANY TO MANY
+CREATE OR REPLACE FUNCTION _pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'bdDijkstra'
+LANGUAGE c VOLATILE;
+
+
+
+-- ONE TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- TODO directed BOOLEAN DEFAULT TRUE,  on version 3
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, false) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, true) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_vid integer,
+    target_vid integer,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '$libdir/libpgrouting-2.5', 'turn_restrict_shortest_path_vertex'
+LANGUAGE 'c' IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '$libdir/libpgrouting-2.5', 'turn_restrict_shortest_path_edge'
+LANGUAGE 'c' IMMUTABLE;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || edges_sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        -- no restrictions then its a dijkstra
+        RETURN query SELECT a.seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_dijkstra(new_sql, start_vid, end_vid, directed) a;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, start_vid, end_vid, directed, has_rcost, restrictions_sql);
+    RETURN;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_trspViaVertices(
+    edges_sql TEXT,
+    via_vids ANYARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult3 AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            new_sql :=
+               'WITH old_sql AS (' || edges_sql || ')' ||
+                '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        RETURN query SELECT (row_number() over())::INTEGER, path_id:: INTEGER, node::INTEGER,
+            (CASE WHEN edge = -2 THEN -1 ELSE edge END)::INTEGER, cost
+            FROM pgr_dijkstraVia(new_sql, via_vids, directed, strict:=true) WHERE edge != -1;
+        RETURN;
+    END IF;
+
+
+    -- make the call without contradiction from part of the user
+    RETURN query SELECT * FROM _pgr_trspViaVertices(new_sql, via_vids::INTEGER[], directed, has_rcost, restrictions_sql);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+
+    new_sql := sql;
+    IF (has_reverse != has_reverse_cost) THEN  -- user contradiction
+        IF (has_reverse) THEN
+            -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) THEN
+        -- no restrictions then its a with points
+        RETURN query SELECT a.seq-1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_withpoints(new_sql,
+            '(SELECT 1 as pid, ' || source_eid || 'as edge_id, ' || source_pos || '::float8 as fraction)'
+            || ' UNION '
+            || '(SELECT 2, ' || target_eid || ', ' || target_pos || ')' ::TEXT,
+            -1, -2, directed) a;
+        -- WHERE node != -2;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, source_eid, source_pos, target_eid, target_pos, directed, has_reverse_cost, turn_restrict_sql);
+    RETURN;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+create or replace function _pgr_trspViaVertices(sql text, vids integer[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    lrra boolean := false;
+    seq integer := 0;
+    seq2 integer := 0;
+
+begin
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(vids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from _pgr_trsp(sql, vids[i], vids[i+1], directed, has_rcost, turn_restrict_sql) as a loop
+            -- filter out the individual path ends except the last one
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --raise notice 'rr: %', rr;
+            if rr.id3 = -1 then
+                lrr := rr;
+                lrra := true;
+            else
+                seq := seq + 1;
+                rr.seq := seq;
+                return next rr;
+            end if;
+        end loop;
+    end loop;
+
+    if lrra then
+        seq := seq + 1;
+        lrr.seq := seq;
+        return next lrr;
+    end if;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+
+----------------------------------------------------------------------------------------------------------
+
+create or replace function pgr_trspViaEdges(sql text, eids integer[], pcts float8[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    first boolean := true;
+    seq integer := 0;
+    seq2 integer :=0;
+    has_reverse BOOLEAN;
+    point_is_vertex BOOLEAN := false;
+    edges_sql TEXT;
+    f float;
+
+begin
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql := sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (NOT has_rcost) THEN
+            -- user does not want to use reverse cost column
+            edges_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    FOREACH f IN ARRAY pcts LOOP
+        IF f in (0,1) THEN
+           point_is_vertex := true;
+        END IF;
+    END LOOP;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) AND NOT point_is_vertex THEN
+        -- no restrictions then its a _pgr_withPointsVia
+        RETURN query SELECT a.seq::INTEGER, path_id::INTEGER AS id1, node::INTEGER AS id2, edge::INTEGER AS id3, cost
+        FROM _pgr_withPointsVia(edges_sql, eids, pcts, directed) a;
+        RETURN;
+    END IF;
+
+    if array_length(eids, 1) != array_length(pcts, 1) then
+        raise exception 'The length of arrays eids and pcts must be the same!';
+    end if;
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(eids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from pgr_trsp(edges_sql,
+                                  eids[i], pcts[i],
+                                  eids[i+1], pcts[i+1],
+                                  directed,
+                                  has_rcost,
+                                  turn_restrict_sql) as a loop
+            -- combine intermediate via costs when cost is split across
+            -- two parts of a segment because it stops it and
+            -- restarts the next leg also on it
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --
+            -- there are multiple condition we have to deal with
+            -- between the end of one leg and start of the next
+            -- 1. same vertex_id. edge_id=-1; drop record with edge_id=-1
+            -- means: path ends on vertex
+            -- NOTICE:  rr: (19,1,44570022,-1,0)
+            -- NOTICE:  rr: (0,2,44570022,1768045,2.89691196717448)
+            -- 2. vertex_id=-1; sum cost components
+            -- means: path end/starts with the segment
+            -- NOTICE:  rr: (11,2,44569628,1775909,9.32885885148532)
+            -- NOTICE:  rr: (0,3,-1,1775909,0.771386350984395)
+
+            --raise notice 'rr: %', rr;
+            if first then
+                lrr := rr;
+                first := false;
+            else
+                if lrr.id3 = -1 then
+                    lrr := rr;
+                elsif lrr.id3 = rr.id3 then
+                    lrr.cost := lrr.cost + rr.cost;
+                    if rr.id2 = -1 then
+                        rr.id2 := lrr.id2;
+                    end if;
+                else
+                    seq := seq + 1;
+                    lrr.seq := seq;
+                    return next lrr;
+                    lrr := rr;
+                end if;
+            end if;
+        end loop;
+    end loop;
+
+    seq := seq + 1;
+    lrr.seq := seq;
+    return next lrr;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+----------------------------
+--    MANY TO MANY
+----------------------------
+
+
+CREATE OR REPLACE FUNCTION _pgr_maxflow(
+    edges_sql TEXT,
+    sources ANYARRAY,
+    targets ANYARRAY,
+    algorithm INTEGER DEFAULT 1,
+    only_flow BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'max_flow_many_to_many'
+    LANGUAGE c VOLATILE;
+
+
+
+
+------------------------------------
+-- 3 pgr_edmondsKarp
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+------------------------------------
+-- 2 boykov_kolmogorov
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+------------------------------------
+-- 1 pgr_pushRelabel
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT flow
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], algorithm := 1, only_flow := true);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], $3::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, $2::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxCardinalityMatch(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'edge_disjoint_paths_many_to_many'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    bigint,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    IN directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_contractGraph(
+    edges_sql TEXT,
+    contraction_order BIGINT[],
+    max_cycles integer DEFAULT 1,
+    forbidden_vertices BIGINT[] DEFAULT ARRAY[]::BIGINT[],
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT type TEXT,
+    OUT id BIGINT,
+    OUT contracted_vertices BIGINT[],
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost float)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'contractGraph'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliver(
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_cell_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'pickDeliver'
+LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliverEuclidean (
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'pickDeliverEuclidean'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_vrpOneDepot(
+    TEXT, -- customers_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_sql
+    INTEGER, -- depot_id
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+orders_sql TEXT;
+trucks_sql TEXT;
+matrix_sql TEXT;
+final_sql TEXT;
+BEGIN
+
+    orders_sql = $$WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    pickups AS (
+        SELECT id, x AS p_x, y AS p_y, open_time AS p_open, close_time AS p_close, service_time AS p_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vrp_orders.id AS id, order_unit AS demand, pickups.id AS p_node_id, p_x, p_y, p_open, p_close, p_service,
+    vrp_orders.id AS d_node_id, x AS d_x, y AS d_y, open_time AS d_open, close_time AS d_close, service_time AS d_service
+    FROM vrp_orders, pickups
+    WHERE vrp_orders.id != $$ || $4;
+
+
+    trucks_sql = $$ WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    vrp_vehicles AS ($$ || $2 || $$ ),
+    starts AS (
+        SELECT id AS start_node_id, x AS start_x, y AS start_y, open_time AS start_open, close_time AS start_close, service_time AS start_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vehicle_id AS id, capacity, starts.* FROM vrp_vehicles, starts;
+    $$;
+
+    final_sql = '
+    SELECT * FROM _pgr_pickDeliver(
+            $$' || orders_sql || '$$,
+            $$' || trucks_sql || '$$,
+            $$' || $3 || '$$,
+            max_cycles := 2,
+            initial_sol := 4 ); ';
+
+    RAISE DEBUG '%', orders_sql;
+    RAISE DEBUG '%', trucks_sql;
+    RAISE DEBUG '%', $3;
+    RAISE DEBUG '%', final_sql;
+
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+-----------------------------------------------------------------------
+-- Core function for vrp with sigle depot computation
+-- See README for description
+-----------------------------------------------------------------------
+--
+--
+
+create or replace function pgr_vrpOneDepot(
+	order_sql text,
+	vehicle_sql text,
+	cost_sql text,
+	depot_id integer,
+
+	OUT oid integer,
+	OUT opos integer,
+	OUT vid integer,
+	OUT tarrival integer,
+	OUT tdepart integer)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT order_id::INTEGER, stop_seq::INTEGER, vehicle_id::INTEGER, arrival_time::INTEGER, departure_time::INTEGER
+    FROM _pgr_vrpOneDepot($1, $2,
+       '
+            SELECT src_id AS start_vid, dest_id AS end_vid, traveltime AS agg_cost FROM ('||$3||') AS a
+       ',
+        $4
+    ) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_gsoc_vrppdtw(
+    customers_sql TEXT,
+    max_vehicles INTEGER,
+    capacity FLOAT,
+    speed FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+
+    OUT seq INTEGER,
+    OUT vehicle_id INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT stop_id BIGINT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+    orders_sql TEXT;
+    vehicles_sql TEXT;
+    final_sql TEXT;
+BEGIN
+    orders_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        pickups AS (
+            SELECT id, demand, x as p_x, y as p_y, opentime as p_open, closetime as p_close, servicetime as p_service
+            FROM  customer_data WHERE pindex = 0 AND id != 0
+        ),
+        deliveries AS (
+            SELECT pindex AS id, x as d_x, y as d_y, opentime as d_open, closetime as d_close, servicetime as d_service
+            FROM  customer_data WHERE dindex = 0 AND id != 0
+        )
+        SELECT * FROM pickups JOIN deliveries USING(id) ORDER BY pickups.id
+    $$;
+
+    vehicles_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ )
+        SELECT id, x AS start_x, y AS start_y,
+            opentime AS start_open, closetime AS start_close, $$ ||
+            capacity || $$ AS capacity, $$ || max_vehicles || $$ AS number, $$ || speed || $$ AS speed
+            FROM customer_data WHERE id = 0 LIMIT 1
+        $$;
+--  seq | vehicle_id | vehicle_seq | stop_id | travel_time | arrival_time | wait_time | service_time | departure_time
+    final_sql = $$ WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        p_deliver AS (SELECT * FROM _pgr_pickDeliverEuclidean('$$ || orders_sql || $$',  '$$ || vehicles_sql || $$',  1, $$ || max_cycles || $$ )),
+        picks AS (SELECT p_deliver.*, pindex, dindex, id AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 2)),
+        delivers AS (SELECT p_deliver.*, pindex, dindex, dindex AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 3)),
+        depots AS (SELECT p_deliver.*, 0 as pindex, 0 as dindex, 0 AS the_id FROM p_deliver WHERE (stop_type IN (-1,1,6))),
+        the_union AS (SELECT * FROM picks UNION SELECT * FROM delivers UNION SELECT * from depots)
+
+        SELECT (row_number() over(ORDER BY a.seq))::INTEGER, vehicle_seq, a.stop_seq, the_id::BIGINT, a.travel_time, a.arrival_time, a.wait_time, a.service_time, a.departure_time
+        FROM (SELECT * FROM the_union) AS a ORDER BY a.seq
+        $$;
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+CREATE OR REPLACE FUNCTION pgr_gsoc_vrppdtw(
+    sql text,
+    vehicle_num INTEGER,
+    capacity INTEGER
+)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+customers_sql TEXT;
+BEGIN
+    RETURN query
+         SELECT a.seq, vehicle_id::INTEGER AS id1, stop_id::INTEGER AS id2, departure_time AS cost
+        FROM _pgr_gsoc_vrppdtw($1, $2, $3, 1, 30) AS a WHERE vehicle_id NOT IN (-2);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION _pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN,
+    driving_side CHAR,
+    details BOOLEAN,
+
+    only_cost BOOLEAN DEFAULT false, -- gets path
+    normal BOOLEAN DEFAULT true, -- false for many to onu
+
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'withPoints'
+LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], ARRAY[$4]::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], ARRAY[$4]::bigint[], $5, $6, $7, FALSE, FALSE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], $4::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], $4::BIGINT[], $5,  $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION  _pgr_withPointsVia(
+    sql text,
+    via_edges bigint[],
+    fraction float[],
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  has_rcost boolean;
+  sql_new_vertices text := ' ';
+  sql_on_vertex text;
+  v_union text := ' ';
+  dummyrec record;
+  rec1 record;
+  via_vertices int[];
+  sql_safe text;
+  new_edges text;
+  BEGIN
+     BEGIN
+        sql_safe = 'SELECT id, source, target, cost, reverse_cost FROM ('|| sql || ') AS __a';
+
+        EXECUTE 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||sql_safe||' ) AS __b__ limit 1 ' INTO rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+     END;
+
+
+      IF array_length(via_edges, 1) != array_length(fraction, 1) then
+        RAISE EXCEPTION 'The length of via_edges is different of length of via_edges';
+      END IF;
+
+      FOR i IN 1 .. array_length(via_edges, 1)
+      LOOP
+          IF fraction[i] = 0 THEN
+              sql_on_vertex := 'SELECT source FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.source;
+          ELSE IF fraction[i] = 1 THEN
+              sql_on_vertex := 'SELECT target FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.target;
+          ELSE
+              via_vertices[i] = -i;
+              IF has_rcost THEN
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost,
+                              reverse_cost * (1 - ' || fraction[i] || ')  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost,
+                              reverse_cost *  ' || fraction[i] || '  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' where id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               ELSE
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               END IF;
+          END IF;
+          END IF;
+     END LOOP;
+
+     IF sql_new_vertices = ' ' THEN
+         new_edges := sql;
+     ELSE
+         IF has_rcost THEN
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost,
+                         lead(cost) OVER w  - cost AS reverse_cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL),
+                   second_part AS ( SELECT * FROM (SELECT id, lead(source) OVER w  AS source, source as target,
+                         reverse_cost - lead(reverse_cost) OVER w  AS cost,
+                         reverse_cost - lead(reverse_cost) OVER w  AS reverse_cost
+                      FROM  the_union  WHERE target > 0 and reverse_cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY reverse_cost ASC) ) as n2
+                      WHERE source IS NOT NULL),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part)
+                             UNION
+                       (SELECT * FROM second_part) ) _union )
+                  SELECT *  FROM more_union';
+         ELSE
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL ),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part) ) _union )
+                  SELECT *  FROM more_union';
+          END IF;
+      END IF;
+
+ -- raise notice '%', new_edges;
+     sql_new_vertices := sql_new_vertices || v_union || ' (' || sql || ')';
+     RETURN query SELECT *
+         FROM pgr_dijkstraVia(new_edges, via_vertices, directed, has_rcost);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_lineGraph(
+    TEXT, -- edges_sql
+    directed BOOLEAN DEFAULT true,
+    OUT seq INTEGER,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost FLOAT,
+    OUT reverse_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'lineGraph'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_connectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'connectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_strongComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'strongComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_biconnectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the edge in the component
+    OUT n_seq INTEGER,          -- nth_seq of the edge in the component
+    OUT edge BIGINT)            -- the number of the edge
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'biconnectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_articulationPoints(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'articulationPoints'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_bridges(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT edge BIGINT)            -- the number of the edge 
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'bridges'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_createtopology(edge_table text, tolerance double precision,
+		   the_geom text default 'the_geom', id text default 'id',
+		   source text default 'source', target text default 'target',rows_where text default 'true',
+		   clean boolean default FALSE)
+RETURNS VARCHAR AS
+$BODY$
+
+DECLARE
+    points record;
+    sridinfo record;
+    source_id bigint;
+    target_id bigint;
+    totcount bigint;
+    rowcount bigint;
+    srid integer;
+    sql text;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    idname text;
+    sourcename text;
+    targetname text;
+    notincluded integer;
+    i integer;
+    naming record;
+    info record;
+    flag boolean;
+    query text;
+    idtype text;
+    gtype text;
+    sourcetype text;
+    targettype text;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+    msgKind int;
+    emptied BOOLEAN;
+
+BEGIN
+    msgKind = 1; -- notice
+    fnName = 'pgr_createTopology';
+    raise notice 'PROCESSING:';
+    raise notice 'pgr_createTopology(''%'', %, ''%'', ''%'', ''%'', ''%'', rows_where := ''%'', clean := %)',edge_table,tolerance,the_geom,id,source,target,rows_where, clean;
+    execute 'show client_min_messages' into debuglevel;
+
+
+    raise notice 'Performing checks, please wait .....';
+
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+        sname=naming.sname;
+        tname=naming.tname;
+        tabname=sname||'.'||tname;
+        vname=tname||'_vertices_pgr';
+        vertname= sname||'.'||vname;
+        rows_where = ' AND ('||rows_where||')';
+      raise DEBUG '     --> OK';
+
+
+      raise debug 'Checking column names in edge table';
+        select * into idname     from _pgr_getColumnName(sname, tname,id,2,fnName);
+        select * into sourcename from _pgr_getColumnName(sname, tname,source,2,fnName);
+        select * into targetname from _pgr_getColumnName(sname, tname,target,2,fnName);
+        select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2,fnName);
+
+
+        err = sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname;
+        perform _pgr_onError( err, 2, fnName,
+               'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
+	       'Column names are OK');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking column types in edge table';
+        select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+        select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+        select * into idtype from _pgr_getColumnType(sname,tname,idname,1, fnName);
+
+        err = idtype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column id:'|| idname, ' Expected type of '|| idname || ' is integer,smallint or bigint but '||idtype||' was found');
+
+        err = sourcetype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column source:'|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+        err = targettype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column target:'|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or bigint but '||targettype||' was found');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking SRID of geometry column';
+         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+            || ' FROM ' || _pgr_quote_ident(tabname)
+            || ' WHERE ' || quote_ident(gname)
+            || ' IS NOT NULL LIMIT 1';
+         raise debug '%',query;
+         EXECUTE query INTO sridinfo;
+
+         err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+         perform _pgr_onError(err, 2, fnName,
+	     'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+
+         srid := sridinfo.srid;
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking and creating indices in edge table';
+        perform _pgr_createIndex(sname, tname , idname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+
+        gname=quote_ident(gname);
+        idname=quote_ident(idname);
+        sourcename=quote_ident(sourcename);
+        targetname=quote_ident(targetname);
+      raise DEBUG '     --> OK';
+
+
+
+
+
+    BEGIN
+        -- issue #193 & issue #210 & #213
+        -- this sql is for trying out the where clause
+        -- the select * is to avoid any column name conflicts
+        -- limit 1, just try on first record
+        -- if the where clasuse is ill formed it will be caught in the exception
+        sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+        EXECUTE sql into dummyRec;
+        -- end
+
+        -- if above where clasue works this one should work
+        -- any error will be caught by the exception also
+        sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NOT NULL AND '||
+	    idname||' IS NOT NULL)=false '||rows_where;
+        EXECUTE SQL  into notincluded;
+
+        if clean then
+            raise debug 'Cleaning previous Topology ';
+               execute 'UPDATE ' || _pgr_quote_ident(tabname) ||
+               ' SET '||sourcename||' = NULL,'||targetname||' = NULL';
+        else
+            raise debug 'Creating topology for edges with non assigned topology';
+            if rows_where=' AND (true)' then
+                rows_where=  ' and ('||quote_ident(sourcename)||' is null or '||quote_ident(targetname)||' is  null)';
+            end if;
+        end if;
+        -- my thoery is that the select Count(*) will never go through here
+        EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+             RAISE NOTICE '%',sql;
+             RETURN 'FAIL';
+    END;
+
+    BEGIN
+         raise DEBUG 'initializing %',vertname;
+         execute 'select * from _pgr_getTableName('||quote_literal(vertname)
+                                                  || ',0,' || quote_literal(fnName) ||' )' into naming;
+         emptied = false;
+         set client_min_messages  to warning;
+         IF sname=naming.sname AND vname=naming.tname  THEN
+            if clean then
+                execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+                execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+                emptied = true;
+            end if;
+         ELSE -- table doesn't exist
+            execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+            emptied = true;
+         END IF;
+         IF (emptied) THEN
+             execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+	         quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+             perform _pgr_createIndex(vertname , 'the_geom'::text , 'gist'::text);
+         END IF;
+         execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id"}''::text[])' into naming;
+         execute 'set client_min_messages  to '|| debuglevel;
+         raise DEBUG  '  ------>OK';
+         EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: something went wrong when initializing the verties table';
+             RETURN 'FAIL';
+    END;
+
+
+
+    raise notice 'Creating Topology, Please wait...';
+        rowcount := 0;
+        FOR points IN EXECUTE 'SELECT ' || idname || '::bigint AS id,'
+            || ' _pgr_StartPoint(' || gname || ') AS source,'
+            || ' _pgr_EndPoint('   || gname || ') AS target'
+            || ' FROM '  || _pgr_quote_ident(tabname)
+            || ' WHERE ' || gname || ' IS NOT NULL AND ' || idname||' IS NOT NULL '||rows_where
+        LOOP
+
+            rowcount := rowcount + 1;
+            IF rowcount % 1000 = 0 THEN
+                RAISE NOTICE '% edges processed', rowcount;
+            END IF;
+
+
+            source_id := _pgr_pointToId(points.source, tolerance,vertname,srid);
+            target_id := _pgr_pointToId(points.target, tolerance,vertname,srid);
+            BEGIN
+                sql := 'UPDATE ' || _pgr_quote_ident(tabname) ||
+                    ' SET '||sourcename||' = '|| source_id::text || ','||targetname||' = ' || target_id::text ||
+                    ' WHERE ' || idname || ' =  ' || points.id::text;
+
+                IF sql IS NULL THEN
+                    RAISE NOTICE 'WARNING: UPDATE % SET source = %, target = % WHERE % = % ', tabname, source_id::text, target_id::text, idname,  points.id::text;
+                ELSE
+                    EXECUTE sql;
+                END IF;
+                EXCEPTION WHEN OTHERS THEN
+                    RAISE NOTICE '%', SQLERRM;
+                    RAISE NOTICE '%',sql;
+                    RETURN 'FAIL';
+            end;
+        END LOOP;
+        raise notice '-------------> TOPOLOGY CREATED FOR  % edges', rowcount;
+        RAISE NOTICE 'Rows with NULL geometry or NULL id: %',notincluded;
+        Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname), _pgr_quote_ident(vertname);
+        raise notice '----------------------------------------------';
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+COMMENT ON FUNCTION pgr_createTopology(text, double precision,text,text,text,text,text,boolean)
+IS 'args: edge_table,tolerance, the_geom:=''the_geom'',source:=''source'', target:=''target'',rows_where:=''true'' - fills columns source and target in the geometry table and creates a vertices table for selected rows';
+
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
+RETURNS character varying AS
+$BODY$
+
+DECLARE
+    points record;
+    seg record;
+    naming record;
+    sridinfo record;
+    srid integer;
+    ecnt integer;
+    vertname text;
+    sname text;
+    tname text;
+    vname text;
+    idname text;
+    sourcename text;
+    targetname text;
+    sourcetype text;
+    targettype text;
+    geotype text;
+    gname text;
+    tabName text;
+    flag boolean ;
+    query text;
+    selectionquery text;
+    i integer;
+    tot integer;
+    NumIsolated integer;
+    numdeadends integer;
+    numgaps integer;
+    NumCrossing integer;
+    numRings integer;
+    debuglevel text;
+
+
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_analyzeGraph(''%'',%,''%'',''%'',''%'',''%'',''%'')',edge_table,tolerance,the_geom,id,source,target,rows_where;
+  raise notice 'Performing checks, please wait ...';
+  execute 'show client_min_messages' into debuglevel;
+
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',2)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    rows_where = ' AND ('||rows_where||')';
+    raise DEBUG '     --> OK';
+
+  END;
+
+  BEGIN
+       raise debug 'Checking Vertices table';
+       execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","cnt","chk"}''::text[])' into naming;
+       execute 'UPDATE '||_pgr_quote_ident(vertname)||' SET cnt=0 ,chk=0';
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the vertices table';
+          RETURN 'FAIL';
+  END;
+
+
+
+  BEGIN
+       raise debug 'Checking column names in edge table';
+       select * into idname     from _pgr_getColumnName(sname, tname,id,2);
+       select * into sourcename from _pgr_getColumnName(sname, tname,source,2);
+       select * into targetname from _pgr_getColumnName(sname, tname,target,2);
+       select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2);
+
+
+       perform _pgr_onError( sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname, 2,
+                       'pgr_analyzeGraph',  'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
+                       'Column names are OK');
+
+        raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column names';
+          RETURN 'FAIL';
+  END;
+
+
+  BEGIN
+       raise debug 'Checking column types in edge table';
+       select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1);
+       select * into targettype from _pgr_getColumnType(sname,tname,targetname,1);
+
+       perform _pgr_onError(sourcetype not in('integer','smallint','bigint') , 2,
+                       'pgr_analyzeGraph',  'Wrong type of Column '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found',
+                       'Type of Column '|| sourcename || ' is ' || sourcetype);
+
+       perform _pgr_onError(targettype not in('integer','smallint','bigint') , 2,
+                       'pgr_analyzeGraph',  'Wrong type of Column '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found',
+                       'Type of Column '|| targetname || ' is ' || targettype);
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column types';
+          RETURN 'FAIL';
+   END;
+
+   BEGIN
+       raise debug 'Checking SRID of geometry column';
+         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+            || ' FROM ' || _pgr_quote_ident(tabname)
+            || ' WHERE ' || quote_ident(gname)
+            || ' IS NOT NULL LIMIT 1';
+         EXECUTE QUERY INTO sridinfo;
+
+         perform _pgr_onError( sridinfo IS NULL OR sridinfo.srid IS NULL,2,
+                 'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname,
+                 'SRID of '||gname||' is '||sridinfo.srid);
+
+         IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
+             RAISE NOTICE ' Can not determine the srid of the geometry "%" in table %', the_geom,tabname;
+             RETURN 'FAIL';
+         END IF;
+         srid := sridinfo.srid;
+         raise DEBUG '     --> OK';
+         EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM;--issue 210,211,213
+             RAISE NOTICE 'ERROR: something went wrong when checking for SRID of % in table %', the_geom,tabname;
+             RETURN 'FAIL';
+    END;
+
+
+    BEGIN
+       raise debug 'Checking  indices in edge table';
+       perform _pgr_createIndex(tabname , idname , 'btree');
+       perform _pgr_createIndex(tabname , sourcename , 'btree');
+       perform _pgr_createIndex(tabname , targetname , 'btree');
+       perform _pgr_createIndex(tabname , gname , 'gist');
+
+       gname=quote_ident(gname);
+       sourcename=quote_ident(sourcename);
+       targetname=quote_ident(targetname);
+       idname=quote_ident(idname);
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking indices';
+          RETURN 'FAIL';
+    END;
+
+
+    BEGIN
+        query='select count(*) from '||_pgr_quote_ident(tabname)||' where true  '||rows_where;
+        EXECUTE query into ecnt;
+        raise DEBUG '-->Rows Where condition: OK';
+        raise DEBUG '     --> OK';
+         EXCEPTION WHEN OTHERS THEN
+            RAISE NOTICE 'Got %', SQLERRM;  --issue 210,211,213
+            RAISE NOTICE 'ERROR: Condition is not correct. Please execute the following query to test your condition';
+            RAISE NOTICE '%',query;
+            RETURN 'FAIL';
+    END;
+
+    selectionquery ='with
+           selectedRows as( (select '||sourcename||' as id from '||_pgr_quote_ident(tabname)||' where true '||rows_where||')
+                           union
+                           (select '||targetname||' as id from '||_pgr_quote_ident(tabname)||' where true '||rows_where||'))';
+
+
+
+
+
+   BEGIN
+       RAISE NOTICE 'Analyzing for dead ends. Please wait...';
+       query= 'with countingsource as (select a.'||sourcename||' as id,count(*) as cnts
+               from (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) a  group by a.'||sourcename||')
+                     ,countingtarget as (select a.'||targetname||' as id,count(*) as cntt
+                    from (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) a  group by a.'||targetname||')
+                   ,totalcount as (select id,case when cnts is null and cntt is null then 0
+                                                   when cnts is null then cntt
+                                                   when cntt is null then cnts
+                                                   else cnts+cntt end as totcnt
+                                   from ('||_pgr_quote_ident(vertname)||' as a left
+                                   join countingsource as t using(id) ) left join countingtarget using(id))
+               update '||_pgr_quote_ident(vertname)||' as a set cnt=totcnt from totalcount as b where a.id=b.id';
+       raise debug '%',query;
+       execute query;
+       query=selectionquery||'
+              SELECT count(*)  FROM '||_pgr_quote_ident(vertname)||' WHERE cnt=1 and id in (select id from selectedRows)';
+       raise debug '%',query;
+       execute query  INTO numdeadends;
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'Got %', SQLERRM;  --issue 210,211,213
+          RAISE NOTICE 'ERROR: something went wrong when analizing for dead ends';
+          RETURN 'FAIL';
+   END;
+
+
+
+    BEGIN
+          RAISE NOTICE 'Analyzing for gaps. Please wait...';
+          query = 'with
+                   buffer as (select id,st_buffer(the_geom,'||tolerance||') as buff from '||_pgr_quote_ident(vertname)||' where cnt=1)
+                   ,veryclose as (select b.id,st_crosses(a.'||gname||',b.buff) as flag
+                   from  (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) as a
+                   join buffer as b on (a.'||gname||'&&b.buff)
+                   where '||sourcename||'!=b.id and '||targetname||'!=b.id )
+                   update '||_pgr_quote_ident(vertname)||' set chk=1 where id in (select distinct id from veryclose where flag=true)';
+          raise debug '%' ,query;
+          execute query;
+          GET DIAGNOSTICS  numgaps= ROW_COUNT;
+          raise DEBUG '     --> OK';
+          EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for gaps';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for isolated edges. Please wait...';
+        query=selectionquery|| ' SELECT count(*) FROM (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' )  as a,
+                                                 '||_pgr_quote_ident(vertname)||' as b,
+                                                 '||_pgr_quote_ident(vertname)||' as c
+                            WHERE b.id in (select id from selectedRows) and a.'||sourcename||' =b.id
+                            AND b.cnt=1 AND a.'||targetname||' =c.id
+                            AND c.cnt=1';
+        raise debug '%' ,query;
+        execute query  INTO NumIsolated;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for isolated edges';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for ring geometries. Please wait...';
+        execute 'SELECT geometrytype('||gname||')  FROM '||_pgr_quote_ident(tabname) limit 1 into geotype;
+        IF (geotype='MULTILINESTRING') THEN
+            query ='SELECT count(*)  FROM '||_pgr_quote_ident(tabname)||'
+                                 WHERE true  '||rows_where||' and st_isRing(st_linemerge('||gname||'))';
+            raise debug '%' ,query;
+            execute query  INTO numRings;
+        ELSE query ='SELECT count(*)  FROM '||_pgr_quote_ident(tabname)||'
+                                  WHERE true  '||rows_where||' and st_isRing('||gname||')';
+            raise debug '%' ,query;
+            execute query  INTO numRings;
+        END IF;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for ring geometries';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for intersections. Please wait...';
+        query = 'select count(*) from (select distinct case when a.'||idname||' < b.'||idname||' then a.'||idname||'
+                                                        else b.'||idname||' end,
+                                                   case when a.'||idname||' < b.'||idname||' then b.'||idname||'
+                                                        else a.'||idname||' end
+                                    FROM (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||') as a
+                                    JOIN (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||') as b
+                                    ON (a.'|| gname||' && b.'||gname||')
+                                    WHERE a.'||idname||' != b.'||idname|| '
+                                        and (a.'||sourcename||' in (b.'||sourcename||',b.'||targetname||')
+                                              or a.'||targetname||' in (b.'||sourcename||',b.'||targetname||')) = false
+                                        and st_intersects(a.'||gname||', b.'||gname||')=true) as d ';
+        raise debug '%' ,query;
+        execute query  INTO numCrossing;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for intersections';
+            RETURN 'FAIL';
+    END;
+
+
+
+
+    RAISE NOTICE '            ANALYSIS RESULTS FOR SELECTED EDGES:';
+    RAISE NOTICE '                  Isolated segments: %', NumIsolated;
+    RAISE NOTICE '                          Dead ends: %', numdeadends;
+    RAISE NOTICE 'Potential gaps found near dead ends: %', numgaps;
+    RAISE NOTICE '             Intersections detected: %',numCrossing;
+    RAISE NOTICE '                    Ring geometries: %',numRings;
+
+
+    RETURN 'OK';
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+COMMENT ON FUNCTION pgr_analyzeGraph(text,double precision,text,text,text,text,text) IS 'args: edge_table, tolerance,the_geom:=''the_geom'',id:=''id'',source column:=''source'', target column:=''target'' rows_where:=''true'' - creates a vertices table based on the geometry for selected rows';
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_analyzeOneway(
+   edge_table text,
+   s_in_rules TEXT[],
+   s_out_rules TEXT[],
+   t_in_rules TEXT[],
+   t_out_rules TEXT[],
+   two_way_if_null boolean default true,
+   oneway text default 'oneway',
+   source text default 'source',
+   target text default 'target')
+  RETURNS text AS
+$BODY$
+
+
+DECLARE
+    rule text;
+    ecnt integer;
+    instr text;
+    naming record;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    owname text;
+    sourcename text;
+    targetname text;
+    sourcetype text;
+    targettype text;
+    vertname text;
+    debuglevel text;
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_analyzeOneway(''%'',''%'',''%'',''%'',''%'',''%'',''%'',''%'',%)',
+		edge_table, s_in_rules , s_out_rules, t_in_rules, t_out_rules, oneway, source ,target,two_way_if_null ;
+  execute 'show client_min_messages' into debuglevel;
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',2)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    raise DEBUG '     --> OK';
+    EXCEPTION WHEN raise_exception THEN
+      RAISE NOTICE 'ERROR: something went wrong checking the table name';
+      RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise debug 'Checking Vertices table';
+       execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","ein","eout"}''::text[])' into naming;
+       execute 'UPDATE '||_pgr_quote_ident(vertname)||' SET eout=0 ,ein=0';
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the vertices table';
+          RETURN 'FAIL';
+  END;
+
+
+  BEGIN
+       raise debug 'Checking column names in edge table';
+       select * into sourcename from _pgr_getColumnName(sname, tname,source,2);
+       select * into targetname from _pgr_getColumnName(sname, tname,target,2);
+       select * into owname from _pgr_getColumnName(sname, tname,oneway,2);
+
+
+       perform _pgr_onError( sourcename in (targetname,owname) or  targetname=owname, 2,
+                       '_pgr_createToplogy',  'Two columns share the same name', 'Parameter names for oneway,source and target  must be different',
+                       'Column names are OK');
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column names';
+          RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise debug 'Checking column types in edge table';
+       select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1);
+       select * into targettype from _pgr_getColumnType(sname,tname,targetname,1);
+
+
+       perform _pgr_onError(sourcetype not in('integer','smallint','bigint') , 2,
+                       '_pgr_createTopology',  'Wrong type of Column '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found',
+                       'Type of Column '|| sourcename || ' is ' || sourcetype);
+
+       perform _pgr_onError(targettype not in('integer','smallint','bigint') , 2,
+                       '_pgr_createTopology',  'Wrong type of Column '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found',
+                       'Type of Column '|| targetname || ' is ' || targettype);
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column types';
+          RETURN 'FAIL';
+   END;
+
+
+
+    RAISE NOTICE 'Analyzing graph for one way street errors.';
+
+    rule := CASE WHEN two_way_if_null
+            THEN owname || ' IS NULL OR '
+            ELSE '' END;
+
+    instr := '''' || array_to_string(s_in_rules, ''',''') || '''';
+       EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set ein=coalesce(ein,0)+b.cnt
+      from (
+         select '|| sourcename ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| sourcename ||' ) b
+     where a.id=b.'|| sourcename;
+
+    RAISE NOTICE 'Analysis 25%% complete ...';
+
+    instr := '''' || array_to_string(t_in_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set ein=coalesce(ein,0)+b.cnt
+        from (
+         select '|| targetname ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| targetname ||' ) b
+        where a.id=b.'|| targetname;
+
+    RAISE NOTICE 'Analysis 50%% complete ...';
+
+    instr := '''' || array_to_string(s_out_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set eout=coalesce(eout,0)+b.cnt
+        from (
+         select '|| sourcename ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| sourcename ||' ) b
+        where a.id=b.'|| sourcename;
+    RAISE NOTICE 'Analysis 75%% complete ...';
+
+    instr := '''' || array_to_string(t_out_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set eout=coalesce(eout,0)+b.cnt
+        from (
+         select '|| targetname ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| targetname ||' ) b
+        where a.id=b.'|| targetname;
+
+    RAISE NOTICE 'Analysis 100%% complete ...';
+
+    EXECUTE 'SELECT count(*)  FROM '||_pgr_quote_ident(vertname)||' WHERE ein=0 or eout=0' INTO ecnt;
+
+    RAISE NOTICE 'Found % potential problems in directionality' ,ecnt;
+
+    RETURN 'OK';
+
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+COMMENT ON FUNCTION pgr_analyzeOneway(text,TEXT[],TEXT[], TEXT[],TEXT[],boolean,text,text,text)
+IS 'args:edge_table , s_in_rules , s_out_rules, t_in_rules , t_out_rules, two_way_if_null:= true, oneway:=''oneway'',source:= ''source'',target:=''target'' - Analizes the directionality of the edges based on the rules';
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_createverticestable(
+   edge_table text,
+   the_geom text DEFAULT 'the_geom'::text,
+   source text DEFAULT 'source'::text,
+   target text DEFAULT 'target'::text,
+    rows_where text DEFAULT 'true'::text
+)
+  RETURNS text AS
+$BODY$
+DECLARE
+    naming record;
+    sridinfo record;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    sourcename text;
+    targetname text;
+    query text;
+    ecnt bigint;
+    srid integer;
+    sourcetype text;
+    targettype text;
+    sql text;
+    totcount integer;
+    i integer;
+    notincluded integer;
+    included integer;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+
+
+BEGIN
+  fnName = 'pgr_createVerticesTable';
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_createVerticesTable(''%'',''%'',''%'',''%'',''%'')',edge_table,the_geom,source,target,rows_where;
+  execute 'show client_min_messages' into debuglevel;
+
+  raise notice 'Performing checks, please wait .....';
+
+  RAISE DEBUG 'Checking % exists',edge_table;
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    rows_where = ' AND ('||rows_where||')';
+  raise debug '--> Edge table exists: OK';
+
+  raise debug 'Checking column names';
+    select * into sourcename from _pgr_getColumnName(sname, tname,source,2, fnName);
+    select * into targetname from _pgr_getColumnName(sname, tname,target,2, fnName);
+    select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2, fnName);
+
+
+    err = sourcename in (targetname,gname) or  targetname=gname;
+    perform _pgr_onError(err, 2, fnName,
+        'Two columns share the same name', 'Parameter names for the_geom,source and target  must be different');
+  raise debug '--> Column names: OK';
+
+  raise debug 'Checking column types in edge table';
+    select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+    select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+
+
+    err = sourcetype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column source: '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+    err = targettype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column target: '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found');
+
+  raise debug '-->Column types:OK';
+
+  raise debug 'Checking SRID of geometry column';
+     query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+        || ' FROM ' || _pgr_quote_ident(tabname)
+        || ' WHERE ' || quote_ident(gname)
+        || ' IS NOT NULL LIMIT 1';
+     raise debug '%',query;
+     EXECUTE query INTO sridinfo;
+
+     err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+     perform _pgr_onError(err, 2, fnName,
+         'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+     srid := sridinfo.srid;
+  raise DEBUG '     --> OK';
+
+  raise debug 'Checking and creating Indices';
+     perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+  raise DEBUG '-->Check and create indices: OK';
+
+     gname=quote_ident(gname);
+     sourcename=quote_ident(sourcename);
+     targetname=quote_ident(targetname);
+
+
+  BEGIN
+  raise debug 'Checking Condition';
+    -- issue #193 & issue #210 & #213
+    -- this sql is for trying out the where clause
+    -- the select * is to avoid any column name conflicts
+    -- limit 1, just try on first record
+    -- if the where clasuse is ill formed it will be caught in the exception
+    sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+    EXECUTE sql into dummyRec;
+    -- end
+
+    -- if above where clasue works this one should work
+    -- any error will be caught by the exception also
+    sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NULL or '||
+		sourcename||' is null or '||targetname||' is null)=true '||rows_where;
+    raise debug '%',sql;
+    EXECUTE SQL  into notincluded;
+    EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+
+
+
+  BEGIN
+     raise DEBUG 'initializing %',vertname;
+       execute 'select * from _pgr_getTableName('||quote_literal(vertname)||',0)' into naming;
+       IF sname=naming.sname  AND vname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+       ELSE
+           set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+       END IF;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+                quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+       execute 'CREATE INDEX '||quote_ident(vname||'_the_geom_idx')||' ON '||_pgr_quote_ident(vertname)||'  USING GIST (the_geom)';
+       execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+       EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Initializing vertex table';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise notice 'Populating %, please wait...',vertname;
+       sql= 'with
+		lines as ((select distinct '||sourcename||' as id, _pgr_startpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+		                  ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||')
+			union (select distinct '||targetname||' as id,_pgr_endpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+			          ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||'))
+		,numberedLines as (select row_number() OVER (ORDER BY id) AS i,* from lines )
+		,maxid as (select id,max(i) as maxi from numberedLines group by id)
+		insert into '||_pgr_quote_ident(vertname)||'(id,the_geom)  (select id,the_geom  from numberedLines join maxid using(id) where i=maxi order by id)';
+       RAISE debug '%',sql;
+       execute sql;
+       GET DIAGNOSTICS totcount = ROW_COUNT;
+
+       sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' a, '||_pgr_quote_ident(vertname)||' b
+            where '||sourcename||'=b.id and '|| targetname||' in (select id from '||_pgr_quote_ident(vertname)||')';
+       RAISE debug '%',sql;
+       execute sql into included;
+
+
+
+       execute 'select max(id) from '||_pgr_quote_ident(vertname) into ecnt;
+       execute 'SELECT setval('||quote_literal(vertname||'_id_seq')||','||coalesce(ecnt,1)||' , false)';
+       raise notice '  ----->   VERTICES TABLE CREATED WITH  % VERTICES', totcount;
+       raise notice '                                       FOR   %  EDGES', included+notincluded;
+       RAISE NOTICE '  Edges with NULL geometry,source or target: %',notincluded;
+       RAISE NOTICE '                            Edges processed: %',included;
+       Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname),_pgr_quote_ident(vertname);
+       raise notice '----------------------------------------------';
+    END;
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+COMMENT ON FUNCTION pgr_createVerticesTable(text,text,text,text,text)
+IS 'args: edge_table, the_geom:=''the_geom'',source:=''source'', target:=''target'' rows_where:=''true'' - creates a vertices table based on the source and target identifiers for selected rows';
+
+
+CREATE OR REPLACE FUNCTION pgr_nodeNetwork(edge_table text, tolerance double precision,
+			id text default 'id', the_geom text default 'the_geom', table_ending text default 'noded',
+            rows_where text DEFAULT ''::text, outall boolean DEFAULT false) RETURNS text AS
+$BODY$
+DECLARE
+	
+	p_num int := 0;
+	p_ret text := '';
+    pgis_ver_old boolean := _pgr_versionless(postgis_lib_version(), '2.1.0.0');
+    vst_line_substring text;
+    vst_line_locate_point text;
+    intab text;
+    outtab text;
+    n_pkey text;
+    n_geom text;
+    naming record;
+    sname text;
+    tname text;
+    outname text;
+    srid integer;
+    sridinfo record;
+    splits bigint;
+    touched bigint;
+    untouched bigint;
+    geomtype text;
+    debuglevel text;
+    rows_where text;
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_nodeNetwork(''%'', %, ''%'', ''%'', ''%'', ''%'',  %)',
+    edge_table, tolerance, id,  the_geom, table_ending, rows_where, outall;
+  raise notice 'Performing checks, please wait .....';
+  execute 'show client_min_messages' into debuglevel;
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',0)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+	RAISE NOTICE '-------> % not found',edge_table;
+        RETURN 'FAIL';
+    ELSE
+	RAISE DEBUG '  -----> OK';
+    END IF;
+
+    intab=sname||'.'||tname;
+    outname=tname||'_'||table_ending;
+    outtab= sname||'.'||outname;
+    rows_where = CASE WHEN length(rows_where) > 2 and not outall THEN ' AND (' || rows_where || ')' ELSE '' END;
+    rows_where = CASE WHEN length(rows_where) > 2 THEN ' WHERE (' || rows_where || ')' ELSE '' END;
+  END;
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',id,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(id)||')' INTO n_pkey;
+       IF n_pkey is NULL then
+          raise notice  'ERROR: id column "%"  not found in %',id,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',the_geom,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(the_geom)||')' INTO n_geom;
+       IF n_geom is NULL then
+          raise notice  'ERROR: the_geom  column "%"  not found in %',the_geom,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+  IF n_pkey=n_geom THEN
+	raise notice  'ERROR: id and the_geom columns have the same name "%" in %',n_pkey,intab;
+        RETURN 'FAIL';
+  END IF;
+
+  BEGIN
+       	raise DEBUG 'Checking the SRID of the geometry "%"', n_geom;
+       	EXECUTE 'SELECT ST_SRID(' || quote_ident(n_geom) || ') as srid '
+          		|| ' FROM ' || _pgr_quote_ident(intab)
+          		|| ' WHERE ' || quote_ident(n_geom)
+          		|| ' IS NOT NULL LIMIT 1' INTO sridinfo;
+       	IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
+        	RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           	RETURN 'FAIL';
+       	END IF;
+       	srid := sridinfo.srid;
+       	raise DEBUG '  -----> SRID found %',srid;
+       	EXCEPTION WHEN OTHERS THEN
+           		RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           		RETURN 'FAIL';
+  END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_pkey,intab;
+      if (_pgr_isColumnIndexed(intab,n_pkey)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding  index "%_%_idx".',n_pkey,intab;
+
+	set client_min_messages  to warning;
+        execute 'create  index '||tname||'_'||n_pkey||'_idx on '||_pgr_quote_ident(intab)||' using btree('||quote_ident(n_pkey)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_geom,intab;
+      if (_pgr_iscolumnindexed(intab,n_geom)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding unique index "%_%_gidx".',intab,n_geom;
+	set client_min_messages  to warning;
+        execute 'CREATE INDEX '
+            || quote_ident(tname || '_' || n_geom || '_gidx' )
+            || ' ON ' || _pgr_quote_ident(intab)
+            || ' USING gist (' || quote_ident(n_geom) || ')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+---------------
+    BEGIN
+       raise DEBUG 'initializing %',outtab;
+       execute 'select * from _pgr_getTableName('||quote_literal(outtab)||',0)' into naming;
+       IF sname=naming.sname  AND outname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(outtab)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(outname)||','||quote_literal(n_geom)||')';
+       ELSE
+	   set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(outtab)||' (id bigserial PRIMARY KEY,old_id integer,sub_id integer,
+								source bigint,target bigint)';
+       END IF;
+       execute 'select geometrytype('||quote_ident(n_geom)||') from  '||_pgr_quote_ident(intab)||' limit 1' into geomtype;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(outname)||','||
+                quote_literal(n_geom)||','|| srid||', '||quote_literal(geomtype)||', 2)';
+       execute 'CREATE INDEX '||quote_ident(outname||'_'||n_geom||'_idx')||' ON '||_pgr_quote_ident(outtab)||'  USING GIST ('||quote_ident(n_geom)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+    END;
+----------------
+
+
+  raise notice 'Processing, please wait .....';
+
+
+    if pgis_ver_old then
+        vst_line_substring    := 'st_line_substring';
+        vst_line_locate_point := 'st_line_locate_point';
+    else
+        vst_line_substring    := 'st_linesubstring';
+        vst_line_locate_point := 'st_linelocatepoint';
+    end if;
+
+--    -- First creates temp table with intersection points
+    p_ret = 'create temp table intergeom on commit drop as (
+        select l1.' || quote_ident(n_pkey) || ' as l1id,
+               l2.' || quote_ident(n_pkey) || ' as l2id,
+	       l1.' || quote_ident(n_geom) || ' as line,
+	       _pgr_startpoint(l2.' || quote_ident(n_geom) || ') as source,
+	       _pgr_endpoint(l2.' || quote_ident(n_geom) || ') as target,
+               st_intersection(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ') as geom
+        from (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l1
+             join (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l2
+             on (st_dwithin(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ', ' || tolerance || '))'||
+        'where l1.' || quote_ident(n_pkey) || ' <> l2.' || quote_ident(n_pkey)||' and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false  )';
+    raise debug '%',p_ret;
+    EXECUTE p_ret;
+
+    -- second temp table with locus (index of intersection point on the line)
+    -- to avoid updating the previous table
+    -- we keep only intersection points occurring onto the line, not at one of its ends
+--    drop table if exists inter_loc;
+
+--HAD TO CHANGE THIS QUERY
+-- p_ret= 'create temp table inter_loc on commit drop as (
+--        select l1id, l2id, ' || vst_line_locate_point || '(line,point) as locus from (
+--        select DISTINCT l1id, l2id, line, (ST_DumpPoints(geom)).geom as point from intergeom) as foo
+--        where ' || vst_line_locate_point || '(line,point)<>0 and ' || vst_line_locate_point || '(line,point)<>1)';
+    p_ret= 'create temp table inter_loc on commit drop as ( select * from (
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,source) as locus from intergeom)
+         union
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,target) as locus from intergeom)) as foo
+        where locus<>0 and locus<>1)';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+
+    -- index on l1id
+    create index inter_loc_id_idx on inter_loc(l1id);
+
+    -- Then computes the intersection on the lines subset, which is much smaller than full set
+    -- as there are very few intersection points
+
+--- outab needs to be formally created with id, old_id, subid,the_geom, source,target
+---  so it can be inmediatly be used with createTopology
+
+--   EXECUTE 'drop table if exists ' || _pgr_quote_ident(outtab);
+--   EXECUTE 'create table ' || _pgr_quote_ident(outtab) || ' as
+     P_RET = 'insert into '||_pgr_quote_ident(outtab)||' (old_id,sub_id,'||quote_ident(n_geom)||') (  with cut_locations as (
+           select l1id as lid, locus
+           from inter_loc
+           -- then generates start and end locus for each line that have to be cut buy a location point
+           UNION ALL
+           select i.l1id  as lid, 0 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           UNION ALL
+           select i.l1id  as lid, 1 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           order by lid, locus
+       ),
+       -- we generate a row_number index column for each input line
+       -- to be able to self-join the table to cut a line between two consecutive locations
+       loc_with_idx as (
+           select lid, locus, row_number() over (partition by lid order by locus) as idx
+           from cut_locations
+       )
+       -- finally, each original line is cut with consecutive locations using linear referencing functions
+       select l.' || quote_ident(n_pkey) || ', loc1.idx as sub_id, ' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus) as ' || quote_ident(n_geom) || '
+       from loc_with_idx loc1 join loc_with_idx loc2 using (lid) join ' || _pgr_quote_ident(intab) || ' l on (l.' || quote_ident(n_pkey) || ' = loc1.lid)
+       where loc2.idx = loc1.idx+1
+           -- keeps only linestring geometries
+           and geometryType(' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus)) = ''LINESTRING'') ';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+	GET DIAGNOSTICS splits = ROW_COUNT;
+        execute 'with diff as (select distinct old_id from '||_pgr_quote_ident(outtab)||' )
+                 select count(*) from diff' into touched;
+	-- here, it misses all original line that did not need to be cut by intersection points: these lines
+	-- are already clean
+	-- inserts them in the final result: all lines which gid is not in the res table.
+	EXECUTE 'insert into ' || _pgr_quote_ident(outtab) || ' (old_id , sub_id, ' || quote_ident(n_geom) || ')
+                ( with used as (select distinct old_id from '|| _pgr_quote_ident(outtab)||')
+		select ' ||  quote_ident(n_pkey) || ', 1 as sub_id, ' ||  quote_ident(n_geom) ||
+		' from '|| _pgr_quote_ident(intab) ||' where  '||quote_ident(n_pkey)||' not in (select * from used)' || rows_where || ')';
+	GET DIAGNOSTICS untouched = ROW_COUNT;
+
+	raise NOTICE '  Split Edges: %', touched;
+	raise NOTICE ' Untouched Edges: %', untouched;
+	raise NOTICE '     Total original Edges: %', touched+untouched;
+        RAISE NOTICE ' Edges generated: %', splits;
+	raise NOTICE ' Untouched Edges: %',untouched;
+	raise NOTICE '       Total New segments: %', splits+untouched;
+        RAISE NOTICE ' New Table: %', outtab;
+        RAISE NOTICE '----------------------------------';
+
+    drop table  if exists intergeom;
+    drop table if exists inter_loc;
+    RETURN 'OK';
+END;
+$BODY$
+    LANGUAGE 'plpgsql' VOLATILE STRICT COST 100;
+
+
+COMMENT ON FUNCTION pgr_nodeNetwork(text, double precision, text, text, text, text, boolean )
+ IS  'edge_table, tolerance, id:=''id'', the_geom:=''the_geom'', table_ending:=''noded'' ';
+
+
+CREATE OR REPLACE FUNCTION pgr_labelGraph(
+                edge_table text,
+                id text default 'id',
+                source text default 'source',
+                target text default 'target',
+                subgraph text default 'subgraph',
+                rows_where text default 'true'
+        )
+        RETURNS character varying AS
+$BODY$
+
+DECLARE
+        naming record;
+        schema_name text;
+        table_name text;
+        garbage text;
+        incre integer;
+        table_schema_name text;
+        query text;
+        ecnt integer;
+        sql1 text;
+        rec1 record;
+        sql2 text;
+        rec2 record;
+        rec_count record;
+        rec_single record;
+        graph_id integer;
+        gids int [];
+
+BEGIN
+        raise notice 'Processing:';
+        raise notice 'pgr_brokenGraph(''%'',''%'',''%'',''%'',''%'',''%'')', edge_table,id,source,target,subgraph,rows_where;
+        raise notice 'Performing initial checks, please hold on ...';
+
+        Raise Notice 'Starting - Checking table ...';
+        BEGIN
+                raise debug 'Checking % table existance', edge_table;
+                execute 'select * from pgr_getTableName('|| quote_literal(edge_table) ||')' into naming;
+                schema_name = naming.sname;
+                table_name = naming.tname;
+                table_schema_name = schema_name||'.'||table_name;
+                IF schema_name is null then
+                        raise notice 'no schema';
+                        return 'FAIL';
+                else
+                        if table_name is null then
+                                raise notice 'no table';
+                                return 'FAIL';
+                        end if;
+                end if;
+        END;
+        Raise Notice 'Ending - Checking table';
+
+        Raise Notice 'Starting - Checking columns';
+        BEGIN
+                raise debug 'Checking exitance of necessary columns inside % table', edge_table;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(id) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no id column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(source) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no source column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(target) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no target column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(subgraph) ||')' into naming;
+                if naming.pgr_iscolumnintable = 't' then
+                        raise notice 'subgraph column already in the table';
+                        return 'FAIL';
+                end if;
+        END;
+        Raise Notice 'Ending - Checking columns';
+
+        Raise Notice 'Starting - Checking rows_where condition';
+        BEGIN
+                raise debug 'Checking rows_where condition';
+                query='select count(*) from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where;
+                execute query into ecnt;
+                raise debug '-->Rows where condition: OK';
+                raise debug '    --> OK';
+                EXCEPTION WHEN OTHERS THEN
+                        raise notice 'Got %', SQLERRM;
+                        Raise notice 'ERROR: Condition is not correct. Please execute the following query to test your condition';
+                        Raise notice '%', query;
+                        return 'FAIL';
+        END;
+        Raise Notice 'Ending - Checking rows_where condition';
+
+        garbage := 'garbage001';
+        incre := 1;
+        Raise Notice 'Starting - Checking temporary column';
+        Begin
+                raise debug 'Checking Checking temporary columns existance';
+
+                While True
+                        Loop
+                                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(garbage) ||')' into naming;
+                                If naming.pgr_iscolumnintable = 't' THEN
+                                        incre := incre + 1;
+                                        garbage := 'garbage00'||incre||'';
+                                ELSE
+                                        EXIT;
+                                END IF;
+                        End Loop;
+        End;
+        Raise Notice 'Ending - Checking temporary column';
+
+        Raise Notice 'Starting - Calculating subgraphs';
+        BEGIN
+                --------- Add necessary columns ----------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(subgraph) || ' INTEGER DEFAULT -1';
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(garbage) || ' INTEGER DEFAULT 0';
+                graph_id := 1;
+
+                EXECUTE 'select count(*) as count from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where ||'' into rec_count;
+                if rec_count.count = 0 then
+                        RETURN 'rows_where condition generated 0 rows';
+                end if;
+
+                WHILE TRUE
+                        LOOP
+                                ---------- Assign the very first -1 row graph_id ----------
+                                EXECUTE 'SELECT ' || pgr_quote_ident(id) || ' AS gid FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1 LIMIT 1' INTO rec_single;
+                                EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec_single.gid || '';
+
+                                --------- Search other rows with that particular graph_id -----------
+                                WHILE TRUE
+                                        LOOP
+                                                EXECUTE 'SELECT COUNT(*) FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0' into rec_count;
+                                                ----------- The following if else will check those rows which already have entertained ------------
+                                                IF (rec_count.count > 0) THEN
+                                                        sql1 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0';
+                                                        FOR rec1 IN EXECUTE sql1
+                                                                LOOP
+                                                                        sql2 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| pgr_quote_ident(source) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(source) ||' = '|| rec1.target ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.target ||'';
+                                                                        FOR rec2 IN EXECUTE sql2
+                                                                                LOOP
+                                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec2.gid || '';
+                                                                                END LOOP;
+                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(garbage) || ' = 1 WHERE ' || pgr_quote_ident(id) || ' = ' || rec1.gid || '';
+                                                                END LOOP;
+                                                ELSE
+                                                        EXIT;
+                                                END IF;
+                                        END LOOP;
+
+                                ------ Following is to exit the while loop. 0 means no more -1 id.
+                                EXECUTE 'SELECT COUNT(*) AS count FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1' INTO rec_count;
+                                If (rec_count.count = 0) THEN
+                                        EXIT;
+                                ELSE
+                                        graph_id := graph_id + 1;
+                                END IF;
+                        END LOOP;
+
+                ----------- Drop garbage column ------------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' DROP COLUMN ' || pgr_quote_ident(garbage) ||'';
+                Raise Notice 'Successfully complicated calculating subgraphs';
+        END;
+        Raise Notice 'Ending - Calculating subgraphs';
+
+        RETURN 'OK';
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCostMatrix(
+    edges_sql TEXT,
+    points_sql TEXT,
+    pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_pid, a.end_pid, a.agg_cost
+        FROM _pgr_withPoints($1, $2, $3, $3, $4,  $5, TRUE, TRUE) AS a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+--  DIJKSTRA DMatrix
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCostMatrix(edges_sql TEXT, vids ANYARRAY, directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2, $2, $3, true) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+
+--  BIDIRECTIONAL DIJKSTRA Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCostMatrix(edges_sql TEXT, vids ANYARRAY, directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_astarCostMatrix(
+    edges_sql TEXT, -- XY edges sql
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2, $2, $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+--  BIDIRECTIONAL ASTAR Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdAstarCostMatrix(
+    edges_sql TEXT,
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_bdAstarCostMatrix(TEXT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCostMatrix';
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_getTableName(IN tab text,OUT sname text,OUT tname text)
+RETURNS RECORD AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getTableName: This function will no longer be soported';
+    select * from _pgr_getTableName(tab, 0, 'pgr_getTableName') into sname,tname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_getColumnName(tab text, col text)
+RETURNS text AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getColumnName: This function will no longer be soported';
+    return _pgr_getColumnName(tab,col, 0, 'pgr_getColumnName');
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    select * from _pgr_getColumnName(tab,col,0, 'pgr_isColumnInTable') into cname;
+    return  cname IS not NULL;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnIndexed(tab text, col text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnIndexed: This function will no longer be soported';
+    return  _pgr_isColumnIndexed(tab,col);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+create or replace function pgr_quote_ident(idname text)
+returns text as
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    return  _pgr_quote_ident(idname);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_versionless(v1 text, v2 text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_versionless: This function will no longer be soported';
+    return  _pgr_versionless(v1,v2);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+create or replace function pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_startPoint: This function will no longer be soported';
+    return  _pgr_startPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_endPoint: This function will no longer be soported';
+    return  _pgr_endPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_apspJohnson(edges_sql text)
+    RETURNS SETOF pgr_costResult AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function: Use pgr_johnson instead';
+      has_reverse =_pgr_parameter_check('johnson', edges_sql, false);
+      sql = edges_sql;
+      IF (has_reverse) THEN
+           RAISE NOTICE 'reverse_cost column found, removing.';
+           sql = 'SELECT source, target, cost FROM (' || edges_sql || ') a';
+      END IF;
+
+      RETURN query
+         SELECT (row_number() over () - 1)::integer as seq, start_vid::integer AS id1, end_vid::integer AS id2, agg_cost AS cost
+         FROM  pgr_johnson(sql, TRUE);
+  END
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_apspWarshall(edges_sql text, directed boolean, has_rcost boolean)
+    RETURNS SETOF pgr_costResult AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function: Use pgr_floydWarshall instead';
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+      sql := edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_reverse) THEN
+           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+         ELSE raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+         END IF;
+      END IF;
+
+      RETURN query
+         SELECT (row_number() over () -1)::integer as seq, start_vid::integer AS id1, end_vid::integer AS id2, agg_cost AS cost
+         FROM  pgr_floydWarshall(sql, directed);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_astar(edges_sql TEXT, source_id INTEGER, target_id INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated signature pgr_astar(text, integer, integer, boolean, boolean)';
+    has_reverse =_pgr_parameter_check('astar', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost, x1,y1, x2, y2 FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+    FROM pgr_astar(sql, ARRAY[$2], ARRAY[$3], directed);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    sql TEXT,
+    source_vid INTEGER,
+    target_vid INTEGER,
+    directed BOOLEAN,
+    has_reverse_cost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdAstar';
+    has_reverse =_pgr_parameter_check('astar', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdAstar(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(edges_sql TEXT, start_vid INTEGER, end_vid INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdDijkstra';
+    has_reverse =_pgr_parameter_check('dijkstra', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdDijkstra(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstraPath(
+    sql text,
+    source INTEGER,
+    targets INTEGER ARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+    RETURNS SETOF pgr_costResult3 AS
+    $BODY$
+    DECLARE
+    has_reverse BOOLEAN;
+    new_sql TEXT;
+    result pgr_costResult3;
+    tmp pgr_costResult3;
+    sseq INTEGER;
+    i INTEGER;
+    BEGIN
+        RAISE NOTICE 'Deprecated function: Use pgr_dijkstra instead.';
+        has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+        new_sql = sql;
+        IF (array_ndims(targets) != 1) THEN
+            raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+
+        IF (has_reverse != has_rcost) THEN
+            IF (has_reverse) THEN
+                new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+            ELSE
+                raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+                USING ERRCODE = 'XX000';
+            END IF;
+        END IF;
+        SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+        sseq = 0; i = 1;
+        FOR result IN
+            SELECT seq, a.end_vid::INTEGER AS id1, a.node::INTEGER AS i2, a.edge::INTEGER AS id3, cost
+            FROM pgr_dijkstra(new_sql, source, targets, directed) a ORDER BY a.end_vid, seq LOOP
+            WHILE (result.id1 != targets[i]) LOOP
+                tmp.seq = sseq;
+                tmp.id1 = targets[i];
+                IF (targets[i] = source) THEN
+                    tmp.id2 = source;
+                    tmp.cost =0;
+                ELSE
+                    tmp.id2 = 0;
+                    tmp.cost = -1;
+                END IF;
+                tmp.id3 = -1;
+                RETURN next tmp;
+                i = i + 1;
+                sseq = sseq + 1;
+            END LOOP;
+        IF (result.id1 = targets[i] AND result.id3 != -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+        IF (result.id1 = targets[i] AND result.id3 = -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.id2 = source;
+            tmp.cost = 0;
+        ELSE
+            tmp.id2 = 0;
+            tmp.cost = -1;
+        END IF;
+        tmp.id3 = -1;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstracost(
+    sql text,
+    source INTEGER,
+    targets INTEGER array,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+result pgr_costResult;
+tmp pgr_costResult;
+sseq INTEGER;
+i INTEGER;
+BEGIN
+    RAISE NOTICE 'Deprecated function. Use pgr_dijkstraCost instead.';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    new_sql = sql;
+    IF (array_ndims(targets) != 1) THEN
+        raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+        USING ERRCODE = 'XX000';
+    END IF;
+
+
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+    sseq = 0; i = 1;
+    FOR result IN
+        SELECT ((row_number() over()) -1)::INTEGER, a.start_vid::INTEGER, a.end_vid::INTEGER, agg_cost
+        FROM pgr_dijkstraCost(new_sql, source, targets, directed) a ORDER BY end_vid LOOP
+        WHILE (result.id2 != targets[i]) LOOP
+            tmp.seq = sseq;
+            tmp.id1 = source;
+            tmp.id2 = targets[i];
+            IF (targets[i] = source) THEN
+                tmp.cost = 0;
+            ELSE
+                tmp.cost = -1;
+            END IF;
+            RETURN next tmp;
+            i = i + 1;
+            sseq = sseq + 1;
+        END LOOP;
+        IF (result.id2 = targets[i]) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = source;
+        tmp.id2 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.cost = 0;
+        ELSE
+            tmp.cost = -1;
+        END IF;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+create or replace function pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    returns integer as
+$body$
+
+declare
+    rr record;
+    pct float;
+    debuglevel text;
+
+begin
+    -- find the closest edge within tol distance
+    execute 'select * from ' || _pgr_quote_ident(edges) ||
+            ' where st_dwithin(''' || pnt::text ||
+            '''::geometry, the_geom, ' || tol || ') order by st_distance(''' || pnt::text ||
+            '''::geometry, the_geom) asc limit 1' into rr;
+
+    if rr.the_geom is not null then
+        -- deal with MULTILINESTRINGS
+        if geometrytype(rr.the_geom)='MULTILINESTRING' THEN
+            rr.the_geom := ST_GeometryN(rr.the_geom, 1);
+        end if;
+
+        -- project the point onto the linestring
+        execute 'show client_min_messages' into debuglevel;
+        SET client_min_messages='ERROR';
+        pct := st_line_locate_point(rr.the_geom, pnt);
+        execute 'set client_min_messages  to '|| debuglevel;
+
+        -- return the node we are closer to
+        if pct < 0.5 then
+            return rr.source;
+        else
+            return rr.target;
+        end if;
+    else
+        -- return a failure to find an edge within tol distance
+        return -1;
+    end if;
+end;
+$body$
+  language plpgsql volatile
+  cost 5;
+
+
+----------------------------------------------------------------------------
+
+create or replace function pgr_flipedges(ga geometry[])
+    returns geometry[] as
+$body$
+
+declare
+    nn integer;
+    i integer;
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_flipEdges';
+    -- get the count of edges, and return if only one edge
+    nn := array_length(ga, 1);
+    if nn=1 then
+        return ga;
+    end if;
+
+    -- determine if first needs to be flipped
+    g := _pgr_startpoint(ga[1]);
+
+    -- if the start of the first is connected to the second then it needs to be flipped
+    if _pgr_startpoint(ga[2])=g or _pgr_endpoint(ga[2])=g then
+        ga[1] := st_reverse(ga[1]);
+    end if;
+    g := _pgr_endpoint(ga[1]);
+
+    -- now if  the end of the last edge matchs the end of the current edge we need to flip it
+    for i in 2 .. nn loop
+        if _pgr_endpoint(ga[i])=g then
+            ga[i] := st_reverse(ga[i]);
+        end if;
+        -- save the end of this edge into the last end for the next cycle
+        g := _pgr_endpoint(ga[i]);
+    end loop;
+
+    return ga;
+end;
+$body$
+    language plpgsql immutable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_texttopoints(pnts text, srid integer DEFAULT(4326))
+    returns geometry[] as
+$body$
+
+declare
+    a text[];
+    t text;
+    p geometry;
+    g geometry[];
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_textToPoints';
+    -- convert commas to space and split on ';'
+    a := string_to_array(replace(pnts, ',', ' '), ';');
+    -- convert each 'x y' into a point geometry and concattenate into a new array
+    for t in select unnest(a) loop
+        p := st_pointfromtext('POINT(' || t || ')', srid);
+        g := g || p;
+    end loop;
+
+    return g;
+end;
+$body$
+    language plpgsql immutable;
+
+-----------------------------------------------------------------------
+
+create or replace function pgr_pointstovids(pnts geometry[], edges text, tol float8 DEFAULT(0.01))
+    returns integer[] as
+$body$
+
+declare
+    v integer[];
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_pointsToVids';
+    -- cycle through each point and locate the nearest edge and vertex on that edge
+    for g in select unnest(pnts) loop
+        v := v || pgr_pointtoedgenode(edges, g, tol);
+    end loop;
+
+    return v;
+end;
+$body$
+    language plpgsql stable;
+
+
+create or replace function pgr_pointstodmatrix(pnts geometry[], mode integer default (0), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+
+declare
+    r record;
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_pointsToDMatrix';
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    -- create an id for each point in the array and unnest it into a table nodes in the with clause
+    for r in with nodes as (select row_number() over()::integer as id, p from (select unnest(pnts) as p) as foo)
+        -- compute a row of distances
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j,
+                case when mode=0
+                    then st_distance(a.p, b.p)
+                    else st_distance_sphere(a.p, b.p)
+                end as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i loop
+
+        -- you must concat an array[array[]] to make dmatrix[][]
+        -- concat the row of distances to the dmatrix
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+end;
+$body$
+    language plpgsql stable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_vidstodmatrix(IN vids integer[], IN pnts geometry[], IN edges text, tol float8 DEFAULT(0.1), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+
+declare
+    i integer;
+    j integer;
+    nn integer;
+    rr record;
+    bbox geometry;
+    t float8[];
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    -- check if the input arrays has any -1 values, maybe this whould be a raise exception
+    if vids @> ARRAY[-1] then
+    raise notice 'Some vids are undefined (-1)!';
+    dmatrix := null;
+    ids := null;
+    return;
+    end if;
+
+    ids := vids;
+
+    -- get the count of nodes
+    nn := array_length(vids,1);
+
+    -- zero out a dummy row
+    for i in 1 .. nn loop
+        t := t || 0.0::float8;
+    end loop;
+
+    -- using the dummy row, zero out the whole matrix
+    for i in 1 .. nn loop
+    dmatrix := dmatrix || ARRAY[t];
+    end loop;
+
+    for i in 1 .. nn-1 loop
+        j := i;
+        -- compute the bbox for the point needed for this row
+        select st_expand(st_collect(pnts[id]), tol) into bbox
+          from (select generate_series as id from generate_series(i, nn)) as foo;
+
+        -- compute kdijkstra() for this row
+        for rr in execute 'select * from pgr_dijkstracost($1, $2, $3, false)'
+                  using 'select id, source, target, cost from ' || edges ||
+                        ' where the_geom && ''' || bbox::text || '''::geometry'::text, vids[i], vids[i+1:nn] loop
+
+            -- TODO need to check that all node were reachable from source
+            -- I think unreachable paths between nodes returns cost=-1.0
+
+            -- populate the matrix with the cost values, remember this is symmetric
+            j := j + 1;
+            -- raise notice 'cost(%,%)=%', i, j, rr.agg_cost;
+            dmatrix[i][j] := rr.agg_cost;
+            dmatrix[j][i] := rr.agg_cost;
+        end loop;
+    end loop;
+
+end;
+$body$
+    language plpgsql stable cost 200;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_vidsToDMatrix(sql TEXT, vids  INTEGER[], dir BOOLEAN, has_rcost BOOLEAN, want_symmetric BOOLEAN)
+RETURNS float8[] AS
+$BODY$
+DECLARE
+directed BOOLEAN;
+has_reverse BOOLEAN;
+edges_sql TEXT;
+dmatrix_row float8[];
+dmatrix float8[];
+cell RECORD;
+unique_vids INTEGER[];
+total BIGINT;
+from_v BIGINT;
+to_v BIGINT;
+BEGIN
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql = sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    unique_vids :=  ARRAY(SELECT DISTINCT UNNEST(vids) ORDER BY 1);
+
+    IF want_symmetric THEN
+        directed = false;
+    ELSE
+        directed = dir;
+    END IF;
+
+    total := array_length(unique_vids, 1);
+
+    -- initializing dmatrix
+    FOR i in 1 .. total LOOP
+        dmatrix_row := dmatrix_row || '+Infinity'::float8;
+    END LOOP;
+    FOR i in 1 .. total LOOP
+    dmatrix := dmatrix || ARRAY[dmatrix_row];
+    dmatrix[i][i] = 0;
+    END LOOP;
+
+    CREATE TEMP TABLE __x___y____temp AS
+        WITH result AS
+            (SELECT unnest(unique_vids) AS vid)
+        SELECT row_number() OVER() AS idx, vid FROM result;
+
+    FOR cell IN SELECT * FROM pgr_dijkstraCostMatrix(sql, unique_vids, directed) LOOP
+        SELECT idx INTO from_v FROM __x___y____temp WHERE vid =  cell.start_vid;
+        SELECT idx INTO to_v FROM __x___y____temp WHERE vid =  cell.end_vid;
+
+        dmatrix[from_v][to_v] = cell.agg_cost;
+        dmatrix[to_v][from_v] = cell.agg_cost;
+    END LOOP;
+
+    DROP TABLE IF EXISTS __x___y____temp;
+    RETURN dmatrix;
+
+    EXCEPTION WHEN others THEN
+       DROP TABLE IF EXISTS __x___y____temp;
+       raise exception '% %', SQLERRM, SQLSTATE;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100;
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated function';
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_dijkstra(sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_dijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN) IS 'pgr_dijkstra(Deprecated signature)';
+
+
+
+
+
+-- OLD SIGNATURE
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(edges_sql text, source BIGINT, distance FLOAT, directed BOOLEAN, has_rcost BOOLEAN)
+  RETURNS SETOF pgr_costresult AS
+  $BODY$
+  DECLARE
+  has_reverse BOOLEAN;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function';
+
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, FALSE);
+
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_reverse) THEN
+             -- the user says it doesn't have reverse cost but its false
+             -- removing from query
+             RAISE NOTICE 'Contradiction found: has_rcost set to false but reverse_cost column found';
+             sql = 'SELECT id, source, target, cost, -1 as reverse_cost FROM (' || edges_sql || ') __q ';
+         ELSE
+             -- the user says it has reverse cost but its false
+             -- can't do anything
+             RAISE EXCEPTION 'has_rcost set to true but reverse_cost not found';
+         END IF;
+      END IF;
+
+      RETURN query SELECT seq - 1 AS seq, node::integer AS id1, edge::integer AS id2, agg_cost AS cost
+                FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maximumcardinalitymatching(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
+
+
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+--INTERNAL FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+
+------------------------
+-- deprecated signatures
+-----------------------
+
+COMMENT ON FUNCTION pgr_astar(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_astar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdAstar( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdAstar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdDijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdDijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_dijkstra(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_dijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_drivingDistance(text,  BIGINT,  FLOAT8,  BOOLEAN,  BOOLEAN)
+    IS 'pgr_drivingDistance(Deprecated signature)';
+
+------------------------
+-- Renamed /deprecated
+-----------------------
+COMMENT ON FUNCTION pgr_apspJohnson(TEXT)
+    IS 'pgr_apspJohnson(Renamed function) use pgr_Johnson instead';
+
+COMMENT ON FUNCTION pgr_apspWarshall(text, boolean, boolean)
+    IS 'pgr_apspWarshall(Renamed function) use pgr_floydWarshall instead';
+
+COMMENT ON FUNCTION pgr_kdijkstraPath( text, INTEGER, INTEGER ARRAY, BOOLEAN, BOOLEAN)
+    IS 'pgr_kdijkstraPath(Renamed function) use pgr_dijkstra instead';
+
+COMMENT ON FUNCTION pgr_kdijkstracost( text, INTEGER, INTEGER array, BOOLEAN, BOOLEAN)
+    IS 'pgr_kDijkstraCost(Renamed function) use pgr_dijkstraCost instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+
+
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+
+
+COMMENT ON FUNCTION pgr_gsoc_vrppdtw( text, INTEGER, INTEGER)
+    IS 'pgr_gsoc_vrppdtw(Renamed function) use pgr_pickDeliverEuclidean instead';
+
+------------------------
+-- Deprecated functions
+-----------------------
+
+COMMENT ON FUNCTION pgr_flipedges(geometry[])
+    IS 'pgr_flipedges(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_texttopoints(text,  integer)
+    IS 'pgr_texttopoints(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstovids(pnts geometry[], edges text, tol float8)
+    IS 'pgr_pointstovids(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    IS 'pgr_pointtoedgenode(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstodmatrix(geometry[], integer)
+    IS 'pgr_pointstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidstodmatrix( integer[],  geometry[],  text, float8)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidsToDMatrix(TEXT,  INTEGER[], BOOLEAN, BOOLEAN, BOOLEAN)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+
+
+
+COMMENT ON FUNCTION pgr_getTableName(IN tab text)
+    IS 'pgr_getTableName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_getColumnName(tab text, col text)
+    IS 'pgr_getColumnName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnInTable(tab text, col text)
+    IS 'pgr_isColumnInTable(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnIndexed(tab text, col text)
+    IS 'pgr_isColumnIndexed(Deprecated function)';
+
+
+COMMENT ON FUNCTION pgr_quote_ident(idname text)
+    IS 'pgr_quote_ident(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_versionless(v1 text, v2 text)
+    IS 'pgr_versionless(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_startPoint(g geometry)
+    IS 'pgr_startPoint(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_endPoint(g geometry)
+    IS 'pgr_endPoint(Deprecated function)';
+
+
diff --git a/tools/sql-update-scripts/pgrouting--2.3.1--2.5.0.sql b/tools/sql-update-scripts/pgrouting--2.3.1--2.5.0.sql
new file mode 100644
index 0000000..087c71f
--- /dev/null
+++ b/tools/sql-update-scripts/pgrouting--2.3.1--2.5.0.sql
@@ -0,0 +1,6561 @@
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-- pgRouting extension upgrade from 2.3.1 to 2.5.0
+-- generated by tools/build-extension-update-files
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+\echo Use "ALTER extension pgrouting update to '2.5.0'" to load this file. \quit
+
+
+-------------------------------------
+-- remove functions no longer in the 2.5.0 extension
+-------------------------------------
+
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_astar(text,bigint,bigint,boolean,integer,double precision,double precision,boolean);
+DROP FUNCTION IF EXISTS _pgr_astar(text,bigint,bigint,boolean,integer,double precision,double precision,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,anyarray,anyarray,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,anyarray,anyarray,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,anyarray,bigint,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,anyarray,bigint,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,bigint,anyarray,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,bigint,anyarray,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,bigint,bigint,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,bigint,bigint,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_drivingdistance(text,anyarray,double precision,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_drivingdistance(text,anyarray,double precision,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_drivingdistance(text,bigint,double precision,boolean);
+DROP FUNCTION IF EXISTS _pgr_drivingdistance(text,bigint,double precision,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_maxflow(text,anyarray,anyarray,text);
+DROP FUNCTION IF EXISTS _pgr_maxflow(text,anyarray,anyarray,text);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_maxflow(text,anyarray,bigint,text);
+DROP FUNCTION IF EXISTS _pgr_maxflow(text,anyarray,bigint,text);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_maxflow(text,bigint,anyarray,text);
+DROP FUNCTION IF EXISTS _pgr_maxflow(text,bigint,anyarray,text);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_maxflow(text,bigint,bigint,text);
+DROP FUNCTION IF EXISTS _pgr_maxflow(text,bigint,bigint,text);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_pickdeliver(text,integer,double precision,double precision,integer);
+DROP FUNCTION IF EXISTS _pgr_pickdeliver(text,integer,double precision,double precision,integer);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,anyarray,anyarray,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,anyarray,anyarray,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,anyarray,bigint,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,anyarray,bigint,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,bigint,anyarray,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,bigint,anyarray,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,bigint,bigint,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,bigint,bigint,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_fakecontraction(text,integer[]);
+DROP FUNCTION IF EXISTS pgr_fakecontraction(text,integer[]);
+
+
+------------------------------------------
+--    New functions:  2.0
+-- Signature change:  2.4
+--       Deprecated:  2.4
+------------------------------------------
+-- pgr_bddijkstra
+-- 2.3.1: {      sql, source_vid, target_vid, directed, has_reverse_cost}   
+-- 2.5.0: {edges_sql,  start_vid,    end_vid, directed, has_rcost}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vid","end_vid","directed","has_rcost"}'
+WHERE proname = 'pgr_bddijkstra'
+    AND proargnames = '{"sql","source_vid","target_vid","directed","has_reverse_cost"}';
+
+
+------------------------------------------
+--       New functions:  2.1
+--    Signature change:  2.4
+------------------------------------------
+-- 2.3.1: {edges_sql,start_v,  distance,directed,seq,node,edge,cost,agg_cost}
+-- 2.5.0: {edges_sql,start_vid,distance,directed,seq,node,edge,cost,agg_cost}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vid","distance","directed","seq","node","edge","cost","agg_cost"}'
+WHERE proname = 'pgr_drivingdistance'
+    AND proargnames = '{"edges_sql","start_v","distance","directed","seq","node","edge","cost","agg_cost"}';
+
+
+------------------------------------------
+--       New functions:  2.1
+--    Signature change:  2.4
+------------------------------------------
+-- 2.3.1: {sql,      start_v,   distance,directed,equicost,seq,from_v,node,edge,cost,agg_cost}
+-- 2.5.0: {edges_sql,start_vids,distance,directed,equicost,seq,from_v,node,edge,cost,agg_cost}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vids","distance","directed","equicost","seq","from_v","node","edge","cost","agg_cost"}'
+WHERE proname = 'pgr_drivingdistance'
+    AND proargnames = '{"sql","start_v","distance","directed","equicost","seq","from_v","node","edge","cost","agg_cost"}';
+
+
+------------------------------------------
+--       New functions:  2.3
+--    Signature change:  2.5
+-- Inner query changed:  2.5
+------------------------------------------
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_edgedisjointpaths(text,bigint,bigint,boolean);
+DROP FUNCTION IF EXISTS pgr_edgedisjointpaths(text,bigint,bigint,boolean);
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_edgedisjointpaths(text,bigint,anyarray,boolean);
+DROP FUNCTION IF EXISTS pgr_edgedisjointpaths(text,bigint,anyarray,boolean);
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_edgedisjointpaths(text,anyarray,bigint,boolean);
+DROP FUNCTION IF EXISTS pgr_edgedisjointpaths(text,anyarray,bigint,boolean);
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_edgedisjointpaths(text,anyarray,anyarray,boolean);
+DROP FUNCTION IF EXISTS pgr_edgedisjointpaths(text,anyarray,anyarray,boolean);
+
+
+ALTER EXTENSION pgrouting DROP TYPE contraction_vertex;
+DROP TYPE contraction_vertex;
+
+
+
+
+
+
+
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+--- pgRouting provides geospatial routing functionality.
+--- http://pgrouting.org
+--- copyright
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+---
+--- This is free software; you can redistribute and/or modify it:
+--- the terms of the GNU General Public Licence. See the COPYING file.
+--- the terms of the MIT-X Licence. See the COPYING file.
+---
+--- The following functions have MIT-X licence:
+---     pgr_version()
+---     pgr_tsp(matrix float8[][], startpt integer, endpt integer DEFAULT -1, OUT seq integer, OUT id integer)
+---     _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+---     pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
+---
+---
+--- All other functions are under GNU General Public Licence.
+---
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+--
+-- WARNING: Any change in this file must be evaluated for compatibility.
+--          Changes cleanly handled by postgis_upgrade.sql are fine,
+--          other changes will require a bump in Major version.
+--          Currently only function replaceble by CREATE OR REPLACE
+--          are cleanly handled.
+--
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+
+--  pgRouting 2.0 types
+
+
+
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_version()
+RETURNS TABLE(
+        "version" varchar,
+        tag varchar,
+        hash varchar,
+        branch varchar,
+        boost varchar
+    ) AS
+$BODY$
+    SELECT '2.5.0'::varchar AS version,
+        'v2.5.0'::varchar AS tag,
+        ''::varchar AS hash,
+        ''::varchar AS branch,
+        '1.54.0'::varchar AS boost;
+$BODY$
+LANGUAGE sql IMMUTABLE;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getTableName(IN tab text, IN reportErrs int default 0, IN fnName text default '_pgr_getTableName', OUT sname text,OUT tname text)
+  RETURNS RECORD AS
+$$
+DECLARE
+        naming record;
+        i integer;
+        query text;
+        sn text; -- schema name
+        tn text; -- table name
+        ttype text; --table type for future use
+        err boolean;
+        debuglevel text;
+        var_types text[] = ARRAY['BASE TABLE', 'VIEW'];
+BEGIN
+
+    execute 'show client_min_messages' into debuglevel;
+
+
+    perform _pgr_msg( 0, fnName, 'Checking table ' || tab || ' exists');
+    --RAISE DEBUG 'Checking % exists',tab;
+
+    i := strpos(tab,'.');
+    IF (i <> 0) THEN
+        sn := split_part(tab, '.',1);
+        tn := split_part(tab, '.',2);
+    ELSE
+        sn := current_schema;
+        tn := tab;
+    END IF;
+
+
+   SELECT schema_name INTO sname
+   FROM information_schema.schemata WHERE schema_name = sn;
+
+    IF sname IS NOT NULL THEN -- found schema (as is)
+       SELECT table_name, table_type INTO tname, ttype
+       FROM information_schema.tables
+       WHERE
+                table_type = ANY(var_types) and
+                table_schema = sname and
+                table_name = tn ;
+        IF tname is NULL THEN
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  = ANY(var_types) and
+                table_schema = sname and
+                table_name = lower(tn) ORDER BY table_name;
+        END IF;
+    END IF;
+    IF sname is NULL or tname is NULL THEN --schema not found or table not found
+        SELECT schema_name INTO sname
+        FROM information_schema.schemata
+        WHERE schema_name = lower(sn) ;
+
+        IF sname IS NOT NULL THEN -- found schema (with lower caps)
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  =  ANY(var_types) and
+                table_schema = sname and
+                table_name= tn ;
+
+           IF tname IS NULL THEN
+                SELECT table_name, table_type INTO tname, ttype
+                FROM information_schema.tables
+                WHERE
+                    table_type  =  ANY(var_types) and
+                    table_schema = sname and
+                    table_name= lower(tn) ;
+           END IF;
+        END IF;
+    END IF;
+   err = (sname IS NULL OR tname IS NULL);
+   perform _pgr_onError(err, reportErrs, fnName, 'Table ' || tab ||' not found',' Check your table name', 'Table '|| tab || ' found');
+
+END;
+$$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(sname text, tname text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(col) into cname;
+
+    IF cname is null  THEN
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(lower(col))  into cname;
+    END if;
+
+    err = cname is null;
+
+    perform _pgr_onError(err, reportErrs, fnName,  'Column '|| col ||' not found', ' Check your column name','Column '|| col || ' found');
+    RETURN cname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(tab text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+
+    select * into cname from _pgr_getColumnName(sname,tname,col,reportErrs, fnName);
+    RETURN cname;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    select * from _pgr_getColumnName(tab,col,0, '_pgr_isColumnInTable') into cname;
+    return cname is not null;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(sname text, tname text, cname text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    pkey text;
+BEGIN
+    SELECT
+          pg_attribute.attname into pkey
+         --  format_type(pg_attribute.atttypid, pg_attribute.atttypmod)
+          FROM pg_index, pg_class, pg_attribute
+          WHERE
+                  pg_class.oid = _pgr_quote_ident(sname||'.'||tname)::regclass AND
+                  indrelid = pg_class.oid AND
+                  pg_attribute.attrelid = pg_class.oid AND
+                  pg_attribute.attnum = any(pg_index.indkey)
+                  AND indisprimary;
+
+    IF pkey=cname then
+          RETURN TRUE;
+    END IF;
+
+    SELECT a.index_name,
+           b.attname,
+           b.attnum,
+           a.indisunique,
+           a.indisprimary
+      INTO rec
+      FROM ( SELECT a.indrelid,
+                    a.indisunique,
+                    a.indisprimary,
+                    c.relname index_name,
+                    unnest(a.indkey) index_num
+               FROM pg_index a,
+                    pg_class b,
+                    pg_class c,
+                    pg_namespace d
+              WHERE b.relname=tname
+                AND b.relnamespace=d.oid
+                AND d.nspname=sname
+                AND b.oid=a.indrelid
+                AND a.indexrelid=c.oid
+           ) a,
+           pg_attribute b
+     WHERE a.indrelid = b.attrelid
+       AND a.index_num = b.attnum
+       AND b.attname = cname
+  ORDER BY a.index_name,
+           a.index_num;
+
+  RETURN FOUND;
+  EXCEPTION WHEN OTHERS THEN
+    perform _pgr_onError( true, reportErrs, fnName,
+    'Error when checking for the postgres system attributes', SQLERR);
+    RETURN FALSE;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(tab text, col text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    sname text;
+    tname text;
+    cname text;
+    pkey text;
+    value boolean;
+BEGIN
+    SELECT * into naming FROM _pgr_getTableName(tab, 0, fnName);
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    SELECT * into cname from _pgr_getColumnName(sname, tname, col, 0, fnName) ;
+    IF cname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    select * into value  from _pgr_isColumnIndexed(sname, tname, cname, reportErrs, fnName);
+    return value;
+END
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+create or replace function _pgr_quote_ident(idname text)
+    returns text as
+$body$
+declare
+    t text[];
+    pgver text;
+
+begin
+    pgver := regexp_replace(version(), E'^PostgreSQL ([^ ]+)[ ,].*$', E'\\1');
+
+    if _pgr_versionless(pgver, '9.2') then
+        select into t array_agg(quote_ident(term)) from
+            (select nullif(unnest, '') as term
+               from unnest(string_to_array(idname, '.'))) as foo;
+    else
+        select into t array_agg(quote_ident(term)) from
+            (select unnest(string_to_array(idname, '.', '')) as term) as foo;
+    end if;
+    return array_to_string(t, '.');
+end;
+$body$
+language plpgsql immutable;
+
+
+CREATE OR REPLACE FUNCTION _pgr_versionless(v1 text, v2 text)
+  RETURNS boolean AS
+$BODY$
+
+
+declare
+    v1a text[];
+    v2a text[];
+    nv1 integer;
+    nv2 integer;
+    ne1 integer;
+    ne2 integer;
+
+begin
+    -- separate components into an array, like:
+    -- '2.1.0-beta3dev'  =>  {2,1,0,beta3dev}
+    v1a := regexp_matches(v1, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+    v2a := regexp_matches(v2, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+
+    -- convert modifiers to numbers for comparison
+    -- we do not delineate between alpha1, alpha2, alpha3, etc
+    ne1 := case when v1a[4] is null or v1a[4]='' then 5
+                when v1a[4] ilike 'rc%' then 4
+                when v1a[4] ilike 'beta%' then 3
+                when v1a[4] ilike 'alpha%' then 2
+                when v1a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    ne2 := case when v2a[4] is null or v2a[4]='' then 5
+                when v2a[4] ilike 'rc%' then 4
+                when v2a[4] ilike 'beta%' then 3
+                when v2a[4] ilike 'alpha%' then 2
+                when v2a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    nv1 := v1a[1]::integer * 10000 +
+           coalesce(v1a[2], '0')::integer * 1000 +
+           coalesce(v1a[3], '0')::integer *  100 + ne1;
+    nv2 := v2a[1]::integer * 10000 +
+           coalesce(v2a[2], '0')::integer * 1000 +
+           coalesce(v2a[3], '0')::integer *  100 + ne2;
+
+    --raise notice 'nv1: %, nv2: %, ne1: %, ne2: %', nv1, nv2, ne1, ne2;
+
+    return nv1 < nv2;
+end;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+create or replace function _pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_startpoint(st_geometryn(g,1));
+    else
+        return st_startpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function _pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_endpoint(st_geometryn(g,1));
+    else
+        return st_endpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_parameter_check(fn text, sql text, big boolean default false)
+  RETURNS bool AS
+  $BODY$
+
+  DECLARE
+  rec record;
+  rec1 record;
+  has_rcost boolean;
+  safesql text;
+  BEGIN
+    IF (big) THEN
+       RAISE EXCEPTION 'This function is for old style functions';
+    END IF;
+
+    -- checking query is executable
+    BEGIN
+      safesql =  'select * from ('||sql||' ) AS __a__ limit 1';
+      execute safesql into rec;
+      EXCEPTION
+        WHEN OTHERS THEN
+            RAISE EXCEPTION 'Could not execute query please verify syntax of: '
+              USING HINT = sql;
+    END;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('dijkstra','astar') THEN
+        BEGIN
+          execute 'select id,source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: id, source, target, cost';
+        END;
+        execute 'select pg_typeof(id)::text as id_type, pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.id_type in ('integer'::text))
+              AND (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Error, columns ''source'', ''target'' must be of type int4, ''cost'' must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    IF fn IN ('astar') THEN
+        BEGIN
+          execute 'select x1,y1,x2,y2  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: x1,y1, x2,y2';
+        END;
+        execute 'select pg_typeof(x1)::text as x1_type, pg_typeof(y1)::text as y1_type, pg_typeof(x2)::text as x2_type, pg_typeof(y2)::text as y2_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.x1_type = 'double precision'::text)
+              AND (rec.y1_type = 'double precision'::text)
+              AND (rec.x2_type = 'double precision'::text)
+              AND (rec.y2_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Columns: x1, y1, x2, y2 must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('johnson') THEN
+        BEGIN
+          execute 'select source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING HINT = 'Please veryfy the column names: id, source, target, cost',
+                         ERRCODE = 'XX000';
+        END;
+
+        execute 'select pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Support for source,target columns only of type: integer. Support for Cost: double precision'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    -- Checking the data types of the optional reverse_cost";
+    has_rcost := false;
+    IF fn IN ('johnson','dijkstra','astar') THEN
+      BEGIN
+        execute 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||safesql||' ) AS __b__ limit 1 ' into rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+            return has_rcost;
+      END;
+      if (has_rcost) then
+        IF (big) then
+           IF  not (rec1.rev_type in ('bigint'::text, 'integer'::text, 'smallint'::text, 'double precision'::text, 'real'::text)) then
+             RAISE EXCEPTION 'Illegar type in optional parameter reverse_cost.'
+             USING ERRCODE = 'XX000';
+           END IF;
+        ELSE -- Version 2.0.0 is more restrictive
+           IF (rec1.rev_type != 'double precision') then
+             RAISE EXCEPTION 'Illegal type in optional parameter reverse_cost, must be of type float8'
+             USING ERRCODE = 'XX000';
+           END IF;
+        END IF;
+      end if;
+      return true;
+    END IF;
+    -- just for keeps
+    return true;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_onError(
+  IN errCond boolean,  -- true there is an error
+  IN reportErrs int,   -- 0, 1 or 2
+  IN fnName text,      -- function name that generates the error
+  IN msgerr text,      -- error message
+  IN hinto text default 'No hint', -- hint help
+  IN msgok text default 'OK')      -- message if everything is ok
+  RETURNS void AS
+$BODY$
+BEGIN
+  if errCond=true then
+     if reportErrs=0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+     else
+       if reportErrs = 2 then
+         raise notice '----> PGR ERROR in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+         raise raise_exception;
+       else
+         raise notice '----> PGR NOTICE in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+       end if;
+     end if;
+  else
+       raise debug 'PGR ----> %: %',fnName,msgok;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_msg(IN msgKind int, IN fnName text, IN msg text default '---->OK')
+  RETURNS void AS
+$BODY$
+BEGIN
+  if msgKind = 0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msg;
+  else
+       raise notice '----> PGR NOTICE in %: %',fnName,msg;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(sname text, tname text, cname text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    EXECUTE 'select data_type  from information_schema.columns '
+            || 'where table_name = '||quote_literal(tname)
+                 || ' and table_schema=' || quote_literal(sname)
+                 || ' and column_name='||quote_literal(cname)
+       into ctype;
+    err = ctype is null;
+    perform _pgr_onError(err, reportErrs, fnName,
+            'Type of Column '|| cname ||' not found',
+            'Check your column name',
+            'OK: Type of Column '|| cname || ' is ' || ctype);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(tab text, col text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+    select * into cname from _pgr_getColumnName(tab,col,reportErrs, fnName) ;
+    select * into ctype from _pgr_getColumnType(sname,tname,cname,reportErrs, fnName);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_get_statement(o_sql text)
+RETURNS text AS
+$BODY$
+DECLARE
+sql TEXT;
+BEGIN
+    EXECUTE 'SELECT statement FROM pg_prepared_statements WHERE name ='  || quote_literal(o_sql) || ' limit 1 ' INTO sql;
+    IF (sql IS NULL) THEN
+      RETURN   o_sql;
+    ELSE
+      RETURN  regexp_replace(sql, '(.)* as ', '', 'i');
+    END IF;
+END
+$BODY$
+LANGUAGE plpgsql STABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_checkVertTab(vertname text, columnsArr  text[],
+    IN reportErrs int default 1, IN fnName text default '_pgr_checkVertTab',
+    OUT sname text,OUT vname text)
+RETURNS record AS
+$BODY$
+DECLARE
+    cname text;
+    colname text;
+    naming record;
+    debuglevel text;
+    err  boolean;
+    msgKind int;
+
+BEGIN
+    msgKind = 0; -- debug_
+    execute 'show client_min_messages' into debuglevel;
+
+    perform _pgr_msg(msgKind, fnName, 'Checking table ' || vertname || ' exists');
+       select * from _pgr_getTableName(vertname, 0, fnName) into naming;
+       sname=naming.sname;
+       vname=naming.tname;
+       err = sname is NULL or vname is NULL;
+    perform _pgr_onError( err, 2, fnName,
+          'Vertex Table: ' || vertname || ' not found',
+          'Please create ' || vertname || ' using  _pgr_createTopology() or pgr_createVerticesTable()',
+          'Vertex Table: ' || vertname || ' found');
+
+
+    perform _pgr_msg(msgKind, fnName, 'Checking columns of ' || vertname);
+      FOREACH cname IN ARRAY columnsArr
+      loop
+         select _pgr_getcolumnName(vertname, cname, 0, fnName) into colname;
+         if colname is null then
+           perform _pgr_msg(msgKind, fnName, 'Adding column ' || cname || ' in ' || vertname);
+           set client_min_messages  to warning;
+                execute 'ALTER TABLE '||_pgr_quote_ident(vertname)||' ADD COLUMN '||cname|| ' integer';
+           execute 'set client_min_messages  to '|| debuglevel;
+           perform _pgr_msg(msgKind, fnName);
+         end if;
+      end loop;
+    perform _pgr_msg(msgKind, fnName, 'Finished checking columns of ' || vertname);
+
+    perform _pgr_createIndex(vertname , 'id' , 'btree', reportErrs, fnName);
+ END
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(
+    sname text, tname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    debuglevel text;
+    naming record;
+    tabname text;
+    query text;
+    msgKind int;
+BEGIN
+  msgKind = 0; -- debug_
+
+  execute 'show client_min_messages' into debuglevel;
+  tabname=_pgr_quote_ident(sname||'.'||tname);
+  perform _pgr_msg(msgKind, fnName, 'Checking ' || colname || ' column in ' || tabname || ' is indexed');
+    IF (_pgr_isColumnIndexed(sname,tname,colname, 0, fnName)) then
+       perform _pgr_msg(msgKind, fnName);
+    else
+      if indext = 'gist' then
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using gist('||quote_ident(colname)||')';
+      else
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using btree('||quote_ident(colname)||')';
+      end if;
+      perform _pgr_msg(msgKind, fnName, 'Adding index ' || tabname || '_' ||  colname || '_idx');
+      perform _pgr_msg(msgKind, fnName, ' Using ' ||  query);
+      set client_min_messages  to warning;
+      BEGIN
+        execute query;
+        EXCEPTION WHEN others THEN
+          perform _pgr_onError( true, reportErrs, fnName,
+            'Could not create index on:' || colname, SQLERRM);
+      END;
+      execute 'set client_min_messages  to '|| debuglevel;
+      perform _pgr_msg(msgKind, fnName);
+    END IF;
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(tabname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    naming record;
+    sname text;
+    tname text;
+
+BEGIN
+    select * from _pgr_getTableName(tabname, 2, fnName)  into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    execute _pgr_createIndex(sname, tname, colname, indext, reportErrs, fnName);
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pointToId(
+    point geometry,
+    tolerance double precision,
+    vertname text,
+    srid integer)
+
+  RETURNS bigint AS
+$BODY$
+DECLARE
+    rec record;
+    pid bigint;
+
+BEGIN
+    EXECUTE 'SELECT ST_Distance(
+        the_geom,
+        ST_GeomFromText(ST_AsText('
+                || quote_literal(point::text)
+                || '),'
+            || srid ||')) AS d, id, the_geom
+    FROM '||_pgr_quote_ident(vertname)||'
+    WHERE ST_DWithin(
+        the_geom,
+        ST_GeomFromText(
+            ST_AsText(' || quote_literal(point::text) ||'),
+            ' || srid || '),' || tolerance||')
+    ORDER BY d
+    LIMIT 1' INTO rec ;
+    IF rec.id IS NOT NULL THEN
+        pid := rec.id;
+    ELSE
+        execute 'INSERT INTO '||_pgr_quote_ident(vertname)||' (the_geom) VALUES ('||quote_literal(point::text)||')';
+        pid := lastval();
+END IF;
+
+RETURN pid;
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'many_to_many_dijkstra'
+LANGUAGE c VOLATILE;
+
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer, OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstra(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(Many to Many)';
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraVia(
+    edges_sql TEXT,
+    via_vertices ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    strict BOOLEAN DEFAULT FALSE,
+    U_turn_on_edge BOOLEAN DEFAULT TRUE,
+
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'dijkstraVia'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_johnson(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'johnson'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_floydWarshall(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'floydWarshall'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'astarManyToMany'
+LANGUAGE c VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, normal:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to Many)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true, normal:=false) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to Many)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid ANYARRAY,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+    equicost BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '$libdir/libpgrouting-2.5', 'many_withPointsDD'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_withPointsDD($1, $2, ARRAY[$3]::BIGINT[], $4, $5, $6, $7, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vids anyarray,
+    distance FLOAT,
+    directed BOOLEAN DEFAULT TRUE,
+    equicost BOOLEAN DEFAULT FALSE,
+    OUT seq integer,
+    OUT from_v  bigint,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '$libdir/libpgrouting-2.5', 'driving_many_to_dist'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vid bigint,
+    distance FLOAT8,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq integer,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer, directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'kshortest_path'
+    LANGUAGE c STABLE STRICT;
+
+-- V2 the graph is directed and there are no heap paths
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid integer, end_vid integer, k integer, has_rcost boolean)
+  RETURNS SETOF pgr_costresult3 AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated signature of pgr_ksp';
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql::text, false);
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_rcost) THEN
+           -- user says that it has reverse_cost but its not true
+           RAISE EXCEPTION 'has_reverse_cost set to true but reverse_cost not found';
+         ELSE
+           -- user says that it does not have reverse_cost but it does have it
+           -- to ignore we remove reverse_cost from the query
+           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+         END IF;
+      END IF;
+
+      RETURN query SELECT ((row_number() over()) -1)::integer  AS seq,  (path_id - 1)::integer AS id1, node::integer AS id2, edge::integer AS id3, cost
+            FROM _pgr_ksp(sql::text, start_vid, end_vid, k, TRUE, FALSE) WHERE path_id <= k;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer,
+  directed boolean default true, heap_paths boolean default false,
+  --directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  BEGIN
+         RETURN query SELECT *
+                FROM _pgr_ksp(edges_sql::text, start_vid, end_vid, k, directed, heap_paths);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsKSP(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    k INTEGER,
+
+    directed BOOLEAN DEFAULT TRUE,
+    heap_paths BOOLEAN DEFAULT FALSE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER, OUT path_id INTEGER, OUT path_seq INTEGER,
+    OUT node BIGINT, OUT edge BIGINT,
+    OUT cost FLOAT, OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'withPoints_ksp'
+    LANGUAGE c STABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_unnest_matrix(matrix float8[][], OUT start_vid integer, OUT end_vid integer, out agg_cost float8)
+RETURNS SETOF record AS
+
+$body$
+DECLARE
+
+m float8[];
+
+BEGIN
+    start_vid = 1;
+    foreach m slice 1 in  ARRAY matrix
+    LOOP
+        end_vid = 1;
+        foreach agg_cost in  ARRAY m
+        LOOP
+            RETURN next;
+            end_vid = end_vid + 1;
+        END LOOP;
+        start_vid = start_vid + 1;
+    END LOOP;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_tsp(
+    matrix float8[][],
+    startpt INTEGER,
+    endpt INTEGER DEFAULT -1,
+    OUT seq INTEGER,
+    OUT id INTEGER)
+RETURNS SETOF record AS
+$body$
+DECLARE
+table_sql TEXT;
+debuglevel TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature pgr_tsp(float8[][], integer, integer)';
+
+    CREATE TEMP TABLE ___tmp2 ON COMMIT DROP AS SELECT * FROM _pgr_unnest_matrix( matrix );
+
+
+    startpt := startpt + 1;
+    IF endpt = -1 THEN endpt := startpt;
+    END IF;
+
+
+    RETURN QUERY
+    WITH
+    result AS (
+        SELECT * FROM pgr_TSP(
+        $$SELECT * FROM ___tmp2 $$,
+        startpt, endpt,
+
+        tries_per_temperature :=  500 :: INTEGER,
+        max_changes_per_temperature := 30 :: INTEGER,
+        max_consecutive_non_changes := 500 :: INTEGER,
+
+        randomize:=false)
+    )
+    SELECT (row_number() over(ORDER BY result.seq) - 1)::INTEGER AS seq, (result.node - 1)::INTEGER AS id
+
+    FROM result WHERE NOT(result.node = startpt AND result.seq != 1);
+
+    DROP TABLE ___tmp2;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+
+
+
+CREATE OR  REPLACE FUNCTION pgr_tsp(sql text, start_id INTEGER, end_id INTEGER default (-1))
+returns setof pgr_costResult as
+$body$
+DECLARE
+table_sql TEXT;
+rec RECORD;
+debuglevel TEXT;
+n BIGINT;
+
+BEGIN
+    RAISE NOTICE 'Deprecated Signature pgr_tsp(sql, integer, integer)';
+
+    table_sql := 'CREATE TEMP TABLE ___tmp ON COMMIT DROP AS ' || sql ;
+    EXECUTE table_sql;
+
+
+    BEGIN
+        EXECUTE 'SELECT id, x, y FROM ___tmp' INTO rec;
+        EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                USING ERRCODE = 'XX000',
+                HINT = 'Please verify the column names: id, x, y';
+    END;
+
+    EXECUTE
+    'SELECT
+        pg_typeof(id)::text as id_type,
+        pg_typeof(x)::text as x_type,
+        pg_typeof(y)::text as y_type FROM ___tmp' INTO rec;
+
+
+    IF NOT((rec.id_type in ('integer'::text))
+        AND (rec.x_type = 'double precision'::text)
+        AND (rec.y_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION '''id'' must be of type INTEGER, ''x'' ad ''y'' must be of type FLOAT'
+            USING ERRCODE = 'XX000';
+    END IF;
+
+    EXECUTE 'SELECT count(*) AS n FROM (' || sql || ') AS __a__' INTO rec;
+    n = rec.n;
+
+    RETURN query
+        SELECT (seq - 1)::INTEGER AS seq, node::INTEGER AS id1, node::INTEGER AS id2, cost
+        FROM pgr_eucledianTSP(sql, start_id, end_id,
+
+            tries_per_temperature :=  500 * n :: INTEGER,
+            max_changes_per_temperature := 60 * n :: INTEGER,
+            max_consecutive_non_changes := 500 * n :: INTEGER,
+
+            randomize := false) WHERE seq <= n;
+    DROP TABLE ___tmp;
+
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+
+create or replace function _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+  as
+$body$
+declare
+    sql text;
+    r record;
+
+begin
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    sql := 'with nodes as (' || sqlin || ')
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j, st_distance(st_makepoint(a.x, a.y), st_makepoint(b.x, b.y)) as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i';
+
+    for r in execute sql loop
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+
+end;
+$body$
+language plpgsql stable cost 10;
+
+
+CREATE OR REPLACE FUNCTION pgr_TSP(
+    matrix_row_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '$libdir/libpgrouting-2.5', 'newTSP'
+LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_eucledianTSP(
+    coordinates_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '$libdir/libpgrouting-2.5', 'eucledianTSP'
+LANGUAGE c VOLATILE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_alphashape(sql text, alpha float8 DEFAULT 0, OUT x float8, OUT y float8)
+    RETURNS SETOF record
+    AS '$libdir/libpgrouting-2.5', 'alphashape'
+    LANGUAGE c VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_pointsAsPolygon(query varchar, alpha float8 DEFAULT 0)
+	RETURNS geometry AS
+	$$
+	DECLARE
+		r record;
+		geoms geometry[];
+		vertex_result record;
+		i int;
+		n int;
+		spos int;
+		q text;
+		x float8[];
+		y float8[];
+
+	BEGIN
+		geoms := array[]::geometry[];
+		i := 1;
+
+		FOR vertex_result IN EXECUTE 'SELECT x, y FROM pgr_alphashape('''|| query || ''', ' || alpha || ')'
+		LOOP
+			x[i] = vertex_result.x;
+			y[i] = vertex_result.y;
+			i := i+1;
+		END LOOP;
+
+		n := i;
+		IF n = 1 THEN
+			RAISE NOTICE 'n = 1';
+			RETURN NULL;
+		END IF;
+
+		spos := 1;
+		q := 'SELECT ST_GeometryFromText(''POLYGON((';
+		FOR i IN 1..n LOOP
+			IF x[i] IS NULL AND y[i] IS NULL THEN
+				q := q || ', ' || x[spos] || ' ' || y[spos] || '))'',0) AS geom;';
+				EXECUTE q INTO r;
+				geoms := geoms || array[r.geom];
+				q := '';
+			ELSE
+				IF q = '' THEN
+					spos := i;
+					q := 'SELECT ST_GeometryFromText(''POLYGON((';
+				END IF;
+				IF i = spos THEN
+					q := q || x[spos] || ' ' || y[spos];
+				ELSE
+					q := q || ', ' || x[i] || ' ' || y[i];
+				END IF;
+			END IF;
+		END LOOP;
+
+		RETURN ST_BuildArea(ST_Collect(geoms));
+	END;
+	$$
+	LANGUAGE 'plpgsql' VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'bd_astar'
+LANGUAGE C VOLATILE;
+
+
+
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed:=true, only_cost:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    BOOLEAN,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false);
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to Many)';
+
+
+
+-- one to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to Many)';
+
+
+-- bdDijkstra MANY TO MANY
+CREATE OR REPLACE FUNCTION _pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'bdDijkstra'
+LANGUAGE c VOLATILE;
+
+
+
+-- ONE TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- TODO directed BOOLEAN DEFAULT TRUE,  on version 3
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, false) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, true) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_vid integer,
+    target_vid integer,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '$libdir/libpgrouting-2.5', 'turn_restrict_shortest_path_vertex'
+LANGUAGE 'c' IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '$libdir/libpgrouting-2.5', 'turn_restrict_shortest_path_edge'
+LANGUAGE 'c' IMMUTABLE;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || edges_sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        -- no restrictions then its a dijkstra
+        RETURN query SELECT a.seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_dijkstra(new_sql, start_vid, end_vid, directed) a;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, start_vid, end_vid, directed, has_rcost, restrictions_sql);
+    RETURN;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_trspViaVertices(
+    edges_sql TEXT,
+    via_vids ANYARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult3 AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            new_sql :=
+               'WITH old_sql AS (' || edges_sql || ')' ||
+                '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        RETURN query SELECT (row_number() over())::INTEGER, path_id:: INTEGER, node::INTEGER,
+            (CASE WHEN edge = -2 THEN -1 ELSE edge END)::INTEGER, cost
+            FROM pgr_dijkstraVia(new_sql, via_vids, directed, strict:=true) WHERE edge != -1;
+        RETURN;
+    END IF;
+
+
+    -- make the call without contradiction from part of the user
+    RETURN query SELECT * FROM _pgr_trspViaVertices(new_sql, via_vids::INTEGER[], directed, has_rcost, restrictions_sql);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+
+    new_sql := sql;
+    IF (has_reverse != has_reverse_cost) THEN  -- user contradiction
+        IF (has_reverse) THEN
+            -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) THEN
+        -- no restrictions then its a with points
+        RETURN query SELECT a.seq-1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_withpoints(new_sql,
+            '(SELECT 1 as pid, ' || source_eid || 'as edge_id, ' || source_pos || '::float8 as fraction)'
+            || ' UNION '
+            || '(SELECT 2, ' || target_eid || ', ' || target_pos || ')' ::TEXT,
+            -1, -2, directed) a;
+        -- WHERE node != -2;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, source_eid, source_pos, target_eid, target_pos, directed, has_reverse_cost, turn_restrict_sql);
+    RETURN;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+create or replace function _pgr_trspViaVertices(sql text, vids integer[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    lrra boolean := false;
+    seq integer := 0;
+    seq2 integer := 0;
+
+begin
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(vids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from _pgr_trsp(sql, vids[i], vids[i+1], directed, has_rcost, turn_restrict_sql) as a loop
+            -- filter out the individual path ends except the last one
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --raise notice 'rr: %', rr;
+            if rr.id3 = -1 then
+                lrr := rr;
+                lrra := true;
+            else
+                seq := seq + 1;
+                rr.seq := seq;
+                return next rr;
+            end if;
+        end loop;
+    end loop;
+
+    if lrra then
+        seq := seq + 1;
+        lrr.seq := seq;
+        return next lrr;
+    end if;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+
+----------------------------------------------------------------------------------------------------------
+
+create or replace function pgr_trspViaEdges(sql text, eids integer[], pcts float8[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    first boolean := true;
+    seq integer := 0;
+    seq2 integer :=0;
+    has_reverse BOOLEAN;
+    point_is_vertex BOOLEAN := false;
+    edges_sql TEXT;
+    f float;
+
+begin
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql := sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (NOT has_rcost) THEN
+            -- user does not want to use reverse cost column
+            edges_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    FOREACH f IN ARRAY pcts LOOP
+        IF f in (0,1) THEN
+           point_is_vertex := true;
+        END IF;
+    END LOOP;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) AND NOT point_is_vertex THEN
+        -- no restrictions then its a _pgr_withPointsVia
+        RETURN query SELECT a.seq::INTEGER, path_id::INTEGER AS id1, node::INTEGER AS id2, edge::INTEGER AS id3, cost
+        FROM _pgr_withPointsVia(edges_sql, eids, pcts, directed) a;
+        RETURN;
+    END IF;
+
+    if array_length(eids, 1) != array_length(pcts, 1) then
+        raise exception 'The length of arrays eids and pcts must be the same!';
+    end if;
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(eids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from pgr_trsp(edges_sql,
+                                  eids[i], pcts[i],
+                                  eids[i+1], pcts[i+1],
+                                  directed,
+                                  has_rcost,
+                                  turn_restrict_sql) as a loop
+            -- combine intermediate via costs when cost is split across
+            -- two parts of a segment because it stops it and
+            -- restarts the next leg also on it
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --
+            -- there are multiple condition we have to deal with
+            -- between the end of one leg and start of the next
+            -- 1. same vertex_id. edge_id=-1; drop record with edge_id=-1
+            -- means: path ends on vertex
+            -- NOTICE:  rr: (19,1,44570022,-1,0)
+            -- NOTICE:  rr: (0,2,44570022,1768045,2.89691196717448)
+            -- 2. vertex_id=-1; sum cost components
+            -- means: path end/starts with the segment
+            -- NOTICE:  rr: (11,2,44569628,1775909,9.32885885148532)
+            -- NOTICE:  rr: (0,3,-1,1775909,0.771386350984395)
+
+            --raise notice 'rr: %', rr;
+            if first then
+                lrr := rr;
+                first := false;
+            else
+                if lrr.id3 = -1 then
+                    lrr := rr;
+                elsif lrr.id3 = rr.id3 then
+                    lrr.cost := lrr.cost + rr.cost;
+                    if rr.id2 = -1 then
+                        rr.id2 := lrr.id2;
+                    end if;
+                else
+                    seq := seq + 1;
+                    lrr.seq := seq;
+                    return next lrr;
+                    lrr := rr;
+                end if;
+            end if;
+        end loop;
+    end loop;
+
+    seq := seq + 1;
+    lrr.seq := seq;
+    return next lrr;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+----------------------------
+--    MANY TO MANY
+----------------------------
+
+
+CREATE OR REPLACE FUNCTION _pgr_maxflow(
+    edges_sql TEXT,
+    sources ANYARRAY,
+    targets ANYARRAY,
+    algorithm INTEGER DEFAULT 1,
+    only_flow BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'max_flow_many_to_many'
+    LANGUAGE c VOLATILE;
+
+
+
+
+------------------------------------
+-- 3 pgr_edmondsKarp
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+------------------------------------
+-- 2 boykov_kolmogorov
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+------------------------------------
+-- 1 pgr_pushRelabel
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT flow
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], algorithm := 1, only_flow := true);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], $3::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, $2::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxCardinalityMatch(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'edge_disjoint_paths_many_to_many'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    bigint,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    IN directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_contractGraph(
+    edges_sql TEXT,
+    contraction_order BIGINT[],
+    max_cycles integer DEFAULT 1,
+    forbidden_vertices BIGINT[] DEFAULT ARRAY[]::BIGINT[],
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT type TEXT,
+    OUT id BIGINT,
+    OUT contracted_vertices BIGINT[],
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost float)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'contractGraph'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliver(
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_cell_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'pickDeliver'
+LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliverEuclidean (
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'pickDeliverEuclidean'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_vrpOneDepot(
+    TEXT, -- customers_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_sql
+    INTEGER, -- depot_id
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+orders_sql TEXT;
+trucks_sql TEXT;
+matrix_sql TEXT;
+final_sql TEXT;
+BEGIN
+
+    orders_sql = $$WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    pickups AS (
+        SELECT id, x AS p_x, y AS p_y, open_time AS p_open, close_time AS p_close, service_time AS p_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vrp_orders.id AS id, order_unit AS demand, pickups.id AS p_node_id, p_x, p_y, p_open, p_close, p_service,
+    vrp_orders.id AS d_node_id, x AS d_x, y AS d_y, open_time AS d_open, close_time AS d_close, service_time AS d_service
+    FROM vrp_orders, pickups
+    WHERE vrp_orders.id != $$ || $4;
+
+
+    trucks_sql = $$ WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    vrp_vehicles AS ($$ || $2 || $$ ),
+    starts AS (
+        SELECT id AS start_node_id, x AS start_x, y AS start_y, open_time AS start_open, close_time AS start_close, service_time AS start_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vehicle_id AS id, capacity, starts.* FROM vrp_vehicles, starts;
+    $$;
+
+    final_sql = '
+    SELECT * FROM _pgr_pickDeliver(
+            $$' || orders_sql || '$$,
+            $$' || trucks_sql || '$$,
+            $$' || $3 || '$$,
+            max_cycles := 2,
+            initial_sol := 4 ); ';
+
+    RAISE DEBUG '%', orders_sql;
+    RAISE DEBUG '%', trucks_sql;
+    RAISE DEBUG '%', $3;
+    RAISE DEBUG '%', final_sql;
+
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+-----------------------------------------------------------------------
+-- Core function for vrp with sigle depot computation
+-- See README for description
+-----------------------------------------------------------------------
+--
+--
+
+create or replace function pgr_vrpOneDepot(
+	order_sql text,
+	vehicle_sql text,
+	cost_sql text,
+	depot_id integer,
+
+	OUT oid integer,
+	OUT opos integer,
+	OUT vid integer,
+	OUT tarrival integer,
+	OUT tdepart integer)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT order_id::INTEGER, stop_seq::INTEGER, vehicle_id::INTEGER, arrival_time::INTEGER, departure_time::INTEGER
+    FROM _pgr_vrpOneDepot($1, $2,
+       '
+            SELECT src_id AS start_vid, dest_id AS end_vid, traveltime AS agg_cost FROM ('||$3||') AS a
+       ',
+        $4
+    ) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_gsoc_vrppdtw(
+    customers_sql TEXT,
+    max_vehicles INTEGER,
+    capacity FLOAT,
+    speed FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+
+    OUT seq INTEGER,
+    OUT vehicle_id INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT stop_id BIGINT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+    orders_sql TEXT;
+    vehicles_sql TEXT;
+    final_sql TEXT;
+BEGIN
+    orders_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        pickups AS (
+            SELECT id, demand, x as p_x, y as p_y, opentime as p_open, closetime as p_close, servicetime as p_service
+            FROM  customer_data WHERE pindex = 0 AND id != 0
+        ),
+        deliveries AS (
+            SELECT pindex AS id, x as d_x, y as d_y, opentime as d_open, closetime as d_close, servicetime as d_service
+            FROM  customer_data WHERE dindex = 0 AND id != 0
+        )
+        SELECT * FROM pickups JOIN deliveries USING(id) ORDER BY pickups.id
+    $$;
+
+    vehicles_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ )
+        SELECT id, x AS start_x, y AS start_y,
+            opentime AS start_open, closetime AS start_close, $$ ||
+            capacity || $$ AS capacity, $$ || max_vehicles || $$ AS number, $$ || speed || $$ AS speed
+            FROM customer_data WHERE id = 0 LIMIT 1
+        $$;
+--  seq | vehicle_id | vehicle_seq | stop_id | travel_time | arrival_time | wait_time | service_time | departure_time
+    final_sql = $$ WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        p_deliver AS (SELECT * FROM _pgr_pickDeliverEuclidean('$$ || orders_sql || $$',  '$$ || vehicles_sql || $$',  1, $$ || max_cycles || $$ )),
+        picks AS (SELECT p_deliver.*, pindex, dindex, id AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 2)),
+        delivers AS (SELECT p_deliver.*, pindex, dindex, dindex AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 3)),
+        depots AS (SELECT p_deliver.*, 0 as pindex, 0 as dindex, 0 AS the_id FROM p_deliver WHERE (stop_type IN (-1,1,6))),
+        the_union AS (SELECT * FROM picks UNION SELECT * FROM delivers UNION SELECT * from depots)
+
+        SELECT (row_number() over(ORDER BY a.seq))::INTEGER, vehicle_seq, a.stop_seq, the_id::BIGINT, a.travel_time, a.arrival_time, a.wait_time, a.service_time, a.departure_time
+        FROM (SELECT * FROM the_union) AS a ORDER BY a.seq
+        $$;
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+CREATE OR REPLACE FUNCTION pgr_gsoc_vrppdtw(
+    sql text,
+    vehicle_num INTEGER,
+    capacity INTEGER
+)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+customers_sql TEXT;
+BEGIN
+    RETURN query
+         SELECT a.seq, vehicle_id::INTEGER AS id1, stop_id::INTEGER AS id2, departure_time AS cost
+        FROM _pgr_gsoc_vrppdtw($1, $2, $3, 1, 30) AS a WHERE vehicle_id NOT IN (-2);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION _pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN,
+    driving_side CHAR,
+    details BOOLEAN,
+
+    only_cost BOOLEAN DEFAULT false, -- gets path
+    normal BOOLEAN DEFAULT true, -- false for many to onu
+
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'withPoints'
+LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], ARRAY[$4]::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], ARRAY[$4]::bigint[], $5, $6, $7, FALSE, FALSE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], $4::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], $4::BIGINT[], $5,  $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION  _pgr_withPointsVia(
+    sql text,
+    via_edges bigint[],
+    fraction float[],
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  has_rcost boolean;
+  sql_new_vertices text := ' ';
+  sql_on_vertex text;
+  v_union text := ' ';
+  dummyrec record;
+  rec1 record;
+  via_vertices int[];
+  sql_safe text;
+  new_edges text;
+  BEGIN
+     BEGIN
+        sql_safe = 'SELECT id, source, target, cost, reverse_cost FROM ('|| sql || ') AS __a';
+
+        EXECUTE 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||sql_safe||' ) AS __b__ limit 1 ' INTO rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+     END;
+
+
+      IF array_length(via_edges, 1) != array_length(fraction, 1) then
+        RAISE EXCEPTION 'The length of via_edges is different of length of via_edges';
+      END IF;
+
+      FOR i IN 1 .. array_length(via_edges, 1)
+      LOOP
+          IF fraction[i] = 0 THEN
+              sql_on_vertex := 'SELECT source FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.source;
+          ELSE IF fraction[i] = 1 THEN
+              sql_on_vertex := 'SELECT target FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.target;
+          ELSE
+              via_vertices[i] = -i;
+              IF has_rcost THEN
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost,
+                              reverse_cost * (1 - ' || fraction[i] || ')  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost,
+                              reverse_cost *  ' || fraction[i] || '  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' where id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               ELSE
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               END IF;
+          END IF;
+          END IF;
+     END LOOP;
+
+     IF sql_new_vertices = ' ' THEN
+         new_edges := sql;
+     ELSE
+         IF has_rcost THEN
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost,
+                         lead(cost) OVER w  - cost AS reverse_cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL),
+                   second_part AS ( SELECT * FROM (SELECT id, lead(source) OVER w  AS source, source as target,
+                         reverse_cost - lead(reverse_cost) OVER w  AS cost,
+                         reverse_cost - lead(reverse_cost) OVER w  AS reverse_cost
+                      FROM  the_union  WHERE target > 0 and reverse_cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY reverse_cost ASC) ) as n2
+                      WHERE source IS NOT NULL),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part)
+                             UNION
+                       (SELECT * FROM second_part) ) _union )
+                  SELECT *  FROM more_union';
+         ELSE
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL ),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part) ) _union )
+                  SELECT *  FROM more_union';
+          END IF;
+      END IF;
+
+ -- raise notice '%', new_edges;
+     sql_new_vertices := sql_new_vertices || v_union || ' (' || sql || ')';
+     RETURN query SELECT *
+         FROM pgr_dijkstraVia(new_edges, via_vertices, directed, has_rcost);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_lineGraph(
+    TEXT, -- edges_sql
+    directed BOOLEAN DEFAULT true,
+    OUT seq INTEGER,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost FLOAT,
+    OUT reverse_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'lineGraph'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_connectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'connectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_strongComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'strongComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_biconnectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the edge in the component
+    OUT n_seq INTEGER,          -- nth_seq of the edge in the component
+    OUT edge BIGINT)            -- the number of the edge
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'biconnectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_articulationPoints(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'articulationPoints'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_bridges(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT edge BIGINT)            -- the number of the edge 
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'bridges'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_createtopology(edge_table text, tolerance double precision,
+		   the_geom text default 'the_geom', id text default 'id',
+		   source text default 'source', target text default 'target',rows_where text default 'true',
+		   clean boolean default FALSE)
+RETURNS VARCHAR AS
+$BODY$
+
+DECLARE
+    points record;
+    sridinfo record;
+    source_id bigint;
+    target_id bigint;
+    totcount bigint;
+    rowcount bigint;
+    srid integer;
+    sql text;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    idname text;
+    sourcename text;
+    targetname text;
+    notincluded integer;
+    i integer;
+    naming record;
+    info record;
+    flag boolean;
+    query text;
+    idtype text;
+    gtype text;
+    sourcetype text;
+    targettype text;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+    msgKind int;
+    emptied BOOLEAN;
+
+BEGIN
+    msgKind = 1; -- notice
+    fnName = 'pgr_createTopology';
+    raise notice 'PROCESSING:';
+    raise notice 'pgr_createTopology(''%'', %, ''%'', ''%'', ''%'', ''%'', rows_where := ''%'', clean := %)',edge_table,tolerance,the_geom,id,source,target,rows_where, clean;
+    execute 'show client_min_messages' into debuglevel;
+
+
+    raise notice 'Performing checks, please wait .....';
+
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+        sname=naming.sname;
+        tname=naming.tname;
+        tabname=sname||'.'||tname;
+        vname=tname||'_vertices_pgr';
+        vertname= sname||'.'||vname;
+        rows_where = ' AND ('||rows_where||')';
+      raise DEBUG '     --> OK';
+
+
+      raise debug 'Checking column names in edge table';
+        select * into idname     from _pgr_getColumnName(sname, tname,id,2,fnName);
+        select * into sourcename from _pgr_getColumnName(sname, tname,source,2,fnName);
+        select * into targetname from _pgr_getColumnName(sname, tname,target,2,fnName);
+        select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2,fnName);
+
+
+        err = sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname;
+        perform _pgr_onError( err, 2, fnName,
+               'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
+	       'Column names are OK');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking column types in edge table';
+        select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+        select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+        select * into idtype from _pgr_getColumnType(sname,tname,idname,1, fnName);
+
+        err = idtype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column id:'|| idname, ' Expected type of '|| idname || ' is integer,smallint or bigint but '||idtype||' was found');
+
+        err = sourcetype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column source:'|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+        err = targettype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column target:'|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or bigint but '||targettype||' was found');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking SRID of geometry column';
+         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+            || ' FROM ' || _pgr_quote_ident(tabname)
+            || ' WHERE ' || quote_ident(gname)
+            || ' IS NOT NULL LIMIT 1';
+         raise debug '%',query;
+         EXECUTE query INTO sridinfo;
+
+         err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+         perform _pgr_onError(err, 2, fnName,
+	     'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+
+         srid := sridinfo.srid;
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking and creating indices in edge table';
+        perform _pgr_createIndex(sname, tname , idname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+
+        gname=quote_ident(gname);
+        idname=quote_ident(idname);
+        sourcename=quote_ident(sourcename);
+        targetname=quote_ident(targetname);
+      raise DEBUG '     --> OK';
+
+
+
+
+
+    BEGIN
+        -- issue #193 & issue #210 & #213
+        -- this sql is for trying out the where clause
+        -- the select * is to avoid any column name conflicts
+        -- limit 1, just try on first record
+        -- if the where clasuse is ill formed it will be caught in the exception
+        sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+        EXECUTE sql into dummyRec;
+        -- end
+
+        -- if above where clasue works this one should work
+        -- any error will be caught by the exception also
+        sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NOT NULL AND '||
+	    idname||' IS NOT NULL)=false '||rows_where;
+        EXECUTE SQL  into notincluded;
+
+        if clean then
+            raise debug 'Cleaning previous Topology ';
+               execute 'UPDATE ' || _pgr_quote_ident(tabname) ||
+               ' SET '||sourcename||' = NULL,'||targetname||' = NULL';
+        else
+            raise debug 'Creating topology for edges with non assigned topology';
+            if rows_where=' AND (true)' then
+                rows_where=  ' and ('||quote_ident(sourcename)||' is null or '||quote_ident(targetname)||' is  null)';
+            end if;
+        end if;
+        -- my thoery is that the select Count(*) will never go through here
+        EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+             RAISE NOTICE '%',sql;
+             RETURN 'FAIL';
+    END;
+
+    BEGIN
+         raise DEBUG 'initializing %',vertname;
+         execute 'select * from _pgr_getTableName('||quote_literal(vertname)
+                                                  || ',0,' || quote_literal(fnName) ||' )' into naming;
+         emptied = false;
+         set client_min_messages  to warning;
+         IF sname=naming.sname AND vname=naming.tname  THEN
+            if clean then
+                execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+                execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+                emptied = true;
+            end if;
+         ELSE -- table doesn't exist
+            execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+            emptied = true;
+         END IF;
+         IF (emptied) THEN
+             execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+	         quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+             perform _pgr_createIndex(vertname , 'the_geom'::text , 'gist'::text);
+         END IF;
+         execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id"}''::text[])' into naming;
+         execute 'set client_min_messages  to '|| debuglevel;
+         raise DEBUG  '  ------>OK';
+         EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: something went wrong when initializing the verties table';
+             RETURN 'FAIL';
+    END;
+
+
+
+    raise notice 'Creating Topology, Please wait...';
+        rowcount := 0;
+        FOR points IN EXECUTE 'SELECT ' || idname || '::bigint AS id,'
+            || ' _pgr_StartPoint(' || gname || ') AS source,'
+            || ' _pgr_EndPoint('   || gname || ') AS target'
+            || ' FROM '  || _pgr_quote_ident(tabname)
+            || ' WHERE ' || gname || ' IS NOT NULL AND ' || idname||' IS NOT NULL '||rows_where
+        LOOP
+
+            rowcount := rowcount + 1;
+            IF rowcount % 1000 = 0 THEN
+                RAISE NOTICE '% edges processed', rowcount;
+            END IF;
+
+
+            source_id := _pgr_pointToId(points.source, tolerance,vertname,srid);
+            target_id := _pgr_pointToId(points.target, tolerance,vertname,srid);
+            BEGIN
+                sql := 'UPDATE ' || _pgr_quote_ident(tabname) ||
+                    ' SET '||sourcename||' = '|| source_id::text || ','||targetname||' = ' || target_id::text ||
+                    ' WHERE ' || idname || ' =  ' || points.id::text;
+
+                IF sql IS NULL THEN
+                    RAISE NOTICE 'WARNING: UPDATE % SET source = %, target = % WHERE % = % ', tabname, source_id::text, target_id::text, idname,  points.id::text;
+                ELSE
+                    EXECUTE sql;
+                END IF;
+                EXCEPTION WHEN OTHERS THEN
+                    RAISE NOTICE '%', SQLERRM;
+                    RAISE NOTICE '%',sql;
+                    RETURN 'FAIL';
+            end;
+        END LOOP;
+        raise notice '-------------> TOPOLOGY CREATED FOR  % edges', rowcount;
+        RAISE NOTICE 'Rows with NULL geometry or NULL id: %',notincluded;
+        Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname), _pgr_quote_ident(vertname);
+        raise notice '----------------------------------------------';
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+COMMENT ON FUNCTION pgr_createTopology(text, double precision,text,text,text,text,text,boolean)
+IS 'args: edge_table,tolerance, the_geom:=''the_geom'',source:=''source'', target:=''target'',rows_where:=''true'' - fills columns source and target in the geometry table and creates a vertices table for selected rows';
+
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
+RETURNS character varying AS
+$BODY$
+
+DECLARE
+    points record;
+    seg record;
+    naming record;
+    sridinfo record;
+    srid integer;
+    ecnt integer;
+    vertname text;
+    sname text;
+    tname text;
+    vname text;
+    idname text;
+    sourcename text;
+    targetname text;
+    sourcetype text;
+    targettype text;
+    geotype text;
+    gname text;
+    tabName text;
+    flag boolean ;
+    query text;
+    selectionquery text;
+    i integer;
+    tot integer;
+    NumIsolated integer;
+    numdeadends integer;
+    numgaps integer;
+    NumCrossing integer;
+    numRings integer;
+    debuglevel text;
+
+
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_analyzeGraph(''%'',%,''%'',''%'',''%'',''%'',''%'')',edge_table,tolerance,the_geom,id,source,target,rows_where;
+  raise notice 'Performing checks, please wait ...';
+  execute 'show client_min_messages' into debuglevel;
+
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',2)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    rows_where = ' AND ('||rows_where||')';
+    raise DEBUG '     --> OK';
+
+  END;
+
+  BEGIN
+       raise debug 'Checking Vertices table';
+       execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","cnt","chk"}''::text[])' into naming;
+       execute 'UPDATE '||_pgr_quote_ident(vertname)||' SET cnt=0 ,chk=0';
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the vertices table';
+          RETURN 'FAIL';
+  END;
+
+
+
+  BEGIN
+       raise debug 'Checking column names in edge table';
+       select * into idname     from _pgr_getColumnName(sname, tname,id,2);
+       select * into sourcename from _pgr_getColumnName(sname, tname,source,2);
+       select * into targetname from _pgr_getColumnName(sname, tname,target,2);
+       select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2);
+
+
+       perform _pgr_onError( sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname, 2,
+                       'pgr_analyzeGraph',  'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
+                       'Column names are OK');
+
+        raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column names';
+          RETURN 'FAIL';
+  END;
+
+
+  BEGIN
+       raise debug 'Checking column types in edge table';
+       select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1);
+       select * into targettype from _pgr_getColumnType(sname,tname,targetname,1);
+
+       perform _pgr_onError(sourcetype not in('integer','smallint','bigint') , 2,
+                       'pgr_analyzeGraph',  'Wrong type of Column '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found',
+                       'Type of Column '|| sourcename || ' is ' || sourcetype);
+
+       perform _pgr_onError(targettype not in('integer','smallint','bigint') , 2,
+                       'pgr_analyzeGraph',  'Wrong type of Column '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found',
+                       'Type of Column '|| targetname || ' is ' || targettype);
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column types';
+          RETURN 'FAIL';
+   END;
+
+   BEGIN
+       raise debug 'Checking SRID of geometry column';
+         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+            || ' FROM ' || _pgr_quote_ident(tabname)
+            || ' WHERE ' || quote_ident(gname)
+            || ' IS NOT NULL LIMIT 1';
+         EXECUTE QUERY INTO sridinfo;
+
+         perform _pgr_onError( sridinfo IS NULL OR sridinfo.srid IS NULL,2,
+                 'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname,
+                 'SRID of '||gname||' is '||sridinfo.srid);
+
+         IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
+             RAISE NOTICE ' Can not determine the srid of the geometry "%" in table %', the_geom,tabname;
+             RETURN 'FAIL';
+         END IF;
+         srid := sridinfo.srid;
+         raise DEBUG '     --> OK';
+         EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM;--issue 210,211,213
+             RAISE NOTICE 'ERROR: something went wrong when checking for SRID of % in table %', the_geom,tabname;
+             RETURN 'FAIL';
+    END;
+
+
+    BEGIN
+       raise debug 'Checking  indices in edge table';
+       perform _pgr_createIndex(tabname , idname , 'btree');
+       perform _pgr_createIndex(tabname , sourcename , 'btree');
+       perform _pgr_createIndex(tabname , targetname , 'btree');
+       perform _pgr_createIndex(tabname , gname , 'gist');
+
+       gname=quote_ident(gname);
+       sourcename=quote_ident(sourcename);
+       targetname=quote_ident(targetname);
+       idname=quote_ident(idname);
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking indices';
+          RETURN 'FAIL';
+    END;
+
+
+    BEGIN
+        query='select count(*) from '||_pgr_quote_ident(tabname)||' where true  '||rows_where;
+        EXECUTE query into ecnt;
+        raise DEBUG '-->Rows Where condition: OK';
+        raise DEBUG '     --> OK';
+         EXCEPTION WHEN OTHERS THEN
+            RAISE NOTICE 'Got %', SQLERRM;  --issue 210,211,213
+            RAISE NOTICE 'ERROR: Condition is not correct. Please execute the following query to test your condition';
+            RAISE NOTICE '%',query;
+            RETURN 'FAIL';
+    END;
+
+    selectionquery ='with
+           selectedRows as( (select '||sourcename||' as id from '||_pgr_quote_ident(tabname)||' where true '||rows_where||')
+                           union
+                           (select '||targetname||' as id from '||_pgr_quote_ident(tabname)||' where true '||rows_where||'))';
+
+
+
+
+
+   BEGIN
+       RAISE NOTICE 'Analyzing for dead ends. Please wait...';
+       query= 'with countingsource as (select a.'||sourcename||' as id,count(*) as cnts
+               from (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) a  group by a.'||sourcename||')
+                     ,countingtarget as (select a.'||targetname||' as id,count(*) as cntt
+                    from (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) a  group by a.'||targetname||')
+                   ,totalcount as (select id,case when cnts is null and cntt is null then 0
+                                                   when cnts is null then cntt
+                                                   when cntt is null then cnts
+                                                   else cnts+cntt end as totcnt
+                                   from ('||_pgr_quote_ident(vertname)||' as a left
+                                   join countingsource as t using(id) ) left join countingtarget using(id))
+               update '||_pgr_quote_ident(vertname)||' as a set cnt=totcnt from totalcount as b where a.id=b.id';
+       raise debug '%',query;
+       execute query;
+       query=selectionquery||'
+              SELECT count(*)  FROM '||_pgr_quote_ident(vertname)||' WHERE cnt=1 and id in (select id from selectedRows)';
+       raise debug '%',query;
+       execute query  INTO numdeadends;
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'Got %', SQLERRM;  --issue 210,211,213
+          RAISE NOTICE 'ERROR: something went wrong when analizing for dead ends';
+          RETURN 'FAIL';
+   END;
+
+
+
+    BEGIN
+          RAISE NOTICE 'Analyzing for gaps. Please wait...';
+          query = 'with
+                   buffer as (select id,st_buffer(the_geom,'||tolerance||') as buff from '||_pgr_quote_ident(vertname)||' where cnt=1)
+                   ,veryclose as (select b.id,st_crosses(a.'||gname||',b.buff) as flag
+                   from  (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) as a
+                   join buffer as b on (a.'||gname||'&&b.buff)
+                   where '||sourcename||'!=b.id and '||targetname||'!=b.id )
+                   update '||_pgr_quote_ident(vertname)||' set chk=1 where id in (select distinct id from veryclose where flag=true)';
+          raise debug '%' ,query;
+          execute query;
+          GET DIAGNOSTICS  numgaps= ROW_COUNT;
+          raise DEBUG '     --> OK';
+          EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for gaps';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for isolated edges. Please wait...';
+        query=selectionquery|| ' SELECT count(*) FROM (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' )  as a,
+                                                 '||_pgr_quote_ident(vertname)||' as b,
+                                                 '||_pgr_quote_ident(vertname)||' as c
+                            WHERE b.id in (select id from selectedRows) and a.'||sourcename||' =b.id
+                            AND b.cnt=1 AND a.'||targetname||' =c.id
+                            AND c.cnt=1';
+        raise debug '%' ,query;
+        execute query  INTO NumIsolated;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for isolated edges';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for ring geometries. Please wait...';
+        execute 'SELECT geometrytype('||gname||')  FROM '||_pgr_quote_ident(tabname) limit 1 into geotype;
+        IF (geotype='MULTILINESTRING') THEN
+            query ='SELECT count(*)  FROM '||_pgr_quote_ident(tabname)||'
+                                 WHERE true  '||rows_where||' and st_isRing(st_linemerge('||gname||'))';
+            raise debug '%' ,query;
+            execute query  INTO numRings;
+        ELSE query ='SELECT count(*)  FROM '||_pgr_quote_ident(tabname)||'
+                                  WHERE true  '||rows_where||' and st_isRing('||gname||')';
+            raise debug '%' ,query;
+            execute query  INTO numRings;
+        END IF;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for ring geometries';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for intersections. Please wait...';
+        query = 'select count(*) from (select distinct case when a.'||idname||' < b.'||idname||' then a.'||idname||'
+                                                        else b.'||idname||' end,
+                                                   case when a.'||idname||' < b.'||idname||' then b.'||idname||'
+                                                        else a.'||idname||' end
+                                    FROM (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||') as a
+                                    JOIN (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||') as b
+                                    ON (a.'|| gname||' && b.'||gname||')
+                                    WHERE a.'||idname||' != b.'||idname|| '
+                                        and (a.'||sourcename||' in (b.'||sourcename||',b.'||targetname||')
+                                              or a.'||targetname||' in (b.'||sourcename||',b.'||targetname||')) = false
+                                        and st_intersects(a.'||gname||', b.'||gname||')=true) as d ';
+        raise debug '%' ,query;
+        execute query  INTO numCrossing;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for intersections';
+            RETURN 'FAIL';
+    END;
+
+
+
+
+    RAISE NOTICE '            ANALYSIS RESULTS FOR SELECTED EDGES:';
+    RAISE NOTICE '                  Isolated segments: %', NumIsolated;
+    RAISE NOTICE '                          Dead ends: %', numdeadends;
+    RAISE NOTICE 'Potential gaps found near dead ends: %', numgaps;
+    RAISE NOTICE '             Intersections detected: %',numCrossing;
+    RAISE NOTICE '                    Ring geometries: %',numRings;
+
+
+    RETURN 'OK';
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+COMMENT ON FUNCTION pgr_analyzeGraph(text,double precision,text,text,text,text,text) IS 'args: edge_table, tolerance,the_geom:=''the_geom'',id:=''id'',source column:=''source'', target column:=''target'' rows_where:=''true'' - creates a vertices table based on the geometry for selected rows';
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_analyzeOneway(
+   edge_table text,
+   s_in_rules TEXT[],
+   s_out_rules TEXT[],
+   t_in_rules TEXT[],
+   t_out_rules TEXT[],
+   two_way_if_null boolean default true,
+   oneway text default 'oneway',
+   source text default 'source',
+   target text default 'target')
+  RETURNS text AS
+$BODY$
+
+
+DECLARE
+    rule text;
+    ecnt integer;
+    instr text;
+    naming record;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    owname text;
+    sourcename text;
+    targetname text;
+    sourcetype text;
+    targettype text;
+    vertname text;
+    debuglevel text;
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_analyzeOneway(''%'',''%'',''%'',''%'',''%'',''%'',''%'',''%'',%)',
+		edge_table, s_in_rules , s_out_rules, t_in_rules, t_out_rules, oneway, source ,target,two_way_if_null ;
+  execute 'show client_min_messages' into debuglevel;
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',2)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    raise DEBUG '     --> OK';
+    EXCEPTION WHEN raise_exception THEN
+      RAISE NOTICE 'ERROR: something went wrong checking the table name';
+      RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise debug 'Checking Vertices table';
+       execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","ein","eout"}''::text[])' into naming;
+       execute 'UPDATE '||_pgr_quote_ident(vertname)||' SET eout=0 ,ein=0';
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the vertices table';
+          RETURN 'FAIL';
+  END;
+
+
+  BEGIN
+       raise debug 'Checking column names in edge table';
+       select * into sourcename from _pgr_getColumnName(sname, tname,source,2);
+       select * into targetname from _pgr_getColumnName(sname, tname,target,2);
+       select * into owname from _pgr_getColumnName(sname, tname,oneway,2);
+
+
+       perform _pgr_onError( sourcename in (targetname,owname) or  targetname=owname, 2,
+                       '_pgr_createToplogy',  'Two columns share the same name', 'Parameter names for oneway,source and target  must be different',
+                       'Column names are OK');
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column names';
+          RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise debug 'Checking column types in edge table';
+       select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1);
+       select * into targettype from _pgr_getColumnType(sname,tname,targetname,1);
+
+
+       perform _pgr_onError(sourcetype not in('integer','smallint','bigint') , 2,
+                       '_pgr_createTopology',  'Wrong type of Column '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found',
+                       'Type of Column '|| sourcename || ' is ' || sourcetype);
+
+       perform _pgr_onError(targettype not in('integer','smallint','bigint') , 2,
+                       '_pgr_createTopology',  'Wrong type of Column '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found',
+                       'Type of Column '|| targetname || ' is ' || targettype);
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column types';
+          RETURN 'FAIL';
+   END;
+
+
+
+    RAISE NOTICE 'Analyzing graph for one way street errors.';
+
+    rule := CASE WHEN two_way_if_null
+            THEN owname || ' IS NULL OR '
+            ELSE '' END;
+
+    instr := '''' || array_to_string(s_in_rules, ''',''') || '''';
+       EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set ein=coalesce(ein,0)+b.cnt
+      from (
+         select '|| sourcename ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| sourcename ||' ) b
+     where a.id=b.'|| sourcename;
+
+    RAISE NOTICE 'Analysis 25%% complete ...';
+
+    instr := '''' || array_to_string(t_in_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set ein=coalesce(ein,0)+b.cnt
+        from (
+         select '|| targetname ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| targetname ||' ) b
+        where a.id=b.'|| targetname;
+
+    RAISE NOTICE 'Analysis 50%% complete ...';
+
+    instr := '''' || array_to_string(s_out_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set eout=coalesce(eout,0)+b.cnt
+        from (
+         select '|| sourcename ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| sourcename ||' ) b
+        where a.id=b.'|| sourcename;
+    RAISE NOTICE 'Analysis 75%% complete ...';
+
+    instr := '''' || array_to_string(t_out_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set eout=coalesce(eout,0)+b.cnt
+        from (
+         select '|| targetname ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| targetname ||' ) b
+        where a.id=b.'|| targetname;
+
+    RAISE NOTICE 'Analysis 100%% complete ...';
+
+    EXECUTE 'SELECT count(*)  FROM '||_pgr_quote_ident(vertname)||' WHERE ein=0 or eout=0' INTO ecnt;
+
+    RAISE NOTICE 'Found % potential problems in directionality' ,ecnt;
+
+    RETURN 'OK';
+
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+COMMENT ON FUNCTION pgr_analyzeOneway(text,TEXT[],TEXT[], TEXT[],TEXT[],boolean,text,text,text)
+IS 'args:edge_table , s_in_rules , s_out_rules, t_in_rules , t_out_rules, two_way_if_null:= true, oneway:=''oneway'',source:= ''source'',target:=''target'' - Analizes the directionality of the edges based on the rules';
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_createverticestable(
+   edge_table text,
+   the_geom text DEFAULT 'the_geom'::text,
+   source text DEFAULT 'source'::text,
+   target text DEFAULT 'target'::text,
+    rows_where text DEFAULT 'true'::text
+)
+  RETURNS text AS
+$BODY$
+DECLARE
+    naming record;
+    sridinfo record;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    sourcename text;
+    targetname text;
+    query text;
+    ecnt bigint;
+    srid integer;
+    sourcetype text;
+    targettype text;
+    sql text;
+    totcount integer;
+    i integer;
+    notincluded integer;
+    included integer;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+
+
+BEGIN
+  fnName = 'pgr_createVerticesTable';
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_createVerticesTable(''%'',''%'',''%'',''%'',''%'')',edge_table,the_geom,source,target,rows_where;
+  execute 'show client_min_messages' into debuglevel;
+
+  raise notice 'Performing checks, please wait .....';
+
+  RAISE DEBUG 'Checking % exists',edge_table;
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    rows_where = ' AND ('||rows_where||')';
+  raise debug '--> Edge table exists: OK';
+
+  raise debug 'Checking column names';
+    select * into sourcename from _pgr_getColumnName(sname, tname,source,2, fnName);
+    select * into targetname from _pgr_getColumnName(sname, tname,target,2, fnName);
+    select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2, fnName);
+
+
+    err = sourcename in (targetname,gname) or  targetname=gname;
+    perform _pgr_onError(err, 2, fnName,
+        'Two columns share the same name', 'Parameter names for the_geom,source and target  must be different');
+  raise debug '--> Column names: OK';
+
+  raise debug 'Checking column types in edge table';
+    select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+    select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+
+
+    err = sourcetype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column source: '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+    err = targettype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column target: '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found');
+
+  raise debug '-->Column types:OK';
+
+  raise debug 'Checking SRID of geometry column';
+     query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+        || ' FROM ' || _pgr_quote_ident(tabname)
+        || ' WHERE ' || quote_ident(gname)
+        || ' IS NOT NULL LIMIT 1';
+     raise debug '%',query;
+     EXECUTE query INTO sridinfo;
+
+     err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+     perform _pgr_onError(err, 2, fnName,
+         'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+     srid := sridinfo.srid;
+  raise DEBUG '     --> OK';
+
+  raise debug 'Checking and creating Indices';
+     perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+  raise DEBUG '-->Check and create indices: OK';
+
+     gname=quote_ident(gname);
+     sourcename=quote_ident(sourcename);
+     targetname=quote_ident(targetname);
+
+
+  BEGIN
+  raise debug 'Checking Condition';
+    -- issue #193 & issue #210 & #213
+    -- this sql is for trying out the where clause
+    -- the select * is to avoid any column name conflicts
+    -- limit 1, just try on first record
+    -- if the where clasuse is ill formed it will be caught in the exception
+    sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+    EXECUTE sql into dummyRec;
+    -- end
+
+    -- if above where clasue works this one should work
+    -- any error will be caught by the exception also
+    sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NULL or '||
+		sourcename||' is null or '||targetname||' is null)=true '||rows_where;
+    raise debug '%',sql;
+    EXECUTE SQL  into notincluded;
+    EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+
+
+
+  BEGIN
+     raise DEBUG 'initializing %',vertname;
+       execute 'select * from _pgr_getTableName('||quote_literal(vertname)||',0)' into naming;
+       IF sname=naming.sname  AND vname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+       ELSE
+           set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+       END IF;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+                quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+       execute 'CREATE INDEX '||quote_ident(vname||'_the_geom_idx')||' ON '||_pgr_quote_ident(vertname)||'  USING GIST (the_geom)';
+       execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+       EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Initializing vertex table';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise notice 'Populating %, please wait...',vertname;
+       sql= 'with
+		lines as ((select distinct '||sourcename||' as id, _pgr_startpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+		                  ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||')
+			union (select distinct '||targetname||' as id,_pgr_endpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+			          ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||'))
+		,numberedLines as (select row_number() OVER (ORDER BY id) AS i,* from lines )
+		,maxid as (select id,max(i) as maxi from numberedLines group by id)
+		insert into '||_pgr_quote_ident(vertname)||'(id,the_geom)  (select id,the_geom  from numberedLines join maxid using(id) where i=maxi order by id)';
+       RAISE debug '%',sql;
+       execute sql;
+       GET DIAGNOSTICS totcount = ROW_COUNT;
+
+       sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' a, '||_pgr_quote_ident(vertname)||' b
+            where '||sourcename||'=b.id and '|| targetname||' in (select id from '||_pgr_quote_ident(vertname)||')';
+       RAISE debug '%',sql;
+       execute sql into included;
+
+
+
+       execute 'select max(id) from '||_pgr_quote_ident(vertname) into ecnt;
+       execute 'SELECT setval('||quote_literal(vertname||'_id_seq')||','||coalesce(ecnt,1)||' , false)';
+       raise notice '  ----->   VERTICES TABLE CREATED WITH  % VERTICES', totcount;
+       raise notice '                                       FOR   %  EDGES', included+notincluded;
+       RAISE NOTICE '  Edges with NULL geometry,source or target: %',notincluded;
+       RAISE NOTICE '                            Edges processed: %',included;
+       Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname),_pgr_quote_ident(vertname);
+       raise notice '----------------------------------------------';
+    END;
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+COMMENT ON FUNCTION pgr_createVerticesTable(text,text,text,text,text)
+IS 'args: edge_table, the_geom:=''the_geom'',source:=''source'', target:=''target'' rows_where:=''true'' - creates a vertices table based on the source and target identifiers for selected rows';
+
+
+CREATE OR REPLACE FUNCTION pgr_nodeNetwork(edge_table text, tolerance double precision,
+			id text default 'id', the_geom text default 'the_geom', table_ending text default 'noded',
+            rows_where text DEFAULT ''::text, outall boolean DEFAULT false) RETURNS text AS
+$BODY$
+DECLARE
+	
+	p_num int := 0;
+	p_ret text := '';
+    pgis_ver_old boolean := _pgr_versionless(postgis_lib_version(), '2.1.0.0');
+    vst_line_substring text;
+    vst_line_locate_point text;
+    intab text;
+    outtab text;
+    n_pkey text;
+    n_geom text;
+    naming record;
+    sname text;
+    tname text;
+    outname text;
+    srid integer;
+    sridinfo record;
+    splits bigint;
+    touched bigint;
+    untouched bigint;
+    geomtype text;
+    debuglevel text;
+    rows_where text;
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_nodeNetwork(''%'', %, ''%'', ''%'', ''%'', ''%'',  %)',
+    edge_table, tolerance, id,  the_geom, table_ending, rows_where, outall;
+  raise notice 'Performing checks, please wait .....';
+  execute 'show client_min_messages' into debuglevel;
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',0)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+	RAISE NOTICE '-------> % not found',edge_table;
+        RETURN 'FAIL';
+    ELSE
+	RAISE DEBUG '  -----> OK';
+    END IF;
+
+    intab=sname||'.'||tname;
+    outname=tname||'_'||table_ending;
+    outtab= sname||'.'||outname;
+    rows_where = CASE WHEN length(rows_where) > 2 and not outall THEN ' AND (' || rows_where || ')' ELSE '' END;
+    rows_where = CASE WHEN length(rows_where) > 2 THEN ' WHERE (' || rows_where || ')' ELSE '' END;
+  END;
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',id,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(id)||')' INTO n_pkey;
+       IF n_pkey is NULL then
+          raise notice  'ERROR: id column "%"  not found in %',id,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',the_geom,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(the_geom)||')' INTO n_geom;
+       IF n_geom is NULL then
+          raise notice  'ERROR: the_geom  column "%"  not found in %',the_geom,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+  IF n_pkey=n_geom THEN
+	raise notice  'ERROR: id and the_geom columns have the same name "%" in %',n_pkey,intab;
+        RETURN 'FAIL';
+  END IF;
+
+  BEGIN
+       	raise DEBUG 'Checking the SRID of the geometry "%"', n_geom;
+       	EXECUTE 'SELECT ST_SRID(' || quote_ident(n_geom) || ') as srid '
+          		|| ' FROM ' || _pgr_quote_ident(intab)
+          		|| ' WHERE ' || quote_ident(n_geom)
+          		|| ' IS NOT NULL LIMIT 1' INTO sridinfo;
+       	IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
+        	RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           	RETURN 'FAIL';
+       	END IF;
+       	srid := sridinfo.srid;
+       	raise DEBUG '  -----> SRID found %',srid;
+       	EXCEPTION WHEN OTHERS THEN
+           		RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           		RETURN 'FAIL';
+  END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_pkey,intab;
+      if (_pgr_isColumnIndexed(intab,n_pkey)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding  index "%_%_idx".',n_pkey,intab;
+
+	set client_min_messages  to warning;
+        execute 'create  index '||tname||'_'||n_pkey||'_idx on '||_pgr_quote_ident(intab)||' using btree('||quote_ident(n_pkey)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_geom,intab;
+      if (_pgr_iscolumnindexed(intab,n_geom)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding unique index "%_%_gidx".',intab,n_geom;
+	set client_min_messages  to warning;
+        execute 'CREATE INDEX '
+            || quote_ident(tname || '_' || n_geom || '_gidx' )
+            || ' ON ' || _pgr_quote_ident(intab)
+            || ' USING gist (' || quote_ident(n_geom) || ')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+---------------
+    BEGIN
+       raise DEBUG 'initializing %',outtab;
+       execute 'select * from _pgr_getTableName('||quote_literal(outtab)||',0)' into naming;
+       IF sname=naming.sname  AND outname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(outtab)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(outname)||','||quote_literal(n_geom)||')';
+       ELSE
+	   set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(outtab)||' (id bigserial PRIMARY KEY,old_id integer,sub_id integer,
+								source bigint,target bigint)';
+       END IF;
+       execute 'select geometrytype('||quote_ident(n_geom)||') from  '||_pgr_quote_ident(intab)||' limit 1' into geomtype;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(outname)||','||
+                quote_literal(n_geom)||','|| srid||', '||quote_literal(geomtype)||', 2)';
+       execute 'CREATE INDEX '||quote_ident(outname||'_'||n_geom||'_idx')||' ON '||_pgr_quote_ident(outtab)||'  USING GIST ('||quote_ident(n_geom)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+    END;
+----------------
+
+
+  raise notice 'Processing, please wait .....';
+
+
+    if pgis_ver_old then
+        vst_line_substring    := 'st_line_substring';
+        vst_line_locate_point := 'st_line_locate_point';
+    else
+        vst_line_substring    := 'st_linesubstring';
+        vst_line_locate_point := 'st_linelocatepoint';
+    end if;
+
+--    -- First creates temp table with intersection points
+    p_ret = 'create temp table intergeom on commit drop as (
+        select l1.' || quote_ident(n_pkey) || ' as l1id,
+               l2.' || quote_ident(n_pkey) || ' as l2id,
+	       l1.' || quote_ident(n_geom) || ' as line,
+	       _pgr_startpoint(l2.' || quote_ident(n_geom) || ') as source,
+	       _pgr_endpoint(l2.' || quote_ident(n_geom) || ') as target,
+               st_intersection(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ') as geom
+        from (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l1
+             join (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l2
+             on (st_dwithin(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ', ' || tolerance || '))'||
+        'where l1.' || quote_ident(n_pkey) || ' <> l2.' || quote_ident(n_pkey)||' and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false  )';
+    raise debug '%',p_ret;
+    EXECUTE p_ret;
+
+    -- second temp table with locus (index of intersection point on the line)
+    -- to avoid updating the previous table
+    -- we keep only intersection points occurring onto the line, not at one of its ends
+--    drop table if exists inter_loc;
+
+--HAD TO CHANGE THIS QUERY
+-- p_ret= 'create temp table inter_loc on commit drop as (
+--        select l1id, l2id, ' || vst_line_locate_point || '(line,point) as locus from (
+--        select DISTINCT l1id, l2id, line, (ST_DumpPoints(geom)).geom as point from intergeom) as foo
+--        where ' || vst_line_locate_point || '(line,point)<>0 and ' || vst_line_locate_point || '(line,point)<>1)';
+    p_ret= 'create temp table inter_loc on commit drop as ( select * from (
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,source) as locus from intergeom)
+         union
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,target) as locus from intergeom)) as foo
+        where locus<>0 and locus<>1)';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+
+    -- index on l1id
+    create index inter_loc_id_idx on inter_loc(l1id);
+
+    -- Then computes the intersection on the lines subset, which is much smaller than full set
+    -- as there are very few intersection points
+
+--- outab needs to be formally created with id, old_id, subid,the_geom, source,target
+---  so it can be inmediatly be used with createTopology
+
+--   EXECUTE 'drop table if exists ' || _pgr_quote_ident(outtab);
+--   EXECUTE 'create table ' || _pgr_quote_ident(outtab) || ' as
+     P_RET = 'insert into '||_pgr_quote_ident(outtab)||' (old_id,sub_id,'||quote_ident(n_geom)||') (  with cut_locations as (
+           select l1id as lid, locus
+           from inter_loc
+           -- then generates start and end locus for each line that have to be cut buy a location point
+           UNION ALL
+           select i.l1id  as lid, 0 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           UNION ALL
+           select i.l1id  as lid, 1 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           order by lid, locus
+       ),
+       -- we generate a row_number index column for each input line
+       -- to be able to self-join the table to cut a line between two consecutive locations
+       loc_with_idx as (
+           select lid, locus, row_number() over (partition by lid order by locus) as idx
+           from cut_locations
+       )
+       -- finally, each original line is cut with consecutive locations using linear referencing functions
+       select l.' || quote_ident(n_pkey) || ', loc1.idx as sub_id, ' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus) as ' || quote_ident(n_geom) || '
+       from loc_with_idx loc1 join loc_with_idx loc2 using (lid) join ' || _pgr_quote_ident(intab) || ' l on (l.' || quote_ident(n_pkey) || ' = loc1.lid)
+       where loc2.idx = loc1.idx+1
+           -- keeps only linestring geometries
+           and geometryType(' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus)) = ''LINESTRING'') ';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+	GET DIAGNOSTICS splits = ROW_COUNT;
+        execute 'with diff as (select distinct old_id from '||_pgr_quote_ident(outtab)||' )
+                 select count(*) from diff' into touched;
+	-- here, it misses all original line that did not need to be cut by intersection points: these lines
+	-- are already clean
+	-- inserts them in the final result: all lines which gid is not in the res table.
+	EXECUTE 'insert into ' || _pgr_quote_ident(outtab) || ' (old_id , sub_id, ' || quote_ident(n_geom) || ')
+                ( with used as (select distinct old_id from '|| _pgr_quote_ident(outtab)||')
+		select ' ||  quote_ident(n_pkey) || ', 1 as sub_id, ' ||  quote_ident(n_geom) ||
+		' from '|| _pgr_quote_ident(intab) ||' where  '||quote_ident(n_pkey)||' not in (select * from used)' || rows_where || ')';
+	GET DIAGNOSTICS untouched = ROW_COUNT;
+
+	raise NOTICE '  Split Edges: %', touched;
+	raise NOTICE ' Untouched Edges: %', untouched;
+	raise NOTICE '     Total original Edges: %', touched+untouched;
+        RAISE NOTICE ' Edges generated: %', splits;
+	raise NOTICE ' Untouched Edges: %',untouched;
+	raise NOTICE '       Total New segments: %', splits+untouched;
+        RAISE NOTICE ' New Table: %', outtab;
+        RAISE NOTICE '----------------------------------';
+
+    drop table  if exists intergeom;
+    drop table if exists inter_loc;
+    RETURN 'OK';
+END;
+$BODY$
+    LANGUAGE 'plpgsql' VOLATILE STRICT COST 100;
+
+
+COMMENT ON FUNCTION pgr_nodeNetwork(text, double precision, text, text, text, text, boolean )
+ IS  'edge_table, tolerance, id:=''id'', the_geom:=''the_geom'', table_ending:=''noded'' ';
+
+
+CREATE OR REPLACE FUNCTION pgr_labelGraph(
+                edge_table text,
+                id text default 'id',
+                source text default 'source',
+                target text default 'target',
+                subgraph text default 'subgraph',
+                rows_where text default 'true'
+        )
+        RETURNS character varying AS
+$BODY$
+
+DECLARE
+        naming record;
+        schema_name text;
+        table_name text;
+        garbage text;
+        incre integer;
+        table_schema_name text;
+        query text;
+        ecnt integer;
+        sql1 text;
+        rec1 record;
+        sql2 text;
+        rec2 record;
+        rec_count record;
+        rec_single record;
+        graph_id integer;
+        gids int [];
+
+BEGIN
+        raise notice 'Processing:';
+        raise notice 'pgr_brokenGraph(''%'',''%'',''%'',''%'',''%'',''%'')', edge_table,id,source,target,subgraph,rows_where;
+        raise notice 'Performing initial checks, please hold on ...';
+
+        Raise Notice 'Starting - Checking table ...';
+        BEGIN
+                raise debug 'Checking % table existance', edge_table;
+                execute 'select * from pgr_getTableName('|| quote_literal(edge_table) ||')' into naming;
+                schema_name = naming.sname;
+                table_name = naming.tname;
+                table_schema_name = schema_name||'.'||table_name;
+                IF schema_name is null then
+                        raise notice 'no schema';
+                        return 'FAIL';
+                else
+                        if table_name is null then
+                                raise notice 'no table';
+                                return 'FAIL';
+                        end if;
+                end if;
+        END;
+        Raise Notice 'Ending - Checking table';
+
+        Raise Notice 'Starting - Checking columns';
+        BEGIN
+                raise debug 'Checking exitance of necessary columns inside % table', edge_table;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(id) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no id column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(source) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no source column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(target) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no target column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(subgraph) ||')' into naming;
+                if naming.pgr_iscolumnintable = 't' then
+                        raise notice 'subgraph column already in the table';
+                        return 'FAIL';
+                end if;
+        END;
+        Raise Notice 'Ending - Checking columns';
+
+        Raise Notice 'Starting - Checking rows_where condition';
+        BEGIN
+                raise debug 'Checking rows_where condition';
+                query='select count(*) from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where;
+                execute query into ecnt;
+                raise debug '-->Rows where condition: OK';
+                raise debug '    --> OK';
+                EXCEPTION WHEN OTHERS THEN
+                        raise notice 'Got %', SQLERRM;
+                        Raise notice 'ERROR: Condition is not correct. Please execute the following query to test your condition';
+                        Raise notice '%', query;
+                        return 'FAIL';
+        END;
+        Raise Notice 'Ending - Checking rows_where condition';
+
+        garbage := 'garbage001';
+        incre := 1;
+        Raise Notice 'Starting - Checking temporary column';
+        Begin
+                raise debug 'Checking Checking temporary columns existance';
+
+                While True
+                        Loop
+                                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(garbage) ||')' into naming;
+                                If naming.pgr_iscolumnintable = 't' THEN
+                                        incre := incre + 1;
+                                        garbage := 'garbage00'||incre||'';
+                                ELSE
+                                        EXIT;
+                                END IF;
+                        End Loop;
+        End;
+        Raise Notice 'Ending - Checking temporary column';
+
+        Raise Notice 'Starting - Calculating subgraphs';
+        BEGIN
+                --------- Add necessary columns ----------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(subgraph) || ' INTEGER DEFAULT -1';
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(garbage) || ' INTEGER DEFAULT 0';
+                graph_id := 1;
+
+                EXECUTE 'select count(*) as count from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where ||'' into rec_count;
+                if rec_count.count = 0 then
+                        RETURN 'rows_where condition generated 0 rows';
+                end if;
+
+                WHILE TRUE
+                        LOOP
+                                ---------- Assign the very first -1 row graph_id ----------
+                                EXECUTE 'SELECT ' || pgr_quote_ident(id) || ' AS gid FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1 LIMIT 1' INTO rec_single;
+                                EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec_single.gid || '';
+
+                                --------- Search other rows with that particular graph_id -----------
+                                WHILE TRUE
+                                        LOOP
+                                                EXECUTE 'SELECT COUNT(*) FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0' into rec_count;
+                                                ----------- The following if else will check those rows which already have entertained ------------
+                                                IF (rec_count.count > 0) THEN
+                                                        sql1 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0';
+                                                        FOR rec1 IN EXECUTE sql1
+                                                                LOOP
+                                                                        sql2 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| pgr_quote_ident(source) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(source) ||' = '|| rec1.target ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.target ||'';
+                                                                        FOR rec2 IN EXECUTE sql2
+                                                                                LOOP
+                                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec2.gid || '';
+                                                                                END LOOP;
+                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(garbage) || ' = 1 WHERE ' || pgr_quote_ident(id) || ' = ' || rec1.gid || '';
+                                                                END LOOP;
+                                                ELSE
+                                                        EXIT;
+                                                END IF;
+                                        END LOOP;
+
+                                ------ Following is to exit the while loop. 0 means no more -1 id.
+                                EXECUTE 'SELECT COUNT(*) AS count FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1' INTO rec_count;
+                                If (rec_count.count = 0) THEN
+                                        EXIT;
+                                ELSE
+                                        graph_id := graph_id + 1;
+                                END IF;
+                        END LOOP;
+
+                ----------- Drop garbage column ------------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' DROP COLUMN ' || pgr_quote_ident(garbage) ||'';
+                Raise Notice 'Successfully complicated calculating subgraphs';
+        END;
+        Raise Notice 'Ending - Calculating subgraphs';
+
+        RETURN 'OK';
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCostMatrix(
+    edges_sql TEXT,
+    points_sql TEXT,
+    pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_pid, a.end_pid, a.agg_cost
+        FROM _pgr_withPoints($1, $2, $3, $3, $4,  $5, TRUE, TRUE) AS a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+--  DIJKSTRA DMatrix
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCostMatrix(edges_sql TEXT, vids ANYARRAY, directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2, $2, $3, true) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+
+--  BIDIRECTIONAL DIJKSTRA Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCostMatrix(edges_sql TEXT, vids ANYARRAY, directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_astarCostMatrix(
+    edges_sql TEXT, -- XY edges sql
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2, $2, $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+--  BIDIRECTIONAL ASTAR Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdAstarCostMatrix(
+    edges_sql TEXT,
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_bdAstarCostMatrix(TEXT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCostMatrix';
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_getTableName(IN tab text,OUT sname text,OUT tname text)
+RETURNS RECORD AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getTableName: This function will no longer be soported';
+    select * from _pgr_getTableName(tab, 0, 'pgr_getTableName') into sname,tname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_getColumnName(tab text, col text)
+RETURNS text AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getColumnName: This function will no longer be soported';
+    return _pgr_getColumnName(tab,col, 0, 'pgr_getColumnName');
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    select * from _pgr_getColumnName(tab,col,0, 'pgr_isColumnInTable') into cname;
+    return  cname IS not NULL;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnIndexed(tab text, col text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnIndexed: This function will no longer be soported';
+    return  _pgr_isColumnIndexed(tab,col);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+create or replace function pgr_quote_ident(idname text)
+returns text as
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    return  _pgr_quote_ident(idname);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_versionless(v1 text, v2 text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_versionless: This function will no longer be soported';
+    return  _pgr_versionless(v1,v2);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+create or replace function pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_startPoint: This function will no longer be soported';
+    return  _pgr_startPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_endPoint: This function will no longer be soported';
+    return  _pgr_endPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_apspJohnson(edges_sql text)
+    RETURNS SETOF pgr_costResult AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function: Use pgr_johnson instead';
+      has_reverse =_pgr_parameter_check('johnson', edges_sql, false);
+      sql = edges_sql;
+      IF (has_reverse) THEN
+           RAISE NOTICE 'reverse_cost column found, removing.';
+           sql = 'SELECT source, target, cost FROM (' || edges_sql || ') a';
+      END IF;
+
+      RETURN query
+         SELECT (row_number() over () - 1)::integer as seq, start_vid::integer AS id1, end_vid::integer AS id2, agg_cost AS cost
+         FROM  pgr_johnson(sql, TRUE);
+  END
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_apspWarshall(edges_sql text, directed boolean, has_rcost boolean)
+    RETURNS SETOF pgr_costResult AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function: Use pgr_floydWarshall instead';
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+      sql := edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_reverse) THEN
+           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+         ELSE raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+         END IF;
+      END IF;
+
+      RETURN query
+         SELECT (row_number() over () -1)::integer as seq, start_vid::integer AS id1, end_vid::integer AS id2, agg_cost AS cost
+         FROM  pgr_floydWarshall(sql, directed);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_astar(edges_sql TEXT, source_id INTEGER, target_id INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated signature pgr_astar(text, integer, integer, boolean, boolean)';
+    has_reverse =_pgr_parameter_check('astar', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost, x1,y1, x2, y2 FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+    FROM pgr_astar(sql, ARRAY[$2], ARRAY[$3], directed);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    sql TEXT,
+    source_vid INTEGER,
+    target_vid INTEGER,
+    directed BOOLEAN,
+    has_reverse_cost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdAstar';
+    has_reverse =_pgr_parameter_check('astar', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdAstar(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(edges_sql TEXT, start_vid INTEGER, end_vid INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdDijkstra';
+    has_reverse =_pgr_parameter_check('dijkstra', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdDijkstra(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstraPath(
+    sql text,
+    source INTEGER,
+    targets INTEGER ARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+    RETURNS SETOF pgr_costResult3 AS
+    $BODY$
+    DECLARE
+    has_reverse BOOLEAN;
+    new_sql TEXT;
+    result pgr_costResult3;
+    tmp pgr_costResult3;
+    sseq INTEGER;
+    i INTEGER;
+    BEGIN
+        RAISE NOTICE 'Deprecated function: Use pgr_dijkstra instead.';
+        has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+        new_sql = sql;
+        IF (array_ndims(targets) != 1) THEN
+            raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+
+        IF (has_reverse != has_rcost) THEN
+            IF (has_reverse) THEN
+                new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+            ELSE
+                raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+                USING ERRCODE = 'XX000';
+            END IF;
+        END IF;
+        SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+        sseq = 0; i = 1;
+        FOR result IN
+            SELECT seq, a.end_vid::INTEGER AS id1, a.node::INTEGER AS i2, a.edge::INTEGER AS id3, cost
+            FROM pgr_dijkstra(new_sql, source, targets, directed) a ORDER BY a.end_vid, seq LOOP
+            WHILE (result.id1 != targets[i]) LOOP
+                tmp.seq = sseq;
+                tmp.id1 = targets[i];
+                IF (targets[i] = source) THEN
+                    tmp.id2 = source;
+                    tmp.cost =0;
+                ELSE
+                    tmp.id2 = 0;
+                    tmp.cost = -1;
+                END IF;
+                tmp.id3 = -1;
+                RETURN next tmp;
+                i = i + 1;
+                sseq = sseq + 1;
+            END LOOP;
+        IF (result.id1 = targets[i] AND result.id3 != -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+        IF (result.id1 = targets[i] AND result.id3 = -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.id2 = source;
+            tmp.cost = 0;
+        ELSE
+            tmp.id2 = 0;
+            tmp.cost = -1;
+        END IF;
+        tmp.id3 = -1;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstracost(
+    sql text,
+    source INTEGER,
+    targets INTEGER array,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+result pgr_costResult;
+tmp pgr_costResult;
+sseq INTEGER;
+i INTEGER;
+BEGIN
+    RAISE NOTICE 'Deprecated function. Use pgr_dijkstraCost instead.';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    new_sql = sql;
+    IF (array_ndims(targets) != 1) THEN
+        raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+        USING ERRCODE = 'XX000';
+    END IF;
+
+
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+    sseq = 0; i = 1;
+    FOR result IN
+        SELECT ((row_number() over()) -1)::INTEGER, a.start_vid::INTEGER, a.end_vid::INTEGER, agg_cost
+        FROM pgr_dijkstraCost(new_sql, source, targets, directed) a ORDER BY end_vid LOOP
+        WHILE (result.id2 != targets[i]) LOOP
+            tmp.seq = sseq;
+            tmp.id1 = source;
+            tmp.id2 = targets[i];
+            IF (targets[i] = source) THEN
+                tmp.cost = 0;
+            ELSE
+                tmp.cost = -1;
+            END IF;
+            RETURN next tmp;
+            i = i + 1;
+            sseq = sseq + 1;
+        END LOOP;
+        IF (result.id2 = targets[i]) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = source;
+        tmp.id2 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.cost = 0;
+        ELSE
+            tmp.cost = -1;
+        END IF;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+create or replace function pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    returns integer as
+$body$
+
+declare
+    rr record;
+    pct float;
+    debuglevel text;
+
+begin
+    -- find the closest edge within tol distance
+    execute 'select * from ' || _pgr_quote_ident(edges) ||
+            ' where st_dwithin(''' || pnt::text ||
+            '''::geometry, the_geom, ' || tol || ') order by st_distance(''' || pnt::text ||
+            '''::geometry, the_geom) asc limit 1' into rr;
+
+    if rr.the_geom is not null then
+        -- deal with MULTILINESTRINGS
+        if geometrytype(rr.the_geom)='MULTILINESTRING' THEN
+            rr.the_geom := ST_GeometryN(rr.the_geom, 1);
+        end if;
+
+        -- project the point onto the linestring
+        execute 'show client_min_messages' into debuglevel;
+        SET client_min_messages='ERROR';
+        pct := st_line_locate_point(rr.the_geom, pnt);
+        execute 'set client_min_messages  to '|| debuglevel;
+
+        -- return the node we are closer to
+        if pct < 0.5 then
+            return rr.source;
+        else
+            return rr.target;
+        end if;
+    else
+        -- return a failure to find an edge within tol distance
+        return -1;
+    end if;
+end;
+$body$
+  language plpgsql volatile
+  cost 5;
+
+
+----------------------------------------------------------------------------
+
+create or replace function pgr_flipedges(ga geometry[])
+    returns geometry[] as
+$body$
+
+declare
+    nn integer;
+    i integer;
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_flipEdges';
+    -- get the count of edges, and return if only one edge
+    nn := array_length(ga, 1);
+    if nn=1 then
+        return ga;
+    end if;
+
+    -- determine if first needs to be flipped
+    g := _pgr_startpoint(ga[1]);
+
+    -- if the start of the first is connected to the second then it needs to be flipped
+    if _pgr_startpoint(ga[2])=g or _pgr_endpoint(ga[2])=g then
+        ga[1] := st_reverse(ga[1]);
+    end if;
+    g := _pgr_endpoint(ga[1]);
+
+    -- now if  the end of the last edge matchs the end of the current edge we need to flip it
+    for i in 2 .. nn loop
+        if _pgr_endpoint(ga[i])=g then
+            ga[i] := st_reverse(ga[i]);
+        end if;
+        -- save the end of this edge into the last end for the next cycle
+        g := _pgr_endpoint(ga[i]);
+    end loop;
+
+    return ga;
+end;
+$body$
+    language plpgsql immutable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_texttopoints(pnts text, srid integer DEFAULT(4326))
+    returns geometry[] as
+$body$
+
+declare
+    a text[];
+    t text;
+    p geometry;
+    g geometry[];
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_textToPoints';
+    -- convert commas to space and split on ';'
+    a := string_to_array(replace(pnts, ',', ' '), ';');
+    -- convert each 'x y' into a point geometry and concattenate into a new array
+    for t in select unnest(a) loop
+        p := st_pointfromtext('POINT(' || t || ')', srid);
+        g := g || p;
+    end loop;
+
+    return g;
+end;
+$body$
+    language plpgsql immutable;
+
+-----------------------------------------------------------------------
+
+create or replace function pgr_pointstovids(pnts geometry[], edges text, tol float8 DEFAULT(0.01))
+    returns integer[] as
+$body$
+
+declare
+    v integer[];
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_pointsToVids';
+    -- cycle through each point and locate the nearest edge and vertex on that edge
+    for g in select unnest(pnts) loop
+        v := v || pgr_pointtoedgenode(edges, g, tol);
+    end loop;
+
+    return v;
+end;
+$body$
+    language plpgsql stable;
+
+
+create or replace function pgr_pointstodmatrix(pnts geometry[], mode integer default (0), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+
+declare
+    r record;
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_pointsToDMatrix';
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    -- create an id for each point in the array and unnest it into a table nodes in the with clause
+    for r in with nodes as (select row_number() over()::integer as id, p from (select unnest(pnts) as p) as foo)
+        -- compute a row of distances
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j,
+                case when mode=0
+                    then st_distance(a.p, b.p)
+                    else st_distance_sphere(a.p, b.p)
+                end as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i loop
+
+        -- you must concat an array[array[]] to make dmatrix[][]
+        -- concat the row of distances to the dmatrix
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+end;
+$body$
+    language plpgsql stable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_vidstodmatrix(IN vids integer[], IN pnts geometry[], IN edges text, tol float8 DEFAULT(0.1), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+
+declare
+    i integer;
+    j integer;
+    nn integer;
+    rr record;
+    bbox geometry;
+    t float8[];
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    -- check if the input arrays has any -1 values, maybe this whould be a raise exception
+    if vids @> ARRAY[-1] then
+    raise notice 'Some vids are undefined (-1)!';
+    dmatrix := null;
+    ids := null;
+    return;
+    end if;
+
+    ids := vids;
+
+    -- get the count of nodes
+    nn := array_length(vids,1);
+
+    -- zero out a dummy row
+    for i in 1 .. nn loop
+        t := t || 0.0::float8;
+    end loop;
+
+    -- using the dummy row, zero out the whole matrix
+    for i in 1 .. nn loop
+    dmatrix := dmatrix || ARRAY[t];
+    end loop;
+
+    for i in 1 .. nn-1 loop
+        j := i;
+        -- compute the bbox for the point needed for this row
+        select st_expand(st_collect(pnts[id]), tol) into bbox
+          from (select generate_series as id from generate_series(i, nn)) as foo;
+
+        -- compute kdijkstra() for this row
+        for rr in execute 'select * from pgr_dijkstracost($1, $2, $3, false)'
+                  using 'select id, source, target, cost from ' || edges ||
+                        ' where the_geom && ''' || bbox::text || '''::geometry'::text, vids[i], vids[i+1:nn] loop
+
+            -- TODO need to check that all node were reachable from source
+            -- I think unreachable paths between nodes returns cost=-1.0
+
+            -- populate the matrix with the cost values, remember this is symmetric
+            j := j + 1;
+            -- raise notice 'cost(%,%)=%', i, j, rr.agg_cost;
+            dmatrix[i][j] := rr.agg_cost;
+            dmatrix[j][i] := rr.agg_cost;
+        end loop;
+    end loop;
+
+end;
+$body$
+    language plpgsql stable cost 200;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_vidsToDMatrix(sql TEXT, vids  INTEGER[], dir BOOLEAN, has_rcost BOOLEAN, want_symmetric BOOLEAN)
+RETURNS float8[] AS
+$BODY$
+DECLARE
+directed BOOLEAN;
+has_reverse BOOLEAN;
+edges_sql TEXT;
+dmatrix_row float8[];
+dmatrix float8[];
+cell RECORD;
+unique_vids INTEGER[];
+total BIGINT;
+from_v BIGINT;
+to_v BIGINT;
+BEGIN
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql = sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    unique_vids :=  ARRAY(SELECT DISTINCT UNNEST(vids) ORDER BY 1);
+
+    IF want_symmetric THEN
+        directed = false;
+    ELSE
+        directed = dir;
+    END IF;
+
+    total := array_length(unique_vids, 1);
+
+    -- initializing dmatrix
+    FOR i in 1 .. total LOOP
+        dmatrix_row := dmatrix_row || '+Infinity'::float8;
+    END LOOP;
+    FOR i in 1 .. total LOOP
+    dmatrix := dmatrix || ARRAY[dmatrix_row];
+    dmatrix[i][i] = 0;
+    END LOOP;
+
+    CREATE TEMP TABLE __x___y____temp AS
+        WITH result AS
+            (SELECT unnest(unique_vids) AS vid)
+        SELECT row_number() OVER() AS idx, vid FROM result;
+
+    FOR cell IN SELECT * FROM pgr_dijkstraCostMatrix(sql, unique_vids, directed) LOOP
+        SELECT idx INTO from_v FROM __x___y____temp WHERE vid =  cell.start_vid;
+        SELECT idx INTO to_v FROM __x___y____temp WHERE vid =  cell.end_vid;
+
+        dmatrix[from_v][to_v] = cell.agg_cost;
+        dmatrix[to_v][from_v] = cell.agg_cost;
+    END LOOP;
+
+    DROP TABLE IF EXISTS __x___y____temp;
+    RETURN dmatrix;
+
+    EXCEPTION WHEN others THEN
+       DROP TABLE IF EXISTS __x___y____temp;
+       raise exception '% %', SQLERRM, SQLSTATE;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100;
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated function';
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_dijkstra(sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_dijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN) IS 'pgr_dijkstra(Deprecated signature)';
+
+
+
+
+
+-- OLD SIGNATURE
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(edges_sql text, source BIGINT, distance FLOAT, directed BOOLEAN, has_rcost BOOLEAN)
+  RETURNS SETOF pgr_costresult AS
+  $BODY$
+  DECLARE
+  has_reverse BOOLEAN;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function';
+
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, FALSE);
+
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_reverse) THEN
+             -- the user says it doesn't have reverse cost but its false
+             -- removing from query
+             RAISE NOTICE 'Contradiction found: has_rcost set to false but reverse_cost column found';
+             sql = 'SELECT id, source, target, cost, -1 as reverse_cost FROM (' || edges_sql || ') __q ';
+         ELSE
+             -- the user says it has reverse cost but its false
+             -- can't do anything
+             RAISE EXCEPTION 'has_rcost set to true but reverse_cost not found';
+         END IF;
+      END IF;
+
+      RETURN query SELECT seq - 1 AS seq, node::integer AS id1, edge::integer AS id2, agg_cost AS cost
+                FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maximumcardinalitymatching(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
+
+
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+--INTERNAL FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+
+------------------------
+-- deprecated signatures
+-----------------------
+
+COMMENT ON FUNCTION pgr_astar(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_astar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdAstar( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdAstar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdDijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdDijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_dijkstra(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_dijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_drivingDistance(text,  BIGINT,  FLOAT8,  BOOLEAN,  BOOLEAN)
+    IS 'pgr_drivingDistance(Deprecated signature)';
+
+------------------------
+-- Renamed /deprecated
+-----------------------
+COMMENT ON FUNCTION pgr_apspJohnson(TEXT)
+    IS 'pgr_apspJohnson(Renamed function) use pgr_Johnson instead';
+
+COMMENT ON FUNCTION pgr_apspWarshall(text, boolean, boolean)
+    IS 'pgr_apspWarshall(Renamed function) use pgr_floydWarshall instead';
+
+COMMENT ON FUNCTION pgr_kdijkstraPath( text, INTEGER, INTEGER ARRAY, BOOLEAN, BOOLEAN)
+    IS 'pgr_kdijkstraPath(Renamed function) use pgr_dijkstra instead';
+
+COMMENT ON FUNCTION pgr_kdijkstracost( text, INTEGER, INTEGER array, BOOLEAN, BOOLEAN)
+    IS 'pgr_kDijkstraCost(Renamed function) use pgr_dijkstraCost instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+
+
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+
+
+COMMENT ON FUNCTION pgr_gsoc_vrppdtw( text, INTEGER, INTEGER)
+    IS 'pgr_gsoc_vrppdtw(Renamed function) use pgr_pickDeliverEuclidean instead';
+
+------------------------
+-- Deprecated functions
+-----------------------
+
+COMMENT ON FUNCTION pgr_flipedges(geometry[])
+    IS 'pgr_flipedges(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_texttopoints(text,  integer)
+    IS 'pgr_texttopoints(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstovids(pnts geometry[], edges text, tol float8)
+    IS 'pgr_pointstovids(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    IS 'pgr_pointtoedgenode(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstodmatrix(geometry[], integer)
+    IS 'pgr_pointstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidstodmatrix( integer[],  geometry[],  text, float8)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidsToDMatrix(TEXT,  INTEGER[], BOOLEAN, BOOLEAN, BOOLEAN)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+
+
+
+COMMENT ON FUNCTION pgr_getTableName(IN tab text)
+    IS 'pgr_getTableName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_getColumnName(tab text, col text)
+    IS 'pgr_getColumnName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnInTable(tab text, col text)
+    IS 'pgr_isColumnInTable(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnIndexed(tab text, col text)
+    IS 'pgr_isColumnIndexed(Deprecated function)';
+
+
+COMMENT ON FUNCTION pgr_quote_ident(idname text)
+    IS 'pgr_quote_ident(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_versionless(v1 text, v2 text)
+    IS 'pgr_versionless(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_startPoint(g geometry)
+    IS 'pgr_startPoint(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_endPoint(g geometry)
+    IS 'pgr_endPoint(Deprecated function)';
+
+
diff --git a/tools/sql-update-scripts/pgrouting--2.3.2--2.5.0.sql b/tools/sql-update-scripts/pgrouting--2.3.2--2.5.0.sql
new file mode 100644
index 0000000..659505d
--- /dev/null
+++ b/tools/sql-update-scripts/pgrouting--2.3.2--2.5.0.sql
@@ -0,0 +1,6561 @@
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-- pgRouting extension upgrade from 2.3.2 to 2.5.0
+-- generated by tools/build-extension-update-files
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+\echo Use "ALTER extension pgrouting update to '2.5.0'" to load this file. \quit
+
+
+-------------------------------------
+-- remove functions no longer in the 2.5.0 extension
+-------------------------------------
+
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_astar(text,bigint,bigint,boolean,integer,double precision,double precision,boolean);
+DROP FUNCTION IF EXISTS _pgr_astar(text,bigint,bigint,boolean,integer,double precision,double precision,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,anyarray,anyarray,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,anyarray,anyarray,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,anyarray,bigint,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,anyarray,bigint,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,bigint,anyarray,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,bigint,anyarray,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,bigint,bigint,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,bigint,bigint,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_drivingdistance(text,anyarray,double precision,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_drivingdistance(text,anyarray,double precision,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_drivingdistance(text,bigint,double precision,boolean);
+DROP FUNCTION IF EXISTS _pgr_drivingdistance(text,bigint,double precision,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_maxflow(text,anyarray,anyarray,text);
+DROP FUNCTION IF EXISTS _pgr_maxflow(text,anyarray,anyarray,text);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_maxflow(text,anyarray,bigint,text);
+DROP FUNCTION IF EXISTS _pgr_maxflow(text,anyarray,bigint,text);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_maxflow(text,bigint,anyarray,text);
+DROP FUNCTION IF EXISTS _pgr_maxflow(text,bigint,anyarray,text);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_maxflow(text,bigint,bigint,text);
+DROP FUNCTION IF EXISTS _pgr_maxflow(text,bigint,bigint,text);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_pickdeliver(text,integer,double precision,double precision,integer);
+DROP FUNCTION IF EXISTS _pgr_pickdeliver(text,integer,double precision,double precision,integer);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,anyarray,anyarray,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,anyarray,anyarray,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,anyarray,bigint,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,anyarray,bigint,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,bigint,anyarray,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,bigint,anyarray,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,bigint,bigint,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,bigint,bigint,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_fakecontraction(text,integer[]);
+DROP FUNCTION IF EXISTS pgr_fakecontraction(text,integer[]);
+
+
+------------------------------------------
+--    New functions:  2.0
+-- Signature change:  2.4
+--       Deprecated:  2.4
+------------------------------------------
+-- pgr_bddijkstra
+-- 2.3.2: {      sql, source_vid, target_vid, directed, has_reverse_cost}   
+-- 2.5.0: {edges_sql,  start_vid,    end_vid, directed, has_rcost}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vid","end_vid","directed","has_rcost"}'
+WHERE proname = 'pgr_bddijkstra'
+    AND proargnames = '{"sql","source_vid","target_vid","directed","has_reverse_cost"}';
+
+
+------------------------------------------
+--       New functions:  2.1
+--    Signature change:  2.4
+------------------------------------------
+-- 2.3.2: {edges_sql,start_v,  distance,directed,seq,node,edge,cost,agg_cost}
+-- 2.5.0: {edges_sql,start_vid,distance,directed,seq,node,edge,cost,agg_cost}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vid","distance","directed","seq","node","edge","cost","agg_cost"}'
+WHERE proname = 'pgr_drivingdistance'
+    AND proargnames = '{"edges_sql","start_v","distance","directed","seq","node","edge","cost","agg_cost"}';
+
+
+------------------------------------------
+--       New functions:  2.1
+--    Signature change:  2.4
+------------------------------------------
+-- 2.3.2: {sql,      start_v,   distance,directed,equicost,seq,from_v,node,edge,cost,agg_cost}
+-- 2.5.0: {edges_sql,start_vids,distance,directed,equicost,seq,from_v,node,edge,cost,agg_cost}
+
+UPDATE pg_proc SET
+proargnames = '{"edges_sql","start_vids","distance","directed","equicost","seq","from_v","node","edge","cost","agg_cost"}'
+WHERE proname = 'pgr_drivingdistance'
+    AND proargnames = '{"sql","start_v","distance","directed","equicost","seq","from_v","node","edge","cost","agg_cost"}';
+
+
+------------------------------------------
+--       New functions:  2.3
+--    Signature change:  2.5
+-- Inner query changed:  2.5
+------------------------------------------
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_edgedisjointpaths(text,bigint,bigint,boolean);
+DROP FUNCTION IF EXISTS pgr_edgedisjointpaths(text,bigint,bigint,boolean);
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_edgedisjointpaths(text,bigint,anyarray,boolean);
+DROP FUNCTION IF EXISTS pgr_edgedisjointpaths(text,bigint,anyarray,boolean);
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_edgedisjointpaths(text,anyarray,bigint,boolean);
+DROP FUNCTION IF EXISTS pgr_edgedisjointpaths(text,anyarray,bigint,boolean);
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_edgedisjointpaths(text,anyarray,anyarray,boolean);
+DROP FUNCTION IF EXISTS pgr_edgedisjointpaths(text,anyarray,anyarray,boolean);
+
+
+ALTER EXTENSION pgrouting DROP TYPE contraction_vertex;
+DROP TYPE contraction_vertex;
+
+
+
+
+
+
+
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+--- pgRouting provides geospatial routing functionality.
+--- http://pgrouting.org
+--- copyright
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+---
+--- This is free software; you can redistribute and/or modify it:
+--- the terms of the GNU General Public Licence. See the COPYING file.
+--- the terms of the MIT-X Licence. See the COPYING file.
+---
+--- The following functions have MIT-X licence:
+---     pgr_version()
+---     pgr_tsp(matrix float8[][], startpt integer, endpt integer DEFAULT -1, OUT seq integer, OUT id integer)
+---     _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+---     pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
+---
+---
+--- All other functions are under GNU General Public Licence.
+---
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+--
+-- WARNING: Any change in this file must be evaluated for compatibility.
+--          Changes cleanly handled by postgis_upgrade.sql are fine,
+--          other changes will require a bump in Major version.
+--          Currently only function replaceble by CREATE OR REPLACE
+--          are cleanly handled.
+--
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+
+--  pgRouting 2.0 types
+
+
+
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_version()
+RETURNS TABLE(
+        "version" varchar,
+        tag varchar,
+        hash varchar,
+        branch varchar,
+        boost varchar
+    ) AS
+$BODY$
+    SELECT '2.5.0'::varchar AS version,
+        'v2.5.0'::varchar AS tag,
+        ''::varchar AS hash,
+        ''::varchar AS branch,
+        '1.54.0'::varchar AS boost;
+$BODY$
+LANGUAGE sql IMMUTABLE;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getTableName(IN tab text, IN reportErrs int default 0, IN fnName text default '_pgr_getTableName', OUT sname text,OUT tname text)
+  RETURNS RECORD AS
+$$
+DECLARE
+        naming record;
+        i integer;
+        query text;
+        sn text; -- schema name
+        tn text; -- table name
+        ttype text; --table type for future use
+        err boolean;
+        debuglevel text;
+        var_types text[] = ARRAY['BASE TABLE', 'VIEW'];
+BEGIN
+
+    execute 'show client_min_messages' into debuglevel;
+
+
+    perform _pgr_msg( 0, fnName, 'Checking table ' || tab || ' exists');
+    --RAISE DEBUG 'Checking % exists',tab;
+
+    i := strpos(tab,'.');
+    IF (i <> 0) THEN
+        sn := split_part(tab, '.',1);
+        tn := split_part(tab, '.',2);
+    ELSE
+        sn := current_schema;
+        tn := tab;
+    END IF;
+
+
+   SELECT schema_name INTO sname
+   FROM information_schema.schemata WHERE schema_name = sn;
+
+    IF sname IS NOT NULL THEN -- found schema (as is)
+       SELECT table_name, table_type INTO tname, ttype
+       FROM information_schema.tables
+       WHERE
+                table_type = ANY(var_types) and
+                table_schema = sname and
+                table_name = tn ;
+        IF tname is NULL THEN
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  = ANY(var_types) and
+                table_schema = sname and
+                table_name = lower(tn) ORDER BY table_name;
+        END IF;
+    END IF;
+    IF sname is NULL or tname is NULL THEN --schema not found or table not found
+        SELECT schema_name INTO sname
+        FROM information_schema.schemata
+        WHERE schema_name = lower(sn) ;
+
+        IF sname IS NOT NULL THEN -- found schema (with lower caps)
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  =  ANY(var_types) and
+                table_schema = sname and
+                table_name= tn ;
+
+           IF tname IS NULL THEN
+                SELECT table_name, table_type INTO tname, ttype
+                FROM information_schema.tables
+                WHERE
+                    table_type  =  ANY(var_types) and
+                    table_schema = sname and
+                    table_name= lower(tn) ;
+           END IF;
+        END IF;
+    END IF;
+   err = (sname IS NULL OR tname IS NULL);
+   perform _pgr_onError(err, reportErrs, fnName, 'Table ' || tab ||' not found',' Check your table name', 'Table '|| tab || ' found');
+
+END;
+$$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(sname text, tname text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(col) into cname;
+
+    IF cname is null  THEN
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(lower(col))  into cname;
+    END if;
+
+    err = cname is null;
+
+    perform _pgr_onError(err, reportErrs, fnName,  'Column '|| col ||' not found', ' Check your column name','Column '|| col || ' found');
+    RETURN cname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(tab text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+
+    select * into cname from _pgr_getColumnName(sname,tname,col,reportErrs, fnName);
+    RETURN cname;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    select * from _pgr_getColumnName(tab,col,0, '_pgr_isColumnInTable') into cname;
+    return cname is not null;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(sname text, tname text, cname text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    pkey text;
+BEGIN
+    SELECT
+          pg_attribute.attname into pkey
+         --  format_type(pg_attribute.atttypid, pg_attribute.atttypmod)
+          FROM pg_index, pg_class, pg_attribute
+          WHERE
+                  pg_class.oid = _pgr_quote_ident(sname||'.'||tname)::regclass AND
+                  indrelid = pg_class.oid AND
+                  pg_attribute.attrelid = pg_class.oid AND
+                  pg_attribute.attnum = any(pg_index.indkey)
+                  AND indisprimary;
+
+    IF pkey=cname then
+          RETURN TRUE;
+    END IF;
+
+    SELECT a.index_name,
+           b.attname,
+           b.attnum,
+           a.indisunique,
+           a.indisprimary
+      INTO rec
+      FROM ( SELECT a.indrelid,
+                    a.indisunique,
+                    a.indisprimary,
+                    c.relname index_name,
+                    unnest(a.indkey) index_num
+               FROM pg_index a,
+                    pg_class b,
+                    pg_class c,
+                    pg_namespace d
+              WHERE b.relname=tname
+                AND b.relnamespace=d.oid
+                AND d.nspname=sname
+                AND b.oid=a.indrelid
+                AND a.indexrelid=c.oid
+           ) a,
+           pg_attribute b
+     WHERE a.indrelid = b.attrelid
+       AND a.index_num = b.attnum
+       AND b.attname = cname
+  ORDER BY a.index_name,
+           a.index_num;
+
+  RETURN FOUND;
+  EXCEPTION WHEN OTHERS THEN
+    perform _pgr_onError( true, reportErrs, fnName,
+    'Error when checking for the postgres system attributes', SQLERR);
+    RETURN FALSE;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(tab text, col text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    sname text;
+    tname text;
+    cname text;
+    pkey text;
+    value boolean;
+BEGIN
+    SELECT * into naming FROM _pgr_getTableName(tab, 0, fnName);
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    SELECT * into cname from _pgr_getColumnName(sname, tname, col, 0, fnName) ;
+    IF cname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    select * into value  from _pgr_isColumnIndexed(sname, tname, cname, reportErrs, fnName);
+    return value;
+END
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+create or replace function _pgr_quote_ident(idname text)
+    returns text as
+$body$
+declare
+    t text[];
+    pgver text;
+
+begin
+    pgver := regexp_replace(version(), E'^PostgreSQL ([^ ]+)[ ,].*$', E'\\1');
+
+    if _pgr_versionless(pgver, '9.2') then
+        select into t array_agg(quote_ident(term)) from
+            (select nullif(unnest, '') as term
+               from unnest(string_to_array(idname, '.'))) as foo;
+    else
+        select into t array_agg(quote_ident(term)) from
+            (select unnest(string_to_array(idname, '.', '')) as term) as foo;
+    end if;
+    return array_to_string(t, '.');
+end;
+$body$
+language plpgsql immutable;
+
+
+CREATE OR REPLACE FUNCTION _pgr_versionless(v1 text, v2 text)
+  RETURNS boolean AS
+$BODY$
+
+
+declare
+    v1a text[];
+    v2a text[];
+    nv1 integer;
+    nv2 integer;
+    ne1 integer;
+    ne2 integer;
+
+begin
+    -- separate components into an array, like:
+    -- '2.1.0-beta3dev'  =>  {2,1,0,beta3dev}
+    v1a := regexp_matches(v1, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+    v2a := regexp_matches(v2, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+
+    -- convert modifiers to numbers for comparison
+    -- we do not delineate between alpha1, alpha2, alpha3, etc
+    ne1 := case when v1a[4] is null or v1a[4]='' then 5
+                when v1a[4] ilike 'rc%' then 4
+                when v1a[4] ilike 'beta%' then 3
+                when v1a[4] ilike 'alpha%' then 2
+                when v1a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    ne2 := case when v2a[4] is null or v2a[4]='' then 5
+                when v2a[4] ilike 'rc%' then 4
+                when v2a[4] ilike 'beta%' then 3
+                when v2a[4] ilike 'alpha%' then 2
+                when v2a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    nv1 := v1a[1]::integer * 10000 +
+           coalesce(v1a[2], '0')::integer * 1000 +
+           coalesce(v1a[3], '0')::integer *  100 + ne1;
+    nv2 := v2a[1]::integer * 10000 +
+           coalesce(v2a[2], '0')::integer * 1000 +
+           coalesce(v2a[3], '0')::integer *  100 + ne2;
+
+    --raise notice 'nv1: %, nv2: %, ne1: %, ne2: %', nv1, nv2, ne1, ne2;
+
+    return nv1 < nv2;
+end;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+create or replace function _pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_startpoint(st_geometryn(g,1));
+    else
+        return st_startpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function _pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_endpoint(st_geometryn(g,1));
+    else
+        return st_endpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_parameter_check(fn text, sql text, big boolean default false)
+  RETURNS bool AS
+  $BODY$
+
+  DECLARE
+  rec record;
+  rec1 record;
+  has_rcost boolean;
+  safesql text;
+  BEGIN
+    IF (big) THEN
+       RAISE EXCEPTION 'This function is for old style functions';
+    END IF;
+
+    -- checking query is executable
+    BEGIN
+      safesql =  'select * from ('||sql||' ) AS __a__ limit 1';
+      execute safesql into rec;
+      EXCEPTION
+        WHEN OTHERS THEN
+            RAISE EXCEPTION 'Could not execute query please verify syntax of: '
+              USING HINT = sql;
+    END;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('dijkstra','astar') THEN
+        BEGIN
+          execute 'select id,source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: id, source, target, cost';
+        END;
+        execute 'select pg_typeof(id)::text as id_type, pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.id_type in ('integer'::text))
+              AND (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Error, columns ''source'', ''target'' must be of type int4, ''cost'' must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    IF fn IN ('astar') THEN
+        BEGIN
+          execute 'select x1,y1,x2,y2  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: x1,y1, x2,y2';
+        END;
+        execute 'select pg_typeof(x1)::text as x1_type, pg_typeof(y1)::text as y1_type, pg_typeof(x2)::text as x2_type, pg_typeof(y2)::text as y2_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.x1_type = 'double precision'::text)
+              AND (rec.y1_type = 'double precision'::text)
+              AND (rec.x2_type = 'double precision'::text)
+              AND (rec.y2_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Columns: x1, y1, x2, y2 must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('johnson') THEN
+        BEGIN
+          execute 'select source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING HINT = 'Please veryfy the column names: id, source, target, cost',
+                         ERRCODE = 'XX000';
+        END;
+
+        execute 'select pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Support for source,target columns only of type: integer. Support for Cost: double precision'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    -- Checking the data types of the optional reverse_cost";
+    has_rcost := false;
+    IF fn IN ('johnson','dijkstra','astar') THEN
+      BEGIN
+        execute 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||safesql||' ) AS __b__ limit 1 ' into rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+            return has_rcost;
+      END;
+      if (has_rcost) then
+        IF (big) then
+           IF  not (rec1.rev_type in ('bigint'::text, 'integer'::text, 'smallint'::text, 'double precision'::text, 'real'::text)) then
+             RAISE EXCEPTION 'Illegar type in optional parameter reverse_cost.'
+             USING ERRCODE = 'XX000';
+           END IF;
+        ELSE -- Version 2.0.0 is more restrictive
+           IF (rec1.rev_type != 'double precision') then
+             RAISE EXCEPTION 'Illegal type in optional parameter reverse_cost, must be of type float8'
+             USING ERRCODE = 'XX000';
+           END IF;
+        END IF;
+      end if;
+      return true;
+    END IF;
+    -- just for keeps
+    return true;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_onError(
+  IN errCond boolean,  -- true there is an error
+  IN reportErrs int,   -- 0, 1 or 2
+  IN fnName text,      -- function name that generates the error
+  IN msgerr text,      -- error message
+  IN hinto text default 'No hint', -- hint help
+  IN msgok text default 'OK')      -- message if everything is ok
+  RETURNS void AS
+$BODY$
+BEGIN
+  if errCond=true then
+     if reportErrs=0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+     else
+       if reportErrs = 2 then
+         raise notice '----> PGR ERROR in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+         raise raise_exception;
+       else
+         raise notice '----> PGR NOTICE in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+       end if;
+     end if;
+  else
+       raise debug 'PGR ----> %: %',fnName,msgok;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_msg(IN msgKind int, IN fnName text, IN msg text default '---->OK')
+  RETURNS void AS
+$BODY$
+BEGIN
+  if msgKind = 0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msg;
+  else
+       raise notice '----> PGR NOTICE in %: %',fnName,msg;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(sname text, tname text, cname text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    EXECUTE 'select data_type  from information_schema.columns '
+            || 'where table_name = '||quote_literal(tname)
+                 || ' and table_schema=' || quote_literal(sname)
+                 || ' and column_name='||quote_literal(cname)
+       into ctype;
+    err = ctype is null;
+    perform _pgr_onError(err, reportErrs, fnName,
+            'Type of Column '|| cname ||' not found',
+            'Check your column name',
+            'OK: Type of Column '|| cname || ' is ' || ctype);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(tab text, col text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+    select * into cname from _pgr_getColumnName(tab,col,reportErrs, fnName) ;
+    select * into ctype from _pgr_getColumnType(sname,tname,cname,reportErrs, fnName);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_get_statement(o_sql text)
+RETURNS text AS
+$BODY$
+DECLARE
+sql TEXT;
+BEGIN
+    EXECUTE 'SELECT statement FROM pg_prepared_statements WHERE name ='  || quote_literal(o_sql) || ' limit 1 ' INTO sql;
+    IF (sql IS NULL) THEN
+      RETURN   o_sql;
+    ELSE
+      RETURN  regexp_replace(sql, '(.)* as ', '', 'i');
+    END IF;
+END
+$BODY$
+LANGUAGE plpgsql STABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_checkVertTab(vertname text, columnsArr  text[],
+    IN reportErrs int default 1, IN fnName text default '_pgr_checkVertTab',
+    OUT sname text,OUT vname text)
+RETURNS record AS
+$BODY$
+DECLARE
+    cname text;
+    colname text;
+    naming record;
+    debuglevel text;
+    err  boolean;
+    msgKind int;
+
+BEGIN
+    msgKind = 0; -- debug_
+    execute 'show client_min_messages' into debuglevel;
+
+    perform _pgr_msg(msgKind, fnName, 'Checking table ' || vertname || ' exists');
+       select * from _pgr_getTableName(vertname, 0, fnName) into naming;
+       sname=naming.sname;
+       vname=naming.tname;
+       err = sname is NULL or vname is NULL;
+    perform _pgr_onError( err, 2, fnName,
+          'Vertex Table: ' || vertname || ' not found',
+          'Please create ' || vertname || ' using  _pgr_createTopology() or pgr_createVerticesTable()',
+          'Vertex Table: ' || vertname || ' found');
+
+
+    perform _pgr_msg(msgKind, fnName, 'Checking columns of ' || vertname);
+      FOREACH cname IN ARRAY columnsArr
+      loop
+         select _pgr_getcolumnName(vertname, cname, 0, fnName) into colname;
+         if colname is null then
+           perform _pgr_msg(msgKind, fnName, 'Adding column ' || cname || ' in ' || vertname);
+           set client_min_messages  to warning;
+                execute 'ALTER TABLE '||_pgr_quote_ident(vertname)||' ADD COLUMN '||cname|| ' integer';
+           execute 'set client_min_messages  to '|| debuglevel;
+           perform _pgr_msg(msgKind, fnName);
+         end if;
+      end loop;
+    perform _pgr_msg(msgKind, fnName, 'Finished checking columns of ' || vertname);
+
+    perform _pgr_createIndex(vertname , 'id' , 'btree', reportErrs, fnName);
+ END
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(
+    sname text, tname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    debuglevel text;
+    naming record;
+    tabname text;
+    query text;
+    msgKind int;
+BEGIN
+  msgKind = 0; -- debug_
+
+  execute 'show client_min_messages' into debuglevel;
+  tabname=_pgr_quote_ident(sname||'.'||tname);
+  perform _pgr_msg(msgKind, fnName, 'Checking ' || colname || ' column in ' || tabname || ' is indexed');
+    IF (_pgr_isColumnIndexed(sname,tname,colname, 0, fnName)) then
+       perform _pgr_msg(msgKind, fnName);
+    else
+      if indext = 'gist' then
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using gist('||quote_ident(colname)||')';
+      else
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using btree('||quote_ident(colname)||')';
+      end if;
+      perform _pgr_msg(msgKind, fnName, 'Adding index ' || tabname || '_' ||  colname || '_idx');
+      perform _pgr_msg(msgKind, fnName, ' Using ' ||  query);
+      set client_min_messages  to warning;
+      BEGIN
+        execute query;
+        EXCEPTION WHEN others THEN
+          perform _pgr_onError( true, reportErrs, fnName,
+            'Could not create index on:' || colname, SQLERRM);
+      END;
+      execute 'set client_min_messages  to '|| debuglevel;
+      perform _pgr_msg(msgKind, fnName);
+    END IF;
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(tabname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    naming record;
+    sname text;
+    tname text;
+
+BEGIN
+    select * from _pgr_getTableName(tabname, 2, fnName)  into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    execute _pgr_createIndex(sname, tname, colname, indext, reportErrs, fnName);
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pointToId(
+    point geometry,
+    tolerance double precision,
+    vertname text,
+    srid integer)
+
+  RETURNS bigint AS
+$BODY$
+DECLARE
+    rec record;
+    pid bigint;
+
+BEGIN
+    EXECUTE 'SELECT ST_Distance(
+        the_geom,
+        ST_GeomFromText(ST_AsText('
+                || quote_literal(point::text)
+                || '),'
+            || srid ||')) AS d, id, the_geom
+    FROM '||_pgr_quote_ident(vertname)||'
+    WHERE ST_DWithin(
+        the_geom,
+        ST_GeomFromText(
+            ST_AsText(' || quote_literal(point::text) ||'),
+            ' || srid || '),' || tolerance||')
+    ORDER BY d
+    LIMIT 1' INTO rec ;
+    IF rec.id IS NOT NULL THEN
+        pid := rec.id;
+    ELSE
+        execute 'INSERT INTO '||_pgr_quote_ident(vertname)||' (the_geom) VALUES ('||quote_literal(point::text)||')';
+        pid := lastval();
+END IF;
+
+RETURN pid;
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'many_to_many_dijkstra'
+LANGUAGE c VOLATILE;
+
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer, OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstra(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(Many to Many)';
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraVia(
+    edges_sql TEXT,
+    via_vertices ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    strict BOOLEAN DEFAULT FALSE,
+    U_turn_on_edge BOOLEAN DEFAULT TRUE,
+
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'dijkstraVia'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_johnson(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'johnson'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_floydWarshall(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'floydWarshall'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'astarManyToMany'
+LANGUAGE c VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, normal:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to Many)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true, normal:=false) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to Many)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid ANYARRAY,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+    equicost BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '$libdir/libpgrouting-2.5', 'many_withPointsDD'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_withPointsDD($1, $2, ARRAY[$3]::BIGINT[], $4, $5, $6, $7, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vids anyarray,
+    distance FLOAT,
+    directed BOOLEAN DEFAULT TRUE,
+    equicost BOOLEAN DEFAULT FALSE,
+    OUT seq integer,
+    OUT from_v  bigint,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '$libdir/libpgrouting-2.5', 'driving_many_to_dist'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vid bigint,
+    distance FLOAT8,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq integer,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer, directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'kshortest_path'
+    LANGUAGE c STABLE STRICT;
+
+-- V2 the graph is directed and there are no heap paths
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid integer, end_vid integer, k integer, has_rcost boolean)
+  RETURNS SETOF pgr_costresult3 AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated signature of pgr_ksp';
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql::text, false);
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_rcost) THEN
+           -- user says that it has reverse_cost but its not true
+           RAISE EXCEPTION 'has_reverse_cost set to true but reverse_cost not found';
+         ELSE
+           -- user says that it does not have reverse_cost but it does have it
+           -- to ignore we remove reverse_cost from the query
+           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+         END IF;
+      END IF;
+
+      RETURN query SELECT ((row_number() over()) -1)::integer  AS seq,  (path_id - 1)::integer AS id1, node::integer AS id2, edge::integer AS id3, cost
+            FROM _pgr_ksp(sql::text, start_vid, end_vid, k, TRUE, FALSE) WHERE path_id <= k;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer,
+  directed boolean default true, heap_paths boolean default false,
+  --directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  BEGIN
+         RETURN query SELECT *
+                FROM _pgr_ksp(edges_sql::text, start_vid, end_vid, k, directed, heap_paths);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsKSP(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    k INTEGER,
+
+    directed BOOLEAN DEFAULT TRUE,
+    heap_paths BOOLEAN DEFAULT FALSE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER, OUT path_id INTEGER, OUT path_seq INTEGER,
+    OUT node BIGINT, OUT edge BIGINT,
+    OUT cost FLOAT, OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'withPoints_ksp'
+    LANGUAGE c STABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_unnest_matrix(matrix float8[][], OUT start_vid integer, OUT end_vid integer, out agg_cost float8)
+RETURNS SETOF record AS
+
+$body$
+DECLARE
+
+m float8[];
+
+BEGIN
+    start_vid = 1;
+    foreach m slice 1 in  ARRAY matrix
+    LOOP
+        end_vid = 1;
+        foreach agg_cost in  ARRAY m
+        LOOP
+            RETURN next;
+            end_vid = end_vid + 1;
+        END LOOP;
+        start_vid = start_vid + 1;
+    END LOOP;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_tsp(
+    matrix float8[][],
+    startpt INTEGER,
+    endpt INTEGER DEFAULT -1,
+    OUT seq INTEGER,
+    OUT id INTEGER)
+RETURNS SETOF record AS
+$body$
+DECLARE
+table_sql TEXT;
+debuglevel TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature pgr_tsp(float8[][], integer, integer)';
+
+    CREATE TEMP TABLE ___tmp2 ON COMMIT DROP AS SELECT * FROM _pgr_unnest_matrix( matrix );
+
+
+    startpt := startpt + 1;
+    IF endpt = -1 THEN endpt := startpt;
+    END IF;
+
+
+    RETURN QUERY
+    WITH
+    result AS (
+        SELECT * FROM pgr_TSP(
+        $$SELECT * FROM ___tmp2 $$,
+        startpt, endpt,
+
+        tries_per_temperature :=  500 :: INTEGER,
+        max_changes_per_temperature := 30 :: INTEGER,
+        max_consecutive_non_changes := 500 :: INTEGER,
+
+        randomize:=false)
+    )
+    SELECT (row_number() over(ORDER BY result.seq) - 1)::INTEGER AS seq, (result.node - 1)::INTEGER AS id
+
+    FROM result WHERE NOT(result.node = startpt AND result.seq != 1);
+
+    DROP TABLE ___tmp2;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+
+
+
+CREATE OR  REPLACE FUNCTION pgr_tsp(sql text, start_id INTEGER, end_id INTEGER default (-1))
+returns setof pgr_costResult as
+$body$
+DECLARE
+table_sql TEXT;
+rec RECORD;
+debuglevel TEXT;
+n BIGINT;
+
+BEGIN
+    RAISE NOTICE 'Deprecated Signature pgr_tsp(sql, integer, integer)';
+
+    table_sql := 'CREATE TEMP TABLE ___tmp ON COMMIT DROP AS ' || sql ;
+    EXECUTE table_sql;
+
+
+    BEGIN
+        EXECUTE 'SELECT id, x, y FROM ___tmp' INTO rec;
+        EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                USING ERRCODE = 'XX000',
+                HINT = 'Please verify the column names: id, x, y';
+    END;
+
+    EXECUTE
+    'SELECT
+        pg_typeof(id)::text as id_type,
+        pg_typeof(x)::text as x_type,
+        pg_typeof(y)::text as y_type FROM ___tmp' INTO rec;
+
+
+    IF NOT((rec.id_type in ('integer'::text))
+        AND (rec.x_type = 'double precision'::text)
+        AND (rec.y_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION '''id'' must be of type INTEGER, ''x'' ad ''y'' must be of type FLOAT'
+            USING ERRCODE = 'XX000';
+    END IF;
+
+    EXECUTE 'SELECT count(*) AS n FROM (' || sql || ') AS __a__' INTO rec;
+    n = rec.n;
+
+    RETURN query
+        SELECT (seq - 1)::INTEGER AS seq, node::INTEGER AS id1, node::INTEGER AS id2, cost
+        FROM pgr_eucledianTSP(sql, start_id, end_id,
+
+            tries_per_temperature :=  500 * n :: INTEGER,
+            max_changes_per_temperature := 60 * n :: INTEGER,
+            max_consecutive_non_changes := 500 * n :: INTEGER,
+
+            randomize := false) WHERE seq <= n;
+    DROP TABLE ___tmp;
+
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+
+create or replace function _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+  as
+$body$
+declare
+    sql text;
+    r record;
+
+begin
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    sql := 'with nodes as (' || sqlin || ')
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j, st_distance(st_makepoint(a.x, a.y), st_makepoint(b.x, b.y)) as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i';
+
+    for r in execute sql loop
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+
+end;
+$body$
+language plpgsql stable cost 10;
+
+
+CREATE OR REPLACE FUNCTION pgr_TSP(
+    matrix_row_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '$libdir/libpgrouting-2.5', 'newTSP'
+LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_eucledianTSP(
+    coordinates_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '$libdir/libpgrouting-2.5', 'eucledianTSP'
+LANGUAGE c VOLATILE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_alphashape(sql text, alpha float8 DEFAULT 0, OUT x float8, OUT y float8)
+    RETURNS SETOF record
+    AS '$libdir/libpgrouting-2.5', 'alphashape'
+    LANGUAGE c VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_pointsAsPolygon(query varchar, alpha float8 DEFAULT 0)
+	RETURNS geometry AS
+	$$
+	DECLARE
+		r record;
+		geoms geometry[];
+		vertex_result record;
+		i int;
+		n int;
+		spos int;
+		q text;
+		x float8[];
+		y float8[];
+
+	BEGIN
+		geoms := array[]::geometry[];
+		i := 1;
+
+		FOR vertex_result IN EXECUTE 'SELECT x, y FROM pgr_alphashape('''|| query || ''', ' || alpha || ')'
+		LOOP
+			x[i] = vertex_result.x;
+			y[i] = vertex_result.y;
+			i := i+1;
+		END LOOP;
+
+		n := i;
+		IF n = 1 THEN
+			RAISE NOTICE 'n = 1';
+			RETURN NULL;
+		END IF;
+
+		spos := 1;
+		q := 'SELECT ST_GeometryFromText(''POLYGON((';
+		FOR i IN 1..n LOOP
+			IF x[i] IS NULL AND y[i] IS NULL THEN
+				q := q || ', ' || x[spos] || ' ' || y[spos] || '))'',0) AS geom;';
+				EXECUTE q INTO r;
+				geoms := geoms || array[r.geom];
+				q := '';
+			ELSE
+				IF q = '' THEN
+					spos := i;
+					q := 'SELECT ST_GeometryFromText(''POLYGON((';
+				END IF;
+				IF i = spos THEN
+					q := q || x[spos] || ' ' || y[spos];
+				ELSE
+					q := q || ', ' || x[i] || ' ' || y[i];
+				END IF;
+			END IF;
+		END LOOP;
+
+		RETURN ST_BuildArea(ST_Collect(geoms));
+	END;
+	$$
+	LANGUAGE 'plpgsql' VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'bd_astar'
+LANGUAGE C VOLATILE;
+
+
+
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed:=true, only_cost:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    BOOLEAN,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false);
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to Many)';
+
+
+
+-- one to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to Many)';
+
+
+-- bdDijkstra MANY TO MANY
+CREATE OR REPLACE FUNCTION _pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'bdDijkstra'
+LANGUAGE c VOLATILE;
+
+
+
+-- ONE TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- TODO directed BOOLEAN DEFAULT TRUE,  on version 3
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, false) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, true) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_vid integer,
+    target_vid integer,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '$libdir/libpgrouting-2.5', 'turn_restrict_shortest_path_vertex'
+LANGUAGE 'c' IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '$libdir/libpgrouting-2.5', 'turn_restrict_shortest_path_edge'
+LANGUAGE 'c' IMMUTABLE;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || edges_sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        -- no restrictions then its a dijkstra
+        RETURN query SELECT a.seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_dijkstra(new_sql, start_vid, end_vid, directed) a;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, start_vid, end_vid, directed, has_rcost, restrictions_sql);
+    RETURN;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_trspViaVertices(
+    edges_sql TEXT,
+    via_vids ANYARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult3 AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            new_sql :=
+               'WITH old_sql AS (' || edges_sql || ')' ||
+                '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        RETURN query SELECT (row_number() over())::INTEGER, path_id:: INTEGER, node::INTEGER,
+            (CASE WHEN edge = -2 THEN -1 ELSE edge END)::INTEGER, cost
+            FROM pgr_dijkstraVia(new_sql, via_vids, directed, strict:=true) WHERE edge != -1;
+        RETURN;
+    END IF;
+
+
+    -- make the call without contradiction from part of the user
+    RETURN query SELECT * FROM _pgr_trspViaVertices(new_sql, via_vids::INTEGER[], directed, has_rcost, restrictions_sql);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+
+    new_sql := sql;
+    IF (has_reverse != has_reverse_cost) THEN  -- user contradiction
+        IF (has_reverse) THEN
+            -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) THEN
+        -- no restrictions then its a with points
+        RETURN query SELECT a.seq-1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_withpoints(new_sql,
+            '(SELECT 1 as pid, ' || source_eid || 'as edge_id, ' || source_pos || '::float8 as fraction)'
+            || ' UNION '
+            || '(SELECT 2, ' || target_eid || ', ' || target_pos || ')' ::TEXT,
+            -1, -2, directed) a;
+        -- WHERE node != -2;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, source_eid, source_pos, target_eid, target_pos, directed, has_reverse_cost, turn_restrict_sql);
+    RETURN;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+create or replace function _pgr_trspViaVertices(sql text, vids integer[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    lrra boolean := false;
+    seq integer := 0;
+    seq2 integer := 0;
+
+begin
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(vids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from _pgr_trsp(sql, vids[i], vids[i+1], directed, has_rcost, turn_restrict_sql) as a loop
+            -- filter out the individual path ends except the last one
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --raise notice 'rr: %', rr;
+            if rr.id3 = -1 then
+                lrr := rr;
+                lrra := true;
+            else
+                seq := seq + 1;
+                rr.seq := seq;
+                return next rr;
+            end if;
+        end loop;
+    end loop;
+
+    if lrra then
+        seq := seq + 1;
+        lrr.seq := seq;
+        return next lrr;
+    end if;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+
+----------------------------------------------------------------------------------------------------------
+
+create or replace function pgr_trspViaEdges(sql text, eids integer[], pcts float8[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    first boolean := true;
+    seq integer := 0;
+    seq2 integer :=0;
+    has_reverse BOOLEAN;
+    point_is_vertex BOOLEAN := false;
+    edges_sql TEXT;
+    f float;
+
+begin
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql := sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (NOT has_rcost) THEN
+            -- user does not want to use reverse cost column
+            edges_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    FOREACH f IN ARRAY pcts LOOP
+        IF f in (0,1) THEN
+           point_is_vertex := true;
+        END IF;
+    END LOOP;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) AND NOT point_is_vertex THEN
+        -- no restrictions then its a _pgr_withPointsVia
+        RETURN query SELECT a.seq::INTEGER, path_id::INTEGER AS id1, node::INTEGER AS id2, edge::INTEGER AS id3, cost
+        FROM _pgr_withPointsVia(edges_sql, eids, pcts, directed) a;
+        RETURN;
+    END IF;
+
+    if array_length(eids, 1) != array_length(pcts, 1) then
+        raise exception 'The length of arrays eids and pcts must be the same!';
+    end if;
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(eids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from pgr_trsp(edges_sql,
+                                  eids[i], pcts[i],
+                                  eids[i+1], pcts[i+1],
+                                  directed,
+                                  has_rcost,
+                                  turn_restrict_sql) as a loop
+            -- combine intermediate via costs when cost is split across
+            -- two parts of a segment because it stops it and
+            -- restarts the next leg also on it
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --
+            -- there are multiple condition we have to deal with
+            -- between the end of one leg and start of the next
+            -- 1. same vertex_id. edge_id=-1; drop record with edge_id=-1
+            -- means: path ends on vertex
+            -- NOTICE:  rr: (19,1,44570022,-1,0)
+            -- NOTICE:  rr: (0,2,44570022,1768045,2.89691196717448)
+            -- 2. vertex_id=-1; sum cost components
+            -- means: path end/starts with the segment
+            -- NOTICE:  rr: (11,2,44569628,1775909,9.32885885148532)
+            -- NOTICE:  rr: (0,3,-1,1775909,0.771386350984395)
+
+            --raise notice 'rr: %', rr;
+            if first then
+                lrr := rr;
+                first := false;
+            else
+                if lrr.id3 = -1 then
+                    lrr := rr;
+                elsif lrr.id3 = rr.id3 then
+                    lrr.cost := lrr.cost + rr.cost;
+                    if rr.id2 = -1 then
+                        rr.id2 := lrr.id2;
+                    end if;
+                else
+                    seq := seq + 1;
+                    lrr.seq := seq;
+                    return next lrr;
+                    lrr := rr;
+                end if;
+            end if;
+        end loop;
+    end loop;
+
+    seq := seq + 1;
+    lrr.seq := seq;
+    return next lrr;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+----------------------------
+--    MANY TO MANY
+----------------------------
+
+
+CREATE OR REPLACE FUNCTION _pgr_maxflow(
+    edges_sql TEXT,
+    sources ANYARRAY,
+    targets ANYARRAY,
+    algorithm INTEGER DEFAULT 1,
+    only_flow BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'max_flow_many_to_many'
+    LANGUAGE c VOLATILE;
+
+
+
+
+------------------------------------
+-- 3 pgr_edmondsKarp
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+------------------------------------
+-- 2 boykov_kolmogorov
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+------------------------------------
+-- 1 pgr_pushRelabel
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT flow
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], algorithm := 1, only_flow := true);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], $3::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, $2::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxCardinalityMatch(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'edge_disjoint_paths_many_to_many'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    bigint,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    IN directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_contractGraph(
+    edges_sql TEXT,
+    contraction_order BIGINT[],
+    max_cycles integer DEFAULT 1,
+    forbidden_vertices BIGINT[] DEFAULT ARRAY[]::BIGINT[],
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT type TEXT,
+    OUT id BIGINT,
+    OUT contracted_vertices BIGINT[],
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost float)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'contractGraph'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliver(
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_cell_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'pickDeliver'
+LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliverEuclidean (
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'pickDeliverEuclidean'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_vrpOneDepot(
+    TEXT, -- customers_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_sql
+    INTEGER, -- depot_id
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+orders_sql TEXT;
+trucks_sql TEXT;
+matrix_sql TEXT;
+final_sql TEXT;
+BEGIN
+
+    orders_sql = $$WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    pickups AS (
+        SELECT id, x AS p_x, y AS p_y, open_time AS p_open, close_time AS p_close, service_time AS p_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vrp_orders.id AS id, order_unit AS demand, pickups.id AS p_node_id, p_x, p_y, p_open, p_close, p_service,
+    vrp_orders.id AS d_node_id, x AS d_x, y AS d_y, open_time AS d_open, close_time AS d_close, service_time AS d_service
+    FROM vrp_orders, pickups
+    WHERE vrp_orders.id != $$ || $4;
+
+
+    trucks_sql = $$ WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    vrp_vehicles AS ($$ || $2 || $$ ),
+    starts AS (
+        SELECT id AS start_node_id, x AS start_x, y AS start_y, open_time AS start_open, close_time AS start_close, service_time AS start_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vehicle_id AS id, capacity, starts.* FROM vrp_vehicles, starts;
+    $$;
+
+    final_sql = '
+    SELECT * FROM _pgr_pickDeliver(
+            $$' || orders_sql || '$$,
+            $$' || trucks_sql || '$$,
+            $$' || $3 || '$$,
+            max_cycles := 2,
+            initial_sol := 4 ); ';
+
+    RAISE DEBUG '%', orders_sql;
+    RAISE DEBUG '%', trucks_sql;
+    RAISE DEBUG '%', $3;
+    RAISE DEBUG '%', final_sql;
+
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+-----------------------------------------------------------------------
+-- Core function for vrp with sigle depot computation
+-- See README for description
+-----------------------------------------------------------------------
+--
+--
+
+create or replace function pgr_vrpOneDepot(
+	order_sql text,
+	vehicle_sql text,
+	cost_sql text,
+	depot_id integer,
+
+	OUT oid integer,
+	OUT opos integer,
+	OUT vid integer,
+	OUT tarrival integer,
+	OUT tdepart integer)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT order_id::INTEGER, stop_seq::INTEGER, vehicle_id::INTEGER, arrival_time::INTEGER, departure_time::INTEGER
+    FROM _pgr_vrpOneDepot($1, $2,
+       '
+            SELECT src_id AS start_vid, dest_id AS end_vid, traveltime AS agg_cost FROM ('||$3||') AS a
+       ',
+        $4
+    ) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_gsoc_vrppdtw(
+    customers_sql TEXT,
+    max_vehicles INTEGER,
+    capacity FLOAT,
+    speed FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+
+    OUT seq INTEGER,
+    OUT vehicle_id INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT stop_id BIGINT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+    orders_sql TEXT;
+    vehicles_sql TEXT;
+    final_sql TEXT;
+BEGIN
+    orders_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        pickups AS (
+            SELECT id, demand, x as p_x, y as p_y, opentime as p_open, closetime as p_close, servicetime as p_service
+            FROM  customer_data WHERE pindex = 0 AND id != 0
+        ),
+        deliveries AS (
+            SELECT pindex AS id, x as d_x, y as d_y, opentime as d_open, closetime as d_close, servicetime as d_service
+            FROM  customer_data WHERE dindex = 0 AND id != 0
+        )
+        SELECT * FROM pickups JOIN deliveries USING(id) ORDER BY pickups.id
+    $$;
+
+    vehicles_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ )
+        SELECT id, x AS start_x, y AS start_y,
+            opentime AS start_open, closetime AS start_close, $$ ||
+            capacity || $$ AS capacity, $$ || max_vehicles || $$ AS number, $$ || speed || $$ AS speed
+            FROM customer_data WHERE id = 0 LIMIT 1
+        $$;
+--  seq | vehicle_id | vehicle_seq | stop_id | travel_time | arrival_time | wait_time | service_time | departure_time
+    final_sql = $$ WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        p_deliver AS (SELECT * FROM _pgr_pickDeliverEuclidean('$$ || orders_sql || $$',  '$$ || vehicles_sql || $$',  1, $$ || max_cycles || $$ )),
+        picks AS (SELECT p_deliver.*, pindex, dindex, id AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 2)),
+        delivers AS (SELECT p_deliver.*, pindex, dindex, dindex AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 3)),
+        depots AS (SELECT p_deliver.*, 0 as pindex, 0 as dindex, 0 AS the_id FROM p_deliver WHERE (stop_type IN (-1,1,6))),
+        the_union AS (SELECT * FROM picks UNION SELECT * FROM delivers UNION SELECT * from depots)
+
+        SELECT (row_number() over(ORDER BY a.seq))::INTEGER, vehicle_seq, a.stop_seq, the_id::BIGINT, a.travel_time, a.arrival_time, a.wait_time, a.service_time, a.departure_time
+        FROM (SELECT * FROM the_union) AS a ORDER BY a.seq
+        $$;
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+CREATE OR REPLACE FUNCTION pgr_gsoc_vrppdtw(
+    sql text,
+    vehicle_num INTEGER,
+    capacity INTEGER
+)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+customers_sql TEXT;
+BEGIN
+    RETURN query
+         SELECT a.seq, vehicle_id::INTEGER AS id1, stop_id::INTEGER AS id2, departure_time AS cost
+        FROM _pgr_gsoc_vrppdtw($1, $2, $3, 1, 30) AS a WHERE vehicle_id NOT IN (-2);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION _pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN,
+    driving_side CHAR,
+    details BOOLEAN,
+
+    only_cost BOOLEAN DEFAULT false, -- gets path
+    normal BOOLEAN DEFAULT true, -- false for many to onu
+
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'withPoints'
+LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], ARRAY[$4]::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], ARRAY[$4]::bigint[], $5, $6, $7, FALSE, FALSE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], $4::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], $4::BIGINT[], $5,  $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION  _pgr_withPointsVia(
+    sql text,
+    via_edges bigint[],
+    fraction float[],
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  has_rcost boolean;
+  sql_new_vertices text := ' ';
+  sql_on_vertex text;
+  v_union text := ' ';
+  dummyrec record;
+  rec1 record;
+  via_vertices int[];
+  sql_safe text;
+  new_edges text;
+  BEGIN
+     BEGIN
+        sql_safe = 'SELECT id, source, target, cost, reverse_cost FROM ('|| sql || ') AS __a';
+
+        EXECUTE 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||sql_safe||' ) AS __b__ limit 1 ' INTO rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+     END;
+
+
+      IF array_length(via_edges, 1) != array_length(fraction, 1) then
+        RAISE EXCEPTION 'The length of via_edges is different of length of via_edges';
+      END IF;
+
+      FOR i IN 1 .. array_length(via_edges, 1)
+      LOOP
+          IF fraction[i] = 0 THEN
+              sql_on_vertex := 'SELECT source FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.source;
+          ELSE IF fraction[i] = 1 THEN
+              sql_on_vertex := 'SELECT target FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.target;
+          ELSE
+              via_vertices[i] = -i;
+              IF has_rcost THEN
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost,
+                              reverse_cost * (1 - ' || fraction[i] || ')  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost,
+                              reverse_cost *  ' || fraction[i] || '  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' where id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               ELSE
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               END IF;
+          END IF;
+          END IF;
+     END LOOP;
+
+     IF sql_new_vertices = ' ' THEN
+         new_edges := sql;
+     ELSE
+         IF has_rcost THEN
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost,
+                         lead(cost) OVER w  - cost AS reverse_cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL),
+                   second_part AS ( SELECT * FROM (SELECT id, lead(source) OVER w  AS source, source as target,
+                         reverse_cost - lead(reverse_cost) OVER w  AS cost,
+                         reverse_cost - lead(reverse_cost) OVER w  AS reverse_cost
+                      FROM  the_union  WHERE target > 0 and reverse_cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY reverse_cost ASC) ) as n2
+                      WHERE source IS NOT NULL),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part)
+                             UNION
+                       (SELECT * FROM second_part) ) _union )
+                  SELECT *  FROM more_union';
+         ELSE
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL ),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part) ) _union )
+                  SELECT *  FROM more_union';
+          END IF;
+      END IF;
+
+ -- raise notice '%', new_edges;
+     sql_new_vertices := sql_new_vertices || v_union || ' (' || sql || ')';
+     RETURN query SELECT *
+         FROM pgr_dijkstraVia(new_edges, via_vertices, directed, has_rcost);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_lineGraph(
+    TEXT, -- edges_sql
+    directed BOOLEAN DEFAULT true,
+    OUT seq INTEGER,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost FLOAT,
+    OUT reverse_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'lineGraph'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_connectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'connectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_strongComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'strongComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_biconnectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the edge in the component
+    OUT n_seq INTEGER,          -- nth_seq of the edge in the component
+    OUT edge BIGINT)            -- the number of the edge
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'biconnectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_articulationPoints(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'articulationPoints'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_bridges(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT edge BIGINT)            -- the number of the edge 
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'bridges'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_createtopology(edge_table text, tolerance double precision,
+		   the_geom text default 'the_geom', id text default 'id',
+		   source text default 'source', target text default 'target',rows_where text default 'true',
+		   clean boolean default FALSE)
+RETURNS VARCHAR AS
+$BODY$
+
+DECLARE
+    points record;
+    sridinfo record;
+    source_id bigint;
+    target_id bigint;
+    totcount bigint;
+    rowcount bigint;
+    srid integer;
+    sql text;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    idname text;
+    sourcename text;
+    targetname text;
+    notincluded integer;
+    i integer;
+    naming record;
+    info record;
+    flag boolean;
+    query text;
+    idtype text;
+    gtype text;
+    sourcetype text;
+    targettype text;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+    msgKind int;
+    emptied BOOLEAN;
+
+BEGIN
+    msgKind = 1; -- notice
+    fnName = 'pgr_createTopology';
+    raise notice 'PROCESSING:';
+    raise notice 'pgr_createTopology(''%'', %, ''%'', ''%'', ''%'', ''%'', rows_where := ''%'', clean := %)',edge_table,tolerance,the_geom,id,source,target,rows_where, clean;
+    execute 'show client_min_messages' into debuglevel;
+
+
+    raise notice 'Performing checks, please wait .....';
+
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+        sname=naming.sname;
+        tname=naming.tname;
+        tabname=sname||'.'||tname;
+        vname=tname||'_vertices_pgr';
+        vertname= sname||'.'||vname;
+        rows_where = ' AND ('||rows_where||')';
+      raise DEBUG '     --> OK';
+
+
+      raise debug 'Checking column names in edge table';
+        select * into idname     from _pgr_getColumnName(sname, tname,id,2,fnName);
+        select * into sourcename from _pgr_getColumnName(sname, tname,source,2,fnName);
+        select * into targetname from _pgr_getColumnName(sname, tname,target,2,fnName);
+        select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2,fnName);
+
+
+        err = sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname;
+        perform _pgr_onError( err, 2, fnName,
+               'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
+	       'Column names are OK');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking column types in edge table';
+        select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+        select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+        select * into idtype from _pgr_getColumnType(sname,tname,idname,1, fnName);
+
+        err = idtype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column id:'|| idname, ' Expected type of '|| idname || ' is integer,smallint or bigint but '||idtype||' was found');
+
+        err = sourcetype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column source:'|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+        err = targettype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column target:'|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or bigint but '||targettype||' was found');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking SRID of geometry column';
+         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+            || ' FROM ' || _pgr_quote_ident(tabname)
+            || ' WHERE ' || quote_ident(gname)
+            || ' IS NOT NULL LIMIT 1';
+         raise debug '%',query;
+         EXECUTE query INTO sridinfo;
+
+         err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+         perform _pgr_onError(err, 2, fnName,
+	     'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+
+         srid := sridinfo.srid;
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking and creating indices in edge table';
+        perform _pgr_createIndex(sname, tname , idname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+
+        gname=quote_ident(gname);
+        idname=quote_ident(idname);
+        sourcename=quote_ident(sourcename);
+        targetname=quote_ident(targetname);
+      raise DEBUG '     --> OK';
+
+
+
+
+
+    BEGIN
+        -- issue #193 & issue #210 & #213
+        -- this sql is for trying out the where clause
+        -- the select * is to avoid any column name conflicts
+        -- limit 1, just try on first record
+        -- if the where clasuse is ill formed it will be caught in the exception
+        sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+        EXECUTE sql into dummyRec;
+        -- end
+
+        -- if above where clasue works this one should work
+        -- any error will be caught by the exception also
+        sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NOT NULL AND '||
+	    idname||' IS NOT NULL)=false '||rows_where;
+        EXECUTE SQL  into notincluded;
+
+        if clean then
+            raise debug 'Cleaning previous Topology ';
+               execute 'UPDATE ' || _pgr_quote_ident(tabname) ||
+               ' SET '||sourcename||' = NULL,'||targetname||' = NULL';
+        else
+            raise debug 'Creating topology for edges with non assigned topology';
+            if rows_where=' AND (true)' then
+                rows_where=  ' and ('||quote_ident(sourcename)||' is null or '||quote_ident(targetname)||' is  null)';
+            end if;
+        end if;
+        -- my thoery is that the select Count(*) will never go through here
+        EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+             RAISE NOTICE '%',sql;
+             RETURN 'FAIL';
+    END;
+
+    BEGIN
+         raise DEBUG 'initializing %',vertname;
+         execute 'select * from _pgr_getTableName('||quote_literal(vertname)
+                                                  || ',0,' || quote_literal(fnName) ||' )' into naming;
+         emptied = false;
+         set client_min_messages  to warning;
+         IF sname=naming.sname AND vname=naming.tname  THEN
+            if clean then
+                execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+                execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+                emptied = true;
+            end if;
+         ELSE -- table doesn't exist
+            execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+            emptied = true;
+         END IF;
+         IF (emptied) THEN
+             execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+	         quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+             perform _pgr_createIndex(vertname , 'the_geom'::text , 'gist'::text);
+         END IF;
+         execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id"}''::text[])' into naming;
+         execute 'set client_min_messages  to '|| debuglevel;
+         raise DEBUG  '  ------>OK';
+         EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: something went wrong when initializing the verties table';
+             RETURN 'FAIL';
+    END;
+
+
+
+    raise notice 'Creating Topology, Please wait...';
+        rowcount := 0;
+        FOR points IN EXECUTE 'SELECT ' || idname || '::bigint AS id,'
+            || ' _pgr_StartPoint(' || gname || ') AS source,'
+            || ' _pgr_EndPoint('   || gname || ') AS target'
+            || ' FROM '  || _pgr_quote_ident(tabname)
+            || ' WHERE ' || gname || ' IS NOT NULL AND ' || idname||' IS NOT NULL '||rows_where
+        LOOP
+
+            rowcount := rowcount + 1;
+            IF rowcount % 1000 = 0 THEN
+                RAISE NOTICE '% edges processed', rowcount;
+            END IF;
+
+
+            source_id := _pgr_pointToId(points.source, tolerance,vertname,srid);
+            target_id := _pgr_pointToId(points.target, tolerance,vertname,srid);
+            BEGIN
+                sql := 'UPDATE ' || _pgr_quote_ident(tabname) ||
+                    ' SET '||sourcename||' = '|| source_id::text || ','||targetname||' = ' || target_id::text ||
+                    ' WHERE ' || idname || ' =  ' || points.id::text;
+
+                IF sql IS NULL THEN
+                    RAISE NOTICE 'WARNING: UPDATE % SET source = %, target = % WHERE % = % ', tabname, source_id::text, target_id::text, idname,  points.id::text;
+                ELSE
+                    EXECUTE sql;
+                END IF;
+                EXCEPTION WHEN OTHERS THEN
+                    RAISE NOTICE '%', SQLERRM;
+                    RAISE NOTICE '%',sql;
+                    RETURN 'FAIL';
+            end;
+        END LOOP;
+        raise notice '-------------> TOPOLOGY CREATED FOR  % edges', rowcount;
+        RAISE NOTICE 'Rows with NULL geometry or NULL id: %',notincluded;
+        Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname), _pgr_quote_ident(vertname);
+        raise notice '----------------------------------------------';
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+COMMENT ON FUNCTION pgr_createTopology(text, double precision,text,text,text,text,text,boolean)
+IS 'args: edge_table,tolerance, the_geom:=''the_geom'',source:=''source'', target:=''target'',rows_where:=''true'' - fills columns source and target in the geometry table and creates a vertices table for selected rows';
+
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
+RETURNS character varying AS
+$BODY$
+
+DECLARE
+    points record;
+    seg record;
+    naming record;
+    sridinfo record;
+    srid integer;
+    ecnt integer;
+    vertname text;
+    sname text;
+    tname text;
+    vname text;
+    idname text;
+    sourcename text;
+    targetname text;
+    sourcetype text;
+    targettype text;
+    geotype text;
+    gname text;
+    tabName text;
+    flag boolean ;
+    query text;
+    selectionquery text;
+    i integer;
+    tot integer;
+    NumIsolated integer;
+    numdeadends integer;
+    numgaps integer;
+    NumCrossing integer;
+    numRings integer;
+    debuglevel text;
+
+
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_analyzeGraph(''%'',%,''%'',''%'',''%'',''%'',''%'')',edge_table,tolerance,the_geom,id,source,target,rows_where;
+  raise notice 'Performing checks, please wait ...';
+  execute 'show client_min_messages' into debuglevel;
+
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',2)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    rows_where = ' AND ('||rows_where||')';
+    raise DEBUG '     --> OK';
+
+  END;
+
+  BEGIN
+       raise debug 'Checking Vertices table';
+       execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","cnt","chk"}''::text[])' into naming;
+       execute 'UPDATE '||_pgr_quote_ident(vertname)||' SET cnt=0 ,chk=0';
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the vertices table';
+          RETURN 'FAIL';
+  END;
+
+
+
+  BEGIN
+       raise debug 'Checking column names in edge table';
+       select * into idname     from _pgr_getColumnName(sname, tname,id,2);
+       select * into sourcename from _pgr_getColumnName(sname, tname,source,2);
+       select * into targetname from _pgr_getColumnName(sname, tname,target,2);
+       select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2);
+
+
+       perform _pgr_onError( sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname, 2,
+                       'pgr_analyzeGraph',  'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
+                       'Column names are OK');
+
+        raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column names';
+          RETURN 'FAIL';
+  END;
+
+
+  BEGIN
+       raise debug 'Checking column types in edge table';
+       select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1);
+       select * into targettype from _pgr_getColumnType(sname,tname,targetname,1);
+
+       perform _pgr_onError(sourcetype not in('integer','smallint','bigint') , 2,
+                       'pgr_analyzeGraph',  'Wrong type of Column '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found',
+                       'Type of Column '|| sourcename || ' is ' || sourcetype);
+
+       perform _pgr_onError(targettype not in('integer','smallint','bigint') , 2,
+                       'pgr_analyzeGraph',  'Wrong type of Column '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found',
+                       'Type of Column '|| targetname || ' is ' || targettype);
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column types';
+          RETURN 'FAIL';
+   END;
+
+   BEGIN
+       raise debug 'Checking SRID of geometry column';
+         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+            || ' FROM ' || _pgr_quote_ident(tabname)
+            || ' WHERE ' || quote_ident(gname)
+            || ' IS NOT NULL LIMIT 1';
+         EXECUTE QUERY INTO sridinfo;
+
+         perform _pgr_onError( sridinfo IS NULL OR sridinfo.srid IS NULL,2,
+                 'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname,
+                 'SRID of '||gname||' is '||sridinfo.srid);
+
+         IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
+             RAISE NOTICE ' Can not determine the srid of the geometry "%" in table %', the_geom,tabname;
+             RETURN 'FAIL';
+         END IF;
+         srid := sridinfo.srid;
+         raise DEBUG '     --> OK';
+         EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM;--issue 210,211,213
+             RAISE NOTICE 'ERROR: something went wrong when checking for SRID of % in table %', the_geom,tabname;
+             RETURN 'FAIL';
+    END;
+
+
+    BEGIN
+       raise debug 'Checking  indices in edge table';
+       perform _pgr_createIndex(tabname , idname , 'btree');
+       perform _pgr_createIndex(tabname , sourcename , 'btree');
+       perform _pgr_createIndex(tabname , targetname , 'btree');
+       perform _pgr_createIndex(tabname , gname , 'gist');
+
+       gname=quote_ident(gname);
+       sourcename=quote_ident(sourcename);
+       targetname=quote_ident(targetname);
+       idname=quote_ident(idname);
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking indices';
+          RETURN 'FAIL';
+    END;
+
+
+    BEGIN
+        query='select count(*) from '||_pgr_quote_ident(tabname)||' where true  '||rows_where;
+        EXECUTE query into ecnt;
+        raise DEBUG '-->Rows Where condition: OK';
+        raise DEBUG '     --> OK';
+         EXCEPTION WHEN OTHERS THEN
+            RAISE NOTICE 'Got %', SQLERRM;  --issue 210,211,213
+            RAISE NOTICE 'ERROR: Condition is not correct. Please execute the following query to test your condition';
+            RAISE NOTICE '%',query;
+            RETURN 'FAIL';
+    END;
+
+    selectionquery ='with
+           selectedRows as( (select '||sourcename||' as id from '||_pgr_quote_ident(tabname)||' where true '||rows_where||')
+                           union
+                           (select '||targetname||' as id from '||_pgr_quote_ident(tabname)||' where true '||rows_where||'))';
+
+
+
+
+
+   BEGIN
+       RAISE NOTICE 'Analyzing for dead ends. Please wait...';
+       query= 'with countingsource as (select a.'||sourcename||' as id,count(*) as cnts
+               from (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) a  group by a.'||sourcename||')
+                     ,countingtarget as (select a.'||targetname||' as id,count(*) as cntt
+                    from (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) a  group by a.'||targetname||')
+                   ,totalcount as (select id,case when cnts is null and cntt is null then 0
+                                                   when cnts is null then cntt
+                                                   when cntt is null then cnts
+                                                   else cnts+cntt end as totcnt
+                                   from ('||_pgr_quote_ident(vertname)||' as a left
+                                   join countingsource as t using(id) ) left join countingtarget using(id))
+               update '||_pgr_quote_ident(vertname)||' as a set cnt=totcnt from totalcount as b where a.id=b.id';
+       raise debug '%',query;
+       execute query;
+       query=selectionquery||'
+              SELECT count(*)  FROM '||_pgr_quote_ident(vertname)||' WHERE cnt=1 and id in (select id from selectedRows)';
+       raise debug '%',query;
+       execute query  INTO numdeadends;
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'Got %', SQLERRM;  --issue 210,211,213
+          RAISE NOTICE 'ERROR: something went wrong when analizing for dead ends';
+          RETURN 'FAIL';
+   END;
+
+
+
+    BEGIN
+          RAISE NOTICE 'Analyzing for gaps. Please wait...';
+          query = 'with
+                   buffer as (select id,st_buffer(the_geom,'||tolerance||') as buff from '||_pgr_quote_ident(vertname)||' where cnt=1)
+                   ,veryclose as (select b.id,st_crosses(a.'||gname||',b.buff) as flag
+                   from  (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) as a
+                   join buffer as b on (a.'||gname||'&&b.buff)
+                   where '||sourcename||'!=b.id and '||targetname||'!=b.id )
+                   update '||_pgr_quote_ident(vertname)||' set chk=1 where id in (select distinct id from veryclose where flag=true)';
+          raise debug '%' ,query;
+          execute query;
+          GET DIAGNOSTICS  numgaps= ROW_COUNT;
+          raise DEBUG '     --> OK';
+          EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for gaps';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for isolated edges. Please wait...';
+        query=selectionquery|| ' SELECT count(*) FROM (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' )  as a,
+                                                 '||_pgr_quote_ident(vertname)||' as b,
+                                                 '||_pgr_quote_ident(vertname)||' as c
+                            WHERE b.id in (select id from selectedRows) and a.'||sourcename||' =b.id
+                            AND b.cnt=1 AND a.'||targetname||' =c.id
+                            AND c.cnt=1';
+        raise debug '%' ,query;
+        execute query  INTO NumIsolated;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for isolated edges';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for ring geometries. Please wait...';
+        execute 'SELECT geometrytype('||gname||')  FROM '||_pgr_quote_ident(tabname) limit 1 into geotype;
+        IF (geotype='MULTILINESTRING') THEN
+            query ='SELECT count(*)  FROM '||_pgr_quote_ident(tabname)||'
+                                 WHERE true  '||rows_where||' and st_isRing(st_linemerge('||gname||'))';
+            raise debug '%' ,query;
+            execute query  INTO numRings;
+        ELSE query ='SELECT count(*)  FROM '||_pgr_quote_ident(tabname)||'
+                                  WHERE true  '||rows_where||' and st_isRing('||gname||')';
+            raise debug '%' ,query;
+            execute query  INTO numRings;
+        END IF;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for ring geometries';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for intersections. Please wait...';
+        query = 'select count(*) from (select distinct case when a.'||idname||' < b.'||idname||' then a.'||idname||'
+                                                        else b.'||idname||' end,
+                                                   case when a.'||idname||' < b.'||idname||' then b.'||idname||'
+                                                        else a.'||idname||' end
+                                    FROM (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||') as a
+                                    JOIN (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||') as b
+                                    ON (a.'|| gname||' && b.'||gname||')
+                                    WHERE a.'||idname||' != b.'||idname|| '
+                                        and (a.'||sourcename||' in (b.'||sourcename||',b.'||targetname||')
+                                              or a.'||targetname||' in (b.'||sourcename||',b.'||targetname||')) = false
+                                        and st_intersects(a.'||gname||', b.'||gname||')=true) as d ';
+        raise debug '%' ,query;
+        execute query  INTO numCrossing;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for intersections';
+            RETURN 'FAIL';
+    END;
+
+
+
+
+    RAISE NOTICE '            ANALYSIS RESULTS FOR SELECTED EDGES:';
+    RAISE NOTICE '                  Isolated segments: %', NumIsolated;
+    RAISE NOTICE '                          Dead ends: %', numdeadends;
+    RAISE NOTICE 'Potential gaps found near dead ends: %', numgaps;
+    RAISE NOTICE '             Intersections detected: %',numCrossing;
+    RAISE NOTICE '                    Ring geometries: %',numRings;
+
+
+    RETURN 'OK';
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+COMMENT ON FUNCTION pgr_analyzeGraph(text,double precision,text,text,text,text,text) IS 'args: edge_table, tolerance,the_geom:=''the_geom'',id:=''id'',source column:=''source'', target column:=''target'' rows_where:=''true'' - creates a vertices table based on the geometry for selected rows';
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_analyzeOneway(
+   edge_table text,
+   s_in_rules TEXT[],
+   s_out_rules TEXT[],
+   t_in_rules TEXT[],
+   t_out_rules TEXT[],
+   two_way_if_null boolean default true,
+   oneway text default 'oneway',
+   source text default 'source',
+   target text default 'target')
+  RETURNS text AS
+$BODY$
+
+
+DECLARE
+    rule text;
+    ecnt integer;
+    instr text;
+    naming record;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    owname text;
+    sourcename text;
+    targetname text;
+    sourcetype text;
+    targettype text;
+    vertname text;
+    debuglevel text;
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_analyzeOneway(''%'',''%'',''%'',''%'',''%'',''%'',''%'',''%'',%)',
+		edge_table, s_in_rules , s_out_rules, t_in_rules, t_out_rules, oneway, source ,target,two_way_if_null ;
+  execute 'show client_min_messages' into debuglevel;
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',2)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    raise DEBUG '     --> OK';
+    EXCEPTION WHEN raise_exception THEN
+      RAISE NOTICE 'ERROR: something went wrong checking the table name';
+      RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise debug 'Checking Vertices table';
+       execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","ein","eout"}''::text[])' into naming;
+       execute 'UPDATE '||_pgr_quote_ident(vertname)||' SET eout=0 ,ein=0';
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the vertices table';
+          RETURN 'FAIL';
+  END;
+
+
+  BEGIN
+       raise debug 'Checking column names in edge table';
+       select * into sourcename from _pgr_getColumnName(sname, tname,source,2);
+       select * into targetname from _pgr_getColumnName(sname, tname,target,2);
+       select * into owname from _pgr_getColumnName(sname, tname,oneway,2);
+
+
+       perform _pgr_onError( sourcename in (targetname,owname) or  targetname=owname, 2,
+                       '_pgr_createToplogy',  'Two columns share the same name', 'Parameter names for oneway,source and target  must be different',
+                       'Column names are OK');
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column names';
+          RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise debug 'Checking column types in edge table';
+       select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1);
+       select * into targettype from _pgr_getColumnType(sname,tname,targetname,1);
+
+
+       perform _pgr_onError(sourcetype not in('integer','smallint','bigint') , 2,
+                       '_pgr_createTopology',  'Wrong type of Column '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found',
+                       'Type of Column '|| sourcename || ' is ' || sourcetype);
+
+       perform _pgr_onError(targettype not in('integer','smallint','bigint') , 2,
+                       '_pgr_createTopology',  'Wrong type of Column '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found',
+                       'Type of Column '|| targetname || ' is ' || targettype);
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column types';
+          RETURN 'FAIL';
+   END;
+
+
+
+    RAISE NOTICE 'Analyzing graph for one way street errors.';
+
+    rule := CASE WHEN two_way_if_null
+            THEN owname || ' IS NULL OR '
+            ELSE '' END;
+
+    instr := '''' || array_to_string(s_in_rules, ''',''') || '''';
+       EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set ein=coalesce(ein,0)+b.cnt
+      from (
+         select '|| sourcename ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| sourcename ||' ) b
+     where a.id=b.'|| sourcename;
+
+    RAISE NOTICE 'Analysis 25%% complete ...';
+
+    instr := '''' || array_to_string(t_in_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set ein=coalesce(ein,0)+b.cnt
+        from (
+         select '|| targetname ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| targetname ||' ) b
+        where a.id=b.'|| targetname;
+
+    RAISE NOTICE 'Analysis 50%% complete ...';
+
+    instr := '''' || array_to_string(s_out_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set eout=coalesce(eout,0)+b.cnt
+        from (
+         select '|| sourcename ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| sourcename ||' ) b
+        where a.id=b.'|| sourcename;
+    RAISE NOTICE 'Analysis 75%% complete ...';
+
+    instr := '''' || array_to_string(t_out_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set eout=coalesce(eout,0)+b.cnt
+        from (
+         select '|| targetname ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| targetname ||' ) b
+        where a.id=b.'|| targetname;
+
+    RAISE NOTICE 'Analysis 100%% complete ...';
+
+    EXECUTE 'SELECT count(*)  FROM '||_pgr_quote_ident(vertname)||' WHERE ein=0 or eout=0' INTO ecnt;
+
+    RAISE NOTICE 'Found % potential problems in directionality' ,ecnt;
+
+    RETURN 'OK';
+
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+COMMENT ON FUNCTION pgr_analyzeOneway(text,TEXT[],TEXT[], TEXT[],TEXT[],boolean,text,text,text)
+IS 'args:edge_table , s_in_rules , s_out_rules, t_in_rules , t_out_rules, two_way_if_null:= true, oneway:=''oneway'',source:= ''source'',target:=''target'' - Analizes the directionality of the edges based on the rules';
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_createverticestable(
+   edge_table text,
+   the_geom text DEFAULT 'the_geom'::text,
+   source text DEFAULT 'source'::text,
+   target text DEFAULT 'target'::text,
+    rows_where text DEFAULT 'true'::text
+)
+  RETURNS text AS
+$BODY$
+DECLARE
+    naming record;
+    sridinfo record;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    sourcename text;
+    targetname text;
+    query text;
+    ecnt bigint;
+    srid integer;
+    sourcetype text;
+    targettype text;
+    sql text;
+    totcount integer;
+    i integer;
+    notincluded integer;
+    included integer;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+
+
+BEGIN
+  fnName = 'pgr_createVerticesTable';
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_createVerticesTable(''%'',''%'',''%'',''%'',''%'')',edge_table,the_geom,source,target,rows_where;
+  execute 'show client_min_messages' into debuglevel;
+
+  raise notice 'Performing checks, please wait .....';
+
+  RAISE DEBUG 'Checking % exists',edge_table;
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    rows_where = ' AND ('||rows_where||')';
+  raise debug '--> Edge table exists: OK';
+
+  raise debug 'Checking column names';
+    select * into sourcename from _pgr_getColumnName(sname, tname,source,2, fnName);
+    select * into targetname from _pgr_getColumnName(sname, tname,target,2, fnName);
+    select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2, fnName);
+
+
+    err = sourcename in (targetname,gname) or  targetname=gname;
+    perform _pgr_onError(err, 2, fnName,
+        'Two columns share the same name', 'Parameter names for the_geom,source and target  must be different');
+  raise debug '--> Column names: OK';
+
+  raise debug 'Checking column types in edge table';
+    select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+    select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+
+
+    err = sourcetype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column source: '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+    err = targettype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column target: '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found');
+
+  raise debug '-->Column types:OK';
+
+  raise debug 'Checking SRID of geometry column';
+     query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+        || ' FROM ' || _pgr_quote_ident(tabname)
+        || ' WHERE ' || quote_ident(gname)
+        || ' IS NOT NULL LIMIT 1';
+     raise debug '%',query;
+     EXECUTE query INTO sridinfo;
+
+     err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+     perform _pgr_onError(err, 2, fnName,
+         'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+     srid := sridinfo.srid;
+  raise DEBUG '     --> OK';
+
+  raise debug 'Checking and creating Indices';
+     perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+  raise DEBUG '-->Check and create indices: OK';
+
+     gname=quote_ident(gname);
+     sourcename=quote_ident(sourcename);
+     targetname=quote_ident(targetname);
+
+
+  BEGIN
+  raise debug 'Checking Condition';
+    -- issue #193 & issue #210 & #213
+    -- this sql is for trying out the where clause
+    -- the select * is to avoid any column name conflicts
+    -- limit 1, just try on first record
+    -- if the where clasuse is ill formed it will be caught in the exception
+    sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+    EXECUTE sql into dummyRec;
+    -- end
+
+    -- if above where clasue works this one should work
+    -- any error will be caught by the exception also
+    sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NULL or '||
+		sourcename||' is null or '||targetname||' is null)=true '||rows_where;
+    raise debug '%',sql;
+    EXECUTE SQL  into notincluded;
+    EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+
+
+
+  BEGIN
+     raise DEBUG 'initializing %',vertname;
+       execute 'select * from _pgr_getTableName('||quote_literal(vertname)||',0)' into naming;
+       IF sname=naming.sname  AND vname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+       ELSE
+           set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+       END IF;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+                quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+       execute 'CREATE INDEX '||quote_ident(vname||'_the_geom_idx')||' ON '||_pgr_quote_ident(vertname)||'  USING GIST (the_geom)';
+       execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+       EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Initializing vertex table';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise notice 'Populating %, please wait...',vertname;
+       sql= 'with
+		lines as ((select distinct '||sourcename||' as id, _pgr_startpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+		                  ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||')
+			union (select distinct '||targetname||' as id,_pgr_endpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+			          ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||'))
+		,numberedLines as (select row_number() OVER (ORDER BY id) AS i,* from lines )
+		,maxid as (select id,max(i) as maxi from numberedLines group by id)
+		insert into '||_pgr_quote_ident(vertname)||'(id,the_geom)  (select id,the_geom  from numberedLines join maxid using(id) where i=maxi order by id)';
+       RAISE debug '%',sql;
+       execute sql;
+       GET DIAGNOSTICS totcount = ROW_COUNT;
+
+       sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' a, '||_pgr_quote_ident(vertname)||' b
+            where '||sourcename||'=b.id and '|| targetname||' in (select id from '||_pgr_quote_ident(vertname)||')';
+       RAISE debug '%',sql;
+       execute sql into included;
+
+
+
+       execute 'select max(id) from '||_pgr_quote_ident(vertname) into ecnt;
+       execute 'SELECT setval('||quote_literal(vertname||'_id_seq')||','||coalesce(ecnt,1)||' , false)';
+       raise notice '  ----->   VERTICES TABLE CREATED WITH  % VERTICES', totcount;
+       raise notice '                                       FOR   %  EDGES', included+notincluded;
+       RAISE NOTICE '  Edges with NULL geometry,source or target: %',notincluded;
+       RAISE NOTICE '                            Edges processed: %',included;
+       Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname),_pgr_quote_ident(vertname);
+       raise notice '----------------------------------------------';
+    END;
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+COMMENT ON FUNCTION pgr_createVerticesTable(text,text,text,text,text)
+IS 'args: edge_table, the_geom:=''the_geom'',source:=''source'', target:=''target'' rows_where:=''true'' - creates a vertices table based on the source and target identifiers for selected rows';
+
+
+CREATE OR REPLACE FUNCTION pgr_nodeNetwork(edge_table text, tolerance double precision,
+			id text default 'id', the_geom text default 'the_geom', table_ending text default 'noded',
+            rows_where text DEFAULT ''::text, outall boolean DEFAULT false) RETURNS text AS
+$BODY$
+DECLARE
+	
+	p_num int := 0;
+	p_ret text := '';
+    pgis_ver_old boolean := _pgr_versionless(postgis_lib_version(), '2.1.0.0');
+    vst_line_substring text;
+    vst_line_locate_point text;
+    intab text;
+    outtab text;
+    n_pkey text;
+    n_geom text;
+    naming record;
+    sname text;
+    tname text;
+    outname text;
+    srid integer;
+    sridinfo record;
+    splits bigint;
+    touched bigint;
+    untouched bigint;
+    geomtype text;
+    debuglevel text;
+    rows_where text;
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_nodeNetwork(''%'', %, ''%'', ''%'', ''%'', ''%'',  %)',
+    edge_table, tolerance, id,  the_geom, table_ending, rows_where, outall;
+  raise notice 'Performing checks, please wait .....';
+  execute 'show client_min_messages' into debuglevel;
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',0)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+	RAISE NOTICE '-------> % not found',edge_table;
+        RETURN 'FAIL';
+    ELSE
+	RAISE DEBUG '  -----> OK';
+    END IF;
+
+    intab=sname||'.'||tname;
+    outname=tname||'_'||table_ending;
+    outtab= sname||'.'||outname;
+    rows_where = CASE WHEN length(rows_where) > 2 and not outall THEN ' AND (' || rows_where || ')' ELSE '' END;
+    rows_where = CASE WHEN length(rows_where) > 2 THEN ' WHERE (' || rows_where || ')' ELSE '' END;
+  END;
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',id,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(id)||')' INTO n_pkey;
+       IF n_pkey is NULL then
+          raise notice  'ERROR: id column "%"  not found in %',id,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',the_geom,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(the_geom)||')' INTO n_geom;
+       IF n_geom is NULL then
+          raise notice  'ERROR: the_geom  column "%"  not found in %',the_geom,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+  IF n_pkey=n_geom THEN
+	raise notice  'ERROR: id and the_geom columns have the same name "%" in %',n_pkey,intab;
+        RETURN 'FAIL';
+  END IF;
+
+  BEGIN
+       	raise DEBUG 'Checking the SRID of the geometry "%"', n_geom;
+       	EXECUTE 'SELECT ST_SRID(' || quote_ident(n_geom) || ') as srid '
+          		|| ' FROM ' || _pgr_quote_ident(intab)
+          		|| ' WHERE ' || quote_ident(n_geom)
+          		|| ' IS NOT NULL LIMIT 1' INTO sridinfo;
+       	IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
+        	RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           	RETURN 'FAIL';
+       	END IF;
+       	srid := sridinfo.srid;
+       	raise DEBUG '  -----> SRID found %',srid;
+       	EXCEPTION WHEN OTHERS THEN
+           		RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           		RETURN 'FAIL';
+  END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_pkey,intab;
+      if (_pgr_isColumnIndexed(intab,n_pkey)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding  index "%_%_idx".',n_pkey,intab;
+
+	set client_min_messages  to warning;
+        execute 'create  index '||tname||'_'||n_pkey||'_idx on '||_pgr_quote_ident(intab)||' using btree('||quote_ident(n_pkey)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_geom,intab;
+      if (_pgr_iscolumnindexed(intab,n_geom)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding unique index "%_%_gidx".',intab,n_geom;
+	set client_min_messages  to warning;
+        execute 'CREATE INDEX '
+            || quote_ident(tname || '_' || n_geom || '_gidx' )
+            || ' ON ' || _pgr_quote_ident(intab)
+            || ' USING gist (' || quote_ident(n_geom) || ')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+---------------
+    BEGIN
+       raise DEBUG 'initializing %',outtab;
+       execute 'select * from _pgr_getTableName('||quote_literal(outtab)||',0)' into naming;
+       IF sname=naming.sname  AND outname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(outtab)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(outname)||','||quote_literal(n_geom)||')';
+       ELSE
+	   set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(outtab)||' (id bigserial PRIMARY KEY,old_id integer,sub_id integer,
+								source bigint,target bigint)';
+       END IF;
+       execute 'select geometrytype('||quote_ident(n_geom)||') from  '||_pgr_quote_ident(intab)||' limit 1' into geomtype;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(outname)||','||
+                quote_literal(n_geom)||','|| srid||', '||quote_literal(geomtype)||', 2)';
+       execute 'CREATE INDEX '||quote_ident(outname||'_'||n_geom||'_idx')||' ON '||_pgr_quote_ident(outtab)||'  USING GIST ('||quote_ident(n_geom)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+    END;
+----------------
+
+
+  raise notice 'Processing, please wait .....';
+
+
+    if pgis_ver_old then
+        vst_line_substring    := 'st_line_substring';
+        vst_line_locate_point := 'st_line_locate_point';
+    else
+        vst_line_substring    := 'st_linesubstring';
+        vst_line_locate_point := 'st_linelocatepoint';
+    end if;
+
+--    -- First creates temp table with intersection points
+    p_ret = 'create temp table intergeom on commit drop as (
+        select l1.' || quote_ident(n_pkey) || ' as l1id,
+               l2.' || quote_ident(n_pkey) || ' as l2id,
+	       l1.' || quote_ident(n_geom) || ' as line,
+	       _pgr_startpoint(l2.' || quote_ident(n_geom) || ') as source,
+	       _pgr_endpoint(l2.' || quote_ident(n_geom) || ') as target,
+               st_intersection(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ') as geom
+        from (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l1
+             join (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l2
+             on (st_dwithin(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ', ' || tolerance || '))'||
+        'where l1.' || quote_ident(n_pkey) || ' <> l2.' || quote_ident(n_pkey)||' and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false  )';
+    raise debug '%',p_ret;
+    EXECUTE p_ret;
+
+    -- second temp table with locus (index of intersection point on the line)
+    -- to avoid updating the previous table
+    -- we keep only intersection points occurring onto the line, not at one of its ends
+--    drop table if exists inter_loc;
+
+--HAD TO CHANGE THIS QUERY
+-- p_ret= 'create temp table inter_loc on commit drop as (
+--        select l1id, l2id, ' || vst_line_locate_point || '(line,point) as locus from (
+--        select DISTINCT l1id, l2id, line, (ST_DumpPoints(geom)).geom as point from intergeom) as foo
+--        where ' || vst_line_locate_point || '(line,point)<>0 and ' || vst_line_locate_point || '(line,point)<>1)';
+    p_ret= 'create temp table inter_loc on commit drop as ( select * from (
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,source) as locus from intergeom)
+         union
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,target) as locus from intergeom)) as foo
+        where locus<>0 and locus<>1)';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+
+    -- index on l1id
+    create index inter_loc_id_idx on inter_loc(l1id);
+
+    -- Then computes the intersection on the lines subset, which is much smaller than full set
+    -- as there are very few intersection points
+
+--- outab needs to be formally created with id, old_id, subid,the_geom, source,target
+---  so it can be inmediatly be used with createTopology
+
+--   EXECUTE 'drop table if exists ' || _pgr_quote_ident(outtab);
+--   EXECUTE 'create table ' || _pgr_quote_ident(outtab) || ' as
+     P_RET = 'insert into '||_pgr_quote_ident(outtab)||' (old_id,sub_id,'||quote_ident(n_geom)||') (  with cut_locations as (
+           select l1id as lid, locus
+           from inter_loc
+           -- then generates start and end locus for each line that have to be cut buy a location point
+           UNION ALL
+           select i.l1id  as lid, 0 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           UNION ALL
+           select i.l1id  as lid, 1 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           order by lid, locus
+       ),
+       -- we generate a row_number index column for each input line
+       -- to be able to self-join the table to cut a line between two consecutive locations
+       loc_with_idx as (
+           select lid, locus, row_number() over (partition by lid order by locus) as idx
+           from cut_locations
+       )
+       -- finally, each original line is cut with consecutive locations using linear referencing functions
+       select l.' || quote_ident(n_pkey) || ', loc1.idx as sub_id, ' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus) as ' || quote_ident(n_geom) || '
+       from loc_with_idx loc1 join loc_with_idx loc2 using (lid) join ' || _pgr_quote_ident(intab) || ' l on (l.' || quote_ident(n_pkey) || ' = loc1.lid)
+       where loc2.idx = loc1.idx+1
+           -- keeps only linestring geometries
+           and geometryType(' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus)) = ''LINESTRING'') ';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+	GET DIAGNOSTICS splits = ROW_COUNT;
+        execute 'with diff as (select distinct old_id from '||_pgr_quote_ident(outtab)||' )
+                 select count(*) from diff' into touched;
+	-- here, it misses all original line that did not need to be cut by intersection points: these lines
+	-- are already clean
+	-- inserts them in the final result: all lines which gid is not in the res table.
+	EXECUTE 'insert into ' || _pgr_quote_ident(outtab) || ' (old_id , sub_id, ' || quote_ident(n_geom) || ')
+                ( with used as (select distinct old_id from '|| _pgr_quote_ident(outtab)||')
+		select ' ||  quote_ident(n_pkey) || ', 1 as sub_id, ' ||  quote_ident(n_geom) ||
+		' from '|| _pgr_quote_ident(intab) ||' where  '||quote_ident(n_pkey)||' not in (select * from used)' || rows_where || ')';
+	GET DIAGNOSTICS untouched = ROW_COUNT;
+
+	raise NOTICE '  Split Edges: %', touched;
+	raise NOTICE ' Untouched Edges: %', untouched;
+	raise NOTICE '     Total original Edges: %', touched+untouched;
+        RAISE NOTICE ' Edges generated: %', splits;
+	raise NOTICE ' Untouched Edges: %',untouched;
+	raise NOTICE '       Total New segments: %', splits+untouched;
+        RAISE NOTICE ' New Table: %', outtab;
+        RAISE NOTICE '----------------------------------';
+
+    drop table  if exists intergeom;
+    drop table if exists inter_loc;
+    RETURN 'OK';
+END;
+$BODY$
+    LANGUAGE 'plpgsql' VOLATILE STRICT COST 100;
+
+
+COMMENT ON FUNCTION pgr_nodeNetwork(text, double precision, text, text, text, text, boolean )
+ IS  'edge_table, tolerance, id:=''id'', the_geom:=''the_geom'', table_ending:=''noded'' ';
+
+
+CREATE OR REPLACE FUNCTION pgr_labelGraph(
+                edge_table text,
+                id text default 'id',
+                source text default 'source',
+                target text default 'target',
+                subgraph text default 'subgraph',
+                rows_where text default 'true'
+        )
+        RETURNS character varying AS
+$BODY$
+
+DECLARE
+        naming record;
+        schema_name text;
+        table_name text;
+        garbage text;
+        incre integer;
+        table_schema_name text;
+        query text;
+        ecnt integer;
+        sql1 text;
+        rec1 record;
+        sql2 text;
+        rec2 record;
+        rec_count record;
+        rec_single record;
+        graph_id integer;
+        gids int [];
+
+BEGIN
+        raise notice 'Processing:';
+        raise notice 'pgr_brokenGraph(''%'',''%'',''%'',''%'',''%'',''%'')', edge_table,id,source,target,subgraph,rows_where;
+        raise notice 'Performing initial checks, please hold on ...';
+
+        Raise Notice 'Starting - Checking table ...';
+        BEGIN
+                raise debug 'Checking % table existance', edge_table;
+                execute 'select * from pgr_getTableName('|| quote_literal(edge_table) ||')' into naming;
+                schema_name = naming.sname;
+                table_name = naming.tname;
+                table_schema_name = schema_name||'.'||table_name;
+                IF schema_name is null then
+                        raise notice 'no schema';
+                        return 'FAIL';
+                else
+                        if table_name is null then
+                                raise notice 'no table';
+                                return 'FAIL';
+                        end if;
+                end if;
+        END;
+        Raise Notice 'Ending - Checking table';
+
+        Raise Notice 'Starting - Checking columns';
+        BEGIN
+                raise debug 'Checking exitance of necessary columns inside % table', edge_table;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(id) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no id column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(source) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no source column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(target) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no target column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(subgraph) ||')' into naming;
+                if naming.pgr_iscolumnintable = 't' then
+                        raise notice 'subgraph column already in the table';
+                        return 'FAIL';
+                end if;
+        END;
+        Raise Notice 'Ending - Checking columns';
+
+        Raise Notice 'Starting - Checking rows_where condition';
+        BEGIN
+                raise debug 'Checking rows_where condition';
+                query='select count(*) from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where;
+                execute query into ecnt;
+                raise debug '-->Rows where condition: OK';
+                raise debug '    --> OK';
+                EXCEPTION WHEN OTHERS THEN
+                        raise notice 'Got %', SQLERRM;
+                        Raise notice 'ERROR: Condition is not correct. Please execute the following query to test your condition';
+                        Raise notice '%', query;
+                        return 'FAIL';
+        END;
+        Raise Notice 'Ending - Checking rows_where condition';
+
+        garbage := 'garbage001';
+        incre := 1;
+        Raise Notice 'Starting - Checking temporary column';
+        Begin
+                raise debug 'Checking Checking temporary columns existance';
+
+                While True
+                        Loop
+                                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(garbage) ||')' into naming;
+                                If naming.pgr_iscolumnintable = 't' THEN
+                                        incre := incre + 1;
+                                        garbage := 'garbage00'||incre||'';
+                                ELSE
+                                        EXIT;
+                                END IF;
+                        End Loop;
+        End;
+        Raise Notice 'Ending - Checking temporary column';
+
+        Raise Notice 'Starting - Calculating subgraphs';
+        BEGIN
+                --------- Add necessary columns ----------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(subgraph) || ' INTEGER DEFAULT -1';
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(garbage) || ' INTEGER DEFAULT 0';
+                graph_id := 1;
+
+                EXECUTE 'select count(*) as count from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where ||'' into rec_count;
+                if rec_count.count = 0 then
+                        RETURN 'rows_where condition generated 0 rows';
+                end if;
+
+                WHILE TRUE
+                        LOOP
+                                ---------- Assign the very first -1 row graph_id ----------
+                                EXECUTE 'SELECT ' || pgr_quote_ident(id) || ' AS gid FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1 LIMIT 1' INTO rec_single;
+                                EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec_single.gid || '';
+
+                                --------- Search other rows with that particular graph_id -----------
+                                WHILE TRUE
+                                        LOOP
+                                                EXECUTE 'SELECT COUNT(*) FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0' into rec_count;
+                                                ----------- The following if else will check those rows which already have entertained ------------
+                                                IF (rec_count.count > 0) THEN
+                                                        sql1 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0';
+                                                        FOR rec1 IN EXECUTE sql1
+                                                                LOOP
+                                                                        sql2 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| pgr_quote_ident(source) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(source) ||' = '|| rec1.target ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.target ||'';
+                                                                        FOR rec2 IN EXECUTE sql2
+                                                                                LOOP
+                                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec2.gid || '';
+                                                                                END LOOP;
+                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(garbage) || ' = 1 WHERE ' || pgr_quote_ident(id) || ' = ' || rec1.gid || '';
+                                                                END LOOP;
+                                                ELSE
+                                                        EXIT;
+                                                END IF;
+                                        END LOOP;
+
+                                ------ Following is to exit the while loop. 0 means no more -1 id.
+                                EXECUTE 'SELECT COUNT(*) AS count FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1' INTO rec_count;
+                                If (rec_count.count = 0) THEN
+                                        EXIT;
+                                ELSE
+                                        graph_id := graph_id + 1;
+                                END IF;
+                        END LOOP;
+
+                ----------- Drop garbage column ------------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' DROP COLUMN ' || pgr_quote_ident(garbage) ||'';
+                Raise Notice 'Successfully complicated calculating subgraphs';
+        END;
+        Raise Notice 'Ending - Calculating subgraphs';
+
+        RETURN 'OK';
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCostMatrix(
+    edges_sql TEXT,
+    points_sql TEXT,
+    pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_pid, a.end_pid, a.agg_cost
+        FROM _pgr_withPoints($1, $2, $3, $3, $4,  $5, TRUE, TRUE) AS a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+--  DIJKSTRA DMatrix
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCostMatrix(edges_sql TEXT, vids ANYARRAY, directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2, $2, $3, true) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+
+--  BIDIRECTIONAL DIJKSTRA Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCostMatrix(edges_sql TEXT, vids ANYARRAY, directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_astarCostMatrix(
+    edges_sql TEXT, -- XY edges sql
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2, $2, $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+--  BIDIRECTIONAL ASTAR Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdAstarCostMatrix(
+    edges_sql TEXT,
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_bdAstarCostMatrix(TEXT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCostMatrix';
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_getTableName(IN tab text,OUT sname text,OUT tname text)
+RETURNS RECORD AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getTableName: This function will no longer be soported';
+    select * from _pgr_getTableName(tab, 0, 'pgr_getTableName') into sname,tname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_getColumnName(tab text, col text)
+RETURNS text AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getColumnName: This function will no longer be soported';
+    return _pgr_getColumnName(tab,col, 0, 'pgr_getColumnName');
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    select * from _pgr_getColumnName(tab,col,0, 'pgr_isColumnInTable') into cname;
+    return  cname IS not NULL;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnIndexed(tab text, col text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnIndexed: This function will no longer be soported';
+    return  _pgr_isColumnIndexed(tab,col);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+create or replace function pgr_quote_ident(idname text)
+returns text as
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    return  _pgr_quote_ident(idname);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_versionless(v1 text, v2 text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_versionless: This function will no longer be soported';
+    return  _pgr_versionless(v1,v2);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+create or replace function pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_startPoint: This function will no longer be soported';
+    return  _pgr_startPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_endPoint: This function will no longer be soported';
+    return  _pgr_endPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_apspJohnson(edges_sql text)
+    RETURNS SETOF pgr_costResult AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function: Use pgr_johnson instead';
+      has_reverse =_pgr_parameter_check('johnson', edges_sql, false);
+      sql = edges_sql;
+      IF (has_reverse) THEN
+           RAISE NOTICE 'reverse_cost column found, removing.';
+           sql = 'SELECT source, target, cost FROM (' || edges_sql || ') a';
+      END IF;
+
+      RETURN query
+         SELECT (row_number() over () - 1)::integer as seq, start_vid::integer AS id1, end_vid::integer AS id2, agg_cost AS cost
+         FROM  pgr_johnson(sql, TRUE);
+  END
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_apspWarshall(edges_sql text, directed boolean, has_rcost boolean)
+    RETURNS SETOF pgr_costResult AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function: Use pgr_floydWarshall instead';
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+      sql := edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_reverse) THEN
+           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+         ELSE raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+         END IF;
+      END IF;
+
+      RETURN query
+         SELECT (row_number() over () -1)::integer as seq, start_vid::integer AS id1, end_vid::integer AS id2, agg_cost AS cost
+         FROM  pgr_floydWarshall(sql, directed);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_astar(edges_sql TEXT, source_id INTEGER, target_id INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated signature pgr_astar(text, integer, integer, boolean, boolean)';
+    has_reverse =_pgr_parameter_check('astar', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost, x1,y1, x2, y2 FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+    FROM pgr_astar(sql, ARRAY[$2], ARRAY[$3], directed);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    sql TEXT,
+    source_vid INTEGER,
+    target_vid INTEGER,
+    directed BOOLEAN,
+    has_reverse_cost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdAstar';
+    has_reverse =_pgr_parameter_check('astar', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdAstar(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(edges_sql TEXT, start_vid INTEGER, end_vid INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdDijkstra';
+    has_reverse =_pgr_parameter_check('dijkstra', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdDijkstra(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstraPath(
+    sql text,
+    source INTEGER,
+    targets INTEGER ARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+    RETURNS SETOF pgr_costResult3 AS
+    $BODY$
+    DECLARE
+    has_reverse BOOLEAN;
+    new_sql TEXT;
+    result pgr_costResult3;
+    tmp pgr_costResult3;
+    sseq INTEGER;
+    i INTEGER;
+    BEGIN
+        RAISE NOTICE 'Deprecated function: Use pgr_dijkstra instead.';
+        has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+        new_sql = sql;
+        IF (array_ndims(targets) != 1) THEN
+            raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+
+        IF (has_reverse != has_rcost) THEN
+            IF (has_reverse) THEN
+                new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+            ELSE
+                raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+                USING ERRCODE = 'XX000';
+            END IF;
+        END IF;
+        SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+        sseq = 0; i = 1;
+        FOR result IN
+            SELECT seq, a.end_vid::INTEGER AS id1, a.node::INTEGER AS i2, a.edge::INTEGER AS id3, cost
+            FROM pgr_dijkstra(new_sql, source, targets, directed) a ORDER BY a.end_vid, seq LOOP
+            WHILE (result.id1 != targets[i]) LOOP
+                tmp.seq = sseq;
+                tmp.id1 = targets[i];
+                IF (targets[i] = source) THEN
+                    tmp.id2 = source;
+                    tmp.cost =0;
+                ELSE
+                    tmp.id2 = 0;
+                    tmp.cost = -1;
+                END IF;
+                tmp.id3 = -1;
+                RETURN next tmp;
+                i = i + 1;
+                sseq = sseq + 1;
+            END LOOP;
+        IF (result.id1 = targets[i] AND result.id3 != -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+        IF (result.id1 = targets[i] AND result.id3 = -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.id2 = source;
+            tmp.cost = 0;
+        ELSE
+            tmp.id2 = 0;
+            tmp.cost = -1;
+        END IF;
+        tmp.id3 = -1;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstracost(
+    sql text,
+    source INTEGER,
+    targets INTEGER array,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+result pgr_costResult;
+tmp pgr_costResult;
+sseq INTEGER;
+i INTEGER;
+BEGIN
+    RAISE NOTICE 'Deprecated function. Use pgr_dijkstraCost instead.';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    new_sql = sql;
+    IF (array_ndims(targets) != 1) THEN
+        raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+        USING ERRCODE = 'XX000';
+    END IF;
+
+
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+    sseq = 0; i = 1;
+    FOR result IN
+        SELECT ((row_number() over()) -1)::INTEGER, a.start_vid::INTEGER, a.end_vid::INTEGER, agg_cost
+        FROM pgr_dijkstraCost(new_sql, source, targets, directed) a ORDER BY end_vid LOOP
+        WHILE (result.id2 != targets[i]) LOOP
+            tmp.seq = sseq;
+            tmp.id1 = source;
+            tmp.id2 = targets[i];
+            IF (targets[i] = source) THEN
+                tmp.cost = 0;
+            ELSE
+                tmp.cost = -1;
+            END IF;
+            RETURN next tmp;
+            i = i + 1;
+            sseq = sseq + 1;
+        END LOOP;
+        IF (result.id2 = targets[i]) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = source;
+        tmp.id2 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.cost = 0;
+        ELSE
+            tmp.cost = -1;
+        END IF;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+create or replace function pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    returns integer as
+$body$
+
+declare
+    rr record;
+    pct float;
+    debuglevel text;
+
+begin
+    -- find the closest edge within tol distance
+    execute 'select * from ' || _pgr_quote_ident(edges) ||
+            ' where st_dwithin(''' || pnt::text ||
+            '''::geometry, the_geom, ' || tol || ') order by st_distance(''' || pnt::text ||
+            '''::geometry, the_geom) asc limit 1' into rr;
+
+    if rr.the_geom is not null then
+        -- deal with MULTILINESTRINGS
+        if geometrytype(rr.the_geom)='MULTILINESTRING' THEN
+            rr.the_geom := ST_GeometryN(rr.the_geom, 1);
+        end if;
+
+        -- project the point onto the linestring
+        execute 'show client_min_messages' into debuglevel;
+        SET client_min_messages='ERROR';
+        pct := st_line_locate_point(rr.the_geom, pnt);
+        execute 'set client_min_messages  to '|| debuglevel;
+
+        -- return the node we are closer to
+        if pct < 0.5 then
+            return rr.source;
+        else
+            return rr.target;
+        end if;
+    else
+        -- return a failure to find an edge within tol distance
+        return -1;
+    end if;
+end;
+$body$
+  language plpgsql volatile
+  cost 5;
+
+
+----------------------------------------------------------------------------
+
+create or replace function pgr_flipedges(ga geometry[])
+    returns geometry[] as
+$body$
+
+declare
+    nn integer;
+    i integer;
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_flipEdges';
+    -- get the count of edges, and return if only one edge
+    nn := array_length(ga, 1);
+    if nn=1 then
+        return ga;
+    end if;
+
+    -- determine if first needs to be flipped
+    g := _pgr_startpoint(ga[1]);
+
+    -- if the start of the first is connected to the second then it needs to be flipped
+    if _pgr_startpoint(ga[2])=g or _pgr_endpoint(ga[2])=g then
+        ga[1] := st_reverse(ga[1]);
+    end if;
+    g := _pgr_endpoint(ga[1]);
+
+    -- now if  the end of the last edge matchs the end of the current edge we need to flip it
+    for i in 2 .. nn loop
+        if _pgr_endpoint(ga[i])=g then
+            ga[i] := st_reverse(ga[i]);
+        end if;
+        -- save the end of this edge into the last end for the next cycle
+        g := _pgr_endpoint(ga[i]);
+    end loop;
+
+    return ga;
+end;
+$body$
+    language plpgsql immutable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_texttopoints(pnts text, srid integer DEFAULT(4326))
+    returns geometry[] as
+$body$
+
+declare
+    a text[];
+    t text;
+    p geometry;
+    g geometry[];
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_textToPoints';
+    -- convert commas to space and split on ';'
+    a := string_to_array(replace(pnts, ',', ' '), ';');
+    -- convert each 'x y' into a point geometry and concattenate into a new array
+    for t in select unnest(a) loop
+        p := st_pointfromtext('POINT(' || t || ')', srid);
+        g := g || p;
+    end loop;
+
+    return g;
+end;
+$body$
+    language plpgsql immutable;
+
+-----------------------------------------------------------------------
+
+create or replace function pgr_pointstovids(pnts geometry[], edges text, tol float8 DEFAULT(0.01))
+    returns integer[] as
+$body$
+
+declare
+    v integer[];
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_pointsToVids';
+    -- cycle through each point and locate the nearest edge and vertex on that edge
+    for g in select unnest(pnts) loop
+        v := v || pgr_pointtoedgenode(edges, g, tol);
+    end loop;
+
+    return v;
+end;
+$body$
+    language plpgsql stable;
+
+
+create or replace function pgr_pointstodmatrix(pnts geometry[], mode integer default (0), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+
+declare
+    r record;
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_pointsToDMatrix';
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    -- create an id for each point in the array and unnest it into a table nodes in the with clause
+    for r in with nodes as (select row_number() over()::integer as id, p from (select unnest(pnts) as p) as foo)
+        -- compute a row of distances
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j,
+                case when mode=0
+                    then st_distance(a.p, b.p)
+                    else st_distance_sphere(a.p, b.p)
+                end as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i loop
+
+        -- you must concat an array[array[]] to make dmatrix[][]
+        -- concat the row of distances to the dmatrix
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+end;
+$body$
+    language plpgsql stable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_vidstodmatrix(IN vids integer[], IN pnts geometry[], IN edges text, tol float8 DEFAULT(0.1), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+
+declare
+    i integer;
+    j integer;
+    nn integer;
+    rr record;
+    bbox geometry;
+    t float8[];
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    -- check if the input arrays has any -1 values, maybe this whould be a raise exception
+    if vids @> ARRAY[-1] then
+    raise notice 'Some vids are undefined (-1)!';
+    dmatrix := null;
+    ids := null;
+    return;
+    end if;
+
+    ids := vids;
+
+    -- get the count of nodes
+    nn := array_length(vids,1);
+
+    -- zero out a dummy row
+    for i in 1 .. nn loop
+        t := t || 0.0::float8;
+    end loop;
+
+    -- using the dummy row, zero out the whole matrix
+    for i in 1 .. nn loop
+    dmatrix := dmatrix || ARRAY[t];
+    end loop;
+
+    for i in 1 .. nn-1 loop
+        j := i;
+        -- compute the bbox for the point needed for this row
+        select st_expand(st_collect(pnts[id]), tol) into bbox
+          from (select generate_series as id from generate_series(i, nn)) as foo;
+
+        -- compute kdijkstra() for this row
+        for rr in execute 'select * from pgr_dijkstracost($1, $2, $3, false)'
+                  using 'select id, source, target, cost from ' || edges ||
+                        ' where the_geom && ''' || bbox::text || '''::geometry'::text, vids[i], vids[i+1:nn] loop
+
+            -- TODO need to check that all node were reachable from source
+            -- I think unreachable paths between nodes returns cost=-1.0
+
+            -- populate the matrix with the cost values, remember this is symmetric
+            j := j + 1;
+            -- raise notice 'cost(%,%)=%', i, j, rr.agg_cost;
+            dmatrix[i][j] := rr.agg_cost;
+            dmatrix[j][i] := rr.agg_cost;
+        end loop;
+    end loop;
+
+end;
+$body$
+    language plpgsql stable cost 200;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_vidsToDMatrix(sql TEXT, vids  INTEGER[], dir BOOLEAN, has_rcost BOOLEAN, want_symmetric BOOLEAN)
+RETURNS float8[] AS
+$BODY$
+DECLARE
+directed BOOLEAN;
+has_reverse BOOLEAN;
+edges_sql TEXT;
+dmatrix_row float8[];
+dmatrix float8[];
+cell RECORD;
+unique_vids INTEGER[];
+total BIGINT;
+from_v BIGINT;
+to_v BIGINT;
+BEGIN
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql = sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    unique_vids :=  ARRAY(SELECT DISTINCT UNNEST(vids) ORDER BY 1);
+
+    IF want_symmetric THEN
+        directed = false;
+    ELSE
+        directed = dir;
+    END IF;
+
+    total := array_length(unique_vids, 1);
+
+    -- initializing dmatrix
+    FOR i in 1 .. total LOOP
+        dmatrix_row := dmatrix_row || '+Infinity'::float8;
+    END LOOP;
+    FOR i in 1 .. total LOOP
+    dmatrix := dmatrix || ARRAY[dmatrix_row];
+    dmatrix[i][i] = 0;
+    END LOOP;
+
+    CREATE TEMP TABLE __x___y____temp AS
+        WITH result AS
+            (SELECT unnest(unique_vids) AS vid)
+        SELECT row_number() OVER() AS idx, vid FROM result;
+
+    FOR cell IN SELECT * FROM pgr_dijkstraCostMatrix(sql, unique_vids, directed) LOOP
+        SELECT idx INTO from_v FROM __x___y____temp WHERE vid =  cell.start_vid;
+        SELECT idx INTO to_v FROM __x___y____temp WHERE vid =  cell.end_vid;
+
+        dmatrix[from_v][to_v] = cell.agg_cost;
+        dmatrix[to_v][from_v] = cell.agg_cost;
+    END LOOP;
+
+    DROP TABLE IF EXISTS __x___y____temp;
+    RETURN dmatrix;
+
+    EXCEPTION WHEN others THEN
+       DROP TABLE IF EXISTS __x___y____temp;
+       raise exception '% %', SQLERRM, SQLSTATE;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100;
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated function';
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_dijkstra(sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_dijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN) IS 'pgr_dijkstra(Deprecated signature)';
+
+
+
+
+
+-- OLD SIGNATURE
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(edges_sql text, source BIGINT, distance FLOAT, directed BOOLEAN, has_rcost BOOLEAN)
+  RETURNS SETOF pgr_costresult AS
+  $BODY$
+  DECLARE
+  has_reverse BOOLEAN;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function';
+
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, FALSE);
+
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_reverse) THEN
+             -- the user says it doesn't have reverse cost but its false
+             -- removing from query
+             RAISE NOTICE 'Contradiction found: has_rcost set to false but reverse_cost column found';
+             sql = 'SELECT id, source, target, cost, -1 as reverse_cost FROM (' || edges_sql || ') __q ';
+         ELSE
+             -- the user says it has reverse cost but its false
+             -- can't do anything
+             RAISE EXCEPTION 'has_rcost set to true but reverse_cost not found';
+         END IF;
+      END IF;
+
+      RETURN query SELECT seq - 1 AS seq, node::integer AS id1, edge::integer AS id2, agg_cost AS cost
+                FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maximumcardinalitymatching(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
+
+
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+--INTERNAL FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+
+------------------------
+-- deprecated signatures
+-----------------------
+
+COMMENT ON FUNCTION pgr_astar(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_astar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdAstar( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdAstar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdDijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdDijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_dijkstra(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_dijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_drivingDistance(text,  BIGINT,  FLOAT8,  BOOLEAN,  BOOLEAN)
+    IS 'pgr_drivingDistance(Deprecated signature)';
+
+------------------------
+-- Renamed /deprecated
+-----------------------
+COMMENT ON FUNCTION pgr_apspJohnson(TEXT)
+    IS 'pgr_apspJohnson(Renamed function) use pgr_Johnson instead';
+
+COMMENT ON FUNCTION pgr_apspWarshall(text, boolean, boolean)
+    IS 'pgr_apspWarshall(Renamed function) use pgr_floydWarshall instead';
+
+COMMENT ON FUNCTION pgr_kdijkstraPath( text, INTEGER, INTEGER ARRAY, BOOLEAN, BOOLEAN)
+    IS 'pgr_kdijkstraPath(Renamed function) use pgr_dijkstra instead';
+
+COMMENT ON FUNCTION pgr_kdijkstracost( text, INTEGER, INTEGER array, BOOLEAN, BOOLEAN)
+    IS 'pgr_kDijkstraCost(Renamed function) use pgr_dijkstraCost instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+
+
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+
+
+COMMENT ON FUNCTION pgr_gsoc_vrppdtw( text, INTEGER, INTEGER)
+    IS 'pgr_gsoc_vrppdtw(Renamed function) use pgr_pickDeliverEuclidean instead';
+
+------------------------
+-- Deprecated functions
+-----------------------
+
+COMMENT ON FUNCTION pgr_flipedges(geometry[])
+    IS 'pgr_flipedges(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_texttopoints(text,  integer)
+    IS 'pgr_texttopoints(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstovids(pnts geometry[], edges text, tol float8)
+    IS 'pgr_pointstovids(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    IS 'pgr_pointtoedgenode(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstodmatrix(geometry[], integer)
+    IS 'pgr_pointstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidstodmatrix( integer[],  geometry[],  text, float8)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidsToDMatrix(TEXT,  INTEGER[], BOOLEAN, BOOLEAN, BOOLEAN)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+
+
+
+COMMENT ON FUNCTION pgr_getTableName(IN tab text)
+    IS 'pgr_getTableName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_getColumnName(tab text, col text)
+    IS 'pgr_getColumnName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnInTable(tab text, col text)
+    IS 'pgr_isColumnInTable(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnIndexed(tab text, col text)
+    IS 'pgr_isColumnIndexed(Deprecated function)';
+
+
+COMMENT ON FUNCTION pgr_quote_ident(idname text)
+    IS 'pgr_quote_ident(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_versionless(v1 text, v2 text)
+    IS 'pgr_versionless(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_startPoint(g geometry)
+    IS 'pgr_startPoint(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_endPoint(g geometry)
+    IS 'pgr_endPoint(Deprecated function)';
+
+
diff --git a/tools/sql-update-scripts/pgrouting--2.4.0--2.5.0.sql b/tools/sql-update-scripts/pgrouting--2.4.0--2.5.0.sql
new file mode 100644
index 0000000..3723bbb
--- /dev/null
+++ b/tools/sql-update-scripts/pgrouting--2.4.0--2.5.0.sql
@@ -0,0 +1,6522 @@
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-- pgRouting extension upgrade from 2.4.0 to 2.5.0
+-- generated by tools/build-extension-update-files
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+\echo Use "ALTER extension pgrouting update to '2.5.0'" to load this file. \quit
+
+
+-------------------------------------
+-- remove functions no longer in the 2.5.0 extension
+-------------------------------------
+
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_astar(text,anyarray,anyarray,boolean,integer,double precision,double precision,boolean);
+DROP FUNCTION IF EXISTS _pgr_astar(text,anyarray,anyarray,boolean,integer,double precision,double precision,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_astar(text,anyarray,bigint,boolean,integer,double precision,double precision,boolean);
+DROP FUNCTION IF EXISTS _pgr_astar(text,anyarray,bigint,boolean,integer,double precision,double precision,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_astar(text,bigint,anyarray,boolean,integer,double precision,double precision,boolean);
+DROP FUNCTION IF EXISTS _pgr_astar(text,bigint,anyarray,boolean,integer,double precision,double precision,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_astar(text,bigint,bigint,boolean,integer,double precision,double precision,boolean);
+DROP FUNCTION IF EXISTS _pgr_astar(text,bigint,bigint,boolean,integer,double precision,double precision,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_bddijkstra(text,bigint,bigint,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_bddijkstra(text,bigint,bigint,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,anyarray,anyarray,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,anyarray,anyarray,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,anyarray,bigint,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,anyarray,bigint,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,bigint,anyarray,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,bigint,anyarray,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,bigint,bigint,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,bigint,bigint,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_maxflow(text,anyarray,anyarray,text,boolean);
+DROP FUNCTION IF EXISTS _pgr_maxflow(text,anyarray,anyarray,text,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_maxflow(text,anyarray,bigint,text,boolean);
+DROP FUNCTION IF EXISTS _pgr_maxflow(text,anyarray,bigint,text,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_maxflow(text,bigint,anyarray,text,boolean);
+DROP FUNCTION IF EXISTS _pgr_maxflow(text,bigint,anyarray,text,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_maxflow(text,bigint,bigint,text,boolean);
+DROP FUNCTION IF EXISTS _pgr_maxflow(text,bigint,bigint,text,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_pickdeliver(text,integer,double precision,double precision,integer);
+DROP FUNCTION IF EXISTS _pgr_pickdeliver(text,integer,double precision,double precision,integer);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,anyarray,anyarray,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,anyarray,anyarray,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,anyarray,bigint,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,anyarray,bigint,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,bigint,anyarray,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,bigint,anyarray,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,bigint,bigint,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,bigint,bigint,boolean,character,boolean,boolean);
+
+
+------------------------------------------
+--       New functions:  2.3
+--    Signature change:  2.5
+-- Inner query changed:  2.5
+------------------------------------------
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_edgedisjointpaths(text,bigint,bigint,boolean);
+DROP FUNCTION IF EXISTS pgr_edgedisjointpaths(text,bigint,bigint,boolean);
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_edgedisjointpaths(text,bigint,anyarray,boolean);
+DROP FUNCTION IF EXISTS pgr_edgedisjointpaths(text,bigint,anyarray,boolean);
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_edgedisjointpaths(text,anyarray,bigint,boolean);
+DROP FUNCTION IF EXISTS pgr_edgedisjointpaths(text,anyarray,bigint,boolean);
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_edgedisjointpaths(text,anyarray,anyarray,boolean);
+DROP FUNCTION IF EXISTS pgr_edgedisjointpaths(text,anyarray,anyarray,boolean);
+
+
+
+
+
+
+
+
+
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+--- pgRouting provides geospatial routing functionality.
+--- http://pgrouting.org
+--- copyright
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+---
+--- This is free software; you can redistribute and/or modify it:
+--- the terms of the GNU General Public Licence. See the COPYING file.
+--- the terms of the MIT-X Licence. See the COPYING file.
+---
+--- The following functions have MIT-X licence:
+---     pgr_version()
+---     pgr_tsp(matrix float8[][], startpt integer, endpt integer DEFAULT -1, OUT seq integer, OUT id integer)
+---     _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+---     pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
+---
+---
+--- All other functions are under GNU General Public Licence.
+---
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+--
+-- WARNING: Any change in this file must be evaluated for compatibility.
+--          Changes cleanly handled by postgis_upgrade.sql are fine,
+--          other changes will require a bump in Major version.
+--          Currently only function replaceble by CREATE OR REPLACE
+--          are cleanly handled.
+--
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+
+--  pgRouting 2.0 types
+
+
+
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_version()
+RETURNS TABLE(
+        "version" varchar,
+        tag varchar,
+        hash varchar,
+        branch varchar,
+        boost varchar
+    ) AS
+$BODY$
+    SELECT '2.5.0'::varchar AS version,
+        'v2.5.0'::varchar AS tag,
+        ''::varchar AS hash,
+        ''::varchar AS branch,
+        '1.54.0'::varchar AS boost;
+$BODY$
+LANGUAGE sql IMMUTABLE;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getTableName(IN tab text, IN reportErrs int default 0, IN fnName text default '_pgr_getTableName', OUT sname text,OUT tname text)
+  RETURNS RECORD AS
+$$
+DECLARE
+        naming record;
+        i integer;
+        query text;
+        sn text; -- schema name
+        tn text; -- table name
+        ttype text; --table type for future use
+        err boolean;
+        debuglevel text;
+        var_types text[] = ARRAY['BASE TABLE', 'VIEW'];
+BEGIN
+
+    execute 'show client_min_messages' into debuglevel;
+
+
+    perform _pgr_msg( 0, fnName, 'Checking table ' || tab || ' exists');
+    --RAISE DEBUG 'Checking % exists',tab;
+
+    i := strpos(tab,'.');
+    IF (i <> 0) THEN
+        sn := split_part(tab, '.',1);
+        tn := split_part(tab, '.',2);
+    ELSE
+        sn := current_schema;
+        tn := tab;
+    END IF;
+
+
+   SELECT schema_name INTO sname
+   FROM information_schema.schemata WHERE schema_name = sn;
+
+    IF sname IS NOT NULL THEN -- found schema (as is)
+       SELECT table_name, table_type INTO tname, ttype
+       FROM information_schema.tables
+       WHERE
+                table_type = ANY(var_types) and
+                table_schema = sname and
+                table_name = tn ;
+        IF tname is NULL THEN
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  = ANY(var_types) and
+                table_schema = sname and
+                table_name = lower(tn) ORDER BY table_name;
+        END IF;
+    END IF;
+    IF sname is NULL or tname is NULL THEN --schema not found or table not found
+        SELECT schema_name INTO sname
+        FROM information_schema.schemata
+        WHERE schema_name = lower(sn) ;
+
+        IF sname IS NOT NULL THEN -- found schema (with lower caps)
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  =  ANY(var_types) and
+                table_schema = sname and
+                table_name= tn ;
+
+           IF tname IS NULL THEN
+                SELECT table_name, table_type INTO tname, ttype
+                FROM information_schema.tables
+                WHERE
+                    table_type  =  ANY(var_types) and
+                    table_schema = sname and
+                    table_name= lower(tn) ;
+           END IF;
+        END IF;
+    END IF;
+   err = (sname IS NULL OR tname IS NULL);
+   perform _pgr_onError(err, reportErrs, fnName, 'Table ' || tab ||' not found',' Check your table name', 'Table '|| tab || ' found');
+
+END;
+$$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(sname text, tname text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(col) into cname;
+
+    IF cname is null  THEN
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(lower(col))  into cname;
+    END if;
+
+    err = cname is null;
+
+    perform _pgr_onError(err, reportErrs, fnName,  'Column '|| col ||' not found', ' Check your column name','Column '|| col || ' found');
+    RETURN cname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(tab text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+
+    select * into cname from _pgr_getColumnName(sname,tname,col,reportErrs, fnName);
+    RETURN cname;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    select * from _pgr_getColumnName(tab,col,0, '_pgr_isColumnInTable') into cname;
+    return cname is not null;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(sname text, tname text, cname text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    pkey text;
+BEGIN
+    SELECT
+          pg_attribute.attname into pkey
+         --  format_type(pg_attribute.atttypid, pg_attribute.atttypmod)
+          FROM pg_index, pg_class, pg_attribute
+          WHERE
+                  pg_class.oid = _pgr_quote_ident(sname||'.'||tname)::regclass AND
+                  indrelid = pg_class.oid AND
+                  pg_attribute.attrelid = pg_class.oid AND
+                  pg_attribute.attnum = any(pg_index.indkey)
+                  AND indisprimary;
+
+    IF pkey=cname then
+          RETURN TRUE;
+    END IF;
+
+    SELECT a.index_name,
+           b.attname,
+           b.attnum,
+           a.indisunique,
+           a.indisprimary
+      INTO rec
+      FROM ( SELECT a.indrelid,
+                    a.indisunique,
+                    a.indisprimary,
+                    c.relname index_name,
+                    unnest(a.indkey) index_num
+               FROM pg_index a,
+                    pg_class b,
+                    pg_class c,
+                    pg_namespace d
+              WHERE b.relname=tname
+                AND b.relnamespace=d.oid
+                AND d.nspname=sname
+                AND b.oid=a.indrelid
+                AND a.indexrelid=c.oid
+           ) a,
+           pg_attribute b
+     WHERE a.indrelid = b.attrelid
+       AND a.index_num = b.attnum
+       AND b.attname = cname
+  ORDER BY a.index_name,
+           a.index_num;
+
+  RETURN FOUND;
+  EXCEPTION WHEN OTHERS THEN
+    perform _pgr_onError( true, reportErrs, fnName,
+    'Error when checking for the postgres system attributes', SQLERR);
+    RETURN FALSE;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(tab text, col text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    sname text;
+    tname text;
+    cname text;
+    pkey text;
+    value boolean;
+BEGIN
+    SELECT * into naming FROM _pgr_getTableName(tab, 0, fnName);
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    SELECT * into cname from _pgr_getColumnName(sname, tname, col, 0, fnName) ;
+    IF cname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    select * into value  from _pgr_isColumnIndexed(sname, tname, cname, reportErrs, fnName);
+    return value;
+END
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+create or replace function _pgr_quote_ident(idname text)
+    returns text as
+$body$
+declare
+    t text[];
+    pgver text;
+
+begin
+    pgver := regexp_replace(version(), E'^PostgreSQL ([^ ]+)[ ,].*$', E'\\1');
+
+    if _pgr_versionless(pgver, '9.2') then
+        select into t array_agg(quote_ident(term)) from
+            (select nullif(unnest, '') as term
+               from unnest(string_to_array(idname, '.'))) as foo;
+    else
+        select into t array_agg(quote_ident(term)) from
+            (select unnest(string_to_array(idname, '.', '')) as term) as foo;
+    end if;
+    return array_to_string(t, '.');
+end;
+$body$
+language plpgsql immutable;
+
+
+CREATE OR REPLACE FUNCTION _pgr_versionless(v1 text, v2 text)
+  RETURNS boolean AS
+$BODY$
+
+
+declare
+    v1a text[];
+    v2a text[];
+    nv1 integer;
+    nv2 integer;
+    ne1 integer;
+    ne2 integer;
+
+begin
+    -- separate components into an array, like:
+    -- '2.1.0-beta3dev'  =>  {2,1,0,beta3dev}
+    v1a := regexp_matches(v1, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+    v2a := regexp_matches(v2, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+
+    -- convert modifiers to numbers for comparison
+    -- we do not delineate between alpha1, alpha2, alpha3, etc
+    ne1 := case when v1a[4] is null or v1a[4]='' then 5
+                when v1a[4] ilike 'rc%' then 4
+                when v1a[4] ilike 'beta%' then 3
+                when v1a[4] ilike 'alpha%' then 2
+                when v1a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    ne2 := case when v2a[4] is null or v2a[4]='' then 5
+                when v2a[4] ilike 'rc%' then 4
+                when v2a[4] ilike 'beta%' then 3
+                when v2a[4] ilike 'alpha%' then 2
+                when v2a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    nv1 := v1a[1]::integer * 10000 +
+           coalesce(v1a[2], '0')::integer * 1000 +
+           coalesce(v1a[3], '0')::integer *  100 + ne1;
+    nv2 := v2a[1]::integer * 10000 +
+           coalesce(v2a[2], '0')::integer * 1000 +
+           coalesce(v2a[3], '0')::integer *  100 + ne2;
+
+    --raise notice 'nv1: %, nv2: %, ne1: %, ne2: %', nv1, nv2, ne1, ne2;
+
+    return nv1 < nv2;
+end;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+create or replace function _pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_startpoint(st_geometryn(g,1));
+    else
+        return st_startpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function _pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_endpoint(st_geometryn(g,1));
+    else
+        return st_endpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_parameter_check(fn text, sql text, big boolean default false)
+  RETURNS bool AS
+  $BODY$
+
+  DECLARE
+  rec record;
+  rec1 record;
+  has_rcost boolean;
+  safesql text;
+  BEGIN
+    IF (big) THEN
+       RAISE EXCEPTION 'This function is for old style functions';
+    END IF;
+
+    -- checking query is executable
+    BEGIN
+      safesql =  'select * from ('||sql||' ) AS __a__ limit 1';
+      execute safesql into rec;
+      EXCEPTION
+        WHEN OTHERS THEN
+            RAISE EXCEPTION 'Could not execute query please verify syntax of: '
+              USING HINT = sql;
+    END;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('dijkstra','astar') THEN
+        BEGIN
+          execute 'select id,source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: id, source, target, cost';
+        END;
+        execute 'select pg_typeof(id)::text as id_type, pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.id_type in ('integer'::text))
+              AND (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Error, columns ''source'', ''target'' must be of type int4, ''cost'' must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    IF fn IN ('astar') THEN
+        BEGIN
+          execute 'select x1,y1,x2,y2  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: x1,y1, x2,y2';
+        END;
+        execute 'select pg_typeof(x1)::text as x1_type, pg_typeof(y1)::text as y1_type, pg_typeof(x2)::text as x2_type, pg_typeof(y2)::text as y2_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.x1_type = 'double precision'::text)
+              AND (rec.y1_type = 'double precision'::text)
+              AND (rec.x2_type = 'double precision'::text)
+              AND (rec.y2_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Columns: x1, y1, x2, y2 must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('johnson') THEN
+        BEGIN
+          execute 'select source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING HINT = 'Please veryfy the column names: id, source, target, cost',
+                         ERRCODE = 'XX000';
+        END;
+
+        execute 'select pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Support for source,target columns only of type: integer. Support for Cost: double precision'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    -- Checking the data types of the optional reverse_cost";
+    has_rcost := false;
+    IF fn IN ('johnson','dijkstra','astar') THEN
+      BEGIN
+        execute 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||safesql||' ) AS __b__ limit 1 ' into rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+            return has_rcost;
+      END;
+      if (has_rcost) then
+        IF (big) then
+           IF  not (rec1.rev_type in ('bigint'::text, 'integer'::text, 'smallint'::text, 'double precision'::text, 'real'::text)) then
+             RAISE EXCEPTION 'Illegar type in optional parameter reverse_cost.'
+             USING ERRCODE = 'XX000';
+           END IF;
+        ELSE -- Version 2.0.0 is more restrictive
+           IF (rec1.rev_type != 'double precision') then
+             RAISE EXCEPTION 'Illegal type in optional parameter reverse_cost, must be of type float8'
+             USING ERRCODE = 'XX000';
+           END IF;
+        END IF;
+      end if;
+      return true;
+    END IF;
+    -- just for keeps
+    return true;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_onError(
+  IN errCond boolean,  -- true there is an error
+  IN reportErrs int,   -- 0, 1 or 2
+  IN fnName text,      -- function name that generates the error
+  IN msgerr text,      -- error message
+  IN hinto text default 'No hint', -- hint help
+  IN msgok text default 'OK')      -- message if everything is ok
+  RETURNS void AS
+$BODY$
+BEGIN
+  if errCond=true then
+     if reportErrs=0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+     else
+       if reportErrs = 2 then
+         raise notice '----> PGR ERROR in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+         raise raise_exception;
+       else
+         raise notice '----> PGR NOTICE in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+       end if;
+     end if;
+  else
+       raise debug 'PGR ----> %: %',fnName,msgok;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_msg(IN msgKind int, IN fnName text, IN msg text default '---->OK')
+  RETURNS void AS
+$BODY$
+BEGIN
+  if msgKind = 0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msg;
+  else
+       raise notice '----> PGR NOTICE in %: %',fnName,msg;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(sname text, tname text, cname text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    EXECUTE 'select data_type  from information_schema.columns '
+            || 'where table_name = '||quote_literal(tname)
+                 || ' and table_schema=' || quote_literal(sname)
+                 || ' and column_name='||quote_literal(cname)
+       into ctype;
+    err = ctype is null;
+    perform _pgr_onError(err, reportErrs, fnName,
+            'Type of Column '|| cname ||' not found',
+            'Check your column name',
+            'OK: Type of Column '|| cname || ' is ' || ctype);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(tab text, col text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+    select * into cname from _pgr_getColumnName(tab,col,reportErrs, fnName) ;
+    select * into ctype from _pgr_getColumnType(sname,tname,cname,reportErrs, fnName);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_get_statement(o_sql text)
+RETURNS text AS
+$BODY$
+DECLARE
+sql TEXT;
+BEGIN
+    EXECUTE 'SELECT statement FROM pg_prepared_statements WHERE name ='  || quote_literal(o_sql) || ' limit 1 ' INTO sql;
+    IF (sql IS NULL) THEN
+      RETURN   o_sql;
+    ELSE
+      RETURN  regexp_replace(sql, '(.)* as ', '', 'i');
+    END IF;
+END
+$BODY$
+LANGUAGE plpgsql STABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_checkVertTab(vertname text, columnsArr  text[],
+    IN reportErrs int default 1, IN fnName text default '_pgr_checkVertTab',
+    OUT sname text,OUT vname text)
+RETURNS record AS
+$BODY$
+DECLARE
+    cname text;
+    colname text;
+    naming record;
+    debuglevel text;
+    err  boolean;
+    msgKind int;
+
+BEGIN
+    msgKind = 0; -- debug_
+    execute 'show client_min_messages' into debuglevel;
+
+    perform _pgr_msg(msgKind, fnName, 'Checking table ' || vertname || ' exists');
+       select * from _pgr_getTableName(vertname, 0, fnName) into naming;
+       sname=naming.sname;
+       vname=naming.tname;
+       err = sname is NULL or vname is NULL;
+    perform _pgr_onError( err, 2, fnName,
+          'Vertex Table: ' || vertname || ' not found',
+          'Please create ' || vertname || ' using  _pgr_createTopology() or pgr_createVerticesTable()',
+          'Vertex Table: ' || vertname || ' found');
+
+
+    perform _pgr_msg(msgKind, fnName, 'Checking columns of ' || vertname);
+      FOREACH cname IN ARRAY columnsArr
+      loop
+         select _pgr_getcolumnName(vertname, cname, 0, fnName) into colname;
+         if colname is null then
+           perform _pgr_msg(msgKind, fnName, 'Adding column ' || cname || ' in ' || vertname);
+           set client_min_messages  to warning;
+                execute 'ALTER TABLE '||_pgr_quote_ident(vertname)||' ADD COLUMN '||cname|| ' integer';
+           execute 'set client_min_messages  to '|| debuglevel;
+           perform _pgr_msg(msgKind, fnName);
+         end if;
+      end loop;
+    perform _pgr_msg(msgKind, fnName, 'Finished checking columns of ' || vertname);
+
+    perform _pgr_createIndex(vertname , 'id' , 'btree', reportErrs, fnName);
+ END
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(
+    sname text, tname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    debuglevel text;
+    naming record;
+    tabname text;
+    query text;
+    msgKind int;
+BEGIN
+  msgKind = 0; -- debug_
+
+  execute 'show client_min_messages' into debuglevel;
+  tabname=_pgr_quote_ident(sname||'.'||tname);
+  perform _pgr_msg(msgKind, fnName, 'Checking ' || colname || ' column in ' || tabname || ' is indexed');
+    IF (_pgr_isColumnIndexed(sname,tname,colname, 0, fnName)) then
+       perform _pgr_msg(msgKind, fnName);
+    else
+      if indext = 'gist' then
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using gist('||quote_ident(colname)||')';
+      else
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using btree('||quote_ident(colname)||')';
+      end if;
+      perform _pgr_msg(msgKind, fnName, 'Adding index ' || tabname || '_' ||  colname || '_idx');
+      perform _pgr_msg(msgKind, fnName, ' Using ' ||  query);
+      set client_min_messages  to warning;
+      BEGIN
+        execute query;
+        EXCEPTION WHEN others THEN
+          perform _pgr_onError( true, reportErrs, fnName,
+            'Could not create index on:' || colname, SQLERRM);
+      END;
+      execute 'set client_min_messages  to '|| debuglevel;
+      perform _pgr_msg(msgKind, fnName);
+    END IF;
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(tabname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    naming record;
+    sname text;
+    tname text;
+
+BEGIN
+    select * from _pgr_getTableName(tabname, 2, fnName)  into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    execute _pgr_createIndex(sname, tname, colname, indext, reportErrs, fnName);
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pointToId(
+    point geometry,
+    tolerance double precision,
+    vertname text,
+    srid integer)
+
+  RETURNS bigint AS
+$BODY$
+DECLARE
+    rec record;
+    pid bigint;
+
+BEGIN
+    EXECUTE 'SELECT ST_Distance(
+        the_geom,
+        ST_GeomFromText(ST_AsText('
+                || quote_literal(point::text)
+                || '),'
+            || srid ||')) AS d, id, the_geom
+    FROM '||_pgr_quote_ident(vertname)||'
+    WHERE ST_DWithin(
+        the_geom,
+        ST_GeomFromText(
+            ST_AsText(' || quote_literal(point::text) ||'),
+            ' || srid || '),' || tolerance||')
+    ORDER BY d
+    LIMIT 1' INTO rec ;
+    IF rec.id IS NOT NULL THEN
+        pid := rec.id;
+    ELSE
+        execute 'INSERT INTO '||_pgr_quote_ident(vertname)||' (the_geom) VALUES ('||quote_literal(point::text)||')';
+        pid := lastval();
+END IF;
+
+RETURN pid;
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'many_to_many_dijkstra'
+LANGUAGE c VOLATILE;
+
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer, OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstra(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(Many to Many)';
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraVia(
+    edges_sql TEXT,
+    via_vertices ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    strict BOOLEAN DEFAULT FALSE,
+    U_turn_on_edge BOOLEAN DEFAULT TRUE,
+
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'dijkstraVia'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_johnson(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'johnson'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_floydWarshall(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'floydWarshall'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'astarManyToMany'
+LANGUAGE c VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, normal:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to Many)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true, normal:=false) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to Many)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid ANYARRAY,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+    equicost BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '$libdir/libpgrouting-2.5', 'many_withPointsDD'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_withPointsDD($1, $2, ARRAY[$3]::BIGINT[], $4, $5, $6, $7, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vids anyarray,
+    distance FLOAT,
+    directed BOOLEAN DEFAULT TRUE,
+    equicost BOOLEAN DEFAULT FALSE,
+    OUT seq integer,
+    OUT from_v  bigint,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '$libdir/libpgrouting-2.5', 'driving_many_to_dist'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vid bigint,
+    distance FLOAT8,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq integer,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer, directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'kshortest_path'
+    LANGUAGE c STABLE STRICT;
+
+-- V2 the graph is directed and there are no heap paths
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid integer, end_vid integer, k integer, has_rcost boolean)
+  RETURNS SETOF pgr_costresult3 AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated signature of pgr_ksp';
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql::text, false);
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_rcost) THEN
+           -- user says that it has reverse_cost but its not true
+           RAISE EXCEPTION 'has_reverse_cost set to true but reverse_cost not found';
+         ELSE
+           -- user says that it does not have reverse_cost but it does have it
+           -- to ignore we remove reverse_cost from the query
+           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+         END IF;
+      END IF;
+
+      RETURN query SELECT ((row_number() over()) -1)::integer  AS seq,  (path_id - 1)::integer AS id1, node::integer AS id2, edge::integer AS id3, cost
+            FROM _pgr_ksp(sql::text, start_vid, end_vid, k, TRUE, FALSE) WHERE path_id <= k;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer,
+  directed boolean default true, heap_paths boolean default false,
+  --directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  BEGIN
+         RETURN query SELECT *
+                FROM _pgr_ksp(edges_sql::text, start_vid, end_vid, k, directed, heap_paths);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsKSP(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    k INTEGER,
+
+    directed BOOLEAN DEFAULT TRUE,
+    heap_paths BOOLEAN DEFAULT FALSE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER, OUT path_id INTEGER, OUT path_seq INTEGER,
+    OUT node BIGINT, OUT edge BIGINT,
+    OUT cost FLOAT, OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'withPoints_ksp'
+    LANGUAGE c STABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_unnest_matrix(matrix float8[][], OUT start_vid integer, OUT end_vid integer, out agg_cost float8)
+RETURNS SETOF record AS
+
+$body$
+DECLARE
+
+m float8[];
+
+BEGIN
+    start_vid = 1;
+    foreach m slice 1 in  ARRAY matrix
+    LOOP
+        end_vid = 1;
+        foreach agg_cost in  ARRAY m
+        LOOP
+            RETURN next;
+            end_vid = end_vid + 1;
+        END LOOP;
+        start_vid = start_vid + 1;
+    END LOOP;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_tsp(
+    matrix float8[][],
+    startpt INTEGER,
+    endpt INTEGER DEFAULT -1,
+    OUT seq INTEGER,
+    OUT id INTEGER)
+RETURNS SETOF record AS
+$body$
+DECLARE
+table_sql TEXT;
+debuglevel TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature pgr_tsp(float8[][], integer, integer)';
+
+    CREATE TEMP TABLE ___tmp2 ON COMMIT DROP AS SELECT * FROM _pgr_unnest_matrix( matrix );
+
+
+    startpt := startpt + 1;
+    IF endpt = -1 THEN endpt := startpt;
+    END IF;
+
+
+    RETURN QUERY
+    WITH
+    result AS (
+        SELECT * FROM pgr_TSP(
+        $$SELECT * FROM ___tmp2 $$,
+        startpt, endpt,
+
+        tries_per_temperature :=  500 :: INTEGER,
+        max_changes_per_temperature := 30 :: INTEGER,
+        max_consecutive_non_changes := 500 :: INTEGER,
+
+        randomize:=false)
+    )
+    SELECT (row_number() over(ORDER BY result.seq) - 1)::INTEGER AS seq, (result.node - 1)::INTEGER AS id
+
+    FROM result WHERE NOT(result.node = startpt AND result.seq != 1);
+
+    DROP TABLE ___tmp2;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+
+
+
+CREATE OR  REPLACE FUNCTION pgr_tsp(sql text, start_id INTEGER, end_id INTEGER default (-1))
+returns setof pgr_costResult as
+$body$
+DECLARE
+table_sql TEXT;
+rec RECORD;
+debuglevel TEXT;
+n BIGINT;
+
+BEGIN
+    RAISE NOTICE 'Deprecated Signature pgr_tsp(sql, integer, integer)';
+
+    table_sql := 'CREATE TEMP TABLE ___tmp ON COMMIT DROP AS ' || sql ;
+    EXECUTE table_sql;
+
+
+    BEGIN
+        EXECUTE 'SELECT id, x, y FROM ___tmp' INTO rec;
+        EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                USING ERRCODE = 'XX000',
+                HINT = 'Please verify the column names: id, x, y';
+    END;
+
+    EXECUTE
+    'SELECT
+        pg_typeof(id)::text as id_type,
+        pg_typeof(x)::text as x_type,
+        pg_typeof(y)::text as y_type FROM ___tmp' INTO rec;
+
+
+    IF NOT((rec.id_type in ('integer'::text))
+        AND (rec.x_type = 'double precision'::text)
+        AND (rec.y_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION '''id'' must be of type INTEGER, ''x'' ad ''y'' must be of type FLOAT'
+            USING ERRCODE = 'XX000';
+    END IF;
+
+    EXECUTE 'SELECT count(*) AS n FROM (' || sql || ') AS __a__' INTO rec;
+    n = rec.n;
+
+    RETURN query
+        SELECT (seq - 1)::INTEGER AS seq, node::INTEGER AS id1, node::INTEGER AS id2, cost
+        FROM pgr_eucledianTSP(sql, start_id, end_id,
+
+            tries_per_temperature :=  500 * n :: INTEGER,
+            max_changes_per_temperature := 60 * n :: INTEGER,
+            max_consecutive_non_changes := 500 * n :: INTEGER,
+
+            randomize := false) WHERE seq <= n;
+    DROP TABLE ___tmp;
+
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+
+create or replace function _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+  as
+$body$
+declare
+    sql text;
+    r record;
+
+begin
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    sql := 'with nodes as (' || sqlin || ')
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j, st_distance(st_makepoint(a.x, a.y), st_makepoint(b.x, b.y)) as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i';
+
+    for r in execute sql loop
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+
+end;
+$body$
+language plpgsql stable cost 10;
+
+
+CREATE OR REPLACE FUNCTION pgr_TSP(
+    matrix_row_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '$libdir/libpgrouting-2.5', 'newTSP'
+LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_eucledianTSP(
+    coordinates_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '$libdir/libpgrouting-2.5', 'eucledianTSP'
+LANGUAGE c VOLATILE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_alphashape(sql text, alpha float8 DEFAULT 0, OUT x float8, OUT y float8)
+    RETURNS SETOF record
+    AS '$libdir/libpgrouting-2.5', 'alphashape'
+    LANGUAGE c VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_pointsAsPolygon(query varchar, alpha float8 DEFAULT 0)
+	RETURNS geometry AS
+	$$
+	DECLARE
+		r record;
+		geoms geometry[];
+		vertex_result record;
+		i int;
+		n int;
+		spos int;
+		q text;
+		x float8[];
+		y float8[];
+
+	BEGIN
+		geoms := array[]::geometry[];
+		i := 1;
+
+		FOR vertex_result IN EXECUTE 'SELECT x, y FROM pgr_alphashape('''|| query || ''', ' || alpha || ')'
+		LOOP
+			x[i] = vertex_result.x;
+			y[i] = vertex_result.y;
+			i := i+1;
+		END LOOP;
+
+		n := i;
+		IF n = 1 THEN
+			RAISE NOTICE 'n = 1';
+			RETURN NULL;
+		END IF;
+
+		spos := 1;
+		q := 'SELECT ST_GeometryFromText(''POLYGON((';
+		FOR i IN 1..n LOOP
+			IF x[i] IS NULL AND y[i] IS NULL THEN
+				q := q || ', ' || x[spos] || ' ' || y[spos] || '))'',0) AS geom;';
+				EXECUTE q INTO r;
+				geoms := geoms || array[r.geom];
+				q := '';
+			ELSE
+				IF q = '' THEN
+					spos := i;
+					q := 'SELECT ST_GeometryFromText(''POLYGON((';
+				END IF;
+				IF i = spos THEN
+					q := q || x[spos] || ' ' || y[spos];
+				ELSE
+					q := q || ', ' || x[i] || ' ' || y[i];
+				END IF;
+			END IF;
+		END LOOP;
+
+		RETURN ST_BuildArea(ST_Collect(geoms));
+	END;
+	$$
+	LANGUAGE 'plpgsql' VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'bd_astar'
+LANGUAGE C VOLATILE;
+
+
+
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed:=true, only_cost:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    BOOLEAN,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false);
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to Many)';
+
+
+
+-- one to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to Many)';
+
+
+-- bdDijkstra MANY TO MANY
+CREATE OR REPLACE FUNCTION _pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'bdDijkstra'
+LANGUAGE c VOLATILE;
+
+
+
+-- ONE TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- TODO directed BOOLEAN DEFAULT TRUE,  on version 3
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, false) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, true) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_vid integer,
+    target_vid integer,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '$libdir/libpgrouting-2.5', 'turn_restrict_shortest_path_vertex'
+LANGUAGE 'c' IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '$libdir/libpgrouting-2.5', 'turn_restrict_shortest_path_edge'
+LANGUAGE 'c' IMMUTABLE;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || edges_sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        -- no restrictions then its a dijkstra
+        RETURN query SELECT a.seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_dijkstra(new_sql, start_vid, end_vid, directed) a;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, start_vid, end_vid, directed, has_rcost, restrictions_sql);
+    RETURN;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_trspViaVertices(
+    edges_sql TEXT,
+    via_vids ANYARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult3 AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            new_sql :=
+               'WITH old_sql AS (' || edges_sql || ')' ||
+                '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        RETURN query SELECT (row_number() over())::INTEGER, path_id:: INTEGER, node::INTEGER,
+            (CASE WHEN edge = -2 THEN -1 ELSE edge END)::INTEGER, cost
+            FROM pgr_dijkstraVia(new_sql, via_vids, directed, strict:=true) WHERE edge != -1;
+        RETURN;
+    END IF;
+
+
+    -- make the call without contradiction from part of the user
+    RETURN query SELECT * FROM _pgr_trspViaVertices(new_sql, via_vids::INTEGER[], directed, has_rcost, restrictions_sql);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+
+    new_sql := sql;
+    IF (has_reverse != has_reverse_cost) THEN  -- user contradiction
+        IF (has_reverse) THEN
+            -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) THEN
+        -- no restrictions then its a with points
+        RETURN query SELECT a.seq-1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_withpoints(new_sql,
+            '(SELECT 1 as pid, ' || source_eid || 'as edge_id, ' || source_pos || '::float8 as fraction)'
+            || ' UNION '
+            || '(SELECT 2, ' || target_eid || ', ' || target_pos || ')' ::TEXT,
+            -1, -2, directed) a;
+        -- WHERE node != -2;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, source_eid, source_pos, target_eid, target_pos, directed, has_reverse_cost, turn_restrict_sql);
+    RETURN;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+create or replace function _pgr_trspViaVertices(sql text, vids integer[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    lrra boolean := false;
+    seq integer := 0;
+    seq2 integer := 0;
+
+begin
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(vids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from _pgr_trsp(sql, vids[i], vids[i+1], directed, has_rcost, turn_restrict_sql) as a loop
+            -- filter out the individual path ends except the last one
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --raise notice 'rr: %', rr;
+            if rr.id3 = -1 then
+                lrr := rr;
+                lrra := true;
+            else
+                seq := seq + 1;
+                rr.seq := seq;
+                return next rr;
+            end if;
+        end loop;
+    end loop;
+
+    if lrra then
+        seq := seq + 1;
+        lrr.seq := seq;
+        return next lrr;
+    end if;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+
+----------------------------------------------------------------------------------------------------------
+
+create or replace function pgr_trspViaEdges(sql text, eids integer[], pcts float8[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    first boolean := true;
+    seq integer := 0;
+    seq2 integer :=0;
+    has_reverse BOOLEAN;
+    point_is_vertex BOOLEAN := false;
+    edges_sql TEXT;
+    f float;
+
+begin
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql := sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (NOT has_rcost) THEN
+            -- user does not want to use reverse cost column
+            edges_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    FOREACH f IN ARRAY pcts LOOP
+        IF f in (0,1) THEN
+           point_is_vertex := true;
+        END IF;
+    END LOOP;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) AND NOT point_is_vertex THEN
+        -- no restrictions then its a _pgr_withPointsVia
+        RETURN query SELECT a.seq::INTEGER, path_id::INTEGER AS id1, node::INTEGER AS id2, edge::INTEGER AS id3, cost
+        FROM _pgr_withPointsVia(edges_sql, eids, pcts, directed) a;
+        RETURN;
+    END IF;
+
+    if array_length(eids, 1) != array_length(pcts, 1) then
+        raise exception 'The length of arrays eids and pcts must be the same!';
+    end if;
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(eids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from pgr_trsp(edges_sql,
+                                  eids[i], pcts[i],
+                                  eids[i+1], pcts[i+1],
+                                  directed,
+                                  has_rcost,
+                                  turn_restrict_sql) as a loop
+            -- combine intermediate via costs when cost is split across
+            -- two parts of a segment because it stops it and
+            -- restarts the next leg also on it
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --
+            -- there are multiple condition we have to deal with
+            -- between the end of one leg and start of the next
+            -- 1. same vertex_id. edge_id=-1; drop record with edge_id=-1
+            -- means: path ends on vertex
+            -- NOTICE:  rr: (19,1,44570022,-1,0)
+            -- NOTICE:  rr: (0,2,44570022,1768045,2.89691196717448)
+            -- 2. vertex_id=-1; sum cost components
+            -- means: path end/starts with the segment
+            -- NOTICE:  rr: (11,2,44569628,1775909,9.32885885148532)
+            -- NOTICE:  rr: (0,3,-1,1775909,0.771386350984395)
+
+            --raise notice 'rr: %', rr;
+            if first then
+                lrr := rr;
+                first := false;
+            else
+                if lrr.id3 = -1 then
+                    lrr := rr;
+                elsif lrr.id3 = rr.id3 then
+                    lrr.cost := lrr.cost + rr.cost;
+                    if rr.id2 = -1 then
+                        rr.id2 := lrr.id2;
+                    end if;
+                else
+                    seq := seq + 1;
+                    lrr.seq := seq;
+                    return next lrr;
+                    lrr := rr;
+                end if;
+            end if;
+        end loop;
+    end loop;
+
+    seq := seq + 1;
+    lrr.seq := seq;
+    return next lrr;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+----------------------------
+--    MANY TO MANY
+----------------------------
+
+
+CREATE OR REPLACE FUNCTION _pgr_maxflow(
+    edges_sql TEXT,
+    sources ANYARRAY,
+    targets ANYARRAY,
+    algorithm INTEGER DEFAULT 1,
+    only_flow BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'max_flow_many_to_many'
+    LANGUAGE c VOLATILE;
+
+
+
+
+------------------------------------
+-- 3 pgr_edmondsKarp
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+------------------------------------
+-- 2 boykov_kolmogorov
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+------------------------------------
+-- 1 pgr_pushRelabel
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT flow
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], algorithm := 1, only_flow := true);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], $3::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, $2::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxCardinalityMatch(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'edge_disjoint_paths_many_to_many'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    bigint,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    IN directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_contractGraph(
+    edges_sql TEXT,
+    contraction_order BIGINT[],
+    max_cycles integer DEFAULT 1,
+    forbidden_vertices BIGINT[] DEFAULT ARRAY[]::BIGINT[],
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT type TEXT,
+    OUT id BIGINT,
+    OUT contracted_vertices BIGINT[],
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost float)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'contractGraph'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliver(
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_cell_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'pickDeliver'
+LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliverEuclidean (
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'pickDeliverEuclidean'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_vrpOneDepot(
+    TEXT, -- customers_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_sql
+    INTEGER, -- depot_id
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+orders_sql TEXT;
+trucks_sql TEXT;
+matrix_sql TEXT;
+final_sql TEXT;
+BEGIN
+
+    orders_sql = $$WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    pickups AS (
+        SELECT id, x AS p_x, y AS p_y, open_time AS p_open, close_time AS p_close, service_time AS p_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vrp_orders.id AS id, order_unit AS demand, pickups.id AS p_node_id, p_x, p_y, p_open, p_close, p_service,
+    vrp_orders.id AS d_node_id, x AS d_x, y AS d_y, open_time AS d_open, close_time AS d_close, service_time AS d_service
+    FROM vrp_orders, pickups
+    WHERE vrp_orders.id != $$ || $4;
+
+
+    trucks_sql = $$ WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    vrp_vehicles AS ($$ || $2 || $$ ),
+    starts AS (
+        SELECT id AS start_node_id, x AS start_x, y AS start_y, open_time AS start_open, close_time AS start_close, service_time AS start_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vehicle_id AS id, capacity, starts.* FROM vrp_vehicles, starts;
+    $$;
+
+    final_sql = '
+    SELECT * FROM _pgr_pickDeliver(
+            $$' || orders_sql || '$$,
+            $$' || trucks_sql || '$$,
+            $$' || $3 || '$$,
+            max_cycles := 2,
+            initial_sol := 4 ); ';
+
+    RAISE DEBUG '%', orders_sql;
+    RAISE DEBUG '%', trucks_sql;
+    RAISE DEBUG '%', $3;
+    RAISE DEBUG '%', final_sql;
+
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+-----------------------------------------------------------------------
+-- Core function for vrp with sigle depot computation
+-- See README for description
+-----------------------------------------------------------------------
+--
+--
+
+create or replace function pgr_vrpOneDepot(
+	order_sql text,
+	vehicle_sql text,
+	cost_sql text,
+	depot_id integer,
+
+	OUT oid integer,
+	OUT opos integer,
+	OUT vid integer,
+	OUT tarrival integer,
+	OUT tdepart integer)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT order_id::INTEGER, stop_seq::INTEGER, vehicle_id::INTEGER, arrival_time::INTEGER, departure_time::INTEGER
+    FROM _pgr_vrpOneDepot($1, $2,
+       '
+            SELECT src_id AS start_vid, dest_id AS end_vid, traveltime AS agg_cost FROM ('||$3||') AS a
+       ',
+        $4
+    ) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_gsoc_vrppdtw(
+    customers_sql TEXT,
+    max_vehicles INTEGER,
+    capacity FLOAT,
+    speed FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+
+    OUT seq INTEGER,
+    OUT vehicle_id INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT stop_id BIGINT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+    orders_sql TEXT;
+    vehicles_sql TEXT;
+    final_sql TEXT;
+BEGIN
+    orders_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        pickups AS (
+            SELECT id, demand, x as p_x, y as p_y, opentime as p_open, closetime as p_close, servicetime as p_service
+            FROM  customer_data WHERE pindex = 0 AND id != 0
+        ),
+        deliveries AS (
+            SELECT pindex AS id, x as d_x, y as d_y, opentime as d_open, closetime as d_close, servicetime as d_service
+            FROM  customer_data WHERE dindex = 0 AND id != 0
+        )
+        SELECT * FROM pickups JOIN deliveries USING(id) ORDER BY pickups.id
+    $$;
+
+    vehicles_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ )
+        SELECT id, x AS start_x, y AS start_y,
+            opentime AS start_open, closetime AS start_close, $$ ||
+            capacity || $$ AS capacity, $$ || max_vehicles || $$ AS number, $$ || speed || $$ AS speed
+            FROM customer_data WHERE id = 0 LIMIT 1
+        $$;
+--  seq | vehicle_id | vehicle_seq | stop_id | travel_time | arrival_time | wait_time | service_time | departure_time
+    final_sql = $$ WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        p_deliver AS (SELECT * FROM _pgr_pickDeliverEuclidean('$$ || orders_sql || $$',  '$$ || vehicles_sql || $$',  1, $$ || max_cycles || $$ )),
+        picks AS (SELECT p_deliver.*, pindex, dindex, id AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 2)),
+        delivers AS (SELECT p_deliver.*, pindex, dindex, dindex AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 3)),
+        depots AS (SELECT p_deliver.*, 0 as pindex, 0 as dindex, 0 AS the_id FROM p_deliver WHERE (stop_type IN (-1,1,6))),
+        the_union AS (SELECT * FROM picks UNION SELECT * FROM delivers UNION SELECT * from depots)
+
+        SELECT (row_number() over(ORDER BY a.seq))::INTEGER, vehicle_seq, a.stop_seq, the_id::BIGINT, a.travel_time, a.arrival_time, a.wait_time, a.service_time, a.departure_time
+        FROM (SELECT * FROM the_union) AS a ORDER BY a.seq
+        $$;
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+CREATE OR REPLACE FUNCTION pgr_gsoc_vrppdtw(
+    sql text,
+    vehicle_num INTEGER,
+    capacity INTEGER
+)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+customers_sql TEXT;
+BEGIN
+    RETURN query
+         SELECT a.seq, vehicle_id::INTEGER AS id1, stop_id::INTEGER AS id2, departure_time AS cost
+        FROM _pgr_gsoc_vrppdtw($1, $2, $3, 1, 30) AS a WHERE vehicle_id NOT IN (-2);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION _pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN,
+    driving_side CHAR,
+    details BOOLEAN,
+
+    only_cost BOOLEAN DEFAULT false, -- gets path
+    normal BOOLEAN DEFAULT true, -- false for many to onu
+
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'withPoints'
+LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], ARRAY[$4]::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], ARRAY[$4]::bigint[], $5, $6, $7, FALSE, FALSE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], $4::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], $4::BIGINT[], $5,  $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION  _pgr_withPointsVia(
+    sql text,
+    via_edges bigint[],
+    fraction float[],
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  has_rcost boolean;
+  sql_new_vertices text := ' ';
+  sql_on_vertex text;
+  v_union text := ' ';
+  dummyrec record;
+  rec1 record;
+  via_vertices int[];
+  sql_safe text;
+  new_edges text;
+  BEGIN
+     BEGIN
+        sql_safe = 'SELECT id, source, target, cost, reverse_cost FROM ('|| sql || ') AS __a';
+
+        EXECUTE 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||sql_safe||' ) AS __b__ limit 1 ' INTO rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+     END;
+
+
+      IF array_length(via_edges, 1) != array_length(fraction, 1) then
+        RAISE EXCEPTION 'The length of via_edges is different of length of via_edges';
+      END IF;
+
+      FOR i IN 1 .. array_length(via_edges, 1)
+      LOOP
+          IF fraction[i] = 0 THEN
+              sql_on_vertex := 'SELECT source FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.source;
+          ELSE IF fraction[i] = 1 THEN
+              sql_on_vertex := 'SELECT target FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.target;
+          ELSE
+              via_vertices[i] = -i;
+              IF has_rcost THEN
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost,
+                              reverse_cost * (1 - ' || fraction[i] || ')  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost,
+                              reverse_cost *  ' || fraction[i] || '  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' where id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               ELSE
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               END IF;
+          END IF;
+          END IF;
+     END LOOP;
+
+     IF sql_new_vertices = ' ' THEN
+         new_edges := sql;
+     ELSE
+         IF has_rcost THEN
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost,
+                         lead(cost) OVER w  - cost AS reverse_cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL),
+                   second_part AS ( SELECT * FROM (SELECT id, lead(source) OVER w  AS source, source as target,
+                         reverse_cost - lead(reverse_cost) OVER w  AS cost,
+                         reverse_cost - lead(reverse_cost) OVER w  AS reverse_cost
+                      FROM  the_union  WHERE target > 0 and reverse_cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY reverse_cost ASC) ) as n2
+                      WHERE source IS NOT NULL),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part)
+                             UNION
+                       (SELECT * FROM second_part) ) _union )
+                  SELECT *  FROM more_union';
+         ELSE
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL ),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part) ) _union )
+                  SELECT *  FROM more_union';
+          END IF;
+      END IF;
+
+ -- raise notice '%', new_edges;
+     sql_new_vertices := sql_new_vertices || v_union || ' (' || sql || ')';
+     RETURN query SELECT *
+         FROM pgr_dijkstraVia(new_edges, via_vertices, directed, has_rcost);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_lineGraph(
+    TEXT, -- edges_sql
+    directed BOOLEAN DEFAULT true,
+    OUT seq INTEGER,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost FLOAT,
+    OUT reverse_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'lineGraph'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_connectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'connectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_strongComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'strongComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_biconnectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the edge in the component
+    OUT n_seq INTEGER,          -- nth_seq of the edge in the component
+    OUT edge BIGINT)            -- the number of the edge
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'biconnectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_articulationPoints(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'articulationPoints'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_bridges(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT edge BIGINT)            -- the number of the edge 
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'bridges'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_createtopology(edge_table text, tolerance double precision,
+		   the_geom text default 'the_geom', id text default 'id',
+		   source text default 'source', target text default 'target',rows_where text default 'true',
+		   clean boolean default FALSE)
+RETURNS VARCHAR AS
+$BODY$
+
+DECLARE
+    points record;
+    sridinfo record;
+    source_id bigint;
+    target_id bigint;
+    totcount bigint;
+    rowcount bigint;
+    srid integer;
+    sql text;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    idname text;
+    sourcename text;
+    targetname text;
+    notincluded integer;
+    i integer;
+    naming record;
+    info record;
+    flag boolean;
+    query text;
+    idtype text;
+    gtype text;
+    sourcetype text;
+    targettype text;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+    msgKind int;
+    emptied BOOLEAN;
+
+BEGIN
+    msgKind = 1; -- notice
+    fnName = 'pgr_createTopology';
+    raise notice 'PROCESSING:';
+    raise notice 'pgr_createTopology(''%'', %, ''%'', ''%'', ''%'', ''%'', rows_where := ''%'', clean := %)',edge_table,tolerance,the_geom,id,source,target,rows_where, clean;
+    execute 'show client_min_messages' into debuglevel;
+
+
+    raise notice 'Performing checks, please wait .....';
+
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+        sname=naming.sname;
+        tname=naming.tname;
+        tabname=sname||'.'||tname;
+        vname=tname||'_vertices_pgr';
+        vertname= sname||'.'||vname;
+        rows_where = ' AND ('||rows_where||')';
+      raise DEBUG '     --> OK';
+
+
+      raise debug 'Checking column names in edge table';
+        select * into idname     from _pgr_getColumnName(sname, tname,id,2,fnName);
+        select * into sourcename from _pgr_getColumnName(sname, tname,source,2,fnName);
+        select * into targetname from _pgr_getColumnName(sname, tname,target,2,fnName);
+        select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2,fnName);
+
+
+        err = sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname;
+        perform _pgr_onError( err, 2, fnName,
+               'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
+	       'Column names are OK');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking column types in edge table';
+        select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+        select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+        select * into idtype from _pgr_getColumnType(sname,tname,idname,1, fnName);
+
+        err = idtype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column id:'|| idname, ' Expected type of '|| idname || ' is integer,smallint or bigint but '||idtype||' was found');
+
+        err = sourcetype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column source:'|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+        err = targettype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column target:'|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or bigint but '||targettype||' was found');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking SRID of geometry column';
+         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+            || ' FROM ' || _pgr_quote_ident(tabname)
+            || ' WHERE ' || quote_ident(gname)
+            || ' IS NOT NULL LIMIT 1';
+         raise debug '%',query;
+         EXECUTE query INTO sridinfo;
+
+         err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+         perform _pgr_onError(err, 2, fnName,
+	     'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+
+         srid := sridinfo.srid;
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking and creating indices in edge table';
+        perform _pgr_createIndex(sname, tname , idname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+
+        gname=quote_ident(gname);
+        idname=quote_ident(idname);
+        sourcename=quote_ident(sourcename);
+        targetname=quote_ident(targetname);
+      raise DEBUG '     --> OK';
+
+
+
+
+
+    BEGIN
+        -- issue #193 & issue #210 & #213
+        -- this sql is for trying out the where clause
+        -- the select * is to avoid any column name conflicts
+        -- limit 1, just try on first record
+        -- if the where clasuse is ill formed it will be caught in the exception
+        sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+        EXECUTE sql into dummyRec;
+        -- end
+
+        -- if above where clasue works this one should work
+        -- any error will be caught by the exception also
+        sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NOT NULL AND '||
+	    idname||' IS NOT NULL)=false '||rows_where;
+        EXECUTE SQL  into notincluded;
+
+        if clean then
+            raise debug 'Cleaning previous Topology ';
+               execute 'UPDATE ' || _pgr_quote_ident(tabname) ||
+               ' SET '||sourcename||' = NULL,'||targetname||' = NULL';
+        else
+            raise debug 'Creating topology for edges with non assigned topology';
+            if rows_where=' AND (true)' then
+                rows_where=  ' and ('||quote_ident(sourcename)||' is null or '||quote_ident(targetname)||' is  null)';
+            end if;
+        end if;
+        -- my thoery is that the select Count(*) will never go through here
+        EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+             RAISE NOTICE '%',sql;
+             RETURN 'FAIL';
+    END;
+
+    BEGIN
+         raise DEBUG 'initializing %',vertname;
+         execute 'select * from _pgr_getTableName('||quote_literal(vertname)
+                                                  || ',0,' || quote_literal(fnName) ||' )' into naming;
+         emptied = false;
+         set client_min_messages  to warning;
+         IF sname=naming.sname AND vname=naming.tname  THEN
+            if clean then
+                execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+                execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+                emptied = true;
+            end if;
+         ELSE -- table doesn't exist
+            execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+            emptied = true;
+         END IF;
+         IF (emptied) THEN
+             execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+	         quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+             perform _pgr_createIndex(vertname , 'the_geom'::text , 'gist'::text);
+         END IF;
+         execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id"}''::text[])' into naming;
+         execute 'set client_min_messages  to '|| debuglevel;
+         raise DEBUG  '  ------>OK';
+         EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: something went wrong when initializing the verties table';
+             RETURN 'FAIL';
+    END;
+
+
+
+    raise notice 'Creating Topology, Please wait...';
+        rowcount := 0;
+        FOR points IN EXECUTE 'SELECT ' || idname || '::bigint AS id,'
+            || ' _pgr_StartPoint(' || gname || ') AS source,'
+            || ' _pgr_EndPoint('   || gname || ') AS target'
+            || ' FROM '  || _pgr_quote_ident(tabname)
+            || ' WHERE ' || gname || ' IS NOT NULL AND ' || idname||' IS NOT NULL '||rows_where
+        LOOP
+
+            rowcount := rowcount + 1;
+            IF rowcount % 1000 = 0 THEN
+                RAISE NOTICE '% edges processed', rowcount;
+            END IF;
+
+
+            source_id := _pgr_pointToId(points.source, tolerance,vertname,srid);
+            target_id := _pgr_pointToId(points.target, tolerance,vertname,srid);
+            BEGIN
+                sql := 'UPDATE ' || _pgr_quote_ident(tabname) ||
+                    ' SET '||sourcename||' = '|| source_id::text || ','||targetname||' = ' || target_id::text ||
+                    ' WHERE ' || idname || ' =  ' || points.id::text;
+
+                IF sql IS NULL THEN
+                    RAISE NOTICE 'WARNING: UPDATE % SET source = %, target = % WHERE % = % ', tabname, source_id::text, target_id::text, idname,  points.id::text;
+                ELSE
+                    EXECUTE sql;
+                END IF;
+                EXCEPTION WHEN OTHERS THEN
+                    RAISE NOTICE '%', SQLERRM;
+                    RAISE NOTICE '%',sql;
+                    RETURN 'FAIL';
+            end;
+        END LOOP;
+        raise notice '-------------> TOPOLOGY CREATED FOR  % edges', rowcount;
+        RAISE NOTICE 'Rows with NULL geometry or NULL id: %',notincluded;
+        Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname), _pgr_quote_ident(vertname);
+        raise notice '----------------------------------------------';
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+COMMENT ON FUNCTION pgr_createTopology(text, double precision,text,text,text,text,text,boolean)
+IS 'args: edge_table,tolerance, the_geom:=''the_geom'',source:=''source'', target:=''target'',rows_where:=''true'' - fills columns source and target in the geometry table and creates a vertices table for selected rows';
+
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
+RETURNS character varying AS
+$BODY$
+
+DECLARE
+    points record;
+    seg record;
+    naming record;
+    sridinfo record;
+    srid integer;
+    ecnt integer;
+    vertname text;
+    sname text;
+    tname text;
+    vname text;
+    idname text;
+    sourcename text;
+    targetname text;
+    sourcetype text;
+    targettype text;
+    geotype text;
+    gname text;
+    tabName text;
+    flag boolean ;
+    query text;
+    selectionquery text;
+    i integer;
+    tot integer;
+    NumIsolated integer;
+    numdeadends integer;
+    numgaps integer;
+    NumCrossing integer;
+    numRings integer;
+    debuglevel text;
+
+
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_analyzeGraph(''%'',%,''%'',''%'',''%'',''%'',''%'')',edge_table,tolerance,the_geom,id,source,target,rows_where;
+  raise notice 'Performing checks, please wait ...';
+  execute 'show client_min_messages' into debuglevel;
+
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',2)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    rows_where = ' AND ('||rows_where||')';
+    raise DEBUG '     --> OK';
+
+  END;
+
+  BEGIN
+       raise debug 'Checking Vertices table';
+       execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","cnt","chk"}''::text[])' into naming;
+       execute 'UPDATE '||_pgr_quote_ident(vertname)||' SET cnt=0 ,chk=0';
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the vertices table';
+          RETURN 'FAIL';
+  END;
+
+
+
+  BEGIN
+       raise debug 'Checking column names in edge table';
+       select * into idname     from _pgr_getColumnName(sname, tname,id,2);
+       select * into sourcename from _pgr_getColumnName(sname, tname,source,2);
+       select * into targetname from _pgr_getColumnName(sname, tname,target,2);
+       select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2);
+
+
+       perform _pgr_onError( sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname, 2,
+                       'pgr_analyzeGraph',  'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
+                       'Column names are OK');
+
+        raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column names';
+          RETURN 'FAIL';
+  END;
+
+
+  BEGIN
+       raise debug 'Checking column types in edge table';
+       select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1);
+       select * into targettype from _pgr_getColumnType(sname,tname,targetname,1);
+
+       perform _pgr_onError(sourcetype not in('integer','smallint','bigint') , 2,
+                       'pgr_analyzeGraph',  'Wrong type of Column '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found',
+                       'Type of Column '|| sourcename || ' is ' || sourcetype);
+
+       perform _pgr_onError(targettype not in('integer','smallint','bigint') , 2,
+                       'pgr_analyzeGraph',  'Wrong type of Column '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found',
+                       'Type of Column '|| targetname || ' is ' || targettype);
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column types';
+          RETURN 'FAIL';
+   END;
+
+   BEGIN
+       raise debug 'Checking SRID of geometry column';
+         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+            || ' FROM ' || _pgr_quote_ident(tabname)
+            || ' WHERE ' || quote_ident(gname)
+            || ' IS NOT NULL LIMIT 1';
+         EXECUTE QUERY INTO sridinfo;
+
+         perform _pgr_onError( sridinfo IS NULL OR sridinfo.srid IS NULL,2,
+                 'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname,
+                 'SRID of '||gname||' is '||sridinfo.srid);
+
+         IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
+             RAISE NOTICE ' Can not determine the srid of the geometry "%" in table %', the_geom,tabname;
+             RETURN 'FAIL';
+         END IF;
+         srid := sridinfo.srid;
+         raise DEBUG '     --> OK';
+         EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM;--issue 210,211,213
+             RAISE NOTICE 'ERROR: something went wrong when checking for SRID of % in table %', the_geom,tabname;
+             RETURN 'FAIL';
+    END;
+
+
+    BEGIN
+       raise debug 'Checking  indices in edge table';
+       perform _pgr_createIndex(tabname , idname , 'btree');
+       perform _pgr_createIndex(tabname , sourcename , 'btree');
+       perform _pgr_createIndex(tabname , targetname , 'btree');
+       perform _pgr_createIndex(tabname , gname , 'gist');
+
+       gname=quote_ident(gname);
+       sourcename=quote_ident(sourcename);
+       targetname=quote_ident(targetname);
+       idname=quote_ident(idname);
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking indices';
+          RETURN 'FAIL';
+    END;
+
+
+    BEGIN
+        query='select count(*) from '||_pgr_quote_ident(tabname)||' where true  '||rows_where;
+        EXECUTE query into ecnt;
+        raise DEBUG '-->Rows Where condition: OK';
+        raise DEBUG '     --> OK';
+         EXCEPTION WHEN OTHERS THEN
+            RAISE NOTICE 'Got %', SQLERRM;  --issue 210,211,213
+            RAISE NOTICE 'ERROR: Condition is not correct. Please execute the following query to test your condition';
+            RAISE NOTICE '%',query;
+            RETURN 'FAIL';
+    END;
+
+    selectionquery ='with
+           selectedRows as( (select '||sourcename||' as id from '||_pgr_quote_ident(tabname)||' where true '||rows_where||')
+                           union
+                           (select '||targetname||' as id from '||_pgr_quote_ident(tabname)||' where true '||rows_where||'))';
+
+
+
+
+
+   BEGIN
+       RAISE NOTICE 'Analyzing for dead ends. Please wait...';
+       query= 'with countingsource as (select a.'||sourcename||' as id,count(*) as cnts
+               from (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) a  group by a.'||sourcename||')
+                     ,countingtarget as (select a.'||targetname||' as id,count(*) as cntt
+                    from (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) a  group by a.'||targetname||')
+                   ,totalcount as (select id,case when cnts is null and cntt is null then 0
+                                                   when cnts is null then cntt
+                                                   when cntt is null then cnts
+                                                   else cnts+cntt end as totcnt
+                                   from ('||_pgr_quote_ident(vertname)||' as a left
+                                   join countingsource as t using(id) ) left join countingtarget using(id))
+               update '||_pgr_quote_ident(vertname)||' as a set cnt=totcnt from totalcount as b where a.id=b.id';
+       raise debug '%',query;
+       execute query;
+       query=selectionquery||'
+              SELECT count(*)  FROM '||_pgr_quote_ident(vertname)||' WHERE cnt=1 and id in (select id from selectedRows)';
+       raise debug '%',query;
+       execute query  INTO numdeadends;
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'Got %', SQLERRM;  --issue 210,211,213
+          RAISE NOTICE 'ERROR: something went wrong when analizing for dead ends';
+          RETURN 'FAIL';
+   END;
+
+
+
+    BEGIN
+          RAISE NOTICE 'Analyzing for gaps. Please wait...';
+          query = 'with
+                   buffer as (select id,st_buffer(the_geom,'||tolerance||') as buff from '||_pgr_quote_ident(vertname)||' where cnt=1)
+                   ,veryclose as (select b.id,st_crosses(a.'||gname||',b.buff) as flag
+                   from  (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) as a
+                   join buffer as b on (a.'||gname||'&&b.buff)
+                   where '||sourcename||'!=b.id and '||targetname||'!=b.id )
+                   update '||_pgr_quote_ident(vertname)||' set chk=1 where id in (select distinct id from veryclose where flag=true)';
+          raise debug '%' ,query;
+          execute query;
+          GET DIAGNOSTICS  numgaps= ROW_COUNT;
+          raise DEBUG '     --> OK';
+          EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for gaps';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for isolated edges. Please wait...';
+        query=selectionquery|| ' SELECT count(*) FROM (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' )  as a,
+                                                 '||_pgr_quote_ident(vertname)||' as b,
+                                                 '||_pgr_quote_ident(vertname)||' as c
+                            WHERE b.id in (select id from selectedRows) and a.'||sourcename||' =b.id
+                            AND b.cnt=1 AND a.'||targetname||' =c.id
+                            AND c.cnt=1';
+        raise debug '%' ,query;
+        execute query  INTO NumIsolated;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for isolated edges';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for ring geometries. Please wait...';
+        execute 'SELECT geometrytype('||gname||')  FROM '||_pgr_quote_ident(tabname) limit 1 into geotype;
+        IF (geotype='MULTILINESTRING') THEN
+            query ='SELECT count(*)  FROM '||_pgr_quote_ident(tabname)||'
+                                 WHERE true  '||rows_where||' and st_isRing(st_linemerge('||gname||'))';
+            raise debug '%' ,query;
+            execute query  INTO numRings;
+        ELSE query ='SELECT count(*)  FROM '||_pgr_quote_ident(tabname)||'
+                                  WHERE true  '||rows_where||' and st_isRing('||gname||')';
+            raise debug '%' ,query;
+            execute query  INTO numRings;
+        END IF;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for ring geometries';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for intersections. Please wait...';
+        query = 'select count(*) from (select distinct case when a.'||idname||' < b.'||idname||' then a.'||idname||'
+                                                        else b.'||idname||' end,
+                                                   case when a.'||idname||' < b.'||idname||' then b.'||idname||'
+                                                        else a.'||idname||' end
+                                    FROM (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||') as a
+                                    JOIN (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||') as b
+                                    ON (a.'|| gname||' && b.'||gname||')
+                                    WHERE a.'||idname||' != b.'||idname|| '
+                                        and (a.'||sourcename||' in (b.'||sourcename||',b.'||targetname||')
+                                              or a.'||targetname||' in (b.'||sourcename||',b.'||targetname||')) = false
+                                        and st_intersects(a.'||gname||', b.'||gname||')=true) as d ';
+        raise debug '%' ,query;
+        execute query  INTO numCrossing;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for intersections';
+            RETURN 'FAIL';
+    END;
+
+
+
+
+    RAISE NOTICE '            ANALYSIS RESULTS FOR SELECTED EDGES:';
+    RAISE NOTICE '                  Isolated segments: %', NumIsolated;
+    RAISE NOTICE '                          Dead ends: %', numdeadends;
+    RAISE NOTICE 'Potential gaps found near dead ends: %', numgaps;
+    RAISE NOTICE '             Intersections detected: %',numCrossing;
+    RAISE NOTICE '                    Ring geometries: %',numRings;
+
+
+    RETURN 'OK';
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+COMMENT ON FUNCTION pgr_analyzeGraph(text,double precision,text,text,text,text,text) IS 'args: edge_table, tolerance,the_geom:=''the_geom'',id:=''id'',source column:=''source'', target column:=''target'' rows_where:=''true'' - creates a vertices table based on the geometry for selected rows';
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_analyzeOneway(
+   edge_table text,
+   s_in_rules TEXT[],
+   s_out_rules TEXT[],
+   t_in_rules TEXT[],
+   t_out_rules TEXT[],
+   two_way_if_null boolean default true,
+   oneway text default 'oneway',
+   source text default 'source',
+   target text default 'target')
+  RETURNS text AS
+$BODY$
+
+
+DECLARE
+    rule text;
+    ecnt integer;
+    instr text;
+    naming record;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    owname text;
+    sourcename text;
+    targetname text;
+    sourcetype text;
+    targettype text;
+    vertname text;
+    debuglevel text;
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_analyzeOneway(''%'',''%'',''%'',''%'',''%'',''%'',''%'',''%'',%)',
+		edge_table, s_in_rules , s_out_rules, t_in_rules, t_out_rules, oneway, source ,target,two_way_if_null ;
+  execute 'show client_min_messages' into debuglevel;
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',2)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    raise DEBUG '     --> OK';
+    EXCEPTION WHEN raise_exception THEN
+      RAISE NOTICE 'ERROR: something went wrong checking the table name';
+      RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise debug 'Checking Vertices table';
+       execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","ein","eout"}''::text[])' into naming;
+       execute 'UPDATE '||_pgr_quote_ident(vertname)||' SET eout=0 ,ein=0';
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the vertices table';
+          RETURN 'FAIL';
+  END;
+
+
+  BEGIN
+       raise debug 'Checking column names in edge table';
+       select * into sourcename from _pgr_getColumnName(sname, tname,source,2);
+       select * into targetname from _pgr_getColumnName(sname, tname,target,2);
+       select * into owname from _pgr_getColumnName(sname, tname,oneway,2);
+
+
+       perform _pgr_onError( sourcename in (targetname,owname) or  targetname=owname, 2,
+                       '_pgr_createToplogy',  'Two columns share the same name', 'Parameter names for oneway,source and target  must be different',
+                       'Column names are OK');
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column names';
+          RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise debug 'Checking column types in edge table';
+       select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1);
+       select * into targettype from _pgr_getColumnType(sname,tname,targetname,1);
+
+
+       perform _pgr_onError(sourcetype not in('integer','smallint','bigint') , 2,
+                       '_pgr_createTopology',  'Wrong type of Column '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found',
+                       'Type of Column '|| sourcename || ' is ' || sourcetype);
+
+       perform _pgr_onError(targettype not in('integer','smallint','bigint') , 2,
+                       '_pgr_createTopology',  'Wrong type of Column '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found',
+                       'Type of Column '|| targetname || ' is ' || targettype);
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column types';
+          RETURN 'FAIL';
+   END;
+
+
+
+    RAISE NOTICE 'Analyzing graph for one way street errors.';
+
+    rule := CASE WHEN two_way_if_null
+            THEN owname || ' IS NULL OR '
+            ELSE '' END;
+
+    instr := '''' || array_to_string(s_in_rules, ''',''') || '''';
+       EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set ein=coalesce(ein,0)+b.cnt
+      from (
+         select '|| sourcename ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| sourcename ||' ) b
+     where a.id=b.'|| sourcename;
+
+    RAISE NOTICE 'Analysis 25%% complete ...';
+
+    instr := '''' || array_to_string(t_in_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set ein=coalesce(ein,0)+b.cnt
+        from (
+         select '|| targetname ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| targetname ||' ) b
+        where a.id=b.'|| targetname;
+
+    RAISE NOTICE 'Analysis 50%% complete ...';
+
+    instr := '''' || array_to_string(s_out_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set eout=coalesce(eout,0)+b.cnt
+        from (
+         select '|| sourcename ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| sourcename ||' ) b
+        where a.id=b.'|| sourcename;
+    RAISE NOTICE 'Analysis 75%% complete ...';
+
+    instr := '''' || array_to_string(t_out_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set eout=coalesce(eout,0)+b.cnt
+        from (
+         select '|| targetname ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| targetname ||' ) b
+        where a.id=b.'|| targetname;
+
+    RAISE NOTICE 'Analysis 100%% complete ...';
+
+    EXECUTE 'SELECT count(*)  FROM '||_pgr_quote_ident(vertname)||' WHERE ein=0 or eout=0' INTO ecnt;
+
+    RAISE NOTICE 'Found % potential problems in directionality' ,ecnt;
+
+    RETURN 'OK';
+
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+COMMENT ON FUNCTION pgr_analyzeOneway(text,TEXT[],TEXT[], TEXT[],TEXT[],boolean,text,text,text)
+IS 'args:edge_table , s_in_rules , s_out_rules, t_in_rules , t_out_rules, two_way_if_null:= true, oneway:=''oneway'',source:= ''source'',target:=''target'' - Analizes the directionality of the edges based on the rules';
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_createverticestable(
+   edge_table text,
+   the_geom text DEFAULT 'the_geom'::text,
+   source text DEFAULT 'source'::text,
+   target text DEFAULT 'target'::text,
+    rows_where text DEFAULT 'true'::text
+)
+  RETURNS text AS
+$BODY$
+DECLARE
+    naming record;
+    sridinfo record;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    sourcename text;
+    targetname text;
+    query text;
+    ecnt bigint;
+    srid integer;
+    sourcetype text;
+    targettype text;
+    sql text;
+    totcount integer;
+    i integer;
+    notincluded integer;
+    included integer;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+
+
+BEGIN
+  fnName = 'pgr_createVerticesTable';
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_createVerticesTable(''%'',''%'',''%'',''%'',''%'')',edge_table,the_geom,source,target,rows_where;
+  execute 'show client_min_messages' into debuglevel;
+
+  raise notice 'Performing checks, please wait .....';
+
+  RAISE DEBUG 'Checking % exists',edge_table;
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    rows_where = ' AND ('||rows_where||')';
+  raise debug '--> Edge table exists: OK';
+
+  raise debug 'Checking column names';
+    select * into sourcename from _pgr_getColumnName(sname, tname,source,2, fnName);
+    select * into targetname from _pgr_getColumnName(sname, tname,target,2, fnName);
+    select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2, fnName);
+
+
+    err = sourcename in (targetname,gname) or  targetname=gname;
+    perform _pgr_onError(err, 2, fnName,
+        'Two columns share the same name', 'Parameter names for the_geom,source and target  must be different');
+  raise debug '--> Column names: OK';
+
+  raise debug 'Checking column types in edge table';
+    select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+    select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+
+
+    err = sourcetype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column source: '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+    err = targettype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column target: '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found');
+
+  raise debug '-->Column types:OK';
+
+  raise debug 'Checking SRID of geometry column';
+     query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+        || ' FROM ' || _pgr_quote_ident(tabname)
+        || ' WHERE ' || quote_ident(gname)
+        || ' IS NOT NULL LIMIT 1';
+     raise debug '%',query;
+     EXECUTE query INTO sridinfo;
+
+     err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+     perform _pgr_onError(err, 2, fnName,
+         'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+     srid := sridinfo.srid;
+  raise DEBUG '     --> OK';
+
+  raise debug 'Checking and creating Indices';
+     perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+  raise DEBUG '-->Check and create indices: OK';
+
+     gname=quote_ident(gname);
+     sourcename=quote_ident(sourcename);
+     targetname=quote_ident(targetname);
+
+
+  BEGIN
+  raise debug 'Checking Condition';
+    -- issue #193 & issue #210 & #213
+    -- this sql is for trying out the where clause
+    -- the select * is to avoid any column name conflicts
+    -- limit 1, just try on first record
+    -- if the where clasuse is ill formed it will be caught in the exception
+    sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+    EXECUTE sql into dummyRec;
+    -- end
+
+    -- if above where clasue works this one should work
+    -- any error will be caught by the exception also
+    sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NULL or '||
+		sourcename||' is null or '||targetname||' is null)=true '||rows_where;
+    raise debug '%',sql;
+    EXECUTE SQL  into notincluded;
+    EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+
+
+
+  BEGIN
+     raise DEBUG 'initializing %',vertname;
+       execute 'select * from _pgr_getTableName('||quote_literal(vertname)||',0)' into naming;
+       IF sname=naming.sname  AND vname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+       ELSE
+           set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+       END IF;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+                quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+       execute 'CREATE INDEX '||quote_ident(vname||'_the_geom_idx')||' ON '||_pgr_quote_ident(vertname)||'  USING GIST (the_geom)';
+       execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+       EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Initializing vertex table';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise notice 'Populating %, please wait...',vertname;
+       sql= 'with
+		lines as ((select distinct '||sourcename||' as id, _pgr_startpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+		                  ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||')
+			union (select distinct '||targetname||' as id,_pgr_endpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+			          ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||'))
+		,numberedLines as (select row_number() OVER (ORDER BY id) AS i,* from lines )
+		,maxid as (select id,max(i) as maxi from numberedLines group by id)
+		insert into '||_pgr_quote_ident(vertname)||'(id,the_geom)  (select id,the_geom  from numberedLines join maxid using(id) where i=maxi order by id)';
+       RAISE debug '%',sql;
+       execute sql;
+       GET DIAGNOSTICS totcount = ROW_COUNT;
+
+       sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' a, '||_pgr_quote_ident(vertname)||' b
+            where '||sourcename||'=b.id and '|| targetname||' in (select id from '||_pgr_quote_ident(vertname)||')';
+       RAISE debug '%',sql;
+       execute sql into included;
+
+
+
+       execute 'select max(id) from '||_pgr_quote_ident(vertname) into ecnt;
+       execute 'SELECT setval('||quote_literal(vertname||'_id_seq')||','||coalesce(ecnt,1)||' , false)';
+       raise notice '  ----->   VERTICES TABLE CREATED WITH  % VERTICES', totcount;
+       raise notice '                                       FOR   %  EDGES', included+notincluded;
+       RAISE NOTICE '  Edges with NULL geometry,source or target: %',notincluded;
+       RAISE NOTICE '                            Edges processed: %',included;
+       Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname),_pgr_quote_ident(vertname);
+       raise notice '----------------------------------------------';
+    END;
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+COMMENT ON FUNCTION pgr_createVerticesTable(text,text,text,text,text)
+IS 'args: edge_table, the_geom:=''the_geom'',source:=''source'', target:=''target'' rows_where:=''true'' - creates a vertices table based on the source and target identifiers for selected rows';
+
+
+CREATE OR REPLACE FUNCTION pgr_nodeNetwork(edge_table text, tolerance double precision,
+			id text default 'id', the_geom text default 'the_geom', table_ending text default 'noded',
+            rows_where text DEFAULT ''::text, outall boolean DEFAULT false) RETURNS text AS
+$BODY$
+DECLARE
+	
+	p_num int := 0;
+	p_ret text := '';
+    pgis_ver_old boolean := _pgr_versionless(postgis_lib_version(), '2.1.0.0');
+    vst_line_substring text;
+    vst_line_locate_point text;
+    intab text;
+    outtab text;
+    n_pkey text;
+    n_geom text;
+    naming record;
+    sname text;
+    tname text;
+    outname text;
+    srid integer;
+    sridinfo record;
+    splits bigint;
+    touched bigint;
+    untouched bigint;
+    geomtype text;
+    debuglevel text;
+    rows_where text;
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_nodeNetwork(''%'', %, ''%'', ''%'', ''%'', ''%'',  %)',
+    edge_table, tolerance, id,  the_geom, table_ending, rows_where, outall;
+  raise notice 'Performing checks, please wait .....';
+  execute 'show client_min_messages' into debuglevel;
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',0)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+	RAISE NOTICE '-------> % not found',edge_table;
+        RETURN 'FAIL';
+    ELSE
+	RAISE DEBUG '  -----> OK';
+    END IF;
+
+    intab=sname||'.'||tname;
+    outname=tname||'_'||table_ending;
+    outtab= sname||'.'||outname;
+    rows_where = CASE WHEN length(rows_where) > 2 and not outall THEN ' AND (' || rows_where || ')' ELSE '' END;
+    rows_where = CASE WHEN length(rows_where) > 2 THEN ' WHERE (' || rows_where || ')' ELSE '' END;
+  END;
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',id,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(id)||')' INTO n_pkey;
+       IF n_pkey is NULL then
+          raise notice  'ERROR: id column "%"  not found in %',id,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',the_geom,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(the_geom)||')' INTO n_geom;
+       IF n_geom is NULL then
+          raise notice  'ERROR: the_geom  column "%"  not found in %',the_geom,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+  IF n_pkey=n_geom THEN
+	raise notice  'ERROR: id and the_geom columns have the same name "%" in %',n_pkey,intab;
+        RETURN 'FAIL';
+  END IF;
+
+  BEGIN
+       	raise DEBUG 'Checking the SRID of the geometry "%"', n_geom;
+       	EXECUTE 'SELECT ST_SRID(' || quote_ident(n_geom) || ') as srid '
+          		|| ' FROM ' || _pgr_quote_ident(intab)
+          		|| ' WHERE ' || quote_ident(n_geom)
+          		|| ' IS NOT NULL LIMIT 1' INTO sridinfo;
+       	IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
+        	RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           	RETURN 'FAIL';
+       	END IF;
+       	srid := sridinfo.srid;
+       	raise DEBUG '  -----> SRID found %',srid;
+       	EXCEPTION WHEN OTHERS THEN
+           		RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           		RETURN 'FAIL';
+  END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_pkey,intab;
+      if (_pgr_isColumnIndexed(intab,n_pkey)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding  index "%_%_idx".',n_pkey,intab;
+
+	set client_min_messages  to warning;
+        execute 'create  index '||tname||'_'||n_pkey||'_idx on '||_pgr_quote_ident(intab)||' using btree('||quote_ident(n_pkey)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_geom,intab;
+      if (_pgr_iscolumnindexed(intab,n_geom)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding unique index "%_%_gidx".',intab,n_geom;
+	set client_min_messages  to warning;
+        execute 'CREATE INDEX '
+            || quote_ident(tname || '_' || n_geom || '_gidx' )
+            || ' ON ' || _pgr_quote_ident(intab)
+            || ' USING gist (' || quote_ident(n_geom) || ')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+---------------
+    BEGIN
+       raise DEBUG 'initializing %',outtab;
+       execute 'select * from _pgr_getTableName('||quote_literal(outtab)||',0)' into naming;
+       IF sname=naming.sname  AND outname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(outtab)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(outname)||','||quote_literal(n_geom)||')';
+       ELSE
+	   set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(outtab)||' (id bigserial PRIMARY KEY,old_id integer,sub_id integer,
+								source bigint,target bigint)';
+       END IF;
+       execute 'select geometrytype('||quote_ident(n_geom)||') from  '||_pgr_quote_ident(intab)||' limit 1' into geomtype;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(outname)||','||
+                quote_literal(n_geom)||','|| srid||', '||quote_literal(geomtype)||', 2)';
+       execute 'CREATE INDEX '||quote_ident(outname||'_'||n_geom||'_idx')||' ON '||_pgr_quote_ident(outtab)||'  USING GIST ('||quote_ident(n_geom)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+    END;
+----------------
+
+
+  raise notice 'Processing, please wait .....';
+
+
+    if pgis_ver_old then
+        vst_line_substring    := 'st_line_substring';
+        vst_line_locate_point := 'st_line_locate_point';
+    else
+        vst_line_substring    := 'st_linesubstring';
+        vst_line_locate_point := 'st_linelocatepoint';
+    end if;
+
+--    -- First creates temp table with intersection points
+    p_ret = 'create temp table intergeom on commit drop as (
+        select l1.' || quote_ident(n_pkey) || ' as l1id,
+               l2.' || quote_ident(n_pkey) || ' as l2id,
+	       l1.' || quote_ident(n_geom) || ' as line,
+	       _pgr_startpoint(l2.' || quote_ident(n_geom) || ') as source,
+	       _pgr_endpoint(l2.' || quote_ident(n_geom) || ') as target,
+               st_intersection(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ') as geom
+        from (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l1
+             join (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l2
+             on (st_dwithin(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ', ' || tolerance || '))'||
+        'where l1.' || quote_ident(n_pkey) || ' <> l2.' || quote_ident(n_pkey)||' and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false  )';
+    raise debug '%',p_ret;
+    EXECUTE p_ret;
+
+    -- second temp table with locus (index of intersection point on the line)
+    -- to avoid updating the previous table
+    -- we keep only intersection points occurring onto the line, not at one of its ends
+--    drop table if exists inter_loc;
+
+--HAD TO CHANGE THIS QUERY
+-- p_ret= 'create temp table inter_loc on commit drop as (
+--        select l1id, l2id, ' || vst_line_locate_point || '(line,point) as locus from (
+--        select DISTINCT l1id, l2id, line, (ST_DumpPoints(geom)).geom as point from intergeom) as foo
+--        where ' || vst_line_locate_point || '(line,point)<>0 and ' || vst_line_locate_point || '(line,point)<>1)';
+    p_ret= 'create temp table inter_loc on commit drop as ( select * from (
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,source) as locus from intergeom)
+         union
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,target) as locus from intergeom)) as foo
+        where locus<>0 and locus<>1)';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+
+    -- index on l1id
+    create index inter_loc_id_idx on inter_loc(l1id);
+
+    -- Then computes the intersection on the lines subset, which is much smaller than full set
+    -- as there are very few intersection points
+
+--- outab needs to be formally created with id, old_id, subid,the_geom, source,target
+---  so it can be inmediatly be used with createTopology
+
+--   EXECUTE 'drop table if exists ' || _pgr_quote_ident(outtab);
+--   EXECUTE 'create table ' || _pgr_quote_ident(outtab) || ' as
+     P_RET = 'insert into '||_pgr_quote_ident(outtab)||' (old_id,sub_id,'||quote_ident(n_geom)||') (  with cut_locations as (
+           select l1id as lid, locus
+           from inter_loc
+           -- then generates start and end locus for each line that have to be cut buy a location point
+           UNION ALL
+           select i.l1id  as lid, 0 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           UNION ALL
+           select i.l1id  as lid, 1 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           order by lid, locus
+       ),
+       -- we generate a row_number index column for each input line
+       -- to be able to self-join the table to cut a line between two consecutive locations
+       loc_with_idx as (
+           select lid, locus, row_number() over (partition by lid order by locus) as idx
+           from cut_locations
+       )
+       -- finally, each original line is cut with consecutive locations using linear referencing functions
+       select l.' || quote_ident(n_pkey) || ', loc1.idx as sub_id, ' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus) as ' || quote_ident(n_geom) || '
+       from loc_with_idx loc1 join loc_with_idx loc2 using (lid) join ' || _pgr_quote_ident(intab) || ' l on (l.' || quote_ident(n_pkey) || ' = loc1.lid)
+       where loc2.idx = loc1.idx+1
+           -- keeps only linestring geometries
+           and geometryType(' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus)) = ''LINESTRING'') ';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+	GET DIAGNOSTICS splits = ROW_COUNT;
+        execute 'with diff as (select distinct old_id from '||_pgr_quote_ident(outtab)||' )
+                 select count(*) from diff' into touched;
+	-- here, it misses all original line that did not need to be cut by intersection points: these lines
+	-- are already clean
+	-- inserts them in the final result: all lines which gid is not in the res table.
+	EXECUTE 'insert into ' || _pgr_quote_ident(outtab) || ' (old_id , sub_id, ' || quote_ident(n_geom) || ')
+                ( with used as (select distinct old_id from '|| _pgr_quote_ident(outtab)||')
+		select ' ||  quote_ident(n_pkey) || ', 1 as sub_id, ' ||  quote_ident(n_geom) ||
+		' from '|| _pgr_quote_ident(intab) ||' where  '||quote_ident(n_pkey)||' not in (select * from used)' || rows_where || ')';
+	GET DIAGNOSTICS untouched = ROW_COUNT;
+
+	raise NOTICE '  Split Edges: %', touched;
+	raise NOTICE ' Untouched Edges: %', untouched;
+	raise NOTICE '     Total original Edges: %', touched+untouched;
+        RAISE NOTICE ' Edges generated: %', splits;
+	raise NOTICE ' Untouched Edges: %',untouched;
+	raise NOTICE '       Total New segments: %', splits+untouched;
+        RAISE NOTICE ' New Table: %', outtab;
+        RAISE NOTICE '----------------------------------';
+
+    drop table  if exists intergeom;
+    drop table if exists inter_loc;
+    RETURN 'OK';
+END;
+$BODY$
+    LANGUAGE 'plpgsql' VOLATILE STRICT COST 100;
+
+
+COMMENT ON FUNCTION pgr_nodeNetwork(text, double precision, text, text, text, text, boolean )
+ IS  'edge_table, tolerance, id:=''id'', the_geom:=''the_geom'', table_ending:=''noded'' ';
+
+
+CREATE OR REPLACE FUNCTION pgr_labelGraph(
+                edge_table text,
+                id text default 'id',
+                source text default 'source',
+                target text default 'target',
+                subgraph text default 'subgraph',
+                rows_where text default 'true'
+        )
+        RETURNS character varying AS
+$BODY$
+
+DECLARE
+        naming record;
+        schema_name text;
+        table_name text;
+        garbage text;
+        incre integer;
+        table_schema_name text;
+        query text;
+        ecnt integer;
+        sql1 text;
+        rec1 record;
+        sql2 text;
+        rec2 record;
+        rec_count record;
+        rec_single record;
+        graph_id integer;
+        gids int [];
+
+BEGIN
+        raise notice 'Processing:';
+        raise notice 'pgr_brokenGraph(''%'',''%'',''%'',''%'',''%'',''%'')', edge_table,id,source,target,subgraph,rows_where;
+        raise notice 'Performing initial checks, please hold on ...';
+
+        Raise Notice 'Starting - Checking table ...';
+        BEGIN
+                raise debug 'Checking % table existance', edge_table;
+                execute 'select * from pgr_getTableName('|| quote_literal(edge_table) ||')' into naming;
+                schema_name = naming.sname;
+                table_name = naming.tname;
+                table_schema_name = schema_name||'.'||table_name;
+                IF schema_name is null then
+                        raise notice 'no schema';
+                        return 'FAIL';
+                else
+                        if table_name is null then
+                                raise notice 'no table';
+                                return 'FAIL';
+                        end if;
+                end if;
+        END;
+        Raise Notice 'Ending - Checking table';
+
+        Raise Notice 'Starting - Checking columns';
+        BEGIN
+                raise debug 'Checking exitance of necessary columns inside % table', edge_table;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(id) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no id column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(source) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no source column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(target) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no target column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(subgraph) ||')' into naming;
+                if naming.pgr_iscolumnintable = 't' then
+                        raise notice 'subgraph column already in the table';
+                        return 'FAIL';
+                end if;
+        END;
+        Raise Notice 'Ending - Checking columns';
+
+        Raise Notice 'Starting - Checking rows_where condition';
+        BEGIN
+                raise debug 'Checking rows_where condition';
+                query='select count(*) from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where;
+                execute query into ecnt;
+                raise debug '-->Rows where condition: OK';
+                raise debug '    --> OK';
+                EXCEPTION WHEN OTHERS THEN
+                        raise notice 'Got %', SQLERRM;
+                        Raise notice 'ERROR: Condition is not correct. Please execute the following query to test your condition';
+                        Raise notice '%', query;
+                        return 'FAIL';
+        END;
+        Raise Notice 'Ending - Checking rows_where condition';
+
+        garbage := 'garbage001';
+        incre := 1;
+        Raise Notice 'Starting - Checking temporary column';
+        Begin
+                raise debug 'Checking Checking temporary columns existance';
+
+                While True
+                        Loop
+                                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(garbage) ||')' into naming;
+                                If naming.pgr_iscolumnintable = 't' THEN
+                                        incre := incre + 1;
+                                        garbage := 'garbage00'||incre||'';
+                                ELSE
+                                        EXIT;
+                                END IF;
+                        End Loop;
+        End;
+        Raise Notice 'Ending - Checking temporary column';
+
+        Raise Notice 'Starting - Calculating subgraphs';
+        BEGIN
+                --------- Add necessary columns ----------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(subgraph) || ' INTEGER DEFAULT -1';
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(garbage) || ' INTEGER DEFAULT 0';
+                graph_id := 1;
+
+                EXECUTE 'select count(*) as count from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where ||'' into rec_count;
+                if rec_count.count = 0 then
+                        RETURN 'rows_where condition generated 0 rows';
+                end if;
+
+                WHILE TRUE
+                        LOOP
+                                ---------- Assign the very first -1 row graph_id ----------
+                                EXECUTE 'SELECT ' || pgr_quote_ident(id) || ' AS gid FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1 LIMIT 1' INTO rec_single;
+                                EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec_single.gid || '';
+
+                                --------- Search other rows with that particular graph_id -----------
+                                WHILE TRUE
+                                        LOOP
+                                                EXECUTE 'SELECT COUNT(*) FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0' into rec_count;
+                                                ----------- The following if else will check those rows which already have entertained ------------
+                                                IF (rec_count.count > 0) THEN
+                                                        sql1 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0';
+                                                        FOR rec1 IN EXECUTE sql1
+                                                                LOOP
+                                                                        sql2 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| pgr_quote_ident(source) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(source) ||' = '|| rec1.target ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.target ||'';
+                                                                        FOR rec2 IN EXECUTE sql2
+                                                                                LOOP
+                                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec2.gid || '';
+                                                                                END LOOP;
+                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(garbage) || ' = 1 WHERE ' || pgr_quote_ident(id) || ' = ' || rec1.gid || '';
+                                                                END LOOP;
+                                                ELSE
+                                                        EXIT;
+                                                END IF;
+                                        END LOOP;
+
+                                ------ Following is to exit the while loop. 0 means no more -1 id.
+                                EXECUTE 'SELECT COUNT(*) AS count FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1' INTO rec_count;
+                                If (rec_count.count = 0) THEN
+                                        EXIT;
+                                ELSE
+                                        graph_id := graph_id + 1;
+                                END IF;
+                        END LOOP;
+
+                ----------- Drop garbage column ------------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' DROP COLUMN ' || pgr_quote_ident(garbage) ||'';
+                Raise Notice 'Successfully complicated calculating subgraphs';
+        END;
+        Raise Notice 'Ending - Calculating subgraphs';
+
+        RETURN 'OK';
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCostMatrix(
+    edges_sql TEXT,
+    points_sql TEXT,
+    pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_pid, a.end_pid, a.agg_cost
+        FROM _pgr_withPoints($1, $2, $3, $3, $4,  $5, TRUE, TRUE) AS a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+--  DIJKSTRA DMatrix
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCostMatrix(edges_sql TEXT, vids ANYARRAY, directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2, $2, $3, true) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+
+--  BIDIRECTIONAL DIJKSTRA Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCostMatrix(edges_sql TEXT, vids ANYARRAY, directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_astarCostMatrix(
+    edges_sql TEXT, -- XY edges sql
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2, $2, $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+--  BIDIRECTIONAL ASTAR Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdAstarCostMatrix(
+    edges_sql TEXT,
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_bdAstarCostMatrix(TEXT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCostMatrix';
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_getTableName(IN tab text,OUT sname text,OUT tname text)
+RETURNS RECORD AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getTableName: This function will no longer be soported';
+    select * from _pgr_getTableName(tab, 0, 'pgr_getTableName') into sname,tname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_getColumnName(tab text, col text)
+RETURNS text AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getColumnName: This function will no longer be soported';
+    return _pgr_getColumnName(tab,col, 0, 'pgr_getColumnName');
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    select * from _pgr_getColumnName(tab,col,0, 'pgr_isColumnInTable') into cname;
+    return  cname IS not NULL;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnIndexed(tab text, col text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnIndexed: This function will no longer be soported';
+    return  _pgr_isColumnIndexed(tab,col);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+create or replace function pgr_quote_ident(idname text)
+returns text as
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    return  _pgr_quote_ident(idname);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_versionless(v1 text, v2 text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_versionless: This function will no longer be soported';
+    return  _pgr_versionless(v1,v2);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+create or replace function pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_startPoint: This function will no longer be soported';
+    return  _pgr_startPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_endPoint: This function will no longer be soported';
+    return  _pgr_endPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_apspJohnson(edges_sql text)
+    RETURNS SETOF pgr_costResult AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function: Use pgr_johnson instead';
+      has_reverse =_pgr_parameter_check('johnson', edges_sql, false);
+      sql = edges_sql;
+      IF (has_reverse) THEN
+           RAISE NOTICE 'reverse_cost column found, removing.';
+           sql = 'SELECT source, target, cost FROM (' || edges_sql || ') a';
+      END IF;
+
+      RETURN query
+         SELECT (row_number() over () - 1)::integer as seq, start_vid::integer AS id1, end_vid::integer AS id2, agg_cost AS cost
+         FROM  pgr_johnson(sql, TRUE);
+  END
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_apspWarshall(edges_sql text, directed boolean, has_rcost boolean)
+    RETURNS SETOF pgr_costResult AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function: Use pgr_floydWarshall instead';
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+      sql := edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_reverse) THEN
+           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+         ELSE raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+         END IF;
+      END IF;
+
+      RETURN query
+         SELECT (row_number() over () -1)::integer as seq, start_vid::integer AS id1, end_vid::integer AS id2, agg_cost AS cost
+         FROM  pgr_floydWarshall(sql, directed);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_astar(edges_sql TEXT, source_id INTEGER, target_id INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated signature pgr_astar(text, integer, integer, boolean, boolean)';
+    has_reverse =_pgr_parameter_check('astar', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost, x1,y1, x2, y2 FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+    FROM pgr_astar(sql, ARRAY[$2], ARRAY[$3], directed);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    sql TEXT,
+    source_vid INTEGER,
+    target_vid INTEGER,
+    directed BOOLEAN,
+    has_reverse_cost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdAstar';
+    has_reverse =_pgr_parameter_check('astar', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdAstar(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(edges_sql TEXT, start_vid INTEGER, end_vid INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdDijkstra';
+    has_reverse =_pgr_parameter_check('dijkstra', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdDijkstra(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstraPath(
+    sql text,
+    source INTEGER,
+    targets INTEGER ARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+    RETURNS SETOF pgr_costResult3 AS
+    $BODY$
+    DECLARE
+    has_reverse BOOLEAN;
+    new_sql TEXT;
+    result pgr_costResult3;
+    tmp pgr_costResult3;
+    sseq INTEGER;
+    i INTEGER;
+    BEGIN
+        RAISE NOTICE 'Deprecated function: Use pgr_dijkstra instead.';
+        has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+        new_sql = sql;
+        IF (array_ndims(targets) != 1) THEN
+            raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+
+        IF (has_reverse != has_rcost) THEN
+            IF (has_reverse) THEN
+                new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+            ELSE
+                raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+                USING ERRCODE = 'XX000';
+            END IF;
+        END IF;
+        SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+        sseq = 0; i = 1;
+        FOR result IN
+            SELECT seq, a.end_vid::INTEGER AS id1, a.node::INTEGER AS i2, a.edge::INTEGER AS id3, cost
+            FROM pgr_dijkstra(new_sql, source, targets, directed) a ORDER BY a.end_vid, seq LOOP
+            WHILE (result.id1 != targets[i]) LOOP
+                tmp.seq = sseq;
+                tmp.id1 = targets[i];
+                IF (targets[i] = source) THEN
+                    tmp.id2 = source;
+                    tmp.cost =0;
+                ELSE
+                    tmp.id2 = 0;
+                    tmp.cost = -1;
+                END IF;
+                tmp.id3 = -1;
+                RETURN next tmp;
+                i = i + 1;
+                sseq = sseq + 1;
+            END LOOP;
+        IF (result.id1 = targets[i] AND result.id3 != -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+        IF (result.id1 = targets[i] AND result.id3 = -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.id2 = source;
+            tmp.cost = 0;
+        ELSE
+            tmp.id2 = 0;
+            tmp.cost = -1;
+        END IF;
+        tmp.id3 = -1;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstracost(
+    sql text,
+    source INTEGER,
+    targets INTEGER array,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+result pgr_costResult;
+tmp pgr_costResult;
+sseq INTEGER;
+i INTEGER;
+BEGIN
+    RAISE NOTICE 'Deprecated function. Use pgr_dijkstraCost instead.';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    new_sql = sql;
+    IF (array_ndims(targets) != 1) THEN
+        raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+        USING ERRCODE = 'XX000';
+    END IF;
+
+
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+    sseq = 0; i = 1;
+    FOR result IN
+        SELECT ((row_number() over()) -1)::INTEGER, a.start_vid::INTEGER, a.end_vid::INTEGER, agg_cost
+        FROM pgr_dijkstraCost(new_sql, source, targets, directed) a ORDER BY end_vid LOOP
+        WHILE (result.id2 != targets[i]) LOOP
+            tmp.seq = sseq;
+            tmp.id1 = source;
+            tmp.id2 = targets[i];
+            IF (targets[i] = source) THEN
+                tmp.cost = 0;
+            ELSE
+                tmp.cost = -1;
+            END IF;
+            RETURN next tmp;
+            i = i + 1;
+            sseq = sseq + 1;
+        END LOOP;
+        IF (result.id2 = targets[i]) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = source;
+        tmp.id2 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.cost = 0;
+        ELSE
+            tmp.cost = -1;
+        END IF;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+create or replace function pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    returns integer as
+$body$
+
+declare
+    rr record;
+    pct float;
+    debuglevel text;
+
+begin
+    -- find the closest edge within tol distance
+    execute 'select * from ' || _pgr_quote_ident(edges) ||
+            ' where st_dwithin(''' || pnt::text ||
+            '''::geometry, the_geom, ' || tol || ') order by st_distance(''' || pnt::text ||
+            '''::geometry, the_geom) asc limit 1' into rr;
+
+    if rr.the_geom is not null then
+        -- deal with MULTILINESTRINGS
+        if geometrytype(rr.the_geom)='MULTILINESTRING' THEN
+            rr.the_geom := ST_GeometryN(rr.the_geom, 1);
+        end if;
+
+        -- project the point onto the linestring
+        execute 'show client_min_messages' into debuglevel;
+        SET client_min_messages='ERROR';
+        pct := st_line_locate_point(rr.the_geom, pnt);
+        execute 'set client_min_messages  to '|| debuglevel;
+
+        -- return the node we are closer to
+        if pct < 0.5 then
+            return rr.source;
+        else
+            return rr.target;
+        end if;
+    else
+        -- return a failure to find an edge within tol distance
+        return -1;
+    end if;
+end;
+$body$
+  language plpgsql volatile
+  cost 5;
+
+
+----------------------------------------------------------------------------
+
+create or replace function pgr_flipedges(ga geometry[])
+    returns geometry[] as
+$body$
+
+declare
+    nn integer;
+    i integer;
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_flipEdges';
+    -- get the count of edges, and return if only one edge
+    nn := array_length(ga, 1);
+    if nn=1 then
+        return ga;
+    end if;
+
+    -- determine if first needs to be flipped
+    g := _pgr_startpoint(ga[1]);
+
+    -- if the start of the first is connected to the second then it needs to be flipped
+    if _pgr_startpoint(ga[2])=g or _pgr_endpoint(ga[2])=g then
+        ga[1] := st_reverse(ga[1]);
+    end if;
+    g := _pgr_endpoint(ga[1]);
+
+    -- now if  the end of the last edge matchs the end of the current edge we need to flip it
+    for i in 2 .. nn loop
+        if _pgr_endpoint(ga[i])=g then
+            ga[i] := st_reverse(ga[i]);
+        end if;
+        -- save the end of this edge into the last end for the next cycle
+        g := _pgr_endpoint(ga[i]);
+    end loop;
+
+    return ga;
+end;
+$body$
+    language plpgsql immutable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_texttopoints(pnts text, srid integer DEFAULT(4326))
+    returns geometry[] as
+$body$
+
+declare
+    a text[];
+    t text;
+    p geometry;
+    g geometry[];
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_textToPoints';
+    -- convert commas to space and split on ';'
+    a := string_to_array(replace(pnts, ',', ' '), ';');
+    -- convert each 'x y' into a point geometry and concattenate into a new array
+    for t in select unnest(a) loop
+        p := st_pointfromtext('POINT(' || t || ')', srid);
+        g := g || p;
+    end loop;
+
+    return g;
+end;
+$body$
+    language plpgsql immutable;
+
+-----------------------------------------------------------------------
+
+create or replace function pgr_pointstovids(pnts geometry[], edges text, tol float8 DEFAULT(0.01))
+    returns integer[] as
+$body$
+
+declare
+    v integer[];
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_pointsToVids';
+    -- cycle through each point and locate the nearest edge and vertex on that edge
+    for g in select unnest(pnts) loop
+        v := v || pgr_pointtoedgenode(edges, g, tol);
+    end loop;
+
+    return v;
+end;
+$body$
+    language plpgsql stable;
+
+
+create or replace function pgr_pointstodmatrix(pnts geometry[], mode integer default (0), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+
+declare
+    r record;
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_pointsToDMatrix';
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    -- create an id for each point in the array and unnest it into a table nodes in the with clause
+    for r in with nodes as (select row_number() over()::integer as id, p from (select unnest(pnts) as p) as foo)
+        -- compute a row of distances
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j,
+                case when mode=0
+                    then st_distance(a.p, b.p)
+                    else st_distance_sphere(a.p, b.p)
+                end as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i loop
+
+        -- you must concat an array[array[]] to make dmatrix[][]
+        -- concat the row of distances to the dmatrix
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+end;
+$body$
+    language plpgsql stable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_vidstodmatrix(IN vids integer[], IN pnts geometry[], IN edges text, tol float8 DEFAULT(0.1), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+
+declare
+    i integer;
+    j integer;
+    nn integer;
+    rr record;
+    bbox geometry;
+    t float8[];
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    -- check if the input arrays has any -1 values, maybe this whould be a raise exception
+    if vids @> ARRAY[-1] then
+    raise notice 'Some vids are undefined (-1)!';
+    dmatrix := null;
+    ids := null;
+    return;
+    end if;
+
+    ids := vids;
+
+    -- get the count of nodes
+    nn := array_length(vids,1);
+
+    -- zero out a dummy row
+    for i in 1 .. nn loop
+        t := t || 0.0::float8;
+    end loop;
+
+    -- using the dummy row, zero out the whole matrix
+    for i in 1 .. nn loop
+    dmatrix := dmatrix || ARRAY[t];
+    end loop;
+
+    for i in 1 .. nn-1 loop
+        j := i;
+        -- compute the bbox for the point needed for this row
+        select st_expand(st_collect(pnts[id]), tol) into bbox
+          from (select generate_series as id from generate_series(i, nn)) as foo;
+
+        -- compute kdijkstra() for this row
+        for rr in execute 'select * from pgr_dijkstracost($1, $2, $3, false)'
+                  using 'select id, source, target, cost from ' || edges ||
+                        ' where the_geom && ''' || bbox::text || '''::geometry'::text, vids[i], vids[i+1:nn] loop
+
+            -- TODO need to check that all node were reachable from source
+            -- I think unreachable paths between nodes returns cost=-1.0
+
+            -- populate the matrix with the cost values, remember this is symmetric
+            j := j + 1;
+            -- raise notice 'cost(%,%)=%', i, j, rr.agg_cost;
+            dmatrix[i][j] := rr.agg_cost;
+            dmatrix[j][i] := rr.agg_cost;
+        end loop;
+    end loop;
+
+end;
+$body$
+    language plpgsql stable cost 200;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_vidsToDMatrix(sql TEXT, vids  INTEGER[], dir BOOLEAN, has_rcost BOOLEAN, want_symmetric BOOLEAN)
+RETURNS float8[] AS
+$BODY$
+DECLARE
+directed BOOLEAN;
+has_reverse BOOLEAN;
+edges_sql TEXT;
+dmatrix_row float8[];
+dmatrix float8[];
+cell RECORD;
+unique_vids INTEGER[];
+total BIGINT;
+from_v BIGINT;
+to_v BIGINT;
+BEGIN
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql = sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    unique_vids :=  ARRAY(SELECT DISTINCT UNNEST(vids) ORDER BY 1);
+
+    IF want_symmetric THEN
+        directed = false;
+    ELSE
+        directed = dir;
+    END IF;
+
+    total := array_length(unique_vids, 1);
+
+    -- initializing dmatrix
+    FOR i in 1 .. total LOOP
+        dmatrix_row := dmatrix_row || '+Infinity'::float8;
+    END LOOP;
+    FOR i in 1 .. total LOOP
+    dmatrix := dmatrix || ARRAY[dmatrix_row];
+    dmatrix[i][i] = 0;
+    END LOOP;
+
+    CREATE TEMP TABLE __x___y____temp AS
+        WITH result AS
+            (SELECT unnest(unique_vids) AS vid)
+        SELECT row_number() OVER() AS idx, vid FROM result;
+
+    FOR cell IN SELECT * FROM pgr_dijkstraCostMatrix(sql, unique_vids, directed) LOOP
+        SELECT idx INTO from_v FROM __x___y____temp WHERE vid =  cell.start_vid;
+        SELECT idx INTO to_v FROM __x___y____temp WHERE vid =  cell.end_vid;
+
+        dmatrix[from_v][to_v] = cell.agg_cost;
+        dmatrix[to_v][from_v] = cell.agg_cost;
+    END LOOP;
+
+    DROP TABLE IF EXISTS __x___y____temp;
+    RETURN dmatrix;
+
+    EXCEPTION WHEN others THEN
+       DROP TABLE IF EXISTS __x___y____temp;
+       raise exception '% %', SQLERRM, SQLSTATE;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100;
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated function';
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_dijkstra(sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_dijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN) IS 'pgr_dijkstra(Deprecated signature)';
+
+
+
+
+
+-- OLD SIGNATURE
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(edges_sql text, source BIGINT, distance FLOAT, directed BOOLEAN, has_rcost BOOLEAN)
+  RETURNS SETOF pgr_costresult AS
+  $BODY$
+  DECLARE
+  has_reverse BOOLEAN;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function';
+
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, FALSE);
+
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_reverse) THEN
+             -- the user says it doesn't have reverse cost but its false
+             -- removing from query
+             RAISE NOTICE 'Contradiction found: has_rcost set to false but reverse_cost column found';
+             sql = 'SELECT id, source, target, cost, -1 as reverse_cost FROM (' || edges_sql || ') __q ';
+         ELSE
+             -- the user says it has reverse cost but its false
+             -- can't do anything
+             RAISE EXCEPTION 'has_rcost set to true but reverse_cost not found';
+         END IF;
+      END IF;
+
+      RETURN query SELECT seq - 1 AS seq, node::integer AS id1, edge::integer AS id2, agg_cost AS cost
+                FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maximumcardinalitymatching(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
+
+
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+--INTERNAL FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+
+------------------------
+-- deprecated signatures
+-----------------------
+
+COMMENT ON FUNCTION pgr_astar(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_astar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdAstar( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdAstar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdDijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdDijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_dijkstra(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_dijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_drivingDistance(text,  BIGINT,  FLOAT8,  BOOLEAN,  BOOLEAN)
+    IS 'pgr_drivingDistance(Deprecated signature)';
+
+------------------------
+-- Renamed /deprecated
+-----------------------
+COMMENT ON FUNCTION pgr_apspJohnson(TEXT)
+    IS 'pgr_apspJohnson(Renamed function) use pgr_Johnson instead';
+
+COMMENT ON FUNCTION pgr_apspWarshall(text, boolean, boolean)
+    IS 'pgr_apspWarshall(Renamed function) use pgr_floydWarshall instead';
+
+COMMENT ON FUNCTION pgr_kdijkstraPath( text, INTEGER, INTEGER ARRAY, BOOLEAN, BOOLEAN)
+    IS 'pgr_kdijkstraPath(Renamed function) use pgr_dijkstra instead';
+
+COMMENT ON FUNCTION pgr_kdijkstracost( text, INTEGER, INTEGER array, BOOLEAN, BOOLEAN)
+    IS 'pgr_kDijkstraCost(Renamed function) use pgr_dijkstraCost instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+
+
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+
+
+COMMENT ON FUNCTION pgr_gsoc_vrppdtw( text, INTEGER, INTEGER)
+    IS 'pgr_gsoc_vrppdtw(Renamed function) use pgr_pickDeliverEuclidean instead';
+
+------------------------
+-- Deprecated functions
+-----------------------
+
+COMMENT ON FUNCTION pgr_flipedges(geometry[])
+    IS 'pgr_flipedges(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_texttopoints(text,  integer)
+    IS 'pgr_texttopoints(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstovids(pnts geometry[], edges text, tol float8)
+    IS 'pgr_pointstovids(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    IS 'pgr_pointtoedgenode(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstodmatrix(geometry[], integer)
+    IS 'pgr_pointstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidstodmatrix( integer[],  geometry[],  text, float8)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidsToDMatrix(TEXT,  INTEGER[], BOOLEAN, BOOLEAN, BOOLEAN)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+
+
+
+COMMENT ON FUNCTION pgr_getTableName(IN tab text)
+    IS 'pgr_getTableName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_getColumnName(tab text, col text)
+    IS 'pgr_getColumnName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnInTable(tab text, col text)
+    IS 'pgr_isColumnInTable(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnIndexed(tab text, col text)
+    IS 'pgr_isColumnIndexed(Deprecated function)';
+
+
+COMMENT ON FUNCTION pgr_quote_ident(idname text)
+    IS 'pgr_quote_ident(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_versionless(v1 text, v2 text)
+    IS 'pgr_versionless(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_startPoint(g geometry)
+    IS 'pgr_startPoint(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_endPoint(g geometry)
+    IS 'pgr_endPoint(Deprecated function)';
+
+
diff --git a/tools/sql-update-scripts/pgrouting--2.4.1--2.5.0.sql b/tools/sql-update-scripts/pgrouting--2.4.1--2.5.0.sql
new file mode 100644
index 0000000..2d81e11
--- /dev/null
+++ b/tools/sql-update-scripts/pgrouting--2.4.1--2.5.0.sql
@@ -0,0 +1,6522 @@
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-- pgRouting extension upgrade from 2.4.1 to 2.5.0
+-- generated by tools/build-extension-update-files
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+\echo Use "ALTER extension pgrouting update to '2.5.0'" to load this file. \quit
+
+
+-------------------------------------
+-- remove functions no longer in the 2.5.0 extension
+-------------------------------------
+
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_astar(text,anyarray,anyarray,boolean,integer,double precision,double precision,boolean);
+DROP FUNCTION IF EXISTS _pgr_astar(text,anyarray,anyarray,boolean,integer,double precision,double precision,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_astar(text,anyarray,bigint,boolean,integer,double precision,double precision,boolean);
+DROP FUNCTION IF EXISTS _pgr_astar(text,anyarray,bigint,boolean,integer,double precision,double precision,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_astar(text,bigint,anyarray,boolean,integer,double precision,double precision,boolean);
+DROP FUNCTION IF EXISTS _pgr_astar(text,bigint,anyarray,boolean,integer,double precision,double precision,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_astar(text,bigint,bigint,boolean,integer,double precision,double precision,boolean);
+DROP FUNCTION IF EXISTS _pgr_astar(text,bigint,bigint,boolean,integer,double precision,double precision,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_bddijkstra(text,bigint,bigint,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_bddijkstra(text,bigint,bigint,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,anyarray,anyarray,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,anyarray,anyarray,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,anyarray,bigint,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,anyarray,bigint,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,bigint,anyarray,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,bigint,anyarray,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,bigint,bigint,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,bigint,bigint,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_maxflow(text,anyarray,anyarray,text,boolean);
+DROP FUNCTION IF EXISTS _pgr_maxflow(text,anyarray,anyarray,text,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_maxflow(text,anyarray,bigint,text,boolean);
+DROP FUNCTION IF EXISTS _pgr_maxflow(text,anyarray,bigint,text,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_maxflow(text,bigint,anyarray,text,boolean);
+DROP FUNCTION IF EXISTS _pgr_maxflow(text,bigint,anyarray,text,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_maxflow(text,bigint,bigint,text,boolean);
+DROP FUNCTION IF EXISTS _pgr_maxflow(text,bigint,bigint,text,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_pickdeliver(text,integer,double precision,double precision,integer);
+DROP FUNCTION IF EXISTS _pgr_pickdeliver(text,integer,double precision,double precision,integer);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,anyarray,anyarray,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,anyarray,anyarray,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,anyarray,bigint,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,anyarray,bigint,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,bigint,anyarray,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,bigint,anyarray,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,bigint,bigint,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,bigint,bigint,boolean,character,boolean,boolean);
+
+
+------------------------------------------
+--       New functions:  2.3
+--    Signature change:  2.5
+-- Inner query changed:  2.5
+------------------------------------------
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_edgedisjointpaths(text,bigint,bigint,boolean);
+DROP FUNCTION IF EXISTS pgr_edgedisjointpaths(text,bigint,bigint,boolean);
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_edgedisjointpaths(text,bigint,anyarray,boolean);
+DROP FUNCTION IF EXISTS pgr_edgedisjointpaths(text,bigint,anyarray,boolean);
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_edgedisjointpaths(text,anyarray,bigint,boolean);
+DROP FUNCTION IF EXISTS pgr_edgedisjointpaths(text,anyarray,bigint,boolean);
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_edgedisjointpaths(text,anyarray,anyarray,boolean);
+DROP FUNCTION IF EXISTS pgr_edgedisjointpaths(text,anyarray,anyarray,boolean);
+
+
+
+
+
+
+
+
+
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+--- pgRouting provides geospatial routing functionality.
+--- http://pgrouting.org
+--- copyright
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+---
+--- This is free software; you can redistribute and/or modify it:
+--- the terms of the GNU General Public Licence. See the COPYING file.
+--- the terms of the MIT-X Licence. See the COPYING file.
+---
+--- The following functions have MIT-X licence:
+---     pgr_version()
+---     pgr_tsp(matrix float8[][], startpt integer, endpt integer DEFAULT -1, OUT seq integer, OUT id integer)
+---     _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+---     pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
+---
+---
+--- All other functions are under GNU General Public Licence.
+---
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+--
+-- WARNING: Any change in this file must be evaluated for compatibility.
+--          Changes cleanly handled by postgis_upgrade.sql are fine,
+--          other changes will require a bump in Major version.
+--          Currently only function replaceble by CREATE OR REPLACE
+--          are cleanly handled.
+--
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+
+--  pgRouting 2.0 types
+
+
+
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_version()
+RETURNS TABLE(
+        "version" varchar,
+        tag varchar,
+        hash varchar,
+        branch varchar,
+        boost varchar
+    ) AS
+$BODY$
+    SELECT '2.5.0'::varchar AS version,
+        'v2.5.0'::varchar AS tag,
+        ''::varchar AS hash,
+        ''::varchar AS branch,
+        '1.54.0'::varchar AS boost;
+$BODY$
+LANGUAGE sql IMMUTABLE;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getTableName(IN tab text, IN reportErrs int default 0, IN fnName text default '_pgr_getTableName', OUT sname text,OUT tname text)
+  RETURNS RECORD AS
+$$
+DECLARE
+        naming record;
+        i integer;
+        query text;
+        sn text; -- schema name
+        tn text; -- table name
+        ttype text; --table type for future use
+        err boolean;
+        debuglevel text;
+        var_types text[] = ARRAY['BASE TABLE', 'VIEW'];
+BEGIN
+
+    execute 'show client_min_messages' into debuglevel;
+
+
+    perform _pgr_msg( 0, fnName, 'Checking table ' || tab || ' exists');
+    --RAISE DEBUG 'Checking % exists',tab;
+
+    i := strpos(tab,'.');
+    IF (i <> 0) THEN
+        sn := split_part(tab, '.',1);
+        tn := split_part(tab, '.',2);
+    ELSE
+        sn := current_schema;
+        tn := tab;
+    END IF;
+
+
+   SELECT schema_name INTO sname
+   FROM information_schema.schemata WHERE schema_name = sn;
+
+    IF sname IS NOT NULL THEN -- found schema (as is)
+       SELECT table_name, table_type INTO tname, ttype
+       FROM information_schema.tables
+       WHERE
+                table_type = ANY(var_types) and
+                table_schema = sname and
+                table_name = tn ;
+        IF tname is NULL THEN
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  = ANY(var_types) and
+                table_schema = sname and
+                table_name = lower(tn) ORDER BY table_name;
+        END IF;
+    END IF;
+    IF sname is NULL or tname is NULL THEN --schema not found or table not found
+        SELECT schema_name INTO sname
+        FROM information_schema.schemata
+        WHERE schema_name = lower(sn) ;
+
+        IF sname IS NOT NULL THEN -- found schema (with lower caps)
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  =  ANY(var_types) and
+                table_schema = sname and
+                table_name= tn ;
+
+           IF tname IS NULL THEN
+                SELECT table_name, table_type INTO tname, ttype
+                FROM information_schema.tables
+                WHERE
+                    table_type  =  ANY(var_types) and
+                    table_schema = sname and
+                    table_name= lower(tn) ;
+           END IF;
+        END IF;
+    END IF;
+   err = (sname IS NULL OR tname IS NULL);
+   perform _pgr_onError(err, reportErrs, fnName, 'Table ' || tab ||' not found',' Check your table name', 'Table '|| tab || ' found');
+
+END;
+$$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(sname text, tname text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(col) into cname;
+
+    IF cname is null  THEN
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(lower(col))  into cname;
+    END if;
+
+    err = cname is null;
+
+    perform _pgr_onError(err, reportErrs, fnName,  'Column '|| col ||' not found', ' Check your column name','Column '|| col || ' found');
+    RETURN cname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(tab text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+
+    select * into cname from _pgr_getColumnName(sname,tname,col,reportErrs, fnName);
+    RETURN cname;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    select * from _pgr_getColumnName(tab,col,0, '_pgr_isColumnInTable') into cname;
+    return cname is not null;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(sname text, tname text, cname text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    pkey text;
+BEGIN
+    SELECT
+          pg_attribute.attname into pkey
+         --  format_type(pg_attribute.atttypid, pg_attribute.atttypmod)
+          FROM pg_index, pg_class, pg_attribute
+          WHERE
+                  pg_class.oid = _pgr_quote_ident(sname||'.'||tname)::regclass AND
+                  indrelid = pg_class.oid AND
+                  pg_attribute.attrelid = pg_class.oid AND
+                  pg_attribute.attnum = any(pg_index.indkey)
+                  AND indisprimary;
+
+    IF pkey=cname then
+          RETURN TRUE;
+    END IF;
+
+    SELECT a.index_name,
+           b.attname,
+           b.attnum,
+           a.indisunique,
+           a.indisprimary
+      INTO rec
+      FROM ( SELECT a.indrelid,
+                    a.indisunique,
+                    a.indisprimary,
+                    c.relname index_name,
+                    unnest(a.indkey) index_num
+               FROM pg_index a,
+                    pg_class b,
+                    pg_class c,
+                    pg_namespace d
+              WHERE b.relname=tname
+                AND b.relnamespace=d.oid
+                AND d.nspname=sname
+                AND b.oid=a.indrelid
+                AND a.indexrelid=c.oid
+           ) a,
+           pg_attribute b
+     WHERE a.indrelid = b.attrelid
+       AND a.index_num = b.attnum
+       AND b.attname = cname
+  ORDER BY a.index_name,
+           a.index_num;
+
+  RETURN FOUND;
+  EXCEPTION WHEN OTHERS THEN
+    perform _pgr_onError( true, reportErrs, fnName,
+    'Error when checking for the postgres system attributes', SQLERR);
+    RETURN FALSE;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(tab text, col text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    sname text;
+    tname text;
+    cname text;
+    pkey text;
+    value boolean;
+BEGIN
+    SELECT * into naming FROM _pgr_getTableName(tab, 0, fnName);
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    SELECT * into cname from _pgr_getColumnName(sname, tname, col, 0, fnName) ;
+    IF cname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    select * into value  from _pgr_isColumnIndexed(sname, tname, cname, reportErrs, fnName);
+    return value;
+END
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+create or replace function _pgr_quote_ident(idname text)
+    returns text as
+$body$
+declare
+    t text[];
+    pgver text;
+
+begin
+    pgver := regexp_replace(version(), E'^PostgreSQL ([^ ]+)[ ,].*$', E'\\1');
+
+    if _pgr_versionless(pgver, '9.2') then
+        select into t array_agg(quote_ident(term)) from
+            (select nullif(unnest, '') as term
+               from unnest(string_to_array(idname, '.'))) as foo;
+    else
+        select into t array_agg(quote_ident(term)) from
+            (select unnest(string_to_array(idname, '.', '')) as term) as foo;
+    end if;
+    return array_to_string(t, '.');
+end;
+$body$
+language plpgsql immutable;
+
+
+CREATE OR REPLACE FUNCTION _pgr_versionless(v1 text, v2 text)
+  RETURNS boolean AS
+$BODY$
+
+
+declare
+    v1a text[];
+    v2a text[];
+    nv1 integer;
+    nv2 integer;
+    ne1 integer;
+    ne2 integer;
+
+begin
+    -- separate components into an array, like:
+    -- '2.1.0-beta3dev'  =>  {2,1,0,beta3dev}
+    v1a := regexp_matches(v1, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+    v2a := regexp_matches(v2, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+
+    -- convert modifiers to numbers for comparison
+    -- we do not delineate between alpha1, alpha2, alpha3, etc
+    ne1 := case when v1a[4] is null or v1a[4]='' then 5
+                when v1a[4] ilike 'rc%' then 4
+                when v1a[4] ilike 'beta%' then 3
+                when v1a[4] ilike 'alpha%' then 2
+                when v1a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    ne2 := case when v2a[4] is null or v2a[4]='' then 5
+                when v2a[4] ilike 'rc%' then 4
+                when v2a[4] ilike 'beta%' then 3
+                when v2a[4] ilike 'alpha%' then 2
+                when v2a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    nv1 := v1a[1]::integer * 10000 +
+           coalesce(v1a[2], '0')::integer * 1000 +
+           coalesce(v1a[3], '0')::integer *  100 + ne1;
+    nv2 := v2a[1]::integer * 10000 +
+           coalesce(v2a[2], '0')::integer * 1000 +
+           coalesce(v2a[3], '0')::integer *  100 + ne2;
+
+    --raise notice 'nv1: %, nv2: %, ne1: %, ne2: %', nv1, nv2, ne1, ne2;
+
+    return nv1 < nv2;
+end;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+create or replace function _pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_startpoint(st_geometryn(g,1));
+    else
+        return st_startpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function _pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_endpoint(st_geometryn(g,1));
+    else
+        return st_endpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_parameter_check(fn text, sql text, big boolean default false)
+  RETURNS bool AS
+  $BODY$
+
+  DECLARE
+  rec record;
+  rec1 record;
+  has_rcost boolean;
+  safesql text;
+  BEGIN
+    IF (big) THEN
+       RAISE EXCEPTION 'This function is for old style functions';
+    END IF;
+
+    -- checking query is executable
+    BEGIN
+      safesql =  'select * from ('||sql||' ) AS __a__ limit 1';
+      execute safesql into rec;
+      EXCEPTION
+        WHEN OTHERS THEN
+            RAISE EXCEPTION 'Could not execute query please verify syntax of: '
+              USING HINT = sql;
+    END;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('dijkstra','astar') THEN
+        BEGIN
+          execute 'select id,source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: id, source, target, cost';
+        END;
+        execute 'select pg_typeof(id)::text as id_type, pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.id_type in ('integer'::text))
+              AND (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Error, columns ''source'', ''target'' must be of type int4, ''cost'' must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    IF fn IN ('astar') THEN
+        BEGIN
+          execute 'select x1,y1,x2,y2  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: x1,y1, x2,y2';
+        END;
+        execute 'select pg_typeof(x1)::text as x1_type, pg_typeof(y1)::text as y1_type, pg_typeof(x2)::text as x2_type, pg_typeof(y2)::text as y2_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.x1_type = 'double precision'::text)
+              AND (rec.y1_type = 'double precision'::text)
+              AND (rec.x2_type = 'double precision'::text)
+              AND (rec.y2_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Columns: x1, y1, x2, y2 must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('johnson') THEN
+        BEGIN
+          execute 'select source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING HINT = 'Please veryfy the column names: id, source, target, cost',
+                         ERRCODE = 'XX000';
+        END;
+
+        execute 'select pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Support for source,target columns only of type: integer. Support for Cost: double precision'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    -- Checking the data types of the optional reverse_cost";
+    has_rcost := false;
+    IF fn IN ('johnson','dijkstra','astar') THEN
+      BEGIN
+        execute 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||safesql||' ) AS __b__ limit 1 ' into rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+            return has_rcost;
+      END;
+      if (has_rcost) then
+        IF (big) then
+           IF  not (rec1.rev_type in ('bigint'::text, 'integer'::text, 'smallint'::text, 'double precision'::text, 'real'::text)) then
+             RAISE EXCEPTION 'Illegar type in optional parameter reverse_cost.'
+             USING ERRCODE = 'XX000';
+           END IF;
+        ELSE -- Version 2.0.0 is more restrictive
+           IF (rec1.rev_type != 'double precision') then
+             RAISE EXCEPTION 'Illegal type in optional parameter reverse_cost, must be of type float8'
+             USING ERRCODE = 'XX000';
+           END IF;
+        END IF;
+      end if;
+      return true;
+    END IF;
+    -- just for keeps
+    return true;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_onError(
+  IN errCond boolean,  -- true there is an error
+  IN reportErrs int,   -- 0, 1 or 2
+  IN fnName text,      -- function name that generates the error
+  IN msgerr text,      -- error message
+  IN hinto text default 'No hint', -- hint help
+  IN msgok text default 'OK')      -- message if everything is ok
+  RETURNS void AS
+$BODY$
+BEGIN
+  if errCond=true then
+     if reportErrs=0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+     else
+       if reportErrs = 2 then
+         raise notice '----> PGR ERROR in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+         raise raise_exception;
+       else
+         raise notice '----> PGR NOTICE in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+       end if;
+     end if;
+  else
+       raise debug 'PGR ----> %: %',fnName,msgok;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_msg(IN msgKind int, IN fnName text, IN msg text default '---->OK')
+  RETURNS void AS
+$BODY$
+BEGIN
+  if msgKind = 0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msg;
+  else
+       raise notice '----> PGR NOTICE in %: %',fnName,msg;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(sname text, tname text, cname text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    EXECUTE 'select data_type  from information_schema.columns '
+            || 'where table_name = '||quote_literal(tname)
+                 || ' and table_schema=' || quote_literal(sname)
+                 || ' and column_name='||quote_literal(cname)
+       into ctype;
+    err = ctype is null;
+    perform _pgr_onError(err, reportErrs, fnName,
+            'Type of Column '|| cname ||' not found',
+            'Check your column name',
+            'OK: Type of Column '|| cname || ' is ' || ctype);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(tab text, col text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+    select * into cname from _pgr_getColumnName(tab,col,reportErrs, fnName) ;
+    select * into ctype from _pgr_getColumnType(sname,tname,cname,reportErrs, fnName);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_get_statement(o_sql text)
+RETURNS text AS
+$BODY$
+DECLARE
+sql TEXT;
+BEGIN
+    EXECUTE 'SELECT statement FROM pg_prepared_statements WHERE name ='  || quote_literal(o_sql) || ' limit 1 ' INTO sql;
+    IF (sql IS NULL) THEN
+      RETURN   o_sql;
+    ELSE
+      RETURN  regexp_replace(sql, '(.)* as ', '', 'i');
+    END IF;
+END
+$BODY$
+LANGUAGE plpgsql STABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_checkVertTab(vertname text, columnsArr  text[],
+    IN reportErrs int default 1, IN fnName text default '_pgr_checkVertTab',
+    OUT sname text,OUT vname text)
+RETURNS record AS
+$BODY$
+DECLARE
+    cname text;
+    colname text;
+    naming record;
+    debuglevel text;
+    err  boolean;
+    msgKind int;
+
+BEGIN
+    msgKind = 0; -- debug_
+    execute 'show client_min_messages' into debuglevel;
+
+    perform _pgr_msg(msgKind, fnName, 'Checking table ' || vertname || ' exists');
+       select * from _pgr_getTableName(vertname, 0, fnName) into naming;
+       sname=naming.sname;
+       vname=naming.tname;
+       err = sname is NULL or vname is NULL;
+    perform _pgr_onError( err, 2, fnName,
+          'Vertex Table: ' || vertname || ' not found',
+          'Please create ' || vertname || ' using  _pgr_createTopology() or pgr_createVerticesTable()',
+          'Vertex Table: ' || vertname || ' found');
+
+
+    perform _pgr_msg(msgKind, fnName, 'Checking columns of ' || vertname);
+      FOREACH cname IN ARRAY columnsArr
+      loop
+         select _pgr_getcolumnName(vertname, cname, 0, fnName) into colname;
+         if colname is null then
+           perform _pgr_msg(msgKind, fnName, 'Adding column ' || cname || ' in ' || vertname);
+           set client_min_messages  to warning;
+                execute 'ALTER TABLE '||_pgr_quote_ident(vertname)||' ADD COLUMN '||cname|| ' integer';
+           execute 'set client_min_messages  to '|| debuglevel;
+           perform _pgr_msg(msgKind, fnName);
+         end if;
+      end loop;
+    perform _pgr_msg(msgKind, fnName, 'Finished checking columns of ' || vertname);
+
+    perform _pgr_createIndex(vertname , 'id' , 'btree', reportErrs, fnName);
+ END
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(
+    sname text, tname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    debuglevel text;
+    naming record;
+    tabname text;
+    query text;
+    msgKind int;
+BEGIN
+  msgKind = 0; -- debug_
+
+  execute 'show client_min_messages' into debuglevel;
+  tabname=_pgr_quote_ident(sname||'.'||tname);
+  perform _pgr_msg(msgKind, fnName, 'Checking ' || colname || ' column in ' || tabname || ' is indexed');
+    IF (_pgr_isColumnIndexed(sname,tname,colname, 0, fnName)) then
+       perform _pgr_msg(msgKind, fnName);
+    else
+      if indext = 'gist' then
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using gist('||quote_ident(colname)||')';
+      else
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using btree('||quote_ident(colname)||')';
+      end if;
+      perform _pgr_msg(msgKind, fnName, 'Adding index ' || tabname || '_' ||  colname || '_idx');
+      perform _pgr_msg(msgKind, fnName, ' Using ' ||  query);
+      set client_min_messages  to warning;
+      BEGIN
+        execute query;
+        EXCEPTION WHEN others THEN
+          perform _pgr_onError( true, reportErrs, fnName,
+            'Could not create index on:' || colname, SQLERRM);
+      END;
+      execute 'set client_min_messages  to '|| debuglevel;
+      perform _pgr_msg(msgKind, fnName);
+    END IF;
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(tabname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    naming record;
+    sname text;
+    tname text;
+
+BEGIN
+    select * from _pgr_getTableName(tabname, 2, fnName)  into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    execute _pgr_createIndex(sname, tname, colname, indext, reportErrs, fnName);
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pointToId(
+    point geometry,
+    tolerance double precision,
+    vertname text,
+    srid integer)
+
+  RETURNS bigint AS
+$BODY$
+DECLARE
+    rec record;
+    pid bigint;
+
+BEGIN
+    EXECUTE 'SELECT ST_Distance(
+        the_geom,
+        ST_GeomFromText(ST_AsText('
+                || quote_literal(point::text)
+                || '),'
+            || srid ||')) AS d, id, the_geom
+    FROM '||_pgr_quote_ident(vertname)||'
+    WHERE ST_DWithin(
+        the_geom,
+        ST_GeomFromText(
+            ST_AsText(' || quote_literal(point::text) ||'),
+            ' || srid || '),' || tolerance||')
+    ORDER BY d
+    LIMIT 1' INTO rec ;
+    IF rec.id IS NOT NULL THEN
+        pid := rec.id;
+    ELSE
+        execute 'INSERT INTO '||_pgr_quote_ident(vertname)||' (the_geom) VALUES ('||quote_literal(point::text)||')';
+        pid := lastval();
+END IF;
+
+RETURN pid;
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'many_to_many_dijkstra'
+LANGUAGE c VOLATILE;
+
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer, OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstra(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(Many to Many)';
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraVia(
+    edges_sql TEXT,
+    via_vertices ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    strict BOOLEAN DEFAULT FALSE,
+    U_turn_on_edge BOOLEAN DEFAULT TRUE,
+
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'dijkstraVia'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_johnson(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'johnson'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_floydWarshall(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'floydWarshall'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'astarManyToMany'
+LANGUAGE c VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, normal:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to Many)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true, normal:=false) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to Many)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid ANYARRAY,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+    equicost BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '$libdir/libpgrouting-2.5', 'many_withPointsDD'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_withPointsDD($1, $2, ARRAY[$3]::BIGINT[], $4, $5, $6, $7, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vids anyarray,
+    distance FLOAT,
+    directed BOOLEAN DEFAULT TRUE,
+    equicost BOOLEAN DEFAULT FALSE,
+    OUT seq integer,
+    OUT from_v  bigint,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '$libdir/libpgrouting-2.5', 'driving_many_to_dist'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vid bigint,
+    distance FLOAT8,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq integer,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer, directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'kshortest_path'
+    LANGUAGE c STABLE STRICT;
+
+-- V2 the graph is directed and there are no heap paths
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid integer, end_vid integer, k integer, has_rcost boolean)
+  RETURNS SETOF pgr_costresult3 AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated signature of pgr_ksp';
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql::text, false);
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_rcost) THEN
+           -- user says that it has reverse_cost but its not true
+           RAISE EXCEPTION 'has_reverse_cost set to true but reverse_cost not found';
+         ELSE
+           -- user says that it does not have reverse_cost but it does have it
+           -- to ignore we remove reverse_cost from the query
+           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+         END IF;
+      END IF;
+
+      RETURN query SELECT ((row_number() over()) -1)::integer  AS seq,  (path_id - 1)::integer AS id1, node::integer AS id2, edge::integer AS id3, cost
+            FROM _pgr_ksp(sql::text, start_vid, end_vid, k, TRUE, FALSE) WHERE path_id <= k;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer,
+  directed boolean default true, heap_paths boolean default false,
+  --directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  BEGIN
+         RETURN query SELECT *
+                FROM _pgr_ksp(edges_sql::text, start_vid, end_vid, k, directed, heap_paths);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsKSP(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    k INTEGER,
+
+    directed BOOLEAN DEFAULT TRUE,
+    heap_paths BOOLEAN DEFAULT FALSE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER, OUT path_id INTEGER, OUT path_seq INTEGER,
+    OUT node BIGINT, OUT edge BIGINT,
+    OUT cost FLOAT, OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'withPoints_ksp'
+    LANGUAGE c STABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_unnest_matrix(matrix float8[][], OUT start_vid integer, OUT end_vid integer, out agg_cost float8)
+RETURNS SETOF record AS
+
+$body$
+DECLARE
+
+m float8[];
+
+BEGIN
+    start_vid = 1;
+    foreach m slice 1 in  ARRAY matrix
+    LOOP
+        end_vid = 1;
+        foreach agg_cost in  ARRAY m
+        LOOP
+            RETURN next;
+            end_vid = end_vid + 1;
+        END LOOP;
+        start_vid = start_vid + 1;
+    END LOOP;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_tsp(
+    matrix float8[][],
+    startpt INTEGER,
+    endpt INTEGER DEFAULT -1,
+    OUT seq INTEGER,
+    OUT id INTEGER)
+RETURNS SETOF record AS
+$body$
+DECLARE
+table_sql TEXT;
+debuglevel TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature pgr_tsp(float8[][], integer, integer)';
+
+    CREATE TEMP TABLE ___tmp2 ON COMMIT DROP AS SELECT * FROM _pgr_unnest_matrix( matrix );
+
+
+    startpt := startpt + 1;
+    IF endpt = -1 THEN endpt := startpt;
+    END IF;
+
+
+    RETURN QUERY
+    WITH
+    result AS (
+        SELECT * FROM pgr_TSP(
+        $$SELECT * FROM ___tmp2 $$,
+        startpt, endpt,
+
+        tries_per_temperature :=  500 :: INTEGER,
+        max_changes_per_temperature := 30 :: INTEGER,
+        max_consecutive_non_changes := 500 :: INTEGER,
+
+        randomize:=false)
+    )
+    SELECT (row_number() over(ORDER BY result.seq) - 1)::INTEGER AS seq, (result.node - 1)::INTEGER AS id
+
+    FROM result WHERE NOT(result.node = startpt AND result.seq != 1);
+
+    DROP TABLE ___tmp2;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+
+
+
+CREATE OR  REPLACE FUNCTION pgr_tsp(sql text, start_id INTEGER, end_id INTEGER default (-1))
+returns setof pgr_costResult as
+$body$
+DECLARE
+table_sql TEXT;
+rec RECORD;
+debuglevel TEXT;
+n BIGINT;
+
+BEGIN
+    RAISE NOTICE 'Deprecated Signature pgr_tsp(sql, integer, integer)';
+
+    table_sql := 'CREATE TEMP TABLE ___tmp ON COMMIT DROP AS ' || sql ;
+    EXECUTE table_sql;
+
+
+    BEGIN
+        EXECUTE 'SELECT id, x, y FROM ___tmp' INTO rec;
+        EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                USING ERRCODE = 'XX000',
+                HINT = 'Please verify the column names: id, x, y';
+    END;
+
+    EXECUTE
+    'SELECT
+        pg_typeof(id)::text as id_type,
+        pg_typeof(x)::text as x_type,
+        pg_typeof(y)::text as y_type FROM ___tmp' INTO rec;
+
+
+    IF NOT((rec.id_type in ('integer'::text))
+        AND (rec.x_type = 'double precision'::text)
+        AND (rec.y_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION '''id'' must be of type INTEGER, ''x'' ad ''y'' must be of type FLOAT'
+            USING ERRCODE = 'XX000';
+    END IF;
+
+    EXECUTE 'SELECT count(*) AS n FROM (' || sql || ') AS __a__' INTO rec;
+    n = rec.n;
+
+    RETURN query
+        SELECT (seq - 1)::INTEGER AS seq, node::INTEGER AS id1, node::INTEGER AS id2, cost
+        FROM pgr_eucledianTSP(sql, start_id, end_id,
+
+            tries_per_temperature :=  500 * n :: INTEGER,
+            max_changes_per_temperature := 60 * n :: INTEGER,
+            max_consecutive_non_changes := 500 * n :: INTEGER,
+
+            randomize := false) WHERE seq <= n;
+    DROP TABLE ___tmp;
+
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+
+create or replace function _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+  as
+$body$
+declare
+    sql text;
+    r record;
+
+begin
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    sql := 'with nodes as (' || sqlin || ')
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j, st_distance(st_makepoint(a.x, a.y), st_makepoint(b.x, b.y)) as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i';
+
+    for r in execute sql loop
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+
+end;
+$body$
+language plpgsql stable cost 10;
+
+
+CREATE OR REPLACE FUNCTION pgr_TSP(
+    matrix_row_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '$libdir/libpgrouting-2.5', 'newTSP'
+LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_eucledianTSP(
+    coordinates_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '$libdir/libpgrouting-2.5', 'eucledianTSP'
+LANGUAGE c VOLATILE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_alphashape(sql text, alpha float8 DEFAULT 0, OUT x float8, OUT y float8)
+    RETURNS SETOF record
+    AS '$libdir/libpgrouting-2.5', 'alphashape'
+    LANGUAGE c VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_pointsAsPolygon(query varchar, alpha float8 DEFAULT 0)
+	RETURNS geometry AS
+	$$
+	DECLARE
+		r record;
+		geoms geometry[];
+		vertex_result record;
+		i int;
+		n int;
+		spos int;
+		q text;
+		x float8[];
+		y float8[];
+
+	BEGIN
+		geoms := array[]::geometry[];
+		i := 1;
+
+		FOR vertex_result IN EXECUTE 'SELECT x, y FROM pgr_alphashape('''|| query || ''', ' || alpha || ')'
+		LOOP
+			x[i] = vertex_result.x;
+			y[i] = vertex_result.y;
+			i := i+1;
+		END LOOP;
+
+		n := i;
+		IF n = 1 THEN
+			RAISE NOTICE 'n = 1';
+			RETURN NULL;
+		END IF;
+
+		spos := 1;
+		q := 'SELECT ST_GeometryFromText(''POLYGON((';
+		FOR i IN 1..n LOOP
+			IF x[i] IS NULL AND y[i] IS NULL THEN
+				q := q || ', ' || x[spos] || ' ' || y[spos] || '))'',0) AS geom;';
+				EXECUTE q INTO r;
+				geoms := geoms || array[r.geom];
+				q := '';
+			ELSE
+				IF q = '' THEN
+					spos := i;
+					q := 'SELECT ST_GeometryFromText(''POLYGON((';
+				END IF;
+				IF i = spos THEN
+					q := q || x[spos] || ' ' || y[spos];
+				ELSE
+					q := q || ', ' || x[i] || ' ' || y[i];
+				END IF;
+			END IF;
+		END LOOP;
+
+		RETURN ST_BuildArea(ST_Collect(geoms));
+	END;
+	$$
+	LANGUAGE 'plpgsql' VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'bd_astar'
+LANGUAGE C VOLATILE;
+
+
+
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed:=true, only_cost:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    BOOLEAN,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false);
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to Many)';
+
+
+
+-- one to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to Many)';
+
+
+-- bdDijkstra MANY TO MANY
+CREATE OR REPLACE FUNCTION _pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'bdDijkstra'
+LANGUAGE c VOLATILE;
+
+
+
+-- ONE TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- TODO directed BOOLEAN DEFAULT TRUE,  on version 3
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, false) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, true) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_vid integer,
+    target_vid integer,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '$libdir/libpgrouting-2.5', 'turn_restrict_shortest_path_vertex'
+LANGUAGE 'c' IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '$libdir/libpgrouting-2.5', 'turn_restrict_shortest_path_edge'
+LANGUAGE 'c' IMMUTABLE;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || edges_sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        -- no restrictions then its a dijkstra
+        RETURN query SELECT a.seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_dijkstra(new_sql, start_vid, end_vid, directed) a;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, start_vid, end_vid, directed, has_rcost, restrictions_sql);
+    RETURN;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_trspViaVertices(
+    edges_sql TEXT,
+    via_vids ANYARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult3 AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            new_sql :=
+               'WITH old_sql AS (' || edges_sql || ')' ||
+                '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        RETURN query SELECT (row_number() over())::INTEGER, path_id:: INTEGER, node::INTEGER,
+            (CASE WHEN edge = -2 THEN -1 ELSE edge END)::INTEGER, cost
+            FROM pgr_dijkstraVia(new_sql, via_vids, directed, strict:=true) WHERE edge != -1;
+        RETURN;
+    END IF;
+
+
+    -- make the call without contradiction from part of the user
+    RETURN query SELECT * FROM _pgr_trspViaVertices(new_sql, via_vids::INTEGER[], directed, has_rcost, restrictions_sql);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+
+    new_sql := sql;
+    IF (has_reverse != has_reverse_cost) THEN  -- user contradiction
+        IF (has_reverse) THEN
+            -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) THEN
+        -- no restrictions then its a with points
+        RETURN query SELECT a.seq-1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_withpoints(new_sql,
+            '(SELECT 1 as pid, ' || source_eid || 'as edge_id, ' || source_pos || '::float8 as fraction)'
+            || ' UNION '
+            || '(SELECT 2, ' || target_eid || ', ' || target_pos || ')' ::TEXT,
+            -1, -2, directed) a;
+        -- WHERE node != -2;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, source_eid, source_pos, target_eid, target_pos, directed, has_reverse_cost, turn_restrict_sql);
+    RETURN;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+create or replace function _pgr_trspViaVertices(sql text, vids integer[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    lrra boolean := false;
+    seq integer := 0;
+    seq2 integer := 0;
+
+begin
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(vids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from _pgr_trsp(sql, vids[i], vids[i+1], directed, has_rcost, turn_restrict_sql) as a loop
+            -- filter out the individual path ends except the last one
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --raise notice 'rr: %', rr;
+            if rr.id3 = -1 then
+                lrr := rr;
+                lrra := true;
+            else
+                seq := seq + 1;
+                rr.seq := seq;
+                return next rr;
+            end if;
+        end loop;
+    end loop;
+
+    if lrra then
+        seq := seq + 1;
+        lrr.seq := seq;
+        return next lrr;
+    end if;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+
+----------------------------------------------------------------------------------------------------------
+
+create or replace function pgr_trspViaEdges(sql text, eids integer[], pcts float8[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    first boolean := true;
+    seq integer := 0;
+    seq2 integer :=0;
+    has_reverse BOOLEAN;
+    point_is_vertex BOOLEAN := false;
+    edges_sql TEXT;
+    f float;
+
+begin
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql := sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (NOT has_rcost) THEN
+            -- user does not want to use reverse cost column
+            edges_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    FOREACH f IN ARRAY pcts LOOP
+        IF f in (0,1) THEN
+           point_is_vertex := true;
+        END IF;
+    END LOOP;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) AND NOT point_is_vertex THEN
+        -- no restrictions then its a _pgr_withPointsVia
+        RETURN query SELECT a.seq::INTEGER, path_id::INTEGER AS id1, node::INTEGER AS id2, edge::INTEGER AS id3, cost
+        FROM _pgr_withPointsVia(edges_sql, eids, pcts, directed) a;
+        RETURN;
+    END IF;
+
+    if array_length(eids, 1) != array_length(pcts, 1) then
+        raise exception 'The length of arrays eids and pcts must be the same!';
+    end if;
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(eids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from pgr_trsp(edges_sql,
+                                  eids[i], pcts[i],
+                                  eids[i+1], pcts[i+1],
+                                  directed,
+                                  has_rcost,
+                                  turn_restrict_sql) as a loop
+            -- combine intermediate via costs when cost is split across
+            -- two parts of a segment because it stops it and
+            -- restarts the next leg also on it
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --
+            -- there are multiple condition we have to deal with
+            -- between the end of one leg and start of the next
+            -- 1. same vertex_id. edge_id=-1; drop record with edge_id=-1
+            -- means: path ends on vertex
+            -- NOTICE:  rr: (19,1,44570022,-1,0)
+            -- NOTICE:  rr: (0,2,44570022,1768045,2.89691196717448)
+            -- 2. vertex_id=-1; sum cost components
+            -- means: path end/starts with the segment
+            -- NOTICE:  rr: (11,2,44569628,1775909,9.32885885148532)
+            -- NOTICE:  rr: (0,3,-1,1775909,0.771386350984395)
+
+            --raise notice 'rr: %', rr;
+            if first then
+                lrr := rr;
+                first := false;
+            else
+                if lrr.id3 = -1 then
+                    lrr := rr;
+                elsif lrr.id3 = rr.id3 then
+                    lrr.cost := lrr.cost + rr.cost;
+                    if rr.id2 = -1 then
+                        rr.id2 := lrr.id2;
+                    end if;
+                else
+                    seq := seq + 1;
+                    lrr.seq := seq;
+                    return next lrr;
+                    lrr := rr;
+                end if;
+            end if;
+        end loop;
+    end loop;
+
+    seq := seq + 1;
+    lrr.seq := seq;
+    return next lrr;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+----------------------------
+--    MANY TO MANY
+----------------------------
+
+
+CREATE OR REPLACE FUNCTION _pgr_maxflow(
+    edges_sql TEXT,
+    sources ANYARRAY,
+    targets ANYARRAY,
+    algorithm INTEGER DEFAULT 1,
+    only_flow BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'max_flow_many_to_many'
+    LANGUAGE c VOLATILE;
+
+
+
+
+------------------------------------
+-- 3 pgr_edmondsKarp
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+------------------------------------
+-- 2 boykov_kolmogorov
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+------------------------------------
+-- 1 pgr_pushRelabel
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT flow
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], algorithm := 1, only_flow := true);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], $3::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, $2::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxCardinalityMatch(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'edge_disjoint_paths_many_to_many'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    bigint,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    IN directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_contractGraph(
+    edges_sql TEXT,
+    contraction_order BIGINT[],
+    max_cycles integer DEFAULT 1,
+    forbidden_vertices BIGINT[] DEFAULT ARRAY[]::BIGINT[],
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT type TEXT,
+    OUT id BIGINT,
+    OUT contracted_vertices BIGINT[],
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost float)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'contractGraph'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliver(
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_cell_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'pickDeliver'
+LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliverEuclidean (
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'pickDeliverEuclidean'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_vrpOneDepot(
+    TEXT, -- customers_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_sql
+    INTEGER, -- depot_id
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+orders_sql TEXT;
+trucks_sql TEXT;
+matrix_sql TEXT;
+final_sql TEXT;
+BEGIN
+
+    orders_sql = $$WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    pickups AS (
+        SELECT id, x AS p_x, y AS p_y, open_time AS p_open, close_time AS p_close, service_time AS p_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vrp_orders.id AS id, order_unit AS demand, pickups.id AS p_node_id, p_x, p_y, p_open, p_close, p_service,
+    vrp_orders.id AS d_node_id, x AS d_x, y AS d_y, open_time AS d_open, close_time AS d_close, service_time AS d_service
+    FROM vrp_orders, pickups
+    WHERE vrp_orders.id != $$ || $4;
+
+
+    trucks_sql = $$ WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    vrp_vehicles AS ($$ || $2 || $$ ),
+    starts AS (
+        SELECT id AS start_node_id, x AS start_x, y AS start_y, open_time AS start_open, close_time AS start_close, service_time AS start_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vehicle_id AS id, capacity, starts.* FROM vrp_vehicles, starts;
+    $$;
+
+    final_sql = '
+    SELECT * FROM _pgr_pickDeliver(
+            $$' || orders_sql || '$$,
+            $$' || trucks_sql || '$$,
+            $$' || $3 || '$$,
+            max_cycles := 2,
+            initial_sol := 4 ); ';
+
+    RAISE DEBUG '%', orders_sql;
+    RAISE DEBUG '%', trucks_sql;
+    RAISE DEBUG '%', $3;
+    RAISE DEBUG '%', final_sql;
+
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+-----------------------------------------------------------------------
+-- Core function for vrp with sigle depot computation
+-- See README for description
+-----------------------------------------------------------------------
+--
+--
+
+create or replace function pgr_vrpOneDepot(
+	order_sql text,
+	vehicle_sql text,
+	cost_sql text,
+	depot_id integer,
+
+	OUT oid integer,
+	OUT opos integer,
+	OUT vid integer,
+	OUT tarrival integer,
+	OUT tdepart integer)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT order_id::INTEGER, stop_seq::INTEGER, vehicle_id::INTEGER, arrival_time::INTEGER, departure_time::INTEGER
+    FROM _pgr_vrpOneDepot($1, $2,
+       '
+            SELECT src_id AS start_vid, dest_id AS end_vid, traveltime AS agg_cost FROM ('||$3||') AS a
+       ',
+        $4
+    ) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_gsoc_vrppdtw(
+    customers_sql TEXT,
+    max_vehicles INTEGER,
+    capacity FLOAT,
+    speed FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+
+    OUT seq INTEGER,
+    OUT vehicle_id INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT stop_id BIGINT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+    orders_sql TEXT;
+    vehicles_sql TEXT;
+    final_sql TEXT;
+BEGIN
+    orders_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        pickups AS (
+            SELECT id, demand, x as p_x, y as p_y, opentime as p_open, closetime as p_close, servicetime as p_service
+            FROM  customer_data WHERE pindex = 0 AND id != 0
+        ),
+        deliveries AS (
+            SELECT pindex AS id, x as d_x, y as d_y, opentime as d_open, closetime as d_close, servicetime as d_service
+            FROM  customer_data WHERE dindex = 0 AND id != 0
+        )
+        SELECT * FROM pickups JOIN deliveries USING(id) ORDER BY pickups.id
+    $$;
+
+    vehicles_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ )
+        SELECT id, x AS start_x, y AS start_y,
+            opentime AS start_open, closetime AS start_close, $$ ||
+            capacity || $$ AS capacity, $$ || max_vehicles || $$ AS number, $$ || speed || $$ AS speed
+            FROM customer_data WHERE id = 0 LIMIT 1
+        $$;
+--  seq | vehicle_id | vehicle_seq | stop_id | travel_time | arrival_time | wait_time | service_time | departure_time
+    final_sql = $$ WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        p_deliver AS (SELECT * FROM _pgr_pickDeliverEuclidean('$$ || orders_sql || $$',  '$$ || vehicles_sql || $$',  1, $$ || max_cycles || $$ )),
+        picks AS (SELECT p_deliver.*, pindex, dindex, id AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 2)),
+        delivers AS (SELECT p_deliver.*, pindex, dindex, dindex AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 3)),
+        depots AS (SELECT p_deliver.*, 0 as pindex, 0 as dindex, 0 AS the_id FROM p_deliver WHERE (stop_type IN (-1,1,6))),
+        the_union AS (SELECT * FROM picks UNION SELECT * FROM delivers UNION SELECT * from depots)
+
+        SELECT (row_number() over(ORDER BY a.seq))::INTEGER, vehicle_seq, a.stop_seq, the_id::BIGINT, a.travel_time, a.arrival_time, a.wait_time, a.service_time, a.departure_time
+        FROM (SELECT * FROM the_union) AS a ORDER BY a.seq
+        $$;
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+CREATE OR REPLACE FUNCTION pgr_gsoc_vrppdtw(
+    sql text,
+    vehicle_num INTEGER,
+    capacity INTEGER
+)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+customers_sql TEXT;
+BEGIN
+    RETURN query
+         SELECT a.seq, vehicle_id::INTEGER AS id1, stop_id::INTEGER AS id2, departure_time AS cost
+        FROM _pgr_gsoc_vrppdtw($1, $2, $3, 1, 30) AS a WHERE vehicle_id NOT IN (-2);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION _pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN,
+    driving_side CHAR,
+    details BOOLEAN,
+
+    only_cost BOOLEAN DEFAULT false, -- gets path
+    normal BOOLEAN DEFAULT true, -- false for many to onu
+
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'withPoints'
+LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], ARRAY[$4]::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], ARRAY[$4]::bigint[], $5, $6, $7, FALSE, FALSE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], $4::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], $4::BIGINT[], $5,  $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION  _pgr_withPointsVia(
+    sql text,
+    via_edges bigint[],
+    fraction float[],
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  has_rcost boolean;
+  sql_new_vertices text := ' ';
+  sql_on_vertex text;
+  v_union text := ' ';
+  dummyrec record;
+  rec1 record;
+  via_vertices int[];
+  sql_safe text;
+  new_edges text;
+  BEGIN
+     BEGIN
+        sql_safe = 'SELECT id, source, target, cost, reverse_cost FROM ('|| sql || ') AS __a';
+
+        EXECUTE 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||sql_safe||' ) AS __b__ limit 1 ' INTO rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+     END;
+
+
+      IF array_length(via_edges, 1) != array_length(fraction, 1) then
+        RAISE EXCEPTION 'The length of via_edges is different of length of via_edges';
+      END IF;
+
+      FOR i IN 1 .. array_length(via_edges, 1)
+      LOOP
+          IF fraction[i] = 0 THEN
+              sql_on_vertex := 'SELECT source FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.source;
+          ELSE IF fraction[i] = 1 THEN
+              sql_on_vertex := 'SELECT target FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.target;
+          ELSE
+              via_vertices[i] = -i;
+              IF has_rcost THEN
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost,
+                              reverse_cost * (1 - ' || fraction[i] || ')  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost,
+                              reverse_cost *  ' || fraction[i] || '  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' where id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               ELSE
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               END IF;
+          END IF;
+          END IF;
+     END LOOP;
+
+     IF sql_new_vertices = ' ' THEN
+         new_edges := sql;
+     ELSE
+         IF has_rcost THEN
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost,
+                         lead(cost) OVER w  - cost AS reverse_cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL),
+                   second_part AS ( SELECT * FROM (SELECT id, lead(source) OVER w  AS source, source as target,
+                         reverse_cost - lead(reverse_cost) OVER w  AS cost,
+                         reverse_cost - lead(reverse_cost) OVER w  AS reverse_cost
+                      FROM  the_union  WHERE target > 0 and reverse_cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY reverse_cost ASC) ) as n2
+                      WHERE source IS NOT NULL),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part)
+                             UNION
+                       (SELECT * FROM second_part) ) _union )
+                  SELECT *  FROM more_union';
+         ELSE
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL ),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part) ) _union )
+                  SELECT *  FROM more_union';
+          END IF;
+      END IF;
+
+ -- raise notice '%', new_edges;
+     sql_new_vertices := sql_new_vertices || v_union || ' (' || sql || ')';
+     RETURN query SELECT *
+         FROM pgr_dijkstraVia(new_edges, via_vertices, directed, has_rcost);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_lineGraph(
+    TEXT, -- edges_sql
+    directed BOOLEAN DEFAULT true,
+    OUT seq INTEGER,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost FLOAT,
+    OUT reverse_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'lineGraph'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_connectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'connectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_strongComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'strongComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_biconnectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the edge in the component
+    OUT n_seq INTEGER,          -- nth_seq of the edge in the component
+    OUT edge BIGINT)            -- the number of the edge
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'biconnectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_articulationPoints(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'articulationPoints'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_bridges(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT edge BIGINT)            -- the number of the edge 
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'bridges'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_createtopology(edge_table text, tolerance double precision,
+		   the_geom text default 'the_geom', id text default 'id',
+		   source text default 'source', target text default 'target',rows_where text default 'true',
+		   clean boolean default FALSE)
+RETURNS VARCHAR AS
+$BODY$
+
+DECLARE
+    points record;
+    sridinfo record;
+    source_id bigint;
+    target_id bigint;
+    totcount bigint;
+    rowcount bigint;
+    srid integer;
+    sql text;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    idname text;
+    sourcename text;
+    targetname text;
+    notincluded integer;
+    i integer;
+    naming record;
+    info record;
+    flag boolean;
+    query text;
+    idtype text;
+    gtype text;
+    sourcetype text;
+    targettype text;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+    msgKind int;
+    emptied BOOLEAN;
+
+BEGIN
+    msgKind = 1; -- notice
+    fnName = 'pgr_createTopology';
+    raise notice 'PROCESSING:';
+    raise notice 'pgr_createTopology(''%'', %, ''%'', ''%'', ''%'', ''%'', rows_where := ''%'', clean := %)',edge_table,tolerance,the_geom,id,source,target,rows_where, clean;
+    execute 'show client_min_messages' into debuglevel;
+
+
+    raise notice 'Performing checks, please wait .....';
+
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+        sname=naming.sname;
+        tname=naming.tname;
+        tabname=sname||'.'||tname;
+        vname=tname||'_vertices_pgr';
+        vertname= sname||'.'||vname;
+        rows_where = ' AND ('||rows_where||')';
+      raise DEBUG '     --> OK';
+
+
+      raise debug 'Checking column names in edge table';
+        select * into idname     from _pgr_getColumnName(sname, tname,id,2,fnName);
+        select * into sourcename from _pgr_getColumnName(sname, tname,source,2,fnName);
+        select * into targetname from _pgr_getColumnName(sname, tname,target,2,fnName);
+        select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2,fnName);
+
+
+        err = sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname;
+        perform _pgr_onError( err, 2, fnName,
+               'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
+	       'Column names are OK');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking column types in edge table';
+        select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+        select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+        select * into idtype from _pgr_getColumnType(sname,tname,idname,1, fnName);
+
+        err = idtype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column id:'|| idname, ' Expected type of '|| idname || ' is integer,smallint or bigint but '||idtype||' was found');
+
+        err = sourcetype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column source:'|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+        err = targettype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column target:'|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or bigint but '||targettype||' was found');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking SRID of geometry column';
+         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+            || ' FROM ' || _pgr_quote_ident(tabname)
+            || ' WHERE ' || quote_ident(gname)
+            || ' IS NOT NULL LIMIT 1';
+         raise debug '%',query;
+         EXECUTE query INTO sridinfo;
+
+         err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+         perform _pgr_onError(err, 2, fnName,
+	     'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+
+         srid := sridinfo.srid;
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking and creating indices in edge table';
+        perform _pgr_createIndex(sname, tname , idname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+
+        gname=quote_ident(gname);
+        idname=quote_ident(idname);
+        sourcename=quote_ident(sourcename);
+        targetname=quote_ident(targetname);
+      raise DEBUG '     --> OK';
+
+
+
+
+
+    BEGIN
+        -- issue #193 & issue #210 & #213
+        -- this sql is for trying out the where clause
+        -- the select * is to avoid any column name conflicts
+        -- limit 1, just try on first record
+        -- if the where clasuse is ill formed it will be caught in the exception
+        sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+        EXECUTE sql into dummyRec;
+        -- end
+
+        -- if above where clasue works this one should work
+        -- any error will be caught by the exception also
+        sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NOT NULL AND '||
+	    idname||' IS NOT NULL)=false '||rows_where;
+        EXECUTE SQL  into notincluded;
+
+        if clean then
+            raise debug 'Cleaning previous Topology ';
+               execute 'UPDATE ' || _pgr_quote_ident(tabname) ||
+               ' SET '||sourcename||' = NULL,'||targetname||' = NULL';
+        else
+            raise debug 'Creating topology for edges with non assigned topology';
+            if rows_where=' AND (true)' then
+                rows_where=  ' and ('||quote_ident(sourcename)||' is null or '||quote_ident(targetname)||' is  null)';
+            end if;
+        end if;
+        -- my thoery is that the select Count(*) will never go through here
+        EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+             RAISE NOTICE '%',sql;
+             RETURN 'FAIL';
+    END;
+
+    BEGIN
+         raise DEBUG 'initializing %',vertname;
+         execute 'select * from _pgr_getTableName('||quote_literal(vertname)
+                                                  || ',0,' || quote_literal(fnName) ||' )' into naming;
+         emptied = false;
+         set client_min_messages  to warning;
+         IF sname=naming.sname AND vname=naming.tname  THEN
+            if clean then
+                execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+                execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+                emptied = true;
+            end if;
+         ELSE -- table doesn't exist
+            execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+            emptied = true;
+         END IF;
+         IF (emptied) THEN
+             execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+	         quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+             perform _pgr_createIndex(vertname , 'the_geom'::text , 'gist'::text);
+         END IF;
+         execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id"}''::text[])' into naming;
+         execute 'set client_min_messages  to '|| debuglevel;
+         raise DEBUG  '  ------>OK';
+         EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: something went wrong when initializing the verties table';
+             RETURN 'FAIL';
+    END;
+
+
+
+    raise notice 'Creating Topology, Please wait...';
+        rowcount := 0;
+        FOR points IN EXECUTE 'SELECT ' || idname || '::bigint AS id,'
+            || ' _pgr_StartPoint(' || gname || ') AS source,'
+            || ' _pgr_EndPoint('   || gname || ') AS target'
+            || ' FROM '  || _pgr_quote_ident(tabname)
+            || ' WHERE ' || gname || ' IS NOT NULL AND ' || idname||' IS NOT NULL '||rows_where
+        LOOP
+
+            rowcount := rowcount + 1;
+            IF rowcount % 1000 = 0 THEN
+                RAISE NOTICE '% edges processed', rowcount;
+            END IF;
+
+
+            source_id := _pgr_pointToId(points.source, tolerance,vertname,srid);
+            target_id := _pgr_pointToId(points.target, tolerance,vertname,srid);
+            BEGIN
+                sql := 'UPDATE ' || _pgr_quote_ident(tabname) ||
+                    ' SET '||sourcename||' = '|| source_id::text || ','||targetname||' = ' || target_id::text ||
+                    ' WHERE ' || idname || ' =  ' || points.id::text;
+
+                IF sql IS NULL THEN
+                    RAISE NOTICE 'WARNING: UPDATE % SET source = %, target = % WHERE % = % ', tabname, source_id::text, target_id::text, idname,  points.id::text;
+                ELSE
+                    EXECUTE sql;
+                END IF;
+                EXCEPTION WHEN OTHERS THEN
+                    RAISE NOTICE '%', SQLERRM;
+                    RAISE NOTICE '%',sql;
+                    RETURN 'FAIL';
+            end;
+        END LOOP;
+        raise notice '-------------> TOPOLOGY CREATED FOR  % edges', rowcount;
+        RAISE NOTICE 'Rows with NULL geometry or NULL id: %',notincluded;
+        Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname), _pgr_quote_ident(vertname);
+        raise notice '----------------------------------------------';
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+COMMENT ON FUNCTION pgr_createTopology(text, double precision,text,text,text,text,text,boolean)
+IS 'args: edge_table,tolerance, the_geom:=''the_geom'',source:=''source'', target:=''target'',rows_where:=''true'' - fills columns source and target in the geometry table and creates a vertices table for selected rows';
+
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
+RETURNS character varying AS
+$BODY$
+
+DECLARE
+    points record;
+    seg record;
+    naming record;
+    sridinfo record;
+    srid integer;
+    ecnt integer;
+    vertname text;
+    sname text;
+    tname text;
+    vname text;
+    idname text;
+    sourcename text;
+    targetname text;
+    sourcetype text;
+    targettype text;
+    geotype text;
+    gname text;
+    tabName text;
+    flag boolean ;
+    query text;
+    selectionquery text;
+    i integer;
+    tot integer;
+    NumIsolated integer;
+    numdeadends integer;
+    numgaps integer;
+    NumCrossing integer;
+    numRings integer;
+    debuglevel text;
+
+
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_analyzeGraph(''%'',%,''%'',''%'',''%'',''%'',''%'')',edge_table,tolerance,the_geom,id,source,target,rows_where;
+  raise notice 'Performing checks, please wait ...';
+  execute 'show client_min_messages' into debuglevel;
+
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',2)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    rows_where = ' AND ('||rows_where||')';
+    raise DEBUG '     --> OK';
+
+  END;
+
+  BEGIN
+       raise debug 'Checking Vertices table';
+       execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","cnt","chk"}''::text[])' into naming;
+       execute 'UPDATE '||_pgr_quote_ident(vertname)||' SET cnt=0 ,chk=0';
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the vertices table';
+          RETURN 'FAIL';
+  END;
+
+
+
+  BEGIN
+       raise debug 'Checking column names in edge table';
+       select * into idname     from _pgr_getColumnName(sname, tname,id,2);
+       select * into sourcename from _pgr_getColumnName(sname, tname,source,2);
+       select * into targetname from _pgr_getColumnName(sname, tname,target,2);
+       select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2);
+
+
+       perform _pgr_onError( sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname, 2,
+                       'pgr_analyzeGraph',  'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
+                       'Column names are OK');
+
+        raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column names';
+          RETURN 'FAIL';
+  END;
+
+
+  BEGIN
+       raise debug 'Checking column types in edge table';
+       select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1);
+       select * into targettype from _pgr_getColumnType(sname,tname,targetname,1);
+
+       perform _pgr_onError(sourcetype not in('integer','smallint','bigint') , 2,
+                       'pgr_analyzeGraph',  'Wrong type of Column '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found',
+                       'Type of Column '|| sourcename || ' is ' || sourcetype);
+
+       perform _pgr_onError(targettype not in('integer','smallint','bigint') , 2,
+                       'pgr_analyzeGraph',  'Wrong type of Column '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found',
+                       'Type of Column '|| targetname || ' is ' || targettype);
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column types';
+          RETURN 'FAIL';
+   END;
+
+   BEGIN
+       raise debug 'Checking SRID of geometry column';
+         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+            || ' FROM ' || _pgr_quote_ident(tabname)
+            || ' WHERE ' || quote_ident(gname)
+            || ' IS NOT NULL LIMIT 1';
+         EXECUTE QUERY INTO sridinfo;
+
+         perform _pgr_onError( sridinfo IS NULL OR sridinfo.srid IS NULL,2,
+                 'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname,
+                 'SRID of '||gname||' is '||sridinfo.srid);
+
+         IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
+             RAISE NOTICE ' Can not determine the srid of the geometry "%" in table %', the_geom,tabname;
+             RETURN 'FAIL';
+         END IF;
+         srid := sridinfo.srid;
+         raise DEBUG '     --> OK';
+         EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM;--issue 210,211,213
+             RAISE NOTICE 'ERROR: something went wrong when checking for SRID of % in table %', the_geom,tabname;
+             RETURN 'FAIL';
+    END;
+
+
+    BEGIN
+       raise debug 'Checking  indices in edge table';
+       perform _pgr_createIndex(tabname , idname , 'btree');
+       perform _pgr_createIndex(tabname , sourcename , 'btree');
+       perform _pgr_createIndex(tabname , targetname , 'btree');
+       perform _pgr_createIndex(tabname , gname , 'gist');
+
+       gname=quote_ident(gname);
+       sourcename=quote_ident(sourcename);
+       targetname=quote_ident(targetname);
+       idname=quote_ident(idname);
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking indices';
+          RETURN 'FAIL';
+    END;
+
+
+    BEGIN
+        query='select count(*) from '||_pgr_quote_ident(tabname)||' where true  '||rows_where;
+        EXECUTE query into ecnt;
+        raise DEBUG '-->Rows Where condition: OK';
+        raise DEBUG '     --> OK';
+         EXCEPTION WHEN OTHERS THEN
+            RAISE NOTICE 'Got %', SQLERRM;  --issue 210,211,213
+            RAISE NOTICE 'ERROR: Condition is not correct. Please execute the following query to test your condition';
+            RAISE NOTICE '%',query;
+            RETURN 'FAIL';
+    END;
+
+    selectionquery ='with
+           selectedRows as( (select '||sourcename||' as id from '||_pgr_quote_ident(tabname)||' where true '||rows_where||')
+                           union
+                           (select '||targetname||' as id from '||_pgr_quote_ident(tabname)||' where true '||rows_where||'))';
+
+
+
+
+
+   BEGIN
+       RAISE NOTICE 'Analyzing for dead ends. Please wait...';
+       query= 'with countingsource as (select a.'||sourcename||' as id,count(*) as cnts
+               from (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) a  group by a.'||sourcename||')
+                     ,countingtarget as (select a.'||targetname||' as id,count(*) as cntt
+                    from (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) a  group by a.'||targetname||')
+                   ,totalcount as (select id,case when cnts is null and cntt is null then 0
+                                                   when cnts is null then cntt
+                                                   when cntt is null then cnts
+                                                   else cnts+cntt end as totcnt
+                                   from ('||_pgr_quote_ident(vertname)||' as a left
+                                   join countingsource as t using(id) ) left join countingtarget using(id))
+               update '||_pgr_quote_ident(vertname)||' as a set cnt=totcnt from totalcount as b where a.id=b.id';
+       raise debug '%',query;
+       execute query;
+       query=selectionquery||'
+              SELECT count(*)  FROM '||_pgr_quote_ident(vertname)||' WHERE cnt=1 and id in (select id from selectedRows)';
+       raise debug '%',query;
+       execute query  INTO numdeadends;
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'Got %', SQLERRM;  --issue 210,211,213
+          RAISE NOTICE 'ERROR: something went wrong when analizing for dead ends';
+          RETURN 'FAIL';
+   END;
+
+
+
+    BEGIN
+          RAISE NOTICE 'Analyzing for gaps. Please wait...';
+          query = 'with
+                   buffer as (select id,st_buffer(the_geom,'||tolerance||') as buff from '||_pgr_quote_ident(vertname)||' where cnt=1)
+                   ,veryclose as (select b.id,st_crosses(a.'||gname||',b.buff) as flag
+                   from  (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) as a
+                   join buffer as b on (a.'||gname||'&&b.buff)
+                   where '||sourcename||'!=b.id and '||targetname||'!=b.id )
+                   update '||_pgr_quote_ident(vertname)||' set chk=1 where id in (select distinct id from veryclose where flag=true)';
+          raise debug '%' ,query;
+          execute query;
+          GET DIAGNOSTICS  numgaps= ROW_COUNT;
+          raise DEBUG '     --> OK';
+          EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for gaps';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for isolated edges. Please wait...';
+        query=selectionquery|| ' SELECT count(*) FROM (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' )  as a,
+                                                 '||_pgr_quote_ident(vertname)||' as b,
+                                                 '||_pgr_quote_ident(vertname)||' as c
+                            WHERE b.id in (select id from selectedRows) and a.'||sourcename||' =b.id
+                            AND b.cnt=1 AND a.'||targetname||' =c.id
+                            AND c.cnt=1';
+        raise debug '%' ,query;
+        execute query  INTO NumIsolated;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for isolated edges';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for ring geometries. Please wait...';
+        execute 'SELECT geometrytype('||gname||')  FROM '||_pgr_quote_ident(tabname) limit 1 into geotype;
+        IF (geotype='MULTILINESTRING') THEN
+            query ='SELECT count(*)  FROM '||_pgr_quote_ident(tabname)||'
+                                 WHERE true  '||rows_where||' and st_isRing(st_linemerge('||gname||'))';
+            raise debug '%' ,query;
+            execute query  INTO numRings;
+        ELSE query ='SELECT count(*)  FROM '||_pgr_quote_ident(tabname)||'
+                                  WHERE true  '||rows_where||' and st_isRing('||gname||')';
+            raise debug '%' ,query;
+            execute query  INTO numRings;
+        END IF;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for ring geometries';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for intersections. Please wait...';
+        query = 'select count(*) from (select distinct case when a.'||idname||' < b.'||idname||' then a.'||idname||'
+                                                        else b.'||idname||' end,
+                                                   case when a.'||idname||' < b.'||idname||' then b.'||idname||'
+                                                        else a.'||idname||' end
+                                    FROM (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||') as a
+                                    JOIN (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||') as b
+                                    ON (a.'|| gname||' && b.'||gname||')
+                                    WHERE a.'||idname||' != b.'||idname|| '
+                                        and (a.'||sourcename||' in (b.'||sourcename||',b.'||targetname||')
+                                              or a.'||targetname||' in (b.'||sourcename||',b.'||targetname||')) = false
+                                        and st_intersects(a.'||gname||', b.'||gname||')=true) as d ';
+        raise debug '%' ,query;
+        execute query  INTO numCrossing;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for intersections';
+            RETURN 'FAIL';
+    END;
+
+
+
+
+    RAISE NOTICE '            ANALYSIS RESULTS FOR SELECTED EDGES:';
+    RAISE NOTICE '                  Isolated segments: %', NumIsolated;
+    RAISE NOTICE '                          Dead ends: %', numdeadends;
+    RAISE NOTICE 'Potential gaps found near dead ends: %', numgaps;
+    RAISE NOTICE '             Intersections detected: %',numCrossing;
+    RAISE NOTICE '                    Ring geometries: %',numRings;
+
+
+    RETURN 'OK';
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+COMMENT ON FUNCTION pgr_analyzeGraph(text,double precision,text,text,text,text,text) IS 'args: edge_table, tolerance,the_geom:=''the_geom'',id:=''id'',source column:=''source'', target column:=''target'' rows_where:=''true'' - creates a vertices table based on the geometry for selected rows';
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_analyzeOneway(
+   edge_table text,
+   s_in_rules TEXT[],
+   s_out_rules TEXT[],
+   t_in_rules TEXT[],
+   t_out_rules TEXT[],
+   two_way_if_null boolean default true,
+   oneway text default 'oneway',
+   source text default 'source',
+   target text default 'target')
+  RETURNS text AS
+$BODY$
+
+
+DECLARE
+    rule text;
+    ecnt integer;
+    instr text;
+    naming record;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    owname text;
+    sourcename text;
+    targetname text;
+    sourcetype text;
+    targettype text;
+    vertname text;
+    debuglevel text;
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_analyzeOneway(''%'',''%'',''%'',''%'',''%'',''%'',''%'',''%'',%)',
+		edge_table, s_in_rules , s_out_rules, t_in_rules, t_out_rules, oneway, source ,target,two_way_if_null ;
+  execute 'show client_min_messages' into debuglevel;
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',2)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    raise DEBUG '     --> OK';
+    EXCEPTION WHEN raise_exception THEN
+      RAISE NOTICE 'ERROR: something went wrong checking the table name';
+      RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise debug 'Checking Vertices table';
+       execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","ein","eout"}''::text[])' into naming;
+       execute 'UPDATE '||_pgr_quote_ident(vertname)||' SET eout=0 ,ein=0';
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the vertices table';
+          RETURN 'FAIL';
+  END;
+
+
+  BEGIN
+       raise debug 'Checking column names in edge table';
+       select * into sourcename from _pgr_getColumnName(sname, tname,source,2);
+       select * into targetname from _pgr_getColumnName(sname, tname,target,2);
+       select * into owname from _pgr_getColumnName(sname, tname,oneway,2);
+
+
+       perform _pgr_onError( sourcename in (targetname,owname) or  targetname=owname, 2,
+                       '_pgr_createToplogy',  'Two columns share the same name', 'Parameter names for oneway,source and target  must be different',
+                       'Column names are OK');
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column names';
+          RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise debug 'Checking column types in edge table';
+       select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1);
+       select * into targettype from _pgr_getColumnType(sname,tname,targetname,1);
+
+
+       perform _pgr_onError(sourcetype not in('integer','smallint','bigint') , 2,
+                       '_pgr_createTopology',  'Wrong type of Column '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found',
+                       'Type of Column '|| sourcename || ' is ' || sourcetype);
+
+       perform _pgr_onError(targettype not in('integer','smallint','bigint') , 2,
+                       '_pgr_createTopology',  'Wrong type of Column '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found',
+                       'Type of Column '|| targetname || ' is ' || targettype);
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column types';
+          RETURN 'FAIL';
+   END;
+
+
+
+    RAISE NOTICE 'Analyzing graph for one way street errors.';
+
+    rule := CASE WHEN two_way_if_null
+            THEN owname || ' IS NULL OR '
+            ELSE '' END;
+
+    instr := '''' || array_to_string(s_in_rules, ''',''') || '''';
+       EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set ein=coalesce(ein,0)+b.cnt
+      from (
+         select '|| sourcename ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| sourcename ||' ) b
+     where a.id=b.'|| sourcename;
+
+    RAISE NOTICE 'Analysis 25%% complete ...';
+
+    instr := '''' || array_to_string(t_in_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set ein=coalesce(ein,0)+b.cnt
+        from (
+         select '|| targetname ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| targetname ||' ) b
+        where a.id=b.'|| targetname;
+
+    RAISE NOTICE 'Analysis 50%% complete ...';
+
+    instr := '''' || array_to_string(s_out_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set eout=coalesce(eout,0)+b.cnt
+        from (
+         select '|| sourcename ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| sourcename ||' ) b
+        where a.id=b.'|| sourcename;
+    RAISE NOTICE 'Analysis 75%% complete ...';
+
+    instr := '''' || array_to_string(t_out_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set eout=coalesce(eout,0)+b.cnt
+        from (
+         select '|| targetname ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| targetname ||' ) b
+        where a.id=b.'|| targetname;
+
+    RAISE NOTICE 'Analysis 100%% complete ...';
+
+    EXECUTE 'SELECT count(*)  FROM '||_pgr_quote_ident(vertname)||' WHERE ein=0 or eout=0' INTO ecnt;
+
+    RAISE NOTICE 'Found % potential problems in directionality' ,ecnt;
+
+    RETURN 'OK';
+
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+COMMENT ON FUNCTION pgr_analyzeOneway(text,TEXT[],TEXT[], TEXT[],TEXT[],boolean,text,text,text)
+IS 'args:edge_table , s_in_rules , s_out_rules, t_in_rules , t_out_rules, two_way_if_null:= true, oneway:=''oneway'',source:= ''source'',target:=''target'' - Analizes the directionality of the edges based on the rules';
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_createverticestable(
+   edge_table text,
+   the_geom text DEFAULT 'the_geom'::text,
+   source text DEFAULT 'source'::text,
+   target text DEFAULT 'target'::text,
+    rows_where text DEFAULT 'true'::text
+)
+  RETURNS text AS
+$BODY$
+DECLARE
+    naming record;
+    sridinfo record;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    sourcename text;
+    targetname text;
+    query text;
+    ecnt bigint;
+    srid integer;
+    sourcetype text;
+    targettype text;
+    sql text;
+    totcount integer;
+    i integer;
+    notincluded integer;
+    included integer;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+
+
+BEGIN
+  fnName = 'pgr_createVerticesTable';
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_createVerticesTable(''%'',''%'',''%'',''%'',''%'')',edge_table,the_geom,source,target,rows_where;
+  execute 'show client_min_messages' into debuglevel;
+
+  raise notice 'Performing checks, please wait .....';
+
+  RAISE DEBUG 'Checking % exists',edge_table;
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    rows_where = ' AND ('||rows_where||')';
+  raise debug '--> Edge table exists: OK';
+
+  raise debug 'Checking column names';
+    select * into sourcename from _pgr_getColumnName(sname, tname,source,2, fnName);
+    select * into targetname from _pgr_getColumnName(sname, tname,target,2, fnName);
+    select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2, fnName);
+
+
+    err = sourcename in (targetname,gname) or  targetname=gname;
+    perform _pgr_onError(err, 2, fnName,
+        'Two columns share the same name', 'Parameter names for the_geom,source and target  must be different');
+  raise debug '--> Column names: OK';
+
+  raise debug 'Checking column types in edge table';
+    select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+    select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+
+
+    err = sourcetype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column source: '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+    err = targettype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column target: '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found');
+
+  raise debug '-->Column types:OK';
+
+  raise debug 'Checking SRID of geometry column';
+     query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+        || ' FROM ' || _pgr_quote_ident(tabname)
+        || ' WHERE ' || quote_ident(gname)
+        || ' IS NOT NULL LIMIT 1';
+     raise debug '%',query;
+     EXECUTE query INTO sridinfo;
+
+     err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+     perform _pgr_onError(err, 2, fnName,
+         'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+     srid := sridinfo.srid;
+  raise DEBUG '     --> OK';
+
+  raise debug 'Checking and creating Indices';
+     perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+  raise DEBUG '-->Check and create indices: OK';
+
+     gname=quote_ident(gname);
+     sourcename=quote_ident(sourcename);
+     targetname=quote_ident(targetname);
+
+
+  BEGIN
+  raise debug 'Checking Condition';
+    -- issue #193 & issue #210 & #213
+    -- this sql is for trying out the where clause
+    -- the select * is to avoid any column name conflicts
+    -- limit 1, just try on first record
+    -- if the where clasuse is ill formed it will be caught in the exception
+    sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+    EXECUTE sql into dummyRec;
+    -- end
+
+    -- if above where clasue works this one should work
+    -- any error will be caught by the exception also
+    sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NULL or '||
+		sourcename||' is null or '||targetname||' is null)=true '||rows_where;
+    raise debug '%',sql;
+    EXECUTE SQL  into notincluded;
+    EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+
+
+
+  BEGIN
+     raise DEBUG 'initializing %',vertname;
+       execute 'select * from _pgr_getTableName('||quote_literal(vertname)||',0)' into naming;
+       IF sname=naming.sname  AND vname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+       ELSE
+           set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+       END IF;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+                quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+       execute 'CREATE INDEX '||quote_ident(vname||'_the_geom_idx')||' ON '||_pgr_quote_ident(vertname)||'  USING GIST (the_geom)';
+       execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+       EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Initializing vertex table';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise notice 'Populating %, please wait...',vertname;
+       sql= 'with
+		lines as ((select distinct '||sourcename||' as id, _pgr_startpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+		                  ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||')
+			union (select distinct '||targetname||' as id,_pgr_endpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+			          ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||'))
+		,numberedLines as (select row_number() OVER (ORDER BY id) AS i,* from lines )
+		,maxid as (select id,max(i) as maxi from numberedLines group by id)
+		insert into '||_pgr_quote_ident(vertname)||'(id,the_geom)  (select id,the_geom  from numberedLines join maxid using(id) where i=maxi order by id)';
+       RAISE debug '%',sql;
+       execute sql;
+       GET DIAGNOSTICS totcount = ROW_COUNT;
+
+       sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' a, '||_pgr_quote_ident(vertname)||' b
+            where '||sourcename||'=b.id and '|| targetname||' in (select id from '||_pgr_quote_ident(vertname)||')';
+       RAISE debug '%',sql;
+       execute sql into included;
+
+
+
+       execute 'select max(id) from '||_pgr_quote_ident(vertname) into ecnt;
+       execute 'SELECT setval('||quote_literal(vertname||'_id_seq')||','||coalesce(ecnt,1)||' , false)';
+       raise notice '  ----->   VERTICES TABLE CREATED WITH  % VERTICES', totcount;
+       raise notice '                                       FOR   %  EDGES', included+notincluded;
+       RAISE NOTICE '  Edges with NULL geometry,source or target: %',notincluded;
+       RAISE NOTICE '                            Edges processed: %',included;
+       Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname),_pgr_quote_ident(vertname);
+       raise notice '----------------------------------------------';
+    END;
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+COMMENT ON FUNCTION pgr_createVerticesTable(text,text,text,text,text)
+IS 'args: edge_table, the_geom:=''the_geom'',source:=''source'', target:=''target'' rows_where:=''true'' - creates a vertices table based on the source and target identifiers for selected rows';
+
+
+CREATE OR REPLACE FUNCTION pgr_nodeNetwork(edge_table text, tolerance double precision,
+			id text default 'id', the_geom text default 'the_geom', table_ending text default 'noded',
+            rows_where text DEFAULT ''::text, outall boolean DEFAULT false) RETURNS text AS
+$BODY$
+DECLARE
+	
+	p_num int := 0;
+	p_ret text := '';
+    pgis_ver_old boolean := _pgr_versionless(postgis_lib_version(), '2.1.0.0');
+    vst_line_substring text;
+    vst_line_locate_point text;
+    intab text;
+    outtab text;
+    n_pkey text;
+    n_geom text;
+    naming record;
+    sname text;
+    tname text;
+    outname text;
+    srid integer;
+    sridinfo record;
+    splits bigint;
+    touched bigint;
+    untouched bigint;
+    geomtype text;
+    debuglevel text;
+    rows_where text;
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_nodeNetwork(''%'', %, ''%'', ''%'', ''%'', ''%'',  %)',
+    edge_table, tolerance, id,  the_geom, table_ending, rows_where, outall;
+  raise notice 'Performing checks, please wait .....';
+  execute 'show client_min_messages' into debuglevel;
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',0)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+	RAISE NOTICE '-------> % not found',edge_table;
+        RETURN 'FAIL';
+    ELSE
+	RAISE DEBUG '  -----> OK';
+    END IF;
+
+    intab=sname||'.'||tname;
+    outname=tname||'_'||table_ending;
+    outtab= sname||'.'||outname;
+    rows_where = CASE WHEN length(rows_where) > 2 and not outall THEN ' AND (' || rows_where || ')' ELSE '' END;
+    rows_where = CASE WHEN length(rows_where) > 2 THEN ' WHERE (' || rows_where || ')' ELSE '' END;
+  END;
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',id,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(id)||')' INTO n_pkey;
+       IF n_pkey is NULL then
+          raise notice  'ERROR: id column "%"  not found in %',id,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',the_geom,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(the_geom)||')' INTO n_geom;
+       IF n_geom is NULL then
+          raise notice  'ERROR: the_geom  column "%"  not found in %',the_geom,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+  IF n_pkey=n_geom THEN
+	raise notice  'ERROR: id and the_geom columns have the same name "%" in %',n_pkey,intab;
+        RETURN 'FAIL';
+  END IF;
+
+  BEGIN
+       	raise DEBUG 'Checking the SRID of the geometry "%"', n_geom;
+       	EXECUTE 'SELECT ST_SRID(' || quote_ident(n_geom) || ') as srid '
+          		|| ' FROM ' || _pgr_quote_ident(intab)
+          		|| ' WHERE ' || quote_ident(n_geom)
+          		|| ' IS NOT NULL LIMIT 1' INTO sridinfo;
+       	IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
+        	RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           	RETURN 'FAIL';
+       	END IF;
+       	srid := sridinfo.srid;
+       	raise DEBUG '  -----> SRID found %',srid;
+       	EXCEPTION WHEN OTHERS THEN
+           		RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           		RETURN 'FAIL';
+  END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_pkey,intab;
+      if (_pgr_isColumnIndexed(intab,n_pkey)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding  index "%_%_idx".',n_pkey,intab;
+
+	set client_min_messages  to warning;
+        execute 'create  index '||tname||'_'||n_pkey||'_idx on '||_pgr_quote_ident(intab)||' using btree('||quote_ident(n_pkey)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_geom,intab;
+      if (_pgr_iscolumnindexed(intab,n_geom)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding unique index "%_%_gidx".',intab,n_geom;
+	set client_min_messages  to warning;
+        execute 'CREATE INDEX '
+            || quote_ident(tname || '_' || n_geom || '_gidx' )
+            || ' ON ' || _pgr_quote_ident(intab)
+            || ' USING gist (' || quote_ident(n_geom) || ')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+---------------
+    BEGIN
+       raise DEBUG 'initializing %',outtab;
+       execute 'select * from _pgr_getTableName('||quote_literal(outtab)||',0)' into naming;
+       IF sname=naming.sname  AND outname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(outtab)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(outname)||','||quote_literal(n_geom)||')';
+       ELSE
+	   set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(outtab)||' (id bigserial PRIMARY KEY,old_id integer,sub_id integer,
+								source bigint,target bigint)';
+       END IF;
+       execute 'select geometrytype('||quote_ident(n_geom)||') from  '||_pgr_quote_ident(intab)||' limit 1' into geomtype;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(outname)||','||
+                quote_literal(n_geom)||','|| srid||', '||quote_literal(geomtype)||', 2)';
+       execute 'CREATE INDEX '||quote_ident(outname||'_'||n_geom||'_idx')||' ON '||_pgr_quote_ident(outtab)||'  USING GIST ('||quote_ident(n_geom)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+    END;
+----------------
+
+
+  raise notice 'Processing, please wait .....';
+
+
+    if pgis_ver_old then
+        vst_line_substring    := 'st_line_substring';
+        vst_line_locate_point := 'st_line_locate_point';
+    else
+        vst_line_substring    := 'st_linesubstring';
+        vst_line_locate_point := 'st_linelocatepoint';
+    end if;
+
+--    -- First creates temp table with intersection points
+    p_ret = 'create temp table intergeom on commit drop as (
+        select l1.' || quote_ident(n_pkey) || ' as l1id,
+               l2.' || quote_ident(n_pkey) || ' as l2id,
+	       l1.' || quote_ident(n_geom) || ' as line,
+	       _pgr_startpoint(l2.' || quote_ident(n_geom) || ') as source,
+	       _pgr_endpoint(l2.' || quote_ident(n_geom) || ') as target,
+               st_intersection(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ') as geom
+        from (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l1
+             join (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l2
+             on (st_dwithin(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ', ' || tolerance || '))'||
+        'where l1.' || quote_ident(n_pkey) || ' <> l2.' || quote_ident(n_pkey)||' and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false  )';
+    raise debug '%',p_ret;
+    EXECUTE p_ret;
+
+    -- second temp table with locus (index of intersection point on the line)
+    -- to avoid updating the previous table
+    -- we keep only intersection points occurring onto the line, not at one of its ends
+--    drop table if exists inter_loc;
+
+--HAD TO CHANGE THIS QUERY
+-- p_ret= 'create temp table inter_loc on commit drop as (
+--        select l1id, l2id, ' || vst_line_locate_point || '(line,point) as locus from (
+--        select DISTINCT l1id, l2id, line, (ST_DumpPoints(geom)).geom as point from intergeom) as foo
+--        where ' || vst_line_locate_point || '(line,point)<>0 and ' || vst_line_locate_point || '(line,point)<>1)';
+    p_ret= 'create temp table inter_loc on commit drop as ( select * from (
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,source) as locus from intergeom)
+         union
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,target) as locus from intergeom)) as foo
+        where locus<>0 and locus<>1)';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+
+    -- index on l1id
+    create index inter_loc_id_idx on inter_loc(l1id);
+
+    -- Then computes the intersection on the lines subset, which is much smaller than full set
+    -- as there are very few intersection points
+
+--- outab needs to be formally created with id, old_id, subid,the_geom, source,target
+---  so it can be inmediatly be used with createTopology
+
+--   EXECUTE 'drop table if exists ' || _pgr_quote_ident(outtab);
+--   EXECUTE 'create table ' || _pgr_quote_ident(outtab) || ' as
+     P_RET = 'insert into '||_pgr_quote_ident(outtab)||' (old_id,sub_id,'||quote_ident(n_geom)||') (  with cut_locations as (
+           select l1id as lid, locus
+           from inter_loc
+           -- then generates start and end locus for each line that have to be cut buy a location point
+           UNION ALL
+           select i.l1id  as lid, 0 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           UNION ALL
+           select i.l1id  as lid, 1 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           order by lid, locus
+       ),
+       -- we generate a row_number index column for each input line
+       -- to be able to self-join the table to cut a line between two consecutive locations
+       loc_with_idx as (
+           select lid, locus, row_number() over (partition by lid order by locus) as idx
+           from cut_locations
+       )
+       -- finally, each original line is cut with consecutive locations using linear referencing functions
+       select l.' || quote_ident(n_pkey) || ', loc1.idx as sub_id, ' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus) as ' || quote_ident(n_geom) || '
+       from loc_with_idx loc1 join loc_with_idx loc2 using (lid) join ' || _pgr_quote_ident(intab) || ' l on (l.' || quote_ident(n_pkey) || ' = loc1.lid)
+       where loc2.idx = loc1.idx+1
+           -- keeps only linestring geometries
+           and geometryType(' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus)) = ''LINESTRING'') ';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+	GET DIAGNOSTICS splits = ROW_COUNT;
+        execute 'with diff as (select distinct old_id from '||_pgr_quote_ident(outtab)||' )
+                 select count(*) from diff' into touched;
+	-- here, it misses all original line that did not need to be cut by intersection points: these lines
+	-- are already clean
+	-- inserts them in the final result: all lines which gid is not in the res table.
+	EXECUTE 'insert into ' || _pgr_quote_ident(outtab) || ' (old_id , sub_id, ' || quote_ident(n_geom) || ')
+                ( with used as (select distinct old_id from '|| _pgr_quote_ident(outtab)||')
+		select ' ||  quote_ident(n_pkey) || ', 1 as sub_id, ' ||  quote_ident(n_geom) ||
+		' from '|| _pgr_quote_ident(intab) ||' where  '||quote_ident(n_pkey)||' not in (select * from used)' || rows_where || ')';
+	GET DIAGNOSTICS untouched = ROW_COUNT;
+
+	raise NOTICE '  Split Edges: %', touched;
+	raise NOTICE ' Untouched Edges: %', untouched;
+	raise NOTICE '     Total original Edges: %', touched+untouched;
+        RAISE NOTICE ' Edges generated: %', splits;
+	raise NOTICE ' Untouched Edges: %',untouched;
+	raise NOTICE '       Total New segments: %', splits+untouched;
+        RAISE NOTICE ' New Table: %', outtab;
+        RAISE NOTICE '----------------------------------';
+
+    drop table  if exists intergeom;
+    drop table if exists inter_loc;
+    RETURN 'OK';
+END;
+$BODY$
+    LANGUAGE 'plpgsql' VOLATILE STRICT COST 100;
+
+
+COMMENT ON FUNCTION pgr_nodeNetwork(text, double precision, text, text, text, text, boolean )
+ IS  'edge_table, tolerance, id:=''id'', the_geom:=''the_geom'', table_ending:=''noded'' ';
+
+
+CREATE OR REPLACE FUNCTION pgr_labelGraph(
+                edge_table text,
+                id text default 'id',
+                source text default 'source',
+                target text default 'target',
+                subgraph text default 'subgraph',
+                rows_where text default 'true'
+        )
+        RETURNS character varying AS
+$BODY$
+
+DECLARE
+        naming record;
+        schema_name text;
+        table_name text;
+        garbage text;
+        incre integer;
+        table_schema_name text;
+        query text;
+        ecnt integer;
+        sql1 text;
+        rec1 record;
+        sql2 text;
+        rec2 record;
+        rec_count record;
+        rec_single record;
+        graph_id integer;
+        gids int [];
+
+BEGIN
+        raise notice 'Processing:';
+        raise notice 'pgr_brokenGraph(''%'',''%'',''%'',''%'',''%'',''%'')', edge_table,id,source,target,subgraph,rows_where;
+        raise notice 'Performing initial checks, please hold on ...';
+
+        Raise Notice 'Starting - Checking table ...';
+        BEGIN
+                raise debug 'Checking % table existance', edge_table;
+                execute 'select * from pgr_getTableName('|| quote_literal(edge_table) ||')' into naming;
+                schema_name = naming.sname;
+                table_name = naming.tname;
+                table_schema_name = schema_name||'.'||table_name;
+                IF schema_name is null then
+                        raise notice 'no schema';
+                        return 'FAIL';
+                else
+                        if table_name is null then
+                                raise notice 'no table';
+                                return 'FAIL';
+                        end if;
+                end if;
+        END;
+        Raise Notice 'Ending - Checking table';
+
+        Raise Notice 'Starting - Checking columns';
+        BEGIN
+                raise debug 'Checking exitance of necessary columns inside % table', edge_table;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(id) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no id column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(source) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no source column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(target) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no target column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(subgraph) ||')' into naming;
+                if naming.pgr_iscolumnintable = 't' then
+                        raise notice 'subgraph column already in the table';
+                        return 'FAIL';
+                end if;
+        END;
+        Raise Notice 'Ending - Checking columns';
+
+        Raise Notice 'Starting - Checking rows_where condition';
+        BEGIN
+                raise debug 'Checking rows_where condition';
+                query='select count(*) from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where;
+                execute query into ecnt;
+                raise debug '-->Rows where condition: OK';
+                raise debug '    --> OK';
+                EXCEPTION WHEN OTHERS THEN
+                        raise notice 'Got %', SQLERRM;
+                        Raise notice 'ERROR: Condition is not correct. Please execute the following query to test your condition';
+                        Raise notice '%', query;
+                        return 'FAIL';
+        END;
+        Raise Notice 'Ending - Checking rows_where condition';
+
+        garbage := 'garbage001';
+        incre := 1;
+        Raise Notice 'Starting - Checking temporary column';
+        Begin
+                raise debug 'Checking Checking temporary columns existance';
+
+                While True
+                        Loop
+                                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(garbage) ||')' into naming;
+                                If naming.pgr_iscolumnintable = 't' THEN
+                                        incre := incre + 1;
+                                        garbage := 'garbage00'||incre||'';
+                                ELSE
+                                        EXIT;
+                                END IF;
+                        End Loop;
+        End;
+        Raise Notice 'Ending - Checking temporary column';
+
+        Raise Notice 'Starting - Calculating subgraphs';
+        BEGIN
+                --------- Add necessary columns ----------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(subgraph) || ' INTEGER DEFAULT -1';
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(garbage) || ' INTEGER DEFAULT 0';
+                graph_id := 1;
+
+                EXECUTE 'select count(*) as count from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where ||'' into rec_count;
+                if rec_count.count = 0 then
+                        RETURN 'rows_where condition generated 0 rows';
+                end if;
+
+                WHILE TRUE
+                        LOOP
+                                ---------- Assign the very first -1 row graph_id ----------
+                                EXECUTE 'SELECT ' || pgr_quote_ident(id) || ' AS gid FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1 LIMIT 1' INTO rec_single;
+                                EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec_single.gid || '';
+
+                                --------- Search other rows with that particular graph_id -----------
+                                WHILE TRUE
+                                        LOOP
+                                                EXECUTE 'SELECT COUNT(*) FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0' into rec_count;
+                                                ----------- The following if else will check those rows which already have entertained ------------
+                                                IF (rec_count.count > 0) THEN
+                                                        sql1 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0';
+                                                        FOR rec1 IN EXECUTE sql1
+                                                                LOOP
+                                                                        sql2 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| pgr_quote_ident(source) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(source) ||' = '|| rec1.target ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.target ||'';
+                                                                        FOR rec2 IN EXECUTE sql2
+                                                                                LOOP
+                                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec2.gid || '';
+                                                                                END LOOP;
+                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(garbage) || ' = 1 WHERE ' || pgr_quote_ident(id) || ' = ' || rec1.gid || '';
+                                                                END LOOP;
+                                                ELSE
+                                                        EXIT;
+                                                END IF;
+                                        END LOOP;
+
+                                ------ Following is to exit the while loop. 0 means no more -1 id.
+                                EXECUTE 'SELECT COUNT(*) AS count FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1' INTO rec_count;
+                                If (rec_count.count = 0) THEN
+                                        EXIT;
+                                ELSE
+                                        graph_id := graph_id + 1;
+                                END IF;
+                        END LOOP;
+
+                ----------- Drop garbage column ------------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' DROP COLUMN ' || pgr_quote_ident(garbage) ||'';
+                Raise Notice 'Successfully complicated calculating subgraphs';
+        END;
+        Raise Notice 'Ending - Calculating subgraphs';
+
+        RETURN 'OK';
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCostMatrix(
+    edges_sql TEXT,
+    points_sql TEXT,
+    pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_pid, a.end_pid, a.agg_cost
+        FROM _pgr_withPoints($1, $2, $3, $3, $4,  $5, TRUE, TRUE) AS a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+--  DIJKSTRA DMatrix
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCostMatrix(edges_sql TEXT, vids ANYARRAY, directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2, $2, $3, true) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+
+--  BIDIRECTIONAL DIJKSTRA Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCostMatrix(edges_sql TEXT, vids ANYARRAY, directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_astarCostMatrix(
+    edges_sql TEXT, -- XY edges sql
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2, $2, $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+--  BIDIRECTIONAL ASTAR Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdAstarCostMatrix(
+    edges_sql TEXT,
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_bdAstarCostMatrix(TEXT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCostMatrix';
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_getTableName(IN tab text,OUT sname text,OUT tname text)
+RETURNS RECORD AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getTableName: This function will no longer be soported';
+    select * from _pgr_getTableName(tab, 0, 'pgr_getTableName') into sname,tname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_getColumnName(tab text, col text)
+RETURNS text AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getColumnName: This function will no longer be soported';
+    return _pgr_getColumnName(tab,col, 0, 'pgr_getColumnName');
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    select * from _pgr_getColumnName(tab,col,0, 'pgr_isColumnInTable') into cname;
+    return  cname IS not NULL;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnIndexed(tab text, col text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnIndexed: This function will no longer be soported';
+    return  _pgr_isColumnIndexed(tab,col);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+create or replace function pgr_quote_ident(idname text)
+returns text as
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    return  _pgr_quote_ident(idname);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_versionless(v1 text, v2 text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_versionless: This function will no longer be soported';
+    return  _pgr_versionless(v1,v2);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+create or replace function pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_startPoint: This function will no longer be soported';
+    return  _pgr_startPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_endPoint: This function will no longer be soported';
+    return  _pgr_endPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_apspJohnson(edges_sql text)
+    RETURNS SETOF pgr_costResult AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function: Use pgr_johnson instead';
+      has_reverse =_pgr_parameter_check('johnson', edges_sql, false);
+      sql = edges_sql;
+      IF (has_reverse) THEN
+           RAISE NOTICE 'reverse_cost column found, removing.';
+           sql = 'SELECT source, target, cost FROM (' || edges_sql || ') a';
+      END IF;
+
+      RETURN query
+         SELECT (row_number() over () - 1)::integer as seq, start_vid::integer AS id1, end_vid::integer AS id2, agg_cost AS cost
+         FROM  pgr_johnson(sql, TRUE);
+  END
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_apspWarshall(edges_sql text, directed boolean, has_rcost boolean)
+    RETURNS SETOF pgr_costResult AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function: Use pgr_floydWarshall instead';
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+      sql := edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_reverse) THEN
+           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+         ELSE raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+         END IF;
+      END IF;
+
+      RETURN query
+         SELECT (row_number() over () -1)::integer as seq, start_vid::integer AS id1, end_vid::integer AS id2, agg_cost AS cost
+         FROM  pgr_floydWarshall(sql, directed);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_astar(edges_sql TEXT, source_id INTEGER, target_id INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated signature pgr_astar(text, integer, integer, boolean, boolean)';
+    has_reverse =_pgr_parameter_check('astar', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost, x1,y1, x2, y2 FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+    FROM pgr_astar(sql, ARRAY[$2], ARRAY[$3], directed);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    sql TEXT,
+    source_vid INTEGER,
+    target_vid INTEGER,
+    directed BOOLEAN,
+    has_reverse_cost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdAstar';
+    has_reverse =_pgr_parameter_check('astar', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdAstar(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(edges_sql TEXT, start_vid INTEGER, end_vid INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdDijkstra';
+    has_reverse =_pgr_parameter_check('dijkstra', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdDijkstra(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstraPath(
+    sql text,
+    source INTEGER,
+    targets INTEGER ARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+    RETURNS SETOF pgr_costResult3 AS
+    $BODY$
+    DECLARE
+    has_reverse BOOLEAN;
+    new_sql TEXT;
+    result pgr_costResult3;
+    tmp pgr_costResult3;
+    sseq INTEGER;
+    i INTEGER;
+    BEGIN
+        RAISE NOTICE 'Deprecated function: Use pgr_dijkstra instead.';
+        has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+        new_sql = sql;
+        IF (array_ndims(targets) != 1) THEN
+            raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+
+        IF (has_reverse != has_rcost) THEN
+            IF (has_reverse) THEN
+                new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+            ELSE
+                raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+                USING ERRCODE = 'XX000';
+            END IF;
+        END IF;
+        SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+        sseq = 0; i = 1;
+        FOR result IN
+            SELECT seq, a.end_vid::INTEGER AS id1, a.node::INTEGER AS i2, a.edge::INTEGER AS id3, cost
+            FROM pgr_dijkstra(new_sql, source, targets, directed) a ORDER BY a.end_vid, seq LOOP
+            WHILE (result.id1 != targets[i]) LOOP
+                tmp.seq = sseq;
+                tmp.id1 = targets[i];
+                IF (targets[i] = source) THEN
+                    tmp.id2 = source;
+                    tmp.cost =0;
+                ELSE
+                    tmp.id2 = 0;
+                    tmp.cost = -1;
+                END IF;
+                tmp.id3 = -1;
+                RETURN next tmp;
+                i = i + 1;
+                sseq = sseq + 1;
+            END LOOP;
+        IF (result.id1 = targets[i] AND result.id3 != -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+        IF (result.id1 = targets[i] AND result.id3 = -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.id2 = source;
+            tmp.cost = 0;
+        ELSE
+            tmp.id2 = 0;
+            tmp.cost = -1;
+        END IF;
+        tmp.id3 = -1;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstracost(
+    sql text,
+    source INTEGER,
+    targets INTEGER array,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+result pgr_costResult;
+tmp pgr_costResult;
+sseq INTEGER;
+i INTEGER;
+BEGIN
+    RAISE NOTICE 'Deprecated function. Use pgr_dijkstraCost instead.';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    new_sql = sql;
+    IF (array_ndims(targets) != 1) THEN
+        raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+        USING ERRCODE = 'XX000';
+    END IF;
+
+
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+    sseq = 0; i = 1;
+    FOR result IN
+        SELECT ((row_number() over()) -1)::INTEGER, a.start_vid::INTEGER, a.end_vid::INTEGER, agg_cost
+        FROM pgr_dijkstraCost(new_sql, source, targets, directed) a ORDER BY end_vid LOOP
+        WHILE (result.id2 != targets[i]) LOOP
+            tmp.seq = sseq;
+            tmp.id1 = source;
+            tmp.id2 = targets[i];
+            IF (targets[i] = source) THEN
+                tmp.cost = 0;
+            ELSE
+                tmp.cost = -1;
+            END IF;
+            RETURN next tmp;
+            i = i + 1;
+            sseq = sseq + 1;
+        END LOOP;
+        IF (result.id2 = targets[i]) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = source;
+        tmp.id2 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.cost = 0;
+        ELSE
+            tmp.cost = -1;
+        END IF;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+create or replace function pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    returns integer as
+$body$
+
+declare
+    rr record;
+    pct float;
+    debuglevel text;
+
+begin
+    -- find the closest edge within tol distance
+    execute 'select * from ' || _pgr_quote_ident(edges) ||
+            ' where st_dwithin(''' || pnt::text ||
+            '''::geometry, the_geom, ' || tol || ') order by st_distance(''' || pnt::text ||
+            '''::geometry, the_geom) asc limit 1' into rr;
+
+    if rr.the_geom is not null then
+        -- deal with MULTILINESTRINGS
+        if geometrytype(rr.the_geom)='MULTILINESTRING' THEN
+            rr.the_geom := ST_GeometryN(rr.the_geom, 1);
+        end if;
+
+        -- project the point onto the linestring
+        execute 'show client_min_messages' into debuglevel;
+        SET client_min_messages='ERROR';
+        pct := st_line_locate_point(rr.the_geom, pnt);
+        execute 'set client_min_messages  to '|| debuglevel;
+
+        -- return the node we are closer to
+        if pct < 0.5 then
+            return rr.source;
+        else
+            return rr.target;
+        end if;
+    else
+        -- return a failure to find an edge within tol distance
+        return -1;
+    end if;
+end;
+$body$
+  language plpgsql volatile
+  cost 5;
+
+
+----------------------------------------------------------------------------
+
+create or replace function pgr_flipedges(ga geometry[])
+    returns geometry[] as
+$body$
+
+declare
+    nn integer;
+    i integer;
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_flipEdges';
+    -- get the count of edges, and return if only one edge
+    nn := array_length(ga, 1);
+    if nn=1 then
+        return ga;
+    end if;
+
+    -- determine if first needs to be flipped
+    g := _pgr_startpoint(ga[1]);
+
+    -- if the start of the first is connected to the second then it needs to be flipped
+    if _pgr_startpoint(ga[2])=g or _pgr_endpoint(ga[2])=g then
+        ga[1] := st_reverse(ga[1]);
+    end if;
+    g := _pgr_endpoint(ga[1]);
+
+    -- now if  the end of the last edge matchs the end of the current edge we need to flip it
+    for i in 2 .. nn loop
+        if _pgr_endpoint(ga[i])=g then
+            ga[i] := st_reverse(ga[i]);
+        end if;
+        -- save the end of this edge into the last end for the next cycle
+        g := _pgr_endpoint(ga[i]);
+    end loop;
+
+    return ga;
+end;
+$body$
+    language plpgsql immutable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_texttopoints(pnts text, srid integer DEFAULT(4326))
+    returns geometry[] as
+$body$
+
+declare
+    a text[];
+    t text;
+    p geometry;
+    g geometry[];
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_textToPoints';
+    -- convert commas to space and split on ';'
+    a := string_to_array(replace(pnts, ',', ' '), ';');
+    -- convert each 'x y' into a point geometry and concattenate into a new array
+    for t in select unnest(a) loop
+        p := st_pointfromtext('POINT(' || t || ')', srid);
+        g := g || p;
+    end loop;
+
+    return g;
+end;
+$body$
+    language plpgsql immutable;
+
+-----------------------------------------------------------------------
+
+create or replace function pgr_pointstovids(pnts geometry[], edges text, tol float8 DEFAULT(0.01))
+    returns integer[] as
+$body$
+
+declare
+    v integer[];
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_pointsToVids';
+    -- cycle through each point and locate the nearest edge and vertex on that edge
+    for g in select unnest(pnts) loop
+        v := v || pgr_pointtoedgenode(edges, g, tol);
+    end loop;
+
+    return v;
+end;
+$body$
+    language plpgsql stable;
+
+
+create or replace function pgr_pointstodmatrix(pnts geometry[], mode integer default (0), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+
+declare
+    r record;
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_pointsToDMatrix';
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    -- create an id for each point in the array and unnest it into a table nodes in the with clause
+    for r in with nodes as (select row_number() over()::integer as id, p from (select unnest(pnts) as p) as foo)
+        -- compute a row of distances
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j,
+                case when mode=0
+                    then st_distance(a.p, b.p)
+                    else st_distance_sphere(a.p, b.p)
+                end as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i loop
+
+        -- you must concat an array[array[]] to make dmatrix[][]
+        -- concat the row of distances to the dmatrix
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+end;
+$body$
+    language plpgsql stable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_vidstodmatrix(IN vids integer[], IN pnts geometry[], IN edges text, tol float8 DEFAULT(0.1), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+
+declare
+    i integer;
+    j integer;
+    nn integer;
+    rr record;
+    bbox geometry;
+    t float8[];
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    -- check if the input arrays has any -1 values, maybe this whould be a raise exception
+    if vids @> ARRAY[-1] then
+    raise notice 'Some vids are undefined (-1)!';
+    dmatrix := null;
+    ids := null;
+    return;
+    end if;
+
+    ids := vids;
+
+    -- get the count of nodes
+    nn := array_length(vids,1);
+
+    -- zero out a dummy row
+    for i in 1 .. nn loop
+        t := t || 0.0::float8;
+    end loop;
+
+    -- using the dummy row, zero out the whole matrix
+    for i in 1 .. nn loop
+    dmatrix := dmatrix || ARRAY[t];
+    end loop;
+
+    for i in 1 .. nn-1 loop
+        j := i;
+        -- compute the bbox for the point needed for this row
+        select st_expand(st_collect(pnts[id]), tol) into bbox
+          from (select generate_series as id from generate_series(i, nn)) as foo;
+
+        -- compute kdijkstra() for this row
+        for rr in execute 'select * from pgr_dijkstracost($1, $2, $3, false)'
+                  using 'select id, source, target, cost from ' || edges ||
+                        ' where the_geom && ''' || bbox::text || '''::geometry'::text, vids[i], vids[i+1:nn] loop
+
+            -- TODO need to check that all node were reachable from source
+            -- I think unreachable paths between nodes returns cost=-1.0
+
+            -- populate the matrix with the cost values, remember this is symmetric
+            j := j + 1;
+            -- raise notice 'cost(%,%)=%', i, j, rr.agg_cost;
+            dmatrix[i][j] := rr.agg_cost;
+            dmatrix[j][i] := rr.agg_cost;
+        end loop;
+    end loop;
+
+end;
+$body$
+    language plpgsql stable cost 200;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_vidsToDMatrix(sql TEXT, vids  INTEGER[], dir BOOLEAN, has_rcost BOOLEAN, want_symmetric BOOLEAN)
+RETURNS float8[] AS
+$BODY$
+DECLARE
+directed BOOLEAN;
+has_reverse BOOLEAN;
+edges_sql TEXT;
+dmatrix_row float8[];
+dmatrix float8[];
+cell RECORD;
+unique_vids INTEGER[];
+total BIGINT;
+from_v BIGINT;
+to_v BIGINT;
+BEGIN
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql = sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    unique_vids :=  ARRAY(SELECT DISTINCT UNNEST(vids) ORDER BY 1);
+
+    IF want_symmetric THEN
+        directed = false;
+    ELSE
+        directed = dir;
+    END IF;
+
+    total := array_length(unique_vids, 1);
+
+    -- initializing dmatrix
+    FOR i in 1 .. total LOOP
+        dmatrix_row := dmatrix_row || '+Infinity'::float8;
+    END LOOP;
+    FOR i in 1 .. total LOOP
+    dmatrix := dmatrix || ARRAY[dmatrix_row];
+    dmatrix[i][i] = 0;
+    END LOOP;
+
+    CREATE TEMP TABLE __x___y____temp AS
+        WITH result AS
+            (SELECT unnest(unique_vids) AS vid)
+        SELECT row_number() OVER() AS idx, vid FROM result;
+
+    FOR cell IN SELECT * FROM pgr_dijkstraCostMatrix(sql, unique_vids, directed) LOOP
+        SELECT idx INTO from_v FROM __x___y____temp WHERE vid =  cell.start_vid;
+        SELECT idx INTO to_v FROM __x___y____temp WHERE vid =  cell.end_vid;
+
+        dmatrix[from_v][to_v] = cell.agg_cost;
+        dmatrix[to_v][from_v] = cell.agg_cost;
+    END LOOP;
+
+    DROP TABLE IF EXISTS __x___y____temp;
+    RETURN dmatrix;
+
+    EXCEPTION WHEN others THEN
+       DROP TABLE IF EXISTS __x___y____temp;
+       raise exception '% %', SQLERRM, SQLSTATE;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100;
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated function';
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_dijkstra(sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_dijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN) IS 'pgr_dijkstra(Deprecated signature)';
+
+
+
+
+
+-- OLD SIGNATURE
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(edges_sql text, source BIGINT, distance FLOAT, directed BOOLEAN, has_rcost BOOLEAN)
+  RETURNS SETOF pgr_costresult AS
+  $BODY$
+  DECLARE
+  has_reverse BOOLEAN;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function';
+
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, FALSE);
+
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_reverse) THEN
+             -- the user says it doesn't have reverse cost but its false
+             -- removing from query
+             RAISE NOTICE 'Contradiction found: has_rcost set to false but reverse_cost column found';
+             sql = 'SELECT id, source, target, cost, -1 as reverse_cost FROM (' || edges_sql || ') __q ';
+         ELSE
+             -- the user says it has reverse cost but its false
+             -- can't do anything
+             RAISE EXCEPTION 'has_rcost set to true but reverse_cost not found';
+         END IF;
+      END IF;
+
+      RETURN query SELECT seq - 1 AS seq, node::integer AS id1, edge::integer AS id2, agg_cost AS cost
+                FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maximumcardinalitymatching(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
+
+
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+--INTERNAL FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+
+------------------------
+-- deprecated signatures
+-----------------------
+
+COMMENT ON FUNCTION pgr_astar(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_astar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdAstar( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdAstar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdDijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdDijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_dijkstra(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_dijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_drivingDistance(text,  BIGINT,  FLOAT8,  BOOLEAN,  BOOLEAN)
+    IS 'pgr_drivingDistance(Deprecated signature)';
+
+------------------------
+-- Renamed /deprecated
+-----------------------
+COMMENT ON FUNCTION pgr_apspJohnson(TEXT)
+    IS 'pgr_apspJohnson(Renamed function) use pgr_Johnson instead';
+
+COMMENT ON FUNCTION pgr_apspWarshall(text, boolean, boolean)
+    IS 'pgr_apspWarshall(Renamed function) use pgr_floydWarshall instead';
+
+COMMENT ON FUNCTION pgr_kdijkstraPath( text, INTEGER, INTEGER ARRAY, BOOLEAN, BOOLEAN)
+    IS 'pgr_kdijkstraPath(Renamed function) use pgr_dijkstra instead';
+
+COMMENT ON FUNCTION pgr_kdijkstracost( text, INTEGER, INTEGER array, BOOLEAN, BOOLEAN)
+    IS 'pgr_kDijkstraCost(Renamed function) use pgr_dijkstraCost instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+
+
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+
+
+COMMENT ON FUNCTION pgr_gsoc_vrppdtw( text, INTEGER, INTEGER)
+    IS 'pgr_gsoc_vrppdtw(Renamed function) use pgr_pickDeliverEuclidean instead';
+
+------------------------
+-- Deprecated functions
+-----------------------
+
+COMMENT ON FUNCTION pgr_flipedges(geometry[])
+    IS 'pgr_flipedges(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_texttopoints(text,  integer)
+    IS 'pgr_texttopoints(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstovids(pnts geometry[], edges text, tol float8)
+    IS 'pgr_pointstovids(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    IS 'pgr_pointtoedgenode(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstodmatrix(geometry[], integer)
+    IS 'pgr_pointstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidstodmatrix( integer[],  geometry[],  text, float8)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidsToDMatrix(TEXT,  INTEGER[], BOOLEAN, BOOLEAN, BOOLEAN)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+
+
+
+COMMENT ON FUNCTION pgr_getTableName(IN tab text)
+    IS 'pgr_getTableName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_getColumnName(tab text, col text)
+    IS 'pgr_getColumnName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnInTable(tab text, col text)
+    IS 'pgr_isColumnInTable(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnIndexed(tab text, col text)
+    IS 'pgr_isColumnIndexed(Deprecated function)';
+
+
+COMMENT ON FUNCTION pgr_quote_ident(idname text)
+    IS 'pgr_quote_ident(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_versionless(v1 text, v2 text)
+    IS 'pgr_versionless(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_startPoint(g geometry)
+    IS 'pgr_startPoint(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_endPoint(g geometry)
+    IS 'pgr_endPoint(Deprecated function)';
+
+
diff --git a/tools/sql-update-scripts/pgrouting--2.4.2--2.5.0.sql b/tools/sql-update-scripts/pgrouting--2.4.2--2.5.0.sql
new file mode 100644
index 0000000..ebf1e89
--- /dev/null
+++ b/tools/sql-update-scripts/pgrouting--2.4.2--2.5.0.sql
@@ -0,0 +1,6522 @@
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-- pgRouting extension upgrade from 2.4.2 to 2.5.0
+-- generated by tools/build-extension-update-files
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+\echo Use "ALTER extension pgrouting update to '2.5.0'" to load this file. \quit
+
+
+-------------------------------------
+-- remove functions no longer in the 2.5.0 extension
+-------------------------------------
+
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_astar(text,anyarray,anyarray,boolean,integer,double precision,double precision,boolean);
+DROP FUNCTION IF EXISTS _pgr_astar(text,anyarray,anyarray,boolean,integer,double precision,double precision,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_astar(text,anyarray,bigint,boolean,integer,double precision,double precision,boolean);
+DROP FUNCTION IF EXISTS _pgr_astar(text,anyarray,bigint,boolean,integer,double precision,double precision,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_astar(text,bigint,anyarray,boolean,integer,double precision,double precision,boolean);
+DROP FUNCTION IF EXISTS _pgr_astar(text,bigint,anyarray,boolean,integer,double precision,double precision,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_astar(text,bigint,bigint,boolean,integer,double precision,double precision,boolean);
+DROP FUNCTION IF EXISTS _pgr_astar(text,bigint,bigint,boolean,integer,double precision,double precision,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_bddijkstra(text,bigint,bigint,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_bddijkstra(text,bigint,bigint,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,anyarray,anyarray,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,anyarray,anyarray,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,anyarray,bigint,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,anyarray,bigint,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,bigint,anyarray,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,bigint,anyarray,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_dijkstra(text,bigint,bigint,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_dijkstra(text,bigint,bigint,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_maxflow(text,anyarray,anyarray,text,boolean);
+DROP FUNCTION IF EXISTS _pgr_maxflow(text,anyarray,anyarray,text,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_maxflow(text,anyarray,bigint,text,boolean);
+DROP FUNCTION IF EXISTS _pgr_maxflow(text,anyarray,bigint,text,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_maxflow(text,bigint,anyarray,text,boolean);
+DROP FUNCTION IF EXISTS _pgr_maxflow(text,bigint,anyarray,text,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_maxflow(text,bigint,bigint,text,boolean);
+DROP FUNCTION IF EXISTS _pgr_maxflow(text,bigint,bigint,text,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_pickdeliver(text,integer,double precision,double precision,integer);
+DROP FUNCTION IF EXISTS _pgr_pickdeliver(text,integer,double precision,double precision,integer);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,anyarray,anyarray,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,anyarray,anyarray,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,anyarray,bigint,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,anyarray,bigint,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,bigint,anyarray,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,bigint,anyarray,boolean,character,boolean,boolean);
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION _pgr_withpoints(text,text,bigint,bigint,boolean,character,boolean,boolean);
+DROP FUNCTION IF EXISTS _pgr_withpoints(text,text,bigint,bigint,boolean,character,boolean,boolean);
+
+
+------------------------------------------
+--       New functions:  2.3
+--    Signature change:  2.5
+-- Inner query changed:  2.5
+------------------------------------------
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_edgedisjointpaths(text,bigint,bigint,boolean);
+DROP FUNCTION IF EXISTS pgr_edgedisjointpaths(text,bigint,bigint,boolean);
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_edgedisjointpaths(text,bigint,anyarray,boolean);
+DROP FUNCTION IF EXISTS pgr_edgedisjointpaths(text,bigint,anyarray,boolean);
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_edgedisjointpaths(text,anyarray,bigint,boolean);
+DROP FUNCTION IF EXISTS pgr_edgedisjointpaths(text,anyarray,bigint,boolean);
+
+
+
+ALTER EXTENSION pgrouting DROP FUNCTION pgr_edgedisjointpaths(text,anyarray,anyarray,boolean);
+DROP FUNCTION IF EXISTS pgr_edgedisjointpaths(text,anyarray,anyarray,boolean);
+
+
+
+
+
+
+
+
+
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+--- pgRouting provides geospatial routing functionality.
+--- http://pgrouting.org
+--- copyright
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+---
+--- This is free software; you can redistribute and/or modify it:
+--- the terms of the GNU General Public Licence. See the COPYING file.
+--- the terms of the MIT-X Licence. See the COPYING file.
+---
+--- The following functions have MIT-X licence:
+---     pgr_version()
+---     pgr_tsp(matrix float8[][], startpt integer, endpt integer DEFAULT -1, OUT seq integer, OUT id integer)
+---     _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+---     pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
+---
+---
+--- All other functions are under GNU General Public Licence.
+---
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+--
+-- WARNING: Any change in this file must be evaluated for compatibility.
+--          Changes cleanly handled by postgis_upgrade.sql are fine,
+--          other changes will require a bump in Major version.
+--          Currently only function replaceble by CREATE OR REPLACE
+--          are cleanly handled.
+--
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+
+--  pgRouting 2.0 types
+
+
+
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_version()
+RETURNS TABLE(
+        "version" varchar,
+        tag varchar,
+        hash varchar,
+        branch varchar,
+        boost varchar
+    ) AS
+$BODY$
+    SELECT '2.5.0'::varchar AS version,
+        'v2.5.0'::varchar AS tag,
+        ''::varchar AS hash,
+        ''::varchar AS branch,
+        '1.54.0'::varchar AS boost;
+$BODY$
+LANGUAGE sql IMMUTABLE;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getTableName(IN tab text, IN reportErrs int default 0, IN fnName text default '_pgr_getTableName', OUT sname text,OUT tname text)
+  RETURNS RECORD AS
+$$
+DECLARE
+        naming record;
+        i integer;
+        query text;
+        sn text; -- schema name
+        tn text; -- table name
+        ttype text; --table type for future use
+        err boolean;
+        debuglevel text;
+        var_types text[] = ARRAY['BASE TABLE', 'VIEW'];
+BEGIN
+
+    execute 'show client_min_messages' into debuglevel;
+
+
+    perform _pgr_msg( 0, fnName, 'Checking table ' || tab || ' exists');
+    --RAISE DEBUG 'Checking % exists',tab;
+
+    i := strpos(tab,'.');
+    IF (i <> 0) THEN
+        sn := split_part(tab, '.',1);
+        tn := split_part(tab, '.',2);
+    ELSE
+        sn := current_schema;
+        tn := tab;
+    END IF;
+
+
+   SELECT schema_name INTO sname
+   FROM information_schema.schemata WHERE schema_name = sn;
+
+    IF sname IS NOT NULL THEN -- found schema (as is)
+       SELECT table_name, table_type INTO tname, ttype
+       FROM information_schema.tables
+       WHERE
+                table_type = ANY(var_types) and
+                table_schema = sname and
+                table_name = tn ;
+        IF tname is NULL THEN
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  = ANY(var_types) and
+                table_schema = sname and
+                table_name = lower(tn) ORDER BY table_name;
+        END IF;
+    END IF;
+    IF sname is NULL or tname is NULL THEN --schema not found or table not found
+        SELECT schema_name INTO sname
+        FROM information_schema.schemata
+        WHERE schema_name = lower(sn) ;
+
+        IF sname IS NOT NULL THEN -- found schema (with lower caps)
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  =  ANY(var_types) and
+                table_schema = sname and
+                table_name= tn ;
+
+           IF tname IS NULL THEN
+                SELECT table_name, table_type INTO tname, ttype
+                FROM information_schema.tables
+                WHERE
+                    table_type  =  ANY(var_types) and
+                    table_schema = sname and
+                    table_name= lower(tn) ;
+           END IF;
+        END IF;
+    END IF;
+   err = (sname IS NULL OR tname IS NULL);
+   perform _pgr_onError(err, reportErrs, fnName, 'Table ' || tab ||' not found',' Check your table name', 'Table '|| tab || ' found');
+
+END;
+$$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(sname text, tname text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(col) into cname;
+
+    IF cname is null  THEN
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(lower(col))  into cname;
+    END if;
+
+    err = cname is null;
+
+    perform _pgr_onError(err, reportErrs, fnName,  'Column '|| col ||' not found', ' Check your column name','Column '|| col || ' found');
+    RETURN cname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(tab text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+
+    select * into cname from _pgr_getColumnName(sname,tname,col,reportErrs, fnName);
+    RETURN cname;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    select * from _pgr_getColumnName(tab,col,0, '_pgr_isColumnInTable') into cname;
+    return cname is not null;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(sname text, tname text, cname text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    pkey text;
+BEGIN
+    SELECT
+          pg_attribute.attname into pkey
+         --  format_type(pg_attribute.atttypid, pg_attribute.atttypmod)
+          FROM pg_index, pg_class, pg_attribute
+          WHERE
+                  pg_class.oid = _pgr_quote_ident(sname||'.'||tname)::regclass AND
+                  indrelid = pg_class.oid AND
+                  pg_attribute.attrelid = pg_class.oid AND
+                  pg_attribute.attnum = any(pg_index.indkey)
+                  AND indisprimary;
+
+    IF pkey=cname then
+          RETURN TRUE;
+    END IF;
+
+    SELECT a.index_name,
+           b.attname,
+           b.attnum,
+           a.indisunique,
+           a.indisprimary
+      INTO rec
+      FROM ( SELECT a.indrelid,
+                    a.indisunique,
+                    a.indisprimary,
+                    c.relname index_name,
+                    unnest(a.indkey) index_num
+               FROM pg_index a,
+                    pg_class b,
+                    pg_class c,
+                    pg_namespace d
+              WHERE b.relname=tname
+                AND b.relnamespace=d.oid
+                AND d.nspname=sname
+                AND b.oid=a.indrelid
+                AND a.indexrelid=c.oid
+           ) a,
+           pg_attribute b
+     WHERE a.indrelid = b.attrelid
+       AND a.index_num = b.attnum
+       AND b.attname = cname
+  ORDER BY a.index_name,
+           a.index_num;
+
+  RETURN FOUND;
+  EXCEPTION WHEN OTHERS THEN
+    perform _pgr_onError( true, reportErrs, fnName,
+    'Error when checking for the postgres system attributes', SQLERR);
+    RETURN FALSE;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(tab text, col text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    sname text;
+    tname text;
+    cname text;
+    pkey text;
+    value boolean;
+BEGIN
+    SELECT * into naming FROM _pgr_getTableName(tab, 0, fnName);
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    SELECT * into cname from _pgr_getColumnName(sname, tname, col, 0, fnName) ;
+    IF cname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    select * into value  from _pgr_isColumnIndexed(sname, tname, cname, reportErrs, fnName);
+    return value;
+END
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+create or replace function _pgr_quote_ident(idname text)
+    returns text as
+$body$
+declare
+    t text[];
+    pgver text;
+
+begin
+    pgver := regexp_replace(version(), E'^PostgreSQL ([^ ]+)[ ,].*$', E'\\1');
+
+    if _pgr_versionless(pgver, '9.2') then
+        select into t array_agg(quote_ident(term)) from
+            (select nullif(unnest, '') as term
+               from unnest(string_to_array(idname, '.'))) as foo;
+    else
+        select into t array_agg(quote_ident(term)) from
+            (select unnest(string_to_array(idname, '.', '')) as term) as foo;
+    end if;
+    return array_to_string(t, '.');
+end;
+$body$
+language plpgsql immutable;
+
+
+CREATE OR REPLACE FUNCTION _pgr_versionless(v1 text, v2 text)
+  RETURNS boolean AS
+$BODY$
+
+
+declare
+    v1a text[];
+    v2a text[];
+    nv1 integer;
+    nv2 integer;
+    ne1 integer;
+    ne2 integer;
+
+begin
+    -- separate components into an array, like:
+    -- '2.1.0-beta3dev'  =>  {2,1,0,beta3dev}
+    v1a := regexp_matches(v1, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+    v2a := regexp_matches(v2, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+
+    -- convert modifiers to numbers for comparison
+    -- we do not delineate between alpha1, alpha2, alpha3, etc
+    ne1 := case when v1a[4] is null or v1a[4]='' then 5
+                when v1a[4] ilike 'rc%' then 4
+                when v1a[4] ilike 'beta%' then 3
+                when v1a[4] ilike 'alpha%' then 2
+                when v1a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    ne2 := case when v2a[4] is null or v2a[4]='' then 5
+                when v2a[4] ilike 'rc%' then 4
+                when v2a[4] ilike 'beta%' then 3
+                when v2a[4] ilike 'alpha%' then 2
+                when v2a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    nv1 := v1a[1]::integer * 10000 +
+           coalesce(v1a[2], '0')::integer * 1000 +
+           coalesce(v1a[3], '0')::integer *  100 + ne1;
+    nv2 := v2a[1]::integer * 10000 +
+           coalesce(v2a[2], '0')::integer * 1000 +
+           coalesce(v2a[3], '0')::integer *  100 + ne2;
+
+    --raise notice 'nv1: %, nv2: %, ne1: %, ne2: %', nv1, nv2, ne1, ne2;
+
+    return nv1 < nv2;
+end;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+create or replace function _pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_startpoint(st_geometryn(g,1));
+    else
+        return st_startpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function _pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_endpoint(st_geometryn(g,1));
+    else
+        return st_endpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_parameter_check(fn text, sql text, big boolean default false)
+  RETURNS bool AS
+  $BODY$
+
+  DECLARE
+  rec record;
+  rec1 record;
+  has_rcost boolean;
+  safesql text;
+  BEGIN
+    IF (big) THEN
+       RAISE EXCEPTION 'This function is for old style functions';
+    END IF;
+
+    -- checking query is executable
+    BEGIN
+      safesql =  'select * from ('||sql||' ) AS __a__ limit 1';
+      execute safesql into rec;
+      EXCEPTION
+        WHEN OTHERS THEN
+            RAISE EXCEPTION 'Could not execute query please verify syntax of: '
+              USING HINT = sql;
+    END;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('dijkstra','astar') THEN
+        BEGIN
+          execute 'select id,source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: id, source, target, cost';
+        END;
+        execute 'select pg_typeof(id)::text as id_type, pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.id_type in ('integer'::text))
+              AND (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Error, columns ''source'', ''target'' must be of type int4, ''cost'' must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    IF fn IN ('astar') THEN
+        BEGIN
+          execute 'select x1,y1,x2,y2  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: x1,y1, x2,y2';
+        END;
+        execute 'select pg_typeof(x1)::text as x1_type, pg_typeof(y1)::text as y1_type, pg_typeof(x2)::text as x2_type, pg_typeof(y2)::text as y2_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.x1_type = 'double precision'::text)
+              AND (rec.y1_type = 'double precision'::text)
+              AND (rec.x2_type = 'double precision'::text)
+              AND (rec.y2_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Columns: x1, y1, x2, y2 must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('johnson') THEN
+        BEGIN
+          execute 'select source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING HINT = 'Please veryfy the column names: id, source, target, cost',
+                         ERRCODE = 'XX000';
+        END;
+
+        execute 'select pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Support for source,target columns only of type: integer. Support for Cost: double precision'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    -- Checking the data types of the optional reverse_cost";
+    has_rcost := false;
+    IF fn IN ('johnson','dijkstra','astar') THEN
+      BEGIN
+        execute 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||safesql||' ) AS __b__ limit 1 ' into rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+            return has_rcost;
+      END;
+      if (has_rcost) then
+        IF (big) then
+           IF  not (rec1.rev_type in ('bigint'::text, 'integer'::text, 'smallint'::text, 'double precision'::text, 'real'::text)) then
+             RAISE EXCEPTION 'Illegar type in optional parameter reverse_cost.'
+             USING ERRCODE = 'XX000';
+           END IF;
+        ELSE -- Version 2.0.0 is more restrictive
+           IF (rec1.rev_type != 'double precision') then
+             RAISE EXCEPTION 'Illegal type in optional parameter reverse_cost, must be of type float8'
+             USING ERRCODE = 'XX000';
+           END IF;
+        END IF;
+      end if;
+      return true;
+    END IF;
+    -- just for keeps
+    return true;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_onError(
+  IN errCond boolean,  -- true there is an error
+  IN reportErrs int,   -- 0, 1 or 2
+  IN fnName text,      -- function name that generates the error
+  IN msgerr text,      -- error message
+  IN hinto text default 'No hint', -- hint help
+  IN msgok text default 'OK')      -- message if everything is ok
+  RETURNS void AS
+$BODY$
+BEGIN
+  if errCond=true then
+     if reportErrs=0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+     else
+       if reportErrs = 2 then
+         raise notice '----> PGR ERROR in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+         raise raise_exception;
+       else
+         raise notice '----> PGR NOTICE in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+       end if;
+     end if;
+  else
+       raise debug 'PGR ----> %: %',fnName,msgok;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_msg(IN msgKind int, IN fnName text, IN msg text default '---->OK')
+  RETURNS void AS
+$BODY$
+BEGIN
+  if msgKind = 0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msg;
+  else
+       raise notice '----> PGR NOTICE in %: %',fnName,msg;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(sname text, tname text, cname text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    EXECUTE 'select data_type  from information_schema.columns '
+            || 'where table_name = '||quote_literal(tname)
+                 || ' and table_schema=' || quote_literal(sname)
+                 || ' and column_name='||quote_literal(cname)
+       into ctype;
+    err = ctype is null;
+    perform _pgr_onError(err, reportErrs, fnName,
+            'Type of Column '|| cname ||' not found',
+            'Check your column name',
+            'OK: Type of Column '|| cname || ' is ' || ctype);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(tab text, col text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+    select * into cname from _pgr_getColumnName(tab,col,reportErrs, fnName) ;
+    select * into ctype from _pgr_getColumnType(sname,tname,cname,reportErrs, fnName);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_get_statement(o_sql text)
+RETURNS text AS
+$BODY$
+DECLARE
+sql TEXT;
+BEGIN
+    EXECUTE 'SELECT statement FROM pg_prepared_statements WHERE name ='  || quote_literal(o_sql) || ' limit 1 ' INTO sql;
+    IF (sql IS NULL) THEN
+      RETURN   o_sql;
+    ELSE
+      RETURN  regexp_replace(sql, '(.)* as ', '', 'i');
+    END IF;
+END
+$BODY$
+LANGUAGE plpgsql STABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_checkVertTab(vertname text, columnsArr  text[],
+    IN reportErrs int default 1, IN fnName text default '_pgr_checkVertTab',
+    OUT sname text,OUT vname text)
+RETURNS record AS
+$BODY$
+DECLARE
+    cname text;
+    colname text;
+    naming record;
+    debuglevel text;
+    err  boolean;
+    msgKind int;
+
+BEGIN
+    msgKind = 0; -- debug_
+    execute 'show client_min_messages' into debuglevel;
+
+    perform _pgr_msg(msgKind, fnName, 'Checking table ' || vertname || ' exists');
+       select * from _pgr_getTableName(vertname, 0, fnName) into naming;
+       sname=naming.sname;
+       vname=naming.tname;
+       err = sname is NULL or vname is NULL;
+    perform _pgr_onError( err, 2, fnName,
+          'Vertex Table: ' || vertname || ' not found',
+          'Please create ' || vertname || ' using  _pgr_createTopology() or pgr_createVerticesTable()',
+          'Vertex Table: ' || vertname || ' found');
+
+
+    perform _pgr_msg(msgKind, fnName, 'Checking columns of ' || vertname);
+      FOREACH cname IN ARRAY columnsArr
+      loop
+         select _pgr_getcolumnName(vertname, cname, 0, fnName) into colname;
+         if colname is null then
+           perform _pgr_msg(msgKind, fnName, 'Adding column ' || cname || ' in ' || vertname);
+           set client_min_messages  to warning;
+                execute 'ALTER TABLE '||_pgr_quote_ident(vertname)||' ADD COLUMN '||cname|| ' integer';
+           execute 'set client_min_messages  to '|| debuglevel;
+           perform _pgr_msg(msgKind, fnName);
+         end if;
+      end loop;
+    perform _pgr_msg(msgKind, fnName, 'Finished checking columns of ' || vertname);
+
+    perform _pgr_createIndex(vertname , 'id' , 'btree', reportErrs, fnName);
+ END
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(
+    sname text, tname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    debuglevel text;
+    naming record;
+    tabname text;
+    query text;
+    msgKind int;
+BEGIN
+  msgKind = 0; -- debug_
+
+  execute 'show client_min_messages' into debuglevel;
+  tabname=_pgr_quote_ident(sname||'.'||tname);
+  perform _pgr_msg(msgKind, fnName, 'Checking ' || colname || ' column in ' || tabname || ' is indexed');
+    IF (_pgr_isColumnIndexed(sname,tname,colname, 0, fnName)) then
+       perform _pgr_msg(msgKind, fnName);
+    else
+      if indext = 'gist' then
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using gist('||quote_ident(colname)||')';
+      else
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using btree('||quote_ident(colname)||')';
+      end if;
+      perform _pgr_msg(msgKind, fnName, 'Adding index ' || tabname || '_' ||  colname || '_idx');
+      perform _pgr_msg(msgKind, fnName, ' Using ' ||  query);
+      set client_min_messages  to warning;
+      BEGIN
+        execute query;
+        EXCEPTION WHEN others THEN
+          perform _pgr_onError( true, reportErrs, fnName,
+            'Could not create index on:' || colname, SQLERRM);
+      END;
+      execute 'set client_min_messages  to '|| debuglevel;
+      perform _pgr_msg(msgKind, fnName);
+    END IF;
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(tabname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    naming record;
+    sname text;
+    tname text;
+
+BEGIN
+    select * from _pgr_getTableName(tabname, 2, fnName)  into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    execute _pgr_createIndex(sname, tname, colname, indext, reportErrs, fnName);
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pointToId(
+    point geometry,
+    tolerance double precision,
+    vertname text,
+    srid integer)
+
+  RETURNS bigint AS
+$BODY$
+DECLARE
+    rec record;
+    pid bigint;
+
+BEGIN
+    EXECUTE 'SELECT ST_Distance(
+        the_geom,
+        ST_GeomFromText(ST_AsText('
+                || quote_literal(point::text)
+                || '),'
+            || srid ||')) AS d, id, the_geom
+    FROM '||_pgr_quote_ident(vertname)||'
+    WHERE ST_DWithin(
+        the_geom,
+        ST_GeomFromText(
+            ST_AsText(' || quote_literal(point::text) ||'),
+            ' || srid || '),' || tolerance||')
+    ORDER BY d
+    LIMIT 1' INTO rec ;
+    IF rec.id IS NOT NULL THEN
+        pid := rec.id;
+    ELSE
+        execute 'INSERT INTO '||_pgr_quote_ident(vertname)||' (the_geom) VALUES ('||quote_literal(point::text)||')';
+        pid := lastval();
+END IF;
+
+RETURN pid;
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'many_to_many_dijkstra'
+LANGUAGE c VOLATILE;
+
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer, OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstra(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(Many to Many)';
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraVia(
+    edges_sql TEXT,
+    via_vertices ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    strict BOOLEAN DEFAULT FALSE,
+    U_turn_on_edge BOOLEAN DEFAULT TRUE,
+
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'dijkstraVia'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_johnson(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'johnson'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_floydWarshall(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'floydWarshall'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'astarManyToMany'
+LANGUAGE c VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, normal:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to Many)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true, normal:=false) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to Many)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid ANYARRAY,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+    equicost BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '$libdir/libpgrouting-2.5', 'many_withPointsDD'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_withPointsDD($1, $2, ARRAY[$3]::BIGINT[], $4, $5, $6, $7, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vids anyarray,
+    distance FLOAT,
+    directed BOOLEAN DEFAULT TRUE,
+    equicost BOOLEAN DEFAULT FALSE,
+    OUT seq integer,
+    OUT from_v  bigint,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '$libdir/libpgrouting-2.5', 'driving_many_to_dist'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vid bigint,
+    distance FLOAT8,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq integer,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer, directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'kshortest_path'
+    LANGUAGE c STABLE STRICT;
+
+-- V2 the graph is directed and there are no heap paths
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid integer, end_vid integer, k integer, has_rcost boolean)
+  RETURNS SETOF pgr_costresult3 AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated signature of pgr_ksp';
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql::text, false);
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_rcost) THEN
+           -- user says that it has reverse_cost but its not true
+           RAISE EXCEPTION 'has_reverse_cost set to true but reverse_cost not found';
+         ELSE
+           -- user says that it does not have reverse_cost but it does have it
+           -- to ignore we remove reverse_cost from the query
+           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+         END IF;
+      END IF;
+
+      RETURN query SELECT ((row_number() over()) -1)::integer  AS seq,  (path_id - 1)::integer AS id1, node::integer AS id2, edge::integer AS id3, cost
+            FROM _pgr_ksp(sql::text, start_vid, end_vid, k, TRUE, FALSE) WHERE path_id <= k;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer,
+  directed boolean default true, heap_paths boolean default false,
+  --directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  BEGIN
+         RETURN query SELECT *
+                FROM _pgr_ksp(edges_sql::text, start_vid, end_vid, k, directed, heap_paths);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsKSP(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    k INTEGER,
+
+    directed BOOLEAN DEFAULT TRUE,
+    heap_paths BOOLEAN DEFAULT FALSE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER, OUT path_id INTEGER, OUT path_seq INTEGER,
+    OUT node BIGINT, OUT edge BIGINT,
+    OUT cost FLOAT, OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'withPoints_ksp'
+    LANGUAGE c STABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_unnest_matrix(matrix float8[][], OUT start_vid integer, OUT end_vid integer, out agg_cost float8)
+RETURNS SETOF record AS
+
+$body$
+DECLARE
+
+m float8[];
+
+BEGIN
+    start_vid = 1;
+    foreach m slice 1 in  ARRAY matrix
+    LOOP
+        end_vid = 1;
+        foreach agg_cost in  ARRAY m
+        LOOP
+            RETURN next;
+            end_vid = end_vid + 1;
+        END LOOP;
+        start_vid = start_vid + 1;
+    END LOOP;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_tsp(
+    matrix float8[][],
+    startpt INTEGER,
+    endpt INTEGER DEFAULT -1,
+    OUT seq INTEGER,
+    OUT id INTEGER)
+RETURNS SETOF record AS
+$body$
+DECLARE
+table_sql TEXT;
+debuglevel TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature pgr_tsp(float8[][], integer, integer)';
+
+    CREATE TEMP TABLE ___tmp2 ON COMMIT DROP AS SELECT * FROM _pgr_unnest_matrix( matrix );
+
+
+    startpt := startpt + 1;
+    IF endpt = -1 THEN endpt := startpt;
+    END IF;
+
+
+    RETURN QUERY
+    WITH
+    result AS (
+        SELECT * FROM pgr_TSP(
+        $$SELECT * FROM ___tmp2 $$,
+        startpt, endpt,
+
+        tries_per_temperature :=  500 :: INTEGER,
+        max_changes_per_temperature := 30 :: INTEGER,
+        max_consecutive_non_changes := 500 :: INTEGER,
+
+        randomize:=false)
+    )
+    SELECT (row_number() over(ORDER BY result.seq) - 1)::INTEGER AS seq, (result.node - 1)::INTEGER AS id
+
+    FROM result WHERE NOT(result.node = startpt AND result.seq != 1);
+
+    DROP TABLE ___tmp2;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+
+
+
+CREATE OR  REPLACE FUNCTION pgr_tsp(sql text, start_id INTEGER, end_id INTEGER default (-1))
+returns setof pgr_costResult as
+$body$
+DECLARE
+table_sql TEXT;
+rec RECORD;
+debuglevel TEXT;
+n BIGINT;
+
+BEGIN
+    RAISE NOTICE 'Deprecated Signature pgr_tsp(sql, integer, integer)';
+
+    table_sql := 'CREATE TEMP TABLE ___tmp ON COMMIT DROP AS ' || sql ;
+    EXECUTE table_sql;
+
+
+    BEGIN
+        EXECUTE 'SELECT id, x, y FROM ___tmp' INTO rec;
+        EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                USING ERRCODE = 'XX000',
+                HINT = 'Please verify the column names: id, x, y';
+    END;
+
+    EXECUTE
+    'SELECT
+        pg_typeof(id)::text as id_type,
+        pg_typeof(x)::text as x_type,
+        pg_typeof(y)::text as y_type FROM ___tmp' INTO rec;
+
+
+    IF NOT((rec.id_type in ('integer'::text))
+        AND (rec.x_type = 'double precision'::text)
+        AND (rec.y_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION '''id'' must be of type INTEGER, ''x'' ad ''y'' must be of type FLOAT'
+            USING ERRCODE = 'XX000';
+    END IF;
+
+    EXECUTE 'SELECT count(*) AS n FROM (' || sql || ') AS __a__' INTO rec;
+    n = rec.n;
+
+    RETURN query
+        SELECT (seq - 1)::INTEGER AS seq, node::INTEGER AS id1, node::INTEGER AS id2, cost
+        FROM pgr_eucledianTSP(sql, start_id, end_id,
+
+            tries_per_temperature :=  500 * n :: INTEGER,
+            max_changes_per_temperature := 60 * n :: INTEGER,
+            max_consecutive_non_changes := 500 * n :: INTEGER,
+
+            randomize := false) WHERE seq <= n;
+    DROP TABLE ___tmp;
+
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+
+create or replace function _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+  as
+$body$
+declare
+    sql text;
+    r record;
+
+begin
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    sql := 'with nodes as (' || sqlin || ')
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j, st_distance(st_makepoint(a.x, a.y), st_makepoint(b.x, b.y)) as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i';
+
+    for r in execute sql loop
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+
+end;
+$body$
+language plpgsql stable cost 10;
+
+
+CREATE OR REPLACE FUNCTION pgr_TSP(
+    matrix_row_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '$libdir/libpgrouting-2.5', 'newTSP'
+LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_eucledianTSP(
+    coordinates_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '$libdir/libpgrouting-2.5', 'eucledianTSP'
+LANGUAGE c VOLATILE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_alphashape(sql text, alpha float8 DEFAULT 0, OUT x float8, OUT y float8)
+    RETURNS SETOF record
+    AS '$libdir/libpgrouting-2.5', 'alphashape'
+    LANGUAGE c VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_pointsAsPolygon(query varchar, alpha float8 DEFAULT 0)
+	RETURNS geometry AS
+	$$
+	DECLARE
+		r record;
+		geoms geometry[];
+		vertex_result record;
+		i int;
+		n int;
+		spos int;
+		q text;
+		x float8[];
+		y float8[];
+
+	BEGIN
+		geoms := array[]::geometry[];
+		i := 1;
+
+		FOR vertex_result IN EXECUTE 'SELECT x, y FROM pgr_alphashape('''|| query || ''', ' || alpha || ')'
+		LOOP
+			x[i] = vertex_result.x;
+			y[i] = vertex_result.y;
+			i := i+1;
+		END LOOP;
+
+		n := i;
+		IF n = 1 THEN
+			RAISE NOTICE 'n = 1';
+			RETURN NULL;
+		END IF;
+
+		spos := 1;
+		q := 'SELECT ST_GeometryFromText(''POLYGON((';
+		FOR i IN 1..n LOOP
+			IF x[i] IS NULL AND y[i] IS NULL THEN
+				q := q || ', ' || x[spos] || ' ' || y[spos] || '))'',0) AS geom;';
+				EXECUTE q INTO r;
+				geoms := geoms || array[r.geom];
+				q := '';
+			ELSE
+				IF q = '' THEN
+					spos := i;
+					q := 'SELECT ST_GeometryFromText(''POLYGON((';
+				END IF;
+				IF i = spos THEN
+					q := q || x[spos] || ' ' || y[spos];
+				ELSE
+					q := q || ', ' || x[i] || ' ' || y[i];
+				END IF;
+			END IF;
+		END LOOP;
+
+		RETURN ST_BuildArea(ST_Collect(geoms));
+	END;
+	$$
+	LANGUAGE 'plpgsql' VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'bd_astar'
+LANGUAGE C VOLATILE;
+
+
+
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed:=true, only_cost:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    BOOLEAN,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false);
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to Many)';
+
+
+
+-- one to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to Many)';
+
+
+-- bdDijkstra MANY TO MANY
+CREATE OR REPLACE FUNCTION _pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'bdDijkstra'
+LANGUAGE c VOLATILE;
+
+
+
+-- ONE TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- TODO directed BOOLEAN DEFAULT TRUE,  on version 3
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, false) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, true) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_vid integer,
+    target_vid integer,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '$libdir/libpgrouting-2.5', 'turn_restrict_shortest_path_vertex'
+LANGUAGE 'c' IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '$libdir/libpgrouting-2.5', 'turn_restrict_shortest_path_edge'
+LANGUAGE 'c' IMMUTABLE;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || edges_sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        -- no restrictions then its a dijkstra
+        RETURN query SELECT a.seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_dijkstra(new_sql, start_vid, end_vid, directed) a;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, start_vid, end_vid, directed, has_rcost, restrictions_sql);
+    RETURN;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_trspViaVertices(
+    edges_sql TEXT,
+    via_vids ANYARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult3 AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            new_sql :=
+               'WITH old_sql AS (' || edges_sql || ')' ||
+                '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        RETURN query SELECT (row_number() over())::INTEGER, path_id:: INTEGER, node::INTEGER,
+            (CASE WHEN edge = -2 THEN -1 ELSE edge END)::INTEGER, cost
+            FROM pgr_dijkstraVia(new_sql, via_vids, directed, strict:=true) WHERE edge != -1;
+        RETURN;
+    END IF;
+
+
+    -- make the call without contradiction from part of the user
+    RETURN query SELECT * FROM _pgr_trspViaVertices(new_sql, via_vids::INTEGER[], directed, has_rcost, restrictions_sql);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+
+    new_sql := sql;
+    IF (has_reverse != has_reverse_cost) THEN  -- user contradiction
+        IF (has_reverse) THEN
+            -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) THEN
+        -- no restrictions then its a with points
+        RETURN query SELECT a.seq-1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_withpoints(new_sql,
+            '(SELECT 1 as pid, ' || source_eid || 'as edge_id, ' || source_pos || '::float8 as fraction)'
+            || ' UNION '
+            || '(SELECT 2, ' || target_eid || ', ' || target_pos || ')' ::TEXT,
+            -1, -2, directed) a;
+        -- WHERE node != -2;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, source_eid, source_pos, target_eid, target_pos, directed, has_reverse_cost, turn_restrict_sql);
+    RETURN;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+create or replace function _pgr_trspViaVertices(sql text, vids integer[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    lrra boolean := false;
+    seq integer := 0;
+    seq2 integer := 0;
+
+begin
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(vids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from _pgr_trsp(sql, vids[i], vids[i+1], directed, has_rcost, turn_restrict_sql) as a loop
+            -- filter out the individual path ends except the last one
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --raise notice 'rr: %', rr;
+            if rr.id3 = -1 then
+                lrr := rr;
+                lrra := true;
+            else
+                seq := seq + 1;
+                rr.seq := seq;
+                return next rr;
+            end if;
+        end loop;
+    end loop;
+
+    if lrra then
+        seq := seq + 1;
+        lrr.seq := seq;
+        return next lrr;
+    end if;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+
+----------------------------------------------------------------------------------------------------------
+
+create or replace function pgr_trspViaEdges(sql text, eids integer[], pcts float8[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    first boolean := true;
+    seq integer := 0;
+    seq2 integer :=0;
+    has_reverse BOOLEAN;
+    point_is_vertex BOOLEAN := false;
+    edges_sql TEXT;
+    f float;
+
+begin
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql := sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (NOT has_rcost) THEN
+            -- user does not want to use reverse cost column
+            edges_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    FOREACH f IN ARRAY pcts LOOP
+        IF f in (0,1) THEN
+           point_is_vertex := true;
+        END IF;
+    END LOOP;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) AND NOT point_is_vertex THEN
+        -- no restrictions then its a _pgr_withPointsVia
+        RETURN query SELECT a.seq::INTEGER, path_id::INTEGER AS id1, node::INTEGER AS id2, edge::INTEGER AS id3, cost
+        FROM _pgr_withPointsVia(edges_sql, eids, pcts, directed) a;
+        RETURN;
+    END IF;
+
+    if array_length(eids, 1) != array_length(pcts, 1) then
+        raise exception 'The length of arrays eids and pcts must be the same!';
+    end if;
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(eids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from pgr_trsp(edges_sql,
+                                  eids[i], pcts[i],
+                                  eids[i+1], pcts[i+1],
+                                  directed,
+                                  has_rcost,
+                                  turn_restrict_sql) as a loop
+            -- combine intermediate via costs when cost is split across
+            -- two parts of a segment because it stops it and
+            -- restarts the next leg also on it
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --
+            -- there are multiple condition we have to deal with
+            -- between the end of one leg and start of the next
+            -- 1. same vertex_id. edge_id=-1; drop record with edge_id=-1
+            -- means: path ends on vertex
+            -- NOTICE:  rr: (19,1,44570022,-1,0)
+            -- NOTICE:  rr: (0,2,44570022,1768045,2.89691196717448)
+            -- 2. vertex_id=-1; sum cost components
+            -- means: path end/starts with the segment
+            -- NOTICE:  rr: (11,2,44569628,1775909,9.32885885148532)
+            -- NOTICE:  rr: (0,3,-1,1775909,0.771386350984395)
+
+            --raise notice 'rr: %', rr;
+            if first then
+                lrr := rr;
+                first := false;
+            else
+                if lrr.id3 = -1 then
+                    lrr := rr;
+                elsif lrr.id3 = rr.id3 then
+                    lrr.cost := lrr.cost + rr.cost;
+                    if rr.id2 = -1 then
+                        rr.id2 := lrr.id2;
+                    end if;
+                else
+                    seq := seq + 1;
+                    lrr.seq := seq;
+                    return next lrr;
+                    lrr := rr;
+                end if;
+            end if;
+        end loop;
+    end loop;
+
+    seq := seq + 1;
+    lrr.seq := seq;
+    return next lrr;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+----------------------------
+--    MANY TO MANY
+----------------------------
+
+
+CREATE OR REPLACE FUNCTION _pgr_maxflow(
+    edges_sql TEXT,
+    sources ANYARRAY,
+    targets ANYARRAY,
+    algorithm INTEGER DEFAULT 1,
+    only_flow BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'max_flow_many_to_many'
+    LANGUAGE c VOLATILE;
+
+
+
+
+------------------------------------
+-- 3 pgr_edmondsKarp
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+------------------------------------
+-- 2 boykov_kolmogorov
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+------------------------------------
+-- 1 pgr_pushRelabel
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT flow
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], algorithm := 1, only_flow := true);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], $3::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, $2::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxCardinalityMatch(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'edge_disjoint_paths_many_to_many'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    bigint,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    IN directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_contractGraph(
+    edges_sql TEXT,
+    contraction_order BIGINT[],
+    max_cycles integer DEFAULT 1,
+    forbidden_vertices BIGINT[] DEFAULT ARRAY[]::BIGINT[],
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT type TEXT,
+    OUT id BIGINT,
+    OUT contracted_vertices BIGINT[],
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost float)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'contractGraph'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliver(
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_cell_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'pickDeliver'
+LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliverEuclidean (
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'pickDeliverEuclidean'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_vrpOneDepot(
+    TEXT, -- customers_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_sql
+    INTEGER, -- depot_id
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+orders_sql TEXT;
+trucks_sql TEXT;
+matrix_sql TEXT;
+final_sql TEXT;
+BEGIN
+
+    orders_sql = $$WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    pickups AS (
+        SELECT id, x AS p_x, y AS p_y, open_time AS p_open, close_time AS p_close, service_time AS p_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vrp_orders.id AS id, order_unit AS demand, pickups.id AS p_node_id, p_x, p_y, p_open, p_close, p_service,
+    vrp_orders.id AS d_node_id, x AS d_x, y AS d_y, open_time AS d_open, close_time AS d_close, service_time AS d_service
+    FROM vrp_orders, pickups
+    WHERE vrp_orders.id != $$ || $4;
+
+
+    trucks_sql = $$ WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    vrp_vehicles AS ($$ || $2 || $$ ),
+    starts AS (
+        SELECT id AS start_node_id, x AS start_x, y AS start_y, open_time AS start_open, close_time AS start_close, service_time AS start_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vehicle_id AS id, capacity, starts.* FROM vrp_vehicles, starts;
+    $$;
+
+    final_sql = '
+    SELECT * FROM _pgr_pickDeliver(
+            $$' || orders_sql || '$$,
+            $$' || trucks_sql || '$$,
+            $$' || $3 || '$$,
+            max_cycles := 2,
+            initial_sol := 4 ); ';
+
+    RAISE DEBUG '%', orders_sql;
+    RAISE DEBUG '%', trucks_sql;
+    RAISE DEBUG '%', $3;
+    RAISE DEBUG '%', final_sql;
+
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+-----------------------------------------------------------------------
+-- Core function for vrp with sigle depot computation
+-- See README for description
+-----------------------------------------------------------------------
+--
+--
+
+create or replace function pgr_vrpOneDepot(
+	order_sql text,
+	vehicle_sql text,
+	cost_sql text,
+	depot_id integer,
+
+	OUT oid integer,
+	OUT opos integer,
+	OUT vid integer,
+	OUT tarrival integer,
+	OUT tdepart integer)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT order_id::INTEGER, stop_seq::INTEGER, vehicle_id::INTEGER, arrival_time::INTEGER, departure_time::INTEGER
+    FROM _pgr_vrpOneDepot($1, $2,
+       '
+            SELECT src_id AS start_vid, dest_id AS end_vid, traveltime AS agg_cost FROM ('||$3||') AS a
+       ',
+        $4
+    ) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_gsoc_vrppdtw(
+    customers_sql TEXT,
+    max_vehicles INTEGER,
+    capacity FLOAT,
+    speed FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+
+    OUT seq INTEGER,
+    OUT vehicle_id INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT stop_id BIGINT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+    orders_sql TEXT;
+    vehicles_sql TEXT;
+    final_sql TEXT;
+BEGIN
+    orders_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        pickups AS (
+            SELECT id, demand, x as p_x, y as p_y, opentime as p_open, closetime as p_close, servicetime as p_service
+            FROM  customer_data WHERE pindex = 0 AND id != 0
+        ),
+        deliveries AS (
+            SELECT pindex AS id, x as d_x, y as d_y, opentime as d_open, closetime as d_close, servicetime as d_service
+            FROM  customer_data WHERE dindex = 0 AND id != 0
+        )
+        SELECT * FROM pickups JOIN deliveries USING(id) ORDER BY pickups.id
+    $$;
+
+    vehicles_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ )
+        SELECT id, x AS start_x, y AS start_y,
+            opentime AS start_open, closetime AS start_close, $$ ||
+            capacity || $$ AS capacity, $$ || max_vehicles || $$ AS number, $$ || speed || $$ AS speed
+            FROM customer_data WHERE id = 0 LIMIT 1
+        $$;
+--  seq | vehicle_id | vehicle_seq | stop_id | travel_time | arrival_time | wait_time | service_time | departure_time
+    final_sql = $$ WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        p_deliver AS (SELECT * FROM _pgr_pickDeliverEuclidean('$$ || orders_sql || $$',  '$$ || vehicles_sql || $$',  1, $$ || max_cycles || $$ )),
+        picks AS (SELECT p_deliver.*, pindex, dindex, id AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 2)),
+        delivers AS (SELECT p_deliver.*, pindex, dindex, dindex AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 3)),
+        depots AS (SELECT p_deliver.*, 0 as pindex, 0 as dindex, 0 AS the_id FROM p_deliver WHERE (stop_type IN (-1,1,6))),
+        the_union AS (SELECT * FROM picks UNION SELECT * FROM delivers UNION SELECT * from depots)
+
+        SELECT (row_number() over(ORDER BY a.seq))::INTEGER, vehicle_seq, a.stop_seq, the_id::BIGINT, a.travel_time, a.arrival_time, a.wait_time, a.service_time, a.departure_time
+        FROM (SELECT * FROM the_union) AS a ORDER BY a.seq
+        $$;
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+CREATE OR REPLACE FUNCTION pgr_gsoc_vrppdtw(
+    sql text,
+    vehicle_num INTEGER,
+    capacity INTEGER
+)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+customers_sql TEXT;
+BEGIN
+    RETURN query
+         SELECT a.seq, vehicle_id::INTEGER AS id1, stop_id::INTEGER AS id2, departure_time AS cost
+        FROM _pgr_gsoc_vrppdtw($1, $2, $3, 1, 30) AS a WHERE vehicle_id NOT IN (-2);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION _pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN,
+    driving_side CHAR,
+    details BOOLEAN,
+
+    only_cost BOOLEAN DEFAULT false, -- gets path
+    normal BOOLEAN DEFAULT true, -- false for many to onu
+
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'withPoints'
+LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], ARRAY[$4]::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], ARRAY[$4]::bigint[], $5, $6, $7, FALSE, FALSE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], $4::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], $4::BIGINT[], $5,  $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION  _pgr_withPointsVia(
+    sql text,
+    via_edges bigint[],
+    fraction float[],
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  has_rcost boolean;
+  sql_new_vertices text := ' ';
+  sql_on_vertex text;
+  v_union text := ' ';
+  dummyrec record;
+  rec1 record;
+  via_vertices int[];
+  sql_safe text;
+  new_edges text;
+  BEGIN
+     BEGIN
+        sql_safe = 'SELECT id, source, target, cost, reverse_cost FROM ('|| sql || ') AS __a';
+
+        EXECUTE 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||sql_safe||' ) AS __b__ limit 1 ' INTO rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+     END;
+
+
+      IF array_length(via_edges, 1) != array_length(fraction, 1) then
+        RAISE EXCEPTION 'The length of via_edges is different of length of via_edges';
+      END IF;
+
+      FOR i IN 1 .. array_length(via_edges, 1)
+      LOOP
+          IF fraction[i] = 0 THEN
+              sql_on_vertex := 'SELECT source FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.source;
+          ELSE IF fraction[i] = 1 THEN
+              sql_on_vertex := 'SELECT target FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.target;
+          ELSE
+              via_vertices[i] = -i;
+              IF has_rcost THEN
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost,
+                              reverse_cost * (1 - ' || fraction[i] || ')  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost,
+                              reverse_cost *  ' || fraction[i] || '  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' where id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               ELSE
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               END IF;
+          END IF;
+          END IF;
+     END LOOP;
+
+     IF sql_new_vertices = ' ' THEN
+         new_edges := sql;
+     ELSE
+         IF has_rcost THEN
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost,
+                         lead(cost) OVER w  - cost AS reverse_cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL),
+                   second_part AS ( SELECT * FROM (SELECT id, lead(source) OVER w  AS source, source as target,
+                         reverse_cost - lead(reverse_cost) OVER w  AS cost,
+                         reverse_cost - lead(reverse_cost) OVER w  AS reverse_cost
+                      FROM  the_union  WHERE target > 0 and reverse_cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY reverse_cost ASC) ) as n2
+                      WHERE source IS NOT NULL),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part)
+                             UNION
+                       (SELECT * FROM second_part) ) _union )
+                  SELECT *  FROM more_union';
+         ELSE
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL ),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part) ) _union )
+                  SELECT *  FROM more_union';
+          END IF;
+      END IF;
+
+ -- raise notice '%', new_edges;
+     sql_new_vertices := sql_new_vertices || v_union || ' (' || sql || ')';
+     RETURN query SELECT *
+         FROM pgr_dijkstraVia(new_edges, via_vertices, directed, has_rcost);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_lineGraph(
+    TEXT, -- edges_sql
+    directed BOOLEAN DEFAULT true,
+    OUT seq INTEGER,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost FLOAT,
+    OUT reverse_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'lineGraph'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_connectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'connectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_strongComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'strongComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_biconnectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the edge in the component
+    OUT n_seq INTEGER,          -- nth_seq of the edge in the component
+    OUT edge BIGINT)            -- the number of the edge
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'biconnectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_articulationPoints(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'articulationPoints'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_bridges(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT edge BIGINT)            -- the number of the edge 
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'bridges'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_createtopology(edge_table text, tolerance double precision,
+		   the_geom text default 'the_geom', id text default 'id',
+		   source text default 'source', target text default 'target',rows_where text default 'true',
+		   clean boolean default FALSE)
+RETURNS VARCHAR AS
+$BODY$
+
+DECLARE
+    points record;
+    sridinfo record;
+    source_id bigint;
+    target_id bigint;
+    totcount bigint;
+    rowcount bigint;
+    srid integer;
+    sql text;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    idname text;
+    sourcename text;
+    targetname text;
+    notincluded integer;
+    i integer;
+    naming record;
+    info record;
+    flag boolean;
+    query text;
+    idtype text;
+    gtype text;
+    sourcetype text;
+    targettype text;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+    msgKind int;
+    emptied BOOLEAN;
+
+BEGIN
+    msgKind = 1; -- notice
+    fnName = 'pgr_createTopology';
+    raise notice 'PROCESSING:';
+    raise notice 'pgr_createTopology(''%'', %, ''%'', ''%'', ''%'', ''%'', rows_where := ''%'', clean := %)',edge_table,tolerance,the_geom,id,source,target,rows_where, clean;
+    execute 'show client_min_messages' into debuglevel;
+
+
+    raise notice 'Performing checks, please wait .....';
+
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+        sname=naming.sname;
+        tname=naming.tname;
+        tabname=sname||'.'||tname;
+        vname=tname||'_vertices_pgr';
+        vertname= sname||'.'||vname;
+        rows_where = ' AND ('||rows_where||')';
+      raise DEBUG '     --> OK';
+
+
+      raise debug 'Checking column names in edge table';
+        select * into idname     from _pgr_getColumnName(sname, tname,id,2,fnName);
+        select * into sourcename from _pgr_getColumnName(sname, tname,source,2,fnName);
+        select * into targetname from _pgr_getColumnName(sname, tname,target,2,fnName);
+        select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2,fnName);
+
+
+        err = sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname;
+        perform _pgr_onError( err, 2, fnName,
+               'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
+	       'Column names are OK');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking column types in edge table';
+        select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+        select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+        select * into idtype from _pgr_getColumnType(sname,tname,idname,1, fnName);
+
+        err = idtype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column id:'|| idname, ' Expected type of '|| idname || ' is integer,smallint or bigint but '||idtype||' was found');
+
+        err = sourcetype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column source:'|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+        err = targettype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column target:'|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or bigint but '||targettype||' was found');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking SRID of geometry column';
+         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+            || ' FROM ' || _pgr_quote_ident(tabname)
+            || ' WHERE ' || quote_ident(gname)
+            || ' IS NOT NULL LIMIT 1';
+         raise debug '%',query;
+         EXECUTE query INTO sridinfo;
+
+         err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+         perform _pgr_onError(err, 2, fnName,
+	     'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+
+         srid := sridinfo.srid;
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking and creating indices in edge table';
+        perform _pgr_createIndex(sname, tname , idname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+
+        gname=quote_ident(gname);
+        idname=quote_ident(idname);
+        sourcename=quote_ident(sourcename);
+        targetname=quote_ident(targetname);
+      raise DEBUG '     --> OK';
+
+
+
+
+
+    BEGIN
+        -- issue #193 & issue #210 & #213
+        -- this sql is for trying out the where clause
+        -- the select * is to avoid any column name conflicts
+        -- limit 1, just try on first record
+        -- if the where clasuse is ill formed it will be caught in the exception
+        sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+        EXECUTE sql into dummyRec;
+        -- end
+
+        -- if above where clasue works this one should work
+        -- any error will be caught by the exception also
+        sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NOT NULL AND '||
+	    idname||' IS NOT NULL)=false '||rows_where;
+        EXECUTE SQL  into notincluded;
+
+        if clean then
+            raise debug 'Cleaning previous Topology ';
+               execute 'UPDATE ' || _pgr_quote_ident(tabname) ||
+               ' SET '||sourcename||' = NULL,'||targetname||' = NULL';
+        else
+            raise debug 'Creating topology for edges with non assigned topology';
+            if rows_where=' AND (true)' then
+                rows_where=  ' and ('||quote_ident(sourcename)||' is null or '||quote_ident(targetname)||' is  null)';
+            end if;
+        end if;
+        -- my thoery is that the select Count(*) will never go through here
+        EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+             RAISE NOTICE '%',sql;
+             RETURN 'FAIL';
+    END;
+
+    BEGIN
+         raise DEBUG 'initializing %',vertname;
+         execute 'select * from _pgr_getTableName('||quote_literal(vertname)
+                                                  || ',0,' || quote_literal(fnName) ||' )' into naming;
+         emptied = false;
+         set client_min_messages  to warning;
+         IF sname=naming.sname AND vname=naming.tname  THEN
+            if clean then
+                execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+                execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+                emptied = true;
+            end if;
+         ELSE -- table doesn't exist
+            execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+            emptied = true;
+         END IF;
+         IF (emptied) THEN
+             execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+	         quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+             perform _pgr_createIndex(vertname , 'the_geom'::text , 'gist'::text);
+         END IF;
+         execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id"}''::text[])' into naming;
+         execute 'set client_min_messages  to '|| debuglevel;
+         raise DEBUG  '  ------>OK';
+         EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: something went wrong when initializing the verties table';
+             RETURN 'FAIL';
+    END;
+
+
+
+    raise notice 'Creating Topology, Please wait...';
+        rowcount := 0;
+        FOR points IN EXECUTE 'SELECT ' || idname || '::bigint AS id,'
+            || ' _pgr_StartPoint(' || gname || ') AS source,'
+            || ' _pgr_EndPoint('   || gname || ') AS target'
+            || ' FROM '  || _pgr_quote_ident(tabname)
+            || ' WHERE ' || gname || ' IS NOT NULL AND ' || idname||' IS NOT NULL '||rows_where
+        LOOP
+
+            rowcount := rowcount + 1;
+            IF rowcount % 1000 = 0 THEN
+                RAISE NOTICE '% edges processed', rowcount;
+            END IF;
+
+
+            source_id := _pgr_pointToId(points.source, tolerance,vertname,srid);
+            target_id := _pgr_pointToId(points.target, tolerance,vertname,srid);
+            BEGIN
+                sql := 'UPDATE ' || _pgr_quote_ident(tabname) ||
+                    ' SET '||sourcename||' = '|| source_id::text || ','||targetname||' = ' || target_id::text ||
+                    ' WHERE ' || idname || ' =  ' || points.id::text;
+
+                IF sql IS NULL THEN
+                    RAISE NOTICE 'WARNING: UPDATE % SET source = %, target = % WHERE % = % ', tabname, source_id::text, target_id::text, idname,  points.id::text;
+                ELSE
+                    EXECUTE sql;
+                END IF;
+                EXCEPTION WHEN OTHERS THEN
+                    RAISE NOTICE '%', SQLERRM;
+                    RAISE NOTICE '%',sql;
+                    RETURN 'FAIL';
+            end;
+        END LOOP;
+        raise notice '-------------> TOPOLOGY CREATED FOR  % edges', rowcount;
+        RAISE NOTICE 'Rows with NULL geometry or NULL id: %',notincluded;
+        Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname), _pgr_quote_ident(vertname);
+        raise notice '----------------------------------------------';
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+COMMENT ON FUNCTION pgr_createTopology(text, double precision,text,text,text,text,text,boolean)
+IS 'args: edge_table,tolerance, the_geom:=''the_geom'',source:=''source'', target:=''target'',rows_where:=''true'' - fills columns source and target in the geometry table and creates a vertices table for selected rows';
+
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
+RETURNS character varying AS
+$BODY$
+
+DECLARE
+    points record;
+    seg record;
+    naming record;
+    sridinfo record;
+    srid integer;
+    ecnt integer;
+    vertname text;
+    sname text;
+    tname text;
+    vname text;
+    idname text;
+    sourcename text;
+    targetname text;
+    sourcetype text;
+    targettype text;
+    geotype text;
+    gname text;
+    tabName text;
+    flag boolean ;
+    query text;
+    selectionquery text;
+    i integer;
+    tot integer;
+    NumIsolated integer;
+    numdeadends integer;
+    numgaps integer;
+    NumCrossing integer;
+    numRings integer;
+    debuglevel text;
+
+
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_analyzeGraph(''%'',%,''%'',''%'',''%'',''%'',''%'')',edge_table,tolerance,the_geom,id,source,target,rows_where;
+  raise notice 'Performing checks, please wait ...';
+  execute 'show client_min_messages' into debuglevel;
+
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',2)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    rows_where = ' AND ('||rows_where||')';
+    raise DEBUG '     --> OK';
+
+  END;
+
+  BEGIN
+       raise debug 'Checking Vertices table';
+       execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","cnt","chk"}''::text[])' into naming;
+       execute 'UPDATE '||_pgr_quote_ident(vertname)||' SET cnt=0 ,chk=0';
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the vertices table';
+          RETURN 'FAIL';
+  END;
+
+
+
+  BEGIN
+       raise debug 'Checking column names in edge table';
+       select * into idname     from _pgr_getColumnName(sname, tname,id,2);
+       select * into sourcename from _pgr_getColumnName(sname, tname,source,2);
+       select * into targetname from _pgr_getColumnName(sname, tname,target,2);
+       select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2);
+
+
+       perform _pgr_onError( sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname, 2,
+                       'pgr_analyzeGraph',  'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
+                       'Column names are OK');
+
+        raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column names';
+          RETURN 'FAIL';
+  END;
+
+
+  BEGIN
+       raise debug 'Checking column types in edge table';
+       select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1);
+       select * into targettype from _pgr_getColumnType(sname,tname,targetname,1);
+
+       perform _pgr_onError(sourcetype not in('integer','smallint','bigint') , 2,
+                       'pgr_analyzeGraph',  'Wrong type of Column '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found',
+                       'Type of Column '|| sourcename || ' is ' || sourcetype);
+
+       perform _pgr_onError(targettype not in('integer','smallint','bigint') , 2,
+                       'pgr_analyzeGraph',  'Wrong type of Column '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found',
+                       'Type of Column '|| targetname || ' is ' || targettype);
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column types';
+          RETURN 'FAIL';
+   END;
+
+   BEGIN
+       raise debug 'Checking SRID of geometry column';
+         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+            || ' FROM ' || _pgr_quote_ident(tabname)
+            || ' WHERE ' || quote_ident(gname)
+            || ' IS NOT NULL LIMIT 1';
+         EXECUTE QUERY INTO sridinfo;
+
+         perform _pgr_onError( sridinfo IS NULL OR sridinfo.srid IS NULL,2,
+                 'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname,
+                 'SRID of '||gname||' is '||sridinfo.srid);
+
+         IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
+             RAISE NOTICE ' Can not determine the srid of the geometry "%" in table %', the_geom,tabname;
+             RETURN 'FAIL';
+         END IF;
+         srid := sridinfo.srid;
+         raise DEBUG '     --> OK';
+         EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM;--issue 210,211,213
+             RAISE NOTICE 'ERROR: something went wrong when checking for SRID of % in table %', the_geom,tabname;
+             RETURN 'FAIL';
+    END;
+
+
+    BEGIN
+       raise debug 'Checking  indices in edge table';
+       perform _pgr_createIndex(tabname , idname , 'btree');
+       perform _pgr_createIndex(tabname , sourcename , 'btree');
+       perform _pgr_createIndex(tabname , targetname , 'btree');
+       perform _pgr_createIndex(tabname , gname , 'gist');
+
+       gname=quote_ident(gname);
+       sourcename=quote_ident(sourcename);
+       targetname=quote_ident(targetname);
+       idname=quote_ident(idname);
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking indices';
+          RETURN 'FAIL';
+    END;
+
+
+    BEGIN
+        query='select count(*) from '||_pgr_quote_ident(tabname)||' where true  '||rows_where;
+        EXECUTE query into ecnt;
+        raise DEBUG '-->Rows Where condition: OK';
+        raise DEBUG '     --> OK';
+         EXCEPTION WHEN OTHERS THEN
+            RAISE NOTICE 'Got %', SQLERRM;  --issue 210,211,213
+            RAISE NOTICE 'ERROR: Condition is not correct. Please execute the following query to test your condition';
+            RAISE NOTICE '%',query;
+            RETURN 'FAIL';
+    END;
+
+    selectionquery ='with
+           selectedRows as( (select '||sourcename||' as id from '||_pgr_quote_ident(tabname)||' where true '||rows_where||')
+                           union
+                           (select '||targetname||' as id from '||_pgr_quote_ident(tabname)||' where true '||rows_where||'))';
+
+
+
+
+
+   BEGIN
+       RAISE NOTICE 'Analyzing for dead ends. Please wait...';
+       query= 'with countingsource as (select a.'||sourcename||' as id,count(*) as cnts
+               from (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) a  group by a.'||sourcename||')
+                     ,countingtarget as (select a.'||targetname||' as id,count(*) as cntt
+                    from (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) a  group by a.'||targetname||')
+                   ,totalcount as (select id,case when cnts is null and cntt is null then 0
+                                                   when cnts is null then cntt
+                                                   when cntt is null then cnts
+                                                   else cnts+cntt end as totcnt
+                                   from ('||_pgr_quote_ident(vertname)||' as a left
+                                   join countingsource as t using(id) ) left join countingtarget using(id))
+               update '||_pgr_quote_ident(vertname)||' as a set cnt=totcnt from totalcount as b where a.id=b.id';
+       raise debug '%',query;
+       execute query;
+       query=selectionquery||'
+              SELECT count(*)  FROM '||_pgr_quote_ident(vertname)||' WHERE cnt=1 and id in (select id from selectedRows)';
+       raise debug '%',query;
+       execute query  INTO numdeadends;
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'Got %', SQLERRM;  --issue 210,211,213
+          RAISE NOTICE 'ERROR: something went wrong when analizing for dead ends';
+          RETURN 'FAIL';
+   END;
+
+
+
+    BEGIN
+          RAISE NOTICE 'Analyzing for gaps. Please wait...';
+          query = 'with
+                   buffer as (select id,st_buffer(the_geom,'||tolerance||') as buff from '||_pgr_quote_ident(vertname)||' where cnt=1)
+                   ,veryclose as (select b.id,st_crosses(a.'||gname||',b.buff) as flag
+                   from  (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) as a
+                   join buffer as b on (a.'||gname||'&&b.buff)
+                   where '||sourcename||'!=b.id and '||targetname||'!=b.id )
+                   update '||_pgr_quote_ident(vertname)||' set chk=1 where id in (select distinct id from veryclose where flag=true)';
+          raise debug '%' ,query;
+          execute query;
+          GET DIAGNOSTICS  numgaps= ROW_COUNT;
+          raise DEBUG '     --> OK';
+          EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for gaps';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for isolated edges. Please wait...';
+        query=selectionquery|| ' SELECT count(*) FROM (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' )  as a,
+                                                 '||_pgr_quote_ident(vertname)||' as b,
+                                                 '||_pgr_quote_ident(vertname)||' as c
+                            WHERE b.id in (select id from selectedRows) and a.'||sourcename||' =b.id
+                            AND b.cnt=1 AND a.'||targetname||' =c.id
+                            AND c.cnt=1';
+        raise debug '%' ,query;
+        execute query  INTO NumIsolated;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for isolated edges';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for ring geometries. Please wait...';
+        execute 'SELECT geometrytype('||gname||')  FROM '||_pgr_quote_ident(tabname) limit 1 into geotype;
+        IF (geotype='MULTILINESTRING') THEN
+            query ='SELECT count(*)  FROM '||_pgr_quote_ident(tabname)||'
+                                 WHERE true  '||rows_where||' and st_isRing(st_linemerge('||gname||'))';
+            raise debug '%' ,query;
+            execute query  INTO numRings;
+        ELSE query ='SELECT count(*)  FROM '||_pgr_quote_ident(tabname)||'
+                                  WHERE true  '||rows_where||' and st_isRing('||gname||')';
+            raise debug '%' ,query;
+            execute query  INTO numRings;
+        END IF;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for ring geometries';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for intersections. Please wait...';
+        query = 'select count(*) from (select distinct case when a.'||idname||' < b.'||idname||' then a.'||idname||'
+                                                        else b.'||idname||' end,
+                                                   case when a.'||idname||' < b.'||idname||' then b.'||idname||'
+                                                        else a.'||idname||' end
+                                    FROM (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||') as a
+                                    JOIN (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||') as b
+                                    ON (a.'|| gname||' && b.'||gname||')
+                                    WHERE a.'||idname||' != b.'||idname|| '
+                                        and (a.'||sourcename||' in (b.'||sourcename||',b.'||targetname||')
+                                              or a.'||targetname||' in (b.'||sourcename||',b.'||targetname||')) = false
+                                        and st_intersects(a.'||gname||', b.'||gname||')=true) as d ';
+        raise debug '%' ,query;
+        execute query  INTO numCrossing;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for intersections';
+            RETURN 'FAIL';
+    END;
+
+
+
+
+    RAISE NOTICE '            ANALYSIS RESULTS FOR SELECTED EDGES:';
+    RAISE NOTICE '                  Isolated segments: %', NumIsolated;
+    RAISE NOTICE '                          Dead ends: %', numdeadends;
+    RAISE NOTICE 'Potential gaps found near dead ends: %', numgaps;
+    RAISE NOTICE '             Intersections detected: %',numCrossing;
+    RAISE NOTICE '                    Ring geometries: %',numRings;
+
+
+    RETURN 'OK';
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+COMMENT ON FUNCTION pgr_analyzeGraph(text,double precision,text,text,text,text,text) IS 'args: edge_table, tolerance,the_geom:=''the_geom'',id:=''id'',source column:=''source'', target column:=''target'' rows_where:=''true'' - creates a vertices table based on the geometry for selected rows';
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_analyzeOneway(
+   edge_table text,
+   s_in_rules TEXT[],
+   s_out_rules TEXT[],
+   t_in_rules TEXT[],
+   t_out_rules TEXT[],
+   two_way_if_null boolean default true,
+   oneway text default 'oneway',
+   source text default 'source',
+   target text default 'target')
+  RETURNS text AS
+$BODY$
+
+
+DECLARE
+    rule text;
+    ecnt integer;
+    instr text;
+    naming record;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    owname text;
+    sourcename text;
+    targetname text;
+    sourcetype text;
+    targettype text;
+    vertname text;
+    debuglevel text;
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_analyzeOneway(''%'',''%'',''%'',''%'',''%'',''%'',''%'',''%'',%)',
+		edge_table, s_in_rules , s_out_rules, t_in_rules, t_out_rules, oneway, source ,target,two_way_if_null ;
+  execute 'show client_min_messages' into debuglevel;
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',2)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    raise DEBUG '     --> OK';
+    EXCEPTION WHEN raise_exception THEN
+      RAISE NOTICE 'ERROR: something went wrong checking the table name';
+      RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise debug 'Checking Vertices table';
+       execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","ein","eout"}''::text[])' into naming;
+       execute 'UPDATE '||_pgr_quote_ident(vertname)||' SET eout=0 ,ein=0';
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the vertices table';
+          RETURN 'FAIL';
+  END;
+
+
+  BEGIN
+       raise debug 'Checking column names in edge table';
+       select * into sourcename from _pgr_getColumnName(sname, tname,source,2);
+       select * into targetname from _pgr_getColumnName(sname, tname,target,2);
+       select * into owname from _pgr_getColumnName(sname, tname,oneway,2);
+
+
+       perform _pgr_onError( sourcename in (targetname,owname) or  targetname=owname, 2,
+                       '_pgr_createToplogy',  'Two columns share the same name', 'Parameter names for oneway,source and target  must be different',
+                       'Column names are OK');
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column names';
+          RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise debug 'Checking column types in edge table';
+       select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1);
+       select * into targettype from _pgr_getColumnType(sname,tname,targetname,1);
+
+
+       perform _pgr_onError(sourcetype not in('integer','smallint','bigint') , 2,
+                       '_pgr_createTopology',  'Wrong type of Column '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found',
+                       'Type of Column '|| sourcename || ' is ' || sourcetype);
+
+       perform _pgr_onError(targettype not in('integer','smallint','bigint') , 2,
+                       '_pgr_createTopology',  'Wrong type of Column '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found',
+                       'Type of Column '|| targetname || ' is ' || targettype);
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column types';
+          RETURN 'FAIL';
+   END;
+
+
+
+    RAISE NOTICE 'Analyzing graph for one way street errors.';
+
+    rule := CASE WHEN two_way_if_null
+            THEN owname || ' IS NULL OR '
+            ELSE '' END;
+
+    instr := '''' || array_to_string(s_in_rules, ''',''') || '''';
+       EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set ein=coalesce(ein,0)+b.cnt
+      from (
+         select '|| sourcename ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| sourcename ||' ) b
+     where a.id=b.'|| sourcename;
+
+    RAISE NOTICE 'Analysis 25%% complete ...';
+
+    instr := '''' || array_to_string(t_in_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set ein=coalesce(ein,0)+b.cnt
+        from (
+         select '|| targetname ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| targetname ||' ) b
+        where a.id=b.'|| targetname;
+
+    RAISE NOTICE 'Analysis 50%% complete ...';
+
+    instr := '''' || array_to_string(s_out_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set eout=coalesce(eout,0)+b.cnt
+        from (
+         select '|| sourcename ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| sourcename ||' ) b
+        where a.id=b.'|| sourcename;
+    RAISE NOTICE 'Analysis 75%% complete ...';
+
+    instr := '''' || array_to_string(t_out_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set eout=coalesce(eout,0)+b.cnt
+        from (
+         select '|| targetname ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| targetname ||' ) b
+        where a.id=b.'|| targetname;
+
+    RAISE NOTICE 'Analysis 100%% complete ...';
+
+    EXECUTE 'SELECT count(*)  FROM '||_pgr_quote_ident(vertname)||' WHERE ein=0 or eout=0' INTO ecnt;
+
+    RAISE NOTICE 'Found % potential problems in directionality' ,ecnt;
+
+    RETURN 'OK';
+
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+COMMENT ON FUNCTION pgr_analyzeOneway(text,TEXT[],TEXT[], TEXT[],TEXT[],boolean,text,text,text)
+IS 'args:edge_table , s_in_rules , s_out_rules, t_in_rules , t_out_rules, two_way_if_null:= true, oneway:=''oneway'',source:= ''source'',target:=''target'' - Analizes the directionality of the edges based on the rules';
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_createverticestable(
+   edge_table text,
+   the_geom text DEFAULT 'the_geom'::text,
+   source text DEFAULT 'source'::text,
+   target text DEFAULT 'target'::text,
+    rows_where text DEFAULT 'true'::text
+)
+  RETURNS text AS
+$BODY$
+DECLARE
+    naming record;
+    sridinfo record;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    sourcename text;
+    targetname text;
+    query text;
+    ecnt bigint;
+    srid integer;
+    sourcetype text;
+    targettype text;
+    sql text;
+    totcount integer;
+    i integer;
+    notincluded integer;
+    included integer;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+
+
+BEGIN
+  fnName = 'pgr_createVerticesTable';
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_createVerticesTable(''%'',''%'',''%'',''%'',''%'')',edge_table,the_geom,source,target,rows_where;
+  execute 'show client_min_messages' into debuglevel;
+
+  raise notice 'Performing checks, please wait .....';
+
+  RAISE DEBUG 'Checking % exists',edge_table;
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    rows_where = ' AND ('||rows_where||')';
+  raise debug '--> Edge table exists: OK';
+
+  raise debug 'Checking column names';
+    select * into sourcename from _pgr_getColumnName(sname, tname,source,2, fnName);
+    select * into targetname from _pgr_getColumnName(sname, tname,target,2, fnName);
+    select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2, fnName);
+
+
+    err = sourcename in (targetname,gname) or  targetname=gname;
+    perform _pgr_onError(err, 2, fnName,
+        'Two columns share the same name', 'Parameter names for the_geom,source and target  must be different');
+  raise debug '--> Column names: OK';
+
+  raise debug 'Checking column types in edge table';
+    select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+    select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+
+
+    err = sourcetype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column source: '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+    err = targettype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column target: '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found');
+
+  raise debug '-->Column types:OK';
+
+  raise debug 'Checking SRID of geometry column';
+     query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+        || ' FROM ' || _pgr_quote_ident(tabname)
+        || ' WHERE ' || quote_ident(gname)
+        || ' IS NOT NULL LIMIT 1';
+     raise debug '%',query;
+     EXECUTE query INTO sridinfo;
+
+     err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+     perform _pgr_onError(err, 2, fnName,
+         'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+     srid := sridinfo.srid;
+  raise DEBUG '     --> OK';
+
+  raise debug 'Checking and creating Indices';
+     perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+  raise DEBUG '-->Check and create indices: OK';
+
+     gname=quote_ident(gname);
+     sourcename=quote_ident(sourcename);
+     targetname=quote_ident(targetname);
+
+
+  BEGIN
+  raise debug 'Checking Condition';
+    -- issue #193 & issue #210 & #213
+    -- this sql is for trying out the where clause
+    -- the select * is to avoid any column name conflicts
+    -- limit 1, just try on first record
+    -- if the where clasuse is ill formed it will be caught in the exception
+    sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+    EXECUTE sql into dummyRec;
+    -- end
+
+    -- if above where clasue works this one should work
+    -- any error will be caught by the exception also
+    sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NULL or '||
+		sourcename||' is null or '||targetname||' is null)=true '||rows_where;
+    raise debug '%',sql;
+    EXECUTE SQL  into notincluded;
+    EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+
+
+
+  BEGIN
+     raise DEBUG 'initializing %',vertname;
+       execute 'select * from _pgr_getTableName('||quote_literal(vertname)||',0)' into naming;
+       IF sname=naming.sname  AND vname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+       ELSE
+           set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+       END IF;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+                quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+       execute 'CREATE INDEX '||quote_ident(vname||'_the_geom_idx')||' ON '||_pgr_quote_ident(vertname)||'  USING GIST (the_geom)';
+       execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+       EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Initializing vertex table';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise notice 'Populating %, please wait...',vertname;
+       sql= 'with
+		lines as ((select distinct '||sourcename||' as id, _pgr_startpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+		                  ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||')
+			union (select distinct '||targetname||' as id,_pgr_endpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+			          ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||'))
+		,numberedLines as (select row_number() OVER (ORDER BY id) AS i,* from lines )
+		,maxid as (select id,max(i) as maxi from numberedLines group by id)
+		insert into '||_pgr_quote_ident(vertname)||'(id,the_geom)  (select id,the_geom  from numberedLines join maxid using(id) where i=maxi order by id)';
+       RAISE debug '%',sql;
+       execute sql;
+       GET DIAGNOSTICS totcount = ROW_COUNT;
+
+       sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' a, '||_pgr_quote_ident(vertname)||' b
+            where '||sourcename||'=b.id and '|| targetname||' in (select id from '||_pgr_quote_ident(vertname)||')';
+       RAISE debug '%',sql;
+       execute sql into included;
+
+
+
+       execute 'select max(id) from '||_pgr_quote_ident(vertname) into ecnt;
+       execute 'SELECT setval('||quote_literal(vertname||'_id_seq')||','||coalesce(ecnt,1)||' , false)';
+       raise notice '  ----->   VERTICES TABLE CREATED WITH  % VERTICES', totcount;
+       raise notice '                                       FOR   %  EDGES', included+notincluded;
+       RAISE NOTICE '  Edges with NULL geometry,source or target: %',notincluded;
+       RAISE NOTICE '                            Edges processed: %',included;
+       Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname),_pgr_quote_ident(vertname);
+       raise notice '----------------------------------------------';
+    END;
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+COMMENT ON FUNCTION pgr_createVerticesTable(text,text,text,text,text)
+IS 'args: edge_table, the_geom:=''the_geom'',source:=''source'', target:=''target'' rows_where:=''true'' - creates a vertices table based on the source and target identifiers for selected rows';
+
+
+CREATE OR REPLACE FUNCTION pgr_nodeNetwork(edge_table text, tolerance double precision,
+			id text default 'id', the_geom text default 'the_geom', table_ending text default 'noded',
+            rows_where text DEFAULT ''::text, outall boolean DEFAULT false) RETURNS text AS
+$BODY$
+DECLARE
+	
+	p_num int := 0;
+	p_ret text := '';
+    pgis_ver_old boolean := _pgr_versionless(postgis_lib_version(), '2.1.0.0');
+    vst_line_substring text;
+    vst_line_locate_point text;
+    intab text;
+    outtab text;
+    n_pkey text;
+    n_geom text;
+    naming record;
+    sname text;
+    tname text;
+    outname text;
+    srid integer;
+    sridinfo record;
+    splits bigint;
+    touched bigint;
+    untouched bigint;
+    geomtype text;
+    debuglevel text;
+    rows_where text;
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_nodeNetwork(''%'', %, ''%'', ''%'', ''%'', ''%'',  %)',
+    edge_table, tolerance, id,  the_geom, table_ending, rows_where, outall;
+  raise notice 'Performing checks, please wait .....';
+  execute 'show client_min_messages' into debuglevel;
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',0)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+	RAISE NOTICE '-------> % not found',edge_table;
+        RETURN 'FAIL';
+    ELSE
+	RAISE DEBUG '  -----> OK';
+    END IF;
+
+    intab=sname||'.'||tname;
+    outname=tname||'_'||table_ending;
+    outtab= sname||'.'||outname;
+    rows_where = CASE WHEN length(rows_where) > 2 and not outall THEN ' AND (' || rows_where || ')' ELSE '' END;
+    rows_where = CASE WHEN length(rows_where) > 2 THEN ' WHERE (' || rows_where || ')' ELSE '' END;
+  END;
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',id,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(id)||')' INTO n_pkey;
+       IF n_pkey is NULL then
+          raise notice  'ERROR: id column "%"  not found in %',id,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',the_geom,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(the_geom)||')' INTO n_geom;
+       IF n_geom is NULL then
+          raise notice  'ERROR: the_geom  column "%"  not found in %',the_geom,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+  IF n_pkey=n_geom THEN
+	raise notice  'ERROR: id and the_geom columns have the same name "%" in %',n_pkey,intab;
+        RETURN 'FAIL';
+  END IF;
+
+  BEGIN
+       	raise DEBUG 'Checking the SRID of the geometry "%"', n_geom;
+       	EXECUTE 'SELECT ST_SRID(' || quote_ident(n_geom) || ') as srid '
+          		|| ' FROM ' || _pgr_quote_ident(intab)
+          		|| ' WHERE ' || quote_ident(n_geom)
+          		|| ' IS NOT NULL LIMIT 1' INTO sridinfo;
+       	IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
+        	RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           	RETURN 'FAIL';
+       	END IF;
+       	srid := sridinfo.srid;
+       	raise DEBUG '  -----> SRID found %',srid;
+       	EXCEPTION WHEN OTHERS THEN
+           		RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           		RETURN 'FAIL';
+  END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_pkey,intab;
+      if (_pgr_isColumnIndexed(intab,n_pkey)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding  index "%_%_idx".',n_pkey,intab;
+
+	set client_min_messages  to warning;
+        execute 'create  index '||tname||'_'||n_pkey||'_idx on '||_pgr_quote_ident(intab)||' using btree('||quote_ident(n_pkey)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_geom,intab;
+      if (_pgr_iscolumnindexed(intab,n_geom)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding unique index "%_%_gidx".',intab,n_geom;
+	set client_min_messages  to warning;
+        execute 'CREATE INDEX '
+            || quote_ident(tname || '_' || n_geom || '_gidx' )
+            || ' ON ' || _pgr_quote_ident(intab)
+            || ' USING gist (' || quote_ident(n_geom) || ')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+---------------
+    BEGIN
+       raise DEBUG 'initializing %',outtab;
+       execute 'select * from _pgr_getTableName('||quote_literal(outtab)||',0)' into naming;
+       IF sname=naming.sname  AND outname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(outtab)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(outname)||','||quote_literal(n_geom)||')';
+       ELSE
+	   set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(outtab)||' (id bigserial PRIMARY KEY,old_id integer,sub_id integer,
+								source bigint,target bigint)';
+       END IF;
+       execute 'select geometrytype('||quote_ident(n_geom)||') from  '||_pgr_quote_ident(intab)||' limit 1' into geomtype;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(outname)||','||
+                quote_literal(n_geom)||','|| srid||', '||quote_literal(geomtype)||', 2)';
+       execute 'CREATE INDEX '||quote_ident(outname||'_'||n_geom||'_idx')||' ON '||_pgr_quote_ident(outtab)||'  USING GIST ('||quote_ident(n_geom)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+    END;
+----------------
+
+
+  raise notice 'Processing, please wait .....';
+
+
+    if pgis_ver_old then
+        vst_line_substring    := 'st_line_substring';
+        vst_line_locate_point := 'st_line_locate_point';
+    else
+        vst_line_substring    := 'st_linesubstring';
+        vst_line_locate_point := 'st_linelocatepoint';
+    end if;
+
+--    -- First creates temp table with intersection points
+    p_ret = 'create temp table intergeom on commit drop as (
+        select l1.' || quote_ident(n_pkey) || ' as l1id,
+               l2.' || quote_ident(n_pkey) || ' as l2id,
+	       l1.' || quote_ident(n_geom) || ' as line,
+	       _pgr_startpoint(l2.' || quote_ident(n_geom) || ') as source,
+	       _pgr_endpoint(l2.' || quote_ident(n_geom) || ') as target,
+               st_intersection(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ') as geom
+        from (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l1
+             join (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l2
+             on (st_dwithin(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ', ' || tolerance || '))'||
+        'where l1.' || quote_ident(n_pkey) || ' <> l2.' || quote_ident(n_pkey)||' and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false  )';
+    raise debug '%',p_ret;
+    EXECUTE p_ret;
+
+    -- second temp table with locus (index of intersection point on the line)
+    -- to avoid updating the previous table
+    -- we keep only intersection points occurring onto the line, not at one of its ends
+--    drop table if exists inter_loc;
+
+--HAD TO CHANGE THIS QUERY
+-- p_ret= 'create temp table inter_loc on commit drop as (
+--        select l1id, l2id, ' || vst_line_locate_point || '(line,point) as locus from (
+--        select DISTINCT l1id, l2id, line, (ST_DumpPoints(geom)).geom as point from intergeom) as foo
+--        where ' || vst_line_locate_point || '(line,point)<>0 and ' || vst_line_locate_point || '(line,point)<>1)';
+    p_ret= 'create temp table inter_loc on commit drop as ( select * from (
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,source) as locus from intergeom)
+         union
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,target) as locus from intergeom)) as foo
+        where locus<>0 and locus<>1)';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+
+    -- index on l1id
+    create index inter_loc_id_idx on inter_loc(l1id);
+
+    -- Then computes the intersection on the lines subset, which is much smaller than full set
+    -- as there are very few intersection points
+
+--- outab needs to be formally created with id, old_id, subid,the_geom, source,target
+---  so it can be inmediatly be used with createTopology
+
+--   EXECUTE 'drop table if exists ' || _pgr_quote_ident(outtab);
+--   EXECUTE 'create table ' || _pgr_quote_ident(outtab) || ' as
+     P_RET = 'insert into '||_pgr_quote_ident(outtab)||' (old_id,sub_id,'||quote_ident(n_geom)||') (  with cut_locations as (
+           select l1id as lid, locus
+           from inter_loc
+           -- then generates start and end locus for each line that have to be cut buy a location point
+           UNION ALL
+           select i.l1id  as lid, 0 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           UNION ALL
+           select i.l1id  as lid, 1 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           order by lid, locus
+       ),
+       -- we generate a row_number index column for each input line
+       -- to be able to self-join the table to cut a line between two consecutive locations
+       loc_with_idx as (
+           select lid, locus, row_number() over (partition by lid order by locus) as idx
+           from cut_locations
+       )
+       -- finally, each original line is cut with consecutive locations using linear referencing functions
+       select l.' || quote_ident(n_pkey) || ', loc1.idx as sub_id, ' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus) as ' || quote_ident(n_geom) || '
+       from loc_with_idx loc1 join loc_with_idx loc2 using (lid) join ' || _pgr_quote_ident(intab) || ' l on (l.' || quote_ident(n_pkey) || ' = loc1.lid)
+       where loc2.idx = loc1.idx+1
+           -- keeps only linestring geometries
+           and geometryType(' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus)) = ''LINESTRING'') ';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+	GET DIAGNOSTICS splits = ROW_COUNT;
+        execute 'with diff as (select distinct old_id from '||_pgr_quote_ident(outtab)||' )
+                 select count(*) from diff' into touched;
+	-- here, it misses all original line that did not need to be cut by intersection points: these lines
+	-- are already clean
+	-- inserts them in the final result: all lines which gid is not in the res table.
+	EXECUTE 'insert into ' || _pgr_quote_ident(outtab) || ' (old_id , sub_id, ' || quote_ident(n_geom) || ')
+                ( with used as (select distinct old_id from '|| _pgr_quote_ident(outtab)||')
+		select ' ||  quote_ident(n_pkey) || ', 1 as sub_id, ' ||  quote_ident(n_geom) ||
+		' from '|| _pgr_quote_ident(intab) ||' where  '||quote_ident(n_pkey)||' not in (select * from used)' || rows_where || ')';
+	GET DIAGNOSTICS untouched = ROW_COUNT;
+
+	raise NOTICE '  Split Edges: %', touched;
+	raise NOTICE ' Untouched Edges: %', untouched;
+	raise NOTICE '     Total original Edges: %', touched+untouched;
+        RAISE NOTICE ' Edges generated: %', splits;
+	raise NOTICE ' Untouched Edges: %',untouched;
+	raise NOTICE '       Total New segments: %', splits+untouched;
+        RAISE NOTICE ' New Table: %', outtab;
+        RAISE NOTICE '----------------------------------';
+
+    drop table  if exists intergeom;
+    drop table if exists inter_loc;
+    RETURN 'OK';
+END;
+$BODY$
+    LANGUAGE 'plpgsql' VOLATILE STRICT COST 100;
+
+
+COMMENT ON FUNCTION pgr_nodeNetwork(text, double precision, text, text, text, text, boolean )
+ IS  'edge_table, tolerance, id:=''id'', the_geom:=''the_geom'', table_ending:=''noded'' ';
+
+
+CREATE OR REPLACE FUNCTION pgr_labelGraph(
+                edge_table text,
+                id text default 'id',
+                source text default 'source',
+                target text default 'target',
+                subgraph text default 'subgraph',
+                rows_where text default 'true'
+        )
+        RETURNS character varying AS
+$BODY$
+
+DECLARE
+        naming record;
+        schema_name text;
+        table_name text;
+        garbage text;
+        incre integer;
+        table_schema_name text;
+        query text;
+        ecnt integer;
+        sql1 text;
+        rec1 record;
+        sql2 text;
+        rec2 record;
+        rec_count record;
+        rec_single record;
+        graph_id integer;
+        gids int [];
+
+BEGIN
+        raise notice 'Processing:';
+        raise notice 'pgr_brokenGraph(''%'',''%'',''%'',''%'',''%'',''%'')', edge_table,id,source,target,subgraph,rows_where;
+        raise notice 'Performing initial checks, please hold on ...';
+
+        Raise Notice 'Starting - Checking table ...';
+        BEGIN
+                raise debug 'Checking % table existance', edge_table;
+                execute 'select * from pgr_getTableName('|| quote_literal(edge_table) ||')' into naming;
+                schema_name = naming.sname;
+                table_name = naming.tname;
+                table_schema_name = schema_name||'.'||table_name;
+                IF schema_name is null then
+                        raise notice 'no schema';
+                        return 'FAIL';
+                else
+                        if table_name is null then
+                                raise notice 'no table';
+                                return 'FAIL';
+                        end if;
+                end if;
+        END;
+        Raise Notice 'Ending - Checking table';
+
+        Raise Notice 'Starting - Checking columns';
+        BEGIN
+                raise debug 'Checking exitance of necessary columns inside % table', edge_table;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(id) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no id column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(source) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no source column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(target) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no target column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(subgraph) ||')' into naming;
+                if naming.pgr_iscolumnintable = 't' then
+                        raise notice 'subgraph column already in the table';
+                        return 'FAIL';
+                end if;
+        END;
+        Raise Notice 'Ending - Checking columns';
+
+        Raise Notice 'Starting - Checking rows_where condition';
+        BEGIN
+                raise debug 'Checking rows_where condition';
+                query='select count(*) from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where;
+                execute query into ecnt;
+                raise debug '-->Rows where condition: OK';
+                raise debug '    --> OK';
+                EXCEPTION WHEN OTHERS THEN
+                        raise notice 'Got %', SQLERRM;
+                        Raise notice 'ERROR: Condition is not correct. Please execute the following query to test your condition';
+                        Raise notice '%', query;
+                        return 'FAIL';
+        END;
+        Raise Notice 'Ending - Checking rows_where condition';
+
+        garbage := 'garbage001';
+        incre := 1;
+        Raise Notice 'Starting - Checking temporary column';
+        Begin
+                raise debug 'Checking Checking temporary columns existance';
+
+                While True
+                        Loop
+                                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(garbage) ||')' into naming;
+                                If naming.pgr_iscolumnintable = 't' THEN
+                                        incre := incre + 1;
+                                        garbage := 'garbage00'||incre||'';
+                                ELSE
+                                        EXIT;
+                                END IF;
+                        End Loop;
+        End;
+        Raise Notice 'Ending - Checking temporary column';
+
+        Raise Notice 'Starting - Calculating subgraphs';
+        BEGIN
+                --------- Add necessary columns ----------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(subgraph) || ' INTEGER DEFAULT -1';
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(garbage) || ' INTEGER DEFAULT 0';
+                graph_id := 1;
+
+                EXECUTE 'select count(*) as count from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where ||'' into rec_count;
+                if rec_count.count = 0 then
+                        RETURN 'rows_where condition generated 0 rows';
+                end if;
+
+                WHILE TRUE
+                        LOOP
+                                ---------- Assign the very first -1 row graph_id ----------
+                                EXECUTE 'SELECT ' || pgr_quote_ident(id) || ' AS gid FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1 LIMIT 1' INTO rec_single;
+                                EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec_single.gid || '';
+
+                                --------- Search other rows with that particular graph_id -----------
+                                WHILE TRUE
+                                        LOOP
+                                                EXECUTE 'SELECT COUNT(*) FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0' into rec_count;
+                                                ----------- The following if else will check those rows which already have entertained ------------
+                                                IF (rec_count.count > 0) THEN
+                                                        sql1 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0';
+                                                        FOR rec1 IN EXECUTE sql1
+                                                                LOOP
+                                                                        sql2 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| pgr_quote_ident(source) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(source) ||' = '|| rec1.target ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.target ||'';
+                                                                        FOR rec2 IN EXECUTE sql2
+                                                                                LOOP
+                                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec2.gid || '';
+                                                                                END LOOP;
+                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(garbage) || ' = 1 WHERE ' || pgr_quote_ident(id) || ' = ' || rec1.gid || '';
+                                                                END LOOP;
+                                                ELSE
+                                                        EXIT;
+                                                END IF;
+                                        END LOOP;
+
+                                ------ Following is to exit the while loop. 0 means no more -1 id.
+                                EXECUTE 'SELECT COUNT(*) AS count FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1' INTO rec_count;
+                                If (rec_count.count = 0) THEN
+                                        EXIT;
+                                ELSE
+                                        graph_id := graph_id + 1;
+                                END IF;
+                        END LOOP;
+
+                ----------- Drop garbage column ------------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' DROP COLUMN ' || pgr_quote_ident(garbage) ||'';
+                Raise Notice 'Successfully complicated calculating subgraphs';
+        END;
+        Raise Notice 'Ending - Calculating subgraphs';
+
+        RETURN 'OK';
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCostMatrix(
+    edges_sql TEXT,
+    points_sql TEXT,
+    pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_pid, a.end_pid, a.agg_cost
+        FROM _pgr_withPoints($1, $2, $3, $3, $4,  $5, TRUE, TRUE) AS a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+--  DIJKSTRA DMatrix
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCostMatrix(edges_sql TEXT, vids ANYARRAY, directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2, $2, $3, true) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+
+--  BIDIRECTIONAL DIJKSTRA Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCostMatrix(edges_sql TEXT, vids ANYARRAY, directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_astarCostMatrix(
+    edges_sql TEXT, -- XY edges sql
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2, $2, $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+--  BIDIRECTIONAL ASTAR Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdAstarCostMatrix(
+    edges_sql TEXT,
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_bdAstarCostMatrix(TEXT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCostMatrix';
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_getTableName(IN tab text,OUT sname text,OUT tname text)
+RETURNS RECORD AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getTableName: This function will no longer be soported';
+    select * from _pgr_getTableName(tab, 0, 'pgr_getTableName') into sname,tname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_getColumnName(tab text, col text)
+RETURNS text AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getColumnName: This function will no longer be soported';
+    return _pgr_getColumnName(tab,col, 0, 'pgr_getColumnName');
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    select * from _pgr_getColumnName(tab,col,0, 'pgr_isColumnInTable') into cname;
+    return  cname IS not NULL;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnIndexed(tab text, col text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnIndexed: This function will no longer be soported';
+    return  _pgr_isColumnIndexed(tab,col);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+create or replace function pgr_quote_ident(idname text)
+returns text as
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    return  _pgr_quote_ident(idname);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_versionless(v1 text, v2 text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_versionless: This function will no longer be soported';
+    return  _pgr_versionless(v1,v2);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+create or replace function pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_startPoint: This function will no longer be soported';
+    return  _pgr_startPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_endPoint: This function will no longer be soported';
+    return  _pgr_endPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_apspJohnson(edges_sql text)
+    RETURNS SETOF pgr_costResult AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function: Use pgr_johnson instead';
+      has_reverse =_pgr_parameter_check('johnson', edges_sql, false);
+      sql = edges_sql;
+      IF (has_reverse) THEN
+           RAISE NOTICE 'reverse_cost column found, removing.';
+           sql = 'SELECT source, target, cost FROM (' || edges_sql || ') a';
+      END IF;
+
+      RETURN query
+         SELECT (row_number() over () - 1)::integer as seq, start_vid::integer AS id1, end_vid::integer AS id2, agg_cost AS cost
+         FROM  pgr_johnson(sql, TRUE);
+  END
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_apspWarshall(edges_sql text, directed boolean, has_rcost boolean)
+    RETURNS SETOF pgr_costResult AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function: Use pgr_floydWarshall instead';
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+      sql := edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_reverse) THEN
+           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+         ELSE raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+         END IF;
+      END IF;
+
+      RETURN query
+         SELECT (row_number() over () -1)::integer as seq, start_vid::integer AS id1, end_vid::integer AS id2, agg_cost AS cost
+         FROM  pgr_floydWarshall(sql, directed);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_astar(edges_sql TEXT, source_id INTEGER, target_id INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated signature pgr_astar(text, integer, integer, boolean, boolean)';
+    has_reverse =_pgr_parameter_check('astar', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost, x1,y1, x2, y2 FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+    FROM pgr_astar(sql, ARRAY[$2], ARRAY[$3], directed);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    sql TEXT,
+    source_vid INTEGER,
+    target_vid INTEGER,
+    directed BOOLEAN,
+    has_reverse_cost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdAstar';
+    has_reverse =_pgr_parameter_check('astar', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdAstar(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(edges_sql TEXT, start_vid INTEGER, end_vid INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdDijkstra';
+    has_reverse =_pgr_parameter_check('dijkstra', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdDijkstra(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstraPath(
+    sql text,
+    source INTEGER,
+    targets INTEGER ARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+    RETURNS SETOF pgr_costResult3 AS
+    $BODY$
+    DECLARE
+    has_reverse BOOLEAN;
+    new_sql TEXT;
+    result pgr_costResult3;
+    tmp pgr_costResult3;
+    sseq INTEGER;
+    i INTEGER;
+    BEGIN
+        RAISE NOTICE 'Deprecated function: Use pgr_dijkstra instead.';
+        has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+        new_sql = sql;
+        IF (array_ndims(targets) != 1) THEN
+            raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+
+        IF (has_reverse != has_rcost) THEN
+            IF (has_reverse) THEN
+                new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+            ELSE
+                raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+                USING ERRCODE = 'XX000';
+            END IF;
+        END IF;
+        SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+        sseq = 0; i = 1;
+        FOR result IN
+            SELECT seq, a.end_vid::INTEGER AS id1, a.node::INTEGER AS i2, a.edge::INTEGER AS id3, cost
+            FROM pgr_dijkstra(new_sql, source, targets, directed) a ORDER BY a.end_vid, seq LOOP
+            WHILE (result.id1 != targets[i]) LOOP
+                tmp.seq = sseq;
+                tmp.id1 = targets[i];
+                IF (targets[i] = source) THEN
+                    tmp.id2 = source;
+                    tmp.cost =0;
+                ELSE
+                    tmp.id2 = 0;
+                    tmp.cost = -1;
+                END IF;
+                tmp.id3 = -1;
+                RETURN next tmp;
+                i = i + 1;
+                sseq = sseq + 1;
+            END LOOP;
+        IF (result.id1 = targets[i] AND result.id3 != -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+        IF (result.id1 = targets[i] AND result.id3 = -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.id2 = source;
+            tmp.cost = 0;
+        ELSE
+            tmp.id2 = 0;
+            tmp.cost = -1;
+        END IF;
+        tmp.id3 = -1;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstracost(
+    sql text,
+    source INTEGER,
+    targets INTEGER array,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+result pgr_costResult;
+tmp pgr_costResult;
+sseq INTEGER;
+i INTEGER;
+BEGIN
+    RAISE NOTICE 'Deprecated function. Use pgr_dijkstraCost instead.';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    new_sql = sql;
+    IF (array_ndims(targets) != 1) THEN
+        raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+        USING ERRCODE = 'XX000';
+    END IF;
+
+
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+    sseq = 0; i = 1;
+    FOR result IN
+        SELECT ((row_number() over()) -1)::INTEGER, a.start_vid::INTEGER, a.end_vid::INTEGER, agg_cost
+        FROM pgr_dijkstraCost(new_sql, source, targets, directed) a ORDER BY end_vid LOOP
+        WHILE (result.id2 != targets[i]) LOOP
+            tmp.seq = sseq;
+            tmp.id1 = source;
+            tmp.id2 = targets[i];
+            IF (targets[i] = source) THEN
+                tmp.cost = 0;
+            ELSE
+                tmp.cost = -1;
+            END IF;
+            RETURN next tmp;
+            i = i + 1;
+            sseq = sseq + 1;
+        END LOOP;
+        IF (result.id2 = targets[i]) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = source;
+        tmp.id2 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.cost = 0;
+        ELSE
+            tmp.cost = -1;
+        END IF;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+create or replace function pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    returns integer as
+$body$
+
+declare
+    rr record;
+    pct float;
+    debuglevel text;
+
+begin
+    -- find the closest edge within tol distance
+    execute 'select * from ' || _pgr_quote_ident(edges) ||
+            ' where st_dwithin(''' || pnt::text ||
+            '''::geometry, the_geom, ' || tol || ') order by st_distance(''' || pnt::text ||
+            '''::geometry, the_geom) asc limit 1' into rr;
+
+    if rr.the_geom is not null then
+        -- deal with MULTILINESTRINGS
+        if geometrytype(rr.the_geom)='MULTILINESTRING' THEN
+            rr.the_geom := ST_GeometryN(rr.the_geom, 1);
+        end if;
+
+        -- project the point onto the linestring
+        execute 'show client_min_messages' into debuglevel;
+        SET client_min_messages='ERROR';
+        pct := st_line_locate_point(rr.the_geom, pnt);
+        execute 'set client_min_messages  to '|| debuglevel;
+
+        -- return the node we are closer to
+        if pct < 0.5 then
+            return rr.source;
+        else
+            return rr.target;
+        end if;
+    else
+        -- return a failure to find an edge within tol distance
+        return -1;
+    end if;
+end;
+$body$
+  language plpgsql volatile
+  cost 5;
+
+
+----------------------------------------------------------------------------
+
+create or replace function pgr_flipedges(ga geometry[])
+    returns geometry[] as
+$body$
+
+declare
+    nn integer;
+    i integer;
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_flipEdges';
+    -- get the count of edges, and return if only one edge
+    nn := array_length(ga, 1);
+    if nn=1 then
+        return ga;
+    end if;
+
+    -- determine if first needs to be flipped
+    g := _pgr_startpoint(ga[1]);
+
+    -- if the start of the first is connected to the second then it needs to be flipped
+    if _pgr_startpoint(ga[2])=g or _pgr_endpoint(ga[2])=g then
+        ga[1] := st_reverse(ga[1]);
+    end if;
+    g := _pgr_endpoint(ga[1]);
+
+    -- now if  the end of the last edge matchs the end of the current edge we need to flip it
+    for i in 2 .. nn loop
+        if _pgr_endpoint(ga[i])=g then
+            ga[i] := st_reverse(ga[i]);
+        end if;
+        -- save the end of this edge into the last end for the next cycle
+        g := _pgr_endpoint(ga[i]);
+    end loop;
+
+    return ga;
+end;
+$body$
+    language plpgsql immutable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_texttopoints(pnts text, srid integer DEFAULT(4326))
+    returns geometry[] as
+$body$
+
+declare
+    a text[];
+    t text;
+    p geometry;
+    g geometry[];
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_textToPoints';
+    -- convert commas to space and split on ';'
+    a := string_to_array(replace(pnts, ',', ' '), ';');
+    -- convert each 'x y' into a point geometry and concattenate into a new array
+    for t in select unnest(a) loop
+        p := st_pointfromtext('POINT(' || t || ')', srid);
+        g := g || p;
+    end loop;
+
+    return g;
+end;
+$body$
+    language plpgsql immutable;
+
+-----------------------------------------------------------------------
+
+create or replace function pgr_pointstovids(pnts geometry[], edges text, tol float8 DEFAULT(0.01))
+    returns integer[] as
+$body$
+
+declare
+    v integer[];
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_pointsToVids';
+    -- cycle through each point and locate the nearest edge and vertex on that edge
+    for g in select unnest(pnts) loop
+        v := v || pgr_pointtoedgenode(edges, g, tol);
+    end loop;
+
+    return v;
+end;
+$body$
+    language plpgsql stable;
+
+
+create or replace function pgr_pointstodmatrix(pnts geometry[], mode integer default (0), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+
+declare
+    r record;
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_pointsToDMatrix';
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    -- create an id for each point in the array and unnest it into a table nodes in the with clause
+    for r in with nodes as (select row_number() over()::integer as id, p from (select unnest(pnts) as p) as foo)
+        -- compute a row of distances
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j,
+                case when mode=0
+                    then st_distance(a.p, b.p)
+                    else st_distance_sphere(a.p, b.p)
+                end as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i loop
+
+        -- you must concat an array[array[]] to make dmatrix[][]
+        -- concat the row of distances to the dmatrix
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+end;
+$body$
+    language plpgsql stable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_vidstodmatrix(IN vids integer[], IN pnts geometry[], IN edges text, tol float8 DEFAULT(0.1), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+
+declare
+    i integer;
+    j integer;
+    nn integer;
+    rr record;
+    bbox geometry;
+    t float8[];
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    -- check if the input arrays has any -1 values, maybe this whould be a raise exception
+    if vids @> ARRAY[-1] then
+    raise notice 'Some vids are undefined (-1)!';
+    dmatrix := null;
+    ids := null;
+    return;
+    end if;
+
+    ids := vids;
+
+    -- get the count of nodes
+    nn := array_length(vids,1);
+
+    -- zero out a dummy row
+    for i in 1 .. nn loop
+        t := t || 0.0::float8;
+    end loop;
+
+    -- using the dummy row, zero out the whole matrix
+    for i in 1 .. nn loop
+    dmatrix := dmatrix || ARRAY[t];
+    end loop;
+
+    for i in 1 .. nn-1 loop
+        j := i;
+        -- compute the bbox for the point needed for this row
+        select st_expand(st_collect(pnts[id]), tol) into bbox
+          from (select generate_series as id from generate_series(i, nn)) as foo;
+
+        -- compute kdijkstra() for this row
+        for rr in execute 'select * from pgr_dijkstracost($1, $2, $3, false)'
+                  using 'select id, source, target, cost from ' || edges ||
+                        ' where the_geom && ''' || bbox::text || '''::geometry'::text, vids[i], vids[i+1:nn] loop
+
+            -- TODO need to check that all node were reachable from source
+            -- I think unreachable paths between nodes returns cost=-1.0
+
+            -- populate the matrix with the cost values, remember this is symmetric
+            j := j + 1;
+            -- raise notice 'cost(%,%)=%', i, j, rr.agg_cost;
+            dmatrix[i][j] := rr.agg_cost;
+            dmatrix[j][i] := rr.agg_cost;
+        end loop;
+    end loop;
+
+end;
+$body$
+    language plpgsql stable cost 200;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_vidsToDMatrix(sql TEXT, vids  INTEGER[], dir BOOLEAN, has_rcost BOOLEAN, want_symmetric BOOLEAN)
+RETURNS float8[] AS
+$BODY$
+DECLARE
+directed BOOLEAN;
+has_reverse BOOLEAN;
+edges_sql TEXT;
+dmatrix_row float8[];
+dmatrix float8[];
+cell RECORD;
+unique_vids INTEGER[];
+total BIGINT;
+from_v BIGINT;
+to_v BIGINT;
+BEGIN
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql = sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    unique_vids :=  ARRAY(SELECT DISTINCT UNNEST(vids) ORDER BY 1);
+
+    IF want_symmetric THEN
+        directed = false;
+    ELSE
+        directed = dir;
+    END IF;
+
+    total := array_length(unique_vids, 1);
+
+    -- initializing dmatrix
+    FOR i in 1 .. total LOOP
+        dmatrix_row := dmatrix_row || '+Infinity'::float8;
+    END LOOP;
+    FOR i in 1 .. total LOOP
+    dmatrix := dmatrix || ARRAY[dmatrix_row];
+    dmatrix[i][i] = 0;
+    END LOOP;
+
+    CREATE TEMP TABLE __x___y____temp AS
+        WITH result AS
+            (SELECT unnest(unique_vids) AS vid)
+        SELECT row_number() OVER() AS idx, vid FROM result;
+
+    FOR cell IN SELECT * FROM pgr_dijkstraCostMatrix(sql, unique_vids, directed) LOOP
+        SELECT idx INTO from_v FROM __x___y____temp WHERE vid =  cell.start_vid;
+        SELECT idx INTO to_v FROM __x___y____temp WHERE vid =  cell.end_vid;
+
+        dmatrix[from_v][to_v] = cell.agg_cost;
+        dmatrix[to_v][from_v] = cell.agg_cost;
+    END LOOP;
+
+    DROP TABLE IF EXISTS __x___y____temp;
+    RETURN dmatrix;
+
+    EXCEPTION WHEN others THEN
+       DROP TABLE IF EXISTS __x___y____temp;
+       raise exception '% %', SQLERRM, SQLSTATE;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100;
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated function';
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_dijkstra(sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_dijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN) IS 'pgr_dijkstra(Deprecated signature)';
+
+
+
+
+
+-- OLD SIGNATURE
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(edges_sql text, source BIGINT, distance FLOAT, directed BOOLEAN, has_rcost BOOLEAN)
+  RETURNS SETOF pgr_costresult AS
+  $BODY$
+  DECLARE
+  has_reverse BOOLEAN;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function';
+
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, FALSE);
+
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_reverse) THEN
+             -- the user says it doesn't have reverse cost but its false
+             -- removing from query
+             RAISE NOTICE 'Contradiction found: has_rcost set to false but reverse_cost column found';
+             sql = 'SELECT id, source, target, cost, -1 as reverse_cost FROM (' || edges_sql || ') __q ';
+         ELSE
+             -- the user says it has reverse cost but its false
+             -- can't do anything
+             RAISE EXCEPTION 'has_rcost set to true but reverse_cost not found';
+         END IF;
+      END IF;
+
+      RETURN query SELECT seq - 1 AS seq, node::integer AS id1, edge::integer AS id2, agg_cost AS cost
+                FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maximumcardinalitymatching(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
+
+
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+--INTERNAL FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+
+------------------------
+-- deprecated signatures
+-----------------------
+
+COMMENT ON FUNCTION pgr_astar(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_astar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdAstar( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdAstar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdDijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdDijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_dijkstra(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_dijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_drivingDistance(text,  BIGINT,  FLOAT8,  BOOLEAN,  BOOLEAN)
+    IS 'pgr_drivingDistance(Deprecated signature)';
+
+------------------------
+-- Renamed /deprecated
+-----------------------
+COMMENT ON FUNCTION pgr_apspJohnson(TEXT)
+    IS 'pgr_apspJohnson(Renamed function) use pgr_Johnson instead';
+
+COMMENT ON FUNCTION pgr_apspWarshall(text, boolean, boolean)
+    IS 'pgr_apspWarshall(Renamed function) use pgr_floydWarshall instead';
+
+COMMENT ON FUNCTION pgr_kdijkstraPath( text, INTEGER, INTEGER ARRAY, BOOLEAN, BOOLEAN)
+    IS 'pgr_kdijkstraPath(Renamed function) use pgr_dijkstra instead';
+
+COMMENT ON FUNCTION pgr_kdijkstracost( text, INTEGER, INTEGER array, BOOLEAN, BOOLEAN)
+    IS 'pgr_kDijkstraCost(Renamed function) use pgr_dijkstraCost instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+
+
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+
+
+COMMENT ON FUNCTION pgr_gsoc_vrppdtw( text, INTEGER, INTEGER)
+    IS 'pgr_gsoc_vrppdtw(Renamed function) use pgr_pickDeliverEuclidean instead';
+
+------------------------
+-- Deprecated functions
+-----------------------
+
+COMMENT ON FUNCTION pgr_flipedges(geometry[])
+    IS 'pgr_flipedges(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_texttopoints(text,  integer)
+    IS 'pgr_texttopoints(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstovids(pnts geometry[], edges text, tol float8)
+    IS 'pgr_pointstovids(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    IS 'pgr_pointtoedgenode(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstodmatrix(geometry[], integer)
+    IS 'pgr_pointstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidstodmatrix( integer[],  geometry[],  text, float8)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidsToDMatrix(TEXT,  INTEGER[], BOOLEAN, BOOLEAN, BOOLEAN)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+
+
+
+COMMENT ON FUNCTION pgr_getTableName(IN tab text)
+    IS 'pgr_getTableName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_getColumnName(tab text, col text)
+    IS 'pgr_getColumnName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnInTable(tab text, col text)
+    IS 'pgr_isColumnInTable(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnIndexed(tab text, col text)
+    IS 'pgr_isColumnIndexed(Deprecated function)';
+
+
+COMMENT ON FUNCTION pgr_quote_ident(idname text)
+    IS 'pgr_quote_ident(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_versionless(v1 text, v2 text)
+    IS 'pgr_versionless(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_startPoint(g geometry)
+    IS 'pgr_startPoint(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_endPoint(g geometry)
+    IS 'pgr_endPoint(Deprecated function)';
+
+
diff --git a/tools/sql-update-scripts/pgrouting--2.5.0.sql b/tools/sql-update-scripts/pgrouting--2.5.0.sql
new file mode 100644
index 0000000..16d6eff
--- /dev/null
+++ b/tools/sql-update-scripts/pgrouting--2.5.0.sql
@@ -0,0 +1,6423 @@
+\echo Use "CREATE EXTENSION pgrouting" to load this file. \quit
+
+
+
+
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+--- pgRouting provides geospatial routing functionality.
+--- http://pgrouting.org
+--- copyright
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+---
+---
+--- This is free software; you can redistribute and/or modify it:
+--- the terms of the GNU General Public Licence. See the COPYING file.
+--- the terms of the MIT-X Licence. See the COPYING file.
+---
+--- The following functions have MIT-X licence:
+---     pgr_version()
+---     pgr_tsp(matrix float8[][], startpt integer, endpt integer DEFAULT -1, OUT seq integer, OUT id integer)
+---     _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+---     pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
+---
+---
+--- All other functions are under GNU General Public Licence.
+---
+--- -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+--
+-- WARNING: Any change in this file must be evaluated for compatibility.
+--          Changes cleanly handled by postgis_upgrade.sql are fine,
+--          other changes will require a bump in Major version.
+--          Currently only function replaceble by CREATE OR REPLACE
+--          are cleanly handled.
+--
+-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+
+
+
+--  pgRouting 2.0 types
+
+CREATE TYPE pgr_costResult AS
+(
+    seq integer,
+    id1 integer,
+    id2 integer,
+    cost float8
+);
+
+CREATE TYPE pgr_costResult3 AS
+(
+    seq integer,
+    id1 integer,
+    id2 integer,
+    id3 integer,
+    cost float8
+);
+
+CREATE TYPE pgr_geomResult AS
+(
+    seq integer,
+    id1 integer,
+    id2 integer,
+    geom geometry
+);
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_version()
+RETURNS TABLE(
+        "version" varchar,
+        tag varchar,
+        hash varchar,
+        branch varchar,
+        boost varchar
+    ) AS
+$BODY$
+    SELECT '2.5.0'::varchar AS version,
+        'v2.5.0'::varchar AS tag,
+        ''::varchar AS hash,
+        ''::varchar AS branch,
+        '1.54.0'::varchar AS boost;
+$BODY$
+LANGUAGE sql IMMUTABLE;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getTableName(IN tab text, IN reportErrs int default 0, IN fnName text default '_pgr_getTableName', OUT sname text,OUT tname text)
+  RETURNS RECORD AS
+$$
+DECLARE
+        naming record;
+        i integer;
+        query text;
+        sn text; -- schema name
+        tn text; -- table name
+        ttype text; --table type for future use
+        err boolean;
+        debuglevel text;
+        var_types text[] = ARRAY['BASE TABLE', 'VIEW'];
+BEGIN
+
+    execute 'show client_min_messages' into debuglevel;
+
+
+    perform _pgr_msg( 0, fnName, 'Checking table ' || tab || ' exists');
+    --RAISE DEBUG 'Checking % exists',tab;
+
+    i := strpos(tab,'.');
+    IF (i <> 0) THEN
+        sn := split_part(tab, '.',1);
+        tn := split_part(tab, '.',2);
+    ELSE
+        sn := current_schema;
+        tn := tab;
+    END IF;
+
+
+   SELECT schema_name INTO sname
+   FROM information_schema.schemata WHERE schema_name = sn;
+
+    IF sname IS NOT NULL THEN -- found schema (as is)
+       SELECT table_name, table_type INTO tname, ttype
+       FROM information_schema.tables
+       WHERE
+                table_type = ANY(var_types) and
+                table_schema = sname and
+                table_name = tn ;
+        IF tname is NULL THEN
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  = ANY(var_types) and
+                table_schema = sname and
+                table_name = lower(tn) ORDER BY table_name;
+        END IF;
+    END IF;
+    IF sname is NULL or tname is NULL THEN --schema not found or table not found
+        SELECT schema_name INTO sname
+        FROM information_schema.schemata
+        WHERE schema_name = lower(sn) ;
+
+        IF sname IS NOT NULL THEN -- found schema (with lower caps)
+            SELECT table_name, table_type INTO tname, ttype
+            FROM information_schema.tables
+            WHERE
+                table_type  =  ANY(var_types) and
+                table_schema = sname and
+                table_name= tn ;
+
+           IF tname IS NULL THEN
+                SELECT table_name, table_type INTO tname, ttype
+                FROM information_schema.tables
+                WHERE
+                    table_type  =  ANY(var_types) and
+                    table_schema = sname and
+                    table_name= lower(tn) ;
+           END IF;
+        END IF;
+    END IF;
+   err = (sname IS NULL OR tname IS NULL);
+   perform _pgr_onError(err, reportErrs, fnName, 'Table ' || tab ||' not found',' Check your table name', 'Table '|| tab || ' found');
+
+END;
+$$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(sname text, tname text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(col) into cname;
+
+    IF cname is null  THEN
+    execute 'SELECT column_name FROM information_schema.columns
+          WHERE table_name='||quote_literal(tname)||' and table_schema='||quote_literal(sname)||' and column_name='||quote_literal(lower(col))  into cname;
+    END if;
+
+    err = cname is null;
+
+    perform _pgr_onError(err, reportErrs, fnName,  'Column '|| col ||' not found', ' Check your column name','Column '|| col || ' found');
+    RETURN cname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnName(tab text, col text, IN reportErrs int default 1, IN fnName text default '_pgr_getColumnName')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    naming record;
+    err boolean;
+BEGIN
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+
+    select * into cname from _pgr_getColumnName(sname,tname,col,reportErrs, fnName);
+    RETURN cname;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    select * from _pgr_getColumnName(tab,col,0, '_pgr_isColumnInTable') into cname;
+    return cname is not null;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(sname text, tname text, cname text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    pkey text;
+BEGIN
+    SELECT
+          pg_attribute.attname into pkey
+         --  format_type(pg_attribute.atttypid, pg_attribute.atttypmod)
+          FROM pg_index, pg_class, pg_attribute
+          WHERE
+                  pg_class.oid = _pgr_quote_ident(sname||'.'||tname)::regclass AND
+                  indrelid = pg_class.oid AND
+                  pg_attribute.attrelid = pg_class.oid AND
+                  pg_attribute.attnum = any(pg_index.indkey)
+                  AND indisprimary;
+
+    IF pkey=cname then
+          RETURN TRUE;
+    END IF;
+
+    SELECT a.index_name,
+           b.attname,
+           b.attnum,
+           a.indisunique,
+           a.indisprimary
+      INTO rec
+      FROM ( SELECT a.indrelid,
+                    a.indisunique,
+                    a.indisprimary,
+                    c.relname index_name,
+                    unnest(a.indkey) index_num
+               FROM pg_index a,
+                    pg_class b,
+                    pg_class c,
+                    pg_namespace d
+              WHERE b.relname=tname
+                AND b.relnamespace=d.oid
+                AND d.nspname=sname
+                AND b.oid=a.indrelid
+                AND a.indexrelid=c.oid
+           ) a,
+           pg_attribute b
+     WHERE a.indrelid = b.attrelid
+       AND a.index_num = b.attnum
+       AND b.attname = cname
+  ORDER BY a.index_name,
+           a.index_num;
+
+  RETURN FOUND;
+  EXCEPTION WHEN OTHERS THEN
+    perform _pgr_onError( true, reportErrs, fnName,
+    'Error when checking for the postgres system attributes', SQLERR);
+    RETURN FALSE;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION _pgr_isColumnIndexed(tab text, col text,
+      IN reportErrs int default 1, IN fnName text default '_pgr_isColumnIndexed')
+RETURNS boolean AS
+$BODY$
+DECLARE
+    naming record;
+    rec record;
+    sname text;
+    tname text;
+    cname text;
+    pkey text;
+    value boolean;
+BEGIN
+    SELECT * into naming FROM _pgr_getTableName(tab, 0, fnName);
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    SELECT * into cname from _pgr_getColumnName(sname, tname, col, 0, fnName) ;
+    IF cname IS NULL THEN
+        RETURN FALSE;
+    END IF;
+    select * into value  from _pgr_isColumnIndexed(sname, tname, cname, reportErrs, fnName);
+    return value;
+END
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+create or replace function _pgr_quote_ident(idname text)
+    returns text as
+$body$
+declare
+    t text[];
+    pgver text;
+
+begin
+    pgver := regexp_replace(version(), E'^PostgreSQL ([^ ]+)[ ,].*$', E'\\1');
+
+    if _pgr_versionless(pgver, '9.2') then
+        select into t array_agg(quote_ident(term)) from
+            (select nullif(unnest, '') as term
+               from unnest(string_to_array(idname, '.'))) as foo;
+    else
+        select into t array_agg(quote_ident(term)) from
+            (select unnest(string_to_array(idname, '.', '')) as term) as foo;
+    end if;
+    return array_to_string(t, '.');
+end;
+$body$
+language plpgsql immutable;
+
+
+CREATE OR REPLACE FUNCTION _pgr_versionless(v1 text, v2 text)
+  RETURNS boolean AS
+$BODY$
+
+
+declare
+    v1a text[];
+    v2a text[];
+    nv1 integer;
+    nv2 integer;
+    ne1 integer;
+    ne2 integer;
+
+begin
+    -- separate components into an array, like:
+    -- '2.1.0-beta3dev'  =>  {2,1,0,beta3dev}
+    v1a := regexp_matches(v1, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+    v2a := regexp_matches(v2, E'^(\\d+)(?:[\\.](\\d+))?(?:[\\.](\\d+))?[-+\\.]?(.*)$');
+
+    -- convert modifiers to numbers for comparison
+    -- we do not delineate between alpha1, alpha2, alpha3, etc
+    ne1 := case when v1a[4] is null or v1a[4]='' then 5
+                when v1a[4] ilike 'rc%' then 4
+                when v1a[4] ilike 'beta%' then 3
+                when v1a[4] ilike 'alpha%' then 2
+                when v1a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    ne2 := case when v2a[4] is null or v2a[4]='' then 5
+                when v2a[4] ilike 'rc%' then 4
+                when v2a[4] ilike 'beta%' then 3
+                when v2a[4] ilike 'alpha%' then 2
+                when v2a[4] ilike 'dev%' then 1
+                else 0 end;
+
+    nv1 := v1a[1]::integer * 10000 +
+           coalesce(v1a[2], '0')::integer * 1000 +
+           coalesce(v1a[3], '0')::integer *  100 + ne1;
+    nv2 := v2a[1]::integer * 10000 +
+           coalesce(v2a[2], '0')::integer * 1000 +
+           coalesce(v2a[3], '0')::integer *  100 + ne2;
+
+    --raise notice 'nv1: %, nv2: %, ne1: %, ne2: %', nv1, nv2, ne1, ne2;
+
+    return nv1 < nv2;
+end;
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+create or replace function _pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_startpoint(st_geometryn(g,1));
+    else
+        return st_startpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function _pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+declare
+
+begin
+    if geometrytype(g) ~ '^MULTI' then
+        return st_endpoint(st_geometryn(g,1));
+    else
+        return st_endpoint(g);
+    end if;
+end;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_parameter_check(fn text, sql text, big boolean default false)
+  RETURNS bool AS
+  $BODY$
+
+  DECLARE
+  rec record;
+  rec1 record;
+  has_rcost boolean;
+  safesql text;
+  BEGIN
+    IF (big) THEN
+       RAISE EXCEPTION 'This function is for old style functions';
+    END IF;
+
+    -- checking query is executable
+    BEGIN
+      safesql =  'select * from ('||sql||' ) AS __a__ limit 1';
+      execute safesql into rec;
+      EXCEPTION
+        WHEN OTHERS THEN
+            RAISE EXCEPTION 'Could not execute query please verify syntax of: '
+              USING HINT = sql;
+    END;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('dijkstra','astar') THEN
+        BEGIN
+          execute 'select id,source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: id, source, target, cost';
+        END;
+        execute 'select pg_typeof(id)::text as id_type, pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.id_type in ('integer'::text))
+              AND (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Error, columns ''source'', ''target'' must be of type int4, ''cost'' must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    IF fn IN ('astar') THEN
+        BEGIN
+          execute 'select x1,y1,x2,y2  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING ERRCODE = 'XX000',
+                   HINT = 'Please veryfy the column names: x1,y1, x2,y2';
+        END;
+        execute 'select pg_typeof(x1)::text as x1_type, pg_typeof(y1)::text as y1_type, pg_typeof(x2)::text as x2_type, pg_typeof(y2)::text as y2_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.x1_type = 'double precision'::text)
+              AND (rec.y1_type = 'double precision'::text)
+              AND (rec.x2_type = 'double precision'::text)
+              AND (rec.y2_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Columns: x1, y1, x2, y2 must be of type float8'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    -- checking the fixed columns and data types of the integers
+    IF fn IN ('johnson') THEN
+        BEGIN
+          execute 'select source,target,cost  from ('||safesql||') as __b__' into rec;
+          EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                  USING HINT = 'Please veryfy the column names: id, source, target, cost',
+                         ERRCODE = 'XX000';
+        END;
+
+        execute 'select pg_typeof(source)::text as source_type, pg_typeof(target)::text as target_type, pg_typeof(cost)::text as cost_type'
+            || ' from ('||safesql||') AS __b__ ' into rec;
+        -- Version 2.0.0 is more restrictive
+        IF NOT(   (rec.source_type in ('integer'::text))
+              AND (rec.target_type in ('integer'::text))
+              AND (rec.cost_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION 'Support for source,target columns only of type: integer. Support for Cost: double precision'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+
+    -- Checking the data types of the optional reverse_cost";
+    has_rcost := false;
+    IF fn IN ('johnson','dijkstra','astar') THEN
+      BEGIN
+        execute 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||safesql||' ) AS __b__ limit 1 ' into rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+            return has_rcost;
+      END;
+      if (has_rcost) then
+        IF (big) then
+           IF  not (rec1.rev_type in ('bigint'::text, 'integer'::text, 'smallint'::text, 'double precision'::text, 'real'::text)) then
+             RAISE EXCEPTION 'Illegar type in optional parameter reverse_cost.'
+             USING ERRCODE = 'XX000';
+           END IF;
+        ELSE -- Version 2.0.0 is more restrictive
+           IF (rec1.rev_type != 'double precision') then
+             RAISE EXCEPTION 'Illegal type in optional parameter reverse_cost, must be of type float8'
+             USING ERRCODE = 'XX000';
+           END IF;
+        END IF;
+      end if;
+      return true;
+    END IF;
+    -- just for keeps
+    return true;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 1;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_onError(
+  IN errCond boolean,  -- true there is an error
+  IN reportErrs int,   -- 0, 1 or 2
+  IN fnName text,      -- function name that generates the error
+  IN msgerr text,      -- error message
+  IN hinto text default 'No hint', -- hint help
+  IN msgok text default 'OK')      -- message if everything is ok
+  RETURNS void AS
+$BODY$
+BEGIN
+  if errCond=true then
+     if reportErrs=0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+     else
+       if reportErrs = 2 then
+         raise notice '----> PGR ERROR in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+         raise raise_exception;
+       else
+         raise notice '----> PGR NOTICE in %: %',fnName,msgerr USING HINT = '  ---->'|| hinto;
+       end if;
+     end if;
+  else
+       raise debug 'PGR ----> %: %',fnName,msgok;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_msg(IN msgKind int, IN fnName text, IN msg text default '---->OK')
+  RETURNS void AS
+$BODY$
+BEGIN
+  if msgKind = 0 then
+       raise debug '----> PGR DEBUG in %: %',fnName,msg;
+  else
+       raise notice '----> PGR NOTICE in %: %',fnName,msg;
+  end if;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(sname text, tname text, cname text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    EXECUTE 'select data_type  from information_schema.columns '
+            || 'where table_name = '||quote_literal(tname)
+                 || ' and table_schema=' || quote_literal(sname)
+                 || ' and column_name='||quote_literal(cname)
+       into ctype;
+    err = ctype is null;
+    perform _pgr_onError(err, reportErrs, fnName,
+            'Type of Column '|| cname ||' not found',
+            'Check your column name',
+            'OK: Type of Column '|| cname || ' is ' || ctype);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_getColumnType(tab text, col text,
+     IN reportErrs int default 0, IN fnName text default '_pgr_getColumnType')
+RETURNS text AS
+$BODY$
+DECLARE
+    sname text;
+    tname text;
+    cname text;
+    ctype text;
+    naming record;
+    err boolean;
+BEGIN
+
+    select * into naming from _pgr_getTableName(tab,reportErrs, fnName) ;
+    sname=naming.sname;
+    tname=naming.tname;
+    select * into cname from _pgr_getColumnName(tab,col,reportErrs, fnName) ;
+    select * into ctype from _pgr_getColumnType(sname,tname,cname,reportErrs, fnName);
+    RETURN ctype;
+END;
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_get_statement(o_sql text)
+RETURNS text AS
+$BODY$
+DECLARE
+sql TEXT;
+BEGIN
+    EXECUTE 'SELECT statement FROM pg_prepared_statements WHERE name ='  || quote_literal(o_sql) || ' limit 1 ' INTO sql;
+    IF (sql IS NULL) THEN
+      RETURN   o_sql;
+    ELSE
+      RETURN  regexp_replace(sql, '(.)* as ', '', 'i');
+    END IF;
+END
+$BODY$
+LANGUAGE plpgsql STABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_checkVertTab(vertname text, columnsArr  text[],
+    IN reportErrs int default 1, IN fnName text default '_pgr_checkVertTab',
+    OUT sname text,OUT vname text)
+RETURNS record AS
+$BODY$
+DECLARE
+    cname text;
+    colname text;
+    naming record;
+    debuglevel text;
+    err  boolean;
+    msgKind int;
+
+BEGIN
+    msgKind = 0; -- debug_
+    execute 'show client_min_messages' into debuglevel;
+
+    perform _pgr_msg(msgKind, fnName, 'Checking table ' || vertname || ' exists');
+       select * from _pgr_getTableName(vertname, 0, fnName) into naming;
+       sname=naming.sname;
+       vname=naming.tname;
+       err = sname is NULL or vname is NULL;
+    perform _pgr_onError( err, 2, fnName,
+          'Vertex Table: ' || vertname || ' not found',
+          'Please create ' || vertname || ' using  _pgr_createTopology() or pgr_createVerticesTable()',
+          'Vertex Table: ' || vertname || ' found');
+
+
+    perform _pgr_msg(msgKind, fnName, 'Checking columns of ' || vertname);
+      FOREACH cname IN ARRAY columnsArr
+      loop
+         select _pgr_getcolumnName(vertname, cname, 0, fnName) into colname;
+         if colname is null then
+           perform _pgr_msg(msgKind, fnName, 'Adding column ' || cname || ' in ' || vertname);
+           set client_min_messages  to warning;
+                execute 'ALTER TABLE '||_pgr_quote_ident(vertname)||' ADD COLUMN '||cname|| ' integer';
+           execute 'set client_min_messages  to '|| debuglevel;
+           perform _pgr_msg(msgKind, fnName);
+         end if;
+      end loop;
+    perform _pgr_msg(msgKind, fnName, 'Finished checking columns of ' || vertname);
+
+    perform _pgr_createIndex(vertname , 'id' , 'btree', reportErrs, fnName);
+ END
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(
+    sname text, tname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    debuglevel text;
+    naming record;
+    tabname text;
+    query text;
+    msgKind int;
+BEGIN
+  msgKind = 0; -- debug_
+
+  execute 'show client_min_messages' into debuglevel;
+  tabname=_pgr_quote_ident(sname||'.'||tname);
+  perform _pgr_msg(msgKind, fnName, 'Checking ' || colname || ' column in ' || tabname || ' is indexed');
+    IF (_pgr_isColumnIndexed(sname,tname,colname, 0, fnName)) then
+       perform _pgr_msg(msgKind, fnName);
+    else
+      if indext = 'gist' then
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using gist('||quote_ident(colname)||')';
+      else
+        query = 'create  index '||_pgr_quote_ident(tname||'_'||colname||'_idx')||'
+                         on '||tabname||' using btree('||quote_ident(colname)||')';
+      end if;
+      perform _pgr_msg(msgKind, fnName, 'Adding index ' || tabname || '_' ||  colname || '_idx');
+      perform _pgr_msg(msgKind, fnName, ' Using ' ||  query);
+      set client_min_messages  to warning;
+      BEGIN
+        execute query;
+        EXCEPTION WHEN others THEN
+          perform _pgr_onError( true, reportErrs, fnName,
+            'Could not create index on:' || colname, SQLERRM);
+      END;
+      execute 'set client_min_messages  to '|| debuglevel;
+      perform _pgr_msg(msgKind, fnName);
+    END IF;
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION _pgr_createIndex(tabname text, colname text, indext text,
+    IN reportErrs int default 1, IN fnName text default '_pgr_createIndex')
+RETURNS void AS
+$BODY$
+DECLARE
+    naming record;
+    sname text;
+    tname text;
+
+BEGIN
+    select * from _pgr_getTableName(tabname, 2, fnName)  into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    execute _pgr_createIndex(sname, tname, colname, indext, reportErrs, fnName);
+END;
+
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pointToId(
+    point geometry,
+    tolerance double precision,
+    vertname text,
+    srid integer)
+
+  RETURNS bigint AS
+$BODY$
+DECLARE
+    rec record;
+    pid bigint;
+
+BEGIN
+    EXECUTE 'SELECT ST_Distance(
+        the_geom,
+        ST_GeomFromText(ST_AsText('
+                || quote_literal(point::text)
+                || '),'
+            || srid ||')) AS d, id, the_geom
+    FROM '||_pgr_quote_ident(vertname)||'
+    WHERE ST_DWithin(
+        the_geom,
+        ST_GeomFromText(
+            ST_AsText(' || quote_literal(point::text) ||'),
+            ' || srid || '),' || tolerance||')
+    ORDER BY d
+    LIMIT 1' INTO rec ;
+    IF rec.id IS NOT NULL THEN
+        pid := rec.id;
+    ELSE
+        execute 'INSERT INTO '||_pgr_quote_ident(vertname)||' (the_geom) VALUES ('||quote_literal(point::text)||')';
+        pid := lastval();
+END IF;
+
+RETURN pid;
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'many_to_many_dijkstra'
+LANGUAGE c VOLATILE;
+
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3 signature 1 to 1
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer, OUT path_seq integer,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost float,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, false, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstra(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstra(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstra(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstra(Many to Many)';
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- COMMENTS
+
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(One to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, BIGINT, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(One to Many)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, BIGINT, BOOLEAN) IS 'pgr_dijkstraCost(Many to One)';
+COMMENT ON FUNCTION  pgr_dijkstraCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN) IS 'pgr_dijkstraCost(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraVia(
+    edges_sql TEXT,
+    via_vertices ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    strict BOOLEAN DEFAULT FALSE,
+    U_turn_on_edge BOOLEAN DEFAULT TRUE,
+
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'dijkstraVia'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_johnson(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'johnson'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_floydWarshall(edges_sql TEXT, directed BOOLEAN DEFAULT TRUE,
+  OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'floydWarshall'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+    normal BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'astarManyToMany'
+LANGUAGE c VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, normal:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_astar(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_astar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(One to Many)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to One)';
+COMMENT ON FUNCTION pgr_astar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_astar(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true, normal:=false) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+CREATE OR REPLACE FUNCTION pgr_aStarCost(
+    edges_sql TEXT, -- XY edges sql
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_aStar(_pgr_get_statement($1), $2::BIGINT[],  $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a
+    ORDER BY  a.start_vid, a.end_vid;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(One to Many)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to One)';
+COMMENT ON FUNCTION pgr_aStarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, FLOAT, FLOAT) IS 'pgr_aStarCost(Many to Many)';
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid ANYARRAY,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+    equicost BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '$libdir/libpgrouting-2.5', 'many_withPointsDD'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsDD(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    distance FLOAT,
+
+    directed BOOLEAN DEFAULT TRUE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_withPointsDD($1, $2, ARRAY[$3]::BIGINT[], $4, $5, $6, $7, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vids anyarray,
+    distance FLOAT,
+    directed BOOLEAN DEFAULT TRUE,
+    equicost BOOLEAN DEFAULT FALSE,
+    OUT seq integer,
+    OUT from_v  bigint,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+     '$libdir/libpgrouting-2.5', 'driving_many_to_dist'
+ LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(
+    edges_sql text,
+    start_vid bigint,
+    distance FLOAT8,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq integer,
+    OUT node bigint,
+    OUT edge bigint,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false) a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer, directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'kshortest_path'
+    LANGUAGE c STABLE STRICT;
+
+-- V2 the graph is directed and there are no heap paths
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid integer, end_vid integer, k integer, has_rcost boolean)
+  RETURNS SETOF pgr_costresult3 AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated signature of pgr_ksp';
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql::text, false);
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_rcost) THEN
+           -- user says that it has reverse_cost but its not true
+           RAISE EXCEPTION 'has_reverse_cost set to true but reverse_cost not found';
+         ELSE
+           -- user says that it does not have reverse_cost but it does have it
+           -- to ignore we remove reverse_cost from the query
+           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+         END IF;
+      END IF;
+
+      RETURN query SELECT ((row_number() over()) -1)::integer  AS seq,  (path_id - 1)::integer AS id1, node::integer AS id2, edge::integer AS id3, cost
+            FROM _pgr_ksp(sql::text, start_vid, end_vid, k, TRUE, FALSE) WHERE path_id <= k;
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_ksp(edges_sql text, start_vid bigint, end_vid bigint, k integer,
+  directed boolean default true, heap_paths boolean default false,
+  --directed boolean, heap_paths boolean,
+  OUT seq integer, OUT path_id integer, OUT path_seq integer, OUT node bigint, OUT edge bigint, OUT cost float, OUT agg_cost float)
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  BEGIN
+         RETURN query SELECT *
+                FROM _pgr_ksp(edges_sql::text, start_vid, end_vid, k, directed, heap_paths);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsKSP(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    k INTEGER,
+
+    directed BOOLEAN DEFAULT TRUE,
+    heap_paths BOOLEAN DEFAULT FALSE,
+    driving_side CHAR DEFAULT 'b',
+    details BOOLEAN DEFAULT FALSE,
+
+    OUT seq INTEGER, OUT path_id INTEGER, OUT path_seq INTEGER,
+    OUT node BIGINT, OUT edge BIGINT,
+    OUT cost FLOAT, OUT agg_cost FLOAT)
+  RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'withPoints_ksp'
+    LANGUAGE c STABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_unnest_matrix(matrix float8[][], OUT start_vid integer, OUT end_vid integer, out agg_cost float8)
+RETURNS SETOF record AS
+
+$body$
+DECLARE
+
+m float8[];
+
+BEGIN
+    start_vid = 1;
+    foreach m slice 1 in  ARRAY matrix
+    LOOP
+        end_vid = 1;
+        foreach agg_cost in  ARRAY m
+        LOOP
+            RETURN next;
+            end_vid = end_vid + 1;
+        END LOOP;
+        start_vid = start_vid + 1;
+    END LOOP;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_tsp(
+    matrix float8[][],
+    startpt INTEGER,
+    endpt INTEGER DEFAULT -1,
+    OUT seq INTEGER,
+    OUT id INTEGER)
+RETURNS SETOF record AS
+$body$
+DECLARE
+table_sql TEXT;
+debuglevel TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature pgr_tsp(float8[][], integer, integer)';
+
+    CREATE TEMP TABLE ___tmp2 ON COMMIT DROP AS SELECT * FROM _pgr_unnest_matrix( matrix );
+
+
+    startpt := startpt + 1;
+    IF endpt = -1 THEN endpt := startpt;
+    END IF;
+
+
+    RETURN QUERY
+    WITH
+    result AS (
+        SELECT * FROM pgr_TSP(
+        $$SELECT * FROM ___tmp2 $$,
+        startpt, endpt,
+
+        tries_per_temperature :=  500 :: INTEGER,
+        max_changes_per_temperature := 30 :: INTEGER,
+        max_consecutive_non_changes := 500 :: INTEGER,
+
+        randomize:=false)
+    )
+    SELECT (row_number() over(ORDER BY result.seq) - 1)::INTEGER AS seq, (result.node - 1)::INTEGER AS id
+
+    FROM result WHERE NOT(result.node = startpt AND result.seq != 1);
+
+    DROP TABLE ___tmp2;
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+
+
+
+CREATE OR  REPLACE FUNCTION pgr_tsp(sql text, start_id INTEGER, end_id INTEGER default (-1))
+returns setof pgr_costResult as
+$body$
+DECLARE
+table_sql TEXT;
+rec RECORD;
+debuglevel TEXT;
+n BIGINT;
+
+BEGIN
+    RAISE NOTICE 'Deprecated Signature pgr_tsp(sql, integer, integer)';
+
+    table_sql := 'CREATE TEMP TABLE ___tmp ON COMMIT DROP AS ' || sql ;
+    EXECUTE table_sql;
+
+
+    BEGIN
+        EXECUTE 'SELECT id, x, y FROM ___tmp' INTO rec;
+        EXCEPTION
+            WHEN OTHERS THEN
+                RAISE EXCEPTION 'An expected column was not found in the query'
+                USING ERRCODE = 'XX000',
+                HINT = 'Please verify the column names: id, x, y';
+    END;
+
+    EXECUTE
+    'SELECT
+        pg_typeof(id)::text as id_type,
+        pg_typeof(x)::text as x_type,
+        pg_typeof(y)::text as y_type FROM ___tmp' INTO rec;
+
+
+    IF NOT((rec.id_type in ('integer'::text))
+        AND (rec.x_type = 'double precision'::text)
+        AND (rec.y_type = 'double precision'::text)) THEN
+            RAISE EXCEPTION '''id'' must be of type INTEGER, ''x'' ad ''y'' must be of type FLOAT'
+            USING ERRCODE = 'XX000';
+    END IF;
+
+    EXECUTE 'SELECT count(*) AS n FROM (' || sql || ') AS __a__' INTO rec;
+    n = rec.n;
+
+    RETURN query
+        SELECT (seq - 1)::INTEGER AS seq, node::INTEGER AS id1, node::INTEGER AS id2, cost
+        FROM pgr_eucledianTSP(sql, start_id, end_id,
+
+            tries_per_temperature :=  500 * n :: INTEGER,
+            max_changes_per_temperature := 60 * n :: INTEGER,
+            max_consecutive_non_changes := 500 * n :: INTEGER,
+
+            randomize := false) WHERE seq <= n;
+    DROP TABLE ___tmp;
+
+END;
+$body$
+language plpgsql volatile cost 500 ROWS 50;
+
+
+
+
+create or replace function _pgr_makeDistanceMatrix(sqlin text, OUT dmatrix double precision[], OUT ids integer[])
+  as
+$body$
+declare
+    sql text;
+    r record;
+
+begin
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    sql := 'with nodes as (' || sqlin || ')
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j, st_distance(st_makepoint(a.x, a.y), st_makepoint(b.x, b.y)) as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i';
+
+    for r in execute sql loop
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+
+end;
+$body$
+language plpgsql stable cost 10;
+
+
+CREATE OR REPLACE FUNCTION pgr_TSP(
+    matrix_row_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq INTEGER,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '$libdir/libpgrouting-2.5', 'newTSP'
+LANGUAGE c VOLATILE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_eucledianTSP(
+    coordinates_sql TEXT,
+    start_id BIGINT DEFAULT 0,
+    end_id BIGINT DEFAULT 0,
+
+    max_processing_time FLOAT DEFAULT '+infinity'::FLOAT,
+
+    tries_per_temperature INTEGER DEFAULT 500,
+    max_changes_per_temperature INTEGER DEFAULT 60,
+    max_consecutive_non_changes INTEGER DEFAULT 100,
+
+    initial_temperature FLOAT DEFAULT 100,
+    final_temperature FLOAT DEFAULT 0.1,
+    cooling_factor FLOAT DEFAULT 0.9,
+
+    randomize BOOLEAN DEFAULT true,
+
+    OUT seq integer,
+    OUT node BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF record
+AS '$libdir/libpgrouting-2.5', 'eucledianTSP'
+LANGUAGE c VOLATILE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_alphashape(sql text, alpha float8 DEFAULT 0, OUT x float8, OUT y float8)
+    RETURNS SETOF record
+    AS '$libdir/libpgrouting-2.5', 'alphashape'
+    LANGUAGE c VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_pointsAsPolygon(query varchar, alpha float8 DEFAULT 0)
+	RETURNS geometry AS
+	$$
+	DECLARE
+		r record;
+		geoms geometry[];
+		vertex_result record;
+		i int;
+		n int;
+		spos int;
+		q text;
+		x float8[];
+		y float8[];
+
+	BEGIN
+		geoms := array[]::geometry[];
+		i := 1;
+
+		FOR vertex_result IN EXECUTE 'SELECT x, y FROM pgr_alphashape('''|| query || ''', ' || alpha || ')'
+		LOOP
+			x[i] = vertex_result.x;
+			y[i] = vertex_result.y;
+			i := i+1;
+		END LOOP;
+
+		n := i;
+		IF n = 1 THEN
+			RAISE NOTICE 'n = 1';
+			RETURN NULL;
+		END IF;
+
+		spos := 1;
+		q := 'SELECT ST_GeometryFromText(''POLYGON((';
+		FOR i IN 1..n LOOP
+			IF x[i] IS NULL AND y[i] IS NULL THEN
+				q := q || ', ' || x[spos] || ' ' || y[spos] || '))'',0) AS geom;';
+				EXECUTE q INTO r;
+				geoms := geoms || array[r.geom];
+				q := '';
+			ELSE
+				IF q = '' THEN
+					spos := i;
+					q := 'SELECT ST_GeometryFromText(''POLYGON((';
+				END IF;
+				IF i = spos THEN
+					q := q || x[spos] || ' ' || y[spos];
+				ELSE
+					q := q || ', ' || x[i] || ' ' || y[i];
+				END IF;
+			END IF;
+		END LOOP;
+
+		RETURN ST_BuildArea(ST_Collect(geoms));
+	END;
+	$$
+	LANGUAGE 'plpgsql' VOLATILE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    only_cost BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+    '$libdir/libpgrouting-2.5', 'bd_astar'
+LANGUAGE C VOLATILE;
+
+
+
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed:=true, only_cost:=false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- V3
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    BOOLEAN,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, false);
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstar(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstar(Many to Many)';
+
+
+
+-- one to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- one to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to one
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- many to many
+CREATE OR REPLACE FUNCTION pgr_bdAstarCost(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], $4, $5, $6::FLOAT, $7::FLOAT, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- COMMENTS
+
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, BIGINT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(One to Many)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, BIGINT, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to One)';
+COMMENT ON FUNCTION pgr_bdAstarCost(TEXT, ANYARRAY, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCost(Many to Many)';
+
+
+-- bdDijkstra MANY TO MANY
+CREATE OR REPLACE FUNCTION _pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    only_cost BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'bdDijkstra'
+LANGUAGE c VOLATILE;
+
+
+
+-- ONE TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], true, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- TODO directed BOOLEAN DEFAULT TRUE,  on version 3
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vid BIGINT,
+    directed BOOLEAN,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vid BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vid BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, false) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT *
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, false) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+-- ONE TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    BIGINT,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+-- MANY TO ONE
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4, true) as a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- MANY TO MANY
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCost(
+    edges_sql TEXT,
+    start_vids ANYARRAY,
+    end_vids ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], directed, true) as a;
+$BODY$
+LANGUAGE SQL VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_vid integer,
+    target_vid integer,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '$libdir/libpgrouting-2.5', 'turn_restrict_shortest_path_vertex'
+LANGUAGE 'c' IMMUTABLE;
+
+CREATE OR REPLACE FUNCTION _pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult
+AS '$libdir/libpgrouting-2.5', 'turn_restrict_shortest_path_edge'
+LANGUAGE 'c' IMMUTABLE;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || edges_sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        -- no restrictions then its a dijkstra
+        RETURN query SELECT a.seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_dijkstra(new_sql, start_vid, end_vid, directed) a;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, start_vid, end_vid, directed, has_rcost, restrictions_sql);
+    RETURN;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_trspViaVertices(
+    edges_sql TEXT,
+    via_vids ANYARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN,
+    restrictions_sql TEXT DEFAULT NULL)
+RETURNS SETOF pgr_costResult3 AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+
+    new_sql := edges_sql;
+    IF (has_reverse != has_rcost) THEN  -- user contradiction
+        IF (has_reverse) THEN  -- it has reverse_cost but user don't want it.
+            new_sql :=
+               'WITH old_sql AS (' || edges_sql || ')' ||
+                '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (restrictions_sql IS NULL OR length(restrictions_sql) = 0) THEN
+        RETURN query SELECT (row_number() over())::INTEGER, path_id:: INTEGER, node::INTEGER,
+            (CASE WHEN edge = -2 THEN -1 ELSE edge END)::INTEGER, cost
+            FROM pgr_dijkstraVia(new_sql, via_vids, directed, strict:=true) WHERE edge != -1;
+        RETURN;
+    END IF;
+
+
+    -- make the call without contradiction from part of the user
+    RETURN query SELECT * FROM _pgr_trspViaVertices(new_sql, via_vids::INTEGER[], directed, has_rcost, restrictions_sql);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_trsp(
+    sql text,
+    source_eid integer,
+    source_pos float8,
+    target_eid integer,
+    target_pos float8,
+    directed boolean,
+    has_reverse_cost boolean,
+    turn_restrict_sql text DEFAULT null)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+trsp_sql TEXT;
+BEGIN
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+
+    new_sql := sql;
+    IF (has_reverse != has_reverse_cost) THEN  -- user contradiction
+        IF (has_reverse) THEN
+            -- it has reverse_cost but user don't want it.
+            -- to be on the safe side because it reads the data wrong, sending only postitive values
+            new_sql :=
+            'WITH old_sql AS (' || sql || ')' ||
+            '   SELECT id, source, target, cost FROM old_sql';
+        ELSE -- it does not have reverse_cost but user wants it
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE := 'XX000';
+        END IF;
+    END IF;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) THEN
+        -- no restrictions then its a with points
+        RETURN query SELECT a.seq-1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+        FROM pgr_withpoints(new_sql,
+            '(SELECT 1 as pid, ' || source_eid || 'as edge_id, ' || source_pos || '::float8 as fraction)'
+            || ' UNION '
+            || '(SELECT 2, ' || target_eid || ', ' || target_pos || ')' ::TEXT,
+            -1, -2, directed) a;
+        -- WHERE node != -2;
+        RETURN;
+    END IF;
+
+    RETURN query SELECT * FROM _pgr_trsp(new_sql, source_eid, source_pos, target_eid, target_pos, directed, has_reverse_cost, turn_restrict_sql);
+    RETURN;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+create or replace function _pgr_trspViaVertices(sql text, vids integer[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    lrra boolean := false;
+    seq integer := 0;
+    seq2 integer := 0;
+
+begin
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(vids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from _pgr_trsp(sql, vids[i], vids[i+1], directed, has_rcost, turn_restrict_sql) as a loop
+            -- filter out the individual path ends except the last one
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --raise notice 'rr: %', rr;
+            if rr.id3 = -1 then
+                lrr := rr;
+                lrra := true;
+            else
+                seq := seq + 1;
+                rr.seq := seq;
+                return next rr;
+            end if;
+        end loop;
+    end loop;
+
+    if lrra then
+        seq := seq + 1;
+        lrr.seq := seq;
+        return next lrr;
+    end if;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+
+----------------------------------------------------------------------------------------------------------
+
+create or replace function pgr_trspViaEdges(sql text, eids integer[], pcts float8[], directed boolean, has_rcost boolean, turn_restrict_sql text DEFAULT NULL::text)
+    RETURNS SETOF pgr_costresult3 AS
+$body$
+
+declare
+    i integer;
+    rr pgr_costresult3;
+    lrr pgr_costresult3;
+    first boolean := true;
+    seq integer := 0;
+    seq2 integer :=0;
+    has_reverse BOOLEAN;
+    point_is_vertex BOOLEAN := false;
+    edges_sql TEXT;
+    f float;
+
+begin
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql := sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (NOT has_rcost) THEN
+            -- user does not want to use reverse cost column
+            edges_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    FOREACH f IN ARRAY pcts LOOP
+        IF f in (0,1) THEN
+           point_is_vertex := true;
+        END IF;
+    END LOOP;
+
+    IF (turn_restrict_sql IS NULL OR length(turn_restrict_sql) = 0) AND NOT point_is_vertex THEN
+        -- no restrictions then its a _pgr_withPointsVia
+        RETURN query SELECT a.seq::INTEGER, path_id::INTEGER AS id1, node::INTEGER AS id2, edge::INTEGER AS id3, cost
+        FROM _pgr_withPointsVia(edges_sql, eids, pcts, directed) a;
+        RETURN;
+    END IF;
+
+    if array_length(eids, 1) != array_length(pcts, 1) then
+        raise exception 'The length of arrays eids and pcts must be the same!';
+    end if;
+
+    -- loop through each pair of vids and compute the path
+    for i in 1 .. array_length(eids, 1)-1 loop
+        seq2 := seq2 + 1;
+        for rr in select a.seq, seq2 as id1, a.id1 as id2, a.id2 as id3, a.cost
+                    from pgr_trsp(edges_sql,
+                                  eids[i], pcts[i],
+                                  eids[i+1], pcts[i+1],
+                                  directed,
+                                  has_rcost,
+                                  turn_restrict_sql) as a loop
+            -- combine intermediate via costs when cost is split across
+            -- two parts of a segment because it stops it and
+            -- restarts the next leg also on it
+            -- we might not want to do this so we can know where the via points are in the path result
+            -- but this needs more thought
+            --
+            -- there are multiple condition we have to deal with
+            -- between the end of one leg and start of the next
+            -- 1. same vertex_id. edge_id=-1; drop record with edge_id=-1
+            -- means: path ends on vertex
+            -- NOTICE:  rr: (19,1,44570022,-1,0)
+            -- NOTICE:  rr: (0,2,44570022,1768045,2.89691196717448)
+            -- 2. vertex_id=-1; sum cost components
+            -- means: path end/starts with the segment
+            -- NOTICE:  rr: (11,2,44569628,1775909,9.32885885148532)
+            -- NOTICE:  rr: (0,3,-1,1775909,0.771386350984395)
+
+            --raise notice 'rr: %', rr;
+            if first then
+                lrr := rr;
+                first := false;
+            else
+                if lrr.id3 = -1 then
+                    lrr := rr;
+                elsif lrr.id3 = rr.id3 then
+                    lrr.cost := lrr.cost + rr.cost;
+                    if rr.id2 = -1 then
+                        rr.id2 := lrr.id2;
+                    end if;
+                else
+                    seq := seq + 1;
+                    lrr.seq := seq;
+                    return next lrr;
+                    lrr := rr;
+                end if;
+            end if;
+        end loop;
+    end loop;
+
+    seq := seq + 1;
+    lrr.seq := seq;
+    return next lrr;
+    return;
+end;
+$body$
+    language plpgsql stable
+    cost 100
+    rows 1000;
+
+
+
+----------------------------
+--    MANY TO MANY
+----------------------------
+
+
+CREATE OR REPLACE FUNCTION _pgr_maxflow(
+    edges_sql TEXT,
+    sources ANYARRAY,
+    targets ANYARRAY,
+    algorithm INTEGER DEFAULT 1,
+    only_flow BOOLEAN DEFAULT false,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'max_flow_many_to_many'
+    LANGUAGE c VOLATILE;
+
+
+
+
+------------------------------------
+-- 3 pgr_edmondsKarp
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_edmondsKarp(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 3);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+------------------------------------
+-- 2 boykov_kolmogorov
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_boykovKolmogorov(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 2);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+------------------------------------
+-- 1 pgr_pushRelabel
+------------------------------------
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    BIGINT,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_pushRelabel(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+        SELECT *
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], 1);
+  $BODY$
+  LANGUAGE sql VOLATILE;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT flow
+        FROM _pgr_maxflow(_pgr_get_statement($1), $2::BIGINT[], $3::BIGINT[], algorithm := 1, only_flow := true);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices BIGINT,
+    sink_vertices ANYARRAY
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, ARRAY[$2]::BIGINT[], $3::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_maxFlow(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices BIGINT
+    )
+  RETURNS BIGINT AS
+  $BODY$
+        SELECT *
+        FROM pgr_maxflow($1, $2::BIGINT[], ARRAY[$3]::BIGINT[]);
+  $BODY$
+  LANGUAGE SQL VOLATILE;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxCardinalityMatch(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'edge_disjoint_paths_many_to_many'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    bigint,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    bigint,
+    ANYARRAY,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.end_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), ARRAY[$2]::BIGINT[], $3::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_edgeDisjointPaths(
+    TEXT,
+    ANYARRAY,
+    BIGINT,
+    IN directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+    SELECT a.seq, a.path_id, a.path_seq, a.start_vid, a.node, a.edge, a.cost, a.agg_cost
+    FROM pgr_edgeDisjointPaths(_pgr_get_statement($1), $2::BIGINT[], ARRAY[$3]::BIGINT[], $4) AS a;
+  $BODY$
+LANGUAGE sql VOLATILE;
+
+
+CREATE OR REPLACE FUNCTION pgr_contractGraph(
+    edges_sql TEXT,
+    contraction_order BIGINT[],
+    max_cycles integer DEFAULT 1,
+    forbidden_vertices BIGINT[] DEFAULT ARRAY[]::BIGINT[],
+    directed BOOLEAN DEFAULT true,
+    OUT seq integer,
+    OUT type TEXT,
+    OUT id BIGINT,
+    OUT contracted_vertices BIGINT[],
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost float)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'contractGraph'
+    LANGUAGE c VOLATILE;
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliver(
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_cell_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'pickDeliver'
+LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_pickDeliverEuclidean (
+    TEXT, -- orders_sql
+    TEXT, -- vehicles_sql
+    factor FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+    initial_sol INTEGER DEFAULT 4,
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'pickDeliverEuclidean'
+    LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_vrpOneDepot(
+    TEXT, -- customers_sql
+    TEXT, -- vehicles_sql
+    TEXT, -- matrix_sql
+    INTEGER, -- depot_id
+
+    OUT seq INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT vehicle_id BIGINT,
+    OUT stop_seq INTEGER,
+    OUT stop_type INTEGER,
+    OUT stop_id BIGINT,
+    OUT order_id BIGINT,
+    OUT cargo FLOAT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+orders_sql TEXT;
+trucks_sql TEXT;
+matrix_sql TEXT;
+final_sql TEXT;
+BEGIN
+
+    orders_sql = $$WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    pickups AS (
+        SELECT id, x AS p_x, y AS p_y, open_time AS p_open, close_time AS p_close, service_time AS p_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vrp_orders.id AS id, order_unit AS demand, pickups.id AS p_node_id, p_x, p_y, p_open, p_close, p_service,
+    vrp_orders.id AS d_node_id, x AS d_x, y AS d_y, open_time AS d_open, close_time AS d_close, service_time AS d_service
+    FROM vrp_orders, pickups
+    WHERE vrp_orders.id != $$ || $4;
+
+
+    trucks_sql = $$ WITH
+    vrp_orders AS ($$ || $1 || $$ ),
+    vrp_vehicles AS ($$ || $2 || $$ ),
+    starts AS (
+        SELECT id AS start_node_id, x AS start_x, y AS start_y, open_time AS start_open, close_time AS start_close, service_time AS start_service
+        FROM vrp_orders
+        WHERE id = $$ || $4 || $$
+    )
+    SELECT vehicle_id AS id, capacity, starts.* FROM vrp_vehicles, starts;
+    $$;
+
+    final_sql = '
+    SELECT * FROM _pgr_pickDeliver(
+            $$' || orders_sql || '$$,
+            $$' || trucks_sql || '$$,
+            $$' || $3 || '$$,
+            max_cycles := 2,
+            initial_sol := 4 ); ';
+
+    RAISE DEBUG '%', orders_sql;
+    RAISE DEBUG '%', trucks_sql;
+    RAISE DEBUG '%', $3;
+    RAISE DEBUG '%', final_sql;
+
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+-----------------------------------------------------------------------
+-- Core function for vrp with sigle depot computation
+-- See README for description
+-----------------------------------------------------------------------
+--
+--
+
+create or replace function pgr_vrpOneDepot(
+	order_sql text,
+	vehicle_sql text,
+	cost_sql text,
+	depot_id integer,
+
+	OUT oid integer,
+	OUT opos integer,
+	OUT vid integer,
+	OUT tarrival integer,
+	OUT tdepart integer)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT order_id::INTEGER, stop_seq::INTEGER, vehicle_id::INTEGER, arrival_time::INTEGER, departure_time::INTEGER
+    FROM _pgr_vrpOneDepot($1, $2,
+       '
+            SELECT src_id AS start_vid, dest_id AS end_vid, traveltime AS agg_cost FROM ('||$3||') AS a
+       ',
+        $4
+    ) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION _pgr_gsoc_vrppdtw(
+    customers_sql TEXT,
+    max_vehicles INTEGER,
+    capacity FLOAT,
+    speed FLOAT DEFAULT 1,
+    max_cycles INTEGER DEFAULT 10,
+
+    OUT seq INTEGER,
+    OUT vehicle_id INTEGER,
+    OUT vehicle_seq INTEGER,
+    OUT stop_id BIGINT,
+    OUT travel_time FLOAT,
+    OUT arrival_time FLOAT,
+    OUT wait_time FLOAT,
+    OUT service_time FLOAT,
+    OUT departure_time FLOAT
+)
+RETURNS SETOF RECORD AS
+$BODY$
+DECLARE
+    orders_sql TEXT;
+    vehicles_sql TEXT;
+    final_sql TEXT;
+BEGIN
+    orders_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        pickups AS (
+            SELECT id, demand, x as p_x, y as p_y, opentime as p_open, closetime as p_close, servicetime as p_service
+            FROM  customer_data WHERE pindex = 0 AND id != 0
+        ),
+        deliveries AS (
+            SELECT pindex AS id, x as d_x, y as d_y, opentime as d_open, closetime as d_close, servicetime as d_service
+            FROM  customer_data WHERE dindex = 0 AND id != 0
+        )
+        SELECT * FROM pickups JOIN deliveries USING(id) ORDER BY pickups.id
+    $$;
+
+    vehicles_sql = $$WITH
+        customer_data AS ($$ || customers_sql || $$ )
+        SELECT id, x AS start_x, y AS start_y,
+            opentime AS start_open, closetime AS start_close, $$ ||
+            capacity || $$ AS capacity, $$ || max_vehicles || $$ AS number, $$ || speed || $$ AS speed
+            FROM customer_data WHERE id = 0 LIMIT 1
+        $$;
+--  seq | vehicle_id | vehicle_seq | stop_id | travel_time | arrival_time | wait_time | service_time | departure_time
+    final_sql = $$ WITH
+        customer_data AS ($$ || customers_sql || $$ ),
+        p_deliver AS (SELECT * FROM _pgr_pickDeliverEuclidean('$$ || orders_sql || $$',  '$$ || vehicles_sql || $$',  1, $$ || max_cycles || $$ )),
+        picks AS (SELECT p_deliver.*, pindex, dindex, id AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 2)),
+        delivers AS (SELECT p_deliver.*, pindex, dindex, dindex AS the_id FROM p_deliver JOIN customer_data ON (id = order_id AND stop_type = 3)),
+        depots AS (SELECT p_deliver.*, 0 as pindex, 0 as dindex, 0 AS the_id FROM p_deliver WHERE (stop_type IN (-1,1,6))),
+        the_union AS (SELECT * FROM picks UNION SELECT * FROM delivers UNION SELECT * from depots)
+
+        SELECT (row_number() over(ORDER BY a.seq))::INTEGER, vehicle_seq, a.stop_seq, the_id::BIGINT, a.travel_time, a.arrival_time, a.wait_time, a.service_time, a.departure_time
+        FROM (SELECT * FROM the_union) AS a ORDER BY a.seq
+        $$;
+    RETURN QUERY EXECUTE final_sql;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+CREATE OR REPLACE FUNCTION pgr_gsoc_vrppdtw(
+    sql text,
+    vehicle_num INTEGER,
+    capacity INTEGER
+)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+customers_sql TEXT;
+BEGIN
+    RETURN query
+         SELECT a.seq, vehicle_id::INTEGER AS id1, stop_id::INTEGER AS id2, departure_time AS cost
+        FROM _pgr_gsoc_vrppdtw($1, $2, $3, 1, 30) AS a WHERE vehicle_id NOT IN (-2);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION _pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN,
+    driving_side CHAR,
+    details BOOLEAN,
+
+    only_cost BOOLEAN DEFAULT false, -- gets path
+    normal BOOLEAN DEFAULT true, -- false for many to onu
+
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'withPoints'
+LANGUAGE c VOLATILE;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.seq, a.path_seq, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], ARRAY[$4]::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pid BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pid BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], ARRAY[$4]::bigint[], $5, $6, $7, FALSE, FALSE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_withPoints(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+    details BOOLEAN DEFAULT false,
+
+    OUT seq INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT)
+RETURNS SETOF RECORD AS
+$BODY$
+SELECT a.seq, a.path_seq, a.start_pid, a.end_pid, a.node, a.edge, a.cost, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::bigint[], $4::bigint[], $5, $6, $7) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    BIGINT,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT $3, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, ARRAY[$3]::BIGINT[], $4::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    BIGINT,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, $4, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], ARRAY[$4]::BIGINT[], $5, $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCost(
+    edges_sql TEXT,
+    points_sql TEXT,
+    start_pids ANYARRAY,
+    end_pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_pid BIGINT,
+    OUT end_pid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_pid, a.end_pid, a.agg_cost
+    FROM _pgr_withPoints(_pgr_get_statement($1), $2, $3::BIGINT[], $4::BIGINT[], $5,  $6, TRUE, TRUE) AS a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION  _pgr_withPointsVia(
+    sql text,
+    via_edges bigint[],
+    fraction float[],
+    directed BOOLEAN DEFAULT TRUE,
+
+    OUT seq INTEGER,
+    OUT path_id INTEGER,
+    OUT path_seq INTEGER,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT node BIGINT,
+    OUT edge BIGINT,
+    OUT cost FLOAT,
+    OUT agg_cost FLOAT,
+    OUT route_agg_cost FLOAT)
+
+  RETURNS SETOF RECORD AS
+  $BODY$
+  DECLARE
+  has_rcost boolean;
+  sql_new_vertices text := ' ';
+  sql_on_vertex text;
+  v_union text := ' ';
+  dummyrec record;
+  rec1 record;
+  via_vertices int[];
+  sql_safe text;
+  new_edges text;
+  BEGIN
+     BEGIN
+        sql_safe = 'SELECT id, source, target, cost, reverse_cost FROM ('|| sql || ') AS __a';
+
+        EXECUTE 'select reverse_cost, pg_typeof(reverse_cost)::text as rev_type  from ('||sql_safe||' ) AS __b__ limit 1 ' INTO rec1;
+        has_rcost := true;
+        EXCEPTION
+          WHEN OTHERS THEN
+            has_rcost = false;
+     END;
+
+
+      IF array_length(via_edges, 1) != array_length(fraction, 1) then
+        RAISE EXCEPTION 'The length of via_edges is different of length of via_edges';
+      END IF;
+
+      FOR i IN 1 .. array_length(via_edges, 1)
+      LOOP
+          IF fraction[i] = 0 THEN
+              sql_on_vertex := 'SELECT source FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.source;
+          ELSE IF fraction[i] = 1 THEN
+              sql_on_vertex := 'SELECT target FROM ('|| sql || ') __a where id = ' || via_edges[i];
+              EXECUTE sql_on_vertex into dummyrec;
+              via_vertices[i] = dummyrec.target;
+          ELSE
+              via_vertices[i] = -i;
+              IF has_rcost THEN
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost,
+                              reverse_cost * (1 - ' || fraction[i] || ')  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost,
+                              reverse_cost *  ' || fraction[i] || '  AS reverse_cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' where id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               ELSE
+                   sql_new_vertices = sql_new_vertices || v_union ||
+                          '(SELECT id, source, ' ||  -i || ' AS target, cost * ' || fraction[i] || ' AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')
+                             UNION
+                          (SELECT id, ' ||  -i || ' AS source, target, cost * (1 -' || fraction[i] || ') AS cost
+                          FROM (SELECT * FROM (' || sql || ') __b' || i || ' WHERE id = ' || via_edges[i] || ') __a' || i ||')';
+                      v_union = ' UNION ';
+               END IF;
+          END IF;
+          END IF;
+     END LOOP;
+
+     IF sql_new_vertices = ' ' THEN
+         new_edges := sql;
+     ELSE
+         IF has_rcost THEN
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost,
+                         lead(cost) OVER w  - cost AS reverse_cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL),
+                   second_part AS ( SELECT * FROM (SELECT id, lead(source) OVER w  AS source, source as target,
+                         reverse_cost - lead(reverse_cost) OVER w  AS cost,
+                         reverse_cost - lead(reverse_cost) OVER w  AS reverse_cost
+                      FROM  the_union  WHERE target > 0 and reverse_cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY reverse_cost ASC) ) as n2
+                      WHERE source IS NOT NULL),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part)
+                             UNION
+                       (SELECT * FROM second_part) ) _union )
+                  SELECT *  FROM more_union';
+         ELSE
+            new_edges:= 'WITH
+                   original AS ( ' || sql || '),
+                   the_union AS ( ' || sql_new_vertices || '),
+                   first_part AS ( SELECT * FROM (SELECT id, target AS source,  lead(target) OVER w  AS target,
+                         lead(cost) OVER w  - cost AS cost
+                      FROM  the_union  WHERE source > 0 AND cost > 0
+                      WINDOW w AS (PARTITION BY id  ORDER BY cost ASC) ) as n2
+                      WHERE target IS NOT NULL ),
+                   more_union AS ( SELECT * from (
+                       (SELECT * FROM original)
+                             UNION
+                       (SELECT * FROM the_union)
+                             UNION
+                       (SELECT * FROM first_part) ) _union )
+                  SELECT *  FROM more_union';
+          END IF;
+      END IF;
+
+ -- raise notice '%', new_edges;
+     sql_new_vertices := sql_new_vertices || v_union || ' (' || sql || ')';
+     RETURN query SELECT *
+         FROM pgr_dijkstraVia(new_edges, via_vertices, directed, has_rcost);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_lineGraph(
+    TEXT, -- edges_sql
+    directed BOOLEAN DEFAULT true,
+    OUT seq INTEGER,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT cost FLOAT,
+    OUT reverse_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'lineGraph'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+CREATE OR REPLACE FUNCTION pgr_connectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'connectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_strongComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the node in the component
+    OUT n_seq INTEGER,          -- nth_seq of the node in the component
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'strongComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_biconnectedComponents(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT component BIGINT,       -- the lowest number of the edge in the component
+    OUT n_seq INTEGER,          -- nth_seq of the edge in the component
+    OUT edge BIGINT)            -- the number of the edge
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'biconnectedComponents'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_articulationPoints(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT node BIGINT)            -- the number of the node
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'articulationPoints'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_bridges(
+    TEXT,                       -- edges_sql
+        OUT seq INTEGER,        -- seq
+    OUT edge BIGINT)            -- the number of the edge 
+
+RETURNS SETOF RECORD AS
+'$libdir/libpgrouting-2.5', 'bridges'
+LANGUAGE c IMMUTABLE STRICT;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_createtopology(edge_table text, tolerance double precision,
+		   the_geom text default 'the_geom', id text default 'id',
+		   source text default 'source', target text default 'target',rows_where text default 'true',
+		   clean boolean default FALSE)
+RETURNS VARCHAR AS
+$BODY$
+
+DECLARE
+    points record;
+    sridinfo record;
+    source_id bigint;
+    target_id bigint;
+    totcount bigint;
+    rowcount bigint;
+    srid integer;
+    sql text;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    idname text;
+    sourcename text;
+    targetname text;
+    notincluded integer;
+    i integer;
+    naming record;
+    info record;
+    flag boolean;
+    query text;
+    idtype text;
+    gtype text;
+    sourcetype text;
+    targettype text;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+    msgKind int;
+    emptied BOOLEAN;
+
+BEGIN
+    msgKind = 1; -- notice
+    fnName = 'pgr_createTopology';
+    raise notice 'PROCESSING:';
+    raise notice 'pgr_createTopology(''%'', %, ''%'', ''%'', ''%'', ''%'', rows_where := ''%'', clean := %)',edge_table,tolerance,the_geom,id,source,target,rows_where, clean;
+    execute 'show client_min_messages' into debuglevel;
+
+
+    raise notice 'Performing checks, please wait .....';
+
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+        sname=naming.sname;
+        tname=naming.tname;
+        tabname=sname||'.'||tname;
+        vname=tname||'_vertices_pgr';
+        vertname= sname||'.'||vname;
+        rows_where = ' AND ('||rows_where||')';
+      raise DEBUG '     --> OK';
+
+
+      raise debug 'Checking column names in edge table';
+        select * into idname     from _pgr_getColumnName(sname, tname,id,2,fnName);
+        select * into sourcename from _pgr_getColumnName(sname, tname,source,2,fnName);
+        select * into targetname from _pgr_getColumnName(sname, tname,target,2,fnName);
+        select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2,fnName);
+
+
+        err = sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname;
+        perform _pgr_onError( err, 2, fnName,
+               'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
+	       'Column names are OK');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking column types in edge table';
+        select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+        select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+        select * into idtype from _pgr_getColumnType(sname,tname,idname,1, fnName);
+
+        err = idtype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column id:'|| idname, ' Expected type of '|| idname || ' is integer,smallint or bigint but '||idtype||' was found');
+
+        err = sourcetype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column source:'|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+        err = targettype not in('integer','smallint','bigint');
+        perform _pgr_onError(err, 2, fnName,
+	       'Wrong type of Column target:'|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or bigint but '||targettype||' was found');
+
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking SRID of geometry column';
+         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+            || ' FROM ' || _pgr_quote_ident(tabname)
+            || ' WHERE ' || quote_ident(gname)
+            || ' IS NOT NULL LIMIT 1';
+         raise debug '%',query;
+         EXECUTE query INTO sridinfo;
+
+         err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+         perform _pgr_onError(err, 2, fnName,
+	     'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+
+         srid := sridinfo.srid;
+      raise DEBUG '     --> OK';
+
+      raise debug 'Checking and creating indices in edge table';
+        perform _pgr_createIndex(sname, tname , idname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+        perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+
+        gname=quote_ident(gname);
+        idname=quote_ident(idname);
+        sourcename=quote_ident(sourcename);
+        targetname=quote_ident(targetname);
+      raise DEBUG '     --> OK';
+
+
+
+
+
+    BEGIN
+        -- issue #193 & issue #210 & #213
+        -- this sql is for trying out the where clause
+        -- the select * is to avoid any column name conflicts
+        -- limit 1, just try on first record
+        -- if the where clasuse is ill formed it will be caught in the exception
+        sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+        EXECUTE sql into dummyRec;
+        -- end
+
+        -- if above where clasue works this one should work
+        -- any error will be caught by the exception also
+        sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NOT NULL AND '||
+	    idname||' IS NOT NULL)=false '||rows_where;
+        EXECUTE SQL  into notincluded;
+
+        if clean then
+            raise debug 'Cleaning previous Topology ';
+               execute 'UPDATE ' || _pgr_quote_ident(tabname) ||
+               ' SET '||sourcename||' = NULL,'||targetname||' = NULL';
+        else
+            raise debug 'Creating topology for edges with non assigned topology';
+            if rows_where=' AND (true)' then
+                rows_where=  ' and ('||quote_ident(sourcename)||' is null or '||quote_ident(targetname)||' is  null)';
+            end if;
+        end if;
+        -- my thoery is that the select Count(*) will never go through here
+        EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+             RAISE NOTICE '%',sql;
+             RETURN 'FAIL';
+    END;
+
+    BEGIN
+         raise DEBUG 'initializing %',vertname;
+         execute 'select * from _pgr_getTableName('||quote_literal(vertname)
+                                                  || ',0,' || quote_literal(fnName) ||' )' into naming;
+         emptied = false;
+         set client_min_messages  to warning;
+         IF sname=naming.sname AND vname=naming.tname  THEN
+            if clean then
+                execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+                execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+                emptied = true;
+            end if;
+         ELSE -- table doesn't exist
+            execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+            emptied = true;
+         END IF;
+         IF (emptied) THEN
+             execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+	         quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+             perform _pgr_createIndex(vertname , 'the_geom'::text , 'gist'::text);
+         END IF;
+         execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id"}''::text[])' into naming;
+         execute 'set client_min_messages  to '|| debuglevel;
+         raise DEBUG  '  ------>OK';
+         EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+             RAISE NOTICE 'ERROR: something went wrong when initializing the verties table';
+             RETURN 'FAIL';
+    END;
+
+
+
+    raise notice 'Creating Topology, Please wait...';
+        rowcount := 0;
+        FOR points IN EXECUTE 'SELECT ' || idname || '::bigint AS id,'
+            || ' _pgr_StartPoint(' || gname || ') AS source,'
+            || ' _pgr_EndPoint('   || gname || ') AS target'
+            || ' FROM '  || _pgr_quote_ident(tabname)
+            || ' WHERE ' || gname || ' IS NOT NULL AND ' || idname||' IS NOT NULL '||rows_where
+        LOOP
+
+            rowcount := rowcount + 1;
+            IF rowcount % 1000 = 0 THEN
+                RAISE NOTICE '% edges processed', rowcount;
+            END IF;
+
+
+            source_id := _pgr_pointToId(points.source, tolerance,vertname,srid);
+            target_id := _pgr_pointToId(points.target, tolerance,vertname,srid);
+            BEGIN
+                sql := 'UPDATE ' || _pgr_quote_ident(tabname) ||
+                    ' SET '||sourcename||' = '|| source_id::text || ','||targetname||' = ' || target_id::text ||
+                    ' WHERE ' || idname || ' =  ' || points.id::text;
+
+                IF sql IS NULL THEN
+                    RAISE NOTICE 'WARNING: UPDATE % SET source = %, target = % WHERE % = % ', tabname, source_id::text, target_id::text, idname,  points.id::text;
+                ELSE
+                    EXECUTE sql;
+                END IF;
+                EXCEPTION WHEN OTHERS THEN
+                    RAISE NOTICE '%', SQLERRM;
+                    RAISE NOTICE '%',sql;
+                    RETURN 'FAIL';
+            end;
+        END LOOP;
+        raise notice '-------------> TOPOLOGY CREATED FOR  % edges', rowcount;
+        RAISE NOTICE 'Rows with NULL geometry or NULL id: %',notincluded;
+        Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname), _pgr_quote_ident(vertname);
+        raise notice '----------------------------------------------';
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+
+
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+COMMENT ON FUNCTION pgr_createTopology(text, double precision,text,text,text,text,text,boolean)
+IS 'args: edge_table,tolerance, the_geom:=''the_geom'',source:=''source'', target:=''target'',rows_where:=''true'' - fills columns source and target in the geometry table and creates a vertices table for selected rows';
+
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_analyzegraph(edge_table text,tolerance double precision,the_geom text default 'the_geom',id text default 'id',source text default 'source',target text default 'target',rows_where text default 'true')
+RETURNS character varying AS
+$BODY$
+
+DECLARE
+    points record;
+    seg record;
+    naming record;
+    sridinfo record;
+    srid integer;
+    ecnt integer;
+    vertname text;
+    sname text;
+    tname text;
+    vname text;
+    idname text;
+    sourcename text;
+    targetname text;
+    sourcetype text;
+    targettype text;
+    geotype text;
+    gname text;
+    tabName text;
+    flag boolean ;
+    query text;
+    selectionquery text;
+    i integer;
+    tot integer;
+    NumIsolated integer;
+    numdeadends integer;
+    numgaps integer;
+    NumCrossing integer;
+    numRings integer;
+    debuglevel text;
+
+
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_analyzeGraph(''%'',%,''%'',''%'',''%'',''%'',''%'')',edge_table,tolerance,the_geom,id,source,target,rows_where;
+  raise notice 'Performing checks, please wait ...';
+  execute 'show client_min_messages' into debuglevel;
+
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',2)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    rows_where = ' AND ('||rows_where||')';
+    raise DEBUG '     --> OK';
+
+  END;
+
+  BEGIN
+       raise debug 'Checking Vertices table';
+       execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","cnt","chk"}''::text[])' into naming;
+       execute 'UPDATE '||_pgr_quote_ident(vertname)||' SET cnt=0 ,chk=0';
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the vertices table';
+          RETURN 'FAIL';
+  END;
+
+
+
+  BEGIN
+       raise debug 'Checking column names in edge table';
+       select * into idname     from _pgr_getColumnName(sname, tname,id,2);
+       select * into sourcename from _pgr_getColumnName(sname, tname,source,2);
+       select * into targetname from _pgr_getColumnName(sname, tname,target,2);
+       select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2);
+
+
+       perform _pgr_onError( sourcename in (targetname,idname,gname) or  targetname in (idname,gname) or idname=gname, 2,
+                       'pgr_analyzeGraph',  'Two columns share the same name', 'Parameter names for id,the_geom,source and target  must be different',
+                       'Column names are OK');
+
+        raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column names';
+          RETURN 'FAIL';
+  END;
+
+
+  BEGIN
+       raise debug 'Checking column types in edge table';
+       select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1);
+       select * into targettype from _pgr_getColumnType(sname,tname,targetname,1);
+
+       perform _pgr_onError(sourcetype not in('integer','smallint','bigint') , 2,
+                       'pgr_analyzeGraph',  'Wrong type of Column '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found',
+                       'Type of Column '|| sourcename || ' is ' || sourcetype);
+
+       perform _pgr_onError(targettype not in('integer','smallint','bigint') , 2,
+                       'pgr_analyzeGraph',  'Wrong type of Column '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found',
+                       'Type of Column '|| targetname || ' is ' || targettype);
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column types';
+          RETURN 'FAIL';
+   END;
+
+   BEGIN
+       raise debug 'Checking SRID of geometry column';
+         query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+            || ' FROM ' || _pgr_quote_ident(tabname)
+            || ' WHERE ' || quote_ident(gname)
+            || ' IS NOT NULL LIMIT 1';
+         EXECUTE QUERY INTO sridinfo;
+
+         perform _pgr_onError( sridinfo IS NULL OR sridinfo.srid IS NULL,2,
+                 'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname,
+                 'SRID of '||gname||' is '||sridinfo.srid);
+
+         IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
+             RAISE NOTICE ' Can not determine the srid of the geometry "%" in table %', the_geom,tabname;
+             RETURN 'FAIL';
+         END IF;
+         srid := sridinfo.srid;
+         raise DEBUG '     --> OK';
+         EXCEPTION WHEN OTHERS THEN
+             RAISE NOTICE 'Got %', SQLERRM;--issue 210,211,213
+             RAISE NOTICE 'ERROR: something went wrong when checking for SRID of % in table %', the_geom,tabname;
+             RETURN 'FAIL';
+    END;
+
+
+    BEGIN
+       raise debug 'Checking  indices in edge table';
+       perform _pgr_createIndex(tabname , idname , 'btree');
+       perform _pgr_createIndex(tabname , sourcename , 'btree');
+       perform _pgr_createIndex(tabname , targetname , 'btree');
+       perform _pgr_createIndex(tabname , gname , 'gist');
+
+       gname=quote_ident(gname);
+       sourcename=quote_ident(sourcename);
+       targetname=quote_ident(targetname);
+       idname=quote_ident(idname);
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking indices';
+          RETURN 'FAIL';
+    END;
+
+
+    BEGIN
+        query='select count(*) from '||_pgr_quote_ident(tabname)||' where true  '||rows_where;
+        EXECUTE query into ecnt;
+        raise DEBUG '-->Rows Where condition: OK';
+        raise DEBUG '     --> OK';
+         EXCEPTION WHEN OTHERS THEN
+            RAISE NOTICE 'Got %', SQLERRM;  --issue 210,211,213
+            RAISE NOTICE 'ERROR: Condition is not correct. Please execute the following query to test your condition';
+            RAISE NOTICE '%',query;
+            RETURN 'FAIL';
+    END;
+
+    selectionquery ='with
+           selectedRows as( (select '||sourcename||' as id from '||_pgr_quote_ident(tabname)||' where true '||rows_where||')
+                           union
+                           (select '||targetname||' as id from '||_pgr_quote_ident(tabname)||' where true '||rows_where||'))';
+
+
+
+
+
+   BEGIN
+       RAISE NOTICE 'Analyzing for dead ends. Please wait...';
+       query= 'with countingsource as (select a.'||sourcename||' as id,count(*) as cnts
+               from (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) a  group by a.'||sourcename||')
+                     ,countingtarget as (select a.'||targetname||' as id,count(*) as cntt
+                    from (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) a  group by a.'||targetname||')
+                   ,totalcount as (select id,case when cnts is null and cntt is null then 0
+                                                   when cnts is null then cntt
+                                                   when cntt is null then cnts
+                                                   else cnts+cntt end as totcnt
+                                   from ('||_pgr_quote_ident(vertname)||' as a left
+                                   join countingsource as t using(id) ) left join countingtarget using(id))
+               update '||_pgr_quote_ident(vertname)||' as a set cnt=totcnt from totalcount as b where a.id=b.id';
+       raise debug '%',query;
+       execute query;
+       query=selectionquery||'
+              SELECT count(*)  FROM '||_pgr_quote_ident(vertname)||' WHERE cnt=1 and id in (select id from selectedRows)';
+       raise debug '%',query;
+       execute query  INTO numdeadends;
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'Got %', SQLERRM;  --issue 210,211,213
+          RAISE NOTICE 'ERROR: something went wrong when analizing for dead ends';
+          RETURN 'FAIL';
+   END;
+
+
+
+    BEGIN
+          RAISE NOTICE 'Analyzing for gaps. Please wait...';
+          query = 'with
+                   buffer as (select id,st_buffer(the_geom,'||tolerance||') as buff from '||_pgr_quote_ident(vertname)||' where cnt=1)
+                   ,veryclose as (select b.id,st_crosses(a.'||gname||',b.buff) as flag
+                   from  (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' ) as a
+                   join buffer as b on (a.'||gname||'&&b.buff)
+                   where '||sourcename||'!=b.id and '||targetname||'!=b.id )
+                   update '||_pgr_quote_ident(vertname)||' set chk=1 where id in (select distinct id from veryclose where flag=true)';
+          raise debug '%' ,query;
+          execute query;
+          GET DIAGNOSTICS  numgaps= ROW_COUNT;
+          raise DEBUG '     --> OK';
+          EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for gaps';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for isolated edges. Please wait...';
+        query=selectionquery|| ' SELECT count(*) FROM (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||' )  as a,
+                                                 '||_pgr_quote_ident(vertname)||' as b,
+                                                 '||_pgr_quote_ident(vertname)||' as c
+                            WHERE b.id in (select id from selectedRows) and a.'||sourcename||' =b.id
+                            AND b.cnt=1 AND a.'||targetname||' =c.id
+                            AND c.cnt=1';
+        raise debug '%' ,query;
+        execute query  INTO NumIsolated;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for isolated edges';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for ring geometries. Please wait...';
+        execute 'SELECT geometrytype('||gname||')  FROM '||_pgr_quote_ident(tabname) limit 1 into geotype;
+        IF (geotype='MULTILINESTRING') THEN
+            query ='SELECT count(*)  FROM '||_pgr_quote_ident(tabname)||'
+                                 WHERE true  '||rows_where||' and st_isRing(st_linemerge('||gname||'))';
+            raise debug '%' ,query;
+            execute query  INTO numRings;
+        ELSE query ='SELECT count(*)  FROM '||_pgr_quote_ident(tabname)||'
+                                  WHERE true  '||rows_where||' and st_isRing('||gname||')';
+            raise debug '%' ,query;
+            execute query  INTO numRings;
+        END IF;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for ring geometries';
+            RETURN 'FAIL';
+    END;
+
+    BEGIN
+        RAISE NOTICE 'Analyzing for intersections. Please wait...';
+        query = 'select count(*) from (select distinct case when a.'||idname||' < b.'||idname||' then a.'||idname||'
+                                                        else b.'||idname||' end,
+                                                   case when a.'||idname||' < b.'||idname||' then b.'||idname||'
+                                                        else a.'||idname||' end
+                                    FROM (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||') as a
+                                    JOIN (select * from '||_pgr_quote_ident(tabname)||' where true '||rows_where||') as b
+                                    ON (a.'|| gname||' && b.'||gname||')
+                                    WHERE a.'||idname||' != b.'||idname|| '
+                                        and (a.'||sourcename||' in (b.'||sourcename||',b.'||targetname||')
+                                              or a.'||targetname||' in (b.'||sourcename||',b.'||targetname||')) = false
+                                        and st_intersects(a.'||gname||', b.'||gname||')=true) as d ';
+        raise debug '%' ,query;
+        execute query  INTO numCrossing;
+        raise DEBUG '     --> OK';
+        EXCEPTION WHEN raise_exception THEN
+            RAISE NOTICE 'ERROR: something went wrong when Analyzing for intersections';
+            RETURN 'FAIL';
+    END;
+
+
+
+
+    RAISE NOTICE '            ANALYSIS RESULTS FOR SELECTED EDGES:';
+    RAISE NOTICE '                  Isolated segments: %', NumIsolated;
+    RAISE NOTICE '                          Dead ends: %', numdeadends;
+    RAISE NOTICE 'Potential gaps found near dead ends: %', numgaps;
+    RAISE NOTICE '             Intersections detected: %',numCrossing;
+    RAISE NOTICE '                    Ring geometries: %',numRings;
+
+
+    RETURN 'OK';
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+COMMENT ON FUNCTION pgr_analyzeGraph(text,double precision,text,text,text,text,text) IS 'args: edge_table, tolerance,the_geom:=''the_geom'',id:=''id'',source column:=''source'', target column:=''target'' rows_where:=''true'' - creates a vertices table based on the geometry for selected rows';
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_analyzeOneway(
+   edge_table text,
+   s_in_rules TEXT[],
+   s_out_rules TEXT[],
+   t_in_rules TEXT[],
+   t_out_rules TEXT[],
+   two_way_if_null boolean default true,
+   oneway text default 'oneway',
+   source text default 'source',
+   target text default 'target')
+  RETURNS text AS
+$BODY$
+
+
+DECLARE
+    rule text;
+    ecnt integer;
+    instr text;
+    naming record;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    owname text;
+    sourcename text;
+    targetname text;
+    sourcetype text;
+    targettype text;
+    vertname text;
+    debuglevel text;
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_analyzeOneway(''%'',''%'',''%'',''%'',''%'',''%'',''%'',''%'',%)',
+		edge_table, s_in_rules , s_out_rules, t_in_rules, t_out_rules, oneway, source ,target,two_way_if_null ;
+  execute 'show client_min_messages' into debuglevel;
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',2)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    raise DEBUG '     --> OK';
+    EXCEPTION WHEN raise_exception THEN
+      RAISE NOTICE 'ERROR: something went wrong checking the table name';
+      RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise debug 'Checking Vertices table';
+       execute 'select * from  _pgr_checkVertTab('||quote_literal(vertname) ||', ''{"id","ein","eout"}''::text[])' into naming;
+       execute 'UPDATE '||_pgr_quote_ident(vertname)||' SET eout=0 ,ein=0';
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the vertices table';
+          RETURN 'FAIL';
+  END;
+
+
+  BEGIN
+       raise debug 'Checking column names in edge table';
+       select * into sourcename from _pgr_getColumnName(sname, tname,source,2);
+       select * into targetname from _pgr_getColumnName(sname, tname,target,2);
+       select * into owname from _pgr_getColumnName(sname, tname,oneway,2);
+
+
+       perform _pgr_onError( sourcename in (targetname,owname) or  targetname=owname, 2,
+                       '_pgr_createToplogy',  'Two columns share the same name', 'Parameter names for oneway,source and target  must be different',
+                       'Column names are OK');
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column names';
+          RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise debug 'Checking column types in edge table';
+       select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1);
+       select * into targettype from _pgr_getColumnType(sname,tname,targetname,1);
+
+
+       perform _pgr_onError(sourcetype not in('integer','smallint','bigint') , 2,
+                       '_pgr_createTopology',  'Wrong type of Column '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found',
+                       'Type of Column '|| sourcename || ' is ' || sourcetype);
+
+       perform _pgr_onError(targettype not in('integer','smallint','bigint') , 2,
+                       '_pgr_createTopology',  'Wrong type of Column '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found',
+                       'Type of Column '|| targetname || ' is ' || targettype);
+
+       raise DEBUG '     --> OK';
+       EXCEPTION WHEN raise_exception THEN
+          RAISE NOTICE 'ERROR: something went wrong checking the column types';
+          RETURN 'FAIL';
+   END;
+
+
+
+    RAISE NOTICE 'Analyzing graph for one way street errors.';
+
+    rule := CASE WHEN two_way_if_null
+            THEN owname || ' IS NULL OR '
+            ELSE '' END;
+
+    instr := '''' || array_to_string(s_in_rules, ''',''') || '''';
+       EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set ein=coalesce(ein,0)+b.cnt
+      from (
+         select '|| sourcename ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| sourcename ||' ) b
+     where a.id=b.'|| sourcename;
+
+    RAISE NOTICE 'Analysis 25%% complete ...';
+
+    instr := '''' || array_to_string(t_in_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set ein=coalesce(ein,0)+b.cnt
+        from (
+         select '|| targetname ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| targetname ||' ) b
+        where a.id=b.'|| targetname;
+
+    RAISE NOTICE 'Analysis 50%% complete ...';
+
+    instr := '''' || array_to_string(s_out_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set eout=coalesce(eout,0)+b.cnt
+        from (
+         select '|| sourcename ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| sourcename ||' ) b
+        where a.id=b.'|| sourcename;
+    RAISE NOTICE 'Analysis 75%% complete ...';
+
+    instr := '''' || array_to_string(t_out_rules, ''',''') || '''';
+    EXECUTE 'update '||_pgr_quote_ident(vertname)||' a set eout=coalesce(eout,0)+b.cnt
+        from (
+         select '|| targetname ||', count(*) as cnt
+           from '|| tabname ||'
+          where '|| rule || owname ||' in ('|| instr ||')
+          group by '|| targetname ||' ) b
+        where a.id=b.'|| targetname;
+
+    RAISE NOTICE 'Analysis 100%% complete ...';
+
+    EXECUTE 'SELECT count(*)  FROM '||_pgr_quote_ident(vertname)||' WHERE ein=0 or eout=0' INTO ecnt;
+
+    RAISE NOTICE 'Found % potential problems in directionality' ,ecnt;
+
+    RETURN 'OK';
+
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+COMMENT ON FUNCTION pgr_analyzeOneway(text,TEXT[],TEXT[], TEXT[],TEXT[],boolean,text,text,text)
+IS 'args:edge_table , s_in_rules , s_out_rules, t_in_rules , t_out_rules, two_way_if_null:= true, oneway:=''oneway'',source:= ''source'',target:=''target'' - Analizes the directionality of the edges based on the rules';
+
+
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_createverticestable(
+   edge_table text,
+   the_geom text DEFAULT 'the_geom'::text,
+   source text DEFAULT 'source'::text,
+   target text DEFAULT 'target'::text,
+    rows_where text DEFAULT 'true'::text
+)
+  RETURNS text AS
+$BODY$
+DECLARE
+    naming record;
+    sridinfo record;
+    sname text;
+    tname text;
+    tabname text;
+    vname text;
+    vertname text;
+    gname text;
+    sourcename text;
+    targetname text;
+    query text;
+    ecnt bigint;
+    srid integer;
+    sourcetype text;
+    targettype text;
+    sql text;
+    totcount integer;
+    i integer;
+    notincluded integer;
+    included integer;
+    debuglevel text;
+    dummyRec text;
+    fnName text;
+    err bool;
+
+
+BEGIN
+  fnName = 'pgr_createVerticesTable';
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_createVerticesTable(''%'',''%'',''%'',''%'',''%'')',edge_table,the_geom,source,target,rows_where;
+  execute 'show client_min_messages' into debuglevel;
+
+  raise notice 'Performing checks, please wait .....';
+
+  RAISE DEBUG 'Checking % exists',edge_table;
+        execute 'select * from _pgr_getTableName('|| quote_literal(edge_table)
+                                                  || ',2,' || quote_literal(fnName) ||' )' into naming;
+
+    sname=naming.sname;
+    tname=naming.tname;
+    tabname=sname||'.'||tname;
+    vname=tname||'_vertices_pgr';
+    vertname= sname||'.'||vname;
+    rows_where = ' AND ('||rows_where||')';
+  raise debug '--> Edge table exists: OK';
+
+  raise debug 'Checking column names';
+    select * into sourcename from _pgr_getColumnName(sname, tname,source,2, fnName);
+    select * into targetname from _pgr_getColumnName(sname, tname,target,2, fnName);
+    select * into gname      from _pgr_getColumnName(sname, tname,the_geom,2, fnName);
+
+
+    err = sourcename in (targetname,gname) or  targetname=gname;
+    perform _pgr_onError(err, 2, fnName,
+        'Two columns share the same name', 'Parameter names for the_geom,source and target  must be different');
+  raise debug '--> Column names: OK';
+
+  raise debug 'Checking column types in edge table';
+    select * into sourcetype from _pgr_getColumnType(sname,tname,sourcename,1, fnName);
+    select * into targettype from _pgr_getColumnType(sname,tname,targetname,1, fnName);
+
+
+    err = sourcetype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column source: '|| sourcename, ' Expected type of '|| sourcename || ' is integer,smallint or bigint but '||sourcetype||' was found');
+
+    err = targettype not in('integer','smallint','bigint');
+    perform _pgr_onError(err, 2, fnName,
+        'Wrong type of Column target: '|| targetname, ' Expected type of '|| targetname || ' is integer,smallint or biginti but '||targettype||' was found');
+
+  raise debug '-->Column types:OK';
+
+  raise debug 'Checking SRID of geometry column';
+     query= 'SELECT ST_SRID(' || quote_ident(gname) || ') as srid '
+        || ' FROM ' || _pgr_quote_ident(tabname)
+        || ' WHERE ' || quote_ident(gname)
+        || ' IS NOT NULL LIMIT 1';
+     raise debug '%',query;
+     EXECUTE query INTO sridinfo;
+
+     err =  sridinfo IS NULL OR sridinfo.srid IS NULL;
+     perform _pgr_onError(err, 2, fnName,
+         'Can not determine the srid of the geometry '|| gname ||' in table '||tabname, 'Check the geometry of column '||gname);
+     srid := sridinfo.srid;
+  raise DEBUG '     --> OK';
+
+  raise debug 'Checking and creating Indices';
+     perform _pgr_createIndex(sname, tname , sourcename , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , targetname , 'btree'::text);
+     perform _pgr_createIndex(sname, tname , gname , 'gist'::text);
+  raise DEBUG '-->Check and create indices: OK';
+
+     gname=quote_ident(gname);
+     sourcename=quote_ident(sourcename);
+     targetname=quote_ident(targetname);
+
+
+  BEGIN
+  raise debug 'Checking Condition';
+    -- issue #193 & issue #210 & #213
+    -- this sql is for trying out the where clause
+    -- the select * is to avoid any column name conflicts
+    -- limit 1, just try on first record
+    -- if the where clasuse is ill formed it will be caught in the exception
+    sql = 'select * from '||_pgr_quote_ident(tabname)||' WHERE true'||rows_where ||' limit 1';
+    EXECUTE sql into dummyRec;
+    -- end
+
+    -- if above where clasue works this one should work
+    -- any error will be caught by the exception also
+    sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' WHERE (' || gname || ' IS NULL or '||
+		sourcename||' is null or '||targetname||' is null)=true '||rows_where;
+    raise debug '%',sql;
+    EXECUTE SQL  into notincluded;
+    EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Condition is not correct, please execute the following query to test your condition';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+
+
+
+  BEGIN
+     raise DEBUG 'initializing %',vertname;
+       execute 'select * from _pgr_getTableName('||quote_literal(vertname)||',0)' into naming;
+       IF sname=naming.sname  AND vname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(vertname)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(vname)||','||quote_literal('the_geom')||')';
+       ELSE
+           set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(vertname)||' (id bigserial PRIMARY KEY,cnt integer,chk integer,ein integer,eout integer)';
+       END IF;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(vname)||','||
+                quote_literal('the_geom')||','|| srid||', '||quote_literal('POINT')||', 2)';
+       execute 'CREATE INDEX '||quote_ident(vname||'_the_geom_idx')||' ON '||_pgr_quote_ident(vertname)||'  USING GIST (the_geom)';
+       execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+       EXCEPTION WHEN OTHERS THEN
+         RAISE NOTICE 'Got %', SQLERRM; -- issue 210,211
+         RAISE NOTICE 'ERROR: Initializing vertex table';
+         RAISE NOTICE '%',sql;
+         RETURN 'FAIL';
+  END;
+
+  BEGIN
+       raise notice 'Populating %, please wait...',vertname;
+       sql= 'with
+		lines as ((select distinct '||sourcename||' as id, _pgr_startpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+		                  ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||')
+			union (select distinct '||targetname||' as id,_pgr_endpoint(st_linemerge('||gname||')) as the_geom from '||_pgr_quote_ident(tabname)||
+			          ' where ('|| gname || ' IS NULL
+                                    or '||sourcename||' is null
+                                    or '||targetname||' is null)=false
+                                     '||rows_where||'))
+		,numberedLines as (select row_number() OVER (ORDER BY id) AS i,* from lines )
+		,maxid as (select id,max(i) as maxi from numberedLines group by id)
+		insert into '||_pgr_quote_ident(vertname)||'(id,the_geom)  (select id,the_geom  from numberedLines join maxid using(id) where i=maxi order by id)';
+       RAISE debug '%',sql;
+       execute sql;
+       GET DIAGNOSTICS totcount = ROW_COUNT;
+
+       sql = 'select count(*) from '||_pgr_quote_ident(tabname)||' a, '||_pgr_quote_ident(vertname)||' b
+            where '||sourcename||'=b.id and '|| targetname||' in (select id from '||_pgr_quote_ident(vertname)||')';
+       RAISE debug '%',sql;
+       execute sql into included;
+
+
+
+       execute 'select max(id) from '||_pgr_quote_ident(vertname) into ecnt;
+       execute 'SELECT setval('||quote_literal(vertname||'_id_seq')||','||coalesce(ecnt,1)||' , false)';
+       raise notice '  ----->   VERTICES TABLE CREATED WITH  % VERTICES', totcount;
+       raise notice '                                       FOR   %  EDGES', included+notincluded;
+       RAISE NOTICE '  Edges with NULL geometry,source or target: %',notincluded;
+       RAISE NOTICE '                            Edges processed: %',included;
+       Raise notice 'Vertices table for table % is: %',_pgr_quote_ident(tabname),_pgr_quote_ident(vertname);
+       raise notice '----------------------------------------------';
+    END;
+
+    RETURN 'OK';
+ EXCEPTION WHEN OTHERS THEN
+   RAISE NOTICE 'Unexpected error %', SQLERRM; -- issue 210,211
+   RETURN 'FAIL';
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+COMMENT ON FUNCTION pgr_createVerticesTable(text,text,text,text,text)
+IS 'args: edge_table, the_geom:=''the_geom'',source:=''source'', target:=''target'' rows_where:=''true'' - creates a vertices table based on the source and target identifiers for selected rows';
+
+
+CREATE OR REPLACE FUNCTION pgr_nodeNetwork(edge_table text, tolerance double precision,
+			id text default 'id', the_geom text default 'the_geom', table_ending text default 'noded',
+            rows_where text DEFAULT ''::text, outall boolean DEFAULT false) RETURNS text AS
+$BODY$
+DECLARE
+	
+	p_num int := 0;
+	p_ret text := '';
+    pgis_ver_old boolean := _pgr_versionless(postgis_lib_version(), '2.1.0.0');
+    vst_line_substring text;
+    vst_line_locate_point text;
+    intab text;
+    outtab text;
+    n_pkey text;
+    n_geom text;
+    naming record;
+    sname text;
+    tname text;
+    outname text;
+    srid integer;
+    sridinfo record;
+    splits bigint;
+    touched bigint;
+    untouched bigint;
+    geomtype text;
+    debuglevel text;
+    rows_where text;
+
+
+BEGIN
+  raise notice 'PROCESSING:';
+  raise notice 'pgr_nodeNetwork(''%'', %, ''%'', ''%'', ''%'', ''%'',  %)',
+    edge_table, tolerance, id,  the_geom, table_ending, rows_where, outall;
+  raise notice 'Performing checks, please wait .....';
+  execute 'show client_min_messages' into debuglevel;
+
+  BEGIN
+    RAISE DEBUG 'Checking % exists',edge_table;
+    execute 'select * from _pgr_getTableName('||quote_literal(edge_table)||',0)' into naming;
+    sname=naming.sname;
+    tname=naming.tname;
+    IF sname IS NULL OR tname IS NULL THEN
+	RAISE NOTICE '-------> % not found',edge_table;
+        RETURN 'FAIL';
+    ELSE
+	RAISE DEBUG '  -----> OK';
+    END IF;
+
+    intab=sname||'.'||tname;
+    outname=tname||'_'||table_ending;
+    outtab= sname||'.'||outname;
+    rows_where = CASE WHEN length(rows_where) > 2 and not outall THEN ' AND (' || rows_where || ')' ELSE '' END;
+    rows_where = CASE WHEN length(rows_where) > 2 THEN ' WHERE (' || rows_where || ')' ELSE '' END;
+  END;
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',id,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(id)||')' INTO n_pkey;
+       IF n_pkey is NULL then
+          raise notice  'ERROR: id column "%"  not found in %',id,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+
+  BEGIN
+       raise DEBUG 'Checking id column "%" columns in  % ',the_geom,intab;
+       EXECUTE 'select _pgr_getColumnName('||quote_literal(intab)||','||quote_literal(the_geom)||')' INTO n_geom;
+       IF n_geom is NULL then
+          raise notice  'ERROR: the_geom  column "%"  not found in %',the_geom,intab;
+          RETURN 'FAIL';
+       END IF;
+  END;
+
+  IF n_pkey=n_geom THEN
+	raise notice  'ERROR: id and the_geom columns have the same name "%" in %',n_pkey,intab;
+        RETURN 'FAIL';
+  END IF;
+
+  BEGIN
+       	raise DEBUG 'Checking the SRID of the geometry "%"', n_geom;
+       	EXECUTE 'SELECT ST_SRID(' || quote_ident(n_geom) || ') as srid '
+          		|| ' FROM ' || _pgr_quote_ident(intab)
+          		|| ' WHERE ' || quote_ident(n_geom)
+          		|| ' IS NOT NULL LIMIT 1' INTO sridinfo;
+       	IF sridinfo IS NULL OR sridinfo.srid IS NULL THEN
+        	RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           	RETURN 'FAIL';
+       	END IF;
+       	srid := sridinfo.srid;
+       	raise DEBUG '  -----> SRID found %',srid;
+       	EXCEPTION WHEN OTHERS THEN
+           		RAISE NOTICE 'ERROR: Can not determine the srid of the geometry "%" in table %', n_geom,intab;
+           		RETURN 'FAIL';
+  END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_pkey,intab;
+      if (_pgr_isColumnIndexed(intab,n_pkey)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding  index "%_%_idx".',n_pkey,intab;
+
+	set client_min_messages  to warning;
+        execute 'create  index '||tname||'_'||n_pkey||'_idx on '||_pgr_quote_ident(intab)||' using btree('||quote_ident(n_pkey)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+
+    BEGIN
+      RAISE DEBUG 'Checking "%" column in % is indexed',n_geom,intab;
+      if (_pgr_iscolumnindexed(intab,n_geom)) then
+	RAISE DEBUG '  ------>OK';
+      else
+        RAISE DEBUG ' ------> Adding unique index "%_%_gidx".',intab,n_geom;
+	set client_min_messages  to warning;
+        execute 'CREATE INDEX '
+            || quote_ident(tname || '_' || n_geom || '_gidx' )
+            || ' ON ' || _pgr_quote_ident(intab)
+            || ' USING gist (' || quote_ident(n_geom) || ')';
+	execute 'set client_min_messages  to '|| debuglevel;
+      END IF;
+    END;
+---------------
+    BEGIN
+       raise DEBUG 'initializing %',outtab;
+       execute 'select * from _pgr_getTableName('||quote_literal(outtab)||',0)' into naming;
+       IF sname=naming.sname  AND outname=naming.tname  THEN
+           execute 'TRUNCATE TABLE '||_pgr_quote_ident(outtab)||' RESTART IDENTITY';
+           execute 'SELECT DROPGEOMETRYCOLUMN('||quote_literal(sname)||','||quote_literal(outname)||','||quote_literal(n_geom)||')';
+       ELSE
+	   set client_min_messages  to warning;
+       	   execute 'CREATE TABLE '||_pgr_quote_ident(outtab)||' (id bigserial PRIMARY KEY,old_id integer,sub_id integer,
+								source bigint,target bigint)';
+       END IF;
+       execute 'select geometrytype('||quote_ident(n_geom)||') from  '||_pgr_quote_ident(intab)||' limit 1' into geomtype;
+       execute 'select addGeometryColumn('||quote_literal(sname)||','||quote_literal(outname)||','||
+                quote_literal(n_geom)||','|| srid||', '||quote_literal(geomtype)||', 2)';
+       execute 'CREATE INDEX '||quote_ident(outname||'_'||n_geom||'_idx')||' ON '||_pgr_quote_ident(outtab)||'  USING GIST ('||quote_ident(n_geom)||')';
+	execute 'set client_min_messages  to '|| debuglevel;
+       raise DEBUG  '  ------>OK';
+    END;
+----------------
+
+
+  raise notice 'Processing, please wait .....';
+
+
+    if pgis_ver_old then
+        vst_line_substring    := 'st_line_substring';
+        vst_line_locate_point := 'st_line_locate_point';
+    else
+        vst_line_substring    := 'st_linesubstring';
+        vst_line_locate_point := 'st_linelocatepoint';
+    end if;
+
+--    -- First creates temp table with intersection points
+    p_ret = 'create temp table intergeom on commit drop as (
+        select l1.' || quote_ident(n_pkey) || ' as l1id,
+               l2.' || quote_ident(n_pkey) || ' as l2id,
+	       l1.' || quote_ident(n_geom) || ' as line,
+	       _pgr_startpoint(l2.' || quote_ident(n_geom) || ') as source,
+	       _pgr_endpoint(l2.' || quote_ident(n_geom) || ') as target,
+               st_intersection(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ') as geom
+        from (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l1
+             join (SELECT * FROM ' || _pgr_quote_ident(intab) || rows_where || ') as l2
+             on (st_dwithin(l1.' || quote_ident(n_geom) || ', l2.' || quote_ident(n_geom) || ', ' || tolerance || '))'||
+        'where l1.' || quote_ident(n_pkey) || ' <> l2.' || quote_ident(n_pkey)||' and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_startpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_startpoint(l2.' || quote_ident(n_geom) || '))=false and
+	st_equals(_pgr_endpoint(l1.' || quote_ident(n_geom) || '),_pgr_endpoint(l2.' || quote_ident(n_geom) || '))=false  )';
+    raise debug '%',p_ret;
+    EXECUTE p_ret;
+
+    -- second temp table with locus (index of intersection point on the line)
+    -- to avoid updating the previous table
+    -- we keep only intersection points occurring onto the line, not at one of its ends
+--    drop table if exists inter_loc;
+
+--HAD TO CHANGE THIS QUERY
+-- p_ret= 'create temp table inter_loc on commit drop as (
+--        select l1id, l2id, ' || vst_line_locate_point || '(line,point) as locus from (
+--        select DISTINCT l1id, l2id, line, (ST_DumpPoints(geom)).geom as point from intergeom) as foo
+--        where ' || vst_line_locate_point || '(line,point)<>0 and ' || vst_line_locate_point || '(line,point)<>1)';
+    p_ret= 'create temp table inter_loc on commit drop as ( select * from (
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,source) as locus from intergeom)
+         union
+        (select l1id, l2id, ' || vst_line_locate_point || '(line,target) as locus from intergeom)) as foo
+        where locus<>0 and locus<>1)';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+
+    -- index on l1id
+    create index inter_loc_id_idx on inter_loc(l1id);
+
+    -- Then computes the intersection on the lines subset, which is much smaller than full set
+    -- as there are very few intersection points
+
+--- outab needs to be formally created with id, old_id, subid,the_geom, source,target
+---  so it can be inmediatly be used with createTopology
+
+--   EXECUTE 'drop table if exists ' || _pgr_quote_ident(outtab);
+--   EXECUTE 'create table ' || _pgr_quote_ident(outtab) || ' as
+     P_RET = 'insert into '||_pgr_quote_ident(outtab)||' (old_id,sub_id,'||quote_ident(n_geom)||') (  with cut_locations as (
+           select l1id as lid, locus
+           from inter_loc
+           -- then generates start and end locus for each line that have to be cut buy a location point
+           UNION ALL
+           select i.l1id  as lid, 0 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           UNION ALL
+           select i.l1id  as lid, 1 as locus
+           from inter_loc i left join ' || _pgr_quote_ident(intab) || ' b on (i.l1id = b.' || quote_ident(n_pkey) || ')
+           order by lid, locus
+       ),
+       -- we generate a row_number index column for each input line
+       -- to be able to self-join the table to cut a line between two consecutive locations
+       loc_with_idx as (
+           select lid, locus, row_number() over (partition by lid order by locus) as idx
+           from cut_locations
+       )
+       -- finally, each original line is cut with consecutive locations using linear referencing functions
+       select l.' || quote_ident(n_pkey) || ', loc1.idx as sub_id, ' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus) as ' || quote_ident(n_geom) || '
+       from loc_with_idx loc1 join loc_with_idx loc2 using (lid) join ' || _pgr_quote_ident(intab) || ' l on (l.' || quote_ident(n_pkey) || ' = loc1.lid)
+       where loc2.idx = loc1.idx+1
+           -- keeps only linestring geometries
+           and geometryType(' || vst_line_substring || '(l.' || quote_ident(n_geom) || ', loc1.locus, loc2.locus)) = ''LINESTRING'') ';
+    raise debug  '%',p_ret;
+    EXECUTE p_ret;
+	GET DIAGNOSTICS splits = ROW_COUNT;
+        execute 'with diff as (select distinct old_id from '||_pgr_quote_ident(outtab)||' )
+                 select count(*) from diff' into touched;
+	-- here, it misses all original line that did not need to be cut by intersection points: these lines
+	-- are already clean
+	-- inserts them in the final result: all lines which gid is not in the res table.
+	EXECUTE 'insert into ' || _pgr_quote_ident(outtab) || ' (old_id , sub_id, ' || quote_ident(n_geom) || ')
+                ( with used as (select distinct old_id from '|| _pgr_quote_ident(outtab)||')
+		select ' ||  quote_ident(n_pkey) || ', 1 as sub_id, ' ||  quote_ident(n_geom) ||
+		' from '|| _pgr_quote_ident(intab) ||' where  '||quote_ident(n_pkey)||' not in (select * from used)' || rows_where || ')';
+	GET DIAGNOSTICS untouched = ROW_COUNT;
+
+	raise NOTICE '  Split Edges: %', touched;
+	raise NOTICE ' Untouched Edges: %', untouched;
+	raise NOTICE '     Total original Edges: %', touched+untouched;
+        RAISE NOTICE ' Edges generated: %', splits;
+	raise NOTICE ' Untouched Edges: %',untouched;
+	raise NOTICE '       Total New segments: %', splits+untouched;
+        RAISE NOTICE ' New Table: %', outtab;
+        RAISE NOTICE '----------------------------------';
+
+    drop table  if exists intergeom;
+    drop table if exists inter_loc;
+    RETURN 'OK';
+END;
+$BODY$
+    LANGUAGE 'plpgsql' VOLATILE STRICT COST 100;
+
+
+COMMENT ON FUNCTION pgr_nodeNetwork(text, double precision, text, text, text, text, boolean )
+ IS  'edge_table, tolerance, id:=''id'', the_geom:=''the_geom'', table_ending:=''noded'' ';
+
+
+CREATE OR REPLACE FUNCTION pgr_labelGraph(
+                edge_table text,
+                id text default 'id',
+                source text default 'source',
+                target text default 'target',
+                subgraph text default 'subgraph',
+                rows_where text default 'true'
+        )
+        RETURNS character varying AS
+$BODY$
+
+DECLARE
+        naming record;
+        schema_name text;
+        table_name text;
+        garbage text;
+        incre integer;
+        table_schema_name text;
+        query text;
+        ecnt integer;
+        sql1 text;
+        rec1 record;
+        sql2 text;
+        rec2 record;
+        rec_count record;
+        rec_single record;
+        graph_id integer;
+        gids int [];
+
+BEGIN
+        raise notice 'Processing:';
+        raise notice 'pgr_brokenGraph(''%'',''%'',''%'',''%'',''%'',''%'')', edge_table,id,source,target,subgraph,rows_where;
+        raise notice 'Performing initial checks, please hold on ...';
+
+        Raise Notice 'Starting - Checking table ...';
+        BEGIN
+                raise debug 'Checking % table existance', edge_table;
+                execute 'select * from pgr_getTableName('|| quote_literal(edge_table) ||')' into naming;
+                schema_name = naming.sname;
+                table_name = naming.tname;
+                table_schema_name = schema_name||'.'||table_name;
+                IF schema_name is null then
+                        raise notice 'no schema';
+                        return 'FAIL';
+                else
+                        if table_name is null then
+                                raise notice 'no table';
+                                return 'FAIL';
+                        end if;
+                end if;
+        END;
+        Raise Notice 'Ending - Checking table';
+
+        Raise Notice 'Starting - Checking columns';
+        BEGIN
+                raise debug 'Checking exitance of necessary columns inside % table', edge_table;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(id) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no id column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(source) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no source column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(target) ||')' into naming;
+                if naming.pgr_iscolumnintable = 'f' then
+                        raise notice 'no target column';
+                        return 'FAIL';
+                end if;
+                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(subgraph) ||')' into naming;
+                if naming.pgr_iscolumnintable = 't' then
+                        raise notice 'subgraph column already in the table';
+                        return 'FAIL';
+                end if;
+        END;
+        Raise Notice 'Ending - Checking columns';
+
+        Raise Notice 'Starting - Checking rows_where condition';
+        BEGIN
+                raise debug 'Checking rows_where condition';
+                query='select count(*) from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where;
+                execute query into ecnt;
+                raise debug '-->Rows where condition: OK';
+                raise debug '    --> OK';
+                EXCEPTION WHEN OTHERS THEN
+                        raise notice 'Got %', SQLERRM;
+                        Raise notice 'ERROR: Condition is not correct. Please execute the following query to test your condition';
+                        Raise notice '%', query;
+                        return 'FAIL';
+        END;
+        Raise Notice 'Ending - Checking rows_where condition';
+
+        garbage := 'garbage001';
+        incre := 1;
+        Raise Notice 'Starting - Checking temporary column';
+        Begin
+                raise debug 'Checking Checking temporary columns existance';
+
+                While True
+                        Loop
+                                execute 'select * from pgr_isColumnInTable('|| quote_literal(table_schema_name) ||', '|| quote_literal(garbage) ||')' into naming;
+                                If naming.pgr_iscolumnintable = 't' THEN
+                                        incre := incre + 1;
+                                        garbage := 'garbage00'||incre||'';
+                                ELSE
+                                        EXIT;
+                                END IF;
+                        End Loop;
+        End;
+        Raise Notice 'Ending - Checking temporary column';
+
+        Raise Notice 'Starting - Calculating subgraphs';
+        BEGIN
+                --------- Add necessary columns ----------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(subgraph) || ' INTEGER DEFAULT -1';
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' ADD COLUMN ' || pgr_quote_ident(garbage) || ' INTEGER DEFAULT 0';
+                graph_id := 1;
+
+                EXECUTE 'select count(*) as count from '|| pgr_quote_ident(table_schema_name) ||' where '|| rows_where ||'' into rec_count;
+                if rec_count.count = 0 then
+                        RETURN 'rows_where condition generated 0 rows';
+                end if;
+
+                WHILE TRUE
+                        LOOP
+                                ---------- Assign the very first -1 row graph_id ----------
+                                EXECUTE 'SELECT ' || pgr_quote_ident(id) || ' AS gid FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1 LIMIT 1' INTO rec_single;
+                                EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec_single.gid || '';
+
+                                --------- Search other rows with that particular graph_id -----------
+                                WHILE TRUE
+                                        LOOP
+                                                EXECUTE 'SELECT COUNT(*) FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0' into rec_count;
+                                                ----------- The following if else will check those rows which already have entertained ------------
+                                                IF (rec_count.count > 0) THEN
+                                                        sql1 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' AND ' || pgr_quote_ident(garbage) || ' = 0';
+                                                        FOR rec1 IN EXECUTE sql1
+                                                                LOOP
+                                                                        sql2 := 'SELECT ' || pgr_quote_ident(id) || ' AS gid, ' || pgr_quote_ident(source) || ' AS source, ' || pgr_quote_ident(target) || ' AS target FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| pgr_quote_ident(source) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.source ||' OR '|| pgr_quote_ident(source) ||' = '|| rec1.target ||' OR '|| pgr_quote_ident(target) ||' = '|| rec1.target ||'';
+                                                                        FOR rec2 IN EXECUTE sql2
+                                                                                LOOP
+                                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(subgraph) || ' = ' || graph_id || ' WHERE ' || pgr_quote_ident(id) || ' = ' || rec2.gid || '';
+                                                                                END LOOP;
+                                                                        EXECUTE 'UPDATE '|| pgr_quote_ident(table_schema_name) ||' SET ' || pgr_quote_ident(garbage) || ' = 1 WHERE ' || pgr_quote_ident(id) || ' = ' || rec1.gid || '';
+                                                                END LOOP;
+                                                ELSE
+                                                        EXIT;
+                                                END IF;
+                                        END LOOP;
+
+                                ------ Following is to exit the while loop. 0 means no more -1 id.
+                                EXECUTE 'SELECT COUNT(*) AS count FROM '|| pgr_quote_ident(table_schema_name) ||' WHERE '|| rows_where ||' AND ' || pgr_quote_ident(subgraph) || ' = -1' INTO rec_count;
+                                If (rec_count.count = 0) THEN
+                                        EXIT;
+                                ELSE
+                                        graph_id := graph_id + 1;
+                                END IF;
+                        END LOOP;
+
+                ----------- Drop garbage column ------------
+                EXECUTE 'ALTER TABLE '|| pgr_quote_ident(table_schema_name) ||' DROP COLUMN ' || pgr_quote_ident(garbage) ||'';
+                Raise Notice 'Successfully complicated calculating subgraphs';
+        END;
+        Raise Notice 'Ending - Calculating subgraphs';
+
+        RETURN 'OK';
+
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_withPointsCostMatrix(
+    edges_sql TEXT,
+    points_sql TEXT,
+    pids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    driving_side CHAR DEFAULT 'b', -- 'r'/'l'/'b'/NULL
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_pid, a.end_pid, a.agg_cost
+        FROM _pgr_withPoints($1, $2, $3, $3, $4,  $5, TRUE, TRUE) AS a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+--  DIJKSTRA DMatrix
+
+
+
+CREATE OR REPLACE FUNCTION pgr_dijkstraCostMatrix(edges_sql TEXT, vids ANYARRAY, directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_dijkstra(_pgr_get_statement($1), $2, $2, $3, true) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+
+--  BIDIRECTIONAL DIJKSTRA Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdDijkstraCostMatrix(edges_sql TEXT, vids ANYARRAY, directed BOOLEAN DEFAULT true,
+    OUT start_vid BIGINT, OUT end_vid BIGINT, OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdDijkstra(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_astarCostMatrix(
+    edges_sql TEXT, -- XY edges sql
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor FLOAT DEFAULT 1.0,
+    epsilon FLOAT DEFAULT 1.0,
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost FLOAT)
+
+RETURNS SETOF RECORD AS
+$BODY$
+BEGIN
+    RETURN query SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_astar(_pgr_get_statement($1), $2, $2, $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+--  BIDIRECTIONAL ASTAR Matrix
+
+
+CREATE OR REPLACE FUNCTION pgr_bdAstarCostMatrix(
+    edges_sql TEXT,
+    vids ANYARRAY,
+    directed BOOLEAN DEFAULT true,
+    heuristic INTEGER DEFAULT 5,
+    factor NUMERIC DEFAULT 1.0,
+    epsilon NUMERIC DEFAULT 1.0,
+
+    OUT start_vid BIGINT,
+    OUT end_vid BIGINT,
+    OUT agg_cost float)
+RETURNS SETOF RECORD AS
+$BODY$
+    SELECT a.start_vid, a.end_vid, a.agg_cost
+    FROM _pgr_bdAstar(_pgr_get_statement($1), $2::BIGINT[], $2::BIGINT[], $3, $4, $5::FLOAT, $6::FLOAT, true) a;
+$BODY$
+LANGUAGE sql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_bdAstarCostMatrix(TEXT, ANYARRAY, BOOLEAN, INTEGER, NUMERIC, NUMERIC) IS 'pgr_bdAstarCostMatrix';
+
+
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_getTableName(IN tab text,OUT sname text,OUT tname text)
+RETURNS RECORD AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getTableName: This function will no longer be soported';
+    select * from _pgr_getTableName(tab, 0, 'pgr_getTableName') into sname,tname;
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_getColumnName(tab text, col text)
+RETURNS text AS
+$BODY$
+BEGIN
+    raise notice 'pgr_getColumnName: This function will no longer be soported';
+    return _pgr_getColumnName(tab,col, 0, 'pgr_getColumnName');
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnInTable(tab text, col text)
+RETURNS boolean AS
+$BODY$
+DECLARE
+    cname text;
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    select * from _pgr_getColumnName(tab,col,0, 'pgr_isColumnInTable') into cname;
+    return  cname IS not NULL;
+END;
+$BODY$
+  LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_isColumnIndexed(tab text, col text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnIndexed: This function will no longer be soported';
+    return  _pgr_isColumnIndexed(tab,col);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+
+create or replace function pgr_quote_ident(idname text)
+returns text as
+$BODY$
+BEGIN
+    raise notice 'pgr_isColumnInTable: This function will no longer be soported';
+    return  _pgr_quote_ident(idname);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+CREATE OR REPLACE FUNCTION pgr_versionless(v1 text, v2 text)
+RETURNS boolean AS
+$BODY$
+BEGIN
+    raise notice 'pgr_versionless: This function will no longer be soported';
+    return  _pgr_versionless(v1,v2);
+END;
+$BODY$
+LANGUAGE plpgsql VOLATILE STRICT;
+
+create or replace function pgr_startPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_startPoint: This function will no longer be soported';
+    return  _pgr_startPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+create or replace function pgr_endPoint(g geometry)
+    returns geometry as
+$body$
+BEGIN
+    raise notice 'pgr_endPoint: This function will no longer be soported';
+    return  _pgr_endPoint(g);
+END;
+$body$
+language plpgsql IMMUTABLE;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_apspJohnson(edges_sql text)
+    RETURNS SETOF pgr_costResult AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function: Use pgr_johnson instead';
+      has_reverse =_pgr_parameter_check('johnson', edges_sql, false);
+      sql = edges_sql;
+      IF (has_reverse) THEN
+           RAISE NOTICE 'reverse_cost column found, removing.';
+           sql = 'SELECT source, target, cost FROM (' || edges_sql || ') a';
+      END IF;
+
+      RETURN query
+         SELECT (row_number() over () - 1)::integer as seq, start_vid::integer AS id1, end_vid::integer AS id2, agg_cost AS cost
+         FROM  pgr_johnson(sql, TRUE);
+  END
+$BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+CREATE OR REPLACE FUNCTION pgr_apspWarshall(edges_sql text, directed boolean, has_rcost boolean)
+    RETURNS SETOF pgr_costResult AS
+  $BODY$
+  DECLARE
+  has_reverse boolean;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function: Use pgr_floydWarshall instead';
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+      sql := edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_reverse) THEN
+           sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+         ELSE raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+         END IF;
+      END IF;
+
+      RETURN query
+         SELECT (row_number() over () -1)::integer as seq, start_vid::integer AS id1, end_vid::integer AS id2, agg_cost AS cost
+         FROM  pgr_floydWarshall(sql, directed);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_astar(edges_sql TEXT, source_id INTEGER, target_id INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated signature pgr_astar(text, integer, integer, boolean, boolean)';
+    has_reverse =_pgr_parameter_check('astar', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost, x1,y1, x2, y2 FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq - 1 AS seq, node::INTEGER AS id1, edge::INTEGER AS id2, cost
+    FROM pgr_astar(sql, ARRAY[$2], ARRAY[$3], directed);
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdAstar(
+    sql TEXT,
+    source_vid INTEGER,
+    target_vid INTEGER,
+    directed BOOLEAN,
+    has_reverse_cost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdAstar';
+    has_reverse =_pgr_parameter_check('astar', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdAstar(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_bdDijkstra(edges_sql TEXT, start_vid INTEGER, end_vid INTEGER, directed BOOLEAN, has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated Signature of pgr_bdDijkstra';
+    has_reverse =_pgr_parameter_check('dijkstra', $1, false);
+    new_sql = $1;
+    IF (has_reverse != $5) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || $1 || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_bdDijkstra(new_sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstraPath(
+    sql text,
+    source INTEGER,
+    targets INTEGER ARRAY,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+    RETURNS SETOF pgr_costResult3 AS
+    $BODY$
+    DECLARE
+    has_reverse BOOLEAN;
+    new_sql TEXT;
+    result pgr_costResult3;
+    tmp pgr_costResult3;
+    sseq INTEGER;
+    i INTEGER;
+    BEGIN
+        RAISE NOTICE 'Deprecated function: Use pgr_dijkstra instead.';
+        has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+        new_sql = sql;
+        IF (array_ndims(targets) != 1) THEN
+            raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+
+        IF (has_reverse != has_rcost) THEN
+            IF (has_reverse) THEN
+                new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+            ELSE
+                raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+                USING ERRCODE = 'XX000';
+            END IF;
+        END IF;
+        SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+        sseq = 0; i = 1;
+        FOR result IN
+            SELECT seq, a.end_vid::INTEGER AS id1, a.node::INTEGER AS i2, a.edge::INTEGER AS id3, cost
+            FROM pgr_dijkstra(new_sql, source, targets, directed) a ORDER BY a.end_vid, seq LOOP
+            WHILE (result.id1 != targets[i]) LOOP
+                tmp.seq = sseq;
+                tmp.id1 = targets[i];
+                IF (targets[i] = source) THEN
+                    tmp.id2 = source;
+                    tmp.cost =0;
+                ELSE
+                    tmp.id2 = 0;
+                    tmp.cost = -1;
+                END IF;
+                tmp.id3 = -1;
+                RETURN next tmp;
+                i = i + 1;
+                sseq = sseq + 1;
+            END LOOP;
+        IF (result.id1 = targets[i] AND result.id3 != -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+        IF (result.id1 = targets[i] AND result.id3 = -1) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+            CONTINUE;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.id2 = source;
+            tmp.cost = 0;
+        ELSE
+            tmp.id2 = 0;
+            tmp.cost = -1;
+        END IF;
+        tmp.id3 = -1;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+CREATE OR REPLACE FUNCTION pgr_kdijkstracost(
+    sql text,
+    source INTEGER,
+    targets INTEGER array,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costResult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+new_sql TEXT;
+result pgr_costResult;
+tmp pgr_costResult;
+sseq INTEGER;
+i INTEGER;
+BEGIN
+    RAISE NOTICE 'Deprecated function. Use pgr_dijkstraCost instead.';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    new_sql = sql;
+    IF (array_ndims(targets) != 1) THEN
+        raise EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+        USING ERRCODE = 'XX000';
+    END IF;
+
+
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            new_sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            RAISE EXCEPTION 'Error, reverse_cost is used, but query did''t return ''reverse_cost'' column'
+            USING ERRCODE = 'XX000';
+        END IF;
+    END IF;
+
+    SELECT ARRAY(SELECT DISTINCT UNNEST(targets) ORDER BY 1) INTO targets;
+
+    sseq = 0; i = 1;
+    FOR result IN
+        SELECT ((row_number() over()) -1)::INTEGER, a.start_vid::INTEGER, a.end_vid::INTEGER, agg_cost
+        FROM pgr_dijkstraCost(new_sql, source, targets, directed) a ORDER BY end_vid LOOP
+        WHILE (result.id2 != targets[i]) LOOP
+            tmp.seq = sseq;
+            tmp.id1 = source;
+            tmp.id2 = targets[i];
+            IF (targets[i] = source) THEN
+                tmp.cost = 0;
+            ELSE
+                tmp.cost = -1;
+            END IF;
+            RETURN next tmp;
+            i = i + 1;
+            sseq = sseq + 1;
+        END LOOP;
+        IF (result.id2 = targets[i]) THEN
+            result.seq = sseq;
+            RETURN next result;
+            i = i + 1;
+            sseq = sseq + 1;
+        END IF;
+    END LOOP;
+    WHILE (i <= array_length(targets,1)) LOOP
+        tmp.seq = sseq;
+        tmp.id1 = source;
+        tmp.id2 = targets[i];
+        IF (targets[i] = source) THEN
+            tmp.cost = 0;
+        ELSE
+            tmp.cost = -1;
+        END IF;
+        RETURN next tmp;
+        i = i + 1;
+        sseq = sseq + 1;
+    END LOOP;
+
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+
+
+
+create or replace function pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    returns integer as
+$body$
+
+declare
+    rr record;
+    pct float;
+    debuglevel text;
+
+begin
+    -- find the closest edge within tol distance
+    execute 'select * from ' || _pgr_quote_ident(edges) ||
+            ' where st_dwithin(''' || pnt::text ||
+            '''::geometry, the_geom, ' || tol || ') order by st_distance(''' || pnt::text ||
+            '''::geometry, the_geom) asc limit 1' into rr;
+
+    if rr.the_geom is not null then
+        -- deal with MULTILINESTRINGS
+        if geometrytype(rr.the_geom)='MULTILINESTRING' THEN
+            rr.the_geom := ST_GeometryN(rr.the_geom, 1);
+        end if;
+
+        -- project the point onto the linestring
+        execute 'show client_min_messages' into debuglevel;
+        SET client_min_messages='ERROR';
+        pct := st_line_locate_point(rr.the_geom, pnt);
+        execute 'set client_min_messages  to '|| debuglevel;
+
+        -- return the node we are closer to
+        if pct < 0.5 then
+            return rr.source;
+        else
+            return rr.target;
+        end if;
+    else
+        -- return a failure to find an edge within tol distance
+        return -1;
+    end if;
+end;
+$body$
+  language plpgsql volatile
+  cost 5;
+
+
+----------------------------------------------------------------------------
+
+create or replace function pgr_flipedges(ga geometry[])
+    returns geometry[] as
+$body$
+
+declare
+    nn integer;
+    i integer;
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_flipEdges';
+    -- get the count of edges, and return if only one edge
+    nn := array_length(ga, 1);
+    if nn=1 then
+        return ga;
+    end if;
+
+    -- determine if first needs to be flipped
+    g := _pgr_startpoint(ga[1]);
+
+    -- if the start of the first is connected to the second then it needs to be flipped
+    if _pgr_startpoint(ga[2])=g or _pgr_endpoint(ga[2])=g then
+        ga[1] := st_reverse(ga[1]);
+    end if;
+    g := _pgr_endpoint(ga[1]);
+
+    -- now if  the end of the last edge matchs the end of the current edge we need to flip it
+    for i in 2 .. nn loop
+        if _pgr_endpoint(ga[i])=g then
+            ga[i] := st_reverse(ga[i]);
+        end if;
+        -- save the end of this edge into the last end for the next cycle
+        g := _pgr_endpoint(ga[i]);
+    end loop;
+
+    return ga;
+end;
+$body$
+    language plpgsql immutable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_texttopoints(pnts text, srid integer DEFAULT(4326))
+    returns geometry[] as
+$body$
+
+declare
+    a text[];
+    t text;
+    p geometry;
+    g geometry[];
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_textToPoints';
+    -- convert commas to space and split on ';'
+    a := string_to_array(replace(pnts, ',', ' '), ';');
+    -- convert each 'x y' into a point geometry and concattenate into a new array
+    for t in select unnest(a) loop
+        p := st_pointfromtext('POINT(' || t || ')', srid);
+        g := g || p;
+    end loop;
+
+    return g;
+end;
+$body$
+    language plpgsql immutable;
+
+-----------------------------------------------------------------------
+
+create or replace function pgr_pointstovids(pnts geometry[], edges text, tol float8 DEFAULT(0.01))
+    returns integer[] as
+$body$
+
+declare
+    v integer[];
+    g geometry;
+
+begin
+    RAISE NOTICE 'Deperecated function: pgr_pointsToVids';
+    -- cycle through each point and locate the nearest edge and vertex on that edge
+    for g in select unnest(pnts) loop
+        v := v || pgr_pointtoedgenode(edges, g, tol);
+    end loop;
+
+    return v;
+end;
+$body$
+    language plpgsql stable;
+
+
+create or replace function pgr_pointstodmatrix(pnts geometry[], mode integer default (0), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+
+declare
+    r record;
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_pointsToDMatrix';
+    dmatrix := array[]::double precision[];
+    ids := array[]::integer[];
+
+    -- create an id for each point in the array and unnest it into a table nodes in the with clause
+    for r in with nodes as (select row_number() over()::integer as id, p from (select unnest(pnts) as p) as foo)
+        -- compute a row of distances
+        select i, array_agg(dist) as arow from (
+            select a.id as i, b.id as j,
+                case when mode=0
+                    then st_distance(a.p, b.p)
+                    else st_distance_sphere(a.p, b.p)
+                end as dist
+              from nodes a, nodes b
+             order by a.id, b.id
+           ) as foo group by i order by i loop
+
+        -- you must concat an array[array[]] to make dmatrix[][]
+        -- concat the row of distances to the dmatrix
+        dmatrix := array_cat(dmatrix, array[r.arow]);
+        ids := ids || array[r.i];
+    end loop;
+end;
+$body$
+    language plpgsql stable;
+
+
+------------------------------------------------------------------------------
+
+create or replace function pgr_vidstodmatrix(IN vids integer[], IN pnts geometry[], IN edges text, tol float8 DEFAULT(0.1), OUT dmatrix double precision[], OUT ids integer[])
+    returns record as
+$body$
+
+declare
+    i integer;
+    j integer;
+    nn integer;
+    rr record;
+    bbox geometry;
+    t float8[];
+
+begin
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    -- check if the input arrays has any -1 values, maybe this whould be a raise exception
+    if vids @> ARRAY[-1] then
+    raise notice 'Some vids are undefined (-1)!';
+    dmatrix := null;
+    ids := null;
+    return;
+    end if;
+
+    ids := vids;
+
+    -- get the count of nodes
+    nn := array_length(vids,1);
+
+    -- zero out a dummy row
+    for i in 1 .. nn loop
+        t := t || 0.0::float8;
+    end loop;
+
+    -- using the dummy row, zero out the whole matrix
+    for i in 1 .. nn loop
+    dmatrix := dmatrix || ARRAY[t];
+    end loop;
+
+    for i in 1 .. nn-1 loop
+        j := i;
+        -- compute the bbox for the point needed for this row
+        select st_expand(st_collect(pnts[id]), tol) into bbox
+          from (select generate_series as id from generate_series(i, nn)) as foo;
+
+        -- compute kdijkstra() for this row
+        for rr in execute 'select * from pgr_dijkstracost($1, $2, $3, false)'
+                  using 'select id, source, target, cost from ' || edges ||
+                        ' where the_geom && ''' || bbox::text || '''::geometry'::text, vids[i], vids[i+1:nn] loop
+
+            -- TODO need to check that all node were reachable from source
+            -- I think unreachable paths between nodes returns cost=-1.0
+
+            -- populate the matrix with the cost values, remember this is symmetric
+            j := j + 1;
+            -- raise notice 'cost(%,%)=%', i, j, rr.agg_cost;
+            dmatrix[i][j] := rr.agg_cost;
+            dmatrix[j][i] := rr.agg_cost;
+        end loop;
+    end loop;
+
+end;
+$body$
+    language plpgsql stable cost 200;
+
+
+
+CREATE OR REPLACE FUNCTION pgr_vidsToDMatrix(sql TEXT, vids  INTEGER[], dir BOOLEAN, has_rcost BOOLEAN, want_symmetric BOOLEAN)
+RETURNS float8[] AS
+$BODY$
+DECLARE
+directed BOOLEAN;
+has_reverse BOOLEAN;
+edges_sql TEXT;
+dmatrix_row float8[];
+dmatrix float8[];
+cell RECORD;
+unique_vids INTEGER[];
+total BIGINT;
+from_v BIGINT;
+to_v BIGINT;
+BEGIN
+    RAISE NOTICE 'Deprecated function pgr_vidsToDMatrix';
+    has_reverse =_pgr_parameter_check('dijkstra', sql, false);
+    edges_sql = sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    unique_vids :=  ARRAY(SELECT DISTINCT UNNEST(vids) ORDER BY 1);
+
+    IF want_symmetric THEN
+        directed = false;
+    ELSE
+        directed = dir;
+    END IF;
+
+    total := array_length(unique_vids, 1);
+
+    -- initializing dmatrix
+    FOR i in 1 .. total LOOP
+        dmatrix_row := dmatrix_row || '+Infinity'::float8;
+    END LOOP;
+    FOR i in 1 .. total LOOP
+    dmatrix := dmatrix || ARRAY[dmatrix_row];
+    dmatrix[i][i] = 0;
+    END LOOP;
+
+    CREATE TEMP TABLE __x___y____temp AS
+        WITH result AS
+            (SELECT unnest(unique_vids) AS vid)
+        SELECT row_number() OVER() AS idx, vid FROM result;
+
+    FOR cell IN SELECT * FROM pgr_dijkstraCostMatrix(sql, unique_vids, directed) LOOP
+        SELECT idx INTO from_v FROM __x___y____temp WHERE vid =  cell.start_vid;
+        SELECT idx INTO to_v FROM __x___y____temp WHERE vid =  cell.end_vid;
+
+        dmatrix[from_v][to_v] = cell.agg_cost;
+        dmatrix[to_v][from_v] = cell.agg_cost;
+    END LOOP;
+
+    DROP TABLE IF EXISTS __x___y____temp;
+    RETURN dmatrix;
+
+    EXCEPTION WHEN others THEN
+       DROP TABLE IF EXISTS __x___y____temp;
+       raise exception '% %', SQLERRM, SQLSTATE;
+END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100;
+
+
+
+-- V2 signature
+CREATE OR REPLACE FUNCTION pgr_dijkstra(
+    edges_sql TEXT,
+    start_vid INTEGER,
+    end_vid INTEGER,
+    directed BOOLEAN,
+    has_rcost BOOLEAN)
+RETURNS SETOF pgr_costresult AS
+$BODY$
+DECLARE
+has_reverse BOOLEAN;
+sql TEXT;
+BEGIN
+    RAISE NOTICE 'Deprecated function';
+    has_reverse =_pgr_parameter_check('dijkstra', edges_sql, false);
+    sql = edges_sql;
+    IF (has_reverse != has_rcost) THEN
+        IF (has_reverse) THEN
+            sql = 'SELECT id, source, target, cost FROM (' || edges_sql || ') a';
+        ELSE
+            raise EXCEPTION 'has_rcost set to true but reverse_cost not found';
+        END IF;
+    END IF;
+
+    RETURN query SELECT seq-1 AS seq, node::integer AS id1, edge::integer AS id2, cost
+    FROM _pgr_dijkstra(sql, ARRAY[$2]::BIGINT[], ARRAY[$3]::BIGINT[], directed, false);
+  END
+$BODY$
+LANGUAGE plpgsql VOLATILE
+COST 100
+ROWS 1000;
+COMMENT ON FUNCTION pgr_dijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN) IS 'pgr_dijkstra(Deprecated signature)';
+
+
+
+
+
+-- OLD SIGNATURE
+CREATE OR REPLACE FUNCTION pgr_drivingDistance(edges_sql text, source BIGINT, distance FLOAT, directed BOOLEAN, has_rcost BOOLEAN)
+  RETURNS SETOF pgr_costresult AS
+  $BODY$
+  DECLARE
+  has_reverse BOOLEAN;
+  sql TEXT;
+  BEGIN
+      RAISE NOTICE 'Deprecated function';
+
+      has_reverse =_pgr_parameter_check('dijkstra', edges_sql, FALSE);
+
+      sql = edges_sql;
+      IF (has_reverse != has_rcost) THEN
+         IF (has_reverse) THEN
+             -- the user says it doesn't have reverse cost but its false
+             -- removing from query
+             RAISE NOTICE 'Contradiction found: has_rcost set to false but reverse_cost column found';
+             sql = 'SELECT id, source, target, cost, -1 as reverse_cost FROM (' || edges_sql || ') __q ';
+         ELSE
+             -- the user says it has reverse cost but its false
+             -- can't do anything
+             RAISE EXCEPTION 'has_rcost set to true but reverse_cost not found';
+         END IF;
+      END IF;
+
+      RETURN query SELECT seq - 1 AS seq, node::integer AS id1, edge::integer AS id2, agg_cost AS cost
+                FROM pgr_drivingDistance($1, ARRAY[$2]::BIGINT[], $3, $4, false);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE
+  COST 100
+  ROWS 1000;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maximumcardinalitymatching(
+    edges_sql TEXT,
+    directed BOOLEAN DEFAULT TRUE,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT
+    )
+  RETURNS SETOF RECORD AS
+ '$libdir/libpgrouting-2.5', 'maximum_cardinality_matching'
+    LANGUAGE c VOLATILE;
+
+
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+--INTERNAL FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertex BIGINT,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertex BIGINT,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+
+--FUNCTIONS
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowPushRelabel(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_PushRelabel($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowBoykovKolmogorov(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_boykovKolmogorov($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+CREATE OR REPLACE FUNCTION pgr_maxFlowEdmondsKarp(
+    edges_sql TEXT,
+    source_vertices ANYARRAY,
+    sink_vertices ANYARRAY,
+    OUT seq INTEGER,
+    OUT edge_id BIGINT,
+    OUT source BIGINT,
+    OUT target BIGINT,
+    OUT flow BIGINT,
+    OUT residual_capacity BIGINT
+    )
+  RETURNS SETOF RECORD AS
+  $BODY$
+  BEGIN
+        RETURN QUERY SELECT *
+        FROM pgr_edmondsKarp($1, $2, $3);
+  END
+  $BODY$
+  LANGUAGE plpgsql VOLATILE;
+
+
+
+
+------------------------
+-- deprecated signatures
+-----------------------
+
+COMMENT ON FUNCTION pgr_astar(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_astar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdAstar( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdAstar(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_bdDijkstra( TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_bdDijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_dijkstra(TEXT, INTEGER, INTEGER, BOOLEAN, BOOLEAN)
+    IS 'pgr_dijkstra(Deprecated signature)';
+
+COMMENT ON FUNCTION pgr_drivingDistance(text,  BIGINT,  FLOAT8,  BOOLEAN,  BOOLEAN)
+    IS 'pgr_drivingDistance(Deprecated signature)';
+
+------------------------
+-- Renamed /deprecated
+-----------------------
+COMMENT ON FUNCTION pgr_apspJohnson(TEXT)
+    IS 'pgr_apspJohnson(Renamed function) use pgr_Johnson instead';
+
+COMMENT ON FUNCTION pgr_apspWarshall(text, boolean, boolean)
+    IS 'pgr_apspWarshall(Renamed function) use pgr_floydWarshall instead';
+
+COMMENT ON FUNCTION pgr_kdijkstraPath( text, INTEGER, INTEGER ARRAY, BOOLEAN, BOOLEAN)
+    IS 'pgr_kdijkstraPath(Renamed function) use pgr_dijkstra instead';
+
+COMMENT ON FUNCTION pgr_kdijkstracost( text, INTEGER, INTEGER array, BOOLEAN, BOOLEAN)
+    IS 'pgr_kDijkstraCost(Renamed function) use pgr_dijkstraCost instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+COMMENT ON FUNCTION  pgr_maxFlowPushRelabel(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowPushRelabel(Renamed function) use pgr_pushRelabel instead';
+
+
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+COMMENT ON FUNCTION  pgr_maxFlowEdmondsKarp(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowEdmondsKarp(Renamed function) use pgr_edmondsKarp instead';
+
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, BIGINT, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, BIGINT)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+COMMENT ON FUNCTION  pgr_maxFlowBoykovKolmogorov(TEXT, ANYARRAY, ANYARRAY)
+    IS 'pgr_maxFlowBoykovKolmogorov(Renamed function) use pgr_boykovKolmogorov instead';
+
+
+COMMENT ON FUNCTION pgr_gsoc_vrppdtw( text, INTEGER, INTEGER)
+    IS 'pgr_gsoc_vrppdtw(Renamed function) use pgr_pickDeliverEuclidean instead';
+
+------------------------
+-- Deprecated functions
+-----------------------
+
+COMMENT ON FUNCTION pgr_flipedges(geometry[])
+    IS 'pgr_flipedges(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_texttopoints(text,  integer)
+    IS 'pgr_texttopoints(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstovids(pnts geometry[], edges text, tol float8)
+    IS 'pgr_pointstovids(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointtoedgenode(edges text, pnt geometry, tol float8)
+    IS 'pgr_pointtoedgenode(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_pointstodmatrix(geometry[], integer)
+    IS 'pgr_pointstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidstodmatrix( integer[],  geometry[],  text, float8)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_vidsToDMatrix(TEXT,  INTEGER[], BOOLEAN, BOOLEAN, BOOLEAN)
+    IS 'pgr_vidstodmatrix(Deprecated function)';
+
+
+
+
+COMMENT ON FUNCTION pgr_getTableName(IN tab text)
+    IS 'pgr_getTableName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_getColumnName(tab text, col text)
+    IS 'pgr_getColumnName(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnInTable(tab text, col text)
+    IS 'pgr_isColumnInTable(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_isColumnIndexed(tab text, col text)
+    IS 'pgr_isColumnIndexed(Deprecated function)';
+
+
+COMMENT ON FUNCTION pgr_quote_ident(idname text)
+    IS 'pgr_quote_ident(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_versionless(v1 text, v2 text)
+    IS 'pgr_versionless(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_startPoint(g geometry)
+    IS 'pgr_startPoint(Deprecated function)';
+
+COMMENT ON FUNCTION pgr_endPoint(g geometry)
+    IS 'pgr_endPoint(Deprecated function)';
diff --git a/tools/template/create.sh b/tools/template/create.sh
index faa6863..cc0968c 100644
--- a/tools/template/create.sh
+++ b/tools/template/create.sh
@@ -1,27 +1,61 @@
 #!/bin/bash
 
+function usage() {
+if [  "$#" -lt 1 ] ; then
+    echo "Usage: sh ./create.sh <action>"
+    echo "  <action> = clean, overwrite, missing"
+    echo "  clean action will:   ONLY ACTIVE ONE"
+    echo "    - remove the directories:"
+    echo "      src/MY_FUNCTION_NAME/src"
+    echo "      src/MY_FUNCTION_NAME/doc"
+    echo "      src/MY_FUNCTION_NAME/test"
+    echo "      include/drivers/MY_FUNCTION_NAME"
+    echo "    - and start from scratch"
+    echo "  overwrite action will: TODO"
+    echo "    -  overwite the files if they exist"
+    echo "  missing will: TODO"
+    echo "    - skip files that exist"
+    echo "    - write the missing files only"
+    exit 1
+fi
+}
+
+ACTION="$1"
+
+if [[  ! ( "$1" == "clean" || "$1" == "overwrite" || "$1" == "missing" ) ]] ; then
+    usage
+fi
+
+
 
 #dont put pgr_ on MY_FUNCTION_NAME that is done automatically
 MY_FUNCTION_NAME="funnyDijkstra"
 DEVELOPER_NAME="Celia Virginia Vergara Castillo"
-DEVELOPER_EMAIL="vicky_vergara at hotmail.com" 
-YEAR="2016"
+DEVELOPER_EMAIL="vicky_vergara\@hotmail.com" 
+YEAR="2017"
 
 # Note: the "\n     " (change line and four spaces) after each comma
 # first line are the inputs
+#   - the compulsory parameters with no name
+#   - the optional parameters with name
 # second line are the outputs
-MY_QUERY_LINE1="edges_sql TEXT,\n    start_vid BIGINT,\n    end_vid BIGINT,\n    directed BOOLEAN DEFAULT true,\n    only_cost BOOLEAN DEFAULT false,"
+#   - all with a name
+
+MY_QUERY_LINE1="TEXT,\n    BIGINT,\n    BIGINT,\n    directed BOOLEAN DEFAULT true,\n    only_cost BOOLEAN DEFAULT false,"
 MY_QUERY_LINE2="    OUT seq INTEGER,\n    OUT path_seq INTEGER,\n    OUT node BIGINT,\n    OUT edge BIGINT,\n    OUT cost FLOAT,\n    OUT agg_cost FLOAT"
 
 
-MY_RETURN_VALUE_TYPE="General_path_element_t" 
 MY_FUNCTION_NAME_UPPER=$(echo $MY_FUNCTION_NAME | tr 'a-z' 'A-Z')
 MY_FUNCTION_NAME_LOWER=$(echo $MY_FUNCTION_NAME | tr 'A-Z' 'a-z')
 
 # Available types to store the edge information:
 #  http://docs.pgrouting.org/doxy/dev/structpgr__edge__t.html
 #  http://docs.pgrouting.org/doxy/dev/structPgr__edge__xy__t.html
+MY_RETURN_VALUE_TYPE="General_path_element_t" 
+MY_RETURN_VALUE_FILE=$(echo $MY_RETURN_VALUE_TYPE | tr 'A-Z' 'a-z')
+
 MY_EDGE_TYPE="pgr_edge_t"
+MY_EDGE_FILE=$(echo $MY_EDGE_TYPE | tr 'A-Z' 'a-z')
 
 # Available functions that read the edge information:
 # http://docs.pgrouting.org/doxy/dev/edges__input_8h.html#
@@ -37,115 +71,92 @@ if test -z "$MY_FUNCTION_NAME"; then
     exit
 fi
 
-#if a directory named MY_FUNCTION_NAME exist we stop
-if [ -d "$MY_FUNCTION_NAME" ]; then
-    echo "directory exists please delete first"
-    exit 1
-fi
-if [ -d ../../src/"$MY_FUNCTION_NAME" ]; then
-    echo "directory exists please delete first"
-    exit 1
+if [ -d ./$MY_FUNCTION_NAME ]; then
+    rm -rf ./$MY_FUNCTION_NAME
 fi
 
 mkdir "$MY_FUNCTION_NAME"
 
-#copy the subdirectories
+#copy to a working subdirectory 
 cp -r sql  "$MY_FUNCTION_NAME"
 cp -r doc  "$MY_FUNCTION_NAME"
 cp -r test  "$MY_FUNCTION_NAME"
-cp -r  src  "$MY_FUNCTION_NAME"
-
-
-
-#####   SQL   #########
-echo "updating the /sql/CMakeLists.txt"
-sed -i "s/MY_FUNCTION_NAME/$MY_FUNCTION_NAME/" "$MY_FUNCTION_NAME"/sql/CMakeLists.txt
-
-# /sql/function1.sql   
-echo "Updating the .sql in sql"
-sed -i "s/MY_QUERY_LINE1/$MY_QUERY_LINE1/" "$MY_FUNCTION_NAME"/sql/function1.sql
-sed -i "s/MY_QUERY_LINE2/$MY_QUERY_LINE2/" "$MY_FUNCTION_NAME"/sql/function1.sql
-sed -i "s/MY_FUNCTION_NAME/$MY_FUNCTION_NAME/" "$MY_FUNCTION_NAME"/sql/function1.sql
-sed -i "s/DEVELOPER_NAME/$DEVELOPER_NAME/" "$MY_FUNCTION_NAME"/sql/function1.sql
-sed -i "s/DEVELOPER_EMAIL/$DEVELOPER_EMAIL/" "$MY_FUNCTION_NAME"/sql/function1.sql
-sed -i "s/YEAR/$YEAR/" "$MY_FUNCTION_NAME"/sql/function1.sql
-mv "$MY_FUNCTION_NAME"/sql/function1.sql "$MY_FUNCTION_NAME"/sql/"$MY_FUNCTION_NAME".sql
-
-
-#####   SRC   #########
-echo "updating the /sql/CMakeLists.txt"
-sed -i "s/MY_FUNCTION_NAME/$MY_FUNCTION_NAME/" "$MY_FUNCTION_NAME"/src/CMakeLists.txt
-
-echo "updating the function1.c file in src"
-sed -i "s/MY_FUNCTION_NAME/$MY_FUNCTION_NAME/" "$MY_FUNCTION_NAME"/src/function1.c
-sed -i "s/DEVELOPER_NAME/$DEVELOPER_NAME/" "$MY_FUNCTION_NAME"/src/function1.c
-sed -i "s/DEVELOPER_EMAIL/$DEVELOPER_EMAIL/" "$MY_FUNCTION_NAME"/src/function1.c
-sed -i "s/YEAR/$YEAR/" "$MY_FUNCTION_NAME"/src/function1.c
-sed -i "s/MY_EDGE_TYPE/$MY_EDGE_TYPE/" "$MY_FUNCTION_NAME"/src/function1.c
-sed -i "s/MY_EDGE_FUNCTION/$MY_EDGE_FUNCTION/" "$MY_FUNCTION_NAME"/src/function1.c
-sed -i "s/MY_QUERY_LINE1/$MY_QUERY_LINE1/" "$MY_FUNCTION_NAME"/src/function1.c
-sed -i "s/MY_QUERY_LINE2/$MY_QUERY_LINE2/" "$MY_FUNCTION_NAME"/src/function1.c
-sed -i "s/MY_RETURN_VALUE_TYPE/$MY_RETURN_VALUE_TYPE/" "$MY_FUNCTION_NAME"/src/function1.c
-mv "$MY_FUNCTION_NAME"/src/function1.c "$MY_FUNCTION_NAME"/src/"$MY_FUNCTION_NAME".c
-
-echo "updating the src/function1_driver.h"
-sed -i "s/MY_FUNCTION_NAME_UPPER/$MY_FUNCTION_NAME_UPPER/g" "$MY_FUNCTION_NAME"/src/function1_driver.h
-sed -i "s/MY_FUNCTION_NAME/$MY_FUNCTION_NAME/" "$MY_FUNCTION_NAME"/src/function1_driver.h
-sed -i "s/DEVELOPER_NAME/$DEVELOPER_NAME/" "$MY_FUNCTION_NAME"/src/function1_driver.h
-sed -i "s/DEVELOPER_EMAIL/$DEVELOPER_EMAIL/" "$MY_FUNCTION_NAME"/src/function1_driver.h
-sed -i "s/YEAR/$YEAR/" "$MY_FUNCTION_NAME"/src/function1_driver.h
-sed -i "s/MY_EDGE_TYPE/$MY_EDGE_TYPE/" "$MY_FUNCTION_NAME"/src/function1_driver.h
-sed -i "s/MY_QUERY_LINE1/$MY_QUERY_LINE1/" "$MY_FUNCTION_NAME"/src/function1_driver.h
-sed -i "s/MY_QUERY_LINE2/$MY_QUERY_LINE2/" "$MY_FUNCTION_NAME"/src/function1_driver.h
-sed -i "s/MY_RETURN_VALUE_TYPE/$MY_RETURN_VALUE_TYPE/" "$MY_FUNCTION_NAME"/src/function1_driver.h
-mv "$MY_FUNCTION_NAME"/src/function1_driver.h "$MY_FUNCTION_NAME"/src/"$MY_FUNCTION_NAME"_driver.h
-
-echo "updating the src/function1_driver.cpp"
-sed -i "s/MY_FUNCTION_NAME/$MY_FUNCTION_NAME/" "$MY_FUNCTION_NAME"/src/function1_driver.cpp
-sed -i "s/DEVELOPER_NAME/$DEVELOPER_NAME/" "$MY_FUNCTION_NAME"/src/function1_driver.cpp
-sed -i "s/DEVELOPER_EMAIL/$DEVELOPER_EMAIL/" "$MY_FUNCTION_NAME"/src/function1_driver.cpp
-sed -i "s/YEAR/$YEAR/" "$MY_FUNCTION_NAME"/src/function1_driver.cpp
-sed -i "s/MY_EDGE_TYPE/$MY_EDGE_TYPE/" "$MY_FUNCTION_NAME"/src/function1_driver.cpp
-sed -i "s/MY_QUERY_LINE1/$MY_QUERY_LINE1/" "$MY_FUNCTION_NAME"/src/function1_driver.cpp
-sed -i "s/MY_QUERY_LINE2/$MY_QUERY_LINE2/" "$MY_FUNCTION_NAME"/src/function1_driver.cpp
-sed -i "s/MY_RETURN_VALUE_TYPE/$MY_RETURN_VALUE_TYPE/" "$MY_FUNCTION_NAME"/src/function1_driver.cpp
-mv "$MY_FUNCTION_NAME"/src/function1_driver.cpp "$MY_FUNCTION_NAME"/src/"$MY_FUNCTION_NAME"_driver.cpp
-
-#####   DOC   #########
-
-echo "updating the doc/pgr_function1.cpp"
-sed -i "s/MY_FUNCTION_NAME/$MY_FUNCTION_NAME/" "$MY_FUNCTION_NAME"/doc/pgr_function1.rst
-sed -i "s/YEAR/$YEAR/" "$MY_FUNCTION_NAME"/doc/pgr_function1.rst
-sed -i "s/MY_QUERY_LINE1/$MY_QUERY_LINE1/" "$MY_FUNCTION_NAME"/doc/pgr_function1.rst
-sed -i "s/MY_QUERY_LINE2/$MY_QUERY_LINE2/" "$MY_FUNCTION_NAME"/doc/pgr_function1.rst
-mv "$MY_FUNCTION_NAME"/doc/pgr_function1.rst "$MY_FUNCTION_NAME"/doc/pgr_"$MY_FUNCTION_NAME".rst
-
-echo "updating the doc/doc-pgr_function1.queries"
-sed -i "s/MY_FUNCTION_NAME/$MY_FUNCTION_NAME/" "$MY_FUNCTION_NAME"/doc/doc-pgr_function1.queries
-mv "$MY_FUNCTION_NAME"/doc/doc-pgr_function1.queries "$MY_FUNCTION_NAME"/doc/doc-pgr_"$MY_FUNCTION_NAME".queries
-
-#####   TEST   #########
-
-echo "updating test/test.conf"
-sed -i "s/MY_FUNCTION_NAME/$MY_FUNCTION_NAME/" "$MY_FUNCTION_NAME"/test/test.conf
-
-echo "updating test/doc-function1.test.sql"
-sed -i "s/MY_FUNCTION_NAME/$MY_FUNCTION_NAME/" "$MY_FUNCTION_NAME"/test/doc-function1.test.sql
-
-echo "updating the test/pgtap/types-check.sql"
-sed -i "s/MY_FUNCTION_NAME_LOWER/$MY_FUNCTION_NAME_LOWER/g" "$MY_FUNCTION_NAME"/test/pgtap/types-check.sql
-
-echo "updating the test/pgtap/function1-compare-dijkstra.sql"
-sed -i "s/MY_FUNCTION_NAME_LOWER/$MY_FUNCTION_NAME_LOWER/g" "$MY_FUNCTION_NAME"/test/pgtap/function1-compare-dijkstra.sql
-
-echo "updating the test/pgtap/function1-innerQuery.sql"
-sed -i "s/MY_FUNCTION_NAME_LOWER/$MY_FUNCTION_NAME_LOWER/g" "$MY_FUNCTION_NAME"/test/pgtap/function1-innerQuery.sql
-
-mv "$MY_FUNCTION_NAME"/test/doc-function1.test.sql "$MY_FUNCTION_NAME"/test/doc-"$MY_FUNCTION_NAME".test.sql
-mv "$MY_FUNCTION_NAME"/test/doc-function1.result "$MY_FUNCTION_NAME"/test/doc-"$MY_FUNCTION_NAME".result
-mv "$MY_FUNCTION_NAME"/test/pgtap/function1-compare-dijkstra.sql "$MY_FUNCTION_NAME"/test//pgtap/"$MY_FUNCTION_NAME"-compare-dijkstra.sql
-mv "$MY_FUNCTION_NAME"/test/pgtap/function1-innerQuery.sql "$MY_FUNCTION_NAME"/test//pgtap/"$MY_FUNCTION_NAME"-innerQuery.sql
-
-#move the whole structure to its place
-mv "$MY_FUNCTION_NAME" ../../src/"$MY_FUNCTION_NAME"
-exit
+cp -r src  "$MY_FUNCTION_NAME"
+cp -r pgtap  "$MY_FUNCTION_NAME"
+
+function substitute() {
+    perl -pi -e "s/$1/$2/g" $MY_FUNCTION_NAME/src/*
+    perl -pi -e "s/$1/$2/g" $MY_FUNCTION_NAME/doc/*
+    perl -pi -e "s/$1/$2/g" $MY_FUNCTION_NAME/sql/*
+    perl -pi -e "s/$1/$2/g" $MY_FUNCTION_NAME/test/*
+    perl -pi -e "s/$1/$2/g" $MY_FUNCTION_NAME/pgtap/*
+}
+
+substitute "MY_FUNCTION_NAME_LOWER" "$MY_FUNCTION_NAME_LOWER"
+substitute "MY_FUNCTION_NAME_UPPER" "$MY_FUNCTION_NAME_UPPER"
+substitute "MY_FUNCTION_NAME" $MY_FUNCTION_NAME
+substitute "MY_QUERY_LINE1" "$MY_QUERY_LINE1"
+substitute "MY_QUERY_LINE2" "$MY_QUERY_LINE2"
+substitute "DEVELOPER_NAME" "$DEVELOPER_NAME"
+substitute "DEVELOPER_EMAIL" "$DEVELOPER_EMAIL"
+substitute "MY_FUNCTION_NAME" $MY_FUNCTION_NAME
+substitute "MY_FUNCTION_NAME" $MY_FUNCTION_NAME
+substitute "YEAR" $YEAR
+substitute "MY_EDGE_TYPE" $MY_EDGE_TYPE
+substitute "MY_EDGE_FILE" $MY_EDGE_FILE
+substitute "MY_EDGE_FUNCTION" $MY_EDGE_FUNCTION
+substitute "MY_RETURN_VALUE_TYPE" $MY_RETURN_VALUE_TYPE
+substitute "MY_RETURN_VALUE_FILE" $MY_RETURN_VALUE_FILE
+
+
+
+#renaming the files
+mv $MY_FUNCTION_NAME/src/function1.c                       $MY_FUNCTION_NAME/src/$MY_FUNCTION_NAME.c
+mv $MY_FUNCTION_NAME/src/function1_driver.cpp              $MY_FUNCTION_NAME/src/"$MY_FUNCTION_NAME"_driver.cpp
+mv $MY_FUNCTION_NAME/src/function1_driver.h                $MY_FUNCTION_NAME/src/"$MY_FUNCTION_NAME"_driver.h
+
+mv $MY_FUNCTION_NAME/doc/doc-pgr_function1.queries         $MY_FUNCTION_NAME/doc/doc-pgr_$MY_FUNCTION_NAME.queries
+mv $MY_FUNCTION_NAME/doc/pgr_function1.rst                 $MY_FUNCTION_NAME/doc/pgr_$MY_FUNCTION_NAME.rst
+
+mv $MY_FUNCTION_NAME/test/doc-function1.test.sql           $MY_FUNCTION_NAME/test/doc-$MY_FUNCTION_NAME.test.sql
+mv $MY_FUNCTION_NAME/test/doc-function1.result             $MY_FUNCTION_NAME/test/doc-$MY_FUNCTION_NAME.result
+
+mv $MY_FUNCTION_NAME/sql/function1.sql                     $MY_FUNCTION_NAME/sql/$MY_FUNCTION_NAME.sql
+
+mv $MY_FUNCTION_NAME/pgtap/function1-typesCheck.sql        $MY_FUNCTION_NAME/pgtap/$MY_FUNCTION_NAME-typesCheck.sql
+mv $MY_FUNCTION_NAME/pgtap/function1-compare-dijkstra.sql  $MY_FUNCTION_NAME/pgtap/$MY_FUNCTION_NAME-compare-dijkstra.sql
+mv $MY_FUNCTION_NAME/pgtap/function1-innerQuery.sql        $MY_FUNCTION_NAME/pgtap/$MY_FUNCTION_NAME-innerQuery.sql
+
+
+
+if [[ ! ( -d ../../doc/$MY_FUNCTION_NAME ) ]] ; then
+    mkdir ../../sql/$MY_FUNCTION_NAME
+fi
+
+if [[ ! ( -d ../../sql/$MY_FUNCTION_NAME ) ]] ; then
+    mkdir ../../sql/$MY_FUNCTION_NAME
+fi
+
+
+if [[  "$1" == "clean"  ]] ; then
+    echo "deleting old directories"
+    rm -rf ../../sql/$MY_FUNCTION_NAME
+    rm -rf ../../src/$MY_FUNCTION_NAME
+    rm -rf ../../doc/$MY_FUNCTION_NAME
+    mkdir -p ../../sql/$MY_FUNCTION_NAME
+    mkdir -p ../../doc/$MY_FUNCTION_NAME
+    mkdir -p ../../include/drivers/$MY_FUNCTION_NAME
+
+    #moving the whole structure to its final location
+    mv $MY_FUNCTION_NAME/pgtap              $MY_FUNCTION_NAME/test
+    mv $MY_FUNCTION_NAME/src/*driver.h      ../../include/drivers/$MY_FUNCTION_NAME
+
+    mv $MY_FUNCTION_NAME/doc/*              ../../doc/$MY_FUNCTION_NAME
+    mv $MY_FUNCTION_NAME/sql/*              ../../sql/$MY_FUNCTION_NAME
+    rm -rf  $MY_FUNCTION_NAME/doc
+    rm -rf  $MY_FUNCTION_NAME/sql
+    mv $MY_FUNCTION_NAME                    ../../src
+fi
+
+exit 0;
+
diff --git a/tools/template/doc/pgr_function1.rst b/tools/template/doc/pgr_function1.rst
index 27a373f..3489591 100644
--- a/tools/template/doc/pgr_function1.rst
+++ b/tools/template/doc/pgr_function1.rst
@@ -15,7 +15,7 @@ pgr_MY_FUNCTION_NAME
 ``pgr_MY_FUNCTION_NAME`` — Returns the shortest path(s) using Dijkstra algorithm.
 In particular, the Dijkstra algorithm implemented by Boost.Graph.
 
-.. figure:: ../../../doc/src/introduction/images/boost-inside.jpeg
+.. figure:: images/boost-inside.jpeg
    :target: http://www.boost.org/libs/graph/doc/dijkstra_shortest_paths.html
 
    Boost Graph Inside
@@ -115,32 +115,17 @@ This signature finds the shortest path from one ``start_vid`` to one ``end_vid``
 Description of the Signatures
 -------------------------------------------------------------------------------
 
-.. include:: ../../common/src/edges_input.h
+.. include:: pgRouting-concepts.rst
     :start-after: basic_edges_sql_start
     :end-before: basic_edges_sql_end
 
-.. include:: ../../dijkstra/sql/dijkstra.sql
+.. include:: pgr_dijkstra.rst
     :start-after: pgr_dijkstra_parameters_start
     :end-before: pgr_dijkstra_parameters_end
 
-
-Description of the return values
-...............................................................................
-
-Returns set of ``(seq, path_seq, node, edge, cost, agg_cost)``
-
-============== ========== =================================================
-Column         Type       Description
-============== ========== =================================================
-**seq**        ``INT``    Sequential value starting from **1**.
-**path_seq**   ``INT``    Relative position in the path. Has value **1** for the beginning of a path.
-**node**       ``BIGINT`` Identifier of the node in the path from ``start_vid`` to ``end_vid``.
-**edge**       ``BIGINT`` Identifier of the edge used to go from ``node`` to the next node in the path sequence. ``-1`` for the last node of the path.
-**cost**       ``FLOAT``  Cost to traverse from ``node`` using ``edge`` to the next node in the path sequence.
-**agg_cost**   ``FLOAT``  Aggregate cost from ``start_v`` to ``node``.
-============== ========== =================================================
-
-
+.. include:: pgRouting-concepts.rst
+    :start-after: return_path_start
+    :end-before: return_path_end
 
 
 See Also
diff --git a/tools/template/test/pgtap/function1-compare-dijkstra.sql b/tools/template/pgtap/function1-compare-dijkstra.sql
similarity index 100%
rename from tools/template/test/pgtap/function1-compare-dijkstra.sql
rename to tools/template/pgtap/function1-compare-dijkstra.sql
diff --git a/tools/template/pgtap/function1-innerQuery.sql b/tools/template/pgtap/function1-innerQuery.sql
new file mode 100644
index 0000000..92b5187
--- /dev/null
+++ b/tools/template/pgtap/function1-innerQuery.sql
@@ -0,0 +1,21 @@
+\i setup.sql
+
+SELECT plan(137);
+SET client_min_messages TO ERROR;
+
+
+SELECT has_function('pgr_MY_FUNCTION_NAME_LOWER',
+    ARRAY['text', 'bigint', 'bigint', 'boolean','boolean']);
+
+SELECT function_returns('pgr_MY_FUNCTION_NAME_LOWER',
+    ARRAY['text', 'bigint', 'bigint', 'boolean','boolean'],
+    'setof record');
+
+SELECT style_dijkstra('pgr_MY_FUNCTION_NAME_LOWER', ', 2, 3)');
+SELECT style_dijkstra('pgr_MY_FUNCTION_NAME_LOWER', ', 2, 3, true)');
+SELECT style_dijkstra('pgr_MY_FUNCTION_NAME_LOWER', ', 2, 3, false)');
+
+
+
+SELECT finish();
+ROLLBACK;
diff --git a/tools/template/pgtap/function1-typesCheck.sql b/tools/template/pgtap/function1-typesCheck.sql
new file mode 100644
index 0000000..e80f356
--- /dev/null
+++ b/tools/template/pgtap/function1-typesCheck.sql
@@ -0,0 +1,15 @@
+
+SELECT plan(4);
+
+SELECT has_function('pgr_MY_FUNCTION_NAME_LOWER');
+
+SELECT has_function('pgr_MY_FUNCTION_NAME_LOWER', ARRAY[ 'text', 'bigint', 'bigint', 'boolean', 'boolean' ]);
+
+SELECT function_returns('pgr_MY_FUNCTION_NAME_LOWER', ARRAY[ 'text', 'bigint', 'bigint', 'boolean', 'boolean' ], 'setof record');
+
+-- testing column names
+SELECT bag_has(
+    $$SELECT  proargnames from pg_proc where proname = 'pgr_MY_FUNCTION_NAME_LOWER'$$,
+    $$SELECT  '{"","","","directed","only_cost","seq","path_seq","node","edge","cost","agg_cost"}'::TEXT[] $$
+);
+
diff --git a/tools/template/sql/CMakeLists.txt b/tools/template/sql/CMakeLists.txt
index a2cf16f..c51ab7e 100644
--- a/tools/template/sql/CMakeLists.txt
+++ b/tools/template/sql/CMakeLists.txt
@@ -1,7 +1,13 @@
-# Append in local scope
-LIST(APPEND PACKAGE_SQL_FILES
-    ${CMAKE_CURRENT_SOURCE_DIR}/MY_FUNCTION_NAME.sql
-)
 
-# set in parent scope
-SET(PACKAGE_SQL_FILES "${PACKAGE_SQL_FILES}" PARENT_SCOPE)
+SET(LOCAL_FILES
+    MY_FUNCTION_NAME.sql
+    )
+
+# Do not modify bellow this line
+
+foreach (f ${LOCAL_FILES})
+    configure_file(${f} ${f})
+    list(APPEND PACKAGE_SQL_FILES  ${CMAKE_CURRENT_BINARY_DIR}/${f})
+endforeach()
+
+set(PgRouting_SQL_FILES ${PgRouting_SQL_FILES} ${PACKAGE_SQL_FILES} PARENT_SCOPE)
diff --git a/tools/template/src/function1.c b/tools/template/src/function1.c
index b6508f6..48b072f 100644
--- a/tools/template/src/function1.c
+++ b/tools/template/src/function1.c
@@ -43,39 +43,22 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  *
  *  - should allways be first in the C code
  */
-#include "./../../common/src/postgres_connection.h"
+#include "c_common/postgres_connection.h"
 
-/**
- *  funcapi.h
- *
- *  - While developing to not show postgres header files warnings:
- *    - wrap the file(s) with the appropiate dignostic to be ignored
- */
-#ifdef __GNUC__
-#pragma GCC diagnostic ignored "-Wunused-parameter"
-#endif
-
-#include "funcapi.h"
-
-#ifdef __GNUC__
-#pragma GCC diagnostic pop
-#endif
-
-#if PGSQL_VERSION > 92
-#include "access/htup_details.h"
-#endif
-#include "fmgr.h"
 
-#include "./../../common/src/debug_macro.h" // for macro PGR_DBG
-#include "./../../common/src/e_report.h"  // for pgr_global_report
-#include "./../../common/src/time_msg.h"  // for time_msg & clock
-#include "./../../common/src/pgr_types.h"  // for the current accepted types
-#include "./../../common/src/edges_input.h" // for functions to get edges informtion
+/* for macro PGR_DBG */
+#include "c_common/debug_macro.h"
+/* for pgr_global_report */
+#include "c_common/e_report.h"
+/* for time_msg & clock */
+#include "c_common/time_msg.h"
+/* for functions to get edges informtion */
+#include "c_common/edges_input.h"
 
-#include "./MY_FUNCTION_NAME_driver.h"  // the C++ code of the function
+#include "drivers/MY_FUNCTION_NAME/MY_FUNCTION_NAME_driver.h"  // the link to the C++ code of the function
 
-PG_FUNCTION_INFO_V1(MY_FUNCTION_NAME);
 PGDLLEXPORT Datum MY_FUNCTION_NAME(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(MY_FUNCTION_NAME);
 
 
 /******************************************************************************/
@@ -97,8 +80,9 @@ process(
         bool only_cost,
         MY_RETURN_VALUE_TYPE **result_tuples,
         size_t *result_count) {
-
-    /* https://www.postgresql.org/docs/current/static/spi-spi-connect.html */
+    /*
+     *  https://www.postgresql.org/docs/current/static/spi-spi-connect.html
+     */
     pgr_SPI_connect();
 
 
@@ -129,7 +113,9 @@ process(
     size_t total_edges = 0;
 
     if (start_vid == end_vid) {
-        /* https://www.postgresql.org/docs/current/static/spi-spi-finish.html */
+        /*
+         * https://www.postgresql.org/docs/current/static/spi-spi-finish.html
+         */
         pgr_SPI_finish();
         return;
     }
@@ -174,11 +160,14 @@ process(
     PGR_DBG("Returning %ld tuples", *result_count);
 
     if (err_msg) {
-        if (*result_tuples) free(*result_tuples);
+        if (*result_tuples) pfree(*result_tuples);
     }
-    pgr_global_report(&log_msg, &notice_msg, &err_msg);
+    pgr_global_report(log_msg, notice_msg, err_msg);
 
     if (edges) pfree(edges);
+    if (log_msg) pfree(log_msg);
+    if (notice_msg) pfree(notice_msg);
+    if (err_msg) pfree(err_msg);
 #if 0
     /*
      *  handling arrays example
diff --git a/tools/template/src/function1_driver.cpp b/tools/template/src/function1_driver.cpp
index d9035c5..f082024 100644
--- a/tools/template/src/function1_driver.cpp
+++ b/tools/template/src/function1_driver.cpp
@@ -27,23 +27,17 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#if defined(__MINGW32__) || defined(_MSC_VER)
-#include <winsock2.h>
-#include <windows.h>
-#endif
+#include "drivers/MY_FUNCTION_NAME/MY_FUNCTION_NAME_driver.h"
 
 #include <sstream>
 #include <deque>
 #include <vector>
 
-#include "./MY_FUNCTION_NAME_driver.h"
+#include "dijkstra/pgr_dijkstra.hpp"
 
+#include "cpp_common/pgr_alloc.hpp"
+#include "cpp_common/pgr_assert.h"
 
-#include "../../common/src/pgr_alloc.hpp"
-#include "./../../common/src/pgr_assert.h"
-#include "./../../common/src/pgr_types.h"
-
-#include "./../../dijkstra/src/pgr_dijkstra.hpp"
 
 
 
@@ -130,28 +124,28 @@ do_pgr_MY_FUNCTION_NAME(
 
         pgassert(*err_msg == NULL);
         *log_msg = log.str().empty()?
-            nullptr :
-            strdup(log.str().c_str());
+            *log_msg :
+            pgr_msg(log.str().c_str());
         *notice_msg = notice.str().empty()?
-            nullptr :
-            strdup(notice.str().c_str());
+            *notice_msg :
+            pgr_msg(notice.str().c_str());
     } catch (AssertFailedException &except) {
-        if (*return_tuples) free(*return_tuples);
+        (*return_tuples) = pgr_free(*return_tuples);
         (*return_count) = 0;
         err << except.what();
-        *err_msg = strdup(err.str().c_str());
-        *log_msg = strdup(log.str().c_str());
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
     } catch (std::exception &except) {
-        if (*return_tuples) free(*return_tuples);
+        (*return_tuples) = pgr_free(*return_tuples);
         (*return_count) = 0;
         err << except.what();
-        *err_msg = strdup(err.str().c_str());
-        *log_msg = strdup(log.str().c_str());
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
     } catch(...) {
-        if (*return_tuples) free(*return_tuples);
+        (*return_tuples) = pgr_free(*return_tuples);
         (*return_count) = 0;
         err << "Caught unknown exception!";
-        *err_msg = strdup(err.str().c_str());
-        *log_msg = strdup(log.str().c_str());
+        *err_msg = pgr_msg(err.str().c_str());
+        *log_msg = pgr_msg(log.str().c_str());
     }
 }
diff --git a/tools/template/src/function1_driver.h b/tools/template/src/function1_driver.h
index 69fc890..68a4c0b 100644
--- a/tools/template/src/function1_driver.h
+++ b/tools/template/src/function1_driver.h
@@ -27,11 +27,12 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 ********************************************************************PGR-GNU*/
 
-#ifndef SRC_MY_FUNCTION_NAME_UPPER_SRC_MY_FUNCTION_NAME_UPPER_DRIVER_H_
-#define SRC_MY_FUNCTION_NAME_UPPER_SRC_MY_FUNCTION_NAME_UPPER_DRIVER_H_
+#ifndef INCLUDE_DRIVERS_MY_FUNCTION_NAME_UPPER_MY_FUNCTION_NAME_UPPER_DRIVER_H_
+#define INCLUDE_DRIVERS_MY_FUNCTION_NAME_UPPER_MY_FUNCTION_NAME_UPPER_DRIVER_H_
 #pragma once
 
-#include "./../../common/src/pgr_types.h"
+#include "c_types/MY_EDGE_FILE.h"
+#include "c_types/MY_RETURN_VALUE_FILE.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -61,4 +62,4 @@ extern "C" {
 }
 #endif
 
-#endif  // SRC_MY_FUNCTION_NAME_UPPER_SRC_MY_FUNCTION_NAME_UPPER_DRIVER_H_
+#endif  // INCLUDE_DRIVERS_MY_FUNCTION_NAME_UPPER_MY_FUNCTION_NAME_UPPER_DRIVER_H_
diff --git a/tools/template/test/doc-function1.result b/tools/template/test/doc-function1.result
index 3a16953..e279a5c 100644
--- a/tools/template/test/doc-function1.result
+++ b/tools/template/test/doc-function1.result
@@ -1,11 +1,34 @@
+BEGIN;
+BEGIN
+SET client_min_messages TO NOTICE;
+SET
 -- q1
-1|1|2|4|1|0
-2|2|5|8|1|1
-3|3|6|9|1|2
-4|4|9|16|1|3
-5|5|4|3|1|4
-6|6|3|-1|0|5
+SELECT * FROM pgr_MY_FUNCTION_NAME(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, 3
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    4 |    1 |        0
+   2 |        2 |    5 |    8 |    1 |        1
+   3 |        3 |    6 |    9 |    1 |        2
+   4 |        4 |    9 |   16 |    1 |        3
+   5 |        5 |    4 |    3 |    1 |        4
+   6 |        6 |    3 |   -1 |    0 |        5
+(6 rows)
+
 -- q2
-1|1|2|2|1|0
-2|2|3|-1|0|1
+SELECT * FROM pgr_MY_FUNCTION_NAME(
+    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
+    2, 3,
+    FALSE
+);
+ seq | path_seq | node | edge | cost | agg_cost 
+-----+----------+------+------+------+----------
+   1 |        1 |    2 |    2 |    1 |        0
+   2 |        2 |    3 |   -1 |    0 |        1
+(2 rows)
+
 -- q3
+ROLLBACK;
+ROLLBACK
diff --git a/tools/template/test/doc-function1.test.sql b/tools/template/test/doc-function1.test.sql
index e4dda96..d58a7a1 100644
--- a/tools/template/test/doc-function1.test.sql
+++ b/tools/template/test/doc-function1.test.sql
@@ -1,4 +1,3 @@
-BEGIN;
 
 \echo -- q1
 SELECT * FROM pgr_MY_FUNCTION_NAME(
@@ -14,4 +13,3 @@ SELECT * FROM pgr_MY_FUNCTION_NAME(
 );
 \echo -- q3
 
-ROLLBACK;
diff --git a/tools/template/test/pgtap/function1-innerQuery.sql b/tools/template/test/pgtap/function1-innerQuery.sql
deleted file mode 100644
index dd9a023..0000000
--- a/tools/template/test/pgtap/function1-innerQuery.sql
+++ /dev/null
@@ -1,116 +0,0 @@
-\i setup.sql
-
-SELECT plan(47);
-SET client_min_messages TO ERROR;
-
-
-SELECT has_function('pgr_MY_FUNCTION_NAME_LOWER',
-    ARRAY['text', 'bigint', 'bigint', 'boolean','boolean']);
-
-SELECT function_returns('pgr_MY_FUNCTION_NAME_LOWER',
-    ARRAY['text', 'bigint', 'bigint', 'boolean','boolean'],
-    'setof record');
-
-CREATE OR REPLACE FUNCTION test_anyInteger(fn TEXT, params TEXT[], parameter TEXT) 
-RETURNS SETOF TEXT AS
-$BODY$
-DECLARE
-start_sql TEXT;
-end_sql TEXT;
-query TEXT;
-p TEXT;
-BEGIN
-    start_sql = 'select * from ' || fn || '($$ SELECT ';
-    FOREACH  p IN ARRAY params LOOP
-        IF p = parameter THEN CONTINUE;
-        END IF;
-        start_sql = start_sql || p || ', ';
-    END LOOP;
-    end_sql = ' FROM edge_table $$, 2, 3, true)';
-    
-    query := start_sql || parameter || '::SMALLINT ' || end_sql;
-    RETURN query SELECT lives_ok(query);
-    
-    query := start_sql || parameter || '::INTEGER ' || end_sql;
-    RETURN query SELECT lives_ok(query);
-    
-    query := start_sql || parameter || '::BIGINT ' || end_sql;
-    RETURN query SELECT lives_ok(query);
-
-    query := start_sql || parameter || '::REAL ' || end_sql;
-    RETURN query SELECT throws_ok(query);
-
-    query := start_sql || parameter || '::FLOAT8 ' || end_sql;
-    RETURN query SELECT throws_ok(query);
-END;
-$BODY$ LANGUAGE plpgsql;
-
-CREATE OR REPLACE FUNCTION test_anyNumerical(fn TEXT, params TEXT[], parameter TEXT) 
-RETURNS SETOF TEXT AS
-$BODY$
-DECLARE
-start_sql TEXT;
-end_sql TEXT;
-query TEXT;
-p TEXT;
-BEGIN
-    start_sql = 'select * from ' || fn || '($$ SELECT ';
-    FOREACH  p IN ARRAY params LOOP
-        IF p = parameter THEN CONTINUE;
-        END IF;
-        start_sql = start_sql || p || ', ';
-    END LOOP;
-    end_sql = ' FROM edge_table $$, 2, 3, true)';
-    
-    query := start_sql || parameter || '::SMALLINT ' || end_sql;
-    RETURN query SELECT lives_ok(query);
-    
-    query := start_sql || parameter || '::INTEGER ' || end_sql;
-    RETURN query SELECT lives_ok(query);
-    
-    query := start_sql || parameter || '::BIGINT ' || end_sql;
-    RETURN query SELECT lives_ok(query);
-
-    query := start_sql || parameter || '::REAL ' || end_sql;
-    RETURN query SELECT lives_ok(query);
-
-    query := start_sql || parameter || '::FLOAT8 ' || end_sql;
-    RETURN query SELECT lives_ok(query);
-END;
-$BODY$ LANGUAGE plpgsql;
-
---with reverse cost
-SELECT test_anyInteger('pgr_MY_FUNCTION_NAME_LOWER',
-    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost'],
-    'id');
-SELECT test_anyInteger('pgr_MY_FUNCTION_NAME_LOWER',
-    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost'],
-    'source');
-SELECT test_anyInteger('pgr_MY_FUNCTION_NAME_LOWER',
-    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost'],
-    'target');
-SELECT test_anyNumerical('pgr_MY_FUNCTION_NAME_LOWER',
-    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost'],
-    'cost');
-SELECT test_anyNumerical('pgr_MY_FUNCTION_NAME_LOWER',
-    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost'],
-    'reverse_cost');
-
-
---without reverse cost
-SELECT test_anyInteger('pgr_MY_FUNCTION_NAME_LOWER',
-    ARRAY['id', 'source', 'target', 'cost'],
-    'id');
-SELECT test_anyInteger('pgr_MY_FUNCTION_NAME_LOWER',
-    ARRAY['id', 'source', 'target', 'cost'],
-    'source');
-SELECT test_anyInteger('pgr_MY_FUNCTION_NAME_LOWER',
-    ARRAY['id', 'source', 'target', 'cost'],
-    'target');
-SELECT test_anyNumerical('pgr_MY_FUNCTION_NAME_LOWER',
-    ARRAY['id', 'source', 'target', 'cost'],
-    'cost');
-
-
-SELECT finish();
-ROLLBACK;
diff --git a/tools/template/test/pgtap/types-check.sql b/tools/template/test/pgtap/types-check.sql
deleted file mode 100644
index c745e56..0000000
--- a/tools/template/test/pgtap/types-check.sql
+++ /dev/null
@@ -1,54 +0,0 @@
-\i setup.sql
-
-
-SELECT plan(6);
-
-SELECT can(ARRAY['pgr_MY_FUNCTION_NAME_LOWER']);
-
-
---V2.4+
-SELECT has_function('pgr_MY_FUNCTION_NAME_LOWER',
-    ARRAY['text','bigint','bigint','boolean','boolean']);
-SELECT function_returns('pgr_MY_FUNCTION_NAME_LOWER',
-    ARRAY['text','bigint','bigint','boolean','boolean'],
-    'setof record');
-
--- testing for the signature that they return the correct names & columns
-
-PREPARE v21q00 AS
-SELECT pg_typeof(seq)::text AS t1, pg_typeof(path_seq)::text AS t2,
-    pg_typeof(node)::text AS t5, pg_typeof(edge)::text AS t6,
-    pg_typeof(cost)::text AS t7, pg_typeof(agg_cost)::TEXT AS t8 
-    FROM ( 
-        SELECT * FROM pgr_MY_FUNCTION_NAME_LOWER(
-            'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-            2, 3, true) ) AS a
-    limit 1
-;
-
-PREPARE v21q01 AS
-SELECT  'integer'::text AS t1,'integer'::text AS t2,
-    'bigint'::text AS t5, 'bigint'::text AS t6,
-    'double precision'::text AS t7, 'double precision'::text AS t8;
-
-SELECT set_eq('v21q00', 'v21q01','Expected columns names & types in version 2.4');
-
-
--- CHECKING WORKS WITH & WITOUT REVERSE COST
-
-PREPARE v20q1 AS
-SELECT * FROM pgr_MY_FUNCTION_NAME_LOWER(
-    'SELECT id, source, target, cost, reverse_cost FROM edge_table',
-    2, 3, true);
-
-PREPARE v20q3 AS
-SELECT * FROM pgr_MY_FUNCTION_NAME_LOWER(
-    'SELECT id, source, target, cost FROM edge_table',
-    2, 3, false);
-
-SELECT lives_ok('v20q1','with reverse cost');
-SELECT lives_ok('v20q3','with NO reverse cost');
-
-
-SELECT finish();
-ROLLBACK;
diff --git a/tools/testers/algorithm-tester.pl b/tools/testers/algorithm-tester.pl
index f392018..3eb0d0d 100755
--- a/tools/testers/algorithm-tester.pl
+++ b/tools/testers/algorithm-tester.pl
@@ -15,12 +15,14 @@ use vars qw/*name *dir *prune/;
 *dir    = *File::Find::dir;
 *prune  = *File::Find::prune;
 
+my $POSGRESQL_MIN_VERSION = '9.2';
 my $DOCUMENTATION = 0;
 my $INTERNAL_TESTS = 0;
 my $VERBOSE = 0;
 my $DRYRUN = 0;
 my $DEBUG = 0;
 my $DEBUG1 = 0;
+my $FORCE = 0;
 
 my $DBNAME = "pgr_test__db__test";
 my $DBUSER;
@@ -44,6 +46,7 @@ sub Usage {
     "       -ignorenotice       - ignore NOTICE statements when reporting failures\n" .
     "       -alg 'dir'          - directory to select which algorithm subdirs to test\n" .
     "       -documentation      - ONLY generate documentation examples\n" .
+    "       -force              - Force tests for unsupported versions >= 9.1 of postgreSQL \n" .
     "       -h                  - help\n";
 }
 
@@ -51,7 +54,8 @@ print "RUNNING: algorithm-tester.pl " . join(" ", @ARGV) . "\n";
 
 my ($vpg, $postgis_ver, $vpgr, $psql);
 my $alg = '';
-my @testpath = ("doc/", "src/");
+my @testpath = ("src/");
+my @test_direcotry = ();
 my $clean;
 my $ignore;
 
@@ -79,13 +83,7 @@ while (my $a = shift @ARGV) {
     }
     elsif ($a eq '-alg') {
         $alg = shift @ARGV || Usage();
-        if ($alg eq 'doc') {
-            @testpath = ('doc');
-        } elsif ($alg eq 'recipes') {
-            @testpath = ("doc/src/recipes");
-        } else {
-            @testpath = ("src/$alg");
-        }
+        @testpath = ("src/$alg");
     }
     elsif ($a eq '-psql') {
         $psql = shift @ARGV || Usage();
@@ -111,6 +109,9 @@ while (my $a = shift @ARGV) {
     elsif ($a =~ /^-v/i) {
         $VERBOSE = 1;
     }
+    elsif ($a =~ /^-force/i) {
+        $FORCE = 1;
+    }
     elsif ($a =~ /^-doc(umentation)?/i) {
         $DOCUMENTATION = 1;
         $DEBUG1 = 0; # disbale timing reports during documentation generation
@@ -149,7 +150,7 @@ if (length($psql)) {
         $psql = "\"$psql\"";
     }
 }
-print "Operative system found: $OS";
+print "Operative system found: $OS\n";
 
 
 # Traverse desired filesystems
@@ -244,7 +245,7 @@ sub run_test {
         for my $x (@{$t->{tests}}) {
             process_single_test($x, $dir,, $DBNAME, \%res)
         }
-        if ($OS =~ /msys/ || $OS=~/MSW/ || $OS =~ /cygwin/) {
+        if ($OS =~/msys/ || $OS=~/MSW/ || $OS =~/cygwin/) {
             for my $x (@{$t->{windows}}) {
                 process_single_test($x, $dir,, $DBNAME, \%res)
             }
@@ -269,7 +270,7 @@ sub process_single_test{
     my $res = shift;
     #each tests will use clean data
 
-    print "Processing test: $dir/$x\n";
+    print "Processing test: $dir/$x";
     my $t0 = [gettimeofday];
     #TIN = test_input_file
     open(TIN, "$dir/$x.test.sql") || do {
@@ -280,19 +281,25 @@ sub process_single_test{
 
     my $level = "NOTICE";
     $level = "WARNING" if $ignore;
-    $level = "DEBUG1" if $DEBUG1;
+    $level = "DEBUG3" if $DEBUG1;
 
 
     if ($DOCUMENTATION) {
-        mysystem("mkdir -p '$dir/../doc' "); # make sure the directory exists
-        open(PSQL, "|$psql $connopts --set='VERBOSITY terse' -e $database > $dir/../doc/$x.queries 2>\&1 ") || do {
+        mysystem("mkdir -p '$dir/../../../doc/queries' "); # make sure the directory exists
+        open(PSQL, "|$psql $connopts --set='VERBOSITY terse' -e $database > $dir/../../../doc/queries/$x.queries 2>\&1 ") || do {
             $res->{"$dir/$x.test.sql"} = "FAILED: could not open connection to db : $!";
             $stats{z_fail}++;
             next;
         };
     }
     else {
-        open(PSQL, "|$psql $connopts  --set='VERBOSITY terse' -A -t -q $database > $TMP 2>\&1 ") || do {
+        #open(PSQL, "|$psql $connopts --set='VERBOSITY terse' -e $database > $dir/$x.result 2>\&1 ") || do {
+        #    $res->{"$dir/$x.test.sql"} = "FAILED: could not open connection to db : $!";
+        #    $stats{z_fail}++;
+        #    next;
+        #};
+
+        open(PSQL, "|$psql $connopts  --set='VERBOSITY terse' -e $database > $TMP 2>\&1 ") || do {
             $res->{"$dir/$x.test.sql"} = "FAILED: could not open connection to db : $!";
             if (!$INTERNAL_TESTS) {
                $stats{z_fail}++;
@@ -316,6 +323,7 @@ sub process_single_test{
     #closes the input file  /TIN = test input
     close(TIN);
 
+    print "\n" if $DOCUMENTATION;
     return if $DOCUMENTATION;
 
     my $dfile;
@@ -360,10 +368,12 @@ sub process_single_test{
     elsif (length($r)) {
         $res->{"$dir/$x.test.sql"} = "FAILED: $r";
         $stats{z_fail}++ unless $DEBUG1;
+        print "\t FAIL\n";
     }
     else {
         $res->{"$dir/$x.test.sql"} = "Passed";
         $stats{z_pass}++;
+        print "\t PASS\n";
     }
     print "    test run time: " . tv_interval($t0, [gettimeofday]) . "\n";
 }
@@ -382,76 +392,42 @@ sub createTestDB {
         print "-- DBSHARE: $dbshare\n";
     }
 
-    # first create a database with postgis installed in it
-    if (version_greater_eq($dbver, '9.1') &&
-        -f "$dbshare/extension/postgis.control") {
-        mysystem("createdb $connopts $databaseName");
-        die "ERROR: Failed to create database '$databaseName'!\n"
-        unless dbExists($databaseName);
-        my $encoding = '';
-        if ($OS =~ /msys/
-            || $OS =~ /MSWin/) {
-            $encoding = "SET client_encoding TO 'UTF8';";
-        }
-        print "-- Trying to install postgis extension $postgis_ver\n" if $DEBUG;
-        mysystem("$psql $connopts -c \"$encoding create extension postgis $postgis_ver \" $databaseName");
-#        print "-- Trying to install pgTap extension \n" if $DEBUG;
-#        system("$psql $connopts -c \"$encoding create extension pgtap \" $databaseName");
-#        if ($? != 0) {
-#            print "Failed: create extension pgtap\n" if $VERBOSE || $DRYRUN;
-#            die;
-#        }
-    }
-    #
-#    else {
-#            $template = "template_postgis_$vpgis";
-#        }
-#        elsif (dbExists('template_postgis')) {
-#            $template = "template_postgis";
-#        }
-#        else {
-#            die "ERROR: Could not find an appropriate template_postgis database!\n";
-#        }
-#        print "-- Trying to install postgis from $template\n" if $DEBUG;
-#        mysystem("createdb $connopts -T $template $databaseName");
-#        sleep(2);
-#        die "ERROR: Failed to create database '$databaseName'!\n"
-#            if ! dbExists($databaseName);
-#    }
-
-    # next we install pgrouting into the new database
-    if (version_greater_eq($dbver, '9.1') &&
-        -f "$dbshare/extension/postgis.control") {
-        my $myver = '';
-        if ($vpgr) {
-            $myver = " VERSION '$vpgr'";
-        }
-        print "-- Trying to install pgrouting extension $myver\n" if $DEBUG;
-        mysystem("$psql $connopts -c \"create extension pgrouting $myver\" $databaseName");
-    }
-    elsif ($vpgr && -f "$dbshare/extension/pgrouting--$vpgr.sql") {
-        print "-- Trying to install pgrouting from '$dbshare/extension/pgrouting--$vpgr.sql'\n" if $DEBUG;
-        mysystem("$psql $connopts -f '$dbshare/extension/pgrouting--$vpgr.sql' $databaseName");
+    die "
+    Unsupported postgreSQL version $dbver
+    Minimum requierment is $POSGRESQL_MIN_VERSION version
+    Use -force to force the tests\n"
+    unless version_greater_eq($dbver, $POSGRESQL_MIN_VERSION) or ($FORCE and version_greater_eq($dbver, '9.1'));
+
+    die "postGIS extension $postgis_ver not found\n" 
+    unless -f "$dbshare/extension/postgis.control";
+
+
+    # Create a database with postgis installed in it
+    mysystem("createdb $connopts $databaseName");
+    die "ERROR: Failed to create database '$databaseName'!\n"
+    unless dbExists($databaseName);
+    my $encoding = '';
+    if ($OS =~ /msys/
+        || $OS =~ /MSWin/) {
+        $encoding = "SET client_encoding TO 'UTF8';";
     }
-    else {
-        my $find = `find "$dbshare/contrib" -name pgrouting.sql | sort -r -n `;
-        my @found = split(/\n/, $find);
-        my $file = shift @found;
-        if ($file && length($file)) {
-            print "-- Trying to install pgrouting from '$file'\n" if $DEBUG;
-            mysystem("$psql $connopts -f '$file' $databaseName");
-        }
-        else {
-            mysystem("ls -alR $dbshare") if $DEBUG;
-            die "ERROR: failed to install pgrouting into the database!\n";
-        }
+    print "-- Installing postgis extension $postgis_ver\n" if $DEBUG;
+    mysystem("$psql $connopts -c \"$encoding CREATE EXTENSION postgis $postgis_ver \" $databaseName");
+
+    # Install pgrouting into the database
+    my $myver = '';
+    if ($vpgr) {
+        $myver = " VERSION '$vpgr'";
     }
+    print "Installing pgrouting extension $myver\n" if $DEBUG;
+    mysystem("$psql $connopts -c \"CREATE EXTENSION pgrouting $myver\" $databaseName");
 
-    # now verify that we have pgrouting installed
+    # Verify pgrouting was installed
 
     my $pgrv = `$psql $connopts -c "select pgr_version()" $databaseName`;
     die "ERROR: failed to install pgrouting into the database!\n"
     unless $pgrv;
+
     print `$psql $connopts -c "select version();" postgres `, "\n";
     print `$psql $connopts -c "select postgis_full_version();" $databaseName `, "\n";
     print `$psql $connopts -c "select pgr_version();" $databaseName `, "\n";
diff --git a/tools/testers/innerQuery.sql b/tools/testers/innerQuery.sql
new file mode 100644
index 0000000..546d548
--- /dev/null
+++ b/tools/testers/innerQuery.sql
@@ -0,0 +1,139 @@
+
+CREATE OR REPLACE FUNCTION test_anyInteger(fn TEXT, rest_sql TEXT, params TEXT[], parameter TEXT)
+RETURNS SETOF TEXT AS
+$BODY$
+DECLARE
+start_sql TEXT;
+end_sql TEXT;
+query TEXT;
+p TEXT;
+BEGIN
+    start_sql = 'select * from ' || fn || '($$ SELECT ';
+    FOREACH  p IN ARRAY params LOOP
+        IF p = parameter THEN CONTINUE;
+        END IF;
+        start_sql = start_sql || p || ', ';
+    END LOOP;
+    end_sql = ' FROM edge_table $$' || rest_sql;
+    
+    query := start_sql || parameter || '::SMALLINT ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+    
+    query := start_sql || parameter || '::INTEGER ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+    
+    query := start_sql || parameter || '::BIGINT ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+
+    query := start_sql || parameter || '::REAL ' || end_sql;
+    RETURN query SELECT throws_ok(query);
+
+    query := start_sql || parameter || '::FLOAT8 ' || end_sql;
+    RETURN query SELECT throws_ok(query);
+END;
+$BODY$ LANGUAGE plpgsql;
+
+CREATE OR REPLACE FUNCTION test_anyNumerical(fn TEXT, rest_sql TEXT, params TEXT[], parameter TEXT)
+RETURNS SETOF TEXT AS
+$BODY$
+DECLARE
+start_sql TEXT;
+end_sql TEXT;
+query TEXT;
+p TEXT;
+BEGIN
+    start_sql = 'select * from ' || fn || '($$ SELECT ';
+    FOREACH  p IN ARRAY params LOOP
+        IF p = parameter THEN CONTINUE;
+        END IF;
+        start_sql = start_sql || p || ', ';
+    END LOOP;
+    end_sql = ' FROM edge_table $$' || rest_sql;
+    
+    query := start_sql || parameter || '::SMALLINT ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+    
+    query := start_sql || parameter || '::INTEGER ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+    
+    query := start_sql || parameter || '::BIGINT ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+
+    query := start_sql || parameter || '::REAL ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+
+    query := start_sql || parameter || '::FLOAT8 ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+END;
+$BODY$ LANGUAGE plpgsql;
+
+
+CREATE OR REPLACE FUNCTION test_anyIntegerOrders(fn TEXT, rest_sql TEXT, params TEXT[], parameter TEXT)
+RETURNS SETOF TEXT AS
+$BODY$
+DECLARE
+start_sql TEXT;
+end_sql TEXT;
+query TEXT;
+p TEXT;
+BEGIN
+    start_sql = 'select * from ' || fn || '($$ SELECT ';
+    FOREACH  p IN ARRAY params LOOP
+        IF p = parameter THEN CONTINUE;
+        END IF;
+        start_sql = start_sql || p || ', ';
+    END LOOP;
+    end_sql = ' FROM orders LIMIT 1 $$, $$ SELECT * from Vehicles $$' || rest_sql;
+    
+    query := start_sql || parameter || '::SMALLINT ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+    
+    query := start_sql || parameter || '::INTEGER ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+    
+    query := start_sql || parameter || '::BIGINT ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+
+    query := start_sql || parameter || '::REAL ' || end_sql;
+    RETURN query SELECT throws_ok(query);
+
+    query := start_sql || parameter || '::FLOAT8 ' || end_sql;
+    RETURN query SELECT throws_ok(query);
+END;
+$BODY$ LANGUAGE plpgsql;
+
+CREATE OR REPLACE FUNCTION test_anyNumericalOrders(fn TEXT, rest_sql TEXT, params TEXT[], parameter TEXT)
+RETURNS SETOF TEXT AS
+$BODY$
+DECLARE
+start_sql TEXT;
+end_sql TEXT;
+query TEXT;
+p TEXT;
+BEGIN
+    start_sql = 'select * from ' || fn || '($$ SELECT ';
+    FOREACH  p IN ARRAY params LOOP
+        IF p = parameter THEN CONTINUE;
+        END IF;
+        start_sql = start_sql || p || ', ';
+    END LOOP;
+    end_sql = ' FROM orders LIMIT 1 $$, $$ SELECT * from Vehicles $$' || rest_sql;
+    
+    query := start_sql || parameter || '::SMALLINT ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+    
+    query := start_sql || parameter || '::INTEGER ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+    
+    query := start_sql || parameter || '::BIGINT ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+
+    query := start_sql || parameter || '::REAL ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+
+    query := start_sql || parameter || '::FLOAT8 ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+END;
+$BODY$ LANGUAGE plpgsql;
+
+
diff --git a/tools/testers/innerQuery_old.sql b/tools/testers/innerQuery_old.sql
new file mode 100644
index 0000000..badf5d2
--- /dev/null
+++ b/tools/testers/innerQuery_old.sql
@@ -0,0 +1,76 @@
+
+SELECT id::INTEGER, source::INTEGER, target::INTEGER, cost, reverse_cost, x1,y1,x2,y2
+INTO edge_table_old
+FROM edge_table;
+
+
+CREATE OR REPLACE FUNCTION test_Integer(fn TEXT, rest_sql TEXT, params TEXT[], parameter TEXT)
+RETURNS SETOF TEXT AS
+$BODY$
+DECLARE
+start_sql TEXT;
+end_sql TEXT;
+query TEXT;
+p TEXT;
+BEGIN
+    start_sql = 'select * from ' || fn || '($$ SELECT ';
+    FOREACH  p IN ARRAY params LOOP
+        IF p = parameter THEN CONTINUE;
+        END IF;
+        start_sql = start_sql || p || ', ';
+    END LOOP;
+    end_sql = ' FROM edge_table_old $$' || rest_sql;
+    
+    query := start_sql || parameter || '::SMALLINT ' || end_sql;
+    RETURN query SELECT throws_ok(query);
+    
+    query := start_sql || parameter || '::INTEGER ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+    
+    query := start_sql || parameter || '::BIGINT ' || end_sql;
+    RETURN query SELECT throws_ok(query);
+
+    query := start_sql || parameter || '::REAL ' || end_sql;
+    RETURN query SELECT throws_ok(query);
+
+    query := start_sql || parameter || '::FLOAT8 ' || end_sql;
+    RETURN query SELECT throws_ok(query);
+END;
+$BODY$ LANGUAGE plpgsql;
+
+CREATE OR REPLACE FUNCTION test_Float(fn TEXT, rest_sql TEXT, params TEXT[], parameter TEXT)
+RETURNS SETOF TEXT AS
+$BODY$
+DECLARE
+start_sql TEXT;
+end_sql TEXT;
+query TEXT;
+p TEXT;
+BEGIN
+    start_sql = 'select * from ' || fn || '($$ SELECT ';
+    FOREACH  p IN ARRAY params LOOP
+        IF p = parameter THEN CONTINUE;
+        END IF;
+        start_sql = start_sql || p || ', ';
+    END LOOP;
+    end_sql = ' FROM edge_table_old $$' || rest_sql;
+    
+    query := start_sql || parameter || '::SMALLINT ' || end_sql;
+    RETURN query SELECT throws_ok(query);
+    
+    query := start_sql || parameter || '::INTEGER ' || end_sql;
+    RETURN query SELECT throws_ok(query);
+    
+    query := start_sql || parameter || '::BIGINT ' || end_sql;
+    RETURN query SELECT throws_ok(query);
+
+    query := start_sql || parameter || '::REAL ' || end_sql;
+    RETURN query SELECT throws_ok(query);
+
+    query := start_sql || parameter || '::FLOAT8 ' || end_sql;
+    RETURN query SELECT lives_ok(query);
+END;
+$BODY$ LANGUAGE plpgsql;
+
+
+
diff --git a/tools/testers/inner_styles.sql b/tools/testers/inner_styles.sql
new file mode 100644
index 0000000..c21606e
--- /dev/null
+++ b/tools/testers/inner_styles.sql
@@ -0,0 +1,319 @@
+
+CREATE OR REPLACE FUNCTION style_dijkstra(fn TEXT, rest_sql TEXT)
+RETURNS SETOF TEXT AS
+$BODY$
+BEGIN
+
+--with reverse cost
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost'],
+    'id');
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost'],
+    'source');
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost'],
+    'target');
+RETURN QUERY SELECT test_anyNumerical(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost'],
+    'cost');
+RETURN QUERY SELECT test_anyNumerical(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost'],
+    'reverse_cost');
+
+
+--without reverse cost
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost'],
+    'id');
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost'],
+    'source');
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost'],
+    'target');
+RETURN QUERY SELECT test_anyNumerical(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost'],
+    'cost');
+END;
+$BODY$
+LANGUAGE plpgsql;
+
+CREATE OR REPLACE FUNCTION style_dijkstra_no_id(fn TEXT, rest_sql TEXT)
+RETURNS SETOF TEXT AS
+$BODY$
+BEGIN
+
+--with reverse cost
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['source', 'target', 'cost', 'reverse_cost'],
+    'source');
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['source', 'target', 'cost', 'reverse_cost'],
+    'target');
+RETURN QUERY SELECT test_anyNumerical(fn, rest_sql,
+    ARRAY['source', 'target', 'cost', 'reverse_cost'],
+    'cost');
+RETURN QUERY SELECT test_anyNumerical(fn, rest_sql,
+    ARRAY['source', 'target', 'cost', 'reverse_cost'],
+    'reverse_cost');
+
+
+--without reverse cost
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['source', 'target', 'cost'],
+    'source');
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['source', 'target', 'cost'],
+    'target');
+RETURN QUERY SELECT test_anyNumerical(fn, rest_sql,
+    ARRAY['source', 'target', 'cost'],
+    'cost');
+END;
+$BODY$
+LANGUAGE plpgsql;
+
+CREATE OR REPLACE FUNCTION style_dijkstraTRSP(fn TEXT, rest_sql TEXT)
+RETURNS SETOF TEXT AS
+$BODY$
+BEGIN
+
+--with reverse cost
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost'],
+    'id');
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost'],
+    'source');
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost'],
+    'target');
+RETURN QUERY SELECT test_anyNumerical(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost'],
+    'cost');
+RETURN QUERY SELECT test_anyNumerical(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost'],
+    'reverse_cost');
+
+
+--without reverse cost
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost'],
+    'id');
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost'],
+    'source');
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost'],
+    'target');
+RETURN QUERY SELECT test_anyNumerical(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost'],
+    'cost');
+END;
+$BODY$
+LANGUAGE plpgsql;
+
+CREATE OR REPLACE FUNCTION style_lineGraph(fn TEXT, rest_sql TEXT)
+RETURNS SETOF TEXT AS
+$BODY$
+BEGIN
+
+--with reverse cost
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost'],
+    'id');
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost'],
+    'source');
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost'],
+    'target');
+RETURN QUERY SELECT test_anyNumerical(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost'],
+    'cost');
+RETURN QUERY SELECT test_anyNumerical(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost'],
+    'reverse_cost');
+
+
+--without reverse cost
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost'],
+    'id');
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost'],
+    'source');
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost'],
+    'target');
+RETURN QUERY SELECT test_anyNumerical(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost'],
+    'cost');
+END;
+$BODY$
+LANGUAGE plpgsql;
+
+
+CREATE OR REPLACE FUNCTION style_astar(fn TEXT, rest_sql TEXT)
+RETURNS SETOF TEXT AS
+$BODY$
+BEGIN
+
+--with reverse cost
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost', 'x1', 'y1', 'x2', 'y2'],
+    'id');
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost', 'x1', 'y1', 'x2', 'y2'],
+    'source');
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost', 'x1', 'y1', 'x2', 'y2'],
+    'target');
+RETURN QUERY SELECT test_anyNumerical(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost', 'x1', 'y1', 'x2', 'y2'],
+    'cost');
+RETURN QUERY SELECT test_anyNumerical(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost', 'x1', 'y1', 'x2', 'y2'],
+    'reverse_cost');
+RETURN QUERY SELECT test_anyNumerical(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost', 'x1', 'y1', 'x2', 'y2'],
+    'x1');
+RETURN QUERY SELECT test_anyNumerical(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost', 'x1', 'y1', 'x2', 'y2'],
+    'y1');
+RETURN QUERY SELECT test_anyNumerical(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost', 'x1', 'y1', 'x2', 'y2'],
+    'x2');
+RETURN QUERY SELECT test_anyNumerical(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost', 'x1', 'y1', 'x2', 'y2'],
+    'y2');
+
+
+--without reverse cost
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'x1', 'y1', 'x2', 'y2'],
+    'id');
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'x1', 'y1', 'x2', 'y2'],
+    'source');
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'x1', 'y1', 'x2', 'y2'],
+    'target');
+RETURN QUERY SELECT test_anyNumerical(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'x1', 'y1', 'x2', 'y2'],
+    'cost');
+RETURN QUERY SELECT test_anyNumerical(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'x1', 'y1', 'x2', 'y2'],
+    'x1');
+RETURN QUERY SELECT test_anyNumerical(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'x1', 'y1', 'x2', 'y2'],
+    'y1');
+RETURN QUERY SELECT test_anyNumerical(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'x1', 'y1', 'x2', 'y2'],
+    'x2');
+RETURN QUERY SELECT test_anyNumerical(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'x1', 'y1', 'x2', 'y2'],
+    'y2');
+
+END;
+$BODY$
+LANGUAGE plpgsql;
+
+CREATE OR REPLACE FUNCTION style_withpoints(fn TEXT, rest_sql TEXT)
+RETURNS SETOF TEXT AS
+$BODY$
+BEGIN
+
+RETURN QUERY SELECT style_dijkstra(fn,  $$, 'SELECT * from pointsOfInterest' $$ || rest_sql);
+
+END;
+$BODY$
+LANGUAGE plpgsql;
+
+
+CREATE OR REPLACE FUNCTION style_max_flow(fn TEXT, rest_sql TEXT)
+RETURNS SETOF TEXT AS
+$BODY$
+BEGIN
+
+--with reverse cost
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'capacity', 'reverse_capacity'],
+    'id');
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'capacity', 'reverse_capacity'],
+    'source');
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'capacity', 'reverse_capacity'],
+    'target');
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'capacity', 'reverse_capacity'],
+    'capacity');
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'capacity', 'reverse_capacity'],
+    'reverse_capacity');
+
+
+--without reverse cost
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'capacity'],
+    'id');
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'capacity'],
+    'source');
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'capacity'],
+    'target');
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'capacity'],
+    'capacity');
+END;
+$BODY$
+LANGUAGE plpgsql;
+
+CREATE OR REPLACE FUNCTION style_cardinalitymatch(fn TEXT, rest_sql TEXT)
+RETURNS SETOF TEXT AS
+$BODY$
+BEGIN
+
+ALTER TABLE edge_table RENAME cost TO going;
+ALTER TABLE edge_table RENAME reverse_cost TO coming;
+
+--with reverse cost
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'going', 'coming'],
+    'id');
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'going', 'coming'],
+    'source');
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'going', 'coming'],
+    'target');
+RETURN QUERY SELECT test_anyNumerical(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'going', 'coming'],
+    'going');
+RETURN QUERY SELECT test_anyNumerical(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'going', 'coming'],
+    'coming');
+
+
+--without coming
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'going'],
+    'id');
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'going'],
+    'source');
+RETURN QUERY SELECT test_anyInteger(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'going'],
+    'target');
+RETURN QUERY SELECT test_anyNumerical(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'going'],
+    'going');
+
+ALTER TABLE edge_table RENAME going TO cost;
+ALTER TABLE edge_table RENAME coming TO reverse_cost;
+
+END;
+$BODY$
+LANGUAGE plpgsql;
diff --git a/tools/testers/old_inner_styles.sql b/tools/testers/old_inner_styles.sql
new file mode 100644
index 0000000..c68ad46
--- /dev/null
+++ b/tools/testers/old_inner_styles.sql
@@ -0,0 +1,176 @@
+
+CREATE OR REPLACE FUNCTION style_old_dijkstra_with(fn TEXT, rest_sql TEXT)
+RETURNS SETOF TEXT AS
+$BODY$
+BEGIN
+
+--with reverse cost
+RETURN QUERY SELECT test_integer(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost'],
+    'id');
+RETURN QUERY SELECT test_integer(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost'],
+    'source');
+RETURN QUERY SELECT test_integer(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost'],
+    'target');
+RETURN QUERY SELECT test_float(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost'],
+    'cost');
+RETURN QUERY SELECT test_float(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost'],
+    'reverse_cost');
+END;
+$BODY$
+LANGUAGE plpgsql;
+
+
+CREATE OR REPLACE FUNCTION style_old_dijkstra_no_rev(fn TEXT, rest_sql TEXT)
+RETURNS SETOF TEXT AS
+$BODY$
+BEGIN
+--without reverse cost
+RETURN QUERY SELECT test_integer(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost'],
+    'id');
+RETURN QUERY SELECT test_integer(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost'],
+    'source');
+RETURN QUERY SELECT test_integer(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost'],
+    'target');
+RETURN QUERY SELECT test_float(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost'],
+    'cost');
+END;
+$BODY$
+LANGUAGE plpgsql;
+
+CREATE OR REPLACE FUNCTION style_old_dijkstra_no_id_no_reverse(fn TEXT, rest_sql TEXT)
+RETURNS SETOF TEXT AS
+$BODY$
+BEGIN
+
+RETURN QUERY SELECT test_integer(fn, rest_sql,
+    ARRAY['source', 'target', 'cost'],
+    'source');
+RETURN QUERY SELECT test_integer(fn, rest_sql,
+    ARRAY['source', 'target', 'cost'],
+    'target');
+RETURN QUERY SELECT test_float(fn, rest_sql,
+    ARRAY['source', 'target', 'cost'],
+    'cost');
+END;
+$BODY$
+LANGUAGE plpgsql;
+
+
+CREATE OR REPLACE FUNCTION style_old_dijkstra_no_id(fn TEXT, rest_sql TEXT)
+RETURNS SETOF TEXT AS
+$BODY$
+BEGIN
+
+--with reverse cost
+RETURN QUERY SELECT test_integer(fn, rest_sql,
+    ARRAY['source', 'target', 'cost', 'reverse_cost'],
+    'source');
+RETURN QUERY SELECT test_integer(fn, rest_sql,
+    ARRAY['source', 'target', 'cost', 'reverse_cost'],
+    'target');
+RETURN QUERY SELECT test_float(fn, rest_sql,
+    ARRAY['source', 'target', 'cost', 'reverse_cost'],
+    'cost');
+RETURN QUERY SELECT test_float(fn, rest_sql,
+    ARRAY['source', 'target', 'cost', 'reverse_cost'],
+    'reverse_cost');
+
+
+--without reverse cost
+RETURN QUERY SELECT test_integer(fn, rest_sql,
+    ARRAY['source', 'target', 'cost'],
+    'source');
+RETURN QUERY SELECT test_integer(fn, rest_sql,
+    ARRAY['source', 'target', 'cost'],
+    'target');
+RETURN QUERY SELECT test_float(fn, rest_sql,
+    ARRAY['source', 'target', 'cost'],
+    'cost');
+END;
+$BODY$
+LANGUAGE plpgsql;
+
+
+CREATE OR REPLACE FUNCTION style_old_astar_with(fn TEXT, rest_sql TEXT)
+RETURNS SETOF TEXT AS
+$BODY$
+BEGIN
+
+--with reverse cost
+RETURN QUERY SELECT test_integer(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost', 'x1', 'y1', 'x2', 'y2'],
+    'id');
+RETURN QUERY SELECT test_integer(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost', 'x1', 'y1', 'x2', 'y2'],
+    'source');
+RETURN QUERY SELECT test_integer(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost', 'x1', 'y1', 'x2', 'y2'],
+    'target');
+RETURN QUERY SELECT test_float(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost', 'x1', 'y1', 'x2', 'y2'],
+    'cost');
+RETURN QUERY SELECT test_float(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost', 'x1', 'y1', 'x2', 'y2'],
+    'reverse_cost');
+RETURN QUERY SELECT test_float(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost', 'x1', 'y1', 'x2', 'y2'],
+    'x1');
+RETURN QUERY SELECT test_float(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost', 'x1', 'y1', 'x2', 'y2'],
+    'y1');
+RETURN QUERY SELECT test_float(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost', 'x1', 'y1', 'x2', 'y2'],
+    'x2');
+RETURN QUERY SELECT test_float(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'reverse_cost', 'x1', 'y1', 'x2', 'y2'],
+    'y2');
+END;
+$BODY$
+LANGUAGE plpgsql;
+
+
+
+CREATE OR REPLACE FUNCTION style_old_astar_no_rev(fn TEXT, rest_sql TEXT)
+RETURNS SETOF TEXT AS
+$BODY$
+BEGIN
+
+--without reverse cost
+RETURN QUERY SELECT test_integer(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'x1', 'y1', 'x2', 'y2'],
+    'id');
+RETURN QUERY SELECT test_integer(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'x1', 'y1', 'x2', 'y2'],
+    'source');
+RETURN QUERY SELECT test_integer(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'x1', 'y1', 'x2', 'y2'],
+    'target');
+RETURN QUERY SELECT test_float(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'x1', 'y1', 'x2', 'y2'],
+    'cost');
+RETURN QUERY SELECT test_float(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'x1', 'y1', 'x2', 'y2'],
+    'x1');
+RETURN QUERY SELECT test_float(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'x1', 'y1', 'x2', 'y2'],
+    'y1');
+RETURN QUERY SELECT test_float(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'x1', 'y1', 'x2', 'y2'],
+    'x2');
+RETURN QUERY SELECT test_float(fn, rest_sql,
+    ARRAY['id', 'source', 'target', 'cost', 'x1', 'y1', 'x2', 'y2'],
+    'y2');
+
+END;
+$BODY$
+LANGUAGE plpgsql;
+
diff --git a/tools/testers/pg_prove_tests.sh b/tools/testers/pg_prove_tests.sh
index 599784f..217b827 100755
--- a/tools/testers/pg_prove_tests.sh
+++ b/tools/testers/pg_prove_tests.sh
@@ -1,12 +1,12 @@
 #!/bin/bash
 # ------------------------------------------------------------------------------
-# Travis CI scripts 
+# Travis CI scripts
 # Copyright(c) pgRouting Contributors
 #
 # Test pgRouting
 # ------------------------------------------------------------------------------
 
-set -e 
+set -e
 
 PGUSER=$1
 RELEASE_TYPE="b$2"
@@ -18,10 +18,10 @@ PGDATABASE="___pgr___test___"
 run_psql () {
     PGOPTIONS='--client-min-messages=warning' psql -U $PGUSER  -d $PGDATABASE -X -q -v ON_ERROR_STOP=1 --pset pager=off "$@"
     if [ "$?" -ne 0 ]
-    then 
+    then
         echo "Test query failed: $@"
         ERROR=1
-    fi 
+    fi
 }
 
 
@@ -30,45 +30,20 @@ echo "cd ./tools/testers/"
 cd ./tools/testers/
 echo "psql -f setup_db.sql"
 run_psql -f setup_db.sql
-#pg_prove ../../src/funnyDijkstra/test/pgtap/* -d $PGDATABASE
-
-#TODO comment out peformance test before merging to MASTER
 
 
 if [ $RELEASE_TYPE = "bDebug" ]
 then
     pg_prove ../../src/internalQueryTests/test/pgtap/* -d $PGDATABASE  -U $PGUSER
+    pg_prove ../../src/tsp/test/performance/* -d $PGDATABASE  -U $PGUSER
     echo "MADE TEST **********************"
 fi
 
-pg_prove ../../src/trsp/test/pgtap/* -d $PGDATABASE  -U $PGUSER
-pg_prove ../../src/dijkstra/test/pgtap/* -d $PGDATABASE  -U $PGUSER
-pg_prove ../../src/bdDijkstra/test/pgtap/* -d $PGDATABASE  -U $PGUSER
-pg_prove ../../src/bd_dijkstra/test/pgtap/* -d $PGDATABASE  -U $PGUSER
-
-pg_prove ../../src/max_flow/test/pgtap/* -d $PGDATABASE  -U $PGUSER
-pg_prove ../../src/pickDeliver/test/pgtap/* -d $PGDATABASE  -U $PGUSER
-pg_prove ../../src/astar/test/pgtap/* -d $PGDATABASE  -U $PGUSER
-
-
-pg_prove ../../src/withPoints/test/pgtap/* -d $PGDATABASE  -U $PGUSER
-pg_prove ../../src/allpairs/test/pgtap/* -d $PGDATABASE  -U $PGUSER
-pg_prove ../../src/alpha_shape/test/pgtap/* -d $PGDATABASE  -U $PGUSER
-pg_prove ../../src/apsp_johnson/test/pgtap/* -d $PGDATABASE  -U $PGUSER
-pg_prove ../../src/apsp_warshall/test/pgtap/* -d $PGDATABASE  -U $PGUSER
-pg_prove ../../src/ksp/test/pgtap/* -d $PGDATABASE  -U $PGUSER
-pg_prove ../../src/topology/test/pgtap/* -d $PGDATABASE  -U $PGUSER
-pg_prove ../../src/common/test/pgtap/* -d $PGDATABASE  -U $PGUSER
-pg_prove ../../src/driving_distance/test/pgtap/* -d $PGDATABASE  -U $PGUSER
-pg_prove ../../src/kdijkstra/test/pgtap/* -d $PGDATABASE  -U $PGUSER
-pg_prove ../../src/trsp/test/pgtap/* -d $PGDATABASE  -U $PGUSER
-pg_prove ../../src/tsp/test/pgtap/* -d $PGDATABASE  -U $PGUSER
+#pg_prove ../../src/dijkstraTRSP/test/pgtap/* -d $PGDATABASE -U $PGUSER
 
-pg_prove ../../src/bd_astar/test/pgtap/* -d $PGDATABASE  -U $PGUSER
-pg_prove ../../src/convenience/test/pgtap/* -d $PGDATABASE  -U $PGUSER
+pg_prove ../../src/lineGraph/test/pgtap/* -d $PGDATABASE -U $PGUSER
 
-pg_prove ../../src/tsp/test/performance/* -d $PGDATABASE  -U $PGUSER
-pg_prove ../../src/contraction/test/pgtap/* -d $PGDATABASE  -U $PGUSER
+pg_prove -d $PGDATABASE  -U $PGUSER ../../pgtap/*/*
 
 if [ "$?" -ne 0 ]
 then
diff --git a/tools/testers/pickDeliver_pgtap_data.sql b/tools/testers/pickDeliver_pgtap_data.sql
index 51ddcc1..213799c 100644
--- a/tools/testers/pickDeliver_pgtap_data.sql
+++ b/tools/testers/pickDeliver_pgtap_data.sql
@@ -1,123 +1,123 @@
-
-DROP TABLE IF EXISTS customer CASCADE;
-CREATE table customer (
-                id BIGINT not null primary key,
-                x DOUBLE PRECISION,
-                y DOUBLE PRECISION,
-                demand INTEGER,
-                opentime INTEGER,
-                closetime INTEGER, 
-                servicetime INTEGER, 
-                pindex BIGINT,
-                dindex BIGINT 
-                );
-
-
-COPY customer (id, x, y, demand, opentime, closetime, servicetime, pindex, dindex) FROM stdin;
-0	40	50	0	0	1236	0	0	0
-1	45	68	-10	912	967	90	11	0
-2	45	70	-20	825	870	90	6	0
-3	42	66	10	65	146	90	0	75
-4	42	68	-10	727	782	90	9	0
-5	42	65	10	15	67	90	0	7
-6	40	69	20	621	702	90	0	2
-7	40	66	-10	170	225	90	5	0
-8	38	68	20	255	324	90	0	10
-9	38	70	10	534	605	90	0	4
-10	35	66	-20	357	410	90	8	0
-11	35	69	10	448	505	90	0	1
-12	25	85	-20	652	721	90	18	0
-13	22	75	30	30	92	90	0	17
-14	22	85	-40	567	620	90	16	0
-15	20	80	-10	384	429	90	19	0
-16	20	85	40	475	528	90	0	14
-17	18	75	-30	99	148	90	13	0
-18	15	75	20	179	254	90	0	12
-19	15	80	10	278	345	90	0	15
-20	30	50	10	10	73	90	0	24
-21	30	52	-10	914	965	90	30	0
-22	28	52	-20	812	883	90	28	0
-23	28	55	10	732	777	0	0	103
-24	25	50	-10	65	144	90	20	0
-25	25	52	40	169	224	90	0	27
-26	25	55	-10	622	701	90	29	0
-27	23	52	-40	261	316	90	25	0
-28	23	55	20	546	593	90	0	22
-29	20	50	10	358	405	90	0	26
-30	20	55	10	449	504	90	0	21
-31	10	35	-30	200	237	90	32	0
-32	10	40	30	31	100	90	0	31
-33	8	40	40	87	158	90	0	37
-34	8	45	-30	751	816	90	38	0
-35	5	35	10	283	344	90	0	39
-36	5	45	10	665	716	0	0	105
-37	2	40	-40	383	434	90	33	0
-38	0	40	30	479	522	90	0	34
-39	0	45	-10	567	624	90	35	0
-40	35	30	-20	264	321	90	42	0
-41	35	32	-10	166	235	90	43	0
-42	33	32	20	68	149	90	0	40
-43	33	35	10	16	80	90	0	41
-44	32	30	10	359	412	90	0	46
-45	30	30	10	541	600	90	0	48
-46	30	32	-10	448	509	90	44	0
-47	30	35	-10	1054	1127	90	49	0
-48	28	30	-10	632	693	90	45	0
-49	28	35	10	1001	1066	90	0	47
-50	26	32	10	815	880	90	0	52
-51	25	30	10	725	786	0	0	101
-52	25	35	-10	912	969	90	50	0
-53	44	5	20	286	347	90	0	58
-54	42	10	40	186	257	90	0	60
-55	42	15	-40	95	158	90	57	0
-56	40	5	30	385	436	90	0	59
-57	40	15	40	35	87	90	0	55
-58	38	5	-20	471	534	90	53	0
-59	38	15	-30	651	740	90	56	0
-60	35	5	-40	562	629	90	54	0
-61	50	30	-10	531	610	90	67	0
-62	50	35	20	262	317	90	0	68
-63	50	40	50	171	218	90	0	74
-64	48	30	10	632	693	0	0	102
-65	48	40	10	76	129	90	0	72
-66	47	35	10	826	875	90	0	69
-67	47	40	10	12	77	90	0	61
-68	45	30	-20	734	777	90	62	0
-69	45	35	-10	916	969	90	66	0
-70	95	30	-30	387	456	90	81	0
-71	95	35	20	293	360	90	0	77
-72	53	30	-10	450	505	90	65	0
-73	92	30	-10	478	551	90	76	0
-74	53	35	-50	353	412	90	63	0
-75	45	65	-10	997	1068	90	3	0
-76	90	35	10	203	260	90	0	73
-77	88	30	-20	574	643	90	71	0
-78	88	35	20	109	170	0	0	104
-79	87	30	10	668	731	90	0	80
-80	85	25	-10	769	820	90	79	0
-81	85	35	30	47	124	90	0	70
-82	75	55	20	369	420	90	0	85
-83	72	55	-20	265	338	90	87	0
-84	70	58	20	458	523	90	0	89
-85	68	60	-20	555	612	90	82	0
-86	66	55	10	173	238	90	0	91
-87	65	55	20	85	144	90	0	83
-88	65	60	-10	645	708	90	90	0
-89	63	58	-20	737	802	90	84	0
-90	60	55	10	20	84	90	0	88
-91	60	60	-10	836	889	90	86	0
-92	67	85	20	368	441	90	0	93
-93	65	85	-20	475	518	90	92	0
-94	65	82	-10	285	336	90	96	0
-95	62	80	-20	196	239	90	98	0
-96	60	80	10	95	156	90	0	94
-97	60	85	30	561	622	0	0	106
-98	58	75	20	30	84	90	0	95
-99	55	80	-20	743	820	90	100	0
-100	55	85	20	647	726	90	0	99
-101	25	30	-10	725	786	90	51	0
-102	48	30	-10	632	693	90	64	0
-103	28	55	-10	732	777	90	23	0
-104	88	35	-20	109	170	90	78	0
-105	5	45	-10	665	716	90	36	0
-106	60	85	-30	561	622	90	97	0
+
+DROP TABLE IF EXISTS orders CASCADE;
+DROP TABLE IF EXISTS vehicles CASCADE;
+DROP TABLE IF EXISTS dist_matrix CASCADE;
+
+CREATE TABLE orders (
+      id BIGINT PRIMARY KEY, 
+      demand FLOAT, 
+      p_node_id BIGINT,
+      p_x FLOAT, 
+      p_y FLOAT, 
+      p_open FLOAT, 
+      p_close FLOAT, 
+      p_service FLOAT, 
+      d_node_id BIGINT,
+      d_x FLOAT, 
+      d_y FLOAT, 
+      d_open FLOAT, 
+      d_close FLOAT, 
+      d_service FLOAT
+);
+
+CREATE TABLE vehicles (
+  id BIGSERIAL PRIMARY KEY, 
+  start_node_id BIGINT,
+  start_x FLOAT, 
+  start_y FLOAT, 
+  start_open FLOAT, 
+  start_close FLOAT, 
+  "number" integer, 
+  capacity FLOAT
+);
+
+INSERT INTO orders (id,  demand, 
+p_x,  p_y ,  p_open,  p_close,  p_service, 
+d_x,  d_y ,  d_open,  d_close,  d_service)
+VALUES
+(3,  10, 42, 66,   65,  146, 90, 45, 65, 997, 1068, 90), 
+(5,  10, 42, 65,   15,   67, 90, 40, 66, 170,  225, 90), 
+(6,  20, 40, 69,  621,  702, 90, 45, 70, 825,  870, 90), 
+(8,  20, 38, 68,  255,  324, 90, 35, 66, 357,  410, 90), 
+(9,  10, 38, 70,  534,  605, 90, 42, 68, 727,  782, 90), 
+(11, 10, 35, 69,  448,  505, 90, 45, 68, 912,  967, 90), 
+(13, 30, 22, 75,   30,   92, 90, 18, 75,  99,  148, 90), 
+(16, 40, 20, 85,  475,  528, 90, 22, 85, 567,  620, 90), 
+(18, 20, 15, 75,  179,  254, 90, 25, 85, 652,  721, 90), 
+(19, 10, 15, 80,  278,  345, 90, 20, 80, 384,  429, 90), 
+(20, 10, 30, 50,   10,   73, 90, 25, 50,  65,  144, 90), 
+(23, 10, 28, 55,  732,  777,  0, 28, 55, 732,  777, 90), 
+(25, 40, 25, 52,  169,  224, 90, 23, 52, 261,  316, 90), 
+(28, 20, 23, 55,  546,  593, 90, 28, 52, 812,  883, 90), 
+(29, 10, 20, 50,  358,  405, 90, 25, 55, 622,  701, 90), 
+(30, 10, 20, 55,  449,  504, 90, 30, 52, 914,  965, 90), 
+(32, 30, 10, 40,   31,  100, 90, 10, 35, 200,  237, 90), 
+(33, 40,  8, 40,   87,  158, 90,  2, 40, 383,  434, 90), 
+(35, 10,  5, 35,  283,  344, 90,  0, 45, 567,  624, 90), 
+(36, 10,  5, 45,  665,  716,  0,  5, 45, 665,  716, 90), 
+(38, 30,  0, 40,  479,  522, 90,  8, 45, 751,  816, 90), 
+(42, 20, 33, 32,   68,  149, 90, 35, 30, 264,  321, 90), 
+(43, 10, 33, 35,   16,   80, 90, 35, 32, 166,  235, 90), 
+(44, 10, 32, 30,  359,  412, 90, 30, 32, 448,  509, 90), 
+(45, 10, 30, 30,  541,  600, 90, 28, 30, 632,  693, 90), 
+(49, 10, 28, 35, 1001, 1066, 90, 30, 35,1054, 1127, 90), 
+(50, 10, 26, 32,  815,  880, 90, 25, 35, 912,  969, 90), 
+(51, 10, 25, 30,  725,  786,  0, 25, 30, 725,  786, 90), 
+(53, 20, 44,  5,  286,  347, 90, 38,  5, 471,  534, 90), 
+(54, 40, 42, 10,  186,  257, 90, 35,  5, 562,  629, 90), 
+(56, 30, 40,  5,  385,  436, 90, 38, 15, 651,  740, 90), 
+(57, 40, 40, 15,   35,   87, 90, 42, 15,  95,  158, 90), 
+(62, 20, 50, 35,  262,  317, 90, 45, 30, 734,  777, 90), 
+(63, 50, 50, 40,  171,  218, 90, 53, 35, 353,  412, 90), 
+(64, 10, 48, 30,  632,  693,  0, 48, 30, 632,  693, 90), 
+(65, 10, 48, 40,   76,  129, 90, 53, 30, 450,  505, 90), 
+(66, 10, 47, 35,  826,  875, 90, 45, 35, 916,  969, 90), 
+(67, 10, 47, 40,   12,   77, 90, 50, 30, 531,  610, 90), 
+(71, 20, 95, 35,  293,  360, 90, 88, 30, 574,  643, 90), 
+(76, 10, 90, 35,  203,  260, 90, 92, 30, 478,  551, 90), 
+(78, 20, 88, 35,  109,  170,  0, 88, 35, 109,  170, 90), 
+(79, 10, 87, 30,  668,  731, 90, 85, 25, 769,  820, 90), 
+(81, 30, 85, 35,   47,  124, 90, 95, 30, 387,  456, 90), 
+(82, 20, 75, 55,  369,  420, 90, 68, 60, 555,  612, 90), 
+(84, 20, 70, 58,  458,  523, 90, 63, 58, 737,  802, 90), 
+(86, 10, 66, 55,  173,  238, 90, 60, 60, 836,  889, 90), 
+(87, 20, 65, 55,   85,  144, 90, 72, 55, 265,  338, 90), 
+(90, 10, 60, 55,   20,   84, 90, 65, 60, 645,  708, 90), 
+(92, 20, 67, 85,  368,  441, 90, 65, 85, 475,  518, 90), 
+(96, 10, 60, 80,   95,  156, 90, 65, 82, 285,  336, 90), 
+(97, 30, 60, 85,  561,  622,  0, 60, 85, 561,  622, 90), 
+(98, 20, 58, 75,   30,   84, 90, 62, 80, 196,  239, 90), 
+(100,20, 55, 85,  647,  726, 90, 55, 80, 743,  820, 90);
+
+INSERT INTO vehicles (start_x,  start_y,  start_open,  start_close,  "number",  capacity)
+VALUES (40,  50,  0,  1236,  25,  200);
+
+WITH points AS (
+    SELECT DISTINCT p_x AS x, p_y AS y FROM orders
+    UNION
+    SELECT DISTINCT d_x, d_y FROM orders),
+t_points AS (SELECT row_number() over() AS id, x, y FROM points),
+first  AS (SELECT orders.id AS id , t_points.id AS p_node_id from orders JOIN t_points ON (x = p_x AND y = p_y)),
+second AS (SELECT orders.id AS id , t_points.id AS d_node_id from orders JOIN t_points ON (x = d_x AND y = d_y)),
+third  AS (SELECT id, p_node_id, d_node_id from first JOIN second USING (id))
+UPDATE orders SET p_node_id = third.p_node_id, d_node_id = third.d_node_id 
+FROM third WHERE third.id = orders.id;
+
+WITH 
+the_ids AS (SELECT p_node_id AS id FROM orders UNION SELECT d_node_id FROM orders),
+the_max AS (SELECT max(id) FROM the_ids)
+UPDATE vehicles SET start_node_id = max+1 FROM the_max;
+
+/*
+WITH
+A AS (
+    SELECT p_node_id AS id, p_x AS x, p_y AS y FROM orders
+    UNION
+    SELECT d_node_id, d_x, d_y FROM orders
+    UNION
+    SELECT start_node_id, start_x, start_y FROM vehicles
+)
+SELECT A.id AS start_vid, B.id AS end_vid, sqrt( (a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y)) AS agg_cost
+INTO dist_matrix
+FROM A, A AS B WHERE A.id != B.id;
+*/
diff --git a/tools/testers/sampledata.sql b/tools/testers/sampledata.sql
index 280dae8..1c7781a 100644
--- a/tools/testers/sampledata.sql
+++ b/tools/testers/sampledata.sql
@@ -5,16 +5,19 @@ SET client_min_messages = WARNING;
 
 ------------------------------------------------------------------------------------------------------
 ------------------------------------------------------------------------------------------------------
---              SAMPLE DATA                
+--              SAMPLE DATA
 ------------------------------------------------------------------------------------------------------
 ------------------------------------------------------------------------------------------------------
 
-    DROP TABLE IF EXISTS edge_table;
-    DROP TABLE IF EXISTS edge_table_vertices_pgr;
-    DROP table if exists pointsOfInterest;
-    DROP TABLE IF EXISTS restrictions;
-    DROP TABLE IF EXISTS vertex_table;
-    DROP TABLE IF EXISTS categories;
+DROP TABLE IF EXISTS edge_table;
+DROP TABLE IF EXISTS edge_table_vertices_pgr;
+DROP table if exists pointsOfInterest;
+DROP TABLE IF EXISTS restrictions;
+DROP TABLE IF EXISTS retrict;
+DROP TABLE IF EXISTS vertex_table;
+DROP TABLE IF EXISTS categories;
+DROP TABLE IF EXISTS vehicles;
+DROP TABLE IF EXISTS orders;
 
 --EDGE TABLE CREATE
 CREATE TABLE edge_table (
@@ -24,6 +27,8 @@ CREATE TABLE edge_table (
     target BIGINT,
     cost FLOAT,
     reverse_cost FLOAT,
+    capacity BIGINT,
+    reverse_capacity BIGINT,
     category_id INTEGER,
     reverse_category_id INTEGER,
     x1 FLOAT,
@@ -36,26 +41,27 @@ CREATE TABLE edge_table (
 INSERT INTO edge_table (
     category_id, reverse_category_id,
     cost, reverse_cost,
+    capacity, reverse_capacity,
     x1, y1,
-    x2, y2) VALUES 
-(3, 1,    1,  1,  2,   0,    2, 1),
-(3, 2,   -1,  1,  2,   1,    3, 1),
-(2, 1,   -1,  1,  3,   1,    4, 1),
-(2, 4,    1,  1,  2,   1,    2, 2),
-(1, 4,    1, -1,  3,   1,    3, 2),
-(4, 2,    1,  1,  0,   2,    1, 2),
-(4, 1,    1,  1,  1,   2,    2, 2),
-(2, 1,    1,  1,  2,   2,    3, 2),
-(1, 3,    1,  1,  3,   2,    4, 2),
-(1, 4,    1,  1,  2,   2,    2, 3),
-(1, 2,    1, -1,  3,   2,    3, 3),
-(2, 3,    1, -1,  2,   3,    3, 3),
-(2, 4,    1, -1,  3,   3,    4, 3),
-(3, 1,    1,  1,  2,   3,    2, 4),
-(3, 4,    1,  1,  4,   2,    4, 3),
-(3, 3,    1,  1,  4,   1,    4, 2),
-(1, 2,    1,  1,  0.5, 3.5,  1.999999999999,3.5),
-(4, 1,    1,  1,  3.5, 2.3,  3.5,4);
+    x2, y2) VALUES
+(3, 1,    1,  1,  80, 130,   2,   0,    2, 1),
+(3, 2,   -1,  1,  -1, 100,   2,   1,    3, 1),
+(2, 1,   -1,  1,  -1, 130,   3,   1,    4, 1),
+(2, 4,    1,  1, 100,  50,   2,   1,    2, 2),
+(1, 4,    1, -1, 130,  -1,   3,   1,    3, 2),
+(4, 2,    1,  1,  50, 100,   0,   2,    1, 2),
+(4, 1,    1,  1,  50, 130,   1,   2,    2, 2),
+(2, 1,    1,  1, 100, 130,   2,   2,    3, 2),
+(1, 3,    1,  1, 130,  80,   3,   2,    4, 2),
+(1, 4,    1,  1, 130,  50,   2,   2,    2, 3),
+(1, 2,    1, -1, 130,  -1,   3,   2,    3, 3),
+(2, 3,    1, -1, 100,  -1,   2,   3,    3, 3),
+(2, 4,    1, -1, 100,  -1,   3,   3,    4, 3),
+(3, 1,    1,  1,  80, 130,   2,   3,    2, 4),
+(3, 4,    1,  1,  80,  50,   4,   2,    4, 3),
+(3, 3,    1,  1,  80,  80,   4,   1,    4, 2),
+(1, 2,    1,  1, 130, 100,   0.5, 3.5,  1.999999999999,3.5),
+(4, 1,    1,  1,  50, 130,   3.5, 2.3,  3.5,4);
 
 UPDATE edge_table SET the_geom = st_makeline(st_point(x1,y1),st_point(x2,y2)),
 dir = CASE WHEN (cost>0 AND reverse_cost>0) THEN 'B'   -- both ways
@@ -108,7 +114,7 @@ INSERT INTO restrictions (rid, to_cost, target_id, from_edge, via_path) VALUES
 (3, 100,  9, 16, NULL);
 
 --RESTRICTIONS END
-
+/*
 CREATE TABLE categories (
     category_id INTEGER,
     category text,
@@ -120,9 +126,10 @@ INSERT INTO categories VALUES
 (2, 'Category 2', 100),
 (3, 'Category 3',  80),
 (4, 'Category 4',  50);
-
+*/
 --CATEGORIES END
 
+-- TODO check if this table is still used
 CREATE TABLE vertex_table (
     id SERIAL,
     x FLOAT,
@@ -134,3 +141,62 @@ INSERT INTO vertex_table VALUES
 
 --VERTEX TABLE END
 
+
+--VEHICLES TABLE START
+
+CREATE TABLE vehicles (
+      id BIGSERIAL PRIMARY KEY,
+      start_node_id BIGINT,
+      start_x FLOAT,
+      start_y FLOAT,
+      start_open FLOAT,
+      start_close FLOAT,
+      number integer,
+      capacity FLOAT
+);
+
+INSERT INTO vehicles
+(start_node_id, start_x,  start_y,  start_open,  start_close,  number,  capacity) VALUES
+(            6,       3,        2,           0,           50,       2,        50);
+
+--VEHICLES TABLE END
+
+
+
+--ORDERS TABLE START
+CREATE TABLE orders (
+    id BIGSERIAL PRIMARY KEY,
+    demand FLOAT,
+    -- the pickups
+    p_node_id BIGINT,
+    p_x FLOAT,
+    p_y FLOAT,
+    p_open FLOAT,
+    p_close FLOAT,
+    p_service FLOAT,
+    -- the deliveries
+    d_node_id BIGINT,
+    d_x FLOAT,
+    d_y FLOAT,
+    d_open FLOAT,
+    d_close FLOAT,
+    d_service FLOAT
+);
+
+
+INSERT INTO orders
+(demand,
+    p_node_id,  p_x, p_y,  p_open,  p_close,  p_service,
+    d_node_id,  d_x, d_y,  d_open,  d_close,  d_service) VALUES
+(10,
+            3,    3,   1,      2,         10,          3,
+            8,    1,   2,      6,         15,          3),
+(20,
+            9,    4,   2,      4,         15,          2,
+            4,    4,   1,      6,         20,          3),
+(30,
+            5,    2,   2,      2,         10,          3,
+           11,    3,   3,      3,         20,          3);
+
+
+--ORDERS TABLE END
diff --git a/tools/testers/setup_db.sql b/tools/testers/setup_db.sql
index 63796f3..d73a47b 100644
--- a/tools/testers/setup_db.sql
+++ b/tools/testers/setup_db.sql
@@ -17,9 +17,14 @@ CREATE EXTENSION postgis;
 CREATE EXTENSION pgtap;
 CREATE EXTENSION pgrouting;
 
+--    i vrppdtw_data.sql
+--    i pickDeliver_pgtap_data.sql
 BEGIN;
 
     \i sampledata.sql
-    \i pickDeliver_pgtap_data.sql
+    \i innerQuery.sql
+    \i innerQuery_old.sql
+    \i inner_styles.sql
+    \i old_inner_styles.sql
 
 END;
diff --git a/tools/testers/update-tester.sh b/tools/testers/update-tester.sh
index 64bac4e..0d9913a 100755
--- a/tools/testers/update-tester.sh
+++ b/tools/testers/update-tester.sh
@@ -3,7 +3,7 @@
 
 # FILE: update_tester.sh
 
-# Copyright (c) 2015 pgRouting developers
+# Copyright (c) 2016 pgRouting developers
 # Mail: project at pgrouting.org
 #
 # ------
@@ -39,10 +39,27 @@ echo -
 #  bash tools/testers/update-tester.sh
 #
 
-CURRENT=2.4.2
+CURRENT=2.5.0
+
+if [ ! -f build/sql/pgrouting--$CURRENT.sql ]; then
+   echo "File not found:  build/lib/pgrouting--$CURRENT.sql "
+   exit 1
+fi
+
+dropdb --if-exists ___test_update
+
+#make sure the scripts are the latest
+cp build/sql/pgrouting-* tools/sql-update-scripts
+#TODO automatically check  the diff is empty
+#git diff
+
+cd build
+sudo make install
+cd ..
+
+
 
 function update_test {
-set -e
 
 echo ------------------------------------
 echo ------------------------------------
@@ -55,26 +72,52 @@ if [ "$INSTALLED" == "/usr/share/postgresql/9.3/extension/pgrouting--$1.sql" ]
 then
     echo "/usr/share/postgresql/9.3/extension/pgrouting--$1.sql found"
 else
-    echo "/usr/share/postgresql/9.3/extension/pgrouting--$1.sql Not found"
-#    exit 1
+    echo "FATAL: /usr/share/postgresql/9.3/extension/pgrouting--$1.sql Not found"
+    exit 1
 fi
 
+
 createdb  ___test_update
 psql  ___test_update  <<EOF
-create extension postgis;
-create extension pgrouting with version '$1';
-select pgr_version();
-alter extension pgrouting update to '$2';
-select pgr_version();
+CREATE extension postgis;
+CREATE extension pgrouting with version '$1';
 EOF
 
-dropdb   ___test_update
-} 
+OLD_VERSION=$(psql ___test_update -t -c 'SELECT version FROM pgr_version()')
+
+
+if [ "b$OLD_VERSION" != "b $1" ]
+then
+    echo "ERROR: Version $1 not found on the system"
+    dropdb ___test_update
+    exit 1
+fi
+
+
+
+psql ___test_update -c "ALTER extension pgrouting update to '$2'"
+
+
+NEW_VERSION=$(psql ___test_update -t -c 'SELECT version FROM pgr_version()')
+
+echo "$OLD_VERSION ->> $NEW_VERSION"
+
+if [ "b$NEW_VERSION" != "b $2" ]
+then
+    echo "FAIL: Could not update from version $1 to version $2"
+    dropdb ___test_update
+    exit 1
+fi
+
+dropdb ___test_update
+
+} # end of function
 
 #------------------------------------
-### updates from 2.3.0
+### updates from 2.4
 #------------------------------------
 
+update_test 2.4.2 $CURRENT
 update_test 2.4.1 $CURRENT
 update_test 2.4.0 $CURRENT
 
@@ -90,7 +133,7 @@ update_test 2.3.0 $CURRENT
 ### updates from 2.2.x
 #------------------------------------
 
-#update_test 2.2.4 $CURRENT
+update_test 2.2.4 $CURRENT
 update_test 2.2.3 $CURRENT
 update_test 2.2.2 $CURRENT
 update_test 2.2.1 $CURRENT
diff --git a/src/vrp_basic/test/VRP-any-00.data b/tools/testers/vrpOneDepot.data
similarity index 100%
rename from src/vrp_basic/test/VRP-any-00.data
rename to tools/testers/vrpOneDepot.data
diff --git a/tools/testers/vrppdtw_data.sql b/tools/testers/vrppdtw_data.sql
new file mode 100644
index 0000000..ff1bd81
--- /dev/null
+++ b/tools/testers/vrppdtw_data.sql
@@ -0,0 +1,124 @@
+
+DROP TABLE IF EXISTS customer CASCADE;
+CREATE table customer (
+    id BIGINT not null primary key,
+    x DOUBLE PRECISION,
+    y DOUBLE PRECISION,
+    demand INTEGER,
+    opentime INTEGER,
+    closetime INTEGER,
+    servicetime INTEGER,
+    pindex BIGINT,
+    dindex BIGINT 
+);
+
+
+INSERT INTO customer(
+  id,     x,    y, demand, opentime, closetime, servicetime, pindex, dindex) VALUES
+(  0,    40,   50,     0,     0,  1236,    0,    0,    0),
+(  1,    45,   68,   -10,   912,   967,   90,   11,    0),
+(  2,    45,   70,   -20,   825,   870,   90,    6,    0),
+(  3,    42,   66,    10,    65,   146,   90,    0,   75),
+(  4,    42,   68,   -10,   727,   782,   90,    9,    0),
+(  5,    42,   65,    10,    15,    67,   90,    0,    7),
+(  6,    40,   69,    20,   621,   702,   90,    0,    2),
+(  7,    40,   66,   -10,   170,   225,   90,    5,    0),
+(  8,    38,   68,    20,   255,   324,   90,    0,   10),
+(  9,    38,   70,    10,   534,   605,   90,    0,    4),
+( 10,    35,   66,   -20,   357,   410,   90,    8,    0),
+( 11,    35,   69,    10,   448,   505,   90,    0,    1),
+( 12,    25,   85,   -20,   652,   721,   90,   18,    0),
+( 13,    22,   75,    30,    30,    92,   90,    0,   17),
+( 14,    22,   85,   -40,   567,   620,   90,   16,    0),
+( 15,    20,   80,   -10,   384,   429,   90,   19,    0),
+( 16,    20,   85,    40,   475,   528,   90,    0,   14),
+( 17,    18,   75,   -30,    99,   148,   90,   13,    0),
+( 18,    15,   75,    20,   179,   254,   90,    0,   12),
+( 19,    15,   80,    10,   278,   345,   90,    0,   15),
+( 20,    30,   50,    10,    10,    73,   90,    0,   24),
+( 21,    30,   52,   -10,   914,   965,   90,   30,    0),
+( 22,    28,   52,   -20,   812,   883,   90,   28,    0),
+( 23,    28,   55,    10,   732,   777,    0,    0,  103),
+( 24,    25,   50,   -10,    65,   144,   90,   20,    0),
+( 25,    25,   52,    40,   169,   224,   90,    0,   27),
+( 26,    25,   55,   -10,   622,   701,   90,   29,    0),
+( 27,    23,   52,   -40,   261,   316,   90,   25,    0),
+( 28,    23,   55,    20,   546,   593,   90,    0,   22),
+( 29,    20,   50,    10,   358,   405,   90,    0,   26),
+( 30,    20,   55,    10,   449,   504,   90,    0,   21),
+( 31,    10,   35,   -30,   200,   237,   90,   32,    0),
+( 32,    10,   40,    30,    31,   100,   90,    0,   31),
+( 33,     8,   40,    40,    87,   158,   90,    0,   37),
+( 34,     8,   45,   -30,   751,   816,   90,   38,    0),
+( 35,     5,   35,    10,   283,   344,   90,    0,   39),
+( 36,     5,   45,    10,   665,   716,    0,    0,  105),
+( 37,     2,   40,   -40,   383,   434,   90,   33,    0),
+( 38,     0,   40,    30,   479,   522,   90,    0,   34),
+( 39,     0,   45,   -10,   567,   624,   90,   35,    0),
+( 40,    35,   30,   -20,   264,   321,   90,   42,    0),
+( 41,    35,   32,   -10,   166,   235,   90,   43,    0),
+( 42,    33,   32,    20,    68,   149,   90,    0,   40),
+( 43,    33,   35,    10,    16,    80,   90,    0,   41),
+( 44,    32,   30,    10,   359,   412,   90,    0,   46),
+( 45,    30,   30,    10,   541,   600,   90,    0,   48),
+( 46,    30,   32,   -10,   448,   509,   90,   44,    0),
+( 47,    30,   35,   -10,  1054,  1127,   90,   49,    0),
+( 48,    28,   30,   -10,   632,   693,   90,   45,    0),
+( 49,    28,   35,    10,  1001,  1066,   90,    0,   47),
+( 50,    26,   32,    10,   815,   880,   90,    0,   52),
+( 51,    25,   30,    10,   725,   786,    0,    0,  101),
+( 52,    25,   35,   -10,   912,   969,   90,   50,    0),
+( 53,    44,    5,    20,   286,   347,   90,    0,   58),
+( 54,    42,   10,    40,   186,   257,   90,    0,   60),
+( 55,    42,   15,   -40,    95,   158,   90,   57,    0),
+( 56,    40,    5,    30,   385,   436,   90,    0,   59),
+( 57,    40,   15,    40,    35,    87,   90,    0,   55),
+( 58,    38,    5,   -20,   471,   534,   90,   53,    0),
+( 59,    38,   15,   -30,   651,   740,   90,   56,    0),
+( 60,    35,    5,   -40,   562,   629,   90,   54,    0),
+( 61,    50,   30,   -10,   531,   610,   90,   67,    0),
+( 62,    50,   35,    20,   262,   317,   90,    0,   68),
+( 63,    50,   40,    50,   171,   218,   90,    0,   74),
+( 64,    48,   30,    10,   632,   693,    0,    0,  102),
+( 65,    48,   40,    10,    76,   129,   90,    0,   72),
+( 66,    47,   35,    10,   826,   875,   90,    0,   69),
+( 67,    47,   40,    10,    12,    77,   90,    0,   61),
+( 68,    45,   30,   -20,   734,   777,   90,   62,    0),
+( 69,    45,   35,   -10,   916,   969,   90,   66,    0),
+( 70,    95,   30,   -30,   387,   456,   90,   81,    0),
+( 71,    95,   35,    20,   293,   360,   90,    0,   77),
+( 72,    53,   30,   -10,   450,   505,   90,   65,    0),
+( 73,    92,   30,   -10,   478,   551,   90,   76,    0),
+( 74,    53,   35,   -50,   353,   412,   90,   63,    0),
+( 75,    45,   65,   -10,   997,  1068,   90,    3,    0),
+( 76,    90,   35,    10,   203,   260,   90,    0,   73),
+( 77,    88,   30,   -20,   574,   643,   90,   71,    0),
+( 78,    88,   35,    20,   109,   170,    0,    0,  104),
+( 79,    87,   30,    10,   668,   731,   90,    0,   80),
+( 80,    85,   25,   -10,   769,   820,   90,   79,    0),
+( 81,    85,   35,    30,    47,   124,   90,    0,   70),
+( 82,    75,   55,    20,   369,   420,   90,    0,   85),
+( 83,    72,   55,   -20,   265,   338,   90,   87,    0),
+( 84,    70,   58,    20,   458,   523,   90,    0,   89),
+( 85,    68,   60,   -20,   555,   612,   90,   82,    0),
+( 86,    66,   55,    10,   173,   238,   90,    0,   91),
+( 87,    65,   55,    20,    85,   144,   90,    0,   83),
+( 88,    65,   60,   -10,   645,   708,   90,   90,    0),
+( 89,    63,   58,   -20,   737,   802,   90,   84,    0),
+( 90,    60,   55,    10,    20,    84,   90,    0,   88),
+( 91,    60,   60,   -10,   836,   889,   90,   86,    0),
+( 92,    67,   85,    20,   368,   441,   90,    0,   93),
+( 93,    65,   85,   -20,   475,   518,   90,   92,    0),
+( 94,    65,   82,   -10,   285,   336,   90,   96,    0),
+( 95,    62,   80,   -20,   196,   239,   90,   98,    0),
+( 96,    60,   80,    10,    95,   156,   90,    0,   94),
+( 97,    60,   85,    30,   561,   622,    0,    0,  106),
+( 98,    58,   75,    20,    30,    84,   90,    0,   95),
+( 99,    55,   80,   -20,   743,   820,   90,  100,    0),
+( 100,   55,   85,    20,   647,   726,   90,    0,   99),
+( 101,   25,   30,   -10,   725,   786,   90,   51,    0),
+( 102,   48,   30,   -10,   632,   693,   90,   64,    0),
+( 103,   28,   55,   -10,   732,   777,   90,   23,    0),
+( 104,   88,   35,   -20,   109,   170,   90,   78,    0),
+( 105,    5,   45,   -10,   665,   716,   90,   36,    0),
+( 106,   60,   85,   -30,   561,   622,   90,   97,    0);
diff --git a/tools/travis/pgrouting_build.sh b/tools/travis/pgrouting_build.sh
index cd6b3c7..03a1d7c 100755
--- a/tools/travis/pgrouting_build.sh
+++ b/tools/travis/pgrouting_build.sh
@@ -12,8 +12,7 @@ set -e
 # build pgRouting
 mkdir build
 cd build
-cmake  -DPOSTGRESQL_VERSION=$POSTGRESQL_VERSION -DWITH_DOC=ON -DBUILD_DOXY=ON -DCMAKE_BUILD_TYPE=Debug ..
+cmake  -DPOSTGRESQL_VERSION=$POSTGRESQL_VERSION -DWITH_DOC=ON -DCMAKE_BUILD_TYPE=Debug ..
 make
 sudo make install
 make doc
-make doxy
diff --git a/tools/winnie/package_pgrouting.sh b/tools/winnie/package_pgrouting.sh
index 44d3dd9..55dfacb 100644
--- a/tools/winnie/package_pgrouting.sh
+++ b/tools/winnie/package_pgrouting.sh
@@ -63,11 +63,13 @@ mkdir -p $outdir/share/extension
 mkdir $outdir/bin
 mkdir $outdir/lib
 
+cd ${PROJECTS}/pgrouting/build${PGROUTING_VER}w${OS_BUILD}${GCC_TYPE}/sql
+cp *.sql $outdir/share/extension
+cp ${PostgreSQL_ROOT}/share/extension/pgrouting.control $outdir/share/extension
+
 cd ${PROJECTS}/pgrouting/build${PGROUTING_VER}w${OS_BUILD}${GCC_TYPE}/lib
 strip *.dll
 
-cp -r *.sql $outdir/share/extension
-cp -r *.control $outdir/share/extension
 cp -r *.dll $outdir/lib
 #newer gcc for some reason CGAL is not statically linked
 # so need to distribute

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/pgrouting.git



More information about the Pkg-grass-devel mailing list